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 1vT1nz-00BggI-0Y for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Dec 2025 17:47:19 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vT1nw-005s4i-22 for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Dec 2025 17:47:16 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vT1nv-005s4a-2e for pgsql-hackers@lists.postgresql.org; Tue, 09 Dec 2025 17:47:16 +0000 Received: from mail-oa1-x29.google.com ([2001:4860:4864:20::29]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vT1nu-003y4J-0r for pgsql-hackers@lists.postgresql.org; Tue, 09 Dec 2025 17:47:15 +0000 Received: by mail-oa1-x29.google.com with SMTP id 586e51a60fabf-3e3dac349easo4826671fac.2 for ; Tue, 09 Dec 2025 09:47:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765302433; x=1765907233; 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=3HZUMLaFf/3VfZR2IqeF8tgVJ0A9uVji889zUCKW5iw=; b=AW7XkjDkw1sRnRJA9nG04wkDaBWSsydKjEo0n7OVMG1fhEer/goH3S0Z+SSD6s27XB BS9IlanPLFy6gwXsCmLld7yi4CUbfZf8jbzMiztZCMkY/sKu9bSYNaY04Bb7SKJzXaKU sdS3JiUZXlCAg8/MRQ/F6yw/4rpk9oyzFBOeQYP2OotPeJhEnFxo4StQMmdXWRe3Xgh8 9Fci055T0DafNZrqlsT2hcsKbgJz4TaY9HdQPHjSXCNwtAreZuyDwxL2KeAJibpMMZoQ /F1bEkVBjxKriddwI5aOeHxmIPip7g2q2iET/PBVN/BWEL7sylwpQDzLOaEwIFKmjPxK Pl8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765302433; x=1765907233; 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=3HZUMLaFf/3VfZR2IqeF8tgVJ0A9uVji889zUCKW5iw=; b=CWUsNfgDkz0LmAPvSO8M3sJVM77lOfhs7Rr/s8FIb37OnP0m9ELjMnpPwkXeev2Ra5 tibjxu9DLlZM9Zs6bAP4ibpGgZSS8uZ0r7Jn9BVaaYQ2n9167MhUuqr0Z9qJaVse3xYQ anMX2i/2d2WWdolaEtwWa2zOhLanSQxm/o4jkmKg0T5YU5nnAWgw1fFYKVRbsp8va5/O 4Pd+YRvzosFY21fC4D533qCGKIfTDLzzPnTfOpzZuIjlxcv40b8q/Ng4LQUyFZa+2r1Q bBzll4YcemKQtLNrjcbkG8kkuD4JvPPjDdku9VpSTRh6P+09aIMtXNasEEVR3WLO2Qd5 xqOA== X-Forwarded-Encrypted: i=1; AJvYcCXmqMwSAYeN1kx3eLptjMwGLXypPGwsWcM2fZ04Ak4AibQrq56iEnQ52m0YZ+LrX0pl/MlHN52zRCGe59lg@lists.postgresql.org X-Gm-Message-State: AOJu0YzYr/l0wPflaFnQHzSxAx3+nnxNRmO0C24RnODgBke9/SJHh/qJ wBZ5lND1PJkY/Qwl5ARrmi8PyS4Sh4+jYn3GyLRuEAlCxBL9NZR8UWbb/R/6ypoFiAJxrUuiabq MzvBUFMyRG4utlNWUtTtaq9/2Fd6MBwc= X-Gm-Gg: AY/fxX7qqwP3dNQrIeGCPsWqfOi7K3rxgSLzmRimRL87fjNv4bOLZpJeLHiwiJYPtxv yqjMh9B8f3fNobSPFV0GVx+vz1esQv7QpL2Z8YvIc7fyuMQn25mlNNYHsHZTxEz3PEBoH1DsuQC 0TFYQgDyQuqswf83P++XersP32zS56p29OA+zDk4t9Cm7ph2XNpklN2pvrbmma+Fxcf9IESYmFr 3rpIZKL5GKt8RO/6IRHw2f2S4NC8hsORETDbpumxxttX7nD6HTU12KPOgYqHJfMzI658zKEfw== X-Google-Smtp-Source: AGHT+IE2q9RHLdidY5gC4phEoEgEyMszlhYp62D652+DOonCHNazcnSDgoPnVGzBuOgcagwTcM7Oir+Xu5Fz8doJZVo= X-Received: by 2002:a05:6870:508:b0:3ec:a1e6:a14e with SMTP id 586e51a60fabf-3f5440f2e46mr4592217fac.54.1765302432945; Tue, 09 Dec 2025 09:47:12 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Tue, 9 Dec 2025 23:16:59 +0530 X-Gm-Features: AQt7F2py1TwEtaede04PyheBUpMFVu6yEe5waKYikbGBb0N8SBO7emkQa2zAI4g Message-ID: Subject: Re: Skipping schema changes in publication To: Amit Kapila Cc: shveta malik , Peter Smith , vignesh C , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000006ff29b0645888032" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000006ff29b0645888032 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 8 Dec 2025 at 17:44, Amit Kapila wrote: > > On Mon, Dec 8, 2025 at 5:27=E2=80=AFPM shveta malik wrote: > > > > On Thu, Dec 4, 2025 at 5:21=E2=80=AFPM Shlok Kyal wrote: > > > > > > I have addressed these in the v29 patch. > > > Will address comments for 0003 and 0004 patch by Peter and comments b= y > > > Shveta in next version. > > > > > > > Thanks for the patch. > > > > I believe patch 003 (EXCEPT table) and 004 (EXCEPT column_list) should > > be the primary focus. > > > > +1. We should first try to make 0003 RFC before going further. > I have removed the 0001 0002 and 0004 patches for now. Will post them once 0003 patch is RFC. Here is the update patch for "EXCEPT TABLE". Thanks, Shlok Kyal --0000000000006ff29b0645888032 Content-Type: application/octet-stream; name="v30-0001-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v30-0001-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miyv7qxh0 RnJvbSA5MzNhYjU0ZThlOGViZDhkYjBiZDY5MWI3ZjQ4YmRjMmRkNmZkYzg1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAyMjo0MToyMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjMw XSBTa2lwIHB1Ymxpc2hpbmcgdGhlIHRhYmxlcyBzcGVjaWZpZWQgaW4gRVhDRVBUIFRBQkxFLgoK QSBuZXcgIkVYQ0VQVCBUQUJMRSIgY2xhdXNlIGZvciBDUkVBVEUvQUxURVIgUFVCTElDQVRJT04g YWxsb3dzIG9uZSBvcgptb3JlIHRhYmxlcyB0byBiZSBleGNsdWRlZC4gVGhlIHB1Ymxpc2hlciB3 aWxsIG5vdCBzZW5kIHRoZSBkYXRhIG9mCmV4Y2x1ZGVkIHRhYmxlcyB0byB0aGUgc3Vic2NyaWJl ci4KClRoZSBuZXcgc3ludGF4IGFsbG93cyBzcGVjaWZ5aW5nIGV4Y2x1ZGVkIHJlbGF0aW9ucyB3 aGVuIGNyZWF0aW5nIG9yIGFsdGVyaW5nCmEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpDUkVB VEUgUFVCTElDQVRJT04gcHViMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHQxLHQyKTsK CkEgbmV3IGNvbHVtbiAicHJleGNlcHQiIGlzIGFkZGVkIHRvIHRhYmxlICJwZ19wdWJsaWNhdGlv bl9yZWwiLCB0byBmbGFnCnRoZSByZWxhdGlvbnMgdGhhdCB0aGUgdXNlciB3YW50cyB0byBleGNs dWRlIGZyb20gdGhlIHB1YmxpY2F0aW9ucy4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0byBpZGVudGlm eSBhbmQgZHVtcCB0aGUgZXhjbHVkZWQgdGFibGVzIG9mIHRoZSBwdWJsaWNhdGlvbnMuCgpUaGUg cHNxbCBcZCBmYW1pbHkgb2YgY29tbWFuZHMgY2FuIG5vdyBkaXNwbGF5IGV4Y2x1ZGVkIHRhYmxl cy4gZS5nLiBwc3FsClxkUnArIHZhcmlhbnQgd2lsbCBub3cgZGlzcGxheSBhc3NvY2lhdGVkICJl eGNlcHQgdGFibGVzIiBpZiBhbnkuCgpCdW1wIGNhdGFsb2cgdmVyc2lvbi4KLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDkgKwogZG9jL3NyYy9z Z21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbCAgICAgICAgIHwgIDEwICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sICAgICAgfCAgNDcgKysrLQogZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICstCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAxMjIgKysrKysrKy0tLQogc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgMTA1ICsrKysrKy0t LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICA0ICst CiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKyst CiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jICAgfCAgMjcgKy0t CiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jICAgICAgICAgICAgfCAgMjQgKy0K IHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICA1NSArKysr LQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAxMCArLQog c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDIyICstCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgNTggKysrKy0K IHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgICAgIHwgICA3ICstCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAgICAgfCAgIDEgKwogc3Jj L2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggICAgICAgIHwgICA3ICstCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICAgIHwgIDU3ICsrKystCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgICAgfCAgMjEgKy0KIHNyYy90 ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCAgICAgICAgICAgICB8ICAgMSArCiAuLi4vdC8w MzdfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsICAgICAgICAgfCAyMTUgKysrKysrKysrKysr KysrKysrCiAyNCBmaWxlcyBjaGFuZ2VkLCA3MzYgaW5zZXJ0aW9ucygrKSwgMTIzIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBf Y2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDJmYzYzNDQyOTgwLi5h NGQzMmRlNThlYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1ODEsNiArNjU4MSwxNSBAQCBTQ1JBTS1T SEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+ OjxyZXBsYWNlYWJsZT4mbAogICAgICAgaWYgdGhlcmUgaXMgbm8gcHVibGljYXRpb24gcXVhbGlm eWluZyBjb25kaXRpb24uPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0PC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IFRydWUgaWYgdGhlIHJlbGF0aW9uIG11c3QgYmUgZXhjbHVkZWQKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8 c3RydWN0ZmllbGQ+cHJhdHRyczwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDJ2ZWN0b3I8L3R5cGU+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9j L3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbAppbmRleCBhYTAxM2YzNDhkNC4uYzQy MDQ2OWZlYWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMjU1MCwx MCArMjU1MCwxMiBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGlj YXRpb24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8L3BhcmE+CiAKICAgPHBh cmE+Ci0gICBUbyBhZGQgdGFibGVzIHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgaGF2 ZSBvd25lcnNoaXAgcmlnaHRzIG9uIHRoZQotICAgdGFibGUuIFRvIGFkZCBhbGwgdGFibGVzIGlu IHNjaGVtYSB0byBhIHB1YmxpY2F0aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEKLSAgIHN1cGVydXNl ci4gVG8gY3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIHRhYmxlcywgYWxs IHRhYmxlcyBpbgotICAgc2NoZW1hLCBvciBhbGwgc2VxdWVuY2VzIGF1dG9tYXRpY2FsbHksIHRo ZSB1c2VyIG11c3QgYmUgYSBzdXBlcnVzZXIuCisgICBUbyBjcmVhdGUgYSBwdWJsaWNhdGlvbiB1 c2luZyA8bGl0ZXJhbD5GT1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5GT1Ig QUxMIFNFUVVFTkNFUzwvbGl0ZXJhbD4gb3IKKyAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NI RU1BPC9saXRlcmFsPiwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1cGVydXNlci4gVG8gYWRkCisgICA8 bGl0ZXJhbD5BTEwgVEFCTEVTPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5UQUJMRVMgSU4gU0NIRU1B PC9saXRlcmFsPiB0byBhCisgICBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1cGVy dXNlci4gVG8gYWRkIHRhYmxlcyB0byBhIHB1YmxpY2F0aW9uLAorICAgdGhlIHVzZXIgbXVzdCBo YXZlIG93bmVyc2hpcCByaWdodHMgb24gdGhlIHRhYmxlLgogICA8L3BhcmE+CiAKICAgPHBhcmE+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbAppbmRleCA3NWE1MDhiZWJm YS4uMTI4MDgzN2Y5OTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1Ymxp Y2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dt bApAQCAtMzIsMTIgKzMyLDE2IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9hbGxfb2JqZWN0PC9yZXBsYWNlYWJs ZT4gaXMgb25lIG9mOjwvcGhyYXNlPgogCi0gICAgQUxMIFRBQkxFUworICAgIEFMTCBUQUJMRVMg WyBFWENFUFQgWyBUQUJMRSBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X2V4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KICAgICBBTEwgU0VR VUVOQ0VTCiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJs ZV9hbmRfY29sdW1uczwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCiAgICAgWyBPTkxZIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBb ICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXQorCis8cGhyYXNlPndoZXJlIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNl YWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCiA8L3N5bm9wc2lzPgogIDwv cmVmc3lub3BzaXNkaXY+CiAKQEAgLTE2NCw3ICsxNjgsOSBAQCBDUkVBVEUgUFVCTElDQVRJT04g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgIDxs aXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24gYXMgb25l IHRoYXQgcmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFibGVzIGluCi0gICAgICB0aGUgZGF0 YWJhc2UsIGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUgZnV0dXJlLgorICAgICAgdGhl IGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4gSWYKKyAg ICAgIDxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGVuIGV4 Y2x1ZGUgcmVwbGljYXRpbmcKKyAgICAgIHRoZSBjaGFuZ2VzIGZvciB0aGUgc3BlY2lmaWVkIHRh Ymxlcy4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4K QEAgLTE4NCw2ICsxOTAsMzUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGVwdWJsaWNhdGlv bi1wYXJhbXMtZm9yLWV4Y2VwdC10YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+RVhDRVBUIFRB QkxFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhpcyBjbGF1c2Ugc3BlY2lmaWVzIGEgbGlzdCBvZiB0YWJsZXMgdG8gYmUgZXhjbHVkZWQgZnJv bSB0aGUKKyAgICAgIHB1YmxpY2F0aW9uLiBJdCBjYW4gb25seSBiZSB1c2VkIHdpdGggPGxpdGVy YWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+LgorICAgICAgSWYgPGxpdGVyYWw+T05MWTwvbGl0 ZXJhbD4gaXMgc3BlY2lmaWVkIGJlZm9yZSB0aGUgdGFibGUgbmFtZSwgb25seQorICAgICAgdGhh dCB0YWJsZSBpcyBleGNsdWRlZCBmcm9tIHRoZSBwdWJsaWNhdGlvbi4gSWYgPGxpdGVyYWw+T05M WTwvbGl0ZXJhbD4gaXMKKyAgICAgIG5vdCBzcGVjaWZpZWQsIHRoZSB0YWJsZSBhbmQgYWxsIGl0 cyBkZXNjZW5kYW50IHRhYmxlcyAoaWYgYW55KSBhcmUKKyAgICAgIGV4Y2x1ZGVkLiBPcHRpb25h bGx5LCA8bGl0ZXJhbD4qPC9saXRlcmFsPiBjYW4gYmUgc3BlY2lmaWVkIGFmdGVyIHRoZQorICAg ICAgdGFibGUgbmFtZSB0byBleHBsaWNpdGx5IGluZGljYXRlIHRoYXQgZGVzY2VuZGFudCB0YWJs ZXMgYXJlIGV4Y2x1ZGVkLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAgVGhlIHBh cnRpdGlvbmVkIHRhYmxlIG9yIGl0cyBwYXJ0aXRpb25zIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBw dWJsaWNhdGlvbgorICAgICAgYmFzZWQgb24gdGhlIHBhcmFtZXRlciA8bGl0ZXJhbD5wdWJsaXNo X3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4uCisgICAgICBXaGVuIDxsaXRlcmFsPnB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290PC9saXRlcmFsPiBpcyBzZXQgdG8KKyAgICAgIDxsaXRlcmFs PnRydWU8L2xpdGVyYWw+LCBzcGVjaWZ5aW5nIGEgcm9vdCBwYXJ0aXRpb25lZCB0YWJsZSBpbgor ICAgICAgPGxpdGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPiBleGNsdWRlcyBpdCBhbmQgYWxs IGl0cyBwYXJ0aXRpb25zIGZyb20KKyAgICAgIHJlcGxpY2F0aW9uLiBTcGVjaWZ5aW5nIGEgbGVh ZiBwYXJ0aXRpb24gaGFzIG5vIGVmZmVjdCwgYXMgaXRzIGNoYW5nZXMgYXJlCisgICAgICBzdGls bCByZXBsaWNhdGVkIHZpYSB0aGUgcm9vdCBwYXJ0aXRpb25lZCB0YWJsZS4gV2hlbgorICAgICAg PGxpdGVyYWw+cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q8L2xpdGVyYWw+IGlzIHNldCB0bwor ICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LCBzcGVjaWZ5aW5nIGEgcGFydGl0aW9uZWQg dGFibGUgb3Igbm9uLWxlYWYKKyAgICAgIHBhcnRpdGlvbiBoYXMgbm8gZWZmZWN0LCBhcyBjaGFu Z2VzIGFyZSByZXBsaWNhdGVkIHZpYSB0aGUgbGVhZgorICAgICAgcGFydGl0aW9ucy4gU3BlY2lm eWluZyBhIGxlYWYgcGFydGl0aW9uIGV4Y2x1ZGVzIG9ubHkgdGhhdCBwYXJ0aXRpb24gZnJvbQor ICAgICAgcmVwbGljYXRpb24uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGVwdWJsaWNhdGlv bi1wYXJhbXMtd2l0aCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+V0lUSCAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0gWywgLi4u IF0gKTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtNDY3LDYgKzUwMiwxNCBA QCBDUkVBVEUgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBGT1IgVEFCTEUgdXNl cnMsIGRlcGFydG1lbnRzLCBUQUJMRVMgSQogQ1JFQVRFIFBVQkxJQ0FUSU9OIHNhbGVzX3B1Ymxp Y2F0aW9uIEZPUiBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1s aXN0aW5nPjwvcGFyYT4KIAorICA8cGFyYT4KKyAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQg cHVibGlzaGVzIGFsbCBjaGFuZ2VzIGluIGFsbCB0aGUgdGFibGVzIGV4Y2VwdAorICAgPHN0cnVj dG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFuZCA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3Ry dWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFVCTElDQVRJT04gbXlwdWJsaWNh dGlvbiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHVzZXJzLCBkZXBhcnRtZW50cyk7Cis8L3Byb2dy YW1saXN0aW5nPgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBDcmVhdGUgYSBwdWJsaWNhdGlv biB0aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBmb3IgdGFibGUgPHN0cnVjdG5hbWU+dXNlcnM8 L3N0cnVjdG5hbWU+LAogICAgYnV0IHJlcGxpY2F0ZXMgb25seSBjb2x1bW5zIDxzdHJ1Y3RuYW1l PnVzZXJfaWQ8L3N0cnVjdG5hbWU+IGFuZApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9w c3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IGY1NmM3 MDI2M2UwLi5mMWIzY2UzODBiNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJl Zi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbApAQCAtMjEwMyw4ICsy MTAzLDkgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogICAgICAgICBsaXN0ZWQuCiAgICAgICAg IElmIDxsaXRlcmFsPng8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUs IHRoZSByZXN1bHRzCiAgICAgICAgIGFyZSBkaXNwbGF5ZWQgaW4gZXhwYW5kZWQgbW9kZS4KLSAg ICAgICAgSWYgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQg bmFtZSwgdGhlIHRhYmxlcyBhbmQKLSAgICAgICAgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFj aCBwdWJsaWNhdGlvbiBhcmUgc2hvd24gYXMgd2VsbC4KKyAgICAgICAgSWYgPGxpdGVyYWw+Kzwv bGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHRhYmxlcywKKyAg ICAgICAgZXhjbHVkZWQgdGFibGVzLCBhbmQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBw dWJsaWNhdGlvbiBhcmUgc2hvd24KKyAgICAgICAgYXMgd2VsbC4KICAgICAgICAgPC9wYXJhPgog ICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmMKaW5kZXggMDk5NDIyMGM1M2QuLjY0YjczOGY3ZDM0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5jCkBAIC0zNTQsNyArMzU0LDggQEAgR2V0UHViUGFy dGl0aW9uT3B0aW9uUmVsYXRpb25zKExpc3QgKnJlc3VsdCwgUHVibGljYXRpb25QYXJ0T3B0IHB1 Yl9wYXJ0b3B0LAogICogYW5jZXN0b3IgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAqLwog T2lkCi1HZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExpc3QgKmFu Y2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbCkKK0dldFRvcE1vc3RBbmNlc3RvckluUHVibGlj YXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLAorCQkJCQkJCQlpbnQgKmFuY2VzdG9y X2xldmVsLCBib29sIHB1YmFsbHRhYmxlcykKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlPaWQJCQl0 b3Btb3N0X3JlbGlkID0gSW52YWxpZE9pZDsKQEAgLTM2NiwzMiArMzY3LDQzIEBAIEdldFRvcE1v c3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBpbnQg KmFuY2VzdG9yX2xldmVsCiAJZm9yZWFjaChsYywgYW5jZXN0b3JzKQogCXsKIAkJT2lkCQkJYW5j ZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKLQkJTGlzdAkgICAqYXB1YmlkcyA9IEdldFJlbGF0aW9u UHVibGljYXRpb25zKGFuY2VzdG9yKTsKLQkJTGlzdAkgICAqYXNjaGVtYVB1YmlkcyA9IE5JTDsK KwkJTGlzdAkgICAqYXB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAqYWV4Y2VwdHB1YmlkcyA9IE5J TDsKKwkJTGlzdAkgICAqYXNjaGVtYXB1YmlkcyA9IE5JTDsKKwkJYm9vbAkJc2V0X3RvcCA9IGZh bHNlOworCisJCUdldFJlbGF0aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCAmYXB1YmlkcywgJmFl eGNlcHRwdWJpZHMpOwogCiAJCWxldmVsKys7CiAKLQkJaWYgKGxpc3RfbWVtYmVyX29pZChhcHVi aWRzLCBwdWJvaWQpKQorCQkvKiBjaGVjayBpZiBtZW1iZXIgb2YgdGFibGUgcHVibGljYXRpb25z ICovCisJCXNldF90b3AgPSBsaXN0X21lbWJlcl9vaWQoYXB1YmlkcywgcHVib2lkKTsKKwkJaWYg KCFzZXRfdG9wKQogCQl7Ci0JCQl0b3Btb3N0X3JlbGlkID0gYW5jZXN0b3I7CisJCQlhc2NoZW1h cHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9y KSk7CiAKLQkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZl bDsKKwkJCS8qIGNoZWNrIGlmIG1lbWJlciBvZiBzY2hlbWEgcHVibGljYXRpb25zICovCisJCQlz ZXRfdG9wID0gbGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFwdWJpZHMsIHB1Ym9pZCk7CisKKwkJCS8q CisJCQkgKiBJZiB0aGUgcHVibGljYXRpb24gaXMgYWxsIHRhYmxlcyBwdWJsaWNhdGlvbiBhbmQg dGhlIHRhYmxlIGlzCisJCQkgKiBub3QgcGFydCBvZiBleGNlcHRpb24gdGFibGVzLgorCQkJICov CisJCQlpZiAoIXNldF90b3AgJiYgcHViYWxsdGFibGVzKQorCQkJCXNldF90b3AgPSAhbGlzdF9t ZW1iZXJfb2lkKGFleGNlcHRwdWJpZHMsIHB1Ym9pZCk7CiAJCX0KLQkJZWxzZQorCisJCWlmIChz ZXRfdG9wKQogCQl7Ci0JCQlhc2NoZW1hUHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdl dF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKSk7Ci0JCQlpZiAobGlzdF9tZW1iZXJfb2lkKGFzY2hl bWFQdWJpZHMsIHB1Ym9pZCkpCi0JCQl7Ci0JCQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOwor CQkJdG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOwogCi0JCQkJaWYgKGFuY2VzdG9yX2xldmVsKQot CQkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKLQkJCX0KKwkJCWlmIChhbmNlc3Rvcl9sZXZl bCkKKwkJCQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKIAkJfQogCiAJCWxpc3RfZnJlZShhcHVi aWRzKTsKLQkJbGlzdF9mcmVlKGFzY2hlbWFQdWJpZHMpOworCQlsaXN0X2ZyZWUoYXNjaGVtYXB1 Ymlkcyk7CisJCWxpc3RfZnJlZShhZXhjZXB0cHViaWRzKTsKIAl9CiAKIAlyZXR1cm4gdG9wbW9z dF9yZWxpZDsKQEAgLTQ2Niw2ICs0NzgsMTYgQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9p ZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZSh0YXJnZXRyZWwpLCBwdWItPm5hbWUpKSk7CiAJfQogCisJLyoKKwkgKiBDaGVjayB3 aGVuIGEgcGFydGl0aW9uIGlzIGV4Y2x1ZGVkIHZpYSBFWENFUFQgVEFCTEUgd2hpbGUgdGhlCisJ ICogcHVibGljYXRpb24gaGFzIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZS4KKwkg Ki8KKwlpZiAocHViLT5hbGx0YWJsZXMgJiYgcHJpLT5leGNlcHQgJiYgdGFyZ2V0cmVsLT5yZF9y ZWwtPnJlbGlzcGFydGl0aW9uICYmCisJCXB1Yi0+cHVidmlhcm9vdCkKKwkJZXJlcG9ydChXQVJO SU5HLAorCQkJCShlcnJtc2coInBhcnRpdGlvbiBcIiVzXCIgd2lsbCBiZSByZXBsaWNhdGVkIGFz IHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IGlzIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpLCAidHJ1ZSIpKSk7CisKIAljaGVja19wdWJsaWNhdGlv bl9hZGRfcmVsYXRpb24odGFyZ2V0cmVsKTsKIAogCS8qIFZhbGlkYXRlIGFuZCB0cmFuc2xhdGUg Y29sdW1uIG5hbWVzIGludG8gYSBCaXRtYXBzZXQgb2YgYXR0bnVtcy4gKi8KQEAgLTQ4Miw2ICs1 MDQsOCBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJl bEluZm8gKnByaSwKIAkJT2JqZWN0SWRHZXREYXR1bShwdWJpZCk7CiAJdmFsdWVzW0FudW1fcGdf cHVibGljYXRpb25fcmVsX3BycmVsaWQgLSAxXSA9CiAJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQp OworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCAtIDFdID0KKwkJQm9v bEdldERhdHVtKHByaS0+ZXhjZXB0KTsKIAogCS8qIEFkZCBxdWFsaWZpY2F0aW9ucywgaWYgYXZh aWxhYmxlICovCiAJaWYgKHByaS0+d2hlcmVDbGF1c2UgIT0gTlVMTCkKQEAgLTc0OSwzNSArNzcz LDU5IEBAIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1YmlkLCBPaWQgc2NoZW1haWQsIGJv b2wgaWZfbm90X2V4aXN0cykKIAlyZXR1cm4gbXlzZWxmOwogfQogCi0vKiBHZXRzIGxpc3Qgb2Yg cHVibGljYXRpb24gb2lkcyBmb3IgYSByZWxhdGlvbiAqLwotTGlzdCAqCi1HZXRSZWxhdGlvblB1 YmxpY2F0aW9ucyhPaWQgcmVsaWQpCisvKgorICogR2V0IHRoZSBsaXN0IG9mIHB1YmxpY2F0aW9u IG9pZHMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWVkIHJlbGF0aW9uLgorICogcHViaWRzIGlz IGZpbGxlZCB3aXRoIHRoZSBsaXN0IG9mIHB1YmxpY2F0aW9uIG9pZHMgdGhlIHJlbGF0aW9uIGlz IHBhcnQgb2YuCisgKiBleGNlcHRfcHViaWRzIGlzIGZpbGxlZCB3aXRoIHRoZSBsaXN0IG9mIHB1 YmxpY2F0aW9uIG9pZHMgdGhlIHJlbGF0aW9uIGlzCisgKiBleGNsdWRlZCBmcm9tLgorICoKKyAq IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIHRoZSByZWxhdGlvbiBpcyBwYXJ0IG9mIGFu eSBwdWJsaWNhdGlvbi4KKyAqLworYm9vbAorR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJl bGlkLCBMaXN0ICoqcHViaWRzLCBMaXN0ICoqZXhjZXB0X3B1YmlkcykKIHsKLQlMaXN0CSAgICpy ZXN1bHQgPSBOSUw7CiAJQ2F0Q0xpc3QgICAqcHVicmVsbGlzdDsKLQlpbnQJCQlpOworCWJvb2wJ CWZvdW5kID0gZmFsc2U7CiAKIAkvKiBGaW5kIGFsbCBwdWJsaWNhdGlvbnMgYXNzb2NpYXRlZCB3 aXRoIHRoZSByZWxhdGlvbi4gKi8KIAlwdWJyZWxsaXN0ID0gU2VhcmNoU3lzQ2FjaGVMaXN0MShQ VUJMSUNBVElPTlJFTE1BUCwKIAkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKHJlbGlkKSk7Ci0J Zm9yIChpID0gMDsgaSA8IHB1YnJlbGxpc3QtPm5fbWVtYmVyczsgaSsrKQorCWZvciAoaW50IGkg PSAwOyBpIDwgcHVicmVsbGlzdC0+bl9tZW1iZXJzOyBpKyspCiAJewogCQlIZWFwVHVwbGUJdHVw ID0gJnB1YnJlbGxpc3QtPm1lbWJlcnNbaV0tPnR1cGxlOwotCQlPaWQJCQlwdWJpZCA9ICgoRm9y bV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApKS0+cHJwdWJpZDsKKwkJRm9ybV9w Z19wdWJsaWNhdGlvbl9yZWwgcHVicmVsID0gKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRT VFJVQ1QodHVwKTsKKwkJT2lkCQkJcHViaWQgPSBwdWJyZWwtPnBycHViaWQ7CiAKLQkJcmVzdWx0 ID0gbGFwcGVuZF9vaWQocmVzdWx0LCBwdWJpZCk7CisJCWlmIChwdWJyZWwtPnByZXhjZXB0KQor CQl7CisJCQlpZiAoZXhjZXB0X3B1YmlkcykKKwkJCQkqZXhjZXB0X3B1YmlkcyA9IGxhcHBlbmRf b2lkKCpleGNlcHRfcHViaWRzLCBwdWJpZCk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlpZiAocHVi aWRzKQorCQkJCSpwdWJpZHMgPSBsYXBwZW5kX29pZCgqcHViaWRzLCBwdWJpZCk7CisJCQlmb3Vu ZCA9IHRydWU7CisJCX0KIAl9CiAKIAlSZWxlYXNlU3lzQ2FjaGVMaXN0KHB1YnJlbGxpc3QpOwog Ci0JcmV0dXJuIHJlc3VsdDsKKwlyZXR1cm4gZm91bmQ7CiB9CiAKIC8qCi0gKiBHZXRzIGxpc3Qg b2YgcmVsYXRpb24gb2lkcyBmb3IgYSBwdWJsaWNhdGlvbi4KKyAqIFJldHVybiB0aGUgbGlzdCBv ZiByZWxhdGlvbiBPSURzIGZvciBhIHB1YmxpY2F0aW9uLgorICoKKyAqIEZvciBhIEZPUiBBTEwg VEFCTEVTIHB1YmxpY2F0aW9uLCB0aGlzIHJldHVybnMgdGhlIGxpc3Qgb2YgdGFibGVzIHRoYXQg d2VyZQorICogZXhwbGljaXRseSBleGNsdWRlZCB2aWEgYW4gRVhDRVBUIFRBQkxFIGNsYXVzZS4K ICAqCi0gKiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgRk9SIFRBQkxFIHB1YmxpY2F0aW9ucywg dGhlIEZPUiBBTEwgVEFCTEVTL1NFUVVFTkNFUwotICogc2hvdWxkIHVzZSBHZXRBbGxQdWJsaWNh dGlvblJlbGF0aW9ucygpLgorICogRm9yIGEgRk9SIFRBQkxFIHB1YmxpY2F0aW9uLCB0aGlzIHJl dHVybnMgdGhlIGxpc3Qgb2YgdGFibGVzIGV4cGxpY2l0bHkKKyAqIGluY2x1ZGVkIGluIHRoZSBw dWJsaWNhdGlvbi4KKyAqCisgKiBQdWJsaWNhdGlvbnMgZGVjbGFyZWQgd2l0aCBGT1IgQUxMIFRB QkxFUyBvciBGT1IgQUxMIFNFUVVFTkNFUyBzaG91bGQgdXNlCisgKiBHZXRBbGxQdWJsaWNhdGlv blJlbGF0aW9ucygpIHRvIG9idGFpbiB0aGUgY29tcGxldGUgc2V0IG9mIHRhYmxlcyBjb3ZlcmVk IGJ5CisgKiB0aGUgcHVibGljYXRpb24uCiAgKi8KIExpc3QgKgogR2V0UHVibGljYXRpb25SZWxh dGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCkBAIC04NjYs MTMgKzkxNCwxOCBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkKICAqIHB1YmxpY2F0 aW9uLgogICovCiBMaXN0ICoKLUdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKGNoYXIgcmVsa2lu ZCwgYm9vbCBwdWJ2aWFyb290KQorR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1Ymlk LCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIHsKIAlSZWxhdGlvbgljbGFzc1JlbDsK IAlTY2FuS2V5RGF0YSBrZXlbMV07CiAJVGFibGVTY2FuRGVzYyBzY2FuOwogCUhlYXBUdXBsZQl0 dXBsZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisJTGlzdAkgICAqZXhjZXB0bGlzdDsKKwor CWV4Y2VwdGxpc3QgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwgcHVidmlhcm9vdCA/ CisJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMIDoKKwkJCQkJCQkJCQkgUFVCTElDQVRJ T05fUEFSVF9ST09UKTsKIAogCUFzc2VydCghKHJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSAm JiBwdWJ2aWFyb290KSk7CiAKQEAgLTg5MSw3ICs5NDQsOCBAQCBHZXRBbGxQdWJsaWNhdGlvblJl bGF0aW9ucyhjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIAkJT2lkCQkJcmVsaWQgPSBy ZWxGb3JtLT5vaWQ7CiAKIAkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3Jt KSAmJgotCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSkKKwkJCSEo cmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYgcHVidmlhcm9vdCkgJiYKKwkJCSFsaXN0X21lbWJl cl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQpKQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0 LCByZWxpZCk7CiAJfQogCkBAIC05MTIsNyArOTY2LDggQEAgR2V0QWxsUHVibGljYXRpb25SZWxh dGlvbnMoY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJl bEZvcm0tPm9pZDsKIAogCQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3Jt KSAmJgotCQkJCSFyZWxGb3JtLT5yZWxpc3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNw YXJ0aXRpb24gJiYKKwkJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJ CQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTY4LDcg KzEyMjMsOCBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CQkgKiB0aG9zZS4gT3RoZXJ3aXNlLCBnZXQgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4K IAkJCSAqLwogCQkJaWYgKHB1Yl9lbGVtLT5hbGx0YWJsZXMpCi0JCQkJcHViX2VsZW1fdGFibGVz ID0gR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoUkVMS0lORF9SRUxBVElPTiwKKwkJCQlwdWJf ZWxlbV90YWJsZXMgPSBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAor CQkJCQkJCQkJCQkJCQkJIFJFTEtJTkRfUkVMQVRJT04sCiAJCQkJCQkJCQkJCQkJCQkgcHViX2Vs ZW0tPnB1YnZpYXJvb3QpOwogCQkJZWxzZQogCQkJewpAQCAtMTM2Nyw3ICsxNDIzLDcgQEAgcGdf Z2V0X3B1YmxpY2F0aW9uX3NlcXVlbmNlcyhQR19GVU5DVElPTl9BUkdTKQogCQlwdWJsaWNhdGlv biA9IEdldFB1YmxpY2F0aW9uQnlOYW1lKHB1Ym5hbWUsIGZhbHNlKTsKIAogCQlpZiAocHVibGlj YXRpb24tPmFsbHNlcXVlbmNlcykKLQkJCXNlcXVlbmNlcyA9IEdldEFsbFB1YmxpY2F0aW9uUmVs YXRpb25zKFJFTEtJTkRfU0VRVUVOQ0UsIGZhbHNlKTsKKwkJCXNlcXVlbmNlcyA9IEdldEFsbFB1 YmxpY2F0aW9uUmVsYXRpb25zKHB1YmxpY2F0aW9uLT5vaWQsIFJFTEtJTkRfU0VRVUVOQ0UsIGZh bHNlKTsKIAogCQlmdW5jY3R4LT51c2VyX2ZjdHggPSBzZXF1ZW5jZXM7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggMWZhZjNhOGMzNzIuLjQwMjEwMDY0MGQ3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMTcwLDYgKzE3MCwzOCBA QCBwYXJzZV9wdWJsaWNhdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAl9CiB9CiAK Ky8qCisgKiBDb252ZXJ0IHRoZSBQdWJsaWNhdGlvbk9ialNwZWMgbGlzdCB3aGljaCBpcyBwYXJ0 IG9mCisgKiBQdWJsaWNhdGlvbkFsbE9ialNwZWNUeXBlIGxpc3QgaW50byBQdWJsaWNhdGlvblRh YmxlIGxpc3QuCisgKi8KK3N0YXRpYyB2b2lkCitPYmplY3RzSW5BbGxQdWJsaWNhdGlvblRvT2lk cyhMaXN0ICpwdWJhbGxvYmpzcGVjX2xpc3QsCisJCQkJCQkJICBQYXJzZVN0YXRlICpwc3RhdGUs IExpc3QgKipyZWxzKQoreworCWlmICghcHViYWxsb2Jqc3BlY19saXN0KQorCQlyZXR1cm47CisK Kwlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbkFsbE9ialNwZWMsIHB1YmFsbG9iaiwgcHViYWxsb2Jq c3BlY19saXN0KQorCXsKKwkJc3dpdGNoIChwdWJhbGxvYmotPnB1Ym9ianR5cGUpCisJCXsKKwkJ CWNhc2UgUFVCTElDQVRJT05fQUxMX1NFUVVFTkNFUzoKKwkJCQlicmVhazsKKwkJCWNhc2UgUFVC TElDQVRJT05fQUxMX1RBQkxFUzoKKwkJCQlmb3JlYWNoX3B0cihQdWJsaWNhdGlvbk9ialNwZWMs IHB1Ym9iaiwgcHViYWxsb2JqLT5leGNlcHRfb2JqZWN0cykKKwkJCQl7CisJCQkJCXB1Ym9iai0+ cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVi b2JqLT5wdWJ0YWJsZSk7CisJCQkJfQorCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQllbG9n KEVSUk9SLCAiaW52YWxpZCBwdWJsaWNhdGlvbiBvYmplY3QgdHlwZSAlZCIsCisJCQkJCSBwdWJh bGxvYmotPnB1Ym9ianR5cGUpOworCQkJCWJyZWFrOworCQl9CisJfQorfQorCiAvKgogICogQ29u dmVydCB0aGUgUHVibGljYXRpb25PYmpTcGVjVHlwZSBsaXN0IGludG8gc2NoZW1hIG9pZCBsaXN0 IGFuZAogICogUHVibGljYXRpb25UYWJsZSBsaXN0LgpAQCAtMTk0LDYgKzIyNiw4IEBAIE9iamVj dHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQlzd2l0Y2ggKHB1Ym9iai0+cHVib2JqdHlwZSkKIAkJewogCQkJY2FzZSBQVUJM SUNBVElPTk9CSl9UQUJMRToKKwkJCWNhc2UgUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgor CQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IChwdWJvYmotPnB1Ym9ianR5cGUgPT0gUFVC TElDQVRJT05PQkpfRVhDRVBUX1RBQkxFKTsKIAkJCQkqcmVscyA9IGxhcHBlbmQoKnJlbHMsIHB1 Ym9iai0+cHVidGFibGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBQVUJMSUNBVElPTk9CSl9UQUJM RVNfSU5fU0NIRU1BOgpAQCAtMjY4LDcgKzMwMiw3IEBAIGNvbnRhaW5faW52YWxpZF9yZmNvbHVt bl93YWxrZXIoTm9kZSAqbm9kZSwgcmZfY29udGV4dCAqY29udGV4dCkKICAqLwogYm9vbAogcHVi X3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24s IExpc3QgKmFuY2VzdG9ycywKLQkJCQkJCQkgICBib29sIHB1YnZpYXJvb3QpCisJCQkJCQkJICAg Ym9vbCBwdWJ2aWFyb290LCBib29sIHB1YmFsbHRhYmxlcykKIHsKIAlIZWFwVHVwbGUJcmZ0dXBs ZTsKIAlPaWQJCQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMjk1LDcg KzMyOSw4IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0 aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRp b24tPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24pCiAJewogCQlwdWJsaXNoX2FzX3JlbGlkCi0JCQk9 IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywgTlVMTCk7 CisJCQk9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywg TlVMTCwKKwkJCQkJCQkJCQkJICBwdWJhbGx0YWJsZXMpOwogCiAJCWlmICghT2lkSXNWYWxpZChw dWJsaXNoX2FzX3JlbGlkKSkKIAkJCXB1Ymxpc2hfYXNfcmVsaWQgPSByZWxpZDsKQEAgLTM1NCw4 ICszODksOCBAQCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxh dGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogICovCiBib29sCiBwdWJfY29udGFpbnNf aW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAqYW5jZXN0 b3JzLAotCQkJCQkJCWJvb2wgcHVidmlhcm9vdCwgY2hhciBwdWJnZW5jb2xzX3R5cGUsCi0JCQkJ CQkJYm9vbCAqaW52YWxpZF9jb2x1bW5fbGlzdCwKKwkJCQkJCQlib29sIHB1YmFsbHRhYmxlcywg Ym9vbCBwdWJ2aWFyb290LAorCQkJCQkJCWNoYXIgcHViZ2VuY29sc190eXBlLCBib29sICppbnZh bGlkX2NvbHVtbl9saXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJ CQlyZWxpZCA9IFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzc5LDcgKzQxNCw4IEBA IHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9u LCBMaXN0ICphbmNlc3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJk X3JlbC0+cmVsaXNwYXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9z dEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlz aF9hc19yZWxpZCA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2Vz dG9ycywKKwkJCQkJCQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9p ZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7 CkBAIC05MjMsMTYgKzk1OSw5IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCS8qIE1ha2UgdGhlIGNoYW5nZXMgdmlz aWJsZS4gKi8KIAlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogCi0JLyogQXNzb2NpYXRlIG9i amVjdHMgd2l0aCB0aGUgcHVibGljYXRpb24uICovCiAJaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVz KQotCXsKLQkJLyoKLQkJICogSW52YWxpZGF0ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9u IGluZm8gaXMgcmVidWlsdC4gU2VxdWVuY2VzCi0JCSAqIHB1YmxpY2F0aW9uIGRvZXNuJ3QgcmVx dWlyZSBpbnZhbGlkYXRpb24sIGFzIHJlcGxpY2EgaWRlbnRpdHkKLQkJICogY2hlY2tzIGRvbid0 IGFwcGx5IHRvIHRoZW0uCi0JCSAqLwotCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOwot CX0KKwkJT2JqZWN0c0luQWxsUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0 YXRlLCAmcmVsYXRpb25zKTsKKwogCWVsc2UgaWYgKCFzdG10LT5mb3JfYWxsX3NlcXVlbmNlcykK IAl7CiAJCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0 ZSwgJnJlbGF0aW9ucywKQEAgLTk0NCwyMiArOTczLDYgQEAgQ3JlYXRlUHVibGljYXRpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCWVycmNv ZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKIAkJCQkJZXJybXNnKCJtdXN0IGJl IHN1cGVydXNlciB0byBjcmVhdGUgRk9SIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljYXRpb24iKSk7 CiAKLQkJaWYgKHJlbGF0aW9ucyAhPSBOSUwpCi0JCXsKLQkJCUxpc3QJICAgKnJlbHM7Ci0KLQkJ CXJlbHMgPSBPcGVuVGFibGVMaXN0KHJlbGF0aW9ucyk7Ci0JCQlUcmFuc2Zvcm1QdWJXaGVyZUNs YXVzZXMocmVscywgcHN0YXRlLT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkgcHVibGlzaF92aWFf cGFydGl0aW9uX3Jvb3QpOwotCi0JCQlDaGVja1B1YlJlbGF0aW9uQ29sdW1uTGlzdChzdG10LT5w dWJuYW1lLCByZWxzLAotCQkJCQkJCQkJICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKLQkJCQkJCQkJ CSAgIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKLQotCQkJUHVibGljYXRpb25BZGRUYWJs ZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwot CQl9Ci0KIAkJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwpCiAJCXsKIAkJCS8qCkBAIC05NzEsOCAr OTg0LDM3IEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVi bGljYXRpb25TdG10ICpzdG10KQogCQl9CiAJfQogCisJLyoKKwkgKiBJZiBwdWJsaWNhdGlvbiBp cyBmb3IgQUxMIFRBQkxFUyBhbmQgcmVsYXRpb25zIGlzIG5vdCBlbXB0eSwgaXQgbWVhbnMKKwkg KiB0aGF0IHRoZXJlIGFyZSBzb21lIHJlbGF0aW9ucyB0byBiZSBleGNsdWRlZCBmcm9tIHRoZSBw dWJsaWNhdGlvbi4KKwkgKiBFbHNlLCByZWxhdGlvbnMgaXMgdGhlIGxpc3Qgb2YgcmVsYXRpb25z IHRvIGJlIGFkZGVkIHRvIHRoZQorCSAqIHB1YmxpY2F0aW9uLgorCSAqLworCWlmIChyZWxhdGlv bnMgIT0gTklMKQorCXsKKwkJTGlzdAkgICAqcmVsczsKKworCQlyZWxzID0gT3BlblRhYmxlTGlz dChyZWxhdGlvbnMpOworCQlUcmFuc2Zvcm1QdWJXaGVyZUNsYXVzZXMocmVscywgcHN0YXRlLT5w X3NvdXJjZXRleHQsCisJCQkJCQkJCSBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisKKwkJ Q2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwgcmVscywKKwkJCQkJCQkJ ICAgc2NoZW1haWRsaXN0ICE9IE5JTCwKKwkJCQkJCQkJICAgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3QpOworCisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVM TCk7CisJCUNsb3NlVGFibGVMaXN0KHJlbHMpOworCX0KKwogCXRhYmxlX2Nsb3NlKHJlbCwgUm93 RXhjbHVzaXZlTG9jayk7CiAKKwkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNh dGlvbi4gKi8KKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCisJeworCQkvKiBJbnZhbGlkYXRl IHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiAqLworCQlDYWNo ZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOworCX0KKwogCUludm9rZU9iamVjdFBvc3RDcmVhdGVI b29rKFB1YmxpY2F0aW9uUmVsYXRpb25JZCwgcHVib2lkLCAwKTsKIAogCWlmICh3YWxfbGV2ZWwg IT0gV0FMX0xFVkVMX0xPR0lDQUwpCkBAIC0xMzQ4LDYgKzEzOTAsNyBAQCBBbHRlclB1YmxpY2F0 aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJ CW9sZHJlbCA9IHBhbGxvYyhzaXplb2YoUHVibGljYXRpb25SZWxJbmZvKSk7CiAJCQkJb2xkcmVs LT53aGVyZUNsYXVzZSA9IE5VTEw7CiAJCQkJb2xkcmVsLT5jb2x1bW5zID0gTklMOworCQkJCW9s ZHJlbC0+ZXhjZXB0ID0gZmFsc2U7CiAJCQkJb2xkcmVsLT5yZWxhdGlvbiA9IHRhYmxlX29wZW4o b2xkcmVsaWQsCiAJCQkJCQkJCQkJCSAgU2hhcmVVcGRhdGVFeGNsdXNpdmVMb2NrKTsKIAkJCQlk ZWxyZWxzID0gbGFwcGVuZChkZWxyZWxzLCBvbGRyZWwpOwpAQCAtMTc2MSw2ICsxODA0LDcgQEAg T3BlblRhYmxlTGlzdChMaXN0ICp0YWJsZXMpCiAJCXB1Yl9yZWwtPnJlbGF0aW9uID0gcmVsOwog CQlwdWJfcmVsLT53aGVyZUNsYXVzZSA9IHQtPndoZXJlQ2xhdXNlOwogCQlwdWJfcmVsLT5jb2x1 bW5zID0gdC0+Y29sdW1uczsKKwkJcHViX3JlbC0+ZXhjZXB0ID0gdC0+ZXhjZXB0OwogCQlyZWxz ID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRz LCBteXJlbGlkKTsKIApAQCAtMTgzMyw2ICsxODc3LDcgQEAgT3BlblRhYmxlTGlzdChMaXN0ICp0 YWJsZXMpCiAKIAkJCQkvKiBjaGlsZCBpbmhlcml0cyBjb2x1bW4gbGlzdCBmcm9tIHBhcmVudCAq LwogCQkJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5jb2x1bW5zOworCQkJCXB1Yl9yZWwtPmV4Y2Vw dCA9IHQtPmV4Y2VwdDsKIAkJCQlyZWxzID0gbGFwcGVuZChyZWxzLCBwdWJfcmVsKTsKIAkJCQly ZWxpZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIGNoaWxkcmVsaWQpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jCmluZGV4IDA3ZTViOTU3ODJlLi5hMzVmNDBhMTk1NiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMKQEAgLTg2NTEsNyArODY1MSw3IEBAIEFURXhlY1NldEV4cHJlc3Npb24oQWx0 ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsCiAJ ICogZXhwcmVzc2lvbnMuCiAJICovCiAJaWYgKGF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VO RVJBVEVEX1ZJUlRVQUwgJiYKLQkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRS ZWxpZChyZWwpKSAhPSBOSUwpCisJCUdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0 UmVsaWQocmVsKSwgTlVMTCwgTlVMTCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCSBlcnJtc2coIkFMVEVSIFRBQkxF IC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1ucyBpbiB0YWJsZXMgdGhhdCBhcmUgcGFydCBvZiBhIHB1YmxpY2F0aW9uIiksCkBAIC0x ODg0Niw3ICsxODg0Niw3IEBAIEFUUHJlcENoYW5nZVBlcnNpc3RlbmNlKEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgUmVsYXRpb24gcmVsLCBib29sIHRvTG9nZ2VkKQogCSAqIFVOTE9HR0VELCBhcyBV TkxPR0dFRCB0YWJsZXMgY2FuJ3QgYmUgcHVibGlzaGVkLgogCSAqLwogCWlmICghdG9Mb2dnZWQg JiYKLQkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpKSAhPSBO SUwpCisJCUdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgTlVM TCwgTlVMTCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1Rf Tk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygiY2Fubm90IGNoYW5nZSB0 YWJsZSBcIiVzXCIgdG8gdW5sb2dnZWQgYmVjYXVzZSBpdCBpcyBwYXJ0IG9mIGEgcHVibGljYXRp b24iLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKaW5kZXggYzNhMGEzNTRhOWMuLjg5NDI5ZTYzZDhiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKQEAgLTQ1NCw2ICs0NTQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCVRyaWdn ZXJUcmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlz dCBvcHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKIAkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpf bGlzdCBwdWJfYWxsX29ial90eXBlX2xpc3QKKwkJCQlwdWJfZXhjZXB0X29ial9saXN0IG9wdF9l eGNlcHRfY2xhdXNlCiAKICV0eXBlIDxyZXRjbGF1c2U+IHJldHVybmluZ19jbGF1c2UKICV0eXBl IDxub2RlPglyZXR1cm5pbmdfb3B0aW9uCkBAIC01OTEsNiArNTkyLDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5v ZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPgl2YXJfdmFsdWUgem9uZV92YWx1ZQogJXR5cGUgPHJv bGVzcGVjPiBhdXRoX2lkZW50IFJvbGVTcGVjIG9wdF9ncmFudGVkX2J5CiAldHlwZSA8cHVibGlj YXRpb25vYmplY3RzcGVjPiBQdWJsaWNhdGlvbk9ialNwZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9i amVjdHNwZWM+IFB1YmxpY2F0aW9uRXhjZXB0T2JqU3BlYwogJXR5cGUgPHB1YmxpY2F0aW9uYWxs b2JqZWN0c3BlYz4gUHVibGljYXRpb25BbGxPYmpTcGVjCiAKICV0eXBlIDxrZXl3b3JkPiB1bnJl c2VydmVkX2tleXdvcmQgdHlwZV9mdW5jX25hbWVfa2V5d29yZApAQCAtMTA3NjEsNiArMTA3NjMs NyBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCUNyZWF0ZVB1YmxpY2F0aW9uU3RtdCAq biA9IG1ha2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3RtdCk7CiAKIAkJCQkJbi0+cHVibmFtZSA9 ICQzOworCQkJCQluLT5wdWJvYmplY3RzID0gJDU7CiAJCQkJCXByZXByb2Nlc3NfcHViX2FsbF9v Ymp0eXBlX2xpc3QoJDUsICZuLT5mb3JfYWxsX3RhYmxlcywKIAkJCQkJCQkJCQkJCQkmbi0+Zm9y X2FsbF9zZXF1ZW5jZXMsCiAJCQkJCQkJCQkJCQkJeXlzY2FubmVyKTsKQEAgLTEwODAxLDYgKzEw ODA0LDcgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9u ID0gJDI7CiAJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwogCQkJCQkkJC0+cHVidGFi bGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJ CXwgVEFCTEVTIElOX1AgU0NIRU1BIENvbElkCiAJCQkJewpAQCAtMTA4NzcsMTAgKzEwODgxLDEz IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGljYXRpb25PYmpTcGVjCiAJOwogCiBQdWJsaWNhdGlvbkFs bE9ialNwZWM6Ci0JCQkJQUxMIFRBQkxFUworCQkJCUFMTCBUQUJMRVMgb3B0X2V4Y2VwdF9jbGF1 c2UKIAkJCQkJewogCQkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbkFsbE9ialNwZWMpOwog CQkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTl9BTExfVEFCTEVTOworCQkJCQkJJCQt PmV4Y2VwdF9vYmplY3RzID0gJDM7CisJCQkJCQlpZigkJC0+ZXhjZXB0X29iamVjdHMgIT0gTlVM TCkKKwkJCQkJCQlwcmVwcm9jZXNzX3B1Ym9ial9saXN0KCQkLT5leGNlcHRfb2JqZWN0cywgeXlz Y2FubmVyKTsKIAkJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCQl9CiAJCQkJfCBBTEwgU0VR VUVOQ0VTCkBAIC0xMDg5Nyw2ICsxMDkwNCwzMSBAQCBwdWJfYWxsX29ial90eXBlX2xpc3Q6CVB1 YmxpY2F0aW9uQWxsT2JqU3BlYwogCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJOwog CisvKgorICogQUxMIFRBQkxFUyBFWENFUFQgKCB0YWJsZV9uYW1lIFssIC4uLl0gKSBzcGVjaWZp Y2F0aW9uCisgKi8KK1B1YmxpY2F0aW9uRXhjZXB0T2JqU3BlYzoKKwkJCSByZWxhdGlvbl9leHBy CisJCQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQk LT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOworCQkJCQkkJC0+cHVi dGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5l eGNlcHQgPSB0cnVlOworCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7CisJCQkJCSQk LT5sb2NhdGlvbiA9IEAxOworCQkJCX0KKwk7CisKK3B1Yl9leGNlcHRfb2JqX2xpc3Q6IFB1Ymxp Y2F0aW9uRXhjZXB0T2JqU3BlYworCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgkMSk7IH0KKwkJCXwg cHViX2V4Y2VwdF9vYmpfbGlzdCAnLCcgUHVibGljYXRpb25FeGNlcHRPYmpTcGVjCisJCQkJCXsg JCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KKwk7CisKK29wdF9leGNlcHRfY2xhdXNlOgorCQkJRVhD RVBUIG9wdF90YWJsZSAnKCcgcHViX2V4Y2VwdF9vYmpfbGlzdCAnKScJeyAkJCA9ICQ0OyB9CisJ CQl8IC8qRU1QVFkqLwkJCQkJCQkJCQl7ICQkID0gTklMOyB9CisJCTsKIAogLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRw dXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0 LmMKaW5kZXggOTQyZTFhYmRiNTguLmZiYWU3YmNjNDY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKQEAgLTIwODQsNyArMjA4NCw4IEBAIGdldF9yZWxf c3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCWlmICgh ZW50cnktPnJlcGxpY2F0ZV92YWxpZCkKIAl7CiAJCU9pZAkJCXNjaGVtYUlkID0gZ2V0X3JlbF9u YW1lc3BhY2UocmVsaWQpOwotCQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhyZWxpZCk7CisJCUxpc3QJICAgKnB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAqZXhjZXB0 VGFibGVQdWJpZHMgPSBOSUw7CiAKIAkJLyoKIAkJICogV2UgZG9uJ3QgYWNxdWlyZSBhIGxvY2sg b24gdGhlIG5hbWVzcGFjZSBzeXN0ZW0gdGFibGUgYXMgd2UgYnVpbGQKQEAgLTIwOTksNiArMjEw MCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJl bGF0aW9uKQogCQljaGFyCQlyZWxraW5kID0gZ2V0X3JlbF9yZWxraW5kKHJlbGlkKTsKIAkJTGlz dAkgICAqcmVsX3B1YmxpY2F0aW9ucyA9IE5JTDsKIAorCQlHZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhyZWxpZCwgJnB1YmlkcywgJmV4Y2VwdFRhYmxlUHViaWRzKTsKKwogCQkvKiBSZWxvYWQgcHVi bGljYXRpb25zIGlmIG5lZWRlZCBiZWZvcmUgdXNlLiAqLwogCQlpZiAoIXB1YmxpY2F0aW9uc192 YWxpZCkKIAkJewpAQCAtMjE5NSwyMiArMjE5OCw2IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091 dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJT2lkCQkJcHViX3JlbGlkID0g cmVsaWQ7CiAJCQlpbnQJCQlhbmNlc3Rvcl9sZXZlbCA9IDA7CiAKLQkJCS8qCi0JCQkgKiBJZiB0 aGlzIGlzIGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24sIHBpY2sgdGhlIHBhcnRpdGlvbgot CQkJICogcm9vdCBhbmQgc2V0IHRoZSBhbmNlc3RvciBsZXZlbCBhY2NvcmRpbmdseS4KLQkJCSAq LwotCQkJaWYgKHB1Yi0+YWxsdGFibGVzKQotCQkJewotCQkJCXB1Ymxpc2ggPSB0cnVlOwotCQkJ CWlmIChwdWItPnB1YnZpYXJvb3QgJiYgYW1fcGFydGl0aW9uKQotCQkJCXsKLQkJCQkJTGlzdAkg ICAqYW5jZXN0b3JzID0gZ2V0X3BhcnRpdGlvbl9hbmNlc3RvcnMocmVsaWQpOwotCi0JCQkJCXB1 Yl9yZWxpZCA9IGxsYXN0X29pZChhbmNlc3RvcnMpOwotCQkJCQlhbmNlc3Rvcl9sZXZlbCA9IGxp c3RfbGVuZ3RoKGFuY2VzdG9ycyk7Ci0JCQkJfQotCQkJfQotCiAJCQlpZiAoIXB1Ymxpc2gpCiAJ CQl7CiAJCQkJYm9vbAkJYW5jZXN0b3JfcHVibGlzaGVkID0gZmFsc2U7CkBAIC0yMjI5LDcgKzIy MTYsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiBy ZWxhdGlvbikKIAogCQkJCQlhbmNlc3RvciA9IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRp b24ocHViLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkgICBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJCQkJ CQkgICAmbGV2ZWwpOworCQkJCQkJCQkJCQkJCQkJICAgJmxldmVsLAorCQkJCQkJCQkJCQkJCQkJ ICAgcHViLT5hbGx0YWJsZXMpOwogCiAJCQkJCWlmIChhbmNlc3RvciAhPSBJbnZhbGlkT2lkKQog CQkJCQl7CkBAIC0yMjQ0LDYgKzIyMzIsOCBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXRE YXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQkJCWlmIChsaXN0X21lbWJlcl9vaWQo cHViaWRzLCBwdWItPm9pZCkgfHwKIAkJCQkJbGlzdF9tZW1iZXJfb2lkKHNjaGVtYVB1Ymlkcywg cHViLT5vaWQpIHx8CisJCQkJCShwdWItPmFsbHRhYmxlcyAmJgorCQkJCQkgIWxpc3RfbWVtYmVy X29pZChleGNlcHRUYWJsZVB1YmlkcywgcHViLT5vaWQpKSB8fAogCQkJCQlhbmNlc3Rvcl9wdWJs aXNoZWQpCiAJCQkJCXB1Ymxpc2ggPSB0cnVlOwogCQkJfQpAQCAtMjMyMiw2ICsyMzEyLDcgQEAg Z2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24p CiAKIAkJbGlzdF9mcmVlKHB1Ymlkcyk7CiAJCWxpc3RfZnJlZShzY2hlbWFQdWJpZHMpOworCQls aXN0X2ZyZWUoZXhjZXB0VGFibGVQdWJpZHMpOwogCQlsaXN0X2ZyZWUocmVsX3B1YmxpY2F0aW9u cyk7CiAKIAkJZW50cnktPnJlcGxpY2F0ZV92YWxpZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cmVsY2FjaGUuYwppbmRleCA5MTVkMGJjOTA4NC4uMWIwZjM1NTgyYmIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcmVsY2FjaGUuYwpAQCAtNTc5Myw3ICs1NzkzLDkgQEAgUmVsYXRpb25HZXRFeGNsdXNp b25JbmZvKFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiB2b2lkCiBSZWxhdGlvbkJ1aWxkUHVibGlj YXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiB7 Ci0JTGlzdAkgICAqcHVib2lkczsKKwlMaXN0CSAgICpwdWJvaWRzID0gTklMOworCUxpc3QJICAg KmV4Y2VwdHB1Ym9pZHMgPSBOSUw7CisJTGlzdAkgICAqYWxsdGFibGVzcHVib2lkczsKIAlMaXN0 Q2VsbCAgICpsYzsKIAlNZW1vcnlDb250ZXh0IG9sZGN4dDsKIAlPaWQJCQlzY2hlbWFpZDsKQEAg LTU4MzEsNyArNTgzMyw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24g cmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAlwdWJkZXNjLT5nZW5jb2xzX3Zh bGlkX2Zvcl9kZWxldGUgPSB0cnVlOwogCiAJLyogRmV0Y2ggdGhlIHB1YmxpY2F0aW9uIG1lbWJl cnNoaXAgaW5mby4gKi8KLQlwdWJvaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQp OworCUdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCAmcHVib2lkcywgJmV4Y2VwdHB1Ym9p ZHMpOwogCXNjaGVtYWlkID0gUmVsYXRpb25HZXROYW1lc3BhY2UocmVsYXRpb24pOwogCXB1Ym9p ZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldFNjaGVtYVB1YmxpY2F0aW9u cyhzY2hlbWFpZCkpOwogCkBAIC01ODQzLDE2ICs1ODQ1LDI1IEBAIFJlbGF0aW9uQnVpbGRQdWJs aWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykK IAkJZm9yZWFjaChsYywgYW5jZXN0b3JzKQogCQl7CiAJCQlPaWQJCQlhbmNlc3RvciA9IGxmaXJz dF9vaWQobGMpOworCQkJTGlzdAkgICAqYW5jZXN0b3JfcHVib2lkcyA9IE5JTDsKKwkJCUxpc3QJ ICAgKmFuY2VzdG9yX2V4Y2VwdHB1Ym9pZHMgPSBOSUw7CiAKLQkJCXB1Ym9pZHMgPSBsaXN0X2Nv bmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCi0JCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhhbmNlc3RvcikpOworCQkJR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsICZh bmNlc3Rvcl9wdWJvaWRzLAorCQkJCQkJCQkJJmFuY2VzdG9yX2V4Y2VwdHB1Ym9pZHMpOworCisJ CQlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLCBhbmNlc3Rvcl9wdWJv aWRzKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpOwogCQkJcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJCQkJCQkJIEdldFNj aGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0cHVib2lkcyA9IGxpc3RfY29u Y2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJCQkJCSAgIGFuY2VzdG9yX2V4 Y2VwdHB1Ym9pZHMpOwogCQl9CiAJfQotCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lk KHB1Ym9pZHMsIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpKTsKIAorCWFsbHRhYmxlc3B1Ym9p ZHMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKTsKKwlwdWJvaWRzID0gbGlzdF9jb25jYXRf dW5pcXVlX29pZChwdWJvaWRzLAorCQkJCQkJCQkJIGxpc3RfZGlmZmVyZW5jZV9vaWQoYWxsdGFi bGVzcHVib2lkcywKKwkJCQkJCQkJCQkJCQkJIGV4Y2VwdHB1Ym9pZHMpKTsKIAlmb3JlYWNoKGxj LCBwdWJvaWRzKQogCXsKIAkJT2lkCQkJcHViaWQgPSBsZmlyc3Rfb2lkKGxjKTsKQEAgLTU4ODMs NyArNTg5NCw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVsYXRpb24gcmVsYXRp b24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJaWYgKCFwdWJmb3JtLT5wdWJhbGx0YWJs ZXMgJiYKIAkJCShwdWJmb3JtLT5wdWJ1cGRhdGUgfHwgcHViZm9ybS0+cHViZGVsZXRlKSAmJgog CQkJcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKHB1YmlkLCByZWxhdGlvbiwgYW5jZXN0 b3JzLAotCQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3QpKQorCQkJCQkJCQkJCSAgIHB1 YmZvcm0tPnB1YnZpYXJvb3QsIHB1YmZvcm0tPnB1YmFsbHRhYmxlcykpCiAJCXsKIAkJCWlmIChw dWJmb3JtLT5wdWJ1cGRhdGUpCiAJCQkJcHViZGVzYy0+cmZfdmFsaWRfZm9yX3VwZGF0ZSA9IGZh bHNlOwpAQCAtNTg5OSw2ICs1OTEwLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhS ZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQkgKi8KIAkJaWYg KChwdWJmb3JtLT5wdWJ1cGRhdGUgfHwgcHViZm9ybS0+cHViZGVsZXRlKSAmJgogCQkJcHViX2Nv bnRhaW5zX2ludmFsaWRfY29sdW1uKHB1YmlkLCByZWxhdGlvbiwgYW5jZXN0b3JzLAorCQkJCQkJ CQkJCXB1YmZvcm0tPnB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQlwdWJmb3JtLT5wdWJ2aWFyb290 LAogCQkJCQkJCQkJCXB1YmZvcm0tPnB1YmdlbmNvbHMsCiAJCQkJCQkJCQkJJmludmFsaWRfY29s dW1uX2xpc3QsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCAyNDQ1MDg1ZGJiZC4uOTI5ZWEwYTlmODcgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwpAQCAtMTg2LDYgKzE4Niw4IEBAIHN0YXRpYyBTaW1wbGVPaWRMaXN0IGV4dGVuc2lv bl9pbmNsdWRlX29pZHMgPSB7TlVMTCwgTlVMTH07CiBzdGF0aWMgU2ltcGxlU3RyaW5nTGlzdCBl eHRlbnNpb25fZXhjbHVkZV9wYXR0ZXJucyA9IHtOVUxMLCBOVUxMfTsKIHN0YXRpYyBTaW1wbGVP aWRMaXN0IGV4dGVuc2lvbl9leGNsdWRlX29pZHMgPSB7TlVMTCwgTlVMTH07CiAKK3N0YXRpYyBT aW1wbGVQdHJMaXN0IGV4Y2VwdGluZm8gPSB7TlVMTCwgTlVMTH07CisKIHN0YXRpYyBjb25zdCBD YXRhbG9nSWQgbmlsQ2F0YWxvZ0lkID0gezAsIDB9OwogCiAvKiBvdmVycmlkZSBmb3Igc3RhbmRh cmQgZXh0cmFfZmxvYXRfZGlnaXRzIHNldHRpbmcgKi8KQEAgLTQ2NjIsNyArNDY2NCwzMyBAQCBk dW1wUHVibGljYXRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJp bmZvKQogCWlmIChwdWJpbmZvLT5wdWJhbGx0YWJsZXMgJiYgcHViaW5mby0+cHViYWxsc2VxdWVu Y2VzKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBGT1IgQUxMIFRBQkxFUywgQUxM IFNFUVVFTkNFUyIpOwogCWVsc2UgaWYgKHB1YmluZm8tPnB1YmFsbHRhYmxlcykKKwl7CisJCWJv b2wgZmlyc3RfdGJsID0gdHJ1ZTsKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9S IEFMTCBUQUJMRVMiKTsKKworCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0YWJsZXMgaWYgdGhlIHB1 YmxpY2F0aW9uIGhhcyBFWENFUFQgVEFCTEVzICovCisJCWZvciAoU2ltcGxlUHRyTGlzdENlbGwg KmNlbGwgPSBleGNlcHRpbmZvLmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCQl7CisJ CQlQdWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvID0gKFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBj ZWxsLT5wdHI7CisJCQlUYWJsZUluZm8gICp0YmluZm87CisKKwkJCWlmIChwdWJpbmZvID09IHB1 YnJpbmZvLT5wdWJsaWNhdGlvbikKKwkJCXsKKwkJCQl0YmluZm8gPSBwdWJyaW5mby0+cHVidGFi bGU7CisKKwkJCQlpZiAoZmlyc3RfdGJsKQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgRVhDRVBUIFRBQkxFICgiKTsKKwkJCQkJZmlyc3RfdGJsID0gZmFsc2U7CisJ CQkJfQorCQkJCWVsc2UKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsICIpOwor CQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiT05MWSAlcyIsIGZtdFF1YWxpZmllZER1bXBh YmxlKHRiaW5mbykpOworCQkJfQorCQl9CisJCWlmICghZmlyc3RfdGJsKQorCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocXVlcnksICIpIik7CisJfQogCWVsc2UgaWYgKHB1YmluZm8tPnB1YmFsbHNl cXVlbmNlcykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBTRVFVRU5D RVMiKTsKIApAQCAtNDgzMSw2ICs0ODU5LDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAlpbnQJCQlpX3By cmVsaWQ7CiAJaW50CQkJaV9wcnJlbHF1YWw7CiAJaW50CQkJaV9wcmF0dHJzOworCWludAkJCWlf cHJleGNlcHQ7CiAJaW50CQkJaSwKIAkJCQlqLAogCQkJCW50dXBzOwpAQCAtNDg0Miw4ICs0ODcx LDE2IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0Ymxp bmZvW10sIGludCBudW1UYWJsZXMpCiAKIAkvKiBDb2xsZWN0IGFsbCBwdWJsaWNhdGlvbiBtZW1i ZXJzaGlwIGluZm8uICovCiAJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTUwMDAwKQorCXsK KwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCisJCQkJCQkJICJTRUxFQ1QgdGFibGVvaWQs IG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9u ID49IDE5MDAwMCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIHByZXhjZXB0LFxu Iik7CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIGZhbHNlIEFTIHBy ZXhjZXB0LFxuIik7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJICJT RUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCwgIgogCQkJCQkJCSAicGdfY2F0 YWxvZy5wZ19nZXRfZXhwcihwcnF1YWwsIHBycmVsaWQpIEFTIHBycmVscXVhbCwgIgogCQkJCQkJ CSAiKENBU0VcbiIKIAkJCQkJCQkgIiAgV0hFTiBwci5wcmF0dHJzIElTIE5PVCBOVUxMIFRIRU5c biIKQEAgLTQ4NTQsNiArNDg5MSw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZv dXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQkJCQkJICIgICAgICBX SEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCiAJ CQkJCQkJICIgIEVMU0UgTlVMTCBFTkQpIHByYXR0cnMgIgogCQkJCQkJCSAiRlJPTSBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciIpOworCX0KIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBy cmVsaWQsICIKQEAgLTQ4NjksNiArNDkwNyw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hp dmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJaV9wcnJlbGlk ID0gUFFmbnVtYmVyKHJlcywgInBycmVsaWQiKTsKIAlpX3BycmVscXVhbCA9IFBRZm51bWJlcihy ZXMsICJwcnJlbHF1YWwiKTsKIAlpX3ByYXR0cnMgPSBQUWZudW1iZXIocmVzLCAicHJhdHRycyIp OworCWlfcHJleGNlcHQgPSBQUWZudW1iZXIocmVzLCAicHJleGNlcHQiKTsKIAogCS8qIHRoaXMg YWxsb2NhdGlvbiBtYXkgYmUgbW9yZSB0aGFuIHdlIG5lZWQgKi8KIAlwdWJyaW5mbyA9IHBnX21h bGxvYyhudHVwcyAqIHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKQEAgLTQ4ODAsNiArNDkx OSw3IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0Ymxp bmZvW10sIGludCBudW1UYWJsZXMpCiAJCU9pZAkJCXBycmVsaWQgPSBhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfcHJyZWxpZCkpOwogCQlQdWJsaWNhdGlvbkluZm8gKnB1YmluZm87CiAJCVRh YmxlSW5mbyAgKnRiaW5mbzsKKwkJYm9vbAkJcHJleGNlcHQgPSBzdHJjbXAoUFFnZXR2YWx1ZShy ZXMsIGksIGlfcHJleGNlcHQpLCAidCIpID09IDA7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBl bnRyaWVzIGZvciB3aGljaCB3ZSBhcmVuJ3QgaW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00 ODkzLDcgKzQ5MzMsMTEgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9L LCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9yIHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJp bmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHByZXhjZXB0 KQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JF TDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05f UkVMOworCiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQogCQkJYXRvb2lkKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQu b2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOwpAQCAtNDkzNCw2ICs0OTc4 LDkgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGlu Zm9bXSwgaW50IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1w IGl0ICovCiAJCXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJyaW5mb1tqXS5k b2JqKSwgZm91dCk7CiAKKwkJaWYgKHByZXhjZXB0KQorCQkJc2ltcGxlX3B0cl9saXN0X2FwcGVu ZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKKwogCQlqKys7CiAJfQogCkBAIC0xMTgxMiw2 ICsxMTg1OSw5IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9i amVjdCAqZG9iaikKIAkJY2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWR1bXBQdWJsaWNhdGlvbihm b3V0LCAoY29uc3QgUHVibGljYXRpb25JbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2Ug RE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVtcGVkIGluIGR1bXBQ dWJsaWNhdGlvbiAqLworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJ ZHVtcFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBk b2JqKTsKIAkJCWJyZWFrOwpAQCAtMjAxODIsNiArMjAyMzIsNyBAQCBhZGRCb3VuZGFyeURlcGVu ZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9f REVGQVVMVF9BQ0w6CiAJCQljYXNlIERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElDQVRJT046 CisJCQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FU SU9OX1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BOgogCQkJY2Fz ZSBET19TVUJTQ1JJUFRJT046CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA3MmEwMGUxYmMyMC4uNzIzYjU1NzVj NTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaApAQCAtODEsNiArODEsNyBAQCB0eXBlZGVmIGVudW0KIAlET19SRUZS RVNIX01BVFZJRVcsCiAJRE9fUE9MSUNZLAogCURPX1BVQkxJQ0FUSU9OLAorCURPX1BVQkxJQ0FU SU9OX0VYQ0VQVF9SRUwsCiAJRE9fUFVCTElDQVRJT05fUkVMLAogCURPX1BVQkxJQ0FUSU9OX1RB QkxFX0lOX1NDSEVNQSwKIAlET19SRUxfU1RBVFMsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXgg MTY0Yzc2ZTA4NjQuLjZlYmViOWM5NmExIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC05Miw2 ICs5Miw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9fRktfQ09OU1RSQUlO VCwKIAlQUklPX1BPTElDWSwKIAlQUklPX1BVQkxJQ0FUSU9OLAorCVBSSU9fUFVCTElDQVRJT05f RVhDRVBUX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1JFTCwKIAlQUklPX1BVQkxJQ0FUSU9OX1RB QkxFX0lOX1NDSEVNQSwKIAlQUklPX1NVQlNDUklQVElPTiwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBz dGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19SRUZSRVNIX01B VFZJRVddID0gUFJJT19SRUZSRVNIX01BVFZJRVcsCiAJW0RPX1BPTElDWV0gPSBQUklPX1BPTElD WSwKIAlbRE9fUFVCTElDQVRJT05dID0gUFJJT19QVUJMSUNBVElPTiwKKwlbRE9fUFVCTElDQVRJ T05fRVhDRVBUX1JFTF0gPSBQUklPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUwsCiAJW0RPX1BVQkxJ Q0FUSU9OX1JFTF0gPSBQUklPX1BVQkxJQ0FUSU9OX1JFTCwKIAlbRE9fUFVCTElDQVRJT05fVEFC TEVfSU5fU0NIRU1BXSA9IFBSSU9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BLAogCVtET19S RUxfU1RBVFNdID0gUFJJT19TVEFUSVNUSUNTX0RBVEFfREFUQSwKQEAgLTQzMiw3ICs0MzQsOCBA QCBET1R5cGVOYW1lQ29tcGFyZShjb25zdCB2b2lkICpwMSwgY29uc3Qgdm9pZCAqcDIpCiAJCWlm IChjbXB2YWwgIT0gMCkKIAkJCXJldHVybiBjbXB2YWw7CiAJfQotCWVsc2UgaWYgKG9iajEtPm9i alR5cGUgPT0gRE9fUFVCTElDQVRJT05fUkVMKQorCWVsc2UgaWYgKG9iajEtPm9ialR5cGUgPT0g RE9fUFVCTElDQVRJT05fUkVMIHx8CisJCQkgb2JqMS0+b2JqVHlwZSA9PSBET19QVUJMSUNBVElP Tl9FWENFUFRfUkVMKQogCXsKIAkJUHVibGljYXRpb25SZWxJbmZvICpwcm9iajEgPSAqKFB1Ymxp Y2F0aW9uUmVsSW5mbyAqY29uc3QgKikgcDE7CiAJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcHJvYmoy ID0gKihQdWJsaWNhdGlvblJlbEluZm8gKmNvbnN0ICopIHAyOwpAQCAtMTcxNSw2ICsxNzE4LDEx IEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVm LCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJQVUJMSUNBVElPTiAoSUQgJWQgT0lEICV1KSIsCiAJCQkJ CSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1BV QkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAi UFVCTElDQVRJT04gRVhDRVBUIFRBQkxFIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+ZHVt cElkLCBvYmotPmNhdElkLm9pZCk7CisJCQlyZXR1cm47CiAJCWNhc2UgRE9fUFVCTElDQVRJT05f UkVMOgogCQkJc25wcmludGYoYnVmLCBidWZzaXplLAogCQkJCQkgIlBVQkxJQ0FUSU9OIFRBQkxF IChJRCAlZCBPSUQgJXUpIiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggZTMzYWE5NWY2 ZmYuLjA5YjE2NDAzMGQ2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVt cC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzE3MCw2ICsz MTcwLDI2IEBAIG15ICV0ZXN0cyA9ICgKIAkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25f cG9zdF9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdDUkVBVEUgUFVCTElDQVRJT04gcHViOCcgPT4g eworCQljcmVhdGVfb3JkZXIgPT4gNTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBV QkxJQ0FUSU9OIHB1YjggRk9SIEFMTCBUQUJMRVMgRVhDRVBUIChkdW1wX3Rlc3QudGVzdF90YWJs ZSk7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjggRk9S IEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIGR1bXBfdGVzdC50ZXN0X3RhYmxlKSBXSVRI IChwdWJsaXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94 bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJ fSwKKworCSdDUkVBVEUgUFVCTElDQVRJT04gcHViOScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NTAsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjkgRk9SIEFM TCBUQUJMRVMgRVhDRVBUIFRBQkxFIChkdW1wX3Rlc3QudGVzdF90YWJsZSwgZHVtcF90ZXN0LnRl c3Rfc2Vjb25kX3RhYmxlKTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgUFVCTElD QVRJT04gcHViOSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKE9OTFkgZHVtcF90ZXN0LnRl c3RfdGFibGUsIE9OTFkgZHVtcF90ZXN0LnRlc3Rfc2Vjb25kX3RhYmxlKSBXSVRIIChwdWJsaXNo ID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJbGlr ZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKwogCSdD UkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQlj cmVhdGVfc3FsID0+ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEKQEAgLTUxNjMsNyArNTE4Myw3 IEBAIGZvcmVhY2ggbXkgJHJ1biAoc29ydCBrZXlzICVwZ2R1bXBfcnVucykKIAkJIwogCQkjIEVp dGhlciAiYWxsX3J1bnMiIHNob3VsZCBiZSBzZXQgb3IgdGhlcmUgc2hvdWxkIGJlIGEgImxpa2Ui IGxpc3QsCiAJCSMgZXZlbiBpZiBpdCBpcyBlbXB0eS4gIChUaGlzIG1ha2VzIHRoZSB0ZXN0IG1v cmUgc2VsZi1kb2N1bWVudGluZy4pCi0JCWlmICghZGVmaW5lZCgkdGVzdHN7JHRlc3R9LT57YWxs X3J1bnN9KQorCQlpZiAoICAgIWRlZmluZWQoJHRlc3RzeyR0ZXN0fS0+e2FsbF9ydW5zfSkKIAkJ CSYmICFkZWZpbmVkKCR0ZXN0c3skdGVzdH0tPntsaWtlfSkpCiAJCXsKIAkJCWRpZSAibWlzc2lu ZyBcImxpa2VcIiBpbiB0ZXN0IFwiJHRlc3RcIiI7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDM2ZjI0NTAyODQyLi41 MGIxZDQzNTM1OSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTMwNzMsMTcgKzMwNzMsMzQgQEAgZGVzY3JpYmVPbmVU YWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkJICAiICAgICAgICAg IFdIRVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRyc1tzXSlcbiIK IAkJCQkJCQkJICAiICAgICAgICBFTFNFIE5VTEwgRU5EKSAiCiAJCQkJCQkJCSAgIkZST00gcGdf Y2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKLQkJCQkJ CQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVs aWRcbiIKLQkJCQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIKKwkJCQkJCQkJICAi CQlKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJw dWJpZFxuIgorCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lk ID0gcHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIiwK KwkJCQkJCQkJICBvaWQsIG9pZCwgb2lkKTsKKworCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5 MDAwMCkKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiBBTkQgTk9UIHByLnByZXhj ZXB0XG4iKTsKKworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJCSAgIlVOSU9O XG4iCiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCi0JCQkJCQkJCSAgIiAgICAgLCBOVUxM XG4iCi0JCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCisJ CQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJs aWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRh bG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCi0JCQkJCQkJCSAgIk9SREVS IEJZIDE7IiwKLQkJCQkJCQkJICBvaWQsIG9pZCwgb2lkLCBvaWQpOworCQkJCQkJCQkgICJXSEVS RSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJs ZSgnJXMnKVxuIiwKKwkJCQkJCQkJICBvaWQpOworCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0g MTkwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkJICAiICAgICBB TkQgTk9UIEVYSVNUUyAoXG4iCisJCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCisJCQkJCQkJCQkg ICIJCUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKKwkJCQkJCQkJCSAg IgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCisJCQkJCQkJCQkgICIJCU9OIHByLnBy cmVsaWQgPSBwYy5vaWRcbiIKKwkJCQkJCQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9ICclcycg QU5EIHByLnBycHViaWQgPSBwLm9pZClcbiIsCisJCQkJCQkJCQkgIG9pZCk7CisKKwkJCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKIAkJCX0KIAkJCWVsc2UKIAkJ CXsKQEAgLTY3NTMsOCArNjc3MCwxMiBAQCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFy ICpwYXR0ZXJuKQogCQkJCQkJCSAgIiAgICAgcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwg cHJcbiIKIAkJCQkJCQkgICJXSEVSRSBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkXG4iCiAJCQkJCQkJ ICAiICBBTkQgYy5vaWQgPSBwci5wcnJlbGlkXG4iCi0JCQkJCQkJICAiICBBTkQgcHIucHJwdWJp ZCA9ICclcydcbiIKLQkJCQkJCQkgICJPUkRFUiBCWSAxLDIiLCBwdWJpZCk7CisJCQkJCQkJICAi ICBBTkQgcHIucHJwdWJpZCA9ICclcydcbiIsIHB1YmlkKTsKKworCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTkwMDAwKQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBOT1QgcHIu cHJleGNlcHRcbiIpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwy Iik7CiAJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlczoi KSwgZmFsc2UsICZjb250KSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsKIApAQCAtNjc3Miw2ICs2 NzkzLDIzIEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJ CWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CisJCWVsc2UKKwkJeworCQkJaWYgKHBzZXQu c3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJeworCQkJCS8qIEdldCB0aGUgZXhjbHVkZWQgdGFibGVz IGZvciB0aGUgc3BlY2lmaWVkIHB1YmxpY2F0aW9uICovCisJCQkJcHJpbnRmUFFFeHBCdWZmZXIo JmJ1ZiwKKwkJCQkJCQkJICAiU0VMRUNUIGNvbmNhdChjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNw YWNlLCAnLicsIGMucmVsbmFtZSlcbiIKKwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2Ns YXNzIGNcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25f cmVsIHByIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1 YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkgICIgIEFORCBwci5wcmV4Y2VwdFxuIgorCQkJCQkJCQkg ICJPUkRFUiBCWSAxIiwgcHViaWQpOworCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRl c2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKKwkJCQkJCQkJCQkJCXRydWUsICZjb250KSkK KwkJCQkJZ290byBlcnJvcl9yZXR1cm47CisJCQl9CisJCX0KIAogCQlwcmludFRhYmxlKCZjb250 LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CiAJCXByaW50VGFibGVDbGVh bnVwKCZjb250KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBi L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCAyMGQ3YTY1YzYxNC4uNDVlN2E5 Y2JmZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTM2MjMsNyArMzYyMywxNyBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVB VEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiKSkKIAkJQ09NUExFVEVf V0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiKSkKLQkJQ09N UExFVEVfV0lUSCgiV0lUSCAoIik7CisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSAoIiwg IldJVEggKCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJ VEgoIlRBQkxFICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04i LCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKQor CQlDT01QTEVURV9XSVRIKCIoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAiVEFC TEUiLCAiKCIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9v Zl90YWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIiwgIigiLCBN YXRjaEFueU4pICYmIGVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQorCQlDT01QTEVURV9XSVRIX1ND SEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMo IkNSRUFURSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMi LCAiRVhDRVBUIiwgIlRBQkxFIiwgIigiLCBNYXRjaEFueU4pICYmICFlbmRzX3dpdGgocHJldl93 ZCwgJywnKSkKKwkJQ09NUExFVEVfV0lUSCgiKSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVU RV9XSVRIKCJJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRo KHByZXZfd2QsICcsJykpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1Ymxp Y2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggMjJm NDhiYjg5NzUuLmMzYTVlMjc4YTAzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5o CkBAIC0xNDYsMTEgKzE0NiwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblJlbEluZm8K IAlSZWxhdGlvbglyZWxhdGlvbjsKIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsKIAlMaXN0CSAgICpj b2x1bW5zOworCWJvb2wJCWV4Y2VwdDsKIH0gUHVibGljYXRpb25SZWxJbmZvOwogCiBleHRlcm4g UHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRp b24gKkdldFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2lu Z19vayk7Ci1leHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsK K2V4dGVybiBib29sIEdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgTGlzdCAqKnB1 YmlkcywgTGlzdCAqKmV4Y2VwdF9wdWJpZHMpOwogCiAvKi0tLS0tLS0tLQogICogRXhwZWN0ZWQg dmFsdWVzIGZvciBwdWJfcGFydG9wdCBwYXJhbWV0ZXIgb2YgR2V0UHVibGljYXRpb25SZWxhdGlv bnMoKSwKQEAgLTE3MCw3ICsxNzEsNyBAQCB0eXBlZGVmIGVudW0gUHVibGljYXRpb25QYXJ0T3B0 CiAKIGV4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1Ymxp Y2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVi bGljYXRpb25zKHZvaWQpOwotZXh0ZXJuIExpc3QgKkdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25z KGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KTsKK2V4dGVybiBMaXN0ICpHZXRBbGxQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290 KTsKIGV4dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblNjaGVtYXMoT2lkIHB1YmlkKTsKIGV4dGVy biBMaXN0ICpHZXRTY2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVtYWlkKTsKIGV4dGVybiBMaXN0 ICpHZXRTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsCkBAIC0xODEsNyAr MTgyLDcgQEAgZXh0ZXJuIExpc3QgKkdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0 ICpyZXN1bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAkJ CQkJCQkJCQkJT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJs aWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJCQkJCWludCAqYW5j ZXN0b3JfbGV2ZWwpOworCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29sIHB1YmFs bHRhYmxlcyk7CiAKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9u IHJlbCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCmluZGV4IDkyY2MzNmRmZGY2Li5l N2Q3ZjNiYTg1YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlv bl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCkBA IC0zMSw2ICszMSw3IEBAIENBVEFMT0cocGdfcHVibGljYXRpb25fcmVsLDYxMDYsUHVibGljYXRp b25SZWxSZWxhdGlvbklkKQogCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KIAlPaWQJCQlwcnB1Ymlk IEJLSV9MT09LVVAocGdfcHVibGljYXRpb24pOyAvKiBPaWQgb2YgdGhlIHB1YmxpY2F0aW9uICov CiAJT2lkCQkJcHJyZWxpZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsJLyogT2lkIG9mIHRoZSByZWxh dGlvbiAqLworCWJvb2wJCXByZXhjZXB0IEJLSV9ERUZBVUxUKGYpOwkvKiBleGNsdWRlIHRoZSBy ZWxhdGlvbiAqLwogCiAjaWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGgg ZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJxdWFsOwkJLyogcXVhbGlmaWNh dGlvbnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21k cy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgKaW5kZXggZjkwY2Yx ZWY4OTYuLjRhMTcwOTk0Zjc2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJs aWNhdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMu aApAQCAtMzIsMTAgKzMyLDExIEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyUHVibGljYXRp b25Pd25lcihjb25zdCBjaGFyICpuYW1lLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBB bHRlclB1YmxpY2F0aW9uT3duZXJfb2lkKE9pZCBwdWJpZCwgT2lkIG5ld093bmVySWQpOwogZXh0 ZXJuIHZvaWQgSW52YWxpZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpOwogZXh0ZXJu IGJvb2wgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24g cmVsYXRpb24sCi0JCQkJCQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3Qp OworCQkJCQkJCQkJCSAgIExpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290LAorCQkJCQkJ CQkJCSAgIGJvb2wgcHViYWxsdGFibGVzKTsKIGV4dGVybiBib29sIHB1Yl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCUxpc3Qg KmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290LAotCQkJCQkJCQkJCWNoYXIgcHViZ2VuY29sc190 eXBlLAorCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJhbGx0YWJsZXMsCisJCQkJ CQkJCQkJYm9vbCBwdWJ2aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKIAkJCQkJCQkJCQli b29sICppbnZhbGlkX2NvbHVtbl9saXN0LAogCQkJCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2Nv bCk7CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHViUmVsU3luY0NhY2hlKE9pZCBwdWJpZCwgYm9v bCBwdWJhbGx0YWJsZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQxNDI5NGE0ZWNlLi5h MTRlY2VkYjI3ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI3MSw2ICs0MjcxLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJ LyogcmVsYXRpb24gdG8gYmUgcHVibGlzaGVkICovCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8q IHF1YWxpZmljYXRpb25zICovCiAJTGlzdAkgICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1u cyBpbiBhIHB1YmxpY2F0aW9uIHRhYmxlICovCisJYm9vbAkJZXhjZXB0OwkJCS8qIGV4Y2x1ZGUg dGhlIHJlbGF0aW9uICovCiB9IFB1YmxpY2F0aW9uVGFibGU7CiAKIC8qCkBAIC00Mjc5LDYgKzQy ODAsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRhYmxlCiB0eXBlZGVmIGVudW0gUHVi bGljYXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFLAkJLyogQSB0YWJs ZSAqLworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSwJLyogQSB0YWJsZSB0byBiZSBleGNs dWRlZCAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEsCS8qIEFsbCB0YWJsZXMg aW4gc2NoZW1hICovCiAJUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUEsCS8qIEFs bCB0YWJsZXMgaW4gZmlyc3QgZWxlbWVudCBvZgogCQkJCQkJCQkJCQkgKiBzZWFyY2hfcGF0aCAq LwpAQCAtNDMwNyw2ICs0MzA5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25BbGxPYmpT cGVjCiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlQdWJsaWNhdGlvbkFsbE9ialR5cGUgcHVib2JqdHlw ZTsJLyogdHlwZSBvZiB0aGlzIHB1YmxpY2F0aW9uIG9iamVjdCAqLworCUxpc3QJICAgKmV4Y2Vw dF9vYmplY3RzOyAvKiBMaXN0IG9mIHB1YmxpY2F0aW9uIG9iamVjdCB0byBiZSBleGNsdWRlZCAq LwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25v d24gKi8KIH0gUHVibGljYXRpb25BbGxPYmpTcGVjOwogCkBAIC00MzI2LDYgKzQzMjksNyBAQCB0 eXBlZGVmIGVudW0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbgogCUFQX0FkZE9iamVjdHMsCQkJCS8q IGFkZCBvYmplY3RzIHRvIHB1YmxpY2F0aW9uICovCiAJQVBfRHJvcE9iamVjdHMsCQkJCS8qIHJl bW92ZSBvYmplY3RzIGZyb20gcHVibGljYXRpb24gKi8KIAlBUF9TZXRPYmplY3RzLAkJCQkvKiBz ZXQgbGlzdCBvZiBvYmplY3RzICovCisJQVBfUmVzZXQsCQkJCQkvKiByZXNldCB0aGUgcHVibGlj YXRpb24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlvbkFjdGlvbjsKIAogdHlwZWRlZiBzdHJ1Y3QgQWx0 ZXJQdWJsaWNhdGlvblN0bXQKQEAgLTQzNDEsNiArNDM0NSw3IEBAIHR5cGVkZWYgc3RydWN0IEFs dGVyUHVibGljYXRpb25TdG10CiAJICogb2JqZWN0cy4KIAkgKi8KIAlMaXN0CSAgICpwdWJvYmpl Y3RzOwkJLyogT3B0aW9uYWwgbGlzdCBvZiBwdWJsaWNhdGlvbiBvYmplY3RzICovCisJYm9vbAkJ Zm9yX2FsbF90YWJsZXM7IC8qIFNwZWNpYWwgcHVibGljYXRpb24gZm9yIGFsbCB0YWJsZXMgaW4g ZGIgKi8KIAlBbHRlclB1YmxpY2F0aW9uQWN0aW9uIGFjdGlvbjsJLyogV2hhdCBhY3Rpb24gdG8g cGVyZm9ybSB3aXRoIHRoZSBnaXZlbgogCQkJCQkJCQkJICogb2JqZWN0cyAqLwogfSBBbHRlclB1 YmxpY2F0aW9uU3RtdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVi bGljYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQK aW5kZXggZTcyZDEzMDg5NjcuLmVmNDY5Yzc2MWQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMjEzLDEzICsyMTMsNDAgQEAgTm90LW51bGwgY29uc3Ry YWludHM6CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKICgxIHJvdykKIAorU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJS T1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxl IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodGVzdHB1Yl90YmwxLCB0ZXN0cHViX3RibDIp OworLS0gc3BlY2lmeSBFWENFUFQgd2l0aG91dCBUQUJMRQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgKHRl c3RwdWJfdGJsMSk7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworXGRScCsgdGVzdHB1Yl9m b3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1u cyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAg ICAicHVibGljLnRlc3RwdWJfdGJsMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMiIKKworXGRS cCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4 Y2VwdHRhYmxlMQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwg c2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2Vu ZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2Vw dCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisKIERST1AgVEFCTEUgdGVzdHB1 Yl90YmwyOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9m b3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWE7CitEUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0 cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJs ZXNfZXhjZXB0dGFibGUsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMTsKIENSRUFU RSBUQUJMRSB0ZXN0cHViX3RibDMgKGEgaW50KTsKIENSRUFURSBUQUJMRSB0ZXN0cHViX3RibDNh IChiIHRleHQpIElOSEVSSVRTICh0ZXN0cHViX3RibDMpOwogU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIzIEZPUiBUQUJMRSB0ZXN0 cHViX3RibDM7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjQgRk9SIFRBQkxFIE9OTFkgdGVz dHB1Yl90YmwzOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI1IEZPUiBBTEwgVEFCTEVTIEVY Q0VQVCBUQUJMRSAodGVzdHB1Yl90YmwzKTsKKy0tIEVYQ0VQVCB3aXRoIHdpbGRjYXJkOiBleGNs dWRlIHRhYmxlIGFuZCBhbGwgZGVzY2VuZGFudHMKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi NiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJfdGJsMyopOworLS0gRVhDRVBU IHdpdGggT05MWTogZXhjbHVkZSB0YWJsZSBidXQgbm90IGRlc2NlbmRhbnRzCitDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1YjcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIHRlc3Rw dWJfdGJsMyk7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWIzCkBAIC0yMzgsOCArMjY1LDM0IEBAIFRhYmxlczoKIFRhYmxlczoKICAg ICAicHVibGljLnRlc3RwdWJfdGJsMyIKIAorXGRScCsgdGVzdHB1YjUKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWI1CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5j ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQg Y29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9u X3VzZXIgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxl czoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsM2Ei CisKK1xkUnArIHRlc3RwdWI2CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNgorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBu b25lICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHVi X3RibDMiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDNhIgorCitcZFJwKyB0ZXN0cHViNworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1YjcKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwg QWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8 IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf cHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitF eGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgorCiBEUk9QIFRBQkxFIHRl c3RwdWJfdGJsMywgdGVzdHB1Yl90YmwzYTsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRl c3RwdWI0OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQsIHRlc3RwdWI1LCB0 ZXN0cHViNiwgdGVzdHB1Yjc7CiAtLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVF TkNFUwogQ1JFQVRFIFNFUVVFTkNFIHJlZ3Jlc3NfcHViX3NlcTA7CiBDUkVBVEUgU0VRVUVOQ0Ug cHViX3Rlc3QucmVncmVzc19wdWJfc2VxMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bAppbmRleCAwMDM5MGFlY2Q0Ny4uNjUxYjNiMTIwMzAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJs aWNhdGlvbi5zcWwKQEAgLTEwNSwyMCArMTA1LDM3IEBAIFNFTEVDVCBwdWJuYW1lLCBwdWJhbGx0 YWJsZXMgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZm9yYWxs CiBcZCsgdGVzdHB1Yl90YmwyCiBcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcwogCitTRVQgY2xp ZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9m b3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0ZXN0 cHViX3RibDEsIHRlc3RwdWJfdGJsMik7CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRBQkxF CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZP UiBBTEwgVEFCTEVTIEVYQ0VQVCAodGVzdHB1Yl90YmwxKTsKK1JFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCitcZFJwKyB0 ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3Ri bDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRh YmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYTsKK0RST1AgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJf Zm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19l eGNlcHR0YWJsZSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxOwogCiBDUkVBVEUg VEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAo YiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2Vz ID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1 Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3Rw dWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENF UFQgVEFCTEUgKHRlc3RwdWJfdGJsMyk7CistLSBFWENFUFQgd2l0aCB3aWxkY2FyZDogZXhjbHVk ZSB0YWJsZSBhbmQgYWxsIGRlc2NlbmRhbnRzCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjYg Rk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0ZXN0cHViX3RibDMqKTsKKy0tIEVYQ0VQVCB3 aXRoIE9OTFk6IGV4Y2x1ZGUgdGFibGUgYnV0IG5vdCBkZXNjZW5kYW50cworQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWI3IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoT05MWSB0ZXN0cHVi X3RibDMpOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnArIHRlc3RwdWIzCiBcZFJw KyB0ZXN0cHViNAorXGRScCsgdGVzdHB1YjUKK1xkUnArIHRlc3RwdWI2CitcZFJwKyB0ZXN0cHVi NwogCiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMywgdGVzdHB1Yl90YmwzYTsKLURST1AgUFVCTElD QVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVz dHB1YjQsIHRlc3RwdWI1LCB0ZXN0cHViNiwgdGVzdHB1Yjc7CiAKIC0tLSBUZXN0cyBmb3IgcHVi bGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCiBDUkVBVEUgU0VRVUVOQ0UgcmVncmVzc19wdWJfc2Vx MDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZCBiL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZAppbmRleCA4NWQxMGE4OTk5NC4uYjhlNWM1NGMz MTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZAorKysgYi9z cmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKQEAgLTQ2LDYgKzQ2LDcgQEAgdGVzdHMg Kz0gewogICAgICAgJ3QvMDM0X3RlbXBvcmFsLnBsJywKICAgICAgICd0LzAzNV9jb25mbGljdHMu cGwnLAogICAgICAgJ3QvMDM2X3NlcXVlbmNlcy5wbCcsCisgICAgICAndC8wMzdfcmVwX2NoYW5n ZXNfZXhjZXB0X3RhYmxlLnBsJywKICAgICAgICd0LzEwMF9idWdzLnBsJywKICAgICBdLAogICB9 LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4 Y2VwdF90YWJsZS5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBfY2hhbmdlc19l eGNlcHRfdGFibGUucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA5 MTc0YjdkNWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3 X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApAQCAtMCwwICsxLDIxNSBAQAorCisjIENvcHly aWdodCAoYykgMjAyMS0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor CisjIExvZ2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIEVYQ0VQVCBUQUJMRSBwdWJsaWNhdGlv bnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6Q2x1 c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3VzZSBUZXN0OjpNb3JlOworCisj IEluaXRpYWxpemUgcHVibGlzaGVyIG5vZGUKK215ICRub2RlX3B1Ymxpc2hlciA9IFBvc3RncmVT UUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWJsaXNoZXItPmlu aXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlzaGVyLT5zdGFy dDsKKworIyBJbml0aWFsaXplIHN1YnNjcmliZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vi c2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zdGFydDsKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorIyBFWENFUFQgVEFCTEUgdGVzdCBjYXNlcyBmb3Igbm9ybWFsIHRhYmxlcworIyA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBDcmVhdGUgc2No ZW1hcyBhbmQgdGFibGVzIG9uIHB1Ymxpc2hlcgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo CisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBUQUJMRSBz Y2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEwKSBBUyBhOworKSk7CisKKyMg Q3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNS RUFURSBUQUJMRSBzY2gxLnRhYjEgKGEgaW50KTsKKykpOworCisjIFNldHVwIGxvZ2ljYWwgcmVw bGljYXRpb24KK215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+Y29ubnN0 ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBGT1IgQUxMIFRBQkxF UyBFWENFUFQgVEFCTEUgKHNjaDEudGFiMSkiCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSBD T05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1h IgorKTsKKworIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCiskbm9kZV9z dWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsCisJ J3RhcF9zdWJfc2NoZW1hJyk7CisKKyMgQ2hlY2sgdGhlIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3lu YyBmb3IgZXhjbHVkZWQgdGFibGUKK215ICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9N IHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwKKwknY2hlY2sgdGhlcmUgaXMgbm8g aW5pdGlhbCBkYXRhIGNvcGllZCBmb3IgdGhlIGV4Y2x1ZGVkIHRhYmxlJyk7CisKKyMgVmVyaWZ5 IHRoYXQgZGF0YSBpbnNlcnRlZCB0byB0aGUgZXhjbHVkZWQgdGFibGUgaXMgbm90IHJlcGxpY2F0 ZWQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5U TyBzY2gxLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygxMSwyMCkpIik7CisKKyRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9zY2hlbWEnKTsKKworJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQo KiksIG1pbihhKSwgbWF4KGEpIEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwp LCAnY2hlY2sgcmVwbGljYXRlZCBpbnNlcnRzIG9uIHN1YnNjcmliZXInKTsKKworIyBjbGVhbnVw Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElP TiB0YXBfcHViX3NjaGVtYSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSIpOworCisjID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIEVYQ0VQVCBUQUJMRSB0ZXN0IGNh c2VzIGZvciBwYXJ0aXRpb24gdGFibGVzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisjIENoZWNrIGJlaGF2aW9yIG9mIEVYQ0VQVCBUQUJMRSB0b2dldGhl ciB3aXRoIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290CisjIHdoZW4gYXBwbGllZCB0byBhIHBh cnRpdGlvbmVkIHRhYmxlIGFuZCBpdHMgcGFydGl0aW9ucy4KKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBUQUJMRSBzY2gxLnQxKGEgaW50KSBQ QVJUSVRJT04gQlkgUkFOR0UoYSk7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFydDEgUEFSVElUSU9O IE9GIHNjaDEudDEgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoNSk7CisJQ1JFQVRFIFRBQkxFIHNj aDEucGFydDIgUEFSVElUSU9OIE9GIHNjaDEudDEgRk9SIFZBTFVFUyBGUk9NICg2KSBUTyAoMTAp OworCUlOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgxKSwgKDYpOworKSk7CisKKyRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgVEFCTEUgc2No MS50MShhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFydDEoYSBpbnQpOworCUNSRUFURSBU QUJMRSBzY2gxLnBhcnQyKGEgaW50KTsKKykpOworCisjIEVYQ0VQVCBUQUJMRSAoc2NoMS5wYXJ0 MSkgd2l0aCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlCisjIEV4Y2x1ZGluZyBh IHBhcnRpdGlvbiB3aGlsZSBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlIHByZXZl bnRzCisjIHJlcGxpY2F0aW9uIG9mIHJvd3MgaW5zZXJ0ZWQgaW50byB0aGUgcGFydGl0aW9uZWQg dGFibGUuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg UFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoc2No MS5wYXJ0MSkiCispOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IgorKTsKKyRub2RlX3N1YnNjcmliZXIt PndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfcGFy dCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElO VE8gc2NoMS50MSBWQUxVRVMgKDIpLCAoNyk7Iik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudDEiKTsKK2lzKCRyZXN1 bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbmVkIHRhYmxlJyk7CisKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00g c2NoMS5wYXJ0MSIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24gZXhjbHVkZWQg cGFydGl0aW9uJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS5wYXJ0MiIpOworaXMoICRyZXN1bHQsIHFxKDYK KzcpLCAnY2hlY2sgcm93cyBvbiBvdGhlciBwYXJ0aXRpb24nKTsKKworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlRSVU5DQVRFIHNjaDEudDEiKTsKKyRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCIp OworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJ T04gdGFwX3B1Yl9wYXJ0OyIpOworCisjIEVYQ0VQVCBUQUJMRSAoc2NoMS50MSkgd2l0aCBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZhbHNlCisjIEV4Y2x1ZGluZyB0aGUgcGFydGl0aW9u ZWQgdGFibGUgd2hpbGUgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBmYWxzZQorIyBzdGls bCBhbGxvd3Mgcm93cyBpbnNlcnRlZCBpbnRvIGl0cyBwYXJ0aXRpb25zIHRvIGJlIHJlcGxpY2F0 ZWQuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVB VEUgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAo c2NoMS50MSk7CisJSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDEpLCAoNik7CispKTsKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBU SU9OIHRhcF9zdWJfcGFydCBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FU SU9OIHRhcF9wdWJfcGFydCIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3Jp cHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVT ICgyKSwgKDcpOyIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3Vi X3BhcnQnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sg cm93cyBvbiBwYXJ0aXRpb25lZCB0YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lz KCAkcmVzdWx0LCBxcSgxCisyKSwgJ2NoZWNrIHJvd3Mgb24gZmlyc3QgcGFydGl0aW9uJyk7CisK KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVD VCAqIEZST00gc2NoMS5wYXJ0MiIpOworaXMoICRyZXN1bHQsIHFxKDYKKzcpLCAnY2hlY2sgcm93 cyBvbiBzZWNvbmQgcGFydGl0aW9uJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJUUlVOQ0FURSBzY2gxLnQxIik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiB0YXBfc3ViX3BhcnQiKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFy dDsiKTsKKworIyBFWENFUFQgVEFCTEUgKHNjaDEudDEpIHdpdGggcHVibGlzaF92aWFfcGFydGl0 aW9uX3Jvb3QgPSB0cnVlCisjIFdoZW4gdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGlzIGV4Y2x1ZGVk IGFuZCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBpcyB0cnVlLAorIyBubyByb3dzIGZyb20g dGhlIHRhYmxlIG9yIGl0cyBwYXJ0aXRpb25zIGFyZSByZXBsaWNhdGVkLgorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRh cF9wdWJfcGFydCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHNjaDEudDEpIFdJVEggKHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwlJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAo MSksICg2KTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IgorKTsKKyRub2RlX3N1YnNjcmliZXIt PndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfcGFy dCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElO VE8gc2NoMS50MSBWQUxVRVMgKDIpLCAoNyk7Iik7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudDEiKTsKK2lzKCRyZXN1 bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRpdGlvbmVkIHRhYmxlJyk7CisKKyRyZXN1bHQg PSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00g c2NoMS5wYXJ0MSIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24gZmlyc3QgcGFy dGl0aW9uJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS5wYXJ0MiIpOworaXMoJHJlc3VsdCwgcXEoKSwgJ2No ZWNrIHJvd3Mgb24gc2Vjb25kIHBhcnRpdGlvbicpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiVFJVTkNBVEUgc2NoMS50MSIpOworJG5vZGVfcHVibGlzaGVyLT53 YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0Iik7Ciskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiB0YXBf cHViX3BhcnQ7Iik7CisKKyMgRVhDRVBUIFRBQkxFIChzY2gxLnBhcnQxKSB3aXRoIHB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZQorIyBXaGVuIGEgcGFydGl0aW9uIGlzIGV4Y2x1ZGVk IGJ1dCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBpcyB0cnVlLAorIyByb3dzIHB1Ymxpc2hl ZCB0aHJvdWdoIHRoZSBwYXJ0aXRpb25lZCB0YWJsZSBjYW4gc3RpbGwgYmUgcmVwbGljYXRlZC4K KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBQ VUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChzY2gx LnBhcnQxKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJSU5TRVJUIElOVE8g c2NoMS50MSBWQUxVRVMgKDEpLCAoNikKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0IENPTk5FQ1RJ T04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IgorKTsKKyRu b2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hl ciwgJ3RhcF9zdWJfcGFydCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDIpLCAoNyk7Iik7Ciskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCiskcmVzdWx0ID0KKyAg JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNj aDEudDEgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQsIHFxKDEKKzIKKzYKKzcpLCAnY2hlY2sg cm93cyBvbiBwYXJ0aXRpb25lZCB0YWJsZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lz KCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIGV4Y2x1ZGVkIHBhcnRpdGlvbicpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg KiBGUk9NIHNjaDEucGFydDIiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIG90 aGVyIHBhcnRpdGlvbicpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zdG9wKCdmYXN0Jyk7Ciskbm9k ZV9wdWJsaXNoZXItPnN0b3AoJ2Zhc3QnKTsKKworZG9uZV90ZXN0aW5nKCk7Ci0tIAoyLjM0LjEK Cg== --0000000000006ff29b0645888032--