Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wfApG-005JMZ-26 for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Jul 2026 06:23:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wfApF-000OLt-1p for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Jul 2026 06:23:05 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wfApF-000OLl-0K for pgsql-hackers@lists.postgresql.org; Thu, 02 Jul 2026 06:23:05 +0000 Received: from mail-oi1-x235.google.com ([2607:f8b0:4864:20::235]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wfApC-00000001KbS-2Wgk for pgsql-hackers@lists.postgresql.org; Thu, 02 Jul 2026 06:23:04 +0000 Received: by mail-oi1-x235.google.com with SMTP id 5614622812f47-48982e3f12cso872005b6e.1 for ; Wed, 01 Jul 2026 23:23:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1782973380; cv=none; d=google.com; s=arc-20260327; b=JzytwBtjezSQafsDkMs6sILzUPIdexzD/YjzKU6uLXxJ7wRfiM+h9NsNwIXRpGHmw+ aGH7NgthtWt/7S32DcUVdRRss/eIezcu3mAoqTg6vjcn2fBfgETvv/OsH0qTRnu3pCnm vNKF25q8IVrc2eq3Ol6XJCIXBjjSdpkqQJyik5G6Lyqc5gGP3HzQh8X2OnhqLcpiJDNb t0Edgb7zcERFQTZpS61ELoDARkXgaROG9vHjD5V8h4oMhlJNMUBk4hvfFA32/2X++M9X 3qOBWi0eeMNRmub8naxLvkuTDcCw5Hpl+ZTGtUbkbijnIR3RFg2bULN5xdnMoPWp/SEx EA3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=FdiXTe2VA6UMROYDWkJUxKcNHtADymoW8oe4LXvrXNQ=; fh=Jz2ZMhDrnQs541mgK80LeMuCPofMv7FW1omsADCUrTk=; b=ZbvQ5ZAHwoDgf14erDbX7XtqnDMYj+s/Aw8z0jc/j5JfjrjkrrZlkgRrcydXM53GSi 0XNSFFWeMTZc0aXzCpyQkyZYLpEp8GeYr+bwSC8kjIjfq9//OAAa2nKrh1PjGH/1MpxF c8fg2Y6DS6bR39jPY14QH6NHSp4Q2RpnH+8wG8LgRLSQEOEWuVVxC6hqDtoMTFdKXKWr ZePbttW2CPZ4jIxYNzdRiGzgVNU7jqRe7Z7w50dFCjpXTx4rSTrX7OVrivO7WxoWxxXI cU9hJTE4q5AR3GQ5kFUN3qCpGcn4o7L3F6t1l+Qq9zkLgRFr0KWwmlLTW9RjX38DOtqX XPDA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782973380; x=1783578180; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=FdiXTe2VA6UMROYDWkJUxKcNHtADymoW8oe4LXvrXNQ=; b=hUJFIWC3lzg5wtcuN7qyJPynqqVgtPAvteQRlYt/5/xfd4WzqpmDkKc3XdsQkUVc6/ UYRxgfmN3aQQ716oWdaADyLcfXnfQ4MJ/6kAtfXmfwDrI+Uv9nqrRXnQ3Sq9VLsqE2iP DZQgR+QDJRBOqO1qTDMmFrLjG9qSAGuxw6DAKPyAiha/Xd5mISPG1msBhwrzJ8bTkl+9 iRFiFaUQJtTR9qiMgdLyUPgJ7QAqEHcMrlIubwU8BOYte0j3sFy/obpj2vAxXgZ1Kpxl nG0yvww+A+msmNvD2nQqZqeUx0WUDK5FEB7S1TCVJF+j8vhpW8sbA9+FaYyecFC+I92c By7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782973380; x=1783578180; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=FdiXTe2VA6UMROYDWkJUxKcNHtADymoW8oe4LXvrXNQ=; b=aDSBYKNvMAiY5AHeYL3hbpQl/ipN/Q35I8+6WVRE9lnr9LoqcDzYmIWw2/Rw/PXa3b HwA3FqC1JHXYHMjsWtEtyl4/7H+0PMvEivYuEy1MpCha8uCN7uHeehJy4+vrGmQDQ5Hf COmahZ+jKWgL0OzhIw5tAniu0S22aFKXmnqwDTwln1U9CkU8GeTlonzPCic7/FlITuAw Oe7eGdUGbL0YVCo+B+D6JWA5+BLevDk2f1CfME1o27K94jX3k9mV9d1D9fhsGnqS8wHe Ep55DFZqH6LmI2T6ynrXQMgAoRfEJdaPH5zhaiwFii7lCxJFnSZeUeZdPQSewFpvUlSJ j25A== X-Forwarded-Encrypted: i=1; AFNElJ9Zryq9GxU2UX1TErIk0zLdPNlOyNY8wAMdw7+wzJDKH7lnKy4+MqyEMJlUKHaNm3TID1MJB0luTtbhQarD@lists.postgresql.org X-Gm-Message-State: AOJu0YzlfcnY3PM3NeCPAMJvZBAYoXagiEoPicHKA+PcQy9F7N91VBWe /lD01kMntwVzBWEeFB3yXu+tuho9FCIm/751os8YesexKb0ZzICkVpfiUg+8WIJiW1Ij18HKNMm qarWTZrhKJxClbhOoC09OecgR1yFojYA= X-Gm-Gg: AfdE7clpvN1cO5tR8aj/ogkJgOnAUWkkeaBEGCHFTrQLEPW2VMV3+zKzcriRRMAnJ9X suyRyrWe1fh8Orz8Aq4yO6DCQXYSB3y8NQUgj0AFaVpwaCN8rmZdxhevzwjP0W8XZkStG2d/u3u 5/Es8KQHbZnckakMj14IE1OX6XSwvu1BJ/DMTpdDdf8vbx9yXxfPJWS3rbpyPaLwSY7EXqDP1ge RntRfwYj1AOF7wxMc/emYilisoYfC36MpQ591Qz9TVdOAqI5Uduj/cmNfx3gU7d6a+c9allxIE= X-Received: by 2002:a05:6808:30a6:b0:495:f230:a340 with SMTP id 5614622812f47-4960ef3c5c3mr4166715b6e.28.1782973380184; Wed, 01 Jul 2026 23:23:00 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Thu, 2 Jul 2026 11:52:46 +0530 X-Gm-Features: AVVi8CdENvGskkdm4DdlYbrc0_1bVg-MM89_bcWV2yoQt2ypUxDRwNvc4qerZp8 Message-ID: Subject: Re: Support EXCEPT for ALL SEQUENCES publications To: Peter Smith Cc: Ashutosh Sharma , shveta malik , vignesh C , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000f8b62506559ad664" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f8b62506559ad664 Content-Type: text/plain; charset="UTF-8" On Thu, 2 Jul 2026 at 04:53, Peter Smith wrote: > > Only trivial comments for v16* > > ////// > v16-0001 > ////// > > ====== > src/bin/pg_dump/pg_dump.c > > getPublictions: > > 1. > /* > - * Get the list of tables for publications specified in the EXCEPT > - * TABLE clause. > + * Get the list of tables and sequences for publications specified in > + * the EXCEPT clause. > * > > Perhaps this comment should say that EXCEPT (TABLE ...) is introduced > in PG19, and EXCEPT (SEQUENCE ...) is introduced in PG20. That way > there are no surprises about the different version checks that follow. > > ====== > src/test/subscription/t/037_except.pl > > 2. > +# Check the initial data on subscriber > +$result = $node_subscriber->safe_psql('postgres', > + "SELECT last_value, is_called FROM seq_excluded_in_pub1"); > +is($result, '1|f', 'sequences in EXCEPT list is excluded'); > > typo: plural. Should be "sequences in the EXCEPT list are excluded" > > ////// > v16-0002 > ////// > > ====== > src/test/subscription/t/037_except.pl > > 1. > +is($result, '1|f', 'sequences in EXCEPT list is excluded'); > > typo: plural. Should be "sequences in the EXCEPT list are excluded" > Thanks Peter for the review. I have addressed the comments. Also the patch needed a rebase after the recent commits. Please find the updated v17 patch attached. Thanks, Shlok Kyal --000000000000f8b62506559ad664 Content-Type: application/octet-stream; name="v17-0001-Support-EXCEPT-for-ALL-SEQUENCES-in-CREATE-PUBLI.patch" Content-Disposition: attachment; filename="v17-0001-Support-EXCEPT-for-ALL-SEQUENCES-in-CREATE-PUBLI.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr345ukv0 RnJvbSAyMGVjZTdiNDdkYTUxYzhhMmViZjNkNTI5ZDgwNDUzZWQ4MTg1Y2FlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjYgTWF5IDIwMjYgMTA6NTE6MjYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx NyAxLzJdIFN1cHBvcnQgRVhDRVBUIGZvciBBTEwgU0VRVUVOQ0VTIGluIENSRUFURQogUFVCTElD QVRJT04KCkV4dGVuZCBDUkVBVEUgUFVCTElDQVRJT04gLi4uIEZPUiBBTEwgU0VRVUVOQ0VTIHRv IHN1cHBvcnQgdGhlCkVYQ0VQVCBzeW50YXguIFRoaXMgYWxsb3dzIG9uZSBvciBtb3JlIHNlcXVl bmNlcyB0byBiZSBleGNsdWRlZC4gVGhlCnB1Ymxpc2hlciB3aWxsIG5vdCBzZW5kIHRoZSBkYXRh IG9mIGV4Y2x1ZGVkIHNlcXVlbmNlcyB0byB0aGUgc3Vic2NyaWJlci4KCkV4YW1wbGU6CkNSRUFU RSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgU0VRVUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0UgczEs IHMyKTsKLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICB8ICAg OCArLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgIHwgIDQ2ICsrKysrKy0t LQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgfCAgNzAgKysrKysr KystLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgfCAxMTgg KysrKysrKysrKysrKy0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAg ICAgICAgICAgfCAxMTcgKysrKysrKysrKysrKy0tLS0tLS0tCiBzcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jICAgICAgICAgICAgICAgICB8ICA2NSArKysrKysrKystLS0KIHNyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsICAgICAgICAgIHwgIDIyICsrKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5j ICAgICAgICAgICAgICAgICAgIHwgIDg5ICsrKysrKysrKysrKysrLS0KIHNyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgIHwgIDEyICsrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5oICAgICAgfCAgIDcgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgIHwgIDE1ICstLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w dWJsaWNhdGlvbi5vdXQgfCAgOTkgKysrKysrKysrKysrKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICB8ICA1MiArKysrKysrKystCiBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsICAgICB8ICA3OSArKysrKysrKysrKysrKysKIHNyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgIHwgICAyICstCiAxNyBmaWxlcyBj aGFuZ2VkLCA2MzUgaW5zZXJ0aW9ucygrKSwgMTc1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggNGI0NzRjMTM5MTcuLjQzYTM1NjZkZGEyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNzA5OSw3 ICs3MDk5LDcgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICAocmVmZXJlbmNlcyA8 bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNsYXNzIj48c3RydWN0bmFtZT5wZ19jbGFzczwvc3Ry dWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKICAgICAgIDwv cGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIFJlZmVyZW5jZSB0byB0YWJsZQorICAgICAgIFJl ZmVyZW5jZSB0byB0YWJsZSBvciBzZXF1ZW5jZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg IDwvcm93PgogCkBAIC03MTA4LDggKzcxMDgsOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJs ZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAog ICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlw ZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIFRydWUgaWYgdGhlIHRhYmxl IGlzIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLiBTZWUKLSAgICAgICA8bGluayBsaW5r ZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLWZvci1leGNlcHQtdGFibGUiPjxsaXRl cmFsPkVYQ0VQVDwvbGl0ZXJhbD48L2xpbms+LgorICAgICAgIFRydWUgaWYgdGhlIHRhYmxlIG9y IHNlcXVlbmNlIGlzIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLiBTZWUKKyAgICAgICA8 bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLWZvci1leGNlcHQiPjxs aXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD48L2xpbms+LgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgIDwvcm93PgogCkBAIC03MTE4LDcgKzcxMTgsNyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogICAgICAgPHN0cnVjdGZpZWxkPnBycXVhbDwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX25vZGVf dHJlZTwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPkV4cHJlc3Npb24gdHJlZSAo aW4gPGZ1bmN0aW9uPm5vZGVUb1N0cmluZygpPC9mdW5jdGlvbj4KLSAgICAgIHJlcHJlc2VudGF0 aW9uKSBmb3IgdGhlIHJlbGF0aW9uJ3MgcHVibGljYXRpb24gcXVhbGlmeWluZyBjb25kaXRpb24u IE51bGwKKyAgICAgIHJlcHJlc2VudGF0aW9uKSBmb3IgdGhlIHRhYmxlJ3MgcHVibGljYXRpb24g cXVhbGlmeWluZyBjb25kaXRpb24uIE51bGwKICAgICAgIGlmIHRoZXJlIGlzIG5vIHB1YmxpY2F0 aW9uIHF1YWxpZnlpbmcgY29uZGl0aW9uLjwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggZjIxMjM5YWY2YjguLmEyOTYx YmQzYzQxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTExOCw4ICsx MTgsMTIgQEAKICAgIHN5bmNocm9uaXplZCBhdCBhbnkgdGltZS4gRm9yIG1vcmUgaW5mb3JtYXRp b24sIHNlZQogICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1zZXF1ZW5jZXMi Lz4uIFdoZW4gYSBwdWJsaWNhdGlvbiBpcwogICAgY3JlYXRlZCB3aXRoIDxsaXRlcmFsPkZPUiBB TEwgVEFCTEVTPC9saXRlcmFsPiwgYSB0YWJsZSBvciBzZXQgb2YgdGFibGVzIGNhbgotICAgYmUg ZXhwbGljaXRseSBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uIHVzaW5nIHRoZQotICAgPGxpbmsg bGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItZXhjZXB0LXRhYmxlIj48 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+PC9saW5rPgorICAgYmUgZXhwbGljaXRseSBleGNsdWRl ZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiB1c2luZyB0aGUKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1j cmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4Y2VwdCI+PGxpdGVyYWw+RVhDRVBUPC9saXRl cmFsPjwvbGluaz4KKyAgIGNsYXVzZS4gU2ltaWxhcmx5LCB3aGVuIGEgcHVibGljYXRpb24gaXMg Y3JlYXRlZCB3aXRoCisgICA8bGl0ZXJhbD5GT1IgQUxMIFNFUVVFTkNFUzwvbGl0ZXJhbD4sIGEg c2VxdWVuY2Ugb3Igc2V0IG9mIHNlcXVlbmNlcyBjYW4gYmUKKyAgIGV4cGxpY2l0bHkgZXhjbHVk ZWQgZnJvbSB0aGUgcHVibGljYXRpb24gdXNpbmcgdGhlCisgICA8bGluayBsaW5rZW5kPSJzcWwt Y3JlYXRlcHVibGljYXRpb24tcGFyYW1zLWZvci1leGNlcHQiPjxsaXRlcmFsPkVYQ0VQVDwvbGl0 ZXJhbD48L2xpbms+CiAgICBjbGF1c2UuCiAgIDwvcGFyYT4KIApkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggODVjZmNhZGRhZmEuLjM2MGRjN2VkYTZhIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMzLDcgKzMzLDcgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4KIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w dWJsaWNhdGlvbl9hbGxfb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgog CiAgICAgQUxMIFRBQkxFUyBbIEVYQ0VQVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5leGNlcHRfdGFibGVfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdCi0gICAgQUxM IFNFUVVFTkNFUworICAgIEFMTCBTRVFVRU5DRVMgWyBFWENFUFQgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhjZXB0X3NlcXVlbmNlX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4u LiBdICkgXQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfYW5kX2NvbHVtbnM8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIApAQCAtNDYsNiArNDYs MTAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4KIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj50YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIAogICAgWyBPTkxZ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiBbICogXQorCis8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhj ZXB0X3NlcXVlbmNlX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgU0VR VUVOQ0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlcXVlbmNlX25hbWU8L3JlcGxh Y2VhYmxlPiBbLCAuLi4gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0x ODksMjIgKzE5MywyNiBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICA8cGFyYT4KICAgICAgIE9ubHkgcGVy c2lzdGVudCBzZXF1ZW5jZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBwdWJsaWNhdGlvbi4gVGVtcG9y YXJ5CiAgICAgICBzZXF1ZW5jZXMgYW5kIHVubG9nZ2VkIHNlcXVlbmNlcyBhcmUgZXhjbHVkZWQg ZnJvbSB0aGUgcHVibGljYXRpb24uCisgICAgICBTZXF1ZW5jZXMgbGlzdGVkIGluIHRoZSA8bGl0 ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgZXhjbHVkZWQgZnJvbQorICAgICAgdGhl IHB1YmxpY2F0aW9uLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCi0gICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFy YW1zLWZvci1leGNlcHQtdGFibGUiPgorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXB1 YmxpY2F0aW9uLXBhcmFtcy1mb3ItZXhjZXB0Ij4KICAgICA8dGVybT48bGl0ZXJhbD5FWENFUFQ8 L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+Ci0gICAgICBUaGlz IGNsYXVzZSBzcGVjaWZpZXMgYSBsaXN0IG9mIHRhYmxlcyB0byBiZSBleGNsdWRlZCBmcm9tIHRo ZQorICAgICAgVGhpcyBjbGF1c2Ugc3BlY2lmaWVzIHRoZSB0YWJsZXMgb3Igc2VxdWVuY2VzIHRv IGJlIGV4Y2x1ZGVkIGZyb20gYW4KKyAgICAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+ IG9yIDxsaXRlcmFsPkFMTCBTRVFVRU5DRVM8L2xpdGVyYWw+CiAgICAgICBwdWJsaWNhdGlvbi4K ICAgICAgPC9wYXJhPgogICAgICA8cGFyYT4KLSAgICAgIE9uY2UgYSB0YWJsZSBpcyBleGNsdWRl ZCwgdGhlIGV4Y2x1c2lvbiBhcHBsaWVzIHRvIHRoYXQgdGFibGUKLSAgICAgIHJlZ2FyZGxlc3Mg b2YgaXRzIG5hbWUgb3Igc2NoZW1hLiBSZW5hbWluZyB0aGUgdGFibGUgb3IgbW92aW5nIGl0IHRv Ci0gICAgICBhbm90aGVyIHNjaGVtYSB1c2luZyA8Y29tbWFuZD5BTFRFUiBUQUJMRSAuLi4gU0VU IFNDSEVNQTwvY29tbWFuZD4gZG9lcwotICAgICAgbm90IHJlbW92ZSB0aGUgZXhjbHVzaW9uLgor ICAgICAgT25jZSBhIHRhYmxlIG9yIHNlcXVlbmNlIGlzIGV4Y2x1ZGVkLCB0aGUgZXhjbHVzaW9u IGFwcGxpZXMgdG8gdGhhdAorICAgICAgb2JqZWN0IHJlZ2FyZGxlc3Mgb2YgaXRzIG5hbWUgb3Ig c2NoZW1hLiBSZW5hbWluZyB0aGUgb2JqZWN0IG9yIG1vdmluZworICAgICAgaXQgdG8gYW5vdGhl ciBzY2hlbWEgdXNpbmcgPGNvbW1hbmQ+QUxURVIgVEFCTEUgLi4uIFNFVCBTQ0hFTUE8L2NvbW1h bmQ+CisgICAgICBvciA8Y29tbWFuZD5BTFRFUiBTRVFVRU5DRSAuLi4gU0VUIFNDSEVNQTwvY29t bWFuZD4gZG9lcyBub3QgcmVtb3ZlIHRoZQorICAgICAgZXhjbHVzaW9uLgogICAgICA8L3BhcmE+ CiAgICAgIDxwYXJhPgogICAgICAgRm9yIGluaGVyaXRlZCB0YWJsZXMsIGlmIDxsaXRlcmFsPk9O TFk8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCBiZWZvcmUgdGhlCkBAIC0yMjMsOSArMjMxLDEwIEBA IENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+CiAgICAgIDwvcGFyYT4KICAgICAgPHBhcmE+CiAgICAgICBUaGVyZSBjYW4g YmUgYSBjYXNlIHdoZXJlIGEgc3Vic2NyaXB0aW9uIGluY2x1ZGVzIG11bHRpcGxlIHB1YmxpY2F0 aW9ucy4KLSAgICAgIEluIHN1Y2ggYSBjYXNlLCBhIHRhYmxlIG9yIHBhcnRpdGlvbiB0aGF0IGlz IGluY2x1ZGVkIGluIG9uZSBwdWJsaWNhdGlvbgotICAgICAgYnV0IGV4Y2x1ZGVkIChleHBsaWNp dGx5IG9yIGltcGxpY2l0bHkpIGJ5IHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+Ci0gICAg ICBjbGF1c2Ugb2YgYW5vdGhlciBpcyBjb25zaWRlcmVkIGluY2x1ZGVkIGZvciByZXBsaWNhdGlv bi4KKyAgICAgIEluIHN1Y2ggYSBjYXNlLCBhIHRhYmxlLCBwYXJ0aXRpb24gb3Igc2VxdWVuY2Ug dGhhdCBpcyBpbmNsdWRlZCBpbiBvbmUKKyAgICAgIHB1YmxpY2F0aW9uIGJ1dCBleGNsdWRlZCAo ZXhwbGljaXRseSBvciBpbXBsaWNpdGx5KSBieSB0aGUKKyAgICAgIDxsaXRlcmFsPkVYQ0VQVDwv bGl0ZXJhbD4gY2xhdXNlIG9mIGFub3RoZXIgaXMgY29uc2lkZXJlZCBpbmNsdWRlZCBmb3IKKyAg ICAgIHJlcGxpY2F0aW9uLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFy bGlzdGVudHJ5PgpAQCAtNTUzLDExICs1NjIsMjAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIGFsbF90 YWJsZXNfZXhjZXB0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgdXNlcnMsIGRlcGFydG0K ICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJs aXNoZXMgYWxsIHNlcXVlbmNlcyBmb3Igc3luY2hyb25pemF0aW9uLCBhbmQKLSAgIGFsbCBjaGFu Z2VzIGluIGFsbCB0YWJsZXMgZXhjZXB0IDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiBh bmQKLSAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1lPjoKKyAgIENyZWF0ZSBh IHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBzZXF1ZW5jZXMgZm9yIHN5bmNocm9uaXph dGlvbiBleGNlcHQKKyAgIDxzdHJ1Y3RuYW1lPnNlcTE8L3N0cnVjdG5hbWU+IGFuZCA8c3RydWN0 bmFtZT5zZXEyPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNB VElPTiBhbGxfc2VxdWVuY2VzX2V4Y2VwdCBGT1IgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVF TkNFIHNlcTEsIHNlcTIpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIHNlcXVlbmNlcyBm b3Igc3luY2hyb25pemF0aW9uIGV4Y2VwdAorICAgPHN0cnVjdG5hbWU+c2VxMTwvc3RydWN0bmFt ZT4gYW5kIDxzdHJ1Y3RuYW1lPnNlcTI8L3N0cnVjdG5hbWU+LCBhbmQgYWxsCisgICBjaGFuZ2Vz IGluIGFsbCB0YWJsZXMgZXhjZXB0CisgICA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4g YW5kIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1lPjoKIDxwcm9ncmFtbGlzdGlu Zz4KLUNSRUFURSBQVUJMSUNBVElPTiBhbGxfc2VxdWVuY2VzX3RhYmxlc19leGNlcHQgRk9SIEFM TCBTRVFVRU5DRVMsIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMp OworQ1JFQVRFIFBVQkxJQ0FUSU9OIGFsbF9zZXF1ZW5jZXNfdGFibGVzX2V4Y2VwdCBGT1IgQUxM IFNFUVVFTkNFUyBFWENFUFQgKFNFUVVFTkNFIHNlcTEsIHNlcTIpLCBBTEwgVEFCTEVTIEVYQ0VQ VCAoVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFy YT4KICA8L3JlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IDFl Yzk0Yzg1MWIyLi41ZWI0ZGU3NDRkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24u YwpAQCAtNDksMjAgKzQ5LDI4IEBAIHR5cGVkZWYgc3RydWN0CiB9IHB1Ymxpc2hlZF9yZWw7CiAK IC8qCi0gKiBDaGVjayBpZiByZWxhdGlvbiBjYW4gYmUgaW4gZ2l2ZW4gcHVibGljYXRpb24gYW5k IHRocm93cyBhcHByb3ByaWF0ZQotICogZXJyb3IgaWYgbm90LgorICogQ2hlY2sgaWYgdGhlIHRh cmdldCByZWxhdGlvbiBpcyBhbGxvd2VkIHRvIGJlIHNwZWNpZmllZCBpbiB0aGUgZ2l2ZW4KKyAq IHB1YmxpY2F0aW9uIGFuZCB0aHJvdyBhbiBlcnJvciBpZiBub3QuCisgKgorICogJ3B1YnJlbGtp bmQnIGlzIHRoZSByZWxraW5kIGFjY2VwdGVkIGJ5IHRoZSBwdWJsaWNhdGlvbiBjbGF1c2UuIFRo ZSByZWxraW5kCisgKiBvZiB0aGUgcmVsYXRpb24gaW4gJ3ByaScgaXMgY2hlY2tlZCBmb3IgY29t cGF0aWJpbGl0eSBhZ2FpbnN0IGl0LiBFcnJvciBpcworICogcmFpc2VkIGlmIHRoZXkgYXJlIG5v dCBjb21wYXRpYmxlLgogICovCiBzdGF0aWMgdm9pZAotY2hlY2tfcHVibGljYXRpb25fYWRkX3Jl bGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpKQorY2hlY2tfcHVibGljYXRpb25fYWRkX3Jl bGF0aW9uKFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLCBjaGFyIHB1YnJlbGtpbmQpCiB7CiAJUmVs YXRpb24JdGFyZ2V0cmVsID0gcHJpLT5yZWxhdGlvbjsKKwljaGFyCQl0YXJnZXRyZWxraW5kID0g UmVsYXRpb25HZXRGb3JtKHRhcmdldHJlbCktPnJlbGtpbmQ7CiAJY29uc3QgY2hhciAqcmVsbmFt ZTsKIAljb25zdCBjaGFyICplcnJvcm1zZzsKIAogCWlmIChwcmktPmV4Y2VwdCkKIAl7CiAJCXJl bG5hbWUgPSBSZWxhdGlvbkdldFF1YWxpZmllZFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpOwotCQll cnJvcm1zZyA9IGdldHRleHRfbm9vcCgiY2Fubm90IHNwZWNpZnkgcmVsYXRpb24gXCIlc1wiIGlu IHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgY2xhdXNlIik7CisJCWlmIChwdWJyZWxraW5kID09IFJF TEtJTkRfU0VRVUVOQ0UpCisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiY2Fubm90IHNwZWNp ZnkgXCIlc1wiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgKFNFUVVFTkNFKSBjbGF1c2UiKTsK KwkJZWxzZQorCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImNhbm5vdCBzcGVjaWZ5IFwiJXNc IiBpbiB0aGUgcHVibGljYXRpb24gRVhDRVBUIChUQUJMRSkgY2xhdXNlIik7CiAJfQogCWVsc2UK IAl7CkBAIC03NywxMyArODUsMjMgQEAgY2hlY2tfcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKFB1 YmxpY2F0aW9uUmVsSW5mbyAqcHJpKQogCQkJCSBlcnJtc2coZXJyb3Jtc2csIHJlbG5hbWUpLAog CQkJCSBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGl2 aWR1YWwgcGFydGl0aW9ucy4iKSkpOwogCi0JLyogTXVzdCBiZSBhIHJlZ3VsYXIgb3IgcGFydGl0 aW9uZWQgdGFibGUgKi8KLQlpZiAoUmVsYXRpb25HZXRGb3JtKHRhcmdldHJlbCktPnJlbGtpbmQg IT0gUkVMS0lORF9SRUxBVElPTiAmJgotCQlSZWxhdGlvbkdldEZvcm0odGFyZ2V0cmVsKS0+cmVs a2luZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCS8qCisJICogTXVzdCBiZSBhIHJl Z3VsYXIgb3IgcGFydGl0aW9uZWQgdGFibGUgd2hlbiBzcGVjaWZpZWQgaW4gRk9SIFRBQkxFIG9y CisJICogRVhDRVBUIHRhYmxlIGxpc3QKKwkgKi8KKwlpZiAocHVicmVsa2luZCA9PSBSRUxLSU5E X1JFTEFUSU9OICYmIHRhcmdldHJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTiAmJgorCQl0YXJn ZXRyZWxraW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVy cm1zZyhlcnJvcm1zZywgcmVsbmFtZSksCisJCQkJIGVycmRldGFpbF9yZWxraW5kX25vdF9zdXBw b3J0ZWQodGFyZ2V0cmVsa2luZCkpKTsKKworCS8qIE11c3QgYmUgYSBzZXF1ZW5jZSBpZiBzcGVj aWZpZWQgaW4gRVhDRVBUIHNlcXVlbmNlIGxpc3QgKi8KKwlpZiAocHVicmVsa2luZCA9PSBSRUxL SU5EX1NFUVVFTkNFICYmIHRhcmdldHJlbGtpbmQgIT0gUkVMS0lORF9TRVFVRU5DRSkKIAkJZXJl cG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVF KSwKIAkJCQkgZXJybXNnKGVycm9ybXNnLCByZWxuYW1lKSwKLQkJCQkgZXJyZGV0YWlsX3JlbGtp bmRfbm90X3N1cHBvcnRlZChSZWxhdGlvbkdldEZvcm0odGFyZ2V0cmVsKS0+cmVsa2luZCkpKTsK KwkJCQkgZXJyZGV0YWlsX3JlbGtpbmRfbm90X3N1cHBvcnRlZCh0YXJnZXRyZWxraW5kKSkpOwog CiAJLyogQ2FuJ3QgYmUgc3lzdGVtIHRhYmxlICovCiAJaWYgKElzQ2F0YWxvZ1JlbGF0aW9uKHRh cmdldHJlbCkpCkBAIC0xMDQsMTEgKzEyMiwxNSBAQCBjaGVja19wdWJsaWNhdGlvbl9hZGRfcmVs YXRpb24oUHVibGljYXRpb25SZWxJbmZvICpwcmkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJIGVycm1zZyhlcnJv cm1zZywgcmVsbmFtZSksCisJCQkJIHRhcmdldHJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSA/ CisJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgdGVt cG9yYXJ5IHNlcXVlbmNlcy4iKSA6CiAJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVyYXRpb24gaXMg bm90IHN1cHBvcnRlZCBmb3IgdGVtcG9yYXJ5IHRhYmxlcy4iKSkpOwogCWVsc2UgaWYgKHRhcmdl dHJlbC0+cmRfcmVsLT5yZWxwZXJzaXN0ZW5jZSA9PSBSRUxQRVJTSVNURU5DRV9VTkxPR0dFRCkK IAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVS X1ZBTFVFKSwKIAkJCQkgZXJybXNnKGVycm9ybXNnLCByZWxuYW1lKSwKKwkJCQkgdGFyZ2V0cmVs a2luZCA9PSBSRUxLSU5EX1NFUVVFTkNFID8KKwkJCQkgZXJyZGV0YWlsKCJUaGlzIG9wZXJhdGlv biBpcyBub3Qgc3VwcG9ydGVkIGZvciB1bmxvZ2dlZCBzZXF1ZW5jZXMuIikgOgogCQkJCSBlcnJk ZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHVubG9nZ2VkIHRhYmxl cy4iKSkpOwogfQogCkBAIC01MzEsNyArNTUzLDggQEAgYXR0bnVtc3RvaW50MnZlY3RvcihCaXRt YXBzZXQgKmF0dHJzKQogICovCiBPYmplY3RBZGRyZXNzCiBwdWJsaWNhdGlvbl9hZGRfcmVsYXRp b24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8gKnByaSwKLQkJCQkJCSBib29sIGlmX25v dF9leGlzdHMsIEFsdGVyUHVibGljYXRpb25TdG10ICphbHRlcl9zdG10KQorCQkJCQkJIGJvb2wg aWZfbm90X2V4aXN0cywgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKmFsdGVyX3N0bXQsCisJCQkJCQkg Y2hhciBwdWJyZWxraW5kKQogewogCVJlbGF0aW9uCXJlbDsKIAlIZWFwVHVwbGUJdHVwOwpAQCAt NTY5LDcgKzU5Miw3IEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1Ymxp Y2F0aW9uUmVsSW5mbyAqcHJpLAogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0 cmVsKSwgcHViLT5uYW1lKSkpOwogCX0KIAotCWNoZWNrX3B1YmxpY2F0aW9uX2FkZF9yZWxhdGlv bihwcmkpOworCWNoZWNrX3B1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihwcmksIHB1YnJlbGtpbmQp OwogCiAJLyogVmFsaWRhdGUgYW5kIHRyYW5zbGF0ZSBjb2x1bW4gbmFtZXMgaW50byBhIEJpdG1h cHNldCBvZiBhdHRudW1zLiAqLwogCWF0dG51bXMgPSBwdWJfY29sbGlzdF92YWxpZGF0ZShwcmkt PnJlbGF0aW9uLCBwcmktPmNvbHVtbnMpOwpAQCAtOTg5LDE1ICsxMDEyLDE3IEBAIEdldEluY2x1 ZGVkUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHVi X3BhcnRvcHQpCiB9CiAKIC8qCi0gKiBHZXRzIGxpc3Qgb2YgdGFibGUgb2lkcyB0aGF0IHdlcmUg c3BlY2lmaWVkIGluIHRoZSBFWENFUFQgY2xhdXNlIGZvciBhCi0gKiBwdWJsaWNhdGlvbi4KLSAq Ci0gKiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb25z LgorICogR2V0cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgdGhhdCB3ZXJlIHNwZWNpZmllZCBpbiB0 aGUgRVhDRVBUIGNsYXVzZSBmb3IgYQorICogJ0ZPUiBBTEwgVEFCTEVTJyBvciBhICdGT1IgQUxM IFNFUVVFTkNFUycgcHVibGljYXRpb24uCiAgKi8KIExpc3QgKgotR2V0RXhjbHVkZWRQdWJsaWNh dGlvblRhYmxlcyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKK0dl dEV4Y2x1ZGVkUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRP cHQgcHViX3BhcnRvcHQpCiB7Ci0JQXNzZXJ0KEdldFB1YmxpY2F0aW9uKHB1YmlkKS0+YWxsdGFi bGVzKTsKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJUHVibGljYXRpb24gKnB1YiA9IEdl dFB1YmxpY2F0aW9uKHB1YmlkKTsKKworCUFzc2VydChwdWItPmFsbHRhYmxlcyB8fCBwdWItPmFs bHNlcXVlbmNlcyk7CisjZW5kaWYKIAogCXJldHVybiBnZXRfcHVibGljYXRpb25fcmVsYXRpb25z KHB1YmlkLCBwdWJfcGFydG9wdCwgdHJ1ZSk7CiB9CkBAIC0xMDQ4LDggKzEwNzMsOSBAQCBHZXRB bGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkKICAqIHJvb3QgcGFydGl0aW9uZWQgdGFibGVzLiBU aGlzIGlzIG5vdCBhcHBsaWNhYmxlIHRvIEZPUiBBTEwgU0VRVUVOQ0VTCiAgKiBwdWJsaWNhdGlv bi4KICAqCi0gKiBGb3IgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiwgdGhlIHJldHVybmVk IGxpc3QgZXhjbHVkZXMgdGFibGVzIG1lbnRpb25lZAotICogaW4gdGhlIEVYQ0VQVCBjbGF1c2Uu CisgKiBGb3IgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiwgdGhlIHJldHVybmVkIGxpc3Qg ZXhjbHVkZXMgdGFibGVzCisgKiBzcGVjaWZpZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2UuIEZvciBh IEZPUiBBTEwgU0VRVUVOQ0VTIHB1YmxpY2F0aW9uLAorICogaXQgZXhjbHVkZXMgc2VxdWVuY2Vz IHNwZWNpZmllZCBpbiB0aGUgRVhDRVBUIGNsYXVzZS4KICAqLwogTGlzdCAqCiBHZXRBbGxQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290 KQpAQCAtMTA2MywxMSArMTA4OSw5IEBAIEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBw dWJpZCwgY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAKIAlBc3NlcnQoIShyZWxraW5k ID09IFJFTEtJTkRfU0VRVUVOQ0UgJiYgcHVidmlhcm9vdCkpOwogCi0JLyogRVhDRVBUIGZpbHRl cmluZyBhcHBsaWVzIG9ubHkgdG8gcmVsYXRpb25zLCBub3Qgc2VxdWVuY2VzICovCi0JaWYgKHJl bGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTikKLQkJZXhjZXB0bGlzdCA9IEdldEV4Y2x1ZGVkUHVi bGljYXRpb25UYWJsZXMocHViaWQsIHB1YnZpYXJvb3QgPwotCQkJCQkJCQkJCQkJICBQVUJMSUNB VElPTl9QQVJUX1JPT1QgOgotCQkJCQkJCQkJCQkJICBQVUJMSUNBVElPTl9QQVJUX0xFQUYpOwor CWV4Y2VwdGxpc3QgPSBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBwdWJ2 aWFyb290ID8KKwkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JPT1QgOgorCQkJCQkJCQkJ CQkJIFBVQkxJQ0FUSU9OX1BBUlRfTEVBRik7CiAKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVs YXRpb25SZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCmluZGV4IDQ0MGFkYjM1NmFkLi5iZDE3MWY5ZTQ4ZSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTYxLDExICs2MSwxMSBAQCB0eXBlZGVm IHN0cnVjdCByZl9jb250ZXh0CiAJT2lkCQkJcGFyZW50aWQ7CQkvKiByZWxpZCBvZiB0aGUgcGFy ZW50IHJlbGF0aW9uICovCiB9IHJmX2NvbnRleHQ7CiAKLXN0YXRpYyBMaXN0ICpPcGVuVGFibGVM aXN0KExpc3QgKnRhYmxlcyk7Ci1zdGF0aWMgdm9pZCBDbG9zZVRhYmxlTGlzdChMaXN0ICpyZWxz KTsKK3N0YXRpYyBMaXN0ICpPcGVuUmVsYXRpb25MaXN0KExpc3QgKnRhYmxlcyk7CitzdGF0aWMg dm9pZCBDbG9zZVJlbGF0aW9uTGlzdChMaXN0ICpyZWxzKTsKIHN0YXRpYyB2b2lkIExvY2tTY2hl bWFMaXN0KExpc3QgKnNjaGVtYWxpc3QpOwotc3RhdGljIHZvaWQgUHVibGljYXRpb25BZGRUYWJs ZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIGlmX25vdF9leGlzdHMsCi0JCQkJCQkJCSBB bHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCk7CitzdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkFkZFJl bGF0aW9ucyhPaWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJ CQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBjaGFyIHB1YnJlbGtpbmQpOwogc3RhdGlj IHZvaWQgUHVibGljYXRpb25Ecm9wVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBt aXNzaW5nX29rKTsKIHN0YXRpYyB2b2lkIFB1YmxpY2F0aW9uQWRkU2NoZW1hcyhPaWQgcHViaWQs IExpc3QgKnNjaGVtYXMsIGJvb2wgaWZfbm90X2V4aXN0cywKIAkJCQkJCQkJICBBbHRlclB1Ymxp Y2F0aW9uU3RtdCAqc3RtdCk7CkBAIC0xNzYsMTIgKzE3NiwxMyBAQCBwYXJzZV9wdWJsaWNhdGlv bl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIH0KIAogLyoKLSAqIENvbnZlcnQgdGhlIFB1 YmxpY2F0aW9uT2JqU3BlY1R5cGUgbGlzdCBpbnRvIHNjaGVtYSBvaWQgbGlzdCBhbmQKLSAqIFB1 YmxpY2F0aW9uVGFibGUgbGlzdC4KKyAqIENvbnZlcnQgdGhlIFB1YmxpY2F0aW9uT2JqU3BlY1R5 cGUgbGlzdCBpbnRvIFB1YmxpY2F0aW9uUmVsYXRpb24gbGlzdHMKKyAqIChgcmVsc2AsIGBleGNl cHR0YmxzYCwgYGV4Y2VwdHNlcXNgKSBhbmQgYSBzY2hlbWEgb2lkIGxpc3QgKGBzY2hlbWFzYCku CiAgKi8KIHN0YXRpYyB2b2lkCiBPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJv YmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCSAgIExpc3QgKipyZWxzLCBM aXN0ICoqZXhjZXB0cmVscywgTGlzdCAqKnNjaGVtYXMpCisJCQkJCQkgICBMaXN0ICoqcmVscywg TGlzdCAqKmV4Y2VwdHRibHMsIExpc3QgKipleGNlcHRzZXFzLAorCQkJCQkJICAgTGlzdCAqKnNj aGVtYXMpCiB7CiAJTGlzdENlbGwgICAqY2VsbDsKIAlQdWJsaWNhdGlvbk9ialNwZWMgKnB1Ym9i ajsKQEAgLTE5OSwxMiArMjAwLDE2IEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3Qg KnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQlzd2l0Y2ggKHB1Ym9iai0+ cHVib2JqdHlwZSkKIAkJewogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU6Ci0J CQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKLQkJCQkqZXhjZXB0cmVscyA9IGxh cHBlbmQoKmV4Y2VwdHJlbHMsIHB1Ym9iai0+cHVidGFibGUpOworCQkJCXB1Ym9iai0+cHVicmVs YXRpb24tPmV4Y2VwdCA9IHRydWU7CisJCQkJKmV4Y2VwdHRibHMgPSBsYXBwZW5kKCpleGNlcHR0 YmxzLCBwdWJvYmotPnB1YnJlbGF0aW9uKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgUFVCTElDQVRJ T05PQkpfRVhDRVBUX1NFUVVFTkNFOgorCQkJCXB1Ym9iai0+cHVicmVsYXRpb24tPmV4Y2VwdCA9 IHRydWU7CisJCQkJKmV4Y2VwdHNlcXMgPSBsYXBwZW5kKCpleGNlcHRzZXFzLCBwdWJvYmotPnB1 YnJlbGF0aW9uKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEU6Ci0J CQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7Ci0JCQkJKnJlbHMgPSBsYXBwZW5k KCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlwdWJvYmotPnB1YnJlbGF0aW9uLT5leGNl cHQgPSBmYWxzZTsKKwkJCQkqcmVscyA9IGxhcHBlbmQoKnJlbHMsIHB1Ym9iai0+cHVicmVsYXRp b24pOwogCQkJCWJyZWFrOwogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1B OgogCQkJCXNjaGVtYWlkID0gZ2V0X25hbWVzcGFjZV9vaWQocHVib2JqLT5uYW1lLCBmYWxzZSk7 CkBAIC04NDksNyArODU0LDggQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRl LCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJY2hhcgkJcHVibGlzaF9nZW5lcmF0ZWRf Y29sdW1uczsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OwogCUxpc3QJICAgKnJlbGF0aW9ucyA9IE5J TDsKLQlMaXN0CSAgICpleGNlcHRyZWxhdGlvbnMgPSBOSUw7CisJTGlzdAkgICAqZXhjZXB0dGJs cyA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRzZXFzID0gTklMOwogCUxpc3QJICAgKnNjaGVtYWlk bGlzdCA9IE5JTDsKIAogCS8qIG11c3QgaGF2ZSBDUkVBVEUgcHJpdmlsZWdlIG9uIGRhdGFiYXNl ICovCkBAIC05MzYsMTggKzk0MiwyOSBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAogCS8qIEFzc29jaWF0ZSBvYmpl Y3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLwogCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRz KHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKLQkJCQkJCQkgICAmZXhjZXB0 cmVsYXRpb25zLCAmc2NoZW1haWRsaXN0KTsKKwkJCQkJCQkgICAmZXhjZXB0dGJscywgJmV4Y2Vw dHNlcXMsICZzY2hlbWFpZGxpc3QpOworCisJaWYgKHN0bXQtPmZvcl9hbGxfc2VxdWVuY2VzKQor CXsKKwkJLyogUHJvY2VzcyBFWENFUFQgc2VxdWVuY2UgbGlzdCAqLworCQlpZiAoZXhjZXB0c2Vx cyAhPSBOSUwpCisJCXsKKwkJCUxpc3QJICAgKnJlbHMgPSBPcGVuUmVsYXRpb25MaXN0KGV4Y2Vw dHNlcXMpOworCisJCQlQdWJsaWNhdGlvbkFkZFJlbGF0aW9ucyhwdWJvaWQsIHJlbHMsIHRydWUs IE5VTEwsIFJFTEtJTkRfU0VRVUVOQ0UpOworCQkJQ2xvc2VSZWxhdGlvbkxpc3QocmVscyk7CisJ CX0KKwl9CiAKIAlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCiAJewogCQkvKiBQcm9jZXNzIEVY Q0VQVCB0YWJsZSBsaXN0ICovCi0JCWlmIChleGNlcHRyZWxhdGlvbnMgIT0gTklMKQorCQlpZiAo ZXhjZXB0dGJscyAhPSBOSUwpCiAJCXsKLQkJCUxpc3QJICAgKnJlbHM7CisJCQlMaXN0CSAgICpy ZWxzID0gT3BlblJlbGF0aW9uTGlzdChleGNlcHR0YmxzKTsKIAotCQkJcmVscyA9IE9wZW5UYWJs ZUxpc3QoZXhjZXB0cmVsYXRpb25zKTsKLQkJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwg cmVscywgdHJ1ZSwgTlVMTCk7Ci0JCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKKwkJCVB1YmxpY2F0 aW9uQWRkUmVsYXRpb25zKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCwgUkVMS0lORF9SRUxBVElP Tik7CisJCQlDbG9zZVJlbGF0aW9uTGlzdChyZWxzKTsKIAkJfQogCiAJCS8qCkBAIC05NjksNyAr OTg2LDcgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJs aWNhdGlvblN0bXQgKnN0bXQpCiAJCXsKIAkJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBP cGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7CisJCQlyZWxzID0gT3BlblJlbGF0aW9uTGlzdChyZWxh dGlvbnMpOwogCQkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9zb3Vy Y2V0ZXh0LAogCQkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIApAQCAtOTc3 LDggKzk5NCw4IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl UHVibGljYXRpb25TdG10ICpzdG10KQogCQkJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwK IAkJCQkJCQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJUHVibGljYXRp b25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0 KHJlbHMpOworCQkJUHVibGljYXRpb25BZGRSZWxhdGlvbnMocHVib2lkLCByZWxzLCB0cnVlLCBO VUxMLCBSRUxLSU5EX1JFTEFUSU9OKTsKKwkJCUNsb3NlUmVsYXRpb25MaXN0KHJlbHMpOwogCQl9 CiAKIAkJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwpCkBAIC0xMjU1LDcgKzEyNzIsNyBAQCBBbHRl clB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUg dHVwLAogCWlmICghdGFibGVzICYmIHN0bXQtPmFjdGlvbiAhPSBBUF9TZXRPYmplY3RzKQogCQly ZXR1cm47CiAKLQlyZWxzID0gT3BlblRhYmxlTGlzdCh0YWJsZXMpOworCXJlbHMgPSBPcGVuUmVs YXRpb25MaXN0KHRhYmxlcyk7CiAKIAlpZiAoc3RtdC0+YWN0aW9uID09IEFQX0FkZE9iamVjdHMp CiAJewpAQCAtMTI2Niw3ICsxMjgzLDcgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJQ2hlY2tQdWJSZWxhdGlvbkNv bHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwgcmVscywgcHVibGlzaF9zY2hlbWEsCiAJCQkJCQkJCSAg IHB1YmZvcm0tPnB1YnZpYXJvb3QpOwogCi0JCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1YmlkLCBy ZWxzLCBmYWxzZSwgc3RtdCk7CisJCVB1YmxpY2F0aW9uQWRkUmVsYXRpb25zKHB1YmlkLCByZWxz LCBmYWxzZSwgc3RtdCwgUkVMS0lORF9SRUxBVElPTik7CiAJfQogCWVsc2UgaWYgKHN0bXQtPmFj dGlvbiA9PSBBUF9Ecm9wT2JqZWN0cykKIAkJUHVibGljYXRpb25Ecm9wVGFibGVzKHB1YmlkLCBy ZWxzLCBmYWxzZSk7CkBAIC0xMjg5LDggKzEzMDYsOCBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVz KEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJICovCiAJCQlp ZiAocHViZm9ybS0+cHViYWxsdGFibGVzKQogCQkJewotCQkJCW9sZHJlbGlkcyA9IEdldEV4Y2x1 ZGVkUHVibGljYXRpb25UYWJsZXMocHViaWQsCi0JCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9Q QVJUX1JPT1QpOworCQkJCW9sZHJlbGlkcyA9IEdldEV4Y2x1ZGVkUHVibGljYXRpb25SZWxhdGlv bnMocHViaWQsCisJCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX1JPT1QpOwogCQkJfQog CQl9CiAJCWVsc2UKQEAgLTEzNjMsOCArMTM4MCw4IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMo QWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJLyoKIAkJCQkg KiBWYWxpZGF0ZSB0aGUgY29sdW1uIGxpc3QuICBJZiB0aGUgY29sdW1uIGxpc3Qgb3IgV0hFUkUK IAkJCQkgKiBjbGF1c2UgY2hhbmdlcywgdGhlbiB0aGUgdmFsaWRhdGlvbiBkb25lIGhlcmUgd2ls bCBiZQotCQkJCSAqIGR1cGxpY2F0ZWQgaW5zaWRlIFB1YmxpY2F0aW9uQWRkVGFibGVzKCkuICBU aGUgdmFsaWRhdGlvbgotCQkJCSAqIGlzIGNoZWFwIGVub3VnaCB0aGF0IHRoYXQgc2VlbXMgaGFy bWxlc3MuCisJCQkJICogZHVwbGljYXRlZCBpbnNpZGUgUHVibGljYXRpb25BZGRSZWxhdGlvbnMo KS4gIFRoZQorCQkJCSAqIHZhbGlkYXRpb24gaXMgY2hlYXAgZW5vdWdoIHRoYXQgdGhhdCBzZWVt cyBoYXJtbGVzcy4KIAkJCQkgKi8KIAkJCQluZXdjb2x1bW5zID0gcHViX2NvbGxpc3RfdmFsaWRh dGUobmV3cHVicmVsLT5yZWxhdGlvbiwKIAkJCQkJCQkJCQkJCSAgbmV3cHVicmVsLT5jb2x1bW5z KTsKQEAgLTE0MTAsMTIgKzE0MjcsMTIgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJICogRG9uJ3QgYm90aGVyIGNh bGN1bGF0aW5nIHRoZSBkaWZmZXJlbmNlIGZvciBhZGRpbmcsIHdlJ2xsIGNhdGNoIGFuZAogCQkg KiBza2lwIGV4aXN0aW5nIG9uZXMgd2hlbiBkb2luZyBjYXRhbG9nIHVwZGF0ZS4KIAkJICovCi0J CVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1YmlkLCByZWxzLCB0cnVlLCBzdG10KTsKKwkJUHVibGlj YXRpb25BZGRSZWxhdGlvbnMocHViaWQsIHJlbHMsIHRydWUsIHN0bXQsIFJFTEtJTkRfUkVMQVRJ T04pOwogCi0JCUNsb3NlVGFibGVMaXN0KGRlbHJlbHMpOworCQlDbG9zZVJlbGF0aW9uTGlzdChk ZWxyZWxzKTsKIAl9CiAKLQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKKwlDbG9zZVJlbGF0aW9uTGlz dChyZWxzKTsKIH0KIAogLyoKQEAgLTE2NTEsNyArMTY2OCw3IEBAIEFsdGVyUHVibGljYXRpb25B bGxGbGFncyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgUmVsYXRpb24gcmVsLAogICogQWx0 ZXIgdGhlIGV4aXN0aW5nIHB1YmxpY2F0aW9uLgogICoKICAqIFRoaXMgaXMgZGlzcGF0Y2hlciBm dW5jdGlvbiBmb3IgQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMsCi0gKiBBbHRlclB1YmxpY2F0aW9u U2NoZW1hcyBhbmQgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcy4KKyAqIEFsdGVyUHVibGljYXRpb25T Y2hlbWFzIGFuZCBBbHRlclB1YmxpY2F0aW9uUmVsYXRpb25zLgogICovCiB2b2lkCiBBbHRlclB1 YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQp CkBAIC0xNjgzLDEyICsxNzAwLDE5IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAllbHNlCiAJewogCQlMaXN0CSAgICpy ZWxhdGlvbnMgPSBOSUw7Ci0JCUxpc3QJICAgKmV4Y2VwdHJlbGF0aW9ucyA9IE5JTDsKKwkJTGlz dAkgICAqZXhjZXB0dGJscyA9IE5JTDsKKwkJTGlzdAkgICAqZXhjZXB0c2VxcyA9IE5JTDsKIAkJ TGlzdAkgICAqc2NoZW1haWRsaXN0ID0gTklMOwogCQlPaWQJCQlwdWJpZCA9IHB1YmZvcm0tPm9p ZDsKIAogCQlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3Rh dGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJCSAgICZleGNlcHRyZWxhdGlvbnMsICZzY2hlbWFpZGxp c3QpOworCQkJCQkJCQkgICAmZXhjZXB0dGJscywgJmV4Y2VwdHNlcXMsICZzY2hlbWFpZGxpc3Qp OworCisJCS8qCisJCSAqIFRPRE86IEVYQ0VQVCAoU0VRVUVOQ0UgLi4uKSBpcyBub3QgeWV0IHN1 cHBvcnRlZCB3aXRoIEFMVEVSCisJCSAqIFBVQkxJQ0FUSU9OLgorCQkgKi8KKwkJQXNzZXJ0KGV4 Y2VwdHNlcXMgPT0gTklMKTsKIAogCQlDaGVja0FsdGVyUHVibGljYXRpb24oc3RtdCwgdHVwLCBy ZWxhdGlvbnMsIHNjaGVtYWlkbGlzdCk7CiAKQEAgLTE3MTEsNyArMTczNSw3IEBAIEFsdGVyUHVi bGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkK IAkJCQkJZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAogCQkJCQkJ ICAgc3RtdC0+cHVibmFtZSkpOwogCi0JCXJlbGF0aW9ucyA9IGxpc3RfY29uY2F0KHJlbGF0aW9u cywgZXhjZXB0cmVsYXRpb25zKTsKKwkJcmVsYXRpb25zID0gbGlzdF9jb25jYXQocmVsYXRpb25z LCBleGNlcHR0YmxzKTsKIAkJQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhzdG10LCB0dXAsIHJlbGF0 aW9ucywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCiAJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5J TCk7CiAJCUFsdGVyUHVibGljYXRpb25TY2hlbWFzKHN0bXQsIHR1cCwgc2NoZW1haWRsaXN0KTsK QEAgLTE4MzAsMTIgKzE4NTQsMTIgQEAgUmVtb3ZlUHVibGljYXRpb25TY2hlbWFCeUlkKE9pZCBw c29pZCkKIH0KIAogLyoKLSAqIE9wZW4gcmVsYXRpb25zIHNwZWNpZmllZCBieSBhIFB1YmxpY2F0 aW9uVGFibGUgbGlzdC4KLSAqIFRoZSByZXR1cm5lZCB0YWJsZXMgYXJlIGxvY2tlZCBpbiBTaGFy ZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sgbW9kZSBpbiBvcmRlciB0bwotICogYWRkIHRoZW0gdG8gYSBw dWJsaWNhdGlvbi4KKyAqIE9wZW4gcmVsYXRpb25zIHNwZWNpZmllZCBieSBhIFB1YmxpY2F0aW9u UmVsYXRpb24gbGlzdC4KKyAqIFRoZSByZXR1cm5lZCByZWxhdGlvbnMgYXJlIGxvY2tlZCBpbiBT aGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sgbW9kZSBpbiBvcmRlcgorICogdG8gYWRkIHRoZW0gdG8g YSBwdWJsaWNhdGlvbi4KICAqLwogc3RhdGljIExpc3QgKgotT3BlblRhYmxlTGlzdChMaXN0ICp0 YWJsZXMpCitPcGVuUmVsYXRpb25MaXN0KExpc3QgKnRhYmxlcykKIHsKIAlMaXN0CSAgICpyZWxp ZHMgPSBOSUw7CiAJTGlzdAkgICAqcmVscyA9IE5JTDsKQEAgLTE4NDgsNyArMTg3Miw3IEBAIE9w ZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCSAqLwogCWZvcmVhY2gobGMsIHRhYmxlcykKIAl7 Ci0JCVB1YmxpY2F0aW9uVGFibGUgKnQgPSBsZmlyc3Rfbm9kZShQdWJsaWNhdGlvblRhYmxlLCBs Yyk7CisJCVB1YmxpY2F0aW9uUmVsYXRpb24gKnQgPSBsZmlyc3Rfbm9kZShQdWJsaWNhdGlvblJl bGF0aW9uLCBsYyk7CiAJCWJvb2wJCXJlY3Vyc2UgPSB0LT5yZWxhdGlvbi0+aW5oOwogCQlSZWxh dGlvbglyZWw7CiAJCU9pZAkJCW15cmVsaWQ7CkBAIC0xOTg3LDcgKzIwMTEsNyBAQCBPcGVuVGFi bGVMaXN0KExpc3QgKnRhYmxlcykKICAqIENsb3NlIGFsbCByZWxhdGlvbnMgaW4gdGhlIGxpc3Qu CiAgKi8KIHN0YXRpYyB2b2lkCi1DbG9zZVRhYmxlTGlzdChMaXN0ICpyZWxzKQorQ2xvc2VSZWxh dGlvbkxpc3QoTGlzdCAqcmVscykKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIApAQCAtMjAzMiwxMSAr MjA1NiwxNSBAQCBMb2NrU2NoZW1hTGlzdChMaXN0ICpzY2hlbWFsaXN0KQogfQogCiAvKgotICog QWRkIGxpc3RlZCB0YWJsZXMgdG8gdGhlIHB1YmxpY2F0aW9uLgorICogQWRkIGxpc3RlZCByZWxh dGlvbnMgdG8gdGhlIHB1YmxpY2F0aW9uLgorICoKKyAqICdwdWJyZWxraW5kJyBpcyB0aGUgcmVs a2luZCBhY2NlcHRlZCBieSB0aGUgcHVibGljYXRpb24gY2xhdXNlLgorICogVGhlIHJlbGtpbmQg b2YgZWFjaCByZWxhdGlvbiBpbiAncmVscycgaXMgY2hlY2tlZCBmb3IgY29tcGF0aWJpbGl0eQor ICogYWdhaW5zdCBpdC4KICAqLwogc3RhdGljIHZvaWQKLVB1YmxpY2F0aW9uQWRkVGFibGVzKE9p ZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBpZl9ub3RfZXhpc3RzLAotCQkJCQkgQWx0ZXJQdWJs aWNhdGlvblN0bXQgKnN0bXQpCitQdWJsaWNhdGlvbkFkZFJlbGF0aW9ucyhPaWQgcHViaWQsIExp c3QgKnJlbHMsIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCUFsdGVyUHVibGljYXRpb25TdG10 ICpzdG10LCBjaGFyIHB1YnJlbGtpbmQpCiB7CiAJTGlzdENlbGwgICAqbGM7CiAKQEAgLTIwNDYs MTIgKzIwNzQsMTIgQEAgUHVibGljYXRpb25BZGRUYWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxz LCBib29sIGlmX25vdF9leGlzdHMsCiAJCVJlbGF0aW9uCXJlbCA9IHB1Yl9yZWwtPnJlbGF0aW9u OwogCQlPYmplY3RBZGRyZXNzIG9iajsKIAotCQkvKiBNdXN0IGJlIG93bmVyIG9mIHRoZSB0YWJs ZSBvciBzdXBlcnVzZXIuICovCisJCS8qIE11c3QgYmUgb3duZXIgb2YgdGhlIHJlbGF0aW9uIG9y IHN1cGVydXNlci4gKi8KIAkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJlbGF0aW9u SWQsIFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgR2V0VXNlcklkKCkpKQogCQkJYWNsY2hlY2tfZXJy b3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBnZXRfcmVsa2luZF9vYmp0eXBlKHJlbC0+cmRfcmVsLT5y ZWxraW5kKSwKIAkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpOwogCi0JCW9i aiA9IHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihwdWJpZCwgcHViX3JlbCwgaWZfbm90X2V4aXN0 cywgc3RtdCk7CisJCW9iaiA9IHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihwdWJpZCwgcHViX3Jl bCwgaWZfbm90X2V4aXN0cywgc3RtdCwgcHVicmVsa2luZCk7CiAJCWlmIChzdG10KQogCQl7CiAJ CQlFdmVudFRyaWdnZXJDb2xsZWN0U2ltcGxlQ29tbWFuZChvYmosIEludmFsaWRPYmplY3RBZGRy ZXNzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKaW5kZXggZmY0ZTEzODhjNTUuLjJiMzRmMDFhMzAxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKQEAgLTQ1Nyw3ICs0NTcsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCVRyaWdn ZXJUcmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlz dCBvcHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKIAkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpf bGlzdCBwdWJfYWxsX29ial90eXBlX2xpc3QKLQkJCQlwdWJfZXhjZXB0X29ial9saXN0IG9wdF9w dWJfZXhjZXB0X2NsYXVzZQorCQkJCXB1Yl9leGNlcHRfdGJsX2xpc3Qgb3B0X3B1Yl9leGNlcHRf dGJsX2NsYXVzZQorCQkJCXB1Yl9leGNlcHRfc2VxX2xpc3Qgb3B0X3B1Yl9leGNlcHRfc2VxX2Ns YXVzZQogCiAldHlwZSA8cmV0Y2xhdXNlPiByZXR1cm5pbmdfY2xhdXNlCiAldHlwZSA8bm9kZT4J cmV0dXJuaW5nX29wdGlvbgpAQCAtNTk3LDcgKzU5OCw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVj dXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAldHlwZSA8bm9kZT4JdmFyX3ZhbHVlIHpvbmVfdmFsdWUKICV0eXBlIDxyb2xlc3BlYz4g YXV0aF9pZGVudCBSb2xlU3BlYyBvcHRfZ3JhbnRlZF9ieQogJXR5cGUgPHB1YmxpY2F0aW9ub2Jq ZWN0c3BlYz4gUHVibGljYXRpb25PYmpTcGVjCi0ldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVj PiBQdWJsaWNhdGlvbkV4Y2VwdE9ialNwZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+ IFB1YmxpY2F0aW9uRXhjZXB0VGJsU3BlYworJXR5cGUgPHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4g UHVibGljYXRpb25FeGNlcHRTZXFTcGVjCiAldHlwZSA8cHVibGljYXRpb25hbGxvYmplY3RzcGVj PiBQdWJsaWNhdGlvbkFsbE9ialNwZWMKIAogJXR5cGUgPGtleXdvcmQ+IHVucmVzZXJ2ZWRfa2V5 d29yZCB0eXBlX2Z1bmNfbmFtZV9rZXl3b3JkCkBAIC0xMTMyNywxMCArMTEzMjksMTAgQEAgUHVi bGljYXRpb25PYmpTcGVjOgogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9i alNwZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFOwotCQkJ CQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKLQkJCQkJJCQtPnB1 YnRhYmxlLT5yZWxhdGlvbiA9ICQyOwotCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsK LQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+cHVicmVsYXRp b24gPSBtYWtlTm9kZShQdWJsaWNhdGlvblJlbGF0aW9uKTsKKwkJCQkJJCQtPnB1YnJlbGF0aW9u LT5yZWxhdGlvbiA9ICQyOworCQkJCQkkJC0+cHVicmVsYXRpb24tPmNvbHVtbnMgPSAkMzsKKwkJ CQkJJCQtPnB1YnJlbGF0aW9uLT53aGVyZUNsYXVzZSA9ICQ0OwogCQkJCX0KIAkJCXwgVEFCTEVT IElOX1AgU0NIRU1BIENvbElkCiAJCQkJewpAQCAtMTEzNTEsNyArMTEzNTMsNyBAQCBQdWJsaWNh dGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElO VUFUSU9OOwogCQkJCQkvKgogCQkJCQkgKiBJZiBlaXRoZXIgYSByb3cgZmlsdGVyIG9yIGNvbHVt biBsaXN0IGlzIHNwZWNpZmllZCwgY3JlYXRlCi0JCQkJCSAqIGEgUHVibGljYXRpb25UYWJsZSBv YmplY3QuCisJCQkJCSAqIGEgUHVibGljYXRpb25SZWxhdGlvbiBvYmplY3QuCiAJCQkJCSAqLwog CQkJCQlpZiAoJDIgfHwgJDMpCiAJCQkJCXsKQEAgLTExMzYxLDEwICsxMTM2MywxMCBAQCBQdWJs aWNhdGlvbk9ialNwZWM6CiAJCQkJCQkgKiBlcnJvciB3aWxsIGJlIHRocm93biBsYXRlciB2aWEK IAkJCQkJCSAqIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoKS4KIAkJCQkJCSAqLwotCQkJCQkJJCQt PnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7Ci0JCQkJCQkkJC0+cHVidGFi bGUtPnJlbGF0aW9uID0gbWFrZVJhbmdlVmFyKE5VTEwsICQxLCBAMSk7Ci0JCQkJCQkkJC0+cHVi dGFibGUtPmNvbHVtbnMgPSAkMjsKLQkJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAk MzsKKwkJCQkJCSQkLT5wdWJyZWxhdGlvbiA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uUmVsYXRpb24p OworCQkJCQkJJCQtPnB1YnJlbGF0aW9uLT5yZWxhdGlvbiA9IG1ha2VSYW5nZVZhcihOVUxMLCAk MSwgQDEpOworCQkJCQkJJCQtPnB1YnJlbGF0aW9uLT5jb2x1bW5zID0gJDI7CisJCQkJCQkkJC0+ cHVicmVsYXRpb24tPndoZXJlQ2xhdXNlID0gJDM7CiAJCQkJCX0KIAkJCQkJZWxzZQogCQkJCQl7 CkBAIC0xMTM3NiwxMCArMTEzNzgsMTAgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCXsKIAkJ CQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkkJC0+cHVib2JqdHlw ZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsKLQkJCQkJJCQtPnB1YnRhYmxlID0gbWFr ZU5vZGUoUHVibGljYXRpb25UYWJsZSk7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSBt YWtlUmFuZ2VWYXJGcm9tUXVhbGlmaWVkTmFtZSgkMSwgJDIsIEAxLCB5eXNjYW5uZXIpOwotCQkJ CQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKLQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNs YXVzZSA9ICQ0OworCQkJCQkkJC0+cHVicmVsYXRpb24gPSBtYWtlTm9kZShQdWJsaWNhdGlvblJl bGF0aW9uKTsKKwkJCQkJJCQtPnB1YnJlbGF0aW9uLT5yZWxhdGlvbiA9IG1ha2VSYW5nZVZhckZy b21RdWFsaWZpZWROYW1lKCQxLCAkMiwgQDEsIHl5c2Nhbm5lcik7CisJCQkJCSQkLT5wdWJyZWxh dGlvbi0+Y29sdW1ucyA9ICQzOworCQkJCQkkJC0+cHVicmVsYXRpb24tPndoZXJlQ2xhdXNlID0g JDQ7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCS8qIGdyYW1tYXIgbGlrZSB0 YWJsZW5hbWUgKiAsIE9OTFkgdGFibGVuYW1lLCBPTkxZICggdGFibGVuYW1lICkgKi8KQEAgLTEx Mzg3LDEwICsxMTM4OSwxMCBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJewogCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVC TElDQVRJT05PQkpfQ09OVElOVUFUSU9OOwotCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQ dWJsaWNhdGlvblRhYmxlKTsKLQkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQxOwotCQkJ CQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMjsKLQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNs YXVzZSA9ICQzOworCQkJCQkkJC0+cHVicmVsYXRpb24gPSBtYWtlTm9kZShQdWJsaWNhdGlvblJl bGF0aW9uKTsKKwkJCQkJJCQtPnB1YnJlbGF0aW9uLT5yZWxhdGlvbiA9ICQxOworCQkJCQkkJC0+ cHVicmVsYXRpb24tPmNvbHVtbnMgPSAkMjsKKwkJCQkJJCQtPnB1YnJlbGF0aW9uLT53aGVyZUNs YXVzZSA9ICQzOwogCQkJCX0KIAkJCXwgQ1VSUkVOVF9TQ0hFTUEKIAkJCQl7CkBAIC0xMTQwNiwy MyArMTE0MDgsMjkgQEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKIAkJCQkJeyAk JCA9IGxhcHBlbmQoJDEsICQzKTsgfQogCTsKIAotb3B0X3B1Yl9leGNlcHRfY2xhdXNlOgotCQkJ RVhDRVBUICcoJyBUQUJMRSBwdWJfZXhjZXB0X29ial9saXN0ICcpJwl7ICQkID0gJDQ7IH0KK29w dF9wdWJfZXhjZXB0X3RibF9jbGF1c2U6CisJCQlFWENFUFQgJygnIFRBQkxFIHB1Yl9leGNlcHRf dGJsX2xpc3QgJyknCXsgJCQgPSAkNDsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCQl7ICQkID0g TklMOyB9CisJCTsKKworb3B0X3B1Yl9leGNlcHRfc2VxX2NsYXVzZToKKwkJCUVYQ0VQVCAnKCcg U0VRVUVOQ0UgcHViX2V4Y2VwdF9zZXFfbGlzdCAnKScJeyAkJCA9ICQ0OyB9CiAJCQl8IC8qRU1Q VFkqLwkJCQkJCQkJCXsgJCQgPSBOSUw7IH0KIAkJOwogCiBQdWJsaWNhdGlvbkFsbE9ialNwZWM6 Ci0JCQkJQUxMIFRBQkxFUyBvcHRfcHViX2V4Y2VwdF9jbGF1c2UKKwkJCQlBTEwgVEFCTEVTIG9w dF9wdWJfZXhjZXB0X3RibF9jbGF1c2UKIAkJCQkJewogCQkJCQkJJCQgPSBtYWtlTm9kZShQdWJs aWNhdGlvbkFsbE9ialNwZWMpOwogCQkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTl9B TExfVEFCTEVTOwotCQkJCQkJJCQtPmV4Y2VwdF90YWJsZXMgPSAkMzsKKwkJCQkJCSQkLT5leGNl cHRfcmVsYXRpb25zID0gJDM7CiAJCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQkJfQotCQkJ CXwgQUxMIFNFUVVFTkNFUworCQkJCXwgQUxMIFNFUVVFTkNFUyBvcHRfcHViX2V4Y2VwdF9zZXFf Y2xhdXNlCiAJCQkJCXsKIAkJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25BbGxPYmpTcGVj KTsKIAkJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05fQUxMX1NFUVVFTkNFUzsKKwkJ CQkJCSQkLT5leGNlcHRfcmVsYXRpb25zID0gJDM7CiAJCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsK IAkJCQkJfQogCQkJCQk7CkBAIC0xMTQzMywyMSArMTE0NDEsNDEgQEAgcHViX2FsbF9vYmpfdHlw ZV9saXN0OglQdWJsaWNhdGlvbkFsbE9ialNwZWMKIAkJCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQz KTsgfQogCTsKIAotUHVibGljYXRpb25FeGNlcHRPYmpTcGVjOgorUHVibGljYXRpb25FeGNlcHRU YmxTcGVjOgogCQkJIHJlbGF0aW9uX2V4cHIKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVi bGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9F WENFUFRfVEFCTEU7Ci0JCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFi bGUpOwotCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7Ci0JCQkJCSQkLT5wdWJ0YWJs ZS0+cmVsYXRpb24gPSAkMTsKKwkJCQkJJCQtPnB1YnJlbGF0aW9uID0gbWFrZU5vZGUoUHVibGlj YXRpb25SZWxhdGlvbik7CisJCQkJCSQkLT5wdWJyZWxhdGlvbi0+ZXhjZXB0ID0gdHJ1ZTsKKwkJ CQkJJCQtPnB1YnJlbGF0aW9uLT5yZWxhdGlvbiA9ICQxOwogCQkJCQkkJC0+bG9jYXRpb24gPSBA MTsKIAkJCQl9CiAJOwogCi1wdWJfZXhjZXB0X29ial9saXN0OiBQdWJsaWNhdGlvbkV4Y2VwdE9i alNwZWMKK1B1YmxpY2F0aW9uRXhjZXB0U2VxU3BlYzoKKwkJCSByZWxhdGlvbl9leHByCisJCQkJ eworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJv Ymp0eXBlID0gUFVCTElDQVRJT05PQkpfRVhDRVBUX1NFUVVFTkNFOworCQkJCQkkJC0+cHVicmVs YXRpb24gPSBtYWtlTm9kZShQdWJsaWNhdGlvblJlbGF0aW9uKTsKKwkJCQkJJCQtPnB1YnJlbGF0 aW9uLT5leGNlcHQgPSB0cnVlOworCQkJCQkkJC0+cHVicmVsYXRpb24tPnJlbGF0aW9uID0gJDE7 CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOworCQkJCX0KKwk7CisKK3B1Yl9leGNlcHRfdGJsX2xp c3Q6IFB1YmxpY2F0aW9uRXhjZXB0VGJsU3BlYwogCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgkMSk7 IH0KLQkJCXwgcHViX2V4Y2VwdF9vYmpfbGlzdCAnLCcgb3B0X3RhYmxlIFB1YmxpY2F0aW9uRXhj ZXB0T2JqU3BlYworCQkJfCBwdWJfZXhjZXB0X3RibF9saXN0ICcsJyBvcHRfdGFibGUgUHVibGlj YXRpb25FeGNlcHRUYmxTcGVjCisJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkNCk7IH0KKwk7CisK K3B1Yl9leGNlcHRfc2VxX2xpc3Q6IFB1YmxpY2F0aW9uRXhjZXB0U2VxU3BlYworCQkJCQl7ICQk ID0gbGlzdF9tYWtlMSgkMSk7IH0KKwkJCXwgcHViX2V4Y2VwdF9zZXFfbGlzdCAnLCcgUHVibGlj YXRpb25FeGNlcHRTZXFTcGVjCisJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwkJCXwg cHViX2V4Y2VwdF9zZXFfbGlzdCAnLCcgU0VRVUVOQ0UgUHVibGljYXRpb25FeGNlcHRTZXFTcGVj CiAJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkNCk7IH0KIAk7CiAKQEAgLTIwNzQ3LDEyICsyMDc3 NSwxMiBAQCBwcmVwcm9jZXNzX3B1Yl9hbGxfb2JqdHlwZV9saXN0KExpc3QgKmFsbF9vYmplY3Rz X2xpc3QsIExpc3QgKipwdWJvYmplY3RzLAogCQkJCQkJCQlib29sICphbGxfdGFibGVzLCBib29s ICphbGxfc2VxdWVuY2VzLAogCQkJCQkJCQljb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIHsKLQlp ZiAoIWFsbF9vYmplY3RzX2xpc3QpCi0JCXJldHVybjsKLQogCSphbGxfdGFibGVzID0gZmFsc2U7 CiAJKmFsbF9zZXF1ZW5jZXMgPSBmYWxzZTsKIAorCWlmICghYWxsX29iamVjdHNfbGlzdCkKKwkJ cmV0dXJuOworCiAJZm9yZWFjaF9wdHIoUHVibGljYXRpb25BbGxPYmpTcGVjLCBvYmosIGFsbF9v YmplY3RzX2xpc3QpCiAJewogCQlpZiAob2JqLT5wdWJvYmp0eXBlID09IFBVQkxJQ0FUSU9OX0FM TF9UQUJMRVMpCkBAIC0yMDc2NSw3ICsyMDc5Myw3IEBAIHByZXByb2Nlc3NfcHViX2FsbF9vYmp0 eXBlX2xpc3QoTGlzdCAqYWxsX29iamVjdHNfbGlzdCwgTGlzdCAqKnB1Ym9iamVjdHMsCiAJCQkJ CQlwYXJzZXJfZXJycG9zaXRpb24ob2JqLT5sb2NhdGlvbikpOwogCiAJCQkqYWxsX3RhYmxlcyA9 IHRydWU7Ci0JCQkqcHVib2JqZWN0cyA9IGxpc3RfY29uY2F0KCpwdWJvYmplY3RzLCBvYmotPmV4 Y2VwdF90YWJsZXMpOworCQkJKnB1Ym9iamVjdHMgPSBsaXN0X2NvbmNhdCgqcHVib2JqZWN0cywg b2JqLT5leGNlcHRfcmVsYXRpb25zKTsKIAkJfQogCQllbHNlIGlmIChvYmotPnB1Ym9ianR5cGUg PT0gUFVCTElDQVRJT05fQUxMX1NFUVVFTkNFUykKIAkJewpAQCAtMjA3NzcsNiArMjA4MDUsNyBA QCBwcmVwcm9jZXNzX3B1Yl9hbGxfb2JqdHlwZV9saXN0KExpc3QgKmFsbF9vYmplY3RzX2xpc3Qs IExpc3QgKipwdWJvYmplY3RzLAogCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKG9iai0+bG9jYXRp b24pKTsKIAogCQkJKmFsbF9zZXF1ZW5jZXMgPSB0cnVlOworCQkJKnB1Ym9iamVjdHMgPSBsaXN0 X2NvbmNhdCgqcHVib2JqZWN0cywgb2JqLT5leGNlcHRfcmVsYXRpb25zKTsKIAkJfQogCX0KIH0K QEAgLTIwODEyLDggKzIwODQxLDggQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJv YmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCiAJCWlmIChwdWJvYmotPnB1 Ym9ianR5cGUgPT0gUFVCTElDQVRJT05PQkpfVEFCTEUpCiAJCXsKLQkJCS8qIHJlbGF0aW9uIG5h bWUgb3IgcHVidGFibGUgbXVzdCBiZSBzZXQgZm9yIHRoaXMgdHlwZSBvZiBvYmplY3QgKi8KLQkJ CWlmICghcHVib2JqLT5uYW1lICYmICFwdWJvYmotPnB1YnRhYmxlKQorCQkJLyogUmVsYXRpb24g bmFtZSBvciBwdWJyZWxhdGlvbiBtdXN0IGJlIHNldCBmb3IgdGhpcyB0eXBlIG9mIG9iamVjdCAq LworCQkJaWYgKCFwdWJvYmotPm5hbWUgJiYgIXB1Ym9iai0+cHVicmVsYXRpb24pCiAJCQkJZXJl cG9ydChFUlJPUiwKIAkJCQkJCWVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkJ ZXJybXNnKCJpbnZhbGlkIHRhYmxlIG5hbWUiKSwKQEAgLTIwODIxLDEyICsyMDg1MCwxMiBAQCBw cmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95eXNjYW5f dCB5eXNjYW5uZXIpCiAKIAkJCWlmIChwdWJvYmotPm5hbWUpCiAJCQl7Ci0JCQkJLyogY29udmVy dCBpdCB0byBQdWJsaWNhdGlvblRhYmxlICovCi0JCQkJUHVibGljYXRpb25UYWJsZSAqcHVidGFi bGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJCQkvKiBDb252ZXJ0IGl0IHRvIFB1 YmxpY2F0aW9uUmVsYXRpb24gKi8KKwkJCQlQdWJsaWNhdGlvblJlbGF0aW9uICpwdWJyZWxhdGlv biA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uUmVsYXRpb24pOwogCi0JCQkJcHVidGFibGUtPnJlbGF0 aW9uID0KKwkJCQlwdWJyZWxhdGlvbi0+cmVsYXRpb24gPQogCQkJCQltYWtlUmFuZ2VWYXIoTlVM TCwgcHVib2JqLT5uYW1lLCBwdWJvYmotPmxvY2F0aW9uKTsKLQkJCQlwdWJvYmotPnB1YnRhYmxl ID0gcHVidGFibGU7CisJCQkJcHVib2JqLT5wdWJyZWxhdGlvbiA9IHB1YnJlbGF0aW9uOwogCQkJ CXB1Ym9iai0+bmFtZSA9IE5VTEw7CiAJCQl9CiAJCX0KQEAgLTIwODM0LDE0ICsyMDg2MywxNCBA QCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95eXNj YW5fdCB5eXNjYW5uZXIpCiAJCQkJIHB1Ym9iai0+cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTk9C Sl9UQUJMRVNfSU5fQ1VSX1NDSEVNQSkKIAkJewogCQkJLyogV0hFUkUgY2xhdXNlIGlzIG5vdCBh bGxvd2VkIG9uIGEgc2NoZW1hIG9iamVjdCAqLwotCQkJaWYgKHB1Ym9iai0+cHVidGFibGUgJiYg cHVib2JqLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UpCisJCQlpZiAocHVib2JqLT5wdWJyZWxhdGlv biAmJiBwdWJvYmotPnB1YnJlbGF0aW9uLT53aGVyZUNsYXVzZSkKIAkJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJCQllcnJtc2coIldI RVJFIGNsYXVzZSBub3QgYWxsb3dlZCBmb3Igc2NoZW1hIiksCiAJCQkJCQlwYXJzZXJfZXJycG9z aXRpb24ocHVib2JqLT5sb2NhdGlvbikpOwogCiAJCQkvKiBDb2x1bW4gbGlzdCBpcyBub3QgYWxs b3dlZCBvbiBhIHNjaGVtYSBvYmplY3QgKi8KLQkJCWlmIChwdWJvYmotPnB1YnRhYmxlICYmIHB1 Ym9iai0+cHVidGFibGUtPmNvbHVtbnMpCisJCQlpZiAocHVib2JqLT5wdWJyZWxhdGlvbiAmJiBw dWJvYmotPnB1YnJlbGF0aW9uLT5jb2x1bW5zKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQll cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKIAkJCQkJCWVycm1zZygiY29sdW1uIHNwZWNp ZmljYXRpb24gbm90IGFsbG93ZWQgZm9yIHNjaGVtYSIpLApAQCAtMjA4NDksMTEgKzIwODc4LDEx IEBAIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5 c2Nhbl90IHl5c2Nhbm5lcikKIAogCQkJLyoKIAkJCSAqIFdlIGNhbiBkaXN0aW5ndWlzaCBiZXR3 ZWVuIHRoZSBkaWZmZXJlbnQgdHlwZSBvZiBzY2hlbWEgb2JqZWN0cwotCQkJICogYmFzZWQgb24g d2hldGhlciBuYW1lIGFuZCBwdWJ0YWJsZSBpcyBzZXQuCisJCQkgKiBiYXNlZCBvbiB3aGV0aGVy IG5hbWUgYW5kIHB1YnJlbGF0aW9uIGlzIHNldC4KIAkJCSAqLwogCQkJaWYgKHB1Ym9iai0+bmFt ZSkKIAkJCQlwdWJvYmotPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NI RU1BOwotCQkJZWxzZSBpZiAoIXB1Ym9iai0+bmFtZSAmJiAhcHVib2JqLT5wdWJ0YWJsZSkKKwkJ CWVsc2UgaWYgKCFwdWJvYmotPm5hbWUgJiYgIXB1Ym9iai0+cHVicmVsYXRpb24pCiAJCQkJcHVi b2JqLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUE7CiAJ CQllbHNlCiAJCQkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDI1ZjY2YjU2ZDQwLi5h YjllMTlmMDQyYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC00NjE3LDIzICs0NjE3LDMxIEBAIGdldFB1Ymxp Y2F0aW9ucyhBcmNoaXZlICpmb3V0KQogCQl7CiAJCQlOVUxMLCBOVUxMCiAJCX07CisJCXB1Ymlu Zm9baV0uZXhjZXB0X3NlcXVlbmNlcyA9IChTaW1wbGVQdHJMaXN0KQorCQl7CisJCQlOVUxMLCBO VUxMCisJCX07CiAKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJ CXNlbGVjdER1bXBhYmxlT2JqZWN0KCYocHViaW5mb1tpXS5kb2JqKSwgZm91dCk7CiAKIAkJLyoK LQkJICogR2V0IHRoZSBsaXN0IG9mIHRhYmxlcyBmb3IgcHVibGljYXRpb25zIHNwZWNpZmllZCBp biB0aGUgRVhDRVBUCi0JCSAqIFRBQkxFIGNsYXVzZS4KKwkJICogR2V0IHRoZSBsaXN0IG9mIHRh YmxlcyBhbmQgc2VxdWVuY2VzIGZvciBwdWJsaWNhdGlvbnMgc3BlY2lmaWVkIGluCisJCSAqIHRo ZSBFWENFUFQgY2xhdXNlLgogCQkgKgotCQkgKiBBbHRob3VnaCBpbmRpdmlkdWFsIHRhYmxlIGVu dHJpZXMgaW4gRVhDRVBUIGxpc3QgY291bGQgYmUgc3RvcmVkIGluCi0JCSAqIFB1YmxpY2F0aW9u UmVsSW5mbywgZHVtcFB1YmxpY2F0aW9uVGFibGUgY2Fubm90IGJlIHVzZWQgdG8gZW1pdAotCQkg KiB0aGVtLCBiZWNhdXNlIHRoZXJlIGlzIG5vIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQgY29t bWFuZCB0byBhZGQKLQkJICogaW5kaXZpZHVhbCB0YWJsZSBlbnRyaWVzIHRvIHRoZSBFWENFUFQg bGlzdC4KKwkJICogQWx0aG91Z2ggaW5kaXZpZHVhbCB0YWJsZS9zZXF1ZW5jZSBlbnRyaWVzIGlu IEVYQ0VQVCBsaXN0IGNvdWxkIGJlCisJCSAqIHN0b3JlZCBpbiBQdWJsaWNhdGlvblJlbEluZm8s IGR1bXBQdWJsaWNhdGlvblRhYmxlIGNhbm5vdCBiZSB1c2VkCisJCSAqIHRvIGVtaXQgdGhlbSwg YmVjYXVzZSB0aGVyZSBpcyBubyBBTFRFUiBQVUJMSUNBVElPTiAuLi4gQUREIGNvbW1hbmQKKwkJ ICogdG8gYWRkIGluZGl2aWR1YWwgdGFibGUgZW50cmllcyB0byB0aGUgRVhDRVBUIGxpc3QuCiAJ CSAqCiAJCSAqIFRoZXJlZm9yZSwgdGhlIGFwcHJvYWNoIGlzIHRvIGR1bXAgdGhlIGNvbXBsZXRl IEVYQ0VQVCBsaXN0IGluIGEKIAkJICogc2luZ2xlIENSRUFURSBQVUJMSUNBVElPTiBzdGF0ZW1l bnQuIFB1YmxpY2F0aW9uSW5mbyBpcyB1c2VkIHRvCiAJCSAqIGNvbGxlY3QgdGhpcyBpbmZvcm1h dGlvbiwgd2hpY2ggaXMgdGhlbiBlbWl0dGVkIGJ5CiAJCSAqIGR1bXBQdWJsaWNhdGlvbigpLgor CQkgKgorCQkgKiBOb3RlOiBFWENFUFQgKFRBQkxFIC4uLikgd2FzIGludHJvZHVjZWQgaW4gUEcx OSwgd2hlcmVhcyBFWENFUFQKKwkJICogKFNFUVVFTkNFIC4uLikgd2FzIGludHJvZHVjZWQgaW4g UEcyMC4gSGVuY2UsIHRoZSB2ZXJzaW9uIGNoZWNrcworCQkgKiBiZWxvdyBkaWZmZXIuCiAJCSAq LwogCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAwMDApCiAJCXsKQEAgLTQ2NDIsOSAr NDY1MCwxMCBAQCBnZXRQdWJsaWNhdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAogCQkJcmVzZXRQUUV4 cEJ1ZmZlcihxdWVyeSk7CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKLQkJCQkJCQkgICJT RUxFQ1QgcHJyZWxpZFxuIgotCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv bl9yZWxcbiIKLQkJCQkJCQkgICJXSEVSRSBwcnB1YmlkID0gJXUgQU5EIHByZXhjZXB0IiwKKwkJ CQkJCQkgICJTRUxFQ1QgcHIucHJyZWxpZCwgcGMucmVsa2luZFxuIgorCQkJCQkJCSAgIkZST00g cGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKKwkJCQkJCQkgICJKT0lOIHBnX2Nh dGFsb2cucGdfY2xhc3MgcGMgT04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCSAgIldI RVJFIHByLnBycHViaWQgPSAldSBBTkQgcHIucHJleGNlcHQiLAogCQkJCQkJCSAgcHViaW5mb1tp XS5kb2JqLmNhdElkLm9pZCk7CiAKIAkJCXJlc190YmxzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQs IHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwpAQCAtNDY1NCwxNCArNDY2MywyNiBAQCBn ZXRQdWJsaWNhdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAkJCWZvciAoaW50IGogPSAwOyBqIDwgbnRi bHM7IGorKykKIAkJCXsKIAkJCQlPaWQJCQlwcnJlbGlkOworCQkJCWNoYXIJCXJlbGtpbmQ7CiAJ CQkJVGFibGVJbmZvICAqdGJpbmZvOwogCiAJCQkJcHJyZWxpZCA9IGF0b29pZChQUWdldHZhbHVl KHJlc190YmxzLCBqLCAwKSk7CisJCQkJcmVsa2luZCA9ICpQUWdldHZhbHVlKHJlc190YmxzLCBq LCAxKTsKIAogCQkJCXRiaW5mbyA9IGZpbmRUYWJsZUJ5T2lkKHBycmVsaWQpOwogCiAJCQkJaWYg KHRiaW5mbyAhPSBOVUxMKQotCQkJCQlzaW1wbGVfcHRyX2xpc3RfYXBwZW5kKCZwdWJpbmZvW2ld LmV4Y2VwdF90YWJsZXMsIHRiaW5mbyk7CisJCQkJeworCQkJCQkvKiBFWENFUFQgKFNFUVVFTkNF IC4uLikgaXMgc3VwcG9ydGVkIGZyb20gUEcyMCBvbndhcmRzLiAqLworCQkJCQlpZiAoZm91dC0+ cmVtb3RlVmVyc2lvbiA+PSAyMDAwMDAgJiYKKwkJCQkJCXJlbGtpbmQgPT0gUkVMS0lORF9TRVFV RU5DRSkKKwkJCQkJCXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQoJnB1YmluZm9baV0uZXhjZXB0X3Nl cXVlbmNlcywgdGJpbmZvKTsKKwkJCQkJZWxzZSBpZiAocmVsa2luZCA9PSBSRUxLSU5EX1JFTEFU SU9OIHx8CisJCQkJCQkJIHJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJ CQkJCXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQoJnB1YmluZm9baV0uZXhjZXB0X3RhYmxlcywgdGJp bmZvKTsKKwkJCQkJZWxzZQorCQkJCQkJQXNzZXJ0KGZhbHNlKTsKKwkJCQl9CiAJCQl9CiAKIAkJ CVBRY2xlYXIocmVzX3RibHMpOwpAQCAtNDcyMSwxMiArNDc0MiwzMCBAQCBkdW1wUHVibGljYXRp b24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKQogCQl9CiAJ CWlmIChuX2V4Y2VwdCA+IDApCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlckNoYXIocXVlcnksICcpJyk7 CisJfQorCWlmIChwdWJpbmZvLT5wdWJhbGxzZXF1ZW5jZXMpCisJeworCQlpbnQJCQluX2V4Y2Vw dCA9IDA7CiAKLQkJaWYgKHB1YmluZm8tPnB1YmFsbHNlcXVlbmNlcykKKwkJaWYgKHB1YmluZm8t PnB1YmFsbHRhYmxlcykKIAkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBBTEwgU0VR VUVOQ0VTIik7CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEZPUiBB TEwgU0VRVUVOQ0VTIik7CisKKwkJLyogSW5jbHVkZSBFWENFUFQgKFNFUVVFTkNFKSBjbGF1c2Ug aWYgdGhlcmUgYXJlIGV4Y2VwdF9zZXF1ZW5jZXMuICovCisJCWZvciAoU2ltcGxlUHRyTGlzdENl bGwgKmNlbGwgPSBwdWJpbmZvLT5leGNlcHRfc2VxdWVuY2VzLmhlYWQ7IGNlbGw7IGNlbGwgPSBj ZWxsLT5uZXh0KQorCQl7CisJCQlUYWJsZUluZm8gICp0YmluZm8gPSAoVGFibGVJbmZvICopIGNl bGwtPnB0cjsKKwkJCWNvbnN0IGNoYXIgKnNlcW5hbWUgPSBmbXRRdWFsaWZpZWREdW1wYWJsZSh0 YmluZm8pOworCisJCQlpZiAoKytuX2V4Y2VwdCA9PSAxKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiIEVYQ0VQVCAoU0VRVUVOQ0UgJXMiLCBzZXFuYW1lKTsKKwkJCWVsc2UKKwkJCQlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwgJXMiLCBzZXFuYW1lKTsKKwkJfQorCQlpZiAobl9l eGNlcHQgPiAwKQorCQkJYXBwZW5kUFFFeHBCdWZmZXJDaGFyKHF1ZXJ5LCAnKScpOwogCX0KLQll bHNlIGlmIChwdWJpbmZvLT5wdWJhbGxzZXF1ZW5jZXMpCi0JCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KHF1ZXJ5LCAiIEZPUiBBTEwgU0VRVUVOQ0VTIik7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiBXSVRIIChwdWJsaXNoID0gJyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNlcnQpCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaAppbmRleCA1YTY3MjZkOGIxMi4uOGU4NjlmZTc5MWEgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAt Njc5LDYgKzY3OSw3IEBAIHR5cGVkZWYgc3RydWN0IF9QdWJsaWNhdGlvbkluZm8KIAlib29sCQlw dWJ2aWFyb290OwogCVB1Ymxpc2hHZW5jb2xzVHlwZSBwdWJnZW5jb2xzX3R5cGU7CiAJU2ltcGxl UHRyTGlzdCBleGNlcHRfdGFibGVzOworCVNpbXBsZVB0ckxpc3QgZXhjZXB0X3NlcXVlbmNlczsK IH0gUHVibGljYXRpb25JbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCA5 MjU4OTQ4YjU4My4uOWEwNjczNTc1ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0z MjgzLDYgKzMyODMsMjYgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBQVUJMSUNBVElPTiBw dWIxMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gOTIsCisJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFU RSBTRVFVRU5DRSB0ZXN0X2V4Y2VwdF9zZXE7CisJCSAgIENSRUFURSBQVUJMSUNBVElPTiBwdWIx MSBGT1IgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVFTkNFIHB1YmxpYy50ZXN0X3RhYmxlX2Nv bDFfc2VxLCBwdWJsaWMudGVzdF9leGNlcHRfc2VxKTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJ XFFDUkVBVEUgUFVCTElDQVRJT04gcHViMTEgRk9SIEFMTCBTRVFVRU5DRVMgRVhDRVBUIChTRVFV RU5DRSBwdWJsaWMudGVzdF90YWJsZV9jb2wxX3NlcSwgcHVibGljLnRlc3RfZXhjZXB0X3NlcSkg V0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJ CQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9 LAorCX0sCisKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyJyA9PiB7CisJCWNyZWF0ZV9vcmRl ciA9PiA5MiwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdDUkVBVEUgUFVCTElDQVRJT04gcHViMTIg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSBkdW1wX3Rlc3QudGVzdF90YWJsZSksIEFMTCBT RVFVRU5DRVMgRVhDRVBUIChTRVFVRU5DRSBwdWJsaWMudGVzdF90YWJsZV9jb2wxX3NlcSk7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEyIEZPUiBBTEwg VEFCTEVTIEVYQ0VQVCAoVEFCTEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZSksIEFMTCBTRVFV RU5DRVMgRVhDRVBUIChTRVFVRU5DRSBwdWJsaWMudGVzdF90YWJsZV9jb2wxX3NlcSkgV0lUSCAo cHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkveG0s CisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0s CisKIAknQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA1 MCwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxCkBAIC00MDgyLDYg KzQxMDIsOCBAQCBteSAldGVzdHMgPSAoCiAJfSwKIAogCSdDUkVBVEUgU0VRVUVOQ0UgdGVzdF90 YWJsZV9jb2wxX3NlcScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gOTAsCisJCWNyZWF0ZV9zcWwg PT4gJ0NSRUFURSBTRVFVRU5DRSB0ZXN0X3RhYmxlX2NvbDFfc2VxJywKIAkJcmVnZXhwID0+IHFy L14KIAkJCVxRQ1JFQVRFIFNFUVVFTkNFIGR1bXBfdGVzdC50ZXN0X3RhYmxlX2NvbDFfc2VxXEUK IAkJCVxuXHMrXFFBUyBpbnRlZ2VyXEUKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggYTFhNDQwYTY0NjkuLmJiNWUyOTkx MWQ1IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYwpAQCAtMTc3OCw3ICsxNzc4LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFp bHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAl7CiAJCVBHcmVzdWx0ICAgKnJlc3VsdCA9IE5V TEw7CiAJCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0JCWNoYXIJICAgKmZvb3Rl cnNbM10gPSB7TlVMTCwgTlVMTCwgTlVMTH07CisJCWNoYXIJICAgKmZvb3RlcnNbNF0gPSB7TlVM TCwgTlVMTCwgTlVMTCwgTlVMTH07CiAKIAkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIi8qICVz ICovXG4iLCBfKCJHZXQgc2VxdWVuY2UgaW5mb3JtYXRpb24iKSk7CiAJCWlmIChwc2V0LnN2ZXJz aW9uID49IDEwMDAwMCkKQEAgLTE4ODIsMTIgKzE4ODIsMjggQEAgZGVzY3JpYmVPbmVUYWJsZURl dGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJewogCQkJcHJpbnRmUFFFeHBCdWZmZXIo JmJ1ZiwgIi8qICVzICovXG4iLAogCQkJCQkJCSAgXygiR2V0IHB1YmxpY2F0aW9ucyBjb250YWlu aW5nIHRoaXMgc2VxdWVuY2UiKSk7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNU IHB1Ym5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHAiCisJCQlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIHAucHVibmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfcHVibGlj YXRpb24gcCIKIAkJCQkJCQkgICJcbldIRVJFIHAucHViYWxsc2VxdWVuY2VzIgotCQkJCQkJCSAg IlxuIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpIgotCQkJ CQkJCSAgIlxuT1JERVIgQlkgMSIsCisJCQkJCQkJICAiXG4gQU5EIHBnX2NhdGFsb2cucGdfcmVs YXRpb25faXNfcHVibGlzaGFibGUoJyVzJykiLAogCQkJCQkJCSAgb2lkKTsKIAorCQkJLyoKKwkJ CSAqIFNraXAgZW50cmllcyB3aGVyZSB0aGlzIHNlcXVlbmNlIGFwcGVhcnMgaW4gdGhlIHB1Ymxp Y2F0aW9uJ3MKKwkJCSAqIEVYQ0VQVCBsaXN0LgorCQkJICovCisJCQlpZiAocHNldC5zdmVyc2lv biA+PSAyMDAwMDApCisJCQl7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJ ICAiXG4gQU5EIE5PVCBFWElTVFMgKCIKKwkJCQkJCQkJICAiXG4gCVNFTEVDVCAxIgorCQkJCQkJ CQkgICJcbiAJRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciIKKwkJCQkJCQkJ ICAiXG4gCVdIRVJFIHByLnBycHViaWQgPSBwLm9pZCBBTkQiCisJCQkJCQkJCSAgIlxuIAlwci5w cnJlbGlkID0gJyVzJyBBTkQgcHIucHJleGNlcHQpIiwKKwkJCQkJCQkJICBvaWQpOworCQkJfQor CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5PUkRFUiBCWSAxIik7CisKIAkJCXJlc3Vs dCA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKIAkJCWlmIChyZXN1bHQpCiAJCQl7CkBAIC0xOTEyLDYg KzE5MjgsNDIgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFt ZSwKIAkJCX0KIAkJfQogCisJCS8qIFByaW50IHB1YmxpY2F0aW9ucyB3aGVyZSB0aGUgc2VxdWVu Y2UgaXMgaW4gdGhlIEVYQ0VQVCBjbGF1c2UgKi8KKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMjAw MDAwKQorCQl7CisJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIlNFTEVDVCBw LnB1Ym5hbWVcbiIKKwkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxu IgorCQkJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5v aWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcycgQU5E IHByLnByZXhjZXB0XG4iCisJCQkJCQkJICAiT1JERVIgQlkgMTsiLCBvaWQpOworCisJCQlyZXN1 bHQgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJCQlpZiAocmVzdWx0KQorCQkJeworCQkJCWludAkJ CXR1cGxlcyA9IFBRbnR1cGxlcyhyZXN1bHQpOworCisJCQkJaWYgKHR1cGxlcyA+IDApCisJCQkJ eworCQkJCQlwcmludGZQUUV4cEJ1ZmZlcigmdG1wYnVmLCBfKCJFeGNsdWRlZCBmcm9tIHB1Ymxp Y2F0aW9uczoiKSk7CisKKwkJCQkJLyogTWlnaHQgYmUgYW4gZW1wdHkgc2V0IC0gdGhhdCdzIG9r ICovCisJCQkJCWZvciAoaSA9IDA7IGkgPCB0dXBsZXM7IGkrKykKKwkJCQkJCWFwcGVuZFBRRXhw QnVmZmVyKCZ0bXBidWYsICJcbiAgICBcIiVzXCIiLCBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMCkp OworCisJCQkJCWlmIChmb290ZXJzWzBdID09IE5VTEwpCisJCQkJCQlmb290ZXJzWzBdID0gcGdf c3RyZHVwKHRtcGJ1Zi5kYXRhKTsKKwkJCQkJZWxzZSBpZiAoZm9vdGVyc1sxXSA9PSBOVUxMKQor CQkJCQkJZm9vdGVyc1sxXSA9IHBnX3N0cmR1cCh0bXBidWYuZGF0YSk7CisJCQkJCWVsc2UKKwkJ CQkJCWZvb3RlcnNbMl0gPSBwZ19zdHJkdXAodG1wYnVmLmRhdGEpOworCQkJCQlyZXNldFBRRXhw QnVmZmVyKCZ0bXBidWYpOworCQkJCX0KKworCQkJCVBRY2xlYXIocmVzdWx0KTsKKwkJCX0KKwkJ fQorCiAJCWlmICh0YWJsZWluZm8ucmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVU5M T0dHRUQpCiAJCQlwcmludGZQUUV4cEJ1ZmZlcigmdGl0bGUsIF8oIlVubG9nZ2VkIHNlcXVlbmNl IFwiJXMuJXNcIiIpLAogCQkJCQkJCSAgc2NoZW1hbmFtZSwgcmVsYXRpb25uYW1lKTsKQEAgLTE5 MjgsNiArMTk4MCw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVt YW5hbWUsCiAKIAkJcGdfZnJlZShmb290ZXJzWzBdKTsKIAkJcGdfZnJlZShmb290ZXJzWzFdKTsK KwkJcGdfZnJlZShmb290ZXJzWzJdKTsKIAogCQlyZXR2YWwgPSB0cnVlOwogCQlnb3RvIGVycm9y X3JldHVybjsJCS8qIG5vdCBhbiBlcnJvciwganVzdCByZXR1cm4gZWFybHkgKi8KQEAgLTY5NTAs NiArNzAwMyw3IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJ CWNoYXIJICAgKnB1YmlkID0gUFFnZXR2YWx1ZShyZXMsIGksIDApOwogCQljaGFyCSAgICpwdWJu YW1lID0gUFFnZXR2YWx1ZShyZXMsIGksIDEpOwogCQlib29sCQlwdWJhbGx0YWJsZXMgPSBzdHJj bXAoUFFnZXR2YWx1ZShyZXMsIGksIDMpLCAidCIpID09IDA7CisJCWJvb2wJCXB1YmFsbHNlcXVl bmNlcyA9IHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgNCksICJ0IikgPT0gMDsKIAkJcHJpbnRU YWJsZU9wdCBteW9wdCA9IHBzZXQucG9wdC50b3B0OwogCiAJCWluaXRQUUV4cEJ1ZmZlcigmdGl0 bGUpOwpAQCAtNjk4Niw3ICs3MDQwLDcgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hh ciAqcGF0dGVybikKIAkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywg aSwgMTApLCBmYWxzZSwgZmFsc2UpOwogCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2 YWx1ZShyZXMsIGksIDExKSwgZmFsc2UsIGZhbHNlKTsKIAotCQlpZiAoIXB1YmFsbHRhYmxlcykK KwkJaWYgKCFwdWJhbGx0YWJsZXMgJiYgIXB1YmFsbHNlcXVlbmNlcykKIAkJewogCQkJLyogR2V0 IHRoZSB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24gKi8KIAkJCXByaW50ZlBR RXhwQnVmZmVyKCZidWYsICIvKiAlcyAqL1xuIiwKQEAgLTcwNDAsNyArNzA5NCw4IEBAIGRlc2Ny aWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCWdvdG8gZXJyb3JfcmV0 dXJuOwogCQkJfQogCQl9Ci0JCWVsc2UKKworCQlpZiAocHViYWxsdGFibGVzKQogCQl7CiAJCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCiAJCQl7CkBAIC03MDUyLDcgKzcxMDcsNyBAQCBk ZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkJCQkgICJGUk9N IHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgogCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxv Zy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IGMucmVsbmFtZXNwYWNlXG4iCiAJCQkJCQkJCSAg IiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBjLm9pZCA9IHBy LnBycmVsaWRcbiIKLQkJCQkJCQkJICAiV0hFUkUgcHIucHJwdWJpZCA9ICclcycgQU5EIHByLnBy ZXhjZXB0XG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnIEFORCBwci5wcmV4 Y2VwdCBBTkQgYy5yZWxraW5kIElOICgncicsJ3AnKVxuIgogCQkJCQkJCQkgICJPUkRFUiBCWSAx IiwgcHViaWQpOwogCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygi RXhjZXB0IHRhYmxlczoiKSwKIAkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKQEAgLTcwNjAsNiAr NzExNSwyNiBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJ fQogCQl9CiAKKwkJaWYgKHB1YmFsbHNlcXVlbmNlcykKKwkJeworCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMjAwMDAwKQorCQkJeworCQkJCS8qIEdldCBzZXF1ZW5jZXMgaW4gdGhlIEVYQ0VQVCBj bGF1c2UgZm9yIHRoaXMgcHVibGljYXRpb24gKi8KKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVm LCAiLyogJXMgKi9cbiIsCisJCQkJCQkJCSAgXygiR2V0IHNlcXVlbmNlcyBleGNsdWRlZCBieSB0 aGlzIHB1YmxpY2F0aW9uIikpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJ CSAgIlNFTEVDVCBuLm5zcG5hbWUgfHwgJy4nIHx8IGMucmVsbmFtZVxuIgorCQkJCQkJCQkgICJG Uk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0 YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IGMucmVsbmFtZXNwYWNlXG4iCisJCQkJCQkJ CSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBjLm9pZCA9 IHByLnBycmVsaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJwdWJpZCA9ICclcycgQU5EIHBy LnByZXhjZXB0IEFORCBjLnJlbGtpbmQgPSAnUydcbiIKKwkJCQkJCQkJICAiT1JERVIgQlkgMSIs IHB1YmlkKTsKKwkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIkV4 Y2VwdCBzZXF1ZW5jZXM6IiksCisJCQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCisJCQkJCWdvdG8g ZXJyb3JfcmV0dXJuOworCQkJfQorCQl9CisKIAkJcHJpbnRUYWJsZSgmY29udCwgcHNldC5xdWVy eUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOwogCQlwcmludFRhYmxlQ2xlYW51cCgmY29udCk7 CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCBmNGM4MzljMzk1My4uNWQyYzIzYjJkOWQgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTM3NjIsNiArMzc2MiwxOCBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVl cnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICIo IiwgIlRBQkxFIiwgTWF0Y2hBbnlOKSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCiAJCUNP TVBMRVRFX1dJVEgoIikiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJ T04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiU0VRVUVOQ0VTIikpCisJCUNPTVBMRVRFX1dJ VEgoIkVYQ0VQVCAoIFNFUVVFTkNFIiwgIldJVEggKCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNS RUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJTRVFVRU5DRVMi LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIiggU0VRVUVOQ0UiKTsKKwllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAi U0VRVUVOQ0VTIiwgIkVYQ0VQVCIsICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIik7 CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJG T1IiLCAiQUxMIiwgIlNFUVVFTkNFUyIsICJFWENFUFQiLCAiKCIsICJTRVFVRU5DRSIpKQorCQlD T01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9zZXF1ZW5jZXMpOwor CWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9S IiwgIkFMTCIsICJTRVFVRU5DRVMiLCAiRVhDRVBUIiwgIigiLCAiU0VRVUVOQ0UiLCBNYXRjaEFu eU4pICYmIGVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9R VUVSWShRdWVyeV9mb3JfbGlzdF9vZl9zZXF1ZW5jZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNS RUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJTRVFVRU5DRVMi LCAiRVhDRVBUIiwgIigiLCAiU0VRVUVOQ0UiLCBNYXRjaEFueU4pICYmICFlbmRzX3dpdGgocHJl dl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiKSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNS RUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01Q TEVURV9XSVRIKCJJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193 aXRoKHByZXZfd2QsICcsJykpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1 YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXgg ODliNGJiMTRmNjIuLjQ5YzI5YTg3NjMwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bi5oCkBAIC0xNzcsOCArMTc3LDggQEAgdHlwZWRlZiBlbnVtIFB1YmxpY2F0aW9uUGFydE9wdAog CiBleHRlcm4gTGlzdCAqR2V0SW5jbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQs CiAJCQkJCQkJCQkJCSBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpOwotZXh0ZXJuIExp c3QgKkdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMoT2lkIHB1YmlkLAotCQkJCQkJCQkJCSAg UHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKK2V4dGVybiBMaXN0ICpHZXRFeGNsdWRl ZFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwKKwkJCQkJCQkJCQkJIFB1YmxpY2F0aW9u UGFydE9wdCBwdWJfcGFydG9wdCk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRp b25zKHZvaWQpOwogZXh0ZXJuIExpc3QgKkdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBw dWJpZCwgY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpOwogZXh0ZXJuIExpc3QgKkdldFB1 YmxpY2F0aW9uU2NoZW1hcyhPaWQgcHViaWQpOwpAQCAtMjAwLDcgKzIwMCw4IEBAIGV4dGVybiBi b29sIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVs aWQsCiAJCQkJCQkJCQkJTWVtb3J5Q29udGV4dCBtY3h0LCBCaXRtYXBzZXQgKipjb2xzKTsKIGV4 dGVybiBPYmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1 YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCQkJCQkJCQkJCQkgIGJvb2wgaWZfbm90X2V4aXN0cywK LQkJCQkJCQkJCQkJICBBbHRlclB1YmxpY2F0aW9uU3RtdCAqYWx0ZXJfc3RtdCk7CisJCQkJCQkJ CQkJCSAgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKmFsdGVyX3N0bXQsCisJCQkJCQkJCQkJCSAgY2hh ciBwdWJyZWxraW5kKTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9jb2xsaXN0X3ZhbGlkYXRlKFJl bGF0aW9uIHRhcmdldHJlbCwgTGlzdCAqY29sdW1ucyk7CiBleHRlcm4gT2JqZWN0QWRkcmVzcyBw dWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLAogCQkJCQkJCQkJ CQlib29sIGlmX25vdF9leGlzdHMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGUwMzU1NjM5 OWFiLi4yNDZiZDQ0ZTZhYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDQ2MSwxNCArNDQ2 MSwxNCBAQCB0eXBlZGVmIHN0cnVjdCBBbHRlclRTQ29uZmlndXJhdGlvblN0bXQKIAlib29sCQlt aXNzaW5nX29rOwkJLyogZm9yIERST1AgLSBza2lwIGVycm9yIGlmIG1pc3Npbmc/ICovCiB9IEFs dGVyVFNDb25maWd1cmF0aW9uU3RtdDsKIAotdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJs ZQordHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25SZWxhdGlvbgogewogCU5vZGVUYWcJCXR5cGU7 Ci0JUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiBwdWJsaWNhdGlvbiByZWxhdGlvbiAqLwotCU5v ZGUJICAgKndoZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAqLworCVJhbmdlVmFyICAgKnJl bGF0aW9uOwkJLyogcHVibGljYXRpb24gdGFibGUvc2VxdWVuY2UgKi8KKwlOb2RlCSAgICp3aGVy ZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgZm9yIHB1YmxpY2F0aW9uIHRhYmxlICovCiAJTGlz dAkgICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0aW9uIHRhYmxl ICovCiAJYm9vbAkJZXhjZXB0OwkJCS8qIFRydWUgaWYgbGlzdGVkIGluIHRoZSBFWENFUFQgY2xh dXNlICovCi19IFB1YmxpY2F0aW9uVGFibGU7Cit9IFB1YmxpY2F0aW9uUmVsYXRpb247CiAKIC8q CiAgKiBQdWJsaWNhdGlvbiBvYmplY3QgdHlwZQpAQCAtNDQ3Nyw2ICs0NDc3LDcgQEAgdHlwZWRl ZiBlbnVtIFB1YmxpY2F0aW9uT2JqU3BlY1R5cGUKIHsKIAlQVUJMSUNBVElPTk9CSl9UQUJMRSwJ CS8qIEEgdGFibGUgKi8KIAlQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEUsCS8qIEEgdGFibGUg aW4gdGhlIEVYQ0VQVCBjbGF1c2UgKi8KKwlQVUJMSUNBVElPTk9CSl9FWENFUFRfU0VRVUVOQ0Us IC8qIEEgc2VxdWVuY2UgaW4gdGhlIEVYQ0VQVCBjbGF1c2UgKi8KIAlQVUJMSUNBVElPTk9CSl9U QUJMRVNfSU5fU0NIRU1BLAkvKiBBbGwgdGFibGVzIGluIHNjaGVtYSAqLwogCVBVQkxJQ0FUSU9O T0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BLAkvKiBBbGwgdGFibGVzIGluIGZpcnN0IGVsZW1lbnQg b2YKIAkJCQkJCQkJCQkJICogc2VhcmNoX3BhdGggKi8KQEAgLTQ0ODgsNyArNDQ4OSw3IEBAIHR5 cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uT2JqU3BlYwogCU5vZGVUYWcJCXR5cGU7CiAJUHVibGlj YXRpb25PYmpTcGVjVHlwZSBwdWJvYmp0eXBlOwkvKiB0eXBlIG9mIHRoaXMgcHVibGljYXRpb24g b2JqZWN0ICovCiAJY2hhcgkgICAqbmFtZTsKLQlQdWJsaWNhdGlvblRhYmxlICpwdWJ0YWJsZTsK KwlQdWJsaWNhdGlvblJlbGF0aW9uICpwdWJyZWxhdGlvbjsKIAlQYXJzZUxvYwlsb2NhdGlvbjsJ CS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFB1YmxpY2F0aW9uT2Jq U3BlYzsKIApAQCAtNDUwNSw3ICs0NTA2LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25B bGxPYmpTcGVjCiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlQdWJsaWNhdGlvbkFsbE9ialR5cGUgcHVi b2JqdHlwZTsJLyogdHlwZSBvZiB0aGlzIHB1YmxpY2F0aW9uIG9iamVjdCAqLwotCUxpc3QJICAg KmV4Y2VwdF90YWJsZXM7CS8qIHRhYmxlcyBzcGVjaWZpZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2Ug Ki8KKwlMaXN0CSAgICpleGNlcHRfcmVsYXRpb25zOwkvKiBkZXBlbmRpbmcgb24gdGhlICdwdWJv Ymp0eXBlJywgdGhpcyBpcworCQkJCQkJCQkJICogYSBsaXN0IG9mIGVpdGhlciB0YWJsZXMgb3Ig c2VxdWVuY2VzCisJCQkJCQkJCQkgKiBzcGVjaWZpZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2UgKi8K IAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3du ICovCiB9IFB1YmxpY2F0aW9uQWxsT2JqU3BlYzsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3B1YmxpY2F0aW9uLm91dAppbmRleCAyOWU1NGIyMTRhMC4uNjQ0MmI4N2QwMzggMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC00NTgsNyArNDU4LDcgQEAg RXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbnM6CiBOdW1iZXIgb2YgcGFydGl0aW9uczogMSAoVXNl IFxkKyB0byBsaXN0IHRoZW0uKQogCiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjkgRk9SIEFM TCBUQUJMRVMgRVhDRVBUIChUQUJMRSB0ZXN0cHViX3BhcnQxKTsKLUVSUk9SOiAgY2Fubm90IHNw ZWNpZnkgcmVsYXRpb24gInB1YmxpYy50ZXN0cHViX3BhcnQxIiBpbiB0aGUgcHVibGljYXRpb24g RVhDRVBUIGNsYXVzZQorRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSAicHVibGljLnRlc3RwdWJfcGFy dDEiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgKFRBQkxFKSBjbGF1c2UKIERFVEFJTDogIFRo aXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGl2aWR1YWwgcGFydGl0aW9ucy4K IENSRUFURSBUQUJMRSB0YWJfbWFpbiAoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKIC0t IEF0dGFjaGluZyBhIHBhcnRpdGlvbiBpcyBub3QgYWxsb3dlZCBpZiB0aGUgcGFydGl0aW9uZWQg dGFibGUgYXBwZWFycyBpbiBhCkBAIC00NzEsOCArNDcxLDkgQEAgUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKIERST1AgVEFCTEUgdGVzdHB1Yl9yb290LCB0ZXN0cHViX3BhcnQxLCB0YWJfbWFp bjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yjg7CiAtLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9u cyB3aXRoIFNFUVVFTkNFUwotQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTA7Ci1DUkVB VEUgU0VRVUVOQ0UgcHViX3Rlc3QucmVncmVzc19wdWJfc2VxMTsKK0NSRUFURSBTRVFVRU5DRSBy ZWdyZXNzX3NlcTA7CitDUkVBVEUgU0VRVUVOQ0UgcHViX3Rlc3QucmVncmVzc19zZXExOworQ1JF QVRFIFNFUVVFTkNFIHJlZ3Jlc3Nfc2VxMjsKIC0tIEZPUiBBTEwgU0VRVUVOQ0VTCiBTRVQgY2xp ZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gcmVncmVzc19w dWJfZm9yYWxsc2VxdWVuY2VzMSBGT1IgQUxMIFNFUVVFTkNFUzsKQEAgLTQ4Myw4ICs0ODQsOCBA QCBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFibGVzLCBwdWJhbGxzZXF1ZW5jZXMgRlJPTSBwZ19w dWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lCiAgcmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2VzMSB8 IGYgICAgICAgICAgICB8IHQKICgxIHJvdykKIAotXGQrIHJlZ3Jlc3NfcHViX3NlcTAKLSAgICAg ICAgICAgICAgICAgICAgICBTZXF1ZW5jZSAicHVibGljLnJlZ3Jlc3NfcHViX3NlcTAiCitcZCsg cmVncmVzc19zZXEwCisgICAgICAgICAgICAgICAgICAgICAgICBTZXF1ZW5jZSAicHVibGljLnJl Z3Jlc3Nfc2VxMCIKICAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0gfCAgICAgICBNYXhpbXVtICAg ICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAogLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t CiAgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIyMzM3MjAzNjg1NDc3NTgwNyB8ICAgICAg ICAgMSB8IG5vICAgICAgfCAgICAgMQpAQCAtNTAyLDggKzUwMyw4IEBAIFNFVCBjbGllbnRfbWlu X21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3Jh bGxzZXF1ZW5jZXMyIEZPUiBBTEwgU0VRVUVOQ0VTOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdl czsKIC0tIGNoZWNrIHRoYXQgZGVzY3JpYmUgc2VxdWVuY2UgbGlzdHMgYm90aCBwdWJsaWNhdGlv bnMgdGhlIHNlcXVlbmNlIGJlbG9uZ3MgdG8KLVxkKyBwdWJfdGVzdC5yZWdyZXNzX3B1Yl9zZXEx Ci0gICAgICAgICAgICAgICAgICAgICBTZXF1ZW5jZSAicHViX3Rlc3QucmVncmVzc19wdWJfc2Vx MSIKK1xkKyBwdWJfdGVzdC5yZWdyZXNzX3NlcTEKKyAgICAgICAgICAgICAgICAgICAgICAgU2Vx dWVuY2UgInB1Yl90ZXN0LnJlZ3Jlc3Nfc2VxMSIKICAgVHlwZSAgfCBTdGFydCB8IE1pbmltdW0g fCAgICAgICBNYXhpbXVtICAgICAgIHwgSW5jcmVtZW50IHwgQ3ljbGVzPyB8IENhY2hlIAogLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tCiAgYmlnaW50IHwgICAgIDEgfCAgICAgICAxIHwgOTIyMzM3MjAz Njg1NDc3NTgwNyB8ICAgICAgICAgMSB8IG5vICAgICAgfCAgICAgMQpAQCAtNTM0LDEwICs1MzUs OTIgQEAgU0VMRUNUIHB1Ym5hbWUsIHB1YmFsbHRhYmxlcywgcHViYWxsc2VxdWVuY2VzIEZST00g cGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZQogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IHQgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAg IHwgZiAgICAgICAgIHwgc3RvcmVkICAgICAgICAgICAgfCBmICAgICAgICB8IAogKDEgcm93KQog Ci1EUk9QIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTAsIHB1Yl90ZXN0LnJlZ3Jlc3NfcHViX3Nl cTE7CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVY Q0VQVCBjbGF1c2UgdGVzdHMgZm9yIHNlcXVlbmNlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7 CitDUkVBVEUgUFVCTElDQVRJT04gcmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2VzX2V4Y2VwdCBG T1IgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVFTkNFIHJlZ3Jlc3Nfc2VxMCwgcHViX3Rlc3Qu cmVncmVzc19zZXExLCBTRVFVRU5DRSByZWdyZXNzX3NlcTIpOworXGRScCsgcmVncmVzc19wdWJf Zm9yYWxsc2VxdWVuY2VzX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gcmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2VzX2V4 Y2VwdAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVu Y2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVk IGNvbHVtbnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAg ICAgICAgICAgICAgfCBmICAgICAgICB8IAorRXhjZXB0IHNlcXVlbmNlczoKKyAgICAicHViX3Rl c3QucmVncmVzc19zZXExIgorICAgICJwdWJsaWMucmVncmVzc19zZXEwIgorICAgICJwdWJsaWMu cmVncmVzc19zZXEyIgorCistLSBDaGVjayB0aGF0IHRoZSBzZXF1ZW5jZSBkZXNjcmlwdGlvbiBz aG93cyB0aGUgcHVibGljYXRpb25zIHdoZXJlIGl0IGlzIGxpc3RlZAorLS0gaW4gdGhlIEVYQ0VQ VCBjbGF1c2UKK1xkKyByZWdyZXNzX3NlcTAKKyAgICAgICAgICAgICAgICAgICAgICAgIFNlcXVl bmNlICJwdWJsaWMucmVncmVzc19zZXEwIgorICBUeXBlICB8IFN0YXJ0IHwgTWluaW11bSB8ICAg ICAgIE1heGltdW0gICAgICAgfCBJbmNyZW1lbnQgfCBDeWNsZXM/IHwgQ2FjaGUgCistLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0KKyBiaWdpbnQgfCAgICAgMSB8ICAgICAgIDEgfCA5MjIzMzcyMDM2ODU0 Nzc1ODA3IHwgICAgICAgICAxIHwgbm8gICAgICB8ICAgICAxCitJbmNsdWRlZCBpbiBwdWJsaWNh dGlvbnM6CisgICAgInJlZ3Jlc3NfcHViX2Zvcl9hbGxzZXF1ZW5jZXNfYWxsdGFibGVzIgorICAg ICJyZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXMxIgorICAgICJyZWdyZXNzX3B1Yl9mb3JhbGxz ZXF1ZW5jZXMyIgorRXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbnM6CisgICAgInJlZ3Jlc3NfcHVi X2ZvcmFsbHNlcXVlbmNlc19leGNlcHQiCisKKy0tIFZlcmlmeSB0aGF0IGFuIGV4Y2x1ZGVkIHNl cXVlbmNlIHJlbWFpbnMgZXhjbHVkZWQgYWZ0ZXIgYmVpbmcgbW92ZWQgdG8KKy0tIGFub3RoZXIg c2NoZW1hLgorQUxURVIgU0VRVUVOQ0UgcmVncmVzc19zZXEyIFNFVCBTQ0hFTUEgcHViX3Rlc3Q7 CitcZFJwKyByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiByZWdyZXNzX3B1 Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IHwgRGVzY3JpcHRpb24gCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg ZiAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYgICAgICAgIHwgCitFeGNlcHQgc2Vx dWVuY2VzOgorICAgICJwdWJfdGVzdC5yZWdyZXNzX3NlcTEiCisgICAgInB1Yl90ZXN0LnJlZ3Jl c3Nfc2VxMiIKKyAgICAicHVibGljLnJlZ3Jlc3Nfc2VxMCIKKworLS0gVGVzdCBjb21iaW5hdGlv biBvZiBBTEwgU0VRVUVOQ0VTIGFuZCBBTEwgVEFCTEVTIHdpdGggRVhDRVBUIGNsYXVzZQorQ1JF QVRFIFRBQkxFIHJlZ3Jlc3NfdGFiMShhIGludCk7CitDUkVBVEUgUFVCTElDQVRJT04gcmVncmVz c19wdWJfZm9yX2FsbHNlcXVlbmNlc19hbGx0YWJsZXNfZXhjZXB0IEZPUiBBTEwgVEFCTEVTIEVY Q0VQVCAoVEFCTEUgcmVncmVzc190YWIxKSwgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVFTkNF IHJlZ3Jlc3Nfc2VxMCk7CitcZFJwKyByZWdyZXNzX3B1Yl9mb3JfYWxsc2VxdWVuY2VzX2FsbHRh Ymxlc19leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHJlZ3Jlc3NfcHViX2Zvcl9hbGxzZXF1ZW5jZXNfYWxsdGFibGVzX2V4Y2VwdAor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwg SW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVt bnMgfCBWaWEgcm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmICAgICAgICB8IAorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnJlZ3Jlc3Nf dGFiMSIKK0V4Y2VwdCBzZXF1ZW5jZXM6CisgICAgInB1YmxpYy5yZWdyZXNzX3NlcTAiCisKK1JF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSBmYWlsIC0gZmlyc3Qgc2VxdWVuY2UgaW4gdGhl IEVYQ0VQVCBsaXN0IHNob3VsZCB1c2UgU0VRVUVOQ0Uga2V5d29yZAorQ1JFQVRFIFBVQkxJQ0FU SU9OIHJlZ3Jlc3NfcHViX3Nob3VsZF9mYWlsIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAocmVncmVz c19zZXEwLCBwdWJfdGVzdC5yZWdyZXNzX3NlcTEpOworRVJST1I6ICBzeW50YXggZXJyb3IgYXQg b3IgbmVhciAicmVncmVzc19zZXEwIgorTElORSAxOiAuLi5PTiByZWdyZXNzX3B1Yl9zaG91bGRf ZmFpbCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHJlZ3Jlc3Nfc2UuLi4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBmYWls IC0gdW5sb2dnZWQgc2VxdWVuY2UgaXMgc3BlY2lmaWVkIGluIEVYQ0VQVCBzZXF1ZW5jZSBsaXN0 CitDUkVBVEUgVU5MT0dHRUQgU0VRVUVOQ0UgcmVncmVzc19zZXFfdW5sb2dnZWQ7CitDUkVBVEUg UFVCTElDQVRJT04gcmVncmVzc19wdWJfc2hvdWxkX2ZhaWwgRk9SIEFMTCBTRVFVRU5DRVMgRVhD RVBUIChTRVFVRU5DRSByZWdyZXNzX3NlcV91bmxvZ2dlZCk7CitFUlJPUjogIGNhbm5vdCBzcGVj aWZ5ICJwdWJsaWMucmVncmVzc19zZXFfdW5sb2dnZWQiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENF UFQgKFNFUVVFTkNFKSBjbGF1c2UKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgZm9yIHVubG9nZ2VkIHNlcXVlbmNlcy4KKy0tIGZhaWwgLSB0ZW1wb3Jhcnkgc2VxdWVu Y2UgaXMgc3BlY2lmaWVkIGluIEVYQ0VQVCBzZXF1ZW5jZSBsaXN0CitDUkVBVEUgVEVNUE9SQVJZ IFNFUVVFTkNFIHJlZ3Jlc3Nfc2VxX3RlbXA7CitDUkVBVEUgUFVCTElDQVRJT04gcmVncmVzc19w dWJfc2hvdWxkX2ZhaWwgRk9SIEFMTCBTRVFVRU5DRVMgRVhDRVBUIChTRVFVRU5DRSByZWdyZXNz X3NlcV90ZW1wKTsKK0VSUk9SOiAgY2Fubm90IHNwZWNpZnkgInBnX3RlbXAucmVncmVzc19zZXFf dGVtcCIgaW4gdGhlIHB1YmxpY2F0aW9uIEVYQ0VQVCAoU0VRVUVOQ0UpIGNsYXVzZQorREVUQUlM OiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgdGVtcG9yYXJ5IHNlcXVlbmNl cy4KKy0tIGZhaWwgLSBzZXF1ZW5jZSBvYmplY3QgaXMgc3BlY2lmaWVkIGluIEVYQ0VQVCB0YWJs ZSBsaXN0CitDUkVBVEUgUFVCTElDQVRJT04gcmVncmVzc19wdWJfc2hvdWxkX2ZhaWwgRk9SIEFM TCBUQUJMRVMgRVhDRVBUIChUQUJMRSByZWdyZXNzX3NlcTApOworRVJST1I6ICBjYW5ub3Qgc3Bl Y2lmeSAicHVibGljLnJlZ3Jlc3Nfc2VxMCIgaW4gdGhlIHB1YmxpY2F0aW9uIEVYQ0VQVCAoVEFC TEUpIGNsYXVzZQorREVUQUlMOiAgVGhpcyBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3Ig c2VxdWVuY2VzLgorLS0gZmFpbCAtIHRhYmxlIG9iamVjdCBpcyBzcGVjaWZpZWQgaW4gRVhDRVBU IHNlcXVlbmNlIGxpc3QKK0NSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9zaG91bGRfZmFp bCBGT1IgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVFTkNFIHJlZ3Jlc3NfdGFiMSk7CitFUlJP UjogIGNhbm5vdCBzcGVjaWZ5ICJwdWJsaWMucmVncmVzc190YWIxIiBpbiB0aGUgcHVibGljYXRp b24gRVhDRVBUIChTRVFVRU5DRSkgY2xhdXNlCitERVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBu b3Qgc3VwcG9ydGVkIGZvciB0YWJsZXMuCitEUk9QIFNFUVVFTkNFIHJlZ3Jlc3Nfc2VxMCwgcHVi X3Rlc3QucmVncmVzc19zZXExLCBwdWJfdGVzdC5yZWdyZXNzX3NlcTIsIHJlZ3Jlc3Nfc2VxX3Vu bG9nZ2VkLCByZWdyZXNzX3NlcV90ZW1wOwogRFJPUCBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9m b3JhbGxzZXF1ZW5jZXMxOwogRFJPUCBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1 ZW5jZXMyOworRFJPUCBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhj ZXB0OwogRFJPUCBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JfYWxsc2VxdWVuY2VzX2FsbHRh YmxlczsKK0RST1AgUFVCTElDQVRJT04gcmVncmVzc19wdWJfZm9yX2FsbHNlcXVlbmNlc19hbGx0 YWJsZXNfZXhjZXB0OworRFJPUCBUQUJMRSByZWdyZXNzX3RhYjE7CiAtLSBmYWlsIC0gU3BlY2lm eWluZyBBTEwgVEFCTEVTIG1vcmUgdGhhbiBvbmNlCiBDUkVBVEUgUFVCTElDQVRJT04gcmVncmVz c19wdWJfZm9yX2FsbHNlcXVlbmNlc19hbGx0YWJsZXMgRk9SIEFMTCBTRVFVRU5DRVMsIEFMTCBU QUJMRVMsIEFMTCBUQUJMRVM7CiBFUlJPUjogIGludmFsaWQgcHVibGljYXRpb24gb2JqZWN0IGxp c3QKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCAwNDFlMTRhNGRlNi4uMTFj MjBlNjUxNDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTIyMSw4ICsy MjEsOSBAQCBEUk9QIFRBQkxFIHRlc3RwdWJfcm9vdCwgdGVzdHB1Yl9wYXJ0MSwgdGFiX21haW47 CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWI4OwogCiAtLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9u cyB3aXRoIFNFUVVFTkNFUwotQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTA7Ci1DUkVB VEUgU0VRVUVOQ0UgcHViX3Rlc3QucmVncmVzc19wdWJfc2VxMTsKK0NSRUFURSBTRVFVRU5DRSBy ZWdyZXNzX3NlcTA7CitDUkVBVEUgU0VRVUVOQ0UgcHViX3Rlc3QucmVncmVzc19zZXExOworQ1JF QVRFIFNFUVVFTkNFIHJlZ3Jlc3Nfc2VxMjsKIAogLS0gRk9SIEFMTCBTRVFVRU5DRVMKIFNFVCBj bGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKQEAgLTIzMCw3ICsyMzEsNyBAQCBDUkVBVEUg UFVCTElDQVRJT04gcmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2VzMSBGT1IgQUxMIFNFUVVFTkNF UzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAKIFNFTEVDVCBwdWJuYW1lLCBwdWJhbGx0 YWJsZXMsIHB1YmFsbHNlcXVlbmNlcyBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWUg PSAncmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2VzMSc7Ci1cZCsgcmVncmVzc19wdWJfc2VxMAor XGQrIHJlZ3Jlc3Nfc2VxMAogXGRScCsgcmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2VzMQogCiBT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CkBAIC0yMzgsNyArMjM5LDcgQEAgQ1JF QVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNlczIgRk9SIEFMTCBTRVFV RU5DRVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCiAtLSBjaGVjayB0aGF0IGRlc2Ny aWJlIHNlcXVlbmNlIGxpc3RzIGJvdGggcHVibGljYXRpb25zIHRoZSBzZXF1ZW5jZSBiZWxvbmdz IHRvCi1cZCsgcHViX3Rlc3QucmVncmVzc19wdWJfc2VxMQorXGQrIHB1Yl90ZXN0LnJlZ3Jlc3Nf c2VxMQogCiAtLS0gU3BlY2lmeWluZyBib3RoIEFMTCBUQUJMRVMgYW5kIEFMTCBTRVFVRU5DRVMK IFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKQEAgLTI1MywxMCArMjU0LDUxIEBA IFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFibGVz LCBwdWJhbGxzZXF1ZW5jZXMgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3Jl Z3Jlc3NfcHViX2Zvcl9hbGxzZXF1ZW5jZXNfYWxsdGFibGVzJzsKIFxkUnArIHJlZ3Jlc3NfcHVi X2Zvcl9hbGxzZXF1ZW5jZXNfYWxsdGFibGVzCiAKLURST1AgU0VRVUVOQ0UgcmVncmVzc19wdWJf c2VxMCwgcHViX3Rlc3QucmVncmVzc19wdWJfc2VxMTsKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gRVhDRVBUIGNsYXVzZSB0ZXN0cyBmb3Igc2VxdWVu Y2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1NFVCBj bGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiByZWdyZXNz X3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0IEZPUiBBTEwgU0VRVUVOQ0VTIEVYQ0VQVCAoU0VR VUVOQ0UgcmVncmVzc19zZXEwLCBwdWJfdGVzdC5yZWdyZXNzX3NlcTEsIFNFUVVFTkNFIHJlZ3Jl c3Nfc2VxMik7CitcZFJwKyByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0CistLSBD aGVjayB0aGF0IHRoZSBzZXF1ZW5jZSBkZXNjcmlwdGlvbiBzaG93cyB0aGUgcHVibGljYXRpb25z IHdoZXJlIGl0IGlzIGxpc3RlZAorLS0gaW4gdGhlIEVYQ0VQVCBjbGF1c2UKK1xkKyByZWdyZXNz X3NlcTAKKworLS0gVmVyaWZ5IHRoYXQgYW4gZXhjbHVkZWQgc2VxdWVuY2UgcmVtYWlucyBleGNs dWRlZCBhZnRlciBiZWluZyBtb3ZlZCB0bworLS0gYW5vdGhlciBzY2hlbWEuCitBTFRFUiBTRVFV RU5DRSByZWdyZXNzX3NlcTIgU0VUIFNDSEVNQSBwdWJfdGVzdDsKK1xkUnArIHJlZ3Jlc3NfcHVi X2ZvcmFsbHNlcXVlbmNlc19leGNlcHQKKworLS0gVGVzdCBjb21iaW5hdGlvbiBvZiBBTEwgU0VR VUVOQ0VTIGFuZCBBTEwgVEFCTEVTIHdpdGggRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFRBQkxFIHJl Z3Jlc3NfdGFiMShhIGludCk7CitDUkVBVEUgUFVCTElDQVRJT04gcmVncmVzc19wdWJfZm9yX2Fs bHNlcXVlbmNlc19hbGx0YWJsZXNfZXhjZXB0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUg cmVncmVzc190YWIxKSwgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVFTkNFIHJlZ3Jlc3Nfc2Vx MCk7CitcZFJwKyByZWdyZXNzX3B1Yl9mb3JfYWxsc2VxdWVuY2VzX2FsbHRhYmxlc19leGNlcHQK K1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKKy0tIGZhaWwgLSBmaXJzdCBzZXF1ZW5jZSBp biB0aGUgRVhDRVBUIGxpc3Qgc2hvdWxkIHVzZSBTRVFVRU5DRSBrZXl3b3JkCitDUkVBVEUgUFVC TElDQVRJT04gcmVncmVzc19wdWJfc2hvdWxkX2ZhaWwgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChy ZWdyZXNzX3NlcTAsIHB1Yl90ZXN0LnJlZ3Jlc3Nfc2VxMSk7CisKKy0tIGZhaWwgLSB1bmxvZ2dl ZCBzZXF1ZW5jZSBpcyBzcGVjaWZpZWQgaW4gRVhDRVBUIHNlcXVlbmNlIGxpc3QKK0NSRUFURSBV TkxPR0dFRCBTRVFVRU5DRSByZWdyZXNzX3NlcV91bmxvZ2dlZDsKK0NSRUFURSBQVUJMSUNBVElP TiByZWdyZXNzX3B1Yl9zaG91bGRfZmFpbCBGT1IgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVF TkNFIHJlZ3Jlc3Nfc2VxX3VubG9nZ2VkKTsKKworLS0gZmFpbCAtIHRlbXBvcmFyeSBzZXF1ZW5j ZSBpcyBzcGVjaWZpZWQgaW4gRVhDRVBUIHNlcXVlbmNlIGxpc3QKK0NSRUFURSBURU1QT1JBUlkg U0VRVUVOQ0UgcmVncmVzc19zZXFfdGVtcDsKK0NSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1 Yl9zaG91bGRfZmFpbCBGT1IgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVFTkNFIHJlZ3Jlc3Nf c2VxX3RlbXApOworCistLSBmYWlsIC0gc2VxdWVuY2Ugb2JqZWN0IGlzIHNwZWNpZmllZCBpbiBF WENFUFQgdGFibGUgbGlzdAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX3Nob3VsZF9m YWlsIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgcmVncmVzc19zZXEwKTsKKworLS0gZmFp bCAtIHRhYmxlIG9iamVjdCBpcyBzcGVjaWZpZWQgaW4gRVhDRVBUIHNlcXVlbmNlIGxpc3QKK0NS RUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9zaG91bGRfZmFpbCBGT1IgQUxMIFNFUVVFTkNF UyBFWENFUFQgKFNFUVVFTkNFIHJlZ3Jlc3NfdGFiMSk7CisKK0RST1AgU0VRVUVOQ0UgcmVncmVz c19zZXEwLCBwdWJfdGVzdC5yZWdyZXNzX3NlcTEsIHB1Yl90ZXN0LnJlZ3Jlc3Nfc2VxMiwgcmVn cmVzc19zZXFfdW5sb2dnZWQsIHJlZ3Jlc3Nfc2VxX3RlbXA7CiBEUk9QIFBVQkxJQ0FUSU9OIHJl Z3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNlczE7CiBEUk9QIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHVi X2ZvcmFsbHNlcXVlbmNlczI7CitEUk9QIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2ZvcmFsbHNl cXVlbmNlc19leGNlcHQ7CiBEUk9QIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2Zvcl9hbGxzZXF1 ZW5jZXNfYWxsdGFibGVzOworRFJPUCBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JfYWxsc2Vx dWVuY2VzX2FsbHRhYmxlc19leGNlcHQ7CitEUk9QIFRBQkxFIHJlZ3Jlc3NfdGFiMTsKIAogLS0g ZmFpbCAtIFNwZWNpZnlpbmcgQUxMIFRBQkxFUyBtb3JlIHRoYW4gb25jZQogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHJlZ3Jlc3NfcHViX2Zvcl9hbGxzZXF1ZW5jZXNfYWxsdGFibGVzIEZPUiBBTEwgU0VR VUVOQ0VTLCBBTEwgVEFCTEVTLCBBTEwgVEFCTEVTOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19l eGNlcHQucGwKaW5kZXggOGM1OGQyODJlZWUuLmMzNWVmOTQwM2VlIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlw dGlvbi90LzAzN19leGNlcHQucGwKQEAgLTI4Miw2ICsyODIsODUgQEAgJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViJyk7CiAk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBQVUJMSUNBVElPTiB0 YXBfcHViMScpOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RST1Ag UFVCTElDQVRJT04gdGFwX3B1YjInKTsKIAorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorIyBFWENFUFQgY2xhdXNlIHRlc3QgY2FzZXMgZm9yIHNlcXVlbmNl cworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEgKAorCUNSRUFURSBUQUJMRSBz ZXFfdGVzdCAodiBCSUdJTlQpOworCUNSRUFURSBTRVFVRU5DRSBzZXFfZXhjbHVkZWRfaW5fcHVi MTsKKwlDUkVBVEUgU0VRVUVOQ0Ugc2VxX2V4Y2x1ZGVkX2luX3B1YjI7CisJSU5TRVJUIElOVE8g c2VxX3Rlc3QgU0VMRUNUIG5leHR2YWwoJ3NlcV9leGNsdWRlZF9pbl9wdWIxJykgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwxMDApOworCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFs KCdzZXFfZXhjbHVkZWRfaW5fcHViMicpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwKTsKKwlD UkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9hbGxfc2VxX2V4Y2VwdDEgRk9SIEFMTCBTRVFVRU5D RVMgRVhDRVBUIChTRVFVRU5DRSBzZXFfZXhjbHVkZWRfaW5fcHViMSk7CispKTsKKyRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0VRVUVOQ0Ug c2VxX2V4Y2x1ZGVkX2luX3B1YjE7CisJQ1JFQVRFIFNFUVVFTkNFIHNlcV9leGNsdWRlZF9pbl9w dWIyOworCUNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9hbGxfc2VxX2V4Y2VwdCBDT05ORUNU SU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfYWxsX3NlcV9leGNl cHQxOworKSk7CisKKyMgV2FpdCBmb3IgaW5pdGlhbCBzeW5jIHRvIGZpbmlzaAorbXkgJHN5bmNl ZF9xdWVyeSA9CisgICJTRUxFQ1QgY291bnQoMSkgPSAwIEZST00gcGdfc3Vic2NyaXB0aW9uX3Jl bCBXSEVSRSBzcnN1YnN0YXRlIE5PVCBJTiAoJ3InKTsiOworJG5vZGVfc3Vic2NyaWJlci0+cG9s bF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLCAkc3luY2VkX3F1ZXJ5KQorICBvciBkaWUgIlRpbWVk IG91dCB3aGlsZSB3YWl0aW5nIGZvciBzdWJzY3JpYmVyIHRvIHN5bmNocm9uaXplIGRhdGEiOwor CisjIENoZWNrIHRoZSBpbml0aWFsIGRhdGEgb24gc3Vic2NyaWJlcgorJHJlc3VsdCA9ICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgbGFzdF92YWx1ZSwg aXNfY2FsbGVkIEZST00gc2VxX2V4Y2x1ZGVkX2luX3B1YjEiKTsKK2lzKCRyZXN1bHQsICcxfGYn LCAnc2VxdWVuY2VzIGluIHRoZSBFWENFUFQgbGlzdCBhcmUgZXhjbHVkZWQnKTsKKworJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgbGFz dF92YWx1ZSwgaXNfY2FsbGVkIEZST00gc2VxX2V4Y2x1ZGVkX2luX3B1YjIiKTsKK2lzKCRyZXN1 bHQsICcxMDB8dCcsICdpbml0aWFsIHRlc3QgZGF0YSByZXBsaWNhdGVkIGZvciBzZXFfZXhjbHVk ZWRfaW5fcHViMicpOworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisjIFRlc3Qgd2hlbiBhIHN1YnNjcmlwdGlvbiBpcyBzdWJzY3JpYmluZyB0byBtdWx0 aXBsZSBwdWJsaWNhdGlvbnMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAor CUlOU0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdzZXFfZXhjbHVkZWRfaW5fcHVi MScpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwKTsKKwlJTlNFUlQgSU5UTyBzZXFfdGVzdCBT RUxFQ1QgbmV4dHZhbCgnc2VxX2V4Y2x1ZGVkX2luX3B1YjInKSBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDEwMCk7CisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfYWxsX3NlcV9leGNlcHQyIEZP UiBBTEwgU0VRVUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0Ugc2VxX2V4Y2x1ZGVkX2luX3B1YjIpOwor KSk7CisKKyMgU3Vic2NyaWJlIHRvIG11bHRpcGxlIHB1YmxpY2F0aW9ucyB3aXRoIGRpZmZlcmVu dCBFWENFUFQgc2VxdWVuY2UgbGlzdHMKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkn cG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9hbGxfc2VxX2V4Y2Vw dCBTRVQgUFVCTElDQVRJT04gdGFwX3B1Yl9hbGxfc2VxX2V4Y2VwdDEsIHRhcF9wdWJfYWxsX3Nl cV9leGNlcHQyOworCUFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX2FsbF9zZXFfZXhjZXB0IFJF RlJFU0ggU0VRVUVOQ0VTOworKSk7Ciskc3luY2VkX3F1ZXJ5ID0KKyAgIlNFTEVDVCBjb3VudCgx KSA9IDAgRlJPTSBwZ19zdWJzY3JpcHRpb25fcmVsIFdIRVJFIHNyc3Vic3RhdGUgTk9UIElOICgn cicpOyI7Ciskbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1ZXJ5X3VudGlsKCdwb3N0Z3JlcycsICRz eW5jZWRfcXVlcnkpCisgIG9yIGRpZSAiVGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHN1YnNj cmliZXIgdG8gc3luY2hyb25pemUgZGF0YSI7CisKKyMgc2VxX2V4Y2x1ZGVkX2luX3B1YjEgaXMg ZXhjbHVkZWQgaW4gdGFwX3B1Yl9hbGxfc2VxX2V4Y2VwdDEgYnV0IGluY2x1ZGVkIGluCisjIHRh cF9wdWJfYWxsX3NlcV9leGNlcHQyLCBzbyBvdmVyYWxsIHRoZSBzdWJzY3JpcHRpb24gdHJlYXRz IGl0IGFzIGluY2x1ZGVkLgorJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgbGFzdF92YWx1ZSwgaXNfY2FsbGVkIEZST00gc2VxX2V4Y2x1 ZGVkX2luX3B1YjEiKTsKK2lzKCRyZXN1bHQsICcyMDB8dCcsCisJJ2NoZWNrIHJlcGxpY2F0aW9u IG9mIGEgc2VxdWVuY2UgaW4gdGhlIEVYQ0VQVCBjbGF1c2Ugb2Ygb25lIHB1YmxpY2F0aW9uIGJ1 dCBpbmNsdWRlZCBieSBhbm90aGVyJworKTsKKworIyBzZXFfZXhjbHVkZWRfaW5fcHViMiBpcyBl eGNsdWRlZCBpbiB0YXBfcHViX2FsbF9zZXFfZXhjZXB0MiBidXQgaW5jbHVkZWQgaW4KKyMgdGFw X3B1Yl9hbGxfc2VxX2V4Y2VwdDEsIHNvIG92ZXJhbGwgdGhlIHN1YnNjcmlwdGlvbiB0cmVhdHMg aXQgYXMgaW5jbHVkZWQuCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBsYXN0X3ZhbHVlLCBpc19jYWxsZWQgRlJPTSBzZXFfZXhjbHVk ZWRfaW5fcHViMiIpOworaXMoJHJlc3VsdCwgJzIwMHx0JywKKwknY2hlY2sgcmVwbGljYXRpb24g b2YgYSBzZXF1ZW5jZSBpbiB0aGUgRVhDRVBUIGNsYXVzZSBvZiBvbmUgcHVibGljYXRpb24gYnV0 IGluY2x1ZGVkIGJ5IGFub3RoZXInCispOworCisjIENsZWFudXAKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSdEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViX2FsbF9z ZXFfZXhjZXB0Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSdE Uk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWJfYWxsX3NlcV9leGNlcHQxJyk7Ciskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWJfYWxs X3NlcV9leGNlcHQyJyk7CisKICRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOwogCiBkb25l X3Rlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMTE3ZTczNzlmMTAuLjA4 YWVlNGI0OTMzIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAor KysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjQ3NSw4ICsyNDc1LDgg QEAgUHVibGljYXRpb25PYmpTcGVjVHlwZQogUHVibGljYXRpb25QYXJ0T3B0CiBQdWJsaWNhdGlv blJlbEluZm8KIFB1YmxpY2F0aW9uUmVsS2luZAorUHVibGljYXRpb25SZWxhdGlvbgogUHVibGlj YXRpb25TY2hlbWFJbmZvCi1QdWJsaWNhdGlvblRhYmxlCiBQdWJsaXNoR2VuY29sc1R5cGUKIFB1 bGxGaWx0ZXIKIFB1bGxGaWx0ZXJPcHMKLS0gCjIuMzQuMQoK --000000000000f8b62506559ad664 Content-Type: application/octet-stream; name="v17-0002-Support-EXCEPT-for-ALL-SEQUENCES-in-ALTER-PUBLIC.patch" Content-Disposition: attachment; filename="v17-0002-Support-EXCEPT-for-ALL-SEQUENCES-in-ALTER-PUBLIC.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mr345ul31 RnJvbSAzYTI3MzJmMWI0NGIyYzRkYzkzZGU0MDUzODU4YzhiNDcxYmM1YzAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMSBKdWwgMjAyNiAxMjoxMjo0NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjE3 IDIvMl0gU3VwcG9ydCBFWENFUFQgZm9yIEFMTCBTRVFVRU5DRVMgaW4gQUxURVIgUFVCTElDQVRJ T04KCkV4dGVuZCBBTFRFUiBQVUJMSUNBVElPTiB0byBzdXBwb3J0IGFuIEVYQ0VQVCBjbGF1c2Ug d2hlbiB1c2luZwpBTEwgU0VRVUVOQ0VTLCBhbGxvd2luZyBzcGVjaWZpYyBzZXF1ZW5jZXMgdG8g YmUgZXhjbHVkZWQgZnJvbSB0aGUKcHVibGljYXRpb24uCgpJZiB0aGUgRVhDRVBUIGNsYXVzZSBp cyBzcGVjaWZpZWQsIHRoZSBleGlzdGluZyBleGNsdXNpb24gbGlzdCBmb3IgdGhlCnB1YmxpY2F0 aW9uIGlzIHJlcGxhY2VkIHdpdGggdGhlIHByb3ZpZGVkIHNlcXVlbmNlcy4gSWYgdGhlIEVYQ0VQ VApjbGF1c2UgaXMgb21pdHRlZCwgYW55IGV4aXN0aW5nIGV4Y2x1c2lvbnMgZm9yIHNlcXVlbmNl cyBhcmUgY2xlYXJlZC4KCkV4YW1wbGU6CgogIEFMVEVSIFBVQkxJQ0FUSU9OIHB1YjEgU0VUIEFM TCBTRVFVRU5DRVM7CgpUaGlzIGNsZWFycyBhbnkgZXhpc3Rpbmcgc2VxdWVuY2UgZXhjbHVzaW9u cyBmb3IgdGhlIHB1YmxpY2F0aW9uLgoKICBBTFRFUiBQVUJMSUNBVElPTiBwdWIxIFNFVCBBTEwg U0VRVUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0UgczEsIHMyKTsKClRoaXMgc2V0cyB0aGUgZXhjbHVz aW9uIGxpc3QgdG8gdGhlIHNwZWNpZmllZCBzZXF1ZW5jZXMuCi0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sICAgfCAgNTEgKysrLQogc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5jICAgICAgfCAgMzYgKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYyAgICB8IDI2OCArKysrKysrKysrKystLS0tLS0tLS0tCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICB8ICAxNCArKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgfCAgIDYgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IHwgIDM1ICsrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHVibGljYXRpb24uc3FsICAgICAgfCAgMTMgKysKIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz N19leGNlcHQucGwgICAgIHwgIDE0ICsrCiA4IGZpbGVzIGNoYW5nZWQsIDI4NSBpbnNlcnRpb25z KCspLCAxNTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sCmluZGV4IDUyMTE0YTE2YTM5Li5kODJmZjMwNzlkYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMzYsNyArMzYsNyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBU TyA8cgogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0 aW9uX2FsbF9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKICAgICBB TEwgVEFCTEVTIFsgRVhDRVBUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2Vw dF90YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KLSAgICBBTEwgU0VRVUVO Q0VTCisgICAgQUxMIFNFUVVFTkNFUyBbIEVYQ0VQVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5leGNlcHRfc2VxdWVuY2Vfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBd CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlv bl9kcm9wX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAtNTQs NiArNTQsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKIDxwaHJhc2U+YW5kIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3Bo cmFzZT4KIAogICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQorCis8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhjZXB0X3NlcXVlbmNlX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwv cGhyYXNlPgorCisgICAgU0VRVUVOQ0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNl cXVlbmNlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC03Myw5ICs3Nyw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAK ICAgPHBhcmE+CiAgICBUaGUgdGhpcmQgdmFyaWFudCBlaXRoZXIgbW9kaWZpZXMgdGhlIGluY2x1 ZGVkIHRhYmxlcy9zY2hlbWFzCi0gICBvciBtYXJrcyB0aGUgcHVibGljYXRpb24gYXMgPGxpdGVy YWw+Rk9SIEFMTCBTRVFVRU5DRVM8L2xpdGVyYWw+IG9yCi0gICA8bGl0ZXJhbD5GT1IgQUxMIFRB QkxFUzwvbGl0ZXJhbD4sIG9wdGlvbmFsbHkgdXNpbmcKLSAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0 ZXJhbD4gdG8gZXhjbHVkZSBzcGVjaWZpYyB0YWJsZXMuIFRoZQorICAgb3IgbWFya3MgdGhlIHB1 YmxpY2F0aW9uIGFzIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBvcgorICAgPGxp dGVyYWw+Rk9SIEFMTCBTRVFVRU5DRVM8L2xpdGVyYWw+LCBvcHRpb25hbGx5IHVzaW5nCisgICA8 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IHRvIGV4Y2x1ZGUgc3BlY2lmaWMgdGFibGVzIG9yIHNl cXVlbmNlcy4gVGhlCiAgICA8bGl0ZXJhbD5TRVQgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gY2xhdXNl IGNhbiB0cmFuc2Zvcm0gYW4gZW1wdHkgcHVibGljYXRpb24sCiAgICBvciBvbmUgZGVmaW5lZCBm b3IgPGxpdGVyYWw+QUxMIFNFUVVFTkNFUzwvbGl0ZXJhbD4gKG9yIGJvdGgKICAgIDxsaXRlcmFs PkFMTCBUQUJMRVM8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5BTEwgU0VRVUVOQ0VTPC9saXRlcmFs PiksIGludG8KQEAgLTg2LDExICs5MCwxNSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICAg cHVibGljYXRpb24gZGVmaW5lZCBmb3IgPGxpdGVyYWw+QUxMIFNFUVVFTkNFUzwvbGl0ZXJhbD4u IEluIGFkZGl0aW9uLAogICAgPGxpdGVyYWw+U0VUIEFMTCBUQUJMRVM8L2xpdGVyYWw+IGNhbiBi ZSB1c2VkIHRvIHVwZGF0ZSB0aGUgdGFibGVzIHNwZWNpZmllZAogICAgaW4gdGhlIDxsaXRlcmFs PkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIG9mIGEKLSAgIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVT PC9saXRlcmFsPiBwdWJsaWNhdGlvbi4gSWYgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPgotICAg aXMgc3BlY2lmaWVkIHdpdGggYSBsaXN0IG9mIHRhYmxlcywgdGhlIGV4aXN0aW5nIGV4Y2x1c2lv biBsaXN0IGlzIHJlcGxhY2VkCi0gICB3aXRoIHRoZSBzcGVjaWZpZWQgdGFibGVzLiBJZiA8bGl0 ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGlzIG9taXR0ZWQsIHRoZQotICAgZXhpc3RpbmcgZXhjbHVz aW9uIGxpc3QgaXMgY2xlYXJlZC4gVGhlIDxsaXRlcmFsPlNFVDwvbGl0ZXJhbD4gY2xhdXNlLCB3 aGVuCi0gICB1c2VkIHdpdGggYSBwdWJsaWNhdGlvbiBkZWZpbmVkIHdpdGggPGxpdGVyYWw+Rk9S IFRBQkxFPC9saXRlcmFsPiBvcgorICAgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+ IHB1YmxpY2F0aW9uIGFuZAorICAgPGxpdGVyYWw+U0VUIEFMTCBTRVFVRU5DRVM8L2xpdGVyYWw+ IGNhbiBiZSB1c2VkIHRvIHVwZGF0ZSB0aGUgc2VxdWVuY2VzCisgICBzcGVjaWZpZWQgaW4gdGhl IDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIG9mIGEKKyAgIDxsaXRlcmFsPkZPUiBB TEwgU0VRVUVOQ0VTPC9saXRlcmFsPiBwdWJsaWNhdGlvbi4gSWYKKyAgIDxsaXRlcmFsPkVYQ0VQ VDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIHdpdGggYSBsaXN0IG9mIHRhYmxlcyBvciBzZXF1ZW5j ZXMsCisgICB0aGUgZXhpc3RpbmcgZXhjbHVzaW9uIGxpc3QgaXMgcmVwbGFjZWQgd2l0aCB0aGUg c3BlY2lmaWVkIHRhYmxlcyBvcgorICAgc2VxdWVuY2VzLiBJZiA8bGl0ZXJhbD5FWENFUFQ8L2xp dGVyYWw+IGlzIG9taXR0ZWQsIHRoZSBleGlzdGluZyBleGNsdXNpb24KKyAgIGxpc3QgaXMgY2xl YXJlZC4gVGhlIDxsaXRlcmFsPlNFVDwvbGl0ZXJhbD4gY2xhdXNlLCB3aGVuIHVzZWQgd2l0aCBh CisgICBwdWJsaWNhdGlvbiBkZWZpbmVkIHdpdGggPGxpdGVyYWw+Rk9SIFRBQkxFPC9saXRlcmFs PiBvcgogICAgPGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCByZXBsYWNl cyB0aGUgbGlzdCBvZiB0YWJsZXMvc2NoZW1hcwogICAgaW4gdGhlIHB1YmxpY2F0aW9uIHdpdGgg dGhlIHNwZWNpZmllZCBsaXN0OyB0aGUgZXhpc3RpbmcgdGFibGVzIG9yIHNjaGVtYXMKICAgIHRo YXQgd2VyZSBwcmVzZW50IGluIHRoZSBwdWJsaWNhdGlvbiB3aWxsIGJlIHJlbW92ZWQuCkBAIC0y NzMsMTAgKzI4MSwzMSBAQCBBTFRFUiBQVUJMSUNBVElPTiBteXB1YmxpY2F0aW9uIFNFVCBBTEwg VEFCTEVTIEVYQ0VQVCAoVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzKQogPC9wcm9ncmFtbGlzdGlu Zz48L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBSZXNldCB0aGUgcHVibGljYXRpb24gdG8gYmUgYSA8 bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4gcHVibGljYXRpb24KLSAgIHdpdGggbm8g ZXhjbHVkZWQgdGFibGVzOgorICAgUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHRvIGJlIDxsaXRlcmFs PkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiB3aXRoIG5vCisgICBleGNsdXNpb25zOgogPHByb2dy YW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBTRVQgQUxMIFRBQkxF UzsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgUmVzZXQgdGhlIHB1 YmxpY2F0aW9uIHRvIGJlIDxsaXRlcmFsPkFMTCBTRVFVRU5DRVM8L2xpdGVyYWw+IHdpdGggbm8K KyAgIGV4Y2x1c2lvbnM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBteXB1 YmxpY2F0aW9uIFNFVCBBTEwgU0VRVUVOQ0VTOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisK KyAgPHBhcmE+CisgICBSZXBsYWNlIHRoZSBzZXF1ZW5jZSBsaXN0IGluIHRoZSBwdWJsaWNhdGlv bidzIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4KKyAgIGNsYXVzZToKKzxwcm9ncmFtbGlzdGlu Zz4KK0FMVEVSIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gU0VUIEFMTCBTRVFVRU5DRVMgRVhD RVBUIChTRVFVRU5DRSBzZXExLCBzZXEyKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisg IDxwYXJhPgorICAgUmVwbGFjZSB0aGUgdGFibGUgYW5kIHNlcXVlbmNlIGxpc3QgaW4gdGhlIHB1 YmxpY2F0aW9uJ3MKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlczoKKzxwcm9n cmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gU0VUIEFMTCBUQUJM RVMgRVhDRVBUIChUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMpLCBBTEwgU0VRVUVOQ0VTIEVYQ0VQ VCAoU0VRVUVOQ0Ugc2VxMSwgc2VxMik7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8 cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCA1ZWI0ZGU3NDRkZS4u MzI4NTAwMDJlNTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRp b24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTk1Niw3 ICs5NTYsNyBAQCBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKE9pZCByZWxpZCkKICAq Lwogc3RhdGljIExpc3QgKgogZ2V0X3B1YmxpY2F0aW9uX3JlbGF0aW9ucyhPaWQgcHViaWQsIFB1 YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKLQkJCQkJCSAgYm9vbCBleGNlcHRfZmxhZykK KwkJCQkJCSAgYm9vbCBleGNlcHRfZmxhZywgY2hhciBwdWJyZWxraW5kKQogewogCUxpc3QJICAg KnJlc3VsdDsKIAlSZWxhdGlvbglwdWJyZWxzcmVsOwpAQCAtOTY0LDYgKzk2NCw4IEBAIGdldF9w dWJsaWNhdGlvbl9yZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3Bh cnRvcHQsCiAJU3lzU2NhbkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJdHVwOwogCisJQXNzZXJ0KHB1 YnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fCBwdWJyZWxraW5kID09IFJFTEtJTkRfU0VR VUVOQ0UpOworCiAJLyogRmluZCBhbGwgcmVsYXRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVi bGljYXRpb24uICovCiAJcHVicmVsc3JlbCA9IHRhYmxlX29wZW4oUHVibGljYXRpb25SZWxSZWxh dGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOwogCkBAIC05ODMsOCArOTg1LDE1IEBAIGdldF9wdWJs aWNhdGlvbl9yZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRv cHQsCiAJCXB1YnJlbCA9IChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCk7 CiAKIAkJaWYgKGV4Y2VwdF9mbGFnID09IHB1YnJlbC0+cHJleGNlcHQpCi0JCQlyZXN1bHQgPSBH ZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMocmVzdWx0LCBwdWJfcGFydG9wdCwKLQkJCQkJ CQkJCQkJCQlwdWJyZWwtPnBycmVsaWQpOworCQl7CisJCQljaGFyCQlyZWxraW5kID0gZ2V0X3Jl bF9yZWxraW5kKHB1YnJlbC0+cHJyZWxpZCk7CisKKwkJCWlmICgocHVicmVsa2luZCA9PSBSRUxL SU5EX1JFTEFUSU9OICYmCisJCQkJIChyZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwgcmVs a2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKSkgfHwKKwkJCQkocHVicmVsa2luZCA9 PSBSRUxLSU5EX1NFUVVFTkNFICYmIHJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkpCisJCQkJ cmVzdWx0ID0gR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKHJlc3VsdCwgcHViX3BhcnRv cHQsCisJCQkJCQkJCQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CisJCX0KIAl9CiAKIAlzeXN0YWJs ZV9lbmRzY2FuKHNjYW4pOwpAQCAtMTAwMCwxNSArMTAwOSwxNiBAQCBnZXRfcHVibGljYXRpb25f cmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogLyoK ICAqIEdldHMgbGlzdCBvZiByZWxhdGlvbiBvaWRzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBh IHB1YmxpY2F0aW9uLgogICoKLSAqIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBGT1IgVEFCTEUg cHVibGljYXRpb25zLCB0aGUgRk9SIEFMTCBUQUJMRVMvU0VRVUVOQ0VTCi0gKiBzaG91bGQgdXNl IEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKCkuCisgKiBUaGlzIGlzIG1haW5seSB1c2VkIGZv ciBGT1IgVEFCTEUgcHVibGljYXRpb25zIGFuZCBtdXN0IG5vdCBiZSBjYWxsZWQgZm9yCisgKiBB TEwgVEFCTEVTIHB1YmxpY2F0aW9ucy4gRm9yIEFMTCBTRVFVRU5DRVMgcHVibGljYXRpb25zLCB0 aGUgcmVzdWx0IGlzIGFuCisgKiBlbXB0eSBsaXN0LgogICovCiBMaXN0ICoKIEdldEluY2x1ZGVk UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3Bh cnRvcHQpCiB7CiAJQXNzZXJ0KCFHZXRQdWJsaWNhdGlvbihwdWJpZCktPmFsbHRhYmxlcyk7CiAK LQlyZXR1cm4gZ2V0X3B1YmxpY2F0aW9uX3JlbGF0aW9ucyhwdWJpZCwgcHViX3BhcnRvcHQsIGZh bHNlKTsKKwlyZXR1cm4gZ2V0X3B1YmxpY2F0aW9uX3JlbGF0aW9ucyhwdWJpZCwgcHViX3BhcnRv cHQsIGZhbHNlLCBSRUxLSU5EX1JFTEFUSU9OKTsKIH0KIAogLyoKQEAgLTEwMTYsNyArMTAyNiw4 IEBAIEdldEluY2x1ZGVkUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlv blBhcnRPcHQgcHViX3BhcnRvcHQpCiAgKiAnRk9SIEFMTCBUQUJMRVMnIG9yIGEgJ0ZPUiBBTEwg U0VRVUVOQ0VTJyBwdWJsaWNhdGlvbi4KICAqLwogTGlzdCAqCi1HZXRFeGNsdWRlZFB1YmxpY2F0 aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQor R2V0RXhjbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFy dE9wdCBwdWJfcGFydG9wdCwKKwkJCQkJCQkJY2hhciBwdWJyZWxraW5kKQogewogI2lmZGVmIFVT RV9BU1NFUlRfQ0hFQ0tJTkcKIAlQdWJsaWNhdGlvbiAqcHViID0gR2V0UHVibGljYXRpb24ocHVi aWQpOwpAQCAtMTAyNCw3ICsxMDM1LDcgQEAgR2V0RXhjbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9u cyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIAlBc3NlcnQocHVi LT5hbGx0YWJsZXMgfHwgcHViLT5hbGxzZXF1ZW5jZXMpOwogI2VuZGlmCiAKLQlyZXR1cm4gZ2V0 X3B1YmxpY2F0aW9uX3JlbGF0aW9ucyhwdWJpZCwgcHViX3BhcnRvcHQsIHRydWUpOworCXJldHVy biBnZXRfcHVibGljYXRpb25fcmVsYXRpb25zKHB1YmlkLCBwdWJfcGFydG9wdCwgdHJ1ZSwgcHVi cmVsa2luZCk7CiB9CiAKIC8qCkBAIC0xMDc4LDcgKzEwODksNyBAQCBHZXRBbGxUYWJsZXNQdWJs aWNhdGlvbnModm9pZCkKICAqIGl0IGV4Y2x1ZGVzIHNlcXVlbmNlcyBzcGVjaWZpZWQgaW4gdGhl IEVYQ0VQVCBjbGF1c2UuCiAgKi8KIExpc3QgKgotR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMo T2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFB1YmxpY2F0 aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciBwdWJyZWxraW5kLCBib29sIHB1YnZpYXJvb3Qp CiB7CiAJUmVsYXRpb24JY2xhc3NSZWw7CiAJU2NhbktleURhdGEga2V5WzFdOwpAQCAtMTA4Nywx OCArMTA5OCwxOSBAQCBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGNoYXIg cmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKIAlMaXN0 CSAgICpleGNlcHRsaXN0ID0gTklMOwogCi0JQXNzZXJ0KCEocmVsa2luZCA9PSBSRUxLSU5EX1NF UVVFTkNFICYmIHB1YnZpYXJvb3QpKTsKKwlBc3NlcnQoIShwdWJyZWxraW5kID09IFJFTEtJTkRf U0VRVUVOQ0UgJiYgcHVidmlhcm9vdCkpOwogCiAJZXhjZXB0bGlzdCA9IEdldEV4Y2x1ZGVkUHVi bGljYXRpb25SZWxhdGlvbnMocHViaWQsIHB1YnZpYXJvb3QgPwogCQkJCQkJCQkJCQkJIFBVQkxJ Q0FUSU9OX1BBUlRfUk9PVCA6Ci0JCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsK KwkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYsCisJCQkJCQkJCQkJCQkgcHVicmVs a2luZCk7CiAKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25SZWxhdGlvbklkLCBBY2Nl c3NTaGFyZUxvY2spOwogCiAJU2NhbktleUluaXQoJmtleVswXSwKIAkJCQlBbnVtX3BnX2NsYXNz X3JlbGtpbmQsCiAJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX0NIQVJFUSwKLQkJCQlDaGFy R2V0RGF0dW0ocmVsa2luZCkpOworCQkJCUNoYXJHZXREYXR1bShwdWJyZWxraW5kKSk7CiAKIAlz Y2FuID0gdGFibGVfYmVnaW5zY2FuX2NhdGFsb2coY2xhc3NSZWwsIDEsIGtleSk7CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggYmQxNzFmOWU0OGUuLjk1MTYwYzhk ODQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtNjYsNyArNjYs NyBAQCBzdGF0aWMgdm9pZCBDbG9zZVJlbGF0aW9uTGlzdChMaXN0ICpyZWxzKTsKIHN0YXRpYyB2 b2lkIExvY2tTY2hlbWFMaXN0KExpc3QgKnNjaGVtYWxpc3QpOwogc3RhdGljIHZvaWQgUHVibGlj YXRpb25BZGRSZWxhdGlvbnMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIGlmX25vdF9leGlz dHMsCiAJCQkJCQkJCQlBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgY2hhciBwdWJyZWxraW5k KTsKLXN0YXRpYyB2b2lkIFB1YmxpY2F0aW9uRHJvcFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJl bHMsIGJvb2wgbWlzc2luZ19vayk7CitzdGF0aWMgdm9pZCBQdWJsaWNhdGlvbkRyb3BSZWxhdGlv bnMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIG1pc3Npbmdfb2spOwogc3RhdGljIHZvaWQg UHVibGljYXRpb25BZGRTY2hlbWFzKE9pZCBwdWJpZCwgTGlzdCAqc2NoZW1hcywgYm9vbCBpZl9u b3RfZXhpc3RzLAogCQkJCQkJCQkgIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KTsKIHN0YXRp YyB2b2lkIFB1YmxpY2F0aW9uRHJvcFNjaGVtYXMoT2lkIHB1YmlkLCBMaXN0ICpzY2hlbWFzLCBi b29sIG1pc3Npbmdfb2spOwpAQCAtMTI1MywyNiArMTI1MywxMzEgQEAgSW52YWxpZGF0ZVB1Ymxp Y2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiB9CiAKIC8qCi0gKiBBZGQgb3IgcmVtb3ZlIHRhYmxl IHRvL2Zyb20gcHVibGljYXRpb24uCisgKiBSZXR1cm4gdGhlIGxpc3Qgb2YgdGFibGVzL3NlcXVl bmNlcyB0byBiZSByZW1vdmVkIGZyb20gYSBwdWJsaWNhdGlvbiBkdXJpbmcKKyAqIEFMVEVSIFBV QkxJQ0FUSU9OIC4uLiBTRVQuCisgKgorICogJ3JlbHMnIGNvbnRhaW5zIHRoZSByZWxhdGlvbnMg c3BlY2lmaWVkIGJ5IHRoZSBTRVQgY29tbWFuZCwgYW5kICdvbGRyZWxpZHMnCisgKiBjb250YWlu cyB0aGUgZXhpc3RpbmcgcmVsYXRpb25zIGluIHRoZSBwdWJsaWNhdGlvbi4gVGhlIGZ1bmN0aW9u IHJldHVybnMgdGhlCisgKiBleGlzdGluZyByZWxhdGlvbnMgdGhhdCBhcmUgbm90IHByZXNlbnQg aW4gJ3JlbHMnIGFuZCB0aGVyZWZvcmUgbmVlZCB0byBiZQorICogcmVtb3ZlZC4KKyAqLworc3Rh dGljIExpc3QgKgorZ2V0X2RlbGV0ZV9yZWxzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgTGlzdCAq b2xkcmVsaWRzKQoreworCUxpc3QJICAgKmRlbHJlbHMgPSBOSUw7CisKKwlmb3JlYWNoX29pZChv bGRyZWxpZCwgb2xkcmVsaWRzKQorCXsKKwkJTGlzdENlbGwgICAqbmV3bGM7CisJCVB1YmxpY2F0 aW9uUmVsSW5mbyAqb2xkcmVsOworCQlib29sCQlmb3VuZCA9IGZhbHNlOworCQlIZWFwVHVwbGUJ cmZ0dXBsZTsKKwkJTm9kZQkgICAqb2xkcmVsd2hlcmVjbGF1c2UgPSBOVUxMOworCQlCaXRtYXBz ZXQgICpvbGRjb2x1bW5zID0gTlVMTDsKKworCQkvKiBMb29rIHVwIHRoZSBjYWNoZSBmb3IgdGhl IG9sZCByZWxtYXAgKi8KKwkJcmZ0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJF TE1BUCwKKwkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKG9sZHJlbGlkKSwKKwkJCQkJCQkJICBP YmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisKKwkJLyoKKwkJICogU2VlIGlmIHRoZSBleGlzdGlu ZyByZWxhdGlvbiBjdXJyZW50bHkgaGFzIGEgV0hFUkUgY2xhdXNlIG9yIGEKKwkJICogY29sdW1u IGxpc3QuIFdlIG5lZWQgdG8gY29tcGFyZSB0aG9zZSB0b28uCisJCSAqLworCQlpZiAoSGVhcFR1 cGxlSXNWYWxpZChyZnR1cGxlKSkKKwkJeworCQkJYm9vbAkJaXNudWxsID0gdHJ1ZTsKKwkJCURh dHVtCQl3aGVyZUNsYXVzZURhdHVtOworCQkJRGF0dW0JCWNvbHVtbkxpc3REYXR1bTsKKworCQkJ LyogTG9hZCB0aGUgV0hFUkUgY2xhdXNlIGZvciB0aGlzIHRhYmxlLiAqLworCQkJd2hlcmVDbGF1 c2VEYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKKwkJ CQkJCQkJCQkJICAgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJxdWFsLAorCQkJCQkJCQkJCQkg ICAmaXNudWxsKTsKKwkJCWlmICghaXNudWxsKQorCQkJCW9sZHJlbHdoZXJlY2xhdXNlID0gc3Ry aW5nVG9Ob2RlKFRleHREYXR1bUdldENTdHJpbmcod2hlcmVDbGF1c2VEYXR1bSkpOworCisJCQkv KiBUcmFuc2Zvcm0gdGhlIGludDJ2ZWN0b3IgY29sdW1uIGxpc3QgdG8gYSBiaXRtYXAuICovCisJ CQljb2x1bW5MaXN0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJm dHVwbGUsCisJCQkJCQkJCQkJCSAgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJhdHRycywKKwkJ CQkJCQkJCQkJICAmaXNudWxsKTsKKworCQkJaWYgKCFpc251bGwpCisJCQkJb2xkY29sdW1ucyA9 IHB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCBjb2x1bW5MaXN0RGF0dW0sIE5VTEwpOwor CisJCQlSZWxlYXNlU3lzQ2FjaGUocmZ0dXBsZSk7CisJCX0KKworCQkvKgorCQkgKiBDaGVjayBp ZiBhbnkgb2YgdGhlIG5ldyBzZXQgb2YgcmVsYXRpb25zIG1hdGNoZXMgd2l0aCB0aGUgZXhpc3Rp bmcKKwkJICogcmVsYXRpb25zIGluIHRoZSBwdWJsaWNhdGlvbi4gQWRkaXRpb25hbGx5LCBpZiB0 aGUgcmVsYXRpb24gaGFzIGFuCisJCSAqIGFzc29jaWF0ZWQgV0hFUkUgY2xhdXNlLCBjaGVjayB0 aGUgV0hFUkUgZXhwcmVzc2lvbnMgYWxzbyBtYXRjaC4KKwkJICogU2FtZSBmb3IgdGhlIGNvbHVt biBsaXN0LiBEcm9wIHRoZSByZXN0LgorCQkgKi8KKwkJZm9yZWFjaChuZXdsYywgcmVscykKKwkJ eworCQkJUHVibGljYXRpb25SZWxJbmZvICpuZXdwdWJyZWw7CisJCQlPaWQJCQluZXdyZWxpZDsK KwkJCUJpdG1hcHNldCAgKm5ld2NvbHVtbnMgPSBOVUxMOworCisJCQluZXdwdWJyZWwgPSAoUHVi bGljYXRpb25SZWxJbmZvICopIGxmaXJzdChuZXdsYyk7CisJCQluZXdyZWxpZCA9IFJlbGF0aW9u R2V0UmVsaWQobmV3cHVicmVsLT5yZWxhdGlvbik7CisKKwkJCS8qCisJCQkgKiBWYWxpZGF0ZSB0 aGUgY29sdW1uIGxpc3QuICBJZiB0aGUgY29sdW1uIGxpc3Qgb3IgV0hFUkUgY2xhdXNlCisJCQkg KiBjaGFuZ2VzLCB0aGVuIHRoZSB2YWxpZGF0aW9uIGRvbmUgaGVyZSB3aWxsIGJlIGR1cGxpY2F0 ZWQKKwkJCSAqIGluc2lkZSBQdWJsaWNhdGlvbkFkZFJlbGF0aW9ucygpLiAgVGhlIHZhbGlkYXRp b24gaXMgY2hlYXAKKwkJCSAqIGVub3VnaCB0aGF0IHRoYXQgc2VlbXMgaGFybWxlc3MuCisJCQkg Ki8KKwkJCW5ld2NvbHVtbnMgPSBwdWJfY29sbGlzdF92YWxpZGF0ZShuZXdwdWJyZWwtPnJlbGF0 aW9uLAorCQkJCQkJCQkJCQkgIG5ld3B1YnJlbC0+Y29sdW1ucyk7CisKKwkJCWZvdW5kID0gKG5l d3JlbGlkID09IG9sZHJlbGlkKSAmJgorCQkJCWVxdWFsKG9sZHJlbHdoZXJlY2xhdXNlLCBuZXdw dWJyZWwtPndoZXJlQ2xhdXNlKSAmJgorCQkJCWJtc19lcXVhbChvbGRjb2x1bW5zLCBuZXdjb2x1 bW5zKTsKKworCQkJaWYgKGZvdW5kKQorCQkJCWJyZWFrOworCQl9CisKKwkJLyoKKwkJICogQWRk IG5vbi1tYXRjaGluZyByZWxhdGlvbnMgdG8gdGhlIGRyb3AgbGlzdC4gVGhlIHJlbGF0aW9uIHdp bGwgYmUKKwkJICogZHJvcHBlZCBpcnJlc3BlY3RpdmUgb2YgdGhlIGNvbHVtbiBsaXN0IGFuZCBX SEVSRSBjbGF1c2UuCisJCSAqLworCQlpZiAoIWZvdW5kKQorCQl7CisJCQlvbGRyZWwgPSBwYWxs b2MwX29iamVjdChQdWJsaWNhdGlvblJlbEluZm8pOworCQkJb2xkcmVsLT5yZWxhdGlvbiA9IHRh YmxlX29wZW4ob2xkcmVsaWQsCisJCQkJCQkJCQkJICBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2sp OworCQkJZGVscmVscyA9IGxhcHBlbmQoZGVscmVscywgb2xkcmVsKTsKKwkJfQorCX0KKworCXJl dHVybiBkZWxyZWxzOworfQorCisvKgorICogQWRkIG9yIHJlbW92ZSB0YWJsZSBvciBzZXF1ZW5j ZSB0by9mcm9tIHB1YmxpY2F0aW9uLgogICovCiBzdGF0aWMgdm9pZAotQWx0ZXJQdWJsaWNhdGlv blRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKLQkJCQkJ ICAgTGlzdCAqdGFibGVzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKLQkJCQkJICAgYm9vbCBw dWJsaXNoX3NjaGVtYSkKK0FsdGVyUHVibGljYXRpb25SZWxhdGlvbnMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCisJCQkJCQkgIExpc3QgKnRhYmxlcywgTGlzdCAq c2VxdWVuY2VzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKKwkJCQkJCSAgYm9vbCBwdWJsaXNo X3NjaGVtYSkKIHsKIAlMaXN0CSAgICpyZWxzID0gTklMOworCUxpc3QJICAgKnNlcXMgPSBOSUw7 CiAJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdF VFNUUlVDVCh0dXApOwogCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOwogCiAJLyoKLQkgKiBO b3RoaW5nIHRvIGRvIGlmIG5vIG9iamVjdHMsIGV4Y2VwdCBpbiBTRVQ6IGZvciB0aGF0IGl0IGlz IHF1aXRlCi0JICogcG9zc2libGUgdGhhdCB1c2VyIGhhcyBub3Qgc3BlY2lmaWVkIGFueSB0YWJs ZXMgaW4gd2hpY2ggY2FzZSB3ZSBuZWVkCi0JICogdG8gcmVtb3ZlIGFsbCB0aGUgZXhpc3Rpbmcg dGFibGVzLgorCSAqIE5vdGhpbmcgdG8gZG8gaWYgbm8gb2JqZWN0cyB3ZXJlIHNwZWNpZmllZCwg dW5sZXNzIHRoaXMgaXMgYSBTRVQKKwkgKiBjb21tYW5kLCB3aGljaCBtYXkgbmVlZCB0byByZW1v dmUgYWxsIGV4aXN0aW5nIHRhYmxlcyBhbmQgc2VxdWVuY2VzLgogCSAqLwotCWlmICghdGFibGVz ICYmIHN0bXQtPmFjdGlvbiAhPSBBUF9TZXRPYmplY3RzKQorCWlmICghdGFibGVzICYmICFzZXF1 ZW5jZXMgJiYgc3RtdC0+YWN0aW9uICE9IEFQX1NldE9iamVjdHMpCiAJCXJldHVybjsKIAogCXJl bHMgPSBPcGVuUmVsYXRpb25MaXN0KHRhYmxlcyk7CisJc2VxcyA9IE9wZW5SZWxhdGlvbkxpc3Qo c2VxdWVuY2VzKTsKIAogCWlmIChzdG10LT5hY3Rpb24gPT0gQVBfQWRkT2JqZWN0cykKIAl7CkBA IC0xMjg2LDI5ICsxMzkxLDMzIEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNh dGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCVB1YmxpY2F0aW9uQWRkUmVsYXRpb25z KHB1YmlkLCByZWxzLCBmYWxzZSwgc3RtdCwgUkVMS0lORF9SRUxBVElPTik7CiAJfQogCWVsc2Ug aWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9Ecm9wT2JqZWN0cykKLQkJUHVibGljYXRpb25Ecm9wVGFi bGVzKHB1YmlkLCByZWxzLCBmYWxzZSk7CisJCVB1YmxpY2F0aW9uRHJvcFJlbGF0aW9ucyhwdWJp ZCwgcmVscywgZmFsc2UpOwogCWVsc2UJCQkJCQkvKiBBUF9TZXRPYmplY3RzICovCiAJewogCQlM aXN0CSAgICpvbGRyZWxpZHMgPSBOSUw7CisJCUxpc3QJICAgKm9sZHNlcWlkcyA9IE5JTDsKIAkJ TGlzdAkgICAqZGVscmVscyA9IE5JTDsKLQkJTGlzdENlbGwgICAqb2xkbGM7CiAKIAkJaWYgKHN0 bXQtPmZvcl9hbGxfdGFibGVzIHx8IHN0bXQtPmZvcl9hbGxfc2VxdWVuY2VzKQogCQl7CiAJCQkv KgotCQkJICogSW4gRk9SIEFMTCBUQUJMRVMgbW9kZSwgcmVsYXRpb25zIGFyZSB0cmFja2VkIGFz IGV4Y2x1c2lvbnMKLQkJCSAqIChFWENFUFQgY2xhdXNlKS4gRmV0Y2ggdGhlIGN1cnJlbnQgZXhj bHVkZWQgcmVsYXRpb25zIHNvIHRoZXkKLQkJCSAqIGNhbiBiZSByZWNvbmNpbGVkIHdpdGggdGhl IHNwZWNpZmllZCBFWENFUFQgbGlzdC4KKwkJCSAqIEluIEZPUiBBTEwgVEFCTEVTLyBGT1IgQUxM IFNFUVVFTkNFUyBtb2RlLCByZWxhdGlvbnMgYXJlCisJCQkgKiB0cmFja2VkIGFzIGV4Y2x1c2lv bnMgKEVYQ0VQVCBjbGF1c2UpLiBGZXRjaCB0aGUgY3VycmVudAorCQkJICogZXhjbHVkZWQgcmVs YXRpb25zIHNvIHRoZXkgY2FuIGJlIHJlY29uY2lsZWQgd2l0aCB0aGUgc3BlY2lmaWVkCisJCQkg KiBFWENFUFQgbGlzdC4KIAkJCSAqCiAJCQkgKiBUaGlzIGFwcGxpZXMgb25seSBpZiB0aGUgZXhp c3RpbmcgcHVibGljYXRpb24gaXMgYWxyZWFkeQotCQkJICogZGVmaW5lZCBhcyBGT1IgQUxMIFRB QkxFUzsgb3RoZXJ3aXNlLCB0aGVyZSBhcmUgbm8gZXhjbHVzaW9uCi0JCQkgKiBlbnRyaWVzIHRv IHByb2Nlc3MuCisJCQkgKiBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTLyBGT1IgQUxMIFNFUVVF TkNFUzsgb3RoZXJ3aXNlLCB0aGVyZQorCQkJICogYXJlIG5vIGV4Y2x1c2lvbiBlbnRyaWVzIHRv IHByb2Nlc3MuCiAJCQkgKi8KIAkJCWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCi0JCQl7CiAJ CQkJb2xkcmVsaWRzID0gR2V0RXhjbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwKLQkJ CQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7Ci0JCQl9CisJCQkJCQkJCQkJCQkJ CQlQVUJMSUNBVElPTl9QQVJUX1JPT1QsCisJCQkJCQkJCQkJCQkJCQlSRUxLSU5EX1JFTEFUSU9O KTsKKwkJCWlmIChwdWJmb3JtLT5wdWJhbGxzZXF1ZW5jZXMpCisJCQkJb2xkc2VxaWRzID0gR2V0 RXhjbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkJCVBVQkxJ Q0FUSU9OX1BBUlRfUk9PVCwKKwkJCQkJCQkJCQkJCQkJCVJFTEtJTkRfU0VRVUVOQ0UpOwogCQl9 CiAJCWVsc2UKIAkJewpAQCAtMTMyMSwxMTggKzE0MzAsMjUgQEAgQWx0ZXJQdWJsaWNhdGlvblRh YmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQkJCQkJ CSAgIHB1YmZvcm0tPnB1YnZpYXJvb3QpOwogCQl9CiAKLQkJLyoKLQkJICogVG8gcmVjcmVhdGUg dGhlIHJlbGF0aW9uIGxpc3QgZm9yIHRoZSBwdWJsaWNhdGlvbiwgbG9vayBmb3IKLQkJICogZXhp c3RpbmcgcmVsYXRpb25zIHRoYXQgZG8gbm90IG5lZWQgdG8gYmUgZHJvcHBlZC4KLQkJICovCi0J CWZvcmVhY2gob2xkbGMsIG9sZHJlbGlkcykKLQkJewotCQkJT2lkCQkJb2xkcmVsaWQgPSBsZmly c3Rfb2lkKG9sZGxjKTsKLQkJCUxpc3RDZWxsICAgKm5ld2xjOwotCQkJUHVibGljYXRpb25SZWxJ bmZvICpvbGRyZWw7Ci0JCQlib29sCQlmb3VuZCA9IGZhbHNlOwotCQkJSGVhcFR1cGxlCXJmdHVw bGU7Ci0JCQlOb2RlCSAgICpvbGRyZWx3aGVyZWNsYXVzZSA9IE5VTEw7Ci0JCQlCaXRtYXBzZXQg ICpvbGRjb2x1bW5zID0gTlVMTDsKLQotCQkJLyogbG9vayB1cCB0aGUgY2FjaGUgZm9yIHRoZSBv bGQgcmVsbWFwICovCi0JCQlyZnR1cGxlID0gU2VhcmNoU3lzQ2FjaGUyKFBVQkxJQ0FUSU9OUkVM TUFQLAotCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKG9sZHJlbGlkKSwKLQkJCQkJCQkJCSAg T2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOwotCi0JCQkvKgotCQkJICogU2VlIGlmIHRoZSBleGlz dGluZyByZWxhdGlvbiBjdXJyZW50bHkgaGFzIGEgV0hFUkUgY2xhdXNlIG9yIGEKLQkJCSAqIGNv bHVtbiBsaXN0LiBXZSBuZWVkIHRvIGNvbXBhcmUgdGhvc2UgdG9vLgotCQkJICovCi0JCQlpZiAo SGVhcFR1cGxlSXNWYWxpZChyZnR1cGxlKSkKLQkJCXsKLQkJCQlib29sCQlpc251bGwgPSB0cnVl OwotCQkJCURhdHVtCQl3aGVyZUNsYXVzZURhdHVtOwotCQkJCURhdHVtCQljb2x1bW5MaXN0RGF0 dW07Ci0KLQkJCQkvKiBMb2FkIHRoZSBXSEVSRSBjbGF1c2UgZm9yIHRoaXMgdGFibGUuICovCi0J CQkJd2hlcmVDbGF1c2VEYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwg cmZ0dXBsZSwKLQkJCQkJCQkJCQkJCSAgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwK LQkJCQkJCQkJCQkJCSAgICZpc251bGwpOwotCQkJCWlmICghaXNudWxsKQotCQkJCQlvbGRyZWx3 aGVyZWNsYXVzZSA9IHN0cmluZ1RvTm9kZShUZXh0RGF0dW1HZXRDU3RyaW5nKHdoZXJlQ2xhdXNl RGF0dW0pKTsKLQotCQkJCS8qIFRyYW5zZm9ybSB0aGUgaW50MnZlY3RvciBjb2x1bW4gbGlzdCB0 byBhIGJpdG1hcC4gKi8KLQkJCQljb2x1bW5MaXN0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVC TElDQVRJT05SRUxNQVAsIHJmdHVwbGUsCi0JCQkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRp b25fcmVsX3ByYXR0cnMsCi0JCQkJCQkJCQkJCQkgICZpc251bGwpOwotCi0JCQkJaWYgKCFpc251 bGwpCi0JCQkJCW9sZGNvbHVtbnMgPSBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoTlVMTCwgY29s dW1uTGlzdERhdHVtLCBOVUxMKTsKLQotCQkJCVJlbGVhc2VTeXNDYWNoZShyZnR1cGxlKTsKLQkJ CX0KLQotCQkJZm9yZWFjaChuZXdsYywgcmVscykKLQkJCXsKLQkJCQlQdWJsaWNhdGlvblJlbElu Zm8gKm5ld3B1YnJlbDsKLQkJCQlPaWQJCQluZXdyZWxpZDsKLQkJCQlCaXRtYXBzZXQgICpuZXdj b2x1bW5zID0gTlVMTDsKLQotCQkJCW5ld3B1YnJlbCA9IChQdWJsaWNhdGlvblJlbEluZm8gKikg bGZpcnN0KG5ld2xjKTsKLQkJCQluZXdyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQobmV3cHVicmVs LT5yZWxhdGlvbik7Ci0KLQkJCQkvKgotCQkJCSAqIFZhbGlkYXRlIHRoZSBjb2x1bW4gbGlzdC4g IElmIHRoZSBjb2x1bW4gbGlzdCBvciBXSEVSRQotCQkJCSAqIGNsYXVzZSBjaGFuZ2VzLCB0aGVu IHRoZSB2YWxpZGF0aW9uIGRvbmUgaGVyZSB3aWxsIGJlCi0JCQkJICogZHVwbGljYXRlZCBpbnNp ZGUgUHVibGljYXRpb25BZGRSZWxhdGlvbnMoKS4gIFRoZQotCQkJCSAqIHZhbGlkYXRpb24gaXMg Y2hlYXAgZW5vdWdoIHRoYXQgdGhhdCBzZWVtcyBoYXJtbGVzcy4KLQkJCQkgKi8KLQkJCQluZXdj b2x1bW5zID0gcHViX2NvbGxpc3RfdmFsaWRhdGUobmV3cHVicmVsLT5yZWxhdGlvbiwKLQkJCQkJ CQkJCQkJCSAgbmV3cHVicmVsLT5jb2x1bW5zKTsKLQotCQkJCS8qCi0JCQkJICogQ2hlY2sgaWYg YW55IG9mIHRoZSBuZXcgc2V0IG9mIHJlbGF0aW9ucyBtYXRjaGVzIHdpdGggdGhlCi0JCQkJICog ZXhpc3RpbmcgcmVsYXRpb25zIGluIHRoZSBwdWJsaWNhdGlvbi4gQWRkaXRpb25hbGx5LCBpZiB0 aGUKLQkJCQkgKiByZWxhdGlvbiBoYXMgYW4gYXNzb2NpYXRlZCBXSEVSRSBjbGF1c2UsIGNoZWNr IHRoZSBXSEVSRQotCQkJCSAqIGV4cHJlc3Npb25zIGFsc28gbWF0Y2guIFNhbWUgZm9yIHRoZSBj b2x1bW4gbGlzdC4gRHJvcCB0aGUKLQkJCQkgKiByZXN0LgotCQkJCSAqLwotCQkJCWlmIChuZXdy ZWxpZCA9PSBvbGRyZWxpZCkKLQkJCQl7Ci0JCQkJCWlmIChlcXVhbChvbGRyZWx3aGVyZWNsYXVz ZSwgbmV3cHVicmVsLT53aGVyZUNsYXVzZSkgJiYKLQkJCQkJCWJtc19lcXVhbChvbGRjb2x1bW5z LCBuZXdjb2x1bW5zKSkKLQkJCQkJewotCQkJCQkJZm91bmQgPSB0cnVlOwotCQkJCQkJYnJlYWs7 Ci0JCQkJCX0KLQkJCQl9Ci0JCQl9Ci0KLQkJCS8qCi0JCQkgKiBBZGQgdGhlIG5vbi1tYXRjaGVk IHJlbGF0aW9ucyB0byBhIGxpc3Qgc28gdGhhdCB0aGV5IGNhbiBiZQotCQkJICogZHJvcHBlZC4K LQkJCSAqLwotCQkJaWYgKCFmb3VuZCkKLQkJCXsKLQkJCQlvbGRyZWwgPSBwYWxsb2Nfb2JqZWN0 KFB1YmxpY2F0aW9uUmVsSW5mbyk7Ci0JCQkJb2xkcmVsLT53aGVyZUNsYXVzZSA9IE5VTEw7Ci0J CQkJb2xkcmVsLT5jb2x1bW5zID0gTklMOwotCQkJCW9sZHJlbC0+ZXhjZXB0ID0gZmFsc2U7Ci0J CQkJb2xkcmVsLT5yZWxhdGlvbiA9IHRhYmxlX29wZW4ob2xkcmVsaWQsCi0JCQkJCQkJCQkJCSAg U2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsKLQkJCQlkZWxyZWxzID0gbGFwcGVuZChkZWxyZWxz LCBvbGRyZWwpOwotCQkJfQotCQl9CisJCS8qIEdldCB0YWJsZXMgYW5kIHNlcXVlbmNlcyB0byBi ZSBkcm9wcGVkICovCisJCWRlbHJlbHMgPSBnZXRfZGVsZXRlX3JlbHMocHViaWQsIHJlbHMsIG9s ZHJlbGlkcyk7CisJCWRlbHJlbHMgPSBsaXN0X2NvbmNhdChkZWxyZWxzLCBnZXRfZGVsZXRlX3Jl bHMocHViaWQsIHNlcXMsIG9sZHNlcWlkcykpOwogCiAJCS8qIEFuZCBkcm9wIHRoZW0uICovCi0J CVB1YmxpY2F0aW9uRHJvcFRhYmxlcyhwdWJpZCwgZGVscmVscywgdHJ1ZSk7CisJCVB1YmxpY2F0 aW9uRHJvcFJlbGF0aW9ucyhwdWJpZCwgZGVscmVscywgdHJ1ZSk7CiAKIAkJLyoKIAkJICogRG9u J3QgYm90aGVyIGNhbGN1bGF0aW5nIHRoZSBkaWZmZXJlbmNlIGZvciBhZGRpbmcsIHdlJ2xsIGNh dGNoIGFuZAogCQkgKiBza2lwIGV4aXN0aW5nIG9uZXMgd2hlbiBkb2luZyBjYXRhbG9nIHVwZGF0 ZS4KIAkJICovCiAJCVB1YmxpY2F0aW9uQWRkUmVsYXRpb25zKHB1YmlkLCByZWxzLCB0cnVlLCBz dG10LCBSRUxLSU5EX1JFTEFUSU9OKTsKKwkJUHVibGljYXRpb25BZGRSZWxhdGlvbnMocHViaWQs IHNlcXMsIHRydWUsIHN0bXQsIFJFTEtJTkRfU0VRVUVOQ0UpOwogCiAJCUNsb3NlUmVsYXRpb25M aXN0KGRlbHJlbHMpOwogCX0KIAogCUNsb3NlUmVsYXRpb25MaXN0KHJlbHMpOworCUNsb3NlUmVs YXRpb25MaXN0KHNlcXMpOwogfQogCiAvKgpAQCAtMTcwOCwxMSArMTcyNCw5IEBAIEFsdGVyUHVi bGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkK IAkJT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAm cmVsYXRpb25zLAogCQkJCQkJCQkgICAmZXhjZXB0dGJscywgJmV4Y2VwdHNlcXMsICZzY2hlbWFp ZGxpc3QpOwogCi0JCS8qCi0JCSAqIFRPRE86IEVYQ0VQVCAoU0VRVUVOQ0UgLi4uKSBpcyBub3Qg eWV0IHN1cHBvcnRlZCB3aXRoIEFMVEVSCi0JCSAqIFBVQkxJQ0FUSU9OLgotCQkgKi8KLQkJQXNz ZXJ0KGV4Y2VwdHNlcXMgPT0gTklMKTsKKwkJLyogRVhDRVBUIGNsYXVzZSBpcyBvbmx5IHN1cHBv cnRlZCBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFNFVCAqLworCQlBc3NlcnQoKGV4Y2VwdHRi bHMgPT0gTklMICYmIGV4Y2VwdHNlcXMgPT0gTklMKSB8fAorCQkJICAgc3RtdC0+YWN0aW9uID09 IEFQX1NldE9iamVjdHMpOwogCiAJCUNoZWNrQWx0ZXJQdWJsaWNhdGlvbihzdG10LCB0dXAsIHJl bGF0aW9ucywgc2NoZW1haWRsaXN0KTsKIApAQCAtMTczNiw4ICsxNzUwLDggQEAgQWx0ZXJQdWJs aWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQog CQkJCQkJICAgc3RtdC0+cHVibmFtZSkpOwogCiAJCXJlbGF0aW9ucyA9IGxpc3RfY29uY2F0KHJl bGF0aW9ucywgZXhjZXB0dGJscyk7Ci0JCUFsdGVyUHVibGljYXRpb25UYWJsZXMoc3RtdCwgdHVw LCByZWxhdGlvbnMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJCQkJCSAgIHNjaGVtYWlkbGlz dCAhPSBOSUwpOworCQlBbHRlclB1YmxpY2F0aW9uUmVsYXRpb25zKHN0bXQsIHR1cCwgcmVsYXRp b25zLCBleGNlcHRzZXFzLAorCQkJCQkJCQkgIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LCBzY2hlbWFp ZGxpc3QgIT0gTklMKTsKIAkJQWx0ZXJQdWJsaWNhdGlvblNjaGVtYXMoc3RtdCwgdHVwLCBzY2hl bWFpZGxpc3QpOwogCQlBbHRlclB1YmxpY2F0aW9uQWxsRmxhZ3Moc3RtdCwgcmVsLCB0dXApOwog CX0KQEAgLTIwOTIsMTAgKzIxMDYsMTAgQEAgUHVibGljYXRpb25BZGRSZWxhdGlvbnMoT2lkIHB1 YmlkLCBMaXN0ICpyZWxzLCBib29sIGlmX25vdF9leGlzdHMsCiB9CiAKIC8qCi0gKiBSZW1vdmUg bGlzdGVkIHRhYmxlcyBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KKyAqIFJlbW92ZSBsaXN0ZWQgcmVs YXRpb25zIGZyb20gdGhlIHB1YmxpY2F0aW9uLgogICovCiBzdGF0aWMgdm9pZAotUHVibGljYXRp b25Ecm9wVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBtaXNzaW5nX29rKQorUHVi bGljYXRpb25Ecm9wUmVsYXRpb25zKE9pZCBwdWJpZCwgTGlzdCAqcmVscywgYm9vbCBtaXNzaW5n X29rKQogewogCU9iamVjdEFkZHJlc3Mgb2JqOwogCUxpc3RDZWxsICAgKmxjOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCmluZGV4IDVkMmMyM2IyZDlkLi43MTk0ZmE1M2RlMSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYwpAQCAtMjM1MSw2ICsyMzUxLDIwIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9v Zl90YWJsZXMpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJTRVQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAiKCIsICJUQUJMRSIsIE1h dGNoQW55TikgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQogCQlDT01QTEVURV9XSVRIKCIp Iik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwg IlNFVCIsICJBTEwiLCAiU0VRVUVOQ0VTIiwgIkVYQ0VQVCIsICIoIikpCisJCUNPTVBMRVRFX1dJ VEgoIlNFUVVFTkNFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIlNFVCIsICJBTEwiLCAiU0VRVUVOQ0VTIikpCisJCUNPTVBMRVRFX1dJVEgo IkVYQ0VQVCAoIFNFUVVFTkNFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJBTEwiLCAiU0VRVUVOQ0VTIiwgIkVYQ0VQVCIpKQor CQlDT01QTEVURV9XSVRIKCIoIFNFUVVFTkNFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJBTEwiLCAiU0VRVUVOQ0VTIiwgIkVY Q0VQVCIsICIoIikpCisJCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIik7CisJZWxzZSBpZiAoTWF0 Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJBTEwiLCAiU0VR VUVOQ0VTIiwgIkVYQ0VQVCIsICIoIiwgIlNFUVVFTkNFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NI RU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3NlcXVlbmNlcyk7CisJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJBTEwiLCAiU0VRVUVO Q0VTIiwgIkVYQ0VQVCIsICIoIiwgIlNFUVVFTkNFIiwgTWF0Y2hBbnlOKSAmJiBlbmRzX3dpdGgo cHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2Zfc2VxdWVuY2VzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiU0VUIiwgIkFMTCIsICJTRVFVRU5DRVMiLCAiRVhDRVBUIiwgIigiLCAi U0VRVUVOQ0UiLCBNYXRjaEFueU4pICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09N UExFVEVfV0lUSCgiKSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJBRER8RFJPUHxTRVQiLCAiVEFCTEVTIiwgIklOIiwgIlNDSEVNQSIpKQog CQlDT01QTEVURV9XSVRIX1FVRVJZX1BMVVMoUXVlcnlfZm9yX2xpc3Rfb2Zfc2NoZW1hcwogCQkJ CQkJCQkgIiBBTkQgbnNwbmFtZSBOT1QgTElLRSBFJ3BnXFxcXF8lJSciLApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5oCmluZGV4IDQ5YzI5YTg3NjMwLi4yMWExNTI3YmNjNyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApAQCAtMTc4LDkgKzE3OCwxMSBAQCB0eXBlZGVm IGVudW0gUHVibGljYXRpb25QYXJ0T3B0CiBleHRlcm4gTGlzdCAqR2V0SW5jbHVkZWRQdWJsaWNh dGlvblJlbGF0aW9ucyhPaWQgcHViaWQsCiAJCQkJCQkJCQkJCSBQdWJsaWNhdGlvblBhcnRPcHQg cHViX3BhcnRvcHQpOwogZXh0ZXJuIExpc3QgKkdldEV4Y2x1ZGVkUHVibGljYXRpb25SZWxhdGlv bnMoT2lkIHB1YmlkLAotCQkJCQkJCQkJCQkgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0 KTsKKwkJCQkJCQkJCQkJIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKKwkJCQkJCQkJ CQkJIGNoYXIgcHVicmVsa2luZCk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRp b25zKHZvaWQpOwotZXh0ZXJuIExpc3QgKkdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBw dWJpZCwgY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpOworZXh0ZXJuIExpc3QgKkdldEFs bFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciBwdWJyZWxraW5kLAorCQkJCQkJ CQkJCWJvb2wgcHVidmlhcm9vdCk7CiBleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25TY2hlbWFz KE9pZCBwdWJpZCk7CiBleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVibGljYXRpb25zKE9pZCBzY2hl bWFpZCk7CiBleHRlcm4gTGlzdCAqR2V0U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNj aGVtYWlkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlv bi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCA2 NDQyYjg3ZDAzOC4uNGEwMjQ4OGJmZmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVi bGljYXRpb24ub3V0CkBAIC01NzcsNiArNTc3LDI1IEBAIEV4Y2VwdCBzZXF1ZW5jZXM6CiAgICAg InB1Yl90ZXN0LnJlZ3Jlc3Nfc2VxMiIKICAgICAicHVibGljLnJlZ3Jlc3Nfc2VxMCIKIAorLS0g TW9kaWZ5IHRoZSBzZXF1ZW5jZSBsaXN0IGluIHRoZSBFWENFUFQgY2xhdXNlCitBTFRFUiBQVUJM SUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0IFNFVCBBTEwgU0VRVUVO Q0VTIEVYQ0VQVCAoU0VRVUVOQ0UgcmVncmVzc19zZXEwKTsKK1xkUnArIHJlZ3Jlc3NfcHViX2Zv cmFsbHNlcXVlbmNlc19leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHJlZ3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNlc19leGNl cHQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNl cyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBj b2x1bW5zIHwgVmlhIHJvb3QgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAg ICAgICAgICAgIHwgZiAgICAgICAgfCAKK0V4Y2VwdCBzZXF1ZW5jZXM6CisgICAgInB1YmxpYy5y ZWdyZXNzX3NlcTAiCisKKy0tIENsZWFyIHRoZSBzZXF1ZW5jZSBsaXN0IGluIHRoZSBFWENFUFQg Y2xhdXNlCitBTFRFUiBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhj ZXB0IFNFVCBBTEwgU0VRVUVOQ0VTOworXGRScCsgcmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2Vz X2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UHVibGljYXRpb24gcmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2VzX2V4Y2VwdAorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBm ICAgICAgICB8IAorKDEgcm93KQorCiAtLSBUZXN0IGNvbWJpbmF0aW9uIG9mIEFMTCBTRVFVRU5D RVMgYW5kIEFMTCBUQUJMRVMgd2l0aCBFWENFUFQgY2xhdXNlCiBDUkVBVEUgVEFCTEUgcmVncmVz c190YWIxKGEgaW50KTsKIENSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JfYWxsc2Vx dWVuY2VzX2FsbHRhYmxlc19leGNlcHQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSByZWdy ZXNzX3RhYjEpLCBBTEwgU0VRVUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0UgcmVncmVzc19zZXEwKTsK QEAgLTU5NiwyNCArNjE1LDQwIEBAIENSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9zaG91 bGRfZmFpbCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHJlZ3Jlc3Nfc2VxMCwKIEVSUk9SOiAgc3lu dGF4IGVycm9yIGF0IG9yIG5lYXIgInJlZ3Jlc3Nfc2VxMCIKIExJTkUgMTogLi4uT04gcmVncmVz c19wdWJfc2hvdWxkX2ZhaWwgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChyZWdyZXNzX3NlLi4uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorQUxURVIgUFVCTElDQVRJT04gcmVncmVzc19wdWJfZm9yYWxsc2VxdWVuY2VzX2V4Y2Vw dCBTRVQgQUxMIFNFUVVFTkNFUyBFWENFUFQgKHJlZ3Jlc3Nfc2VxMCwgcHViX3Rlc3QucmVncmVz c19zZXExKTsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgInJlZ3Jlc3Nfc2VxMCIK K0xJTkUgMTogLi4uX2ZvcmFsbHNlcXVlbmNlc19leGNlcHQgU0VUIEFMTCBTRVFVRU5DRVMgRVhD RVBUIChyZWdyZXNzX3NlLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gZmFpbCAtIHVubG9nZ2VkIHNlcXVlbmNlIGlz IHNwZWNpZmllZCBpbiBFWENFUFQgc2VxdWVuY2UgbGlzdAogQ1JFQVRFIFVOTE9HR0VEIFNFUVVF TkNFIHJlZ3Jlc3Nfc2VxX3VubG9nZ2VkOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHVi X3Nob3VsZF9mYWlsIEZPUiBBTEwgU0VRVUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0UgcmVncmVzc19z ZXFfdW5sb2dnZWQpOwogRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSAicHVibGljLnJlZ3Jlc3Nfc2Vx X3VubG9nZ2VkIiBpbiB0aGUgcHVibGljYXRpb24gRVhDRVBUIChTRVFVRU5DRSkgY2xhdXNlCiBE RVRBSUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB1bmxvZ2dlZCBzZXF1 ZW5jZXMuCitBTFRFUiBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhj ZXB0IFNFVCBBTEwgU0VRVUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0UgcmVncmVzc19zZXFfdW5sb2dn ZWQpOworRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSAicHVibGljLnJlZ3Jlc3Nfc2VxX3VubG9nZ2Vk IiBpbiB0aGUgcHVibGljYXRpb24gRVhDRVBUIChTRVFVRU5DRSkgY2xhdXNlCitERVRBSUw6ICBU aGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB1bmxvZ2dlZCBzZXF1ZW5jZXMuCiAt LSBmYWlsIC0gdGVtcG9yYXJ5IHNlcXVlbmNlIGlzIHNwZWNpZmllZCBpbiBFWENFUFQgc2VxdWVu Y2UgbGlzdAogQ1JFQVRFIFRFTVBPUkFSWSBTRVFVRU5DRSByZWdyZXNzX3NlcV90ZW1wOwogQ1JF QVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX3Nob3VsZF9mYWlsIEZPUiBBTEwgU0VRVUVOQ0VT IEVYQ0VQVCAoU0VRVUVOQ0UgcmVncmVzc19zZXFfdGVtcCk7CiBFUlJPUjogIGNhbm5vdCBzcGVj aWZ5ICJwZ190ZW1wLnJlZ3Jlc3Nfc2VxX3RlbXAiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQg KFNFUVVFTkNFKSBjbGF1c2UKIERFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQgZm9yIHRlbXBvcmFyeSBzZXF1ZW5jZXMuCitBTFRFUiBQVUJMSUNBVElPTiByZWdyZXNzX3B1 Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0IFNFVCBBTEwgU0VRVUVOQ0VTIEVYQ0VQVCAoU0VRVUVO Q0UgcmVncmVzc19zZXFfdGVtcCk7CitFUlJPUjogIGNhbm5vdCBzcGVjaWZ5ICJwZ190ZW1wLnJl Z3Jlc3Nfc2VxX3RlbXAiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgKFNFUVVFTkNFKSBjbGF1 c2UKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRlbXBvcmFy eSBzZXF1ZW5jZXMuCiAtLSBmYWlsIC0gc2VxdWVuY2Ugb2JqZWN0IGlzIHNwZWNpZmllZCBpbiBF WENFUFQgdGFibGUgbGlzdAogQ1JFQVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX3Nob3VsZF9m YWlsIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgcmVncmVzc19zZXEwKTsKIEVSUk9SOiAg Y2Fubm90IHNwZWNpZnkgInB1YmxpYy5yZWdyZXNzX3NlcTAiIGluIHRoZSBwdWJsaWNhdGlvbiBF WENFUFQgKFRBQkxFKSBjbGF1c2UKIERFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgZm9yIHNlcXVlbmNlcy4KK0FMVEVSIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2ZvcmFs bHNlcXVlbmNlc19leGNlcHQgU0VUIEFMTCBUQUJMRVMgRVhDRVBUIChUQUJMRSByZWdyZXNzX3Nl cTApOworRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSAicHVibGljLnJlZ3Jlc3Nfc2VxMCIgaW4gdGhl IHB1YmxpY2F0aW9uIEVYQ0VQVCAoVEFCTEUpIGNsYXVzZQorREVUQUlMOiAgVGhpcyBvcGVyYXRp b24gaXMgbm90IHN1cHBvcnRlZCBmb3Igc2VxdWVuY2VzLgogLS0gZmFpbCAtIHRhYmxlIG9iamVj dCBpcyBzcGVjaWZpZWQgaW4gRVhDRVBUIHNlcXVlbmNlIGxpc3QKIENSRUFURSBQVUJMSUNBVElP TiByZWdyZXNzX3B1Yl9zaG91bGRfZmFpbCBGT1IgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVF TkNFIHJlZ3Jlc3NfdGFiMSk7CiBFUlJPUjogIGNhbm5vdCBzcGVjaWZ5ICJwdWJsaWMucmVncmVz c190YWIxIiBpbiB0aGUgcHVibGljYXRpb24gRVhDRVBUIChTRVFVRU5DRSkgY2xhdXNlCiBERVRB SUw6ICBUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB0YWJsZXMuCitBTFRFUiBQ VUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0IFNFVCBBTEwgU0VR VUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0UgcmVncmVzc190YWIxKTsKK0VSUk9SOiAgY2Fubm90IHNw ZWNpZnkgInB1YmxpYy5yZWdyZXNzX3RhYjEiIGluIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgKFNF UVVFTkNFKSBjbGF1c2UKK0RFVEFJTDogIFRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg Zm9yIHRhYmxlcy4KIERST1AgU0VRVUVOQ0UgcmVncmVzc19zZXEwLCBwdWJfdGVzdC5yZWdyZXNz X3NlcTEsIHB1Yl90ZXN0LnJlZ3Jlc3Nfc2VxMiwgcmVncmVzc19zZXFfdW5sb2dnZWQsIHJlZ3Jl c3Nfc2VxX3RlbXA7CiBEUk9QIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNl czE7CiBEUk9QIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNlczI7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggMTFjMjBlNjUxNDMuLjkyZWNmYzgzYWEy IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0yNjksNiArMjY5LDE0IEBA IENSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0IEZP UiBBTEwgU0VRVUVOQ0VTIEVYQ0VQVCAoCiBBTFRFUiBTRVFVRU5DRSByZWdyZXNzX3NlcTIgU0VU IFNDSEVNQSBwdWJfdGVzdDsKIFxkUnArIHJlZ3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNlc19leGNl cHQKIAorLS0gTW9kaWZ5IHRoZSBzZXF1ZW5jZSBsaXN0IGluIHRoZSBFWENFUFQgY2xhdXNlCitB TFRFUiBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0IFNFVCBB TEwgU0VRVUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0UgcmVncmVzc19zZXEwKTsKK1xkUnArIHJlZ3Jl c3NfcHViX2ZvcmFsbHNlcXVlbmNlc19leGNlcHQKKworLS0gQ2xlYXIgdGhlIHNlcXVlbmNlIGxp c3QgaW4gdGhlIEVYQ0VQVCBjbGF1c2UKK0FMVEVSIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2Zv cmFsbHNlcXVlbmNlc19leGNlcHQgU0VUIEFMTCBTRVFVRU5DRVM7CitcZFJwKyByZWdyZXNzX3B1 Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0CisKIC0tIFRlc3QgY29tYmluYXRpb24gb2YgQUxMIFNF UVVFTkNFUyBhbmQgQUxMIFRBQkxFUyB3aXRoIEVYQ0VQVCBjbGF1c2UKIENSRUFURSBUQUJMRSBy ZWdyZXNzX3RhYjEoYSBpbnQpOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2Zvcl9h bGxzZXF1ZW5jZXNfYWxsdGFibGVzX2V4Y2VwdCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkxF IHJlZ3Jlc3NfdGFiMSksIEFMTCBTRVFVRU5DRVMgRVhDRVBUIChTRVFVRU5DRSByZWdyZXNzX3Nl cTApOwpAQCAtMjc3LDIwICsyODUsMjUgQEAgUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIAog LS0gZmFpbCAtIGZpcnN0IHNlcXVlbmNlIGluIHRoZSBFWENFUFQgbGlzdCBzaG91bGQgdXNlIFNF UVVFTkNFIGtleXdvcmQKIENSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9zaG91bGRfZmFp bCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHJlZ3Jlc3Nfc2VxMCwgcHViX3Rlc3QucmVncmVzc19z ZXExKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNlc19leGNl cHQgU0VUIEFMTCBTRVFVRU5DRVMgRVhDRVBUIChyZWdyZXNzX3NlcTAsIHB1Yl90ZXN0LnJlZ3Jl c3Nfc2VxMSk7CiAKIC0tIGZhaWwgLSB1bmxvZ2dlZCBzZXF1ZW5jZSBpcyBzcGVjaWZpZWQgaW4g RVhDRVBUIHNlcXVlbmNlIGxpc3QKIENSRUFURSBVTkxPR0dFRCBTRVFVRU5DRSByZWdyZXNzX3Nl cV91bmxvZ2dlZDsKIENSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9zaG91bGRfZmFpbCBG T1IgQUxMIFNFUVVFTkNFUyBFWENFUFQgKFNFUVVFTkNFIHJlZ3Jlc3Nfc2VxX3VubG9nZ2VkKTsK K0FMVEVSIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNlc19leGNlcHQgU0VU IEFMTCBTRVFVRU5DRVMgRVhDRVBUIChTRVFVRU5DRSByZWdyZXNzX3NlcV91bmxvZ2dlZCk7CiAK IC0tIGZhaWwgLSB0ZW1wb3Jhcnkgc2VxdWVuY2UgaXMgc3BlY2lmaWVkIGluIEVYQ0VQVCBzZXF1 ZW5jZSBsaXN0CiBDUkVBVEUgVEVNUE9SQVJZIFNFUVVFTkNFIHJlZ3Jlc3Nfc2VxX3RlbXA7CiBD UkVBVEUgUFVCTElDQVRJT04gcmVncmVzc19wdWJfc2hvdWxkX2ZhaWwgRk9SIEFMTCBTRVFVRU5D RVMgRVhDRVBUIChTRVFVRU5DRSByZWdyZXNzX3NlcV90ZW1wKTsKK0FMVEVSIFBVQkxJQ0FUSU9O IHJlZ3Jlc3NfcHViX2ZvcmFsbHNlcXVlbmNlc19leGNlcHQgU0VUIEFMTCBTRVFVRU5DRVMgRVhD RVBUIChTRVFVRU5DRSByZWdyZXNzX3NlcV90ZW1wKTsKIAogLS0gZmFpbCAtIHNlcXVlbmNlIG9i amVjdCBpcyBzcGVjaWZpZWQgaW4gRVhDRVBUIHRhYmxlIGxpc3QKIENSRUFURSBQVUJMSUNBVElP TiByZWdyZXNzX3B1Yl9zaG91bGRfZmFpbCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKFRBQkxFIHJl Z3Jlc3Nfc2VxMCk7CitBTFRFUiBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5j ZXNfZXhjZXB0IFNFVCBBTEwgVEFCTEVTIEVYQ0VQVCAoVEFCTEUgcmVncmVzc19zZXEwKTsKIAog LS0gZmFpbCAtIHRhYmxlIG9iamVjdCBpcyBzcGVjaWZpZWQgaW4gRVhDRVBUIHNlcXVlbmNlIGxp c3QKIENSRUFURSBQVUJMSUNBVElPTiByZWdyZXNzX3B1Yl9zaG91bGRfZmFpbCBGT1IgQUxMIFNF UVVFTkNFUyBFWENFUFQgKFNFUVVFTkNFIHJlZ3Jlc3NfdGFiMSk7CitBTFRFUiBQVUJMSUNBVElP TiByZWdyZXNzX3B1Yl9mb3JhbGxzZXF1ZW5jZXNfZXhjZXB0IFNFVCBBTEwgU0VRVUVOQ0VTIEVY Q0VQVCAoU0VRVUVOQ0UgcmVncmVzc190YWIxKTsKIAogRFJPUCBTRVFVRU5DRSByZWdyZXNzX3Nl cTAsIHB1Yl90ZXN0LnJlZ3Jlc3Nfc2VxMSwgcHViX3Rlc3QucmVncmVzc19zZXEyLCByZWdyZXNz X3NlcV91bmxvZ2dlZCwgcmVncmVzc19zZXFfdGVtcDsKIERST1AgUFVCTElDQVRJT04gcmVncmVz c19wdWJfZm9yYWxsc2VxdWVuY2VzMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzN19leGNlcHQucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfZXhjZXB0LnBs CmluZGV4IGMzNWVmOTQwM2VlLi5kMzE2NmIyMTNmNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM3X2V4Y2VwdC5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MzdfZXhjZXB0LnBsCkBAIC0yODksNiArMjg5LDcgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoCiAJJ3Bvc3RncmVzJywgcXEgKAogCUNSRUFURSBUQUJMRSBzZXFfdGVzdCAodiBCSUdJTlQp OwogCUNSRUFURSBTRVFVRU5DRSBzZXFfZXhjbHVkZWRfaW5fcHViMTsKKwlDUkVBVEUgU0VRVUVO Q0Ugc2VxX2V4Y2x1ZGVkX2luX3B1YjFfMjsKIAlDUkVBVEUgU0VRVUVOQ0Ugc2VxX2V4Y2x1ZGVk X2luX3B1YjI7CiAJSU5TRVJUIElOVE8gc2VxX3Rlc3QgU0VMRUNUIG5leHR2YWwoJ3NlcV9leGNs dWRlZF9pbl9wdWIxJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApOwogCUlOU0VSVCBJTlRP IHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdzZXFfZXhjbHVkZWRfaW5fcHViMicpIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMTAwKTsKQEAgLTI5Nyw2ICsyOTgsNyBAQCAkbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBx cSgKIAlDUkVBVEUgU0VRVUVOQ0Ugc2VxX2V4Y2x1ZGVkX2luX3B1YjE7CisJQ1JFQVRFIFNFUVVF TkNFIHNlcV9leGNsdWRlZF9pbl9wdWIxXzI7CiAJQ1JFQVRFIFNFUVVFTkNFIHNlcV9leGNsdWRl ZF9pbl9wdWIyOwogCUNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9hbGxfc2VxX2V4Y2VwdCBD T05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfYWxsX3Nl cV9leGNlcHQxOwogKSk7CkBAIC0zMTYsNiArMzE4LDE4IEBAICRyZXN1bHQgPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUIGxhc3RfdmFsdWUsIGlzX2Nh bGxlZCBGUk9NIHNlcV9leGNsdWRlZF9pbl9wdWIyIik7CiBpcygkcmVzdWx0LCAnMTAwfHQnLCAn aW5pdGlhbCB0ZXN0IGRhdGEgcmVwbGljYXRlZCBmb3Igc2VxX2V4Y2x1ZGVkX2luX3B1YjInKTsK IAorIyBDaGVjayBBTFRFUiBQVUJMSUNBVElPTiAuLi4gQUxMIFNFUVVFTkNFUyAoRVhDRVBUIFNF UVVFTkNFIC4uLikKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFx KAorCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfYWxsX3NlcV9leGNlcHQxIFNFVCBBTEwgU0VR VUVOQ0VTIEVYQ0VQVCAoU0VRVUVOQ0Ugc2VxX2V4Y2x1ZGVkX2luX3B1YjEsIHNlcV9leGNsdWRl ZF9pbl9wdWIxXzIpOworCUlOU0VSVCBJTlRPIHNlcV90ZXN0IFNFTEVDVCBuZXh0dmFsKCdzZXFf ZXhjbHVkZWRfaW5fcHViMV8yJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApOykKKyk7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBU SU9OIHRhcF9zdWJfYWxsX3NlcV9leGNlcHQgUkVGUkVTSCBTRVFVRU5DRVMiKTsKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGxhc3Rf dmFsdWUsIGlzX2NhbGxlZCBGUk9NIHNlcV9leGNsdWRlZF9pbl9wdWIxXzIiKTsKK2lzKCRyZXN1 bHQsICcxfGYnLCAnc2VxdWVuY2VzIGluIHRoZSBFWENFUFQgbGlzdCBhcmUgZXhjbHVkZWQnKTsK KwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIyBUZXN0 IHdoZW4gYSBzdWJzY3JpcHRpb24gaXMgc3Vic2NyaWJpbmcgdG8gbXVsdGlwbGUgcHVibGljYXRp b25zCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tIAoy LjM0LjEKCg== --000000000000f8b62506559ad664--