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.94.2) (envelope-from ) id 1v2ETv-001ZIb-8p for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Sep 2025 19:51:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v2ESs-005SB4-P2 for pgsql-hackers@arkaria.postgresql.org; Fri, 26 Sep 2025 19:50:47 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1v2ESr-005SAw-Kq for pgsql-hackers@lists.postgresql.org; Fri, 26 Sep 2025 19:50:47 +0000 Received: from mail-oo1-xc35.google.com ([2607:f8b0:4864:20::c35]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1v2ESp-0005G9-1W for pgsql-hackers@lists.postgresql.org; Fri, 26 Sep 2025 19:50:45 +0000 Received: by mail-oo1-xc35.google.com with SMTP id 006d021491bc7-63136d0958bso727944eaf.3 for ; Fri, 26 Sep 2025 12:50:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1758916243; x=1759521043; 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=Was75qnR4PR94Df/UkH3xyHp8rGD7JdVPn+STHn2EKo=; b=aIekEqviKuCajBKTfzBykB7iRxSA09r3Lql04AEQ7nQxW54GiEIrm90et3t+ubO4Ig 4rF7thGka7RjOjm9Sa7ELywc6G2i9IXG5dneLFeclAqdaRJ1s2G1TG6MUacuSycQlH/7 EiT/G8yLyPZBGz0r8LDRCV1rh0ZsN9+aIIGfP12rArUM2fYwFizTY8P4ePI19e6HxQYJ 7jN5ul3rBYxp9/4HFG7WB88c+1NWmd39ddYXJsIq8awtf3LoUORlBNaV1/oxG49PT8BN c3kyiI9ve4GBgjxUb3AgS/OF5WhpogGouV46mmtiTIV/yeDsw5OlIsQrGef3u9rpgQf8 w0+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1758916243; x=1759521043; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Was75qnR4PR94Df/UkH3xyHp8rGD7JdVPn+STHn2EKo=; b=Qzp8wYCpn7iYufrxd8EOARlUFmxyZZkVxsmoZxRzX0sLwAWFeo3nhTFA9cMWqerdAn GZfPn5YaxLC3AHllmeusBx0YNjx0YcGCuxpV4nkAvVTn+tD/9RSGIf8jbptuzA0ku+3C xVDhjDLnODlaQ2uclG+ZXgAaL9m04iOnAmqIeBhpkhJaM1FYHhQ6kRqUDC9jFhW8vEK8 UcJBYn7IEnCvu/2OGWvUQfmuWcabohBzCZARuO0DsOWhLfDnBWRakiuPYMpQN3yVpVKg Tf0cJ7gAD9x9uJvY6E78eOozgY5fFr1BX4Abevc3tiCiyXN5eWgd2wyrUT5dTcO+UPaI kL7A== X-Forwarded-Encrypted: i=1; AJvYcCXvB1pirv5Rp1BjTcQFdoIlnCVbXKeEVV4JBwLGTjTk17gglKFQoRGUWsaYV4eObjiMdvGoKv2d3su7PR/v@lists.postgresql.org X-Gm-Message-State: AOJu0Yzn1h5QuwJ+Wxxv55NG0HQ+aOJdmAj9GfMQ+6sw+bARHKgQTi63 KZsXuWwbnLop8zERiVKURtat7V/cO7wFF3UX7T1zWb/Gv/wl1M3vFUmT/zdirrU278McVGPlt2R hYWznoC7u/S6qW9v+Rh1n5gm0CBaP5q0= X-Gm-Gg: ASbGncs8We/2un+ENpSQKjflAOhM9xsbBkhqFBgW26wFa01xYb1d3vQTYpt6JdRuYpZ w74Nk7/J4bGH6Y9XNKCKu6iIhQGoIy3rW7rOLqP1pHF2Jkqt32NfRKJ9gewpdOJy3tQn98XSYde A8JeJcwyHSXV8Gnf4zUYAwEBPTpoUgyfkz1FYCjd8NV990CYe2ycWjXmUmMutvuoWLToRGL8uv1 rv4hdCykQ== X-Google-Smtp-Source: AGHT+IEPHRsOySR9FzuV1dsiNYFfk5W5PldUIHtAhDJ3Yq9HSBlkhb6ODKPvgfUU2sq/gpw95JC/kongjOtYj5hsZR8= X-Received: by 2002:a05:6808:14c3:b0:43f:648b:dcb3 with SMTP id 5614622812f47-43f648be0cdmr1332229b6e.21.1758916243489; Fri, 26 Sep 2025 12:50:43 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Sat, 27 Sep 2025 01:20:31 +0530 X-Gm-Features: AS18NWA5JeArfAXHm0yAkfVlevjwy9uShCe0OsTjNYW2EINyA7giSO77M2csncE Message-ID: Subject: Re: Skipping schema changes in publication To: vignesh C Cc: Peter Smith , Amit Kapila , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000e277ee063fb9997f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e277ee063fb9997f Content-Type: text/plain; charset="UTF-8" On Thu, 25 Sept 2025 at 16:39, vignesh C wrote: > > On Fri, 5 Sept 2025 at 11:57, Shlok Kyal wrote: > > > > On Mon, 25 Aug 2025 at 13:38, Shlok Kyal wrote: > > > > > > On Thu, 21 Aug 2025 at 05:33, Peter Smith wrote: > > > > > > > > Hi Shlok, > > > > > > > > I reviewed your latest v20-0003 patch and have no more comments at > > > > this time; I only found one trivial typo. > > > > > > > > ====== > > > > src/bin/psql/describe.c > > > > > > > > 1. > > > > + /* > > > > + * Footers entries for a publication description or a table > > > > + * description > > > > + */ > > > > > > > > Typo. /Footers entries/Footer entries/ > > > > > > > > > > I have fixed it and attached the updated patches > > > > > The patches were not applying on HEAD and needed a Rebase. Here is the > > rebased patches > > Few comments: > 1) Currently from pg_publication_tables it is not clear if it is > replicating column list or replicating exclude column, can we indicate > if it is exclude or not: > create publication pub1 for table t1(c1); > create publication pub2 for table t1 except ( c1); > > postgres=# select * from pg_publication_tables; > pubname | schemaname | tablename | attnames | rowfilter > ---------+------------+-----------+----------+----------- > pub1 | public | t1 | {c1} | > pub2 | public | t1 | {c2} | > (2 rows) > > 2) Tab completion is not correct in this case: > postgres=# alter publication pub3 add table t2 EXCEPT ( > , WHERE ( > > 3) tab6 is not used anywhere, it can be removed: > + CREATE TABLE tab5 (a int, b int, c int); > + CREATE TABLE tab6 (agen int GENERATED ALWAYS AS (1) STORED, > bgen int GENERATED ALWAYS AS (2) STORED); > + INSERT INTO tab1 VALUES (1, 2, 3); > > 4) both these tests are using same message: > + $node_subscriber->safe_psql('postgres', "SELECT * FROM tab1 ORDER BY a"); > +is( $result, qq(|2|3 > +|5|6), > + 'check incremental insert for EXCEPT (column-list) publication'); > +$result = $node_subscriber->safe_psql('postgres', > + "SELECT * FROM sch1.tab1 ORDER BY a"); > +is( $result, qq(1|| > +4||), 'check incremental insert for EXCEPT (column-list) publication'); > > we can include table name here to differentiate the test that will > help in identifying test failure easily > > 5) /newly added column are is replicated/ should be "newly added > column is replicated" > is($result, qq(|||10), 'newly added column are is replicated'); Hi Vignesh, Thanks for reviewing the patch. I have addressed the comments and attached the updated version. Thanks, Shlok Kyal --000000000000e277ee063fb9997f Content-Type: application/octet-stream; name="v24-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v24-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mg19anqf2 RnJvbSBjODg1OTg5ODE3YzJjNTMzMjhiOTkyYWQ1MjIwYzAxYjE0ZWE5YTc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFN1biwgMyBBdWcgMjAyNSAyMTowMToxMiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI0 IDMvM10gU2tpcCBwdWJsaXNoaW5nIHRoZSBjb2x1bW5zIHNwZWNpZmllZCBpbiBGT1IgVEFCTEUK IEVYQ0VQVAoKQSBuZXcgIlRBQkxFIHRhYmxlX25hbWUgRVhDRVBUIChjb2x1bW5fbGlzdCkiIGNs YXVzZSBmb3IgQ1JFQVRFL0FMVEVSClBVQkxJQ0FUSU9OIGFsbG93cyBvbmUgb3IgbW9yZSBjb2x1 bW5zIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVyCndpbGwgbm90IHNlbmQgdGhlIGRhdGEg b2YgZXhjbHVkZWQgY29sdW1ucyB0byB0aGUgc3Vic2NyaWJlci4KClRoZSBuZXcgc3ludGF4IGFs bG93cyBzcGVjaWZ5aW5nIGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IHdoZW4gY3JlYXRpbmcgb3IKYWx0 ZXJpbmcgYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNSRUFURSBQVUJMSUNBVElPTiBwdWJu YW1lIEZPUiBUQUJMRSB0YWJuYW1lIEVYQ0VQVCAoY29sMSwgY29sMiwgY29sMykKb3IKQUxURVIg UFVCTElDQVRJT04gcHVibmFtZSBBREQgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIs IGNvbDMpCgpXaGVuIGNvbHVtbiAicHJleGNlcHQiIG9mIHN5c3RlbSBjYXRhbG9nICJwZ19wdWJs aWNhdGlvbl9yZWwiIGlzIHNldAp0byAidHJ1ZSIsIGFuZCBjb2x1bW4gInByYXR0cnMiIG9mIHN5 c3RlbSBjYXRhbG9nICJwZ19wdWJsaWNhdGlvbl9yZWwiCmlzIG5vdCBOVUxMLCB0aGF0IG1lYW5z IHRoZSBwdWJsaWNhdGlvbiB3YXMgY3JlYXRlZCB3aXRoICJFWENFUFQKKGNvbHVtbi1saXN0KSIs IGFuZCB0aGUgY29sdW1ucyBpbiAicHJhdHRycyIgd2lsbCBiZSBleGNsdWRlZCBmcm9tCmJlaW5n IHB1Ymxpc2hlZC4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0byBpZGVudGlmeSBhbmQgZHVtcCB0aGUg ZXhjbHVkZWQgY29sdW1uIGxpc3Qgb2YgdGhlCnB1YmxpY2F0aW9uLgoKVGhlIHBzcWwgXGQgZmFt aWx5IG9mIGNvbW1hbmRzIGNhbiBub3cgZGlzcGxheSBleGNsdWRlZCBjb2x1bW4gbGlzdC4gZS5n Lgpwc3FsIFxkUnArIHZhcmlhbnQgd2lsbCBub3cgZGlzcGxheSBhc3NvY2lhdGVkICJFWENFUFQg KGNvbHVtbl9saXN0KSIgaWYKYW55LgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbCAgICAgICAgIHwgMTA2ICsrKysrLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbCAgICAgICB8ICAxMCArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVi bGljYXRpb24uc2dtbCAgICAgIHwgIDUyICsrKy0KIGRvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Mu c2dtbCAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmMgICAgICAgICAgfCAgODYgKysrKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3N5c3Rl bV92aWV3cy5zcWwgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jICAgICAgICB8ICA1MiArKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3RhYmxlc3luYy5jICAgfCAgNDEgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9w Z291dHB1dC9wZ291dHB1dC5jICAgfCAgNzAgKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMgICAgICAgICAgICAgICAgICAgICB8ICA0NSArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAyNjIgKysrKysrKysrKystLS0tLS0tCiBzcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgMTMgKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgICAgIHwgICA2ICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8IDEzMCArKysrKysrLS0KIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICAgNSArLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICAgIHwgIDU1ICsrKysKIHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCAgICAgICAgICAgICB8ICAgMSArCiAuLi4vdC8wMzdf cmVwX2NoYW5nZXNfZXhjZXB0X2NvbGxpc3QucGwgICAgICAgfCAxOTMgKysrKysrKysrKysrKwog MjMgZmlsZXMgY2hhbmdlZCwgOTU2IGluc2VydGlvbnMoKyksIDI0NSBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNf ZXhjZXB0X2NvbGxpc3QucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGFlMzg2MTllMjE5Li4xM2E0ZWMz NjM3YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1NzMsNyArNjU3MywxMCBAQCBTQ1JBTS1TSEEtMjU2 JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBs YWNlYWJsZT4mbAogICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0PC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Ym9vbDwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIFRydWUg aWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAgICBUcnVlIGlmIHRoZSBjb2x1 bW4gbGlzdCBvciByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVkIGZyb20gcHVibGljYXRpb24uCisg ICAgICAgSWYgYSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQgaW4gPGxpdGVyYWw+cHJhdHRyczwv bGl0ZXJhbD4sIHRoZW4KKyAgICAgICBleGNsdWRlIG9ubHkgdGhvc2UgY29sdW1ucy4gSWYgPGxp dGVyYWw+cHJhdHRyczwvbGl0ZXJhbD4gaXMgbnVsbCwKKyAgICAgICB0aGVuIGV4Y2x1ZGUgdGhl IGVudGlyZSByZWxhdGlvbi4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCBiL2RvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggMGQxMDZlYjk1YTcuLmJmMGM0 YTVlMTFmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTEzNzIsMTAg KzEzNzIsMTAgQEAgUHVibGljYXRpb25zOgogICA8dGl0bGU+Q29sdW1uIExpc3RzPC90aXRsZT4K IAogICA8cGFyYT4KLSAgIEVhY2ggcHVibGljYXRpb24gY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB3 aGljaCBjb2x1bW5zIG9mIGVhY2ggdGFibGUgYXJlCi0gICByZXBsaWNhdGVkIHRvIHN1YnNjcmli ZXJzLiBUaGUgdGFibGUgb24gdGhlIHN1YnNjcmliZXIgc2lkZSBtdXN0IGhhdmUgYXQKLSAgIGxl YXN0IGFsbCB0aGUgY29sdW1ucyB0aGF0IGFyZSBwdWJsaXNoZWQuIElmIG5vIGNvbHVtbiBsaXN0 IGlzIHNwZWNpZmllZCwKLSAgIHRoZW4gYWxsIGNvbHVtbnMgb24gdGhlIHB1Ymxpc2hlciBhcmUg cmVwbGljYXRlZC4KKyAgIEVhY2ggcHVibGljYXRpb24gY2FuIG9wdGlvbmFsbHkgc3BlY2lmeSB3 aGljaCBjb2x1bW5zIG9mIGVhY2ggdGFibGUgc2hvdWxkIGJlCisgICByZXBsaWNhdGVkIG9yIGV4 Y2x1ZGVkIGZyb20gcmVwbGljYXRpb24uIFRoZSB0YWJsZSBvbiB0aGUgc3Vic2NyaWJlciBzaWRl CisgICBtdXN0IGhhdmUgYXQgbGVhc3QgYWxsIHRoZSBjb2x1bW5zIHRoYXQgYXJlIHB1Ymxpc2hl ZC4gSWYgbm8gY29sdW1uIGxpc3QgaXMKKyAgIHNwZWNpZmllZCwgdGhlbiBhbGwgY29sdW1ucyBv biB0aGUgcHVibGlzaGVyIGFyZSByZXBsaWNhdGVkLgogICAgU2VlIDx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGVwdWJsaWNhdGlvbiIvPiBmb3IgZGV0YWlscyBvbiB0aGUgc3ludGF4LgogICA8L3Bh cmE+CiAKQEAgLTEzODksOCArMTM4OSwxMSBAQCBQdWJsaWNhdGlvbnM6CiAKICAgPHBhcmE+CiAg ICBJZiBubyBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQsIGFueSBjb2x1bW5zIGFkZGVkIHRvIHRo ZSB0YWJsZSBsYXRlciBhcmUKLSAgIGF1dG9tYXRpY2FsbHkgcmVwbGljYXRlZC4gVGhpcyBtZWFu cyB0aGF0IGhhdmluZyBhIGNvbHVtbiBsaXN0IHdoaWNoIG5hbWVzCi0gICBhbGwgY29sdW1ucyBp cyBub3QgdGhlIHNhbWUgYXMgaGF2aW5nIG5vIGNvbHVtbiBsaXN0IGF0IGFsbC4KKyAgIGF1dG9t YXRpY2FsbHkgcmVwbGljYXRlZC4gSG93ZXZlciwgYSBub3JtYWwgY29sdW1uIGxpc3QgKHdpdGhv dXQKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4pIG9ubHkgcmVwbGljYXRlcyB0aGUgc3Bl Y2lmaWVkIGNvbHVtbnMgYW5kIG5vIG1vcmUuCisgICBUaGVyZWZvcmUsIGhhdmluZyBhIGNvbHVt biBsaXN0IHRoYXQgbmFtZXMgYWxsIGNvbHVtbnMgaXMgbm90IHRoZSBzYW1lIGFzCisgICBoYXZp bmcgbm8gY29sdW1uIGxpc3QgYXQgYWxsLCBhcyBtb3JlIGNvbHVtbnMgbWF5IGJlIGFkZGVkIHRv IHRoZSB0YWJsZQorICAgbGF0ZXIuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTE0MDIsNiAr MTQwNSwxNCBAQCBQdWJsaWNhdGlvbnM6CiAgICBHZW5lcmF0ZWQgY29sdW1ucyBjYW4gYWxzbyBi ZSBzcGVjaWZpZWQgaW4gYSBjb2x1bW4gbGlzdC4gVGhpcyBhbGxvd3MKICAgIGdlbmVyYXRlZCBj b2x1bW5zIHRvIGJlIHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUgcHVibGljYXRpb24gcGFy YW1ldGVyCiAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdp dGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4uIFNwZWNpZnlpbmcgZ2VuZXJhdGVkCisgICBj b2x1bW5zIHVzaW5nIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBleGNsdWRl cyB0aG9zZSBjb2x1bW5zCisgICBmcm9tIGJlaW5nIHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0 aGUKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1w dWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVk X2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPiBzZXR0aW5nLiBIb3dldmVyLCBmb3IKKyAgIGdlbmVy YXRlZCBjb2x1bW5zIHRoYXQgYXJlIG5vdCBsaXN0ZWQgaW4gdGhlIDxsaXRlcmFsPkVYQ0VQVDwv bGl0ZXJhbD4KKyAgIGNsYXVzZSwgd2hldGhlciB0aGV5IGFyZSBwdWJsaXNoZWQgb3Igbm90IHN0 aWxsIGRlcGVuZHMgb24gdGhlIHZhbHVlIG9mCisgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl cHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CiAgICA8 bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4uIFNlZQog ICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1nZW5jb2xzIi8+IGZvciBkZXRh aWxzLgogICA8L3BhcmE+CkBAIC0xNDIzLDExICsxNDM0LDE0IEBAIFB1YmxpY2F0aW9uczoKIAog ICA8cGFyYT4KICAgIElmIGEgcHVibGljYXRpb24gcHVibGlzaGVzIDxjb21tYW5kPlVQREFURTwv Y29tbWFuZD4gb3IKLSAgIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4gb3BlcmF0aW9ucywgYW55 IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0aGUKLSAgIHRhYmxlJ3MgcmVwbGljYSBpZGVudGl0 eSBjb2x1bW5zIChzZWUKLSAgIDx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnRhYmxlLXJlcGxpY2Et aWRlbnRpdHkiLz4pLgorICAgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcGVyYXRpb25zLCBh bnkgY29sdW1uIGxpc3QgbXVzdCBpbmNsdWRlIHRhYmxlJ3MKKyAgIHJlcGxpY2EgaWRlbnRpdHkg Y29sdW1ucyBhbmQgYW55IGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoCisgICA8bGl0ZXJhbD5F WENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBtdXN0IG5vdCBpbmNsdWRlIHRoZSB0YWJsZSdzIHJlcGxp Y2EKKyAgIGlkZW50aXR5IGNvbHVtbnMgKHNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ0YWJs ZS1yZXBsaWNhLWlkZW50aXR5Ii8+KS4KICAgIElmIGEgcHVibGljYXRpb24gcHVibGlzaGVzIG9u bHkgPGNvbW1hbmQ+SU5TRVJUPC9jb21tYW5kPiBvcGVyYXRpb25zLCB0aGVuCi0gICB0aGUgY29s dW1uIGxpc3QgbWF5IG9taXQgcmVwbGljYSBpZGVudGl0eSBjb2x1bW5zLgorICAgdGhlIGNvbHVt biBsaXN0IG1heSBvbWl0IHJlcGxpY2EgaWRlbnRpdHkgY29sdW1ucyBhbmQgdGhlIGNvbHVtbiBs aXN0CisgICBzcGVjaWZpZWQgd2l0aCA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBt YXkgaW5jbHVkZSByZXBsaWNhIGlkZW50aXR5CisgICBjb2x1bW5zLgogICA8L3BhcmE+CiAKICAg PHBhcmE+CkBAIC0xNDcyLDE4ICsxNDg2LDIxIEBAIFB1YmxpY2F0aW9uczoKICAgIDx0aXRsZT5F eGFtcGxlczwvdGl0bGU+CiAKICAgIDxwYXJhPgotICAgIENyZWF0ZSBhIHRhYmxlIDxsaXRlcmFs PnQxPC9saXRlcmFsPiB0byBiZSB1c2VkIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZS4KKyAgICBD cmVhdGUgdGFibGVzIDxsaXRlcmFsPnQxPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+dDI8L2xpdGVy YWw+IHRvIGJlIHVzZWQgaW4KKyAgICB0aGUgZm9sbG93aW5nIGV4YW1wbGUuCiA8cHJvZ3JhbWxp c3Rpbmc+CiAvKiBwdWIgIyAqLyBDUkVBVEUgVEFCTEUgdDEoaWQgaW50LCBhIHRleHQsIGIgdGV4 dCwgYyB0ZXh0LCBkIHRleHQsIGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKKy8qIHB1YiAjICov IENSRUFURSBUQUJMRSB0MihpZCBpbnQsIGEgdGV4dCwgYiB0ZXh0LCBjIHRleHQsIGQgdGV4dCwg ZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAg IDxwYXJhPgogICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIDxsaXRlcmFsPnAxPC9saXRlcmFsPi4g QSBjb2x1bW4gbGlzdCBpcyBkZWZpbmVkIGZvcgotICAgIHRhYmxlIDxsaXRlcmFsPnQxPC9saXRl cmFsPiB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoYXQgd2lsbCBiZQotICAgIHJl cGxpY2F0ZWQuIE5vdGljZSB0aGF0IHRoZSBvcmRlciBvZiBjb2x1bW4gbmFtZXMgaW4gdGhlIGNv bHVtbiBsaXN0IGRvZXMKLSAgICBub3QgbWF0dGVyLgorICAgIHRhYmxlIDxsaXRlcmFsPnQxPC9s aXRlcmFsPiwgYW5kIGFub3RoZXIgY29sdW1uIGxpc3QgaXMgZGVmaW5lZCBmb3IgdGFibGUKKyAg ICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4gdXNpbmcgdGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJh bD4gY2xhdXNlIHRvIHJlZHVjZQorICAgIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGF0IHdpbGwg YmUgcmVwbGljYXRlZC4gTm90ZSB0aGF0IHRoZSBvcmRlciBvZiBjb2x1bW4KKyAgICBuYW1lcyBp biB0aGUgY29sdW1uIGxpc3RzIGRvZXMgbm90IG1hdHRlci4KIDxwcm9ncmFtbGlzdGluZz4KLS8q IHB1YiAjICovIENSRUFURSBQVUJMSUNBVElPTiBwMSBGT1IgVEFCTEUgdDEgKGlkLCBiLCBhLCBk KTsKKy8qIHB1YiAjICovIENSRUFURSBQVUJMSUNBVElPTiBwMSBGT1IgVEFCTEUgdDEgKGlkLCBi LCBhLCBkKSwgdDIgRVhDRVBUIChkLCBhKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAg ICAgPHBhcmE+CkBAIC0xNDk3LDYgKzE1MTQsNyBAQCBQdWJsaWNhdGlvbnM6CiAgcG9zdGdyZXMg fCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg bm9uZSAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50MSIgKGlkLCBhLCBi LCBkKQorICAgICJwdWJsaWMudDIiIEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9w YXJhPgogCiAgICAgPHBhcmE+CkBAIC0xNTE3LDIzICsxNTM1LDQxIEBAIEluZGV4ZXM6CiAgICAg InQxX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCiBQdWJsaWNhdGlvbnM6CiAgICAgInAx IiAoaWQsIGEsIGIsIGQpCisKKy8qIHB1YiAjICovIFxkIHQyCisgICAgICAgICAgICAgICAgIFRh YmxlICJwdWJsaWMudDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgRGVmYXVsdAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwKKyBhICAg ICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGIgICAgICB8IHRleHQgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8CisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwKKyBkICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAor IGUgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8CitJbmRleGVzOgorICAg ICJ0Ml9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorUHVibGljYXRpb25zOgorICAgICJw MSIgRVhDRVBUIChhLCBkKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4K LSAgICAgT24gdGhlIHN1YnNjcmliZXIgbm9kZSwgY3JlYXRlIGEgdGFibGUgPGxpdGVyYWw+dDE8 L2xpdGVyYWw+IHdoaWNoIG5vdwotICAgICBvbmx5IG5lZWRzIGEgc3Vic2V0IG9mIHRoZSBjb2x1 bW5zIHRoYXQgd2VyZSBvbiB0aGUgcHVibGlzaGVyIHRhYmxlCi0gICAgIDxsaXRlcmFsPnQxPC9s aXRlcmFsPiwgYW5kIGFsc28gY3JlYXRlIHRoZSBzdWJzY3JpcHRpb24KKyAgICAgT24gdGhlIHN1 YnNjcmliZXIgbm9kZSwgY3JlYXRlIHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gYW5kCisg ICAgIDxsaXRlcmFsPnQyPC9saXRlcmFsPiB3aGljaCBub3cgb25seSBuZWVkcyBhIHN1YnNldCBv ZiB0aGUgY29sdW1ucyB0aGF0CisgICAgIHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0YWJsZXMgPGxp dGVyYWw+dDE8L2xpdGVyYWw+IGFuZAorICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4sIGFuZCBh bHNvIGNyZWF0ZSB0aGUgc3Vic2NyaXB0aW9uCiAgICAgIDxsaXRlcmFsPnMxPC9saXRlcmFsPiB0 aGF0IHN1YnNjcmliZXMgdG8gdGhlIHB1YmxpY2F0aW9uCiAgICAgIDxsaXRlcmFsPnAxPC9saXRl cmFsPi4KIDxwcm9ncmFtbGlzdGluZz4KIC8qIHN1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBp bnQsIGIgdGV4dCwgYSB0ZXh0LCBkIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CisvKiBzdWIgIyAq LyBDUkVBVEUgVEFCTEUgdDIoaWQgaW50LCBiIHRleHQsIGMgdGV4dCwgZSB0ZXh0LCBQUklNQVJZ IEtFWShpZCkpOwogLyogc3ViICMgKi8gQ1JFQVRFIFNVQlNDUklQVElPTiBzMQogLyogc3ViIC0g Ki8gQ09OTkVDVElPTiAnaG9zdD1sb2NhbGhvc3QgZGJuYW1lPXRlc3RfcHViIGFwcGxpY2F0aW9u X25hbWU9czEnCiAvKiBzdWIgLSAqLyBQVUJMSUNBVElPTiBwMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+ PC9wYXJhPgogCiAgICAgPHBhcmE+Ci0gICAgIE9uIHRoZSBwdWJsaXNoZXIgbm9kZSwgaW5zZXJ0 IHNvbWUgcm93cyB0byB0YWJsZSA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4uCisgICAgIE9uIHRoZSBw dWJsaXNoZXIgbm9kZSwgaW5zZXJ0IHNvbWUgcm93cyB0byB0YWJsZXMgPGxpdGVyYWw+dDE8L2xp dGVyYWw+CisgICAgIGFuZCA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4KIDxwcm9ncmFtbGlzdGluZz4K IC8qIHB1YiAjICovIElOU0VSVCBJTlRPIHQxIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEn LCAnZC0xJywgJ2UtMScpOwogLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDEgVkFMVUVTKDIsICdh LTInLCAnYi0yJywgJ2MtMicsICdkLTInLCAnZS0yJyk7CkBAIC0xNTQ1LDExICsxNTgxLDIxIEBA IFB1YmxpY2F0aW9uczoKICAgMiB8IGEtMiB8IGItMiB8IGMtMiB8IGQtMiB8IGUtMgogICAzIHwg YS0zIHwgYi0zIHwgYy0zIHwgZC0zIHwgZS0zCiAoMyByb3dzKQorLyogcHViICMgKi8gSU5TRVJU IElOVE8gdDIgVkFMVUVTKDEsICdhLTEnLCAnYi0xJywgJ2MtMScsICdkLTEnLCAnZS0xJyk7Cisv KiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMiwgJ2EtMicsICdiLTInLCAnYy0yJywg J2QtMicsICdlLTInKTsKKy8qIHB1YiAjICovIElOU0VSVCBJTlRPIHQyIFZBTFVFUygzLCAnYS0z JywgJ2ItMycsICdjLTMnLCAnZC0zJywgJ2UtMycpOworLyogcHViICMgKi8gU0VMRUNUICogRlJP TSB0MiBPUkRFUiBCWSBpZDsKKyBpZCB8ICBhICB8ICBiICB8ICBjICB8ICBkICB8ICBlCistLS0t Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tCisgIDEgfCBhLTEgfCBiLTEgfCBjLTEgfCBk LTEgfCBlLTEKKyAgMiB8IGEtMiB8IGItMiB8IGMtMiB8IGQtMiB8IGUtMgorICAzIHwgYS0zIHwg Yi0zIHwgYy0zIHwgZC0zIHwgZS0zCisoMyByb3dzKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+ CiAKICAgICA8cGFyYT4KLSAgICAgT25seSBkYXRhIGZyb20gdGhlIGNvbHVtbiBsaXN0IG9mIHB1 YmxpY2F0aW9uIDxsaXRlcmFsPnAxPC9saXRlcmFsPiBpcwotICAgICByZXBsaWNhdGVkLgorICAg ICBPbmx5IGRhdGEgc3BlY2lmaWVkIGJ5IHRoZSBjb2x1bW4gbGlzdHMgb2YgcHVibGljYXRpb24K KyAgICAgPGxpdGVyYWw+cDE8L2xpdGVyYWw+IGlzIHJlcGxpY2F0ZWQuCiA8cHJvZ3JhbWxpc3Rp bmc+CiAvKiBzdWIgIyAqLyBTRUxFQ1QgKiBGUk9NIHQxIE9SREVSIEJZIGlkOwogIGlkIHwgIGIg IHwgIGEgIHwgIGQKQEAgLTE1NTgsNiArMTYwNCwxMyBAQCBQdWJsaWNhdGlvbnM6CiAgIDIgfCBi LTIgfCBhLTIgfCBkLTIKICAgMyB8IGItMyB8IGEtMyB8IGQtMwogKDMgcm93cykKKy8qIHN1YiAj ICovIFNFTEVDVCAqIEZST00gdDIgT1JERVIgQlkgaWQ7CisgaWQgfCAgYiAgfCAgYyAgfCAgZQor LS0tLSstLS0tLSstLS0tLSstLS0tLQorICAxIHwgYi0xIHwgYy0xIHwgZS0xCisgIDIgfCBiLTIg fCBjLTIgfCBlLTIKKyAgMyB8IGItMyB8IGMtMyB8IGUtMworKDMgcm93cykKIDwvcHJvZ3JhbWxp c3Rpbmc+PC9wYXJhPgogCiAgIDwvc2VjdDI+CkBAIC0xNjU0LDYgKzE3MDcsMTcgQEAgUHVibGlj YXRpb25zOgogICAgPC9pdGVtaXplZGxpc3Q+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIEdl bmVyYXRlZCBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGUgY29sdW1uIGxpc3Qgd2l0aCB0aGUKKyAg IDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBub3QgcHVibGlzaGVkLCByZWdh cmRsZXNzIG9mIHRoZSB2YWx1ZQorICAgb2YgdGhlIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVw dWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxs aXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPiBwYXJhbWV0 ZXIuIEhvd2V2ZXIsCisgICBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgcGFydCBvZiB0 aGUgY29sdW1uIGxpc3Qgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xh dXNlIGFyZSBwdWJsaXNoZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUKKyAgIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVy YXRlZC1jb2x1bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xp dGVyYWw+PC9saW5rPiBwYXJhbWV0ZXIuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSBm b2xsb3dpbmcgdGFibGUgc3VtbWFyaXplcyBiZWhhdmlvciB3aGVuIHRoZXJlIGFyZSBnZW5lcmF0 ZWQgY29sdW1ucwogICAgaW52b2x2ZWQgaW4gdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24uIFJlc3Vs dHMgYXJlIHNob3duIGZvciB3aGVuCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNn bWwKaW5kZXggMzhiNDY1NzM3OGEuLmY3OWVmNzg5ZDkzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9wdWJsaWNhdGlvbi5zZ21sCkBAIC0zMiw3ICszMiw3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAog PHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25f b2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCi0gICAgVEFCTEUgWyBP TkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2Vh YmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQorICAgIFRB QkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9y ZXBsYWNlYWJsZT4gWyAqIF0gWyBbIEVYQ0VQVCBdICggY29sdW1uX25hbWUgWywgLi4uIF0gKSBd IFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVw bGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRf U0NIRU1BIH0gWywgLi4uIF0KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgpAQCAt MjYwLDYgKzI2MCwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9u IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudAogICAgPHN0cnVjdG5hbWU+ cHJvZHVjdGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBB TFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2Vycywg ZGVwYXJ0bWVudHMsIFRBQkxFUyBJTiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQWx0ZXIgcHVibGljYXRpb24gPHN0cnVjdG5hbWU+ bXlwdWJsaWNhdGlvbjwvc3RydWN0bmFtZT4gdG8gYWRkIHRhYmxlCisgICA8c3RydWN0bmFtZT51 c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNvbHVtbgorICAgPHN0cnVjdG5hbWU+c2VjdXJpdHlf cGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHBy b2R1Y3Rpb25fcHVibGljYXRpb24gQUREIFRBQkxFIHVzZXJzIEVYQ0VQVCAoc2VjdXJpdHlfcGlu KTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggYmRkZmY5Y2EwY2MuLjA2OTFiMTAyODQwIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI4LDcgKzI4LDcg QEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNl PgogCi0gICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRh YmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkg XSBbLCAuLi4gXQorICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyBbIEVYQ0VQVCBdICggY29sdW1u X25hbWUgWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxFUyBJTiBT Q0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxh Y2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KIAogPHBocmFzZT53aGVyZSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+ IGlzOjwvcGhyYXNlPgpAQCAtOTIsMTcgKzkyLDI0IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgIDwvcGFy YT4KIAogICAgICA8cGFyYT4KLSAgICAgIFdoZW4gYSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQs IG9ubHkgdGhlIG5hbWVkIGNvbHVtbnMgYXJlIHJlcGxpY2F0ZWQuCi0gICAgICBUaGUgY29sdW1u IGxpc3QgY2FuIGNvbnRhaW4gc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGFzIHdlbGwuIElmIHRo ZQotICAgICAgY29sdW1uIGxpc3QgaXMgb21pdHRlZCwgdGhlIHB1YmxpY2F0aW9uIHdpbGwgcmVw bGljYXRlIGFsbCBub24tZ2VuZXJhdGVkCi0gICAgICBjb2x1bW5zIChpbmNsdWRpbmcgYW55IGFk ZGVkIGluIHRoZSBmdXR1cmUpIGJ5IGRlZmF1bHQuIFN0b3JlZCBnZW5lcmF0ZWQKLSAgICAgIGNv bHVtbnMgY2FuIGFsc28gYmUgcmVwbGljYXRlZCBpZiA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zPC9saXRlcmFsPgotICAgICAgaXMgc2V0IHRvIDxsaXRlcmFsPnN0b3JlZDwvbGl0 ZXJhbD4uIFNwZWNpZnlpbmcgYSBjb2x1bW4gbGlzdCBoYXMgbm8KLSAgICAgIGVmZmVjdCBvbiA8 bGl0ZXJhbD5UUlVOQ0FURTwvbGl0ZXJhbD4gY29tbWFuZHMuIFNlZQorICAgICAgV2hlbiBhIGNv bHVtbiBsaXN0IHdpdGhvdXQgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQs IG9ubHkKKyAgICAgIHRoZSBuYW1lZCBjb2x1bW5zIGFyZSByZXBsaWNhdGVkLiBUaGUgY29sdW1u IGxpc3QgY2FuIGNvbnRhaW4gc3RvcmVkCisgICAgICBnZW5lcmF0ZWQgY29sdW1ucyBhcyB3ZWxs LiBJZiB0aGUgY29sdW1uIGxpc3QgaXMgb21pdHRlZCwgdGhlIHB1YmxpY2F0aW9uCisgICAgICB3 aWxsIHJlcGxpY2F0ZSBhbGwgbm9uLWdlbmVyYXRlZCBjb2x1bW5zIChpbmNsdWRpbmcgYW55IGFk ZGVkIGluIHRoZQorICAgICAgZnV0dXJlKSBieSBkZWZhdWx0LiBTdG9yZWQgZ2VuZXJhdGVkIGNv bHVtbnMgY2FuIGFsc28gYmUgcmVwbGljYXRlZCBpZgorICAgICAgPGxpdGVyYWw+cHVibGlzaF9n ZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD4gaXMgc2V0IHRvCisgICAgICA8bGl0ZXJhbD5zdG9y ZWQ8L2xpdGVyYWw+LiBTcGVjaWZ5aW5nIGEgY29sdW1uIGxpc3QgaGFzIG5vIGVmZmVjdCBvbgor ICAgICAgPGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1hbmRzLiBTZWUKICAgICAgIDx4 cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tY29sLWxpc3RzIi8+IGZvciBkZXRhaWxz IGFib3V0IGNvbHVtbgogICAgICAgbGlzdHMuCiAgICAgIDwvcGFyYT4KIAorICAgICA8cGFyYT4K KyAgICAgIFdoZW4gYSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQgd2l0aCA8bGl0ZXJhbD5FWENF UFQ8L2xpdGVyYWw+LCB0aGUgbmFtZWQKKyAgICAgIGNvbHVtbnMgYXJlIG5vdCByZXBsaWNhdGVk LiBTcGVjaWZ5aW5nIGEgY29sdW1uIGxpc3QgaGFzIG5vIGVmZmVjdCBvbgorICAgICAgPGxpdGVy YWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1hbmRzLgorICAgICA8L3BhcmE+CisKICAgICAgPHBh cmE+CiAgICAgICBPbmx5IHBlcnNpc3RlbnQgYmFzZSB0YWJsZXMgYW5kIHBhcnRpdGlvbmVkIHRh YmxlcyBjYW4gYmUgcGFydCBvZiBhCiAgICAgICBwdWJsaWNhdGlvbi4gIFRlbXBvcmFyeSB0YWJs ZXMsIHVubG9nZ2VkIHRhYmxlcywgZm9yZWlnbiB0YWJsZXMsCkBAIC0zNDcsMTAgKzM1NCwxMiBA QCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPgogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBBbnkgY29sdW1uIGxpc3Qg bXVzdCBpbmNsdWRlIHRoZSA8bGl0ZXJhbD5SRVBMSUNBIElERU5USVRZPC9saXRlcmFsPiBjb2x1 bW5zCi0gICBpbiBvcmRlciBmb3IgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBvciA8Y29tbWFu ZD5ERUxFVEU8L2NvbW1hbmQ+Ci0gICBvcGVyYXRpb25zIHRvIGJlIHB1Ymxpc2hlZC4gVGhlcmUg YXJlIG5vIGNvbHVtbiBsaXN0IHJlc3RyaWN0aW9ucyBpZiB0aGUKLSAgIHB1YmxpY2F0aW9uIHB1 Ymxpc2hlcyBvbmx5IDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4gb3BlcmF0aW9ucy4KKyAgIElu IG9yZGVyIGZvciA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+IG9yIDxjb21tYW5kPkRFTEVURTwv Y29tbWFuZD4KKyAgIG9wZXJhdGlvbnMgdG8gd29yaywgYWxsIHRoZSA8bGl0ZXJhbD5SRVBMSUNB IElERU5USVRZPC9saXRlcmFsPiBjb2x1bW5zIG11c3QKKyAgIGJlIHB1Ymxpc2hlZC4gU28sIGFu eSBjb2x1bW4gbGlzdCBtdXN0IG5hbWUgYWxsCisgICA8bGl0ZXJhbD5SRVBMSUNBIElERU5USVRZ PC9saXRlcmFsPiBjb2x1bW5zLCBhbmQgYW55CisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+ IGNvbHVtbiBsaXN0IG11c3Qgbm90IG5hbWUgYW55CisgICA8bGl0ZXJhbD5SRVBMSUNBIElERU5U SVRZPC9saXRlcmFsPiBjb2x1bW5zLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0zNzMsNiAr MzgyLDE2IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICB0byBiZSBwdWJsaXNoZWQuCiAgIDwvcGFyYT4KIAor ICA8cGFyYT4KKyAgIFRoZSBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBj b2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJh bD4gY2xhdXNlIGFyZSBub3QgcHVibGlzaGVkLCByZWdhcmRsZXNzIG9mIHRoZQorICAgPGxpdGVy YWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD4gb3B0aW9uLiBIb3dldmVyLCBn ZW5lcmF0ZWQKKyAgIGNvbHVtbnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIGNvbHVtbiBsaXN0 IHNwZWNpZmllZCB3aXRoIHRoZQorICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2Ug YXJlIHB1Ymxpc2hlZCBhY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mIHRoZQorICAgPGxpdGVyYWw+ cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD4gb3B0aW9uLiBTZWUKKyAgIDx4cmVm IGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tZ2VuY29scyIvPiBmb3IgZGV0YWlscy4KKyAg PC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIHJvdyBmaWx0ZXIgb24gYSB0YWJsZSBiZWNvbWVz IHJlZHVuZGFudCBpZgogICAgPGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+ IGlzIHNwZWNpZmllZCBhbmQgdGhlIHRhYmxlCkBAIC00OTQsNiArNTEzLDE1IEBAIENSRUFURSBQ VUJMSUNBVElPTiBteXB1YmxpY2F0aW9uIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCB1c2VycywgZGVw YXJ0bWVudHM7CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgUFVCTElDQVRJT04gdXNlcnNfZmls dGVyZWQgRk9SIFRBQkxFIHVzZXJzICh1c2VyX2lkLCBmaXJzdG5hbWUpOwogPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CisKKyAgPHBhcmE+CisgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1 Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgdGFibGUKKyAgIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1 Y3RuYW1lPiBleGNlcHQgY2hhbmdlcyBmb3IgY29sdW1uCisgICA8c3RydWN0bmFtZT5zZWN1cml0 eV9waW48L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9O IHVzZXJzX3NhZmUgRk9SIFRBQkxFIHVzZXJzIEVYQ0VQVCAoc2VjdXJpdHlfcGluKTsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KICA8L3JlZnNlY3QxPgogCiAgPHJlZnNlY3QxPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5 c3RlbS12aWV3cy5zZ21sCmluZGV4IDQxODcxOTFlYTc0Li43NWMzYzllNTg3MSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeXN0 ZW0tdmlld3Muc2dtbApAQCAtMjYzMiw2ICsyNjMyLDE2IEBAIFNFTEVDVCAqIEZST00gcGdfbG9j a3MgcGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgIEV4cHJlc3Npb24g Zm9yIHRoZSB0YWJsZSdzIHB1YmxpY2F0aW9uIHF1YWxpZnlpbmcgY29uZGl0aW9uCiAgICAgICA8 L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmV4Y2VwdGNvbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIGEgY29s dW1uIGxpc3Qgd2l0aCA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBpcyBzcGVjaWZp ZWQKKyAgICAgICBmb3IgdGhlIHRhYmxlIGluIHRoZSBwdWJsaWNhdGlvbi4KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwv dGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggYWYxYjhjOWVkNjcu LjBmNmQ0MmNjZDVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0yNjMs MTQgKzI2MywxOSBAQCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKQogICogSWYgYSBj b2x1bW4gbGlzdCBpcyBmb3VuZCwgdGhlIGNvcnJlc3BvbmRpbmcgYml0bWFwIGlzIHJldHVybmVk IHRocm91Z2ggdGhlCiAgKiBjb2xzIHBhcmFtZXRlciwgaWYgcHJvdmlkZWQuIFRoZSBiaXRtYXAg aXMgY29uc3RydWN0ZWQgd2l0aGluIHRoZSBnaXZlbgogICogbWVtb3J5IGNvbnRleHQgKG1jeHQp LgorICoKKyAqIElmIGEgY29sdW1uIGxpc3QgaXMgZm91bmQgc3BlY2lmaWVkIHdpdGggRVhDRVBU IGNsYXVzZSwgZXhjZXB0X2NvbHVtbnMgaXMgc2V0CisgKiB0byB0cnVlLgogICovCiBib29sCiBj aGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QoUHVibGljYXRpb24gKnB1YiwgT2lkIHJlbGlkLCBN ZW1vcnlDb250ZXh0IG1jeHQsCi0JCQkJCQkJQml0bWFwc2V0ICoqY29scykKKwkJCQkJCQlCaXRt YXBzZXQgKipjb2xzLCBib29sICpleGNlcHRfY29sdW1ucykKIHsKIAlIZWFwVHVwbGUJY2Z0dXBs ZTsKIAlib29sCQlmb3VuZCA9IGZhbHNlOwogCisJKmV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisK IAlpZiAocHViLT5hbGx0YWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIApAQCAtMjk2LDYgKzMwMSwx NiBAQCBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QoUHVibGljYXRpb24gKnB1YiwgT2lkIHJl bGlkLCBNZW1vcnlDb250ZXh0IG1jeHQsCiAJCQlmb3VuZCA9IHRydWU7CiAJCX0KIAorCQkvKiBM b29rdXAgdGhlIGV4Y2VwdCBhdHRyaWJ1dGUgKi8KKwkJY2ZkYXR1bSA9IFN5c0NhY2hlR2V0QXR0 cihQVUJMSUNBVElPTlJFTE1BUCwgY2Z0dXBsZSwKKwkJCQkJCQkJICBBbnVtX3BnX3B1YmxpY2F0 aW9uX3JlbF9wcmV4Y2VwdCwgJmlzbnVsbCk7CisKKwkJaWYgKCFpc251bGwpCisJCXsKKwkJCUFz c2VydCghcHViLT5hbGx0YWJsZXMpOworCQkJKmV4Y2VwdF9jb2x1bW5zID0gRGF0dW1HZXRCb29s KGNmZGF0dW0pOworCQl9CisKIAkJUmVsZWFzZVN5c0NhY2hlKGNmdHVwbGUpOwogCX0KIApAQCAt NjU3LDEwICs2NzIsMTIgQEAgcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0KEJpdG1hcHNldCAqY29s dW1ucywgRGF0dW0gcHViY29scywgTWVtb3J5Q29udGV4dCBtY3h0KQogICogUmV0dXJucyBhIGJp dG1hcCByZXByZXNlbnRpbmcgdGhlIGNvbHVtbnMgb2YgdGhlIHNwZWNpZmllZCB0YWJsZS4KICAq CiAgKiBHZW5lcmF0ZWQgY29sdW1ucyBhcmUgaW5jbHVkZWQgaWYgaW5jbHVkZV9nZW5jb2xzX3R5 cGUgaXMKLSAqIFBVQkxJU0hfR0VOQ09MU19TVE9SRUQuCisgKiBQVUJMSVNIX0dFTkNPTFNfU1RP UkVELiBDb2x1bW5zIHRoYXQgYXJlIGluIHRoZSBleGNlcHRfY29scyBhcmUgZXhjbHVkZWQgZnJv bQorICogdGhlIGNvbHVtbiBsaXN0LgogICovCiBCaXRtYXBzZXQgKgotcHViX2Zvcm1fY29sc19t YXAoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNf dHlwZSkKK3B1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29s c1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUsCisJCQkJICBCaXRtYXBzZXQgKmV4Y2VwdF9jb2xz KQogewogCUJpdG1hcHNldCAgKnJlc3VsdCA9IE5VTEw7CiAJVHVwbGVEZXNjCWRlc2MgPSBSZWxh dGlvbkdldERlc2NyKHJlbGF0aW9uKTsKQEAgLTY4Myw2ICs3MDAsOSBAQCBwdWJfZm9ybV9jb2xz X21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29s c190eXBlKQogCQkJCWNvbnRpbnVlOwogCQl9CiAKKwkJaWYgKGV4Y2VwdF9jb2xzICYmIGJtc19p c19tZW1iZXIoYXR0LT5hdHRudW0sIGV4Y2VwdF9jb2xzKSkKKwkJCWNvbnRpbnVlOworCiAJCXJl c3VsdCA9IGJtc19hZGRfbWVtYmVyKHJlc3VsdCwgYXR0LT5hdHRudW0pOwogCX0KIApAQCAtNzg3 LDggKzgwNywxMCBAQCBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhj ZXB0X2ZsYWcpCiAJewogCQlIZWFwVHVwbGUJdHVwID0gJnB1YnJlbGxpc3QtPm1lbWJlcnNbaV0t PnR1cGxlOwogCQlPaWQJCQlwdWJpZCA9ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNU UlVDVCh0dXApKS0+cHJwdWJpZDsKKwkJYm9vbAkJaXNfZXhjZXB0X3RhYmxlID0gKChGb3JtX3Bn X3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdCAmJgorCQkJaGVhcF9h dHRpc251bGwodHVwLCBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzLCBOVUxMKTsKIAot CQlpZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNU KHR1cCkpLT5wcmV4Y2VwdCkKKwkJaWYgKGV4Y2VwdF9mbGFnID09IGlzX2V4Y2VwdF90YWJsZSkK IAkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOwogCX0KIApAQCAtODI4LDEw ICs4NTAsMTIgQEAgR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlv blBhcnRPcHQgcHViX3BhcnRvcHQsCiAJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVwID0gc3lz dGFibGVfZ2V0bmV4dChzY2FuKSkpCiAJewogCQlGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCBwdWJy ZWw7CisJCWJvb2wJCWhhc19jb2xsaXN0ID0gZmFsc2U7CiAKIAkJcHVicmVsID0gKEZvcm1fcGdf cHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKTsKKwkJaGFzX2NvbGxpc3QgPSAhaGVhcF9h dHRpc251bGwodHVwLCBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzLCBOVUxMKTsKIAot CQlpZiAoZXhjZXB0X2ZsYWcgPT0gcHVicmVsLT5wcmV4Y2VwdCkKKwkJaWYgKGV4Y2VwdF9mbGFn ID09IChwdWJyZWwtPnByZXhjZXB0ICYmICFoYXNfY29sbGlzdCkpCiAJCQlyZXN1bHQgPSBHZXRQ dWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMocmVzdWx0LCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJ CQkJCQlwdWJyZWwtPnBycmVsaWQpOwogCkBAIC0xMTU1LDcgKzExNzksNyBAQCBHZXRQdWJsaWNh dGlvbkJ5TmFtZShjb25zdCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Npbmdfb2spCiBEYXR1bQog cGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogewotI2RlZmluZSBO VU1fUFVCTElDQVRJT05fVEFCTEVTX0VMRU0JNAorI2RlZmluZSBOVU1fUFVCTElDQVRJT05fVEFC TEVTX0VMRU0JNQogCUZ1bmNDYWxsQ29udGV4dCAqZnVuY2N0eDsKIAlMaXN0CSAgICp0YWJsZV9p bmZvcyA9IE5JTDsKIApAQCAtMTI2MSw2ICsxMjg1LDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3Rh YmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkJICAgSU5UMlZFQ1RPUk9JRCwgLTEsIDApOwog CQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDQsICJxdWFsIiwKIAkJ CQkJCSAgIFBHX05PREVfVFJFRU9JRCwgLTEsIDApOworCQlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpIDUsICJleGNlcHRjb2wiLAorCQkJCQkJICAgQk9PTE9JRCwgLTEs IDApOwogCiAJCWZ1bmNjdHgtPnR1cGxlX2Rlc2MgPSBCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsK IAkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gdGFibGVfaW5mb3M7CkBAIC0xMjgyLDYgKzEzMDgsNyBA QCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCU9pZAkJCXNj aGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpOwogCQlEYXR1bQkJdmFsdWVzW05VTV9Q VUJMSUNBVElPTl9UQUJMRVNfRUxFTV0gPSB7MH07CiAJCWJvb2wJCW51bGxzW05VTV9QVUJMSUNB VElPTl9UQUJMRVNfRUxFTV0gPSB7MH07CisJCUJpdG1hcHNldCAgKmV4Y2VwdF9jb2x1bW5zID0g TlVMTDsKIAogCQkvKgogCQkgKiBGb3JtIHR1cGxlIHdpdGggYXBwcm9wcmlhdGUgZGF0YS4KQEAg LTEzMDYsMTEgKzEzMzMsMzYgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElP Tl9BUkdTKQogCiAJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHB1YnR1cGxlKSkKIAkJewotCQkJLyog TG9va3VwIHRoZSBjb2x1bW4gbGlzdCBhdHRyaWJ1dGUuICovCiAJCQl2YWx1ZXNbMl0gPSBTeXND YWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHB1YnR1cGxlLAogCQkJCQkJCQkJCUFudW1f cGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsCiAJCQkJCQkJCQkJJihudWxsc1syXSkpOwogCisJ CQlpZiAoIW51bGxzWzJdKQorCQkJeworCQkJCURhdHVtCQlleGNlcHREYXR1bTsKKwkJCQlib29s CQlpc251bGw7CisKKwkJCQkvKgorCQkJCSAqIFdlIGZldGNoIHB1YnR1cGxlIGlmIHB1YmxpY2F0 aW9uIGlzIG5vdCBGT1IgQUxMIFRBQkxFUyBhbmQKKwkJCQkgKiBub3QgRk9SIFRBQkxFUyBJTiBT Q0hFTUEuIFNvIGlmIHByZXhjZXB0IGlzIHRydWUsIGl0CisJCQkJICogaW5kaWNhdGVzIHRoYXQg cHJhdHRycyBjb250YWlucyBjb2x1bW5zIHRvIGJlIGV4Y2x1ZGVkIGZvcgorCQkJCSAqIHJlcGxp Y2F0aW9uLgorCQkJCSAqLworCQkJCWV4Y2VwdERhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJ Q0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKKwkJCQkJCQkJCQkJICBBbnVtX3BnX3B1YmxpY2F0aW9u X3JlbF9wcmV4Y2VwdCwKKwkJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQkJCWlmICghaXNudWxs ICYmIERhdHVtR2V0Qm9vbChleGNlcHREYXR1bSkpCisJCQkJeworCQkJCQlleGNlcHRfY29sdW1u cyA9IHB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCB2YWx1ZXNbMl0sIE5VTEwpOworCisJ CQkJCWlmIChleGNlcHRfY29sdW1ucykKKwkJCQkJCXZhbHVlc1s0XSA9IEJvb2xHZXREYXR1bSh0 cnVlKTsKKwkJCQkJZWxzZQorCQkJCQkJdmFsdWVzWzRdID0gQm9vbEdldERhdHVtKGZhbHNlKTsK KwkJCQl9CisJCQl9CisKIAkJCS8qIE51bGwgaW5kaWNhdGVzIG5vIGZpbHRlci4gKi8KIAkJCXZh bHVlc1szXSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCiAJ CQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJxdWFsLApAQCAtMTMyMiw4ICsxMzc0 LDEyIEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCW51 bGxzWzNdID0gdHJ1ZTsKIAkJfQogCi0JCS8qIFNob3cgYWxsIGNvbHVtbnMgd2hlbiB0aGUgY29s dW1uIGxpc3QgaXMgbm90IHNwZWNpZmllZC4gKi8KLQkJaWYgKG51bGxzWzJdKQorCQkvKgorCQkg KiBDb25zdHJ1Y3QgY29sdW1uIGxpc3QgdG8gc2hvdyBhbGwgY29sdW1ucyB3aGVuIG5vIGNvbHVt biBsaXN0IGlzCisJCSAqIHNwZWNpZmllZCBvciB0byBzaG93IHJlbWFpbmluZyBjb2x1bW5zIHdo ZW4gYSBjb2x1bW4gbGlzdCBpcworCQkgKiBwcm92aWRlZCB3aXRoIEVYQ0VQVC4KKwkJICovCisJ CWlmIChleGNlcHRfY29sdW1ucyB8fCBudWxsc1syXSkKIAkJewogCQkJUmVsYXRpb24JcmVsID0g dGFibGVfb3BlbihyZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJCWludAkJCW5hdHRudW1zID0g MDsKQEAgLTEzNTQsNiArMTQxMCwxMyBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCQkJCQljb250aW51ZTsKIAkJCQl9CiAKKwkJCQkvKgorCQkJCSAqIFNr aXAgY29sdW1ucyB0aGF0IGFyZSBwYXJ0IG9mIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoCisJ CQkJICogRVhDRVBULgorCQkJCSAqLworCQkJCWlmIChleGNlcHRfY29sdW1ucyAmJiBibXNfaXNf bWVtYmVyKGF0dC0+YXR0bnVtLCBleGNlcHRfY29sdW1ucykpCisJCQkJCWNvbnRpbnVlOworCiAJ CQkJYXR0bnVtc1tuYXR0bnVtcysrXSA9IGF0dC0+YXR0bnVtOwogCQkJfQogCkBAIC0xMzYyLDYg KzE0MjUsMTEgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CQkJCXZhbHVlc1syXSA9IFBvaW50ZXJHZXREYXR1bShidWlsZGludDJ2ZWN0b3IoYXR0bnVtcywg bmF0dG51bXMpKTsKIAkJCQludWxsc1syXSA9IGZhbHNlOwogCQkJfQorCQkJZWxzZQorCQkJewor CQkJCXZhbHVlc1syXSA9IChEYXR1bSkgMDsKKwkJCQludWxsc1syXSA9IHRydWU7CisJCQl9CiAK IAkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGM3N2ZhMDIzNGJiLi5lMmFmY2RiODg0ZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMzg4LDcgKzM4OCw4IEBAIENSRUFURSBW SUVXIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBBUwogICAgICAgICAgIFdIRVJFIGEuYXR0cmVsaWQg PSBHUFQucmVsaWQgQU5ECiAgICAgICAgICAgICAgICAgYS5hdHRudW0gPSBBTlkoR1BULmF0dHJz KQogICAgICAgICApIEFTIGF0dG5hbWVzLAotICAgICAgICBwZ19nZXRfZXhwcihHUFQucXVhbCwg R1BULnJlbGlkKSBBUyByb3dmaWx0ZXIKKyAgICAgICAgcGdfZ2V0X2V4cHIoR1BULnF1YWwsIEdQ VC5yZWxpZCkgQVMgcm93ZmlsdGVyLAorICAgICAgICBncHQuZXhjZXB0Y29sIEFTIGV4Y2VwdGNv bAogICAgIEZST00gcGdfcHVibGljYXRpb24gUCwKICAgICAgICAgIExBVEVSQUwgcGdfZ2V0X3B1 YmxpY2F0aW9uX3RhYmxlcyhQLnB1Ym5hbWUpIEdQVCwKICAgICAgICAgIHBnX2NsYXNzIEMgSk9J TiBwZ19uYW1lc3BhY2UgTiBPTiAoTi5vaWQgPSBDLnJlbG5hbWVzcGFjZSkKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggN2Y4NDdiMTE2YmYuLmJlMWVmZDliZGQwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjAzLDcgKzIwMyw2IEBA IE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQlzd2l0Y2ggKHB1Ym9iai0+cHVib2JqdHlwZSkKIAkJewogCQkJY2Fz ZSBQVUJMSUNBVElPTk9CSl9UQUJMRToKLQkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgPSBm YWxzZTsKIAkJCQkqcmVscyA9IGxhcHBlbmQoKnJlbHMsIHB1Ym9iai0+cHVidGFibGUpOwogCQkJ CWJyZWFrOwogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU6CkBAIC0zNTcsOCAr MzU2LDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRp b24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKICAqIFRoaXMgZnVuY3Rpb24gZXZhbHVhdGVz IHR3byBjb25kaXRpb25zOgogICoKICAqIDEuIEVuc3VyZXMgdGhhdCBhbGwgY29sdW1ucyByZWZl cmVuY2VkIGluIHRoZSBSRVBMSUNBIElERU5USVRZIGFyZSBjb3ZlcmVkCi0gKiAgICBieSB0aGUg Y29sdW1uIGxpc3QuIElmIGFueSBjb2x1bW4gaXMgbWlzc2luZywgKmludmFsaWRfY29sdW1uX2xp c3QgaXMgc2V0Ci0gKiAgICB0byB0cnVlLgorICogICAgYnkgdGhlIGNvbHVtbiBsaXN0IGFuZCBh cmUgbm90IHBhcnQgb2YgdGhlIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoCisgKiAgICBFWENF UFQuIElmIGFueSBjb2x1bW4gaXMgbWlzc2luZywgKmludmFsaWRfY29sdW1uX2xpc3QgaXMgc2V0 IHRvIHRydWUuCiAgKiAyLiBFbnN1cmVzIHRoYXQgYWxsIHRoZSBnZW5lcmF0ZWQgY29sdW1ucyBy ZWZlcmVuY2VkIGluIHRoZSBSRVBMSUNBIElERU5USVRZCiAgKiAgICBhcmUgcHVibGlzaGVkLCBl aXRoZXIgYnkgYmVpbmcgZXhwbGljaXRseSBuYW1lZCBpbiB0aGUgY29sdW1uIGxpc3Qgb3IsIGlm CiAgKiAgICBubyBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQsIGJ5IHNldHRpbmcgdGhlIG9wdGlv bgpAQCAtMzgwLDYgKzM3OSw3IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHVi aWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJVHVwbGVEZXNjCWRlc2Mg PSBSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKTsKIAlQdWJsaWNhdGlvbiAqcHViOwogCWludAkJ CXg7CisJYm9vbAkJZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKIAogCSppbnZhbGlkX2NvbHVtbl9s aXN0ID0gZmFsc2U7CiAJKmludmFsaWRfZ2VuX2NvbCA9IGZhbHNlOwpAQCAtNDAzLDcgKzQwMyw4 IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0 aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAKIAkvKiBGZXRjaCB0aGUgY29sdW1uIGxpc3QgKi8KIAlw dWIgPSBHZXRQdWJsaWNhdGlvbihwdWJpZCk7Ci0JY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0 KHB1YiwgcHVibGlzaF9hc19yZWxpZCwgTlVMTCwgJmNvbHVtbnMpOworCWNoZWNrX2FuZF9mZXRj aF9jb2x1bW5fbGlzdChwdWIsIHB1Ymxpc2hfYXNfcmVsaWQsIE5VTEwsICZjb2x1bW5zLAorCQkJ CQkJCQkmZXhjZXB0X2NvbHVtbnMpOwogCiAJaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbHJlcGxp ZGVudCA9PSBSRVBMSUNBX0lERU5USVRZX0ZVTEwpCiAJewpAQCAtNDkzLDggKzQ5NCwxNCBAQCBw dWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwg TGlzdCAqYW5jZXN0b3JzLAogCQkJYXR0bnVtID0gZ2V0X2F0dG51bShwdWJsaXNoX2FzX3JlbGlk LCBjb2xuYW1lKTsKIAkJfQogCi0JCS8qIHJlcGxpY2EgaWRlbnRpdHkgY29sdW1uLCBub3QgY292 ZXJlZCBieSB0aGUgY29sdW1uIGxpc3QgKi8KLQkJKmludmFsaWRfY29sdW1uX2xpc3QgfD0gIWJt c19pc19tZW1iZXIoYXR0bnVtLCBjb2x1bW5zKTsKKwkJLyoKKwkJICogUmVwbGljYSBpZGVudGl0 eSBjb2x1bW4sIG5vdCBjb3ZlcmVkIGJ5IHRoZSBjb2x1bW4gbGlzdCBvciBpcyBwYXJ0CisJCSAq IG9mIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoIEVYQ0VQVC4KKwkJICovCisJCWlmIChleGNl cHRfY29sdW1ucykKKwkJCSppbnZhbGlkX2NvbHVtbl9saXN0IHw9IGJtc19pc19tZW1iZXIoYXR0 bnVtLCBjb2x1bW5zKTsKKwkJZWxzZQorCQkJKmludmFsaWRfY29sdW1uX2xpc3QgfD0gIWJtc19p c19tZW1iZXIoYXR0bnVtLCBjb2x1bW5zKTsKIAogCQlpZiAoKmludmFsaWRfY29sdW1uX2xpc3Qg JiYgKmludmFsaWRfZ2VuX2NvbCkKIAkJCWJyZWFrOwpAQCAtMTQ1MSw2ICsxNDU4LDcgQEAgQWx0 ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxl IHR1cCwKIAkJCUhlYXBUdXBsZQlyZnR1cGxlOwogCQkJTm9kZQkgICAqb2xkcmVsd2hlcmVjbGF1 c2UgPSBOVUxMOwogCQkJQml0bWFwc2V0ICAqb2xkY29sdW1ucyA9IE5VTEw7CisJCQlib29sCQlv bGRleGNlcHQgPSBmYWxzZTsKIAogCQkJLyogbG9vayB1cCB0aGUgY2FjaGUgZm9yIHRoZSBvbGQg cmVsbWFwICovCiAJCQlyZnR1cGxlID0gU2VhcmNoU3lzQ2FjaGUyKFBVQkxJQ0FUSU9OUkVMTUFQ LApAQCAtMTQ2NCwyMyArMTQ3MiwyOCBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVi bGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJaWYgKEhlYXBUdXBsZUlzVmFs aWQocmZ0dXBsZSkpCiAJCQl7CiAJCQkJYm9vbAkJaXNudWxsID0gdHJ1ZTsKLQkJCQlEYXR1bQkJ d2hlcmVDbGF1c2VEYXR1bTsKLQkJCQlEYXR1bQkJY29sdW1uTGlzdERhdHVtOworCQkJCURhdHVt CQlkYXR1bTsKIAogCQkJCS8qIExvYWQgdGhlIFdIRVJFIGNsYXVzZSBmb3IgdGhpcyB0YWJsZS4g Ki8KLQkJCQl3aGVyZUNsYXVzZURhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVM TUFQLCByZnR1cGxlLAotCQkJCQkJCQkJCQkJICAgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJx dWFsLAotCQkJCQkJCQkJCQkJICAgJmlzbnVsbCk7CisJCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0 dHIoUFVCTElDQVRJT05SRUxNQVAsIHJmdHVwbGUsCisJCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNh dGlvbl9yZWxfcHJxdWFsLAorCQkJCQkJCQkJCSZpc251bGwpOwogCQkJCWlmICghaXNudWxsKQot CQkJCQlvbGRyZWx3aGVyZWNsYXVzZSA9IHN0cmluZ1RvTm9kZShUZXh0RGF0dW1HZXRDU3RyaW5n KHdoZXJlQ2xhdXNlRGF0dW0pKTsKKwkJCQkJb2xkcmVsd2hlcmVjbGF1c2UgPSBzdHJpbmdUb05v ZGUoVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpOwogCiAJCQkJLyogVHJhbnNmb3JtIHRoZSBp bnQydmVjdG9yIGNvbHVtbiBsaXN0IHRvIGEgYml0bWFwLiAqLwotCQkJCWNvbHVtbkxpc3REYXR1 bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKLQkJCQkJCQkJ CQkJCSAgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJhdHRycywKLQkJCQkJCQkJCQkJCSAgJmlz bnVsbCk7CisJCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJm dHVwbGUsCisJCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJhdHRycywKKwkJCQkJ CQkJCQkmaXNudWxsKTsKKwkJCQlpZiAoIWlzbnVsbCkKKwkJCQkJb2xkY29sdW1ucyA9IHB1Yl9j b2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCBkYXR1bSwgTlVMTCk7CiAKKwkJCQkvKiBMb2FkIHRo ZSBwcmV4Y2VwdCBmbGFnIGZvciB0aGlzIHRhYmxlLiAqLworCQkJCWRhdHVtID0gU3lzQ2FjaGVH ZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLAorCQkJCQkJCQkJCUFudW1fcGdfcHVi bGljYXRpb25fcmVsX3ByZXhjZXB0LAorCQkJCQkJCQkJCSZpc251bGwpOwogCQkJCWlmICghaXNu dWxsKQotCQkJCQlvbGRjb2x1bW5zID0gcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0KE5VTEwsIGNv bHVtbkxpc3REYXR1bSwgTlVMTCk7CisJCQkJCW9sZGV4Y2VwdCA9IERhdHVtR2V0Qm9vbChkYXR1 bSk7CiAKIAkJCQlSZWxlYXNlU3lzQ2FjaGUocmZ0dXBsZSk7CiAJCQl9CkBAIC0xNTA3LDEzICsx NTIwLDE0IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0 bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJICogQ2hlY2sgaWYgYW55IG9mIHRoZSBuZXcgc2V0IG9m IHJlbGF0aW9ucyBtYXRjaGVzIHdpdGggdGhlCiAJCQkJICogZXhpc3RpbmcgcmVsYXRpb25zIGlu IHRoZSBwdWJsaWNhdGlvbi4gQWRkaXRpb25hbGx5LCBpZiB0aGUKIAkJCQkgKiByZWxhdGlvbiBo YXMgYW4gYXNzb2NpYXRlZCBXSEVSRSBjbGF1c2UsIGNoZWNrIHRoZSBXSEVSRQotCQkJCSAqIGV4 cHJlc3Npb25zIGFsc28gbWF0Y2guIFNhbWUgZm9yIHRoZSBjb2x1bW4gbGlzdC4gRHJvcCB0aGUK LQkJCQkgKiByZXN0LgorCQkJCSAqIGV4cHJlc3Npb25zIGFsc28gbWF0Y2guIFNhbWUgZm9yIHRo ZSBjb2x1bW4gbGlzdCBhbmQgZXhjZXB0CisJCQkJICogZmxhZy4gRHJvcCB0aGUgcmVzdC4KIAkJ CQkgKi8KIAkJCQlpZiAobmV3cmVsaWQgPT0gb2xkcmVsaWQpCiAJCQkJewogCQkJCQlpZiAoZXF1 YWwob2xkcmVsd2hlcmVjbGF1c2UsIG5ld3B1YnJlbC0+d2hlcmVDbGF1c2UpICYmCi0JCQkJCQli bXNfZXF1YWwob2xkY29sdW1ucywgbmV3Y29sdW1ucykpCisJCQkJCQlibXNfZXF1YWwob2xkY29s dW1ucywgbmV3Y29sdW1ucykgJiYKKwkJCQkJCW9sZGV4Y2VwdCA9PSBuZXdwdWJyZWwtPmV4Y2Vw dCkKIAkJCQkJewogCQkJCQkJZm91bmQgPSB0cnVlOwogCQkJCQkJYnJlYWs7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpp bmRleCAyNTEyODg5Y2I5ZS4uODAwNWFiZTA3ODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTI3LDcgKzUy Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0 b3JfZGVmX2FyZwogJXR5cGUgPGxpc3Q+CW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9saXN0CiAldHlw ZSA8bGlzdD4Jcm93c2Zyb21faXRlbSByb3dzZnJvbV9saXN0IG9wdF9jb2xfZGVmX2xpc3QKLSV0 eXBlIDxib29sZWFuPiBvcHRfb3JkaW5hbGl0eSBvcHRfd2l0aG91dF9vdmVybGFwcworJXR5cGUg PGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzIG9wdF9leGNlcHQK ICV0eXBlIDxsaXN0PglFeGNsdXNpb25Db25zdHJhaW50TGlzdCBFeGNsdXNpb25Db25zdHJhaW50 RWxlbQogJXR5cGUgPGxpc3Q+CWZ1bmNfYXJnX2xpc3QgZnVuY19hcmdfbGlzdF9vcHQKICV0eXBl IDxub2RlPglmdW5jX2FyZ19leHByCkBAIC00NDUxLDYgKzQ0NTEsMTEgQEAgb3B0X3dpdGhvdXRf b3ZlcmxhcHM6CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJOwogCitv cHRfZXhjZXB0OgorCQkJRVhDRVBUCQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLypFTVBU WSovCQkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCiBvcHRfY29sdW1uX2xpc3Q6CiAJCQkn KCcgY29sdW1uTGlzdCAnKScJCQkJCQl7ICQkID0gJDI7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJ CQl7ICQkID0gTklMOyB9CkBAIC0xMDc2MCwxNCArMTA3NjUsMTUgQEAgQ3JlYXRlUHVibGljYXRp b25TdG10OgogICogcmVsYXRpb25fZXhwciBoZXJlLgogICovCiBQdWJsaWNhdGlvbk9ialNwZWM6 Ci0JCQlUQUJMRSByZWxhdGlvbl9leHByIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQor CQkJVEFCTEUgcmVsYXRpb25fZXhwciBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVy ZUNsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwog CQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFOwogCQkJCQkkJC0+cHVi dGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJJCQtPnB1YnRhYmxlLT5y ZWxhdGlvbiA9ICQyOwotCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKLQkJCQkJJCQt PnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9 ICQzOworCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxl LT53aGVyZUNsYXVzZSA9ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQl8 IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZApAQCAtMTA3ODMsNyArMTA3ODksNyBAQCBQdWJsaWNh dGlvbk9ialNwZWM6CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEVT X0lOX0NVUl9TQ0hFTUE7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEA0OwogCQkJCX0KLQkJCXwgQ29s SWQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQl8IENvbElkIG9wdF9leGNlcHQg b3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2Rl KFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05P QkpfQ09OVElOVUFUSU9OOwpAQCAtMTA3OTEsNyArMTA3OTcsNyBAQCBQdWJsaWNhdGlvbk9ialNw ZWM6CiAJCQkJCSAqIElmIGVpdGhlciBhIHJvdyBmaWx0ZXIgb3IgY29sdW1uIGxpc3QgaXMgc3Bl Y2lmaWVkLCBjcmVhdGUKIAkJCQkJICogYSBQdWJsaWNhdGlvblRhYmxlIG9iamVjdC4KIAkJCQkJ ICovCi0JCQkJCWlmICgkMiB8fCAkMykKKwkJCQkJaWYgKCQyIHx8ICQzIHx8ICQ0KQogCQkJCQl7 CiAJCQkJCQkvKgogCQkJCQkJICogVGhlIE9wdFdoZXJlQ2xhdXNlIG11c3QgYmUgc3RvcmVkIGhl cmUgYnV0IGl0IGlzCkBAIC0xMDgwMSw4ICsxMDgwNyw5IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoK IAkJCQkJCSAqLwogCQkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJs ZSk7CiAJCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gbWFrZVJhbmdlVmFyKE5VTEwsICQx LCBAMSk7Ci0JCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMjsKLQkJCQkJCSQkLT5wdWJ0 YWJsZS0+d2hlcmVDbGF1c2UgPSAkMzsKKwkJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gJDI7 CisJCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKKwkJCQkJCSQkLT5wdWJ0YWJsZS0+ d2hlcmVDbGF1c2UgPSAkNDsKIAkJCQkJfQogCQkJCQllbHNlCiAJCQkJCXsKQEAgLTEwODEwLDI1 ICsxMDgxNywyNyBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCX0KIAkJCQkJJCQtPmxvY2F0 aW9uID0gQDE7CiAJCQkJfQotCQkJfCBDb2xJZCBpbmRpcmVjdGlvbiBvcHRfY29sdW1uX2xpc3Qg T3B0V2hlcmVDbGF1c2UKKwkJCXwgQ29sSWQgaW5kaXJlY3Rpb24gb3B0X2V4Y2VwdCBvcHRfY29s dW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGlj YXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05U SU5VQVRJT047CiAJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUp OwogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gbWFrZVJhbmdlVmFyRnJvbVF1YWxpZmll ZE5hbWUoJDEsICQyLCBAMSwgeXlzY2FubmVyKTsKLQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5z ID0gJDM7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJJCQtPnB1 YnRhYmxlLT5leGNlcHQgPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDQ7CisJ CQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKIAkJCQkJJCQtPmxvY2F0aW9uID0g QDE7CiAJCQkJfQogCQkJLyogZ3JhbW1hciBsaWtlIHRhYmxlbmFtZSAqICwgT05MWSB0YWJsZW5h bWUsIE9OTFkgKCB0YWJsZW5hbWUgKSAqLwotCQkJfCBleHRlbmRlZF9yZWxhdGlvbl9leHByIG9w dF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJfCBleHRlbmRlZF9yZWxhdGlvbl9leHBy IG9wdF9leGNlcHQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJCQkk JCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0g UFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OOwogCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9k ZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQxOwot CQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMjsKLQkJCQkJJCQtPnB1YnRhYmxlLT53aGVy ZUNsYXVzZSA9ICQzOworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9ICQyOworCQkJCQkkJC0+ cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9 ICQ0OwogCQkJCX0KIAkJCXwgQ1VSUkVOVF9TQ0hFTUEKIAkJCQl7CkBAIC0xOTY5Niw2ICsxOTcw NSwxMyBAQCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29y ZV95eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQkJCQllcnJtc2coImludmFsaWQgdGFibGUgbmFtZSIp LAogCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHB1Ym9iai0+bG9jYXRpb24pKTsKIAorCQkJaWYg KHB1Ym9iai0+cHVidGFibGUgJiYgcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ICYmCisJCQkJcHVi b2JqLT5wdWJ0YWJsZS0+Y29sdW1ucyA9PSBOVUxMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCWVycm1zZygidGFibGUgd2l0 aG91dCBjb2x1bW4gbGlzdCBjYW5ub3QgdXNlIEVYQ0VQVCBjbGF1c2UiKSwKKwkJCQkJCXBhcnNl cl9lcnJwb3NpdGlvbihwdWJvYmotPmxvY2F0aW9uKSk7CisKIAkJCWlmIChwdWJvYmotPm5hbWUp CiAJCQl7CiAJCQkJLyogY29udmVydCBpdCB0byBQdWJsaWNhdGlvblRhYmxlICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwppbmRleCBlNmRhNDAyOGQzOS4u MDI2MzM4NDY0NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv dGFibGVzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5 bmMuYwpAQCAtODIxLDEwICs4MjEsMTggQEAgY29weV9yZWFkX2RhdGEodm9pZCAqb3V0YnVmLCBp bnQgbWlucmVhZCwgaW50IG1heHJlYWQpCiAgKiBUaGlzIGZ1bmN0aW9uIGFsc28gcmV0dXJucyAo YSkgdGhlIHJlbGF0aW9uIHF1YWxpZmljYXRpb25zIHRvIGJlIHVzZWQgaW4KICAqIHRoZSBDT1BZ IGNvbW1hbmQsIGFuZCAoYikgd2hldGhlciB0aGUgcmVtb3RlIHJlbGF0aW9uIGhhcyBwdWJsaXNo ZWQgYW55CiAgKiBnZW5lcmF0ZWQgY29sdW1uLgorICoKKyAqIFdpdGggdGhlIGludHJvZHVjdGlv biBvZiB0aGUgRVhDRVBUIHF1YWxpZmllciBpbiBjb2x1bW4gbGlzdHMsIGl0IGlzIG5vdworICog cG9zc2libGUgdG8gZGVmaW5lIGEgcHVibGljYXRpb24gdGhhdCBleGNsdWRlcyBhbGwgY29sdW1u cyBvZiBhIHRhYmxlLiBXaGVuCisgKiB0aGUgY29sdW1uIGxpc3QgaXMgZmV0Y2hlZCBmcm9tIHRo ZSByZW1vdGUgc2VydmVyIGFuZCBpcyBOVUxMLCBpdCBub3JtYWxseQorICogaW5kaWNhdGVzIHRo YXQgYWxsIGNvbHVtbnMgYXJlIGluY2x1ZGVkLiBUbyBkaXN0aW5ndWlzaCB0aGlzIGZyb20gdGhl IGNhc2UKKyAqIHdoZXJlIGFsbCBjb2x1bW5zIGFyZSBleHBsaWNpdGx5IGV4Y2x1ZGVkLCB0aGUg J2FsbF9jb2xzX2V4Y2x1ZGVkJyBmbGFnIGhhcworICogYmVlbiBpbnRyb2R1Y2VkLgogICovCiBz dGF0aWMgdm9pZAogZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAq cmVsbmFtZSwgTG9naWNhbFJlcFJlbGF0aW9uICpscmVsLAotCQkJCQkJTGlzdCAqKnF1YWwsIGJv b2wgKmdlbmNvbF9wdWJsaXNoZWQpCisJCQkJCQlMaXN0ICoqcXVhbCwgYm9vbCAqZ2VuY29sX3B1 Ymxpc2hlZCwKKwkJCQkJCWJvb2wgKmFsbF9jb2xzX2V4Y2x1ZGVkKQogewogCVdhbFJjdkV4ZWNS ZXN1bHQgKnJlczsKIAlTdHJpbmdJbmZvRGF0YSBjbWQ7CkBAIC04MzgsNiArODQ2LDkgQEAgZmV0 Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwgTG9naWNh bFJlcFJlbGF0aW9uICpscmVsLAogCUJpdG1hcHNldCAgKmluY2x1ZGVkX2NvbHMgPSBOVUxMOwog CWludAkJCXNlcnZlcl92ZXJzaW9uID0gd2FscmN2X3NlcnZlcl92ZXJzaW9uKExvZ1JlcFdvcmtl cldhbFJjdkNvbm4pOwogCisJQXNzZXJ0KCpnZW5jb2xfcHVibGlzaGVkID09IGZhbHNlKTsKKwlB c3NlcnQoKmFsbF9jb2xzX2V4Y2x1ZGVkID09IGZhbHNlKTsKKwogCWxyZWwtPm5zcG5hbWUgPSBu c3BuYW1lOwogCWxyZWwtPnJlbG5hbWUgPSByZWxuYW1lOwogCkBAIC04ODgsNyArODk5LDcgQEAg ZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwgTG9n aWNhbFJlcFJlbGF0aW9uICpscmVsLAogCXsKIAkJV2FsUmN2RXhlY1Jlc3VsdCAqcHVicmVzOwog CQlUdXBsZVRhYmxlU2xvdCAqdHNsb3Q7Ci0JCU9pZAkJCWF0dHJzUm93W10gPSB7SU5UMlZFQ1RP Uk9JRH07CisJCU9pZAkJCWF0dHJzUm93W10gPSB7SU5UMlZFQ1RPUk9JRCwgQk9PTE9JRH07CiAK IAkJLyogQnVpbGQgdGhlIHB1Yl9uYW1lcyBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLiAqLwogCQlw dWJfbmFtZXMgPSBtYWtlU3RyaW5nSW5mbygpOwpAQCAtOTAyLDcgKzkxMywxNyBAQCBmZXRjaF9y ZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVw UmVsYXRpb24gKmxyZWwsCiAJCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwKIAkJCQkJCSAiU0VMRUNU IERJU1RJTkNUIgogCQkJCQkJICIgIChDQVNFIFdIRU4gKGFycmF5X2xlbmd0aChncHQuYXR0cnMs IDEpID0gYy5yZWxuYXR0cykiCi0JCQkJCQkgIiAgIFRIRU4gTlVMTCBFTFNFIGdwdC5hdHRycyBF TkQpIgorCQkJCQkJICIgICBUSEVOIE5VTEwgRUxTRSBncHQuYXR0cnMgRU5EKSIpOworCisJCS8q CisJCSAqIFdoZW4gcHVibGljYXRpb24gaXMgY3JlYXRlZCB3aXRoIEVYQ0VQVCAoY29sdW1uLWxp c3QpIGFuZCBhbGwKKwkJICogY29sdW1ucyBhcmUgc3BlY2lmaWVkLCBncHQuYXR0cnMgd2lsbCBi ZSBOVUxMIGFuZCBubyBjb2x1bW5zIGFyZQorCQkgKiBwdWJsaXNoZWQgaW4gdGhpcyBjYXNlLgor CQkgKi8KKwkJaWYgKHNlcnZlcl92ZXJzaW9uID49IDE5MDAwMCkKKwkJCWFwcGVuZFN0cmluZ0lu Zm8oJmNtZCwgIiwgZ3B0LmF0dHJzIElTIE5VTEwgQU5EIGMucmVsbmF0dHMgPiAwIik7CisKKwkJ YXBwZW5kU3RyaW5nSW5mbygmY21kLAogCQkJCQkJICIgIEZST00gcGdfcHVibGljYXRpb24gcCwi CiAJCQkJCQkgIiAgTEFURVJBTCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKHAucHVibmFtZSkg Z3B0LCIKIAkJCQkJCSAiICBwZ19jbGFzcyBjIgpAQCAtOTEyLDcgKzkzMyw3IEBAIGZldGNoX3Jl bW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBS ZWxhdGlvbiAqbHJlbCwKIAkJCQkJCSBwdWJfbmFtZXMtPmRhdGEpOwogCiAJCXB1YnJlcyA9IHdh bHJjdl9leGVjKExvZ1JlcFdvcmtlcldhbFJjdkNvbm4sIGNtZC5kYXRhLAotCQkJCQkJCSBsZW5n dGhvZihhdHRyc1JvdyksIGF0dHJzUm93KTsKKwkJCQkJCQkgc2VydmVyX3ZlcnNpb24gPj0gMTkw MDAwID8gMiA6IDEsIGF0dHJzUm93KTsKIAogCQlpZiAocHVicmVzLT5zdGF0dXMgIT0gV0FMUkNW X09LX1RVUExFUykKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC05NTksNiArOTgwLDkgQEAgZmV0Y2hf cmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwgTG9naWNhbFJl cFJlbGF0aW9uICpscmVsLAogCQkJCQlpbmNsdWRlZF9jb2xzID0gYm1zX2FkZF9tZW1iZXIoaW5j bHVkZWRfY29scywgZWxlbXNbbmF0dF0pOwogCQkJfQogCisJCQlpZiAoc2VydmVyX3ZlcnNpb24g Pj0gMTkwMDAwKQorCQkJCSphbGxfY29sc19leGNsdWRlZCA9IERhdHVtR2V0Qm9vbChzbG90X2dl dGF0dHIodHNsb3QsIDIsICZpc251bGwpKTsKKwogCQkJRXhlY0NsZWFyVHVwbGUodHNsb3QpOwog CQl9CiAJCUV4ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3QodHNsb3QpOwpAQCAtMTAyMSw3ICsx MDQ1LDggQEAgZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVs bmFtZSwgTG9naWNhbFJlcFJlbGF0aW9uICpscmVsLAogCQlBc3NlcnQoIWlzbnVsbCk7CiAKIAkJ LyogSWYgdGhlIGNvbHVtbiBpcyBub3QgaW4gdGhlIGNvbHVtbiBsaXN0LCBza2lwIGl0LiAqLwot CQlpZiAoaW5jbHVkZWRfY29scyAhPSBOVUxMICYmICFibXNfaXNfbWVtYmVyKGF0dG51bSwgaW5j bHVkZWRfY29scykpCisJCWlmICgqYWxsX2NvbHNfZXhjbHVkZWQgfHwKKwkJCShpbmNsdWRlZF9j b2xzICE9IE5VTEwgJiYgIWJtc19pc19tZW1iZXIoYXR0bnVtLCBpbmNsdWRlZF9jb2xzKSkpCiAJ CXsKIAkJCUV4ZWNDbGVhclR1cGxlKHNsb3QpOwogCQkJY29udGludWU7CkBAIC0xMTUzLDExICsx MTc4LDE1IEBAIGNvcHlfdGFibGUoUmVsYXRpb24gcmVsKQogCVBhcnNlU3RhdGUgKnBzdGF0ZTsK IAlMaXN0CSAgICpvcHRpb25zID0gTklMOwogCWJvb2wJCWdlbmNvbF9wdWJsaXNoZWQgPSBmYWxz ZTsKKwlib29sCQlhbGxfY29sc19leGNsdWRlZCA9IGZhbHNlOwogCiAJLyogR2V0IHRoZSBwdWJs aXNoZXIgcmVsYXRpb24gaW5mby4gKi8KIAlmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhnZXRfbmFt ZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSksCiAJCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSwgJmxyZWwsICZxdWFsLAotCQkJCQkJCSZnZW5jb2xfcHVibGlz aGVkKTsKKwkJCQkJCQkmZ2VuY29sX3B1Ymxpc2hlZCwgJmFsbF9jb2xzX2V4Y2x1ZGVkKTsKKwor CWlmIChhbGxfY29sc19leGNsdWRlZCkKKwkJcmV0dXJuOwogCiAJLyogUHV0IHRoZSByZWxhdGlv biBpbnRvIHJlbG1hcC4gKi8KIAlsb2dpY2FscmVwX3JlbG1hcF91cGRhdGUoJmxyZWwpOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggYjlkNjc2ZDFm MTguLjFjZjkwZjE4NzVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291 dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bn b3V0cHV0LmMKQEAgLTE4NSw2ICsxODUsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVsYXRpb25TeW5j RW50cnkKIAkgKiByb3cgZmlsdGVyIGV4cHJlc3Npb25zLCBjb2x1bW4gbGlzdCwgZXRjLgogCSAq LwogCU1lbW9yeUNvbnRleHQgZW50cnlfY3h0OworCisJLyoKKwkgKiBJbmRpY2F0ZXMgd2hldGhl ciBubyBjb2x1bW5zIGFyZSBwdWJsaXNoZWQgZm9yIGEgZ2l2ZW4gcmVsYXRpb24uIFdpdGgKKwkg KiB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZSBFWENFUFQgcXVhbGlmaWVyIGluIGNvbHVtbiBsaXN0 cywgaXQgaXMgbm93CisJICogcG9zc2libGUgdG8gZGVmaW5lIGEgcHVibGljYXRpb24gdGhhdCBl eGNsdWRlcyBhbGwgY29sdW1ucyBvZiBhIHRhYmxlLgorCSAqIEhvd2V2ZXIsIHRoZSAnY29sdW1u cycgYXR0cmlidXRlIGNhbm5vdCByZXByZXNlbnQgdGhpcyBjYXNlLCBzaW5jZSBhCisJICogTlVM TCB2YWx1ZSBpbXBsaWVzIHRoYXQgYWxsIGNvbHVtbnMgYXJlIHB1Ymxpc2hlZC4gVG8gZGlzdGlu Z3Vpc2ggdGhpcworCSAqIHNjZW5hcmlvLCB0aGUgJ2FsbF9jb2xzX2V4Y2x1ZGVkJyBmbGFnIGlz IGludHJvZHVjZWQuCisJICovCisJYm9vbAkJYWxsX2NvbHNfZXhjbHVkZWQ7CiB9IFJlbGF0aW9u U3luY0VudHJ5OwogCiAvKgpAQCAtMTA2OCwxMiArMTA3OCwyMSBAQCBjaGVja19hbmRfaW5pdF9n ZW5jb2woUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJICovCiAJZm9y ZWFjaF9wdHIoUHVibGljYXRpb24sIHB1YiwgcHVibGljYXRpb25zKQogCXsKKwkJYm9vbAkJaGFz X2NvbHVtbl9saXN0ID0gZmFsc2U7CisJCWJvb2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisK KwkJaGFzX2NvbHVtbl9saXN0ID0gY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwKKwkJ CQkJCQkJCQkJCQkgIGVudHJ5LT5wdWJsaXNoX2FzX3JlbGlkLAorCQkJCQkJCQkJCQkJCSAgTlVM TCwgTlVMTCwKKwkJCQkJCQkJCQkJCQkgICZleGNlcHRfY29sdW1ucyk7CisKIAkJLyoKIAkJICog VGhlIGNvbHVtbiBsaXN0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUKIAkJICogJ3B1Ymxpc2hf Z2VuZXJhdGVkX2NvbHVtbnMnIHBhcmFtZXRlci4gVGhvc2Ugd2lsbCBiZSBjaGVja2VkIGxhdGVy LAotCQkgKiBzZWUgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdC4KKwkJICogc2VlIHBnb3V0cHV0 X2NvbHVtbl9saXN0X2luaXQuIEJ1dCB3aGVuIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkCisJ CSAqIHdpdGggRVhDRVBULCBpdCBzaG91bGQgYmUgY2hlY2tlZC4KIAkJICovCi0JCWlmIChjaGVj a19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLCBlbnRyeS0+cHVibGlzaF9hc19yZWxpZCwgTlVM TCwgTlVMTCkpCisJCWlmIChoYXNfY29sdW1uX2xpc3QgJiYgIWV4Y2VwdF9jb2x1bW5zKQogCQkJ Y29udGludWU7CiAKIAkJaWYgKGZpcnN0KQpAQCAtMTEyMiwxOSArMTE0MSw0MSBAQCBwZ291dHB1 dF9jb2x1bW5fbGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25z LAogCXsKIAkJUHVibGljYXRpb24gKnB1YiA9IGxmaXJzdChsYyk7CiAJCUJpdG1hcHNldCAgKmNv bHMgPSBOVUxMOworCQlib29sCQlleGNlcHRfY29sdW1ucyA9IGZhbHNlOworCQlib29sCQlhbGxf Y29sc19leGNsdWRlZCA9IGZhbHNlOwogCiAJCS8qIFJldHJpZXZlIHRoZSBiaXRtYXAgb2YgY29s dW1ucyBmb3IgYSBjb2x1bW4gbGlzdCBwdWJsaWNhdGlvbi4gKi8KIAkJZm91bmRfcHViX2NvbGxp c3QgfD0gY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwKIAkJCQkJCQkJCQkJCQkJIGVu dHJ5LT5wdWJsaXNoX2FzX3JlbGlkLAotCQkJCQkJCQkJCQkJCQkgZW50cnktPmVudHJ5X2N4dCwg JmNvbHMpOworCQkJCQkJCQkJCQkJCQkgZW50cnktPmVudHJ5X2N4dCwgJmNvbHMsCisJCQkJCQkJ CQkJCQkJCSAmZXhjZXB0X2NvbHVtbnMpOworCisJCS8qCisJCSAqIElmIGNvbHVtbiBsaXN0IGlz IHNwZWNpZmllZCB3aXRoIEVYQ0VQVCByZXRyaWV2ZSBiaXRtYXAgb2YgY29sdW1ucworCQkgKiB3 aGljaCBhcmUgbm90IHBhcnQgb2YgdGhpcyBjb2x1bW4gbGlzdC4KKwkJICovCisJCWlmIChleGNl cHRfY29sdW1ucykKKwkJeworCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0 U3dpdGNoVG8oZW50cnktPmVudHJ5X2N4dCk7CisKKwkJCWNvbHMgPSBwdWJfZm9ybV9jb2xzX21h cChyZWxhdGlvbiwKKwkJCQkJCQkJCSBlbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUsIGNvbHMp OworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkJCWlmICghY29scykKKwkJ CQlhbGxfY29sc19leGNsdWRlZCA9IHRydWU7CisJCX0KIAogCQkvKgotCQkgKiBGb3Igbm9uLWNv bHVtbiBsaXN0IHB1YmxpY2F0aW9ucyDigJQgZS5nLiBUQUJMRSAod2l0aG91dCBhIGNvbHVtbgot CQkgKiBsaXN0KSwgQUxMIFRBQkxFUywgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEsIHdlIGNvbnNp ZGVyIGFsbCBjb2x1bW5zCi0JCSAqIG9mIHRoZSB0YWJsZSAoaW5jbHVkaW5nIGdlbmVyYXRlZCBj b2x1bW5zIHdoZW4KKwkJICogSWYgJ2NvbHMnIGlzIG51bGwsIGl0IGluZGljYXRlcyB0aGF0IHRo ZSBwdWJsaWNhdGlvbiBpcyBlaXRoZXIgYQorCQkgKiBub24tY29sdW1uIGxpc3QgcHVibGljYXRp b24gb3Igb25lIHdoZXJlIGFsbCBjb2x1bW5zIGFyZSBleGNsdWRlZC4KKwkJICogV2hlbiAnYWxs X2NvbHNfZXhjbHVkZWQnIGlzIHRydWUsIGl0IGV4cGxpY2l0bHkgbWVhbnMgYWxsIGNvbHVtbnMK KwkJICogaGF2ZSBiZWVuIGV4Y2x1ZGVkLiBGb3Igbm9uLWNvbHVtbiBsaXN0IHB1YmxpY2F0aW9u cyDigJQgZS5nLiBUQUJMRQorCQkgKiAod2l0aG91dCBhIGNvbHVtbiBsaXN0KSwgQUxMIFRBQkxF Uywgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEsIHdlCisJCSAqIGNvbnNpZGVyIGFsbCBjb2x1bW5z IG9mIHRoZSB0YWJsZSAoaW5jbHVkaW5nIGdlbmVyYXRlZCBjb2x1bW5zIHdoZW4KIAkJICogJ3B1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIHBhcmFtZXRlciBpcyB0cnVlKS4KIAkJICovCi0JCWlm ICghY29scykKKwkJaWYgKCFhbGxfY29sc19leGNsdWRlZCAmJiAhY29scykKIAkJewogCQkJLyoK IAkJCSAqIENhY2hlIHRoZSB0YWJsZSBjb2x1bW5zIGZvciB0aGUgZmlyc3QgcHVibGljYXRpb24g d2l0aCBubwpAQCAtMTE0Niw3ICsxMTg3LDcgQEAgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdChQ R091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAkJCQlNZW1vcnlDb250ZXh0 IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlbnRyeS0+ZW50cnlfY3h0KTsKIAogCQkJ CXJlbGNvbHMgPSBwdWJfZm9ybV9jb2xzX21hcChyZWxhdGlvbiwKLQkJCQkJCQkJCQkJZW50cnkt PmluY2x1ZGVfZ2VuY29sc190eXBlKTsKKwkJCQkJCQkJCQkJZW50cnktPmluY2x1ZGVfZ2VuY29s c190eXBlLCBOVUxMKTsKIAkJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIAkJCX0K IApAQCAtMTE1Niw5ICsxMTk3LDExIEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQoUEdPdXRw dXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJCWlmIChmaXJzdCkKIAkJewogCQkJ ZW50cnktPmNvbHVtbnMgPSBjb2xzOworCQkJZW50cnktPmFsbF9jb2xzX2V4Y2x1ZGVkID0gYWxs X2NvbHNfZXhjbHVkZWQ7CiAJCQlmaXJzdCA9IGZhbHNlOwogCQl9Ci0JCWVsc2UgaWYgKCFibXNf ZXF1YWwoZW50cnktPmNvbHVtbnMsIGNvbHMpKQorCQllbHNlIGlmICgoZW50cnktPmFsbF9jb2xz X2V4Y2x1ZGVkICE9IGFsbF9jb2xzX2V4Y2x1ZGVkKSB8fAorCQkJCSAhYm1zX2VxdWFsKGVudHJ5 LT5jb2x1bW5zLCBjb2xzKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCWVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQllcnJtc2coImNhbm5vdCB1c2UgZGlmZmVy ZW50IGNvbHVtbiBsaXN0cyBmb3IgdGFibGUgXCIlcy4lc1wiIGluIGRpZmZlcmVudCBwdWJsaWNh dGlvbnMiLApAQCAtMTQ4Miw2ICsxNTI1LDEzIEBAIHBnb3V0cHV0X2NoYW5nZShMb2dpY2FsRGVj b2RpbmdDb250ZXh0ICpjdHgsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAogCXJlbGVudHJ5ID0g Z2V0X3JlbF9zeW5jX2VudHJ5KGRhdGEsIHJlbGF0aW9uKTsKIAorCS8qCisJICogSWYgYWxsIGNv bHVtbnMgb2YgYSB0YWJsZSBhcmUgcHJlc2VudCBpbiBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0 aAorCSAqIEVYQ0VQVCwgc2tpcCBwdWJsaXNoaW5nIHRoZSBjaGFuZ2VzLgorCSAqLworCWlmIChy ZWxlbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQpCisJCXJldHVybjsKKwogCS8qIEZpcnN0IGNoZWNr IHRoZSB0YWJsZSBmaWx0ZXIgKi8KIAlzd2l0Y2ggKGFjdGlvbikKIAl7CkBAIC0yMDU5LDYgKzIx MDksNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiBy ZWxhdGlvbikKIAkJZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQgPSBJbnZhbGlkT2lkOwogCQllbnRy eS0+Y29sdW1ucyA9IE5VTEw7CiAJCWVudHJ5LT5hdHRybWFwID0gTlVMTDsKKwkJZW50cnktPmFs bF9jb2xzX2V4Y2x1ZGVkID0gZmFsc2U7CiAJfQogCiAJLyogVmFsaWRhdGUgdGhlIGVudHJ5ICov CkBAIC0yMTA4LDYgKzIxNTksNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpk YXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1YmFjdGlvbnMucHVidXBkYXRlID0g ZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0ZSA9IGZhbHNlOwogCQllbnRyeS0+ cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSA9IGZhbHNlOworCQllbnRyeS0+YWxsX2NvbHNfZXhjbHVk ZWQgPSBmYWxzZTsKIAogCQkvKgogCQkgKiBUdXBsZSBzbG90cyBjbGVhbnVwcy4gKFdpbGwgYmUg cmVidWlsdCBsYXRlciBpZiBuZWVkZWQpLgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggNWI4Y2IyNzcwMjYuLjgy YWY5MWIwYmNmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQ5MTksMjQgKzQ5MTksNyBAQCBnZXRQdWJsaWNh dGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFi bGVzKQogCQlpZiAodGJpbmZvID09IE5VTEwpCiAJCQljb250aW51ZTsKIAotCQkvKiBPSywgbWFr ZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0aW9uc2hpcCAqLwotCQlpZiAoc3RyY21w KHByZXhjZXB0LCAiZiIpID09IDApCi0JCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19Q VUJMSUNBVElPTl9SRUw7Ci0JCWVsc2UKLQkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERP X1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw7Ci0KLQkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJs ZW9pZCA9Ci0JCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKLQkJcHVi cmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lk KSk7Ci0JCUFzc2lnbkR1bXBJZCgmcHVicmluZm9bal0uZG9iaik7Ci0JCXB1YnJpbmZvW2pdLmRv YmoubmFtZXNwYWNlID0gdGJpbmZvLT5kb2JqLm5hbWVzcGFjZTsKLQkJcHVicmluZm9bal0uZG9i ai5uYW1lID0gdGJpbmZvLT5kb2JqLm5hbWU7Ci0JCXB1YnJpbmZvW2pdLnB1YmxpY2F0aW9uID0g cHViaW5mbzsKLQkJcHVicmluZm9bal0ucHVidGFibGUgPSB0YmluZm87Ci0JCWlmIChQUWdldGlz bnVsbChyZXMsIGksIGlfcHJyZWxxdWFsKSkKLQkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBO VUxMOwotCQllbHNlCi0JCQlwdWJyaW5mb1tqXS5wdWJyZWxxdWFsID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3BycmVscXVhbCkpOworCQlwdWJyaW5mb1tqXS5wdWJleGNlcHQgPSAo c3RyY21wKHByZXhjZXB0LCAidCIpID09IDApOwogCiAJCWlmICghUFFnZXRpc251bGwocmVzLCBp LCBpX3ByYXR0cnMpKQogCQl7CkBAIC00OTYyLDEwICs0OTQ1LDI5IEBAIGdldFB1YmxpY2F0aW9u VGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMp CiAJCWVsc2UKIAkJCXB1YnJpbmZvW2pdLnB1YnJhdHRycyA9IE5VTEw7CiAKKwkJLyogT0ssIG1h a2UgYSBEdW1wYWJsZU9iamVjdCBmb3IgdGhpcyByZWxhdGlvbnNoaXAgKi8KKwkJaWYgKHB1YnJp bmZvW2pdLnB1YmV4Y2VwdCAmJiAhcHVicmluZm9bal0ucHVicmF0dHJzKQorCQkJcHVicmluZm9b al0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKKwkJZWxzZQorCQkJ cHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOworCisJCXB1YnJp bmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3RhYmxlb2lkKSk7CisJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBR Z2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnB1YnJpbmZvW2pdLmRv YmopOworCQlwdWJyaW5mb1tqXS5kb2JqLm5hbWVzcGFjZSA9IHRiaW5mby0+ZG9iai5uYW1lc3Bh Y2U7CisJCXB1YnJpbmZvW2pdLmRvYmoubmFtZSA9IHRiaW5mby0+ZG9iai5uYW1lOworCQlwdWJy aW5mb1tqXS5wdWJsaWNhdGlvbiA9IHB1YmluZm87CisJCXB1YnJpbmZvW2pdLnB1YnRhYmxlID0g dGJpbmZvOworCQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3BycmVscXVhbCkpCisJCQlwdWJy aW5mb1tqXS5wdWJyZWxxdWFsID0gTlVMTDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0ucHVicmVs cXVhbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wcnJlbHF1YWwpKTsKKwogCQkv KiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVQ dWJsaWNhdGlvbk9iamVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBmb3V0KTsKIAotCQlpZiAoc3Ry Y21wKHByZXhjZXB0LCAidCIpID09IDApCisJCWlmIChwdWJyaW5mb1tqXS5wdWJleGNlcHQgJiYg IXB1YnJpbmZvW2pdLnB1YnJhdHRycykKIAkJCXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQoJmV4Y2Vw dGluZm8sICZwdWJyaW5mb1tqXSk7CiAKIAkJaisrOwpAQCAtNTA0NSw3ICs1MDQ3LDEyIEBAIGR1 bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5m byAqcHVicmluZm8pCiAJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUodGJpbmZvKSk7CiAKIAlp ZiAocHVicmluZm8tPnB1YnJhdHRycykKKwl7CisJCWlmIChwdWJyaW5mby0+cHViZXhjZXB0KQor CQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRVhDRVBUIik7CisKIAkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIgKCVzKSIsIHB1YnJpbmZvLT5wdWJyYXR0cnMpOworCX0KIAogCWlm IChwdWJyaW5mby0+cHVicmVscXVhbCkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA3OWMyYmRkNGM4Mi4u Y2Q4NmU3ZWQxNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNjg5LDYgKzY4OSw3IEBAIHR5cGVkZWYgc3Ry dWN0IF9QdWJsaWNhdGlvblJlbEluZm8KIAlUYWJsZUluZm8gICpwdWJ0YWJsZTsKIAljaGFyCSAg ICpwdWJyZWxxdWFsOwogCWNoYXIJICAgKnB1YnJhdHRyczsKKwlib29sCQlwdWJleGNlcHQ7CiB9 IFB1YmxpY2F0aW9uUmVsSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggMjc3NDU0OGEyYzguLjlmNWQ1 YjA0ZmNhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwpAQCAtMTU2MCw2ICsxNTYwLDkxIEBAIGRlc2NyaWJlVGFibGVEZXRh aWxzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKQog CXJldHVybiB0cnVlOwogfQogCisvKgorICogQWRkIGEgZm9vdGVyIHRvIGEgcHVibGljYXRpb24g ZGVzY3JpcHRpb24gb3IgYSB0YWJsZSBkZXNjcmlwdGlvbi4KKyAqCisgKiAnaXNfcHViX2Rlc2Mn IC0gdHJ1ZSBmb3IgYSBwdWIgZGVzYzsgZmFsc2UgZm9yIGEgdGFibGUgZGVzYworICogJ3B1Yl9z Y2hlbWFzJyAtIHRydWUgaWYgdGhlIHB1Yl9kZXNjIG9ubHkgc2hvd3Mgc2NoZW1hcywgb3RoZXJ3 aXNlIGZhbHNlCisgKi8KK3N0YXRpYyBib29sCithZGRGb290ZXJUb1B1YmxpY2F0aW9uT3JUYWJs ZURlc2MoUFFFeHBCdWZmZXIgYnVmLAorCQkJCQkJCQkgIHByaW50VGFibGVDb250ZW50ICpjb25z dCBjb250LAorCQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZvb3Rlcm1zZywKKwkJCQkJCQkJICBib29s IGlzX3B1Yl9kZXNjLCBib29sIHB1Yl9zY2hlbWFzKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwlp bnQJCQljb3VudDsKKwlpbnQJCQljb2wgPSBpc19wdWJfZGVzYyA/IDEgOiAwOworCisJcmVzID0g UFNRTGV4ZWMoYnVmLT5kYXRhKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJY291 bnQgPSBQUW50dXBsZXMocmVzKTsKKwlpZiAoY291bnQgPiAwKQorCQlwcmludFRhYmxlQWRkRm9v dGVyKGNvbnQsIGZvb3Rlcm1zZyk7CisKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJICogRGVzY3JpcHRpb24gY29sdW1u cyBmb3I6CisJICoKKwkgKiBQVUIgICAgICBUQkwKKwkgKiBbMF0gICAgICAtICAgICAgOiBzY2hl bWEgbmFtZSAobnNwbmFtZSkKKwkgKiBbY29sXSAgICAtICAgICAgOiB0YWJsZSBuYW1lIChyZWxu YW1lKQorCSAqIC0gICAgICAgIFtjb2xdICA6IHB1YmxpY2F0aW9uIG5hbWUgKHB1Ym5hbWUpCisJ ICogW2NvbCsxXSAgW2NvbCsxXTogcm93IGZpbHRlciBleHByZXNzaW9uIChwcnF1YWwpLCBtYXkg YmUgTlVMTAorCSAqIFtjb2wrMl0gIFtjb2wrMl06IGNvbHVtbiBsaXN0IChjb21tYS1zZXBhcmF0 ZWQpLCBtYXkgYmUgTlVMTAorCSAqIFtjb2wrM10gIFtjb2wrM106IGV4Y2VwdCBmbGFnICgidCIg aWYgRVhDRVBULCBlbHNlICJmIikKKwkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJICovCisJZm9yIChpbnQgaSA9IDA7IGkg PCBjb3VudDsgaSsrKQorCXsKKwkJcHJpbnRmUFFFeHBCdWZmZXIoYnVmLCAiICAgICIpOyAvKiBp bmRlbnQgKi8KKworCQkvKgorCQkgKiBGb290ZXIgZW50cmllcyBmb3IgYSBwdWJsaWNhdGlvbiBk ZXNjcmlwdGlvbiBvciBhIHRhYmxlCisJCSAqIGRlc2NyaXB0aW9uCisJCSAqLworCQlpZiAoaXNf cHViX2Rlc2MpCisJCXsKKwkJCWlmIChwdWJfc2NoZW1hcykKKwkJCXsKKwkJCQkvKiBTY2hlbWFz IG9mIHRoZSBwdWJsaWNhdGlvbi4uLiAqLworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIlwi JXNcIiIsIFBRZ2V0dmFsdWUocmVzLCBpLCAwKSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJ LyogVGFibGVzIG9mIHRoZSBwdWJsaWNhdGlvbi4uLiAqLworCQkJCWFwcGVuZFBRRXhwQnVmZmVy KGJ1ZiwgIlwiJXMuJXNcIiIsIFBRZ2V0dmFsdWUocmVzLCBpLCAwKSwKKwkJCQkJCQkJICBQUWdl dHZhbHVlKHJlcywgaSwgY29sKSk7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBQdWJs aWNhdGlvbnMgb2YgdGhlIHRhYmxlLi4uICovCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICJc IiVzXCIiLCBQUWdldHZhbHVlKHJlcywgaSwgY29sKSk7CisJCX0KKworCQkvKiBDb21tb24gZm9v dGVyIG91dHB1dCBmb3IgY29sdW1uIGxpc3QgYW5kL29yIHJvdyBmaWx0ZXIgKi8KKwkJaWYgKCFw dWJfc2NoZW1hcykKKwkJeworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGNvbCArIDIpKQor CQkJeworCQkJCWlmIChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGNvbCArIDMpLCAidCIpID09 IDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiBFWENFUFQiKTsKKwkJCQlhcHBlbmRQ UUV4cEJ1ZmZlcihidWYsICIgKCVzKSIsIFBRZ2V0dmFsdWUocmVzLCBpLCBjb2wgKyAyKSk7CisJ CQl9CisKKwkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBjb2wgKyAxKSkKKwkJCQlhcHBlbmRQ UUV4cEJ1ZmZlcihidWYsICIgV0hFUkUgJXMiLCBQUWdldHZhbHVlKHJlcywgaSwgY29sICsgMSkp OworCQl9CisKKwkJcHJpbnRUYWJsZUFkZEZvb3Rlcihjb250LCBidWYtPmRhdGEpOworCX0KKwor CVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwogLyoKICAqIGRlc2NyaWJlT25lVGFi bGVEZXRhaWxzIChmb3IgXGQpCiAgKgpAQCAtMzAxOSwxNiArMzEwNCwyNyBAQCBkZXNjcmliZU9u ZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkvKiBwcmludCBhbnkgcHVi bGljYXRpb25zICovCiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKIAkJewotCQkJaWYg KHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAw KQogCQkJewogCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisKKwkJCQkvKgorCQkJCSAqIEdl dCBhbGwgcHVibGljYXRpb25zIGZvciB0aGUgc2NoZW1hIHRoYXQgdGhpcyByZWxhdGlvbiBpcwor CQkJCSAqIHBhcnQgb2YKKwkJCQkgKi8KIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKIAkJ CQkJCQkJICAiICAgICAsIE5VTExcbiIKIAkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJ CQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0 aW9uIHBcbiIKIAkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25f bmFtZXNwYWNlIHBuIE9OIHAub2lkID0gcG4ucG5wdWJpZFxuIgogCQkJCQkJCQkgICIgICAgIEpP SU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwYyBPTiBwYy5yZWxuYW1lc3BhY2UgPSBwbi5wbm5zcGlk XG4iCiAJCQkJCQkJCSAgIldIRVJFIHBjLm9pZCA9JyVzJyBhbmQgcGdfY2F0YWxvZy5wZ19yZWxh dGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCisJCQkJLyoKKwkJCQkgKiBHZXQgYWxsIHB1 YmxpY2F0aW9ucyBmb3IgdGhpcyByZWxhdGlvbiBjcmVhdGVkIHVzaW5nIEZPUgorCQkJCSAqIFRB QkxFCisJCQkJICovCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJu YW1lXG4iCiAJCQkJCQkJCSAgIiAgICAgLCBwZ19nZXRfZXhwcihwci5wcnF1YWwsIGMub2lkKVxu IgpAQCAtMzAzOCwzNSArMzEzNCw2NyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBj aGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkgICIgICAgICAgICAgICAgICAgcGdfY2F0YWxvZy5w Z19hdHRyaWJ1dGVcbiIKIAkJCQkJCQkJICAiICAgICAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIu cHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRyc1tzXSlcbiIKIAkJCQkJCQkJICAiICAgICAgICBF TFNFIE5VTEwgRU5EKSAiCisJCQkJCQkJCSAgIgkJLCBwcmV4Y2VwdCAiCiAJCQkJCQkJCSAgIkZS T00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCiAJCQkJCQkJCSAgIgkJSk9JTiBwZ19j YXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKIAkJ CQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVs aWRcbiIKLQkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIsCi0JCQkJCQkJCSAg b2lkLCBvaWQsIG9pZCk7Ci0KLQkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0JCQkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7CisJ CQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMnICIKKwkJCQkJCQkJICAiQU5ECXAucHVi YWxsdGFibGVzID0gZmFsc2VcbiIKKwkJCQkJCQkJICAiQU5EICBjLnJlbG5hbWVzcGFjZSBOT1Qg SU4gKFxuICIKKwkJCQkJCQkJICAiIAlTRUxFQ1QgcG5uc3BpZCBGUk9NXG4iCisJCQkJCQkJCSAg IiAJcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UpXG4iCiAKLQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAorCQkJCS8qCisJCQkJICogR2V0IGFsbCBGT1IgQUxMIFRBQkxFUyBw dWJsaWNhdGlvbnMgdGhhdCBpbmNsdWRlIHRoaXMKKwkJCQkgKiByZWxhdGlvbgorCQkJCSAqLwog CQkJCQkJCQkgICJVTklPTlxuIgogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgogCQkJCQkJ CQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICIJCSwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwg TlVMTFxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgot CQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlv bl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIiwKLQkJCQkJCQkJICBvaWQpOwotCi0JCQkJaWYgKHBz ZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJ CQkJCQkJICAiICAgICBBTkQgTk9UIEVYSVNUUyAoXG4iCi0JCQkJCQkJCQkgICIJCVNFTEVDVCAx XG4iCi0JCQkJCQkJCQkgICIJCUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJc biIKLQkJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCi0JCQkJCQkJ CQkgICIJCU9OIHByLnBycmVsaWQgPSBwYy5vaWRcbiIKLQkJCQkJCQkJCSAgIgkJV0hFUkUgcHIu cHJyZWxpZCA9ICclcycgQU5EIHByLnBycHViaWQgPSBwLm9pZClcbiIsCi0JCQkJCQkJCQkgIG9p ZCk7Ci0KLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKKwkJ CQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25f aXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJCQkJCQkJICAiICAgICBBTkQgTk9UIEVYSVNUUyAo XG4iCisJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKKwkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFs b2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9n LnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgor CQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5v aWQpXG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKKwkJCQkJCQkJICBvaWQsIG9pZCwgb2lk LCBvaWQsIG9pZCk7CisJCQl9CisJCQllbHNlIGlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkK KwkJCXsKKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgcHVi bmFtZVxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIgICAgICwgTlVM TFxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJ CQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4g T04gcC5vaWQgPSBwbi5wbnB1YmlkXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9n LnBnX2NsYXNzIHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKKwkJCQkJCQkJ ICAiV0hFUkUgcGMub2lkID0nJXMnIGFuZCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxp c2hhYmxlKCclcycpXG4iCisJCQkJCQkJCSAgIlVOSU9OXG4iCisJCQkJCQkJCSAgIlNFTEVDVCBw dWJuYW1lXG4iCisJCQkJCQkJCSAgIiAgICAgLCBwZ19nZXRfZXhwcihwci5wcnF1YWwsIGMub2lk KVxuIgorCQkJCQkJCQkgICIgICAgICwgKENBU0UgV0hFTiBwci5wcmF0dHJzIElTIE5PVCBOVUxM IFRIRU5cbiIKKwkJCQkJCQkJICAiICAgICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKGF0dG5hbWUs ICcsICcpXG4iCisJCQkJCQkJCSAgIiAgICAgICAgICAgRlJPTSBwZ19jYXRhbG9nLmdlbmVyYXRl X3NlcmllcygwLCBwZ19jYXRhbG9nLmFycmF5X3VwcGVyKHByLnByYXR0cnM6OnBnX2NhdGFsb2cu aW50MltdLCAxKSkgcyxcbiIKKwkJCQkJCQkJICAiICAgICAgICAgICAgICAgIHBnX2NhdGFsb2cu cGdfYXR0cmlidXRlXG4iCisJCQkJCQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHBy LnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCisJCQkJCQkJCSAgIiAgICAgICAg RUxTRSBOVUxMIEVORCkgIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRp b24gcFxuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9y ZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19j YXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldI RVJFIHByLnBycmVsaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIlVOSU9OXG4iCisJCQkJCQkJCSAg IlNFTEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAg IiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv biBwXG4iCisJCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBn X3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDE7 IiwKKwkJCQkJCQkJICBvaWQsIG9pZCwgb2lkLCBvaWQpOwogCQkJfQogCQkJZWxzZQogCQkJewpA QCAtMzA4NywzNCArMzIxNSw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIg KnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgb2lkLCBvaWQpOwogCQkJfQogCi0JCQlyZXN1bHQgPSBQ U1FMZXhlYyhidWYuZGF0YSk7Ci0JCQlpZiAoIXJlc3VsdCkKKwkJCWlmICghYWRkRm9vdGVyVG9Q dWJsaWNhdGlvbk9yVGFibGVEZXNjKCZidWYsICZjb250LCBfKCJQdWJsaWNhdGlvbnM6IiksIGZh bHNlLCBmYWxzZSkpCiAJCQkJZ290byBlcnJvcl9yZXR1cm47Ci0JCQllbHNlCi0JCQkJdHVwbGVz ID0gUFFudHVwbGVzKHJlc3VsdCk7Ci0KLQkJCWlmICh0dXBsZXMgPiAwKQotCQkJCXByaW50VGFi bGVBZGRGb290ZXIoJmNvbnQsIF8oIlB1YmxpY2F0aW9uczoiKSk7Ci0KLQkJCS8qIE1pZ2h0IGJl IGFuIGVtcHR5IHNldCAtIHRoYXQncyBvayAqLwotCQkJZm9yIChpID0gMDsgaSA8IHR1cGxlczsg aSsrKQotCQkJewotCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICIgICAgXCIlc1wiIiwKLQkJ CQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMCkpOwotCi0JCQkJLyogY29sdW1uIGxpc3Qg KGlmIGFueSkgKi8KLQkJCQlpZiAoIVBRZ2V0aXNudWxsKHJlc3VsdCwgaSwgMikpCi0JCQkJCWFw cGVuZFBRRXhwQnVmZmVyKCZidWYsICIgKCVzKSIsCi0JCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVz dWx0LCBpLCAyKSk7Ci0KLQkJCQkvKiByb3cgZmlsdGVyIChpZiBhbnkpICovCi0JCQkJaWYgKCFQ UWdldGlzbnVsbChyZXN1bHQsIGksIDEpKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAi IFdIRVJFICVzIiwKLQkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDEpKTsKLQotCQkJ CXByaW50VGFibGVBZGRGb290ZXIoJmNvbnQsIGJ1Zi5kYXRhKTsKLQkJCX0KLQkJCVBRY2xlYXIo cmVzdWx0KTsKIAkJfQogCiAJCS8qCkBAIC02NDkxLDQ5ICs2NTkzLDYgQEAgbGlzdFB1YmxpY2F0 aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCXJldHVybiB0cnVlOwogfQogCi0vKgotICogQWRk IGZvb3RlciB0byBwdWJsaWNhdGlvbiBkZXNjcmlwdGlvbi4KLSAqLwotc3RhdGljIGJvb2wKLWFk ZEZvb3RlclRvUHVibGljYXRpb25EZXNjKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgY2hhciAqZm9v dGVybXNnLAotCQkJCQkJICAgYm9vbCBhc19zY2hlbWEsIHByaW50VGFibGVDb250ZW50ICpjb25z dCBjb250KQotewotCVBHcmVzdWx0ICAgKnJlczsKLQlpbnQJCQljb3VudCA9IDA7Ci0JaW50CQkJ aSA9IDA7Ci0KLQlyZXMgPSBQU1FMZXhlYyhidWYtPmRhdGEpOwotCWlmICghcmVzKQotCQlyZXR1 cm4gZmFsc2U7Ci0JZWxzZQotCQljb3VudCA9IFBRbnR1cGxlcyhyZXMpOwotCi0JaWYgKGNvdW50 ID4gMCkKLQkJcHJpbnRUYWJsZUFkZEZvb3Rlcihjb250LCBmb290ZXJtc2cpOwotCi0JZm9yIChp ID0gMDsgaSA8IGNvdW50OyBpKyspCi0JewotCQlpZiAoYXNfc2NoZW1hKQotCQkJcHJpbnRmUFFF eHBCdWZmZXIoYnVmLCAiICAgIFwiJXNcIiIsIFBRZ2V0dmFsdWUocmVzLCBpLCAwKSk7Ci0JCWVs c2UKLQkJewotCQkJcHJpbnRmUFFFeHBCdWZmZXIoYnVmLCAiICAgIFwiJXMuJXNcIiIsIFBRZ2V0 dmFsdWUocmVzLCBpLCAwKSwKLQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzLCBpLCAxKSk7Ci0KLQkJ CWlmICghUFFnZXRpc251bGwocmVzLCBpLCAzKSkKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYs ICIgKCVzKSIsIFBRZ2V0dmFsdWUocmVzLCBpLCAzKSk7Ci0KLQkJCWlmICghUFFnZXRpc251bGwo cmVzLCBpLCAyKSkKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgV0hFUkUgJXMiLCBQUWdl dHZhbHVlKHJlcywgaSwgMikpOwotCQl9Ci0KLQkJcHJpbnRUYWJsZUFkZEZvb3Rlcihjb250LCBi dWYtPmRhdGEpOwotCX0KLQotCVBRY2xlYXIocmVzKTsKLQlyZXR1cm4gdHJ1ZTsKLX0KLQogLyoK ICAqIFxkUnArCiAgKiBEZXNjcmliZXMgcHVibGljYXRpb25zIGluY2x1ZGluZyB0aGUgY29udGVu dHMuCkBAIC02NzA0LDYgKzY3NjMsMTIgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hh ciAqcGF0dGVybikKIAkJCWVsc2UKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAogCQkJ CQkJCQkJICIsIE5VTEwsIE5VTEwiKTsKKworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAw KQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIHByZXhjZXB0Iik7CisJCQllbHNl CisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiwgTlVMTCIpOworCiAJCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCSAgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMs XG4iCiAJCQkJCQkJICAiICAgICBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuLFxuIgpAQCAtNjcx MiwxMSArNjc3Nyw4IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4p CiAJCQkJCQkJICAiICBBTkQgYy5vaWQgPSBwci5wcnJlbGlkXG4iCiAJCQkJCQkJICAiICBBTkQg cHIucHJwdWJpZCA9ICclcydcbiIsIHB1YmlkKTsKIAotCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0g MTkwMDAwKQotCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBOT1QgcHIucHJleGNl cHRcbiIpOwotCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwyIik7Ci0J CQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFs c2UsICZjb250KSkKKwkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbk9yVGFibGVEZXNjKCZi dWYsICZjb250LCBfKCJUYWJsZXM6IiksIHRydWUsIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yX3Jl dHVybjsKIAogCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQpAQCAtNjcyOCw4ICs2Nzkw LDggQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkJ ICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIG4u b2lkID0gcG4ucG5uc3BpZFxuIgogCQkJCQkJCQkgICJXSEVSRSBwbi5wbnB1YmlkID0gJyVzJ1xu IgogCQkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOwotCQkJCWlmICghYWRkRm9vdGVyVG9Q dWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiVGFibGVzIGZyb20gc2NoZW1hczoiKSwKLQkJCQkJCQkJ CQkJCXRydWUsICZjb250KSkKKwkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25PclRhYmxl RGVzYygmYnVmLCAmY29udCwKKwkJCQkJCQkJCQkJCQkgICBfKCJUYWJsZXMgZnJvbSBzY2hlbWFz OiIpLCB0cnVlLCB0cnVlKSkKIAkJCQkJZ290byBlcnJvcl9yZXR1cm47CiAJCQl9CiAJCX0KQEAg LTY3MzksMTQgKzY4MDEsMTQgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0 dGVybikKIAkJCXsKIAkJCQkvKiBHZXQgdGhlIGV4Y2x1ZGVkIHRhYmxlcyBmb3IgdGhlIHNwZWNp ZmllZCBwdWJsaWNhdGlvbiAqLwogCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJ CSAgIlNFTEVDVCBjb25jYXQoYy5yZWxuYW1lc3BhY2U6OnJlZ25hbWVzcGFjZSwgJy4nLCBjLnJl bG5hbWUpXG4iCisJCQkJCQkJCSAgIlNFTEVDVCBjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNl LCBjLnJlbG5hbWUsIE5VTEwsIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBn X2NsYXNzIGNcbiIKIAkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRp b25fcmVsIHByIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgogCQkJCQkJCQkgICJXSEVSRSBwci5w cnB1YmlkID0gJyVzJ1xuIgogCQkJCQkJCQkgICIgIEFORCBwci5wcmV4Y2VwdFxuIgogCQkJCQkJ CQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOwotCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlv bkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKLQkJCQkJCQkJCQkJCXRydWUsICZjb250 KSkKKwkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25PclRhYmxlRGVzYygmYnVmLCAmY29u dCwKKwkJCQkJCQkJCQkJCQkgICBfKCJFeGNlcHQgdGFibGVzOiIpLCB0cnVlLCBmYWxzZSkpCiAJ CQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5k ZXggMmNhMjhjMDcxZGIuLjM4NWM2ZDYzNjE2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0y MjgyLDYgKzIyODIsMTAgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ CUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMiLCAiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIp OwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJB REQiLCAiQUxMIiwgIlRBQkxFUyIpKQogCQlDT01QTEVURV9XSVRIKCJFWENFUFQgVEFCTEUiKTsK KwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE fFNFVCIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJ CUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAi UFVCTElDQVRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiRVhDRVBUIikpCisJCUNPTVBMRVRF X1dJVEgoIigiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQi LCAiVEFCTEUiKSkKQEAgLTIzMDIsMTAgKzIzMDYsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMo aW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCBNYXRjaEFueU4sICJXSEVSRSIsICIo IikpCiAJCUNPTVBMRVRFX1dJVEhfQVRUUihwcmV2M193ZCk7CisJZWxzZSBpZiAoTWF0Y2hlcygi QUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiRVhDRVBUIiwgIigi KSkKKwkJQ09NUExFVEVfV0lUSF9BVFRSKHByZXYzX3dkKTsKIAllbHNlIGlmIChIZWFkTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERHxTRVQiLCAiVEFCTEUiKSAm JgotCQkJICFUYWlsTWF0Y2hlcygiV0hFUkUiLCAiKCopIikpCisJCQkgIVRhaWxNYXRjaGVzKCJX SEVSRSIsICIoKikiKSAmJiAhVGFpbE1hdGNoZXMoIkVYQ0VQVCIsICIoIikpCiAJCUNPTVBMRVRF X1dJVEgoIiwiLCAiV0hFUkUgKCIpOwotCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQ VUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpKQorCWVsc2UgaWYgKEhl YWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJU QUJMRSIpICYmCisJCQkgIWVuZHNfd2l0aChwcmV2X3dkLCAnKCcpKQogCQlDT01QTEVURV9XSVRI KCIsIik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IERST1AgKi8KIAllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRFJPUCIpKQpAQCAtMzYw NCw3ICszNjExLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxz ZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAi VEFCTEVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIklOIFNDSEVNQSIpOwogCWVsc2UgaWYgKE1hdGNo ZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFIiwgTWF0 Y2hBbnkpICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKLQkJQ09NUExFVEVfV0lUSCgiV0hF UkUgKCIsICJXSVRIICgiKTsKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBUICgiLCAiV0hFUkUgKCIs ICJXSVRIICgiKTsKIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFBVQkxJQ0FUSU9OIDxuYW1lPiBGT1Ig VEFCTEUiIHdpdGggIjx0YWJsZT4sIC4uLiIgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIpKQogCQlDT01QTEVURV9X SVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKaW5kZXggMDFlYmEzYjVhMTkuLmIzNWYxNzNhZTFkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKQEAgLTEyMjkwLDkgKzEyMjkwLDkgQEAKICAgcHJvbmFtZSA9PiAncGdfZ2V0X3B1 YmxpY2F0aW9uX3RhYmxlcycsIHByb3Jvd3MgPT4gJzEwMDAnLAogICBwcm92YXJpYWRpYyA9PiAn dGV4dCcsIHByb3JldHNldCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcmV0dHlw ZSA9PiAncmVjb3JkJywgcHJvYXJndHlwZXMgPT4gJ190ZXh0JywKLSAgcHJvYWxsYXJndHlwZXMg PT4gJ3tfdGV4dCxvaWQsb2lkLGludDJ2ZWN0b3IscGdfbm9kZV90cmVlfScsCi0gIHByb2FyZ21v ZGVzID0+ICd7dixvLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7cHVibmFtZSxwdWJpZCxy ZWxpZCxhdHRycyxxdWFsfScsCisgIHByb2FsbGFyZ3R5cGVzID0+ICd7X3RleHQsb2lkLG9pZCxp bnQydmVjdG9yLHBnX25vZGVfdHJlZSxib29sfScsCisgIHByb2FyZ21vZGVzID0+ICd7dixvLG8s byxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3twdWJuYW1lLHB1YmlkLHJlbGlkLGF0dHJzLHF1 YWwsZXhjZXB0Y29sfScsCiAgIHByb3NyYyA9PiAncGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcycg fSwKIHsgb2lkID0+ICc2MTIxJywKICAgZGVzY3IgPT4gJ3JldHVybnMgd2hldGhlciBhIHJlbGF0 aW9uIGNhbiBiZSBwYXJ0IG9mIGEgcHVibGljYXRpb24nLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5oCmluZGV4IDAyMjQ2N2ZiNDVjLi4yYTFkYzQ4Y2NiOCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb24uaApAQCAtMTgxLDcgKzE4MSw4IEBAIGV4dGVybiBPaWQJR2V0VG9w TW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCiBl eHRlcm4gYm9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJu IGJvb2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gYm9vbCBjaGVj a19hbmRfZmV0Y2hfY29sdW1uX2xpc3QoUHVibGljYXRpb24gKnB1YiwgT2lkIHJlbGlkLAotCQkJ CQkJCQkJCU1lbW9yeUNvbnRleHQgbWN4dCwgQml0bWFwc2V0ICoqY29scyk7CisJCQkJCQkJCQkJ TWVtb3J5Q29udGV4dCBtY3h0LCBCaXRtYXBzZXQgKipjb2xzLAorCQkJCQkJCQkJCWJvb2wgKmV4 Y2VwdF9jb2x1bW5zKTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9yZWxh dGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCQkJCQkJCQkJCQkgIGJv b2wgaWZfbm90X2V4aXN0cyk7CiBleHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF92YWxpZGF0 ZShSZWxhdGlvbiB0YXJnZXRyZWwsIExpc3QgKmNvbHVtbnMpOwpAQCAtMTkxLDYgKzE5Miw3IEBA IGV4dGVybiBPYmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1YmlkLCBP aWQgc2NoZW1haWQsCiBleHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF90b19iaXRtYXBzZXQo Qml0bWFwc2V0ICpjb2x1bW5zLCBEYXR1bSBwdWJjb2xzLAogCQkJCQkJCQkJCSAgIE1lbW9yeUNv bnRleHQgbWN4dCk7CiBleHRlcm4gQml0bWFwc2V0ICpwdWJfZm9ybV9jb2xzX21hcChSZWxhdGlv biByZWxhdGlvbiwKLQkJCQkJCQkJCVB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNf dHlwZSk7CisJCQkJCQkJCQlQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUs CisJCQkJCQkJCQlCaXRtYXBzZXQgKmV4Y2VwdF9jb2xzKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBH X1BVQkxJQ0FUSU9OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb25fcmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5o CmluZGV4IGU3ZDdmM2JhODVjLi42YTIxNjhmYzMyYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uX3JlbC5oCkBAIC0zMSwxMSArMzEsMTIgQEAgQ0FUQUxPRyhwZ19wdWJsaWNh dGlvbl9yZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8q IG9pZCAqLwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9p ZCBvZiB0aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xh c3MpOwkvKiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCi0JYm9vbAkJcHJleGNlcHQgQktJX0RFRkFV TFQoZik7CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RF RkFVTFQoZik7CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uIG9yIGNvbHVtbnMgKi8KIAogI2lmZGVm CUNBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICov CiAJcGdfbm9kZV90cmVlIHBycXVhbDsJCS8qIHF1YWxpZmljYXRpb25zICovCi0JaW50MnZlY3Rv cglwcmF0dHJzOwkJLyogY29sdW1ucyB0byByZXBsaWNhdGUgKi8KKwlpbnQydmVjdG9yCXByYXR0 cnM7CQkvKiBjb2x1bW5zIHRvIHJlcGxpY2F0ZSBvciBleGNsdWRlIHRvCisJCQkJCQkJCSAqIHJl cGxpY2F0ZSAqLwogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3B1YmxpY2F0aW9uX3JlbDsKIApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCA5YmZjNDMzNDRkNS4u ZDlmMmRjYTFmZDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGlj YXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0 CkBAIC0xODE4LDUyICsxODE4LDUyIEBAIENSRUFURSBUQUJMRSBzY2gyLnRibDFfcGFydDEgUEFS VElUSU9OIE9GIHNjaDEudGJsMSBGT1IgVkFMVUVTIEZST00gKDEpIHRvICgxMCk7CiAtLSBTY2hl bWEgcHVibGljYXRpb24gdGhhdCBkb2VzIG5vdCBpbmNsdWRlIHRoZSBzY2hlbWEgdGhhdCBoYXMg dGhlIHBhcmVudCB0YWJsZQogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgVEFCTEVTIElOIFND SEVNQSBzY2gyIFdJVEggKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UPTEpOwogU0VMRUNUICog RlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXM7Ci0gcHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJs ZW5hbWUgIHwgYXR0bmFtZXMgfCByb3dmaWx0ZXIgCi0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gcHViICAgICB8IHNjaDIgICAgICAg fCB0YmwxX3BhcnQxIHwge2F9ICAgICAgfCAKKyBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxl bmFtZSAgfCBhdHRuYW1lcyB8IHJvd2ZpbHRlciB8IGV4Y2VwdGNvbCAKKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBwdWIgICAgIHwgc2NoMiAgICAgICB8IHRibDFfcGFydDEgfCB7YX0gICAgICB8ICAgICAgICAg ICB8IGYKICgxIHJvdykKIAogRFJPUCBQVUJMSUNBVElPTiBwdWI7CiAtLSBUYWJsZSBwdWJsaWNh dGlvbiB0aGF0IGRvZXMgbm90IGluY2x1ZGUgdGhlIHBhcmVudCB0YWJsZQogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1YiBGT1IgVEFCTEUgc2NoMi50YmwxX3BhcnQxIFdJVEggKFBVQkxJU0hfVklBX1BB UlRJVElPTl9ST09UPTEpOwogU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXM7Ci0g cHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUgIHwgYXR0bmFtZXMgfCByb3dmaWx0ZXIg Ci0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tCi0gcHViICAgICB8IHNjaDIgICAgICAgfCB0YmwxX3BhcnQxIHwge2F9ICAgICAgfCAKKyBw dWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAgfCBhdHRuYW1lcyB8IHJvd2ZpbHRlciB8 IGV4Y2VwdGNvbCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBwdWIgICAgIHwgc2NoMiAgICAgICB8IHRibDFf cGFydDEgfCB7YX0gICAgICB8ICAgICAgICAgICB8IGYKICgxIHJvdykKIAogLS0gVGFibGUgcHVi bGljYXRpb24gdGhhdCBpbmNsdWRlcyBib3RoIHRoZSBwYXJlbnQgdGFibGUgYW5kIHRoZSBjaGls ZCB0YWJsZQogQUxURVIgUFVCTElDQVRJT04gcHViIEFERCBUQUJMRSBzY2gxLnRibDE7CiBTRUxF Q1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKLSBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8 IHRhYmxlbmFtZSB8IGF0dG5hbWVzIHwgcm93ZmlsdGVyIAotLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCi0gcHViICAgICB8IHNjaDEgICAg ICAgfCB0YmwxICAgICAgfCB7YX0gICAgICB8IAorIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFi bGVuYW1lIHwgYXR0bmFtZXMgfCByb3dmaWx0ZXIgfCBleGNlcHRjb2wgCistLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBwdWIgICAgIHwgc2NoMSAgICAgICB8IHRibDEgICAgICB8IHthfSAgICAgIHwgICAgICAgICAg IHwgZgogKDEgcm93KQogCiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIC0tIFNjaGVtYSBwdWJsaWNh dGlvbiB0aGF0IGRvZXMgbm90IGluY2x1ZGUgdGhlIHNjaGVtYSB0aGF0IGhhcyB0aGUgcGFyZW50 IHRhYmxlCiBDUkVBVEUgUFVCTElDQVRJT04gcHViIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHNjaDIg V0lUSCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1Q9MCk7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1 YmxpY2F0aW9uX3RhYmxlczsKLSBwdWJuYW1lIHwgc2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAgfCBh dHRuYW1lcyB8IHJvd2ZpbHRlciAKLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSBwdWIgICAgIHwgc2NoMiAgICAgICB8IHRibDFfcGFy dDEgfCB7YX0gICAgICB8IAorIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1lICB8IGF0 dG5hbWVzIHwgcm93ZmlsdGVyIHwgZXhjZXB0Y29sIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHB1YiAgICAg fCBzY2gyICAgICAgIHwgdGJsMV9wYXJ0MSB8IHthfSAgICAgIHwgICAgICAgICAgIHwgZgogKDEg cm93KQogCiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIC0tIFRhYmxlIHB1YmxpY2F0aW9uIHRoYXQg ZG9lcyBub3QgaW5jbHVkZSB0aGUgcGFyZW50IHRhYmxlCiBDUkVBVEUgUFVCTElDQVRJT04gcHVi IEZPUiBUQUJMRSBzY2gyLnRibDFfcGFydDEgV0lUSCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JP T1Q9MCk7CiBTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlczsKLSBwdWJuYW1lIHwg c2NoZW1hbmFtZSB8IHRhYmxlbmFtZSAgfCBhdHRuYW1lcyB8IHJvd2ZpbHRlciAKLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSBwdWIg ICAgIHwgc2NoMiAgICAgICB8IHRibDFfcGFydDEgfCB7YX0gICAgICB8IAorIHB1Ym5hbWUgfCBz Y2hlbWFuYW1lIHwgdGFibGVuYW1lICB8IGF0dG5hbWVzIHwgcm93ZmlsdGVyIHwgZXhjZXB0Y29s IAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIHB1YiAgICAgfCBzY2gyICAgICAgIHwgdGJsMV9wYXJ0MSB8IHth fSAgICAgIHwgICAgICAgICAgIHwgZgogKDEgcm93KQogCiAtLSBUYWJsZSBwdWJsaWNhdGlvbiB0 aGF0IGluY2x1ZGVzIGJvdGggdGhlIHBhcmVudCB0YWJsZSBhbmQgdGhlIGNoaWxkIHRhYmxlCiBB TFRFUiBQVUJMSUNBVElPTiBwdWIgQUREIFRBQkxFIHNjaDEudGJsMTsKIFNFTEVDVCAqIEZST00g cGdfcHVibGljYXRpb25fdGFibGVzOwotIHB1Ym5hbWUgfCBzY2hlbWFuYW1lIHwgdGFibGVuYW1l ICB8IGF0dG5hbWVzIHwgcm93ZmlsdGVyIAotLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotIHB1YiAgICAgfCBzY2gyICAgICAgIHwgdGJs MV9wYXJ0MSB8IHthfSAgICAgIHwgCisgcHVibmFtZSB8IHNjaGVtYW5hbWUgfCB0YWJsZW5hbWUg IHwgYXR0bmFtZXMgfCByb3dmaWx0ZXIgfCBleGNlcHRjb2wgCistLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgcHVi ICAgICB8IHNjaDIgICAgICAgfCB0YmwxX3BhcnQxIHwge2F9ICAgICAgfCAgICAgICAgICAgfCBm CiAoMSByb3cpCiAKIERST1AgUFVCTElDQVRJT04gcHViOwpAQCAtMTg3Niw5ICsxODc2LDkgQEAg Q1JFQVRFIFRBQkxFIHNjaDEudGJsMV9wYXJ0MyAoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShh KTsKIEFMVEVSIFRBQkxFIHNjaDEudGJsMSBBVFRBQ0ggUEFSVElUSU9OIHNjaDEudGJsMV9wYXJ0 MyBGT1IgVkFMVUVTIEZST00gKDIwKSB0byAoMzApOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBG T1IgVEFCTEVTIElOIFNDSEVNQSBzY2gxIFdJVEggKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09U PTEpOwogU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXM7Ci0gcHVibmFtZSB8IHNj aGVtYW5hbWUgfCB0YWJsZW5hbWUgfCBhdHRuYW1lcyB8IHJvd2ZpbHRlciAKLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQotIHB1YiAgICAg fCBzY2gxICAgICAgIHwgdGJsMSAgICAgIHwge2F9ICAgICAgfCAKKyBwdWJuYW1lIHwgc2NoZW1h bmFtZSB8IHRhYmxlbmFtZSB8IGF0dG5hbWVzIHwgcm93ZmlsdGVyIHwgZXhjZXB0Y29sIAorLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgcHViICAgICB8IHNjaDEgICAgICAgfCB0YmwxICAgICAgfCB7YX0gICAgICB8 ICAgICAgICAgICB8IGYKICgxIHJvdykKIAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKQEAg LTIxMjUsNiArMjEyNSw5NCBAQCBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiBE Uk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7 CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3QgRVhDRVBUIGNvbHVtbnMgZm9y IENSRUFURSBQVUJMSUNBVElPTgorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwor Q1JFQVRFIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgKGEgaW50IE5PVCBOVUxMLCBiIGludCwgYyBp bnQgTk9UIE5VTEwsIGQgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNl cHQyIChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7CistLSBWZXJpZnkgdGhhdCBwdWJsaWNh dGlvbiBpcyBjcmVhdGVkIHdpdGggRVhDRVBUCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9l eGNlcHQgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEsIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2Vw dDIgRVhDRVBUIChiLCBjKTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRpb25fdGFibGVzIFdI RVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworICAgIHB1Ym5hbWUgICAgIHwgc2NoZW1h bmFtZSB8ICAgIHRhYmxlbmFtZSAgICAgfCBhdHRuYW1lcyAgfCByb3dmaWx0ZXIgfCBleGNlcHRj b2wgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyB0ZXN0cHViX2V4Y2VwdCB8IHB1Ymxp YyAgICAgfCBwdWJfdGVzdF9leGNlcHQxIHwge2EsYixjLGR9IHwgICAgICAgICAgIHwgZgorIHRl c3RwdWJfZXhjZXB0IHwgcHViX3NjaDEgICB8IHB1Yl90ZXN0X2V4Y2VwdDIgfCB7YSxkfSAgICAg fCAgICAgICAgICAgfCB0CisoMiByb3dzKQorCistLSBDYW5ub3QgdXNlIEVYQ0VQVCBjb2wtbGlz dHMgY29tYmluZWQgd2l0aCBUQUJMRVMgSU4gU0NIRU1BCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHQyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBUQUJMRSBwdWJfdGVz dF9leGNlcHQxIEVYQ0VQVCAoYiwgYyk7CitFUlJPUjogIGNhbm5vdCB1c2UgY29sdW1uIGxpc3Qg Zm9yIHJlbGF0aW9uICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgaW4gcHVibGljYXRpb24gInRl c3RwdWJfZXhjZXB0MiIKK0RFVEFJTDogIENvbHVtbiBsaXN0cyBjYW5ub3QgYmUgc3BlY2lmaWVk IGluIHB1YmxpY2F0aW9ucyBjb250YWluaW5nIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGVsZW1lbnRz LgorLS0gU3ludGF4IGVycm9yIEVYQ0VQVCB3aXRob3V0IGEgY29sLWxpc3QKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBU OworRVJST1I6ICB0YWJsZSB3aXRob3V0IGNvbHVtbiBsaXN0IGNhbm5vdCB1c2UgRVhDRVBUIGNs YXVzZQorTElORSAxOiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJM RSBwdWJfdGVzdF9leGNlcHQuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIFNFVCAu Li4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IFNF VCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYSwgYiksIHB1Yl9zY2gxLnB1Yl90ZXN0 X2V4Y2VwdDI7CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZXhjZXB0CisgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRl cyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzOgorICAgICJwdWJf c2NoMS5wdWJfdGVzdF9leGNlcHQyIgorICAgICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgRVhD RVBUIChhLCBiKQorCistLSBWZXJpZnkgZmFpbHMgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJP UCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 IERST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpOworRVJST1I6ICBjb2x1 bW4gbGlzdCBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgaW4gQUxURVIgUFVCTElDQVRJT04gLi4uIERS T1AKKy0tIFZlcmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CistLSBW ZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gQUREIC4uLiBFWENFUFQgKGNvbC1saXN0 KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgQUREIFRBQkxFIHB1Yl90ZXN0X2V4 Y2VwdDEgRVhDRVBUIChjLCBkKTsKK1xkUnArIHRlc3RwdWJfZXhjZXB0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9leGNlcHQK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXM6 CisgICAgInB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIiCisgICAgInB1YmxpYy5wdWJfdGVzdF9l eGNlcHQxIiBFWENFUFQgKGMsIGQpCisKKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQVCBjb2wtbGlz dCBjYW5ub3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIFJJIEZVTEwpCitBTFRFUiBUQUJM RSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgRlVMTDsKK1VQREFURSBwdWJfdGVz dF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90IHVwZGF0ZSB0 YWJsZSAicHViX3Rlc3RfZXhjZXB0MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0IHVzZWQgYnkgdGhl IHB1YmxpY2F0aW9uIGRvZXMgbm90IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50aXR5LgorLS0gVmVy aWZ5IGZhaWxzIC0gRVhDRVBUIGNvbC1saXN0IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4g dXNpbmcgSU5ERVgpCitDUkVBVEUgVU5JUVVFIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4 IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEsIGMpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0 MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4Owor VVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworRVJST1I6ICBj YW5ub3QgdXBkYXRlIHRhYmxlICJwdWJfdGVzdF9leGNlcHQxIgorREVUQUlMOiAgQ29sdW1uIGxp c3QgdXNlZCBieSB0aGUgcHVibGljYXRpb24gZG9lcyBub3QgY292ZXIgdGhlIHJlcGxpY2EgaWRl bnRpdHkuCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworLS0gVmVyaWZ5IG9r IC0gbm8gY2xhc2ggYmV0d2VlbiBSSSBjb2xzIGFuZCB0aGUgRVhDRVBUIGNvbC1saXN0CitDUkVB VEUgVU5JUVVFIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHggT04gcHViX3Rlc3RfZXhjZXB0 MSAoYSk7CitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgVVNJ TkcgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQx IFNFVCBhID0gMyBXSEVSRSBhID0gMTsKKy0tIFZlcmlmeSBkZXNjcmlwdGlvbiBvZiBhIHRhYmxl IHdpdGggcHVibGljYXRpb24gd2l0aCBFWENFUFQgY29sLWxpc3QKK1xkKyBwdWJfdGVzdF9leGNl cHQxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHViX3Rlc3Rf ZXhjZXB0MSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZh dWx0IHwgU3RvcmFnZSB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5v dCBudWxsIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAg ICAgICAgICB8IAorIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAg ICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCisgZCAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAK K0luZGV4ZXM6CisgICAgInB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHgiIFVOSVFVRSwgYnRyZWUgKGEp IFJFUExJQ0EgSURFTlRJVFkKK1B1YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9leGNlcHQiIEVY Q0VQVCAoYywgZCkKK05vdC1udWxsIGNvbnN0cmFpbnRzOgorICAgICJwdWJfdGVzdF9leGNlcHQx X2Ffbm90X251bGwiIE5PVCBOVUxMICJhIgorICAgICJwdWJfdGVzdF9leGNlcHQxX2Nfbm90X251 bGwiIE5PVCBOVUxMICJjIgorCistLSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2Vw dDFfYV9pZHg7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJMRSBw dWJfdGVzdF9leGNlcHQxOworRFJPUCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOwog RFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogLS0gVGVz dCB0aGF0IHRoZSBJTlNFUlQgT04gQ09ORkxJQ1QgY29tbWFuZCBjb3JyZWN0bHkgY2hlY2tzIFJF UExJQ0EgSURFTlRJVFkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMzVlOGFh ZDc3MDEuLmNhNjQ1ZmMzNTNhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dApAQCAt MTQ2OCw5ICsxNDY4LDEwIEBAIHBnX3B1YmxpY2F0aW9uX3RhYmxlc3wgU0VMRUNUIHAucHVibmFt ZSwKICAgICAoIFNFTEVDVCBhcnJheV9hZ2coYS5hdHRuYW1lIE9SREVSIEJZIGEuYXR0bnVtKSBB UyBhcnJheV9hZ2cKICAgICAgICAgICAgRlJPTSBwZ19hdHRyaWJ1dGUgYQogICAgICAgICAgIFdI RVJFICgoYS5hdHRyZWxpZCA9IGdwdC5yZWxpZCkgQU5EIChhLmF0dG51bSA9IEFOWSAoKGdwdC5h dHRycyk6OnNtYWxsaW50W10pKSkpIEFTIGF0dG5hbWVzLAotICAgIHBnX2dldF9leHByKGdwdC5x dWFsLCBncHQucmVsaWQpIEFTIHJvd2ZpbHRlcgorICAgIHBnX2dldF9leHByKGdwdC5xdWFsLCBn cHQucmVsaWQpIEFTIHJvd2ZpbHRlciwKKyAgICBncHQuZXhjZXB0Y29sCiAgICBGUk9NIHBnX3B1 YmxpY2F0aW9uIHAsCi0gICAgTEFURVJBTCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFZBUklB RElDIEFSUkFZWyhwLnB1Ym5hbWUpOjp0ZXh0XSkgZ3B0KHB1YmlkLCByZWxpZCwgYXR0cnMsIHF1 YWwpLAorICAgIExBVEVSQUwgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhWQVJJQURJQyBBUlJB WVsocC5wdWJuYW1lKTo6dGV4dF0pIGdwdChwdWJpZCwgcmVsaWQsIGF0dHJzLCBxdWFsLCBleGNl cHRjb2wpLAogICAgIChwZ19jbGFzcyBjCiAgICAgIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gKChu Lm9pZCA9IGMucmVsbmFtZXNwYWNlKSkpCiAgIFdIRVJFIChjLm9pZCA9IGdwdC5yZWxpZCk7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggZmJlMTlhNjk1OWIuLmE2OWFkZjg4 ZWI3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMzE4LDYgKzEzMTgs NjEgQEAgU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwogRFJPUCBUQUJMRSBw dWJfc2NoMS50YmwyOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIFRlc3QgRVhDRVBUIGNvbHVtbnMgZm9yIENSRUFURSBQVUJM SUNBVElPTgorCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgVEFC TEUgcHViX3Rlc3RfZXhjZXB0MSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50LCBjIGludCBOT1QgTlVM TCwgZCBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIgKGEgaW50 LCBiIGludCwgYyBpbnQsIGQgaW50KTsKKworLS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24gaXMg Y3JlYXRlZCB3aXRoIEVYQ0VQVAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEZP UiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIEVYQ0VQ VCAoYiwgYyk7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJu YW1lID0gJ3Rlc3RwdWJfZXhjZXB0JzsKKworLS0gQ2Fubm90IHVzZSBFWENFUFQgY29sLWxpc3Rz IGNvbWJpbmVkIHdpdGggVEFCTEVTIElOIFNDSEVNQQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZXhjZXB0MiBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJfc2NoMSwgVEFCTEUgcHViX3Rlc3Rf ZXhjZXB0MSBFWENFUFQgKGIsIGMpOworCistLSBTeW50YXggZXJyb3IgRVhDRVBUIHdpdGhvdXQg YSBjb2wtbGlzdAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEUg cHViX3Rlc3RfZXhjZXB0MSBFWENFUFQ7CisKKy0tIFZlcmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FU SU9OIC4uLiBTRVQgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpLCBwdWJf c2NoMS5wdWJfdGVzdF9leGNlcHQyOworXGRScCsgdGVzdHB1Yl9leGNlcHQKKworLS0gVmVyaWZ5 IGZhaWxzIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AgLi4uIEVYQ0VQVCAoY29sLWxpc3Qp CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4 Y2VwdDEgRVhDRVBUIChhLCBiKTsKKworLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04g Li4uIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IERST1AgVEFCTEUgcHVi X3Rlc3RfZXhjZXB0MTsKKworLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIEFE RCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 IEFERCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYywgZCk7CitcZFJwKyB0ZXN0cHVi X2V4Y2VwdAorCistLSBWZXJpZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3QgY2Fubm90IGNvbnRh aW4gUkkgY29scyAod2hlbiB1c2luZyBSSSBGVUxMKQorQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhj ZXB0MSBSRVBMSUNBIElERU5USVRZIEZVTEw7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQg YSA9IDMgV0hFUkUgYSA9IDE7CisKKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQVCBjb2wtbGlzdCBj YW5ub3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIElOREVYKQorQ1JFQVRFIFVOSVFVRSBJ TkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhLCBjKTsK K0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRF WCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBh ID0gMyBXSEVSRSBhID0gMTsKK0RST1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hY19pZHg7CisK Ky0tIFZlcmlmeSBvayAtIG5vIGNsYXNoIGJldHdlZW4gUkkgY29scyBhbmQgdGhlIEVYQ0VQVCBj b2wtbGlzdAorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4IE9OIHB1 Yl90ZXN0X2V4Y2VwdDEgKGEpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNB IElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUgcHVi X3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CisKKy0tIFZlcmlmeSBkZXNjcmlw dGlvbiBvZiBhIHRhYmxlIHdpdGggcHVibGljYXRpb24gd2l0aCBFWENFUFQgY29sLWxpc3QKK1xk KyBwdWJfdGVzdF9leGNlcHQxCisKKy0tIGNsZWFudXAKK0RST1AgSU5ERVggcHViX3Rlc3RfZXhj ZXB0MV9hX2lkeDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQ7CitEUk9QIFRBQkxF IHB1Yl90ZXN0X2V4Y2VwdDE7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7 CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi9tZXNvbi5idWlsZAppbmRleCBjNGMxZWZkMjdiYy4uYjUxYzYyMGNiODMgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVz dC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKQEAgLTQ2LDYgKzQ2LDcgQEAgdGVzdHMgKz0gewog ICAgICAgJ3QvMDM0X3RlbXBvcmFsLnBsJywKICAgICAgICd0LzAzNV9jb25mbGljdHMucGwnLAog ICAgICAgJ3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCcsCisgICAgICAndC8wMzdf cmVwX2NoYW5nZXNfZXhjZXB0X2NvbGxpc3QucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwnLAog ICAgIF0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfcmVw X2NoYW5nZXNfZXhjZXB0X2NvbGxpc3QucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdf cmVwX2NoYW5nZXNfZXhjZXB0X2NvbGxpc3QucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjNkZmQyNjZiYzNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0LnBsCkBAIC0wLDAgKzEs MTkzIEBACisjIENvcHlyaWdodCAoYykgMjAyMS0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorCisjIExvZ2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIEVYQ0VQVCAo Y29sdW1uLWxpc3QpIHB1YmxpY2F0aW9ucwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3Vz ZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxz OwordXNlIFRlc3Q6Ok1vcmU7CisKKyMgSW5pdGlhbGl6ZSBwdWJsaXNoZXIgbm9kZQorbXkgJG5v ZGVfcHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXIn KTsKKyRub2RlX3B1Ymxpc2hlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7 Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUKK215 ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNj cmliZXInKTsKKyRub2RlX3N1YnNjcmliZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9n aWNhbCcpOworJG5vZGVfc3Vic2NyaWJlci0+c3RhcnQ7CisKKyMgSW5pdGlhbCBzZXR1cAorJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEgKAorCUNSRUFURSBTQ0hF TUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUgdGFiMSAoYSBpbnQsIGIgaW50IE5PVCBOVUxMLCBjIGlu dCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQsIGIgaW50LCBjIGludCk7CisJQ1JF QVRFIFRBQkxFIHRhYjIgKGEgaW50LCBiIGludCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSB0YWIz IChhIGludCwgYmdlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgY2dl biBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JFRCk7CisJQ1JFQVRFIFRBQkxF IHRhYjQgKGEgaW50LCBiZ2VuIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE LCBjZ2VuIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKKwlDUkVBVEUg VEFCTEUgdGFiNSAoYSBpbnQsIGIgaW50LCBjIGludCk7CisJSU5TRVJUIElOVE8gdGFiMSBWQUxV RVMgKDEsIDIsIDMpOworCUlOU0VSVCBJTlRPIHNjaDEudGFiMSBWQUxVRVMgKDEsIDIsIDMpOwor CUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBGT1IgVEFCTEUgdGFiMSBFWENFUFQgKGEp LCBzY2gxLnRhYjEgRVhDRVBUIChiLCBjKTsKKykpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoCisJJ3Bvc3RncmVzJywgcXEgKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUg VEFCTEUgdGFiMSAoYSBpbnQsIGIgaW50IE5PVCBOVUxMLCBjIGludCk7CisJQ1JFQVRFIFRBQkxF IHNjaDEudGFiMSAoYSBpbnQsIGIgaW50LCBjIGludCk7CisJQ1JFQVRFIFRBQkxFIHRhYjIgKGEg aW50LCBiIGludCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSB0YWIzIChhIGludCwgYmdlbiBpbnQs IGNnZW4gaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiNCAoYSBpbnQsIGJnZW4gaW50LCBjZ2VuIGlu dCk7CisJQ1JFQVRFIFRBQkxFIHRhYjUgKGEgaW50LCBiIGludCwgYyBpbnQsIGQgaW50KTsKKykp OworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215ICRwdWJsaXNoZXJfY29ubnN0ciA9 ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKyRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRh cF9zdWJfY29sIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFw X3B1Yl9jb2wiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5 bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworIyBUZXN0IGluaXRpYWwgc3lu YworbXkgJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi U0VMRUNUICogRlJPTSB0YWIxIik7CitpcygkcmVzdWx0LCBxcSh8MnwzKSwKKwknVmVyaWZ5IGlu aXRpYWwgc3luYyBvZiB0YWIxIGluIGEgcHVibGljYXRpb24gdXNpbmcgRVhDRVBUIChjb2x1bW4t bGlzdCknCispOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKDF8fCksCisJ J1ZlcmlmeSBpbml0aWFsIHN5bmMgb2Ygc2NoMS50YWIxIGluIGEgcHVibGljYXRpb24gdXNpbmcg RVhDRVBUIChjb2x1bW4tbGlzdCknCispOworCisjIFRlc3QgaW5jcmVtZW50YWwgY2hhbmdlcwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEgKAorCUlOU0VSVCBJ TlRPIHRhYjEgVkFMVUVTICg0LCA1LCA2KTsKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFMVUVT ICg0LCA1LCA2KTsKKykpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBf c3ViX2NvbCcpOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIE9SREVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBx cSh8MnwzCit8NXw2KSwKKwknVmVyaWZ5IGluY3JlbWVudGFsIGluc2VydHMgb24gdGFiMSBpbiBh IHB1YmxpY2F0aW9uIHVzaW5nIEVYQ0VQVCAoY29sdW1uLWxpc3QpJworKTsKKyRyZXN1bHQgPSAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSBz Y2gxLnRhYjEgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQsIHFxKDF8fAorNHx8KSwKKwknVmVy aWZ5IGluY3JlbWVudGFsIGluc2VydHMgb24gc2NoMS50YWIxIGluIGEgcHVibGljYXRpb24gdXNp bmcgRVhDRVBUIChjb2x1bW4tbGlzdCknCispOworCisjIFRlc3QgZm9yIHVwZGF0ZQorJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBVTklRVUUg SU5ERVggYl9pZHggT04gdGFiMSAoYik7CisJQUxURVIgVEFCTEUgdGFiMSBSRVBMSUNBIElERU5U SVRZIFVTSU5HIElOREVYIGJfaWR4OworKSk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgVU5JUVVFIElOREVYIGJfaWR4IE9OIHRhYjEgKGIp OworCUFMVEVSIFRBQkxFIHRhYjEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBiX2lkeDsK KwlVUERBVEUgdGFiMSBTRVQgYSA9IDk5MSwgYiA9IDk5MiwgYyA9IDk5MyBXSEVSRSBhID0gMTsK KykpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOwor JHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VM RUNUICogRlJPTSB0YWIxICBPUkRFUiBCWSBhIik7CitpcyggJHJlc3VsdCwgcXEofDV8NgorfDk5 Mnw5OTMpLAorCSdjaGVjayB1cGRhdGUgZm9yIEVYQ0VQVCAoY29sdW1uLWxpc3QpIHB1YmxpY2F0 aW9uJyk7CisKKyMgVGVzdCBBTFRFUiBQVUJMSUNBVElPTiBmb3IgRVhDRVBUIChjb2x1bW4tbGlz dCkKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFBVQkxJ Q0FUSU9OIHRhcF9wdWJfY29sIEFERCBUQUJMRSB0YWIyIEVYQ0VQVChiKSIpOworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBf c3ViX2NvbCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zv cl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2NvbCcpOworCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gdGFiMiBW QUxVRVMgKDEsIDIsIDMpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3Rh cF9zdWJfY29sJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjIiKTsKK2lzKCRyZXN1bHQsIHFxKDF8fDMpLCAnY2hl Y2sgYWx0ZXIgcHVibGljYXRpb24gd2l0aCBFWENFUFQgKGNvbHVtbi1saXN0KScpOworCisjIFRl c3QgZm9yIHB1YmxpY2F0aW9uIGNyZWF0ZWQgd2l0aCAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1u cycgYXMgJ3N0b3JlZCcgb24KKyMgdGFibGUgJ3RhYjMnIGFuZCB3aXRoIGNvbHVtbiAnYmdlbicg aW4gY29sdW1uIGxpc3Qgd2l0aCBFWENFUFQgY2xhdXNlLgorJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoSU5TRVJUIElOVE8gdGFiMyBWQUxVRVMgKDEpOworCUFM VEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCAocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1u cyA9IHN0b3JlZCk7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIFRBQkxFIHRh YjMgRVhDRVBUKGJnZW4pOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfY29sIFJFRlJFU0ggUFVCTElDQVRJ T04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2Rl X3B1Ymxpc2hlciwgJ3RhcF9zdWJfY29sJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0YWIzIFZBTFVFUyAoMikiKTsKKyRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQgPQorICAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiMyBP UkRFUiBCWSBhIik7CisKKyMgY29sdW1uICdiZ2VuJyBpcyBzcGVjaWZpZWQgaW4gRVhDRVBUIChj b2x1bW0tbGlzdCkuIFNvIGRhdGEgY29ycmVzcG9uZGluZyB0bworIyAnYmdlbicgaXMgbm90IHJl cGxpY2F0ZWQuIFBhcmFtZXRlciAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgaXMgc2V0IGFz CisjICdzdG9yZWQnLCBzbyBkYXRhIGNvcnJlc3BvbmRpbmcgdG8gY29sdW1uICdjZ2VuJyBpcyBy ZXBsaWNhdGVkLgoraXMoICRyZXN1bHQsIHFxKDF8fDMKKzJ8fDYpLAorCSdjaGVjayBwdWJsaWNh dGlvbihwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zIGFzIHN0b3JlZCkgd2l0aCBnZW5lcmF0ZWQg Y29sdW1ucyBhbmQgRVhDRVBUIChjb2x1bW4tbGlzdCknCispOworCisjIFRlc3QgZm9yIHB1Ymxp Y2F0aW9uIGNyZWF0ZWQgd2l0aCAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgYXMgJ25vbmUn IG9uCisjIHRhYmxlIHdpdGggZ2VuZXJhdGVkIGNvbHVtbnMgYW5kIGNvbHVtbiBsaXN0IHNwZWNp ZmllZCB3aXRoIEVYQ0VQVCBjbGF1c2UuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkn cG9zdGdyZXMnLCBxcSgKKwlJTlNFUlQgSU5UTyB0YWI0IFZBTFVFUyAoMSk7CisJQUxURVIgUFVC TElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIChwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gbm9u ZSk7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIFRBQkxFIHRhYjQgRVhDRVBU KGJnZW4pOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki QUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfY29sIFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRu b2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hl ciwgJ3RhcF9zdWJfY29sJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJJTlNFUlQgSU5UTyB0YWI0IFZBTFVFUyAoMikiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQgPQorICAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiNCBPUkRFUiBCWSBh Iik7CisKKyMgY29sdW1uICdiZ2VuJyBpcyBzcGVjaWZpZWQgaW4gRVhDRVBUIChjb2x1bW0tbGlz dCkuIFNvIGRhdGEgY29ycmVzcG9uZGluZyB0bworIyAnYmdlbicgaXMgbm90IHJlcGxpY2F0ZWQu IFBhcmFtZXRlciAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgaXMgc2V0IGFzCisjICdub25l Jywgc28gZGF0YSBjb3JyZXNwb25kaW5nIHRvIGNvbHVtbiAnY2dlbicgaXMgbm90IHJlcGxpY2F0 ZWQuCitpcyggJHJlc3VsdCwgcXEoMXx8CisyfHwpLAorCSdjaGVjayBwdWJsaWNhdGlvbihwdWJs aXNoX2dlbmVyYXRlZF9jb2x1bW5zIGFzIG5vbmUpIHdpdGggZ2VuZXJhdGVkIGNvbHVtbnMgYW5k IEVYQ0VQVCAoY29sdW1uLWxpc3QpJworKTsKKworIyBBbGwgY29sdW1ucyBhcmUgcHJlc2VudCBp biBFWENFUFQgKGNvbHVtbi1saXN0KQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bv c3RncmVzJywgcXEoCisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIFRBQkxFIHRh YjUgRVhDRVBUKGEsIGIsIGMpOworCUlOU0VSVCBJTlRPIHRhYjUgVkFMVUVTICgxLCAyLCAzKTsK KykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNV QlNDUklQVElPTiB0YXBfc3ViX2NvbCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJz Y3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBf c3ViX2NvbCcpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5T RVJUIElOVE8gdGFiNSBWQUxVRVMgKDQsIDUsIDYpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRf Zm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjUiKTsKK2lzKCRyZXN1bHQs IHFxKCksICdhbGwgY29sdW1ucyBhcmUgc3BlY2lmaWVkIGluIEVYQ0VQVCAoY29sdW1uLWxpc3Qp Jyk7CisKKyMgQWRkIGEgbmV3IGNvbHVtbiBhbmQgY2hlY2sgdGhhdCBpdCBpcyByZXBsaWNhdGVk Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBU QUJMRSB0YWI1IEFERCBDT0xVTU4gZCBpbnQ7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRhYjUgVkFMVUVTICg3LCA4LCA5LCAxMCki KTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKwor JHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNU ICogRlJPTSB0YWI1Iik7CitpcygkcmVzdWx0LCBxcSh8fHwxMCksICduZXdseSBhZGRlZCBjb2x1 bW4gaXMgcmVwbGljYXRlZCcpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wKCdmYXN0Jyk7Cisk bm9kZV9wdWJsaXNoZXItPnN0b3AoJ2Zhc3QnKTsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjM0 LjEKCg== --000000000000e277ee063fb9997f Content-Type: application/octet-stream; name="v24-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v24-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mg19anq50 RnJvbSBlMWRlNmVmMjVhODU3YzRhMGI5NDBlYjBmMDk3ZGE1MTdjYWNmMmFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYy NCAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZs YWcgdG8gZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBh cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FU SU9OIHB1YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sICAgfCAgMzQgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICB8ICAgOSArKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5p bi5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24u b3V0IHwgMTE4ICsrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbCAgICAgIHwgIDU3ICsrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDMy MyBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwKaW5kZXggZDVlYTM4M2U4YmMuLjE3OGYzOWQ5NTc1IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yNyw2ICsyNyw3IEBAIEFMVEVSIFBV QkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJs ZT4gRFJPUCA8cmVwbGFjCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKQogQUxU RVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8 IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CiBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFTkFNRSBUTyA8cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBSRVNFVAogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w dWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKQEAg LTY5LDE4ICs3MCwzMSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICA8L3BhcmE+CiAKICAg PHBhcmE+Ci0gICBUaGUgcmVtYWluaW5nIHZhcmlhbnRzIGNoYW5nZSB0aGUgb3duZXIgYW5kIHRo ZSBuYW1lIG9mIHRoZSBwdWJsaWNhdGlvbi4KKyAgIFRoZSA8bGl0ZXJhbD5PV05FUjwvbGl0ZXJh bD4gY2xhdXNlIHdpbGwgY2hhbmdlIHRoZSBvd25lciBvZiB0aGUKKyAgIHB1YmxpY2F0aW9uLgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPiBj bGF1c2Ugd2lsbCBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlCisgICBwdWJsaWNhdGlvbi4KKyAgPC9w YXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBjbGF1c2Ug d2lsbCByZXNldCB0aGUgcHVibGljYXRpb24gdG8gdGhlIGRlZmF1bHQKKyAgIHN0YXRlLiBUaGlz IGluY2x1ZGVzIHJlc2V0dGluZyBhbGwgcHVibGljYXRpb24gcGFyYW1ldGVycywgc2V0dGluZyB0 aGUKKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGZsYWcgdG8gPGxpdGVyYWw+ZmFs c2U8L2xpdGVyYWw+LCBhbmQKKyAgIHJlbW92aW5nIGFsbCBhc3NvY2lhdGVkIHRhYmxlcyBhbmQg c2NoZW1hcyBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAg WW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElD QVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRp dGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QURE IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJ TiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlCi0gICBpbnZv a2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3Ug bXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0aGUKLSAgIG5l dyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+Q1JFQVRFPC9s aXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAgIFRoZSA8bGl0ZXJhbD5B REQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAgIDxsaXRlcmFsPlJFU0VU PC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcgdXNlciB0byBi ZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYmUgYWJsZSB0 bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBuZXcgb3duaW5nIHJvbGUs IGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHBy aXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3IG93bmVyIG9mIGEKICAg IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWFsbC10YWJs ZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4KICAgIG9yIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxlcy1pbi1zY2hl bWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvbGluaz4KQEAgLTIz MCw2ICsyNDQsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIFRB QkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rp b25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVC TElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMsIGRlcGFydG1l bnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKworICA8cGFyYT4KKyAgIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiA8c3RydWN0bmFtZT5wcm9k dWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVS IFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gUkVTRVQ7CiA8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9u Y21kcy5jCmluZGV4IGY0ZmMxN2FjYmUxLi5iOWRhZmY3NGEzYyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTQ4LDYgKzQ4LDE1IEBACiAjaW5jbHVkZSAidXRpbHMv dmFybGVuYS5oIgogCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZhbHVlcyBmb3Ig ZmxhZ3MgYW5kIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUgdHJ1 ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZpbmUgUFVCX0RF RkFVTFRfQUNUSU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfVklBX1JPT1Qg ZmFsc2UKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorI2RlZmluZSBQVUJf REVGQVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJbmZvcm1hdGlv biB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVyIGV4cHJlc3Np b24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3IgZGV0YWlscy4K QEAgLTkwLDEyICs5OSwxMiBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkqcHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uc19naXZlbiA9IGZhbHNlOwogCiAJ LyogZGVmYXVsdHMgKi8KLQlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSB0cnVlOwotCXB1YmFjdGlv bnMtPnB1YnVwZGF0ZSA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHViZGVsZXRlID0gdHJ1ZTsKLQlw dWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IHRydWU7Ci0JKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290ID0gZmFsc2U7Ci0JKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJMSVNIX0dFTkNP TFNfTk9ORTsKKwlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSBQVUJfREVGQVVMVF9BQ1RJT05fSU5T RVJUOworCXB1YmFjdGlvbnMtPnB1YnVwZGF0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEU7 CisJcHViYWN0aW9ucy0+cHViZGVsZXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURTsKKwlw dWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURTsKKwkq cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBQVUJfREVGQVVMVF9WSUFfUk9PVDsKKwkqcHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1ucyA9IFBVQl9ERUZBVUxUX0dFTkNPTFM7CiAKIAkvKiBQYXJz ZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgb3B0aW9ucykKQEAgLTExODYsNiArMTE5NSw5OSBA QCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3QgKnJlbGlkcykKIAkJQ2FjaGVJbnZhbGlk YXRlUmVsY2FjaGVBbGwoKTsKIH0KIAorLyoKKyAqIFJlc2V0IHRoZSBwdWJsaWNhdGlvbi4KKyAq CisgKiBSZXNldCB0aGUgcHVibGljYXRpb24gcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVT IGZsYWcgdG8gZmFsc2UgYW5kIGRyb3AKKyAqIGFsbCByZWxhdGlvbnMgYW5kIHNjaGVtYXMgdGhh dCBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KKyAqLworc3RhdGljIHZvaWQK K0FsdGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10LAorCQkJCQkgIFJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sKKwlG b3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RS VUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisJTGlzdAkgICAqc2NoZW1h aWRzID0gTklMOworCUxpc3QJICAgKnJlbHMgPSBOSUw7CisJTGlzdAkgICAqcmVsaWRzID0gTklM OworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNlc1tO YXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNhdGlv bl07CisKKwkvKiBSRVNFVCBwdWJsaWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAo IXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNV RkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIFJF U0VUIHB1YmxpY2F0aW9uIikpOworCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykp OworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNl cywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJLyogUmVzZXQgdGhlIHB1YmxpY2F0aW9u IHBhcmFtZXRlcnMgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAx XSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUKTsKKwlyZXBsYWNlc1tB bnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVt X3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxU X0FDVElPTl9VUERBVEUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRl IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0g MV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSk7CisJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxldGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZB VUxUX0FDVElPTl9UUlVOQ0FURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0 cnVuY2F0ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZp YXJvb3QgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7CisJcmVwbGFj ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOworCisJdmFsdWVz W0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gQ2hhckdldERhdHVtKFBVQl9E RUZBVUxUX0dFTkNPTFMpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29s cyAtIDFdID0gdHJ1ZTsKKworCS8qIFNldCBBTEwgVEFCTEVTIGZsYWcgdG8gZmFsc2UgKi8KKwlp ZiAocHViZm9ybS0+cHViYWxsdGFibGVzKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRp b25fcHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1RBQkxF Uyk7CisJCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0 cnVlOworCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOworCX0KKworCXR1cCA9IGhlYXBf bW9kaWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAor CQkJCQkJCXJlcGxhY2VzKTsKKworCS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9n VHVwbGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIHR1cCk7CisKKwkvKiBSZW1vdmUgdGhlIGFz c29jaWF0ZWQgc2NoZW1hcyBmcm9tIHRoZSBwdWJsaWNhdGlvbiAqLworCXNjaGVtYWlkcyA9IEdl dFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisKKwkvKgorCSAqIFNjaGVtYSBsb2NrIGlzIGhl bGQgdW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGFsdGVyZWQgdG8gcHJldmVudAorCSAqIGNvbmN1 cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgorCSAqLworCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkcyk7 CisKKwkvKiBSZW1vdmUgU2NoZW1hcyAqLworCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMocHViaWQs IHNjaGVtYWlkcywgdHJ1ZSk7CisKKwkvKiBHZXQgYWxsIHJlbGF0aW9ucyBhc3NvY2lhdGVkIHdp dGggdGhlIHB1YmxpY2F0aW9uICovCisJcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMo cHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisKKwlmb3JlYWNoX29pZChyZWxpZCwgcmVs aWRzKQorCXsKKwkJUHVibGljYXRpb25SZWxJbmZvICpyZWw7CisKKwkJcmVsID0gcGFsbG9jKHNp emVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKKwkJcmVsLT53aGVyZUNsYXVzZSA9IE5VTEw7CisJ CXJlbC0+Y29sdW1ucyA9IE5JTDsKKwkJcmVsLT5yZWxhdGlvbiA9IHRhYmxlX29wZW4ocmVsaWQs IFNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jayk7CisJCXJlbHMgPSBsYXBwZW5kKHJlbHMsIHJlbCk7 CisJfQorCisJLyogUmVtb3ZlIHRoZSBhc3NvY2lhdGVkIHJlbGF0aW9ucyBmcm9tIHRoZSBwdWJs aWNhdGlvbiAqLworCVB1YmxpY2F0aW9uRHJvcFRhYmxlcyhwdWJpZCwgcmVscywgdHJ1ZSk7CisJ Q2xvc2VUYWJsZUxpc3QocmVscyk7Cit9CisKIC8qCiAgKiBBZGQgb3IgcmVtb3ZlIHRhYmxlIHRv L2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTE1MDAsNiArMTYwMiw4IEBAIEFsdGVyUHVibGlj YXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAog CWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0 bXQsIHJlbCwgdHVwKTsKKwllbHNlIGlmIChzdG10LT5hY3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNh dGlvbikKKwkJQWx0ZXJQdWJsaWNhdGlvblJlc2V0KHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOwog CWVsc2UKIAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDlm ZDQ4YWNiMWY4Li5jZTZlMGJlOGU5MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMDg1MSw2ICsxMDg1MSw4 IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpTcGVjCiAgKgogICogQUxURVIgUFVCTElD QVRJT04gbmFtZSBTRVQgcHViX29iaiBbLCAuLi5dCiAgKgorICogQUxURVIgUFVCTElDQVRJT04g bmFtZSBSRVNFVAorICoKICAqIHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJs ZV9uYW1lIFssIC4uLl0KQEAgLTEwODk3LDYgKzEwODk5LDEzIEBAIEFsdGVyUHVibGljYXRpb25T dG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9wT2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAorCQkJCXsKKwkJ CQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3Rt dCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+YWN0aW9uID0gQVBfUmVzZXRQdWJs aWNhdGlvbjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDYxNzY3NDFkMjBiLi44MGQwZDI2 YTZlZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI3Niw3ICsyMjc2LDcgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8 bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1F IFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRIKCJBREQiLCAiRFJPUCIsICJPV05FUiBUTyIs ICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7CiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5h bWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJM RSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGYxNzA2ZGY1OGZkLi5hMzgzYmNiZTFiMyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDMwNSw2ICs0MzA1LDcgQEAgdHlwZWRlZiBlbnVt IEFsdGVyUHVibGljYXRpb25BY3Rpb24KIAlBUF9BZGRPYmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0 cyB0byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmplY3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0 cyBmcm9tIHB1YmxpY2F0aW9uICovCiAJQVBfU2V0T2JqZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Yg b2JqZWN0cyAqLworCUFQX1Jlc2V0UHVibGljYXRpb24sCQkvKiByZXNldCB0aGUgcHVibGljYXRp b24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbjsKIAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQ dWJsaWNhdGlvblN0bXQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVi bGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQK aW5kZXggODk1Y2E4N2EwZGYuLmZjZmM4YTliNDg1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTkyMyw2ICsxOTIzLDEyNCBAQCBUYWJsZXM6CiBEUk9Q IFBVQkxJQ0FUSU9OIHB1YjE7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjI7CiBEUk9QIFRBQkxFIGdl bmNvbHM7CistLSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUCitDUkVBVEUg U0NIRU1BIHB1Yl9zY2gxOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEgKGEgaW50KTsKK1NF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKKy0t IFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29s dW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAg ICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNF VDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworLS0gVmVyaWZ5IHRoYXQg YXNzb2NpYXRlZCB0YWJsZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGljYXRpb24gYWZ0ZXIg UkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNh dGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzOgorICAgICJwdWJfc2NoMS50 YmwxIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVz dHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJh dGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAg ICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRl ZCBzY2hlbWFzIGFyZSByZW9tdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCitc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1Ymxp YyIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJs aWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRh YmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRl ZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAg ICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IFNFVCAoUFVCTElTSCA9ICcnKTsKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIg aXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8 IGYgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJf cmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiso MSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFf UEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMg fCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAg fCB0CisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOworLS0g VmVyaWZ5IHRoYXQgJ1BVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMnIHBhcmFtZXRlciBpcyByZXNl dAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgc3RvcmVkICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAor ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRl cyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQor IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykK KworLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIHJlc2V0IGEgcHVibGljYXRpb24K K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVncmVzc19wdWJsaWNh dGlvbl91c2VyMjsKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOyAtLSBmYWlsIC0gbXVzdCBiZSBzdXBlcnVz ZXIKK0VSUk9SOiAgbXVzdCBiZSBzdXBlcnVzZXIgdG8gUkVTRVQgcHVibGljYXRpb24KK1NFVCBS T0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldDsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gxOwog UkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIFRlc3QgdGhhdCB0aGUgSU5TRVJUIE9OIENP TkZMSUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElERU5USVRZCiAtLSB3aGVu IHRoZSB0YXJnZXQgdGFibGUgaXMgcHVibGlzaGVkLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsCmluZGV4IDNmNDIzMDYxMzk1Li40OGZhNTNmYzZjNCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3B1YmxpY2F0aW9uLnNxbApAQCAtMTIyMiw2ICsxMjIyLDYzIEBAIERST1AgUFVCTElDQVRJT04g cHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1AgVEFCTEUgZ2VuY29sczsKIAorLS0g VGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBwdWJf c2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBG T1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKKy0tIFZlcmlmeSB0 aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAor CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50Ymwx OworCistLSBWZXJpZnkgdGhhdCBhc3NvY2lhdGVkIHRhYmxlcyBhcmUgcmVtb3ZlZCBmcm9tIHRo ZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7 CisKKy0tIFZlcmlmeSB0aGF0IGFzc29jaWF0ZWQgc2NoZW1hcyBhcmUgcmVvbXZlZCBmcm9tIHRo ZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CisKKy0tIFZl cmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVz ZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHVi X3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0 CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9y ZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9HRU5F UkFURURfQ09MVU1OUyA9IHN0b3JlZCk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX0dFTkVS QVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0 CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1 c2VyCitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CisKK0RST1AgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldDsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1B IHB1Yl9zY2gxOworCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCiAtLSBUZXN0IHRoYXQg dGhlIElOU0VSVCBPTiBDT05GTElDVCBjb21tYW5kIGNvcnJlY3RseSBjaGVja3MgUkVQTElDQSBJ REVOVElUWQotLSAKMi4zNC4xCgo= --000000000000e277ee063fb9997f Content-Type: application/octet-stream; name="v24-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v24-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mg19anqc1 RnJvbSAxZjlmYmJkYzNmOGNjZDM0ZDZlMzEyYTQ2ZWUwMGRiYTRlMGQ0ZDM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjIgSnVsIDIwMjUgMDA6MzM6NTUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy NCAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0 MjsKb3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg dDEsdDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVi bGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAyMiArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDQ5ICsrKy0K IGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSArLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDk3ICsrKysr LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAyMTMg KysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAg ICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAg ICAgICAgICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jICAgfCAgMjUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgICAg ICAgICAgICB8ICAxNyArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAg ICAgICAgIHwgIDU1ICsrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAg ICAgICAgIHwgIDE4ICsrCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAg ICAgICAgfCAgMjAgKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAg ICAgICB8ICA1OCArKysrLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAg ICAgICAgIHwgIDE1ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAg ICAgICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCAgICAg ICAgfCAgIDUgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAg ICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAg fCAgODkgKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAg ICAgICB8ICA0NSArKystCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAg ICAgICAgfCAgIDEgKwogLi4uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCAgICAg ICAgIHwgMTg2ICsrKysrKysrKysrKysrKwogMjUgZmlsZXMgY2hhbmdlZCwgODU5IGluc2VydGlv bnMoKyksIDEzOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApp bmRleCBlOTA5NWJlZGYyMS4uYWUzODYxOWUyMTkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NTY4LDYg KzY1NjgsMTUgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIGlmIHRoZXJlIGlzIG5v IHB1YmxpY2F0aW9uIHF1YWxpZnlpbmcgY29uZGl0aW9uLjwvcGFyYT48L2VudHJ5PgogICAgICA8 L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgIDxzdHJ1Y3RmaWVsZD5w cmV4Y2VwdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVk CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnByYXR0cnM8L3N0cnVjdGZpZWxkPiA8dHlw ZT5pbnQydmVjdG9yPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5k ZXggOWNjZDVlYzUwMDYuLjBkMTA2ZWI5NWE3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9n aWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwKQEAgLTIyOTksMTAgKzIyOTksMTAgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVt b3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIK ICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgVG8gYWRkIHRhYmxlcyB0byBhIHB1YmxpY2F0aW9u LCB0aGUgdXNlciBtdXN0IGhhdmUgb3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUKLSAgIHRhYmxlLiBU byBhZGQgYWxsIHRhYmxlcyBpbiBzY2hlbWEgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVz dCBiZSBhCi0gICBzdXBlcnVzZXIuIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlz aGVzIGFsbCB0YWJsZXMgb3IgYWxsIHRhYmxlcyBpbgotICAgc2NoZW1hIGF1dG9tYXRpY2FsbHks IHRoZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVzZXIuCisgICBUbyBjcmVhdGUgYSBwdWJsaWNhdGlv biB1c2luZyBGT1IgQUxMIFRBQkxFUyBvciBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEsCisgICB0 aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLiBUbyBhZGQgQUxMIFRBQkxFUyBvciBBTEwgVEFC TEVTIElOIFNDSEVNQSB0byBhCisgICBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1 cGVydXNlci4gVG8gYWRkIHRhYmxlcyB0byBhIHB1YmxpY2F0aW9uLAorICAgdGhlIHVzZXIgbXVz dCBoYXZlIG93bmVyc2hpcCByaWdodHMgb24gdGhlIHRhYmxlLgogICA8L3BhcmE+CiAKICAgPHBh cmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggMTc4ZjM5ZDk1 NzUuLjM4YjQ2NTczNzhhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1Ymxp Y2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21s CkBAIC0yMiw2ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNp c2Rpdj4KIDxzeW5vcHNpcz4KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCitBTFRFUiBQ VUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IEFERCBBTEwgVEFCTEVTIFsgRVhDRVBUIFsgVEFCTEUgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KIEFM VEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT4gU0VUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9v YmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4u Ll0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1Ymxp Y2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApCkBAIC0zMyw2ICszNCwxMSBA QCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFJFU0VUCiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4g XSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9u PC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCiAgICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VS UkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorCis8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+ CisKKyAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFt ZTwvcmVwbGFjZWFibGU+IFsgKiBdCisKIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4K IApAQCAtODgsOCArOTQsOSBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKICAgPHBhcmE+CiAgICBZb3Ug bXVzdCBvd24gdGhlIHB1YmxpY2F0aW9uIHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBQVUJMSUNBVElP TjwvY29tbWFuZD4uCi0gICBBZGRpbmcgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uIGFkZGl0aW9u YWxseSByZXF1aXJlcyBvd25pbmcgdGhhdCB0YWJsZS4KLSAgIFRoZSA8bGl0ZXJhbD5BREQgVEFC TEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICBBZGRpbmcgYSB0YWJsZSB0byBvciBleGNsdWRp bmcgYSB0YWJsZSBmcm9tIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5CisgICByZXF1aXJlcyBv d25pbmcgdGhhdCB0YWJsZS4gVGhlIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTPC9saXRlcmFsPiwK KyAgIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCiAgICA8bGl0 ZXJhbD5TRVQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQK ICAgIDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUg aW52b2tpbmcgdXNlciB0byBiZSBhCiAgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwg eW91IG11c3QgYmUgYWJsZSB0bwpAQCAtMTI5LDcgKzEzNiw4IEBAIEFMVEVSIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQK ICAgICAgIHRhYmxlIG5hbWUsIG9ubHkgdGhhdCB0YWJsZSBpcyBhZmZlY3RlZC4gIElmIDxsaXRl cmFsPk9OTFk8L2xpdGVyYWw+IGlzIG5vdAogICAgICAgc3BlY2lmaWVkLCB0aGUgdGFibGUgYW5k IGFsbCBpdHMgZGVzY2VuZGFudCB0YWJsZXMgKGlmIGFueSkgYXJlCiAgICAgICBhZmZlY3RlZC4g IE9wdGlvbmFsbHksIDxsaXRlcmFsPio8L2xpdGVyYWw+IGNhbiBiZSBzcGVjaWZpZWQgYWZ0ZXIg dGhlIHRhYmxlCi0gICAgICBuYW1lIHRvIGV4cGxpY2l0bHkgaW5kaWNhdGUgdGhhdCBkZXNjZW5k YW50IHRhYmxlcyBhcmUgaW5jbHVkZWQuCisgICAgICBuYW1lIHRvIGV4cGxpY2l0bHkgaW5kaWNh dGUgdGhhdCBkZXNjZW5kYW50IHRhYmxlcyBhcmUgYWZmZWN0ZWQuIEZvcgorICAgICAgcGFydGl0 aW9uZWQgdGFibGVzLCA8bGl0ZXJhbD5PTkxZPC9saXRlcmFsPiBkb25vdCBoYXZlIGFueSBlZmZl Y3QuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAgLTIzNyw2ICsyNDUsMTQgQEAgQUxU RVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFy a2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4K KyAgIEFsdGVyIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248 L3N0cnVjdG5hbWU+IHRvIHB1Ymxpc2gKKyAgIGFsbCB0YWJsZXMgZXhjZXB0IDxzdHJ1Y3RuYW1l PnVzZXJzPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1 Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25f cHVibGljYXRpb24gQUREIEFMTCBUQUJMRVMgRVhDRVBUIHVzZXJzLCBkZXBhcnRtZW50czsKKzwv cHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCiAgIDxwYXJhPgogICAgQWRkIHRhYmxlcyA8c3RydWN0 bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3Ry dWN0bmFtZT4gYW5kIHNjaGVtYQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNn bWwKaW5kZXggODAyNjMwZjJkZjEuLmJkZGZmOWNhMGNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KLSAgICBb IEZPUiBBTEwgVEFCTEVTCisgICAgWyBGT1IgQUxMIFRBQkxFUyBbIEVYQ0VQVCBbIFRBQkxFIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSBdCiAgICAgICB8IEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAgIFsgV0lU SCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8 L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3Jl cGxhY2VhYmxlPl0gWywgLi4uIF0gKSBdCiAKQEAgLTMwLDYgKzMwLDEwIEBAIENSRUFURSBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ CiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBd IFssIC4uLiBdCiAgICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAu Li4gXQorCis8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNl cHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICBbIE9OTFkgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsg KiBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAgLTEyNSw3ICsxMjksOSBA QCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBNYXJrcyB0 aGUgcHVibGljYXRpb24gYXMgb25lIHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFi bGVzIGluCi0gICAgICB0aGUgZGF0YWJhc2UsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0 aGUgZnV0dXJlLgorICAgICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQg aW4gdGhlIGZ1dHVyZS4gSWYKKyAgICAgIDxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD4g aXMgc3BlY2lmaWVkLCB0aGVuIGV4Y2x1ZGUgcmVwbGljYXRpbmcKKyAgICAgIHRoZSBjaGFuZ2Vz IGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlcy4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTE2MSw2ICsxNjcsMzYgQEAgQ1JFQVRFIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAg ICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9 InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4Y2VwdC10YWJsZSI+CisgICAgPHRl cm0+PGxpdGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBjbGF1c2Ugc3BlY2lmaWVzIGEgbGlzdCBvZiB0YWJs ZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSB0aGUKKyAgICAgIHB1YmxpY2F0aW9uLiBJdCBjYW4gb25s eSBiZSB1c2VkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LgorICAgICAg SWYgPGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGJlZm9yZSB0aGUgdGFibGUg bmFtZSwgb25seQorICAgICAgdGhhdCB0YWJsZSBpcyBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNh dGlvbi4gSWYgPGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMKKyAgICAgIG5vdCBzcGVjaWZpZWQs IHRoZSB0YWJsZSBhbmQgYWxsIGl0cyBkZXNjZW5kYW50IHRhYmxlcyAoaWYgYW55KSBhcmUKKyAg ICAgIGV4Y2x1ZGVkLiBPcHRpb25hbGx5LCA8bGl0ZXJhbD4qPC9saXRlcmFsPiBjYW4gYmUgc3Bl Y2lmaWVkIGFmdGVyIHRoZQorICAgICAgdGFibGUgbmFtZSB0byBleHBsaWNpdGx5IGluZGljYXRl IHRoYXQgZGVzY2VuZGFudCB0YWJsZXMgYXJlIGV4Y2x1ZGVkLgorICAgICAgVGhpcyBkb2VzIG5v dCBhcHBseSB0byBhIHBhcnRpdGlvbmVkIHRhYmxlLCBob3dldmVyLiAgVGhlIHBhcnRpdGlvbmVk CisgICAgICB0YWJsZSBvciBpdHMgcGFydGl0aW9ucyBhcmUgZXhjbHVkZWQgZnJvbSB0aGUgcHVi bGljYXRpb24gYmFzZWQgb24gdGhlCisgICAgICBwYXJhbWV0ZXIgPGxpdGVyYWw+cHVibGlzaF92 aWFfcGFydGl0aW9uX3Jvb3Q8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgor ICAgICAgV2hlbiA8bGl0ZXJhbD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4g aXMgc2V0IHRvCisgICAgICA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiwgc3BlY2lmeWluZyBhIHJv b3QgcGFydGl0aW9uZWQgdGFibGUgaW4KKyAgICAgIDxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0 ZXJhbD4gZXhjbHVkZXMgaXQgYW5kIGFsbCBpdHMgcGFydGl0aW9ucyBmcm9tCisgICAgICByZXBs aWNhdGlvbi4gU3BlY2lmeWluZyBhIGxlYWYgcGFydGl0aW9uIGhhcyBubyBlZmZlY3QsIGFzIGl0 cyBjaGFuZ2VzIGFyZQorICAgICAgc3RpbGwgcmVwbGljYXRlZCB2aWEgdGhlIHJvb3QgcGFydGl0 aW9uZWQgdGFibGUuIFdoZW4KKyAgICAgIDxsaXRlcmFsPnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9y b290PC9saXRlcmFsPiBpcyBzZXQgdG8KKyAgICAgIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiwg c3BlY2lmeWluZyBhIHBhcnRpdGlvbmVkIHRhYmxlIG9yIG5vbi1sZWFmCisgICAgICBwYXJ0aXRp b24gaGFzIG5vIGVmZmVjdCwgYXMgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCB2aWEgdGhlIGxlYWYK KyAgICAgIHBhcnRpdGlvbnMuIFNwZWNpZnlpbmcgYSBsZWFmIHBhcnRpdGlvbiBleGNsdWRlcyBv bmx5IHRoYXQgcGFydGl0aW9uIGZyb20KKyAgICAgIHJlcGxpY2F0aW9uLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5 IGlkPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgiPgogICAgIDx0ZXJtPjxsaXRl cmFsPldJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFy YW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZh bHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAgIDxsaXN0 aXRlbT4KQEAgLTQ0Miw2ICs0NzgsMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25f cHVibGljYXRpb24gRk9SIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50cywgVEFCTEVTIEkKIENSRUFU RSBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBGT1IgVEFCTEVTIElOIFNDSEVNQSBtYXJr ZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBD cmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBpbiBhbGwgdGhl IHRhYmxlcyBleGNlcHQgZm9yCisgICB0aGUgY2hhbmdlcyBvZiA8c3RydWN0bmFtZT51c2Vyczwv c3RydWN0bmFtZT4gYW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT46 Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgdXNlcnMsIGRlcGFydG1lbnRzOworPC9wcm9ncmFtbGlzdGluZz4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJs aXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1l PiwKICAgIGJ1dCByZXBsaWNhdGVzIG9ubHkgY29sdW1ucyA8c3RydWN0bmFtZT51c2VyX2lkPC9z dHJ1Y3RuYW1lPiBhbmQKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCAxYTMzOTYwMGJjNC4uY2E4 ZjZkYzliOWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTIxMDMsOCArMjEwMyw5IEBAIFNF TEVDVCAkMSBccGFyc2Ugc3RtdDEKICAgICAgICAgbGlzdGVkLgogICAgICAgICBJZiA8bGl0ZXJh bD54PC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgcmVzdWx0 cwogICAgICAgICBhcmUgZGlzcGxheWVkIGluIGV4cGFuZGVkIG1vZGUuCi0gICAgICAgIElmIDxs aXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0 YWJsZXMgYW5kCi0gICAgICAgIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRp b24gYXJlIHNob3duIGFzIHdlbGwuCisgICAgICAgIElmIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlz IGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0YWJsZXMsCisgICAgICAgIGV4Y2x1 ZGVkIHRhYmxlcyBhbmQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBh cmUgc2hvd24gYXMKKyAgICAgICAgd2VsbC4KICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xp c3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmMKaW5kZXggYjkxMWVmY2Y5Y2IuLmFmMWI4YzllZDY3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCkBAIC0zNTEsNyArMzUxLDggQEAgR2V0UHViUGFydGl0aW9uT3B0aW9u UmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAog ICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAqLwogT2lkCi1HZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50 ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1 Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29s IHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlPaWQJCQl0b3Btb3N0X3JlbGlk ID0gSW52YWxpZE9pZDsKQEAgLTM2MywzMiArMzY0LDQ0IEBAIEdldFRvcE1vc3RBbmNlc3Rvcklu UHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBpbnQgKmFuY2VzdG9yX2xl dmVsCiAJZm9yZWFjaChsYywgYW5jZXN0b3JzKQogCXsKIAkJT2lkCQkJYW5jZXN0b3IgPSBsZmly c3Rfb2lkKGxjKTsKLQkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25z KGFuY2VzdG9yKTsKLQkJTGlzdAkgICAqYXNjaGVtYVB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAq YXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCBmYWxzZSk7CisJCUxp c3QJICAgKmFzY2hlbWFwdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFleGNlcHRwdWJpZHMgPSBO SUw7CisJCWJvb2wJCXNldF90b3AgPSBmYWxzZTsKIAogCQlsZXZlbCsrOwogCi0JCWlmIChsaXN0 X21lbWJlcl9vaWQoYXB1YmlkcywgcHVib2lkKSkKKwkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHRh YmxlIHB1YmxpY2F0aW9ucyAqLworCQlzZXRfdG9wID0gbGlzdF9tZW1iZXJfb2lkKGFwdWJpZHMs IHB1Ym9pZCk7CisJCWlmICghc2V0X3RvcCkKIAkJewotCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2Vz dG9yOworCQkJYXNjaGVtYXB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25h bWVzcGFjZShhbmNlc3RvcikpOwogCi0JCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCi0JCQkJKmFuY2Vz dG9yX2xldmVsID0gbGV2ZWw7CisJCQkvKiBjaGVjayBpZiBtZW1iZXIgb2Ygc2NoZW1hIHB1Ymxp Y2F0aW9ucyAqLworCQkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhc2NoZW1hcHViaWRzLCBw dWJvaWQpOworCisJCQkvKgorCQkJICogSWYgdGhlIHB1YmxpY2F0aW9uIGlzIGFsbCB0YWJsZXMg cHVibGljYXRpb24gYW5kIHRoZSB0YWJsZSBpcworCQkJICogbm90IHBhcnQgb2YgZXhjZXB0aW9u IHRhYmxlcy4KKwkJCSAqLworCQkJaWYgKCFzZXRfdG9wICYmIHB1YmFsbHRhYmxlcykKKwkJCXsK KwkJCQlhZXhjZXB0cHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIHRy dWUpOworCQkJCXNldF90b3AgPSAhbGlzdF9tZW1iZXJfb2lkKGFleGNlcHRwdWJpZHMsIHB1Ym9p ZCk7CisJCQl9CiAJCX0KLQkJZWxzZQorCisJCWlmIChzZXRfdG9wKQogCQl7Ci0JCQlhc2NoZW1h UHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9y KSk7Ci0JCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFQdWJpZHMsIHB1Ym9pZCkpCi0JCQl7 Ci0JCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOworCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2Vz dG9yOwogCi0JCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBs ZXZlbDsKLQkJCX0KKwkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKKwkJCQkqYW5jZXN0b3JfbGV2ZWwg PSBsZXZlbDsKIAkJfQogCiAJCWxpc3RfZnJlZShhcHViaWRzKTsKLQkJbGlzdF9mcmVlKGFzY2hl bWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoYXNjaGVtYXB1Ymlkcyk7CisJCWxpc3RfZnJlZShhZXhj ZXB0cHViaWRzKTsKIAl9CiAKIAlyZXR1cm4gdG9wbW9zdF9yZWxpZDsKQEAgLTQ2Myw2ICs0NzYs MTcgQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJ bmZvICpwcmksCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpLCBwdWIt Pm5hbWUpKSk7CiAJfQogCisJLyoKKwkgKiBDaGVjayBmb3IgcGFydGl0aW9ucyBvZiBwYXJ0aXRp b25lZCB0YWJsZSB3aGljaCBhcmUgc3BlY2lmaWVkIHdpdGgKKwkgKiBFWENFUFQgY2xhdXNlIGFu ZCBwYXJ0aXRpb25lZCB0YWJsZSBpcyBwdWJsaXNoZWQgd2l0aAorCSAqIHB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290ID0gdHJ1ZS4KKwkgKi8KKwlpZiAocHViLT5hbGx0YWJsZXMgJiYgcHJpLT5l eGNlcHQgJiYgdGFyZ2V0cmVsLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uICYmCisJCXB1Yi0+cHVi dmlhcm9vdCkKKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJtc2coInBhcnRpdGlvbiBcIiVz XCIgd2lsbCBiZSByZXBsaWNhdGVkIGFzIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IGlzIFwi JXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpLCAidHJ1ZSIp KSk7CisKIAljaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24odGFyZ2V0cmVsKTsKIAogCS8q IFZhbGlkYXRlIGFuZCB0cmFuc2xhdGUgY29sdW1uIG5hbWVzIGludG8gYSBCaXRtYXBzZXQgb2Yg YXR0bnVtcy4gKi8KQEAgLTQ3OSw2ICs1MDMsOCBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24o T2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8gKnByaSwKIAkJT2JqZWN0SWRHZXREYXR1bShw dWJpZCk7CiAJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcmVsX3BycmVsaWQgLSAxXSA9CiAJ CU9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3Jl bF9wcmV4Y2VwdCAtIDFdID0KKwkJQm9vbEdldERhdHVtKHByaS0+ZXhjZXB0KTsKIAogCS8qIEFk ZCBxdWFsaWZpY2F0aW9ucywgaWYgYXZhaWxhYmxlICovCiAJaWYgKHByaS0+d2hlcmVDbGF1c2Ug IT0gTlVMTCkKQEAgLTc0Niw5ICs3NzIsOSBAQCBwdWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBw dWJpZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25vdF9leGlzdHMpCiAJcmV0dXJuIG15c2VsZjsK IH0KIAotLyogR2V0cyBsaXN0IG9mIHB1YmxpY2F0aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gKi8K Ky8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZvciBhIHJlbGF0aW9uIHRoYXQgbWF0 Y2hlcyB0aGUgZXhjZXB0X2ZsYWcgKi8KIExpc3QgKgotR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMo T2lkIHJlbGlkKQorR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2Vw dF9mbGFnKQogewogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKIAlDYXRDTGlzdCAgICpwdWJyZWxs aXN0OwpAQCAtNzYyLDcgKzc4OCw4IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxp ZCkKIAkJSGVhcFR1cGxlCXR1cCA9ICZwdWJyZWxsaXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKIAkJ T2lkCQkJcHViaWQgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSkt PnBycHViaWQ7CiAKLQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlm IChleGNlcHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVw KSktPnByZXhjZXB0KQorCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJ fQogCiAJUmVsZWFzZVN5c0NhY2hlTGlzdChwdWJyZWxsaXN0KTsKQEAgLTc3MSwxMyArNzk4LDE0 IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKIH0KIAogLyoKLSAqIEdldHMg bGlzdCBvZiByZWxhdGlvbiBvaWRzIGZvciBhIHB1YmxpY2F0aW9uLgorICogR2V0cyBsaXN0IG9m IHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVibGljYXRpb24gdGhhdCBtYXRjaGVzIHRoZSBleGNlcHRf ZmxhZy4KICAqCiAgKiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgRk9SIFRBQkxFIHB1YmxpY2F0 aW9ucywgdGhlIEZPUiBBTEwgVEFCTEVTCiAgKiBzaG91bGQgdXNlIEdldEFsbFRhYmxlc1B1Ymxp Y2F0aW9uUmVsYXRpb25zKCkuCiAgKi8KIExpc3QgKgotR2V0UHVibGljYXRpb25SZWxhdGlvbnMo T2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCitHZXRQdWJsaWNhdGlv blJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKKwkJ CQkJCWJvb2wgZXhjZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0OwogCVJlbGF0aW9uCXB1 YnJlbHNyZWw7CkBAIC04MDIsOCArODMwLDExIEBAIEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9p ZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogCQlGb3JtX3BnX3B1Ymxp Y2F0aW9uX3JlbCBwdWJyZWw7CiAKIAkJcHVicmVsID0gKEZvcm1fcGdfcHVibGljYXRpb25fcmVs KSBHRVRTVFJVQ1QodHVwKTsKLQkJcmVzdWx0ID0gR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRp b25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCi0JCQkJCQkJCQkJCQlwdWJyZWwtPnBycmVsaWQpOwor CisJCWlmIChleGNlcHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQorCQkJcmVzdWx0ID0gR2V0 UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCisJCQkJCQkJ CQkJCQkJcHVicmVsLT5wcnJlbGlkKTsKKwogCX0KIAogCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7 CkBAIC04NjEsMTMgKzg5MiwxOSBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkKICAq IHJvb3QgcGFydGl0aW9uZWQgdGFibGVzLgogICovCiBMaXN0ICoKLUdldEFsbFRhYmxlc1B1Ymxp Y2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFRhYmxlc1B1YmxpY2F0aW9u UmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogewogCVJlbGF0aW9uCWNsYXNz UmVsOwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlUYWJsZVNjYW5EZXNjIHNjYW47CiAJSGVhcFR1 cGxlCXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRsaXN0 OworCisJZXhjZXB0bGlzdCA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBwdWJ2aWFy b290ID8KKwkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9BTEwgOgorCQkJCQkJCQkJCSBQVUJM SUNBVElPTl9QQVJUX1JPT1QsCisJCQkJCQkJCQkJIHRydWUpOwogCiAJY2xhc3NSZWwgPSB0YWJs ZV9vcGVuKFJlbGF0aW9uUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKIApAQCAtODg0LDcg KzkyMSw4IEBAIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9v dCkKIAkJT2lkCQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJaWYgKGlzX3B1Ymxpc2hhYmxl X2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAm JiBwdWJ2aWFyb290KSkKKwkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYgcHVidmlhcm9v dCkgJiYKKwkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQpKQogCQkJcmVzdWx0 ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC05MDUsNyArOTQzLDggQEAg R2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQogCQkJT2lk CQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhy ZWxpZCwgcmVsRm9ybSkgJiYKLQkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24pCisJCQkJIXJl bEZvcm0tPnJlbGlzcGFydGl0aW9uICYmCisJCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0 LCByZWxpZCkpCiAJCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJCX0K IApAQCAtMTE2MCw3ICsxMTk5LDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5D VElPTl9BUkdTKQogCQkJICogdGhvc2UuIE90aGVyd2lzZSwgZ2V0IHRoZSBwYXJ0aXRpb25lZCB0 YWJsZSBpdHNlbGYuCiAJCQkgKi8KIAkJCWlmIChwdWJfZWxlbS0+YWxsdGFibGVzKQotCQkJCXB1 Yl9lbGVtX3RhYmxlcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVt LT5wdWJ2aWFyb290KTsKKwkJCQlwdWJfZWxlbV90YWJsZXMgPSBHZXRBbGxUYWJsZXNQdWJsaWNh dGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAorCQkJCQkJCQkJCQkJCQkJCSAgIHB1Yl9lbGVt LT5wdWJ2aWFyb290KTsKIAkJCWVsc2UKIAkJCXsKIAkJCQlMaXN0CSAgICpyZWxpZHMsCkBAIC0x MTY5LDcgKzEyMDksOCBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCQkJcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViX2VsZW0tPm9pZCwK IAkJCQkJCQkJCQkJCSBwdWJfZWxlbS0+cHVidmlhcm9vdCA/CiAJCQkJCQkJCQkJCQkgUFVCTElD QVRJT05fUEFSVF9ST09UIDoKLQkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYpOwor CQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfTEVBRiwKKwkJCQkJCQkJCQkJCSBmYWxzZSk7 CiAJCQkJc2NoZW1hcmVsaWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHVi X2VsZW0tPm9pZCwKIAkJCQkJCQkJCQkJCQkJCQlwdWJfZWxlbS0+cHVidmlhcm9vdCA/CiAJCQkJ CQkJCQkJCQkJCQkJUFVCTElDQVRJT05fUEFSVF9ST09UIDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMKaW5kZXggYjlkYWZmNzRhM2MuLjdmODQ3YjExNmJmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjAzLDYgKzIwMywxMSBAQCBPYmplY3Rz SW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJc3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElD QVRJT05PQkpfVEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJ CQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsK KwkJCWNhc2UgUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFi bGUtPmV4Y2VwdCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1 YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1ND SEVNQToKQEAgLTI3Nyw3ICsyODIsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2Vy KE5vZGUgKm5vZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250 YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICph bmNlc3RvcnMsCi0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVi dmlhcm9vdCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lk CQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTMwNCw3ICszMDksOCBA QCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxh dGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9y ZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBH ZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJ CQkJCQkJCQkJCSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9h c19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNjQsNyArMzcwLDcg QEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVs YXRpb24sIExpc3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCQkJ Ym9vbCBwdWJ2aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQlib29sICppbnZh bGlkX2NvbHVtbl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29sICppbnZhbGlk X2NvbHVtbl9saXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJCQly ZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzg4LDcgKzM5NCw4IEBAIHB1 Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBM aXN0ICphbmNlc3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3Jl bC0+cmVsaXNwYXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFu Y2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9h c19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9y cywKKwkJCQkJCQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElz VmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBA IC01MjQsNyArNTMxLDcgQEAgSW52YWxpZGF0ZVB1YlJlbFN5bmNDYWNoZShPaWQgcHViaWQsIGJv b2wgcHViYWxsdGFibGVzKQogCQkgKiBpdHMgbGVhdmVzLgogCQkgKi8KIAkJcmVsaWRzID0gR2V0 UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCi0JCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRf QUxMKTsKKwkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9BTEwsIGZhbHNlKTsKIAkJc2NoZW1h cmVsaWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCiAJCQkJCQkJ CQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIApAQCAtOTIwLDUyICs5MjcsNTAgQEAgQ3Jl YXRlUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQg KnN0bXQpCiAJLyogTWFrZSB0aGUgY2hhbmdlcyB2aXNpYmxlLiAqLwogCUNvbW1hbmRDb3VudGVy SW5jcmVtZW50KCk7CiAKLQkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlv bi4gKi8KLQlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCi0JewotCQkvKiBJbnZhbGlkYXRlIHJl bGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiAqLwotCQlDYWNoZUlu dmFsaWRhdGVSZWxjYWNoZUFsbCgpOwotCX0KLQllbHNlCi0JewotCQlPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCi0JCQkJCQkJ CSAgICZzY2hlbWFpZGxpc3QpOworCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1 Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKKwkJCQkJCQkgICAmc2NoZW1haWRsaXN0KTsK IAotCQkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KLQkJaWYg KHNjaGVtYWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVydXNlcigpKQotCQkJZXJlcG9ydChFUlJPUiwK LQkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAotCQkJCQllcnJt c2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJs aWNhdGlvbiIpKTsKKwkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIg Ki8KKwlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJ CWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBUQUJMRVMgSU4gU0NIRU1B IHB1YmxpY2F0aW9uIikpOwogCi0JCWlmIChyZWxhdGlvbnMgIT0gTklMKQotCQl7Ci0JCQlMaXN0 CSAgICpyZWxzOworCWlmIChyZWxhdGlvbnMgIT0gTklMKQorCXsKKwkJTGlzdAkgICAqcmVsczsK IAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVsYXRpb25zKTsKLQkJCVRyYW5zZm9ybVB1Yldo ZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKLQkJCQkJCQkJCSBwdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7 CisJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwK KwkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJQ2hlY2tQdWJSZWxh dGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwgcmVscywKLQkJCQkJCQkJCSAgIHNjaGVtYWlk bGlzdCAhPSBOSUwsCi0JCQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJ CUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHN0bXQtPnB1Ym5hbWUsIHJlbHMsCisJCQkJCQkJ CSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCisJCQkJCQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290KTsKIAotCQkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBO VUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwotCQl9CisJCVB1YmxpY2F0aW9uQWRkVGFi bGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CisJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwor CX0KIAotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCkKLQkJewotCQkJLyoKLQkJCSAqIFNjaGVt YSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVu dAotCQkJICogY29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24uCi0JCQkgKi8KLQkJCUxvY2tTY2hl bWFMaXN0KHNjaGVtYWlkbGlzdCk7Ci0JCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBz Y2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwotCQl9CisJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwp CisJeworCQkvKgorCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlv biBpcyBjcmVhdGVkIHRvIHByZXZlbnQKKwkJICogY29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24u CisJCSAqLworCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZGxpc3QpOworCQlQdWJsaWNhdGlvbkFk ZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwogCX0KIAogCXRhYmxl X2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKKwkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3 aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJewor CQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1 aWx0LiAqLworCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOworCX0KKwogCUludm9rZU9i amVjdFBvc3RDcmVhdGVIb29rKFB1YmxpY2F0aW9uUmVsYXRpb25JZCwgcHVib2lkLCAwKTsKIAog CWlmICh3YWxfbGV2ZWwgIT0gV0FMX0xFVkVMX0xPR0lDQUwpCkBAIC0xMDI3LDcgKzEwMzIsNyBA QCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LAogCQkJCQkJICAgQWNjZXNzU2hhcmVMb2NrKTsKIAogCQlyb290X3Jl bGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKLQkJCQkJCQkJCQkJ ICBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCwgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMsIHJvb3RfcmVsaWRzKQogCQl7CkBAIC0xMTQ3 LDcgKzExNTIsNyBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUs IEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkgKi8KIAkJaWYgKHJvb3RfcmVsaWRzID09 IE5JTCkKIAkJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwK LQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKKwkJCQkJCQkJCQkJIFBVQkxJQ0FU SU9OX1BBUlRfQUxMLCBmYWxzZSk7CiAJCWVsc2UKIAkJewogCQkJLyoKQEAgLTEyNDMsNiArMTI0 OCwyNyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5j b2xzIC0gMV0gPSBDaGFyR2V0RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09MUyk7CiAJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVlOwogCisJLyoKKwkgKiBM b2NrIHRoZSBwdWJsaWNhdGlvbiBzbyBub2JvZHkgZWxzZSBjYW4gZG8gYW55dGhpbmcgd2l0aCBp dC4gVGhpcworCSAqIHByZXZlbnRzIGNvbmN1cnJlbnQgcHVibGljYXRpb24gcGFyYW1ldGVyIGNo YW5nZXMsIGFkZC9kcm9wIHRhYmxlcyhzKQorCSAqIHRvIHRoZSBwdWJsaWNhdGlvbiBhbmQgYWRk L2Ryb3Agc2NoZW1hKHMpIHRvIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlMb2NrRGF0YWJhc2VP YmplY3QoUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJpZCwgMCwKKwkJCQkJICAgQWNjZXNzRXhj bHVzaXZlTG9jayk7CisKKwkvKgorCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkgdGhlIHRpbWUg d2UgYWNxdWlyZSB0aGUgbG9jayBvbiBwdWJsaWNhdGlvbiwKKwkgKiBjb25jdXJyZW50IERETCBo YXMgcmVtb3ZlZCBpdC4gV2UgY2FuIHRlc3QgdGhpcyBieSBjaGVja2luZyB0aGUKKwkgKiBleGlz dGVuY2Ugb2YgcHVibGljYXRpb24uIFdlIGdldCB0aGUgdHVwbGUgYWdhaW4gdG8gYXZvaWQgdGhl IHJpc2sgb2YKKwkgKiBhbnkgcHVibGljYXRpb24gb3B0aW9uIGdldHRpbmcgY2hhbmdlZC4KKwkg Ki8KKwl0dXAgPSBTZWFyY2hTeXNDYWNoZUNvcHkxKFBVQkxJQ0FUSU9OT0lELCBPYmplY3RJZEdl dERhdHVtKHB1YmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCWVycm1z ZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJICAgc3RtdC0+cHVi bmFtZSkpOworCiAJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLwogCWlmIChwdWJm b3JtLT5wdWJhbGx0YWJsZXMpCiAJewpAQCAtMTI3MCw3ICsxMjk2LDEwIEBAIEFsdGVyUHVibGlj YXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10 LAogCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMocHViaWQsIHNjaGVtYWlkcywgdHJ1ZSk7CiAKIAkv KiBHZXQgYWxsIHJlbGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uICovCi0J cmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCk7CisJaWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwkJcmVsaWRzID0gR2V0UHVibGlj YXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgdHJ1ZSk7CisJZWxz ZQorCQlyZWxpZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05f UEFSVF9ST09ULCBmYWxzZSk7CiAKIAlmb3JlYWNoX29pZChyZWxpZCwgcmVsaWRzKQogCXsKQEAg LTEyODgsNiArMTMxNyw3OSBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAlDbG9zZVRhYmxlTGlzdChyZWxzKTsK IH0KIAorLyoKKyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMgZGVmYXVsdCB2YWx1ZXMu CisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNhdGlvbiBzYXRpc2ZpZXMgYWxsIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIGEpIFB1YmxpY2F0aW9uIGlzIG5vdCBzZXQgd2l0 aCAiRk9SIEFMTCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlvbiBpcyBoYXZpbmcgZGVmYXVsdCBw dWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQdWJsaWNhdGlvbiBpcyBub3QgYXNz b2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0aW9uIGlzIG5vdCBhc3NvY2lhdGVk IHdpdGggcmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29sCitDaGVja1B1YmxpY2F0aW9uRGVmVmFs dWVzKEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZv cm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9y bS0+b2lkOworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisKKwlpZiAocHViZm9ybS0+cHViYWxs dGFibGVzICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJCXJldHVybiBmYWxzZTsKKworCWlm IChwdWJmb3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB8fAorCQlw dWJmb3JtLT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSB8fAorCQlwdWJm b3JtLT5wdWJkZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB8fAorCQlwdWJmb3Jt LT5wdWJ0cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEUgfHwKKwkJcHViZm9y bS0+cHVidmlhcm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9PVCkKKwkJcmV0dXJuIGZhbHNlOwor CisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7CisJaWYgKGxpc3RfbGVu Z3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJvYmpzID0gR2V0UHVibGljYXRp b25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgZmFsc2UpOworCWlmIChs aXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9 CisKKy8qCisgKiBTZXQgcHVibGljYXRpb24gdG8gcHVibGlzaCBhbGwgdGFibGVzLgorICovCitz dGF0aWMgdm9pZAorQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxlcyhSZWxhdGlvbiByZWwsIEhl YXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtIFBHX1VTRURfRk9S X0FTU0VSVFNfT05MWSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwli b29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNf cGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOwor CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCUFzc2VydCghcHViZm9ybS0+cHViYWxsdGFi bGVzKTsKKyNlbmRpZgorCisJLyogQWRkIEFMTCBUQUJMRVMgdG8gdGhlIHB1YmxpY2F0aW9uIHJl cXVpcmVzIHN1cGVydXNlciAqLworCWlmICghc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCWVycm1z ZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gQUREIEFMTCBUQUJMRVMgdG8gdGhlIHB1YmxpY2F0aW9u IikpOworCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxs cywgZmFsc2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVv ZihyZXBsYWNlcykpOworCisJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyAqLworCXZhbHVlc1tBbnVt X3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKHRydWUpOwor CXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOwor CisJdHVwID0gaGVhcF9tb2RpZnlfdHVwbGUodHVwLCBSZWxhdGlvbkdldERlc2NyKHJlbCksIHZh bHVlcywgbnVsbHMsCisJCQkJCQkJcmVwbGFjZXMpOworCisJLyogVXBkYXRlIHRoZSBjYXRhbG9n LiAqLworCUNhdGFsb2dUdXBsZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKK30KKwog LyoKICAqIEFkZCBvciByZW1vdmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAt MTMyNiw3ICsxNDI4LDggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9u U3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAllbHNlCQkJCQkJLyogQVBfU2V0T2JqZWN0cyAq LwogCXsKIAkJTGlzdAkgICAqb2xkcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHVi aWQsCi0JCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJCQkJCQkJCQkJCQkJ CVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwKKwkJCQkJCQkJCQkJCQkJZmFsc2UpOwogCQlMaXN0CSAg ICpkZWxyZWxzID0gTklMOwogCQlMaXN0Q2VsbCAgICpvbGRsYzsKIApAQCAtMTQyNyw2ICsxNTMw LDcgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwg SGVhcFR1cGxlIHR1cCwKIAkJCQlvbGRyZWwgPSBwYWxsb2Moc2l6ZW9mKFB1YmxpY2F0aW9uUmVs SW5mbykpOwogCQkJCW9sZHJlbC0+d2hlcmVDbGF1c2UgPSBOVUxMOwogCQkJCW9sZHJlbC0+Y29s dW1ucyA9IE5JTDsKKwkJCQlvbGRyZWwtPmV4Y2VwdCA9IGZhbHNlOwogCQkJCW9sZHJlbC0+cmVs YXRpb24gPSB0YWJsZV9vcGVuKG9sZHJlbGlkLAogCQkJCQkJCQkJCQkgIFNoYXJlVXBkYXRlRXhj bHVzaXZlTG9jayk7CiAJCQkJZGVscmVscyA9IGxhcHBlbmQoZGVscmVscywgb2xkcmVsKTsKQEAg LTE0NzcsNyArMTU4MSw4IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10LAogCQlMaXN0Q2VsbCAgICpsYzsKIAkJTGlzdAkgICAqcmVsb2lkczsKIAot CQlyZWxvaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViZm9ybS0+b2lkLCBQVUJMSUNB VElPTl9QQVJUX1JPT1QpOworCQlyZWxvaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHVi Zm9ybS0+b2lkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QsCisJCQkJCQkJCQkJICBmYWxzZSk7CiAK IAkJZm9yZWFjaChsYywgcmVsb2lkcykKIAkJewpAQCAtMTYwMCw2ICsxNzA1LDIwIEBAIEFsdGVy UHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3Rt dCkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfUFVCTElDQVRJ T04sCiAJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpOwogCisJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVz KQorCXsKKwkJYm9vbAkJaXNkZWZhdWx0ID0gQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVlcyh0dXAp OworCisJCWlmICghaXNkZWZhdWx0KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQllcnJtc2coImFkZGluZyBB TEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGlj YXRpb24gcGFyYW1ldGVyIHZhbHVlcyIpLAorCQkJCQllcnJkZXRhaWwoIkFMTCBUQUJMRVMgZmxh ZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29j aWF0ZWQuIiksCisJCQkJCWVycmhpbnQoIlVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQg dG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uIikpOworCisJCUFsdGVyUHVibGljYXRpb25TZXRBbGxU YWJsZXMocmVsLCB0dXApOworCX0KKwogCWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1Ymxp Y2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKIAllbHNlIGlmIChzdG10LT5h Y3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKQEAgLTE4MTIsNiArMTkzMSw3IEBAIE9wZW5U YWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlwdWJfcmVsLT5yZWxhdGlvbiA9IHJlbDsKIAkJcHVi X3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVyZUNsYXVzZTsKIAkJcHViX3JlbC0+Y29sdW1ucyA9 IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJcmVscyA9IGxh cHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgbXly ZWxpZCk7CiAKQEAgLTE4ODQsNiArMjAwNCw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVz KQogCiAJCQkJLyogY2hpbGQgaW5oZXJpdHMgY29sdW1uIGxpc3QgZnJvbSBwYXJlbnQgKi8KIAkJ CQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJCQlwdWJfcmVsLT5leGNlcHQgPSB0 LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCQkJcmVsaWRz ID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGlsZHJlbGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwppbmRleCBmYzg5MzUyYjY2MS4uZWQzNThkNzJhN2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCkBAIC04NjI3LDcgKzg2MjcsNyBAQCBBVEV4ZWNTZXRFeHByZXNzaW9uKEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCSAqIGV4 cHJlc3Npb25zLgogCSAqLwogCWlmIChhdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRF RF9WSVJUVUFMICYmCi0JCUdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQo cmVsKSkgIT0gTklMKQorCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlk KHJlbCksIGZhbHNlKSAhPSBOSUwpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coIkFMVEVSIFRBQkxFIC8g U0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucyBpbiB0YWJsZXMgdGhhdCBhcmUgcGFydCBvZiBhIHB1YmxpY2F0aW9uIiksCkBAIC0xODgy Miw3ICsxODgyMiw3IEBAIEFUUHJlcENoYW5nZVBlcnNpc3RlbmNlKEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLCBib29sIHRvTG9nZ2VkKQogCSAqIFVOTE9HR0VELCBhcyBVTkxP R0dFRCB0YWJsZXMgY2FuJ3QgYmUgcHVibGlzaGVkLgogCSAqLwogCWlmICghdG9Mb2dnZWQgJiYK LQkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpKSAhPSBOSUwp CisJCWxpc3RfbGVuZ3RoKEdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQo cmVsKSwgZmFsc2UpKSA+IDApCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygiY2Fubm90 IGNoYW5nZSB0YWJsZSBcIiVzXCIgdG8gdW5sb2dnZWQgYmVjYXVzZSBpdCBpcyBwYXJ0IG9mIGEg cHVibGljYXRpb24iLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggY2U2ZTBiZThlOTEuLjI1MTI4ODljYjllIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTQ0Niw3ICs0NDYsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CQkJCXRyYW5zZm9ybV9lbGVtZW50X2xpc3QgdHJhbnNmb3JtX3R5cGVfbGlzdAogCQkJCVRyaWdn ZXJUcmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlz dCBvcHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKLQkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpf bGlzdAorCQkJCWRyb3Bfb3B0aW9uX2xpc3QgcHViX29ial9saXN0IGV4Y2VwdF9wdWJfb2JqX2xp c3QKIAogJXR5cGUgPHJldGNsYXVzZT4gcmV0dXJuaW5nX2NsYXVzZQogJXR5cGUgPG5vZGU+CXJl dHVybmluZ19vcHRpb24KQEAgLTU4NCw2ICs1ODQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vy c2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkp OwogJXR5cGUgPG5vZGU+CXZhcl92YWx1ZSB6b25lX3ZhbHVlCiAldHlwZSA8cm9sZXNwZWM+IGF1 dGhfaWRlbnQgUm9sZVNwZWMgb3B0X2dyYW50ZWRfYnkKICV0eXBlIDxwdWJsaWNhdGlvbm9iamVj dHNwZWM+IFB1YmxpY2F0aW9uT2JqU3BlYworJXR5cGUgPHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4g RXhjZXB0UHVibGljYXRpb25PYmpTcGVjCiAKICV0eXBlIDxrZXl3b3JkPiB1bnJlc2VydmVkX2tl eXdvcmQgdHlwZV9mdW5jX25hbWVfa2V5d29yZAogJXR5cGUgPGtleXdvcmQ+IGNvbF9uYW1lX2tl eXdvcmQgcmVzZXJ2ZWRfa2V5d29yZApAQCAtMTA3MDMsNyArMTA3MDQsNyBAQCBBbHRlck93bmVy U3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJv bGVTcGVjCiAgKgogICogQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgW1dJVEggb3B0aW9uc10KICAq Ci0gKiBDUkVBVEUgUFVCTElDQVRJT04gRk9SIEFMTCBUQUJMRVMgW1dJVEggb3B0aW9uc10KKyAq IENSRUFURSBQVUJMSUNBVElPTiBGT1IgQUxMIFRBQkxFUyBbRVhDRVBUIFtUQUJMRV0gdGFibGUg WywgLi4uXV0gW1dJVEggb3B0aW9uc10KICAqCiAgKiBDUkVBVEUgUFVCTElDQVRJT04gRk9SIHB1 Yl9vYmogWywgLi4uXSBbV0lUSCBvcHRpb25zXQogICoKQEAgLTEwNzIzLDEyICsxMDcyNCwxMyBA QCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPm9wdGlvbnMgPSAkNDsKIAkJCQkJJCQg PSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgRk9SIEFM TCBUQUJMRVMgb3B0X2RlZmluaXRpb24KKwkJCXwgQ1JFQVRFIFBVQkxJQ0FUSU9OIG5hbWUgRk9S IEFMTCBUQUJMRVMgZXhjZXB0X3B1Yl9vYmpfbGlzdCBvcHRfZGVmaW5pdGlvbgogCQkJCXsKIAkJ CQkJQ3JlYXRlUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlUHVibGljYXRpb25T dG10KTsKIAogCQkJCQluLT5wdWJuYW1lID0gJDM7Ci0JCQkJCW4tPm9wdGlvbnMgPSAkNzsKKwkJ CQkJbi0+b3B0aW9ucyA9ICQ4OworCQkJCQluLT5wdWJvYmplY3RzID0gKExpc3QgKikkNzsKIAkJ CQkJbi0+Zm9yX2FsbF90YWJsZXMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJ fQpAQCAtMTA3NjYsNiArMTA3NjgsNyBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCSQkLT5w dWJ0YWJsZS0+cmVsYXRpb24gPSAkMjsKIAkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7 CiAJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJJCQtPmxvY2F0aW9u ID0gQDE7CiAJCQkJfQogCQkJfCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKIAkJCQl7CkBAIC0x MDg0MSw2ICsxMDg0NCwyNSBAQCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2JqU3BlYwogCQkJ CQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJOwogCitFeGNlcHRQdWJsaWNhdGlvbk9ialNw ZWM6CisJCQkgcmVsYXRpb25fZXhwcgorCQkJCXsKKwkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNh dGlvbk9ialNwZWMpOworCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0VYQ0VQ VF9UQUJMRTsKKwkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7 CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5y ZWxhdGlvbiA9ICQxOworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKKwkJCQl9CisJOworCitleGNl cHRfcHViX29ial9saXN0OglFWENFUFQgb3B0X3RhYmxlIEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3Bl YworCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgkMyk7IH0KKwkJCXwgZXhjZXB0X3B1Yl9vYmpfbGlz dCAnLCcgRXhjZXB0UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAk Myk7IH0KKwkJCXwgIC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwk7CisKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgU0VUICggb3B0 aW9ucyApCkBAIC0xMDg1Myw2ICsxMDg3NSw4IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25P YmpTcGVjCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAogICoKKyAqIEFMVEVS IFBVQkxJQ0FUSU9OIG5hbWUgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFtUQUJMRV0gdGFibGVfbmFt ZSBbLCAuLi5dCisgKgogICogcHViX29iaiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRhYmxl X25hbWUgWywgLi4uXQpAQCAtMTA4NzksNiArMTA5MDMsMTUgQEAgQWx0ZXJQdWJsaWNhdGlvblN0 bXQ6CiAJCQkJCW4tPmFjdGlvbiA9IEFQX0FkZE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CisJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgQUREX1AgQUxMIFRBQkxFUyBl eGNlcHRfcHViX29ial9saXN0CisJCQkJeworCQkJCQlBbHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9 IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsKKwkJCQkJbi0+cHVibmFtZSA9ICQzOwor CQkJCQluLT5wdWJvYmplY3RzID0gJDc7CisJCQkJCW4tPmZvcl9hbGxfdGFibGVzID0gdHJ1ZTsK KwkJCQkJbi0+YWN0aW9uID0gQVBfQWRkT2JqZWN0czsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQogCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCBwdWJfb2JqX2xpc3QKIAkJCQl7 CiAJCQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlv blN0bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdv dXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5k ZXggODA1NDBjMDE3YmQuLmI5ZDY3NmQxZjE4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIwNjUsNyArMjA2NSw4IEBAIGdldF9yZWxfc3luY19l bnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCWlmICghZW50cnkt PnJlcGxpY2F0ZV92YWxpZCkKIAl7CiAJCU9pZAkJCXNjaGVtYUlkID0gZ2V0X3JlbF9uYW1lc3Bh Y2UocmVsaWQpOwotCQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhy ZWxpZCk7CisJCUxpc3QJICAgKnB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlk LCBmYWxzZSk7CisJCUxpc3QJICAgKmV4Y2VwdFRhYmxlUHViaWRzID0gR2V0UmVsYXRpb25QdWJs aWNhdGlvbnMocmVsaWQsIHRydWUpOwogCiAJCS8qCiAJCSAqIFdlIGRvbid0IGFjcXVpcmUgYSBs b2NrIG9uIHRoZSBuYW1lc3BhY2Ugc3lzdGVtIHRhYmxlIGFzIHdlIGJ1aWxkCkBAIC0yMTc2LDIy ICsyMTc3LDYgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRp b24gcmVsYXRpb24pCiAJCQlPaWQJCQlwdWJfcmVsaWQgPSByZWxpZDsKIAkJCWludAkJCWFuY2Vz dG9yX2xldmVsID0gMDsKIAotCQkJLyoKLQkJCSAqIElmIHRoaXMgaXMgYSBGT1IgQUxMIFRBQkxF UyBwdWJsaWNhdGlvbiwgcGljayB0aGUgcGFydGl0aW9uCi0JCQkgKiByb290IGFuZCBzZXQgdGhl IGFuY2VzdG9yIGxldmVsIGFjY29yZGluZ2x5LgotCQkJICovCi0JCQlpZiAocHViLT5hbGx0YWJs ZXMpCi0JCQl7Ci0JCQkJcHVibGlzaCA9IHRydWU7Ci0JCQkJaWYgKHB1Yi0+cHVidmlhcm9vdCAm JiBhbV9wYXJ0aXRpb24pCi0JCQkJewotCQkJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBnZXRfcGFy dGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7Ci0KLQkJCQkJcHViX3JlbGlkID0gbGxhc3Rfb2lkKGFu Y2VzdG9ycyk7Ci0JCQkJCWFuY2VzdG9yX2xldmVsID0gbGlzdF9sZW5ndGgoYW5jZXN0b3JzKTsK LQkJCQl9Ci0JCQl9Ci0KIAkJCWlmICghcHVibGlzaCkKIAkJCXsKIAkJCQlib29sCQlhbmNlc3Rv cl9wdWJsaXNoZWQgPSBmYWxzZTsKQEAgLTIyMTAsNyArMjE5NSw4IEBAIGdldF9yZWxfc3luY19l bnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2Vz dG9yID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJ CQkJCQkJCSAgIGFuY2VzdG9ycywKLQkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJ CQkJCQkJCQkgICAmbGV2ZWwsCisJCQkJCQkJCQkJCQkJCQkgICBwdWItPmFsbHRhYmxlcyk7CiAK IAkJCQkJaWYgKGFuY2VzdG9yICE9IEludmFsaWRPaWQpCiAJCQkJCXsKQEAgLTIyMjUsNiArMjIx MSw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJl bGF0aW9uKQogCiAJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAog CQkJCQlsaXN0X21lbWJlcl9vaWQoc2NoZW1hUHViaWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKHB1 Yi0+YWxsdGFibGVzICYmCisJCQkJCSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdFRhYmxlUHViaWRz LCBwdWItPm9pZCkpIHx8CiAJCQkJCWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJcHVibGlzaCA9 IHRydWU7CiAJCQl9CkBAIC0yMzAzLDYgKzIyOTEsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQlsaXN0X2ZyZWUocHViaWRz KTsKIAkJbGlzdF9mcmVlKHNjaGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShleGNlcHRUYWJsZVB1 Ymlkcyk7CiAJCWxpc3RfZnJlZShyZWxfcHVibGljYXRpb25zKTsKIAogCQllbnRyeS0+cmVwbGlj YXRlX3ZhbGlkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Jl bGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDJiNzk4 YjgyM2VhLi42MTIyYmQ4YjZlZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCkBAIC01 Nzk0LDYgKzU3OTQsOCBAQCB2b2lkCiBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0 aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiB7CiAJTGlzdAkgICAqcHVi b2lkczsKKwlMaXN0CSAgICphbGx0YWJsZXNwdWJvaWRzOworCUxpc3QJICAgKmV4Y2VwdHB1Ym9p ZHMgPSBOSUw7CiAJTGlzdENlbGwgICAqbGM7CiAJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CiAJT2lk CQkJc2NoZW1haWQ7CkBAIC01ODMxLDkgKzU4MzMsMTAgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0 aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1 YmRlc2MtPmdlbmNvbHNfdmFsaWRfZm9yX2RlbGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUg cHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZvLiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1 YmxpY2F0aW9ucyhyZWxpZCk7CisJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJl bGlkLCBmYWxzZSk7CiAJc2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7 CiAJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVi bGljYXRpb25zKHNjaGVtYWlkKSk7CisJZXhjZXB0cHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGlj YXRpb25zKHJlbGlkLCB0cnVlKTsKIAogCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRp dGlvbikKIAl7CkBAIC01ODQ1LDE0ICs1ODQ4LDE5IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlv bkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJCU9p ZAkJCWFuY2VzdG9yID0gbGZpcnN0X29pZChsYyk7CiAKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNh dF91bmlxdWVfb2lkKHB1Ym9pZHMsCi0JCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhhbmNlc3RvcikpOworCQkJCQkJCQkJCQkgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0 b3IsIGZhbHNlKSk7CiAJCQlzY2hlbWFpZCA9IGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKTsK IAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCiAJCQkJCQkJCQkJ CSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwkJCWV4Y2VwdHB1Ym9pZHMgPSBs aXN0X2NvbmNhdF91bmlxdWVfb2lkKGV4Y2VwdHB1Ym9pZHMsCisJCQkJCQkJCQkJCQkgICBHZXRS ZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgdHJ1ZSkpOwogCQl9CiAJfQotCXB1Ym9pZHMg PSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9u cygpKTsKIAorCWFsbHRhYmxlc3B1Ym9pZHMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKTsK KwlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLAorCQkJCQkJCQkJIGxp c3RfZGlmZmVyZW5jZV9vaWQoYWxsdGFibGVzcHVib2lkcywKKwkJCQkJCQkJCQkJCQkJIGV4Y2Vw dHB1Ym9pZHMpKTsKIAlmb3JlYWNoKGxjLCBwdWJvaWRzKQogCXsKIAkJT2lkCQkJcHViaWQgPSBs Zmlyc3Rfb2lkKGxjKTsKQEAgLTU4ODMsNyArNTg5MSw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNh dGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJ aWYgKCFwdWJmb3JtLT5wdWJhbGx0YWJsZXMgJiYKIAkJCShwdWJmb3JtLT5wdWJ1cGRhdGUgfHwg cHViZm9ybS0+cHViZGVsZXRlKSAmJgogCQkJcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1u KHB1YmlkLCByZWxhdGlvbiwgYW5jZXN0b3JzLAotCQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZp YXJvb3QpKQorCQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3QsIHB1YmZvcm0tPnB1YmFs bHRhYmxlcykpCiAJCXsKIAkJCWlmIChwdWJmb3JtLT5wdWJ1cGRhdGUpCiAJCQkJcHViZGVzYy0+ cmZfdmFsaWRfZm9yX3VwZGF0ZSA9IGZhbHNlOwpAQCAtNTkwMSw2ICs1OTA5LDcgQEAgUmVsYXRp b25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNj ICpwdWJkZXNjKQogCQkJcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKHB1YmlkLCByZWxhdGlv biwgYW5jZXN0b3JzLAogCQkJCQkJCQkJCXB1YmZvcm0tPnB1YnZpYXJvb3QsCiAJCQkJCQkJCQkJ cHViZm9ybS0+cHViZ2VuY29scywKKwkJCQkJCQkJCQlwdWJmb3JtLT5wdWJhbGx0YWJsZXMsCiAJ CQkJCQkJCQkJJmludmFsaWRfY29sdW1uX2xpc3QsCiAJCQkJCQkJCQkJJmludmFsaWRfZ2VuX2Nv bCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDlmYzM2NzFjYjM1Li41YjhjYjI3NzAyNiAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCkBAIC0xODYsNiArMTg2LDggQEAgc3RhdGljIFNpbXBsZU9pZExpc3QgZXh0ZW5zaW9u X2luY2x1ZGVfb2lkcyA9IHtOVUxMLCBOVUxMfTsKIHN0YXRpYyBTaW1wbGVTdHJpbmdMaXN0IGV4 dGVuc2lvbl9leGNsdWRlX3BhdHRlcm5zID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZU9p ZExpc3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfb2lkcyA9IHtOVUxMLCBOVUxMfTsKIAorc3RhdGljIFNp bXBsZVB0ckxpc3QgZXhjZXB0aW5mbyA9IHtOVUxMLCBOVUxMfTsKKwogc3RhdGljIGNvbnN0IENh dGFsb2dJZCBuaWxDYXRhbG9nSWQgPSB7MCwgMH07CiAKIC8qIG92ZXJyaWRlIGZvciBzdGFuZGFy ZCBleHRyYV9mbG9hdF9kaWdpdHMgc2V0dGluZyAqLwpAQCAtNDY1MSw4ICs0NjUzLDM0IEBAIGR1 bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1Ymlu Zm8pCiAJCQkJCSAgcXB1Ym5hbWUpOwogCiAJaWYgKHB1YmluZm8tPnB1YmFsbHRhYmxlcykKKwl7 CisJCVNpbXBsZVB0ckxpc3RDZWxsICpjZWxsOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LCAiIEZPUiBBTEwgVEFCTEVTIik7CiAKKwkJLyogSW5jbHVkZSBleGNlcHRpb24gdGFibGVz IGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMgZXhjZXB0IHRhYmxlcyAqLworCQlmb3IgKGNlbGwgPSBl eGNlcHRpbmZvLmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCQl7CisJCQlQdWJsaWNh dGlvblJlbEluZm8gKnB1YnJpbmZvID0gKFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBjZWxsLT5wdHI7 CisJCQlUYWJsZUluZm8gICp0YmluZm87CisKKwkJCWlmIChwdWJpbmZvID09IHB1YnJpbmZvLT5w dWJsaWNhdGlvbikKKwkJCXsKKwkJCQl0YmluZm8gPSBwdWJyaW5mby0+cHVidGFibGU7CisKKwkJ CQlpZiAoZmlyc3QpCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBF WENFUFQgVEFCTEUiKTsKKwkJCQkJZmlyc3QgPSBmYWxzZTsKKwkJCQl9CisJCQkJZWxzZQorCQkJ CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwiKTsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwgIiBPTkxZICVzIiwgZm10UXVhbGlmaWVkRHVtcGFibGUodGJpbmZvKSk7CisJCQl9 CisJCX0KKwl9CisKKwlmaXJzdCA9IHRydWU7CiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks ICIgV0lUSCAocHVibGlzaCA9ICciKTsKIAlpZiAocHViaW5mby0+cHViaW5zZXJ0KQogCXsKQEAg LTQ4MTgsNiArNDg0Niw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRh YmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaW50CQkJaV9wcnJlbGlkOwogCWlu dAkJCWlfcHJyZWxxdWFsOwogCWludAkJCWlfcHJhdHRyczsKKwlpbnQJCQlpX3ByZXhjZXB0Owog CWludAkJCWksCiAJCQkJaiwKIAkJCQludHVwczsKQEAgLTQ4MjksOCArNDg1OCwxNiBAQCBnZXRQ dWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQg bnVtVGFibGVzKQogCiAJLyogQ29sbGVjdCBhbGwgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZv LiAqLwogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKKwl7CisJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHVi aWQsIHBycmVsaWQsXG4iKTsKKworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAwMDAp CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2VwdCxcbiIpOworCQllbHNl CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBBUyBwcmV4Y2VwdCxcbiIp OworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiU0VMRUNUIHRhYmxl b2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBnX2NhdGFsb2cucGdfZ2V0 X2V4cHIocHJxdWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJCQkJCQkgIihDQVNFXG4i CiAJCQkJCQkJICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCkBAIC00ODQx LDYgKzQ4NzgsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUlu Zm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAgICAgV0hFUkUgYXR0cmVs aWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCSAiICBF TFNFIE5VTEwgRU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJs aWNhdGlvbl9yZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwKIAkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCAiCkBA IC00ODU2LDYgKzQ4OTQsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJyZWxpZCA9IFBRZm51bWJl cihyZXMsICJwcnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1iZXIocmVzLCAicHJyZWxx dWFsIik7CiAJaV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0cnMiKTsKKwlpX3ByZXhj ZXB0ID0gUFFmbnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0aGlzIGFsbG9jYXRpb24g bWF5IGJlIG1vcmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBwZ19tYWxsb2MobnR1cHMg KiBzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00ODY3LDYgKzQ5MDYsNyBAQCBnZXRQ dWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQg bnVtVGFibGVzKQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3BycmVsaWQpKTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwogCQlUYWJsZUluZm8gICp0 YmluZm87CisJCWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3ByZXhjZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBlbnRyaWVzIGZvciB3aGlj aCB3ZSBhcmVuJ3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00ODgwLDcgKzQ5MjAsMTEg QEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9b XSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9LLCBtYWtlIGEgRHVtcGFi bGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJpbmZvW2pdLmRvYmoub2Jq VHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgImYiKSA9 PSAwKQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOwor CQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9FWENF UFRfUkVMOworCiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQogCQkJYXRvb2lk KFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0 SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOwpAQCAtNDkyMSw2ICs0 OTY1LDkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRi bGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBk dW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJyaW5mb1tq XS5kb2JqKSwgZm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgInQiKSA9PSAwKQorCQkJ c2ltcGxlX3B0cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKKwogCQlq Kys7CiAJfQogCkBAIC0xMTc5Nyw2ICsxMTg0NCw5IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNo aXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19QVUJMSUNBVElPTjoK IAkJCWR1bXBQdWJsaWNhdGlvbihmb3V0LCAoY29uc3QgUHVibGljYXRpb25JbmZvICopIGRvYmop OwogCQkJYnJlYWs7CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCS8qIHdp bGwgYmUgZHVtcGVkIGluIGR1bXBQdWJsaWNhdGlvbiAqLworCQkJYnJlYWs7CiAJCWNhc2UgRE9f UFVCTElDQVRJT05fUkVMOgogCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1 YmxpY2F0aW9uUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAtMjAxNjgsNiArMjAyMTgs NyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQg bnVtT2JqcywKIAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CiAJCQljYXNlIERPX1BPTElDWToKIAkJ CWNhc2UgRE9fUFVCTElDQVRJT046CisJCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6 CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fVEFC TEVfSU5fU0NIRU1BOgogCQkJY2FzZSBET19TVUJTQ1JJUFRJT046CmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCBi Y2M5NGZmMDdjYy4uNzljMmJkZDRjODIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtODEsNiArODEsNyBAQCB0 eXBlZGVmIGVudW0KIAlET19SRUZSRVNIX01BVFZJRVcsCiAJRE9fUE9MSUNZLAogCURPX1BVQkxJ Q0FUSU9OLAorCURPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJRE9fUFVCTElDQVRJT05fUkVM LAogCURPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlET19SRUxfU1RBVFMsCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMKaW5kZXggMmQwMjQ1NjY2NGIuLjQ3YTQ1MGM4MjBjIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXBfc29ydC5jCkBAIC05Miw2ICs5Miw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGll cwogCVBSSU9fRktfQ09OU1RSQUlOVCwKIAlQUklPX1BPTElDWSwKIAlQUklPX1BVQkxJQ0FUSU9O LAorCVBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1JFTCwK IAlQUklPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlQUklPX1NVQlNDUklQVElPTiwK QEAgLTE0Nyw2ICsxNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5 W10gPQogCVtET19SRUZSRVNIX01BVFZJRVddID0gUFJJT19SRUZSRVNIX01BVFZJRVcsCiAJW0RP X1BPTElDWV0gPSBQUklPX1BPTElDWSwKIAlbRE9fUFVCTElDQVRJT05dID0gUFJJT19QVUJMSUNB VElPTiwKKwlbRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTF0gPSBQUklPX1BVQkxJQ0FUSU9OX0VY Q0VQVF9SRUwsCiAJW0RPX1BVQkxJQ0FUSU9OX1JFTF0gPSBQUklPX1BVQkxJQ0FUSU9OX1JFTCwK IAlbRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BXSA9IFBSSU9fUFVCTElDQVRJT05fVEFC TEVfSU5fU0NIRU1BLAogCVtET19SRUxfU1RBVFNdID0gUFJJT19TVEFUSVNUSUNTX0RBVEFfREFU QSwKQEAgLTQ0Miw2ICs0NDQsMTcgQEAgRE9UeXBlTmFtZUNvbXBhcmUoY29uc3Qgdm9pZCAqcDEs IGNvbnN0IHZvaWQgKnAyKQogCQlpZiAoY21wdmFsICE9IDApCiAJCQlyZXR1cm4gY21wdmFsOwog CX0KKwllbHNlIGlmIChvYmoxLT5vYmpUeXBlID09IERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwp CisJeworCQlQdWJsaWNhdGlvblJlbEluZm8gKnByb2JqMSA9ICooUHVibGljYXRpb25SZWxJbmZv ICpjb25zdCAqKSBwMTsKKwkJUHVibGljYXRpb25SZWxJbmZvICpwcm9iajIgPSAqKFB1YmxpY2F0 aW9uUmVsSW5mbyAqY29uc3QgKikgcDI7CisKKwkJLyogU29ydCBieSBwdWJsaWNhdGlvbiBuYW1l LCBzaW5jZSAobmFtZXNwYWNlLCBuYW1lKSBtYXRjaCB0aGUgcmVsICovCisJCWNtcHZhbCA9IHN0 cmNtcChwcm9iajEtPnB1YmxpY2F0aW9uLT5kb2JqLm5hbWUsCisJCQkJCQlwcm9iajItPnB1Ymxp Y2F0aW9uLT5kb2JqLm5hbWUpOworCQlpZiAoY21wdmFsICE9IDApCisJCQlyZXR1cm4gY21wdmFs OworCX0KIAllbHNlIGlmIChvYmoxLT5vYmpUeXBlID09IERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lO X1NDSEVNQSkKIAl7CiAJCVB1YmxpY2F0aW9uU2NoZW1hSW5mbyAqcHNvYmoxID0gKihQdWJsaWNh dGlvblNjaGVtYUluZm8gKmNvbnN0ICopIHAxOwpAQCAtMTcxNCw2ICsxNzI3LDExIEBAIGRlc2Ny aWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVm c2l6ZSkKIAkJCQkJICJQVUJMSUNBVElPTiAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmotPmR1 bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1BVQkxJQ0FUSU9O X0VYQ0VQVF9SRUw6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiUFVCTElDQVRJ T04gRVhDRVBUIFRBQkxFIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+ZHVtcElkLCBvYmot PmNhdElkLm9pZCk7CisJCQlyZXR1cm47CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJ c25wcmludGYoYnVmLCBidWZzaXplLAogCQkJCQkgIlBVQkxJQ0FUSU9OIFRBQkxFIChJRCAlZCBP SUQgJXUpIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggZmM1YjliNTJmODAuLjJhYThl YjA3NGZkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysg Yi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzQzMiw2ICszNDMyLDI2IEBA IG15ICV0ZXN0cyA9ICgKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRh ID0+IDEsIH0sCiAJfSwKIAorCSdDUkVBVEUgUFVCTElDQVRJT04gcHViNicgPT4geworCQljcmVh dGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9O IHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIGR1bXBfdGVzdC50ZXN0X3RhYmxlOycsCisJCXJl Z2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWI2IEZPUiBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBPTkxZIGR1bXBfdGVzdC50ZXN0X3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAn aW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwgdHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+ IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NSRUFU RSBQVUJMSUNBVElPTiBwdWI3JyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRl X3NxbCA9PgorCQkgICdDUkVBVEUgUFVCTElDQVRJT04gcHViNyBGT1IgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgZHVtcF90ZXN0LnRlc3RfdGFibGUsIGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJs ZTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViNyBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZSwgT05MWSBk dW1wX3Rlc3QudGVzdF9zZWNvbmRfdGFibGUgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0 ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5z LCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ1JFQVRFIFNVQlNDUklQVElP TiBzdWIxJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JF QVRFIFNVQlNDUklQVElPTiBzdWIxCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDRhYTc5M2Q3ZGU3Li4yNzc0NTQ4YTJj OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKQEAgLTMwMzksMTcgKzMwMzksMzQgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFp bHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJICAiICAgICAgICAgIFdIRVJFIGF0 dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRyc1tzXSlcbiIKIAkJCQkJCQkJ ICAiICAgICAgICBFTFNFIE5VTEwgRU5EKSAiCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5w Z19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1 YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKLQkJCQkJCQkJICAiICAg ICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJ CQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIKKwkJCQkJCQkJICAiCQlKT0lOIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxuIgor CQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0gcHIucHJy ZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIiwKKwkJCQkJCQkJ ICBvaWQsIG9pZCwgb2lkKTsKKworCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJ CQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiBBTkQgTk9UIHByLnByZXhjZXB0XG4iKTsK KworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJCQkJ CQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCi0JCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCi0JCQkJ CQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCisJCQkJCQkJCSAg IgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBw XG4iCi0JCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3Jl bGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCi0JCQkJCQkJCSAgIk9SREVSIEJZIDE7IiwK LQkJCQkJCQkJICBvaWQsIG9pZCwgb2lkLCBvaWQpOworCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFs bHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxu IiwKKwkJCQkJCQkJICBvaWQpOworCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQor CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkJICAiICAgICBBTkQgTk9UIEVY SVNUUyAoXG4iCisJCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCisJCQkJCQkJCQkgICIJCUZST00g cGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKKwkJCQkJCQkJCSAgIgkJSk9JTiBw Z19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCQkgICIJCU9OIHByLnBycmVsaWQgPSBw Yy5vaWRcbiIKKwkJCQkJCQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9ICclcycgQU5EIHByLnBy cHViaWQgPSBwLm9pZClcbiIsCisJCQkJCQkJCQkgIG9pZCk7CisKKwkJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKQEAgLTY2 OTMsOCArNjcxMCwxMiBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJu KQogCQkJCQkJCSAgIiAgICAgcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKIAkJ CQkJCQkgICJXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkXG4iCiAJCQkJCQkJICAiICBBTkQg Yy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJICAiICBBTkQgcHIucHJwdWJpZCA9ICclcydc biIKLQkJCQkJCQkgICJPUkRFUiBCWSAxLDIiLCBwdWJpZCk7CisJCQkJCQkJICAiICBBTkQgcHIu cHJwdWJpZCA9ICclcydcbiIsIHB1YmlkKTsKKworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkw MDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBOT1QgcHIucHJleGNlcHRc biIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwyIik7CiAJCQlp ZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFsc2Us ICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsKIApAQCAtNjcxMiw2ICs2NzMzLDIzIEBA IGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCWdvdG8gZXJy b3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVsc2UKKwkJeworCQkJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTkwMDAwKQorCQkJeworCQkJCS8qIEdldCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciB0aGUg c3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJ CQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLics IGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIK KwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9O IGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVz J1xuIgorCQkJCQkJCQkgICIgIEFORCBwci5wcmV4Y2VwdFxuIgorCQkJCQkJCQkgICJPUkRFUiBC WSAxIiwgcHViaWQpOworCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1Ziwg XygiRXhjZXB0IHRhYmxlczoiKSwKKwkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQkJZ290 byBlcnJvcl9yZXR1cm47CisJCQl9CisJCX0KIAogCQlwcmludFRhYmxlKCZjb250LCBwc2V0LnF1 ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CiAJCXByaW50VGFibGVDbGVhbnVwKCZjb250 KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA4MGQwZDI2YTZlZC4uMmNhMjhjMDcxZGIgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIyNzksMTEgKzIyNzksMTYgQEAgbWF0Y2hfcHJldmlv dXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwg Ik9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJSRVNFVCIsICJTRVQiKTsKIAkvKiBBTFRFUiBQVUJM SUNBVElPTiA8bmFtZT4gQUREICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkFERCIpKQotCQlDT01QTEVURV9XSVRIKCJUQUJMRVMgSU4gU0NI RU1BIiwgIlRBQkxFIik7CisJCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMiLCAiVEFCTEVTIElO IFNDSEVNQSIsICJUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FU SU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIpKQorCQlDT01QTEVURV9XSVRI KCJFWENFUFQgVEFCTEUiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwotCWVsc2UgaWYgKEhlYWRNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYm Ci0JCQkgZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQ VCIsICJUQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl90YWJsZXMpOworCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYmIGVuZHNfd2l0aChwcmV2X3dkLCAn LCcpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJs ZXMpOworCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiQUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikgJiYgZW5kc193 aXRoKHByZXZfd2QsICcsJykpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX3RhYmxlcyk7CiAKIAkvKgpAQCAtMzU5MSw2ICszNTk2LDEwIEBAIG1hdGNoX3By ZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIpKQogCQlDT01QTEVURV9XSVRI KCJUQUJMRVMiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBN YXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQ VCBUQUJMRSIsICJXSVRIICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIpKQorCQlD T01QTEVURV9XSVRIKCJUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJM SUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRB QkxFIiwgTWF0Y2hBbnkpICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExFVEVf V0lUSCgiV0lUSCAoIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIklOIFNDSEVN QSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCmluZGV4IDZlMDc0MTkwZmQyLi4w MjI0NjdmYjQ1YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApAQCAtMTM5LDEx ICsxMzksMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25SZWxJbmZvCiAJUmVsYXRpb24J cmVsYXRpb247CiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CiAJTGlzdAkgICAqY29sdW1uczsKKwli b29sCQlleGNlcHQ7CiB9IFB1YmxpY2F0aW9uUmVsSW5mbzsKIAogZXh0ZXJuIFB1YmxpY2F0aW9u ICpHZXRQdWJsaWNhdGlvbihPaWQgcHViaWQpOwogZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJs aWNhdGlvbkJ5TmFtZShjb25zdCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwotZXh0 ZXJuIExpc3QgKkdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCk7CitleHRlcm4gTGlz dCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2VwdF9mbGFnKTsK IAogLyotLS0tLS0tLS0KICAqIEV4cGVjdGVkIHZhbHVlcyBmb3IgcHViX3BhcnRvcHQgcGFyYW1l dGVyIG9mIEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKCksCkBAIC0xNjEsOSArMTYyLDEwIEBAIHR5 cGVkZWYgZW51bSBQdWJsaWNhdGlvblBhcnRPcHQKIAlQVUJMSUNBVElPTl9QQVJUX0FMTCwKIH0g UHVibGljYXRpb25QYXJ0T3B0OwogCi1leHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlv bnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpOworZXh0ZXJuIExp c3QgKkdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0 IHB1Yl9wYXJ0b3B0LAorCQkJCQkJCQkJIGJvb2wgZXhjZXB0X2ZsYWcpOwogZXh0ZXJuIExpc3Qg KkdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucyh2b2lkKTsKLWV4dGVybiBMaXN0ICpHZXRBbGxUYWJs ZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhib29sIHB1YnZpYXJvb3QpOworZXh0ZXJuIExpc3QgKkdl dEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290 KTsKIGV4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblNjaGVtYXMoT2lkIHB1YmlkKTsKIGV4dGVy biBMaXN0ICpHZXRTY2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVtYWlkKTsKIGV4dGVybiBMaXN0 ICpHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsCkBAIC0xNzQsNyAr MTc2LDcgQEAgZXh0ZXJuIExpc3QgKkdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0 ICpyZXN1bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAkJ CQkJCQkJCQkJT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJs aWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJCQkJCWludCAqYW5j ZXN0b3JfbGV2ZWwpOworCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29sIHB1YmFs bHRhYmxlcyk7CiAKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9u IHJlbCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCmluZGV4IDkyY2MzNmRmZGY2Li5l N2Q3ZjNiYTg1YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCkBA IC0zMSw2ICszMSw3IEBAIENBVEFMT0cocGdfcHVibGljYXRpb25fcmVsLDYxMDYsUHVibGljYXRp b25SZWxSZWxhdGlvbklkKQogCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KIAlPaWQJCQlwcnB1Ymlk IEJLSV9MT09LVVAocGdfcHVibGljYXRpb24pOyAvKiBPaWQgb2YgdGhlIHB1YmxpY2F0aW9uICov CiAJT2lkCQkJcHJyZWxpZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsJLyogT2lkIG9mIHRoZSByZWxh dGlvbiAqLworCWJvb2wJCXByZXhjZXB0IEJLSV9ERUZBVUxUKGYpOwkvKiBleGNsdWRlIHRoZSBy ZWxhdGlvbiAqLwogCiAjaWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGgg ZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJxdWFsOwkJLyogcXVhbGlmaWNh dGlvbnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21k cy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgKaW5kZXggZjkwY2Yx ZWY4OTYuLjBhZDVkMjg3NTRkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu aApAQCAtMzIsMTAgKzMyLDExIEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyUHVibGljYXRp b25Pd25lcihjb25zdCBjaGFyICpuYW1lLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBB bHRlclB1YmxpY2F0aW9uT3duZXJfb2lkKE9pZCBwdWJpZCwgT2lkIG5ld093bmVySWQpOwogZXh0 ZXJuIHZvaWQgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpOwogZXh0ZXJu IGJvb2wgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24g cmVsYXRpb24sCi0JCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3Qp OworCQkJCQkJCQkJCSAgIExpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290LAorCQkJCQkJ CQkJCSAgIGJvb2wgcHViYWxsdGFibGVzKTsKIGV4dGVybiBib29sIHB1Yl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJCQkJCUxpc3Qg KmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290LAotCQkJCQkJCQkJCWNoYXIgcHViZ2VuY29sc190 eXBlLAorCQkJCQkJCQkJCWNoYXIgcHViZ2VuY29sc190eXBlLCBib29sIHB1YmFsbHRhYmxlcywK IAkJCQkJCQkJCQlib29sICppbnZhbGlkX2NvbHVtbl9saXN0LAogCQkJCQkJCQkJCWJvb2wgKmlu dmFsaWRfZ2VuX2NvbCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHViUmVsU3luY0NhY2hlKE9p ZCBwdWJpZCwgYm9vbCBwdWJhbGx0YWJsZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGEz ODNiY2JlMWIzLi45YTc3NWEyYjU1YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI2OCw2 ICs0MjY4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogCVJhbmdlVmFyICAg KnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gYmUgcHVibGlzaGVkICovCiAJTm9kZQkgICAqd2hl cmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCiAJTGlzdAkgICAqY29sdW1uczsJCS8qIExp c3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0aW9uIHRhYmxlICovCisJYm9vbAkJZXhjZXB0OwkJ CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiB9IFB1YmxpY2F0aW9uVGFibGU7CiAKIC8qCkBA IC00Mjc2LDYgKzQyNzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRhYmxlCiB0eXBl ZGVmIGVudW0gUHVibGljYXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FUSU9OT0JKX1RBQkxF LAkJLyogQSB0YWJsZSAqLworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSwJLyogQSB0YWJs ZSB0byBiZSBleGNsdWRlZCAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEsCS8q IEFsbCB0YWJsZXMgaW4gc2NoZW1hICovCiAJUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9T Q0hFTUEsCS8qIEFsbCB0YWJsZXMgaW4gZmlyc3QgZWxlbWVudCBvZgogCQkJCQkJCQkJCQkgKiBz ZWFyY2hfcGF0aCAqLwpAQCAtNDMyMSw2ICs0MzIzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQ dWJsaWNhdGlvblN0bXQKIAkgKiBvYmplY3RzLgogCSAqLwogCUxpc3QJICAgKnB1Ym9iamVjdHM7 CQkvKiBPcHRpb25hbCBsaXN0IG9mIHB1YmxpY2F0aW9uIG9iamVjdHMgKi8KKwlib29sCQlmb3Jf YWxsX3RhYmxlczsgLyogU3BlY2lhbCBwdWJsaWNhdGlvbiBmb3IgYWxsIHRhYmxlcyBpbiBkYiAq LwogCUFsdGVyUHVibGljYXRpb25BY3Rpb24gYWN0aW9uOwkvKiBXaGF0IGFjdGlvbiB0byBwZXJm b3JtIHdpdGggdGhlIGdpdmVuCiAJCQkJCQkJCQkgKiBvYmplY3RzICovCiB9IEFsdGVyUHVibGlj YXRpb25TdG10OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNh dGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRl eCBmY2ZjOGE5YjQ4NS4uOWJmYzQzMzQ0ZDUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CkBAIC0yMTMsMTMgKzIxMywzNyBAQCBOb3QtbnVsbCBjb25zdHJhaW50 czoKICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiAoMSBy b3cpCiAKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSBGT1IgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDI7CistLSBzcGVjaWZ5IEVYQ0VQVCB3 aXRob3V0IFRBQkxFCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhj ZXB0dGFibGUxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCB0ZXN0cHViX3RibDE7CitSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0 ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEi CisgICAgInB1YmxpYy50ZXN0cHViX3RibDIiCisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRp b24gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGlj LnRlc3RwdWJfdGJsMSIKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNj aGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9m b3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHVi X2Zvcl90Ymxfc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSwgdGVzdHB1 Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxOwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAo YSBpbnQpOwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRl c3RwdWJfdGJsMyk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUg UFVCTElDQVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJM SUNBVElPTiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJs MzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFC TEUgT05MWSB0ZXN0cHViX3RibDM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsg dGVzdHB1YjMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViMwpAQCAtMjM4LDggKzI2MiwyNSBAQCBUYWJsZXM6CiBUYWJsZXM6 CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCiAKK1xkUnArIHRlc3RwdWI1CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjUK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitFeGNlcHQg dGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgorICAgICJwdWJsaWMudGVzdHB1Yl90 YmwzYSIKKworXGRScCsgdGVzdHB1YjYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNgorICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg ICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50 ZXN0cHViX3RibDMiCisKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwzLCB0ZXN0cHViX3RibDNhOwot RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQ7CitEUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWIzLCB0ZXN0cHViNCwgdGVzdHB1YjUsIHRlc3RwdWI2OwogLS0gVGVzdHMgZm9yIHBhcnRp dGlvbmVkIHRhYmxlcwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ycGFydGVkOwpAQCAtMTkyNiw5ICsxOTY3LDE1IEBAIERS T1AgVEFCTEUgZ2VuY29sczsKIC0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVT RVQKIENSRUFURSBTQ0hFTUEgcHViX3NjaDE7CiBDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAo YSBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDIgKGEgaW50KTsKIFNFVCBjbGllbnRf bWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEZPUiBBTEwgVEFCTEVTOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKKy0tIENhbid0IGFk ZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3Nj aDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0 aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6 ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFz IHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4g UkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxF UycgZmxhZyBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE5 NDUsNyArMTk5MiwyNCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwog IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKICgxIHJvdykK IAorLS0gU2hvdWxkIHdvcmsgbm93IGFmdGVyIHJlc2V0dGluZyB0aGUgcHVibGljYXRpb24KK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxF IHB1Yl9zY2gxLnRibDEsIHB1Yl9zY2gxLnRibDI7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRz IHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZp YSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYK K0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Yl9zY2gxLnRibDEiCisgICAgInB1Yl9zY2gxLnRibDIi CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworLS0gQ2FuJ3QgYWRk IEVYQ0VQVCBUQUJMRSB0byAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJs MTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRv IGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwg VEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3Vs ZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQg dG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCBhc3NvY2lhdGVkIHRhYmxl cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAogXGRScCsgdGVz dHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE5NjQsNiArMjAyOCwxMSBAQCBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogKDEgcm93KQogCiBBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIENhbid0IGFk ZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQScgcHVibGljYXRpb24K K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRo ZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVl cworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJs ZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElD QVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQg YXNzb2NpYXRlZCBzY2hlbWFzIGFyZSByZW9tdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVy IFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTk4Miw2ICsyMDUx LDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAK IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworLS0g Q2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFyYW1ldGVyIGRvZXMg bm90IGhhdmUgZGVmYXVsdAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFk ZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQg cHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNo b3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRl ZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBw dWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0gnIHBhcmFtZXRlciBpcyByZXNldAog XGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTE5OTksNiArMjA3NCwxMiBAQCBB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogKDEgcm93KQogCiBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1Qg PSAndHJ1ZScpOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuICdQVUJMSVNIX1ZJQV9Q QVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90CistLSBoYXZlIGRlZmF1bHQgdmFsdWUK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRo ZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVl cworREVUQUlMOiAgQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJs ZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxURVIgUFVCTElD QVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgogLS0gVmVyaWZ5IHRoYXQg J1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRl c3RwdWJfcmVzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CkBAIC0yMDM3LDkgKzIxMTgsMTMgQEAgQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIy OwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgogRVJST1I6 ICBtdXN0IGJlIHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbgorLS0gVmVyaWZ5IHRoYXQg b25seSBzdXBlcnVzZXIgY2FuIEFERCBBTEwgVEFCTEVTCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTOworRVJST1I6ICBtdXN0IGJlIHN1cGVydXNlciB0byBB REQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24KIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUg cHViX3NjaDEudGJsMTsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NIRU1BIHB1 Yl9zY2gxOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIFRlc3QgdGhhdCB0aGUgSU5T RVJUIE9OIENPTkZMSUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElERU5USVRZ CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggNDhmYTUzZmM2YzQuLmZiZTE5 YTY5NTliIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMDUsMjAgKzEw NSwzMyBAQCBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFibGVzIEZST00gcGdfcHVibGljYXRpb24g V0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2ZvcmFsbAogXGQrIHRlc3RwdWJfdGJsMgogXGRScCsg dGVzdHB1Yl9mb3JhbGx0YWJsZXMKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1In OworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIEZP UiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMjsKKy0t IHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHRlc3RwdWJf dGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CisKK1xkUnArIHRlc3RwdWJfZm9yYWxs dGFibGVzX2V4Y2VwdHRhYmxlCitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZTEKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1 Yl9mb3JfdGJsX3NjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMs IHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2No ZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSwgdGVzdHB1Yl9mb3JhbGx0YWJs ZXNfZXhjZXB0dGFibGUxOwogCiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBD UkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90Ymwz KTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRl c3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwog XGRScCsgdGVzdHB1YjQKK1xkUnArIHRlc3RwdWI1CitcZFJwKyB0ZXN0cHViNgogCiBEUk9QIFRB QkxFIHRlc3RwdWJfdGJsMywgdGVzdHB1Yl90YmwzYTsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1 YjMsIHRlc3RwdWI0OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQsIHRlc3Rw dWI1LCB0ZXN0cHViNjsKIAogLS0gVGVzdHMgZm9yIHBhcnRpdGlvbmVkIHRhYmxlcwogU0VUIGNs aWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwpAQCAtMTIyNSwxNyArMTIzOCwzMCBAQCBEUk9Q IFRBQkxFIGdlbmNvbHM7CiAtLSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VU CiBDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOwogQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEgKGEg aW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwyIChhIGludCk7CiBTRVQgY2xpZW50X21p bl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBG T1IgQUxMIFRBQkxFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAKKy0tIENhbid0IGFk ZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBBTEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3Nj aDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnIGZsYWcgaXMgcmVzZXQKIFxk UnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAKKy0tIFNob3VsZCB3b3JrIG5vdyBhZnRlciByZXNldHRp bmcgdGhlIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxLCBwdWJfc2NoMS50YmwyOworXGRS cCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VU OworCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50 YmwxOwogCistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkgdGhhdCBhc3NvY2lhdGVkIHRhYmxl cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAogXGRScCsgdGVz dHB1Yl9yZXNldAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTEy NDMsNiArMTI2OSw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAK IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVi bGljOwogCistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBT Q0hFTUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkgdGhhdCBh c3NvY2lhdGVkIHNjaGVtYXMgYXJlIHJlb212ZWQgZnJvbSB0aGUgcHVibGljYXRpb24gYWZ0ZXIg UkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgUkVTRVQ7CkBAIC0xMjUwLDYgKzEyNzksMTAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBSRVNFVDsKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBV QkxJU0ggPSAnJyk7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUgd2hlbiB0aGUgJ1BVQkxJ U0gnIHBhcmFtZXRlciBkb2VzIG5vdCBoYXZlIGRlZmF1bHQKKy0tIHZhbHVlCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2No MS50YmwxOworCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBc ZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VU OwpAQCAtMTI1Nyw2ICsxMjkwLDEwIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg UkVTRVQ7CiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CiAKKy0tIENhbid0IGFkZCBFWENFUFQgVEFCTEUg d2hlbiAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBkb2VzIG5vdAorLS0g aGF2ZSBkZWZhdWx0IHZhbHVlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworCiAtLSBWZXJpZnkgdGhhdCAn UFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVz dHB1Yl9yZXNldAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTEy NzMsMTAgKzEzMTAsMTQgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsK IEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVncmVzc19wdWJsaWNh dGlvbl91c2VyMjsKIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOyAtLSBmYWlsIC0gbXVzdCBiZSBzdXBlcnVz ZXIKKworLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIEFERCBBTEwgVEFCTEVTCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTOwogU0VUIFJPTEUg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogCiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7 CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi9tZXNvbi5idWlsZAppbmRleCAyMGI0ZTUyM2Q5My4uYzRjMWVmZDI3YmMgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVz dC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKQEAgLTQ1LDYgKzQ1LDcgQEAgdGVzdHMgKz0gewog ICAgICAgJ3QvMDMzX3J1bl9hc190YWJsZV9vd25lci5wbCcsCiAgICAgICAndC8wMzRfdGVtcG9y YWwucGwnLAogICAgICAgJ3QvMDM1X2NvbmZsaWN0cy5wbCcsCisgICAgICAndC8wMzZfcmVwX2No YW5nZXNfZXhjZXB0X3RhYmxlLnBsJywKICAgICAgICd0LzEwMF9idWdzLnBsJywKICAgICBdLAog ICB9LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9jaGFuZ2Vz X2V4Y2VwdF90YWJsZS5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9yZXBfY2hhbmdl c19leGNlcHRfdGFibGUucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmE5ZDczZmU3MjFkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApAQCAtMCwwICsxLDE4NiBAQAorCisjIENv cHlyaWdodCAoYykgMjAyMS0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91 cAorCisjIExvZ2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIGV4Y2VwdCB0YWJsZSBwdWJsaWNh dGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6 Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOwor CisjIEluaXRpYWxpemUgcHVibGlzaGVyIG5vZGUKK215ICRub2RlX3B1Ymxpc2hlciA9IFBvc3Rn cmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWJsaXNoZXIt PmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlzaGVyLT5z dGFydDsKKworIyBDcmVhdGUgc3Vic2NyaWJlciBub2RlCitteSAkbm9kZV9zdWJzY3JpYmVyID0g UG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskbm9kZV9zdWJz Y3JpYmVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3N1YnNj cmliZXItPnN0YXJ0OworCisjIFRlc3QgcmVwbGljYXRpb24gd2l0aCBwdWJsaWNhdGlvbnMgY3Jl YXRlZCB1c2luZyBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUKKyMgY2xhdXNlLgorIyBDcmVh dGUgc2NoZW1hcyBhbmQgdGFibGVzIG9uIHB1Ymxpc2hlcgorJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBU QUJMRSBzY2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEwKSBBUyBhOworCUNS RUFURSBUQUJMRSBwdWJsaWMudGFiMShhIGludCk7CispKTsKKworIyBDcmVhdGUgc2NoZW1hcyBh bmQgdGFibGVzIG9uIHN1YnNjcmliZXIKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkn cG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHNjaDEu dGFiMSAoYSBpbnQpOworCUNSRUFURSBUQUJMRSBwdWJsaWMudGFiMSAoYSBpbnQpOworKSk7CisK KyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5v ZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJf c2NoZW1hIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBzY2gxLnRhYjEiCispOworCiskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElP TiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FU SU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMg dG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygk bm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyMgQ2hlY2sgdGhlIHRhYmxl IGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFibGUKK215ICRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBt aW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwKKwkn Y2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGllZCBmb3IgdGhlIGV4Y2x1ZGVkIHRh YmxlJyk7CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVyaWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0 YSBpcyBub3QgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMTEsMjAp KSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1h Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMo JHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBzdWJzY3JpYmVy Jyk7CisKKyMgQWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVkZSBkYXRhIGNoYW5nZXMgaW4gcHVi bGljLnRhYjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmliZXIgZG9lcyBub3QgZ2V0IHRoZSBj aGFuZ2VkIGRhdGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgK KwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBSRVNF VDsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBBREQgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgc2NoMS50YWIxLCBwdWJsaWMudGFiMTsKKwlJTlNFUlQgSU5UTyBwdWJsaWMudGFi MSBWQUxVRVMoZ2VuZXJhdGVfc2VyaWVzKDEsMTApKTsKKykpOworJG5vZGVfcHVibGlzaGVyLT53 YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEp LCBtYXgoYSkgRlJPTSBwdWJsaWMudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNr IHJvd3Mgb24gc3Vic2NyaWJlciBjYXRjaHVwJyk7CisKKyMgY2xlYW51cAorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hl bWEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJT Q1JJUFRJT04gdGFwX3N1Yl9zY2hlbWEiKTsKKworCisjIENoZWNrIGJlaGF2aW91ciBvZiBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBhbmQgRVhDRVBUIGNsYXVzZSB3aXRoCisjIHBhcnRpdGlv bmVkIHRhYmxlIG9yIHBhcnRpaXRpb25zIG9mIHBhcnRpdGlvbmVkIHRhYmxlLgorJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFRBQkxFIHNjaDEu dDEoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJ0 MSBQQVJUSVRJT04gT0Ygc2NoMS50MSBGT1IgVkFMVUVTIEZST00gKDApIFRPICg1KTsKKwlJTlNF UlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMSk7CispKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBUQUJMRSBzY2gxLnQxKGEgaW50KTsK KwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJ0MShhIGludCk7CispKTsKKworIyBwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdCA9IGZhbHNlIGFuZCBFWENFUFQgc2NoMS5wYXJ0MQorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJf cGFydCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgc2NoMS5wYXJ0MSIpOworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFw X3N1Yl9wYXJ0IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFw X3B1Yl9wYXJ0IgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9z eW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfcGFydCcpOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgyKSIpOwor JG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKworJHJl c3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICog RlJPTSBzY2gxLnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRp b25lZCB0YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lzKCRyZXN1bHQsIHFxKCks ICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbnMnKTsKKworIyBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdCA9IGZhbHNlIGFuZCBFWENFUFQgc2NoMS50MQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IFJF U0VUOworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBBREQgQUxMIFRBQkxFUyBFWENF UFQgc2NoMS50MTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX3BhcnQgUkVGUkVTSCBQVUJMSUNBVElPTiIp OworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVi bGlzaGVyLCAndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDMpIik7Ciskbm9kZV9wdWJsaXNo ZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCiskcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudDEi KTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbmVkIHRhYmxlJyk7 CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNF TEVDVCAqIEZST00gc2NoMS5wYXJ0MSIpOworaXMoICRyZXN1bHQsIHFxKDEKKzIKKzMpLCAnY2hl Y2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiVFJVTkNBVEUgc2NoMS50MSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9j YXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0Iik7Ciskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQ7 Iik7CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlIGFuZCBFWENFUFQgc2No MS50MQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JF QVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg c2NoMS50MSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJSU5TRVJUIElOVE8g c2NoMS50MSBWQUxVRVMgKDEpCispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBDT05ORUNUSU9OICck cHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCIKKyk7Ciskbm9kZV9z dWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0 YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJ TlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMikiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9m b3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50MSIpOworaXMoJHJl c3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9uZWQgdGFibGUnKTsKKworJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJP TSBzY2gxLnBhcnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRp b25zJyk7CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlIGFuZCBFWENFUFQg c2NoMS5wYXJ0MQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEo CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IFJFU0VUOworCUFMVEVSIFBVQkxJQ0FU SU9OIHRhcF9wdWJfcGFydCBBREQgQUxMIFRBQkxFUyBFWENFUFQgc2NoMS5wYXJ0MTsKKwlBTFRF UiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgU0VUIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9v dCk7CispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRF UiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0IFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2Rl X3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwg J3RhcF9zdWJfcGFydCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IklOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgzKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnQxIik7Citpcygg JHJlc3VsdCwgcXEoMQorMgorMyksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbmVkIHRhYmxlJyk7 CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNF TEVDVCAqIEZST00gc2NoMS5wYXJ0MSIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mg b24gcGFydGl0aW9ucycpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wKCdmYXN0Jyk7Ciskbm9k ZV9wdWJsaXNoZXItPnN0b3AoJ2Zhc3QnKTsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjM0LjEK Cg== --000000000000e277ee063fb9997f--