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 1ujdvI-00ABFZ-B0 for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Aug 2025 13:11:17 +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 1ujdvG-00FiIw-SE for pgsql-hackers@arkaria.postgresql.org; Wed, 06 Aug 2025 13:11:14 +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 1ujdvF-00FiIi-Tr for pgsql-hackers@lists.postgresql.org; Wed, 06 Aug 2025 13:11:14 +0000 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1ujdvA-0012gZ-1r for pgsql-hackers@lists.postgresql.org; Wed, 06 Aug 2025 13:11:13 +0000 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-433f681befbso229015b6e.3 for ; Wed, 06 Aug 2025 06:11:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754485868; x=1755090668; 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=tGWv1bVBUtjc+CIPKKRZmXp7dGw+gJfPNS95wf7Gbjo=; b=Okc3ij4+mg3F7ChA5a7+YJErP0qgpCYRe5byjBK9IlBSsohctqKdT2RUxLdk61SzO6 IWhIWeLu/Y03I7Df+F0QaszCWoHc5QUmWQgzLXITw5pAj+gUzmtJpf2MgvtS4JvuVOP+ 3VLbba0n2fddspA7zshFUxoEH2uDqKvepKYpwFmhmOKfwVKuno879/5R4XO6Pu58gfSY xBoqZMh3ywBPBI456shWChY6gK4RskM2j97aqe0Spw4girOKe5YGZ8x4RA1m1dO02E8q +4NTsdnZgFiw8h4wfjRyRLJ3/GfYKy50ebAizB9CVvjS8lW4FX/peTD8VxDeZBzMMisi 0WRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754485868; x=1755090668; 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=tGWv1bVBUtjc+CIPKKRZmXp7dGw+gJfPNS95wf7Gbjo=; b=iIF7XDXdmfGCMbXNDb+Zjv3X6To3Rsn1meD3YAD6H7YcVcSgSu6bBRQcBjLgrj/FYV RuC0U+o71dpdZxTPDGR42PIKunOAzMrploL2BlY6Tq2AgjezXlqOAODlhu6lV3ubNdPL Oh1LqQ3RUgH9Kn545xCMBvKvN2n8aMAhei49R32G7YdBTrAJacGkfOOJZyzFQy9kfjWw SeN1fckRC76VD2ZzTb4QtH1M0NDGTFNdek2J9v6izR50NFtcKfr3eQ6zqAEQpNMIp2BN RLi52/j4n5OXRkFrM9rbT2kPnz8+5l6tdPQZfBxuKWsZlz8POYiKfEvOWIM2GMYNvj6C AWVg== X-Forwarded-Encrypted: i=1; AJvYcCUioNGsucZv3+Gwp9FLh8ZvhEsdr8XL+ghBxgodyCHk3isw4cO9OmGGURBXCp34Y2c5r10SjUK4jUYfv3KH@lists.postgresql.org X-Gm-Message-State: AOJu0Yy6C4Qjii5IrGDaHB26Gw2/tgrPf2SEVSfumCmt0bpfOYDmhCqp 8lbxMn7yVCbOWNQu0GF2b6k+2zsQX2cqV37MkmVwalgw3PVGMkxA+YUSX4ZGKLsrK70rlhcV/PV +18iI0DghkmSiBP6tES7hxyDbAteoZrU= X-Gm-Gg: ASbGncuARGDLEM0VHm31eMMO8ELbPostKRSMaSYeW56csj4M5aLjdLDqzFJckDSoE1o s/taRarJr5m5ZtT4eny/hWrTGQKLI+Ff25q+ksX06X3+0dDTl3gKRkTlw8V65xuacCUyPxgvSf7 fSWuu3X03uyPixMGK3D+4QeADLaBVMaI5oGq/uImBcpM3gce1issrNBblvcUQuftruvxLyuCwMS YWbDpfMxg== X-Google-Smtp-Source: AGHT+IGrsTm0nrCzlPJBDvR4EnyfkKJzNfyfkJ9Hmix/nihun/ldTotpZyQFMj2oPqnJcJPZYWOggIjII3NNqcIbI7A= X-Received: by 2002:a05:6808:1526:b0:434:231:3e4c with SMTP id 5614622812f47-43579fb3069mr2265646b6e.16.1754485867987; Wed, 06 Aug 2025 06:11:07 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Wed, 6 Aug 2025 18:40:55 +0530 X-Gm-Features: Ac12FXzq7PINcZvBwAHu7A1P4DhL827hNTMES4bkJft6UQ11f_gh9NSYdfXMXw8 Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: Amit Kapila , "Zhijie Hou (Fujitsu)" , vignesh C , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000ed13c7063bb212a1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ed13c7063bb212a1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 4 Aug 2025 at 13:03, Peter Smith wrote: > > On Mon, Aug 4, 2025 at 2:07=E2=80=AFAM Shlok Kyal wrote: > > > ... > > > 10b. > > > How does "ALTER PUBLICATION tap_pub_col SET > > > (publish_generated_columns)" even work? I thought the > > > "pubish_generated_columns" is an enum but you did not specify any enu= m > > > value here (???) > > > > > > ~~~ > > Yes, it works. It works equivalent to publish_generated_columns =3D sto= red. > > Eg: > > postgres=3D# CREATE PUBLICATION pub1 FOR TABLE t1 with > > (publish_generated_columns); > > CREATE PUBLICATION > > postgres=3D# select * from pg_publication; > > oid | pubname | pubowner | puballtables | pubinsert | pubupdate | > > pubdelete | pubtruncate | pubviaroot | pubgencols > > -------+---------+----------+--------------+-----------+-----------+---= --------+-------------+------------+------------ > > 16395 | pub1 | 10 | f | t | t | t > > | t | f | s > > (1 row) > > > > Hmm -- it's not documented to behave like that, so I've created > another thread for getting to the bottom of this topic. > > ~~~ > > Meanwhile, here are my review comments for patch v18-0003 > > =3D=3D=3D=3D=3D=3D > src/backend/catalog/pg_publication.c > > pg_get_publication_tables: > > 1. > if (nattnums > 0) > { > values[2] =3D PointerGetDatum(buildint2vector(attnums, nattnums)); > nulls[2] =3D false; > } > else > nulls[2] =3D true; > > Is there any possibility that values[2] might not be null, but then > nattrnums skips some cols so remains 0? Then the final values[2] would > conflict with nulls[2], which seems strange. Maybe it is safer to also > assign values[2] =3D null in the else. > Yes, When all the columns of a table are present in 'EXCEPT (column-list)'. Then effectively no column should be replicated. In such cases we should mark nulls[2] as true. I agree with your point that values[2] should be made null. I have used '(Datum) 0', in accordance with other places. > =3D=3D=3D=3D=3D=3D > src/backend/replication/logical/tablesync.c > > fetch_remote_table_info: > > 2. > static void > fetch_remote_table_info(char *nspname, char *relname, LogicalRepRelation= *lrel, > - List **qual, bool *gencol_published) > + List **qual, bool *gencol_published, > + bool *no_cols_published) > > This new parameter should be documented in the function comment. > > ~~~ > > 3. > + if (server_version >=3D 190000) > + *no_cols_published =3D DatumGetBool(slot_getattr(tslot, 2, &isnull)); > + > > It seems that *no_cols_published (and *gencol_published) are assigned > false by the caller. I had to go looking for that, so IMO it would be > better to put Assert at the top of here so it is self-documenting > > Assert(*gencol_published =3D=3D false); > Assert(*no_cols_published =3D=3D false); > > =3D=3D=3D=3D=3D=3D > src/backend/replication/pgoutput/pgoutput.c > > 4. > + /* > + * Indicates whether no columns are published for a given relation. With > + * the introduction of the EXCEPT clause in column lists, it is now > + * possible to define a publication that excludes all columns of a table= . > + * However, the 'columns' attribute cannot represent this case, since a > + * NULL value implies that all columns are published. To distinguish thi= s > + * scenario, the 'no_cols_published' flag is introduced. > + */ > + bool no_cols_published; > > The wording of the comment seems a bit strange -- EXCEPT is not a clause. > > BEFORE: > the introduction of the EXCEPT clause in column lists, ... > > SUGGESTION > the introduction of the EXCEPT qualifier for column lists, .... > > ~~~ > > 5. > Bitmapset *cols =3D NULL; > + bool except_columns =3D false; > + bool no_col_published =3D false; > > There are multiple places in this patch that say: > > 'no_col_published' > or 'no_cols_published' > > I felt this var name can be misunderstood because it is easy to read > "no" as meaning "no." (aka number), and then misinterpret as > "number_of_cols_published". > > Maybe an unambiguous name can be found, like > - 'zero_cols_published' or > - 'nothing_published' or > - really make it 'num_cols_published' and check for 0. > > (so this comment applies to multiple places in the patch) > How about 'all_cols_excluded'? Or 'has_published_cols'? I have used 'all_cols_excluded' in this patch. Thoughts? > ~~ > > 6. > * of the table (including generated columns when > * 'publish_generated_columns' parameter is true). > */ > - if (!cols) > + if (!no_col_published && !cols) > { > > The existing comment above this code fragment also needs to mention > "EXCEPT (column-list)" where all the columns are excluded > > =3D=3D=3D=3D=3D=3D > src/bin/psql/describe.c > > describeOneTableDetails: > > 7. > /* column list (if any) */ > if (!PQgetisnull(result, i, 2)) > - appendPQExpBuffer(&buf, " (%s)", > - PQgetvalue(result, i, 2)); > + { > + if (strcmp(PQgetvalue(result, i, 3), "t") =3D=3D 0) > + appendPQExpBuffer(&buf, " EXCEPT (%s)", > + PQgetvalue(result, i, 2)); > + else > + appendPQExpBuffer(&buf, " (%s)", > + PQgetvalue(result, i, 2)); > + } > > Isn't this code fragment (and also surrounding code) using the same > logic as what is already encapsulated in the function > addFooterToPublicationDesc()? > Superficially, it seems like a large chunk can all be replaced with a > single call to the existing function. > 'addFooterToPublicationDesc' is called when we use \dRp+ and print in forma= t: "schema_name.table_name" EXCEPT (column-list) Whereas code pasted above is executed when we use \d+ table_name and the output is the format: "publication_name" EXCEPT (column-list) These pieces of code are used to print different info. One is used to print info related to tables and the other is used to print info related to publication. Should we use a common function for this? > =3D=3D=3D=3D=3D=3D > src/test/regress/expected/publication.out > > 8. > +-- Syntax error EXCEPT without a col-list > +CREATE PUBLICATION testpub_except2 FOR TABLE pub_test_except1 EXCEPT; > +ERROR: EXCEPT clause not allowed for table without column list > +LINE 1: CREATE PUBLICATION testpub_except2 FOR TABLE pub_test_except... > + ^ > > Is that a bad syntax position marker (^)? e.g. Why is it pointed at > the word "TABLE" instead of "EXCEPT"? > In function 'preprocess_pubobj_list' the position of position marker (^) is decided by "pubobj->location". Function handles multiple errors and setting "$$->location" only specific to EXCEPT qualifier would not be appropriate. One solution I feel is to not show "position marker (^)" in the case of EXCEPT. Or maybe we can add a new variable to 'PublicationTable' for except_location but I think we should not do that. Thoughts? For this version of patch, I have removed the "position marker (^)" in the case of EXCEPT. > =3D=3D=3D=3D=3D=3D > .../t/037_rep_changes_except_collist.pl > > 9. > +# Test initial sync > +my $result =3D $node_subscriber->safe_psql('postgres', "SELECT * FROM ta= b1"); > +is($result, qq(|2|3), > + 'check that initial sync for EXCEPT (column-list) publication'); > +$result =3D $node_subscriber->safe_psql('postgres', "SELECT * FROM sch1.= tab1"); > +is($result, qq(1||), > + 'check that initial sync for EXCEPT (column-list) publication'); > > These messages still seem to have missing or extra words: "check that > initial sync" (??). Maybe just remove the word 'that'? > > ~~~ > > 10. > # Test for update > $node_subscriber->safe_psql( > 'postgres', qq( > CREATE UNIQUE INDEX b_idx ON tab1 (b); > ALTER TABLE tab1 REPLICA IDENTITY USING INDEX b_idx; > )); > $node_publisher->safe_psql( > 'postgres', qq( > CREATE UNIQUE INDEX b_idx ON tab1 (b); > ALTER TABLE tab1 REPLICA IDENTITY USING INDEX b_idx; > UPDATE tab1 SET a =3D 3, b =3D 4, c =3D 5 WHERE a =3D 1; > )); > $node_publisher->wait_for_catchup('tap_sub_col'); > $result =3D $node_subscriber->safe_psql('postgres', "SELECT * FROM tab1")= ; > is( $result, qq(|5|6 > |4|5), > 'check update for EXCEPT (column-list) publication'); > > ~ > > 10a. > I think the test is OK, but your chosen numbers like 1,2,3, then 4,5,6 > and then updating to 1,2,3 to 3,4,5 make it quite hard to review. > Maybe use easier numbers that are more identifiable, e.g. update 1,2,3 > =3D> 991,992,993 or something like that. > > ~ > > 10b. > You may need to put some ORDER BY in all these queries just to make > sure they are always reproducible, giving rows in the expected order. > I have also addressed the remaining comments and attached the latest v19 patches. Thanks, Shlok Kyal --000000000000ed13c7063bb212a1 Content-Type: application/octet-stream; name="v19-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v19-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdzzji370 RnJvbSA3MzcyMWExMzdjNDIxNTk2ZWI3NDgwMzlhZjNhOWEzY2JiNjQ2NTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYx OSAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog 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 Y21kcy5jCmluZGV4IDgwM2MyNmFiMjE2Li4wNmY2ZjQ1NTI2YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTQ5LDYgKzQ5LDE1IEBACiAjaW5jbHVkZSAidXRpbHMv dmFybGVuYS5oIgogCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZhbHVlcyBmb3Ig ZmxhZ3MgYW5kIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUgdHJ1 ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZpbmUgUFVCX0RF RkFVTFRfQUNUSU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfVklBX1JPT1Qg ZmFsc2UKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorI2RlZmluZSBQVUJf REVGQVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJbmZvcm1hdGlv biB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVyIGV4cHJlc3Np b24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3IgZGV0YWlscy4K QEAgLTkxLDEyICsxMDAsMTIgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRl ICpwc3RhdGUsCiAJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnNfZ2l2ZW4gPSBmYWxzZTsKIAog CS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsKLQlwdWJhY3Rp b25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IHRydWU7Ci0J cHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdCA9IGZhbHNlOwotCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVCTElTSF9HRU5D T0xTX05PTkU7CisJcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRfQUNUSU9OX0lO U0VSVDsKKwlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVVBEQVRF OworCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEU7CisJ cHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEU7CisJ KnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JPT1Q7CisJKnB1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJfREVGQVVMVF9HRU5DT0xTOwogCiAJLyogUGFy c2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTg3LDYgKzExOTYsOTkg QEAgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNhY2hlSW52YWxp ZGF0ZVJlbGNhY2hlQWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24uCisg KgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxF UyBmbGFnIHRvIGZhbHNlIGFuZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBzY2hlbWFzIHRo YXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0YXRpYyB2b2lk CitBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCwKKwkJCQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0dXApCit7CisJ Rm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNU UlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnNjaGVt YWlkcyA9IE5JTDsKKwlMaXN0CSAgICpyZWxzID0gTklMOworCUxpc3QJICAgKnJlbGlkcyA9IE5J TDsKKwlib29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNb TmF0dHNfcGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRp b25dOworCisJLyogUkVTRVQgcHVibGljYXRpb24gcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYg KCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5T VUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBS RVNFVCBwdWJsaWNhdGlvbiIpKTsKKworCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMp KTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKwltZW1zZXQocmVwbGFj ZXMsIGZhbHNlLCBzaXplb2YocmVwbGFjZXMpKTsKKworCS8qIFJlc2V0IHRoZSBwdWJsaWNhdGlv biBwYXJhbWV0ZXJzICovCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViaW5zZXJ0IC0g MV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVCk7CisJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJ1cGRhdGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVM VF9BQ1RJT05fVVBEQVRFKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0 ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRlbGV0ZSAt IDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEUpOworCXJlcGxhY2Vz W0FudW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0Fu dW1fcGdfcHVibGljYXRpb25fcHVidHJ1bmNhdGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVG QVVMVF9BQ1RJT05fVFJVTkNBVEUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVi dHJ1bmNhdGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2 aWFyb290IC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfVklBX1JPT1QpOworCXJlcGxh Y2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gdHJ1ZTsKKworCXZhbHVl c1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmdlbmNvbHMgLSAxXSA9IENoYXJHZXREYXR1bShQVUJf REVGQVVMVF9HRU5DT0xTKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmdlbmNv bHMgLSAxXSA9IHRydWU7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlICovCisJ aWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwl7CisJCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FMTF9UQUJM RVMpOworCQlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0g dHJ1ZTsKKwkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKKwl9CisKKwl0dXAgPSBoZWFw X21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywK KwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJQ2F0YWxv Z1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworCisJLyogUmVtb3ZlIHRoZSBh c3NvY2lhdGVkIHNjaGVtYXMgZnJvbSB0aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFpZHMgPSBH ZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQpOworCisJLyoKKwkgKiBTY2hlbWEgbG9jayBpcyBo ZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBhbHRlcmVkIHRvIHByZXZlbnQKKwkgKiBjb25j dXJyZW50IHNjaGVtYSBkZWxldGlvbi4KKwkgKi8KKwlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZHMp OworCisJLyogUmVtb3ZlIFNjaGVtYXMgKi8KKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1Ymlk LCBzY2hlbWFpZHMsIHRydWUpOworCisJLyogR2V0IGFsbCByZWxhdGlvbnMgYXNzb2NpYXRlZCB3 aXRoIHRoZSBwdWJsaWNhdGlvbiAqLworCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25z KHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJZm9yZWFjaF9vaWQocmVsaWQsIHJl bGlkcykKKwl7CisJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcmVsOworCisJCXJlbCA9IHBhbGxvYyhz aXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CisJCXJlbC0+d2hlcmVDbGF1c2UgPSBOVUxMOwor CQlyZWwtPmNvbHVtbnMgPSBOSUw7CisJCXJlbC0+cmVsYXRpb24gPSB0YWJsZV9vcGVuKHJlbGlk LCBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOworCQlyZWxzID0gbGFwcGVuZChyZWxzLCByZWwp OworCX0KKworCS8qIFJlbW92ZSB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbnMgZnJvbSB0aGUgcHVi bGljYXRpb24gKi8KKwlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViaWQsIHJlbHMsIHRydWUpOwor CUNsb3NlVGFibGVMaXN0KHJlbHMpOworfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0 by9mcm9tIHB1YmxpY2F0aW9uLgogICovCkBAIC0xNTAxLDYgKzE2MDMsOCBAQCBBbHRlclB1Ymxp Y2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAK IAlpZiAoc3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0YXRlLCBz dG10LCByZWwsIHR1cCk7CisJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0UHVibGlj YXRpb24pCisJCUFsdGVyUHVibGljYXRpb25SZXNldChwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsK IAllbHNlCiAJewogCQlMaXN0CSAgICpyZWxhdGlvbnMgPSBOSUw7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBk YjQzMDM0YjlkYi4uNGE0MDEwMjk2YWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTA4NTAsNiArMTA4NTAs OCBAQCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2JqU3BlYwogICoKICAqIEFMVEVSIFBVQkxJ Q0FUSU9OIG5hbWUgU0VUIHB1Yl9vYmogWywgLi4uXQogICoKKyAqIEFMVEVSIFBVQkxJQ0FUSU9O IG5hbWUgUkVTRVQKKyAqCiAgKiBwdWJfb2JqIGlzIG9uZSBvZjoKICAqCiAgKgkJVEFCTEUgdGFi bGVfbmFtZSBbLCAuLi5dCkBAIC0xMDg5Niw2ICsxMDg5OCwxMyBAQCBBbHRlclB1YmxpY2F0aW9u U3RtdDoKIAkJCQkJbi0+YWN0aW9uID0gQVBfRHJvcE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUg KikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKKwkJCQl7CisJ CQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0 bXQpOworCQkJCQluLT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPmFjdGlvbiA9IEFQX1Jlc2V0UHVi bGljYXRpb247CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCAxZjJjYTk0NmZjNS4uOGRlN2Qx MDM4NDYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIyNjYsNyArMjI2Niw3IEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCiAJLyogQUxURVIgUFVCTElDQVRJT04g PG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRj aEFueSkpCi0JCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFN RSBUTyIsICJTRVQiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8i LCAiUkVOQU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxu YW1lPiBBREQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiQUREIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFC TEUiKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA4NmEyMzZiZDU4Yi4uYWYyMjBiMDI3ODgg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQzMDUsNiArNDMwNSw3IEBAIHR5cGVkZWYgZW51 bSBBbHRlclB1YmxpY2F0aW9uQWN0aW9uCiAJQVBfQWRkT2JqZWN0cywJCQkJLyogYWRkIG9iamVj dHMgdG8gcHVibGljYXRpb24gKi8KIAlBUF9Ecm9wT2JqZWN0cywJCQkJLyogcmVtb3ZlIG9iamVj dHMgZnJvbSBwdWJsaWNhdGlvbiAqLwogCUFQX1NldE9iamVjdHMsCQkJCS8qIHNldCBsaXN0IG9m IG9iamVjdHMgKi8KKwlBUF9SZXNldFB1YmxpY2F0aW9uLAkJLyogcmVzZXQgdGhlIHB1YmxpY2F0 aW9uICovCiB9IEFsdGVyUHVibGljYXRpb25BY3Rpb247CiAKIHR5cGVkZWYgc3RydWN0IEFsdGVy UHVibGljYXRpb25TdG10CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0 CmluZGV4IDUzMjY4MDU5MTQyLi43NDAwOWE5MmYzZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTE5MjMsNiArMTkyMywxMjQgQEAgVGFibGVzOgogRFJP UCBQVUJMSUNBVElPTiBwdWIxOwogRFJPUCBQVUJMSUNBVElPTiBwdWIyOwogRFJPUCBUQUJMRSBn ZW5jb2xzOworLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRF IFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitT RVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7Cist LSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9y ZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNv bHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVT RVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKKy0tIFZlcmlmeSB0aGF0 IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVy IFJFU0VUCitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3NjaDEu dGJsMSIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVy YXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUg ICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIFZlcmlmeSB0aGF0IGFzc29jaWF0 ZWQgc2NoZW1hcyBhcmUgcmVvbXZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNFVAor XGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgbm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJs aWMiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0 cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVi bGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0 YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0 ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBTRVQgKFBVQkxJU0ggPSAnJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVy IGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg fCBmICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgor KDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9W SUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklB X1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0 ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5z IHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAg IHwgdAorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwor XGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVz IHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAg IHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKKy0t IFZlcmlmeSB0aGF0ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVz ZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgICB8IHN0b3JlZCAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cp CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9u CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1 c2VyCitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCitTRVQg Uk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsK IFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047 CiBEUk9QIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IGRlZGRmMGRhODQ0 Li4xMzY2YjExYmJhMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRp b24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTIy Miw2ICsxMjIyLDYzIEBAIERST1AgUFVCTElDQVRJT04gcHViMTsKIERST1AgUFVCTElDQVRJT04g cHViMjsKIERST1AgVEFCTEUgZ2VuY29sczsKIAorLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FU SU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJf c2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNs aWVudF9taW5fbWVzc2FnZXM7CisKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBWZXJpZnkgdGhhdCBhc3Nv Y2lhdGVkIHRhYmxlcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNF VAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CisKKy0tIFZlcmlmeSB0aGF0IGFzc29j aWF0ZWQgc2NoZW1hcyBhcmUgcmVvbXZlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbiBhZnRlciBSRVNF VAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJh bWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVl Jyk7CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1l dGVyIGlzIHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUyA9IHN0b3JlZCk7 CisKKy0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIg aXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkg c3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCitTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXI7CisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKK0RST1Ag VEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gxOworCiBSRVNFVCBjbGll bnRfbWluX21lc3NhZ2VzOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBST0xF IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciwgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKLS0g CjIuMzQuMQoK --000000000000ed13c7063bb212a1 Content-Type: application/octet-stream; name="v19-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v19-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdzzji3e2 RnJvbSA0ZTMyOWUxMjE1MDRmNDAwZmFjYTJlMDA5NjNkOTExMzU5NjJiYWQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFN1biwgMyBBdWcgMjAyNSAyMTowMToxMiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjE5 IDMvM10gU2tpcCBwdWJsaXNoaW5nIHRoZSBjb2x1bW5zIHNwZWNpZmllZCBpbiBGT1IgVEFCTEUK IEVYQ0VQVAoKQSBuZXcgIlRBQkxFIHRhYmxlX25hbWUgRVhDRVBUIChjb2x1bW5fbGlzdCkiIGNs YXVzZSBmb3IgQ1JFQVRFL0FMVEVSClBVQkxJQ0FUSU9OIGFsbG93cyBvbmUgb3IgbW9yZSBjb2x1 bW5zIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVyCndpbGwgbm90IHNlbmQgdGhlIGRhdGEg b2YgZXhjbHVkZWQgY29sdW1ucyB0byB0aGUgc3Vic2NyaWJlci4KClRoZSBuZXcgc3ludGF4IGFs bG93cyBzcGVjaWZ5aW5nIGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IHdoZW4gY3JlYXRpbmcgb3IKYWx0 ZXJpbmcgYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNSRUFURSBQVUJMSUNBVElPTiBwdWJu YW1lIEZPUiBUQUJMRSB0YWJuYW1lIEVYQ0VQVCAoY29sMSwgY29sMiwgY29sMykKb3IKQUxURVIg UFVCTElDQVRJT04gcHVibmFtZSBBREQgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIs IGNvbDMpCgpXaGVuIGNvbHVtbiAicHJleGNlcHQiIG9mIHN5c3RlbSBjYXRhbG9nICJwZ19wdWJs aWNhdGlvbl9yZWwiIGlzIHNldAp0byAidHJ1ZSIsIGFuZCBjb2x1bW4gInByYXR0cnMiIG9mIHN5 c3RlbSBjYXRhbG9nICJwZ19wdWJsaWNhdGlvbl9yZWwiCmlzIG5vdCBOVUxMLCB0aGF0IG1lYW5z IHRoZSBwdWJsaWNhdGlvbiB3YXMgY3JlYXRlZCB3aXRoICJFWENFUFQKKGNvbHVtbi1saXN0KSIs IGFuZCB0aGUgY29sdW1ucyBpbiAicHJhdHRycyIgd2lsbCBiZSBleGNsdWRlZCBmcm9tCmJlaW5n IHB1Ymxpc2hlZC4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0byBpZGVudGlmeSBhbmQgZHVtcCB0aGUg ZXhjbHVkZWQgY29sdW1uIGxpc3Qgb2YgdGhlCnB1YmxpY2F0aW9uLgoKVGhlIHBzcWwgXGQgZmFt aWx5IG9mIGNvbW1hbmRzIGNhbiBub3cgZGlzcGxheSBleGNsdWRlZCBjb2x1bW4gbGlzdC4gZS5n Lgpwc3FsIFxkUnArIHZhcmlhbnQgd2lsbCBub3cgZGlzcGxheSBhc3NvY2lhdGVkICJFWENFUFQg KGNvbHVtbl9saXN0KSIgaWYKYW55LgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbCAgICAgICAgIHwgMTA2ICsrKysrKysrLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxMCArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cHVibGljYXRpb24uc2dtbCAgICAgIHwgIDUyICsrKy0tCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNzUgKysrKysrLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgIDMwICsrLQogc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQzICsrLS0KIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jICAgfCAgNzAgKysrKysrLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsrKy0tCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDk5ICsrKysrKy0tLQogc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICAgICAgfCAgIDYgKy0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggICAgICB8ICAgNSArLQogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICAgIHwgIDY5ICsrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgICB8ICA1MiArKysrKwogc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAgICAgICAgIHwgICAxICsKIC4uLi90 LzAzN19yZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbCAgICAgICB8IDE5MCArKysrKysrKysr KysrKysrKysKIDE5IGZpbGVzIGNoYW5nZWQsIDc3NiBpbnNlcnRpb25zKCspLCAxMjggZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3Jl cF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0LnBsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBlOTZhNTVmZWNm OS4uYzE0MDc3Y2FhNjggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NTczLDcgKzY1NzMsMTAgQEAgU0NS QU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2Vh YmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmV4Y2VwdDwvc3RydWN0 ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAg ICAgICBUcnVlIGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVkCisgICAgICAgVHJ1ZSBp ZiB0aGUgY29sdW1uIGxpc3Qgb3IgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRlZCBmcm9tIHB1Ymxp Y2F0aW9uLgorICAgICAgIElmIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIGluIDxsaXRlcmFs PnByYXR0cnM8L2xpdGVyYWw+LCB0aGVuCisgICAgICAgZXhjbHVkZSBvbmx5IHRob3NlIGNvbHVt bnMuIElmIDxsaXRlcmFsPnByYXR0cnM8L2xpdGVyYWw+IGlzIG51bGwsCisgICAgICAgdGhlbiBl eGNsdWRlIHRoZSBlbnRpcmUgcmVsYXRpb24uCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAg PC9yb3c+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNn bWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDQxNGEzMTRh Y2M1Li4yZjA0ZjkzNjIwZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGlj YXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBA IC0xMzcyLDEwICsxMzcyLDEwIEBAIFB1YmxpY2F0aW9uczoKICAgPHRpdGxlPkNvbHVtbiBMaXN0 czwvdGl0bGU+CiAKICAgPHBhcmE+Ci0gICBFYWNoIHB1YmxpY2F0aW9uIGNhbiBvcHRpb25hbGx5 IHNwZWNpZnkgd2hpY2ggY29sdW1ucyBvZiBlYWNoIHRhYmxlIGFyZQotICAgcmVwbGljYXRlZCB0 byBzdWJzY3JpYmVycy4gVGhlIHRhYmxlIG9uIHRoZSBzdWJzY3JpYmVyIHNpZGUgbXVzdCBoYXZl IGF0Ci0gICBsZWFzdCBhbGwgdGhlIGNvbHVtbnMgdGhhdCBhcmUgcHVibGlzaGVkLiBJZiBubyBj b2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQsCi0gICB0aGVuIGFsbCBjb2x1bW5zIG9uIHRoZSBwdWJs aXNoZXIgYXJlIHJlcGxpY2F0ZWQuCisgICBFYWNoIHB1YmxpY2F0aW9uIGNhbiBvcHRpb25hbGx5 IHNwZWNpZnkgd2hpY2ggY29sdW1ucyBvZiBlYWNoIHRhYmxlIHNob3VsZCBiZQorICAgcmVwbGlj YXRlZCBvciBleGNsdWRlZCBmcm9tIHJlcGxpY2F0aW9uLiBUaGUgdGFibGUgb24gdGhlIHN1YnNj cmliZXIgc2lkZQorICAgbXVzdCBoYXZlIGF0IGxlYXN0IGFsbCB0aGUgY29sdW1ucyB0aGF0IGFy ZSBwdWJsaXNoZWQuIElmIG5vIGNvbHVtbiBsaXN0IGlzCisgICBzcGVjaWZpZWQsIHRoZW4gYWxs IGNvbHVtbnMgb24gdGhlIHB1Ymxpc2hlciBhcmUgcmVwbGljYXRlZC4KICAgIFNlZSA8eHJlZiBs aW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24iLz4gZm9yIGRldGFpbHMgb24gdGhlIHN5bnRh eC4KICAgPC9wYXJhPgogCkBAIC0xMzg5LDggKzEzODksMTEgQEAgUHVibGljYXRpb25zOgogCiAg IDxwYXJhPgogICAgSWYgbm8gY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBhbnkgY29sdW1ucyBh ZGRlZCB0byB0aGUgdGFibGUgbGF0ZXIgYXJlCi0gICBhdXRvbWF0aWNhbGx5IHJlcGxpY2F0ZWQu IFRoaXMgbWVhbnMgdGhhdCBoYXZpbmcgYSBjb2x1bW4gbGlzdCB3aGljaCBuYW1lcwotICAgYWxs IGNvbHVtbnMgaXMgbm90IHRoZSBzYW1lIGFzIGhhdmluZyBubyBjb2x1bW4gbGlzdCBhdCBhbGwu CisgICBhdXRvbWF0aWNhbGx5IHJlcGxpY2F0ZWQuIEhvd2V2ZXIsIGEgbm9ybWFsIGNvbHVtbiBs aXN0ICh3aXRob3V0CisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+KSBvbmx5IHJlcGxpY2F0 ZXMgdGhlIHNwZWNpZmllZCBjb2x1bW5zIGFuZCBubyBtb3JlLgorICAgVGhlcmVmb3JlLCBoYXZp bmcgYSBjb2x1bW4gbGlzdCB0aGF0IG5hbWVzIGFsbCBjb2x1bW5zIGlzIG5vdCB0aGUgc2FtZSBh cworICAgaGF2aW5nIG5vIGNvbHVtbiBsaXN0IGF0IGFsbCwgYXMgbW9yZSBjb2x1bW5zIG1heSBi ZSBhZGRlZCB0byB0aGUgdGFibGUKKyAgIGxhdGVyLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBA IC0xNDAyLDYgKzE0MDUsMTQgQEAgUHVibGljYXRpb25zOgogICAgR2VuZXJhdGVkIGNvbHVtbnMg Y2FuIGFsc28gYmUgc3BlY2lmaWVkIGluIGEgY29sdW1uIGxpc3QuIFRoaXMgYWxsb3dzCiAgICBn ZW5lcmF0ZWQgY29sdW1ucyB0byBiZSBwdWJsaXNoZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHB1Ymxp Y2F0aW9uIHBhcmFtZXRlcgogICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9u LXBhcmFtcy13aXRoLXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgorICAgPGxpdGVyYWw+cHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+LiBTcGVjaWZ5aW5nIGdlbmVy YXRlZAorICAgY29sdW1ucyB1c2luZyB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1 c2UgZXhjbHVkZXMgdGhvc2UgY29sdW1ucworICAgZnJvbSBiZWluZyBwdWJsaXNoZWQsIHJlZ2Fy ZGxlc3Mgb2YgdGhlCisgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFy YW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNo X2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4gc2V0dGluZy4gSG93ZXZlciwgZm9y CisgICBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgbGlzdGVkIGluIHRoZSA8bGl0ZXJh bD5FWENFUFQ8L2xpdGVyYWw+CisgICBjbGF1c2UsIHdoZXRoZXIgdGhleSBhcmUgcHVibGlzaGVk IG9yIG5vdCBzdGlsbCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZgorICAgPGxpbmsgbGlua2VuZD0i c3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoLXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVt bnMiPgogICAgPGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xp bms+LiBTZWUKICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tZ2VuY29scyIv PiBmb3IgZGV0YWlscy4KICAgPC9wYXJhPgpAQCAtMTQyMywxMSArMTQzNCwxNCBAQCBQdWJsaWNh dGlvbnM6CiAKICAgPHBhcmE+CiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyA8Y29tbWFu ZD5VUERBVEU8L2NvbW1hbmQ+IG9yCi0gICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IG9wZXJh dGlvbnMsIGFueSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGhlCi0gICB0YWJsZSdzIHJlcGxp Y2EgaWRlbnRpdHkgY29sdW1ucyAoc2VlCi0gICA8eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ0YWJs ZS1yZXBsaWNhLWlkZW50aXR5Ii8+KS4KKyAgIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4gb3Bl cmF0aW9ucywgYW55IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0YWJsZSdzCisgICByZXBsaWNh IGlkZW50aXR5IGNvbHVtbnMgYW5kIGFueSBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aAorICAg PGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgbXVzdCBub3QgaW5jbHVkZSB0aGUgdGFi bGUncyByZXBsaWNhCisgICBpZGVudGl0eSBjb2x1bW5zIChzZWUgPHhyZWYgbGlua2VuZD0ic3Fs LWFsdGVydGFibGUtcmVwbGljYS1pZGVudGl0eSIvPikuCiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1 Ymxpc2hlcyBvbmx5IDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4gb3BlcmF0aW9ucywgdGhlbgot ICAgdGhlIGNvbHVtbiBsaXN0IG1heSBvbWl0IHJlcGxpY2EgaWRlbnRpdHkgY29sdW1ucy4KKyAg IHRoZSBjb2x1bW4gbGlzdCBtYXkgb21pdCByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMgYW5kIHRo ZSBjb2x1bW4gbGlzdAorICAgc3BlY2lmaWVkIHdpdGggPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFs PiBjbGF1c2UgbWF5IGluY2x1ZGUgcmVwbGljYSBpZGVudGl0eQorICAgY29sdW1ucy4KICAgPC9w YXJhPgogCiAgIDxwYXJhPgpAQCAtMTQ3MiwxOCArMTQ4NiwyMSBAQCBQdWJsaWNhdGlvbnM6CiAg ICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgICA8cGFyYT4KLSAgICBDcmVhdGUgYSB0YWJs ZSA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gdG8gYmUgdXNlZCBpbiB0aGUgZm9sbG93aW5nIGV4YW1w bGUuCisgICAgQ3JlYXRlIHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFs PnQyPC9saXRlcmFsPiB0byBiZSB1c2VkIGluCisgICAgdGhlIGZvbGxvd2luZyBleGFtcGxlLgog PHByb2dyYW1saXN0aW5nPgogLyogcHViICMgKi8gQ1JFQVRFIFRBQkxFIHQxKGlkIGludCwgYSB0 ZXh0LCBiIHRleHQsIGMgdGV4dCwgZCB0ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7Cisv KiBwdWIgIyAqLyBDUkVBVEUgVEFCTEUgdDIoaWQgaW50LCBhIHRleHQsIGIgdGV4dCwgYyB0ZXh0 LCBkIHRleHQsIGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9w YXJhPgogCiAgICA8cGFyYT4KICAgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiA8bGl0ZXJhbD5wMTwv bGl0ZXJhbD4uIEEgY29sdW1uIGxpc3QgaXMgZGVmaW5lZCBmb3IKLSAgICB0YWJsZSA8bGl0ZXJh bD50MTwvbGl0ZXJhbD4gdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGF0IHdpbGwg YmUKLSAgICByZXBsaWNhdGVkLiBOb3RpY2UgdGhhdCB0aGUgb3JkZXIgb2YgY29sdW1uIG5hbWVz IGluIHRoZSBjb2x1bW4gbGlzdCBkb2VzCi0gICAgbm90IG1hdHRlci4KKyAgICB0YWJsZSA8bGl0 ZXJhbD50MTwvbGl0ZXJhbD4sIGFuZCBhbm90aGVyIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQgZm9y IHRhYmxlCisgICAgPGxpdGVyYWw+dDI8L2xpdGVyYWw+IHVzaW5nIHRoZSA8bGl0ZXJhbD5FWENF UFQ8L2xpdGVyYWw+IGNsYXVzZSB0byByZWR1Y2UKKyAgICB0aGUgbnVtYmVyIG9mIGNvbHVtbnMg dGhhdCB3aWxsIGJlIHJlcGxpY2F0ZWQuIE5vdGUgdGhhdCB0aGUgb3JkZXIgb2YgY29sdW1uCisg ICAgbmFtZXMgaW4gdGhlIGNvbHVtbiBsaXN0cyBkb2VzIG5vdCBtYXR0ZXIuCiA8cHJvZ3JhbWxp c3Rpbmc+Ci0vKiBwdWIgIyAqLyBDUkVBVEUgUFVCTElDQVRJT04gcDEgRk9SIFRBQkxFIHQxIChp ZCwgYiwgYSwgZCk7CisvKiBwdWIgIyAqLyBDUkVBVEUgUFVCTElDQVRJT04gcDEgRk9SIFRBQkxF IHQxIChpZCwgYiwgYSwgZCksIHQyIEVYQ0VQVCAoZCwgYSk7CiA8L3Byb2dyYW1saXN0aW5nPjwv cGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTQ5Nyw2ICsxNTE0LDcgQEAgUHVibGljYXRpb25zOgog IHBvc3RncmVzIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgogVGFibGVzOgogICAgICJwdWJsaWMudDEi IChpZCwgYSwgYiwgZCkKKyAgICAicHVibGljLnQyIiBFWENFUFQgKGEsIGQpCiA8L3Byb2dyYW1s aXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTUxNywyMyArMTUzNSw0MSBAQCBJbmRl eGVzOgogICAgICJ0MV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQogUHVibGljYXRpb25z OgogICAgICJwMSIgKGlkLCBhLCBiLCBkKQorCisvKiBwdWIgIyAqLyBcZCB0MgorICAgICAgICAg ICAgICAgICBUYWJsZSAicHVibGljLnQyIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVs bCB8CisgYSAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwKKyBiICAgICAg fCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGMgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8CisgZCAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAg ICAgICAgIHwKKyBlICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorSW5k ZXhlczoKKyAgICAidDJfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKK1B1YmxpY2F0aW9u czoKKyAgICAicDEiIEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAg ICAgPHBhcmE+Ci0gICAgIE9uIHRoZSBzdWJzY3JpYmVyIG5vZGUsIGNyZWF0ZSBhIHRhYmxlIDxs aXRlcmFsPnQxPC9saXRlcmFsPiB3aGljaCBub3cKLSAgICAgb25seSBuZWVkcyBhIHN1YnNldCBv ZiB0aGUgY29sdW1ucyB0aGF0IHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0YWJsZQotICAgICA8bGl0 ZXJhbD50MTwvbGl0ZXJhbD4sIGFuZCBhbHNvIGNyZWF0ZSB0aGUgc3Vic2NyaXB0aW9uCisgICAg IE9uIHRoZSBzdWJzY3JpYmVyIG5vZGUsIGNyZWF0ZSB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVy YWw+IGFuZAorICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4gd2hpY2ggbm93IG9ubHkgbmVlZHMg YSBzdWJzZXQgb2YgdGhlIGNvbHVtbnMgdGhhdAorICAgICB3ZXJlIG9uIHRoZSBwdWJsaXNoZXIg dGFibGVzIDxsaXRlcmFsPnQxPC9saXRlcmFsPiBhbmQKKyAgICAgPGxpdGVyYWw+dDI8L2xpdGVy YWw+LCBhbmQgYWxzbyBjcmVhdGUgdGhlIHN1YnNjcmlwdGlvbgogICAgICA8bGl0ZXJhbD5zMTwv bGl0ZXJhbD4gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBwdWJsaWNhdGlvbgogICAgICA8bGl0ZXJh bD5wMTwvbGl0ZXJhbD4uCiA8cHJvZ3JhbWxpc3Rpbmc+CiAvKiBzdWIgIyAqLyBDUkVBVEUgVEFC TEUgdDEoaWQgaW50LCBiIHRleHQsIGEgdGV4dCwgZCB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOwor Lyogc3ViICMgKi8gQ1JFQVRFIFRBQkxFIHQyKGlkIGludCwgYiB0ZXh0LCBjIHRleHQsIGUgdGV4 dCwgUFJJTUFSWSBLRVkoaWQpKTsKIC8qIHN1YiAjICovIENSRUFURSBTVUJTQ1JJUFRJT04gczEK IC8qIHN1YiAtICovIENPTk5FQ1RJT04gJ2hvc3Q9bG9jYWxob3N0IGRibmFtZT10ZXN0X3B1YiBh cHBsaWNhdGlvbl9uYW1lPXMxJwogLyogc3ViIC0gKi8gUFVCTElDQVRJT04gcDE7CiA8L3Byb2dy YW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgotICAgICBPbiB0aGUgcHVibGlzaGVyIG5v ZGUsIGluc2VydCBzb21lIHJvd3MgdG8gdGFibGUgPGxpdGVyYWw+dDE8L2xpdGVyYWw+LgorICAg ICBPbiB0aGUgcHVibGlzaGVyIG5vZGUsIGluc2VydCBzb21lIHJvd3MgdG8gdGFibGVzIDxsaXRl cmFsPnQxPC9saXRlcmFsPgorICAgICBhbmQgPGxpdGVyYWw+dDI8L2xpdGVyYWw+CiA8cHJvZ3Jh bWxpc3Rpbmc+CiAvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MSBWQUxVRVMoMSwgJ2EtMScsICdi LTEnLCAnYy0xJywgJ2QtMScsICdlLTEnKTsKIC8qIHB1YiAjICovIElOU0VSVCBJTlRPIHQxIFZB TFVFUygyLCAnYS0yJywgJ2ItMicsICdjLTInLCAnZC0yJywgJ2UtMicpOwpAQCAtMTU0NSwxMSAr MTU4MSwyMSBAQCBQdWJsaWNhdGlvbnM6CiAgIDIgfCBhLTIgfCBiLTIgfCBjLTIgfCBkLTIgfCBl LTIKICAgMyB8IGEtMyB8IGItMyB8IGMtMyB8IGQtMyB8IGUtMwogKDMgcm93cykKKy8qIHB1YiAj ICovIElOU0VSVCBJTlRPIHQyIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAnZC0xJywg J2UtMScpOworLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsICdhLTInLCAnYi0y JywgJ2MtMicsICdkLTInLCAnZS0yJyk7CisvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MiBWQUxV RVMoMywgJ2EtMycsICdiLTMnLCAnYy0zJywgJ2QtMycsICdlLTMnKTsKKy8qIHB1YiAjICovIFNF TEVDVCAqIEZST00gdDIgT1JERVIgQlkgaWQ7CisgaWQgfCAgYSAgfCAgYiAgfCAgYyAgfCAgZCAg fCAgZQorLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLQorICAxIHwgYS0xIHwgYi0x IHwgYy0xIHwgZC0xIHwgZS0xCisgIDIgfCBhLTIgfCBiLTIgfCBjLTIgfCBkLTIgfCBlLTIKKyAg MyB8IGEtMyB8IGItMyB8IGMtMyB8IGQtMyB8IGUtMworKDMgcm93cykKIDwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgogCiAgICAgPHBhcmE+Ci0gICAgIE9ubHkgZGF0YSBmcm9tIHRoZSBjb2x1bW4g bGlzdCBvZiBwdWJsaWNhdGlvbiA8bGl0ZXJhbD5wMTwvbGl0ZXJhbD4gaXMKLSAgICAgcmVwbGlj YXRlZC4KKyAgICAgT25seSBkYXRhIHNwZWNpZmllZCBieSB0aGUgY29sdW1uIGxpc3RzIG9mIHB1 YmxpY2F0aW9uCisgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFsPiBpcyByZXBsaWNhdGVkLgogPHBy b2dyYW1saXN0aW5nPgogLyogc3ViICMgKi8gU0VMRUNUICogRlJPTSB0MSBPUkRFUiBCWSBpZDsK ICBpZCB8ICBiICB8ICBhICB8ICBkCkBAIC0xNTU4LDYgKzE2MDQsMTMgQEAgUHVibGljYXRpb25z OgogICAyIHwgYi0yIHwgYS0yIHwgZC0yCiAgIDMgfCBiLTMgfCBhLTMgfCBkLTMKICgzIHJvd3Mp CisvKiBzdWIgIyAqLyBTRUxFQ1QgKiBGUk9NIHQyIE9SREVSIEJZIGlkOworIGlkIHwgIGIgIHwg IGMgIHwgIGUKKy0tLS0rLS0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8IGItMSB8IGMtMSB8IGUtMQor ICAyIHwgYi0yIHwgYy0yIHwgZS0yCisgIDMgfCBiLTMgfCBjLTMgfCBlLTMKKygzIHJvd3MpCiA8 L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8L3NlY3QyPgpAQCAtMTY1NCw2ICsxNzA3LDE3 IEBAIFB1YmxpY2F0aW9uczoKICAgIDwvaXRlbWl6ZWRsaXN0PgogICA8L3BhcmE+CiAKKyAgPHBh cmE+CisgICBHZW5lcmF0ZWQgY29sdW1ucyBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbiBsaXN0IHdp dGggdGhlCisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgbm90IHB1Ymxp c2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUKKyAgIG9mIHRoZSA8bGluayBsaW5rZW5kPSJz cWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1u cyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGlu az4gcGFyYW1ldGVyLiBIb3dldmVyLAorICAgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90 IHBhcnQgb2YgdGhlIGNvbHVtbiBsaXN0IHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENFUFQ8L2xp dGVyYWw+IGNsYXVzZSBhcmUgcHVibGlzaGVkIGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YgdGhl CisgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVi bGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9j b2x1bW5zPC9saXRlcmFsPjwvbGluaz4gcGFyYW1ldGVyLgorICA8L3BhcmE+CisKICAgPHBhcmE+ CiAgICBUaGUgZm9sbG93aW5nIHRhYmxlIHN1bW1hcml6ZXMgYmVoYXZpb3Igd2hlbiB0aGVyZSBh cmUgZ2VuZXJhdGVkIGNvbHVtbnMKICAgIGludm9sdmVkIGluIHRoZSBsb2dpY2FsIHJlcGxpY2F0 aW9uLiBSZXN1bHRzIGFyZSBzaG93biBmb3Igd2hlbgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sCmluZGV4IDM4YjQ2NTczNzhhLi5mNzllZjc4OWQ5MyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMzIsNyArMzIsNyBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFJFU0VUCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1 YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAotICAg IFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4u IF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFi bGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBFWENFUFQgXSAoIGNvbHVtbl9uYW1lIFss IC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJl c3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4g fCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3Bo cmFzZT4KQEAgLTI2MCw2ICsyNjAsMTQgQEAgQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9w dWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBFWENFUFQgdXNlcnMsIGRlcGFydG1lbnQKICAgIDxz dHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1s aXN0aW5nPgogQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFC TEUgdXNlcnMsIGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3By b2dyYW1saXN0aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIEFsdGVyIHB1YmxpY2F0aW9uIDxz dHJ1Y3RuYW1lPm15cHVibGljYXRpb248L3N0cnVjdG5hbWU+IHRvIGFkZCB0YWJsZQorICAgPHN0 cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGV4Y2VwdCBjb2x1bW4KKyAgIDxzdHJ1Y3RuYW1l PnNlY3VyaXR5X3Bpbjwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJM SUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycyBFWENFUFQgKHNl Y3VyaXR5X3Bpbik7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IGJkZGZmOWNhMGNjLi4wNjkx YjEwMjg0MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0y OCw3ICsyOCw3IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBv Zjo8L3BocmFzZT4KIAotICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBb IFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBFWENFUFQg XSAoIGNvbHVtbl9uYW1lIFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBU QUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9u YW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCiAKIDxwaHJhc2U+ d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3Jl cGxhY2VhYmxlPiBpczo8L3BocmFzZT4KQEAgLTkyLDE3ICs5MiwyNCBAQCBDUkVBVEUgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgog ICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBXaGVuIGEgY29sdW1uIGxpc3QgaXMg c3BlY2lmaWVkLCBvbmx5IHRoZSBuYW1lZCBjb2x1bW5zIGFyZSByZXBsaWNhdGVkLgotICAgICAg VGhlIGNvbHVtbiBsaXN0IGNhbiBjb250YWluIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBhcyB3 ZWxsLiBJZiB0aGUKLSAgICAgIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQsIHRoZSBwdWJsaWNhdGlv biB3aWxsIHJlcGxpY2F0ZSBhbGwgbm9uLWdlbmVyYXRlZAotICAgICAgY29sdW1ucyAoaW5jbHVk aW5nIGFueSBhZGRlZCBpbiB0aGUgZnV0dXJlKSBieSBkZWZhdWx0LiBTdG9yZWQgZ2VuZXJhdGVk Ci0gICAgICBjb2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYgPGxpdGVyYWw+cHVibGlz aF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD4KLSAgICAgIGlzIHNldCB0byA8bGl0ZXJhbD5z dG9yZWQ8L2xpdGVyYWw+LiBTcGVjaWZ5aW5nIGEgY29sdW1uIGxpc3QgaGFzIG5vCi0gICAgICBl ZmZlY3Qgb24gPGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1hbmRzLiBTZWUKKyAgICAg IFdoZW4gYSBjb2x1bW4gbGlzdCB3aXRob3V0IDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gaXMg c3BlY2lmaWVkLCBvbmx5CisgICAgICB0aGUgbmFtZWQgY29sdW1ucyBhcmUgcmVwbGljYXRlZC4g VGhlIGNvbHVtbiBsaXN0IGNhbiBjb250YWluIHN0b3JlZAorICAgICAgZ2VuZXJhdGVkIGNvbHVt bnMgYXMgd2VsbC4gSWYgdGhlIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQsIHRoZSBwdWJsaWNhdGlv bgorICAgICAgd2lsbCByZXBsaWNhdGUgYWxsIG5vbi1nZW5lcmF0ZWQgY29sdW1ucyAoaW5jbHVk aW5nIGFueSBhZGRlZCBpbiB0aGUKKyAgICAgIGZ1dHVyZSkgYnkgZGVmYXVsdC4gU3RvcmVkIGdl bmVyYXRlZCBjb2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYKKyAgICAgIDxsaXRlcmFs PnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IGlzIHNldCB0bworICAgICAgPGxp dGVyYWw+c3RvcmVkPC9saXRlcmFsPi4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBl ZmZlY3Qgb24KKyAgICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4gU2Vl CiAgICAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbC1saXN0cyIvPiBm b3IgZGV0YWlscyBhYm91dCBjb2x1bW4KICAgICAgIGxpc3RzLgogICAgICA8L3BhcmE+CiAKKyAg ICAgPHBhcmE+CisgICAgICBXaGVuIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIHdpdGggPGxp dGVyYWw+RVhDRVBUPC9saXRlcmFsPiwgdGhlIG5hbWVkCisgICAgICBjb2x1bW5zIGFyZSBub3Qg cmVwbGljYXRlZC4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBlZmZlY3Qgb24KKyAg ICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4KKyAgICAgPC9wYXJhPgor CiAgICAgIDxwYXJhPgogICAgICAgT25seSBwZXJzaXN0ZW50IGJhc2UgdGFibGVzIGFuZCBwYXJ0 aXRpb25lZCB0YWJsZXMgY2FuIGJlIHBhcnQgb2YgYQogICAgICAgcHVibGljYXRpb24uICBUZW1w b3JhcnkgdGFibGVzLCB1bmxvZ2dlZCB0YWJsZXMsIGZvcmVpZ24gdGFibGVzLApAQCAtMzQ3LDEw ICszNTQsMTIgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgQW55IGNv bHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0aGUgPGxpdGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0 ZXJhbD4gY29sdW1ucwotICAgaW4gb3JkZXIgZm9yIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4g b3IgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPgotICAgb3BlcmF0aW9ucyB0byBiZSBwdWJsaXNo ZWQuIFRoZXJlIGFyZSBubyBjb2x1bW4gbGlzdCByZXN0cmljdGlvbnMgaWYgdGhlCi0gICBwdWJs aWNhdGlvbiBwdWJsaXNoZXMgb25seSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+IG9wZXJhdGlv bnMuCisgICBJbiBvcmRlciBmb3IgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBvciA8Y29tbWFu ZD5ERUxFVEU8L2NvbW1hbmQ+CisgICBvcGVyYXRpb25zIHRvIHdvcmssIGFsbCB0aGUgPGxpdGVy YWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucyBtdXN0CisgICBiZSBwdWJsaXNo ZWQuIFNvLCBhbnkgY29sdW1uIGxpc3QgbXVzdCBuYW1lIGFsbAorICAgPGxpdGVyYWw+UkVQTElD QSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucywgYW5kIGFueQorICAgPGxpdGVyYWw+RVhDRVBU PC9saXRlcmFsPiBjb2x1bW4gbGlzdCBtdXN0IG5vdCBuYW1lIGFueQorICAgPGxpdGVyYWw+UkVQ TElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpA QCAtMzczLDYgKzM4MiwxNiBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgdG8gYmUgcHVibGlzaGVkLgogICA8 L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgcGFy dCBvZiB0aGUgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENF UFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgbm90IHB1Ymxpc2hlZCwgcmVnYXJkbGVzcyBvZiB0aGUK KyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IG9wdGlvbi4g SG93ZXZlciwgZ2VuZXJhdGVkCisgICBjb2x1bW5zIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBj b2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJh bD4gY2xhdXNlIGFyZSBwdWJsaXNoZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUKKyAg IDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IG9wdGlvbi4gU2Vl CisgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWdlbmNvbHMiLz4gZm9yIGRl dGFpbHMuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSByb3cgZmlsdGVyIG9uIGEgdGFi bGUgYmVjb21lcyByZWR1bmRhbnQgaWYKICAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1B PC9saXRlcmFsPiBpcyBzcGVjaWZpZWQgYW5kIHRoZSB0YWJsZQpAQCAtNDk0LDYgKzUxMywxNSBA QCBDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBFWENFUFQg dXNlcnMsIGRlcGFydG1lbnRzOwogPHByb2dyYW1saXN0aW5nPgogQ1JFQVRFIFBVQkxJQ0FUSU9O IHVzZXJzX2ZpbHRlcmVkIEZPUiBUQUJMRSB1c2VycyAodXNlcl9pZCwgZmlyc3RuYW1lKTsKIDwv cHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRp b24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlCisgICA8c3RydWN0bmFtZT51 c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNoYW5nZXMgZm9yIGNvbHVtbgorICAgPHN0cnVjdG5h bWU+c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQ VUJMSUNBVElPTiB1c2Vyc19zYWZlIEZPUiBUQUJMRSB1c2VycyBFWENFUFQgKHNlY3VyaXR5X3Bp bik7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZz ZWN0MT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCA5NTcxY2MyNjkzMS4u ODM1Njk0YjU5MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRp b24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTI2Mywx NCArMjYzLDE5IEBAIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHViaWQpCiAgKiBJZiBhIGNv bHVtbiBsaXN0IGlzIGZvdW5kLCB0aGUgY29ycmVzcG9uZGluZyBiaXRtYXAgaXMgcmV0dXJuZWQg dGhyb3VnaCB0aGUKICAqIGNvbHMgcGFyYW1ldGVyLCBpZiBwcm92aWRlZC4gVGhlIGJpdG1hcCBp cyBjb25zdHJ1Y3RlZCB3aXRoaW4gdGhlIGdpdmVuCiAgKiBtZW1vcnkgY29udGV4dCAobWN4dCku CisgKgorICogSWYgYSBjb2x1bW4gbGlzdCBpcyBmb3VuZCBzcGVjaWZpZWQgd2l0aCBFWENFUFQg Y2xhdXNlLCBleGNlcHRfY29sdW1ucyBpcyBzZXQKKyAqIHRvIHRydWUuCiAgKi8KIGJvb2wKIGNo ZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQsIE1l bW9yeUNvbnRleHQgbWN4dCwKLQkJCQkJCQlCaXRtYXBzZXQgKipjb2xzKQorCQkJCQkJCUJpdG1h cHNldCAqKmNvbHMsIGJvb2wgKmV4Y2VwdF9jb2x1bW5zKQogewogCUhlYXBUdXBsZQljZnR1cGxl OwogCWJvb2wJCWZvdW5kID0gZmFsc2U7CiAKKwkqZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKKwog CWlmIChwdWItPmFsbHRhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC0yOTYsNiArMzAxLDE2 IEBAIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVs aWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKIAkJCWZvdW5kID0gdHJ1ZTsKIAkJfQogCisJCS8qIExv b2t1cCB0aGUgZXhjZXB0IGF0dHJpYnV0ZSAqLworCQljZmRhdHVtID0gU3lzQ2FjaGVHZXRBdHRy KFBVQkxJQ0FUSU9OUkVMTUFQLCBjZnR1cGxlLAorCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRp b25fcmVsX3ByZXhjZXB0LCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJQXNz ZXJ0KCFwdWItPmFsbHRhYmxlcyk7CisJCQkqZXhjZXB0X2NvbHVtbnMgPSBEYXR1bUdldEJvb2wo Y2ZkYXR1bSk7CisJCX0KKwogCQlSZWxlYXNlU3lzQ2FjaGUoY2Z0dXBsZSk7CiAJfQogCkBAIC02 NTcsMTAgKzY3MiwxMiBAQCBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoQml0bWFwc2V0ICpjb2x1 bW5zLCBEYXR1bSBwdWJjb2xzLCBNZW1vcnlDb250ZXh0IG1jeHQpCiAgKiBSZXR1cm5zIGEgYml0 bWFwIHJlcHJlc2VudGluZyB0aGUgY29sdW1ucyBvZiB0aGUgc3BlY2lmaWVkIHRhYmxlLgogICoK ICAqIEdlbmVyYXRlZCBjb2x1bW5zIGFyZSBpbmNsdWRlZCBpZiBpbmNsdWRlX2dlbmNvbHNfdHlw ZSBpcwotICogUFVCTElTSF9HRU5DT0xTX1NUT1JFRC4KKyAqIFBVQkxJU0hfR0VOQ09MU19TVE9S RUQuIENvbHVtbnMgdGhhdCBhcmUgaW4gdGhlIGV4Y2VwdF9jb2xzIGFyZSBleGNsdWRlZCBmcm9t CisgKiB0aGUgY29sdW1uIGxpc3QuCiAgKi8KIEJpdG1hcHNldCAqCi1wdWJfZm9ybV9jb2xzX21h cChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190 eXBlKQorcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5jb2xz VHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkgIEJpdG1hcHNldCAqZXhjZXB0X2NvbHMp CiB7CiAJQml0bWFwc2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlUdXBsZURlc2MJZGVzYyA9IFJlbGF0 aW9uR2V0RGVzY3IocmVsYXRpb24pOwpAQCAtNjgzLDYgKzcwMCw5IEBAIHB1Yl9mb3JtX2NvbHNf bWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xz X3R5cGUpCiAJCQkJY29udGludWU7CiAJCX0KIAorCQlpZiAoZXhjZXB0X2NvbHMgJiYgYm1zX2lz X21lbWJlcihhdHQtPmF0dG51bSwgZXhjZXB0X2NvbHMpKQorCQkJY29udGludWU7CisKIAkJcmVz dWx0ID0gYm1zX2FkZF9tZW1iZXIocmVzdWx0LCBhdHQtPmF0dG51bSk7CiAJfQogCkBAIC03ODcs OCArODA3LDEwIEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNl cHRfZmxhZykKIAl7CiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVyc1tpXS0+ dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RS VUNUKHR1cCkpLT5wcnB1YmlkOworCQlib29sCQlpc19leGNlcHRfdGFibGUgPSAoKEZvcm1fcGdf cHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0ICYmCisJCQloZWFwX2F0 dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsIE5VTEwpOwogCi0J CWlmIChleGNlcHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1Qo dHVwKSktPnByZXhjZXB0KQorCQlpZiAoZXhjZXB0X2ZsYWcgPT0gaXNfZXhjZXB0X3RhYmxlKQog CQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJfQogCkBAIC04MjgsMTAg Kzg1MCwxMiBAQCBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9u UGFydE9wdCBwdWJfcGFydG9wdCwKIAl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXAgPSBzeXN0 YWJsZV9nZXRuZXh0KHNjYW4pKSkKIAl7CiAJCUZvcm1fcGdfcHVibGljYXRpb25fcmVsIHB1YnJl bDsKKwkJYm9vbAkJaGFzX2NvbGxpc3QgPSBmYWxzZTsKIAogCQlwdWJyZWwgPSAoRm9ybV9wZ19w dWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApOworCQloYXNfY29sbGlzdCA9ICFoZWFwX2F0 dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsIE5VTEwpOwogCi0J CWlmIChleGNlcHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQorCQlpZiAoZXhjZXB0X2ZsYWcg PT0gKHB1YnJlbC0+cHJleGNlcHQgJiYgIWhhc19jb2xsaXN0KSkKIAkJCXJlc3VsdCA9IEdldFB1 YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJ CQkJCXB1YnJlbC0+cHJyZWxpZCk7CiAKQEAgLTEyODIsNiArMTMwNiw3IEBAIHBnX2dldF9wdWJs aWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJT2lkCQkJc2NoZW1haWQgPSBnZXRf cmVsX25hbWVzcGFjZShyZWxpZCk7CiAJCURhdHVtCQl2YWx1ZXNbTlVNX1BVQkxJQ0FUSU9OX1RB QkxFU19FTEVNXSA9IHswfTsKIAkJYm9vbAkJbnVsbHNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19F TEVNXSA9IHswfTsKKwkJQml0bWFwc2V0ICAqZXhjZXB0X2NvbHVtbnMgPSBOVUxMOwogCiAJCS8q CiAJCSAqIEZvcm0gdHVwbGUgd2l0aCBhcHByb3ByaWF0ZSBkYXRhLgpAQCAtMTMwNiw3ICsxMzMx LDYgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJCWlm IChIZWFwVHVwbGVJc1ZhbGlkKHB1YnR1cGxlKSkKIAkJewotCQkJLyogTG9va3VwIHRoZSBjb2x1 bW4gbGlzdCBhdHRyaWJ1dGUuICovCiAJCQl2YWx1ZXNbMl0gPSBTeXNDYWNoZUdldEF0dHIoUFVC TElDQVRJT05SRUxNQVAsIHB1YnR1cGxlLAogCQkJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25f cmVsX3ByYXR0cnMsCiAJCQkJCQkJCQkJJihudWxsc1syXSkpOwpAQCAtMTMxNSw2ICsxMzM5LDI1 IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCXZhbHVl c1szXSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCiAJCQkJ CQkJCQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJxdWFsLAogCQkJCQkJCQkJCSYobnVsbHNb M10pKTsKKworCQkJaWYgKCFudWxsc1syXSkKKwkJCXsKKwkJCQlEYXR1bQkJZXhjZXB0RGF0dW07 CisJCQkJYm9vbAkJaXNudWxsOworCisJCQkJLyoKKwkJCQkgKiBXZSBmZXRjaCBwdWJ0dXBsZSBp ZiBwdWJsaWNhdGlvbiBpcyBub3QgRk9SIEFMTCBUQUJMRVMgYW5kCisJCQkJICogbm90IEZPUiBU QUJMRVMgSU4gU0NIRU1BLiBTbyBpZiBwcmV4Y2VwdCBpcyB0cnVlLCBpdAorCQkJCSAqIGluZGlj YXRlcyB0aGF0IHByYXR0cnMgY29udGFpbnMgY29sdW1ucyB0byBiZSBleGNsdWRlZCBmb3IKKwkJ CQkgKiByZXBsaWNhdGlvbi4KKwkJCQkgKi8KKwkJCQlleGNlcHREYXR1bSA9IFN5c0NhY2hlR2V0 QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCisJCQkJCQkJCQkJCSAgQW51bV9wZ19w dWJsaWNhdGlvbl9yZWxfcHJleGNlcHQsCisJCQkJCQkJCQkJCSAgJmlzbnVsbCk7CisKKwkJCQlp ZiAoIWlzbnVsbCAmJiBEYXR1bUdldEJvb2woZXhjZXB0RGF0dW0pKQorCQkJCQlleGNlcHRfY29s dW1ucyA9IHB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCB2YWx1ZXNbMl0sIE5VTEwpOwor CQkJfQogCQl9CiAJCWVsc2UKIAkJewpAQCAtMTMyMiw4ICsxMzY1LDEyIEBAIHBnX2dldF9wdWJs aWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCW51bGxzWzNdID0gdHJ1ZTsKIAkJ fQogCi0JCS8qIFNob3cgYWxsIGNvbHVtbnMgd2hlbiB0aGUgY29sdW1uIGxpc3QgaXMgbm90IHNw ZWNpZmllZC4gKi8KLQkJaWYgKG51bGxzWzJdKQorCQkvKgorCQkgKiBDb25zdHJ1Y3QgY29sdW1u IGxpc3QgdG8gc2hvdyBhbGwgY29sdW1ucyB3aGVuIG5vIGNvbHVtbiBsaXN0IGlzCisJCSAqIHNw ZWNpZmllZCBvciB0byBzaG93IHJlbWFpbmluZyBjb2x1bW5zIHdoZW4gYSBjb2x1bW4gbGlzdCBp cworCQkgKiBwcm92aWRlZCB3aXRoIEVYQ0VQVC4KKwkJICovCisJCWlmIChleGNlcHRfY29sdW1u cyB8fCBudWxsc1syXSkKIAkJewogCQkJUmVsYXRpb24JcmVsID0gdGFibGVfb3BlbihyZWxpZCwg QWNjZXNzU2hhcmVMb2NrKTsKIAkJCWludAkJCW5hdHRudW1zID0gMDsKQEAgLTEzNTQsNiArMTQw MSwxMyBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJ CQljb250aW51ZTsKIAkJCQl9CiAKKwkJCQkvKgorCQkJCSAqIFNraXAgY29sdW1ucyB0aGF0IGFy ZSBwYXJ0IG9mIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoCisJCQkJICogRVhDRVBULgorCQkJ CSAqLworCQkJCWlmIChleGNlcHRfY29sdW1ucyAmJiBibXNfaXNfbWVtYmVyKGF0dC0+YXR0bnVt LCBleGNlcHRfY29sdW1ucykpCisJCQkJCWNvbnRpbnVlOworCiAJCQkJYXR0bnVtc1tuYXR0bnVt cysrXSA9IGF0dC0+YXR0bnVtOwogCQkJfQogCkBAIC0xMzYyLDYgKzE0MTYsMTEgQEAgcGdfZ2V0 X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCXZhbHVlc1syXSA9IFBv aW50ZXJHZXREYXR1bShidWlsZGludDJ2ZWN0b3IoYXR0bnVtcywgbmF0dG51bXMpKTsKIAkJCQlu dWxsc1syXSA9IGZhbHNlOwogCQkJfQorCQkJZWxzZQorCQkJeworCQkJCXZhbHVlc1syXSA9IChE YXR1bSkgMDsKKwkJCQludWxsc1syXSA9IHRydWU7CisJCQl9CiAKIAkJCXRhYmxlX2Nsb3NlKHJl bCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuYwppbmRleCBiNmQ1NDZiZTI5MS4uMGZkODNkMDcyNzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5jCkBAIC0yMDQsNyArMjA0LDYgQEAgT2JqZWN0c0luUHVibGljYXRp b25Ub09pZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCXN3 aXRjaCAocHVib2JqLT5wdWJvYmp0eXBlKQogCQl7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RB QkxFOgotCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNlOwogCQkJCSpyZWxzID0g bGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBV QkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRToKQEAgLTM1OCw3ICszNTcsOCBAQCBwdWJfcmZfY29u dGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAq YW5jZXN0b3JzLAogICogVGhpcyBmdW5jdGlvbiBldmFsdWF0ZXMgdHdvIGNvbmRpdGlvbnM6CiAg KgogICogMS4gRW5zdXJlcyB0aGF0IGFsbCBjb2x1bW5zIHJlZmVyZW5jZWQgaW4gdGhlIFJFUExJ Q0EgSURFTlRJVFkgYXJlIGNvdmVyZWQKLSAqICAgIGJ5IHRoZSBjb2x1bW4gbGlzdC4gSWYgYW55 IGNvbHVtbiBpcyBtaXNzaW5nLCAqaW52YWxpZF9jb2x1bW5fbGlzdCBpcyBzZXQKKyAqICAgIGJ5 IHRoZSBjb2x1bW4gbGlzdCBhbmQgYXJlIG5vdCBwYXJ0IG9mIGNvbHVtbiBsaXN0IHNwZWNpZmll ZCB3aXRoIEVYQ0VQVC4KKyAqIAkgIElmIGFueSBjb2x1bW4gaXMgbWlzc2luZywgKmludmFsaWRf Y29sdW1uX2xpc3QgaXMgc2V0CiAgKiAgICB0byB0cnVlLgogICogMi4gRW5zdXJlcyB0aGF0IGFs bCB0aGUgZ2VuZXJhdGVkIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJREVOVElU WQogICogICAgYXJlIHB1Ymxpc2hlZCwgZWl0aGVyIGJ5IGJlaW5nIGV4cGxpY2l0bHkgbmFtZWQg aW4gdGhlIGNvbHVtbiBsaXN0IG9yLCBpZgpAQCAtMzgxLDYgKzM4MSw3IEBAIHB1Yl9jb250YWlu c19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNl c3RvcnMsCiAJVHVwbGVEZXNjCWRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKTsKIAlQ dWJsaWNhdGlvbiAqcHViOwogCWludAkJCXg7CisJYm9vbAkJZXhjZXB0X2NvbHVtbnMgPSBmYWxz ZTsKIAogCSppbnZhbGlkX2NvbHVtbl9saXN0ID0gZmFsc2U7CiAJKmludmFsaWRfZ2VuX2NvbCA9 IGZhbHNlOwpAQCAtNDA0LDcgKzQwNSw4IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihP aWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAKIAkvKiBGZXRj aCB0aGUgY29sdW1uIGxpc3QgKi8KIAlwdWIgPSBHZXRQdWJsaWNhdGlvbihwdWJpZCk7Ci0JY2hl Y2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwgcHVibGlzaF9hc19yZWxpZCwgTlVMTCwgJmNv bHVtbnMpOworCWNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIHB1Ymxpc2hfYXNfcmVs aWQsIE5VTEwsICZjb2x1bW5zLAorCQkJCQkJCQkmZXhjZXB0X2NvbHVtbnMpOwogCiAJaWYgKHJl bGF0aW9uLT5yZF9yZWwtPnJlbHJlcGxpZGVudCA9PSBSRVBMSUNBX0lERU5USVRZX0ZVTEwpCiAJ ewpAQCAtNDk0LDggKzQ5NiwxNCBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1 YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCQkJYXR0bnVtID0gZ2V0 X2F0dG51bShwdWJsaXNoX2FzX3JlbGlkLCBjb2xuYW1lKTsKIAkJfQogCi0JCS8qIHJlcGxpY2Eg aWRlbnRpdHkgY29sdW1uLCBub3QgY292ZXJlZCBieSB0aGUgY29sdW1uIGxpc3QgKi8KLQkJKmlu dmFsaWRfY29sdW1uX2xpc3QgfD0gIWJtc19pc19tZW1iZXIoYXR0bnVtLCBjb2x1bW5zKTsKKwkJ LyoKKwkJICogUmVwbGljYSBpZGVudGl0eSBjb2x1bW4sIG5vdCBjb3ZlcmVkIGJ5IHRoZSBjb2x1 bW4gbGlzdCBvciBpcyBwYXJ0CisJCSAqIG9mIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoIEVY Q0VQVC4KKwkJICovCisJCWlmIChleGNlcHRfY29sdW1ucykKKwkJCSppbnZhbGlkX2NvbHVtbl9s aXN0IHw9IGJtc19pc19tZW1iZXIoYXR0bnVtLCBjb2x1bW5zKTsKKwkJZWxzZQorCQkJKmludmFs aWRfY29sdW1uX2xpc3QgfD0gIWJtc19pc19tZW1iZXIoYXR0bnVtLCBjb2x1bW5zKTsKIAogCQlp ZiAoKmludmFsaWRfY29sdW1uX2xpc3QgJiYgKmludmFsaWRfZ2VuX2NvbCkKIAkJCWJyZWFrOwpA QCAtMTQ1Miw2ICsxNDYwLDcgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCUhlYXBUdXBsZQlyZnR1cGxlOwogCQkJ Tm9kZQkgICAqb2xkcmVsd2hlcmVjbGF1c2UgPSBOVUxMOwogCQkJQml0bWFwc2V0ICAqb2xkY29s dW1ucyA9IE5VTEw7CisJCQlib29sCQlvbGRleGNlcHQgPSBmYWxzZTsKIAogCQkJLyogbG9vayB1 cCB0aGUgY2FjaGUgZm9yIHRoZSBvbGQgcmVsbWFwICovCiAJCQlyZnR1cGxlID0gU2VhcmNoU3lz Q2FjaGUyKFBVQkxJQ0FUSU9OUkVMTUFQLApAQCAtMTQ2Nyw2ICsxNDc2LDcgQEAgQWx0ZXJQdWJs aWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwK IAkJCQlib29sCQlpc251bGwgPSB0cnVlOwogCQkJCURhdHVtCQl3aGVyZUNsYXVzZURhdHVtOwog CQkJCURhdHVtCQljb2x1bW5MaXN0RGF0dW07CisJCQkJRGF0dW0JCWV4Y2VwdERhdHVtOwogCiAJ CQkJLyogTG9hZCB0aGUgV0hFUkUgY2xhdXNlIGZvciB0aGlzIHRhYmxlLiAqLwogCQkJCXdoZXJl Q2xhdXNlRGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJmdHVwbGUs CkBAIC0xNDgzLDYgKzE0OTMsMTMgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1Ymxp Y2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQlpZiAoIWlzbnVsbCkKIAkJCQkJ b2xkY29sdW1ucyA9IHB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCBjb2x1bW5MaXN0RGF0 dW0sIE5VTEwpOwogCisJCQkJZXhjZXB0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJ T05SRUxNQVAsIHJmdHVwbGUsCisJCQkJCQkJCQkJCSAgQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxf cHJleGNlcHQsCisJCQkJCQkJCQkJCSAgJmlzbnVsbCk7CisKKwkJCQlpZiAoIWlzbnVsbCkKKwkJ CQkJb2xkZXhjZXB0ID0gRGF0dW1HZXRCb29sKGV4Y2VwdERhdHVtKTsKKwogCQkJCVJlbGVhc2VT eXNDYWNoZShyZnR1cGxlKTsKIAkJCX0KIApAQCAtMTUxNCw3ICsxNTMxLDggQEAgQWx0ZXJQdWJs aWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwK IAkJCQlpZiAobmV3cmVsaWQgPT0gb2xkcmVsaWQpCiAJCQkJewogCQkJCQlpZiAoZXF1YWwob2xk cmVsd2hlcmVjbGF1c2UsIG5ld3B1YnJlbC0+d2hlcmVDbGF1c2UpICYmCi0JCQkJCQlibXNfZXF1 YWwob2xkY29sdW1ucywgbmV3Y29sdW1ucykpCisJCQkJCQlibXNfZXF1YWwob2xkY29sdW1ucywg bmV3Y29sdW1ucykgJiYKKwkJCQkJCW9sZGV4Y2VwdCA9PSBuZXdwdWJyZWwtPmV4Y2VwdCkKIAkJ CQkJewogCQkJCQkJZm91bmQgPSB0cnVlOwogCQkJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA0 OWJhYzAzNGQxNy4uOTI3MTI5ZWViMTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTI3LDcgKzUyNyw3IEBA IHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0b3JfZGVm X2FyZwogJXR5cGUgPGxpc3Q+CW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9saXN0CiAldHlwZSA8bGlz dD4Jcm93c2Zyb21faXRlbSByb3dzZnJvbV9saXN0IG9wdF9jb2xfZGVmX2xpc3QKLSV0eXBlIDxi b29sZWFuPiBvcHRfb3JkaW5hbGl0eSBvcHRfd2l0aG91dF9vdmVybGFwcworJXR5cGUgPGJvb2xl YW4+IG9wdF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzIG9wdF9leGNlcHQKICV0eXBl IDxsaXN0PglFeGNsdXNpb25Db25zdHJhaW50TGlzdCBFeGNsdXNpb25Db25zdHJhaW50RWxlbQog JXR5cGUgPGxpc3Q+CWZ1bmNfYXJnX2xpc3QgZnVuY19hcmdfbGlzdF9vcHQKICV0eXBlIDxub2Rl PglmdW5jX2FyZ19leHByCkBAIC00NDUwLDYgKzQ0NTAsMTEgQEAgb3B0X3dpdGhvdXRfb3Zlcmxh cHM6CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJOwogCitvcHRfZXhj ZXB0OgorCQkJRVhDRVBUCQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLypFTVBUWSovCQkJ CQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCiBvcHRfY29sdW1uX2xpc3Q6CiAJCQknKCcgY29s dW1uTGlzdCAnKScJCQkJCQl7ICQkID0gJDI7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQk ID0gTklMOyB9CkBAIC0xMDc1OSwxNCArMTA3NjQsMTUgQEAgQ3JlYXRlUHVibGljYXRpb25TdG10 OgogICogcmVsYXRpb25fZXhwciBoZXJlLgogICovCiBQdWJsaWNhdGlvbk9ialNwZWM6Ci0JCQlU QUJMRSByZWxhdGlvbl9leHByIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJVEFC TEUgcmVsYXRpb25fZXhwciBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVz ZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwogCQkJCQkk JC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFOwogCQkJCQkkJC0+cHVidGFibGUg PSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlv biA9ICQyOwotCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKLQkJCQkJJCQtPnB1YnRh YmxlLT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9ICQzOwor CQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVy ZUNsYXVzZSA9ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQl8IFRBQkxF UyBJTl9QIFNDSEVNQSBDb2xJZApAQCAtMTA3ODIsNyArMTA3ODgsNyBAQCBQdWJsaWNhdGlvbk9i alNwZWM6CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NV Ul9TQ0hFTUE7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEA0OwogCQkJCX0KLQkJCXwgQ29sSWQgb3B0 X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQl8IENvbElkIG9wdF9leGNlcHQgb3B0X2Nv bHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1Ymxp Y2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09O VElOVUFUSU9OOwpAQCAtMTA3OTAsNyArMTA3OTYsNyBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJ CQkJCSAqIElmIGVpdGhlciBhIHJvdyBmaWx0ZXIgb3IgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVk LCBjcmVhdGUKIAkJCQkJICogYSBQdWJsaWNhdGlvblRhYmxlIG9iamVjdC4KIAkJCQkJICovCi0J CQkJCWlmICgkMiB8fCAkMykKKwkJCQkJaWYgKCQyIHx8ICQzIHx8ICQ0KQogCQkJCQl7CiAJCQkJ CQkvKgogCQkJCQkJICogVGhlIE9wdFdoZXJlQ2xhdXNlIG11c3QgYmUgc3RvcmVkIGhlcmUgYnV0 IGl0IGlzCkBAIC0xMDgwMCw4ICsxMDgwNiw5IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJ CSAqLwogCQkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CiAJ CQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gbWFrZVJhbmdlVmFyKE5VTEwsICQxLCBAMSk7 Ci0JCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMjsKLQkJCQkJCSQkLT5wdWJ0YWJsZS0+ d2hlcmVDbGF1c2UgPSAkMzsKKwkJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gJDI7CisJCQkJ CQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKKwkJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVD bGF1c2UgPSAkNDsKIAkJCQkJfQogCQkJCQllbHNlCiAJCQkJCXsKQEAgLTEwODA5LDI1ICsxMDgx NiwyNyBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCX0KIAkJCQkJJCQtPmxvY2F0aW9uID0g QDE7CiAJCQkJfQotCQkJfCBDb2xJZCBpbmRpcmVjdGlvbiBvcHRfY29sdW1uX2xpc3QgT3B0V2hl cmVDbGF1c2UKKwkJCXwgQ29sSWQgaW5kaXJlY3Rpb24gb3B0X2V4Y2VwdCBvcHRfY29sdW1uX2xp c3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25P YmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJ T047CiAJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOwogCQkJ CQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gbWFrZVJhbmdlVmFyRnJvbVF1YWxpZmllZE5hbWUo JDEsICQyLCBAMSwgeXlzY2FubmVyKTsKLQkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7 Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxl LT5leGNlcHQgPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDQ7CisJCQkJCSQk LT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKIAkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CiAJ CQkJfQogCQkJLyogZ3JhbW1hciBsaWtlIHRhYmxlbmFtZSAqICwgT05MWSB0YWJsZW5hbWUsIE9O TFkgKCB0YWJsZW5hbWUgKSAqLwotCQkJfCBleHRlbmRlZF9yZWxhdGlvbl9leHByIG9wdF9jb2x1 bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQorCQkJfCBleHRlbmRlZF9yZWxhdGlvbl9leHByIG9wdF9l eGNlcHQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1h a2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElD QVRJT05PQkpfQ09OVElOVUFUSU9OOwogCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJs aWNhdGlvblRhYmxlKTsKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQxOwotCQkJCQkk JC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMjsKLQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVz ZSA9ICQzOworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9ICQyOworCQkJCQkkJC0+cHVidGFi bGUtPmNvbHVtbnMgPSAkMzsKKwkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0Owog CQkJCX0KIAkJCXwgQ1VSUkVOVF9TQ0hFTUEKIAkJCQl7CkBAIC0xOTY5NSw2ICsxOTcwNCwxMiBA QCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95eXNj YW5fdCB5eXNjYW5uZXIpCiAJCQkJCQllcnJtc2coImludmFsaWQgdGFibGUgbmFtZSIpLAogCQkJ CQkJcGFyc2VyX2VycnBvc2l0aW9uKHB1Ym9iai0+bG9jYXRpb24pKTsKIAorCQkJaWYgKHB1Ym9i ai0+cHVidGFibGUgJiYgcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ICYmCisJCQkJcHVib2JqLT5w dWJ0YWJsZS0+Y29sdW1ucyA9PSBOVUxMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCWVycm1zZygiRVhDRVBUIGNsYXVzZSBu b3QgYWxsb3dlZCBmb3IgdGFibGUgd2l0aG91dCBjb2x1bW4gbGlzdCIpKTsKKwogCQkJaWYgKHB1 Ym9iai0+bmFtZSkKIAkJCXsKIAkJCQkvKiBjb252ZXJ0IGl0IHRvIFB1YmxpY2F0aW9uVGFibGUg Ki8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5j LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCmluZGV4IGQz MzU2YmM4NGVlLi42OGZmNTU5ZTgwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC90YWJsZXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3RhYmxlc3luYy5jCkBAIC04MjEsMTAgKzgyMSwxOCBAQCBjb3B5X3JlYWRfZGF0YSh2b2lk ICpvdXRidWYsIGludCBtaW5yZWFkLCBpbnQgbWF4cmVhZCkKICAqIFRoaXMgZnVuY3Rpb24gYWxz byByZXR1cm5zIChhKSB0aGUgcmVsYXRpb24gcXVhbGlmaWNhdGlvbnMgdG8gYmUgdXNlZCBpbgog ICogdGhlIENPUFkgY29tbWFuZCwgYW5kIChiKSB3aGV0aGVyIHRoZSByZW1vdGUgcmVsYXRpb24g aGFzIHB1Ymxpc2hlZCBhbnkKICAqIGdlbmVyYXRlZCBjb2x1bW4uCisgKgorICogV2l0aCB0aGUg aW50cm9kdWN0aW9uIG9mIHRoZSBFWENFUFQgcXVhbGlmaWVyIGluIGNvbHVtbiBsaXN0cywgaXQg aXMgbm93CisgKiBwb3NzaWJsZSB0byBkZWZpbmUgYSBwdWJsaWNhdGlvbiB0aGF0IGV4Y2x1ZGVz IGFsbCBjb2x1bW5zIG9mIGEgdGFibGUuIFdoZW4KKyAqIHRoZSBjb2x1bW4gbGlzdCBpcyBmZXRj aGVkIGZyb20gdGhlIHJlbW90ZSBzZXJ2ZXIgYW5kIGlzIE5VTEwsIGl0IG5vcm1hbGx5CisgKiBp bmRpY2F0ZXMgdGhhdCBhbGwgY29sdW1ucyBhcmUgaW5jbHVkZWQuIFRvIGRpc3Rpbmd1aXNoIHRo aXMgZnJvbSB0aGUgY2FzZQorICogd2hlcmUgYWxsIGNvbHVtbnMgYXJlIGV4cGxpY2l0bHkgZXhj bHVkZWQsIHRoZSAnYWxsX2NvbHNfZXhjbHVkZWQnIGZsYWcgaGFzCisgKiBiZWVuIGludHJvZHVj ZWQuCiAgKi8KIHN0YXRpYyB2b2lkCiBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3Bu YW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCi0JCQkJCQlMaXN0 ICoqcXVhbCwgYm9vbCAqZ2VuY29sX3B1Ymxpc2hlZCkKKwkJCQkJCUxpc3QgKipxdWFsLCBib29s ICpnZW5jb2xfcHVibGlzaGVkLAorCQkJCQkJYm9vbCAqYWxsX2NvbHNfZXhjbHVkZWQpCiB7CiAJ V2FsUmN2RXhlY1Jlc3VsdCAqcmVzOwogCVN0cmluZ0luZm9EYXRhIGNtZDsKQEAgLTgzOCw2ICs4 NDYsOSBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxu YW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJQml0bWFwc2V0ICAqaW5jbHVkZWRfY29s cyA9IE5VTEw7CiAJaW50CQkJc2VydmVyX3ZlcnNpb24gPSB3YWxyY3Zfc2VydmVyX3ZlcnNpb24o TG9nUmVwV29ya2VyV2FsUmN2Q29ubik7CiAKKwlBc3NlcnQoKmdlbmNvbF9wdWJsaXNoZWQgPT0g ZmFsc2UpOworCUFzc2VydCgqYWxsX2NvbHNfZXhjbHVkZWQgPT0gZmFsc2UpOworCiAJbHJlbC0+ bnNwbmFtZSA9IG5zcG5hbWU7CiAJbHJlbC0+cmVsbmFtZSA9IHJlbG5hbWU7CiAKQEAgLTg4OCw3 ICs4OTksNyBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpy ZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJewogCQlXYWxSY3ZFeGVjUmVzdWx0 ICpwdWJyZXM7CiAJCVR1cGxlVGFibGVTbG90ICp0c2xvdDsKLQkJT2lkCQkJYXR0cnNSb3dbXSA9 IHtJTlQyVkVDVE9ST0lEfTsKKwkJT2lkCQkJYXR0cnNSb3dbXSA9IHtJTlQyVkVDVE9ST0lELCBC T09MT0lEfTsKIAogCQkvKiBCdWlsZCB0aGUgcHViX25hbWVzIGNvbW1hLXNlcGFyYXRlZCBzdHJp bmcuICovCiAJCXB1Yl9uYW1lcyA9IG1ha2VTdHJpbmdJbmZvKCk7CkBAIC05MDIsNyArOTEzLDE3 IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUs IExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwKIAkJYXBwZW5kU3RyaW5nSW5mbygmY21kLAogCQkJ CQkJICJTRUxFQ1QgRElTVElOQ1QiCiAJCQkJCQkgIiAgKENBU0UgV0hFTiAoYXJyYXlfbGVuZ3Ro KGdwdC5hdHRycywgMSkgPSBjLnJlbG5hdHRzKSIKLQkJCQkJCSAiICAgVEhFTiBOVUxMIEVMU0Ug Z3B0LmF0dHJzIEVORCkiCisJCQkJCQkgIiAgIFRIRU4gTlVMTCBFTFNFIGdwdC5hdHRycyBFTkQp Iik7CisKKwkJLyoKKwkJICogV2hlbiBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHdpdGggRVhDRVBU IChjb2x1bW4tbGlzdCkgYW5kIGFsbAorCQkgKiBjb2x1bW5zIGFyZSBzcGVjaWZpZWQsIGdwdC5h dHRycyB3aWxsIGJlIE5VTEwgYW5kIG5vIGNvbHVtbnMgYXJlCisJCSAqIHB1Ymxpc2hlZCBpbiB0 aGlzIGNhc2UuCisJCSAqLworCQlpZiAoc2VydmVyX3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJYXBw ZW5kU3RyaW5nSW5mbygmY21kLCAiLCBncHQuYXR0cnMgSVMgTlVMTCBBTkQgYy5yZWxuYXR0cyA+ IDAiKTsKKworCQlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsCiAJCQkJCQkgIiAgRlJPTSBwZ19wdWJs aWNhdGlvbiBwLCIKIAkJCQkJCSAiICBMQVRFUkFMIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMo cC5wdWJuYW1lKSBncHQsIgogCQkJCQkJICIgIHBnX2NsYXNzIGMiCkBAIC05MTIsNyArOTMzLDcg QEAgZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwg TG9naWNhbFJlcFJlbGF0aW9uICpscmVsLAogCQkJCQkJIHB1Yl9uYW1lcy0+ZGF0YSk7CiAKIAkJ cHVicmVzID0gd2FscmN2X2V4ZWMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwgY21kLmRhdGEsCi0J CQkJCQkJIGxlbmd0aG9mKGF0dHJzUm93KSwgYXR0cnNSb3cpOworCQkJCQkJCSBzZXJ2ZXJfdmVy c2lvbiA+PSAxOTAwMDAgPyAyIDogMSwgYXR0cnNSb3cpOwogCiAJCWlmIChwdWJyZXMtPnN0YXR1 cyAhPSBXQUxSQ1ZfT0tfVFVQTEVTKQogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTk1OSw2ICs5ODAs OSBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1l LCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJCQkJCWluY2x1ZGVkX2NvbHMgPSBibXNfYWRk X21lbWJlcihpbmNsdWRlZF9jb2xzLCBlbGVtc1tuYXR0XSk7CiAJCQl9CiAKKwkJCWlmIChzZXJ2 ZXJfdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJKmFsbF9jb2xzX2V4Y2x1ZGVkID0gRGF0dW1HZXRC b29sKHNsb3RfZ2V0YXR0cih0c2xvdCwgMiwgJmlzbnVsbCkpOworCiAJCQlFeGVjQ2xlYXJUdXBs ZSh0c2xvdCk7CiAJCX0KIAkJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdCh0c2xvdCk7CkBA IC0xMDIxLDcgKzEwNDUsOCBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1l LCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJCUFzc2VydCghaXNu dWxsKTsKIAogCQkvKiBJZiB0aGUgY29sdW1uIGlzIG5vdCBpbiB0aGUgY29sdW1uIGxpc3QsIHNr aXAgaXQuICovCi0JCWlmIChpbmNsdWRlZF9jb2xzICE9IE5VTEwgJiYgIWJtc19pc19tZW1iZXIo YXR0bnVtLCBpbmNsdWRlZF9jb2xzKSkKKwkJaWYgKCphbGxfY29sc19leGNsdWRlZCB8fAorCQkJ KGluY2x1ZGVkX2NvbHMgIT0gTlVMTCAmJiAhYm1zX2lzX21lbWJlcihhdHRudW0sIGluY2x1ZGVk X2NvbHMpKSkKIAkJewogCQkJRXhlY0NsZWFyVHVwbGUoc2xvdCk7CiAJCQljb250aW51ZTsKQEAg LTExNTMsMTEgKzExNzgsMTUgQEAgY29weV90YWJsZShSZWxhdGlvbiByZWwpCiAJUGFyc2VTdGF0 ZSAqcHN0YXRlOwogCUxpc3QJICAgKm9wdGlvbnMgPSBOSUw7CiAJYm9vbAkJZ2VuY29sX3B1Ymxp c2hlZCA9IGZhbHNlOworCWJvb2wJCWFsbF9jb2xzX2V4Y2x1ZGVkID0gZmFsc2U7CiAKIAkvKiBH ZXQgdGhlIHB1Ymxpc2hlciByZWxhdGlvbiBpbmZvLiAqLwogCWZldGNoX3JlbW90ZV90YWJsZV9p bmZvKGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShyZWwpKSwKIAkJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCAmbHJlbCwgJnF1YWwsCi0JCQkJCQkJJmdl bmNvbF9wdWJsaXNoZWQpOworCQkJCQkJCSZnZW5jb2xfcHVibGlzaGVkLCAmYWxsX2NvbHNfZXhj bHVkZWQpOworCisJaWYgKGFsbF9jb2xzX2V4Y2x1ZGVkKQorCQlyZXR1cm47CiAKIAkvKiBQdXQg dGhlIHJlbGF0aW9uIGludG8gcmVsbWFwLiAqLwogCWxvZ2ljYWxyZXBfcmVsbWFwX3VwZGF0ZSgm bHJlbCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRl eCBiOWQ2NzZkMWYxOC4uMWNmOTBmMTg3NWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v cGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMTg1LDYgKzE4NSwxNiBAQCB0eXBlZGVmIHN0cnVjdCBS ZWxhdGlvblN5bmNFbnRyeQogCSAqIHJvdyBmaWx0ZXIgZXhwcmVzc2lvbnMsIGNvbHVtbiBsaXN0 LCBldGMuCiAJICovCiAJTWVtb3J5Q29udGV4dCBlbnRyeV9jeHQ7CisKKwkvKgorCSAqIEluZGlj YXRlcyB3aGV0aGVyIG5vIGNvbHVtbnMgYXJlIHB1Ymxpc2hlZCBmb3IgYSBnaXZlbiByZWxhdGlv bi4gV2l0aAorCSAqIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIEVYQ0VQVCBxdWFsaWZpZXIgaW4g Y29sdW1uIGxpc3RzLCBpdCBpcyBub3cKKwkgKiBwb3NzaWJsZSB0byBkZWZpbmUgYSBwdWJsaWNh dGlvbiB0aGF0IGV4Y2x1ZGVzIGFsbCBjb2x1bW5zIG9mIGEgdGFibGUuCisJICogSG93ZXZlciwg dGhlICdjb2x1bW5zJyBhdHRyaWJ1dGUgY2Fubm90IHJlcHJlc2VudCB0aGlzIGNhc2UsIHNpbmNl IGEKKwkgKiBOVUxMIHZhbHVlIGltcGxpZXMgdGhhdCBhbGwgY29sdW1ucyBhcmUgcHVibGlzaGVk LiBUbyBkaXN0aW5ndWlzaCB0aGlzCisJICogc2NlbmFyaW8sIHRoZSAnYWxsX2NvbHNfZXhjbHVk ZWQnIGZsYWcgaXMgaW50cm9kdWNlZC4KKwkgKi8KKwlib29sCQlhbGxfY29sc19leGNsdWRlZDsK IH0gUmVsYXRpb25TeW5jRW50cnk7CiAKIC8qCkBAIC0xMDY4LDEyICsxMDc4LDIxIEBAIGNoZWNr X2FuZF9pbml0X2dlbmNvbChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywK IAkgKi8KIAlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbiwgcHViLCBwdWJsaWNhdGlvbnMpCiAJewor CQlib29sCQloYXNfY29sdW1uX2xpc3QgPSBmYWxzZTsKKwkJYm9vbAkJZXhjZXB0X2NvbHVtbnMg PSBmYWxzZTsKKworCQloYXNfY29sdW1uX2xpc3QgPSBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xp c3QocHViLAorCQkJCQkJCQkJCQkJCSAgZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQsCisJCQkJCQkJ CQkJCQkJICBOVUxMLCBOVUxMLAorCQkJCQkJCQkJCQkJCSAgJmV4Y2VwdF9jb2x1bW5zKTsKKwog CQkvKgogCQkgKiBUaGUgY29sdW1uIGxpc3QgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZQogCQkg KiAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgcGFyYW1ldGVyLiBUaG9zZSB3aWxsIGJlIGNo ZWNrZWQgbGF0ZXIsCi0JCSAqIHNlZSBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0LgorCQkgKiBz ZWUgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdC4gQnV0IHdoZW4gYSBjb2x1bW4gbGlzdCBpcyBz cGVjaWZpZWQKKwkJICogd2l0aCBFWENFUFQsIGl0IHNob3VsZCBiZSBjaGVja2VkLgogCQkgKi8K LQkJaWYgKGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIGVudHJ5LT5wdWJsaXNoX2Fz X3JlbGlkLCBOVUxMLCBOVUxMKSkKKwkJaWYgKGhhc19jb2x1bW5fbGlzdCAmJiAhZXhjZXB0X2Nv bHVtbnMpCiAJCQljb250aW51ZTsKIAogCQlpZiAoZmlyc3QpCkBAIC0xMTIyLDE5ICsxMTQxLDQx IEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpw dWJsaWNhdGlvbnMsCiAJewogCQlQdWJsaWNhdGlvbiAqcHViID0gbGZpcnN0KGxjKTsKIAkJQml0 bWFwc2V0ICAqY29scyA9IE5VTEw7CisJCWJvb2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisJ CWJvb2wJCWFsbF9jb2xzX2V4Y2x1ZGVkID0gZmFsc2U7CiAKIAkJLyogUmV0cmlldmUgdGhlIGJp dG1hcCBvZiBjb2x1bW5zIGZvciBhIGNvbHVtbiBsaXN0IHB1YmxpY2F0aW9uLiAqLwogCQlmb3Vu ZF9wdWJfY29sbGlzdCB8PSBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLAogCQkJCQkJ CQkJCQkJCQkgZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQsCi0JCQkJCQkJCQkJCQkJCSBlbnRyeS0+ ZW50cnlfY3h0LCAmY29scyk7CisJCQkJCQkJCQkJCQkJCSBlbnRyeS0+ZW50cnlfY3h0LCAmY29s cywKKwkJCQkJCQkJCQkJCQkJICZleGNlcHRfY29sdW1ucyk7CisKKwkJLyoKKwkJICogSWYgY29s dW1uIGxpc3QgaXMgc3BlY2lmaWVkIHdpdGggRVhDRVBUIHJldHJpZXZlIGJpdG1hcCBvZiBjb2x1 bW5zCisJCSAqIHdoaWNoIGFyZSBub3QgcGFydCBvZiB0aGlzIGNvbHVtbiBsaXN0LgorCQkgKi8K KwkJaWYgKGV4Y2VwdF9jb2x1bW5zKQorCQl7CisJCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1l bW9yeUNvbnRleHRTd2l0Y2hUbyhlbnRyeS0+ZW50cnlfY3h0KTsKKworCQkJY29scyA9IHB1Yl9m b3JtX2NvbHNfbWFwKHJlbGF0aW9uLAorCQkJCQkJCQkJIGVudHJ5LT5pbmNsdWRlX2dlbmNvbHNf dHlwZSwgY29scyk7CisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKworCQkJaWYg KCFjb2xzKQorCQkJCWFsbF9jb2xzX2V4Y2x1ZGVkID0gdHJ1ZTsKKwkJfQogCiAJCS8qCi0JCSAq IEZvciBub24tY29sdW1uIGxpc3QgcHVibGljYXRpb25zIOKAlCBlLmcuIFRBQkxFICh3aXRob3V0 IGEgY29sdW1uCi0JCSAqIGxpc3QpLCBBTEwgVEFCTEVTLCBvciBBTEwgVEFCTEVTIElOIFNDSEVN QSwgd2UgY29uc2lkZXIgYWxsIGNvbHVtbnMKLQkJICogb2YgdGhlIHRhYmxlIChpbmNsdWRpbmcg Z2VuZXJhdGVkIGNvbHVtbnMgd2hlbgorCQkgKiBJZiAnY29scycgaXMgbnVsbCwgaXQgaW5kaWNh dGVzIHRoYXQgdGhlIHB1YmxpY2F0aW9uIGlzIGVpdGhlciBhCisJCSAqIG5vbi1jb2x1bW4gbGlz dCBwdWJsaWNhdGlvbiBvciBvbmUgd2hlcmUgYWxsIGNvbHVtbnMgYXJlIGV4Y2x1ZGVkLgorCQkg KiBXaGVuICdhbGxfY29sc19leGNsdWRlZCcgaXMgdHJ1ZSwgaXQgZXhwbGljaXRseSBtZWFucyBh bGwgY29sdW1ucworCQkgKiBoYXZlIGJlZW4gZXhjbHVkZWQuIEZvciBub24tY29sdW1uIGxpc3Qg cHVibGljYXRpb25zIOKAlCBlLmcuIFRBQkxFCisJCSAqICh3aXRob3V0IGEgY29sdW1uIGxpc3Qp LCBBTEwgVEFCTEVTLCBvciBBTEwgVEFCTEVTIElOIFNDSEVNQSwgd2UKKwkJICogY29uc2lkZXIg YWxsIGNvbHVtbnMgb2YgdGhlIHRhYmxlIChpbmNsdWRpbmcgZ2VuZXJhdGVkIGNvbHVtbnMgd2hl bgogCQkgKiAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgcGFyYW1ldGVyIGlzIHRydWUpLgog CQkgKi8KLQkJaWYgKCFjb2xzKQorCQlpZiAoIWFsbF9jb2xzX2V4Y2x1ZGVkICYmICFjb2xzKQog CQl7CiAJCQkvKgogCQkJICogQ2FjaGUgdGhlIHRhYmxlIGNvbHVtbnMgZm9yIHRoZSBmaXJzdCBw dWJsaWNhdGlvbiB3aXRoIG5vCkBAIC0xMTQ2LDcgKzExODcsNyBAQCBwZ291dHB1dF9jb2x1bW5f bGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCQkJCU1l bW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVudHJ5LT5lbnRyeV9j eHQpOwogCiAJCQkJcmVsY29scyA9IHB1Yl9mb3JtX2NvbHNfbWFwKHJlbGF0aW9uLAotCQkJCQkJ CQkJCQllbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUpOworCQkJCQkJCQkJCQllbnRyeS0+aW5j bHVkZV9nZW5jb2xzX3R5cGUsIE5VTEwpOwogCQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRj eHQpOwogCQkJfQogCkBAIC0xMTU2LDkgKzExOTcsMTEgQEAgcGdvdXRwdXRfY29sdW1uX2xpc3Rf aW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAkJaWYgKGZpcnN0 KQogCQl7CiAJCQllbnRyeS0+Y29sdW1ucyA9IGNvbHM7CisJCQllbnRyeS0+YWxsX2NvbHNfZXhj bHVkZWQgPSBhbGxfY29sc19leGNsdWRlZDsKIAkJCWZpcnN0ID0gZmFsc2U7CiAJCX0KLQkJZWxz ZSBpZiAoIWJtc19lcXVhbChlbnRyeS0+Y29sdW1ucywgY29scykpCisJCWVsc2UgaWYgKChlbnRy eS0+YWxsX2NvbHNfZXhjbHVkZWQgIT0gYWxsX2NvbHNfZXhjbHVkZWQpIHx8CisJCQkJICFibXNf ZXF1YWwoZW50cnktPmNvbHVtbnMsIGNvbHMpKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCWVycm1zZygiY2Fubm90 IHVzZSBkaWZmZXJlbnQgY29sdW1uIGxpc3RzIGZvciB0YWJsZSBcIiVzLiVzXCIgaW4gZGlmZmVy ZW50IHB1YmxpY2F0aW9ucyIsCkBAIC0xNDgyLDYgKzE1MjUsMTMgQEAgcGdvdXRwdXRfY2hhbmdl KExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCiAJ cmVsZW50cnkgPSBnZXRfcmVsX3N5bmNfZW50cnkoZGF0YSwgcmVsYXRpb24pOwogCisJLyoKKwkg KiBJZiBhbGwgY29sdW1ucyBvZiBhIHRhYmxlIGFyZSBwcmVzZW50IGluIGNvbHVtbiBsaXN0IHNw ZWNpZmllZCB3aXRoCisJICogRVhDRVBULCBza2lwIHB1Ymxpc2hpbmcgdGhlIGNoYW5nZXMuCisJ ICovCisJaWYgKHJlbGVudHJ5LT5hbGxfY29sc19leGNsdWRlZCkKKwkJcmV0dXJuOworCiAJLyog Rmlyc3QgY2hlY2sgdGhlIHRhYmxlIGZpbHRlciAqLwogCXN3aXRjaCAoYWN0aW9uKQogCXsKQEAg LTIwNTksNiArMjEwOSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEs IFJlbGF0aW9uIHJlbGF0aW9uKQogCQllbnRyeS0+cHVibGlzaF9hc19yZWxpZCA9IEludmFsaWRP aWQ7CiAJCWVudHJ5LT5jb2x1bW5zID0gTlVMTDsKIAkJZW50cnktPmF0dHJtYXAgPSBOVUxMOwor CQllbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQgPSBmYWxzZTsKIAl9CiAKIAkvKiBWYWxpZGF0ZSB0 aGUgZW50cnkgKi8KQEAgLTIxMDgsNiArMjE1OSw3IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQllbnRyeS0+cHViYWN0aW9ucy5w dWJ1cGRhdGUgPSBmYWxzZTsKIAkJZW50cnktPnB1YmFjdGlvbnMucHViZGVsZXRlID0gZmFsc2U7 CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5jYXRlID0gZmFsc2U7CisJCWVudHJ5LT5hbGxf Y29sc19leGNsdWRlZCA9IGZhbHNlOwogCiAJCS8qCiAJCSAqIFR1cGxlIHNsb3RzIGNsZWFudXBz LiAoV2lsbCBiZSByZWJ1aWx0IGxhdGVyIGlmIG5lZWRlZCkuCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA2ZjAx MTA1ZGYwZC4uM2IwYTE4NDEwMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDg0MSwyNCArNDg0MSw3IEBA IGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10s IGludCBudW1UYWJsZXMpCiAJCWlmICh0YmluZm8gPT0gTlVMTCkKIAkJCWNvbnRpbnVlOwogCi0J CS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0J CWlmIChzdHJjbXAocHJleGNlcHQsICJmIikgPT0gMCkKLQkJCXB1YnJpbmZvW2pdLmRvYmoub2Jq VHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKLQkJZWxzZQotCQkJcHVicmluZm9bal0uZG9iai5v YmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKLQotCQlwdWJyaW5mb1tqXS5kb2Jq LmNhdElkLnRhYmxlb2lkID0KLQkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9p ZCkpOwotCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV9vaWQpKTsKLQkJQXNzaWduRHVtcElkKCZwdWJyaW5mb1tqXS5kb2JqKTsKLQkJcHVi cmluZm9bal0uZG9iai5uYW1lc3BhY2UgPSB0YmluZm8tPmRvYmoubmFtZXNwYWNlOwotCQlwdWJy aW5mb1tqXS5kb2JqLm5hbWUgPSB0YmluZm8tPmRvYmoubmFtZTsKLQkJcHVicmluZm9bal0ucHVi bGljYXRpb24gPSBwdWJpbmZvOwotCQlwdWJyaW5mb1tqXS5wdWJ0YWJsZSA9IHRiaW5mbzsKLQkJ aWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9wcnJlbHF1YWwpKQotCQkJcHVicmluZm9bal0ucHVi cmVscXVhbCA9IE5VTEw7Ci0JCWVsc2UKLQkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBwZ19z dHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxxdWFsKSk7CisJCXB1YnJpbmZvW2pdLnB1 YmV4Y2VwdCA9IChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCk7CiAKIAkJaWYgKCFQUWdldGlz bnVsbChyZXMsIGksIGlfcHJhdHRycykpCiAJCXsKQEAgLTQ4ODQsMTAgKzQ4NjcsMjkgQEAgZ2V0 UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50 IG51bVRhYmxlcykKIAkJZWxzZQogCQkJcHVicmluZm9bal0ucHVicmF0dHJzID0gTlVMTDsKIAor CQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0aW9uc2hpcCAqLwor CQlpZiAocHVicmluZm9bal0ucHViZXhjZXB0ICYmICFwdWJyaW5mb1tqXS5wdWJyYXR0cnMpCisJ CQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOwor CQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7 CisKKwkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJcHVicmluZm9bal0uZG9iai5jYXRJZC5vaWQg PSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmcHVi cmluZm9bal0uZG9iaik7CisJCXB1YnJpbmZvW2pdLmRvYmoubmFtZXNwYWNlID0gdGJpbmZvLT5k b2JqLm5hbWVzcGFjZTsKKwkJcHVicmluZm9bal0uZG9iai5uYW1lID0gdGJpbmZvLT5kb2JqLm5h bWU7CisJCXB1YnJpbmZvW2pdLnB1YmxpY2F0aW9uID0gcHViaW5mbzsKKwkJcHVicmluZm9bal0u cHVidGFibGUgPSB0YmluZm87CisJCWlmIChQUWdldGlzbnVsbChyZXMsIGksIGlfcHJyZWxxdWFs KSkKKwkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBOVUxMOworCQllbHNlCisJCQlwdWJyaW5m b1tqXS5wdWJyZWxxdWFsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BycmVscXVh bCkpOworCiAJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxl Y3REdW1wYWJsZVB1YmxpY2F0aW9uT2JqZWN0KCYocHVicmluZm9bal0uZG9iaiksIGZvdXQpOwog Ci0JCWlmIChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCkKKwkJaWYgKHB1YnJpbmZvW2pdLnB1 YmV4Y2VwdCAmJiAhcHVicmluZm9bal0ucHVicmF0dHJzKQogCQkJc2ltcGxlX3B0cl9saXN0X2Fw cGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKIAogCQlqKys7CkBAIC00OTY3LDcgKzQ5 NjksMTIgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGlj YXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZSh0Ymlu Zm8pKTsKIAogCWlmIChwdWJyaW5mby0+cHVicmF0dHJzKQorCXsKKwkJaWYgKHB1YnJpbmZvLT5w dWJleGNlcHQpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBFWENFUFQiKTsKKwog CQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiAoJXMpIiwgcHVicmluZm8tPnB1YnJhdHRycyk7 CisJfQogCiAJaWYgKHB1YnJpbmZvLT5wdWJyZWxxdWFsKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGMx NzhlZGI0ZTA1Li41ZTJhYTFiMGNmMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02ODksNiArNjg5LDcgQEAg dHlwZWRlZiBzdHJ1Y3QgX1B1YmxpY2F0aW9uUmVsSW5mbwogCVRhYmxlSW5mbyAgKnB1YnRhYmxl OwogCWNoYXIJICAgKnB1YnJlbHF1YWw7CiAJY2hhcgkgICAqcHVicmF0dHJzOworCWJvb2wJCXB1 YmV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBmM2ZlNGFi MzBmOC4uNmIzNzVlOTc3MmYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisr KyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0zMDE5LDEyICszMDE5LDEzIEBAIGRlc2Ny aWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCS8qIHByaW50IGFu eSBwdWJsaWNhdGlvbnMgKi8KIAkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQogCQl7Ci0J CQlpZiAocHNldC5zdmVyc2lvbiA+PSAxNTAwMDApCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx OTAwMDApCiAJCQl7CiAJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkJICAiU0VM RUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKIAkJCQkJCQkJICAiICAg ICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19j YXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKIAkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFs b2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIHAub2lkID0gcG4ucG5wdWJpZFxuIgog CQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwYyBPTiBwYy5yZWxuYW1l c3BhY2UgPSBwbi5wbm5zcGlkXG4iCkBAIC0zMDM4LDM1ICszMDM5LDYyIEBAIGRlc2NyaWJlT25l VGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgIiAgICAgICAg ICAgICAgICBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZVxuIgogCQkJCQkJCQkgICIgICAgICAgICAg V0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgog CQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKKwkJCQkJCQkJICAiCQksIHByZXhj ZXB0ICIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKIAkJ CQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lk ID0gcHIucHJwdWJpZFxuIgogCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBj IE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0g JyVzJ1xuIiwKLQkJCQkJCQkJICBvaWQsIG9pZCwgb2lkKTsKLQotCQkJCWlmIChwc2V0LnN2ZXJz aW9uID49IDE5MDAwMCkKLQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiBBTkQgTk9U IHByLnByZXhjZXB0XG4iKTsKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcycgIgor CQkJCQkJCQkgICJBTkQgIGMucmVsbmFtZXNwYWNlIE5PVCBJTiAoXG4gIgorCQkJCQkJCQkgICIg CVNFTEVDVCBwbm5zcGlkIEZST01cbiIKKwkJCQkJCQkJICAiIAlwZ19jYXRhbG9nLnBnX3B1Ymxp Y2F0aW9uX25hbWVzcGFjZSlcbiIKIAotCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJ CQkJCSAgIlVOSU9OXG4iCiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCiAJCQkJCQkJCSAg IgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxM XG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJ CQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lz X3B1Ymxpc2hhYmxlKCclcycpXG4iLAotCQkJCQkJCQkgIG9pZCk7Ci0KLQkJCQlpZiAocHNldC5z dmVyc2lvbiA+PSAxOTAwMDApCi0JCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJ CQkgICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIKLQkJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIK LQkJCQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgot CQkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKLQkJCQkJCQkJCSAg IgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgotCQkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJl bGlkID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIiwKLQkJCQkJCQkJCSAgb2lkKTsK LQotCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxOyIpOworCQkJCQkJ CQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19w dWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJCQkJCQkgICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIK KwkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgorCQkJCQkJCQkgICIJCUZST00gcGdfY2F0YWxvZy5w Z19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKKwkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdf Y2xhc3MgcGNcbiIKKwkJCQkJCQkJICAiCQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJ CQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9ICclcycgQU5EIHByLnBycHViaWQgPSBwLm9pZClc biIKKwkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9p ZCwgb2lkKTsKKwkJCX0KKwkJCWVsc2UgaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJ eworCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1l XG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4i CisJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCisJCQkJCQkJ CSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwbiBPTiBw Lm9pZCA9IHBuLnBucHViaWRcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdf Y2xhc3MgcGMgT04gcGMucmVsbmFtZXNwYWNlID0gcG4ucG5uc3BpZFxuIgorCQkJCQkJCQkgICJX SEVSRSBwYy5vaWQgPSclcycgYW5kIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFi bGUoJyVzJylcbiIKKwkJCQkJCQkJICAiVU5JT05cbiIKKwkJCQkJCQkJICAiU0VMRUNUIHB1Ym5h bWVcbiIKKwkJCQkJCQkJICAiICAgICAsIHBnX2dldF9leHByKHByLnBycXVhbCwgYy5vaWQpXG4i CisJCQkJCQkJCSAgIiAgICAgLCAoQ0FTRSBXSEVOIHByLnByYXR0cnMgSVMgTk9UIE5VTEwgVEhF TlxuIgorCQkJCQkJCQkgICIgICAgICAgICAoU0VMRUNUIHN0cmluZ19hZ2coYXR0bmFtZSwgJywg JylcbiIKKwkJCQkJCQkJICAiICAgICAgICAgICBGUk9NIHBnX2NhdGFsb2cuZ2VuZXJhdGVfc2Vy aWVzKDAsIHBnX2NhdGFsb2cuYXJyYXlfdXBwZXIocHIucHJhdHRyczo6cGdfY2F0YWxvZy5pbnQy W10sIDEpKSBzLFxuIgorCQkJCQkJCQkgICIgICAgICAgICAgICAgICAgcGdfY2F0YWxvZy5wZ19h dHRyaWJ1dGVcbiIKKwkJCQkJCQkJICAiICAgICAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJy ZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRyc1tzXSlcbiIKKwkJCQkJCQkJICAiICAgICAgICBFTFNF IE5VTEwgRU5EKSAiCisJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBw XG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBw ciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFs b2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUg cHIucHJyZWxpZCA9ICclcydcbiIKKwkJCQkJCQkJICAiVU5JT05cbiIKKwkJCQkJCQkJICAiU0VM RUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiICAg ICAsIE5VTExcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBc biIKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVs YXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAor CQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC0z MTA0LDggKzMxMzIsMTEgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2No ZW1hbmFtZSwKIAogCQkJCS8qIGNvbHVtbiBsaXN0IChpZiBhbnkpICovCiAJCQkJaWYgKCFQUWdl dGlzbnVsbChyZXN1bHQsIGksIDIpKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICgl cykiLAotCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMikpOworCQkJCXsKKwkJCQkJ aWYgKHN0cmNtcChQUWdldHZhbHVlKHJlc3VsdCwgaSwgMyksICJ0IikgPT0gMCkKKwkJCQkJCWFw cGVuZFBRRXhwQnVmZmVyKCZidWYsICIgRVhDRVBUIik7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVy KCZidWYsICIgKCVzKSIsIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAyKSk7CisJCQkJfQogCiAJCQkJ Lyogcm93IGZpbHRlciAoaWYgYW55KSAqLwogCQkJCWlmICghUFFnZXRpc251bGwocmVzdWx0LCBp LCAxKSkKQEAgLTY1MTEsNiArNjU0MiwxNSBAQCBhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYyhQ UUV4cEJ1ZmZlciBidWYsIGNvbnN0IGNoYXIgKmZvb3Rlcm1zZywKIAlpZiAoY291bnQgPiAwKQog CQlwcmludFRhYmxlQWRkRm9vdGVyKGNvbnQsIGZvb3Rlcm1zZyk7CiAKKwkvKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSAqIFB1YmxpY2F0aW9u IGRlc2NyaXB0aW9uIGNvbHVtbnM6CisJICogWzBdOiBzY2hlbWEgbmFtZSAobnNwbmFtZSkKKwkg KiBbMV06IHRhYmxlIG5hbWUgKHJlbG5hbWUpCisJICogWzJdOiByb3cgZmlsdGVyIGV4cHJlc3Np b24gKHBycXVhbCksIG1heSBiZSBOVUxMCisJICogWzNdOiBjb2x1bW4gbGlzdCAoY29tbWEtc2Vw YXJhdGVkKSwgbWF5IGJlIE5VTEwKKwkgKiBbNF06IGV4Y2VwdCBmbGFnICgidCIgaWYgRVhDRVBU LCBlbHNlICJmIikKKwkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorCSAqLwogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQogCXsKIAkJaWYg KGFzX3NjaGVtYSkKQEAgLTY1MjEsNyArNjU2MSwxMSBAQCBhZGRGb290ZXJUb1B1YmxpY2F0aW9u RGVzYyhQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IGNoYXIgKmZvb3Rlcm1zZywKIAkJCQkJCQkgIFBR Z2V0dmFsdWUocmVzLCBpLCAxKSk7CiAKIAkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCAzKSkK KwkJCXsKKwkJCQlpZiAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCA0KSwgInQiKSA9PSAwKQor CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgRVhDRVBUIik7CiAJCQkJYXBwZW5kUFFFeHBC dWZmZXIoYnVmLCAiICglcykiLCBQUWdldHZhbHVlKHJlcywgaSwgMykpOworCQkJfQogCiAJCQlp ZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgMikpCiAJCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAi IFdIRVJFICVzIiwgUFFnZXR2YWx1ZShyZXMsIGksIDIpKTsKQEAgLTY3MDQsNiArNjc0OCwxMiBA QCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJZWxzZQogCQkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCiAJCQkJCQkJCQkgIiwgTlVMTCwgTlVMTCIpOwor CisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIiwgcHJleGNlcHQiKTsKKwkJCWVsc2UKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cigmYnVmLCAiLCBOVUxMIik7CisKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJ ICAiXG5GUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYyxcbiIKIAkJCQkJCQkgICIgICAgIHBnX2Nh dGFsb2cucGdfbmFtZXNwYWNlIG4sXG4iCkBAIC02NzEyLDkgKzY3NjIsNiBAQCBkZXNjcmliZVB1 YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkJCSAgIiAgQU5EIGMub2lkID0g cHIucHJyZWxpZFxuIgogCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iLCBwdWJp ZCk7CiAKLQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCQlhcHBlbmRQUUV4cEJ1 ZmZlcigmYnVmLCAiICBBTkQgTk9UIHByLnByZXhjZXB0XG4iKTsKLQogCQkJYXBwZW5kUFFFeHBC dWZmZXIoJmJ1ZiwgIk9SREVSIEJZIDEsMiIpOwogCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0 aW9uRGVzYygmYnVmLCBfKCJUYWJsZXM6IiksIGZhbHNlLCAmY29udCkpCiAJCQkJZ290byBlcnJv cl9yZXR1cm47CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggYjM2MjA2MDZkOTQuLmVkOGYzYzhj MzUzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMjcyLDYgKzIyNzIsOCBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxF UyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIikpCiAJ CUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIiwgTWF0Y2hBbnkp KQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikpCiAJCUNPTVBM RVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CiAJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwi LCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKQpAQCAtMzYwMSw3ICszNjAzLDcgQEAgbWF0 Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JF QVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIikpCiAJCUNPTVBM RVRFX1dJVEgoIklOIFNDSEVNQSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJM SUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFIiwgTWF0Y2hBbnkpICYmICFlbmRzX3dp dGgocHJldl93ZCwgJywnKSkKLQkJQ09NUExFVEVfV0lUSCgiV0hFUkUgKCIsICJXSVRIICgiKTsK KwkJQ09NUExFVEVfV0lUSCgiRVhDRVBUICgiLCAiV0hFUkUgKCIsICJXSVRIICgiKTsKIAkvKiBD b21wbGV0ZSAiQ1JFQVRFIFBVQkxJQ0FUSU9OIDxuYW1lPiBGT1IgVEFCTEUiIHdpdGggIjx0YWJs ZT4sIC4uLiIgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBN YXRjaEFueSwgIkZPUiIsICJUQUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShR dWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5o CmluZGV4IDAyMjQ2N2ZiNDVjLi4yYTFkYzQ4Y2NiOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uaApAQCAtMTgxLDcgKzE4MSw4IEBAIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2Vz dG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCiBleHRlcm4gYm9v bCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJuIGJvb2wgaXNf c2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gYm9vbCBjaGVja19hbmRfZmV0 Y2hfY29sdW1uX2xpc3QoUHVibGljYXRpb24gKnB1YiwgT2lkIHJlbGlkLAotCQkJCQkJCQkJCU1l bW9yeUNvbnRleHQgbWN4dCwgQml0bWFwc2V0ICoqY29scyk7CisJCQkJCQkJCQkJTWVtb3J5Q29u dGV4dCBtY3h0LCBCaXRtYXBzZXQgKipjb2xzLAorCQkJCQkJCQkJCWJvb2wgKmV4Y2VwdF9jb2x1 bW5zKTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQg cHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCQkJCQkJCQkJCQkgIGJvb2wgaWZfbm90 X2V4aXN0cyk7CiBleHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF92YWxpZGF0ZShSZWxhdGlv biB0YXJnZXRyZWwsIExpc3QgKmNvbHVtbnMpOwpAQCAtMTkxLDYgKzE5Miw3IEBAIGV4dGVybiBP YmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1YmlkLCBPaWQgc2NoZW1h aWQsCiBleHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoQml0bWFwc2V0 ICpjb2x1bW5zLCBEYXR1bSBwdWJjb2xzLAogCQkJCQkJCQkJCSAgIE1lbW9yeUNvbnRleHQgbWN4 dCk7CiBleHRlcm4gQml0bWFwc2V0ICpwdWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlv biwKLQkJCQkJCQkJCVB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSk7CisJ CQkJCQkJCQlQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUsCisJCQkJCQkJ CQlCaXRtYXBzZXQgKmV4Y2VwdF9jb2xzKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX1BVQkxJQ0FU SU9OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25f cmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCmluZGV4IGU3 ZDdmM2JhODVjLi42YTIxNjhmYzMyYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uX3JlbC5oCkBAIC0zMSwxMSArMzEsMTIgQEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9yZWws NjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLwog CU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9pZCBvZiB0aGUg cHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xhc3MpOwkvKiBP aWQgb2YgdGhlIHJlbGF0aW9uICovCi0JYm9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7CS8q IGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7 CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uIG9yIGNvbHVtbnMgKi8KIAogI2lmZGVmCUNBVEFMT0df VkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCiAJcGdfbm9k ZV90cmVlIHBycXVhbDsJCS8qIHF1YWxpZmljYXRpb25zICovCi0JaW50MnZlY3RvcglwcmF0dHJz OwkJLyogY29sdW1ucyB0byByZXBsaWNhdGUgKi8KKwlpbnQydmVjdG9yCXByYXR0cnM7CQkvKiBj b2x1bW5zIHRvIHJlcGxpY2F0ZSBvciBleGNsdWRlIHRvCisJCQkJCQkJCSAqIHJlcGxpY2F0ZSAq LwogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3B1YmxpY2F0aW9uX3JlbDsKIApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCA0OWFmZWI3NzYyMi4uZWQ4YTdiOWEz YTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC0yMTI1 LDYgKzIxMjUsNzUgQEAgU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwogRFJP UCBUQUJMRSBwdWJfc2NoMS50YmwyOworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0IEVYQ0VQVCBjb2x1bW5zIGZvciBDUkVB VEUgUFVCTElDQVRJT04KK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFU RSBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIChhIGludCBOT1QgTlVMTCwgYiBpbnQsIGMgaW50IE5P VCBOVUxMLCBkIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiAo YSBpbnQsIGIgaW50LCBjIGludCwgZCBpbnQpOworLS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24g aXMgY3JlYXRlZCB3aXRoIEVYQ0VQVAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0 IEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIEVY Q0VQVCAoYiwgYyk7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBw dWJuYW1lID0gJ3Rlc3RwdWJfZXhjZXB0JzsKKyAgICBwdWJuYW1lICAgICB8IHNjaGVtYW5hbWUg fCAgICB0YWJsZW5hbWUgICAgIHwgYXR0bmFtZXMgIHwgcm93ZmlsdGVyIAorLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgdGVzdHB1Yl9leGNlcHQgfCBwdWJsaWMgICAgIHwgcHViX3Rlc3RfZXhjZXB0MSB8IHth LGIsYyxkfSB8IAorIHRlc3RwdWJfZXhjZXB0IHwgcHViX3NjaDEgICB8IHB1Yl90ZXN0X2V4Y2Vw dDIgfCB7YSxkfSAgICAgfCAKKygyIHJvd3MpCisKKy0tIENhbm5vdCB1c2UgRVhDRVBUIGNvbC1s aXN0cyBjb21iaW5lZCB3aXRoIFRBQkxFUyBJTiBTQ0hFTUEKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3NjaDEsIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdDEgRVhDRVBUIChiLCBjKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBjb2x1bW4gbGlz dCBmb3IgcmVsYXRpb24gInB1YmxpYy5wdWJfdGVzdF9leGNlcHQxIiBpbiBwdWJsaWNhdGlvbiAi dGVzdHB1Yl9leGNlcHQyIgorREVUQUlMOiAgQ29sdW1uIGxpc3RzIGNhbm5vdCBiZSBzcGVjaWZp ZWQgaW4gcHVibGljYXRpb25zIGNvbnRhaW5pbmcgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgZWxlbWVu dHMuCistLSBTeW50YXggZXJyb3IgRVhDRVBUIHdpdGhvdXQgYSBjb2wtbGlzdAorQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENF UFQ7CitFUlJPUjogIEVYQ0VQVCBjbGF1c2Ugbm90IGFsbG93ZWQgZm9yIHRhYmxlIHdpdGhvdXQg Y29sdW1uIGxpc3QKKy0tIFZlcmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgLi4u IEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBTRVQg VEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpLCBwdWJfc2NoMS5wdWJfdGVzdF9l eGNlcHQyOworXGRScCsgdGVzdHB1Yl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3Nj aDEucHViX3Rlc3RfZXhjZXB0MiIKKyAgICAicHVibGljLnB1Yl90ZXN0X2V4Y2VwdDEiIEVYQ0VQ VCAoYSwgYikKKworLS0gVmVyaWZ5IGZhaWxzIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1Ag Li4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBE Uk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKTsKK0VSUk9SOiAgY29sdW1u IGxpc3QgbXVzdCBub3QgYmUgc3BlY2lmaWVkIGluIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9Q CistLSBWZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUAorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworLS0gVmVy aWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIEFERCAuLi4gRVhDRVBUIChjb2wtbGlzdCkK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEFERCBUQUJMRSBwdWJfdGVzdF9leGNl cHQxIEVYQ0VQVCAoYywgZCk7CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZXhjZXB0Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzOgor ICAgICJwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIgorICAgICJwdWJsaWMucHViX3Rlc3RfZXhj ZXB0MSIgRVhDRVBUIChjLCBkKQorCistLSBWZXJpZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3Qg Y2Fubm90IGNvbnRhaW4gUkkgY29scyAod2hlbiB1c2luZyBSSSBGVUxMKQorQUxURVIgVEFCTEUg cHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIEZVTEw7CitVUERBVEUgcHViX3Rlc3Rf ZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CitFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFi bGUgInB1Yl90ZXN0X2V4Y2VwdDEiCitERVRBSUw6ICBDb2x1bW4gbGlzdCB1c2VkIGJ5IHRoZSBw dWJsaWNhdGlvbiBkb2VzIG5vdCBjb3ZlciB0aGUgcmVwbGljYSBpZGVudGl0eS4KKy0tIFZlcmlm eSBmYWlscyAtIEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVz aW5nIElOREVYKQorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeCBP TiBwdWJfdGVzdF9leGNlcHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEg UkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKK1VQ REFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fu bm90IHVwZGF0ZSB0YWJsZSAicHViX3Rlc3RfZXhjZXB0MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0 IHVzZWQgYnkgdGhlIHB1YmxpY2F0aW9uIGRvZXMgbm90IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50 aXR5LgorRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKKy0tIFZlcmlmeSBvayAt IG5vIGNsYXNoIGJldHdlZW4gUkkgY29scyBhbmQgdGhlIEVYQ0VQVCBjb2wtbGlzdAorQ1JFQVRF IFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEg KGEpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5H IElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBT RVQgYSA9IDMgV0hFUkUgYSA9IDE7CistLSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4 Y2VwdDFfYV9pZHg7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJM RSBwdWJfdGVzdF9leGNlcHQxOworRFJPUCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQy OwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogUkVT RVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3Fs CmluZGV4IDYyNDBjZDk3Y2UzLi5jNTk5NzcyYTQ0MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1Ymxp Y2F0aW9uLnNxbApAQCAtMTMxOCw2ICsxMzE4LDU4IEBAIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUg cHViX3NjaDEudGJsMTsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKKworLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBUZXN0IEVY Q0VQVCBjb2x1bW5zIGZvciBDUkVBVEUgUFVCTElDQVRJT04KKworU0VUIGNsaWVudF9taW5fbWVz c2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgKGEgaW50IE5P VCBOVUxMLCBiIGludCwgYyBpbnQgTk9UIE5VTEwsIGQgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJf c2NoMS5wdWJfdGVzdF9leGNlcHQyIChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7CisKKy0t IFZlcmlmeSB0aGF0IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBFWENFUFQKK0NSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSwgcHVi X3NjaDEucHViX3Rlc3RfZXhjZXB0MiBFWENFUFQgKGIsIGMpOworU0VMRUNUICogRlJPTSBwZ19w dWJsaWNhdGlvbl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2V4Y2VwdCc7CisKKy0t IENhbm5vdCB1c2UgRVhDRVBUIGNvbC1saXN0cyBjb21iaW5lZCB3aXRoIFRBQkxFUyBJTiBTQ0hF TUEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFUyBJTiBTQ0hF TUEgcHViX3NjaDEsIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChiLCBjKTsKKworLS0g U3ludGF4IGVycm9yIEVYQ0VQVCB3aXRob3V0IGEgY29sLWxpc3QKK0NSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUOworCist LSBWZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIC4uLiBFWENFUFQgKGNvbC1s aXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0 X2V4Y2VwdDEgRVhDRVBUIChhLCBiKSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKK1xkUnAr IHRlc3RwdWJfZXhjZXB0CisKKy0tIFZlcmlmeSBmYWlscyAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4u LiBEUk9QIC4uLiBFWENFUFQgKGNvbC1saXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9l eGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYSwgYik7CisKKy0tIFZl cmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CisKKy0tIFZlcmlmeSBv ayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBF WENFUFQgKGMsIGQpOworXGRScCsgdGVzdHB1Yl9leGNlcHQKKworLS0gVmVyaWZ5IGZhaWxzIC0g RVhDRVBUIGNvbC1saXN0IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4gdXNpbmcgUkkgRlVM TCkKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBGVUxMOwor VVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworCistLSBWZXJp ZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3QgY2Fubm90IGNvbnRhaW4gUkkgY29scyAod2hlbiB1 c2luZyBJTkRFWCkKK0NSRUFURSBVTklRVUUgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hY19pZHgg T04gcHViX3Rlc3RfZXhjZXB0MSAoYSwgYyk7CitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQx IFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hY19pZHg7CitV UERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CitEUk9QIElOREVY IHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworCistLSBWZXJpZnkgb2sgLSBubyBjbGFzaCBiZXR3 ZWVuIFJJIGNvbHMgYW5kIHRoZSBFWENFUFQgY29sLWxpc3QKK0NSRUFURSBVTklRVUUgSU5ERVgg cHViX3Rlc3RfZXhjZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhKTsKK0FMVEVSIFRB QkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVz dF9leGNlcHQxX2FfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEgU0VUIGEgPSAzIFdIRVJF IGEgPSAxOworCistLSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7 CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxOworRFJPUCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOwogRFJPUCBTQ0hF TUEgcHViX3NjaDE7CiAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24v bWVzb24uYnVpbGQKaW5kZXggZThhMTE3ZjM0MjEuLmUwMTBkZTFlMWQwIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL21lc29uLmJ1aWxkCkBAIC00Myw2ICs0Myw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAz NF90ZW1wb3JhbC5wbCcsCiAgICAgICAndC8wMzVfY29uZmxpY3RzLnBsJywKICAgICAgICd0LzAz Nl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwnLAorICAgICAgJ3QvMDM3X3JlcF9jaGFuZ2Vz X2V4Y2VwdF9jb2xsaXN0LnBsJywKICAgICAgICd0LzEwMF9idWdzLnBsJywKICAgICBdLAogICB9 LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4 Y2VwdF9jb2xsaXN0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2Vz X2V4Y2VwdF9jb2xsaXN0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li43OWU2M2MwZjQ0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzN19yZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbApAQCAtMCwwICsxLDE5MCBAQAorIyBD b3B5cmlnaHQgKGMpIDIwMjEtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKworIyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBFWENFUFQgKGNvbHVtbi1saXN0 KSBwdWJsaWNhdGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0 OjpNb3JlOworCisjIEluaXRpYWxpemUgcHVibGlzaGVyIG5vZGUKK215ICRub2RlX3B1Ymxpc2hl ciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7Ciskbm9kZV9w dWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHVi bGlzaGVyLT5zdGFydDsKKworIyBDcmVhdGUgc3Vic2NyaWJlciBub2RlCitteSAkbm9kZV9zdWJz Y3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7Cisk bm9kZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRu b2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIEluaXRpYWwgc2V0dXAKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxICgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJ Q1JFQVRFIFRBQkxFIHRhYjEgKGEgaW50LCBiIGludCBOT1QgTlVMTCwgYyBpbnQpOworCUNSRUFU RSBUQUJMRSBzY2gxLnRhYjEgKGEgaW50LCBiIGludCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSB0 YWIyIChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiMyAoYSBpbnQsIGJn ZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGNnZW4gaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworCUNSRUFURSBUQUJMRSB0YWI0IChhIGlu dCwgYmdlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgY2dlbiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JFRCk7CisJQ1JFQVRFIFRBQkxFIHRhYjUg KGEgaW50LCBiIGludCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSB0YWI2IChhZ2VuIGludCBHRU5F UkFURUQgQUxXQVlTIEFTICgxKSBTVE9SRUQsIGJnZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KDIpIFNUT1JFRCk7CisJSU5TRVJUIElOVE8gdGFiMSBWQUxVRVMgKDEsIDIsIDMpOworCUlOU0VS VCBJTlRPIHNjaDEudGFiMSBWQUxVRVMgKDEsIDIsIDMpOworCUNSRUFURSBQVUJMSUNBVElPTiB0 YXBfcHViX2NvbCBGT1IgVEFCTEUgdGFiMSBFWENFUFQgKGEpLCBzY2gxLnRhYjEgRVhDRVBUIChi LCBjKTsKKykpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywg cXEgKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUgdGFiMSAoYSBpbnQsIGIg aW50IE5PVCBOVUxMLCBjIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQsIGIg aW50LCBjIGludCk7CisJQ1JFQVRFIFRBQkxFIHRhYjIgKGEgaW50LCBiIGludCwgYyBpbnQpOwor CUNSRUFURSBUQUJMRSB0YWIzIChhIGludCwgYmdlbiBpbnQsIGNnZW4gaW50KTsKKwlDUkVBVEUg VEFCTEUgdGFiNCAoYSBpbnQsIGJnZW4gaW50LCBjZ2VuIGludCk7CisJQ1JFQVRFIFRBQkxFIHRh YjUgKGEgaW50LCBiIGludCwgYyBpbnQsIGQgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiNiAoYWdl biBpbnQsIGJnZW4gaW50KTsKKykpOworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24KK215 ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1l PXBvc3RncmVzJzsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJD UkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJfY29sIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29u bnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2Fp dF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsK KworIyBUZXN0IGluaXRpYWwgc3luYworbXkgJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIik7CitpcygkcmVzdWx0LCBx cSh8MnwzKSwKKwknY2hlY2sgaW5pdGlhbCBzeW5jIGZvciBFWENFUFQgKGNvbHVtbi1saXN0KSBw dWJsaWNhdGlvbicpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKDF8fCks CisJJ2NoZWNrIGluaXRpYWwgc3luYyBmb3IgRVhDRVBUIChjb2x1bW4tbGlzdCkgcHVibGljYXRp b24nKTsKKworIyBUZXN0IGluY3JlbWVudGFsIGNoYW5nZXMKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxICgKKwlJTlNFUlQgSU5UTyB0YWIxIFZBTFVFUyAoNCwg NSwgNik7CisJSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyAoNCwgNSwgNik7CispKTsKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQg PQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZS T00gdGFiMSBPUkRFUiBCWSBhIik7CitpcyggJHJlc3VsdCwgcXEofDJ8MworfDV8NiksCisJJ2No ZWNrIGluY3JlbWVudGFsIGluc2VydCBmb3IgRVhDRVBUIChjb2x1bW4tbGlzdCkgcHVibGljYXRp b24nKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUICogRlJPTSBzY2gxLnRhYjEgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQsIHFx KDF8fAorNHx8KSwgJ2NoZWNrIGluY3JlbWVudGFsIGluc2VydCBmb3IgRVhDRVBUIChjb2x1bW4t bGlzdCkgcHVibGljYXRpb24nKTsKKworIyBUZXN0IGZvciB1cGRhdGUKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgVU5JUVVFIElOREVYIGJf aWR4IE9OIHRhYjEgKGIpOworCUFMVEVSIFRBQkxFIHRhYjEgUkVQTElDQSBJREVOVElUWSBVU0lO RyBJTkRFWCBiX2lkeDsKKykpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXEoCisJQ1JFQVRFIFVOSVFVRSBJTkRFWCBiX2lkeCBPTiB0YWIxIChiKTsKKwlBTFRF UiBUQUJMRSB0YWIxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggYl9pZHg7CisJVVBEQVRF IHRhYjEgU0VUIGEgPSA5OTEsIGIgPSA5OTIsIGMgPSA5OTMgV0hFUkUgYSA9IDE7CispKTsKKyRu b2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQg PQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZS T00gdGFiMSAgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQsIHFxKHw1fDYKK3w5OTJ8OTkzKSwK KwknY2hlY2sgdXBkYXRlIGZvciBFWENFUFQgKGNvbHVtbi1saXN0KSBwdWJsaWNhdGlvbicpOwor CisjIFRlc3QgQUxURVIgUFVCTElDQVRJT04gZm9yIEVYQ0VQVCAoY29sdW1uLWxpc3QpCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0 YXBfcHViX2NvbCBBREQgVEFCTEUgdGFiMiBFWENFUFQoYikiKTsKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wg UkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2Ny aXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjIgVkFMVUVTICgx LCAyLCAzKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2Nv bCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi U0VMRUNUICogRlJPTSB0YWIyIik7CitpcygkcmVzdWx0LCBxcSgxfHwzKSwgJ2NoZWNrIGFsdGVy IHB1YmxpY2F0aW9uIHdpdGggRVhDRVBUIChjb2x1bW4tbGlzdCknKTsKKworIyBUZXN0IGZvciBw dWJsaWNhdGlvbiBjcmVhdGVkIHdpdGggJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGFzICdz dG9yZWQnIG9uCisjIHRhYmxlICd0YWIzJyBhbmQgd2l0aCBjb2x1bW4gJ2JnZW4nIGluIGNvbHVt biBsaXN0IHdpdGggRVhDRVBUIGNsYXVzZS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAor CSdwb3N0Z3JlcycsIHFxKElOU0VSVCBJTlRPIHRhYjMgVkFMVUVTICgxKTsKKwlBTFRFUiBQVUJM SUNBVElPTiB0YXBfcHViX2NvbCBTRVQgKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBzdG9y ZWQpOworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCBUQUJMRSB0YWIzIEVYQ0VQ VChiZ2VuKTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Cisk bm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNo ZXIsICd0YXBfc3ViX2NvbCcpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiSU5TRVJUIElOVE8gdGFiMyBWQUxVRVMgKDIpIik7Ciskbm9kZV9wdWJsaXNoZXItPndh aXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjMgT1JERVIgQlkg YSIpOworCisjIGNvbHVtbiAnYmdlbicgaXMgc3BlY2lmaWVkIGluIEVYQ0VQVCAoY29sdW1tLWxp c3QpLiBTbyBkYXRhIGNvcnJlc3BvbmRpbmcgdG8KKyMgJ2JnZW4nIGlzIG5vdCByZXBsaWNhdGVk LiBQYXJhbWV0ZXIgJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGlzIHNldCBhcworIyAnc3Rv cmVkJywgc28gZGF0YSBjb3JyZXNwb25kaW5nIHRvIGNvbHVtbiAnY2dlbicgaXMgcmVwbGljYXRl ZC4KK2lzKCAkcmVzdWx0LCBxcSgxfHwzCisyfHw2KSwKKwknY2hlY2sgcHVibGljYXRpb24ocHVi bGlzaF9nZW5lcmF0ZWRfY29sdW1ucyBhcyBzdG9yZWQpIHdpdGggZ2VuZXJhdGVkIGNvbHVtbnMg YW5kIEVYQ0VQVCAoY29sdW1uLWxpc3QpJworKTsKKworIyBUZXN0IGZvciBwdWJsaWNhdGlvbiBj cmVhdGVkIHdpdGggJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGFzICdub25lJyBvbgorIyB0 YWJsZSB3aXRoIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0 aCBFWENFUFQgY2xhdXNlLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVz JywgcXEoCisJSU5TRVJUIElOVE8gdGFiNCBWQUxVRVMgKDEpOworCUFMVEVSIFBVQkxJQ0FUSU9O IHRhcF9wdWJfY29sIFNFVCAocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyA9IG5vbmUpOworCUFM VEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCBUQUJMRSB0YWI0IEVYQ0VQVChiZ2VuKTsK KykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNV QlNDUklQVElPTiB0YXBfc3ViX2NvbCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJz Y3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBf c3ViX2NvbCcpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5T RVJUIElOVE8gdGFiNCBWQUxVRVMgKDIpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2Nh dGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjQgT1JERVIgQlkgYSIpOworCisj IGNvbHVtbiAnYmdlbicgaXMgc3BlY2lmaWVkIGluIEVYQ0VQVCAoY29sdW1tLWxpc3QpLiBTbyBk YXRhIGNvcnJlc3BvbmRpbmcgdG8KKyMgJ2JnZW4nIGlzIG5vdCByZXBsaWNhdGVkLiBQYXJhbWV0 ZXIgJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGlzIHNldCBhcworIyAnbm9uZScsIHNvIGRh dGEgY29ycmVzcG9uZGluZyB0byBjb2x1bW4gJ2NnZW4nIGlzIG5vdCByZXBsaWNhdGVkLgoraXMo ICRyZXN1bHQsIHFxKDF8fAorMnx8KSwKKwknY2hlY2sgcHVibGljYXRpb24ocHVibGlzaF9nZW5l cmF0ZWRfY29sdW1ucyBhcyBub25lKSB3aXRoIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBFWENFUFQg KGNvbHVtbi1saXN0KScKKyk7CisKKyMgQWxsIGNvbHVtbnMgYXJlIHByZXNlbnQgaW4gRVhDRVBU IChjb2x1bW4tbGlzdCkKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3Jlcycs IHFxKAorCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCBUQUJMRSB0YWI1IEVYQ0VQ VChhLCBiLCBjKTsKKwlJTlNFUlQgSU5UTyB0YWI1IFZBTFVFUyAoMSwgMiwgMyk7CispKTsKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJ T04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+ d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wn KTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRP IHRhYjUgVkFMVUVTICg0LCA1LCA2KSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWI1Iik7CitpcygkcmVzdWx0LCBxcSgpLCAn YWxsIGNvbHVtbnMgYXJlIHNwZWNpZmllZCBpbiBFWENFUFQgKGNvbHVtbi1saXN0KScpOworCisj IEFkZCBhIG5ldyBjb2x1bW4gYW5kIGNoZWNrIHRoYXQgaXQgaXMgcmVwbGljYXRlZAorJG5vZGVf cHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQUxURVIgVEFCTEUgdGFi NSBBREQgQ09MVU1OIGQgaW50OworKSk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0YWI1IFZBTFVFUyAoNywgOCwgOSwgMTApIik7Ciskbm9k ZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CisKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00g dGFiNSIpOworaXMoJHJlc3VsdCwgcXEofHx8MTApLCAnbmV3bHkgYWRkZWQgY29sdW1uIGFyZSBp cyByZXBsaWNhdGVkJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRub2Rl X3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQuMQoK --000000000000ed13c7063bb212a1 Content-Type: application/octet-stream; name="v19-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v19-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdzzji3c1 RnJvbSA1MTg0MTE5OTQyNzgwMWRhZGY3OTJhN2E5OGQ5MTVkNmViMzUyMDJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjIgSnVsIDIwMjUgMDA6MzM6NTUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx OSAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0 MjsKb3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg dDEsdDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVi bGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAyMiArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDQ5ICsrKy0K IGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSArLQog c3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDk3ICsrKysr LS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAyMTUg KysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAg ICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAg ICAgICAgICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jICAgfCAgMjUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgICAg ICAgICAgICB8ICAxNyArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAg ICAgICAgIHwgIDU1ICsrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAg ICAgICAgIHwgIDE4ICsrCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAg ICAgICAgfCAgMjAgKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAg ICAgICB8ICA1OCArKysrLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAg ICAgICAgIHwgIDE1ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAg ICAgICAgfCAgMTAgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCAgICAg ICAgfCAgIDUgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAg fCAgODkgKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAg ICAgICB8ICA0NSArKystCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAg ICAgICAgfCAgIDEgKwogLi4uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCAgICAg ICAgIHwgMTg2ICsrKysrKysrKysrKysrKwogMjUgZmlsZXMgY2hhbmdlZCwgODU4IGluc2VydGlv bnMoKyksIDE0MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApp bmRleCBkYThhNzg4MjU4MC4uZTk2YTU1ZmVjZjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NTY4LDYg KzY1NjgsMTUgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIGlmIHRoZXJlIGlzIG5v IHB1YmxpY2F0aW9uIHF1YWxpZnlpbmcgY29uZGl0aW9uLjwvcGFyYT48L2VudHJ5PgogICAgICA8 L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgIDxzdHJ1Y3RmaWVsZD5w cmV4Y2VwdDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVk CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnByYXR0cnM8L3N0cnVjdGZpZWxkPiA8dHlw ZT5pbnQydmVjdG9yPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5k ZXggYTA3NjFjZmVlM2YuLjQxNGEzMTRhY2M1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbG9n 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 bCBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCA0ZjdiMTExNzVjNi4uY2I0 MjE1MDcxZDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTIxMDMsOCArMjEwMyw5IEBAIFNF TEVDVCAkMSBccGFyc2Ugc3RtdDEKICAgICAgICAgbGlzdGVkLgogICAgICAgICBJZiA8bGl0ZXJh bD54PC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgcmVzdWx0 cwogICAgICAgICBhcmUgZGlzcGxheWVkIGluIGV4cGFuZGVkIG1vZGUuCi0gICAgICAgIElmIDxs aXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0 YWJsZXMgYW5kCi0gICAgICAgIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRp b24gYXJlIHNob3duIGFzIHdlbGwuCisgICAgICAgIElmIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlz IGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0YWJsZXMsCisgICAgICAgIGV4Y2x1 ZGVkIHRhYmxlcyBhbmQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBh cmUgc2hvd24gYXMKKyAgICAgICAgd2VsbC4KICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xp c3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmMKaW5kZXggZDZmOTRkYjVkOTkuLjk1NzFjYzI2OTMxIDEwMDY0NAotLS0gYS9zcmMvYmFj 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 bGljYXRpb25jbWRzLmMKaW5kZXggMDZmNmY0NTUyNmIuLmI2ZDU0NmJlMjkxIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjA0LDYgKzIwNCwxMSBAQCBPYmplY3Rz SW5QdWJsaWNhdGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBz dGF0ZSwKIAkJc3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElD QVRJT05PQkpfVEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJ CQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsK KwkJCWNhc2UgUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFi bGUtPmV4Y2VwdCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1 YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1ND SEVNQToKQEAgLTI3OCw3ICsyODMsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2Vy KE5vZGUgKm5vZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250 YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICph bmNlc3RvcnMsCi0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVi dmlhcm9vdCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lk CQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTMwNSw3ICszMTAsOCBA QCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxh dGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9y ZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBH ZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJ CQkJCQkJCQkJCSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9h c19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNjUsNyArMzcxLDcg QEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVs YXRpb24sIExpc3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCQkJ Ym9vbCBwdWJ2aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQlib29sICppbnZh bGlkX2NvbHVtbl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29sICppbnZhbGlk X2NvbHVtbl9saXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJCQly ZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzg5LDcgKzM5NSw4IEBAIHB1 Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBM aXN0ICphbmNlc3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3Jl bC0+cmVsaXNwYXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFu Y2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9h c19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9y cywKKwkJCQkJCQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElz VmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBA IC01MjUsNyArNTMyLDcgQEAgSW52YWxpZGF0ZVB1YlJlbFN5bmNDYWNoZShPaWQgcHViaWQsIGJv b2wgcHViYWxsdGFibGVzKQogCQkgKiBpdHMgbGVhdmVzLgogCQkgKi8KIAkJcmVsaWRzID0gR2V0 UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCi0JCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRf QUxMKTsKKwkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9BTEwsIGZhbHNlKTsKIAkJc2NoZW1h cmVsaWRzID0gR2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCiAJCQkJCQkJ CQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIApAQCAtOTIxLDUyICs5MjgsNTAgQEAgQ3Jl 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 CWlmICh3YWxfbGV2ZWwgIT0gV0FMX0xFVkVMX0xPR0lDQUwpCkBAIC0xMDI4LDcgKzEwMzMsNyBA QCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LAogCQkJCQkJICAgQWNjZXNzU2hhcmVMb2NrKTsKIAogCQlyb290X3Jl bGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKLQkJCQkJCQkJCQkJ ICBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCwgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMsIHJvb3RfcmVsaWRzKQogCQl7CkBAIC0xMTQ4 LDcgKzExNTMsNyBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUs IEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkgKi8KIAkJaWYgKHJvb3RfcmVsaWRzID09 IE5JTCkKIAkJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwK LQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKKwkJCQkJCQkJCQkJIFBVQkxJQ0FU SU9OX1BBUlRfQUxMLCBmYWxzZSk7CiAJCWVsc2UKIAkJewogCQkJLyoKQEAgLTEyNDQsNiArMTI0 OSwyNyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5j b2xzIC0gMV0gPSBDaGFyR2V0RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09MUyk7CiAJcmVwbGFjZXNb QW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVlOwogCisJLyoKKwkgKiBM b2NrIHRoZSBwdWJsaWNhdGlvbiBzbyBub2JvZHkgZWxzZSBjYW4gZG8gYW55dGhpbmcgd2l0aCBp dC4gVGhpcworCSAqIHByZXZlbnRzIGNvbmN1cnJlbnQgcHVibGljYXRpb24gcGFyYW1ldGVyIGNo YW5nZXMsIGFkZC9kcm9wIHRhYmxlcyhzKQorCSAqIHRvIHRoZSBwdWJsaWNhdGlvbiBhbmQgYWRk L2Ryb3Agc2NoZW1hKHMpIHRvIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlMb2NrRGF0YWJhc2VP YmplY3QoUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJpZCwgMCwKKwkJCQkJICAgQWNjZXNzRXhj bHVzaXZlTG9jayk7CisKKwkvKgorCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkgdGhlIHRpbWUg d2UgYWNxdWlyZSB0aGUgbG9jayBvbiBwdWJsaWNhdGlvbiwKKwkgKiBjb25jdXJyZW50IERETCBo YXMgcmVtb3ZlZCBpdC4gV2UgY2FuIHRlc3QgdGhpcyBieSBjaGVja2luZyB0aGUKKwkgKiBleGlz dGVuY2Ugb2YgcHVibGljYXRpb24uIFdlIGdldCB0aGUgdHVwbGUgYWdhaW4gdG8gYXZvaWQgdGhl IHJpc2sgb2YKKwkgKiBhbnkgcHVibGljYXRpb24gb3B0aW9uIGdldHRpbmcgY2hhbmdlZC4KKwkg Ki8KKwl0dXAgPSBTZWFyY2hTeXNDYWNoZUNvcHkxKFBVQkxJQ0FUSU9OT0lELCBPYmplY3RJZEdl dERhdHVtKHB1YmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCWVycm1z ZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJICAgc3RtdC0+cHVi bmFtZSkpOworCiAJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLwogCWlmIChwdWJm b3JtLT5wdWJhbGx0YWJsZXMpCiAJewpAQCAtMTI3MSw3ICsxMjk3LDEwIEBAIEFsdGVyUHVibGlj YXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10 LAogCVB1YmxpY2F0aW9uRHJvcFNjaGVtYXMocHViaWQsIHNjaGVtYWlkcywgdHJ1ZSk7CiAKIAkv KiBHZXQgYWxsIHJlbGF0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uICovCi0J cmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCk7CisJaWYgKHB1YmZvcm0tPnB1YmFsbHRhYmxlcykKKwkJcmVsaWRzID0gR2V0UHVibGlj YXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgdHJ1ZSk7CisJZWxz ZQorCQlyZWxpZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05f UEFSVF9ST09ULCBmYWxzZSk7CiAKIAlmb3JlYWNoX29pZChyZWxpZCwgcmVsaWRzKQogCXsKQEAg LTEyODksNiArMTMxOCw3OSBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0 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 MTMyNyw3ICsxNDI5LDggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9u U3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAllbHNlCQkJCQkJLyogQVBfU2V0T2JqZWN0cyAq LwogCXsKIAkJTGlzdAkgICAqb2xkcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHVi aWQsCi0JCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7CisJCQkJCQkJCQkJCQkJ CVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwKKwkJCQkJCQkJCQkJCQkJZmFsc2UpOwogCQlMaXN0CSAg ICpkZWxyZWxzID0gTklMOwogCQlMaXN0Q2VsbCAgICpvbGRsYzsKIApAQCAtMTQyOCw2ICsxNTMx LDcgQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwg SGVhcFR1cGxlIHR1cCwKIAkJCQlvbGRyZWwgPSBwYWxsb2Moc2l6ZW9mKFB1YmxpY2F0aW9uUmVs SW5mbykpOwogCQkJCW9sZHJlbC0+d2hlcmVDbGF1c2UgPSBOVUxMOwogCQkJCW9sZHJlbC0+Y29s dW1ucyA9IE5JTDsKKwkJCQlvbGRyZWwtPmV4Y2VwdCA9IGZhbHNlOwogCQkJCW9sZHJlbC0+cmVs YXRpb24gPSB0YWJsZV9vcGVuKG9sZHJlbGlkLAogCQkJCQkJCQkJCQkgIFNoYXJlVXBkYXRlRXhj bHVzaXZlTG9jayk7CiAJCQkJZGVscmVscyA9IGxhcHBlbmQoZGVscmVscywgb2xkcmVsKTsKQEAg LTE0NzgsNyArMTU4Miw4IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10LAogCQlMaXN0Q2VsbCAgICpsYzsKIAkJTGlzdAkgICAqcmVsb2lkczsKIAot CQlyZWxvaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViZm9ybS0+b2lkLCBQVUJMSUNB VElPTl9QQVJUX1JPT1QpOworCQlyZWxvaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHVi Zm9ybS0+b2lkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QsCisJCQkJCQkJCQkJICBmYWxzZSk7CiAK IAkJZm9yZWFjaChsYywgcmVsb2lkcykKIAkJewpAQCAtMTYwMSw2ICsxNzA2LDIwIEBAIEFsdGVy UHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3Rt dCkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfUFVCTElDQVRJ T04sCiAJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpOwogCisJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVz KQorCXsKKwkJYm9vbAkJaXNkZWZhdWx0ID0gQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVlcyh0dXAp OworCisJCWlmICghaXNkZWZhdWx0KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShF UlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCQllcnJtc2coImFkZGluZyBB TEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGlj YXRpb24gcGFyYW1ldGVyIHZhbHVlcyIpLAorCQkJCQllcnJkZXRhaWwoIkFMTCBUQUJMRVMgZmxh ZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29j aWF0ZWQuIiksCisJCQkJCWVycmhpbnQoIlVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQg dG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uIikpOworCisJCUFsdGVyUHVibGljYXRpb25TZXRBbGxU YWJsZXMocmVsLCB0dXApOworCX0KKwogCWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1Ymxp Y2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKIAllbHNlIGlmIChzdG10LT5h Y3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKQEAgLTE4MTMsNiArMTkzMiw3IEBAIE9wZW5U YWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlwdWJfcmVsLT5yZWxhdGlvbiA9IHJlbDsKIAkJcHVi X3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVyZUNsYXVzZTsKIAkJcHViX3JlbC0+Y29sdW1ucyA9 IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJcmVscyA9IGxh cHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgbXly ZWxpZCk7CiAKQEAgLTE4ODUsNiArMjAwNSw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVz KQogCiAJCQkJLyogY2hpbGQgaW5oZXJpdHMgY29sdW1uIGxpc3QgZnJvbSBwYXJlbnQgKi8KIAkJ CQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJCQlwdWJfcmVsLT5leGNlcHQgPSB0 LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCQkJcmVsaWRz ID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGlsZHJlbGlkKTsKIApAQCAtMTk2MCw4ICsyMDgxLDYg QEAgUHVibGljYXRpb25BZGRUYWJsZXMoT2lkIHB1YmlkLCBMaXN0ICpyZWxzLCBib29sIGlmX25v dF9leGlzdHMsCiB7CiAJTGlzdENlbGwgICAqbGM7CiAKLQlBc3NlcnQoIXN0bXQgfHwgIXN0bXQt PmZvcl9hbGxfdGFibGVzKTsKLQogCWZvcmVhY2gobGMsIHJlbHMpCiAJewogCQlQdWJsaWNhdGlv blJlbEluZm8gKnB1Yl9yZWwgPSAoUHVibGljYXRpb25SZWxJbmZvICopIGxmaXJzdChsYyk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IGNiODExNTIwYzI5Li40NzkxNmVmMzJhZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTg2MjMsNyArODYyMyw3IEBAIEFURXhlY1NldEV4 cHJlc3Npb24oQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIg KmNvbE5hbWUsCiAJICogZXhwcmVzc2lvbnMuCiAJICovCiAJaWYgKGF0dGdlbmVyYXRlZCA9PSBB VFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwgJiYKLQkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMo UmVsYXRpb25HZXRSZWxpZChyZWwpKSAhPSBOSUwpCisJCUdldFJlbGF0aW9uUHVibGljYXRpb25z KFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgZmFsc2UpICE9IE5JTCkKIAkJZXJlcG9ydChFUlJPUiwK IAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1z ZygiQUxURVIgVEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGluIHRhYmxlcyB0aGF0IGFyZSBwYXJ0IG9mIGEgcHVibGlj YXRpb24iKSwKQEAgLTE4ODE4LDcgKzE4ODE4LDcgQEAgQVRQcmVwQ2hhbmdlUGVyc2lzdGVuY2Uo QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsIGJvb2wgdG9Mb2dnZWQpCiAJICog VU5MT0dHRUQsIGFzIFVOTE9HR0VEIHRhYmxlcyBjYW4ndCBiZSBwdWJsaXNoZWQuCiAJICovCiAJ aWYgKCF0b0xvZ2dlZCAmJgotCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJl bGlkKHJlbCkpICE9IE5JTCkKKwkJbGlzdF9sZW5ndGgoR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMo UmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSkpID4gMCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJ CQkgZXJybXNnKCJjYW5ub3QgY2hhbmdlIHRhYmxlIFwiJXNcIiB0byB1bmxvZ2dlZCBiZWNhdXNl IGl0IGlzIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA0YTQwMTAyOTZh Zi4uNDliYWMwMzRkMTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNDQ2LDcgKzQ0Niw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2Vz LCBOb2RlICpxdWVyeSk7CiAJCQkJdHJhbnNmb3JtX2VsZW1lbnRfbGlzdCB0cmFuc2Zvcm1fdHlw ZV9saXN0CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZh Y3V1bV9yZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAotCQkJCWRyb3Bfb3B0 aW9uX2xpc3QgcHViX29ial9saXN0CisJCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3Qg ZXhjZXB0X3B1Yl9vYmpfbGlzdAogCiAldHlwZSA8cmV0Y2xhdXNlPiByZXR1cm5pbmdfY2xhdXNl CiAldHlwZSA8bm9kZT4JcmV0dXJuaW5nX29wdGlvbgpAQCAtNTg0LDYgKzU4NCw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JdmFyX3ZhbHVlIHpvbmVfdmFsdWUKICV0 eXBlIDxyb2xlc3BlYz4gYXV0aF9pZGVudCBSb2xlU3BlYyBvcHRfZ3JhbnRlZF9ieQogJXR5cGUg PHB1YmxpY2F0aW9ub2JqZWN0c3BlYz4gUHVibGljYXRpb25PYmpTcGVjCisldHlwZSA8cHVibGlj YXRpb25vYmplY3RzcGVjPiBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKIAogJXR5cGUgPGtleXdv cmQ+IHVucmVzZXJ2ZWRfa2V5d29yZCB0eXBlX2Z1bmNfbmFtZV9rZXl3b3JkCiAldHlwZSA8a2V5 d29yZD4gY29sX25hbWVfa2V5d29yZCByZXNlcnZlZF9rZXl3b3JkCkBAIC0xMDcwMiw3ICsxMDcw Myw3IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJn dHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKICAqCiAgKiBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBb V0lUSCBvcHRpb25zXQogICoKLSAqIENSRUFURSBQVUJMSUNBVElPTiBGT1IgQUxMIFRBQkxFUyBb V0lUSCBvcHRpb25zXQorICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBBTEwgVEFCTEVTIFtFWENF UFQgW1RBQkxFXSB0YWJsZSBbLCAuLi5dXSBbV0lUSCBvcHRpb25zXQogICoKICAqIENSRUFURSBQ VUJMSUNBVElPTiBGT1IgcHViX29iaiBbLCAuLi5dIFtXSVRIIG9wdGlvbnNdCiAgKgpAQCAtMTA3 MjIsMTIgKzEwNzIzLDEzIEBAIENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+b3B0aW9u cyA9ICQ0OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgUFVCTElD QVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBvcHRfZGVmaW5pdGlvbgorCQkJfCBDUkVBVEUgUFVC TElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxFUyBleGNlcHRfcHViX29ial9saXN0IG9wdF9kZWZp bml0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShD cmVhdGVQdWJsaWNhdGlvblN0bXQpOwogCiAJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKLQkJCQkJbi0+ b3B0aW9ucyA9ICQ3OworCQkJCQluLT5vcHRpb25zID0gJDg7CisJCQkJCW4tPnB1Ym9iamVjdHMg PSAoTGlzdCAqKSQ3OwogCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CiAJCQkJCSQkID0g KE5vZGUgKikgbjsKIAkJCQl9CkBAIC0xMDc2NSw2ICsxMDc2Nyw3IEBAIFB1YmxpY2F0aW9uT2Jq U3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQyOwogCQkJCQkkJC0+cHVidGFi bGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0Owor CQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJCQl9CiAJCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBD b2xJZAogCQkJCXsKQEAgLTEwODQwLDYgKzEwODQzLDI1IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGlj YXRpb25PYmpTcGVjCiAJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAk7CiAKK0V4Y2Vw dFB1YmxpY2F0aW9uT2JqU3BlYzoKKwkJCSByZWxhdGlvbl9leHByCisJCQkJeworCQkJCQkkJCA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVC TElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQ dWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOworCQkJ CQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwor CQkJCX0KKwk7CisKK2V4Y2VwdF9wdWJfb2JqX2xpc3Q6CUVYQ0VQVCBvcHRfdGFibGUgRXhjZXB0 UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQzKTsgfQorCQkJfCBl eGNlcHRfcHViX29ial9saXN0ICcsJyBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKKwkJCQkJeyAk JCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCQkJfCAgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTlVM TDsgfQorCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgUFVCTElDQVRJ T04gbmFtZSBTRVQgKCBvcHRpb25zICkKQEAgLTEwODUyLDYgKzEwODc0LDggQEAgcHViX29ial9s aXN0OglQdWJsaWNhdGlvbk9ialNwZWMKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJF U0VUCiAgKgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBBREQgQUxMIFRBQkxFUyBFWENFUFQg W1RBQkxFXSB0YWJsZV9uYW1lIFssIC4uLl0KKyAqCiAgKiBwdWJfb2JqIGlzIG9uZSBvZjoKICAq CiAgKgkJVEFCTEUgdGFibGVfbmFtZSBbLCAuLi5dCkBAIC0xMDg3OCw2ICsxMDkwMiwxNSBAQCBB bHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+YWN0aW9uID0gQVBfQWRkT2JqZWN0czsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBB RERfUCBBTEwgVEFCTEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3QKKwkJCQl7CisJCQkJCUFsdGVyUHVi bGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQpOworCQkJCQlu LT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPnB1Ym9iamVjdHMgPSAkNzsKKwkJCQkJbi0+Zm9yX2Fs bF90YWJsZXMgPSB0cnVlOworCQkJCQluLT5hY3Rpb24gPSBBUF9BZGRPYmplY3RzOworCQkJCQkk JCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgU0VUIHB1 Yl9vYmpfbGlzdAogCQkJCXsKIAkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRw dXQvcGdvdXRwdXQuYwppbmRleCA4MDU0MGMwMTdiZC4uYjlkNjc2ZDFmMTggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMjA2NSw3ICsyMDY1LDgg QEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRp b24pCiAJaWYgKCFlbnRyeS0+cmVwbGljYXRlX3ZhbGlkKQogCXsKIAkJT2lkCQkJc2NoZW1hSWQg PSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7Ci0JCUxpc3QJICAgKnB1YmlkcyA9IEdldFJlbGF0 aW9uUHVibGljYXRpb25zKHJlbGlkKTsKKwkJTGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25Q dWJsaWNhdGlvbnMocmVsaWQsIGZhbHNlKTsKKwkJTGlzdAkgICAqZXhjZXB0VGFibGVQdWJpZHMg PSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgdHJ1ZSk7CiAKIAkJLyoKIAkJICogV2Ug ZG9uJ3QgYWNxdWlyZSBhIGxvY2sgb24gdGhlIG5hbWVzcGFjZSBzeXN0ZW0gdGFibGUgYXMgd2Ug YnVpbGQKQEAgLTIxNzYsMjIgKzIxNzcsNiBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXRE YXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJCU9pZAkJCXB1Yl9yZWxpZCA9IHJlbGlk OwogCQkJaW50CQkJYW5jZXN0b3JfbGV2ZWwgPSAwOwogCi0JCQkvKgotCQkJICogSWYgdGhpcyBp cyBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLCBwaWNrIHRoZSBwYXJ0aXRpb24KLQkJCSAq IHJvb3QgYW5kIHNldCB0aGUgYW5jZXN0b3IgbGV2ZWwgYWNjb3JkaW5nbHkuCi0JCQkgKi8KLQkJ CWlmIChwdWItPmFsbHRhYmxlcykKLQkJCXsKLQkJCQlwdWJsaXNoID0gdHJ1ZTsKLQkJCQlpZiAo cHViLT5wdWJ2aWFyb290ICYmIGFtX3BhcnRpdGlvbikKLQkJCQl7Ci0JCQkJCUxpc3QJICAgKmFu Y2VzdG9ycyA9IGdldF9wYXJ0aXRpb25fYW5jZXN0b3JzKHJlbGlkKTsKLQotCQkJCQlwdWJfcmVs aWQgPSBsbGFzdF9vaWQoYW5jZXN0b3JzKTsKLQkJCQkJYW5jZXN0b3JfbGV2ZWwgPSBsaXN0X2xl bmd0aChhbmNlc3RvcnMpOwotCQkJCX0KLQkJCX0KLQogCQkJaWYgKCFwdWJsaXNoKQogCQkJewog CQkJCWJvb2wJCWFuY2VzdG9yX3B1Ymxpc2hlZCA9IGZhbHNlOwpAQCAtMjIxMCw3ICsyMTk1LDgg QEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRp b24pCiAKIAkJCQkJYW5jZXN0b3IgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1 Yi0+b2lkLAogCQkJCQkJCQkJCQkJCQkJICAgYW5jZXN0b3JzLAotCQkJCQkJCQkJCQkJCQkJICAg JmxldmVsKTsKKwkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCwKKwkJCQkJCQkJCQkJCQkJCSAgIHB1 Yi0+YWxsdGFibGVzKTsKIAogCQkJCQlpZiAoYW5jZXN0b3IgIT0gSW52YWxpZE9pZCkKIAkJCQkJ ewpAQCAtMjIyNSw2ICsyMjExLDggQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAq ZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJCQlpZiAobGlzdF9tZW1iZXJfb2lkKHB1Ymlk cywgcHViLT5vaWQpIHx8CiAJCQkJCWxpc3RfbWVtYmVyX29pZChzY2hlbWFQdWJpZHMsIHB1Yi0+ b2lkKSB8fAorCQkJCQkocHViLT5hbGx0YWJsZXMgJiYKKwkJCQkJICFsaXN0X21lbWJlcl9vaWQo ZXhjZXB0VGFibGVQdWJpZHMsIHB1Yi0+b2lkKSkgfHwKIAkJCQkJYW5jZXN0b3JfcHVibGlzaGVk KQogCQkJCQlwdWJsaXNoID0gdHJ1ZTsKIAkJCX0KQEAgLTIzMDMsNiArMjI5MSw3IEBAIGdldF9y ZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJ CWxpc3RfZnJlZShwdWJpZHMpOwogCQlsaXN0X2ZyZWUoc2NoZW1hUHViaWRzKTsKKwkJbGlzdF9m cmVlKGV4Y2VwdFRhYmxlUHViaWRzKTsKIAkJbGlzdF9mcmVlKHJlbF9wdWJsaWNhdGlvbnMpOwog CiAJCWVudHJ5LT5yZXBsaWNhdGVfdmFsaWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNh Y2hlLmMKaW5kZXggNTU5YmE5Y2RiMmMuLjVkNTVmMWY0ZWNlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3JlbGNhY2hlLmMKQEAgLTU3OTQsNiArNTc5NCw4IEBAIHZvaWQKIFJlbGF0aW9uQnVpbGRQdWJs aWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykK IHsKIAlMaXN0CSAgICpwdWJvaWRzOworCUxpc3QJICAgKmFsbHRhYmxlc3B1Ym9pZHM7CisJTGlz dAkgICAqZXhjZXB0cHVib2lkcyA9IE5JTDsKIAlMaXN0Q2VsbCAgICpsYzsKIAlNZW1vcnlDb250 ZXh0IG9sZGN4dDsKIAlPaWQJCQlzY2hlbWFpZDsKQEAgLTU4MzEsOSArNTgzMywxMCBAQCBSZWxh dGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRl c2MgKnB1YmRlc2MpCiAJcHViZGVzYy0+Z2VuY29sc192YWxpZF9mb3JfZGVsZXRlID0gdHJ1ZTsK IAogCS8qIEZldGNoIHRoZSBwdWJsaWNhdGlvbiBtZW1iZXJzaGlwIGluZm8uICovCi0JcHVib2lk cyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkKTsKKwlwdWJvaWRzID0gR2V0UmVsYXRp b25QdWJsaWNhdGlvbnMocmVsaWQsIGZhbHNlKTsKIAlzY2hlbWFpZCA9IFJlbGF0aW9uR2V0TmFt ZXNwYWNlKHJlbGF0aW9uKTsKIAlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJv aWRzLCBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwlleGNlcHRwdWJvaWRzID0g R2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIHRydWUpOwogCiAJaWYgKHJlbGF0aW9uLT5y ZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKQEAgLTU4NDUsMTQgKzU4NDgsMTkgQEAgUmVsYXRp b25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNj ICpwdWJkZXNjKQogCQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJl bGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1 YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1l c3BhY2UoYW5jZXN0b3IpOwogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVi b2lkcywKIAkJCQkJCQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJ ZXhjZXB0cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJ CQkJCQkJCQkJCSAgIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJ CX0KIAl9Ci0JcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxs VGFibGVzUHVibGljYXRpb25zKCkpOwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxl c1B1YmxpY2F0aW9ucygpOworCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9p ZHMsCisJCQkJCQkJCQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJ CQkJCQkJCQkJCQkgZXhjZXB0cHVib2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewog CQlPaWQJCQlwdWJpZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTg4Myw3ICs1ODkxLDcgQEAgUmVs YXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25E ZXNjICpwdWJkZXNjKQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZv cm0tPnB1YnVwZGF0ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFp bnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJ ICAgcHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9v dCwgcHViZm9ybS0+cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0 ZSkKIAkJCQlwdWJkZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBAIC01OTAxLDYg KzU5MDksNyBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9u LCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCQlwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1 bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCiAJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlh cm9vdCwKIAkJCQkJCQkJCQlwdWJmb3JtLT5wdWJnZW5jb2xzLAorCQkJCQkJCQkJCXB1YmZvcm0t PnB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQkmaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQkJ CQkmaW52YWxpZF9nZW5fY29sKSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggZjNhMzUzYTYxYTUuLjZm MDExMDVkZjBkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTE4Niw2ICsxODYsOCBAQCBzdGF0aWMgU2ltcGxl T2lkTGlzdCBleHRlbnNpb25faW5jbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNp bXBsZVN0cmluZ0xpc3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0dGVybnMgPSB7TlVMTCwgTlVMTH07 CiBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRlbnNpb25fZXhjbHVkZV9vaWRzID0ge05VTEwsIE5V TEx9OwogCitzdGF0aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRpbmZvID0ge05VTEwsIE5VTEx9Owor CiBzdGF0aWMgY29uc3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJZCA9IHswLCAwfTsKIAogLyogb3Zl cnJpZGUgZm9yIHN0YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0cyBzZXR0aW5nICovCkBAIC00NTcz LDggKzQ1NzUsMzQgQEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1Ymxp Y2F0aW9uSW5mbyAqcHViaW5mbykKIAkJCQkJICBxcHVibmFtZSk7CiAKIAlpZiAocHViaW5mby0+ cHViYWxsdGFibGVzKQorCXsKKwkJU2ltcGxlUHRyTGlzdENlbGwgKmNlbGw7CisKIAkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCQkvKiBJbmNsdWRl IGV4Y2VwdGlvbiB0YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICov CisJCWZvciAoY2VsbCA9IGV4Y2VwdGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQp CisJCXsKKwkJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJ bmZvICopIGNlbGwtPnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1Ymlu Zm8gPT0gcHVicmluZm8tPnB1YmxpY2F0aW9uKQorCQkJeworCQkJCXRiaW5mbyA9IHB1YnJpbmZv LT5wdWJ0YWJsZTsKKworCQkJCWlmIChmaXJzdCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCBUQUJMRSIpOworCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJ CX0KKwkJCQllbHNlCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCIpOworCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OTFkgJXMiLCBmbXRRdWFsaWZpZWREdW1wYWJs ZSh0YmluZm8pKTsKKwkJCX0KKwkJfQorCX0KKworCWZpcnN0ID0gdHJ1ZTsKIAlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIiBXSVRIIChwdWJsaXNoID0gJyIpOwogCWlmIChwdWJpbmZvLT5w dWJpbnNlcnQpCiAJewpAQCAtNDc0MCw2ICs0NzY4LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMo QXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlpbnQJ CQlpX3BycmVsaWQ7CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9wcmF0dHJzOworCWlu dAkJCWlfcHJleGNlcHQ7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJCW50dXBzOwpAQCAtNDc1MSw4 ICs0NzgwLDE2IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5m byB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAKIAkvKiBDb2xsZWN0IGFsbCBwdWJsaWNhdGlv biBtZW1iZXJzaGlwIGluZm8uICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAw KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJTRUxFQ1QgdGFi bGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCWlmIChmb3V0LT5yZW1vdGVW ZXJzaW9uID49IDE5MDAwMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHByZXhj ZXB0LFxuIik7CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIGZhbHNl IEFTIHByZXhjZXB0LFxuIik7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJ CQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCwgIgogCQkJCQkJCSAi cGdfY2F0YWxvZy5wZ19nZXRfZXhwcihwcnF1YWwsIHBycmVsaWQpIEFTIHBycmVscXVhbCwgIgog CQkJCQkJCSAiKENBU0VcbiIKIAkJCQkJCQkgIiAgV0hFTiBwci5wcmF0dHJzIElTIE5PVCBOVUxM IFRIRU5cbiIKQEAgLTQ3NjMsNiArNDgwMCw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hp dmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQkJCQkJICIg ICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10p XG4iCiAJCQkJCQkJICIgIEVMU0UgTlVMTCBFTkQpIHByYXR0cnMgIgogCQkJCQkJCSAiRlJPTSBw Z19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciIpOworCX0KIAllbHNlCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHVi aWQsIHBycmVsaWQsICIKQEAgLTQ3NzgsNiArNDgxNiw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaV9w cnJlbGlkID0gUFFmbnVtYmVyKHJlcywgInBycmVsaWQiKTsKIAlpX3BycmVscXVhbCA9IFBRZm51 bWJlcihyZXMsICJwcnJlbHF1YWwiKTsKIAlpX3ByYXR0cnMgPSBQUWZudW1iZXIocmVzLCAicHJh dHRycyIpOworCWlfcHJleGNlcHQgPSBQUWZudW1iZXIocmVzLCAicHJleGNlcHQiKTsKIAogCS8q IHRoaXMgYWxsb2NhdGlvbiBtYXkgYmUgbW9yZSB0aGFuIHdlIG5lZWQgKi8KIAlwdWJyaW5mbyA9 IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKQEAgLTQ3ODks NiArNDgyOCw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5m byB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCU9pZAkJCXBycmVsaWQgPSBhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGksIGlfcHJyZWxpZCkpOwogCQlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm87 CiAJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKwkJY2hhcgkgICAqcHJleGNlcHQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfcHJleGNlcHQpKTsKIAogCQkvKgogCQkgKiBJZ25vcmUgYW55 IGVudHJpZXMgZm9yIHdoaWNoIHdlIGFyZW4ndCBpbnRlcmVzdGVkIGluIGVpdGhlciB0aGUKQEAg LTQ4MDIsNyArNDg0MiwxMSBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJY29udGludWU7CiAKIAkJLyog T0ssIG1ha2UgYSBEdW1wYWJsZU9iamVjdCBmb3IgdGhpcyByZWxhdGlvbnNoaXAgKi8KLQkJcHVi cmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOworCQlpZiAoc3RyY21w KHByZXhjZXB0LCAiZiIpID09IDApCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19Q VUJMSUNBVElPTl9SRUw7CisJCWVsc2UKKwkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERP X1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw7CisKIAkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJs ZW9pZCA9CiAJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKIAkJcHVi cmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lk KSk7CkBAIC00ODQzLDYgKzQ4ODcsOSBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpm b3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkvKiBEZWNpZGUgd2hl dGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVQdWJsaWNhdGlvbk9i amVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBmb3V0KTsKIAorCQlpZiAoc3RyY21wKHByZXhjZXB0 LCAidCIpID09IDApCisJCQlzaW1wbGVfcHRyX2xpc3RfYXBwZW5kKCZleGNlcHRpbmZvLCAmcHVi cmluZm9bal0pOworCiAJCWorKzsKIAl9CiAKQEAgLTExNzA1LDYgKzExNzUyLDkgQEAgZHVtcER1 bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQogCQljYXNl IERPX1BVQkxJQ0FUSU9OOgogCQkJZHVtcFB1YmxpY2F0aW9uKGZvdXQsIChjb25zdCBQdWJsaWNh dGlvbkluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENF UFRfUkVMOgorCQkJLyogd2lsbCBiZSBkdW1wZWQgaW4gZHVtcFB1YmxpY2F0aW9uICovCisJCQli cmVhazsKIAkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6CiAJCQlkdW1wUHVibGljYXRpb25UYWJs ZShmb3V0LCAoY29uc3QgUHVibGljYXRpb25SZWxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CkBA IC0yMDA3MSw2ICsyMDEyMSw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2Jq ZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19ERUZBVUxUX0FDTDoKIAkJCWNh c2UgRE9fUE9MSUNZOgogCQkJY2FzZSBET19QVUJMSUNBVElPTjoKKwkJCWNhc2UgRE9fUFVCTElD QVRJT05fRVhDRVBUX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJY2FzZSBE T19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUE6CiAJCQljYXNlIERPX1NVQlNDUklQVElPTjoK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oCmluZGV4IGRkZTg1ZWQxNTZjLi5jMTc4ZWRiNGUwNSAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBA IC04MSw2ICs4MSw3IEBAIHR5cGVkZWYgZW51bQogCURPX1JFRlJFU0hfTUFUVklFVywKIAlET19Q T0xJQ1ksCiAJRE9fUFVCTElDQVRJT04sCisJRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlE T19QVUJMSUNBVElPTl9SRUwsCiAJRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCURP X1JFTF9TVEFUUywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwppbmRleCBhMDJkYTNlOTY1Mi4uNDBmZGZj YjEyMWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAgLTkyLDYgKzkyLDcgQEAgZW51bSBkYk9i amVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19GS19DT05TVFJBSU5ULAogCVBSSU9fUE9MSUNZLAog CVBSSU9fUFVCTElDQVRJT04sCisJUFJJT19QVUJMSUNBVElPTl9FWENFUFRfUkVMLAogCVBSSU9f UFVCTElDQVRJT05fUkVMLAogCVBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVBS SU9fU1VCU0NSSVBUSU9OLApAQCAtMTQ3LDYgKzE0OCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGJP YmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX1JFRlJFU0hfTUFUVklFV10gPSBQUklPX1JFRlJF U0hfTUFUVklFVywKIAlbRE9fUE9MSUNZXSA9IFBSSU9fUE9MSUNZLAogCVtET19QVUJMSUNBVElP Tl0gPSBQUklPX1BVQkxJQ0FUSU9OLAorCVtET19QVUJMSUNBVElPTl9FWENFUFRfUkVMXSA9IFBS SU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlbRE9fUFVCTElDQVRJT05fUkVMXSA9IFBSSU9f UFVCTElDQVRJT05fUkVMLAogCVtET19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUFdID0gUFJJ T19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEsCiAJW0RPX1JFTF9TVEFUU10gPSBQUklPX1NU QVRJU1RJQ1NfREFUQV9EQVRBLApAQCAtNDI5LDYgKzQzMSwxNyBAQCBET1R5cGVOYW1lQ29tcGFy ZShjb25zdCB2b2lkICpwMSwgY29uc3Qgdm9pZCAqcDIpCiAJCWlmIChjbXB2YWwgIT0gMCkKIAkJ CXJldHVybiBjbXB2YWw7CiAJfQorCWVsc2UgaWYgKG9iajEtPm9ialR5cGUgPT0gRE9fUFVCTElD QVRJT05fRVhDRVBUX1JFTCkKKwl7CisJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHJvYmoxID0gKihQ dWJsaWNhdGlvblJlbEluZm8gKmNvbnN0ICopIHAxOworCQlQdWJsaWNhdGlvblJlbEluZm8gKnBy b2JqMiA9ICooUHVibGljYXRpb25SZWxJbmZvICpjb25zdCAqKSBwMjsKKworCQkvKiBTb3J0IGJ5 IHB1YmxpY2F0aW9uIG5hbWUsIHNpbmNlIChuYW1lc3BhY2UsIG5hbWUpIG1hdGNoIHRoZSByZWwg Ki8KKwkJY21wdmFsID0gc3RyY21wKHByb2JqMS0+cHVibGljYXRpb24tPmRvYmoubmFtZSwKKwkJ CQkJCXByb2JqMi0+cHVibGljYXRpb24tPmRvYmoubmFtZSk7CisJCWlmIChjbXB2YWwgIT0gMCkK KwkJCXJldHVybiBjbXB2YWw7CisJfQogCWVsc2UgaWYgKG9iajEtPm9ialR5cGUgPT0gRE9fUFVC TElDQVRJT05fVEFCTEVfSU5fU0NIRU1BKQogCXsKIAkJUHVibGljYXRpb25TY2hlbWFJbmZvICpw c29iajEgPSAqKFB1YmxpY2F0aW9uU2NoZW1hSW5mbyAqY29uc3QgKikgcDE7CkBAIC0xNzAxLDYg KzE3MTQsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBj aGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBVQkxJQ0FUSU9OIChJRCAlZCBPSUQgJXUp IiwKIAkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNh c2UgRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwK KwkJCQkJICJQVUJMSUNBVElPTiBFWENFUFQgVEFCTEUgKElEICVkIE9JRCAldSkiLAorCQkJCQkg b2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAkJY2FzZSBET19QVUJM SUNBVElPTl9SRUw6CiAJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCiAJCQkJCSAiUFVCTElDQVRJ T04gVEFCTEUgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBh ODZiMzg0NjZkZS4uYmE5ZjBmNjhlMDAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC0z MzIzLDYgKzMzMjMsMjYgQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBQVUJMSUNBVElPTiBw dWI2JyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdD UkVBVEUgUFVCTElDQVRJT04gcHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgZHVtcF90ZXN0LnRl c3RfdGFibGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1 YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUg V0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJ CQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9 LAorCX0sCisKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcnID0+IHsKKwkJY3JlYXRlX29yZGVy ID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI3IEZP UiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBkdW1wX3Rlc3QudGVzdF90YWJsZSwgZHVtcF90ZXN0 LnRlc3Rfc2Vjb25kX3RhYmxlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJM SUNBVElPTiBwdWI3IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIGR1bXBfdGVzdC50 ZXN0X3RhYmxlLCBPTkxZIGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSBXSVRIIChwdWJsaXNo ID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJbGlr ZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKwogCSdD UkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQlj cmVhdGVfc3FsID0+ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggN2EwNmFm NDg4NDIuLmYzZmU0YWIzMGY4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwor KysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMzAzOSwxNyArMzAzOSwzNCBAQCBkZXNj cmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkgICIg ICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJz W3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKIAkJCQkJCQkJICAi RlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiICAgICBKT0lO IHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxu IgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0g cHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgorCQkJ CQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQg PSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMg T04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAn JXMnXG4iLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOworCisJCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTkwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFORCBOT1Qg cHIucHJleGNlcHRcbiIpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCQkJ ICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKLQkJCQkJCQkJICAiICAg ICAsIE5VTExcbiIKLQkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5V TExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9n LnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5E IHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKLQkJCQkJCQkJ ICAiT1JERVIgQlkgMTsiLAotCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7CisJCQkJCQkJ CSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1 Ymxpc2hhYmxlKCclcycpXG4iLAorCQkJCQkJCQkgIG9pZCk7CisKKwkJCQlpZiAocHNldC5zdmVy c2lvbiA+PSAxOTAwMDApCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCQkg ICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIKKwkJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKKwkJ CQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgorCQkJ CQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKKwkJCQkJCQkJCSAgIgkJ T04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJlbGlk ID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIiwKKwkJCQkJCQkJCSAgb2lkKTsKKwor CQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxOyIpOwogCQkJfQogCQkJ ZWxzZQogCQkJewpAQCAtNjY5Myw4ICs2NzEwLDEyIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNv bnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCQkJICAiICAgICBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0 aW9uX3JlbCBwclxuIgogCQkJCQkJCSAgIldIRVJFIGMucmVsbmFtZXNwYWNlID0gbi5vaWRcbiIK IAkJCQkJCQkgICIgIEFORCBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJCQkJCQkgICIgIEFORCBw ci5wcnB1YmlkID0gJyVzJ1xuIgotCQkJCQkJCSAgIk9SREVSIEJZIDEsMiIsIHB1YmlkKTsKKwkJ CQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xuIiwgcHViaWQpOworCisJCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgQU5E IE5PVCBwci5wcmV4Y2VwdFxuIik7CisKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICJPUkRF UiBCWSAxLDIiKTsKIAkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygi VGFibGVzOiIpLCBmYWxzZSwgJmNvbnQpKQogCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCkBAIC02 NzEyLDYgKzY3MzMsMjMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVy bikKIAkJCQkJZ290byBlcnJvcl9yZXR1cm47CiAJCQl9CiAJCX0KKwkJZWxzZQorCQl7CisJCQlp ZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQl7CisJCQkJLyogR2V0IHRoZSBleGNsdWRl ZCB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24gKi8KKwkJCQlwcmludGZQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0KGMucmVsbmFtZXNwYWNlOjpy ZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFs b2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJs aWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJF IHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIiAgQU5EIHByLnByZXhjZXB0XG4iCisJ CQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJaWYgKCFhZGRGb290ZXJUb1B1Ymxp Y2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIpLAorCQkJCQkJCQkJCQkJdHJ1ZSwg JmNvbnQpKQorCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCX0KKwkJfQogCiAJCXByaW50VGFi bGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKIAkJcHJpbnRU YWJsZUNsZWFudXAoJmNvbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDhkZTdkMTAzODQ2 Li5iMzYyMDYwNmQ5NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI2OSwxMSArMjI2OSwx NiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lU SCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIp OwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikpCi0JCUNPTVBMRVRFX1dJ VEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRB QkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi QUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIikp CisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikpCiAJCUNP TVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7Ci0JZWxz ZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8 U0VUIiwgIlRBQkxFIikgJiYKLQkJCSBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwllbHNlIGlm IChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIiwgIkFMTCIs ICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYgZW5k c193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5 X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBV QkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAi VEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hF TUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAogCS8qCkBAIC0zNTg4LDYgKzM1 OTMsMTAgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIikp CiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiKSkKKwkJQ09N UExFVEVfV0lUSCgiRVhDRVBUIFRBQkxFIiwgIldJVEggKCIpOworCWVsc2UgaWYgKE1hdGNoZXMo IkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMi LCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hl cygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxF UyIsICJFWENFUFQiLCAiVEFCTEUiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0aChwcmV2X3dkLCAn LCcpKQogCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVB VEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiKSkKIAkJQ09NUExF VEVfV0lUSCgiSU4gU0NIRU1BIik7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5k ZXggNmUwNzQxOTBmZDIuLjAyMjQ2N2ZiNDVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oCkBAIC0xMzksMTEgKzEzOSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblJl bEluZm8KIAlSZWxhdGlvbglyZWxhdGlvbjsKIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0 CSAgICpjb2x1bW5zOworCWJvb2wJCWV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiBl eHRlcm4gUHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVi bGljYXRpb24gKkdldFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wg bWlzc2luZ19vayk7Ci1leHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJl bGlkKTsKK2V4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJv b2wgZXhjZXB0X2ZsYWcpOwogCiAvKi0tLS0tLS0tLQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBw dWJfcGFydG9wdCBwYXJhbWV0ZXIgb2YgR2V0UHVibGljYXRpb25SZWxhdGlvbnMoKSwKQEAgLTE2 MSw5ICsxNjIsMTAgQEAgdHlwZWRlZiBlbnVtIFB1YmxpY2F0aW9uUGFydE9wdAogCVBVQkxJQ0FU SU9OX1BBUlRfQUxMLAogfSBQdWJsaWNhdGlvblBhcnRPcHQ7CiAKLWV4dGVybiBMaXN0ICpHZXRQ dWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFy dG9wdCk7CitleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQ dWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCisJCQkJCQkJCQkgYm9vbCBleGNlcHRfZmxh Zyk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpOwotZXh0ZXJu IExpc3QgKkdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCk7 CitleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1Ymlk LCBib29sIHB1YnZpYXJvb3QpOwogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uU2NoZW1hcyhP aWQgcHViaWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1h aWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBzY2hl bWFpZCwKQEAgLTE3NCw3ICsxNzYsNyBAQCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0aW9uT3B0 aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwKIAkJCQkJCQkJCQkJUHVibGljYXRpb25QYXJ0T3B0 IHB1Yl9wYXJ0b3B0LAogCQkJCQkJCQkJCQlPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlHZXRUb3BN b3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKLQkJ CQkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCk7CisJCQkJCQkJCQkJCWludCAqYW5jZXN0b3Jf bGV2ZWwsIGJvb2wgcHViYWxsdGFibGVzKTsKIAogZXh0ZXJuIGJvb2wgaXNfcHVibGlzaGFibGVf cmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJsaWNhdGlv bihPaWQgcHViaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbl9yZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKaW5k ZXggOTJjYzM2ZGZkZjYuLmU3ZDdmM2JhODVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb25fcmVsLmgKQEAgLTMxLDYgKzMxLDcgQEAgQ0FUQUxPRyhwZ19wdWJsaWNhdGlvbl9y ZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8qIG9pZCAq LwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9pZCBvZiB0 aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xhc3MpOwkv KiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RFRkFVTFQoZik7 CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8q IHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1 YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNt ZHMuaAppbmRleCBmOTBjZjFlZjg5Ni4uMGFkNWQyODc1NGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3B1YmxpY2F0aW9uY21kcy5oCkBAIC0zMiwxMCArMzIsMTEgQEAgZXh0ZXJuIE9iamVjdEFkZHJl c3MgQWx0ZXJQdWJsaWNhdGlvbk93bmVyKGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuZXdPd25lcklk KTsKIGV4dGVybiB2b2lkIEFsdGVyUHVibGljYXRpb25Pd25lcl9vaWQoT2lkIHB1YmlkLCBPaWQg bmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKExpc3Qg KnJlbGlkcyk7CiBleHRlcm4gYm9vbCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lk IHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkgICBMaXN0ICphbmNlc3RvcnMs IGJvb2wgcHVidmlhcm9vdCk7CisJCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1 YnZpYXJvb3QsCisJCQkJCQkJCQkJICAgYm9vbCBwdWJhbGx0YWJsZXMpOwogZXh0ZXJuIGJvb2wg cHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24s CiAJCQkJCQkJCQkJTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3QsCi0JCQkJCQkJCQkJ Y2hhciBwdWJnZW5jb2xzX3R5cGUsCisJCQkJCQkJCQkJY2hhciBwdWJnZW5jb2xzX3R5cGUsIGJv b2wgcHViYWxsdGFibGVzLAogCQkJCQkJCQkJCWJvb2wgKmludmFsaWRfY29sdW1uX2xpc3QsCiAJ CQkJCQkJCQkJYm9vbCAqaW52YWxpZF9nZW5fY29sKTsKIGV4dGVybiB2b2lkIEludmFsaWRhdGVQ dWJSZWxTeW5jQ2FjaGUoT2lkIHB1YmlkLCBib29sIHB1YmFsbHRhYmxlcyk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKaW5kZXggYWYyMjBiMDI3ODguLmYyY2M5Nzg0NDU2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC00MjY4LDYgKzQyNjgsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRh YmxlCiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBiZSBwdWJsaXNoZWQg Ki8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KIAlMaXN0CSAg ICpjb2x1bW5zOwkJLyogTGlzdCBvZiBjb2x1bW5zIGluIGEgcHVibGljYXRpb24gdGFibGUgKi8K Kwlib29sCQlleGNlcHQ7CQkJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KIH0gUHVibGljYXRp b25UYWJsZTsKIAogLyoKQEAgLTQyNzYsNiArNDI3Nyw3IEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uVGFibGUKIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvbk9ialNwZWNUeXBlCiB7CiAJUFVC TElDQVRJT05PQkpfVEFCTEUsCQkvKiBBIHRhYmxlICovCisJUFVCTElDQVRJT05PQkpfRVhDRVBU X1RBQkxFLAkvKiBBIHRhYmxlIHRvIGJlIGV4Y2x1ZGVkICovCiAJUFVCTElDQVRJT05PQkpfVEFC TEVTX0lOX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBzY2hlbWEgKi8KIAlQVUJMSUNBVElPTk9C Sl9UQUJMRVNfSU5fQ1VSX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBmaXJzdCBlbGVtZW50IG9m CiAJCQkJCQkJCQkJCSAqIHNlYXJjaF9wYXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CmluZGV4IDc0MDA5YTkyZjNmLi40OWFmZWI3NzYyMiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIxMywxMyArMjEzLDM3IEBA IE5vdC1udWxsIGNvbnN0cmFpbnRzOgogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKICgxIHJvdykKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJS T1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxl IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDEsIHRlc3RwdWJfdGJsMjsK Ky0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIHRlc3Rw dWJfdGJsMTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CitcZFJwKyB0ZXN0cHViX2ZvcmFs bHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAi cHVibGljLnRlc3RwdWJfdGJsMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMiIKKworXGRScCsg dGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEK KyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitFeGNlcHQg dGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJf dGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9y dGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOworRFJPUCBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1 Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVz X2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBDUkVBVEUg VEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAo YiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1 Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3Rw dWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKIFJFU0VUIGNsaWVudF9t aW5fbWVzc2FnZXM7CiBcZFJwKyB0ZXN0cHViMwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCkBAIC0yMzgsOCArMjYyLDI1 IEBAIFRhYmxlczoKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKIAorXGRScCsg dGVzdHB1YjUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViNQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQg Y29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAg ICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCisg ICAgInB1YmxpYy50ZXN0cHViX3RibDNhIgorCitcZFJwKyB0ZXN0cHViNgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI2Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRh YmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3Ri bDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsK K0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHViNSwgdGVzdHB1YjY7 CiAtLSBUZXN0cyBmb3IgcGFydGl0aW9uZWQgdGFibGVzCiBTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JwYXJ0ZWQ7CkBAIC0x OTI2LDkgKzE5NjcsMTUgQEAgRFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9yIEFMVEVS IFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBU QUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAo YSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21l c3NhZ2VzOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMnIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyBy ZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFt ZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBh bmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZl cmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9yZXNldApAQCAtMTk0NSw3ICsxOTkyLDI0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAg ICAgICAgIHwgZgogKDEgcm93KQogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5n IHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg QWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdl bmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg dCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5v bmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHViX3NjaDEudGJsMSIK KyAgICAicHViX3NjaDEudGJsMiIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gx LnRibDE7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQ VCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJl cyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2 YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8g dGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBV QkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZlcmlmeSB0 aGF0IGFzc29jaWF0ZWQgdGFibGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFm dGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTk2NCw2ICsy MDI4LDExIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cp CiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEg cHVibGljOworLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMgSU4g U0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQg QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFM TCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNh dGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5v dCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElO VDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0 aW9uCiAtLSBWZXJpZnkgdGhhdCBhc3NvY2lhdGVkIHNjaGVtYXMgYXJlIHJlb212ZWQgZnJvbSB0 aGUgcHVibGljYXRpb24gYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CkBAIC0xOTgyLDYgKzIwNTEsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsKICgxIHJvdykKIAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQg KFBVQkxJU0ggPSAnJyk7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlICdQVUJM SVNIJyBwYXJhbWV0ZXIgZG9lcyBub3QgaGF2ZSBkZWZhdWx0CistLSB2YWx1ZQorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3Nj aDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0 aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6 ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFz IHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4g UkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcg cGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAt MTk5OSw2ICsyMDc0LDEyIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNI X1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxF IHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0t IGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQg QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFM TCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNh dGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5v dCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElO VDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0 aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRl ciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTIwMzcsOSAr MjExOCwxMyBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIy OwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3Qg YmUgc3VwZXJ1c2VyCiBFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0 aW9uCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIG11 c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBBTEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgogU0VU IFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50 YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwog UkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCmluZGV4IDEzNjZiMTFiYmEwLi42MjQwY2Q5N2NlMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbApAQCAtMTA1LDIwICsxMDUsMzMgQEAgU0VMRUNUIHB1Ym5hbWUsIHB1YmFs bHRhYmxlcyBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9mb3Jh bGwKIFxkKyB0ZXN0cHViX3RibDIKIFxkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCiAKK1NFVCBj bGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVz dHB1Yl90YmwxLCB0ZXN0cHViX3RibDI7CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRBQkxF CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZP UiBBTEwgVEFCTEVTIEVYQ0VQVCB0ZXN0cHViX3RibDE7CitSRVNFVCBjbGllbnRfbWluX21lc3Nh Z2VzOworCitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorXGRScCsgdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisKIERST1AgVEFCTEUgdGVzdHB1Yl90Ymwy OwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJs ZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWE7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2Zv cnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhj ZXB0dGFibGUsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMTsKIAogQ1JFQVRFIFRB QkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQpOwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIg dGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJfdGJsMyk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJf dGJsMzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHVi X3RibDM7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IFRBQkxFIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNiBGT1IgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CiBSRVNFVCBjbGllbnRfbWlu X21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKIFxkUnArIHRlc3RwdWI0CitcZFJwKyB0ZXN0cHVi NQorXGRScCsgdGVzdHB1YjYKIAogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJs M2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJ T04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHViNSwgdGVzdHB1YjY7CiAKIC0tIFRlc3RzIGZv ciBwYXJ0aXRpb25lZCB0YWJsZXMKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK QEAgLTEyMjUsMTcgKzEyMzgsMzAgQEAgRFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9y IEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENS RUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEu dGJsMiAoYSBpbnQpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRf bWluX21lc3NhZ2VzOwogCistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRB QkxFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFM TCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdB TEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldAogCistLSBT aG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3Nj aDEudGJsMSwgcHViX3NjaDEudGJsMjsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKKwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBU QUJMRSB0byAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0g VmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCB0YWJsZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGlj YXRpb24gYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjQzLDYgKzEyNjksOSBAQCBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBU QUJMRSB0byAnRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3Nj aDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCBzY2hlbWFzIGFyZSByZW9tdmVk IGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTI1MCw2ICsxMjc5LDEw IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycpOwogCistLSBDYW4ndCBhZGQg RVhDRVBUIFRBQkxFIHdoZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9lcyBub3QgaGF2ZSBk ZWZhdWx0CistLSB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ1BV QkxJU0gnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTEyNTcsNiArMTI5MCwxMCBAQCBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOwog CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9S T09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3Nj aDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UJyBw YXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjczLDEwICsxMzEwLDE0IEBAIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNF VDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3Vw ZXJ1c2VyIGNhbiBBREQgQUxMIFRBQkxFUworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBBREQgQUxMIFRBQkxFUzsKIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKIAog RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50Ymwx OworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiAKIFJF U0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRp b24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKaW5kZXgg NTg2ZmZiYTQzNGUuLmU4YTExN2YzNDIxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRp b24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCkBA IC00Miw2ICs0Miw3IEBAIHRlc3RzICs9IHsKICAgICAgICd0LzAzM19ydW5fYXNfdGFibGVfb3du ZXIucGwnLAogICAgICAgJ3QvMDM0X3RlbXBvcmFsLnBsJywKICAgICAgICd0LzAzNV9jb25mbGlj dHMucGwnLAorICAgICAgJ3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCcsCiAgICAg ICAndC8xMDBfYnVncy5wbCcsCiAgICAgXSwKICAgfSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1 YnNjcmlwdGlvbi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgYi9zcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hOWQ3M2ZlNzIxZAotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUu cGwKQEAgLTAsMCArMSwxODYgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyNSwgUG9zdGdy ZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRl c3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ugc3RyaWN0OwordXNlIHdhcm5p bmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVz dDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2Rl CitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1 Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xv Z2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIg bm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5l dygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5n ID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBUZXN0IHJlcGxp Y2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcgRk9SIEFMTCBUQUJMRVMgRVhD RVBUIFRBQkxFCisjIGNsYXVzZS4KKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBwdWJs aXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNS RUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWIxIEFTIFNFTEVDVCBnZW5l cmF0ZV9zZXJpZXMoMSwxMCkgQVMgYTsKKwlDUkVBVEUgVEFCTEUgcHVibGljLnRhYjEoYSBpbnQp OworKSk7CisKKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBzdWJzY3JpYmVyCiskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFNDSEVN QSBzY2gxOworCUNSRUFURSBUQUJMRSBzY2gxLnRhYjEgKGEgaW50KTsKKwlDUkVBVEUgVEFCTEUg cHVibGljLnRhYjEgKGEgaW50KTsKKykpOworCisjIFNldHVwIGxvZ2ljYWwgcmVwbGljYXRpb24K K215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJu YW1lPXBvc3RncmVzJzsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBGT1IgQUxMIFRBQkxFUyBFWENFUFQg VEFCTEUgc2NoMS50YWIxIgorKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9zY2hlbWEgQ09OTkVDVElPTiAn JHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSIKKyk7CisKKyMg V2FpdCBmb3IgaW5pdGlhbCB0YWJsZSBzeW5jIHRvIGZpbmlzaAorJG5vZGVfc3Vic2NyaWJlci0+ d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLAorCSd0YXBfc3ViX3Nj aGVtYScpOworCisjIENoZWNrIHRoZSB0YWJsZSBkYXRhIGRvZXMgbm90IHN5bmMgZm9yIGV4Y2x1 ZGVkIHRhYmxlCitteSAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRhYjEi KTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksCisJJ2NoZWNrIHRoZXJlIGlzIG5vIGluaXRpYWwgZGF0 YSBjb3BpZWQgZm9yIHRoZSBleGNsdWRlZCB0YWJsZScpOworCisjIEluc2VydCBzb21lIGRhdGEg YW5kIHZlcmlmeSB0aGF0IGluc2VydGVkIGRhdGEgaXMgbm90IHJlcGxpY2F0ZWQKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEudGFiMSBW QUxVRVMoZ2VuZXJhdGVfc2VyaWVzKDExLDIwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBt YXgoYSkgRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayByZXBs aWNhdGVkIGluc2VydHMgb24gc3Vic2NyaWJlcicpOworCisjIEFsdGVyIHB1YmxpY2F0aW9uIHRv IGV4Y2x1ZGUgZGF0YSBjaGFuZ2VzIGluIHB1YmxpYy50YWIxIGFuZCB2ZXJpZnkgdGhhdAorIyBz dWJzY3JpYmVyIGRvZXMgbm90IGdldCB0aGUgY2hhbmdlZCBkYXRhIGZvciB0aGlzIHRhYmxlLgor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQUxURVIgUFVC TElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgUkVTRVQ7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1 Yl9zY2hlbWEgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHNjaDEudGFiMSwgcHVibGljLnRh YjE7CisJSU5TRVJUIElOVE8gcHVibGljLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygxLDEw KSk7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9zY2hl bWEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJTRUxFQ1QgY291bnQoKiksIG1pbihhKSwgbWF4KGEpIEZST00gcHVibGljLnRhYjEiKTsK K2lzKCRyZXN1bHQsIHFxKDB8fCksICdjaGVjayByb3dzIG9uIHN1YnNjcmliZXIgY2F0Y2h1cCcp OworCisjIGNsZWFudXAKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJE Uk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWJfc2NoZW1hIik7CisK KworIyBDaGVjayBiZWhhdmlvdXIgb2YgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgYW5kIEVY Q0VQVCBjbGF1c2Ugd2l0aAorIyBwYXJ0aXRpb25lZCB0YWJsZSBvciBwYXJ0aWl0aW9ucyBvZiBw YXJ0aXRpb25lZCB0YWJsZS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3Jl cycsIHFxKAorCUNSRUFURSBUQUJMRSBzY2gxLnQxKGEgaW50KSBQQVJUSVRJT04gQlkgUkFOR0Uo YSk7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFydDEgUEFSVElUSU9OIE9GIHNjaDEudDEgRk9SIFZB TFVFUyBGUk9NICgwKSBUTyAoNSk7CisJSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDEpOwor KSk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlD UkVBVEUgVEFCTEUgc2NoMS50MShhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFydDEoYSBp bnQpOworKSk7CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBmYWxzZSBhbmQgRVhD RVBUIHNjaDEucGFydDEKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIHNjaDEucGFydDEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBDT05ORUNUSU9OICckcHVibGlz aGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCIKKyk7Ciskbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3Vi X3BhcnQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQg SU5UTyBzY2gxLnQxIFZBTFVFUyAoMikiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0 Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50MSIpOworaXMoJHJlc3VsdCwg cXEoKSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9uZWQgdGFibGUnKTsKKworJHJlc3VsdCA9ICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gx LnBhcnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7 CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBmYWxzZSBhbmQgRVhDRVBUIHNjaDEu dDEKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFMVEVS IFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBSRVNFVDsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBf cHViX3BhcnQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIHNjaDEudDE7CispKTsKKyRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1 Yl9wYXJ0IFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9y X3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfcGFydCcpOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHNjaDEudDEg VkFMVUVTICgzKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3Vi X3BhcnQnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sg cm93cyBvbiBwYXJ0aXRpb25lZCB0YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lz KCAkcmVzdWx0LCBxcSgxCisyCiszKSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9ucycpOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlRSVU5DQVRFIHNjaDEudDEiKTsK KyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHRh cF9zdWJfcGFydCIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRS T1AgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0OyIpOworCisjIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290ID0gdHJ1ZSBhbmQgRVhDRVBUIHNjaDEudDEKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHNjaDEudDEgV0lUSCAocHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3QpOworCUlOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgxKQorKSk7Ciskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElP TiB0YXBfc3ViX3BhcnQgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElP TiB0YXBfcHViX3BhcnQiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0 aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDIp Iik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOwor CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgKiBGUk9NIHNjaDEudDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBh cnRpdGlvbmVkIHRhYmxlJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS5wYXJ0MSIpOworaXMoJHJlc3VsdCwg cXEoKSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9ucycpOworCisjIHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290ID0gdHJ1ZSBhbmQgRVhDRVBUIHNjaDEucGFydDEKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJf cGFydCBSRVNFVDsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgQUREIEFMTCBUQUJM RVMgRVhDRVBUIHNjaDEucGFydDE7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IFNF VCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBS RUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3Jp cHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAo MykiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7 CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNF TEVDVCAqIEZST00gc2NoMS50MSIpOworaXMoICRyZXN1bHQsIHFxKDEKKzIKKzMpLCAnY2hlY2sg cm93cyBvbiBwYXJ0aXRpb25lZCB0YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lz KCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbnMnKTsKKworJG5vZGVfc3Vi c2NyaWJlci0+c3RvcCgnZmFzdCcpOworJG5vZGVfcHVibGlzaGVyLT5zdG9wKCdmYXN0Jyk7CisK K2RvbmVfdGVzdGluZygpOwotLSAKMi4zNC4xCgo= --000000000000ed13c7063bb212a1--