Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uMQ40-00BCyf-Ec for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Jun 2025 11:44:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uMQ3z-002Zrl-3y for pgsql-hackers@arkaria.postgresql.org; Tue, 03 Jun 2025 11:44:15 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uMQ3x-002ZrW-Ta for pgsql-hackers@lists.postgresql.org; Tue, 03 Jun 2025 11:44:14 +0000 Received: from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uMQ3i-000G3c-20 for pgsql-hackers@lists.postgresql.org; Tue, 03 Jun 2025 11:44:12 +0000 Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-70e5599b795so53237877b3.3 for ; Tue, 03 Jun 2025 04:43:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1748951038; x=1749555838; 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=Pw/xVYaOkKKnwuo0KzCRGO1KA6TXSXGUydzGgZafU9M=; b=YrJUE2wcG2JC8hv+0OVMElGLlf2swmf1ddl7mJ2s9TBMnRC1x0gIl4xcPL3QAxtfgz JxwYsNt4htrRAOylUYWAGBuUmoWyfRN7SAavIXVteCwRD42dV+WNGc1Io3l4GCZ9Whjn PY++eZeyWnzQfEQ5kmaCptvLamZNaJzfg60sQRZQuZbbmqB5VyxAd1E9C8qVwORwvH0m FnWqNJBTs1VL64ZDelyiuOBZOduvl6m3pruEYQtddTasP6acVHB+fevH89dNjg3UEZWU +/9tMegErzmeuVtSx26/nd0A2m1dbknYz2BOlEWyLeTerEq5Y0L0aB98FFEn5y8N66/J PWRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1748951038; x=1749555838; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Pw/xVYaOkKKnwuo0KzCRGO1KA6TXSXGUydzGgZafU9M=; b=oYoTgR1hUb13BDnkCT7XQamOKV6OJW8m/jmeDypn9Q5+kz7OOYrhQzYccBqfXTLgq+ XJpEbIkaSy7DzMkNFEtZYH4ownAeKaOjcQ2X0vr8wq2LOUj70x4UJMwcyh7W6sA1LnoS FGu9Mx6+VOiWp2Bjwx5O2eD6Wyl7vLaXmR+v5js3+pimKoSDFjjxCVJXuxmySa8Y0LiP 8i1VyQKjXWVDWtszitXL0eMrU+mOd4gnf3D9kQS9sNo8e7kzEy6UPrdBXCMMHw8Vj/CE Yj/mh7Dw49Qmkwl5mPKtAYGh6Altv2bqdhKC3DiTH24Iq1869RMU6XvrQP6dCq4JLZjQ xXjQ== X-Forwarded-Encrypted: i=1; AJvYcCWzNmk0nYlMbUL+lssfhskiNqKs/0XVZXzXJeY/sO9a9R72Uc0zYeVDGT+cRK8XbiQSmuhqxWE1EnaEjipG@lists.postgresql.org X-Gm-Message-State: AOJu0YxBa9yMQP8H6nUNls6OBzPR7XMo4VpOU+GhOM5Teyg5IutsFeUK pBj+VvUDooRgSUcNaB6bzXk6KPQ1snPPG86YtDT/FdvaylkV4E1wHVwar8E+KXBZy4R2LykvyoT xIwa2ZcquSQtHtoOK0me3loEvWTk5AVc= X-Gm-Gg: ASbGncvxwm0YqukMj+ACCu5zqg2rPRUo9WsCgcZYGz1e4MV1ENc6RrUPKFZzAJuivzN kHfiyBkMAsiXRK8DRSAKk8xnU8FGNx+BAIJOK1zghu4hrh5K7JwCif5obbvDT7hV/P00xPpvhPx fW0l1sRmvgIYdpZy526PSMahxUXT44mSd8AL1ZRYysC9ImKujfUHFz57nTGksDJYf0n/ztuVRzH 1Ao X-Google-Smtp-Source: AGHT+IFhoZIrEF0nIZmXtOnzs+jTLvMkQIA30hTjAmmRCigYEWHe+jGQbx17GYw9T77UBoH+DvpDDuXVtw2Y6HXqXTo= X-Received: by 2002:a05:690c:f0c:b0:70e:142d:9c59 with SMTP id 00721157ae682-70f97fc626cmr231985557b3.28.1748951038304; Tue, 03 Jun 2025 04:43:58 -0700 (PDT) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> In-Reply-To: From: Pavel Stehule Date: Tue, 3 Jun 2025 13:43:21 +0200 X-Gm-Features: AX0GCFs35dXeeJT-l2DK_dMgY_6T8n6DRNFAfkYFhL8fAy3RKPeSAcRIVQG9Jcs Message-ID: Subject: Re: proposal: schema variables To: Bruce Momjian Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers , jian he , Alvaro Herrera , PegoraroF10 Content-Type: multipart/mixed; boundary="0000000000005eda480636a965c6" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005eda480636a965c6 Content-Type: multipart/alternative; boundary="0000000000005eda460636a965c4" --0000000000005eda460636a965c4 Content-Type: text/plain; charset="UTF-8" Hi fix badly named role - needs prefix regress_ CREATE ROLE svartest_dml_read_role; +WARNING: roles created by regression test cases should have names starting with "regress_" CREATE OR REPLACE FUNCTION svartest_dml.func_secdef() RETURNS int AS $$ --0000000000005eda460636a965c4 Content-Type: text/html; charset="UTF-8"
Hi

fix badly named role - needs prefix regress_

CREATE ROLE svartest_dml_read_role;
+WARNING:  roles created by regression test cases should have names starting with "regress_"
 CREATE OR REPLACE FUNCTION svartest_dml.func_secdef()
 RETURNS int AS $$



--0000000000005eda460636a965c4-- --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0013-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250603-2-0013-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9ebe2 RnJvbSA4NDcwZGMzYWNmZTU3MWFlMjI0YzFkOGM5OWY0OTkyMTdmNjI2MTI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMjA6NDE6NTcgKzAyMDAKU3ViamVjdDogW1BB VENIIDEzLzE1XSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBW QVJJQUJMRVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFy aWFibGVzCmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3Jj L3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKysrLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jICAgICAgICAgICAgICAgIHwgIDYgKysrCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyOCArKysrKysrKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrCiBz cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMyArKwogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRl L3Rjb3AvY21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0ICAgICAgICB8IDUwICsrKysrKysrKysrKysrKysrKysK IC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8IDI0ICsrKysr KysrKwogMTEgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Rpc2NhcmQuc2dtbAppbmRleCBiZjQ0YzUyM2NhYy4uNjFiOTY3ZjljOWIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvZGlzY2FyZC5zZ21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5T IHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMg fCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+ CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8 IFBMQU5TIHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPlZBUklBQkxFUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFJlc2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBh IHZhcmlhYmxlCisgICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRv IDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRl cmFsPlRFTVBPUkFSWTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+ CiAgICAgPGxpc3RpdGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3Vu bG9ja19hbGwoKTsKIERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVF TkNFUzsKK0RJU0NBUkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAg PC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZGlzY2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4 IDgxMzM5YTc1YTUyLi41OTA0YTZjNDkxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGlzY2FyZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwpAQCAtMTgs NiArMTgsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGlzY2FyZC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2Uu aCIKICNpbmNsdWRlICJ1dGlscy9ndWMuaCIKICNpbmNsdWRlICJ1dGlscy9wb3J0YWwuaCIKQEAg LTQ4LDYgKzQ5LDEwIEBAIERpc2NhcmRDb21tYW5kKERpc2NhcmRTdG10ICpzdG10LCBib29sIGlz VG9wTGV2ZWwpCiAJCQlSZXNldFRlbXBUYWJsZU5hbWVzcGFjZSgpOwogCQkJYnJlYWs7CiAKKwkJ Y2FzZSBESVNDQVJEX1ZBUklBQkxFUzoKKwkJCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOworCQkJ YnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgRElTQ0FS RCB0YXJnZXQ6ICVkIiwgc3RtdC0+dGFyZ2V0KTsKIAl9CkBAIC03NSw0ICs4MCw1IEBAIERpc2Nh cmRBbGwoYm9vbCBpc1RvcExldmVsKQogCVJlc2V0UGxhbkNhY2hlKCk7CiAJUmVzZXRUZW1wVGFi bGVOYW1lc3BhY2UoKTsKIAlSZXNldFNlcXVlbmNlQ2FjaGVzKCk7CisJUmVzZXRTZXNzaW9uVmFy aWFibGVzKCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXgg NjUxMDBmNjVlNGUuLjkyNzU2ZDY4MDg2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCkBAIC0xMDIsNyArMTAyLDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNr KERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVH MSwgInBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVl KTsKIAotCUFzc2VydChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50 ZWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAq IHJlY2VpdmluZyBhbiBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBW QVJJQUJMRVMgXQorCSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLwor CWlmICghc2Vzc2lvbnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1 ZSBpcyBub3Qgc3BlY2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAt NjkxLDMgKzY5NywyMyBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQog CiAJcmV0dXJuIChEYXR1bSkgMDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxl dGUgY29udGVudCBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBj bGVhbnVwIG9mIGFueSBsaXN0IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAq IFRoaXMgaXMgdXNlZCBieSB0aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkg Y29tbWFuZC4KKyAqLwordm9pZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyog ZGVzdHJveSBoYXNoIHRhYmxlIGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJ aWYgKHNlc3Npb252YXJzKQorCXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vz c2lvbnZhcnMgPSBOVUxMOworCX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBz ZXNzaW9uIHZhcmlhYmxlcyAqLworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwp CisJCU1lbW9yeUNvbnRleHRSZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CmluZGV4IDc1MGNmNTE3MWQ4Li4yMDdhMjc3OWRmNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yMDg0 LDcgKzIwODQsMTMgQEAgRGlzY2FyZFN0bXQ6CiAJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfU0VR VUVOQ0VTOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBESVNDQVJEIFZBUklB QkxFUworCQkJCXsKKwkJCQkJRGlzY2FyZFN0bXQgKm4gPSBtYWtlTm9kZShEaXNjYXJkU3RtdCk7 CiAKKwkJCQkJbi0+dGFyZ2V0ID0gRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCSQkID0gKE5vZGUg KikgbjsKKwkJCQl9CiAJCTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxp dHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDIwZTRkNDM1NzZiLi41ZmZj ZWU1YWE4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3Jj L2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTI5NjEsNiArMjk2MSw5IEBAIENyZWF0ZUNvbW1h bmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgRElTQ0FSRF9TRVFVRU5DRVM6CiAJCQkJ CXRhZyA9IENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBE SVNDQVJEX1ZBUklBQkxFUzoKKwkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTOwor CQkJCQlicmVhazsKIAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJ CX0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCAzOWQxYjZhYTYxMC4uMDZjYmFjNDBjYTAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTQxNTIsNyArNDE1Miw3IEBAIG1hdGNoX3ByZXZpb3Vz X3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hl cygiRElTQ0FSRCIpKQotCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VT IiwgIlRFTVAiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIs ICJURU1QIiwgIlZBUklBQkxFUyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRP IikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMmViZTg0Nzc3 ODkuLmFjMzZkZmNjMTliIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o CkBAIC0yOSw0ICsyOSw2IEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0CiBleHRlcm4gdm9pZCBF eGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlz dEluZm8gcGFyYW1zLAogCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5 Q29tcGxldGlvbiAqcWMpOwogCitleHRlcm4gdm9pZCBSZXNldFNlc3Npb25WYXJpYWJsZXModm9p ZCk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDhjNTA4Yjg1MWRhLi44OTVk MjA1MTFiOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDA3MSw2ICs0MDcxLDcgQEAgdHlw ZWRlZiBlbnVtIERpc2NhcmRNb2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NFUVVFTkNF UywKIAlESVNDQVJEX1RFTVAsCisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRNb2RlOwog CiB0eXBlZGVmIHN0cnVjdCBEaXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCAyMjA4 MmMzMDAwOC4uYmVmMGFjMjUzMzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1 LDcgQEAgUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2Us IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQg UExBTlMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NF UVVFTkNFUywgIkRJU0NBUkQgU0VRVUVOQ0VTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfRElTQ0FSRF9URU1QLCAiRElTQ0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBm YWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklB QkxFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0Qs ICJEUk9QIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0RST1BfQUdHUkVHQVRFLCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz X2RtbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2Rt bC5vdXQKaW5kZXggMGZkZjBmZGM2OGEuLjQ0N2MxMGJjNGEzIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CkBAIC00NDcsMyAr NDQ3LDUzIEBAIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwu c2VzdmFyNDYKIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwu c2VzdmFyNDcKIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwu c2VzdmFyNDgKIERST1AgUk9MRSByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7 CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkOworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwIEFTIHZhcmNoYXI7CitMRVQgc3ZhcnRlc3RfZG1s X2Rpc2NhcmQuc2VzdmFyNTAgPSAnSGVsbG8nOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2Rt bF9kaXNjYXJkLnNlc3ZhcjUwKTsKKyBzZXN2YXI1MCAKKy0tLS0tLS0tLS0KKyBIZWxsbworKDEg cm93KQorCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJF IHNjaGVtYSA9ICdzdmFydGVzdF9kbWxfZGlzY2FyZCc7CisgY291bnQgCistLS0tLS0tCisgICAg IDEKKygxIHJvdykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK1NF TEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7Cisgc2VzdmFyNTAg CistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2 YXI1MCA9ICdIZWxsbyc7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAxCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFC TEVTOworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3Vu dCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3Rf ZG1sX2Rpc2NhcmQuc2VzdmFyNTApOworIHNlc3ZhcjUwIAorLS0tLS0tLS0tLQorIAorKDEgcm93 KQorCitEUk9QIFNDSEVNQSBzdmFydGVzdF9kbWxfZGlzY2FyZCBDQVNDQURFOworTk9USUNFOiAg ZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNl c3ZhcjUwCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl c19kbWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNx bAppbmRleCAxMjUwZTdlZjA2Mi4uMzQwYWU2Zjc2YWIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbApAQCAtMzM2LDMgKzMzNiwyNyBAQCBTRUxF Q1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4KTsKIAogRFJPUCBTQ0hFTUEgc3ZhcnRl c3RfZG1sIENBU0NBREU7CiBEUk9QIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfd3JpdGVfb25s eV9yb2xlOworCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkOworCitDUkVBVEUg VkFSSUFCTEUgc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTAgQVMgdmFyY2hhcjsKK0xFVCBz dmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCA9ICdIZWxsbyc7CitTRUxFQ1QgVkFSSUFCTEUo c3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFyNTApOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIHNjaGVtYSA9ICdzdmFydGVzdF9kbWxfZGlzY2Fy ZCc7CisKK0RJU0NBUkQgQUxMOworCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sX2Rpc2NhcmQuc2VzdmFy NTApOworTEVUIHN2YXJ0ZXN0X2RtbF9kaXNjYXJkLnNlc3ZhcjUwID0gJ0hlbGxvJzsKKworU0VM RUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworRElTQ0FSRCBWQVJJ QUJMRVM7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisK K1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWxfZGlzY2FyZC5zZXN2YXI1MCk7CitEUk9QIFND SEVNQSBzdmFydGVzdF9kbWxfZGlzY2FyZCBDQVNDQURFOwotLSAKMi40OS4wCgo= --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250603-2-0014-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9eb51 RnJvbSA2NjFhNDM1MjcxNzJhZTdkZjNmNDZhMmMzNmNmOGRlYWE4ZTJmM2IyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMjI6MzM6MjUgKzAyMDAKU3ViamVjdDogW1BB VENIIDE0LzE1XSBtZW1vcnkgY2xlYW5pbmcgYWZ0ZXIgRFJPUCBWQVJJQUJMRQoKQWNjZXB0aW5n IGEgc2ludmFsIG1lc3NhZ2UgaW52YWxpZGF0ZXMgZW50cmllcyBpbiB0aGUgInNlc3Npb252YXJz IiBoYXNoIHRhYmxlLgpUaGVzZSBlbnRyaWVzIGFyZSB2YWxpZGF0ZWQgYmVmb3JlIGFueSByZWFk IG9yIHdyaXRlIG9wZXJhdGlvbnMgb24gc2Vzc2lvbiB2YXJpYWJsZXMuCldoZW4gdGhlIGVudHJ5 IGNhbm5vdCBiZSB2YWxpZGF0ZWQsIGl0IGlzIHJlbW92ZWQuICBSZW1vdmFsIHdpbGwgYmUgZGVs YXllZCB3aGVuCnRoZSB2YXJpYWJsZSB3YXMgZHJvcHBlZCBieSB0aGUgY3VycmVudCB0cmFuc2Fj dGlvbiwgd2hpY2ggY291bGQgc3RpbGwgYmUgcm9sbGVkIGJhY2suCi0tLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA3ICstCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNTQgKysrKysrKysrKysrLQogc3Jj L2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICAyICsKIC4uLi9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgICB8IDExMCArKysrKysrKysK IHNyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgICAgICAgICB8ICAgMSArCiAu Li4vaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyAgICAgfCAgNTAgKysrKwog Li4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgICAgICAgIHwgMjE0ICsrKysr KysrKysrKysrKysrKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwg ICAgIHwgMTUxICsrKysrKysrKysrKwogOCBmaWxlcyBjaGFuZ2VkLCA2ODMgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVz dC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192 YXJpYWJsZS5jCmluZGV4IGQ4ZWRlNGZhOGM4Li5jOTQxMTQ0M2M2ZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29s bGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvcGdfbHNu LmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKQEAgLTE1NCw3ICsxNTUsOCBAQCBjcmVh dGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIH0KIAogLyoKLSAqIERyb3AgdmFyaWFi bGUgYnkgT0lECisgKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRCwgYW5kIHJlZ2lzdGVyIHRoZSBuZWVk ZWQgc2Vzc2lvbiB2YXJpYWJsZQorICogY2xlYW51cC4KICAqLwogdm9pZAogRHJvcFZhcmlhYmxl QnlJZChPaWQgdmFyaWQpCkBAIC0xNzQsNCArMTc2LDcgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQg dmFyaWQpCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiAKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4 Y2x1c2l2ZUxvY2spOworCisJLyogZG8gdGhlIG5lY2Vzc2FyeSBjbGVhbnVwIGluIGxvY2FsIG1l bW9yeSwgaWYgbmVlZGVkICovCisJU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlk KTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA5Mjc1NmQ2 ODA4Ni4uNGQwNDRkMzU1NjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKQEAgLTEzLDggKzEzLDggQEAKICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAjaW5jbHVkZSAi cG9zdGdyZXMuaCIKLQogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRl ICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgpA QCAtNzUsNiArNzUsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCXZvaWQJICAg KmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4 dHJhX2x4aWQ7CiAKKwkvKgorCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0 aGUgbGFzdCB0cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCisJICogdmFyaWFibGUsIGlmIGFu eS4gIFdlIG5lZWQgdGhpcyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVlaW5nIG1lbW9yeSBmb3IK KwkgKiB2YXJpYWJsZXMgZHJvcHBlZCBieSB0aGUgbG9jYWwgYmFja2VuZCwgaW4gY2FzZSB0aGUg b3BlcmF0aW9uIGlzIHJvbGxlZAorCSAqIGJhY2suCisJICovCisJTG9jYWxUcmFuc2FjdGlvbklk IGRyb3BfbHhpZDsKKwogCS8qCiAJICogU3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9u IGNhbiBiZSBvdXRkYXRlZCB3aGVuIHdlIHJlY2VpdmUgYQogCSAqIHNpbnZhbCBtZXNzYWdlLiAg V2UgdGhlbiBoYXZlIHRvIGNoZWNrIGlmIHRoZSBzdG9yZWQgZGF0YSBhcmUgc3RpbGwKQEAgLTkx LDYgKzk5LDE3IEBAIHN0YXRpYyBIVEFCICpzZXNzaW9udmFycyA9IE5VTEw7CS8qIGhhc2ggdGFi bGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCiAKIHN0YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJp YWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOwogCisvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNl aXZlIGEgc2ludmFsIG1lc3NhZ2UgKi8KK3N0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBm YWxzZTsKKworLyoKKyAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMg aXMgbm90IHJlbW92ZWQgaW1tZWRpYXRlbHkuICBXZSBkbworICogdGhhdCBpbiB0aGUgbmV4dCB0 cmFuc2FjdGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgKiAi dmFsaWRhdGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2Fp ZCB2YWxpZGF0aW9uLCBzbworICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZv cnQuCisgKi8KK3N0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZh bGlkTG9jYWxUcmFuc2FjdGlvbklkOworCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNl c3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgogICovCkBAIC0xMjIsNiArMTQxLDM4IEBAIHBn X3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBo YXNodmFsdWUpCiAJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUgPT0gaGFz aHZhbHVlKQogCQl7CiAJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJbmVlZHNfdmFsaWRh dGlvbiA9IHRydWU7CisJCX0KKwl9Cit9CisKKy8qCisgKiBIYW5kbGUgdGhlIGxvY2FsIG1lbW9y eSBjbGVhbnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFuZC4KKyAqCisgKiBDYWxsZXIgc2hv dWxkIHRha2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFyaWFibGUgZW50cnkgZmlyc3QuCisg Ki8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCit7CisJ QXNzZXJ0KExvY2FsVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlQcm9jLT52eGlkLmx4aWQpKTsKKwor CWlmIChzZXNzaW9udmFycykKKwl7CisJCWJvb2wJCWZvdW5kOworCQlTVmFyaWFibGUJc3ZhciA9 IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCQkJ CQkgICBIQVNIX0ZJTkQsICZmb3VuZCk7CisKKwkJaWYgKGZvdW5kKQorCQl7CisJCQkvKgorCQkJ ICogU2F2ZSB0aGUgY3VycmVudCB0b3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQgdG8gbWFr ZSBzdXJlIHdlCisJCQkgKiB3b24ndCBhdXRvbWF0aWNhbGx5IHJlbW92ZSB0aGUgbG9jYWwgdmFy aWFibGUgc3RvcmFnZSBpbgorCQkJICogdmFsaWRhdGVfYWxsX3Nlc3Npb25fdmFyaWFibGVzKCkg d2hlbiB0aGUgaW52YWxpZGF0aW9uIG1lc3NhZ2UKKwkJCSAqIGZyb20gRFJPUCBWQVJJQUJMRSBh cnJpdmVzLiAgQWZ0ZXIgYWxsLCB0aGUgdHJhbnNhY3Rpb24gY291bGQKKwkJCSAqIHN0aWxsIGJl IHJvbGxlZCBiYWNrLgorCQkJICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQkJc3Zh ci0+ZHJvcF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CiAJCX0KIAl9CiB9CkBAIC0xNzUsNiAr MjI2LDY3IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCiAJcmV0 dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIENoZWNrIGFsbCBwb3RlbnRpYWxseSBpbnZhbGlkIHNl c3Npb24gdmFyaWFibGUgZGF0YSBpbiBsb2NhbCBtZW1vcnkgYW5kIGZyZWUKKyAqIHRoZSBtZW1v cnkgZm9yIGFsbCBpbnZhbGlkIG9uZXMuICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUg YW55IHJlYWQgb3IKKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIEZyZWVpbmcgb2Yg YSB2YXJpYWJsZSdzIG1lbW9yeSBpcyBwb3N0cG9uZWQgaWYKKyAqIHRoZSB2YXJpYWJsZSBoYXMg YmVlbiBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLCBzaW5jZSB0aGF0CisgKiBv cGVyYXRpb24gY291bGQgc3RpbGwgYmUgcm9sbGVkIGJhY2suCisgKgorICogSXQgaXMgcG9zc2li bGUgdGhhdCB3ZSByZWNlaXZlIGEgY2FjaGUgaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2hpbGUKKyAq IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkgaXMgZXhlY3V0aW5nLCBzbyB3ZSBj YW5ub3QgZ3VhcmFudGVlIHRoYXQKKyAqIGFsbCBlbnRyaWVzIGluICJzZXNzaW9udmFycyIgd2ls bCBiZSBzZXQgdG8gImlzX3ZhbGlkIiBhZnRlciB0aGUgZnVuY3Rpb24gaXMKKyAqIGRvbmUuICBI b3dldmVyLCB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQgYWxsIGVudHJpZXMgZ2V0IGNoZWNrZWQgb25j ZS4KKyAqLworc3RhdGljIHZvaWQKK3JlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZv aWQpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCS8q CisJICogVGhlIHZhbGlkYXRpb24gcmVxdWlyZXMgc3lzdGVtIGNhdGFsb2cgYWNjZXNzLCBzbyB0 aGUgc2Vzc2lvbiBzdGF0ZQorCSAqIHNob3VsZCBiZSAiaW4gdHJhbnNhY3Rpb24iLgorCSAqLwor CUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwlpZiAoIW5lZWRzX3ZhbGlkYXRpb24g fHwgIXNlc3Npb252YXJzKQorCQlyZXR1cm47CisKKwkvKgorCSAqIFJlc2V0IHRoZSBmbGFnIGJl Zm9yZSB3ZSBzdGFydCB0aGUgdmFsaWRhdGlvbi4gIEl0IGNhbiBiZSBzZXQgYWdhaW4KKwkgKiBi eSBjb25jdXJyZW50bHkgaW5jb21pbmcgc2ludmFsIG1lc3NhZ2VzLgorCSAqLworCW5lZWRzX3Zh bGlkYXRpb24gPSBmYWxzZTsKKworCWVsb2coREVCVUcxLCAiZWZmZWN0aXZlIGNhbGwgb2YgdmFs aWRhdGVfYWxsX3Nlc3Npb25fdmFyaWFibGVzKCkiKTsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1 cywgc2Vzc2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3Nl YXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsK KwkJCWlmIChzdmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQl7CisJCQkJ LyogdHJ5IGFnYWluIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uICovCisJCQkJbmVlZHNfdmFsaWRh dGlvbiA9IHRydWU7CisJCQkJY29udGludWU7CisJCQl9CisKKwkJCWlmICghaXNfc2Vzc2lvbl92 YXJpYWJsZV92YWxpZChzdmFyKSkKKwkJCXsKKwkJCQlPaWQJCQl2YXJpZCA9IHN2YXItPnZhcmlk OworCisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQkJCWhhc2hfc2Vh cmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQlzdmFyID0g TlVMTDsKKwkJCX0KKwkJCWVsc2UKKwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCX0KKwl9 Cit9CisKIC8qCiAgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICov CkBAIC0yMDQsNiArMzE2LDggQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3Zh ciwgT2lkIHZhcmlkKQogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJ c3Zhci0+ZHJvcF9seGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisKIAlzdmFyLT5pc251bGwg PSB0cnVlOwogCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOwogCkBAIC0zMjcsMjIgKzQ0MSw0MiBA QCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJaWYgKCFzZXNzaW9udmFycykKIAkJ Y3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlmICh2YWxpZGF0ZWRfbHhpZCA9 PSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlkYXRlZF9seGlkICE9IE15UHJv Yy0+dnhpZC5seGlkKQorCXsKKwkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBzZXNz aW9uIHZhcmlhYmxlcyAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpOwor CisJCS8qIGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0aGUgc2FtZSB0cmFuc2FjdGlv biAqLworCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKwogCXN2YXIg PSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAogCQkJCQkJCQkg ICBIQVNIX0VOVEVSLCAmZm91bmQpOwogCiAJaWYgKGZvdW5kKQogCXsKKwkJLyoKKwkJICogVGhl IHNlc3Npb24gdmFyaWFibGUgY291bGQgaGF2ZSBiZWVuIGRyb3BwZWQgYnkgYSBEUk9QIFZBUklB QkxFCisJCSAqIHN0YXRlbWVudCBpbiBhIHN1YnRyYW5zYWN0aW9uIHRoYXQgd2FzIGxhdGVyIHJv bGxlZCBiYWNrLCB3aGljaAorCQkgKiBtZWFucyB0aGF0IHdlIG1heSBoYXZlIHRvIHdvcmsgd2l0 aCB0aGUgZGF0YSBvZiBhIHZhcmlhYmxlIG1hcmtlZAorCQkgKiBhcyBpbnZhbGlkLgorCQkgKi8K IAkJaWYgKCFzdmFyLT5pc192YWxpZCkKIAkJewogCQkJLyoKLQkJCSAqIElmIHRoZXJlIHdhcyBh biBpbnZhbGlkYXRpb24gbWVzc2FnZSwgdGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsIGJlCi0JCQkg KiB2YWxpZCwgYnV0IHdlIGhhdmUgdG8gY2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFsb2cuCisJ CQkgKiBXZSBoYXZlIHRvIGNoZWNrIHRoZSBzeXN0ZW0gY2F0YWxvZyB0byBzZWUgaWYgdGhlIHZh cmlhYmxlIGlzCisJCQkgKiBzdGlsbCB2YWxpZCwgZXZlbiBpZiBhbiBpbnZhbGlkYXRpb24gbWVz c2FnZSBzZXQgaXQgdG8gaW52YWxpZC4KKwkJCSAqCisJCQkgKiBUaGUgdmFyaWFibGUgbXVzdCBi ZSB2YWxpZGF0ZWQgYmVmb3JlIGl0IGlzIGFjY2Vzc2VkLiAgVGhlIG9pZAorCQkJICogc2hvdWxk IGJlIHZhbGlkLCBiZWNhdXNlIHRoZSByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUgaXMgYWxyZWFk eQorCQkJICogbG9ja2VkLCBhbmQgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKSB3 b3VsZCByZW1vdmUKKwkJCSAqIHZhcmlhYmxlcyBkcm9wcGVkIGJ5IG90aGVyIHRyYW5zYWN0aW9u cy4KIAkJCSAqLwogCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCiAJCQkJ c3Zhci0+aXNfdmFsaWQgPSB0cnVlOwogCQkJZWxzZQotCQkJCS8qIGlmIHRoZSB2YWx1ZSBjYW5u b3QgYmUgdmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KLQkJCQlmcmVlX3Nlc3Np b25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgc3Rh dGUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAkJfQogCX0KIAllbHNlCkBAIC00 MDMsNiArNTM3LDE2IEBAIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVl LCBib29sIGlzTnVsbCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZhcnNf aGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRyYW5z YWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJewor CQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICovCisJ CXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVwZWF0 IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRlZF9s eGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hf c2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3Vu ZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu aCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCBhYzM2ZGZj YzE5Yi4uYzA2ZTFmYWYwMmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKQEAgLTIxLDYgKzIxLDggQEAKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAjaW5j bHVkZSAidGNvcC9jbWR0YWcuaCIKIAorZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBv c3Rwcm9jZXNzKE9pZCB2YXJpZCk7CisKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShP aWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZmNjMmY2N2Y2MAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsx LDExMCBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVy bXV0YXRpb246IGxldCB2YWwgZHJvcCB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7 CitzdGVwIHZhbDogU0VMRUNUIFZBUklBQkxFKG15dmFyKTsKK215dmFyCistLS0tLQordGVzdCAK KygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNF TEVDVCBWQVJJQUJMRShteXZhcik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgIm15dmFyIiBk b2Vzbid0IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRyb3AgdmFs IHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFS SUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBC RUdJTjsKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1Qg VkFSSUFCTEUobXl2YXIpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJteXZhciIgZG9lc24n dCBleGlzdAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0 IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0 JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUobXl2YXIpOworbXl2YXIKKy0tLS0tCit0ZXN0 IAorKDEgcm93KQorCitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0t LS0tKy0tLS0tLS0KK3B1YmxpY3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDog RFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIg QVMgdGV4dDsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lfHJlbW92ZWQKKy0tLS0tLSstLS0tKy0t LS0tLS0KKyAgICAgIHwgICAgfHQgICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBW QVJJQUJMRShteXZhcik7CitteXZhcgorLS0tLS0KKyAgICAgCisoMSByb3cpCisKKworc3RhcnRp bmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCitz dGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBWQVJJQUJMRSht eXZhcik7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgczE6IEJFR0lOOwor c3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitw dWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUg bXl2YXI7CitzdGVwIGNyZWF0ZTogQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVw IGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1Ymxp Y3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgdmFsOiBTRUxFQ1QgVkFSSUFCTEUobXl2 YXIpOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9MTEJBQ0s7 CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRy b3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBDUkVBVEUg VkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVzdCc7 CitzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBB UyB0ZXh0Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9wNDogRFJP UCBWQVJJQUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFyMzsKK3N0 ZXAgaW52YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7Cis/ Y29sdW1uPworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2FyZDogRElT Q0FSRCBWQVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VMRUNUIHZh cm5hbWUgRlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAKKygxIHJv dykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSBi L3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggZTNjNjY5YTI5Yzcu LjhkZjkwMWZjNzljIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3Nj aGVkdWxlCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTEx NiwzICsxMTYsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDogc2VyaWFs aXphYmxlLXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDogbG9jay1u b3dhaXQKK3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5hMzhiOTc2MWZkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNl c3Npb24gdmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAg ICBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBE Uk9QIFZBUklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJ eyBCRUdJTjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsg U0VMRUNUIFZBUklBQkxFKG15dmFyKTsgfQorc3RlcCBkYmcJeyBTRUxFQ1Qgc2NoZW1hLCBuYW1l LCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsgfQorc3RlcCBzcjEJeyBST0xM QkFDSzsgfQorCitzZXNzaW9uIHMyCitzdGVwIGRyb3AJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjsg fQorc3RlcCBjcmVhdGUJCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7IH0KKworc2Vz c2lvbiBzMworc3RlcCBzMwkJCXsgQkVHSU47IH0KK3N0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0g J3Rlc3QnOyB9CitzdGVwIGNyZWF0ZTQJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7 IH0KK3N0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rlc3QnOyB9CitzdGVwIGRyb3A0CQl7IERS T1AgVkFSSUFCTEUgbXl2YXI0OyB9CitzdGVwIGludmFsMwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0g MCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7IH0KK3N0ZXAgZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFC TEVTOyB9CitzdGVwIHNjMwkJeyBDT01NSVQ7IH0KK3N0ZXAgc3RhdGUJCXsgU0VMRUNUIHZhcm5h bWUgRlJPTSBwZ192YXJpYWJsZTsgfQorCitzZXNzaW9uIHM0CitzdGVwIGNyZWF0ZTMJeyBDUkVB VEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7IH0KK3N0ZXAgZHJvcDMJCXsgRFJPUCBWQVJJQUJM RSBteXZhcjM7IH0KKworIyBDb25jdXJyZW50IGRyb3Agb2YgYSBrbm93biB2YXJpYWJsZSBzaG91 bGQgbGVhZCB0byBhbiBlcnJvcgorcGVybXV0YXRpb24gbGV0IHZhbCBkcm9wIHZhbAorIyBTYW1l LCBidXQgd2l0aCBhbiBleHBsaWNpdCB0cmFuc2FjdGlvbgorcGVybXV0YXRpb24gbGV0IHZhbCBz MSBkcm9wIHZhbCBzcjEKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlh YmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRi ZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCisjIENvbmN1cnJlbnQgZHJvcC9jcmVhdGUgb2YgYSBrbm93 biB2YXJpYWJsZSBzaG91bGQgbGVhZCB0byBlbXB0eSB2YXJpYWJsZQorIyBXZSBuZWVkIGEgdHJh bnNhY3Rpb24gdG8gbWFrZSBzdXJlIHRoYXQgd2Ugd29uJ3QgYWNjZXB0IGludmFsaWRhdGlvbiB3 aGVuCisjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKK3Bl cm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCisjIHRlc3Qg Zm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVn aXN0ZXJlZAorcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBk cm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dAppbmRleCA5Yzc1OTVlOWE0MS4uNTlj MmNmOGJmYTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXNfZGRsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzX2RkbC5vdXQKQEAgLTE2MSwzICsxNjEsMjE3IEBAIERFVEFJTDogIGRyb3AgY2Fz Y2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMAogZHJvcCBj YXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0MDFfZGRsLnNlc3ZhcjExCiBEUk9Q IFNDSEVNQSBzdmFydGVzdDAyX2RkbCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0MDJfZGRsLnNlc3ZhcjEwCitDUkVBVEUgU0NIRU1B IHN2YXJ0ZXN0X2RkbDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjAgQVMg dmFyY2hhcjsKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVt b3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFibGUgaW4g dGhlIG5leHQgdHJhbnNhY3Rpb24KK0xFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAnSGVsbG8n OworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBz Y2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMQorIGNvdW50IAorLS0tLS0tLQorICAgICAxCiso MSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAg V0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDAKKyBjb3VudCAKKy0tLS0tLS0KKyAg ICAgMAorKDEgcm93KQorCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHBy ZXNlcnZlZCB3aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRlZCB0cmFu c2FjdGlvbgorQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCBBUyB2YXJjaGFy OworTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCA9ICdIZWxsbyc7CitCRUdJTjsKKyAgRFJPUCBW QVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjA7CisgIC0tIHNob3VsZCBmYWlsCisgIFNFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOworRVJST1I6ICBzZXNzaW9uIHZhcmlh YmxlICJzdmFydGVzdF9kZGwuc2VzdmFyNjAiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTogU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CisgICAgICAgICAgICAgICAgICAgICAg ICBeCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0 X2RkbC5zZXN2YXI2MCk7IC0tIEhlbGxvCisgc2VzdmFyNjAgCistLS0tLS0tLS0tCisgSGVsbG8K KygxIHJvdykKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJTjsKKyAgRFJPUCBWQVJJQUJMRSBzdmFy dGVzdF9kZGwuc2VzdmFyNjA7CisgIC0tIHNob3VsZCBiZSBvaworICBDUkVBVEUgVkFSSUFCTEUg c3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIGludDsKKyAgTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2 MCA9IDEwMDsKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7IC0tIDEw MAorIHNlc3ZhcjYwIAorLS0tLS0tLS0tLQorICAgICAgMTAwCisoMSByb3cpCisKK1JPTExCQUNL OworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7IC0tIEhlbGxvCisgc2Vz dmFyNjAgCistLS0tLS0tLS0tCisgSGVsbG8KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzdmFy dGVzdF9kZGwuc2VzdmFyNjA7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRs JzsgLS0gMAorIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBD UkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIGludDsKKyAgTEVUIHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2MCA9IDEwMDsKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5z ZXN2YXI2MCk7Cisgc2VzdmFyNjAgCistLS0tLS0tLS0tCisgICAgICAxMDAKKygxIHJvdykKKwor ICBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpCisgICAgV0hFUkUg c2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDEKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMQor KDEgcm93KQorCisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwOworQ09NTUlU OworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBz Y2hlbWEgPSAnc3ZhcnRlc3RfZGRsJzsgLS0gMAorIGNvdW50IAorLS0tLS0tLQorICAgICAwCiso MSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjEgQVMgaW50Owor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MiBBUyBpbnQ7CitMRVQgc3ZhcnRl c3RfZGRsLnNlc3ZhcjYxID0gMTA7CitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyID0gMDsKK0JF R0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3Zh cjYxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFy aWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFy NjIgCistLS0tLS0tLS0tCisgICAgICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsK KyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisgc2VzdmFyNjEgCist LS0tLS0tLS0tCisgICAgICAgMTAKKygxIHJvdykKKworICBTQVZFUE9JTlQgczI7CisgIERST1Ag VkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0 b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFyNjIgCistLS0tLS0tLS0tCisgICAgICAgIDAKKygx IHJvdykKKworICBST0xMQkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7Cisgc2VzdmFyNjEgCistLS0tLS0t LS0tCisgICAgICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJP UCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5 IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3Zh cnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAKKy0tLS0tLS0tLS0KKyAgICAgICAgMAor KDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3Rf ZGRsLnNlc3ZhcjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0tLS0tLS0KKyAgICAgICAxMAorKDEgcm93 KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFy NjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJp YWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2 MiAKKy0tLS0tLS0tLS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMyOwor Uk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwu c2VzdmFyNjEpOworIHNlc3ZhcjYxIAorLS0tLS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisK K0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNl c3ZhcjYxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24g dmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2Vz dmFyNjIgCistLS0tLS0tLS0tCisgICAgICAgIDAKKygxIHJvdykKKworICBTQVZFUE9JTlQgczI7 CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJs ZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyBzZXN2YXI2MiAK Ky0tLS0tLS0tLS0KKyAgICAgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICAt LSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAg U0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7Cisgc2VzdmFyNjIgCistLS0t LS0tLS0tCisgICAgICAgIDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxKTsKKyBzZXN2YXI2MSAKKy0tLS0t LS0tLS0KKyAgICAgICAxMAorKDEgcm93KQorCistLSByZXBlYXRlZCBhYm9ydGVkIHRyYW5zYWN0 aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNL OworQkVHSU47IERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsK K0JFR0lOOyBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJBQ0s7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjEpOwor IHNlc3ZhcjYxIAorLS0tLS0tLS0tLQorICAgICAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxLCBzdmFydGVzdF9kZGwuc2VzdmFyNjI7CitEUk9QIFND SEVNQSBzdmFydGVzdF9kZGw7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlc19kZGwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXNfZGRsLnNxbAppbmRleCBmODQ0NDY5ZWNiMS4uNmI5NjJjZjhlNWEgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbApAQCAtMTQ4LDMgKzE0 OCwxNTQgQEAgQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QwMl9kZGwuc2VzdmFyMTAgU0VUIFNDSEVN QSBzdmFydGVzdDAxX2RkbDsKIAogRFJPUCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGwgQ0FTQ0FERTsK IERST1AgU0NIRU1BIHN2YXJ0ZXN0MDJfZGRsIENBU0NBREU7CisKK0NSRUFURSBTQ0hFTUEgc3Zh cnRlc3RfZGRsOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZh cmNoYXI7CisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVt b3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFibGUgaW4g dGhlIG5leHQgdHJhbnNhY3Rpb24KKworTEVUIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCA9ICdIZWxs byc7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAgV0hF UkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDEKKworRFJPUCBWQVJJQUJMRSBzdmFydGVz dF9kZGwuc2VzdmFyNjA7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpCisgIFdIRVJFIHNjaGVtYSA9ICdzdmFydGVzdF9kZGwn OyAtLSAwCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVk IHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRyYW5zYWN0aW9u CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYwIEFTIHZhcmNoYXI7CisKK0xF VCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAnSGVsbG8nOworCitCRUdJTjsKKyAgRFJPUCBWQVJJ QUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjA7CisKKyAgLS0gc2hvdWxkIGZhaWwKKyAgU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MCk7CisKK1JPTExCQUNLOworCistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAtLSBIZWxs bworCistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworICBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2Rk bC5zZXN2YXI2MDsKKworICAtLSBzaG91bGQgYmUgb2sKKyAgQ1JFQVRFIFZBUklBQkxFIHN2YXJ0 ZXN0X2RkbC5zZXN2YXI2MCBBUyBpbnQ7CisgIExFVCBzdmFydGVzdF9kZGwuc2VzdmFyNjAgPSAx MDA7CisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAtLSAxMDAKKwor Uk9MTEJBQ0s7CisKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjApOyAtLSBI ZWxsbworCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MDsKKworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkKKyAg V0hFUkUgc2NoZW1hID0gJ3N2YXJ0ZXN0X2RkbCc7IC0tIDAKKworQkVHSU47CisgIENSRUFURSBW QVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjAgQVMgaW50OworCisgIExFVCBzdmFydGVzdF9k ZGwuc2VzdmFyNjAgPSAxMDA7CisKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2 YXI2MCk7CisKKyAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQor ICAgIFdIRVJFIHNjaGVtYSA9ICdzdmFydGVzdF9kZGwnOyAtLSAxCisKKyAgRFJPUCBWQVJJQUJM RSBzdmFydGVzdF9kZGwuc2VzdmFyNjA7CisKK0NPTU1JVDsKKworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKQorICBXSEVSRSBzY2hlbWEgPSAnc3ZhcnRlc3RfZGRs JzsgLS0gMAorCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxIEFTIGludDsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjIgQVMgaW50OworCitMRVQgc3Zh cnRlc3RfZGRsLnNlc3ZhcjYxID0gMTA7CitMRVQgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyID0gMDsK KworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwu c2VzdmFyNjE7CisKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNz aW9uIHZhcmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2VzdmFyNjIpOwor ICBST0xMQkFDSyBUTyBzMTsKKworICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3Zh cjYxKTsKKworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNl c3ZhcjYxOworCisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lv biB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyAg Uk9MTEJBQ0sgVE8gczI7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklB QkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7Cisg IERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOworCisgIC0tIGZvcmNlIGNsZWFu aW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsKKyAgUk9MTEJBQ0sgVE8gczE7CisKKyAgU0VMRUNU IFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7CisKKyAgU0FWRVBPSU5UIHMyOworICBE Uk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsKKworICAtLSBmb3JjZSBjbGVhbmlu ZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxF KHN2YXJ0ZXN0X2RkbC5zZXN2YXI2Mik7CisgIFJPTExCQUNLIFRPIHMyOworUk9MTEJBQ0s7CisK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7 CisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRs LnNlc3ZhcjYxOworCisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vz c2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYyKTsK KworICBTQVZFUE9JTlQgczI7CisKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5v dGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kZGwuc2Vz dmFyNjIpOworICBST0xMQkFDSyBUTyBzMTsKKworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3Vj aGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0 X2RkbC5zZXN2YXI2Mik7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklB QkxFKHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MSk7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNh Y3Rpb24KK0JFR0lOOyBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RkbC5zZXN2YXI2MTsgUk9MTEJB Q0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjE7IFJPTExCQUNL OworQkVHSU47IERST1AgVkFSSUFCTEUgc3ZhcnRlc3RfZGRsLnNlc3ZhcjYxOyBST0xMQkFDSzsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZGRsLnNlc3ZhcjYx KTsKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kZGwuc2VzdmFyNjEsIHN2YXJ0ZXN0X2RkbC5z ZXN2YXI2MjsKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfZGRsOwotLSAKMi40OS4wCgo= --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0012-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250603-2-0012-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9ebp3 RnJvbSBlMDA5NDdhNjc1MmQ5YjVlMDk3YTRiYjY2MmNlZDg4MjEzMDA4MzU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDEy LzE1XSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTMgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDBl YTRhNDRmMWIyLi42NTEwMGY2NWU0ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNkZXNjLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJub2Rlcy9wbGFubm9kZXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdHlwZS5oIgpAQCAtNTk4LDMgKzU5OSw5NSBAQCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsCiAKIAlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQorCisvKgorICogcGdfc2Vzc2lv bl92YXJpYWJsZXMgLSBkZXNpZ25lZCBmb3IgdGVzdGluZworICoKKyAqIFRoaXMgaXMgYSBmdW5j dGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQgcmV0dXJucyB0aGUK KyAqIGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXMtaXMsIGFuZCBjYW4gdGhlcmVmb3Jl IGRpc3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3Bw ZWQsIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hh cmVkIGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMo UEdfRlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FU VFMgOAorCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252 YXJzKQorCXsKKwkJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNp bmZvLT5yZXN1bHRpbmZvOworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJ c3ZhcjsKKworCQloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGls ZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwp CisJCXsKKwkJCURhdHVtCQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOwor CQkJYm9vbAkJbnVsbHNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1 cGxlCXRwOworCQkJYm9vbAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1 ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxz KSk7CisKKwkJCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJ dmFsdWVzWzNdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qCisJCQkg KiBJdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGZyb20g dGhlCisJCQkgKiBjYXRhbG9nLCBidXQgbm90IHlldCBwdXJnZWQgZnJvbSB0aGUgaGFzaCB0YWJs ZS4KKwkJCSAqLworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElk R2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQor CQkJeworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBH RVRTVFJVQ1QodHApOworCisJCQkJLyoKKwkJCQkgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQg YSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGFuZAorCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBh IG5ldyB2YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4gIFVzZQorCQkJCSAqIHRoZSBj YXRhbG9nIGluZm9ybWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICov CisJCQkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJ CQl7CisJCQkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJ Z2V0X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVl c1syXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJ CQkJCXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+ dHlwaWQpKTsKKwkJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2 YWx1ZXNbNl0gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFy aWFibGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQo KSwgQUNMX1NFTEVDVCkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xH ZXREYXR1bSgKKwkJCQkJCQkJCQkJIG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQs IHN2YXItPnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9 PSBBQ0xDSEVDS19PSyk7CisKKwkJCQkJdmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJ CQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRj aGluZyBjYXRhbG9nIGVudHJ5LCByZXR1cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lz X3ZhbGlkKQorCQkJeworCQkJCW51bGxzWzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7 CisJCQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVl KTsKKwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJ CQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNj LCB2YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAppbmRleCBmNzJhY2RkODRiZC4uZDZjZWU1NzI1NjEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdApAQCAtMTI1NzksNCArMTI1NzksMTIgQEAKICAgcHJvYXJnbmFtZXMg PT4gJ3twaWQsaW9faWQsaW9fZ2VuZXJhdGlvbixzdGF0ZSxvcGVyYXRpb24sb2ZmLGxlbmd0aCx0 YXJnZXQsaGFuZGxlX2RhdGFfbGVuLHJhd19yZXN1bHQscmVzdWx0LHRhcmdldF9kZXNjLGZfc3lu YyxmX2xvY2FsbWVtLGZfYnVmZmVyZWR9JywKICAgcHJvc3JjID0+ICdwZ19nZXRfYWlvcycgfSwK IAorIyBTZXNzaW9uIHZhcmlhYmxlcyBzdXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ ICdsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNz aW9uX3ZhcmlhYmxlcycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBw cm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVj b3JkJywKKyAgcHJvYXJndHlwZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQs dGV4dCxvaWQsdGV4dCxib29sLGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxv LG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlk LHR5cG5hbWUscmVtb3ZlZCxjYW5fc2VsZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdw Z19zZXNzaW9uX3ZhcmlhYmxlcycgfSwKIF0KLS0gCjIuNDkuMAoK --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Disposition: attachment; filename="v20250603-2-0011-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9ebz4 RnJvbSAyN2ViZjcyZGM1YzliMWJmYzBkNTE2MDg1MjM0MDUxODljZDlhM2FmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgSnVuIDIwMjUgMDg6Mjk6MzcgKzAyMDAKU3ViamVjdDogW1BB VENIIDExLzE1XSBMRVQgY29tbWFuZCAtIGFzc2lnbiBhIHJlc3VsdCBvZiBleHByZXNzaW9uIHRv IHRoZQogc2Vzc2lvbiB2YXJpYWJsZQoKSW1wbGVtZW50YXRpb25zIG9mIEVYUExBSU4gTEVUIGFu ZCBQUkVQQVJFIExFVCBzdGF0ZW1lbnRzIGFyZSBub3Qgc3VwcG9ydGVkCm5vdy4gUG9zdHBvbmVk IHRvIG5leHQgc3RlcCBkdWUgcmVkdWNpbmcgcGF0Y2ggc2l6ZS4KLS0tCiBkb2Mvc3JjL3NnbWwv ZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjkgKysKIGRvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgICA1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9sZXQu c2dtbCAgICAgICAgICAgICAgICAgICAgIHwgIDk2ICsrKysrKysKIGRvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgODYgKysrKysrCiBzcmMvYmFja2VuZC9leGVj dXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgMjMgKy0KIHNyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAxMCArCiBzcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgMjUgKysKIHNyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL3NldHJlZnMuYyAgICAgICAgICB8ICAzNCArKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgICAgICAgICAgICAgICAgICB8IDIzOCArKysrKysrKysrKysrKysrCiBzcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMzkgKystCiBzcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMTUgKwogc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgIDExICsKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvaW5jbHVkZS9ub2Rl cy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmggICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlc19kbWwub3V0ICAgICAgICB8IDI1OCArKysrKysrKysrKysrKysrKysKIC4uLi9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsICAgICB8IDE3NyArKysrKysrKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyNyBm aWxlcyBjaGFuZ2VkLCAxMDk1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggNjEzNjA4ZTYy MGQuLjVkMDlhZDA5YjgwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01MzkyLDEwICs1MzkyLDM5IEBAIEVYUExBSU4gU0VM RUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcy MDA4LTAxLTAxJzsKICAgICBzZXNzaW9uIHZhcmlhYmxlIGlkZW50aWZpZXIsIGFuZCBjYW4gYmUg dXNlZCBvbmx5IGZvciBzZXNzaW9uIHZhcmlhYmxlCiAgICAgaWRlbnRpZmllci4gVGhlIHNwZWNp YWwgc3ludGF4IGZvciBhY2Nlc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgcmVtb3ZlcwogICAgIHJp c2sgb2YgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlkZW50aWZpZXJzIGFuZCBjb2x1bW4g bmFtZXMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgc2V0IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5M RVQ8L2NvbW1hbmQ+LiAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgcmV0 cmlldmVkCisgICAgd2l0aCB0aGUgU1FMIHN0YXRlbWVudCA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1h bmQ+LgogPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xF VCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIFZBUklBQkxFKHZhcjEpOworPC9wcm9ncmFt bGlzdGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBw dWJsaWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgcHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQVUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lk ID0gKFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJFIHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOwog U0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7CiA8L3Byb2dyYW1saXN0aW5nPgogICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxl IGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKKyAgICBhIHZhcmlh YmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRz IHZhbHVlIGhhcworICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50 IHNlc3Npb24gdXNpbmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAg U2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFsOgorICAgIGFueSBjaGFuZ2Vz IG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9u IHdvbid0CisgICAgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAo anVzdCBsaWtlIHZhcmlhYmxlcyBpbgorICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Np b24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgYXJlIHBlcnNpc3RlbnQsIGJ1dAorICAgIHRoZWlyIHZh bHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQg b2YKKyAgICB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxz ZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggMmY2N2RlM2Uy MWIuLmNjM2JkNWFiNTQwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0xNTgsNiArMTU4LDcg QEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJl Y3RvcnkuCiA8IUVOVElUWSBncmFudCAgICAgICAgICAgICAgU1lTVEVNICJncmFudC5zZ21sIj4K IDwhRU5USVRZIGltcG9ydEZvcmVpZ25TY2hlbWEgU1lTVEVNICJpbXBvcnRfZm9yZWlnbl9zY2hl bWEuc2dtbCI+CiA8IUVOVElUWSBpbnNlcnQgICAgICAgICAgICAgU1lTVEVNICJpbnNlcnQuc2dt bCI+Cis8IUVOVElUWSBsZXQgICAgICAgICAgICAgICAgU1lTVEVNICJsZXQuc2dtbCI+CiA8IUVO VElUWSBsaXN0ZW4gICAgICAgICAgICAgU1lTVEVNICJsaXN0ZW4uc2dtbCI+CiA8IUVOVElUWSBs b2FkICAgICAgICAgICAgICAgU1lTVEVNICJsb2FkLnNnbWwiPgogPCFFTlRJVFkgbG9jayAgICAg ICAgICAgICAgIFNZU1RFTSAibG9jay5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUu c2dtbAppbmRleCA5NmQyNTg2NDIzZS4uMjIxYTY5OTQ2OWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3ZhcmlhYmxlLnNnbWwKQEAgLTE3Myw2ICsxNzMsNyBAQCBBTFRFUiBWQVJJQUJMRSBib28gU0VU IFNDSEVNQSBwcml2YXRlOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8 L3JlZnNlY3QxPgogPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s CmluZGV4IDZlOTg4ZjJlNDcyLi40MzAwMGNlMDA0ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92 YXJpYWJsZS5zZ21sCkBAIC0xMjAsOSArMTIwLDExIEBAIENSRUFURSBWQVJJQUJMRSBbIElGIE5P VCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi CiAgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CiAKICAgPHBhcmE+Ci0gICBDcmVhdGUgYW4gZGF0 ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+OgorICAgQ3JlYXRlIGEg c2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPiBvZiBkYXRhIHR5cGUgZGF0 ZToKIDxwcm9ncmFtbGlzdGluZz4KIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CitMRVQg dmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCBWQVJJQUJMRSh2YXIxKTsKIDwvcHJvZ3JhbWxp c3Rpbmc+CiAgIDwvcGFyYT4KIApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGRhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZz ZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwYi4u Njc5ODhiNWZjZDggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0xMTEsNiAr MTExLDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUi PgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVy PgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJl cj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3Np bXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9s ZXQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjAwZjliZWE5MWZlCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9sZXQuc2dtbApAQCAtMCwwICsxLDk2IEBACis8IS0tCitkb2Mvc3JjL3NnbWwv cmVmL2xldC5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkg aWQ9InNxbC1sZXQiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWxldCI+CisgIDxwcmltYXJ5PkxF VDwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNl c3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+Y2hhbmdpbmc8L3NlY29uZGFy eT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5MRVQ8L3Jl ZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+ U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisg PHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkxFVDwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+Y2hh bmdlIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRp dj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0xFVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFjZWFibGU+ID0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNxbF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4KKzwvc3lu b3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2Ny aXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+ IGNvbW1hbmQgYXNzaWducyBhIHZhbHVlIHRvIHRoZSBzcGVjaWZpZWQgc2Vzc2lvbgorICAgdmFy aWFibGUuCisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJp YWJsZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQW4g YXJiaXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJlIG9mIGEgZGF0YSB0 eXBlIHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRoZSBzZXNzaW9uIHZh cmlhYmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOworTEVUIG15dmFyID0gMTA7CitMRVQg bXl2YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxl PgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gaXMgYSA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICBleHRlbnNpb24uCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgor CisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9 InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5k PSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNl Y3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCAyNTU3OGYzOTQ2Yy4uMTNlNGFk YzVkZjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4Niw2ICsxODYsNyBAQAogICAgJmdyYW50Owog ICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0 ZW47CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jCmluZGV4IGUxNGZjZDIzZGU5Li4wZWE0YTQ0ZjFiMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTksMTUgKzE5LDIyIEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY2Rl c2MuaCIKKyNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAi bm9kZXMvcGxhbm5vZGVzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNs dWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgog I2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKICNp bmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2lu Y2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIC8qCkBAIC01MTIsMyArNTE5LDgyIEBAIENyZWF0 ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQp CiAKIAlyZXR1cm4gdmFyaWFibGU7CiB9CisKKy8qCisgKiBBc3NpZ24gdGhlIHJlc3VsdCBvZiB0 aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFibGUKKyAqLwordm9p ZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0U3RtdCAqc3Rt dCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZpcm9ubWVudCAq cXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5CSAgICpxdWVy eSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3cml0dGVuOwor CURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBsYW5uZWRTdG10 ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9IHF1ZXJ5LT5y ZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwkvKiBkbyB3 ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGU/ICovCisJ YWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdl dFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQor CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRlIGEgZGVzdCByZWNlaXZlciBmb3Ig TEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlkKTsKKworCS8q IHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3QocXVlcnkpOwor CisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChsaXN0X2xlbmd0 aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCByZXdy aXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkv KiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5LCBwc3RhdGUt PnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBwYXJhbXMpOwor CisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFuZCBJRCB0byBl bnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHByZXZpb3VzbHkg ZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJICogdGhlIHBs YW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0IGNoYW5nZWQg dGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3YXkgdG8gYmUg cGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLworCVB1c2hDb3Bp ZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVTbmFwc2hvdENv bW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGluZyBvdXRwdXQg dG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVlcnlEZXNjKHBs YW4sIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFwc2hvdCgpLCBJ bnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYsIDApOworCisJ LyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4ZWN1dGlvbiAq LworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVuIHRoZSBwbGFu IHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSByb3cuICBUbwor CSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2UgdHJ5IHRvIGZl dGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRTY2FuRGlyZWN0 aW9uLCAyTCk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZlbiBhIFF1ZXJ5 Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBsZXRpb24ocWMs IENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOworCisJLyogYW5k IGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVjdXRvckVuZChx dWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9wQWN0aXZlU25h cHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IDUzZDM1OWMyNDY4Li5jNDQ3 NDUyMmJjNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yMzQsMTMgKzIzNCwyNCBAQCBz dGFuZGFyZF9FeGVjdXRvclN0YXJ0KFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQgZWZsYWdzKQog CQkvKiBmaWxsIHRoZSBhcnJheSAqLwogCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5w bGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKIAkJewotCQkJQWNsUmVzdWx0CWFjbHJlc3Vs dDsKKwkJCS8qCisJCQkgKiBQZXJtaXNzaW9uIGNoZWNrIHNob3VsZCBiZSBleGVjdXRlZCBvbiBh bGwgZXhwbGljaXRseSB1c2VkCisJCQkgKiB2YXJpYWJsZXMgaW4gdGhlIHF1ZXJ5LiBGb3IgaW1w bGljaXRseSB1c2VkIHZhcmlhYmxlCisJCQkgKiAobGlrZSBiYXNlIG5vZGUgb2YgYXNzaWdubWVu dCBpbmRpcmVjdCkgd2UgY2Fubm90IGRvIHBlcm1pc3Npb24KKwkJCSAqIGNoZWNrLCBiZWNhdXNl IHdlIG5lZWQgcmVhZCB0aGUgdmFsdWUgKGFuZCB1c2VyIGNhbiBoYXZlCisJCQkgKiBvbmx5IFVQ REFURSB2YXJpYWJsZSkuIEluIHRoaXMgY2FzZSB0aGUgcGVybWlzc2lvbiBjaGVjaworCQkJICog aXMgZXhlY3V0ZWQgaW4gd3JpdGUgdGltZS4KKwkJCSAqLworCQkJaWYgKHZhcmlkICE9IHF1ZXJ5 RGVzYy0+cGxhbm5lZHN0bXQtPmV4Y2xTZWxlY3RQZXJtQ2hlY2tWYXJpZCkKKwkJCXsKKwkJCQlB Y2xSZXN1bHQJYWNscmVzdWx0OwogCi0JCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFy aWFibGVSZWxhdGlvbklkLCB2YXJpZCwKLQkJCQkJCQkJCQlHZXRVc2VySWQoKSwgQUNMX1NFTEVD VCk7Ci0JCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQotCQkJCWFjbGNoZWNrX2Vycm9y KGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAotCQkJCQkJCSAgIGdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUodmFyaWQpKTsKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1Qp OworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9y KGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CiAKIAkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXNbaV0udmFsdWUgPQogCQkJCUdldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKaW5kZXggY2Q2MDljNmU0NzkuLjU3NTM2NWVlZmNkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YwpAQCAtNDM3OCw2ICs0Mzc4LDE2IEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwo Tm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBU X0xldFN0bXQ6CisJCQl7CisJCQkJTGV0U3RtdCAgICAqc3RtdCA9IChMZXRTdG10ICopIG5vZGU7 CisKKwkJCQlpZiAoV0FMSyhzdG10LT50YXJnZXQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlp ZiAoV0FMSyhzdG10LT5xdWVyeSkpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7 CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CiAJCQl7CiAJCQkJUExBc3NpZ25TdG10ICpzdG10ID0g KFBMQXNzaWduU3RtdCAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmlu ZGV4IDcxNGY1OGJkM2Q3Li43YTIyOWQ3OWRhZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Bs YW5uZXIuYwpAQCAtMzQ0LDYgKzM0NCwyMCBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJz ZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlnbG9iLT5w YXJ0aXRpb25fZGlyZWN0b3J5ID0gTlVMTDsKIAlnbG9iLT5zZXNzaW9uVmFyaWFibGVzID0gTklM OwogCisJLyoKKwkgKiBUaGUgKHNlc3Npb24pIHJlc3VsdCB2YXJpYWJsZSBzaG91bGQgYmUgc3Rv cmVkIHRvIGdsb2JhbCwgYmVjYXVzZQorCSAqIGl0IGlzIG5vdCBzZXQgaW4gc3VicXVlcnkuICBX aGVuIHRoaXMgdmFyaWFibGUgaXMgdXNlZCBvdGhlciB0aGFuCisJICogaW4gYmFzZSBub2RlIG9m IGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24sIHdlIG5lZWQgdG8gY2hlY2sgdGhlIGFjY2VzcworCSAq IHJpZ2h0cyAoYW5kIHRoZW4gd2UgbmVlZCB0byBkZXRlY3QgdGhpcyBzaXR1YXRpb24pLiBUaGUg dmFyaWFibGUgdXNlZAorCSAqIGxpa2UgYmFzZSBub2RlIGNhbm5vdCBiZSBkaWZmZXJlbnQgdGhh biB0YXJnZXQgKHJlc3VsdCkgdmFyaWFibGUuCisJICogQmVjYXVzZSB3ZSBrbm93IHRoZSByZXN1 bHQgdmFyaWFibGUgYmVmb3JlIHBsYW5uZXIgaW52b2NhdGlvbiwgd2UKKwkgKiBjYW4gc2ltcGx5 IHNlYXJjaCBvZiB1c2FnZSBqdXN0IHRoaXMgdmFyaWFibGUsIGFuZCB3ZSBkb24ndCBuZWVkIHRv CisJICogdG8gd2FpdCB1bnRpbCB0aGUgZW5kIG9mIHBsYW5uaW5nIHdoZW4gd2Uga25vdyBiYXNl bm9kZVNlc3Npb25WYXJpZC4KKwkgKi8KKwlnbG9iLT5yZXN1bHRWYXJpYWJsZSA9IHBhcnNlLT5y ZXN1bHRWYXJpYWJsZTsKKwlnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IEludmFsaWRPaWQ7 CisJZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2sgPSBmYWxzZTsKKwogCS8qCiAJ ICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3Ig dGhpcyBxdWVyeS4gV2UKIAkgKiBjYW4ndCBkbyB0aGlzIGluIGEgc3RhbmRhbG9uZSBiYWNrZW5k LCBvciBpZiB0aGUgY29tbWFuZCB3aWxsIHRyeSB0bwpAQCAtNTgzLDYgKzU5NywxNyBAQCBzdGFu ZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQg Y3Vyc29yT3B0aW9ucywKIAogCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Np b25WYXJpYWJsZXM7CiAKKwkvKgorCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgKGFuZCBv bmx5IHVzZWQpIGxpa2UgYmFzZSBub2RlCisJICogZm9yIGFzc2lnbmVtbnQgaW5kaXJlY3Rpb24g c2hvdWxkIGJlIGV4Y2x1ZGVkIGZyb20gcGVybWlzc2lvbgorCSAqIGNoZWNrLgorCSAqLworCWlm IChPaWRJc1ZhbGlkKGdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSAmJgorCQkoIWdsb2ItPmJh c2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNrKSkKKwkJcmVzdWx0LT5leGNsU2VsZWN0UGVybUNo ZWNrVmFyaWQgPSBnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZDsKKwllbHNlCisJCXJlc3VsdC0+ ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkID0gSW52YWxpZE9pZDsKKwogCXJlc3VsdC0+c3RtdF9s b2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJz ZS0+c3RtdF9sZW47CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Nl dHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRleCA2Yzg2 ZWUxYWQ2NC4uMDkxMDllODBiMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w bGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMK QEAgLTIyMjQsNiArMjIyNCwyOCBAQCBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwg UGFyYW0gKnApCiAJCQlwLT5wYXJhbWlkID0gbjsKIAkJfQogCisJCS8qCisJCSAqIFdlIGRvIFNF TEVDVCBwZXJtaXNzaW9uIGNoZWNrIG9mIGFsbCB2YXJpYWJsZXMgdXNlZCBieQorCQkgKiB0aGUg cXVlcnkgZXhjbHVkaW5nIHRoZSB2YXJpYWJsZSB0aGF0IGlzIHVzZWQgb25seSBhcyBiYXNlIG5v ZGUKKwkJICogb2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbi4gVGhlIHZhcmlhYmxlIGlkIGFzc2ln bmVkIHRvIHRoaXMgcGFyYW0KKwkJICogc2hvdWxkIGJlIHNhbWUgbGlrZSByZXN1bHRWYXJpYWJs ZSBpZCwgYW5kIHRoaXMgcGFyYW0gc2hvdWxkIGJlCisJCSAqIHVzZWQgb25seSBvbmNlIGluIHF1 ZXJ5LiBXaGVuIHRoZSB2YXJpYWJsZSBpcyByZWZlcmVuY2VkIGJ5IGFueQorCQkgKiBvdGhlciBw YXJhbSwgd2Ugc2hvdWxkIHRvIGRvIFNFTEVDVCBwZXJtaXNzaW9uIGNoZWNrIGZvciB0aGlzIHZh cmlhYmxlCisJCSAqIHRvby4KKwkJICovCisJCWlmIChwLT5wYXJhbWJhc2Vub2RlKQorCQl7CisJ CQlBc3NlcnQoIU9pZElzVmFsaWQocm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQpKTsK KwkJCUFzc2VydChyb290LT5nbG9iLT5yZXN1bHRWYXJpYWJsZSA9PSBwLT5wYXJhbXZhcmlkKTsK KworCQkJcm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQgPSBwLT5wYXJhbXZhcmlkOwor CQl9CisJCWVsc2UKKwkJeworCQkJaWYgKHAtPnBhcmFtdmFyaWQgPT0gcm9vdC0+Z2xvYi0+cmVz dWx0VmFyaWFibGUpCisJCQkJcm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hl Y2sgPSB0cnVlOworCQl9CisKIAkJcmV0dXJuIChOb2RlICopIHA7CiAJfQogCkBAIC0zNzA5LDcg KzM3MzEsNyBAQCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3Qs IE9pZCB0eXBpZCkKIAogLyoKICAqIFJlY29yZCBkZXBlbmRlbmN5IG9uIGEgc2Vzc2lvbiB2YXJp YWJsZS4gIFRoZSB2YXJpYWJsZSBjYW4gYmUgdXNlZCBhcyBhCi0gKiBzZXNzaW9uIHZhcmlhYmxl IGluIGFuIGV4cHJlc3Npb24gbGlzdC4KKyAqIHNlc3Npb24gdmFyaWFibGUgaW4gYW4gZXhwcmVz c2lvbiBsaXN0LCBvciBhcyB0aGUgdGFyZ2V0IG9mIGEgTEVUIHN0YXRlbWVudC4KICAqLwogc3Rh dGljIHZvaWQKIHJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJv b3QsIE9pZCB2YXJpZCkKQEAgLTM4MTEsOSArMzgzMyw5IEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5k ZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCX0KIAog CQkJLyoKLQkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9z ZSAoc3VjaCBhcyBFWFBMQUlOKQotCQkJICogdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3Qt cGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwgd2UKLQkJCSAqIGp1c3QgbmVlZCB0byB0cmFuc2Zl ciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCisJCQkgKiBJZ25vcmUgb3Ro ZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTgorCQkJ ICogb3IgTEVUKSB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5LiAg Rm9yIHRob3NlLAorCQkJICogd2UganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRpb24g dG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkgPSBVdGlsaXR5Q29udGFp bnNRdWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5ID09IE5VTEwpCkBAIC0z ODM2LDYgKzM4NTgsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUg Km5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5kX29pZChjb250ZXh0LT5n bG9iLT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJLyogcmVjb3JkIGRlcGVu ZGVuY3kgb24gdGhlIHRhcmdldCB2YXJpYWJsZSBvZiBhIExFVCBjb21tYW5kICovCisJCWlmIChP aWRJc1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNvcmRfcGxhbl92YXJpYWJs ZV9kZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSk7CisKIAkJLyogQW5k IHJlY3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAqLwogCQlyZXR1cm4gcXVl cnlfdHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlciwK IAkJCQkJCQkJIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggMGQ1ZWZlYTVjYTku LjNjMzc4NWI2ZDE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUg InV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0 aWxzL3N5c2NhY2hlLmgiCiAKIApAQCAtODMsNiArODQsOCBAQCBzdGF0aWMgUXVlcnkgKnRyYW5z Zm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQ3Jl YXRlVGFibGVBc1N0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1DYWxsU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCUNhbGxTdG10ICpzdG10KTsKK3N0YXRpYyBRdWVy eSAqdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJICAgTGV0U3Rt dCAqc3RtdCk7CiBzdGF0aWMgdm9pZCB0cmFuc2Zvcm1Mb2NraW5nQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgUXVlcnkgKnFyeSwKIAkJCQkJCQkJICAgTG9ja2luZ0NsYXVzZSAqbGMsIGJvb2wg cHVzaGVkRG93bik7CiAjaWZkZWYgREVCVUdfTk9ERV9URVNUU19FTkFCTEVECkBAIC00MDksNiAr NDEyLDcgQEAgdHJhbnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJl ZSkKIAkJCWNhc2UgVF9VcGRhdGVTdG10OgogCQkJY2FzZSBUX0RlbGV0ZVN0bXQ6CiAJCQljYXNl IFRfTWVyZ2VTdG10OgorCQkJY2FzZSBUX0xldFN0bXQ6CiAJCQkJKHZvaWQpIHRlc3RfcmF3X2V4 cHJlc3Npb25fY292ZXJhZ2UocGFyc2VUcmVlLCBOVUxMKTsKIAkJCQlicmVhazsKIAkJCWRlZmF1 bHQ6CkBAIC00ODgsNiArNDkyLDExIEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpwYXJzZVRyZWUpCiAJCQkJCQkJCQkgICAoQ2FsbFN0bXQgKikgcGFyc2VUcmVlKTsK IAkJCWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcmVzdWx0ID0gdHJhbnNmb3JtTGV0 U3RtdChwc3RhdGUsCisJCQkJCQkJCQkgIChMZXRTdG10ICopIHBhcnNlVHJlZSk7CisJCQlicmVh azsKKwogCQlkZWZhdWx0OgogCiAJCQkvKgpAQCAtNTQwLDYgKzU0OSw3IEBAIHN0bXRfcmVxdWly ZXNfcGFyc2VfYW5hbHlzaXMoUmF3U3RtdCAqcGFyc2VUcmVlKQogCQljYXNlIFRfU2VsZWN0U3Rt dDoKIAkJY2FzZSBUX1JldHVyblN0bXQ6CiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2Ug VF9MZXRTdG10OgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJCWJyZWFrOwogCkBAIC0zNDQyLDYgKzM0 NTIsMjM0IEBAIHRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0bXQg KnN0bXQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0bXQgLQor ICoJICB0cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkgKgordHJh bnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7CisJUXVl cnkJICAgKnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhwckxpc3QgPSBO SUw7CisJTGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCUxp c3RDZWxsICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpzZWxlY3RRdWVy eTsKKwlPaWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90 X3VuaXF1ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBt b2Q7CisJT2lkCQkJY29sbGlkOworCUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlpbnQJCQlpbmRp cmVjdGlvbl9zdGFydDsKKwlpbnQJCQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0IGJlIGFueSBv dXRlciBXSVRIIHRvIHdvcnJ5IGFib3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9jdGVuYW1lc3Bh Y2UgPT0gTklMKTsKKworCW5hbWVzID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJnZXQpOworCisJ LyogbG9ja3MgdGhlIHZhcmlhYmxlIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICovCisJdmFyaWQg PSBJZGVudGlmeVZhcmlhYmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7 CisJaWYgKG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09E RV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wiIG9mIExF VCBjb21tYW5kIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSks CisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJ aWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUg XCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAor CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCS8q CisJICogQ2FsY3VsYXRlIHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGluZGlyZWN0 aW9uIGluIGxpc3QsIGFuZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBzdG9yZSBw b2ludGVyIG9uIGZpcnN0IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJlY3Rpb25f c3RhcnQgPSBsaXN0X2xlbmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJaWYgKGxp c3RfbGVuZ3RoKHN0bXQtPnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5kaXJlY3Rp b25faGVhZCA9IGxpc3RfbnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9zdGFydCk7 CisKKwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBp ZCwgJnR5cG1vZCwgJmNvbGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0eXBlKHR5 cGlkKTsKKworCWlmIChhdHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJj YW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiBiZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCWF0 dHJuYW1lLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCks CisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBS X0tJTkRfVVBEQVRFX1RBUkdFVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVyc2lv biBvZiAidW5rbm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zID0g ZmFsc2U7CisKKwlzZWxlY3RRdWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10LT5xdWVy eSk7CisKKwkvKiB0aGUgZ3JhbW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVDVCAqLwor CUFzc2VydChJc0Eoc2VsZWN0UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29tbWFuZFR5 cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Npb24gbGlz dCBmb3IgdGhlIExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZSBub24tcmVzanVuaworCSAqIGNvbHVt bnMgZnJvbSB0aGUgc3VicXVlcnkuCisJICovCisJZXhwckxpc3QgPSBOSUw7CisJZm9yZWFjaF9u b2RlKFRhcmdldEVudHJ5LCB0bGUsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJaWYg KHRsZS0+cmVzanVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVuZChleHBy TGlzdCwgdGxlLT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVtbiByZXN1 bHQgKi8KKwlpZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFs KCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAi YXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIGxp c3RfbGVuZ3RoKGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCkpLAor CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKChO b2RlICopIGV4cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZvcmVhY2go bGMsIGV4cHJMaXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7 CisJCUV4cHIJICAgKmNvZXJjZWRfZXhwcjsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJCS8qIG5v dyB3ZSBjYW4gcmVhZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBydHlwaWQg PSBleHByVHlwZSgoTm9kZSAqKSBleHByKTsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJ eworCQkJYm9vbAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisJCQlQ YXJhbQkgICAqcGFyYW07CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVtZW50X3R5 cGUodHlwaWQpKTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOwor CisJCQlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJB TV9WQVJJQUJMRTsKKwkJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCQlwYXJhbS0+cGFy YW10eXBlID0gdHlwaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisKKwkJCS8q CisJCQkgKiBUaGUgcGFyYW1ldGVyIHVzZWQgYXMgYmFzZW5vZGUgaGFzIHRvIGhhdmUgc3BlY2lh bAorCQkJICogbWFyaywgYmVjYXVzZSByZXF1aXJlcyBzcGVjaWFsIGFjY2VzcyB3aGVuIHdlIGRv CisJCQkgKiBTRUxFQ1QgYWNjZXNzIGNoZWNrLgorCQkJICovCisJCQlwYXJhbS0+cGFyYW1iYXNl bm9kZSA9IHRydWU7CisKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJdHJhbnNmb3Jt QXNzaWdubWVudEluZGlyZWN0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgcGFy YW0sCisJCQkJCQkJCQkJCSAgIHRhcmdldE5hbWUsCisJCQkJCQkJCQkJCSAgIHRhcmdldElzQXJy YXksCisJCQkJCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJ CQkJCSAgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPnRhcmdldCwKKwkJCQkJCQkJ CQkJICAgaW5kaXJlY3Rpb25faGVhZCwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgZXhwciwKKwkJ CQkJCQkJCQkJICAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+bG9j YXRpb24pOworCQl9CisJCWVsc2UKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJY29l cmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCSAgKE5vZGUgKikgZXhwciwKKwkJ CQkJCQkJCSAgZXhwcnR5cGlkLAorCQkJCQkJCQkJICB0eXBpZCwgdHlwbW9kLAorCQkJCQkJCQkJ ICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwK KwkJCQkJCQkJCSAgc3RtdC0+bG9jYXRpb24pOworCisJCWlmIChjb2VyY2VkX2V4cHIgPT0gTlVM TCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlT TUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSAlcywg YnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1l KGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSwK KwkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHBydHlwaWQpKSwKKwkJCQkJIGVycmhpbnQoIllvdSB3 aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLiIpLAorCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIGV4cHIpKSkpOwor CisJCWV4cHJMaXN0Q29lciA9IGxhcHBlbmQoZXhwckxpc3RDb2VyLCBjb2VyY2VkX2V4cHIpOwor CX0KKworCS8qIGdlbmVyYXRlIHF1ZXJ5J3MgdGFyZ2V0IGxpc3QgdXNpbmcgdGhlIGNvbXB1dGVk IGxpc3Qgb2YgZXhwcmVzc2lvbnMgKi8KKwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlxdWVy eS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOworCisJZm9yZWFjaChsYywgZXhwckxpc3RDb2Vy KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJCVRhcmdldEVu dHJ5ICp0bGU7CisKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJCQkJICBpICsg MSwKKwkJCQkJCQkgIEZpZ3VyZUNvbG5hbWUoKE5vZGUgKikgZXhwciksCisJCQkJCQkJICBmYWxz ZSk7CisJCXF1ZXJ5LT50YXJnZXRMaXN0ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0TGlzdCwgdGxl KTsKKwl9CisKKwkvKiBkb25lIGJ1aWxkaW5nIHRoZSByYW5nZSB0YWJsZSBhbmQgam9pbnRyZWUg Ki8KKwlxdWVyeS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+am9pbnRyZWUg PSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKKworCXF1ZXJ5LT5oYXNU YXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CisJcXVlcnktPmhhc1N1Ykxpbmtz ID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKKwkvKiB0aGlzIGlzIHRvcC1sZXZlbCBx dWVyeSAqLworCXF1ZXJ5LT5jYW5TZXRUYWcgPSB0cnVlOworCisJLyoKKwkgKiBTYXZlIHRhcmdl dCBzZXNzaW9uIHZhcmlhYmxlIElELiBJdCBpcyB1c2VkIGxhdGVyIGZvcgorCSAqIGFjcXVpcmlu ZyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24gdGFyZ2V0IHZhcmlhYmxlLCBzZXR0aW5nCisJICogcGxh biBkZXBlbmRlbmN5IGFuZCBmaW5hbGx5IGZvciBjcmVhdGluZyBWYXJpYWJsZURlc3RSZWNlaXZl ci4KKwkgKi8KKwlxdWVyeS0+cmVzdWx0VmFyaWFibGUgPSB2YXJpZDsKKworCWFzc2lnbl9xdWVy eV9jb2xsYXRpb25zKHBzdGF0ZSwgcXVlcnkpOworCisJLyoKKwkgKiBUaGUgcXVlcnkgaXMgZXhl Y3V0ZWQgYXMgdXRpbGl0eSBjb21tYW5kIGJ5IG5lc3RlZCBleGVjdXRvciBjYWxsLgorCSAqIEFz c2lnbmVkIHF1ZXJ5SWQgaXMgcmVxdWlyZWQgaW4gdGhpcyBjYXNlLgorCSAqLworCWlmIChJc1F1 ZXJ5SWRFbmFibGVkKCkpCisJCUp1bWJsZVF1ZXJ5KHF1ZXJ5KTsKKworCXN0bXQtPnF1ZXJ5ID0g KE5vZGUgKikgcXVlcnk7CisKKwkvKiByZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5 IFF1ZXJ5ICovCisJcmVzdWx0ID0gbWFrZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+Y29tbWFuZFR5 cGUgPSBDTURfVVRJTElUWTsKKwlyZXN1bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUgKikgc3RtdDsK KworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBQcm9kdWNlIGEgc3RyaW5nIHJlcHJlc2Vu dGF0aW9uIG9mIGEgTG9ja0NsYXVzZVN0cmVuZ3RoIHZhbHVlLgogICogVGhpcyBzaG91bGQgb25s eSBiZSBhcHBsaWVkIHRvIHZhbGlkIHZhbHVlcyAobm90IExDU19OT05FKS4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDI4YmQyNmNjOTIyLi43NTBjZjUxNzFkOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yOTcsNyArMjk3 LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJRHJvcFRyYW5zZm9ybVN0bXQKIAkJRHJv cFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKIAkJR3JhbnRTdG10IEdyYW50 Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5kZXhTdG10IEluc2VydFN0bXQKLQkJ TGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWlu YWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKKwkJTGV0U3RtdCBMaXN0ZW5TdG10IExvYWRTdG10IExv Y2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3Rt dAogCQlDcmVhdGVGdW5jdGlvblN0bXQgQWx0ZXJGdW5jdGlvblN0bXQgUmVpbmRleFN0bXQgUmVt b3ZlQWdnclN0bXQKIAkJUmVtb3ZlRnVuY1N0bXQgUmVtb3ZlT3BlclN0bXQgUmVuYW1lU3RtdCBS ZXR1cm5TdG10IFJldm9rZVN0bXQgUmV2b2tlUm9sZVN0bXQKIAkJUnVsZUFjdGlvblN0bXQgUnVs ZUFjdGlvblN0bXRPckVtcHR5IFJ1bGVTdG10CkBAIC03NDIsNyArNzQyLDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKIAlLRUVQIEtFWSBLRVlTCiAKIAlMQUJFTCBMQU5HVUFHRSBMQVJHRV9Q IExBU1RfUCBMQVRFUkFMX1AKLQlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJ S0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKKwlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZU IExFVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FM VElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAKIAlNQVBQSU5HIE1BVENI IE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FDVElPTiBNRVRIT0QK QEAgLTEwODksNiArMTA4OSw3IEBAIHN0bXQ6CiAJCQl8IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10 CiAJCQl8IEluZGV4U3RtdAogCQkJfCBJbnNlcnRTdG10CisJCQl8IExldFN0bXQKIAkJCXwgTGlz dGVuU3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKIAkJCXwgTG9hZFN0bXQKQEAgLTEyODY4 LDYgKzEyODY5LDM4IEBAIG9wdF9ob2xkOiAvKiBFTVBUWSAqLwkJCQkJCXsgJCQgPSAwOyB9CiAJ CQl8IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9IDA7IH0KIAkJOwogCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKyAqCisgKgkJUVVFUlk6CisgKgkJCQlMRVQgU1RBVEVNRU5UCisgKgorICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworTGV0U3RtdDoJTEVUIENvbElkIG9wdF9pbmRpcmVjdGlvbiAnPScgYV9l eHByCisJCQkJeworCQkJCQlMZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJ CVNlbGVjdFN0bXQgKnNlbGVjdDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRh cmdldCA9IGxjb25zKG1ha2VTdHJpbmcoJDIpLAorCQkJCQkJCQkJICBjaGVja19pbmRpcmVjdGlv bigkMywgeXlzY2FubmVyKSk7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2VsZWN0U3RtdCk7 CisJCQkJCXJlcyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyogY3JlYXRlIHRhcmdl dCBsaXN0IGZvciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBOVUxMOworCQkJ CQlyZXMtPmluZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChOb2RlICopICQ1Owor CQkJCQlyZXMtPmxvY2F0aW9uID0gQDU7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRMaXN0ID0gbGlz dF9tYWtlMShyZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsKKworCQkJCQlu LT5sb2NhdGlvbiA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgogICoKICAqCQlRVUVSWToKQEAgLTE3OTcwLDYgKzE4MDAzLDcg QEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMQVJHRV9QCiAJCQl8IExBU1RfUAogCQkJfCBM RUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJU1RFTgogCQkJfCBMT0FECkBA IC0xODU4NCw2ICsxODYxOCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTEVBS1BST09G CiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJS0UK IAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3Ny Yy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDc4MmIwMjJkYTljLi4yMGU0ZDQzNTc2YiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMKQEAgLTIzNSw2ICsyMzUsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5k QXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10OgogCQljYXNl IFRfRG9TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAqIENvbW1h bmRzIGluc2lkZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWlnaHQKQEAg LTEwNjcsNiArMTA2OCwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAq cHN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlFeGVjdXRl TGV0U3RtdChwc3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJCQkJICAg cXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwgb3RoZXIg c3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQcm9jZXNz VXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yMjA2LDYgKzIyMTIs MTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJldHVybiBV dGlsaXR5Q29udGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBxcnk7CiAK KwkJY2FzZSBUX0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRTdG10ICop IHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoKIAkJCXJl dHVybiBOVUxMOwogCX0KQEAgLTI0MDQsNiArMjQxNCwxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5v ZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsKIAorCQlj YXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwogCQkJLyog dXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAqLwogCQlj YXNlIFRfVHJhbnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzI4OSw2ICszMzAzLDcgQEAgR2V0Q29t bWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9QTEFz c2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQli cmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCBjYTkyYmU5YTZhZS4u NTk0NjljNTJhYmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNo ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC0yMDMwLDYg KzIwMzAsMTcgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9vbCBhY3F1 aXJlKQogCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwgJmFj cXVpcmUsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJfQorCisJLyogcHJv Y2VzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBhcnNldHJlZS0+cmVz dWx0VmFyaWFibGUpKQorCXsKKwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0YWJhc2VPYmplY3Qo VmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCSAg IDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZh cmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkJIDAs IEFjY2Vzc1NoYXJlTG9jayk7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IDdmZTE5YTU2OGYxLi4zOWQxYjZhYTYxMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTIy OCw4ICsxMjI4LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNxbF9jb21tYW5kc1tdID0g ewogCSJBQk9SVCIsICJBTFRFUiIsICJBTkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAiQ0hFQ0tQ T0lOVCIsICJDTE9TRSIsICJDTFVTVEVSIiwKIAkiQ09NTUVOVCIsICJDT01NSVQiLCAiQ09QWSIs ICJDUkVBVEUiLCAiREVBTExPQ0FURSIsICJERUNMQVJFIiwKIAkiREVMRVRFIEZST00iLCAiRElT Q0FSRCIsICJETyIsICJEUk9QIiwgIkVORCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAotCSJGRVRD SCIsICJHUkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTElT VEVOIiwgIkxPQUQiLCAiTE9DSyIsCi0JIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAi UFJFUEFSRSIsCisJIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJ TlNFUlQgSU5UTyIsICJMRVQiLAorCSJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1FUkdFIElO VE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCiAJIlJFQVNTSUdOIiwgIlJFRlJFU0gg TUFURVJJQUxJWkVEIFZJRVciLCAiUkVJTkRFWCIsICJSRUxFQVNFIiwKIAkiUkVTRVQiLCAiUkVW T0tFIiwgIlJPTExCQUNLIiwKIAkiU0FWRVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwgIlNFTEVD VCIsICJTRVQiLCAiU0hPVyIsICJTVEFSVCIsCkBAIC00NzAxLDYgKzQ3MDEsMTQgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZB TFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09NUExFVEVf V0lUSCgiKCIpOwogCisvKiBMRVQgKi8KKwkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdnZXN0 IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwkJQ09N UExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwkv KiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAqLworCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJMRVQiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIj0iKTsKKwogLyogTE9DSyAq LwogCS8qIENvbXBsZXRlIExPQ0sgW1RBQkxFXSBbT05MWV0gd2l0aCBhIGxpc3Qgb2YgdGFibGVz ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiTE9DSyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCmluZGV4IDlmNWM2ZTMwZmJkLi4yZWJlODQ3Nzc4OSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMTcsMTEgKzE3LDE2IEBACiAKICNpbmNs dWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9k ZS5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcmFtcy5oIgogI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9k ZXMuaCIKKyNpbmNsdWRlICJ0Y29wL2NtZHRhZy5oIgogCiBleHRlcm4gdm9pZCBTZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERh dHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCk7CiAKIGV4dGVy biBPYmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl U2Vzc2lvblZhclN0bXQgKnN0bXQpOwogCitleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJ CQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwor CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA3NmNkZTI0NmY2My4uOGM1MDhiODUx ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE0Nyw2ICsxNDcsOSBAQCB0eXBlZGVmIHN0 cnVjdCBRdWVyeQogCSAqLwogCWludAkJCXJlc3VsdFJlbGF0aW9uIHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKIAorCS8qIHRhcmdldCB2YXJpYWJsZSBvZiBMRVQgc3RhdGVtZW50 ICovCisJT2lkCQkJcmVzdWx0VmFyaWFibGU7CisKIAkvKiBoYXMgYWdncmVnYXRlcyBpbiB0bGlz dCBvciBoYXZpbmdRdWFsICovCiAJYm9vbAkJaGFzQWdncyBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7CiAJLyogaGFzIHdpbmRvdyBmdW5jdGlvbnMgaW4gdGxpc3QgKi8KQEAgLTIx NjYsNiArMjE2OSwxOCBAQCB0eXBlZGVmIHN0cnVjdCBNZXJnZVN0bXQKIAlQYXJzZUxvYwlzdG10 X2xlbjsJCS8qIGxlbmd0aCBpbiBieXRlczsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCiB9 IE1lcmdlU3RtdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCUxldCBTdGF0ZW1l bnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgTGV0U3Rt dAoreworCU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJp YWJsZSAqLworCU5vZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJUGFy c2VMb2MJbG9jYXRpb247Cit9IExldFN0bXQ7CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAqCQlTZWxlY3QgU3RhdGVtZW50CiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAppbmRleCBlYzU2ODVk Zjc3OS4uNGIwYzYyNTYxOWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0xODIsNiArMTgyLDE1 IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZXJHbG9iYWwKIAogCS8qIGxpc3Qgb2YgdXNlZCBzZXNz aW9uIHZhcmlhYmxlcyAqLwogCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisKKwkvKiBPaWQg b2Ygc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIGxpa2UgdGFyZ2V0IG9mIExFVCBjb21tYW5kICovCisJ T2lkCQkJcmVzdWx0VmFyaWFibGU7CisKKwkvKiBvaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSB1c2Vk IGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25tZW50IGluZGlyZWN0aW9uICovCisJT2lkCQkJYmFz ZW5vZGVTZXNzaW9uVmFyaWQ7CisKKwkvKiB0cnVlLCBpZiB3ZSBkbyBTRUxFQ1QgcGVybWlzc2lv biBjaGVjayBvbiBiYXNlbm9kZVNlc3Npb25WYXJpZCAqLworCWJvb2wJCWJhc2Vub2RlU2Vzc2lv blZhclNlbGVjdENoZWNrOwogfSBQbGFubmVyR2xvYmFsOwogCiAvKiBtYWNybyBmb3IgZmV0Y2hp bmcgdGhlIFBsYW4gYXNzb2NpYXRlZCB3aXRoIGEgU3ViUGxhbiBub2RlICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oCmluZGV4IDM2MjI2OTljZmM5Li5kZWU3ZTY5MTVhMyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVz LmgKQEAgLTEzNCw2ICsxMzQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAkvKiBP SURzIGZvciBQQVJBTV9WQVJJQUJMRSBQYXJhbXMgKi8KIAlMaXN0CSAgICpzZXNzaW9uVmFyaWFi bGVzOwogCisJLyoKKwkgKiBUaGUgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgZXhlY2x1ZGVkIGZy b20gcGVybWlzc2lvbiBjaGVjay4KKwkgKiBUaGlzIHNlc3Npb24gdmFyaWFibGUgaXMgdXNlZCBh cyBiYXNlIG5vZGUgb2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbgorCSAqIChhbmQgaXQgaXMgdXNl ZCBvbmx5IHRoZXJlKS4KKwkgKi8KKwlpbnQJCQlleGNsU2VsZWN0UGVybUNoZWNrVmFyaWQ7CisK IAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24gaW4gc291cmNlIHN0cmluZyAoY29waWVkIGZyb20gUXVl cnkpICovCiAJLyogc3RhcnQgbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxv YwlzdG10X2xvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCAyYjFiM2FjOGEzMy4uNDIz OTYzYWI0MmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC00MDIsNiArNDAyLDE1IEBAIHR5cGVk ZWYgc3RydWN0IFBhcmFtCiAJT2lkCQkJcGFyYW1jb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1 bWJsZV9pZ25vcmUpOwogCS8qIE9JRCBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGUgb3IgSW52YWxp ZE9pZCBpZiBub25lICovCiAJT2lkCQkJcGFyYW12YXJpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7CisKKwkvKgorCSAqIHRydWUgaWYgcGFyYW0gaXMgdXNlZCBhcyBiYXNlIG5v ZGUgb2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbgorCSAqICh3aGVuIHRhcmdldCBvZiBMRVQgc3Rh dGVtZW50IGlzIGFuIGFycmF5IGZpZWxkIG9yIGFuIHJlY29yZCBmaWVsZCkuCisJICogRm9yIHRo aXMgcGFyYW0gd2UgZG8gbm90IGNoZWNrIFNFTEVDVCBhY2Nlc3MgcmlnaHQsIGJlY2F1c2UgdGhp cworCSAqIHBhcmFtIGlzIHVzZWQganVzdCBmb3IgZXhlY3V0aW9uIG9mIGFuIG1vZGlmeSBvcGVy YXRpb24uCisJICovCisJYm9vbAkJcGFyYW1iYXNlbm9kZTsKKwogCS8qIHRva2VuIGxvY2F0aW9u LCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBhcmFtOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCmluZGV4IDBlYTAyNjVkZTdjLi44YzBhZmZiYTEzYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aApAQCAtMjU3LDYgKzI1Nyw3IEBAIFBHX0tFWVdPUkQoImxlYWRpbmciLCBMRUFESU5HLCBSRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVha3Byb29mIiwgTEVBS1BS T09GLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFzdCIs IExFQVNULCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVmdCIs IExFRlQsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJs ZXQiLCBMRVQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxl dmVsIiwgTEVWRUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo Imxpa2UiLCBMSUtFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgibGltaXQiLCBMSU1JVCwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oCmluZGV4IGVhODY5NTRkZGVkLi4yMjA4MmMzMDAwOCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmgKQEAgLTE4Niw2ICsxODYsNyBAQCBQR19DTURUQUcoQ01EVEFHX0dSQU5ULCAiR1JBTlQi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0dSQU5UX1JPTEUsICJHUkFO VCBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU1QT1JUX0ZP UkVJR05fU0NIRU1BLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19JTlNFUlQsICJJTlNFUlQiLCBmYWxzZSwgZmFsc2UsIHRydWUp CitQR19DTURUQUcoQ01EVEFHX0xFVCwgIkxFVCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0xJU1RFTiwgIkxJU1RFTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0xPQUQsICJMT0FEIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfTE9DS19UQUJMRSwgIkxPQ0sgVEFCTEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19k bWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwu b3V0CmluZGV4IDNlMjEwNTlhY2MyLi4wZmRmMGZkYzY4YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dApAQCAtMTg5LDMgKzE4 OSwyNjEgQEAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBzdmFydGVzdF9kbWwudGVzdHRhYgogRFJP UCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKIERST1AgVkFSSUFCTEUgc2Vz dmFyNDA7CiBEUk9QIFRBQkxFIHN2YXJ0ZXN0X2RtbDsKK0NSRUFURSBWQVJJQUJMRSBzZXN2YXI0 MyBBUyBudW1lcmljOworLS0gTEVUIHN0bXQgaXMgbm90IGFsbG93ZWQgaW5zaWRlIENURQorV0lU SCB4IEFTIChMRVQgc2VzdmFyNDMgPSAzLjE0KSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJPUjogIHN5 bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVUIHNlc3Zh cjQzID0gMy4xNCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAgICAgICAgIF4KKy0tIExF VCBzdG10IHJlcXVpcmVzIHJlc3VsdCB3aXRoIGV4YWN0bHkgb25lIHJvdworTEVUIHNlc3ZhcjQz ID0gZ2VuZXJhdGVfc2VyaWVzKDEsMSk7CistLSBzaG91bGQgZmFpbAorTEVUIHNlc3ZhcjQzID0g Z2VuZXJhdGVfc2VyaWVzKDEsMik7CitFUlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0 aGFuIG9uZSByb3cKK0xFVCBzZXN2YXI0MyA9IGdlbmVyYXRlX3NlcmllcygxLDApOworRVJST1I6 ICBleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1s OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCBBUyB2YXJjaGFyOworQ1JF QVRFIFRZUEUgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlIEFTIChhIGludCwgYiBpbnQsIGMg aW50KTsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDUgQVMgc3ZhcnRlc3Rf ZG1sLmNvbXBvc2l0ZV90eXBlOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3Rf ZG1sLmZ4MDEobnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAkJAorTEVUIHNlc3ZhcjQzID0gJDE7 CiskJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9k bWwuZngwMigpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0 Myk7CiskJCBMQU5HVUFHRSBzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDEoMy4xNCk7Cisg ZngwMSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDIoKSwg VkFSSUFCTEUoc2VzdmFyNDMpOworIGZ4MDIgfCBzZXN2YXI0MyAKKy0tLS0tLSstLS0tLS0tLS0t CisgMy4xNCB8ICAgICAzLjE0CisoMSByb3cpCisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHN2YXJ0ZXN0X2RtbC5meDAzKHMgdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJAorQkVH SU4KKyAgTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJMRShz dmFydGVzdF9kbWwuc2VzdmFyNDQpOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNU IHN2YXJ0ZXN0X2RtbC5meDAzKCdIZWxsbycpOworIGZ4MDMgIAorLS0tLS0tLQorIEhlbGxvCiso MSByb3cpCisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA0KHMg dmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJAorQkVHSU4KKyAgTEVUIHNlc3ZhcjQ0ID0g czsKKyAgUkVUVVJOIFZBUklBQkxFKHNlc3ZhcjQ0KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3Nx bAorU0VUIFNFQVJDSF9QQVRIIFRPICdzdmFydGVzdF9kbWwnOworU0VMRUNUIHN2YXJ0ZXN0X2Rt bC5meDA0KCdIZWxsbycpOworIGZ4MDQgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA1KGEgaW50LCBiIGludCwg YyBpbnQpCitSRVRVUk5TIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVfdHlwZSBBUyAkJAorQkVHSU4K KyAgTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVyhhLCBiLCBjKTsKKyAgUkVUVVJOIFZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3Fs OworU0VMRUNUIHJvd190b19qc29uKHN2YXJ0ZXN0X2RtbC5meDA1KDEwLCAyMCwgMzApKTsKKyAg ICAgIHJvd190b19qc29uICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjox MCwiYiI6MjAsImMiOjMwfQorKDEgcm93KQorCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ1KTsKKyAgc2VzdmFyNDUgIAorLS0tLS0tLS0tLS0tCisgKDEwLDIwLDMwKQorKDEg cm93KQorCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS4qOworIGEgIHwg YiAgfCBjICAKKy0tLS0rLS0tLSstLS0tCisgMTAgfCAyMCB8IDMwCisoMSByb3cpCisKK1NFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUuYSk7CisgYSAgCistLS0tCisgMTAKKygx IHJvdykKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkuYTsKKyBhICAK Ky0tLS0KKyAxMAorKDEgcm93KQorCitBTFRFUiBUWVBFIHN2YXJ0ZXN0X2RtbC5jb21wb3NpdGVf dHlwZSBBREQgQVRUUklCVVRFIGQgaW50OworLS0gY29tcG9zaXRlIHZhbHVlIHNob3VsZCBiZSBz dGlsbCByZWFkYWJsZQorU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0NSkpOworICAgICAgICAgICByb3dfdG9fanNvbiAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImEiOjEwLCJiIjoyMCwiYyI6MzAsImQiOm51bGx9 CisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coMTAwLCAyMDAsIDMw MCwgTlVMTCk7CitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3Zh cjQ1KSk7CisgICAgICAgICAgICByb3dfdG9fanNvbiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYSI6MTAwLCJiIjoyMDAsImMiOjMwMCwiZCI6 bnVsbH0KKygxIHJvdykKKworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlldworQ1JFQVRFIFZJ RVcgc3ZhcnRlc3RfZG1sLnZpZXcwMSBBUyBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ1KS4qOworU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwudmlldzAxOworICBhICB8ICBi ICB8ICBjICB8IGQgCistLS0tLSstLS0tLSstLS0tLSstLS0KKyAxMDAgfCAyMDAgfCAzMDAgfCAg CisoMSByb3cpCisKKy0tIHN0YXJ0IG5ldyBjb25uZWN0aW9uCitcYworU0VMRUNUICogRlJPTSBz dmFydGVzdF9kbWwudmlldzAxOworIGEgfCBiIHwgYyB8IGQgCistLS0rLS0tKy0tLSstLS0KKyAg IHwgICB8ICAgfCAgCisoMSByb3cpCisKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1co NSwgNiwgNywgOCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2RtbC52aWV3MDE7CisgYSB8IGIg fCBjIHwgZCAKKy0tLSstLS0rLS0tKy0tLQorIDUgfCA2IHwgNyB8IDgKKygxIHJvdykKKworLS0g c2hvdWxkIGZhaWwgKGRlcGVuZGVuY3kpCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0NTsKK0VSUk9SOiAgY2Fubm90IGRyb3Agc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdF9kbWwu c2VzdmFyNDUgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgdmll dyBzdmFydGVzdF9kbWwudmlldzAxIGRlcGVuZHMgb24gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVz dF9kbWwuc2VzdmFyNDUKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBk ZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKy0t IHRlc3Qgb2YgYWNjZXNzIHZhcmlhYmxlcyBmcm9tIGdlbmVyaWMgcGxhbnMKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2RtbC5meDA2KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAk JAorQkVHSU4KKyAgUkVUVVJOIFZBUklBQkxFKHNlc3ZhcjQzKTsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK0xF VCBzZXN2YXI0MyA9IDYuMjg7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYoKTsKKyBmeDA2IAor LS0tLS0tCisgNi4yOAorKDEgcm93KQorCitMRVQgc2VzdmFyNDMgPSBWQVJJQUJMRShzZXN2YXI0 MykgKiAyOworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisgZngwNiAgCistLS0tLS0tCisg MTIuNTYKKygxIHJvdykKKworLS0gcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBW QVJJQUJMRSBzZXN2YXI0MzsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4 MDYoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAic2VzdmFyNDMiIGRvZXNuJ3QgZXhpc3QK K0xJTkUgMTogVkFSSUFCTEUoc2VzdmFyNDMpCisgICAgICAgICAgICAgICAgIF4KK1FVRVJZOiAg VkFSSUFCTEUoc2VzdmFyNDMpCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gc3ZhcnRlc3Rf ZG1sLmZ4MDYoKSBsaW5lIDMgYXQgUkVUVVJOCitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMg bnVtZXJpYzsKK0xFVCBzZXN2YXI0MyA9IDIuNzI7CitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDYo KTsKKyBmeDA2IAorLS0tLS0tCisgMi43MgorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHNlc3Zh cjQzOworQ1JFQVRFIERPTUFJTiBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsIEFTIGludCBDSEVD Syh2YWx1ZSBJUyBOT1QgTlVMTCk7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3Zh cjQ2IEFTIHN2YXJ0ZXN0X2RtbC5pbnRfbm90X251bGw7CistLSBzaG91bGQgZmFpbAorTEVUIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NiA9IE5VTEw7CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gc3Zh cnRlc3RfZG1sLmludF9ub3RfbnVsbCB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJpbnRfbm90 X251bGxfY2hlY2siCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDYg PSAxMDA7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1ID0gUk9XKDEsMiwzLDQpOworTEVUIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NS5hID0gMTAwOworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxF KHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSkpOworICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMDAsImIiOjIsImMiOjMsImQi OjR9CisoMSByb3cpCisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29u bHlfcm9sZTsKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBzdmFydGVzdF9kbWwgVE8gcmVncmVzc19z dmFydGVzdF9kbWxfd3JpdGVfb25seV9yb2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHN2 YXJ0ZXN0X2RtbC5zZXN2YXI0NSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3Jv bGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7Cist LSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQ1Cist LSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYiA9IDIwMDsKK1NFVCBS T0xFIFRPIERFRkFVTFQ7CitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ1KSk7CisgICAgICAgICAgcm93X3RvX2pzb24gICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJhIjoxMDAsImIiOjIwMCwiYyI6MywiZCI6NH0KKygx IHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBBUyBpbnRbXTsK K0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDcgPSBBUlJBWVsxLDIsM107CitHUkFOVCBVUERBVEUg T04gVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3IFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1s X3dyaXRlX29ubHlfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRl X29ubHlfcm9sZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1s LnNlc3ZhcjQ3KTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgc2VzdmFyNDcKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0N1sx XSA9IDIwMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQ3KTsKKyBzZXN2YXI0NyAgCistLS0tLS0tLS0tLQorIHsyMDAsMiwzfQorKDEg cm93KQorCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4IEFTIGludDRtdWx0 aXJhbmdlW107CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4ID0gTlVMTDsKK0xFVCBzdmFydGVz dF9kbWwuc2VzdmFyNDggPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7 CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4WzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VM RUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OCk7CisgICAgICAgICAgICAgICAgc2Vz dmFyNDggICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgeyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KKygxIHJvdykK KworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfZG1sIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2Nh ZGVzIHRvIDEzIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lv biB2YXJpYWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDQKK2Ryb3AgY2FzY2FkZXMgdG8gdHlwZSBz dmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUKK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJp YWJsZSBzdmFydGVzdF9kbWwuc2VzdmFyNDUKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3Zh cnRlc3RfZG1sLmZ4MDEobnVtZXJpYykKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRl c3RfZG1sLmZ4MDIoKQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngw MyhjaGFyYWN0ZXIgdmFyeWluZykKK2Ryb3AgY2FzY2FkZXMgdG8gZnVuY3Rpb24gc3ZhcnRlc3Rf ZG1sLmZ4MDQoY2hhcmFjdGVyIHZhcnlpbmcpCitkcm9wIGNhc2NhZGVzIHRvIGZ1bmN0aW9uIHN2 YXJ0ZXN0X2RtbC5meDA1KGludGVnZXIsaW50ZWdlcixpbnRlZ2VyKQorZHJvcCBjYXNjYWRlcyB0 byBmdW5jdGlvbiBzdmFydGVzdF9kbWwuZngwNigpCitkcm9wIGNhc2NhZGVzIHRvIHR5cGUgc3Zh cnRlc3RfZG1sLmludF9ub3RfbnVsbAorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxl IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NgorZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxl IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxl IHN2YXJ0ZXN0X2RtbC5zZXN2YXI0OAorRFJPUCBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dy aXRlX29ubHlfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzX2RtbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl c19kbWwuc3FsCmluZGV4IGIyODcwZGRlOWU5Li4xMjUwZTdlZjA2MiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCkBAIC0xNTksMyArMTU5LDE4 MCBAQCBEUk9QIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOwogRFJPUCBWQVJJ QUJMRSBzZXN2YXI0MDsKIAogRFJPUCBUQUJMRSBzdmFydGVzdF9kbWw7CisKK0NSRUFURSBWQVJJ QUJMRSBzZXN2YXI0MyBBUyBudW1lcmljOworCistLSBMRVQgc3RtdCBpcyBub3QgYWxsb3dlZCBp bnNpZGUgQ1RFCitXSVRIIHggQVMgKExFVCBzZXN2YXI0MyA9IDMuMTQpIFNFTEVDVCAqIEZST00g eDsKKworLS0gTEVUIHN0bXQgcmVxdWlyZXMgcmVzdWx0IHdpdGggZXhhY3RseSBvbmUgcm93CitM RVQgc2VzdmFyNDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwxKTsKKworLS0gc2hvdWxkIGZhaWwKK0xF VCBzZXN2YXI0MyA9IGdlbmVyYXRlX3NlcmllcygxLDIpOworTEVUIHNlc3ZhcjQzID0gZ2VuZXJh dGVfc2VyaWVzKDEsMCk7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3RfZG1sOworQ1JFQVRFIFZB UklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NCBBUyB2YXJjaGFyOworQ1JFQVRFIFRZUEUgc3Zh cnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFU RSBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDUgQVMgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0 ZV90eXBlOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwMShu dW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkCitMRVQgc2VzdmFyNDMgPSAkMTsKKyQkIExBTkdV QUdFIHNxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDIo KQorUkVUVVJOUyBudW1lcmljIEFTICQkCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDMpOworJCQg TEFOR1VBR0Ugc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLmZ4MDEoMy4xNCk7CitTRUxFQ1Qg c3ZhcnRlc3RfZG1sLmZ4MDIoKSwgVkFSSUFCTEUoc2VzdmFyNDMpOworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwMyhzIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNo YXIgQVMgJCQKK0JFR0lOCisgIExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDQgPSBzOworICBSRVRV Uk4gVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ0KTsKK0VORAorJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDAzKCdIZWxsbycpOworCitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNChzIHZhcmNoYXIpCitSRVRVUk5TIHZh cmNoYXIgQVMgJCQKK0JFR0lOCisgIExFVCBzZXN2YXI0NCA9IHM7CisgIFJFVFVSTiBWQVJJQUJM RShzZXN2YXI0NCk7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWwKK1NFVCBTRUFSQ0hfUEFUSCBU TyAnc3ZhcnRlc3RfZG1sJzsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA0KCdIZWxsbycpOwor CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9kbWwuZngwNShhIGludCwgYiBp bnQsIGMgaW50KQorUkVUVVJOUyBzdmFydGVzdF9kbWwuY29tcG9zaXRlX3R5cGUgQVMgJCQKK0JF R0lOCisgIExFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUgPSBST1coYSwgYiwgYyk7CisgIFJFVFVS TiBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworU0VMRUNUIHJvd190b19qc29uKHN2YXJ0ZXN0X2RtbC5meDA1KDEwLCAyMCwgMzAp KTsKKworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSk7CitTRUxFQ1QgVkFS SUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS4qOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0NS5hKTsKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUp LmE7CisKK0FMVEVSIFRZUEUgc3ZhcnRlc3RfZG1sLmNvbXBvc2l0ZV90eXBlIEFERCBBVFRSSUJV VEUgZCBpbnQ7CisKKy0tIGNvbXBvc2l0ZSB2YWx1ZSBzaG91bGQgYmUgc3RpbGwgcmVhZGFibGUK K1NFTEVDVCByb3dfdG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKwor TEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NSA9IFJPVygxMDAsIDIwMCwgMzAwLCBOVUxMKTsKK1NF TEVDVCByb3dfdG9fanNvbihWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpKTsKKworLS0g dXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlldworQ1JFQVRFIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcw MSBBUyBTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KS4qOworU0VMRUNUICog RlJPTSBzdmFydGVzdF9kbWwudmlldzAxOworCistLSBzdGFydCBuZXcgY29ubmVjdGlvbgorXGMK K1NFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKworTEVUIHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0NSA9IFJPVyg1LCA2LCA3LCA4KTsKKworU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwu dmlldzAxOworCistLSBzaG91bGQgZmFpbCAoZGVwZW5kZW5jeSkKK0RST1AgVkFSSUFCTEUgc3Zh cnRlc3RfZG1sLnNlc3ZhcjQ1OworCitEUk9QIFZJRVcgc3ZhcnRlc3RfZG1sLnZpZXcwMTsKKwor LS0gdGVzdCBvZiBhY2Nlc3MgdmFyaWFibGVzIGZyb20gZ2VuZXJpYyBwbGFucworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ4MDYoKQorUkVUVVJOUyBudW1lcmljIEFT ICQkCitCRUdJTgorICBSRVRVUk4gVkFSSUFCTEUoc2VzdmFyNDMpOworRU5EOworJCQgTEFOR1VB R0UgcGxwZ3NxbDsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47 CisKK0xFVCBzZXN2YXI0MyA9IDYuMjg7CisKK1NFTEVDVCBzdmFydGVzdF9kbWwuZngwNigpOwor CitMRVQgc2VzdmFyNDMgPSBWQVJJQUJMRShzZXN2YXI0MykgKiAyOworCitTRUxFQ1Qgc3ZhcnRl c3RfZG1sLmZ4MDYoKTsKKworLS0gcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBW QVJJQUJMRSBzZXN2YXI0MzsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBzdmFydGVzdF9kbWwu ZngwNigpOworCitDUkVBVEUgVkFSSUFCTEUgc2VzdmFyNDMgQVMgbnVtZXJpYzsKKworTEVUIHNl c3ZhcjQzID0gMi43MjsKKworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5meDA2KCk7CisKK0RST1AgVkFS SUFCTEUgc2VzdmFyNDM7CisKK0NSRUFURSBET01BSU4gc3ZhcnRlc3RfZG1sLmludF9ub3RfbnVs bCBBUyBpbnQgQ0hFQ0sodmFsdWUgSVMgTk9UIE5VTEwpOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0 ZXN0X2RtbC5zZXN2YXI0NiBBUyBzdmFydGVzdF9kbWwuaW50X25vdF9udWxsOworCistLSBzaG91 bGQgZmFpbAorTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NiA9IE5VTEw7CistLSBzaG91bGQgYmUg b2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDYgPSAxMDA7CisKK0xFVCBzdmFydGVzdF9kbWwu c2VzdmFyNDUgPSBST1coMSwyLDMsNCk7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1LmEgPSAx MDA7CitTRUxFQ1Qgcm93X3RvX2pzb24oVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ1KSk7 CisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKK0dS QU5UIFVTQUdFIE9OIFNDSEVNQSBzdmFydGVzdF9kbWwgVE8gcmVncmVzc19zdmFydGVzdF9kbWxf d3JpdGVfb25seV9yb2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0NSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CisKK1NFVCBS T0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKKworLS0gc2hvdWxk IGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDUpOworCistLSBzaG91 bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDUuYiA9IDIwMDsKKworU0VUIFJPTEUg VE8gREVGQVVMVDsKKworU0VMRUNUIHJvd190b19qc29uKFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5z ZXN2YXI0NSkpOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ3IEFTIGlu dFtdOworTEVUIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyA9IEFSUkFZWzEsMiwzXTsKKworR1JBTlQg VVBEQVRFIE9OIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zZXN2YXI0NyBUTyByZWdyZXNzX3N2YXJ0 ZXN0X2RtbF93cml0ZV9vbmx5X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3Rf ZG1sX3dyaXRlX29ubHlfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShz dmFydGVzdF9kbWwuc2VzdmFyNDcpOworCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFydGVzdF9k bWwuc2VzdmFyNDdbMV0gPSAyMDA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFTEVDVCBW QVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDcpOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRl c3RfZG1sLnNlc3ZhcjQ4IEFTIGludDRtdWx0aXJhbmdlW107CitMRVQgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQ4ID0gTlVMTDsKK0xFVCBzdmFydGVzdF9kbWwuc2VzdmFyNDggPSAneyJ7WzIsOCksWzEx LDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQ4WzJd ID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2 YXI0OCk7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2RtbCBDQVNDQURFOworRFJPUCBST0xFIHJl Z3Jlc3Nfc3ZhcnRlc3RfZG1sX3dyaXRlX29ubHlfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKaW5kZXggMWUzM2RmZDQ1ODkuLjgxNTY4OWU5NDAxIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdApAQCAtMTU0Miw2ICsxNTQyLDcgQEAgTGFyZ2VPYmplY3REZXNjCiBMYXRjaAogTGF1bmNo ZXJMYXN0U3RhcnRUaW1lc0VudHJ5CiBMZXJwRnVuYworTGV0U3RtdAogTGV4RGVzY3IKIExleGVt ZUVudHJ5CiBMZXhlbWVIYXNoS2V5Ci0tIAoyLjQ5LjAKCg== --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0015-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250603-2-0015-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9ea90 RnJvbSA2MjQyZDM2NDA0NzdlNGU1ODAwYmFjNjFjNzExMmU0NWM2MGVhYjc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMTVdIHBscGdzcWwgdGVzdHMKCnNldCBvZiBwbHBnc3FsIHJlbGF0ZWQgdGVzdHM6CgoqIGNo ZWNrIHNlc3Npb24gdmFyaWFibGVzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcyBhcmUgbm90IGluIGNv bGxpc2lvbiBldmVyCiogY2hlY2sgY29ycmVjdCBwbHBnc3FsIHBsYW4gY2FjaGUgaW52YWxpZGF0 aW9uIHdoZW4gc2Vzc2lvbiB2YXJpYWJsZSBpcyBkcm9wcGVkCiogY2hlY2sgc28gdGhlIHZhbHVl IG9mIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IGNvcnJ1cHRlZCwgd2hlbiB0aGUgdmFyaWFibGUg aXMKICBtb2RpZmllZCBpbnNpZGUgbmVzdGVkIGNhbGxlZCBmdW5jdGlvbnMKLS0tCiBzcmMvcGwv cGxwZ3NxbC9zcmMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCB8IDE5OCArKysrKysrKysrKysr KysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8ICAg MSArCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsICAgICAgfCAxMzcg KysrKysrKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDMzOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3Bs cGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGwvcGxw Z3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUK aW5kZXggNjNjYjk2ZmFlM2UuLmJiY2FlMjdkNDIyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvTWFrZWZpbGUKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3 ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9 IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9jYWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9s IFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3NxbF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3Fs X3JlY29yZCBwbHBnc3FsX3NpbXBsZSBwbHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3Ry YXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3Nx bF90cmlnZ2VyIHBscGdzcWxfdmFycHJvcHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQog CiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tleXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVz CiBUT09MU0RJUiA9ICQodG9wX3NyY2Rpcikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZGNlYzc4YzIzNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUub3V0CkBAIC0wLDAgKzEsMTk4IEBACistLSBjaGVjayBvZiBjb3JyZWN0IHBsYW4gY2Fj aGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7 CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMiBBUyBpbnRbXTsKKy0tIHBscGdzcWwg dmFyaWFibGVzIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGluIGNvbGxpc2lvbiBldmVy CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMV8wMSgp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUgcGxwZ3NxbF9zZXN2YXIwMSBpbnQ7CitCRUdJ TgorICBwbHBnc3FsX3Nlc3ZhcjAxIDo9IDEwMDsKKyAgTEVUIHBscGdzcWxfc2VzdmFyMDEgPSAx MDAwOworICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyOiAlLCBzZXNzaW9uIHZhcjogJScsCisg ICAgcGxwZ3NxbF9zZXN2YXIwMSwgVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCk7 CitOT1RJQ0U6ICBwbHBnc3FsIHZhcjogMTAwLCBzZXNzaW9uIHZhcjogMTAwMAorIHN2YXJ0ZXN0 X3BscGdzcWxfZnVuYzAxXzAxIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEg cm93KQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMw MV8wMigpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RFQ0xBUkUgX19wbHBnc3FsX3Nlc3ZhcjAxIGlu dDsKK0JFR0lOCisgIF9fcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7CisgIExFVCBfX3BscGdzcWxf c2VzdmFyMDEgPSAxMDAwOworICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyOiAlLCBzZXNzaW9u IHZhcjogJScsCisgICAgX19wbHBnc3FsX3Nlc3ZhcjAxLCBWQVJJQUJMRShfX3BscGdzcWxfc2Vz dmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCBmYWlsCitTRUxF Q1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDIoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJs ZSAiX19wbHBnc3FsX3Nlc3ZhcjAxIiBkb2Vzbid0IGV4aXN0CitMSU5FIDE6IExFVCBfX3BscGdz cWxfc2VzdmFyMDEgPSAxMDAwCisgICAgICAgICAgICBeCitRVUVSWTogIExFVCBfX3BscGdzcWxf c2VzdmFyMDEgPSAxMDAwCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gc3ZhcnRlc3RfcGxw Z3NxbF9mdW5jMDFfMDIoKSBsaW5lIDUgYXQgU1FMIHN0YXRlbWVudAorLS0gc2hvdWxkIGZhaWwK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAzKCkK K1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7Cisg IExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gMTAwMDsKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cjogJSwgc2Vzc2lvbiB2YXI6ICUnLAorICAgIHBscGdzcWxfc2VzdmFyMDEsIFZBUklBQkxFKHBs cGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0VSUk9SOiAgInBs cGdzcWxfc2VzdmFyMDEiIGlzIG5vdCBhIGtub3duIHZhcmlhYmxlCitMSU5FIDQ6ICAgcGxwZ3Nx bF9zZXN2YXIwMSA6PSAxMDA7CisgICAgICAgICAgXgorRFJPUCBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMV8wMSgpOworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMw MV8wMigpOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5j MDIoKQorUkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOwor QkVHSU4KKyAgTEVUIHBscGdzcWxfc2VzdmFyMDEgPSAxOworICB2W1ZBUklBQkxFKHBscGdzcWxf c2VzdmFyMDEpXSA9IDEwMDsKKyAgUkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxf c2VzdmFyMDIgPSB2OworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMltWQVJJQUJMRShwbHBnc3FsX3Nl c3ZhcjAxKV0gPSAtMTsKKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUocGxwZ3NxbF9zZXN2 YXIwMik7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2YXJ0ZXN0X3BscGdz cWxfZnVuYzAyKCk7CitOT1RJQ0U6ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHN2YXJ0ZXN0X3Bs cGdzcWxfZnVuYzAyIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc2VzdmFyMDEsIHBscGdzcWxfc2VzdmFyMDI7CitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBpbnRbXTsKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMigpOwor Tk9USUNFOiAgezEwMH0KK05PVElDRTogIHstMX0KKyBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBz dmFydGVzdF9wbHBnc3FsX2Z1bmMwMigpOworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAx LCBwbHBnc3FsX3Nlc3ZhcjAyOworLS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBzdmFydGVzdF9wbHBnc3FsX2luYyhpbnQpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAg TEVUIHBscGdzcWxfc2VzdmFyMDEgPSBDT0FMRVNDRShWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAx KSArICQxLCAkMSk7CisgIFJFVFVSTiBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7Cisg c3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAg ICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEpOwor IHN2YXJ0ZXN0X3BscGdzcWxfaW5jIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAg ICAgICAgICAgICAyCisoMSByb3cpCisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxKTsK KyBzdmFydGVzdF9wbHBnc3FsX2luYyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSkg RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAg ICAgICAgNQorICAgICAgICAgICAgICAgICAgICA2CisgICAgICAgICAgICAgICAgICAgIDcKKyAg ICAgICAgICAgICAgICAgICAgOAorICAgICAgICAgICAgICAgICAgICA5CisgICAgICAgICAgICAg ICAgICAgMTAKKyAgICAgICAgICAgICAgICAgICAxMQorICAgICAgICAgICAgICAgICAgIDEyCisg ICAgICAgICAgICAgICAgICAgMTMKKygxMCByb3dzKQorCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc2VzdmFyMDIgPSAwLjA7CitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhudW1lcmljKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAyID0gQ09BTEVTQ0Uo VkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMikgKyAkMSwgJDEpOworICBSRVRVUk4gVkFSSUFCTEUo cGxwZ3NxbF9zZXN2YXIwMik7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworU0VMRUNUIHN2 YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDEKKygxIHJvdykKKworU0VMRUNU IHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDIKKygxIHJvdykKKworU0VM RUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgIDMKKygxIHJvdykKKwor U0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwx MCk7Cisgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgIDQKKyAgICAgICAgICAgICAgICAgICAgNQorICAgICAgICAgICAgICAg ICAgICA2CisgICAgICAgICAgICAgICAgICAgIDcKKyAgICAgICAgICAgICAgICAgICAgOAorICAg ICAgICAgICAgICAgICAgICA5CisgICAgICAgICAgICAgICAgICAgMTAKKyAgICAgICAgICAgICAg ICAgICAxMQorICAgICAgICAgICAgICAgICAgIDEyCisgICAgICAgICAgICAgICAgICAgMTMKKygx MCByb3dzKQorCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc2VzdmFyMDEsIHBscGdzcWxfc2VzdmFy MDI7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKGludCk7CitEUk9QIEZVTkNU SU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKG51bWVyaWMpOworLS0gdGhlIHZhbHVlIHNob3VsZCBu b3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMyB0ZXh0Owor TEVUIHBscGdzcWxfc2VzdmFyMDMgPSAnYWJjJzsKK0NSRUFURSBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMygpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBzdmFy dGVzdF9wbHBnc3FsX2Z1bmNfbmVzdGVkKFZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDMpKTsKK0VO RAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3Fs X2Z1bmNfbmVzdGVkKHQgdGV4dCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBs cGdzcWxfc2VzdmFyMDMgPSAnQk9PTSEnOworICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDMoKTsKKyBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMyAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBhYmMKKygxIHJvdykK KworRFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworRFJPUCBGVU5DVElP TiBzdmFydGVzdF9wbHBnc3FsX2Z1bmNfbmVzdGVkKHRleHQpOworRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3Nlc3ZhcjAzOwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxk IGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCmluZGV4IDMzYzQ5YWMyNWQ5Li4xZDAx ZDFjMjYyOSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCisrKyBi L3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZApAQCAtODgsNiArODgsNyBAQCB0ZXN0cyAr PSB7CiAgICAgICAncGxwZ3NxbF90cmFwJywKICAgICAgICdwbHBnc3FsX3RyaWdnZXInLAogICAg ICAgJ3BscGdzcWxfdmFycHJvcHMnLAorICAgICAgJ3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZScs CiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNWFiZjE4ZTNiYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv c3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKQEAgLTAsMCArMSwxMzcgQEAKKy0tIGNo ZWNrIG9mIGNvcnJlY3QgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAy IEFTIGludFtdOworCistLSBwbHBnc3FsIHZhcmlhYmxlcyBhbmQgc2Vzc2lvbiB2YXJpYWJsZXMg YXJlIG5vdCBpbiBjb2xsaXNpb24gZXZlcgorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zh cnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKQorUkVUVVJOUyB2b2lkIEFTICQkCitERUNMQVJFIHBs cGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgcGxwZ3NxbF9zZXN2YXIwMSA6PSAxMDA7Cisg IExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gMTAwMDsKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZh cjogJSwgc2Vzc2lvbiB2YXI6ICUnLAorICAgIHBscGdzcWxfc2VzdmFyMDEsIFZBUklBQkxFKHBs cGdzcWxfc2VzdmFyMDEpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIHN2 YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAxKCk7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAyKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFS RSBfX3BscGdzcWxfc2VzdmFyMDEgaW50OworQkVHSU4KKyAgX19wbHBnc3FsX3Nlc3ZhcjAxIDo9 IDEwMDsKKyAgTEVUIF9fcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7CisgIFJBSVNFIE5PVElDRSAn cGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBfX3BscGdzcWxfc2VzdmFyMDEs IFZBUklBQkxFKF9fcGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3Fs OworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAxXzAyKCk7 CisKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFydGVzdF9w bHBnc3FsX2Z1bmMwMV8wMygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIHBscGdzcWxf c2VzdmFyMDEgOj0gMTAwOworICBMRVQgcGxwZ3NxbF9zZXN2YXIwMSA9IDEwMDA7CisgIFJBSVNF IE5PVElDRSAncGxwZ3NxbCB2YXI6ICUsIHNlc3Npb24gdmFyOiAlJywKKyAgICBwbHBnc3FsX3Nl c3ZhcjAxLCBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKTsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDEoKTsKK0RS T1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDFfMDIoKTsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKQorUkVUVVJOUyB2b2lkIEFT ICQkCitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBscGdzcWxf c2VzdmFyMDEgPSAxOworICB2W1ZBUklBQkxFKHBscGdzcWxfc2VzdmFyMDEpXSA9IDEwMDsKKyAg UkFJU0UgTk9USUNFICclJywgdjsKKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIgPSB2OworICBMRVQg cGxwZ3NxbF9zZXN2YXIwMltWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAxKV0gPSAtMTsKKyAgUkFJ U0UgTk9USUNFICclJywgVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMik7CitFTkQ7CiskJCBMQU5H VUFHRSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsKKworRFJP UCBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCitDUkVBVEUg VkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zZXN2YXIwMiBBUyBpbnRbXTsKKworU0VMRUNUIHN2YXJ0ZXN0X3BscGdzcWxfZnVuYzAyKCk7 CisKK0RST1AgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDIoKTsKKworRFJPUCBWQVJJ QUJMRSBwbHBnc3FsX3Nlc3ZhcjAxLCBwbHBnc3FsX3Nlc3ZhcjAyOworCistLSByZXR1cm5zIHVw ZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3Nlc3ZhcjAxIEFTIGludDsKKwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoaW50KQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3Nlc3ZhcjAxID0gQ09BTEVTQ0Uo VkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMSkgKyAkMSwgJDEpOworICBSRVRVUk4gVkFSSUFCTEUo cGxwZ3NxbF9zZXN2YXIwMSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1Qg c3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7 CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMSk7CisKK1NFTEVDVCBzdmFydGVzdF9wbHBn c3FsX2luYygxKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKworQ1JFQVRFIFZBUklBQkxF IHBscGdzcWxfc2VzdmFyMDIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc2VzdmFyMDIgPSAw LjA7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKG51 bWVyaWMpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc2VzdmFyMDIg PSBDT0FMRVNDRShWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKSArICQxLCAkMSk7CisgIFJFVFVS TiBWQVJJQUJMRShwbHBnc3FsX3Nlc3ZhcjAyKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKK1NFTEVDVCBzdmFydGVzdF9wbHBnc3FsX2luYygxLjApOworU0VMRUNUIHN2YXJ0ZXN0X3Bs cGdzcWxfaW5jKDEuMCk7CitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9pbmMoMS4wKTsKKworU0VM RUNUIHN2YXJ0ZXN0X3BscGdzcWxfaW5jKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7 CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMSwgcGxwZ3NxbF9zZXN2YXIwMjsKKwor RFJPUCBGVU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2luYyhpbnQpOworRFJPUCBGVU5DVElPTiBz dmFydGVzdF9wbHBnc3FsX2luYyhudW1lcmljKTsKKworLS0gdGhlIHZhbHVlIHNob3VsZCBub3Qg YmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zZXN2YXIwMyB0ZXh0OworTEVU IHBscGdzcWxfc2VzdmFyMDMgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIHN2YXJ0ZXN0X3Bs cGdzcWxfZnVuYzAzKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIHN2YXJ0 ZXN0X3BscGdzcWxfZnVuY19uZXN0ZWQoVkFSSUFCTEUocGxwZ3NxbF9zZXN2YXIwMykpOworRU5E CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gc3ZhcnRlc3RfcGxwZ3Nx bF9mdW5jX25lc3RlZCh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBw bHBnc3FsX3Nlc3ZhcjAzID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworCitTRUxFQ1Qgc3ZhcnRlc3RfcGxwZ3NxbF9mdW5jMDMoKTsKKworRFJPUCBG VU5DVElPTiBzdmFydGVzdF9wbHBnc3FsX2Z1bmMwMygpOworRFJPUCBGVU5DVElPTiBzdmFydGVz dF9wbHBnc3FsX2Z1bmNfbmVzdGVkKHRleHQpOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc2Vz dmFyMDM7Ci0tIAoyLjQ5LjAKCg== --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0010-svariableReceiver.patch" Content-Disposition: attachment; filename="v20250603-2-0010-svariableReceiver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9ecb5 RnJvbSBlYzhmOTIzZTg4ZTU3NmI1MGZiNDBiZDNkMzA0ZjIwNTA5MzNlNTQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDEgSnVuIDIwMjUgMjE6MjA6MTYgKzAyMDAKU3ViamVjdDogW1BB VENIIDEwLzE1XSBzdmFyaWFibGVSZWNlaXZlcgoKYWxsb3dzIHRvIHN0b3JlIHJlc3VsdCBvZiB0 aGUgcXVlcnkgdG8gc2Vzc2lvbiB2YXJpYWJsZQoKQ2hlY2sgY29ycmVjdCBmb3JtYXQgb2YgcmVz dWx0IC0gb25lIGNvbHVtbiwgb25lIHJvdy4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9NYWtl ZmlsZSAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxk ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIu YyB8IDE3MiArKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMg ICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oIHwgIDIyICsrKwogc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggICAgICAgICAgICAg ICAgICB8ICAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDIwNCBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZSBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL01ha2VmaWxlCmluZGV4IDExMTE4ZDBjZTAyLi43MTI0OGEzNGYyNiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvTWFrZWZpbGUKQEAgLTc2LDYgKzc2LDcgQEAgT0JKUyA9IFwKIAlub2RlV2luZG93QWdn Lm8gXAogCW5vZGVXb3JrdGFibGVzY2FuLm8gXAogCXNwaS5vIFwKKwlzdmFyaWFibGVSZWNlaXZl ci5vIFwKIAl0cXVldWUubyBcCiAJdHN0b3JlUmVjZWl2ZXIubwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29u LmJ1aWxkCmluZGV4IDJjZWE0MWY4NzcxLi40OTEwOTJmY2M0YyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVz b24uYnVpbGQKQEAgLTY0LDYgKzY0LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAn bm9kZVdpbmRvd0FnZy5jJywKICAgJ25vZGVXb3JrdGFibGVzY2FuLmMnLAogICAnc3BpLmMnLAor ICAnc3ZhcmlhYmxlUmVjZWl2ZXIuYycsCiAgICd0cXVldWUuYycsCiAgICd0c3RvcmVSZWNlaXZl ci5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2Vp dmVyLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNjE2M2ZiMzZmNgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKQEAgLTAsMCAr MSwxNzIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVyLmMK KyAqCSAgQW4gaW1wbGVtZW50YXRpb24gb2YgRGVzdFJlY2VpdmVyIHRoYXQgc3RvcmVzIHRoZSBy ZXN1bHQgdmFsdWUgaW4KKyAqCSAgYSBzZXNzaW9uIHZhcmlhYmxlLgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2 ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisK KyNpbmNsdWRlICJhY2Nlc3MvZGV0b2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAi ZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xvY2suaCIK KyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5o IgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGlzIERlc3RSZWNlaXZl ciBpcyB1c2VkIGJ5IHRoZSBMRVQgY29tbWFuZCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IHRvIGEK KyAqIHNlc3Npb24gdmFyaWFibGUuICBUaGUgcmVzdWx0IGhhcyB0byBoYXZlIG9ubHkgb25lIHR1 cGxlIHdpdGggb25seSBvbmUKKyAqIG5vbi1kZWxldGVkIGF0dHJpYnV0ZS4gIFRoZSByb3cgY291 bnRlciAoZmllbGQgInJvd3MiKSBpcyBpbmNyZW1lbnRlZAorICogYWZ0ZXIgcmVjZWl2aW5nIGEg cm93LCBhbmQgYW4gZXJyb3IgaXMgcmFpc2VkIHdoZW4gdGhlcmUgYXJlIG5vIHJvd3Mgb3IKKyAq IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIHJlY2VpdmVkIHJvd3MuICBBIHJlY2VpdmVkIHR1cGxl IGNhbm5vdCB0byBoYXZlCisgKiBkZWxldGVkIGF0dHJpYnV0ZXMuICBUaGUgdmFsdWUgaXMgZGV0 b2FzdGVkIGJlZm9yZSBzdG9yaW5nIGl0IGluIHRoZQorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAq LwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlEZXN0UmVjZWl2ZXIgcHViOworCU9pZAkJCXZhcmlkOwor CWJvb2wJCW5lZWRfZGV0b2FzdDsJCS8qIGRvIHdlIG5lZWQgdG8gZGV0b2FzdCB0aGUgYXR0cmli dXRlPyAqLworCWludAkJCXJvd3M7CQkJCS8qIHJvdyBjb3VudGVyICovCit9IFNWYXJpYWJsZVN0 YXRlOworCisvKgorICogUHJlcGFyZSB0byByZWNlaXZlIHR1cGxlcyBmcm9tIGV4ZWN1dG9yLgor ICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyKERlc3RSZWNlaXZlciAq c2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVpbmZvKQoreworCVNWYXJpYWJsZVN0 YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJTE9DS1RBRwkJbG9ja3Rh ZyBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKKwlP aWQJCQl0eXBpZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJT2lkCQkJY29sbGlkIFBHX1VT RURfRk9SX0FTU0VSVFNfT05MWTsKKwlpbnQzMgkJdHlwbW9kIFBHX1VTRURfRk9SX0FTU0VSVFNf T05MWTsKKworCUFzc2VydChteVN0YXRlLT5wdWIubXlkZXN0ID09IERlc3RWYXJpYWJsZSk7CisJ QXNzZXJ0KE9pZElzVmFsaWQobXlTdGF0ZS0+dmFyaWQpKTsKKwlBc3NlcnQoU2VhcmNoU3lzQ2Fj aGVFeGlzdHMxKFZBUklBQkxFT0lELCBteVN0YXRlLT52YXJpZCkpOworCUFzc2VydCh0eXBlaW5m by0+bmF0dHMgPT0gMSk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlTRVRfTE9D S1RBR19PQkpFQ1QobG9ja3RhZywKKwkJCQkJICAgTXlEYXRhYmFzZUlkLAorCQkJCQkgICBWYXJp YWJsZVJlbGF0aW9uSWQsCisJCQkJCSAgIG15U3RhdGUtPnZhcmlkLAorCQkJCQkgICAwKTsKKwor CUFzc2VydChMb2NrSGVsZEJ5TWUoJmxvY2t0YWcsIEFjY2Vzc1NoYXJlTG9jaywgZmFsc2UpKTsK KworI2VuZGlmCisKKwlhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBlaW5mbywgMCk7CisKKwlBc3Nl cnQoIWF0dHItPmF0dGlzZHJvcHBlZCk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisK KwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQs CisJCQkJCQkJCQkJCSZ0eXBpZCwKKwkJCQkJCQkJCQkJJnR5cG1vZCwKKwkJCQkJCQkJCQkJJmNv bGxpZCk7CisKKwlBc3NlcnQoYXR0ci0+YXR0dHlwaWQgPT0gdHlwaWQpOworCUFzc2VydChhdHRy LT5hdHR0eXBtb2QgPCAwIHx8IGF0dHItPmF0dHR5cG1vZCA9PSB0eXBtb2QpOworCisjZW5kaWYK KworCW15U3RhdGUtPm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0dGxlbiA9PSAtMTsKKwlteVN0YXRl LT5yb3dzID0gMDsKK30KKworLyoKKyAqIFJlY2VpdmUgYSB0dXBsZSBmcm9tIHRoZSBleGVjdXRv ciBhbmQgc3RvcmUgaXQgaW4gdGhlIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29s CitzdmFyaWFibGVSZWNlaXZlU2xvdChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVy ICpzZWxmKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICop IHNlbGY7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsKKwlib29sCQlmcmVldmFsID0g ZmFsc2U7CisKKwkvKiBtYWtlIHN1cmUgdGhlIHR1cGxlIGlzIGZ1bGx5IGRlY29uc3RydWN0ZWQg Ki8KKwlzbG90X2dldGFsbGF0dHJzKHNsb3QpOworCisJdmFsdWUgPSBzbG90LT50dHNfdmFsdWVz WzBdOworCWlzbnVsbCA9IHNsb3QtPnR0c19pc251bGxbMF07CisKKwlpZiAobXlTdGF0ZS0+bmVl ZF9kZXRvYXN0ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVSTkFMKERhdHVtR2V0UG9pbnRl cih2YWx1ZSkpKQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oZGV0b2FzdF9leHRlcm5h bF9hdHRyKChzdHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJCSAgRGF0dW1HZXRQb2ludGVy KHZhbHVlKSkpOworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlteVN0YXRlLT5yb3dzICs9IDE7 CisKKwlpZiAobXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVy bmVkIG1vcmUgdGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZShteVN0YXRl LT52YXJpZCwgdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkKKwkJcGZyZWUoRGF0dW1H ZXRQb2ludGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIENsZWFuIHVw IGF0IGVuZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVT aHV0ZG93blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlpZiAoKChTVmFyaWFibGVT dGF0ZSAqKSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5l ZCBubyByb3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhlIHJlY2VpdmVyIHdoZW4gd2Ug YXJlIGRvbmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlRGVzdHJveVJlY2Vp dmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxmKTsKK30KKworLyoKKyAqIElu aXRpYWxseSBjcmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0LgorICovCitEZXN0UmVjZWl2ZXIg KgorQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVN0 YXRlICpzZWxmID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAoc2l6ZW9mKFNWYXJpYWJsZVN0 YXRlKSk7CisKKwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFyaWFibGVSZWNlaXZlU2xvdDsK KwlzZWxmLT5wdWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXI7CisJc2VsZi0+ cHViLnJTaHV0ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJE ZXN0cm95ID0gc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNlbGYtPnB1Yi5teWRlc3QgPSBE ZXN0VmFyaWFibGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOworCisJcmV0dXJuIChEZXN0UmVj ZWl2ZXIgKikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jIGIv c3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKaW5kZXggYjYyMDc2NmM5MzguLmIyZjc2NGI2NTdmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYworKysgYi9zcmMvYmFja2VuZC90Y29w L2Rlc3QuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5o IgogI2luY2x1ZGUgImV4ZWN1dG9yL3RxdWV1ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RzdG9y ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNp bmNsdWRlICJsaWJwcS9saWJwcS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAKQEAg LTE1NSw2ICsxNTYsOSBAQCBDcmVhdGVEZXN0UmVjZWl2ZXIoQ29tbWFuZERlc3QgZGVzdCkKIAog CQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgogCQkJcmV0dXJuIENyZWF0ZUV4cGxhaW5TZXJp YWxpemVEZXN0UmVjZWl2ZXIoTlVMTCk7CisKKwkJY2FzZSBEZXN0VmFyaWFibGU6CisJCQlyZXR1 cm4gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoSW52YWxpZE9pZCk7CiAJfQogCiAJLyogc2hv dWxkIG5ldmVyIGdldCBoZXJlICovCkBAIC0xOTEsNiArMTk1LDcgQEAgRW5kQ29tbWFuZChjb25z dCBRdWVyeUNvbXBsZXRpb24gKnFjLCBDb21tYW5kRGVzdCBkZXN0LCBib29sIGZvcmNlX3VuZGVj b3JhdGVkX28KIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVl OgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJ CWJyZWFrOwogCX0KIH0KQEAgLTIzNyw2ICsyNDIsNyBAQCBOdWxsQ29tbWFuZChDb21tYW5kRGVz dCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6 CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJ YnJlYWs7CiAJfQogfQpAQCAtMjgxLDYgKzI4Nyw3IEBAIFJlYWR5Rm9yUXVlcnkoQ29tbWFuZERl c3QgZGVzdCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVl OgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJ CWJyZWFrOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kYjQ0ZDhiOTRjNgotLS0gL2Rl di9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKQEAg LTAsMCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2 ZXIuaAorICoJICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNlaXZlci5jCisgKgorICoKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9m IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9leGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lm bmRlZiBTVkFSSUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFSSUFCTEVfUkVDRUlWRVJfSAor CisjaW5jbHVkZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0UmVjZWl2ZXIgKkNyZWF0ZVZh cmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCk7CisKKyNlbmRpZgkJCQkJCQkvKiBTVkFSSUFC TEVfUkVDRUlWRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggYi9z cmMvaW5jbHVkZS90Y29wL2Rlc3QuaAppbmRleCAwMGMwOTJlM2Q3Yy4uNmNlM2VhMGU2MTcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3Av ZGVzdC5oCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYgZW51bQogCURlc3RUcmFuc2llbnRSZWws CQkJLyogcmVzdWx0cyBzZW50IHRvIHRyYW5zaWVudCByZWxhdGlvbiAqLwogCURlc3RUdXBsZVF1 ZXVlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHVwbGUgcXVldWUgKi8KIAlEZXN0RXhwbGFpblNl cmlhbGl6ZSwJCS8qIHJlc3VsdHMgYXJlIHNlcmlhbGl6ZWQgYW5kIGRpc2NhcmRlZCAqLworCURl c3RWYXJpYWJsZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHNlc3Npb24gdmFyaWFibGUgKi8KIH0g Q29tbWFuZERlc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KLS0gCjIuNDkuMAoK --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Disposition: attachment; filename="v20250603-2-0008-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9ed27 RnJvbSAzYWNmODIxNzg4MzcyYTg5ZWM3M2Y2MzA3MzU0YjQwMjQyMTlmOTU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDMwIE1heSAyMDI1IDA5OjMxOjA2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwOC8xNV0gY29sbGVjdCBzZXNzaW9uIHZhcmlhYmxlcyB1c2VkIGluIHBsYW4gYW5kIGFz c2lnbgogcGFyYW1pZAoKSW4gdGhlIHBsYW4gc3RhZ2Ugd2UgbmVlZCB0byBjb2xsZWN0IHVzZWQg c2Vzc2lvbiB2YXJpYWJsZXMuIE9uIHRoZQpvcmRlciBvZiB0aGlzIGxpc3QsIHRoZSBwYXJhbSBu b2RlcyBnZXRzIHBhcmFtaWQgKGZpeF9wYXJhbV9ub2RlKS4KVGhpcyBudW1iZXIgaXMgdXNlZCAo bGF0ZXIpIGFzIGluZGV4IHRvIGJ1ZmZlciBvZiB2YWx1ZXMgb2YgdGhlCnVzZWQgc2Vzc2lvbiB2 YXJpYWJsZXMuIFRoZSBidWZmZXIgaXMgcHJlcGFyZWQgYW5kIGZpbGxlZCBieSBleGVjdXRvci4K ClNvbWUgdW5zdXBwb3J0ZWQgb3B0aW1pemF0aW9ucyBhcmUgZGlzYWJsZWQ6CgoqIHBhcmFsbGVs IGV4ZWN1dGlvbgoqIHNpbXBsZSBleHByZXNzaW9uIGV4ZWN1dGlvbiBpbiBQTC9wZ1NRTAoqIFNR TCBmdW5jdGlvbnMgaW5saW5pbmcKCkJlZm9yZSBleGVjdXRpb24gb2YgcXVlcnkgd2l0aCBzZXNz aW9uIHZhcmlhYmxlcyB3ZSBuZWVkIHRvIGNvbGxlY3QKdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4g VGhpcyBsaXN0IGlzIHVzZWQgZm9yCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAg ICAgICAgICAgICAgfCAgIDYgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAg ICAgICAgIHwgICA1ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAg IHwgIDExICsrCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICB8IDEy NCArKysrKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVw am9pbnRyZWUuYyB8ICAgMyArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMg ICAgICB8ICAzMyArKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAg ICAgIHwgICA2ICstCiBzcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggICAgICAgICAgICAgfCAgIDUg Kwogc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgfCAgIDMgKwogc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggICAgICAgICAgfCAgIDIgKwogMTEgZmlsZXMg Y2hhbmdlZCwgMTk5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbApp bmRleCAxY2U5YWJmODZmNS4uNjgzZGVkZTZhZGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MTUsNiAr NTE1LDEyIEBAIEVYUExBSU4gU0VMRUNUICogRlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZp bGxlciBMSUtFICcleCUnOwogICAgICAgICBQbGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29y cmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9saXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8 L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgIFBsYW4g bm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogCiAgPHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJl bGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDllMGY2NDhiNzRmLi45MGM5ZThi YjI1NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIv c3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKQEAgLTE4NjQsNiArMTg2NCwxMSBAQCBm aW5kX2V4cHJfcmVmZXJlbmNlc193YWxrZXIoTm9kZSAqbm9kZSwKIAl7CiAJCVBhcmFtCSAgICpw YXJhbSA9IChQYXJhbSAqKSBub2RlOwogCisJCS8qIGEgdmFyaWFibGUgcGFyYW1ldGVyIGRlcGVu ZHMgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fVkFSSUFCTEUpCisJCQlhZGRfb2JqZWN0X2FkZHJlc3MoVmFyaWFibGVSZWxhdGlvbklk LCBwYXJhbS0+cGFyYW12YXJpZCwgMCwKKwkJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisKIAkJ LyogQSBwYXJhbWV0ZXIgbXVzdCBkZXBlbmQgb24gdGhlIHBhcmFtZXRlcidzIGRhdGF0eXBlICov CiAJCWFkZF9vYmplY3RfYWRkcmVzcyhUeXBlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdHlwZSwg MCwKIAkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5u ZXIuYwppbmRleCBmZjY1ODY3ZWViZS4uNzE0ZjU4YmQzZDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9wbGFubmVyLmMKQEAgLTM0Miw2ICszNDIsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5 ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAln bG9iLT50cmFuc2llbnRQbGFuID0gZmFsc2U7CiAJZ2xvYi0+ZGVwZW5kc09uUm9sZSA9IGZhbHNl OwogCWdsb2ItPnBhcnRpdGlvbl9kaXJlY3RvcnkgPSBOVUxMOworCWdsb2ItPnNlc3Npb25WYXJp YWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUgdG8g dXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NzksNiArNTgwLDkgQEAg c3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywg aW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2ItPnBhcmFt RXhlY1R5cGVzOwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBidXQgd2UgbWlnaHQg YXMgd2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBhcnNlLT51dGlsaXR5 U3RtdDsKKworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25WYXJpYWJs ZXM7CisKIAlyZXN1bHQtPnN0bXRfbG9jYXRpb24gPSBwYXJzZS0+c3RtdF9sb2NhdGlvbjsKIAly ZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0bXRfbGVuOwogCkBAIC03NTcsNiArNzYxLDEzIEBA IHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckdsb2JhbCAqZ2xvYiwgUXVlcnkgKnBhcnNlLCBQbGFu bmVySW5mbyAqcGFyZW50X3Jvb3QsCiAJICovCiAJcHVsbF91cF9zdWJxdWVyaWVzKHJvb3QpOwog CisJLyoKKwkgKiBDaGVjayBpZiBzb21lIHN1YnF1ZXJ5IHVzZXMgYSBzZXNzaW9uIHZhcmlhYmxl LiAgVGhlIGZsYWcKKwkgKiBoYXNTZXNzaW9uVmFyaWFibGVzIHNob3VsZCBiZSB0cnVlIGlmIHRo ZSBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5IHVzZXMgYQorCSAqIHNlc3Npb24gdmFyaWFibGUuCisJ ICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMocm9vdCk7CisKIAkvKgogCSAqIElm IHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxMIHF1ZXJ5LCBmbGF0dGVuIGl0IGludG8gYW4gYXBw ZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93IGJlY2F1c2UgaXQgcmVxdWlyZXMgYXBwbHlpbmcg cHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBsZWFmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRy ZWZzLmMKaW5kZXggODQ2ZTQ0MTg2YzMuLjZjODZlZTFhZDY0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vc2V0cmVmcy5jCkBAIC0yMTAsNiArMjEwLDkgQEAgc3RhdGljIExpc3QgKnNldF9yZXR1 cm5pbmdfY2xhdXNlX3JlZmVyZW5jZXMoUGxhbm5lckluZm8gKnJvb3QsCiBzdGF0aWMgTGlzdCAq c2V0X3dpbmRvd2FnZ19ydW5jb25kaXRpb25fcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwK IAkJCQkJCQkJCQkJCSAgIExpc3QgKnJ1bmNvbmRpdGlvbiwKIAkJCQkJCQkJCQkJCSAgIFBsYW4g KnBsYW4pOworc3RhdGljIGJvb2wgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2Vy KE5vZGUgKm5vZGUsCisJCQkJCQkJCQkJCQkgUGxhbm5lckluZm8gKnJvb3QpOworc3RhdGljIHZv aWQgcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lk IHZhcmlkKTsKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEzMTYsNiArMTMxOSw1MCBA QCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRvZmZz ZXQpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBTZWFyY2ggdXNhZ2Ugb2Ygc2Vzc2lvbiB2 YXJpYWJsZXMgaW4gc3VicXVlcmllcworICovCit2b2lkCitwdWxsX3VwX2hhc19zZXNzaW9uX3Zh cmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSByb290LT5w YXJzZTsKKworCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCXJvb3QtPmhh c1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkodm9pZCkgcXVlcnlf dHJlZV93YWxrZXIocXVlcnksCisJCQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxl c193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290LCAwKTsKKwl9Cit9CisKK3N0YXRpYyBi b29sCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwgUGxh bm5lckluZm8gKnJvb3QpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOwor CWlmIChJc0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5ICop IG5vZGU7CisKKwkJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlyb290 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJ CS8qIHJlY3Vyc2UgaW50byBzdWJzZWxlY3RzICovCisJCXJldHVybiBxdWVyeV90cmVlX3dhbGtl cigoUXVlcnkgKikgbm9kZSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KKwlyZXR1cm4gZXhwcmVz c2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxr ZXIsCisJCQkJCQkJCSAgKHZvaWQgKikgcm9vdCk7Cit9CisKIC8qCiAgKiBzZXRfaW5kZXhvbmx5 c2Nhbl9yZWZlcmVuY2VzCiAgKgkJRG8gc2V0X3BsYW5fcmVmZXJlbmNlcyBwcm9jZXNzaW5nIG9u IGFuIEluZGV4T25seVNjYW4KQEAgLTIwMTYsOCArMjA2Myw5IEBAIGNvcHlWYXIoVmFyICp2YXIp CiAgKiBUaGlzIGlzIGNvZGUgdGhhdCBpcyBjb21tb24gdG8gYWxsIHZhcmlhbnRzIG9mIGV4cHJl c3Npb24tZml4aW5nLgogICogV2UgbXVzdCBsb29rIHVwIG9wZXJhdG9yIG9wY29kZSBpbmZvIGZv ciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCiAgKiBhZGQgT0lEcyBmcm9tIHJlZ2NsYXNzIENv bnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBhbmQKLSAqIGFkZCBQbGFu SW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIHJvb3QtPmdsb2ItPmlu dmFsSXRlbXMuCi0gKiBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9V UElORygpIGV4cHJlc3Npb25zLgorICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmlu ZWQgZnVuY3Rpb25zIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBpbnRvCisgKiByb290LT5nbG9iLT5p bnZhbEl0ZW1zLiAgV2UgYWxzbyBmaWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JPVVBJ TkcoKQorICogZXhwcmVzc2lvbnMuCiAgKgogICogV2UgYXNzdW1lIGl0J3Mgb2theSB0byB1cGRh dGUgb3Bjb2RlIGluZm8gaW4tcGxhY2UuICBTbyB0aGlzIGNvdWxkIHBvc3NpYmx5CiAgKiBzY3Jp YmJsZSBvbiB0aGUgcGxhbm5lcidzIGlucHV0IGRhdGEgc3RydWN0dXJlcywgYnV0IGl0J3MgT0su CkBAIC0yMTA3LDYgKzIxNTUsMTMgQEAgZml4X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZvICpyb290 LCBOb2RlICpub2RlKQogCQkJCWctPmNvbHMgPSBjb2xzOwogCQl9CiAJfQorCWVsc2UgaWYgKElz QShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJ CWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZWNvcmRfcGxhbl92YXJp YWJsZV9kZXBlbmRlbmN5KHJvb3QsIHAtPnBhcmFtdmFyaWQpOworCX0KIH0KIAogLyoKQEAgLTIx MTYsNiArMjE3MSwxMCBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUg Km5vZGUpCiAgKiBJZiBpdCdzIGEgUEFSQU1fTVVMVElFWFBSLCByZXBsYWNlIGl0IHdpdGggdGhl IGFwcHJvcHJpYXRlIFBhcmFtIGZyb20KICAqIHJvb3QtPm11bHRpZXhwcl9wYXJhbXM7IG90aGVy d2lzZSBubyBjaGFuZ2UgaXMgbmVlZGVkLgogICogSnVzdCBmb3IgcGFyYW5vaWEncyBzYWtlLCB3 ZSBtYWtlIGEgY29weSBvZiB0aGUgbm9kZSBpbiBlaXRoZXIgY2FzZS4KKyAqCisgKiBJZiBpdCdz IGEgUEFSQU1fVkFSSUFCTEUsIHRoZW4gd2UgY29sbGVjdCB1c2VkIHNlc3Npb24gdmFyaWFibGVz IGluCisgKiB0aGUgbGlzdCByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGUuICBBbHNvLCBhc3Np Z24gdGhlIHBhcmFtZXRlcidzCisgKiAicGFyYW1pZCIgdG8gdGhlIHBhcmFtZXRlcidzIHBvc2l0 aW9uIGluIHRoYXQgbGlzdC4KICAqLwogc3RhdGljIE5vZGUgKgogZml4X3BhcmFtX25vZGUoUGxh bm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQpAQCAtMjEzNCw2ICsyMTkzLDQwIEBAIGZpeF9wYXJh bV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKIAkJCWVsb2coRVJST1IsICJ1bmV4 cGVjdGVkIFBBUkFNX01VTFRJRVhQUiBJRDogJWQiLCBwLT5wYXJhbWlkKTsKIAkJcmV0dXJuIGNv cHlPYmplY3QobGlzdF9udGgocGFyYW1zLCBjb2xubyAtIDEpKTsKIAl9CisKKwlpZiAocC0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJaW50CQkJbiA9IDA7CisJCWJvb2wJCWZv dW5kID0gZmFsc2U7CisKKwkJLyogd2Ugd2lsbCBtb2RpZnkgb2JqZWN0ICovCisJCXAgPSAoUGFy YW0gKikgY29weU9iamVjdChwKTsKKworCQkvKgorCQkgKiBOb3csIHdlIGNhbiBhY3R1YWxpemUg bGlzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcywgYW5kIHdlIGNhbgorCQkgKiBjb21wbGV0ZSBwYXJh bWlkIHBhcmFtZXRlci4KKwkJICovCisJCWZvcmVhY2hfb2lkKHZhcmlkLCByb290LT5nbG9iLT5z ZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlpZiAodmFyaWQgPT0gcC0+cGFyYW12YXJpZCkKKwkJ CXsKKwkJCQlwLT5wYXJhbWlkID0gbjsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJYnJlYWs7CisJ CQl9CisJCQluICs9IDE7CisJCX0KKworCQlpZiAoIWZvdW5kKQorCQl7CisJCQlyb290LT5nbG9i LT5zZXNzaW9uVmFyaWFibGVzID0gbGFwcGVuZF9vaWQocm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlh YmxlcywKKwkJCQkJCQkJCQkJCQkgICBwLT5wYXJhbXZhcmlkKTsKKwkJCXAtPnBhcmFtaWQgPSBu OworCQl9CisKKwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJcmV0dXJuIChOb2RlICopIGNv cHlPYmplY3QocCk7CiB9CiAKQEAgLTIxOTUsNyArMjI4OCwxMCBAQCBmaXhfYWx0ZXJuYXRpdmVf c3VicGxhbihQbGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3BsYW4sCiAg KiByZXBsYWNpbmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGluaXRw bGFuIG91dHB1dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRhdGlvbiBm b3IgQWx0ZXJuYXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bjb2RlIGlu Zm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lEcyBmcm9t IHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLgorICog YWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJl bGF0aW9uT2lkcywKKyAqIGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklBQkxFIHBh cmFtcywgYW5kIGNvbGxlY3RpbmcgdGhlCisgKiBPSURzIG9mIHNlc3Npb24gdmFyaWFibGVzIGlu IHRoZSByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZhcmlkIGlz IHRoZSBwb3NpdGlvbiBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3QpLgogICoK ICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9mZnNldCc6 IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIyMTcsNyArMjMxMyw4IEBAIGZp eF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9mZnNldCwg ZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8fAogCQly b290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9IE5JTCB8 fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRlcm5hdGl2 ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlyZXR1cm4g Zml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNjEwLDYgKzM3 MDcsMjUgQEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBP aWQgdHlwaWQpCiAJfQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBzZXNzaW9u IHZhcmlhYmxlLiAgVGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNlc3Npb24gdmFy aWFibGUgaW4gYW4gZXhwcmVzc2lvbiBsaXN0LgorICovCitzdGF0aWMgdm9pZAorcmVjb3JkX3Bs YW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlkKQorewor CVBsYW5JbnZhbEl0ZW0gKmludmFsX2l0ZW0gPSBtYWtlTm9kZShQbGFuSW52YWxJdGVtKTsKKwor CS8qIHBhcmFtaWQgaXMgc3RpbGwgc2Vzc2lvbiB2YXJpYWJsZSBpZCAqLworCWludmFsX2l0ZW0t PmNhY2hlSWQgPSBWQVJJQUJMRU9JRDsKKwlpbnZhbF9pdGVtLT5oYXNoVmFsdWUgPSBHZXRTeXND YWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0 dW0odmFyaWQpKTsKKworCS8qIGFwcGVuZCB0aGlzIHZhcmlhYmxlIHRvIGdsb2JhbCwgcmVnaXN0 ZXIgZGVwZW5kZW5jeSAqLworCXJvb3QtPmdsb2ItPmludmFsSXRlbXMgPSBsYXBwZW5kKHJvb3Qt Pmdsb2ItPmludmFsSXRlbXMsCisJCQkJCQkJCQkgaW52YWxfaXRlbSk7Cit9CisKIC8qCiAgKiBl eHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llcwogICoJCUdpdmVuIGEgcmV3cml0dGVuLCBidXQgbm90 IHlldCBwbGFubmVkLCBxdWVyeSBvciBxdWVyaWVzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVw L3ByZXBqb2ludHJlZS5jCmluZGV4IDg3ZGM2ZjU2YjU3Li4xZWJjODA4YTVlNiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKQEAgLTE1ODUsNiArMTU4NSw5IEBA IHB1bGxfdXBfc2ltcGxlX3N1YnF1ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUs IFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55IFJMUyBjb25kaXRp b25zLCBub3cgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLwogCXBhcnNlLT5oYXNSb3dTZWN1cml0eSB8 PSBzdWJxdWVyeS0+aGFzUm93U2VjdXJpdHk7CiAKKwkvKiBpZiB0aGUgc3VicXVlcnkgaGFkIHNl c3Npb24gdmFyaWFibGVzLCB0aGUgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNT ZXNzaW9uVmFyaWFibGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoK IAkgKiBzdWJxdWVyeSB3b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93 RnVuY3MsIG9yCiAJICogaGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2Ug ZmxhZ3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBi L3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCAyNmEzZTA1MDA4Ni4u MjNjYWZjNzNjM2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVz ZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI0LDYg KzI0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9y LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5o IgpAQCAtOTM2LDYgKzkzNywxMyBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpu b2RlLCBtYXhfcGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+ cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiB3ZSBk b24ndCBzdXBwb3J0IHBhc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLworCQlp ZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKG1heF9w YXJhbGxlbF9oYXphcmRfdGVzdChQUk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKKwkJ CQlyZXR1cm4gdHJ1ZTsKKwkJfQorCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VY RUMgfHwKIAkJCSFsaXN0X21lbWJlcl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFt LT5wYXJhbWlkKSkKIAkJewpAQCAtMjM5MSw2ICsyMzk5LDcgQEAgY29udmVydF9zYW9wX3RvX2hh c2hlZF9zYW9wX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2YWx1ZSBv ZiB0aGUgUGFyYW0uCiAgKiAyLiBGb2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFibGUsIGZ1 bmN0aW9ucyB0byBjb25zdGFudHMuCiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIgbm9kZXMg dG8gdGhlaXIgY29udGFpbmVkIGV4cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1ZSBvZiBz ZXNzaW9uIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAqLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAqLwogTm9kZSAqCkBAIC0yNTE3LDYgKzI1MjYsMjcgQEAgZXZhbF9j b25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJCX0KIAkJ CQl9CisJCQkJZWxzZSBpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSAmJgor CQkJCQkJIGNvbnRleHQtPmVzdGltYXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExlbjsKKwkJ CQkJYm9vbAkJdHlwQnlWYWw7CisJCQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlpc251bGw7 CisKKwkJCQkJZ2V0X3R5cGxlbmJ5dmFsKHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkmdHlw TGVuLCAmdHlwQnlWYWwpOworCisJCQkJCXB2YWwgPSBHZXRTZXNzaW9uVmFyaWFibGUocGFyYW0t PnBhcmFtdmFyaWQsICZpc251bGwpOworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtlQ29uc3Qo cGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2QsCisJCQkJ CQkJCQkJCSAgcGFyYW0tPnBhcmFtY29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5cExlbiwK KwkJCQkJCQkJCQkJICBwdmFsLAorCQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJCQkJICB0 eXBCeVZhbCk7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUsIHNvIGp1 c3QgY29weSB0aGUgUGFyYW0gKG5vIG5lZWQgdG8KQEAgLTQ3MjIsNyArNDc1Miw4IEBAIGlubGlu ZV9mdW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlk LAogCQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8 fAogCQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVlcnl0cmVl LT50YXJnZXRMaXN0KSAhPSAxKQorCQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0 KSAhPSAxKSB8fAorCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdvdG8gZmFp bDsKIAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0 ICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDg5YTFjNzllOTg0Li4zOTgy MGI0ZjU0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAgLTU4LDYgKzU4LDcg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1l c3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rl cy9ub2RlRnVuY3MuaCIKQEAgLTE1Myw2ICsxNTQsNyBAQCBJbml0UGxhbkNhY2hlKHZvaWQpCiAJ Q2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQU1PUE9QSUQsIFBsYW5DYWNoZVN5c0NhbGxi YWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05T RVJWRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0 ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05EQVRBV1JBUFBFUk9JRCwgUGxhbkNhY2hlU3lzQ2Fs bGJhY2ssIChEYXR1bSkgMCk7CisJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soVkFSSUFC TEVPSUQsIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrLCAoRGF0dW0pIDApOwogfQogCiAvKgpAQCAt MjE3Myw3ICsyMTc1LDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0gYXJnLCBPaWQgcmVs aWQpCiAKIC8qCiAgKiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5c2NhY2hlIGludmFs IGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNhY2hlcworICoJCVN5 c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQUk9DT0lELCBOQU1F U1BBQ0VPSUQsCisgKgkJT1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05TRVJWRVJPSUQsIEZPUkVJ R05EQVRBV1JBUFBFUk9JRCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNoZXMuCiAgKgogICogSW52 YWxpZGF0ZSBhbGwgcGxhbnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmll ZCBoYXNoIHZhbHVlLAogICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcgYW55IG1lbWJlciBvZiB0 aGlzIGNhY2hlIGlmIGhhc2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwppbmRleCA3ODIy OTFkOTk5OC4uMDkzNjIyZmJkYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3Iv Zm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0yMDI2LDkgKzIw MjYsMTMgQEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBhcmdudW0p CiAJICovCiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYgKElzQShh cmcsIFBhcmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4pCi0JCXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQYXJhbQkg ICAqcCA9IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4gfHwgcC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRydWU7CisJ fQogCiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0 aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAppbmRleCA2NTY3NzU5NTk1 ZC4uZWM1Njg1ZGY3NzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBAIC0xNzksNiArMTc5LDkgQEAg dHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJLyogcGFydGl0aW9uIGRlc2NyaXB0b3Jz ICovCiAJUGFydGl0aW9uRGlyZWN0b3J5IHBhcnRpdGlvbl9kaXJlY3RvcnkgcGdfbm9kZV9hdHRy KHJlYWRfd3JpdGVfaWdub3JlKTsKKworCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8q IG1hY3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5v ZGUgKi8KQEAgLTUyOSw2ICs1MzIsOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlwbGFj ZWhvbGRlcnNGcm96ZW47CiAJLyogdHJ1ZSBpZiBwbGFubmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0 ZW0gKi8KIAlib29sCQloYXNSZWN1cnNpb247CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxl cyB3ZXJlIHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBU aGUgcmFuZ2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUg aXMgbm8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggNGY1OWUzMGQ2MmQuLjM2MjI2OTljZmM5IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTMxLDYgKzEzMSw5IEBAIHR5cGVkZWYgc3RydWN0IFBs YW5uZWRTdG10CiAJLyogbm9uLW51bGwgaWYgdGhpcyBpcyB1dGlsaXR5IHN0bXQgKi8KIAlOb2Rl CSAgICp1dGlsaXR5U3RtdDsKIAorCS8qIE9JRHMgZm9yIFBBUkFNX1ZBUklBQkxFIFBhcmFtcyAq LworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisKIAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24g aW4gc291cmNlIHN0cmluZyAoY29waWVkIGZyb20gUXVlcnkpICovCiAJLyogc3RhcnQgbG9jYXRp b24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xvY2F0aW9uOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggYi9zcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGxhbm1haW4uaAppbmRleCA5ZDNkZWJjYWIyOC4uYmE0MzA1ZDYxYTcgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oCisrKyBiL3NyYy9pbmNsdWRlL29w dGltaXplci9wbGFubWFpbi5oCkBAIC0xMzEsNCArMTMxLDYgQEAgZXh0ZXJuIHZvaWQgcmVjb3Jk X3BsYW5fZnVuY3Rpb25fZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIGZ1bmNpZCk7 CiBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJv b3QsIE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193 YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpOwogCitleHRlcm4gdm9pZCBw dWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCk7CisKICNlbmRp ZgkJCQkJCQkvKiBQTEFOTUFJTl9IICovCi0tIAoyLjQ5LjAKCg== --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0006-session-variable-fences-parsing.patch" Content-Disposition: attachment; filename="v20250603-2-0006-session-variable-fences-parsing.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9edr9 RnJvbSAyNjA2N2Y3OTliODNlZDU3OGIwNzdkOGJmMTEzODk1NzgzYzViYjRjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDMwIE1heSAyMDI1IDA3OjI3OjI3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNi8xNV0gc2Vzc2lvbiB2YXJpYWJsZSBmZW5jZXMgcGFyc2luZwoKVGhlIHNlc3Npb24g dmFyaWFibGVzIGNhbiBiZSB1c2VkIGluIHF1ZXJ5IG9ubHkgaW5zaWRlIHRoZSB2YXJpYWJsZSBm ZW5jZS4KVGhpcyBpcyBzcGVjaWFsIHN5bnRheCBWQVJJQUJMRSh2YXJuYW1lKSwgdGhhdCBlbGlt aW5hdGVzIGEgcmlzayBvZgpjb2xsaXNpb24gYmV0d2VlbiB2YXJpYWJsZSBhbmQgY29sdW1uIGlk ZW50aWZpZXIuCgpUaGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlIHVzZWQgYXMgcGFyYW1l dGVycyBvZiBDQUxMIG9yIEVYRUNVVEUKY29tbWFuZHMuIFRoZXNlIGNvbW1hbmRzIGV2YWx1YXRl cyBhcmd1bWVudHMgYnkgZGlyZWN0IGNhbGwgb2YgZXhwcmVzc2lvbgpleGVjdXRvciwgYW5kIGRp cmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9y CndpbGwgYmUgaW1wbGVtZW50ZWQgbGF0ZXIgKGluIG5leHQgc3RlcCkuCi0tLQogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgfCAgMTEgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMgICAgIHwgMjg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMg ICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgIHwgIDI4 ICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgfCAyMDggKysrKysrKysr KysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jICAgIHwgICAxICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgIHwgICA3ICsKIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgIHwgIDQ2ICsrKysrCiBzcmMvYmFja2VuZC91dGlscy9j YWNoZS9sc3lzY2FjaGUuYyB8ICAyNCArKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNl LmggICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgIHwgIDEy ICsrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICB8ICAgNSArCiBzcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaCAgICAgICB8ICAgNCArCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jICAg ICAgICB8ICAgMyArLQogMTcgZmlsZXMgY2hhbmdlZCwgNjYxIGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCmluZGV4IDY2ZmEyNjdmYWNjLi42MTM2MDhlNjIwZCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTM4 NSw2ICs1Mzg1LDE3IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQg V0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICBUaGUgc2Vzc2lvbiB2 YXJpYWJsZSBob2xkcyB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMgdmFsdWUgaXMgcHJp dmF0ZQogICAgIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lv biBlbmRzLgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbiBhbiBxdWVyeSB0aGUgc2Vz c2lvbiB2YXJpYWJsZSBjYW4gYmUgdXNlZCBvbmx5IGluc2lkZQorICAgIDxmaXJzdHRlcm0+dmFy aWFibGUgZmVuY2U8L2ZpcnN0dGVybT4uIFRoaXMgaXMgc3BlY2lhbCBzeW50YXggZm9yCisgICAg c2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyLCBhbmQgY2FuIGJlIHVzZWQgb25seSBmb3Igc2Vz c2lvbiB2YXJpYWJsZQorICAgIGlkZW50aWZpZXIuIFRoZSBzcGVjaWFsIHN5bnRheCBmb3IgYWNj ZXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHJlbW92ZXMKKyAgICByaXNrIG9mIGNvbGxpc2lvbnMg YmV0d2VlbiB2YXJpYWJsZSBpZGVudGlmaWVycyBhbmQgY29sdW1uIG5hbWVzLgorPHByb2dyYW1s aXN0aW5nPgorU0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7Cis8L3Byb2dyYW1saXN0 aW5nPgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IDQzMDdjYWQxNWM3Li5iZWFmZWUyYTM0MSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNDk3LDYgKzM0OTcsMjk1IEBAIE5hbWVzRnJvbUxp c3QoTGlzdCAqbmFtZXMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogLS0tLS0KKyAqIElkZW50 aWZ5VmFyaWFibGUgLSB0cnkgdG8gZmluZCBhIHZhcmlhYmxlIGZyb20gYSBsaXN0IG9mIGlkZW50 aWZpZXJzCisgKgorICogUmV0dXJucyB0aGUgT0lEIG9mIHRoZSB2YXJpYWJsZSBmb3VuZCwgb3Ig SW52YWxpZE9pZC4KKyAqCisgKiAibmFtZXMiIGlzIGEgbGlzdCBvZiB1cCB0byBmb3VyIGlkZW50 aWZpZXJzOyBwb3NzaWJsZSBtZWFuaW5ncyBhcmU6CisgKiAtIHZhcmlhYmxlICAoc2VhcmNoZWQg b24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFyaWFibGUKKyAqIC0gdmFyaWFibGUu YXR0cmlidXRlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFy aWFibGUuYXR0cmlidXRlCisgKiAtIGRhdGFiYXNlLnNjaGVtYS52YXJpYWJsZQorICogLSBkYXRh YmFzZS5zY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKgorICogSWYgdGhlcmUgaXMgbW9yZSB0 aGFuIG9uZSB3YXkgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSwgIm5vdF91bmlxdWUiIHdpbGwgYmUK KyAqIHNldCB0byB0cnVlLgorICoKKyAqIFVubGVzcyAibm9lcnJvciIgaXMgdHJ1ZSwgYW4gZXJy b3IgaXMgcmFpc2VkIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gZm91cgorICogIGlkZW50aWZpZXJz IGluIHRoZSBsaXN0LCBvciBpZiB0aGUgbmFtZWQgZGF0YWJhc2UgaXMgbm90IHRoZSBjdXJyZW50 IG9uZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGlmIHdlIHdhbnQgdG8gaWRlbnRpZnkgYSBzaGFkb3dl ZCB2YXJpYWJsZS4KKyAqCisgKiBJZiBhbiBhdHRyaWJ1dGUgaXMgaWRlbnRpZmllZCwgaXQgaXMg c3RvcmVkIGluICJhdHRybmFtZSIsIG90aGVyd2lzZSB0aGUKKyAqIHBhcmFtZXRlciBpcyBzZXQg dG8gTlVMTC4KKyAqCisgKiBUaGUgaWRlbnRpZmllZCBzZXNzaW9uIHZhcmlhYmxlIHdpbGwgYmUg bG9ja2VkIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrLgorICogLS0tLS0KKyAqLworT2lkCitJZGVu dGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUsIGJvb2wgKm5vdF91bmlx dWUsIGJvb2wgbm9lcnJvcikKK3sKKwlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJT2lkCQkJ b2xkX3ZhcmlkID0gSW52YWxpZE9pZDsKKwl1aW50NjQJCWludmFsX2NvdW50OworCWJvb2wJCXJl dHJ5ID0gZmFsc2U7CisKKwkvKgorCSAqIERETCBvcGVyYXRpb25zIGNhbiBjaGFuZ2UgdGhlIHJl c3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4gIFNpbmNlIGFsbCBzdWNoCisJICogb3BlcmF0aW9ucyB3 aWxsIGdlbmVyYXRlIGludmFsaWRhdGlvbiBtZXNzYWdlcywgd2Uga2VlcCB0cmFjayBvZgorCSAq IHdoZXRoZXIgYW55IHN1Y2ggbWVzc2FnZXMgc2hvdyB1cCB3aGlsZSB3ZSdyZSBwZXJmb3JtaW5n IHRoZSBvcGVyYXRpb24sCisJICogYW5kIHJldHJ5IHVudGlsIGVpdGhlciAoMSkgbm8gbW9yZSBp bnZhbGlkYXRpb24gbWVzc2FnZXMgc2hvdyB1cCBvciAoMikKKwkgKiB0aGUgYW5zd2VyIGRvZXNu J3QgY2hhbmdlLgorCSAqLworCWZvciAoOzspCisJeworCQlOb2RlCSAgICpmaWVsZDEgPSBOVUxM OworCQlOb2RlCSAgICpmaWVsZDIgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDMgPSBOVUxMOwor CQlOb2RlCSAgICpmaWVsZDQgPSBOVUxMOworCQljaGFyCSAgICphID0gTlVMTDsKKwkJY2hhcgkg ICAqYiA9IE5VTEw7CisJCWNoYXIJICAgKmMgPSBOVUxMOworCQljaGFyCSAgICpkID0gTlVMTDsK KwkJT2lkCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IEludmFsaWRPaWQ7CisJCU9pZAkJCXZhcm9p ZF93aXRoX2F0dHIgPSBJbnZhbGlkT2lkOworCisJCSpub3RfdW5pcXVlID0gZmFsc2U7CisJCSph dHRybmFtZSA9IE5VTEw7CisJCXZhcmlkID0gSW52YWxpZE9pZDsKKworCQlpbnZhbF9jb3VudCA9 IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcjsKKworCQlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5h bWVzKSkKKwkJeworCQkJY2FzZSAxOgorCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwor CQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKworCQkJCXZhcmlkID0gTG9va3VwVmFy aWFibGUoTlVMTCwgc3RyVmFsKGZpZWxkMSksIHRydWUpOworCQkJCWJyZWFrOworCisJCQljYXNl IDI6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCWZpZWxkMiA9IGxzZWNvbmQo bmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCWEgPSBzdHJW YWwoZmllbGQxKTsKKworCQkJCWlmIChJc0EoZmllbGQyLCBTdHJpbmcpKQorCQkJCXsKKwkJCQkJ Lyogd2hlbiBib3RoIGZpZWxkcyBhcmUgb2Ygc3RyaW5nIHR5cGUgKi8KKwkJCQkJYiA9IHN0clZh bChmaWVsZDIpOworCisJCQkJCS8qCisJCQkJCSAqIGEuYiBjYW4gbWVhbiAic2NoZW1hIi4idmFy aWFibGUiIG9yCisJCQkJCSAqICJ2YXJpYWJsZSIuImF0dHJpYnV0ZSIuICBDaGVjayBib3RoIHZh cmlhbnRzLCBhbmQKKwkJCQkJICogcmV0dXJucyBJbnZhbGlkT2lkIHdpdGggbm90X3VuaXF1ZSBm bGFnLCB3aGVuIGJvdGgKKwkJCQkJICogaW50ZXJwcmV0YXRpb25zIGFyZSBwb3NzaWJsZS4KKwkJ CQkJICovCisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0 cnVlKTsKKwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIGEsIHRy dWUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkvKiB0aGUgbGFzdCBmaWVsZCBvZiBs aXN0IGNhbiBiZSBzdGFyIHRvbyAqLworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgQV9TdGFyKSk7 CisKKwkJCQkJLyoKKwkJCQkJICogVGhlIHN5bnRheCBpZGVudC4qIGlzIHVzZWQgb25seSBieSBy ZWxhdGlvbiBhbGlhc2VzLAorCQkJCQkgKiBhbmQgdGhlbiB0aGlzIGlkZW50aWZpZXIgY2Fubm90 IGJlIGEgcmVmZXJlbmNlIHRvCisJCQkJCSAqIHNlc3Npb24gdmFyaWFibGUuCisJCQkJCSAqLwor CQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQl9CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2YXJv aWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCXsK KwkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0 dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikp CisJCQkJeworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQorCQkJCWVs c2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJeworCQkJCQkqYXR0cm5h bWUgPSBiOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJfQorCQkJCWJyZWFr OworCisJCQljYXNlIDM6CisJCQkJeworCQkJCQlib29sCQlmaWVsZDFfaXNfY2F0YWxvZyA9IGZh bHNlOworCisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQkJZmllbGQyID0gbHNl Y29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChuYW1lcyk7CisKKwkJCQkJQXNzZXJ0 KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgU3RyaW5nKSk7 CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisK KwkJCQkJaWYgKElzQShmaWVsZDMsIFN0cmluZykpCisJCQkJCXsKKwkJCQkJCWMgPSBzdHJWYWwo ZmllbGQzKTsKKworCQkJCQkJLyoKKwkJCQkJCSAqIGEuYi5jIGNhbiBtZWFuIGNhdGFsb2cuc2No ZW1hLnZhcmlhYmxlIG9yCisJCQkJCQkgKiBzY2hlbWEudmFyaWFibGUuYXR0cmlidXRlLgorCQkJ CQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMsIGFuZCBzZXQgbm90X3VuaXF1ZSBm bGFnLCB3aGVuCisJCQkJCQkgKiBib3RoIGludGVycHJldGF0aW9ucyBhcmUgcG9zc2libGUuCisJ CQkJCQkgKgorCQkJCQkJICogV2hlbiB0aGlyZCBub2RlIGlzIHN0YXIsIG9ubHkgcG9zc2libGUK KwkJCQkJCSAqIGludGVycHJldGF0aW9uIGlzIHNjaGVtYS52YXJpYWJsZS4qLCBidXQgdGhpcwor CQkJCQkJICogcGF0dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5vdy4KKwkJCQkJCSAqLworCQkJCQkJ dmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIsIHRydWUpOworCisJCQkJCQkv KgorCQkJCQkJICogY2hlY2sgcGF0dGVybiBjYXRhbG9nLnNjaGVtYS52YXJpYWJsZSBvbmx5IHdo ZW4KKwkJCQkJCSAqIHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRvIHN1Y2Nlc3MuCisJCQkJCQkgKi8K KwkJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgPT0g MCkKKwkJCQkJCXsKKwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxvZyA9IHRydWU7CisJCQkJCQkJdmFy b2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGIsIGMsIHRydWUpOworCQkJCQkJfQor CQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0KElzQShmaWVsZDMsIEFfU3Rh cikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0KKworCQkJCQlpZiAoT2lkSXNW YWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIp KQorCQkJCQl7CisJCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJCQkJCQl2YXJpZCA9IHZhcm9p ZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRf d2l0aG91dF9hdHRyKSkKKwkJCQkJeworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRy OworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJ CQkJCXsKKwkJCQkJCSphdHRybmFtZSA9IGM7CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0 dHI7CisJCQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBXaGVuIHdlIGRpZG4ndCBmaW5kIHZhcmlh YmxlLCB3ZSBjYW4gKHdoZW4gaXQgaXMKKwkJCQkJICogYWxsb3dlZCkgcmFpc2UgY3Jvc3MtZGF0 YWJhc2UgcmVmZXJlbmNlIGVycm9yLgorCQkJCQkgKi8KKwkJCQkJaWYgKCFPaWRJc1ZhbGlkKHZh cmlkKSAmJiAhbm9lcnJvciAmJiAhZmllbGQxX2lzX2NhdGFsb2cpCisJCQkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogJXMiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCX0K KwkJCQlicmVhazsKKworCQkJY2FzZSA0OgorCQkJCXsKKwkJCQkJZmllbGQxID0gbGluaXRpYWwo bmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJZmllbGQzID0gbHRo aXJkKG5hbWVzKTsKKwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChuYW1lcyk7CisKKwkJCQkJQXNzZXJ0 KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgU3RyaW5nKSk7 CisJCQkJCUFzc2VydChJc0EoZmllbGQzLCBTdHJpbmcpKTsKKworCQkJCQlhID0gc3RyVmFsKGZp ZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJCQkJYyA9IHN0clZhbChmaWVsZDMp OworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgImEiIGlzIHVzZWQgYXMgY2F0YWxv ZyBuYW1lIC0gY2hlY2sgaXQuCisJCQkJCSAqLworCQkJCQlpZiAoc3RyY21wKGEsIGdldF9kYXRh YmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJCXsKKwkJCQkJCWlmICghbm9lcnJv cikKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFU VVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkJIGVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVm ZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJCQkJCU5hbWVMaXN0VG9T dHJpbmcobmFtZXMpKSkpOworCQkJCQl9CisKKwkJCQkJaWYgKElzQShmaWVsZDQsIFN0cmluZykp CisJCQkJCXsKKwkJCQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsKKwkJCQkJfQorCQkJCQllbHNlCisJ CQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQ0LCBBX1N0YXIpKTsKKwkJCQkJCXJldHVybiBJ bnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJKmF0dHJuYW1lID0gZDsKKwkJCQkJdmFyaWQgPSBM b29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWRlZmF1 bHQ6CisJCQkJaWYgKCFub2Vycm9yKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkgZXJybXNnKCJpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJCQkJTmFtZUxp c3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCX0KKworCQkv KgorCQkgKiBJZiwgdXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sgdGhlIHNhbWUgT0lEIHdlIGRpZCBs YXN0IHRpbWUsIHRoZW4gdGhlCisJCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlcyB3ZSBwcm9jZXNz ZWQgZGlkIG5vdCBjaGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4KKwkJICogU28gd2UncmUgZG9uZS4K KwkJICoKKwkJICogSWYgd2UgZ290IGEgZGlmZmVyZW50IE9JRCwgd2UndmUgbG9ja2VkIHRoZSB2 YXJpYWJsZSB0aGF0IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlzIG5hbWUgcmF0aGVyIHRoYW4gdGhl IG9uZSB0aGF0IGRvZXMgbm93LiAgU28gcmVsZWFzZSB0aGUKKwkJICogbG9jay4KKwkJICovCisJ CWlmIChyZXRyeSkKKwkJeworCQkJaWYgKG9sZF92YXJpZCA9PSB2YXJpZCkKKwkJCQlicmVhazsK KworCQkJaWYgKE9pZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVj dChWYXJpYWJsZVJlbGF0aW9uSWQsIG9sZF92YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJ fQorCisJCS8qCisJCSAqIExvY2sgdGhlIHZhcmlhYmxlLiAgVGhpcyB3aWxsIGFsc28gYWNjZXB0 IGFueSBwZW5kaW5nIGludmFsaWRhdGlvbgorCQkgKiBtZXNzYWdlcy4gIElmIHdlIGdvdCBiYWNr IEludmFsaWRPaWQsIGluZGljYXRpbmcgbm90IGZvdW5kLCB0aGVuCisJCSAqIHRoZXJlJ3Mgbm90 aGluZyB0byBsb2NrLCBidXQgd2UgYWNjZXB0IGludmFsaWRhdGlvbiBtZXNzYWdlcworCQkgKiBh bnl3YXksIHRvIGZsdXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNoZSBlbnRyaWVzIHRoYXQgbWF5IGJl CisJCSAqIGxpbmdlcmluZy4KKwkJICovCisJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCQlB Y2NlcHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQllbHNlCisJCQlMb2NrRGF0YWJhc2VPYmpl Y3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQkv KgorCQkgKiBJZiBubyBpbnZhbGlkYXRpb24gbWVzc2FnZSB3ZXJlIHByb2Nlc3NlZCwgd2UncmUg ZG9uZSEKKwkJICovCisJCWlmIChpbnZhbF9jb3VudCA9PSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNv dW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7CisJCW9sZF92YXJpZCA9IHZhcmlk OworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQorCisJcmV0dXJuIHZhcmlkOworfQorCiAvKgog ICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2ZW4gYSBwb3NzaWJseS1xdWFsaWZp ZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmluZyBub2RlcywKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYwppbmRleCAzNGI2NDEwZDZhMi4uYzUxNmU4ZjM2YjggMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVw YXJlLmMKQEAgLTM0MSw2ICszNDEsMTUgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBQcmVwYXJlZFN0YXRlbWVudCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0K IAorCS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBk aXJlY3QgZXhwcmVzc2lvbgorCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBz dXBwb3J0IHNlc3Npb24gdmFyaWFibGVzIHlldC4KKwkgKiBJdCB3aWxsIGJlIGVuYWJsZWQgbGF0 ZXIuIFRoaXMgY2FzZSBzaG91bGQgYmUgYmxvY2tlZCBwYXJzZXIKKwkgKiBieSBleHByX2tpbmRf YWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzLCBzbyBvbmx5IGFzc2VydGlvbnMgaXMKKwkgKiB1c2Vk IGhlcmUuCisJICovCisJQXNzZXJ0KCFwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyk7CisK IAkvKiBQcmVwYXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRl cyA9IEV4ZWNQcmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCmluZGV4IDdiYzgyMzUwN2YxLi5jZDYwOWM2ZTQ3OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK QEAgLTE2NzMsNiArMTY3Myw5IEBAIGV4cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQlj YXNlIFRfUGFyYW1SZWY6CiAJCQlsb2MgPSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIpLT5sb2Nh dGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9ICgoY29u c3QgVmFyaWFibGVGZW5jZSAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBU X0FfQ29uc3Q6CiAJCQlsb2MgPSAoKGNvbnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0aW9uOwog CQkJYnJlYWs7CkBAIC00NzA1LDYgKzQ3MDgsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtl cl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJ CWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMgY29udGFp biBub3RoaW5nIGludGVyZXN0aW5nICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWco bm9kZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggYTE2ZmRkNjU2MDEuLjBkNWVmZWE1Y2E5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMKQEAgLTY4Nyw2ICs2ODcsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1 bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBz dGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dz OworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFi bGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xMTEy LDYgKzExMTMsNyBAQCB0cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5z ZXJ0U3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJn ZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAK IAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE1NzcsNiArMTU3 OSw3IEBAIHRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10 ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7 CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5o YXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tp bmdDbGF1c2UpCiAJewpAQCAtMTgwMyw2ICsxODA2LDcgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0g bWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1Ykxp bmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlv bnMocHN0YXRlLCBxcnkpOwogCkBAIC0yMDU0LDYgKzIwNTgsNyBAQCB0cmFuc2Zvcm1TZXRPcGVy YXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmhh c1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0 U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+ cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNz aW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAgLTI1Mjks NiArMjUzNCw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSZXR1 cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93 RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJ cXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29s bGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI1OTYsNiArMjYwMiw3IEBAIHRyYW5zZm9ybVVw ZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCiAJcXJ5LT5o YXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5r cyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25z KHBzdGF0ZSwgcXJ5KTsKIApAQCAtMzA3Miw2ICszMDc5LDggQEAgdHJhbnNmb3JtUExBc3NpZ25T dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCQkJCQkJCSAgIChM b2NraW5nQ2xhdXNlICopIGxmaXJzdChsKSwgZmFsc2UpOwogCX0KIAorCXFyeS0+aGFzU2Vzc2lv blZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJYXNzaWduX3F1 ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCiAJLyogdGhpcyBtdXN0IGJlIGRvbmUgYWZ0 ZXIgY29sbGF0aW9ucywgZm9yIHJlbGlhYmxlIGNvbXBhcmlzb24gb2YgZXhwcnMgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CmluZGV4IDYxYTVmNzYyZDg1Li4yOGJkMjZjYzkyMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01MjUs NyArNTI1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglkZWZfYXJn IGNvbHVtbkVsZW0gd2hlcmVfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCiAJCQkJYV9l eHByIGJfZXhwciBjX2V4cHIgQWV4cHJDb25zdCBpbmRpcmVjdGlvbl9lbCBvcHRfc2xpY2VfYm91 bmQKIAkJCQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUgeG1sdGFi bGUgYXJyYXlfZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcKKwkJCQlP cHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlhYmxlX2ZlbmNlCiAldHlwZSA8bGlz dD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJvbV9pdGVt IHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9wdF9vcmRp bmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCkBAIC04ODIsNyArODgyLDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyogaWRlYWxs eSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29jCUlERU5U IFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENVQkUgUk9M TFVQCi0JCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhPVVQgUEFU SAorCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VUIFBBVEgg VkFSSUFCTEUKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9wcyBhbmQg dXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQknKicgJy8n ICclJwpAQCAtMTU2NTksNiArMTU2NTksMTkgQEAgY19leHByOgkJY29sdW1ucmVmCQkJCQkJCQl7 ICQkID0gJDE7IH0KIAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8IHZhcmlh YmxlX2ZlbmNlIG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJaWYgKCQyKQorCQkJCQl7CisJ CQkJCQlBX0luZGlyZWN0aW9uICpuID0gbWFrZU5vZGUoQV9JbmRpcmVjdGlvbik7CisKKwkJCQkJ CW4tPmFyZyA9IChOb2RlICopICQxOworCQkJCQkJbi0+aW5kaXJlY3Rpb24gPSBjaGVja19pbmRp cmVjdGlvbigkMiwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQkJfQor CQkJCQllbHNlCisJCQkJCQkkJCA9ICQxOworCQkJCX0KIAkJCXwgY2FzZV9leHByCiAJCQkJeyAk JCA9ICQxOyB9CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTcwNDUsNiArMTcwNTgsMTcgQEAgY2FzZV9h cmc6CWFfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsg JCQgPSBOVUxMOyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlWQVJJQUJMRSAnKCcgYW55 X25hbWUgJyknCisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1ha2VOb2RlKFZhcmlh YmxlRmVuY2UpOworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZmLT5sb2NhdGlvbiA9 IEAzOworCQkJCQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBjb2x1bW5yZWY6CUNv bElkCiAJCQkJewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5c2Nhbm5l cik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAxZjhlMmQ1NDY3My4uODE5ZGRiMDU1N2Ig MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTUsNiArMTUsNyBAQAogCiAjaW5jbHVkZSAi cG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCkBAIC03Nyw2ICs3OCw3IEBAIHN0YXRpYyBO b2RlICp0cmFuc2Zvcm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTm9k ZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9u ICppbmQpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgVHlwZUNhc3QgKnRjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0ZUNsYXVzZSAqYyk7CitzdGF0aWMgTm9kZSAqdHJhbnNm b3JtVmFyaWFibGVGZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhcmlhYmxlRmVuY2UgKnZmKTsK IHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2JqZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJCQkJCQlKc29uT2JqZWN0Q29uc3RydWN0b3IgKmN0b3IpOwogc3RhdGlj IE5vZGUgKnRyYW5zZm9ybUpzb25BcnJheUNvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwK QEAgLTEwNiw3ICsxMDgsOSBAQCBzdGF0aWMgRXhwciAqbWFrZV9kaXN0aW5jdF9vcChQYXJzZVN0 YXRlICpwc3RhdGUsIExpc3QgKm9wbmFtZSwKIAkJCQkJCQkgIE5vZGUgKmx0cmVlLCBOb2RlICpy dHJlZSwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlz dGluY3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwg Tm9kZSAqYXJnKTsKLQorc3RhdGljIE5vZGUgKm1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJz ZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0 eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkJCQkgIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRp b24pOwogCiAvKgogICogdHJhbnNmb3JtRXhwciAtCkBAIC0zNzAsNiArMzc0LDEwIEBAIHRyYW5z Zm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCXJlc3Vs dCA9IHRyYW5zZm9ybUpzb25GdW5jRXhwcihwc3RhdGUsIChKc29uRnVuY0V4cHIgKikgZXhwcik7 CiAJCQlicmVhazsKIAorCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXJlc3VsdCA9IHRyYW5z Zm9ybVZhcmlhYmxlRmVuY2UocHN0YXRlLCAoVmFyaWFibGVGZW5jZSAqKSBleHByKTsKKwkJCWJy ZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGQgbm90IHJlYWNoIGhlcmUgKi8KIAkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVUYWcoZXhw cikpOwpAQCAtOTAzLDYgKzkxMSwxMzUgQEAgdHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogUmV0 dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBleHByZXNzaW9uIGtpbmQgaXMgdmFsaWQgZm9yIHNlc3Np b24gdmFyaWFibGVzLgorICogU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHVzZWQgZXZlcnl3aGVy ZSB3aGVyZSBleHRlcm5hbCBwYXJhbWV0ZXJzIGNhbiBiZQorICogdXNlZC4gIFNlc3Npb24gdmFy aWFibGVzIGFyZSBub3QgYWxsb3dlZCBpbiBEREwgY29tbWFuZHMgb3IgaW4gY29uc3RyYWludHMu CisgKgorICogQW4gaWRlbnRpZmllciBjYW4gYmUgcGFyc2VkIGFzIGEgc2Vzc2lvbiB2YXJpYWJs ZSBvbmx5IGZvciBleHByZXNzaW9uIGtpbmRzCisgKiB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBh cmUgYWxsb3dlZC4gIFRoaXMgaXMgdGhlIHByaW1hcnkgdXNhZ2Ugb2YgdGhpcworICogZnVuY3Rp b24uCisgKgorICogVGhlIHNlY29uZCB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGRlY2lk ZSB3aGV0aGVyIGEgImNvbHVtbiBkb2VzIG5vdAorICogZXhpc3QiIG9yIGEgImNvbHVtbiBvciB2 YXJpYWJsZSBkb2VzIG5vdCBleGlzdCIgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUKKyAqIHByaW50 ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFibGVz IGNhbm5vdCBiZQorICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3IgbWVz c2FnZS4KKyAqLworc3RhdGljIGJvb2wKK2V4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJs ZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKK3sKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsK KworCXN3aXRjaCAocF9leHByX2tpbmQpCisJeworCQljYXNlIEVYUFJfS0lORF9OT05FOgorCQkJ QXNzZXJ0KGZhbHNlKTsJCS8qIGNhbid0IGhhcHBlbiAqLworCQkJcmV0dXJuIGZhbHNlOworCisJ CS8qIHNlc3Npb24gdmFyaWFibGVzIGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfT1RIRVI6 CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fT046CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fU1VCU0VM RUNUOgorCQljYXNlIEVYUFJfS0lORF9GUk9NX0ZVTkNUSU9OOgorCQljYXNlIEVYUFJfS0lORF9X SEVSRToKKwkJY2FzZSBFWFBSX0tJTkRfSEFWSU5HOgorCQljYXNlIEVYUFJfS0lORF9GSUxURVI6 CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19QQVJUSVRJT046CisJCWNhc2UgRVhQUl9LSU5EX1dJ TkRPV19PUkRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JBTkdFOgorCQljYXNl IEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUk9XUzoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZS QU1FX0dST1VQUzoKKwkJY2FzZSBFWFBSX0tJTkRfU0VMRUNUX1RBUkdFVDoKKwkJY2FzZSBFWFBS X0tJTkRfVVBEQVRFX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1NPVVJDRToKKwkJ Y2FzZSBFWFBSX0tJTkRfTUVSR0VfV0hFTjoKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfUkVUVVJO SU5HOgorCQljYXNlIEVYUFJfS0lORF9HUk9VUF9CWToKKwkJY2FzZSBFWFBSX0tJTkRfT1JERVJf Qlk6CisJCWNhc2UgRVhQUl9LSU5EX0RJU1RJTkNUX09OOgorCQljYXNlIEVYUFJfS0lORF9MSU1J VDoKKwkJY2FzZSBFWFBSX0tJTkRfT0ZGU0VUOgorCQljYXNlIEVYUFJfS0lORF9SRVRVUk5JTkc6 CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFUzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdM RToKKwkJCXJlc3VsdCA9IHRydWU7CisJCQlicmVhazsKKworCQkvKiBzZXNzaW9uIHZhcmlhYmxl cyBub3QgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9JTlNFUlRfVEFSR0VUOgorCQljYXNl IEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfQ0FMTF9BUkdV TUVOVDoKKwkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKKwkJY2FzZSBFWFBSX0tJ TkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQ UkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfUFJFRElDQVRFOgorCQljYXNlIEVYUFJf S0lORF9TVEFUU19FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9UUklHR0VSX1dIRU46CisJ CWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9CT1VORDoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElU SU9OX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CisJCWNh c2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJ CWNhc2UgRVhQUl9LSU5EX0FMVEVSX0NPTF9UUkFOU0ZPUk06CisJCWNhc2UgRVhQUl9LSU5EX1BP TElDWToKKwkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKKwkJCXJlc3VsdCA9IGZhbHNlOwor CQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIE5vZGUgKgordHJh bnNmb3JtVmFyaWFibGVGZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhcmlhYmxlRmVuY2UgKnZm KQoreworCU5vZGUJICAgKnJlc3VsdDsKKwlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJY2hh cgkgICAqYXR0cm5hbWUgPSBOVUxMOworCWJvb2wJCW5vdF91bmlxdWU7CisKKwkvKiBWYXJpYWJs ZUZlbmNlIGNhbiBiZSB1c2VkIG9ubHkgaW4gY29udGV4dCB3aGVuIHZhcmlhYmxlcyBhcmUgc3Vw cG9ydGVkICovCisJaWYgKCFleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0 ZS0+cF9leHByX2tpbmQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSByZWZl cmVuY2UgaXMgbm90IHN1cHBvcnRlZCBoZXJlIiksCisJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJLyogdGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9u IHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJdmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKHZmLT52 YXJuYW1lLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisKKwlpZiAobm90X3VuaXF1 ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19QQVJB TUVURVIpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlIFwiJXNcIiBp cyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2Zi0+dmFybmFtZSkpLAorCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7CisKKwlpZiAoT2lk SXNWYWxpZCh2YXJpZCkpCisJeworCQlPaWQJCQl0eXBpZDsKKwkJaW50MzIJCXR5cG1vZDsKKwkJ T2lkCQkJY29sbGlkOworCisJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxp ZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNvbGxpZCk7CisKKwkJcmVz dWx0ID0gbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKKwkJCQkJCQkJCQl2YXJpZCwg dHlwaWQsIHR5cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJCWF0dHJuYW1lLCB2Zi0+bG9jYXRpb24p OworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2Vz bid0IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcodmYtPnZhcm5hbWUpKSwKKwkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOworCisJcmV0dXJuIHJl c3VsdDsKK30KKwogLyogVGVzdCB3aGV0aGVyIGFuIGFfZXhwciBpcyBhIHBsYWluIE5VTEwgY29u c3RhbnQgb3Igbm90ICovCiBzdGF0aWMgYm9vbAogZXhwcklzTnVsbENvbnN0YW50KE5vZGUgKmFy ZykKQEAgLTMxMTgsNiArMzI1NSw3NSBAQCBtYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFy c2VTdGF0ZSAqcHN0YXRlLCBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKQogCXJldHVybiAo Tm9kZSAqKSBudDsKIH0KIAorLyoKKyAqIEdlbmVyYXRlIHBhcmFtIHZhcmlhYmxlIGZvciByZWZl cmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgTm9kZSAqCittYWtlUGFyYW1T ZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJIE9pZCB2YXJpZCwgT2lk IHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkgY2hhciAqYXR0cm5hbWUs IGludCBsb2NhdGlvbikKK3sKKwlQYXJhbQkgICAqcGFyYW07CisKKwlwYXJhbSA9IG1ha2VOb2Rl KFBhcmFtKTsKKworCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwlwYXJhbS0+ cGFyYW12YXJpZCA9IHZhcmlkOworCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwlwYXJhbS0+ cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisJcGFyYW0tPnBhcmFtY29sbGlkID0gY29sbGlkOworCisJ cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJaWYgKGF0dHJuYW1lICE9 IE5VTEwpCisJeworCQlUdXBsZURlc2MJdHVwZGVzYzsKKwkJaW50CQkJaTsKKworCQl0dXBkZXNj ID0gbG9va3VwX3Jvd3R5cGVfdHVwZGVzY19ub2Vycm9yKHR5cGlkLCB0eXBtb2QsIHRydWUpOwor CQlpZiAoIXR1cGRlc2MpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wiIGlz IG9mIHR5cGUgXCIlc1wiLCB3aGljaCBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQkJ Z2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkp LAorCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1h dF90eXBlX2JlKHR5cGlkKSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2Nh dGlvbikpKTsKKworCQlmb3IgKGkgPSAwOyBpIDwgdHVwZGVzYy0+bmF0dHM7IGkrKykKKwkJewor CQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ID0gVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKTsKKwor CQkJaWYgKHN0cmNtcChhdHRybmFtZSwgTmFtZVN0cihhdHQtPmF0dG5hbWUpKSA9PSAwICYmCisJ CQkJIWF0dC0+YXR0aXNkcm9wcGVkKQorCQkJeworCQkJCS8qIHN1Y2Nlc3MsIHNvIGdlbmVyYXRl IGEgRmllbGRTZWxlY3QgZXhwcmVzc2lvbiAqLworCQkJCUZpZWxkU2VsZWN0ICpmc2VsZWN0ID0g bWFrZU5vZGUoRmllbGRTZWxlY3QpOworCisJCQkJZnNlbGVjdC0+YXJnID0gKEV4cHIgKikgcGFy YW07CisJCQkJZnNlbGVjdC0+ZmllbGRudW0gPSBpICsgMTsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0 eXBlID0gYXR0LT5hdHR0eXBpZDsKKwkJCQlmc2VsZWN0LT5yZXN1bHR0eXBtb2QgPSBhdHQtPmF0 dHR5cG1vZDsKKwkJCQkvKiBzYXZlIGF0dHJpYnV0ZSdzIGNvbGxhdGlvbiBmb3IgcGFyc2VfY29s bGF0ZS5jICovCisJCQkJZnNlbGVjdC0+cmVzdWx0Y29sbGlkID0gYXR0LT5hdHRjb2xsYXRpb247 CisKKwkJCQlSZWxlYXNlVHVwbGVEZXNjKHR1cGRlc2MpOworCQkJCXJldHVybiAoTm9kZSAqKSBm c2VsZWN0OworCQkJfQorCQl9CisKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBj b2x1bW4gXCIlc1wiIGluIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQlhdHRybmFtZSwKKwkJ CQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFy aWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwKKwkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJfQorCisJcmV0dXJuIChOb2Rl ICopIHBhcmFtOworfQorCiAvKgogICogUHJvZHVjZSBhIHN0cmluZyBpZGVudGlmeWluZyBhbiBl eHByZXNzaW9uIGJ5IGtpbmQuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX21lcmdlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwppbmRleCA1MWQ3 NzAzZWZmNy4uMjQ0ZWZjZGRmMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9tZXJnZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCkBAIC00MDUs NiArNDA1LDcgQEAgdHJhbnNmb3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTWVyZ2VT dG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gZmFsc2U7CiAJcXJ5LT5oYXNTdWJM aW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMg PSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRp b25zKHBzdGF0ZSwgcXJ5KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDRhYmEw ZDlkNGQ1Li5jZjAxYmZmNjVhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtMjAz NCw2ICsyMDM0LDEzIEBAIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbChOb2RlICpub2RlLCBjaGFyICoq bmFtZSkKIAkJCQkJCSAoaW50KSAoKEpzb25GdW5jRXhwciAqKSBub2RlKS0+b3ApOwogCQkJfQog CQkJYnJlYWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJeworCQkJCS8qIHJldHVybiBs YXN0IGZpZWxkIG5hbWUgKi8KKwkJCQkqbmFtZSA9IHN0clZhbChsbGFzdCgoKFZhcmlhYmxlRmVu Y2UgKikgbm9kZSktPnZhcm5hbWUpKTsKKwkJCQlyZXR1cm4gMjsKKwkJCX0KKwkJCWJyZWFrOwog CQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4 IDNkNmU2YmRiZmQyLi41MmI4NjczZWVkOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpA QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5k cy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2tleXdvcmRzLmgiCkBAIC01MzQsNiArNTM1LDcgQEAgc3RhdGljIGNoYXIgKmdlbmVy YXRlX2Z1bmN0aW9uX25hbWUoT2lkIGZ1bmNpZCwgaW50IG5hcmdzLAogc3RhdGljIGNoYXIgKmdl bmVyYXRlX29wZXJhdG9yX25hbWUoT2lkIG9wZXJpZCwgT2lkIGFyZzEsIE9pZCBhcmcyKTsKIHN0 YXRpYyB2b2lkIGFkZF9jYXN0X3RvKFN0cmluZ0luZm8gYnVmLCBPaWQgdHlwaWQpOwogc3RhdGlj IGNoYXIgKmdlbmVyYXRlX3F1YWxpZmllZF90eXBlX25hbWUoT2lkIHR5cGlkKTsKK3N0YXRpYyBj aGFyICpnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsKIHN0YXRpYyB0 ZXh0ICpzdHJpbmdfdG9fdGV4dChjaGFyICpzdHIpOwogc3RhdGljIGNoYXIgKmZsYXR0ZW5fcmVs b3B0aW9ucyhPaWQgcmVsaWQpOwogc3RhdGljIHZvaWQgZ2V0X3JlbG9wdGlvbnMoU3RyaW5nSW5m byBidWYsIERhdHVtIHJlbG9wdGlvbnMpOwpAQCAtODgwMyw2ICs4ODA1LDE0IEBAIGdldF9wYXJh bWV0ZXIoUGFyYW0gKnBhcmFtLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJCX0KIAl9CiAK KwkvKiB0cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKi8KKwlp ZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWFwcGVuZFN0cmlu Z0luZm8oY29udGV4dC0+YnVmLCAiVkFSSUFCTEUoJXMpIiwKKwkJCQkJCSBnZW5lcmF0ZV9zZXNz aW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJcmV0dXJuOworCX0KKwog CS8qCiAJICogTm90IFBBUkFNX0VYRUMsIG9yIGNvdWxkbid0IGZpbmQgcmVmZXJlbnQ6IGp1c3Qg cHJpbnQgJE4uCiAJICoKQEAgLTEzNTY2LDYgKzEzNTc2LDQyIEBAIGdlbmVyYXRlX2NvbGxhdGlv bl9uYW1lKE9pZCBjb2xsaWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIGdlbmVyYXRl X3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCUNvbXB1dGUgdGhlIG5hbWUgdG8gZGlzcGxheSBm b3IgYSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBPSUQKKyAqCisgKiBUaGUgcmVzdWx0 IGluY2x1ZGVzIGFsbCBuZWNlc3NhcnkgcXVvdGluZyBhbmQgc2NoZW1hLXByZWZpeGluZy4KKyAq Lworc3RhdGljIGNoYXIgKgorZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJp ZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFy CSAgICp2YXJuYW1lOworCWNoYXIJICAgKm5zcG5hbWU7CisJY2hhcgkgICAqcmVzdWx0OworCisJ dHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlk KSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hl IGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWUgPSBOYW1lU3RyKHZh cmZvcm0tPnZhcm5hbWUpOworCisJaWYgKCFWYXJpYWJsZUlzVmlzaWJsZSh2YXJpZCkpCisJCW5z cG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2Up OworCWVsc2UKKwkJbnNwbmFtZSA9IE5VTEw7CisKKwlyZXN1bHQgPSBxdW90ZV9xdWFsaWZpZWRf aWRlbnRpZmllcihuc3BuYW1lLCB2YXJuYW1lKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOwor CisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEdpdmVuIGEgQyBzdHJpbmcsIHByb2R1Y2Ug YSBURVhUIGRhdHVtLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xz eXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKaW5kZXggZmRi N2VhZWY3NWEuLjJjMTQ4OGE0ZmZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpA QCAtMzkxOSwzICszOTE5LDI3IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQg dmFyaWQpCiAKIAlyZXR1cm4gdmFybmFtZXNwYWNlOwogfQorCisvKgorICogUmV0dXJucyB0aGUg dHlwZSwgdHlwbW9kIGFuZCBjb2xsaWQgb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisg Ki8KK3ZvaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFy aWQsIE9pZCAqdHlwaWQsIGludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJT2lkICpjb2xsaWQpCit7 CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwor CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAo Rm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkqdHlwaWQgPSB2YXJmb3JtLT52 YXJ0eXBlOworCSp0eXBtb2QgPSB2YXJmb3JtLT52YXJ0eXBtb2Q7CisJKmNvbGxpZCA9IHZhcmZv cm0tPnZhcmNvbGxhdGlvbjsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKaW5kZXggYmRhYzBjMTNiZWMuLjM4MWM4ZTc0ZmI4IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKQEAgLTk4LDYgKzk4LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlk RXh0ZW5kZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBib29s IFR5cGVJc1Zpc2libGUoT2lkIHR5cGlkKTsKIAogZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zpc2li bGUoT2lkIHZhcmlkKTsKK2V4dGVybiBPaWQgSWRlbnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywg Y2hhciAqKmF0dHJuYW1lLAorCQkJCQkJCWJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcik7 CiAKIGV4dGVybiBGdW5jQ2FuZGlkYXRlTGlzdCBGdW5jbmFtZUdldENhbmRpZGF0ZXMoTGlzdCAq bmFtZXMsCiAJCQkJCQkJCQkJCSAgIGludCBuYXJncywgTGlzdCAqYXJnbmFtZXMsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKaW5kZXggMTkxNzEzZGU3ZjQuLjc2Y2RlMjQ2ZjYzIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCkBAIC0xNjcsNiArMTY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAlib29s CQloYXNSb3dTZWN1cml0eSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyog cGFyc2VyIGhhcyBhZGRlZCBhbiBSVEVfR1JPVVAgUlRFICovCiAJYm9vbAkJaGFzR3JvdXBSVEUg cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2YXJp YWJsZXMgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzIHBnX25vZGVfYXR0cihxdWVyeV9q dW1ibGVfaWdub3JlKTsKIAkvKiBpcyBhIFJFVFVSTiBzdGF0ZW1lbnQgKi8KIAlib29sCQlpc1Jl dHVybiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKQEAgLTMyMSw2ICszMjMs MTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW1SZWYKIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRv a2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFBhcmFtUmVmOwogCisvKgorICog VmFyaWFibGVGZW5jZSAtIGVuc3VyZSBzbyBmaWVsZHMgd2lsbCBiZSBpbnRlcnByZXR0ZWQgYXMg YSB2YXJpYWJsZQorICovCit0eXBlZGVmIHN0cnVjdCBWYXJpYWJsZUZlbmNlCit7CisJTm9kZVRh ZwkJdHlwZTsKKwlMaXN0CSAgICp2YXJuYW1lOwkJLyogdmFyaWFibGUgbmFtZSAoU3RyaW5nIG5v ZGVzKSAqLworCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlm IHVua25vd24gKi8KK30gVmFyaWFibGVGZW5jZTsKKwogLyoKICAqIEFfRXhwciAtIGluZml4LCBw cmVmaXgsIGFuZCBwb3N0Zml4IGV4cHJlc3Npb25zCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5k ZXggN2QzYjQxOThmMjYuLjJiMWIzYWM4YTMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rl cy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzc4 LDYgKzM3OCw4IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQn IGZpZWxkIGNvbnRhaW4gdGhlIFN1YkxpbmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxv dy1vcmRlciAxNiBiaXRzIGNvbnRhaW4gdGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAg KgkJCQlvZiBQYXJhbSBpcyBhbHNvIGNvbnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFu bmluZy4pCisgKgkJUEFSQU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlzIGEgcmVmZXJlbmNl IHRvIGEgc2Vzc2lvbiB2YXJpYWJsZQorICoJCQkJKHBhcmFtdmFyaWQgaG9sZHMgdGhlIHZhcmlh YmxlJ3MgT0lEKS4KICAqLwogdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogewpAQCAtMzg1LDYgKzM4 Nyw3IEBAIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIAlQQVJBTV9FWEVDLAogCVBBUkFNX1NVQkxJ TkssCiAJUEFSQU1fTVVMVElFWFBSLAorCVBBUkFNX1ZBUklBQkxFLAogfSBQYXJhbUtpbmQ7CiAK IHR5cGVkZWYgc3RydWN0IFBhcmFtCkBAIC0zOTcsNiArNDAwLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg UGFyYW0KIAlpbnQzMgkJcGFyYW10eXBtb2QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOwogCS8qIE9JRCBvZiBjb2xsYXRpb24sIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9p ZAkJCXBhcmFtY29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiBP SUQgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLworCU9p ZAkJCXBhcmFtdmFyaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIHRv a2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9 IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggOTk0Mjg0MDE5ZmIuLmNiNGViODQx OGI3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTI0NCw2ICsyNDQsNyBAQCBzdHJ1Y3Qg UGFyc2VTdGF0ZQogCWJvb2wJCXBfaGFzVGFyZ2V0U1JGczsKIAlib29sCQlwX2hhc1N1Ykxpbmtz OwogCWJvb2wJCXBfaGFzTW9kaWZ5aW5nQ1RFOworCWJvb2wJCXBfaGFzU2Vzc2lvblZhcmlhYmxl czsKIAogCU5vZGUJICAgKnBfbGFzdF9zcmY7CQkvKiBtb3N0IHJlY2VudCBzZXQtcmV0dXJuaW5n IGZ1bmMvb3AgZm91bmQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCA4N2UxZmU2MzZiOS4u ZjUxNjBkZTY3ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisr KyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0yMTQsNiArMjE0LDEwIEBAIGV4 dGVybiBjaGFyICpnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdf b2spOwogCiBleHRlcm4gY2hhciAqZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQp OwogZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKTsK K2V4dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQg dmFyaWQsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJCQlpbnQzMiAqdHlw bW9kLAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKIAogI2RlZmluZSB0eXBlX2lzX2FycmF5 KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBl X2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92 ZXIgYXJyYXlzICovCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jIGIv c3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCBiYjk5NzgxYzU2ZS4uMWNmZjVlZmE2 ZjcgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtODI2NCw3ICs4MjY0LDggQEAgZXhlY19pc19zaW1w bGVfcXVlcnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVyeS0+c29ydENsYXVzZSB8fAogCQlx dWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJcXVlcnktPnNl dE9wZXJhdGlvbnMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8CisJCXF1ZXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgotLSAKMi40OS4wCgo= --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Disposition: attachment; filename="v20250603-2-0009-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9ecl6 RnJvbSAxYjQ5MzExZDhhMjZjMzQ5MjkzNTY3NGU3OGRkNmQ3NmQyNzYxYjRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTdW4sIDEgSnVuIDIwMjUgMDc6MzI6MDEgKzAyMDAKU3ViamVjdDogW1BB VENIIDA5LzE1XSBmaWxsIGFuIGF1eGlsaWFyeSBidWZmZXIgd2l0aCB2YWx1ZXMgb2Ygc2Vzc2lv bgogdmFyaWFibGVzIHVzZWQgaW4gcXVlcnkKCmFuZCBsb2NrcyB2YXJpYWJsZXMgdXNlZCBpbiBx dWVyeS4gTm93IHdlIGNhbiByZWFkIHRoZSBjb250ZW50IG9mIGFueQpzZXNzaW9uIHZhcmlhYmxl LiBEaXJlY3QgcmVhZGluZyBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IgaXMgbm90IGFsbG93ZWQs CnNvIHdlIGNhbm5vdCB0byB1c2Ugc2Vzc2lvbiB2YXJpYWJsZXMgaW5zaWRlIENBTEwgb3IgRVhF Q1VURSBjb21tYW5kcwooY2FuIGJlIHN1cHBvcnRlZCB3aXRoIGRpcmVjdCBhY2Nlc3MgdG8gc2Vz c2lvbiB2YXJpYWJsZXMgKGZyb20gZXhwcmVzc2lvbgpleGVjdXRvcikgLSBwb3N0cG9uZWQpLgoK VXNpbmcgc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2tzIHBhcmFsbGVsIHF1ZXJ5IGV4ZWN1dGlvbi4g SXQgaXMgbm90CnRlY2huaWNhbCBwcm9ibGVtIChpdCBqdXN0IG5lZWRzIGEgc2VyaWFsaXphdGlv bi9kZXNlcmlhbGl6YXRpb24gb2YKZXNfc2Vzc2lvbl92YXJpYmxlcyBidWZmZXIpLCBidXQgaXQg aW5jcmVhc2VzIGEgc2l6ZSBvZiBwYXRjaCAoYW5kIHRoZW4KaXQgaXMgcG9zdHBvbmVkKS4KLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAgMzAgKysr CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgNTUgKysr KysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAgICAgICAgICB8ICAyNCAr Ky0KIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAxNCAr KwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQgICAgICAgIHwgMTkxICsr KysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAg ICAgICAgIHwgICA3ICstCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNx bCAgICAgfCAxNjEgKysrKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogOCBmaWxlcyBjaGFuZ2VkLCA0NzkgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMKaW5kZXggZjE1Njk4NzliNTIuLjRmNWFlZjRmM2Y4IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMKQEAgLTEwNjksNiArMTA2OSwzNiBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAq bm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAm c2NyYXRjaCk7CiAJCQkJCQl9CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBQQVJBTV9WQVJJQUJM RToKKwkJCQkJCXsKKwkJCQkJCQlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSAwOwor CQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlcyA9IE5VTEw7 CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnZhcjsKKworCQkJCQkJCWlmIChzdGF0ZS0+ cGFyZW50ICYmIHN0YXRlLT5wYXJlbnQtPnN0YXRlKQorCQkJCQkJCXsKKwkJCQkJCQkJZXNfc2Vz c2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXM7CisJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0 YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJCQkJfQorCisJCQkJCQkJQXNzZXJ0 KGVzX3Nlc3Npb25fdmFyaWFibGVzKTsKKworCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hl Y2tzICovCisJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3Zhcmlh YmxlcykKKwkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFy YW0gaXMgb3V0IG9mIHJhbmdlIik7CisKKwkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJs ZXNbcGFyYW0tPnBhcmFtaWRdOworCisJCQkJCQkJLyoKKwkJCQkJCQkgKiBJbiB0aGlzIGNhc2Us IHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCSAqIGNvbnN0YW50LgorCQkJCQkJCSAqLwor CQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQlzY3JhdGNoLmQuY29u c3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251 bGwgPSB2YXItPmlzbnVsbDsKKwkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRj aCk7CisJCQkJCQl9CisJCQkJCQlicmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgcGFyYW1raW5kOiAlZCIsCiAJCQkJCQkJIChpbnQpIHBhcmFtLT5w YXJhbWtpbmQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggMDM5MTc5OGRkMmMuLjUzZDM1 OWMyNDY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTQzLDcgKzQzLDkgQEAKICNpbmNs dWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wYXJ0aXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvbWF0dmlldy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjUGFydGl0aW9u LmgiCkBAIC0xOTcsNiArMTk5LDU5IEBAIHN0YW5kYXJkX0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNj ICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJQXNzZXJ0KHF1ZXJ5RGVzYy0+c291cmNlVGV4dCAh PSBOVUxMKTsKIAllc3RhdGUtPmVzX3NvdXJjZVRleHQgPSBxdWVyeURlc2MtPnNvdXJjZVRleHQ7 CiAKKwkvKgorCSAqIFRoZSBleGVjdXRvciBkb2Vzbid0IHdvcmsgd2l0aCBzZXNzaW9uIHZhcmlh YmxlcyBkaXJlY3RseS4gVmFsdWVzIG9mCisJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyBh cmUgY29waWVkIHRvIGEgZGVkaWNhdGVkIGFycmF5LCBhbmQgdGhpcyBhcnJheQorCSAqIGlzIHBh c3NlZCB0byB0aGUgZXhlY3V0b3IuIFRoaXMgYXJyYXkgaXMgc3RhYmxlICJzbmFwc2hvdCIgb2Yg dmFsdWVzIG9mCisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhlcmUgYXJlIHRocmVlIGJl bmVmaXRzIG9mIHRoaXMgc3RyYXRlZ3k6CisJICoKKwkgKiAtIGNvbnNpc3RlbmN5IHdpdGggZXh0 ZXJuYWwgcGFyYW1ldGVycyBhbmQgcGxwZ3NxbCB2YXJpYWJsZXMsCisJICoKKwkgKiAtIHNlc3Np b24gdmFyaWFibGVzIGNhbiBiZSBwYXJhbGxlbCBzYWZlLAorCSAqCisJICogLSB3ZSBkb24ndCBu ZWVkIG1ha2UgZnJlc2ggY29weSBmb3IgYW55IHJlYWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZQorCSAq ICAgICh0aGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBpbnRlcm5hbGx5IHRoZSBzZXNzaW9u IHZhcmlhYmxlIGNhbgorCSAqICAgIGJlIGNoYW5nZWQgaW5zaWRlIHF1ZXJ5IGV4ZWN1dGlvbiB0 aW1lLCBhbmQgdGhlbiBhIHJlZmVyZW5jZSB0bworCSAqICAgIHByZXZpb3VzbHkgcmV0dXJuZWQg dmFsdWUgY2FuIGJlIGNvcnJ1cHRlZCkuCisJICovCisJaWYgKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0 bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJeworCQlpbnQJCQluU2Vzc2lvblZhcmlhYmxlczsKKwkJ aW50CQkJaSA9IDA7CisKKwkJLyoKKwkJICogSW4gdGhpcyBjYXNlLCB0aGUgcXVlcnkgdXNlcyBz ZXNzaW9uIHZhcmlhYmxlcywgYnV0IHdlIGhhdmUgdG8KKwkJICogcHJlcGFyZSB0aGUgYXJyYXkg d2l0aCBwYXNzZWQgdmFsdWVzIChvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzKQorCQkgKiBmaXJz dC4KKwkJICovCisJCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsKKwkJblNlc3Npb25WYXJp YWJsZXMgPSBsaXN0X2xlbmd0aChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFi bGVzKTsKKworCQkvKiBjcmVhdGUgdGhlIGFycmF5IHVzZWQgZm9yIHBhc3NpbmcgdmFsdWVzIG9m IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxl cyA9IChTZXNzaW9uVmFyaWFibGVWYWx1ZSAqKQorCQkJcGFsbG9jKG5TZXNzaW9uVmFyaWFibGVz ICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwkJLyogZmlsbCB0aGUgYXJyYXkg Ki8KKwkJZm9yZWFjaF9vaWQodmFyaWQsIHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25W YXJpYWJsZXMpCisJCXsKKwkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJCUdl dFVzZXJJZCgpLCBBQ0xfU0VMRUNUKTsKKwkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0sp CisJCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJ ICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJCQllc3RhdGUtPmVzX3Nl c3Npb25fdmFyaWFibGVzW2ldLnZhbHVlID0KKwkJCQlHZXRTZXNzaW9uVmFyaWFibGUodmFyaWQs CisJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLmlzbnVsbCk7CisK KwkJCWkrKzsKKwkJfQorCisJCWVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gblNl c3Npb25WYXJpYWJsZXM7CisJfQorCiAJLyoKIAkgKiBGaWxsIGluIHRoZSBxdWVyeSBlbnZpcm9u bWVudCwgaWYgYW55LCBmcm9tIHF1ZXJ5RGVzYy4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxh bmNhY2hlLmMKaW5kZXggMzk4MjBiNGY1NDUuLmNhOTJiZTlhNmFlIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9j YWNoZS9wbGFuY2FjaGUuYwpAQCAtMjAyMCw5ICsyMDIwLDEyIEBAIFNjYW5RdWVyeUZvckxvY2tz KFF1ZXJ5ICpwYXJzZXRyZWUsIGJvb2wgYWNxdWlyZSkKIAogCS8qCiAJICogUmVjdXJzZSBpbnRv IHN1Ymxpbmsgc3VicXVlcmllcywgdG9vLiAgQnV0IHdlIGFscmVhZHkgZGlkIHRoZSBvbmVzIGlu Ci0JICogdGhlIHJ0YWJsZSBhbmQgY3RlTGlzdC4KKwkgKiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0 LiAgV2UgbmVlZCB0byBmb3JjZSBhIHJlY3Vyc2l2ZSBjYWxsIGZvciBzZXNzaW9uCisJICogdmFy aWFibGVzIHRvbywgdG8gZmluZCBhbmQgbG9jayB2YXJpYWJsZXMgdXNlZCBpbiB0aGUgcXVlcnkg KHNlZQorCSAqIFNjYW5RdWVyeVdhbGtlcikuCiAJICovCi0JaWYgKHBhcnNldHJlZS0+aGFzU3Vi TGlua3MpCisJaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3MgfHwKKwkJcGFyc2V0cmVlLT5oYXNT ZXNzaW9uVmFyaWFibGVzKQogCXsKIAkJcXVlcnlfdHJlZV93YWxrZXIocGFyc2V0cmVlLCBTY2Fu UXVlcnlXYWxrZXIsICZhY3F1aXJlLAogCQkJCQkJICBRVFdfSUdOT1JFX1JDX1NVQlFVRVJJRVMp OwpAQCAtMjAzMCw3ICsyMDMzLDggQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJl ZSwgYm9vbCBhY3F1aXJlKQogfQogCiAvKgotICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJx dWVyaWVzIGZvciBTY2FuUXVlcnlGb3JMb2NrcworICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBz dWJxdWVyaWVzIG9yIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqIGZvciBTY2FuUXVl cnlGb3JMb2NrcwogICovCiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUs IGJvb2wgKmFjcXVpcmUpCkBAIC0yMDQ1LDYgKzIwNDksMjAgQEAgU2NhblF1ZXJ5V2Fsa2VyKE5v ZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZvckxvY2tzKGNhc3ROb2RlKFF1 ZXJ5LCBzdWItPnN1YnNlbGVjdCksICphY3F1aXJlKTsKIAkJLyogRmFsbCB0aHJvdWdoIHRvIHBy b2Nlc3MgbGVmdGhhbmQgYXJncyBvZiBTdWJMaW5rICovCiAJfQorCWVsc2UgaWYgKElzQShub2Rl LCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChw LT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChhY3F1aXJlKQorCQkJ CUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJ CQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQllbHNlCisJCQkJVW5sb2NrRGF0YWJh c2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJIDAs IEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKwl9CiAKIAkvKgogCSAqIERvIE5PVCByZWN1cnNlIGlu dG8gUXVlcnkgbm9kZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9ja3MgYWxyZWFkeQpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaAppbmRleCAyNDkyMjgyMjEzZi4uMTg0ZGU2NmE0OGIgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oCkBAIC02NDEsNiArNjQxLDE2IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAog CQkJCQkJCQkgKiB0dXBsZXMpICovCiB9IEFzeW5jUmVxdWVzdDsKIAorLyogLS0tLS0tLS0tLS0t LS0tLQorICogU2Vzc2lvblZhcmlhYmxlVmFsdWUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwor dHlwZWRlZiBzdHJ1Y3QgU2Vzc2lvblZhcmlhYmxlVmFsdWUKK3sKKwlib29sCQlpc251bGw7CisJ RGF0dW0JCXZhbHVlOworfSBTZXNzaW9uVmFyaWFibGVWYWx1ZTsKKwogLyogLS0tLS0tLS0tLS0t LS0tLQogICoJICBFU3RhdGUgaW5mb3JtYXRpb24KICAqCkBAIC03MDAsNiArNzEwLDEwIEBAIHR5 cGVkZWYgc3RydWN0IEVTdGF0ZQogCVBhcmFtTGlzdEluZm8gZXNfcGFyYW1fbGlzdF9pbmZvOwkv KiB2YWx1ZXMgb2YgZXh0ZXJuYWwgcGFyYW1zICovCiAJUGFyYW1FeGVjRGF0YSAqZXNfcGFyYW1f ZXhlY192YWxzOwkvKiB2YWx1ZXMgb2YgaW50ZXJuYWwgcGFyYW1zICovCiAKKwkvKiBTZXNzaW9u IHZhcmlhYmxlcyBpbmZvOiAqLworCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsJCS8q IG51bWJlciBvZiB1c2VkIHZhcmlhYmxlcyAqLworCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19z ZXNzaW9uX3ZhcmlhYmxlczsJLyogYXJyYXkgb2YgY29waWVzIG9mIHZhbHVlcyAqLworCiAJUXVl cnlFbnZpcm9ubWVudCAqZXNfcXVlcnlFbnY7CS8qIHF1ZXJ5IGVudmlyb25tZW50ICovCiAKIAkv KiBPdGhlciB3b3JraW5nIHN0YXRlOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4zZTIxMDU5YWNjMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dApAQCAtMCwwICsxLDE5MSBA QAorQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjQwIEFTIGludDsKKy0tIHNob3VsZCBub3QgYmUgYWNj ZXNzaWJsZSB3aXRob3V0IHZhcmlhYmxlJ3MgZmVuY2UKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qg c2VzdmFyNDA7CitFUlJPUjogIGNvbHVtbiAic2VzdmFyNDAiIGRvZXMgbm90IGV4aXN0CitMSU5F IDE6IFNFTEVDVCBzZXN2YXI0MDsKKyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIFZBUklBQkxFKHNlc3ZhcjQwKTsKKyBzZXN2YXI0MCAKKy0tLS0tLS0tLS0KKyAgICAg ICAgIAorKDEgcm93KQorCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2RtbDsKK0NSRUFURSBWQVJJ QUJMRSBzdmFydGVzdF9kbWwuc2VzdmFyNDEgQVMgaW50OworLS0gaWRlbnRpZmllciBjb2xsaXNp b24gdGVzdAorQ1JFQVRFIFRBQkxFIHN2YXJ0ZXN0X2RtbChzZXN2YXI0MSBpbnQpOworSU5TRVJU IElOVE8gc3ZhcnRlc3RfZG1sIFZBTFVFUygxMDApOworU0VMRUNUIHNlc3ZhcjQxIEZST00gc3Zh cnRlc3RfZG1sOyAtLSAxMDAKKyBzZXN2YXI0MSAKKy0tLS0tLS0tLS0KKyAgICAgIDEwMAorKDEg cm93KQorCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsgLS0gTlVMTAor IHNlc3ZhcjQxIAorLS0tLS0tLS0tLQorICAgICAgICAgCisoMSByb3cpCisKKy0tIHNob3VsZCBm YWlsCitTRUxFQ1QgVkFSSUFCTEUoc2VzdmFyNDEpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl ICJzZXN2YXI0MSIgZG9lc24ndCBleGlzdAorTElORSAxOiBTRUxFQ1QgVkFSSUFCTEUoc2VzdmFy NDEpOworICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VUIFNFQVJDSF9QQVRIIFRPIHN2YXJ0 ZXN0X2RtbDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHNlc3ZhcjQxKTsKKyBz ZXN2YXI0MSAKKy0tLS0tLS0tLS0KKyAgICAgICAgIAorKDEgcm93KQorCitTRVQgU0VBUkNIX1BB VEggVE8gREVGQVVMVDsKKy0tIHNob3VsZCBub3QgY3Jhc2gKK0RPICQkCitCRUdJTgorICBSQUlT RSBOT1RJQ0UgJyUnLCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworRU5EOworJCQ7 CitOT1RJQ0U6ICA8TlVMTD4KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJ0ZXN0X2Rt bC50ZXN0c3FsKCkKK1JFVFVSTlMgaW50IEFTICQkCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQxKTsKKyQkIExBTkdVQUdFIHNxbDsKK1NFTEVDVCBzdmFydGVzdF9kbWwudGVz dHNxbCgpOworIHRlc3RzcWwgCistLS0tLS0tLS0KKyAgICAgICAgCisoMSByb3cpCisKKy0tIHNl c3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgcGFyYW1ldGVyIG9mIENBTEwgb3IgRVhF Q1VURQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHN2YXJ0ZXN0X2RtbC5wcm9jKGludCkK K0FTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCAkMTsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CistLSBzaG91bGQgbm90IGNyYXNoCitDQUxMIHN2YXJ0ZXN0X2RtbC5wcm9jKFZB UklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSkpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl IHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUKK0xJTkUgMTogQ0FMTCBzdmFydGVzdF9k bWwucHJvYyhWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCitQUkVQQVJFIHN2YXJ0ZXN0X2RtbF9wcmVwc3Rt dChpbnQpIEFTIFNFTEVDVCAkMTsKKy0tIHNob3VsZCBub3QgY3Jhc2gKK0VYRUNVVEUgc3ZhcnRl c3RfZG1sX3ByZXBzdG10KFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSkpOworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUKK0xJTkUg MTogRVhFQ1VURSBzdmFydGVzdF9kbWxfcHJlcHN0bXQoVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNl c3ZhcjQxLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KK0RST1AgUFJPQ0VEVVJFIHN2YXJ0ZXN0X2RtbC5wcm9jOworREVBTExPQ0FURSBzdmFydGVz dF9kbWxfcHJlcHN0bXQ7CistLSBkb21haW5zIGFyZSBzdXBwb3J0ZWQKK0NSRUFURSBET01BSU4g c3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbCBBUyBpbnQgQ0hFQ0sodmFsdWUgSVMgTk9UIE5VTEwp OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zdmFydGVzdDQyIEFTIHN2YXJ0ZXN0X2Rt bF9pbnRfbm90X251bGw7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0 X2RtbC5zdmFydGVzdDQyKTsKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBzdmFydGVzdF9kbWxf aW50X25vdF9udWxsIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgInN2YXJ0ZXN0X2RtbF9pbnRf bm90X251bGxfY2hlY2siCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2RtbC5zdmFydGVzdDQyOwor RFJPUCBET01BSU4gc3ZhcnRlc3RfZG1sX2ludF9ub3RfbnVsbDsKK0NSRUFURSBST0xFIHJlZ3Jl c3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2 YXJ0ZXN0X2RtbC5mdW5jX3NlY2RlZigpCitSRVRVUk5TIGludCBBUyAkJAorU0VMRUNUIFZBUklB QkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CiskJCBMQU5HVUFHRSBTUUwgU0VDVVJJVFkgREVG SU5FUjsKK0dSQU5UIFVTQUdFIE9OIFNDSEVNQSBzdmFydGVzdF9kbWwgVE8gcmVncmVzc19zdmFy dGVzdF9kbWxfcmVhZF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVh ZF9yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2Vz dmFyNDEpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBz ZXN2YXI0MQorLS0gc2hvdWxkIGZhaWwKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUn LCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworRU5EOworJCQ7CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcjQxCitDT05URVhUOiAg UEwvcGdTUUwgZXhwcmVzc2lvbiAiVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKSIKK1BM L3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMyBhdCBSQUlTRQorLS0gdXNp bmcgc3FsIGZ1bmN0aW9uIHNob3VsZCB0byBmYWlsCitTRUxFQ1Qgc3ZhcnRlc3RfZG1sLnRlc3Rz cWwoKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgc2Vz dmFyNDEKK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gInRlc3RzcWwiIHN0YXRlbWVudCAxCistLSB1 c2luZyBzZWN1cml0eSBkZWZpbmVyIHNob3VsZCBiZSBvaworU0VMRUNUIHN2YXJ0ZXN0X2RtbC5m dW5jX3NlY2RlZigpOworIGZ1bmNfc2VjZGVmIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg CisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIEZVTkNUSU9OIHN2YXJ0ZXN0 X2RtbC5mdW5jX3NlY2RlZigpOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0X2Rt bC5zZXN2YXI0MSBUTyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CitTRVQgUk9MRSBU TyByZWdyZXNzX3N2YXJ0ZXN0X2RtbF9yZWFkX3JvbGU7CistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworIHNlc3ZhcjQxIAorLS0tLS0tLS0t LQorICAgICAgICAgCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworRE8gJCQKK0JFR0lOCisg IFJBSVNFIE5PVElDRSAnJScsIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7CitFTkQ7 CiskJDsKK05PVElDRTogIDxOVUxMPgorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0NSRUFURSBUQUJM RSBzdmFydGVzdF9kbWwudGVzdHRhYihhIGludCk7CitJTlNFUlQgSU5UTyBzdmFydGVzdF9kbWwu dGVzdHRhYiBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworQ1JFQVRFIElO REVYIHN2YXJ0ZXN0X2RtbF90ZXN0dGFiX2EgT04gc3ZhcnRlc3RfZG1sLnRlc3R0YWIoYSk7CitB TkFMWVpFIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiOworLS0gZm9yY2UgaW5kZXgKK1NFVCBlbmFibGVf c2Vxc2NhbiBUTyBPRkY7CistLSBpbmRleCBzY2FuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUgYSA9IFZB UklBQkxFKHNlc3ZhcjQwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5kZXggT25seSBTY2FuIHVzaW5nIHN2YXJ0ZXN0X2Rt bF90ZXN0dGFiX2Egb24gdGVzdHRhYgorICAgSW5kZXggQ29uZDogKGEgPSBWQVJJQUJMRShzZXN2 YXI0MCkpCisoMiByb3dzKQorCitEUk9QIElOREVYIHN2YXJ0ZXN0X2RtbC5zdmFydGVzdF9kbWxf dGVzdHRhYl9hOworU0VUIGVuYWJsZV9zZXFzY2FuIFRPIERFRkFVTFQ7CistLSBwYXJhbGxlbCBl eGVjdXRpb24gc2hvdWxkIGJlIGJsb2NrZWQKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwg cGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9j b3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhf cGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKy0tIHBhcmFsbGVsIHBsYW4gc2hvdWxk IGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBzdmFydGVzdF9kbWwu dGVzdHRhYiBXSEVSRSBhID0gMTAwOworICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBHYXRoZXIKKyAgIFdv cmtlcnMgUGxhbm5lZDogMgorICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHRlc3R0YWIKKyAg ICAgICAgIEZpbHRlcjogKGEgPSAxMDApCisoNCByb3dzKQorCistLSBwYXJhbGxlbCBwbGFuIHNo b3VsZCBub3QgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHN2YXJ0 ZXN0X2RtbC50ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRShzZXN2YXI0MCk7CisgICAgICAgICAg ICAgUVVFUlkgUExBTiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFNlcSBTY2FuIG9uIHRlc3R0YWIKKyAgIEZpbHRlcjogKGEgPSBWQVJJQUJMRShz ZXN2YXI0MCkpCisoMiByb3dzKQorCitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQg cGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7 CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworRFJPUCBTQ0hFTUEgc3Zh cnRlc3RfZG1sIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDMgb3RoZXIgb2Jq ZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0 X2RtbC5zZXN2YXI0MQorZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBzdmFydGVzdF9kbWwudGVz dHNxbCgpCitkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiCitEUk9Q IFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworRFJPUCBWQVJJQUJMRSBzZXN2 YXI0MDsKK0RST1AgVEFCTEUgc3ZhcnRlc3RfZG1sOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKaW5kZXggMWM2N2ZkZmY1NjQuLjVhOWJmZDRkYzhiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKQEAgLTExNSw3ICsxMTUsNyBAQCB0ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2Rp bmcganNvbnBhdGgganNvbnBhdGhfZW5jb2RpbmcganNvbmJfanNvbnBhdGggc3FsanNvbgogIyBO QjogdGVtcC5zcWwgZG9lcyByZWNvbm5lY3RzIHdoaWNoIHRyYW5zaWVudGx5IHVzZSAyIGNvbm5l Y3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0 cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1w IGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJs ZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdp dGggeG1sIHNlc3Npb25fdmFyaWFibGVzX2RkbCBzZXNzaW9uX3ZhcmlhYmxlc19hY2wKK3Rlc3Q6 IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJl cGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlz bSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmplY3Qgd2l0aCB4bWwKIAogIyAtLS0tLS0tLS0t CiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKQEAgLTE0MCwzICsxNDAsOCBAQCB0 ZXN0OiBmYXN0X2RlZmF1bHQKICMgcnVuIHRhYmxlc3BhY2UgdGVzdCBhdCB0aGUgZW5kIGJlY2F1 c2UgaXQgZHJvcHMgdGhlIHRhYmxlc3BhY2UgY3JlYXRlZCBkdXJpbmcKICMgc2V0dXAgdGhhdCBv dGhlciB0ZXN0cyBtYXkgdXNlLgogdGVzdDogdGFibGVzcGFjZQorCisjIC0tLS0tLS0tLS0KKyMg QW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cyAoc2Vzc2lvbiB2YXJpYWJsZXMgcmVsYXRl ZCkKKyMgLS0tLS0tLS0tLQordGVzdDogc2Vzc2lvbl92YXJpYWJsZXNfZGRsIHNlc3Npb25fdmFy aWFibGVzX2FjbCBzZXNzaW9uX3ZhcmlhYmxlc19kbWwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5iMjg3MGRkZTllOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKQEAgLTAsMCArMSwxNjEgQEAKK0NSRUFU RSBWQVJJQUJMRSBzZXN2YXI0MCBBUyBpbnQ7CisKKy0tIHNob3VsZCBub3QgYmUgYWNjZXNzaWJs ZSB3aXRob3V0IHZhcmlhYmxlJ3MgZmVuY2UKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qgc2VzdmFy NDA7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHNlc3ZhcjQwKTsKKworQ1JF QVRFIFNDSEVNQSBzdmFydGVzdF9kbWw7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfZG1sLnNl c3ZhcjQxIEFTIGludDsKKworLS0gaWRlbnRpZmllciBjb2xsaXNpb24gdGVzdAorQ1JFQVRFIFRB QkxFIHN2YXJ0ZXN0X2RtbChzZXN2YXI0MSBpbnQpOworSU5TRVJUIElOVE8gc3ZhcnRlc3RfZG1s IFZBTFVFUygxMDApOworCitTRUxFQ1Qgc2VzdmFyNDEgRlJPTSBzdmFydGVzdF9kbWw7IC0tIDEw MAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7IC0tIE5VTEwKKworLS0g c2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRShzZXN2YXI0MSk7CisKK1NFVCBTRUFSQ0hfUEFU SCBUTyBzdmFydGVzdF9kbWw7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIFZBUklBQkxFKHNl c3ZhcjQxKTsKKworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CisKKy0tIHNob3VsZCBub3Qg Y3Jhc2gKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJMRShzdmFydGVz dF9kbWwuc2VzdmFyNDEpOworRU5EOworJCQ7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHN2YXJ0ZXN0X2RtbC50ZXN0c3FsKCkKK1JFVFVSTlMgaW50IEFTICQkCitTRUxFQ1QgVkFSSUFC TEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKKyQkIExBTkdVQUdFIHNxbDsKKworU0VMRUNUIHN2 YXJ0ZXN0X2RtbC50ZXN0c3FsKCk7CisKKy0tIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVz ZWQgYXMgcGFyYW1ldGVyIG9mIENBTEwgb3IgRVhFQ1VURQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJP Q0VEVVJFIHN2YXJ0ZXN0X2RtbC5wcm9jKGludCkKK0FTICQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJyUnLCAkMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCBub3Qg Y3Jhc2gKK0NBTEwgc3ZhcnRlc3RfZG1sLnByb2MoVkFSSUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3Zh cjQxKSk7CisKK1BSRVBBUkUgc3ZhcnRlc3RfZG1sX3ByZXBzdG10KGludCkgQVMgU0VMRUNUICQx OworCistLSBzaG91bGQgbm90IGNyYXNoCitFWEVDVVRFIHN2YXJ0ZXN0X2RtbF9wcmVwc3RtdChW QVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpKTsKKworRFJPUCBQUk9DRURVUkUgc3ZhcnRl c3RfZG1sLnByb2M7CitERUFMTE9DQVRFIHN2YXJ0ZXN0X2RtbF9wcmVwc3RtdDsKKworLS0gZG9t YWlucyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgRE9NQUlOIHN2YXJ0ZXN0X2RtbF9pbnRfbm90X251 bGwgQVMgaW50IENIRUNLKHZhbHVlIElTIE5PVCBOVUxMKTsKK0NSRUFURSBWQVJJQUJMRSBzdmFy dGVzdF9kbWwuc3ZhcnRlc3Q0MiBBUyBzdmFydGVzdF9kbWxfaW50X25vdF9udWxsOworCistLSBz aG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zdmFydGVzdDQyKTsKKwor RFJPUCBWQVJJQUJMRSBzdmFydGVzdF9kbWwuc3ZhcnRlc3Q0MjsKK0RST1AgRE9NQUlOIHN2YXJ0 ZXN0X2RtbF9pbnRfbm90X251bGw7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1s X3JlYWRfcm9sZTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3ZhcnRlc3RfZG1sLmZ1 bmNfc2VjZGVmKCkKK1JFVFVSTlMgaW50IEFTICQkCitTRUxFQ1QgVkFSSUFCTEUoc3ZhcnRlc3Rf ZG1sLnNlc3ZhcjQxKTsKKyQkIExBTkdVQUdFIFNRTCBTRUNVUklUWSBERUZJTkVSOworCitHUkFO VCBVU0FHRSBPTiBTQ0hFTUEgc3ZhcnRlc3RfZG1sIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3Jl YWRfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOwor CistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHN2YXJ0ZXN0X2RtbC5zZXN2YXI0MSk7 CisKKy0tIHNob3VsZCBmYWlsCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFS SUFCTEUoc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxKTsKK0VORDsKKyQkOworCistLSB1c2luZyBzcWwg ZnVuY3Rpb24gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCBzdmFydGVzdF9kbWwudGVzdHNxbCgpOwor CistLSB1c2luZyBzZWN1cml0eSBkZWZpbmVyIHNob3VsZCBiZSBvaworU0VMRUNUIHN2YXJ0ZXN0 X2RtbC5mdW5jX3NlY2RlZigpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNU SU9OIHN2YXJ0ZXN0X2RtbC5mdW5jX3NlY2RlZigpOworCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgc3ZhcnRlc3RfZG1sLnNlc3ZhcjQxIFRPIHJlZ3Jlc3Nfc3ZhcnRlc3RfZG1sX3JlYWRfcm9s ZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworCist LSBzaG91bGQgYmUgb2sKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJM RShzdmFydGVzdF9kbWwuc2VzdmFyNDEpOworRU5EOworJCQ7CisKK1NFVCBST0xFIFRPIERFRkFV TFQ7CisKK0NSRUFURSBUQUJMRSBzdmFydGVzdF9kbWwudGVzdHRhYihhIGludCk7CisKK0lOU0VS VCBJTlRPIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTAwMCk7CisKK0NSRUFURSBJTkRFWCBzdmFydGVzdF9kbWxfdGVzdHRhYl9hIE9OIHN2YXJ0 ZXN0X2RtbC50ZXN0dGFiKGEpOworCitBTkFMWVpFIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiOworCist LSBmb3JjZSBpbmRleAorU0VUIGVuYWJsZV9zZXFzY2FuIFRPIE9GRjsKKworLS0gaW5kZXggc2Nh biBzaG91bGQgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHN2YXJ0 ZXN0X2RtbC50ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRShzZXN2YXI0MCk7CisKK0RST1AgSU5E RVggc3ZhcnRlc3RfZG1sLnN2YXJ0ZXN0X2RtbF90ZXN0dGFiX2E7CisKK1NFVCBlbmFibGVfc2Vx c2NhbiBUTyBERUZBVUxUOworCistLSBwYXJhbGxlbCBleGVjdXRpb24gc2hvdWxkIGJlIGJsb2Nr ZWQKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1 cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxs ZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0 aGVyID0gMjsKKworLS0gcGFyYWxsZWwgcGxhbiBzaG91bGQgYmUgdXNlZAorRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHN2YXJ0ZXN0X2RtbC50ZXN0dGFiIFdIRVJFIGEgPSAxMDA7 CisKKy0tIHBhcmFsbGVsIHBsYW4gc2hvdWxkIG5vdCBiZSB1c2VkCitFWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gc3ZhcnRlc3RfZG1sLnRlc3R0YWIgV0hFUkUgYSA9IFZBUklBQkxF KHNlc3ZhcjQwKTsKKworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVs X3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQg bWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Rf ZG1sIENBU0NBREU7CitEUk9QIFJPTEUgcmVncmVzc19zdmFydGVzdF9kbWxfcmVhZF9yb2xlOwor CitEUk9QIFZBUklBQkxFIHNlc3ZhcjQwOworCitEUk9QIFRBQkxFIHN2YXJ0ZXN0X2RtbDsKZGlm ZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggY2UzYThhYmI2MjMuLjFlMzNkZmQ0NTg5IDEwMDY0 NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY5Nyw2ICsyNjk3LDcgQEAgU2VyaWFsaXplZFRy YW5zYWN0aW9uU3RhdGUKIFNlc3Npb24KIFNlc3Npb25CYWNrdXBTdGF0ZQogU2Vzc2lvbkVuZFR5 cGUKK1Nlc3Npb25WYXJpYWJsZVZhbHVlCiBTZXRDb25zdHJhaW50U3RhdGUKIFNldENvbnN0cmFp bnRTdGF0ZURhdGEKIFNldENvbnN0cmFpbnRUcmlnZ2VyRGF0YQotLSAKMi40OS4wCgo= --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Disposition: attachment; filename="v20250603-2-0007-local-HASHTAB-for-currently-used-session-variables-a.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9edh8 RnJvbSBiMTI4MjU3M2EyNTc5YzRiZmNlMTEzOTdiMzJhMzhjNzc0Y2UzNTgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDMwIE1heSAyMDI1IDIyOjQ0OjU4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNy8xNV0gbG9jYWwgSEFTSFRBQiBmb3IgY3VycmVudGx5IHVzZWQgc2Vzc2lvbiB2YXJp YWJsZXMgYW5kCiBsb3cgbGV2ZWwgYWNjZXNzIGZ1bmN0aW9ucwoKU2Vzc2lvbiB2YXJpYWJsZXMg YXJlIHN0b3JlZCBpbiBzZXNzaW9uIG1lbW9yeSBpbiBhIGRlZGljYXRlZCBoYXNoIHRhYmxlLgpU aGV5IGFyZSBzZXQgYnkgdGhlIExFVCBjb21tYW5kIGFuZCByZWFkIGJ5IHRoZSBTRUxFQ1QgY29t bWFuZC4KVGhlIGFjY2VzcyByaWdodHMgc2hvdWxkIGJlIGNoZWNrZWQuCgpIYXNoIGVudHJpZXMg cmVsYXRlZCB0byBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgcmVsZWFzZWQuIFRo ZSBtZW1vcnkKY2xlYW5pbmcgaXMgaW1wbGVtZW50ZWQgaW4gbWVtb3J5LWNsZWFuaW5nLWFmdGVy LURST1AtVkFSSUFCTEUgcGF0Y2guCi0tLQogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAg ICAgICAgICAgIHwgICA1ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMgfCA0MjYgKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmggfCAgIDMgKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgICAgICAgIHwgICAyICsKIDQgZmlsZXMgY2hhbmdlZCwgNDM0IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCA4M2IxM2Y5OGYyOC4uMmQxM2RjZWE0ZWYg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sCkBAIC0xNzE0LDggKzE3MTQsOSBAQAogICAgIDxwYXJhPgogICAgICBB IHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9sZHMgYSB2YWx1ZSBpbiBzZXNzaW9u IG1lbW9yeS4gIFRoaXMKICAgICAgdmFsdWUgaXMgcHJpdmF0ZSB0byBlYWNoIHNlc3Npb24gYW5k IGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4KLSAgICAgUmVhZCBvciB3cml0ZSBh Y2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJvbGxlZCBieSBwcml2aWxlZ2VzLAot ICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVjdHMuCisgICAgIFRoZSBkZWZhdWx0 IHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlzIG51bGwuICBSZWFkIG9yIHdyaXRlIGFj Y2VzcworICAgICB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVn ZXMsIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2UKKyAgICAgb2JqZWN0cy4KICAgICA8L3BhcmE+ CiAgICAgPHBhcmE+CiAgICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2Vu ZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jCmluZGV4IGY2NDFlMDBjMWFjLi5lMTRmY2QyM2RlOSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTQsMTQgKzE0LDQ0MCBAQAogICovCiAjaW5j bHVkZSAicG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJz dG9yYWdlL3Byb2MuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0 aWxzL2RhdHVtLmgiCisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9s c3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFy ZSBzdG9yZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2YXRlIG1lbW9yeQorICogaW4gdGhlIGRlZGlj YXRlZCBtZW1vcnkgY29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3Jt YXQuCisgKiBUaGV5IGFyZSBzdG9yZWQgaW4gdGhlICJzZXNzaW9udmFycyIgaGFzaCB0YWJsZSwg d2hvc2Uga2V5IGlzIHRoZSBPSUQgb2YgdGhlCisgKiB2YXJpYWJsZS4gIEhvd2V2ZXIsIHRoZSBP SUQgaXMgbm90IGdvb2QgZW5vdWdoIHRvIGlkZW50aWZ5IGEgc2Vzc2lvbgorICogdmFyaWFibGU6 IGNvbmN1cnJlbnQgc2Vzc2lvbnMgY291bGQgZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhbmQg Y3JlYXRlIGEKKyAqIG5ldyBvbmUsIHdoaWNoIGNvdWxkIGJlIGFzc2lnbmVkIHRoZSBzYW1lIE9J RC4gIFRvIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZXMKKyAqIHN0b3JlZCBpbiBtZW1vcnkgYW5kIHRo ZSBjYXRhbG9nIGRlZmluaXRpb24gbWF0Y2gsIHdlIGFsc28ga2VlcCB0cmFjayBvZgorICogdGhl ICJjcmVhdGVfbHNuIi4gIEJlZm9yZSBhbnkgYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSB2YWx1ZXMs IHdlIG5lZWQgdG8KKyAqIGNoZWNrIGlmIHRoZSBMU04gc3RvcmVkIGluIG1lbW9yeSBtYXRjaGVz IHRoZSBMU04gaW4gdGhlIGNhdGFsb2cuICBJZiB0aGVyZQorICogaXMgYSBtaXNtYXRjaCBiZXR3 ZWVuIHRoZSBMU05zLCBvciBpZiB0aGUgT0lEIGlzIG5vdCBwcmVzZW50IGluIHBnX3ZhcmlhYmxl CisgKiBhdCBhbGwsIHRoZSB2YWx1ZSBzdG9yZWQgaW4gbWVtb3J5IGlzIHJlbGVhc2VkLgorICov Cit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCit7CisJT2lkCQkJdmFyaWQ7CQkJLyogcGdf dmFyaWFibGUgT0lEIG9mIHRoZSB2YXJpYWJsZSAoaGFzaCBrZXkpICovCisJWExvZ1JlY1B0cglj cmVhdGVfbHNuOworCisJYm9vbAkJaXNudWxsOworCURhdHVtCQl2YWx1ZTsKKworCU9pZAkJCXR5 cGlkOworCWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7CisKKwlib29sCQlpc19kb21h aW47CisKKwkvKgorCSAqIGRvbWFpbl9jaGVja19leHRyYSBob2xkcyBjYWNoZWQgZG9tYWluIG1l dGFkYXRhLiAgVGhpcyAiZXh0cmEiIGlzCisJICogdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4dC4g IFdlIGRvIG5vdCBoYXZlIGFjY2VzcyB0byB0aGF0IG1lbW9yeSBjb250ZXh0CisJICogZm9yIHNl c3Npb24gdmFyaWFibGVzLCBidXQgd2UgY2FuIHVzZSBUb3BUcmFuc2FjdGlvbkNvbnRleHQgaW5z dGVhZC4KKwkgKiBBIGZyZXNoIHZhbHVlIGlzIGZvcmNlZCB3aGVuIHdlIGRldGVjdCB3ZSBhcmUg aW4gYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24KKwkgKiAodGhlIGxvY2FsIHRyYW5zYWN0aW9uIElE IGRpZmZlcnMgZnJvbSBkb21haW5fY2hlY2tfZXh0cmFfbHhpZCkuCisJICovCisJdm9pZAkgICAq ZG9tYWluX2NoZWNrX2V4dHJhOworCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0 cmFfbHhpZDsKKworCS8qCisJICogU3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9uIGNh biBiZSBvdXRkYXRlZCB3aGVuIHdlIHJlY2VpdmUgYQorCSAqIHNpbnZhbCBtZXNzYWdlLiAgV2Ug dGhlbiBoYXZlIHRvIGNoZWNrIGlmIHRoZSBzdG9yZWQgZGF0YSBhcmUgc3RpbGwKKwkgKiB0cnVz dHdvcnRoeS4KKwkgKi8KKwlib29sCQlpc192YWxpZDsKKworCXVpbnQzMgkJaGFzaHZhbHVlOwkJ LyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAqLworfSBTVmFyaWFibGVEYXRhOwor Cit0eXBlZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKKworc3RhdGljIEhUQUIgKnNlc3Np b252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwor c3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CisKKy8q CisgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlkYXRpb24u CisgKi8KK3N0YXRpYyB2b2lkCitwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcs IGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0 dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2NhY2hl X2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKKworCUFzc2VydChzZXNzaW9u dmFycyk7CisKKwkvKgorCSAqIElmIHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNpZmllZCwgd2Ug aGF2ZSB0byByZWNoZWNrIGFsbCBjdXJyZW50bHkKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVz LiAgU2luY2Ugd2UgY2FuJ3QgdGVsbCB0aGUgZXhhY3Qgc2Vzc2lvbiB2YXJpYWJsZQorCSAqIGZy b20gaXRzIGhhc2h2YWx1ZSwgd2UgaGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsIGl0ZW1zIGluIHRo ZSBoYXNoIGJ1Y2tldC4KKwkgKi8KKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJz KTsKKworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVz KSkgIT0gTlVMTCkKKwl7CisJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUg PT0gaGFzaHZhbHVlKQorCQl7CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJfQor fQorCisvKgorICogUmVsZWFzZSBzdG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0YXRp YyB2b2lkCitmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7CisJ LyogY2xlYW4gdGhlIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJ CWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+dmFs dWUpKTsKKworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0gKERh dHVtKSAwOworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBnX3Zh cmlhYmxlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFibGUu CisgKi8KK3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBz dmFyKQoreworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFzc2Vy dChPaWRJc1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJ QUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBUdXBs ZUlzVmFsaWQodHApKQorCXsKKwkJLyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5vdWdo IGFzIGFuIHVuaXF1ZSBpZGVudGlmaWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0IHJl Y3ljbGVkLCBhbmQgYSBuZXcgc2Vzc2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdAorCQkgKiB0 aGUgc2FtZSBPSUQuICBXZSBkbyBhIHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQgTFNO IHdoZW4KKwkJICogdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2YXIt PmNyZWF0ZV9sc24gPT0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFyY3Jl YXRlX2xzbikKKwkJCXJlc3VsdCA9IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwl9 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNh Y2hlZCBpbiAic3ZhciIKKyAqLworc3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUo U1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdf dmFyaWFibGUgdmFyZm9ybTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0dXAg PSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsK KworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0g PSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9IHZh cmlkOworCXN2YXItPmNyZWF0ZV9sc24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJc3Zh ci0+dHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5 cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9tYWlu ID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKKwlz dmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19leHRy YV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9IHRy dWU7CisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRydWU7 CisKKwlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQs CisJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXNDYWNo ZSh0dXApOworfQorCisvKgorICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZh cmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5l Y2Vzc2FyeS4KKyAqCisgKiBJZiBhbnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZhbHVl IHdvbid0IGJlIG1vZGlmaWVkLgorICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1bQkJ bmV3dmFsOworCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFzc2Vy dChzdmFyKTsKKwlBc3NlcnQoIWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJLyoK KwkgKiBVc2UgdHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdo ZW4gdGhleSBhcmUKKwkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdh cyBub3QgYWNjZXB0ZWQgZm9yIHRoaXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFibGUg bWlnaHQgYmUgaW52YWxpZCwgZm9yY2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3ZlcndyaXRl IHRoZSBwYXNzZWQgc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgorCSAq IHRoYXQgbm8gZXJyb3IgY2FuIGJlIHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlk KQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQpOwor CQlfc3ZhciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlmICgh aXNudWxsKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNo VG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZhbHVl LCBfc3Zhci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhvbGRjeHQpOworCX0KKwllbHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlh YmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3BhY2Vf bmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJIGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQpOwor CisJLyogbm8gbW9yZSBlcnJvciBleHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUgb2xk IHZhcmlhYmxlIG5vdyAqLworCWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3ZhciwgX3N2 YXIsIHNpemVvZihTVmFyaWFibGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKKwlz dmFyLT5pc251bGwgPSBpc251bGw7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUg Zm9yIHN0b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVf c2Vzc2lvbnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJ QXNzZXJ0KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJ eworCQkvKiByZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVD YWxsYmFjayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJh Y2ssCisJCQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxvbmct bGl2ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJCQlB bGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vzc2lv biB2YXJpYWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsKKwl9 CisKKwltZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0bC5r ZXlzaXplID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNWYXJp YWJsZURhdGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0OworCisJ c2Vzc2lvbnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZhcnNf Y3RsLAorCQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7Cit9 CisKKy8qCisgKiBTZWFyY2ggYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxlIGdp dmVuIGl0cyBPSUQuICBJZiBpdAorICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQgdGhl cmUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lv biBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJl cyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwgdGhl IGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9zZXNz aW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3Vu ZDsKKworCS8qIHByb3RlY3QgdGhlIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1Ag Ki8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNj ZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFy c19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lv bnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlmIChm b3VuZCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJZiB0 aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGls bCBiZQorCQkJICogdmFsaWQsIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBj YXRhbG9nLgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkK KwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZhbHVl IGNhbm5vdCBiZSB2YWxpZGF0ZWQsIHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZyZWVf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXItPmlz X3ZhbGlkID0gZmFsc2U7CisKKwkvKgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRp YWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxpZGF0 ZWQuCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBi eSBSRUFEKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAor CQkJIHZhcmlkKTsKKwl9CisKKwkvKiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3RpbGwg b2YgdGhlIGNvcnJlY3QgZG9tYWluICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJCS8q CisJCSAqIFN0b3JlICJleHRyYSIgZm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0aW9u Q29udGV4dC4gIFdoZW4gd2UKKwkJICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21haW5f Y2hlY2tfZXh0cmEgY2FjaGUgaXMgbm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8KKwkJ aWYgKHN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQor CQkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2soc3Zh ci0+dmFsdWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJldHVy biBzdmFyOworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lvbiB2 YXJpYWJsZSBpbiB0aGUgY2FjaGUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBm b3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhp cyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgorICog dmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1Nl dFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKK3sK KwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBzZXNz aW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9u dmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNI X0VOVEVSLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBi eSBXUklURSkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2 YXItPnZhcmlkKSwKKwkJCSB2YXJpZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQgd29u J3QgY2hhbmdlIHRoZSBzdG9yZWQgdmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShzdmFy LCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1 ZSBzdG9yZWQgaW4gYSB2YXJpYWJsZS4KKyAqLworc3RhdGljIGlubGluZSBEYXR1bQorY29weV9z ZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBib29sICppc051bGwpCit7CisJ RGF0dW0JCXZhbHVlOworCisJLyogZm9yY2UgY29weSBvZiBub24gTlVMTCB2YWx1ZSAqLworCWlm ICghc3Zhci0+aXNudWxsKQorCXsKKwkJdmFsdWUgPSBkYXR1bUNvcHkoc3Zhci0+dmFsdWUsIHN2 YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4pOworCQkqaXNOdWxsID0gZmFsc2U7CisJfQorCWVs c2UKKwl7CisJCXZhbHVlID0gKERhdHVtKSAwOworCQkqaXNOdWxsID0gdHJ1ZTsKKwl9CisKKwly ZXR1cm4gdmFsdWU7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgb2Yg dGhlIHNlc3Npb24gdmFyaWFibGUgKGluIHRoZSBjdXJyZW50IG1lbW9yeQorICogY29udGV4dCku ICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLwor RGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCkKK3sKKwlT VmFyaWFibGUJc3ZhcjsKKworCXN2YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7CisK KwkvKgorCSAqIEFsdGhvdWdoICJzdmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlzIHBv aW50LCBzdmFyLT5pc192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0aW9u IG1lc3NhZ2Ugd2FzIHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkgKiBCdXQg dGhlIHZhcmlhYmxlIGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywgc28g d2UgZG9uJ3QgbmVlZAorCSAqIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwlyZXR1 cm4gY29weV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CiAKIC8qCiAg KiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmgKaW5kZXggNDlmMzZhYzY4ODUuLjlmNWM2ZTMwZmJkIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0xOSw2ICsxOSw5IEBACiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX25vZGUuaCIKICNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCiAKK2V4dGVybiB2 b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVs bCk7CitleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNO dWxsKTsKKwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0 IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdAppbmRleCBiZGNkYmQzZjU3Zi4uY2UzYThhYmI2MjMgMTAwNjQ0Ci0tLSBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CkBAIC0yNjM5LDYgKzI2MzksOCBAQCBTU0xfQ1RYCiBTVEFSVFVQSU5G TwogU1RSTEVOCiBTVgorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlCiBTWU5DSFJPTklaQVRJT05f QkFSUklFUgogU2FtcGxlU2NhbgogU2FtcGxlU2NhbkdldFNhbXBsZVNpemVfZnVuY3Rpb24KLS0g CjIuNDkuMAoK --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0004-support-of-session-variables-for-psql.patch" Content-Disposition: attachment; filename="v20250603-2-0004-support-of-session-variables-for-psql.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9ee711 RnJvbSAyZTkxYTlkMzc0MGEwNjE0MTExODE5ZjNjNjFkNTc1ZWJkZGRlYzkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDIyOjE2OjE2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNC8xNV0gc3VwcG9ydCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBmb3IgcHNxbAoKVGhpcyBw YXRjaCBlbmhhbmNpbmcgcHNxbCB0byBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzOgoKICogXGRW WytdIGNvbW1hbmQKICogdGFiIGNvbXBsZXRlIGZvciBDUkVBVEUsIERST1AsIEFMVEVSIFZBUklB QkxFCgpOb3RlOiB0YWIgY29tcGxldGUgZm9yIHZhcmlhYmxlIGZlbmNpbmcgaXMgbm90IHN1cHBv cnRlZCB5ZXQKLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgIHwgIDEyICsr KysKIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgfCAgMTMgKysrKwogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyAgICB8ICAxNCArKysrCiBzcmMvYmluL3BzcWwvY29t bWFuZC5jICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAg ICAgICAgfCAxMDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHNyYy9iaW4vcHNxbC9k ZXNjcmliZS5oICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9wc3FsL2hlbHAuYyAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgIHwgIDQ1 ICsrKysrKysrKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgfCAgIDMg Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCB8ICA1MCArKysrKysrKysrKysr KysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsICAgICAgfCAgMjEgKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAyNTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAppbmRl eCAzZThkNGJlYTE0OS4uZmEwOWJmNDhmYjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5j LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjYxMzAsNiArMjYxMzAsMTgg QEAgU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxl KG9pZCk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJv dz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVu Y19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+cGdf dmFyaWFibGVfaXNfdmlzaWJsZTwvcHJpbWFyeT4KKyAgICAgICAgPC9pbmRleHRlcm0+CisgICAg ICAgIDxmdW5jdGlvbj5wZ192YXJpYWJsZV9pc192aXNpYmxlPC9mdW5jdGlvbj4gKCA8cGFyYW1l dGVyPnZhcmlhYmxlPC9wYXJhbWV0ZXI+IDx0eXBlPm9pZDwvdHlwZT4gKQorICAgICAgICA8cmV0 dXJudmFsdWU+Ym9vbGVhbjwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICBJcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBhdGg/ CisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KICAgICAgPC90Ym9keT4KICAg ICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Bz cWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggOGY3ZDg3 NThjYTAuLmY4Njk2NmY1MTI4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVm LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTM1LDYgKzIx MzUsMTkgQEAgU0VMRUNUICQxIFxwYXJzZSBzdG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAg ICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1l dGEtY29tbWFuZC1kdiI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkVlsrXSBbIDxsaW5rIGxp bmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGF0dGVybjwvcmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAg PGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgTGlzdHMgc2Vzc2lvbiB2YXJpYWJs ZXMuCisgICAgICAgIElmIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9y ZXBsYWNlYWJsZT4gaXMKKyAgICAgICAgc3BlY2lmaWVkLCBvbmx5IHNlc3Npb24gdmFyaWFibGVz IHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGFyZSBsaXN0ZWQuCisgICAgICAgIElmIHRo ZSBmb3JtIDxsaXRlcmFsPlxkVis8L2xpdGVyYWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5mb3Jt YXRpb24KKyAgICAgICAgYWJvdXQgZWFjaCB2YXJpYWJsZSBpcyBzaG93biwgbGlrZSAgYWNjZXNz IHByaXZpbGVnZXMgYW5kIGRlc2NyaXB0aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwv bGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICAgPHZhcmxpc3RlbnRyeSBp ZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5kLWR1Ij4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGR1 W1N4K10gWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48 L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGY2 MDhjMjNjM2RmLi40MzA3Y2FkMTVjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC01Mjky LDMgKzUyOTIsMTcgQEAgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJT05fQVJHUykK IAogCVBHX1JFVFVSTl9CT09MKGlzT3RoZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwogfQorCitEYXR1 bQorcGdfdmFyaWFibGVfaXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCW9p ZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJYm9vbAkJcmVzdWx0OworCWJvb2wJCWlzX21pc3Npbmcg PSBmYWxzZTsKKworCXJlc3VsdCA9IFZhcmlhYmxlSXNWaXNpYmxlRXh0KG9pZCwgJmlzX21pc3Np bmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJUEdfUkVUVVJO X0JPT0wocmVzdWx0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9z cmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IDgxYTViYTg0NGJhLi5hMTcxYmY1ZjNiNCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFu ZC5jCkBAIC0xMjQ2LDYgKzEyNDYsOSBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNj YW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJl YWs7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJ CQkJc3VjY2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQli cmVhazsKIAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJi b3NlKQogCQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YwppbmRleCAxZDA4MjY4MzkzZS4uYWQ0NmNhNGY5YmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xMjIzLDcgKzEy MjMsNyBAQCBsaXN0RGVmYXVsdEFDTHMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJICAiU0VM RUNUIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGQuZGVmYWNscm9sZSkgQVMgXCIlc1wiLFxu IgogCQkJCQkgICIgIG4ubnNwbmFtZSBBUyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSBkLmRl ZmFjbG9ianR5cGUgIgotCQkJCQkgICIgICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycg VEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcyciCisJCQkJCSAgIiAgICBXSEVOICclYycgVEhF TiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycg VEhFTiAnJXMnIgogCQkJCQkgICIgICAgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhF TiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgRU5EIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICAi LAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKQEAgLTEyNDAsNiArMTI0MCw4IEBAIGxp c3REZWZhdWx0QUNMcyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkgIGdldHRleHRfbm9vcCgi c2NoZW1hIiksCiAJCQkJCSAgREVGQUNMT0JKX0xBUkdFT0JKRUNULAogCQkJCQkgIGdldHRleHRf bm9vcCgibGFyZ2Ugb2JqZWN0IiksCisJCQkJCSAgREVGQUNMT0JKX1ZBUklBQkxFLAorCQkJCQkg IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi VHlwZSIpKTsKIAogCXByaW50QUNMQ29sdW1uKCZidWYsICJkLmRlZmFjbGFjbCIpOwpAQCAtNTMx Myw2ICs1MzE1LDEwMiBAQCBlcnJvcl9yZXR1cm46CiAJcmV0dXJuIGZhbHNlOwogfQogCisvKgor ICogXGRWCisgKgorICogbGlzdFZhcmlhYmxlcygpCisgKi8KK2Jvb2wKK2xpc3RWYXJpYWJsZXMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBi dWY7CisJUEdyZXN1bHQgICAqcmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7 CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpZiAocHNldC5zdmVyc2lv biA8IDE4MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJvcigi VGhlIHNlcnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxl cy4iLAorCQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAor CQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsK Kwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4cEJ1ZmZlcigmYnVm LAorCQkJCQkgICJTRUxFQ1Qgbi5uc3BuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZh cm5hbWUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52 YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIChTRUxFQ1QgYy5j b2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlw ZSBidFxuIgorCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5v aWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMg XCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3du ZXIpIGFzIFwiJXNcIlxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAorCQkJCQkg IGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAorCQkJ CQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25l ciIpKTsKKworCWlmICh2ZXJib3NlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwg IixcbiAgIik7CisJCXByaW50QUNMQ29sdW1uKCZidWYsICJ2LnZhcmFjbCIpOworCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlv bih2Lm9pZCwgJ3BnX3ZhcmlhYmxlJykgQVMgXCIlc1wiIiwKKwkJCQkJCSAgZ2V0dGV4dF9ub29w KCJEZXNjcmlwdGlvbiIpKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJ CQkJICJcbkZST00gcGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IgorCQkJCQkJICJcbiAgICAgTEVG VCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB2LnZhcm5hbWVzcGFj ZSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuV0hFUkUgdHJ1ZVxuIik7CisJ aWYgKCFwYXR0ZXJuKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiICAgICAgQU5EIG4u bnNwbmFtZSA8PiAncGdfY2F0YWxvZydcbiIKKwkJCQkJCQkgIiAgICAgIEFORCBuLm5zcG5hbWUg PD4gJ2luZm9ybWF0aW9uX3NjaGVtYSdcbiIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5hbWVQYXR0 ZXJuKCZidWYsIHBhdHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQkibi5uc3BuYW1lIiwgInYu dmFybmFtZSIsIE5VTEwsCisJCQkJCQkJCSJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2li bGUodi5vaWQpIiwKKwkJCQkJCQkJTlVMTCwgMykpCisJCXJldHVybiBmYWxzZTsKKworCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLDI7Iik7CisKKwlyZXMgPSBQU1FMZXhl YyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1 cm4gZmFsc2U7CisKKwkvKgorCSAqIE1vc3QgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBhcmUgY29u dGVudCB0byBwcmludCBhbiBlbXB0eSB0YWJsZSB3aGVuCisJICogdGhlcmUgYXJlIG5vIG1hdGNo aW5nIG9iamVjdHMuICBXZSBpbnRlbnRpb25hbGx5IGRldmlhdGUgZnJvbSB0aGF0CisJICogaGVy ZSwgYnV0IG9ubHkgaW4gIXF1aWV0IG1vZGUsIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMuCisJICov CisJaWYgKFBRbnR1cGxlcyhyZXMpID09IDAgJiYgIXBzZXQucXVpZXQpCisJeworCQlpZiAocGF0 dGVybikKKwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxl IG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJIHBhdHRlcm4pOworCQllbHNlCisJCQlwZ19sb2dfZXJy b3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJsZXMuIik7CisJfQorCWVsc2UKKwl7 CisJCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CisJCW15b3B0LnRpdGxlID0gXygiTGlzdCBvZiB2 YXJpYWJsZXMiKTsKKwkJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7CisJCW15b3B0LnRy YW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJCW15b3B0Lm5fdHJhbnNsYXRl X2NvbHVtbnMgPSBsZW5ndGhvZih0cmFuc2xhdGVfY29sdW1ucyk7CisKKwkJcHJpbnRRdWVyeShy ZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOworCX0KKwor CVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KIAogLyoKICAqIFxkRnAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5k ZXggMThlY2FhNjA5NDkuLjU1Y2VkNGFhYjdiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQgKzE0OSw3IEBA IGV4dGVybiBib29sIGxpc3RPcEZhbWlseUZ1bmN0aW9ucyhjb25zdCBjaGFyICphY2Nlc3NfbWV0 aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3IgXGxvX2xpc3QgKi8KIGV4dGVybiBib29sIGxpc3RMYXJn ZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsKIAorLyogXGRWICovCitleHRlcm4gYm9vbCBsaXN0VmFy aWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmFyYm9zZSk7CisKICNlbmRpZgkJCQkJ CQkvKiBERVNDUklCRV9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3Jj L2Jpbi9wc3FsL2hlbHAuYwppbmRleCA0MDNiNTEzMjVhNy4uODE4ODZlYjk3MjUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjYx LDYgKzI2MSw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAw KCIgIFxcZFRbU3grXSBbUEFUVEVSTl0gICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAo IiAgXFxkdVtTeCtdIFtQQVRURVJOXSAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxk dltTeCtdIFtQQVRURVJOXSAgICAgbGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkVlt4K10g IFtQQVRURVJOXSAgICAgbGlzdCBzZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxk eFt4K10gIFtQQVRURVJOXSAgICAgbGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRY W3hdICAgW1BBVFRFUk5dICAgICBsaXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAw KCIgIFxcZHlbeCtdICBbUEFUVEVSTl0gICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCmluZGV4IGVjNjVhYjc5ZmVjLi43ZmUxOWE1NjhmMSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwpAQCAtOTcwLDYgKzk3MCwxMyBAQCBzdGF0aWMgY29uc3QgU2NoZW1hUXVl cnkgUXVlcnlfZm9yX3RyaWdnZXJfb2ZfdGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9ICJjMS5y ZWxuYW1lc3BhY2UiLAogfTsKIAorc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5X2Zvcl9s aXN0X29mX3ZhcmlhYmxlcyA9IHsKKwkubWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAwLAorCS5j YXRuYW1lID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlvbiA9ICJw Z19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNwYWNlID0g InYudmFybmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gInYudmFybmFtZSIsCit9OwogCiAvKgogICog UXVlcmllcyB0byBnZXQgbGlzdHMgb2YgbmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0aGluZ3Ms IHBvc3NpYmx5CkBAIC0xMzE4LDYgKzEzMjUsNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdf dCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAu Li4gKi8KIAl7IlVTRVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVMTCwgS2V5 d29yZHNfZm9yX3VzZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEwsIE5VTEws IE5VTEx9LAorCXsiVkFSSUFCTEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfdmFy aWFibGVzfSwKIAl7IlZJRVciLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9 LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBvZiBsaXN0ICovCiB9OwpAQCAtMTg4Myw3ICsxODkxLDcg QEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkK IAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRpIiwgIlxc ZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxcZHAiLCAi XFxkUCIsICJcXGRQaSIsICJcXGRQdCIsCiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxkUnMiLCAi XFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgi LCAiXFxkWCIsICJcXGR5IiwKKwkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxk eCIsICJcXGRYIiwgIlxcZHkiLCAiXFxkViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0IiwgIlxcZWYi LCAiXFxlbGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAiXFxlbmRw aXBlbGluZSIsICJcXGVycnZlcmJvc2UiLCAiXFxldiIsCiAJCSJcXGYiLCAiXFxmbHVzaCIsICJc XGZsdXNocmVxdWVzdCIsCkBAIC0yNTkyLDYgKzI2MDAsOSBAQCBtYXRjaF9wcmV2aW91c193b3Jk cyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkgICJBTEwiKTsKIAllbHNlIGlmIChNYXRjaGVz KCJBTFRFUiIsICJTWVNURU0iLCAiU0VUIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJU TyIpOworCS8qIEFMVEVSIFZBUklBQkxFIDxuYW1lPiAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFM VEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIs ICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ICovCiAJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVklFVyIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVf V0lUSCgiQUxURVIgQ09MVU1OIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSIsICJSRVNFVCIsICJTRVQi KTsKQEAgLTMxNzUsNyArMzE4Niw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJu X2lkLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNFIiwgIlNF UlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxFIiwKIAkJ CQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwKLQkJCQkJ ICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJRVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwg IlZBUklBQkxFIiwgIlZJRVciKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwgIk9OIiwg IkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIs ICJDT05TVFJBSU5UIikpCkBAIC0zOTg1LDYgKzM5OTYsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0Y2hBbnlF eGNlcHQoIiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyogQ1JFQVRF IFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFp bE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMg Ki8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp KQorCQlDT01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJM RSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1l PiB3aXRoIEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxvd2VkIGlu c2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBD UkVBVEUgWyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICovCkBAIC00 MjYyLDYgKzQyODAsMTIgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ ZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hBbnksICJM QU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklD VCIpOwogCisJLyogRFJPUCBWQVJJQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAi VkFSSUFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CisKIC8qIEVY RUNVVEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJFWEVDVVRFIikpCiAJCUNPTVBMRVRFX1dJVEhf UVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJlcGFyZWRfc3RhdGVtZW50cyk7CkBAIC00NDYzLDcg KzQ0ODcsOSBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJICogb2Jq ZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwogCQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIkRFRkFV TFQiLCAiUFJJVklMRUdFUyIpKQotCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNF UyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hF TUFTIiwgIkxBUkdFIE9CSkVDVFMiKTsKKwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFV RU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLAorCQkJCQkJICAiUk9VVElORVMiLCAi VFlQRVMiLCAiU0NIRU1BUyIsICJMQVJHRSBPQkpFQ1RTIiwKKwkJCQkJCSAgIlZBUklBQkxFUyIp OwogCQllbHNlCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9s aXN0X29mX2dyYW50YWJsZXMsCiAJCQkJCQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIs CkBAIC00NDcxLDYgKzQ0OTcsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxM IFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi LAorCQkJCQkJCQkJCQkiQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiREFU QUJBU0UiLAogCQkJCQkJCQkJCQkiRE9NQUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJR04gREFUQSBX UkFQUEVSIiwKQEAgLTQ0ODUsNyArNDUxMiw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAog CQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJ CSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1h dGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIs ICJBTEwiKSkKQEAgLTQ0OTMsNyArNDUyMSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkgICJQUk9DRURVUkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlJPVVRJ TkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAotCQkJCQkgICJU QUJMRVMgSU4gU0NIRU1BIik7CisJCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkgICJW QVJJQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9L RSIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9L RSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikp CiAJCUNPTVBMRVRFX1dJVEgoIkRBVEEgV1JBUFBFUiIsICJTRVJWRVIiKTsKQEAgLTQ1MjksNiAr NDU1OCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExF VEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNwYWNlcyk7CiAJCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOworCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFC TEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zh cmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVCIsIE1hdGNoQW55LCBNYXRj aEFueSwgTWF0Y2hBbnkpKQogCQkJQ09NUExFVEVfV0lUSCgiVE8iKTsKIAkJZWxzZQpAQCAtNDgz MSw3ICs0ODYyLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8q IFBSRVBBUkUgeHggQVMgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnks ICJBUyIpKQotCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRP IiwgIkRFTEVURSBGUk9NIik7CisJCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAi SU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRS QU5TQUNUSU9OIGlzIG1pc3Npbmcgb24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNh Y3Rpb24KQEAgLTUzMjAsNiArNTM1MSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR2KiIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92aWV3cyk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXND UygiXFxkVioiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR4KiIpKQogCQlDT01Q TEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2V4dGVuc2lvbnMpOwogCWVsc2UgaWYg KFRhaWxNYXRjaGVzQ1MoIlxcZFgqIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA1ZGE5 OTU5OTQyYy4uZjcyYWNkZDg0YmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjY5Niw2 ICs2Njk2LDkgQEAKICAgcHJvbmFtZSA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnLCBwcm9j b3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcs IHByb2FyZ3R5cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNp YmxlJyB9LAoreyBvaWQgPT4gJzk5OTknLCBkZXNjciA9PiAnaXMgc2Vzc2lvbiB2YXJpYWJsZSB2 aXNpYmxlIGluIHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zp c2libGUnLCBwcm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlw ZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX3ZhcmlhYmxl X2lzX3Zpc2libGUnIH0sCiAKIHsgb2lkID0+ICcyODU0JywgZGVzY3IgPT4gJ2dldCBPSUQgb2Yg Y3VycmVudCBzZXNzaW9uXCdzIHRlbXAgc2NoZW1hLCBpZiBhbnknLAogICBwcm9uYW1lID0+ICdw Z19teV90ZW1wX3NjaGVtYScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3In LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggY2Y0OGFlNmQwYzIuLmZkNmIyYTZi OGM4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTYwMjMsNiArNjAyMywzMCBA QCBDT01NSVQ7CiAjIGZpbmFsIE9OX0VSUk9SX1JPTExCQUNLOiBvZmYKIERST1AgVEFCTEUgYmxh OwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOworLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitD UkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAi QyI7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMg fCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykK KworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBW QVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJp dmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8 IAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOwor RFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiAtLSBjaGVjayBkZXNjcmliaW5nIGlu dmFsaWQgbXVsdGlwYXJ0IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFwCiBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5oZWFwCkBAIC02 MjQ0LDYgKzYyNjgsMTIgQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxl bWVudGVkOiBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIGltcHJvcGVyIHF1YWxpZmll ZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9u ZXN1Y2gubXlldnQKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFt ZXMpOiBub25lc3VjaC5teWV2dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitpbXBy b3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogaG9zdC5yZWdyZXNz aW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorY3Jvc3MtZGF0 YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiByZWdyZXNzaW9ufG15ZGIucHVi bGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5j ZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gucHVibGljLnZhcgogLS0gY2hlY2sgdGhh dCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAi bm8uc3VjaC5hY2Nlc3MubWV0aG9kIgogTGlzdCBvZiBhY2Nlc3MgbWV0aG9kcwpAQCAtNjQ3OCw2 ICs2NTA4LDEyIEBAIExpc3Qgb2Ygc2NoZW1hcwogLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0KICgwIHJvd3MpCiAKK1xkViAibm8uc3VjaC52YXJpYWJs ZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVh bGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9k IgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTY2NDcsNiArNjY4MywxMiBA QCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBh Z2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZp Y2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUu cmVsYXRpb24iCiAgICAgICAgIExpc3Qgb2YgdGFibGVzCkBAIC02NzgwLDYgKzY4MjIsMTIgQEAg TGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKIC0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0KICgwIHJvd3MpCiAKK1xkViByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3Mp CisKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEg cXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIu Im5vLnN1Y2gudGFibGUucmVsYXRpb24iCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtNjgyNyw2ICs2ODc1LDggQEAgY3Jvc3MtZGF0YWJhc2Ug cmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1 Y2guc2NoZW0KIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDog Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgog XGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVk LnN0YXRpc3RpY3MiCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50 ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVk LnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2gudmFyaWFibGUiCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVt ZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgogLS0gY2hlY2sgXGRyZyBhbmQgXGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUw OwogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXgg MWE4YTgzNDYyZjAuLmI1NjdlZTFlZWUyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9wc3FsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTY0Myw2 ICsxNjQzLDE5IEBAIENPTU1JVDsKIERST1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3Fs X2Vycm9yOwogCistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJM RSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQorRFJPUCBWQVJJQUJMRSB2 YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CisKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxk QSByZWdyZXNzaW9uLmhlYXAKIFxkQSBub25lc3VjaC5oZWFwCkBAIC0xNzU0LDYgKzE3NjcsOSBA QCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFggbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVw c19zdGF0CiBcZHkgcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9z dC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgor XGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKIAogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90 ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0 aG9kIgpAQCAtMTc5NSw2ICsxODExLDggQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4 ICJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFggIm5vLnN1Y2guZXh0ZW5kZWQuc3Rh dGlzdGljcyIKIFxkeSAibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnZhcmlh YmxlIgorCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE4MzUs NiArMTg1Myw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNpb24iCiBcZFggIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxl IgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVt YSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODU5LDYgKzE4NzgsNyBAQCBEUk9QIEZVTkNUSU9OIHBz cWxfZXJyb3I7CiBcZFAgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRp dGlvbmVkLnJlbGF0aW9uIgogXGRUIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5kYXRhLnR5cGUiCiBcZFggcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4 dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBk b3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtMTg4NCw2ICsxOTA0LDcg QEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRQICJuby5zdWNoLmRhdGFiYXNlIi4ibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUICJuby5zdWNo LmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0 aWNzIgorXGRWICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZh cmlhYmxlIgogCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVf cm9sZTA7Ci0tIAoyLjQ5LjAKCg== --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0005-support-of-session-variables-for-pg_dump.patch" Content-Disposition: attachment; filename="v20250603-2-0005-support-of-session-variables-for-pg_dump.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9edz10 RnJvbSAzZTIzNDJmOWQ0MTkxY2RiMWU2Mzc3ZGRhMTM4NWM4YzI0ZTkyMzhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDIyOjU0OjA5ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNS8xNV0gc3VwcG9ydCBvZiBzZXNzaW9uIHZhcmlhYmxlcyBmb3IgcGdfZHVtcAoKVGhp cyBwYXRjaCBlbmhhbmNpbmcgcGdfZHVtcCB0byBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzLgot LS0KIHNyYy9iaW4vcGdfZHVtcC9jb21tb24uYyAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmlu L3BnX2R1bXAvZHVtcHV0aWxzLmMgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cC5oICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJj aGl2ZXIuYyB8ICAgOSArKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgIHwg MTkwICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCAgICAgICAgICAgIHwgIDE1ICsrKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAg ICAgIHwgICA3ICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICB8ICA2NCAr KysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICB8ICAgMSArCiA5 IGZpbGVzIGNoYW5nZWQsIDI5NyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL2NvbW1vbi5jIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCmluZGV4IGFhMTU4OWUz MzMxLi44NjM2MGJkNmQ5NSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpAQCAtMjQ2LDYgKzI0Niw5IEBAIGdldFNjaGVt YURhdGEoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9nX2luZm8oInJl YWRpbmcgc3Vic2NyaXB0aW9uIG1lbWJlcnNoaXAgb2YgdGFibGVzIik7CiAJZ2V0U3Vic2NyaXB0 aW9uVGFibGVzKGZvdXQpOwogCisJcGdfbG9nX2luZm8oInJlYWRpbmcgdmFyaWFibGVzIik7CisJ Z2V0VmFyaWFibGVzKGZvdXQpOworCiAJZnJlZShpbmhpbmZvKTsJCQkJLyogbm90IG5lZWRlZCBh bnkgbG9uZ2VyICovCiAKIAkqbnVtVGFibGVzUHRyID0gbnVtVGFibGVzOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5j CmluZGV4IDczY2UzNDM0NmIyLi5jYmNhN2MzNDNhMSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL2R1bXB1dGlscy5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYwpAQCAtNTE0 LDYgKzUxNCwxMiBAQCBkbyB7IFwKIAkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOwogCQlD T05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CiAJfQorCWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAi VkFSSUFCTEUiKSA9PSAwIHx8CisJCQkgc3RyY21wKHR5cGUsICJWQVJJQUJMRVMiKSA9PSAwKQor CXsKKwkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOworCQlDT05WRVJUX1BSSVYoJ3cnLCAi VVBEQVRFIik7CisJfQogCWVsc2UKIAkJYWJvcnQoKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGFm MDAwN2ZiNmQyLi43NjM1NjUyNGFmMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2Jh Y2t1cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApAQCAtMTM0LDEyICsxMzQs MTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX3Jlc3RvcmVPcHRpb25zCiAJaW50CQkJc2VsRnVuY3Rpb247 CiAJaW50CQkJc2VsVHJpZ2dlcjsKIAlpbnQJCQlzZWxUYWJsZTsKKwlpbnQJCQlzZWxWYXJpYWJs ZTsKIAlTaW1wbGVTdHJpbmdMaXN0IGluZGV4TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBmdW5j dGlvbk5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hTmFtZXM7CiAJU2ltcGxlU3RyaW5n TGlzdCBzY2hlbWFFeGNsdWRlTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0cmlnZ2VyTmFtZXM7 CiAJU2ltcGxlU3RyaW5nTGlzdCB0YWJsZU5hbWVzOworCVNpbXBsZVN0cmluZ0xpc3QgdmFyaWFi bGVOYW1lczsKIAogCWludAkJCXVzZURCOwogCUNvbm5QYXJhbXMJY3BhcmFtczsJCS8qIHBhcmFt ZXRlcnMgdG8gdXNlIGlmIHVzZURCICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf YmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMK aW5kZXggMTc1ZmU5YzQyNzMuLjliZjc3NjQyNzAyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9h cmNoaXZlci5jCkBAIC0zMTc5LDYgKzMxNzksMTQgQEAgX3RvY0VudHJ5UmVxdWlyZWQoVG9jRW50 cnkgKnRlLCB0ZVNlY3Rpb24gY3VyU2VjdGlvbiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCQkJCSFz aW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT50cmlnZ2VyTmFtZXMsIHRlLT50YWcpKQog CQkJCQlyZXR1cm4gMDsKIAkJCX0KKwkJCWVsc2UgaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlZBUklB QkxFIikgPT0gMCkKKwkJCXsKKwkJCQlpZiAoIXJvcHQtPnNlbFZhcmlhYmxlKQorCQkJCQlyZXR1 cm4gMDsKKwkJCQlpZiAocm9wdC0+dmFyaWFibGVOYW1lcy5oZWFkICE9IE5VTEwgJiYKKwkJCQkJ IXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnZhcmlhYmxlTmFtZXMsIHRlLT50YWcp KQorCQkJCQlyZXR1cm4gMDsKKwkJCX0KIAkJCWVsc2UKIAkJCQlyZXR1cm4gMDsKIAkJfQpAQCAt Mzc0Miw2ICszNzUwLDcgQEAgX2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1Ziwg Y29uc3QgVG9jRW50cnkgKnRlKQogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIERJQ1RJT05B UlkiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiIp ID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJUWVBFIikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwg IlZBUklBQkxFIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlZJRVciKSA9PSAwIHx8CiAJLyog bm9uLXNjaGVtYS1zcGVjaWZpZWQgb2JqZWN0cyAqLwogCQlzdHJjbXAodHlwZSwgIkRBVEFCQVNF IikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggMzc0MzJlNjZlZmQuLjVkODc2MjUzOGJkIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmMKQEAgLTM3MCw2ICszNzAsNyBAQCBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb24o QXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKTsKIHN0YXRpYyB2 b2lkIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9u UmVsSW5mbyAqcHVicmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvbihBcmNoaXZl ICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1 bXBTdWJzY3JpcHRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJSZWxJbmZvICpzdWJy aW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFy aWFibGVJbmZvICp2YXJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZShBcmNoaXZlICpm b3V0KTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZUNvbmZpZyhBcmNoaXZlICpBSCwgUFFFeHBC dWZmZXIgb3V0YnVmLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSwgT2lkIGRib2lkKTsK QEAgLTU1MTIsNiArNTUxMywxODggQEAgZ2V0X25leHRfcG9zc2libGVfZnJlZV9wZ190eXBlX29p ZChBcmNoaXZlICpmb3V0LCBQUUV4cEJ1ZmZlciB1cGdyYWRlX3F1ZXJ5KQogCXJldHVybiBuZXh0 X3Bvc3NpYmxlX2ZyZWVfb2lkOwogfQogCisvKgorICogZ2V0VmFyaWFibGVzCisgKgkgIGdldCBp bmZvcm1hdGlvbiBhYm91dCB2YXJpYWJsZXMKKyAqLwordm9pZAorZ2V0VmFyaWFibGVzKEFyY2hp dmUgKmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOworCVZh cmlhYmxlSW5mbyAqdmFyaW5mbzsKKwlpbnQJCQlpX3RhYmxlb2lkOworCWludAkJCWlfb2lkOwor CWludAkJCWlfdmFybmFtZTsKKwlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKKwlpbnQJCQlpX3ZhcnR5 cGU7CisJaW50CQkJaV92YXJ0eXBuYW1lOworCWludAkJCWlfdmFyb3duZXI7CisJaW50CQkJaV92 YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJhY2w7CisJaW50CQkJaV9hY2xkZWZhdWx0OworCWlu dAkJCWksCisJCQkJbnR1cHM7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE4MDAwMCkK KwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJLyogZ2V0IHRo ZSB2YXJpYWJsZXMgaW4gY3VycmVudCBkYXRhYmFzZSAqLworCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LAorCQkJCQkgICJTRUxFQ1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJ CQkJICAiICAgICAgIHYudmFybmFtZXNwYWNlLCB2LnZhcnR5cGUsXG4iCisJCQkJCSAgIiAgICAg ICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5 cG5hbWUsXG4iCisJCQkJCSAgIiAgICAgICBDQVNFIFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50 eXBjb2xsYXRpb24gIgorCQkJCQkgICIgICAgICAgICAgICBUSEVOIHYudmFyY29sbGF0aW9uXG4i CisJCQkJCSAgIiAgICAgICAgICAgIEVMU0UgMFxuIgorCQkJCQkgICIgICAgICAgRU5EIEFTIHZh cmNvbGxhdGlvbixcbiIKKwkJCQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgor CQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRc biIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHZcbiIKKwkJCQkJICAiSk9J TiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCisJCQkJCSAgIk9OICh2LnZhcnR5cGUgPSB0Lm9pZCki KTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQ TEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFm bnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7 CisJaV92YXJuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWUiKTsKKwlpX3Zhcm5hbWVzcGFj ZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKKwlpX3ZhcnR5cGUgPSBQUWZudW1i ZXIocmVzLCAidmFydHlwZSIpOworCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0 eXBuYW1lIik7CisJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9u Iik7CisKKwlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CisJaV92YXJh Y2wgPSBQUWZudW1iZXIocmVzLCAidmFyYWNsIik7CisJaV9hY2xkZWZhdWx0ID0gUFFmbnVtYmVy KHJlcywgImFjbGRlZmF1bHQiKTsKKworCXZhcmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXpl b2YoVmFyaWFibGVJbmZvKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJ CVR5cGVJbmZvICAgKnZ0eXBlOworCisJCXZhcmluZm9baV0uZG9iai5vYmpUeXBlID0gRE9fVkFS SUFCTEU7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFn ZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLm9p ZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZ2 YXJpbmZvW2ldLmRvYmopOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdl dHZhbHVlKHJlcywgaSwgaV92YXJuYW1lKSk7CisJCXZhcmluZm9baV0uZG9iai5uYW1lc3BhY2Ug PQorCQkJZmluZE5hbWVzcGFjZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZXNw YWNlKSkpOworCisJCXZhcmluZm9baV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJ0eXBlKSk7CisJCXZhcmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdl dHZhbHVlKHJlcywgaSwgaV92YXJ0eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyY29sbGF0aW9u ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOworCisJCXZhcmlu Zm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7 CisJCXZhcmluZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVz LCBpLCBpX2FjbGRlZmF1bHQpKTsKKwkJdmFyaW5mb1tpXS5kYWNsLnByaXZ0eXBlID0gMDsKKwkJ dmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CisJCXZhcmluZm9baV0ucm9sbmFtZSA9 IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93bmVyKSk7CisKKwkJLyogZG8g bm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzICovCisJCWlmICghUFFnZXRpc251 bGwocmVzLCBpLCBpX3ZhcmFjbCkpCisJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBE VU1QX0NPTVBPTkVOVF9BQ0w7CisKKwkJaWYgKHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09 IDApCisJCQlwZ19sb2dfd2FybmluZygib3duZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMg dG8gYmUgaW52YWxpZCIsCisJCQkJCQkgICB2YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyog ZGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2Jq ZWN0KCYodmFyaW5mb1tpXS5kb2JqKSwgZm91dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lk KHZhcmluZm9baV0udmFydHlwZSk7CisJCWFkZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0u ZG9iaiwgdnR5cGUtPmRvYmouZHVtcElkKTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJv eVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKworLyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1w IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRp YyB2b2lkCitkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVm ZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJ Y29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBza2lw IGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KKwlpZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCAhZG9w dC0+ZHVtcFNjaGVtYSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7 CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJk dXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZv LT52YXJ0eXBuYW1lOworCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKwor CWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBx dWFsdmFybmFtZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJM RSAlcyBBUyAlcyIsCisJCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9p ZElzVmFsaWQodmFyY29sbGF0aW9uKSkKKwl7CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29s bCA9IGZpbmRDb2xsYXRpb25CeU9pZCh2YXJjb2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIENPTExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlm aWVkRHVtcGFibGUoY29sbCkpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xu Iik7CisKKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElP TikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQsIHZhcmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRv YmouZHVtcElkLAorCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUs CisJCQkJCQkJCSAgLm5hbWVzcGFjZSA9IHZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5h bWUsCisJCQkJCQkJCSAgLm93bmVyID0gdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVz Y3JpcHRpb24gPSAiVkFSSUFCTEUiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVf REFUQSwKKwkJCQkJCQkJICAuY3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5k cm9wU3RtdCA9IGRlbHEtPmRhdGEpKTsKKworCS8qIGR1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlp ZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENv bW1lbnQoZm91dCwgIlZBUklBQkxFIiwgcXVhbHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8t PnJvbG5hbWUsCisJCQkJCXZhcmluZm8tPmRvYmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVt cElkKTsKKworCS8qIGR1bXAgQUNMIGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAg JiBEVU1QX0NPTVBPTkVOVF9BQ0wpCisJeworCQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1 cChmbXRJZCh2YXJpbmZvLT5kb2JqLm5hbWUpKTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8t PmRvYmouZHVtcElkLCBJbnZhbGlkRHVtcElkLCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBO VUxMLAorCQkJCXZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmlu Zm8tPnJvbG5hbWUsCisJCQkJJnZhcmluZm8tPmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOwor CX0KKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVl cnkpOworCisJZnJlZShxdWFsdmFybmFtZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBn cmFkZV9zZXRfdHlwZV9vaWRzX2J5X3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJ IFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVyLApAQCAtMTE1NTgsNiArMTE3NDEsOSBAQCBkdW1w RHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNh c2UgRE9fUkVMX1NUQVRTOgogCQkJZHVtcFJlbGF0aW9uU3RhdHMoZm91dCwgKGNvbnN0IFJlbFN0 YXRzSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJZHVt cFZhcmlhYmxlKGZvdXQsIChWYXJpYWJsZUluZm8gKikgZG9iaik7CisJCQlicmVhazsKIAkJY2Fz ZSBET19QUkVfREFUQV9CT1VOREFSWToKIAkJY2FzZSBET19QT1NUX0RBVEFfQk9VTkRBUlk6CiAJ CQkvKiBuZXZlciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8gKi8KQEAgLTE2MDEyLDYgKzE2MTk4LDkg QEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFDTEluZm8gKmRh Y2xpbmZvKQogCQljYXNlIERFRkFDTE9CSl9MQVJHRU9CSkVDVDoKIAkJCXR5cGUgPSAiTEFSR0Ug T0JKRUNUUyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQl0eXBl ID0gIlZBUklBQkxFUyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZG4ndCBn ZXQgaGVyZSAqLwogCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCBvYmplY3QgdHlwZSBpbiBkZWZh dWx0IHByaXZpbGVnZXM6ICVkIiwKQEAgLTE5NzUwLDYgKzE5OTM5LDcgQEAgYWRkQm91bmRhcnlE ZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNl IERPX0NPTlZFUlNJT046CiAJCQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBET19UQUJMRV9BVFRB Q0g6CisJCQljYXNlIERPX1ZBUklBQkxFOgogCQkJY2FzZSBET19BVFRSREVGOgogCQkJY2FzZSBE T19QUk9DTEFORzoKIAkJCWNhc2UgRE9fQ0FTVDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDc0MTdlYWI2YWVm Li4xYzcyMmU0OGRlNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01Myw2ICs1Myw3IEBAIHR5cGVkZWYgZW51 bQogCURPX1RBQkxFLAogCURPX1RBQkxFX0FUVEFDSCwKIAlET19BVFRSREVGLAorCURPX1ZBUklB QkxFLAogCURPX0lOREVYLAogCURPX0lOREVYX0FUVEFDSCwKIAlET19TVEFUU0VYVCwKQEAgLTcz NSw2ICs3MzYsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFyCSAgICpzcnN1 YmxzbjsKIH0gU3ViUmVsSW5mbzsKIAorLyoKKyAqIFRoZSBWYXJpYWJsZUluZm8gc3RydWN0IGlz IHVzZWQgdG8gcmVwcmVzZW50IHNlc3Npb24gdmFyaWFibGVzCisgKi8KK3R5cGVkZWYgc3RydWN0 IF9WYXJpYWJsZUluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCUR1bXBhYmxlQWNsIGRh Y2w7CisJT2lkCQkJdmFydHlwZTsKKwljaGFyCSAgICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNv bGxhdGlvbjsKKwljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1w dHkgc3RyaW5nICovCit9IFZhcmlhYmxlSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1 bmN0aW9ucwogICovCkBAIC04MTgsNSArODMyLDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRp b25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGlu dCBudW1UYWJsZXMpOwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0 KTsKIGV4dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4 dGVybiB2b2lkIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8q IFBHX0RVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDBiMDk3Nzc4OGYxLi5iMzRm MzQxOGY2NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtNzcsNiArNzcsNyBAQCBlbnVtIGRi T2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX0RVTU1ZX1RZUEUsCiAJUFJJT19BVFRSREVGLAog CVBSSU9fTEFSR0VfT0JKRUNULAorCVBSSU9fVkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VO REFSWSwJCS8qIGJvdW5kYXJ5ISAqLwogCVBSSU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNF X1NFVCwKQEAgLTExOSw2ICsxMjAsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVBy aW9yaXR5W10gPQogCVtET19UQUJMRV0gPSBQUklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hd ID0gUFJJT19UQUJMRV9BVFRBQ0gsCiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtE T19WQVJJQUJMRV0gPSBQUklPX1ZBUklBQkxFLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAog CVtET19JTkRFWF9BVFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9 IFBSSU9fU1RBVFNFWFQsCkBAIC0xNTMzLDYgKzE1MzUsMTEgQEAgZGVzY3JpYmVEdW1wYWJsZU9i amVjdChEdW1wYWJsZU9iamVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkg IlJFTEFUSU9OIFNUQVRJU1RJQ1MgRk9SICVzICAoSUQgJWQgT0lEICV1KSIsCiAJCQkJCSBvYmot Pm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2Ug RE9fVkFSSUFCTEU6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFCTEUg JXMgIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+ Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJ c25wcmludGYoYnVmLCBidWZzaXplLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCAzODZl MjFlMGM1OS4uNjYzZDMxYTQ1NTcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC05NjAs NiArOTYwLDE2IEBAIG15ICV0ZXN0cyA9ICgKIAkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwg fSwKIAkgIH0sCiAKKwknQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3Nf ZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUMnCisJICA9 PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1NiwKKwkJY3JlYXRlX3NxbCAgID0+ICdBTFRFUiBERUZB VUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxF Q1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQzsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQztcRS94bSwKKwkJbGlrZSA9PiB7ICVmdWxs X3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX3ByaXZz ID0+IDEsIH0sCisJICB9LAorCiAJJ0FMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZScg PT4gewogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0 X3JvbGUgV0lUSCBcRQpAQCAtMTkyOCw2ICsxOTM4LDIzIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwK IAl9LAogCisJJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4gewor CQljcmVhdGVfb3JkZXIgPT4gNzEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBWQVJJ QUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiB2YXJpYWJs ZVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15cUUNPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMSBJUyAnY29tbWVudCBvbiB2YXJpYWJsZSc7XEUvbSwKKwkJbGlrZSA9PiB7 CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25f cHJlX2RhdGEgICAgID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBf dGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9 LAorCX0sCisKIAknQ09QWSB0ZXN0X3RhYmxlJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAog CQljcmVhdGVfc3FsID0+ICdJTlNFUlQgSU5UTyBkdW1wX3Rlc3QudGVzdF90YWJsZSAoY29sMSkg JwpAQCAtNDIzNiw2ICs0MjYzLDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NS RUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAor CQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIg PT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTEgQVMgaW50ZWdlcjsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJ CSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVf ZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2No ZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAor CiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJ CWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKQEAgLTQ3MDAs NiArNDc0NSwyNSBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4ge30sCiAJfSwKIAorCSdHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVf b3JkZXIgPT4gNzMsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQly ZWdleHAgPT4gcXIvXgorCQkJXFFHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZh cmlhYmxlMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4g eworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9u X3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVz dF9zY2hlbWEgPT4gMSwKKwkJCW5vX3ByaXZzICAgICAgICAgICAgICAgICA9PiAxLAorCQkJb25s eV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdSRUZSRVNIIE1BVEVS SUFMSVpFRCBWSUVXIG1hdHZpZXcnID0+IHsKIAkJcmVnZXhwID0+IHFyL15cUVJFRlJFU0ggTUFU RVJJQUxJWkVEIFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXc7XEUvbSwKIAkJbGlrZSA9PgpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBlYzQ5OWJjZjI4Ny4uYmRjZGJkM2Y1N2YgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0zMTg3LDYgKzMxODcsNyBAQCBWYXJTdHJpbmcKIFZhclN0 cmluZ1NvcnRTdXBwb3J0CiBWYXJpYWJsZQogVmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJsZUlu Zm8KIFZhcmlhYmxlU2V0S2luZAogVmFyaWFibGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10Ci0t IAoyLjQ5LjAKCg== --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0003-GRANT-REVOKE-variable.patch" Content-Disposition: attachment; filename="v20250603-2-0003-GRANT-REVOKE-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9eeh12 RnJvbSAxNzNkYmIyZWU0NTNjMDEwYTUyYzBiNWU2OGRkMmM1Nzg0YzA2OWE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDE4OjU4OjUxICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMy8xNV0gR1JBTlQsIFJFVk9LRSB2YXJpYWJsZQoKQWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBjb250cm9sbGVkIGJ5IFNFTEVDVCBvciBVUERBVEUgcmlnaHRzLiBCb3Ro IHJpZ2h0cyBhcmUKaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoIHRvby4gRGVmYXVsdCBBQ0wgYXJl IHN1cHBvcnRlZC4KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAg ICAgICAgfCAgIDMgKy0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAxOSArLQogZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDI0ICstCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwg ICAgfCAgMjkgKy0KIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbCAgICAgICAgICAgICAgICAg IHwgICA4ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8 ICA3NCArKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAgICAg IHwgIDIyICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAg fCAgMTEgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICAyMSArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jICAgICAgICAgICAgICAgICAgIHwg MjIxICsrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaCAg ICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAg ICAgICAgfCAgMjAgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wuaCAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2FjbC5vdXQgICAgICAg IHwgMzA3ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZSAgICAgICAgICAgIHwgICAyICstCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXNfYWNsLnNxbCAgICAgfCAxNTggKysrKysrKysrCiAxOCBmaWxlcyBjaGFuZ2VkLCA5MTYgaW5z ZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wub3V0CiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfYWNsLnNxbAoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwKaW5kZXggNmFkYTU5Yzc5OGEuLjIzZGE0NDRmMThmIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtMzM2Niw3ICszMzY2LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJh dGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8bGl0 ZXJhbD5mPC9saXRlcmFsPiA9IGZ1bmN0aW9uLAogICAgICAgIDxsaXRlcmFsPlQ8L2xpdGVyYWw+ ID0gdHlwZSwKICAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IHNjaGVtYSwKLSAgICAgICA8 bGl0ZXJhbD5MPC9saXRlcmFsPiA9IGxhcmdlIG9iamVjdAorICAgICAgIDxsaXRlcmFsPkw8L2xp dGVyYWw+ID0gbGFyZ2Ugb2JqZWN0LAorICAgICAgIDxsaXRlcmFsPlY8L2xpdGVyYWw+ID0gc2Vz c2lvbiB2YXJpYWJsZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5k ZXggZGZiZjdkYmFiNGQuLjY2ZmEyNjdmYWNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC0yMDE1LDYgKzIwMTUsNyBAQCBS RVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgIEZvciBzZXF1ZW5jZXMs IHRoaXMgcHJpdmlsZWdlIGFsc28gYWxsb3dzIHVzZSBvZiB0aGUKICAgICAgICA8ZnVuY3Rpb24+ Y3VycnZhbDwvZnVuY3Rpb24+IGZ1bmN0aW9uLgogICAgICAgIEZvciBsYXJnZSBvYmplY3RzLCB0 aGlzIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBiZSByZWFkLgorICAgICAgIEZvciBz ZXNzaW9uIHZhcmlhYmxlcywgdGhpcyAgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJl IHJlYWQuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50 cnk+CkBAIC0yMDUwLDYgKzIwNTEsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVC TElDOwogICAgICAgIDxmdW5jdGlvbj5zZXR2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbnMuCiAgICAg ICAgRm9yIGxhcmdlIG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB3cml0aW5nIG9yIHRy dW5jYXRpbmcgdGhlCiAgICAgICAgb2JqZWN0LgorICAgICAgIEZvciBzZXNzaW9uIHZhcmlhYmxl cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHRvIHNldCBhIHZhbHVlIHRvIHRoZQorICAgICAgIG9i amVjdC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRy eT4KQEAgLTIyOTMsNyArMjI5Niw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJM SUM7CiAgICAgICAgPGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0 ZXJhbD5TRVFVRU5DRTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+ IChhbmQgdGFibGUtbGlrZSBvYmplY3RzKSwKLSAgICAgICB0YWJsZSBjb2x1bW4KKyAgICAgICB0 YWJsZSBjb2x1bW4sCisgICAgICAgPGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0ZXJhbD4K ICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8cm93PgpAQCAtMjMwOCw3ICsyMzEy LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJh bD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRl cmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4sCi0gICAgICAgdGFibGUgY29s dW1uCisgICAgICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFC TEU8L2xpdGVyYWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAg LTI0OTUsNiArMjUwMCwxMiBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwog ICAgICAgPGVudHJ5PjxsaXRlcmFsPlU8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRyeT48 bGl0ZXJhbD5cZFQrPC9saXRlcmFsPjwvZW50cnk+CiAgICAgIDwvcm93PgorICAgICA8cm93Pgor ICAgICAgPGVudHJ5PjxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+PC9lbnRyeT4K KyAgICAgIDxlbnRyeT48bGl0ZXJhbD5ydzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5c ZFYrPC9saXRlcmFsPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rn cm91cD4KICAgPC90YWJsZT4KQEAgLTUzNjQsNiArNTM3NSwxMCBAQCBFWFBMQUlOIFNFTEVDVCBj b3VudCgqKSBGUk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0w MS0wMSc7CiAKICAgIDxwYXJhPgogICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSBkYXRhYmFzZSBv YmplY3RzIHRoYXQgY2FuIGhvbGQgYSB2YWx1ZS4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlr ZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzCisgICAg aXMgY29udHJvbGxlZCB2aWEgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5S RVZPS0U8L2NvbW1hbmQ+CisgICAgY29tbWFuZHMuICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIGJl IGNyZWF0ZWQgYnkgdGhlIDxjb21tYW5kPkNSRUFURQorICAgIFZBUklBQkxFPC9jb21tYW5kPiBj b21tYW5kLgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IGM2NzY4OGNiZjVmLi4z ZThkNGJlYTE0OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTYwMiw2ICsyNTYwMiwyNSBAQCBTRUxFQ1QgaGFzX2Z1 bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1bmMoaW50LCB0ZXh0KScsICdleGVjdXRl Jyk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJvdz4K KyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19z aWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1hcnk+aGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4K KyAgICAgICAgPGZ1bmN0aW9uPmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZTwvZnVuY3Rp b24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNlcjwvcGFyYW1ldGVyPiA8 dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29wdGlvbmFsPgorICAgICAg ICAgIDxwYXJhbWV0ZXI+c2Vzc2lvbl92YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90 eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LAorICAgICAgICAgIDxwYXJhbWV0ZXI+cHJpdmlsZWdl PC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZhbHVlPmJv b2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAg ICAgRG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBzZXNzaW9uIHZhcmlhYmxlPworICAgICAg ICBBbGxvd2FibGUgcHJpdmlsZWdlIHR5cGVzIGFyZQorICAgICAgICA8bGl0ZXJhbD5TRUxFQ1Q8 L2xpdGVyYWw+LCBhbmQKKyAgICAgICAgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFsPi4KKyAgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93PgogICAgICAgIDxl bnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+ CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTg0MSw4ICsyNTg2MCw4IEBAIFNFTEVDVCBoYXNf ZnVuY3Rpb25fcHJpdmlsZWdlKCdqb2V1c2VyJywgJ215ZnVuYyhpbnQsIHRleHQpJywgJ2V4ZWN1 dGUnKTsKICAgICAgICAgJ3QnIGZvciA8bGl0ZXJhbD5UQUJMRVNQQUNFPC9saXRlcmFsPiwKICAg ICAgICAgJ0YnIGZvciA8bGl0ZXJhbD5GT1JFSUdOIERBVEEgV1JBUFBFUjwvbGl0ZXJhbD4sCiAg ICAgICAgICdTJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBTRVJWRVI8L2xpdGVyYWw+LAotICAgICAg ICBvcgotICAgICAgICAnVCcgZm9yIDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFs PkRPTUFJTjwvbGl0ZXJhbD4uCisgICAgICAgICdUJyBmb3IgPGxpdGVyYWw+VFlQRTwvbGl0ZXJh bD4gb3IgPGxpdGVyYWw+RE9NQUlOPC9saXRlcmFsPiBvcgorICAgICAgICAnVicgZm9yIDxsaXRl cmFsPlNFU1NJT04gVkFSSUFCTEU8L2xpdGVyYWw+LgogICAgICAgIDwvcGFyYT48L2VudHJ5Pgog ICAgICAgPC9yb3c+CiAKQEAgLTI2MTEwLDYgKzI2MTI5LDcgQEAgU0VMRUNUIHJlbG5hbWUgRlJP TSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxlKG9pZCk7CiAgICAgICAgIElzIHR5 cGUgKG9yIGRvbWFpbikgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KICAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgIDwvcm93PgorCiAgICAgIDwvdGJvZHk+CiAgICAgPC90Z3JvdXA+CiAgICA8 L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZp bGVnZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNn bWwKaW5kZXggNmFjZDBmMWRmOTEuLmJjNzM4MTcwNjFmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKQEAgLTU2LDYgKzU2LDExIEBAIEdSQU5U IHsgeyBTRUxFQ1QgfCBVUERBVEUgfQogICAgIE9OIExBUkdFIE9CSkVDVFMKICAgICBUTyB7IFsg R1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNl YWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQogCitHUkFOVCB7 IHsgU0VMRUNUIHwgVVBEQVRFIH0KKyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0K KyAgICBPTiBWQVJJQUJMRVMKKyAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsg V0lUSCBHUkFOVCBPUFRJT04gXQorCiBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICB7 IHsgU0VMRUNUIHwgSU5TRVJUIHwgVVBEQVRFIHwgREVMRVRFIHwgVFJVTkNBVEUgfCBSRUZFUkVO Q0VTIHwgVFJJR0dFUiB8IE1BSU5UQUlOIH0KICAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdF UyBdIH0KQEAgLTk1LDYgKzEwMCwxNCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAg ICBPTiBMQVJHRSBPQkpFQ1RTCiAgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5d CiAgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9S IF0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRFIH0KKyAgICBbLCAuLi5dIHwgQUxMIFsgUFJJVklM RUdFUyBdIH0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJ TEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAgRlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMg fSBbLCAuLi5dCisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQogPC9zeW5vcHNpcz4KICA8L3Jl ZnN5bm9wc2lzZGl2PgogCkBAIC0xMjksMTQgKzE0MiwxNCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJ T04gRk9SIF0KICAgPHBhcmE+CiAgICBDdXJyZW50bHksCiAgICBvbmx5IHRoZSBwcml2aWxlZ2Vz IGZvciBzY2hlbWFzLCB0YWJsZXMgKGluY2x1ZGluZyB2aWV3cyBhbmQgZm9yZWlnbgotICAgdGFi bGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHR5cGVzIChpbmNsdWRpbmcgZG9tYWlucyksIGFu ZCBsYXJnZSBvYmplY3RzCi0gICBjYW4gYmUgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1 bmN0aW9ucyBpbmNsdWRlIGFnZ3JlZ2F0ZXMgYW5kIHByb2NlZHVyZXMuCi0gICBUaGUgd29yZHMg PGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVy YWw+IGFyZQotICAgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuICAoPGxpdGVyYWw+Uk9VVElO RVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZAotICAgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRh cmQgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2VuCi0gICB0b2dldGhlci4g IEluIGVhcmxpZXIgUG9zdGdyZVNRTCByZWxlYXNlcywgb25seSB0aGUKLSAgIHdvcmQgPGxpdGVy YWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBwb3NzaWJsZSB0 byBzZXQKLSAgIGRlZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVz IHNlcGFyYXRlbHkuKQorICAgdGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHR5cGVzIChp bmNsdWRpbmcgZG9tYWlucyksIGxhcmdlIG9iamVjdHMKKyAgIGFuZCBzZXNzaW9uIHZhcmlhYmxl cyBjYW4gYmUgYWx0ZXJlZC4gIEZvciB0aGlzIGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlCisg ICBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLiAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9O UzwvbGl0ZXJhbD4gYW5kCisgICA8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlIGVxdWl2 YWxlbnQgaW4gdGhpcyBjb21tYW5kLgorICAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBp cyBwcmVmZXJyZWQgZ29pbmcgZm9yd2FyZCBhcyB0aGUgc3RhbmRhcmQgdGVybQorICAgZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbiB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdy ZVNRTCByZWxlYXNlcywKKyAgIG9ubHkgdGhlIHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRl cmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBwb3NzaWJsZQorICAgdG8gc2V0IGRlZmF1bHQg cHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQogICA8 L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXggOTk5ZjY1N2Q1YzAuLmMxMTg2 MGZhMjAwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCkBAIC0xMDEsNiArMTAxLDEyIEBAIEdSQU5UIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5d IFRPIDxyZXBsYWNlCiAgICAgWyBXSVRIIHsgQURNSU4gfCBJTkhFUklUIHwgU0VUIH0geyBPUFRJ T04gfCBUUlVFIHwgRkFMU0UgfSBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAKK0dSQU5U IHsgU0VMRUNUIHwgVVBEQVRFIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBPTiB7IFZBUklB QkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXQorICAg ICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgVE8gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IFss IC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisK IDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lm aWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KQEAg LTExOSw4ICsxMjUsOCBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9s ZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgdGhhdCBncmFudHMg cHJpdmlsZWdlcyBvbiBhIGRhdGFiYXNlIG9iamVjdCAodGFibGUsIGNvbHVtbiwgdmlldywKICAg IGZvcmVpZ24gdGFibGUsIHNlcXVlbmNlLCBkYXRhYmFzZSwgZm9yZWlnbi1kYXRhIHdyYXBwZXIs IGZvcmVpZ24gc2VydmVyLAogICAgZnVuY3Rpb24sIHByb2NlZHVyZSwgcHJvY2VkdXJhbCBsYW5n dWFnZSwgbGFyZ2Ugb2JqZWN0LCBjb25maWd1cmF0aW9uCi0gICBwYXJhbWV0ZXIsIHNjaGVtYSwg dGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdCBncmFudHMKLSAgIG1lbWJlcnNoaXAg aW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQK KyAgIHBhcmFtZXRlciwgc2NoZW1hLCBzZXNzaW9uIHZhcmlhYmxlLCB0YWJsZXNwYWNlLCBvciB0 eXBlKSwgYW5kIG9uZSB0aGF0CisgICBncmFudHMgbWVtYmVyc2hpcCBpbiBhIHJvbGUuICBUaGVz ZSB2YXJpYW50cyBhcmUgc2ltaWxhciBpbiBtYW55IHdheXMsIGJ1dAogICAgdGhleSBhcmUgZGlm ZmVyZW50IGVub3VnaCB0byBiZSBkZXNjcmliZWQgc2VwYXJhdGVseS4KICAgPC9wYXJhPgogCkBA IC0yMzYsOSArMjQyLDkgQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJv bGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgPHBhcmE+CiAgICBU aGVyZSBpcyBhbHNvIGFuIG9wdGlvbiB0byBncmFudCBwcml2aWxlZ2VzIG9uIGFsbCBvYmplY3Rz IG9mIHRoZSBzYW1lCiAgICB0eXBlIHdpdGhpbiBvbmUgb3IgbW9yZSBzY2hlbWFzLiAgVGhpcyBm dW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQKLSAgIG9ubHkgZm9yIHRhYmxlcywg c2VxdWVuY2VzLCBmdW5jdGlvbnMsIGFuZCBwcm9jZWR1cmVzLiAgPGxpdGVyYWw+QUxMCi0gICBU QUJMRVM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWlnbiB0YWJsZXMsIGp1 c3QgbGlrZSB0aGUKLSAgIHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4g Y29tbWFuZC4gIDxsaXRlcmFsPkFMTAorICAgb25seSBmb3IgdGFibGVzLCBzZXF1ZW5jZXMsIGZ1 bmN0aW9ucywgcHJvY2VkdXJlcyBhbmQgdmFyaWFibGVzLgorICAgPGxpdGVyYWw+QUxMIFRBQkxF UzwvbGl0ZXJhbD4gYWxzbyBhZmZlY3RzIHZpZXdzIGFuZCBmb3JlaWduIHRhYmxlcywganVzdAor ICAgbGlrZSB0aGUgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBjb21t YW5kLiAgPGxpdGVyYWw+QUxMCiAgICBGVU5DVElPTlM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyBh Z2dyZWdhdGUgYW5kIHdpbmRvdyBmdW5jdGlvbnMsIGJ1dCBub3QKICAgIHByb2NlZHVyZXMsIGFn YWluIGp1c3QgbGlrZSB0aGUgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5kPkdSQU5UPC9jb21tYW5k PgogICAgY29tbWFuZC4gIFVzZSA8bGl0ZXJhbD5BTEwgUk9VVElORVM8L2xpdGVyYWw+IHRvIGlu Y2x1ZGUgcHJvY2VkdXJlcy4KQEAgLTUxOCw4ICs1MjQsOCBAQCBHUkFOVCBhZG1pbnMgVE8gam9l OwogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNlcywg dGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgYW5kCi0gICAgY29uZmlndXJhdGlvbiBw YXJhbWV0ZXJzIGFyZQorICAgIFByaXZpbGVnZXMgb24gZGF0YWJhc2VzLCB0YWJsZXNwYWNlcywg c2NoZW1hcywgbGFuZ3VhZ2VzLCBzZXNzaW9uIHZhcmlhYmxlcworICAgIGFuZCBjb25maWd1cmF0 aW9uIHBhcmFtZXRlcnMgYXJlCiAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3Ru YW1lPiBleHRlbnNpb25zLgogICAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dt bAppbmRleCA4ZGY0OTIyODFhMS4uNzYwZmRkYjdjMjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcmV2b2tlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbApAQCAt MTMwLDYgKzEzMCwxNCBAQCBSRVZPS0UgWyB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IE9QVElP TiBGT1IgXQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RS SUNUIF0KIAorUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQ REFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIHsgVkFSSUFCTEUg PHJlcGxhY2VhYmxlPnZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAg fCBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0KKyAgICBGUk9NIHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IHwg UFVCTElDIH0gWywgLi4uXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgQ0FTQ0FE RSB8IFJFU1RSSUNUIF0KKwogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhyYXNlPgog CiAgICAgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8 L3JlcGxhY2VhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggNzA3NWM4NjM3OGEuLmUzMzNhZDIy ZTI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rl ZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTI5MSw2ICsy OTIsOSBAQCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBh dmFpbF9nb3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9B Q0w6CiAJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJy ZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJ R0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVu cmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVk LCBidXQga2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAtNTM1LDYgKzUzOSwxMCBAQCBFeGVjdXRl R3JhbnRTdG10KEdyYW50U3RtdCAqc3RtdCkKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9S SUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlk IHByaXZpbGVnZSB0eXBlICVzIGZvciBwYXJhbWV0ZXIiKTsKIAkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFC TEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAl cyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQp IHN0bXQtPm9ianR5cGUpOwpAQCAtNjQwLDYgKzY0OCw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJ bnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4 ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgVmFyaWFibGVSZWxhdGlvbklkLCBBQ0xf QUxMX1JJR0hUU19WQVJJQUJMRSwgTlVMTCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVs b2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtNzYwLDYgKzc3MSwxOCBAQCBvYmplY3ROYW1lc1RvT2lk cyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iam5hbWVzLCBib29sIGlzX2dyYW50KQogCQkJ CQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcGFyYW1ldGVySWQpOwogCQkJfQogCQkJ YnJlYWs7CisKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlmb3JlYWNoX25vZGUoUmFuZ2VW YXIsIHZhcnZhciwgb2JqbmFtZXMpCisJCQl7CisJCQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVs T2lkID0gTG9va3VwVmFyaWFibGUodmFydmFyLT5zY2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZh ci0+cmVsbmFtZSwKKwkJCQkJCQkJCQlmYWxzZSk7CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lk KG9iamVjdHMsIHJlbE9pZCk7CisJCQl9CisJCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gb2JqZWN0 czsKQEAgLTg0Niw2ICs4NjksMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUg b2JqdHlwZSwgTGlzdCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hh cmVMb2NrKTsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CQl7CisJCQkJCVNjYW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJs ZVNjYW5EZXNjIHNjYW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5p dCgma2V5LAorCQkJCQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJ QlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVt KG5hbWVzcGFjZUlkKSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9u SWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxv ZyhyZWwsIDEsICZrZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2Nh biwgRm9yd2FyZFNjYW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlv aWQgPSAoKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2Jq ZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9l bmRzY2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJ CQkJfQorCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAq LwogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwK QEAgLTEwMDksNiArMTA1OCwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3By aXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19MQVJHRU9CSkVDVDsKIAkJCWVycm9ybXNnID0gZ2V0 dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBsYXJnZSBvYmplY3QiKTsK IAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0g QUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52 YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7 CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0 eXBlOiAlZCIsCiAJCQkJIChpbnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMjA5LDYgKzEyNjIs MTEgQEAgU2V0RGVmYXVsdEFDTChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJaWYgKGlh Y2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19SSUdIVFMpCiAJCQkJ dGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfTEFSR0VPQkpFQ1Q7CiAJCQlicmVhazsK KwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlvYmp0eXBlID0gREVGQUNMT0JKX1ZBUklBQkxF OworCQkJaWYgKGlhY2xzLT5hbGxfcHJpdnMgJiYgdGhpc19wcml2aWxlZ2VzID09IEFDTF9OT19S SUdIVFMpCisJCQkJdGhpc19wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJ CQlicmVhazsKIAogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmpl Y3QgdHlwZTogJWQiLApAQCAtMTQ1Niw2ICsxNTE0LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RB Q0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgREVGQUNMT0JK X0xBUkdFT0JKRUNUOgogCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfTEFSR0VPQkpFQ1Q7CiAJ CQkJYnJlYWs7CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBl ID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91 bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFD TCB0eXBlOiAlZCIsCkBAIC0xNTE2LDYgKzE1NzcsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFD TChPaWQgcm9sZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJB Y2xSZWxhdGlvbklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsK IAkJCQlicmVhazsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5 cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2co RVJST1IsICJ1bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFr OwpAQCAtMjc0OSw2ICsyODEzLDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwg T2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0g Z2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJl YWs7CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29w KCJwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJl YWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBl cm1pc3Npb24gZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI3NzEsNyAr MjgzOCw2IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2Jq dHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCQkJCWNhc2UgT0JKRUNUX1RTVEVN UExBVEU6CiAJCQkJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKLQkJCQkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CiAJCQkJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGU6ICVk Iiwgb2JqdHlwZSk7CiAJCQkJfQogCkBAIC0zMDEyLDYgKzMwNzgsOCBAQCBwZ19hY2xtYXNrKE9i amVjdFR5cGUgb2JqdHlwZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQg cm9sZWlkLAogCQkJcmV0dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJ CQlyZXR1cm4gb2JqZWN0X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVp ZCwgbWFzaywgaG93KTsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0 X2FjbG1hc2soVmFyaWFibGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhv dyk7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBl OiAlZCIsCiAJCQkJIChpbnQpIG9ianR5cGUpOwpAQCAtNDI3NSw2ICs0MzQzLDEwIEBAIGdldF91 c2VyX2RlZmF1bHRfYWNsKE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bf b2lkKQogCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9MQVJHRU9CSkVDVDsKIAkJCWJyZWFr OwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9C Sl9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IDk0MTNiNzYxOWM1Li40NDQ4OTJh ZDZiYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAgLTIwMzAsMTcgKzIwMzAs MjEgQEAgZ2V0X29iamVjdF9hZGRyZXNzX2RlZmFjbChMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2lu Z19vaykKIAkJY2FzZSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1Q6CiAJCQlvYmp0eXBlX3N0ciA9ICJs YXJnZSBvYmplY3RzIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJ CW9ianR5cGVfc3RyID0gInZhcmlhYmxlcyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVy ZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFM VUUpLAogCQkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgZGVmYXVsdCBBQ0wgb2JqZWN0IHR5cGUg XCIlY1wiIiwgb2JqdHlwZSksCi0JCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJl IFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwKKwkJCQkJ IGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwg XCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCiAJCQkJCQkJIERFRkFDTE9CSl9SRUxB VElPTiwKIAkJCQkJCQkgREVGQUNMT0JKX1NFUVVFTkNFLAogCQkJCQkJCSBERUZBQ0xPQkpfRlVO Q1RJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9UWVBFLAogCQkJCQkJCSBERUZBQ0xPQkpfTkFNRVNQ QUNFLAotCQkJCQkJCSBERUZBQ0xPQkpfTEFSR0VPQkpFQ1QpKSk7CisJCQkJCQkJIERFRkFDTE9C Sl9MQVJHRU9CSkVDVCwKKwkJCQkJCQkgREVGQUNMT0JKX1ZBUklBQkxFKSkpOwogCX0KIAogCS8q CkBAIC0zOTIyLDYgKzM5MjYsMTYgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJCQkJIF8oImRlZmF1bHQg cHJpdmlsZWdlcyBvbiBuZXcgbGFyZ2Ugb2JqZWN0cyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAog CQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpf VkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFtZSkKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZi dWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24g dmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIGluIHNjaGVtYSAlcyIpLAorCQkJCQkJCQkJ CQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJCQkJZWxzZQorCQkJCQkJCWFwcGVuZFN0cmluZ0lu Zm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vz c2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVu YW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJLyogc2hvdWxkbid0IGdl dCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFtZSkKQEAgLTU4NTIsNiArNTg2NiwxMCBAQCBnZXRP YmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKIAkJCQkJCQkJCQkJICAgIiBvbiBsYXJnZSBv YmplY3RzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJ CQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJCQkJCQkJCQkJCSAgICIgb24g c2Vzc2lvbiB2YXJpYWJsZXMiKTsKKwkJCQkJCWJyZWFrOwogCQkJCX0KIAogCQkJCWlmIChvYmpu YW1lKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IGJkNmEyOWE3OWU1Li5kOGVkZTRm YThjOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMzgsNiArMzgsNyBAQCBjcmVh dGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAog CQkJCWJvb2wgaWZfbm90X2V4aXN0cykKIHsKKwlBY2wJCSAgICp2YXJhY2w7CiAJTmFtZURhdGEJ dmFybmFtZTsKIAlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CiAJRGF0dW0JCXZhbHVl c1tOYXR0c19wZ192YXJpYWJsZV07CkBAIC05Nyw3ICs5OCwxMiBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAK LQludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKwl2YXJhY2wgPSBn ZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAorCQkJCQkJCQkg IHZhck5hbWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxMKQorCQl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1bSh2YXJhY2wpOworCWVsc2UKKwkJ bnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7CiAKIAl0dXBkZXNjID0g UmVsYXRpb25HZXREZXNjcihyZWwpOwogCkBAIC0xMzEsNiArMTM3LDkgQEAgY3JlYXRlX3Zhcmlh YmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLwogCXJl Y29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVy KTsKIAorCS8qIGRlcGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9uZWQgaW4gZGVmYXVsdCBBQ0wg Ki8KKwlyZWNvcmREZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg MCwgdmFyT3duZXIsIHZhcmFjbCk7CisKIAkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLwog CXJlY29yZERlcGVuZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCA2NGRiNGI1ZTg4Yi4uNjFhNWY3NjJkODUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt Nzg1LDcgKzc4NSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVU5MSVNURU4gVU5MT0dH RUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAogCVZBQ1VVTSBWQUxJRCBWQUxJREFURSBWQUxJ REFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJJQUJMRQotCVZBUllJTkcg VkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCisJVkFSSUFCTEVT IFZBUllJTkcgVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxFCiAK IAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBXT1JL IFdSQVBQRVIgV1JJVEUKIApAQCAtNzk2Niw2ICs3OTY2LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6 CiAJCQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgVkFSSUFCTEUg cXVhbGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFy Z2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFD TF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJ CQluLT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8IEFMTCBUQUJMRVMgSU5f UCBTQ0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJn ZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC04MDExLDYgKzgwMTksMTQgQEAg cHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1OwogCQkJCQkkJCA9IG47CiAJCQkJ fQorCQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAorCQkJCXsKKwkJCQkJ UHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkp OworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lOX1NDSEVNQTsKKwkJCQkJbi0+ b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQ1OworCQkJCQkkJCA9 IG47CisJCQkJfQogCQk7CiAKIApAQCAtODIwOSw2ICs4MjI1LDcgQEAgZGVmYWNsX3ByaXZpbGVn ZV90YXJnZXQ6CiAJCQl8IFRZUEVTX1AJCXsgJCQgPSBPQkpFQ1RfVFlQRTsgfQogCQkJfCBTQ0hF TUFTCQl7ICQkID0gT0JKRUNUX1NDSEVNQTsgfQogCQkJfCBMQVJHRV9QIE9CSkVDVFNfUAl7ICQk ID0gT0JKRUNUX0xBUkdFT0JKRUNUOyB9CisJCQl8IFZBUklBQkxFUwkJeyAkJCA9IE9CSkVDVF9W QVJJQUJMRTsgfQogCQk7CiAKIApAQCAtMTgxMDEsNiArMTgxMTgsNyBAQCB1bnJlc2VydmVkX2tl eXdvcmQ6CiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCiAJCQl8IFZBUklBQkxFCisJCQl8 IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBWSUVXCkBAIC0x ODc1OCw2ICsxODc3Niw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFMVUVTCiAJCQl8 IFZBUkNIQVIKIAkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUklBRElDCiAJ CQl8IFZFUkJPU0UKIAkJCXwgVkVSU0lPTl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYWNsLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5kZXggY2EzYzVlZTNk ZjMuLjA3ODc0ZDRiYTM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wcm9jbGFuZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAg LTEyOSw2ICsxMzAsOCBAQCBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3R5cGVfcHJpdl9zdHJpbmco dGV4dCAqcHJpdl90eXBlX3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVydF9wYXJhbWV0ZXJf cHJpdl9zdHJpbmcodGV4dCAqcHJpdl90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfbGFy Z2VvYmplY3RfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOwogc3RhdGljIEFjbE1v ZGUgY29udmVydF9yb2xlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKK3N0YXRp YyBPaWQJY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSk7CitzdGF0 aWMgQWNsTW9kZSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJp dl90eXBlX3RleHQpOwogc3RhdGljIEFjbFJlc3VsdCBwZ19yb2xlX2FjbGNoZWNrKE9pZCByb2xl X29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKTsKIAogc3RhdGljIHZvaWQgUm9sZU1lbWJl cnNoaXBDYWNoZUNhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFs dWUpOwpAQCAtODUxLDYgKzg1NCwxMCBAQCBhY2xkZWZhdWx0KE9iamVjdFR5cGUgb2JqdHlwZSwg T2lkIG93bmVySWQpCiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKIAkJCW93bmVy X2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNh c2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJ CQlvd25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJ ZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwg KGludCkgb2JqdHlwZSk7CiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsJLyoga2Vl cCBjb21waWxlciBxdWlldCAqLwpAQCAtOTQ4LDYgKzk1NSw5IEBAIGFjbGRlZmF1bHRfc3FsKFBH X0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgJ1QnOgogCQkJb2JqdHlwZSA9IE9CSkVDVF9UWVBFOwog CQkJYnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJb2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3Qg dHlwZSBhYmJyZXZpYXRpb246ICVjIiwgb2JqdHlwZWMpOwogCX0KQEAgLTUwMTYsNiArNTAyNiwy MTcgQEAgcGdfcm9sZV9hY2xjaGVjayhPaWQgcm9sZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUg bW9kZSkKIAlyZXR1cm4gQUNMQ0hFQ0tfTk9fUFJJVjsKIH0KIAorLyoKKyAqIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSB2YXJpYW50cworICoJCVRoZXNlIGFyZSBhbGwgbmFtZWQgImhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSIgYXQgdGhlIFNRTCBsZXZlbC4KKyAqCQlUaGV5 IHRha2UgdmFyaW91cyBjb21iaW5hdGlvbnMgb2YgdmFyaWFibGUgbmFtZSwgdmFyaWFibGUgT0lE LAorICoJCXVzZXIgbmFtZSwgdXNlciBPSUQsIG9yIGltcGxpY2l0IHVzZXIgPSBjdXJyZW50X3Vz ZXIuCisgKgorICoJCVRoZSByZXN1bHQgaXMgYSBib29sZWFuIHZhbHVlOiB0cnVlIGlmIHVzZXIg aGFzIHRoZSBpbmRpY2F0ZWQKKyAqCQlwcml2aWxlZ2UsIGZhbHNlIGlmIG5vdCwgb3IgTlVMTCBp ZiBzZXNzaW9uIHZhcmlhYmxlIGRvZXNuJ3QKKyAqCQlleGlzdHMuCisgKi8KKworLyoKKyAqIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUKKyAqCQlDaGVjayB1c2VyIHBy aXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJbmFtZSB1c2VybmFtZSwg dGV4dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0 dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlOYW1lCQlyb2xlbmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOworCXRleHQJICAg KnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4 dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlPaWQJCQl2YXJpZDsK KwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2lu ZyA9IGZhbHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCpy b2xlbmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmco cHJpdl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFybmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVs YXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlz c2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JF VFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQl0ZXh0IHNlc3Npb24gdmFyaWFibGUgYW5k IHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVt CitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZShQR19GVU5DVElPTl9BUkdTKQor eworCXRleHQJICAgKnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKKwl0ZXh0CSAgICpw cml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlP aWQJCQl2YXJpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9v bAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9 IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisJ dmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCVBHX1JFVFVS Tl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZW5hbWUsIHNlc3Npb24gdmFy aWFibGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXVz ZXJuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lE KDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJ T2lkCQkJcm9sZWlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwli b29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVi bGljKE5hbWVTdHIoKnVzZXJuYW1lKSk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJs ZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1v ZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7 Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQKKyAqCQlDaGVj ayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJc2Vzc2lv biB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMg YXNzdW1lZAorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkKFBH X0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDApOworCXRl eHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9s ZWlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19t aXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVy dF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19t aXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0 ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZV9pZF9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJp YWJsZSBnaXZlbgorICoJCXJvbGVpZCwgdGV4dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0 ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZV9pZF9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJH X09JRCgwKTsKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4 dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQl2YXJp ZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlz c2luZyA9IGZhbHNlOworCisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0 cmluZyhwcml2X3R5cGVfdGV4dCk7CisJdmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJuYW1lKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZp c19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJ UEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmls ZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlyb2xlaWQsIHNlc3Npb24gdmFy aWFibGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xl aWQgPSBQR19HRVRBUkdfT0lEKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgxKTsK Kwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCUFjbE1v ZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFs c2U7CisKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZf dHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19t aXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdf UkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIEdpdmVu IGEgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lIGV4cHJlc3NlZCBhcyBhIHN0cmluZywgbG9vayBpdCB1 cCBhbmQgcmV0dXJuCisgKiBPaWQKKyAqLworc3RhdGljIE9pZAorY29udmVydF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSkKK3sKKwlyZXR1cm4gTG9va3VwVmFyaWFibGVGcm9t TmFtZUxpc3QodGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodmFybmFtZSksIHRydWUpOworfQorCisv KgorICogY29udmVydF92YXJpYWJsZV9wcml2X3N0cmluZworICoJCUNvbnZlcnQgdGV4dCBzdHJp bmcgdG8gQWNsTW9kZSB2YWx1ZS4KKyAqLworc3RhdGljIEFjbE1vZGUKK2NvbnZlcnRfc2Vzc2lv bl92YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCkKK3sKKwlzdGF0aWMg Y29uc3QgcHJpdl9tYXAgc2Vzc2lvbl92YXJpYWJsZV9wcml2X21hcFtdID0geworCQl7IlNFTEVD VCIsIEFDTF9TRUxFQ1R9LAorCQl7IlNFTEVDVCBXSVRIIEdSQU5UIE9QVElPTiIsIEFDTF9HUkFO VF9PUFRJT05fRk9SKEFDTF9TRUxFQ1QpfSwKKwkJeyJVUERBVEUiLCBBQ0xfVVBEQVRFfSwKKwkJ eyJVUERBVEUgV0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfVVBE QVRFKX0sCisJCXtOVUxMLCAwfQorCX07CisKKwlyZXR1cm4gY29udmVydF9hbnlfcHJpdl9zdHJp bmcocHJpdl90eXBlX3RleHQsIHNlc3Npb25fdmFyaWFibGVfcHJpdl9tYXApOworfQogCiAvKgog ICogaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gKGNhbGxlZCBieSBJbml0UG9zdGdyZXMpCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKaW5kZXggY2U2ZTUwOThlYWYuLjA4N2QzNWI5NDNk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCkBAIC02OSw2ICs2OSw3IEBAIE1B S0VfU1lTQ0FDSEUoREVGQUNMUk9MRU5TUE9CSiwgcGdfZGVmYXVsdF9hY2xfcm9sZV9uc3Bfb2Jq X2luZGV4LCA4KTsKICNkZWZpbmUgREVGQUNMT0JKX1RZUEUJCQknVCcgLyogdHlwZSAqLwogI2Rl ZmluZSBERUZBQ0xPQkpfTkFNRVNQQUNFCQknbicgLyogbmFtZXNwYWNlICovCiAjZGVmaW5lIERF RkFDTE9CSl9MQVJHRU9CSkVDVAknTCcgLyogbGFyZ2Ugb2JqZWN0ICovCisjZGVmaW5lIERFRkFD TE9CSl9WQVJJQUJMRQkJJ1YnIC8qIHZhcmlhYmxlICovCiAKICNlbmRpZgkJCQkJCQkvKiBFWFBP U0VfVE9fQ0xJRU5UX0NPREUgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZDNkMjhh MjYzZmEuLjVkYTk5NTk5NDJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTU0NjYsNiAr NTQ2NiwyNiBAQAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29pZCBv aWQgdGV4dCcsCiAgIHByb3NyYyA9PiAnaGFzX2xhcmdlb2JqZWN0X3ByaXZpbGVnZV9pZF9pZCcg fSwKIAoreyBvaWQgPT4gJzk2MTMnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lv biB2YXJpYWJsZSBieSB1c2VybmFtZSwgc2VxIG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUg PT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSB0ZXh0IHRleHQnLAorICBwcm9zcmMg PT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUnIH0sCit7IG9pZCA9 PiAnOTYxNCcsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5 IHVzZXJuYW1lLCBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAg cHJvYXJndHlwZXMgPT4gJ25hbWUgb2lkIHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZV9uYW1lX2lkJyB9LAoreyBvaWQgPT4gJzk2MTUnLCBkZXNjciA9PiAn dXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VyIG9pZCwgc2VxIG5hbWUn LAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xh dGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lk IHRleHQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lk X25hbWUnIH0sCit7IG9pZCA9PiAnOTYxNicsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBz ZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAnaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0 eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCBvaWQgdGV4dCcsIHByb3NyYyA9 PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX2lkJyB9LAoreyBvaWQgPT4gJzk2 MTcnLCBkZXNjciA9PiAnY3VycmVudCB1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxl IGJ5IHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJn dHlwZXMgPT4gJ3RleHQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlX25hbWUnIH0sCit7IG9pZCA9PiAnOTYxOCcsIGRlc2NyID0+ICdjdXJyZW50IHVzZXIg cHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgc2VxIG9pZCcsCisgIHByb25hbWUgPT4g J2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJv cmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgdGV4dCcsIHByb3NyYyA9 PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkJyB9LAorCiB7IG9pZCA9PiAnMzM1 NScsIGRlc2NyID0+ICdJL08nLAogICBwcm9uYW1lID0+ICdwZ19uZGlzdGluY3RfaW4nLCBwcm9y ZXR0eXBlID0+ICdwZ19uZGlzdGluY3QnLAogICBwcm9hcmd0eXBlcyA9PiAnY3N0cmluZycsIHBy b3NyYyA9PiAncGdfbmRpc3RpbmN0X2luJyB9LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDZmNTEzZjA0 MjI1Li4wZWEwMjY1ZGU3YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtNDg3LDYgKzQ4Nyw3IEBAIFBH X0tFWVdPUkQoInZhbHVlIiwgVkFMVUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgidmFsdWVzIiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgidmFyY2hhciIsIFZBUkNIQVIsIENPTF9OQU1FX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ2YXJpYWJsZXMiLCBWQVJJQUJMRVMsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmlhZGljIiwgVkFS SUFESUMsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5aW5n IiwgVkFSWUlORywgVU5SRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInZl cmJvc2UiLCBWRVJCT1NFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wu aAppbmRleCAwMWFlNWI3MTlmZC4uNWUxYThhODJlOTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCkBAIC0xNjksNiArMTY5 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlUeXBlIEFjbDsKICNkZWZpbmUgQUNMX0FMTF9SSUdI VFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRT X1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQko QUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRQkJKEFDTF9TRUxFQ1R8 QUNMX1VQREFURSkKIAogLyogb3BlcmF0aW9uIGNvZGVzIGZvciBwZ18qX2FjbG1hc2sgKi8KIHR5 cGVkZWYgZW51bQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlc19hY2wub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlc19hY2wub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40 NzhiNDc0NzJmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXNfYWNsLm91dApAQCAtMCwwICsxLDMwNyBAQAorLS0gY2hlY2sgYWNj ZXNzIHJpZ2h0cyBhbmQgc3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2Fj bDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JFQVRFIFJPTEUg cmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVz dF9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitHUkFOVCBBTEwgT04gU0NIRU1B IHB1YmxpYyBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0FMVEVSIERFRkFVTFQgUFJJ VklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wKKyAgIElOIFND SEVNQSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gcmVncmVz c192YXJpYWJsZV9yZWFkZXJfYWNsOworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0 IHByaXZpbGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMCBBUyBpbnQ7CitTRVQgUk9MRSBUTyBE RUZBVUxUOworLS0gc2hvdWxkIGJlIG9rLiBzaW5jZSBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMK Ky0tIGFsbG93IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyX2FjbCB0byBoYXZlIFNFTEVDVCBwcml2 aWxlZGdlCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcl9hY2wnLCAnc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwJywgJ1NFTEVDVCcpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3RfYWNs LnNlc3ZhcjIwOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3RfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfcmVhZGVyX2FjbDsKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRIIEdS QU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdyZXNz X3ZhcmlhYmxlX3IxX2FjbDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgVkFSSUFCTEUg c2VzdmFyMjJfYWNsIEFTIGludDsgICAgICAtLXNlc3ZhcjIyX2FjbCB3aWxsIG93bmVkIGJ5IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2VzdmFy MjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsIFdJVEggR1JBTlQgT1BUSU9OOworU0VU IFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsIFdJVEggR1JBTlQgT1BU SU9OOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wn LCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVi bGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitSRVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIEZST00g cmVncmVzc192YXJpYWJsZV9yMV9hY2wgQ0FTQ0FERTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIy Ml9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wn LCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgor KDEgcm93KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0dSQU5U IFNFTEVDVCBPTiBWQVJJQUJMRSBzZXN2YXIyMl9hY2wgVE8gcmVncmVzc192YXJpYWJsZV9yMl9h Y2w7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VM RUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVWT0tFIEFMTCBPTiBWQVJJ QUJMRSBzZXN2YXIyMl9hY2wgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCBHUkFOVEVEIEJZ IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2Fj bCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdw dWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfb3duZXJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFS SUFCTEUgc2VzdmFyMjJfYWNsOworLS0KKy0tIGVuZCBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5U IE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCistLQorLS0gYmVnaW4gb2YgdGVzdDog R1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEKKy0t CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRl c3RfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3Zh cjIwIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjEgQVMgaW50 OworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0X2FjbCBU TyByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3N2YXJ0ZXN0X2FjbC5zZXN2YXIy MCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdz dmFydGVzdF9hY2wuc2VzdmFyMjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygx IHJvdykKKworUkVWT0tFIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVz dF9hY2wgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3N2YXJ0ZXN0X2Fj bC5zZXN2YXIyMCcsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix X2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIGYKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgc3Zh cnRlc3RfYWNsLnNlc3ZhcjIwOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjE7 CitEUk9QIFNDSEVNQSBzdmFydGVzdF9hY2w7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJF Vk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorLS0KKy0t IGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSBoYXZlIHZhcmlvdXMga2lu ZCBvZiBzaWduYXR1cmUuCistLSB0aGUgZm9sbG93aW5nIGFyZSBleHRlbnNpdmUgdGVzdCBmb3Ig aXQuCistLQorU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUg VkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbCBBUyBpbnQ7CitTRVQgc2VhcmNoX3BhdGggVE8g cHVibGljOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHB1YmxpYy5zZXN2YXIyMl9hY2wgVE8g cmVncmVzc192YXJpYWJsZV9yMV9hY2w7CitHUkFOVCBTRUxFQ1QsIFVQREFURSBPTiBWQVJJQUJM RSBwdWJsaWMuc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wn LCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMV9hY2wnLCAncHVibGljLm5vdGV4aXN0cycsICdTRUxFQ1QnKSBJUyBOVUxMOworID9j b2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJpYWJsZV9yMV9hY2w7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc2VzdmFyMjJfYWNsJywgJ1VQREFU RScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3Nlc3ZhcjIyX2Fj bCcsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdz ZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1NF TEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gZgorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdfdmFy aWFibGUKKyAgV0hFUkUgdmFybmFtZSA9ICdzZXN2YXIyMl9hY2wnIEFORCB2YXJuYW1lc3BhY2Ug PSAncHVibGljJzo6cmVnbmFtZXNwYWNlIFxnc2V0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2Vz dmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFf YWNsJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MV9hY2wnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IyX2FjbCcsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjJfYWNsJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxF Q1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBm CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIy Ml9hY2wnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wn OjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjJfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsIDp2YXJpZCwg J1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9s ZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9h Y2wnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEg cm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyX2FjbCc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKKy0tCistLSBlbmQgb2YgZnVuY3Rpb24gaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIHRlc3RzLgorLS0KK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgc2Vh cmNoX3BhdGggVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbDsK K0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX3IyX2FjbDsKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXJfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNs OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMGY3NWJmYWY1YWUuLjFjNjdmZGZm NTY0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTExNSw3ICsxMTUsNyBAQCB0 ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2RpbmcganNvbnBhdGgganNvbnBhdGhfZW5jb2Rpbmcg anNvbmJfanNvbnBhdGggc3FsanNvbgogIyBOQjogdGVtcC5zcWwgZG9lcyByZWNvbm5lY3RzIHdo aWNoIHRyYW5zaWVudGx5IHVzZSAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxs ZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2Fj aGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29u dmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlw ZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFibGVzX2RkbAor dGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5j cyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1v cnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBzZXNzaW9uX3Zh cmlhYmxlc19kZGwgc2Vzc2lvbl92YXJpYWJsZXNfYWNsCiAKICMgLS0tLS0tLS0tLQogIyBBbm90 aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXNfYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZTFhOWQ1Y2U1ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlc19hY2wuc3FsCkBAIC0wLDAgKzEsMTU4IEBACistLSBjaGVjayBh Y2Nlc3MgcmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Rf YWNsOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CitDUkVBVEUgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2w7CisKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3Zh cnRlc3RfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworR1JBTlQgQUxMIE9OIFND SEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2w7CisKK0FMVEVSIERFRkFV TFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wKKyAg IElOIFNDSEVNQSBzdmFydGVzdF9hY2wKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8g cmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRo IGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9h Y2w7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNsLnNlc3ZhcjIwIEFTIGludDsKK1NFVCBS T0xFIFRPIERFRkFVTFQ7CisKKy0tIHNob3VsZCBiZSBvay4gc2luY2UgQUxURVIgREVGQVVMVCBQ UklWSUxFR0VTCistLSBhbGxvdyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcl9hY2wgdG8gaGF2ZSBT RUxFQ1QgcHJpdmlsZWRnZQorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yZWFkZXJfYWNsJywgJ3N2YXJ0ZXN0X2FjbC5zZXN2YXIyMCcsICdT RUxFQ1QnKTsgLS0gdAorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMDsKK0RS T1AgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRl cl9hY2w7CisKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRIIEdSQU5UIE9QVElPTiBh bmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3Ix X2FjbDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK0NSRUFURSBWQVJJQUJMRSBzZXN2YXIyMl9h Y2wgQVMgaW50OyAgICAgIC0tc2VzdmFyMjJfYWNsIHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJp YWJsZV9vd25lcl9hY2wKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBU TyByZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHNlc3Zh cjIyX2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCBXSVRIIEdSQU5UIE9QVElPTjsKK1NF VCBST0xFIFRPIERFRkFVTFQ7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VM RUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0t IHQKKworUkVWT0tFIEFMTCBQUklWSUxFR0VTIE9OIFZBUklBQkxFIHNlc3ZhcjIyX2FjbCBGUk9N IHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsIENBU0NBREU7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5zZXN2 YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgJ3B1YmxpYy5zZXN2YXIyMl9hY2wn LCAnU0VMRUNUJyk7IC0tIGYKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9h Y2w7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFy aWFibGVfcjJfYWNsOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcp OyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyX2FjbCcsICdwdWJsaWMuc2VzdmFyMjJfYWNsJywgJ1NFTEVDVCcpOyAtLSB0CisK K1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc2VzdmFyMjJfYWNsIEZST00gcmVncmVzc192YXJpYWJs ZV9yMl9hY2wgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wn LCAncHVibGljLnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnLCAncHVibGlj LnNlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9vd25lcl9hY2wnLCAncHVibGljLnNlc3Zh cjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBW QVJJQUJMRSBzZXN2YXIyMl9hY2w7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JB TlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KKworLS0KKy0tIGJlZ2luIG9mIHRl c3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1B CistLQorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdF9hY2w7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2 YXJ0ZXN0X2FjbCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyaWFibGVfb3duZXJfYWNsOworCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3RfYWNs LnNlc3ZhcjIwIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjEg QVMgaW50OworCitHUkFOVCBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRl c3RfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCcsICdzdmFydGVzdF9h Y2wuc2VzdmFyMjAnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3N2YXJ0ZXN0X2FjbC5zZXN2 YXIyMScsICdTRUxFQ1QnKTsgLS0gdAorCitSRVZPS0UgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMg SU4gU0NIRU1BIHN2YXJ0ZXN0X2FjbCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix X2FjbCcsICdzdmFydGVzdF9hY2wuc2VzdmFyMjAnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywg J3N2YXJ0ZXN0X2FjbC5zZXN2YXIyMScsICdTRUxFQ1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyBE RUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdF9hY2wuc2VzdmFyMjA7CitEUk9QIFZBUklB QkxFIHN2YXJ0ZXN0X2FjbC5zZXN2YXIyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0X2FjbDsKKy0t CistLSBlbmQgb2YgdGVzdDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZBUklB QkxFUyBJTiBTQ0hFTUEKKy0tCisKKy0tCistLSBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgaGF2ZSB2YXJpb3VzIGtpbmQgb2Ygc2lnbmF0dXJlLgorLS0gdGhlIGZvbGxv d2luZyBhcmUgZXh0ZW5zaXZlIHRlc3QgZm9yIGl0LgorLS0KK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXJfYWNsOworCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2Fj bCBBUyBpbnQ7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CisKK0dSQU5UIFNFTEVDVCBP TiBWQVJJQUJMRSBwdWJsaWMuc2VzdmFyMjJfYWNsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNs OworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbCBU TyByZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbDsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAncHVibGljLnNlc3ZhcjIyX2Fj bCcsICdTRUxFQ1QnKTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgJ3B1YmxpYy5ub3RleGlzdHMnLCAnU0VMRUNUJykgSVMg TlVMTDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMV9hY2w7CisKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywg J3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wnLCAnc2VzdmFyMjJfYWNsJywg J1VQREFURScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IyX2FjbCcsICdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjJfYWNsJywgJ3Nlc3ZhcjIyX2FjbCcsICdVUERBVEUnKTsgLS0gdAorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdzZXN2YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdV UERBVEUnKTsgLS0gZgorCitTRUxFQ1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdfdmFyaWFibGUK KyAgV0hFUkUgdmFybmFtZSA9ICdzZXN2YXIyMl9hY2wnIEFORCB2YXJuYW1lc3BhY2UgPSAncHVi bGljJzo6cmVnbmFtZXNwYWNlIFxnc2V0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3Nlc3ZhcjIyX2FjbCcsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgnc2VzdmFyMjJfYWNsJywgJ1VQREFURScpOyAtLSBmCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjFfYWNsJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJywgOnZhcmlkLCAnVVBEQVRF Jyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3Nf dmFyaWFibGVfcjJfYWNsJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjJfYWNsJywgOnZhcmlk LCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSg6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxX2FjbCc6OnJlZ3JvbGUsICdzZXN2 YXIyMl9hY2wnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsJzo6cmVncm9sZSwgJ3Nlc3ZhcjIyX2Fj bCcsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCAnc2VzdmFyMjJfYWNsJywgJ1NF TEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IyX2FjbCc6OnJlZ3JvbGUsICdzZXN2YXIyMl9hY2wnLCAnVVBEQVRFJyk7 IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMV9hY2wnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMV9hY2wn OjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCA6dmFy aWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMl9hY2wnOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsg LS0gdAorLS0KKy0tIGVuZCBvZiBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgdGVzdHMuCistLQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRP IERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgcHVibGljLnNlc3ZhcjIyX2FjbDsKKworRFJPUCBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjFfYWNsOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cjJfYWNsOworCitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSByZWdyZXNzX3Zhcmlh YmxlX293bmVyX2FjbDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2FjbDsKLS0g CjIuNDkuMAoK --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Disposition: attachment; filename="v20250603-2-0002-CREATE-DROP-ALTER-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9eep13 RnJvbSBlY2FkNDZjZDJmMTBkZTY4YmY1YTZkNTA1MDQyMzAyZGZlYmZkMDA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDExOjI2OjE3ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMi8xNV0gQ1JFQVRFLCBEUk9QLCBBTFRFUiBWQVJJQUJMRQoKSW1wbGVtZW50YXRpb24g b2YgY29tbWFuZHM6CgogICAgQ1JFQVRFIFZBUklBQkxFIHZhcm5hbWUgQVMgdHlwZQogICAgRFJP UCBWQVJJQUJMRSB2YXJuYW1lCiAgICBBTFRFUiBWQVJJQUJMRSB2YXJuYW1lIE9XTkVSIFRPCiAg ICBBTFRFUiBWQVJJQUJMRSB2YXJuYW1lIFJFTkFNRSBUTwogICAgQUxURVIgVkFSSUFCTEUgdmFy bmFtZSBTRVQgU0NIRU1BCgpBTFRFUiBjb21tYW5kIHVzZXMgYWxyZWFkeSBwcmVwYXJlZCBpbmZy YXN0cnVjdHVyZSBiYXNlZCBvbiBPYmplY3RBZGRyZXNzIEFQSSwKc28gdGhpcyBwYXRjaCBpbXBs ZW1lbnRzIE9iamVjdEFkZHJlc3MgcmVsYXRlZCBmdW5jdGlvbmFsaXR5IHRvby4KCkV2ZW50IHRy aWdnZXJzIGZvciBEREwgb3ZlciBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3VwcG9ydGVkLgotLS0K IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMSArKwog ZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsrCiBk b2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKysKIGRv Yy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgMyArCiBkb2Mv c3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgfCAxNzggKysrKysrKysr KysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAgfCAg IDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwgIDEy ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxNDkg KysrKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgICAgICAg ICAgIHwgMTE3ICsrKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCAgICAgICAg ICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAgICAg ICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAg ICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAg ICAgICB8IDIwNyArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0 YWRkcmVzcy5jICAgICAgICAgICB8ICA5OSArKysrKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cv cGdfc2hkZXBlbmQuYyAgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9N YWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0 ZXIuYyAgICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3Bj bWRzLmMgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90 cmlnZ2VyLmMgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMgICAgICAgfCAgODggKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jICAgICAgICAgICAgICB8ICA0MSArKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21k cy5jICAgICAgICAgICAgICAgfCAgMTUgKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAg ICAgICAgICAgICAgICAgICB8ICA4NiArKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3V0aWxjbWQuYyAgICAgICAgICAgIHwgIDEyICsKIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5j ICAgICAgICAgICAgICAgICAgICB8ICAyMCArKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5 c2NhY2hlLmMgICAgICAgICAgIHwgIDY1ICsrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaCAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCAgICAgICB8ICAyNCArKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oICAgICAgICAgICAgICAgIHwgIDE2ICsrCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oICAg ICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVu Y3kub3V0ICAgICAgfCAgMTcgKysKIC4uLi9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwu b3V0ICAgICAgICB8IDE2MyArKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBl bmRlbmN5LnNxbCAgICAgICAgICAgfCAgMTQgKysKIC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlc19kZGwuc3FsICAgICB8IDE1MCArKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogNDAgZmlsZXMgY2hhbmdlZCwg MTU3MSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBk b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RkbC5zcWwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvZGRsLnNnbWwKaW5kZXggZmNkMWNiODUzNTIuLmRmYmY3ZGJhYjRkIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01MzUx LDYgKzUzNTEsMjcgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBX SEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgPC9wYXJhPgogIDwvc2Vj dDE+CiAKKyAgPHNlY3QxIGlkPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgPHRpdGxlPlNl c3Npb24gVmFyaWFibGVzPC90aXRsZT4KKworICAgPGluZGV4dGVybSB6b25lPSJkZGwtc2Vzc2lv bi12YXJpYWJsZXMiPgorICAgIDxwcmltYXJ5PlNlc3Npb24gdmFyaWFibGVzPC9wcmltYXJ5Pgor ICAgPC9pbmRleHRlcm0+CisKKyAgIDxpbmRleHRlcm0+CisgICAgPHByaW1hcnk+c2Vzc2lvbiB2 YXJpYWJsZTwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBTZXNz aW9uIHZhcmlhYmxlcyBhcmUgZGF0YWJhc2Ugb2JqZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUu CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGhvbGRz IHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBwcml2YXRlCisgICAgdG8g ZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNzaW9uIGVuZHMuCisgICA8 L3BhcmE+CisgIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgogICA8dGl0bGU+ T3RoZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKaW5kZXggYjg4Y2Fj NTk4ZTkuLjgzYjEzZjk4ZjI4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApAQCAtMTcwOCw2ICsxNzA4LDIxIEBA CiAgICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LXNlc3Npb24tdmFyaWFibGUiPgorICAgPGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxl PC9nbG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVu dCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAg VGhpcworICAgICB2YWx1ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFz ZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBz ZXNzaW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWls YXIgdG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+Cisg ICAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24t dmFyaWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRy eT4KKwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xv c3N0ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21s CmluZGV4IGU5Mzc0OTFlNmI4Li4xZTRjNDNiOGI2MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDM2LDYg KzYwMzYsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogPC9wcm9n cmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8L3NlY3QzPgorCisgICA8c2VjdDMgaWQ9InBs cGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxlcyI+CisgICAgPHRpdGxlPjxjb21tYW5kPlBh Y2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwvY29tbWFuZD48L3RpdGxlPgorCisgICAgPHBh cmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwvcGdTUUw8L2FwcGxpY2F0aW9uPiBsYW5ndWFn ZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0aGVyZWZvcmUgbm8gcGFja2FnZSB2YXJpYWJs ZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAgIFlvdSBjYW4gY29uc2lkZXIgdHJhbnNsYXRp bmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgorICAgICA8cHJvZHVjdG5hbWU+ UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVy ZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIGluIHRo YXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2YXJpYWJsZXMgY291bGQgYmUgdHJhbnNsYXRl ZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgKHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgorICAgIDwvcGFyYT4KKyAgIDwvc2Vj dDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJwbHBnc3FsLXBvcnRpbmctYXBwZW5kaXgi PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IGY1YmU2Mzg4NjdhLi4yZjY3ZGUzZTIxYiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtNDcsNiArNDcsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVz YWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGFsdGVy VHlwZSAgICAgICAgICBTWVNURU0gImFsdGVyX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVz ZXIgICAgICAgICAgU1lTVEVNICJhbHRlcl91c2VyLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJVc2Vy TWFwcGluZyAgIFNZU1RFTSAiYWx0ZXJfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgYWx0 ZXJWYXJpYWJsZSAgICAgIFNZU1RFTSAiYWx0ZXJfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBh bHRlclZpZXcgICAgICAgICAgU1lTVEVNICJhbHRlcl92aWV3LnNnbWwiPgogPCFFTlRJVFkgYW5h bHl6ZSAgICAgICAgICAgIFNZU1RFTSAiYW5hbHl6ZS5zZ21sIj4KIDwhRU5USVRZIGJlZ2luICAg ICAgICAgICAgICBTWVNURU0gImJlZ2luLnNnbWwiPgpAQCAtOTksNiArMTAwLDcgQEAgQ29tcGxl dGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8 IUVOVElUWSBjcmVhdGVUeXBlICAgICAgICAgU1lTVEVNICJjcmVhdGVfdHlwZS5zZ21sIj4KIDwh RU5USVRZIGNyZWF0ZVVzZXIgICAgICAgICBTWVNURU0gImNyZWF0ZV91c2VyLnNnbWwiPgogPCFF TlRJVFkgY3JlYXRlVXNlck1hcHBpbmcgIFNZU1RFTSAiY3JlYXRlX3VzZXJfbWFwcGluZy5zZ21s Ij4KKzwhRU5USVRZIGNyZWF0ZVZhcmlhYmxlICAgICBTWVNURU0gImNyZWF0ZV92YXJpYWJsZS5z Z21sIj4KIDwhRU5USVRZIGNyZWF0ZVZpZXcgICAgICAgICBTWVNURU0gImNyZWF0ZV92aWV3LnNn bWwiPgogPCFFTlRJVFkgZGVhbGxvY2F0ZSAgICAgICAgIFNZU1RFTSAiZGVhbGxvY2F0ZS5zZ21s Ij4KIDwhRU5USVRZIGRlY2xhcmUgICAgICAgICAgICBTWVNURU0gImRlY2xhcmUuc2dtbCI+CkBA IC0xNDcsNiArMTQ5LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmls ZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBkcm9wVHlwZSAgICAgICAgICAgU1lTVEVN ICJkcm9wX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wVXNlciAgICAgICAgICAgU1lTVEVNICJk cm9wX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBkcm9wVXNlck1hcHBpbmcgICAgU1lTVEVNICJkcm9w X3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGRyb3BWYXJpYWJsZSAgICAgICBTWVNURU0g ImRyb3BfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wVmlldyAgICAgICAgICAgU1lTVEVN ICJkcm9wX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBlbmQgICAgICAgICAgICAgICAgU1lTVEVNICJl bmQuc2dtbCI+CiA8IUVOVElUWSBleGVjdXRlICAgICAgICAgICAgU1lTVEVNICJleGVjdXRlLnNn bWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi45NmQyNTg2NDIzZQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE3OCBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1hbHRlcnZhcmlhYmxlIj4KKyA8aW5kZXh0 ZXJtIHpvbmU9InNxbC1hbHRlcnZhcmlhYmxlIj4KKyAgPHByaW1hcnk+QUxURVIgVkFSSUFCTEU8 L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNz aW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmFsdGVyaW5nPC9zZWNvbmRhcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgVkFS SUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIFZBUklBQkxFPC9yZWZuYW1l PgorICA8cmVmcHVycG9zZT4KKyAgIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIHNlc3Npb24g dmFyaWFibGUKKyAgPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNp c2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJS RU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFZBUklBQkxF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFND SEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFi bGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+QUxU RVIgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBh bgorICAgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJpYWJsZS4gVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9y bXM6CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxp dGVyYWw+T1dORVI8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFi bGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5n ZXMgdGhlIG5hbWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+U0VUIFNDSEVNQTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBtb3ZlcyB0aGUgc2Vzc2lvbiB2YXJpYWJs ZSBpbnRvIGFub3RoZXIgc2NoZW1hLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBh cmE+CisgICBPbmx5IHRoZSBvd25lciBvciBhIHN1cGVydXNlciBpcyBhbGxvd2VkIHRvIGFsdGVy IGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEluIG9yZGVyIHRvIG1vdmUgYSBzZXNzaW9uIHZhcmlh YmxlIGZyb20gb25lIHNjaGVtYSB0byBhbm90aGVyLCB0aGUgdXNlcgorICAgbXVzdCBhbHNvIGhh dmUgdGhlIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBuZXcgc2No ZW1hIChvcgorICAgYmUgYSBzdXBlcnVzZXIpLgorCisgICBJbiBvcmRlciB0byBtb3ZlIHRoZSBz ZXNzaW9uIHZhcmlhYmxlIG93bmVyc2hpcCBmcm9tIG9uZSByb2xlIHRvIGFub3RoZXIsCisgICB0 aGUgdXNlciBtdXN0IGFsc28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyIG9mIHRoZSBu ZXcKKyAgIG93bmluZyByb2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2ZSB0aGUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2UKKyAgIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlJ3Mg c2NoZW1hIChvciBiZSBhIHN1cGVydXNlcikuIFRoZXNlIHJlc3RyaWN0aW9ucworICAgZW5mb3Jj ZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdSBjb3VsZG4n dCBkbyBieQorICAgZHJvcHBpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIHNlc3Npb24gdmFyaWFibGUu CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBUaGUgbmFtZSAocG9zc2libHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhlIGV4aXN0 aW5nIHNlc3Npb24gdmFyaWFibGUKKyAgICAgICAgdG8gYWx0ZXIuCisgICAgICAgPC9wYXJhPgor ICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3du ZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgVGhlIHVzZXIgbmFtZSBvZiB0aGUgbmV3IG93bmVyIG9mIHRoZSBzZXNzaW9uIHZh cmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlz dGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vz c2lvbiB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4K KyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBzY2hlbWEg Zm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0 ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJh PgorICA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxl PgorCisgIDxwYXJhPgorICAgVG8gcmVuYW1lIGEgc2Vzc2lvbiB2YXJpYWJsZToKKzxwcm9ncmFt bGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGZvbyBSRU5BTUUgVE8gYm9vOworPC9wcm9ncmFtbGlz dGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBvd25lciBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJh bD5qb2U8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIE9X TkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IFRvIGNoYW5nZSB0aGUgc2NoZW1hIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJv bzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPnByaXZhdGU8L2xpdGVyYWw+OgorPHByb2dyYW1s aXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxl cyBhbmQgdGhpcyBjb21tYW5kIGluIHBhcnRpY3VsYXIgYXJlIGEgUG9zdGdyZVNRTCBleHRlbnNp b24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxIGlkPSJzcWwtYWx0ZXJ2 YXJpYWJsZS1zZWUtYWxzbyI+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBs ZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9w dmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3Jl ZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAppbmRleCA1YjQzYzU2YjEzMy4uMjFjZDgwODE4ZmIg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvY29tbWVudC5zZ21sCkBAIC02NSw2ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJB TlNGT1JNIEZPUiA8cmVwbGFjZWFibGU+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0Ug PHJlcGxhY2VhYmxlPmxhbmdfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAg IFRZUEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNl YWJsZT4gfAorICBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0 X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4KIH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+c3RyaW5nX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCmluZGV4IGVkNjkyOThjY2M2Li5kMmJiMjY1MjA5YiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKQEAgLTEwMyw5ICsxMDMsMTAgQEAgQ1JF QVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIEFVVEhPUklaQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfc3AKICAgICAgICAgc2NoZW1hLiBDdXJyZW50bHksIG9ubHkgPGNv bW1hbmQ+Q1JFQVRFCiAgICAgICAgIFRBQkxFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFZJ RVc8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKICAgICAgICAgSU5ERVg8L2NvbW1hbmQ+LCA8 Y29tbWFuZD5DUkVBVEUgU0VRVUVOQ0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKLSAgICAg ICAgVFJJR0dFUjwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhcmUgYWNj ZXB0ZWQgYXMgY2xhdXNlcwotICAgICAgICB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFIFNDSEVNQTwv Y29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5Ci0gICAgICAgIGJlIGNyZWF0ZWQg aW4gc2VwYXJhdGUgY29tbWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVkLgorICAgICAg ICBUUklHR0VSPC9jb21tYW5kPiwgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFu ZD5DUkVBVEUKKyAgICAgICAgVkFSSUFCTEU8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBhcyBjbGF1 c2VzIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgU0NIRU1BPC9jb21tYW5kPi4gT3Ro ZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkgYmUgY3JlYXRlZCBpbiBzZXBhcmF0ZQorICAgICAgICBj b21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCiAgICAgICAgPC9wYXJhPgogICAg ICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0yMTQsNiArMjE1LDExIEBA IENSRUFURSBWSUVXIGhvbGx5d29vZC53aW5uZXJzIEFTCiAgICBUaGUgPGxpdGVyYWw+SUYgTk9U IEVYSVNUUzwvbGl0ZXJhbD4gb3B0aW9uIGlzIGEKICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FM PC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgogICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUg PGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CiAg PC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZTk4OGYyZTQ3Mgot LS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwK QEAgLTAsMCArMSwxNDkgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxl LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1jcmVhdGV2YXJpYWJsZSI+ CisgIDxwcmltYXJ5PkNSRUFURSBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKwor IDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxz ZWNvbmRhcnk+ZGVmaW5pbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRh PgorICA8cmVmZW50cnl0aXRsZT5DUkVBVEUgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxt YW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3Rh dGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxy ZWZuYW1lPkNSRUFURSBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEg c2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lu b3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsg Q09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNl YWJsZT4gXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5D UkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY3JlYXRlcyBhIHNlc3Npb24gdmFyaWFi bGUuCisgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlrZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBh IHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzIGlzCisgICBjb250cm9sbGVkIHZpYSB0aGUgY29tbWFu ZHMgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1hbmQ+ LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCisgICBhIHNl c3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMg c2V0IHRvCisgICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICBUaGUgY29udGVudCBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKKyAg IHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29t bWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdp dGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgPC9wYXJhPgorCisgIDxu b3RlPgorICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIDxxdW90ZT5zaGFk b3dlZDwvcXVvdGU+IGJ5IG90aGVyIGlkZW50aWZpZXJzLgorICAgIEZvciBkZXRhaWxzLCBzZWUg PHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAgPC9wYXJhPgorICA8 L25vdGU+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisKKyAgIDx2YXJsaXN0ZW50cnkgIGlkPSJzcWwt Y3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgTk9U IEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4gQSBu b3RpY2UgaXMgaXNzdWVkIGluCisgICAgICB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNx bC1jcmVhdGV2YXJpYWJsZS1uYW1lIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxl LWRhdGFfdHlwZSI+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgZGF0 YSB0eXBlIG9mIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0i c3FsLWNyZWF0ZXZhcmlhYmxlLWNvbGxhdGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkNPTExBVEUg PHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4KKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPkNPTExBVEU8L2xp dGVyYWw+IGNsYXVzZSBhc3NpZ25zIGEgY29sbGF0aW9uIHRvIHRoZSBzZXNzaW9uCisgICAgICB2 YXJpYWJsZSAod2hpY2ggbXVzdCBiZSBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlKS4gIElmIG5v dCBzcGVjaWZpZWQsCisgICAgICB0aGUgZGF0YSB0eXBlJ3MgZGVmYXVsdCBjb2xsYXRpb24gaXMg dXNlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVXNlIHRoZSA8Y29tbWFuZD5EUk9QIFZB UklBQkxFPC9jb21tYW5kPiBjb21tYW5kIHRvIHJlbW92ZSBhIHNlc3Npb24KKyAgIHZhcmlhYmxl LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1w bGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFi bGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBkYXRlOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgor CisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29t bWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVu c2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBs ZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zhcmlh YmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjViZGIzNTYw ZjBiCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNn bWwKQEAgLTAsMCArMSwxMTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJs ZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1kcm9wdmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+Cisg IDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5k ZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25k YXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAg PHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51 bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRz PC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+ RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2 YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+ Cis8c3lub3BzaXM+CitEUk9QIFZBUklBQkxFIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJF U1RSSUNUIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRS T1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJlbW92ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBz ZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5IGJlIHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3Vw ZXJ1c2VyLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUg c2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3Vl ZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmll ZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vz c2lvbiB2YXJpYWJsZSAoc3VjaCBhcworICAgICAgdmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2Jq ZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBvYmplY3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtl bmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJF U1RSSUNUPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAg ICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVw ZW5kIG9uIGl0LiAgVGhpcyBpcworICAgICAgdGhlIGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUbyByZW1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwv bGl0ZXJhbD46CisKKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJv Z3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9Q IFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3Jl U1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0 eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50 cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggZmY4NWFjZTgzZmMuLjI1NTc4ZjM5NDZjIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAmYWx0ZXJUeXBlOwogICAgJmFsdGVyVXNl cjsKICAgICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFsdGVyVmFyaWFibGU7CiAgICAmYWx0ZXJW aWV3OwogICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBAIC0xMjcsNiArMTI4LDcgQEAKICAgICZj cmVhdGVUeXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CisgICAm Y3JlYXRlVmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAgJmRl Y2xhcmU7CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNlcjsK ICAgICZkcm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3Owog ICAgJmVuZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9h Y2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggOWNhOGE4OGRjOTEu LjcwNzVjODYzNzhhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTI3NzEsNiArMjc3MSw3IEBAIGFj bGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJ Y2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCQkJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCQkJ CWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJ CQkJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGU6ICVkIiwgb2JqdHlwZSk7 CiAJCQkJfQogCkBAIC0yODc4LDYgKzI4NzksOSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQg YWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFS WToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiB0ZXh0IHNlYXJj aCBkaWN0aW9uYXJ5ICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAKIAkJCQkJCS8qCiAJCQkJCQkgKiBTcGVjaWFs IGNhc2VzOiBGb3IgdGhlc2UsIHRoZSBlcnJvciBtZXNzYWdlIHRhbGtzCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCmluZGV4IDE4MzE2YTM5NjhiLi45ZTBmNjQ4Yjc0ZiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9k ZXBlbmRlbmN5LmMKQEAgLTY1LDEyICs2NSwxNCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNf dGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2V4dGVuc2lvbi5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3BvbGljeS5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3NjaGVtYWNt ZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgpAQCAtMTQ0NCw2ICsx NDQ2LDEwIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBpbnQgZmxh Z3MpCiAJCQlSZW1vdmVQdWJsaWNhdGlvbkJ5SWQob2JqZWN0LT5vYmplY3RJZCk7CiAJCQlicmVh azsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCURyb3BWYXJpYWJsZUJ5SWQob2Jq ZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIENhc3RSZWxhdGlvbklkOgogCQlj YXNlIENvbGxhdGlvblJlbGF0aW9uSWQ6CiAJCWNhc2UgQ29udmVyc2lvblJlbGF0aW9uSWQ6CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCBkOTdkNjMyYTdlZi4uZjYwOGMyM2MzZGYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbW9uL2hh c2hmbl91bnN0YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTIyNSw2ICsyMjYsNyBA QCBzdGF0aWMgYm9vbCBUU1BhcnNlcklzVmlzaWJsZUV4dChPaWQgcHJzSWQsIGJvb2wgKmlzX21p c3NpbmcpOwogc3RhdGljIGJvb2wgVFNEaWN0aW9uYXJ5SXNWaXNpYmxlRXh0KE9pZCBkaWN0SWQs IGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNUZW1wbGF0ZUlzVmlzaWJsZUV4dChP aWQgdG1wbElkLCBib29sICppc19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTQ29uZmlnSXNWaXNp YmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZyk7CitzdGF0aWMgYm9vbCBWYXJpYWJs ZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIHZvaWQg cmVjb21wdXRlTmFtZXNwYWNlUGF0aCh2b2lkKTsKIHN0YXRpYyB2b2lkIEFjY2Vzc1RlbXBUYWJs ZU5hbWVzcGFjZShib29sIGZvcmNlKTsKIHN0YXRpYyB2b2lkIEluaXRUZW1wVGFibGVOYW1lc3Bh Y2Uodm9pZCk7CkBAIC05ODYsNiArOTg4LDg0IEBAIFJlbGF0aW9uSXNWaXNpYmxlRXh0KE9pZCBy ZWxpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFZh cmlhYmxlSXNWaXNpYmxlCisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIgYSB2YXJpYWJsZSAoaWRlbnRp ZmllZCBieSBPSUQpIGlzIHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFyY2ggcGF0aC4g VmlzaWJsZSBtZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJZm9yIHRoZSB1 bnF1YWxpZmllZCB2YXJpYWJsZSBuYW1lIi4KKyAqLworYm9vbAorVmFyaWFibGVJc1Zpc2libGUo T2lkIHZhcmlkKQoreworCXJldHVybiBWYXJpYWJsZUlzVmlzaWJsZUV4dCh2YXJpZCwgTlVMTCk7 Cit9CisKKy8qCisgKiBWYXJpYWJsZUlzVmlzaWJsZUV4dAorICoJCUFzIGFib3ZlLCBidXQgaWYg dGhlIHZhcmlhYmxlIGlzbid0IGZvdW5kIGFuZCBpc19taXNzaW5nIGlzIG5vdCBOVUxMLAorICoJ CXRoZW4gc2V0ICppc19taXNzaW5nID0gdHJ1ZSBhbmQgcmV0dXJuIGZhbHNlLCBpbnN0ZWFkIG9m IHRocm93aW5nCisgKgkJYW4gZXJyb3IuIChDYWxsZXIgbXVzdCBpbml0aWFsaXplICppc19taXNz aW5nID0gZmFsc2UuKQorICovCitzdGF0aWMgYm9vbAorVmFyaWFibGVJc1Zpc2libGVFeHQoT2lk IHZhcmlkLCBib29sICppc19taXNzaW5nKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7CisJRm9ybV9w Z192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29sCQl2aXNpYmxl OworCisJdmFydHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJeworCQlpZiAo aXNfbWlzc2luZyAhPSBOVUxMKQorCQl7CisJCQkqaXNfbWlzc2luZyA9IHRydWU7CisJCQlyZXR1 cm4gZmFsc2U7CisJCX0KKworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKwl9CisJdmFyZm9ybSA9IChGb3JtX3BnX3Zh cmlhYmxlKSBHRVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsK KworCS8qCisJICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFsbCwg aXQgYWluJ3QgdmlzaWJsZS4gV2UKKwkgKiBkb24ndCBleHBlY3QgdXNhZ2Ugb2Ygc2Vzc2lvbiB2 YXJpYWJsZXMgaW4gdGhlIHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFtZXNwYWNlID0g dmFyZm9ybS0+dmFybmFtZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJj aFBhdGgsIHZhcm5hbWVzcGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkv KgorCQkgKiBJZiBpdCBpcyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2li bGU7IGl0IGNvdWxkIGJlCisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBz YW1lIG5hbWUgZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cg Y2hlY2sgZm9yIGNvbmZsaWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5h bWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCXZpc2libGUgPSBmYWxzZTsKKwkJ Zm9yZWFjaF9vaWQobmFtZXNwYWNlSWQsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCWlmIChu YW1lc3BhY2VJZCA9PSB2YXJuYW1lc3BhY2UpCisJCQl7CisJCQkJLyogZm91bmQgaXQgZmlyc3Qg aW4gcGF0aCAqLworCQkJCXZpc2libGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYg KE9pZElzVmFsaWQoZ2V0X3Zhcm5hbWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNlSWQpKSkKKwkJ CXsKKwkJCQkvKiBmb3VuZCBzb21ldGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICovCisJCQkJYnJl YWs7CisJCQl9CisJCX0KKwl9CisKKwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsKKworCXJldHVy biB2aXNpYmxlOworfQogCiAvKgogICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzI4OSw2ICszMzY5 LDEzMyBAQCBUU0NvbmZpZ0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlzX21pc3Npbmcp CiAJcmV0dXJuIHZpc2libGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNzaW9uIHZh cmlhYmxlIHNwZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllci4KKyAqCisg KiBJZiBub3QgZm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRo cm93cyBlcnJvci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1l LAorCQkJICAgY29uc3QgY2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sK KwlPaWQJCQl2YXJvaWQgPSBJbnZhbGlkT2lkOworCisJaWYgKG5zcG5hbWUpCisJeworCQlPaWQg bmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1lLCBtaXNzaW5nX29r KTsKKworCQkvKiBpZiBuc3BuYW1lIGlzIGEga25vd24gbmFtZXNwYWNlLCB0aGUgdmFyaWFibGUg bXVzdCBiZSB0aGVyZSAqLworCQlpZiAoT2lkSXNWYWxpZChuYW1lc3BhY2VJZCkpCisJCXsKKwkJ CXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFi bGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCQkJCSBP YmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJLyog aXRlcmF0ZSBvdmVyIHRoZSBzY2hlbWFzIG9uIHRoZSBzZWFyY2hfcGF0aCAqLworCQlyZWNvbXB1 dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkJZm9yZWFjaF9vaWQobmFtZXNwYWNlSWQsIGFjdGl2ZVNl YXJjaFBhdGgpCisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVO U1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJu YW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisKKwkJCWlm IChPaWRJc1ZhbGlkKHZhcm9pZCkpCisJCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIU9pZElz VmFsaWQodmFyb2lkKSAmJiAhbWlzc2luZ19vaykKKwl7CisJCWlmIChuc3BuYW1lKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJ CQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAor CQkJCQkJCW5zcG5hbWUsIHZhcm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQl2YXJuYW1lKSkp OworCX0KKworCXJldHVybiB2YXJvaWQ7Cit9CisKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNz aW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllcgor ICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlmIG1pc3Npbmdfb2ssIGVs c2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KExp c3QgKm5hbWVzLAorCQkJCQkJICAgYm9vbCBtaXNzaW5nX29rKQoreworCWNoYXIJICAgKmNhdG5h bWUgPSBOVUxMOworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxMOworCWNoYXIJICAgKnZhcm5hbWUg PSBOVUxMOworCisJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJeworCQljYXNlIDE6CisJ CQl2YXJuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQlicmVhazsKKwkJY2FzZSAy OgorCQkJbnNwbmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJdmFybmFtZSA9IHN0 clZhbChsc2Vjb25kKG5hbWVzKSk7CisJCQlicmVhazsKKwkJY2FzZSAzOgorCQkJY2F0bmFtZSA9 IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJbnNwbmFtZSA9IHN0clZhbChsc2Vjb25kKG5h bWVzKSk7CisJCQl2YXJuYW1lID0gc3RyVmFsKGx0aGlyZChuYW1lcykpOworCisJCQkvKiBjaGVj ayBjYXRhbG9nIG5hbWUgKi8KKwkJCWlmIChzdHJjbXAoY2F0bmFtZSwgZ2V0X2RhdGFiYXNlX25h bWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY3Jvc3Mt ZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJCU5h bWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBl cnJtc2coImltcHJvcGVyIHNlc3Npb24gdmFyaWFibGUgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5h bWVzKTogJXMiLAorCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJYnJlYWs7 CisJfQorCisJcmV0dXJuIExvb2t1cFZhcmlhYmxlKG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdf b2spOworfQorCisvKgorICogVGhlIGlucHV0IGxpc3QgY29udGFpbnMgbmFtZXMgd2l0aCBpbmRp cmVjdGlvbiBleHByZXNzaW9ucyB1c2VkIGFzIHRoZSBsZWZ0CisgKiBwYXJ0IG9mIExFVCBzdGF0 ZW1lbnQuIFRoZSBmb2xsb3dpbmcgcm91dGluZSByZXR1cm5zIGEgbmV3IGxpc3Qgd2l0aCBvbmx5 CisgKiBpbml0aWFsIHN0cmluZ3MgKG5hbWVzKSAtIHdpdGhvdXQgaW5kaXJlY3Rpb24gZXhwcmVz c2lvbnMuCisgKi8KK0xpc3QgKgorTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcykKK3sKKwlMaXN0 Q2VsbCAgICpsOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKworCWZvcmVhY2gobCwgbmFtZXMp CisJeworCQlOb2RlCSAgICpuID0gbGZpcnN0KGwpOworCisJCWlmIChJc0EobiwgU3RyaW5nKSkK KwkJeworCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4pOworCQl9CisJCWVsc2UKKwkJCWJy ZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CiAKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxp ZmllZE5hbWUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKaW5kZXggYjYzZmQ1N2RjMDQu Ljk0MTNiNzYxOWM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJl c3MuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtNjIsNiAr NjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNv bW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAtNjM2LDYgKzYzNywyMCBAQCBzdGF0aWMgY29uc3QgT2Jq ZWN0UHJvcGVydHlUeXBlIE9iamVjdFByb3BlcnR5W10gPQogCQlPQkpFQ1RfVVNFUl9NQVBQSU5H LAogCQlmYWxzZQogCX0sCisJeworCQkic2Vzc2lvbiB2YXJpYWJsZSIsCisJCVZhcmlhYmxlUmVs YXRpb25JZCwKKwkJVmFyaWFibGVPaWRJbmRleElkLAorCQlWQVJJQUJMRU9JRCwKKwkJVkFSSUFC TEVOQU1FTlNQLAorCQlBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJQW51bV9wZ192YXJpYWJsZV92 YXJuYW1lLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJQW51bV9wZ192YXJp YWJsZV92YXJvd25lciwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJhY2wsCisJCU9CSkVDVF9WQVJJ QUJMRSwKKwkJdHJ1ZQorCX0KIH07CiAKIC8qCkBAIC04MzEsNiArODQ2LDkgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBvYmplY3RfdHlwZV9tYXAKIAl9LAogCXsKIAkJInN0YXRpc3RpY3Mgb2JqZWN0 IiwgT0JKRUNUX1NUQVRJU1RJQ19FWFQKKwl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLCBP QkpFQ1RfVkFSSUFCTEUKIAl9CiB9OwogCkBAIC04NTYsNiArODc0LDcgQEAgc3RhdGljIE9iamVj dEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX2F0dHJkZWYoT2JqZWN0VHlwZSBvYmp0eXBlLAog CQkJCQkJCQkJCQkJYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9v YmplY3RfYWRkcmVzc190eXBlKE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJIFR5cGVO YW1lICp0eXBlbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGdl dF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vayk7 CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3Nfb3BjZihPYmplY3RUeXBl IG9ianR5cGUsIExpc3QgKm9iamVjdCwKIAkJCQkJCQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CiBz dGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3Nfb3BmX21lbWJlcihPYmplY3RU eXBlIG9ianR5cGUsCkBAIC0xMTI3LDYgKzExNDYsOSBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2Jq ZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJCQkJCQkJCQkJCQkgbWlzc2luZ19v ayk7CiAJCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQkJYnJlYWs7CisJCQljYXNlIE9C SkVDVF9WQVJJQUJMRToKKwkJCQlhZGRyZXNzID0gZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxl KGNhc3ROb2RlKExpc3QsIG9iamVjdCksIG1pc3Npbmdfb2spOworCQkJCWJyZWFrOwogCQkJCS8q IG5vIGRlZmF1bHQsIHRvIGxldCBjb21waWxlciB3YXJuIGFib3V0IG1pc3NpbmcgY2FzZSAqLwog CQl9CiAKQEAgLTIxMDIsNiArMjEyNCwyNCBAQCB0ZXh0YXJyYXlfdG9fc3RydmFsdWVsaXN0KEFy cmF5VHlwZSAqYXJyKQogCXJldHVybiBsaXN0OwogfQogCisvKgorICogRmluZCB0aGUgT2JqZWN0 QWRkcmVzcyBmb3IgYSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNz CitnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdf b2spCit7CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxM OworCWNoYXIJICAgKnZhcm5hbWUgPSBOVUxMOworCisJT2JqZWN0QWRkcmVzc1NldChhZGRyZXNz LCBWYXJpYWJsZVJlbGF0aW9uSWQsIEludmFsaWRPaWQpOworCisJRGVjb25zdHJ1Y3RRdWFsaWZp ZWROYW1lKG9iamVjdCwgJm5zcG5hbWUsICZ2YXJuYW1lKTsKKwlhZGRyZXNzLm9iamVjdElkID0g TG9va3VwVmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwgbWlzc2luZ19vayk7CisKKwlyZXR1cm4g YWRkcmVzczsKK30KKwogLyoKICAqIFNRTC1jYWxsYWJsZSB2ZXJzaW9uIG9mIGdldF9vYmplY3Rf YWRkcmVzcwogICovCkBAIC0yMjk2LDYgKzIzMzYsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3Mo UEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJY2FzZSBP QkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgogCQkJb2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CiAJCQlicmVhazsKIAkJY2FzZSBP QkpFQ1RfQUNDRVNTX01FVEhPRDoKQEAgLTI0NjcsNiArMjUwOCw3IEBAIGNoZWNrX29iamVjdF9v d25lcnNoaXAoT2lkIHJvbGVpZCwgT2JqZWN0VHlwZSBvYmp0eXBlLCBPYmplY3RBZGRyZXNzIGFk ZHJlc3MsCiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCWNhc2UgT0JKRUNUX1RTRElD VElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKIAkJCWlmICghb2JqZWN0X293bmVyY2hlY2soYWRkcmVzcy5jbGFzc0lkLCBhZGRy ZXNzLm9iamVjdElkLCByb2xlaWQpKQogCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9P V05FUiwgb2JqdHlwZSwKIAkJCQkJCQkgICBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3Qs IG9iamVjdCkpKTsKQEAgLTM0OTYsNiArMzUzOCwzMiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihj b25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsK IAkJCX0KIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpu c3BuYW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3Jt OworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkK KwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3Jt X3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCWlmIChWYXJpYWJsZUlzVmlzaWJs ZShvYmplY3QtPm9iamVjdElkKSkKKwkJCQkJbnNwbmFtZSA9IE5VTEw7CisJCQkJZWxzZQorCQkJ CQluc3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisK KwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oInNlc3Npb24gdmFyaWFibGUgJXMiKSwK KwkJCQkJCQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJ CQkJCQlOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRTUGFyc2VyUmVsYXRpb25JZDoKIAkJ CXsKIAkJCQlIZWFwVHVwbGUJdHVwOwpAQCAtNDY3MCw2ICs0NzM4LDEwIEBAIGdldE9iamVjdFR5 cGVEZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19v aykKIAkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInRyYW5zZm9ybSIpOwogCQkJ YnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKCZidWZmZXIsICJzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKKwogCQlkZWZh dWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBvYmpl Y3QtPmNsYXNzSWQpOwogCX0KQEAgLTYwMjAsNiArNjA5MiwzMyBAQCBnZXRPYmplY3RJZGVudGl0 eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJ CWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKnNjaGVtYTsKKwkJ CQljaGFyCSAgICp2YXJuYW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJp YWJsZSB2YXJmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBP YmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlz VmFsaWQodHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNl c3Npb24gdmFyaWFibGUgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFy Zm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCXNjaGVtYSA9 IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJCQkJ dmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKCZidWZmZXIsICIlcyIsCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihz Y2hlbWEsIHZhcm5hbWUpKTsKKworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxp c3RfbWFrZTIoc2NoZW1hLCBwc3RyZHVwKHZhcm5hbWUpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNo ZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19zaGRlcGVuZC5jCmluZGV4IDUzNjE5MTI4NGU4Li5jNmZkMWZhMDc0ZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpAQCAtMTcxNCw2ICsx NzE1LDcgQEAgc2hkZXBSZWFzc2lnbk93bmVkX093bmVyKEZvcm1fcGdfc2hkZXBlbmQgc2RlcEZv cm0sIE9pZCBuZXdyb2xlKQogCQljYXNlIERhdGFiYXNlUmVsYXRpb25JZDoKIAkJY2FzZSBUU0Nv bmZpZ1JlbGF0aW9uSWQ6CiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRpb25JZDoKKwkJY2FzZSBW YXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQlBbHRlck9iamVjdE93bmVyX2ludGVybmFsKHNkZXBGb3Jt LT5jbGFzc2lkLAogCQkJCQkJCQkJICBzZGVwRm9ybS0+b2JqaWQsCiAJCQkJCQkJCQkgIG5ld3Jv bGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCBjYjJmYmRjN2M2MC4uYWVlNDBlN2JkNTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL01ha2VmaWxlCkBAIC01Myw2ICs1Myw3IEBAIE9CSlMgPSBcCiAJc2NoZW1hY21k cy5vIFwKIAlzZWNsYWJlbC5vIFwKIAlzZXF1ZW5jZS5vIFwKKwlzZXNzaW9uX3ZhcmlhYmxlLm8g XAogCXN0YXRzY21kcy5vIFwKIAlzdWJzY3JpcHRpb25jbWRzLm8gXAogCXRhYmxlY21kcy5vIFwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9hbHRlci5jCmluZGV4IGM4MDFjODY5YzFjLi5jNzJhNGFkYjA3YiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9hbHRlci5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RzX3RlbXBsYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0aW9uY21k cy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKQEAgLTE0MCw2ICsxNDEsMTAg QEAgcmVwb3J0X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xhc3NJZCwgY29uc3QgY2hhciAqbmFt ZSwgT2lkIG5zcE9pZCkKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkpOwogCQkJbXNnZm10 ID0gZ2V0dGV4dF9ub29wKCJ0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uIFwiJXNcIiBhbHJlYWR5 IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CiAJCQlicmVhazsKKwkJY2FzZSBWYXJpYWJsZVJl bGF0aW9uSWQ6CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKKwkJCW1zZ2ZtdCA9IGdl dHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2No ZW1hIFwiJXNcIiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5z dXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJYnJlYWs7CkBAIC00MzUs NiArNDQwLDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpF Q1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNU X1NVQlNDUklQVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJCQkJT2JqZWN0 QWRkcmVzcyBhZGRyZXNzOwogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CkBAIC01NzUsNiArNTgxLDcg QEAgRXhlY0FsdGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNjaGVtYVN0bXQgKnN0bXQs CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJ CWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewog CQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAJCQkJT2lkCQkJY2xhc3NJZDsKQEAgLTY1Nyw2ICs2NjQs NyBAQCBBbHRlck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lk IG5zcE9pZCwKIAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgogCQljYXNlIFRTVGVtcGxh dGVSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKKwkJY2FzZSBWYXJpYWJs ZVJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIApAQCAtODg3LDYgKzg5 NSw3IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAkJY2FzZSBP QkpFQ1RfVEFCTEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9C SkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJ CU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggY2Vi OWEyMjliNjMuLmViYjU4NWRjNGExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k cm9wY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTQ3Niw2 ICs0NzYsMTAgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBO b2RlICpvYmplY3QpCiAJCQltc2cgPSBnZXR0ZXh0X25vb3AoInB1YmxpY2F0aW9uIFwiJXNcIiBk b2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKIAkJCW5hbWUgPSBzdHJWYWwob2JqZWN0KTsKIAkJ CWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW1zZyA9IGdldHRleHRfbm9vcCgi c2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CisJCQlu YW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJCWJyZWFr OwogCiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggZWRjMmM5ODhlMjkuLjE4MzljMWY4MmM1 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBAIC0yMTQ5LDYgKzIxNDksOCBA QCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1cm4g IlRBQkxFU1BBQ0UiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBFIjsKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFIjsKIAkJCS8qIHRoZXNl IGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgog CQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CkBAIC0yMjMyLDYgKzIyMzQsOCBAQCBzdHJpbmdpZnlf YWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQ QUNFUyI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEVTIjsKKwkJY2FzZSBP QkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFUyI7CiAJCQkvKiB0aGVzZSBjdXJy ZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2Fz ZSBPQkpFQ1RfQUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVz b24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCBkZDRjZGU0 MWQzMi4uMTAxYzhkNzVkZDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29u LmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC00MSw2ICs0 MSw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdz ZWNsYWJlbC5jJywKICAgJ3NlcXVlbmNlLmMnLAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAg J3N0YXRzY21kcy5jJywKICAgJ3N1YnNjcmlwdGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycs CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCBjZWU1ZDdiYmI5Yy4uNTdiNGU2NzE5YzIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtOTIsNiArOTIsNyBAQCBTZWNMYWJlbFN1cHBvcnRz T2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgog CQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgogCQljYXNlIE9CSkVDVF9VU0VSX01BUFBJTkc6CisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJcmV0dXJuIGZhbHNlOwogCiAJCQkvKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5mNjQxZTAwYzFhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMCwwICsxLDg4IEBACisvKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCisgKiBzZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCSAgc2Vzc2lvbiB2YXJpYWJs ZSBjcmVhdGlvbi9tYW5pcHVsYXRpb24gY29tbWFuZHMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBv ZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICov CisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRl ICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisKKy8qCisg KiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCisgKgorICogVXNlZCBieSBDUkVBVEUgVkFSSUFCTEUg Y29tbWFuZAorICovCitPYmplY3RBZGRyZXNzCitDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQoreworCU9pZAkJCW5hbWVzcGFjZWlk OworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsK KwlPaWQJCQl2YXJvd25lciA9IEdldFVzZXJJZCgpOworCU9pZAkJCWNvbGxhdGlvbjsKKwlPaWQJ CQl0eXBjb2xsYXRpb247CisJT2JqZWN0QWRkcmVzcyB2YXJpYWJsZTsKKworCW5hbWVzcGFjZWlk ID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxl LCBOb0xvY2ssIE5VTEwpOworCisJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0YXRlLCBzdG10LT50 eXBlTmFtZSwgJnR5cGlkLCAmdHlwbW9kKTsKKworCS8qIGRpc2FsbG93IHBzZXVkb3R5cGVzICov CisJaWYgKGdldF90eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX1BTRVVETykKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJy bXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSAlcyIsCisJCQkJCQlm b3JtYXRfdHlwZV9iZSh0eXBpZCkpKSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2so VHlwZVJlbGF0aW9uSWQsIHR5cGlkLCBHZXRVc2VySWQoKSwgQUNMX1VTQUdFKTsKKwlpZiAoYWNs cmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcl90eXBlKGFjbHJlc3VsdCwg dHlwaWQpOworCisJdHlwY29sbGF0aW9uID0gZ2V0X3R5cGNvbGxhdGlvbih0eXBpZCk7CisKKwlp ZiAoc3RtdC0+Y29sbENsYXVzZSkKKwkJY29sbGF0aW9uID0gTG9va3VwQ29sbGF0aW9uKHBzdGF0 ZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2UtPmNvbGxuYW1lLAorCQkJCQkJCQkJc3RtdC0+ Y29sbENsYXVzZS0+bG9jYXRpb24pOworCWVsc2UKKwkJY29sbGF0aW9uID0gdHlwY29sbGF0aW9u OworCisJLyogY29tcGxhaW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRvIGFuIHVuY29sbGF0YWJs ZSB0eXBlICovCisJaWYgKE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAhT2lkSXNWYWxpZCh0eXBj b2xsYXRpb24pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQg YnkgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKKworCXZh cmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLAorCQkJCQkJ CSAgIG5hbWVzcGFjZWlkLAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCSAgIHR5cG1vZCwKKwkJ CQkJCQkgICB2YXJvd25lciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJCQkJCQkJICAgc3RtdC0+ aWZfbm90X2V4aXN0cyk7CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLAorCQkgc3Rt dC0+dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsKKworCXJldHVybiB2YXJp YWJsZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggYWNmMTFlODNjMDQuLjBlMWUz OTIzNDMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNTIsNiArNTIsNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJp Z2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIKQEAg LTY5MTAsNiArNjkxMSw3IEBAIEFUVHlwZWRUYWJsZVJlY3Vyc2lvbihMaXN0ICoqd3F1ZXVlLCBS ZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNtZCwKICAqIChwb3NzaWJseSBuZXN0ZWQgc2V2 ZXJhbCBsZXZlbHMgZGVlcCBpbiBjb21wb3NpdGUgdHlwZXMsIGFycmF5cywgZXRjISkuCiAgKiBF dmVudHVhbGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFnYXRlIHRoZSBjaGVjayBvciByZXdyaXRlIG9w ZXJhdGlvbgogICogaW50byBzdWNoIHRhYmxlcywgYnV0IGZvciBub3csIGp1c3QgZXJyb3Igb3V0 IGlmIHdlIGZpbmQgYW55LgorICogQWxzbywgY2hlY2sgaWYgInR5cGVPaWQiIGlzIHVzZWQgYXMg dHlwZSBvZiBzb21lIHNlc3Npb24gdmFyaWFibGUuCiAgKgogICogQ2FsbGVyIHNob3VsZCBwcm92 aWRlIGVpdGhlciB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbiBvZiBhIHJvd3R5cGUsCiAgKiBvciBh IHR5cGUgbmFtZSAobm90IGJvdGgpIGZvciB1c2UgaW4gdGhlIGVycm9yIG1lc3NhZ2UsIGlmIGFu eS4KQEAgLTY5NzMsNiArNjk3NSw0NSBAQCBmaW5kX2NvbXBvc2l0ZV90eXBlX2RlcGVuZGVuY2ll cyhPaWQgdHlwZU9pZCwgUmVsYXRpb24gb3JpZ1JlbGF0aW9uLAogCQkJY29udGludWU7CiAJCX0K IAorCQkvKiBjaGVjayBpZiB0aGUgdHlwZSBpcyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9u IHZhcmlhYmxlICovCisJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlv bklkKQorCQl7CisJCQlPaWQJCQl2YXJpZCA9IHBnX2RlcGVuZC0+b2JqaWQ7CisKKwkJCWlmIChv cmlnVHlwZU5hbWUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBl IFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJ CQkJCQlvcmlnVHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVs a2luZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNn KCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0 aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlk KSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJ TkRfRk9SRUlHTl9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVy IGZvcmVpZ24gdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIg dXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiks CisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3Bh Y2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7 CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1JF TEFUSU9OIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5E X01BVFZJRVcgfHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJ TkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBh bHRlciB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2Vz IGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJ CQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2 YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwor CQkJY29udGludWU7CisJCX0KKwogCQkvKiBFbHNlLCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJl bid0IHJlbGF0aW9ucyAqLwogCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkICE9IFJlbGF0aW9uUmVs YXRpb25JZCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKaW5kZXggNDVhZTc0 NzJhYjUuLmY4ZmVmZGMyY2Y4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKQEAgLTUzLDYgKzUz LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3JhbmdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3R5cGVjbWRzLmgiCkBA IC0zMzczLDYgKzMzNzQsMjAgQEAgZ2V0X3JlbHNfd2l0aF9kb21haW4oT2lkIGRvbWFpbk9pZCwg TE9DS01PREUgbG9ja21vZGUpCiAJCQl9CiAJCQljb250aW51ZTsKIAkJfQorCQllbHNlIGlmIChw Z19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7CisJCQkvKgorCQkJ ICogV2UgY2Fubm90IHRvIHZhbGlkYXRlIGNvbnN0cmFpbnQgaW5zaWRlIHNlc3Npb24gdmFyaWFi bGVzCisJCQkgKiBmcm9tIG90aGVyIHNlc3Npb25zLCBzbyBiZXR0ZXIgdG8gZmFpbCBpZiB0aGVy ZSBhcmUgYW55CisJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLCB0aGF0IHVzZSB0aGlzIGRvbWFpbi4K KwkJCSAqLworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgZG9tYWluIFwiJXNc IiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlk b21haW5UeXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZShwZ19kZXBlbmQtPm9iamlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWUocGdfZGVwZW5kLT5vYmppZCkpKSk7CisJCX0KIAogCQkvKiBFbHNlLCBp Z25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHVzZXIgY29sdW1ucyBvZiByZWxhdGlvbnMgKi8K IAkJLyogKHdlIGFzc3VtZSBzeXN0ZW0gY29sdW1ucyBhcmUgbmV2ZXIgb2YgZG9tYWluIHR5cGVz KSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkKaW5kZXggMGI1NjUyMDcxZDEuLjY0ZGI0YjVlODhiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVm cmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImdyYW1wYXJz ZS5oIgpAQCAtMjg1LDggKzI4Niw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1Nl bGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCUNvbnN0 cmFpbnRzU2V0U3RtdCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0bXQKIAkJQ3Jl YXRlRG9tYWluU3RtdCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3RtdCBDcmVhdGVP cENsYXNzU3RtdAogCQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0bXQgQ3JlYXRl UExhbmdTdG10Ci0JCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTdG10IENy ZWF0ZVN0YXRzU3RtdCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdTdG10IENyZWF0 ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3JlYXRlU2NoZW1h U3RtdCBDcmVhdGVTZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0bXQgQ3JlYXRl U3RhdHNTdG10CisJCUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQgQ3JlYXRlRm9y ZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3NlcnRpb25T dG10IENyZWF0ZVRyYW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRUcmlnU3Rt dAogCQlDcmVhdGVVc2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9sZVN0bXQg Q3JlYXRlUG9saWN5U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQgRGVmaW5l U3RtdCBEZWxldGVTdG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzgzLDggKzc4NCw4IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJT05BTCBV TkNPTU1JVFRFRCBVTkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElTVEVOIFVO TE9HR0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFMSURBVEUg VkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJP U0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVklSVFVBTCBWT0xBVElMRQorCVZBQ1VVTSBWQUxJRCBW QUxJREFURSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJJQUJM RQorCVZBUllJTkcgVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWSVJUVUFMIFZPTEFUSUxF CiAKIAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBX T1JLIFdSQVBQRVIgV1JJVEUKIApAQCAtMTA1MCw2ICsxMDUxLDcgQEAgc3RtdDoKIAkJCXwgQ3Jl YXRlUG9saWN5U3RtdAogCQkJfCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1hU3Rt dAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8IENy ZWF0ZVN0bXQKIAkJCXwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTU5Miw2ICsxNTk0LDcg QEAgc2NoZW1hX3N0bXQ6CiAJCQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAogCQkJ fCBWaWV3U3RtdAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTI2Nyw2 ICs1MjcwLDM0IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFSSUFC TEUgdmFybmFtZSBbQVNdIHR5cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0NyZWF0 ZVNlc3Npb25WYXJTdG10OgorCQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25W YXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJp YWJsZSA9ICQzOworCQkJCQluLT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNlID0g KENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKwkJ CQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9U IEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNl CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNl c3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUg PSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQlu LT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJ OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBV UERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTcwNTgsNiArNzA4OSw3IEBAIG9iamVjdF90eXBlX2Fu eV9uYW1lOgogCQkJfCBURVhUX1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVDVF9U U0RJQ1RJT05BUlk7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0gT0JK RUNUX1RTVEVNUExBVEU7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJeyAk JCA9IE9CSkVDVF9UU0NPTkZJR1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsgJCQg PSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAvKgpAQCAtOTk2NSw2ICs5OTk3LDI0IEBAIFJl bmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBSRU5BTUUg VE8gbmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJ CQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4t PnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICop ICQzOworCQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsK KwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVY SVNUUyBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAqbiA9 IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX1ZBUklB QkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3bmFtZSA9ICQ4 OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQogCQk7CiAKIG9wdF9jb2x1bW46IENPTFVNTgpAQCAtMTAzMjYsNiArMTAzNzYsMjQgQEAgQWx0 ZXJPYmplY3RTY2hlbWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFNFVCBT Q0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5v ZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9W QVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld3NjaGVt YSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKilu OworCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMgYW55X25hbWUgU0VUIFND SEVNQSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9k ZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZB UklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3c2NoZW1h ID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsK KwkJCQl9CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDYwNyw2ICsxMDY3NSwx NCBAQCBBbHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5 cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJCSQkID0g KE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIE9XTkVSIFRP IFJvbGVTcGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVy T3duZXJTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJ bi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld293bmVyID0gJDY7CisJCQkJCSQk ID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAKQEAgLTE4MDI0LDYgKzE4MTAwLDcgQEAgdW5y ZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBWQUxJREFURQogCQkJfCBWQUxJREFUT1IKIAkJCXwgVkFM VUVfUAorCQkJfCBWQVJJQUJMRQogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05fUAogCQkJfCBW SUVXCkBAIC0xODY4MCw2ICsxODc1Nyw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVkFM VUVfUAogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJMRQogCQkJfCBWQVJJ QURJQwogCQkJfCBWRVJCT1NFCiAJCQl8IFZFUlNJT05fUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGls Y21kLmMKaW5kZXggNjIwMTU0MzFmZGYuLmI2Y2JlMzU0YzUxIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV91dGlsY21kLmMKQEAgLTEwNSw2ICsxMDUsNyBAQCB0eXBlZGVmIHN0cnVjdAogCUxpc3QJICAg KmluZGV4ZXM7CQkvKiBDUkVBVEUgSU5ERVggaXRlbXMgKi8KIAlMaXN0CSAgICp0cmlnZ2VyczsJ CS8qIENSRUFURSBUUklHR0VSIGl0ZW1zICovCiAJTGlzdAkgICAqZ3JhbnRzOwkJCS8qIEdSQU5U IGl0ZW1zICovCisJTGlzdAkgICAqdmFyaWFibGVzOwkJLyogQ1JFQVRFIFZBUklBQkxFIGl0ZW1z ICovCiB9IENyZWF0ZVNjaGVtYVN0bXRDb250ZXh0OwogCiAKQEAgLTQwOTEsNiArNDA5Miw3IEBA IHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25z dCBjaGFyICpzY2hlbWFOYW1lKQogCWN4dC5pbmRleGVzID0gTklMOwogCWN4dC50cmlnZ2VycyA9 IE5JTDsKIAljeHQuZ3JhbnRzID0gTklMOworCWN4dC52YXJpYWJsZXMgPSBOSUw7CiAKIAkvKgog CSAqIFJ1biB0aHJvdWdoIGVhY2ggc2NoZW1hIGVsZW1lbnQgaW4gdGhlIHNjaGVtYSBlbGVtZW50 IGxpc3QuIFNlcGFyYXRlCkBAIC00MTU5LDYgKzQxNjEsMTUgQEAgdHJhbnNmb3JtQ3JlYXRlU2No ZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUp CiAJCQkJY3h0LmdyYW50cyA9IGxhcHBlbmQoY3h0LmdyYW50cywgZWxlbWVudCk7CiAJCQkJYnJl YWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQl7CisJCQkJCUNyZWF0 ZVNlc3Npb25WYXJTdG10ICplbHAgPSAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgZWxlbWVudDsK KworCQkJCQlzZXRTY2hlbWFOYW1lKGN4dC5zY2hlbWFuYW1lLCAmZWxwLT52YXJpYWJsZS0+c2No ZW1hbmFtZSk7CisJCQkJCWN4dC52YXJpYWJsZXMgPSBsYXBwZW5kKGN4dC52YXJpYWJsZXMsIGVs ZW1lbnQpOworCQkJCX0KKwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhlbGVt ZW50KSk7CkBAIC00MTcyLDYgKzQxODMsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxl bWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAlyZXN1bHQg PSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC5pbmRleGVzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNh dChyZXN1bHQsIGN4dC50cmlnZ2Vycyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBj eHQuZ3JhbnRzKTsKKwlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC52YXJpYWJsZXMp OwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRp bGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMjVmZTNkNTgwMTYuLjc4 MmIwMjJkYTljIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgImNv bW1hbmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNs dWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNl LmgiCkBAIC0xODIsNiArMTgzLDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHko Tm9kZSAqcGFyc2V0cmVlKQogCQljYXNlIFRfQ3JlYXRlUmFuZ2VTdG10OgogCQljYXNlIFRfQ3Jl YXRlUm9sZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTY2hlbWFTdG10OgorCQljYXNlIFRfQ3JlYXRl U2Vzc2lvblZhclN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFTdG10OgogCQljYXNlIFRfQ3JlYXRl U3RhdHNTdG10OgogCQljYXNlIFRfQ3JlYXRlU3RtdDoKQEAgLTEzODksNiArMTM5MSwxMCBAQCBQ cm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCX0KIAkJCQlicmVhazsK IAorCQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCWFkZHJlc3MgPSBDcmVhdGVW YXJpYWJsZShwc3RhdGUsIChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBwYXJzZXRyZWUpOworCQkJ CWJyZWFrOworCiAJCQkJLyoKIAkJCQkgKiAqKioqKioqKioqKioqIG9iamVjdCBjcmVhdGlvbiAv IGRlc3RydWN0aW9uICoqKioqKioqKioqKioqCiAJCQkJICovCkBAIC0yMzQxLDYgKzIzNDcsOSBA QCBBbHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBP QkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9TVEFUSVNUSUNTOwog CQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJdGFnID0gQ01EVEFHX0FMVEVS X1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQl0YWcgPSBDTURUQUdfVU5LTk9X TjsKIAkJCWJyZWFrOwpAQCAtMjY0OSw2ICsyNjU4LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2Rl ICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCQkJdGFnID0g Q01EVEFHX0RST1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX1ZBUklBQkxFOworCQkJCQlicmVhazsKIAkJ CQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTMyMjUsNiAr MzIzNywxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJy ZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCXRhZyA9IENNRFRBR19D UkVBVEVfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5H LCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNl dHJlZSkpOwpAQCAtMzc1OSw2ICszNzc1LDEwIEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpw YXJzZXRyZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0 bXQ6CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQll bG9nKFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5v ZGVUYWcocGFyc2V0cmVlKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9s c3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IGM0 NjBhNzJiNzVkLi5mZGI3ZWFlZjc1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMK QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgInV0aWxzL2Fy cmF5LmgiCkBAIC0zODU0LDMgKzM4NTUsNjcgQEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBz dWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJcmV0dXJuIHN1Ym5hbWU7CiB9CisKKy8qCQkJCS0t LS0tLS0tLS0gUEdfVkFSSUFCTEUgQ0FDSEUgLS0tLS0tLS0tLQkJCQkgKi8KKworLyoKKyAqIGdl dF92YXJuYW1lX3ZhcmlkCisgKgkJR2l2ZW4gbmFtZSBhbmQgbmFtZXNwYWNlIG9mIHZhcmlhYmxl LCBsb29rIHVwIHRoZSBPSUQuCisgKi8KK09pZAorZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hh ciAqdmFybmFtZSwgT2lkIHZhcm5hbWVzcGFjZSkKK3sKKwlyZXR1cm4gR2V0U3lzQ2FjaGVPaWQy KFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkgICBQb2ludGVy R2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkgICBPYmplY3RJZEdldERhdHVtKHZhcm5hbWVzcGFj ZSkpOworfQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCVJldHVybnMg YSBwYWxsb2MnZCBjb3B5IG9mIHRoZSBuYW1lIG9mIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4K KyAqLworY2hhciAqCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlI ZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJu YW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7 CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFy bmFtZSA9IHBzdHJkdXAoTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisKKwlSZWxlYXNlU3lz Q2FjaGUodHVwKTsKKworCXJldHVybiB2YXJuYW1lOworfQorCisvKgorICogZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlCisgKgkJUmV0dXJucyB0aGUgcGdfbmFtZXNwYWNlIE9JRCBhc3Nv Y2lhdGVkIHdpdGggYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlG b3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCisJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisK KwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3Bn X3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWVzcGFjZSA9IHZhcmZvcm0tPnZh cm5hbWVzcGFjZTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWVz cGFjZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDhjN2NjYzY5YTNjLi5iZGFjMGMx M2JlYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC05Nyw2ICs5Nyw4IEBAIGV4dGVybiBP aWQJVHlwZW5hbWVHZXRUeXBpZChjb25zdCBjaGFyICp0eXBuYW1lKTsKIGV4dGVybiBPaWQJVHlw ZW5hbWVHZXRUeXBpZEV4dGVuZGVkKGNvbnN0IGNoYXIgKnR5cG5hbWUsIGJvb2wgdGVtcF9vayk7 CiBleHRlcm4gYm9vbCBUeXBlSXNWaXNpYmxlKE9pZCB0eXBpZCk7CiAKK2V4dGVybiBib29sIFZh cmlhYmxlSXNWaXNpYmxlKE9pZCB2YXJpZCk7CisKIGV4dGVybiBGdW5jQ2FuZGlkYXRlTGlzdCBG dW5jbmFtZUdldENhbmRpZGF0ZXMoTGlzdCAqbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGludCBuYXJn cywgTGlzdCAqYXJnbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGJvb2wgZXhwYW5kX3ZhcmlhZGljLApA QCAtMTY5LDYgKzE3MSwxMCBAQCBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBh dGhNYXRjaGVyKE1lbW9yeUNvbnRleHQgY29udGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNo ZXIgKkNvcHlTZWFyY2hQYXRoTWF0Y2hlcihTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRl cm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0 Y2hlciAqcGF0aCk7CiAKK2V4dGVybiBMaXN0ICpOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKTsK K2V4dGVybiBPaWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hh ciAqdmFybmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVybiBPaWQJTG9va3VwVmFyaWFibGVG cm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2luZ19vayk7CisKIGV4dGVybiBPaWQJ Z2V0X2NvbGxhdGlvbl9vaWQoTGlzdCAqY29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRl cm4gT2lkCWdldF9jb252ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2sp OwogZXh0ZXJuIE9pZAlGaW5kRGVmYXVsdENvbnZlcnNpb25Qcm9jKGludDMyIGZvcl9lbmNvZGlu ZywgaW50MzIgdG9fZW5jb2RpbmcpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40OWYzNmFjNjg4NQot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu aApAQCAtMCwwICsxLDI0IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9udmFy aWFibGUuaAorICoJICBwcm90b3R5cGVzIGZvciBzZXNzaW9udmFyaWFibGUuYy4KKyAqCisgKgor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNp Zm5kZWYgU0VTU0lPTlZBUklBQkxFX0gKKyNkZWZpbmUgU0VTU0lPTlZBUklBQkxFX0gKKworI2lu Y2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9u b2RlLmgiCisjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorCitleHRlcm4gT2JqZWN0QWRk cmVzcyBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJT dG10ICpzdG10KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZGQwMGFiNDIw YjguLjE5MTcxM2RlN2Y0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMzcwLDYgKzIzNzAs NyBAQCB0eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9UU1RFTVBMQVRFLAogCU9CSkVD VF9UWVBFLAogCU9CSkVDVF9VU0VSX01BUFBJTkcsCisJT0JKRUNUX1ZBUklBQkxFLAogCU9CSkVD VF9WSUVXLAogfSBPYmplY3RUeXBlOwogCkBAIC0zNTIwLDYgKzM1MjEsMjEgQEAgdHlwZWRlZiBz dHJ1Y3QgQWx0ZXJTdGF0c1N0bXQKIAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBp ZiBzdGF0aXN0aWNzIG9iamVjdCBpcyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisK Ky8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQl7Q3JlYXRlfEFsdGVyfSBWQVJJQUJMRSBT dGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3Qg Q3JlYXRlU2Vzc2lvblZhclN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZh cmlhYmxlOwkJLyogdGhlIHZhcmlhYmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVO YW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KKwlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xh dXNlOworCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBl eGlzdHMgKi8KK30gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICoJCUNyZWF0ZSBGdW5jdGlvbiBTdGF0ZW1lbnQKICAqIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBhNGFmM2Y3MTdhMS4uNmY1MTNmMDQyMjUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKQEAgLTQ4Niw2ICs0ODYsNyBAQCBQR19LRVlXT1JEKCJ2YWxpZGF0b3Ii LCBWQUxJREFUT1IsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InZhbHVlIiwgVkFMVUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgidmFsdWVzIiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgidmFyY2hhciIsIFZBUkNIQVIsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwp CitQR19LRVlXT1JEKCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVTRVJW RURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwgVFlQ RV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXgg ZDI1MGE3MTRkNTkuLmVhODY5NTRkZGVkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Nt ZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtNjgsNiAr NjgsNyBAQCBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSQU5TRk9STSwgIkFMVEVSIFRSQU5TRk9S TSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJJR0dFUiwg IkFMVEVSIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FM VEVSX1RZUEUsICJBTFRFUiBUWVBFIiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0FMVEVSX1VTRVJfTUFQUElORywgIkFMVEVSIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNl LCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfVkFSSUFCTEUsICJBTFRFUiBWQVJJQUJM RSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVklFVywgIkFM VEVSIFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FOQUxZWkUs ICJBTkFMWVpFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQkVHSU4s ICJCRUdJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMjMsNiArMTI0LDcgQEAgUEdfQ01E VEFHKENNRFRBR19DUkVBVEVfVFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRydWUsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVBVEUgVFJJ R0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RZUEUs ICJDUkVBVEUgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JF QVRFX1VTRVJfTUFQUElORywgIkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFs c2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJQUJMRSIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcsICJDUkVB VEUgVklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FU RSwgIkRFQUxMT0NBVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E RUFMTE9DQVRFX0FMTCwgIkRFQUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAg LTE3NSw2ICsxNzcsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAiRFJPUCBU UkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJJ R0dFUiwgIkRST1AgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9UWVBFLCAiRFJPUCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX1VTRVJfTUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFs c2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBWQVJJQUJM RSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVXLCAiRFJP UCBWSUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVDVVRFLCAi RVhFQ1VURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYUExBSU4s ICJFWFBMQUlOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5kZXgg ZmE3YzdlMDMyM2IuLjg3ZTFmZTYzNmI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9s c3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtMTM5LDYg KzEzOSw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tpbmQoT2lkIGZ1bmNpZCk7CiBleHRl cm4gYm9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNpZCk7CiBleHRlcm4gUmVnUHJvY2Vk dXJlIGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxuYW1l X3JlbGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxuYW1lc3BhY2UpOworZXh0ZXJuIE9p ZAlnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFtZXNwYWNl KTsKIGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0 X3JlbF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF90eXBlX2lkKE9p ZCByZWxpZCk7CkBAIC0yMTEsNiArMjEyLDkgQEAgZXh0ZXJuIGNoYXIgKmdldF9wdWJsaWNhdGlv bl9uYW1lKE9pZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X3N1YnNj cmlwdGlvbl9vaWQoY29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBjaGFyICpnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2sp OwogCitleHRlcm4gY2hhciAqZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOwor ZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKTsKKwog I2RlZmluZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9 IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4g YXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlf ZG9tYWluKHR5cGlkKSAgKGdldF9iYXNlX2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9p ZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CmluZGV4IDc1YTA3OGFk YTllLi5jZDhlNDQxMmZhOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9k ZXBlbmRlbmN5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3ku b3V0CkBAIC0xNTEsMyArMTUxLDIwIEBAIG93bmVyIG9mIHR5cGUgZGVwdGVzdF90CiBEUk9QIE9X TkVEIEJZIHJlZ3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiBy ZWdyZXNzX2RlcF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKy0tIGRlcGVu ZGVuY3kgb24gdHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZ UEUgdmFydHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB2YXJ0eXBlOworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFp bjsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlwZSB2YXJkb21haW4gYmVjYXVzZSBvdGhlciBvYmpl Y3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGMgb2YgY29tcG9zaXRlIHR5cGUgdmFy dHlwZSBkZXBlbmRzIG9uIHR5cGUgdmFyZG9tYWluCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NB REUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBUWVBFIHZhcnR5cGU7 CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgdmFydHlwZSBiZWNhdXNlIG90aGVyIG9iamVjdHMg ZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0 eXBlIHZhcnR5cGUKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBl bmRlbnQgb2JqZWN0cyB0b28uCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljNzU5NWU5YTQxCi0tLSAvZGV2L251bGwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0CkBA IC0wLDAgKzEsMTYzIEBACitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CitDUkVBVEUgVkFSSUFC TEUgZGRsdGVzdF9zZXN2YXIwMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmRkbHRl c3Rfc2VzdmFyMDIgQVMgaW50OworQ1JFQVRFIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKK0NSRUFU RSBWQVJJQUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjAzIEFTIGludDsKK1NFTEVD VCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQp CisgIEZST00gcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzZXNzaW9uIHZhcmlhYmxlJywgJ3tkZGx0 ZXN0X3Nlc3ZhcjAxfScsICd7fScpOworICAgICAgICAgICAgcGdfaWRlbnRpZnlfb2JqZWN0X2Fz X2FkZHJlc3MgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKCJzZXNzaW9uIHZhcmlhYmxlIiwie3B1YmxpYyxkZGx0ZXN0 X3Nlc3ZhcjAxfSIse30pCisoMSByb3cpCisKK1NFTEVDVCBwZ19pZGVudGlmeV9vYmplY3RfYXNf YWRkcmVzcyhjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpCisgIEZST00gcGdfZ2V0X29iamVjdF9h ZGRyZXNzKCdzZXNzaW9uIHZhcmlhYmxlJywgJ3twdWJsaWMsZGRsdGVzdF9zZXN2YXIwMn0nLCAn e30nKTsKKyAgICAgICAgICAgIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNzICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICgic2Vzc2lvbiB2YXJpYWJsZSIsIntwdWJsaWMsZGRsdGVzdF9zZXN2YXIwMn0iLHt9KQor KDEgcm93KQorCitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwg b2JqaWQsIG9ianN1YmlkKQorICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2 YXJpYWJsZScsICd7c2VzdmFydGVzdF9kZGwsZGRsdGVzdF9zZXN2YXIwM30nLCAne30nKTsKKyAg ICAgICAgICAgICAgICBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcyAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAoInNlc3Npb24gdmFyaWFibGUiLCJ7c2VzdmFydGVzdF9kZGwsZGRsdGVzdF9z ZXN2YXIwM30iLHt9KQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDE7 CitEUk9QIFZBUklBQkxFIHB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjAyOworQ1JFQVRFIFRZUEUgc2Vz dmFydGVzdF90eXBlX2RkbCBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBET01BSU4gc2VzdmFy dGVzdF9kb21haW5fZGRsIEFTIGludDsKK0NSRUFURSBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2Rk bCAoYSBpbnQsIGIgaW50KTsKKy8qIHByZWZpeCBkZGx0ZXN0XyBzaG91bGQgbm90IGJlIHVzZWQg ZXZlciBpbiBhbm90aGVyIHRlc3RzICovCitDUkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIw NCBBUyBzZXN2YXJ0ZXN0X3R5cGVfZGRsOworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFy MDUgQVMgc2VzdmFydGVzdF9kb21haW5fZGRsOworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2Vz dmFyMDYgQVMgc2VzdmFydGVzdF90YWJsZV9kZGw7CistLSBhZGQgbmV3IGZpZWxkIHRvIGNvbXBv c2l0ZSB2YWx1ZSBpcyBzdXBwb3J0ZWQsCistLSBjaGFuZ2UgdHlwZSBvZiBmaWVsZCBpcyBwcm9o aWJpdGVkCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBB REQgQVRUUklCVVRFIGMgaW50OworQUxURVIgVEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGwgQURE IENPTFVNTiBjIGludDsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUWVBFIHNlc3ZhcnRlc3RfdHlw ZV9kZGwgQUxURVIgQVRUUklCVVRFIGIgVFlQRSBudW1lcmljOworRVJST1I6ICBjYW5ub3QgYWx0 ZXIgdHlwZSAic2VzdmFydGVzdF90eXBlX2RkbCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJw dWJsaWMuZGRsdGVzdF9zZXN2YXIwNCIgdXNlcyBpdAorQUxURVIgVEFCTEUgc2VzdmFydGVzdF90 YWJsZV9kZGwgQUxURVIgQ09MVU1OIGIgVFlQRSBudW1lcmljOworRVJST1I6ICBjYW5ub3QgYWx0 ZXIgdGFibGUgInNlc3ZhcnRlc3RfdGFibGVfZGRsIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA2IiB1c2VzIGl0CitBTFRFUiBET01BSU4gc2VzdmFydGVz dF9kb21haW5fZGRsIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworRVJST1I6ICBjYW5ub3QgYWx0 ZXIgZG9tYWluICJzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJs ZSAicHVibGljLmRkbHRlc3Rfc2VzdmFyMDUiIHVzZXMgaXQKKy0tIHNob3VsZCBmYWlsCitEUk9Q IFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlwZSBzZXN2 YXJ0ZXN0X3R5cGVfZGRsIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJ TDogIHNlc3Npb24gdmFyaWFibGUgZGRsdGVzdF9zZXN2YXIwNCBkZXBlbmRzIG9uIHR5cGUgc2Vz dmFydGVzdF90eXBlX2RkbAorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhl IGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgRE9NQUlOIHNlc3ZhcnRlc3RfZG9tYWluX2Rk bDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlwZSBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwgYmVjYXVz ZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSBk ZGx0ZXN0X3Nlc3ZhcjA1IGRlcGVuZHMgb24gdHlwZSBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGwKK0hJ TlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0 b28uCitEUk9QIFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsOworRVJST1I6ICBjYW5ub3QgZHJv cCB0YWJsZSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIGRkbHRlc3Rfc2VzdmFyMDYgZGVwZW5k cyBvbiB0eXBlIHNlc3ZhcnRlc3RfdGFibGVfZGRsCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NB REUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gY2hlY2sgZXZlbnQgdHJp Z2dlciBzdXBwb3J0CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdn ZXJfcmVwb3J0X2Ryb3BwZWQoKQorUkVUVVJOUyBldmVudF90cmlnZ2VyCitBUyAkJAorREVDTEFS RSByIHJlY29yZDsKK0JFR0lOCisgIEZPUiByIElOIFNFTEVDVCAqIGZyb20gcGdfZXZlbnRfdHJp Z2dlcl9kcm9wcGVkX29iamVjdHMoKQorICBMT09QCisgICAgSUYgci5jbGFzc2lkID0gJ3BnX3Zh cmlhYmxlJzo6cmVnY2xhc3MgQU5ECisgICAgICAgci5hZGRyZXNzX25hbWVzWzJdIGxpa2UgJ2Rk bHRlc3Rfc2VzdmFyJScKKyAgICBUSEVOCisgICAgICBSQUlTRSBOT1RJQ0UKKyAgICAgICAgICdO T1JNQUw6IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUg YXJncz0lJywKKyAgICAgICAgIHIub3JpZ2luYWwsIHIubm9ybWFsLCByLmlzX3RlbXBvcmFyeSwg ci5vYmplY3RfdHlwZSwKKyAgICAgICAgIHIub2JqZWN0X2lkZW50aXR5LCByLmFkZHJlc3NfbmFt ZXMsIHIuYWRkcmVzc19hcmdzOworICAgIEVORCBJRjsKKyAgRU5EIExPT1A7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50 X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcgSU4gKCdEUk9Q IFZBUklBQkxFJywgJ0RST1AgU0NIRU1BJykKKyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVu dF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCk7CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFy MDQ7CitOT1RJQ0U6ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBpc3RlbXA9ZiB0eXBlPXNlc3Np b24gdmFyaWFibGUgaWRlbnRpdHk9cHVibGljLmRkbHRlc3Rfc2VzdmFyMDQgbmFtZT17cHVibGlj LGRkbHRlc3Rfc2VzdmFyMDR9IGFyZ3M9e30KK0RST1AgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIw NTsKK05PVElDRTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5cGU9c2Vzc2lv biB2YXJpYWJsZSBpZGVudGl0eT1wdWJsaWMuZGRsdGVzdF9zZXN2YXIwNSBuYW1lPXtwdWJsaWMs ZGRsdGVzdF9zZXN2YXIwNX0gYXJncz17fQorRFJPUCBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA2 OworTk9USUNFOiAgTk9STUFMOiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNzaW9u IHZhcmlhYmxlIGlkZW50aXR5PXB1YmxpYy5kZGx0ZXN0X3Nlc3ZhcjA2IG5hbWU9e3B1YmxpYyxk ZGx0ZXN0X3Nlc3ZhcjA2fSBhcmdzPXt9CistLSBzaG91bGQgdG8gZmFpbAorRFJPUCBTQ0hFTUEg c2VzdmFydGVzdF9kZGw7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNjaGVtYSBzZXN2YXJ0ZXN0X2Rk bCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZh cmlhYmxlIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgZGVwZW5kcyBvbiBzY2hlbWEg c2VzdmFydGVzdF9kZGwKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBk ZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0RST1AgU0NIRU1BIHNlc3Zh cnRlc3RfZGRsIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFy aWFibGUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwMworTk9USUNFOiAgTk9STUFMOiBv cmlnPWYgbm9ybWFsPXQgaXN0ZW1wPWYgdHlwZT1zZXNzaW9uIHZhcmlhYmxlIGlkZW50aXR5PXNl c3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgbmFtZT17c2VzdmFydGVzdF9kZGwsZGRsdGVz dF9zZXN2YXIwM30gYXJncz17fQorRFJPUCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVu dF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkOworRFJPUCBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdn ZXJfcmVwb3J0X2Ryb3BwZWQoKTsKKy0tIHNob3VsZCBiZSBvaworRFJPUCBUWVBFIHNlc3ZhcnRl c3RfdHlwZV9kZGw7CitEUk9QIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitEUk9QIFRB QkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsOworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQor Q1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDcgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJ QUJMRSBkZGx0ZXN0X3Nlc3ZhcjA3IElTICdzb21lIHNlc3Npb24gdmFyaWFibGUgY29tbWVudCc7 CitTRUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAnZGRsdGVzdF9zZXN2YXIwNyc7CisgICAg ICAgIG9ial9kZXNjcmlwdGlvbiAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgc29tZSBzZXNzaW9uIHZhcmlhYmxlIGNvbW1lbnQKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSBkZGx0ZXN0X3Nlc3ZhcjA3OworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDgg QVMgaW50OworQUxURVIgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBSRU5BTUUgVE8gZGRsdGVz dF9zZXN2YXIwOF9yZW5hbWVkOworQ1JFQVRFIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKK0FMVEVS IFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZCBTRVQgU0NIRU1BIHNlc3ZhcnRlc3Rf ZGRsOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CitHUkFOVCBBTEwg T04gU0NIRU1BIHNlc3ZhcnRlc3RfZGRsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcl9kZGw7CistLSBzaG91bGQgZmFpbAor RFJPUCBWQVJJQUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQ7CitF UlJPUjogIG11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBzZXN2YXJ0ZXN0X2RkbC5k ZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitBTFRFUiBWQVJJ QUJMRSBzZXN2YXJ0ZXN0X2RkbC5kZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgT1dORVIgVE8gcmVn cmVzc192YXJpYWJsZV9vd25lcl9kZGw7CistLSBzaG91bGQgZmFpbAorRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXJfZGRsOworRVJST1I6ICByb2xlICJyZWdyZXNzX3ZhcmlhYmxlX293 bmVyX2RkbCIgY2Fubm90IGJlIGRyb3BwZWQgYmVjYXVzZSBzb21lIG9iamVjdHMgZGVwZW5kIG9u IGl0CitERVRBSUw6ICBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlIHNlc3ZhcnRlc3RfZGRsLmRk bHRlc3Rfc2VzdmFyMDhfcmVuYW1lZAorcHJpdmlsZWdlcyBmb3Igc2NoZW1hIHNlc3ZhcnRlc3Rf ZGRsCistLSBzaG91bGQgZmFpbCAtIG5vdCBvbiBzZWFyY2ggcGF0aAorRFJPUCBWQVJJQUJMRSBk ZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgImRkbHRl c3Rfc2VzdmFyMDhfcmVuYW1lZCIgZG9lcyBub3QgZXhpc3QKK1NFVCBTRUFSQ0hfUEFUSCBUTyAn c2VzdmFydGVzdF9kZGwnOworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rf c2VzdmFyMDhfcmVuYW1lZDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworU0VUIFJPTEUg VE8gREVGQVVMVDsKK0RST1AgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXJfZGRsOworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gREVGQVVMVDsKK0NS RUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkgQVMgaW50OworQ1JF QVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOSBBUyBpbnQ7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlICJkZGx0ZXN0X3Nlc3ZhcjA5IiBhbHJlYWR5IGV4aXN0cywg c2tpcHBpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDk7CitEUk9Q IFZBUklBQkxFIElGIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5OworTk9USUNFOiAgc2Vzc2lvbiB2 YXJpYWJsZSAiZGRsdGVzdF9zZXN2YXIwOSIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nCitDUkVB VEUgU0NIRU1BIHN2YXJ0ZXN0MDFfZGRsIENSRUFURSBWQVJJQUJMRSBzZXN2YXIxMCBBUyBpbnQ7 CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEgQVMgaW50OworQ1JFQVRF IFNDSEVNQSBzdmFydGVzdDAyX2RkbCBDUkVBVEUgVkFSSUFCTEUgc2VzdmFyMTAgQVMgaW50Owor LS0gc2hvdWxkIHRvIGZhaWwKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIx MCBBUyBpbnQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInNlc3ZhcjEwIiBhbHJlYWR5IGV4 aXN0cworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEgUkVOQU1FIFRPIHNl c3ZhcjEwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJzZXN2YXIxMCIgYWxyZWFkeSBleGlz dHMgaW4gc2NoZW1hICJzdmFydGVzdDAxX2RkbCIKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0MDJf ZGRsLnNlc3ZhcjEwIFNFVCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGw7CitFUlJPUjogIHNlc3Npb24g dmFyaWFibGUgInNlc3ZhcjEwIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgInN2YXJ0ZXN0MDFf ZGRsIgorRFJPUCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGwgQ0FTQ0FERTsKK05PVElDRTogIGRyb3Ag Y2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9wIGNhc2NhZGVzIHRvIHNl c3Npb24gdmFyaWFibGUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAKK2Ryb3AgY2FzY2FkZXMgdG8g c2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMQorRFJPUCBTQ0hFTUEgc3Zh cnRlc3QwMl9kZGwgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2 YXJpYWJsZSBzdmFydGVzdDAyX2RkbC5zZXN2YXIxMApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKaW5kZXggYTQyNGJlMmE2YmYuLjBmNzViZmFmNWFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKQEAgLTExNSw3ICsxMTUsNyBAQCB0ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2Rp bmcganNvbnBhdGgganNvbnBhdGhfZW5jb2RpbmcganNvbmJfanNvbnBhdGggc3FsanNvbgogIyBO QjogdGVtcC5zcWwgZG9lcyByZWNvbm5lY3RzIHdoaWNoIHRyYW5zaWVudGx5IHVzZSAyIGNvbm5l Y3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0 cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1w IGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJs ZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdp dGggeG1sCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiBy YW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5j ZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNl c3Npb25fdmFyaWFibGVzX2RkbAogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBncm91cCBvZiBw YXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5j eS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAppbmRleCA4ZDc0ZWQ3 MTIyYy4uNmMxOGI3Zjg0MGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVu ZGVuY3kuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCkBAIC0x MTQsMyArMTE0LDE3IEBAIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgT1dORUQg QlkgcmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jl c3NfZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCistLSBkZXBlbmRl bmN5IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBF IHZhcnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdmFydHlwZTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFp bjsKK0RST1AgVFlQRSB2YXJ0eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjg0NDQ2OWVjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCkBAIC0wLDAgKzEs MTUwIEBACitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CisKK0NSRUFURSBWQVJJQUJMRSBkZGx0 ZXN0X3Nlc3ZhcjAxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2 YXIwMiBBUyBpbnQ7CitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQ1JFQVRFIFZBUklB QkxFIHNlc3ZhcnRlc3RfZGRsLmRkbHRlc3Rfc2VzdmFyMDMgQVMgaW50OworCitTRUxFQ1QgcGdf aWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKQorICBG Uk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScsICd7ZGRsdGVzdF9z ZXN2YXIwMX0nLCAne30nKTsKKworU0VMRUNUIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRyZXNz KGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkKKyAgRlJPTSBwZ19nZXRfb2JqZWN0X2FkZHJlc3Mo J3Nlc3Npb24gdmFyaWFibGUnLCAne3B1YmxpYyxkZGx0ZXN0X3Nlc3ZhcjAyfScsICd7fScpOwor CitTRUxFQ1QgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoY2xhc3NpZCwgb2JqaWQsIG9i anN1YmlkKQorICBGUk9NIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc2Vzc2lvbiB2YXJpYWJsZScs ICd7c2VzdmFydGVzdF9kZGwsZGRsdGVzdF9zZXN2YXIwM30nLCAne30nKTsKKworRFJPUCBWQVJJ QUJMRSBkZGx0ZXN0X3Nlc3ZhcjAxOworRFJPUCBWQVJJQUJMRSBwdWJsaWMuZGRsdGVzdF9zZXN2 YXIwMjsKKworQ1JFQVRFIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBUyAoYSBpbnQsIGIgaW50 KTsKK0NSRUFURSBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsIEFTIGludDsKK0NSRUFURSBU QUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCAoYSBpbnQsIGIgaW50KTsKKworLyogcHJlZml4IGRk bHRlc3RfIHNob3VsZCBub3QgYmUgdXNlZCBldmVyIGluIGFub3RoZXIgdGVzdHMgKi8KK0NSRUFU RSBWQVJJQUJMRSBkZGx0ZXN0X3Nlc3ZhcjA0IEFTIHNlc3ZhcnRlc3RfdHlwZV9kZGw7CitDUkVB VEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNSBBUyBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitD UkVBVEUgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwNiBBUyBzZXN2YXJ0ZXN0X3RhYmxlX2RkbDsK KworLS0gYWRkIG5ldyBmaWVsZCB0byBjb21wb3NpdGUgdmFsdWUgaXMgc3VwcG9ydGVkLAorLS0g Y2hhbmdlIHR5cGUgb2YgZmllbGQgaXMgcHJvaGliaXRlZAorCistLSBzaG91bGQgYmUgb2sKK0FM VEVSIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBREQgQVRUUklCVVRFIGMgaW50OworQUxURVIg VEFCTEUgc2VzdmFydGVzdF90YWJsZV9kZGwgQUREIENPTFVNTiBjIGludDsKKworLS0gc2hvdWxk IGZhaWwKK0FMVEVSIFRZUEUgc2VzdmFydGVzdF90eXBlX2RkbCBBTFRFUiBBVFRSSUJVVEUgYiBU WVBFIG51bWVyaWM7CitBTFRFUiBUQUJMRSBzZXN2YXJ0ZXN0X3RhYmxlX2RkbCBBTFRFUiBDT0xV TU4gYiBUWVBFIG51bWVyaWM7CitBTFRFUiBET01BSU4gc2VzdmFydGVzdF9kb21haW5fZGRsIEFE RCBDSEVDSyh2YWx1ZSA8PiAxMDApOworCistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHNlc3Zh cnRlc3RfdHlwZV9kZGw7CitEUk9QIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitEUk9Q IFRBQkxFIHNlc3ZhcnRlc3RfdGFibGVfZGRsOworCistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1 cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBv cnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVj b3JkOworQkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ry b3BwZWRfb2JqZWN0cygpCisgIExPT1AKKyAgICBJRiByLmNsYXNzaWQgPSAncGdfdmFyaWFibGUn OjpyZWdjbGFzcyBBTkQKKyAgICAgICByLmFkZHJlc3NfbmFtZXNbMl0gbGlrZSAnZGRsdGVzdF9z ZXN2YXIlJworICAgIFRIRU4KKyAgICAgIFJBSVNFIE5PVElDRQorICAgICAgICAgJ05PUk1BTDog b3JpZz0lIG5vcm1hbD0lIGlzdGVtcD0lIHR5cGU9JSBpZGVudGl0eT0lIG5hbWU9JSBhcmdzPSUn LAorICAgICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVj dF90eXBlLAorICAgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5h ZGRyZXNzX2FyZ3M7CisgICAgRU5EIElGOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmln Z2VyX3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJ QUJMRScsICdEUk9QIFNDSEVNQScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJp Z2dlcl9yZXBvcnRfZHJvcHBlZCgpOworCitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDQ7 CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDU7CitEUk9QIFZBUklBQkxFIGRkbHRlc3Rf c2VzdmFyMDY7CisKKy0tIHNob3VsZCB0byBmYWlsCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2Rk bDsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbCBDQVNDQURF OworCitEUk9QIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0 X2Ryb3BwZWQ7CisKK0RST1AgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9w cGVkKCk7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBUWVBFIHNlc3ZhcnRlc3RfdHlwZV9kZGw7 CitEUk9QIERPTUFJTiBzZXN2YXJ0ZXN0X2RvbWFpbl9kZGw7CitEUk9QIFRBQkxFIHNlc3ZhcnRl c3RfdGFibGVfZGRsOworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFS SUFCTEUgZGRsdGVzdF9zZXN2YXIwNyBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIGRkbHRl c3Rfc2VzdmFyMDcgSVMgJ3NvbWUgc2Vzc2lvbiB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBw Z19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFy aWFibGUgV0hFUkUgdmFybmFtZSA9ICdkZGx0ZXN0X3Nlc3ZhcjA3JzsKK0RST1AgVkFSSUFCTEUg ZGRsdGVzdF9zZXN2YXIwNzsKKworQ1JFQVRFIFZBUklBQkxFIGRkbHRlc3Rfc2VzdmFyMDggQVMg aW50OworQUxURVIgVkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOCBSRU5BTUUgVE8gZGRsdGVzdF9z ZXN2YXIwOF9yZW5hbWVkOworCitDUkVBVEUgU0NIRU1BIHNlc3ZhcnRlc3RfZGRsOworQUxURVIg VkFSSUFCTEUgZGRsdGVzdF9zZXN2YXIwOF9yZW5hbWVkIFNFVCBTQ0hFTUEgc2VzdmFydGVzdF9k ZGw7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCitHUkFOVCBB TEwgT04gU0NIRU1BIHNlc3ZhcnRlc3RfZGRsIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRs OworCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyX2RkbDsKKworLS0gc2hvdWxk IGZhaWwKK0RST1AgVkFSSUFCTEUgc2VzdmFydGVzdF9kZGwuZGRsdGVzdF9zZXN2YXIwOF9yZW5h bWVkOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitBTFRFUiBWQVJJQUJMRSBzZXN2YXJ0ZXN0 X2RkbC5kZGx0ZXN0X3Nlc3ZhcjA4X3JlbmFtZWQgT1dORVIgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcl9kZGw7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9v d25lcl9kZGw7CisKKy0tIHNob3VsZCBmYWlsIC0gbm90IG9uIHNlYXJjaCBwYXRoCitEUk9QIFZB UklBQkxFIGRkbHRlc3Rfc2VzdmFyMDhfcmVuYW1lZDsKKworU0VUIFNFQVJDSF9QQVRIIFRPICdz ZXN2YXJ0ZXN0X2RkbCc7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBkZGx0ZXN0 X3Nlc3ZhcjA4X3JlbmFtZWQ7CisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworCitTRVQg Uk9MRSBUTyBERUZBVUxUOworCitEUk9QIFNDSEVNQSBzZXN2YXJ0ZXN0X2RkbDsKKworRFJPUCBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXJfZGRsOworCitTRVQgbG9nX3N0YXRlbWVudCBUTyBE RUZBVUxUOworCitDUkVBVEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyBkZGx0ZXN0X3Nlc3ZhcjA5 IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDkg QVMgaW50OworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgZGRsdGVzdF9zZXN2YXIwOTsKK0RST1Ag VkFSSUFCTEUgSUYgRVhJU1RTIGRkbHRlc3Rfc2VzdmFyMDk7CisKK0NSRUFURSBTQ0hFTUEgc3Zh cnRlc3QwMV9kZGwgQ1JFQVRFIFZBUklBQkxFIHNlc3ZhcjEwIEFTIGludDsKK0NSRUFURSBWQVJJ QUJMRSBzdmFydGVzdDAxX2RkbC5zZXN2YXIxMSBBUyBpbnQ7CitDUkVBVEUgU0NIRU1BIHN2YXJ0 ZXN0MDJfZGRsIENSRUFURSBWQVJJQUJMRSBzZXN2YXIxMCBBUyBpbnQ7CisKKy0tIHNob3VsZCB0 byBmYWlsCitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTAgQVMgaW50Owor QUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QwMV9kZGwuc2VzdmFyMTEgUkVOQU1FIFRPIHNlc3ZhcjEw OworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QwMl9kZGwuc2VzdmFyMTAgU0VUIFNDSEVNQSBzdmFy dGVzdDAxX2RkbDsKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QwMV9kZGwgQ0FTQ0FERTsKK0RST1Ag U0NIRU1BIHN2YXJ0ZXN0MDJfZGRsIENBU0NBREU7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0Cmlu ZGV4IDI2ZmM5ZjY4MTBkLi5lYzQ5OWJjZjI4NyAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTU2Miw2ICs1NjIsNyBAQCBDcmVhdGVSb2xlU3RtdAogQ3JlYXRlU2NoZW1hU3RtdAogQ3Jl YXRlU2NoZW1hU3RtdENvbnRleHQKIENyZWF0ZVNlcVN0bXQKK0NyZWF0ZVNlc3Npb25WYXJTdG10 CiBDcmVhdGVTdGF0c1N0bXQKIENyZWF0ZVN0bXQKIENyZWF0ZVN0bXRDb250ZXh0Ci0tIAoyLjQ5 LjAKCg== --0000000000005eda480636a965c6 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250603-2-0001-introduce-new-class-catalog-pg_variable.patch" Content-Disposition: attachment; filename="v20250603-2-0001-introduce-new-class-catalog-pg_variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mbgg9eey14 RnJvbSA3YzVlMmIxYTdiZjBkMTc0YTRkODA1Y2E1ZWUwM2JmZGY4ZjM4YjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI4IE1heSAyMDI1IDA4OjMwOjI1ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMS8xNV0gaW50cm9kdWNlIG5ldyBjbGFzcyAoY2F0YWxvZykgcGdfdmFyaWFibGUKClRo aXMgdGFibGUgaG9sZHMgbWV0YWRhdGEgYWJvdXQgc2Vzc2lvbiB2YXJpYWJsZXMgY3JlYXRlZCBi eQpjb21tYW5kIENSRUFURSBWQVJJQUJMRSwgYW5kIGRyb3BwZWQgYnkgY29tbWFuZCBEUk9QIFZB UklBQkxFLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgIHwgMTMz ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlICAgICAg ICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICB8ICAg MSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICB8IDE2OCArKysrKysr KysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAg ICB8ICAgMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgfCAgIDEg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgfCAgOTYgKysrKysrKysr KysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IHwgICA0ICsKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgIHwgICAyICsKIDkgZmlsZXMgY2hh bmdlZCwgNDA4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGNiZDRl NDBhMzIwLi42YWRhNTljNzk4YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTM2OSw2ICszNjksMTEgQEAK ICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXVzZXItbWFwcGluZyI+PHN0 cnVjdG5hbWU+cGdfdXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAg ICAgPGVudHJ5Pm1hcHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVpZ24gc2VydmVyczwvZW50cnk+CiAg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0 YWxvZy1wZy12YXJpYWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC9s aW5rPjwvZW50cnk+CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2YXJpYWJsZXM8L2VudHJ5PgorICAg ICA8L3Jvdz4KICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC05Nzc5 LDQgKzk3ODQsMTMyIEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+CiAgPC9z ZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRsZT48c3Ry dWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0g em9uZT0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJsZTwvcHJp bWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0 bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0Cisg ICBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48 c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8 dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAg IERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90 aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+Cisg ICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48c3RydWN0 bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0 ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0 aGUgdmFyaWFibGUncyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFy Y3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX2xzbjwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIExTTiBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgdGhl IHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVfbHNu PC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+ IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1lIHVuaXF1ZQorICAgICAgIGlkZW50aWZpZXIgKDxz dHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiBhbG9uZSBpcyBub3QgZW5vdWdoLCBzaW5jZQor ICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBjYW4gZ2V0IHJldXNlZCkuCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAg ICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2Vzc2lvbiB2 YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lc3BhY2U8L3N0cnVj dGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2Vu ZD0iY2F0YWxvZy1wZy1uYW1lc3BhY2UiPjxzdHJ1Y3RuYW1lPnBnX25hbWVzcGFjZTwvc3RydWN0 bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhlIG5hbWVzcGFjZSB0aGF0IGNv bnRhaW5zIHRoaXMgdmFyaWFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyb3du ZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxp bmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3Ry dWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9mIHRoZSB2YXJpYWJsZQorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0 PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgPHN0cnVjdGZpZWxk PnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IHJlY29yZHMgdHlwZS1zcGVjaWZpYyBkYXRhCisgICAg ICAgc3VwcGxpZWQgYXQgdmFyaWFibGUgY3JlYXRpb24gdGltZSAoZm9yIGV4YW1wbGUsIHRoZSBt YXhpbXVtCisgICAgICAgbGVuZ3RoIG9mIGEgPHR5cGU+dmFyY2hhcjwvdHlwZT4gY29sdW1uKS4g IEl0IGlzIHBhc3NlZCB0bworICAgICAgIHR5cGUtc3BlY2lmaWMgaW5wdXQgZnVuY3Rpb25zIGFu ZCBsZW5ndGggY29lcmNpb24gZnVuY3Rpb25zLgorICAgICAgIFRoZSB2YWx1ZSB3aWxsIGdlbmVy YWxseSBiZSAtMSBmb3IgdHlwZXMgdGhhdCBkbyBub3QgbmVlZCA8c3RydWN0ZmllbGQ+dmFydHlw bW9kPC9zdHJ1Y3RmaWVsZD4uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxh dGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8 bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29sbGF0 aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0aW9u IG9mIHRoZSB2YXJpYWJsZSwgb3IgemVybyBpZiB0aGUgdmFyaWFibGUgaXMKKyAgICAgICBub3Qg b2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ dmFyYWNsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YWNsaXRlbVtdPC90eXBlPgorICAgICAgPC9wYXJh PgorICAgICAgPHBhcmE+CisgICAgICAgQWNjZXNzIHByaXZpbGVnZXM7IHNlZQorICAgICAgIDx4 cmVmIGxpbmtlbmQ9InNxbC1ncmFudCIvPiBhbmQKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwt cmV2b2tlIi8+CisgICAgICAgZm9yIGRldGFpbHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3Nl Y3QxPgogPC9jaGFwdGVyPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggYzA5MDA5NGVkMDguLjJjMjBk NjBkYjE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTQ1LDYgKzQ1LDcgQEAgT0JKUyA9IFwKIAlw Z19zaGRlcGVuZC5vIFwKIAlwZ19zdWJzY3JpcHRpb24ubyBcCiAJcGdfdHlwZS5vIFwKKwlwZ192 YXJpYWJsZS5vIFwKIAlzdG9yYWdlLm8gXAogCXRvYXN0aW5nLm8KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24u YnVpbGQKaW5kZXggMTk1OGVhOTIzOGEuLmVkNDRjODc3ZmNhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24u YnVpbGQKQEAgLTMyLDYgKzMyLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncGdf c2hkZXBlbmQuYycsCiAgICdwZ19zdWJzY3JpcHRpb24uYycsCiAgICdwZ190eXBlLmMnLAorICAn cGdfdmFyaWFibGUuYycsCiAgICdzdG9yYWdlLmMnLAogICAndG9hc3RpbmcuYycsCiApCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmJkNmEyOWE3OWU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z192YXJpYWJsZS5jCkBAIC0wLDAgKzEsMTY4IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBwZ192YXJpYWJsZS5jCisgKgkJc2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisj aW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKKyNpbmNs dWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVj dGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIK KyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogQ3JlYXRlcyBlbnRyeSBpbiBw Z192YXJpYWJsZSB0YWJsZQorICovCitPYmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUoY29u c3QgY2hhciAqdmFyTmFtZSwKKwkJCQlPaWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJUeXBl LAorCQkJCWludDMyIHZhclR5cG1vZCwKKwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZhckNv bGxhdGlvbiwKKwkJCQlib29sIGlmX25vdF9leGlzdHMpCit7CisJTmFtZURhdGEJdmFybmFtZTsK Kwlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19w Z192YXJpYWJsZV07CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisJVHVwbGVEZXNj CXR1cGRlc2M7CisJT2JqZWN0QWRkcmVzcyBteXNlbGYsCisJCQkJcmVmZXJlbmNlZDsKKwlPYmpl Y3RBZGRyZXNzZXMgKmFkZHJzOworCU9pZAkJCXZhcmlkOworCisJQXNzZXJ0KHZhck5hbWUpOwor CUFzc2VydChPaWRJc1ZhbGlkKHZhck5hbWVzcGFjZSkpOworCUFzc2VydChPaWRJc1ZhbGlkKHZh clR5cGUpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJPd25lcikpOworCisJcmVsID0gdGFibGVf b3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBD aGVjayBmb3IgZHVwbGljYXRlcy4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgcmVhbGx5IHByZXZl bnQKKwkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0byBwcm92aWRlIG5pY2VyIGVycm9y IG1lc3NhZ2UgaW4gY29tbW9uCisJICogY2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlvbiBpcyB0aGUg dW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KKwkgKi8KKwlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlz dHMyKFZBUklBQkxFTkFNRU5TUCwKKwkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSh2YXJOYW1lKSwK KwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNlKSkpCisJeworCQlpZiAoaWZf bm90X2V4aXN0cykKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RV UExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBh bHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJCXZhck5hbWUpKSk7CisJCWVsc2UKKwkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCks CisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwK KwkJCQkJCQl2YXJOYW1lKSkpOworCisJCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9j ayk7CisKKwkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNzOworCX0KKworCW1lbXNldCh2YWx1 ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVs bHMpKTsKKworCW5hbWVzdHJjcHkoJnZhcm5hbWUsIHZhck5hbWUpOworCisJdmFyaWQgPSBHZXRO ZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVf b2lkKTsKKworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bSh2YXJpZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY3JlYXRlX2xzbiAtIDFd ID0gTFNOR2V0RGF0dW0oR2V0WExvZ0luc2VydFJlY1B0cigpKTsKKwl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJnZhcm5hbWUpOworCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJO YW1lc3BhY2UpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVj dElkR2V0RGF0dW0odmFyVHlwZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9k IC0gMV0gPSBJbnQzMkdldERhdHVtKHZhclR5cG1vZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyb3duZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOworCXZhbHVlc1tB bnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJD b2xsYXRpb24pOworCisJbnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7 CisKKwl0dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVhcF9mb3Jt X3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWws IHR1cCk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3X29iamVj dF9hZGRyZXNzZXMoKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJsZVJlbGF0 aW9uSWQsIHZhcmlkKTsKKworCS8qIGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJT2JqZWN0 QWRkcmVzc1NldChyZWZlcmVuY2VkLCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1lc3BhY2Up OworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyog ZGVwZW5kZW5jeSBvbiB1c2VkIHR5cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQs IFR5cGVSZWxhdGlvbklkLCB2YXJUeXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJl ZmVyZW5jZWQsIGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICovCisJaWYg KE9pZElzVmFsaWQodmFyQ29sbGF0aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVGQVVMVF9D T0xMQVRJT05fT0lEKQorCXsKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb2xsYXRp b25SZWxhdGlvbklkLCB2YXJDb2xsYXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3Mo JnJlZmVyZW5jZWQsIGFkZHJzKTsKKwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5k ZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9vYmplY3Rf YWRkcmVzc2VzKGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwlyZWNvcmRE ZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CisK KwkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLworCXJlY29yZERlcGVuZGVuY3lPbkN1cnJl bnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOworCisJaGVhcF9mcmVldHVwbGUodHVwKTsKKwor CS8qIHBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IGZ1bmN0aW9uICovCisJSW52b2tlT2JqZWN0 UG9zdENyZWF0ZUhvb2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCk7CisKKwl0YWJsZV9j bG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG15c2VsZjsKK30KKworLyoK KyAqIERyb3AgdmFyaWFibGUgYnkgT0lECisgKi8KK3ZvaWQKK0Ryb3BWYXJpYWJsZUJ5SWQoT2lk IHZhcmlkKQoreworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCisJcmVsID0gdGFi bGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisK KwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJQ2F0YWxvZ1R1cGxlRGVsZXRl KHJlbCwgJnR1cC0+dF9zZWxmKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJdGFibGVf Y2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDJi YmM3ODA1ZmUzLi5mOTg3NjBkZTYzNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9N YWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSw4 IEBAIENBVEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAog CXBnX3B1YmxpY2F0aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdfc3Vic2Ny aXB0aW9uX3JlbC5oCisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192YXJpYWJsZS5oCiAK IEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkKIApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZWMxY2Y0NjdmNmYuLjgxMzk4ZWZhN2M5IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbWVzb24uYnVpbGQKQEAgLTY5LDYgKzY5LDcgQEAgY2F0YWxvZ19oZWFkZXJzID0gWwog ICAncGdfcHVibGljYXRpb25fcmVsLmgnLAogICAncGdfc3Vic2NyaXB0aW9uLmgnLAogICAncGdf c3Vic2NyaXB0aW9uX3JlbC5oJywKKyAgJ3BnX3ZhcmlhYmxlLmgnLAogXQogCiAjIFRoZSAuZGF0 IGZpbGVzIHdlIG5lZWQgY2FuIGp1c3QgYmUgbGlzdGVkIGFscGhhYmV0aWNhbGx5LgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li4xNWY1MzA4OTRjNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaApAQCAtMCwwICsxLDk2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBw Z192YXJpYWJsZS5oCisgKgkgIGRlZmluaXRpb24gb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc3lzdGVt IGNhdGFsb2cgKHBnX3ZhcmlhYmxlcykKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorICoKKyAq IE5PVEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRl cml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisjaWZuZGVmIFBHX1ZBUklBQkxFX0gKKyNkZWZpbmUgUEdfVkFSSUFCTEVfSAorCisjaW5j bHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNp bmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zh cmlhYmxlX2QuaCIKKyNpbmNsdWRlICJ1dGlscy9hY2wuaCIKKworLyogLS0tLS0tLS0tLS0tLS0t LQorICoJCXBnX3ZhcmlhYmxlIGRlZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJ dHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfdmFyaWFibGUKKyAqIC0tLS0tLS0tLS0tLS0tLS0K KyAqLworQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKK3sKKwlP aWQJCQlvaWQ7CQkJLyogb2lkICovCisKKwkvKiBPSUQgb2YgZW50cnkgaW4gcGdfdHlwZSBmb3Ig dmFyaWFibGUncyB0eXBlICovCisJT2lkCQkJdmFydHlwZSBCS0lfTE9PS1VQKHBnX3R5cGUpOwor CisJLyoKKwkgKiBVc2VkIGZvciBpZGVudGl0eSBjaGVjayBbb2lkLCBjcmVhdGVfbHNuXS4KKwkg KgorCSAqIFRoaXMgY29sdW1uIG9mIHRoZSA4LWJ5dGUgWGxvZ1JlY1B0ciB0eXBlIHNob3VsZCBi ZSBhdCBhbiBhZGRyZXNzIHRoYXQKKwkgKiBpcyBkaXZpc2libGUgYnkgOCwgYnV0IGJlZm9yZSBh bnkgY29sdW1uIG9mIHR5cGUgTmFtZURhdGEuCisJICovCisJWExvZ1JlY1B0cgl2YXJjcmVhdGVf bHNuOworCisJLyogdmFyaWFibGUgbmFtZSAqLworCU5hbWVEYXRhCXZhcm5hbWU7CisKKwkvKiBP SUQgb2YgbmFtZXNwYWNlIGNvbnRhaW5pbmcgdmFyaWFibGUgY2xhc3MgKi8KKwlPaWQJCQl2YXJu YW1lc3BhY2UgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOworCisJLyogdmFyaWFibGUgb3duZXIg Ki8KKwlPaWQJCQl2YXJvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisKKwkvKiB0eXBtb2Qg Zm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEp OworCisJLyogdmFyaWFibGUgY29sbGF0aW9uICovCisJT2lkCQkJdmFyY29sbGF0aW9uIEJLSV9E RUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7CisKKworI2lmZGVmIENBVEFM T0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisKKwkv KiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KKwlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RFRkFVTFQo X251bGxfKTsKKworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOworCisvKiAtLS0tLS0t LS0tLS0tLS0tCisgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIg dG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVsYXRp b24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFfcGdfdmFyaWFi bGUgKkZvcm1fcGdfdmFyaWFibGU7CisKK0RFQ0xBUkVfVE9BU1QocGdfdmFyaWFibGUsIDkyMjMs IDkyMjQpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3ZhcmlhYmxlX29pZF9pbmRl eCwgOTIyNSwgVmFyaWFibGVPaWRJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUob2lkIG9pZF9v cHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4 LCA5MjI2LCBWYXJpYWJsZU5hbWVOc3BJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUodmFybmFt ZSBuYW1lX29wcywgdmFybmFtZXNwYWNlIG9pZF9vcHMpKTsKKworTUFLRV9TWVNDQUNIRShWQVJJ QUJMRU5BTUVOU1AsIHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4LCA4KTsKK01BS0VfU1lT Q0FDSEUoVkFSSUFCTEVPSUQsIHBnX3ZhcmlhYmxlX29pZF9pbmRleCwgOCk7CisKK2V4dGVybiBP YmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAorCQkJCQkJ CQkJIE9pZCB2YXJOYW1lc3BhY2UsCisJCQkJCQkJCQkgT2lkIHZhclR5cGUsCisJCQkJCQkJCQkg aW50MzIgdmFyVHlwbW9kLAorCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKKwkJCQkJCQkJCSBPaWQg dmFyQ29sbGF0aW9uLAorCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cyk7CisKK2V4dGVybiB2 b2lkIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1ZB UklBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXggMjE1 ZWI4OTliZTMuLmQ5OTUzMzIxNDAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5z Lm91dApAQCAtMjY2LDMgKzI2Niw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlv biB7c3ViZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1 YnNjcmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tp bmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9PiBwZ19j bGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcnR5cGV9ID0+IHBn X3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJuYW1lc3BhY2V9 ID0+IHBnX25hbWVzcGFjZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zh cm93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxl IHt2YXJjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAppbmRleCBhODM0NmNkYTYzMy4uMjZmYzlmNjgxMGQgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC05MDcsNiArOTA3LDcgQEAgRm9ybURhdGFfcGdfdHNfcGFyc2VyCiBGb3JtRGF0 YV9wZ190c190ZW1wbGF0ZQogRm9ybURhdGFfcGdfdHlwZQogRm9ybURhdGFfcGdfdXNlcl9tYXBw aW5nCitGb3JtRGF0YV9wZ192YXJpYWJsZQogRm9ybUV4dHJhRGF0YV9wZ19hdHRyaWJ1dGUKIEZv cm1fcGdfYWdncmVnYXRlCiBGb3JtX3BnX2FtCkBAIC05NjYsNiArOTY3LDcgQEAgRm9ybV9wZ190 c19wYXJzZXIKIEZvcm1fcGdfdHNfdGVtcGxhdGUKIEZvcm1fcGdfdHlwZQogRm9ybV9wZ191c2Vy X21hcHBpbmcKK0Zvcm1fcGdfdmFyaWFibGUKIEZvcm1hdE5vZGUKIEZyZWVCbG9ja051bWJlckFy cmF5CiBGcmVlTGlzdERhdGEKLS0gCjIuNDkuMAoK --0000000000005eda480636a965c6--