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 1uS8yL-003x3v-L5 for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Jun 2025 06:42:06 +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 1uS8yJ-008ZqR-NL for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Jun 2025 06:42:04 +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 1uS8yI-008Zpb-O4 for pgsql-hackers@lists.postgresql.org; Thu, 19 Jun 2025 06:42:03 +0000 Received: from mail-yw1-x1135.google.com ([2607:f8b0:4864:20::1135]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uS8yH-002pPO-0V for pgsql-hackers@lists.postgresql.org; Thu, 19 Jun 2025 06:42:02 +0000 Received: by mail-yw1-x1135.google.com with SMTP id 00721157ae682-710fe491842so4311987b3.0 for ; Wed, 18 Jun 2025 23:42:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750315320; x=1750920120; 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=jH/tat2KPQAAOROqWVU7JCnM1sHJir3s4ct7jU//gNg=; b=GloPEH/NQIOdKSU+YPww2GVese2tCsZ8iAXDX3FMQhmUZ4A+k9P5ly8mOct01n73Ba e/y06ncmnaG9G1ZFEy6bgd9l2PrJMlrH5SoCLjnPVmwMLzqp3HXcXXn1yWznmGif07yL EJuNsHP0RLd/bJuxldaIY3duyv2itb/gkkLQawZkDgYVs5zC9eMd5MbxJjS4o46UDWMk L9/3Aiq7WX63EM8kSkQZ7d2FTre3tdAwwehJPuupH2mz7ETJzxCjvI+Vmjtj9G+gKC/Y K7PZl99Oh0sBhe1xDUrzTVdBQSkeaHRHZjj1YjLCRiI32/H7NrNom/50iKwbUuzQbpnu TWQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750315320; x=1750920120; 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=jH/tat2KPQAAOROqWVU7JCnM1sHJir3s4ct7jU//gNg=; b=bpsayOecp6oFal/JTNwjr0fnkGxSCUJIHg+ge94VAaqi+FiPelsZIY1FZiGTfXexYM ttv4HKd8vRDz1EvP+RhtiiW6MZrUncw6lRnvebicQOWRN/2Vzk8as2oU1R5O7YEPeQ1i BLP29Ev5E/8TqbMNEhsTdGcbhFzC3h7ko4E9YR9JUQ6f5ROlv9p4ey9GahZokijkqBtr miizOB6gx0SDKLkNJv4ZkD6tMHIxmM0biv90OSD2D1MRkStq2lCTDE4qfSwaMsN+R0Pw V3PIaZYVo7RLlbMc8w8FyF2sni7mWvOAxMmNWiOZeBI3aUiKzxZdH+02OTsZ5q2YnOXy cU3A== X-Forwarded-Encrypted: i=1; AJvYcCWwSBz02ACisBa3DuVoTUaSjMKc1NMpeINq5YOo6Acv9sFYQC7SW6fVuaYZZ7BYes7oF+YN6C0D37hX0ggA@lists.postgresql.org X-Gm-Message-State: AOJu0YxQMHJfMJnfq5LTDV8pDe8hhFBFT/zRglpHMhDZWU0JU0hCiOq8 myfBF/dURbmg71j/edLKKNLL1B8jQkHg6ZnDevALrNBTmhKlfLtSVF4TpGsUQABAYAnXmt2MRY6 TXF6PEGHYBlK90gXozhxHhINrzijzMjQ= X-Gm-Gg: ASbGncv0fPMahJPCT73oSrSYpH6ZR4CoU4XPA8T79Hbfov6ZjyMQnGgKzWOdwUlm3Mc TRAI/PT+kZMg+L5cN0/kj9MhKbUkU/w0jzZ39D6n/3wlrPjyMpwVHfOA9KghMzCOOcMmq/1whir 8eykmvOo3gEukdgM5at84N6e9IBmZRBJzViPzOxN9j6exKqw== X-Google-Smtp-Source: AGHT+IGnorXdjWOYz2CKul+VqCxc/UfoeOITQpTT1wnkRa/c2MbgB/TjJi3lzPsvGZeogniN42olDjnav2CAYqIXW20= X-Received: by 2002:a05:690c:3681:b0:70e:18c0:dac5 with SMTP id 00721157ae682-71175397bb6mr302232457b3.10.1750315320245; Wed, 18 Jun 2025 23:42:00 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Thu, 19 Jun 2025 12:11:48 +0530 X-Gm-Features: AX0GCFuANC3IlpZHCap5oeyzrC23bBJmswDdRJAAjNdNRJg0y937ySa1H4dhNeE 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="000000000000e8ee670637e70a18" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000e8ee670637e70a18 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 18 Jun 2025 at 06:34, Peter Smith wrote: > > On Tue, Jun 17, 2025 at 5:41=E2=80=AFPM Shlok Kyal wrote: > ... > > I have attached a patch support excluding columns for publication. > > > > I have added a syntax: "FOR TABLE table_name EXCEPT (c1, c2, ..)" > > It can be used with CREATE or ALTER PUBLICATION. > > > > v12-0003 patch contains the changes for the same. > > > > Hi Shlok, > > I was interested in your new EXCEPT (col-list) so I had a quick look > at your patch v12-0003 (only looked at the documentation). > > Below are some comments: > > =3D=3D=3D=3D=3D=3D > > 1. Chapter 29.5 "Column Lists". > > I think new EXCEPT syntax needs a mention here as well. > Added > =3D=3D=3D=3D=3D=3D > > doc/src/sgml/catalogs.sgml > > 2. > + > + This is an array of values that indicates which table columns are > + excluded from the publication. For example, a value of > + 1 3 would mean that the columns except the fir= st and > + the third columns are published. > + A null value indicates that no columns are excluded from being > published. > + > > The sentence "A null value indicates that no columns are excluded from > being published" seems kind of confusing, because if the user has a > "normal" column-list although nothing was being *explicitly* excluded > (using EXCEPT), any columns not named are *implicitly* excluded from > being published. > I have removed this line. > ~ > > 3. > TBH, I was wondering why a new catalog attribute was necessary... > > Can't you simply re-use the existing attribute "prattrs" attribute. > e.g. let's just define negative means exclude. > > e.g. a value of 1 3 means only the 1st and 3rd columns are published > e.g. a value of -1 -3 means all columns except 1st and 3rd columns are pu= blished > e.g. a value of null mean all columns are published > > (mixes of negative and positive will not be possible) > Currently I have added a new attribute 'prexcludeattrs' in pg_publication_rel table. I used this approach because it will be easier for user to get the exclude column list, in code no extra processing is required to get the exclude column list. For an approach to use negative numbers for exclude columns. I see an advantage that we do not need to introduce a new column for pg_publication_rel. But in code, each time we want to get a column list or exclude column list we need an extra processing of 'prattrs' columns. Also I don't see any existing catalog table using a negative attribute for column list. Based on above observations, I feel that the current is better. Please correct me if I missed an advantage for the approach you suggested. > =3D=3D=3D=3D=3D=3D > > doc/src/sgml/ref/alter_publication.sgml > > 4. ALTER PUBLICATION syntax > > The syntax is currently written as: > TABLE [ ONLY ] table_name [ * ] { [ [ ( column_name [, ... ] ) ] | [ > EXCEPT ( column_name [, ... ] ) ] ] } [ WHERE ( expression ) ] [, ... > ] > > Can't this be more simply written as: > TABLE [ ONLY ] table_name [ * ] [ [ EXCEPT ] ( column_name [, ... ] ) > ] [ WHERE ( expression ) ] [, ... ] > > ~~~ Fixed > > 5. > + > + Alter publication mypublication to add table > + users except column > + security_pin: > + > +ALTER PUBLICATION production_publication ADD TABLE users EXCEPT (securit= y_pin); > > Those tags don't seem correct. e.g. "users" and "security_pin" are not > (???). > > Perhaps, every other example here is wrong too and you just copied > them? Anyway, something here looks wrong to me. > I saw different documents and usage of tags seems not well defined. For example for table we are using tags in document create_publication.sgml, update.sgml is used, in document table.sgml, advanced.sgml is used, and in logical-replication.sgml is used. Similarly for column names , or are used in different parts of the document. I kept the changed tag to for the column for this patch. Do you have any suggestions? > =3D=3D=3D=3D=3D=3D > doc/src/sgml/ref/create_publication.sgml > > 6. CREATE PUBLICATION syntax > > The syntax is currently written as: > TABLE [ ONLY ] table_name [ * ] { [ [ ( column_name [, ... ] ) ] | [ > EXCEPT ( column_name [, ... ] ) ] ] } [ WHERE ( expression ) ] [, ... > ] > > Can't this be more simply written as: > TABLE [ ONLY ] table_name [ * ] [ [ EXCEPT ] ( column_name [, ... ] ) > ] [ WHERE ( expression ) ] [, ... ] > > ~~~ Fixed > > 7. > + > + When a column list is specified with EXCEPT, the named columns are= not > + replicated. The excluded column list cannot contain generated > columns. The > + column list and excluded column list cannot be specified together. > + Specifying a column list has no effect on TRUNCATE > + commands. > + > > IMO you don't need to say "The column list and excluded column list > cannot be specified together." because AFAIK the syntax makes that > impossible to do anyhow. > Removed this line > ~~~ > > 8. > + > + Create a publication that publishes all changes for table > users > + except changes for columns security_pin: > + > +CREATE PUBLICATION users_safe FOR TABLE users EXCEPT (security_pin); > + > + > > 8a. > Same review comment as previously -- Those tags don't seem correct. > e.g. "users" and "security_pin" are not (???). > Again, are all the other existing tags also wrong? Maybe a new thread > needed to address these? > > ~ Same as point 5. I also feel this should be addressed in a new thread. > 8b. > Plural? /except changes for columns/except changes for column/ Fixed Also in this patch I added displaying "EXCEPT (column_list)" for \dRp+ and \d table_name psql commands. Thanks and Regards, Shlok Kyal --000000000000e8ee670637e70a18 Content-Type: application/octet-stream; name="v13-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v13-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mc30dgph0 RnJvbSA4NWFlOWJkOWEwOTVhN2Q5ZDYzMDQ0YWViYWE3MDU3NDIyYzAxM2YxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTE6NDE6MTggKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MyAxLzNdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGZs YWcgdG8gZmFsc2UgYW5kIGRyb3BwaW5nIHRoZSByZWxhdGlvbnMgYW5kCnNjaGVtYXMgdGhhdCBh cmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4KVXNhZ2U6CkFMVEVSIFBVQkxJQ0FU SU9OIHB1YjEgUkVTRVQ7Ci0tLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sICAgfCAgMzUgKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRz LmMgICAgfCAxMTEgKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgIHwgICA5ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAg ICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5v dXQgfCAxMjAgKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVi bGljYXRpb24uc3FsICAgICAgfCAgNTcgKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAzMjEg aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sCmluZGV4IGQ1ZWEzODNlOGJjLi4wNjQ1MmFmOTIxNCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IERST1AgPHJlcGxhYwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBD VVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIgUFVCTElD QVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBS RU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVi bGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCkBAIC02 OSwxOCArNzAsMzIgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPC9wYXJhPgogCiAgIDxw YXJhPgotICAgVGhlIHJlbWFpbmluZyB2YXJpYW50cyBjaGFuZ2UgdGhlIG93bmVyIGFuZCB0aGUg bmFtZSBvZiB0aGUgcHVibGljYXRpb24uCisgICBUaGUgPGxpdGVyYWw+T1dORVI8L2xpdGVyYWw+ IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlCisgICBwdWJsaWNhdGlvbi4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD4gY2xh dXNlIHdpbGwgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZQorICAgcHVibGljYXRpb24uCisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gY2xhdXNlIHdp bGwgcmVzZXQgdGhlIHB1YmxpY2F0aW9uIHRvIHRoZQorICAgZGVmYXVsdCBzdGF0ZSB3aGljaCBp bmNsdWRlcyByZXNldHRpbmcgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcKKyAg IDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGZsYWcgdG8gPGxpdGVyYWw+ZmFsc2U8L2xp dGVyYWw+IGFuZAorICAgZHJvcHBpbmcgYWxsIHJlbGF0aW9ucyBhbmQgc2NoZW1hcyB0aGF0IGFy ZSBhc3NvY2lhdGVkIHdpdGggdGhlCisgICBwdWJsaWNhdGlvbi4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxU RVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNh dGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxp dGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVyYWw+U0VU IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhl Ci0gICBpbnZva2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIgdGhlIG93 bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0 aGUKLSAgIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAgIFRoZSA8 bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQg VEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAgIDxsaXRl cmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcg dXNlciB0byBiZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3Qg YmUgYWJsZSB0bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBuZXcgb3du aW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xp dGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3IG93bmVy IG9mIGEKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9y LWFsbC10YWJsZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4KICAg IG9yIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxl cy1pbi1zY2hlbWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvbGlu az4KQEAgLTIzMCw2ICsyNDUsMTIgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRp b24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKICAgIDxzdHJ1Y3RuYW1l PnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHByb2dyYW1saXN0aW5nPgog QUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMs IGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247Cis8L3Byb2dyYW1saXN0 aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiA8c3RydWN0 bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGlu Zz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gUkVTRVQ7CiA8L3By b2dyYW1saXN0aW5nPjwvcGFyYT4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCmluZGV4IDBiMjNkOTRjMzhlLi4xNTlkYzM3ODFkMCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTQ5LDYgKzQ5LDE1IEBACiAjaW5jbHVk ZSAidXRpbHMvdmFybGVuYS5oIgogCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZh bHVlcyBmb3IgZmxhZ3MgYW5kIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKyNkZWZpbmUgUFVC X0RFRkFVTFRfQUNUSU9OX0lOU0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9V UERBVEUgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZp bmUgUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRf VklBX1JPT1QgZmFsc2UKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorI2Rl ZmluZSBQVUJfREVGQVVMVF9HRU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qCiAgKiBJ bmZvcm1hdGlvbiB1c2VkIHRvIHZhbGlkYXRlIHRoZSBjb2x1bW5zIGluIHRoZSByb3cgZmlsdGVy IGV4cHJlc3Npb24uIFNlZQogICogY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlciBmb3Ig ZGV0YWlscy4KQEAgLTkxLDEyICsxMDAsMTIgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQ YXJzZVN0YXRlICpwc3RhdGUsCiAJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnNfZ2l2ZW4gPSBm YWxzZTsKIAogCS8qIGRlZmF1bHRzICovCi0JcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsK LQlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9 IHRydWU7Ci0JcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdCA9IGZhbHNlOwotCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVC TElTSF9HRU5DT0xTX05PTkU7CisJcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRf QUNUSU9OX0lOU0VSVDsKKwlwdWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJ T05fVVBEQVRFOworCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9E RUxFVEU7CisJcHViYWN0aW9ucy0+cHVidHJ1bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJV TkNBVEU7CisJKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JP T1Q7CisJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJfREVGQVVMVF9HRU5DT0xTOwog CiAJLyogUGFyc2Ugb3B0aW9ucyAqLwogCWZvcmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMTg3LDYg KzExOTYsOTQgQEAgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNh Y2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGlj YXRpb24uCisgKgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcg QUxMIFRBQkxFUyBmbGFnIHRvIGZhbHNlIGFuZCBkcm9wCisgKiBhbGwgcmVsYXRpb25zIGFuZCBz Y2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0 YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKKwkJCQkJICBSZWxhdGlvbiByZWwsIEhlYXBUdXBsZSB0 dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRp b24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJ ICAgKnNjaGVtYXMgPSBOSUw7CisJTGlzdAkgICAqcmVscyA9IE5JTDsKKwlib29sCQludWxsc1tO YXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRp b25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCU9iamVjdEFkZHJl c3Mgb2JqOworCUxpc3RDZWxsICAgKmxjOworCU9pZAkJCXByaWQ7CisKKwkvKiBSRVNFVCBwdWJs aWNhdGlvbiByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwK KwkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOwor CisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFs c2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBs YWNlcykpOworCisJLyogUmVzZXQgdGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKwl2YWx1 ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJpbnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJf REVGQVVMVF9BQ1RJT05fSU5TRVJUKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1 Ymluc2VydCAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVw ZGF0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJl cGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFs dWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVC X0RFRkFVTFRfQUNUSU9OX0RFTEVURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9w dWJkZWxldGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0 cnVuY2F0ZSAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsK KworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXRE YXR1bShQVUJfREVGQVVMVF9WSUFfUk9PVCk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJ2aWFyb290IC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cHViZ2VuY29scyAtIDFdID0gQ2hhckdldERhdHVtKFBVQl9ERUZBVUxUX0dFTkNPTFMpOworCXJl cGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gdHJ1ZTsKKworCS8q IFNldCBBTEwgVEFCTEVTIGZsYWcgdG8gZmFsc2UgKi8KKwlpZiAocHViZm9ybS0+cHViYWxsdGFi bGVzKQorCXsKKwkJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0g PSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyk7CisJCXJlcGxhY2VzW0FudW1f cGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOworCQlDYWNoZUludmFsaWRh dGVSZWxjYWNoZUFsbCgpOworCX0KKworCXR1cCA9IGhlYXBfbW9kaWZ5X3R1cGxlKHR1cCwgUmVs YXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAorCQkJCQkJCXJlcGxhY2VzKTsKKwor CS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9nVHVwbGVVcGRhdGUocmVsLCAmdHVw LT50X3NlbGYsIHR1cCk7CisKKwkvKiBEcm9wIHRoZSBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1Ymlk KTsKKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1YmlkLCBzY2hlbWFzLCBmYWxzZSk7CisKKwkv KiBEcm9wIHRoZSByZWxhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLwor CXJlbHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9S T09UKTsKKwlmb3JlYWNoKGxjLCByZWxzKQorCXsKKwkJT2lkCQkJcmVsaWQgPSBsZmlyc3Rfb2lk KGxjKTsKKworCQlwcmlkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLCBBbnVt X3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShyZWxp ZCksCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCQlpZiAoIU9pZElzVmFs aWQocHJpZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgaXMgbm90IHBhcnQg b2YgdGhlIHB1YmxpY2F0aW9uIiwKKwkJCQkJCQlnZXRfcmVsX25hbWUocmVsaWQpKSkpOworCisJ CU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQsIHByaWQpOwor CQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwl9Cit9CisKIC8qCiAg KiBBZGQgb3IgcmVtb3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRpb24uCiAgKi8KQEAgLTE1MDEs NiArMTU5OCw4IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAogCWlmIChzdG10LT5vcHRpb25zKQogCQlBbHRlclB1Ymxp Y2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsKKwllbHNlIGlmIChzdG10LT5h Y3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKKwkJQWx0ZXJQdWJsaWNhdGlvblJlc2V0KHBz dGF0ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2UKIAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9 IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IDUwZjUzMTU5ZDU4Li5lMTZmNDgzMjk2MyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC0xMDc2MCw2ICsxMDc2MCw4IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpT cGVjCiAgKgogICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29iaiBbLCAuLi5dCiAg KgorICogQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAorICoKICAqIHB1Yl9vYmogaXMgb25l IG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFssIC4uLl0KQEAgLTEwODA2LDYgKzEwODA4 LDEzIEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9wT2Jq ZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgUFVCTElDQVRJ T04gbmFtZSBSRVNFVAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtl Tm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJ bi0+YWN0aW9uID0gQVBfUmVzZXRQdWJsaWNhdGlvbjsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmlu ZGV4IDJjMGI0ZjI4YzE0Li4yM2NiMjdiNGIwNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAt MjI0Miw3ICsyMjQyLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAK IAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRS T1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRIKCJB REQiLCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7CiAJ LyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgi VEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGJh MTI2NzhkMWNiLi45MDViNThlMDI3OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI3Miw2 ICs0MjcyLDcgQEAgdHlwZWRlZiBlbnVtIEFsdGVyUHVibGljYXRpb25BY3Rpb24KIAlBUF9BZGRP YmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0cyB0byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmpl Y3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0cyBmcm9tIHB1YmxpY2F0aW9uICovCiAJQVBfU2V0T2Jq ZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQX1Jlc2V0UHVibGljYXRpb24s CQkvKiByZXNldCB0aGUgcHVibGljYXRpb24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbjsK IAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNGRlOTZjMDRmOWQuLmIyZmZlMGE4YzIwIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTkyMyw2ICsx OTIzLDEyNiBAQCBUYWJsZXM6CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjE7CiBEUk9QIFBVQkxJQ0FU SU9OIHB1YjI7CiBEUk9QIFRBQkxFIGdlbmNvbHM7CistLSBUZXN0cyBmb3IgQUxURVIgUFVCTElD QVRJT04gLi4uIFJFU0VUCitDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOworQ1JFQVRFIFRBQkxFIHB1 Yl9zY2gxLnRibDEgKGEgaW50KTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsK K0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTOworUkVTRVQg Y2xpZW50X21pbl9tZXNzYWdlczsKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEg cm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2No MS50YmwxOworLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGlj YXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgor VGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Ymxp YzsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkFMTCIKK0xJTkUgMTogQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHViLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFZlcmlm eSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBl ZCBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVz dHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNl cnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8 IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8 IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJ U0ggPSAnJyk7CistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMg fCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl ciB8IGYgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9O X1JPT1QgPSAndHJ1ZScpOworLS0gVmVyaWZ5IHRoYXQgJ1BVQkxJU0hfVklBX1BBUlRJVElPTl9S T09UJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0 CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRh dGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3Qg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgdAorKDEgcm93 KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVzdHB1 Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVk IGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAg ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg U0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKKy0tIFZlcmlmeSB0aGF0 ICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJyBwYXJhbWV0ZXIgaXMgcmVzZXQKK1xkUnArIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVy YXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IHN0b3Jl ZCAgICAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVz IHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKKy0tIFZlcmlm eSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7 CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCitFUlJPUjog IG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCitTRVQgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXI7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9Q IFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIFJFU0VUIGNsaWVu dF9taW5fbWVzc2FnZXM7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDY4MDAxZGU0MDAwLi4xNWIyYjFjZmQy OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTIyMiw2ICsxMjIyLDYz IEBAIERST1AgUFVCTElDQVRJT04gcHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1Ag VEFCTEUgZ2VuY29sczsKIAorLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNF VAorQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChh IGludCk7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CisKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0CitcZFJw KyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwor XGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFE RCBUQUJMRSBwdWJfc2NoMS50YmwxOworCistLSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRl ZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZCBhZnRlciBSRVNFVAorXGRScCsgdGVz dHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnAr IHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7Citc ZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VU IChQVUJMSVNIID0gJycpOworCistLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlz IHJlc2V0CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworCist LSBWZXJpZnkgdGhhdCAnUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyBy ZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBTRVQgKFBVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOworCistLSBW ZXJpZnkgdGhhdCAnUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUycgcGFyYW1ldGVyIGlzIHJlc2V0 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNl ciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyOworCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CitEUk9QIFNDSEVNQSBwdWJfc2NoMTsKKwogUkVTRVQgY2xpZW50X21pbl9t ZXNzYWdlczsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNz X3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7Ci0tIAoyLjM0LjEK Cg== --000000000000e8ee670637e70a18 Content-Type: application/octet-stream; name="v13-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v13-0003-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mc30dgpw2 RnJvbSA2YjdjMjNlNDE5NDk1OGM1ODFkNDQ3NjA5MDQ0MmQ0NGMzN2Q3MDJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTcgSnVuIDIwMjUgMTI6MTI6MjQgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MyAzLzNdIFNraXAgcHVibGlzaGluZyB0aGUgY29sdW1ucyBzcGVjaWZpZWQgaW4gRk9SIFRBQkxF CiBFWENFUFQKCkEgbmV3ICJUQUJMRSB0YWJsZV9uYW1lIEVYQ0VQVCAoY29sdW1uX2xpc3QpIiBj bGF1c2UgZm9yIENSRUFURS9BTFRFUgpQVUJMSUNBVElPTiBhbGxvd3Mgb25lIG9yIG1vcmUgY29s dW1ucyB0byBiZSBleGNsdWRlZC4gVEhlIHB1Ymxpc2hlcgp3aWxsIG5vdCBzZW5kIHRoZSBkYXRh IG9mIGV4Y2x1ZGVkIGNvbHVtbnMgdG8gdGhlIHN1YnNjcmliZXIuCgpUaGUgbmV3IHN5bnRheCBh bGxvd3Mgc3BlY2lmeWluZyBleGNsdWRlZCBjb2x1bW4gbGlzdCB3aGVuIGNyZWF0aW5nIG9yCmFs dGVyaW5nIGEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpDUkVBVEUgUFVCTElDQVRJT04gcHVi bmFtZSBGT1IgVEFCTEUgdGFibmFtZSBFWENFUFQgKGV4Y2x1ZGVfY29sdW1uX2xpc3QpCm9yCkFM VEVSIFBVQkxJQ0FUSU9OIHB1Ym5hbWUgQUREIFRBQkxFIHRhYm5hbWUgRVhDRVBUIChleGNsdWRl X2NvbHVtbl9saXN0KQoKQSBuZXcgY29sdW1uICJwcmV4Y2x1ZGVhdHRycyIgaXMgYWRkZWQgdG8g dGFibGUgInBnX3B1YmxpY2F0aW9uX3JlbCIsIHRvCm1haW50YWluIHRoZSBjb2x1bW4gbGlzdCB0 aGF0IHVzZXIgd2FudHMgdG8gZXhjbHVkZSBmcm9tIHRoZQpwdWJsaWNhdGlvbi4KCnBnX2R1bXAg aXMgdXBkYXRlZCB0byBpZGVudGlmeSBhbmQgZHVtcCB0aGUgZXhjbHVkZWQgY29sdW1uIGxpc3Qg b2YgdGhlCnB1YmxpY2F0aW9uLgoKVGhlIHBzcWwgXGQgZmFtaWx5IG9mIGNvbW1hbmQgY2FuIG5v dyBkaXNwbGF5IGV4Y2x1ZGVkIGNvbHVtbiBsaXN0LiBlLmcuCnBzcWwgXGRScCsgdmFyaWFudCB3 aWxsIG5vdyBkaXNwbGF5IGFzc29jaWF0ZWQgIkVYQ0VQVCAoY29sdW1uX2xpc3QpIiBpZgphbnMu Ci0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEz ICsrCiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAxNDUg KysrKysrKysrKysrLS0tLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNn bWwgICAgICAgfCAgMTAgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNn bWwgICAgICB8ICAxNyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAg ICAgICAgIHwgMTM1ICsrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jICAgICAgICB8ICA3MyArKysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICA2MCArKysrKysrKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyAgIHwgIDQ3ICsrKysrLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICsrKystCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTA0ICsrKysrKysrKy0tLS0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgICB8ICAgOSArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAgIHwgICAxICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAgNjUgKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgICB8ICA0NSArKysrKysK IC4uLi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAgICAgICB8ICA2MCArKysr KysrLQogMTcgZmlsZXMgY2hhbmdlZCwgNzM1IGluc2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggNGUzN2M5MjhiNDQuLmI5ZTEzYjMzMDY0IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbApAQCAtNjU4OSw2ICs2NTg5LDE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZs dDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAg ICAgQSBudWxsIHZhbHVlIGluZGljYXRlcyB0aGF0IGFsbCBjb2x1bW5zIGFyZSBwdWJsaXNoZWQu CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByZXhjbHVkZWF0dHJzPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+aW50MnZlY3RvcjwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5r ZW5kPSJjYXRhbG9nLXBnLWF0dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1 Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhpcyBpcyBhbiBhcnJheSBvZiB2YWx1ZXMg dGhhdCBpbmRpY2F0ZXMgd2hpY2ggdGFibGUgY29sdW1ucyBhcmUKKyAgICAgICBleGNsdWRlZCBm cm9tIHRoZSBwdWJsaWNhdGlvbi4gIEZvciBleGFtcGxlLCBhIHZhbHVlIG9mCisgICAgICAgPGxp dGVyYWw+MSAzPC9saXRlcmFsPiB3b3VsZCBtZWFuIHRoYXQgdGhlIGNvbHVtbnMgZXhjZXB0IHRo ZSBmaXJzdCBhbmQKKyAgICAgICB0aGUgdGhpcmQgY29sdW1ucyBhcmUgcHVibGlzaGVkLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IDNk MGQyOWNmOGIxLi4zMThiNGM0M2NmYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5z Z21sCkBAIC0xMzQwLDExICsxMzQwLDE0IEBAIFB1YmxpY2F0aW9uczoKICAgPHRpdGxlPkNvbHVt biBMaXN0czwvdGl0bGU+CiAKICAgPHBhcmE+Ci0gICBFYWNoIHB1YmxpY2F0aW9uIGNhbiBvcHRp b25hbGx5IHNwZWNpZnkgd2hpY2ggY29sdW1ucyBvZiBlYWNoIHRhYmxlIGFyZQotICAgcmVwbGlj YXRlZCB0byBzdWJzY3JpYmVycy4gVGhlIHRhYmxlIG9uIHRoZSBzdWJzY3JpYmVyIHNpZGUgbXVz dCBoYXZlIGF0Ci0gICBsZWFzdCBhbGwgdGhlIGNvbHVtbnMgdGhhdCBhcmUgcHVibGlzaGVkLiBJ ZiBubyBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQsCi0gICB0aGVuIGFsbCBjb2x1bW5zIG9uIHRo ZSBwdWJsaXNoZXIgYXJlIHJlcGxpY2F0ZWQuCi0gICBTZWUgPHhyZWYgbGlua2VuZD0ic3FsLWNy ZWF0ZXB1YmxpY2F0aW9uIi8+IGZvciBkZXRhaWxzIG9uIHRoZSBzeW50YXguCisgICBFYWNoIHB1 YmxpY2F0aW9uIGNhbiBvcHRpb25hbGx5IGVpdGhlciBzcGVjaWZ5IHdoaWNoIGNvbHVtbnMgb2Yg ZWFjaCB0YWJsZQorICAgYXJlIHJlcGxpY2F0ZWQgdG8gc3Vic2NyaWJlcnMgb3Igc3BlY2lmeSB3 aGljaCBjb2x1bW5zIG9mIGVhY2ggdGFibGUgYXJlCisgICBleGNsdWRlZCBmcm9tIHJlcGxpY2F0 aW9uIHRvIHN1YnNjcmliZXIuIFRoZSB0YWJsZSBvbiB0aGUgc3Vic2NyaWJlciBzaWRlCisgICBt dXN0IGhhdmUgYXQgbGVhc3QgYWxsIHRoZSBjb2x1bW5zIHRoYXQgYXJlIHB1Ymxpc2hlZC4gSWYg bm8gY29sdW1uIGxpc3QgYW5kCisgICBubyBleGNsdWRlIGNvbHVtbiBsaXN0IGFyZSBzcGVjaWZp ZWQsIHRoZW4gYWxsIGNvbHVtbnMgb24gdGhlIHB1Ymxpc2hlciBhcmUKKyAgIHJlcGxpY2F0ZWQu IElmIGEgZXhjbHVkZSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQgYWxsIHRoZSBjb2x1bW5zIGV4 Y2VwdCB0aGUKKyAgIHNwZWNpZmllZCBjb2x1bW5zIGFyZSByZXBsaWNhdGVkLiBTZWUgPHhyZWYg bGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uIi8+CisgICBmb3IgZGV0YWlscyBvbiB0aGUg c3ludGF4LgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0xMzU5LDU2ICsxMzYyLDY1IEBAIFB1 YmxpY2F0aW9uczoKICAgIElmIG5vIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgYW55IGNvbHVt bnMgYWRkZWQgdG8gdGhlIHRhYmxlIGxhdGVyIGFyZQogICAgYXV0b21hdGljYWxseSByZXBsaWNh dGVkLiBUaGlzIG1lYW5zIHRoYXQgaGF2aW5nIGEgY29sdW1uIGxpc3Qgd2hpY2ggbmFtZXMKICAg IGFsbCBjb2x1bW5zIGlzIG5vdCB0aGUgc2FtZSBhcyBoYXZpbmcgbm8gY29sdW1uIGxpc3QgYXQg YWxsLgorICAgSWYgYSBleGNsdWRlIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgYW55IGNvbHVt bnMgYWRkZWQgdG8gdGhlIHRhYmxlIGxhdGVyCisgICBhcmUgYXV0b21hdGljYWxseSByZXBsaWNh dGVkLgogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBBIGNvbHVtbiBsaXN0IGNhbiBjb250YWlu IG9ubHkgc2ltcGxlIGNvbHVtbiByZWZlcmVuY2VzLiAgVGhlIG9yZGVyCi0gICBvZiBjb2x1bW5z IGluIHRoZSBsaXN0IGlzIG5vdCBwcmVzZXJ2ZWQuCisgICBBIGNvbHVtbiBsaXN0IG9yIGV4Y2x1 ZGUgY29sdW1uIGxpc3QgY2FuIGNvbnRhaW4gb25seSBzaW1wbGUgY29sdW1uCisgICByZWZlcmVu Y2VzLiAgVGhlIG9yZGVyIG9mIGNvbHVtbnMgaW4gdGhlIGxpc3QgaXMgbm90IHByZXNlcnZlZC4K ICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAgR2VuZXJhdGVkIGNvbHVtbnMgY2FuIGFsc28gYmUg c3BlY2lmaWVkIGluIGEgY29sdW1uIGxpc3QuIFRoaXMgYWxsb3dzCiAgICBnZW5lcmF0ZWQgY29s dW1ucyB0byBiZSBwdWJsaXNoZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHB1YmxpY2F0aW9uIHBhcmFt ZXRlcgogICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRo LXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgotICAgPGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0 ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+LiBTZWUKKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPi4gR2VuZXJhdGVkIGNvbHVtbnMgY2Fubm90 CisgICBiZSBzcGVjaWZpZWQgaW4gYSBleGNsdWRlIGNvbHVtbiBsaXN0LiBTZWUKICAgIDx4cmVm IGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tZ2VuY29scyIvPiBmb3IgZGV0YWlscy4KICAg PC9wYXJhPgogCiAgIDxwYXJhPgotICAgU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IHdoZW4gdGhl IHB1YmxpY2F0aW9uIGFsc28gcHVibGlzaGVzCi0gICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl cHVibGljYXRpb24tcGFyYW1zLWZvci10YWJsZXMtaW4tc2NoZW1hIj48bGl0ZXJhbD5GT1IgVEFC TEVTIElOIFNDSEVNQTwvbGl0ZXJhbD48L2xpbms+Ci0gICBpcyBub3Qgc3VwcG9ydGVkLgorICAg U3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IG9yIGEgZXhjbHVkZSBjb2x1bW4gbGlzdCB3aGVuIHRo ZSBwdWJsaWNhdGlvbiBhbHNvCisgICBwdWJsaXNoZXMgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0 ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItdGFibGVzLWluLXNjaGVtYSI+CisgICA8bGl0ZXJhbD5G T1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD48L2xpbms+IGlzIG5vdCBzdXBwb3J0ZWQuCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KICAgIEZvciBwYXJ0aXRpb25lZCB0YWJsZXMsIHRoZSBwdWJs aWNhdGlvbiBwYXJhbWV0ZXIKLSAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlv bi1wYXJhbXMtd2l0aC1wdWJsaXNoLXZpYS1wYXJ0aXRpb24tcm9vdCI+PGxpdGVyYWw+cHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3Q8L2xpdGVyYWw+PC9saW5rPgotICAgZGV0ZXJtaW5lcyB3aGlj aCBjb2x1bW4gbGlzdCBpcyB1c2VkLiBJZiA8bGl0ZXJhbD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdDwvbGl0ZXJhbD4KLSAgIGlzIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LCB0aGUgcm9vdCBw YXJ0aXRpb25lZCB0YWJsZSdzIGNvbHVtbiBsaXN0IGlzCi0gICB1c2VkLiBPdGhlcndpc2UsIGlm IDxsaXRlcmFsPnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PC9saXRlcmFsPiBpcwotICAgPGxp dGVyYWw+ZmFsc2U8L2xpdGVyYWw+ICh0aGUgZGVmYXVsdCksIGVhY2ggcGFydGl0aW9uJ3MgY29s dW1uIGxpc3QgaXMgdXNlZC4KKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlv bi1wYXJhbXMtd2l0aC1wdWJsaXNoLXZpYS1wYXJ0aXRpb24tcm9vdCI+CisgICA8bGl0ZXJhbD5w dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD48L2xpbms+IGRldGVybWluZXMgd2hp Y2ggY29sdW1uCisgICBsaXN0IG9yIGV4Y2x1ZGUgY29sdW1uIGxpc3QgaXMgdXNlZC4gSWYKKyAg IDxsaXRlcmFsPnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PC9saXRlcmFsPiBpcyA8bGl0ZXJh bD50cnVlPC9saXRlcmFsPiwgdGhlCisgICByb290IHBhcnRpdGlvbmVkIHRhYmxlJ3MgY29sdW1u IGxpc3Qgb3IgZXhjbHVkZSBjb2x1bW4gbGlzdCBpcyB1c2VkLgorICAgT3RoZXJ3aXNlLCBpZiA8 bGl0ZXJhbD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4gaXMKKyAgIDxsaXRl cmFsPmZhbHNlPC9saXRlcmFsPiAodGhlIGRlZmF1bHQpLCBlYWNoIHBhcnRpdGlvbidzIGNvbHVt biBsaXN0IG9yCisgICBleGNsdWRlIGNvbHVtbiBsaXN0IGlzIHVzZWQuCiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KICAgIElmIGEgcHVibGljYXRpb24gcHVibGlzaGVzIDxjb21tYW5kPlVQREFURTwv Y29tbWFuZD4gb3IKICAgIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4gb3BlcmF0aW9ucywgYW55 IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0aGUKLSAgIHRhYmxlJ3MgcmVwbGljYSBpZGVudGl0 eSBjb2x1bW5zIChzZWUKLSAgIDx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnRhYmxlLXJlcGxpY2Et aWRlbnRpdHkiLz4pLgotICAgSWYgYSBwdWJsaWNhdGlvbiBwdWJsaXNoZXMgb25seSA8Y29tbWFu ZD5JTlNFUlQ8L2NvbW1hbmQ+IG9wZXJhdGlvbnMsIHRoZW4KLSAgIHRoZSBjb2x1bW4gbGlzdCBt YXkgb21pdCByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMuCisgICB0YWJsZSdzIHJlcGxpY2EgaWRl bnRpdHkgY29sdW1ucyBvciBhbnkgZXhjbHVkZSBjb2x1bW4gbGlzdCBtdXN0IG5vdCBpbmNsdWRl CisgICB0aGUgdGFibGUncyByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMgKHNlZQorICAgPHhyZWYg bGlua2VuZD0ic3FsLWFsdGVydGFibGUtcmVwbGljYS1pZGVudGl0eSIvPikuIElmIGEgcHVibGlj YXRpb24KKyAgIHB1Ymxpc2hlcyBvbmx5IDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4gb3BlcmF0 aW9ucywgdGhlbiB0aGUgY29sdW1uIGxpc3QgbWF5CisgICBvbWl0IHJlcGxpY2EgaWRlbnRpdHkg Y29sdW1ucyBvciBleGx1ZGUgY29sdW1uIGxpc3QgbWF5IGNvbnRhaW4gcmVwbGljYQorICAgaWRl bnRpdHkgY29sdW1ucy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgotICAgQ29sdW1uIGxpc3RzIGhh dmUgbm8gZWZmZWN0IGZvciB0aGUgPGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1hbmQu CisgICBDb2x1bW4gbGlzdHMgb3IgZXhjbHVkZSBjb2x1bW4gbGlzdHMgaGF2ZSBubyBlZmZlY3Qg Zm9yIHRoZQorICAgPGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1hbmQuCiAgIDwvcGFy YT4KIAogICA8cGFyYT4KICAgIER1cmluZyBpbml0aWFsIGRhdGEgc3luY2hyb25pemF0aW9uLCBv bmx5IHRoZSBwdWJsaXNoZWQgY29sdW1ucyBhcmUKICAgIGNvcGllZC4gIEhvd2V2ZXIsIGlmIHRo ZSBzdWJzY3JpYmVyIGlzIGZyb20gYSByZWxlYXNlIHByaW9yIHRvIDE1LCB0aGVuCiAgICBhbGwg dGhlIGNvbHVtbnMgaW4gdGhlIHRhYmxlIGFyZSBjb3BpZWQgZHVyaW5nIGluaXRpYWwgZGF0YSBz eW5jaHJvbml6YXRpb24sCi0gICBpZ25vcmluZyBhbnkgY29sdW1uIGxpc3RzLiBJZiB0aGUgc3Vi c2NyaWJlciBpcyBmcm9tIGEgcmVsZWFzZSBwcmlvciB0byAxOCwKLSAgIHRoZW4gaW5pdGlhbCB0 YWJsZSBzeW5jaHJvbml6YXRpb24gd29uJ3QgY29weSBnZW5lcmF0ZWQgY29sdW1ucyBldmVuIGlm IHRoZXkKLSAgIGFyZSBkZWZpbmVkIGluIHRoZSBwdWJsaXNoZXIuCisgICBpZ25vcmluZyBhbnkg Y29sdW1uIGxpc3RzIG9yIGV4Y2x1ZGUgY29sdW1uIGxpc3QuIElmIHRoZSBzdWJzY3JpYmVyIGlz IGZyb20gYQorICAgcmVsZWFzZSBwcmlvciB0byAxOCwgdGhlbiBpbml0aWFsIHRhYmxlIHN5bmNo cm9uaXphdGlvbiB3b24ndCBjb3B5IGdlbmVyYXRlZAorICAgY29sdW1ucyBldmVuIGlmIHRoZXkg YXJlIGRlZmluZWQgaW4gdGhlIHB1Ymxpc2hlci4KICAgPC9wYXJhPgogCiAgICA8d2FybmluZyBp ZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb2wtbGlzdC1jb21iaW5pbmciPgpAQCAtMTQxNiwyMSAr MTQyOCwyMyBAQCBQdWJsaWNhdGlvbnM6CiAgICAgPHBhcmE+CiAgICAgIFRoZXJlJ3MgY3VycmVu dGx5IG5vIHN1cHBvcnQgZm9yIHN1YnNjcmlwdGlvbnMgY29tcHJpc2luZyBzZXZlcmFsCiAgICAg IHB1YmxpY2F0aW9ucyB3aGVyZSB0aGUgc2FtZSB0YWJsZSBoYXMgYmVlbiBwdWJsaXNoZWQgd2l0 aCBkaWZmZXJlbnQKLSAgICAgY29sdW1uIGxpc3RzLiAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0 ZXN1YnNjcmlwdGlvbiIvPiBkaXNhbGxvd3MKKyAgICAgY29sdW1uIGxpc3RzIG9yIGV4Y2x1ZGUg Y29sdW1uIGxpc3QuCisgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24i Lz4gZGlzYWxsb3dzCiAgICAgIGNyZWF0aW5nIHN1Y2ggc3Vic2NyaXB0aW9ucywgYnV0IGl0IGlz IHN0aWxsIHBvc3NpYmxlIHRvIGdldCBpbnRvCi0gICAgIHRoYXQgc2l0dWF0aW9uIGJ5IGFkZGlu ZyBvciBhbHRlcmluZyBjb2x1bW4gbGlzdHMgb24gdGhlIHB1YmxpY2F0aW9uCi0gICAgIHNpZGUg YWZ0ZXIgYSBzdWJzY3JpcHRpb24gaGFzIGJlZW4gY3JlYXRlZC4KKyAgICAgdGhhdCBzaXR1YXRp b24gYnkgYWRkaW5nIG9yIGFsdGVyaW5nIGNvbHVtbiBsaXN0cyBvciBleGNsdWRlIGNvbHVtbiBs aXN0cworICAgICBvbiB0aGUgcHVibGljYXRpb24gc2lkZSBhZnRlciBhIHN1YnNjcmlwdGlvbiBo YXMgYmVlbiBjcmVhdGVkLgogICAgIDwvcGFyYT4KICAgICA8cGFyYT4KLSAgICAgVGhpcyBtZWFu cyBjaGFuZ2luZyB0aGUgY29sdW1uIGxpc3RzIG9mIHRhYmxlcyBvbiBwdWJsaWNhdGlvbnMgdGhh dCBhcmUKLSAgICAgYWxyZWFkeSBzdWJzY3JpYmVkIGNvdWxkIGxlYWQgdG8gZXJyb3JzIGJlaW5n IHRocm93biBvbiB0aGUgc3Vic2NyaWJlcgotICAgICBzaWRlLgorICAgICBUaGlzIG1lYW5zIGNo YW5naW5nIHRoZSBjb2x1bW4gbGlzdHMgb3IgZXhjbHVkZSBjb2x1bW4gbGlzdCBvZiB0YWJsZXMg b24KKyAgICAgcHVibGljYXRpb25zIHRoYXQgYXJlIGFscmVhZHkgc3Vic2NyaWJlZCBjb3VsZCBs ZWFkIHRvIGVycm9ycyBiZWluZyB0aHJvd24KKyAgICAgb24gdGhlIHN1YnNjcmliZXIgc2lkZS4K ICAgICA8L3BhcmE+CiAgICAgPHBhcmE+CiAgICAgIElmIGEgc3Vic2NyaXB0aW9uIGlzIGFmZmVj dGVkIGJ5IHRoaXMgcHJvYmxlbSwgdGhlIG9ubHkgd2F5IHRvIHJlc3VtZQotICAgICByZXBsaWNh dGlvbiBpcyB0byBhZGp1c3Qgb25lIG9mIHRoZSBjb2x1bW4gbGlzdHMgb24gdGhlIHB1YmxpY2F0 aW9uCi0gICAgIHNpZGUgc28gdGhhdCB0aGV5IGFsbCBtYXRjaDsgYW5kIHRoZW4gZWl0aGVyIHJl Y3JlYXRlIHRoZSBzdWJzY3JpcHRpb24sCi0gICAgIG9yIHVzZSA8bGluayBsaW5rZW5kPSJzcWwt YWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLXNldGFkZGRyb3AtcHVibGljYXRpb24iPgorICAgICBy ZXBsaWNhdGlvbiBpcyB0byBhZGp1c3Qgb25lIG9mIHRoZSBjb2x1bW4gbGlzdHMgb3IgZXhjbHVk ZSBjb2x1bW4gbGlzdHMgb24KKyAgICAgdGhlIHB1YmxpY2F0aW9uIHNpZGUgc28gdGhhdCB0aGV5 IGFsbCBtYXRjaDsgYW5kIHRoZW4gZWl0aGVyIHJlY3JlYXRlIHRoZQorICAgICBzdWJzY3JpcHRp b24sIG9yIHVzZQorICAgICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFy YW1zLXNldGFkZGRyb3AtcHVibGljYXRpb24iPgogICAgICA8bGl0ZXJhbD5BTFRFUiBTVUJTQ1JJ UFRJT04gLi4uIERST1AgUFVCTElDQVRJT048L2xpdGVyYWw+PC9saW5rPiB0bwogICAgICByZW1v dmUgb25lIG9mIHRoZSBvZmZlbmRpbmcgcHVibGljYXRpb25zIGFuZCBhZGQgaXQgYWdhaW4uCiAg ICAgPC9wYXJhPgpAQCAtMTQ0MCwxOCArMTQ1NCwyMSBAQCBQdWJsaWNhdGlvbnM6CiAgICA8dGl0 bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgICA8cGFyYT4KLSAgICBDcmVhdGUgYSB0YWJsZSA8bGl0 ZXJhbD50MTwvbGl0ZXJhbD4gdG8gYmUgdXNlZCBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUuCisg ICAgQ3JlYXRlIHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4sIDxsaXRlcmFsPnQyPC9saXRl cmFsPiB0byBiZSB1c2VkIGluIHRoZQorICAgIGZvbGxvd2luZyBleGFtcGxlLgogPHByb2dyYW1s aXN0aW5nPgogLyogcHViICMgKi8gQ1JFQVRFIFRBQkxFIHQxKGlkIGludCwgYSB0ZXh0LCBiIHRl eHQsIGMgdGV4dCwgZCB0ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CisvKiBwdWIgIyAq LyBDUkVBVEUgVEFCTEUgdDIoaWQgaW50LCBhIHRleHQsIGIgdGV4dCwgYyB0ZXh0LCBkIHRleHQs IGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAg ICA8cGFyYT4KICAgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiA8bGl0ZXJhbD5wMTwvbGl0ZXJhbD4u IEEgY29sdW1uIGxpc3QgaXMgZGVmaW5lZCBmb3IKLSAgICB0YWJsZSA8bGl0ZXJhbD50MTwvbGl0 ZXJhbD4gdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGF0IHdpbGwgYmUKLSAgICBy ZXBsaWNhdGVkLiBOb3RpY2UgdGhhdCB0aGUgb3JkZXIgb2YgY29sdW1uIG5hbWVzIGluIHRoZSBj b2x1bW4gbGlzdCBkb2VzCi0gICAgbm90IG1hdHRlci4KKyAgICB0YWJsZSA8bGl0ZXJhbD50MTwv bGl0ZXJhbD4gYW5kIGEgZXhjbHVkZSBjb2x1bW4gbGlzdCBpcyBkZWZpbmVkIGZvciB0YWJsZQor ICAgIDxsaXRlcmFsPnQyPC9saXRlcmFsPiB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBjb2x1bW5z IHRoYXQgd2lsbCBiZQorICAgIHJlcGxpY2F0ZWQuIE5vdGljZSB0aGF0IHRoZSBvcmRlciBvZiBj b2x1bW4gbmFtZXMgaW4gdGhlIGNvbHVtbiBsaXN0IG9yCisgICAgZXhjbHVkZSBjb2x1bW4gbGlz dCBkb2VzIG5vdCBtYXR0ZXIuCiA8cHJvZ3JhbWxpc3Rpbmc+Ci0vKiBwdWIgIyAqLyBDUkVBVEUg UFVCTElDQVRJT04gcDEgRk9SIFRBQkxFIHQxIChpZCwgYiwgYSwgZCk7CisvKiBwdWIgIyAqLyBD UkVBVEUgUFVCTElDQVRJT04gcDEgRk9SIFRBQkxFIHQxIChpZCwgYiwgYSwgZCksIHQyIEVYQ0VQ VCAoZCwgYSk7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTQ1 OSwxMiArMTQ3NiwxMyBAQCBQdWJsaWNhdGlvbnM6CiAgICAgIGZvciBlYWNoIHB1YmxpY2F0aW9u LgogPHByb2dyYW1saXN0aW5nPgogLyogcHViICMgKi8gXGRScCsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiBwMQotICBPd25lciAgIHwgQWxsIHRhYmxlcyB8IElu c2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSByb290Ci0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gcG9zdGdyZXMgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHAxCisgT3duZXIgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlh IHJvb3QKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyB1YnVudHUgfCBm ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9u ZSAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50MSIgKGlkLCBhLCBiLCBk KQorICAgICJwdWJsaWMudDIiIEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgogCiAgICAgPHBhcmE+CkBAIC0xNDg1LDIzICsxNTAzLDQxIEBAIEluZGV4ZXM6CiAgICAgInQx X3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCiBQdWJsaWNhdGlvbnM6CiAgICAgInAxIiAo aWQsIGEsIGIsIGQpCisKKy8qIHB1YiAjICovIFxkIHQyCisgICAgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwKKyBhICAgICAg fCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGIgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8CisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAg ICAgICAgIHwKKyBkICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGUg ICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8CitJbmRleGVzOgorICAgICJ0 Ml9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorUHVibGljYXRpb25zOgorICAgICJwMSIg RVhDRVBUIChhLCBkKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4KLSAg ICAgT24gdGhlIHN1YnNjcmliZXIgbm9kZSwgY3JlYXRlIGEgdGFibGUgPGxpdGVyYWw+dDE8L2xp dGVyYWw+IHdoaWNoIG5vdwotICAgICBvbmx5IG5lZWRzIGEgc3Vic2V0IG9mIHRoZSBjb2x1bW5z IHRoYXQgd2VyZSBvbiB0aGUgcHVibGlzaGVyIHRhYmxlCi0gICAgIDxsaXRlcmFsPnQxPC9saXRl cmFsPiwgYW5kIGFsc28gY3JlYXRlIHRoZSBzdWJzY3JpcHRpb24KKyAgICAgT24gdGhlIHN1YnNj cmliZXIgbm9kZSwgY3JlYXRlIHRhYmxlcyA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4gYW5kCisgICAg IDxsaXRlcmFsPnQyPC9saXRlcmFsPiB3aGljaCBub3cgb25seSBuZWVkcyBhIHN1YnNldCBvZiB0 aGUgY29sdW1ucyB0aGF0CisgICAgIHdlcmUgb24gdGhlIHB1Ymxpc2hlciB0YWJsZXMgPGxpdGVy YWw+dDE8L2xpdGVyYWw+IGFuZAorICAgICA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4sIGFuZCBhbHNv IGNyZWF0ZSB0aGUgc3Vic2NyaXB0aW9uCiAgICAgIDxsaXRlcmFsPnMxPC9saXRlcmFsPiB0aGF0 IHN1YnNjcmliZXMgdG8gdGhlIHB1YmxpY2F0aW9uCiAgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFs Pi4KIDxwcm9ncmFtbGlzdGluZz4KIC8qIHN1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBpbnQs IGIgdGV4dCwgYSB0ZXh0LCBkIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CisvKiBzdWIgIyAqLyBD UkVBVEUgVEFCTEUgdDIoaWQgaW50LCBiIHRleHQsIGMgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtF WShpZCkpOwogLyogc3ViICMgKi8gQ1JFQVRFIFNVQlNDUklQVElPTiBzMQogLyogc3ViIC0gKi8g Q09OTkVDVElPTiAnaG9zdD1sb2NhbGhvc3QgZGJuYW1lPXRlc3RfcHViIGFwcGxpY2F0aW9uX25h bWU9czEnCiAvKiBzdWIgLSAqLyBQVUJMSUNBVElPTiBwMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9w YXJhPgogCiAgICAgPHBhcmE+Ci0gICAgIE9uIHRoZSBwdWJsaXNoZXIgbm9kZSwgaW5zZXJ0IHNv bWUgcm93cyB0byB0YWJsZSA8bGl0ZXJhbD50MTwvbGl0ZXJhbD4uCisgICAgIE9uIHRoZSBwdWJs aXNoZXIgbm9kZSwgaW5zZXJ0IHNvbWUgcm93cyB0byB0YWJsZXMgPGxpdGVyYWw+dDE8L2xpdGVy YWw+CisgICAgIGFuZCA8bGl0ZXJhbD50MjwvbGl0ZXJhbD4KIDxwcm9ncmFtbGlzdGluZz4KIC8q IHB1YiAjICovIElOU0VSVCBJTlRPIHQxIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAn ZC0xJywgJ2UtMScpOwogLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDEgVkFMVUVTKDIsICdhLTIn LCAnYi0yJywgJ2MtMicsICdkLTInLCAnZS0yJyk7CkBAIC0xNTEzLDYgKzE1NDksMTYgQEAgUHVi bGljYXRpb25zOgogICAyIHwgYS0yIHwgYi0yIHwgYy0yIHwgZC0yIHwgZS0yCiAgIDMgfCBhLTMg fCBiLTMgfCBjLTMgfCBkLTMgfCBlLTMKICgzIHJvd3MpCisvKiBwdWIgIyAqLyBJTlNFUlQgSU5U TyB0MiBWQUxVRVMoMSwgJ2EtMScsICdiLTEnLCAnYy0xJywgJ2QtMScsICdlLTEnKTsKKy8qIHB1 YiAjICovIElOU0VSVCBJTlRPIHQyIFZBTFVFUygyLCAnYS0yJywgJ2ItMicsICdjLTInLCAnZC0y JywgJ2UtMicpOworLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDIgVkFMVUVTKDMsICdhLTMnLCAn Yi0zJywgJ2MtMycsICdkLTMnLCAnZS0zJyk7CisvKiBwdWIgIyAqLyBTRUxFQ1QgKiBGUk9NIHQy IE9SREVSIEJZIGlkOworIGlkIHwgIGEgIHwgIGIgIHwgIGMgIHwgIGQgIHwgIGUKKy0tLS0rLS0t LS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8IGEtMSB8IGItMSB8IGMtMSB8IGQtMSB8 IGUtMQorICAyIHwgYS0yIHwgYi0yIHwgYy0yIHwgZC0yIHwgZS0yCisgIDMgfCBhLTMgfCBiLTMg fCBjLTMgfCBkLTMgfCBlLTMKKygzIHJvd3MpCiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAog ICAgIDxwYXJhPgpAQCAtMTUyNiw2ICsxNTcyLDEzIEBAIFB1YmxpY2F0aW9uczoKICAgMiB8IGIt MiB8IGEtMiB8IGQtMgogICAzIHwgYi0zIHwgYS0zIHwgZC0zCiAoMyByb3dzKQorLyogc3ViICMg Ki8gU0VMRUNUICogRlJPTSB0MiBPUkRFUiBCWSBpZDsKKyBpZCB8ICBiICB8ICBjICB8ICBlCist LS0tKy0tLS0tKy0tLS0tKy0tLS0tCisgIDEgfCBiLTEgfCBjLTEgfCBlLTEKKyAgMiB8IGItMiB8 IGMtMiB8IGUtMgorICAzIHwgYi0zIHwgYy0zIHwgZS0zCisoMyByb3dzKQogPC9wcm9ncmFtbGlz dGluZz48L3BhcmE+CiAKICAgPC9zZWN0Mj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRp b24uc2dtbAppbmRleCAzN2UyYzg0YmMxMC4uNTcwMGJmODMxMDAgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMyLDcgKzMyLDcgQEAgQUxURVIgUFVCTElDQVRJ T04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNF VAogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNh dGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKLSAgICBUQUJM RSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVw bGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCisg ICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25h bWU8L3JlcGxhY2VhYmxlPiBbICogXSBbIFsgRVhDRVBUIF0gKCBjb2x1bW5fbmFtZSBbLCAuLi4g XSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9u PC9yZXBsYWNlYWJsZT4gKSBdIFssIC4uLiBdCiAgICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VS UkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQogCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+ CkBAIC0yNjAsNiArMjYwLDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGlj YXRpb24gQUREIEFMTCBUQUJMRVMgRVhDRVBUIHVzZXJzLCBkZXBhcnRtZW50CiAgICA8c3RydWN0 bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoKIDxwcm9ncmFtbGlzdGlu Zz4KIEFMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIFRBQkxFIHVz ZXJzLCBkZXBhcnRtZW50cywgVEFCTEVTIElOIFNDSEVNQSBwcm9kdWN0aW9uOworPC9wcm9ncmFt bGlzdGluZz48L3BhcmE+CisKKyAgPHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlvbiA8c3RydWN0 bmFtZT5teXB1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBhZGQgdGFibGUKKyAgIDxzdHJ1Y3Ru YW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiBleGNlcHQgY29sdW1uCisgICA8c3RydWN0ZmllbGQ+c2Vj dXJpdHlfcGluPC9zdHJ1Y3RmaWVsZD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNB VElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJMRSB1c2VycyBFWENFUFQgKHNlY3Vy aXR5X3Bpbik7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDdmZDg4NzJkYjVmLi5hZjQ2ZDZh NzkxOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yOCw3 ICsyOCw3IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+CiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8 L3BocmFzZT4KIAotICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdI RVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2Vh YmxlPiApIF0gWywgLi4uIF0KKyAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBFWENFUFQgXSAo IGNvbHVtbl9uYW1lIFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJM RVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1l PC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCiAKIDxwaHJhc2U+d2hl cmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxh Y2VhYmxlPiBpczo8L3BocmFzZT4KQEAgLTEwMyw2ICsxMDMsMTMgQEAgQ1JFQVRFIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAg ICAgIGxpc3RzLgogICAgICA8L3BhcmE+CiAKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIGEgY29s dW1uIGxpc3QgaXMgc3BlY2lmaWVkIHdpdGggRVhDRVBULCB0aGUgbmFtZWQgY29sdW1ucyBhcmUg bm90CisgICAgICByZXBsaWNhdGVkLiBUaGUgZXhjbHVkZWQgY29sdW1uIGxpc3QgY2Fubm90IGNv bnRhaW4gZ2VuZXJhdGVkIGNvbHVtbnMuCisgICAgICBTcGVjaWZ5aW5nIGEgY29sdW1uIGxpc3Qg aGFzIG5vIGVmZmVjdCBvbiA8bGl0ZXJhbD5UUlVOQ0FURTwvbGl0ZXJhbD4KKyAgICAgIGNvbW1h bmRzLgorICAgICA8L3BhcmE+CisKICAgICAgPHBhcmE+CiAgICAgICBPbmx5IHBlcnNpc3RlbnQg YmFzZSB0YWJsZXMgYW5kIHBhcnRpdGlvbmVkIHRhYmxlcyBjYW4gYmUgcGFydCBvZiBhCiAgICAg ICBwdWJsaWNhdGlvbi4gIFRlbXBvcmFyeSB0YWJsZXMsIHVubG9nZ2VkIHRhYmxlcywgZm9yZWln biB0YWJsZXMsCkBAIC00NzQsNiArNDgxLDE0IEBAIENSRUFURSBQVUJMSUNBVElPTiBteXB1Ymxp Y2F0aW9uIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudHM7CiA8cHJvZ3Jh bWxpc3Rpbmc+CiBDUkVBVEUgUFVCTElDQVRJT04gdXNlcnNfZmlsdGVyZWQgRk9SIFRBQkxFIHVz ZXJzICh1c2VyX2lkLCBmaXJzdG5hbWUpOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisKKyAg PHBhcmE+CisgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdl cyBmb3IgdGFibGUgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+CisgICBleGNlcHQgY2hh bmdlcyBmb3IgY29sdW1uIDxzdHJ1Y3RmaWVsZD5zZWN1cml0eV9waW48L3N0cnVjdGZpZWxkPjoK Kzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElPTiB1c2Vyc19zYWZlIEZPUiBUQUJM RSB1c2VycyBFWENFUFQgKHNlY3VyaXR5X3Bpbik7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3Bh cmE+CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uYwppbmRleCBlYzU4MGUzYjA1MC4uOGZkOWFjODQ0NTEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmMKQEAgLTMwMiw2ICszMDIsNTMgQEAgY2hlY2tfYW5kX2ZldGNoX2Nv bHVtbl9saXN0KFB1YmxpY2F0aW9uICpwdWIsIE9pZCByZWxpZCwgTWVtb3J5Q29udGV4dCBtY3h0 LAogCXJldHVybiBmb3VuZDsKIH0KIAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcmVsYXRp b24gaGFzIGV4bHVkZWQgY29sdW1uIGxpc3QgYXNzb2NpYXRlZCB3aXRoIHRoZQorICogcHVibGlj YXRpb24sIGZhbHNlIG90aGVyd2lzZS4KKyAqCisgKiBJZiBhIGV4Y2x1ZGUgY29sdW1uIGxpc3Qg aXMgZm91bmQsIHRoZSBjb3JyZXNwb25kaW5nIGJpdG1hcCBpcyByZXR1cm5lZAorICogdGhyb3Vn aCB0aGUgY29scyBwYXJhbWV0ZXIsIGlmIHByb3ZpZGVkLiBUaGUgYml0bWFwIGlzIGNvbnN0cnVj dGVkIHdpdGhpbiB0aGUKKyAqIGdpdmVuIG1lbW9yeSBjb250ZXh0IChtY3h0KS4KKyAqLworCiti b29sCitjaGVja19hbmRfZmV0Y2hfZXhjbHVkZV9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHVi LCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKKwkJCQkJCQkJCUJpdG1hcHNldCAqKmNv bHMpCit7CisJSGVhcFR1cGxlCWNmdHVwbGU7CisJYm9vbAkJZm91bmQgPSBmYWxzZTsKKworCWlm IChwdWItPmFsbHRhYmxlcykKKwkJcmV0dXJuIGZhbHNlOworCisJY2Z0dXBsZSA9IFNlYXJjaFN5 c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwKKwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0ocmVs aWQpLAorCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShwdWItPm9pZCkpOworCWlmIChIZWFwVHVw bGVJc1ZhbGlkKGNmdHVwbGUpKQorCXsKKwkJRGF0dW0JCWNmZGF0dW07CisJCWJvb2wJCWlzbnVs bDsKKworCQkvKiBMb29rdXAgdGhlIGNvbHVtbiBsaXN0IGF0dHJpYnV0ZS4gKi8KKwkJY2ZkYXR1 bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgY2Z0dXBsZSwKKwkJCQkJCQkJ ICBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2x1ZGVhdHRycywgJmlzbnVsbCk7CisKKwkJ LyogV2FzIGEgY29sdW1uIGxpc3QgZm91bmQ/ICovCisJCWlmICghaXNudWxsKQorCQl7CisJCQkv KiBCdWlsZCB0aGUgY29sdW1uIGxpc3QgYml0bWFwIGluIHRoZSBnaXZlbiBtZW1vcnkgY29udGV4 dC4gKi8KKwkJCWlmIChjb2xzKQorCQkJCSpjb2xzID0gcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0 KCpjb2xzLCBjZmRhdHVtLCBtY3h0KTsKKworCQkJZm91bmQgPSB0cnVlOworCQl9CisKKwkJUmVs ZWFzZVN5c0NhY2hlKGNmdHVwbGUpOworCX0KKworCXJldHVybiBmb3VuZDsKK30KKwogLyoKICAq IEdldHMgdGhlIHJlbGF0aW9ucyBiYXNlZCBvbiB0aGUgcHVibGljYXRpb24gcGFydGl0aW9uIG9w dGlvbiBmb3IgYSBzcGVjaWZpZWQKICAqIHJlbGF0aW9uLgpAQCAtNDQ5LDYgKzQ5Niw3IEBAIHB1 YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJp LAogCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZCh0YXJnZXRyZWwpOwogCU9pZAkJCXB1 YnJlbG9pZDsKIAlCaXRtYXBzZXQgICphdHRudW1zOworCUJpdG1hcHNldCAgKmV4Y2x1ZGVhdHRu dW1zOwogCVB1YmxpY2F0aW9uICpwdWIgPSBHZXRQdWJsaWNhdGlvbihwdWJpZCk7CiAJT2JqZWN0 QWRkcmVzcyBteXNlbGYsCiAJCQkJcmVmZXJlbmNlZDsKQEAgLTQ4MSw2ICs1MjksMTMgQEAgcHVi bGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmks CiAJLyogVmFsaWRhdGUgYW5kIHRyYW5zbGF0ZSBjb2x1bW4gbmFtZXMgaW50byBhIEJpdG1hcHNl dCBvZiBhdHRudW1zLiAqLwogCWF0dG51bXMgPSBwdWJfY29sbGlzdF92YWxpZGF0ZShwcmktPnJl bGF0aW9uLCBwcmktPmNvbHVtbnMpOwogCisJLyoKKwkgKiBWYWxpZGF0ZSBhbmQgdHJhbnNsYXRl IGV4Y2x1ZGVkIGNvbHVtbiBuYW1lcyBpbnRvIGEgQml0bWFwc2V0IG9mCisJICogYXR0bnVtcy4K KwkgKi8KKwlleGNsdWRlYXR0bnVtcyA9IHB1Yl9leGNsdWRlX2NvbGxpc3RfdmFsaWRhdGUocHJp LT5yZWxhdGlvbiwKKwkJCQkJCQkJCQkJCSAgcHJpLT5leGNsdWRlX2NvbHVtbnMpOworCiAJLyog Rm9ybSBhIHR1cGxlLiAqLwogCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKIAlt ZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKQEAgLTUwNyw2ICs1NjIsMTEgQEAg cHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpw cmksCiAJZWxzZQogCQludWxsc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzIC0gMV0g PSB0cnVlOwogCisJaWYgKHByaS0+ZXhjbHVkZV9jb2x1bW5zKQorCQl2YWx1ZXNbQW51bV9wZ19w dWJsaWNhdGlvbl9yZWxfcHJleGNsdWRlYXR0cnMgLSAxXSA9IFBvaW50ZXJHZXREYXR1bShhdHRu dW1zdG9pbnQydmVjdG9yKGV4Y2x1ZGVhdHRudW1zKSk7CisJZWxzZQorCQludWxsc1tBbnVtX3Bn X3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2x1ZGVhdHRycyAtIDFdID0gdHJ1ZTsKKwogCXR1cCA9IGhl YXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMpOwogCiAJ LyogSW5zZXJ0IHR1cGxlIGludG8gY2F0YWxvZy4gKi8KQEAgLTYwOSw2ICs2NjksNTggQEAgcHVi X2NvbGxpc3RfdmFsaWRhdGUoUmVsYXRpb24gdGFyZ2V0cmVsLCBMaXN0ICpjb2x1bW5zKQogCXJl dHVybiBzZXQ7CiB9CiAKKy8qCisgKiBwdWJfZXhjbHVkZV9jb2xsaXN0X3ZhbGlkYXRlCisgKgkJ UHJvY2VzcyBhbmQgdmFsaWRhdGUgdGhlICdleGNsdWRlZCBjb2x1bW5zJyBsaXN0IGFuZCBlbnN1 cmUgdGhlIGNvbHVtbnMKKyAqCQlhcmUgYWxsIHZhbGlkIHRvIGV4Y2x1ZGUgZnJvbSBwdWJsaWNh dGlvbi4gIENoZWNrcyBmb3IgYW5kIHJhaXNlcyBhbgorICogCQlFUlJPUiBmb3IgYW55IHVua25v d24gY29sdW1ucywgc3lzdGVtIGNvbHVtbnMsIGR1cGxpY2F0ZSBjb2x1bW5zLCBvcgorICoJCWdl bmVyYXRlZCBjb2x1bW5zLgorICoKKyAqIExvb2tzIHVwIGVhY2ggY29sdW1uJ3MgYXR0bnVtIGFu ZCByZXR1cm5zIGEgMC1iYXNlZCBCaXRtYXBzZXQgb2YgdGhlCisgKiBjb3JyZXNwb25kaW5nIGF0 dG51bXMuCisgKi8KK0JpdG1hcHNldCAqCitwdWJfZXhjbHVkZV9jb2xsaXN0X3ZhbGlkYXRlKFJl bGF0aW9uIHRhcmdldHJlbCwgTGlzdCAqZXhjbHVkZV9jb2x1bW5zKQoreworCUJpdG1hcHNldCAg KnNldCA9IE5VTEw7CisJTGlzdENlbGwgICAqbGM7CisJVHVwbGVEZXNjCXR1cGRlc2MgPSBSZWxh dGlvbkdldERlc2NyKHRhcmdldHJlbCk7CisKKwlmb3JlYWNoKGxjLCBleGNsdWRlX2NvbHVtbnMp CisJeworCQljaGFyCSAgICpjb2xuYW1lID0gc3RyVmFsKGxmaXJzdChsYykpOworCQlBdHRyTnVt YmVyCWF0dG51bSA9IGdldF9hdHRudW0oUmVsYXRpb25HZXRSZWxpZCh0YXJnZXRyZWwpLCBjb2xu YW1lKTsKKworCQlpZiAoYXR0bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAorCQkJCQllcnJt c2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJ CQkJCSAgIGNvbG5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpKTsKKwor CQlpZiAoIUF0dHJOdW1iZXJJc0ZvclVzZXJEZWZpbmVkQXR0cihhdHRudW0pKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSks CisJCQkJCWVycm1zZygiY2Fubm90IHVzZSBzeXN0ZW0gY29sdW1uIFwiJXNcIiBpbiBwdWJsaWNh dGlvbiBleGNlcHQgY29sdW1uIGxpc3QiLAorCQkJCQkJICAgY29sbmFtZSkpOworCisJCWlmIChU dXBsZURlc2NBdHRyKHR1cGRlc2MsIGF0dG51bSAtIDEpLT5hdHRnZW5lcmF0ZWQpCisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNF KSwKKwkJCQkJZXJybXNnKCJjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gXCIlc1wiIGluIHB1 YmxpY2F0aW9uIGV4Y2VwdCBjb2x1bW4gbGlzdCIsCisJCQkJCQkgICBjb2xuYW1lKSk7CisKKwkJ aWYgKGJtc19pc19tZW1iZXIoYXR0bnVtLCBzZXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ ZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQllcnJtc2coImR1cGxpY2F0 ZSBjb2x1bW4gXCIlc1wiIGluIHB1YmxpY2F0aW9uIGV4Y2VwdCBjb2x1bW4gbGlzdCIsCisJCQkJ CQkgICBjb2xuYW1lKSk7CisKKwkJc2V0ID0gYm1zX2FkZF9tZW1iZXIoc2V0LCBhdHRudW0pOwor CX0KKworCXJldHVybiBzZXQ7Cit9CisKIC8qCiAgKiBUcmFuc2Zvcm0gYSBjb2x1bW4gbGlzdCAo cmVwcmVzZW50ZWQgYnkgYW4gYXJyYXkgRGF0dW0pIHRvIGEgYml0bWFwc2V0LgogICoKQEAgLTY0 NiwxMCArNzU4LDEyIEBAIHB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChCaXRtYXBzZXQgKmNvbHVt bnMsIERhdHVtIHB1YmNvbHMsIE1lbW9yeUNvbnRleHQgbWN4dCkKICAqIFJldHVybnMgYSBiaXRt YXAgcmVwcmVzZW50aW5nIHRoZSBjb2x1bW5zIG9mIHRoZSBzcGVjaWZpZWQgdGFibGUuCiAgKgog ICogR2VuZXJhdGVkIGNvbHVtbnMgYXJlIGluY2x1ZGVkIGlmIGluY2x1ZGVfZ2VuY29sc190eXBl IGlzCi0gKiBQVUJMSVNIX0dFTkNPTFNfU1RPUkVELgorICogUFVCTElTSF9HRU5DT0xTX1NUT1JF RC4gQ29sdW1ucyB0aGF0IGFyZSBpbiB0aGUgZXhjbHVkZWNvbHMgYXJlIGV4Y2x1ZGVkIGZyb20K KyAqIHRoZSBjb2x1bW4gbGlzdC4KICAqLwogQml0bWFwc2V0ICoKLXB1Yl9mb3JtX2NvbHNfbWFw KFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5 cGUpCitwdWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdlbmNvbHNU eXBlIGluY2x1ZGVfZ2VuY29sc190eXBlLAorCQkJCSAgQml0bWFwc2V0ICpleGNsdWRlY29scykK IHsKIAlCaXRtYXBzZXQgICpyZXN1bHQgPSBOVUxMOwogCVR1cGxlRGVzYwlkZXNjID0gUmVsYXRp b25HZXREZXNjcihyZWxhdGlvbik7CkBAIC02NzIsNiArNzg2LDkgQEAgcHViX2Zvcm1fY29sc19t YXAoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNf dHlwZSkKIAkJCQljb250aW51ZTsKIAkJfQogCisJCWlmIChleGNsdWRlY29scyAmJiBibXNfaXNf bWVtYmVyKGF0dC0+YXR0bnVtLCBleGNsdWRlY29scykpCisJCQljb250aW51ZTsKKwogCQlyZXN1 bHQgPSBibXNfYWRkX21lbWJlcihyZXN1bHQsIGF0dC0+YXR0bnVtKTsKIAl9CiAKQEAgLTEyNjMs NiArMTM4MCw5IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykK IAkJT2lkCQkJc2NoZW1haWQgPSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7CiAJCURhdHVtCQl2 YWx1ZXNbTlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9IHswfTsKIAkJYm9vbAkJbnVsbHNb TlVNX1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9IHswfTsKKwkJRGF0dW0JCWV4Y2x1ZGVhdHRu dW1zX2RhdHVtOworCQlCaXRtYXBzZXQgICpleGNsdWRlYXR0bnVtcyA9IE5VTEw7CisJCWJvb2wJ CWlzbnVsbDsKIAogCQkvKgogCQkgKiBGb3JtIHR1cGxlIHdpdGggYXBwcm9wcmlhdGUgZGF0YS4K QEAgLTEyOTYsNiArMTQxNiwxMyBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNU SU9OX0FSR1MpCiAJCQl2YWx1ZXNbM10gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxN QVAsIHB1YnR1cGxlLAogCQkJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwK IAkJCQkJCQkJCQkmKG51bGxzWzNdKSk7CisKKwkJCS8qIGdldCB0aGUgZXhjbHVkZWQgY29sdW1u IGxpc3QgKi8KKwkJCWV4Y2x1ZGVhdHRudW1zX2RhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJ Q0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKKwkJCQkJCQkJCQkJCSAgIEFudW1fcGdfcHVibGljYXRp b25fcmVsX3ByZXhjbHVkZWF0dHJzLAorCQkJCQkJCQkJCQkJICAgJmlzbnVsbCk7CisJCQlpZiAo IWlzbnVsbCkKKwkJCQlleGNsdWRlYXR0bnVtcyA9IHB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChO VUxMLCBleGNsdWRlYXR0bnVtc19kYXR1bSwgTlVMTCk7CiAJCX0KIAkJZWxzZQogCQl7CkBAIC0x MzM1LDYgKzE0NjIsMTAgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9B UkdTKQogCQkJCQkJY29udGludWU7CiAJCQkJfQogCisJCQkJLyogU2tpcCBjb2x1bW5zIHRoYXQg YXJlIHBhcnQgb2YgZXhjbHVkZWQgY29sdW1uIGxpc3QgKi8KKwkJCQlpZiAoZXhjbHVkZWF0dG51 bXMgJiYgYm1zX2lzX21lbWJlcihhdHQtPmF0dG51bSwgZXhjbHVkZWF0dG51bXMpKQorCQkJCQlj b250aW51ZTsKKwogCQkJCWF0dG51bXNbbmF0dG51bXMrK10gPSBhdHQtPmF0dG51bTsKIAkJCX0K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA1MTk0YjJmYjZlMi4u ZTg1MGMyMzQ1ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9u Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC0z NTgsNyArMzU4LDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwg UmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKICAqIFRoaXMgZnVuY3Rpb24gZXZh bHVhdGVzIHR3byBjb25kaXRpb25zOgogICoKICAqIDEuIEVuc3VyZXMgdGhhdCBhbGwgY29sdW1u cyByZWZlcmVuY2VkIGluIHRoZSBSRVBMSUNBIElERU5USVRZIGFyZSBjb3ZlcmVkCi0gKiAgICBi eSB0aGUgY29sdW1uIGxpc3QuIElmIGFueSBjb2x1bW4gaXMgbWlzc2luZywgKmludmFsaWRfY29s dW1uX2xpc3QgaXMgc2V0CisgKiAgICBieSB0aGUgY29sdW1uIGxpc3QgYW5kIG5vdCBwYXJ0IG9m IGV4Y2x1ZGVkIGNvbHVtbiBsaXN0LiBJZiBhbnkgY29sdW1uIGlzCisgKiAJICBtaXNzaW5nIG9y IGlzIHBhcnQgb2YgZXhjbHVkZSBjb2x1bW4gbGlzdCwgKmludmFsaWRfY29sdW1uX2xpc3QgaXMg c2V0CiAgKiAgICB0byB0cnVlLgogICogMi4gRW5zdXJlcyB0aGF0IGFsbCB0aGUgZ2VuZXJhdGVk IGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQTElDQSBJREVOVElUWQogICogICAgYXJlIHB1 Ymxpc2hlZCwgZWl0aGVyIGJ5IGJlaW5nIGV4cGxpY2l0bHkgbmFtZWQgaW4gdGhlIGNvbHVtbiBs aXN0IG9yLCBpZgpAQCAtMzc4LDYgKzM3OSw3IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJT2lkCQkJ cHVibGlzaF9hc19yZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwogCUJpdG1hcHNl dCAgKmlkYXR0cnM7CiAJQml0bWFwc2V0ICAqY29sdW1ucyA9IE5VTEw7CisJQml0bWFwc2V0ICAq ZXhjbHVkZV9jb2x1bW5zID0gTlVMTDsKIAlUdXBsZURlc2MJZGVzYyA9IFJlbGF0aW9uR2V0RGVz Y3IocmVsYXRpb24pOwogCVB1YmxpY2F0aW9uICpwdWI7CiAJaW50CQkJeDsKQEAgLTQwNSwxMSAr NDA3LDE1IEBAIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9u IHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJLyogRmV0Y2ggdGhlIGNvbHVtbiBsaXN0ICov CiAJcHViID0gR2V0UHVibGljYXRpb24ocHViaWQpOwogCWNoZWNrX2FuZF9mZXRjaF9jb2x1bW5f bGlzdChwdWIsIHB1Ymxpc2hfYXNfcmVsaWQsIE5VTEwsICZjb2x1bW5zKTsKKwljaGVja19hbmRf ZmV0Y2hfZXhjbHVkZV9jb2x1bW5fbGlzdChwdWIsIHB1Ymxpc2hfYXNfcmVsaWQsIE5VTEwsICZl eGNsdWRlX2NvbHVtbnMpOwogCiAJaWYgKHJlbGF0aW9uLT5yZF9yZWwtPnJlbHJlcGxpZGVudCA9 PSBSRVBMSUNBX0lERU5USVRZX0ZVTEwpCiAJewotCQkvKiBXaXRoIFJFUExJQ0EgSURFTlRJVFkg RlVMTCwgbm8gY29sdW1uIGxpc3QgaXMgYWxsb3dlZC4gKi8KLQkJKmludmFsaWRfY29sdW1uX2xp c3QgPSAoY29sdW1ucyAhPSBOVUxMKTsKKwkJLyoKKwkJICogV2l0aCBSRVBMSUNBIElERU5USVRZ IEZVTEwsIG5vIGNvbHVtbiBsaXN0IGFuZCBubyBleGNsdWRlZCBjb2x1bW4KKwkJICogbGlzdCBp cyBhbGxvd2VkLgorCQkgKi8KKwkJKmludmFsaWRfY29sdW1uX2xpc3QgPSAoY29sdW1ucyAhPSBO VUxMIHx8IGV4Y2x1ZGVfY29sdW1ucyAhPSBOVUxMKTsKIAogCQkvKgogCQkgKiBBcyB3ZSBkb24n dCBhbGxvdyBhIGNvbHVtbiBsaXN0IHdpdGggUkVQTElDQSBJREVOVElUWSBGVUxMLCB0aGUKQEAg LTQ3MSw2ICs0NzcsMTYgQEAgcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwg UmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAkJCQlicmVhazsKIAkJCX0KIAor CQkJLyoKKwkJCSAqIElmIFJFUExJQ0EgSURFTlRJVFkgc2hvdWxkIG5vdCBjb250YWluIGNvbHVt bnMgd2hpY2ggYXJlCisJCQkgKiBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4KKwkJCSAq LworCQkJaWYgKGV4Y2x1ZGVfY29sdW1ucyAmJiBibXNfaXNfbWVtYmVyKGF0dC0+YXR0bnVtLCBl eGNsdWRlX2NvbHVtbnMpKQorCQkJeworCQkJCSppbnZhbGlkX2NvbHVtbl9saXN0ID0gdHJ1ZTsK KwkJCQlicmVhazsKKwkJCX0KKwogCQkJLyogU2tpcCB2YWxpZGF0aW5nIHRoZSBjb2x1bW4gbGlz dCBzaW5jZSBpdCBpcyBub3QgZGVmaW5lZCAqLwogCQkJY29udGludWU7CiAJCX0KQEAgLTc5OCw3 ICs4MTQsNyBAQCBDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChjaGFyICpwdWJuYW1lLCBMaXN0 ICp0YWJsZXMsCiAJewogCQlQdWJsaWNhdGlvblJlbEluZm8gKnByaSA9IChQdWJsaWNhdGlvblJl bEluZm8gKikgbGZpcnN0KGxjKTsKIAotCQlpZiAocHJpLT5jb2x1bW5zID09IE5JTCkKKwkJaWYg KHByaS0+Y29sdW1ucyA9PSBOSUwgJiYgcHJpLT5leGNsdWRlX2NvbHVtbnMgPT0gTklMKQogCQkJ Y29udGludWU7CiAKIAkJLyoKQEAgLTEwNDMsNiArMTA1OSw3IEBAIEFsdGVyUHVibGljYXRpb25P cHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJ CQljaGFyCSAgICpyZWxuYW1lOwogCQkJYm9vbAkJaGFzX3Jvd2ZpbHRlcjsKIAkJCWJvb2wJCWhh c19jb2xsaXN0OworCQkJYm9vbAkJaGFzX2V4Y2x1ZGVfY29sbGlzdDsKIAogCQkJLyoKIAkJCSAq IEJld2FyZTogd2UgZG9uJ3QgaGF2ZSBsb2NrIG9uIHRoZSByZWxhdGlvbnMsIHNvIGNvcGUgc2ls ZW50bHkKQEAgLTEwNTYsNyArMTA3Myw5IEBAIEFsdGVyUHVibGljYXRpb25PcHRpb25zKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJCQkJY29udGludWU7 CiAJCQloYXNfcm93ZmlsdGVyID0gIWhlYXBfYXR0aXNudWxsKHJmdHVwbGUsIEFudW1fcGdfcHVi bGljYXRpb25fcmVsX3BycXVhbCwgTlVMTCk7CiAJCQloYXNfY29sbGlzdCA9ICFoZWFwX2F0dGlz bnVsbChyZnR1cGxlLCBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzLCBOVUxMKTsKLQkJ CWlmICghaGFzX3Jvd2ZpbHRlciAmJiAhaGFzX2NvbGxpc3QpCisJCQloYXNfZXhjbHVkZV9jb2xs aXN0ID0gIWhlYXBfYXR0aXNudWxsKHJmdHVwbGUsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3By ZXhjbHVkZWF0dHJzLCBOVUxMKTsKKworCQkJaWYgKCFoYXNfcm93ZmlsdGVyICYmICFoYXNfY29s bGlzdCAmJiAhaGFzX2V4Y2x1ZGVfY29sbGlzdCkKIAkJCXsKIAkJCQlSZWxlYXNlU3lzQ2FjaGUo cmZ0dXBsZSk7CiAJCQkJY29udGludWU7CkBAIC0xMDgzLDYgKzExMDIsMTQgQEAgQWx0ZXJQdWJs aWNhdGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAq c3RtdCwKIAkJCQkJCQkJc3RtdC0+cHVibmFtZSksCiAJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcHVi bGljYXRpb24gY29udGFpbnMgYSBXSEVSRSBjbGF1c2UgZm9yIHBhcnRpdGlvbmVkIHRhYmxlIFwi JXNcIiwgd2hpY2ggaXMgbm90IGFsbG93ZWQgd2hlbiBcIiVzXCIgaXMgZmFsc2UuIiwKIAkJCQkJ CQkJICAgcmVsbmFtZSwgInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IikpKTsKKwkJCWlmICho YXNfZXhjbHVkZV9jb2xsaXN0KQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBz ZXQgcGFyYW1ldGVyIFwiJXNcIiB0byBmYWxzZSBmb3IgcHVibGljYXRpb24gXCIlc1wiIiwKKwkJ CQkJCQkJInB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IiwKKwkJCQkJCQkJc3RtdC0+cHVibmFt ZSksCisJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcHVibGljYXRpb24gY29udGFpbnMgYSBleGNlcHQg Y29sdW1uIGxpc3QgZm9yIHBhcnRpdGlvbmVkIHRhYmxlIFwiJXNcIiwgd2hpY2ggaXMgbm90IGFs bG93ZWQgd2hlbiBcIiVzXCIgaXMgZmFsc2UuIiwKKwkJCQkJCQkJICAgcmVsbmFtZSwgInB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290IikpKTsKIAkJCUFzc2VydChoYXNfY29sbGlzdCk7CiAJCQll cmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZB TFVFKSwKQEAgLTE0NDMsNiArMTQ3MCw3IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQ dWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQlIZWFwVHVwbGUJcmZ0dXBs ZTsKIAkJCU5vZGUJICAgKm9sZHJlbHdoZXJlY2xhdXNlID0gTlVMTDsKIAkJCUJpdG1hcHNldCAg Km9sZGNvbHVtbnMgPSBOVUxMOworCQkJQml0bWFwc2V0ICAqb2xkZXhjbHVkZWNvbHVtbnMgPSBO VUxMOwogCiAJCQkvKiBsb29rIHVwIHRoZSBjYWNoZSBmb3IgdGhlIG9sZCByZWxtYXAgKi8KIAkJ CXJmdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJT05SRUxNQVAsCkBAIC0xNDU4LDYg KzE0ODYsNyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpz dG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCWJvb2wJCWlzbnVsbCA9IHRydWU7CiAJCQkJRGF0dW0J CXdoZXJlQ2xhdXNlRGF0dW07CiAJCQkJRGF0dW0JCWNvbHVtbkxpc3REYXR1bTsKKwkJCQlEYXR1 bQkJZXhjbHVkZUNvbHVtbkxpc3REYXR1bTsKIAogCQkJCS8qIExvYWQgdGhlIFdIRVJFIGNsYXVz ZSBmb3IgdGhpcyB0YWJsZS4gKi8KIAkJCQl3aGVyZUNsYXVzZURhdHVtID0gU3lzQ2FjaGVHZXRB dHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLApAQCAtMTQ3NCw2ICsxNTAzLDE0IEBAIEFs dGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBs ZSB0dXAsCiAJCQkJaWYgKCFpc251bGwpCiAJCQkJCW9sZGNvbHVtbnMgPSBwdWJfY29sbGlzdF90 b19iaXRtYXBzZXQoTlVMTCwgY29sdW1uTGlzdERhdHVtLCBOVUxMKTsKIAorCQkJCS8qIFRyYW5z Zm9ybSB0aGUgaW50MnZlY3RvciBleGNsdWRlIGNvbHVtbiBsaXN0IHRvIGEgYml0bWFwLiAqLwor CQkJCWV4Y2x1ZGVDb2x1bW5MaXN0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05S RUxNQVAsIHJmdHVwbGUsCisJCQkJCQkJCQkJCQkJCSBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9w cmV4Y2x1ZGVhdHRycywKKwkJCQkJCQkJCQkJCQkJICZpc251bGwpOworCisJCQkJaWYgKCFpc251 bGwpCisJCQkJCW9sZGV4Y2x1ZGVjb2x1bW5zID0gcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0KE5V TEwsIGV4Y2x1ZGVDb2x1bW5MaXN0RGF0dW0sIE5VTEwpOworCiAJCQkJUmVsZWFzZVN5c0NhY2hl KHJmdHVwbGUpOwogCQkJfQogCkBAIC0xNDgyLDYgKzE1MTksNyBAQCBBbHRlclB1YmxpY2F0aW9u VGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCVB1 YmxpY2F0aW9uUmVsSW5mbyAqbmV3cHVicmVsOwogCQkJCU9pZAkJCW5ld3JlbGlkOwogCQkJCUJp dG1hcHNldCAgKm5ld2NvbHVtbnMgPSBOVUxMOworCQkJCUJpdG1hcHNldCAgKm5ld2V4Y2x1ZGVj b2x1bW5zID0gTlVMTDsKIAogCQkJCW5ld3B1YnJlbCA9IChQdWJsaWNhdGlvblJlbEluZm8gKikg bGZpcnN0KG5ld2xjKTsKIAkJCQluZXdyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQobmV3cHVicmVs LT5yZWxhdGlvbik7CkBAIC0xNDk1LDYgKzE1MzMsOSBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVz KEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCW5ld2NvbHVt bnMgPSBwdWJfY29sbGlzdF92YWxpZGF0ZShuZXdwdWJyZWwtPnJlbGF0aW9uLAogCQkJCQkJCQkJ CQkJICBuZXdwdWJyZWwtPmNvbHVtbnMpOwogCisJCQkJbmV3ZXhjbHVkZWNvbHVtbnMgPSBwdWJf Y29sbGlzdF92YWxpZGF0ZShuZXdwdWJyZWwtPnJlbGF0aW9uLAorCQkJCQkJCQkJCQkJCQkgbmV3 cHVicmVsLT5leGNsdWRlX2NvbHVtbnMpOworCiAJCQkJLyoKIAkJCQkgKiBDaGVjayBpZiBhbnkg b2YgdGhlIG5ldyBzZXQgb2YgcmVsYXRpb25zIG1hdGNoZXMgd2l0aCB0aGUKIAkJCQkgKiBleGlz dGluZyByZWxhdGlvbnMgaW4gdGhlIHB1YmxpY2F0aW9uLiBBZGRpdGlvbmFsbHksIGlmIHRoZQpA QCAtMTUwNSw3ICsxNTQ2LDggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJCQlpZiAobmV3cmVsaWQgPT0gb2xkcmVs aWQpCiAJCQkJewogCQkJCQlpZiAoZXF1YWwob2xkcmVsd2hlcmVjbGF1c2UsIG5ld3B1YnJlbC0+ d2hlcmVDbGF1c2UpICYmCi0JCQkJCQlibXNfZXF1YWwob2xkY29sdW1ucywgbmV3Y29sdW1ucykp CisJCQkJCQlibXNfZXF1YWwob2xkY29sdW1ucywgbmV3Y29sdW1ucykgJiYKKwkJCQkJCWJtc19l cXVhbChvbGRleGNsdWRlY29sdW1ucywgbmV3ZXhjbHVkZWNvbHVtbnMpKQogCQkJCQl7CiAJCQkJ CQlmb3VuZCA9IHRydWU7CiAJCQkJCQlicmVhazsKQEAgLTE1MjIsNiArMTU2NCw3IEBAIEFsdGVy UHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0 dXAsCiAJCQkJb2xkcmVsID0gcGFsbG9jKHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKIAkJ CQlvbGRyZWwtPndoZXJlQ2xhdXNlID0gTlVMTDsKIAkJCQlvbGRyZWwtPmNvbHVtbnMgPSBOSUw7 CisJCQkJb2xkcmVsLT5leGNsdWRlX2NvbHVtbnMgPSBOSUw7CiAJCQkJb2xkcmVsLT5yZWxhdGlv biA9IHRhYmxlX29wZW4ob2xkcmVsaWQsCiAJCQkJCQkJCQkJCSAgU2hhcmVVcGRhdGVFeGNsdXNp dmVMb2NrKTsKIAkJCQlkZWxyZWxzID0gbGFwcGVuZChkZWxyZWxzLCBvbGRyZWwpOwpAQCAtMTU5 Niw2ICsxNjM5LDE3IEBAIEFsdGVyUHVibGljYXRpb25TY2hlbWFzKEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LAogCQkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpLAogCQkJCQkJZXJyZGV0YWlsKCJT Y2hlbWFzIGNhbm5vdCBiZSBhZGRlZCBpZiBhbnkgdGFibGVzIHRoYXQgc3BlY2lmeSBhIGNvbHVt biBsaXN0IGFyZSBhbHJlYWR5IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uLiIpKTsKIAorCQkJLyoK KwkJCSAqIERpc2FsbG93IGFkZGluZyBzY2hlbWEgaWYgZXhjbHVkZSBjb2x1bW4gbGlzdCBpcyBh bHJlYWR5IHBhcnQKKwkJCSAqIG9mIHRoZSBwdWJsaWNhdGlvbi4gU2VlIENoZWNrUHViUmVsYXRp b25Db2x1bW5MaXN0LgorCQkJICovCisJCQlpZiAoIWhlYXBfYXR0aXNudWxsKGNvbHR1cGxlLCBB bnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2x1ZGVhdHRycywgTlVMTCkpCisJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSks CisJCQkJCQllcnJtc2coImNhbm5vdCBhZGQgc2NoZW1hIHRvIHB1YmxpY2F0aW9uIFwiJXNcIiIs CisJCQkJCQkJICAgc3RtdC0+cHVibmFtZSksCisJCQkJCQllcnJkZXRhaWwoIlNjaGVtYXMgY2Fu bm90IGJlIGFkZGVkIGlmIGFueSB0YWJsZXMgdGhhdCBzcGVjaWZ5IGFuIGV4Y2VwdCBjb2x1bW4g bGlzdCBhcmUgYWxyZWFkeSBwYXJ0IG9mIHRoZSBwdWJsaWNhdGlvbi4iKSk7CisKIAkJCVJlbGVh c2VTeXNDYWNoZShjb2x0dXBsZSk7CiAJCX0KIApAQCAtMTkyMiw2ICsxOTc2LDcgQEAgT3BlblRh YmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJCXB1Yl9yZWwtPndoZXJlQ2xhdXNlID0gdC0+d2hlcmVD bGF1c2U7CiAJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5jb2x1bW5zOwogCQlwdWJfcmVsLT5leGNl cHQgPSB0LT5leGNlcHQ7CisJCXB1Yl9yZWwtPmV4Y2x1ZGVfY29sdW1ucyA9IHQtPmV4Y2x1ZGVf Y29sdW1uczsKIAkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJlbGlkcyA9IGxh cHBlbmRfb2lkKHJlbGlkcywgbXlyZWxpZCk7CiAKQEAgLTE5OTUsNiArMjA1MCw3IEBAIE9wZW5U YWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQkJCS8qIGNoaWxkIGluaGVyaXRzIGNvbHVtbiBsaXN0 IGZyb20gcGFyZW50ICovCiAJCQkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CiAJCQkJ cHViX3JlbC0+ZXhjZXB0ID0gdC0+ZXhjZXB0OworCQkJCXB1Yl9yZWwtPmV4Y2x1ZGVfY29sdW1u cyA9IHQtPmV4Y2x1ZGVfY29sdW1uczsKIAkJCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVs KTsKIAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIGNoaWxkcmVsaWQpOwogCkBAIC0y MTE0LDYgKzIxNzAsMTEgQEAgUHVibGljYXRpb25Ecm9wVGFibGVzKE9pZCBwdWJpZCwgTGlzdCAq cmVscywgYm9vbCBtaXNzaW5nX29rKQogCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9S KSwKIAkJCQkJZXJybXNnKCJjb2x1bW4gbGlzdCBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgaW4gQUxU RVIgUFVCTElDQVRJT04gLi4uIERST1AiKSk7CiAKKwkJaWYgKHB1YnJlbC0+ZXhjbHVkZV9jb2x1 bW5zKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJCWVycm1zZygiZXhjZXB0IGNvbHVtbiBsaXN0IG11c3Qgbm90IGJlIHNwZWNpZmll ZCBpbiBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUCIpKTsKKwogCQlwcmlkID0gR2V0U3lzQ2Fj aGVPaWQyKFBVQkxJQ0FUSU9OUkVMTUFQLCBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCiAJ CQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShyZWxpZCksCiAJCQkJCQkJICAgT2JqZWN0SWRHZXRE YXR1bShwdWJpZCkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZDdmZTk1YTg0MGYuLjYzZWU0YmI3MDc5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTQ0Niw2ICs0NDYsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CQkJCVRyaWdnZXJUcmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVs YXRpb25fbGlzdCBvcHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKIAkJCQlkcm9wX29wdGlvbl9saXN0 IHB1Yl9vYmpfbGlzdCBleGNlcHRfcHViX29ial9saXN0CisJCQkJb3B0X2V4Y2x1ZGVfY29sdW1u X2xpc3QKIAogJXR5cGUgPHJldGNsYXVzZT4gcmV0dXJuaW5nX2NsYXVzZQogJXR5cGUgPG5vZGU+ CXJldHVybmluZ19vcHRpb24KQEAgLTQ0MTMsNiArNDQxNCwxMCBAQCBvcHRfY29sdW1uX2xpc3Q6 CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5JTDsgfQogCQk7CiAKK29wdF9leGNsdWRl X2NvbHVtbl9saXN0OgorCQkJJygnIGNvbHVtbkxpc3QgJyknCQkJCQkJeyAkJCA9ICQyOyB9CisJ CTsKKwogY29sdW1uTGlzdDoKIAkJCWNvbHVtbkVsZW0JCQkJCQkJCXsgJCQgPSBsaXN0X21ha2Ux KCQxKTsgfQogCQkJfCBjb2x1bW5MaXN0ICcsJyBjb2x1bW5FbGVtCQkJCXsgJCQgPSBsYXBwZW5k KCQxLCAkMyk7IH0KQEAgLTEwNjc5LDYgKzEwNjg0LDE1IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoK IAkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OwogCQkJCQkkJC0+bG9jYXRpb24g PSBAMTsKIAkJCQl9CisJCQl8IFRBQkxFIHJlbGF0aW9uX2V4cHIgRVhDRVBUIG9wdF9leGNsdWRl X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1 YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpf VEFCTEU7CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOwor CQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDI7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhj bHVkZV9jb2x1bW5zID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsK KwkJCQl9CiAJCQl8IFRBQkxFUyBJTl9QIFNDSEVNQSBDb2xJZAogCQkJCXsKIAkJCQkJJCQgPSBt YWtlTm9kZShQdWJsaWNhdGlvbk9ialNwZWMpOwpAQCAtMTA3MTksNiArMTA3MzMsMzMgQEAgUHVi bGljYXRpb25PYmpTcGVjOgogCQkJCQl9CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0K KwkJCXwgQ29sSWQgRVhDRVBUIG9wdF9leGNsdWRlX2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNl CisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQk LT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OOworCQkJCQkvKgorCQkJ CQkgKiBJZiBlaXRoZXIgYSByb3cgZmlsdGVyIG9yIGV4Y2x1ZGUgY29sdW1uIGxpc3QgaXMKKwkJ CQkJICogc3BlY2lmaWVkLCBjcmVhdGUgYSBQdWJsaWNhdGlvblRhYmxlIG9iamVjdC4KKwkJCQkJ ICovCisJCQkJCWlmICgkMyB8fCAkNCkKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIFRoZSBP cHRXaGVyZUNsYXVzZSBtdXN0IGJlIHN0b3JlZCBoZXJlIGJ1dCBpdCBpcworCQkJCQkJICogdmFs aWQgb25seSBmb3IgdGFibGVzLiBGb3Igbm9uLXRhYmxlIG9iamVjdHMsIGFuCisJCQkJCQkgKiBl cnJvciB3aWxsIGJlIHRocm93biBsYXRlciB2aWEKKwkJCQkJCSAqIHByZXByb2Nlc3NfcHVib2Jq X2xpc3QoKS4KKwkJCQkJCSAqLworCQkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGlj YXRpb25UYWJsZSk7CisJCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gbWFrZVJhbmdlVmFy KE5VTEwsICQxLCBAMSk7CisJCQkJCQkkJC0+cHVidGFibGUtPmV4Y2x1ZGVfY29sdW1ucyA9ICQz OworCQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQl9CisJCQkJCWVs c2UKKwkJCQkJeworCQkJCQkJJCQtPm5hbWUgPSAkMTsKKwkJCQkJfQorCQkJCQkkJC0+bG9jYXRp b24gPSBAMTsKKwkJCQl9CiAJCQl8IENvbElkIGluZGlyZWN0aW9uIG9wdF9jb2x1bW5fbGlzdCBP cHRXaGVyZUNsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNw ZWMpOwpAQCAtMTA3MjksNiArMTA3NzAsMTYgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkk JC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwog CQkJCX0KKwkJCXwgQ29sSWQgaW5kaXJlY3Rpb24gRVhDRVBUIG9wdF9leGNsdWRlX2NvbHVtbl9s aXN0IE9wdFdoZXJlQ2xhdXNlCisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9u T2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFU SU9OOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJ CQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9IG1ha2VSYW5nZVZhckZyb21RdWFsaWZpZWROYW1l KCQxLCAkMiwgQDEsIHl5c2Nhbm5lcik7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjbHVkZV9jb2x1 bW5zID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNTsKKwkJCQkJJCQt PmxvY2F0aW9uID0gQDE7CisJCQkJfQogCQkJLyogZ3JhbW1hciBsaWtlIHRhYmxlbmFtZSAqICwg T05MWSB0YWJsZW5hbWUsIE9OTFkgKCB0YWJsZW5hbWUgKSAqLwogCQkJfCBleHRlbmRlZF9yZWxh dGlvbl9leHByIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQogCQkJCXsKQEAgLTEwNzM5 LDYgKzEwNzkwLDE1IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxlLT5j b2x1bW5zID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkMzsKIAkJCQl9 CisJCQl8IGV4dGVuZGVkX3JlbGF0aW9uX2V4cHIgRVhDRVBUIG9wdF9leGNsdWRlX2NvbHVtbl9s aXN0IE9wdFdoZXJlQ2xhdXNlCisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9u T2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFU SU9OOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJ CQkJJCQtPnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQxOworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2x1 ZGVfY29sdW1ucyA9ICQzOworCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJ CQkJfQogCQkJfCBDVVJSRU5UX1NDSEVNQQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJs aWNhdGlvbk9ialNwZWMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdv dXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0 cHV0LmMKaW5kZXggNTUxMmI0Y2JhN2YuLmYzNmMzNjFhYmQ1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTE4NSw2ICsxODUsOSBAQCB0eXBlZGVm IHN0cnVjdCBSZWxhdGlvblN5bmNFbnRyeQogCSAqIHJvdyBmaWx0ZXIgZXhwcmVzc2lvbnMsIGNv bHVtbiBsaXN0LCBldGMuCiAJICovCiAJTWVtb3J5Q29udGV4dCBlbnRyeV9jeHQ7CisKKwkvKiBJ bmRpY2F0ZSBpZiBubyBjb2x1bW4gaXMgaW5jbHVkZWQgaW4gdGhlIHB1YmxpY2F0aW9uICovCisJ Ym9vbAkJbm9fY29sc19wdWJsaXNoZWQ7CiB9IFJlbGF0aW9uU3luY0VudHJ5OwogCiAvKgpAQCAt MTA5OSw2ICsxMTAyLDcgQEAgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdChQR091dHB1dERhdGEg KmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAlib29sCQlmaXJzdCA9IHRydWU7CiAJUmVsYXRp b24JcmVsYXRpb24gPSBSZWxhdGlvbklkR2V0UmVsYXRpb24oZW50cnktPnB1Ymxpc2hfYXNfcmVs aWQpOwogCWJvb2wJCWZvdW5kX3B1Yl9jb2xsaXN0ID0gZmFsc2U7CisJYm9vbAkJZm91bmRfcHVi X2V4Y2x1ZGVfY29sbGlzdCA9IGZhbHNlOwogCUJpdG1hcHNldCAgKnJlbGNvbHMgPSBOVUxMOwog CiAJcGdvdXRwdXRfZW5zdXJlX2VudHJ5X2N4dChkYXRhLCBlbnRyeSk7CkBAIC0xMTIwLDEyICsx MTI0LDMyIEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBM aXN0ICpwdWJsaWNhdGlvbnMsCiAJewogCQlQdWJsaWNhdGlvbiAqcHViID0gbGZpcnN0KGxjKTsK IAkJQml0bWFwc2V0ICAqY29scyA9IE5VTEw7CisJCUJpdG1hcHNldCAgKmV4Y2x1ZGVjb2xzID0g TlVMTDsKIAogCQkvKiBSZXRyaWV2ZSB0aGUgYml0bWFwIG9mIGNvbHVtbnMgZm9yIGEgY29sdW1u IGxpc3QgcHVibGljYXRpb24uICovCiAJCWZvdW5kX3B1Yl9jb2xsaXN0IHw9IGNoZWNrX2FuZF9m ZXRjaF9jb2x1bW5fbGlzdChwdWIsCiAJCQkJCQkJCQkJCQkJCSBlbnRyeS0+cHVibGlzaF9hc19y ZWxpZCwKIAkJCQkJCQkJCQkJCQkJIGVudHJ5LT5lbnRyeV9jeHQsICZjb2xzKTsKIAorCQkvKiBS ZXRyaWV2ZSB0aGUgYml0bWFwIG9mIGV4Y2x1ZGUgY29sdW1ucyBmb3IgdGhlIHB1YmxpY2F0aW9u LiAqLworCQlmb3VuZF9wdWJfZXhjbHVkZV9jb2xsaXN0IHw9IGNoZWNrX2FuZF9mZXRjaF9leGNs dWRlX2NvbHVtbl9saXN0KHB1YiwKKwkJCQkJCQkJCQkJCQkJCQkJCSBlbnRyeS0+cHVibGlzaF9h c19yZWxpZCwKKwkJCQkJCQkJCQkJCQkJCQkJCSBlbnRyeS0+ZW50cnlfY3h0LCAmZXhjbHVkZWNv bHMpOworCisJCS8qCisJCSAqIGNvbHMgYW5kIGV4Y2x1ZGUgY29scyBjYW4ndCBhcHBlYXIgdG9n ZXRoZXIuIFN5bnRheCBmb3IgaXQgaXMgbm90CisJCSAqIHN1cHBvcnRlZC4gSWYgY29sdW1uIGxp c3QgaXMgbm90IHByZXNlbnQgY2hlY2sgZm9yIGV4Y2x1ZGVkIGNvbHVtbgorCQkgKiBsaXN0IGFu ZCBjb25zdHJ1Y3QgYSBjb3JyZXNwb25kaW5nIGNvbHVtbiBsaXN0LgorCQkgKi8KKwkJaWYgKCFj b2xzICYmIGZvdW5kX3B1Yl9leGNsdWRlX2NvbGxpc3QpCisJCXsKKwkJCU1lbW9yeUNvbnRleHQg b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVudHJ5LT5lbnRyeV9jeHQpOworCisJCQlj b2xzID0gcHViX2Zvcm1fY29sc19tYXAocmVsYXRpb24sCisJCQkJCQkJCQkgZW50cnktPmluY2x1 ZGVfZ2VuY29sc190eXBlLCBleGNsdWRlY29scyk7CisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3h0KTsKKwkJfQorCiAJCS8qCiAJCSAqIEZvciBub24tY29sdW1uIGxpc3QgcHVibGljYXRp b25zIOKAlCBlLmcuIFRBQkxFICh3aXRob3V0IGEgY29sdW1uCiAJCSAqIGxpc3QpLCBBTEwgVEFC TEVTLCBvciBBTEwgVEFCTEVTIElOIFNDSEVNQSwgd2UgY29uc2lkZXIgYWxsIGNvbHVtbnMKQEAg LTExNDQsNyArMTE2OCw3IEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRh ICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oZW50cnktPmVudHJ5X2N4dCk7CiAKIAkJCQlyZWxjb2xzID0g cHViX2Zvcm1fY29sc19tYXAocmVsYXRpb24sCi0JCQkJCQkJCQkJCWVudHJ5LT5pbmNsdWRlX2dl bmNvbHNfdHlwZSk7CisJCQkJCQkJCQkJCWVudHJ5LT5pbmNsdWRlX2dlbmNvbHNfdHlwZSwgTlVM TCk7CiAJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJCQl9CiAKQEAgLTExNTUs OCArMTE3OSwxMSBAQCBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0 YSwgTGlzdCAqcHVibGljYXRpb25zLAogCQl7CiAJCQllbnRyeS0+Y29sdW1ucyA9IGNvbHM7CiAJ CQlmaXJzdCA9IGZhbHNlOworCisJCQlpZiAoZXhjbHVkZWNvbHMgJiYgIWNvbHMpCisJCQkJZW50 cnktPm5vX2NvbHNfcHVibGlzaGVkID0gdHJ1ZTsKIAkJfQotCQllbHNlIGlmICghYm1zX2VxdWFs KGVudHJ5LT5jb2x1bW5zLCBjb2xzKSkKKwkJZWxzZSBpZiAoKGVudHJ5LT5ub19jb2xzX3B1Ymxp c2hlZCAmJiBjb2xzKSB8fCAhYm1zX2VxdWFsKGVudHJ5LT5jb2x1bW5zLCBjb2xzKSkKIAkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAogCQkJCQllcnJtc2coImNhbm5vdCB1c2UgZGlmZmVyZW50IGNvbHVtbiBsaXN0cyBmb3IgdGFi bGUgXCIlcy4lc1wiIGluIGRpZmZlcmVudCBwdWJsaWNhdGlvbnMiLApAQCAtMTE2NSwxMCArMTE5 MiwxMSBAQCBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlz dCAqcHVibGljYXRpb25zLAogCX0JCQkJCQkJLyogbG9vcCBhbGwgc3Vic2NyaWJlZCBwdWJsaWNh dGlvbnMgKi8KIAogCS8qCi0JICogSWYgbm8gY29sdW1uIGxpc3QgcHVibGljYXRpb25zIGV4aXN0 LCBjb2x1bW5zIHRvIGJlIHB1Ymxpc2hlZCB3aWxsIGJlCi0JICogY29tcHV0ZWQgbGF0ZXIgYWNj b3JkaW5nIHRvIHRoZSAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgcGFyYW1ldGVyLgorCSAq IElmIG5vIGNvbHVtbiBsaXN0IG9yIGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IHB1YmxpY2F0aW9ucyBl eGlzdCwgY29sdW1ucworCSAqIHRvIGJlIHB1Ymxpc2hlZCB3aWxsIGJlIGNvbXB1dGVkIGxhdGVy IGFjY29yZGluZyB0byB0aGUKKwkgKiAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycgcGFyYW1l dGVyLgogCSAqLwotCWlmICghZm91bmRfcHViX2NvbGxpc3QpCisJaWYgKCFmb3VuZF9wdWJfY29s bGlzdCAmJiAhZm91bmRfcHViX2V4Y2x1ZGVfY29sbGlzdCkKIAkJZW50cnktPmNvbHVtbnMgPSBO VUxMOwogCiAJUmVsYXRpb25DbG9zZShyZWxhdGlvbik7CkBAIC0xNDgwLDYgKzE1MDgsMTMgQEAg cGdvdXRwdXRfY2hhbmdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwgUmVvcmRlckJ1ZmZl clRYTiAqdHhuLAogCiAJcmVsZW50cnkgPSBnZXRfcmVsX3N5bmNfZW50cnkoZGF0YSwgcmVsYXRp b24pOwogCisJLyoKKwkgKiBJZiBhbGwgY29sdW1ucyBvZiBhIHRhYmxlIGlzIHByZXNlbnQgaW4g dGhlIGV4Y2x1ZGUgY29sdW1uIGxpc3QuIFNraXAKKwkgKiBwdWJsaXNoaW5nIHRoZSBjaGFuZ2Vz LgorCSAqLworCWlmIChyZWxlbnRyeS0+bm9fY29sc19wdWJsaXNoZWQpCisJCXJldHVybjsKKwog CS8qIEZpcnN0IGNoZWNrIHRoZSB0YWJsZSBmaWx0ZXIgKi8KIAlzd2l0Y2ggKGFjdGlvbikKIAl7 CkBAIC0yMDU3LDYgKzIwOTIsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpk YXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQgPSBJbnZh bGlkT2lkOwogCQllbnRyeS0+Y29sdW1ucyA9IE5VTEw7CiAJCWVudHJ5LT5hdHRybWFwID0gTlVM TDsKKwkJZW50cnktPm5vX2NvbHNfcHVibGlzaGVkID0gZmFsc2U7CiAJfQogCiAJLyogVmFsaWRh dGUgdGhlIGVudHJ5ICovCkBAIC0yMTA2LDYgKzIxNDIsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnko UEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1YmFjdGlv bnMucHVidXBkYXRlID0gZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0ZSA9IGZh bHNlOwogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ0cnVuY2F0ZSA9IGZhbHNlOworCQllbnRyeS0+ bm9fY29sc19wdWJsaXNoZWQgPSBmYWxzZTsKIAogCQkvKgogCQkgKiBUdXBsZSBzbG90cyBjbGVh bnVwcy4gKFdpbGwgYmUgcmVidWlsdCBsYXRlciBpZiBuZWVkZWQpLgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXgg NmNjNTVhZmQ0OTguLmU5MThjOGI0M2I3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQ3MDYsNiArNDcwNiw3 IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZv W10sIGludCBudW1UYWJsZXMpCiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9wcmF0dHJz OwogCWludAkJCWlfcHJleGNlcHQ7CisJaW50CQkJaV9wcmV4Y2x1ZGVhdHRyczsKIAlpbnQJCQlp LAogCQkJCWosCiAJCQkJbnR1cHM7CkBAIC00NzIzLDcgKzQ3MjQsMTUgQEAgZ2V0UHVibGljYXRp b25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxl cykKIAogCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5MDAwMCBsYXRl ciBmb3IgUEcxOS4gKi8KIAkJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTgwMDAwKQotCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgcHJleGNlcHQsXG4iKTsKKwkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHByZXhjZXB0LCAiCisJCQkJCQkJCSAiKENBU0VcbiIKKwkJ CQkJCQkJICIgIFdIRU4gcHIucHJleGNsdWRlYXR0cnMgSVMgTk9UIE5VTEwgVEhFTlxuIgorCQkJ CQkJCQkgIiAgICAoU0VMRUNUIGFycmF5X2FnZyhhdHRuYW1lKVxuIgorCQkJCQkJCQkgIiAgICAg ICBGUk9NXG4iCisJCQkJCQkJCSAiICAgICAgICAgcGdfY2F0YWxvZy5nZW5lcmF0ZV9zZXJpZXMo MCwgcGdfY2F0YWxvZy5hcnJheV91cHBlcihwci5wcmV4Y2x1ZGVhdHRyczo6cGdfY2F0YWxvZy5p bnQyW10sIDEpKSBzLFxuIgorCQkJCQkJCQkgIiAgICAgICAgIHBnX2NhdGFsb2cucGdfYXR0cmli dXRlXG4iCisJCQkJCQkJCSAiICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBh dHRudW0gPSBwcmV4Y2x1ZGVhdHRyc1tzXSlcbiIKKwkJCQkJCQkJICIgIEVMU0UgTlVMTCBFTkQp IHByZXhjbHVkZWF0dHJzLCBcbiIpOwogCQllbHNlCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiBmYWxzZSBBUyBwcmV4Y2VwdCxcbiIpOwogCkBAIC00NzU1LDYgKzQ3NjQsNyBAQCBn ZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKQogCWlfcHJyZWxxdWFsID0gUFFmbnVtYmVyKHJlcywgInBycmVscXVhbCIp OwogCWlfcHJhdHRycyA9IFBRZm51bWJlcihyZXMsICJwcmF0dHJzIik7CiAJaV9wcmV4Y2VwdCA9 IFBRZm51bWJlcihyZXMsICJwcmV4Y2VwdCIpOworCWlfcHJleGNsdWRlYXR0cnMgPSBQUWZudW1i ZXIocmVzLCAicHJleGNsdWRlYXR0cnMiKTsKIAogCS8qIHRoaXMgYWxsb2NhdGlvbiBtYXkgYmUg bW9yZSB0aGFuIHdlIG5lZWQgKi8KIAlwdWJyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVv ZihQdWJsaWNhdGlvblJlbEluZm8pKTsKQEAgLTQ4MjIsNiArNDgzMiwzMCBAQCBnZXRQdWJsaWNh dGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFi bGVzKQogCQllbHNlCiAJCQlwdWJyaW5mb1tqXS5wdWJyYXR0cnMgPSBOVUxMOwogCisJCWlmICgh UFFnZXRpc251bGwocmVzLCBpLCBpX3ByZXhjbHVkZWF0dHJzKSkKKwkJeworCQkJY2hhcgkgICoq YXR0bmFtZXM7CisJCQlpbnQJCQluYXR0bmFtZXM7CisJCQlQUUV4cEJ1ZmZlciBleGNsdWRlYXR0 cmliczsKKworCQkJaWYgKCFwYXJzZVBHQXJyYXkoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJleGNs dWRlYXR0cnMpLAorCQkJCQkJCSAgJmF0dG5hbWVzLCAmbmF0dG5hbWVzKSkKKwkJCQlwZ19mYXRh bCgiY291bGQgbm90IHBhcnNlICVzIGFycmF5IiwgInByYXR0cnMiKTsKKwkJCWV4Y2x1ZGVhdHRy aWJzID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwkJCWZvciAoaW50IGsgPSAwOyBrIDwgbmF0dG5h bWVzOyBrKyspCisJCQl7CisJCQkJaWYgKGsgPiAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihleGNsdWRlYXR0cmlicywgIiwgIik7CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihleGNs dWRlYXR0cmlicywgZm10SWQoYXR0bmFtZXNba10pKTsKKwkJCX0KKwkJCXB1YnJpbmZvW2pdLnB1 YnJleGNsdWRlYXR0cnMgPSBleGNsdWRlYXR0cmlicy0+ZGF0YTsKKwkJCWZyZWUoZXhjbHVkZWF0 dHJpYnMpOwkvKiBidXQgbm90IGV4Y2x1ZGVhdHRyaWJzLT5kYXRhICovCisJCQlmcmVlKGF0dG5h bWVzKTsKKwkJfQorCQllbHNlCisJCQlwdWJyaW5mb1tqXS5wdWJyZXhjbHVkZWF0dHJzID0gTlVM TDsKKwogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0 RHVtcGFibGVQdWJsaWNhdGlvbk9iamVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBmb3V0KTsKIApA QCAtNDkwNyw2ICs0OTQxLDkgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwg Y29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAlpZiAocHVicmluZm8tPnB1YnJh dHRycykKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgKCVzKSIsIHB1YnJpbmZvLT5wdWJy YXR0cnMpOwogCisJaWYgKHB1YnJpbmZvLT5wdWJyZXhjbHVkZWF0dHJzKQorCQlhcHBlbmRQUUV4 cEJ1ZmZlcihxdWVyeSwgIiBFWENFUFQgKCVzKSIsIHB1YnJpbmZvLT5wdWJyZXhjbHVkZWF0dHJz KTsKKwogCWlmIChwdWJyaW5mby0+cHVicmVscXVhbCkKIAl7CiAJCS8qCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRl eCAwOTZmMjkzNDZkOC4uZTAxYzJkMWFmYmQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNjgxLDYgKzY4MSw3 IEBAIHR5cGVkZWYgc3RydWN0IF9QdWJsaWNhdGlvblJlbEluZm8KIAlUYWJsZUluZm8gICpwdWJ0 YWJsZTsKIAljaGFyCSAgICpwdWJyZWxxdWFsOwogCWNoYXIJICAgKnB1YnJhdHRyczsKKwljaGFy CSAgICpwdWJyZXhjbHVkZWF0dHJzOwogfSBQdWJsaWNhdGlvblJlbEluZm87CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CmluZGV4IDEwYjVmN2YyOWNiLi43NWI2YzIwMTU3YiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTMwMTksMTIgKzMw MTksMTQgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwK IAkJLyogcHJpbnQgYW55IHB1YmxpY2F0aW9ucyAqLwogCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx MDAwMDApCiAJCXsKLQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCS8qIEZJWE1F OiAxODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLwor CQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQogCQkJewogCQkJCXByaW50ZlBRRXhwQnVm ZmVyKCZidWYsCiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCiAJCQkJCQkJCSAgIiAgICAg LCBOVUxMXG4iCiAJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIgkgICwgTlVM TFxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgogCQkJ CQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4g T04gcC5vaWQgPSBwbi5wbnB1YmlkXG4iCiAJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9n LnBnX2NsYXNzIHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKQEAgLTMwMzgs MzcgKzMwNDAsNjQgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1h bmFtZSwKIAkJCQkJCQkJICAiICAgICAgICAgICAgICAgIHBnX2NhdGFsb2cucGdfYXR0cmlidXRl XG4iCiAJCQkJCQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5E IGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJCSAgIiAgICAgICAgRUxTRSBOVUxMIEVO RCkgIgorCQkJCQkJCQkgICIgICAgICwgKENBU0UgV0hFTiBwci5wcmV4Y2x1ZGVhdHRycyBJUyBO T1QgTlVMTCBUSEVOXG4iCisJCQkJCQkJCSAgIiAgICAgICAgIChTRUxFQ1Qgc3RyaW5nX2FnZyhh dHRuYW1lLCAnLCAnKVxuIgorCQkJCQkJCQkgICIgICAgICAgICAgIEZST00gcGdfY2F0YWxvZy5n ZW5lcmF0ZV9zZXJpZXMoMCwgcGdfY2F0YWxvZy5hcnJheV91cHBlcihwci5wcmV4Y2x1ZGVhdHRy czo6cGdfY2F0YWxvZy5pbnQyW10sIDEpKSBzLFxuIgorCQkJCQkJCQkgICIgICAgICAgICAgICAg ICAgcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGVcbiIKKwkJCQkJCQkJICAiICAgICAgICAgIFdIRVJF IGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJleGNsdWRlYXR0cnNbc10pXG4i CisJCQkJCQkJCSAgIiAgICAgICAgRUxTRSBOVUxMIEVORCkgIgogCQkJCQkJCQkgICJGUk9NIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgogCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCiAJCQkJCQkJ CSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4i Ci0JCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMnXG4iLAotCQkJCQkJCQkgIG9pZCwg b2lkLCBvaWQpOwotCi0JCQkJLyogRklYTUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAx OTAwMDAgbGF0ZXIgZm9yIFBHMTkuICovCi0JCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAw KQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFORCBOT1QgcHIucHJleGNlcHRc biIpOwotCi0JCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiV0hFUkUgcHIu cHJyZWxpZCA9ICclcydcbiIKKwkJCQkJCQkJICAiQU5EIE5PVCBwci5wcmV4Y2VwdFxuIgorCQkJ CQkJCQkgICJVTklPTlxuIgorCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgorCQkJCQkJCQkg ICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIg ICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24g cFxuIgorCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19y ZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJCQkJCQkgICJBTkQgTk9UIEVYSVNU UyAoXG4iCisJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKKwkJCQkJCQkJICAiCQlGUk9NIHBnX2Nh dGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRh bG9nLnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxu IgorCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0g cC5vaWQpXG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKKwkJCQkJCQkJICBvaWQsIG9pZCwg b2lkLCBvaWQsIG9pZCk7CisJCQl9CisJCQllbHNlIGlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAw MCkKKwkJCXsKKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1Qg cHVibmFtZVxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIgICAgICwg TlVMTFxuIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgor CQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2Ug cG4gT04gcC5vaWQgPSBwbi5wbnB1YmlkXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRh bG9nLnBnX2NsYXNzIHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKKwkJCQkJ CQkJICAiV0hFUkUgcGMub2lkID0nJXMnIGFuZCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1 Ymxpc2hhYmxlKCclcycpXG4iCisJCQkJCQkJCSAgIlVOSU9OXG4iCisJCQkJCQkJCSAgIlNFTEVD VCBwdWJuYW1lXG4iCisJCQkJCQkJCSAgIiAgICAgLCBwZ19nZXRfZXhwcihwci5wcnF1YWwsIGMu b2lkKVxuIgorCQkJCQkJCQkgICIgICAgICwgKENBU0UgV0hFTiBwci5wcmF0dHJzIElTIE5PVCBO VUxMIFRIRU5cbiIKKwkJCQkJCQkJICAiICAgICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKGF0dG5h bWUsICcsICcpXG4iCisJCQkJCQkJCSAgIiAgICAgICAgICAgRlJPTSBwZ19jYXRhbG9nLmdlbmVy YXRlX3NlcmllcygwLCBwZ19jYXRhbG9nLmFycmF5X3VwcGVyKHByLnByYXR0cnM6OnBnX2NhdGFs b2cuaW50MltdLCAxKSkgcyxcbiIKKwkJCQkJCQkJICAiICAgICAgICAgICAgICAgIHBnX2NhdGFs b2cucGdfYXR0cmlidXRlXG4iCisJCQkJCQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9 IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCisJCQkJCQkJCSAgIiAgICAg ICAgRUxTRSBOVUxMIEVORCkgIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGlj YXRpb24gcFxuIgorCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlv bl9yZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBw Z19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAg IldIRVJFIHByLnBycmVsaWQgPSAnJXMnXG4iCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJCQkJCQkJ CSAgIlNFTEVDVCBwdWJuYW1lXG4iCi0JCQkJCQkJCSAgIgkJLCBOVUxMXG4iCi0JCQkJCQkJCSAg IgkJLCBOVUxMXG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIiAgICAg LCBOVUxMXG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4i Ci0JCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0 aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iLAotCQkJCQkJCQkgIG9pZCk7Ci0KLQkJCQkvKiBG SVhNRTogMTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5MDAwMCBsYXRlciBmb3IgUEcxOS4g Ki8KLQkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCi0JCQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZidWYsCi0JCQkJCQkJCQkgICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIKLQkJCQkJCQkJ CSAgIgkJU0VMRUNUIDFcbiIKLQkJCQkJCQkJCSAgIgkJRlJPTSBwZ19jYXRhbG9nLnBnX3B1Ymxp Y2F0aW9uX3JlbCBwclxuIgotCQkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3Mg cGNcbiIKLQkJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgotCQkJCQkJCQkJ ICAiCQlXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQgcHIucHJwdWJpZCA9IHAub2lkKVxuIiwK LQkJCQkJCQkJCSAgb2lkKTsKLQotCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRF UiBCWSAxOyIpOworCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxv Zy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgorCQkJCQkJCQkgICJPUkRFUiBC WSAxOyIsCisJCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkKTsKIAkJCX0KIAkJCWVsc2UKIAkJ CXsKQEAgLTMxMDksNiArMzEzOCwxMSBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBj aGFyICpzY2hlbWFuYW1lLAogCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiICglcykiLAog CQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMikpOwogCisJCQkJLyogZXhjbHVkZSBj b2x1bW4gbGlzdCAoaWYgYW55KSAqLworCQkJCWlmICghUFFnZXRpc251bGwocmVzdWx0LCBpLCAz KSkKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIiBFWENFUFQgKCVzKSIsCisJCQkJCQkJ CQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAzKSk7CisKIAkJCQkvKiByb3cgZmlsdGVyIChpZiBh bnkpICovCiAJCQkJaWYgKCFQUWdldGlzbnVsbChyZXN1bHQsIGksIDEpKQogCQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLCAiIFdIRVJFICVzIiwKQEAgLTY1MjUsNiArNjU1OSw5IEBAIGFkZEZv b3RlclRvUHVibGljYXRpb25EZXNjKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgY2hhciAqZm9vdGVy bXNnLAogCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIDMpKQogCQkJCWFwcGVuZFBRRXhwQnVm ZmVyKGJ1ZiwgIiAoJXMpIiwgUFFnZXR2YWx1ZShyZXMsIGksIDMpKTsKIAorCQkJaWYgKCFQUWdl dGlzbnVsbChyZXMsIGksIDQpKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiBFWENFUFQg KCVzKSIsIFBRZ2V0dmFsdWUocmVzLCBpLCA0KSk7CisKIAkJCWlmICghUFFnZXRpc251bGwocmVz LCBpLCAyKSkKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgV0hFUkUgJXMiLCBQUWdldHZh bHVlKHJlcywgaSwgMikpOwogCQl9CkBAIC02NzA2LDYgKzY3NDMsMjEgQEAgZGVzY3JpYmVQdWJs aWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCWVsc2UKIAkJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLAogCQkJCQkJCQkJICIsIE5VTEwsIE5VTEwiKTsKKworCQkJLyogRklYTUU6 IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIgZm9yIFBHMTkuICovCisJ CQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwKKwkJCQkJCQkJCSAiLCAoQ0FTRSBXSEVOIHByLnByZXhjbHVkZWF0dHJzIElTIE5PVCBO VUxMIFRIRU5cbiIKKwkJCQkJCQkJCSAiICAgICBwZ19jYXRhbG9nLmFycmF5X3RvX3N0cmluZygi CisJCQkJCQkJCQkgIiAgICAgIEFSUkFZKFNFTEVDVCBhdHRuYW1lXG4iCisJCQkJCQkJCQkgIiAg ICAgICAgICAgICAgRlJPTVxuIgorCQkJCQkJCQkJICIgICAgICAgICAgICAgICAgcGdfY2F0YWxv Zy5nZW5lcmF0ZV9zZXJpZXMoMCwgcGdfY2F0YWxvZy5hcnJheV91cHBlcihwci5wcmV4Y2x1ZGVh dHRyczo6cGdfY2F0YWxvZy5pbnQyW10sIDEpKSBzLFxuIgorCQkJCQkJCQkJICIgICAgICAgICAg ICAgICAgcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGVcbiIKKwkJCQkJCQkJCSAiICAgICAgICBXSEVS RSBhdHRyZWxpZCA9IGMub2lkIEFORCBhdHRudW0gPSBwcmV4Y2x1ZGVhdHRyc1tzXSksICcsICcp XG4iCisJCQkJCQkJCQkgIiAgICAgICBFTFNFIE5VTEwgRU5EKSIpOworCQkJZWxzZQorCQkJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIE5VTEwiKTsKKwogCQkJYXBwZW5kUFFFeHBCdWZm ZXIoJmJ1ZiwKIAkJCQkJCQkgICJcbkZST00gcGdfY2F0YWxvZy5wZ19jbGFzcyBjLFxuIgogCQkJ CQkJCSAgIiAgICAgcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbixcbiIKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHVibGljYXRpb24uaAppbmRleCAzM2I3NzE5OTBiZC4uNTM0NDU1OWM4OGUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTE0MCw2ICsxNDAsNyBAQCB0eXBlZGVmIHN0 cnVjdCBQdWJsaWNhdGlvblJlbEluZm8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0CSAg ICpjb2x1bW5zOwogCWJvb2wJCWV4Y2VwdDsKKwlMaXN0CSAgICpleGNsdWRlX2NvbHVtbnM7CiB9 IFB1YmxpY2F0aW9uUmVsSW5mbzsKIAogZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJsaWNhdGlv bihPaWQgcHViaWQpOwpAQCAtMTgxLDE1ICsxODIsMjEgQEAgZXh0ZXJuIGJvb2wgaXNfcHVibGlz aGFibGVfcmVsYXRpb24oUmVsYXRpb24gcmVsKTsKIGV4dGVybiBib29sIGlzX3NjaGVtYV9wdWJs aWNhdGlvbihPaWQgcHViaWQpOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9s aXN0KFB1YmxpY2F0aW9uICpwdWIsIE9pZCByZWxpZCwKIAkJCQkJCQkJCQlNZW1vcnlDb250ZXh0 IG1jeHQsIEJpdG1hcHNldCAqKmNvbHMpOworZXh0ZXJuIGJvb2wgY2hlY2tfYW5kX2ZldGNoX2V4 Y2x1ZGVfY29sdW1uX2xpc3QoUHVibGljYXRpb24gKnB1YiwgT2lkIHJlbGlkLAorCQkJCQkJCQkJ CQkJTWVtb3J5Q29udGV4dCBtY3h0LAorCQkJCQkJCQkJCQkJQml0bWFwc2V0ICoqY29scyk7CiBl eHRlcm4gT2JqZWN0QWRkcmVzcyBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQ dWJsaWNhdGlvblJlbEluZm8gKnByaSwKIAkJCQkJCQkJCQkJICBib29sIGlmX25vdF9leGlzdHMp OwogZXh0ZXJuIEJpdG1hcHNldCAqcHViX2NvbGxpc3RfdmFsaWRhdGUoUmVsYXRpb24gdGFyZ2V0 cmVsLCBMaXN0ICpjb2x1bW5zKTsKK2V4dGVybiBCaXRtYXBzZXQgKnB1Yl9leGNsdWRlX2NvbGxp c3RfdmFsaWRhdGUoUmVsYXRpb24gdGFyZ2V0cmVsLAorCQkJCQkJCQkJCQkgICBMaXN0ICpleGNs dWRlX2NvbHVtbnMpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3NjaGVt YShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwKIAkJCQkJCQkJCQkJYm9vbCBpZl9ub3RfZXhpc3Rz KTsKIAogZXh0ZXJuIEJpdG1hcHNldCAqcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0KEJpdG1hcHNl dCAqY29sdW1ucywgRGF0dW0gcHViY29scywKIAkJCQkJCQkJCQkgICBNZW1vcnlDb250ZXh0IG1j eHQpOwogZXh0ZXJuIEJpdG1hcHNldCAqcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRp b24sCi0JCQkJCQkJCQlQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUpOwor CQkJCQkJCQkJUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlLAorCQkJCQkJ CQkJQml0bWFwc2V0ICpleGNsdWRlY29scyk7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19QVUJMSUNB VElPTl9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u X3JlbC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAppbmRleCBl N2Q3ZjNiYTg1Yy4uNGMxYjRkZGJkZGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHVibGljYXRpb25fcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbl9yZWwuaApAQCAtMzYsNiArMzYsNyBAQCBDQVRBTE9HKHBnX3B1YmxpY2F0aW9uX3JlbCw2 MTA2LFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCkKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8q IHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1 YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwogCWludDJ2ZWN0b3IJcHJhdHRyczsJCS8qIGNvbHVt bnMgdG8gcmVwbGljYXRlICovCisJaW50MnZlY3RvcglwcmV4Y2x1ZGVhdHRyczsgLyogY29sdW1u cyB0byBleGNsdWRlICovCiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfcHVibGljYXRpb25fcmVsOwog CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZDkwMWNiMGZmYTcuLjE0ODYxZDE4MGFiIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC00MjM2LDYgKzQyMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBQ dWJsaWNhdGlvblRhYmxlCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25z ICovCiAJTGlzdAkgICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0 aW9uIHRhYmxlICovCiAJYm9vbAkJZXhjZXB0OwkJCS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICov CisJTGlzdAkgICAqZXhjbHVkZV9jb2x1bW5zOwkvKiBMaXN0IG9mIGNvbHVtbnMgdG8gYmUgZXhj bHVkZWQgKi8KIH0gUHVibGljYXRpb25UYWJsZTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNWQwMjUzMjg3MDQuLmEyNzRiM2NmZjMxIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMjEyNSw2ICsyMTI1 LDcxIEBAIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKIERST1AgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKIERST1AgVEFCTEUg cHViX3NjaDEudGJsMjsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0gVGVzdCBFWENFUFQgY29sdW1ucyBmb3IgQ1JFQVRFIFBVQkxJ Q0FUSU9OCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgVEFCTEUg cHViX3Rlc3RfZXhjZXB0MSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50LCBjIGludCBOT1QgTlVMTCwg ZCBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIgKGEgaW50LCBi IGludCwgYyBpbnQsIGQgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdF9leGNlcHQzIChhIGlu dCwgZ2VuMSBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CistLSBWZXJp ZnkgdGhhdCBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHdpdGggRVhDRVBUCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1Yl9leGNlcHQgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEsIHB1Yl9zY2gx LnB1Yl90ZXN0X2V4Y2VwdDIgRVhDRVBUIChiLCBjKTsKK1NFTEVDVCAqIEZST00gcGdfcHVibGlj YXRpb25fdGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworICAgIHB1Ym5h bWUgICAgIHwgc2NoZW1hbmFtZSB8ICAgIHRhYmxlbmFtZSAgICAgfCBhdHRuYW1lcyAgfCByb3dm aWx0ZXIgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyB0ZXN0cHViX2V4Y2VwdCB8IHB1YmxpYyAgICAgfCBw dWJfdGVzdF9leGNlcHQxIHwge2EsYixjLGR9IHwgCisgdGVzdHB1Yl9leGNlcHQgfCBwdWJfc2No MSAgIHwgcHViX3Rlc3RfZXhjZXB0MiB8IHthLGR9ICAgICB8IAorKDIgcm93cykKKworLS0gQ2hl Y2sgZm9yIGludmFsaWQgY2FzZXMKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIg Rk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHViX3NjaDEsIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhD RVBUIChiLCBjKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBjb2x1bW4gbGlzdCBmb3IgcmVsYXRpb24g InB1YmxpYy5wdWJfdGVzdF9leGNlcHQxIiBpbiBwdWJsaWNhdGlvbiAidGVzdHB1Yl9leGNlcHQy IgorREVUQUlMOiAgQ29sdW1uIGxpc3RzIGNhbm5vdCBiZSBzcGVjaWZpZWQgaW4gcHVibGljYXRp b25zIGNvbnRhaW5pbmcgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgZWxlbWVudHMuCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQ VDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIjsiCitMSU5FIDE6IC4uLkJMSUNB VElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRB QkxFIHB1Yl90ZXN0X2V4Y2VwdDMgRVhDRVBUIChnZW4xKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBn ZW5lcmF0ZWQgY29sdW1uICJnZW4xIiBpbiBwdWJsaWNhdGlvbiBleGNlcHQgY29sdW1uIGxpc3QK Ky0tIFZlcmlmeSB0aGF0IHB1YmxpY2F0aW9uIGNhbiBiZSBhbHRlcmVkIHdpdGggRVhDRVBUCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0 MSBFWENFUFQgKGEsIGIpLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOworU0VMRUNUICogRlJP TSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2V4Y2VwdCc7 CisgICAgcHVibmFtZSAgICAgfCBzY2hlbWFuYW1lIHwgICAgdGFibGVuYW1lICAgICB8IGF0dG5h bWVzICB8IHJvd2ZpbHRlciAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHRlc3RwdWJfZXhjZXB0IHwgcHVi bGljICAgICB8IHB1Yl90ZXN0X2V4Y2VwdDEgfCB7YyxkfSAgICAgfCAKKyB0ZXN0cHViX2V4Y2Vw dCB8IHB1Yl9zY2gxICAgfCBwdWJfdGVzdF9leGNlcHQyIHwge2EsYixjLGR9IHwgCisoMiByb3dz KQorCistLSBWZXJpZnkgQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfZXhjZXB0IERST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEs IGIpOworRVJST1I6ICBleGNlcHQgY29sdW1uIGxpc3QgbXVzdCBub3QgYmUgc3BlY2lmaWVkIGlu IEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4 Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGMsIGQpOworU0VM RUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHVi X2V4Y2VwdCc7CisgICAgcHVibmFtZSAgICAgfCBzY2hlbWFuYW1lIHwgICAgdGFibGVuYW1lICAg ICB8IGF0dG5hbWVzICB8IHJvd2ZpbHRlciAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHRlc3RwdWJfZXhj ZXB0IHwgcHVibGljICAgICB8IHB1Yl90ZXN0X2V4Y2VwdDEgfCB7YSxifSAgICAgfCAKKyB0ZXN0 cHViX2V4Y2VwdCB8IHB1Yl9zY2gxICAgfCBwdWJfdGVzdF9leGNlcHQyIHwge2EsYixjLGR9IHwg CisoMiByb3dzKQorCistLSBWZXJpZnkgZXhjbHVkZWQgY29sdW1ucyBjYW5ub3QgYmUgcGFydCBv ZiBSRVBMSUNBIElERU5USVRZCitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0Eg SURFTlRJVFkgRlVMTDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBh ID0gMTsKK0VSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAicHViX3Rlc3RfZXhjZXB0MSIKK0RF VEFJTDogIENvbHVtbiBsaXN0IHVzZWQgYnkgdGhlIHB1YmxpY2F0aW9uIGRvZXMgbm90IGNvdmVy IHRoZSByZXBsaWNhIGlkZW50aXR5LgorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNl cHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEsIGMpOworQUxURVIgVEFCTEUgcHViX3Rl c3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFf YV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CitF UlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInB1Yl90ZXN0X2V4Y2VwdDEiCitERVRBSUw6ICBD b2x1bW4gbGlzdCB1c2VkIGJ5IHRoZSBwdWJsaWNhdGlvbiBkb2VzIG5vdCBjb3ZlciB0aGUgcmVw bGljYSBpZGVudGl0eS4KK0RST1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK0NSRUFU RSBVTklRVUUgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQx IChhKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lO RyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2VwdDEg U0VUIGEgPSAzIFdIRVJFIGEgPSAxOworRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4 OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDsKK0RST1AgVEFCTEUgcHViX3Rlc3Rf ZXhjZXB0MTsKK0RST1AgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKK0RST1AgVEFC TEUgcHViX3Rlc3RfZXhjZXB0MzsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwogUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCBhZjMxYTIyMTRjYS4uNmIyM2YyMTU3MzkgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEzMTgsNiArMTMxOCw1MSBAQCBTRVQg Uk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRi bDI7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0gVGVzdCBFWENFUFQgY29sdW1ucyBmb3IgQ1JFQVRFIFBVQkxJQ0FUSU9OCisK K1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBUQUJMRSBwdWJfdGVz dF9leGNlcHQxIChhIGludCBOT1QgTlVMTCwgYiBpbnQsIGMgaW50IE5PVCBOVUxMLCBkIGludCk7 CitDUkVBVEUgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiAoYSBpbnQsIGIgaW50LCBj IGludCwgZCBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDMgKGEgaW50LCBnZW4x IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKKworLS0gVmVyaWZ5IHRo YXQgcHVibGljYXRpb24gaXMgY3JlYXRlZCB3aXRoIEVYQ0VQVAorQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZXhjZXB0IEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxLCBwdWJfc2NoMS5wdWJf dGVzdF9leGNlcHQyIEVYQ0VQVCAoYiwgYyk7CitTRUxFQ1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9u X3RhYmxlcyBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZXhjZXB0JzsKKworLS0gQ2hlY2sgZm9y IGludmFsaWQgY2FzZXMKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3NjaDEsIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChi LCBjKTsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdDEgRVhDRVBUOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBG T1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MyBFWENFUFQgKGdlbjEpOworCistLSBWZXJpZnkgdGhh dCBwdWJsaWNhdGlvbiBjYW4gYmUgYWx0ZXJlZCB3aXRoIEVYQ0VQVAorQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBi KSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKK1NFTEVDVCAqIEZST00gcGdfcHVibGljYXRp b25fdGFibGVzIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9leGNlcHQnOworCistLSBWZXJpZnkg QUxURVIgUFVCTElDQVRJT04gLi4uIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhj ZXB0IERST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpOworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworCitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0 MSBFWENFUFQgKGMsIGQpOworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgV0hF UkUgcHVibmFtZSA9ICd0ZXN0cHViX2V4Y2VwdCc7CisKKy0tIFZlcmlmeSBleGNsdWRlZCBjb2x1 bW5zIGNhbm5vdCBiZSBwYXJ0IG9mIFJFUExJQ0EgSURFTlRJVFkKK0FMVEVSIFRBQkxFIHB1Yl90 ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBGVUxMOworVVBEQVRFIHB1Yl90ZXN0X2V4Y2Vw dDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9l eGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEsIGMpOworQUxURVIgVEFCTEUgcHVi X3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4Y2Vw dDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7 CitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitDUkVBVEUgVU5JUVVFIElOREVY IHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHggT04gcHViX3Rlc3RfZXhjZXB0MSAoYSk7CitBTFRFUiBU QUJMRSBwdWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggcHViX3Rl c3RfZXhjZXB0MV9hX2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVS RSBhID0gMTsKKworRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4OworRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViX2V4Y2VwdDsKK0RST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsKK0RS T1AgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKK0RST1AgVEFCTEUgcHViX3Rlc3Rf ZXhjZXB0MzsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwogCiBSRVNFVCBjbGllbnRfbWluX21lc3Nh Z2VzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9jaGFuZ2Vz X2V4Y2VwdF90YWJsZS5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9yZXBfY2hhbmdl c19leGNlcHRfdGFibGUucGwKaW5kZXggMWQxMTUyODM4MDkuLmVjNzdmMmU4ZDA0IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxl LnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRf dGFibGUucGwKQEAgLTEsNyArMSw3IEBACiAKICMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAKLSMgTG9naWNhbCByZXBsaWNhdGlv biB0ZXN0cyBmb3IgZXhjZXB0IHRhYmxlIHB1YmxpY2F0aW9ucworIyBMb2dpY2FsIHJlcGxpY2F0 aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUgYW5kIGV4Y2VwdCBjb2x1bW4gcHVibGljYXRpb25z CiB1c2Ugc3RyaWN0OwogdXNlIHdhcm5pbmdzOwogdXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXI7CkBAIC03Nyw2ICs3Nyw2NCBAQCAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCiAJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBw dWJsaWMudGFiMSIpOwogaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJvd3Mgb24gc3Vic2Ny aWJlciBjYXRjaHVwJyk7CiAKKyMgVGVzdCBmb3IgZXhjZXB0IGNvbHVtbiBwdWJsaWNhdGlvbnMK KyMgSW5pdGlhbCBzZXR1cAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFRBQkxFIHRhYjIgKGEgaW50LCBiIGludCBOT1QgTlVMTCwgYyBpbnQpIik7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgc2No MS50YWIyIChhIGludCwgYiBpbnQsIGMgaW50KSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjIgVkFMVUVTICgxLCAyLCAzKSIpOworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS50 YWIyIFZBTFVFUyAoMSwgMiwgMykiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBGT1IgVEFCTEUgdGFiMiBF WENFUFQgKGEpLCBzY2gxLnRhYjIgRVhDRVBUIChiLCBjKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRhYjIgKGEgaW50LCBiIGlu dCBOT1QgTlVMTCwgYyBpbnQpIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMiAoYSBpbnQsIGIgaW50LCBjIGludCkiKTsK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NS SVBUSU9OIHRhcF9zdWJfY29sIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElD QVRJT04gdGFwX3B1Yl9jb2wiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2Ny aXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworIyBUZXN0IGlu aXRpYWwgc3luYworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUICogRlJPTSB0YWIyIik7CitpcygkcmVzdWx0LCBxcSh8MnwzKSwKKwknY2hl Y2sgdGhhdCBpbml0aWFsIHN5bmMgZm9yIGV4Y2VwdCBjb2x1bW4gcHVibGljYXRpb24nKTsKKyRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAq IEZST00gc2NoMS50YWIyIik7CitpcygkcmVzdWx0LCBxcSgxfHwpLCAnY2hlY2sgdGhhdCBpbml0 aWFsIHN5bmMgZm9yIGV4Y2VwdCBjb2x1bW4gcHVibGljYXRpb24nKTsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0YWIyIFZBTFVFUyAoNCwgNSwg NikiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJ TlRPIHNjaDEudGFiMiBWQUxVRVMgKDQsIDUsIDYpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRf Zm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CisKKyMgVGVzdCBpbmNyZW1lbnRhbCBjaGFuZ2Vz CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgKiBGUk9NIHRhYjIiKTsKK2lzKCAkcmVzdWx0LCBxcSh8MnwzCit8NXw2KSwKKwknY2hlY2sg aW5jcmVtZW50YWwgaW5zZXJ0IGZvciBleGNlcHQgY29sdW1uIHB1YmxpY2F0aW9uJyk7CiskcmVz dWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBG Uk9NIHNjaDEudGFiMiIpOworaXMoICRyZXN1bHQsIHFxKDF8fAorNHx8KSwgJ2NoZWNrIGluY3Jl bWVudGFsIGluc2VydCBmb3IgZXhjZXB0IGNvbHVtbiBwdWJsaWNhdGlvbicpOworCisjIFRlc3Qg Zm9yIHVwZGF0ZQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JF QVRFIFVOSVFVRSBJTkRFWCBiX2lkeCBPTiB0YWIyIChiKSIpOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGFiMiBSRVBMSUNBIElERU5USVRZ IFVTSU5HIElOREVYIGJfaWR4Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQ1JFQVRFIFVOSVFVRSBJTkRFWCBiX2lkeCBPTiB0YWIyIChiKSIpOworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRhYjIgUkVQ TElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBiX2lkeCIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRhYjIgU0VUIGEgPSAzLCBiID0gNCwgYyA9IDUg V0hFUkUgYSA9IDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1 Yl9jb2wnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIlNFTEVDVCAqIEZST00gdGFiMiIpOworaXMoICRyZXN1bHQsIHFxKHw1fDYKK3w0fDUpLAor CSdjaGVjayB1cGRhdGUgZm9yIGV4Y2VwdCBjb2x1bW4gcHVibGljYXRpb24nKTsKKwogJG5vZGVf c3Vic2NyaWJlci0+c3RvcCgnZmFzdCcpOwogJG5vZGVfcHVibGlzaGVyLT5zdG9wKCdmYXN0Jyk7 CiAKLS0gCjIuMzQuMQoK --000000000000e8ee670637e70a18 Content-Type: application/octet-stream; name="v13-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v13-0002-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mc30dgpt1 RnJvbSAzYjBhMzY4NDgzMDJlODlkMzRhODNmN2E3ZDcyOTFhYTkxMWI4MjkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTEgSnVuIDIwMjUgMTk6MDg6MzUgKzA1MzAKU3ViamVjdDogW1BBVENIIHYx MyAyLzNdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0MSx0 MjsKb3IKQUxURVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg dDEsdDI7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdfcHVi bGljYXRpb25fcmVsIiwgdG8gbWFpbnRhaW4KdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sICAgICAgICAgfCAgIDggKy0K IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAxOSArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCAgICAgIHwgIDI5ICsrLQog ZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICstCiBz cmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNjggKysrKy0t CiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAxOTcgKysr KysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAg ICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAg ICAgICB8ICA0MSArKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1 dC5jICAgfCAgMjUgKy0tCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAg ICAgICAgfCAgMTYgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAg ICAgICB8ICA1NiArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAg ICAgICB8ICAgNyArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAg ICAgfCAgMjAgKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAg ICB8ICA2MiArKysrKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAg ICAgICB8ICAxMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAg ICAgIHwgICA3ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAg ICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggICAgICAg IHwgICA1ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAg fCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICAgIHwg IDk3ICsrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAg ICAgIHwgIDQ3ICsrKystCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAg ICAgICAgfCAgIDEgKwogLi4uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCAgICAg ICAgIHwgIDgzICsrKysrKysrCiAyNSBmaWxlcyBjaGFuZ2VkLCA2ODkgaW5zZXJ0aW9ucygrKSwg MTM0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzNl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGZh ODZjNTY5ZGM0Li40ZTM3YzkyOGI0NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1NjgsNiArNjU2OCwx NSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0Ozwv cmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgaWYgdGhlcmUgaXMgbm8gcHVibGlj YXRpb24gcXVhbGlmeWluZyBjb25kaXRpb24uPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFRydWUgaWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KICAgICAgICA8c3RydWN0ZmllbGQ+cHJhdHRyczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJ2 ZWN0b3I8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlv bi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCBjMzJl NmJjMDAwZC4uM2QwZDI5Y2Y4YjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bApAQCAtMjI1MSwxMCArMjI1MSwxMCBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0 YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8L3Bh cmE+CiAKICAgPHBhcmE+Ci0gICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1 c2VyIG11c3QgaGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBh bGwgdGFibGVzIGluIHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEK LSAgIHN1cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxs IHRhYmxlcyBvciBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEgYXV0b21hdGljYWxseSwgdGhlIHVz ZXIgbXVzdCBiZSBhIHN1cGVydXNlci4KKyAgIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHVzaW5n IEZPUiBBTEwgVEFCTEVTIG9yIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSwKKyAgIHRoZSB1c2Vy IG11c3QgYmUgYSBzdXBlcnVzZXIuIFRvIGFkZCBBTEwgVEFCTEVTIG9yIEFMTCBUQUJMRVMgSU4g U0NIRU1BIHRvIGEKKyAgIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2Vy LiBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sCisgICB0aGUgdXNlciBtdXN0IGhhdmUg b3duZXJzaGlwIHJpZ2h0cyBvbiB0aGUgdGFibGUuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAppbmRleCAwNjQ1MmFmOTIxNC4uMzdl MmM4NGJjMTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIy LDYgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KK0FMVEVSIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQURE IEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBTRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwv cmVwbGFjZWFibGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gRFJPUCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQogQUxU RVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25f cGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKQEAgLTMzLDYgKzM0LDExIEBAIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gUkVTRVQKIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXSBb IFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxh Y2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1ND SEVNQSB9IFssIC4uLiBdCisKKzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmV4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAg IFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0KKwogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC04 OSw4ICs5NSw5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93 biB0aGUgcHVibGljYXRpb24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21t YW5kPi4KLSAgIEFkZGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJl cXVpcmVzIG93bmluZyB0aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPiwKKyAgIEFkZGluZyBhIHRhYmxlIHRvIG9yIGV4Y2x1ZGluZyBhIHRh YmxlIGZyb20gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkKKyAgIHJlcXVpcmVzIG93bmluZyB0 aGF0IHRhYmxlLiBUaGUgPGxpdGVyYWw+QUREIEFMTCBUQUJMRVM8L2xpdGVyYWw+LAorICAgPGxp dGVyYWw+QUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwKICAgIDxsaXRlcmFsPlNF VCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAogICAgPGxp dGVyYWw+UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZva2lu ZyB1c2VyIHRvIGJlIGEKICAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVz dCBiZSBhYmxlIHRvCkBAIC0yMzgsNiArMjQ1LDE0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHNhbGVz X3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3By b2dyYW1saXN0aW5nPgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBBbHRlciBwdWJsaWNhdGlv biA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPiB0byBwdWJs aXNoCisgICBhbGwgdGFibGVzIGV4Y2VwdCA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4g YW5kCisgICA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwg VEFCTEVTIEVYQ0VQVCB1c2VycywgZGVwYXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFy YT4KKwogICA8cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5h bWU+LAogICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDgwMjYzMGYyZGYx Li43ZmQ4ODcyZGI1ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGlj YXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21s CkBAIC0yMiw3ICsyMiw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNp c2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+Ci0gICAgWyBGT1IgQUxMIFRBQkxFUworICAg IFsgRk9SIEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gXQogICAg ICAgfCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLiBdIF0KICAgICBbIFdJVEggKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBd ICkgXQogCkBAIC0zMCw2ICszMCwxMCBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogCiAgICAgVEFCTEUgWyBPTkxZ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRBQkxF UyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8 L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KKworPHBocmFzZT53aGVy ZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0aW9uX29iamVjdDwvcmVwbGFj ZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogPC9zeW5vcHNpcz4KICA8 L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMjUsNyArMTI5LDkgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8 bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9uIGFzIG9u ZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgotICAgICAgdGhlIGRh dGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAgICAgIHRo ZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuIElmCisg ICAgICA8bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlbiBl eGNsdWRlIHJlcGxpY2F0aW5nCisgICAgICB0aGUgY2hhbmdlcyBmb3IgdGhlIHNwZWNpZmllZCB0 YWJsZXMuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+ CkBAIC0xNjEsNiArMTY3LDE2IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlcHVibGljYXRp b24tcGFyYW1zLWZvci1leGNlcHQtdGFibGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkVYQ0VQVCBU QUJMRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoaXMgY2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkIGZy b20gdGhlCisgICAgICBwdWJsaWNhdGlvbi4gSXQgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIDxsaXRl cmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoIj4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRIICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFj ZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFi bGU+XSBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC00NDIs NiArNDU4LDE1IEBAIENSRUFURSBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZP UiBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElDQVRJT04g c2FsZXNfcHVibGljYXRpb24gRk9SIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsK IDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGlj YXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMgZXhjZXB0 IGZvcgorICAgdGhlIGNoYW5nZXMgb2YgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFu ZAorICAgPHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gRk9SIEFMTCBUQUJMRVMgRVhD RVBUIHVzZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwog ICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFu Z2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBidXQgcmVw bGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFtZT4gYW5k CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggNTcwZWYyMWQxZmMuLmQ5Y2Q5NmRjYWJhIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTAzLDggKzIxMDMsOSBAQCBTRUxFQ1QgJDEgXHBhcnNl IHN0bXQxCiAgICAgICAgIGxpc3RlZC4KICAgICAgICAgSWYgPGxpdGVyYWw+eDwvbGl0ZXJhbD4g aXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHJlc3VsdHMKICAgICAgICAgYXJl IGRpc3BsYXllZCBpbiBleHBhbmRlZCBtb2RlLgotICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRl cmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzIGFuZAotICAg ICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9uIGFyZSBzaG93biBh cyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0 aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAgICAgICBleGNsdWRlZCB0YWJsZXMgYW5k IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRpb24gYXJlIHNob3duIGFzCisg ICAgICAgIHdlbGwuCiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAg IDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCmluZGV4IGQ2 Zjk0ZGI1ZDk5Li5lYzU4MGUzYjA1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24u YwpAQCAtMzUxLDcgKzM1MSw4IEBAIEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0 ICpyZXN1bHQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKICAqIGFuY2VzdG9yIGlz IGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgKi8KIE9pZAotR2V0VG9wTW9zdEFuY2VzdG9ySW5Q dWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3JfbGV2 ZWwpCitHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFu Y2VzdG9ycywKKwkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0YWJsZXMp CiB7CiAJTGlzdENlbGwgICAqbGM7CiAJT2lkCQkJdG9wbW9zdF9yZWxpZCA9IEludmFsaWRPaWQ7 CkBAIC0zNjMsMzIgKzM2NCw0NCBAQCBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9p ZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbAogCWZvcmVhY2go bGMsIGFuY2VzdG9ycykKIAl7CiAJCU9pZAkJCWFuY2VzdG9yID0gbGZpcnN0X29pZChsYyk7Ci0J CUxpc3QJICAgKmFwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvcik7Ci0J CUxpc3QJICAgKmFzY2hlbWFQdWJpZHMgPSBOSUw7CisJCUxpc3QJICAgKmFwdWJpZHMgPSBHZXRS ZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgZmFsc2UpOworCQlMaXN0CSAgICphc2NoZW1h cHViaWRzID0gTklMOworCQlMaXN0CSAgICphZXhjZXB0cHViaWRzID0gTklMOworCQlib29sCQlz ZXRfdG9wID0gZmFsc2U7CiAKIAkJbGV2ZWwrKzsKIAotCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFw dWJpZHMsIHB1Ym9pZCkpCisJCS8qIGNoZWNrIGlmIG1lbWJlciBvZiB0YWJsZSBwdWJsaWNhdGlv bnMgKi8KKwkJc2V0X3RvcCA9IGxpc3RfbWVtYmVyX29pZChhcHViaWRzLCBwdWJvaWQpOworCQlp ZiAoIXNldF90b3ApCiAJCXsKLQkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKKwkJCWFzY2hl bWFwdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0 b3IpKTsKIAotCQkJaWYgKGFuY2VzdG9yX2xldmVsKQotCQkJCSphbmNlc3Rvcl9sZXZlbCA9IGxl dmVsOworCQkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHNjaGVtYSBwdWJsaWNhdGlvbnMgKi8KKwkJ CXNldF90b3AgPSBsaXN0X21lbWJlcl9vaWQoYXNjaGVtYXB1YmlkcywgcHVib2lkKTsKKworCQkJ LyoKKwkJCSAqIElmIHRoZSBwdWJsaWNhdGlvbiBpcyBhbGwgdGFibGVzIHB1YmxpY2F0aW9uIGFu ZCB0aGUgdGFibGUgaXMKKwkJCSAqIG5vdCBwYXJ0IG9mIGV4Y2VwdGlvbiB0YWJsZXMuCisJCQkg Ki8KKwkJCWlmICghc2V0X3RvcCAmJiBwdWJhbGx0YWJsZXMpCisJCQl7CisJCQkJYWV4Y2VwdHB1 YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKTsKKwkJCQlzZXRf dG9wID0gIWxpc3RfbWVtYmVyX29pZChhZXhjZXB0cHViaWRzLCBwdWJvaWQpOworCQkJfQogCQl9 Ci0JCWVsc2UKKworCQlpZiAoc2V0X3RvcCkKIAkJewotCQkJYXNjaGVtYVB1YmlkcyA9IEdldFNj aGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25hbWVzcGFjZShhbmNlc3RvcikpOwotCQkJaWYgKGxp c3RfbWVtYmVyX29pZChhc2NoZW1hUHViaWRzLCBwdWJvaWQpKQotCQkJewotCQkJCXRvcG1vc3Rf cmVsaWQgPSBhbmNlc3RvcjsKKwkJCXRvcG1vc3RfcmVsaWQgPSBhbmNlc3RvcjsKIAotCQkJCWlm IChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7Ci0JCQl9CisJ CQlpZiAoYW5jZXN0b3JfbGV2ZWwpCisJCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CiAJCX0K IAogCQlsaXN0X2ZyZWUoYXB1Ymlkcyk7Ci0JCWxpc3RfZnJlZShhc2NoZW1hUHViaWRzKTsKKwkJ bGlzdF9mcmVlKGFzY2hlbWFwdWJpZHMpOworCQlsaXN0X2ZyZWUoYWV4Y2VwdHB1Ymlkcyk7CiAJ fQogCiAJcmV0dXJuIHRvcG1vc3RfcmVsaWQ7CkBAIC00NzksNiArNDkyLDggQEAgcHVibGljYXRp b25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCU9i amVjdElkR2V0RGF0dW0ocHViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9w cnJlbGlkIC0gMV0gPQogCQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwl2YWx1ZXNbQW51bV9w Z19wdWJsaWNhdGlvbl9yZWxfcHJleGNlcHQgLSAxXSA9CisJCUJvb2xHZXREYXR1bShwcmktPmV4 Y2VwdCk7CiAKIAkvKiBBZGQgcXVhbGlmaWNhdGlvbnMsIGlmIGF2YWlsYWJsZSAqLwogCWlmIChw cmktPndoZXJlQ2xhdXNlICE9IE5VTEwpCkBAIC03NDYsOSArNzYxLDkgQEAgcHVibGljYXRpb25f YWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhpc3RzKQog CXJldHVybiBteXNlbGY7CiB9CiAKLS8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZv ciBhIHJlbGF0aW9uICovCisvKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBmb3IgYSBy ZWxhdGlvbiB0aGF0IG1hdGNoZXMgdGhlIGV4Y2VwdF9mbGFnICovCiBMaXN0ICoKLUdldFJlbGF0 aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKK0dldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJQ2F0 Q0xpc3QgICAqcHVicmVsbGlzdDsKQEAgLTc2Miw3ICs3NzcsOCBAQCBHZXRSZWxhdGlvblB1Ymxp Y2F0aW9ucyhPaWQgcmVsaWQpCiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVy c1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkg R0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOwogCi0JCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3Vs dCwgcHViaWQpOworCQlpZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3Jl bCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdCkKKwkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJl c3VsdCwgcHViaWQpOwogCX0KIAogCVJlbGVhc2VTeXNDYWNoZUxpc3QocHVicmVsbGlzdCk7CkBA IC04NjEsMTMgKzg3NywxNiBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkKICAqIHJv b3QgcGFydGl0aW9uZWQgdGFibGVzLgogICovCiBMaXN0ICoKLUdldEFsbFRhYmxlc1B1YmxpY2F0 aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCkKK0dldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVs YXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KQogewogCVJlbGF0aW9uCWNsYXNzUmVs OwogCVNjYW5LZXlEYXRhIGtleVsxXTsKIAlUYWJsZVNjYW5EZXNjIHNjYW47CiAJSGVhcFR1cGxl CXR1cGxlOwogCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRsaXN0Owor CisJZXhjZXB0bGlzdCA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElP Tl9QQVJUX0FMTCk7CiAKIAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25SZWxhdGlvbklk LCBBY2Nlc3NTaGFyZUxvY2spOwogCkBAIC04ODQsNyArOTAzLDggQEAgR2V0QWxsVGFibGVzUHVi bGljYXRpb25SZWxhdGlvbnMoYm9vbCBwdWJ2aWFyb290KQogCQlPaWQJCQlyZWxpZCA9IHJlbEZv cm0tPm9pZDsKIAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYm Ci0JCQkhKHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpKQorCQkJIShyZWxG b3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSAmJgorCQkJIWxpc3RfbWVtYmVyX29p ZChleGNlcHRsaXN0LCByZWxpZCkpCiAJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJl bGlkKTsKIAl9CiAKQEAgLTkwNSw3ICs5MjUsOCBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJl bGF0aW9ucyhib29sIHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsK IAogCQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJCSFy ZWxGb3JtLT5yZWxpc3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYK KwkJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1bHQgPSBs YXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTYwLDcgKzExODEsOCBAQCBw Z19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkgKiB0aG9zZS4g T3RoZXJ3aXNlLCBnZXQgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4KIAkJCSAqLwogCQkJ aWYgKHB1Yl9lbGVtLT5hbGx0YWJsZXMpCi0JCQkJcHViX2VsZW1fdGFibGVzID0gR2V0QWxsVGFi bGVzUHVibGljYXRpb25SZWxhdGlvbnMocHViX2VsZW0tPnB1YnZpYXJvb3QpOworCQkJCXB1Yl9l bGVtX3RhYmxlcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVtLT5v aWQsCisJCQkJCQkJCQkJCQkJCQkJICAgcHViX2VsZW0tPnB1YnZpYXJvb3QpOwogCQkJZWxzZQog CQkJewogCQkJCUxpc3QJICAgKnJlbGlkcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25j bWRzLmMKaW5kZXggMTU5ZGMzNzgxZDAuLjUxOTRiMmZiNmUyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMjA0LDYgKzIwNCwxMSBAQCBPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ c3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpf VEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJCQkJKnJlbHMg PSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsKKwkJCWNhc2Ug UFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2Vw dCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsK IAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQToKQEAg LTI3OCw3ICsyODMsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyKE5vZGUgKm5v ZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMs Ci0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCwg Ym9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lkCQkJcmVsaWQg PSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTMwNSw3ICszMTAsOCBAQCBwdWJfcmZf Y29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlz dCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlz cGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BNb3N0QW5jZXN0 b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBHZXRUb3BNb3N0 QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJCQkJCQkJCQkJ CSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkp CiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNjUsNyArMzcxLDcgQEAgcHViX3Jm X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExp c3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHVi aWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCQkJYm9vbCBwdWJ2 aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQlib29sICppbnZhbGlkX2NvbHVt bl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29sICppbnZhbGlkX2NvbHVtbl9s aXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJCQlyZWxpZCA9IFJl bGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzg5LDcgKzM5NSw4IEBAIHB1Yl9jb250YWlu c19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNl c3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsaXNw YXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5Q dWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9hc19yZWxpZCA9 IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywKKwkJCQkJ CQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVi bGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC05MjEsNTIg KzkyOCw1MCBAQCBDcmVhdGVQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkvKiBNYWtlIHRoZSBjaGFuZ2VzIHZpc2libGUuICovCiAJ Q29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKIAotCS8qIEFzc29jaWF0ZSBvYmplY3RzIHdpdGgg dGhlIHB1YmxpY2F0aW9uLiAqLwotCWlmIChzdG10LT5mb3JfYWxsX3RhYmxlcykKLQl7Ci0JCS8q IEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQu ICovCi0JCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7Ci0JfQotCWVsc2UKLQl7Ci0JCU9i amVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0 aW9ucywKLQkJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7CisJT2JqZWN0c0luUHVibGljYXRpb25U b09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAorCQkJCQkJCSAgICZz Y2hlbWFpZGxpc3QpOwogCi0JCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHJlcXVpcmVzIHN1cGVy dXNlciAqLwotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCi0JCQll cmVwb3J0KEVSUk9SLAotCQkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVH RSksCi0JCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBUQUJMRVMg SU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOworCS8qIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHJlcXVp cmVzIHN1cGVydXNlciAqLworCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMICYmICFzdXBlcnVzZXIo KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BS SVZJTEVHRSksCisJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBjcmVhdGUgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CiAKLQkJaWYgKHJlbGF0aW9ucyAhPSBOSUwp Ci0JCXsKLQkJCUxpc3QJICAgKnJlbHM7CisJaWYgKHJlbGF0aW9ucyAhPSBOSUwpCisJeworCQlM aXN0CSAgICpyZWxzOwogCi0JCQlyZWxzID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOwotCQkJ VHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAotCQkJ CQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwkJcmVscyA9IE9wZW5UYWJsZUxp c3QocmVsYXRpb25zKTsKKwkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+ cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQkgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0J CQlDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChzdG10LT5wdWJuYW1lLCByZWxzLAotCQkJCQkJ CQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKLQkJCQkJCQkJCSAgIHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290KTsKKwkJQ2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwg cmVscywKKwkJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKKwkJCQkJCQkJICAgcHVibGlz aF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0JCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQs IHJlbHMsIHRydWUsIE5VTEwpOwotCQkJQ2xvc2VUYWJsZUxpc3QocmVscyk7Ci0JCX0KKwkJUHVi bGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKKwkJQ2xvc2VUYWJs ZUxpc3QocmVscyk7CisJfQogCi0JCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMKQotCQl7Ci0JCQkv KgotCQkJICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMgY3Jl YXRlZCB0byBwcmV2ZW50Ci0JCQkgKiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlvbi4KLQkJCSAq LwotCQkJTG9ja1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKLQkJCVB1YmxpY2F0aW9uQWRkU2No ZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7Ci0JCX0KKwlpZiAoc2NoZW1h aWRsaXN0ICE9IE5JTCkKKwl7CisJCS8qCisJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwg dGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAorCQkgKiBjb25jdXJyZW50IHNj aGVtYSBkZWxldGlvbi4KKwkJICovCisJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CisJ CVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7 CiAJfQogCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAorCS8qIEFzc29j aWF0ZSBvYmplY3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLworCWlmIChzdG10LT5mb3JfYWxs X3RhYmxlcykKKwl7CisJCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlv biBpbmZvIGlzIHJlYnVpbHQuICovCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJ fQorCiAJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soUHVibGljYXRpb25SZWxhdGlvbklkLCBw dWJvaWQsIDApOwogCiAJaWYgKHdhbF9sZXZlbCAhPSBXQUxfTEVWRUxfTE9HSUNBTCkKQEAgLTEy NDYsNiArMTI1MSwyNyBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJnZW5jb2xzIC0gMV0gPSBDaGFyR2V0RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09MUyk7CiAJ cmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVlOwogCisJ LyoKKwkgKiBMb2NrIHRoZSBwdWJsaWNhdGlvbiBzbyBub2JvZHkgZWxzZSBjYW4gZG8gYW55dGhp bmcgd2l0aCBpdC4gVGhpcworCSAqIHByZXZlbnRzIGNvbmN1cnJlbnQgcHVibGljYXRpb24gcGFy YW1ldGVyIGNoYW5nZXMsIGFkZC9kcm9wIHRhYmxlcyhzKQorCSAqIHRvIHRoZSBwdWJsaWNhdGlv biBhbmQgYWRkL2Ryb3Agc2NoZW1hKHMpIHRvIHRoZSBwdWJsaWNhdGlvbi4KKwkgKi8KKwlMb2Nr RGF0YWJhc2VPYmplY3QoUHVibGljYXRpb25SZWxhdGlvbklkLCBwdWJpZCwgMCwKKwkJCQkJICAg QWNjZXNzRXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkg dGhlIHRpbWUgd2UgYWNxdWlyZSB0aGUgbG9jayBvbiBwdWJsaWNhdGlvbiwKKwkgKiBjb25jdXJy ZW50IERETCBoYXMgcmVtb3ZlZCBpdC4gV2UgY2FuIHRlc3QgdGhpcyBieSBjaGVja2luZyB0aGUK KwkgKiBleGlzdGVuY2Ugb2YgcHVibGljYXRpb24uIFdlIGdldCB0aGUgdHVwbGUgYWdhaW4gdG8g YXZvaWQgdGhlIHJpc2sgb2YKKwkgKiBhbnkgcHVibGljYXRpb24gb3B0aW9uIGdldHRpbmcgY2hh bmdlZC4KKwkgKi8KKwl0dXAgPSBTZWFyY2hTeXNDYWNoZUNvcHkxKFBVQkxJQ0FUSU9OT0lELCBP YmplY3RJZEdldERhdHVtKHB1YmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAor CQkJCWVycm1zZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJICAg c3RtdC0+cHVibmFtZSkpOworCiAJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyB0byBmYWxzZSAqLwog CWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCiAJewpAQCAtMTI4NCw2ICsxMzEwLDc5IEBAIEFs dGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25T dG10ICpzdG10LAogCX0KIH0KIAorLyoKKyAqIENoZWNrIGlmIHRoZSBwdWJsaWNhdGlvbiBoYXMg ZGVmYXVsdCB2YWx1ZXMuCisgKgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwdWJsaWNhdGlvbiBz YXRpc2ZpZXMgYWxsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqIGEpIFB1YmxpY2F0aW9u IGlzIG5vdCBzZXQgd2l0aCAiRk9SIEFMTCBUQUJMRVMiCisgKiBiKSBQdWJsaWNhdGlvbiBpcyBo YXZpbmcgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBjKSBQdWJsaWNh dGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1YmxpY2F0aW9uIGlz IG5vdCBhc3NvY2lhdGVkIHdpdGggcmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29sCitDaGVja1B1 YmxpY2F0aW9uRGVmVmFsdWVzKEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlv biBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXApOworCU9pZAkJ CXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7CisKKwlpZiAo cHViZm9ybS0+cHViYWxsdGFibGVzICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMpCisJCXJldHVy biBmYWxzZTsKKworCWlmIChwdWJmb3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RFRkFVTFRfQUNUSU9O X0lOU0VSVCB8fAorCQlwdWJmb3JtLT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1VQ REFURSB8fAorCQlwdWJmb3JtLT5wdWJkZWxldGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVU RSB8fAorCQlwdWJmb3JtLT5wdWJ0cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNB VEUgfHwKKwkJcHViZm9ybS0+cHVidmlhcm9vdCAhPSBQVUJfREVGQVVMVF9WSUFfUk9PVCkKKwkJ cmV0dXJuIGZhbHNlOworCisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uU2NoZW1hcyhwdWJpZCk7 CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwdWJvYmpz ID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7 CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4g dHJ1ZTsKK30KKworLyoKKyAqIFNldCBwdWJsaWNhdGlvbiB0byBwdWJsaXNoIGFsbCB0YWJsZXMu CisgKi8KK3N0YXRpYyB2b2lkCitBbHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKFJlbGF0aW9u IHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gUEdf VVNFRF9GT1JfQVNTRVJUU19PTkxZID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0 dXApOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlib29sCQlyZXBsYWNl c1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19wdWJsaWNh dGlvbl07CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJQXNzZXJ0KCFwdWJmb3JtLT5w dWJhbGx0YWJsZXMpOworI2VuZGlmCisKKwkvKiBBZGQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGlj YXRpb24gcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJ CQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0aGUgcHVi bGljYXRpb24iKSk7CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVt c2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxz ZSwgc2l6ZW9mKHJlcGxhY2VzKSk7CisKKwkvKiBTZXQgQUxMIFRBQkxFUyBmbGFnICovCisJdmFs dWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0o dHJ1ZSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9 IHRydWU7CisKKwl0dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3Io cmVsKSwgdmFsdWVzLCBudWxscywKKwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhl IGNhdGFsb2cuICovCisJQ2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXAp OworfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0by9mcm9tIHB1YmxpY2F0aW9uLgog ICovCkBAIC0xNTk2LDYgKzE2OTUsMjAgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10KQogCQlhY2xjaGVja19lcnJvcihBQ0xD SEVDS19OT1RfT1dORVIsIE9CSkVDVF9QVUJMSUNBVElPTiwKIAkJCQkJICAgc3RtdC0+cHVibmFt ZSk7CiAKKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJeworCQlib29sCQlpc2RlZmF1bHQg PSBDaGVja1B1YmxpY2F0aW9uRGVmVmFsdWVzKHR1cCk7CisKKwkJaWYgKCFpc2RlZmF1bHQpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVG SU5JVElPTiksCisJCQkJCWVycm1zZygiYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1 YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzIiks CisJCQkJCWVycmRldGFpbCgiQUxMIFRBQkxFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFuZCBu byB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4iKSwKKwkJCQkJZXJyaGludCgi VXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24i KSk7CisKKwkJQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxlcyhyZWwsIHR1cCk7CisJfQorCiAJ aWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwgc3Rt dCwgcmVsLCB0dXApOwogCWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldFB1YmxpY2F0 aW9uKQpAQCAtMTgwOCw2ICsxOTIxLDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJ CXB1Yl9yZWwtPnJlbGF0aW9uID0gcmVsOwogCQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndo ZXJlQ2xhdXNlOwogCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJcHViX3JlbC0+ ZXhjZXB0ID0gdC0+ZXhjZXB0OwogCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJ cmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBteXJlbGlkKTsKIApAQCAtMTg4MCw2ICsxOTk0 LDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAKIAkJCQkvKiBjaGlsZCBpbmhlcml0 cyBjb2x1bW4gbGlzdCBmcm9tIHBhcmVudCAqLwogCQkJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5j b2x1bW5zOworCQkJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJCQlyZWxzID0gbGFw cGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJCQlyZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIGNo aWxkcmVsaWQpOwogCkBAIC0xOTU1LDggKzIwNzAsNiBAQCBQdWJsaWNhdGlvbkFkZFRhYmxlcyhP aWQgcHViaWQsIExpc3QgKnJlbHMsIGJvb2wgaWZfbm90X2V4aXN0cywKIHsKIAlMaXN0Q2VsbCAg ICpsYzsKIAotCUFzc2VydCghc3RtdCB8fCAhc3RtdC0+Zm9yX2FsbF90YWJsZXMpOwotCiAJZm9y ZWFjaChsYywgcmVscykKIAl7CiAJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHViX3JlbCA9IChQdWJs aWNhdGlvblJlbEluZm8gKikgbGZpcnN0KGxjKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5k ZXggZWE5Njk0N2Q4MTMuLjhhODI2OGEwNWQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpA QCAtODYyNCw3ICs4NjI0LDcgQEAgQVRFeGVjU2V0RXhwcmVzc2lvbihBbHRlcmVkVGFibGVJbmZv ICp0YWIsIFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkgKiBleHByZXNzaW9u cy4KIAkgKi8KIAlpZiAoYXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVB TCAmJgotCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCkpICE9 IE5JTCkKKwkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBm YWxzZSkgIT0gTklMKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIFNFVCBFWFBS RVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgb24g dGFibGVzIHRoYXQgYXJlIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIpLApAQCAtMTg3OTQsNyArMTg3 OTQsNyBAQCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJl bGF0aW9uIHJlbCwgYm9vbCB0b0xvZ2dlZCkKIAkgKiBVTkxPR0dFRCwgYXMgVU5MT0dHRUQgdGFi bGVzIGNhbid0IGJlIHB1Ymxpc2hlZC4KIAkgKi8KIAlpZiAoIXRvTG9nZ2VkICYmCi0JCUdldFJl bGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQorCQlsaXN0 X2xlbmd0aChHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIGZh bHNlKSkgPiAwKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNU X05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2Ug dGFibGUgXCIlc1wiIHRvIHVubG9nZ2VkIGJlY2F1c2UgaXQgaXMgcGFydCBvZiBhIHB1YmxpY2F0 aW9uIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CmluZGV4IGUxNmY0ODMyOTYzLi5kN2ZlOTVhODQwZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC00NDUsNyArNDQ1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQl0cmFu c2Zvcm1fZWxlbWVudF9saXN0IHRyYW5zZm9ybV90eXBlX2xpc3QKIAkJCQlUcmlnZ2VyVHJhbnNp dGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xpc3Qgb3B0X3Zh Y3V1bV9yZWxhdGlvbl9saXN0Ci0JCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2JqX2xpc3QKKwkJ CQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdCBleGNlcHRfcHViX29ial9saXN0CiAKICV0 eXBlIDxyZXRjbGF1c2U+IHJldHVybmluZ19jbGF1c2UKICV0eXBlIDxub2RlPglyZXR1cm5pbmdf b3B0aW9uCkBAIC01ODQsNiArNTg0LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBl IDxub2RlPgl2YXJfdmFsdWUgem9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lkZW50 IFJvbGVTcGVjIG9wdF9ncmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBQ dWJsaWNhdGlvbk9ialNwZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IEV4Y2VwdFB1 YmxpY2F0aW9uT2JqU3BlYwogCiAldHlwZSA8a2V5d29yZD4gdW5yZXNlcnZlZF9rZXl3b3JkIHR5 cGVfZnVuY19uYW1lX2tleXdvcmQKICV0eXBlIDxrZXl3b3JkPiBjb2xfbmFtZV9rZXl3b3JkIHJl c2VydmVkX2tleXdvcmQKQEAgLTEwNjEyLDcgKzEwNjEzLDcgQEAgQWx0ZXJPd25lclN0bXQ6IEFM VEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3BlYwog ICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBuYW1lIFtXSVRIIG9wdGlvbnNdCiAgKgotICogQ1JF QVRFIFBVQkxJQ0FUSU9OIEZPUiBBTEwgVEFCTEVTIFtXSVRIIG9wdGlvbnNdCisgKiBDUkVBVEUg UFVCTElDQVRJT04gRk9SIEFMTCBUQUJMRVMgW0VYQ0VQVCBbVEFCTEVdIHRhYmxlIFssIC4uLl1d IFtXSVRIIG9wdGlvbnNdCiAgKgogICogQ1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBwdWJfb2JqIFss IC4uLl0gW1dJVEggb3B0aW9uc10KICAqCkBAIC0xMDYzMiwxMiArMTA2MzMsMTMgQEAgQ3JlYXRl UHVibGljYXRpb25TdG10OgogCQkJCQluLT5vcHRpb25zID0gJDQ7CiAJCQkJCSQkID0gKE5vZGUg KikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwgVEFCTEVT IG9wdF9kZWZpbml0aW9uCisJCQl8IENSRUFURSBQVUJMSUNBVElPTiBuYW1lIEZPUiBBTEwgVEFC TEVTIGV4Y2VwdF9wdWJfb2JqX2xpc3Qgb3B0X2RlZmluaXRpb24KIAkJCQl7CiAJCQkJCUNyZWF0 ZVB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3RtdCk7CiAK IAkJCQkJbi0+cHVibmFtZSA9ICQzOwotCQkJCQluLT5vcHRpb25zID0gJDc7CisJCQkJCW4tPm9w dGlvbnMgPSAkODsKKwkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopJDc7CiAJCQkJCW4tPmZv cl9hbGxfdGFibGVzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KQEAgLTEw Njc1LDYgKzEwNjc3LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUt PnJlbGF0aW9uID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwogCQkJCQkk JC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwog CQkJCX0KIAkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCiAJCQkJewpAQCAtMTA3NTAsNiAr MTA3NTMsMjUgQEAgcHViX29ial9saXN0OglQdWJsaWNhdGlvbk9ialNwZWMKIAkJCQkJeyAkJCA9 IGxhcHBlbmQoJDEsICQzKTsgfQogCTsKIAorRXhjZXB0UHVibGljYXRpb25PYmpTcGVjOgorCQkJ IHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpT cGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9FWENFUFRfVEFCTEU7 CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOworCQkJCQkk JC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24g PSAkMTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQorCTsKKworZXhjZXB0X3B1Yl9v YmpfbGlzdDoJRVhDRVBUIG9wdF90YWJsZSBFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWMKKwkJCQkJ eyAkJCA9IGxpc3RfbWFrZTEoJDMpOyB9CisJCQl8IGV4Y2VwdF9wdWJfb2JqX2xpc3QgJywnIEV4 Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CisJ CQl8ICAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJOworCiAvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNFVCAoIG9wdGlvbnMgKQpA QCAtMTA3NjIsNiArMTA3ODQsOCBAQCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2JqU3BlYwog ICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKICAqCisgKiBBTFRFUiBQVUJMSUNB VElPTiBuYW1lIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBbVEFCTEVdIHRhYmxlX25hbWUgWywgLi4u XQorICoKICAqIHB1Yl9vYmogaXMgb25lIG9mOgogICoKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFss IC4uLl0KQEAgLTEwNzg4LDYgKzEwODEyLDE1IEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJ CQluLT5hY3Rpb24gPSBBUF9BZGRPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJ fQorCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERF9QIEFMTCBUQUJMRVMgZXhjZXB0X3B1 Yl9vYmpfbGlzdAorCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+ cHVib2JqZWN0cyA9ICQ3OworCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CisJCQkJCW4t PmFjdGlvbiA9IEFQX0FkZE9iamVjdHM7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJ CXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBTRVQgcHViX29ial9saXN0CiAJCQkJewogCQkJCQlB bHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCmluZGV4IDY5M2E3 NjZlNmQ3Li41NTEyYjRjYmE3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v cGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1 dC9wZ291dHB1dC5jCkBAIC0yMDYzLDcgKzIwNjMsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAlpZiAoIWVudHJ5LT5yZXBsaWNh dGVfdmFsaWQpCiAJewogCQlPaWQJCQlzY2hlbWFJZCA9IGdldF9yZWxfbmFtZXNwYWNlKHJlbGlk KTsKLQkJTGlzdAkgICAqcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQpOwor CQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2Up OworCQlMaXN0CSAgICpleGNlcHRUYWJsZVB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25z KHJlbGlkLCB0cnVlKTsKIAogCQkvKgogCQkgKiBXZSBkb24ndCBhY3F1aXJlIGEgbG9jayBvbiB0 aGUgbmFtZXNwYWNlIHN5c3RlbSB0YWJsZSBhcyB3ZSBidWlsZApAQCAtMjE3NCwyMiArMjE3NSw2 IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0 aW9uKQogCQkJT2lkCQkJcHViX3JlbGlkID0gcmVsaWQ7CiAJCQlpbnQJCQlhbmNlc3Rvcl9sZXZl bCA9IDA7CiAKLQkJCS8qCi0JCQkgKiBJZiB0aGlzIGlzIGEgRk9SIEFMTCBUQUJMRVMgcHVibGlj YXRpb24sIHBpY2sgdGhlIHBhcnRpdGlvbgotCQkJICogcm9vdCBhbmQgc2V0IHRoZSBhbmNlc3Rv ciBsZXZlbCBhY2NvcmRpbmdseS4KLQkJCSAqLwotCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQotCQkJ ewotCQkJCXB1Ymxpc2ggPSB0cnVlOwotCQkJCWlmIChwdWItPnB1YnZpYXJvb3QgJiYgYW1fcGFy dGl0aW9uKQotCQkJCXsKLQkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9h bmNlc3RvcnMocmVsaWQpOwotCi0JCQkJCXB1Yl9yZWxpZCA9IGxsYXN0X29pZChhbmNlc3RvcnMp OwotCQkJCQlhbmNlc3Rvcl9sZXZlbCA9IGxpc3RfbGVuZ3RoKGFuY2VzdG9ycyk7Ci0JCQkJfQot CQkJfQotCiAJCQlpZiAoIXB1Ymxpc2gpCiAJCQl7CiAJCQkJYm9vbAkJYW5jZXN0b3JfcHVibGlz aGVkID0gZmFsc2U7CkBAIC0yMjA4LDcgKzIxOTMsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdP dXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCQlhbmNlc3RvciA9IEdl dFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkg ICBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwpOworCQkJCQkJCQkJCQkJCQkJ ICAgJmxldmVsLAorCQkJCQkJCQkJCQkJCQkJICAgcHViLT5hbGx0YWJsZXMpOwogCiAJCQkJCWlm IChhbmNlc3RvciAhPSBJbnZhbGlkT2lkKQogCQkJCQl7CkBAIC0yMjIzLDYgKzIyMDksOCBAQCBn ZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikK IAogCQkJCWlmIChsaXN0X21lbWJlcl9vaWQocHViaWRzLCBwdWItPm9pZCkgfHwKIAkJCQkJbGlz dF9tZW1iZXJfb2lkKHNjaGVtYVB1YmlkcywgcHViLT5vaWQpIHx8CisJCQkJCShwdWItPmFsbHRh YmxlcyAmJgorCQkJCQkgIWxpc3RfbWVtYmVyX29pZChleGNlcHRUYWJsZVB1YmlkcywgcHViLT5v aWQpKSB8fAogCQkJCQlhbmNlc3Rvcl9wdWJsaXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwog CQkJfQpAQCAtMjMwMSw2ICsyMjg5LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0 YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxp c3RfZnJlZShzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoZXhjZXB0VGFibGVQdWJpZHMpOwog CQlsaXN0X2ZyZWUocmVsX3B1YmxpY2F0aW9ucyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxp ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA1NTliYTljZGIyYy4u YmZmZGFiMmFiNjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hl LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTc5NCw2ICs1 Nzk0LDggQEAgdm9pZAogUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxh dGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9pZHM7CisJ TGlzdAkgICAqYWxsdGFibGVzcHVib2lkczsKKwlMaXN0CSAgICpleGNlcHRwdWJvaWRzID0gTklM OwogCUxpc3RDZWxsICAgKmxjOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJCXNjaGVt YWlkOwpAQCAtNTgzMSw3ICs1ODMzLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhS ZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2MtPmdl bmNvbHNfdmFsaWRfZm9yX2RlbGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRp b24gbWVtYmVyc2hpcCBpbmZvLiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhyZWxpZCk7CisJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxz ZSk7CiAJc2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJcHVib2lk cyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25z KHNjaGVtYWlkKSk7CiAKQEAgLTU4NDUsMTQgKzU4NDcsMTkgQEAgUmVsYXRpb25CdWlsZFB1Ymxp Y2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQog CQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9IGxpc3Rf Y29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGlj YXRpb25zKGFuY2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhh bmNlc3RvciwgZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0 b3IpOwogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJ CQkJCQkJIEdldFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0cHVib2lk cyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJCQkJCSAg IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJCX0KIAl9Ci0JcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVzUHVibGlj YXRpb25zKCkpOwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9u cygpOworCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCisJCQkJCQkJ CQkgbGlzdF9kaWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJCQkJCQkJCQkJCQkg ZXhjZXB0cHVib2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewogCQlPaWQJCQlwdWJp ZCA9IGxmaXJzdF9vaWQobGMpOwpAQCAtNTg4Myw3ICs1ODkwLDcgQEAgUmVsYXRpb25CdWlsZFB1 YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNj KQogCQlpZiAoIXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0 ZSB8fCBwdWJmb3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFpbnNfaW52YWxpZF9j b2x1bW4ocHViaWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJICAgcHViZm9ybS0+ cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+ cHViYWxsdGFibGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJk ZXNjLT5yZl92YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBAIC01OTAxLDYgKzU5MDgsNyBAQCBS ZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlv bkRlc2MgKnB1YmRlc2MpCiAJCQlwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHViaWQsIHJl bGF0aW9uLCBhbmNlc3RvcnMsCiAJCQkJCQkJCQkJcHViZm9ybS0+cHVidmlhcm9vdCwKIAkJCQkJ CQkJCQlwdWJmb3JtLT5wdWJnZW5jb2xzLAorCQkJCQkJCQkJCXB1YmZvcm0tPnB1YmFsbHRhYmxl cywKIAkJCQkJCQkJCQkmaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQkJCQkmaW52YWxpZF9n ZW5fY29sKSkKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYThmMDMwOWU4ZmMuLjZjYzU1YWZkNDk4IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKQEAgLTE4Myw2ICsxODMsOCBAQCBzdGF0aWMgU2ltcGxlT2lkTGlzdCBleHRl bnNpb25faW5jbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZVN0cmluZ0xp c3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfcGF0dGVybnMgPSB7TlVMTCwgTlVMTH07CiBzdGF0aWMgU2lt cGxlT2lkTGlzdCBleHRlbnNpb25fZXhjbHVkZV9vaWRzID0ge05VTEwsIE5VTEx9OwogCitzdGF0 aWMgU2ltcGxlUHRyTGlzdCBleGNlcHRpbmZvID0ge05VTEwsIE5VTEx9OworCiBzdGF0aWMgY29u c3QgQ2F0YWxvZ0lkIG5pbENhdGFsb2dJZCA9IHswLCAwfTsKIAogLyogb3ZlcnJpZGUgZm9yIHN0 YW5kYXJkIGV4dHJhX2Zsb2F0X2RpZ2l0cyBzZXR0aW5nICovCkBAIC00NTEwLDggKzQ1MTIsMzQg QEAgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAq cHViaW5mbykKIAkJCQkJICBxcHVibmFtZSk7CiAKIAlpZiAocHViaW5mby0+cHViYWxsdGFibGVz KQorCXsKKwkJU2ltcGxlUHRyTGlzdENlbGwgKmNlbGw7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0 YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICovCisJCWZvciAoY2Vs bCA9IGV4Y2VwdGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsKKwkJCVB1 YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJbmZvICopIGNlbGwt PnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0gcHVicmlu Zm8tPnB1YmxpY2F0aW9uKQorCQkJeworCQkJCXRiaW5mbyA9IHB1YnJpbmZvLT5wdWJ0YWJsZTsK KworCQkJCWlmIChmaXJzdCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5 LCAiIEVYQ0VQVCBUQUJMRSIpOworCQkJCQlmaXJzdCA9IGZhbHNlOworCQkJCX0KKwkJCQllbHNl CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCIpOworCQkJCWFwcGVuZFBRRXhw QnVmZmVyKHF1ZXJ5LCAiIE9OTFkgJXMiLCBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsK KwkJCX0KKwkJfQorCX0KKworCWZpcnN0ID0gdHJ1ZTsKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiBXSVRIIChwdWJsaXNoID0gJyIpOwogCWlmIChwdWJpbmZvLT5wdWJpbnNlcnQpCiAJ ewpAQCAtNDY3Nyw2ICs0NzA1LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3BycmVsaWQ7 CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9wcmF0dHJzOworCWludAkJCWlfcHJleGNl cHQ7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJCW50dXBzOwpAQCAtNDY4OCw4ICs0NzE3LDE3IEBA IGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10s IGludCBudW1UYWJsZXMpCiAKIAkvKiBDb2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1iZXJzaGlw IGluZm8uICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCXsKKwkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwg cHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNo YW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQlpZiAoZm91dC0+cmVtb3RlVmVy c2lvbiA+PSAxODAwMDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2Vw dCxcbiIpOworCQllbHNlCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBB UyBwcmV4Y2VwdCxcbiIpOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJ CSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBn X2NhdGFsb2cucGdfZ2V0X2V4cHIocHJxdWFsLCBwcnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJ CQkJCQkgIihDQVNFXG4iCiAJCQkJCQkJICIgIFdIRU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBU SEVOXG4iCkBAIC00NzAwLDYgKzQ3MzgsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZl ICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAg ICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxu IgogCQkJCQkJCSAiICBFTFNFIE5VTEwgRU5EKSBwcmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdf Y2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1Ymlk LCBwcnJlbGlkLCAiCkBAIC00NzE1LDYgKzQ3NTQsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhB cmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJy ZWxpZCA9IFBRZm51bWJlcihyZXMsICJwcnJlbGlkIik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1i ZXIocmVzLCAicHJyZWxxdWFsIik7CiAJaV9wcmF0dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0 cnMiKTsKKwlpX3ByZXhjZXB0ID0gUFFmbnVtYmVyKHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0 aGlzIGFsbG9jYXRpb24gbWF5IGJlIG1vcmUgdGhhbiB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBw Z19tYWxsb2MobnR1cHMgKiBzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CkBAIC00NzI2LDYg KzQ3NjYsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8g dGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQlPaWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3BycmVsaWQpKTsKIAkJUHVibGljYXRpb25JbmZvICpwdWJpbmZvOwog CQlUYWJsZUluZm8gICp0YmluZm87CisJCWNoYXIJICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ByZXhjZXB0KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBl bnRyaWVzIGZvciB3aGljaCB3ZSBhcmVuJ3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00 NzM5LDcgKzQ3ODAsMTEgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9L LCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJp bmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChw cmV4Y2VwdCwgImYiKSA9PSAwKQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVC TElDQVRJT05fUkVMOworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19Q VUJMSUNBVElPTl9FWENFUFRfUkVMOworCiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVv aWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJp bmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkp OwpAQCAtNDc4MCw2ICs0ODI1LDkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRo ZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmpl Y3QoJihwdWJyaW5mb1tqXS5kb2JqKSwgZm91dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwg InQiKSA9PSAwKQorCQkJc2ltcGxlX3B0cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJp bmZvW2pdKTsKKwogCQlqKys7CiAJfQogCkBAIC0xMTU0NCw2ICsxMTU5Miw5IEBAIGR1bXBEdW1w YWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBE T19QVUJMSUNBVElPTjoKIAkJCWR1bXBQdWJsaWNhdGlvbihmb3V0LCAoY29uc3QgUHVibGljYXRp b25JbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fUFVCTElDQVRJT05fRVhDRVBU X1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVtcGVkIGluIGR1bXBQdWJsaWNhdGlvbiAqLworCQkJYnJl YWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJZHVtcFB1YmxpY2F0aW9uVGFibGUo Zm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOwpAQCAt MTk3ODMsNiArMTk4MzQsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVj dCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fREVGQVVMVF9BQ0w6CiAJCQljYXNl IERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElDQVRJT046CisJCQljYXNlIERPX1BVQkxJQ0FU SU9OX0VYQ0VQVF9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWNhc2UgRE9f UFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BOgogCQkJY2FzZSBET19TVUJTQ1JJUFRJT046CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuaAppbmRleCA3NDE3ZWFiNmFlZi4uMDk2ZjI5MzQ2ZDggMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAt ODEsNiArODEsNyBAQCB0eXBlZGVmIGVudW0KIAlET19SRUZSRVNIX01BVFZJRVcsCiAJRE9fUE9M SUNZLAogCURPX1BVQkxJQ0FUSU9OLAorCURPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJRE9f UFVCTElDQVRJT05fUkVMLAogCURPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlET19S RUxfU1RBVFMsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggMGIwOTc3Nzg4ZjEuLjU2ZDY3NDBi OWVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC05Miw2ICs5Miw3IEBAIGVudW0gZGJPYmpl Y3RUeXBlUHJpb3JpdGllcwogCVBSSU9fRktfQ09OU1RSQUlOVCwKIAlQUklPX1BPTElDWSwKIAlQ UklPX1BVQkxJQ0FUSU9OLAorCVBSSU9fUFVCTElDQVRJT05fRVhDRVBUX1JFTCwKIAlQUklPX1BV QkxJQ0FUSU9OX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlQUklP X1NVQlNDUklQVElPTiwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2Jq ZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19SRUZSRVNIX01BVFZJRVddID0gUFJJT19SRUZSRVNI X01BVFZJRVcsCiAJW0RPX1BPTElDWV0gPSBQUklPX1BPTElDWSwKIAlbRE9fUFVCTElDQVRJT05d ID0gUFJJT19QVUJMSUNBVElPTiwKKwlbRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTF0gPSBQUklP X1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJW0RPX1BVQkxJQ0FUSU9OX1JFTF0gPSBQUklPX1BV QkxJQ0FUSU9OX1JFTCwKIAlbRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BXSA9IFBSSU9f UFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVtET19SRUxfU1RBVFNdID0gUFJJT19TVEFU SVNUSUNTX0RBVEFfREFUQSwKQEAgLTE0OTgsNiArMTUwMCwxMSBAQCBkZXNjcmliZUR1bXBhYmxl T2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJ CSAiUFVCTElDQVRJT04gKElEICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+ Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVM OgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIEVYQ0VQVCBU QUJMRSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQp OworCQkJcmV0dXJuOwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCXNucHJpbnRmKGJ1 ZiwgYnVmc2l6ZSwKIAkJCQkJICJQVUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDM4NmUyMWUwYzU5Li4xNTJmZDdmZjA4NiAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTMyNzMsNiArMzI3MywyNiBAQCBteSAldGVzdHMg PSAoCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAog CX0sCiAKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjYnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI2IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBkdW1wX3Rlc3QudGVzdF90YWJsZTsnLAorCQlyZWdleHAgPT4gcXIv XgorCQkJXFFDUkVBVEUgUFVCTElDQVRJT04gcHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFC TEUgT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZSBXSVRIIChwdWJsaXNoID0gJ2luc2VydCwgdXBk YXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1 bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKworCSdDUkVBVEUgUFVCTElDQVRJ T04gcHViNycgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJ ICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIGR1 bXBfdGVzdC50ZXN0X3RhYmxlLCBkdW1wX3Rlc3QudGVzdF9zZWNvbmRfdGFibGU7JywKKwkJcmVn ZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjcgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3RfdGFibGUsIE9OTFkgZHVtcF90ZXN0LnRl c3Rfc2Vjb25kX3RhYmxlIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUsIGRlbGV0ZSwg dHJ1bmNhdGUnKTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9w b3N0X2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMScgPT4g ewogCQljcmVhdGVfb3JkZXIgPT4gNTAsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBTVUJTQ1JJ UFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwppbmRleCBkZDI1ZDJmZTdiOC4uMTBiNWY3ZjI5Y2IgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CkBAIC0zMDM5LDE3ICszMDM5LDM2IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNo YXIgKnNjaGVtYW5hbWUsCiAJCQkJCQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHBy LnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJCQkJCQkJCSAgIiAgICAgICAg RUxTRSBOVUxMIEVORCkgIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRp b24gcFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9y ZWwgcHIgT04gcC5vaWQgPSBwci5wcnB1YmlkXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19j YXRhbG9nLnBnX2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJCSAgIldI RVJFIHByLnBycmVsaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBn X3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKKwkJCQkJCQkJICAi CQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJ CQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIsCisJCQkJCQkJCSAgb2lkLCBvaWQs IG9pZCk7CisKKwkJCQkvKiBGSVhNRTogMTgwMDAwIHNob3VsZCBiZSBjaGFuZ2VkIHRvIDE5MDAw MCBsYXRlciBmb3IgUEcxOS4gKi8KKwkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJ CQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7 CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCQkgICJVTklPTlxuIgogCQkJ CQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgotCQkJ CQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgorCQkJCQkJCQkg ICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24g cFxuIgotCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19y ZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgotCQkJCQkJCQkgICJPUkRFUiBCWSAxOyIs Ci0JCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkKTsKKwkJCQkJCQkJICAiV0hFUkUgcC5wdWJh bGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylc biIsCisJCQkJCQkJCSAgb2lkKTsKKworCQkJCS8qIEZJWE1FOiAxODAwMDAgc2hvdWxkIGJlIGNo YW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQkJCWlmIChwc2V0LnN2ZXJzaW9u ID49IDE4MDAwMCkKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJCSAgIiAg ICAgQU5EIE5PVCBFWElTVFMgKFxuIgorCQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgorCQkJCQkJ CQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJ CQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBwY1xuIgorCQkJCQkJCQkJICAiCQlPTiBw ci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAn JXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4iLAorCQkJCQkJCQkJICBvaWQpOworCisJCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDE7Iik7CiAJCQl9CiAJCQllbHNl CiAJCQl7CkBAIC02NjkzLDggKzY3MTIsMTMgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3Qg Y2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgICAgIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25f cmVsIHByXG4iCiAJCQkJCQkJICAiV0hFUkUgYy5yZWxuYW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJ CQkJCSAgIiAgQU5EIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCSAgIiAgQU5EIHByLnBy cHViaWQgPSAnJXMnXG4iCi0JCQkJCQkJICAiT1JERVIgQlkgMSwyIiwgcHViaWQpOworCQkJCQkJ CSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iLCBwdWJpZCk7CisKKwkJCS8qIEZJWE1FOiAx ODAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTkwMDAwIGxhdGVyIGZvciBQRzE5LiAqLworCQkJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTgwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs ICIgIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVm LCAiT1JERVIgQlkgMSwyIik7CiAJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZi dWYsIF8oIlRhYmxlczoiKSwgZmFsc2UsICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsK IApAQCAtNjcxMiw2ICs2NzM2LDI0IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIg KnBhdHRlcm4pCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVsc2UKKwkJ eworCQkJLyogRklYTUU6IDE4MDAwMCBzaG91bGQgYmUgY2hhbmdlZCB0byAxOTAwMDAgbGF0ZXIg Zm9yIFBHMTkuICovCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxODAwMDApCisJCQl7CisJCQkJ LyogR2V0IHRoZSBleGNsdWRlZCB0YWJsZXMgZm9yIHRoZSBzcGVjaWZpZWQgcHVibGljYXRpb24g Ki8KKwkJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgY29uY2F0 KGMucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsICcuJywgYy5yZWxuYW1lKVxuIgorCQkJCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgorCQkJCQkJCQkgICIgICAgIEpPSU4g cGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4i CisJCQkJCQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIiAgQU5E IHByLnByZXhjZXB0XG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBwdWJpZCk7CisJCQkJaWYg KCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNlcHQgdGFibGVzOiIpLAor CQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCX0K KwkJfQogCiAJCXByaW50VGFibGUoJmNvbnQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5s b2dmaWxlKTsKIAkJcHJpbnRUYWJsZUNsZWFudXAoJmNvbnQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IDIzY2IyN2I0YjA1Li4wNDM3NjI4YTZlMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpA QCAtMjI0NSwxMSArMjI0NSwxNiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRP IiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8K IAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE IikpCi0JCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUiKTsKKwkJQ09N UExFVEVfV0lUSCgiQUxMIFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIs ICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX3RhYmxlcyk7Ci0JZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9O IiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKLQkJCSBlbmRzX3dpdGgocHJldl93 ZCwgJywnKSkKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiQUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpCisJCUNPTVBM RVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBp ZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikgJiYgZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEhf U0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1h dGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRB QkxFUyIsICJFWENFUFQiLCAiVEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKIAkJ Q09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAog CS8qCkBAIC0zNTM2LDcgKzM1NDEsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFu eSwgIkZPUiIsICJBTEwiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIik7CiAJZWxzZSBpZiAo TWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwg IlRBQkxFUyIpKQotCQlDT01QTEVURV9XSVRIKCJXSVRIICgiKTsKKwkJQ09NUExFVEVfV0lUSCgi RVhDRVBUIFRBQkxFIiwgIldJVEggKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQ VUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVURV9XSVRI KCJJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZf d2QsICcsJykpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggNDhjN2QxYTg2 MTUuLjMzYjc3MTk5MGJkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0x MzksMTEgKzEzOSwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblJlbEluZm8KIAlSZWxh dGlvbglyZWxhdGlvbjsKIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0CSAgICpjb2x1bW5z OworCWJvb2wJCWV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiBleHRlcm4gUHVibGlj YXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRpb24gKkdl dFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7 Ci1leHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsKK2V4dGVy biBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhjZXB0X2Zs YWcpOwogCiAvKi0tLS0tLS0tLQogICogRXhwZWN0ZWQgdmFsdWVzIGZvciBwdWJfcGFydG9wdCBw YXJhbWV0ZXIgb2YgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoKSwKQEAgLTE2Myw3ICsxNjQsNyBA QCB0eXBlZGVmIGVudW0gUHVibGljYXRpb25QYXJ0T3B0CiAKIGV4dGVybiBMaXN0ICpHZXRQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9w dCk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpOwotZXh0ZXJu IExpc3QgKkdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJvb2wgcHVidmlhcm9vdCk7 CitleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1Ymlk LCBib29sIHB1YnZpYXJvb3QpOwogZXh0ZXJuIExpc3QgKkdldFB1YmxpY2F0aW9uU2NoZW1hcyhP aWQgcHViaWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9ucyhPaWQgc2NoZW1h aWQpOwogZXh0ZXJuIExpc3QgKkdldFNjaGVtYVB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBzY2hl bWFpZCwKQEAgLTE3NCw3ICsxNzUsNyBAQCBleHRlcm4gTGlzdCAqR2V0UHViUGFydGl0aW9uT3B0 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 ZW5vZGVzLmgKaW5kZXggOTA1YjU4ZTAyNzkuLmQ5MDFjYjBmZmE3IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC00MjM1LDYgKzQyMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRh YmxlCiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBiZSBwdWJsaXNoZWQg Ki8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KIAlMaXN0CSAg ICpjb2x1bW5zOwkJLyogTGlzdCBvZiBjb2x1bW5zIGluIGEgcHVibGljYXRpb24gdGFibGUgKi8K Kwlib29sCQlleGNlcHQ7CQkJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KIH0gUHVibGljYXRp b25UYWJsZTsKIAogLyoKQEAgLTQyNDMsNiArNDI0NCw3IEBAIHR5cGVkZWYgc3RydWN0IFB1Ymxp Y2F0aW9uVGFibGUKIHR5cGVkZWYgZW51bSBQdWJsaWNhdGlvbk9ialNwZWNUeXBlCiB7CiAJUFVC TElDQVRJT05PQkpfVEFCTEUsCQkvKiBBIHRhYmxlICovCisJUFVCTElDQVRJT05PQkpfRVhDRVBU X1RBQkxFLAkvKiBBIHRhYmxlIHRvIGJlIGV4Y2x1ZGVkICovCiAJUFVCTElDQVRJT05PQkpfVEFC TEVTX0lOX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBzY2hlbWEgKi8KIAlQVUJMSUNBVElPTk9C Sl9UQUJMRVNfSU5fQ1VSX1NDSEVNQSwJLyogQWxsIHRhYmxlcyBpbiBmaXJzdCBlbGVtZW50IG9m CiAJCQkJCQkJCQkJCSAqIHNlYXJjaF9wYXRoICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CmluZGV4IGIyZmZlMGE4YzIwLi41ZDAyNTMyODcwNCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIwOSwxMyArMjA5LDM3IEBA 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 ICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCkBAIC0yMzQsOCArMjU4LDI1 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 aGF0IHRhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkIGFm dGVyIFJFU0VUCiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTk2MywxNyAr MjAyNywyMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKICgxIHJvdykKIAotQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVi bGljOwotRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiQUxMIgotTElORSAxOiBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWIu Li4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7Cist LSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1 YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSBwdWJfc2NoMS50YmwxOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyBy ZXF1aXJlcyB0aGUgcHVibGljYXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFt ZXRlciB2YWx1ZXMKK0RFVEFJTDogIEFMTCBUQUJMRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBh bmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KIC0tIFZl cmlmeSB0aGF0IHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJv cHBlZCBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KICByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCi0oMSByb3cpCitUYWJs ZXMgZnJvbSBzY2hlbWFzOgorICAgICJwdWJsaWMiCiAKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CkBAIC0xOTg0LDYgKzIwNTEsMTIg QEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKICgxIHJvdykKIAogQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJyk7CistLSBDYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gdGhlICdQVUJMSVNIJyBwYXJhbWV0ZXIgZG9lcyBub3Qg aGF2ZSBkZWZhdWx0CistLSB2YWx1ZQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5n IEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJs aWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxk IG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgor SElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1Ymxp Y2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVCTElTSCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJw KyB0ZXN0cHViX3Jlc2V0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMjAwMSw2ICsyMDc0LDEyIEBAIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAoMSByb3cpCiAKIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0 cnVlJyk7CistLSBDYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gJ1BVQkxJU0hfVklBX1BBUlRJ VElPTl9ST09UJyBwYXJhbWV0ZXIgZG9lcyBub3QKKy0tIGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg cHViX3NjaDEudGJsMTsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1 YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitE RVRBSUw6ICBBTEwgVEFCTEVTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9z Y2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElP TiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBpcyByZXNldAogXGRScCsgdGVzdHB1 Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKQEAgLTIwMzksOSArMjExOCwxMyBAQCBBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBT RVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3VwZXJ1c2VyCiBFUlJPUjogIG11 c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uCistLSBWZXJpZnkgdGhhdCBvbmx5 IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBB TEwgVEFCTEVTIHRvIHRoZSBwdWJsaWNhdGlvbgogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJf c2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3Nj aDE7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCmluZGV4IDE1YjJiMWNmZDI4Li5h ZjMxYTIyMTRjYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24u c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTA0LDIw ICsxMDQsMzMgQEAgU0VMRUNUIHB1Ym5hbWUsIHB1YmFsbHRhYmxlcyBGUk9NIHBnX3B1YmxpY2F0 aW9uIFdIRVJFIHB1Ym5hbWUgPSAndGVzdHB1Yl9mb3JhbGwKIFxkKyB0ZXN0cHViX3RibDIKIFxk UnArIHRlc3RwdWJfZm9yYWxsdGFibGVzCiAKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VS Uk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDI7 CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRBQkxFCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCB0ZXN0 cHViX3RibDE7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworCitcZFJwKyB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZQorXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0 dGFibGUxCisKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwyOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRl c3RwdWJfZm9yX3RibF9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFi bGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJs X3NjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUsIHRlc3RwdWJfZm9yYWxs dGFibGVzX2V4Y2VwdHRhYmxlMTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQp OwogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJf dGJsMyk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElP TiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJ T04gdGVzdHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMzsKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgT05M WSB0ZXN0cHViX3RibDM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1 YjMKIFxkUnArIHRlc3RwdWI0CitcZFJwKyB0ZXN0cHViNQorXGRScCsgdGVzdHB1YjYKIAogRFJP UCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRl c3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0 ZXN0cHViNSwgdGVzdHB1YjY7CiAKIC0tIFRlc3RzIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMKIFNF VCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKQEAgLTEyMjUsMjMgKzEyMzgsMzkgQEAg RFJPUCBUQUJMRSBnZW5jb2xzOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBS RVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2NoMS50Ymwx IChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VUIGNsaWVu dF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCistLSBDYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0 CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldAogCistLSBTaG91bGQgd29yayBub3cgYWZ0ZXIgcmVz ZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsK K1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKKwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3Nj aDEudGJsMTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIFRBQkxFJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBF WENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKwogLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29j aWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnAr IHRlc3RwdWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBc ZFJwKyB0ZXN0cHViX3Jlc2V0CiAKLUFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQURE IEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBDYW4ndCBhZGQgRVhDRVBU IFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJf c2NoMS50YmwxOwogCiAtLSBWZXJpZnkgdGhhdCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUg cHVibGljYXRpb24gYXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKIFxkUnArIHRlc3RwdWJfcmVzZXQK QEAgLTEyNTAsNiArMTI3OSwxMCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOwogCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcn KTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHRoZSAnUFVCTElTSCcgcGFyYW1l dGVyIGRvZXMgbm90IGhhdmUgZGVmYXVsdAorLS0gdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisK IC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIJyBwYXJhbWV0ZXIgaXMgcmVzZXQKIFxkUnArIHRlc3Rw dWJfcmVzZXQKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CkBAIC0xMjU3 LDYgKzEyOTAsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIAog QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElP Tl9ST09UID0gJ3RydWUnKTsKIAorLS0gQ2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuICdQVUJM SVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGRvZXMgbm90CistLSBoYXZlIGRlZmF1 bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdQVUJMSVNIX1ZJ QV9QQVJUSVRJT05fUk9PVCcgcGFyYW1ldGVyIGlzIHJlc2V0CiBcZFJwKyB0ZXN0cHViX3Jlc2V0 CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwpAQCAtMTI3MywxMCArMTMx MCwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIy OwogU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKIEFMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorCistLSBW ZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CiBTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXI7CiAKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1Ag VEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NI RU1BIHB1Yl9zY2gxOwogCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L21lc29uLmJ1aWxkCmluZGV4IDU4NmZmYmE0MzRlLi5lOGExMTdmMzQyMSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlw dGlvbi9tZXNvbi5idWlsZApAQCAtNDIsNiArNDIsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8w MzNfcnVuX2FzX3RhYmxlX293bmVyLnBsJywKICAgICAgICd0LzAzNF90ZW1wb3JhbC5wbCcsCiAg ICAgICAndC8wMzVfY29uZmxpY3RzLnBsJywKKyAgICAgICd0LzAzNl9yZXBfY2hhbmdlc19leGNl cHRfdGFibGUucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAgIF0sCiAgIH0sCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2NoYW5nZXNfZXhjZXB0X3Rh YmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM2X3JlcF9jaGFuZ2VzX2V4Y2VwdF90 YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWQxMTUyODM4 MDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzZfcmVwX2No YW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0wLDAgKzEsODMgQEAKKworIyBDb3B5cmlnaHQgKGMp IDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dp Y2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFs aXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93 c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMg Q3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFy dDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFCisjIGNsYXVzZS4KKyMgQ3JlYXRlIHNjaGVtYXMg YW5kIHRhYmxlcyBvbiBwdWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSBzY2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRl X3NlcmllcygxLDEwKSBBUyBhIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxKGEgaW50KSIpOworCisjIENyZWF0ZSBzY2hl bWFzIGFuZCB0YWJsZXMgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJDUkVBVEUgU0NIRU1BIHNjaDEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHNjaDEudGFiMSAoYSBpbnQpIik7Cisk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkNSRUFURSBUQUJMRSBwdWJs aWMudGFiMSAoYSBpbnQpIik7CisKKyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1 Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9z dGdyZXMnOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBz Y2gxLnRhYjEiCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlz aGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZv ciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zv cl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1hJyk7 CisKKyMgQ2hlY2sgdGhlIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFi bGUKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMo JHJlc3VsdCwgcXEoMHx8KSwKKwknY2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGll ZCBmb3IgdGhlIGV4Y2x1ZGVkIHRhYmxlJyk7CisKKyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVy aWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0YSBpcyBub3QgcmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhn ZW5lcmF0ZV9zZXJpZXMoMTEsMjApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2Nh dGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBG Uk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQg aW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CisKKyMgQWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVk ZSBkYXRhIGNoYW5nZXMgaW4gcHVibGljLnRhYjEgYW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmli ZXIgZG9lcyBub3QgZ2V0IHRoZSBjaGFuZ2VkIGRhdGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0YXBf cHViX3NjaGVtYSBSRVNFVCIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgQUREIEFMTCBUQUJMRVMgRVhD RVBUIFRBQkxFIHNjaDEudGFiMSwgcHVibGljLnRhYjEiCispOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gcHVibGljLnRhYjEgVkFMVUVTKGdl bmVyYXRlX3NlcmllcygxLDEwKSkiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCd0YXBfc3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJP TSBwdWJsaWMudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNrIHJvd3Mgb24gc3Vi c2NyaWJlciBjYXRjaHVwJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRu b2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQu MQoK --000000000000e8ee670637e70a18--