Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vLf33-006MWC-23 for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Nov 2025 10:04:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vLf32-00Bw4i-02 for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Nov 2025 10:04:24 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vLf31-00Bw4Z-1Y for pgsql-hackers@lists.postgresql.org; Wed, 19 Nov 2025 10:04:23 +0000 Received: from mail-oa1-x2e.google.com ([2001:4860:4864:20::2e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vLf2y-000L7x-20 for pgsql-hackers@lists.postgresql.org; Wed, 19 Nov 2025 10:04:23 +0000 Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-3d47192e99bso694586fac.0 for ; Wed, 19 Nov 2025 02:04:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763546657; x=1764151457; 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=KIw3AKu4gMAIYDv66nezSzQexQizaWmVekAbp0DW/ic=; b=myWuVBLjTf9OwQKPhvdfD+nR8MharSQJJD9xomXcaibGy8dqzA2qx4g9cHWW8SrsHd /LG82tTYOTyjukFaRwmninoZeiTcByCaCFRsSQ6B0ra41Y1UXFefg2uHDjRzZe4tDzfp s89r2ebNFRnte53Z7MAfg30GustwlXjRz28lcKjTFo/ChuhgUNz72/xXu40Rk9C5NziY rEI9xTIk8MOTGG/y/coJoBY/BiZ0TEUlNYref8RXAsLuMJGwm2rQLsIqH/b6mxeKeG8M CTU3ckCb3DnpxrBBC08019r0ME3FEMzM3lzevBhvtMeq2fpYLgOcHoTSeL4zqTfAZtLx UggQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763546657; x=1764151457; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=KIw3AKu4gMAIYDv66nezSzQexQizaWmVekAbp0DW/ic=; b=FTVdlJ4cF9rPDu56Q6HfVbGRAdAOE6a5Dhe4NdP7+lflq3P0o6PUQlfrVTe51Ex5FX xuvChk6QSf9DaBJHouOoo06WncMz42Xpss6FXqmeteS7jNInwIlvVpBJ1LL7/9z2SttJ daoR/XXxqXeXh1mE/1ZiMohiTEw5MLdv2YbwDtjTstcfjvPWC3VAnW7o98ep12u0Nppp 4w5ImuxUmCOBZpyVia8oJChojnSL9NGV/L43F7WFKOTRpHYrI2afBgXgatZ9CQ2lzqrQ UuJgZFv7EW8Y4lgk1SEB7N08cxwQTzc0QeK+ui+V+cjGOQJVxS6y+kfKqdo4i3yoK9OP QFoA== X-Forwarded-Encrypted: i=1; AJvYcCUBSNebGr2lAp1tOFl6hLIJw0xIPJRK1s6z/vkLcalYJe/CUdXL+DLpkooVU7fmiKs0ZuSjHKfv1Fxc9eN5@lists.postgresql.org X-Gm-Message-State: AOJu0YyQ3wE5oUGzdQE0qNq6Kn7KTIOrsIP88WCcATk7suAk6eq3tAOH CC2R7e3OWB0UZt1zvyniPWHWnT2AKpO99GwvrmdlELTYpxjZ5Eb3Z668BPcJo3JVE0/6apFxz8R ZwHxYc7ch6dK4JZggXP+5j4G+kpDr/pI= X-Gm-Gg: ASbGncvlnG0Fe/TPLTLrTpnKt7FrVuIYR09qvV6XXua5e5O7931vCjTTCBQ3j1uoHnn hzNGo0nx1y8b2viKCEzQvUK1AP/oHCqNEMQpqfm3lvxBDBSFBDGrvvcqXX8OoV7loIO1dt4Fdj8 g/pUwpb2+Fh6fiw5+36QmU+geFQV5ipnrYW/JDqlgXkFl+Z1QZGfWy9iTNLWDN7lFcKj11KH5tS fx43tic37ERsqd/Yv3l5rkq0VQLIpIGuQV2X+NAu7bhAY69ACP91FTIzVrNQEllUrhqr8HmtA== X-Google-Smtp-Source: AGHT+IEfMKyGqgjUdtiiAPDQbY9L1zIQ+btjqv4qK8TB2D0DE/SexQ6zMopfNmkI72XcphYW42I4tUD1Mh0tsiLON9g= X-Received: by 2002:a05:6870:ec8c:b0:3e8:824c:a0be with SMTP id 586e51a60fabf-3ec8369b77bmr782491fac.26.1763546657084; Wed, 19 Nov 2025 02:04:17 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Wed, 19 Nov 2025 15:34:04 +0530 X-Gm-Features: AWmQ_bkmzOiatrJtq1vtilautmgHhF25VD2jWBL7laYsXht-S1IOo7UW1nv-35c Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: vignesh C , Amit Kapila , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000000a7e580643efb412" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000a7e580643efb412 Content-Type: text/plain; charset="UTF-8" On Fri, 14 Nov 2025 at 12:15, Peter Smith wrote: > > Hi Shlok. > > Some review comments for patch v27-0001. > > ====== > doc/src/sgml/ref/alter_publication.sgml > > 1. > + > + The RESET clause will reset the publication to > the default > + state. This includes resetting all publication parameters, setting the > + ALL TABLES and ALL SEQUENCES flags to > + false, and removing all associated tables and > schemas from > + the publication. > > > It would be better to give references to the actual > pg_publication.puballtables and .puballsequences flag fields [1] > instead of vaguely calling them the "ALL TABLES and > ALL SEQUENCES flags". > Fixed > ====== > src/backend/commands/publicationcmds.c > > AlterPublicationReset: > > 2. > + if (pubform->puballtables) > + CacheInvalidateRelcacheAll(); > > Does that also need to check ->puballsequences? > I think we call CacheInvalidateRelcacheAll to invalide the relsync cache for the case of ALTER Publication. For sequences we do not build RelSyncEntry. Also I see there are other similar occurrences (such as RemovePublicationById, AlterPublicationOptions) where we do not invalidate cache if we modify all sequence publications. So, I think we do not require this check for puballsequences. > ====== > src/test/regress/sql/publication.sql > > 3. > If you want to, you can easily combine many of these test cases and > verify them in one go instead of separate ALTER/RESET for every kind > of flag. > > ~~~ > I agree. I have made the changes in the latest patch. > 4. > +-- Verify that 'ALL TABLES' flag is reset > > Missing test to check the 'ALL SEQUENCES' flag gets reset? > Added the test. > ====== > [1] https://www.postgresql.org/docs/devel/catalog-pg-publication.html > I have also addressed the comments in [1], [2]. [1]: https://www.postgresql.org/message-id/CAHut%2BPtRzCD4-0894cutkU_h8cPNtosN0_oSHn2iAKEfg2ENOQ%40mail.gmail.com [2]: https://www.postgresql.org/message-id/CAHut+PuHn-hohA4OdEJz+Zfukfr41TvMTeTH7NwJ=wg1+94uNA@mail.gmail.com Thanks, Shlok Kyal --0000000000000a7e580643efb412 Content-Type: application/octet-stream; name="v28-0002-Support-ADD-ALL-TABLES-in-ALTER-PUBLICATION.patch" Content-Disposition: attachment; filename="v28-0002-Support-ADD-ALL-TABLES-in-ALTER-PUBLICATION.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi5te87j1 RnJvbSBiNTBmNGI1NDVkODQzNjNjYTg2NDVhMWMxNWQ5ODE2ZWJlYzlhMDQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTggTm92IDIwMjUgMjA6MTM6MDYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy OCAyLzRdIFN1cHBvcnQgQUREIEFMTCBUQUJMRVMgaW4gQUxURVIgUFVCTElDQVRJT04KClRoaXMg cGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB1c2luZyBBREQgQUxMIFRBQkxFUyBpbiBBTFRFUiBQVUJM SUNBVElPTiwKYWxsb3dpbmcgYW4gZXhpc3RpbmcgcHVibGljYXRpb24gdG8gYmUgY2hhbmdlZCBp bnRvIGFuIEFMTCBUQUJMRVMKcHVibGljYXRpb24uIFRoaXMgY29tbWFuZCBpcyBwZXJtaXR0ZWQg b25seSB3aGVuIHRoZSBwdWJsaWNhdGlvbiBpcwppbiBpdHMgZGVmYXVsdCBzdGF0ZSwgbWVhbmlu ZyBpdCBoYXMgbm8gdGFibGVzIG9yIHNjaGVtYXMgYWRkZWQsIGl0cwpBTEwgVEFCTEVTIGFuZCBB TEwgU0VRVUVOQ0VTIGZsYWdzIGFyZSBub3Qgc2V0LCBhbmQgcHVibGljYXRpb24Kb3B0aW9ucyBz dWNoIGFzIHB1Ymxpc2hfdmlhX3Jvb3RfcGFydGl0aW9uLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1 bW5zLAphbmQgcHVibGlzaCBhcmUgYXQgdGhlaXIgZGVmYXVsdCB2YWx1ZXMuClVzYWdlOgpBTFRF UiBQVUJMSUNBVElPTiBwdWIxIEFERCBBTEwgVEFCTEVTCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2lj YWwtcmVwbGljYXRpb24uc2dtbCAgICAgfCAxMCArKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbCAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0 aW9uY21kcy5jICAgIHwgODkgKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICAgICAgICAgIHwgMTAgKysrCiBzcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgICAgICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmggICAgICAgICAgICB8ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGlj YXRpb24ub3V0IHwgNjggKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1 YmxpY2F0aW9uLnNxbCAgICAgIHwgNDcgKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDIy NSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNh dGlvbi5zZ21sCmluZGV4IGFhMDEzZjM0OGQ0Li5jNDIwNDY5ZmVhYSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9n aWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0yNTUwLDEwICsyNTUwLDEyIEBAIENPTlRFWFQ6ICBw cm9jZXNzaW5nIHJlbW90ZSBkYXRhIGZvciByZXBsaWNhdGlvbiBvcmlnaW4gInBnXzE2Mzk1IiBk dXJpbmcgIklOU0VSCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIFRvIGFkZCB0YWJsZXMgdG8g YSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBoYXZlIG93bmVyc2hpcCByaWdodHMgb24gdGhl Ci0gICB0YWJsZS4gVG8gYWRkIGFsbCB0YWJsZXMgaW4gc2NoZW1hIHRvIGEgcHVibGljYXRpb24s IHRoZSB1c2VyIG11c3QgYmUgYQotICAgc3VwZXJ1c2VyLiBUbyBjcmVhdGUgYSBwdWJsaWNhdGlv biB0aGF0IHB1Ymxpc2hlcyBhbGwgdGFibGVzLCBhbGwgdGFibGVzIGluCi0gICBzY2hlbWEsIG9y IGFsbCBzZXF1ZW5jZXMgYXV0b21hdGljYWxseSwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1cGVydXNl ci4KKyAgIFRvIGNyZWF0ZSBhIHB1YmxpY2F0aW9uIHVzaW5nIDxsaXRlcmFsPkZPUiBBTEwgVEFC TEVTPC9saXRlcmFsPiwKKyAgIDxsaXRlcmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9saXRlcmFsPiBv cgorICAgPGxpdGVyYWw+Rk9SIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LCB0aGUgdXNlciBt dXN0IGJlIGEgc3VwZXJ1c2VyLiBUbyBhZGQKKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVy YWw+IG9yIDxsaXRlcmFsPlRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEKKyAgIHB1Ymxp Y2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLiBUbyBhZGQgdGFibGVzIHRvIGEg cHVibGljYXRpb24sCisgICB0aGUgdXNlciBtdXN0IGhhdmUgb3duZXJzaGlwIHJpZ2h0cyBvbiB0 aGUgdGFibGUuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbAppbmRleCBjY2IyNzZlYjIxZC4uOTY5NmI4ODgwZDcgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIyLDYgKzIyLDcgQEAgUG9zdGdyZVNR TCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQUxURVIgUFVC TElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxl PiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwv cmVwbGFjZWFibGU+IFssIC4uLl0KK0FMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIEFMTCBUQUJMRVMKIEFMVEVSIFBV QkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJs ZT4gU0VUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX2Ryb3Bfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4u XQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKQEAgLTk2LDcgKzk3LDggQEAg QUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBSRVNFVAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93biB0aGUgcHVibGljYXRp b24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21tYW5kPi4KICAgIEFkZGlu ZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJlcXVpcmVzIG93bmluZyB0 aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFs PiwKKyAgIFRoZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sCisgICA8bGl0ZXJh bD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCiAgICA8bGl0ZXJhbD5TRVQgVEFCTEVT IElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKICAgIDxsaXRlcmFsPlJF U0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcgdXNlciB0 byBiZSBhCiAgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYmUgYWJs ZSB0bwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA3MGQzNGM3N2Y0 ZC4uYTY5OWJhOWRjYjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0 aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBA IC0xMzA0LDYgKzEzMDQsODEgQEAgQWx0ZXJQdWJsaWNhdGlvblJlc2V0KFBhcnNlU3RhdGUgKnBz dGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJQ2xvc2VUYWJsZUxpc3QocmVscyk7 CiB9CiAKKy8qCisgKiBDaGVjayBpZiB0aGUgcHVibGljYXRpb24gaGFzIGRlZmF1bHQgdmFsdWVz LgorICoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgcHVibGljYXRpb24gc2F0aXNmaWVzIGFsbCB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKiBhKSBQdWJsaWNhdGlvbiBpcyBub3Qgc2V0IHdp dGggIkZPUiBBTEwgVEFCTEVTIiBvciAiRk9SIEFMTCBTRVFVRU5DRVMiCisgKiBiKSBQdWJsaWNh dGlvbiBpcyBoYXZpbmcgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCisgKiBj KSBQdWJsaWNhdGlvbiBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqIGQpIFB1Ymxp Y2F0aW9uIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggcmVsYXRpb25zCisgKi8KK3N0YXRpYyBib29s CitDaGVja1B1YmxpY2F0aW9uRGVmVmFsdWVzKEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19w dWJsaWNhdGlvbiBwdWJmb3JtID0gKEZvcm1fcGdfcHVibGljYXRpb24pIEdFVFNUUlVDVCh0dXAp OworCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOworCUxpc3QJICAgKnB1Ym9ianMgPSBOSUw7 CisKKwlpZiAocHViZm9ybS0+cHViYWxsdGFibGVzICE9IFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMg fHwKKwkJcHViZm9ybS0+cHViYWxsc2VxdWVuY2VzICE9IFBVQl9ERUZBVUxUX0FMTF9TRVFVRU5D RVMpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChwdWJmb3JtLT5wdWJpbnNlcnQgIT0gUFVCX0RF RkFVTFRfQUNUSU9OX0lOU0VSVCB8fAorCQlwdWJmb3JtLT5wdWJ1cGRhdGUgIT0gUFVCX0RFRkFV TFRfQUNUSU9OX1VQREFURSB8fAorCQlwdWJmb3JtLT5wdWJkZWxldGUgIT0gUFVCX0RFRkFVTFRf QUNUSU9OX0RFTEVURSB8fAorCQlwdWJmb3JtLT5wdWJ0cnVuY2F0ZSAhPSBQVUJfREVGQVVMVF9B Q1RJT05fVFJVTkNBVEUgfHwKKwkJcHViZm9ybS0+cHVidmlhcm9vdCAhPSBQVUJfREVGQVVMVF9W SUFfUk9PVCB8fAorCQlwdWJmb3JtLT5wdWJnZW5jb2xzICE9IFBVQl9ERUZBVUxUX0dFTkNPTFMp CisJCXJldHVybiBmYWxzZTsKKworCXB1Ym9ianMgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHVi aWQpOworCWlmIChsaXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcHVi b2JqcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JP T1QpOworCWlmIChsaXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0 dXJuIHRydWU7Cit9CisKKy8qCisgKiBTZXQgcHVibGljYXRpb24gdG8gcHVibGlzaCBhbGwgdGFi bGVzLgorICovCitzdGF0aWMgdm9pZAorQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxlcyhSZWxh dGlvbiByZWwsIEhlYXBUdXBsZSB0dXApCit7CisJRm9ybV9wZ19wdWJsaWNhdGlvbiBwdWJmb3Jt IFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJV Q1QodHVwKTsKKwlib29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVw bGFjZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVi bGljYXRpb25dOworCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworCUFzc2VydCghcHViZm9y bS0+cHViYWxsdGFibGVzKTsKKyNlbmRpZgorCisJLyogQWRkIEFMTCBUQUJMRVMgdG8gdGhlIHB1 YmxpY2F0aW9uIHJlcXVpcmVzIHN1cGVydXNlciAqLworCWlmICghc3VwZXJ1c2VyKCkpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gQUREIEFMTCBUQUJMRVMgdG8gdGhl IHB1YmxpY2F0aW9uIikpOworCisJbWVtc2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOwor CW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywg ZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyAqLwor CXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERh dHVtKHRydWUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0g MV0gPSB0cnVlOworCisJdHVwID0gaGVhcF9tb2RpZnlfdHVwbGUodHVwLCBSZWxhdGlvbkdldERl c2NyKHJlbCksIHZhbHVlcywgbnVsbHMsCisJCQkJCQkJcmVwbGFjZXMpOworCisJLyogVXBkYXRl IHRoZSBjYXRhbG9nLiAqLworCUNhdGFsb2dUdXBsZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwg dHVwKTsKK30KKwogLyoKICAqIEFkZCBvciByZW1vdmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlv bi4KICAqLwpAQCAtMTY0Niw2ICsxNzIxLDIwIEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJYWNsY2hlY2tfZXJyb3Io QUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfUFVCTElDQVRJT04sCiAJCQkJCSAgIHN0bXQtPnB1 Ym5hbWUpOwogCisJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCXsKKwkJYm9vbAkJaXNkZWZh dWx0ID0gQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVlcyh0dXApOworCisJCWlmICghaXNkZWZhdWx0 KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNU X0RFRklOSVRJT04pLAorCQkJCQllcnJtc2coImFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRo ZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVl cyIpLAorCQkJCQllcnJkZXRhaWwoIkFMTCBUQUJMRVMgb3IgQUxMIFNFUVVFTkNFUyBmbGFnIHNo b3VsZCBub3QgYmUgc2V0IGFuZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRl ZC4iKSwKKwkJCQkJZXJyaGludCgiVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byBy ZXNldCB0aGUgcHVibGljYXRpb24iKSk7CisKKwkJQWx0ZXJQdWJsaWNhdGlvblNldEFsbFRhYmxl cyhyZWwsIHR1cCk7CisJfQorCiAJaWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRp b25PcHRpb25zKHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2UgaWYgKHN0bXQtPmFjdGlv biA9PSBBUF9SZXNldCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGE4YjlhZTYxODJkLi45ZDY0OGNjYjQ3YiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CkBAIC0xMDkxMyw2ICsxMDkxMyw4IEBAIHB1Yl9hbGxfb2JqX3R5cGVfbGlz dDoJUHVibGljYXRpb25BbGxPYmpTcGVjCiAgKgkJVEFCTEUgdGFibGVfbmFtZSBbLCAuLi5dCiAg KgkJVEFCTEVTIElOIFNDSEVNQSBzY2hlbWFfbmFtZSBbLCAuLi5dCiAgKgorICogQUxURVIgUFVC TElDQVRJT04gbmFtZSBBREQgQUxMIFRBQkxFUworICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5h bWUgUkVTRVQKICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xMDk1Niw2ICsxMDk1OCwx NCBAQCBBbHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+YWN0aW9uID0gQVBfRHJvcE9iamVj dHM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFBVQkxJQ0FUSU9O IG5hbWUgQUREX1AgQUxMIFRBQkxFUworCQkJCXsKKwkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQg Km4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CisJCQkJCW4tPnB1Ym5hbWUgPSAk MzsKKwkJCQkJbi0+Zm9yX2FsbF90YWJsZXMgPSB0cnVlOworCQkJCQluLT5hY3Rpb24gPSBBUF9B ZGRPYmplY3RzOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQl8IEFMVEVSIFBVQkxJ Q0FUSU9OIG5hbWUgUkVTRVQKIAkJCQl7CiAJCQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpuID0g bWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IDVkOTE4YWJhYTg3Li4wZTExYjFiYTQ0YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI5 Miw3ICsyMjkyLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNP TVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJSRVNF VCIsICJTRVQiKTsKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gQUREICovCiAJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIpKQotCQlD T01QTEVURV9XSVRIKCJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJCUNPTVBMRVRFX1dJ VEgoIkFMTCBUQUJMRVMiLCAiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwogCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRB QkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Rh Ymxlcyk7CiAJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0 Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA4 Y2Y3NTcyNGE3Yi4uYzIyZDc1ZTgwYTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQzNDIs NiArNDM0Miw3IEBAIHR5cGVkZWYgc3RydWN0IEFsdGVyUHVibGljYXRpb25TdG10CiAJICogb2Jq ZWN0cy4KIAkgKi8KIAlMaXN0CSAgICpwdWJvYmplY3RzOwkJLyogT3B0aW9uYWwgbGlzdCBvZiBw dWJsaWNhdGlvbiBvYmplY3RzICovCisJYm9vbAkJZm9yX2FsbF90YWJsZXM7IC8qIFNwZWNpYWwg cHVibGljYXRpb24gZm9yIGFsbCB0YWJsZXMgaW4gZGIgKi8KIAlBbHRlclB1YmxpY2F0aW9uQWN0 aW9uIGFjdGlvbjsJLyogV2hhdCBhY3Rpb24gdG8gcGVyZm9ybSB3aXRoIHRoZSBnaXZlbgogCQkJ CQkJCQkJICogb2JqZWN0cyAqLwogfSBBbHRlclB1YmxpY2F0aW9uU3RtdDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggNGYyMGE5MTEzNDguLmE5MDdkY2Ji OGY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMjA2 Myw2ICsyMDYzLDc0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAg ICB8IGYKICgxIHJvdykKIAorLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQg QUxMIFRBQkxFUworLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIEFERCBBTEwgVEFC TEVTCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsgLS0gZmFpbCAtIG11 c3QgYmUgc3VwZXJ1c2VyCitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIEFERCBBTEwgVEFC TEVTIHRvIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBP V05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CitTRVQgUk9MRSByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXI7CistLSBDYW4ndCBhZGQgQUxMIFRBQkxFUyB0byAnRk9SIFRBQkxFJyBwdWJs aWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3Nj aDEudGJsMTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7 CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBo YXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRB QkxFUyBvciBBTEwgU0VRVUVOQ0VTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxl cy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNB VElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworLS0gQ2FuJ3QgYWRkIEFMTCBUQUJMRVMgdG8gJ1RBQkxF UyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIGFkZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVz IHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQgcHVibGljYXRpb24gcGFyYW1ldGVyIHZh bHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBvciBBTEwgU0VRVUVOQ0VTIGZsYWcgc2hvdWxkIG5v dCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNob3VsZCBiZSBhc3NvY2lhdGVkLgorSElO VDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworLS0gQ2FuJ3QgYWRk IEFMTCBUQUJMRVMgd2hlbiB0aGUgJ1BVQkxJU0gnIHBhcmFtZXRlciBkb2VzIG5vdCBoYXZlIGRl ZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNI ID0gJycpOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsK K0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhh dmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCitERVRBSUw6ICBBTEwgVEFC TEVTIG9yIEFMTCBTRVFVRU5DRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVz L3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FU SU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgUkVTRVQ7CistLSBDYW4ndCBhZGQgQUxMIFRBQkxFUyB3aGVuIHRoZSAn UFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QnIHBhcmFtZXRlciBkb2VzCistLSBub3QgaGF2ZSBk ZWZhdWx0IHZhbHVlCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElT SF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWly ZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIg dmFsdWVzCitERVRBSUw6ICBBTEwgVEFCTEVTIG9yIEFMTCBTRVFVRU5DRVMgZmxhZyBzaG91bGQg bm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitI SU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGlj YXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CistLSBDYW4ndCBh ZGQgQUxMIFRBQkxFUyB3aGVuIHRoZSAnUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUycgcGFyYW1l dGVyIGRvZXMKKy0tIG5vdCBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CitFUlJPUjogIGFk ZGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHRoZSBwdWJsaWNhdGlvbiB0byBoYXZlIGRlZmF1bHQg cHVibGljYXRpb24gcGFyYW1ldGVyIHZhbHVlcworREVUQUlMOiAgQUxMIFRBQkxFUyBvciBBTEwg U0VRVUVOQ0VTIGZsYWcgc2hvdWxkIG5vdCBiZSBzZXQgYW5kIG5vIHRhYmxlcy9zY2hlbWFzIHNo b3VsZCBiZSBhc3NvY2lhdGVkLgorSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVT RVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQ7CistLSBDYW4ndCBhZGQgQUxMIFRBQkxFUyB0byAnQUxMIFNFUVVFTkNFUycgcHVibGljYXRp b24KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgU0VRVUVOQ0VTOwor V0FSTklORzogICJ3YWxfbGV2ZWwiIGlzIGluc3VmZmljaWVudCB0byBwdWJsaXNoIGxvZ2ljYWwg Y2hhbmdlcworSElOVDogIFNldCAid2FsX2xldmVsIiB0byAibG9naWNhbCIgYmVmb3JlIGNyZWF0 aW5nIHN1YnNjcmlwdGlvbnMuCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBB TEwgVEFCTEVTOworRVJST1I6ICBhZGRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyB0aGUgcHVibGlj YXRpb24gdG8gaGF2ZSBkZWZhdWx0IHB1YmxpY2F0aW9uIHBhcmFtZXRlciB2YWx1ZXMKK0RFVEFJ TDogIEFMTCBUQUJMRVMgb3IgQUxMIFNFUVVFTkNFUyBmbGFnIHNob3VsZCBub3QgYmUgc2V0IGFu ZCBubyB0YWJsZXMvc2NoZW1hcyBzaG91bGQgYmUgYXNzb2NpYXRlZC4KK0hJTlQ6ICBVc2UgQUxU RVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKKy0tIENhbiBhZGQgQUxMIFRBQkxFUyB0 byBwdWJsaWNhdGlvbiB3aGVyZSBhbGwgcHVibGljYXRpb24gcGFyYW1ldGVycyBhcmUgZGVmYXVs dAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKK1xkUnAr IHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwg RGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9u ZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKKy0tIENhbid0IGFkZCBBTEwgVEFCTEVTIHRv ICdBTEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBBREQgQUxMIFRBQkxFUzsKK0VSUk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhl IHB1YmxpY2F0aW9uIHRvIGhhdmUgZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVz CitERVRBSUw6ICBBTEwgVEFCTEVTIG9yIEFMTCBTRVFVRU5DRVMgZmxhZyBzaG91bGQgbm90IGJl IHNldCBhbmQgbm8gdGFibGVzL3NjaGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCitISU5UOiAg VXNlIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24K IERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJs MTsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3Fs CmluZGV4IDdhNTIzYWQwNjdjLi5iNzM4MDE5MzJjMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1Ymxp Y2F0aW9uLnNxbApAQCAtMTI5OCw2ICsxMjk4LDUzIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgU0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVkKTsKIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiAK Ky0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gQUREIEFMTCBUQUJMRVMKKy0tIFZl cmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiBBREQgQUxMIFRBQkxFUworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwor U0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CisKKy0tIENhbid0 IGFkZCBBTEwgVEFCTEVTIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CisKKy0tIENhbid0IGFkZCBBTEwgVEFCTEVTIHRvICdUQUJMRVMg SU4gU0NIRU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IEFERCBBTEwgVEFCTEVTOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNF VDsKKworLS0gQ2FuJ3QgYWRkIEFMTCBUQUJMRVMgd2hlbiB0aGUgJ1BVQkxJU0gnIHBhcmFtZXRl ciBkb2VzIG5vdCBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgU0VUIChQVUJMSVNIID0gJycpOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBBREQgQUxMIFRBQkxFUzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CisKKy0tIENhbid0IGFkZCBBTEwgVEFCTEVTIHdoZW4gdGhlICdQVUJMSVNIX1ZJQV9QQVJUSVRJ T05fUk9PVCcgcGFyYW1ldGVyIGRvZXMKKy0tIG5vdCBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9P VCA9ICd0cnVlJyk7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFC TEVTOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKKworLS0gQ2FuJ3Qg YWRkIEFMTCBUQUJMRVMgd2hlbiB0aGUgJ1BVQkxJU0hfR0VORVJBVEVEX0NPTFVNTlMnIHBhcmFt ZXRlciBkb2VzCistLSBub3QgaGF2ZSBkZWZhdWx0IHZhbHVlCitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSF9HRU5FUkFURURfQ09MVU1OUyA9IHN0b3JlZCk7CitB TFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTOworRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0OworCistLSBDYW4ndCBhZGQgQUxMIFRBQkxFUyB0byAnQUxM IFNFUVVFTkNFUycgcHVibGljYXRpb24KK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEZPUiBBTEwgU0VRVUVOQ0VTOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQg QUxMIFRBQkxFUzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CisKKy0t IENhbiBhZGQgQUxMIFRBQkxFUyB0byBwdWJsaWNhdGlvbiB3aGVyZSBhbGwgcHVibGljYXRpb24g cGFyYW1ldGVycyBhcmUgZGVmYXVsdAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUzsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworLS0gQ2FuJ3QgYWRkIEFMTCBU QUJMRVMgdG8gJ0FMTCBUQUJMRVMnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTOworCiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKLS0g CjIuMzQuMQoK --0000000000000a7e580643efb412 Content-Type: application/octet-stream; name="v28-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v28-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi5te87d0 RnJvbSAwYTAyZjVkYzQ5MWQyZWUxZWFmMGRiYjdkNDE2MjFkMzI2NTI0MmI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMzAgT2N0IDIwMjUgMTA6NTI6NTYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy OCAxLzRdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlLiBUaGlzIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGFu ZCBBTEwgU0VRVUVOQ0VTIGZsYWdzIHRvIGZhbHNlIGFuZCBkcm9wcGluZwp0aGUgcmVsYXRpb25z IGFuZCBzY2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uClVz YWdlOgpBTFRFUiBQVUJMSUNBVElPTiBwdWIxIFJFU0VUOwotLS0KIGRvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfcHVibGljYXRpb24uc2dtbCAgIHwgIDM3ICsrKysrKy0tCiBzcmMvYmFja2VuZC9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICB8IDEwOSArKysrKysrKysrKysrKysrKysrKy0tCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICB8ICAxMyArKy0KIHNyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICB8ICAxMCArKwogc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQgfCAgNTcgKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgIHwgIDM0ICsrKysrKysKIDggZmlsZXMgY2hhbmdlZCwg MjQ3IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbAppbmRleCA4ZGQyNTBkMmYzYi4uY2NiMjc2ZWIyMWQgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI3LDYgKzI3LDcgQEAgQUxURVIg UFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBEUk9QIDxyZXBsYWMKIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApCiBB TFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+ IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KIEFMVEVSIFBV QkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJs ZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBQ VUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IFJFU0VUCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApA QCAtNzMsMTggKzc0LDM0IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KLSAgIFRoZSByZW1haW5pbmcgdmFyaWFudHMgY2hhbmdlIHRoZSBvd25lciBhbmQg dGhlIG5hbWUgb2YgdGhlIHB1YmxpY2F0aW9uLgorICAgVGhlIDxsaXRlcmFsPk9XTkVSPC9saXRl cmFsPiBjbGF1c2Ugd2lsbCBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZQorICAgcHVibGljYXRpb24u CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+ IGNsYXVzZSB3aWxsIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUKKyAgIHB1YmxpY2F0aW9uLgorICA8 L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+UkVTRVQ8L2xpdGVyYWw+IGNsYXVz ZSB3aWxsIHJlc2V0IHRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdAorICAgc3RhdGUuIFRo aXMgaW5jbHVkZXMgcmVzZXR0aW5nIGFsbCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzLCBzZXR0aW5n IHRoZQorICAgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wdWJsaWNhdGlvbiI+PHN0cnVjdG5h bWU+cGdfcHVibGljYXRpb248L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+cHViYWxs dGFibGVzPC9zdHJ1Y3RmaWVsZD4KKyAgIGFuZAorICAgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1wdWJsaWNhdGlvbiI+PHN0cnVjdG5hbWU+cGdfcHVibGljYXRpb248L3N0cnVjdG5hbWU+PC9s aW5rPi48c3RydWN0ZmllbGQ+cHViYWxsc2VxdWVuY2VzPC9zdHJ1Y3RmaWVsZD4KKyAgIHRvIDxs aXRlcmFsPmZhbHNlPC9saXRlcmFsPiwgYW5kIHJlbW92aW5nIGFsbCB0YWJsZXMgYW5kIHNjaGVt YXMgdGhhdCB3ZXJlCisgICBleHBsaWNpdGx5IGFkZGVkIHRvIHRoZSBwdWJsaWNhdGlvbi4KICAg PC9wYXJhPgogCiAgIDxwYXJhPgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1 c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFi bGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFi bGUuCi0gICBUaGUgPGxpdGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAot ICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRp b24gcmVxdWlyZXMgdGhlCi0gICBpbnZva2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAg VG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xF PC9saXRlcmFsPiB0byB0aGUKLSAgIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0 IGhhdmUgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRh YmFzZS4KKyAgIFRoZSA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisg ICA8bGl0ZXJhbD5TRVQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlv biBhbmQKKyAgIDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJl cyB0aGUgaW52b2tpbmcgdXNlciB0byBiZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBv d25lciwgeW91IG11c3QgYmUgYWJsZSB0bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+ IHRvIHRoZSBuZXcgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0 ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNv LCB0aGUgbmV3IG93bmVyIG9mIGEKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNh dGlvbi1wYXJhbXMtZm9yLXRhYmxlcy1pbi1zY2hlbWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4g U0NIRU1BPC9saXRlcmFsPjwvbGluaz4KICAgIG9yIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVw dWJsaWNhdGlvbi1wYXJhbXMtZm9yLWFsbC10YWJsZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVT PC9saXRlcmFsPjwvbGluaz4KQEAgLTIzNiw2ICsyNTMsMTIgQEAgQUxURVIgUFVCTElDQVRJT04g c2FsZXNfcHVibGljYXRpb24gQUREIFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsK ICAgIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+OgogPHBy b2dyYW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBB REQgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBUQUJMRVMgSU4gU0NIRU1BIHByb2R1Y3Rpb247 Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKworICA8cGFyYT4KKyAgIFJlc2V0IHRoZSBwdWJs aWNhdGlvbiA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoK Kzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRp b24gUkVTRVQ7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICA8L3JlZnNlY3QxPgogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCmluZGV4IDFmYWYzYThjMzcyLi43MGQzNGM3 N2Y0ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTkwLDEyICs5 MCwxMiBAQCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkq cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uc19naXZlbiA9IGZhbHNlOwogCiAJLyogZGVmYXVsdHMg Ki8KLQlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YnVwZGF0 ZSA9IHRydWU7Ci0JcHViYWN0aW9ucy0+cHViZGVsZXRlID0gdHJ1ZTsKLQlwdWJhY3Rpb25zLT5w dWJ0cnVuY2F0ZSA9IHRydWU7Ci0JKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gZmFsc2U7 Ci0JKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBQVUJMSVNIX0dFTkNPTFNfTk9ORTsKKwlw dWJhY3Rpb25zLT5wdWJpbnNlcnQgPSBQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUOworCXB1YmFj dGlvbnMtPnB1YnVwZGF0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEU7CisJcHViYWN0aW9u cy0+cHViZGVsZXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURTsKKwlwdWJhY3Rpb25zLT5w dWJ0cnVuY2F0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURTsKKwkqcHVibGlzaF92aWFf cGFydGl0aW9uX3Jvb3QgPSBQVUJfREVGQVVMVF9WSUFfUk9PVDsKKwkqcHVibGlzaF9nZW5lcmF0 ZWRfY29sdW1ucyA9IFBVQl9ERUZBVUxUX0dFTkNPTFM7CiAKIAkvKiBQYXJzZSBvcHRpb25zICov CiAJZm9yZWFjaChsYywgb3B0aW9ucykKQEAgLTEyMDksNiArMTIwOSwxMDEgQEAgSW52YWxpZGF0 ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpCiAJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hl QWxsKCk7CiB9CiAKKy8qCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24uCisgKgorICogUmVzZXQg dGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMsIHNldHRpbmcgQUxMIFRBQkxFUyBhbmQgQUxMIFNF UVVFTkNFUyBmbGFnCisgKiB0byBmYWxzZSBhbmQgZHJvcCBhbGwgcmVsYXRpb25zIGFuZCBzY2hl bWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyAqIHB1YmxpY2F0aW9uLgorICovCitz dGF0aWMgdm9pZAorQWx0ZXJQdWJsaWNhdGlvblJlc2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0 ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCisJCQkJCSAgUmVsYXRpb24gcmVsLCBIZWFwVHVwbGUg dHVwKQoreworCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0 aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwlPaWQJCQlwdWJpZCA9IHB1YmZvcm0tPm9pZDsKKwlMaXN0 CSAgICpzY2hlbWFpZHMgPSBOSUw7CisJTGlzdAkgICAqcmVscyA9IE5JTDsKKwlMaXN0CSAgICpy ZWxpZHMgPSBOSUw7CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCWJvb2wJ CXJlcGxhY2VzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3Bn X3B1YmxpY2F0aW9uXTsKKworCS8qIFJFU0VUIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHN1cGVydXNl ciAqLworCWlmICghc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShF UlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBl cnVzZXIgdG8gUkVTRVQgcHVibGljYXRpb24iKSk7CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXpl b2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisJbWVt c2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2VzKSk7CisKKwkvKiBSZXNldCB0aGUg cHVibGljYXRpb24gcGFyYW1ldGVycyAqLworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1 Ymluc2VydCAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9JTlNFUlQpOwor CXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViaW5zZXJ0IC0gMV0gPSB0cnVlOworCisJ dmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSBCb29sR2V0RGF0dW0o UFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJ1cGRhdGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9w dWJkZWxldGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFKTsK KwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRlbGV0ZSAtIDFdID0gdHJ1ZTsKKwor CXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPSBCb29sR2V0RGF0 dW0oUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1Ymxp Y2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGlj YXRpb25fcHVidmlhcm9vdCAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX1ZJQV9ST09U KTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IHRydWU7 CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJnZW5jb2xzIC0gMV0gPSBDaGFyR2V0 RGF0dW0oUFVCX0RFRkFVTFRfR0VOQ09MUyk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJnZW5jb2xzIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cHViYWxsdGFibGVzIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyk7 CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9IHRydWU7 CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGxzZXF1ZW5jZXMgLSAxXSA9IEJv b2xHZXREYXR1bShQVUJfREVGQVVMVF9BTExfU0VRVUVOQ0VTKTsKKwlyZXBsYWNlc1tBbnVtX3Bn X3B1YmxpY2F0aW9uX3B1YmFsbHNlcXVlbmNlcyAtIDFdID0gdHJ1ZTsKKworCWlmIChwdWJmb3Jt LT5wdWJhbGx0YWJsZXMpCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisKKwl0dXAg PSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBu dWxscywKKwkJCQkJCQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJ Q2F0YWxvZ1R1cGxlVXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworCisJLyogUmVtb3Zl IHRoZSBhc3NvY2lhdGVkIHNjaGVtYXMgZnJvbSB0aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFp ZHMgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQpOworCisJLyoKKwkgKiBTY2hlbWEgbG9j ayBpcyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBhbHRlcmVkIHRvIHByZXZlbnQKKwkg KiBjb25jdXJyZW50IHNjaGVtYSBkZWxldGlvbi4KKwkgKi8KKwlMb2NrU2NoZW1hTGlzdChzY2hl bWFpZHMpOworCisJLyogUmVtb3ZlIFNjaGVtYXMgKi8KKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFz KHB1YmlkLCBzY2hlbWFpZHMsIHRydWUpOworCisJLyogR2V0IGFsbCByZWxhdGlvbnMgYXNzb2Np YXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLworCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVs YXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJZm9yZWFjaF9vaWQocmVs aWQsIHJlbGlkcykKKwl7CisJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcmVsOworCisJCXJlbCA9IHBh bGxvYyhzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CisJCXJlbC0+d2hlcmVDbGF1c2UgPSBO VUxMOworCQlyZWwtPmNvbHVtbnMgPSBOSUw7CisJCXJlbC0+cmVsYXRpb24gPSB0YWJsZV9vcGVu KHJlbGlkLCBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOworCQlyZWxzID0gbGFwcGVuZChyZWxz LCByZWwpOworCX0KKworCS8qIFJlbW92ZSB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbnMgZnJvbSB0 aGUgcHVibGljYXRpb24gKi8KKwlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViaWQsIHJlbHMsIHRy dWUpOworCUNsb3NlVGFibGVMaXN0KHJlbHMpOworfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0 YWJsZSB0by9mcm9tIHB1YmxpY2F0aW9uLgogICovCkBAIC0xNTUzLDYgKzE2NDgsOCBAQCBBbHRl clB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0 bXQpCiAKIAlpZiAoc3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0 YXRlLCBzdG10LCByZWwsIHR1cCk7CisJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0 KQorCQlBbHRlclB1YmxpY2F0aW9uUmVzZXQocHN0YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJZWxz ZQogCXsKIAkJTGlzdAkgICAqcmVsYXRpb25zID0gTklMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYzNhMGEz NTRhOWMuLmE4YjlhZTYxODJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEwOTA0LDE1ICsxMDkwNCwxNyBA QCBwdWJfYWxsX29ial90eXBlX2xpc3Q6CVB1YmxpY2F0aW9uQWxsT2JqU3BlYwogICoKICAqIEFM VEVSIFBVQkxJQ0FUSU9OIG5hbWUgQUREIHB1Yl9vYmogWywgLi4uXQogICoKLSAqIEFMVEVSIFBV QkxJQ0FUSU9OIG5hbWUgRFJPUCBwdWJfb2JqIFssIC4uLl0KLSAqCiAgKiBBTFRFUiBQVUJMSUNB VElPTiBuYW1lIFNFVCBwdWJfb2JqIFssIC4uLl0KICAqCisgKiBBTFRFUiBQVUJMSUNBVElPTiBu YW1lIERST1AgcHViX29iaiBbLCAuLi5dCisgKgogICogcHViX29iaiBpcyBvbmUgb2Y6CiAgKgog ICoJCVRBQkxFIHRhYmxlX25hbWUgWywgLi4uXQogICoJCVRBQkxFUyBJTiBTQ0hFTUEgc2NoZW1h X25hbWUgWywgLi4uXQogICoKKyAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKKyAqCiAg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCiAKIEFsdGVyUHVibGljYXRpb25TdG10OgpAQCAtMTA5NTQs NiArMTA5NTYsMTMgQEAgQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPmFjdGlvbiA9IEFQ X0Ryb3BPYmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBQ VUJMSUNBVElPTiBuYW1lIFJFU0VUCisJCQkJeworCQkJCQlBbHRlclB1YmxpY2F0aW9uU3RtdCAq biA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsKKwkJCQkJbi0+cHVibmFtZSA9ICQz OworCQkJCQluLT5hY3Rpb24gPSBBUF9SZXNldDsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IDUxODA2NTk3MDM3Li41ZDkxOGFiYWE4NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI4 OSw3ICsyMjg5LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIAkv KiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1Ai LCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRIKCJBREQi LCAiRFJPUCIsICJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7CiAJLyog QUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFC TEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5o CmluZGV4IDIyZjQ4YmI4OTc1Li43N2IwYTJmOWViOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uaApAQCAtMTUyLDYgKzE1MiwxNiBAQCBleHRlcm4gUHVibGljYXRpb24gKkdldFB1 YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9u QnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gTGlz dCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsKIAorLyogZGVmYXVsdCB2YWx1 ZXMgZm9yIGZsYWdzIGFuZCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzICovCisjZGVmaW5lIFBVQl9E RUZBVUxUX0FDVElPTl9JTlNFUlQgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fVVBE QVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB0cnVlCisjZGVmaW5l IFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX1ZJ QV9ST09UIGZhbHNlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FMTF9UQUJMRVMgZmFsc2UKKyNkZWZp bmUgUFVCX0RFRkFVTFRfQUxMX1NFUVVFTkNFUyBmYWxzZQorI2RlZmluZSBQVUJfREVGQVVMVF9H RU5DT0xTIFBVQkxJU0hfR0VOQ09MU19OT05FCisKIC8qLS0tLS0tLS0tCiAgKiBFeHBlY3RlZCB2 YWx1ZXMgZm9yIHB1Yl9wYXJ0b3B0IHBhcmFtZXRlciBvZiBHZXRQdWJsaWNhdGlvblJlbGF0aW9u cygpLAogICogd2hpY2ggYWxsb3dzIGNhbGxlcnMgdG8gc3BlY2lmeSB3aGljaCBwYXJ0aXRpb25z IG9mIHBhcnRpdGlvbmVkIHRhYmxlcwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQxNDI5NGE0 ZWNlLi44Y2Y3NTcyNGE3YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDMyNiw2ICs0MzI2 LDcgQEAgdHlwZWRlZiBlbnVtIEFsdGVyUHVibGljYXRpb25BY3Rpb24KIAlBUF9BZGRPYmplY3Rz LAkJCQkvKiBhZGQgb2JqZWN0cyB0byBwdWJsaWNhdGlvbiAqLwogCUFQX0Ryb3BPYmplY3RzLAkJ CQkvKiByZW1vdmUgb2JqZWN0cyBmcm9tIHB1YmxpY2F0aW9uICovCiAJQVBfU2V0T2JqZWN0cywJ CQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQX1Jlc2V0LAkJCQkJLyogcmVzZXQgdGhl IHB1YmxpY2F0aW9uICovCiB9IEFsdGVyUHVibGljYXRpb25BY3Rpb247CiAKIHR5cGVkZWYgc3Ry dWN0IEFsdGVyUHVibGljYXRpb25TdG10CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGlj YXRpb24ub3V0CmluZGV4IGU3MmQxMzA4OTY3Li40ZjIwYTkxMTM0OCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIwMDksNiArMjAwOSw2MyBAQCBUYWJs ZXM6CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjE7CiBEUk9QIFBVQkxJQ0FUSU9OIHB1YjI7CiBEUk9Q IFRBQkxFIGdlbmNvbHM7CistLSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VU CitDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEgKGEg aW50KTsKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNB VElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTLCBBTEwgU0VRVUVOQ0VTOworUkVTRVQg Y2xpZW50X21pbl9tZXNzYWdlczsKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiBy ZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVS IFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0 aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFp bCAtIG11c3QgYmUgc3VwZXJ1c2VyCitFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VU IHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlcjsKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNl cjsKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJywgJ0FMTCBTRVFVRU5DRVMnIGZsYWcgaXMg cmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMg fCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAg ICAgICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0 cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBz ZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5l cmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorKDEgcm93 KQorCistLSBWZXJpZnkgdGhhdCBhc3NvY2lhdGVkIHRhYmxlcywgc2NoZW1hcyBhbmQgdGhlIHB1 YmxpY2F0aW9uIHBhcmFtZXRlcnMKKy0tICdQVUJMSVNIJywgJ1BVQkxJU0hfVklBX1BBUlRJVElP Tl9ST09UJywgYW5kICdQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TJworLS0gYXJlIHJlbW92ZWQg ZnJvbSB0aGUgcHVibGljYXRpb24gYWZ0ZXIgUkVTRVQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfcmVzZXQgQUREIFRBQkxFIHB1Yl9zY2gxLnRibDEsIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGlj OworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJ VElPTl9ST09UID0gJ3RydWUnKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VU IChQVUJMSVNIID0gJycpOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBV QkxJU0hfR0VORVJBVEVEX0NPTFVNTlMgPSBzdG9yZWQpOworXGRScCsgdGVzdHB1Yl9yZXNldAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAg ICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBzdG9yZWQgICAgICAgICAgICB8 IHQKK1RhYmxlczoKKyAgICAicHViX3NjaDEudGJsMSIKK1RhYmxlcyBmcm9tIHNjaGVtYXM6Cisg ICAgInB1YmxpYyIKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xk UnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVz IHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwg bm9uZSAgICAgICAgICAgICAgfCBmCisoMSByb3cpCisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldDsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gx OwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIFRlc3QgdGhhdCB0aGUgSU5TRVJUIE9O IENPTkZMSUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElERU5USVRZCiAtLSB3 aGVuIHRoZSB0YXJnZXQgdGFibGUgaXMgcHVibGlzaGVkLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsCmluZGV4IDAwMzkwYWVjZDQ3Li43YTUyM2FkMDY3YyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTI2OCw2ICsxMjY4LDQwIEBAIERST1AgUFVCTElDQVRJ T04gcHViMTsKIERST1AgUFVCTElDQVRJT04gcHViMjsKIERST1AgVEFCTEUgZ2VuY29sczsKIAor LS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBw dWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXM7CisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2VyIGNhbiByZXNldCBhIHB1YmxpY2F0 aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAtIG11c3QgYmUgc3Vw ZXJ1c2VyCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlcjsKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKKwor LS0gVmVyaWZ5IHRoYXQgJ0FMTCBUQUJMRVMnLCAnQUxMIFNFUVVFTkNFUycgZmxhZyBpcyByZXNl dAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBS RVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworLS0gVmVyaWZ5IHRoYXQgYXNzb2NpYXRlZCB0 YWJsZXMsIHNjaGVtYXMgYW5kIHRoZSBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzCistLSAnUFVCTElT SCcsICdQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCcsIGFuZCAnUFVCTElTSF9HRU5FUkFURURf Q09MVU1OUycKKy0tIGFyZSByZW1vdmVkIGZyb20gdGhlIHB1YmxpY2F0aW9uIGFmdGVyIFJFU0VU CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50Ymwx LCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7CitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcnKTsKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX0dFTkVSQVRFRF9DT0xVTU5TID0gc3RvcmVk KTsKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg UkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldDsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gxOwor CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCiAtLSBUZXN0IHRoYXQgdGhlIElOU0VSVCBP TiBDT05GTElDVCBjb21tYW5kIGNvcnJlY3RseSBjaGVja3MgUkVQTElDQSBJREVOVElUWQotLSAK Mi4zNC4xCgo= --0000000000000a7e580643efb412 Content-Type: application/octet-stream; name="v28-0003-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v28-0003-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi5te87l2 RnJvbSA3OTkxMGZhOTk2OTg3NDI0ZGM2ZTkwYTE2MWEwOTQwNzU1YjczODY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTggTm92IDIwMjUgMjI6MTc6MTIgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy OCAzLzRdIFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFC TEUuCgpBIG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURS9BTFRFUiBQVUJMSUNB VElPTiBhbGxvd3Mgb25lIG9yCm1vcmUgdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlz aGVyIHdpbGwgbm90IHNlbmQgdGhlIGRhdGEgb2YKZXhjbHVkZWQgdGFibGVzIHRvIHRoZSBzdWJz Y3JpYmVyLgoKVGhlIG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRp b25zIHdoZW4gY3JlYXRpbmcgb3IgYWx0ZXJpbmcKYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6 CkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodDEs dDIpOwpvcgpBTFRFUiBQVUJMSUNBVElPTiBwdWIxIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJM RSAodDEsdDIpOwoKQSBuZXcgY29sdW1uICJwcmV4Y2VwdCIgaXMgYWRkZWQgdG8gdGFibGUgInBn X3B1YmxpY2F0aW9uX3JlbCIsIHRvIGZsYWcKdGhlIHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdh bnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGljYXRpb25zLgoKcGdfZHVtcCBpcyB1cGRhdGVk IHRvIGlkZW50aWZ5IGFuZCBkdW1wIHRoZSBleGNsdWRlZCB0YWJsZXMgb2YgdGhlIHB1YmxpY2F0 aW9ucy4KClRoZSBwc3FsIFxkIGZhbWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhj bHVkZWQgdGFibGVzLiBlLmcuIHBzcWwKXGRScCsgdmFyaWFudCB3aWxsIG5vdyBkaXNwbGF5IGFz c29jaWF0ZWQgImV4Y2VwdCB0YWJsZXMiIGlmIGFueS4KCkJ1bXAgY2F0YWxvZyB2ZXJzaW9uLgot LS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgOSAr CiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgICAgICAgfCAgMjIgKyst CiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sICAgICAgfCAgNDcgKysr Ky0KIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8ICAgNSAr LQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgICAgIHwgIDk5ICsr KysrKystLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jICAgICAgICB8 IDE2MSArKysrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAg ICAgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgIDM2ICsrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bn b3V0cHV0LmMgICB8ICAyNSArLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMg ICAgICAgICAgICB8ICAxNyArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAg ICAgICAgICAgIHwgIDU2ICsrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAg ICAgICAgICAgICB8ICAxOCArKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAg ICAgICAgICAgIHwgIDIwICsrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAg ICAgICAgICAgfCAgNTggKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAg ICAgICAgICAgICAgfCAgMTAgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5o ICAgICAgICAgIHwgIDEwICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3Jl bC5oICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgg ICAgICAgIHwgICA1ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAg ICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQg ICAgIHwgIDU5ICsrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAg ICAgICAgIHwgIDI0ICsrLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAg ICAgICAgIHwgICAxICsKIC4uLi90LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAg ICAgICB8IDE4NiArKysrKysrKysrKysrKysrKysKIDI0IGZpbGVzIGNoYW5nZWQsIDc0NCBpbnNl cnRpb25zKCspLCAxMzMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbAoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKaW5kZXggMmZjNjM0NDI5ODAuLmE0ZDMyZGU1OGVjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjU4 MSw2ICs2NTgxLDE1IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICBpZiB0aGVyZSBp cyBubyBwdWJsaWNhdGlvbiBxdWFsaWZ5aW5nIGNvbmRpdGlvbi48L3BhcmE+PC9lbnRyeT4KICAg ICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICA8c3RydWN0Zmll bGQ+cHJleGNlcHQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBleGNs dWRlZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmF0dHJzPC9zdHJ1Y3RmaWVsZD4g PHR5cGU+aW50MnZlY3RvcjwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24u c2dtbAppbmRleCA5Njk2Yjg4ODBkNy4uMjViNDM2YmQyN2IgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQUxURVIgUFVCTElDQVRJT04g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFi bGU+IFssIC4uLl0KLUFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIEFMTCBUQUJMRVMKK0FMVEVSIFBVQkxJQ0FUSU9O IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIEFM TCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnRhYmxlX2V4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KIEFM VEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT4gU0VUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9v YmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX2Ryb3Bfb2JqZWN0PC9yZXBsYWNlYWJsZT4g WywgLi4uXQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKQEAgLTM5LDYgKzM5 LDExIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWywgLi4u IF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVNQSB9IFssIC4uLiBdCisK KzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2V4Y2Vw dGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAgIFsgT05MWSBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAq IF0KKwogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC05Niw4ICsxMDEsOCBA QCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFJFU0VUCiAKICAgPHBhcmE+CiAgICBZb3UgbXVzdCBvd24gdGhlIHB1Ymxp Y2F0aW9uIHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBQVUJMSUNBVElPTjwvY29tbWFuZD4uCi0gICBB ZGRpbmcgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uIGFkZGl0aW9uYWxseSByZXF1aXJlcyBvd25p bmcgdGhhdCB0YWJsZS4KLSAgIFRoZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUzwvbGl0ZXJhbD4s CisgICBBZGRpbmcgb3IgZXhjbHVkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRpdGlv bmFsbHkgcmVxdWlyZXMgb3duaW5nCisgICB0aGF0IHRhYmxlLiBUaGUgPGxpdGVyYWw+QUREIEFM TCBUQUJMRVM8L2xpdGVyYWw+LAogICAgPGxpdGVyYWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xp dGVyYWw+LAogICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEg cHVibGljYXRpb24gYW5kCiAgICA8bGl0ZXJhbD5SRVNFVDwvbGl0ZXJhbD4gb2YgcHVibGljYXRp b24gcmVxdWlyZXMgdGhlIGludm9raW5nIHVzZXIgdG8gYmUgYQpAQCAtMTM5LDcgKzE0NCw4IEBA IEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gUkVTRVQKICAgICAgIHRhYmxlIG5hbWUsIG9ubHkgdGhhdCB0YWJsZSBpcyBh ZmZlY3RlZC4gIElmIDxsaXRlcmFsPk9OTFk8L2xpdGVyYWw+IGlzIG5vdAogICAgICAgc3BlY2lm aWVkLCB0aGUgdGFibGUgYW5kIGFsbCBpdHMgZGVzY2VuZGFudCB0YWJsZXMgKGlmIGFueSkgYXJl CiAgICAgICBhZmZlY3RlZC4gIE9wdGlvbmFsbHksIDxsaXRlcmFsPio8L2xpdGVyYWw+IGNhbiBi ZSBzcGVjaWZpZWQgYWZ0ZXIgdGhlIHRhYmxlCi0gICAgICBuYW1lIHRvIGV4cGxpY2l0bHkgaW5k aWNhdGUgdGhhdCBkZXNjZW5kYW50IHRhYmxlcyBhcmUgaW5jbHVkZWQuCisgICAgICBuYW1lIHRv IGV4cGxpY2l0bHkgaW5kaWNhdGUgdGhhdCBkZXNjZW5kYW50IHRhYmxlcyBhcmUgYWZmZWN0ZWQu IEZvcgorICAgICAgcGFydGl0aW9uZWQgdGFibGVzLCA8bGl0ZXJhbD5PTkxZPC9saXRlcmFsPiBk b2VzIG5vdCBoYXZlIGFueSBlZmZlY3QuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAg LTI0OCw2ICsyNTQsMTQgQEAgQUxURVIgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gQURE IFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAg IDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIEFsdGVyIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnBy b2R1Y3Rpb25fcHVibGljYXRpb248L3N0cnVjdG5hbWU+IHRvIHB1Ymxpc2gKKyAgIGFsbCB0YWJs ZXMgZXhjZXB0IDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3Ru YW1lPmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBV QkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIEFMTCBUQUJMRVMgRVhDRVBUICh1 c2VycywgZGVwYXJ0bWVudHMpOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisKICAgPHBhcmE+ CiAgICBBZGQgdGFibGVzIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiwKICAgIDxzdHJ1 Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1lPiBhbmQgc2NoZW1hCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAppbmRleCA2NmE3MGU1YzViNS4uOGI2MTY2NTEyNzIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbApAQCAtMzIsOCArMzIs MTIgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+YWxsX3B1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8 L3BocmFzZT4KIAotICAgIEFMTCBUQUJMRVMKKyAgICBBTEwgVEFCTEVTIFsgRVhDRVBUIFsgVEFC TEUgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9leGNlcHRpb25fb2Jq ZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdCiAgICAgQUxMIFNFUVVFTkNFUworCis8cGhy YXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9leGNlcHRpb25f b2JqZWN0PC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICBbIE9OTFkgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCiA8 L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAKQEAgLTE2MCw3ICsxNjQsOSBAQCBDUkVB VEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPgogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBNYXJrcyB0aGUgcHVi bGljYXRpb24gYXMgb25lIHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFibGVzIGlu Ci0gICAgICB0aGUgZGF0YWJhc2UsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUgZnV0 dXJlLgorICAgICAgdGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhl IGZ1dHVyZS4gSWYKKyAgICAgIDxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD4gaXMgc3Bl Y2lmaWVkLCB0aGVuIGV4Y2x1ZGUgcmVwbGljYXRpbmcKKyAgICAgIHRoZSBjaGFuZ2VzIGZvciB0 aGUgc3BlY2lmaWVkIHRhYmxlcy4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8 L3Zhcmxpc3RlbnRyeT4KQEAgLTE4MCw2ICsxODYsMzUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8L2xp c3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1j cmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4Y2VwdC10YWJsZSI+CisgICAgPHRlcm0+PGxp dGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhpcyBjbGF1c2Ugc3BlY2lmaWVzIGEgbGlzdCBvZiB0YWJsZXMgdG8g YmUgZXhjbHVkZWQgZnJvbSB0aGUKKyAgICAgIHB1YmxpY2F0aW9uLiBJdCBjYW4gb25seSBiZSB1 c2VkIHdpdGggPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LgorICAgICAgSWYgPGxp dGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGJlZm9yZSB0aGUgdGFibGUgbmFtZSwg b25seQorICAgICAgdGhhdCB0YWJsZSBpcyBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4g SWYgPGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMKKyAgICAgIG5vdCBzcGVjaWZpZWQsIHRoZSB0 YWJsZSBhbmQgYWxsIGl0cyBkZXNjZW5kYW50IHRhYmxlcyAoaWYgYW55KSBhcmUKKyAgICAgIGV4 Y2x1ZGVkLiBPcHRpb25hbGx5LCA8bGl0ZXJhbD4qPC9saXRlcmFsPiBjYW4gYmUgc3BlY2lmaWVk IGFmdGVyIHRoZQorICAgICAgdGFibGUgbmFtZSB0byBleHBsaWNpdGx5IGluZGljYXRlIHRoYXQg ZGVzY2VuZGFudCB0YWJsZXMgYXJlIGV4Y2x1ZGVkLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJh PgorICAgICAgVGhlIHBhcnRpdGlvbmVkIHRhYmxlIG9yIGl0cyBwYXJ0aXRpb25zIGFyZSBleGNs dWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbgorICAgICAgYmFzZWQgb24gdGhlIHBhcmFtZXRlciA8 bGl0ZXJhbD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4uCisgICAgICBXaGVu IDxsaXRlcmFsPnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290PC9saXRlcmFsPiBpcyBzZXQgdG8K KyAgICAgIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LCBzcGVjaWZ5aW5nIGEgcm9vdCBwYXJ0aXRp b25lZCB0YWJsZSBpbgorICAgICAgPGxpdGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPiBleGNs dWRlcyBpdCBhbmQgYWxsIGl0cyBwYXJ0aXRpb25zIGZyb20KKyAgICAgIHJlcGxpY2F0aW9uLiBT cGVjaWZ5aW5nIGEgbGVhZiBwYXJ0aXRpb24gaGFzIG5vIGVmZmVjdCwgYXMgaXRzIGNoYW5nZXMg YXJlCisgICAgICBzdGlsbCByZXBsaWNhdGVkIHZpYSB0aGUgcm9vdCBwYXJ0aXRpb25lZCB0YWJs ZS4gV2hlbgorICAgICAgPGxpdGVyYWw+cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q8L2xpdGVy YWw+IGlzIHNldCB0bworICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LCBzcGVjaWZ5aW5n IGEgcGFydGl0aW9uZWQgdGFibGUgb3Igbm9uLWxlYWYKKyAgICAgIHBhcnRpdGlvbiBoYXMgbm8g ZWZmZWN0LCBhcyBjaGFuZ2VzIGFyZSByZXBsaWNhdGVkIHZpYSB0aGUgbGVhZgorICAgICAgcGFy dGl0aW9ucy4gU3BlY2lmeWluZyBhIGxlYWYgcGFydGl0aW9uIGV4Y2x1ZGVzIG9ubHkgdGhhdCBw YXJ0aXRpb24gZnJvbQorICAgICAgcmVwbGljYXRpb24uCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1j cmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+V0lUSCAo IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3Jl cGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxh Y2VhYmxlPl0gWywgLi4uIF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAt NDYzLDYgKzQ5OCwxNCBAQCBDUkVBVEUgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlv biBGT1IgVEFCTEUgdXNlcnMsIGRlcGFydG1lbnRzLCBUQUJMRVMgSQogQ1JFQVRFIFBVQkxJQ0FU SU9OIHNhbGVzX3B1YmxpY2F0aW9uIEZPUiBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2Fs ZXM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAorICA8cGFyYT4KKyAgIENyZWF0ZSBhIHB1 YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFuZ2VzIGluIGFsbCB0aGUgdGFibGVzIGV4 Y2VwdAorICAgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFuZCA8c3RydWN0bmFtZT5k ZXBhcnRtZW50czwvc3RydWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFVCTElD QVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHVzZXJzLCBkZXBhcnRt ZW50cyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBDcmVh dGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgdGFibGUgPHN0 cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgYnV0IHJlcGxpY2F0ZXMgb25seSBjb2x1 bW5zIDxzdHJ1Y3RuYW1lPnVzZXJfaWQ8L3N0cnVjdG5hbWU+IGFuZApkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5z Z21sCmluZGV4IGY1NmM3MDI2M2UwLi5mMWIzY2UzODBiNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dt bApAQCAtMjEwMyw4ICsyMTAzLDkgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogICAgICAgICBs aXN0ZWQuCiAgICAgICAgIElmIDxsaXRlcmFsPng8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRo ZSBjb21tYW5kIG5hbWUsIHRoZSByZXN1bHRzCiAgICAgICAgIGFyZSBkaXNwbGF5ZWQgaW4gZXhw YW5kZWQgbW9kZS4KLSAgICAgICAgSWYgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQg dG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHRhYmxlcyBhbmQKLSAgICAgICAgc2NoZW1hcyBhc3Nv Y2lhdGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBhcmUgc2hvd24gYXMgd2VsbC4KKyAgICAgICAg SWYgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwg dGhlIHRhYmxlcywKKyAgICAgICAgZXhjbHVkZWQgdGFibGVzLCBhbmQgc2NoZW1hcyBhc3NvY2lh dGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBhcmUgc2hvd24KKyAgICAgICAgYXMgd2VsbC4KICAg ICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+ CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggYWMyZjRlZTM1NjEuLmJlYzNh MzRlNDhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0zNTQsNyArMzU0 LDggQEAgR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGlj YXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0LAogICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0 aGUgbGlzdC4KICAqLwogT2lkCi1HZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBw dWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RB bmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJ CQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29sIHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAg ICpsYzsKIAlPaWQJCQl0b3Btb3N0X3JlbGlkID0gSW52YWxpZE9pZDsKQEAgLTM2NiwzMiArMzY3 LDQ0IEBAIEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAq YW5jZXN0b3JzLCBpbnQgKmFuY2VzdG9yX2xldmVsCiAJZm9yZWFjaChsYywgYW5jZXN0b3JzKQog CXsKIAkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKLQkJTGlzdAkgICAqYXB1Ymlk cyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yKTsKLQkJTGlzdAkgICAqYXNjaGVt YVB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRp b25zKGFuY2VzdG9yLCBmYWxzZSk7CisJCUxpc3QJICAgKmFzY2hlbWFwdWJpZHMgPSBOSUw7CisJ CUxpc3QJICAgKmFleGNlcHRwdWJpZHMgPSBOSUw7CisJCWJvb2wJCXNldF90b3AgPSBmYWxzZTsK IAogCQlsZXZlbCsrOwogCi0JCWlmIChsaXN0X21lbWJlcl9vaWQoYXB1YmlkcywgcHVib2lkKSkK KwkJLyogY2hlY2sgaWYgbWVtYmVyIG9mIHRhYmxlIHB1YmxpY2F0aW9ucyAqLworCQlzZXRfdG9w ID0gbGlzdF9tZW1iZXJfb2lkKGFwdWJpZHMsIHB1Ym9pZCk7CisJCWlmICghc2V0X3RvcCkKIAkJ ewotCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOworCQkJYXNjaGVtYXB1YmlkcyA9IEdldFNj aGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVsX25hbWVzcGFjZShhbmNlc3RvcikpOwogCi0JCQlpZiAo YW5jZXN0b3JfbGV2ZWwpCi0JCQkJKmFuY2VzdG9yX2xldmVsID0gbGV2ZWw7CisJCQkvKiBjaGVj ayBpZiBtZW1iZXIgb2Ygc2NoZW1hIHB1YmxpY2F0aW9ucyAqLworCQkJc2V0X3RvcCA9IGxpc3Rf bWVtYmVyX29pZChhc2NoZW1hcHViaWRzLCBwdWJvaWQpOworCisJCQkvKgorCQkJICogSWYgdGhl IHB1YmxpY2F0aW9uIGlzIGFsbCB0YWJsZXMgcHVibGljYXRpb24gYW5kIHRoZSB0YWJsZSBpcwor CQkJICogbm90IHBhcnQgb2YgZXhjZXB0aW9uIHRhYmxlcy4KKwkJCSAqLworCQkJaWYgKCFzZXRf dG9wICYmIHB1YmFsbHRhYmxlcykKKwkJCXsKKwkJCQlhZXhjZXB0cHViaWRzID0gR2V0UmVsYXRp b25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIHRydWUpOworCQkJCXNldF90b3AgPSAhbGlzdF9tZW1i ZXJfb2lkKGFleGNlcHRwdWJpZHMsIHB1Ym9pZCk7CisJCQl9CiAJCX0KLQkJZWxzZQorCisJCWlm IChzZXRfdG9wKQogCQl7Ci0JCQlhc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25z KGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSk7Ci0JCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFz Y2hlbWFQdWJpZHMsIHB1Ym9pZCkpCi0JCQl7Ci0JCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9y OworCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOwogCi0JCQkJaWYgKGFuY2VzdG9yX2xldmVs KQotCQkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKLQkJCX0KKwkJCWlmIChhbmNlc3Rvcl9s ZXZlbCkKKwkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKIAkJfQogCiAJCWxpc3RfZnJlZShh cHViaWRzKTsKLQkJbGlzdF9mcmVlKGFzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoYXNjaGVt YXB1Ymlkcyk7CisJCWxpc3RfZnJlZShhZXhjZXB0cHViaWRzKTsKIAl9CiAKIAlyZXR1cm4gdG9w bW9zdF9yZWxpZDsKQEAgLTQ2Niw2ICs0NzksMTcgQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9u KE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCQkJCQlSZWxhdGlvbkdldFJl bGF0aW9uTmFtZSh0YXJnZXRyZWwpLCBwdWItPm5hbWUpKSk7CiAJfQogCisJLyoKKwkgKiBDaGVj ayBmb3IgcGFydGl0aW9ucyBvZiBwYXJ0aXRpb25lZCB0YWJsZSB3aGljaCBhcmUgc3BlY2lmaWVk IHdpdGgKKwkgKiBFWENFUFQgY2xhdXNlIGFuZCBwYXJ0aXRpb25lZCB0YWJsZSBpcyBwdWJsaXNo ZWQgd2l0aAorCSAqIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZS4KKwkgKi8KKwlp ZiAocHViLT5hbGx0YWJsZXMgJiYgcHJpLT5leGNlcHQgJiYgdGFyZ2V0cmVsLT5yZF9yZWwtPnJl bGlzcGFydGl0aW9uICYmCisJCXB1Yi0+cHVidmlhcm9vdCkKKwkJZXJlcG9ydChXQVJOSU5HLAor CQkJCShlcnJtc2coInBhcnRpdGlvbiBcIiVzXCIgd2lsbCBiZSByZXBsaWNhdGVkIGFzIHB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290IGlzIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZSh0YXJnZXRyZWwpLCAidHJ1ZSIpKSk7CisKIAljaGVja19wdWJsaWNhdGlvbl9hZGRf cmVsYXRpb24odGFyZ2V0cmVsKTsKIAogCS8qIFZhbGlkYXRlIGFuZCB0cmFuc2xhdGUgY29sdW1u IG5hbWVzIGludG8gYSBCaXRtYXBzZXQgb2YgYXR0bnVtcy4gKi8KQEAgLTQ4Miw2ICs1MDYsOCBA QCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8g KnByaSwKIAkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCk7CiAJdmFsdWVzW0FudW1fcGdfcHVibGlj YXRpb25fcmVsX3BycmVsaWQgLSAxXSA9CiAJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCXZh bHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCAtIDFdID0KKwkJQm9vbEdldERh dHVtKHByaS0+ZXhjZXB0KTsKIAogCS8qIEFkZCBxdWFsaWZpY2F0aW9ucywgaWYgYXZhaWxhYmxl ICovCiAJaWYgKHByaS0+d2hlcmVDbGF1c2UgIT0gTlVMTCkKQEAgLTc0OSw5ICs3NzUsOSBAQCBw dWJsaWNhdGlvbl9hZGRfc2NoZW1hKE9pZCBwdWJpZCwgT2lkIHNjaGVtYWlkLCBib29sIGlmX25v dF9leGlzdHMpCiAJcmV0dXJuIG15c2VsZjsKIH0KIAotLyogR2V0cyBsaXN0IG9mIHB1YmxpY2F0 aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gKi8KKy8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBv aWRzIGZvciBhIHJlbGF0aW9uIHRoYXQgbWF0Y2hlcyB0aGUgZXhjZXB0X2ZsYWcgKi8KIExpc3Qg KgotR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKQorR2V0UmVsYXRpb25QdWJsaWNh dGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2VwdF9mbGFnKQogewogCUxpc3QJICAgKnJlc3VsdCA9 IE5JTDsKIAlDYXRDTGlzdCAgICpwdWJyZWxsaXN0OwpAQCAtNzY1LDcgKzc5MSw4IEBAIEdldFJl bGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCkKIAkJSGVhcFR1cGxlCXR1cCA9ICZwdWJyZWxs aXN0LT5tZW1iZXJzW2ldLT50dXBsZTsKIAkJT2lkCQkJcHViaWQgPSAoKEZvcm1fcGdfcHVibGlj YXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnBycHViaWQ7CiAKLQkJcmVzdWx0ID0gbGFwcGVu ZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlmIChleGNlcHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVi bGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0KQorCQkJcmVzdWx0ID0gbGFw cGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlTGlzdChwdWJy ZWxsaXN0KTsKQEAgLTc3NCwxMyArODAxLDE0IEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9p ZCByZWxpZCkKIH0KIAogLyoKLSAqIEdldHMgbGlzdCBvZiByZWxhdGlvbiBvaWRzIGZvciBhIHB1 YmxpY2F0aW9uLgorICogR2V0cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVibGljYXRp b24gdGhhdCBtYXRjaGVzIHRoZSBleGNlcHRfZmxhZy4KICAqCiAgKiBUaGlzIHNob3VsZCBvbmx5 IGJlIHVzZWQgRk9SIFRBQkxFIHB1YmxpY2F0aW9ucywgdGhlIEZPUiBBTEwgVEFCTEVTL1NFUVVF TkNFUwogICogc2hvdWxkIHVzZSBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucygpLgogICovCiBM aXN0ICoKLUdldFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0 T3B0IHB1Yl9wYXJ0b3B0KQorR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJs aWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCisJCQkJCQlib29sIGV4Y2VwdF9mbGFnKQogewog CUxpc3QJICAgKnJlc3VsdDsKIAlSZWxhdGlvbglwdWJyZWxzcmVsOwpAQCAtODA1LDggKzgzMywx MSBAQCBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9w dCBwdWJfcGFydG9wdCkKIAkJRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwgcHVicmVsOwogCiAJCXB1 YnJlbCA9IChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCk7Ci0JCXJlc3Vs dCA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAot CQkJCQkJCQkJCQkJcHVicmVsLT5wcnJlbGlkKTsKKworCQlpZiAoZXhjZXB0X2ZsYWcgPT0gcHVi cmVsLT5wcmV4Y2VwdCkKKwkJCXJlc3VsdCA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9u cyhyZXN1bHQsIHB1Yl9wYXJ0b3B0LAorCQkJCQkJCQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CisK IAl9CiAKIAlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOwpAQCAtODY2LDEzICs4OTcsMTkgQEAgR2V0 QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpCiAgKiBwdWJsaWNhdGlvbi4KICAqLwogTGlzdCAq Ci1HZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9v dCkKK0dldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgY2hhciByZWxraW5kLCBi b29sIHB1YnZpYXJvb3QpCiB7CiAJUmVsYXRpb24JY2xhc3NSZWw7CiAJU2NhbktleURhdGEga2V5 WzFdOwogCVRhYmxlU2NhbkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJdHVwbGU7CiAJTGlzdAkgICAq cmVzdWx0ID0gTklMOworCUxpc3QJICAgKmV4Y2VwdGxpc3Q7CisKKwlleGNlcHRsaXN0ID0gR2V0 UHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsIHB1YnZpYXJvb3QgPworCQkJCQkJCQkJCSBQVUJM SUNBVElPTl9QQVJUX0FMTCA6CisJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwKKwkJ CQkJCQkJCQkgdHJ1ZSk7CiAKIAlBc3NlcnQoIShyZWxraW5kID09IFJFTEtJTkRfU0VRVUVOQ0Ug JiYgcHVidmlhcm9vdCkpOwogCkBAIC04OTEsNyArOTI4LDggQEAgR2V0QWxsUHVibGljYXRpb25S ZWxhdGlvbnMoY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAJCU9pZAkJCXJlbGlkID0g cmVsRm9ybS0+b2lkOwogCiAJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9y bSkgJiYKLQkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYgcHVidmlhcm9vdCkpCisJCQkh KHJlbEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpICYmCisJCQkhbGlzdF9tZW1i ZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3Vs dCwgcmVsaWQpOwogCX0KIApAQCAtOTEyLDcgKzk1MCw4IEBAIEdldEFsbFB1YmxpY2F0aW9uUmVs YXRpb25zKGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQogCQkJT2lkCQkJcmVsaWQgPSBy ZWxGb3JtLT5vaWQ7CiAKIAkJCWlmIChpc19wdWJsaXNoYWJsZV9jbGFzcyhyZWxpZCwgcmVsRm9y bSkgJiYKLQkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24pCisJCQkJIXJlbEZvcm0tPnJlbGlz cGFydGl0aW9uICYmCisJCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCByZWxpZCkpCiAJ CQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJCX0KIApAQCAtMTE2OCw3 ICsxMjA3LDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CQkJICogdGhvc2UuIE90aGVyd2lzZSwgZ2V0IHRoZSBwYXJ0aXRpb25lZCB0YWJsZSBpdHNlbGYu CiAJCQkgKi8KIAkJCWlmIChwdWJfZWxlbS0+YWxsdGFibGVzKQotCQkJCXB1Yl9lbGVtX3RhYmxl cyA9IEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKFJFTEtJTkRfUkVMQVRJT04sCisJCQkJcHVi X2VsZW1fdGFibGVzID0gR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMocHViX2VsZW0tPm9pZCwK KwkJCQkJCQkJCQkJCQkJCSBSRUxLSU5EX1JFTEFUSU9OLAogCQkJCQkJCQkJCQkJCQkJIHB1Yl9l bGVtLT5wdWJ2aWFyb290KTsKIAkJCWVsc2UKIAkJCXsKQEAgLTExNzgsNyArMTIxOCw4IEBAIHBn X2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQlyZWxpZHMgPSBH ZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAogCQkJCQkJCQkJCQkJIHB1Yl9l bGVtLT5wdWJ2aWFyb290ID8KIAkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX1JPT1QgOgot CQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfTEVBRik7CisJCQkJCQkJCQkJCQkgUFVCTElD QVRJT05fUEFSVF9MRUFGLAorCQkJCQkJCQkJCQkJIGZhbHNlKTsKIAkJCQlzY2hlbWFyZWxpZHMg PSBHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAogCQkJCQkJ CQkJCQkJCQkJCXB1Yl9lbGVtLT5wdWJ2aWFyb290ID8KIAkJCQkJCQkJCQkJCQkJCQlQVUJMSUNB VElPTl9QQVJUX1JPT1QgOgpAQCAtMTM2Nyw3ICsxNDA4LDcgQEAgcGdfZ2V0X3B1YmxpY2F0aW9u X3NlcXVlbmNlcyhQR19GVU5DVElPTl9BUkdTKQogCQlwdWJsaWNhdGlvbiA9IEdldFB1YmxpY2F0 aW9uQnlOYW1lKHB1Ym5hbWUsIGZhbHNlKTsKIAogCQlpZiAocHVibGljYXRpb24tPmFsbHNlcXVl bmNlcykKLQkJCXNlcXVlbmNlcyA9IEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKFJFTEtJTkRf U0VRVUVOQ0UsIGZhbHNlKTsKKwkJCXNlcXVlbmNlcyA9IEdldEFsbFB1YmxpY2F0aW9uUmVsYXRp b25zKHB1YmxpY2F0aW9uLT5vaWQsIFJFTEtJTkRfU0VRVUVOQ0UsIGZhbHNlKTsKIAogCQlmdW5j Y3R4LT51c2VyX2ZjdHggPSAodm9pZCAqKSBzZXF1ZW5jZXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmMKaW5kZXggYTY5OWJhOWRjYjAuLjczMmJjYjQxNjFiIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMTcwLDYgKzE3MCwzOSBAQCBwYXJz ZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAl9CiB9CiAKKy8qCisg KiBDb252ZXJ0IHRoZSBQdWJsaWNhdGlvbk9ialNwZWMgbGlzdCB3aGljaCBpcyBwYXJ0IG9mCisg KiBQdWJsaWNhdGlvbkFsbE9ialNwZWNUeXBlIGxpc3QgaW50byBQdWJsaWNhdGlvblRhYmxlIGxp c3QuCisgKi8KK3N0YXRpYyB2b2lkCitPYmplY3RzSW5BbGxQdWJsaWNhdGlvblRvT2lkcyhMaXN0 ICpwdWJhbGxvYmpzcGVjX2xpc3QsCisJCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg KipyZWxzKQoreworCWlmICghcHViYWxsb2Jqc3BlY19saXN0KQorCQlyZXR1cm47CisKKwlmb3Jl YWNoX3B0cihQdWJsaWNhdGlvbkFsbE9ialNwZWMsIHB1YmFsbG9iaiwgcHViYWxsb2Jqc3BlY19s aXN0KQorCXsKKwkJc3dpdGNoIChwdWJhbGxvYmotPnB1Ym9ianR5cGUpCisJCXsKKwkJCWNhc2Ug UFVCTElDQVRJT05fQUxMX1NFUVVFTkNFUzoKKwkJCQlicmVhazsKKwkJCWNhc2UgUFVCTElDQVRJ T05fQUxMX1RBQkxFUzoKKwkJCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbk9ialNwZWMsIHB1Ym9i aiwgcHViYWxsb2JqLT5leGNlcHRfb2JqZWN0cykKKwkJCQl7CisJCQkJCXB1Ym9iai0+cHVidGFi bGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5w dWJ0YWJsZSk7CisJCQkJfQorCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQkvKiBzaG91bGRu J3QgaGFwcGVuICovCisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcHVibGljYXRpb24gb2JqZWN0 IHR5cGUgJWQiLAorCQkJCQkgcHViYWxsb2JqLT5wdWJvYmp0eXBlKTsKKwkJCQlicmVhazsKKwkJ fQorCX0KK30KKwogLyoKICAqIENvbnZlcnQgdGhlIFB1YmxpY2F0aW9uT2JqU3BlY1R5cGUgbGlz dCBpbnRvIHNjaGVtYSBvaWQgbGlzdCBhbmQKICAqIFB1YmxpY2F0aW9uVGFibGUgbGlzdC4KQEAg LTE5NCw2ICsyMjcsMTEgQEAgT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jq c3BlY19saXN0LCBQYXJzZVN0YXRlICpwc3RhdGUsCiAJCXN3aXRjaCAocHVib2JqLT5wdWJvYmp0 eXBlKQogCQl7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVi dGFibGUtPmV4Y2VwdCA9IGZhbHNlOworCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2Jq LT5wdWJ0YWJsZSk7CisJCQkJYnJlYWs7CisJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9U QUJMRToKKwkJCQlwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOwogCQkJCSpyZWxzID0g bGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBV QkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUE6CkBAIC0yNjgsNyArMzA2LDcgQEAgY29udGFp bl9pbnZhbGlkX3JmY29sdW1uX3dhbGtlcihOb2RlICpub2RlLCByZl9jb250ZXh0ICpjb250ZXh0 KQogICovCiBib29sCiBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBS ZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAotCQkJCQkJCSAgIGJvb2wgcHVidmlh cm9vdCkKKwkJCQkJCQkgICBib29sIHB1YnZpYXJvb3QsIGJvb2wgcHViYWxsdGFibGVzKQogewog CUhlYXBUdXBsZQlyZnR1cGxlOwogCU9pZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWxh dGlvbik7CkBAIC0yOTUsNyArMzMzLDggQEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1u KE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlpZiAocHVi dmlhcm9vdCAmJiByZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CiAJCXB1Ymxp c2hfYXNfcmVsaWQKLQkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwg YW5jZXN0b3JzLCBOVUxMKTsKKwkJCT0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihw dWJpZCwgYW5jZXN0b3JzLCBOVUxMLAorCQkJCQkJCQkJCQkgIHB1YmFsbHRhYmxlcyk7CiAKIAkJ aWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9 IHJlbGlkOwpAQCAtMzU1LDcgKzM5NCw3IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVt bihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiBib29sCiBw dWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwg TGlzdCAqYW5jZXN0b3JzLAogCQkJCQkJCWJvb2wgcHVidmlhcm9vdCwgY2hhciBwdWJnZW5jb2xz X3R5cGUsCi0JCQkJCQkJYm9vbCAqaW52YWxpZF9jb2x1bW5fbGlzdCwKKwkJCQkJCQlib29sIHB1 YmFsbHRhYmxlcywgYm9vbCAqaW52YWxpZF9jb2x1bW5fbGlzdCwKIAkJCQkJCQlib29sICppbnZh bGlkX2dlbl9jb2wpCiB7CiAJT2lkCQkJcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9u KTsKQEAgLTM3OSw3ICs0MTgsOCBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1 YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCSAqLwogCWlmIChwdWJ2 aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQogCXsKLQkJcHVibGlz aF9hc19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2Vz dG9ycywgTlVMTCk7CisJCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0QW5jZXN0b3JJblB1 YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsCisJCQkJCQkJCQkJCQkJCSAgIE5VTEwsIHB1YmFs bHRhYmxlcyk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hfYXNfcmVsaWQpKQogCQkJcHVi bGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtNTE1LDcgKzU1NSw3IEBAIEludmFsaWRhdGVQdWJS ZWxTeW5jQ2FjaGUoT2lkIHB1YmlkLCBib29sIHB1YmFsbHRhYmxlcykKIAkJICogaXRzIGxlYXZl cy4KIAkJICovCiAJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAotCQkJ CQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0FMTCk7CisJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BB UlRfQUxMLCBmYWxzZSk7CiAJCXNjaGVtYXJlbGlkcyA9IEdldEFsbFNjaGVtYVB1YmxpY2F0aW9u UmVsYXRpb25zKHB1YmlkLAogCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX0FMTCk7CiAK QEAgLTkyMyw1NiArOTYzLDU0IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCS8qIE1ha2UgdGhlIGNoYW5nZXMgdmlz aWJsZS4gKi8KIAlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogCi0JLyogQXNzb2NpYXRlIG9i amVjdHMgd2l0aCB0aGUgcHVibGljYXRpb24uICovCiAJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVz KQotCXsKLQkJLyoKLQkJICogSW52YWxpZGF0ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9u IGluZm8gaXMgcmVidWlsdC4gU2VxdWVuY2VzCi0JCSAqIHB1YmxpY2F0aW9uIGRvZXNuJ3QgcmVx dWlyZSBpbnZhbGlkYXRpb24sIGFzIHJlcGxpY2EgaWRlbnRpdHkKLQkJICogY2hlY2tzIGRvbid0 IGFwcGx5IHRvIHRoZW0uCi0JCSAqLwotCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOwot CX0KKwkJT2JqZWN0c0luQWxsUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0 YXRlLCAmcmVsYXRpb25zKTsKKwogCWVsc2UgaWYgKCFzdG10LT5mb3JfYWxsX3NlcXVlbmNlcykK LQl7CiAJCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0 ZSwgJnJlbGF0aW9ucywKIAkJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7CiAKLQkJLyogRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCi0JCWlmIChzY2hlbWFpZGxpc3Qg IT0gTklMICYmICFzdXBlcnVzZXIoKSkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkJZXJybXNnKCJtdXN0IGJlIHN1 cGVydXNlciB0byBjcmVhdGUgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7CisJ LyogRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcmVxdWlyZXMgc3VwZXJ1c2VyICovCisJaWYgKHNjaGVt YWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVy cmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3Qg YmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWNhdGlvbiIp KTsKIAotCQlpZiAocmVsYXRpb25zICE9IE5JTCkKLQkJewotCQkJTGlzdAkgICAqcmVsczsKKwlp ZiAocmVsYXRpb25zICE9IE5JTCkKKwl7CisJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBP cGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7Ci0JCQlUcmFuc2Zvcm1QdWJXaGVyZUNsYXVzZXMocmVs cywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QpOworCQlyZWxzID0gT3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOworCQlUcmFuc2Zvcm1Q dWJXaGVyZUNsYXVzZXMocmVscywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJCSBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKLQkJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0 KHN0bXQtPnB1Ym5hbWUsIHJlbHMsCi0JCQkJCQkJCQkgICBzY2hlbWFpZGxpc3QgIT0gTklMLAot CQkJCQkJCQkJICAgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOworCQlDaGVja1B1YlJlbGF0 aW9uQ29sdW1uTGlzdChzdG10LT5wdWJuYW1lLCByZWxzLAorCQkJCQkJCQkgICBzY2hlbWFpZGxp c3QgIT0gTklMLAorCQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CiAKLQkJ CVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7Ci0JCQlDbG9z ZVRhYmxlTGlzdChyZWxzKTsKLQkJfQorCQlQdWJsaWNhdGlvbkFkZFRhYmxlcyhwdWJvaWQsIHJl bHMsIHRydWUsIE5VTEwpOworCQlDbG9zZVRhYmxlTGlzdChyZWxzKTsKKwl9CiAKLQkJaWYgKHNj aGVtYWlkbGlzdCAhPSBOSUwpCi0JCXsKLQkJCS8qCi0JCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxk IHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKLQkJCSAqIGNvbmN1 cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgotCQkJICovCi0JCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFp ZGxpc3QpOwotCQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9pZCwgc2NoZW1haWRsaXN0LCB0 cnVlLCBOVUxMKTsKLQkJfQorCWlmIChzY2hlbWFpZGxpc3QgIT0gTklMKQorCXsKKwkJLyoKKwkJ ICogU2NoZW1hIGxvY2sgaXMgaGVsZCB1bnRpbCB0aGUgcHVibGljYXRpb24gaXMgY3JlYXRlZCB0 byBwcmV2ZW50CisJCSAqIGNvbmN1cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgorCQkgKi8KKwkJTG9j a1NjaGVtYUxpc3Qoc2NoZW1haWRsaXN0KTsKKwkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9p ZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKIAl9CiAKIAl0YWJsZV9jbG9zZShyZWwsIFJv d0V4Y2x1c2l2ZUxvY2spOwogCisJLyogQXNzb2NpYXRlIG9iamVjdHMgd2l0aCB0aGUgcHVibGlj YXRpb24uICovCisJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVzKQorCXsKKwkJLyogSW52YWxpZGF0 ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9uIGluZm8gaXMgcmVidWlsdC4gKi8KKwkJQ2Fj aGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKKwl9CisKIAlJbnZva2VPYmplY3RQb3N0Q3JlYXRl SG9vayhQdWJsaWNhdGlvblJlbGF0aW9uSWQsIHB1Ym9pZCwgMCk7CiAKIAlpZiAod2FsX2xldmVs ICE9IFdBTF9MRVZFTF9MT0dJQ0FMKQpAQCAtMTA0MSw3ICsxMDc5LDcgQEAgQWx0ZXJQdWJsaWNh dGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3Rt dCwKIAkJCQkJCSAgIEFjY2Vzc1NoYXJlTG9jayk7CiAKIAkJcm9vdF9yZWxpZHMgPSBHZXRQdWJs aWNhdGlvblJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsCi0JCQkJCQkJCQkJCSAgUFVCTElDQVRJT05f UEFSVF9ST09UKTsKKwkJCQkJCQkJCQkJICBQVUJMSUNBVElPTl9QQVJUX1JPT1QsIGZhbHNlKTsK IAogCQlmb3JlYWNoKGxjLCByb290X3JlbGlkcykKIAkJewpAQCAtMTE2MSw3ICsxMTk5LDcgQEAg QWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0 aW9uU3RtdCAqc3RtdCwKIAkJICovCiAJCWlmIChyb290X3JlbGlkcyA9PSBOSUwpCiAJCQlyZWxp ZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsCi0JCQkJCQkJCQkJCSBQ VUJMSUNBVElPTl9QQVJUX0FMTCk7CisJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0FMTCwg ZmFsc2UpOwogCQllbHNlCiAJCXsKIAkJCS8qCkBAIC0xMjY0LDYgKzEzMDIsMjcgQEAgQWx0ZXJQ dWJsaWNhdGlvblJlc2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQg KnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViYWxsc2VxdWVuY2VzIC0gMV0g PSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUxMX1NFUVVFTkNFUyk7CiAJcmVwbGFjZXNbQW51 bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGxzZXF1ZW5jZXMgLSAxXSA9IHRydWU7CiAKKwkvKgorCSAq IExvY2sgdGhlIHB1YmxpY2F0aW9uIHNvIG5vYm9keSBlbHNlIGNhbiBkbyBhbnl0aGluZyB3aXRo IGl0LiBUaGlzCisJICogcHJldmVudHMgY29uY3VycmVudCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIg Y2hhbmdlcywgYWRkL2Ryb3AgdGFibGVzKHMpCisJICogdG8gdGhlIHB1YmxpY2F0aW9uIGFuZCBh ZGQvZHJvcCBzY2hlbWEocykgdG8gdGhlIHB1YmxpY2F0aW9uLgorCSAqLworCUxvY2tEYXRhYmFz ZU9iamVjdChQdWJsaWNhdGlvblJlbGF0aW9uSWQsIHB1YmlkLCAwLAorCQkJCQkgICBBY2Nlc3NF eGNsdXNpdmVMb2NrKTsKKworCS8qCisJICogSXQgaXMgcG9zc2libGUgdGhhdCBieSB0aGUgdGlt ZSB3ZSBhY3F1aXJlIHRoZSBsb2NrIG9uIHB1YmxpY2F0aW9uLAorCSAqIGNvbmN1cnJlbnQgRERM IGhhcyByZW1vdmVkIGl0LiBXZSBjYW4gdGVzdCB0aGlzIGJ5IGNoZWNraW5nIHRoZQorCSAqIGV4 aXN0ZW5jZSBvZiBwdWJsaWNhdGlvbi4gV2UgZ2V0IHRoZSB0dXBsZSBhZ2FpbiB0byBhdm9pZCB0 aGUgcmlzayBvZgorCSAqIGFueSBwdWJsaWNhdGlvbiBvcHRpb24gZ2V0dGluZyBjaGFuZ2VkLgor CSAqLworCXR1cCA9IFNlYXJjaFN5c0NhY2hlQ29weTEoUFVCTElDQVRJT05PSUQsIE9iamVjdElk R2V0RGF0dW0ocHViaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJy bXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkgICBzdG10LT5w dWJuYW1lKSk7CisKIAlpZiAocHViZm9ybS0+cHViYWxsdGFibGVzKQogCQlDYWNoZUludmFsaWRh dGVSZWxjYWNoZUFsbCgpOwogCkBAIC0xMjg2LDcgKzEzNDUsMTAgQEAgQWx0ZXJQdWJsaWNhdGlv blJlc2V0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJ UHVibGljYXRpb25Ecm9wU2NoZW1hcyhwdWJpZCwgc2NoZW1haWRzLCB0cnVlKTsKIAogCS8qIEdl dCBhbGwgcmVsYXRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gKi8KLQlyZWxp ZHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9ST09U KTsKKwlpZiAocHViZm9ybS0+cHViYWxsdGFibGVzKQorCQlyZWxpZHMgPSBHZXRQdWJsaWNhdGlv blJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFSVF9ST09ULCB0cnVlKTsKKwllbHNlCisJ CXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJU X1JPT1QsIGZhbHNlKTsKIAogCWZvcmVhY2hfb2lkKHJlbGlkLCByZWxpZHMpCiAJewpAQCAtMTMz Niw3ICsxMzk4LDcgQEAgQ2hlY2tQdWJsaWNhdGlvbkRlZlZhbHVlcyhIZWFwVHVwbGUgdHVwKQog CWlmIChsaXN0X2xlbmd0aChwdWJvYmpzKSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JcHVib2JqcyA9 IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOwor CXB1Ym9ianMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgUFVCTElDQVRJT05fUEFS VF9ST09ULCBmYWxzZSk7CiAJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQogCQlyZXR1cm4gZmFs c2U7CiAKQEAgLTE0MTcsNyArMTQ3OSw4IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQ dWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJZWxzZQkJCQkJCS8qIEFQX1Nl dE9iamVjdHMgKi8KIAl7CiAJCUxpc3QJICAgKm9sZHJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVs YXRpb25zKHB1YmlkLAotCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCQkJ CQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX1JPT1QsCisJCQkJCQkJCQkJCQkJCWZhbHNlKTsK IAkJTGlzdAkgICAqZGVscmVscyA9IE5JTDsKIAkJTGlzdENlbGwgICAqb2xkbGM7CiAKQEAgLTE1 MTgsNiArMTU4MSw3IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0 bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJb2xkcmVsID0gcGFsbG9jKHNpemVvZihQdWJs aWNhdGlvblJlbEluZm8pKTsKIAkJCQlvbGRyZWwtPndoZXJlQ2xhdXNlID0gTlVMTDsKIAkJCQlv bGRyZWwtPmNvbHVtbnMgPSBOSUw7CisJCQkJb2xkcmVsLT5leGNlcHQgPSBmYWxzZTsKIAkJCQlv bGRyZWwtPnJlbGF0aW9uID0gdGFibGVfb3BlbihvbGRyZWxpZCwKIAkJCQkJCQkJCQkJICBTaGFy ZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOwogCQkJCWRlbHJlbHMgPSBsYXBwZW5kKGRlbHJlbHMsIG9s ZHJlbCk7CkBAIC0xNTY4LDcgKzE2MzIsOCBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhBbHRl clB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJTGlzdENlbGwgICAqbGM7CiAJCUxpc3QJICAgKnJl bG9pZHM7CiAKLQkJcmVsb2lkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9p ZCwgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwkJcmVsb2lkcyA9IEdldFB1YmxpY2F0aW9uUmVs YXRpb25zKHB1YmZvcm0tPm9pZCwgUFVCTElDQVRJT05fUEFSVF9ST09ULAorCQkJCQkJCQkJCSAg ZmFsc2UpOwogCiAJCWZvcmVhY2gobGMsIHJlbG9pZHMpCiAJCXsKQEAgLTE5NDcsNiArMjAxMiw3 IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCQlwdWJfcmVsLT5yZWxhdGlvbiA9IHJl bDsKIAkJcHViX3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53aGVyZUNsYXVzZTsKIAkJcHViX3JlbC0+ Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJ cmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJl bGlkcywgbXlyZWxpZCk7CiAKQEAgLTIwMTksNiArMjA4NSw3IEBAIE9wZW5UYWJsZUxpc3QoTGlz dCAqdGFibGVzKQogCiAJCQkJLyogY2hpbGQgaW5oZXJpdHMgY29sdW1uIGxpc3QgZnJvbSBwYXJl bnQgKi8KIAkJCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+Y29sdW1uczsKKwkJCQlwdWJfcmVsLT5l eGNlcHQgPSB0LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJ CQkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBjaGlsZHJlbGlkKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwppbmRleCAyM2ViYWEzZjIzMC4uNTU3NzNjYzJlY2QgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCkBAIC04NjUxLDcgKzg2NTEsNyBAQCBBVEV4ZWNTZXRFeHByZXNzaW9u KEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1l LAogCSAqIGV4cHJlc3Npb25zLgogCSAqLwogCWlmIChhdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRF X0dFTkVSQVRFRF9WSVJUVUFMICYmCi0JCUdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9u R2V0UmVsaWQocmVsKSkgIT0gTklMKQorCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhSZWxhdGlv bkdldFJlbGlkKHJlbCksIGZhbHNlKSAhPSBOSUwpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coIkFMVEVS IFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBpbiB0YWJsZXMgdGhhdCBhcmUgcGFydCBvZiBhIHB1YmxpY2F0aW9uIiks CkBAIC0xODg0Niw3ICsxODg0Niw3IEBAIEFUUHJlcENoYW5nZVBlcnNpc3RlbmNlKEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLCBib29sIHRvTG9nZ2VkKQogCSAqIFVOTE9HR0VE LCBhcyBVTkxPR0dFRCB0YWJsZXMgY2FuJ3QgYmUgcHVibGlzaGVkLgogCSAqLwogCWlmICghdG9M b2dnZWQgJiYKLQkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwp KSAhPSBOSUwpCisJCWxpc3RfbGVuZ3RoKEdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9u R2V0UmVsaWQocmVsKSwgZmFsc2UpKSA+IDApCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1z ZygiY2Fubm90IGNoYW5nZSB0YWJsZSBcIiVzXCIgdG8gdW5sb2dnZWQgYmVjYXVzZSBpdCBpcyBw YXJ0IG9mIGEgcHVibGljYXRpb24iLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOWQ2NDhjY2I0N2IuLjJhZTUx ZTViZmUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTQ1NCw2ICs0NTQsNyBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCQkJCVRyaWdnZXJUcmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2 YWN1dW1fcmVsYXRpb25fbGlzdCBvcHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKIAkJCQlkcm9wX29w dGlvbl9saXN0IHB1Yl9vYmpfbGlzdCBwdWJfYWxsX29ial90eXBlX2xpc3QKKwkJCQlleGNlcHRf cHViX29ial9saXN0IG9wdF9leGNlcHRfY2xhdXNlCiAKICV0eXBlIDxyZXRjbGF1c2U+IHJldHVy bmluZ19jbGF1c2UKICV0eXBlIDxub2RlPglyZXR1cm5pbmdfb3B0aW9uCkBAIC01OTEsNiArNTky LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPgl2YXJfdmFsdWUgem9u ZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lkZW50IFJvbGVTcGVjIG9wdF9ncmFudGVk X2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVjPiBQdWJsaWNhdGlvbk9ialNwZWMKKyV0 eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYwogJXR5 cGUgPHB1YmxpY2F0aW9uYWxsb2JqZWN0c3BlYz4gUHVibGljYXRpb25BbGxPYmpTcGVjCiAKICV0 eXBlIDxrZXl3b3JkPiB1bnJlc2VydmVkX2tleXdvcmQgdHlwZV9mdW5jX25hbWVfa2V5d29yZApA QCAtMTA3NjEsNiArMTA3NjMsNyBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCUNyZWF0 ZVB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3RtdCk7CiAK IAkJCQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5wdWJvYmplY3RzID0gJDU7CiAJCQkJCXBy ZXByb2Nlc3NfcHViX2FsbF9vYmp0eXBlX2xpc3QoJDUsICZuLT5mb3JfYWxsX3RhYmxlcywKIAkJ CQkJCQkJCQkJCQkmbi0+Zm9yX2FsbF9zZXF1ZW5jZXMsCiAJCQkJCQkJCQkJCQkJeXlzY2FubmVy KTsKQEAgLTEwODAxLDYgKzEwODA0LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+ cHVidGFibGUtPnJlbGF0aW9uID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQz OwogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5sb2NhdGlv biA9IEAxOwogCQkJCX0KIAkJCXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCiAJCQkJewpAQCAt MTA4NzcsMTAgKzEwODgxLDEzIEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpTcGVjCiAJ OwogCiBQdWJsaWNhdGlvbkFsbE9ialNwZWM6Ci0JCQkJQUxMIFRBQkxFUworCQkJCUFMTCBUQUJM RVMgb3B0X2V4Y2VwdF9jbGF1c2UKIAkJCQkJewogCQkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNh dGlvbkFsbE9ialNwZWMpOwogCQkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTl9BTExf VEFCTEVTOworCQkJCQkJJCQtPmV4Y2VwdF9vYmplY3RzID0gKExpc3QgKikgJDM7CisJCQkJCQlp ZigkJC0+ZXhjZXB0X29iamVjdHMgIT0gTlVMTCkKKwkJCQkJCQlwcmVwcm9jZXNzX3B1Ym9ial9s aXN0KCQkLT5leGNlcHRfb2JqZWN0cywgeXlzY2FubmVyKTsKIAkJCQkJCSQkLT5sb2NhdGlvbiA9 IEAxOwogCQkJCQl9CiAJCQkJfCBBTEwgU0VRVUVOQ0VTCkBAIC0xMDg5Nyw2ICsxMDkwNCwyOCBA QCBwdWJfYWxsX29ial90eXBlX2xpc3Q6CVB1YmxpY2F0aW9uQWxsT2JqU3BlYwogCQkJCQl7ICQk ID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJOwogCitvcHRfZXhjZXB0X2NsYXVzZToKKwkJCUVYQ0VQ VCBvcHRfdGFibGUgJygnIGV4Y2VwdF9wdWJfb2JqX2xpc3QgJyknCXsgJCQgPSAkNDsgfQorCQkJ fCAvKkVNUFRZKi8JCQkJCQkJCQkJeyAkJCA9IE5JTDsgfQorCQk7CisKK0V4Y2VwdFB1YmxpY2F0 aW9uT2JqU3BlYzoKKwkJCSByZWxhdGlvbl9leHByCisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2Rl KFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05P QkpfRVhDRVBUX1RBQkxFOworCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlv blRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSB0cnVlOworCQkJCQkkJC0+cHVi dGFibGUtPnJlbGF0aW9uID0gJDE7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOworCQkJCX0KKwk7 CisKK2V4Y2VwdF9wdWJfb2JqX2xpc3Q6IEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7 ICQkID0gbGlzdF9tYWtlMSgkMSk7IH0KKwkJCXwgZXhjZXB0X3B1Yl9vYmpfbGlzdCAnLCcgRXhj ZXB0UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwk7 CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAgLTEwOTEzLDcgKzEwOTQyLDcgQEAgcHVi X2FsbF9vYmpfdHlwZV9saXN0OglQdWJsaWNhdGlvbkFsbE9ialNwZWMKICAqCQlUQUJMRSB0YWJs ZV9uYW1lIFssIC4uLl0KICAqCQlUQUJMRVMgSU4gU0NIRU1BIHNjaGVtYV9uYW1lIFssIC4uLl0K ICAqCi0gKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERCBBTEwgVEFCTEVTCisgKiBBTFRFUiBQ VUJMSUNBVElPTiBuYW1lIEFERCBBTEwgVEFCTEVTIFtFWENFUFQgW1RBQkxFXSAodGFibGVfbmFt ZSBbLCAuLi5dKV0KICAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFJFU0VUCiAgKgpAQCAt MTA5NTgsMTAgKzEwOTg3LDExIEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5hY3Rp b24gPSBBUF9Ecm9wT2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwg QUxURVIgUFVCTElDQVRJT04gbmFtZSBBRERfUCBBTEwgVEFCTEVTCisJCQl8IEFMVEVSIFBVQkxJ Q0FUSU9OIG5hbWUgQUREX1AgQUxMIFRBQkxFUyBvcHRfZXhjZXB0X2NsYXVzZQogCQkJCXsKIAkJ CQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3Rt dCk7CiAJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICop ICQ3OwogCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CiAJCQkJCW4tPmFjdGlvbiA9IEFQ X0FkZE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUgKiluOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggOTQyZTFhYmRiNTguLmE5NTkzYzVkOWRhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisr KyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIwODQs NyArMjA4NCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0 aW9uIHJlbGF0aW9uKQogCWlmICghZW50cnktPnJlcGxpY2F0ZV92YWxpZCkKIAl7CiAJCU9pZAkJ CXNjaGVtYUlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpOwotCQlMaXN0CSAgICpwdWJpZHMg PSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJCUxpc3QJICAgKnB1YmlkcyA9IEdl dFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CisJCUxpc3QJICAgKmV4Y2VwdFRh YmxlUHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQsIHRydWUpOwogCiAJCS8q CiAJCSAqIFdlIGRvbid0IGFjcXVpcmUgYSBsb2NrIG9uIHRoZSBuYW1lc3BhY2Ugc3lzdGVtIHRh YmxlIGFzIHdlIGJ1aWxkCkBAIC0yMTk1LDIyICsyMTk2LDYgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5 KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCQlPaWQJCQlwdWJfcmVs aWQgPSByZWxpZDsKIAkJCWludAkJCWFuY2VzdG9yX2xldmVsID0gMDsKIAotCQkJLyoKLQkJCSAq IElmIHRoaXMgaXMgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiwgcGljayB0aGUgcGFydGl0 aW9uCi0JCQkgKiByb290IGFuZCBzZXQgdGhlIGFuY2VzdG9yIGxldmVsIGFjY29yZGluZ2x5Lgot CQkJICovCi0JCQlpZiAocHViLT5hbGx0YWJsZXMpCi0JCQl7Ci0JCQkJcHVibGlzaCA9IHRydWU7 Ci0JCQkJaWYgKHB1Yi0+cHVidmlhcm9vdCAmJiBhbV9wYXJ0aXRpb24pCi0JCQkJewotCQkJCQlM aXN0CSAgICphbmNlc3RvcnMgPSBnZXRfcGFydGl0aW9uX2FuY2VzdG9ycyhyZWxpZCk7Ci0KLQkJ CQkJcHViX3JlbGlkID0gbGxhc3Rfb2lkKGFuY2VzdG9ycyk7Ci0JCQkJCWFuY2VzdG9yX2xldmVs ID0gbGlzdF9sZW5ndGgoYW5jZXN0b3JzKTsKLQkJCQl9Ci0JCQl9Ci0KIAkJCWlmICghcHVibGlz aCkKIAkJCXsKIAkJCQlib29sCQlhbmNlc3Rvcl9wdWJsaXNoZWQgPSBmYWxzZTsKQEAgLTIyMjks NyArMjIxNCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0 aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJs aWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJCSAgIGFuY2VzdG9ycywKLQkJCQkJCQkJ CQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJCQkgICAmbGV2ZWwsCisJCQkJCQkJCQkJ CQkJCQkgICBwdWItPmFsbHRhYmxlcyk7CiAKIAkJCQkJaWYgKGFuY2VzdG9yICE9IEludmFsaWRP aWQpCiAJCQkJCXsKQEAgLTIyNDQsNiArMjIzMCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJaWYgKGxpc3RfbWVtYmVy X29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAogCQkJCQlsaXN0X21lbWJlcl9vaWQoc2NoZW1hUHVi aWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKHB1Yi0+YWxsdGFibGVzICYmCisJCQkJCSAhbGlzdF9t ZW1iZXJfb2lkKGV4Y2VwdFRhYmxlUHViaWRzLCBwdWItPm9pZCkpIHx8CiAJCQkJCWFuY2VzdG9y X3B1Ymxpc2hlZCkKIAkJCQkJcHVibGlzaCA9IHRydWU7CiAJCQl9CkBAIC0yMzIyLDYgKzIzMTAs NyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxh dGlvbikKIAogCQlsaXN0X2ZyZWUocHViaWRzKTsKIAkJbGlzdF9mcmVlKHNjaGVtYVB1Ymlkcyk7 CisJCWxpc3RfZnJlZShleGNlcHRUYWJsZVB1Ymlkcyk7CiAJCWxpc3RfZnJlZShyZWxfcHVibGlj YXRpb25zKTsKIAogCQllbnRyeS0+cmVwbGljYXRlX3ZhbGlkID0gdHJ1ZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9yZWxjYWNoZS5jCmluZGV4IDkxNWQwYmM5MDg0Li45NmRkMGNjZjQxYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9yZWxjYWNoZS5jCkBAIC01Nzk0LDYgKzU3OTQsOCBAQCB2b2lkCiBSZWxhdGlv bkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2Mg KnB1YmRlc2MpCiB7CiAJTGlzdAkgICAqcHVib2lkczsKKwlMaXN0CSAgICphbGx0YWJsZXNwdWJv aWRzOworCUxpc3QJICAgKmV4Y2VwdHB1Ym9pZHMgPSBOSUw7CiAJTGlzdENlbGwgICAqbGM7CiAJ TWVtb3J5Q29udGV4dCBvbGRjeHQ7CiAJT2lkCQkJc2NoZW1haWQ7CkBAIC01ODMxLDkgKzU4MzMs MTAgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVi bGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2MtPmdlbmNvbHNfdmFsaWRfZm9yX2RlbGV0 ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZvLiAq LwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJcHVib2lkcyA9 IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CiAJc2NoZW1haWQgPSBSZWxh dGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1 ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlkKSk7CisJZXhjZXB0 cHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCB0cnVlKTsKIAogCWlmIChy ZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CkBAIC01ODQ1LDE0ICs1ODQ4LDE5 IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxp Y2F0aW9uRGVzYyAqcHViZGVzYykKIAkJCU9pZAkJCWFuY2VzdG9yID0gbGZpcnN0X29pZChsYyk7 CiAKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCi0JCQkJCQkJ CQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvcikpOworCQkJCQkJCQkJCQkgR2V0 UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIGZhbHNlKSk7CiAJCQlzY2hlbWFpZCA9IGdl dF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKTsKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlx dWVfb2lkKHB1Ym9pZHMsCiAJCQkJCQkJCQkJCSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1h aWQpKTsKKwkJCWV4Y2VwdHB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKGV4Y2VwdHB1 Ym9pZHMsCisJCQkJCQkJCQkJCQkgICBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvciwg dHJ1ZSkpOwogCQl9CiAJfQotCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9p ZHMsIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpKTsKIAorCWFsbHRhYmxlc3B1Ym9pZHMgPSBH ZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKTsKKwlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVl X29pZChwdWJvaWRzLAorCQkJCQkJCQkJIGxpc3RfZGlmZmVyZW5jZV9vaWQoYWxsdGFibGVzcHVi b2lkcywKKwkJCQkJCQkJCQkJCQkJIGV4Y2VwdHB1Ym9pZHMpKTsKIAlmb3JlYWNoKGxjLCBwdWJv aWRzKQogCXsKIAkJT2lkCQkJcHViaWQgPSBsZmlyc3Rfb2lkKGxjKTsKQEAgLTU4ODMsNyArNTg5 MSw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1 YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJaWYgKCFwdWJmb3JtLT5wdWJhbGx0YWJsZXMgJiYK IAkJCShwdWJmb3JtLT5wdWJ1cGRhdGUgfHwgcHViZm9ybS0+cHViZGVsZXRlKSAmJgogCQkJcHVi X3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKHB1YmlkLCByZWxhdGlvbiwgYW5jZXN0b3JzLAot CQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3QpKQorCQkJCQkJCQkJCSAgIHB1YmZvcm0t PnB1YnZpYXJvb3QsIHB1YmZvcm0tPnB1YmFsbHRhYmxlcykpCiAJCXsKIAkJCWlmIChwdWJmb3Jt LT5wdWJ1cGRhdGUpCiAJCQkJcHViZGVzYy0+cmZfdmFsaWRfZm9yX3VwZGF0ZSA9IGZhbHNlOwpA QCAtNTkwMSw2ICs1OTA5LDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlv biByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQkJcHViX2NvbnRhaW5zX2lu dmFsaWRfY29sdW1uKHB1YmlkLCByZWxhdGlvbiwgYW5jZXN0b3JzLAogCQkJCQkJCQkJCXB1YmZv cm0tPnB1YnZpYXJvb3QsCiAJCQkJCQkJCQkJcHViZm9ybS0+cHViZ2VuY29scywKKwkJCQkJCQkJ CQlwdWJmb3JtLT5wdWJhbGx0YWJsZXMsCiAJCQkJCQkJCQkJJmludmFsaWRfY29sdW1uX2xpc3Qs CiAJCQkJCQkJCQkJJmludmFsaWRfZ2VuX2NvbCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGEwMDkx OGJhY2I0Li5lMzRhYWJhNzkzNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xODYsNiArMTg2LDggQEAgc3Rh dGljIFNpbXBsZU9pZExpc3QgZXh0ZW5zaW9uX2luY2x1ZGVfb2lkcyA9IHtOVUxMLCBOVUxMfTsK IHN0YXRpYyBTaW1wbGVTdHJpbmdMaXN0IGV4dGVuc2lvbl9leGNsdWRlX3BhdHRlcm5zID0ge05V TEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZU9pZExpc3QgZXh0ZW5zaW9uX2V4Y2x1ZGVfb2lkcyA9 IHtOVUxMLCBOVUxMfTsKIAorc3RhdGljIFNpbXBsZVB0ckxpc3QgZXhjZXB0aW5mbyA9IHtOVUxM LCBOVUxMfTsKKwogc3RhdGljIGNvbnN0IENhdGFsb2dJZCBuaWxDYXRhbG9nSWQgPSB7MCwgMH07 CiAKIC8qIG92ZXJyaWRlIGZvciBzdGFuZGFyZCBleHRyYV9mbG9hdF9kaWdpdHMgc2V0dGluZyAq LwpAQCAtNDY2Miw3ICs0NjY0LDM0IEBAIGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBj b25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pCiAJaWYgKHB1YmluZm8tPnB1YmFsbHRhYmxl cyAmJiBwdWJpbmZvLT5wdWJhbGxzZXF1ZW5jZXMpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1 ZXJ5LCAiIEZPUiBBTEwgVEFCTEVTLCBBTEwgU0VRVUVOQ0VTIik7CiAJZWxzZSBpZiAocHViaW5m by0+cHViYWxsdGFibGVzKQorCXsKKwkJU2ltcGxlUHRyTGlzdENlbGwgKmNlbGw7CisKIAkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKKworCQkvKiBJbmNs dWRlIGV4Y2VwdGlvbiB0YWJsZXMgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVz ICovCisJCWZvciAoY2VsbCA9IGV4Y2VwdGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5l eHQpCisJCXsKKwkJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25S ZWxJbmZvICopIGNlbGwtPnB0cjsKKwkJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1 YmluZm8gPT0gcHVicmluZm8tPnB1YmxpY2F0aW9uKQorCQkJeworCQkJCXRiaW5mbyA9IHB1YnJp bmZvLT5wdWJ0YWJsZTsKKworCQkJCWlmIChmaXJzdCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhw QnVmZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCBUQUJMRSAoIik7CisJCQkJCWZpcnN0ID0gZmFsc2U7 CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsICIp OworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiT05MWSAlcyIsIGZtdFF1YWxpZmllZER1 bXBhYmxlKHRiaW5mbykpOworCQkJfQorCQl9CisJCWlmICghZmlyc3QpCisJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIikiKTsKKwl9CiAJZWxzZSBpZiAocHViaW5mby0+cHViYWxsc2Vx dWVuY2VzKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBGT1IgQUxMIFNFUVVFTkNF UyIpOwogCkBAIC00ODMxLDYgKzQ4NjAsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZl ICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCWludAkJCWlfcHJy ZWxpZDsKIAlpbnQJCQlpX3BycmVscXVhbDsKIAlpbnQJCQlpX3ByYXR0cnM7CisJaW50CQkJaV9w cmV4Y2VwdDsKIAlpbnQJCQlpLAogCQkJCWosCiAJCQkJbnR1cHM7CkBAIC00ODQyLDggKzQ4NzIs MTYgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGlu Zm9bXSwgaW50IG51bVRhYmxlcykKIAogCS8qIENvbGxlY3QgYWxsIHB1YmxpY2F0aW9uIG1lbWJl cnNoaXAgaW5mby4gKi8KIAlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNTAwMDApCisJewor CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwg b2lkLCBwcnB1YmlkLCBwcnJlbGlkLFxuIik7CisKKwkJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24g Pj0gMTkwMDAwKQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgcHJleGNlcHQsXG4i KTsKKwkJZWxzZQorCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgZmFsc2UgQVMgcHJl eGNlcHQsXG4iKTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKLQkJCQkJCQkgIlNF TEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCAiCiAJCQkJCQkJICJwZ19jYXRh bG9nLnBnX2dldF9leHByKHBycXVhbCwgcHJyZWxpZCkgQVMgcHJyZWxxdWFsLCAiCiAJCQkJCQkJ ICIoQ0FTRVxuIgogCQkJCQkJCSAiICBXSEVOIHByLnByYXR0cnMgSVMgTk9UIE5VTEwgVEhFTlxu IgpAQCAtNDg1NCw2ICs0ODkyLDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCQkJCQkgIiAgICAgIFdI RVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRyc1tzXSlcbiIKIAkJ CQkJCQkgIiAgRUxTRSBOVUxMIEVORCkgcHJhdHRycyAiCiAJCQkJCQkJICJGUk9NIHBnX2NhdGFs b2cucGdfcHVibGljYXRpb25fcmVsIHByIik7CisJfQogCWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocXVlcnksCiAJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJy ZWxpZCwgIgpAQCAtNDg2OSw2ICs0OTA4LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlpX3BycmVsaWQg PSBQUWZudW1iZXIocmVzLCAicHJyZWxpZCIpOwogCWlfcHJyZWxxdWFsID0gUFFmbnVtYmVyKHJl cywgInBycmVscXVhbCIpOwogCWlfcHJhdHRycyA9IFBRZm51bWJlcihyZXMsICJwcmF0dHJzIik7 CisJaV9wcmV4Y2VwdCA9IFBRZm51bWJlcihyZXMsICJwcmV4Y2VwdCIpOwogCiAJLyogdGhpcyBh bGxvY2F0aW9uIG1heSBiZSBtb3JlIHRoYW4gd2UgbmVlZCAqLwogCXB1YnJpbmZvID0gcGdfbWFs bG9jKG50dXBzICogc2l6ZW9mKFB1YmxpY2F0aW9uUmVsSW5mbykpOwpAQCAtNDg4MCw2ICs0OTIw LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGlu Zm9bXSwgaW50IG51bVRhYmxlcykKIAkJT2lkCQkJcHJyZWxpZCA9IGF0b29pZChQUWdldHZhbHVl KHJlcywgaSwgaV9wcnJlbGlkKSk7CiAJCVB1YmxpY2F0aW9uSW5mbyAqcHViaW5mbzsKIAkJVGFi bGVJbmZvICAqdGJpbmZvOworCQljaGFyCSAgICpwcmV4Y2VwdCA9IHBnX3N0cmR1cChQUWdldHZh bHVlKHJlcywgaSwgaV9wcmV4Y2VwdCkpOwogCiAJCS8qCiAJCSAqIElnbm9yZSBhbnkgZW50cmll cyBmb3Igd2hpY2ggd2UgYXJlbid0IGludGVyZXN0ZWQgaW4gZWl0aGVyIHRoZQpAQCAtNDg5Myw3 ICs0OTM0LDExIEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5m byB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQljb250aW51ZTsKIAogCQkvKiBPSywgbWFr ZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0aW9uc2hpcCAqLwotCQlwdWJyaW5mb1tq XS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7CisJCWlmIChzdHJjbXAocHJleGNl cHQsICJmIikgPT0gMCkKKwkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FU SU9OX1JFTDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElD QVRJT05fRVhDRVBUX1JFTDsKKwogCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLnRhYmxlb2lkID0K IAkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOwogCQlwdWJyaW5mb1tq XS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKQEAg LTQ5MzQsNiArNDk3OSw5IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRh YmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCS8qIERlY2lkZSB3aGV0aGVyIHdl IHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZVB1YmxpY2F0aW9uT2JqZWN0KCYo cHVicmluZm9bal0uZG9iaiksIGZvdXQpOwogCisJCWlmIChzdHJjbXAocHJleGNlcHQsICJ0Iikg PT0gMCkKKwkJCXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQoJmV4Y2VwdGluZm8sICZwdWJyaW5mb1tq XSk7CisKIAkJaisrOwogCX0KIApAQCAtMTE4MTIsNiArMTE4NjAsOSBAQCBkdW1wRHVtcGFibGVP YmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fUFVC TElDQVRJT046CiAJCQlkdW1wUHVibGljYXRpb24oZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uSW5m byAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6 CisJCQkvKiB3aWxsIGJlIGR1bXBlZCBpbiBkdW1wUHVibGljYXRpb24gKi8KKwkJCWJyZWFrOwog CQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWR1bXBQdWJsaWNhdGlvblRhYmxlKGZvdXQs IChjb25zdCBQdWJsaWNhdGlvblJlbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKQEAgLTIwMTgy LDYgKzIwMjMzLDcgQEAgYWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipk b2JqcywgaW50IG51bU9ianMsCiAJCQljYXNlIERPX0RFRkFVTFRfQUNMOgogCQkJY2FzZSBET19Q T0xJQ1k6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OOgorCQkJY2FzZSBET19QVUJMSUNBVElPTl9F WENFUFRfUkVMOgogCQkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6CiAJCQljYXNlIERPX1BVQkxJ Q0FUSU9OX1RBQkxFX0lOX1NDSEVNQToKIAkJCWNhc2UgRE9fU1VCU0NSSVBUSU9OOgpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKaW5kZXggNzJhMDBlMWJjMjAuLjcyM2I1NTc1YzUzIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTgxLDYg KzgxLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9fUkVGUkVTSF9NQVRWSUVXLAogCURPX1BPTElDWSwK IAlET19QVUJMSUNBVElPTiwKKwlET19QVUJMSUNBVElPTl9FWENFUFRfUkVMLAogCURPX1BVQkxJ Q0FUSU9OX1JFTCwKIAlET19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEsCiAJRE9fUkVMX1NU QVRTLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDE2NGM3NmUwODY0Li5mM2MzMGYzYmUzNyAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtOTIsNiArOTIsNyBAQCBlbnVtIGRiT2JqZWN0VHlw ZVByaW9yaXRpZXMKIAlQUklPX0ZLX0NPTlNUUkFJTlQsCiAJUFJJT19QT0xJQ1ksCiAJUFJJT19Q VUJMSUNBVElPTiwKKwlQUklPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJUFJJT19QVUJMSUNB VElPTl9SRUwsCiAJUFJJT19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEsCiAJUFJJT19TVUJT Q1JJUFRJT04sCkBAIC0xNDcsNiArMTQ4LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5 cGVQcmlvcml0eVtdID0KIAlbRE9fUkVGUkVTSF9NQVRWSUVXXSA9IFBSSU9fUkVGUkVTSF9NQVRW SUVXLAogCVtET19QT0xJQ1ldID0gUFJJT19QT0xJQ1ksCiAJW0RPX1BVQkxJQ0FUSU9OXSA9IFBS SU9fUFVCTElDQVRJT04sCisJW0RPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUxdID0gUFJJT19QVUJM SUNBVElPTl9FWENFUFRfUkVMLAogCVtET19QVUJMSUNBVElPTl9SRUxdID0gUFJJT19QVUJMSUNB VElPTl9SRUwsCiAJW0RPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQV0gPSBQUklPX1BVQkxJ Q0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlbRE9fUkVMX1NUQVRTXSA9IFBSSU9fU1RBVElTVElD U19EQVRBX0RBVEEsCkBAIC00NDMsNiArNDQ1LDE3IEBAIERPVHlwZU5hbWVDb21wYXJlKGNvbnN0 IHZvaWQgKnAxLCBjb25zdCB2b2lkICpwMikKIAkJaWYgKGNtcHZhbCAhPSAwKQogCQkJcmV0dXJu IGNtcHZhbDsKIAl9CisJZWxzZSBpZiAob2JqMS0+b2JqVHlwZSA9PSBET19QVUJMSUNBVElPTl9F WENFUFRfUkVMKQorCXsKKwkJUHVibGljYXRpb25SZWxJbmZvICpwcm9iajEgPSAqKFB1YmxpY2F0 aW9uUmVsSW5mbyAqY29uc3QgKikgcDE7CisJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHJvYmoyID0g KihQdWJsaWNhdGlvblJlbEluZm8gKmNvbnN0ICopIHAyOworCisJCS8qIFNvcnQgYnkgcHVibGlj YXRpb24gbmFtZSwgc2luY2UgKG5hbWVzcGFjZSwgbmFtZSkgbWF0Y2ggdGhlIHJlbCAqLworCQlj bXB2YWwgPSBzdHJjbXAocHJvYmoxLT5wdWJsaWNhdGlvbi0+ZG9iai5uYW1lLAorCQkJCQkJcHJv YmoyLT5wdWJsaWNhdGlvbi0+ZG9iai5uYW1lKTsKKwkJaWYgKGNtcHZhbCAhPSAwKQorCQkJcmV0 dXJuIGNtcHZhbDsKKwl9CiAJZWxzZSBpZiAob2JqMS0+b2JqVHlwZSA9PSBET19QVUJMSUNBVElP Tl9UQUJMRV9JTl9TQ0hFTUEpCiAJewogCQlQdWJsaWNhdGlvblNjaGVtYUluZm8gKnBzb2JqMSA9 ICooUHVibGljYXRpb25TY2hlbWFJbmZvICpjb25zdCAqKSBwMTsKQEAgLTE3MTUsNiArMTcyOCwx MSBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1 ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiUFVCTElDQVRJT04gKElEICVkIE9JRCAldSkiLAogCQkJ CQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19Q VUJMSUNBVElPTl9FWENFUFRfUkVMOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkg IlBVQkxJQ0FUSU9OIEVYQ0VQVCBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1 bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERPX1BVQkxJQ0FUSU9O X1JFTDoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKIAkJCQkJICJQVUJMSUNBVElPTiBUQUJM RSAoSUQgJWQgT0lEICV1KSIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDQ0NWE1NDFh YmY2Li5iYmZhZWFiYjg5MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTMxNzAsNiAr MzE3MCwyNiBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9u X3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjgnID0+ IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQ VUJMSUNBVElPTiBwdWI4IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCAoZHVtcF90ZXN0LnRlc3RfdGFi bGUpOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWI4IEZP UiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoT05MWSBkdW1wX3Rlc3QudGVzdF90YWJsZSkgV0lU SCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkv eG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAor CX0sCisKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjknID0+IHsKKwkJY3JlYXRlX29yZGVyID0+ IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI5IEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoZHVtcF90ZXN0LnRlc3RfdGFibGUsIGR1bXBfdGVzdC50 ZXN0X3NlY29uZF90YWJsZSk7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJ Q0FUSU9OIHB1YjkgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIGR1bXBfdGVzdC50 ZXN0X3RhYmxlLCBPTkxZIGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSkgV0lUSCAocHVibGlz aCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkveG0sCisJCWxp a2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKIAkn Q1JFQVRFIFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJ Y3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxCmRpZmYgLS1naXQgYS9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM2ZjI0 NTAyODQyLi41MGIxZDQzNTM1OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK KysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTMwNzMsMTcgKzMwNzMsMzQgQEAgZGVz Y3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJICAi ICAgICAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRy c1tzXSlcbiIKIAkJCQkJCQkJICAiICAgICAgICBFTFNFIE5VTEwgRU5EKSAiCiAJCQkJCQkJCSAg IkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9J TiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRc biIKLQkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9 IHByLnBycmVsaWRcbiIKLQkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIKKwkJ CQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lk ID0gcHIucHJwdWJpZFxuIgorCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBj IE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0g JyVzJ1xuIiwKKwkJCQkJCQkJICBvaWQsIG9pZCwgb2lkKTsKKworCQkJCWlmIChwc2V0LnN2ZXJz aW9uID49IDE5MDAwMCkKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiBBTkQgTk9U IHByLnByZXhjZXB0XG4iKTsKKworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJ CSAgIlVOSU9OXG4iCiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCi0JCQkJCQkJCSAgIiAg ICAgLCBOVUxMXG4iCi0JCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBO VUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFO RCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCi0JCQkJCQkJ CSAgIk9SREVSIEJZIDE7IiwKLQkJCQkJCQkJICBvaWQsIG9pZCwgb2lkLCBvaWQpOworCQkJCQkJ CQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19w dWJsaXNoYWJsZSgnJXMnKVxuIiwKKwkJCQkJCQkJICBvaWQpOworCisJCQkJaWYgKHBzZXQuc3Zl cnNpb24gPj0gMTkwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkJ ICAiICAgICBBTkQgTk9UIEVYSVNUUyAoXG4iCisJCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCisJ CQkJCQkJCQkgICIJCUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKKwkJ CQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCQkgICIJ CU9OIHByLnBycmVsaWQgPSBwYy5vaWRcbiIKKwkJCQkJCQkJCSAgIgkJV0hFUkUgcHIucHJyZWxp ZCA9ICclcycgQU5EIHByLnBycHViaWQgPSBwLm9pZClcbiIsCisJCQkJCQkJCQkgIG9pZCk7CisK KwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKIAkJCX0KIAkJ CWVsc2UKIAkJCXsKQEAgLTY3NTMsOCArNjc3MCwxMiBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhj b25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkJCSAgIiAgICAgcGdfY2F0YWxvZy5wZ19wdWJsaWNh dGlvbl9yZWwgcHJcbiIKIAkJCQkJCQkgICJXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkXG4i CiAJCQkJCQkJICAiICBBTkQgYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJICAiICBBTkQg cHIucHJwdWJpZCA9ICclcydcbiIKLQkJCQkJCQkgICJPUkRFUiBCWSAxLDIiLCBwdWJpZCk7CisJ CQkJCQkJICAiICBBTkQgcHIucHJwdWJpZCA9ICclcydcbiIsIHB1YmlkKTsKKworCQkJaWYgKHBz ZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFO RCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JE RVIgQlkgMSwyIik7CiAJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8o IlRhYmxlczoiKSwgZmFsc2UsICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsKIApAQCAt Njc3Miw2ICs2NzkzLDIzIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRl cm4pCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVsc2UKKwkJeworCQkJ aWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJeworCQkJCS8qIEdldCB0aGUgZXhjbHVk ZWQgdGFibGVzIGZvciB0aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQkJcHJpbnRmUFFF eHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5hbWVzcGFjZTo6 cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRh bG9nLnBnX2NsYXNzIGNcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVi bGljYXRpb25fcmVsIHByIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVS RSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkgICIgIEFORCBwci5wcmV4Y2VwdFxuIgor CQkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOworCQkJCWlmICghYWRkRm9vdGVyVG9QdWJs aWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKKwkJCQkJCQkJCQkJCXRydWUs ICZjb250KSkKKwkJCQkJZ290byBlcnJvcl9yZXR1cm47CisJCQl9CisJCX0KIAogCQlwcmludFRh YmxlKCZjb250LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CiAJCXByaW50 VGFibGVDbGVhbnVwKCZjb250KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCAwZTExYjFiYTQ0 Yy4uMzYzMzI0MzM4NmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIyOTMsMTEgKzIyOTMs MTcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJLyogQUxURVIgUFVC TElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyIs ICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIikpCisJCUNP TVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikpCiAJCUNPTVBMRVRF X1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAo TWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAi VEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRF UiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYmCiAJCQkg ZW5kc193aXRoKHByZXZfd2QsICcsJykpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1 ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQi LCAiVEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSF9T Q0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAogCS8qCiAJICogIkFMVEVS IFBVQkxJQ0FUSU9OIDxuYW1lPiBTRVQgVEFCTEUgPG5hbWU+IFdIRVJFICgiIC0gY29tcGxldGUg d2l0aApAQCAtMzYyMyw2ICszNjI5LDEwIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiRk9SIiwgIkFMTCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiLCAiU0VRVUVOQ0VT Iik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnks ICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIpKQorCQlDT01QTEVURV9XSVRIKCJFWENFUFQgVEFCTEUi LCAiV0lUSCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwg TWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiKSkKKwkJQ09NUExFVEVf V0lUSCgiVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIsIE1h dGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCiAJCUNPTVBMRVRFX1dJVEgoIldJ VEggKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVURV9XSVRIKCJJTiBTQ0hFTUEiKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAppbmRleCA3N2IwYTJmOWViOC4uMGQzOWNiNjc3 NzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTE0NiwxMSArMTQ2LDEy IEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uUmVsSW5mbwogCVJlbGF0aW9uCXJlbGF0aW9u OwogCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCUxpc3QJICAgKmNvbHVtbnM7CisJYm9vbAkJZXhj ZXB0OwogfSBQdWJsaWNhdGlvblJlbEluZm87CiAKIGV4dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVi bGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb25C eU5hbWUoY29uc3QgY2hhciAqcHVibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKLWV4dGVybiBMaXN0 ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQpOworZXh0ZXJuIExpc3QgKkdldFJl bGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNlcHRfZmxhZyk7CiAKIC8qIGRl ZmF1bHQgdmFsdWVzIGZvciBmbGFncyBhbmQgcHVibGljYXRpb24gcGFyYW1ldGVycyAqLwogI2Rl ZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUIHRydWUKQEAgLTE3OCw5ICsxNzksMTAgQEAg dHlwZWRlZiBlbnVtIFB1YmxpY2F0aW9uUGFydE9wdAogCVBVQkxJQ0FUSU9OX1BBUlRfQUxMLAog fSBQdWJsaWNhdGlvblBhcnRPcHQ7CiAKLWV4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblJlbGF0 aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCk7CitleHRlcm4g TGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRP cHQgcHViX3BhcnRvcHQsCisJCQkJCQkJCQkgYm9vbCBleGNlcHRfZmxhZyk7CiBleHRlcm4gTGlz dCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpOwotZXh0ZXJuIExpc3QgKkdldEFsbFB1 YmxpY2F0aW9uUmVsYXRpb25zKGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KTsKK2V4dGVy biBMaXN0ICpHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVsa2lu ZCwgYm9vbCBwdWJ2aWFyb290KTsKIGV4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblNjaGVtYXMo T2lkIHB1YmlkKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVt YWlkKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2No ZW1haWQsCkBAIC0xOTEsNyArMTkzLDcgQEAgZXh0ZXJuIExpc3QgKkdldFB1YlBhcnRpdGlvbk9w dGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0aW9uUGFydE9w dCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJCQkJT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJR2V0VG9w TW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCi0J CQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwpOworCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9y X2xldmVsLCBib29sIHB1YmFsbHRhYmxlcyk7CiAKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hhYmxl X3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRp b24oT2lkIHB1YmlkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGlj YXRpb25fcmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCmlu ZGV4IDkyY2MzNmRmZGY2Li5lN2Q3ZjNiYTg1YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1 YmxpY2F0aW9uX3JlbC5oCkBAIC0zMSw2ICszMSw3IEBAIENBVEFMT0cocGdfcHVibGljYXRpb25f cmVsLDYxMDYsUHVibGljYXRpb25SZWxSZWxhdGlvbklkKQogCU9pZAkJCW9pZDsJCQkvKiBvaWQg Ki8KIAlPaWQJCQlwcnB1YmlkIEJLSV9MT09LVVAocGdfcHVibGljYXRpb24pOyAvKiBPaWQgb2Yg dGhlIHB1YmxpY2F0aW9uICovCiAJT2lkCQkJcHJyZWxpZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsJ LyogT2lkIG9mIHRoZSByZWxhdGlvbiAqLworCWJvb2wJCXByZXhjZXB0IEJLSV9ERUZBVUxUKGYp OwkvKiBleGNsdWRlIHRoZSByZWxhdGlvbiAqLwogCiAjaWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkv KiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJx dWFsOwkJLyogcXVhbGlmaWNhdGlvbnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3B1YmxpY2F0aW9uY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25j bWRzLmgKaW5kZXggZjkwY2YxZWY4OTYuLjBhZDVkMjg3NTRkIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuaApAQCAtMzIsMTAgKzMyLDExIEBAIGV4dGVybiBPYmplY3RBZGRy ZXNzIEFsdGVyUHVibGljYXRpb25Pd25lcihjb25zdCBjaGFyICpuYW1lLCBPaWQgbmV3T3duZXJJ ZCk7CiBleHRlcm4gdm9pZCBBbHRlclB1YmxpY2F0aW9uT3duZXJfb2lkKE9pZCBwdWJpZCwgT2lk IG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0 ICpyZWxpZHMpOwogZXh0ZXJuIGJvb2wgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9p ZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0b3Jz LCBib29sIHB1YnZpYXJvb3QpOworCQkJCQkJCQkJCSAgIExpc3QgKmFuY2VzdG9ycywgYm9vbCBw dWJ2aWFyb290LAorCQkJCQkJCQkJCSAgIGJvb2wgcHViYWxsdGFibGVzKTsKIGV4dGVybiBib29s IHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9u LAogCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290LAotCQkJCQkJCQkJ CWNoYXIgcHViZ2VuY29sc190eXBlLAorCQkJCQkJCQkJCWNoYXIgcHViZ2VuY29sc190eXBlLCBi b29sIHB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQlib29sICppbnZhbGlkX2NvbHVtbl9saXN0LAog CQkJCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRl UHViUmVsU3luY0NhY2hlKE9pZCBwdWJpZCwgYm9vbCBwdWJhbGx0YWJsZXMpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCmluZGV4IGMyMmQ3NWU4MGEyLi5hMTRlY2VkYjI3ZiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaApAQCAtNDI3MSw2ICs0MjcxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25U YWJsZQogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVsYXRpb24gdG8gYmUgcHVibGlzaGVk ICovCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICovCiAJTGlzdAkg ICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0aW9uIHRhYmxlICov CisJYm9vbAkJZXhjZXB0OwkJCS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCiB9IFB1YmxpY2F0 aW9uVGFibGU7CiAKIC8qCkBAIC00Mjc5LDYgKzQyODAsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJs aWNhdGlvblRhYmxlCiB0eXBlZGVmIGVudW0gUHVibGljYXRpb25PYmpTcGVjVHlwZQogewogCVBV QkxJQ0FUSU9OT0JKX1RBQkxFLAkJLyogQSB0YWJsZSAqLworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQ VF9UQUJMRSwJLyogQSB0YWJsZSB0byBiZSBleGNsdWRlZCAqLwogCVBVQkxJQ0FUSU9OT0JKX1RB QkxFU19JTl9TQ0hFTUEsCS8qIEFsbCB0YWJsZXMgaW4gc2NoZW1hICovCiAJUFVCTElDQVRJT05P QkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUEsCS8qIEFsbCB0YWJsZXMgaW4gZmlyc3QgZWxlbWVudCBv ZgogCQkJCQkJCQkJCQkgKiBzZWFyY2hfcGF0aCAqLwpAQCAtNDMwNyw2ICs0MzA5LDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25BbGxPYmpTcGVjCiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlQ dWJsaWNhdGlvbkFsbE9ialR5cGUgcHVib2JqdHlwZTsJLyogdHlwZSBvZiB0aGlzIHB1YmxpY2F0 aW9uIG9iamVjdCAqLworCUxpc3QJICAgKmV4Y2VwdF9vYmplY3RzOyAvKiBMaXN0IG9mIHB1Ymxp Y2F0aW9uIG9iamVjdCB0byBiZSBleGNsdWRlZCAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyog dG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gUHVibGljYXRpb25BbGxPYmpT cGVjOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IGE5 MDdkY2JiOGY2Li4zODNlNDkyZjk5YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJs aWNhdGlvbi5vdXQKQEAgLTIxMywxMyArMjEzLDM3IEBAIE5vdC1udWxsIGNvbnN0cmFpbnRzOgog IHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAgICAgICAgIHwgbm9uZSAgICAgICAgICAg ICAgfCBmCiAoMSByb3cpCiAKK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSBGT1IgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyKTsKKy0tIHNw ZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUICh0ZXN0cHViX3Ri bDEpOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFi bGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Ymxp Yy50ZXN0cHViX3RibDEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDIiCisKK1xkUnArIHRlc3Rw dWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJs ZTEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNl cyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBj b2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25f dXNlciB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVz OgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsK LURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUs IHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOworRFJPUCBQVUJMSUNB VElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3Jz Y2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2Vw dHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiBDUkVBVEUgVEFCTEUg dGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0ZXh0 KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VS Uk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90Ymwz OwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJs MzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFC TEUgKHRlc3RwdWJfdGJsMyk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjYgRk9SIEFMTCBU QUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIHRlc3RwdWJfdGJsMyk7CiBSRVNFVCBjbGllbnRfbWlu X21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWIzCkBAIC0yMzgsOCAr MjYyLDI1IEBAIFRhYmxlczoKIFRhYmxlczoKICAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKIAor XGRScCsgdGVzdHB1YjUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1CisgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERl bGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUg ICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJs MyIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsM2EiCisKK1xkUnArIHRlc3RwdWI2CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViNgorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2Vu ZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2Vw dCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDMiCisKIERST1AgVEFCTEUgdGVzdHB1 Yl90YmwzLCB0ZXN0cHViX3RibDNhOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1 YjQ7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNCwgdGVzdHB1YjUsIHRlc3Rw dWI2OwogLS0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKIENSRUFURSBT RVFVRU5DRSByZWdyZXNzX3B1Yl9zZXEwOwogQ1JFQVRFIFNFUVVFTkNFIHB1Yl90ZXN0LnJlZ3Jl c3NfcHViX3NlcTE7CkBAIC0yMDEyLDYgKzIwNTMsNyBAQCBEUk9QIFRBQkxFIGdlbmNvbHM7CiAt LSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUCiBDUkVBVEUgU0NIRU1BIHB1 Yl9zY2gxOwogQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEgKGEgaW50KTsKK0NSRUFURSBUQUJM RSBwdWJfc2NoMS50YmwyIChhIGludCk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJP Uic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUywgQUxM IFNFUVVFTkNFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CkBAIC0yMTMxLDggKzIxNzMs MjEgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKIEVS Uk9SOiAgYWRkaW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgdGhlIHB1YmxpY2F0aW9uIHRvIGhhdmUg ZGVmYXVsdCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXIgdmFsdWVzCiBERVRBSUw6ICBBTEwgVEFCTEVT IG9yIEFMTCBTRVFVRU5DRVMgZmxhZyBzaG91bGQgbm90IGJlIHNldCBhbmQgbm8gdGFibGVzL3Nj aGVtYXMgc2hvdWxkIGJlIGFzc29jaWF0ZWQuCiBISU5UOiAgVXNlIEFMVEVSIFBVQkxJQ0FUSU9O IC4uLiBSRVNFVCB0byByZXNldCB0aGUgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CistLSBWZXJpZnkgYWRkaW5nIEVYQ0VQVCBUQUJMRQorQUxURVIg UFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHB1 Yl9zY2gxLnRibDEsIHB1Yl9zY2gxLnRibDIpOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24g dGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBB bGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg R2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4 Y2VwdCB0YWJsZXM6CisgICAgInB1Yl9zY2gxLnRibDEiCisgICAgInB1Yl9zY2gxLnRibDIiCisK IERST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJs MTsKK0RST1AgVEFCTEUgcHViX3NjaDEudGJsMjsKIERST1AgU0NIRU1BIHB1Yl9zY2gxOwogUkVT RVQgY2xpZW50X21pbl9tZXNzYWdlczsKIC0tIFRlc3QgdGhhdCB0aGUgSU5TRVJUIE9OIENPTkZM SUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElERU5USVRZCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggYjczODAxOTMyYzMuLjFiYzFiODQxODJiIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMDUsMjAgKzEwNSwzMyBAQCBTRUxF Q1QgcHVibmFtZSwgcHViYWxsdGFibGVzIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFt ZSA9ICd0ZXN0cHViX2ZvcmFsbAogXGQrIHRlc3RwdWJfdGJsMgogXGRScCsgdGVzdHB1Yl9mb3Jh bGx0YWJsZXMKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIEZPUiBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRSAodGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDIpOworLS0gc3BlY2lmeSBF WENFUFQgd2l0aG91dCBUQUJMRQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFi bGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHRlc3RwdWJfdGJsMSk7CitS RVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworCitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19l eGNlcHR0YWJsZQorXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisKIERS T1AgVEFCTEUgdGVzdHB1Yl90YmwyOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRh YmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3Ri bF9zY2hlbWE7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHVi X2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYSwgdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2Vw dHRhYmxlMTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQpOwogQ1JFQVRFIFRB QkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJfdGJsMyk7CiBTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNCBG T1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjUg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0ZXN0cHViX3RibDMpOworQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoT05MWSB0ZXN0cHVi X3RibDMpOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIzCiBcZFJw KyB0ZXN0cHViNAorXGRScCsgdGVzdHB1YjUKK1xkUnArIHRlc3RwdWI2CiAKIERST1AgVEFCTEUg dGVzdHB1Yl90YmwzLCB0ZXN0cHViX3RibDNhOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywg dGVzdHB1YjQ7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNCwgdGVzdHB1YjUs IHRlc3RwdWI2OwogCiAtLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUwog Q1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTA7CkBAIC0xMjcxLDYgKzEyODQsNyBAQCBE Uk9QIFRBQkxFIGdlbmNvbHM7CiAtLSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJF U0VUCiBDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOwogQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEg KGEgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwyIChhIGludCk7CiBTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXM7CkBAIC0xMzQ0LDkgKzEzNTgsMTUgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBBREQgQUxMIFRBQkxFUzsKIAogLS0gQ2FuJ3QgYWRkIEFMTCBUQUJMRVMgdG8gJ0FMTCBUQUJM RVMnIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwg VEFCTEVTOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKKworLS0gVmVy aWZ5IGFkZGluZyBFWENFUFQgVEFCTEUKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg QUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChwdWJfc2NoMS50YmwxLCBwdWJfc2NoMS50Ymwy KTsKK1xkUnArIHRlc3RwdWJfcmVzZXQKIAogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwog RFJPUCBTQ0hFTUEgcHViX3NjaDE7CiAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQKaW5kZXggODVkMTBhODk5OTQuLmI4ZTVjNTRjMzE0IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCkBAIC00Niw2ICs0Niw3IEBAIHRlc3RzICs9IHsKICAg ICAgICd0LzAzNF90ZW1wb3JhbC5wbCcsCiAgICAgICAndC8wMzVfY29uZmxpY3RzLnBsJywKICAg ICAgICd0LzAzNl9zZXF1ZW5jZXMucGwnLAorICAgICAgJ3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2Vw dF90YWJsZS5wbCcsCiAgICAgICAndC8xMDBfYnVncy5wbCcsCiAgICAgXSwKICAgfSwKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFi bGUucGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNfZXhjZXB0X3Rh YmxlLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wOTZlMDYwNjM2 NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBfY2hh bmdlc19leGNlcHRfdGFibGUucGwKQEAgLTAsMCArMSwxODYgQEAKKworIyBDb3B5cmlnaHQgKGMp IDIwMjEtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dp Y2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ug c3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFs aXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0 OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93 c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMg Q3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFy dDsKKworIyBUZXN0IHJlcGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFCisjIGNsYXVzZS4KKyMgQ3JlYXRlIHNjaGVtYXMg YW5kIHRhYmxlcyBvbiBwdWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdw b3N0Z3JlcycsIHFxKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50 YWIxIEFTIFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgQVMgYTsKKwlDUkVBVEUgVEFCTEUg cHVibGljLnRhYjEoYSBpbnQpOworKSk7CisKKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBv biBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywg cXEoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBUQUJMRSBzY2gxLnRhYjEgKGEgaW50 KTsKKwlDUkVBVEUgVEFCTEUgcHVibGljLnRhYjEgKGEgaW50KTsKKykpOworCisjIFNldHVwIGxv Z2ljYWwgcmVwbGljYXRpb24KK215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hl ci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHNjaDEudGFiMSkiCispOworCiskbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3Vi X3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9w dWJfc2NoZW1hIgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNo Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJs aXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyMgQ2hlY2sgdGhlIHRhYmxlIGRhdGEgZG9l cyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFibGUKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1h eChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwKKwknY2hlY2sgdGhl cmUgaXMgbm8gaW5pdGlhbCBkYXRhIGNvcGllZCBmb3IgdGhlIGV4Y2x1ZGVkIHRhYmxlJyk7CisK KyMgSW5zZXJ0IHNvbWUgZGF0YSBhbmQgdmVyaWZ5IHRoYXQgaW5zZXJ0ZWQgZGF0YSBpcyBub3Qg cmVwbGljYXRlZAorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5T RVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMTEsMjApKSIpOworCisk bm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNU IGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwg cXEoMHx8KSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CisKKyMg QWx0ZXIgcHVibGljYXRpb24gdG8gZXhjbHVkZSBkYXRhIGNoYW5nZXMgaW4gcHVibGljLnRhYjEg YW5kIHZlcmlmeSB0aGF0CisjIHN1YnNjcmliZXIgZG9lcyBub3QgZ2V0IHRoZSBjaGFuZ2VkIGRh dGEgZm9yIHRoaXMgdGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdy ZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBSRVNFVDsKKwlBTFRF UiBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg KHNjaDEudGFiMSwgcHVibGljLnRhYjEpOworCUlOU0VSVCBJTlRPIHB1YmxpYy50YWIxIFZBTFVF UyhnZW5lcmF0ZV9zZXJpZXMoMSwxMCkpOworKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ3RhcF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChh KSBGUk9NIHB1YmxpYy50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgcm93cyBv biBzdWJzY3JpYmVyIGNhdGNodXAnKTsKKworIyBjbGVhbnVwCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSIpOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElP TiB0YXBfc3ViX3NjaGVtYSIpOworCisKKyMgQ2hlY2sgYmVoYXZpb3VyIG9mIHB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290IGFuZCBFWENFUFQgY2xhdXNlIHdpdGgKKyMgcGFydGl0aW9uZWQgdGFi bGUgb3IgcGFydGlpdGlvbnMgb2YgcGFydGl0aW9uZWQgdGFibGUuCiskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgVEFCTEUgc2NoMS50MShhIGlu dCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcnQxIFBBUlRJ VElPTiBPRiBzY2gxLnQxIEZPUiBWQUxVRVMgRlJPTSAoMCkgVE8gKDUpOworCUlOU0VSVCBJTlRP IHNjaDEudDEgVkFMVUVTICgxKTsKKykpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo CisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFRBQkxFIHNjaDEudDEoYSBpbnQpOworCUNSRUFU RSBUQUJMRSBzY2gxLnBhcnQxKGEgaW50KTsKKykpOworCisjIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290ID0gZmFsc2UgYW5kIEVYQ0VQVCBzY2gxLnBhcnQxCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZP UiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoc2NoMS5wYXJ0MSkiKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJf cGFydCBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJf cGFydCIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygk bm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMikiKTsKKyRub2Rl X3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7CisKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00g c2NoMS50MSIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9uZWQg dGFibGUnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnBhcnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hl Y2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qg PSBmYWxzZSBhbmQgRVhDRVBUIHNjaDEudDEKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAor CSdwb3N0Z3JlcycsIHFxKAorCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBSRVNFVDsK KwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIChz Y2gxLnQxKTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX3BhcnQgUkVGUkVTSCBQVUJMSUNBVElPTiIpOwor JG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlz aGVyLCAndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDMpIik7Ciskbm9kZV9wdWJsaXNoZXIt PndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudDEiKTsK K2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbmVkIHRhYmxlJyk7CisK KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCAqIEZST00gc2NoMS5wYXJ0MSIpOworaXMoICRyZXN1bHQsIHFxKDEKKzIKKzMpLCAnY2hlY2sg cm93cyBvbiBwYXJ0aXRpb25zJyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiVFJVTkNBVEUgc2NoMS50MSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRj aHVwKCd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0Iik7Ciskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQ7Iik7 CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlIGFuZCBFWENFUFQgc2NoMS50 MQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRF IFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHNj aDEudDEpIFdJVEggKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwlJTlNFUlQgSU5UTyBz Y2gxLnQxIFZBTFVFUyAoMSkKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0IENPTk5FQ1RJT04gJyRw dWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IgorKTsKKyRub2RlX3N1 YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3Rh cF9zdWJfcGFydCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklO U0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgyKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnQxIik7CitpcygkcmVz dWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25lZCB0YWJsZScpOworCiskcmVzdWx0 ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9N IHNjaDEucGFydDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRpdGlv bnMnKTsKKworIyBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IHRydWUgYW5kIEVYQ0VQVCBz Y2gxLnBhcnQxCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgK KwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgUkVTRVQ7CisJQUxURVIgUFVCTElDQVRJ T04gdGFwX3B1Yl9wYXJ0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCAoc2NoMS5wYXJ0MSk7CisJQUxU RVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IFNFVCAocHVibGlzaF92aWFfcGFydGl0aW9uX3Jv b3QpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxU RVIgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9k ZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIs ICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMykiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3Jp YmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50MSIpOworaXMo ICRyZXN1bHQsIHFxKDEKKzIKKzMpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25lZCB0YWJsZScp OworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJT RUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dz IG9uIHBhcnRpdGlvbnMnKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c3RvcCgnZmFzdCcpOworJG5v ZGVfcHVibGlzaGVyLT5zdG9wKCdmYXN0Jyk7CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi4zNC4x Cgo= --0000000000000a7e580643efb412 Content-Type: application/octet-stream; name="v28-0004-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v28-0004-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mi5te87m3 RnJvbSA0YTYxODUzNzUxMTM2M2FkMDhiMGQ3ODNhNDI0MzJhZTFmYzU4Y2NhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTMgTm92IDIwMjUgMTE6MDk6MDEgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy OCA0LzRdIFNraXAgcHVibGlzaGluZyB0aGUgY29sdW1ucyBzcGVjaWZpZWQgaW4gRk9SIFRBQkxF CiBFWENFUFQKCkEgbmV3ICJUQUJMRSB0YWJsZV9uYW1lIEVYQ0VQVCAoY29sdW1uX2xpc3QpIiBj bGF1c2UgZm9yIENSRUFURS9BTFRFUgpQVUJMSUNBVElPTiBhbGxvd3Mgb25lIG9yIG1vcmUgY29s dW1ucyB0byBiZSBleGNsdWRlZC4gVGhlIHB1Ymxpc2hlcgp3aWxsIG5vdCBzZW5kIHRoZSBkYXRh IG9mIGV4Y2x1ZGVkIGNvbHVtbnMgdG8gdGhlIHN1YnNjcmliZXIuCgpUaGUgbmV3IHN5bnRheCBh bGxvd3Mgc3BlY2lmeWluZyBleGNsdWRlZCBjb2x1bW4gbGlzdCB3aGVuIGNyZWF0aW5nIG9yCmFs dGVyaW5nIGEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpDUkVBVEUgUFVCTElDQVRJT04gcHVi bmFtZSBGT1IgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIsIGNvbDMpCm9yCkFMVEVS IFBVQkxJQ0FUSU9OIHB1Ym5hbWUgQUREIFRBQkxFIHRhYm5hbWUgRVhDRVBUIChjb2wxLCBjb2wy LCBjb2wzKQoKV2hlbiBjb2x1bW4gInByZXhjZXB0IiBvZiBzeXN0ZW0gY2F0YWxvZyAicGdfcHVi bGljYXRpb25fcmVsIiBpcyBzZXQKdG8gInRydWUiLCBhbmQgY29sdW1uICJwcmF0dHJzIiBvZiBz eXN0ZW0gY2F0YWxvZyAicGdfcHVibGljYXRpb25fcmVsIgppcyBub3QgTlVMTCwgdGhhdCBtZWFu cyB0aGUgcHVibGljYXRpb24gd2FzIGNyZWF0ZWQgd2l0aCAiRVhDRVBUCihjb2x1bW4tbGlzdCki LCBhbmQgdGhlIGNvbHVtbnMgaW4gInByYXR0cnMiIHdpbGwgYmUgZXhjbHVkZWQgZnJvbQpiZWlu ZyBwdWJsaXNoZWQuCgpwZ19kdW1wIGlzIHVwZGF0ZWQgdG8gaWRlbnRpZnkgYW5kIGR1bXAgdGhl IGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IG9mIHRoZQpwdWJsaWNhdGlvbi4KClRoZSBwc3FsIFxkIGZh bWlseSBvZiBjb21tYW5kcyBjYW4gbm93IGRpc3BsYXkgZXhjbHVkZWQgY29sdW1uIGxpc3QuIGUu Zy4KcHNxbCBcZFJwKyB2YXJpYW50IHdpbGwgbm93IGRpc3BsYXkgYXNzb2NpYXRlZCAiRVhDRVBU IChjb2x1bW5fbGlzdCkiIGlmCmFueS4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAg ICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0 aW9uLnNnbWwgICAgICAgICB8IDEwNiArKysrKy0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwgICAgICAgfCAgMTAgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1 YmxpY2F0aW9uLnNnbWwgICAgICB8ICA1MiArKystCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1 YmxpY2F0aW9uLmMgICAgICAgICAgfCAgNzUgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jICAgICAgICB8ICA1MiArKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3RhYmxlc3luYy5jICAgfCAgNDEgKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9wZ291dHB1dC9wZ291dHB1dC5jICAgfCAgNzAgKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICA0NSArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUu YyAgICAgICAgICAgICAgICAgICAgICAgfCAyNjIgKysrKysrKysrKystLS0tLS0tCiBzcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgMTMgKy0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgICAgICB8ICAgNiArLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaCAgICAgIHwgICA1ICstCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAgODggKysrKysrCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgICAgfCAgNTUgKysrKwogc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAgICAgICAgIHwgICAxICsKIC4uLi90LzAz OF9yZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbCAgICAgICB8IDE5MyArKysrKysrKysrKysr CiAxOSBmaWxlcyBjaGFuZ2VkLCA5MDcgaW5zZXJ0aW9ucygrKSwgMjE3IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOF9yZXBfY2hhbmdl c19leGNlcHRfY29sbGlzdC5wbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYTRkMzJkZTU4ZWMuLjcwMTQ0 YjY3MjEzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjU4Niw3ICs2NTg2LDEwIEBAIFNDUkFNLVNIQS0y NTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJl cGxhY2VhYmxlPiZsCiAgICAgICA8c3RydWN0ZmllbGQ+cHJleGNlcHQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5ib29sPC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAgVHJ1 ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRlZAorICAgICAgIFRydWUgaWYgdGhlIGNv bHVtbiBsaXN0IG9yIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbi4K KyAgICAgICBJZiBhIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCBpbiA8bGl0ZXJhbD5wcmF0dHJz PC9saXRlcmFsPiwgdGhlbgorICAgICAgIGV4Y2x1ZGUgb25seSB0aG9zZSBjb2x1bW5zLiBJZiA8 bGl0ZXJhbD5wcmF0dHJzPC9saXRlcmFsPiBpcyBudWxsLAorICAgICAgIHRoZW4gZXhjbHVkZSB0 aGUgZW50aXJlIHJlbGF0aW9uLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgog CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9j L3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCBjNDIwNDY5ZmVhYS4uMTQ5 NmUxYzI4YWQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMTM3OSwx MCArMTM3OSwxMCBAQCBQdWJsaWNhdGlvbnM6CiAgIDx0aXRsZT5Db2x1bW4gTGlzdHM8L3RpdGxl PgogCiAgIDxwYXJhPgotICAgRWFjaCBwdWJsaWNhdGlvbiBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5 IHdoaWNoIGNvbHVtbnMgb2YgZWFjaCB0YWJsZSBhcmUKLSAgIHJlcGxpY2F0ZWQgdG8gc3Vic2Ny aWJlcnMuIFRoZSB0YWJsZSBvbiB0aGUgc3Vic2NyaWJlciBzaWRlIG11c3QgaGF2ZSBhdAotICAg bGVhc3QgYWxsIHRoZSBjb2x1bW5zIHRoYXQgYXJlIHB1Ymxpc2hlZC4gSWYgbm8gY29sdW1uIGxp c3QgaXMgc3BlY2lmaWVkLAotICAgdGhlbiBhbGwgY29sdW1ucyBvbiB0aGUgcHVibGlzaGVyIGFy ZSByZXBsaWNhdGVkLgorICAgRWFjaCBwdWJsaWNhdGlvbiBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5 IHdoaWNoIGNvbHVtbnMgb2YgZWFjaCB0YWJsZSBzaG91bGQgYmUKKyAgIHJlcGxpY2F0ZWQgb3Ig ZXhjbHVkZWQgZnJvbSByZXBsaWNhdGlvbi4gVGhlIHRhYmxlIG9uIHRoZSBzdWJzY3JpYmVyIHNp ZGUKKyAgIG11c3QgaGF2ZSBhdCBsZWFzdCBhbGwgdGhlIGNvbHVtbnMgdGhhdCBhcmUgcHVibGlz aGVkLiBJZiBubyBjb2x1bW4gbGlzdCBpcworICAgc3BlY2lmaWVkLCB0aGVuIGFsbCBjb2x1bW5z IG9uIHRoZSBwdWJsaXNoZXIgYXJlIHJlcGxpY2F0ZWQuCiAgICBTZWUgPHhyZWYgbGlua2VuZD0i c3FsLWNyZWF0ZXB1YmxpY2F0aW9uIi8+IGZvciBkZXRhaWxzIG9uIHRoZSBzeW50YXguCiAgIDwv cGFyYT4KIApAQCAtMTM5Niw4ICsxMzk2LDExIEBAIFB1YmxpY2F0aW9uczoKIAogICA8cGFyYT4K ICAgIElmIG5vIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgYW55IGNvbHVtbnMgYWRkZWQgdG8g dGhlIHRhYmxlIGxhdGVyIGFyZQotICAgYXV0b21hdGljYWxseSByZXBsaWNhdGVkLiBUaGlzIG1l YW5zIHRoYXQgaGF2aW5nIGEgY29sdW1uIGxpc3Qgd2hpY2ggbmFtZXMKLSAgIGFsbCBjb2x1bW5z IGlzIG5vdCB0aGUgc2FtZSBhcyBoYXZpbmcgbm8gY29sdW1uIGxpc3QgYXQgYWxsLgorICAgYXV0 b21hdGljYWxseSByZXBsaWNhdGVkLiBIb3dldmVyLCBhIG5vcm1hbCBjb2x1bW4gbGlzdCAod2l0 aG91dAorICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPikgb25seSByZXBsaWNhdGVzIHRoZSBz cGVjaWZpZWQgY29sdW1ucyBhbmQgbm8gbW9yZS4KKyAgIFRoZXJlZm9yZSwgaGF2aW5nIGEgY29s dW1uIGxpc3QgdGhhdCBuYW1lcyBhbGwgY29sdW1ucyBpcyBub3QgdGhlIHNhbWUgYXMKKyAgIGhh dmluZyBubyBjb2x1bW4gbGlzdCBhdCBhbGwsIGFzIG1vcmUgY29sdW1ucyBtYXkgYmUgYWRkZWQg dG8gdGhlIHRhYmxlCisgICBsYXRlci4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTQwOSw2 ICsxNDEyLDE0IEBAIFB1YmxpY2F0aW9uczoKICAgIEdlbmVyYXRlZCBjb2x1bW5zIGNhbiBhbHNv IGJlIHNwZWNpZmllZCBpbiBhIGNvbHVtbiBsaXN0LiBUaGlzIGFsbG93cwogICAgZ2VuZXJhdGVk IGNvbHVtbnMgdG8gYmUgcHVibGlzaGVkLCByZWdhcmRsZXNzIG9mIHRoZSBwdWJsaWNhdGlvbiBw YXJhbWV0ZXIKICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMt d2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPi4gU3BlY2lmeWluZyBnZW5lcmF0ZWQKKyAg IGNvbHVtbnMgdXNpbmcgdGhlIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGV4Y2x1 ZGVzIHRob3NlIGNvbHVtbnMKKyAgIGZyb20gYmVpbmcgcHVibGlzaGVkLCByZWdhcmRsZXNzIG9m IHRoZQorICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRo LXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgorICAgPGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0 ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+IHNldHRpbmcuIEhvd2V2ZXIsIGZvcgorICAgZ2Vu ZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IGxpc3RlZCBpbiB0aGUgPGxpdGVyYWw+RVhDRVBU PC9saXRlcmFsPgorICAgY2xhdXNlLCB3aGV0aGVyIHRoZXkgYXJlIHB1Ymxpc2hlZCBvciBub3Qg c3RpbGwgZGVwZW5kcyBvbiB0aGUgdmFsdWUgb2YKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVh dGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KICAg IDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPi4gU2Vl CiAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWdlbmNvbHMiLz4gZm9yIGRl dGFpbHMuCiAgIDwvcGFyYT4KQEAgLTE0MzAsMTEgKzE0NDEsMTQgQEAgUHVibGljYXRpb25zOgog CiAgIDxwYXJhPgogICAgSWYgYSBwdWJsaWNhdGlvbiBwdWJsaXNoZXMgPGNvbW1hbmQ+VVBEQVRF PC9jb21tYW5kPiBvcgotICAgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiBvcGVyYXRpb25zLCBh bnkgY29sdW1uIGxpc3QgbXVzdCBpbmNsdWRlIHRoZQotICAgdGFibGUncyByZXBsaWNhIGlkZW50 aXR5IGNvbHVtbnMgKHNlZQotICAgPHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydGFibGUtcmVwbGlj YS1pZGVudGl0eSIvPikuCisgICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IG9wZXJhdGlvbnMs IGFueSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGFibGUncworICAgcmVwbGljYSBpZGVudGl0 eSBjb2x1bW5zIGFuZCBhbnkgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGgKKyAgIDxsaXRlcmFs PkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIG11c3Qgbm90IGluY2x1ZGUgdGhlIHRhYmxlJ3MgcmVw bGljYQorICAgaWRlbnRpdHkgY29sdW1ucyAoc2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnRh YmxlLXJlcGxpY2EtaWRlbnRpdHkiLz4pLgogICAgSWYgYSBwdWJsaWNhdGlvbiBwdWJsaXNoZXMg b25seSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1hbmQ+IG9wZXJhdGlvbnMsIHRoZW4KLSAgIHRoZSBj b2x1bW4gbGlzdCBtYXkgb21pdCByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMuCisgICB0aGUgY29s dW1uIGxpc3QgbWF5IG9taXQgcmVwbGljYSBpZGVudGl0eSBjb2x1bW5zIGFuZCB0aGUgY29sdW1u IGxpc3QKKyAgIHNwZWNpZmllZCB3aXRoIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNl IG1heSBpbmNsdWRlIHJlcGxpY2EgaWRlbnRpdHkKKyAgIGNvbHVtbnMuCiAgIDwvcGFyYT4KIAog ICA8cGFyYT4KQEAgLTE0NzksMTggKzE0OTMsMjEgQEAgUHVibGljYXRpb25zOgogICAgPHRpdGxl PkV4YW1wbGVzPC90aXRsZT4KIAogICAgPHBhcmE+Ci0gICAgQ3JlYXRlIGEgdGFibGUgPHN0cnVj dG5hbWU+dDE8L3N0cnVjdG5hbWU+IHRvIGJlIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxl LgorICAgIENyZWF0ZSB0YWJsZXMgPHN0cnVjdG5hbWU+dDE8L3N0cnVjdG5hbWU+IGFuZCA8c3Ry dWN0bmFtZT50Mjwvc3RydWN0bmFtZT4gdG8KKyAgICBiZSB1c2VkIGluIHRoZSBmb2xsb3dpbmcg ZXhhbXBsZS4KIDxwcm9ncmFtbGlzdGluZz4KIC8qIHB1YiAjICovIENSRUFURSBUQUJMRSB0MShp ZCBpbnQsIGEgdGV4dCwgYiB0ZXh0LCBjIHRleHQsIGQgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtF WShpZCkpOworLyogcHViICMgKi8gQ1JFQVRFIFRBQkxFIHQyKGlkIGludCwgYSB0ZXh0LCBiIHRl eHQsIGMgdGV4dCwgZCB0ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CiA8L3Byb2dyYW1s aXN0aW5nPjwvcGFyYT4KIAogICAgPHBhcmE+CiAgICAgQ3JlYXRlIGEgcHVibGljYXRpb24gPGxp dGVyYWw+cDE8L2xpdGVyYWw+LiBBIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQgZm9yCi0gICAgdGFi bGUgPHN0cnVjdG5hbWU+dDE8L3N0cnVjdG5hbWU+IHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNv bHVtbnMgdGhhdCB3aWxsIGJlCi0gICAgcmVwbGljYXRlZC4gTm90aWNlIHRoYXQgdGhlIG9yZGVy IG9mIGNvbHVtbiBuYW1lcyBpbiB0aGUgY29sdW1uIGxpc3QgZG9lcwotICAgIG5vdCBtYXR0ZXIu CisgICAgdGFibGUgPHN0cnVjdG5hbWU+dDE8L3N0cnVjdG5hbWU+LCBhbmQgYW5vdGhlciBjb2x1 bW4gbGlzdCBpcyBkZWZpbmVkIGZvcgorICAgIHRhYmxlIDxzdHJ1Y3RuYW1lPnQyPC9zdHJ1Y3Ru YW1lPiB1c2luZyB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UKKyAgICB0byBy ZWR1Y2UgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoYXQgd2lsbCBiZSByZXBsaWNhdGVkLiBOb3Rl IHRoYXQgdGhlIG9yZGVyCisgICAgb2YgY29sdW1uIG5hbWVzIGluIHRoZSBjb2x1bW4gbGlzdHMg ZG9lcyBub3QgbWF0dGVyLgogPHByb2dyYW1saXN0aW5nPgotLyogcHViICMgKi8gQ1JFQVRFIFBV QkxJQ0FUSU9OIHAxIEZPUiBUQUJMRSB0MSAoaWQsIGIsIGEsIGQpOworLyogcHViICMgKi8gQ1JF QVRFIFBVQkxJQ0FUSU9OIHAxIEZPUiBUQUJMRSB0MSAoaWQsIGIsIGEsIGQpLCB0MiBFWENFUFQg KGQsIGEpOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4KQEAgLTE1MDQs NiArMTUyMSw3IEBAIFB1YmxpY2F0aW9uczoKICBwb3N0Z3JlcyB8IGYgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9u ZSAgICAgICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAgInB1YmxpYy50MSIgKGlkLCBhLCBiLCBk KQorICAgICJwdWJsaWMudDIiIEVYQ0VQVCAoYSwgZCkKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgogCiAgICAgPHBhcmE+CkBAIC0xNTI0LDIzICsxNTQyLDQxIEBAIEluZGV4ZXM6CiAgICAgInQx X3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCiBQdWJsaWNhdGlvbnM6CiAgICAgInAxIiAo aWQsIGEsIGIsIGQpCisKKy8qIHB1YiAjICovIFxkIHQyCisgICAgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwKKyBhICAgICAg fCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGIgICAgICB8IHRleHQgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8CisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAg ICAgICAgIHwKKyBkICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfAorIGUg ICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8CitJbmRleGVzOgorICAgICJ0 Ml9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorUHVibGljYXRpb25zOgorICAgICJwMSIg RVhDRVBUIChhLCBkKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4KLSAg ICAgT24gdGhlIHN1YnNjcmliZXIgbm9kZSwgY3JlYXRlIGEgdGFibGUgPHN0cnVjdG5hbWU+dDE8 L3N0cnVjdG5hbWU+IHdoaWNoIG5vdwotICAgICBvbmx5IG5lZWRzIGEgc3Vic2V0IG9mIHRoZSBj b2x1bW5zIHRoYXQgd2VyZSBvbiB0aGUgcHVibGlzaGVyIHRhYmxlCi0gICAgIDxzdHJ1Y3RuYW1l PnQxPC9zdHJ1Y3RuYW1lPiwgYW5kIGFsc28gY3JlYXRlIHRoZSBzdWJzY3JpcHRpb24KKyAgICAg T24gdGhlIHN1YnNjcmliZXIgbm9kZSwgY3JlYXRlIHRhYmxlcyA8c3RydWN0bmFtZT50MTwvc3Ry dWN0bmFtZT4gYW5kCisgICAgIDxzdHJ1Y3RuYW1lPnQyPC9zdHJ1Y3RuYW1lPiB3aGljaCBub3cg b25seSBuZWVkcyBhIHN1YnNldCBvZiB0aGUgY29sdW1ucworICAgICB0aGF0IHdlcmUgb24gdGhl IHB1Ymxpc2hlciB0YWJsZXMgPHN0cnVjdG5hbWU+dDE8L3N0cnVjdG5hbWU+IGFuZAorICAgICA8 c3RydWN0bmFtZT50Mjwvc3RydWN0bmFtZT4sIGFuZCBhbHNvIGNyZWF0ZSB0aGUgc3Vic2NyaXB0 aW9uCiAgICAgIDxsaXRlcmFsPnMxPC9saXRlcmFsPiB0aGF0IHN1YnNjcmliZXMgdG8gdGhlIHB1 YmxpY2F0aW9uCiAgICAgIDxsaXRlcmFsPnAxPC9saXRlcmFsPi4KIDxwcm9ncmFtbGlzdGluZz4K IC8qIHN1YiAjICovIENSRUFURSBUQUJMRSB0MShpZCBpbnQsIGIgdGV4dCwgYSB0ZXh0LCBkIHRl eHQsIFBSSU1BUlkgS0VZKGlkKSk7CisvKiBzdWIgIyAqLyBDUkVBVEUgVEFCTEUgdDIoaWQgaW50 LCBiIHRleHQsIGMgdGV4dCwgZSB0ZXh0LCBQUklNQVJZIEtFWShpZCkpOwogLyogc3ViICMgKi8g Q1JFQVRFIFNVQlNDUklQVElPTiBzMQogLyogc3ViIC0gKi8gQ09OTkVDVElPTiAnaG9zdD1sb2Nh bGhvc3QgZGJuYW1lPXRlc3RfcHViIGFwcGxpY2F0aW9uX25hbWU9czEnCiAvKiBzdWIgLSAqLyBQ VUJMSUNBVElPTiBwMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgICAgPHBhcmE+Ci0g ICAgIE9uIHRoZSBwdWJsaXNoZXIgbm9kZSwgaW5zZXJ0IHNvbWUgcm93cyB0byB0YWJsZSA8c3Ry dWN0bmFtZT50MTwvc3RydWN0bmFtZT4uCisgICAgIE9uIHRoZSBwdWJsaXNoZXIgbm9kZSwgaW5z ZXJ0IHNvbWUgcm93cyB0byB0YWJsZXMgPHN0cnVjdG5hbWU+dDE8L3N0cnVjdG5hbWU+CisgICAg IGFuZCA8c3RydWN0bmFtZT50Mjwvc3RydWN0bmFtZT4uCiA8cHJvZ3JhbWxpc3Rpbmc+CiAvKiBw dWIgIyAqLyBJTlNFUlQgSU5UTyB0MSBWQUxVRVMoMSwgJ2EtMScsICdiLTEnLCAnYy0xJywgJ2Qt MScsICdlLTEnKTsKIC8qIHB1YiAjICovIElOU0VSVCBJTlRPIHQxIFZBTFVFUygyLCAnYS0yJywg J2ItMicsICdjLTInLCAnZC0yJywgJ2UtMicpOwpAQCAtMTU1MiwxMSArMTU4OCwyMSBAQCBQdWJs aWNhdGlvbnM6CiAgIDIgfCBhLTIgfCBiLTIgfCBjLTIgfCBkLTIgfCBlLTIKICAgMyB8IGEtMyB8 IGItMyB8IGMtMyB8IGQtMyB8IGUtMwogKDMgcm93cykKKy8qIHB1YiAjICovIElOU0VSVCBJTlRP IHQyIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAnZC0xJywgJ2UtMScpOworLyogcHVi ICMgKi8gSU5TRVJUIElOVE8gdDIgVkFMVUVTKDIsICdhLTInLCAnYi0yJywgJ2MtMicsICdkLTIn LCAnZS0yJyk7CisvKiBwdWIgIyAqLyBJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMywgJ2EtMycsICdi LTMnLCAnYy0zJywgJ2QtMycsICdlLTMnKTsKKy8qIHB1YiAjICovIFNFTEVDVCAqIEZST00gdDIg T1JERVIgQlkgaWQ7CisgaWQgfCAgYSAgfCAgYiAgfCAgYyAgfCAgZCAgfCAgZQorLS0tLSstLS0t LSstLS0tLSstLS0tLSstLS0tLSstLS0tLQorICAxIHwgYS0xIHwgYi0xIHwgYy0xIHwgZC0xIHwg ZS0xCisgIDIgfCBhLTIgfCBiLTIgfCBjLTIgfCBkLTIgfCBlLTIKKyAgMyB8IGEtMyB8IGItMyB8 IGMtMyB8IGQtMyB8IGUtMworKDMgcm93cykKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAg ICAgPHBhcmE+Ci0gICAgIE9ubHkgZGF0YSBmcm9tIHRoZSBjb2x1bW4gbGlzdCBvZiBwdWJsaWNh dGlvbiA8bGl0ZXJhbD5wMTwvbGl0ZXJhbD4gaXMKLSAgICAgcmVwbGljYXRlZC4KKyAgICAgT25s eSBkYXRhIHNwZWNpZmllZCBieSB0aGUgY29sdW1uIGxpc3RzIG9mIHB1YmxpY2F0aW9uCisgICAg IDxsaXRlcmFsPnAxPC9saXRlcmFsPiBpcyByZXBsaWNhdGVkLgogPHByb2dyYW1saXN0aW5nPgog Lyogc3ViICMgKi8gU0VMRUNUICogRlJPTSB0MSBPUkRFUiBCWSBpZDsKICBpZCB8ICBiICB8ICBh ICB8ICBkCkBAIC0xNTY1LDYgKzE2MTEsMTMgQEAgUHVibGljYXRpb25zOgogICAyIHwgYi0yIHwg YS0yIHwgZC0yCiAgIDMgfCBiLTMgfCBhLTMgfCBkLTMKICgzIHJvd3MpCisvKiBzdWIgIyAqLyBT RUxFQ1QgKiBGUk9NIHQyIE9SREVSIEJZIGlkOworIGlkIHwgIGIgIHwgIGMgIHwgIGUKKy0tLS0r LS0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8IGItMSB8IGMtMSB8IGUtMQorICAyIHwgYi0yIHwgYy0y IHwgZS0yCisgIDMgfCBiLTMgfCBjLTMgfCBlLTMKKygzIHJvd3MpCiA8L3Byb2dyYW1saXN0aW5n PjwvcGFyYT4KIAogICA8L3NlY3QyPgpAQCAtMTY2MSw2ICsxNzE0LDE3IEBAIFB1YmxpY2F0aW9u czoKICAgIDwvaXRlbWl6ZWRsaXN0PgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBHZW5lcmF0 ZWQgY29sdW1ucyBzcGVjaWZpZWQgaW4gdGhlIGNvbHVtbiBsaXN0IHdpdGggdGhlCisgICA8bGl0 ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgbm90IHB1Ymxpc2hlZCwgcmVnYXJkbGVz cyBvZiB0aGUgdmFsdWUKKyAgIG9mIHRoZSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGlj YXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJh bD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4gcGFyYW1ldGVyLiBI b3dldmVyLAorICAgZ2VuZXJhdGVkIGNvbHVtbnMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIGNv bHVtbiBsaXN0IHdpdGggdGhlCisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBh cmUgcHVibGlzaGVkIGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YgdGhlCisgICA8bGluayBsaW5r ZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgtcHVibGlzaC1nZW5lcmF0ZWQt Y29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFs PjwvbGluaz4gcGFyYW1ldGVyLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgZm9sbG93 aW5nIHRhYmxlIHN1bW1hcml6ZXMgYmVoYXZpb3Igd2hlbiB0aGVyZSBhcmUgZ2VuZXJhdGVkIGNv bHVtbnMKICAgIGludm9sdmVkIGluIHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uLiBSZXN1bHRzIGFy ZSBzaG93biBmb3Igd2hlbgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmlu ZGV4IDI1YjQzNmJkMjdiLi43YTBkZjFiYTcyYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbApAQCAtMzIsNyArMzIsNyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKIDxwaHJh c2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAotICAgIFRBQkxFIFsgT05MWSBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4g WyAqIF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVw bGFjZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KKyAgICBUQUJMRSBb IE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFj ZWFibGU+IFsgKiBdIFsgWyBFWENFUFQgXSAoIGNvbHVtbl9uYW1lIFssIC4uLiBdICkgXSBbIFdI RVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2Vh YmxlPiApIF0gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1NDSEVN QSB9IFssIC4uLiBdCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnB1YmxpY2F0aW9uX2Ryb3Bfb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhy YXNlPgpAQCAtMjY5LDYgKzI2OSwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1 YmxpY2F0aW9uIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCAodXNlcnMsIGRlcGFydG1lbgogICAgPHN0 cnVjdG5hbWU+cHJvZHVjdGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46CiA8cHJvZ3JhbWxp c3Rpbmc+CiBBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBUQUJM RSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJTiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwvcHJv Z3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQWx0ZXIgcHVibGljYXRpb24gPHN0 cnVjdG5hbWU+bXlwdWJsaWNhdGlvbjwvc3RydWN0bmFtZT4gdG8gYWRkIHRhYmxlCisgICA8c3Ry dWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNvbHVtbgorICAgPHN0cnVjdG5hbWU+ c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBVQkxJ Q0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIFRBQkxFIHVzZXJzIEVYQ0VQVCAoc2Vj dXJpdHlfcGluKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggOGI2MTY2NTEyNzIuLjlmNTgx ZTk2NDQwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI3 LDcgKzI3LDcgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9m OjwvcGhyYXNlPgogCi0gICAgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsg V0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+ICkgXSBbLCAuLi4gXQorICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyBbIEVYQ0VQVCBd ICggY29sdW1uX25hbWUgWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXSBbLCAuLi4gXQogICAgIFRB QkxFUyBJTiBTQ0hFTUEgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25h bWU8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfU0NIRU1BIH0gWywgLi4uIF0KIAogPHBocmFzZT53 aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxsX3B1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KQEAgLTk2LDE3ICs5NiwyNCBAQCBD UkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBXaGVuIGEgY29s dW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBvbmx5IHRoZSBuYW1lZCBjb2x1bW5zIGFyZSByZXBsaWNh dGVkLgotICAgICAgVGhlIGNvbHVtbiBsaXN0IGNhbiBjb250YWluIHN0b3JlZCBnZW5lcmF0ZWQg Y29sdW1ucyBhcyB3ZWxsLiBJZiB0aGUKLSAgICAgIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQsIHRo ZSBwdWJsaWNhdGlvbiB3aWxsIHJlcGxpY2F0ZSBhbGwgbm9uLWdlbmVyYXRlZAotICAgICAgY29s dW1ucyAoaW5jbHVkaW5nIGFueSBhZGRlZCBpbiB0aGUgZnV0dXJlKSBieSBkZWZhdWx0LiBTdG9y ZWQgZ2VuZXJhdGVkCi0gICAgICBjb2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYgPGxp dGVyYWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD4KLSAgICAgIGlzIHNldCB0 byA8bGl0ZXJhbD5zdG9yZWQ8L2xpdGVyYWw+LiBTcGVjaWZ5aW5nIGEgY29sdW1uIGxpc3QgaGFz IG5vCi0gICAgICBlZmZlY3Qgb24gPGxpdGVyYWw+VFJVTkNBVEU8L2xpdGVyYWw+IGNvbW1hbmRz LiBTZWUKKyAgICAgIFdoZW4gYSBjb2x1bW4gbGlzdCB3aXRob3V0IDxsaXRlcmFsPkVYQ0VQVDwv bGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCBvbmx5CisgICAgICB0aGUgbmFtZWQgY29sdW1ucyBhcmUg cmVwbGljYXRlZC4gVGhlIGNvbHVtbiBsaXN0IGNhbiBjb250YWluIHN0b3JlZAorICAgICAgZ2Vu ZXJhdGVkIGNvbHVtbnMgYXMgd2VsbC4gSWYgdGhlIGNvbHVtbiBsaXN0IGlzIG9taXR0ZWQsIHRo ZSBwdWJsaWNhdGlvbgorICAgICAgd2lsbCByZXBsaWNhdGUgYWxsIG5vbi1nZW5lcmF0ZWQgY29s dW1ucyAoaW5jbHVkaW5nIGFueSBhZGRlZCBpbiB0aGUKKyAgICAgIGZ1dHVyZSkgYnkgZGVmYXVs dC4gU3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGNhbiBhbHNvIGJlIHJlcGxpY2F0ZWQgaWYKKyAg ICAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+IGlzIHNldCB0 bworICAgICAgPGxpdGVyYWw+c3RvcmVkPC9saXRlcmFsPi4gU3BlY2lmeWluZyBhIGNvbHVtbiBs aXN0IGhhcyBubyBlZmZlY3Qgb24KKyAgICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBj b21tYW5kcy4gU2VlCiAgICAgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNv bC1saXN0cyIvPiBmb3IgZGV0YWlscyBhYm91dCBjb2x1bW4KICAgICAgIGxpc3RzLgogICAgICA8 L3BhcmE+CiAKKyAgICAgPHBhcmE+CisgICAgICBXaGVuIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lm aWVkIHdpdGggPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiwgdGhlIG5hbWVkCisgICAgICBjb2x1 bW5zIGFyZSBub3QgcmVwbGljYXRlZC4gU3BlY2lmeWluZyBhIGNvbHVtbiBsaXN0IGhhcyBubyBl ZmZlY3Qgb24KKyAgICAgIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFsPiBjb21tYW5kcy4KKyAg ICAgPC9wYXJhPgorCiAgICAgIDxwYXJhPgogICAgICAgT25seSBwZXJzaXN0ZW50IGJhc2UgdGFi bGVzIGFuZCBwYXJ0aXRpb25lZCB0YWJsZXMgY2FuIGJlIHBhcnQgb2YgYQogICAgICAgcHVibGlj YXRpb24uICBUZW1wb3JhcnkgdGFibGVzLCB1bmxvZ2dlZCB0YWJsZXMsIGZvcmVpZ24gdGFibGVz LApAQCAtMzY3LDEwICszNzQsMTIgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgPC9wYXJhPgogCiAgIDxwYXJh PgotICAgQW55IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0aGUgPGxpdGVyYWw+UkVQTElDQSBJ REVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucwotICAgaW4gb3JkZXIgZm9yIDxjb21tYW5kPlVQREFU RTwvY29tbWFuZD4gb3IgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPgotICAgb3BlcmF0aW9ucyB0 byBiZSBwdWJsaXNoZWQuIFRoZXJlIGFyZSBubyBjb2x1bW4gbGlzdCByZXN0cmljdGlvbnMgaWYg dGhlCi0gICBwdWJsaWNhdGlvbiBwdWJsaXNoZXMgb25seSA8Y29tbWFuZD5JTlNFUlQ8L2NvbW1h bmQ+IG9wZXJhdGlvbnMuCisgICBJbiBvcmRlciBmb3IgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5k PiBvciA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+CisgICBvcGVyYXRpb25zIHRvIHdvcmssIGFs bCB0aGUgPGxpdGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucyBtdXN0Cisg ICBiZSBwdWJsaXNoZWQuIFNvLCBhbnkgY29sdW1uIGxpc3QgbXVzdCBuYW1lIGFsbAorICAgPGxp dGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucywgYW5kIGFueQorICAgPGxp dGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjb2x1bW4gbGlzdCBtdXN0IG5vdCBuYW1lIGFueQorICAg PGxpdGVyYWw+UkVQTElDQSBJREVOVElUWTwvbGl0ZXJhbD4gY29sdW1ucy4KICAgPC9wYXJhPgog CiAgIDxwYXJhPgpAQCAtMzkzLDYgKzQwMiwxNiBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgdG8gYmUgcHVi bGlzaGVkLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBUaGUgZ2VuZXJhdGVkIGNvbHVtbnMg dGhhdCBhcmUgcGFydCBvZiB0aGUgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggdGhlCisgICA8 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgbm90IHB1Ymxpc2hlZCwgcmVnYXJk bGVzcyBvZiB0aGUKKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVy YWw+IG9wdGlvbi4gSG93ZXZlciwgZ2VuZXJhdGVkCisgICBjb2x1bW5zIHRoYXQgYXJlIG5vdCBw YXJ0IG9mIHRoZSBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVY Q0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBwdWJsaXNoZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1 ZSBvZiB0aGUKKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+ IG9wdGlvbi4gU2VlCisgICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWdlbmNv bHMiLz4gZm9yIGRldGFpbHMuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSByb3cgZmls dGVyIG9uIGEgdGFibGUgYmVjb21lcyByZWR1bmRhbnQgaWYKICAgIDxsaXRlcmFsPkZPUiBUQUJM RVMgSU4gU0NIRU1BPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQgYW5kIHRoZSB0YWJsZQpAQCAtNTE0 LDYgKzUzMywxNSBAQCBDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBGT1IgQUxMIFRB QkxFUyBFWENFUFQgKHVzZXJzLCBkZXBhcnRtZW50cyk7CiBDUkVBVEUgUFVCTElDQVRJT04gdXNl cnNfZmlsdGVyZWQgRk9SIFRBQkxFIHVzZXJzICh1c2VyX2lkLCBmaXJzdG5hbWUpOwogPC9wcm9n cmFtbGlzdGluZz48L3BhcmE+CiAKKyAgPHBhcmE+CisgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0 aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgdGFibGUKKyAgIDxzdHJ1Y3RuYW1lPnVzZXJz PC9zdHJ1Y3RuYW1lPiBleGNlcHQgY2hhbmdlcyBmb3IgY29sdW1uCisgICA8c3RydWN0bmFtZT5z ZWN1cml0eV9waW48L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFBVQkxJ Q0FUSU9OIHVzZXJzX3NhZmUgRk9SIFRBQkxFIHVzZXJzIEVYQ0VQVCAoc2VjdXJpdHlfcGluKTsK KzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1 YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBzZXF1ZW5jZXMgZm9yIHN5bmNocm9uaXphdGlv bjoKIDxwcm9ncmFtbGlzdGluZz4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRl eCBiZWMzYTM0ZTQ4Zi4uMDJhMTIwM2RjYWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmMKQEAgLTI2NiwxNCArMjY2LDE5IEBAIGlzX3NjaGVtYV9wdWJsaWNhdGlvbihPaWQgcHVi aWQpCiAgKiBJZiBhIGNvbHVtbiBsaXN0IGlzIGZvdW5kLCB0aGUgY29ycmVzcG9uZGluZyBiaXRt YXAgaXMgcmV0dXJuZWQgdGhyb3VnaCB0aGUKICAqIGNvbHMgcGFyYW1ldGVyLCBpZiBwcm92aWRl ZC4gVGhlIGJpdG1hcCBpcyBjb25zdHJ1Y3RlZCB3aXRoaW4gdGhlIGdpdmVuCiAgKiBtZW1vcnkg Y29udGV4dCAobWN4dCkuCisgKgorICogSWYgYSBjb2x1bW4gbGlzdCBpcyBmb3VuZCBzcGVjaWZp ZWQgd2l0aCBFWENFUFQgY2xhdXNlLCBleGNlcHRfY29sdW1ucyBpcyBzZXQKKyAqIHRvIHRydWUu CiAgKi8KIGJvb2wKIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHVi LCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKLQkJCQkJCQlCaXRtYXBzZXQgKipjb2xz KQorCQkJCQkJCUJpdG1hcHNldCAqKmNvbHMsIGJvb2wgKmV4Y2VwdF9jb2x1bW5zKQogewogCUhl YXBUdXBsZQljZnR1cGxlOwogCWJvb2wJCWZvdW5kID0gZmFsc2U7CiAKKwkqZXhjZXB0X2NvbHVt bnMgPSBmYWxzZTsKKwogCWlmIChwdWItPmFsbHRhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCkBA IC0yOTksNiArMzA0LDE2IEBAIGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChQdWJsaWNhdGlv biAqcHViLCBPaWQgcmVsaWQsIE1lbW9yeUNvbnRleHQgbWN4dCwKIAkJCWZvdW5kID0gdHJ1ZTsK IAkJfQogCisJCS8qIExvb2t1cCB0aGUgZXhjZXB0IGF0dHJpYnV0ZSAqLworCQljZmRhdHVtID0g U3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBjZnR1cGxlLAorCQkJCQkJCQkgIEFu dW1fcGdfcHVibGljYXRpb25fcmVsX3ByZXhjZXB0LCAmaXNudWxsKTsKKworCQlpZiAoIWlzbnVs bCkKKwkJeworCQkJQXNzZXJ0KCFwdWItPmFsbHRhYmxlcyk7CisJCQkqZXhjZXB0X2NvbHVtbnMg PSBEYXR1bUdldEJvb2woY2ZkYXR1bSk7CisJCX0KKwogCQlSZWxlYXNlU3lzQ2FjaGUoY2Z0dXBs ZSk7CiAJfQogCkBAIC02NjAsMTAgKzY3NSwxMiBAQCBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQo Qml0bWFwc2V0ICpjb2x1bW5zLCBEYXR1bSBwdWJjb2xzLCBNZW1vcnlDb250ZXh0IG1jeHQpCiAg KiBSZXR1cm5zIGEgYml0bWFwIHJlcHJlc2VudGluZyB0aGUgY29sdW1ucyBvZiB0aGUgc3BlY2lm aWVkIHRhYmxlLgogICoKICAqIEdlbmVyYXRlZCBjb2x1bW5zIGFyZSBpbmNsdWRlZCBpZiBpbmNs dWRlX2dlbmNvbHNfdHlwZSBpcwotICogUFVCTElTSF9HRU5DT0xTX1NUT1JFRC4KKyAqIFBVQkxJ U0hfR0VOQ09MU19TVE9SRUQuIENvbHVtbnMgdGhhdCBhcmUgaW4gdGhlIGV4Y2VwdF9jb2xzIGFy ZSBleGNsdWRlZCBmcm9tCisgKiB0aGUgY29sdW1uIGxpc3QuCiAgKi8KIEJpdG1hcHNldCAqCi1w dWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdlbmNvbHNUeXBlIGlu Y2x1ZGVfZ2VuY29sc190eXBlKQorcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24s IFB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkgIEJpdG1hcHNl dCAqZXhjZXB0X2NvbHMpCiB7CiAJQml0bWFwc2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlUdXBsZURl c2MJZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsYXRpb24pOwpAQCAtNjg2LDYgKzcwMyw5IEBA IHB1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUg aW5jbHVkZV9nZW5jb2xzX3R5cGUpCiAJCQkJY29udGludWU7CiAJCX0KIAorCQlpZiAoZXhjZXB0 X2NvbHMgJiYgYm1zX2lzX21lbWJlcihhdHQtPmF0dG51bSwgZXhjZXB0X2NvbHMpKQorCQkJY29u dGludWU7CisKIAkJcmVzdWx0ID0gYm1zX2FkZF9tZW1iZXIocmVzdWx0LCBhdHQtPmF0dG51bSk7 CiAJfQogCkBAIC03OTAsOCArODEwLDEwIEBAIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCwgYm9vbCBleGNlcHRfZmxhZykKIAl7CiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlz dC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAJCU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0 aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcnB1YmlkOworCQlib29sCQlpc19leGNlcHRfdGFi bGUgPSAoKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0 ICYmCisJCQloZWFwX2F0dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0 cnMsIE5VTEwpOwogCi0JCWlmIChleGNlcHRfZmxhZyA9PSAoKEZvcm1fcGdfcHVibGljYXRpb25f cmVsKSBHRVRTVFJVQ1QodHVwKSktPnByZXhjZXB0KQorCQlpZiAoZXhjZXB0X2ZsYWcgPT0gaXNf ZXhjZXB0X3RhYmxlKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CiAJ fQogCkBAIC04MzEsMTAgKzg1MywxMiBAQCBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHVi aWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAl3aGlsZSAoSGVhcFR1cGxlSXNW YWxpZCh0dXAgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKIAl7CiAJCUZvcm1fcGdfcHVibGlj YXRpb25fcmVsIHB1YnJlbDsKKwkJYm9vbAkJaGFzX2NvbGxpc3QgPSBmYWxzZTsKIAogCQlwdWJy ZWwgPSAoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApOworCQloYXNfY29s bGlzdCA9ICFoZWFwX2F0dGlzbnVsbCh0dXAsIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0 cnMsIE5VTEwpOwogCi0JCWlmIChleGNlcHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQorCQlp ZiAoZXhjZXB0X2ZsYWcgPT0gKHB1YnJlbC0+cHJleGNlcHQgJiYgIWhhc19jb2xsaXN0KSkKIAkJ CXJlc3VsdCA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZXN1bHQsIHB1Yl9wYXJ0 b3B0LAogCQkJCQkJCQkJCQkJCXB1YnJlbC0+cHJyZWxpZCk7CiAKQEAgLTEyOTEsNiArMTMxNSw3 IEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJT2lkCQkJ c2NoZW1haWQgPSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7CiAJCURhdHVtCQl2YWx1ZXNbTlVN X1BVQkxJQ0FUSU9OX1RBQkxFU19FTEVNXSA9IHswfTsKIAkJYm9vbAkJbnVsbHNbTlVNX1BVQkxJ Q0FUSU9OX1RBQkxFU19FTEVNXSA9IHswfTsKKwkJQml0bWFwc2V0ICAqZXhjZXB0X2NvbHVtbnMg PSBOVUxMOwogCiAJCS8qCiAJCSAqIEZvcm0gdHVwbGUgd2l0aCBhcHByb3ByaWF0ZSBkYXRhLgpA QCAtMTMxNSwxMSArMTM0MCwyOSBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAkJaWYgKEhlYXBUdXBsZUlzVmFsaWQocHVidHVwbGUpKQogCQl7Ci0JCQkv KiBMb29rdXAgdGhlIGNvbHVtbiBsaXN0IGF0dHJpYnV0ZS4gKi8KIAkJCXZhbHVlc1syXSA9IFN5 c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCiAJCQkJCQkJCQkJQW51 bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJhdHRycywKIAkJCQkJCQkJCQkmKG51bGxzWzJdKSk7CiAK KwkJCWlmICghbnVsbHNbMl0pCisJCQl7CisJCQkJRGF0dW0JCWV4Y2VwdERhdHVtOworCQkJCWJv b2wJCWlzbnVsbDsKKworCQkJCS8qCisJCQkJICogV2UgZmV0Y2ggcHVidHVwbGUgaWYgcHVibGlj YXRpb24gaXMgbm90IEZPUiBBTEwgVEFCTEVTIGFuZAorCQkJCSAqIG5vdCBGT1IgVEFCTEVTIElO IFNDSEVNQS4gU28gaWYgcHJleGNlcHQgaXMgdHJ1ZSwgaXQKKwkJCQkgKiBpbmRpY2F0ZXMgdGhh dCBwcmF0dHJzIGNvbnRhaW5zIGNvbHVtbnMgdG8gYmUgZXhjbHVkZWQgZm9yCisJCQkJICogcmVw bGljYXRpb24uCisJCQkJICovCisJCQkJZXhjZXB0RGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVC TElDQVRJT05SRUxNQVAsIHB1YnR1cGxlLAorCQkJCQkJCQkJCQkgIEFudW1fcGdfcHVibGljYXRp b25fcmVsX3ByZXhjZXB0LAorCQkJCQkJCQkJCQkgICZpc251bGwpOworCisJCQkJaWYgKCFpc251 bGwgJiYgRGF0dW1HZXRCb29sKGV4Y2VwdERhdHVtKSkKKwkJCQkJZXhjZXB0X2NvbHVtbnMgPSBw dWJfY29sbGlzdF90b19iaXRtYXBzZXQoTlVMTCwgdmFsdWVzWzJdLCBOVUxMKTsKKwkJCX0KKwog CQkJLyogTnVsbCBpbmRpY2F0ZXMgbm8gZmlsdGVyLiAqLwogCQkJdmFsdWVzWzNdID0gU3lzQ2Fj aGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKIAkJCQkJCQkJCQlBbnVtX3Bn X3B1YmxpY2F0aW9uX3JlbF9wcnF1YWwsCkBAIC0xMzMxLDggKzEzNzQsMTIgQEAgcGdfZ2V0X3B1 YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJbnVsbHNbM10gPSB0cnVlOwog CQl9CiAKLQkJLyogU2hvdyBhbGwgY29sdW1ucyB3aGVuIHRoZSBjb2x1bW4gbGlzdCBpcyBub3Qg c3BlY2lmaWVkLiAqLwotCQlpZiAobnVsbHNbMl0pCisJCS8qCisJCSAqIENvbnN0cnVjdCBjb2x1 bW4gbGlzdCB0byBzaG93IGFsbCBjb2x1bW5zIHdoZW4gbm8gY29sdW1uIGxpc3QgaXMKKwkJICog c3BlY2lmaWVkIG9yIHRvIHNob3cgcmVtYWluaW5nIGNvbHVtbnMgd2hlbiBhIGNvbHVtbiBsaXN0 IGlzCisJCSAqIHByb3ZpZGVkIHdpdGggRVhDRVBULgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1 bW5zIHx8IG51bGxzWzJdKQogCQl7CiAJCQlSZWxhdGlvbglyZWwgPSB0YWJsZV9vcGVuKHJlbGlk LCBBY2Nlc3NTaGFyZUxvY2spOwogCQkJaW50CQkJbmF0dG51bXMgPSAwOwpAQCAtMTM2Myw2ICsx NDEwLDEzIEBAIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJ CQkJCWNvbnRpbnVlOwogCQkJCX0KIAorCQkJCS8qCisJCQkJICogU2tpcCBjb2x1bW5zIHRoYXQg YXJlIHBhcnQgb2YgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGgKKwkJCQkgKiBFWENFUFQuCisJ CQkJICovCisJCQkJaWYgKGV4Y2VwdF9jb2x1bW5zICYmIGJtc19pc19tZW1iZXIoYXR0LT5hdHRu dW0sIGV4Y2VwdF9jb2x1bW5zKSkKKwkJCQkJY29udGludWU7CisKIAkJCQlhdHRudW1zW25hdHRu dW1zKytdID0gYXR0LT5hdHRudW07CiAJCQl9CiAKQEAgLTEzNzEsNiArMTQyNSwxMSBAQCBwZ19n ZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJdmFsdWVzWzJdID0g UG9pbnRlckdldERhdHVtKGJ1aWxkaW50MnZlY3RvcihhdHRudW1zLCBuYXR0bnVtcykpOwogCQkJ CW51bGxzWzJdID0gZmFsc2U7CiAJCQl9CisJCQllbHNlCisJCQl7CisJCQkJdmFsdWVzWzJdID0g KERhdHVtKSAwOworCQkJCW51bGxzWzJdID0gdHJ1ZTsKKwkJCX0KIAogCQkJdGFibGVfY2xvc2Uo cmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9u Y21kcy5jCmluZGV4IDczMmJjYjQxNjFiLi5kZWRiODQ2MzQzYSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTIyNyw3ICsyMjcsNiBAQCBPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ c3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpf VEFCTEU6Ci0JCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CiAJCQkJKnJlbHMg PSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKIAkJCQlicmVhazsKIAkJCWNhc2Ug UFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgpAQCAtMzgxLDggKzM4MCw4IEBAIHB1Yl9yZl9j b250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0 ICphbmNlc3RvcnMsCiAgKiBUaGlzIGZ1bmN0aW9uIGV2YWx1YXRlcyB0d28gY29uZGl0aW9uczoK ICAqCiAgKiAxLiBFbnN1cmVzIHRoYXQgYWxsIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUgUkVQ TElDQSBJREVOVElUWSBhcmUgY292ZXJlZAotICogICAgYnkgdGhlIGNvbHVtbiBsaXN0LiBJZiBh bnkgY29sdW1uIGlzIG1pc3NpbmcsICppbnZhbGlkX2NvbHVtbl9saXN0IGlzIHNldAotICogICAg dG8gdHJ1ZS4KKyAqICAgIGJ5IHRoZSBjb2x1bW4gbGlzdCBhbmQgYXJlIG5vdCBwYXJ0IG9mIHRo ZSBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aAorICogICAgRVhDRVBULiBJZiBhbnkgY29sdW1u IGlzIG1pc3NpbmcsICppbnZhbGlkX2NvbHVtbl9saXN0IGlzIHNldCB0byB0cnVlLgogICogMi4g RW5zdXJlcyB0aGF0IGFsbCB0aGUgZ2VuZXJhdGVkIGNvbHVtbnMgcmVmZXJlbmNlZCBpbiB0aGUg UkVQTElDQSBJREVOVElUWQogICogICAgYXJlIHB1Ymxpc2hlZCwgZWl0aGVyIGJ5IGJlaW5nIGV4 cGxpY2l0bHkgbmFtZWQgaW4gdGhlIGNvbHVtbiBsaXN0IG9yLCBpZgogICogICAgbm8gY29sdW1u IGxpc3QgaXMgc3BlY2lmaWVkLCBieSBzZXR0aW5nIHRoZSBvcHRpb24KQEAgLTQwNCw2ICs0MDMs NyBAQCBwdWJfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxh dGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogCVR1cGxlRGVzYwlkZXNjID0gUmVsYXRpb25HZXREZXNj cihyZWxhdGlvbik7CiAJUHVibGljYXRpb24gKnB1YjsKIAlpbnQJCQl4OworCWJvb2wJCWV4Y2Vw dF9jb2x1bW5zID0gZmFsc2U7CiAKIAkqaW52YWxpZF9jb2x1bW5fbGlzdCA9IGZhbHNlOwogCSpp bnZhbGlkX2dlbl9jb2wgPSBmYWxzZTsKQEAgLTQyNyw3ICs0MjcsOCBAQCBwdWJfY29udGFpbnNf aW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0 b3JzLAogCiAJLyogRmV0Y2ggdGhlIGNvbHVtbiBsaXN0ICovCiAJcHViID0gR2V0UHVibGljYXRp b24ocHViaWQpOwotCWNoZWNrX2FuZF9mZXRjaF9jb2x1bW5fbGlzdChwdWIsIHB1Ymxpc2hfYXNf cmVsaWQsIE5VTEwsICZjb2x1bW5zKTsKKwljaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHVi LCBwdWJsaXNoX2FzX3JlbGlkLCBOVUxMLCAmY29sdW1ucywKKwkJCQkJCQkJJmV4Y2VwdF9jb2x1 bW5zKTsKIAogCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxyZXBsaWRlbnQgPT0gUkVQTElDQV9J REVOVElUWV9GVUxMKQogCXsKQEAgLTUxNyw4ICs1MTgsMTQgQEAgcHViX2NvbnRhaW5zX2ludmFs aWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywK IAkJCWF0dG51bSA9IGdldF9hdHRudW0ocHVibGlzaF9hc19yZWxpZCwgY29sbmFtZSk7CiAJCX0K IAotCQkvKiByZXBsaWNhIGlkZW50aXR5IGNvbHVtbiwgbm90IGNvdmVyZWQgYnkgdGhlIGNvbHVt biBsaXN0ICovCi0JCSppbnZhbGlkX2NvbHVtbl9saXN0IHw9ICFibXNfaXNfbWVtYmVyKGF0dG51 bSwgY29sdW1ucyk7CisJCS8qCisJCSAqIFJlcGxpY2EgaWRlbnRpdHkgY29sdW1uLCBub3QgY292 ZXJlZCBieSB0aGUgY29sdW1uIGxpc3Qgb3IgaXMgcGFydAorCQkgKiBvZiBjb2x1bW4gbGlzdCBz cGVjaWZpZWQgd2l0aCBFWENFUFQuCisJCSAqLworCQlpZiAoZXhjZXB0X2NvbHVtbnMpCisJCQkq aW52YWxpZF9jb2x1bW5fbGlzdCB8PSBibXNfaXNfbWVtYmVyKGF0dG51bSwgY29sdW1ucyk7CisJ CWVsc2UKKwkJCSppbnZhbGlkX2NvbHVtbl9saXN0IHw9ICFibXNfaXNfbWVtYmVyKGF0dG51bSwg Y29sdW1ucyk7CiAKIAkJaWYgKCppbnZhbGlkX2NvbHVtbl9saXN0ICYmICppbnZhbGlkX2dlbl9j b2wpCiAJCQlicmVhazsKQEAgLTE1MDIsNiArMTUwOSw3IEBAIEFsdGVyUHVibGljYXRpb25UYWJs ZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQlIZWFwVHVw bGUJcmZ0dXBsZTsKIAkJCU5vZGUJICAgKm9sZHJlbHdoZXJlY2xhdXNlID0gTlVMTDsKIAkJCUJp dG1hcHNldCAgKm9sZGNvbHVtbnMgPSBOVUxMOworCQkJYm9vbAkJb2xkZXhjZXB0ID0gZmFsc2U7 CiAKIAkJCS8qIGxvb2sgdXAgdGhlIGNhY2hlIGZvciB0aGUgb2xkIHJlbG1hcCAqLwogCQkJcmZ0 dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQVUJMSUNBVElPTlJFTE1BUCwKQEAgLTE1MTUsMjMgKzE1 MjMsMjggQEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3Rt dCwgSGVhcFR1cGxlIHR1cCwKIAkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHJmdHVwbGUpKQogCQkJ ewogCQkJCWJvb2wJCWlzbnVsbCA9IHRydWU7Ci0JCQkJRGF0dW0JCXdoZXJlQ2xhdXNlRGF0dW07 Ci0JCQkJRGF0dW0JCWNvbHVtbkxpc3REYXR1bTsKKwkJCQlEYXR1bQkJZGF0dW07CiAKIAkJCQkv KiBMb2FkIHRoZSBXSEVSRSBjbGF1c2UgZm9yIHRoaXMgdGFibGUuICovCi0JCQkJd2hlcmVDbGF1 c2VEYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKLQkJ CQkJCQkJCQkJCSAgIEFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwKLQkJCQkJCQkJCQkJ CSAgICZpc251bGwpOworCQkJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVM TUFQLCByZnR1cGxlLAorCQkJCQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycXVhbCwK KwkJCQkJCQkJCQkmaXNudWxsKTsKIAkJCQlpZiAoIWlzbnVsbCkKLQkJCQkJb2xkcmVsd2hlcmVj bGF1c2UgPSBzdHJpbmdUb05vZGUoVGV4dERhdHVtR2V0Q1N0cmluZyh3aGVyZUNsYXVzZURhdHVt KSk7CisJCQkJCW9sZHJlbHdoZXJlY2xhdXNlID0gc3RyaW5nVG9Ob2RlKFRleHREYXR1bUdldENT dHJpbmcoZGF0dW0pKTsKIAogCQkJCS8qIFRyYW5zZm9ybSB0aGUgaW50MnZlY3RvciBjb2x1bW4g bGlzdCB0byBhIGJpdG1hcC4gKi8KLQkJCQljb2x1bW5MaXN0RGF0dW0gPSBTeXNDYWNoZUdldEF0 dHIoUFVCTElDQVRJT05SRUxNQVAsIHJmdHVwbGUsCi0JCQkJCQkJCQkJCQkgIEFudW1fcGdfcHVi bGljYXRpb25fcmVsX3ByYXR0cnMsCi0JCQkJCQkJCQkJCQkgICZpc251bGwpOworCQkJCWRhdHVt ID0gU3lzQ2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLAorCQkJCQkJCQkJ CUFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsCisJCQkJCQkJCQkJJmlzbnVsbCk7CisJ CQkJaWYgKCFpc251bGwpCisJCQkJCW9sZGNvbHVtbnMgPSBwdWJfY29sbGlzdF90b19iaXRtYXBz ZXQoTlVMTCwgZGF0dW0sIE5VTEwpOwogCisJCQkJLyogTG9hZCB0aGUgcHJleGNlcHQgZmxhZyBm b3IgdGhpcyB0YWJsZS4gKi8KKwkJCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElP TlJFTE1BUCwgcmZ0dXBsZSwKKwkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4 Y2VwdCwKKwkJCQkJCQkJCQkmaXNudWxsKTsKIAkJCQlpZiAoIWlzbnVsbCkKLQkJCQkJb2xkY29s dW1ucyA9IHB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChOVUxMLCBjb2x1bW5MaXN0RGF0dW0sIE5V TEwpOworCQkJCQlvbGRleGNlcHQgPSBEYXR1bUdldEJvb2woZGF0dW0pOwogCiAJCQkJUmVsZWFz ZVN5c0NhY2hlKHJmdHVwbGUpOwogCQkJfQpAQCAtMTU1OCwxMyArMTU3MSwxNCBAQCBBbHRlclB1 YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVw LAogCQkJCSAqIENoZWNrIGlmIGFueSBvZiB0aGUgbmV3IHNldCBvZiByZWxhdGlvbnMgbWF0Y2hl cyB3aXRoIHRoZQogCQkJCSAqIGV4aXN0aW5nIHJlbGF0aW9ucyBpbiB0aGUgcHVibGljYXRpb24u IEFkZGl0aW9uYWxseSwgaWYgdGhlCiAJCQkJICogcmVsYXRpb24gaGFzIGFuIGFzc29jaWF0ZWQg V0hFUkUgY2xhdXNlLCBjaGVjayB0aGUgV0hFUkUKLQkJCQkgKiBleHByZXNzaW9ucyBhbHNvIG1h dGNoLiBTYW1lIGZvciB0aGUgY29sdW1uIGxpc3QuIERyb3AgdGhlCi0JCQkJICogcmVzdC4KKwkJ CQkgKiBleHByZXNzaW9ucyBhbHNvIG1hdGNoLiBTYW1lIGZvciB0aGUgY29sdW1uIGxpc3QgYW5k IGV4Y2VwdAorCQkJCSAqIGZsYWcuIERyb3AgdGhlIHJlc3QuCiAJCQkJICovCiAJCQkJaWYgKG5l d3JlbGlkID09IG9sZHJlbGlkKQogCQkJCXsKIAkJCQkJaWYgKGVxdWFsKG9sZHJlbHdoZXJlY2xh dXNlLCBuZXdwdWJyZWwtPndoZXJlQ2xhdXNlKSAmJgotCQkJCQkJYm1zX2VxdWFsKG9sZGNvbHVt bnMsIG5ld2NvbHVtbnMpKQorCQkJCQkJYm1zX2VxdWFsKG9sZGNvbHVtbnMsIG5ld2NvbHVtbnMp ICYmCisJCQkJCQlvbGRleGNlcHQgPT0gbmV3cHVicmVsLT5leGNlcHQpCiAJCQkJCXsKIAkJCQkJ CWZvdW5kID0gdHJ1ZTsKIAkJCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMmFlNTFlNWJmZTEu Ljc3NGRmZWJkZmE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTUzNSw3ICs1MzUsNyBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKICV0eXBl IDxsaXN0PglvcHRfY29sdW1uX2FuZF9wZXJpb2RfbGlzdAogJXR5cGUgPGxpc3Q+CXJvd3Nmcm9t X2l0ZW0gcm93c2Zyb21fbGlzdCBvcHRfY29sX2RlZl9saXN0Ci0ldHlwZSA8Ym9vbGVhbj4gb3B0 X29yZGluYWxpdHkgb3B0X3dpdGhvdXRfb3ZlcmxhcHMKKyV0eXBlIDxib29sZWFuPiBvcHRfb3Jk aW5hbGl0eSBvcHRfd2l0aG91dF9vdmVybGFwcyBvcHRfZXhjZXB0CiAldHlwZSA8bGlzdD4JRXhj bHVzaW9uQ29uc3RyYWludExpc3QgRXhjbHVzaW9uQ29uc3RyYWludEVsZW0KICV0eXBlIDxsaXN0 PglmdW5jX2FyZ19saXN0IGZ1bmNfYXJnX2xpc3Rfb3B0CiAldHlwZSA8bm9kZT4JZnVuY19hcmdf ZXhwcgpAQCAtNDQ4MCw2ICs0NDgwLDExIEBAIG9wdF93aXRob3V0X292ZXJsYXBzOgogCQkJfCAv KkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCTsKIAorb3B0X2V4Y2VwdDoKKwkJCUVY Q0VQVAkJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9 IGZhbHNlOyB9CisJCTsKKwogb3B0X2NvbHVtbl9saXN0OgogCQkJJygnIGNvbHVtbkxpc3QgJykn CQkJCQkJeyAkJCA9ICQyOyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5JTDsgfQpA QCAtMTA3OTYsMTQgKzEwODAxLDE1IEBAIENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKICAqIHJlbGF0 aW9uX2V4cHIgaGVyZS4KICAqLwogUHVibGljYXRpb25PYmpTcGVjOgotCQkJVEFCTEUgcmVsYXRp b25fZXhwciBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKKwkJCVRBQkxFIHJlbGF0aW9u X2V4cHIgb3B0X2V4Y2VwdCBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJ CQkJCSQkID0gbWFrZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5 cGUgPSBQVUJMSUNBVElPTk9CSl9UQUJMRTsKIAkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUo UHVibGljYXRpb25UYWJsZSk7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMjsKLQkJ CQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5zID0gJDM7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVD bGF1c2UgPSAkNDsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSAkMzsKKwkJCQkJJCQtPnB1 YnRhYmxlLT5jb2x1bW5zID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAk NTsKIAkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CiAJCQkJfQogCQkJfCBUQUJMRVMgSU5fUCBTQ0hF TUEgQ29sSWQKQEAgLTEwODE5LDcgKzEwODI1LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJ CQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9DVVJfU0NIRU1BOwog CQkJCQkkJC0+bG9jYXRpb24gPSBANDsKIAkJCQl9Ci0JCQl8IENvbElkIG9wdF9jb2x1bW5fbGlz dCBPcHRXaGVyZUNsYXVzZQorCQkJfCBDb2xJZCBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlzdCBP cHRXaGVyZUNsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9ialNw ZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTjsK QEAgLTEwODI3LDcgKzEwODMzLDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkgKiBJZiBl aXRoZXIgYSByb3cgZmlsdGVyIG9yIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgY3JlYXRlCiAJ CQkJCSAqIGEgUHVibGljYXRpb25UYWJsZSBvYmplY3QuCiAJCQkJCSAqLwotCQkJCQlpZiAoJDIg fHwgJDMpCisJCQkJCWlmICgkMiB8fCAkMyB8fCAkNCkKIAkJCQkJewogCQkJCQkJLyoKIAkJCQkJ CSAqIFRoZSBPcHRXaGVyZUNsYXVzZSBtdXN0IGJlIHN0b3JlZCBoZXJlIGJ1dCBpdCBpcwpAQCAt MTA4MzcsOCArMTA4NDMsOSBAQCBQdWJsaWNhdGlvbk9ialNwZWM6CiAJCQkJCQkgKi8KIAkJCQkJ CSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOwogCQkJCQkJJCQtPnB1 YnRhYmxlLT5yZWxhdGlvbiA9IG1ha2VSYW5nZVZhcihOVUxMLCAkMSwgQDEpOwotCQkJCQkJJCQt PnB1YnRhYmxlLT5jb2x1bW5zID0gJDI7Ci0JCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNl ID0gJDM7CisJCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9ICQyOworCQkJCQkJJCQtPnB1YnRh YmxlLT5jb2x1bW5zID0gJDM7CisJCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7 CiAJCQkJCX0KIAkJCQkJZWxzZQogCQkJCQl7CkBAIC0xMDg0NiwyNSArMTA4NTMsMjcgQEAgUHVi bGljYXRpb25PYmpTcGVjOgogCQkJCQl9CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0K LQkJCXwgQ29sSWQgaW5kaXJlY3Rpb24gb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJ CQl8IENvbElkIGluZGlyZWN0aW9uIG9wdF9leGNlcHQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJl Q2xhdXNlCiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJ CQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OOwogCQkJCQkk JC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJCQkJJCQtPnB1YnRh YmxlLT5yZWxhdGlvbiA9IG1ha2VSYW5nZVZhckZyb21RdWFsaWZpZWROYW1lKCQxLCAkMiwgQDEs IHl5c2Nhbm5lcik7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwotCQkJCQkkJC0+ cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0g JDM7CisJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUt PndoZXJlQ2xhdXNlID0gJDU7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCS8q IGdyYW1tYXIgbGlrZSB0YWJsZW5hbWUgKiAsIE9OTFkgdGFibGVuYW1lLCBPTkxZICggdGFibGVu YW1lICkgKi8KLQkJCXwgZXh0ZW5kZWRfcmVsYXRpb25fZXhwciBvcHRfY29sdW1uX2xpc3QgT3B0 V2hlcmVDbGF1c2UKKwkJCXwgZXh0ZW5kZWRfcmVsYXRpb25fZXhwciBvcHRfZXhjZXB0IG9wdF9j b2x1bW5fbGlzdCBPcHRXaGVyZUNsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJs aWNhdGlvbk9ialNwZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NP TlRJTlVBVElPTjsKIAkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJs ZSk7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSAkMTsKLQkJCQkJJCQtPnB1YnRhYmxl LT5jb2x1bW5zID0gJDI7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkMzsKKwkJ CQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSAkMjsKKwkJCQkJJCQtPnB1YnRhYmxlLT5jb2x1bW5z ID0gJDM7CisJCQkJCSQkLT5wdWJ0YWJsZS0+d2hlcmVDbGF1c2UgPSAkNDsKIAkJCQl9CiAJCQl8 IENVUlJFTlRfU0NIRU1BCiAJCQkJewpAQCAtMTk4NTYsNiArMTk4NjUsMTMgQEAgcHJlcHJvY2Vz c19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIGNvcmVfeXlzY2FuX3QgeXlzY2Fu bmVyKQogCQkJCQkJZXJybXNnKCJpbnZhbGlkIHRhYmxlIG5hbWUiKSwKIAkJCQkJCXBhcnNlcl9l cnJwb3NpdGlvbihwdWJvYmotPmxvY2F0aW9uKSk7CiAKKwkJCWlmIChwdWJvYmotPnB1YnRhYmxl ICYmIHB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCAmJgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmNv bHVtbnMgPT0gTlVMTCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCQllcnJtc2coInRhYmxlIHdpdGhvdXQgY29sdW1uIGxpc3Qg Y2Fubm90IHVzZSBFWENFUFQgY2xhdXNlIiksCisJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVi b2JqLT5sb2NhdGlvbikpOworCiAJCQlpZiAocHVib2JqLT5uYW1lKQogCQkJewogCQkJCS8qIGNv bnZlcnQgaXQgdG8gUHVibGljYXRpb25UYWJsZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvdGFibGVzeW5jLmMKaW5kZXggZGNjNjEyNGNjNzMuLjI5YTQ1M2Q1ZjYzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKQEAgLTcyMCwxMCAr NzIwLDE4IEBAIGNvcHlfcmVhZF9kYXRhKHZvaWQgKm91dGJ1ZiwgaW50IG1pbnJlYWQsIGludCBt YXhyZWFkKQogICogVGhpcyBmdW5jdGlvbiBhbHNvIHJldHVybnMgKGEpIHRoZSByZWxhdGlvbiBx dWFsaWZpY2F0aW9ucyB0byBiZSB1c2VkIGluCiAgKiB0aGUgQ09QWSBjb21tYW5kLCBhbmQgKGIp IHdoZXRoZXIgdGhlIHJlbW90ZSByZWxhdGlvbiBoYXMgcHVibGlzaGVkIGFueQogICogZ2VuZXJh dGVkIGNvbHVtbi4KKyAqCisgKiBXaXRoIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIEVYQ0VQVCBx dWFsaWZpZXIgaW4gY29sdW1uIGxpc3RzLCBpdCBpcyBub3cKKyAqIHBvc3NpYmxlIHRvIGRlZmlu ZSBhIHB1YmxpY2F0aW9uIHRoYXQgZXhjbHVkZXMgYWxsIGNvbHVtbnMgb2YgYSB0YWJsZS4gV2hl bgorICogdGhlIGNvbHVtbiBsaXN0IGlzIGZldGNoZWQgZnJvbSB0aGUgcmVtb3RlIHNlcnZlciBh bmQgaXMgTlVMTCwgaXQgbm9ybWFsbHkKKyAqIGluZGljYXRlcyB0aGF0IGFsbCBjb2x1bW5zIGFy ZSBpbmNsdWRlZC4gVG8gZGlzdGluZ3Vpc2ggdGhpcyBmcm9tIHRoZSBjYXNlCisgKiB3aGVyZSBh bGwgY29sdW1ucyBhcmUgZXhwbGljaXRseSBleGNsdWRlZCwgdGhlICdhbGxfY29sc19leGNsdWRl ZCcgZmxhZyBoYXMKKyAqIGJlZW4gaW50cm9kdWNlZC4KICAqLwogc3RhdGljIHZvaWQKIGZldGNo X3JlbW90ZV90YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxS ZXBSZWxhdGlvbiAqbHJlbCwKLQkJCQkJCUxpc3QgKipxdWFsLCBib29sICpnZW5jb2xfcHVibGlz aGVkKQorCQkJCQkJTGlzdCAqKnF1YWwsIGJvb2wgKmdlbmNvbF9wdWJsaXNoZWQsCisJCQkJCQli b29sICphbGxfY29sc19leGNsdWRlZCkKIHsKIAlXYWxSY3ZFeGVjUmVzdWx0ICpyZXM7CiAJU3Ry aW5nSW5mb0RhdGEgY21kOwpAQCAtNzM3LDYgKzc0NSw5IEBAIGZldGNoX3JlbW90ZV90YWJsZV9p bmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJl bCwKIAlCaXRtYXBzZXQgICppbmNsdWRlZF9jb2xzID0gTlVMTDsKIAlpbnQJCQlzZXJ2ZXJfdmVy c2lvbiA9IHdhbHJjdl9zZXJ2ZXJfdmVyc2lvbihMb2dSZXBXb3JrZXJXYWxSY3ZDb25uKTsKIAor CUFzc2VydCgqZ2VuY29sX3B1Ymxpc2hlZCA9PSBmYWxzZSk7CisJQXNzZXJ0KCphbGxfY29sc19l eGNsdWRlZCA9PSBmYWxzZSk7CisKIAlscmVsLT5uc3BuYW1lID0gbnNwbmFtZTsKIAlscmVsLT5y ZWxuYW1lID0gcmVsbmFtZTsKIApAQCAtNzg3LDcgKzc5OCw3IEBAIGZldGNoX3JlbW90ZV90YWJs ZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAq bHJlbCwKIAl7CiAJCVdhbFJjdkV4ZWNSZXN1bHQgKnB1YnJlczsKIAkJVHVwbGVUYWJsZVNsb3Qg KnRzbG90OwotCQlPaWQJCQlhdHRyc1Jvd1tdID0ge0lOVDJWRUNUT1JPSUR9OworCQlPaWQJCQlh dHRyc1Jvd1tdID0ge0lOVDJWRUNUT1JPSUQsIEJPT0xPSUR9OwogCiAJCS8qIEJ1aWxkIHRoZSBw dWJfbmFtZXMgY29tbWEtc2VwYXJhdGVkIHN0cmluZy4gKi8KIAkJcHViX25hbWVzID0gbWFrZVN0 cmluZ0luZm8oKTsKQEAgLTgwMSw3ICs4MTIsMTcgQEAgZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8o Y2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwgTG9naWNhbFJlcFJlbGF0aW9uICpscmVsLAog CQlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsCiAJCQkJCQkgIlNFTEVDVCBESVNUSU5DVCIKIAkJCQkJ CSAiICAoQ0FTRSBXSEVOIChhcnJheV9sZW5ndGgoZ3B0LmF0dHJzLCAxKSA9IGMucmVsbmF0dHMp IgotCQkJCQkJICIgICBUSEVOIE5VTEwgRUxTRSBncHQuYXR0cnMgRU5EKSIKKwkJCQkJCSAiICAg VEhFTiBOVUxMIEVMU0UgZ3B0LmF0dHJzIEVORCkiKTsKKworCQkvKgorCQkgKiBXaGVuIHB1Ymxp Y2F0aW9uIGlzIGNyZWF0ZWQgd2l0aCBFWENFUFQgKGNvbHVtbi1saXN0KSBhbmQgYWxsCisJCSAq IGNvbHVtbnMgYXJlIHNwZWNpZmllZCwgZ3B0LmF0dHJzIHdpbGwgYmUgTlVMTCBhbmQgbm8gY29s dW1ucyBhcmUKKwkJICogcHVibGlzaGVkIGluIHRoaXMgY2FzZS4KKwkJICovCisJCWlmIChzZXJ2 ZXJfdmVyc2lvbiA+PSAxOTAwMDApCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsICIsIGdwdC5h dHRycyBJUyBOVUxMIEFORCBjLnJlbG5hdHRzID4gMCIpOworCisJCWFwcGVuZFN0cmluZ0luZm8o JmNtZCwKIAkJCQkJCSAiICBGUk9NIHBnX3B1YmxpY2F0aW9uIHAsIgogCQkJCQkJICIgIExBVEVS QUwgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhwLnB1Ym5hbWUpIGdwdCwiCiAJCQkJCQkgIiAg cGdfY2xhc3MgYyIKQEAgLTgxMSw3ICs4MzIsNyBAQCBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhj aGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCiAJ CQkJCQkgcHViX25hbWVzLT5kYXRhKTsKIAogCQlwdWJyZXMgPSB3YWxyY3ZfZXhlYyhMb2dSZXBX b3JrZXJXYWxSY3ZDb25uLCBjbWQuZGF0YSwKLQkJCQkJCQkgbGVuZ3Rob2YoYXR0cnNSb3cpLCBh dHRyc1Jvdyk7CisJCQkJCQkJIHNlcnZlcl92ZXJzaW9uID49IDE5MDAwMCA/IDIgOiAxLCBhdHRy c1Jvdyk7CiAKIAkJaWYgKHB1YnJlcy0+c3RhdHVzICE9IFdBTFJDVl9PS19UVVBMRVMpCiAJCQll cmVwb3J0KEVSUk9SLApAQCAtODU4LDYgKzg3OSw5IEBAIGZldGNoX3JlbW90ZV90YWJsZV9pbmZv KGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlvbiAqbHJlbCwK IAkJCQkJaW5jbHVkZWRfY29scyA9IGJtc19hZGRfbWVtYmVyKGluY2x1ZGVkX2NvbHMsIGVsZW1z W25hdHRdKTsKIAkJCX0KIAorCQkJaWYgKHNlcnZlcl92ZXJzaW9uID49IDE5MDAwMCkKKwkJCQkq YWxsX2NvbHNfZXhjbHVkZWQgPSBEYXR1bUdldEJvb2woc2xvdF9nZXRhdHRyKHRzbG90LCAyLCAm aXNudWxsKSk7CisKIAkJCUV4ZWNDbGVhclR1cGxlKHRzbG90KTsKIAkJfQogCQlFeGVjRHJvcFNp bmdsZVR1cGxlVGFibGVTbG90KHRzbG90KTsKQEAgLTkyMCw3ICs5NDQsOCBAQCBmZXRjaF9yZW1v dGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVs YXRpb24gKmxyZWwsCiAJCUFzc2VydCghaXNudWxsKTsKIAogCQkvKiBJZiB0aGUgY29sdW1uIGlz IG5vdCBpbiB0aGUgY29sdW1uIGxpc3QsIHNraXAgaXQuICovCi0JCWlmIChpbmNsdWRlZF9jb2xz ICE9IE5VTEwgJiYgIWJtc19pc19tZW1iZXIoYXR0bnVtLCBpbmNsdWRlZF9jb2xzKSkKKwkJaWYg KCphbGxfY29sc19leGNsdWRlZCB8fAorCQkJKGluY2x1ZGVkX2NvbHMgIT0gTlVMTCAmJiAhYm1z X2lzX21lbWJlcihhdHRudW0sIGluY2x1ZGVkX2NvbHMpKSkKIAkJewogCQkJRXhlY0NsZWFyVHVw bGUoc2xvdCk7CiAJCQljb250aW51ZTsKQEAgLTEwNTIsMTEgKzEwNzcsMTUgQEAgY29weV90YWJs ZShSZWxhdGlvbiByZWwpCiAJUGFyc2VTdGF0ZSAqcHN0YXRlOwogCUxpc3QJICAgKm9wdGlvbnMg PSBOSUw7CiAJYm9vbAkJZ2VuY29sX3B1Ymxpc2hlZCA9IGZhbHNlOworCWJvb2wJCWFsbF9jb2xz X2V4Y2x1ZGVkID0gZmFsc2U7CiAKIAkvKiBHZXQgdGhlIHB1Ymxpc2hlciByZWxhdGlvbiBpbmZv LiAqLwogCWZldGNoX3JlbW90ZV90YWJsZV9pbmZvKGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlv bkdldE5hbWVzcGFjZShyZWwpKSwKIAkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp LCAmbHJlbCwgJnF1YWwsCi0JCQkJCQkJJmdlbmNvbF9wdWJsaXNoZWQpOworCQkJCQkJCSZnZW5j b2xfcHVibGlzaGVkLCAmYWxsX2NvbHNfZXhjbHVkZWQpOworCisJaWYgKGFsbF9jb2xzX2V4Y2x1 ZGVkKQorCQlyZXR1cm47CiAKIAkvKiBQdXQgdGhlIHJlbGF0aW9uIGludG8gcmVsbWFwLiAqLwog CWxvZ2ljYWxyZXBfcmVsbWFwX3VwZGF0ZSgmbHJlbCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCBhOTU5M2M1ZDlkYS4uN2Y1MzQ2MThjZjQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysr IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMTg1LDYg KzE4NSwxNiBAQCB0eXBlZGVmIHN0cnVjdCBSZWxhdGlvblN5bmNFbnRyeQogCSAqIHJvdyBmaWx0 ZXIgZXhwcmVzc2lvbnMsIGNvbHVtbiBsaXN0LCBldGMuCiAJICovCiAJTWVtb3J5Q29udGV4dCBl bnRyeV9jeHQ7CisKKwkvKgorCSAqIEluZGljYXRlcyB3aGV0aGVyIG5vIGNvbHVtbnMgYXJlIHB1 Ymxpc2hlZCBmb3IgYSBnaXZlbiByZWxhdGlvbi4gV2l0aAorCSAqIHRoZSBpbnRyb2R1Y3Rpb24g b2YgdGhlIEVYQ0VQVCBxdWFsaWZpZXIgaW4gY29sdW1uIGxpc3RzLCBpdCBpcyBub3cKKwkgKiBw b3NzaWJsZSB0byBkZWZpbmUgYSBwdWJsaWNhdGlvbiB0aGF0IGV4Y2x1ZGVzIGFsbCBjb2x1bW5z IG9mIGEgdGFibGUuCisJICogSG93ZXZlciwgdGhlICdjb2x1bW5zJyBhdHRyaWJ1dGUgY2Fubm90 IHJlcHJlc2VudCB0aGlzIGNhc2UsIHNpbmNlIGEKKwkgKiBOVUxMIHZhbHVlIGltcGxpZXMgdGhh dCBhbGwgY29sdW1ucyBhcmUgcHVibGlzaGVkLiBUbyBkaXN0aW5ndWlzaCB0aGlzCisJICogc2Nl bmFyaW8sIHRoZSAnYWxsX2NvbHNfZXhjbHVkZWQnIGZsYWcgaXMgaW50cm9kdWNlZC4KKwkgKi8K Kwlib29sCQlhbGxfY29sc19leGNsdWRlZDsKIH0gUmVsYXRpb25TeW5jRW50cnk7CiAKIC8qCkBA IC0xMDkxLDEyICsxMTAxLDIxIEBAIGNoZWNrX2FuZF9pbml0X2dlbmNvbChQR091dHB1dERhdGEg KmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAkgKi8KIAlmb3JlYWNoX3B0cihQdWJsaWNhdGlv biwgcHViLCBwdWJsaWNhdGlvbnMpCiAJeworCQlib29sCQloYXNfY29sdW1uX2xpc3QgPSBmYWxz ZTsKKwkJYm9vbAkJZXhjZXB0X2NvbHVtbnMgPSBmYWxzZTsKKworCQloYXNfY29sdW1uX2xpc3Qg PSBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLAorCQkJCQkJCQkJCQkJCSAgZW50cnkt PnB1Ymxpc2hfYXNfcmVsaWQsCisJCQkJCQkJCQkJCQkJICBOVUxMLCBOVUxMLAorCQkJCQkJCQkJ CQkJCSAgJmV4Y2VwdF9jb2x1bW5zKTsKKwogCQkvKgogCQkgKiBUaGUgY29sdW1uIGxpc3QgdGFr ZXMgcHJlY2VkZW5jZSBvdmVyIHRoZQogCQkgKiAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycg cGFyYW1ldGVyLiBUaG9zZSB3aWxsIGJlIGNoZWNrZWQgbGF0ZXIsCi0JCSAqIHNlZSBwZ291dHB1 dF9jb2x1bW5fbGlzdF9pbml0LgorCQkgKiBzZWUgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdC4g QnV0IHdoZW4gYSBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQKKwkJICogd2l0aCBFWENFUFQsIGl0 IHNob3VsZCBiZSBjaGVja2VkLgogCQkgKi8KLQkJaWYgKGNoZWNrX2FuZF9mZXRjaF9jb2x1bW5f bGlzdChwdWIsIGVudHJ5LT5wdWJsaXNoX2FzX3JlbGlkLCBOVUxMLCBOVUxMKSkKKwkJaWYgKGhh c19jb2x1bW5fbGlzdCAmJiAhZXhjZXB0X2NvbHVtbnMpCiAJCQljb250aW51ZTsKIAogCQlpZiAo Zmlyc3QpCkBAIC0xMTQ1LDE5ICsxMTY0LDQxIEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQo UEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJewogCQlQdWJsaWNhdGlv biAqcHViID0gbGZpcnN0KGxjKTsKIAkJQml0bWFwc2V0ICAqY29scyA9IE5VTEw7CisJCWJvb2wJ CWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisJCWJvb2wJCWFsbF9jb2xzX2V4Y2x1ZGVkID0gZmFs c2U7CiAKIAkJLyogUmV0cmlldmUgdGhlIGJpdG1hcCBvZiBjb2x1bW5zIGZvciBhIGNvbHVtbiBs aXN0IHB1YmxpY2F0aW9uLiAqLwogCQlmb3VuZF9wdWJfY29sbGlzdCB8PSBjaGVja19hbmRfZmV0 Y2hfY29sdW1uX2xpc3QocHViLAogCQkJCQkJCQkJCQkJCQkgZW50cnktPnB1Ymxpc2hfYXNfcmVs aWQsCi0JCQkJCQkJCQkJCQkJCSBlbnRyeS0+ZW50cnlfY3h0LCAmY29scyk7CisJCQkJCQkJCQkJ CQkJCSBlbnRyeS0+ZW50cnlfY3h0LCAmY29scywKKwkJCQkJCQkJCQkJCQkJICZleGNlcHRfY29s dW1ucyk7CisKKwkJLyoKKwkJICogSWYgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIHdpdGggRVhD RVBUIHJldHJpZXZlIGJpdG1hcCBvZiBjb2x1bW5zCisJCSAqIHdoaWNoIGFyZSBub3QgcGFydCBv ZiB0aGlzIGNvbHVtbiBsaXN0LgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1bW5zKQorCQl7CisJ CQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlbnRyeS0+ZW50 cnlfY3h0KTsKKworCQkJY29scyA9IHB1Yl9mb3JtX2NvbHNfbWFwKHJlbGF0aW9uLAorCQkJCQkJ CQkJIGVudHJ5LT5pbmNsdWRlX2dlbmNvbHNfdHlwZSwgY29scyk7CisJCQlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY3h0KTsKKworCQkJaWYgKCFjb2xzKQorCQkJCWFsbF9jb2xzX2V4Y2x1ZGVk ID0gdHJ1ZTsKKwkJfQogCiAJCS8qCi0JCSAqIEZvciBub24tY29sdW1uIGxpc3QgcHVibGljYXRp b25zIOKAlCBlLmcuIFRBQkxFICh3aXRob3V0IGEgY29sdW1uCi0JCSAqIGxpc3QpLCBBTEwgVEFC TEVTLCBvciBBTEwgVEFCTEVTIElOIFNDSEVNQSwgd2UgY29uc2lkZXIgYWxsIGNvbHVtbnMKLQkJ ICogb2YgdGhlIHRhYmxlIChpbmNsdWRpbmcgZ2VuZXJhdGVkIGNvbHVtbnMgd2hlbgorCQkgKiBJ ZiAnY29scycgaXMgbnVsbCwgaXQgaW5kaWNhdGVzIHRoYXQgdGhlIHB1YmxpY2F0aW9uIGlzIGVp dGhlciBhCisJCSAqIG5vbi1jb2x1bW4gbGlzdCBwdWJsaWNhdGlvbiBvciBvbmUgd2hlcmUgYWxs IGNvbHVtbnMgYXJlIGV4Y2x1ZGVkLgorCQkgKiBXaGVuICdhbGxfY29sc19leGNsdWRlZCcgaXMg dHJ1ZSwgaXQgZXhwbGljaXRseSBtZWFucyBhbGwgY29sdW1ucworCQkgKiBoYXZlIGJlZW4gZXhj bHVkZWQuIEZvciBub24tY29sdW1uIGxpc3QgcHVibGljYXRpb25zIOKAlCBlLmcuIFRBQkxFCisJ CSAqICh3aXRob3V0IGEgY29sdW1uIGxpc3QpLCBBTEwgVEFCTEVTLCBvciBBTEwgVEFCTEVTIElO IFNDSEVNQSwgd2UKKwkJICogY29uc2lkZXIgYWxsIGNvbHVtbnMgb2YgdGhlIHRhYmxlIChpbmNs dWRpbmcgZ2VuZXJhdGVkIGNvbHVtbnMgd2hlbgogCQkgKiAncHVibGlzaF9nZW5lcmF0ZWRfY29s dW1ucycgcGFyYW1ldGVyIGlzIHRydWUpLgogCQkgKi8KLQkJaWYgKCFjb2xzKQorCQlpZiAoIWFs bF9jb2xzX2V4Y2x1ZGVkICYmICFjb2xzKQogCQl7CiAJCQkvKgogCQkJICogQ2FjaGUgdGhlIHRh YmxlIGNvbHVtbnMgZm9yIHRoZSBmaXJzdCBwdWJsaWNhdGlvbiB3aXRoIG5vCkBAIC0xMTY5LDcg KzEyMTAsNyBAQCBwZ291dHB1dF9jb2x1bW5fbGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwg TGlzdCAqcHVibGljYXRpb25zLAogCQkJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKGVudHJ5LT5lbnRyeV9jeHQpOwogCiAJCQkJcmVsY29scyA9IHB1Yl9mb3Jt X2NvbHNfbWFwKHJlbGF0aW9uLAotCQkJCQkJCQkJCQllbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5 cGUpOworCQkJCQkJCQkJCQllbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUsIE5VTEwpOwogCQkJ CU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQkJfQogCkBAIC0xMTc5LDkgKzEyMjAs MTEgQEAgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdChQR091dHB1dERhdGEgKmRhdGEsIExpc3Qg KnB1YmxpY2F0aW9ucywKIAkJaWYgKGZpcnN0KQogCQl7CiAJCQllbnRyeS0+Y29sdW1ucyA9IGNv bHM7CisJCQllbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQgPSBhbGxfY29sc19leGNsdWRlZDsKIAkJ CWZpcnN0ID0gZmFsc2U7CiAJCX0KLQkJZWxzZSBpZiAoIWJtc19lcXVhbChlbnRyeS0+Y29sdW1u cywgY29scykpCisJCWVsc2UgaWYgKChlbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQgIT0gYWxsX2Nv bHNfZXhjbHVkZWQpIHx8CisJCQkJICFibXNfZXF1YWwoZW50cnktPmNvbHVtbnMsIGNvbHMpKQog CQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCiAJCQkJCWVycm1zZygiY2Fubm90IHVzZSBkaWZmZXJlbnQgY29sdW1uIGxpc3RzIGZv ciB0YWJsZSBcIiVzLiVzXCIgaW4gZGlmZmVyZW50IHB1YmxpY2F0aW9ucyIsCkBAIC0xNTA1LDYg KzE1NDgsMTMgQEAgcGdvdXRwdXRfY2hhbmdlKExvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eCwg UmVvcmRlckJ1ZmZlclRYTiAqdHhuLAogCiAJcmVsZW50cnkgPSBnZXRfcmVsX3N5bmNfZW50cnko ZGF0YSwgcmVsYXRpb24pOwogCisJLyoKKwkgKiBJZiBhbGwgY29sdW1ucyBvZiBhIHRhYmxlIGFy ZSBwcmVzZW50IGluIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoCisJICogRVhDRVBULCBza2lw IHB1Ymxpc2hpbmcgdGhlIGNoYW5nZXMuCisJICovCisJaWYgKHJlbGVudHJ5LT5hbGxfY29sc19l eGNsdWRlZCkKKwkJcmV0dXJuOworCiAJLyogRmlyc3QgY2hlY2sgdGhlIHRhYmxlIGZpbHRlciAq LwogCXN3aXRjaCAoYWN0aW9uKQogCXsKQEAgLTIwNzgsNiArMjEyOCw3IEBAIGdldF9yZWxfc3lu Y19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQllbnRyeS0+ cHVibGlzaF9hc19yZWxpZCA9IEludmFsaWRPaWQ7CiAJCWVudHJ5LT5jb2x1bW5zID0gTlVMTDsK IAkJZW50cnktPmF0dHJtYXAgPSBOVUxMOworCQllbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQgPSBm YWxzZTsKIAl9CiAKIAkvKiBWYWxpZGF0ZSB0aGUgZW50cnkgKi8KQEAgLTIxMjcsNiArMjE3OCw3 IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0 aW9uKQogCQllbnRyeS0+cHViYWN0aW9ucy5wdWJ1cGRhdGUgPSBmYWxzZTsKIAkJZW50cnktPnB1 YmFjdGlvbnMucHViZGVsZXRlID0gZmFsc2U7CiAJCWVudHJ5LT5wdWJhY3Rpb25zLnB1YnRydW5j YXRlID0gZmFsc2U7CisJCWVudHJ5LT5hbGxfY29sc19leGNsdWRlZCA9IGZhbHNlOwogCiAJCS8q CiAJCSAqIFR1cGxlIHNsb3RzIGNsZWFudXBzLiAoV2lsbCBiZSByZWJ1aWx0IGxhdGVyIGlmIG5l ZWRlZCkuCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYwppbmRleCBlMzRhYWJhNzkzNy4uMWZkYjkwZjY0ODIgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNDkzMywyNCArNDkzMyw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUg KmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCWlmICh0YmluZm8g PT0gTlVMTCkKIAkJCWNvbnRpbnVlOwogCi0JCS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3Qg Zm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCWlmIChzdHJjbXAocHJleGNlcHQsICJmIikgPT0g MCkKLQkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKLQkJ ZWxzZQotCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBU X1JFTDsKLQotCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KLQkJCWF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOwotCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElk Lm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKLQkJQXNzaWduRHVtcElk KCZwdWJyaW5mb1tqXS5kb2JqKTsKLQkJcHVicmluZm9bal0uZG9iai5uYW1lc3BhY2UgPSB0Ymlu Zm8tPmRvYmoubmFtZXNwYWNlOwotCQlwdWJyaW5mb1tqXS5kb2JqLm5hbWUgPSB0YmluZm8tPmRv YmoubmFtZTsKLQkJcHVicmluZm9bal0ucHVibGljYXRpb24gPSBwdWJpbmZvOwotCQlwdWJyaW5m b1tqXS5wdWJ0YWJsZSA9IHRiaW5mbzsKLQkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV9wcnJl bHF1YWwpKQotCQkJcHVicmluZm9bal0ucHVicmVscXVhbCA9IE5VTEw7Ci0JCWVsc2UKLQkJCXB1 YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfcHJy ZWxxdWFsKSk7CisJCXB1YnJpbmZvW2pdLnB1YmV4Y2VwdCA9IChzdHJjbXAocHJleGNlcHQsICJ0 IikgPT0gMCk7CiAKIAkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfcHJhdHRycykpCiAJCXsK QEAgLTQ5NzYsMTAgKzQ5NTksMjkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91 dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJZWxzZQogCQkJcHVicmlu Zm9bal0ucHVicmF0dHJzID0gTlVMTDsKIAorCQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0 IGZvciB0aGlzIHJlbGF0aW9uc2hpcCAqLworCQlpZiAocHVicmluZm9bal0ucHViZXhjZXB0ICYm ICFwdWJyaW5mb1tqXS5wdWJyYXR0cnMpCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBE T19QVUJMSUNBVElPTl9FWENFUFRfUkVMOworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5kb2JqLm9i alR5cGUgPSBET19QVUJMSUNBVElPTl9SRUw7CisKKwkJcHVicmluZm9bal0uZG9iai5jYXRJZC50 YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJ cHVicmluZm9bal0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlf b2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmcHVicmluZm9bal0uZG9iaik7CisJCXB1YnJpbmZvW2pd LmRvYmoubmFtZXNwYWNlID0gdGJpbmZvLT5kb2JqLm5hbWVzcGFjZTsKKwkJcHVicmluZm9bal0u ZG9iai5uYW1lID0gdGJpbmZvLT5kb2JqLm5hbWU7CisJCXB1YnJpbmZvW2pdLnB1YmxpY2F0aW9u ID0gcHViaW5mbzsKKwkJcHVicmluZm9bal0ucHVidGFibGUgPSB0YmluZm87CisJCWlmIChQUWdl dGlzbnVsbChyZXMsIGksIGlfcHJyZWxxdWFsKSkKKwkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwg PSBOVUxMOworCQllbHNlCisJCQlwdWJyaW5mb1tqXS5wdWJyZWxxdWFsID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3BycmVscXVhbCkpOworCiAJCS8qIERlY2lkZSB3aGV0aGVyIHdl IHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1wYWJsZVB1YmxpY2F0aW9uT2JqZWN0KCYo cHVicmluZm9bal0uZG9iaiksIGZvdXQpOwogCi0JCWlmIChzdHJjbXAocHJleGNlcHQsICJ0Iikg PT0gMCkKKwkJaWYgKHB1YnJpbmZvW2pdLnB1YmV4Y2VwdCAmJiAhcHVicmluZm9bal0ucHVicmF0 dHJzKQogCQkJc2ltcGxlX3B0cl9saXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pd KTsKIAogCQlqKys7CkBAIC01MDU5LDcgKzUwNjEsMTIgQEAgZHVtcFB1YmxpY2F0aW9uVGFibGUo QXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbykKIAkJCQkJ ICBmbXRRdWFsaWZpZWREdW1wYWJsZSh0YmluZm8pKTsKIAogCWlmIChwdWJyaW5mby0+cHVicmF0 dHJzKQorCXsKKwkJaWYgKHB1YnJpbmZvLT5wdWJleGNlcHQpCisJCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cihxdWVyeSwgIiBFWENFUFQiKTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiAo JXMpIiwgcHVicmluZm8tPnB1YnJhdHRycyk7CisJfQogCiAJaWYgKHB1YnJpbmZvLT5wdWJyZWxx dWFsKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDcyM2I1NTc1YzUzLi5jYTJkMzU2ZjcyYSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oCkBAIC02OTAsNiArNjkwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1B1YmxpY2F0aW9uUmVs SW5mbwogCVRhYmxlSW5mbyAgKnB1YnRhYmxlOwogCWNoYXIJICAgKnB1YnJlbHF1YWw7CiAJY2hh cgkgICAqcHVicmF0dHJzOworCWJvb2wJCXB1YmV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZv OwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYwppbmRleCA1MGIxZDQzNTM1OS4uNmNlYjEwOGEzNWIgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBA IC0xNTYwLDYgKzE1NjAsOTEgQEAgZGVzY3JpYmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0pCiAJcmV0dXJuIHRydWU7CiB9CiAK Ky8qCisgKiBBZGQgYSBmb290ZXIgdG8gYSBwdWJsaWNhdGlvbiBkZXNjcmlwdGlvbiBvciBhIHRh YmxlIGRlc2NyaXB0aW9uLgorICoKKyAqICdpc19wdWJfZGVzYycgLSB0cnVlIGZvciBhIHB1YiBk ZXNjOyBmYWxzZSBmb3IgYSB0YWJsZSBkZXNjCisgKiAncHViX3NjaGVtYXMnIC0gdHJ1ZSBpZiB0 aGUgcHViX2Rlc2Mgb25seSBzaG93cyBzY2hlbWFzLCBvdGhlcndpc2UgZmFsc2UKKyAqLworc3Rh dGljIGJvb2wKK2FkZEZvb3RlclRvUHVibGljYXRpb25PclRhYmxlRGVzYyhQUUV4cEJ1ZmZlciBi dWYsCisJCQkJCQkJCSAgcHJpbnRUYWJsZUNvbnRlbnQgKmNvbnN0IGNvbnQsCisJCQkJCQkJCSAg Y29uc3QgY2hhciAqZm9vdGVybXNnLAorCQkJCQkJCQkgIGJvb2wgaXNfcHViX2Rlc2MsIGJvb2wg cHViX3NjaGVtYXMpCit7CisJUEdyZXN1bHQgICAqcmVzOworCWludAkJCWNvdW50OworCWludAkJ CWNvbCA9IGlzX3B1Yl9kZXNjID8gMSA6IDA7CisKKwlyZXMgPSBQU1FMZXhlYyhidWYtPmRhdGEp OworCWlmICghcmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwljb3VudCA9IFBRbnR1cGxlcyhyZXMp OworCWlmIChjb3VudCA+IDApCisJCXByaW50VGFibGVBZGRGb290ZXIoY29udCwgZm9vdGVybXNn KTsKKworCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKwkgKiBEZXNjcmlwdGlvbiBjb2x1bW5zIGZvcjoKKwkgKgorCSAqIFBV QiAgICAgIFRCTAorCSAqIFswXSAgICAgIC0gICAgICA6IHNjaGVtYSBuYW1lIChuc3BuYW1lKQor CSAqIFtjb2xdICAgIC0gICAgICA6IHRhYmxlIG5hbWUgKHJlbG5hbWUpCisJICogLSAgICAgICAg W2NvbF0gIDogcHVibGljYXRpb24gbmFtZSAocHVibmFtZSkKKwkgKiBbY29sKzFdICBbY29sKzFd OiByb3cgZmlsdGVyIGV4cHJlc3Npb24gKHBycXVhbCksIG1heSBiZSBOVUxMCisJICogW2NvbCsy XSAgW2NvbCsyXTogY29sdW1uIGxpc3QgKGNvbW1hLXNlcGFyYXRlZCksIG1heSBiZSBOVUxMCisJ ICogW2NvbCszXSAgW2NvbCszXTogZXhjZXB0IGZsYWcgKCJ0IiBpZiBFWENFUFQsIGVsc2UgImYi KQorCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKwkgKi8KKwlmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspCisJewor CQlwcmludGZQUUV4cEJ1ZmZlcihidWYsICIgICAgIik7IC8qIGluZGVudCAqLworCisJCS8qCisJ CSAqIEZvb3RlciBlbnRyaWVzIGZvciBhIHB1YmxpY2F0aW9uIGRlc2NyaXB0aW9uIG9yIGEgdGFi bGUKKwkJICogZGVzY3JpcHRpb24KKwkJICovCisJCWlmIChpc19wdWJfZGVzYykKKwkJeworCQkJ aWYgKHB1Yl9zY2hlbWFzKQorCQkJeworCQkJCS8qIFNjaGVtYXMgb2YgdGhlIHB1YmxpY2F0aW9u Li4uICovCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAiXCIlc1wiIiwgUFFnZXR2YWx1ZShy ZXMsIGksIDApKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQkvKiBUYWJsZXMgb2YgdGhlIHB1 YmxpY2F0aW9uLi4uICovCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoYnVmLCAiXCIlcy4lc1wiIiwg UFFnZXR2YWx1ZShyZXMsIGksIDApLAorCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzLCBpLCBjb2wp KTsKKwkJCX0KKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIFB1YmxpY2F0aW9ucyBvZiB0aGUgdGFi bGUuLi4gKi8KKwkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIlwiJXNcIiIsIFBRZ2V0dmFsdWUo cmVzLCBpLCBjb2wpKTsKKwkJfQorCisJCS8qIENvbW1vbiBmb290ZXIgb3V0cHV0IGZvciBjb2x1 bW4gbGlzdCBhbmQvb3Igcm93IGZpbHRlciAqLworCQlpZiAoIXB1Yl9zY2hlbWFzKQorCQl7CisJ CQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgY29sICsgMikpCisJCQl7CisJCQkJaWYgKHN0cmNt cChQUWdldHZhbHVlKHJlcywgaSwgY29sICsgMyksICJ0IikgPT0gMCkKKwkJCQkJYXBwZW5kUFFF eHBCdWZmZXIoYnVmLCAiIEVYQ0VQVCIpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiAo JXMpIiwgUFFnZXR2YWx1ZShyZXMsIGksIGNvbCArIDIpKTsKKwkJCX0KKworCQkJaWYgKCFQUWdl dGlzbnVsbChyZXMsIGksIGNvbCArIDEpKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiBX SEVSRSAlcyIsIFBRZ2V0dmFsdWUocmVzLCBpLCBjb2wgKyAxKSk7CisJCX0KKworCQlwcmludFRh YmxlQWRkRm9vdGVyKGNvbnQsIGJ1Zi0+ZGF0YSk7CisJfQorCisJUFFjbGVhcihyZXMpOworCXJl dHVybiB0cnVlOworfQorCiAvKgogICogZGVzY3JpYmVPbmVUYWJsZURldGFpbHMgKGZvciBcZCkK ICAqCkBAIC0zMDUzLDE2ICszMTM4LDI3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0 IGNoYXIgKnNjaGVtYW5hbWUsCiAJCS8qIHByaW50IGFueSBwdWJsaWNhdGlvbnMgKi8KIAkJaWYg KHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQogCQl7Ci0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx NTAwMDApCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCiAJCQl7CiAJCQkJcHJpbnRm UFFFeHBCdWZmZXIoJmJ1ZiwKKworCQkJCS8qCisJCQkJICogR2V0IGFsbCBwdWJsaWNhdGlvbnMg Zm9yIHRoZSBzY2hlbWEgdGhhdCB0aGlzIHJlbGF0aW9uIGlzCisJCQkJICogcGFydCBvZgorCQkJ CSAqLwogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgogCQkJCQkJCQkgICIgICAgICwgTlVM TFxuIgogCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgog CQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgogCQkJCQkJCQkg ICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gcC5v aWQgPSBwbi5wbnB1YmlkXG4iCiAJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2Ns YXNzIHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKIAkJCQkJCQkJICAiV0hF UkUgcGMub2lkID0nJXMnIGFuZCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxl KCclcycpXG4iCisKKwkJCQkvKgorCQkJCSAqIEdldCBhbGwgcHVibGljYXRpb25zIGZvciB0aGlz IHJlbGF0aW9uIGNyZWF0ZWQgdXNpbmcgRk9SCisJCQkJICogVEFCTEUKKwkJCQkgKi8KIAkJCQkJ CQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAi ICAgICAsIHBnX2dldF9leHByKHByLnBycXVhbCwgYy5vaWQpXG4iCkBAIC0zMDcyLDM1ICszMTY4 LDY3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJ CQkJCQkJCSAgIiAgICAgICAgICAgICAgICBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZVxuIgogCQkJ CQkJCQkgICIgICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0g PSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKKwkJ CQkJCQkJICAiCQksIHByZXhjZXB0ICIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1 YmxpY2F0aW9uIHBcbiIKIAkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRp b25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxuIgogCQkJCQkJCQkgICIJCUpPSU4gcGdf Y2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJX SEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIiwKLQkJCQkJCQkJICBvaWQsIG9pZCwgb2lkKTsKLQot CQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKLQkJCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIoJmJ1ZiwgIiBBTkQgTk9UIHByLnByZXhjZXB0XG4iKTsKKwkJCQkJCQkJICAiV0hFUkUgcHIu cHJyZWxpZCA9ICclcycgIgorCQkJCQkJCQkgICJBTkQJcC5wdWJhbGx0YWJsZXMgPSBmYWxzZVxu IgorCQkJCQkJCQkgICJBTkQgIGMucmVsbmFtZXNwYWNlIE5PVCBJTiAoXG4gIgorCQkJCQkJCQkg ICIgCVNFTEVDVCBwbm5zcGlkIEZST01cbiIKKwkJCQkJCQkJICAiIAlwZ19jYXRhbG9nLnBnX3B1 YmxpY2F0aW9uX25hbWVzcGFjZSlcbiIKIAotCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCisJ CQkJLyoKKwkJCQkgKiBHZXQgYWxsIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9ucyB0aGF0IGlu Y2x1ZGUgdGhpcworCQkJCSAqIHJlbGF0aW9uCisJCQkJICovCiAJCQkJCQkJCSAgIlVOSU9OXG4i CiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCiAJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJ CQkJCQkJCSAgIgkJLCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAg IkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAgIldIRVJFIHAu cHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCcl cycpXG4iLAotCQkJCQkJCQkgIG9pZCk7Ci0KLQkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAw MDApCi0JCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJCQkgICIgICAgIEFORCBO T1QgRVhJU1RTIChcbiIKLQkJCQkJCQkJCSAgIgkJU0VMRUNUIDFcbiIKLQkJCQkJCQkJCSAgIgkJ RlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwclxuIgotCQkJCQkJCQkJICAiCQlK T0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKLQkJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxp ZCA9IHBjLm9pZFxuIgotCQkJCQkJCQkJICAiCQlXSEVSRSBwci5wcnJlbGlkID0gJyVzJyBBTkQg cHIucHJwdWJpZCA9IHAub2lkKVxuIiwKLQkJCQkJCQkJCSAgb2lkKTsKLQotCQkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxOyIpOworCQkJCQkJCQkgICJXSEVSRSBwLnB1 YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMn KVxuIgorCQkJCQkJCQkgICIgICAgIEFORCBOT1QgRVhJU1RTIChcbiIKKwkJCQkJCQkJICAiCQlT RUxFQ1QgMVxuIgorCQkJCQkJCQkgICIJCUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9y ZWwgcHJcbiIKKwkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGNcbiIKKwkJ CQkJCQkJICAiCQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJCQkJCSAgIgkJV0hFUkUg cHIucHJyZWxpZCA9ICclcycgQU5EIHByLnBycHViaWQgPSBwLm9pZClcbiIKKwkJCQkJCQkJICAi T1JERVIgQlkgMTsiLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCwgb2lkKTsKKwkJCX0K KwkJCWVsc2UgaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJeworCQkJCXByaW50ZlBR RXhwQnVmZmVyKCZidWYsCisJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJCSAg IiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIkZS T00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBw Z19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSBwbiBPTiBwLm9pZCA9IHBuLnBucHVi aWRcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgcGMgT04gcGMu cmVsbmFtZXNwYWNlID0gcG4ucG5uc3BpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwYy5vaWQgPScl cycgYW5kIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKKwkJ CQkJCQkJICAiVU5JT05cbiIKKwkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKKwkJCQkJCQkJ ICAiICAgICAsIHBnX2dldF9leHByKHByLnBycXVhbCwgYy5vaWQpXG4iCisJCQkJCQkJCSAgIiAg ICAgLCAoQ0FTRSBXSEVOIHByLnByYXR0cnMgSVMgTk9UIE5VTEwgVEhFTlxuIgorCQkJCQkJCQkg ICIgICAgICAgICAoU0VMRUNUIHN0cmluZ19hZ2coYXR0bmFtZSwgJywgJylcbiIKKwkJCQkJCQkJ ICAiICAgICAgICAgICBGUk9NIHBnX2NhdGFsb2cuZ2VuZXJhdGVfc2VyaWVzKDAsIHBnX2NhdGFs b2cuYXJyYXlfdXBwZXIocHIucHJhdHRyczo6cGdfY2F0YWxvZy5pbnQyW10sIDEpKSBzLFxuIgor CQkJCQkJCQkgICIgICAgICAgICAgICAgICAgcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGVcbiIKKwkJ CQkJCQkJICAiICAgICAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVt ID0gcHJhdHRyc1tzXSlcbiIKKwkJCQkJCQkJICAiICAgICAgICBFTFNFIE5VTEwgRU5EKSAiCisJ CQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCisJCQkJCQkJCSAg IiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHBy LnBycHViaWRcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBP TiBjLm9pZCA9IHByLnBycmVsaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICcl cydcbiIKKwkJCQkJCQkJICAiVU5JT05cbiIKKwkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIK KwkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJ CQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKKwkJCQkJCQkJICAi V0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlz aGFibGUoJyVzJylcbiIKKwkJCQkJCQkJICAiT1JERVIgQlkgMTsiLAorCQkJCQkJCQkgIG9pZCwg b2lkLCBvaWQsIG9pZCk7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC0zMTIxLDM0ICszMjQ5LDgg QEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJ CQkJICBvaWQsIG9pZCk7CiAJCQl9CiAKLQkJCXJlc3VsdCA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsK LQkJCWlmICghcmVzdWx0KQorCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uT3JUYWJsZURl c2MoJmJ1ZiwgJmNvbnQsIF8oIlB1YmxpY2F0aW9uczoiKSwgZmFsc2UsIGZhbHNlKSkKIAkJCQln b3RvIGVycm9yX3JldHVybjsKLQkJCWVsc2UKLQkJCQl0dXBsZXMgPSBQUW50dXBsZXMocmVzdWx0 KTsKLQotCQkJaWYgKHR1cGxlcyA+IDApCi0JCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwg XygiUHVibGljYXRpb25zOiIpKTsKLQotCQkJLyogTWlnaHQgYmUgYW4gZW1wdHkgc2V0IC0gdGhh dCdzIG9rICovCi0JCQlmb3IgKGkgPSAwOyBpIDwgdHVwbGVzOyBpKyspCi0JCQl7Ci0JCQkJcHJp bnRmUFFFeHBCdWZmZXIoJmJ1ZiwgIiAgICBcIiVzXCIiLAotCQkJCQkJCQkgIFBRZ2V0dmFsdWUo cmVzdWx0LCBpLCAwKSk7Ci0KLQkJCQkvKiBjb2x1bW4gbGlzdCAoaWYgYW55KSAqLwotCQkJCWlm ICghUFFnZXRpc251bGwocmVzdWx0LCBpLCAyKSkKLQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1 ZiwgIiAoJXMpIiwKLQkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDIpKTsKLQotCQkJ CS8qIHJvdyBmaWx0ZXIgKGlmIGFueSkgKi8KLQkJCQlpZiAoIVBRZ2V0aXNudWxsKHJlc3VsdCwg aSwgMSkpCi0JCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgV0hFUkUgJXMiLAotCQkJCQkJ CQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwgMSkpOwotCi0JCQkJcHJpbnRUYWJsZUFkZEZvb3Rl cigmY29udCwgYnVmLmRhdGEpOwotCQkJfQotCQkJUFFjbGVhcihyZXN1bHQpOwogCQl9CiAKIAkJ LyoKQEAgLTY1MzIsNDkgKzY2MzQsNiBAQCBsaXN0UHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBh dHRlcm4pCiAJcmV0dXJuIHRydWU7CiB9CiAKLS8qCi0gKiBBZGQgZm9vdGVyIHRvIHB1YmxpY2F0 aW9uIGRlc2NyaXB0aW9uLgotICovCi1zdGF0aWMgYm9vbAotYWRkRm9vdGVyVG9QdWJsaWNhdGlv bkRlc2MoUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBjaGFyICpmb290ZXJtc2csCi0JCQkJCQkgICBi b29sIGFzX3NjaGVtYSwgcHJpbnRUYWJsZUNvbnRlbnQgKmNvbnN0IGNvbnQpCi17Ci0JUEdyZXN1 bHQgICAqcmVzOwotCWludAkJCWNvdW50ID0gMDsKLQlpbnQJCQlpID0gMDsKLQotCXJlcyA9IFBT UUxleGVjKGJ1Zi0+ZGF0YSk7Ci0JaWYgKCFyZXMpCi0JCXJldHVybiBmYWxzZTsKLQllbHNlCi0J CWNvdW50ID0gUFFudHVwbGVzKHJlcyk7Ci0KLQlpZiAoY291bnQgPiAwKQotCQlwcmludFRhYmxl QWRkRm9vdGVyKGNvbnQsIGZvb3Rlcm1zZyk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkr KykKLQl7Ci0JCWlmIChhc19zY2hlbWEpCi0JCQlwcmludGZQUUV4cEJ1ZmZlcihidWYsICIgICAg XCIlc1wiIiwgUFFnZXR2YWx1ZShyZXMsIGksIDApKTsKLQkJZWxzZQotCQl7Ci0JCQlwcmludGZQ UUV4cEJ1ZmZlcihidWYsICIgICAgXCIlcy4lc1wiIiwgUFFnZXR2YWx1ZShyZXMsIGksIDApLAot CQkJCQkJCSAgUFFnZXR2YWx1ZShyZXMsIGksIDEpKTsKLQotCQkJaWYgKCFQUWdldGlzbnVsbChy ZXMsIGksIDMpKQotCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiAoJXMpIiwgUFFnZXR2YWx1 ZShyZXMsIGksIDMpKTsKLQotCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIDIpKQotCQkJCWFw cGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiBXSEVSRSAlcyIsIFBRZ2V0dmFsdWUocmVzLCBpLCAyKSk7 Ci0JCX0KLQotCQlwcmludFRhYmxlQWRkRm9vdGVyKGNvbnQsIGJ1Zi0+ZGF0YSk7Ci0JfQotCi0J UFFjbGVhcihyZXMpOwotCXJldHVybiB0cnVlOwotfQotCiAvKgogICogXGRScCsKICAqIERlc2Ny aWJlcyBwdWJsaWNhdGlvbnMgaW5jbHVkaW5nIHRoZSBjb250ZW50cy4KQEAgLTY3NjQsNiArNjgy MywxMiBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJZWxz ZQogCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCiAJCQkJCQkJCQkgIiwgTlVMTCwgTlVM TCIpOworCisJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCisJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIiwgcHJleGNlcHQiKTsKKwkJCWVsc2UKKwkJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiLCBOVUxMIik7CisKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJ CQkJCQkJICAiXG5GUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgYyxcbiIKIAkJCQkJCQkgICIgICAg IHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4sXG4iCkBAIC02NzcyLDExICs2ODM3LDggQEAgZGVz Y3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgIEFORCBj Lm9pZCA9IHByLnBycmVsaWRcbiIKIAkJCQkJCQkgICIgIEFORCBwci5wcnB1YmlkID0gJyVzJ1xu IiwgcHViaWQpOwogCi0JCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0JCQkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwgIiAgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7Ci0KIAkJCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsICJPUkRFUiBCWSAxLDIiKTsKLQkJCWlmICghYWRkRm9vdGVyVG9Q dWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiVGFibGVzOiIpLCBmYWxzZSwgJmNvbnQpKQorCQkJaWYg KCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uT3JUYWJsZURlc2MoJmJ1ZiwgJmNvbnQsIF8oIlRhYmxl czoiKSwgdHJ1ZSwgZmFsc2UpKQogCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCiAJCQlpZiAocHNl dC5zdmVyc2lvbiA+PSAxNTAwMDApCkBAIC02Nzg4LDggKzY4NTAsOCBAQCBkZXNjcmliZVB1Ymxp Y2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0 YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gbi5vaWQgPSBwbi5wbm5zcGlkXG4i CiAJCQkJCQkJCSAgIldIRVJFIHBuLnBucHViaWQgPSAnJXMnXG4iCiAJCQkJCQkJCSAgIk9SREVS IEJZIDEiLCBwdWJpZCk7Ci0JCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVm LCBfKCJUYWJsZXMgZnJvbSBzY2hlbWFzOiIpLAotCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQor CQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbk9yVGFibGVEZXNjKCZidWYsICZjb250LAor CQkJCQkJCQkJCQkJCSAgIF8oIlRhYmxlcyBmcm9tIHNjaGVtYXM6IiksIHRydWUsIHRydWUpKQog CQkJCQlnb3RvIGVycm9yX3JldHVybjsKIAkJCX0KIAkJfQpAQCAtNjc5OSwxNCArNjg2MSwxNCBA QCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJewogCQkJCS8q IEdldCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciB0aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICov CiAJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChj LnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJ ICAiU0VMRUNUIGMucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsIGMucmVsbmFtZSwgTlVMTCwg TlVMTFxuIgogCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY2xhc3MgY1xuIgogCQkJCQkJ CQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gYy5vaWQg PSBwci5wcnJlbGlkXG4iCiAJCQkJCQkJCSAgIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4iCiAJ CQkJCQkJCSAgIiAgQU5EIHByLnByZXhjZXB0XG4iCiAJCQkJCQkJCSAgIk9SREVSIEJZIDEiLCBw dWJpZCk7Ci0JCQkJaWYgKCFhZGRGb290ZXJUb1B1YmxpY2F0aW9uRGVzYygmYnVmLCBfKCJFeGNl cHQgdGFibGVzOiIpLAotCQkJCQkJCQkJCQkJdHJ1ZSwgJmNvbnQpKQorCQkJCWlmICghYWRkRm9v dGVyVG9QdWJsaWNhdGlvbk9yVGFibGVEZXNjKCZidWYsICZjb250LAorCQkJCQkJCQkJCQkJCSAg IF8oIkV4Y2VwdCB0YWJsZXM6IiksIHRydWUsIGZhbHNlKSkKIAkJCQkJZ290byBlcnJvcl9yZXR1 cm47CiAJCQl9CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCAzNjMzMjQzMzg2ZS4uMWUz NWVhNDA5YzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysg Yi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIyOTUsNiArMjI5NSwxMCBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiQUxM IFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CiAJZWxzZSBpZiAoTWF0Y2hl cygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVT IikpCiAJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOworCWVsc2UgaWYgKE1hdGNoZXMo IkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIiwgTWF0 Y2hBbnkpICYmICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiRVhD RVBUICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCBNYXRjaEFueU4sICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOwogCWVsc2Ug aWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwg IlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29m X3RhYmxlcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRj aEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKQpAQCAtMjMx NiwxMCArMjMyMCwxMyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJ Q09NUExFVEVfV0lUSCgiKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FU SU9OIiwgTWF0Y2hBbnksIE1hdGNoQW55TiwgIldIRVJFIiwgIigiKSkKIAkJQ09NUExFVEVfV0lU SF9BVFRSKHByZXYzX3dkKTsKKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCBNYXRjaEFueU4sICJFWENFUFQiLCAiKCIpKQorCQlDT01QTEVURV9XSVRI X0FUVFIocHJldjNfd2QpOwogCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYmCi0JCQkgIVRhaWxNYXRjaGVz KCJXSEVSRSIsICIoKikiKSkKKwkJCSAhVGFpbE1hdGNoZXMoIldIRVJFIiwgIigqKSIpICYmICFU YWlsTWF0Y2hlcygiRVhDRVBUIiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSCgiLCIsICJXSEVSRSAo Iik7Ci0JZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJBRER8U0VUIiwgIlRBQkxFIikpCisJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgJiYKKwkJCSAhZW5k c193aXRoKHByZXZfd2QsICcoJykpCiAJCUNPTVBMRVRFX1dJVEgoIiwiKTsKIAkvKiBBTFRFUiBQ VUJMSUNBVElPTiA8bmFtZT4gRFJPUCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBV QkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJEUk9QIikpCkBAIC0zNjM3LDcgKzM2NDQsNyBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVB VEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiKSkKIAkJQ09NUExF VEVfV0lUSCgiSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEUiLCBNYXRjaEFueSkgJiYgIWVuZHNfd2l0 aChwcmV2X3dkLCAnLCcpKQotCQlDT01QTEVURV9XSVRIKCJXSEVSRSAoIiwgIldJVEggKCIpOwor CQlDT01QTEVURV9XSVRIKCJFWENFUFQgKCIsICJXSEVSRSAoIiwgIldJVEggKCIpOwogCS8qIENv bXBsZXRlICJDUkVBVEUgUFVCTElDQVRJT04gPG5hbWU+IEZPUiBUQUJMRSIgd2l0aCAiPHRhYmxl PiwgLi4uIiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiRk9SIiwgIlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1 ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgK aW5kZXggMGQzOWNiNjc3NzkuLjU5NGEyZTE0Njc2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5oCkBAIC0xOTgsNyArMTk4LDggQEAgZXh0ZXJuIE9pZAlHZXRUb3BNb3N0QW5jZXN0 b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywKIGV4dGVybiBib29s IGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gYm9vbCBpc19z Y2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBib29sIGNoZWNrX2FuZF9mZXRj aF9jb2x1bW5fbGlzdChQdWJsaWNhdGlvbiAqcHViLCBPaWQgcmVsaWQsCi0JCQkJCQkJCQkJTWVt b3J5Q29udGV4dCBtY3h0LCBCaXRtYXBzZXQgKipjb2xzKTsKKwkJCQkJCQkJCQlNZW1vcnlDb250 ZXh0IG1jeHQsIEJpdG1hcHNldCAqKmNvbHMsCisJCQkJCQkJCQkJYm9vbCAqZXhjZXB0X2NvbHVt bnMpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBw dWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCQkJCQkJCQkJCSAgYm9vbCBpZl9ub3Rf ZXhpc3RzKTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9jb2xsaXN0X3ZhbGlkYXRlKFJlbGF0aW9u IHRhcmdldHJlbCwgTGlzdCAqY29sdW1ucyk7CkBAIC0yMDgsNiArMjA5LDcgQEAgZXh0ZXJuIE9i amVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFp ZCwKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9jb2xsaXN0X3RvX2JpdG1hcHNldChCaXRtYXBzZXQg KmNvbHVtbnMsIERhdHVtIHB1YmNvbHMsCiAJCQkJCQkJCQkJICAgTWVtb3J5Q29udGV4dCBtY3h0 KTsKIGV4dGVybiBCaXRtYXBzZXQgKnB1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9uIHJlbGF0aW9u LAotCQkJCQkJCQkJUHVibGlzaEdlbmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlKTsKKwkJ CQkJCQkJCVB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSwKKwkJCQkJCQkJ CUJpdG1hcHNldCAqZXhjZXB0X2NvbHMpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfUFVCTElDQVRJ T05fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9y ZWwuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgKaW5kZXggZTdk N2YzYmE4NWMuLjZhMjE2OGZjMzJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uX3JlbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRp b25fcmVsLmgKQEAgLTMxLDExICszMSwxMiBAQCBDQVRBTE9HKHBnX3B1YmxpY2F0aW9uX3JlbCw2 MTA2LFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCkKIAlPaWQJCQlvaWQ7CQkJLyogb2lkICovCiAJ T2lkCQkJcHJwdWJpZCBCS0lfTE9PS1VQKHBnX3B1YmxpY2F0aW9uKTsgLyogT2lkIG9mIHRoZSBw dWJsaWNhdGlvbiAqLwogCU9pZAkJCXBycmVsaWQgQktJX0xPT0tVUChwZ19jbGFzcyk7CS8qIE9p ZCBvZiB0aGUgcmVsYXRpb24gKi8KLQlib29sCQlwcmV4Y2VwdCBCS0lfREVGQVVMVChmKTsJLyog ZXhjbHVkZSB0aGUgcmVsYXRpb24gKi8KKwlib29sCQlwcmV4Y2VwdCBCS0lfREVGQVVMVChmKTsJ LyogZXhjbHVkZSB0aGUgcmVsYXRpb24gb3IgY29sdW1ucyAqLwogCiAjaWZkZWYJQ0FUQUxPR19W QVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAlwZ19ub2Rl X3RyZWUgcHJxdWFsOwkJLyogcXVhbGlmaWNhdGlvbnMgKi8KLQlpbnQydmVjdG9yCXByYXR0cnM7 CQkvKiBjb2x1bW5zIHRvIHJlcGxpY2F0ZSAqLworCWludDJ2ZWN0b3IJcHJhdHRyczsJCS8qIGNv bHVtbnMgdG8gcmVwbGljYXRlIG9yIGV4Y2x1ZGUgdG8KKwkJCQkJCQkJICogcmVwbGljYXRlICov CiAjZW5kaWYKIH0gRm9ybURhdGFfcGdfcHVibGljYXRpb25fcmVsOwogCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CmluZGV4IDM4M2U0OTJmOTliLi5lOWI3ZmEwZTU0 ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIxODgs NiArMjE4OCw5NCBAQCBFeGNlcHQgdGFibGVzOgogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwogRFJPUCBUQUJMRSBwdWJfc2NoMS50Ymwy OworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBUZXN0IEVYQ0VQVCBjb2x1bW5zIGZvciBDUkVBVEUgUFVCTElDQVRJT04KK1NFVCBj bGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBUQUJMRSBwdWJfdGVzdF9leGNl cHQxIChhIGludCBOT1QgTlVMTCwgYiBpbnQsIGMgaW50IE5PVCBOVUxMLCBkIGludCk7CitDUkVB VEUgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiAoYSBpbnQsIGIgaW50LCBjIGludCwg ZCBpbnQpOworLS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24gaXMgY3JlYXRlZCB3aXRoIEVYQ0VQ VAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEZPUiBUQUJMRSBwdWJfdGVzdF9l eGNlcHQxLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIEVYQ0VQVCAoYiwgYyk7CitTRUxFQ1Qg KiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZXhj ZXB0JzsKKyAgICBwdWJuYW1lICAgICB8IHNjaGVtYW5hbWUgfCAgICB0YWJsZW5hbWUgICAgIHwg YXR0bmFtZXMgIHwgcm93ZmlsdGVyIAorLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgdGVzdHB1Yl9leGNlcHQg fCBwdWJsaWMgICAgIHwgcHViX3Rlc3RfZXhjZXB0MSB8IHthLGIsYyxkfSB8IAorIHRlc3RwdWJf ZXhjZXB0IHwgcHViX3NjaDEgICB8IHB1Yl90ZXN0X2V4Y2VwdDIgfCB7YSxkfSAgICAgfCAKKygy IHJvd3MpCisKKy0tIENhbm5vdCB1c2UgRVhDRVBUIGNvbC1saXN0cyBjb21iaW5lZCB3aXRoIFRB QkxFUyBJTiBTQ0hFTUEKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRB QkxFUyBJTiBTQ0hFTUEgcHViX3NjaDEsIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChi LCBjKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBjb2x1bW4gbGlzdCBmb3IgcmVsYXRpb24gInB1Ymxp Yy5wdWJfdGVzdF9leGNlcHQxIiBpbiBwdWJsaWNhdGlvbiAidGVzdHB1Yl9leGNlcHQyIgorREVU QUlMOiAgQ29sdW1uIGxpc3RzIGNhbm5vdCBiZSBzcGVjaWZpZWQgaW4gcHVibGljYXRpb25zIGNv bnRhaW5pbmcgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgZWxlbWVudHMuCistLSBTeW50YXggZXJyb3Ig RVhDRVBUIHdpdGhvdXQgYSBjb2wtbGlzdAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhj ZXB0MiBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQ7CitFUlJPUjogIHRhYmxlIHdp dGhvdXQgY29sdW1uIGxpc3QgY2Fubm90IHVzZSBFWENFUFQgY2xhdXNlCitMSU5FIDE6IENSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdC4u LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBW ZXJpZnkgb2sgLSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIC4uLiBFWENFUFQgKGNvbC1saXN0 KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgU0VUIFRBQkxFIHB1Yl90ZXN0X2V4 Y2VwdDEgRVhDRVBUIChhLCBiKSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKK1xkUnArIHRl c3RwdWJfZXhjZXB0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25l ICAgICAgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3NjaDEucHViX3Rlc3RfZXhjZXB0 MiIKKyAgICAicHVibGljLnB1Yl90ZXN0X2V4Y2VwdDEiIEVYQ0VQVCAoYSwgYikKKworLS0gVmVy aWZ5IGZhaWxzIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AgLi4uIEVYQ0VQVCAoY29sLWxp c3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0 X2V4Y2VwdDEgRVhDRVBUIChhLCBiKTsKK0VSUk9SOiAgY29sdW1uIGxpc3QgbXVzdCBub3QgYmUg c3BlY2lmaWVkIGluIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QCistLSBWZXJpZnkgb2sgLSBB TFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNl cHQgRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVC TElDQVRJT04gLi4uIEFERCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZXhjZXB0IEFERCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYywgZCk7 CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9leGNlcHQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXM6CisgICAgInB1Yl9zY2gxLnB1Yl90 ZXN0X2V4Y2VwdDIiCisgICAgInB1YmxpYy5wdWJfdGVzdF9leGNlcHQxIiBFWENFUFQgKGMsIGQp CisKKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3QgY29udGFpbiBSSSBj b2xzICh3aGVuIHVzaW5nIFJJIEZVTEwpCitBTFRFUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIFJF UExJQ0EgSURFTlRJVFkgRlVMTDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBX SEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAicHViX3Rlc3RfZXhjZXB0 MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0IHVzZWQgYnkgdGhlIHB1YmxpY2F0aW9uIGRvZXMgbm90 IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50aXR5LgorLS0gVmVyaWZ5IGZhaWxzIC0gRVhDRVBUIGNv bC1saXN0IGNhbm5vdCBjb250YWluIFJJIGNvbHMgKHdoZW4gdXNpbmcgSU5ERVgpCitDUkVBVEUg VU5JUVVFIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEg KGEsIGMpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVT SU5HIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworVVBEQVRFIHB1Yl90ZXN0X2V4Y2Vw dDEgU0VUIGEgPSAzIFdIRVJFIGEgPSAxOworRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJw dWJfdGVzdF9leGNlcHQxIgorREVUQUlMOiAgQ29sdW1uIGxpc3QgdXNlZCBieSB0aGUgcHVibGlj YXRpb24gZG9lcyBub3QgY292ZXIgdGhlIHJlcGxpY2EgaWRlbnRpdHkuCitEUk9QIElOREVYIHB1 Yl90ZXN0X2V4Y2VwdDFfYWNfaWR4OworLS0gVmVyaWZ5IG9rIC0gbm8gY2xhc2ggYmV0d2VlbiBS SSBjb2xzIGFuZCB0aGUgRVhDRVBUIGNvbC1saXN0CitDUkVBVEUgVU5JUVVFIElOREVYIHB1Yl90 ZXN0X2V4Y2VwdDFfYV9pZHggT04gcHViX3Rlc3RfZXhjZXB0MSAoYSk7CitBTFRFUiBUQUJMRSBw dWJfdGVzdF9leGNlcHQxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggcHViX3Rlc3RfZXhj ZXB0MV9hX2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0g MTsKKy0tIFZlcmlmeSBkZXNjcmlwdGlvbiBvZiBhIHRhYmxlIHdpdGggcHVibGljYXRpb24gd2l0 aCBFWENFUFQgY29sLWxpc3QKK1xkKyBwdWJfdGVzdF9leGNlcHQxCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIKKyBDb2x1bW4gfCAg VHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSB8IFN0YXRz IHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t CisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAgICB8IHBs YWluICAgfCAgICAgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorIGMgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAg ICAgICAgICAgIHwgCisgZCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKK0luZGV4ZXM6CisgICAgInB1Yl90 ZXN0X2V4Y2VwdDFfYV9pZHgiIFVOSVFVRSwgYnRyZWUgKGEpIFJFUExJQ0EgSURFTlRJVFkKK1B1 YmxpY2F0aW9uczoKKyAgICAidGVzdHB1Yl9leGNlcHQiIEVYQ0VQVCAoYywgZCkKK05vdC1udWxs IGNvbnN0cmFpbnRzOgorICAgICJwdWJfdGVzdF9leGNlcHQxX2Ffbm90X251bGwiIE5PVCBOVUxM ICJhIgorICAgICJwdWJfdGVzdF9leGNlcHQxX2Nfbm90X251bGwiIE5PVCBOVUxMICJjIgorCist LSBjbGVhbnVwCitEUk9QIElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZXhjZXB0OworRFJPUCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxOworRFJP UCBUQUJMRSBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7 CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogLS0gVGVzdCB0aGF0IHRoZSBJTlNFUlQgT04g Q09ORkxJQ1QgY29tbWFuZCBjb3JyZWN0bHkgY2hlY2tzIFJFUExJQ0EgSURFTlRJVFkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCAxYmMxYjg0MTgyYi4uOTdmMzQ1OTZkY2Ig MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEzNjcsNiArMTM2Nyw2MSBA QCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBU QUJMRSAocHViX3NjaDEudGJsMSwgcHViXwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOwogRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwor CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tIFRlc3QgRVhDRVBUIGNvbHVtbnMgZm9yIENSRUFURSBQVUJMSUNBVElPTgorCitTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3RfZXhj ZXB0MSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50LCBjIGludCBOT1QgTlVMTCwgZCBpbnQpOworQ1JF QVRFIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIgKGEgaW50LCBiIGludCwgYyBpbnQs IGQgaW50KTsKKworLS0gVmVyaWZ5IHRoYXQgcHVibGljYXRpb24gaXMgY3JlYXRlZCB3aXRoIEVY Q0VQVAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEZPUiBUQUJMRSBwdWJfdGVz dF9leGNlcHQxLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyIEVYQ0VQVCAoYiwgYyk7CitTRUxF Q1QgKiBGUk9NIHBnX3B1YmxpY2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJf ZXhjZXB0JzsKKworLS0gQ2Fubm90IHVzZSBFWENFUFQgY29sLWxpc3RzIGNvbWJpbmVkIHdpdGgg VEFCTEVTIElOIFNDSEVNQQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1Ig VEFCTEVTIElOIFNDSEVNQSBwdWJfc2NoMSwgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQg KGIsIGMpOworCistLSBTeW50YXggZXJyb3IgRVhDRVBUIHdpdGhvdXQgYSBjb2wtbGlzdAorQ1JF QVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0 MSBFWENFUFQ7CisKKy0tIFZlcmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgLi4u IEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBTRVQg VEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGEsIGIpLCBwdWJfc2NoMS5wdWJfdGVzdF9l eGNlcHQyOworXGRScCsgdGVzdHB1Yl9leGNlcHQKKworLS0gVmVyaWZ5IGZhaWxzIC0gQUxURVIg UFVCTElDQVRJT04gLi4uIERST1AgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2V4Y2VwdCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChh LCBiKTsKKworLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IERST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsK KworLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIEFERCAuLi4gRVhDRVBUIChj b2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEFERCBUQUJMRSBwdWJf dGVzdF9leGNlcHQxIEVYQ0VQVCAoYywgZCk7CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorCistLSBW ZXJpZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3QgY2Fubm90IGNvbnRhaW4gUkkgY29scyAod2hl biB1c2luZyBSSSBGVUxMKQorQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElE RU5USVRZIEZVTEw7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9 IDE7CisKKy0tIFZlcmlmeSBmYWlscyAtIEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3QgY29udGFpbiBS SSBjb2xzICh3aGVuIHVzaW5nIElOREVYKQorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9l eGNlcHQxX2FjX2lkeCBPTiBwdWJfdGVzdF9leGNlcHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1 Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNl cHQxX2FjX2lkeDsKK1VQREFURSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0g MTsKK0RST1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hY19pZHg7CisKKy0tIFZlcmlmeSBvayAt IG5vIGNsYXNoIGJldHdlZW4gUkkgY29scyBhbmQgdGhlIEVYQ0VQVCBjb2wtbGlzdAorQ1JFQVRF IFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEg KGEpOworQUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5H IElOREVYIHB1Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBT RVQgYSA9IDMgV0hFUkUgYSA9IDE7CisKKy0tIFZlcmlmeSBkZXNjcmlwdGlvbiBvZiBhIHRhYmxl IHdpdGggcHVibGljYXRpb24gd2l0aCBFWENFUFQgY29sLWxpc3QKK1xkKyBwdWJfdGVzdF9leGNl cHQxCisKKy0tIGNsZWFudXAKK0RST1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK0RS T1AgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQ7CitEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2Vw dDE7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CiBEUk9QIFNDSEVNQSBw dWJfc2NoMTsKIAogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNv bi5idWlsZAppbmRleCBiOGU1YzU0YzMxNC4uZThlNjlmNzQ0M2QgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24v bWVzb24uYnVpbGQKQEAgLTQ3LDYgKzQ3LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDM1X2Nv bmZsaWN0cy5wbCcsCiAgICAgICAndC8wMzZfc2VxdWVuY2VzLnBsJywKICAgICAgICd0LzAzN19y ZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwnLAorICAgICAgJ3QvMDM4X3JlcF9jaGFuZ2VzX2V4 Y2VwdF9jb2xsaXN0LnBsJywKICAgICAgICd0LzEwMF9idWdzLnBsJywKICAgICBdLAogICB9LApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM4X3JlcF9jaGFuZ2VzX2V4Y2Vw dF9jb2xsaXN0LnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM4X3JlcF9jaGFuZ2VzX2V4 Y2VwdF9jb2xsaXN0LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4z ZGZkMjY2YmMzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAz OF9yZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbApAQCAtMCwwICsxLDE5MyBAQAorIyBDb3B5 cmlnaHQgKGMpIDIwMjEtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAK KworIyBMb2dpY2FsIHJlcGxpY2F0aW9uIHRlc3RzIGZvciBFWENFUFQgKGNvbHVtbi1saXN0KSBw dWJsaWNhdGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6 VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpN b3JlOworCisjIEluaXRpYWxpemUgcHVibGlzaGVyIG5vZGUKK215ICRub2RlX3B1Ymxpc2hlciA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWJs aXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlz aGVyLT5zdGFydDsKKworIyBDcmVhdGUgc3Vic2NyaWJlciBub2RlCitteSAkbm9kZV9zdWJzY3Jp YmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskbm9k ZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2Rl X3N1YnNjcmliZXItPnN0YXJ0OworCisjIEluaXRpYWwgc2V0dXAKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxICgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JF QVRFIFRBQkxFIHRhYjEgKGEgaW50LCBiIGludCBOT1QgTlVMTCwgYyBpbnQpOworCUNSRUFURSBU QUJMRSBzY2gxLnRhYjEgKGEgaW50LCBiIGludCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSB0YWIy IChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiMyAoYSBpbnQsIGJnZW4g aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGNnZW4gaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworCUNSRUFURSBUQUJMRSB0YWI0IChhIGludCwg YmdlbiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgY2dlbiBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JFRCk7CisJQ1JFQVRFIFRBQkxFIHRhYjUgKGEg aW50LCBiIGludCwgYyBpbnQpOworCUlOU0VSVCBJTlRPIHRhYjEgVkFMVUVTICgxLCAyLCAzKTsK KwlJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFMVUVTICgxLCAyLCAzKTsKKwlDUkVBVEUgUFVCTElD QVRJT04gdGFwX3B1Yl9jb2wgRk9SIFRBQkxFIHRhYjEgRVhDRVBUIChhKSwgc2NoMS50YWIxIEVY Q0VQVCAoYiwgYyk7CispKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsIHFxICgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxFIHRhYjEgKGEg aW50LCBiIGludCBOT1QgTlVMTCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnRhYjEgKGEg aW50LCBiIGludCwgYyBpbnQpOworCUNSRUFURSBUQUJMRSB0YWIyIChhIGludCwgYiBpbnQsIGMg aW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiMyAoYSBpbnQsIGJnZW4gaW50LCBjZ2VuIGludCk7CisJ Q1JFQVRFIFRBQkxFIHRhYjQgKGEgaW50LCBiZ2VuIGludCwgY2dlbiBpbnQpOworCUNSRUFURSBU QUJMRSB0YWI1IChhIGludCwgYiBpbnQsIGMgaW50LCBkIGludCk7CispKTsKKworIyBTZXR1cCBs b2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9wdWJsaXNo ZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBDT05O RUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIgorKTsK KyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxp c2hlciwgJ3RhcF9zdWJfY29sJyk7CisKKyMgVGVzdCBpbml0aWFsIHN5bmMKK215ICRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00g dGFiMSIpOworaXMoJHJlc3VsdCwgcXEofDJ8MyksCisJJ1ZlcmlmeSBpbml0aWFsIHN5bmMgb2Yg dGFiMSBpbiBhIHB1YmxpY2F0aW9uIHVzaW5nIEVYQ0VQVCAoY29sdW1uLWxpc3QpJworKTsKKyRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAq IEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgxfHwpLAorCSdWZXJpZnkgaW5pdGlh bCBzeW5jIG9mIHNjaDEudGFiMSBpbiBhIHB1YmxpY2F0aW9uIHVzaW5nIEVYQ0VQVCAoY29sdW1u LWxpc3QpJworKTsKKworIyBUZXN0IGluY3JlbWVudGFsIGNoYW5nZXMKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxICgKKwlJTlNFUlQgSU5UTyB0YWIxIFZBTFVF UyAoNCwgNSwgNik7CisJSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyAoNCwgNSwgNik7Cisp KTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRy ZXN1bHQgPQorICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCAqIEZST00gdGFiMSBPUkRFUiBCWSBhIik7CitpcyggJHJlc3VsdCwgcXEofDJ8MworfDV8Niks CisJJ1ZlcmlmeSBpbmNyZW1lbnRhbCBpbnNlcnRzIG9uIHRhYjEgaW4gYSBwdWJsaWNhdGlvbiB1 c2luZyBFWENFUFQgKGNvbHVtbi1saXN0KScKKyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gc2NoMS50YWIxIE9SREVS IEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxfHwKKzR8fCksCisJJ1ZlcmlmeSBpbmNyZW1lbnRh bCBpbnNlcnRzIG9uIHNjaDEudGFiMSBpbiBhIHB1YmxpY2F0aW9uIHVzaW5nIEVYQ0VQVCAoY29s dW1uLWxpc3QpJworKTsKKworIyBUZXN0IGZvciB1cGRhdGUKKyRub2RlX3N1YnNjcmliZXItPnNh ZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgVU5JUVVFIElOREVYIGJfaWR4IE9O IHRhYjEgKGIpOworCUFMVEVSIFRBQkxFIHRhYjEgUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRF WCBiX2lkeDsKKykpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywg cXEoCisJQ1JFQVRFIFVOSVFVRSBJTkRFWCBiX2lkeCBPTiB0YWIxIChiKTsKKwlBTFRFUiBUQUJM RSB0YWIxIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggYl9pZHg7CisJVVBEQVRFIHRhYjEg U0VUIGEgPSA5OTEsIGIgPSA5OTIsIGMgPSA5OTMgV0hFUkUgYSA9IDE7CispKTsKKyRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQgPQorICAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFi MSAgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQsIHFxKHw1fDYKK3w5OTJ8OTkzKSwKKwknY2hl Y2sgdXBkYXRlIGZvciBFWENFUFQgKGNvbHVtbi1saXN0KSBwdWJsaWNhdGlvbicpOworCisjIFRl c3QgQUxURVIgUFVCTElDQVRJT04gZm9yIEVYQ0VQVCAoY29sdW1uLWxpc3QpCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHVi X2NvbCBBREQgVEFCTEUgdGFiMiBFWENFUFQoYikiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVT SCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9u X3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjIgVkFMVUVTICgxLCAyLCAz KSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOwor JHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNU ICogRlJPTSB0YWIyIik7CitpcygkcmVzdWx0LCBxcSgxfHwzKSwgJ2NoZWNrIGFsdGVyIHB1Ymxp Y2F0aW9uIHdpdGggRVhDRVBUIChjb2x1bW4tbGlzdCknKTsKKworIyBUZXN0IGZvciBwdWJsaWNh dGlvbiBjcmVhdGVkIHdpdGggJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGFzICdzdG9yZWQn IG9uCisjIHRhYmxlICd0YWIzJyBhbmQgd2l0aCBjb2x1bW4gJ2JnZW4nIGluIGNvbHVtbiBsaXN0 IHdpdGggRVhDRVBUIGNsYXVzZS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsIHFxKElOU0VSVCBJTlRPIHRhYjMgVkFMVUVTICgxKTsKKwlBTFRFUiBQVUJMSUNBVElP TiB0YXBfcHViX2NvbCBTRVQgKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBzdG9yZWQpOwor CUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCBUQUJMRSB0YWIzIEVYQ0VQVChiZ2Vu KTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVS IFNVQlNDUklQVElPTiB0YXBfc3ViX2NvbCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9z dWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0 YXBfc3ViX2NvbCcpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi SU5TRVJUIElOVE8gdGFiMyBWQUxVRVMgKDIpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjMgT1JERVIgQlkgYSIpOwor CisjIGNvbHVtbiAnYmdlbicgaXMgc3BlY2lmaWVkIGluIEVYQ0VQVCAoY29sdW1tLWxpc3QpLiBT byBkYXRhIGNvcnJlc3BvbmRpbmcgdG8KKyMgJ2JnZW4nIGlzIG5vdCByZXBsaWNhdGVkLiBQYXJh bWV0ZXIgJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGlzIHNldCBhcworIyAnc3RvcmVkJywg c28gZGF0YSBjb3JyZXNwb25kaW5nIHRvIGNvbHVtbiAnY2dlbicgaXMgcmVwbGljYXRlZC4KK2lz KCAkcmVzdWx0LCBxcSgxfHwzCisyfHw2KSwKKwknY2hlY2sgcHVibGljYXRpb24ocHVibGlzaF9n ZW5lcmF0ZWRfY29sdW1ucyBhcyBzdG9yZWQpIHdpdGggZ2VuZXJhdGVkIGNvbHVtbnMgYW5kIEVY Q0VQVCAoY29sdW1uLWxpc3QpJworKTsKKworIyBUZXN0IGZvciBwdWJsaWNhdGlvbiBjcmVhdGVk IHdpdGggJ3B1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGFzICdub25lJyBvbgorIyB0YWJsZSB3 aXRoIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aCBFWENF UFQgY2xhdXNlLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEo CisJSU5TRVJUIElOVE8gdGFiNCBWQUxVRVMgKDEpOworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9w dWJfY29sIFNFVCAocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucyA9IG5vbmUpOworCUFMVEVSIFBV QkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCBUQUJMRSB0YWI0IEVYQ0VQVChiZ2VuKTsKKykpOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQ VElPTiB0YXBfc3ViX2NvbCBSRUZSRVNIIFBVQkxJQ0FUSU9OIik7Ciskbm9kZV9zdWJzY3JpYmVy LT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2Nv bCcpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElO VE8gdGFiNCBWQUxVRVMgKDIpIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAo J3RhcF9zdWJfY29sJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjQgT1JERVIgQlkgYSIpOworCisjIGNvbHVt biAnYmdlbicgaXMgc3BlY2lmaWVkIGluIEVYQ0VQVCAoY29sdW1tLWxpc3QpLiBTbyBkYXRhIGNv cnJlc3BvbmRpbmcgdG8KKyMgJ2JnZW4nIGlzIG5vdCByZXBsaWNhdGVkLiBQYXJhbWV0ZXIgJ3B1 Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMnIGlzIHNldCBhcworIyAnbm9uZScsIHNvIGRhdGEgY29y cmVzcG9uZGluZyB0byBjb2x1bW4gJ2NnZW4nIGlzIG5vdCByZXBsaWNhdGVkLgoraXMoICRyZXN1 bHQsIHFxKDF8fAorMnx8KSwKKwknY2hlY2sgcHVibGljYXRpb24ocHVibGlzaF9nZW5lcmF0ZWRf Y29sdW1ucyBhcyBub25lKSB3aXRoIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBFWENFUFQgKGNvbHVt bi1saXN0KScKKyk7CisKKyMgQWxsIGNvbHVtbnMgYXJlIHByZXNlbnQgaW4gRVhDRVBUIChjb2x1 bW4tbGlzdCkKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAor CUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIFNFVCBUQUJMRSB0YWI1IEVYQ0VQVChhLCBi LCBjKTsKKwlJTlNFUlQgSU5UTyB0YWI1IFZBTFVFUyAoMSwgMiwgMyk7CispKTsKKyRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFw X3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9m b3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjUg VkFMVUVTICg0LCA1LCA2KSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0 YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWI1Iik7CitpcygkcmVzdWx0LCBxcSgpLCAnYWxsIGNv bHVtbnMgYXJlIHNwZWNpZmllZCBpbiBFWENFUFQgKGNvbHVtbi1saXN0KScpOworCisjIEFkZCBh IG5ldyBjb2x1bW4gYW5kIGNoZWNrIHRoYXQgaXQgaXMgcmVwbGljYXRlZAorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQUxURVIgVEFCTEUgdGFiNSBBREQg Q09MVU1OIGQgaW50OworKSk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJJTlNFUlQgSU5UTyB0YWI1IFZBTFVFUyAoNywgOCwgOSwgMTApIik7Ciskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7CisKKyRyZXN1bHQgPSAkbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiNSIp OworaXMoJHJlc3VsdCwgcXEofHx8MTApLCAnbmV3bHkgYWRkZWQgY29sdW1uIGlzIHJlcGxpY2F0 ZWQnKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c3RvcCgnZmFzdCcpOworJG5vZGVfcHVibGlzaGVy LT5zdG9wKCdmYXN0Jyk7CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi4zNC4xCgo= --0000000000000a7e580643efb412--