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.89) (envelope-from ) id 1h7Emu-0006oO-3c for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Mar 2019 07:40:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1h7Emq-0002NT-Js for pgsql-hackers@arkaria.postgresql.org; Fri, 22 Mar 2019 07:40:20 +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 1h7Emp-0002FY-B0 for pgsql-hackers@lists.postgresql.org; Fri, 22 Mar 2019 07:40:20 +0000 Received: from tama50.ecl.ntt.co.jp ([129.60.39.147]) by makus.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1h7Ema-00060J-Hd for pgsql-hackers@postgresql.org; Fri, 22 Mar 2019 07:40:16 +0000 Received: from vc1.ecl.ntt.co.jp (vc1.ecl.ntt.co.jp [129.60.86.153]) by tama50.ecl.ntt.co.jp (8.13.8/8.13.8) with ESMTP id x2M7do2q019025; Fri, 22 Mar 2019 16:39:50 +0900 Received: from vc1.ecl.ntt.co.jp (localhost [127.0.0.1]) by vc1.ecl.ntt.co.jp (Postfix) with ESMTP id 7F462EA7D41; Fri, 22 Mar 2019 16:39:50 +0900 (JST) Received: from jcms-pop21.ecl.ntt.co.jp (jcms-pop21.ecl.ntt.co.jp [129.60.87.134]) by vc1.ecl.ntt.co.jp (Postfix) with ESMTP id 70271EA73EF; Fri, 22 Mar 2019 16:39:50 +0900 (JST) Received: from [127.0.0.1] (unknown [129.60.241.61]) by jcms-pop21.ecl.ntt.co.jp (Postfix) with ESMTPSA id 635E4400AE4; Fri, 22 Mar 2019 16:39:50 +0900 (JST) Subject: Re: speeding up planning with partitions From: Amit Langote References: <0F97FA9ABBDBE54F91744A9B37151A5129DD55@g01jpexmbkw24> <256b9c87-b687-6f51-6274-19ae5743aef6@lab.ntt.co.jp> <0F97FA9ABBDBE54F91744A9B37151A5129E604@g01jpexmbkw24> <9feacaf6-ddb3-96dd-5b98-df5e927b1439@lab.ntt.co.jp> <0F97FA9ABBDBE54F91744A9B37151A512B3279@g01jpexmbkw24> <0c90ce90-b010-4791-41c0-a0df34f99ffa@lab.ntt.co.jp> <0F97FA9ABBDBE54F91744A9B37151A512B3528@g01jpexmbkw24> <0F97FA9ABBDBE54F91744A9B37151A512B359C@g01jpexmbkw24> <72094fc9-3232-0fc7-b7cd-42e1c73d5aee@lab.ntt.co.jp> <0F97FA9ABBDBE54F91744A9B37151A512B45CD@g01jpexmbkw24> <53a80692-c68d-5e11-1014-6441b6e8ca5a@redhat.com> Message-ID: Date: Fri, 22 Mar 2019 16:39:30 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------1D899EE931AAEA6B95DE6817" Content-Language: en-US X-CC-Mail-RelayStamp: 1 To: Imai Yoshikazu , "jesper.pedersen@redhat.com" , "Imai, Yoshikazu" , "'Amit Langote'" Cc: Tom Lane , David Rowley , Alvaro Herrera , Robert Haas , Justin Pryzby , Pg Hackers X-TM-AS-MML: disable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi, On 2019/03/22 11:17, Amit Langote wrote: > However, looking into make_partitionedrel_pruneinfo(), it seems that it's > unconditionally allocating 3 arrays that all have nparts elements: > > subplan_map = (int *) palloc0(nparts * sizeof(int)); > subpart_map = (int *) palloc0(nparts * sizeof(int)); > relid_map = (Oid *) palloc0(nparts * sizeof(int)); > > So, that part has got to cost more as the partition count grows. > > This is the code for runtime pruning, which is not exercised in our tests, > so it might seem odd that we're spending any time here at all. I've been > told that we have to perform at least *some* work here if only to conclude > that runtime pruning is not needed and it seems that above allocations > occur before making that conclusion. Maybe, that's salvageable by > rearranging this code a bit. David may be in a better position to help > with that. I took a stab at this. I think rearranging the code in make_partitionedrel_pruneinfo() slightly will take care of this. The problem is that make_partitionedrel_pruneinfo() does some work which involves allocating arrays containing nparts elements and then looping over the part_rels array to fill values in those arrays that will be used by run-time pruning. It does all that even *before* it has checked that run-time pruning will be needed at all, which if it is not, it will simply discard the result of the aforementioned work. Patch 0008 of 0009 rearranges the code such that we check whether we will need run-time pruning at all before doing any of the work that's necessary for run-time to work. Thanks, Amit --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0001-Build-other-rels-of-appendrel-baserels-in-a-sepa.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0001-Build-other-rels-of-appendrel-baserels-in-a-sepa.pa"; filename*1="tch" RnJvbSBiN2FmM2FlMTdjN2U5YjU4NWFmODczMzFjYzU2YTE5MGZmNmFkM2QyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAyIE1hciAyMDE5IDE0OjEzOjEzICswOTAwClN1YmplY3Q6IFtQQVRDSCB2 MzQgMS85XSBCdWlsZCAib3RoZXIgcmVscyIgb2YgYXBwZW5kcmVsIGJhc2VyZWxzIGluIGEK IHNlcGFyYXRlIHN0ZXAKCkN1cnJlbnRseSB0aGV5J3JlIGJ1aWx0IGluIGEgc3RhbnphIGlu IGJ1aWxkX3NpbXBsZV9yZWwoKSB3aGljaApidWlsZHMgdGhlIGNoaWxkIHJlbHMgaW4gdGhl IHNhbWUgaW52b2NhdGlvbiBvZiBidWlsZF9zaW1wbGVfcmVsCnRoYXQncyB1c2VkIHRvIGJ1 aWxkIHRoZSBwYXJlbnQgcmVsYXRpb24uICBTaW5jZSBxdWVyeSBoYXNuJ3QKYmVlbiBwcm9j ZXNzZWQgdG8gZGlzdHJpYnV0ZSByZXN0cmljdGlvbiBjbGF1c2VzIHRvIGluZGl2aWR1YWwK YmFzZXJlbHMgYXQgdGhpcyBwb2ludCwgd2UgY2Fubm90IHBlcmZvcm0gcGFydGl0aW9uIHBy dW5pbmcgYmVmb3JlCmFkZGluZyB0aGUgY2hpbGRyZW4uCgpOZXdseSBhZGRlZCBhZGRfb3Ro ZXJfcmVsc190b19xdWVyeSgpIHJ1bnMgKmFmdGVyKiBxdWVyeV9wbGFubmVyIGhhcwpkaXN0 cmlidXRlZCByZXN0cmljdGlvbiBjbGF1c2VzIHRvIGJhc2UgcmVsYXRpb25zLiAgVGhpcyB3 aWxsIGFsbG93CnVzIHRvIHVzZSB0aGUgY2xhdXNlcyBhcHBsaWVkIGEgZ2l2ZW4gcGFydGl0 aW9uZWQgYmFzZXJlbCB0byBwZXJmb3JtCnBhcnRpdGlvbiBwcnVuaW5nLCBhbmQgYWRkIG90 aGVyIHJlbHMgZm9yIG9ubHkgdGhlIHVucHJ1bmVkCnBhcnRpdGlvbnMuICBMYXRlciBwYXRj aGVzIHdpbGwgZG8gdGhhdC4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxw YXRocy5jICB8ICAgMiArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vaW5pdHNwbGFu LmMgfCAgNjAgKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3BsYW5tYWluLmMgIHwgIDE1ICsrKy0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9y ZWxub2RlLmMgICB8IDExNCArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIHNy Yy9pbmNsdWRlL29wdGltaXplci9wYXRobm9kZS5oICAgICAgIHwgICAyICsKIHNyYy9pbmNs dWRlL29wdGltaXplci9wbGFubWFpbi5oICAgICAgIHwgICAxICsKIDYgZmlsZXMgY2hhbmdl ZCwgMTQzIGluc2VydGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGF0aC9hbGxwYXRocy5jCmluZGV4IGIyYzVjODMzZjcuLjNiNzBlZjE3ZmEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2FsbHBhdGhzLmMKKysrIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwpAQCAtMTAyOSw3ICsxMDI5 LDcgQEAgc2V0X2FwcGVuZF9yZWxfc2l6ZShQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5m byAqcmVsLAogCiAJCS8qCiAJCSAqIFRoZSBjaGlsZCByZWwncyBSZWxPcHRJbmZvIHdhcyBh bHJlYWR5IGNyZWF0ZWQgZHVyaW5nCi0JCSAqIGFkZF9iYXNlX3JlbHNfdG9fcXVlcnkuCisJ CSAqIGFkZF9vdGhlcl9yZWxzX3RvX3F1ZXJ5LgogCQkgKi8KIAkJY2hpbGRyZWwgPSBmaW5k X2Jhc2VfcmVsKHJvb3QsIGNoaWxkUlRpbmRleCk7CiAJCUFzc2VydChjaGlsZHJlbC0+cmVs b3B0a2luZCA9PSBSRUxPUFRfT1RIRVJfTUVNQkVSX1JFTCk7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9pbml0c3BsYW4uYyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL2luaXRzcGxhbi5jCmluZGV4IDJhZmMzZjFkZmUuLjA3N2QzMjAzYmEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2luaXRzcGxhbi5jCisrKyBi L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2luaXRzcGxhbi5jCkBAIC0yMCw2ICsyMCw3 IEBACiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAib3B0aW1pemVy L2NsYXVzZXMuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvY29zdC5oIgorI2luY2x1ZGUgIm9w dGltaXplci9pbmhlcml0LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL2pvaW5pbmZvLmgiCiAj aW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgogI2luY2x1ZGUgIm9wdGltaXplci9w YXRobm9kZS5oIgpAQCAtMzAsNiArMzEsNyBAQAogI2luY2x1ZGUgIm9wdGltaXplci9wcmVw LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3Jlc3RyaWN0aW5mby5oIgogI2luY2x1ZGUgInBh cnNlci9hbmFseXplLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1 ZGUgInJld3JpdGUvcmV3cml0ZU1hbmlwLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hl LmgiCiAKQEAgLTk3LDEwICs5OSwxMSBAQCBzdGF0aWMgdm9pZCBjaGVja19oYXNoam9pbmFi bGUoUmVzdHJpY3RJbmZvICpyZXN0cmljdGluZm8pOwogICoganRub2RlLiAgSW50ZXJuYWxs eSwgdGhlIGZ1bmN0aW9uIHJlY3Vyc2VzIHRocm91Z2ggdGhlIGpvaW50cmVlLgogICoKICAq IEF0IHRoZSBlbmQgb2YgdGhpcyBwcm9jZXNzLCB0aGVyZSBzaG91bGQgYmUgb25lIGJhc2Vy ZWwgUmVsT3B0SW5mbyBmb3IKLSAqIGV2ZXJ5IG5vbi1qb2luIFJURSB0aGF0IGlzIHVzZWQg aW4gdGhlIHF1ZXJ5LiAgVGhlcmVmb3JlLCB0aGlzIHJvdXRpbmUKLSAqIGlzIHRoZSBvbmx5 IHBsYWNlIHRoYXQgc2hvdWxkIGNhbGwgYnVpbGRfc2ltcGxlX3JlbCB3aXRoIHJlbG9wdGtp bmQKLSAqIFJFTE9QVF9CQVNFUkVMLiAgKE5vdGU6IGJ1aWxkX3NpbXBsZV9yZWwgcmVjdXJz ZXMgaW50ZXJuYWxseSB0byBidWlsZAotICogIm90aGVyIHJlbCIgUmVsT3B0SW5mb3MgZm9y IHRoZSBtZW1iZXJzIG9mIGFueSBhcHBlbmRyZWxzIHdlIGZpbmQgaGVyZS4pCisgKiBldmVy eSBub24tam9pbiBSVEUgdGhhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIHF1ZXJ5LiAgVGhlcmVm b3JlLCB0aGlzCisgKiByb3V0aW5lIGlzIHRoZSBvbmx5IHBsYWNlIHRoYXQgc2hvdWxkIGNh bGwgYnVpbGRfc2ltcGxlX3JlbCB3aXRoCisgKiByZWxvcHRraW5kIFJFTE9QVF9CQVNFUkVM LiAgKE5vdGU6ICAib3RoZXIgcmVsIiBSZWxPcHRJbmZvcyBmb3IgdGhlCisgKiBtZW1iZXJz IG9mIGFueSBhcHBlbmRyZWxzIHdlIGZpbmQgaGVyZSBhcmUgYnVpbHQgbGF0ZXIgd2hlbiBx dWVyeV9wbGFubmVyCisgKiBjYWxscyBhZGRfb3RoZXJfcmVsc190b19xdWVyeSgpLikKICAq Lwogdm9pZAogYWRkX2Jhc2VfcmVsc190b19xdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9k ZSAqanRub2RlKQpAQCAtMTMzLDYgKzEzNiw1NSBAQCBhZGRfYmFzZV9yZWxzX3RvX3F1ZXJ5 KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUpCiAJCQkgKGludCkgbm9kZVRhZyhq dG5vZGUpKTsKIH0KIAorLyoKKyAqIGFkZF9vdGhlcl9yZWxzX3RvX3F1ZXJ5CisgKgorICoJ ICBTY2FuIHRoZSBxdWVyeSdzIGpvaW50cmVlIGFuZCBmb3IgZWFjaCBiYXNlIHJlbHMgdGhh dCBpcyBhbiBhcHBlbmRyZWwsCisgKgkgIGNyZWF0ZSBvdGhlcnJlbCBSZWxPcHRJbmZvcyBv ZiBpdHMgY2hpbGRyZW4KKyAqCisgKiBBdCB0aGUgZW5kIG9mIHRoaXMgcHJvY2VzcywgdGhl cmUgc2hvdWxkIGJlIFJlbE9wdEluZm9zIGZvciBhbGwgcmVsYXRpb25zCisgKiB0aGF0IHdp bGwgYmUgc2Nhbm5lZCBieSB0aGUgcXVlcnkuCisgKi8KK3ZvaWQKK2FkZF9vdGhlcl9yZWxz X3RvX3F1ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUpCit7CisJaWYgKGp0 bm9kZSA9PSBOVUxMKQorCQlyZXR1cm47CisJaWYgKElzQShqdG5vZGUsIFJhbmdlVGJsUmVm KSkKKwl7CisJCWludAkJCXZhcm5vID0gKChSYW5nZVRibFJlZiAqKSBqdG5vZGUpLT5ydGlu ZGV4OworCQlSYW5nZVRibEVudHJ5ICpydGUgPSBydF9mZXRjaCh2YXJubywgcm9vdC0+cGFy c2UtPnJ0YWJsZSk7CisKKwkJLyoKKwkJICogT25seSB0aGUgcGFyZW50IHN1YnF1ZXJ5IG9m IGEgZmxhdHRlbmVkIFVOSU9OIEFMTCBhbmQgYW4gaW5oZXJpdGVkCisJCSAqIHRhYmxlIGNh biBoYXZlIGNoaWxkcmVuLgorCQkgKi8KKwkJaWYgKHJ0ZS0+cnRla2luZCAhPSBSVEVfU1VC UVVFUlkgJiYgcnRlLT5ydGVraW5kICE9IFJURV9SRUxBVElPTikKKwkJCXJldHVybjsKKwor CQlpZiAocnRlLT5pbmgpCisJCQkodm9pZCkgYWRkX2FwcGVuZHJlbF9vdGhlcl9yZWxzKHJv b3QsIHJ0ZSwgdmFybm8pOworCX0KKwllbHNlIGlmIChJc0EoanRub2RlLCBGcm9tRXhwcikp CisJeworCQlGcm9tRXhwciAgICpmID0gKEZyb21FeHByICopIGp0bm9kZTsKKwkJTGlzdENl bGwgICAqbDsKKworCQlmb3JlYWNoKGwsIGYtPmZyb21saXN0KQorCQkJYWRkX290aGVyX3Jl bHNfdG9fcXVlcnkocm9vdCwgbGZpcnN0KGwpKTsKKwl9CisJZWxzZSBpZiAoSXNBKGp0bm9k ZSwgSm9pbkV4cHIpKQorCXsKKwkJSm9pbkV4cHIgICAqaiA9IChKb2luRXhwciAqKSBqdG5v ZGU7CisKKwkJYWRkX290aGVyX3JlbHNfdG9fcXVlcnkocm9vdCwgai0+bGFyZyk7CisJCWFk ZF9vdGhlcl9yZWxzX3RvX3F1ZXJ5KHJvb3QsIGotPnJhcmcpOworCX0KKwllbHNlCisJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCisJCQkgKGludCkgbm9k ZVRhZyhqdG5vZGUpKTsKK30KKwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubWFpbi5jIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm1haW4uYwppbmRleCAzY2VkZDAxYzk4Li4w M2M4MTc3MmEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFu bWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5tYWluLmMKQEAg LTE1OSwxMCArMTU5LDggQEAgcXVlcnlfcGxhbm5lcihQbGFubmVySW5mbyAqcm9vdCwgTGlz dCAqdGxpc3QsCiAJc2V0dXBfYXBwZW5kX3JlbF9hcnJheShyb290KTsKIAogCS8qCi0JICog Q29uc3RydWN0IFJlbE9wdEluZm8gbm9kZXMgZm9yIGFsbCBiYXNlIHJlbGF0aW9ucyBpbiBx dWVyeSwgYW5kCi0JICogaW5kaXJlY3RseSBmb3IgYWxsIGFwcGVuZHJlbCBtZW1iZXIgcmVs YXRpb25zICgib3RoZXIgcmVscyIpLiAgVGhpcwotCSAqIHdpbGwgZ2l2ZSB1cyBhIFJlbE9w dEluZm8gZm9yIGV2ZXJ5ICJzaW1wbGUiIChub24tam9pbikgcmVsIGludm9sdmVkIGluCi0J ICogdGhlIHF1ZXJ5LgorCSAqIENvbnN0cnVjdCBSZWxPcHRJbmZvIG5vZGVzIGZvciBhbGwg YmFzZSByZWxhdGlvbnMgZGlyZWN0bHkgbWVudGlvbmVkCisJICogaW4gcXVlcnksIGJ1dCBu b3QgYW55IGFwcGVuZHJlbCBtZW1iZXIgcmVsYXRpb25zICgib3RoZXIgcmVscyIpIHlldC4K IAkgKgogCSAqIE5vdGU6IHRoZSByZWFzb24gd2UgZmluZCB0aGUgcmVscyBieSBzZWFyY2hp bmcgdGhlIGpvaW50cmVlIGFuZAogCSAqIGFwcGVuZHJlbCBsaXN0LCByYXRoZXIgdGhhbiBq dXN0IHNjYW5uaW5nIHRoZSByYW5nZXRhYmxlLCBpcyB0aGF0IHRoZQpAQCAtMjA0LDYgKzIw MiwxNSBAQCBxdWVyeV9wbGFubmVyKFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICp0bGlzdCwK IAlnZW5lcmF0ZV9iYXNlX2ltcGxpZWRfZXF1YWxpdGllcyhyb290KTsKIAogCS8qCisJICog Tm93IHRoYXQgd2UgaGF2ZSByZXN0cmljdCBjbGF1c2VzIGZpZ3VyZWQgb3V0IGFuZCBhc3Np Z25lZCB0byBwcm9wZXIKKwkgKiBiYXNlIHJlbHMsIHdlIGNhbiBwcm9jZWVkIHRvIGFkZCBv dGhlcnJlbHMsIHRoYXQgaXMsIFVOSU9OIEFMTCBjaGlsZAorCSAqIHRhYmxlcywgaW5oZXJp dGFuY2UgY2hpbGQgdGFibGVzLiAgSGF2aW5nIHJlc3RyaWN0IGNsYXVzZXMgcmVhZHkgaGVs cHMKKwkgKiB0byBleGNsdWRlIGFueSBjaGlsZHJlbiB0aGF0IHdvdWxkbid0IGJlIG5lY2Vz c2FyeSB0byBzY2FuLCBiYXNlZCBvbgorCSAqIGNvbnN0cmFpbnQgZXhjbHVzaW9uIGFuZCBw YXJ0aXRpb24gcHJ1bmluZy4KKwkgKi8KKwlhZGRfb3RoZXJfcmVsc190b19xdWVyeShyb290 LCAoTm9kZSAqKSByb290LT5wYXJzZS0+am9pbnRyZWUpOworCisJLyoKIAkgKiBXZSBoYXZl IGNvbXBsZXRlZCBtZXJnaW5nIGVxdWl2YWxlbmNlIHNldHMsIHNvIGl0J3Mgbm93IHBvc3Np YmxlIHRvCiAJICogZ2VuZXJhdGUgcGF0aGtleXMgaW4gY2Fub25pY2FsIGZvcm07IHNvIGNv bXB1dGUgcXVlcnlfcGF0aGtleXMgYW5kCiAJICogb3RoZXIgcGF0aGtleXMgZmllbGRzIGlu IFBsYW5uZXJJbmZvLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwv cmVsbm9kZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcmVsbm9kZS5jCmluZGV4 IDQxMzA1MTQ5NTIuLjhhNTk4MTk0NjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci91dGlsL3JlbG5vZGUuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9y ZWxub2RlLmMKQEAgLTE2LDE5ICsxNiwyNiBAQAogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAK KyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNp bmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvYXBwZW5k aW5mby5oIgogI2luY2x1ZGUgIm9wdGltaXplci9jbGF1c2VzLmgiCiAjaW5jbHVkZSAib3B0 aW1pemVyL2Nvc3QuaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvaW5oZXJpdC5oIgorI2luY2x1 ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcGF0aG5v ZGUuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcGF0aHMuaCIKICNpbmNsdWRlICJvcHRpbWl6 ZXIvcGxhY2Vob2xkZXIuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcGxhbmNhdC5oIgorI2lu Y2x1ZGUgIm9wdGltaXplci9wbGFubWFpbi5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wcmVw LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3Jlc3RyaWN0aW5mby5oIgogI2luY2x1ZGUgIm9w dGltaXplci90bGlzdC5oIgogI2luY2x1ZGUgInBhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmgi CisjaW5jbHVkZSAicGFydGl0aW9uaW5nL3BhcnRkZXNjLmgiCiAjaW5jbHVkZSAidXRpbHMv aHNlYXJjaC5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogCiAKIHR5cGVkZWYgc3RydWN0 IEpvaW5IYXNoRW50cnkKQEAgLTI3Myw1MyArMjgwLDc2IEBAIGJ1aWxkX3NpbXBsZV9yZWwo UGxhbm5lckluZm8gKnJvb3QsIGludCByZWxpZCwgUmVsT3B0SW5mbyAqcGFyZW50KQogCQly b290LT5xdWFsX3NlY3VyaXR5X2xldmVsID0gTWF4KHJvb3QtPnF1YWxfc2VjdXJpdHlfbGV2 ZWwsCiAJCQkJCQkJCQkJbGlzdF9sZW5ndGgocnRlLT5zZWN1cml0eVF1YWxzKSk7CiAKKwly ZXR1cm4gcmVsOworfQorCisvKgorICogYWRkX2FwcGVuZHJlbF9vdGhlcl9yZWxzCisgKgkJ VGhpcyBhZGRzIHRoZSAib3RoZXIgcmVsIiBSZWxPcHRJbmZvcyBhIGdpdmVuICJhcHBlbmRy ZWwiIGJhc2VyZWwKKyAqCisgKiBQYXJlbnQgcmVsYXRpb24gaW4gdGhpcyBjYXNlIGlzIHRo ZSBwYXJlbnQgc3VicXVlcnkgaW4gdGhlIGZsYXR0ZW5lZCBVTklPTgorICogQUxMIGNhc2Ug b3IgYW4gaW5oZXJpdGFuY2UgcGFyZW50IHRhYmxlLgorICovCit2b2lkCithZGRfYXBwZW5k cmVsX290aGVyX3JlbHMoUGxhbm5lckluZm8gKnJvb3QsIFJhbmdlVGJsRW50cnkgKnJ0ZSwg SW5kZXggcnRpKQoreworCUxpc3RDZWxsCSAgICpsOworCVJlbE9wdEluZm8JICAgKnJlbDsK KwlpbnQJCQkJaTsKKworCXJlbCA9IGZpbmRfYmFzZV9yZWwocm9vdCwgcnRpKTsKKwogCS8q Ci0JICogSWYgdGhpcyByZWwgaXMgYW4gYXBwZW5kcmVsIHBhcmVudCwgcmVjdXJzZSB0byBi dWlsZCAib3RoZXIgcmVsIgotCSAqIFJlbE9wdEluZm9zIGZvciBpdHMgY2hpbGRyZW4uICBU aGV5IGFyZSAib3RoZXIgcmVscyIgYmVjYXVzZSB0aGV5IGFyZQotCSAqIG5vdCBpbiB0aGUg bWFpbiBqb2luIHRyZWUsIGJ1dCB3ZSB3aWxsIG5lZWQgUmVsT3B0SW5mb3MgdG8gcGxhbiBh Y2Nlc3MKLQkgKiB0byB0aGVtLgorCSAqIEZvciBwYXJ0aXRpb25lZCB0YWJsZXMsIHdlIG5l ZWQgdG8gc3RvcmUgdGhlIGNoaWxkIFJlbE9wdEluZm9zIGluIHRoZQorCSAqIHJlbC0+cGFy dF9yZWxzIGFycmF5IHRvby4KIAkgKi8KLQlpZiAocnRlLT5pbmgpCisJaWYgKHJlbC0+cGFy dF9zY2hlbWUpCiAJewotCQlMaXN0Q2VsbCAgICpsOwotCQlpbnQJCQlucGFydHMgPSByZWwt Pm5wYXJ0czsKLQkJaW50CQkJY250X3BhcnRzID0gMDsKLQotCQlpZiAobnBhcnRzID4gMCkK LQkJCXJlbC0+cGFydF9yZWxzID0gKFJlbE9wdEluZm8gKiopCi0JCQkJcGFsbG9jKHNpemVv ZihSZWxPcHRJbmZvICopICogbnBhcnRzKTsKLQotCQlmb3JlYWNoKGwsIHJvb3QtPmFwcGVu ZF9yZWxfbGlzdCkKLQkJewotCQkJQXBwZW5kUmVsSW5mbyAqYXBwaW5mbyA9IChBcHBlbmRS ZWxJbmZvICopIGxmaXJzdChsKTsKLQkJCVJlbE9wdEluZm8gKmNoaWxkcmVsOwotCi0JCQkv KiBhcHBlbmRfcmVsX2xpc3QgY29udGFpbnMgYWxsIGFwcGVuZCByZWxzOyBpZ25vcmUgb3Ro ZXJzICovCi0JCQlpZiAoYXBwaW5mby0+cGFyZW50X3JlbGlkICE9IHJlbGlkKQotCQkJCWNv bnRpbnVlOwotCi0JCQljaGlsZHJlbCA9IGJ1aWxkX3NpbXBsZV9yZWwocm9vdCwgYXBwaW5m by0+Y2hpbGRfcmVsaWQsCi0JCQkJCQkJCQkJcmVsKTsKLQotCQkJLyogTm90aGluZyBtb3Jl IHRvIGRvIGZvciBhbiB1bnBhcnRpdGlvbmVkIHRhYmxlLiAqLwotCQkJaWYgKCFyZWwtPnBh cnRfc2NoZW1lKQotCQkJCWNvbnRpbnVlOwotCi0JCQkvKgotCQkJICogVGhlIG9yZGVyIG9m IHBhcnRpdGlvbiBPSURzIGluIGFwcGVuZF9yZWxfbGlzdCBpcyB0aGUgc2FtZSBhcwotCQkJ ICogdGhlIG9yZGVyIGluIHRoZSBQYXJ0aXRpb25EZXNjLCBzbyB0aGUgb3JkZXIgb2YgcGFy dF9yZWxzIHdpbGwKLQkJCSAqIGFsc28gbWF0Y2ggdGhlIFBhcnRpdGlvbkRlc2MuICBTZWUg ZXhwYW5kX3BhcnRpdGlvbmVkX3J0ZW50cnkuCi0JCQkgKi8KLQkJCUFzc2VydChjbnRfcGFy dHMgPCBucGFydHMpOwotCQkJcmVsLT5wYXJ0X3JlbHNbY250X3BhcnRzXSA9IGNoaWxkcmVs OwotCQkJY250X3BhcnRzKys7Ci0JCX0KLQotCQkvKiBXZSBzaG91bGQgaGF2ZSBzZWVuIGFs bCB0aGUgY2hpbGQgcGFydGl0aW9ucy4gKi8KLQkJQXNzZXJ0KGNudF9wYXJ0cyA9PSBucGFy dHMpOworCQlBc3NlcnQocmVsLT5ucGFydHMgPiAwKTsKKwkJcmVsLT5wYXJ0X3JlbHMgPSAo UmVsT3B0SW5mbyAqKikKKwkJCQlwYWxsb2MwKHNpemVvZihSZWxPcHRJbmZvICopICogcmVs LT5ucGFydHMpOwogCX0KIAotCXJldHVybiByZWw7CisJaSAgPSAwOworCWZvcmVhY2gobCwg cm9vdC0+YXBwZW5kX3JlbF9saXN0KQorCXsKKwkJQXBwZW5kUmVsSW5mbyAgKmFwcGluZm8g PSBsZmlyc3QobCk7CisJCUluZGV4CQkJY2hpbGRSVGluZGV4ID0gYXBwaW5mby0+Y2hpbGRf cmVsaWQ7CisJCVJhbmdlVGJsRW50cnkgICpjaGlsZHJ0ZTsKKwkJUmVsT3B0SW5mbwkgICAq Y2hpbGRyZWw7CisKKwkJaWYgKGFwcGluZm8tPnBhcmVudF9yZWxpZCAhPSBydGkpCisJCQkJ Y29udGludWU7CisKKwkJQXNzZXJ0KGNoaWxkUlRpbmRleCA8IHJvb3QtPnNpbXBsZV9yZWxf YXJyYXlfc2l6ZSk7CisJCWNoaWxkcnRlID0gcm9vdC0+c2ltcGxlX3J0ZV9hcnJheVtjaGls ZFJUaW5kZXhdOworCQlBc3NlcnQoY2hpbGRydGUgIT0gTlVMTCk7CisJCWNoaWxkcmVsID0g YnVpbGRfc2ltcGxlX3JlbChyb290LCBjaGlsZFJUaW5kZXgsIHJlbCk7CisKKwkJLyoKKwkJ ICogRm9yIHBhcnRpdGlvbmVkIHBhcmVudHMsIHdlIGFsc28gbmVlZCB0byBhZGQgY2hpbGRy ZWwgdG8gaXRzCisJCSAqIHBhcnRfcmVscyBhcnJheS4gIFRoZSBvcmRlciBpbiB3aGljaCBj aGlsZCB0YWJsZXMgYXBwZWFyIGluCisJCSAqIGFwcGVuZF9yZWxfbGlzdCBpcyBzYW1lIGFz IHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFwcGVhciBpbiB0aGUKKwkJICogcGFyZW50J3Mg UGFydGl0aW9uRGVzYywgc28gYXNzaWduaW5nIHBhcnRpdGlvbnMgbGlrZSB0aGlzIHdvcmtz LgorCQkgKi8KKwkJaWYgKHJlbC0+cGFydF9zY2hlbWUgIT0gTlVMTCkKKwkJeworCQkJQXNz ZXJ0KGkgPCByZWwtPm5wYXJ0cyk7CisJCQlyZWwtPnBhcnRfcmVsc1tpXSA9IGNoaWxkcmVs OworCQl9CisKKwkJaSsrOworCisJCS8qIENoaWxkIG1heSBpdHNlbGYgYmUgYW4gaW5oZXJp dGVkIHJlbGF0aW9uLiAqLworCQlpZiAoY2hpbGRydGUtPmluaCkKKwkJCWFkZF9hcHBlbmRy ZWxfb3RoZXJfcmVscyhyb290LCBjaGlsZHJ0ZSwgY2hpbGRSVGluZGV4KTsKKwl9CisKKwkv KgorCSAqIEZvciBhIHBhcnRpdGlvbmVkIHRhYmxlIHdpdGggbm9uLXplcm8gbnVtYmVyIG9m IHBhcnRpdGlvbnMsIHdlIG11c3QKKwkgKiBoYXZlIGFzc2lnbmVkIGFsbCBlbGVtZW50cyBv ZiBpdHMgcGFydF9yZWxzIGFycmF5LgorCSAqLworCUFzc2VydChyZWwtPm5wYXJ0cyA9PSAw IHx8IGkgPT0gcmVsLT5ucGFydHMpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3BhdGhub2RlLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5v ZGUuaAppbmRleCA1NzRiYjg1YjUwLi4xYTA3OTYzYTdkIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIv cGF0aG5vZGUuaApAQCAtMjc5LDYgKzI3OSw4IEBAIGV4dGVybiB2b2lkIHNldHVwX3NpbXBs ZV9yZWxfYXJyYXlzKFBsYW5uZXJJbmZvICpyb290KTsKIGV4dGVybiB2b2lkIHNldHVwX2Fw cGVuZF9yZWxfYXJyYXkoUGxhbm5lckluZm8gKnJvb3QpOwogZXh0ZXJuIFJlbE9wdEluZm8g KmJ1aWxkX3NpbXBsZV9yZWwoUGxhbm5lckluZm8gKnJvb3QsIGludCByZWxpZCwKIAkJCQkg UmVsT3B0SW5mbyAqcGFyZW50KTsKK2V4dGVybiB2b2lkIGFkZF9hcHBlbmRyZWxfb3RoZXJf cmVscyhQbGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcnRlLAorCQkJCSBJbmRl eCBydGkpOwogZXh0ZXJuIFJlbE9wdEluZm8gKmZpbmRfYmFzZV9yZWwoUGxhbm5lckluZm8g KnJvb3QsIGludCByZWxpZCk7CiBleHRlcm4gUmVsT3B0SW5mbyAqZmluZF9qb2luX3JlbChQ bGFubmVySW5mbyAqcm9vdCwgUmVsaWRzIHJlbGlkcyk7CiBleHRlcm4gUmVsT3B0SW5mbyAq YnVpbGRfam9pbl9yZWwoUGxhbm5lckluZm8gKnJvb3QsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFu bWFpbi5oCmluZGV4IDNiYmRiNWUyZjcuLjAzNWNhYWM1MDAgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXpl ci9wbGFubWFpbi5oCkBAIC02NSw2ICs2NSw3IEBAIGV4dGVybiBpbnQJZnJvbV9jb2xsYXBz ZV9saW1pdDsKIGV4dGVybiBpbnQJam9pbl9jb2xsYXBzZV9saW1pdDsKIAogZXh0ZXJuIHZv aWQgYWRkX2Jhc2VfcmVsc190b19xdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRu b2RlKTsKK2V4dGVybiB2b2lkIGFkZF9vdGhlcl9yZWxzX3RvX3F1ZXJ5KFBsYW5uZXJJbmZv ICpyb290LCBOb2RlICpqdG5vZGUpOwogZXh0ZXJuIHZvaWQgYnVpbGRfYmFzZV9yZWxfdGxp c3RzKFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICpmaW5hbF90bGlzdCk7CiBleHRlcm4gdm9p ZCBhZGRfdmFyc190b190YXJnZXRsaXN0KFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICp2YXJz LAogCQkJCQkgICBSZWxpZHMgd2hlcmVfbmVlZGVkLCBib29sIGNyZWF0ZV9uZXdfcGgpOwot LSAKMi4xMS4wCgo= --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0002-Add-rowmark-junk-targetlist-entries-in-query_pla.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0002-Add-rowmark-junk-targetlist-entries-in-query_pla.pa"; filename*1="tch" RnJvbSBmODUwZjBmNjJlOWQzNjNmMDJmMzJhOTNkNmI0ODlkYjFlNmRmODM3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAxMiBNYXIgMjAxOSAxMDo0NzozNyArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djM0IDIvOV0gQWRkIHJvd21hcmsgImp1bmsiIHRhcmdldGxpc3QgZW50cmllcyBpbgogcXVl cnlfcGxhbm5lcgoKV2UnZCBsaWtlIHRvIHBvc3Rwb25lIGFkZGluZyBpbmhlcml0YW5jZSBj aGlsZHJlbiB0byBxdWVyeSB1bnRpbApxdWVyeV9wbGFubmVyIGhhcyBmaW5pc2hlZCBkaXN0 cmlidXRpbmcgcXVhbHMgdG8gaW5kaXZpZHVhbApiYXNlcmVscywgd2hpY2ggbWVhbnMgYWxz byBkZWxheWluZyBhZGRpbmcgY2hpbGQgcm93IG1hcmtzLiAgQXMKdGhpbmdzIHN0YW5kIHRv ZGF5LCB3aGljaCAianVuayIgVmFycyB0byBhZGQgdG8gdGhlIHRhcmdldGxpc3QgZm9yCmEg Z2l2ZW4gcGFyZW50IHJvdyBtYXJrIGlzIG5vdCBjbGVhciB1bnRpbCBhbGwgdGhlIGNoaWxk IHJvdyBtYXJrcwpoYXZlIGJlZW4gc2Vlbi4gIFNvLCB3ZSBtdXN0IGRlbGF5IGFkZGluZyAi anVuayIgVmFycyB1bnRpbCB0aGUKY2hpbGRyZW4gYXJlIGFkZGVkLgoKU2luY2UgdGhpcyBj aGFuZ2VzIHRoZSBvcmRlciBpbiB3aGljaCBleHByZXNzaW9ucyBhcmUgYWRkZWQgdG8gdGhl CmluZGl2aWR1YWwgYmFzZXJlbHMnIHRhcmdldGxpc3RzLCBzbyBkb2VzIHRoZSBvcmRlciBv ZiBleHByZXNzaW9ucwppbiB0aGUgUGF0aHMgdG8gc2NhbiB0aGVtIGFuZCBQYXRocyBidWls dCBvbiB0b3Agb2YgdGhlbS4gIFRoYXQgaXMKd2h5IHRoZXJlIGFyZSByZWdyZXNzaW9uIHRl c3QgZXhwZWN0ZWQgb3V0cHV0IGNoYW5nZXMuCi0tLQogY29udHJpYi9wb3N0Z3Jlc19mZHcv ZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCB8ICA3NiArKysrKystLS0tLS0tCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFuYWdnLmMgICAgICAgICAgIHwgICAyICstCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubWFpbi5jICAgICAgICAgIHwgIDI4ICsrKyst CiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgIHwgIDIx ICsrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXB0bGlzdC5jICAgICAgICAg fCAxNTIgKysrKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvb3B0aW1pemVy L3BsYW5tYWluLmggICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvb3B0aW1p emVyL3ByZXAuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3dpdGgub3V0ICAgICAgICAgICAgIHwgICA4ICstCiA4IGZpbGVzIGNoYW5n ZWQsIDE2OCBpbnNlcnRpb25zKCspLCAxMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCBiL2NvbnRy aWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKaW5kZXggNDIxMDhi ZDNkNC4uYzkxMmU5NWZlMSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhw ZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBl Y3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC01NTc3LDI1ICs1NTc3LDI1IEBAIFVQREFURSBm dDIgU0VUIGMzID0gJ2JheicKICAgIE91dHB1dDogZnQyLmMxLCBmdDIuYzIsIGZ0Mi5jMywg ZnQyLmM0LCBmdDIuYzUsIGZ0Mi5jNiwgZnQyLmM3LCBmdDIuYzgsIGZ0NC5jMSwgZnQ0LmMy LCBmdDQuYzMsIGZ0NS5jMSwgZnQ1LmMyLCBmdDUuYzMKICAgIFJlbW90ZSBTUUw6IFVQREFU RSAiUyAxIi4iVCAxIiBTRVQgYzMgPSAkMiBXSEVSRSBjdGlkID0gJDEgUkVUVVJOSU5HICJD IDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOAogICAgLT4gIE5lc3RlZCBMb29wCi0g ICAgICAgICBPdXRwdXQ6IGZ0Mi5jMSwgZnQyLmMyLCBOVUxMOjppbnRlZ2VyLCAnYmF6Jzo6 dGV4dCwgZnQyLmM0LCBmdDIuYzUsIGZ0Mi5jNiwgZnQyLmM3LCBmdDIuYzgsIGZ0Mi5jdGlk LCBmdDQuKiwgZnQ1LiosIGZ0NC5jMSwgZnQ0LmMyLCBmdDQuYzMsIGZ0NS5jMSwgZnQ1LmMy LCBmdDUuYzMKKyAgICAgICAgIE91dHB1dDogZnQyLmMxLCBmdDIuYzIsIE5VTEw6OmludGVn ZXIsICdiYXonOjp0ZXh0LCBmdDIuYzQsIGZ0Mi5jNSwgZnQyLmM2LCBmdDIuYzcsIGZ0Mi5j OCwgZnQyLmN0aWQsIGZ0NC5jMSwgZnQ0LmMyLCBmdDQuYzMsIGZ0NS5jMSwgZnQ1LmMyLCBm dDUuYzMsIGZ0NC4qLCBmdDUuKgogICAgICAgICAgSm9pbiBGaWx0ZXI6IChmdDIuYzIgPT09 IGZ0NC5jMSkKICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0MgogICAg ICAgICAgICAgICAgT3V0cHV0OiBmdDIuYzEsIGZ0Mi5jMiwgZnQyLmM0LCBmdDIuYzUsIGZ0 Mi5jNiwgZnQyLmM3LCBmdDIuYzgsIGZ0Mi5jdGlkCiAgICAgICAgICAgICAgICBSZW1vdGUg U1FMOiBTRUxFQ1QgIkMgMSIsIGMyLCBjNCwgYzUsIGM2LCBjNywgYzgsIGN0aWQgRlJPTSAi UyAxIi4iVCAxIiBXSEVSRSAoKCJDIDEiID4gMjAwMCkpIEZPUiBVUERBVEUKICAgICAgICAg IC0+ICBGb3JlaWduIFNjYW4KLSAgICAgICAgICAgICAgIE91dHB1dDogZnQ0LiosIGZ0NC5j MSwgZnQ0LmMyLCBmdDQuYzMsIGZ0NS4qLCBmdDUuYzEsIGZ0NS5jMiwgZnQ1LmMzCisgICAg ICAgICAgICAgICBPdXRwdXQ6IGZ0NC5jMSwgZnQ0LmMyLCBmdDQuYzMsIGZ0NC4qLCBmdDUu YzEsIGZ0NS5jMiwgZnQ1LmMzLCBmdDUuKgogICAgICAgICAgICAgICAgUmVsYXRpb25zOiAo cHVibGljLmZ0NCkgSU5ORVIgSk9JTiAocHVibGljLmZ0NSkKLSAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCBDQVNFIFdIRU4gKHIyLiopOjp0ZXh0IElTIE5PVCBOVUxMIFRI RU4gUk9XKHIyLmMxLCByMi5jMiwgcjIuYzMpIEVORCwgcjIuYzEsIHIyLmMyLCByMi5jMywg Q0FTRSBXSEVOIChyMy4qKTo6dGV4dCBJUyBOT1QgTlVMTCBUSEVOIFJPVyhyMy5jMSwgcjMu YzIsIHIzLmMzKSBFTkQsIHIzLmMxLCByMy5jMiwgcjMuYzMgRlJPTSAoIlMgMSIuIlQgMyIg cjIgSU5ORVIgSk9JTiAiUyAxIi4iVCA0IiByMyBPTiAoKChyMi5jMSA9IHIzLmMxKSkpKQor ICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIHIyLmMxLCByMi5jMiwgcjIuYzMs IENBU0UgV0hFTiAocjIuKik6OnRleHQgSVMgTk9UIE5VTEwgVEhFTiBST1cocjIuYzEsIHIy LmMyLCByMi5jMykgRU5ELCByMy5jMSwgcjMuYzIsIHIzLmMzLCBDQVNFIFdIRU4gKHIzLiop Ojp0ZXh0IElTIE5PVCBOVUxMIFRIRU4gUk9XKHIzLmMxLCByMy5jMiwgcjMuYzMpIEVORCBG Uk9NICgiUyAxIi4iVCAzIiByMiBJTk5FUiBKT0lOICJTIDEiLiJUIDQiIHIzIE9OICgoKHIy LmMxID0gcjMuYzEpKSkpCiAgICAgICAgICAgICAgICAtPiAgSGFzaCBKb2luCi0gICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IGZ0NC4qLCBmdDQuYzEsIGZ0NC5jMiwgZnQ0LmMzLCBm dDUuKiwgZnQ1LmMxLCBmdDUuYzIsIGZ0NS5jMworICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiBmdDQuYzEsIGZ0NC5jMiwgZnQ0LmMzLCBmdDQuKiwgZnQ1LmMxLCBmdDUuYzIsIGZ0 NS5jMywgZnQ1LioKICAgICAgICAgICAgICAgICAgICAgIEhhc2ggQ29uZDogKGZ0NC5jMSA9 IGZ0NS5jMSkKICAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVi bGljLmZ0NAotICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDQuKiwgZnQ0 LmMxLCBmdDQuYzIsIGZ0NC5jMworICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0 OiBmdDQuYzEsIGZ0NC5jMiwgZnQ0LmMzLCBmdDQuKgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGMxLCBjMiwgYzMgRlJPTSAiUyAxIi4iVCAzIgog ICAgICAgICAgICAgICAgICAgICAgLT4gIEhhc2gKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogZnQ1LiosIGZ0NS5jMSwgZnQ1LmMyLCBmdDUuYzMKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIE91dHB1dDogZnQ1LmMxLCBmdDUuYzIsIGZ0NS5jMywgZnQ1LioK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGlj LmZ0NQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDUuKiwg ZnQ1LmMxLCBmdDUuYzIsIGZ0NS5jMworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT3V0cHV0OiBmdDUuYzEsIGZ0NS5jMiwgZnQ1LmMzLCBmdDUuKgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGMxLCBjMiwgYzMgRlJP TSAiUyAxIi4iVCA0IgogKDI0IHJvd3MpCiAKQEAgLTU2MjYsMTYgKzU2MjYsMTYgQEAgREVM RVRFIEZST00gZnQyCiAgICAgICAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgICAgICAg IE91dHB1dDogZnQyLmN0aWQsIGZ0NC4qLCBmdDUuKiwgZnQ0LmMxLCBmdDUuYzEKICAgICAg ICAgICAgICAgIC0+ICBOZXN0ZWQgTG9vcAotICAgICAgICAgICAgICAgICAgICAgT3V0cHV0 OiBmdDIuY3RpZCwgZnQ0LiosIGZ0NC5jMQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0 OiBmdDIuY3RpZCwgZnQ0LmMxLCBmdDQuKgogICAgICAgICAgICAgICAgICAgICAgSm9pbiBG aWx0ZXI6IChmdDIuYzIgPSBmdDQuYzEpCiAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9y ZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogZnQyLmN0aWQsIGZ0Mi5jMgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVt b3RlIFNRTDogU0VMRUNUIGMyLCBjdGlkIEZST00gIlMgMSIuIlQgMSIgV0hFUkUgKCgiQyAx IiA+IDIwMDApKSBGT1IgVVBEQVRFCiAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWln biBTY2FuIG9uIHB1YmxpYy5mdDQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1 dDogZnQ0LiosIGZ0NC5jMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBm dDQuYzEsIGZ0NC4qCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBT RUxFQ1QgYzEsIGMyLCBjMyBGUk9NICJTIDEiLiJUIDMiCiAgICAgICAgICAgICAgICAtPiAg Rm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDUKLSAgICAgICAgICAgICAgICAgICAgIE91dHB1 dDogZnQ1LiosIGZ0NS5jMQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmdDUuYzEs IGZ0NS4qCiAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYzEsIGMy LCBjMyBGUk9NICJTIDEiLiJUIDQiCiAoMjIgcm93cykKIApAQCAtNzEyOCwxNSArNzEyOCwx NSBAQCBzZWxlY3QgKiBmcm9tIGJhciB3aGVyZSBmMSBpbiAoc2VsZWN0IGYxIGZyb20gZm9v KSBmb3IgdXBkYXRlOwogICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBiYXIyLmYxLCBi YXIyLmYyLCBiYXIyLmN0aWQsIGJhcjIuKiwgYmFyMi50YWJsZW9pZAogICAgICAgICAgICAg ICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxLCBmMiwgZjMsIGN0aWQgRlJPTSBwdWJs aWMubG9jdDIgRk9SIFVQREFURQogICAgICAgICAgLT4gIEhhc2gKLSAgICAgICAgICAgICAg IE91dHB1dDogZm9vLmN0aWQsIGZvby4qLCBmb28udGFibGVvaWQsIGZvby5mMQorICAgICAg ICAgICAgICAgT3V0cHV0OiBmb28uZjEsIGZvby5jdGlkLCBmb28uKiwgZm9vLnRhYmxlb2lk CiAgICAgICAgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZQotICAgICAgICAgICAgICAgICAg ICAgT3V0cHV0OiBmb28uY3RpZCwgZm9vLiosIGZvby50YWJsZW9pZCwgZm9vLmYxCisgICAg ICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvby5mMSwgZm9vLmN0aWQsIGZvby4qLCBmb28u dGFibGVvaWQKICAgICAgICAgICAgICAgICAgICAgIEdyb3VwIEtleTogZm9vLmYxCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgQXBwZW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZvbwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT3V0cHV0OiBmb28uY3RpZCwgZm9vLiosIGZvby50YWJsZW9pZCwgZm9vLmYx CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvby5mMSwgZm9v LmN0aWQsIGZvby4qLCBmb28udGFibGVvaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZvbzIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogZm9vMi5jdGlkLCBmb28yLiosIGZvbzIudGFibGVvaWQs IGZvbzIuZjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZm9v Mi5mMSwgZm9vMi5jdGlkLCBmb28yLiosIGZvbzIudGFibGVvaWQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIsIGYzLCBjdGlk IEZST00gcHVibGljLmxvY3QxCiAoMjMgcm93cykKIApAQCAtNzE2NiwxNSArNzE2NiwxNSBA QCBzZWxlY3QgKiBmcm9tIGJhciB3aGVyZSBmMSBpbiAoc2VsZWN0IGYxIGZyb20gZm9vKSBm b3Igc2hhcmU7CiAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGJhcjIuZjEsIGJhcjIu ZjIsIGJhcjIuY3RpZCwgYmFyMi4qLCBiYXIyLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEsIGYyLCBmMywgY3RpZCBGUk9NIHB1YmxpYy5s b2N0MiBGT1IgU0hBUkUKICAgICAgICAgIC0+ICBIYXNoCi0gICAgICAgICAgICAgICBPdXRw dXQ6IGZvby5jdGlkLCBmb28uKiwgZm9vLnRhYmxlb2lkLCBmb28uZjEKKyAgICAgICAgICAg ICAgIE91dHB1dDogZm9vLmYxLCBmb28uY3RpZCwgZm9vLiosIGZvby50YWJsZW9pZAogICAg ICAgICAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKLSAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogZm9vLmN0aWQsIGZvby4qLCBmb28udGFibGVvaWQsIGZvby5mMQorICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiBmb28uZjEsIGZvby5jdGlkLCBmb28uKiwgZm9vLnRhYmxl b2lkCiAgICAgICAgICAgICAgICAgICAgICBHcm91cCBLZXk6IGZvby5mMQogICAgICAgICAg ICAgICAgICAgICAgLT4gIEFwcGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHB1YmxpYy5mb28KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogZm9vLmN0aWQsIGZvby4qLCBmb28udGFibGVvaWQsIGZvby5mMQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmb28uZjEsIGZvby5jdGlk LCBmb28uKiwgZm9vLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAg Rm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mb28yCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6IGZvbzIuY3RpZCwgZm9vMi4qLCBmb28yLnRhYmxlb2lkLCBmb28y LmYxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvbzIuZjEs IGZvbzIuY3RpZCwgZm9vMi4qLCBmb28yLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEsIGYyLCBmMywgY3RpZCBGUk9N IHB1YmxpYy5sb2N0MQogKDIzIHJvd3MpCiAKQEAgLTcyMDMsMTUgKzcyMDMsMTUgQEAgdXBk YXRlIGJhciBzZXQgZjIgPSBmMiArIDEwMCB3aGVyZSBmMSBpbiAoc2VsZWN0IGYxIGZyb20g Zm9vKTsKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMuYmFyCiAgICAgICAgICAg ICAgICBPdXRwdXQ6IGJhci5mMSwgYmFyLmYyLCBiYXIuY3RpZAogICAgICAgICAgLT4gIEhh c2gKLSAgICAgICAgICAgICAgIE91dHB1dDogZm9vLmN0aWQsIGZvby4qLCBmb28udGFibGVv aWQsIGZvby5mMQorICAgICAgICAgICAgICAgT3V0cHV0OiBmb28uZjEsIGZvby5jdGlkLCBm b28uKiwgZm9vLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0ZQot ICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmb28uY3RpZCwgZm9vLiosIGZvby50YWJs ZW9pZCwgZm9vLmYxCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvby5mMSwgZm9v LmN0aWQsIGZvby4qLCBmb28udGFibGVvaWQKICAgICAgICAgICAgICAgICAgICAgIEdyb3Vw IEtleTogZm9vLmYxCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQXBwZW5kCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZvbwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmb28uY3RpZCwgZm9vLiosIGZv by50YWJsZW9pZCwgZm9vLmYxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP dXRwdXQ6IGZvby5mMSwgZm9vLmN0aWQsIGZvby4qLCBmb28udGFibGVvaWQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZvbzIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZm9vMi5jdGlkLCBmb28y LiosIGZvbzIudGFibGVvaWQsIGZvbzIuZjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogZm9vMi5mMSwgZm9vMi5jdGlkLCBmb28yLiosIGZvbzIudGFibGVv aWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVD VCBmMSwgZjIsIGYzLCBjdGlkIEZST00gcHVibGljLmxvY3QxCiAgICAtPiAgSGFzaCBKb2lu CiAgICAgICAgICBPdXRwdXQ6IGJhcjIuZjEsIChiYXIyLmYyICsgMTAwKSwgYmFyMi5mMywg YmFyMi5jdGlkLCBmb28uY3RpZCwgZm9vLiosIGZvby50YWJsZW9pZApAQCAtNzIyMSwxNSAr NzIyMSwxNSBAQCB1cGRhdGUgYmFyIHNldCBmMiA9IGYyICsgMTAwIHdoZXJlIGYxIGluIChz ZWxlY3QgZjEgZnJvbSBmb28pOwogICAgICAgICAgICAgICAgT3V0cHV0OiBiYXIyLmYxLCBi YXIyLmYyLCBiYXIyLmYzLCBiYXIyLmN0aWQKICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6 IFNFTEVDVCBmMSwgZjIsIGYzLCBjdGlkIEZST00gcHVibGljLmxvY3QyIEZPUiBVUERBVEUK ICAgICAgICAgIC0+ICBIYXNoCi0gICAgICAgICAgICAgICBPdXRwdXQ6IGZvby5jdGlkLCBm b28uKiwgZm9vLnRhYmxlb2lkLCBmb28uZjEKKyAgICAgICAgICAgICAgIE91dHB1dDogZm9v LmYxLCBmb28uY3RpZCwgZm9vLiosIGZvby50YWJsZW9pZAogICAgICAgICAgICAgICAgLT4g IEhhc2hBZ2dyZWdhdGUKLSAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZm9vLmN0aWQs IGZvby4qLCBmb28udGFibGVvaWQsIGZvby5mMQorICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiBmb28uZjEsIGZvby5jdGlkLCBmb28uKiwgZm9vLnRhYmxlb2lkCiAgICAgICAgICAg ICAgICAgICAgICBHcm91cCBLZXk6IGZvby5mMQogICAgICAgICAgICAgICAgICAgICAgLT4g IEFwcGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1 YmxpYy5mb28KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZm9v LmN0aWQsIGZvby4qLCBmb28udGFibGVvaWQsIGZvby5mMQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT3V0cHV0OiBmb28uZjEsIGZvby5jdGlkLCBmb28uKiwgZm9vLnRh Ymxlb2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9u IHB1YmxpYy5mb28yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IGZvbzIuY3RpZCwgZm9vMi4qLCBmb28yLnRhYmxlb2lkLCBmb28yLmYxCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvbzIuZjEsIGZvbzIuY3RpZCwgZm9v Mi4qLCBmb28yLnRhYmxlb2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZW1vdGUgU1FMOiBTRUxFQ1QgZjEsIGYyLCBmMywgY3RpZCBGUk9NIHB1YmxpYy5sb2N0MQog KDM5IHJvd3MpCiAKQEAgLTcyNjIsMTQgKzcyNjIsMTQgQEAgd2hlcmUgYmFyLmYxID0gc3Mu ZjE7CiAgICAgICAgICBIYXNoIENvbmQ6IChmb28uZjEgPSBiYXIuZjEpCiAgICAgICAgICAt PiAgQXBwZW5kCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZvbwot ICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBST1coZm9vLmYxKSwgZm9vLmYxCisgICAg ICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvby5mMSwgUk9XKGZvby5mMSkKICAgICAgICAg ICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZvbzIKLSAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogUk9XKGZvbzIuZjEpLCBmb28yLmYxCisgICAgICAgICAgICAgICAg ICAgICBPdXRwdXQ6IGZvbzIuZjEsIFJPVyhmb28yLmYxKQogICAgICAgICAgICAgICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxIEZST00gcHVibGljLmxvY3QxCiAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZvbyBmb29fMQotICAgICAgICAgICAgICAg ICAgICAgT3V0cHV0OiBST1coKGZvb18xLmYxICsgMykpLCAoZm9vXzEuZjEgKyAzKQorICAg ICAgICAgICAgICAgICAgICAgT3V0cHV0OiAoZm9vXzEuZjEgKyAzKSwgUk9XKChmb29fMS5m MSArIDMpKQogICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZm9v MiBmb28yXzEKLSAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogUk9XKChmb28yXzEuZjEg KyAzKSksIChmb28yXzEuZjEgKyAzKQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiAo Zm9vMl8xLmYxICsgMyksIFJPVygoZm9vMl8xLmYxICsgMykpCiAgICAgICAgICAgICAgICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEgRlJPTSBwdWJsaWMubG9jdDEKICAgICAgICAg IC0+ICBIYXNoCiAgICAgICAgICAgICAgICBPdXRwdXQ6IGJhci5mMSwgYmFyLmYyLCBiYXIu Y3RpZApAQCAtNzI4NSwxOCArNzI4NSwxOCBAQCB3aGVyZSBiYXIuZjEgPSBzcy5mMTsKICAg ICAgICAgICAgICAgICAgICAgIE91dHB1dDogYmFyMi5mMSwgYmFyMi5mMiwgYmFyMi5mMywg YmFyMi5jdGlkCiAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEs IGYyLCBmMywgY3RpZCBGUk9NIHB1YmxpYy5sb2N0MiBGT1IgVVBEQVRFCiAgICAgICAgICAt PiAgU29ydAotICAgICAgICAgICAgICAgT3V0cHV0OiAoUk9XKGZvby5mMSkpLCBmb28uZjEK KyAgICAgICAgICAgICAgIE91dHB1dDogZm9vLmYxLCAoUk9XKGZvby5mMSkpCiAgICAgICAg ICAgICAgICBTb3J0IEtleTogZm9vLmYxCiAgICAgICAgICAgICAgICAtPiAgQXBwZW5kCiAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZvbwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBST1coZm9vLmYxKSwgZm9vLmYxCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvby5mMSwgUk9XKGZvby5mMSkKICAg ICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZvbzIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogUk9XKGZvbzIuZjEpLCBmb28yLmYx CisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvbzIuZjEsIFJPVyhmb28y LmYxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGYx IEZST00gcHVibGljLmxvY3QxCiAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcHVibGljLmZvbyBmb29fMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0 OiBST1coKGZvb18xLmYxICsgMykpLCAoZm9vXzEuZjEgKyAzKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiAoZm9vXzEuZjEgKyAzKSwgUk9XKChmb29fMS5mMSArIDMp KQogICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZm9v MiBmb28yXzEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogUk9XKChmb28y XzEuZjEgKyAzKSksIChmb28yXzEuZjEgKyAzKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgT3V0cHV0OiAoZm9vMl8xLmYxICsgMyksIFJPVygoZm9vMl8xLmYxICsgMykpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEgRlJPTSBwdWJs aWMubG9jdDEKICg0NSByb3dzKQogCkBAIC03NTU5LDEyICs3NTU5LDEyIEBAIHVwZGF0ZSBw YXJlbnQgc2V0IGIgPSBwYXJlbnQuYiB8fCByZW10Mi5iIGZyb20gcmVtdDIgd2hlcmUgcGFy ZW50LmEgPSByZW10Mi5hIHJlCiAgICBVcGRhdGUgb24gcHVibGljLnBhcmVudAogICAgRm9y ZWlnbiBVcGRhdGUgb24gcHVibGljLnJlbXQxCiAgICAtPiAgTmVzdGVkIExvb3AKLSAgICAg ICAgIE91dHB1dDogcGFyZW50LmEsIChwYXJlbnQuYiB8fCByZW10Mi5iKSwgcGFyZW50LmN0 aWQsIHJlbXQyLiosIHJlbXQyLmEsIHJlbXQyLmIKKyAgICAgICAgIE91dHB1dDogcGFyZW50 LmEsIChwYXJlbnQuYiB8fCByZW10Mi5iKSwgcGFyZW50LmN0aWQsIHJlbXQyLmEsIHJlbXQy LmIsIHJlbXQyLioKICAgICAgICAgIEpvaW4gRmlsdGVyOiAocGFyZW50LmEgPSByZW10Mi5h KQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5wYXJlbnQKICAgICAgICAgICAg ICAgIE91dHB1dDogcGFyZW50LmEsIHBhcmVudC5iLCBwYXJlbnQuY3RpZAogICAgICAgICAg LT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMucmVtdDIKLSAgICAgICAgICAgICAgIE91dHB1 dDogcmVtdDIuYiwgcmVtdDIuKiwgcmVtdDIuYQorICAgICAgICAgICAgICAgT3V0cHV0OiBy ZW10Mi5iLCByZW10Mi5hLCByZW10Mi4qCiAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBT RUxFQ1QgYSwgYiBGUk9NIHB1YmxpYy5sb2N0MgogICAgLT4gIEZvcmVpZ24gVXBkYXRlCiAg ICAgICAgICBSZW1vdGUgU1FMOiBVUERBVEUgcHVibGljLmxvY3QxIHI0IFNFVCBiID0gKHI0 LmIgfHwgcjIuYikgRlJPTSBwdWJsaWMubG9jdDIgcjIgV0hFUkUgKChyNC5hID0gcjIuYSkp IFJFVFVSTklORyByNC5hLCByNC5iLCByMi5hLCByMi5iCkBAIC03NTkxLDcgKzc1OTEsNyBA QCBkZWxldGUgZnJvbSBwYXJlbnQgdXNpbmcgcmVtdDIgd2hlcmUgcGFyZW50LmEgPSByZW10 Mi5hIHJldHVybmluZyBwYXJlbnQ7CiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGlj LnBhcmVudAogICAgICAgICAgICAgICAgT3V0cHV0OiBwYXJlbnQuY3RpZCwgcGFyZW50LmEK ICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLnJlbXQyCi0gICAgICAgICAg ICAgICBPdXRwdXQ6IHJlbXQyLiosIHJlbXQyLmEKKyAgICAgICAgICAgICAgIE91dHB1dDog cmVtdDIuYSwgcmVtdDIuKgogICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEs IGIgRlJPTSBwdWJsaWMubG9jdDIKICAgIC0+ICBGb3JlaWduIERlbGV0ZQogICAgICAgICAg UmVtb3RlIFNRTDogREVMRVRFIEZST00gcHVibGljLmxvY3QxIHI0IFVTSU5HIHB1YmxpYy5s b2N0MiByMiBXSEVSRSAoKHI0LmEgPSByMi5hKSkgUkVUVVJOSU5HIHI0LmEsIHI0LmIKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5hZ2cuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5hZ2cuYwppbmRleCA4NjYxNzA5OWRmLi4wZTgx OWE2ZTkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFuYWdn LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbmFnZy5jCkBAIC00NDIs NyArNDQyLDcgQEAgYnVpbGRfbWlubWF4X3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIE1pbk1h eEFnZ0luZm8gKm1taW5mbywKIAlzdWJyb290LT50dXBsZV9mcmFjdGlvbiA9IDEuMDsKIAlz dWJyb290LT5saW1pdF90dXBsZXMgPSAxLjA7CiAKLQlmaW5hbF9yZWwgPSBxdWVyeV9wbGFu bmVyKHN1YnJvb3QsIHRsaXN0LCBtaW5tYXhfcXBfY2FsbGJhY2ssIE5VTEwpOworCWZpbmFs X3JlbCA9IHF1ZXJ5X3BsYW5uZXIoc3Vicm9vdCwgJnRsaXN0LCBtaW5tYXhfcXBfY2FsbGJh Y2ssIE5VTEwpOwogCiAJLyoKIAkgKiBTaW5jZSB3ZSBkaWRuJ3QgZ28gdGhyb3VnaCBzdWJx dWVyeV9wbGFubmVyKCkgdG8gaGFuZGxlIHRoZSBzdWJxdWVyeSwKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5tYWluLmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubWFpbi5jCmluZGV4IDAzYzgxNzcyYTMuLjQyYzIxMzAwOTYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5tYWluLmMKKysrIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm1haW4uYwpAQCAtMjksNiArMjksNyBA QAogI2luY2x1ZGUgIm9wdGltaXplci9wYXRocy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9w bGFjZWhvbGRlci5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wbGFubWFpbi5oIgorI2luY2x1 ZGUgIm9wdGltaXplci9wcmVwLmgiCiAKIAogLyoKQEAgLTQyLDcgKzQzLDggQEAKICAqIChn cm91cGluZ19wbGFubmVyKSBjYW4gY2hvb3NlIGFtb25nIHRoZSBzdXJ2aXZpbmcgcGF0aHMg Zm9yIHRoZSByZWwuCiAgKgogICogcm9vdCBkZXNjcmliZXMgdGhlIHF1ZXJ5IHRvIHBsYW4K LSAqIHRsaXN0IGlzIHRoZSB0YXJnZXQgbGlzdCB0aGUgcXVlcnkgc2hvdWxkIHByb2R1Y2UK KyAqICp0bGlzdCBpcyB0aGUgdGFyZ2V0IGxpc3QgdGhlIHF1ZXJ5IHNob3VsZCBwcm9kdWNl IChwYXNzZWQgaW4gYXMgYW4gb3V0cHV0CisgKiB2YXJpYWJsZSwgYmVjYXVzZSBtb3JlIGVu dHJpZXMgbWF5IGJlIGFkZGVkIHRvIGl0KQogICoJCSh0aGlzIGlzIE5PVCBuZWNlc3Nhcmls eSByb290LT5wYXJzZS0+dGFyZ2V0TGlzdCEpCiAgKiBxcF9jYWxsYmFjayBpcyBhIGZ1bmN0 aW9uIHRvIGNvbXB1dGUgcXVlcnlfcGF0aGtleXMgb25jZSBpdCdzIHNhZmUgdG8gZG8gc28K ICAqIHFwX2V4dHJhIGlzIG9wdGlvbmFsIGV4dHJhIGRhdGEgdG8gcGFzcyB0byBxcF9jYWxs YmFjawpAQCAtNTQsNyArNTYsNyBAQAogICogKFdlIGNhbm5vdCBjb25zdHJ1Y3QgY2Fub25p Y2FsIHBhdGhrZXlzIHVudGlsIHRoYXQncyBkb25lLikKICAqLwogUmVsT3B0SW5mbyAqCi1x dWVyeV9wbGFubmVyKFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICp0bGlzdCwKK3F1ZXJ5X3Bs YW5uZXIoUGxhbm5lckluZm8gKnJvb3QsIExpc3QgKip0bGlzdCwKIAkJCSAgcXVlcnlfcGF0 aGtleXNfY2FsbGJhY2sgcXBfY2FsbGJhY2ssIHZvaWQgKnFwX2V4dHJhKQogewogCVF1ZXJ5 CSAgICpwYXJzZSA9IHJvb3QtPnBhcnNlOwpAQCAtMTc5LDcgKzE4MSw3IEBAIHF1ZXJ5X3Bs YW5uZXIoUGxhbm5lckluZm8gKnJvb3QsIExpc3QgKnRsaXN0LAogCSAqIHJlc3RyaWN0aW9u cy4gIEZpbmFsbHksIHdlIGZvcm0gYSB0YXJnZXQgam9pbmxpc3QgZm9yIG1ha2Vfb25lX3Jl bCgpIHRvCiAJICogd29yayBmcm9tLgogCSAqLwotCWJ1aWxkX2Jhc2VfcmVsX3RsaXN0cyhy b290LCB0bGlzdCk7CisJYnVpbGRfYmFzZV9yZWxfdGxpc3RzKHJvb3QsICp0bGlzdCk7CiAK IAlmaW5kX3BsYWNlaG9sZGVyc19pbl9qb2ludHJlZShyb290KTsKIApAQCAtMjExLDYgKzIx MywyNiBAQCBxdWVyeV9wbGFubmVyKFBsYW5uZXJJbmZvICpyb290LCBMaXN0ICp0bGlzdCwK IAlhZGRfb3RoZXJfcmVsc190b19xdWVyeShyb290LCAoTm9kZSAqKSByb290LT5wYXJzZS0+ am9pbnRyZWUpOwogCiAJLyoKKwkgKiByb290LT5yb3dNYXJrcyBzaG91bGQgY29udGFpbiBh bGwgcm93IG1hcmtzIGF0IHRoaXMgcG9pbnQsIGluY2x1ZGluZworCSAqIGNoaWxkIHJvdyBt YXJrcyBpZiBhbnksIHNvIGFkZCAianVuayIgVmFycyB0byB0aGUgdGFyZ2V0bGlzdCBiYXNl ZCBvbgorCSAqIHRoZSAicGFyZW50IiByb3cgbWFya3MuCisJICovCisJaWYgKHJvb3QtPnJv d01hcmtzKQorCXsKKwkJTGlzdCAgICpqdW5rX3ZhcnM7CisKKwkJLyogTW9yZSBlbnRyaWVz IHdpbGwgYWRkZWQgdG8gKnRsaXN0LiAqLworCQlhZGRfcm93bWFya19qdW5rX3ZhcnNfdG9f dGFyZ2V0bGlzdChyb290LCB0bGlzdCwgJmp1bmtfdmFycyk7CisJCUFzc2VydChqdW5rX3Zh cnMgIT0gTklMKTsKKworCQkvKgorCQkgKiBUaGVyZSBjYW4ndCBiZSBhbnkgUGxhY2VIb2xk ZXJWYXJzIGluIGp1bmtfdmFycywgc28gcGFzcyBmYWxzZSBmb3IKKwkJICogJ2NyZWF0ZV9u ZXdfcGgnLgorCQkgKi8KKwkJYWRkX3ZhcnNfdG9fdGFyZ2V0bGlzdChyb290LCBqdW5rX3Zh cnMsIGJtc19tYWtlX3NpbmdsZXRvbigwKSwgZmFsc2UpOworCX0KKworCS8qCiAJICogV2Ug aGF2ZSBjb21wbGV0ZWQgbWVyZ2luZyBlcXVpdmFsZW5jZSBzZXRzLCBzbyBpdCdzIG5vdyBw b3NzaWJsZSB0bwogCSAqIGdlbmVyYXRlIHBhdGhrZXlzIGluIGNhbm9uaWNhbCBmb3JtOyBz byBjb21wdXRlIHF1ZXJ5X3BhdGhrZXlzIGFuZAogCSAqIG90aGVyIHBhdGhrZXlzIGZpZWxk cyBpbiBQbGFubmVySW5mby4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpp bmRleCBlNDA4ZTc3ZDZmLi5hYmFjODRiY2FhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcGxhbm5lci5jCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxl LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bnN0cmFpbnQuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2luaGVyaXRzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAj aW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKQEAgLTE4MzUsMTUgKzE4MzYsNiBAQCBn cm91cGluZ19wbGFubmVyKFBsYW5uZXJJbmZvICpyb290LCBib29sIGluaGVyaXRhbmNlX3Vw ZGF0ZSwKIAkJdGxpc3QgPSBwcmVwcm9jZXNzX3RhcmdldGxpc3Qocm9vdCk7CiAKIAkJLyoK LQkJICogV2UgYXJlIG5vdyBkb25lIGhhY2tpbmcgdXAgdGhlIHF1ZXJ5J3MgdGFyZ2V0bGlz dC4gIE1vc3Qgb2YgdGhlCi0JCSAqIHJlbWFpbmluZyBwbGFubmluZyB3b3JrIHdpbGwgYmUg ZG9uZSB3aXRoIHRoZSBQYXRoVGFyZ2V0Ci0JCSAqIHJlcHJlc2VudGF0aW9uIG9mIHRsaXN0 cywgYnV0IHNhdmUgYXNpZGUgdGhlIGZ1bGwgcmVwcmVzZW50YXRpb24gc28KLQkJICogdGhh dCB3ZSBjYW4gdHJhbnNmZXIgaXRzIGRlY29yYXRpb24gKHJlc25hbWVzIGV0YykgdG8gdGhl IHRvcG1vc3QKLQkJICogdGxpc3Qgb2YgdGhlIGZpbmlzaGVkIFBsYW4uCi0JCSAqLwotCQly b290LT5wcm9jZXNzZWRfdGxpc3QgPSB0bGlzdDsKLQotCQkvKgogCQkgKiBDb2xsZWN0IHN0 YXRpc3RpY3MgYWJvdXQgYWdncmVnYXRlcyBmb3IgZXN0aW1hdGluZyBjb3N0cywgYW5kIG1h cmsKIAkJICogYWxsIHRoZSBhZ2dyZWdhdGVzIHdpdGggcmVzb2x2ZWQgYWdndHJhbnN0eXBl cy4gIFdlIG11c3QgZG8gdGhpcwogCQkgKiBiZWZvcmUgc2xpY2luZyBhbmQgZGljaW5nIHRo ZSB0bGlzdCBpbnRvIHZhcmlvdXMgcGF0aHRhcmdldHMsIGVsc2UKQEAgLTE5MjEsMTAgKzE5 MTMsMTkgQEAgZ3JvdXBpbmdfcGxhbm5lcihQbGFubmVySW5mbyAqcm9vdCwgYm9vbCBpbmhl cml0YW5jZV91cGRhdGUsCiAJCSAqIFdlIGFsc28gZ2VuZXJhdGUgKGluIHN0YW5kYXJkX3Fw X2NhbGxiYWNrKSBwYXRoa2V5IHJlcHJlc2VudGF0aW9ucwogCQkgKiBvZiB0aGUgcXVlcnkn cyBzb3J0IGNsYXVzZSwgZGlzdGluY3QgY2xhdXNlLCBldGMuCiAJCSAqLwotCQljdXJyZW50 X3JlbCA9IHF1ZXJ5X3BsYW5uZXIocm9vdCwgdGxpc3QsCisJCWN1cnJlbnRfcmVsID0gcXVl cnlfcGxhbm5lcihyb290LCAmdGxpc3QsCiAJCQkJCQkJCQlzdGFuZGFyZF9xcF9jYWxsYmFj aywgJnFwX2V4dHJhKTsKIAogCQkvKgorCQkgKiBXZSBhcmUgbm93IGRvbmUgaGFja2luZyB1 cCB0aGUgcXVlcnkncyB0YXJnZXRsaXN0LiAgTW9zdCBvZiB0aGUKKwkJICogcmVtYWluaW5n IHBsYW5uaW5nIHdvcmsgd2lsbCBiZSBkb25lIHdpdGggdGhlIFBhdGhUYXJnZXQKKwkJICog cmVwcmVzZW50YXRpb24gb2YgdGxpc3RzLCBidXQgc2F2ZSBhc2lkZSB0aGUgZnVsbCByZXBy ZXNlbnRhdGlvbiBzbworCQkgKiB0aGF0IHdlIGNhbiB0cmFuc2ZlciBpdHMgZGVjb3JhdGlv biAocmVzbmFtZXMgZXRjKSB0byB0aGUgdG9wbW9zdAorCQkgKiB0bGlzdCBvZiB0aGUgZmlu aXNoZWQgUGxhbi4KKwkJICovCisJCXJvb3QtPnByb2Nlc3NlZF90bGlzdCA9IHRsaXN0Owor CisJCS8qCiAJCSAqIENvbnZlcnQgdGhlIHF1ZXJ5J3MgcmVzdWx0IHRsaXN0IGludG8gUGF0 aFRhcmdldCBmb3JtYXQuCiAJCSAqCiAJCSAqIE5vdGU6IGl0J3MgZGVzaXJhYmxlIHRvIG5v dCBkbyB0aGlzIHRpbGwgYWZ0ZXIgcXVlcnlfcGxhbm5lcigpLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcHRsaXN0LmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcHJlcC9wcmVwdGxpc3QuYwppbmRleCA1MzkyZDFhNTYxLi4xMTY1MzgyZTgyIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwdGxpc3QuYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwdGxpc3QuYwpAQCAtNzYsNyArNzYs NiBAQCBwcmVwcm9jZXNzX3RhcmdldGxpc3QoUGxhbm5lckluZm8gKnJvb3QpCiAJUmFuZ2VU YmxFbnRyeSAqdGFyZ2V0X3J0ZSA9IE5VTEw7CiAJUmVsYXRpb24JdGFyZ2V0X3JlbGF0aW9u ID0gTlVMTDsKIAlMaXN0CSAgICp0bGlzdDsKLQlMaXN0Q2VsbCAgICpsYzsKIAogCS8qCiAJ ICogSWYgdGhlcmUgaXMgYSByZXN1bHQgcmVsYXRpb24sIG9wZW4gaXQgc28gd2UgY2FuIGxv b2sgZm9yIG1pc3NpbmcKQEAgLTExOSw3MSArMTE4LDYgQEAgcHJlcHJvY2Vzc190YXJnZXRs aXN0KFBsYW5uZXJJbmZvICpyb290KQogCQkJCQkJCQkgIHJlc3VsdF9yZWxhdGlvbiwgdGFy Z2V0X3JlbGF0aW9uKTsKIAogCS8qCi0JICogQWRkIG5lY2Vzc2FyeSBqdW5rIGNvbHVtbnMg Zm9yIHJvd21hcmtlZCByZWxzLiAgVGhlc2UgdmFsdWVzIGFyZSBuZWVkZWQKLQkgKiBmb3Ig bG9ja2luZyBvZiByZWxzIHNlbGVjdGVkIEZPUiBVUERBVEUvU0hBUkUsIGFuZCB0byBkbyBF dmFsUGxhblF1YWwKLQkgKiByZWNoZWNraW5nLiAgU2VlIGNvbW1lbnRzIGZvciBQbGFuUm93 TWFyayBpbiBwbGFubm9kZXMuaC4KLQkgKi8KLQlmb3JlYWNoKGxjLCByb290LT5yb3dNYXJr cykKLQl7Ci0JCVBsYW5Sb3dNYXJrICpyYyA9IChQbGFuUm93TWFyayAqKSBsZmlyc3QobGMp OwotCQlWYXIJCSAgICp2YXI7Ci0JCWNoYXIJCXJlc25hbWVbMzJdOwotCQlUYXJnZXRFbnRy eSAqdGxlOwotCi0JCS8qIGNoaWxkIHJlbHMgdXNlIHRoZSBzYW1lIGp1bmsgYXR0cnMgYXMg dGhlaXIgcGFyZW50cyAqLwotCQlpZiAocmMtPnJ0aSAhPSByYy0+cHJ0aSkKLQkJCWNvbnRp bnVlOwotCi0JCWlmIChyYy0+YWxsTWFya1R5cGVzICYgfigxIDw8IFJPV19NQVJLX0NPUFkp KQotCQl7Ci0JCQkvKiBOZWVkIHRvIGZldGNoIFRJRCAqLwotCQkJdmFyID0gbWFrZVZhcihy Yy0+cnRpLAotCQkJCQkJICBTZWxmSXRlbVBvaW50ZXJBdHRyaWJ1dGVOdW1iZXIsCi0JCQkJ CQkgIFRJRE9JRCwKLQkJCQkJCSAgLTEsCi0JCQkJCQkgIEludmFsaWRPaWQsCi0JCQkJCQkg IDApOwotCQkJc25wcmludGYocmVzbmFtZSwgc2l6ZW9mKHJlc25hbWUpLCAiY3RpZCV1Iiwg cmMtPnJvd21hcmtJZCk7Ci0JCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoKEV4cHIgKikgdmFy LAotCQkJCQkJCQkgIGxpc3RfbGVuZ3RoKHRsaXN0KSArIDEsCi0JCQkJCQkJCSAgcHN0cmR1 cChyZXNuYW1lKSwKLQkJCQkJCQkJICB0cnVlKTsKLQkJCXRsaXN0ID0gbGFwcGVuZCh0bGlz dCwgdGxlKTsKLQkJfQotCQlpZiAocmMtPmFsbE1hcmtUeXBlcyAmICgxIDw8IFJPV19NQVJL X0NPUFkpKQotCQl7Ci0JCQkvKiBOZWVkIHRoZSB3aG9sZSByb3cgYXMgYSBqdW5rIHZhciAq LwotCQkJdmFyID0gbWFrZVdob2xlUm93VmFyKHJ0X2ZldGNoKHJjLT5ydGksIHJhbmdlX3Rh YmxlKSwKLQkJCQkJCQkJICByYy0+cnRpLAotCQkJCQkJCQkgIDAsCi0JCQkJCQkJCSAgZmFs c2UpOwotCQkJc25wcmludGYocmVzbmFtZSwgc2l6ZW9mKHJlc25hbWUpLCAid2hvbGVyb3cl dSIsIHJjLT5yb3dtYXJrSWQpOwotCQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICop IHZhciwKLQkJCQkJCQkJICBsaXN0X2xlbmd0aCh0bGlzdCkgKyAxLAotCQkJCQkJCQkgIHBz dHJkdXAocmVzbmFtZSksCi0JCQkJCQkJCSAgdHJ1ZSk7Ci0JCQl0bGlzdCA9IGxhcHBlbmQo dGxpc3QsIHRsZSk7Ci0JCX0KLQotCQkvKiBJZiBwYXJlbnQgb2YgaW5oZXJpdGFuY2UgdHJl ZSwgYWx3YXlzIGZldGNoIHRoZSB0YWJsZW9pZCB0b28uICovCi0JCWlmIChyYy0+aXNQYXJl bnQpCi0JCXsKLQkJCXZhciA9IG1ha2VWYXIocmMtPnJ0aSwKLQkJCQkJCSAgVGFibGVPaWRB dHRyaWJ1dGVOdW1iZXIsCi0JCQkJCQkgIE9JRE9JRCwKLQkJCQkJCSAgLTEsCi0JCQkJCQkg IEludmFsaWRPaWQsCi0JCQkJCQkgIDApOwotCQkJc25wcmludGYocmVzbmFtZSwgc2l6ZW9m KHJlc25hbWUpLCAidGFibGVvaWQldSIsIHJjLT5yb3dtYXJrSWQpOwotCQkJdGxlID0gbWFr ZVRhcmdldEVudHJ5KChFeHByICopIHZhciwKLQkJCQkJCQkJICBsaXN0X2xlbmd0aCh0bGlz dCkgKyAxLAotCQkJCQkJCQkgIHBzdHJkdXAocmVzbmFtZSksCi0JCQkJCQkJCSAgdHJ1ZSk7 Ci0JCQl0bGlzdCA9IGxhcHBlbmQodGxpc3QsIHRsZSk7Ci0JCX0KLQl9Ci0KLQkvKgogCSAq IElmIHRoZSBxdWVyeSBoYXMgYSBSRVRVUk5JTkcgbGlzdCwgYWRkIHJlc2p1bmsgZW50cmll cyBmb3IgYW55IFZhcnMKIAkgKiB1c2VkIGluIFJFVFVSTklORyB0aGF0IGJlbG9uZyB0byBv dGhlciByZWxhdGlvbnMuICBXZSBuZWVkIHRvIGRvIHRoaXMKIAkgKiB0byBtYWtlIHRoZXNl IFZhcnMgYXZhaWxhYmxlIGZvciB0aGUgUkVUVVJOSU5HIGNhbGN1bGF0aW9uLiAgVmFycyB0 aGF0CkBAIC00MzQsMyArMzY4LDg5IEBAIGdldF9wbGFuX3Jvd21hcmsoTGlzdCAqcm93bWFy a3MsIEluZGV4IHJ0aW5kZXgpCiAJfQogCXJldHVybiBOVUxMOwogfQorCisvKgorICogYWRk X3Jvd21hcmtfanVua192YXJzX3RvX3RhcmdldGxpc3QKKyAqCQlBZGQgImp1bmsiIHRhcmdl dGxpc3QgZW50cmllcyBuZWVkZWQgZm9yIGFwcGx5aW5nIHJvdyBtYXJrcyBjb250YWluZWQK KyAqCQlpbiByb290LT5yb3dNYXJrcworICoKKyAqIFZhcnMgdGhhdCBhcmUgYWRkZWQgdG8g dGhlIHRhcmdldGxpc3QgYXJlIGFsc28gcmV0dXJuZWQgaW4gKmp1bmtfdmFycyBmb3IKKyAq IHRoZSBjYWxsZXIncyBwZXJ1c2FsLgorICovCit2b2lkCithZGRfcm93bWFya19qdW5rX3Zh cnNfdG9fdGFyZ2V0bGlzdChQbGFubmVySW5mbyAqcm9vdCwKKwkJCQkJCQkJCUxpc3QgKip0 bGlzdCwgTGlzdCAqKmp1bmtfdmFycykKK3sKKwlMaXN0CSAgICpyYW5nZV90YWJsZSA9IHJv b3QtPnBhcnNlLT5ydGFibGU7CisJTGlzdENlbGwgICAqbGM7CisKKwkqanVua192YXJzID0g TklMOworCisJLyoKKwkgKiBBZGQgbmVjZXNzYXJ5IGp1bmsgY29sdW1ucyBmb3Igcm93bWFy a2VkIHJlbHMuICBUaGVzZSB2YWx1ZXMgYXJlIG5lZWRlZAorCSAqIGZvciBsb2NraW5nIG9m IHJlbHMgc2VsZWN0ZWQgRk9SIFVQREFURS9TSEFSRSwgYW5kIHRvIGRvIEV2YWxQbGFuUXVh bAorCSAqIHJlY2hlY2tpbmcuICBTZWUgY29tbWVudHMgZm9yIFBsYW5Sb3dNYXJrIGluIHBs YW5ub2Rlcy5oLgorCSAqLworCWZvcmVhY2gobGMsIHJvb3QtPnJvd01hcmtzKQorCXsKKwkJ UGxhblJvd01hcmsgKnJjID0gKFBsYW5Sb3dNYXJrICopIGxmaXJzdChsYyk7CisJCVZhcgkJ ICAgKnZhcjsKKwkJY2hhcgkJcmVzbmFtZVszMl07CisJCVRhcmdldEVudHJ5ICp0bGU7CisK KwkJLyogY2hpbGQgcmVscyB1c2UgdGhlIHNhbWUganVuayBhdHRycyBhcyB0aGVpciBwYXJl bnRzICovCisJCWlmIChyYy0+cnRpICE9IHJjLT5wcnRpKQorCQkJY29udGludWU7CisKKwkJ aWYgKHJjLT5hbGxNYXJrVHlwZXMgJiB+KDEgPDwgUk9XX01BUktfQ09QWSkpCisJCXsKKwkJ CS8qIE5lZWQgdG8gZmV0Y2ggVElEICovCisJCQl2YXIgPSBtYWtlVmFyKHJjLT5ydGksCisJ CQkJCQkgIFNlbGZJdGVtUG9pbnRlckF0dHJpYnV0ZU51bWJlciwKKwkJCQkJCSAgVElET0lE LAorCQkJCQkJICAtMSwKKwkJCQkJCSAgSW52YWxpZE9pZCwKKwkJCQkJCSAgMCk7CisJCQlz bnByaW50ZihyZXNuYW1lLCBzaXplb2YocmVzbmFtZSksICJjdGlkJXUiLCByYy0+cm93bWFy a0lkKTsKKwkJCXRsZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSB2YXIsCisJCQkJCQkJ CSAgbGlzdF9sZW5ndGgoKnRsaXN0KSArIDEsCisJCQkJCQkJCSAgcHN0cmR1cChyZXNuYW1l KSwKKwkJCQkJCQkJICB0cnVlKTsKKwkJCSp0bGlzdCA9IGxhcHBlbmQoKnRsaXN0LCB0bGUp OworCQkJKmp1bmtfdmFycyA9IGxhcHBlbmQoKmp1bmtfdmFycywgdmFyKTsKKwkJfQorCQlp ZiAocmMtPmFsbE1hcmtUeXBlcyAmICgxIDw8IFJPV19NQVJLX0NPUFkpKQorCQl7CisJCQkv KiBOZWVkIHRoZSB3aG9sZSByb3cgYXMgYSBqdW5rIHZhciAqLworCQkJdmFyID0gbWFrZVdo b2xlUm93VmFyKHJ0X2ZldGNoKHJjLT5ydGksIHJhbmdlX3RhYmxlKSwKKwkJCQkJCQkJICBy Yy0+cnRpLAorCQkJCQkJCQkgIDAsCisJCQkJCQkJCSAgZmFsc2UpOworCQkJc25wcmludGYo cmVzbmFtZSwgc2l6ZW9mKHJlc25hbWUpLCAid2hvbGVyb3cldSIsIHJjLT5yb3dtYXJrSWQp OworCQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIHZhciwKKwkJCQkJCQkJICBs aXN0X2xlbmd0aCgqdGxpc3QpICsgMSwKKwkJCQkJCQkJICBwc3RyZHVwKHJlc25hbWUpLAor CQkJCQkJCQkgIHRydWUpOworCQkJKnRsaXN0ID0gbGFwcGVuZCgqdGxpc3QsIHRsZSk7CisJ CQkqanVua192YXJzID0gbGFwcGVuZCgqanVua192YXJzLCB2YXIpOworCQl9CisKKwkJLyog Rm9yIGluaGVyaXRhbmNlIGNhc2VzLCBhbHdheXMgZmV0Y2ggdGhlIHRhYmxlb2lkIHRvby4g Ki8KKwkJaWYgKHJjLT5pc1BhcmVudCkKKwkJeworCQkJdmFyID0gbWFrZVZhcihyYy0+cnRp LAorCQkJCQkJICBUYWJsZU9pZEF0dHJpYnV0ZU51bWJlciwKKwkJCQkJCSAgT0lET0lELAor CQkJCQkJICAtMSwKKwkJCQkJCSAgSW52YWxpZE9pZCwKKwkJCQkJCSAgMCk7CisJCQlzbnBy aW50ZihyZXNuYW1lLCBzaXplb2YocmVzbmFtZSksICJ0YWJsZW9pZCV1IiwgcmMtPnJvd21h cmtJZCk7CisJCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoKEV4cHIgKikgdmFyLAorCQkJCQkJ CQkgIGxpc3RfbGVuZ3RoKCp0bGlzdCkgKyAxLAorCQkJCQkJCQkgIHBzdHJkdXAocmVzbmFt ZSksCisJCQkJCQkJCSAgdHJ1ZSk7CisJCQkqdGxpc3QgPSBsYXBwZW5kKCp0bGlzdCwgdGxl KTsKKwkJCSpqdW5rX3ZhcnMgPSBsYXBwZW5kKCpqdW5rX3ZhcnMsIHZhcik7CisJCX0KKwl9 Cit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCBiL3Ny Yy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCmluZGV4IDAzNWNhYWM1MDAuLmEyMTc4 MzE5MmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCisr KyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCkBAIC0yNyw3ICsyNyw3IEBA IHR5cGVkZWYgdm9pZCAoKnF1ZXJ5X3BhdGhrZXlzX2NhbGxiYWNrKSAoUGxhbm5lckluZm8g KnJvb3QsIHZvaWQgKmV4dHJhKTsKIC8qCiAgKiBwcm90b3R5cGVzIGZvciBwbGFuL3BsYW5t YWluLmMKICAqLwotZXh0ZXJuIFJlbE9wdEluZm8gKnF1ZXJ5X3BsYW5uZXIoUGxhbm5lcklu Zm8gKnJvb3QsIExpc3QgKnRsaXN0LAorZXh0ZXJuIFJlbE9wdEluZm8gKnF1ZXJ5X3BsYW5u ZXIoUGxhbm5lckluZm8gKnJvb3QsIExpc3QgKip0bGlzdCwKIAkJCSAgcXVlcnlfcGF0aGtl eXNfY2FsbGJhY2sgcXBfY2FsbGJhY2ssIHZvaWQgKnFwX2V4dHJhKTsKIAogLyoKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wcmVwLmggYi9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcHJlcC5oCmluZGV4IGE5YjJjOTAyNmMuLmNmN2IzYTlkMDYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL29wdGltaXplci9wcmVwLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1p emVyL3ByZXAuaApAQCAtMzcsNiArMzcsOCBAQCBleHRlcm4gUmVsaWRzIGdldF9yZWxpZHNf Zm9yX2pvaW4oUXVlcnkgKnF1ZXJ5LCBpbnQgam9pbnJlbGlkKTsKIGV4dGVybiBMaXN0ICpw cmVwcm9jZXNzX3RhcmdldGxpc3QoUGxhbm5lckluZm8gKnJvb3QpOwogCiBleHRlcm4gUGxh blJvd01hcmsgKmdldF9wbGFuX3Jvd21hcmsoTGlzdCAqcm93bWFya3MsIEluZGV4IHJ0aW5k ZXgpOworZXh0ZXJuIHZvaWQgYWRkX3Jvd21hcmtfanVua192YXJzX3RvX3RhcmdldGxpc3Qo UGxhbm5lckluZm8gKnJvb3QsCisJCQkJCQkJICAgTGlzdCAqKnRsaXN0LCBMaXN0ICoqanVu a192YXJzKTsKIAogLyoKICAqIHByb3RvdHlwZXMgZm9yIHByZXB1bmlvbi5jCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGgub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC93aXRoLm91dAppbmRleCAyYTIwODU1NTZiLi40ZjBhMTNkZDBkIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGgub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aC5vdXQKQEAgLTIxOTksMjggKzIxOTksMjgg QEAgREVMRVRFIEZST00gYSBVU0lORyB3Y3RlIFdIRVJFIGFhID0gcTI7CiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcHVibGljLmEKICAgICAgICAgICAgICAgIE91dHB1dDogYS5jdGlk LCBhLmFhCiAgICAgICAgICAtPiAgQ1RFIFNjYW4gb24gd2N0ZQotICAgICAgICAgICAgICAg T3V0cHV0OiB3Y3RlLiosIHdjdGUucTIKKyAgICAgICAgICAgICAgIE91dHB1dDogd2N0ZS5x Miwgd2N0ZS4qCiAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgIE91dHB1dDogYi5jdGlk LCB3Y3RlLioKICAgICAgICAgIEpvaW4gRmlsdGVyOiAoYi5hYSA9IHdjdGUucTIpCiAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmIKICAgICAgICAgICAgICAgIE91dHB1dDog Yi5jdGlkLCBiLmFhCiAgICAgICAgICAtPiAgQ1RFIFNjYW4gb24gd2N0ZQotICAgICAgICAg ICAgICAgT3V0cHV0OiB3Y3RlLiosIHdjdGUucTIKKyAgICAgICAgICAgICAgIE91dHB1dDog d2N0ZS5xMiwgd2N0ZS4qCiAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgIE91dHB1dDog Yy5jdGlkLCB3Y3RlLioKICAgICAgICAgIEpvaW4gRmlsdGVyOiAoYy5hYSA9IHdjdGUucTIp CiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmMKICAgICAgICAgICAgICAgIE91 dHB1dDogYy5jdGlkLCBjLmFhCiAgICAgICAgICAtPiAgQ1RFIFNjYW4gb24gd2N0ZQotICAg ICAgICAgICAgICAgT3V0cHV0OiB3Y3RlLiosIHdjdGUucTIKKyAgICAgICAgICAgICAgIE91 dHB1dDogd2N0ZS5xMiwgd2N0ZS4qCiAgICAtPiAgTmVzdGVkIExvb3AKICAgICAgICAgIE91 dHB1dDogZC5jdGlkLCB3Y3RlLioKICAgICAgICAgIEpvaW4gRmlsdGVyOiAoZC5hYSA9IHdj dGUucTIpCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmQKICAgICAgICAgICAg ICAgIE91dHB1dDogZC5jdGlkLCBkLmFhCiAgICAgICAgICAtPiAgQ1RFIFNjYW4gb24gd2N0 ZQotICAgICAgICAgICAgICAgT3V0cHV0OiB3Y3RlLiosIHdjdGUucTIKKyAgICAgICAgICAg ICAgIE91dHB1dDogd2N0ZS5xMiwgd2N0ZS4qCiAoMzggcm93cykKIAogLS0gZXJyb3IgY2Fz ZXMKLS0gCjIuMTEuMAoK --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0003-Delay-adding-inheritance-child-tables-until-quer.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0003-Delay-adding-inheritance-child-tables-until-quer.pa"; filename*1="tch" RnJvbSAzYTkzOTQxZTlhMjhmZDk1Yjg0MGUwYTljMzdlZGJlZTZlNzJmYTBjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA0IE1hciAyMDE5IDE1OjEwOjI5ICswOTAwClN1YmplY3Q6IFtQQVRDSCB2 MzQgMy85XSBEZWxheSBhZGRpbmcgaW5oZXJpdGFuY2UgY2hpbGQgdGFibGVzIHVudGlsCiBx dWVyeV9wbGFubmVyCgpJbmhlcml0YW5jZSBjaGlsZCB0YWJsZXMgYXJlIG5vdyBhZGRlZCBi eSBhZGRfb3RoZXJfcmVsc190b19xdWVyeSwKd2hpY2ggaXMgY2FsbGVkIGJ5IHF1ZXJ5X3Bs YW5uZXIuICBUaGlzIHJlcGxhY2VzCmV4cGFuZF9pbmhlcml0ZWRfdGFibGVzIGNhbGxlZCBi eSBzdWJxdWVyeV9wbGFubmVyIGFzIHRoZSBtZXRob2QKb2YgYWRkaW5nIGNoaWxkIHRhYmxl cy4gIEF0IHRoZSBwb2ludCB3aGVuIGFkZF9vdGhlcl9yZWxzX3RvX3F1ZXJ5CmlzIGNhbGxl ZCwgcmVzdHJpY3Rpb24gY2xhdXNlcyBoYXZlIGFscmVhZHkgYmVlbiBhc3NpZ25lZCB0bwpp bmRpdmlkdWFsIGJhc2UgcmVsYXRpb25zLCBzbyBpdCB3aWxsIG5vdyBiZSBwb3NzaWJsZSB0 byBwZXJmb3JtCnBhcnRpdGlvbiBwcnVuaW5nIHNvIHRoYXQgd2Uga25vdyBleGFjdCBjaGls ZCB0YWJsZXMgdG8gYWRkIGluIHRoYXQKY2FzZS4gIFRoaXMgY29tbWl0IGhvd2V2ZXIgZG9l c24ndCBjaGFuZ2Ugd2hlbiBwcnVuaW5nIGlzIHBlcmZvcm1lZC4KCmluaGVyaXRhbmNlX3Bs YW5uZXIgbm93IGFkZHMgdGhlIGNoaWxkIHRhcmdldCB0YWJsZXMgb24gaXRzIG93biwKYmVj YXVzZSBzdWJxdWVyeV9wbGFubmVyIGRvZXNuJ3QuICBBbHNvLCBzaW5jZSBpdCBjYWxscyBx dWVyeV9wbGFubmVyCm9uY2UgZm9yIGV2ZXJ5IGNoaWxkIHJlbGF0aW9uLCBzb3VyY2UgaW5o ZXJpdGFuY2UgY2hpbGQgdGFibGVzIGFyZQphZGRlZCBtdWx0aXBsZSB0aW1lcy4gIFRoaXMg Ym90aCBzbG93cyBkb3duIHF1ZXJpZXMgd2hlbiB0aGVyZSBhcmUKaW5oZXJpdGVkIHRhYmxl cyBpbiBVUERBVEUvREVMRVRFJ3MgRlJPTSBjbGF1c2UgKHNvdXJjZSBpbmhlcml0YW5jZSkK YW5kIGNoYW5nZXMgdGhlIEVYUExBSU4gb3V0cHV0IGEgYml0IGJlY2F1c2Ugc291cmNlIGlu aGVyaXRhbmNlCmNoaWxkIHRhYmxlcycgYWxpYXNlcyBjb21lIG91dCBkaWZmZXJlbnQgZm9y IGV2ZXJ5IHRhcmdlciBjaGlsZApzdWJwbGFuLiAgQW5vdGhlciBwYXRjaCB3aWxsIGZpeCBi b3RoIHRoZXNlIGlzc3Vlcy4KLS0tCiBjb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9w b3N0Z3Jlc19mZHcub3V0IHwgIDQ2ICsrKystLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMgICAgICAgICAgIHwgIDU4ICsrKysrKystLS0KIHNyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2luaGVyaXQuYyAgICAgICAgICAgfCAxNTIgKysrKysrKysrKysr KysrKy0tLS0tLS0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxhbmNhdC5jICAg ICAgICAgICB8ICAgOSArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcmVsbm9kZS5j ICAgICAgICAgICB8ICA4MyArKysrKysrKystLS0tLQogc3JjL2luY2x1ZGUvb3B0aW1pemVy L2luaGVyaXQuaCAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvb3B0aW1p emVyL3BhdGhub2RlLmggICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQgIHwgIDEyICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dCAgICAgIHwgIDE2ICstLQogOSBmaWxlcyBj aGFuZ2VkLCAyNDYgaW5zZXJ0aW9ucygrKSwgMTM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgYi9j b250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CmluZGV4IGM5 MTJlOTVmZTEuLmJiYzllYWQyZTkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcv ZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dApAQCAtNzE5MCw4ICs3MTkwLDggQEAgc2VsZWN0 ICogZnJvbSBiYXIgd2hlcmUgZjEgaW4gKHNlbGVjdCBmMSBmcm9tIGZvbykgZm9yIHNoYXJl OwogLS0gQ2hlY2sgVVBEQVRFIHdpdGggaW5oZXJpdGVkIHRhcmdldCBhbmQgYW4gaW5oZXJp dGVkIHNvdXJjZSB0YWJsZQogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogdXBkYXRl IGJhciBzZXQgZjIgPSBmMiArIDEwMCB3aGVyZSBmMSBpbiAoc2VsZWN0IGYxIGZyb20gZm9v KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIFVwZGF0ZSBvbiBwdWJsaWMuYmFyCiAgICBVcGRhdGUgb24g cHVibGljLmJhcgogICAgRm9yZWlnbiBVcGRhdGUgb24gcHVibGljLmJhcjIKQEAgLTcyMTQs MjIgKzcyMTQsMjIgQEAgdXBkYXRlIGJhciBzZXQgZjIgPSBmMiArIDEwMCB3aGVyZSBmMSBp biAoc2VsZWN0IGYxIGZyb20gZm9vKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogZm9vMi5mMSwgZm9vMi5jdGlkLCBmb28yLiosIGZvbzIudGFibGVvaWQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBm MSwgZjIsIGYzLCBjdGlkIEZST00gcHVibGljLmxvY3QxCiAgICAtPiAgSGFzaCBKb2luCi0g ICAgICAgICBPdXRwdXQ6IGJhcjIuZjEsIChiYXIyLmYyICsgMTAwKSwgYmFyMi5mMywgYmFy Mi5jdGlkLCBmb28uY3RpZCwgZm9vLiosIGZvby50YWJsZW9pZAorICAgICAgICAgT3V0cHV0 OiBiYXIyLmYxLCAoYmFyMi5mMiArIDEwMCksIGJhcjIuZjMsIGJhcjIuY3RpZCwgZm9vXzEu Y3RpZCwgZm9vXzEuKiwgZm9vXzEudGFibGVvaWQKICAgICAgICAgIElubmVyIFVuaXF1ZTog dHJ1ZQotICAgICAgICAgSGFzaCBDb25kOiAoYmFyMi5mMSA9IGZvby5mMSkKKyAgICAgICAg IEhhc2ggQ29uZDogKGJhcjIuZjEgPSBmb29fMS5mMSkKICAgICAgICAgIC0+ICBGb3JlaWdu IFNjYW4gb24gcHVibGljLmJhcjIKICAgICAgICAgICAgICAgIE91dHB1dDogYmFyMi5mMSwg YmFyMi5mMiwgYmFyMi5mMywgYmFyMi5jdGlkCiAgICAgICAgICAgICAgICBSZW1vdGUgU1FM OiBTRUxFQ1QgZjEsIGYyLCBmMywgY3RpZCBGUk9NIHB1YmxpYy5sb2N0MiBGT1IgVVBEQVRF CiAgICAgICAgICAtPiAgSGFzaAotICAgICAgICAgICAgICAgT3V0cHV0OiBmb28uZjEsIGZv by5jdGlkLCBmb28uKiwgZm9vLnRhYmxlb2lkCisgICAgICAgICAgICAgICBPdXRwdXQ6IGZv b18xLmYxLCBmb29fMS5jdGlkLCBmb29fMS4qLCBmb29fMS50YWJsZW9pZAogICAgICAgICAg ICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKLSAgICAgICAgICAgICAgICAgICAgIE91dHB1dDog Zm9vLmYxLCBmb28uY3RpZCwgZm9vLiosIGZvby50YWJsZW9pZAotICAgICAgICAgICAgICAg ICAgICAgR3JvdXAgS2V5OiBmb28uZjEKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDog Zm9vXzEuZjEsIGZvb18xLmN0aWQsIGZvb18xLiosIGZvb18xLnRhYmxlb2lkCisgICAgICAg ICAgICAgICAgICAgICBHcm91cCBLZXk6IGZvb18xLmYxCiAgICAgICAgICAgICAgICAgICAg ICAtPiAgQXBwZW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcHVibGljLmZvbwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0 OiBmb28uZjEsIGZvby5jdGlkLCBmb28uKiwgZm9vLnRhYmxlb2lkCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mb28yCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvbzIuZjEsIGZvbzIuY3RpZCwg Zm9vMi4qLCBmb28yLnRhYmxlb2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcHVibGljLmZvbyBmb29fMQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgT3V0cHV0OiBmb29fMS5mMSwgZm9vXzEuY3RpZCwgZm9vXzEuKiwgZm9vXzEu dGFibGVvaWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4g b24gcHVibGljLmZvbzIgZm9vMl8xCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBPdXRwdXQ6IGZvbzJfMS5mMSwgZm9vMl8xLmN0aWQsIGZvbzJfMS4qLCBmb28yXzEudGFi bGVvaWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNF TEVDVCBmMSwgZjIsIGYzLCBjdGlkIEZST00gcHVibGljLmxvY3QxCiAoMzkgcm93cykKIApA QCAtNzI3Niw4ICs3Mjc2LDggQEAgd2hlcmUgYmFyLmYxID0gc3MuZjE7CiAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmJhcgogICAgICAgICAgICAgICAgICAgICAg T3V0cHV0OiBiYXIuZjEsIGJhci5mMiwgYmFyLmN0aWQKICAgIC0+ICBNZXJnZSBKb2luCi0g ICAgICAgICBPdXRwdXQ6IGJhcjIuZjEsIChiYXIyLmYyICsgMTAwKSwgYmFyMi5mMywgYmFy Mi5jdGlkLCAoUk9XKGZvby5mMSkpCi0gICAgICAgICBNZXJnZSBDb25kOiAoYmFyMi5mMSA9 IGZvby5mMSkKKyAgICAgICAgIE91dHB1dDogYmFyMi5mMSwgKGJhcjIuZjIgKyAxMDApLCBi YXIyLmYzLCBiYXIyLmN0aWQsIChST1coZm9vXzIuZjEpKQorICAgICAgICAgTWVyZ2UgQ29u ZDogKGJhcjIuZjEgPSBmb29fMi5mMSkKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAg ICAgICBPdXRwdXQ6IGJhcjIuZjEsIGJhcjIuZjIsIGJhcjIuZjMsIGJhcjIuY3RpZAogICAg ICAgICAgICAgICAgU29ydCBLZXk6IGJhcjIuZjEKQEAgLTcyODUsMTggKzcyODUsMTggQEAg d2hlcmUgYmFyLmYxID0gc3MuZjE7CiAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGJh cjIuZjEsIGJhcjIuZjIsIGJhcjIuZjMsIGJhcjIuY3RpZAogICAgICAgICAgICAgICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxLCBmMiwgZjMsIGN0aWQgRlJPTSBwdWJsaWMubG9j dDIgRk9SIFVQREFURQogICAgICAgICAgLT4gIFNvcnQKLSAgICAgICAgICAgICAgIE91dHB1 dDogZm9vLmYxLCAoUk9XKGZvby5mMSkpCi0gICAgICAgICAgICAgICBTb3J0IEtleTogZm9v LmYxCisgICAgICAgICAgICAgICBPdXRwdXQ6IGZvb18yLmYxLCAoUk9XKGZvb18yLmYxKSkK KyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBmb29fMi5mMQogICAgICAgICAgICAgICAgLT4g IEFwcGVuZAotICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5m b28KLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogZm9vLmYxLCBST1coZm9v LmYxKQotICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu Zm9vMgotICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmb28yLmYxLCBST1co Zm9vMi5mMSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMu Zm9vIGZvb18yCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvb18yLmYx LCBST1coZm9vXzIuZjEpCisgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2Fu IG9uIHB1YmxpYy5mb28yIGZvbzJfMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiBmb28yXzIuZjEsIFJPVyhmb28yXzIuZjEpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgZjEgRlJPTSBwdWJsaWMubG9jdDEKLSAgICAgICAg ICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMuZm9vIGZvb18xCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IChmb29fMS5mMSArIDMpLCBST1coKGZvb18x LmYxICsgMykpCi0gICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1 YmxpYy5mb28yIGZvbzJfMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiAo Zm9vMl8xLmYxICsgMyksIFJPVygoZm9vMl8xLmYxICsgMykpCisgICAgICAgICAgICAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZvbyBmb29fMworICAgICAgICAgICAgICAg ICAgICAgICAgICAgT3V0cHV0OiAoZm9vXzMuZjEgKyAzKSwgUk9XKChmb29fMy5mMSArIDMp KQorICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZm9v MiBmb28yXzMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogKGZvbzJfMy5m MSArIDMpLCBST1coKGZvbzJfMy5mMSArIDMpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxIEZST00gcHVibGljLmxvY3QxCiAoNDUgcm93cykK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIv c3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IGFiYWM4NGJjYWEu LjAyY2ExYTI4M2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAg LTY4OSw2ICs2ODksOCBAQCBzdWJxdWVyeV9wbGFubmVyKFBsYW5uZXJHbG9iYWwgKmdsb2Is IFF1ZXJ5ICpwYXJzZSwKIAkgKiByZW1vdmVfdXNlbGVzc19yZXN1bHRfcnRlcygpLiAgQWxz byBjaGVjayBmb3Igb3V0ZXIgam9pbnMgLS0tIGlmIG5vbmUsCiAJICogd2UgY2FuIHNraXAg cmVkdWNlX291dGVyX2pvaW5zKCkuICBBbmQgY2hlY2sgZm9yIExBVEVSQUwgUlRFcywgdG9v LgogCSAqIFRoaXMgbXVzdCBiZSBkb25lIGFmdGVyIHdlIGhhdmUgZG9uZSBwdWxsX3VwX3N1 YnF1ZXJpZXMoKSwgb2YgY291cnNlLgorCSAqIEZvciBSVEVfUkVMQVRJT04gcmFuZ2V0YWJs ZSBlbnRyaWVzIHdob3NlIGluaCBmbGFnIGlzIHNldCwgYWRqdXN0IHRoZQorCSAqIHZhbHVl IG9mIHRoZSBmbGFnIGJ5IGNoZWNraW5nIHdoZXRoZXIgaGFzX3N1YmNsYXNzKCkgcmV0dXJu cyB0cnVlLgogCSAqLwogCXJvb3QtPmhhc0pvaW5SVEVzID0gZmFsc2U7CiAJcm9vdC0+aGFz TGF0ZXJhbFJURXMgPSBmYWxzZTsKQEAgLTcwOCwyOSArNzEwLDMwIEBAIHN1YnF1ZXJ5X3Bs YW5uZXIoUGxhbm5lckdsb2JhbCAqZ2xvYiwgUXVlcnkgKnBhcnNlLAogCQl7CiAJCQloYXNS ZXN1bHRSVEVzID0gdHJ1ZTsKIAkJfQorCQllbHNlIGlmIChydGUtPnJ0ZWtpbmQgPT0gUlRF X1JFTEFUSU9OICYmIHJ0ZS0+aW5oKQorCQl7CisJCQlydGUtPmluaCA9IGhhc19zdWJjbGFz cyhydGUtPnJlbGlkKTsKKworCQkJLyoKKwkJCSAqIFdoaWxlIGF0IGl0LCBpbml0aWFsaXpl IHRoZSBQYXJ0aXRpb25EZXNjIGluZnJhc3RydWN0dXJlIGZvcgorCQkJICogdGhpcyBxdWVy eSwgaWYgbm90IGRvbmUgeWV0LgorCQkJICovCisJCQlpZiAocm9vdC0+Z2xvYi0+cGFydGl0 aW9uX2RpcmVjdG9yeSA9PSBOVUxMKQorCQkJCXJvb3QtPmdsb2ItPnBhcnRpdGlvbl9kaXJl Y3RvcnkgPQorCQkJCQlDcmVhdGVQYXJ0aXRpb25EaXJlY3RvcnkoQ3VycmVudE1lbW9yeUNv bnRleHQpOworCQl9CisKIAkJaWYgKHJ0ZS0+bGF0ZXJhbCkKIAkJCXJvb3QtPmhhc0xhdGVy YWxSVEVzID0gdHJ1ZTsKIAl9CiAKIAkvKgogCSAqIFByZXByb2Nlc3MgUm93TWFyayBpbmZv cm1hdGlvbi4gIFdlIG5lZWQgdG8gZG8gdGhpcyBhZnRlciBzdWJxdWVyeQotCSAqIHB1bGx1 cCAoc28gdGhhdCBhbGwgbm9uLWluaGVyaXRlZCBSVEVzIGFyZSBwcmVzZW50KSBhbmQgYmVm b3JlCi0JICogaW5oZXJpdGFuY2UgZXhwYW5zaW9uIChzbyB0aGF0IHRoZSBpbmZvIGlzIGF2 YWlsYWJsZSBmb3IKLQkgKiBleHBhbmRfaW5oZXJpdGVkX3RhYmxlcyB0byBleGFtaW5lIGFu ZCBtb2RpZnkpLgorCSAqIHB1bGx1cCAoc28gdGhhdCBhbGwgbm9uLWluaGVyaXRlZCBSVEVz IGFyZSBwcmVzZW50KS4KIAkgKi8KIAlwcmVwcm9jZXNzX3Jvd21hcmtzKHJvb3QpOwogCiAJ LyoKLQkgKiBFeHBhbmQgYW55IHJhbmdldGFibGUgZW50cmllcyB0aGF0IGFyZSBpbmhlcml0 YW5jZSBzZXRzIGludG8gImFwcGVuZAotCSAqIHJlbGF0aW9ucyIuICBUaGlzIGNhbiBhZGQg ZW50cmllcyB0byB0aGUgcmFuZ2V0YWJsZSwgYnV0IHRoZXkgbXVzdCBiZQotCSAqIHBsYWlu IFJURV9SRUxBVElPTiBlbnRyaWVzLCBzbyBpdCdzIE9LIChhbmQgbWFyZ2luYWxseSBtb3Jl IGVmZmljaWVudCkKLQkgKiB0byBkbyBpdCBhZnRlciBjaGVja2luZyBmb3Igam9pbnMgYW5k IG90aGVyIHNwZWNpYWwgUlRFcy4gIFdlIG11c3QgZG8KLQkgKiB0aGlzIGFmdGVyIHB1bGxp bmcgdXAgc3VicXVlcmllcywgZWxzZSB3ZSdkIGZhaWwgdG8gaGFuZGxlIGluaGVyaXRlZAot CSAqIHRhYmxlcyBpbiBzdWJxdWVyaWVzLgotCSAqLwotCWV4cGFuZF9pbmhlcml0ZWRfdGFi bGVzKHJvb3QpOwotCi0JLyoKIAkgKiBTZXQgaGFzSGF2aW5nUXVhbCB0byByZW1lbWJlciBp ZiBIQVZJTkcgY2xhdXNlIGlzIHByZXNlbnQuICBOZWVkZWQKIAkgKiBiZWNhdXNlIHByZXBy b2Nlc3NfZXhwcmVzc2lvbiB3aWxsIHJlZHVjZSBhIGNvbnN0YW50LXRydWUgY29uZGl0aW9u IHRvCiAJICogYW4gZW1wdHkgcXVhbCBsaXN0IC4uLiBidXQgIkhBVklORyBUUlVFIiBpcyBu b3QgYSBzZW1hbnRpYyBuby1vcC4KQEAgLTEyMDYsMTAgKzEyMDksMzUgQEAgaW5oZXJpdGFu Y2VfcGxhbm5lcihQbGFubmVySW5mbyAqcm9vdCkKIAlRdWVyeQkgICAqcGFyZW50X3BhcnNl OwogCUJpdG1hcHNldCAgKnBhcmVudF9yZWxpZHMgPSBibXNfbWFrZV9zaW5nbGV0b24odG9w X3BhcmVudFJUaW5kZXgpOwogCVBsYW5uZXJJbmZvICoqcGFyZW50X3Jvb3RzID0gTlVMTDsK KwlMaXN0CSAgICpvcmlnX2FwcGVuZF9yZWxfbGlzdCA9IGxpc3RfY29weShyb290LT5hcHBl bmRfcmVsX2xpc3QpOwogCiAJQXNzZXJ0KHBhcnNlLT5jb21tYW5kVHlwZSAhPSBDTURfSU5T RVJUKTsKIAogCS8qCisJICogQWRkIGNoaWxkIHRhcmdldCByZWxhdGlvbnMuICBOb3RlIHRo YXQgdGhpcyBvbmx5IGFkZHMgdGhlIGNoaWxkcmVuIG9mCisJICogdGhlIHF1ZXJ5J3MgdGFy Z2V0IHJlbGF0aW9uIGFuZCBubyBvdGhlci4gIEVzcGVjaWFsbHksIHRoZSBjaGlsZHJlbiBv ZgorCSAqIGFueSBzb3VyY2UgcmVsYXRpb25zIGFyZSBhZGRlZCBieSBxdWVyeV9wbGFubmVy KCkgZHVyaW5nIHRoZSBwbGFubmluZworCSAqIG9mIGVhY2ggY2hpbGQgcXVlcnkuCisJICov CisJcGFyZW50X3J0ZSA9IHJ0X2ZldGNoKHRvcF9wYXJlbnRSVGluZGV4LCByb290LT5wYXJz ZS0+cnRhYmxlKTsKKworCWV4cGFuZF9pbmhlcml0ZWRfcnRlbnRyeShyb290LCBwYXJlbnRf cnRlLCB0b3BfcGFyZW50UlRpbmRleCk7CisKKwkvKgorCSAqIElmIHBhcmVudCBubyBsb25n ZXIgaGFzIGFueSBjaGlsZHJlbiwgdGhlbiB0cmVhdCB0aGlzIGFzIGFuIHVwZGF0ZSBvZgor CSAqIGEgc2luZ2xlIHRhYmxlLgorCSAqLworCWlmICghcGFyZW50X3J0ZS0+aW5oKQorCXsK KwkJLyoKKwkJICogV2UnbGwgYmUgcmV0cmlldmluZyBhbGwgdHVwbGVzIHRvIG1vZGlmeSwg c28gcGFzc2luZyAwLjAgZm9yCisJCSAqIHR1cGxlX2ZyYWN0aW9uLgorCQkgKi8KKwkJZ3Jv dXBpbmdfcGxhbm5lcihyb290LCBmYWxzZSwgMC4wKTsKKwkJcmV0dXJuOworCX0KKworCS8q CiAJICogV2UgZ2VuZXJhdGUgYSBtb2RpZmllZCBpbnN0YW5jZSBvZiB0aGUgb3JpZ2luYWwg UXVlcnkgZm9yIGVhY2ggdGFyZ2V0CiAJICogcmVsYXRpb24sIHBsYW4gdGhhdCwgYW5kIHB1 dCBhbGwgdGhlIHBsYW5zIGludG8gYSBsaXN0IHRoYXQgd2lsbCBiZQogCSAqIGNvbnRyb2xs ZWQgYnkgYSBzaW5nbGUgTW9kaWZ5VGFibGUgbm9kZS4gIEFsbCB0aGUgaW5zdGFuY2VzIHNo YXJlIHRoZQpAQCAtMTI3MCw3ICsxMjk4LDYgQEAgaW5oZXJpdGFuY2VfcGxhbm5lcihQbGFu bmVySW5mbyAqcm9vdCkKIAkgKiBub3QgYXBwZWFyIGFueXdoZXJlIGVsc2UgaW4gdGhlIHBs YW4sIHNvIHRoZSBjb25mdXNpb24gZXhwbGFpbmVkIGJlbG93CiAJICogZm9yIG5vbi1wYXJ0 aXRpb25pbmcgaW5oZXJpdGFuY2UgY2FzZXMgaXMgbm90IHBvc3NpYmxlLgogCSAqLwotCXBh cmVudF9ydGUgPSBydF9mZXRjaCh0b3BfcGFyZW50UlRpbmRleCwgcm9vdC0+cGFyc2UtPnJ0 YWJsZSk7CiAJaWYgKHBhcmVudF9ydGUtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05F RF9UQUJMRSkKIAl7CiAJCW5vbWluYWxSZWxhdGlvbiA9IHRvcF9wYXJlbnRSVGluZGV4OwpA QCAtMTMyMSw2ICsxMzQ4LDkgQEAgaW5oZXJpdGFuY2VfcGxhbm5lcihQbGFubmVySW5mbyAq cm9vdCkKIAkJc3Vicm9vdCA9IG1ha2VOb2RlKFBsYW5uZXJJbmZvKTsKIAkJbWVtY3B5KHN1 YnJvb3QsIHBhcmVudF9yb290LCBzaXplb2YoUGxhbm5lckluZm8pKTsKIAorCQkvKiBncm91 cGluZ19wbGFubmVyIGRvZXNuJ3QgbmVlZCB0byBzZWUgdGhlIHRhcmdldCBjaGlsZHJlbi4g Ki8KKwkJc3Vicm9vdC0+YXBwZW5kX3JlbF9saXN0ID0gbGlzdF9jb3B5KG9yaWdfYXBwZW5k X3JlbF9saXN0KTsKKwogCQkvKgogCQkgKiBHZW5lcmF0ZSBtb2RpZmllZCBxdWVyeSB3aXRo IHRoaXMgcmVsIGFzIHRhcmdldC4gIFdlIGZpcnN0IGFwcGx5CiAJCSAqIGFkanVzdF9hcHBl bmRyZWxfYXR0cnMsIHdoaWNoIGNvcGllcyB0aGUgUXVlcnkgYW5kIGNoYW5nZXMKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2luaGVyaXQuYyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci91dGlsL2luaGVyaXQuYwppbmRleCAxZmExNTRlMGNiLi4yNDExMWM0 NmU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9pbmhlcml0LmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvaW5oZXJpdC5jCkBAIC0yMSwxNCAr MjEsMTQgQEAKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIv YXBwZW5kaW5mby5oIgogI2luY2x1ZGUgIm9wdGltaXplci9pbmhlcml0LmgiCisjaW5jbHVk ZSAib3B0aW1pemVyL3BhdGhub2RlLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL3BsYW5tYWlu LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3BsYW5uZXIuaCIKICNpbmNsdWRlICJvcHRpbWl6 ZXIvcHJlcC5oIgogI2luY2x1ZGUgInBhcnRpdGlvbmluZy9wYXJ0ZGVzYy5oIgogI2luY2x1 ZGUgInV0aWxzL3JlbC5oIgogCiAKLXN0YXRpYyB2b2lkIGV4cGFuZF9pbmhlcml0ZWRfcnRl bnRyeShQbGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcnRlLAotCQkJCQkJIElu ZGV4IHJ0aSk7CiBzdGF0aWMgdm9pZCBleHBhbmRfcGFydGl0aW9uZWRfcnRlbnRyeShQbGFu bmVySW5mbyAqcm9vdCwKIAkJCQkJCSAgIFJhbmdlVGJsRW50cnkgKnBhcmVudHJ0ZSwKIAkJ CQkJCSAgIEluZGV4IHBhcmVudFJUaW5kZXgsIFJlbGF0aW9uIHBhcmVudHJlbCwKQEAgLTQ1 LDM2ICs0NSw2IEBAIHN0YXRpYyBCaXRtYXBzZXQgKnRyYW5zbGF0ZV9jb2xfcHJpdnMoY29u c3QgQml0bWFwc2V0ICpwYXJlbnRfcHJpdnMsCiAKIAogLyoKLSAqIGV4cGFuZF9pbmhlcml0 ZWRfdGFibGVzCi0gKgkJRXhwYW5kIGVhY2ggcmFuZ2V0YWJsZSBlbnRyeSB0aGF0IHJlcHJl c2VudHMgYW4gaW5oZXJpdGFuY2Ugc2V0Ci0gKgkJaW50byBhbiAiYXBwZW5kIHJlbGF0aW9u Ii4gIEF0IHRoZSBjb25jbHVzaW9uIG9mIHRoaXMgcHJvY2VzcywKLSAqCQl0aGUgImluaCIg ZmxhZyBpcyBzZXQgaW4gYWxsIGFuZCBvbmx5IHRob3NlIFJURXMgdGhhdCBhcmUgYXBwZW5k Ci0gKgkJcmVsYXRpb24gcGFyZW50cy4KLSAqLwotdm9pZAotZXhwYW5kX2luaGVyaXRlZF90 YWJsZXMoUGxhbm5lckluZm8gKnJvb3QpCi17Ci0JSW5kZXgJCW5ydGVzOwotCUluZGV4CQly dGk7Ci0JTGlzdENlbGwgICAqcmw7Ci0KLQkvKgotCSAqIGV4cGFuZF9pbmhlcml0ZWRfcnRl bnRyeSBtYXkgYWRkIFJURXMgdG8gcGFyc2UtPnJ0YWJsZS4gVGhlIGZ1bmN0aW9uIGlzCi0J ICogZXhwZWN0ZWQgdG8gcmVjdXJzaXZlbHkgaGFuZGxlIGFueSBSVEVzIHRoYXQgaXQgY3Jl YXRlcyB3aXRoIGluaD10cnVlLgotCSAqIFNvIGp1c3Qgc2NhbiBhcyBmYXIgYXMgdGhlIG9y aWdpbmFsIGVuZCBvZiB0aGUgcnRhYmxlIGxpc3QuCi0JICovCi0JbnJ0ZXMgPSBsaXN0X2xl bmd0aChyb290LT5wYXJzZS0+cnRhYmxlKTsKLQlybCA9IGxpc3RfaGVhZChyb290LT5wYXJz ZS0+cnRhYmxlKTsKLQlmb3IgKHJ0aSA9IDE7IHJ0aSA8PSBucnRlczsgcnRpKyspCi0Jewot CQlSYW5nZVRibEVudHJ5ICpydGUgPSAoUmFuZ2VUYmxFbnRyeSAqKSBsZmlyc3QocmwpOwot Ci0JCWV4cGFuZF9pbmhlcml0ZWRfcnRlbnRyeShyb290LCBydGUsIHJ0aSk7Ci0JCXJsID0g bG5leHQocmwpOwotCX0KLX0KLQotLyoKICAqIGV4cGFuZF9pbmhlcml0ZWRfcnRlbnRyeQog ICoJCUNoZWNrIHdoZXRoZXIgYSByYW5nZXRhYmxlIGVudHJ5IHJlcHJlc2VudHMgYW4gaW5o ZXJpdGFuY2Ugc2V0LgogICoJCUlmIHNvLCBhZGQgZW50cmllcyBmb3IgYWxsIHRoZSBjaGls ZCB0YWJsZXMgdG8gdGhlIHF1ZXJ5J3MKQEAgLTk0LDcgKzY0LDcgQEAgZXhwYW5kX2luaGVy aXRlZF90YWJsZXMoUGxhbm5lckluZm8gKnJvb3QpCiAgKiBTaW5jZSBhIHBhcnRpdGlvbmVk IHRhYmxlIGlzIG5vdCBzY2FubmVkLCBpdCBtaWdodCBoYXZlIG9ubHkgb25lIGFzc29jaWF0 ZWQKICAqIEFwcGVuZFJlbEluZm8uCiAgKi8KLXN0YXRpYyB2b2lkCit2b2lkCiBleHBhbmRf aW5oZXJpdGVkX3J0ZW50cnkoUGxhbm5lckluZm8gKnJvb3QsIFJhbmdlVGJsRW50cnkgKnJ0 ZSwgSW5kZXggcnRpKQogewogCU9pZAkJCXBhcmVudE9JRDsKQEAgLTE0NywxMCArMTE3LDYg QEAgZXhwYW5kX2luaGVyaXRlZF9ydGVudHJ5KFBsYW5uZXJJbmZvICpyb290LCBSYW5nZVRi bEVudHJ5ICpydGUsIEluZGV4IHJ0aSkKIAl7CiAJCUFzc2VydChydGUtPnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSk7CiAKLQkJaWYgKHJvb3QtPmdsb2ItPnBhcnRp dGlvbl9kaXJlY3RvcnkgPT0gTlVMTCkKLQkJCXJvb3QtPmdsb2ItPnBhcnRpdGlvbl9kaXJl Y3RvcnkgPQotCQkJCUNyZWF0ZVBhcnRpdGlvbkRpcmVjdG9yeShDdXJyZW50TWVtb3J5Q29u dGV4dCk7Ci0KIAkJLyoKIAkJICogSWYgdGhpcyB0YWJsZSBoYXMgcGFydGl0aW9ucywgcmVj dXJzaXZlbHkgZXhwYW5kIGFuZCBsb2NrIHRoZW0uCiAJCSAqIFdoaWxlIGF0IGl0LCBhbHNv IGV4dHJhY3QgdGhlIHBhcnRpdGlvbiBrZXkgY29sdW1ucyBvZiBhbGwgdGhlCkBAIC0xNjQs NiArMTMwLDggQEAgZXhwYW5kX2luaGVyaXRlZF9ydGVudHJ5KFBsYW5uZXJJbmZvICpyb290 LCBSYW5nZVRibEVudHJ5ICpydGUsIEluZGV4IHJ0aSkKIAkJTGlzdAkgICAqYXBwaW5mb3Mg PSBOSUw7CiAJCVJhbmdlVGJsRW50cnkgKmNoaWxkcnRlOwogCQlJbmRleAkJY2hpbGRSVGlu ZGV4OworCQlib29sCQlpc19zb3VyY2VfaW5oX2V4cGFuc2lvbjsKKwkJUmVsT3B0SW5mbyAq cmVsID0gTlVMTDsKIAogCQkvKiBTY2FuIGZvciBhbGwgbWVtYmVycyBvZiBpbmhlcml0YW5j ZSBzZXQsIGFjcXVpcmUgbmVlZGVkIGxvY2tzICovCiAJCWluaE9JRHMgPSBmaW5kX2FsbF9p bmhlcml0b3JzKHBhcmVudE9JRCwgbG9ja21vZGUsIE5VTEwpOwpAQCAtMTgyLDYgKzE1MCwy MCBAQCBleHBhbmRfaW5oZXJpdGVkX3J0ZW50cnkoUGxhbm5lckluZm8gKnJvb3QsIFJhbmdl VGJsRW50cnkgKnJ0ZSwgSW5kZXggcnRpKQogCQl9CiAKIAkJLyoKKwkJICogSWYgcGFyZW50 IGlzIGEgc291cmNlIHJlbGF0aW9uIG9mIHRoZSBxdWVyeSwgd2UnZCBuZWVkIHRvIGFkZCB0 aGUKKwkJICogY2hpbGQgUmVsT3B0SW5mb3MgYXMgd2VsbCwgaW4gYWRkaXRpb24gdG8gUmFu Z2VUYmxFbnRyeSdzIGFuZAorCQkgKiBBcHBlbmRSZWxJbmZvJ3MuICBXZSBjYW4gdGVsbCBp dCdzIHNvdXJjZSByZWxhdGlvbiBieSBub3RpbmcgdGhhdAorCQkgKiBzaW1wbGVfcmVsX2Fy cmF5IGhhcyBiZWVuIHNldCB1cCBieSBxdWVyeV9wbGFubmVyLgorCQkgKi8KKwkJaXNfc291 cmNlX2luaF9leHBhbnNpb24gPSAocm9vdC0+c2ltcGxlX3JlbF9hcnJheV9zaXplID4gMCk7 CisJCWlmIChpc19zb3VyY2VfaW5oX2V4cGFuc2lvbikKKwkJeworCQkJcmVsID0gZmluZF9i YXNlX3JlbChyb290LCBydGkpOworCQkJLyogRXhwYW5kIHZhcmlvdXMgYXJyYXlzIGluIFBs YW5uZXJJbmZvIHRvIGhvbGQgY2hpbGQgb2JqZWN0LiAqLworCQkJZXhwYW5kX3BsYW5uZXJf YXJyYXlzKHJvb3QsIGxpc3RfbGVuZ3RoKGluaE9JRHMpKTsKKwkJfQorCisJCS8qCiAJCSAq IFRoaXMgdGFibGUgaGFzIG5vIHBhcnRpdGlvbnMuICBFeHBhbmQgYW55IHBsYWluIGluaGVy aXRhbmNlCiAJCSAqIGNoaWxkcmVuIGluIHRoZSBvcmRlciB0aGUgT0lEcyB3ZXJlIHJldHVy bmVkIGJ5CiAJCSAqIGZpbmRfYWxsX2luaGVyaXRvcnMuCkBAIC0yMTQsNiArMTk2LDEwIEBA IGV4cGFuZF9pbmhlcml0ZWRfcnRlbnRyeShQbGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxF bnRyeSAqcnRlLCBJbmRleCBydGkpCiAJCQkJCQkJCQkJCSZhcHBpbmZvcywgJmNoaWxkcnRl LAogCQkJCQkJCQkJCQkmY2hpbGRSVGluZGV4KTsKIAorCQkJLyogQ3JlYXRlIHRoZSBvdGhl cnJlbCBSZWxPcHRJbmZvIHRvby4gKi8KKwkJCWlmIChpc19zb3VyY2VfaW5oX2V4cGFuc2lv bikKKwkJCQkodm9pZCkgYnVpbGRfc2ltcGxlX3JlbChyb290LCBjaGlsZFJUaW5kZXgsIHJl bCk7CisKIAkJCS8qIENsb3NlIGNoaWxkIHJlbGF0aW9ucywgYnV0IGtlZXAgbG9ja3MgKi8K IAkJCWlmIChjaGlsZE9JRCAhPSBwYXJlbnRPSUQpCiAJCQkJdGFibGVfY2xvc2UobmV3cmVs YXRpb24sIE5vTG9jayk7CkBAIC0yNTEsMTIgKzIzNywxNCBAQCBleHBhbmRfcGFydGl0aW9u ZWRfcnRlbnRyeShQbGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcGFyZW50cnRl LAogCVJhbmdlVGJsRW50cnkgKmNoaWxkcnRlOwogCUluZGV4CQljaGlsZFJUaW5kZXg7CiAJ UGFydGl0aW9uRGVzYyBwYXJ0ZGVzYzsKKwlSZWxPcHRJbmZvICpyZWwgPSBOVUxMOworCWJv b2wJCWlzX3NvdXJjZV9pbmhfZXhwYW5zaW9uOworCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsK IAogCXBhcnRkZXNjID0gUGFydGl0aW9uRGlyZWN0b3J5TG9va3VwKHJvb3QtPmdsb2ItPnBh cnRpdGlvbl9kaXJlY3RvcnksCiAJCQkJCQkJCQkJcGFyZW50cmVsKTsKIAotCWNoZWNrX3N0 YWNrX2RlcHRoKCk7Ci0KIAkvKiBBIHBhcnRpdGlvbmVkIHRhYmxlIHNob3VsZCBhbHdheXMg aGF2ZSBhIHBhcnRpdGlvbiBkZXNjcmlwdG9yLiAqLwogCUFzc2VydChwYXJ0ZGVzYyk7CiAK QEAgLTI3Myw2ICsyNjEsMzUgQEAgZXhwYW5kX3BhcnRpdGlvbmVkX3J0ZW50cnkoUGxhbm5l ckluZm8gKnJvb3QsIFJhbmdlVGJsRW50cnkgKnBhcmVudHJ0ZSwKIAkJcm9vdC0+cGFydENv bHNVcGRhdGVkID0KIAkJCWhhc19wYXJ0aXRpb25fYXR0cnMocGFyZW50cmVsLCBwYXJlbnRy dGUtPnVwZGF0ZWRDb2xzLCBOVUxMKTsKIAorCS8qCisJICogSWYgcGFyZW50IGlzIGEgc291 cmNlIHJlbGF0aW9uIG9mIHRoZSBxdWVyeSwgd2UnZCBuZWVkIHRvIGFkZCB0aGUgY2hpbGQK KwkgKiBSZWxPcHRJbmZvcyBhcyB3ZWxsLCBpbiBhZGRpdGlvbiB0byBSYW5nZVRibEVudHJ5 J3MgYW5kCisJICogQXBwZW5kUmVsSW5mbydzLiAgV2UgY2FuIHRlbGwgaXQncyBzb3VyY2Ug cmVsYXRpb24gYnkgbm90aW5nIHRoYXQKKwkgKiBzaW1wbGVfcmVsX2FycmF5IGhhcyBiZWVu IHNldCB1cCBieSBxdWVyeV9wbGFubmVyLgorCSAqLworCWlzX3NvdXJjZV9pbmhfZXhwYW5z aW9uID0gKHJvb3QtPnNpbXBsZV9yZWxfYXJyYXlfc2l6ZSA+IDApOworCWlmIChpc19zb3Vy Y2VfaW5oX2V4cGFuc2lvbikKKwl7CisJCXJlbCA9IGZpbmRfYmFzZV9yZWwocm9vdCwgcGFy ZW50UlRpbmRleCk7CisKKwkJLyoKKwkJICogRXhwYW5kIHNpbXBsZV9yZWxfYXJyYXkgYW5k IGZyaWVuZHMgdG8gaG9sZCBjaGlsZCBvYmplY3RzLgorCQkgKgorCQkgKiBXZSdsbCBuZWVk IG5wYXJ0cyArIDEgbmV3IHNsb3RzLCBiZWNhdXNlIHdlIGFsc28gY29uc2lkZXIgcGFyZW50 CisJCSAqIGFzIGEgY2hpbGQgcmVsYXRpb24uIEZJWE1FOiBubyBsb25nZXIgYWRkIHRoZSBw YXJlbnQgYXMgY2hpbGQKKwkJICovCisJCWV4cGFuZF9wbGFubmVyX2FycmF5cyhyb290LCBw YXJ0ZGVzYy0+bnBhcnRzICsgMSk7CisKKwkJLyoKKwkJICogV2UgYWxzbyBzdG9yZSBwYXJ0 aXRpb24gUmVsT3B0SW5mbyBwb2ludGVycyBpbiB0aGUgcGFyZW50CisJCSAqIHJlbGF0aW9u LgorCQkgKi8KKwkJQXNzZXJ0KHJlbC0+cGFydF9yZWxzID09IE5VTEwpOworCQlpZiAocGFy dGRlc2MtPm5wYXJ0cyA+IDApCisJCQlyZWwtPnBhcnRfcmVscyA9IChSZWxPcHRJbmZvICoq KSBwYWxsb2MwKHJlbC0+bnBhcnRzICoKKwkJCQkJCQkJCQkJCQkgc2l6ZW9mKFJlbE9wdElu Zm8gKikpOworCX0KKwogCS8qIEZpcnN0IGV4cGFuZCB0aGUgcGFydGl0aW9uZWQgdGFibGUg aXRzZWxmLiAqLwogCWV4cGFuZF9zaW5nbGVfaW5oZXJpdGFuY2VfY2hpbGQocm9vdCwgcGFy ZW50cnRlLCBwYXJlbnRSVGluZGV4LCBwYXJlbnRyZWwsCiAJCQkJCQkJCQl0b3BfcGFyZW50 cmMsIHBhcmVudHJlbCwKQEAgLTMwOCw4ICszMjUsMTkgQEAgZXhwYW5kX3BhcnRpdGlvbmVk X3J0ZW50cnkoUGxhbm5lckluZm8gKnJvb3QsIFJhbmdlVGJsRW50cnkgKnBhcmVudHJ0ZSwK IAkJCQkJCQkJCQlwYXJlbnRyZWwsIHRvcF9wYXJlbnRyYywgY2hpbGRyZWwsCiAJCQkJCQkJ CQkJYXBwaW5mb3MsICZjaGlsZHJ0ZSwgJmNoaWxkUlRpbmRleCk7CiAKLQkJLyogSWYgdGhp cyBjaGlsZCBpcyBpdHNlbGYgcGFydGl0aW9uZWQsIHJlY3Vyc2UgKi8KLQkJaWYgKGNoaWxk cmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJ LyogQ3JlYXRlIHRoZSBvdGhlcnJlbCBSZWxPcHRJbmZvIHRvby4gKi8KKwkJaWYgKGlzX3Nv dXJjZV9pbmhfZXhwYW5zaW9uKQorCQl7CisJCQlBc3NlcnQocmVsLT5wYXJ0X3JlbHMgIT0g TlVMTCAmJiByZWwtPnBhcnRfcmVsc1tpXSA9PSBOVUxMKTsKKwkJCXJlbC0+cGFydF9yZWxz W2ldID0gYnVpbGRfc2ltcGxlX3JlbChyb290LCBjaGlsZFJUaW5kZXgsIHJlbCk7CisJCX0K KworCQkvKgorCQkgKiBJZiB0aGlzIGNoaWxkIGlzIGl0c2VsZiBwYXJ0aXRpb25lZCwgcmVj dXJzZS4gIEJhY2sgb2ZmIGlmIHRoZSBpbmgKKwkJICogZmxhZyB3YXMgcmVzZXQgYnkgZXhw YW5kX3NpbmdsZV9pbmhlcml0YW5jZV9jaGlsZCgpLgorCQkgKi8KKwkJaWYgKGNoaWxkcmVs LT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSAmJgorCQkJ Y2hpbGRydGUtPmluaCkKIAkJCWV4cGFuZF9wYXJ0aXRpb25lZF9ydGVudHJ5KHJvb3QsIGNo aWxkcnRlLCBjaGlsZFJUaW5kZXgsCiAJCQkJCQkJCQkgICBjaGlsZHJlbCwgdG9wX3BhcmVu dHJjLCBsb2NrbW9kZSwKIAkJCQkJCQkJCSAgIGFwcGluZm9zKTsKQEAgLTM1Miw3ICszODAs MTQgQEAgZXhwYW5kX3NpbmdsZV9pbmhlcml0YW5jZV9jaGlsZChQbGFubmVySW5mbyAqcm9v dCwgUmFuZ2VUYmxFbnRyeSAqcGFyZW50cnRlLAogCU9pZAkJCWNoaWxkT0lEID0gUmVsYXRp b25HZXRSZWxpZChjaGlsZHJlbCk7CiAJUmFuZ2VUYmxFbnRyeSAqY2hpbGRydGU7CiAJSW5k ZXgJCWNoaWxkUlRpbmRleDsKLQlBcHBlbmRSZWxJbmZvICphcHBpbmZvOworCUFwcGVuZFJl bEluZm8gKmFwcGluZm8gPSBOVUxMOworCVBhcnRpdGlvbkRlc2MgY2hpbGRfcGFydGRlc2Mg PSBOVUxMOworCWJvb2wJCWlzX3NvdXJjZV9pbmhfZXhwYW5zaW9uOworCisJaWYgKGNoaWxk cmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJ Y2hpbGRfcGFydGRlc2MgPQorCQkJUGFydGl0aW9uRGlyZWN0b3J5TG9va3VwKHJvb3QtPmds b2ItPnBhcnRpdGlvbl9kaXJlY3RvcnksCisJCQkJCQkJCQkgY2hpbGRyZWwpOwogCiAJLyoK IAkgKiBCdWlsZCBhbiBSVEUgZm9yIHRoZSBjaGlsZCwgYW5kIGF0dGFjaCB0byBxdWVyeSdz IHJhbmdldGFibGUgbGlzdC4gV2UKQEAgLTM3MCw5ICs0MDUsMTEgQEAgZXhwYW5kX3Npbmds ZV9pbmhlcml0YW5jZV9jaGlsZChQbGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAq cGFyZW50cnRlLAogCSpjaGlsZHJ0ZV9wID0gY2hpbGRydGU7CiAJY2hpbGRydGUtPnJlbGlk ID0gY2hpbGRPSUQ7CiAJY2hpbGRydGUtPnJlbGtpbmQgPSBjaGlsZHJlbC0+cmRfcmVsLT5y ZWxraW5kOwotCS8qIEEgcGFydGl0aW9uZWQgY2hpbGQgd2lsbCBuZWVkIHRvIGJlIGV4cGFu ZGVkIGZ1cnRoZXIuICovCi0JaWYgKGNoaWxkT0lEICE9IHBhcmVudE9JRCAmJgotCQljaGls ZHJ0ZS0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCS8qCisJICog QSBwYXJ0aXRpb25lZCBjaGlsZCB3aWxsIG5lZWQgdG8gYmUgZXhwYW5kZWQgZnVydGhlciwg YnV0IG9ubHkgaWYgaXQKKwkgKiBhY3R1YWxseSBoYXMgcGFydGl0aW9ucy4KKwkgKi8KKwlp ZiAoY2hpbGRPSUQgIT0gcGFyZW50T0lEICYmIGNoaWxkX3BhcnRkZXNjICYmIGNoaWxkX3Bh cnRkZXNjLT5ucGFydHMgPiAwKQogCQljaGlsZHJ0ZS0+aW5oID0gdHJ1ZTsKIAllbHNlCiAJ CWNoaWxkcnRlLT5pbmggPSBmYWxzZTsKQEAgLTM4MywxMyArNDIwLDExIEBAIGV4cGFuZF9z aW5nbGVfaW5oZXJpdGFuY2VfY2hpbGQoUGxhbm5lckluZm8gKnJvb3QsIFJhbmdlVGJsRW50 cnkgKnBhcmVudHJ0ZSwKIAkqY2hpbGRSVGluZGV4X3AgPSBjaGlsZFJUaW5kZXg7CiAKIAkv KgotCSAqIFdlIG5lZWQgYW4gQXBwZW5kUmVsSW5mbyBpZiBwYXRocyB3aWxsIGJlIGJ1aWx0 IGZvciB0aGUgY2hpbGQgUlRFLiBJZgotCSAqIGNoaWxkcnRlLT5pbmggaXMgdHJ1ZSwgdGhl biB3ZSdsbCBhbHdheXMgbmVlZCB0byBnZW5lcmF0ZSBhcHBlbmQgcGF0aHMKLQkgKiBmb3Ig aXQuICBJZiBjaGlsZHJ0ZS0+aW5oIGlzIGZhbHNlLCB3ZSBtdXN0IHNjYW4gaXQgaWYgaXQn cyBub3QgYQotCSAqIHBhcnRpdGlvbmVkIHRhYmxlOyBidXQgaWYgaXQgaXMgYSBwYXJ0aXRp b25lZCB0YWJsZSwgdGhlbiBpdCBuZXZlciBoYXMKLQkgKiBhbnkgZGF0YSBvZiBpdHMgb3du IGFuZCBuZWVkIG5vdCBiZSBzY2FubmVkLgorCSAqIERvbid0IG5lZWQgYW4gQXBwZW5kUmVs SW5mbyBmb3IgZHVwbGljYXRlIFJURXMgd2UgY3JlYXRlIGZvcgorCSAqIHBhcnRpdGlvbmVk IHRhYmxlIHBhcmVudCByZWxzLgogCSAqLwotCWlmIChjaGlsZHJ0ZS0+cmVsa2luZCAhPSBS RUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFIHx8IGNoaWxkcnRlLT5pbmgpCisJaWYgKGNoaWxk cnRlLT5yZWxpZCAhPSBwYXJlbnRPSUQgfHwKKwkJY2hpbGRydGUtPnJlbGtpbmQgIT0gUkVM S0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAl7CiAJCWFwcGluZm8gPSBtYWtlX2FwcGVuZF9y ZWxfaW5mbyhwYXJlbnRyZWwsIGNoaWxkcmVsLAogCQkJCQkJCQkJICAgcGFyZW50UlRpbmRl eCwgY2hpbGRSVGluZGV4KTsKQEAgLTQxNiw2ICs0NTEsMjEgQEAgZXhwYW5kX3NpbmdsZV9p bmhlcml0YW5jZV9jaGlsZChQbGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcGFy ZW50cnRlLAogCX0KIAogCS8qCisJICogSWYgd2UgYXJlIGV4cGFuZGluZyBzb3VyY2UgaW5o ZXJpdGFuY2UsIHN0b3JlIHRoZSBSVEUgYW5kIGFwcGluZm8gaW4gdGhlCisJICogcmVzcGVj dGl2ZSBQbGFubmVySW5mbyBhcnJheXMsIHdoaWNoIHRoZSBjYWxsZXIgbXVzdCBhbHJlYWR5 IGhhdmUKKwkgKiBhbGxvY2F0ZWQgc3BhY2UgZm9yLgorCSAqLworCWlzX3NvdXJjZV9pbmhf ZXhwYW5zaW9uID0gKHJvb3QtPnNpbXBsZV9yZWxfYXJyYXlfc2l6ZSA+IDApOworCWlmIChp c19zb3VyY2VfaW5oX2V4cGFuc2lvbiA+IDApCisJeworCQlBc3NlcnQoY2hpbGRSVGluZGV4 IDwgcm9vdC0+c2ltcGxlX3JlbF9hcnJheV9zaXplKTsKKwkJQXNzZXJ0KHJvb3QtPnNpbXBs ZV9ydGVfYXJyYXlbY2hpbGRSVGluZGV4XSA9PSBOVUxMKTsKKwkJcm9vdC0+c2ltcGxlX3J0 ZV9hcnJheVtjaGlsZFJUaW5kZXhdID0gY2hpbGRydGU7CisJCUFzc2VydChyb290LT5hcHBl bmRfcmVsX2FycmF5W2NoaWxkUlRpbmRleF0gPT0gTlVMTCk7CisJCXJvb3QtPmFwcGVuZF9y ZWxfYXJyYXlbY2hpbGRSVGluZGV4XSA9IGFwcGluZm87CisJfQorCisJLyoKIAkgKiBCdWls ZCBhIFBsYW5Sb3dNYXJrIGlmIHBhcmVudCBpcyBtYXJrZWQgRk9SIFVQREFURS9TSEFSRS4K IAkgKi8KIAlpZiAodG9wX3BhcmVudHJjKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvcGxhbmNhdC5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGxh bmNhdC5jCmluZGV4IDMwZjRkYzE1MWIuLjJiMjJkZmY2OTAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL3BsYW5jYXQuYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvdXRpbC9wbGFuY2F0LmMKQEAgLTIwOTEsNyArMjA5MSwxNCBAQCBzZXRfcmVsYXRp b25fcGFydGl0aW9uX2luZm8oUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCwK IAlwYXJ0a2V5ID0gUmVsYXRpb25HZXRQYXJ0aXRpb25LZXkocmVsYXRpb24pOwogCXJlbC0+ cGFydF9zY2hlbWUgPSBmaW5kX3BhcnRpdGlvbl9zY2hlbWUocm9vdCwgcmVsYXRpb24pOwog CUFzc2VydChwYXJ0ZGVzYyAhPSBOVUxMICYmIHJlbC0+cGFydF9zY2hlbWUgIT0gTlVMTCk7 Ci0JcmVsLT5ib3VuZGluZm8gPSBwYXJ0aXRpb25fYm91bmRzX2NvcHkocGFydGRlc2MtPmJv dW5kaW5mbywgcGFydGtleSk7CisJLyoKKwkgKiBYWFggd2Ugc2hvdWxkIGJlIGFibGUgdG8g QXNzZXJ0KHBhcnRkZXNjLT5ucGFydHMgPiAwKSwgYnV0IHdlJ3ZlIG9ubHkKKwkgKiBsb29r ZWQgYXQgaW5oIGZsYWcgc28gZmFyLCB3aG9zZSB2YWx1ZSBpcyBiYXNlZCBvbiByZWxoYXNz dWJjbGFzcyBhcworCSAqIGNoZWNrZWQgYnkgc3VicXVlcnlfcGxhbm5lcigpLiAgcmVsaGFz c3ViY2xhc3MgbWF5IGJlIHN0YWxlIGFzIGl0J3MKKwkgKiBvbmx5IGxhemlseSB1cGRhdGVk IGFzIGZhciBhcyBkcm9wcGVkIHBhcnRpdGlvbnMgYXJlIGNvbmNlcm5lZC4KKwkgKi8KKwlp ZiAocGFydGRlc2MtPm5wYXJ0cyA+IDApCisJCXJlbC0+Ym91bmRpbmZvID0gcGFydGl0aW9u X2JvdW5kc19jb3B5KHBhcnRkZXNjLT5ib3VuZGluZm8sIHBhcnRrZXkpOwogCXJlbC0+bnBh cnRzID0gcGFydGRlc2MtPm5wYXJ0czsKIAlzZXRfYmFzZXJlbF9wYXJ0aXRpb25fa2V5X2V4 cHJzKHJlbGF0aW9uLCByZWwpOwogCXJlbC0+cGFydGl0aW9uX3F1YWwgPSBSZWxhdGlvbkdl dFBhcnRpdGlvblF1YWwocmVsYXRpb24pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvcmVsbm9kZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcmVs bm9kZS5jCmluZGV4IDhhNTk4MTk0NjkuLjlkY2MzMTY3ZTAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL3JlbG5vZGUuYworKysgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvdXRpbC9yZWxub2RlLmMKQEAgLTEzOSw2ICsxMzksNTAgQEAgc2V0dXBfYXBwZW5k X3JlbF9hcnJheShQbGFubmVySW5mbyAqcm9vdCkKIH0KIAogLyoKKyAqIGV4cGFuZF9wbGFu bmVyX2FycmF5cworICoJCUV4cGFuZCB0aGUgUGxhbm5lckluZm8gYXJyYXlzIGJ5IGFkZF9z aXplIG1lbWJlcnMgYW5kIGluaXRpYWxpemUgdGhlCisgKgkJdGhlIG5ld2x5IGFkZGVkIGJ5 dGVzIHdpdGggemVybworICovCit2b2lkCitleHBhbmRfcGxhbm5lcl9hcnJheXMoUGxhbm5l ckluZm8gKnJvb3QsIGludCBhZGRfc2l6ZSkKK3sKKwlpbnQJCW5ld19zaXplOworCisJQXNz ZXJ0KGFkZF9zaXplID4gMCk7CisKKwluZXdfc2l6ZSA9IHJvb3QtPnNpbXBsZV9yZWxfYXJy YXlfc2l6ZSArIGFkZF9zaXplOworCisJLyogRXhwYW5kIHZhcmlvdXMgYXJyYXlzIGFuZCAw LWluaXRpYWxpemUgYWRkZWQgYnl0ZXMuICovCisJcm9vdC0+c2ltcGxlX3J0ZV9hcnJheSA9 IChSYW5nZVRibEVudHJ5ICoqKQorCQkJCQkJCXJlcGFsbG9jKHJvb3QtPnNpbXBsZV9ydGVf YXJyYXksCisJCQkJCQkJCQkgc2l6ZW9mKFJhbmdlVGJsRW50cnkgKikgKiBuZXdfc2l6ZSk7 CisJTWVtU2V0KHJvb3QtPnNpbXBsZV9ydGVfYXJyYXkgKyByb290LT5zaW1wbGVfcmVsX2Fy cmF5X3NpemUsCisJCSAgIDAsIHNpemVvZihSYW5nZVRibEVudHJ5ICopICogYWRkX3NpemUp OworCXJvb3QtPnNpbXBsZV9yZWxfYXJyYXkgPSAoUmVsT3B0SW5mbyAqKikKKwkJCQkJCQkJ cmVwYWxsb2Mocm9vdC0+c2ltcGxlX3JlbF9hcnJheSwKKwkJCQkJCQkJCQkgc2l6ZW9mKFJl bE9wdEluZm8gKikgKiBuZXdfc2l6ZSk7CisJTWVtU2V0KHJvb3QtPnNpbXBsZV9yZWxfYXJy YXkgKyByb290LT5zaW1wbGVfcmVsX2FycmF5X3NpemUsCisJCSAgIDAsIHNpemVvZihSZWxP cHRJbmZvICopICogYWRkX3NpemUpOworCisJaWYgKHJvb3QtPmFwcGVuZF9yZWxfYXJyYXkp CisJeworCQlyb290LT5hcHBlbmRfcmVsX2FycmF5ID0gKEFwcGVuZFJlbEluZm8gKiopCisJ CQkJCQkJCQlyZXBhbGxvYyhyb290LT5hcHBlbmRfcmVsX2FycmF5LAorCQkJCQkJCQkJIHNp emVvZihBcHBlbmRSZWxJbmZvICopICogbmV3X3NpemUpOworCQlNZW1TZXQocm9vdC0+YXBw ZW5kX3JlbF9hcnJheSArIHJvb3QtPnNpbXBsZV9yZWxfYXJyYXlfc2l6ZSwKKwkJCSAgIDAs IHNpemVvZihBcHBlbmRSZWxJbmZvICopICogYWRkX3NpemUpOworCX0KKwllbHNlCisJewor CQlyb290LT5hcHBlbmRfcmVsX2FycmF5ID0gKEFwcGVuZFJlbEluZm8gKiopCisJCQkJCQkJ CQlwYWxsb2MwKHNpemVvZihBcHBlbmRSZWxJbmZvICopICoKKwkJCQkJCQkJCQkJbmV3X3Np emUpOworCX0KKworCXJvb3QtPnNpbXBsZV9yZWxfYXJyYXlfc2l6ZSA9IG5ld19zaXplOwor fQorCisvKgogICogYnVpbGRfc2ltcGxlX3JlbAogICoJICBDb25zdHJ1Y3QgYSBuZXcgUmVs T3B0SW5mbyBmb3IgYSBiYXNlIHJlbGF0aW9uIG9yICdvdGhlcicgcmVsYXRpb24uCiAgKi8K QEAgLTI5NSwyMiArMzM5LDIxIEBAIGFkZF9hcHBlbmRyZWxfb3RoZXJfcmVscyhQbGFubmVy SW5mbyAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcnRlLCBJbmRleCBydGkpCiB7CiAJTGlzdENl bGwJICAgKmw7CiAJUmVsT3B0SW5mbwkgICAqcmVsOwotCWludAkJCQlpOwotCi0JcmVsID0g ZmluZF9iYXNlX3JlbChyb290LCBydGkpOwogCiAJLyoKLQkgKiBGb3IgcGFydGl0aW9uZWQg dGFibGVzLCB3ZSBuZWVkIHRvIHN0b3JlIHRoZSBjaGlsZCBSZWxPcHRJbmZvcyBpbiB0aGUK LQkgKiByZWwtPnBhcnRfcmVscyBhcnJheSB0b28uCisJICogQWRkIGluaGVyaXRhbmNlIGNo aWxkcmVuIHRvIHRoZSBxdWVyeS4gRm9yIGNoaWxkIHRhYmxlcyB0aGF0IGFyZQorCSAqIHRo ZW1zZWx2ZXMgcGFydGl0aW9uZWQsIHRoZWlyIGNoaWxkcmVuIHdpbGwgYmUgYWRkZWQgcmVj dXJzaXZlbHkuCiAJICovCi0JaWYgKHJlbC0+cGFydF9zY2hlbWUpCisJaWYgKHJ0ZS0+cnRl a2luZCA9PSBSVEVfUkVMQVRJT04pCiAJewotCQlBc3NlcnQocmVsLT5ucGFydHMgPiAwKTsK LQkJcmVsLT5wYXJ0X3JlbHMgPSAoUmVsT3B0SW5mbyAqKikKLQkJCQlwYWxsb2MwKHNpemVv ZihSZWxPcHRJbmZvICopICogcmVsLT5ucGFydHMpOworCQlleHBhbmRfaW5oZXJpdGVkX3J0 ZW50cnkocm9vdCwgcnRlLCBydGkpOworCQlyZXR1cm47CiAJfQogCi0JaSAgPSAwOworCS8q IEFkZCBvdGhlciByZWxzIG9mIGZsYXR0ZW5lZCBVTklPTiBBTEwgY2hpbGRyZW4uICovCisJ QXNzZXJ0KHJ0ZS0+cnRla2luZCA9PSBSVEVfU1VCUVVFUlkpOworCXJlbCA9IGZpbmRfYmFz ZV9yZWwocm9vdCwgcnRpKTsKKwogCWZvcmVhY2gobCwgcm9vdC0+YXBwZW5kX3JlbF9saXN0 KQogCXsKIAkJQXBwZW5kUmVsSW5mbyAgKmFwcGluZm8gPSBsZmlyc3QobCk7CkBAIC0zMjYs MzAgKzM2OSwxMCBAQCBhZGRfYXBwZW5kcmVsX290aGVyX3JlbHMoUGxhbm5lckluZm8gKnJv b3QsIFJhbmdlVGJsRW50cnkgKnJ0ZSwgSW5kZXggcnRpKQogCQlBc3NlcnQoY2hpbGRydGUg IT0gTlVMTCk7CiAJCWNoaWxkcmVsID0gYnVpbGRfc2ltcGxlX3JlbChyb290LCBjaGlsZFJU aW5kZXgsIHJlbCk7CiAKLQkJLyoKLQkJICogRm9yIHBhcnRpdGlvbmVkIHBhcmVudHMsIHdl IGFsc28gbmVlZCB0byBhZGQgY2hpbGRyZWwgdG8gaXRzCi0JCSAqIHBhcnRfcmVscyBhcnJh eS4gIFRoZSBvcmRlciBpbiB3aGljaCBjaGlsZCB0YWJsZXMgYXBwZWFyIGluCi0JCSAqIGFw cGVuZF9yZWxfbGlzdCBpcyBzYW1lIGFzIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFwcGVh ciBpbiB0aGUKLQkJICogcGFyZW50J3MgUGFydGl0aW9uRGVzYywgc28gYXNzaWduaW5nIHBh cnRpdGlvbnMgbGlrZSB0aGlzIHdvcmtzLgotCQkgKi8KLQkJaWYgKHJlbC0+cGFydF9zY2hl bWUgIT0gTlVMTCkKLQkJewotCQkJQXNzZXJ0KGkgPCByZWwtPm5wYXJ0cyk7Ci0JCQlyZWwt PnBhcnRfcmVsc1tpXSA9IGNoaWxkcmVsOwotCQl9Ci0KLQkJaSsrOwotCiAJCS8qIENoaWxk IG1heSBpdHNlbGYgYmUgYW4gaW5oZXJpdGVkIHJlbGF0aW9uLiAqLwogCQlpZiAoY2hpbGRy dGUtPmluaCkKIAkJCWFkZF9hcHBlbmRyZWxfb3RoZXJfcmVscyhyb290LCBjaGlsZHJ0ZSwg Y2hpbGRSVGluZGV4KTsKIAl9Ci0KLQkvKgotCSAqIEZvciBhIHBhcnRpdGlvbmVkIHRhYmxl IHdpdGggbm9uLXplcm8gbnVtYmVyIG9mIHBhcnRpdGlvbnMsIHdlIG11c3QKLQkgKiBoYXZl IGFzc2lnbmVkIGFsbCBlbGVtZW50cyBvZiBpdHMgcGFydF9yZWxzIGFycmF5LgotCSAqLwot CUFzc2VydChyZWwtPm5wYXJ0cyA9PSAwIHx8IGkgPT0gcmVsLT5ucGFydHMpOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL2luaGVyaXQuaCBiL3NyYy9p bmNsdWRlL29wdGltaXplci9pbmhlcml0LmgKaW5kZXggZDI0MThmMTVjZi4uNDI3YzFkMGFi ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL2luaGVyaXQuaAorKysgYi9z cmMvaW5jbHVkZS9vcHRpbWl6ZXIvaW5oZXJpdC5oCkBAIC0xNiw3ICsxNiw3IEBACiAKICNp bmNsdWRlICJub2Rlcy9wYXRobm9kZXMuaCIKIAotCi1leHRlcm4gdm9pZCBleHBhbmRfaW5o ZXJpdGVkX3RhYmxlcyhQbGFubmVySW5mbyAqcm9vdCk7CitleHRlcm4gdm9pZCBleHBhbmRf aW5oZXJpdGVkX3J0ZW50cnkoUGxhbm5lckluZm8gKnJvb3QsIFJhbmdlVGJsRW50cnkgKnJ0 ZSwKKwkJCQkJCQkJSW5kZXggcnRpKTsKIAogI2VuZGlmCQkJCQkJCS8qIElOSEVSSVRfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmggYi9zcmMv aW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaAppbmRleCAxYTA3OTYzYTdkLi42MDM2MTUw N2QyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaAorKysg Yi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaApAQCAtMjc3LDYgKzI3Nyw3IEBA IGV4dGVybiBQYXRoICpyZXBhcmFtZXRlcml6ZV9wYXRoX2J5X2NoaWxkKFBsYW5uZXJJbmZv ICpyb290LCBQYXRoICpwYXRoLAogICovCiBleHRlcm4gdm9pZCBzZXR1cF9zaW1wbGVfcmVs X2FycmF5cyhQbGFubmVySW5mbyAqcm9vdCk7CiBleHRlcm4gdm9pZCBzZXR1cF9hcHBlbmRf cmVsX2FycmF5KFBsYW5uZXJJbmZvICpyb290KTsKK2V4dGVybiB2b2lkIGV4cGFuZF9wbGFu bmVyX2FycmF5cyhQbGFubmVySW5mbyAqcm9vdCwgaW50IGFkZF9zaXplKTsKIGV4dGVybiBS ZWxPcHRJbmZvICpidWlsZF9zaW1wbGVfcmVsKFBsYW5uZXJJbmZvICpyb290LCBpbnQgcmVs aWQsCiAJCQkJIFJlbE9wdEluZm8gKnBhcmVudCk7CiBleHRlcm4gdm9pZCBhZGRfYXBwZW5k cmVsX290aGVyX3JlbHMoUGxhbm5lckluZm8gKnJvb3QsIFJhbmdlVGJsRW50cnkgKnJ0ZSwK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5l Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dApp bmRleCAzMDk0NmY3N2I2Li43MTk0MjM5NGJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wYXJ0aXRpb25fcHJ1bmUub3V0CkBAIC0yNTU5LDE2ICsyNTU5LDE2IEBA IHVwZGF0ZSBhYl9hMSBzZXQgYiA9IDMgZnJvbSBhYiB3aGVyZSBhYi5hID0gMSBhbmQgYWIu YSA9IGFiX2ExLmE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo YSA9IDEpCiAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAg ICAgICAgIC0+ICBBcHBlbmQgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKLSAgICAgICAgICAg ICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IxIGFiX2ExX2IxXzEgKGFjdHVh bCByb3dzPTAgbG9vcHM9MSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2Fu IG9uIGFiX2ExX2IxIGFiX2ExX2IxXzIgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAg ICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAg ICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGFiX2ExX2IxX2FfaWR4IChhY3R1YWwg cm93cz0wIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoYSA9IDEpCi0gICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9h MV9iMiBhYl9hMV9iMl8xIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9hMV9iMiBhYl9hMV9iMl8yIChhY3R1YWwg cm93cz0xIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6IChh ID0gMSkKICAgICAgICAgICAgICAgICAgICAgIEhlYXAgQmxvY2tzOiBleGFjdD0xCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjJfYV9p ZHggKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChhID0gMSkKLSAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBT Y2FuIG9uIGFiX2ExX2IzIGFiX2ExX2IzXzEgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKKyAg ICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IzIGFiX2ExX2Iz XzIgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIGFiX2ExX2IzX2FfaWR4IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCkBAIC0yNTgwLDE2 ICsyNTgwLDE2IEBAIHVwZGF0ZSBhYl9hMSBzZXQgYiA9IDMgZnJvbSBhYiB3aGVyZSBhYi5h ID0gMSBhbmQgYWIuYSA9IGFiX2ExLmE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ bmRleCBDb25kOiAoYSA9IDEpCiAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTAg bG9vcHM9MSkKICAgICAgICAgIC0+ICBBcHBlbmQgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkK LSAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IxIGFiX2Ex X2IxXzEgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IxIGFiX2ExX2IxXzMgKGFjdHVhbCByb3dzPTAgbG9v cHM9MSkKICAgICAgICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAg ICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGFiX2ExX2IxX2Ff aWR4IChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbmRleCBDb25kOiAoYSA9IDEpCi0gICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAg U2NhbiBvbiBhYl9hMV9iMiBhYl9hMV9iMl8xIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisg ICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9hMV9iMiBhYl9hMV9i Ml8zIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICBSZWNo ZWNrIENvbmQ6IChhID0gMSkKICAgICAgICAgICAgICAgICAgICAgIEhlYXAgQmxvY2tzOiBl eGFjdD0xCiAgICAgICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24g YWJfYTFfYjJfYV9pZHggKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEluZGV4IENvbmQ6IChhID0gMSkKLSAgICAgICAgICAgICAgIC0+ICBC aXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IzIGFiX2ExX2IzXzEgKGFjdHVhbCByb3dzPTAg bG9vcHM9MSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2Ex X2IzIGFiX2ExX2IzXzMgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgICAgICAg ICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAgICAgICAgLT4g IEJpdG1hcCBJbmRleCBTY2FuIG9uIGFiX2ExX2IzX2FfaWR4IChhY3R1YWwgcm93cz0xIGxv b3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEp CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CmluZGV4IGJh ZDUxOTlkOWUuLjM3ZWYxZGVhYjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcm93c2VjdXJpdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cm93c2VjdXJpdHkub3V0CkBAIC0xODE1LDI2ICsxODE1LDI2IEBAIEFORCBmX2xlYWsodDFf MS5iKSBBTkQgZl9sZWFrKHQxXzIuYikgUkVUVVJOSU5HICosIHQxXzEsIHQxXzI7CiAgICAg ICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdDMgdDFfMl8yCiAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6ICgoYSA9IDQpIEFORCAoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikp CiAgICAtPiAgTmVzdGVkIExvb3AKLSAgICAgICAgIEpvaW4gRmlsdGVyOiAodDFfMV8xLmIg PSB0MV8yLmIpCisgICAgICAgICBKb2luIEZpbHRlcjogKHQxXzFfMS5iID0gdDFfMl8zLmIp CiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdDIgdDFfMV8xCiAgICAgICAgICAgICAgICBG aWx0ZXI6ICgoYSA9IDQpIEFORCAoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCiAgICAg ICAgICAtPiAgQXBwZW5kCi0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFf MgorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQxIHQxXzJfMwogICAgICAgICAg ICAgICAgICAgICAgRmlsdGVyOiAoKGEgPSA0KSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9s ZWFrKGIpKQotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQyIHQxXzJfMQorICAg ICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQyIHQxXzJfNAogICAgICAgICAgICAgICAg ICAgICAgRmlsdGVyOiAoKGEgPSA0KSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIp KQotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzJfMgorICAgICAgICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzJfNQogICAgICAgICAgICAgICAgICAgICAg RmlsdGVyOiAoKGEgPSA0KSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogICAg LT4gIE5lc3RlZCBMb29wCi0gICAgICAgICBKb2luIEZpbHRlcjogKHQxXzFfMi5iID0gdDFf Mi5iKQorICAgICAgICAgSm9pbiBGaWx0ZXI6ICh0MV8xXzIuYiA9IHQxXzJfNi5iKQogICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzFfMgogICAgICAgICAgICAgICAgRmlsdGVy OiAoKGEgPSA0KSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogICAgICAgICAg LT4gIEFwcGVuZAotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQxIHQxXzIKKyAg ICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0MSB0MV8yXzYKICAgICAgICAgICAgICAg ICAgICAgIEZpbHRlcjogKChhID0gNCkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhi KSkKLSAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0MiB0MV8yXzEKKyAgICAgICAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0MiB0MV8yXzcKICAgICAgICAgICAgICAgICAgICAg IEZpbHRlcjogKChhID0gNCkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKLSAg ICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0MyB0MV8yXzIKKyAgICAgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiB0MyB0MV8yXzgKICAgICAgICAgICAgICAgICAgICAgIEZpbHRl cjogKChhID0gNCkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgzNyByb3dz KQogCi0tIAoyLjExLjAKCg== --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0004-Adjust-inheritance_planner-to-reuse-source-child.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0004-Adjust-inheritance_planner-to-reuse-source-child.pa"; filename*1="tch" RnJvbSAwYzdlZmYzYzllMGY2YmEzOTJjNTFhNmMxYmJiYmUyYjM1MmFlYTg4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA0IE1hciAyMDE5IDE1OjUyOjExICswOTAwClN1YmplY3Q6IFtQQVRDSCB2 MzQgNC85XSBBZGp1c3QgaW5oZXJpdGFuY2VfcGxhbm5lciB0byByZXVzZSBzb3VyY2UgY2hp bGQKIHRhYmxlcwoKU2V0IG9mIHNvdXJjZSBpbmhlcml0YW5jZSBjaGlsZCB0YWJsZXMgd29u J3QgY2hhbmdlIGFjcm9zcyByZXBlYXRlZApwbGFubmluZyBvZiB0aGUgcXVlcnkgZm9yIGRp ZmZlcmVudCB0YXJnZXQgY2hpbGQgcmVsYXRpb25zLiAgU28sCm5vdGUgZG93biB0aGUgUmFu Z2VUYmxFbnRyeXMsIEFwcGVuZFJlbEluZm9zLCBhbmQgUGxhblJvd01hcmtzIG9mCnRoZSBz b3VyY2UgaW5oZXJpdGFuY2UgY2hpbGQgdGFibGVzIGFmdGVyIHRoZSBwbGFubmluZyBmb3Ig dGhlIGZpcnN0CmNoaWxkIHRhYmxlIGlzIGZpbmlzaGVkLiAgV2hlbiBwbGFubmluZyBmb3Ig dGhlIHN1YnNlcXVlbnQgY2hpbGQKdGFyZ2V0IHRhYmxlcywgcHV0IHRoZSBzYXZlZCBvYmpl Y3RzIG9mIHNvdXJjZSBpbmhlcml0YW5jZSBjaGlsZAp0YWJsZXMgaW50byB0aGUgY2hpbGQg UGxhbm5lckluZm9zIGFuZCBzZXQgY29udGFpbnNfaW5oZXJpdF9jaGlsZHJlbgp0byB0cnVl LCBzbyB0aGF0IHF1ZXJ5X3BsYW5uZXIgd29uJ3QgYWRkIHRoZW0gYWdhaW4uCgpUaGlzIHJl c3RvcmVzIHRoZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0cyB0byB0aGVpciBvcmlnaW5hbCBz dGF0ZSwKYmVjYXVzZSBsaWtlIGJlZm9yZSwgc291cmNlIGluaGVyaXRhbmNlIGNoaWxkIHRh YmxlcyBhcmUgbm90IGFkZGVkCm11bHRpcGxlIHRpbWVzLgotLS0KIGNvbnRyaWIvcG9zdGdy ZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgfCAgNDYgKysrLS0tLQogc3JjL2Jh Y2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgIHwgMTc2ICsrKysr KysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3JlbG5v ZGUuYyAgICAgICAgICAgfCAgNDcgKysrKysrLQogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmggICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BhcnRpdGlvbl9wcnVuZS5vdXQgIHwgIDY2ICsrKysrKysrKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0ICAgICAgfCAgMTYgKy0tCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fcHJ1bmUuc3FsICAgICAgIHwgICA3ICsKIDggZmls ZXMgY2hhbmdlZCwgMjU4IGluc2VydGlvbnMoKyksIDEwOCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0 IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRl eCBiYmM5ZWFkMmU5Li5jOTEyZTk1ZmUxIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVz X2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNf ZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTcxOTAsOCArNzE5MCw4IEBAIHNl bGVjdCAqIGZyb20gYmFyIHdoZXJlIGYxIGluIChzZWxlY3QgZjEgZnJvbSBmb28pIGZvciBz aGFyZTsKIC0tIENoZWNrIFVQREFURSB3aXRoIGluaGVyaXRlZCB0YXJnZXQgYW5kIGFuIGlu aGVyaXRlZCBzb3VyY2UgdGFibGUKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikKIHVw ZGF0ZSBiYXIgc2V0IGYyID0gZjIgKyAxMDAgd2hlcmUgZjEgaW4gKHNlbGVjdCBmMSBmcm9t IGZvbyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBVcGRhdGUgb24gcHVibGljLmJhcgogICAgVXBkYXRl IG9uIHB1YmxpYy5iYXIKICAgIEZvcmVpZ24gVXBkYXRlIG9uIHB1YmxpYy5iYXIyCkBAIC03 MjE0LDIyICs3MjE0LDIyIEBAIHVwZGF0ZSBiYXIgc2V0IGYyID0gZjIgKyAxMDAgd2hlcmUg ZjEgaW4gKHNlbGVjdCBmMSBmcm9tIGZvbyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6IGZvbzIuZjEsIGZvbzIuY3RpZCwgZm9vMi4qLCBmb28yLnRhYmxl b2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxF Q1QgZjEsIGYyLCBmMywgY3RpZCBGUk9NIHB1YmxpYy5sb2N0MQogICAgLT4gIEhhc2ggSm9p bgotICAgICAgICAgT3V0cHV0OiBiYXIyLmYxLCAoYmFyMi5mMiArIDEwMCksIGJhcjIuZjMs IGJhcjIuY3RpZCwgZm9vXzEuY3RpZCwgZm9vXzEuKiwgZm9vXzEudGFibGVvaWQKKyAgICAg ICAgIE91dHB1dDogYmFyMi5mMSwgKGJhcjIuZjIgKyAxMDApLCBiYXIyLmYzLCBiYXIyLmN0 aWQsIGZvby5jdGlkLCBmb28uKiwgZm9vLnRhYmxlb2lkCiAgICAgICAgICBJbm5lciBVbmlx dWU6IHRydWUKLSAgICAgICAgIEhhc2ggQ29uZDogKGJhcjIuZjEgPSBmb29fMS5mMSkKKyAg ICAgICAgIEhhc2ggQ29uZDogKGJhcjIuZjEgPSBmb28uZjEpCiAgICAgICAgICAtPiAgRm9y ZWlnbiBTY2FuIG9uIHB1YmxpYy5iYXIyCiAgICAgICAgICAgICAgICBPdXRwdXQ6IGJhcjIu ZjEsIGJhcjIuZjIsIGJhcjIuZjMsIGJhcjIuY3RpZAogICAgICAgICAgICAgICAgUmVtb3Rl IFNRTDogU0VMRUNUIGYxLCBmMiwgZjMsIGN0aWQgRlJPTSBwdWJsaWMubG9jdDIgRk9SIFVQ REFURQogICAgICAgICAgLT4gIEhhc2gKLSAgICAgICAgICAgICAgIE91dHB1dDogZm9vXzEu ZjEsIGZvb18xLmN0aWQsIGZvb18xLiosIGZvb18xLnRhYmxlb2lkCisgICAgICAgICAgICAg ICBPdXRwdXQ6IGZvby5mMSwgZm9vLmN0aWQsIGZvby4qLCBmb28udGFibGVvaWQKICAgICAg ICAgICAgICAgIC0+ICBIYXNoQWdncmVnYXRlCi0gICAgICAgICAgICAgICAgICAgICBPdXRw dXQ6IGZvb18xLmYxLCBmb29fMS5jdGlkLCBmb29fMS4qLCBmb29fMS50YWJsZW9pZAotICAg ICAgICAgICAgICAgICAgICAgR3JvdXAgS2V5OiBmb29fMS5mMQorICAgICAgICAgICAgICAg ICAgICAgT3V0cHV0OiBmb28uZjEsIGZvby5jdGlkLCBmb28uKiwgZm9vLnRhYmxlb2lkCisg ICAgICAgICAgICAgICAgICAgICBHcm91cCBLZXk6IGZvby5mMQogICAgICAgICAgICAgICAg ICAgICAgLT4gIEFwcGVuZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHB1YmxpYy5mb28gZm9vXzEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogZm9vXzEuZjEsIGZvb18xLmN0aWQsIGZvb18xLiosIGZvb18xLnRhYmxl b2lkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1 YmxpYy5mb28yIGZvbzJfMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiBmb28yXzEuZjEsIGZvbzJfMS5jdGlkLCBmb28yXzEuKiwgZm9vMl8xLnRhYmxlb2lk CisgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZv bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBmb28uZjEsIGZv by5jdGlkLCBmb28uKiwgZm9vLnRhYmxlb2lkCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mb28yCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IGZvbzIuZjEsIGZvbzIuY3RpZCwgZm9vMi4qLCBmb28y LnRhYmxlb2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FM OiBTRUxFQ1QgZjEsIGYyLCBmMywgY3RpZCBGUk9NIHB1YmxpYy5sb2N0MQogKDM5IHJvd3Mp CiAKQEAgLTcyNzYsOCArNzI3Niw4IEBAIHdoZXJlIGJhci5mMSA9IHNzLmYxOwogICAgICAg ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5iYXIKICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogYmFyLmYxLCBiYXIuZjIsIGJhci5jdGlkCiAgICAtPiAgTWVyZ2UgSm9p bgotICAgICAgICAgT3V0cHV0OiBiYXIyLmYxLCAoYmFyMi5mMiArIDEwMCksIGJhcjIuZjMs IGJhcjIuY3RpZCwgKFJPVyhmb29fMi5mMSkpCi0gICAgICAgICBNZXJnZSBDb25kOiAoYmFy Mi5mMSA9IGZvb18yLmYxKQorICAgICAgICAgT3V0cHV0OiBiYXIyLmYxLCAoYmFyMi5mMiAr IDEwMCksIGJhcjIuZjMsIGJhcjIuY3RpZCwgKFJPVyhmb28uZjEpKQorICAgICAgICAgTWVy Z2UgQ29uZDogKGJhcjIuZjEgPSBmb28uZjEpCiAgICAgICAgICAtPiAgU29ydAogICAgICAg ICAgICAgICAgT3V0cHV0OiBiYXIyLmYxLCBiYXIyLmYyLCBiYXIyLmYzLCBiYXIyLmN0aWQK ICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBiYXIyLmYxCkBAIC03Mjg1LDE4ICs3Mjg1LDE4 IEBAIHdoZXJlIGJhci5mMSA9IHNzLmYxOwogICAgICAgICAgICAgICAgICAgICAgT3V0cHV0 OiBiYXIyLmYxLCBiYXIyLmYyLCBiYXIyLmYzLCBiYXIyLmN0aWQKICAgICAgICAgICAgICAg ICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBmMSwgZjIsIGYzLCBjdGlkIEZST00gcHVibGlj LmxvY3QyIEZPUiBVUERBVEUKICAgICAgICAgIC0+ICBTb3J0Ci0gICAgICAgICAgICAgICBP dXRwdXQ6IGZvb18yLmYxLCAoUk9XKGZvb18yLmYxKSkKLSAgICAgICAgICAgICAgIFNvcnQg S2V5OiBmb29fMi5mMQorICAgICAgICAgICAgICAgT3V0cHV0OiBmb28uZjEsIChST1coZm9v LmYxKSkKKyAgICAgICAgICAgICAgIFNvcnQgS2V5OiBmb28uZjEKICAgICAgICAgICAgICAg IC0+ICBBcHBlbmQKLSAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBwdWJs aWMuZm9vIGZvb18yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IGZvb18y LmYxLCBST1coZm9vXzIuZjEpCi0gICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBT Y2FuIG9uIHB1YmxpYy5mb28yIGZvbzJfMgotICAgICAgICAgICAgICAgICAgICAgICAgICAg T3V0cHV0OiBmb28yXzIuZjEsIFJPVyhmb28yXzIuZjEpCisgICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZvbworICAgICAgICAgICAgICAgICAgICAgICAg ICAgT3V0cHV0OiBmb28uZjEsIFJPVyhmb28uZjEpCisgICAgICAgICAgICAgICAgICAgICAt PiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mb28yCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBPdXRwdXQ6IGZvbzIuZjEsIFJPVyhmb28yLmYxKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGYxIEZST00gcHVibGljLmxvY3QxCi0gICAg ICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmZvbyBmb29fMwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiAoZm9vXzMuZjEgKyAzKSwgUk9XKChm b29fMy5mMSArIDMpKQotICAgICAgICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBv biBwdWJsaWMuZm9vMiBmb28yXzMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1 dDogKGZvbzJfMy5mMSArIDMpLCBST1coKGZvbzJfMy5mMSArIDMpKQorICAgICAgICAgICAg ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5mb28gZm9vXzEKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIE91dHB1dDogKGZvb18xLmYxICsgMyksIFJPVygoZm9vXzEuZjEg KyAzKSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGlj LmZvbzIgZm9vMl8xCisgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IChmb28y XzEuZjEgKyAzKSwgUk9XKChmb28yXzEuZjEgKyAzKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBmMSBGUk9NIHB1YmxpYy5sb2N0MQogKDQ1IHJv d3MpCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMgYi9zcmMv YmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCmluZGV4IDY5MTc5YTA3YzMuLmNkNDc0MWQzNmIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvb3V0ZnVuY3MuYwpAQCAtMjIyMCw2ICsyMjIwLDcgQEAgX291dFBsYW5u ZXJJbmZvKFN0cmluZ0luZm8gc3RyLCBjb25zdCBQbGFubmVySW5mbyAqbm9kZSkKIAlXUklU RV9CSVRNQVBTRVRfRklFTEQoY3VyT3V0ZXJSZWxzKTsKIAlXUklURV9OT0RFX0ZJRUxEKGN1 ck91dGVyUGFyYW1zKTsKIAlXUklURV9CT09MX0ZJRUxEKHBhcnRDb2xzVXBkYXRlZCk7CisJ V1JJVEVfQk9PTF9GSUVMRChjb250YWluc19pbmhlcml0X2NoaWxkcmVuKTsKIH0KIAogc3Rh dGljIHZvaWQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCAwMmNh MWEyODNhLi45NWY2OWFjYWM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jCkBAIC02MzcsNiArNjM3LDcgQEAgc3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFs ICpnbG9iLCBRdWVyeSAqcGFyc2UsCiAJCXJvb3QtPnd0X3BhcmFtX2lkID0gLTE7CiAJcm9v dC0+bm9uX3JlY3Vyc2l2ZV9wYXRoID0gTlVMTDsKIAlyb290LT5wYXJ0Q29sc1VwZGF0ZWQg PSBmYWxzZTsKKwlyb290LT5jb250YWluc19pbmhlcml0X2NoaWxkcmVuID0gZmFsc2U7CiAK IAkvKgogCSAqIElmIHRoZXJlIGlzIGEgV0lUSCBsaXN0LCBwcm9jZXNzIGVhY2ggV0lUSCBx dWVyeSBhbmQgZWl0aGVyIGNvbnZlcnQgaXQKQEAgLTExODgsNyArMTE4OSw2IEBAIGluaGVy aXRhbmNlX3BsYW5uZXIoUGxhbm5lckluZm8gKnJvb3QpCiAJUXVlcnkJICAgKnBhcnNlID0g cm9vdC0+cGFyc2U7CiAJaW50CQkJdG9wX3BhcmVudFJUaW5kZXggPSBwYXJzZS0+cmVzdWx0 UmVsYXRpb247CiAJQml0bWFwc2V0ICAqc3VicXVlcnlSVGluZGV4ZXM7Ci0JQml0bWFwc2V0 ICAqbW9kaWZpYWJsZUFSSWluZGV4ZXM7CiAJaW50CQkJbm9taW5hbFJlbGF0aW9uID0gLTE7 CiAJSW5kZXgJCXJvb3RSZWxhdGlvbiA9IDA7CiAJTGlzdAkgICAqZmluYWxfcnRhYmxlID0g TklMOwpAQCAtMTIxMCw2ICsxMjEwLDEwIEBAIGluaGVyaXRhbmNlX3BsYW5uZXIoUGxhbm5l ckluZm8gKnJvb3QpCiAJQml0bWFwc2V0ICAqcGFyZW50X3JlbGlkcyA9IGJtc19tYWtlX3Np bmdsZXRvbih0b3BfcGFyZW50UlRpbmRleCk7CiAJUGxhbm5lckluZm8gKipwYXJlbnRfcm9v dHMgPSBOVUxMOwogCUxpc3QJICAgKm9yaWdfYXBwZW5kX3JlbF9saXN0ID0gbGlzdF9jb3B5 KHJvb3QtPmFwcGVuZF9yZWxfbGlzdCk7CisJTGlzdAkgICAqc291cmNlX2FwcGluZm9zID0g TklMOworCUxpc3QJICAgKnNvdXJjZV9jaGlsZF9yb3dtYXJrcyA9IE5JTDsKKwlMaXN0CSAg ICpzb3VyY2VfY2hpbGRfcnRlcyA9IE5JTDsKKwlib29sCQlpc19maXJzdF9jaGlsZDsKIAog CUFzc2VydChwYXJzZS0+Y29tbWFuZFR5cGUgIT0gQ01EX0lOU0VSVCk7CiAKQEAgLTEyMTcs NyArMTIyMSw4IEBAIGluaGVyaXRhbmNlX3BsYW5uZXIoUGxhbm5lckluZm8gKnJvb3QpCiAJ ICogQWRkIGNoaWxkIHRhcmdldCByZWxhdGlvbnMuICBOb3RlIHRoYXQgdGhpcyBvbmx5IGFk ZHMgdGhlIGNoaWxkcmVuIG9mCiAJICogdGhlIHF1ZXJ5J3MgdGFyZ2V0IHJlbGF0aW9uIGFu ZCBubyBvdGhlci4gIEVzcGVjaWFsbHksIHRoZSBjaGlsZHJlbiBvZgogCSAqIGFueSBzb3Vy Y2UgcmVsYXRpb25zIGFyZSBhZGRlZCBieSBxdWVyeV9wbGFubmVyKCkgZHVyaW5nIHRoZSBw bGFubmluZwotCSAqIG9mIGVhY2ggY2hpbGQgcXVlcnkuCisJICogb2YgdGhlIDFzdCBjaGls ZCBxdWVyeSBhbmQgcmV1c2VkIGZvciB0aGUgcGxhbm5pbmcgb2Ygc3Vic2VxdWVudCBjaGls ZAorCSAqIHF1ZXJpZXMuCiAJICovCiAJcGFyZW50X3J0ZSA9IHJ0X2ZldGNoKHRvcF9wYXJl bnRSVGluZGV4LCByb290LT5wYXJzZS0+cnRhYmxlKTsKIApAQCAtMTI2NiwzMiArMTI3MSw2 IEBAIGluaGVyaXRhbmNlX3BsYW5uZXIoUGxhbm5lckluZm8gKnJvb3QpCiAJfQogCiAJLyoK LQkgKiBOZXh0LCB3ZSB3YW50IHRvIGlkZW50aWZ5IHdoaWNoIEFwcGVuZFJlbEluZm8gaXRl bXMgY29udGFpbiByZWZlcmVuY2VzCi0JICogdG8gYW55IG9mIHRoZSBhZm9yZXNhaWQgc3Vi cXVlcnkgUlRFcy4gIFRoZXNlIGl0ZW1zIHdpbGwgbmVlZCB0byBiZQotCSAqIGNvcGllZCBh bmQgbW9kaWZpZWQgdG8gYWRqdXN0IHRoZWlyIHN1YnF1ZXJ5IHJlZmVyZW5jZXM7IHdoZXJl YXMgdGhlCi0JICogb3RoZXIgb25lcyBuZWVkIG5vdCBiZSB0b3VjaGVkLiAgSXQncyB3b3J0 aCBiZWluZyB0ZW5zZSBvdmVyIHRoaXMKLQkgKiBiZWNhdXNlIHdlIGNhbiB1c3VhbGx5IGF2 b2lkIHByb2Nlc3NpbmcgbW9zdCBvZiB0aGUgQXBwZW5kUmVsSW5mbwotCSAqIGl0ZW1zLCB0 aGVyZWJ5IHNhdmluZyBPKE5eMikgc3BhY2UgYW5kIHRpbWUgd2hlbiB0aGUgdGFyZ2V0IGlz IGEgbGFyZ2UKLQkgKiBpbmhlcml0YW5jZSB0cmVlLiAgV2UgY2FuIGlkZW50aWZ5IEFwcGVu ZFJlbEluZm8gaXRlbXMgYnkgdGhlaXIKLQkgKiBjaGlsZF9yZWxpZCwgc2luY2UgdGhhdCBz aG91bGQgYmUgdW5pcXVlIHdpdGhpbiB0aGUgbGlzdC4KLQkgKi8KLQltb2RpZmlhYmxlQVJJ aW5kZXhlcyA9IE5VTEw7Ci0JaWYgKHN1YnF1ZXJ5UlRpbmRleGVzICE9IE5VTEwpCi0Jewot CQlmb3JlYWNoKGxjLCByb290LT5hcHBlbmRfcmVsX2xpc3QpCi0JCXsKLQkJCUFwcGVuZFJl bEluZm8gKmFwcGluZm8gPSBsZmlyc3Rfbm9kZShBcHBlbmRSZWxJbmZvLCBsYyk7Ci0KLQkJ CWlmIChibXNfaXNfbWVtYmVyKGFwcGluZm8tPnBhcmVudF9yZWxpZCwgc3VicXVlcnlSVGlu ZGV4ZXMpIHx8Ci0JCQkJYm1zX2lzX21lbWJlcihhcHBpbmZvLT5jaGlsZF9yZWxpZCwgc3Vi cXVlcnlSVGluZGV4ZXMpIHx8Ci0JCQkJYm1zX292ZXJsYXAocHVsbF92YXJub3MoKE5vZGUg KikgYXBwaW5mby0+dHJhbnNsYXRlZF92YXJzKSwKLQkJCQkJCQlzdWJxdWVyeVJUaW5kZXhl cykpCi0JCQkJbW9kaWZpYWJsZUFSSWluZGV4ZXMgPSBibXNfYWRkX21lbWJlcihtb2RpZmlh YmxlQVJJaW5kZXhlcywKLQkJCQkJCQkJCQkJCQkgIGFwcGluZm8tPmNoaWxkX3JlbGlkKTsK LQkJfQotCX0KLQotCS8qCiAJICogSWYgdGhlIHBhcmVudCBSVEUgaXMgYSBwYXJ0aXRpb25l ZCB0YWJsZSwgd2Ugc2hvdWxkIHVzZSB0aGF0IGFzIHRoZQogCSAqIG5vbWluYWwgdGFyZ2V0 IHJlbGF0aW9uLCBiZWNhdXNlIHRoZSBSVEVzIGFkZGVkIGZvciBwYXJ0aXRpb25lZCB0YWJs ZXMKIAkgKiAoaW5jbHVkaW5nIHRoZSByb290IHBhcmVudCkgYXMgY2hpbGQgbWVtYmVycyBv ZiB0aGUgaW5oZXJpdGFuY2Ugc2V0IGRvCkBAIC0xMzIwLDYgKzEyOTksNyBAQCBpbmhlcml0 YW5jZV9wbGFubmVyKFBsYW5uZXJJbmZvICpyb290KQogCS8qCiAJICogQW5kIG5vdyB3ZSBj YW4gZ2V0IG9uIHdpdGggZ2VuZXJhdGluZyBhIHBsYW4gZm9yIGVhY2ggY2hpbGQgdGFibGUu CiAJICovCisJaXNfZmlyc3RfY2hpbGQgPSB0cnVlOwogCWZvcmVhY2gobGMsIHJvb3QtPmFw cGVuZF9yZWxfbGlzdCkKIAl7CiAJCUFwcGVuZFJlbEluZm8gKmFwcGluZm8gPSBsZmlyc3Rf bm9kZShBcHBlbmRSZWxJbmZvLCBsYyk7CkBAIC0xMzQ4LDkgKzEzMjgsNiBAQCBpbmhlcml0 YW5jZV9wbGFubmVyKFBsYW5uZXJJbmZvICpyb290KQogCQlzdWJyb290ID0gbWFrZU5vZGUo UGxhbm5lckluZm8pOwogCQltZW1jcHkoc3Vicm9vdCwgcGFyZW50X3Jvb3QsIHNpemVvZihQ bGFubmVySW5mbykpOwogCi0JCS8qIGdyb3VwaW5nX3BsYW5uZXIgZG9lc24ndCBuZWVkIHRv IHNlZSB0aGUgdGFyZ2V0IGNoaWxkcmVuLiAqLwotCQlzdWJyb290LT5hcHBlbmRfcmVsX2xp c3QgPSBsaXN0X2NvcHkob3JpZ19hcHBlbmRfcmVsX2xpc3QpOwotCiAJCS8qCiAJCSAqIEdl bmVyYXRlIG1vZGlmaWVkIHF1ZXJ5IHdpdGggdGhpcyByZWwgYXMgdGFyZ2V0LiAgV2UgZmly c3QgYXBwbHkKIAkJICogYWRqdXN0X2FwcGVuZHJlbF9hdHRycywgd2hpY2ggY29waWVzIHRo ZSBRdWVyeSBhbmQgY2hhbmdlcwpAQCAtMTQzMywzMCArMTQxMCw0NSBAQCBpbmhlcml0YW5j ZV9wbGFubmVyKFBsYW5uZXJJbmZvICpyb290KQogCQlzdWJyb290LT5yb3dNYXJrcyA9IGNv cHlPYmplY3QocGFyZW50X3Jvb3QtPnJvd01hcmtzKTsKIAogCQkvKgotCQkgKiBUaGUgYXBw ZW5kX3JlbF9saXN0IGxpa2V3aXNlIG1pZ2h0IGNvbnRhaW4gcmVmZXJlbmNlcyB0byBzdWJx dWVyeQotCQkgKiBSVEVzIChpZiBhbnkgc3VicXVlcmllcyB3ZXJlIGZsYXR0ZW5hYmxlIFVO SU9OIEFMTHMpLiAgU28gcHJlcGFyZQotCQkgKiB0byBhcHBseSBDaGFuZ2VWYXJOb2RlcyB0 byB0aGF0LCB0b28uICBBcyBleHBsYWluZWQgYWJvdmUsIHdlIG9ubHkKLQkJICogd2FudCB0 byBjb3B5IGl0ZW1zIHRoYXQgYWN0dWFsbHkgY29udGFpbiBzdWNoIHJlZmVyZW5jZXM7IHRo ZSByZXN0Ci0JCSAqIGNhbiBqdXN0IGdldCBsaW5rZWQgaW50byB0aGUgc3Vicm9vdCdzIGFw cGVuZF9yZWxfbGlzdC4KLQkJICoKLQkJICogSWYgd2Uga25vdyB0aGVyZSBhcmUgbm8gc3Vj aCByZWZlcmVuY2VzLCB3ZSBjYW4ganVzdCB1c2UgdGhlIG91dGVyCi0JCSAqIGFwcGVuZF9y ZWxfbGlzdCB1bm1vZGlmaWVkLgorCQkgKiBQcmVwYXJlIHRvIGFwcGx5IENoYW5nZVZhck5v ZGVzIHRvIG9yaWdfYXBwZW5kX3JlbF9saXN0IGJ5IGNvcHlpbmcKKwkJICogdGhlIEFwcGVu ZFJlbEluZm9zIGNvbnRhaW5lZCBpbiBpdC4gIE5vdGUgdGhhdCBvcmlnX2FwcGVuZF9yZWxf bGlzdAorCQkgKiBjb250YWlucyBvbmx5IHRoZSBBcHBlbmRSZWxJbmZvcyBwZXJ0YWluaW5n IHRvIGZsYXR0ZW5lZCBVTklPTiBBTEwKKwkJICogc3VicXVlcmllcywgc28gd2UnbGwgYmUg YXBwbHlpbmcgQ2hhbmdlVmFyTm9kZXMgdG8gYWxsIG9mIHRoZW0uCisJCSAqIFdlIGRvbid0 IG5lZWQgdG8gbG9vayBhdCBvdGhlciBtZW1iZXJzIG9mCisJCSAqIHBhcmVudF9yb290LT5h cHBlbmRfcmVsX2xpc3QsIHdoaWNoIGFyZSB0aG9zZSBjb3JyZXNwb25kaW5nIHRvCisJCSAq IGNoaWxkIHRhcmdldCByZWxhdGlvbnMsIGJlY2F1c2UgdGhleSB3b24ndCBjb250YWluIGFu eSBzdWJxdWVyeQorCQkgKiByZWZlcmVuY2VzLgogCQkgKi8KLQkJaWYgKG1vZGlmaWFibGVB UklpbmRleGVzICE9IE5VTEwpCisJCXN1YnJvb3QtPmFwcGVuZF9yZWxfbGlzdCA9IGNvcHlP YmplY3Qob3JpZ19hcHBlbmRfcmVsX2xpc3QpOworCisJCS8qCisJCSAqIElmIHRoaXMgaXNu J3QgdGhlIGZpcnN0IGNoaWxkIHF1ZXJ5LCB0aGVuIHdlIGNhbiB1c2UgdGhlIGNoaWxkCisJ CSAqIG9iamVjdHMgZm9yIHNvdXJjZSBjaGlsZCByZWxhdGlvbnMgY3JlYXRlZCBkdXJpbmcg dGhlIHBsYW5uaW5nIG9mCisJCSAqIDFzdCBjaGlsZCBxdWVyeS4gIElPVywgdGhpcyBwbGFu bmluZyBydW4gZG9lc24ndCBuZWVkIHRvIGNyZWF0ZSB0aGUKKwkJICogY2hpbGQgb2JqZWN0 cyBhZ2FpbiwgaW5kaWNhdGVkIGJ5IHNldHRpbmcgY29udGFpbnNfaW5oZXJpdF9jaGlsZHJl bgorCQkgKiBvZiB0aGUgY2hpbGQgUGxhbm5lckluZm8uICBXZSB1c2UgbGlzdF9jb3B5KCkg b24gc291cmNlX2NoaWxkX3J0ZXMsCisJCSAqIGJlY2F1c2Ugd2UgbWF5IGFkZCBtb3JlIGVu dHJpZXMgdG8gc3Vicm9vdC0+cGFyc2UtPnJ0YWJsZSBiZWxvdy4KKwkJICoKKwkJICogV2Ug ZG9uJ3QgbmVlZCB0byBhZGQgc291cmNlX2FwcGluZm9zIGludG8gc3Vicm9vdCB5ZXQsIGJl Y2F1c2Ugd2UKKwkJICogd29uJ3QgbmVlZCB0byBtb2RpZnkgYW55IG9mIGl0cyBlbnRyaWVz LiAgT25seSBvcmlnX2FwcGVuZF9yZWxfbGlzdAorCQkgKiB3aWxsIGNvbnRhaW4gcmVmZXJl bmNlcyB0byB0aGUgc3VicXVlcnkgUlRFcyB0aGF0IHdlJ3ZlIGFscmVhZHkKKwkJICogbWFk ZSBjb3BpZXMgb2YuICBUaGlzIGFsc28gc2F2ZXMgdGltZSBiZWxvdyBpbiB0aGUKKwkJICog Q2hhbmdlVmFyTm9kZXMoKE5vZGUgKikgc3Vicm9vdC0+YXBwZW5kX3JlbF9saXN0LCAuLi4p IHN0YXRlbWVudC4KKwkJICovCisJCWlmICghaXNfZmlyc3RfY2hpbGQpCiAJCXsKLQkJCUxp c3RDZWxsICAgKmxjMjsKKwkJCXN1YnJvb3QtPnJvd01hcmtzID0KKwkJCQlsaXN0X2NvbmNh dChzdWJyb290LT5yb3dNYXJrcywKKwkJCQkJCQlsaXN0X2NvcHkoc291cmNlX2NoaWxkX3Jv d21hcmtzKSk7CisJCQlzdWJyb290LT5wYXJzZS0+cnRhYmxlID0KKwkJCQlsaXN0X2NvbmNh dChzdWJyb290LT5wYXJzZS0+cnRhYmxlLAorCQkJCQkJCWxpc3RfY29weShzb3VyY2VfY2hp bGRfcnRlcykpOwogCi0JCQlzdWJyb290LT5hcHBlbmRfcmVsX2xpc3QgPSBOSUw7Ci0JCQlm b3JlYWNoKGxjMiwgcGFyZW50X3Jvb3QtPmFwcGVuZF9yZWxfbGlzdCkKLQkJCXsKLQkJCQlB cHBlbmRSZWxJbmZvICphcHBpbmZvMiA9IGxmaXJzdF9ub2RlKEFwcGVuZFJlbEluZm8sIGxj Mik7Ci0KLQkJCQlpZiAoYm1zX2lzX21lbWJlcihhcHBpbmZvMi0+Y2hpbGRfcmVsaWQsIG1v ZGlmaWFibGVBUklpbmRleGVzKSkKLQkJCQkJYXBwaW5mbzIgPSBjb3B5T2JqZWN0KGFwcGlu Zm8yKTsKLQotCQkJCXN1YnJvb3QtPmFwcGVuZF9yZWxfbGlzdCA9IGxhcHBlbmQoc3Vicm9v dC0+YXBwZW5kX3JlbF9saXN0LAotCQkJCQkJCQkJCQkJICAgYXBwaW5mbzIpOwotCQkJfQor CQkJLyoKKwkJCSAqIFdlIGhhdmUgYWRkZWQgY2hpbGQgUlRFcyBhbmQgcm93IG1hcmtzLCBz byB0aGUgbmV4dAorCQkJICogcXVlcnlfcGxhbm5lciBkb2Vzbid0IG5lZWQgdG8gYWRkIHRo ZW0gYWdhaW4uCisJCQkgKi8KKwkJCXN1YnJvb3QtPmNvbnRhaW5zX2luaGVyaXRfY2hpbGRy ZW4gPSB0cnVlOwogCQl9CiAKIAkJLyoKQEAgLTE0OTksMjAgKzE0OTEsOCBAQCBpbmhlcml0 YW5jZV9wbGFubmVyKFBsYW5uZXJJbmZvICpyb290KQogCQkJCQluZXdydGkgPSBsaXN0X2xl bmd0aChzdWJyb290LT5wYXJzZS0+cnRhYmxlKSArIDE7CiAJCQkJCUNoYW5nZVZhck5vZGVz KChOb2RlICopIHN1YnJvb3QtPnBhcnNlLCBydGksIG5ld3J0aSwgMCk7CiAJCQkJCUNoYW5n ZVZhck5vZGVzKChOb2RlICopIHN1YnJvb3QtPnJvd01hcmtzLCBydGksIG5ld3J0aSwgMCk7 Ci0JCQkJCS8qIFNraXAgcHJvY2Vzc2luZyB1bmNoYW5naW5nIHBhcnRzIG9mIGFwcGVuZF9y ZWxfbGlzdCAqLwotCQkJCQlpZiAobW9kaWZpYWJsZUFSSWluZGV4ZXMgIT0gTlVMTCkKLQkJ CQkJewotCQkJCQkJTGlzdENlbGwgICAqbGMyOwotCi0JCQkJCQlmb3JlYWNoKGxjMiwgc3Vi cm9vdC0+YXBwZW5kX3JlbF9saXN0KQotCQkJCQkJewotCQkJCQkJCUFwcGVuZFJlbEluZm8g KmFwcGluZm8yID0gbGZpcnN0X25vZGUoQXBwZW5kUmVsSW5mbywgbGMyKTsKLQotCQkJCQkJ CWlmIChibXNfaXNfbWVtYmVyKGFwcGluZm8yLT5jaGlsZF9yZWxpZCwKLQkJCQkJCQkJCQkJ ICBtb2RpZmlhYmxlQVJJaW5kZXhlcykpCi0JCQkJCQkJCUNoYW5nZVZhck5vZGVzKChOb2Rl ICopIGFwcGluZm8yLCBydGksIG5ld3J0aSwgMCk7Ci0JCQkJCQl9Ci0JCQkJCX0KKwkJCQkJ Q2hhbmdlVmFyTm9kZXMoKE5vZGUgKikgc3Vicm9vdC0+YXBwZW5kX3JlbF9saXN0LCBydGks CisJCQkJCQkJCSAgIG5ld3J0aSwgMCk7CiAJCQkJCXJ0ZSA9IGNvcHlPYmplY3QocnRlKTsK IAkJCQkJQ2hhbmdlVmFyTm9kZXMoKE5vZGUgKikgcnRlLT5zZWN1cml0eVF1YWxzLCBydGks IG5ld3J0aSwgMCk7CiAJCQkJCXN1YnJvb3QtPnBhcnNlLT5ydGFibGUgPSBsYXBwZW5kKHN1 YnJvb3QtPnBhcnNlLT5ydGFibGUsCkBAIC0xNTIyLDYgKzE1MDIsMTQgQEAgaW5oZXJpdGFu Y2VfcGxhbm5lcihQbGFubmVySW5mbyAqcm9vdCkKIAkJCX0KIAkJfQogCisJCS8qCisJCSAq IENvbmNhdGVuYXRlIHNvdXJjZSBBcHBlbmRSZWxJbmZvcywgc28gdGhlIHNvdXJjZSBjaGls ZCBvYmplY3RzIHRoYXQKKwkJICogd2UgaG9va2VkIGludG8gc3Vicm9vdCBhYm92ZSBhcmUg ZGlzY292ZXJhYmxlLgorCQkgKi8KKwkJaWYgKCFpc19maXJzdF9jaGlsZCkKKwkJCXN1YnJv b3QtPmFwcGVuZF9yZWxfbGlzdCA9IGxpc3RfY29uY2F0KHN1YnJvb3QtPmFwcGVuZF9yZWxf bGlzdCwKKwkJCQkJCQkJCQkJCSAgIHNvdXJjZV9hcHBpbmZvcyk7CisKIAkJLyogVGhlcmUg c2hvdWxkbid0IGJlIGFueSBPSiBpbmZvIHRvIHRyYW5zbGF0ZSwgYXMgeWV0ICovCiAJCUFz c2VydChzdWJyb290LT5qb2luX2luZm9fbGlzdCA9PSBOSUwpOwogCQkvKiBhbmQgd2UgaGF2 ZW4ndCBjcmVhdGVkIFBsYWNlSG9sZGVySW5mb3MsIGVpdGhlciAqLwpAQCAtMTU0MCw2ICsx NTI4LDYyIEBAIGluaGVyaXRhbmNlX3BsYW5uZXIoUGxhbm5lckluZm8gKnJvb3QpCiAJCXN1 YnBhdGggPSBzdWJfZmluYWxfcmVsLT5jaGVhcGVzdF90b3RhbF9wYXRoOwogCiAJCS8qCisJ CSAqIElmIHdlIGp1c3QgZmluaXNoZWQgcGxhbm5pbmcgdGhlIGZpcnN0IGNoaWxkIHF1ZXJ5 LCByZWNvcmQgdGhlCisJCSAqIGNoaWxkIG9iamVjdHMgb2Ygc291cmNlIGluaGVyaXRhbmNl IHNldHMgdGhhdCB3ZXJlIGdlbmVyYXRlZAorCQkgKiBkdXJpbmcgcGxhbm5pbmcsIGlmIGFu eS4KKwkJICovCisJCWlmIChpc19maXJzdF9jaGlsZCAmJiBzdWJyb290LT5hcHBlbmRfcmVs X2xpc3QpCisJCXsKKwkJCWludAkJbl9za2lwX2FwcGluZm9zID0gbGlzdF9sZW5ndGgob3Jp Z19hcHBlbmRfcmVsX2xpc3QpOworCQkJaW50CQluX3NraXBfcm93bWFya3MgPSBsaXN0X2xl bmd0aChwYXJlbnRfcm9vdC0+cm93TWFya3MpOworCQkJaW50CQluX3NraXBfcnRlcyA9IGxp c3RfbGVuZ3RoKHBhcmVudF9wYXJzZS0+cnRhYmxlKTsKKwkJCUxpc3RDZWxsICpsYzI7CisK KwkJCUFzc2VydChzb3VyY2VfYXBwaW5mb3MgPT0gTklMKTsKKwkJCXNvdXJjZV9hcHBpbmZv cyA9IGxpc3RfY29weV90YWlsKHN1YnJvb3QtPmFwcGVuZF9yZWxfbGlzdCwKKwkJCQkJCQkJ CQkJIG5fc2tpcF9hcHBpbmZvcyk7CisJCQlBc3NlcnQoc291cmNlX2NoaWxkX3Jvd21hcmtz ID09IE5JTCk7CisJCQlzb3VyY2VfY2hpbGRfcm93bWFya3MgPSBsaXN0X2NvcHlfdGFpbChz dWJyb290LT5yb3dNYXJrcywKKwkJCQkJCQkJCQkJCSAgIG5fc2tpcF9yb3dtYXJrcyk7CisJ CQlBc3NlcnQoc291cmNlX2NoaWxkX3J0ZXMgPT0gTklMKTsKKwkJCXNvdXJjZV9jaGlsZF9y dGVzID0gbGlzdF9jb3B5X3RhaWwoc3Vicm9vdC0+cGFyc2UtPnJ0YWJsZSwKKwkJCQkJCQkJ CQkJICAgbl9za2lwX3J0ZXMpOworCisJCQkvKgorCQkJICogUGFyZW50IFBsYW5Sb3dNYXJr cyAoYWN0dWFsbHkgdGhlaXIgY29waWVzIGluIHRoZSBjaGlsZAorCQkJICogc3Vicm9vdCkg YXJlIG1vZGlmaWVkIHdoZW4gYWRkaW5nIHRoZSBjaGlsZCBQbGFuUm93TWFya3MuCisJCQkg KiBDb3B5IHRob3NlIGNoYW5nZXMgYmFjayBpbnRvIHRoZSBwYXJlbnRfcm9vdCdzIGNvcGll cyBvZiB0aG9zZQorCQkJICogcGFyZW50IFBsYW5Sb3dNYXJrcy4gIERvaW5nIHRoYXQgaXMg bmVjZXNzYXJ5LCBiZWNhdXNlIHdlIHdvbid0CisJCQkgKiBoaXQgdGhlIGNvZGUgdGhhdCBh ZGRzIGNoaWxkIFBsYW5Sb3dNYXJrcyBhZ2Fpbi4KKwkJCSAqCisJCQkgKiBUaGUgb3JpZ2lu YWwgcGFyZW50IHJvdyBtYXJrcyBhcmUgdGhlIGJlZ2lubmluZyBvZgorCQkJICogc3Vicm9v dC0+cm93TWFya3M7IHNraXAgdGhlIHJlc3QuCisJCQkgKi8KKwkJCWZvcmVhY2gobGMyLCBw YXJlbnRfcm9vdC0+cm93TWFya3MpCisJCQl7CisJCQkJUGxhblJvd01hcmsgKm9sZHJjID0g bGZpcnN0X25vZGUoUGxhblJvd01hcmssIGxjMik7CisJCQkJTGlzdENlbGwgKmxjMzsKKwor CQkJCWZvcmVhY2gobGMzLCBzdWJyb290LT5yb3dNYXJrcykKKwkJCQl7CisJCQkJCVBsYW5S b3dNYXJrICpuZXdyYyA9IGxmaXJzdF9ub2RlKFBsYW5Sb3dNYXJrLCBsYzMpOworCisJCQkJ CWlmIChvbGRyYy0+cnRpID09IG5ld3JjLT5ydGkpCisJCQkJCXsKKwkJCQkJCS8qIG1vZGlm aWVkIGluIGV4cGFuZF9zaW5nbGVfaW5oZXJpdGFuY2VfY2hpbGQoKSAqLworCQkJCQkJb2xk cmMtPmFsbE1hcmtUeXBlcyA9IG5ld3JjLT5hbGxNYXJrVHlwZXM7CisJCQkJCQkvKiBtb2Rp ZmllZCBpbiBleHBhbmRfaW5oZXJpdGVkX3J0ZW50cnkoKSAqLworCQkJCQkJb2xkcmMtPmlz UGFyZW50ID0gbmV3cmMtPmlzUGFyZW50OworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCWJy ZWFrOworCQkJCX0KKwkJCX0KKworCQkJaXNfZmlyc3RfY2hpbGQgPSBmYWxzZTsKKwkJfQor CisJCS8qCiAJCSAqIElmIHRoaXMgY2hpbGQgcmVsIHdhcyBleGNsdWRlZCBieSBjb25zdHJh aW50IGV4Y2x1c2lvbiwgZXhjbHVkZSBpdAogCQkgKiBmcm9tIHRoZSByZXN1bHQgcGxhbi4K IAkJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2Rl LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2RlLmMKaW5kZXggOWRjYzMx NjdlMC4uMGJmMDI0YjUzNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0 aWwvcmVsbm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3JlbG5vZGUu YwpAQCAtMzM5LDIxICszMzksMzggQEAgYWRkX2FwcGVuZHJlbF9vdGhlcl9yZWxzKFBsYW5u ZXJJbmZvICpyb290LCBSYW5nZVRibEVudHJ5ICpydGUsIEluZGV4IHJ0aSkKIHsKIAlMaXN0 Q2VsbAkgICAqbDsKIAlSZWxPcHRJbmZvCSAgICpyZWw7CisJaW50CQkJCWk7CiAKIAkvKgot CSAqIEFkZCBpbmhlcml0YW5jZSBjaGlsZHJlbiB0byB0aGUgcXVlcnkuIEZvciBjaGlsZCB0 YWJsZXMgdGhhdCBhcmUKLQkgKiB0aGVtc2VsdmVzIHBhcnRpdGlvbmVkLCB0aGVpciBjaGls ZHJlbiB3aWxsIGJlIGFkZGVkIHJlY3Vyc2l2ZWx5LgorCSAqIEFkZCBpbmhlcml0YW5jZSBj aGlsZHJlbiB0byB0aGUgcXVlcnkgaWYgbm90IGFscmVhZHkgZG9uZS4gRm9yIGNoaWxkCisJ ICogdGFibGVzIHRoYXQgYXJlIHRoZW1zZWx2ZXMgcGFydGl0aW9uZWQsIHRoZWlyIGNoaWxk cmVuIHdpbGwgYmUgYWRkZWQKKwkgKiByZWN1cnNpdmVseS4KKwkgKgorCSAqIElmIHJvb3Qg YWxyZWFkeSBjb250YWlucyB0aGUgY2hpbGRyZW4sIHdlIGp1c3QgbmVlZCB0byBidWlsZCB0 aGVpcgorCSAqICJvdGhlciByZWwiIFJlbE9wdEluZm9zLCB3aGljaCB3ZSBkbyBiZWxvdy4K IAkgKi8KLQlpZiAocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTikKKwlpZiAocnRlLT5y dGVraW5kID09IFJURV9SRUxBVElPTiAmJiAhcm9vdC0+Y29udGFpbnNfaW5oZXJpdF9jaGls ZHJlbikKIAl7CiAJCWV4cGFuZF9pbmhlcml0ZWRfcnRlbnRyeShyb290LCBydGUsIHJ0aSk7 CiAJCXJldHVybjsKIAl9CiAKLQkvKiBBZGQgb3RoZXIgcmVscyBvZiBmbGF0dGVuZWQgVU5J T04gQUxMIGNoaWxkcmVuLiAqLwotCUFzc2VydChydGUtPnJ0ZWtpbmQgPT0gUlRFX1NVQlFV RVJZKTsKKwkvKiBBZGQgb3RoZXIgcmVscy4gKi8KKwlBc3NlcnQocnRlLT5ydGVraW5kID09 IFJURV9TVUJRVUVSWSB8fCBydGUtPnJ0ZWtpbmQgPT0gUlRFX1JFTEFUSU9OKTsKIAlyZWwg PSBmaW5kX2Jhc2VfcmVsKHJvb3QsIHJ0aSk7CiAKKwkvKgorCSAqIEZvciBwYXJ0aXRpb25l ZCB0YWJsZXMsIHdlIG5lZWQgdG8gc3RvcmUgdGhlIGNoaWxkIFJlbE9wdEluZm9zIGluIHRo ZQorCSAqIHJlbC0+cGFydF9yZWxzIGFycmF5IHRvby4KKwkgKi8KKwlpZiAocmVsLT5wYXJ0 X3NjaGVtZSkKKwl7CisJCUFzc2VydChyZWwtPm5wYXJ0cyA+IDApOworCQlyZWwtPnBhcnRf cmVscyA9IChSZWxPcHRJbmZvICoqKQorCQkJCXBhbGxvYzAoc2l6ZW9mKFJlbE9wdEluZm8g KikgKiByZWwtPm5wYXJ0cyk7CisJfQorCisJaSA9IDA7CiAJZm9yZWFjaChsLCByb290LT5h cHBlbmRfcmVsX2xpc3QpCiAJewogCQlBcHBlbmRSZWxJbmZvICAqYXBwaW5mbyA9IGxmaXJz dChsKTsKQEAgLTM2OSwxMCArMzg2LDMwIEBAIGFkZF9hcHBlbmRyZWxfb3RoZXJfcmVscyhQ bGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcnRlLCBJbmRleCBydGkpCiAJCUFz c2VydChjaGlsZHJ0ZSAhPSBOVUxMKTsKIAkJY2hpbGRyZWwgPSBidWlsZF9zaW1wbGVfcmVs KHJvb3QsIGNoaWxkUlRpbmRleCwgcmVsKTsKIAorCQkvKgorCQkgKiBGb3IgcGFydGl0aW9u ZWQgcGFyZW50cywgd2UgYWxzbyBuZWVkIHRvIGFkZCBjaGlsZHJlbCB0byBpdHMKKwkJICog cGFydF9yZWxzIGFycmF5LiAgVGhlIG9yZGVyIGluIHdoaWNoIGNoaWxkIHRhYmxlcyBhcHBl YXIgaW4KKwkJICogYXBwZW5kX3JlbF9saXN0IGlzIHNhbWUgYXMgdGhlIG9yZGVyIGluIHdo aWNoIHRoZXkgYXBwZWFyIGluIHRoZQorCQkgKiBwYXJlbnQncyBQYXJ0aXRpb25EZXNjLCBz byBhc3NpZ25pbmcgcGFydGl0aW9ucyBsaWtlIHRoaXMgd29ya3MuCisJCSAqLworCQlpZiAo cmVsLT5wYXJ0X3NjaGVtZSAhPSBOVUxMKQorCQl7CisJCQlBc3NlcnQoaSA8IHJlbC0+bnBh cnRzKTsKKwkJCXJlbC0+cGFydF9yZWxzW2ldID0gY2hpbGRyZWw7CisJCX0KKworCQlpKys7 CisKIAkJLyogQ2hpbGQgbWF5IGl0c2VsZiBiZSBhbiBpbmhlcml0ZWQgcmVsYXRpb24uICov CiAJCWlmIChjaGlsZHJ0ZS0+aW5oKQogCQkJYWRkX2FwcGVuZHJlbF9vdGhlcl9yZWxzKHJv b3QsIGNoaWxkcnRlLCBjaGlsZFJUaW5kZXgpOwogCX0KKworCS8qCisJICogRm9yIGEgcGFy dGl0aW9uZWQgdGFibGUgd2l0aCBub24temVybyBudW1iZXIgb2YgcGFydGl0aW9ucywgd2Ug bXVzdAorCSAqIGhhdmUgYXNzaWduZWQgYWxsIGVsZW1lbnRzIG9mIGl0cyBwYXJ0X3JlbHMg YXJyYXkuCisJICovCisJQXNzZXJ0KHJlbC0+bnBhcnRzID09IDAgfHwgaSA9PSByZWwtPm5w YXJ0cyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IDI1M2UwYjdlNDgu LjMxODExZjlhZGIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0zNTAsNiArMzUwLDEz IEBAIHN0cnVjdCBQbGFubmVySW5mbwogCiAJLyogRG9lcyB0aGlzIHF1ZXJ5IG1vZGlmeSBh bnkgcGFydGl0aW9uIGtleSBjb2x1bW5zPyAqLwogCWJvb2wJCXBhcnRDb2xzVXBkYXRlZDsK KworCS8qCisJICogRG9lcyB0aGlzIFBsYW5uZXJJbmZvIGFuZCBpdHMgUXVlcnkgb2JqZWN0 IGNvbnRhaW4gKmFsbCogaW5oZXJpdGFuY2UKKwkgKiBjaGlsZHJlbj8gIElmIHRydWUsIHRo ZSBSVEVzLCB0aGUgQXBwZW5kUmVsSW5mb3MsIGFuZCB0aGUgUGxhblJvd01hcmtzCisJICog b2YgYWxsIHRoZSBjaGlsZHJlbiBhcmUgYXNzdW1lZCB0byBiZSBwcmVzZW50LgorCSAqLwor CWJvb2wJCWNvbnRhaW5zX2luaGVyaXRfY2hpbGRyZW47CiB9OwogCiAKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX3BydW5lLm91dAppbmRleCA3MTk0MjM5 NGJhLi5mMTExNWM1NjFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BhcnRpdGlvbl9wcnVuZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w YXJ0aXRpb25fcHJ1bmUub3V0CkBAIC0yNTU5LDE2ICsyNTU5LDE2IEBAIHVwZGF0ZSBhYl9h MSBzZXQgYiA9IDMgZnJvbSBhYiB3aGVyZSBhYi5hID0gMSBhbmQgYWIuYSA9IGFiX2ExLmE7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCiAgICAt PiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgIC0+ICBB cHBlbmQgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKLSAgICAgICAgICAgICAgIC0+ICBCaXRt YXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IxIGFiX2ExX2IxXzIgKGFjdHVhbCByb3dzPTAgbG9v cHM9MSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2Ix IGFiX2ExX2IxXzEgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAg ICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJp dG1hcCBJbmRleCBTY2FuIG9uIGFiX2ExX2IxX2FfaWR4IChhY3R1YWwgcm93cz0wIGxvb3Bz PTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCi0g ICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9hMV9iMiBhYl9hMV9i Ml8yIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAgICAtPiAgQml0bWFw IEhlYXAgU2NhbiBvbiBhYl9hMV9iMiBhYl9hMV9iMl8xIChhY3R1YWwgcm93cz0xIGxvb3Bz PTEpCiAgICAgICAgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6IChhID0gMSkKICAgICAg ICAgICAgICAgICAgICAgIEhlYXAgQmxvY2tzOiBleGFjdD0xCiAgICAgICAgICAgICAgICAg ICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjJfYV9pZHggKGFjdHVhbCBy b3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4IENvbmQ6 IChhID0gMSkKLSAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2Ex X2IzIGFiX2ExX2IzXzIgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKKyAgICAgICAgICAgICAg IC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IzIGFiX2ExX2IzXzEgKGFjdHVhbCBy b3dzPTAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEg PSAxKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGFi X2ExX2IzX2FfaWR4IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCkBAIC0yNTgwLDE2ICsyNTgwLDE2IEBA IHVwZGF0ZSBhYl9hMSBzZXQgYiA9IDMgZnJvbSBhYiB3aGVyZSBhYi5hID0gMSBhbmQgYWIu YSA9IGFiX2ExLmE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAo YSA9IDEpCiAgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAg ICAgICAgIC0+ICBBcHBlbmQgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKLSAgICAgICAgICAg ICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IxIGFiX2ExX2IxXzMgKGFjdHVh bCByb3dzPTAgbG9vcHM9MSkKKyAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2Fu IG9uIGFiX2ExX2IxIGFiX2ExX2IxXzEgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAg ICAgICAgICAgICAgICAgIFJlY2hlY2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAg ICAgICAgLT4gIEJpdG1hcCBJbmRleCBTY2FuIG9uIGFiX2ExX2IxX2FfaWR4IChhY3R1YWwg cm93cz0wIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25k OiAoYSA9IDEpCi0gICAgICAgICAgICAgICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9h MV9iMiBhYl9hMV9iMl8zIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAg ICAtPiAgQml0bWFwIEhlYXAgU2NhbiBvbiBhYl9hMV9iMiBhYl9hMV9iMl8xIChhY3R1YWwg cm93cz0xIGxvb3BzPTEpCiAgICAgICAgICAgICAgICAgICAgICBSZWNoZWNrIENvbmQ6IChh ID0gMSkKICAgICAgICAgICAgICAgICAgICAgIEhlYXAgQmxvY2tzOiBleGFjdD0xCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgQml0bWFwIEluZGV4IFNjYW4gb24gYWJfYTFfYjJfYV9p ZHggKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg IEluZGV4IENvbmQ6IChhID0gMSkKLSAgICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBT Y2FuIG9uIGFiX2ExX2IzIGFiX2ExX2IzXzMgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKKyAg ICAgICAgICAgICAgIC0+ICBCaXRtYXAgSGVhcCBTY2FuIG9uIGFiX2ExX2IzIGFiX2ExX2Iz XzEgKGFjdHVhbCByb3dzPTAgbG9vcHM9MSkKICAgICAgICAgICAgICAgICAgICAgIFJlY2hl Y2sgQ29uZDogKGEgPSAxKQogICAgICAgICAgICAgICAgICAgICAgLT4gIEJpdG1hcCBJbmRl eCBTY2FuIG9uIGFiX2ExX2IzX2FfaWR4IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBDb25kOiAoYSA9IDEpCkBAIC0yNjA2LDYg KzI2MDYsNjAgQEAgdGFibGUgYWI7CiAgMSB8IDMKICgxIHJvdykKIAorLS0gVGVzdCBVUERB VEUgd2hlcmUgc291cmNlIHJlbGF0aW9uIGhhcyBydW4tdGltZSBwcnVuaW5nIGVuYWJsZWQK K3RydW5jYXRlIGFiOworaW5zZXJ0IGludG8gYWIgdmFsdWVzICgxLCAxKSwgKDEsIDIpLCAo MSwgMyksICgyLCAxKTsKK2V4cGxhaW4gKGFuYWx5emUsIGNvc3RzIG9mZiwgc3VtbWFyeSBv ZmYsIHRpbWluZyBvZmYpCit1cGRhdGUgYWJfYTEgc2V0IGIgPSAzIGZyb20gYWJfYTIgd2hl cmUgYWJfYTIuYiA9IChzZWxlY3QgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgVXBkYXRlIG9uIGFiX2ExIChhY3R1YWwgcm93cz0wIGxvb3BzPTEpCisgICBV cGRhdGUgb24gYWJfYTFfYjEKKyAgIFVwZGF0ZSBvbiBhYl9hMV9iMgorICAgVXBkYXRlIG9u IGFiX2ExX2IzCisgICBJbml0UGxhbiAxIChyZXR1cm5zICQwKQorICAgICAtPiAgUmVzdWx0 IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAtPiAgTmVzdGVkIExvb3AgKGFjdHVhbCBy b3dzPTEgbG9vcHM9MSkKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBhYl9hMV9iMSAoYWN0 dWFsIHJvd3M9MSBsb29wcz0xKQorICAgICAgICAgLT4gIE1hdGVyaWFsaXplIChhY3R1YWwg cm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAgICAtPiAgQXBwZW5kIChhY3R1YWwgcm93 cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gYWJf YTJfYjEgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZpbHRlcjogKGIgPSAkMCkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBhYl9hMl9iMiAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6IChiID0gJDApCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gYWJfYTJfYjMgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgRmlsdGVyOiAoYiA9ICQwKQorICAgLT4gIE5lc3RlZCBMb29wIChhY3R1YWwgcm93 cz0xIGxvb3BzPTEpCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gYWJfYTFfYjIgKGFjdHVh bCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgIC0+ICBNYXRlcmlhbGl6ZSAoYWN0dWFsIHJv d3M9MSBsb29wcz0xKQorICAgICAgICAgICAgICAgLT4gIEFwcGVuZCAoYWN0dWFsIHJvd3M9 MSBsb29wcz0xKQorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGFiX2Ey X2IxIChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBGaWx0ZXI6IChiID0gJDApCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gYWJfYTJfYjIgKG5ldmVyIGV4ZWN1dGVkKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgRmlsdGVyOiAoYiA9ICQwKQorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIGFiX2EyX2IzIChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZpbHRlcjogKGIgPSAkMCkKKyAgIC0+ICBOZXN0ZWQgTG9vcCAoYWN0dWFsIHJvd3M9 MSBsb29wcz0xKQorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIGFiX2ExX2IzIChhY3R1YWwg cm93cz0xIGxvb3BzPTEpCisgICAgICAgICAtPiAgTWF0ZXJpYWxpemUgKGFjdHVhbCByb3dz PTEgbG9vcHM9MSkKKyAgICAgICAgICAgICAgIC0+ICBBcHBlbmQgKGFjdHVhbCByb3dzPTEg bG9vcHM9MSkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBhYl9hMl9i MSAoYWN0dWFsIHJvd3M9MSBsb29wcz0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg RmlsdGVyOiAoYiA9ICQwKQorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IGFiX2EyX2IyIChuZXZlciBleGVjdXRlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg IEZpbHRlcjogKGIgPSAkMCkKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBhYl9hMl9iMyAobmV2ZXIgZXhlY3V0ZWQpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBGaWx0ZXI6IChiID0gJDApCisoMzYgcm93cykKKworc2VsZWN0IHRhYmxlb2lkOjpyZWdj bGFzcywgKiBmcm9tIGFiOworIHRhYmxlb2lkIHwgYSB8IGIgCistLS0tLS0tLS0tKy0tLSst LS0KKyBhYl9hMV9iMyB8IDEgfCAzCisgYWJfYTFfYjMgfCAxIHwgMworIGFiX2ExX2IzIHwg MSB8IDMKKyBhYl9hMl9iMSB8IDIgfCAxCisoNCByb3dzKQorCiBkcm9wIHRhYmxlIGFiLCBs cHJ0X2E7CiAtLSBKb2luCiBjcmVhdGUgdGFibGUgdGJsMShjb2wxIGludCk7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jvd3NlY3VyaXR5Lm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJpdHkub3V0CmluZGV4IDM3ZWYxZGVhYjYu LmJhZDUxOTlkOWUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93 c2VjdXJpdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcm93c2VjdXJp dHkub3V0CkBAIC0xODE1LDI2ICsxODE1LDI2IEBAIEFORCBmX2xlYWsodDFfMS5iKSBBTkQg Zl9sZWFrKHQxXzIuYikgUkVUVVJOSU5HICosIHQxXzEsIHQxXzI7CiAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gdDMgdDFfMl8yCiAgICAgICAgICAgICAgICAgICAgICBGaWx0 ZXI6ICgoYSA9IDQpIEFORCAoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCiAgICAtPiAg TmVzdGVkIExvb3AKLSAgICAgICAgIEpvaW4gRmlsdGVyOiAodDFfMV8xLmIgPSB0MV8yXzMu YikKKyAgICAgICAgIEpvaW4gRmlsdGVyOiAodDFfMV8xLmIgPSB0MV8yLmIpCiAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gdDIgdDFfMV8xCiAgICAgICAgICAgICAgICBGaWx0ZXI6ICgo YSA9IDQpIEFORCAoKGEgJSAyKSA9IDApIEFORCBmX2xlYWsoYikpCiAgICAgICAgICAtPiAg QXBwZW5kCi0gICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFfMl8zCisgICAg ICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdDEgdDFfMgogICAgICAgICAgICAgICAgICAg ICAgRmlsdGVyOiAoKGEgPSA0KSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQot ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQyIHQxXzJfNAorICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHQyIHQxXzJfMQogICAgICAgICAgICAgICAgICAgICAgRmls dGVyOiAoKGEgPSA0KSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQotICAgICAg ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQzIHQxXzJfNQorICAgICAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHQzIHQxXzJfMgogICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAo KGEgPSA0KSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogICAgLT4gIE5lc3Rl ZCBMb29wCi0gICAgICAgICBKb2luIEZpbHRlcjogKHQxXzFfMi5iID0gdDFfMl82LmIpCisg ICAgICAgICBKb2luIEZpbHRlcjogKHQxXzFfMi5iID0gdDFfMi5iKQogICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHQzIHQxXzFfMgogICAgICAgICAgICAgICAgRmlsdGVyOiAoKGEgPSA0 KSBBTkQgKChhICUgMikgPSAwKSBBTkQgZl9sZWFrKGIpKQogICAgICAgICAgLT4gIEFwcGVu ZAotICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHQxIHQxXzJfNgorICAgICAgICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHQxIHQxXzIKICAgICAgICAgICAgICAgICAgICAgIEZp bHRlcjogKChhID0gNCkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKLSAgICAg ICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB0MiB0MV8yXzcKKyAgICAgICAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiB0MiB0MV8yXzEKICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjog KChhID0gNCkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKLSAgICAgICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiB0MyB0MV8yXzgKKyAgICAgICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiB0MyB0MV8yXzIKICAgICAgICAgICAgICAgICAgICAgIEZpbHRlcjogKChhID0g NCkgQU5EICgoYSAlIDIpID0gMCkgQU5EIGZfbGVhayhiKSkKICgzNyByb3dzKQogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRpb25fcHJ1bmUuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX3BydW5lLnNxbAppbmRleCBkYzMyN2NhZmZk Li5lMTVhZmMyZGZkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0aXRp b25fcHJ1bmUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9wcnVu ZS5zcWwKQEAgLTU4OCw2ICs1ODgsMTMgQEAgZXhwbGFpbiAoYW5hbHl6ZSwgY29zdHMgb2Zm LCBzdW1tYXJ5IG9mZiwgdGltaW5nIG9mZikKIHVwZGF0ZSBhYl9hMSBzZXQgYiA9IDMgZnJv bSBhYiB3aGVyZSBhYi5hID0gMSBhbmQgYWIuYSA9IGFiX2ExLmE7CiB0YWJsZSBhYjsKIAor LS0gVGVzdCBVUERBVEUgd2hlcmUgc291cmNlIHJlbGF0aW9uIGhhcyBydW4tdGltZSBwcnVu aW5nIGVuYWJsZWQKK3RydW5jYXRlIGFiOworaW5zZXJ0IGludG8gYWIgdmFsdWVzICgxLCAx KSwgKDEsIDIpLCAoMSwgMyksICgyLCAxKTsKK2V4cGxhaW4gKGFuYWx5emUsIGNvc3RzIG9m Ziwgc3VtbWFyeSBvZmYsIHRpbWluZyBvZmYpCit1cGRhdGUgYWJfYTEgc2V0IGIgPSAzIGZy b20gYWJfYTIgd2hlcmUgYWJfYTIuYiA9IChzZWxlY3QgMSk7CitzZWxlY3QgdGFibGVvaWQ6 OnJlZ2NsYXNzLCAqIGZyb20gYWI7CisKIGRyb3AgdGFibGUgYWIsIGxwcnRfYTsKIAogLS0g Sm9pbgotLSAKMi4xMS4wCgo= --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0005-Further-tweak-inheritance_planner-to-avoid-usele.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0005-Further-tweak-inheritance_planner-to-avoid-usele.pa"; filename*1="tch" RnJvbSA5YmU1Yjg4NmVhMDRmYzMzYzE4MWVmOTkxZTQ0M2E2ZTc5MmI2Njc4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogRnJpLCA4IE1hciAyMDE5IDE3OjUwOjIwICswOTAwClN1YmplY3Q6IFtQQVRDSCB2 MzQgNS85XSBGdXJ0aGVyIHR3ZWFrIGluaGVyaXRhbmNlX3BsYW5uZXIgdG8gYXZvaWQgdXNl bGVzcwogd29yawoKV2hlbiBydW5uaW5nIGFkanVzdF9hcHBlbmRyZWxfYXR0cnMoKSBvbiB0 aGUgcXVlcnksIHRoZXJlJ3Mgbm8gbmVlZApmb3IgaXRzIHJhbmdlIHRhYmxlIHRvIGNvbnRh aW4gY2hpbGQgdGFyZ2V0IFJURXMsIGJlY2F1c2UgdGhleSBkb24ndApuZWVkIHRvIGJlIHRy YW5zbGF0ZWQuICBUcmltbWluZyB0aG9zZSBvZmYgdGhlIHJhbmdlIHRhYmxlIG1ha2VzCnJh bmdlX3RhYmxlX211dGF0b3IoKSBmaW5pc2ggbXVjaCBxdWlja2VyLCBiZWNhdXNlIG5vdyBp dCBkb2Vzbid0CmhhdmUgdG8gY3Jhd2wgdGhyb3VnaCBwb3RlbnRpYWxseSBtYW55IFJURXMg ZXNzZW50aWFsbHkganVzdCBjb3B5aW5nCnRoZW0uICBOb3RlIHRoYXQgY29weWluZyB0aGUg Y2hpbGQgdGFyZ2V0IFJURXMgaXMgdW5uZWNlc3NhcnkgYXMKdGhleSB3b24ndCBiZSBtb2Rp ZmllZCBhY3Jvc3MgZGlmZmVyZW50IHBsYW5uaW5nIGN5Y2xlcy4gIFRoZSAoc3ViLSkKbGlz dCB0aGV5IGFyZSBjb250YWluZWQgc3RpbGwgbXVzdCBjb3BpZWQgd2l0aCBsaXN0X2NvcHko KSwgYmVjYXVzZQptb3JlIGVudHJpZXMgbWF5IGJlIGFkZGVkIHRvIGluZGl2aWR1YWwgY2hp bGQgcXVlcnkncyByYW5nZSB0YWJsZS4KCkZ1cnRoZXJtb3JlLCBpbiBhIGZldyBwbGFjZXMg d2hlcmUgdGhlIGNvZGUgaXRlcmF0ZXMgb3ZlciB0aGUgcmFuZ2UKdGFibGUgdG8gZmlyc3Qg bG9jYXRlIGFuZCBsYXRlciBtb2RpZnkgc3VicXVlcnkgUlRFcywgaXQncyBPSyB0bwppZ25v cmUgdGhlIGNoaWxkIHRhcmdldCBSVEVzLCBiZWNhdXNlIHRoZXJlIHdvbid0IGJlIGFueSBz dWJxdWVyeQpSVEVzIGFtb25nIHRoZW0gYW5kIGFsc28gdGhleSB3b24ndCBjb250YWluIGFu eSByZWZlcmVuY2VzIHRvCnN1YnF1ZXJ5IFJURXMgdGhhdCBhcmUgZm91bmQuCi0tLQogc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIHwgMzQgKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyks IDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmlu ZGV4IDk1ZjY5YWNhYzUuLmY1MGM0MzIxZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxh bi9wbGFubmVyLmMKQEAgLTEyMDksNiArMTIwOSw3IEBAIGluaGVyaXRhbmNlX3BsYW5uZXIo UGxhbm5lckluZm8gKnJvb3QpCiAJUXVlcnkJICAgKnBhcmVudF9wYXJzZTsKIAlCaXRtYXBz ZXQgICpwYXJlbnRfcmVsaWRzID0gYm1zX21ha2Vfc2luZ2xldG9uKHRvcF9wYXJlbnRSVGlu ZGV4KTsKIAlQbGFubmVySW5mbyAqKnBhcmVudF9yb290cyA9IE5VTEw7CisJTGlzdAkgICAq b3JpZ19ydGFibGUgPSBsaXN0X2NvcHkocm9vdC0+cGFyc2UtPnJ0YWJsZSk7CiAJTGlzdAkg ICAqb3JpZ19hcHBlbmRfcmVsX2xpc3QgPSBsaXN0X2NvcHkocm9vdC0+YXBwZW5kX3JlbF9s aXN0KTsKIAlMaXN0CSAgICpzb3VyY2VfYXBwaW5mb3MgPSBOSUw7CiAJTGlzdAkgICAqc291 cmNlX2NoaWxkX3Jvd21hcmtzID0gTklMOwpAQCAtMTI1OCwxMCArMTI1OSwxMiBAQCBpbmhl cml0YW5jZV9wbGFubmVyKFBsYW5uZXJJbmZvICpyb290KQogCSAqIG1hbmFnZW1lbnQgb2Yg dGhlIHJvd01hcmtzIGxpc3QuCiAJICoKIAkgKiBUbyBiZWdpbiB3aXRoLCBnZW5lcmF0ZSBh IGJpdG1hcHNldCBvZiB0aGUgcmVsaWRzIG9mIHRoZSBzdWJxdWVyeSBSVEVzLgorCSAqIFdl IHVzZSBvcmlnX3J0YWJsZSwgbm90IHBhcnNlLT5ydGFibGUsIGJlY2F1c2Ugd2Ugd291bGRu J3QgbmVlZCB0bworCSAqIGNvbnNpZGVyIGFueSBuZXdseSBhZGRlZCBSVEVzIGFzIHRoZXkg YWxsIG11c3QgYmUgUlRFX1JFTEFUSU9OIGVudHJpZXMuCiAJICovCiAJc3VicXVlcnlSVGlu ZGV4ZXMgPSBOVUxMOwogCXJ0aSA9IDE7Ci0JZm9yZWFjaChsYywgcGFyc2UtPnJ0YWJsZSkK Kwlmb3JlYWNoKGxjLCBvcmlnX3J0YWJsZSkKIAl7CiAJCVJhbmdlVGJsRW50cnkgKnJ0ZSA9 IGxmaXJzdF9ub2RlKFJhbmdlVGJsRW50cnksIGxjKTsKIApAQCAtMTMwNyw2ICsxMzEwLDcg QEAgaW5oZXJpdGFuY2VfcGxhbm5lcihQbGFubmVySW5mbyAqcm9vdCkKIAkJUmFuZ2VUYmxF bnRyeSAqY2hpbGRfcnRlOwogCQlSZWxPcHRJbmZvICpzdWJfZmluYWxfcmVsOwogCQlQYXRo CSAgICpzdWJwYXRoOworCQlMaXN0CSAgICpwYXJlbnRfcnRhYmxlOwogCiAJCS8qIGFwcGVu ZF9yZWxfbGlzdCBjb250YWlucyBhbGwgYXBwZW5kIHJlbHM7IGlnbm9yZSBvdGhlcnMgKi8K IAkJaWYgKCFibXNfaXNfbWVtYmVyKGFwcGluZm8tPnBhcmVudF9yZWxpZCwgcGFyZW50X3Jl bGlkcykpCkBAIC0xMzMzLDExICsxMzM3LDMwIEBAIGluaGVyaXRhbmNlX3BsYW5uZXIoUGxh bm5lckluZm8gKnJvb3QpCiAJCSAqIGFkanVzdF9hcHBlbmRyZWxfYXR0cnMsIHdoaWNoIGNv cGllcyB0aGUgUXVlcnkgYW5kIGNoYW5nZXMKIAkJICogcmVmZXJlbmNlcyB0byB0aGUgcGFy ZW50IFJURSB0byByZWZlciB0byB0aGUgY3VycmVudCBjaGlsZCBSVEUsCiAJCSAqIHRoZW4g Zm9vbCBhcm91bmQgd2l0aCBzdWJxdWVyeSBSVEVzLgorCQkgKgorCQkgKiBJbiBvcmRlciB0 byBhdm9pZCByYW5nZV90YWJsZV9tdXRhdG9yKCkgdXNlbGVzc2x5IHNwZW5kaW5nIHRpbWUg b24KKwkJICogdGhlIGNoaWxkIHRhcmdldCBSVEVzIHRoYXQgd2VyZSBhZGRlZCB0byBxdWVy eSBhdCB0aGUgYmVnaW5uaW5nIG9mCisJCSAqIHRoaXMgZnVuY3Rpb24sIHdlIHN3YXAgdGhl IHF1ZXJ5J3MgcmFuZ2UgdGFibGUgd2l0aCB0aGUgY29weSBvZiB0aGUKKwkJICogcmFuZ2Ug dGFibGUgYmVmb3JlIHRoZXkgd2VyZSBhZGRlZCAob3JpZ190YWJsZSkuCiAJCSAqLworCQlw YXJlbnRfcnRhYmxlID0gcGFyZW50X3BhcnNlLT5ydGFibGU7CisJCXBhcmVudF9wYXJzZS0+ cnRhYmxlID0gb3JpZ19ydGFibGU7CiAJCXN1YnJvb3QtPnBhcnNlID0gKFF1ZXJ5ICopCiAJ CQlhZGp1c3RfYXBwZW5kcmVsX2F0dHJzKHBhcmVudF9yb290LAogCQkJCQkJCQkgICAoTm9k ZSAqKSBwYXJlbnRfcGFyc2UsCiAJCQkJCQkJCSAgIDEsICZhcHBpbmZvKTsKKwkJLyoKKwkJ ICogV2UgZG8gaG93ZXZlciBuZWVkIHRvIGFkZCB0aG9zZSBjaGlsZCB0YXJnZXQgUlRFcyB0 byB0aGUgcmFuZ2UKKwkJICogdGFibGUgc28gdGhhdCBxdWVyeV9wbGFubmVyIGNhbiBmaW5k IHRoaXMgY2hpbGQgUlRFLiAgT3RoZXIgdGFyZ2V0CisJCSAqIFJURXMgd2lsbCBub3QgYmUg YWNjZXNzZWQgZHVyaW5nIHRoaXMgcGxhbm5pbmcgY3ljbGUsIGJ1dCB3ZSBjYW4ndAorCQkg KiBqdXN0IHNraXAgdGhlbS4KKwkJICovCisJCXN1YnJvb3QtPnBhcnNlLT5ydGFibGUgPQor CQkJbGlzdF9jb25jYXQoc3Vicm9vdC0+cGFyc2UtPnJ0YWJsZSwKKwkJCQkJCWxpc3RfY29w eV90YWlsKHBhcmVudF9ydGFibGUsCisJCQkJCQkJCQkgICBsaXN0X2xlbmd0aChvcmlnX3J0 YWJsZSkpKTsKKwkJLyogUHV0IGl0IGJhY2sgZm9yIHRoZSBuZXh0IGNoaWxkJ3MgcGxhbm5p bmcuICovCisJCXBhcmVudF9wYXJzZS0+cnRhYmxlID0gcGFyZW50X3J0YWJsZTsKIAogCQkv KgogCQkgKiBJZiB0aGVyZSBhcmUgc2VjdXJpdHlRdWFscyBhdHRhY2hlZCB0byB0aGUgcGFy ZW50LCBtb3ZlIHRoZW0gdG8gdGhlCkBAIC0xNDY0LDE3ICsxNDg3LDE2IEBAIGluaGVyaXRh bmNlX3BsYW5uZXIoUGxhbm5lckluZm8gKnJvb3QpCiAJCS8qCiAJCSAqIElmIHRoaXMgaXNu J3QgdGhlIGZpcnN0IGNoaWxkIFF1ZXJ5LCBnZW5lcmF0ZSBkdXBsaWNhdGVzIG9mIGFsbAog CQkgKiBzdWJxdWVyeSBSVEVzLCBhbmQgYWRqdXN0IFZhciBudW1iZXJpbmcgdG8gcmVmZXJl bmNlIHRoZQotCQkgKiBkdXBsaWNhdGVzLiBUbyBzaW1wbGlmeSB0aGUgbG9vcCBsb2dpYywg d2Ugc2NhbiB0aGUgb3JpZ2luYWwgcnRhYmxlCi0JCSAqIG5vdCB0aGUgY29weSBqdXN0IG1h ZGUgYnkgYWRqdXN0X2FwcGVuZHJlbF9hdHRyczsgdGhhdCBzaG91bGQgYmUgT0sKLQkJICog c2luY2Ugc3VicXVlcnkgUlRFcyBjb3VsZG4ndCBjb250YWluIGFueSByZWZlcmVuY2VzIHRv IHRoZSB0YXJnZXQKLQkJICogcmVsLgorCQkgKiBkdXBsaWNhdGVzLiAgTm90ZSB0aGF0IHdl IHNjYW4gdGhlIG9yaWdpbmFsIHJ0YWJsZSBiZWZvcmUgYW55CisJCSAqIGNoaWxkIHRhcmdl dCByZWxhdGlvbnMgd2VyZSBhZGRlZCwgd2hpY2ggaXMgT0ssIGJlY2F1c2Ugbm8gb3RoZXIK KwkJICogUlRFcyB3b3VsZCBjb250YWluIHJlZmVyZW5jZXMgdG8gc3VicXVlcnkgcmVscyBi ZWluZyBtb2RpZmllZC4KIAkJICovCiAJCWlmIChmaW5hbF9ydGFibGUgIT0gTklMICYmIHN1 YnF1ZXJ5UlRpbmRleGVzICE9IE5VTEwpCiAJCXsKIAkJCUxpc3RDZWxsICAgKmxyOwogCiAJ CQlydGkgPSAxOwotCQkJZm9yZWFjaChsciwgcGFyZW50X3BhcnNlLT5ydGFibGUpCisJCQlm b3JlYWNoKGxyLCBvcmlnX3J0YWJsZSkKIAkJCXsKIAkJCQlSYW5nZVRibEVudHJ5ICpydGUg PSBsZmlyc3Rfbm9kZShSYW5nZVRibEVudHJ5LCBscik7CiAKLS0gCjIuMTEuMAoK --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0006-Perform-pruning-in-expand_partitioned_rtentry.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0006-Perform-pruning-in-expand_partitioned_rtentry.patch" RnJvbSA4NmU2NjQzM2FjMjkzMjBjMDBhNmRkMDIwZTJhMmI2Zjk4Yzk4OGYxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA0IE1hciAyMDE5IDExOjQzOjM4ICswOTAwClN1YmplY3Q6IFtQQVRDSCB2 MzQgNi85XSBQZXJmb3JtIHBydW5pbmcgaW4gZXhwYW5kX3BhcnRpdGlvbmVkX3J0ZW50cnkK ClRoaXMgYWxsb3dzIHRvIGF2b2lkIG9wZW5pbmcvbG9ja2luZyBwYXJ0aXRpb25zIHRoYXQg d29uJ3QgYmUKc2Nhbm5lZCBhdCBhbGwuCgpleHBhbmRfcGFydGl0aW9uZWRfcnRlbnRyeSBy ZWN1cnNpdmVseSBwcm9jZXNzZXMgc3ViLXBhcnRpdGlvbmVkCnRhYmxlcywgd2hpY2ggaW4g dHVybiBwZXJmb3JtcyBwYXJ0aXRpb24gcHJ1bmluZyBmb3IgdGhlbS4gIFRvIGRvCnNvLCB0 aGUgdHJhbnNsYXRlZCBxdWFscyBtdXN0IGJlIGFkZGVkIGV4YWN0bHkgd2hlbiB0aGUgY2hp bGQKUmVsT3B0SW5mbyBpcyBidWlsdCBmb3IgdGhlIHN1Yi1wYXJ0aXRpb25lZCB0YWJsZXMs IGluc3RlYWQgb2YKZGVsYXlpbmcgdGhhdCB0byBzZXRfYXBwZW5kX3JlbF9zaXplKCkgYXMg aXMgZG9uZSB0b2RheS4gIFNvLApidWlsZF9zaW1wbGVfcmVsKCkgaXRzZWxmIHBlcmZvcm1z IGFwcGx5X2NoaWxkX2Jhc2VxdWFscygpIG5vdy4KCkNvZGUgZm9yIHBhcnRpdGlvbmluZyBv cHRpbWl6YXRpb25zIHRoYXQgYWNjZXNzIHBhcnRpdGlvbiBSZWxPcHRJbmZvcwpmcm9tIHBh cnRfcmVscyBhcnJheSBvZiB0aGUgcGFyZW50J3MgUmVsT3B0SW5mbyBtdXN0IG5vdyBiZSBt YWRlCmF3YXJlIHRoYXQgc29tZSBlbnRyaWVzIG1pZ2h0IGJlIE5VTEwgZHVlIHBhcnRpdGlv biBwcnVuaW5nLiAgSW4gdGhlCmNhc2Ugb2YgcGFydGl0aW9ud2lzZSBqb2luLCBldmVuIGEg cHJ1bmVkIHBhcnRpdGlvbiBvbiBvbmUgc2lkZSBvZgp0aGUgam9pbiBtYXkgbmVlZCB0byBi ZSBqb2luZWQgdG8gdGhlIG5vbi1wcnVuZWQgY291bnRlcnBhcnQgb24gdGhlCm90aGVyIHNp ZGUsIGlmIHRoZSBwcnVuZWQgcGFydGl0aW9uIGZhbGxzIG9uIHRoZSBudWxsYWJsZSBzaWRl IG9mIGFuCm91dGVyIGpvaW4uICBBIGR1bW15IFJlbE9wdEluZm8gY29udGFpbmluZyBhIGR1 bW15IHBhdGggaXMgYnVpbHQgaW4KdGhhdCBjYXNlIGFuZCBwdXQgaW50byBpdHMgcGFyZW50 J3MgcGFydF9yZWxzIGFycmF5LgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0 aXRpb24uYyAgfCAgMTcgKystCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRo cy5jIHwgMTc2ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5k L29wdGltaXplci9wYXRoL2pvaW5yZWxzLmMgfCAgOTIgKysrKysrKysrKysrKysrKy0KIHNy Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgfCAgIDggKysKIHNyYy9iYWNr ZW5kL29wdGltaXplci91dGlsL2luaGVyaXQuYyAgfCAgMjEgKysrLQogc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvcmVsbm9kZS5jICB8IDE4OSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydHBydW5lLmMgIHwg IDQ1ICsrKystLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDMzNiBpbnNlcnRpb25zKCspLCAyMTIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Bh cnRpdGlvbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5jCmluZGV4 IDM3ZTk2YTYwMTMuLjViN2MzODYxNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNQYXJ0aXRpb24uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFy dGl0aW9uLmMKQEAgLTE2NTMsOSArMTY1MywyMCBAQCBFeGVjQ3JlYXRlUGFydGl0aW9uUHJ1 bmVTdGF0ZShQbGFuU3RhdGUgKnBsYW5zdGF0ZSwKIAkJCQltZW1jcHkocHBydW5lLT5zdWJw bGFuX21hcCwgcGluZm8tPnN1YnBsYW5fbWFwLAogCQkJCQkgICBzaXplb2YoaW50KSAqIHBp bmZvLT5ucGFydHMpOwogCi0JCQkJLyogRG91YmxlLWNoZWNrIHRoYXQgbGlzdCBvZiByZWxh dGlvbnMgaGFzIG5vdCBjaGFuZ2VkLiAqLwotCQkJCUFzc2VydChtZW1jbXAocGFydGRlc2Mt Pm9pZHMsIHBpbmZvLT5yZWxpZF9tYXAsCi0JCQkJCSAgIHBpbmZvLT5ucGFydHMgKiBzaXpl b2YoT2lkKSkgPT0gMCk7CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCQkJCS8qCisJ CQkJICogRG91YmxlLWNoZWNrIHRoYXQgbGlzdCBvZiB1bnBydW5lZCByZWxhdGlvbnMgaGFz IG5vdAorCQkJCSAqIGNoYW5nZWQuCisJCQkJICovCisJCQkJeworCQkJCQlpbnQJCWs7CisK KwkJCQkJLyogUHJ1bmVkIHBhcnRpdGlvbnMgYXJlIG5vdCBhZGRlZCB0byByZWxpZF9tYXAu ICovCisJCQkJCWZvciAoayA9IDA7IGsgPCBwaW5mby0+bnBhcnRzOyBrKyspCisJCQkJCQlB c3NlcnQocGFydGRlc2MtPm9pZHNba10gPT0gcGluZm8tPnJlbGlkX21hcFtrXSB8fAorCQkJ CQkJCSAgIHBpbmZvLT5zdWJwbGFuX21hcFtrXSA9PSAtMSk7CisJCQkJfQorI2VuZGlmCiAJ CQl9CiAJCQllbHNlCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGF0aC9hbGxwYXRocy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMu YwppbmRleCAzYjcwZWYxN2ZhLi4zMWM4ZjE2Y2FlIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wYXRoL2FsbHBhdGhzLmMKQEAgLTEzOSw5ICsxMzksNiBAQCBzdGF0aWMgdm9pZCBzdWJx dWVyeV9wdXNoX3F1YWwoUXVlcnkgKnN1YnF1ZXJ5LAogc3RhdGljIHZvaWQgcmVjdXJzZV9w dXNoX3F1YWwoTm9kZSAqc2V0T3AsIFF1ZXJ5ICp0b3BxdWVyeSwKIAkJCQkgIFJhbmdlVGJs RW50cnkgKnJ0ZSwgSW5kZXggcnRpLCBOb2RlICpxdWFsKTsKIHN0YXRpYyB2b2lkIHJlbW92 ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cyhRdWVyeSAqc3VicXVlcnksIFJlbE9wdEluZm8g KnJlbCk7Ci1zdGF0aWMgYm9vbCBhcHBseV9jaGlsZF9iYXNlcXVhbHMoUGxhbm5lckluZm8g KnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKLQkJCQkJICBSZWxPcHRJbmZvICpjaGlsZHJlbCwK LQkJCQkJICBSYW5nZVRibEVudHJ5ICpjaGlsZFJURSwgQXBwZW5kUmVsSW5mbyAqYXBwaW5m byk7CiAKIAogLyoKQEAgLTk0Niw4ICs5NDMsNiBAQCBzZXRfYXBwZW5kX3JlbF9zaXplKFBs YW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJZG91YmxlCSAgICpwYXJlbnRf YXR0cnNpemVzOwogCWludAkJCW5hdHRyczsKIAlMaXN0Q2VsbCAgICpsOwotCVJlbGlkcwkJ bGl2ZV9jaGlsZHJlbiA9IE5VTEw7Ci0JYm9vbAkJZGlkX3BydW5pbmcgPSBmYWxzZTsKIAog CS8qIEd1YXJkIGFnYWluc3Qgc3RhY2sgb3ZlcmZsb3cgZHVlIHRvIG92ZXJseSBkZWVwIGlu aGVyaXRhbmNlIHRyZWUuICovCiAJY2hlY2tfc3RhY2tfZGVwdGgoKTsKQEAgLTk2NiwyMSAr OTYxLDYgQEAgc2V0X2FwcGVuZF9yZWxfc2l6ZShQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0 SW5mbyAqcmVsLAogCQlyZWwtPnBhcnRpdGlvbmVkX2NoaWxkX3JlbHMgPSBsaXN0X21ha2Ux X2ludChydGkpOwogCiAJLyoKLQkgKiBJZiB0aGUgcGFydGl0aW9uZWQgcmVsYXRpb24gaGFz IGFueSBiYXNlcmVzdHJpY3RpbmZvIHF1YWxzIHRoZW4gd2UKLQkgKiBhdHRlbXB0IHRvIHVz ZSB0aGVzZSBxdWFscyB0byBwcnVuZSBhd2F5IHBhcnRpdGlvbnMgdGhhdCBjYW5ub3QKLQkg KiBwb3NzaWJseSBjb250YWluIGFueSB0dXBsZXMgbWF0Y2hpbmcgdGhlc2UgcXVhbHMuICBJ biB0aGlzIGNhc2Ugd2UnbGwKLQkgKiBzdG9yZSB0aGUgcmVsaWRzIG9mIGFsbCBwYXJ0aXRp b25zIHdoaWNoIGNvdWxkIHBvc3NpYmx5IGNvbnRhaW4gYQotCSAqIG1hdGNoaW5nIHR1cGxl LCBhbmQgc2tpcCBhbnl0aGluZyBlbHNlIGluIHRoZSBsb29wIGJlbG93LgotCSAqLwotCWlm IChlbmFibGVfcGFydGl0aW9uX3BydW5pbmcgJiYKLQkJcnRlLT5yZWxraW5kID09IFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUgJiYKLQkJcmVsLT5iYXNlcmVzdHJpY3RpbmZvICE9IE5J TCkKLQl7Ci0JCWxpdmVfY2hpbGRyZW4gPSBwcnVuZV9hcHBlbmRfcmVsX3BhcnRpdGlvbnMo cmVsKTsKLQkJZGlkX3BydW5pbmcgPSB0cnVlOwotCX0KLQotCS8qCiAJICogSWYgdGhpcyBp cyBhIHBhcnRpdGlvbmVkIGJhc2VyZWwsIHNldCB0aGUgY29uc2lkZXJfcGFydGl0aW9ud2lz ZV9qb2luCiAJICogZmxhZzsgY3VycmVudGx5LCB3ZSBvbmx5IGNvbnNpZGVyIHBhcnRpdGlv bndpc2Ugam9pbnMgd2l0aCB0aGUgYmFzZXJlbAogCSAqIGlmIGl0cyB0YXJnZXRsaXN0IGRv ZXNuJ3QgY29udGFpbiBhIHdob2xlLXJvdyBWYXIuCkBAIC0xMDM0LDMwICsxMDE0LDExIEBA IHNldF9hcHBlbmRfcmVsX3NpemUoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJl bCwKIAkJY2hpbGRyZWwgPSBmaW5kX2Jhc2VfcmVsKHJvb3QsIGNoaWxkUlRpbmRleCk7CiAJ CUFzc2VydChjaGlsZHJlbC0+cmVsb3B0a2luZCA9PSBSRUxPUFRfT1RIRVJfTUVNQkVSX1JF TCk7CiAKLQkJaWYgKGRpZF9wcnVuaW5nICYmICFibXNfaXNfbWVtYmVyKGFwcGluZm8tPmNo aWxkX3JlbGlkLCBsaXZlX2NoaWxkcmVuKSkKLQkJewotCQkJLyogVGhpcyBwYXJ0aXRpb24g d2FzIHBydW5lZDsgc2tpcCBpdC4gKi8KLQkJCXNldF9kdW1teV9yZWxfcGF0aGxpc3QoY2hp bGRyZWwpOworCQkvKiBidWlsZF9zaW1wbGVfcmVsIG1heSBoYXZlIGFscmVhZHkgcHJvdmVu IHRoZSBjaGlsZCB0byBiZSBkdW1teS4gKi8KKwkJaWYgKElTX0RVTU1ZX1JFTChjaGlsZHJl bCkpCiAJCQljb250aW51ZTsKLQkJfQotCi0JCS8qCi0JCSAqIFdlIGhhdmUgdG8gY29weSB0 aGUgcGFyZW50J3MgdGFyZ2V0bGlzdCBhbmQgcXVhbHMgdG8gdGhlIGNoaWxkLAotCQkgKiB3 aXRoIGFwcHJvcHJpYXRlIHN1YnN0aXR1dGlvbiBvZiB2YXJpYWJsZXMuICBJZiBhbnkgY29u c3RhbnQgZmFsc2UKLQkJICogb3IgTlVMTCBjbGF1c2VzIHR1cm4gdXAsIHdlIGNhbiBkaXNy ZWdhcmQgdGhlIGNoaWxkIHJpZ2h0IGF3YXkuCi0JCSAqIElmIG5vdCwgd2UgY2FuIGFwcGx5 IGNvbnN0cmFpbnQgZXhjbHVzaW9uIHdpdGgganVzdCB0aGUKLQkJICogYmFzZXJlc3RyaWN0 aW5mbyBxdWFscy4KLQkJICovCi0JCWlmICghYXBwbHlfY2hpbGRfYmFzZXF1YWxzKHJvb3Qs IHJlbCwgY2hpbGRyZWwsIGNoaWxkUlRFLCBhcHBpbmZvKSkKLQkJewotCQkJLyoKLQkJCSAq IFNvbWUgcmVzdHJpY3Rpb24gY2xhdXNlIHJlZHVjZWQgdG8gY29uc3RhbnQgRkFMU0Ugb3Ig TlVMTCBhZnRlcgotCQkJICogc3Vic3RpdHV0aW9uLCBzbyB0aGlzIGNoaWxkIG5lZWQgbm90 IGJlIHNjYW5uZWQuCi0JCQkgKi8KLQkJCXNldF9kdW1teV9yZWxfcGF0aGxpc3QoY2hpbGRy ZWwpOwotCQkJY29udGludWU7Ci0JCX0KIAorCQkvKiBBcHBseSBjb25zdHJhaW50IGV4Y2x1 c2lvbi4gKi8KIAkJaWYgKHJlbGF0aW9uX2V4Y2x1ZGVkX2J5X2NvbnN0cmFpbnRzKHJvb3Qs IGNoaWxkcmVsLCBjaGlsZFJURSkpCiAJCXsKIAkJCS8qCkBAIC0xMDY5LDcgKzEwMzAsOCBA QCBzZXRfYXBwZW5kX3JlbF9zaXplKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpy ZWwsCiAJCX0KIAogCQkvKgotCQkgKiBDRSBmYWlsZWQsIHNvIGZpbmlzaCBjb3B5aW5nL21v ZGlmeWluZyB0YXJnZXRsaXN0IGFuZCBqb2luIHF1YWxzLgorCQkgKiBDb25zdHJhaW50IGV4 Y2x1c2lvbiBmYWlsZWQsIHNvIGZpbmlzaCBjb3B5aW5nL21vZGlmeWluZyB0YXJnZXRsaXN0 CisJCSAqIGFuZCBqb2luIHF1YWxzLgogCQkgKgogCQkgKiBOQjogdGhlIHJlc3VsdGluZyBj aGlsZHJlbC0+cmVsdGFyZ2V0LT5leHBycyBtYXkgY29udGFpbiBhcmJpdHJhcnkKIAkJICog ZXhwcmVzc2lvbnMsIHdoaWNoIG90aGVyd2lzZSB3b3VsZCBub3Qgb2NjdXIgaW4gYSByZWwn cyB0YXJnZXRsaXN0LgpAQCAtMzU2MiwxMzQgKzM1MjQsNiBAQCBnZW5lcmF0ZV9wYXJ0aXRp b253aXNlX2pvaW5fcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJlbCkK IAlsaXN0X2ZyZWUobGl2ZV9jaGlsZHJlbik7CiB9CiAKLS8qCi0gKiBhcHBseV9jaGlsZF9i YXNlcXVhbHMKLSAqCQlQb3B1bGF0ZSBjaGlsZHJlbCdzIHF1YWxzIGJhc2VkIG9uIHJlbCdz IHF1YWxzLCB0cmFuc2xhdGluZyB0aGVtIHVzaW5nCi0gKgkJYXBwaW5mby4KLSAqCi0gKiBJ ZiBhbnkgb2YgdGhlIHJlc3VsdGluZyBjbGF1c2VzIGV2YWx1YXRlIHRvIGZhbHNlIG9yIE5V TEwsIHdlIHJldHVybiBmYWxzZQotICogYW5kIGRvbid0IGFwcGx5IGFueSBxdWFscy4gIENh bGxlciBjYW4gbWFyayB0aGUgcmVsYXRpb24gYXMgYSBkdW1teSByZWwgaW4KLSAqIHRoaXMg Y2FzZSwgc2luY2UgaXQgbmVlZG4ndCBiZSBzY2FubmVkLgotICoKLSAqIElmIGFueSByZXN1 bHRpbmcgY2xhdXNlcyBldmFsdWF0ZSB0byB0cnVlLCB0aGV5J3JlIHVubmVjZXNzYXJ5IGFu ZCB3ZSBkb24ndAotICogYXBwbHkgdGhlbi4KLSAqLwotc3RhdGljIGJvb2wKLWFwcGx5X2No aWxkX2Jhc2VxdWFscyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsLAotCQkJ CQkgIFJlbE9wdEluZm8gKmNoaWxkcmVsLCBSYW5nZVRibEVudHJ5ICpjaGlsZFJURSwKLQkJ CQkJICBBcHBlbmRSZWxJbmZvICphcHBpbmZvKQotewotCUxpc3QJICAgKmNoaWxkcXVhbHM7 Ci0JSW5kZXgJCWNxX21pbl9zZWN1cml0eTsKLQlMaXN0Q2VsbCAgICpsYzsKLQotCS8qCi0J ICogVGhlIGNoaWxkIHJlbCdzIHRhcmdldGxpc3QgbWlnaHQgY29udGFpbiBub24tVmFyIGV4 cHJlc3Npb25zLCB3aGljaAotCSAqIG1lYW5zIHRoYXQgc3Vic3RpdHV0aW9uIGludG8gdGhl IHF1YWxzIGNvdWxkIHByb2R1Y2Ugb3Bwb3J0dW5pdGllcyBmb3IKLQkgKiBjb25zdC1zaW1w bGlmaWNhdGlvbiwgYW5kIHBlcmhhcHMgZXZlbiBwc2V1ZG9jb25zdGFudCBxdWFscy4gVGhl cmVmb3JlLAotCSAqIHRyYW5zZm9ybSBlYWNoIFJlc3RyaWN0SW5mbyBzZXBhcmF0ZWx5IHRv IHNlZSBpZiBpdCByZWR1Y2VzIHRvIGEKLQkgKiBjb25zdGFudCBvciBwc2V1ZG9jb25zdGFu dC4gIChXZSBtdXN0IHByb2Nlc3MgdGhlbSBzZXBhcmF0ZWx5IHRvIGtlZXAKLQkgKiB0cmFj ayBvZiB0aGUgc2VjdXJpdHkgbGV2ZWwgb2YgZWFjaCBxdWFsLikKLQkgKi8KLQljaGlsZHF1 YWxzID0gTklMOwotCWNxX21pbl9zZWN1cml0eSA9IFVJTlRfTUFYOwotCWZvcmVhY2gobGMs IHJlbC0+YmFzZXJlc3RyaWN0aW5mbykKLQl7Ci0JCVJlc3RyaWN0SW5mbyAqcmluZm8gPSAo UmVzdHJpY3RJbmZvICopIGxmaXJzdChsYyk7Ci0JCU5vZGUJICAgKmNoaWxkcXVhbDsKLQkJ TGlzdENlbGwgICAqbGMyOwotCi0JCUFzc2VydChJc0EocmluZm8sIFJlc3RyaWN0SW5mbykp OwotCQljaGlsZHF1YWwgPSBhZGp1c3RfYXBwZW5kcmVsX2F0dHJzKHJvb3QsCi0JCQkJCQkJ CQkJICAgKE5vZGUgKikgcmluZm8tPmNsYXVzZSwKLQkJCQkJCQkJCQkgICAxLCAmYXBwaW5m byk7Ci0JCWNoaWxkcXVhbCA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnMocm9vdCwgY2hpbGRx dWFsKTsKLQkJLyogY2hlY2sgZm9yIGZsYXQtb3V0IGNvbnN0YW50ICovCi0JCWlmIChjaGls ZHF1YWwgJiYgSXNBKGNoaWxkcXVhbCwgQ29uc3QpKQotCQl7Ci0JCQlpZiAoKChDb25zdCAq KSBjaGlsZHF1YWwpLT5jb25zdGlzbnVsbCB8fAotCQkJCSFEYXR1bUdldEJvb2woKChDb25z dCAqKSBjaGlsZHF1YWwpLT5jb25zdHZhbHVlKSkKLQkJCXsKLQkJCQkvKiBSZXN0cmljdGlv biByZWR1Y2VzIHRvIGNvbnN0YW50IEZBTFNFIG9yIE5VTEwgKi8KLQkJCQlyZXR1cm4gZmFs c2U7Ci0JCQl9Ci0JCQkvKiBSZXN0cmljdGlvbiByZWR1Y2VzIHRvIGNvbnN0YW50IFRSVUUs IHNvIGRyb3AgaXQgKi8KLQkJCWNvbnRpbnVlOwotCQl9Ci0JCS8qIG1pZ2h0IGhhdmUgZ290 dGVuIGFuIEFORCBjbGF1c2UsIGlmIHNvIGZsYXR0ZW4gaXQgKi8KLQkJZm9yZWFjaChsYzIs IG1ha2VfYW5kc19pbXBsaWNpdCgoRXhwciAqKSBjaGlsZHF1YWwpKQotCQl7Ci0JCQlOb2Rl CSAgICpvbmVjcSA9IChOb2RlICopIGxmaXJzdChsYzIpOwotCQkJYm9vbAkJcHNldWRvY29u c3RhbnQ7Ci0KLQkJCS8qIGNoZWNrIGZvciBwc2V1ZG9jb25zdGFudCAobm8gVmFycyBvciB2 b2xhdGlsZSBmdW5jdGlvbnMpICovCi0JCQlwc2V1ZG9jb25zdGFudCA9Ci0JCQkJIWNvbnRh aW5fdmFyc19vZl9sZXZlbChvbmVjcSwgMCkgJiYKLQkJCQkhY29udGFpbl92b2xhdGlsZV9m dW5jdGlvbnMob25lY3EpOwotCQkJaWYgKHBzZXVkb2NvbnN0YW50KQotCQkJewotCQkJCS8q IHRlbGwgY3JlYXRlcGxhbi5jIHRvIGNoZWNrIGZvciBnYXRpbmcgcXVhbHMgKi8KLQkJCQly b290LT5oYXNQc2V1ZG9Db25zdGFudFF1YWxzID0gdHJ1ZTsKLQkJCX0KLQkJCS8qIHJlY29u c3RpdHV0ZSBSZXN0cmljdEluZm8gd2l0aCBhcHByb3ByaWF0ZSBwcm9wZXJ0aWVzICovCi0J CQljaGlsZHF1YWxzID0gbGFwcGVuZChjaGlsZHF1YWxzLAotCQkJCQkJCQkgbWFrZV9yZXN0 cmljdGluZm8oKEV4cHIgKikgb25lY3EsCi0JCQkJCQkJCQkJCQkgICByaW5mby0+aXNfcHVz aGVkX2Rvd24sCi0JCQkJCQkJCQkJCQkgICByaW5mby0+b3V0ZXJqb2luX2RlbGF5ZWQsCi0J CQkJCQkJCQkJCQkgICBwc2V1ZG9jb25zdGFudCwKLQkJCQkJCQkJCQkJCSAgIHJpbmZvLT5z ZWN1cml0eV9sZXZlbCwKLQkJCQkJCQkJCQkJCSAgIE5VTEwsIE5VTEwsIE5VTEwpKTsKLQkJ CS8qIHRyYWNrIG1pbmltdW0gc2VjdXJpdHkgbGV2ZWwgYW1vbmcgY2hpbGQgcXVhbHMgKi8K LQkJCWNxX21pbl9zZWN1cml0eSA9IE1pbihjcV9taW5fc2VjdXJpdHksIHJpbmZvLT5zZWN1 cml0eV9sZXZlbCk7Ci0JCX0KLQl9Ci0KLQkvKgotCSAqIEluIGFkZGl0aW9uIHRvIHRoZSBx dWFscyBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50LCB3ZSBtaWdodCBoYXZlCi0JICogc2Vj dXJpdHlRdWFscyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwYXJ0aWN1bGFyIGNoaWxkIG5vZGUu IChDdXJyZW50bHkKLQkgKiB0aGlzIGNhbiBvbmx5IGhhcHBlbiBpbiBhcHBlbmRyZWxzIG9y aWdpbmF0aW5nIGZyb20gVU5JT04gQUxMOwotCSAqIGluaGVyaXRhbmNlIGNoaWxkIHRhYmxl cyBkb24ndCBoYXZlIHRoZWlyIG93biBzZWN1cml0eVF1YWxzLCBzZWUKLQkgKiBleHBhbmRf aW5oZXJpdGVkX3J0ZW50cnkoKS4pCVB1bGwgYW55IHN1Y2ggc2VjdXJpdHlRdWFscyB1cCBp bnRvIHRoZQotCSAqIGJhc2VyZXN0cmljdGluZm8gZm9yIHRoZSBjaGlsZC4gIFRoaXMgaXMg c2ltaWxhciB0bwotCSAqIHByb2Nlc3Nfc2VjdXJpdHlfYmFycmllcl9xdWFscygpIGZvciB0 aGUgcGFyZW50IHJlbCwgZXhjZXB0IHRoYXQgd2UKLQkgKiBjYW4ndCBtYWtlIGFueSBnZW5l cmFsIGRlZHVjdGlvbnMgZnJvbSBzdWNoIHF1YWxzLCBzaW5jZSB0aGV5IGRvbid0Ci0JICog aG9sZCBmb3IgdGhlIHdob2xlIGFwcGVuZHJlbC4KLQkgKi8KLQlpZiAoY2hpbGRSVEUtPnNl Y3VyaXR5UXVhbHMpCi0JewotCQlJbmRleAkJc2VjdXJpdHlfbGV2ZWwgPSAwOwotCi0JCWZv cmVhY2gobGMsIGNoaWxkUlRFLT5zZWN1cml0eVF1YWxzKQotCQl7Ci0JCQlMaXN0CSAgICpx dWFsc2V0ID0gKExpc3QgKikgbGZpcnN0KGxjKTsKLQkJCUxpc3RDZWxsICAgKmxjMjsKLQot CQkJZm9yZWFjaChsYzIsIHF1YWxzZXQpCi0JCQl7Ci0JCQkJRXhwcgkgICAqcXVhbCA9IChF eHByICopIGxmaXJzdChsYzIpOwotCi0JCQkJLyogbm90IGxpa2VseSB0aGF0IHdlJ2Qgc2Vl IGNvbnN0YW50cyBoZXJlLCBzbyBubyBjaGVjayAqLwotCQkJCWNoaWxkcXVhbHMgPSBsYXBw ZW5kKGNoaWxkcXVhbHMsCi0JCQkJCQkJCQkgbWFrZV9yZXN0cmljdGluZm8ocXVhbCwKLQkJ CQkJCQkJCQkJCQkgICB0cnVlLCBmYWxzZSwgZmFsc2UsCi0JCQkJCQkJCQkJCQkJICAgc2Vj dXJpdHlfbGV2ZWwsCi0JCQkJCQkJCQkJCQkJICAgTlVMTCwgTlVMTCwgTlVMTCkpOwotCQkJ CWNxX21pbl9zZWN1cml0eSA9IE1pbihjcV9taW5fc2VjdXJpdHksIHNlY3VyaXR5X2xldmVs KTsKLQkJCX0KLQkJCXNlY3VyaXR5X2xldmVsKys7Ci0JCX0KLQkJQXNzZXJ0KHNlY3VyaXR5 X2xldmVsIDw9IHJvb3QtPnF1YWxfc2VjdXJpdHlfbGV2ZWwpOwotCX0KLQotCS8qCi0JICog T0ssIHdlJ3ZlIGdvdCBhbGwgdGhlIGJhc2VyZXN0cmljdGluZm8gcXVhbHMgZm9yIHRoaXMg Y2hpbGQuCi0JICovCi0JY2hpbGRyZWwtPmJhc2VyZXN0cmljdGluZm8gPSBjaGlsZHF1YWxz OwotCWNoaWxkcmVsLT5iYXNlcmVzdHJpY3RfbWluX3NlY3VyaXR5ID0gY3FfbWluX3NlY3Vy aXR5OwotCi0JcmV0dXJuIHRydWU7Ci19Ci0KIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgog ICoJCQlERUJVRyBTVVBQT1JUCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9qb2lucmVscy5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BhdGgvam9pbnJlbHMuYwppbmRleCA5NjA0YTU0Yjc3Li44M2MyNGE0 NWI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9qb2lucmVscy5j CisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRoL2pvaW5yZWxzLmMKQEAgLTE0LDYg KzE0LDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nl c3MvdGFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9u b2RlRnVuY3MuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvYXBwZW5kaW5mby5oIgpAQCAtMjEs NiArMjIsOCBAQAogI2luY2x1ZGUgIm9wdGltaXplci9qb2luaW5mby5oIgogI2luY2x1ZGUg Im9wdGltaXplci9wYXRobm9kZS5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wYXRocy5oIgor I2luY2x1ZGUgIm9wdGltaXplci90bGlzdC5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZXRy ZWUuaCIKICNpbmNsdWRlICJwYXJ0aXRpb25pbmcvcGFydGJvdW5kcy5oIgogI2luY2x1ZGUg InV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCkBAIC01 MSw2ICs1NCw5IEBAIHN0YXRpYyBTcGVjaWFsSm9pbkluZm8gKmJ1aWxkX2NoaWxkX2pvaW5f c2ppbmZvKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJUmVsaWRzIGxlZnRfcmVsaWRzLCBS ZWxpZHMgcmlnaHRfcmVsaWRzKTsKIHN0YXRpYyBpbnQgbWF0Y2hfZXhwcl90b19wYXJ0aXRp b25fa2V5cyhFeHByICpleHByLCBSZWxPcHRJbmZvICpyZWwsCiAJCQkJCQkJIGJvb2wgc3Ry aWN0X29wKTsKK3N0YXRpYyBSZWxPcHRJbmZvICpidWlsZF9kdW1teV9wYXJ0aXRpb25fcmVs KFBsYW5uZXJJbmZvICpyb290LAorCQkJCQkJCQkJUmVsT3B0SW5mbyAqcGFyZW50LCBSZWxh dGlvbiBwYXJlbnRyZWwsCisJCQkJCQkJCQlpbnQgcGFydGlkeCk7CiAKIAogLyoKQEAgLTEz NDYsNiArMTM1Miw4IEBAIHRyeV9wYXJ0aXRpb253aXNlX2pvaW4oUGxhbm5lckluZm8gKnJv b3QsIFJlbE9wdEluZm8gKnJlbDEsIFJlbE9wdEluZm8gKnJlbDIsCiAJCQkJCSAgIFJlbE9w dEluZm8gKmpvaW5yZWwsIFNwZWNpYWxKb2luSW5mbyAqcGFyZW50X3NqaW5mbywKIAkJCQkJ ICAgTGlzdCAqcGFyZW50X3Jlc3RyaWN0bGlzdCkKIHsKKwlSZWxhdGlvbgliYXNlcmVsMSA9 IE5VTEwsCisJCQkJYmFzZXJlbDIgPSBOVUxMOwogCWJvb2wJCXJlbDFfaXNfc2ltcGxlID0g SVNfU0lNUExFX1JFTChyZWwxKTsKIAlib29sCQlyZWwyX2lzX3NpbXBsZSA9IElTX1NJTVBM RV9SRUwocmVsMik7CiAJaW50CQkJbnBhcnRzOwpAQCAtMTM5Niw2ICsxNDA0LDE4IEBAIHRy eV9wYXJ0aXRpb253aXNlX2pvaW4oUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJl bDEsIFJlbE9wdEluZm8gKnJlbDIsCiAKIAlucGFydHMgPSBqb2lucmVsLT5ucGFydHM7CiAK KwlpZiAocmVsMV9pc19zaW1wbGUpCisJeworCQlSYW5nZVRibEVudHJ5ICpydGUgPSBwbGFu bmVyX3J0X2ZldGNoKHJlbDEtPnJlbGlkLCByb290KTsKKworCQliYXNlcmVsMSA9IHRhYmxl X29wZW4ocnRlLT5yZWxpZCwgTm9Mb2NrKTsKKwl9CisJaWYgKHJlbDJfaXNfc2ltcGxlKQor CXsKKwkJUmFuZ2VUYmxFbnRyeSAqcnRlID0gcGxhbm5lcl9ydF9mZXRjaChyZWwyLT5yZWxp ZCwgcm9vdCk7CisKKwkJYmFzZXJlbDIgPSB0YWJsZV9vcGVuKHJ0ZS0+cmVsaWQsIE5vTG9j ayk7CisJfQogCS8qCiAJICogQ3JlYXRlIGNoaWxkLWpvaW4gcmVsYXRpb25zIGZvciB0aGlz IHBhcnRpdGlvbmVkIGpvaW4sIGlmIHRob3NlIGRvbid0CiAJICogZXhpc3QuIEFkZCBwYXRo cyB0byBjaGlsZC1qb2lucyBmb3IgYSBwYWlyIG9mIGNoaWxkIHJlbGF0aW9ucwpAQCAtMTQx Miw2ICsxNDMyLDEzIEBAIHRyeV9wYXJ0aXRpb253aXNlX2pvaW4oUGxhbm5lckluZm8gKnJv b3QsIFJlbE9wdEluZm8gKnJlbDEsIFJlbE9wdEluZm8gKnJlbDIsCiAJCUFwcGVuZFJlbElu Zm8gKiphcHBpbmZvczsKIAkJaW50CQkJbmFwcGluZm9zOwogCisJCWlmIChyZWwxX2lzX3Np bXBsZSAmJiBjaGlsZF9yZWwxID09IE5VTEwpCisJCQljaGlsZF9yZWwxID0gYnVpbGRfZHVt bXlfcGFydGl0aW9uX3JlbChyb290LCByZWwxLCBiYXNlcmVsMSwKKwkJCQkJCQkJCQkJCSAg IGNudF9wYXJ0cyk7CisJCWlmIChyZWwyX2lzX3NpbXBsZSAmJiBjaGlsZF9yZWwyID09IE5V TEwpCisJCQljaGlsZF9yZWwyID0gYnVpbGRfZHVtbXlfcGFydGl0aW9uX3JlbChyb290LCBy ZWwyLCBiYXNlcmVsMiwKKwkJCQkJCQkJCQkJCSAgIGNudF9wYXJ0cyk7CisKIAkJLyoKIAkJ ICogSWYgYSBjaGlsZCB0YWJsZSBoYXMgY29uc2lkZXJfcGFydGl0aW9ud2lzZV9qb2luPWZh bHNlLCBpdCBtZWFucwogCQkgKiB0aGF0IGl0J3MgYSBkdW1teSByZWxhdGlvbiBmb3Igd2hp Y2ggd2Ugc2tpcHBlZCBzZXR0aW5nIHVwIHRsaXN0CkBAIC0xNDcyLDYgKzE0OTksMTEgQEAg dHJ5X3BhcnRpdGlvbndpc2Vfam9pbihQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAq cmVsMSwgUmVsT3B0SW5mbyAqcmVsMiwKIAkJCQkJCQkJCWNoaWxkX2pvaW5yZWwsIGNoaWxk X3NqaW5mbywKIAkJCQkJCQkJCWNoaWxkX3Jlc3RyaWN0bGlzdCk7CiAJfQorCisJaWYgKGJh c2VyZWwxKQorCQl0YWJsZV9jbG9zZShiYXNlcmVsMSwgTm9Mb2NrKTsKKwlpZiAoYmFzZXJl bDIpCisJCXRhYmxlX2Nsb3NlKGJhc2VyZWwyLCBOb0xvY2spOwogfQogCiAvKgpAQCAtMTQ5 MCw4ICsxNTIyLDE0IEBAIHVwZGF0ZV9jaGlsZF9yZWxfaW5mbyhQbGFubmVySW5mbyAqcm9v dCwKIAkJCQkJCQkgICAoTm9kZSAqKSByZWwtPnJlbHRhcmdldC0+ZXhwcnMsCiAJCQkJCQkJ ICAgMSwgJmFwcGluZm8pOwogCi0JLyogTWFrZSBjaGlsZCBlbnRyaWVzIGluIHRoZSBFcXVp dmFsZW5jZUNsYXNzIGFzIHdlbGwgKi8KLQlpZiAocmVsLT5oYXNfZWNsYXNzX2pvaW5zIHx8 IGhhc191c2VmdWxfcGF0aGtleXMocm9vdCwgcmVsKSkKKwkvKgorCSAqIE1ha2UgY2hpbGQg ZW50cmllcyBpbiB0aGUgRXF1aXZhbGVuY2VDbGFzcyBhcyB3ZWxsLiAgSWYgdGhlIGNoaWxk cmVsCisJICogYXBwZWFycyB0byBiZSBhIGR1bW15IG9uZSAob25lIGJ1aWx0IGJ5IGJ1aWxk X2R1bW15X3BhcnRpdGlvbl9yZWwoKSksCisJICogbm8gbmVlZCB0byBtYWtlIGFueSBuZXcg ZW50cmllcywgYmVjYXVzZSBhbnl0aGluZyB0aGF0IHdvdWxkIG5lZWQgdGhvc2UKKwkgKiBj YW4gaW5zdGVhZCB1c2UgdGhlIHBhcmVudCdzIChyZWwpLgorCSAqLworCWlmIChjaGlsZHJl bC0+cmVsaWQgIT0gcmVsLT5yZWxpZCAmJgorCQkocmVsLT5oYXNfZWNsYXNzX2pvaW5zIHx8 IGhhc191c2VmdWxfcGF0aGtleXMocm9vdCwgcmVsKSkpCiAJCWFkZF9jaGlsZF9yZWxfZXF1 aXZhbGVuY2VzKHJvb3QsIGFwcGluZm8sIHJlbCwgY2hpbGRyZWwpOwogCWNoaWxkcmVsLT5o YXNfZWNsYXNzX2pvaW5zID0gcmVsLT5oYXNfZWNsYXNzX2pvaW5zOwogfQpAQCAtMTcwMiwz ICsxNzQwLDUzIEBAIG1hdGNoX2V4cHJfdG9fcGFydGl0aW9uX2tleXMoRXhwciAqZXhwciwg UmVsT3B0SW5mbyAqcmVsLCBib29sIHN0cmljdF9vcCkKIAogCXJldHVybiAtMTsKIH0KKwor LyoKKyAqIGJ1aWxkX2R1bW15X3BhcnRpdGlvbl9yZWwKKyAqCQlCdWlsZCBhIFJlbE9wdElu Zm8gYW5kIEFwcGVuZFJlbEluZm8gZm9yIGEgcHJ1bmVkIHBhcnRpdGlvbgorICoKKyAqIFRo aXMgZG9lcyBub3QgcmVzdWx0IGluIG9wZW5pbmcgdGhlIHJlbGF0aW9uIG9yIGEgcmFuZ2Ug dGFibGUgZW50cnkgYmVpbmcKKyAqIGNyZWF0ZWQuICBBbHNvLCB0aGUgUmVsT3B0SW5mbyB0 aHVzIGNyZWF0ZWQgaXMgbm90IHN0b3JlZCBhbnl3aGVyZSBlbHNlCisgKiBiZXNpZGUgdGhl IHBhcmVudCdzIHBhcnRfcmVscyBhcnJheS4KKyAqCisgKiBUaGUgb25seSByZWFzb24gdGhp cyBleGlzdHMgaXMgYmVjYXVzZSBwYXJ0aXRpb24td2lzZSBqb2luLCBpbiBzb21lIGNhc2Vz LAorICogbmVlZHMgYSBSZWxPcHRJbmZvIHRvIHJlcHJlc2VudCBhbiBlbXB0eSByZWxhdGlv biB0aGF0J3Mgb24gdGhlIG51bGxhYmxlCisgKiBzaWRlIG9mIGFuIG91dGVyIGpvaW4sIHNv IHRoYXQgYSBQYXRoIHJlcHJlc2VudGluZyB0aGUgb3V0ZXIgam9pbiBjYW4gYmUKKyAqIGNy ZWF0ZWQuCisgKi8KK3N0YXRpYyBSZWxPcHRJbmZvICoKK2J1aWxkX2R1bW15X3BhcnRpdGlv bl9yZWwoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnBhcmVudCwKKwkJCQkJCSAg UmVsYXRpb24gcGFyZW50cmVsLCBpbnQgcGFydGlkeCkKK3sKKwlSZWxPcHRJbmZvICpyZWw7 CisKKwlBc3NlcnQocGFyZW50LT5wYXJ0X3JlbHNbcGFydGlkeF0gPT0gTlVMTCk7CisKKwkv KiBDcmVhdGUgbWluaW1hbGx5IHZhbGlkLWxvb2tpbmcgUmVsT3B0SW5mbyB3aXRoIHBhcmVu dCdzIHJlbGlkLiAqLworCXJlbCA9IG1ha2VOb2RlKFJlbE9wdEluZm8pOworCXJlbC0+cmVs b3B0a2luZCA9IFJFTE9QVF9PVEhFUl9NRU1CRVJfUkVMOworCXJlbC0+cmVsaWQgPSBwYXJl bnQtPnJlbGlkOworCXJlbC0+cmVsaWRzID0gYm1zX2NvcHkocGFyZW50LT5yZWxpZHMpOwor CWlmIChwYXJlbnQtPnRvcF9wYXJlbnRfcmVsaWRzKQorCQlyZWwtPnRvcF9wYXJlbnRfcmVs aWRzID0gcGFyZW50LT50b3BfcGFyZW50X3JlbGlkczsKKwllbHNlCisJCXJlbC0+dG9wX3Bh cmVudF9yZWxpZHMgPSBibXNfY29weShwYXJlbnQtPnJlbGlkcyk7CisJcmVsLT5yZWx0YXJn ZXQgPSBjb3B5X3BhdGh0YXJnZXQocGFyZW50LT5yZWx0YXJnZXQpOworCXBhcmVudC0+cGFy dF9yZWxzW3BhcnRpZHhdID0gcmVsOworCW1hcmtfZHVtbXlfcmVsKHJlbCk7CisKKwkvKgor CSAqIE5vdyB3ZSdsbCBuZWVkIGEgKG5vLW9wKSBBcHBlbmRSZWxJbmZvIGZvciBwYXJlbnQs IGJlY2F1c2Ugd2UncmUKKwkgKiBzZXR0aW5nIHRoZSBkdW1teSBwYXJ0aXRpb24ncyByZWxp ZCB0byBiZSBzYW1lIGFzIHRoZSBwYXJlbnQncy4KKwkgKi8KKwlpZiAocm9vdC0+YXBwZW5k X3JlbF9hcnJheVtwYXJlbnQtPnJlbGlkXSA9PSBOVUxMKQorCXsKKwkJQXBwZW5kUmVsSW5m byAqYXBwaW5mbyA9IG1ha2VfYXBwZW5kX3JlbF9pbmZvKHBhcmVudHJlbCwgcGFyZW50cmVs LAorCQkJCQkJCQkJCQkJCSAgcGFyZW50LT5yZWxpZCwKKwkJCQkJCQkJCQkJCQkgIHBhcmVu dC0+cmVsaWQpOworCisJCXJvb3QtPmFwcGVuZF9yZWxfYXJyYXlbcGFyZW50LT5yZWxpZF0g PSBhcHBpbmZvOworCX0KKworCXJldHVybiByZWw7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMKaW5kZXggZjUwYzQzMjFmMy4uNmEwMjQ2YjQ3ZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtNzEwNyw2ICs3MTA3LDEwIEBAIGFw cGx5X3NjYW5qb2luX3RhcmdldF90b19wYXRocyhQbGFubmVySW5mbyAqcm9vdCwKIAkJCUxp c3QJICAgKmNoaWxkX3NjYW5qb2luX3RhcmdldHMgPSBOSUw7CiAJCQlMaXN0Q2VsbCAgICps YzsKIAorCQkJLyogU2tpcCBwcm9jZXNzaW5nIHBydW5lZCBwYXJ0aXRpb25zLiAqLworCQkJ aWYgKGNoaWxkX3JlbCA9PSBOVUxMKQorCQkJCWNvbnRpbnVlOworCiAJCQkvKiBUcmFuc2xh dGUgc2Nhbi9qb2luIHRhcmdldHMgZm9yIHRoaXMgY2hpbGQuICovCiAJCQlhcHBpbmZvcyA9 IGZpbmRfYXBwaW5mb3NfYnlfcmVsaWRzKHJvb3QsIGNoaWxkX3JlbC0+cmVsaWRzLAogCQkJ CQkJCQkJCQkgICAmbmFwcGluZm9zKTsKQEAgLTcyMDcsNiArNzIxMSwxMCBAQCBjcmVhdGVf cGFydGl0aW9ud2lzZV9ncm91cGluZ19wYXRocyhQbGFubmVySW5mbyAqcm9vdCwKIAkJUmVs T3B0SW5mbyAqY2hpbGRfZ3JvdXBlZF9yZWw7CiAJCVJlbE9wdEluZm8gKmNoaWxkX3BhcnRp YWxseV9ncm91cGVkX3JlbDsKIAorCQkvKiBTa2lwIHByb2Nlc3NpbmcgcHJ1bmVkIHBhcnRp dGlvbnMuICovCisJCWlmIChjaGlsZF9pbnB1dF9yZWwgPT0gTlVMTCkKKwkJCWNvbnRpbnVl OworCiAJCS8qIElucHV0IGNoaWxkIHJlbCBtdXN0IGhhdmUgYSBwYXRoICovCiAJCUFzc2Vy dChjaGlsZF9pbnB1dF9yZWwtPnBhdGhsaXN0ICE9IE5JTCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2luaGVyaXQuYyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci91dGlsL2luaGVyaXQuYwppbmRleCAyNDExMWM0NmU5Li41ZDcwMDVkZTk2IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9pbmhlcml0LmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvaW5oZXJpdC5jCkBAIC0yNiw2ICsyNiw3IEBACiAj aW5jbHVkZSAib3B0aW1pemVyL3BsYW5uZXIuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcHJl cC5oIgogI2luY2x1ZGUgInBhcnRpdGlvbmluZy9wYXJ0ZGVzYy5oIgorI2luY2x1ZGUgInBh cnRpdGlvbmluZy9wYXJ0cHJ1bmUuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKIAogCkBA IC0yMzMsNiArMjM0LDcgQEAgZXhwYW5kX3BhcnRpdGlvbmVkX3J0ZW50cnkoUGxhbm5lcklu Zm8gKnJvb3QsIFJhbmdlVGJsRW50cnkgKnBhcmVudHJ0ZSwKIAkJCQkJCSAgIFBsYW5Sb3dN YXJrICp0b3BfcGFyZW50cmMsIExPQ0tNT0RFIGxvY2ttb2RlLAogCQkJCQkJICAgTGlzdCAq KmFwcGluZm9zKQogeworCUJpdG1hcHNldCAgKmxpdmVfcGFydHMgPSAwOwogCWludAkJCWk7 CiAJUmFuZ2VUYmxFbnRyeSAqY2hpbGRydGU7CiAJSW5kZXgJCWNoaWxkUlRpbmRleDsKQEAg LTI3MywyMiArMjc1LDM0IEBAIGV4cGFuZF9wYXJ0aXRpb25lZF9ydGVudHJ5KFBsYW5uZXJJ bmZvICpyb290LCBSYW5nZVRibEVudHJ5ICpwYXJlbnRydGUsCiAJCXJlbCA9IGZpbmRfYmFz ZV9yZWwocm9vdCwgcGFyZW50UlRpbmRleCk7CiAKIAkJLyoKKwkJICogUGVyZm9ybSBwYXJ0 aXRpb24gcHJ1bmluZyB1c2luZyByZXN0cmljdGlvbiBjbGF1c2VzIGFzc2lnbmVkIHRvCisJ CSAqIHBhcmVudCByZWxhdGlvbi4gIGxpdmVfcGFydHMgd2lsbCBjb250YWluIFBhcnRpdGlv bkRlc2MgaW5kZXhlcworCQkgKiBvZiBwYXJ0aXRpb25zIHRoYXQgc3Vydml2ZSBwcnVuaW5n LiAgQmVsb3csIHdlIHdpbGwgaW5pdGlhbGl6ZQorCQkgKiBjaGlsZCBvYmplY3RzIGZvciB0 aGUgc3Vydml2aW5nIHBhcnRpdGlvbnMuCisJCSAqLworCQlpZiAocGFydGRlc2MtPm5wYXJ0 cyA+IDApCisJCQlsaXZlX3BhcnRzID0gcHJ1bmVfYXBwZW5kX3JlbF9wYXJ0aXRpb25zKHJl bCk7CisKKwkJLyoKIAkJICogRXhwYW5kIHNpbXBsZV9yZWxfYXJyYXkgYW5kIGZyaWVuZHMg dG8gaG9sZCBjaGlsZCBvYmplY3RzLgogCQkgKgogCQkgKiBXZSdsbCBuZWVkIG5wYXJ0cyAr IDEgbmV3IHNsb3RzLCBiZWNhdXNlIHdlIGFsc28gY29uc2lkZXIgcGFyZW50CiAJCSAqIGFz IGEgY2hpbGQgcmVsYXRpb24uIEZJWE1FOiBubyBsb25nZXIgYWRkIHRoZSBwYXJlbnQgYXMg Y2hpbGQKIAkJICovCi0JCWV4cGFuZF9wbGFubmVyX2FycmF5cyhyb290LCBwYXJ0ZGVzYy0+ bnBhcnRzICsgMSk7CisJCWV4cGFuZF9wbGFubmVyX2FycmF5cyhyb290LCBibXNfbnVtX21l bWJlcnMobGl2ZV9wYXJ0cykgKyAxKTsKIAogCQkvKgogCQkgKiBXZSBhbHNvIHN0b3JlIHBh cnRpdGlvbiBSZWxPcHRJbmZvIHBvaW50ZXJzIGluIHRoZSBwYXJlbnQKLQkJICogcmVsYXRp b24uCisJCSAqIHJlbGF0aW9uLiAgU2luY2Ugd2UncmUgcGFsbG9jMCdpbmcsIHNsb3RzIGNv cnJlc3BvbmRpbmcgdG8KKwkJICogcHJ1bmVkIHBhcnRpdGlvbnMgd2lsbCBjb250YWluIE5V TEwuCiAJCSAqLwogCQlBc3NlcnQocmVsLT5wYXJ0X3JlbHMgPT0gTlVMTCk7CiAJCWlmIChw YXJ0ZGVzYy0+bnBhcnRzID4gMCkKIAkJCXJlbC0+cGFydF9yZWxzID0gKFJlbE9wdEluZm8g KiopIHBhbGxvYzAocmVsLT5ucGFydHMgKgogCQkJCQkJCQkJCQkJCSBzaXplb2YoUmVsT3B0 SW5mbyAqKSk7CiAJfQorCWVsc2UKKwkJbGl2ZV9wYXJ0cyA9IGJtc19hZGRfcmFuZ2UoTlVM TCwgMCwgcGFydGRlc2MtPm5wYXJ0cyAtIDEpOwogCiAJLyogRmlyc3QgZXhwYW5kIHRoZSBw YXJ0aXRpb25lZCB0YWJsZSBpdHNlbGYuICovCiAJZXhwYW5kX3NpbmdsZV9pbmhlcml0YW5j ZV9jaGlsZChyb290LCBwYXJlbnRydGUsIHBhcmVudFJUaW5kZXgsIHBhcmVudHJlbCwKQEAg LTMwNSw3ICszMTksOCBAQCBleHBhbmRfcGFydGl0aW9uZWRfcnRlbnRyeShQbGFubmVySW5m byAqcm9vdCwgUmFuZ2VUYmxFbnRyeSAqcGFyZW50cnRlLAogCQlyZXR1cm47CiAJfQogCi0J Zm9yIChpID0gMDsgaSA8IHBhcnRkZXNjLT5ucGFydHM7IGkrKykKKwlpID0gLTE7CisJd2hp bGUgKChpID0gYm1zX25leHRfbWVtYmVyKGxpdmVfcGFydHMsIGkpKSA+PSAwKQogCXsKIAkJ T2lkCQkJY2hpbGRPSUQgPSBwYXJ0ZGVzYy0+b2lkc1tpXTsKIAkJUmVsYXRpb24JY2hpbGRy ZWw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2RlLmMg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2RlLmMKaW5kZXggMGJmMDI0YjUz NS4uOThlYzkxOGViYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwv cmVsbm9kZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3JlbG5vZGUuYwpA QCAtNzAsNiArNzAsOSBAQCBzdGF0aWMgdm9pZCBidWlsZF9jaGlsZF9qb2luX3JlbHRhcmdl dChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJCSAgIFJlbE9wdEluZm8gKmNoaWxkcmVsLAog CQkJCQkJICAgaW50IG5hcHBpbmZvcywKIAkJCQkJCSAgIEFwcGVuZFJlbEluZm8gKiphcHBp bmZvcyk7CitzdGF0aWMgYm9vbCBhcHBseV9jaGlsZF9iYXNlcXVhbHMoUGxhbm5lckluZm8g KnJvb3QsIFJlbE9wdEluZm8gKnJlbCwKKwkJCQkJICBSZWxPcHRJbmZvICpjaGlsZHJlbCwK KwkJCQkJICBSYW5nZVRibEVudHJ5ICpjaGlsZFJURSwgQXBwZW5kUmVsSW5mbyAqYXBwaW5m byk7CiAKIAogLyoKQEAgLTMyNCwxMCArMzI3LDE2MiBAQCBidWlsZF9zaW1wbGVfcmVsKFBs YW5uZXJJbmZvICpyb290LCBpbnQgcmVsaWQsIFJlbE9wdEluZm8gKnBhcmVudCkKIAkJcm9v dC0+cXVhbF9zZWN1cml0eV9sZXZlbCA9IE1heChyb290LT5xdWFsX3NlY3VyaXR5X2xldmVs LAogCQkJCQkJCQkJCWxpc3RfbGVuZ3RoKHJ0ZS0+c2VjdXJpdHlRdWFscykpOwogCisJLyoK KwkgKiBDb3B5IHRoZSBwYXJlbnQncyBxdWFscyB0byB0aGUgY2hpbGQsIHdpdGggYXBwcm9w cmlhdGUgc3Vic3RpdHV0aW9uIG9mCisJICogdmFyaWFibGVzLiAgSWYgYW55IGNvbnN0YW50 IGZhbHNlIG9yIE5VTEwgY2xhdXNlcyB0dXJuIHVwLCB3ZSBjYW4KKwkgKiBkaXNyZWdhcmQg dGhlIGNoaWxkIGFzIGR1bW15IHJpZ2h0IGF3YXkuCisJICoKKwkgKiBXZSBtdXN0IGNvcHkg dGhlIHF1YWxzIG5vdywgYmVjYXVzZSBpZiB0aGUgY2hpbGQgcmVsIGhhcHBlbnMgdG8gYmUg YQorCSAqIHBhcnRpdGlvbmVkIHRhYmxlLCBleHBhbmRfcGFydGl0aW9uZWRfcnRlbnRyeSAo b3VyIGNhbGxlcikgY2FuCisJICogaW1tZWRpYXRlIHBlcmZvcm0gcGFydGl0aW9uIHBydW5u aW5nIHVzaW5nIHRoZSB0cmFuc2xhdGVkIHF1YWxzLgorCSAqLworCWlmIChwYXJlbnQpCisJ eworCQlBcHBlbmRSZWxJbmZvICphcHBpbmZvID0gcm9vdC0+YXBwZW5kX3JlbF9hcnJheVty ZWxpZF07CisKKwkJQXNzZXJ0KGFwcGluZm8gIT0gTlVMTCk7CisJCWlmICghYXBwbHlfY2hp bGRfYmFzZXF1YWxzKHJvb3QsIHBhcmVudCwgcmVsLCBydGUsIGFwcGluZm8pKQorCQl7CisJ CQkvKgorCQkJICogU29tZSByZXN0cmljdGlvbiBjbGF1c2UgcmVkdWNlZCB0byBjb25zdGFu dCBGQUxTRSBvciBOVUxMIGFmdGVyCisJCQkgKiBzdWJzdGl0dXRpb24sIHNvIHRoaXMgY2hp bGQgbmVlZCBub3QgYmUgc2Nhbm5lZC4KKwkJCSAqLworCQkJbWFya19kdW1teV9yZWwocmVs KTsKKwkJfQorCX0KKwogCXJldHVybiByZWw7CiB9CiAKIC8qCisgKiBhcHBseV9jaGlsZF9i YXNlcXVhbHMKKyAqCQlQb3B1bGF0ZSBjaGlsZHJlbCdzIHF1YWxzIGJhc2VkIG9uIHJlbCdz IHF1YWxzLCB0cmFuc2xhdGluZyB0aGVtIHVzaW5nCisgKgkJYXBwaW5mby4KKyAqCisgKiBJ ZiBhbnkgb2YgdGhlIHJlc3VsdGluZyBjbGF1c2VzIGV2YWx1YXRlIHRvIGZhbHNlIG9yIE5V TEwsIHdlIHJldHVybiBmYWxzZQorICogYW5kIGRvbid0IGFwcGx5IGFueSBxdWFscy4gIENh bGxlciBjYW4gbWFyayB0aGUgcmVsYXRpb24gYXMgYSBkdW1teSByZWwgaW4KKyAqIHRoaXMg Y2FzZSwgc2luY2UgaXQgZG9lc24ndCBuZWVkIHRvIGJlIHNjYW5uZWQuCisgKgorICogSWYg YW55IHJlc3VsdGluZyBjbGF1c2VzIGV2YWx1YXRlIHRvIHRydWUsIHRoZXkncmUgdW5uZWNl c3NhcnkgYW5kIHdlIGRvbid0CisgKiBhcHBseSB0aGVuLgorICovCitzdGF0aWMgYm9vbAor YXBwbHlfY2hpbGRfYmFzZXF1YWxzKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpy ZWwsCisJCQkJCSAgUmVsT3B0SW5mbyAqY2hpbGRyZWwsIFJhbmdlVGJsRW50cnkgKmNoaWxk UlRFLAorCQkJCQkgIEFwcGVuZFJlbEluZm8gKmFwcGluZm8pCit7CisJTGlzdAkgICAqY2hp bGRxdWFsczsKKwlJbmRleAkJY3FfbWluX3NlY3VyaXR5OworCUxpc3RDZWxsICAgKmxjOwor CisJLyoKKwkgKiBUaGUgY2hpbGQgcmVsJ3MgdGFyZ2V0bGlzdCBtaWdodCBjb250YWluIG5v bi1WYXIgZXhwcmVzc2lvbnMsIHdoaWNoCisJICogbWVhbnMgdGhhdCBzdWJzdGl0dXRpb24g aW50byB0aGUgcXVhbHMgY291bGQgcHJvZHVjZSBvcHBvcnR1bml0aWVzIGZvcgorCSAqIGNv bnN0LXNpbXBsaWZpY2F0aW9uLCBhbmQgcGVyaGFwcyBldmVuIHBzZXVkb2NvbnN0YW50IHF1 YWxzLiBUaGVyZWZvcmUsCisJICogdHJhbnNmb3JtIGVhY2ggUmVzdHJpY3RJbmZvIHNlcGFy YXRlbHkgdG8gc2VlIGlmIGl0IHJlZHVjZXMgdG8gYQorCSAqIGNvbnN0YW50IG9yIHBzZXVk b2NvbnN0YW50LiAgKFdlIG11c3QgcHJvY2VzcyB0aGVtIHNlcGFyYXRlbHkgdG8ga2VlcAor CSAqIHRyYWNrIG9mIHRoZSBzZWN1cml0eSBsZXZlbCBvZiBlYWNoIHF1YWwuKQorCSAqLwor CWNoaWxkcXVhbHMgPSBOSUw7CisJY3FfbWluX3NlY3VyaXR5ID0gVUlOVF9NQVg7CisJZm9y ZWFjaChsYywgcmVsLT5iYXNlcmVzdHJpY3RpbmZvKQorCXsKKwkJUmVzdHJpY3RJbmZvICpy aW5mbyA9IChSZXN0cmljdEluZm8gKikgbGZpcnN0KGxjKTsKKwkJTm9kZQkgICAqY2hpbGRx dWFsOworCQlMaXN0Q2VsbCAgICpsYzI7CisKKwkJQXNzZXJ0KElzQShyaW5mbywgUmVzdHJp Y3RJbmZvKSk7CisJCWNoaWxkcXVhbCA9IGFkanVzdF9hcHBlbmRyZWxfYXR0cnMocm9vdCwK KwkJCQkJCQkJCQkgICAoTm9kZSAqKSByaW5mby0+Y2xhdXNlLAorCQkJCQkJCQkJCSAgIDEs ICZhcHBpbmZvKTsKKwkJY2hpbGRxdWFsID0gZXZhbF9jb25zdF9leHByZXNzaW9ucyhyb290 LCBjaGlsZHF1YWwpOworCQkvKiBjaGVjayBmb3IgZmxhdC1vdXQgY29uc3RhbnQgKi8KKwkJ aWYgKGNoaWxkcXVhbCAmJiBJc0EoY2hpbGRxdWFsLCBDb25zdCkpCisJCXsKKwkJCWlmICgo KENvbnN0ICopIGNoaWxkcXVhbCktPmNvbnN0aXNudWxsIHx8CisJCQkJIURhdHVtR2V0Qm9v bCgoKENvbnN0ICopIGNoaWxkcXVhbCktPmNvbnN0dmFsdWUpKQorCQkJeworCQkJCS8qIFJl c3RyaWN0aW9uIHJlZHVjZXMgdG8gY29uc3RhbnQgRkFMU0Ugb3IgTlVMTCAqLworCQkJCXJl dHVybiBmYWxzZTsKKwkJCX0KKwkJCS8qIFJlc3RyaWN0aW9uIHJlZHVjZXMgdG8gY29uc3Rh bnQgVFJVRSwgc28gZHJvcCBpdCAqLworCQkJY29udGludWU7CisJCX0KKwkJLyogbWlnaHQg aGF2ZSBnb3R0ZW4gYW4gQU5EIGNsYXVzZSwgaWYgc28gZmxhdHRlbiBpdCAqLworCQlmb3Jl YWNoKGxjMiwgbWFrZV9hbmRzX2ltcGxpY2l0KChFeHByICopIGNoaWxkcXVhbCkpCisJCXsK KwkJCU5vZGUJICAgKm9uZWNxID0gKE5vZGUgKikgbGZpcnN0KGxjMik7CisJCQlib29sCQlw c2V1ZG9jb25zdGFudDsKKworCQkJLyogY2hlY2sgZm9yIHBzZXVkb2NvbnN0YW50IChubyBW YXJzIG9yIHZvbGF0aWxlIGZ1bmN0aW9ucykgKi8KKwkJCXBzZXVkb2NvbnN0YW50ID0KKwkJ CQkhY29udGFpbl92YXJzX29mX2xldmVsKG9uZWNxLCAwKSAmJgorCQkJCSFjb250YWluX3Zv bGF0aWxlX2Z1bmN0aW9ucyhvbmVjcSk7CisJCQlpZiAocHNldWRvY29uc3RhbnQpCisJCQl7 CisJCQkJLyogdGVsbCBjcmVhdGVwbGFuLmMgdG8gY2hlY2sgZm9yIGdhdGluZyBxdWFscyAq LworCQkJCXJvb3QtPmhhc1BzZXVkb0NvbnN0YW50UXVhbHMgPSB0cnVlOworCQkJfQorCQkJ LyogcmVjb25zdGl0dXRlIFJlc3RyaWN0SW5mbyB3aXRoIGFwcHJvcHJpYXRlIHByb3BlcnRp ZXMgKi8KKwkJCWNoaWxkcXVhbHMgPSBsYXBwZW5kKGNoaWxkcXVhbHMsCisJCQkJCQkJCSBt YWtlX3Jlc3RyaWN0aW5mbygoRXhwciAqKSBvbmVjcSwKKwkJCQkJCQkJCQkJCSAgIHJpbmZv LT5pc19wdXNoZWRfZG93biwKKwkJCQkJCQkJCQkJCSAgIHJpbmZvLT5vdXRlcmpvaW5fZGVs YXllZCwKKwkJCQkJCQkJCQkJCSAgIHBzZXVkb2NvbnN0YW50LAorCQkJCQkJCQkJCQkJICAg cmluZm8tPnNlY3VyaXR5X2xldmVsLAorCQkJCQkJCQkJCQkJICAgTlVMTCwgTlVMTCwgTlVM TCkpOworCQkJLyogdHJhY2sgbWluaW11bSBzZWN1cml0eSBsZXZlbCBhbW9uZyBjaGlsZCBx dWFscyAqLworCQkJY3FfbWluX3NlY3VyaXR5ID0gTWluKGNxX21pbl9zZWN1cml0eSwgcmlu Zm8tPnNlY3VyaXR5X2xldmVsKTsKKwkJfQorCX0KKworCS8qCisJICogSW4gYWRkaXRpb24g dG8gdGhlIHF1YWxzIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQsIHdlIG1pZ2h0IGhhdmUK KwkgKiBzZWN1cml0eVF1YWxzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhcnRpY3VsYXIgY2hp bGQgbm9kZS4gKEN1cnJlbnRseQorCSAqIHRoaXMgY2FuIG9ubHkgaGFwcGVuIGluIGFwcGVu ZHJlbHMgb3JpZ2luYXRpbmcgZnJvbSBVTklPTiBBTEw7CisJICogaW5oZXJpdGFuY2UgY2hp bGQgdGFibGVzIGRvbid0IGhhdmUgdGhlaXIgb3duIHNlY3VyaXR5UXVhbHMsIHNlZQorCSAq IGV4cGFuZF9pbmhlcml0ZWRfcnRlbnRyeSgpLikJUHVsbCBhbnkgc3VjaCBzZWN1cml0eVF1 YWxzIHVwIGludG8gdGhlCisJICogYmFzZXJlc3RyaWN0aW5mbyBmb3IgdGhlIGNoaWxkLiAg VGhpcyBpcyBzaW1pbGFyIHRvCisJICogcHJvY2Vzc19zZWN1cml0eV9iYXJyaWVyX3F1YWxz KCkgZm9yIHRoZSBwYXJlbnQgcmVsLCBleGNlcHQgdGhhdCB3ZQorCSAqIGNhbid0IG1ha2Ug YW55IGdlbmVyYWwgZGVkdWN0aW9ucyBmcm9tIHN1Y2ggcXVhbHMsIHNpbmNlIHRoZXkgZG9u J3QKKwkgKiBob2xkIGZvciB0aGUgd2hvbGUgYXBwZW5kcmVsLgorCSAqLworCWlmIChjaGls ZFJURS0+c2VjdXJpdHlRdWFscykKKwl7CisJCUluZGV4CQlzZWN1cml0eV9sZXZlbCA9IDA7 CisKKwkJZm9yZWFjaChsYywgY2hpbGRSVEUtPnNlY3VyaXR5UXVhbHMpCisJCXsKKwkJCUxp c3QJICAgKnF1YWxzZXQgPSAoTGlzdCAqKSBsZmlyc3QobGMpOworCQkJTGlzdENlbGwgICAq bGMyOworCisJCQlmb3JlYWNoKGxjMiwgcXVhbHNldCkKKwkJCXsKKwkJCQlFeHByCSAgICpx dWFsID0gKEV4cHIgKikgbGZpcnN0KGxjMik7CisKKwkJCQkvKiBub3QgbGlrZWx5IHRoYXQg d2UnZCBzZWUgY29uc3RhbnRzIGhlcmUsIHNvIG5vIGNoZWNrICovCisJCQkJY2hpbGRxdWFs cyA9IGxhcHBlbmQoY2hpbGRxdWFscywKKwkJCQkJCQkJCSBtYWtlX3Jlc3RyaWN0aW5mbyhx dWFsLAorCQkJCQkJCQkJCQkJCSAgIHRydWUsIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJCQkJ CQkgICBzZWN1cml0eV9sZXZlbCwKKwkJCQkJCQkJCQkJCQkgICBOVUxMLCBOVUxMLCBOVUxM KSk7CisJCQkJY3FfbWluX3NlY3VyaXR5ID0gTWluKGNxX21pbl9zZWN1cml0eSwgc2VjdXJp dHlfbGV2ZWwpOworCQkJfQorCQkJc2VjdXJpdHlfbGV2ZWwrKzsKKwkJfQorCQlBc3NlcnQo c2VjdXJpdHlfbGV2ZWwgPD0gcm9vdC0+cXVhbF9zZWN1cml0eV9sZXZlbCk7CisJfQorCisJ LyoKKwkgKiBPSywgd2UndmUgZ290IGFsbCB0aGUgYmFzZXJlc3RyaWN0aW5mbyBxdWFscyBm b3IgdGhpcyBjaGlsZC4KKwkgKi8KKwljaGlsZHJlbC0+YmFzZXJlc3RyaWN0aW5mbyA9IGNo aWxkcXVhbHM7CisJY2hpbGRyZWwtPmJhc2VyZXN0cmljdF9taW5fc2VjdXJpdHkgPSBjcV9t aW5fc2VjdXJpdHk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKICAqIGFkZF9hcHBlbmRy ZWxfb3RoZXJfcmVscwogICoJCVRoaXMgYWRkcyB0aGUgIm90aGVyIHJlbCIgUmVsT3B0SW5m b3MgYSBnaXZlbiAiYXBwZW5kcmVsIiBiYXNlcmVsCiAgKgpAQCAtMzM5LDYgKzQ5NCw4IEBA IGFkZF9hcHBlbmRyZWxfb3RoZXJfcmVscyhQbGFubmVySW5mbyAqcm9vdCwgUmFuZ2VUYmxF bnRyeSAqcnRlLCBJbmRleCBydGkpCiB7CiAJTGlzdENlbGwJICAgKmw7CiAJUmVsT3B0SW5m bwkgICAqcmVsOworCVJlbGF0aW9uCQlyZWxhdGlvbiA9IE5VTEw7CisJUGFydGl0aW9uRGVz YwlwYXJ0ZGVzYyA9IE5VTEw7CiAJaW50CQkJCWk7CiAKIAkvKgpAQCAtMzYxLDE2ICs1MTgs MjAgQEAgYWRkX2FwcGVuZHJlbF9vdGhlcl9yZWxzKFBsYW5uZXJJbmZvICpyb290LCBSYW5n ZVRibEVudHJ5ICpydGUsIEluZGV4IHJ0aSkKIAogCS8qCiAJICogRm9yIHBhcnRpdGlvbmVk IHRhYmxlcywgd2UgbmVlZCB0byBzdG9yZSB0aGUgY2hpbGQgUmVsT3B0SW5mb3MgaW4gdGhl Ci0JICogcmVsLT5wYXJ0X3JlbHMgYXJyYXkgdG9vLgorCSAqIHJlbC0+cGFydF9yZWxzIGFy cmF5IHRvby4gIFNvbWUgZWxlbWVudHMgb2YgdGhpcyBhcnJheSBtaWdodCByZW1haW4gc2V0 CisJICogdG8gTlVMTCBpZiB0aGUgY29ycmVzcG9uZGluZyBwYXJ0aXRpb25zIHdlcmUgcHJ1 bmVkIGFuZCBoZW5jZSBub3QgaW4KKwkgKiBhcHBlbmRfcmVsX2xpc3QuCiAJICovCiAJaWYg KHJlbC0+cGFydF9zY2hlbWUpCiAJewogCQlBc3NlcnQocmVsLT5ucGFydHMgPiAwKTsKIAkJ cmVsLT5wYXJ0X3JlbHMgPSAoUmVsT3B0SW5mbyAqKikKIAkJCQlwYWxsb2MwKHNpemVvZihS ZWxPcHRJbmZvICopICogcmVsLT5ucGFydHMpOworCQlyZWxhdGlvbiA9IHRhYmxlX29wZW4o cnRlLT5yZWxpZCwgTm9Mb2NrKTsKKwkJcGFydGRlc2MgPSBQYXJ0aXRpb25EaXJlY3RvcnlM b29rdXAocm9vdC0+Z2xvYi0+cGFydGl0aW9uX2RpcmVjdG9yeSwKKwkJCQkJCQkJCQkJcmVs YXRpb24pOwogCX0KIAotCWkgPSAwOwogCWZvcmVhY2gobCwgcm9vdC0+YXBwZW5kX3JlbF9s aXN0KQogCXsKIAkJQXBwZW5kUmVsSW5mbyAgKmFwcGluZm8gPSBsZmlyc3QobCk7CkBAIC0z OTAsMjYgKzU1MSwzMCBAQCBhZGRfYXBwZW5kcmVsX290aGVyX3JlbHMoUGxhbm5lckluZm8g KnJvb3QsIFJhbmdlVGJsRW50cnkgKnJ0ZSwgSW5kZXggcnRpKQogCQkgKiBGb3IgcGFydGl0 aW9uZWQgcGFyZW50cywgd2UgYWxzbyBuZWVkIHRvIGFkZCBjaGlsZHJlbCB0byBpdHMKIAkJ ICogcGFydF9yZWxzIGFycmF5LiAgVGhlIG9yZGVyIGluIHdoaWNoIGNoaWxkIHRhYmxlcyBh cHBlYXIgaW4KIAkJICogYXBwZW5kX3JlbF9saXN0IGlzIHNhbWUgYXMgdGhlIG9yZGVyIGlu IHdoaWNoIHRoZXkgYXBwZWFyIGluIHRoZQotCQkgKiBwYXJlbnQncyBQYXJ0aXRpb25EZXNj LCBzbyBhc3NpZ25pbmcgcGFydGl0aW9ucyBsaWtlIHRoaXMgd29ya3MuCisJCSAqIHBhcmVu dCdzIFBhcnRpdGlvbkRlc2MuICBCdXQgY29uc2lkZXJpbmcgdGhhdCBzb21lIHBhcnRpdGlv bnMgbWF5CisJCSAqIGhhdmUgYmVlbiBwcnVuZWQsIHdlIG5lZWQgdG8gbG9vayB1cCB0aGUg Y29ycmVjdCBwb3NpdGlvbiB0bworCQkgKiBhc3NpZ24gdGhpcyBjaGlsZHJlbCBieSBzY2Fu bmluZyB0aGUgUGFydGl0aW9uRGVzYy4KIAkJICovCiAJCWlmIChyZWwtPnBhcnRfc2NoZW1l ICE9IE5VTEwpCiAJCXsKLQkJCUFzc2VydChpIDwgcmVsLT5ucGFydHMpOwotCQkJcmVsLT5w YXJ0X3JlbHNbaV0gPSBjaGlsZHJlbDsKKwkJCUFzc2VydChwYXJ0ZGVzYyAhPSBOVUxMKTsK KwkJCWZvciAoaSA9IDA7IGkgPCBwYXJ0ZGVzYy0+bnBhcnRzOyBpKyspCisJCQl7CisJCQkJ aWYgKGNoaWxkcnRlLT5yZWxpZCA9PSBwYXJ0ZGVzYy0+b2lkc1tpXSkKKwkJCQl7CisJCQkJ CXJlbC0+cGFydF9yZWxzW2ldID0gY2hpbGRyZWw7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJ CX0KIAkJfQogCi0JCWkrKzsKLQogCQkvKiBDaGlsZCBtYXkgaXRzZWxmIGJlIGFuIGluaGVy aXRlZCByZWxhdGlvbi4gKi8KIAkJaWYgKGNoaWxkcnRlLT5pbmgpCiAJCQlhZGRfYXBwZW5k cmVsX290aGVyX3JlbHMocm9vdCwgY2hpbGRydGUsIGNoaWxkUlRpbmRleCk7CiAJfQogCi0J LyoKLQkgKiBGb3IgYSBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIG5vbi16ZXJvIG51bWJlciBv ZiBwYXJ0aXRpb25zLCB3ZSBtdXN0Ci0JICogaGF2ZSBhc3NpZ25lZCBhbGwgZWxlbWVudHMg b2YgaXRzIHBhcnRfcmVscyBhcnJheS4KLQkgKi8KLQlBc3NlcnQocmVsLT5ucGFydHMgPT0g MCB8fCBpID09IHJlbC0+bnBhcnRzKTsKKwlpZiAocmVsYXRpb24pCisJCXRhYmxlX2Nsb3Nl KHJlbGF0aW9uLCBOb0xvY2spOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFydGl0aW9uaW5nL3BhcnRwcnVuZS5jIGIvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3Bh cnRwcnVuZS5jCmluZGV4IGI1YzA4ODk5MzUuLjllYmRlZDY3YTkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0cHJ1bmUuYworKysgYi9zcmMvYmFja2VuZC9w YXJ0aXRpb25pbmcvcGFydHBydW5lLmMKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJu b2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNs dWRlICJvcHRpbWl6ZXIvYXBwZW5kaW5mby5oIgorI2luY2x1ZGUgIm9wdGltaXplci9jb3N0 LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgogI2luY2x1ZGUgIm9wdGlt aXplci9wYXRobm9kZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIKQEAgLTQz NSwxOCArNDM2LDI0IEBAIG1ha2VfcGFydGl0aW9uZWRyZWxfcHJ1bmVpbmZvKFBsYW5uZXJJ bmZvICpyb290LCBSZWxPcHRJbmZvICpwYXJlbnRyZWwsCiAJCSAqIGlzLCBub3QgcHJ1bmVk IGFscmVhZHkpLgogCQkgKi8KIAkJc3VicGxhbl9tYXAgPSAoaW50ICopIHBhbGxvYyhucGFy dHMgKiBzaXplb2YoaW50KSk7CisJCW1lbXNldChzdWJwbGFuX21hcCwgLTEsIG5wYXJ0cyAq IHNpemVvZihpbnQpKTsKIAkJc3VicGFydF9tYXAgPSAoaW50ICopIHBhbGxvYyhucGFydHMg KiBzaXplb2YoaW50KSk7Ci0JCXJlbGlkX21hcCA9IChPaWQgKikgcGFsbG9jKG5wYXJ0cyAq IHNpemVvZihpbnQpKTsKKwkJbWVtc2V0KHN1YnBhcnRfbWFwLCAtMSwgbnBhcnRzICogc2l6 ZW9mKGludCkpOworCQlyZWxpZF9tYXAgPSAoT2lkICopIHBhbGxvYzAobnBhcnRzICogc2l6 ZW9mKGludCkpOwogCQlwcmVzZW50X3BhcnRzID0gTlVMTDsKIAogCQlmb3IgKGkgPSAwOyBp IDwgbnBhcnRzOyBpKyspCiAJCXsKIAkJCVJlbE9wdEluZm8gKnBhcnRyZWwgPSBzdWJwYXJ0 LT5wYXJ0X3JlbHNbaV07Ci0JCQlpbnQJCQlzdWJwbGFuaWR4ID0gcmVsaWRfc3VicGxhbl9t YXBbcGFydHJlbC0+cmVsaWRdIC0gMTsKLQkJCWludAkJCXN1YnBhcnRpZHggPSByZWxpZF9z dWJwYXJ0X21hcFtwYXJ0cmVsLT5yZWxpZF0gLSAxOworCQkJaW50CQkJc3VicGxhbmlkeDsK KwkJCWludAkJCXN1YnBhcnRpZHg7CiAKLQkJCXN1YnBsYW5fbWFwW2ldID0gc3VicGxhbmlk eDsKLQkJCXN1YnBhcnRfbWFwW2ldID0gc3VicGFydGlkeDsKKwkJCS8qIFNraXAgcHJvY2Vz c2luZyBwcnVuZWQgcGFydGl0aW9ucy4gKi8KKwkJCWlmIChwYXJ0cmVsID09IE5VTEwpCisJ CQkJY29udGludWU7CisKKwkJCXN1YnBsYW5fbWFwW2ldID0gc3VicGxhbmlkeCA9IHJlbGlk X3N1YnBsYW5fbWFwW3BhcnRyZWwtPnJlbGlkXSAtIDE7CisJCQlzdWJwYXJ0X21hcFtpXSA9 IHN1YnBhcnRpZHggPSByZWxpZF9zdWJwYXJ0X21hcFtwYXJ0cmVsLT5yZWxpZF0gLSAxOwog CQkJcmVsaWRfbWFwW2ldID0gcGxhbm5lcl9ydF9mZXRjaChwYXJ0cmVsLT5yZWxpZCwgcm9v dCktPnJlbGlkOwogCQkJaWYgKHN1YnBsYW5pZHggPj0gMCkKIAkJCXsKQEAgLTU0MiwyMyAr NTQ5LDIwIEBAIGdlbl9wYXJ0cHJ1bmVfc3RlcHMoUmVsT3B0SW5mbyAqcmVsLCBMaXN0ICpj bGF1c2VzLCBib29sICpjb250cmFkaWN0b3J5KQogCiAvKgogICogcHJ1bmVfYXBwZW5kX3Jl bF9wYXJ0aXRpb25zCi0gKgkJUmV0dXJucyBSVCBpbmRleGVzIG9mIHRoZSBtaW5pbXVtIHNl dCBvZiBjaGlsZCBwYXJ0aXRpb25zIHdoaWNoIG11c3QKLSAqCQliZSBzY2FubmVkIHRvIHNh dGlzZnkgcmVsJ3MgYmFzZXJlc3RyaWN0aW5mbyBxdWFscy4KKyAqCQlSZXR1cm5zIGluZGV4 ZXMgaW50byByZWwtPnBhcnRfcmVscyBvZiB0aGUgbWluaW11bSBzZXQgb2YgY2hpbGQKKyAq CQlwYXJ0aXRpb25zIHdoaWNoIG11c3QgYmUgc2Nhbm5lZCB0byBzYXRpc2Z5IHJlbCdzIGJh c2VyZXN0cmljdGluZm8KKyAqCQlxdWFscy4KICAqCiAgKiBDYWxsZXJzIG11c3QgZW5zdXJl IHRoYXQgJ3JlbCcgaXMgYSBwYXJ0aXRpb25lZCB0YWJsZS4KICAqLwotUmVsaWRzCitCaXRt YXBzZXQgKgogcHJ1bmVfYXBwZW5kX3JlbF9wYXJ0aXRpb25zKFJlbE9wdEluZm8gKnJlbCkK IHsKLQlSZWxpZHMJCXJlc3VsdDsKIAlMaXN0CSAgICpjbGF1c2VzID0gcmVsLT5iYXNlcmVz dHJpY3RpbmZvOwogCUxpc3QJICAgKnBydW5pbmdfc3RlcHM7CiAJYm9vbAkJY29udHJhZGlj dG9yeTsKIAlQYXJ0aXRpb25QcnVuZUNvbnRleHQgY29udGV4dDsKLQlCaXRtYXBzZXQgICpw YXJ0aW5kZXhlczsKLQlpbnQJCQlpOwogCi0JQXNzZXJ0KGNsYXVzZXMgIT0gTklMKTsKIAlB c3NlcnQocmVsLT5wYXJ0X3NjaGVtZSAhPSBOVUxMKTsKIAogCS8qIElmIHRoZXJlIGFyZSBu byBwYXJ0aXRpb25zLCByZXR1cm4gdGhlIGVtcHR5IHNldCAqLwpAQCAtNTY2LDYgKzU3MCwx MyBAQCBwcnVuZV9hcHBlbmRfcmVsX3BhcnRpdGlvbnMoUmVsT3B0SW5mbyAqcmVsKQogCQly ZXR1cm4gTlVMTDsKIAogCS8qCisJICogSWYgcHJ1bmluZyBpcyBkaXNhYmxlZCBvciBpZiB0 aGVyZSBhcmUgbm8gY2xhdXNlcyB0byBwcnVuZSB3aXRoLAorCSAqIHJldHVybiBhbGwgcGFy dGl0aW9ucy4KKwkgKi8KKwlpZiAoIWVuYWJsZV9wYXJ0aXRpb25fcHJ1bmluZyB8fCBjbGF1 c2VzID09IE5JTCkKKwkJcmV0dXJuIGJtc19hZGRfcmFuZ2UoTlVMTCwgMCwgcmVsLT5ucGFy dHMgLSAxKTsKKworCS8qCiAJICogUHJvY2VzcyBjbGF1c2VzLiAgSWYgdGhlIGNsYXVzZXMg YXJlIGZvdW5kIHRvIGJlIGNvbnRyYWRpY3RvcnksIHdlIGNhbgogCSAqIHJldHVybiB0aGUg ZW1wdHkgc2V0LgogCSAqLwpAQCAtNTkyLDE1ICs2MDMsNyBAQCBwcnVuZV9hcHBlbmRfcmVs X3BhcnRpdGlvbnMoUmVsT3B0SW5mbyAqcmVsKQogCWNvbnRleHQuZXZhbGV4ZWNwYXJhbXMg PSBmYWxzZTsKIAogCS8qIEFjdHVhbCBwcnVuaW5nIGhhcHBlbnMgaGVyZS4gKi8KLQlwYXJ0 aW5kZXhlcyA9IGdldF9tYXRjaGluZ19wYXJ0aXRpb25zKCZjb250ZXh0LCBwcnVuaW5nX3N0 ZXBzKTsKLQotCS8qIEFkZCBzZWxlY3RlZCBwYXJ0aXRpb25zJyBSVCBpbmRleGVzIHRvIHJl c3VsdC4gKi8KLQlpID0gLTE7Ci0JcmVzdWx0ID0gTlVMTDsKLQl3aGlsZSAoKGkgPSBibXNf bmV4dF9tZW1iZXIocGFydGluZGV4ZXMsIGkpKSA+PSAwKQotCQlyZXN1bHQgPSBibXNfYWRk X21lbWJlcihyZXN1bHQsIHJlbC0+cGFydF9yZWxzW2ldLT5yZWxpZCk7Ci0KLQlyZXR1cm4g cmVzdWx0OworCXJldHVybiBnZXRfbWF0Y2hpbmdfcGFydGl0aW9ucygmY29udGV4dCwgcHJ1 bmluZ19zdGVwcyk7CiB9CiAKIC8qCi0tIAoyLjExLjAKCg== --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0007-Teach-planner-to-only-process-unpruned-partition.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0007-Teach-planner-to-only-process-unpruned-partition.pa"; filename*1="tch" RnJvbSAyYzZiOTRmNTNkMTY2ZWYyZjljN2QyNTE0YWZlNGVmYjg1NzRhOTUxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA0IE1hciAyMDE5IDExOjU3OjA0ICswOTAwClN1YmplY3Q6IFtQQVRDSCB2 MzQgNy85XSBUZWFjaCBwbGFubmVyIHRvIG9ubHkgcHJvY2VzcyB1bnBydW5lZCBwYXJ0aXRp b25zCgpUaGlzIGFkZHMgYSBiaXRtYXBzZXQgZmllbGQgbGl2ZV9wYXJ0cyB0byBSZWxPcHRJ bmZvIGFuZCBzdG9yZXMKdGhlIHBhcnRpdGlvbiBpbmRleGVzIG9mIG5vbi1kdW1teSBwYXJ0 aXRpb25zIGluIGl0LCBtZWFuaW5nIGl0CmNvbnRhaW5zIGluZGV4ZXMgb2Ygb25seSB0aG9z ZSBwYXJ0aXRpb25zIHRoYXQgaGF2ZSBhIG5vbi1OVUxMClJlbE9wdEluZm8gcHJlc2VudCBp biBpdHMgcGFyZW50J3MgUmVsT3B0SW5mbydzIHBhcnRfcmVscyBhcnJheS4KClRoaXMgc3Bl ZWRzIHVwIHByb2Nlc3NpbmcgcGFydGl0aW9uZWQgdGFibGUncyBwYXJ0aXRpb25zIGNvbXBh cmVkCnRvIGdvaW5nIHRocm91Z2ggdGhlIHdob2xlIHBhcnRfcmVscyBhcnJheSBpbiBhIG51 bWJlciBvZiBwbGFjZXMuCgpQYXJ0aXRpb253aXNlIGpvaW4gc3RpbGwgaGFzIHRvIHZpc2l0 IGVhY2ggbWVtYmVyIG9mIHBhcnRfcmVscywKYmVjYXVzZSBwcnVuZWQgY2hpbGRyZW4gbWF5 IGZhbGwgb24gdGhlIG51bGxhYmxlIHNpZGUgb2YgYW4gb3V0ZXIKam9pbiBhbmQgYW4gZW1w dHkgUmVzdWx0IHBhdGggbXVzdCBiZSBwcmVzZW50IGZvciBidWlsZGluZyB0aGUKb3V0ZXIg am9pbiBwYXRocy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9qb2lucmVscy5j IHwgIDMgKysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgIHwgMTgg KysrKysrKysrLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9pbmhlcml0 LmMgIHwgIDYgKysrKysrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9yZWxub2RlLmMg IHwgIDQgKysrKwogc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRwcnVuZS5jICB8IDE5 ICsrKysrKy0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAg ICAgICAgfCAgNCArKysrCiA2IGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDIy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRo L2pvaW5yZWxzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9qb2lucmVscy5jCmlu ZGV4IDgzYzI0YTQ1YjguLjM4ZmRhNTgzMmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wYXRoL2pvaW5yZWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bh dGgvam9pbnJlbHMuYwpAQCAtMTQ5OCw2ICsxNDk4LDkgQEAgdHJ5X3BhcnRpdGlvbndpc2Vf am9pbihQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVsMSwgUmVsT3B0SW5mbyAq cmVsMiwKIAkJcG9wdWxhdGVfam9pbnJlbF93aXRoX3BhdGhzKHJvb3QsIGNoaWxkX3JlbDEs IGNoaWxkX3JlbDIsCiAJCQkJCQkJCQljaGlsZF9qb2lucmVsLCBjaGlsZF9zamluZm8sCiAJ CQkJCQkJCQljaGlsZF9yZXN0cmljdGxpc3QpOworCQlpZiAoIUlTX0RVTU1ZX1JFTChjaGls ZF9qb2lucmVsKSkKKwkJCWpvaW5yZWwtPmxpdmVfcGFydHMgPSBibXNfYWRkX21lbWJlcihq b2lucmVsLT5saXZlX3BhcnRzLAorCQkJCQkJCQkJCQkJIGNudF9wYXJ0cyk7CiAJfQogCiAJ aWYgKGJhc2VyZWwxKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4 IDZhMDI0NmI0N2YuLmZhMWI2ZGU5ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9w bGFubmVyLmMKQEAgLTcwOTksNyArNzA5OSw5IEBAIGFwcGx5X3NjYW5qb2luX3RhcmdldF90 b19wYXRocyhQbGFubmVySW5mbyAqcm9vdCwKIAkJaW50CQkJcGFydGl0aW9uX2lkeDsKIAog CQkvKiBBZGp1c3QgZWFjaCBwYXJ0aXRpb24uICovCi0JCWZvciAocGFydGl0aW9uX2lkeCA9 IDA7IHBhcnRpdGlvbl9pZHggPCByZWwtPm5wYXJ0czsgcGFydGl0aW9uX2lkeCsrKQorCQlw YXJ0aXRpb25faWR4ID0gLTE7CisJCXdoaWxlICgocGFydGl0aW9uX2lkeCA9IGJtc19uZXh0 X21lbWJlcihyZWwtPmxpdmVfcGFydHMsCisJCQkJCQkJCQkJCQlwYXJ0aXRpb25faWR4KSkg Pj0gMCkKIAkJewogCQkJUmVsT3B0SW5mbyAqY2hpbGRfcmVsID0gcmVsLT5wYXJ0X3JlbHNb cGFydGl0aW9uX2lkeF07CiAJCQlBcHBlbmRSZWxJbmZvICoqYXBwaW5mb3M7CkBAIC03MTA3 LDkgKzcxMDksNyBAQCBhcHBseV9zY2Fuam9pbl90YXJnZXRfdG9fcGF0aHMoUGxhbm5lcklu Zm8gKnJvb3QsCiAJCQlMaXN0CSAgICpjaGlsZF9zY2Fuam9pbl90YXJnZXRzID0gTklMOwog CQkJTGlzdENlbGwgICAqbGM7CiAKLQkJCS8qIFNraXAgcHJvY2Vzc2luZyBwcnVuZWQgcGFy dGl0aW9ucy4gKi8KLQkJCWlmIChjaGlsZF9yZWwgPT0gTlVMTCkKLQkJCQljb250aW51ZTsK KwkJCUFzc2VydChjaGlsZF9yZWwgIT0gTlVMTCk7CiAKIAkJCS8qIFRyYW5zbGF0ZSBzY2Fu L2pvaW4gdGFyZ2V0cyBmb3IgdGhpcyBjaGlsZC4gKi8KIAkJCWFwcGluZm9zID0gZmluZF9h cHBpbmZvc19ieV9yZWxpZHMocm9vdCwgY2hpbGRfcmVsLT5yZWxpZHMsCkBAIC03MTg5LDcg KzcxODksNiBAQCBjcmVhdGVfcGFydGl0aW9ud2lzZV9ncm91cGluZ19wYXRocyhQbGFubmVy SW5mbyAqcm9vdCwKIAkJCQkJCQkJCVBhcnRpdGlvbndpc2VBZ2dyZWdhdGVUeXBlIHBhdHlw ZSwKIAkJCQkJCQkJCUdyb3VwUGF0aEV4dHJhRGF0YSAqZXh0cmEpCiB7Ci0JaW50CQkJbnBh cnRzID0gaW5wdXRfcmVsLT5ucGFydHM7CiAJaW50CQkJY250X3BhcnRzOwogCUxpc3QJICAg Kmdyb3VwZWRfbGl2ZV9jaGlsZHJlbiA9IE5JTDsKIAlMaXN0CSAgICpwYXJ0aWFsbHlfZ3Jv dXBlZF9saXZlX2NoaWxkcmVuID0gTklMOwpAQCAtNzIwMSw3ICs3MjAwLDkgQEAgY3JlYXRl X3BhcnRpdGlvbndpc2VfZ3JvdXBpbmdfcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsCiAJCSAg IHBhcnRpYWxseV9ncm91cGVkX3JlbCAhPSBOVUxMKTsKIAogCS8qIEFkZCBwYXRocyBmb3Ig cGFydGl0aW9ud2lzZSBhZ2dyZWdhdGlvbi9ncm91cGluZy4gKi8KLQlmb3IgKGNudF9wYXJ0 cyA9IDA7IGNudF9wYXJ0cyA8IG5wYXJ0czsgY250X3BhcnRzKyspCisJY250X3BhcnRzID0g LTE7CisJd2hpbGUgKChjbnRfcGFydHMgPSBibXNfbmV4dF9tZW1iZXIoaW5wdXRfcmVsLT5s aXZlX3BhcnRzLAorCQkJCQkJCQkJCWNudF9wYXJ0cykpID49IDApCiAJewogCQlSZWxPcHRJ bmZvICpjaGlsZF9pbnB1dF9yZWwgPSBpbnB1dF9yZWwtPnBhcnRfcmVsc1tjbnRfcGFydHNd OwogCQlQYXRoVGFyZ2V0ICpjaGlsZF90YXJnZXQgPSBjb3B5X3BhdGh0YXJnZXQodGFyZ2V0 KTsKQEAgLTcyMTEsOSArNzIxMiw4IEBAIGNyZWF0ZV9wYXJ0aXRpb253aXNlX2dyb3VwaW5n X3BhdGhzKFBsYW5uZXJJbmZvICpyb290LAogCQlSZWxPcHRJbmZvICpjaGlsZF9ncm91cGVk X3JlbDsKIAkJUmVsT3B0SW5mbyAqY2hpbGRfcGFydGlhbGx5X2dyb3VwZWRfcmVsOwogCi0J CS8qIFNraXAgcHJvY2Vzc2luZyBwcnVuZWQgcGFydGl0aW9ucy4gKi8KLQkJaWYgKGNoaWxk X2lucHV0X3JlbCA9PSBOVUxMKQotCQkJY29udGludWU7CisJCS8qIEEgbGl2ZSBwYXJ0aXRp b24gbXVzdCBoYXZlIGEgUmVsT3B0SW5mby4gKi8KKwkJQXNzZXJ0KGNoaWxkX2lucHV0X3Jl bCAhPSBOVUxMKTsKIAogCQkvKiBJbnB1dCBjaGlsZCByZWwgbXVzdCBoYXZlIGEgcGF0aCAq LwogCQlBc3NlcnQoY2hpbGRfaW5wdXRfcmVsLT5wYXRobGlzdCAhPSBOSUwpOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvaW5oZXJpdC5jIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvaW5oZXJpdC5jCmluZGV4IDVkNzAwNWRlOTYuLjIyOGZkM2Iz MzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2luaGVyaXQuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9pbmhlcml0LmMKQEAgLTI4NCw2ICsy ODQsMTIgQEAgZXhwYW5kX3BhcnRpdGlvbmVkX3J0ZW50cnkoUGxhbm5lckluZm8gKnJvb3Qs IFJhbmdlVGJsRW50cnkgKnBhcmVudHJ0ZSwKIAkJCWxpdmVfcGFydHMgPSBwcnVuZV9hcHBl bmRfcmVsX3BhcnRpdGlvbnMocmVsKTsKIAogCQkvKgorCQkgKiBMYXRlciBzdGVwcyB0aGF0 IGxvb3Agb3ZlciBwYXJ0X3JlbHMgc2hvdWxkIHVzZSB0aGVzZSBpbmRleGVzCisJCSAqIHRv IGFjY2VzcyB1bnBydW5lZCBwYXJ0aXRpb25zLgorCQkgKi8KKwkJcmVsLT5saXZlX3BhcnRz ID0gbGl2ZV9wYXJ0czsKKworCQkvKgogCQkgKiBFeHBhbmQgc2ltcGxlX3JlbF9hcnJheSBh bmQgZnJpZW5kcyB0byBob2xkIGNoaWxkIG9iamVjdHMuCiAJCSAqCiAJCSAqIFdlJ2xsIG5l ZWQgbnBhcnRzICsgMSBuZXcgc2xvdHMsIGJlY2F1c2Ugd2UgYWxzbyBjb25zaWRlciBwYXJl bnQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3JlbG5vZGUuYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3JlbG5vZGUuYwppbmRleCA5OGVjOTE4ZWJj Li42Nzg3YzMzYWZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9y ZWxub2RlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcmVsbm9kZS5jCkBA IC01NjMsNiArNTYzLDcgQEAgYWRkX2FwcGVuZHJlbF9vdGhlcl9yZWxzKFBsYW5uZXJJbmZv ICpyb290LCBSYW5nZVRibEVudHJ5ICpydGUsIEluZGV4IHJ0aSkKIAkJCQlpZiAoY2hpbGRy dGUtPnJlbGlkID09IHBhcnRkZXNjLT5vaWRzW2ldKQogCQkJCXsKIAkJCQkJcmVsLT5wYXJ0 X3JlbHNbaV0gPSBjaGlsZHJlbDsKKwkJCQkJcmVsLT5saXZlX3BhcnRzID0gYm1zX2FkZF9t ZW1iZXIocmVsLT5saXZlX3BhcnRzLCBpKTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQpA QCAtMTk4OSw2ICsxOTkwLDkgQEAgYnVpbGRfam9pbnJlbF9wYXJ0aXRpb25faW5mbyhSZWxP cHRJbmZvICpqb2lucmVsLCBSZWxPcHRJbmZvICpvdXRlcl9yZWwsCiAJCWpvaW5yZWwtPnBh cnRleHByc1tjbnRdID0gcGFydGV4cHI7CiAJCWpvaW5yZWwtPm51bGxhYmxlX3BhcnRleHBy c1tjbnRdID0gbnVsbGFibGVfcGFydGV4cHI7CiAJfQorCisJLyogUGFydGl0aW9ucyB3aWxs IGJlIGFkZGVkIGJ5IHRyeV9wYXJ0aXRpb253aXNlX2pvaW4uICovCisJam9pbnJlbC0+bGl2 ZV9wYXJ0cyA9IE5VTEw7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJ0 aXRpb25pbmcvcGFydHBydW5lLmMgYi9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydHBy dW5lLmMKaW5kZXggOWViZGVkNjdhOS4uZTc2NjU1NWE5ZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFydGl0aW9uaW5nL3BhcnRwcnVuZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnRp dGlvbmluZy9wYXJ0cHJ1bmUuYwpAQCAtNDQwLDMwICs0NDAsMjMgQEAgbWFrZV9wYXJ0aXRp b25lZHJlbF9wcnVuZWluZm8oUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnBhcmVu dHJlbCwKIAkJc3VicGFydF9tYXAgPSAoaW50ICopIHBhbGxvYyhucGFydHMgKiBzaXplb2Yo aW50KSk7CiAJCW1lbXNldChzdWJwYXJ0X21hcCwgLTEsIG5wYXJ0cyAqIHNpemVvZihpbnQp KTsKIAkJcmVsaWRfbWFwID0gKE9pZCAqKSBwYWxsb2MwKG5wYXJ0cyAqIHNpemVvZihpbnQp KTsKLQkJcHJlc2VudF9wYXJ0cyA9IE5VTEw7CisJCXByZXNlbnRfcGFydHMgPSBibXNfY29w eShzdWJwYXJ0LT5saXZlX3BhcnRzKTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgbnBhcnRzOyBp KyspCisJCWkgPSAtMTsKKwkJd2hpbGUgKChpID0gYm1zX25leHRfbWVtYmVyKHByZXNlbnRf cGFydHMsIGkpKSA+PSAwKQogCQl7CiAJCQlSZWxPcHRJbmZvICpwYXJ0cmVsID0gc3VicGFy dC0+cGFydF9yZWxzW2ldOwogCQkJaW50CQkJc3VicGxhbmlkeDsKIAkJCWludAkJCXN1YnBh cnRpZHg7CiAKLQkJCS8qIFNraXAgcHJvY2Vzc2luZyBwcnVuZWQgcGFydGl0aW9ucy4gKi8K LQkJCWlmIChwYXJ0cmVsID09IE5VTEwpCi0JCQkJY29udGludWU7Ci0KKwkJCUFzc2VydChw YXJ0cmVsICE9IE5VTEwpOwogCQkJc3VicGxhbl9tYXBbaV0gPSBzdWJwbGFuaWR4ID0gcmVs aWRfc3VicGxhbl9tYXBbcGFydHJlbC0+cmVsaWRdIC0gMTsKIAkJCXN1YnBhcnRfbWFwW2ld ID0gc3VicGFydGlkeCA9IHJlbGlkX3N1YnBhcnRfbWFwW3BhcnRyZWwtPnJlbGlkXSAtIDE7 CiAJCQlyZWxpZF9tYXBbaV0gPSBwbGFubmVyX3J0X2ZldGNoKHBhcnRyZWwtPnJlbGlkLCBy b290KS0+cmVsaWQ7Ci0JCQlpZiAoc3VicGxhbmlkeCA+PSAwKQotCQkJewotCQkJCXByZXNl bnRfcGFydHMgPSBibXNfYWRkX21lbWJlcihwcmVzZW50X3BhcnRzLCBpKTsKIAotCQkJCS8q IFJlY29yZCBmaW5kaW5nIHRoaXMgc3VicGxhbiAgKi8KKwkJCS8qIFJlY29yZCBmaW5kaW5n IHRoaXMgc3VicGxhbiAqLworCQkJaWYgKHN1YnBsYW5pZHggPj0gMCkKIAkJCQlzdWJwbGFu c2ZvdW5kID0gYm1zX2FkZF9tZW1iZXIoc3VicGxhbnNmb3VuZCwgc3VicGxhbmlkeCk7Ci0J CQl9Ci0JCQllbHNlIGlmIChzdWJwYXJ0aWR4ID49IDApCi0JCQkJcHJlc2VudF9wYXJ0cyA9 IGJtc19hZGRfbWVtYmVyKHByZXNlbnRfcGFydHMsIGkpOwogCQl9CiAKIAkJcGluZm8gPSBt YWtlTm9kZShQYXJ0aXRpb25lZFJlbFBydW5lSW5mbyk7CmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o CmluZGV4IDMxODExZjlhZGIuLjMyOThiZDc4Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o CkBAIC03MTQsNiArNzE0LDEwIEBAIHR5cGVkZWYgc3RydWN0IFJlbE9wdEluZm8KIAlMaXN0 CSAgICpwYXJ0aXRpb25fcXVhbDsgLyogcGFydGl0aW9uIGNvbnN0cmFpbnQgKi8KIAlzdHJ1 Y3QgUmVsT3B0SW5mbyAqKnBhcnRfcmVsczsJLyogQXJyYXkgb2YgUmVsT3B0SW5mb3Mgb2Yg cGFydGl0aW9ucywKIAkJCQkJCQkJCSAqIHN0b3JlZCBpbiB0aGUgc2FtZSBvcmRlciBvZiBi b3VuZHMgKi8KKwlCaXRtYXBzZXQgICpsaXZlX3BhcnRzOwkJLyogSW5kZXhlcyBpbnRvIHBh cnRfcmVscyBvZiB0aGUgbm9uLU5VTEwKKwkJCQkJCQkJICogUmVsT3B0SW5mb3Mgb2YgdW5w cnVuZWQgcGFydGl0aW9uczsgZXhpc3RzCisJCQkJCQkJCSAqIHRvIGF2b2lkIGhhdmluZyB0 byBpdGVyYXRlIG92ZXIgdGhlIGVudGlyZQorCQkJCQkJCQkgKiBwYXJ0X3JlbHMgYXJyYXkg dG8gZmlsdGVyIE5VTEwgZW50cmllcy4gKi8KIAlMaXN0CSAgKipwYXJ0ZXhwcnM7CQkvKiBO b24tbnVsbGFibGUgcGFydGl0aW9uIGtleSBleHByZXNzaW9ucy4gKi8KIAlMaXN0CSAgKipu dWxsYWJsZV9wYXJ0ZXhwcnM7IC8qIE51bGxhYmxlIHBhcnRpdGlvbiBrZXkgZXhwcmVzc2lv bnMuICovCiAJTGlzdAkgICAqcGFydGl0aW9uZWRfY2hpbGRfcmVsczsgLyogTGlzdCBvZiBS VCBpbmRleGVzLiAqLwotLSAKMi4xMS4wCgo= --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0008-Rearrange-the-code-in-make_partitionedrel_prunei.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0008-Rearrange-the-code-in-make_partitionedrel_prunei.pa"; filename*1="tch" RnJvbSA3ODI4ZjYyOTQ5YzRkNTdjMTc2MDU5ZGRhOTEwY2NmMWY3ZGVhZjk2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAyMiBNYXIgMjAxOSAxNTowOTo0NSArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djM0IDgvOV0gUmVhcnJhbmdlIHRoZSBjb2RlIGluIG1ha2VfcGFydGl0aW9uZWRyZWxfcHJ1 bmVpbmZvCiBmb3IgZWZmaWNpZW5jeQoKVGhlIGN1cnJlbnQgY29kZSB3aWxsIGxvb3Agb3Zl ciBhbGwgcGFydGl0aW9ucyB0byBjcmVhdGUgbWFwcyB0aGF0CndpbGwgYmUgcHV0IGludG8g dGhlIFBhcnRpdGlvbmVkUmVsUHJ1bmVJbmZvIG9mIGEgZ2l2ZW4gcGFydGl0aW9uZWQKdGFi bGUsICpiZWZvcmUqIGNoZWNraW5nIGlmIHJ1bi10aW1lIHBydW5pbmcgd2lsbCBiZSBuZWVk ZWQgYXQgYWxsLgoKVGhpcyBjb21taXQgcmVhcnJhbmdlcyB0aGUgY29kZSBzdWNoIHRoYXQg bWFwcyBhcmUgY3JlYXRlZCAqYWZ0ZXIqCndlJ3ZlIGRldGVybWluZWQgdGhhdCBydW4tdGlt ZSB3aWxsIGJlIG5lZWRlZC4KLS0tCiBzcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydHBy dW5lLmMgfCA4NCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJ0aXRpb25pbmcvcGFydHBydW5lLmMgYi9zcmMvYmFja2Vu ZC9wYXJ0aXRpb25pbmcvcGFydHBydW5lLmMKaW5kZXggZTc2NjU1NWE5Zi4uNjAwNGFlMzdm MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRwcnVuZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0cHJ1bmUuYwpAQCAtMzMzLDM5ICsz MzMsMjQgQEAgbWFrZV9wYXJ0aXRpb25lZHJlbF9wcnVuZWluZm8oUGxhbm5lckluZm8gKnJv b3QsIFJlbE9wdEluZm8gKnBhcmVudHJlbCwKIAkgKi8KIAlyZWxpZF9zdWJwYXJ0X21hcCA9 IHBhbGxvYzAoc2l6ZW9mKGludCkgKiByb290LT5zaW1wbGVfcmVsX2FycmF5X3NpemUpOwog Ci0JLyoKLQkgKiByZWxpZF9zdWJwYXJ0X21hcCBtYXBzIHJlbGlkIG9mIGEgbm9uLWxlYWYg cGFydGl0aW9uIHRvIHRoZSBpbmRleCBpbgotCSAqICdwYXJ0aXRpb25lZF9yZWxzJyBvZiB0 aGF0IHJlbCAod2hpY2ggd2lsbCBhbHNvIGJlIHRoZSBpbmRleCBpbiB0aGUKLQkgKiByZXR1 cm5lZCBQYXJ0aXRpb25lZFJlbFBydW5lSW5mbyBsaXN0IG9mIHRoZSBpbmZvIGZvciB0aGF0 IHBhcnRpdGlvbikuCi0JICovCi0JaSA9IDE7Ci0JZm9yZWFjaChsYywgcGFydGl0aW9uZWRf cmVscykKLQl7Ci0JCUluZGV4CQlydGkgPSBsZmlyc3RfaW50KGxjKTsKLQotCQlBc3NlcnQo cnRpIDwgcm9vdC0+c2ltcGxlX3JlbF9hcnJheV9zaXplKTsKLQkJLyogTm8gZHVwbGljYXRl cyBwbGVhc2UgKi8KLQkJQXNzZXJ0KHJlbGlkX3N1YnBhcnRfbWFwW3J0aV0gPT0gMCk7Ci0K LQkJcmVsaWRfc3VicGFydF9tYXBbcnRpXSA9IGkrKzsKLQl9Ci0KIAkvKiBXZSBub3cgYnVp bGQgYSBQYXJ0aXRpb25lZFJlbFBydW5lSW5mbyBmb3IgZWFjaCBwYXJ0aXRpb25lZCByZWwg Ki8KKwlpID0gMTsKIAlmb3JlYWNoKGxjLCBwYXJ0aXRpb25lZF9yZWxzKQogCXsKIAkJSW5k ZXgJCXJ0aSA9IGxmaXJzdF9pbnQobGMpOwogCQlSZWxPcHRJbmZvICpzdWJwYXJ0ID0gZmlu ZF9iYXNlX3JlbChyb290LCBydGkpOwogCQlQYXJ0aXRpb25lZFJlbFBydW5lSW5mbyAqcGlu Zm87Ci0JCUJpdG1hcHNldCAgKnByZXNlbnRfcGFydHM7Ci0JCWludAkJCW5wYXJ0cyA9IHN1 YnBhcnQtPm5wYXJ0czsKIAkJaW50CQkJcGFydG5hdHRzID0gc3VicGFydC0+cGFydF9zY2hl bWUtPnBhcnRuYXR0czsKLQkJaW50CQkgICAqc3VicGxhbl9tYXA7Ci0JCWludAkJICAgKnN1 YnBhcnRfbWFwOwotCQlPaWQJCSAgICpyZWxpZF9tYXA7CiAJCUxpc3QJICAgKnBhcnRwcnVu ZXF1YWw7CiAJCUxpc3QJICAgKnBydW5pbmdfc3RlcHM7CiAJCWJvb2wJCWNvbnRyYWRpY3Rv cnk7CiAKKwkJLyogTWFwIHRoZSB0YWJsZSdzIFJUIGluZGV4IHRvIGl0cyBwb3NpdGlvbiBp biBwYXJ0aXRpb25lZF9yZWxzLiAqLworCQlBc3NlcnQocnRpIDwgcm9vdC0+c2ltcGxlX3Jl bF9hcnJheV9zaXplKTsKKwkJLyogTm8gZHVwbGljYXRlcyBwbGVhc2UgKi8KKwkJQXNzZXJ0 KHJlbGlkX3N1YnBhcnRfbWFwW3J0aV0gPT0gMCk7CisJCXJlbGlkX3N1YnBhcnRfbWFwW3J0 aV0gPSBpKys7CisKIAkJLyoKIAkJICogVGhlIGZpcnN0IGl0ZW0gaW4gdGhlIGxpc3QgaXMg dGhlIHRhcmdldCBwYXJ0aXRpb25lZCByZWxhdGlvbi4KIAkJICovCkBAIC00MjksNiArNDE0 LDQ1IEBAIG1ha2VfcGFydGl0aW9uZWRyZWxfcHJ1bmVpbmZvKFBsYW5uZXJJbmZvICpyb290 LCBSZWxPcHRJbmZvICpwYXJlbnRyZWwsCiAJCQlyZXR1cm4gTklMOwogCQl9CiAKKwkJLyog T3RoZXIgaW5mb3JtYXRpb24gd2lsbCBiZSBzZXQgaW4gdGhlIGZvbGxvd2luZyBsb29wLiAq LworCQlwaW5mbyA9IG1ha2VOb2RlKFBhcnRpdGlvbmVkUmVsUHJ1bmVJbmZvKTsKKwkJcGlu Zm8tPnJ0aW5kZXggPSBydGk7CisJCXBpbmZvLT5wcnVuaW5nX3N0ZXBzID0gcHJ1bmluZ19z dGVwczsKKworCQkvKgorCQkgKiBEZXRlcm1pbmUgd2hpY2ggcHJ1bmluZyB0eXBlcyBzaG91 bGQgYmUgZW5hYmxlZCBhdCB0aGlzIGxldmVsLgorCQkgKiBUaGlzIGFsc28gcmVjb3JkcyBw YXJhbWlkcyByZWxldmFudCB0byBwcnVuaW5nIHN0ZXBzIGluICdwaW5mbycuCisJCSAqLwor CQlkb3J1bnRpbWVwcnVuZSB8PSBhbmFseXplX3BhcnRrZXlfZXhwcnMocGluZm8sIHBydW5p bmdfc3RlcHMsCisJCQkJCQkJCQkJCQlwYXJ0bmF0dHMpOworCisJCXBpbmZvbGlzdCA9IGxh cHBlbmQocGluZm9saXN0LCBwaW5mbyk7CisJfQorCisJaWYgKCFkb3J1bnRpbWVwcnVuZSkK Kwl7CisJCS8qIE5vIHJ1bi10aW1lIHBydW5pbmcgcmVxdWlyZWQuICovCisJCXJldHVybiBO SUw7CisJfQorCisJLyoKKwkgKiBSdW4tdGltZSBwcnVuaW5nIHdpbGwgYmUgcmVxdWlyZWQs IHNvIGluaXRpYWxpemUgb3RoZXIgaW5mb3JtYXRpb24uCisJICogVGhhdCBpbmNsdWRlcyB0 d28gbWFwcyAtLSBvbmUgbmVlZGVkIHRvIGNvbnZlcnQgcGFydGl0aW9uIGluZGV4ZXMKKwkg KiBvZiBsZWFmIHBhcnRpdGlvbnMgdG8gdGhlIGluZGV4ZXMgb2YgdGhlaXIgc3VicGxhbnMg aW4gdGhlIHN1YnBsYW4KKwkgKiBsaXN0LCBhbm90aGVyIG5lZWRlZCB0byBjb252ZXJ0IHBh cnRpdGlvbiBpbmRleGVzIG9mIHN1Yi1wYXJ0aXRpb25lZAorCSAqIHBhcnRpdGlvbnMgdG8g dGhlIGluZGV4ZXMgb2YgdGhlaXIgUGFydGl0aW9uZWRSZWxQcnVuZUluZm8gaW4gdGhlCisJ ICogUGFydGl0aW9uZWRSZWxQcnVuZUluZm8gbGlzdC4KKwkgKi8KKwlmb3JlYWNoKGxjLCBw aW5mb2xpc3QpCisJeworCQlQYXJ0aXRpb25lZFJlbFBydW5lSW5mbyAqcGluZm8gPSBsZmly c3QobGMpOworCQlSZWxPcHRJbmZvICpzdWJwYXJ0ID0gZmluZF9iYXNlX3JlbChyb290LCBw aW5mby0+cnRpbmRleCk7CisJCUJpdG1hcHNldCAgKnByZXNlbnRfcGFydHM7CisJCWludAkJ CW5wYXJ0cyA9IHN1YnBhcnQtPm5wYXJ0czsKKwkJaW50CQkgICAqc3VicGxhbl9tYXA7CisJ CWludAkJICAgKnN1YnBhcnRfbWFwOworCQlPaWQJCSAgICpyZWxpZF9tYXA7CisKIAkJLyoK IAkJICogQ29uc3RydWN0IHRoZSBzdWJwbGFuIGFuZCBzdWJwYXJ0IG1hcHMgZm9yIHRoaXMg cGFydGl0aW9uaW5nIGxldmVsLgogCQkgKiBIZXJlIHdlIGNvbnZlcnQgdG8gemVyby1iYXNl ZCBpbmRleGVzLCB3aXRoIC0xIGZvciBlbXB0eSBlbnRyaWVzLgpAQCAtNDU5LDMwICs0ODMs MTYgQEAgbWFrZV9wYXJ0aXRpb25lZHJlbF9wcnVuZWluZm8oUGxhbm5lckluZm8gKnJvb3Qs IFJlbE9wdEluZm8gKnBhcmVudHJlbCwKIAkJCQlzdWJwbGFuc2ZvdW5kID0gYm1zX2FkZF9t ZW1iZXIoc3VicGxhbnNmb3VuZCwgc3VicGxhbmlkeCk7CiAJCX0KIAotCQlwaW5mbyA9IG1h a2VOb2RlKFBhcnRpdGlvbmVkUmVsUHJ1bmVJbmZvKTsKLQkJcGluZm8tPnJ0aW5kZXggPSBy dGk7Ci0JCXBpbmZvLT5wcnVuaW5nX3N0ZXBzID0gcHJ1bmluZ19zdGVwczsKKwkJLyogUmVj b3JkIHRoZSBtYXBzIGFuZCBvdGhlciBpbmZvcm1hdGlvbi4gKi8KIAkJcGluZm8tPnByZXNl bnRfcGFydHMgPSBwcmVzZW50X3BhcnRzOwogCQlwaW5mby0+bnBhcnRzID0gbnBhcnRzOwog CQlwaW5mby0+c3VicGxhbl9tYXAgPSBzdWJwbGFuX21hcDsKIAkJcGluZm8tPnN1YnBhcnRf bWFwID0gc3VicGFydF9tYXA7CiAJCXBpbmZvLT5yZWxpZF9tYXAgPSByZWxpZF9tYXA7Ci0K LQkJLyogRGV0ZXJtaW5lIHdoaWNoIHBydW5pbmcgdHlwZXMgc2hvdWxkIGJlIGVuYWJsZWQg YXQgdGhpcyBsZXZlbCAqLwotCQlkb3J1bnRpbWVwcnVuZSB8PSBhbmFseXplX3BhcnRrZXlf ZXhwcnMocGluZm8sIHBydW5pbmdfc3RlcHMsCi0JCQkJCQkJCQkJCQlwYXJ0bmF0dHMpOwot Ci0JCXBpbmZvbGlzdCA9IGxhcHBlbmQocGluZm9saXN0LCBwaW5mbyk7CiAJfQogCiAJcGZy ZWUocmVsaWRfc3VicGFydF9tYXApOwogCi0JaWYgKCFkb3J1bnRpbWVwcnVuZSkKLQl7Ci0J CS8qIE5vIHJ1bi10aW1lIHBydW5pbmcgcmVxdWlyZWQuICovCi0JCXJldHVybiBOSUw7Ci0J fQotCiAJKm1hdGNoZWRzdWJwbGFucyA9IHN1YnBsYW5zZm91bmQ7CiAKIAlyZXR1cm4gcGlu Zm9saXN0OwotLSAKMi4xMS4wCgo= --------------1D899EE931AAEA6B95DE6817 Content-Type: text/plain; charset=UTF-8; name="v34-0009-Don-t-copy-PartitionBoundInfo-in-set_relation_pa.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v34-0009-Don-t-copy-PartitionBoundInfo-in-set_relation_pa.pa"; filename*1="tch" RnJvbSA5YzlkMmY5NzMxNTIyNzdjYTMzNGY5NDVjYjI3YjdhMDY1MTkxMjYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBhbWl0IDxhbWl0bGFuZ290ZTA5QGdtYWlsLmNvbT4K RGF0ZTogTW9uLCA0IE1hciAyMDE5IDE2OjAzOjQ5ICswOTAwClN1YmplY3Q6IFtQQVRDSCB2 MzQgOS85XSBEb24ndCBjb3B5IFBhcnRpdGlvbkJvdW5kSW5mbyBpbgogc2V0X3JlbGF0aW9u X3BhcnRpdGlvbl9pbmZvCgpBcyBsb25nIGFzIHdlIGhvbGQgYSBsb2NrIG9uIHRoZSB0YWJs ZSwgaXQgc2hvdWxkbid0IGNoYW5nZSwgc28Kc2VlbXMgcG9pbnRsZXNzIHRvIGNvcHksIHdo aWNoIGNhbiBnZXQgcmVhbGx5IGV4cGVuc2l2ZSBhcyB0aGUKbnVtYmVyIG9mIHBhcnRpdGlv bnMgZ3Jvd3MgYmV5b25kIHRob3VzYW5kcy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9wbGFuY2F0LmMgfCAxMCArKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci91dGlsL3BsYW5jYXQuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3Bs YW5jYXQuYwppbmRleCAyYjIyZGZmNjkwLi5iOGYwMTI2OWJlIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wbGFuY2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvcGxhbmNhdC5jCkBAIC0yMDgyLDEzICsyMDgyLDExIEBAIHNldF9yZWxh dGlvbl9wYXJ0aXRpb25faW5mbyhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqcmVs LAogCQkJCQkJCVJlbGF0aW9uIHJlbGF0aW9uKQogewogCVBhcnRpdGlvbkRlc2MgcGFydGRl c2M7Ci0JUGFydGl0aW9uS2V5IHBhcnRrZXk7CiAKIAlBc3NlcnQocmVsYXRpb24tPnJkX3Jl bC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKTsKIAogCXBhcnRkZXNj ID0gUGFydGl0aW9uRGlyZWN0b3J5TG9va3VwKHJvb3QtPmdsb2ItPnBhcnRpdGlvbl9kaXJl Y3RvcnksCiAJCQkJCQkJCQkJcmVsYXRpb24pOwotCXBhcnRrZXkgPSBSZWxhdGlvbkdldFBh cnRpdGlvbktleShyZWxhdGlvbik7CiAJcmVsLT5wYXJ0X3NjaGVtZSA9IGZpbmRfcGFydGl0 aW9uX3NjaGVtZShyb290LCByZWxhdGlvbik7CiAJQXNzZXJ0KHBhcnRkZXNjICE9IE5VTEwg JiYgcmVsLT5wYXJ0X3NjaGVtZSAhPSBOVUxMKTsKIAkvKgpAQCAtMjA5OCw3ICsyMDk2LDEz IEBAIHNldF9yZWxhdGlvbl9wYXJ0aXRpb25faW5mbyhQbGFubmVySW5mbyAqcm9vdCwgUmVs T3B0SW5mbyAqcmVsLAogCSAqIG9ubHkgbGF6aWx5IHVwZGF0ZWQgYXMgZmFyIGFzIGRyb3Bw ZWQgcGFydGl0aW9ucyBhcmUgY29uY2VybmVkLgogCSAqLwogCWlmIChwYXJ0ZGVzYy0+bnBh cnRzID4gMCkKLQkJcmVsLT5ib3VuZGluZm8gPSBwYXJ0aXRpb25fYm91bmRzX2NvcHkocGFy dGRlc2MtPmJvdW5kaW5mbywgcGFydGtleSk7CisJeworCQkvKgorCQkgKiBIb2xkaW5nIG9u dG8gdGhlIHJlbGNhY2hlIHBvaW50ZXIgc2hvdWxkIGJlIE9LLCBhcyBpdCB3b24ndCBjaGFu Z2UKKwkJICogdW5kZXIgdXMgYXMgbG9uZyBhcyB3ZSdyZSBob2xkaW5nIHRoZSBsb2NrIG9u IHRoZSByZWxhdGlvbi4KKwkJICovCisJCXJlbC0+Ym91bmRpbmZvID0gcGFydGRlc2MtPmJv dW5kaW5mbzsKKwl9CiAJcmVsLT5ucGFydHMgPSBwYXJ0ZGVzYy0+bnBhcnRzOwogCXNldF9i YXNlcmVsX3BhcnRpdGlvbl9rZXlfZXhwcnMocmVsYXRpb24sIHJlbCk7CiAJcmVsLT5wYXJ0 aXRpb25fcXVhbCA9IFJlbGF0aW9uR2V0UGFydGl0aW9uUXVhbChyZWxhdGlvbik7Ci0tIAoy LjExLjAKCg== --------------1D899EE931AAEA6B95DE6817--