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 1rRsVd-009tSz-Rw for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Jan 2024 11:30:35 +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 1rRsVb-003T70-Rl for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Jan 2024 11:30:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rRsVb-003T6o-4E for pgsql-hackers@lists.postgresql.org; Mon, 22 Jan 2024 11:30:31 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rRsVX-00370K-PB for pgsql-hackers@postgresql.org; Mon, 22 Jan 2024 11:30:30 +0000 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-33922d2cb92so2705803f8f.1 for ; Mon, 22 Jan 2024 03:30:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705923026; x=1706527826; darn=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=cXTZvzkSQp2EHKlTaCjyOLdKC+R/+O8Q8tWCCm97GJk=; b=A6vGSF1QeTiR3PelK68QbyLrlqpbWHipMp0qSBsj+Haq2hQNiPUvs5nqnTo99m0Jb8 AQyTPg2Je4pTsTEKexh/XqYTIY4GKNp9A7ECJQLxpPkh3EmO1ENGSi4t9u6X2lMS/EVg jhvwxH+agGDlIQp3BDNk/sBHlBiHiaVhGDEVUYhzZ0ZTVJPdxqKxoTmkrBK/B2b9JcCU R3iXOQjy2yu/1jJ8JEUQxiInj8Vcqu3Wod5OxrFHQJkwoSB/jEfTAeZ559R0oIF1y/jV YvHyOEA3GuJW+BE+OrubDTaag1h3yT2pUB0gw89Vz+oX/za87/aEbJURn2henmHiIdYG g6gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705923026; x=1706527826; 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=cXTZvzkSQp2EHKlTaCjyOLdKC+R/+O8Q8tWCCm97GJk=; b=otDeeLZ6LfhdiTyW0i3gwB515q6yz3YasXbhSfYZC2vmg+LK92qp+SKGri0aSP3Q7m KBnkuAKuWgcUfnbAmxk+B44y8Fh6P6R7mwujkcK2/l6NdT1DkeSUSZj+ppCeECEh60US Ira+6/jglknE8RYBxzDX/QJNK7lwSQTvb5WgZDiXFppZWeWVuOjTfQjzIcDQBH/8Lhu3 vx6wuurEjWi2r8c7weG6Ls20oshKv/1uqEBxYrW3CeS/u5mHbJ2d5+Wpdks8qZOr4wV5 1wRtLaeqniZDcbC9318O2PxpOD+t/x5pi34NmuGGd1K4Hmyy/6P/IHfdQSIORNdsvgA6 RL5Q== X-Gm-Message-State: AOJu0YyadM3alWmgr08a3wqCWBpx3vASA5je4r8dVVIHToD5ke+R4EIN 6+jd27V5Iz7oWs0Y8b6SzQ6fAAL63qPuf4VRURdFzp63Im3f4fhGY1NQ5oFPrsrpwakiHW5roRG CSlNWpOFnDESKxRM3tT8Xrmea91c= X-Google-Smtp-Source: AGHT+IFfvxkVaxuYLfLc3yJv5m94X9nfvn4NUKzwrBD9uRLJEG/06A4AWhuVnnAyJvkntaIQ3k3XkPW29UxGoo1X7cI= X-Received: by 2002:adf:a1dc:0:b0:337:5baa:ec9d with SMTP id v28-20020adfa1dc000000b003375baaec9dmr1304610wrv.8.1705923026182; Mon, 22 Jan 2024 03:30:26 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: shveta malik Date: Mon, 22 Jan 2024 17:00:12 +0530 Message-ID: Subject: Re: Synchronizing slots from primary to standby To: Amit Kapila Cc: Bertrand Drouvot , Masahiko Sawada , "Zhijie Hou (Fujitsu)" , Dilip Kumar , Peter Smith , Nisha Moond , "Hayato Kuroda (Fujitsu)" , Bharath Rupireddy , Peter Eisentraut , Bruce Momjian , Ashutosh Sharma , Andres Freund , pgsql-hackers , Ajin Cherian , Alvaro Herrera , shveta malik Content-Type: multipart/mixed; boundary="000000000000fde609060f87276b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000fde609060f87276b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jan 22, 2024 at 3:10=E2=80=AFPM Amit Kapila wrote: > > minor comments on the patch: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D PFA v65 addressing the comments. Addressed comments by Peter in [1], comments by Hou-San in [2], comments by Amit in [3] and [4] TODO: Analyze the issue reported by Swada-san in [5] (pt 2) Disallow subscription creation on standby with failover=3Dtrue (as we do not support sync on cascading standbys) [1]: https://www.postgresql.org/message-id/CAHut%2BPt5Pk_xJkb54oahR%2Bf9oaw= gfnmbpewvkZPgnRhoJ3gkYg%40mail.gmail.com [2]: https://www.postgresql.org/message-id/OS0PR01MB57160C7184E17C6765AAE38= 294752%40OS0PR01MB5716.jpnprd01.prod.outlook.com [3]: https://www.postgresql.org/message-id/CAA4eK1JPB-zpGYTbVOP5Qp26tNQPMjD= uYzNZ%2Ba9RFiN5nE1tEA%40mail.gmail.com [4]: https://www.postgresql.org/message-id/CAA4eK1Jhy1-bsu6vc0%3DNja7aw5-EK= _%3D101pnnuM3ATqTA8%2B%3DSg%40mail.gmail.com [5]: https://www.postgresql.org/message-id/CAD21AoBgzONdt3o5mzbQ4MtqAE%3DWs= eiXUOq0LMqne-nWGjZBsA%40mail.gmail.com thanks Shveta --000000000000fde609060f87276b Content-Type: application/octet-stream; name="v65-0004-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Disposition: attachment; filename="v65-0004-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lroufv793 RnJvbSA3MDkyZTBkOGJiMWRlZDY4NDM3Y2Y1YzM5MzVhY2NkYzZkMGY4NWEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjIgSmFuIDIwMjQgMTU6NDk6NDkgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NSA0LzZdIEFsbG93IGxvZ2ljYWwgd2Fsc2VuZGVycyB0byB3YWl0IGZvciB0aGUgcGh5c2ljYWwK ClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG1lY2hhbmlzbSB0byBlbnN1cmUgdGhhdCBwaHlzaWNh bCBzdGFuZGJ5IHNlcnZlcnMsCndoaWNoIGFyZSBwb3RlbnRpYWwgZmFpbG92ZXIgY2FuZGlkYXRl cywgaGF2ZSByZWNlaXZlZCBhbmQgZmx1c2hlZCBjaGFuZ2VzCmJlZm9yZSBtYWtpbmcgdGhlbSB2 aXNpYmxlIHRvIHN1YnNjcmliZXJzLiBCeSBkb2luZyBzbywgaXQgZ3VhcmFudGVlcyB0aGF0CnRo ZSBwcm9tb3RlZCBzdGFuZGJ5IHNlcnZlciBpcyBub3QgbGFnZ2luZyBiZWhpbmQgdGhlIHN1YnNj cmliZXJzIHdoZW4gYQpmYWlsb3ZlciBpcyBuZWNlc3NhcnkuCgpBIG5ldyBwYXJhbWV0ZXIgbmFt ZWQgc3RhbmRieV9zbG90X25hbWVzIGlzIGludHJvZHVjZWQuIFRoZSBsb2dpY2FsCndhbHNlbmRl ciBub3cgZ3VhcmFudGVlcyB0aGF0IGFsbCBsb2NhbCBjaGFuZ2VzIGFyZSBzZW50IGFuZCBmbHVz aGVkIHRvCnRoZSBzdGFuZGJ5IHNlcnZlcnMgY29ycmVzcG9uZGluZyB0byB0aGUgcmVwbGljYXRp b24gc2xvdHMgc3BlY2lmaWVkIGluCnN0YW5kYnlfc2xvdF9uYW1lcyBiZWZvcmUgc2VuZGluZyB0 aG9zZSBjaGFuZ2VzIHRvIHRoZSBzdWJzY3JpYmVyLgoKQWRkaXRpb25hbGx5LCBUaGUgU1FMIGZ1 bmN0aW9ucyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgYW5kCnBnX3JlcGxpY2F0aW9uX3Ns b3RfYWR2YW5jZSBhcmUgbW9kaWZpZWQgdG8gd2FpdCBmb3IgdGhlIHJlcGxpY2F0aW9uIHNsb3Rz Cm1lbnRpb25lZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0Y2ggdXAgYmVmb3JlIHJldHVy bmluZyB0aGUgY2hhbmdlcwp0byB0aGUgdXNlci4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwgICAgICAgICAgICAgICAgICAgICAgfCAgMjQgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbCAgICAgICAgICAgICB8ICAgOSArLQogLi4uL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbGZ1bmNzLmMgICAgICAgIHwgIDEzICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Ns b3QuYyAgICAgICAgICAgICAgICB8IDM0MiArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAxMTEgKysrKystCiAuLi4vdXRpbHMv YWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgIDE0ICsKIHNyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgMiArCiBzcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9zbG90LmggICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmggICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHNlbmRlcl9wcml2YXRlLmggICB8ICAgNyArCiBzcmMvaW5jbHVkZS91dGlscy9ndWNf aG9va3MuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24u YnVpbGQgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xv Z2ljYWxfZGVjb2RpbmcucGwgICB8ICAgMyArLQogLi4uL3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJf c2xvdHNfc3luYy5wbCAgICAgIHwgMjMyICsrKysrKysrKystLQogMTYgZmlsZXMgY2hhbmdlZCwg NzM4IGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBiZDJkMmY4 NzFlLi43NjM0NWU0MzNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC00NDIwLDYgKzQ0MjAsMzAgQEAgcmVzdG9y ZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAiJXAiJyAgIyBX aW5kb3dzCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8 dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIiB4cmVmbGFiZWw9InN0YW5k Ynlfc2xvdF9uYW1lcyI+CisgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8 L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rl cm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIExpc3Qgb2YgcGh5 c2ljYWwgc2xvdHMgZ3VhcmFudGVlcyB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgd2l0 aAorICAgICAgICBmYWlsb3ZlciBlbmFibGVkIGRvIG5vdCBjb25zdW1lIGNoYW5nZXMgdW50aWwg dGhvc2UgY2hhbmdlcyBhcmUgcmVjZWl2ZWQKKyAgICAgICAgYW5kIGZsdXNoZWQgdG8gY29ycmVz cG9uZGluZyBwaHlzaWNhbCBzdGFuZGJ5cy4gSWYgYSBsb2dpY2FsIHJlcGxpY2F0aW9uCisgICAg ICAgIGNvbm5lY3Rpb24gaXMgbWVhbnQgdG8gc3dpdGNoIHRvIGEgcGh5c2ljYWwgc3RhbmRieSBh ZnRlciB0aGUgc3RhbmRieSBpcworICAgICAgICBwcm9tb3RlZCwgdGhlIHBoeXNpY2FsIHJlcGxp Y2F0aW9uIHNsb3QgZm9yIHRoZSBzdGFuZGJ5IHNob3VsZCBiZSBsaXN0ZWQKKyAgICAgICAgaGVy ZS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBzdGFuZGJ5cyBj b3JyZXNwb25kaW5nIHRvIHRoZSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90cyBpbgorICAgICAg ICA8dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IG11c3QgY29uZmlndXJlCisg ICAgICAgIDxsaXRlcmFsPmVuYWJsZV9zeW5jc2xvdCA9IHRydWU8L2xpdGVyYWw+IHNvIHRoZXkg Y2FuIHJlY2VpdmUKKyAgICAgICAgZmFpbG92ZXIgbG9naWNhbCBzbG90cyBjaGFuZ2VzIGZyb20g dGhlIHByaW1hcnkuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0Mj4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sCmluZGV4IGVjMTRjZjczMjUuLjk2NWVlNzE2ZTIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvbG9naWNhbGRlY29kaW5nLnNnbWwKQEAgLTM3Miw3ICszNzIsMTQgQEAgcG9zdGdyZXM9IyBz ZWxlY3QgKiBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90 JywgTlVMTCwgTlUKICAgICAgdG8gd29yaywgaXQgaXMgbWFuZGF0b3J5IHRvIGhhdmUgYSBwaHlz aWNhbCByZXBsaWNhdGlvbiBzbG90IGJldHdlZW4gdGhlCiAgICAgIHByaW1hcnkgYW5kIHRoZSBz dGFuZGJ5LCBhbmQKICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLWhvdC1zdGFuZGJ5LWZlZWRiYWNr Ij48dmFybmFtZT5ob3Rfc3RhbmRieV9mZWVkYmFjazwvdmFybmFtZT48L2xpbms+Ci0gICAgIG11 c3QgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRieS4KKyAgICAgbXVzdCBiZSBlbmFibGVkIG9uIHRo ZSBzdGFuZGJ5LiBJdCdzIGFsc28gaGlnaGx5IHJlY29tbWVuZGVkIHRoYXQgdGhlIHNhaWQKKyAg ICAgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBpcyBuYW1lZCBpbgorICAgICA8bGluayBsaW5r ZW5kPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIj48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8 L3Zhcm5hbWU+PC9saW5rPgorICAgICBsaXN0IG9uIHRoZSBwcmltYXJ5LCB0byBwcmV2ZW50IHRo ZSBzdWJzY3JpYmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMKKyAgICAgZmFzdGVyIHRoYW4gdGhl IGhvdCBzdGFuZGJ5LiBCdXQgb25jZSB3ZSBjb25maWd1cmUgaXQsIHRoZW4gY2VydGFpbiBsYXRl bmN5CisgICAgIGlzIGV4cGVjdGVkIGluIHNlbmRpbmcgY2hhbmdlcyB0byBsb2dpY2FsIHN1YnNj cmliZXJzIGR1ZSB0byB3YWl0IG9uCisgICAgIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGlu CisgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1zdGFuZGJ5LXNsb3QtbmFtZXMiPjx2YXJuYW1lPnN0 YW5kYnlfc2xvdF9uYW1lczwvdmFybmFtZT48L2xpbms+CiAgICAgPC9wYXJhPgogCiAgICAgPHBh cmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxm dW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYwpp bmRleCBiMDA4MWQzY2U1Li41ZmY3NjFkZDY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi9kZWNvZGUuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vbWVzc2FnZS5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dh bHNlbmRlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJh eS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC0xMDksNiArMTEwLDcgQEAgcGdf bG9naWNhbF9zbG90X2dldF9jaGFuZ2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJv b2wgY29uZmlybSwgYm9vbCBiaW4KIAlNZW1vcnlDb250ZXh0IHBlcl9xdWVyeV9jdHg7CiAJTWVt b3J5Q29udGV4dCBvbGRjb250ZXh0OwogCVhMb2dSZWNQdHIJZW5kX29mX3dhbDsKKwlYTG9nUmVj UHRyCXdhaXRfZm9yX3dhbF9sc247CiAJTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4OwogCVJl c291cmNlT3duZXIgb2xkX3Jlc293bmVyID0gQ3VycmVudFJlc291cmNlT3duZXI7CiAJQXJyYXlU eXBlICAqYXJyOwpAQCAtMjI4LDYgKzIzMCwxNyBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5n ZXNfZ3V0cyhGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJpbgog CQkJCQkJCU5hbWVTdHIoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEucGx1Z2luKSwKIAkJCQkJCQlm b3JtYXRfcHJvY2VkdXJlKGZjaW5mby0+ZmxpbmZvLT5mbl9vaWQpKSkpOwogCisJCWlmIChYTG9n UmVjUHRySXNJbnZhbGlkKHVwdG9fbHNuKSkKKwkJCXdhaXRfZm9yX3dhbF9sc24gPSBlbmRfb2Zf d2FsOworCQllbHNlCisJCQl3YWl0X2Zvcl93YWxfbHNuID0gTWluKHVwdG9fbHNuLCBlbmRfb2Zf d2FsKTsKKworCQkvKgorCQkgKiBXYWl0IGZvciBzcGVjaWZpZWQgc3RyZWFtaW5nIHJlcGxpY2F0 aW9uIHN0YW5kYnkgc2VydmVycyAoaWYgYW55KQorCQkgKiB0byBjb25maXJtIHJlY2VpcHQgb2Yg V0FMIHVwIHRvIHdhaXRfZm9yX3dhbF9sc24uCisJCSAqLworCQlXYWl0Rm9yU3RhbmRieUNvbmZp cm1hdGlvbih3YWl0X2Zvcl93YWxfbHNuKTsKKwogCQljdHgtPm91dHB1dF93cml0ZXJfcHJpdmF0 ZSA9IHA7CiAKIAkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Qu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCAzM2Y5NTdiMDJmLi5kMDUw OWZiNWE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC00NiwxMyArNDYsMTggQEAKICNpbmNs dWRlICJjb21tb24vc3RyaW5nLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAi cGdzdGF0LmgiCisjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKICNpbmNsdWRlICJy ZXBsaWNhdGlvbi9zbG90LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCisj aW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaCIKICNpbmNsdWRlICJzdG9y YWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL3By b2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCisjaW5jbHVkZSAidXRpbHMv bWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCiAKIC8qCiAgKiBSZXBsaWNh dGlvbiBzbG90IG9uLWRpc2sgZGF0YSBzdHJ1Y3R1cmUuCkBAIC05OSwxMCArMTA0LDE5IEBAIFJl cGxpY2F0aW9uU2xvdEN0bERhdGEgKlJlcGxpY2F0aW9uU2xvdEN0bCA9IE5VTEw7CiAvKiBNeSBi YWNrZW5kJ3MgcmVwbGljYXRpb24gc2xvdCBpbiB0aGUgc2hhcmVkIG1lbW9yeSBhcnJheSAqLwog UmVwbGljYXRpb25TbG90ICpNeVJlcGxpY2F0aW9uU2xvdCA9IE5VTEw7CiAKLS8qIEdVQyB2YXJp YWJsZSAqLworLyogR1VDIHZhcmlhYmxlcyAqLwogaW50CQkJbWF4X3JlcGxpY2F0aW9uX3Nsb3Rz ID0gMTA7IC8qIHRoZSBtYXhpbXVtIG51bWJlciBvZiByZXBsaWNhdGlvbgogCQkJCQkJCQkJCSAq IHNsb3RzICovCiAKKy8qCisgKiBUaGlzIEdVQyBsaXN0cyBzdHJlYW1pbmcgcmVwbGljYXRpb24g c3RhbmRieSBzZXJ2ZXIgc2xvdCBuYW1lcyB0aGF0CisgKiBsb2dpY2FsIFdBTCBzZW5kZXIgcHJv Y2Vzc2VzIHdpbGwgd2FpdCBmb3IuCisgKi8KK2NoYXIJICAgKnN0YW5kYnlfc2xvdF9uYW1lczsK KworLyogVGhpcyBpcyBwYXJzZWQgYW5kIGNhY2hlZCBsaXN0IGZvciByYXcgc3RhbmRieV9zbG90 X25hbWVzLiAqLworc3RhdGljIExpc3QgKnN0YW5kYnlfc2xvdF9uYW1lc19saXN0ID0gTklMOwor CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3RTaG1lbUV4aXQoaW50IGNvZGUsIERhdHVtIGFy Zyk7CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAq c2xvdCk7CiAKQEAgLTIyMTAsMyArMjIyNCwzMjkgQEAgUmVzdG9yZVNsb3RGcm9tRGlzayhjb25z dCBjaGFyICpuYW1lKQogCQkJCShlcnJtc2coInRvbyBtYW55IHJlcGxpY2F0aW9uIHNsb3RzIGFj dGl2ZSBiZWZvcmUgc2h1dGRvd24iKSwKIAkJCQkgZXJyaGludCgiSW5jcmVhc2UgbWF4X3JlcGxp Y2F0aW9uX3Nsb3RzIGFuZCB0cnkgYWdhaW4uIikpKTsKIH0KKworLyoKKyAqIEEgaGVscGVyIGZ1 bmN0aW9uIHRvIHZhbGlkYXRlIHNsb3RzIHNwZWNpZmllZCBpbiBHVUMgc3RhbmRieV9zbG90X25h bWVzLgorICovCitzdGF0aWMgYm9vbAordmFsaWRhdGVfc3RhbmRieV9zbG90cyhjaGFyICoqbmV3 dmFsKQoreworCWNoYXIJICAgKnJhd25hbWU7CisJTGlzdAkgICAqZWxlbWxpc3Q7CisJTGlzdENl bGwgICAqbGM7CisJYm9vbAkJb2s7CisKKwkvKiBOZWVkIGEgbW9kaWZpYWJsZSBjb3B5IG9mIHN0 cmluZyAqLworCXJhd25hbWUgPSBwc3RyZHVwKCpuZXd2YWwpOworCisJLyogVmVyaWZ5IHN5bnRh eCBhbmQgcGFyc2Ugc3RyaW5nIGludG8gYSBsaXN0IG9mIGlkZW50aWZpZXJzICovCisJb2sgPSBT cGxpdElkZW50aWZpZXJTdHJpbmcocmF3bmFtZSwgJywnLCAmZWxlbWxpc3QpOworCisJaWYgKCFv aykKKwkJR1VDX2NoZWNrX2VycmRldGFpbCgiTGlzdCBzeW50YXggaXMgaW52YWxpZC4iKTsKKwor CS8qCisJICogSWYgdGhlcmUgaXMgYSBzeW50YXggZXJyb3IgaW4gdGhlIG5hbWUgb3IgaWYgdGhl IHJlcGxpY2F0aW9uIHNsb3RzJworCSAqIGRhdGEgaXMgbm90IGluaXRpYWxpemVkIHlldCAoaS5l Liwgd2UgYXJlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MpLCBza2lwCisJICogdGhlIHNsb3QgdmVy aWZpY2F0aW9uLgorCSAqLworCWlmICghb2sgfHwgIVJlcGxpY2F0aW9uU2xvdEN0bCkKKwl7CisJ CXBmcmVlKHJhd25hbWUpOworCQlsaXN0X2ZyZWUoZWxlbWxpc3QpOworCQlyZXR1cm4gb2s7CisJ fQorCisJZm9yZWFjaChsYywgZWxlbWxpc3QpCisJeworCQljaGFyCSAgICpuYW1lID0gbGZpcnN0 KGxjKTsKKwkJUmVwbGljYXRpb25TbG90ICpzbG90OworCisJCXNsb3QgPSBTZWFyY2hOYW1lZFJl cGxpY2F0aW9uU2xvdChuYW1lLCB0cnVlKTsKKworCQlpZiAoIXNsb3QpCisJCXsKKwkJCUdVQ19j aGVja19lcnJkZXRhaWwoInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwK KwkJCQkJCQkJbmFtZSk7CisJCQlvayA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAo IVNsb3RJc1BoeXNpY2FsKHNsb3QpKQorCQl7CisJCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJcIiVz XCIgaXMgbm90IGEgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCIsCisJCQkJCQkJCW5hbWUpOwor CQkJb2sgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJcGZyZWUocmF3bmFtZSk7CisJ bGlzdF9mcmVlKGVsZW1saXN0KTsKKwlyZXR1cm4gb2s7Cit9CisKKy8qCisgKiBHVUMgY2hlY2tf aG9vayBmb3Igc3RhbmRieV9zbG90X25hbWVzCisgKi8KK2Jvb2wKK2NoZWNrX3N0YW5kYnlfc2xv dF9uYW1lcyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCit7 CisJaWYgKHN0cmNtcCgqbmV3dmFsLCAiIikgPT0gMCkKKwkJcmV0dXJuIHRydWU7CisKKwkvKgor CSAqICIqIiBpcyBub3QgYWNjZXB0ZWQgYXMgaW4gdGhhdCBjYXNlIHByaW1hcnkgd2lsbCBub3Qg YmUgYWJsZSB0byBrbm93CisJICogZm9yIHdoaWNoIGFsbCBzdGFuZGJ5cyB0byB3YWl0IGZvci4g RXZlbiBpZiB3ZSBoYXZlIHBoeXNpY2FsLXNsb3RzCisJICogaW5mbywgdGhlcmUgaXMgbm8gd2F5 IHRvIGNvbmZpcm0gd2hldGhlciB0aGVyZSBpcyBhbnkgc3RhbmRieQorCSAqIGNvbmZpZ3VyZWQg Zm9yIHRoZSBrbm93biBwaHlzaWNhbCBzbG90cy4KKwkgKi8KKwlpZiAoc3RyY21wKCpuZXd2YWws ICIqIikgPT0gMCkKKwl7CisJCUdVQ19jaGVja19lcnJkZXRhaWwoIlwiJXNcIiBpcyBub3QgYWNj ZXB0ZWQgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcyIsCisJCQkJCQkJKm5ld3ZhbCk7CisJCXJldHVy biBmYWxzZTsKKwl9CisKKwkvKiBOb3cgdmVyaWZ5IGlmIHRoZSBzcGVjaWZpZWQgc2xvdHMgcmVh bGx5IGV4aXN0IGFuZCBoYXZlIGNvcnJlY3QgdHlwZSAqLworCWlmICghdmFsaWRhdGVfc3RhbmRi eV9zbG90cyhuZXd2YWwpKQorCQlyZXR1cm4gZmFsc2U7CisKKwkqZXh0cmEgPSBndWNfc3RyZHVw KEVSUk9SLCAqbmV3dmFsKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogR1VDIGFzc2ln bl9ob29rIGZvciBzdGFuZGJ5X3Nsb3RfbmFtZXMKKyAqLwordm9pZAorYXNzaWduX3N0YW5kYnlf c2xvdF9uYW1lcyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQoreworCUxpc3QJICAg KnN0YW5kYnlfc2xvdHM7CisJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisJY2hhcgkgICAqc3RhbmRi eV9zbG90X25hbWVzX2NweSA9IGV4dHJhOworCisJbGlzdF9mcmVlKHN0YW5kYnlfc2xvdF9uYW1l c19saXN0KTsKKwlzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCA9IE5JTDsKKworCS8qIE5vIHZhbHVl IGlzIHNwZWNpZmllZCBmb3Igc3RhbmRieV9zbG90X25hbWVzLiAqLworCWlmIChzdGFuZGJ5X3Ns b3RfbmFtZXNfY3B5ID09IE5VTEwpCisJCXJldHVybjsKKworCWlmICghU3BsaXRJZGVudGlmaWVy U3RyaW5nKHN0YW5kYnlfc2xvdF9uYW1lc19jcHksICcsJywgJnN0YW5kYnlfc2xvdHMpKQorCXsK KwkJLyogVGhpcyBzaG91bGQgbm90IGhhcHBlbiBpZiBHVUMgY2hlY2tlZCBjaGVja19zdGFuZGJ5 X3Nsb3RfbmFtZXMuICovCisJCWVsb2coRVJST1IsICJpbnZhbGlkIGxpc3Qgc3ludGF4Iik7CisJ fQorCisJLyoKKwkgKiBTd2l0Y2ggdG8gdGhlIHNhbWUgbWVtb3J5IGNvbnRleHQgdW5kZXIgd2hp Y2ggR1VDIHZhcmlhYmxlcyBhcmUKKwkgKiBhbGxvY2F0ZWQgKEdVQ01lbW9yeUNvbnRleHQpLgor CSAqLworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhHZXRNZW1vcnlDaHVua0NvbnRl eHQoc3RhbmRieV9zbG90X25hbWVzX2NweSkpOworCXN0YW5kYnlfc2xvdF9uYW1lc19saXN0ID0g bGlzdF9jb3B5KHN0YW5kYnlfc2xvdHMpOworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQp OworfQorCisvKgorICogUmV0dXJuIGEgY29weSBvZiBzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCBp ZiB0aGUgY29weSBmbGFnIGlzIHNldCB0byB0cnVlLAorICogb3RoZXJ3aXNlIHJldHVybiB0aGUg b3JpZ2luYWwgbGlzdC4KKyAqLworTGlzdCAqCitHZXRTdGFuZGJ5U2xvdExpc3QoYm9vbCBjb3B5 KQoreworCS8qCisJICogU2luY2Ugd2UgZG8gbm90IHN1cHBvcnQgc3luY2luZyBzbG90cyB0byBj YXNjYWRpbmcgc3RhbmRieXMsIHdlIHJldHVybgorCSAqIE5JTCBoZXJlIGlmIHdlIGFyZSBydW5u aW5nIGluIGEgc3RhbmRieSB0byBpbmRpY2F0ZSB0aGF0IG5vIHN0YW5kYnkKKwkgKiBzbG90cyBu ZWVkIHRvIGJlIHdhaXRlZCBmb3IuCisJICovCisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQor CQlyZXR1cm4gTklMOworCisJaWYgKGNvcHkpCisJCXJldHVybiBsaXN0X2NvcHkoc3RhbmRieV9z bG90X25hbWVzX2xpc3QpOworCWVsc2UKKwkJcmV0dXJuIHN0YW5kYnlfc2xvdF9uYW1lc19saXN0 OworfQorCisvKgorICogUmVsb2FkIHRoZSBjb25maWcgZmlsZSBhbmQgcmVpbml0aWFsaXplIHRo ZSBzdGFuZGJ5IHNsb3QgbGlzdCBpZiB0aGUgR1VDCisgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMgaGFz IGNoYW5nZWQuCisgKi8KK3ZvaWQKK1JlcmVhZENvbmZpZ0FuZFJlSW5pdFNsb3RMaXN0KExpc3Qg KipzdGFuZGJ5X3Nsb3RzKQoreworCWNoYXIJICAgKnByZV9zdGFuZGJ5X3Nsb3RfbmFtZXM7CisK KwkvKgorCSAqIElmIHdlIGFyZSBydW5uaW5nIG9uIGEgc3RhbmRieSwgdGhlcmUgaXMgbm8gbmVl ZCB0byByZWxvYWQKKwkgKiBzdGFuZGJ5X3Nsb3RfbmFtZXMgc2luY2Ugd2UgZG8gbm90IHN1cHBv cnQgc3luY2luZyBzbG90cyB0byBjYXNjYWRpbmcKKwkgKiBzdGFuZGJ5cy4KKwkgKi8KKwlpZiAo UmVjb3ZlcnlJblByb2dyZXNzKCkpCisJeworCQlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQ KTsKKwkJcmV0dXJuOworCX0KKworCXByZV9zdGFuZGJ5X3Nsb3RfbmFtZXMgPSBwc3RyZHVwKHN0 YW5kYnlfc2xvdF9uYW1lcyk7CisKKwlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsKKwor CWlmIChzdHJjbXAocHJlX3N0YW5kYnlfc2xvdF9uYW1lcywgc3RhbmRieV9zbG90X25hbWVzKSAh PSAwKQorCXsKKwkJbGlzdF9mcmVlKCpzdGFuZGJ5X3Nsb3RzKTsKKwkJKnN0YW5kYnlfc2xvdHMg PSBHZXRTdGFuZGJ5U2xvdExpc3QodHJ1ZSk7CisJfQorCisJcGZyZWUocHJlX3N0YW5kYnlfc2xv dF9uYW1lcyk7Cit9CisKKy8qCisgKiBGaWx0ZXIgdGhlIHN0YW5kYnkgc2xvdHMgYmFzZWQgb24g dGhlIHNwZWNpZmllZCBsb2cgc2VxdWVuY2UgbnVtYmVyCisgKiAod2FpdF9mb3JfbHNuKS4KKyAq CisgKiBUaGlzIGZ1bmN0aW9uIHVwZGF0ZXMgdGhlIHBhc3NlZCBzdGFuZGJ5X3Nsb3RzIGxpc3Qs IHJlbW92aW5nIGFueSBzbG90cyB0aGF0CisgKiBoYXZlIGFscmVhZHkgY2F1Z2h0IHVwIHRvIG9y IHN1cnBhc3NlZCB0aGUgZ2l2ZW4gd2FpdF9mb3JfbHNuLiBBZGRpdGlvbmFsbHksCisgKiBpdCBy ZW1vdmVzIHNsb3RzIHRoYXQgaGF2ZSBiZWVuIGludmFsaWRhdGVkLCBkcm9wcGVkLCBvciBjb252 ZXJ0ZWQgdG8KKyAqIGxvZ2ljYWwgc2xvdHMuCisgKi8KK3ZvaWQKK0ZpbHRlclN0YW5kYnlTbG90 cyhYTG9nUmVjUHRyIHdhaXRfZm9yX2xzbiwgTGlzdCAqKnN0YW5kYnlfc2xvdHMpCit7CisJTGlz dENlbGwgICAqbGM7CisJTGlzdAkgICAqc3RhbmRieV9zbG90c19jcHkgPSAqc3RhbmRieV9zbG90 czsKKworCWZvcmVhY2gobGMsIHN0YW5kYnlfc2xvdHNfY3B5KQorCXsKKwkJY2hhcgkgICAqbmFt ZSA9IGxmaXJzdChsYyk7CisJCWNoYXIJICAgKndhcm5pbmdmbXQgPSBOVUxMOworCQlSZXBsaWNh dGlvblNsb3QgKnNsb3Q7CisKKwkJc2xvdCA9IFNlYXJjaE5hbWVkUmVwbGljYXRpb25TbG90KG5h bWUsIHRydWUpOworCisJCWlmICghc2xvdCkKKwkJeworCQkJLyoKKwkJCSAqIEl0IG1heSBoYXBw ZW4gdGhhdCB0aGUgc2xvdCBzcGVjaWZpZWQgaW4gc3RhbmRieV9zbG90X25hbWVzIEdVQworCQkJ ICogdmFsdWUgaXMgZHJvcHBlZCwgc28gbGV0J3Mgc2tpcCBvdmVyIGl0LgorCQkJICovCisJCQl3 YXJuaW5nZm10ID0gXygicmVwbGljYXRpb24gc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGluIHBhcmFt ZXRlciBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIGlnbm9yaW5nIik7CisJCX0KKwkJZWxzZSBpZiAo U2xvdElzTG9naWNhbChzbG90KSkKKwkJeworCQkJLyoKKwkJCSAqIElmIGEgbG9naWNhbCBzbG90 IG5hbWUgaXMgcHJvdmlkZWQgaW4gc3RhbmRieV9zbG90X25hbWVzLCBpc3N1ZQorCQkJICogYSBX QVJOSU5HIGFuZCBza2lwIGl0LiBBbHRob3VnaCBsb2dpY2FsIHNsb3RzIGFyZSBkaXNhbGxvd2Vk IGluCisJCQkgKiB0aGUgR1VDIGNoZWNrX2hvb2sodmFsaWRhdGVfc3RhbmRieV9zbG90cyksIGl0 IGlzIHN0aWxsCisJCQkgKiBwb3NzaWJsZSBmb3IgYSB1c2VyIHRvIGRyb3AgYW4gZXhpc3Rpbmcg cGh5c2ljYWwgc2xvdCBhbmQKKwkJCSAqIHJlY3JlYXRlIGEgbG9naWNhbCBzbG90IHdpdGggdGhl IHNhbWUgbmFtZS4gU2luY2UgaXQgaXMKKwkJCSAqIGhhcm1sZXNzLCBhIFdBUk5JTkcgc2hvdWxk IGJlIGVub3VnaCwgbm8gbmVlZCB0byBlcnJvci1vdXQuCisJCQkgKi8KKwkJCXdhcm5pbmdmbXQg PSBfKCJjYW5ub3QgaGF2ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIHBhcmFt ZXRlciBcIiVzXCIsIGlnbm9yaW5nIik7CisJCX0KKwkJZWxzZQorCQl7CisJCQlTcGluTG9ja0Fj cXVpcmUoJnNsb3QtPm11dGV4KTsKKworCQkJaWYgKHNsb3QtPmRhdGEuaW52YWxpZGF0ZWQgIT0g UlNfSU5WQUxfTk9ORSkKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFNwZWNpZmllZCBwaHlzaWNhbCBz bG90IGhhdmUgYmVlbiBpbnZhbGlkYXRlZCwgc28gbm8gcG9pbnQKKwkJCQkgKiBpbiB3YWl0aW5n IGZvciBpdC4KKwkJCQkgKi8KKwkJCQl3YXJuaW5nZm10ID0gXygicGh5c2ljYWwgc2xvdCBcIiVz XCIgc3BlY2lmaWVkIGluIHBhcmFtZXRlciBcIiVzXCIgaGFzIGJlZW4gaW52YWxpZGF0ZWQsIGln bm9yaW5nIik7CisJCQl9CisJCQllbHNlIGlmIChYTG9nUmVjUHRySXNJbnZhbGlkKHNsb3QtPmRh dGEucmVzdGFydF9sc24pIHx8CisJCQkJCSBzbG90LT5kYXRhLnJlc3RhcnRfbHNuIDwgd2FpdF9m b3JfbHNuKQorCQkJeworCQkJCWJvb2wJaW5hY3RpdmUgPSAoc2xvdC0+YWN0aXZlX3BpZCA9PSAw KTsKKworCQkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJCQkJLyogTG9nIHdh cm5pbmcgaWYgbm8gYWN0aXZlX3BpZCBmb3IgdGhpcyBwaHlzaWNhbCBzbG90ICovCisJCQkJaWYg KGluYWN0aXZlKQorCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJZXJybXNnKCJyZXBsaWNh dGlvbiBzbG90IFwiJXNcIiBzcGVjaWZpZWQgaW4gcGFyYW1ldGVyIFwiJXNcIiBkb2VzIG5vdCBo YXZlIGFjdGl2ZV9waWQiLAorCQkJCQkJCQkgICBuYW1lLCAic3RhbmRieV9zbG90X25hbWVzIiks CisJCQkJCQkJZXJyZGV0YWlsKCJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIHdhaXRpbmcgb24gdGhl ICIKKwkJCQkJCQkJCSAgInN0YW5kYnkgYXNzb2NpYXRlZCB3aXRoIFwiJXNcIi4iLCBuYW1lKSwK KwkJCQkJCQllcnJoaW50KCJDb25zaWRlciBzdGFydGluZyBzdGFuZGJ5IGFzc29jaWF0ZWQgd2l0 aCAiCisJCQkJCQkJCQkiXCIlc1wiIG9yIGFtZW5kIHN0YW5kYnlfc2xvdF9uYW1lcy4iLCBuYW1l KSk7CisKKwkJCQkvKiBDb250aW51ZSBpZiB0aGUgY3VycmVudCBzbG90IGhhc24ndCBjYXVnaHQg dXAuICovCisJCQkJY29udGludWU7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJQXNzZXJ0KHNs b3QtPmRhdGEucmVzdGFydF9sc24gPj0gd2FpdF9mb3JfbHNuKTsKKwkJCX0KKworCQkJU3Bpbkxv Y2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisJCX0KKworCQkvKgorCQkgKiBSZWFjaGluZyBoZXJl IGluZGljYXRlcyB0aGF0IGVpdGhlciB0aGUgc2xvdCBoYXMgcGFzc2VkIHRoZQorCQkgKiB3YWl0 X2Zvcl9sc24gb3IgdGhlcmUgaXMgYW4gaXNzdWUgd2l0aCB0aGUgc2xvdCB0aGF0IHJlcXVpcmVz IGEKKwkJICogd2FybmluZyB0byBiZSByZXBvcnRlZC4KKwkJICovCisJCWlmICh3YXJuaW5nZm10 KQorCQkJZXJlcG9ydChXQVJOSU5HLCBlcnJtc2cod2FybmluZ2ZtdCwgbmFtZSwgInN0YW5kYnlf c2xvdF9uYW1lcyIpKTsKKworCQlzdGFuZGJ5X3Nsb3RzX2NweSA9IGZvcmVhY2hfZGVsZXRlX2N1 cnJlbnQoc3RhbmRieV9zbG90c19jcHksIGxjKTsKKwl9CisKKwkqc3RhbmRieV9zbG90cyA9IHN0 YW5kYnlfc2xvdHNfY3B5OworfQorCisvKgorICogV2FpdCBmb3IgcGh5c2ljYWwgc3RhbmRieSB0 byBjb25maXJtIHJlY2VpdmluZyB0aGUgZ2l2ZW4gbHNuLgorICoKKyAqIFVzZWQgYnkgbG9naWNh bCBkZWNvZGluZyBTUUwgZnVuY3Rpb25zIHRoYXQgYWNxdWlyZWQgc2xvdCB3aXRoIGZhaWxvdmVy CisgKiBlbmFibGVkLiBJdCB3YWl0cyBmb3IgcGh5c2ljYWwgc3RhbmRieXMgY29ycmVzcG9uZGlu ZyB0byB0aGUgcGh5c2ljYWwgc2xvdHMKKyAqIHNwZWNpZmllZCBpbiB0aGUgc3RhbmRieV9zbG90 X25hbWVzIEdVQy4KKyAqLwordm9pZAorV2FpdEZvclN0YW5kYnlDb25maXJtYXRpb24oWExvZ1Jl Y1B0ciB3YWl0X2Zvcl9sc24pCit7CisJTGlzdAkgICAqc3RhbmRieV9zbG90czsKKworCWlmICgh TXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFpbG92ZXIpCisJCXJldHVybjsKKworCXN0YW5kYnlf c2xvdHMgPSBHZXRTdGFuZGJ5U2xvdExpc3QodHJ1ZSk7CisKKwlpZiAoc3RhbmRieV9zbG90cyA9 PSBOSUwpCisJCXJldHVybjsKKworCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJldh bFNuZEN0bC0+d2FsX2NvbmZpcm1fcmN2X2N2KTsKKworCWZvciAoOzspCisJeworCQlDSEVDS19G T1JfSU5URVJSVVBUUygpOworCisJCWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQorCQl7CisJCQlD b25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CisJCQlSZXJlYWRDb25maWdBbmRSZUluaXRTbG90 TGlzdCgmc3RhbmRieV9zbG90cyk7CisJCX0KKworCQlGaWx0ZXJTdGFuZGJ5U2xvdHMod2FpdF9m b3JfbHNuLCAmc3RhbmRieV9zbG90cyk7CisKKwkJLyogRXhpdCBpZiBkb25lIHdhaXRpbmcgZm9y IGV2ZXJ5IHNsb3QuICovCisJCWlmIChzdGFuZGJ5X3Nsb3RzID09IE5JTCkKKwkJCWJyZWFrOwor CisJCS8qCisJCSAqIFdlIHdhaXQgZm9yIHRoZSBzbG90cyBpbiB0aGUgc3RhbmRieV9zbG90X25h bWVzIHRvIGNhdGNoIHVwLCBidXQgd2UKKwkJICogdXNlIGEgdGltZW91dCBzbyB3ZSBjYW4gYWxz byBjaGVjayB0aGUgaWYgdGhlIHN0YW5kYnlfc2xvdF9uYW1lcyBoYXMKKwkJICogYmVlbiBjaGFu Z2VkLgorCQkgKi8KKwkJQ29uZGl0aW9uVmFyaWFibGVUaW1lZFNsZWVwKCZXYWxTbmRDdGwtPndh bF9jb25maXJtX3Jjdl9jdiwgMTAwMCwKKwkJCQkJCQkJCVdBSVRfRVZFTlRfV0FJVF9GT1JfU1RB TkRCWV9DT05GSVJNQVRJT04pOworCX0KKworCUNvbmRpdGlvblZhcmlhYmxlQ2FuY2VsU2xlZXAo KTsKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90cyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3Rm dW5jcy5jCmluZGV4IDg0M2FlOGNkNjguLjBhMDliNmM1MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3RmdW5jcy5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAicmVwbGljYXRpb24vZGVj b2RlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgogI2luY2x1ZGUgInJlcGxp Y2F0aW9uL3Nsb3QuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCiAjaW5jbHVk ZSAidXRpbHMvcGdfbHNuLmgiCkBAIC00NzQsNiArNDc1LDggQEAgcGdfcGh5c2ljYWxfcmVwbGlj YXRpb25fc2xvdF9hZHZhbmNlKFhMb2dSZWNQdHIgbW92ZXRvKQogCQkgKiBjcmFzaCwgYnV0IHRo aXMgbWFrZXMgdGhlIGRhdGEgY29uc2lzdGVudCBhZnRlciBhIGNsZWFuIHNodXRkb3duLgogCQkg Ki8KIAkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisKKwkJUGh5c2ljYWxXYWtldXBMb2dp Y2FsV2FsU25kKCk7CiAJfQogCiAJcmV0dXJuIHJldGxzbjsKQEAgLTUxNCw2ICs1MTcsMTIgQEAg cGdfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90X2FkdmFuY2UoWExvZ1JlY1B0ciBtb3ZldG8pCiAJ CQkJCQkJCQkJCSAgIC5zZWdtZW50X2Nsb3NlID0gd2FsX3NlZ21lbnRfY2xvc2UpLAogCQkJCQkJ CQkJTlVMTCwgTlVMTCwgTlVMTCk7CiAKKwkJLyoKKwkJICogV2FpdCBmb3Igc3BlY2lmaWVkIHN0 cmVhbWluZyByZXBsaWNhdGlvbiBzdGFuZGJ5IHNlcnZlcnMgKGlmIGFueSkKKwkJICogdG8gY29u ZmlybSByZWNlaXB0IG9mIFdBTCB1cCB0byBtb3ZldG8gbHNuLgorCQkgKi8KKwkJV2FpdEZvclN0 YW5kYnlDb25maXJtYXRpb24obW92ZXRvKTsKKwogCQkvKgogCQkgKiBTdGFydCByZWFkaW5nIGF0 IHRoZSBzbG90J3MgcmVzdGFydF9sc24sIHdoaWNoIHdlIGtub3cgdG8gcG9pbnQgdG8KIAkJICog YSB2YWxpZCByZWNvcmQuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxz ZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGY3NTNh ZWQzNDUuLmMyMGM4YThkOWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0x MjE5LDcgKzEyMTksNiBAQCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGljYXRpb25T bG90Q21kICpjbWQpCiAKIAlwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9ucyhjbWQsICZyZXNlcnZl X3dhbCwgJnNuYXBzaG90X2FjdGlvbiwgJnR3b19waGFzZSwKIAkJCQkJCQkgICAmZmFpbG92ZXIp OwotCiAJaWYgKGNtZC0+a2luZCA9PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJQ0FMKQogCXsKIAkJ UmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIGZhbHNlLApAQCAtMTcyOCwyNyAr MTcyNyw3OCBAQCBXYWxTbmRVcGRhdGVQcm9ncmVzcyhMb2dpY2FsRGVjb2RpbmdDb250ZXh0ICpj dHgsIFhMb2dSZWNQdHIgbHNuLCBUcmFuc2FjdGlvbklkCiAJCVByb2Nlc3NQZW5kaW5nV3JpdGVz KCk7CiB9CiAKKy8qCisgKiBXYWtlIHVwIHRoZSBsb2dpY2FsIHdhbHNlbmRlciBwcm9jZXNzZXMg d2l0aCBmYWlsb3Zlci1lbmFibGVkIHNsb3RzIGlmIHRoZQorICogY3VycmVudGx5IGFjcXVpcmVk IHBoeXNpY2FsIHNsb3QgaXMgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcworICogR1VD LgorICovCit2b2lkCitQaHlzaWNhbFdha2V1cExvZ2ljYWxXYWxTbmQodm9pZCkKK3sKKwlMaXN0 Q2VsbCAgICpsYzsKKwlMaXN0CSAgICpzdGFuZGJ5X3Nsb3RzOworCisJQXNzZXJ0KE15UmVwbGlj YXRpb25TbG90ICYmIFNsb3RJc1BoeXNpY2FsKE15UmVwbGljYXRpb25TbG90KSk7CisKKwlzdGFu ZGJ5X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0KGZhbHNlKTsKKworCWZvcmVhY2gobGMsIHN0 YW5kYnlfc2xvdHMpCisJeworCQljaGFyCSAgICpuYW1lID0gbGZpcnN0KGxjKTsKKworCQlpZiAo c3RyY21wKG5hbWUsIE5hbWVTdHIoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEubmFtZSkpID09IDAp CisJCXsKKwkJCUNvbmRpdGlvblZhcmlhYmxlQnJvYWRjYXN0KCZXYWxTbmRDdGwtPndhbF9jb25m aXJtX3Jjdl9jdik7CisJCQlyZXR1cm47CisJCX0KKwl9Cit9CisKIC8qCiAgKiBXYWl0IHRpbGwg V0FMIDwgbG9jIGlzIGZsdXNoZWQgdG8gZGlzayBzbyBpdCBjYW4gYmUgc2FmZWx5IHNlbnQgdG8g Y2xpZW50LgogICoKLSAqIFJldHVybnMgZW5kIExTTiBvZiBmbHVzaGVkIFdBTC4gIE5vcm1hbGx5 IHRoaXMgd2lsbCBiZSA+PSBsb2MsIGJ1dAotICogaWYgd2UgZGV0ZWN0IGEgc2h1dGRvd24gcmVx dWVzdCAoZWl0aGVyIGZyb20gcG9zdG1hc3RlciBvciBjbGllbnQpCi0gKiB3ZSB3aWxsIHJldHVy biBlYXJseSwgc28gY2FsbGVyIG11c3QgYWx3YXlzIGNoZWNrLgorICogSWYgdGhlIHdhbHNlbmRl ciBob2xkcyBhIGxvZ2ljYWwgc2xvdCB0aGF0IGhhcyBlbmFibGVkIGZhaWxvdmVyLCB3ZSBhbHNv CisgKiB3YWl0IGZvciBhbGwgdGhlIHNwZWNpZmllZCBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3Rh bmRieSBzZXJ2ZXJzIHRvCisgKiBjb25maXJtIHJlY2VpcHQgb2YgV0FMIHVwIHRvIFJlY2VudEZs dXNoUHRyLgorICoKKyAqIFJldHVybnMgZW5kIExTTiBvZiBmbHVzaGVkIFdBTC4gIE5vcm1hbGx5 IHRoaXMgd2lsbCBiZSA+PSBsb2MsIGJ1dCBpZiB3ZQorICogZGV0ZWN0IGEgc2h1dGRvd24gcmVx dWVzdCAoZWl0aGVyIGZyb20gcG9zdG1hc3RlciBvciBjbGllbnQpIHdlIHdpbGwgcmV0dXJuCisg KiBlYXJseSwgc28gY2FsbGVyIG11c3QgYWx3YXlzIGNoZWNrLgogICovCiBzdGF0aWMgWExvZ1Jl Y1B0cgogV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIHsKIAlpbnQJCQl3YWtlRXZl bnRzOworCWJvb2wJCXdhaXRfZm9yX3N0YW5kYnkgPSBmYWxzZTsKKwl1aW50MzIJCXdhaXRfZXZl bnQ7CisJTGlzdAkgICAqc3RhbmRieV9zbG90cyA9IE5JTDsKIAlzdGF0aWMgWExvZ1JlY1B0ciBS ZWNlbnRGbHVzaFB0ciA9IEludmFsaWRYTG9nUmVjUHRyOwogCisJaWYgKE15UmVwbGljYXRpb25T bG90LT5kYXRhLmZhaWxvdmVyKQorCQlzdGFuZGJ5X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0 KHRydWUpOworCiAJLyoKLQkgKiBGYXN0IHBhdGggdG8gYXZvaWQgYWNxdWlyaW5nIHRoZSBzcGlu bG9jayBpbiBjYXNlIHdlIGFscmVhZHkga25vdyB3ZQotCSAqIGhhdmUgZW5vdWdoIFdBTCBhdmFp bGFibGUuIFRoaXMgaXMgcGFydGljdWxhcmx5IGludGVyZXN0aW5nIGlmIHdlJ3JlCi0JICogZmFy IGJlaGluZC4KKwkgKiBDaGVjayBpZiBhbGwgdGhlIHN0YW5kYnkgc2VydmVycyBoYXZlIGNvbmZp cm1lZCByZWNlaXB0IG9mIFdBTCB1cCB0bworCSAqIFJlY2VudEZsdXNoUHRyIGV2ZW4gd2hlbiB3 ZSBhbHJlYWR5IGtub3cgd2UgaGF2ZSBlbm91Z2ggV0FMIGF2YWlsYWJsZS4KKwkgKgorCSAqIE5v dGUgdGhhdCB3ZSBjYW5ub3QgZGlyZWN0bHkgcmV0dXJuIHdpdGhvdXQgY2hlY2tpbmcgdGhlIHN0 YXR1cyBvZgorCSAqIHN0YW5kYnkgc2VydmVycyBiZWNhdXNlIHRoZSBzdGFuZGJ5X3Nsb3RfbmFt ZXMgbWF5IGhhdmUgY2hhbmdlZCwgd2hpY2gKKwkgKiBtZWFucyB0aGVyZSBjb3VsZCBiZSBuZXcg c3RhbmRieSBzbG90cyBpbiB0aGUgbGlzdCB0aGF0IGhhdmUgbm90IHlldAorCSAqIGNhdWdodCB1 cCB0byB0aGUgUmVjZW50Rmx1c2hQdHIuCiAJICovCi0JaWYgKFJlY2VudEZsdXNoUHRyICE9IElu dmFsaWRYTG9nUmVjUHRyICYmCi0JCWxvYyA8PSBSZWNlbnRGbHVzaFB0cikKLQkJcmV0dXJuIFJl Y2VudEZsdXNoUHRyOworCWlmICghWExvZ1JlY1B0cklzSW52YWxpZChSZWNlbnRGbHVzaFB0cikg JiYgbG9jIDw9IFJlY2VudEZsdXNoUHRyKQorCXsKKwkJRmlsdGVyU3RhbmRieVNsb3RzKFJlY2Vu dEZsdXNoUHRyLCAmc3RhbmRieV9zbG90cyk7CisKKwkJLyoKKwkJICogRmFzdCBwYXRoIHRvIGF2 b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cKKwkJICog d2UgaGF2ZSBlbm91Z2ggV0FMIGF2YWlsYWJsZSBhbmQgYWxsIHRoZSBzdGFuZGJ5IHNlcnZlcnMg aGF2ZQorCQkgKiBjb25maXJtZWQgcmVjZWlwdCBvZiBXQUwgdXAgdG8gUmVjZW50Rmx1c2hQdHIu IFRoaXMgaXMgcGFydGljdWxhcmx5CisJCSAqIGludGVyZXN0aW5nIGlmIHdlJ3JlIGZhciBiZWhp bmQuCisJCSAqLworCQlpZiAoc3RhbmRieV9zbG90cyA9PSBOSUwpCisJCQlyZXR1cm4gUmVjZW50 Rmx1c2hQdHI7CisJfQogCiAJLyogR2V0IGEgbW9yZSByZWNlbnQgZmx1c2ggcG9pbnRlci4gKi8K IAlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQpAQCAtMTc2OSw3ICsxODE5LDcgQEAgV2FsU25k V2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIAkJaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCiAJ CXsKIAkJCUNvbmZpZ1JlbG9hZFBlbmRpbmcgPSBmYWxzZTsKLQkJCVByb2Nlc3NDb25maWdGaWxl KFBHQ19TSUdIVVApOworCQkJUmVyZWFkQ29uZmlnQW5kUmVJbml0U2xvdExpc3QoJnN0YW5kYnlf c2xvdHMpOwogCQkJU3luY1JlcEluaXRDb25maWcoKTsKIAkJfQogCkBAIC0xNzg0LDggKzE4MzQs MTggQEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIAkJaWYgKGdvdF9TVE9QUElO RykKIAkJCVhMb2dCYWNrZ3JvdW5kRmx1c2goKTsKIAorCQkvKgorCQkgKiBVcGRhdGUgdGhlIHN0 YW5kYnkgc2xvdHMgdGhhdCBoYXZlIG5vdCB5ZXQgY2F1Z2h0IHVwIHRvIHRoZSBmbHVzaGVkCisJ CSAqIHBvc2l0aW9uLiBJdCBpcyBnb29kIHRvIHdhaXQgdXAgdG8gUmVjZW50Rmx1c2hQdHIgYW5k IHRoZW4gbGV0IGl0CisJCSAqIHNlbmQgdGhlIGNoYW5nZXMgdG8gbG9naWNhbCBzdWJzY3JpYmVy cyBvbmUgYnkgb25lIHdoaWNoIGFyZQorCQkgKiBhbHJlYWR5IGNvdmVyZWQgaW4gUmVjZW50Rmx1 c2hQdHIgd2l0aG91dCBuZWVkaW5nIHRvIHdhaXQgb24gZXZlcnkKKwkJICogY2hhbmdlIGZvciBz dGFuZGJ5IGNvbmZpcm1hdGlvbi4KKwkJICovCisJCWlmICh3YWl0X2Zvcl9zdGFuZGJ5KQorCQkJ RmlsdGVyU3RhbmRieVNsb3RzKFJlY2VudEZsdXNoUHRyLCAmc3RhbmRieV9zbG90cyk7CisKIAkJ LyogVXBkYXRlIG91ciBpZGVhIG9mIHRoZSBjdXJyZW50bHkgZmx1c2hlZCBwb3NpdGlvbi4gKi8K LQkJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwkJZWxzZSBpZiAoIVJlY292ZXJ5SW5Qcm9n cmVzcygpKQogCQkJUmVjZW50Rmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKIAkJZWxz ZQogCQkJUmVjZW50Rmx1c2hQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOwpAQCAtMTgx Myw5ICsxODczLDE4IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCQkhd2Fp dGluZ19mb3JfcGluZ19yZXNwb25zZSkKIAkJCVdhbFNuZEtlZXBhbGl2ZShmYWxzZSwgSW52YWxp ZFhMb2dSZWNQdHIpOwogCi0JCS8qIGNoZWNrIHdoZXRoZXIgd2UncmUgZG9uZSAqLwotCQlpZiAo bG9jIDw9IFJlY2VudEZsdXNoUHRyKQorCQlpZiAobG9jID4gUmVjZW50Rmx1c2hQdHIpCisJCQl3 YWl0X2V2ZW50ID0gV0FJVF9FVkVOVF9XQUxfU0VOREVSX1dBSVRfRk9SX1dBTDsKKwkJZWxzZSBp ZiAoc3RhbmRieV9zbG90cykKKwkJeworCQkJd2FpdF9ldmVudCA9IFdBSVRfRVZFTlRfV0FJVF9G T1JfU1RBTkRCWV9DT05GSVJNQVRJT047CisJCQl3YWl0X2Zvcl9zdGFuZGJ5ID0gdHJ1ZTsKKwkJ fQorCQllbHNlCisJCXsKKwkJCS8qIEFscmVhZHkgY2F1Z2h0IHVwIGFuZCBkb2Vzbid0IG5lZWQg dG8gd2FpdCBmb3Igc3RhbmRieV9zbG90cy4gKi8KIAkJCWJyZWFrOworCQl9CiAKIAkJLyogV2Fp dGluZyBmb3IgbmV3IFdBTC4gU2luY2Ugd2UgbmVlZCB0byB3YWl0LCB3ZSdyZSBub3cgY2F1Z2h0 IHVwLiAqLwogCQlXYWxTbmRDYXVnaHRVcCA9IHRydWU7CkBAIC0xODU1LDkgKzE5MjQsMTEgQEAg V2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxvYykKIAkJaWYgKHBxX2lzX3NlbmRfcGVuZGlu ZygpKQogCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NLRVRfV1JJVEVBQkxFOwogCi0JCVdhbFNuZFdh aXQod2FrZUV2ZW50cywgc2xlZXB0aW1lLCBXQUlUX0VWRU5UX1dBTF9TRU5ERVJfV0FJVF9GT1Jf V0FMKTsKKwkJV2FsU25kV2FpdCh3YWtlRXZlbnRzLCBzbGVlcHRpbWUsIHdhaXRfZXZlbnQpOwog CX0KIAorCWxpc3RfZnJlZShzdGFuZGJ5X3Nsb3RzKTsKKwogCS8qIHJlYWN0aXZhdGUgbGF0Y2gg c28gV2FsU25kTG9vcCBrbm93cyB0byBjb250aW51ZSAqLwogCVNldExhdGNoKE15TGF0Y2gpOwog CXJldHVybiBSZWNlbnRGbHVzaFB0cjsKQEAgLTIyNjUsNiArMjMzNiw3IEBAIFBoeXNpY2FsQ29u ZmlybVJlY2VpdmVkTG9jYXRpb24oWExvZ1JlY1B0ciBsc24pCiAJewogCQlSZXBsaWNhdGlvblNs b3RNYXJrRGlydHkoKTsKIAkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExTTigpOwor CQlQaHlzaWNhbFdha2V1cExvZ2ljYWxXYWxTbmQoKTsKIAl9CiAKIAkvKgpAQCAtMzUzMiw2ICsz NjA0LDcgQEAgV2FsU25kU2htZW1Jbml0KHZvaWQpCiAKIAkJQ29uZGl0aW9uVmFyaWFibGVJbml0 KCZXYWxTbmRDdGwtPndhbF9mbHVzaF9jdik7CiAJCUNvbmRpdGlvblZhcmlhYmxlSW5pdCgmV2Fs U25kQ3RsLT53YWxfcmVwbGF5X2N2KTsKKwkJQ29uZGl0aW9uVmFyaWFibGVJbml0KCZXYWxTbmRD dGwtPndhbF9jb25maXJtX3Jjdl9jdik7CiAJfQogfQogCkBAIC0zNjAxLDggKzM2NzQsMTQgQEAg V2FsU25kV2FpdCh1aW50MzIgc29ja2V0X2V2ZW50cywgbG9uZyB0aW1lb3V0LCB1aW50MzIgd2Fp dF9ldmVudCkKIAkgKgogCSAqIEFuZCwgd2UgdXNlIHNlcGFyYXRlIHNoYXJlZCBtZW1vcnkgQ1Zz IGZvciBwaHlzaWNhbCBhbmQgbG9naWNhbAogCSAqIHdhbHNlbmRlcnMgZm9yIHNlbGVjdGl2ZSB3 YWtlIHVwcywgc2VlIFdhbFNuZFdha2V1cCgpIGZvciBtb3JlIGRldGFpbHMuCisJICoKKwkgKiBJ ZiB0aGUgd2FpdCBldmVudCBpcyBXQUlUX0ZPUl9TVEFOREJZX0NPTkZJUk1BVElPTiwgd2FpdCBv biBhbm90aGVyIENWCisJICogdW50aWwgYXdha2VuZWQgYnkgcGh5c2ljYWwgd2Fsc2VuZGVycyBh ZnRlciB0aGUgd2FscmVjZWl2ZXIgY29uZmlybXMgdGhlCisJICogcmVjZWlwdCBvZiB0aGUgTFNO LgogCSAqLwotCWlmIChNeVdhbFNuZC0+a2luZCA9PSBSRVBMSUNBVElPTl9LSU5EX1BIWVNJQ0FM KQorCWlmICh3YWl0X2V2ZW50ID09IFdBSVRfRVZFTlRfV0FJVF9GT1JfU1RBTkRCWV9DT05GSVJN QVRJT04pCisJCUNvbmRpdGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJldhbFNuZEN0bC0+d2Fs X2NvbmZpcm1fcmN2X2N2KTsKKwllbHNlIGlmIChNeVdhbFNuZC0+a2luZCA9PSBSRVBMSUNBVElP Tl9LSU5EX1BIWVNJQ0FMKQogCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZXYWxT bmRDdGwtPndhbF9mbHVzaF9jdik7CiAJZWxzZSBpZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQTElD QVRJT05fS0lORF9MT0dJQ0FMKQogCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZX YWxTbmRDdGwtPndhbF9yZXBsYXlfY3YpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0 eS93YWl0X2V2ZW50X25hbWVzLnR4dAppbmRleCA0YzBlZTJkZDI5Li45OTczZWY0MWI5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dAor KysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dApAQCAt NzgsNiArNzgsNyBAQCBHU1NfT1BFTl9TRVJWRVIJIldhaXRpbmcgdG8gcmVhZCBkYXRhIGZyb20g dGhlIGNsaWVudCB3aGlsZSBlc3RhYmxpc2hpbmcgYSBHU1NBUAogTElCUFFXQUxSRUNFSVZFUl9D T05ORUNUCSJXYWl0aW5nIGluIFdBTCByZWNlaXZlciB0byBlc3RhYmxpc2ggY29ubmVjdGlvbiB0 byByZW1vdGUgc2VydmVyLiIKIExJQlBRV0FMUkVDRUlWRVJfUkVDRUlWRQkiV2FpdGluZyBpbiBX QUwgcmVjZWl2ZXIgdG8gcmVjZWl2ZSBkYXRhIGZyb20gcmVtb3RlIHNlcnZlci4iCiBTU0xfT1BF Tl9TRVJWRVIJIldhaXRpbmcgZm9yIFNTTCB3aGlsZSBhdHRlbXB0aW5nIGNvbm5lY3Rpb24uIgor V0FJVF9GT1JfU1RBTkRCWV9DT05GSVJNQVRJT04JIldhaXRpbmcgZm9yIHRoZSBXQUwgdG8gYmUg cmVjZWl2ZWQgYnkgcGh5c2ljYWwgc3RhbmRieS4iCiBXQUxfU0VOREVSX1dBSVRfRk9SX1dBTAki V2FpdGluZyBmb3IgV0FMIHRvIGJlIGZsdXNoZWQgaW4gV0FMIHNlbmRlciBwcm9jZXNzLiIKIFdB TF9TRU5ERVJfV1JJVEVfREFUQQkiV2FpdGluZyBmb3IgYW55IGFjdGl2aXR5IHdoZW4gcHJvY2Vz c2luZyByZXBsaWVzIGZyb20gV0FMIHJlY2VpdmVyIGluIFdBTCBzZW5kZXIgcHJvY2Vzcy4iCiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggM2FmMTFiMmI4MC4uYTgyNjE4YzNk NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTQ2MjgsNiArNDYyOCwyMCBA QCBzdHJ1Y3QgY29uZmlnX3N0cmluZyBDb25maWd1cmVOYW1lc1N0cmluZ1tdID0KIAkJY2hlY2tf ZGVidWdfaW9fZGlyZWN0LCBhc3NpZ25fZGVidWdfaW9fZGlyZWN0LCBOVUxMCiAJfSwKIAorCXsK KwkJeyJzdGFuZGJ5X3Nsb3RfbmFtZXMiLCBQR0NfU0lHSFVQLCBSRVBMSUNBVElPTl9QUklNQVJZ LAorCQkJZ2V0dGV4dF9ub29wKCJMaXN0cyBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3RhbmRieSBz ZXJ2ZXIgc2xvdCAiCisJCQkJCQkgIm5hbWVzIHRoYXQgbG9naWNhbCBXQUwgc2VuZGVyIHByb2Nl c3NlcyB3aWxsIHdhaXQgZm9yLiIpLAorCQkJZ2V0dGV4dF9ub29wKCJEZWNvZGVkIGNoYW5nZXMg YXJlIHNlbnQgb3V0IHRvIHBsdWdpbnMgYnkgbG9naWNhbCAiCisJCQkJCQkgIldBTCBzZW5kZXIg cHJvY2Vzc2VzIG9ubHkgYWZ0ZXIgc3BlY2lmaWVkICIKKwkJCQkJCSAicmVwbGljYXRpb24gc2xv dHMgY29uZmlybSByZWNlaXZpbmcgV0FMLiIpLAorCQkJR1VDX0xJU1RfSU5QVVQgfCBHVUNfTElT VF9RVU9URQorCQl9LAorCQkmc3RhbmRieV9zbG90X25hbWVzLAorCQkiIiwKKwkJY2hlY2tfc3Rh bmRieV9zbG90X25hbWVzLCBhc3NpZ25fc3RhbmRieV9zbG90X25hbWVzLCBOVUxMCisJfSwKKwog CS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEwsIDAsIDAsIE5VTEwsIE5VTEx9 LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNj L3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggMzg2ODY5NGQzZi4uZGI0YWZhZjM1NiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMzM0 LDYgKzMzNCw4IEBACiAJCQkJIyBtZXRob2QgdG8gY2hvb3NlIHN5bmMgc3RhbmRieXMsIG51bWJl ciBvZiBzeW5jIHN0YW5kYnlzLAogCQkJCSMgYW5kIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGFw cGxpY2F0aW9uX25hbWUKIAkJCQkjIGZyb20gc3RhbmRieShzKTsgJyonID0gYWxsCisjc3RhbmRi eV9zbG90X25hbWVzID0gJycgIyBzdHJlYW1pbmcgcmVwbGljYXRpb24gc3RhbmRieSBzZXJ2ZXIg c2xvdCBuYW1lcyB0aGF0CisJCQkJIyBsb2dpY2FsIHdhbHNlbmRlciBwcm9jZXNzZXMgd2lsbCB3 YWl0IGZvcgogCiAjIC0gU3RhbmRieSBTZXJ2ZXJzIC0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vc2xvdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCmlu ZGV4IGY4MWJlZjllNDIuLmVlZjlmMjVjNDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3Nsb3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKQEAgLTIy OSw2ICsyMjksNyBAQCBleHRlcm4gUEdETExJTVBPUlQgUmVwbGljYXRpb25TbG90ICpNeVJlcGxp Y2F0aW9uU2xvdDsKIAogLyogR1VDcyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhfcmVw bGljYXRpb25fc2xvdHM7CitleHRlcm4gUEdETExJTVBPUlQgY2hhciAqc3RhbmRieV9zbG90X25h bWVzOwogCiAvKiBzaG1lbSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMgKi8KIGV4dGVybiBTaXpl IFJlcGxpY2F0aW9uU2xvdHNTaG1lbVNpemUodm9pZCk7CkBAIC0yNzUsNCArMjc2LDEwIEBAIGV4 dGVybiB2b2lkIENoZWNrUG9pbnRSZXBsaWNhdGlvblNsb3RzKGJvb2wgaXNfc2h1dGRvd24pOwog ZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UmVxdWlyZW1lbnRzKHZvaWQpOwogZXh0ZXJuIHZvaWQgQ2hl Y2tTbG90UGVybWlzc2lvbnModm9pZCk7CiAKK2V4dGVybiBMaXN0ICpHZXRTdGFuZGJ5U2xvdExp c3QoYm9vbCBjb3B5KTsKK2V4dGVybiB2b2lkIFdhaXRGb3JTdGFuZGJ5Q29uZmlybWF0aW9uKFhM b2dSZWNQdHIgd2FpdF9mb3JfbHNuKTsKK2V4dGVybiB2b2lkIEZpbHRlclN0YW5kYnlTbG90cyhY TG9nUmVjUHRyIHdhaXRfZm9yX2xzbiwKKwkJCQkJCQkJCSBMaXN0ICoqc3RhbmRieV9zbG90cyk7 CitleHRlcm4gdm9pZCBSZXJlYWRDb25maWdBbmRSZUluaXRTbG90TGlzdChMaXN0ICoqc3RhbmRi eV9zbG90cyk7CisKICNlbmRpZgkJCQkJCQkvKiBTTE9UX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d2Fsc2VuZGVyLmgKaW5kZXggMjc2ZDg5MTNhYS4uZjlhNTU5ZjgzMSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgZXh0ZXJuIHZvaWQgV2FsU25kSW5p dFN0b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQgV2FsU25kV2FpdFN0b3BwaW5nKHZvaWQpOwog ZXh0ZXJuIHZvaWQgSGFuZGxlV2FsU25kSW5pdFN0b3BwaW5nKHZvaWQpOwogZXh0ZXJuIHZvaWQg V2FsU25kUnFzdEZpbGVSZWxvYWQodm9pZCk7CitleHRlcm4gdm9pZCBQaHlzaWNhbFdha2V1cExv Z2ljYWxXYWxTbmQodm9pZCk7CiBleHRlcm4gWExvZ1JlY1B0ciBHZXRTdGFuZGJ5Rmx1c2hSZWNQ dHIoVGltZUxpbmVJRCAqdGxpKTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxz ZW5kZXJfcHJpdmF0ZS5oCmluZGV4IDMxMTNlOWVhNDcuLjBmOTYyYjBjNzIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyX3ByaXZhdGUuaApAQCAtMTEzLDYgKzExMywxMyBA QCB0eXBlZGVmIHN0cnVjdAogCUNvbmRpdGlvblZhcmlhYmxlIHdhbF9mbHVzaF9jdjsKIAlDb25k aXRpb25WYXJpYWJsZSB3YWxfcmVwbGF5X2N2OwogCisJLyoKKwkgKiBVc2VkIGJ5IHBoeXNpY2Fs IHdhbHNlbmRlcnMgaG9sZGluZyBzbG90cyBzcGVjaWZpZWQgaW4KKwkgKiBzdGFuZGJ5X3Nsb3Rf bmFtZXMgdG8gd2FrZSB1cCBsb2dpY2FsIHdhbHNlbmRlcnMgaG9sZGluZworCSAqIGZhaWxvdmVy LWVuYWJsZWQgc2xvdHMgd2hlbiBhIHdhbHJlY2VpdmVyIGNvbmZpcm1zIHRoZSByZWNlaXB0IG9m IExTTi4KKwkgKi8KKwlDb25kaXRpb25WYXJpYWJsZSB3YWxfY29uZmlybV9yY3ZfY3Y7CisKIAlX YWxTbmQJCXdhbHNuZHNbRkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKIH0gV2FsU25kQ3RsRGF0YTsK IApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmggYi9zcmMvaW5jbHVk ZS91dGlscy9ndWNfaG9va3MuaAppbmRleCA1MzAwYzQ0ZjNiLi40NjQ5OTZiNGYwIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9ndWNfaG9va3MuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy9ndWNfaG9va3MuaApAQCAtMTYyLDUgKzE2Miw4IEBAIGV4dGVybiBib29sIGNoZWNrX3dhbF9j b25zaXN0ZW5jeV9jaGVja2luZyhjaGFyICoqbmV3dmFsLCB2b2lkICoqZXh0cmEsCiBleHRlcm4g dm9pZCBhc3NpZ25fd2FsX2NvbnNpc3RlbmN5X2NoZWNraW5nKGNvbnN0IGNoYXIgKm5ld3ZhbCwg dm9pZCAqZXh0cmEpOwogZXh0ZXJuIGJvb2wgY2hlY2tfd2FsX3NlZ21lbnRfc2l6ZShpbnQgKm5l d3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKTsKIGV4dGVybiB2b2lkIGFzc2ln bl93YWxfc3luY19tZXRob2QoaW50IG5ld193YWxfc3luY19tZXRob2QsIHZvaWQgKmV4dHJhKTsK K2V4dGVybiBib29sIGNoZWNrX3N0YW5kYnlfc2xvdF9uYW1lcyhjaGFyICoqbmV3dmFsLCB2b2lk ICoqZXh0cmEsCisJCQkJCQkJCQkgR3VjU291cmNlIHNvdXJjZSk7CitleHRlcm4gdm9pZCBhc3Np Z25fc3RhbmRieV9zbG90X25hbWVzKGNvbnN0IGNoYXIgKm5ld3ZhbCwgdm9pZCAqZXh0cmEpOwog CiAjZW5kaWYJCQkJCQkJLyogR1VDX0hPT0tTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Y292ZXJ5L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKaW5kZXgg ODhmYjAzMDZmNS4uNDE1MmMwNzMxOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVz b24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKQEAgLTQ1LDYgKzQ1 LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3QvMDM3X2ludmFsaWRfZGF0YWJhc2UucGwnLAogICAg ICAgJ3QvMDM4X3NhdmVfbG9naWNhbF9zbG90c19zaHV0ZG93bi5wbCcsCiAgICAgICAndC8wMzlf ZW5kX29mX3dhbC5wbCcsCisgICAgICAndC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5j LnBsJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8w MDZfbG9naWNhbF9kZWNvZGluZy5wbCBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxf ZGVjb2RpbmcucGwKaW5kZXggNWM3YjRjYTVlMy4uODVmMDE5Nzc0YyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVjb3ZlcnkvdC8wMDZfbG9naWNhbF9kZWNvZGluZy5wbAorKysgYi9zcmMvdGVzdC9y ZWNvdmVyeS90LzAwNl9sb2dpY2FsX2RlY29kaW5nLnBsCkBAIC0xNzIsOSArMTcyLDEwIEBAIGlz KCRub2RlX3ByaW1hcnktPnNsb3QoJ290aGVyZGJfc2xvdCcpLT57J3Nsb3RfbmFtZSd9LAogCXVu ZGVmLCAnbG9naWNhbCBzbG90IHdhcyBhY3R1YWxseSBkcm9wcGVkIHdpdGggREInKTsKIAogIyBU ZXN0IGxvZ2ljYWwgc2xvdCBhZHZhbmNpbmcgYW5kIGl0cyBkdXJhYmlsaXR5LgorIyBQYXNzIGZh aWxvdmVyPXRydWUgKGxhc3QtYXJnKSwgaXQgc2hvdWxkIG5vdCBoYXZlIGFueSBpbXBhY3Qgb24g YWR2YW5jaW5nLgogbXkgJGxvZ2ljYWxfc2xvdCA9ICdsb2dpY2FsX3Nsb3QnOwogJG5vZGVfcHJp bWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCi0JIlNFTEVDVCBwZ19jcmVhdGVfbG9naWNhbF9y ZXBsaWNhdGlvbl9zbG90KCckbG9naWNhbF9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSk7 IgorCSJTRUxFQ1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJGxvZ2ljYWxf c2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIGZhbHNlLCB0cnVlKTsiCiApOwogJG5vZGVf cHJpbWFyeS0+cHNxbCgKIAkncG9zdGdyZXMnLCAiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNv dmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgYi9zcmMvdGVzdC9yZWNv dmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKaW5kZXggYWIxZTM5OTdl Yy4uNTc1Y2UxMjRlNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3RhbmRi eV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0 YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbApAQCAtODcsMTcgKzg3LDMwIEBAIGlzKCAkcHVi bGlzaGVyLT5zYWZlX3BzcWwoCiAkc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIxIEVOQUJMRSIpOwogCiAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBUZXN0IGxvZ2ljYWwg ZmFpbG92ZXIgc2xvdHMgb24gdGhlIHN0YW5kYnkKLSMgQ29uZmlndXJlIHN0YW5kYnkxIHRvIHJl cGxpY2F0ZSBhbmQgc3luY2hyb25pemUgbG9naWNhbCBzbG90cyBjb25maWd1cmVkCi0jIGZvciBm YWlsb3ZlciBvbiB0aGUgcHJpbWFyeQorIyBUZXN0IHByaW1hcnkgZGlzYWxsb3dpbmcgc3BlY2lm aWVkIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgZ2V0dGluZyBhaGVhZCBvZgorIyBzcGVjaWZp ZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdHMuIEl0IHVzZXMgdGhlIGZvbGxvd2luZyBzZXQg dXA6CiAjCi0jICAgICAgICAgICAgICBmYWlsb3ZlciBzbG90IGxzdWIxX3Nsb3QtPnwgLS0tLT4g c3Vic2NyaWJlcjEgKGNvbm5lY3RlZCB2aWEgbG9naWNhbCByZXBsaWNhdGlvbikKLSMgcHJpbWFy eSAtLS0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotIyAgICAgICAgICAgICAgcGh5c2lj YWwgc2xvdCBzYjFfc2xvdC0tLT58IC0tLS0+IHN0YW5kYnkxIChjb25uZWN0ZWQgdmlhIHN0cmVh bWluZyByZXBsaWNhdGlvbikKLSMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgbHN1YjFfc2xvdChzeW5jZWRfc2xvdCkKKyMJCQkJfCAtLS0t PiBzdGFuZGJ5MSAocHJpbWFyeV9zbG90X25hbWUgPSBzYjFfc2xvdCkKKyMJCQkJfCAtLS0tPiBz dGFuZGJ5MiAocHJpbWFyeV9zbG90X25hbWUgPSBzYjJfc2xvdCkKKyMgcHJpbWFyeSAtLS0tLQl8 CisjCQkJCXwgLS0tLT4gc3Vic2NyaWJlcjEgKGZhaWxvdmVyID0gdHJ1ZSkKKyMJCQkJfCAtLS0t PiBzdWJzY3JpYmVyMiAoZmFpbG92ZXIgPSBmYWxzZSkKKyMKKyMgc3RhbmRieV9zbG90X25hbWVz ID0gJ3NiMV9zbG90JworIworIyBTZXQgdXAgaXMgY29uZmlndXJlZCBpbiBzdWNoIGEgd2F5IHRo YXQgdGhlIGxvZ2ljYWwgc2xvdCBvZiBzdWJzY3JpYmVyMSBpcworIyBlbmFibGVkIGZhaWxvdmVy LCB0aHVzIGl0IHdpbGwgd2FpdCBmb3IgdGhlIHBoeXNpY2FsIHNsb3Qgb2YKKyMgc3RhbmRieTEo c2IxX3Nsb3QpIHRvIGNhdGNoIHVwIGJlZm9yZSBzZW5kaW5nIGRlY29kZWQgY2hhbmdlcyB0byBz dWJzY3JpYmVyMS4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiAKKyMgQ3JlYXRlIHByaW1hcnkKIG15ICRwcmltYXJ5ID0gJHB1Ymxpc2hlcjsKKwor JHByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywKKwlxe1NFTEVDVCBwZ19jcmVhdGVfcGh5c2ljYWxf cmVwbGljYXRpb25fc2xvdCgnc2IxX3Nsb3QnKTt9KTsKKyRwcmltYXJ5LT5wc3FsKCdwb3N0Z3Jl cycsCisJcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMl9z bG90Jyk7fSk7CisKIG15ICRiYWNrdXBfbmFtZSA9ICdiYWNrdXAnOwogJHByaW1hcnktPmJhY2t1 cCgkYmFja3VwX25hbWUpOwogCkBAIC0xMDcsMjEgKzEyMCwyMDEgQEAgJHN0YW5kYnkxLT5pbml0 X2Zyb21fYmFja3VwKAogCSRwcmltYXJ5LCAkYmFja3VwX25hbWUsCiAJaGFzX3N0cmVhbWluZyA9 PiAxLAogCWhhc19yZXN0b3JpbmcgPT4gMSk7Ciskc3RhbmRieTEtPmFwcGVuZF9jb25mKAorCSdw b3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK3ByaW1hcnlfc2xvdF9uYW1lID0gJ3NiMV9zbG90JworKSk7 Ciskc3RhbmRieTEtPnN0YXJ0OworJHByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRz dGFuZGJ5MSk7CisKKyMgQ3JlYXRlIGFub3RoZXIgc3RhbmRieQorbXkgJHN0YW5kYnkyID0gUG9z dGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdGFuZGJ5MicpOworJHN0YW5kYnkyLT5pbml0 X2Zyb21fYmFja3VwKAorCSRwcmltYXJ5LCAkYmFja3VwX25hbWUsCisJaGFzX3N0cmVhbWluZyA9 PiAxLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7Ciskc3RhbmRieTItPmFwcGVuZF9jb25mKAorCSdw b3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK3ByaW1hcnlfc2xvdF9uYW1lID0gJ3NiMl9zbG90JworKSk7 Ciskc3RhbmRieTItPnN0YXJ0OworJHByaW1hcnktPndhaXRfZm9yX3JlcGxheV9jYXRjaHVwKCRz dGFuZGJ5Mik7CisKKyMgQ29uZmlndXJlIHByaW1hcnkgdG8gZGlzYWxsb3cgYW55IGxvZ2ljYWwg c2xvdHMgdGhhdCBlbmFibGVkIGZhaWxvdmVyIGZyb20KKyMgZ2V0dGluZyBhaGVhZCBvZiBzcGVj aWZpZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCAoc2IxX3Nsb3QpLgorJHByaW1hcnktPmFw cGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK3N0YW5kYnlfc2xvdF9uYW1lcyA9 ICdzYjFfc2xvdCcKKykpOworJHByaW1hcnktPnJlbG9hZDsKKworJHByaW1hcnktPnNhZmVfcHNx bCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsi KTsKKworIyBDcmVhdGUgYSB0YWJsZSBhbmQgcmVmcmVzaCB0aGUgcHVibGljYXRpb24KKyRzdWJz Y3JpYmVyMS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxWworCUNSRUFURSBUQUJMRSB0YWJf aW50IChhIGludCBQUklNQVJZIEtFWSk7CisJQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlz dWIxIFJFRlJFU0ggUFVCTElDQVRJT04gV0lUSCAoY29weV9kYXRhID0gZmFsc2UpOworXSk7CisK KyMgQ3JlYXRlIGFub3RoZXIgc3Vic2NyaWJlciBub2RlIHdpdGhvdXQgZW5hYmxpbmcgZmFpbG92 ZXIsIHdhaXQgZm9yIHN5bmMgdG8KKyMgY29tcGxldGUKK215ICRzdWJzY3JpYmVyMiA9IFBvc3Rn cmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcjInKTsKKyRzdWJzY3JpYmVyMi0+ aW5pdDsKKyRzdWJzY3JpYmVyMi0+c3RhcnQ7Ciskc3Vic2NyaWJlcjItPnNhZmVfcHNxbCgKKwkn cG9zdGdyZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJTUFSWSBLRVkp OworCUNSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjIgQ09OTkVDVElPTiAnJHB1Ymxp c2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX215cHViIFdJVEggKHNsb3RfbmFtZSA9 IGxzdWIyX3Nsb3QsIGNvcHlfZGF0YSA9IGZhbHNlKTsKK10pOwogCisjIFN0b3AgdGhlIHN0YW5k YnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcGh5c2ljYWwgcmVwbGljYXRpb24gc2xv dCBzbworIyB0aGF0IHRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgd29uJ3QgcmVjZWl2ZSBj aGFuZ2VzIHVudGlsIHRoZSBzdGFuZGJ5CisjIGNvbWVzIHVwLgorJHN0YW5kYnkxLT5zdG9wOwor CisjIENyZWF0ZSBzb21lIGRhdGEgb24gdGhlIHByaW1hcnkKK215ICRwcmltYXJ5X3Jvd19jb3Vu dCA9IDEwOworJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0 YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgJHByaW1hcnlfcm93X2NvdW50KTsiKTsK KworIyBXYWl0IGZvciB0aGUgc3RhbmRieSB0aGF0J3MgdXAgYW5kIHJ1bm5pbmcgZ2V0cyB0aGUg ZGF0YSBmcm9tIHByaW1hcnkKKyRwcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3Rh bmRieTIpOworbXkgJHJlc3VsdCA9ICRzdGFuZGJ5Mi0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7Citp cygkcmVzdWx0LCAndCcsICJzdGFuZGJ5MiBnZXRzIGRhdGEgZnJvbSBwcmltYXJ5Iik7CisKKyMg V2FpdCBmb3IgdGhlIHN1YnNjcmlwdGlvbiB0aGF0J3MgdXAgYW5kIHJ1bm5pbmcgYW5kIGlzIG5v dCBlbmFibGVkIGZvciBmYWlsb3Zlci4KKyMgSXQgZ2V0cyB0aGUgZGF0YSBmcm9tIHByaW1hcnkg d2l0aG91dCB3YWl0aW5nIGZvciBhbnkgc3RhbmRieXMuCiskcHVibGlzaGVyLT53YWl0X2Zvcl9j YXRjaHVwKCdyZWdyZXNzX215c3ViMicpOworJHJlc3VsdCA9ICRzdWJzY3JpYmVyMi0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3VudCBG Uk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsICJzdWJzY3JpYmVyMiBnZXRzIGRhdGEg ZnJvbSBwcmltYXJ5Iik7CisKKyMgVGhlIHN1YnNjcmlwdGlvbiB0aGF0J3MgdXAgYW5kIHJ1bm5p bmcgYW5kIGlzIGVuYWJsZWQgZm9yIGZhaWxvdmVyCisjIGRvZXNuJ3QgZ2V0IHRoZSBkYXRhIGZy b20gcHJpbWFyeSBhbmQga2VlcHMgd2FpdGluZyBmb3IgdGhlCisjIHN0YW5kYnkgc3BlY2lmaWVk IGluIHN0YW5kYnlfc2xvdF9uYW1lcy4KKyRyZXN1bHQgPQorICAkc3Vic2NyaWJlcjEtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopID0gMCBGUk9NIHRhYl9pbnQ7Iik7Citp cygkcmVzdWx0LCAndCcsCisJInN1YnNjcmliZXIxIGRvZXNuJ3QgZ2V0IGRhdGEgZnJvbSBwcmlt YXJ5IHVudGlsIHN0YW5kYnkxIGFja25vd2xlZGdlcyBjaGFuZ2VzIgorKTsKKworIyBTdGFydCB0 aGUgc3RhbmRieSBzcGVjaWZpZWQgaW4gc3RhbmRieV9zbG90X25hbWVzIGFuZCB3YWl0IGZvciBp dCB0byBjYXRjaAorIyB1cCB3aXRoIHRoZSBwcmltYXJ5LgorJHN0YW5kYnkxLT5zdGFydDsKKyRw cmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRieTEpOworJHJlc3VsdCA9ICRz dGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmlt YXJ5X3Jvd19jb3VudCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsICJzdGFuZGJ5 MSBnZXRzIGRhdGEgZnJvbSBwcmltYXJ5Iik7CisKKyMgTm93IHRoYXQgdGhlIHN0YW5kYnkgc3Bl Y2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcyBpcyB1cCBhbmQgcnVubmluZywKKyMgcHJpbWFy eSBtdXN0IHNlbmQgdGhlIGRlY29kZWQgY2hhbmdlcyB0byBzdWJzY3JpcHRpb24gZW5hYmxlZCBm b3IgZmFpbG92ZXIKKyMgV2hpbGUgdGhlIHN0YW5kYnkgd2FzIGRvd24sIHRoaXMgc3Vic2NyaWJl ciBkaWRuJ3QgcmVjZWl2ZSBhbnkgZGF0YSBmcm9tCisjIHByaW1hcnkgaS5lLiB0aGUgcHJpbWFy eSBkaWRuJ3QgYWxsb3cgaXQgdG8gZ28gYWhlYWQgb2Ygc3RhbmRieS4KKyRwdWJsaXNoZXItPndh aXRfZm9yX2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7CiskcmVzdWx0ID0gJHN1YnNjcmliZXIx LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopID0gJHByaW1hcnlfcm93 X2NvdW50IEZST00gdGFiX2ludDsiKTsKK2lzKCRyZXN1bHQsICd0JywKKwkic3Vic2NyaWJlcjEg Z2V0cyBkYXRhIGZyb20gcHJpbWFyeSBhZnRlciBzdGFuZGJ5MSBhY2tub3dsZWRnZXMgY2hhbmdl cyIpOworCisjIFN0b3AgdGhlIHN0YW5kYnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQg cGh5c2ljYWwgcmVwbGljYXRpb24gc2xvdCBzbworIyB0aGF0IHRoZSBsb2dpY2FsIHJlcGxpY2F0 aW9uIHNsb3Qgd29uJ3QgcmVjZWl2ZSBjaGFuZ2VzIHVudGlsIHRoZSBzdGFuZGJ5CisjIHNsb3Qn cyByZXN0YXJ0X2xzbiBpcyBhZHZhbmNlZCBvciB0aGUgc2xvdCBpcyByZW1vdmVkIGZyb20gdGhl CisjIHN0YW5kYnlfc2xvdF9uYW1lcyBsaXN0LgorJHB1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJUUlVOQ0FURSB0YWJfaW50OyIpOworJHB1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgncmVncmVzc19teXN1YjEnKTsKKyRzdGFuZGJ5MS0+c3RvcDsKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVyaWZ5IHRoYXQgd2hlbiB1 c2luZyBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgdG8gY29uc3VtZSBjaGFuZ2VzIGZyb20g YQorIyBsb2dpY2FsIHNsb3Qgd2l0aCBmYWlsb3ZlciBlbmFibGVkLCBpdCB3aWxsIGFsc28gd2Fp dCBmb3IgdGhlIHNsb3RzIHNwZWNpZmllZAorIyBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgdG8gY2F0 Y2ggdXAuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCisjIENyZWF0ZSBhIGxvZ2ljYWwgJ3Rlc3RfZGVjb2RpbmcnIHJlcGxpY2F0aW9uIHNsb3Qg d2l0aCBmYWlsb3ZlciBlbmFibGVkCiskcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3Rlc3Rfc2xvdCcs ICd0ZXN0X2RlY29kaW5nJywgZmFsc2UsIGZhbHNlLCB0cnVlKTsiCispOworCitteSAkYmFja19x ID0gJHByaW1hcnktPmJhY2tncm91bmRfcHNxbCgncG9zdGdyZXMnLCBvbl9lcnJvcl9zdG9wID0+ IDApOworbXkgJHBpZCA9ICRiYWNrX3EtPnF1ZXJ5KCdTRUxFQ1QgcGdfYmFja2VuZF9waWQoKScp OworCisjIFRyeSBhbmQgZ2V0IGNoYW5nZXMgZnJvbSB0aGUgbG9naWNhbCBzbG90IHdpdGggZmFp bG92ZXIgZW5hYmxlZC4KK215ICRvZmZzZXQgPSAtcyAkcHJpbWFyeS0+bG9nZmlsZTsKKyRiYWNr X3EtPnF1ZXJ5X3VudGlsKHFyLy8sCisJIlNFTEVDVCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5n ZXMoJ3Rlc3Rfc2xvdCcsIE5VTEwsIE5VTEwpO1xuIik7CisKKyMgV2FpdCB1bnRpbCB0aGUgcHJp bWFyeSBzZXJ2ZXIgbG9ncyBhIHdhcm5pbmcgaW5kaWNhdGluZyB0aGF0IGl0IGlzIHdhaXRpbmcK KyMgZm9yIHRoZSBzYjFfc2xvdCB0byBjYXRjaCB1cC4KKyRwcmltYXJ5LT53YWl0X2Zvcl9sb2co CisJcXIvV0FSTklORzogKCBbQS1aMC05XSs6KT8gcmVwbGljYXRpb24gc2xvdCBcInNiMV9zbG90 XCIgc3BlY2lmaWVkIGluIHBhcmFtZXRlciBcInN0YW5kYnlfc2xvdF9uYW1lc1wiIGRvZXMgbm90 IGhhdmUgYWN0aXZlX3BpZC8sCisJJG9mZnNldCk7CisKK29rKCRwcmltYXJ5LT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCBwZ19jYW5jZWxfYmFja2VuZCgkcGlkKSIpLAorCSJjYW5jZWxs aW5nIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcyBjb21tYW5kIik7CisKKyRiYWNrX3EtPnF1 aXQ7CisKKyRwdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90KCd0ZXN0X3Nsb3QnKTsiCispOworCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRoYXQgbG9naWNhbCBy ZXBsaWNhdGlvbiB3aWxsIHdhaXQgZm9yIHRoZSB1c2VyLWNyZWF0ZWQgaW5hY3RpdmUKKyMgcGh5 c2ljYWwgc2xvdCB0byBjYXRjaCB1cCB1bnRpbCB3ZSByZW1vdmUgdGhlIHNsb3QgZnJvbSBzdGFu ZGJ5X3Nsb3RfbmFtZXMuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCisjIENyZWF0ZSBzb21lIGRhdGEgb24gdGhlIHByaW1hcnkKKyRwcmltYXJ5 X3Jvd19jb3VudCA9IDEwOworJHByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNF UlQgSU5UTyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMSwgJHByaW1hcnlfcm93X2Nv dW50KTsiKTsKKworJHJlc3VsdCA9CisgICRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJTRUxFQ1QgY291bnQoKikgPSAwIEZST00gdGFiX2ludDsiKTsKK2lzKCRyZXN1bHQsICd0 JywKKwkic3Vic2NyaWJlcjEgZG9lc24ndCBnZXQgZGF0YSBhcyB0aGUgc2IxX3Nsb3QgZG9lc24n dCBjYXRjaCB1cCIpOworCisjIFJlbW92ZSB0aGUgc3RhbmRieSBmcm9tIHRoZSBzdGFuZGJ5X3Ns b3RfbmFtZXMgbGlzdCBhbmQgcmVsb2FkIHRoZQorIyBjb25maWd1cmF0aW9uLgorJHByaW1hcnkt PmFkanVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnc3RhbmRieV9zbG90X25hbWVzJywgIicn Iik7CiskcHJpbWFyeS0+cmVsb2FkOworCisjIFNpbmNlIHRoZXJlIGFyZSBubyBzbG90cyBpbiBz dGFuZGJ5X3Nsb3RfbmFtZXMsIHRoZSBwcmltYXJ5IHNlcnZlciBzaG91bGQgbm93CisjIHNlbmQg dGhlIGRlY29kZWQgY2hhbmdlcyB0byB0aGUgc3Vic2NyaXB0aW9uLgorJHB1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKKyRyZXN1bHQgPSAkc3Vic2NyaWJlcjEt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3df Y291bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLAorCSJzdWJzY3JpYmVyMSBn ZXRzIGRhdGEgZnJvbSBwcmltYXJ5IGFmdGVyIHN0YW5kYnkxIGlzIHJlbW92ZWQgZnJvbSB0aGUg c3RhbmRieV9zbG90X25hbWVzIGxpc3QiCispOworCisjIFB1dCB0aGUgc3RhbmRieSBiYWNrIG9u IHRoZSBwcmltYXJ5X3Nsb3RfbmFtZSBmb3IgdGhlIHJlc3Qgb2YgdGhlIHRlc3RzCiskcHJpbWFy eS0+YWRqdXN0X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICdzdGFuZGJ5X3Nsb3RfbmFtZXMnLCAn c2IxX3Nsb3QnKTsKKyRwcmltYXJ5LT5yZWxvYWQ7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgbG9naWNhbCBmYWlsb3ZlciBzbG90 cyBvbiB0aGUgc3RhbmRieQorIyBDb25maWd1cmUgc3RhbmRieTEgdG8gcmVwbGljYXRlIGFuZCBz eW5jaHJvbml6ZSBsb2dpY2FsIHNsb3RzIGNvbmZpZ3VyZWQKKyMgZm9yIGZhaWxvdmVyIG9uIHRo ZSBwcmltYXJ5CisjCisjICAgICAgICAgICAgICBmYWlsb3ZlciBzbG90IGxzdWIxX3Nsb3QtPnwg LS0tLT4gc3Vic2NyaWJlcjEgKGNvbm5lY3RlZCB2aWEgbG9naWNhbCByZXBsaWNhdGlvbikKKyMg cHJpbWFyeSAtLS0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorIyAgICAgICAgICAgICAg cGh5c2ljYWwgc2xvdCBzYjFfc2xvdC0tLT58IC0tLS0+IHN0YW5kYnkxIChjb25uZWN0ZWQgdmlh IHN0cmVhbWluZyByZXBsaWNhdGlvbikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgbHN1YjFfc2xvdChzeW5jZWRfc2xvdCkKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgQ3JlYXRl IGEgc3RhbmRieQogbXkgJGNvbm5zdHJfMSA9ICRwcmltYXJ5LT5jb25uc3RyOwogJHN0YW5kYnkx LT5hcHBlbmRfY29uZigKIAkncG9zdGdyZXNxbC5jb25mJywgcXEoCiBlbmFibGVfc3luY3Nsb3Qg PSB0cnVlCiBob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCi1wcmltYXJ5X3Nsb3RfbmFtZSA9ICdz YjFfc2xvdCcKIHByaW1hcnlfY29ubmluZm8gPSAnJGNvbm5zdHJfMSBkYm5hbWU9cG9zdGdyZXMn CiApKTsKIAotJHByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywKLQlxe1NFTEVDVCBwZ19jcmVhdGVf cGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnc2IxX3Nsb3QnKTt9KTsKLQogbXkgJHN0YW5kYnkx X2Nvbm5pbmZvID0gJHN0YW5kYnkxLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOwotbXkg JG9mZnNldCA9IC1zICRzdGFuZGJ5MS0+bG9nZmlsZTsKKyRvZmZzZXQgPSAtcyAkc3RhbmRieTEt PmxvZ2ZpbGU7CiAKICMgU3RhcnQgdGhlIHN0YW5kYnkgc28gdGhhdCBzbG90IHN5bmNpbmcgY2Fu IGJlZ2luCiAkc3RhbmRieTEtPnN0YXJ0OwpAQCAtMTUwLDE4ICszNDMsMTEgQEAgaXMoJHN0YW5k YnkxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKICMgSW5zZXJ0IGRhdGEgb24gdGhlIHByaW1hcnkK ICRwcmltYXJ5LT5zYWZlX3BzcWwoCiAJJ3Bvc3RncmVzJywgcXFbCi0JQ1JFQVRFIFRBQkxFIHRh Yl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlUUlVOQ0FURSBUQUJMRSB0YWJfaW50OwogCUlO U0VSVCBJTlRPIHRhYl9pbnQgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCAxMCk7CiBdKTsKIAot IyBTdWJzY3JpYmUgdG8gdGhlIG5ldyB0YWJsZSBkYXRhIGFuZCB3YWl0IGZvciBpdCB0byBhcnJp dmUKLSRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKAotCSdwb3N0Z3JlcycsIHFxWwotCUNSRUFURSBU QUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7Ci0JQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfbXlzdWIxIFJFRlJFU0ggUFVCTElDQVRJT047Ci1dKTsKLQotJHN1YnNjcmliZXIxLT53 YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYzsKKyRwcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCdy ZWdyZXNzX215c3ViMScpOwogCiAjIERvIG5vdCBhbGxvdyBhbnkgZnVydGhlciBhZHZhbmNlbWVu dCBvZiB0aGUgcmVzdGFydF9sc24gYW5kCiAjIGNvbmZpcm1lZF9mbHVzaF9sc24gZm9yIHRoZSBs c3ViMV9zbG90LgpAQCAtMTk5LDcgKzM4NSw5IEBAICRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICdBTFRFUiBTWVNURU0gU0VUIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb2ZmOycpCiAk c3RhbmRieTEtPnJlc3RhcnQ7CiAKICMgQXR0ZW1wdGluZyB0byBwZXJmb3JtIGxvZ2ljYWwgZGVj b2Rpbmcgb24gYSBzeW5jZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yCi1teSAoJHJl c3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKK215 ICgkc3Rkb3V0LCAkc3RkZXJyKTsKKworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0 YW5kYnkxLT5wc3FsKCdwb3N0Z3JlcycsCiAJInNlbGVjdCAqIGZyb20gcGdfbG9naWNhbF9zbG90 X2dldF9jaGFuZ2VzKCdsc3ViMV9zbG90JyxOVUxMLE5VTEwpOyIpOwogb2soJHN0ZGVyciA9fiAv RVJST1I6ICBjYW5ub3QgdXNlIHJlcGxpY2F0aW9uIHNsb3QgImxzdWIxX3Nsb3QiIGZvciBsb2dp Y2FsIGRlY29kaW5nLywKIAkibG9naWNhbCBkZWNvZGluZyBpcyBub3QgYWxsb3dlZCBvbiBzeW5j ZWQgc2xvdCIpOwotLSAKMi4zNC4xCgo= --000000000000fde609060f87276b Content-Type: application/octet-stream; name="v65-0005-Non-replication-connection-and-app_name-change.patch" Content-Disposition: attachment; filename="v65-0005-Non-replication-connection-and-app_name-change.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lroufv7a4 RnJvbSAyOGZmMzc1MWU2NmI1NWI4NDdhZWNlMmRhOTQ5OGUyODIyNmUwMDk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTYgSmFuIDIwMjQgMTY6MjI6MDUgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NSA1LzZdIE5vbiByZXBsaWNhdGlvbiBjb25uZWN0aW9uIGFuZCBhcHBfbmFtZSBjaGFuZ2UuCgpD aGFuZ2VzIGluIHRoaXMgcGF0Y2g6CjEpIENvbnZlcnQgcmVwbGljYXRpb24gY29ubmVjdGlvbiB0 byBub24tcmVwbGljYXRpb24gb25lIGluIHNsb3RzeW5jIHdvcmtlci4KMikgVXNlIGFwcF9uYW1l IGFzIHtjbHVzdGVyX25hbWV9X3Nsb3RzeW5jd29ya2VyIGluIHRoZSBzbG90c3luYyB3b3JrZXIK Y29ubmVjdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMg ICAgICAgfCAxMiArKystLQogLi4uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j ICAgICAgIHwgNDQgKysrKysrKysrKysrKy0tLS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9zbG90c3luYy5jICAgIHwgMTQgKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL3RhYmxlc3luYy5jICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC93b3JrZXIuYyAgICAgIHwgIDQgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHJlY2VpdmVyLmMgICAgICAgICB8ICAzICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxy ZWNlaXZlci5oICAgICAgICAgfCAgNSArKy0KIDcgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9u cygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c3Vic2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21k cy5jCmluZGV4IGY1MGJlMjlkOTkuLjEzZGE2YjE0NjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMKQEAgLTc1Myw3ICs3NTMsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJCS8q IFRyeSB0byBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCiAJCW11c3RfdXNlX3Bhc3N3b3Jk ID0gIXN1cGVydXNlcl9hcmcob3duZXIpICYmIG9wdHMucGFzc3dvcmRyZXF1aXJlZDsKLQkJd3Jj b25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAor CQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSAvKiByZXBsaWNhdGlvbiAq LyAsCisJCQkJCQkJCXRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCQlzdG10LT5zdWJu YW1lLCAmZXJyKTsKIAkJaWYgKCF3cmNvbm4pCiAJCQllcmVwb3J0KEVSUk9SLApAQCAtOTA0LDcg KzkwNSw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uX3JlZnJlc2goU3Vic2NyaXB0aW9uICpzdWIsIGJv b2wgY29weV9kYXRhLAogCiAJLyogVHJ5IHRvIGNvbm5lY3QgdG8gdGhlIHB1Ymxpc2hlci4gKi8K IAltdXN0X3VzZV9wYXNzd29yZCA9IHN1Yi0+cGFzc3dvcmRyZXF1aXJlZCAmJiAhc3ViLT5vd25l cnN1cGVydXNlcjsKLQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVl LCBtdXN0X3VzZV9wYXNzd29yZCwKKwl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5p bmZvLCB0cnVlIC8qIHJlcGxpY2F0aW9uICovICwKKwkJCQkJCQl0cnVlLCBtdXN0X3VzZV9wYXNz d29yZCwKIAkJCQkJCQlzdWItPm5hbWUsICZlcnIpOwogCWlmICghd3Jjb25uKQogCQllcmVwb3J0 KEVSUk9SLApAQCAtMTUzMCw3ICsxNTMyLDggQEAgQWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAkJLyogVHJ5IHRvIGNv bm5lY3QgdG8gdGhlIHB1Ymxpc2hlci4gKi8KIAkJbXVzdF91c2VfcGFzc3dvcmQgPSBzdWItPnBh c3N3b3JkcmVxdWlyZWQgJiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7Ci0JCXdyY29ubiA9IHdhbHJj dl9jb25uZWN0KHN1Yi0+Y29ubmluZm8sIHRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAorCQl3cmNv bm4gPSB3YWxyY3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlIC8qIHJlcGxpY2F0aW9uICov ICwKKwkJCQkJCQkJdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCQkJCXN1Yi0+bmFtZSwg JmVycik7CiAJCWlmICghd3Jjb25uKQogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTE3ODEsNyArMTc4 NCw4IEBAIERyb3BTdWJzY3JpcHRpb24oRHJvcFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wg aXNUb3BMZXZlbCkKIAkgKi8KIAlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7 CiAKLQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSwgbXVzdF91c2VfcGFz c3dvcmQsCisJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHRydWUgLyogcmVwbGlj YXRpb24gKi8gLAorCQkJCQkJCXRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCXN1Ym5h bWUsICZlcnIpOwogCWlmICh3cmNvbm4gPT0gTlVMTCkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j CmluZGV4IDkzNGMxYTNhYjAuLmQ2ZjBjYWUwYTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCkBA IC02LDYgKzYsOSBAQAogICogbG9hZGVkIGFzIGEgZHluYW1pYyBtb2R1bGUgdG8gYXZvaWQgbGlu a2luZyB0aGUgbWFpbiBzZXJ2ZXIgYmluYXJ5IHdpdGgKICAqIGxpYnBxLgogICoKKyAqIEFwYXJ0 IGZyb20gd2FscmVjZWl2ZXIsIHRoZSBsaWJwcS1zcGVjaWZpYyByb3V0aW5lcyBoZXJlIGFyZSBu b3cgYmVpbmcgdXNlZAorICogYnkgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXJzIGFuZCBzbG90 c3luYyB3b3JrZXIgYXMgd2VsbC4KKwogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwLTIw MjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgogICoKQEAgLTUwLDcg KzUzLDggQEAgc3RydWN0IFdhbFJlY2VpdmVyQ29ubgogCiAvKiBQcm90b3R5cGVzIGZvciBpbnRl cmZhY2UgZnVuY3Rpb25zICovCiBzdGF0aWMgV2FsUmVjZWl2ZXJDb25uICpsaWJwcXJjdl9jb25u ZWN0KGNvbnN0IGNoYXIgKmNvbm5pbmZvLAotCQkJCQkJCQkJCSBib29sIGxvZ2ljYWwsIGJvb2wg bXVzdF91c2VfcGFzc3dvcmQsCisJCQkJCQkJCQkJIGJvb2wgcmVwbGljYXRpb24sIGJvb2wgbG9n aWNhbCwKKwkJCQkJCQkJCQkgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJCQkJCQkgY29u c3QgY2hhciAqYXBwbmFtZSwgY2hhciAqKmVycik7CiBzdGF0aWMgdm9pZCBsaWJwcXJjdl9jaGVj a19jb25uaW5mbyhjb25zdCBjaGFyICpjb25uaW5mbywKIAkJCQkJCQkJCWJvb2wgbXVzdF91c2Vf cGFzc3dvcmQpOwpAQCAtMTI1LDcgKzEyOSwxMiBAQCBfUEdfaW5pdCh2b2lkKQogfQogCiAvKgot ICogRXN0YWJsaXNoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBwcmltYXJ5IHNlcnZlciBmb3IgWExP RyBzdHJlYW1pbmcKKyAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBz ZXJ2ZXIuCisgKgorICogVGhlIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgY291bGQgYmUgZWl0aGVy IGEgcmVwbGljYXRpb24gb25lIG9yCisgKiBhIG5vbi1yZXBsaWNhdGlvbiBvbmUgYmFzZWQgb24g aW5wdXQgYXJndW1lbnQgJ3JlcGxpY2F0aW9uJy4gQW5kIGZ1cnRoZXIKKyAqIGlmIGl0IGlzIGEg cmVwbGljYXRpb24gY29ubmVjdGlvbiwgaXQgY291bGQgYmUgZWl0aGVyIGxvZ2ljYWwgb3IgcGh5 c2ljYWwKKyAqIGJhc2VkIG9uIGlucHV0IGFyZ3VtZW50ICdsb2dpY2FsJy4KICAqCiAgKiBJZiBh biBlcnJvciBvY2N1cnMsIHRoaXMgZnVuY3Rpb24gd2lsbCBub3JtYWxseSByZXR1cm4gTlVMTCBh bmQgc2V0ICplcnIKICAqIHRvIGEgcGFsbG9jJ2VkIGVycm9yIG1lc3NhZ2UuIEhvd2V2ZXIsIGlm IG11c3RfdXNlX3Bhc3N3b3JkIGlzIHRydWUgYW5kCkBAIC0xMzYsOCArMTQ1LDggQEAgX1BHX2lu aXQodm9pZCkKICAqIGNhc2UuCiAgKi8KIHN0YXRpYyBXYWxSZWNlaXZlckNvbm4gKgotbGlicHFy Y3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywgYm9vbCBsb2dpY2FsLCBib29sIG11c3Rf dXNlX3Bhc3N3b3JkLAotCQkJCSBjb25zdCBjaGFyICphcHBuYW1lLCBjaGFyICoqZXJyKQorbGli cHFyY3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywgYm9vbCByZXBsaWNhdGlvbiwgYm9v bCBsb2dpY2FsLAorCQkJCSBib29sIG11c3RfdXNlX3Bhc3N3b3JkLCBjb25zdCBjaGFyICphcHBu YW1lLCBjaGFyICoqZXJyKQogewogCVdhbFJlY2VpdmVyQ29ubiAqY29ubjsKIAljb25zdCBjaGFy ICprZXlzWzZdOwpAQCAtMTU5LDE3ICsxNjgsMjYgQEAgbGlicHFyY3ZfY29ubmVjdChjb25zdCBj aGFyICpjb25uaW5mbywgYm9vbCBsb2dpY2FsLCBib29sIG11c3RfdXNlX3Bhc3N3b3JkLAogCSAq LwogCWtleXNbaV0gPSAiZGJuYW1lIjsKIAl2YWxzW2ldID0gY29ubmluZm87Ci0Ja2V5c1srK2ld ID0gInJlcGxpY2F0aW9uIjsKLQl2YWxzW2ldID0gbG9naWNhbCA/ICJkYXRhYmFzZSIgOiAidHJ1 ZSI7Ci0JaWYgKCFsb2dpY2FsKQorCisJLyogV2UgY2FuIG5vdCBoYXZlIGxvZ2ljYWwgd2l0aG91 dCByZXBsaWNhdGlvbiAqLworCWlmICghcmVwbGljYXRpb24pCisJCUFzc2VydCghbG9naWNhbCk7 CisJZWxzZQogCXsKLQkJLyoKLQkJICogVGhlIGRhdGFiYXNlIG5hbWUgaXMgaWdub3JlZCBieSB0 aGUgc2VydmVyIGluIHJlcGxpY2F0aW9uIG1vZGUsIGJ1dAotCQkgKiBzcGVjaWZ5ICJyZXBsaWNh dGlvbiIgZm9yIC5wZ3Bhc3MgbG9va3VwLgotCQkgKi8KLQkJa2V5c1srK2ldID0gImRibmFtZSI7 Ci0JCXZhbHNbaV0gPSAicmVwbGljYXRpb24iOworCQlrZXlzWysraV0gPSAicmVwbGljYXRpb24i OworCQl2YWxzW2ldID0gbG9naWNhbCA/ICJkYXRhYmFzZSIgOiAidHJ1ZSI7CisKKwkJaWYgKCFs b2dpY2FsKQorCQl7CisJCQkvKgorCQkJICogVGhlIGRhdGFiYXNlIG5hbWUgaXMgaWdub3JlZCBi eSB0aGUgc2VydmVyIGluIHJlcGxpY2F0aW9uIG1vZGUsCisJCQkgKiBidXQgc3BlY2lmeSAicmVw bGljYXRpb24iIGZvciAucGdwYXNzIGxvb2t1cC4KKwkJCSAqLworCQkJa2V5c1srK2ldID0gImRi bmFtZSI7CisJCQl2YWxzW2ldID0gInJlcGxpY2F0aW9uIjsKKwkJfQogCX0KKwogCWtleXNbKytp XSA9ICJmYWxsYmFja19hcHBsaWNhdGlvbl9uYW1lIjsKIAl2YWxzW2ldID0gYXBwbmFtZTsKIAlp ZiAobG9naWNhbCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv c2xvdHN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpp bmRleCBlNmQzNzhjOTg3Li4zMWQ5OWIwZGM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9zbG90c3luYy5jCkBAIC0xMDUwLDYgKzEwNTAsNyBAQCBSZXBsU2xvdFN5bmNXb3Jr ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJYm9vbAkJcHJpbWFyeV9zbG90X2ludmFs aWQ7CiAJY2hhcgkgICAqZXJyOwogCXNpZ2ptcF9idWYJbG9jYWxfc2lnam1wX2J1ZjsKKwlTdHJp bmdJbmZvRGF0YSBhcHBfbmFtZTsKIAogCWFtX3Nsb3RzeW5jX3dvcmtlciA9IHRydWU7CiAKQEAg LTExNTEsMTMgKzExNTIsMjIgQEAgUmVwbFNsb3RTeW5jV29ya2VyTWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKQogCiAJU2V0UHJvY2Vzc2luZ01vZGUoTm9ybWFsUHJvY2Vzc2luZyk7CiAKKwlp bml0U3RyaW5nSW5mbygmYXBwX25hbWUpOworCWlmIChjbHVzdGVyX25hbWVbMF0pCisJCWFwcGVu ZFN0cmluZ0luZm8oJmFwcF9uYW1lLCAiJXNfJXMiLCBjbHVzdGVyX25hbWUsICJzbG90c3luY3dv cmtlciIpOworCWVsc2UKKwkJYXBwZW5kU3RyaW5nSW5mbygmYXBwX25hbWUsICIlcyIsICJzbG90 c3luY3dvcmtlciIpOworCiAJLyoKIAkgKiBFc3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8gdGhl IHByaW1hcnkgc2VydmVyIGZvciBzbG90cwogCSAqIHN5bmNocm9uaXphdGlvbi4KIAkgKi8KLQl3 cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChQcmltYXJ5Q29ubkluZm8sIHRydWUsIGZhbHNlLAotCQkJ CQkJCWNsdXN0ZXJfbmFtZVswXSA/IGNsdXN0ZXJfbmFtZSA6ICJzbG90c3luY3dvcmtlciIsCisJ d3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoUHJpbWFyeUNvbm5JbmZvLCBmYWxzZSAvKiByZXBsaWNh dGlvbiAqLywKKwkJCQkJCQlmYWxzZSwgZmFsc2UsCisJCQkJCQkJYXBwX25hbWUuZGF0YSwKIAkJ CQkJCQkmZXJyKTsKKwlwZnJlZShhcHBfbmFtZS5kYXRhKTsKKwogCWlmICghd3Jjb25uKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCWVycmNvZGUoRVJSQ09ERV9DT05ORUNUSU9OX0ZBSUxVUkUpLApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKaW5kZXggNWFjYWIz ZjNlMi4uYzVjNmFjNGJhYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC90YWJsZXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Rh Ymxlc3luYy5jCkBAIC0xMzI5LDcgKzEzMjksNyBAQCBMb2dpY2FsUmVwU3luY1RhYmxlU3RhcnQo WExvZ1JlY1B0ciAqb3JpZ2luX3N0YXJ0cG9zKQogCSAqIHNvIHRoYXQgc3luY2hyb25vdXMgcmVw bGljYXRpb24gY2FuIGRpc3Rpbmd1aXNoIHRoZW0uCiAJICovCiAJTG9nUmVwV29ya2VyV2FsUmN2 Q29ubiA9Ci0JCXdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0aW9uLT5jb25uaW5mbywgdHJ1ZSwK KwkJd2FscmN2X2Nvbm5lY3QoTXlTdWJzY3JpcHRpb24tPmNvbm5pbmZvLCB0cnVlIC8qIHJlcGxp Y2F0aW9uICovICwgdHJ1ZSwKIAkJCQkJICAgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCSAgIHNs b3RuYW1lLCAmZXJyKTsKIAlpZiAoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiA9PSBOVUxMKQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKaW5kZXggMzJmZjRjMDMzNi4uMGQ3 OTFjMTg4YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3Jr ZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC00 NTE4LDcgKzQ1MTgsOSBAQCBydW5fYXBwbHlfd29ya2VyKCkKIAltdXN0X3VzZV9wYXNzd29yZCA9 IE15U3Vic2NyaXB0aW9uLT5wYXNzd29yZHJlcXVpcmVkICYmCiAJCSFNeVN1YnNjcmlwdGlvbi0+ b3duZXJzdXBlcnVzZXI7CiAKLQlMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID0gd2FscmN2X2Nvbm5l Y3QoTXlTdWJzY3JpcHRpb24tPmNvbm5pbmZvLCB0cnVlLAorCUxvZ1JlcFdvcmtlcldhbFJjdkNv bm4gPSB3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlvbi0+Y29ubmluZm8sCisJCQkJCQkJCQkJ CXRydWUgLyogcmVwbGljYXRpb24gKi8gLAorCQkJCQkJCQkJCQl0cnVlLAogCQkJCQkJCQkJCQlt dXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJCQkJCQkJTXlTdWJzY3JpcHRpb24tPm5hbWUsICZlcnIp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuYwppbmRleCBlMjlhNjE5NmEzLi44 NzJjY2NiNTRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZl ci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKQEAgLTI5Niw3 ICsyOTYsOCBAQCBXYWxSZWNlaXZlck1haW4odm9pZCkKIAlzaWdwcm9jbWFzayhTSUdfU0VUTUFT SywgJlVuQmxvY2tTaWcsIE5VTEwpOwogCiAJLyogRXN0YWJsaXNoIHRoZSBjb25uZWN0aW9uIHRv IHRoZSBwcmltYXJ5IGZvciBYTE9HIHN0cmVhbWluZyAqLwotCXdyY29ubiA9IHdhbHJjdl9jb25u ZWN0KGNvbm5pbmZvLCBmYWxzZSwgZmFsc2UsCisJd3Jjb25uID0gd2FscmN2X2Nvbm5lY3QoY29u bmluZm8sIHRydWUgLyogcmVwbGljYXRpb24gKi8gLAorCQkJCQkJCWZhbHNlLCBmYWxzZSwKIAkJ CQkJCQljbHVzdGVyX25hbWVbMF0gPyBjbHVzdGVyX25hbWUgOiAid2FscmVjZWl2ZXIiLAogCQkJ CQkJCSZlcnIpOwogCWlmICghd3Jjb25uKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vd2FscmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVy LmgKaW5kZXggMWRmNDNiMjVjMC4uNGFjZGY2NmU0MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93 YWxyZWNlaXZlci5oCkBAIC0yMzcsNiArMjM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV2FsUmN2RXhl Y1Jlc3VsdAogICogcmV0dXJuZWQgd2l0aCAnZXJyJyBpbmNsdWRpbmcgdGhlIGVycm9yIGdlbmVy YXRlZC4KICAqLwogdHlwZWRlZiBXYWxSZWNlaXZlckNvbm4gKigqd2FscmN2X2Nvbm5lY3RfZm4p IChjb25zdCBjaGFyICpjb25uaW5mbywKKwkJCQkJCQkJCQkJICAgYm9vbCByZXBsaWNhdGlvbiwK IAkJCQkJCQkJCQkJICAgYm9vbCBsb2dpY2FsLAogCQkJCQkJCQkJCQkgICBib29sIG11c3RfdXNl X3Bhc3N3b3JkLAogCQkJCQkJCQkJCQkgICBjb25zdCBjaGFyICphcHBuYW1lLApAQCAtNDI1LDgg KzQyNiw4IEBAIHR5cGVkZWYgc3RydWN0IFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZQogCiBleHRl cm4gUEdETExJTVBPUlQgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNlaXZlckZ1bmN0 aW9uczsKIAotI2RlZmluZSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgbG9naWNhbCwgbXVzdF91 c2VfcGFzc3dvcmQsIGFwcG5hbWUsIGVycikgXAotCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxy Y3ZfY29ubmVjdChjb25uaW5mbywgbG9naWNhbCwgbXVzdF91c2VfcGFzc3dvcmQsIGFwcG5hbWUs IGVycikKKyNkZWZpbmUgd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIHJlcGxpY2F0aW9uLCBsb2dp Y2FsLCBtdXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKSBcCisJV2FsUmVjZWl2ZXJGdW5j dGlvbnMtPndhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCByZXBsaWNhdGlvbiwgbG9naWNhbCwgbXVz dF91c2VfcGFzc3dvcmQsIGFwcG5hbWUsIGVycikKICNkZWZpbmUgd2FscmN2X2NoZWNrX2Nvbm5p bmZvKGNvbm5pbmZvLCBtdXN0X3VzZV9wYXNzd29yZCkgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25z LT53YWxyY3ZfY2hlY2tfY29ubmluZm8oY29ubmluZm8sIG11c3RfdXNlX3Bhc3N3b3JkKQogI2Rl ZmluZSB3YWxyY3ZfZ2V0X2Nvbm5pbmZvKGNvbm4pIFwKLS0gCjIuMzQuMQoK --000000000000fde609060f87276b Content-Type: application/octet-stream; name="v65-0001-Enable-setting-failover-property-for-a-slot-thro.patch" Content-Disposition: attachment; filename="v65-0001-Enable-setting-failover-property-for-a-slot-thro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lroufv740 RnJvbSA1NzlhZDA3NmJjZjM1N2Y3MjQ2NjVjMGZjODA2ZTU4ZjljMGJiODk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNCBKYW4gMjAyNCAwOToxNToyNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjY1 IDEvNl0gRW5hYmxlIHNldHRpbmcgZmFpbG92ZXIgcHJvcGVydHkgZm9yIGEgc2xvdCB0aHJvdWdo CiBTUUwgQVBJIGFuZCBzdWJzY3JpcHRpb24gY29tbWFuZHMKClRoaXMgY29tbWl0IGFkZHMgdGhl IGZhaWxvdmVyIHByb3BlcnR5IHRvIHRoZSByZXBsaWNhdGlvbiBzbG90LiBUaGUKZmFpbG92ZXIg cHJvcGVydHkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNsb3Qgd2lsbCBiZSBzeW5jZWQgdG8gdGhl IHN0YW5kYnkKc2VydmVycywgZW5hYmxpbmcgdGhlIHJlc3VtcHRpb24gb2YgY29ycmVzcG9uZGlu ZyBsb2dpY2FsIHJlcGxpY2F0aW9uCmFmdGVyIGZhaWxvdmVyLiBCdXQgbm90ZSB0aGF0IHRoaXMg Y29tbWl0IGRvZXMgbm90IHlldCBpbmNsdWRlIHRoZQpjYXBhYmlsaXR5IHRvIGFjdHVhbGx5IHN5 bmMgdGhlIHJlcGxpY2F0aW9uIHNsb3Q7IHRoZSBuZXh0IHBhdGNoIHdpbGwKYWRkcmVzcyB0aGF0 LgoKSW4gYWRkaXRpb24sIGEgbmV3IHJlcGxpY2F0aW9uIGNvbW1hbmQgbmFtZWQgQUxURVJfUkVQ TElDQVRJT05fU0xPVCBhbmQgYQpjb3JyZXNwb25kaW5nIHdhbHJlY2VpdmVyIEFQSSBmdW5jdGlv biBuYW1lZCB3YWxyY3ZfYWx0ZXJfc2xvdCBoYXZlIGJlZW4KaW1wbGVtZW50ZWQuIFRoZXNlIGFk ZGl0aW9ucyBwcm92aWRlIHN1YnNjcmliZXJzIG9yIHVzZXJzIHRoZSBhYmlsaXR5IHRvCm1vZGlm eSB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgYSByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBwdWJs aXNoZXIuCgpNb3Jlb3ZlciwgYSBuZXcgc3Vic2NyaXB0aW9uIG9wdGlvbiBjYWxsZWQgJ2ZhaWxv dmVyJyBoYXMgYmVlbiBhZGRlZCwKYWxsb3dpbmcgdXNlcnMgdG8gc2V0IGl0IHdoZW4gY3JlYXRp bmcgb3IgYWx0ZXJpbmcgYSBzdWJzY3JpcHRpb24uIEFsc28sCmEgbmV3IHBhcmFtZXRlciAnZmFp bG92ZXInIGlzIGFkZGVkIHRvIHRoZQpwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90 IGZ1bmN0aW9uLgoKVGhlIHZhbHVlIG9mIHRoZSAnZmFpbG92ZXInIGZsYWcgaXMgZGlzcGxheWVk IGFzIHBhcnQgb2YKcGdfcmVwbGljYXRpb25fc2xvdHMgdmlldy4KLS0tCiBjb250cmliL3Rlc3Rf ZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQgICAgICAgfCAgNTggKysrKysrCiBjb250cmliL3Rl c3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsICAgICAgICAgICAgfCAgMTMgKysKIGRvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwogZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBkb2Mvc3JjL3NnbWwv cHJvdG9jb2wuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgNTIgKysrKysrCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sICAgICAgfCAgMTYgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sICAgICB8ICAxMiArKwogZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICAgICAgIHwgIDExICsrCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgMTA1ICsrKysrKysrKystCiAuLi4vbGlicHF3 YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMgICAgICAgfCAgMzggKysrLQogc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyAgIHwgICAxICsKIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9yZXBsX2dyYW0ueSAgICAgICAgICAgfCAgMjAgKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9yZXBsX3NjYW5uZXIubCAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgIDMzICsrKy0KIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAyMiArKy0KIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgICAgIHwgIDY0ICsrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfdXBn cmFkZS9pbmZvLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2Jpbi9wZ191cGdy YWRlL3BnX3VwZ3JhZGUuYyAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ191cGdyYWRl L3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwgICAgIHwgICA2ICstCiBzcmMvYmluL3BzcWwvZGVzY3Jp YmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDE0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbi5oICAgICAgICAgfCAgMTEgKysKIHNyYy9pbmNsdWRlL25vZGVzL3JlcGxu b2Rlcy5oICAgICAgICAgICAgICAgICB8ICAxMiArKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c2xvdC5oICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93 YWxyZWNlaXZlci5oICAgICAgICAgfCAgMTggKy0KIC4uLi90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVy X3Nsb3RzX3N5bmMucGwgICAgICB8ICA4OSArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCAgICB8IDE2NSArKysrKysrKysrLS0tLS0tLS0KIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgICAgICAgICB8ICAgOCArCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDIgKwogMzkgZmlsZXMg Y2hhbmdlZCwgNzQ1IGluc2VydGlvbnMoKyksIDEyNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5 bmMucGwKCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5v dXQgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQKaW5kZXggNjNhOTk0 MGY3My4uMjYxZDg4ODZkMyAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVj dGVkL3Nsb3Qub3V0CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91 dApAQCAtNDA2LDMgKzQwNiw2MSBAQCBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdj b3BpZWRfc2xvdDJfbm90ZW1wJyk7CiAgCiAoMSByb3cpCiAKKy0tIFRlc3QgZmFpbG92ZXIgb3B0 aW9uIG9mIHNsb3RzLgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX3RydWVfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2Us IGZhbHNlLCB0cnVlKTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisK K1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdm YWlsb3Zlcl9mYWxzZV9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSwgZmFsc2UsIGZhbHNl KTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisKK1NFTEVDVCAnaW5p dCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZh dWx0X3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSk7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQorCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRl X3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKKyA/Y29sdW1uPyAK Ky0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisKK1NFTEVDVCBzbG90X25hbWUsIHNsb3RfdHlw ZSwgZmFpbG92ZXIgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90czsKKyAgICAgICBzbG90X25hbWUg ICAgICAgfCBzbG90X3R5cGUgfCBmYWlsb3ZlciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBmYWlsb3Zlcl90cnVlX3Nsb3QgICAgfCBsb2dpY2FsICAg fCB0CisgZmFpbG92ZXJfZmFsc2Vfc2xvdCAgIHwgbG9naWNhbCAgIHwgZgorIGZhaWxvdmVyX2Rl ZmF1bHRfc2xvdCB8IGxvZ2ljYWwgICB8IGYKKyBwaHlzaWNhbF9zbG90ICAgICAgICAgfCBwaHlz aWNhbCAgfCBmCisoNCByb3dzKQorCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdm YWlsb3Zlcl90cnVlX3Nsb3QnKTsKKyBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90Jyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9z bG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZGVmYXVsdF9zbG90Jyk7CisgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJv dykKKworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncGh5c2ljYWxfc2xvdCcpOwor IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5z cWwgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsCmluZGV4IDFhYTI3YzU2Njcu LjQ1YWVhZTdmZDUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5z cWwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbApAQCAtMTc2LDMgKzE3 NiwxNiBAQCBPUkRFUiBCWSBvLnNsb3RfbmFtZSwgYy5zbG90X25hbWU7CiBTRUxFQ1QgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90KCdvcmlnX3Nsb3QyJyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdjb3BpZWRfc2xvdDJfbm9fY2hhbmdlJyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBs aWNhdGlvbl9zbG90KCdjb3BpZWRfc2xvdDJfbm90ZW1wJyk7CisKKy0tIFRlc3QgZmFpbG92ZXIg b3B0aW9uIG9mIHNsb3RzLgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX3RydWVfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFs c2UsIGZhbHNlLCB0cnVlKTsKK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBm YWxzZSwgZmFsc2UsIGZhbHNlKTsKK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNh bF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZhdWx0X3Nsb3QnLCAndGVzdF9kZWNvZGlu ZycsIGZhbHNlLCBmYWxzZSk7CitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX3BoeXNpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKKworU0VMRUNUIHNsb3RfbmFtZSwg c2xvdF90eXBlLCBmYWlsb3ZlciBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzOworCitTRUxFQ1Qg cGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl90cnVlX3Nsb3QnKTsKK1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2ZhbHNlX3Nsb3QnKTsKK1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2RlZmF1bHRfc2xvdCcpOworU0VMRUNU IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncGh5c2ljYWxfc2xvdCcpOwpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApp bmRleCBjMTVkODYxZTgyLi5mMjI0MzI3YzAwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNzk5MCw2ICs3 OTkwLDE3IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQm Z3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9lbnRyeT4K ICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnN1YmZhaWxvdmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRydWUsIHRoZSBhc3NvY2lhdGVkIHJl cGxpY2F0aW9uIHNsb3RzIChpLmUuIHRoZSBtYWluIHNsb3QgYW5kIHRoZQorICAgICAgIHRhYmxl IHN5bmMgc2xvdHMpIGluIHRoZSB1cHN0cmVhbSBkYXRhYmFzZSBhcmUgZW5hYmxlZCB0byBiZQor ICAgICAgIHN5bmNocm9uaXplZCB0byB0aGUgcGh5c2ljYWwgc3RhbmRieXMKKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAg ICAgICA8c3RydWN0ZmllbGQ+c3ViY29ubmluZm88L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90 eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9m dW5jLnNnbWwKaW5kZXggMjEwYzdjMGIwMi4uMTU0YzQyNmRmNyAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNzY1NSw3 ICsyNzY1NSw3IEBAIHBvc3RncmVzPSMgU0VMRUNUICcwLzAnOjpwZ19sc24gKyBwZC5zZWdtZW50 X251bWJlciAqIHBzLnNldHRpbmc6OmludCArIDpvZmZzZXQKICAgICAgICAgPGluZGV4dGVybT4K ICAgICAgICAgIDxwcmltYXJ5PnBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q8L3By aW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgICA8ZnVuY3Rpb24+cGdfY3JlYXRl X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj5zbG90X25h bWU8L3BhcmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4sIDxwYXJhbWV0ZXI+cGx1Z2luPC9wYXJh bWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+IDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+dGVtcG9yYXJ5 PC9wYXJhbWV0ZXI+IDx0eXBlPmJvb2xlYW48L3R5cGU+LCA8cGFyYW1ldGVyPnR3b3BoYXNlPC9w YXJhbWV0ZXI+IDx0eXBlPmJvb2xlYW48L3R5cGU+IDwvb3B0aW9uYWw+ICkKKyAgICAgICAgPGZ1 bmN0aW9uPnBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q8L2Z1bmN0aW9uPiAoIDxw YXJhbWV0ZXI+c2xvdF9uYW1lPC9wYXJhbWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+LCA8cGFyYW1l dGVyPnBsdWdpbjwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFy YW1ldGVyPnRlbXBvcmFyeTwvcGFyYW1ldGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiwgPHBhcmFt ZXRlcj50d29waGFzZTwvcGFyYW1ldGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiwgPHBhcmFtZXRl cj5mYWlsb3ZlcjwvcGFyYW1ldGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiA8L29wdGlvbmFsPiAp CiAgICAgICAgIDxyZXR1cm52YWx1ZT5yZWNvcmQ8L3JldHVybnZhbHVlPgogICAgICAgICAoIDxw YXJhbWV0ZXI+c2xvdF9uYW1lPC9wYXJhbWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+LAogICAgICAg ICA8cGFyYW1ldGVyPmxzbjwvcGFyYW1ldGVyPiA8dHlwZT5wZ19sc248L3R5cGU+ICkKQEAgLTI3 NjcwLDggKzI3NjcwLDEzIEBAIHBvc3RncmVzPSMgU0VMRUNUICcwLzAnOjpwZ19sc24gKyBwZC5z ZWdtZW50X251bWJlciAqIHBzLnNldHRpbmc6OmludCArIDpvZmZzZXQKICAgICAgICAgcmVsZWFz ZWQgdXBvbiBhbnkgZXJyb3IuIFRoZSBvcHRpb25hbCBmb3VydGggcGFyYW1ldGVyLAogICAgICAg ICA8cGFyYW1ldGVyPnR3b3BoYXNlPC9wYXJhbWV0ZXI+LCB3aGVuIHNldCB0byB0cnVlLCBzcGVj aWZpZXMKICAgICAgICAgdGhhdCB0aGUgZGVjb2Rpbmcgb2YgcHJlcGFyZWQgdHJhbnNhY3Rpb25z IGlzIGVuYWJsZWQgZm9yIHRoaXMKLSAgICAgICAgc2xvdC4gQSBjYWxsIHRvIHRoaXMgZnVuY3Rp b24gaGFzIHRoZSBzYW1lIGVmZmVjdCBhcyB0aGUgcmVwbGljYXRpb24KLSAgICAgICAgcHJvdG9j b2wgY29tbWFuZCA8bGl0ZXJhbD5DUkVBVEVfUkVQTElDQVRJT05fU0xPVCAuLi4gTE9HSUNBTDwv bGl0ZXJhbD4uCisgICAgICAgIHNsb3QuIFRoZSBvcHRpb25hbCBmaWZ0aCBwYXJhbWV0ZXIsCisg ICAgICAgIDxwYXJhbWV0ZXI+ZmFpbG92ZXI8L3BhcmFtZXRlcj4sIHdoZW4gc2V0IHRvIHRydWUs CisgICAgICAgIHNwZWNpZmllcyB0aGF0IHRoaXMgc2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNl ZCB0byB0aGUKKyAgICAgICAgcGh5c2ljYWwgc3RhbmRieXMgc28gdGhhdCBsb2dpY2FsIHJlcGxp Y2F0aW9uIGNhbiBiZSByZXN1bWVkCisgICAgICAgIGFmdGVyIGZhaWxvdmVyLiBBIGNhbGwgdG8g dGhpcyBmdW5jdGlvbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzCisgICAgICAgIHRoZSByZXBsaWNh dGlvbiBwcm90b2NvbCBjb21tYW5kCisgICAgICAgIDxsaXRlcmFsPkNSRUFURV9SRVBMSUNBVElP Tl9TTE9UIC4uLiBMT0dJQ0FMPC9saXRlcmFsPi4KICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCmluZGV4IDZjM2U4YTYzMWQuLmFmOTk3ZWZkMmIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9w cm90b2NvbC5zZ21sCkBAIC0yMDYwLDYgKzIwNjAsMTcgQEAgcHNxbCAiZGJuYW1lPXBvc3RncmVz IHJlcGxpY2F0aW9uPWRhdGFiYXNlIiAtYyAiSURFTlRJRllfU1lTVEVNOyIKICAgICAgICAgIDwv cGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPkZBSUxPVkVSIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdPC9saXRl cmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgSWYgdHJ1ZSwgdGhlIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8gdGhlIHBoeXNp Y2FsCisgICAgICAgICAgc3RhbmRieXMgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNhbiBi ZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgorICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIGZhbHNl LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlz dGVudHJ5PgogICAgICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgICAgIDxwYXJhPgpAQCAtMjEyNCw2 ICsyMTM1LDQ3IEBAIHBzcWwgImRibmFtZT1wb3N0Z3JlcyByZXBsaWNhdGlvbj1kYXRhYmFzZSIg LWMgIklERU5USUZZX1NZU1RFTTsiCiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50 cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2NvbC1yZXBsaWNhdGlvbi1hbHRlci1y ZXBsaWNhdGlvbi1zbG90IiB4cmVmbGFiZWw9IkFMVEVSX1JFUExJQ0FUSU9OX1NMT1QiPgorICAg ICA8dGVybT48bGl0ZXJhbD5BTFRFUl9SRVBMSUNBVElPTl9TTE9UPC9saXRlcmFsPiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT4gKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSApCisg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkFMVEVSX1JFUExJQ0FUSU9OX1NMT1Q8L3ByaW1hcnk+ PC9pbmRleHRlcm0+CisgICAgIDwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+ CisgICAgICAgQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgcmVwbGljYXRpb24gc2xvdC4KKyAg ICAgICBTZWUgPHhyZWYgbGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0aW9uLXNsb3RzIi8+IGZv ciBtb3JlIGFib3V0CisgICAgICAgcmVwbGljYXRpb24gc2xvdHMuIFRoaXMgY29tbWFuZCBpcyBj dXJyZW50bHkgb25seSBzdXBwb3J0ZWQgZm9yIGxvZ2ljYWwKKyAgICAgICByZXBsaWNhdGlvbiBz bG90cy4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICA8dmFy bGlzdGVudHJ5PgorICAgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgIDxwYXJhPgorICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBzbG90IHRvIGFsdGVyLiBNdXN0 IGJlIGEgdmFsaWQgcmVwbGljYXRpb24gc2xvdAorICAgICAgICAgIG5hbWUgKHNlZSA8eHJlZiBs aW5rZW5kPSJzdHJlYW1pbmctcmVwbGljYXRpb24tc2xvdHMtbWFuaXB1bGF0aW9uIi8+KS4KKyAg ICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgICA8cGFyYT5UaGUgZm9sbG93aW5nIG9w dGlvbnMgYXJlIHN1cHBvcnRlZDo8L3BhcmE+CisKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+RkFJTE9WRVIgWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF08L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAg ICBJZiB0cnVlLCB0aGUgc2xvdCBpcyBlbmFibGVkIHRvIGJlIHN5bmNlZCB0byB0aGUgcGh5c2lj YWwKKyAgICAgICAgICBzdGFuZGJ5cyBzbyB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24gY2FuIGJl IHJlc3VtZWQgYWZ0ZXIgZmFpbG92ZXIuCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlz dGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgICA8L3ZhcmlhYmxlbGlzdD4KKwor ICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRy eSBpZD0icHJvdG9jb2wtcmVwbGljYXRpb24tcmVhZC1yZXBsaWNhdGlvbi1zbG90Ij4KICAgICAg PHRlcm0+PGxpdGVyYWw+UkVBRF9SRVBMSUNBVElPTl9TTE9UPC9saXRlcmFsPiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c2xvdF9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICAgIDxpbmRl eHRlcm0+PHByaW1hcnk+UkVBRF9SRVBMSUNBVElPTl9TTE9UPC9wcmltYXJ5PjwvaW5kZXh0ZXJt PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggNmQzNmZmMGRj OS4uYjNlNzc5ZGY3MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3Jp cHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21s CkBAIC0yMjYsMTAgKzIyNiwyMiBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPAogICAgICAgPGxp bmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zdHJlYW1pbmci PjxsaXRlcmFsPnN0cmVhbWluZzwvbGl0ZXJhbD48L2xpbms+LAogICAgICAgPGxpbmsgbGlua2Vu ZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1kaXNhYmxlLW9uLWVycm9yIj48 bGl0ZXJhbD5kaXNhYmxlX29uX2Vycm9yPC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBs aW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXBhc3N3b3JkLXJlcXVp cmVkIj48bGl0ZXJhbD5wYXNzd29yZF9yZXF1aXJlZDwvbGl0ZXJhbD48L2xpbms+LAotICAgICAg PGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1ydW4tYXMt b3duZXIiPjxsaXRlcmFsPnJ1bl9hc19vd25lcjwvbGl0ZXJhbD48L2xpbms+LCBhbmQKLSAgICAg IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtb3JpZ2lu Ij48bGl0ZXJhbD5vcmlnaW48L2xpdGVyYWw+PC9saW5rPi4KKyAgICAgIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtcnVuLWFzLW93bmVyIj48bGl0ZXJh bD5ydW5fYXNfb3duZXI8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNx bC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtb3JpZ2luIj48bGl0ZXJhbD5vcmlnaW48 L2xpdGVyYWw+PC9saW5rPiwgYW5kCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vi c2NyaXB0aW9uLXBhcmFtcy13aXRoLWZhaWxvdmVyIj48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJh bD48L2xpbms+LgogICAgICAgT25seSBhIHN1cGVydXNlciBjYW4gc2V0IDxsaXRlcmFsPnBhc3N3 b3JkX3JlcXVpcmVkID0gZmFsc2U8L2xpdGVyYWw+LgogICAgICA8L3BhcmE+CisKKyAgICAgPHBh cmE+CisgICAgICBXaGVuIGFsdGVyaW5nIHRoZQorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNy ZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1zbG90LW5hbWUiPjxsaXRlcmFsPnNsb3RfbmFt ZTwvbGl0ZXJhbD48L2xpbms+LAorICAgICAgdGhlIDxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFs PiBwcm9wZXJ0eSB2YWx1ZSBvZiB0aGUgbmFtZWQgc2xvdCBtYXkgZGlmZmVyIGZyb20gdGhlCisg ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWZh aWxvdmVyIj48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD48L2xpbms+CisgICAgICBwYXJhbWV0 ZXIgc3BlY2lmaWVkIGluIHRoZSBzdWJzY3JpcHRpb24uIFdoZW4gY3JlYXRpbmcgdGhlIHNsb3Qs CisgICAgICBlbnN1cmUgdGhlIHNsb3QgPGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+IHByb3Bl cnR5IG1hdGNoZXMgdGhlCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0 aW9uLXBhcmFtcy13aXRoLWZhaWxvdmVyIj48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD48L2xp bms+CisgICAgICBwYXJhbWV0ZXIgdmFsdWUgb2YgdGhlIHN1YnNjcmlwdGlvbi4KKyAgICAgPC9w YXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBjN2FjZTkyMmY5Li5jZTM4NmE0NmE3 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbApAQCAtNDAwLDYg KzQwMCwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5zdWJzY3JpcHRpb25fbmFtZTwvcmVwbGFjZWFibAogICAgICAgICAgPC9wYXJhPgogICAg ICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICAgPHZhcmxp c3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+ CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPiAoPHR5cGU+Ym9vbGVh bjwvdHlwZT4pPC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAg ICAgICAgICBTcGVjaWZpZXMgd2hldGhlciB0aGUgcmVwbGljYXRpb24gc2xvdHMgYXNzb2NpYXRl ZCB3aXRoIHRoZSBzdWJzY3JpcHRpb24KKyAgICAgICAgICBhcmUgZW5hYmxlZCB0byBiZSBzeW5j ZWQgdG8gdGhlIHBoeXNpY2FsIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbAorICAgICAgICAgIHJl cGxpY2F0aW9uIGNhbiBiZSByZXN1bWVkIGZyb20gdGhlIG5ldyBwcmltYXJ5IGFmdGVyIGZhaWxv dmVyLgorICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4K KyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3Rl bnRyeT4KICAgICAgIDwvdmFyaWFibGVsaXN0PjwvcGFyYT4KIAogICAgIDwvbGlzdGl0ZW0+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv c3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggNzJkMDFmYzYyNC4uMTg2OGI5NTgzNiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeXN0 ZW0tdmlld3Muc2dtbApAQCAtMjU1NSw2ICsyNTU1LDE3IEBAIFNFTEVDVCAqIEZST00gcGdfbG9j a3MgcGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgIDwvaXRlbWl6ZWRs aXN0PgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5mYWlsb3Zlcjwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBU cnVlIGlmIHRoaXMgaXMgYSBsb2dpY2FsIHNsb3QgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8gdGhl IHBoeXNpY2FsCisgICAgICAgc3RhbmRieXMgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNh biBiZSByZXN1bWVkIGZyb20gdGhlIG5ldyBwcmltYXJ5CisgICAgICAgYWZ0ZXIgZmFpbG92ZXIu IEFsd2F5cyBmYWxzZSBmb3IgcGh5c2ljYWwgc2xvdHMuCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKaW5kZXggYzUxNmMyNWFjNy4uNDA2YTNjMmRk MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCkBAIC03Myw2ICs3Myw3IEBA IEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAlzdWItPmRpc2Fi bGVvbmVyciA9IHN1YmZvcm0tPnN1YmRpc2FibGVvbmVycjsKIAlzdWItPnBhc3N3b3JkcmVxdWly ZWQgPSBzdWJmb3JtLT5zdWJwYXNzd29yZHJlcXVpcmVkOwogCXN1Yi0+cnVuYXNvd25lciA9IHN1 YmZvcm0tPnN1YnJ1bmFzb3duZXI7CisJc3ViLT5mYWlsb3ZlciA9IHN1YmZvcm0tPnN1YmZhaWxv dmVyOwogCiAJLyogR2V0IGNvbm5pbmZvICovCiAJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3RO dWxsKFNVQlNDUklQVElPTk9JRCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lz dGVtX2Z1bmN0aW9ucy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMu c3FsCmluZGV4IGYzMTVmZWNmMTguLjM0NmNmYjk4YTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX2Z1bmN0aW9ucy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fZnVuY3Rpb25zLnNxbApAQCAtNDc5LDYgKzQ3OSw3IEBAIENSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoCiAgICAgSU4gc2xv dF9uYW1lIG5hbWUsIElOIHBsdWdpbiBuYW1lLAogICAgIElOIHRlbXBvcmFyeSBib29sZWFuIERF RkFVTFQgZmFsc2UsCiAgICAgSU4gdHdvcGhhc2UgYm9vbGVhbiBERUZBVUxUIGZhbHNlLAorICAg IElOIGZhaWxvdmVyIGJvb2xlYW4gREVGQVVMVCBmYWxzZSwKICAgICBPVVQgc2xvdF9uYW1lIG5h bWUsIE9VVCBsc24gcGdfbHNuKQogUkVUVVJOUyBSRUNPUkQKIExBTkdVQUdFIElOVEVSTkFMCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggZTQzZTM2ZjVhYy4uZTQzYTkzNzM5 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTAyMyw3ICsxMDIzLDgg QEAgQ1JFQVRFIFZJRVcgcGdfcmVwbGljYXRpb25fc2xvdHMgQVMKICAgICAgICAgICAgIEwud2Fs X3N0YXR1cywKICAgICAgICAgICAgIEwuc2FmZV93YWxfc2l6ZSwKICAgICAgICAgICAgIEwudHdv X3BoYXNlLAotICAgICAgICAgICAgTC5jb25mbGljdF9yZWFzb24KKyAgICAgICAgICAgIEwuY29u ZmxpY3RfcmVhc29uLAorICAgICAgICAgICAgTC5mYWlsb3ZlcgogICAgIEZST00gcGdfZ2V0X3Jl cGxpY2F0aW9uX3Nsb3RzKCkgQVMgTAogICAgICAgICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNl IEQgT04gKEwuZGF0b2lkID0gRC5vaWQpOwogCkBAIC0xMzU3LDcgKzEzNTgsOCBAQCBSRVZPS0Ug QUxMIE9OIHBnX3N1YnNjcmlwdGlvbiBGUk9NIHB1YmxpYzsKIEdSQU5UIFNFTEVDVCAob2lkLCBz dWJkYmlkLCBzdWJza2lwbHNuLCBzdWJuYW1lLCBzdWJvd25lciwgc3ViZW5hYmxlZCwKICAgICAg ICAgICAgICAgc3ViYmluYXJ5LCBzdWJzdHJlYW0sIHN1YnR3b3BoYXNlc3RhdGUsIHN1YmRpc2Fi bGVvbmVyciwKIAkJCSAgc3VicGFzc3dvcmRyZXF1aXJlZCwgc3VicnVuYXNvd25lciwKLSAgICAg ICAgICAgICAgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YnB1YmxpY2F0aW9ucywgc3Vi b3JpZ2luKQorICAgICAgICAgICAgICBzdWJzbG90bmFtZSwgc3Vic3luY2NvbW1pdCwgc3VicHVi bGljYXRpb25zLCBzdWJvcmlnaW4sCisgICAgICAgICAgICAgIHN1YmZhaWxvdmVyKQogICAgIE9O IHBnX3N1YnNjcmlwdGlvbiBUTyBwdWJsaWM7CiAKIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2Ny aXB0aW9uX3N0YXRzIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3Jp cHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMKaW5k ZXggNzVlNmNkOGFlMy4uZjUwYmUyOWQ5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlw dGlvbmNtZHMuYwpAQCAtNzEsNiArNzEsNyBAQAogI2RlZmluZSBTVUJPUFRfUlVOX0FTX09XTkVS CQkJMHgwMDAwMTAwMAogI2RlZmluZSBTVUJPUFRfTFNOCQkJCQkweDAwMDAyMDAwCiAjZGVmaW5l IFNVQk9QVF9PUklHSU4JCQkJMHgwMDAwNDAwMAorI2RlZmluZSBTVUJPUFRfRkFJTE9WRVIJCQkJ MHgwMDAwODAwMAogCiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNk ZWZpbmUgSXNTZXQodmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQpAQCAt OTYsNiArOTcsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJPcHRzCiAJYm9vbAkJcGFzc3dvcmRyZXF1 aXJlZDsKIAlib29sCQlydW5hc293bmVyOwogCWNoYXIJICAgKm9yaWdpbjsKKwlib29sCQlmYWls b3ZlcjsKIAlYTG9nUmVjUHRyCWxzbjsKIH0gU3ViT3B0czsKIApAQCAtMTU3LDYgKzE1OSw4IEBA IHBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3Rt dF9vcHRpb25zLAogCQlvcHRzLT5ydW5hc293bmVyID0gZmFsc2U7CiAJaWYgKElzU2V0KHN1cHBv cnRlZF9vcHRzLCBTVUJPUFRfT1JJR0lOKSkKIAkJb3B0cy0+b3JpZ2luID0gcHN0cmR1cChMT0dJ Q0FMUkVQX09SSUdJTl9BTlkpOworCWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0ZB SUxPVkVSKSkKKwkJb3B0cy0+ZmFpbG92ZXIgPSBmYWxzZTsKIAogCS8qIFBhcnNlIG9wdGlvbnMg Ki8KIAlmb3JlYWNoKGxjLCBzdG10X29wdGlvbnMpCkBAIC0zMjYsNiArMzMwLDE1IEBAIHBhcnNl X3N1YnNjcmlwdGlvbl9vcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqc3RtdF9vcHRp b25zLAogCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJ CQkJCWVycm1zZygidW5yZWNvZ25pemVkIG9yaWdpbiB2YWx1ZTogXCIlc1wiIiwgb3B0cy0+b3Jp Z2luKSk7CiAJCX0KKwkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9GQUlM T1ZFUikgJiYKKwkJCQkgc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiZmFpbG92ZXIiKSA9PSAwKQor CQl7CisJCQlpZiAoSXNTZXQob3B0cy0+c3BlY2lmaWVkX29wdHMsIFNVQk9QVF9GQUlMT1ZFUikp CisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisKKwkJCW9wdHMt PnNwZWNpZmllZF9vcHRzIHw9IFNVQk9QVF9GQUlMT1ZFUjsKKwkJCW9wdHMtPmZhaWxvdmVyID0g ZGVmR2V0Qm9vbGVhbihkZWZlbCk7CisJCX0KIAkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29w dHMsIFNVQk9QVF9MU04pICYmCiAJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImxzbiIpID09 IDApCiAJCXsKQEAgLTU5MSw3ICs2MDQsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkgIFNVQk9QVF9T WU5DSFJPTk9VU19DT01NSVQgfCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJICBTVUJPUFRfU1RSRUFN SU5HIHwgU1VCT1BUX1RXT1BIQVNFX0NPTU1JVCB8CiAJCQkJCSAgU1VCT1BUX0RJU0FCTEVfT05f RVJSIHwgU1VCT1BUX1BBU1NXT1JEX1JFUVVJUkVEIHwKLQkJCQkJICBTVUJPUFRfUlVOX0FTX09X TkVSIHwgU1VCT1BUX09SSUdJTik7CisJCQkJCSAgU1VCT1BUX1JVTl9BU19PV05FUiB8IFNVQk9Q VF9PUklHSU4gfAorCQkJCQkgIFNVQk9QVF9GQUlMT1ZFUik7CiAJcGFyc2Vfc3Vic2NyaXB0aW9u X29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25zLCBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwog CiAJLyoKQEAgLTcxMCw2ICs3MjQsOCBAQCBDcmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQlwdWJsaWNhdGlvbkxpc3RU b0FycmF5KHB1YmxpY2F0aW9ucyk7CiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9y aWdpbiAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7CisJdmFsdWVz W0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0gPQorCQlCb29sR2V0RGF0dW0o b3B0cy5mYWlsb3Zlcik7CiAKIAl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNj cihyZWwpLCB2YWx1ZXMsIG51bGxzKTsKIApAQCAtODA3LDcgKzgyMyw3IEBAIENyZWF0ZVN1YnNj cmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQs CiAJCQkJCXR3b3BoYXNlX2VuYWJsZWQgPSB0cnVlOwogCiAJCQkJd2FscmN2X2NyZWF0ZV9zbG90 KHdyY29ubiwgb3B0cy5zbG90X25hbWUsIGZhbHNlLCB0d29waGFzZV9lbmFibGVkLAotCQkJCQkJ CQkgICBDUlNfTk9FWFBPUlRfU05BUFNIT1QsIE5VTEwpOworCQkJCQkJCQkgICBvcHRzLmZhaWxv dmVyLCBDUlNfTk9FWFBPUlRfU05BUFNIT1QsIE5VTEwpOwogCiAJCQkJaWYgKHR3b3BoYXNlX2Vu YWJsZWQpCiAJCQkJCVVwZGF0ZVR3b1BoYXNlU3RhdGUoc3ViaWQsIExPR0lDQUxSRVBfVFdPUEhB U0VfU1RBVEVfRU5BQkxFRCk7CkBAIC04MTYsNiArODMyLDI0IEBAIENyZWF0ZVN1YnNjcmlwdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJCQkJ CQkoZXJybXNnKCJjcmVhdGVkIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIG9uIHB1Ymxpc2hlciIs CiAJCQkJCQkJCW9wdHMuc2xvdF9uYW1lKSkpOwogCQkJfQorCisJCQkvKgorCQkJICogSWYgdGhl IHNsb3RfbmFtZSBpcyBzcGVjaWZpZWQgd2l0aG91dCB0aGUgY3JlYXRlX3Nsb3Qgb3B0aW9uLAor CQkJICogaXQgaXMgcG9zc2libGUgdGhhdCB0aGUgdXNlciBpbnRlbmRzIHRvIHVzZSBhbiBleGlz dGluZyBzbG90IG9uCisJCQkgKiB0aGUgcHVibGlzaGVyLCBzbyBoZXJlIHdlIGFsdGVyIHRoZSBm YWlsb3ZlciBwcm9wZXJ0eSBvZiB0aGUKKwkJCSAqIHNsb3QgdG8gbWF0Y2ggdGhlIGZhaWxvdmVy IHZhbHVlIGluIHN1YnNjcmlwdGlvbi4KKwkJCSAqCisJCQkgKiBXZSBkbyBub3QgbmVlZCB0byBj aGFuZ2UgdGhlIGZhaWxvdmVyIHRvIGZhbHNlIGlmIHRoZSBzZXJ2ZXIKKwkJCSAqIGRvZXMgbm90 IHN1cHBvcnQgZmFpbG92ZXIgKGUuZy4gcHJlLVBHMTcpLgorCQkJICovCisJCQllbHNlIGlmIChv cHRzLnNsb3RfbmFtZSAmJgorCQkJCQkgKG9wdHMuZmFpbG92ZXIgfHwgd2FscmN2X3NlcnZlcl92 ZXJzaW9uKHdyY29ubikgPj0gMTcwMDAwKSkKKwkJCXsKKwkJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3 cmNvbm4sIG9wdHMuc2xvdF9uYW1lLCBvcHRzLmZhaWxvdmVyKTsKKwkJCQllcmVwb3J0KE5PVElD RSwKKwkJCQkJCShlcnJtc2coImNoYW5nZWQgdGhlIGZhaWxvdmVyIHN0YXRlIG9mIHJlcGxpY2F0 aW9uIHNsb3QgXCIlc1wiIG9uIHB1Ymxpc2hlciB0byAlcyIsCisJCQkJCQkJCW9wdHMuc2xvdF9u YW1lLCBvcHRzLmZhaWxvdmVyID8gInRydWUiIDogImZhbHNlIikpKTsKKwkJCX0KIAkJfQogCQlQ R19GSU5BTExZKCk7CiAJCXsKQEAgLTExMzIsNyArMTE2Niw4IEBAIEFsdGVyU3Vic2NyaXB0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkJ CQkgIFNVQk9QVF9TWU5DSFJPTk9VU19DT01NSVQgfCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJCQkJ ICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BUX0RJU0FCTEVfT05fRVJSIHwKIAkJCQkJCQkJICBT VUJPUFRfUEFTU1dPUkRfUkVRVUlSRUQgfAotCQkJCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIg fCBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BU X09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BUX0ZBSUxPVkVSKTsKIAogCQkJCXBhcnNlX3N1YnNj cmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBw b3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTIxOCw2ICsxMjUzLDMwIEBAIEFsdGVyU3Vic2NyaXB0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJ CQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJvcmlnaW4gLSAxXSA9IHRydWU7CiAJ CQkJfQogCisJCQkJaWYgKElzU2V0KG9wdHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9GQUlMT1ZF UikpCisJCQkJeworCQkJCQlpZiAoIXN1Yi0+c2xvdG5hbWUpCisJCQkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NU QVRFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fubm90IHNldCBmYWlsb3ZlciBmb3IgYSBzdWJzY3Jp cHRpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGEgc2xvdCBuYW1lIikpKTsKKworCQkJCQkvKgorCQkJ CQkgKiBEbyBub3QgYWxsb3cgY2hhbmdpbmcgdGhlIGZhaWxvdmVyIHN0YXRlIGlmIHRoZQorCQkJ CQkgKiBzdWJzY3JpcHRpb24gaXMgZW5hYmxlZC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBmYWlsb3Zl cgorCQkJCQkgKiBzdGF0ZSBvZiB0aGUgc2xvdCBvbiB0aGUgcHVibGlzaGVyIGNhbm5vdCBiZSBt b2RpZmllZCBpZgorCQkJCQkgKiB0aGUgc2xvdCBpcyBjdXJyZW50bHkgYWNxdWlyZWQgYnkgdGhl IGFwcGx5IHdvcmtlci4KKwkJCQkJICovCisJCQkJCWlmIChzdWItPmVuYWJsZWQpCisJCQkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJF UkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fubm90IHNldCAlcyBmb3IgZW5h YmxlZCBzdWJzY3JpcHRpb24iLAorCQkJCQkJCQkJCSJmYWlsb3ZlciIpKSk7CisKKwkJCQkJdmFs dWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0gPQorCQkJCQkJQm9vbEdl dERhdHVtKG9wdHMuZmFpbG92ZXIpOworCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlv bl9zdWJmYWlsb3ZlciAtIDFdID0gdHJ1ZTsKKwkJCQl9CisKIAkJCQl1cGRhdGVfdHVwbGUgPSB0 cnVlOwogCQkJCWJyZWFrOwogCQkJfQpAQCAtMTQ1Myw2ICsxNTEyLDQ2IEBAIEFsdGVyU3Vic2Ny aXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAog CQloZWFwX2ZyZWV0dXBsZSh0dXApOwogCX0KIAorCS8qCisJICogVHJ5IHRvIGFjcXVpcmUgdGhl IGNvbm5lY3Rpb24gbmVjZXNzYXJ5IGZvciBhbHRlcmluZyBzbG90LgorCSAqCisJICogVGhpcyBo YXMgdG8gYmUgYXQgdGhlIGVuZCBiZWNhdXNlIG90aGVyd2lzZSBpZiB0aGVyZSBpcyBhbiBlcnJv cgorCSAqIHdoaWxlIGRvaW5nIHRoZSBkYXRhYmFzZSBvcGVyYXRpb25zIHdlIHdvbid0IGJlIGFi bGUgdG8gcm9sbGJhY2sKKwkgKiBhbHRlcmVkIHNsb3QuCisJICovCisJaWYgKHJlcGxhY2VzW0Fu dW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0pCisJeworCQlib29sCQltdXN0X3Vz ZV9wYXNzd29yZDsKKwkJY2hhcgkgICAqZXJyOworCQlXYWxSZWNlaXZlckNvbm4gKndyY29ubjsK KworCQkvKiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KKwkJ bG9hZF9maWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCisJCS8qIFRyeSB0byBjb25u ZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCisJCW11c3RfdXNlX3Bhc3N3b3JkID0gc3ViLT5wYXNz d29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOworCQl3cmNvbm4gPSB3YWxyY3Zf Y29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKKwkJCQkJCQkJ c3ViLT5uYW1lLCAmZXJyKTsKKwkJaWYgKCF3cmNvbm4pCisJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCisJCQkJCSBlcnJtc2coImNv dWxkIG5vdCBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXI6ICVzIiwgZXJyKSkpOworCisJCVBHX1RS WSgpOworCQl7CisJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3cmNvbm4sIHN1Yi0+c2xvdG5hbWUsIG9w dHMuZmFpbG92ZXIpOworCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycm1zZygiY2hhbmdl ZCB0aGUgZmFpbG92ZXIgc3RhdGUgb2YgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb24gcHVibGlz aGVyIHRvICVzIiwKKwkJCQkJCQlzdWItPnNsb3RuYW1lLCAiZmFsc2UiKSkpOworCQl9CisJCVBH X0ZJTkFMTFkoKTsKKwkJeworCQkJd2FscmN2X2Rpc2Nvbm5lY3Qod3Jjb25uKTsKKwkJfQorCQlQ R19FTkRfVFJZKCk7CisJfQorCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsK IAogCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJp ZCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVy L2xpYnBxd2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVj ZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCmluZGV4IDIwMWMzNmNiMjIuLmM1MjMyY2VlMmYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3 YWxyZWNlaXZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2 ZXIvbGlicHF3YWxyZWNlaXZlci5jCkBAIC03NCw4ICs3NCwxMSBAQCBzdGF0aWMgY2hhciAqbGli cHFyY3ZfY3JlYXRlX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJCQkJCQkgIGNvbnN0 IGNoYXIgKnNsb3RuYW1lLAogCQkJCQkJCQkgIGJvb2wgdGVtcG9yYXJ5LAogCQkJCQkJCQkgIGJv b2wgdHdvX3BoYXNlLAorCQkJCQkJCQkgIGJvb2wgZmFpbG92ZXIsCiAJCQkJCQkJCSAgQ1JTU25h cHNob3RBY3Rpb24gc25hcHNob3RfYWN0aW9uLAogCQkJCQkJCQkgIFhMb2dSZWNQdHIgKmxzbik7 CitzdGF0aWMgdm9pZCBsaWJwcXJjdl9hbHRlcl9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwg Y29uc3QgY2hhciAqc2xvdG5hbWUsCisJCQkJCQkJCWJvb2wgZmFpbG92ZXIpOwogc3RhdGljIHBp ZF90IGxpYnBxcmN2X2dldF9iYWNrZW5kX3BpZChXYWxSZWNlaXZlckNvbm4gKmNvbm4pOwogc3Rh dGljIFdhbFJjdkV4ZWNSZXN1bHQgKmxpYnBxcmN2X2V4ZWMoV2FsUmVjZWl2ZXJDb25uICpjb25u LAogCQkJCQkJCQkJICAgY29uc3QgY2hhciAqcXVlcnksCkBAIC05Niw2ICs5OSw3IEBAIHN0YXRp YyBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUgUFFXYWxSZWNlaXZlckZ1bmN0aW9ucyA9IHsKIAku d2FscmN2X3JlY2VpdmUgPSBsaWJwcXJjdl9yZWNlaXZlLAogCS53YWxyY3Zfc2VuZCA9IGxpYnBx cmN2X3NlbmQsCiAJLndhbHJjdl9jcmVhdGVfc2xvdCA9IGxpYnBxcmN2X2NyZWF0ZV9zbG90LAor CS53YWxyY3ZfYWx0ZXJfc2xvdCA9IGxpYnBxcmN2X2FsdGVyX3Nsb3QsCiAJLndhbHJjdl9nZXRf YmFja2VuZF9waWQgPSBsaWJwcXJjdl9nZXRfYmFja2VuZF9waWQsCiAJLndhbHJjdl9leGVjID0g bGlicHFyY3ZfZXhlYywKIAkud2FscmN2X2Rpc2Nvbm5lY3QgPSBsaWJwcXJjdl9kaXNjb25uZWN0 CkBAIC04OTksOCArOTAzLDggQEAgbGlicHFyY3Zfc2VuZChXYWxSZWNlaXZlckNvbm4gKmNvbm4s IGNvbnN0IGNoYXIgKmJ1ZmZlciwgaW50IG5ieXRlcykKICAqLwogc3RhdGljIGNoYXIgKgogbGli cHFyY3ZfY3JlYXRlX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90 bmFtZSwKLQkJCQkJIGJvb2wgdGVtcG9yYXJ5LCBib29sIHR3b19waGFzZSwgQ1JTU25hcHNob3RB Y3Rpb24gc25hcHNob3RfYWN0aW9uLAotCQkJCQkgWExvZ1JlY1B0ciAqbHNuKQorCQkJCQkgYm9v bCB0ZW1wb3JhcnksIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVyLAorCQkJCQkgQ1JTU25h cHNob3RBY3Rpb24gc25hcHNob3RfYWN0aW9uLCBYTG9nUmVjUHRyICpsc24pCiB7CiAJUEdyZXN1 bHQgICAqcmVzOwogCVN0cmluZ0luZm9EYXRhIGNtZDsKQEAgLTkyOSw3ICs5MzMsOCBAQCBsaWJw cXJjdl9jcmVhdGVfc2xvdChXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3Ru YW1lLAogCQkJZWxzZQogCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKCZjbWQsICcgJyk7CiAJCX0K LQorCQlpZiAoZmFpbG92ZXIpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZjbWQsICJGQUlM T1ZFUiwgIik7CiAJCWlmICh1c2VfbmV3X29wdGlvbnNfc3ludGF4KQogCQl7CiAJCQlzd2l0Y2gg KHNuYXBzaG90X2FjdGlvbikKQEAgLTk5OCw2ICsxMDAzLDMzIEBAIGxpYnBxcmN2X2NyZWF0ZV9z bG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5hbWUsCiAJcmV0dXJu IHNuYXBzaG90OwogfQogCisvKgorICogQ2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSByZXBs aWNhdGlvbiBzbG90LgorICovCitzdGF0aWMgdm9pZAorbGlicHFyY3ZfYWx0ZXJfc2xvdChXYWxS ZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RuYW1lLAorCQkJCQlib29sIGZhaWxv dmVyKQoreworCVN0cmluZ0luZm9EYXRhIGNtZDsKKwlQR3Jlc3VsdCAgICpyZXM7CisKKwlpbml0 U3RyaW5nSW5mbygmY21kKTsKKwlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsICJBTFRFUl9SRVBMSUNB VElPTl9TTE9UICVzICggRkFJTE9WRVIgJXMgKSIsCisJCQkJCSBxdW90ZV9pZGVudGlmaWVyKHNs b3RuYW1lKSwKKwkJCQkJIGZhaWxvdmVyID8gInRydWUiIDogImZhbHNlIik7CisKKwlyZXMgPSBs aWJwcXJjdl9QUWV4ZWMoY29ubi0+c3RyZWFtQ29ubiwgY21kLmRhdGEpOworCXBmcmVlKGNtZC5k YXRhKTsKKworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04p LAorCQkJCSBlcnJtc2coImNvdWxkIG5vdCBhbHRlciByZXBsaWNhdGlvbiBzbG90IFwiJXNcIjog JXMiLAorCQkJCQkJc2xvdG5hbWUsIHBjaG9tcChQUWVycm9yTWVzc2FnZShjb25uLT5zdHJlYW1D b25uKSkpKSk7CisKKwlQUWNsZWFyKHJlcyk7Cit9CisKIC8qCiAgKiBSZXR1cm4gUElEIG9mIHJl bW90ZSBiYWNrZW5kIHByb2Nlc3MuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL3RhYmxlc3luYy5jCmluZGV4IDA2ZDViM2RmMzMuLjVhY2FiM2YzZTIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwpAQCAtMTQzMCw2ICsxNDMwLDcg QEAgTG9naWNhbFJlcFN5bmNUYWJsZVN0YXJ0KFhMb2dSZWNQdHIgKm9yaWdpbl9zdGFydHBvcykK IAkgKi8KIAl3YWxyY3ZfY3JlYXRlX3Nsb3QoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwKIAkJCQkJ ICAgc2xvdG5hbWUsIGZhbHNlIC8qIHBlcm1hbmVudCAqLyAsIGZhbHNlIC8qIHR3b19waGFzZSAq LyAsCisJCQkJCSAgIE15U3Vic2NyaXB0aW9uLT5mYWlsb3ZlciwKIAkJCQkJICAgQ1JTX1VTRV9T TkFQU0hPVCwgb3JpZ2luX3N0YXJ0cG9zKTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC93b3JrZXIuYwppbmRleCA5YjU5OGNhZjNjLi4zMmZmNGMwMzM2IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTEzMiw2ICsxMzIsMTMgQEAKICAq IGF2b2lkIHN1Y2ggZGVhZGxvY2tzLCB3ZSBnZW5lcmF0ZSBhIHVuaXF1ZSBHSUQgKGNvbnNpc3Rp bmcgb2YgdGhlCiAgKiBzdWJzY3JpcHRpb24gb2lkIGFuZCB0aGUgeGlkIG9mIHRoZSBwcmVwYXJl ZCB0cmFuc2FjdGlvbikgZm9yIGVhY2ggcHJlcGFyZQogICogdHJhbnNhY3Rpb24gb24gdGhlIHN1 YnNjcmliZXIuCisgKgorICogRkFJTE9WRVIKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq IFRoZSBsb2dpY2FsIHNsb3Qgb24gdGhlIHByaW1hcnkgY2FuIGJlIHN5bmNlZCB0byB0aGUgc3Rh bmRieSBieSBzcGVjaWZ5aW5nCisgKiBmYWlsb3ZlciA9IHRydWUgd2hlbiBjcmVhdGluZyB0aGUg c3Vic2NyaXB0aW9uLiBFbmFibGluZyBmYWlsb3ZlciBhbGxvd3MgdXMKKyAqIHRvIHNtb290aGx5 IHRyYW5zaXRpb24gdG8gdGhlIHByb21vdGVkIHN0YW5kYnksIGVuc3VyaW5nIHRoYXQgd2UgY2Fu CisgKiBzdWJzY3JpYmUgdG8gdGhlIG5ldyBwcmltYXJ5IHdpdGhvdXQgbG9zaW5nIGFueSBkYXRh LgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcmVwbF9ncmFtLnkgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9yZXBsX2dyYW0u eQppbmRleCA5NWUxMjZlYjRkLi5mZjM4MDllMDJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9yZXBsX2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9yZXBs X2dyYW0ueQpAQCAtNjQsNiArNjQsNyBAQCBOb2RlICpyZXBsaWNhdGlvbl9wYXJzZV9yZXN1bHQ7 CiAldG9rZW4gS19TVEFSVF9SRVBMSUNBVElPTgogJXRva2VuIEtfQ1JFQVRFX1JFUExJQ0FUSU9O X1NMT1QKICV0b2tlbiBLX0RST1BfUkVQTElDQVRJT05fU0xPVAorJXRva2VuIEtfQUxURVJfUkVQ TElDQVRJT05fU0xPVAogJXRva2VuIEtfVElNRUxJTkVfSElTVE9SWQogJXRva2VuIEtfV0FJVAog JXRva2VuIEtfVElNRUxJTkUKQEAgLTgwLDggKzgxLDkgQEAgTm9kZSAqcmVwbGljYXRpb25fcGFy c2VfcmVzdWx0OwogCiAldHlwZSA8bm9kZT4JY29tbWFuZAogJXR5cGUgPG5vZGU+CWJhc2VfYmFj a3VwIHN0YXJ0X3JlcGxpY2F0aW9uIHN0YXJ0X2xvZ2ljYWxfcmVwbGljYXRpb24KLQkJCQljcmVh dGVfcmVwbGljYXRpb25fc2xvdCBkcm9wX3JlcGxpY2F0aW9uX3Nsb3QgaWRlbnRpZnlfc3lzdGVt Ci0JCQkJcmVhZF9yZXBsaWNhdGlvbl9zbG90IHRpbWVsaW5lX2hpc3Rvcnkgc2hvdyB1cGxvYWRf bWFuaWZlc3QKKwkJCQljcmVhdGVfcmVwbGljYXRpb25fc2xvdCBkcm9wX3JlcGxpY2F0aW9uX3Ns b3QKKwkJCQlhbHRlcl9yZXBsaWNhdGlvbl9zbG90IGlkZW50aWZ5X3N5c3RlbSByZWFkX3JlcGxp Y2F0aW9uX3Nsb3QKKwkJCQl0aW1lbGluZV9oaXN0b3J5IHNob3cgdXBsb2FkX21hbmlmZXN0CiAl dHlwZSA8bGlzdD4JZ2VuZXJpY19vcHRpb25fbGlzdAogJXR5cGUgPGRlZmVsdD4JZ2VuZXJpY19v cHRpb24KICV0eXBlIDx1aW50dmFsPglvcHRfdGltZWxpbmUKQEAgLTExMiw2ICsxMTQsNyBAQCBj b21tYW5kOgogCQkJfCBzdGFydF9sb2dpY2FsX3JlcGxpY2F0aW9uCiAJCQl8IGNyZWF0ZV9yZXBs aWNhdGlvbl9zbG90CiAJCQl8IGRyb3BfcmVwbGljYXRpb25fc2xvdAorCQkJfCBhbHRlcl9yZXBs aWNhdGlvbl9zbG90CiAJCQl8IHJlYWRfcmVwbGljYXRpb25fc2xvdAogCQkJfCB0aW1lbGluZV9o aXN0b3J5CiAJCQl8IHNob3cKQEAgLTI1OSw2ICsyNjIsMTggQEAgZHJvcF9yZXBsaWNhdGlvbl9z bG90OgogCQkJCX0KIAkJCTsKIAorLyogQUxURVJfUkVQTElDQVRJT05fU0xPVCBzbG90ICovCith bHRlcl9yZXBsaWNhdGlvbl9zbG90OgorCQkJS19BTFRFUl9SRVBMSUNBVElPTl9TTE9UIElERU5U ICcoJyBnZW5lcmljX29wdGlvbl9saXN0ICcpJworCQkJCXsKKwkJCQkJQWx0ZXJSZXBsaWNhdGlv blNsb3RDbWQgKmNtZDsKKwkJCQkJY21kID0gbWFrZU5vZGUoQWx0ZXJSZXBsaWNhdGlvblNsb3RD bWQpOworCQkJCQljbWQtPnNsb3RuYW1lID0gJDI7CisJCQkJCWNtZC0+b3B0aW9ucyA9ICQ0Owor CQkJCQkkJCA9IChOb2RlICopIGNtZDsKKwkJCQl9CisJCQk7CisKIC8qCiAgKiBTVEFSVF9SRVBM SUNBVElPTiBbU0xPVCBzbG90XSBbUEhZU0lDQUxdICVYLyVYIFtUSU1FTElORSAlZF0KICAqLwpA QCAtNDEwLDYgKzQyNSw3IEBAIGlkZW50X29yX2tleXdvcmQ6CiAJCQl8IEtfU1RBUlRfUkVQTElD QVRJT04JCQl7ICQkID0gInN0YXJ0X3JlcGxpY2F0aW9uIjsgfQogCQkJfCBLX0NSRUFURV9SRVBM SUNBVElPTl9TTE9UCXsgJCQgPSAiY3JlYXRlX3JlcGxpY2F0aW9uX3Nsb3QiOyB9CiAJCQl8IEtf RFJPUF9SRVBMSUNBVElPTl9TTE9UCQl7ICQkID0gImRyb3BfcmVwbGljYXRpb25fc2xvdCI7IH0K KwkJCXwgS19BTFRFUl9SRVBMSUNBVElPTl9TTE9UCQl7ICQkID0gImFsdGVyX3JlcGxpY2F0aW9u X3Nsb3QiOyB9CiAJCQl8IEtfVElNRUxJTkVfSElTVE9SWQkJCXsgJCQgPSAidGltZWxpbmVfaGlz dG9yeSI7IH0KIAkJCXwgS19XQUlUCQkJCQkJeyAkJCA9ICJ3YWl0IjsgfQogCQkJfCBLX1RJTUVM SU5FCQkJCQl7ICQkID0gInRpbWVsaW5lIjsgfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcmVwbF9zY2FubmVyLmwgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9yZXBsX3Nj YW5uZXIubAppbmRleCA2ZmE2MjU2MTdiLi5lN2RlZjgwMDY1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9yZXBsX3NjYW5uZXIubAorKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9yZXBsX3NjYW5uZXIubApAQCAtMTI1LDYgKzEyNSw3IEBAIFRJTUVMSU5FCQkJeyByZXR1 cm4gS19USU1FTElORTsgfQogU1RBUlRfUkVQTElDQVRJT04JeyByZXR1cm4gS19TVEFSVF9SRVBM SUNBVElPTjsgfQogQ1JFQVRFX1JFUExJQ0FUSU9OX1NMT1QJCXsgcmV0dXJuIEtfQ1JFQVRFX1JF UExJQ0FUSU9OX1NMT1Q7IH0KIERST1BfUkVQTElDQVRJT05fU0xPVAkJeyByZXR1cm4gS19EUk9Q X1JFUExJQ0FUSU9OX1NMT1Q7IH0KK0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QJCXsgcmV0dXJuIEtf QUxURVJfUkVQTElDQVRJT05fU0xPVDsgfQogVElNRUxJTkVfSElTVE9SWQl7IHJldHVybiBLX1RJ TUVMSU5FX0hJU1RPUlk7IH0KIFBIWVNJQ0FMCQkJeyByZXR1cm4gS19QSFlTSUNBTDsgfQogUkVT RVJWRV9XQUwJCQl7IHJldHVybiBLX1JFU0VSVkVfV0FMOyB9CkBAIC0zMDIsNiArMzAzLDcgQEAg cmVwbGljYXRpb25fc2Nhbm5lcl9pc19yZXBsaWNhdGlvbl9jb21tYW5kKHZvaWQpCiAJCWNhc2Ug S19TVEFSVF9SRVBMSUNBVElPTjoKIAkJY2FzZSBLX0NSRUFURV9SRVBMSUNBVElPTl9TTE9UOgog CQljYXNlIEtfRFJPUF9SRVBMSUNBVElPTl9TTE9UOgorCQljYXNlIEtfQUxURVJfUkVQTElDQVRJ T05fU0xPVDoKIAkJY2FzZSBLX1JFQURfUkVQTElDQVRJT05fU0xPVDoKIAkJY2FzZSBLX1RJTUVM SU5FX0hJU1RPUlk6CiAJCWNhc2UgS19VUExPQURfTUFOSUZFU1Q6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90 LmMKaW5kZXggNTJkYTY5NGM3OS4uNjk2Mzc2NDAwZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpA QCAtOTAsNyArOTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBSZXBsaWNhdGlvblNsb3RPbkRpc2sKIAlz aXplb2YoUmVwbGljYXRpb25TbG90T25EaXNrKSAtIFJlcGxpY2F0aW9uU2xvdE9uRGlza0NvbnN0 YW50U2l6ZQogCiAjZGVmaW5lIFNMT1RfTUFHSUMJCTB4MTA1MUNBMQkvKiBmb3JtYXQgaWRlbnRp ZmllciAqLwotI2RlZmluZSBTTE9UX1ZFUlNJT04JMwkJLyogdmVyc2lvbiBmb3IgbmV3IGZpbGVz ICovCisjZGVmaW5lIFNMT1RfVkVSU0lPTgk0CQkvKiB2ZXJzaW9uIGZvciBuZXcgZmlsZXMgKi8K IAogLyogQ29udHJvbCBhcnJheSBmb3IgcmVwbGljYXRpb24gc2xvdCBtYW5hZ2VtZW50ICovCiBS ZXBsaWNhdGlvblNsb3RDdGxEYXRhICpSZXBsaWNhdGlvblNsb3RDdGwgPSBOVUxMOwpAQCAtMjQ4 LDEwICsyNDgsMTMgQEAgUmVwbGljYXRpb25TbG90VmFsaWRhdGVOYW1lKGNvbnN0IGNoYXIgKm5h bWUsIGludCBlbGV2ZWwpCiAgKiAgICAgZHVyaW5nIGdldHRpbmcgY2hhbmdlcywgaWYgdGhlIHR3 b19waGFzZSBvcHRpb24gaXMgZW5hYmxlZCBpdCBjYW4gc2tpcAogICogICAgIHByZXBhcmUgYmVj YXVzZSBieSB0aGF0IHRpbWUgc3RhcnQgZGVjb2RpbmcgcG9pbnQgaGFzIGJlZW4gbW92ZWQuIFNv IHRoZQogICogICAgIHVzZXIgd2lsbCBvbmx5IGdldCBjb21taXQgcHJlcGFyZWQuCisgKiBmYWls b3ZlcjogSWYgZW5hYmxlZCwgYWxsb3dzIHRoZSBzbG90IHRvIGJlIHN5bmNlZCB0byBwaHlzaWNh bCBzdGFuZGJ5cyBzbworICogICAgIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBjYW4gYmUgcmVz dW1lZCBhZnRlciBmYWlsb3Zlci4KICAqLwogdm9pZAogUmVwbGljYXRpb25TbG90Q3JlYXRlKGNv bnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lmaWMsCi0JCQkJCSAgUmVwbGljYXRpb25TbG90 UGVyc2lzdGVuY3kgcGVyc2lzdGVuY3ksIGJvb2wgdHdvX3BoYXNlKQorCQkJCQkgIFJlcGxpY2F0 aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5LAorCQkJCQkgIGJvb2wgdHdvX3BoYXNlLCBi b29sIGZhaWxvdmVyKQogewogCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE5VTEw7CiAJaW50CQkJ aTsKQEAgLTMxMSw2ICszMTQsNyBAQCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAq bmFtZSwgYm9vbCBkYl9zcGVjaWZpYywKIAlzbG90LT5kYXRhLnBlcnNpc3RlbmN5ID0gcGVyc2lz dGVuY3k7CiAJc2xvdC0+ZGF0YS50d29fcGhhc2UgPSB0d29fcGhhc2U7CiAJc2xvdC0+ZGF0YS50 d29fcGhhc2VfYXQgPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlzbG90LT5kYXRhLmZhaWxvdmVyID0g ZmFpbG92ZXI7CiAKIAkvKiBhbmQgdGhlbiBkYXRhIG9ubHkgcHJlc2VudCBpbiBzaGFyZWQgbWVt b3J5ICovCiAJc2xvdC0+anVzdF9kaXJ0aWVkID0gZmFsc2U7CkBAIC02NzksNiArNjgzLDMxIEBA IFJlcGxpY2F0aW9uU2xvdERyb3AoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dhaXQpCiAJUmVw bGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCk7CiB9CiAKKy8qCisgKiBDaGFuZ2UgdGhlIGRlZmlu aXRpb24gb2YgdGhlIHNsb3QgaWRlbnRpZmllZCBieSB0aGUgc3BlY2lmaWVkIG5hbWUuCisgKi8K K3ZvaWQKK1JlcGxpY2F0aW9uU2xvdEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZmFpbG92 ZXIpCit7CisJQXNzZXJ0KE15UmVwbGljYXRpb25TbG90ID09IE5VTEwpOworCisJUmVwbGljYXRp b25TbG90QWNxdWlyZShuYW1lLCB0cnVlKTsKKworCWlmIChTbG90SXNQaHlzaWNhbChNeVJlcGxp Y2F0aW9uU2xvdCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJZXJybXNnKCJjYW5ub3QgdXNlICVzIHdpdGggYSBwaHlz aWNhbCByZXBsaWNhdGlvbiBzbG90IiwKKwkJCQkJICAgIkFMVEVSX1JFUExJQ0FUSU9OX1NMT1Qi KSk7CisKKwlTcGluTG9ja0FjcXVpcmUoJk15UmVwbGljYXRpb25TbG90LT5tdXRleCk7CisJTXlS ZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsKKwlTcGluTG9ja1JlbGVh c2UoJk15UmVwbGljYXRpb25TbG90LT5tdXRleCk7CisKKwlSZXBsaWNhdGlvblNsb3RNYXJrRGly dHkoKTsKKwlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJUmVwbGljYXRpb25TbG90UmVsZWFzZSgp OworfQorCiAvKgogICogUGVybWFuZW50bHkgZHJvcCB0aGUgY3VycmVudGx5IGFjcXVpcmVkIHJl cGxpY2F0aW9uIHNsb3QuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3RmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKaW5kZXgg Y2FkMzVkY2U3Zi4uYzkzZGJhODU1YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vc2xvdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMK QEAgLTQyLDcgKzQyLDggQEAgY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoY2hhciAq bmFtZSwgYm9vbCBpbW1lZGlhdGVseV9yZXNlcnZlLAogCiAJLyogYWNxdWlyZSByZXBsaWNhdGlv biBzbG90LCB0aGlzIHdpbGwgY2hlY2sgZm9yIGNvbmZsaWN0aW5nIG5hbWVzICovCiAJUmVwbGlj YXRpb25TbG90Q3JlYXRlKG5hbWUsIGZhbHNlLAotCQkJCQkJICB0ZW1wb3JhcnkgPyBSU19URU1Q T1JBUlkgOiBSU19QRVJTSVNURU5ULCBmYWxzZSk7CisJCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RF TVBPUkFSWSA6IFJTX1BFUlNJU1RFTlQsIGZhbHNlLAorCQkJCQkJICBmYWxzZSk7CiAKIAlpZiAo aW1tZWRpYXRlbHlfcmVzZXJ2ZSkKIAl7CkBAIC0xMTcsNiArMTE4LDcgQEAgcGdfY3JlYXRlX3Bo eXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIHN0YXRpYyB2b2lkCiBj cmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGNoYXIgKnBsdWdpbiwK IAkJCQkJCQkJYm9vbCB0ZW1wb3JhcnksIGJvb2wgdHdvX3BoYXNlLAorCQkJCQkJCQlib29sIGZh aWxvdmVyLAogCQkJCQkJCQlYTG9nUmVjUHRyIHJlc3RhcnRfbHNuLAogCQkJCQkJCQlib29sIGZp bmRfc3RhcnRwb2ludCkKIHsKQEAgLTEzMyw3ICsxMzUsOCBAQCBjcmVhdGVfbG9naWNhbF9yZXBs aWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGNoYXIgKnBsdWdpbiwKIAkgKiBlcnJvciBhcyB3ZWxs LgogCSAqLwogCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShuYW1lLCB0cnVlLAotCQkJCQkJICB0ZW1w b3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19FUEhFTUVSQUwsIHR3b19waGFzZSk7CisJCQkJCQkg IHRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwgdHdvX3BoYXNlLAorCQkJ CQkJICBmYWlsb3Zlcik7CiAKIAkvKgogCSAqIENyZWF0ZSBsb2dpY2FsIGRlY29kaW5nIGNvbnRl eHQgdG8gZmluZCBzdGFydCBwb2ludCBvciwgaWYgd2UgZG9uJ3QKQEAgLTE3MSw2ICsxNzQsNyBA QCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KFBHX0ZVTkNUSU9OX0FSR1MpCiAJ TmFtZQkJcGx1Z2luID0gUEdfR0VUQVJHX05BTUUoMSk7CiAJYm9vbAkJdGVtcG9yYXJ5ID0gUEdf R0VUQVJHX0JPT0woMik7CiAJYm9vbAkJdHdvX3BoYXNlID0gUEdfR0VUQVJHX0JPT0woMyk7CisJ Ym9vbAkJZmFpbG92ZXIgPSBQR19HRVRBUkdfQk9PTCg0KTsKIAlEYXR1bQkJcmVzdWx0OwogCVR1 cGxlRGVzYwl0dXBkZXNjOwogCUhlYXBUdXBsZQl0dXBsZTsKQEAgLTE4OCw2ICsxOTIsNyBAQCBw Z19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJ CQkJCQlOYW1lU3RyKCpwbHVnaW4pLAogCQkJCQkJCQkJdGVtcG9yYXJ5LAogCQkJCQkJCQkJdHdv X3BoYXNlLAorCQkJCQkJCQkJZmFpbG92ZXIsCiAJCQkJCQkJCQlJbnZhbGlkWExvZ1JlY1B0ciwK IAkJCQkJCQkJCXRydWUpOwogCkBAIC0yMzIsNyArMjM3LDcgQEAgcGdfZHJvcF9yZXBsaWNhdGlv bl9zbG90KFBHX0ZVTkNUSU9OX0FSR1MpCiBEYXR1bQogcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3Rz KFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0jZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19D T0xTIDE1CisjZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTIDE2CiAJUmV0dXJu U2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1bHRpbmZvOwog CVhMb2dSZWNQdHIJY3VycmxzbjsKIAlpbnQJCQlzbG90bm87CkBAIC00MjYsNiArNDMxLDggQEAg cGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQl9CiAJCX0KIAor CQl2YWx1ZXNbaSsrXSA9IEJvb2xHZXREYXR1bShzbG90X2NvbnRlbnRzLmRhdGEuZmFpbG92ZXIp OworCiAJCUFzc2VydChpID09IFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTKTsKIAogCQl0 dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLApA QCAtNzgyLDExICs3ODksMjAgQEAgY29weV9yZXBsaWNhdGlvbl9zbG90KEZ1bmN0aW9uQ2FsbElu Zm8gZmNpbmZvLCBib29sIGxvZ2ljYWxfc2xvdCkKIAkJICogV2UgbXVzdCBub3QgdHJ5IHRvIHJl YWQgV0FMLCBzaW5jZSB3ZSBoYXZlbid0IHJlc2VydmVkIGl0IHlldCAtLQogCQkgKiBoZW5jZSBw YXNzIGZpbmRfc3RhcnRwb2ludCBmYWxzZS4gIGNvbmZpcm1lZF9mbHVzaCB3aWxsIGJlIHNldAog CQkgKiBiZWxvdywgYnkgY29weWluZyBmcm9tIHRoZSBzb3VyY2Ugc2xvdC4KKwkJICoKKwkJICog VG8gYXZvaWQgcG90ZW50aWFsIGlzc3VlcyB3aXRoIHRoZSBzbG90c3luYyB3b3JrZXIgd2hlbiB0 aGUKKwkJICogcmVzdGFydF9sc24gb2YgYSByZXBsaWNhdGlvbiBzbG90IGdvZXMgYmFja3dhcmRz LCB3ZSBzZXQgdGhlCisJCSAqIGZhaWxvdmVyIG9wdGlvbiB0byBmYWxzZSBoZXJlLiBUaGlzIHNp dHVhdGlvbiBvY2N1cnMgd2hlbiBhIHNsb3Qgb24KKwkJICogdGhlIHByaW1hcnkgc2VydmVyIGlz IGRyb3BwZWQgYW5kIGltbWVkaWF0ZWx5IHJlcGxhY2VkIHdpdGggYSBuZXcKKwkJICogc2xvdCBv ZiB0aGUgc2FtZSBuYW1lLCBjcmVhdGVkIGJ5IGNvcHlpbmcgZnJvbSBhbm90aGVyIGV4aXN0aW5n CisJCSAqIHNsb3QuIEhvd2V2ZXIsIHRoZSBzbG90c3luYyB3b3JrZXIgd2lsbCBvbmx5IG9ic2Vy dmUgdGhlIHJlc3RhcnRfbHNuCisJCSAqIG9mIHRoZSBzYW1lIHNsb3QgZ29pbmcgYmFja3dhcmRz LgogCQkgKi8KIAkJY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdChOYW1lU3RyKCpkc3Rf bmFtZSksCiAJCQkJCQkJCQkJcGx1Z2luLAogCQkJCQkJCQkJCXRlbXBvcmFyeSwKIAkJCQkJCQkJ CQlmYWxzZSwKKwkJCQkJCQkJCQlmYWxzZSwKIAkJCQkJCQkJCQlzcmNfcmVzdGFydF9sc24sCiAJ CQkJCQkJCQkJZmFsc2UpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCmlu ZGV4IDcyODA1OTUxOGUuLmUyOWE2MTk2YTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVj ZWl2ZXIuYwpAQCAtMzg3LDcgKzM4Nyw3IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lkKQogCQkJCQkg InBnX3dhbHJlY2VpdmVyXyVsbGQiLAogCQkJCQkgKGxvbmcgbG9uZyBpbnQpIHdhbHJjdl9nZXRf YmFja2VuZF9waWQod3Jjb25uKSk7CiAKLQkJCXdhbHJjdl9jcmVhdGVfc2xvdCh3cmNvbm4sIHNs b3RuYW1lLCB0cnVlLCBmYWxzZSwgMCwgTlVMTCk7CisJCQl3YWxyY3ZfY3JlYXRlX3Nsb3Qod3Jj b25uLCBzbG90bmFtZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAwLCBOVUxMKTsKIAogCQkJU3Bpbkxv Y2tBY3F1aXJlKCZ3YWxyY3YtPm11dGV4KTsKIAkJCXN0cmxjcHkod2FscmN2LT5zbG90bmFtZSwg c2xvdG5hbWUsIE5BTUVEQVRBTEVOKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5k ZXggMDg3MDMxZTlkYy4uNzdjOGJhYTMyYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmMKQEAgLTExMjYsMTIgKzExMjYsMTMgQEAgc3RhdGljIHZvaWQKIHBhcnNlQ3JlYXRlUmVwbFNs b3RPcHRpb25zKENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kLAogCQkJCQkJICAgYm9vbCAq cmVzZXJ2ZV93YWwsCiAJCQkJCQkgICBDUlNTbmFwc2hvdEFjdGlvbiAqc25hcHNob3RfYWN0aW9u LAotCQkJCQkJICAgYm9vbCAqdHdvX3BoYXNlKQorCQkJCQkJICAgYm9vbCAqdHdvX3BoYXNlLCBi b29sICpmYWlsb3ZlcikKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlib29sCQlzbmFwc2hvdF9hY3Rp b25fZ2l2ZW4gPSBmYWxzZTsKIAlib29sCQlyZXNlcnZlX3dhbF9naXZlbiA9IGZhbHNlOwogCWJv b2wJCXR3b19waGFzZV9naXZlbiA9IGZhbHNlOworCWJvb2wJCWZhaWxvdmVyX2dpdmVuID0gZmFs c2U7CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgY21kLT5vcHRpb25zKQpA QCAtMTE4MSw2ICsxMTgyLDE1IEBAIHBhcnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKENyZWF0ZVJl cGxpY2F0aW9uU2xvdENtZCAqY21kLAogCQkJdHdvX3BoYXNlX2dpdmVuID0gdHJ1ZTsKIAkJCSp0 d29fcGhhc2UgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKIAkJfQorCQllbHNlIGlmIChzdHJjbXAo ZGVmZWwtPmRlZm5hbWUsICJmYWlsb3ZlciIpID09IDApCisJCXsKKwkJCWlmIChmYWlsb3Zlcl9n aXZlbiB8fCBjbWQtPmtpbmQgIT0gUkVQTElDQVRJT05fS0lORF9MT0dJQ0FMKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkg ZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlmYWlsb3Zl cl9naXZlbiA9IHRydWU7CisJCQkqZmFpbG92ZXIgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKKwkJ fQogCQllbHNlCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9wdGlvbjogJXMiLCBkZWZl bC0+ZGVmbmFtZSk7CiAJfQpAQCAtMTE5Nyw2ICsxMjA3LDcgQEAgQ3JlYXRlUmVwbGljYXRpb25T bG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCWNoYXIJICAgKnNsb3RfbmFtZTsK IAlib29sCQlyZXNlcnZlX3dhbCA9IGZhbHNlOwogCWJvb2wJCXR3b19waGFzZSA9IGZhbHNlOwor CWJvb2wJCWZhaWxvdmVyID0gZmFsc2U7CiAJQ1JTU25hcHNob3RBY3Rpb24gc25hcHNob3RfYWN0 aW9uID0gQ1JTX0VYUE9SVF9TTkFQU0hPVDsKIAlEZXN0UmVjZWl2ZXIgKmRlc3Q7CiAJVHVwT3V0 cHV0U3RhdGUgKnRzdGF0ZTsKQEAgLTEyMDYsMTMgKzEyMTcsMTQgQEAgQ3JlYXRlUmVwbGljYXRp b25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCiAJQXNzZXJ0KCFNeVJlcGxp Y2F0aW9uU2xvdCk7CiAKLQlwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9ucyhjbWQsICZyZXNlcnZl X3dhbCwgJnNuYXBzaG90X2FjdGlvbiwgJnR3b19waGFzZSk7CisJcGFyc2VDcmVhdGVSZXBsU2xv dE9wdGlvbnMoY21kLCAmcmVzZXJ2ZV93YWwsICZzbmFwc2hvdF9hY3Rpb24sICZ0d29fcGhhc2Us CisJCQkJCQkJICAgJmZhaWxvdmVyKTsKIAogCWlmIChjbWQtPmtpbmQgPT0gUkVQTElDQVRJT05f S0lORF9QSFlTSUNBTCkKIAl7CiAJCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShjbWQtPnNsb3RuYW1l LCBmYWxzZSwKIAkJCQkJCQkgIGNtZC0+dGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfUEVS U0lTVEVOVCwKLQkJCQkJCQkgIGZhbHNlKTsKKwkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CiAKIAkJ aWYgKHJlc2VydmVfd2FsKQogCQl7CkBAIC0xMjQzLDcgKzEyNTUsNyBAQCBDcmVhdGVSZXBsaWNh dGlvblNsb3QoQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpjbWQpCiAJCSAqLwogCQlSZXBsaWNh dGlvblNsb3RDcmVhdGUoY21kLT5zbG90bmFtZSwgdHJ1ZSwKIAkJCQkJCQkgIGNtZC0+dGVtcG9y YXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLAotCQkJCQkJCSAgdHdvX3BoYXNlKTsK KwkJCQkJCQkgIHR3b19waGFzZSwgZmFpbG92ZXIpOwogCiAJCS8qCiAJCSAqIERvIG9wdGlvbnMg Y2hlY2sgZWFybHkgc28gdGhhdCB3ZSBjYW4gYmFpbCBiZWZvcmUgY2FsbGluZyB0aGUKQEAgLTEz OTgsNiArMTQxMCw0MyBAQCBEcm9wUmVwbGljYXRpb25TbG90KERyb3BSZXBsaWNhdGlvblNsb3RD bWQgKmNtZCkKIAlSZXBsaWNhdGlvblNsb3REcm9wKGNtZC0+c2xvdG5hbWUsICFjbWQtPndhaXQp OwogfQogCisvKgorICogUHJvY2VzcyBleHRyYSBvcHRpb25zIGdpdmVuIHRvIEFMVEVSX1JFUExJ Q0FUSU9OX1NMT1QuCisgKi8KK3N0YXRpYyB2b2lkCitQYXJzZUFsdGVyUmVwbFNsb3RPcHRpb25z KEFsdGVyUmVwbGljYXRpb25TbG90Q21kICpjbWQsIGJvb2wgKmZhaWxvdmVyKQoreworCWJvb2wJ CWZhaWxvdmVyX2dpdmVuID0gZmFsc2U7CisKKwkvKiBQYXJzZSBvcHRpb25zICovCisJZm9yZWFj aF9wdHIoRGVmRWxlbSwgZGVmZWwsIGNtZC0+b3B0aW9ucykKKwl7CisJCWlmIChzdHJjbXAoZGVm ZWwtPmRlZm5hbWUsICJmYWlsb3ZlciIpID09IDApCisJCXsKKwkJCWlmIChmYWlsb3Zlcl9naXZl bikKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJS T1IpLAorCQkJCQkJIGVycm1zZygiY29uZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMiKSkp OworCQkJZmFpbG92ZXJfZ2l2ZW4gPSB0cnVlOworCQkJKmZhaWxvdmVyID0gZGVmR2V0Qm9vbGVh bihkZWZlbCk7CisJCX0KKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvcHRp b246ICVzIiwgZGVmZWwtPmRlZm5hbWUpOworCX0KK30KKworLyoKKyAqIENoYW5nZSB0aGUgZGVm aW5pdGlvbiBvZiBhIHJlcGxpY2F0aW9uIHNsb3QuCisgKi8KK3N0YXRpYyB2b2lkCitBbHRlclJl cGxpY2F0aW9uU2xvdChBbHRlclJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQoreworCWJvb2wJCWZh aWxvdmVyID0gZmFsc2U7CisKKwlQYXJzZUFsdGVyUmVwbFNsb3RPcHRpb25zKGNtZCwgJmZhaWxv dmVyKTsKKwlSZXBsaWNhdGlvblNsb3RBbHRlcihjbWQtPnNsb3RuYW1lLCBmYWlsb3Zlcik7Cit9 CisKIC8qCiAgKiBMb2FkIHByZXZpb3VzbHkgaW5pdGlhdGVkIGxvZ2ljYWwgc2xvdCBhbmQgcHJl cGFyZSBmb3Igc2VuZGluZyBkYXRhICh2aWEKICAqIFdhbFNuZExvb3ApLgpAQCAtMTk3MSw2ICsy MDIwLDEzIEBAIGV4ZWNfcmVwbGljYXRpb25fY29tbWFuZChjb25zdCBjaGFyICpjbWRfc3RyaW5n KQogCQkJRW5kUmVwbGljYXRpb25Db21tYW5kKGNtZHRhZyk7CiAJCQlicmVhazsKIAorCQljYXNl IFRfQWx0ZXJSZXBsaWNhdGlvblNsb3RDbWQ6CisJCQljbWR0YWcgPSAiQUxURVJfUkVQTElDQVRJ T05fU0xPVCI7CisJCQlzZXRfcHNfZGlzcGxheShjbWR0YWcpOworCQkJQWx0ZXJSZXBsaWNhdGlv blNsb3QoKEFsdGVyUmVwbGljYXRpb25TbG90Q21kICopIGNtZF9ub2RlKTsKKwkJCUVuZFJlcGxp Y2F0aW9uQ29tbWFuZChjbWR0YWcpOworCQkJYnJlYWs7CisKIAkJY2FzZSBUX1N0YXJ0UmVwbGlj YXRpb25DbWQ6CiAJCQl7CiAJCQkJU3RhcnRSZXBsaWNhdGlvbkNtZCAqY21kID0gKFN0YXJ0UmVw bGljYXRpb25DbWQgKikgY21kX25vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBiYzIwYTAyNWNlLi4zMzlm MjBlNWU2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQ2NDEsNiArNDY0MSw3IEBAIGdldFN1YnNjcmlwdGlv bnMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3N1Ym9yaWdpbjsKIAlpbnQJCQlpX3N1Ym9yaWdp bnJlbW90ZWxzbjsKIAlpbnQJCQlpX3N1YmVuYWJsZWQ7CisJaW50CQkJaV9zdWJmYWlsb3ZlcjsK IAlpbnQJCQlpLAogCQkJCW50dXBzOwogCkBAIC00NzA2LDEwICs0NzA3LDE3IEBAIGdldFN1YnNj cmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAogCWlmIChkb3B0LT5iaW5hcnlfdXBncmFkZSAmJiBm b3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVl cnksICIgby5yZW1vdGVfbHNuIEFTIHN1Ym9yaWdpbnJlbW90ZWxzbixcbiIKLQkJCQkJCQkgIiBz LnN1YmVuYWJsZWRcbiIpOworCQkJCQkJCSAiIHMuc3ViZW5hYmxlZCxcbiIpOwogCWVsc2UKIAkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgTlVMTCBBUyBzdWJvcmlnaW5yZW1vdGVsc24s XG4iCi0JCQkJCQkJICIgZmFsc2UgQVMgc3ViZW5hYmxlZFxuIik7CisJCQkJCQkJICIgZmFsc2Ug QVMgc3ViZW5hYmxlZCxcbiIpOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTcwMDAw KQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkgIiBzLnN1YmZhaWxvdmVy XG4iKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiIGZhbHNl IEFTIHN1YmZhaWxvdmVyXG4iKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJ CQkJICJGUk9NIHBnX3N1YnNjcmlwdGlvbiBzXG4iKTsKQEAgLTQ3NDgsNiArNDc1Niw3IEBAIGdl dFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpX3N1Ym9yaWdpbiA9IFBRZm51bWJlcihy ZXMsICJzdWJvcmlnaW4iKTsKIAlpX3N1Ym9yaWdpbnJlbW90ZWxzbiA9IFBRZm51bWJlcihyZXMs ICJzdWJvcmlnaW5yZW1vdGVsc24iKTsKIAlpX3N1YmVuYWJsZWQgPSBQUWZudW1iZXIocmVzLCAi c3ViZW5hYmxlZCIpOworCWlfc3ViZmFpbG92ZXIgPSBQUWZudW1iZXIocmVzLCAic3ViZmFpbG92 ZXIiKTsKIAogCXN1YmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoU3Vic2NyaXB0aW9u SW5mbykpOwogCkBAIC00NzkyLDYgKzQ4MDEsOCBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUg KmZvdXQpCiAJCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1Ym9yaWdpbnJlbW90 ZWxzbikpOwogCQlzdWJpbmZvW2ldLnN1YmVuYWJsZWQgPQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3N1YmVuYWJsZWQpKTsKKwkJc3ViaW5mb1tpXS5zdWJmYWlsb3ZlciA9CisJ CQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViZmFpbG92ZXIpKTsKIAogCQkvKiBE ZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVPYmpl Y3QoJihzdWJpbmZvW2ldLmRvYmopLCBmb3V0KTsKQEAgLTUwMjAsNiArNTAzMSw5IEBAIGR1bXBT dWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3ViaW5m bykKIAlpZiAoc3RyY21wKHN1YmluZm8tPnN1YnR3b3BoYXNlc3RhdGUsIHR3b19waGFzZV9kaXNh YmxlZCkgIT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIsIHR3b19waGFzZSA9 IG9uIik7CiAKKwlpZiAoc3RyY21wKHN1YmluZm8tPnN1YmZhaWxvdmVyLCAidCIpID09IDApCisJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBmYWlsb3ZlciA9IHRydWUiKTsKKwogCWlm IChzdHJjbXAoc3ViaW5mby0+c3ViZGlzYWJsZW9uZXJyLCAidCIpID09IDApCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSIpOwogCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaAppbmRleCBmMDc3MmQyMTU3Li4yNGUxNjQzNzk0IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTY2NSw2 ICs2NjUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWNoYXIJICAgKnN1 YnB1YmxpY2F0aW9uczsKIAljaGFyCSAgICpzdWJvcmlnaW47CiAJY2hhcgkgICAqc3Vib3JpZ2lu cmVtb3RlbHNuOworCWNoYXIJICAgKnN1YmZhaWxvdmVyOwogfSBTdWJzY3JpcHRpb25JbmZvOwog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYyBiL3NyYy9iaW4vcGdf dXBncmFkZS9pbmZvLmMKaW5kZXggNzRlMDJiM2Y4Mi4uMTgzYzJmODRlYiAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYworKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvaW5mby5j CkBAIC02NjYsNyArNjY2LDcgQEAgZ2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcyhE YkluZm8gKmRiaW5mbywgYm9vbCBsaXZlX2NoZWNrKQogCSAqIHN0YXJ0ZWQgYW5kIHN0b3BwZWQg c2V2ZXJhbCB0aW1lcyBjYXVzaW5nIGFueSB0ZW1wb3Jhcnkgc2xvdHMgdG8gYmUKIAkgKiByZW1v dmVkLgogCSAqLwotCXJlcyA9IGV4ZWN1dGVRdWVyeU9yRGllKGNvbm4sICJTRUxFQ1Qgc2xvdF9u YW1lLCBwbHVnaW4sIHR3b19waGFzZSwgIgorCXJlcyA9IGV4ZWN1dGVRdWVyeU9yRGllKGNvbm4s ICJTRUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIHR3b19waGFzZSwgZmFpbG92ZXIsICIKIAkJCQkJ CQkiJXMgYXMgY2F1Z2h0X3VwLCBjb25mbGljdF9yZWFzb24gSVMgTk9UIE5VTEwgYXMgaW52YWxp ZCAiCiAJCQkJCQkJIkZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyAiCiAJCQkJ CQkJIldIRVJFIHNsb3RfdHlwZSA9ICdsb2dpY2FsJyBBTkQgIgpAQCAtNjg0LDYgKzY4NCw3IEBA IGdldF9vbGRfY2x1c3Rlcl9sb2dpY2FsX3Nsb3RfaW5mb3MoRGJJbmZvICpkYmluZm8sIGJvb2wg bGl2ZV9jaGVjaykKIAkJaW50CQkJaV9zbG90bmFtZTsKIAkJaW50CQkJaV9wbHVnaW47CiAJCWlu dAkJCWlfdHdvcGhhc2U7CisJCWludAkJCWlfZmFpbG92ZXI7CiAJCWludAkJCWlfY2F1Z2h0X3Vw OwogCQlpbnQJCQlpX2ludmFsaWQ7CiAKQEAgLTY5Miw2ICs2OTMsNyBAQCBnZXRfb2xkX2NsdXN0 ZXJfbG9naWNhbF9zbG90X2luZm9zKERiSW5mbyAqZGJpbmZvLCBib29sIGxpdmVfY2hlY2spCiAJ CWlfc2xvdG5hbWUgPSBQUWZudW1iZXIocmVzLCAic2xvdF9uYW1lIik7CiAJCWlfcGx1Z2luID0g UFFmbnVtYmVyKHJlcywgInBsdWdpbiIpOwogCQlpX3R3b3BoYXNlID0gUFFmbnVtYmVyKHJlcywg InR3b19waGFzZSIpOworCQlpX2ZhaWxvdmVyID0gUFFmbnVtYmVyKHJlcywgImZhaWxvdmVyIik7 CiAJCWlfY2F1Z2h0X3VwID0gUFFmbnVtYmVyKHJlcywgImNhdWdodF91cCIpOwogCQlpX2ludmFs aWQgPSBQUWZudW1iZXIocmVzLCAiaW52YWxpZCIpOwogCkBAIC03MDIsNiArNzA0LDcgQEAgZ2V0 X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcyhEYkluZm8gKmRiaW5mbywgYm9vbCBsaXZl X2NoZWNrKQogCQkJY3Vyci0+c2xvdG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIHNs b3RudW0sIGlfc2xvdG5hbWUpKTsKIAkJCWN1cnItPnBsdWdpbiA9IHBnX3N0cmR1cChQUWdldHZh bHVlKHJlcywgc2xvdG51bSwgaV9wbHVnaW4pKTsKIAkJCWN1cnItPnR3b19waGFzZSA9IChzdHJj bXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfdHdvcGhhc2UpLCAidCIpID09IDApOworCQkJ Y3Vyci0+ZmFpbG92ZXIgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBzbG90bnVtLCBpX2ZhaWxv dmVyKSwgInQiKSA9PSAwKTsKIAkJCWN1cnItPmNhdWdodF91cCA9IChzdHJjbXAoUFFnZXR2YWx1 ZShyZXMsIHNsb3RudW0sIGlfY2F1Z2h0X3VwKSwgInQiKSA9PSAwKTsKIAkJCWN1cnItPmludmFs aWQgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBzbG90bnVtLCBpX2ludmFsaWQpLCAidCIpID09 IDApOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jIGIv c3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwppbmRleCAxNGEzNmYwNTAzLi4xMGM5NGE2 YzFmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCisrKyBiL3Ny Yy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKQEAgLTkxNiw4ICs5MTYsMTAgQEAgY3JlYXRl X2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHModm9pZCkKIAkJCWFwcGVuZFN0cmluZ0xpdGVyYWxD b25uKHF1ZXJ5LCBzbG90X2luZm8tPnNsb3RuYW1lLCBjb25uKTsKIAkJCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiLCAiKTsKIAkJCWFwcGVuZFN0cmluZ0xpdGVyYWxDb25uKHF1ZXJ5LCBzbG90 X2luZm8tPnBsdWdpbiwgY29ubik7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiwgZmFs c2UsICVzKTsiLAotCQkJCQkJCSAgc2xvdF9pbmZvLT50d29fcGhhc2UgPyAidHJ1ZSIgOiAiZmFs c2UiKTsKKworCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsIGZhbHNlLCAlcywgJXMpOyIs CisJCQkJCQkJICBzbG90X2luZm8tPnR3b19waGFzZSA/ICJ0cnVlIiA6ICJmYWxzZSIsCisJCQkJ CQkJICBzbG90X2luZm8tPmZhaWxvdmVyID8gInRydWUiIDogImZhbHNlIik7CiAKIAkJCVBRY2xl YXIoZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIiVzIiwgcXVlcnktPmRhdGEpKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCBiL3NyYy9iaW4vcGdfdXBncmFk ZS9wZ191cGdyYWRlLmgKaW5kZXggYTFkMDhjM2RhYi4uZDlhODQ4Y2JmZCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5oCkBAIC0xNjAsNiArMTYwLDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQl0 d29fcGhhc2U7CQkvKiBjYW4gdGhlIHNsb3QgZGVjb2RlIDJQQz8gKi8KIAlib29sCQljYXVnaHRf dXA7CQkvKiBoYXMgdGhlIHNsb3QgY2F1Z2h0IHVwIHRvIGxhdGVzdCBjaGFuZ2VzPyAqLwogCWJv b2wJCWludmFsaWQ7CQkvKiBpZiB0cnVlLCB0aGUgc2xvdCBpcyB1bnVzYWJsZSAqLworCWJvb2wJ CWZhaWxvdmVyOwkJLyogaXMgdGhlIHNsb3QgZGVzaWduYXRlZCB0byBiZSBzeW5jZWQgdG8gdGhl CisJCQkJCQkJCSAqIHBoeXNpY2FsIHN0YW5kYnk/ICovCiB9IExvZ2ljYWxTbG90SW5mbzsKIAog dHlwZWRlZiBzdHJ1Y3QKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS90LzAwM19sb2dp Y2FsX3Nsb3RzLnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwK aW5kZXggMGFiMzY4MjQ3Yi4uODNkNzFjMzA4NCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdy YWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAz X2xvZ2ljYWxfc2xvdHMucGwKQEAgLTE3Miw3ICsxNzIsNyBAQCAkc3ViLT5zdGFydDsKICRzdWIt PnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcVsKIAlDUkVBVEUgVEFCTEUgdGJsIChhIGludCk7 Ci0JQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3N1YiBDT05ORUNUSU9OICckb2xkX2Nvbm5z dHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViIFdJVEggKHR3b19waGFzZSA9ICd0cnVlJykKKwlD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViIENPTk5FQ1RJT04gJyRvbGRfY29ubnN0cicg UFVCTElDQVRJT04gcmVncmVzc19wdWIgV0lUSCAodHdvX3BoYXNlID0gJ3RydWUnLCBmYWlsb3Zl ciA9ICd0cnVlJykKIF0pOwogJHN1Yi0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG9sZHB1 YiwgJ3JlZ3Jlc3Nfc3ViJyk7CiAKQEAgLTE5Miw4ICsxOTIsOCBAQCBjb21tYW5kX29rKFtAcGdf dXBncmFkZV9jbWRdLCAncnVuIG9mIHBnX3VwZ3JhZGUgb2Ygb2xkIGNsdXN0ZXInKTsKICMgQ2hl Y2sgdGhhdCB0aGUgc2xvdCAncmVncmVzc19zdWInIGhhcyBtaWdyYXRlZCB0byB0aGUgbmV3IGNs dXN0ZXIKICRuZXdwdWItPnN0YXJ0OwogbXkgJHJlc3VsdCA9ICRuZXdwdWItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAotCSJTRUxFQ1Qgc2xvdF9uYW1lLCB0d29fcGhhc2UgRlJPTSBwZ19yZXBsaWNh dGlvbl9zbG90cyIpOwotaXMoJHJlc3VsdCwgcXEocmVncmVzc19zdWJ8dCksICdjaGVjayB0aGUg c2xvdCBleGlzdHMgb24gbmV3IGNsdXN0ZXInKTsKKwkiU0VMRUNUIHNsb3RfbmFtZSwgdHdvX3Bo YXNlLCBmYWlsb3ZlciBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIik7CitpcygkcmVzdWx0LCBx cShyZWdyZXNzX3N1Ynx0fHQpLCAnY2hlY2sgdGhlIHNsb3QgZXhpc3RzIG9uIG5ldyBjbHVzdGVy Jyk7CiAKICMgVXBkYXRlIHRoZSBjb25uZWN0aW9uCiBteSAkbmV3X2Nvbm5zdHIgPSAkbmV3cHVi LT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzN2Y5NTE2MzIwLi42 ZDlhZDVkNzRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNjU2Myw3ICs2NTYzLDggQEAgZGVzY3JpYmVTdWJzY3Jp cHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQR3Jlc3VsdCAgICpy ZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKIAlzdGF0aWMgY29uc3QgYm9v bCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotCWZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlfTsKKwkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNp b24gPCAxMDAwMDApCiAJewpAQCAtNjYyNyw2ICs2NjI4LDExIEBAIGRlc2NyaWJlU3Vic2NyaXB0 aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCQkJICBnZXR0ZXh0 X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCiAJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlJ1biBh cyBvd25lcj8iKSk7CiAKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTcwMDAwKQorCQkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICIsIHN1YmZhaWxvdmVyIEFTIFwiJXNcIlxuIiwK KwkJCQkJCQkgIGdldHRleHRfbm9vcCgiRmFpbG92ZXIiKSk7CisKIAkJYXBwZW5kUFFFeHBCdWZm ZXIoJmJ1ZiwKIAkJCQkJCSAgIiwgIHN1YnN5bmNjb21taXQgQVMgXCIlc1wiXG4iCiAJCQkJCQkg ICIsICBzdWJjb25uaW5mbyBBUyBcIiVzXCJcbiIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKaW5kZXggYWRhNzEx ZDAyZi4uMTUxYTUyMTFlZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTk0Myw3ICsxOTQzLDcgQEAg cHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJ Q09NUExFVEVfV0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElP TiA8bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQUxURVIiLCAiU1VCU0NS SVBUSU9OIiwgTWF0Y2hBbnkpICYmIFRhaWxNYXRjaGVzKCJTRVQiLCAiKCIpKQotCQlDT01QTEVU RV9XSVRIKCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJvciIsICJvcmlnaW4iLAorCQlDT01QTEVU RV9XSVRIKCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJvciIsICJmYWlsb3ZlciIsICJvcmlnaW4i LAogCQkJCQkgICJwYXNzd29yZF9yZXF1aXJlZCIsICJydW5fYXNfb3duZXIiLCAic2xvdF9uYW1l IiwKIAkJCQkJICAic3RyZWFtaW5nIiwgInN5bmNocm9ub3VzX2NvbW1pdCIpOwogCS8qIEFMVEVS IFNVQlNDUklQVElPTiA8bmFtZT4gU0tJUCAoICovCkBAIC0zMzQwLDcgKzMzNDAsNyBAQCBwc3Fs X2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCS8qIENv bXBsZXRlICJDUkVBVEUgU1VCU0NSSVBUSU9OIDxuYW1lPiAuLi4gIFdJVEggKCA8b3B0PiIgKi8K IAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQVElPTiIpICYmIFRhaWxN YXRjaGVzKCJXSVRIIiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImNvbm5lY3Qi LCAiY29weV9kYXRhIiwgImNyZWF0ZV9zbG90IiwKLQkJCQkJICAiZGlzYWJsZV9vbl9lcnJvciIs ICJlbmFibGVkIiwgIm9yaWdpbiIsCisJCQkJCSAgImRpc2FibGVfb25fZXJyb3IiLCAiZW5hYmxl ZCIsICJmYWlsb3ZlciIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29yZF9yZXF1aXJlZCIsICJy dW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwKIAkJCQkJICAic3RyZWFtaW5nIiwgInN5bmNocm9u b3VzX2NvbW1pdCIsICJ0d29fcGhhc2UiKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXgg YWQ3NGUwN2RiYi4uZTZlNGJiZGZiOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMTEy MywxNyArMTExMjMsMTcgQEAKICAgcHJvbmFtZSA9PiAncGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3Rz JywgcHJvcm93cyA9PiAnMTAnLCBwcm9pc3N0cmljdCA9PiAnZicsCiAgIHByb3JldHNldCA9PiAn dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKICAgcHJvYXJn dHlwZXMgPT4gJycsCi0gIHByb2FsbGFyZ3R5cGVzID0+ICd7bmFtZSxuYW1lLHRleHQsb2lkLGJv b2wsYm9vbCxpbnQ0LHhpZCx4aWQscGdfbHNuLHBnX2xzbix0ZXh0LGludDgsYm9vbCx0ZXh0fScs Ci0gIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKLSAg cHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHNsb3RfdHlwZSxkYXRvaWQsdGVtcG9y YXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0YWxvZ194bWluLHJlc3RhcnRfbHNuLGNvbmZp cm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZlX3dhbF9zaXplLHR3b19waGFzZSxjb25mbGlj dF9yZWFzb259JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsdGV4dCxvaWQsYm9v bCxib29sLGludDQseGlkLHhpZCxwZ19sc24scGdfbHNuLHRleHQsaW50OCxib29sLHRleHQsYm9v bH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG99 JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHNsb3RfdHlwZSxkYXRvaWQs dGVtcG9yYXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0YWxvZ194bWluLHJlc3RhcnRfbHNu LGNvbmZpcm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZlX3dhbF9zaXplLHR3b19waGFzZSxj b25mbGljdF9yZWFzb24sZmFpbG92ZXJ9JywKICAgcHJvc3JjID0+ICdwZ19nZXRfcmVwbGljYXRp b25fc2xvdHMnIH0sCiB7IG9pZCA9PiAnMzc4NicsIGRlc2NyID0+ICdzZXQgdXAgYSBsb2dpY2Fs IHJlcGxpY2F0aW9uIHNsb3QnLAogICBwcm9uYW1lID0+ICdwZ19jcmVhdGVfbG9naWNhbF9yZXBs aWNhdGlvbl9zbG90JywgcHJvdm9sYXRpbGUgPT4gJ3YnLAogICBwcm9wYXJhbGxlbCA9PiAndScs IHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCi0gIHByb2FyZ3R5cGVzID0+ICduYW1lIG5hbWUgYm9v bCBib29sJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUsYm9vbCxib29sLG5hbWUs cGdfbHNufScsCi0gIHByb2FyZ21vZGVzID0+ICd7aSxpLGksaSxvLG99JywKLSAgcHJvYXJnbmFt ZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHRlbXBvcmFyeSx0d29waGFzZSxzbG90X25hbWUsbHNu fScsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIG5hbWUgYm9vbCBib29sIGJvb2wnLAorICBwcm9h bGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSxib29sLGJvb2wsYm9vbCxuYW1lLHBnX2xzbn0nLAor ICBwcm9hcmdtb2RlcyA9PiAne2ksaSxpLGksaSxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tz bG90X25hbWUscGx1Z2luLHRlbXBvcmFyeSx0d29waGFzZSxmYWlsb3ZlcixzbG90X25hbWUsbHNu fScsCiAgIHByb3NyYyA9PiAncGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCcgfSwK IHsgb2lkID0+ICc0MjIyJywKICAgZGVzY3IgPT4gJ2NvcHkgYSBsb2dpY2FsIHJlcGxpY2F0aW9u IHNsb3QsIGNoYW5naW5nIHRlbXBvcmFsaXR5IGFuZCBwbHVnaW4nLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggY2EzMjYyNTU4NS4uYzkyYTgxZTZiNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05Myw2ICs5MywxMiBAQCBDQVRBTE9HKHBn X3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9uSWQpIEJLSV9TSEFSRURfUkVM QVRJT04gQktJX1JPVwogCWJvb2wJCXN1YnJ1bmFzb3duZXI7CS8qIFRydWUgaWYgcmVwbGljYXRp b24gc2hvdWxkIGV4ZWN1dGUgYXMgdGhlCiAJCQkJCQkJCSAqIHN1YnNjcmlwdGlvbiBvd25lciAq LwogCisJYm9vbAkJc3ViZmFpbG92ZXI7CS8qIFRydWUgaWYgdGhlIGFzc29jaWF0ZWQgcmVwbGlj YXRpb24gc2xvdHMKKwkJCQkJCQkJICogKGkuZS4gdGhlIG1haW4gc2xvdCBhbmQgdGhlIHRhYmxl IHN5bmMKKwkJCQkJCQkJICogc2xvdHMpIGluIHRoZSB1cHN0cmVhbSBkYXRhYmFzZSBhcmUgZW5h YmxlZAorCQkJCQkJCQkgKiB0byBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIHBoeXNpY2FsCisJCQkJ CQkJCSAqIHN0YW5kYnlzLiAqLworCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJs ZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KIAkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0 aGUgcHVibGlzaGVyICovCiAJdGV4dAkJc3ViY29ubmluZm8gQktJX0ZPUkNFX05PVF9OVUxMOwpA QCAtMTQ1LDYgKzE1MSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24KIAlMaXN0CSAg ICpwdWJsaWNhdGlvbnM7CS8qIExpc3Qgb2YgcHVibGljYXRpb24gbmFtZXMgdG8gc3Vic2NyaWJl IHRvICovCiAJY2hhcgkgICAqb3JpZ2luOwkJCS8qIE9ubHkgcHVibGlzaCBkYXRhIG9yaWdpbmF0 aW5nIGZyb20gdGhlCiAJCQkJCQkJCSAqIHNwZWNpZmllZCBvcmlnaW4gKi8KKwlib29sCQlmYWls b3ZlcjsJCS8qIFRydWUgaWYgdGhlIGFzc29jaWF0ZWQgcmVwbGljYXRpb24gc2xvdHMKKwkJCQkJ CQkJICogKGkuZS4gdGhlIG1haW4gc2xvdCBhbmQgdGhlIHRhYmxlIHN5bmMKKwkJCQkJCQkJICog c2xvdHMpIGluIHRoZSB1cHN0cmVhbSBkYXRhYmFzZSBhcmUgZW5hYmxlZAorCQkJCQkJCQkgKiB0 byBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIHBoeXNpY2FsCisJCQkJCQkJCSAqIHN0YW5kYnlzLiAq LwogfSBTdWJzY3JpcHRpb247CiAKIC8qIERpc2FsbG93IHN0cmVhbWluZyBpbi1wcm9ncmVzcyB0 cmFuc2FjdGlvbnMuICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9yZXBsbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5oCmluZGV4IGFmMGEzMzNmMWEuLmVkMjMz MzNlOTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5oCkBAIC03Miw2ICs3MiwxOCBAQCB0eXBlZGVmIHN0 cnVjdCBEcm9wUmVwbGljYXRpb25TbG90Q21kCiB9IERyb3BSZXBsaWNhdGlvblNsb3RDbWQ7CiAK IAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCUFMVEVSX1JFUExJQ0FUSU9OX1NMT1Qg Y29tbWFuZAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBB bHRlclJlcGxpY2F0aW9uU2xvdENtZAoreworCU5vZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqc2xv dG5hbWU7CisJTGlzdAkgICAqb3B0aW9uczsKK30gQWx0ZXJSZXBsaWNhdGlvblNsb3RDbWQ7CisK KwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCVNUQVJUX1JFUExJQ0FUSU9OIGNvbW1h bmQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCA5 ZTM5YWFmMzAzLi41ODVjY2JiNTA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBAIC0xMTEsNiAr MTExLDEyIEBAIHR5cGVkZWYgc3RydWN0IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbnREYXRhCiAK IAkvKiBwbHVnaW4gbmFtZSAqLwogCU5hbWVEYXRhCXBsdWdpbjsKKworCS8qCisJICogSXMgdGhp cyBhIGZhaWxvdmVyIHNsb3QgKHN5bmMgY2FuZGlkYXRlIGZvciBwaHlzaWNhbCBzdGFuZGJ5cyk/ IE9ubHkKKwkgKiByZWxldmFudCBmb3IgbG9naWNhbCBzbG90cyBvbiB0aGUgcHJpbWFyeSBzZXJ2 ZXIuCisJICovCisJYm9vbAkJZmFpbG92ZXI7CiB9IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbnRE YXRhOwogCiAvKgpAQCAtMjE4LDkgKzIyNCwxMCBAQCBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNs b3RzU2htZW1Jbml0KHZvaWQpOwogLyogbWFuYWdlbWVudCBvZiBpbmRpdmlkdWFsIHNsb3RzICov CiBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9v bCBkYl9zcGVjaWZpYywKIAkJCQkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJz aXN0ZW5jeSwKLQkJCQkJCQkJICBib29sIHR3b19waGFzZSk7CisJCQkJCQkJCSAgYm9vbCB0d29f cGhhc2UsIGJvb2wgZmFpbG92ZXIpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90UGVyc2lz dCh2b2lkKTsKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3AoY29uc3QgY2hhciAqbmFt ZSwgYm9vbCBub3dhaXQpOworZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90QWx0ZXIoY29uc3Qg Y2hhciAqbmFtZSwgYm9vbCBmYWlsb3Zlcik7CiAKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xv dEFjcXVpcmUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dhaXQpOwogZXh0ZXJuIHZvaWQgUmVw bGljYXRpb25TbG90UmVsZWFzZSh2b2lkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3dhbHJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZl ci5oCmluZGV4IDA4OTk4OTFjZGIuLmY1NjZhOTliYTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d2FscmVjZWl2ZXIuaApAQCAtMzU1LDkgKzM1NSwyMCBAQCB0eXBlZGVmIGNoYXIgKigqd2FscmN2 X2NyZWF0ZV9zbG90X2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJCQkJCQkJCWNvbnN0 IGNoYXIgKnNsb3RuYW1lLAogCQkJCQkJCQkJCWJvb2wgdGVtcG9yYXJ5LAogCQkJCQkJCQkJCWJv b2wgdHdvX3BoYXNlLAorCQkJCQkJCQkJCWJvb2wgZmFpbG92ZXIsCiAJCQkJCQkJCQkJQ1JTU25h cHNob3RBY3Rpb24gc25hcHNob3RfYWN0aW9uLAogCQkJCQkJCQkJCVhMb2dSZWNQdHIgKmxzbik7 CiAKKy8qCisgKiB3YWxyY3ZfYWx0ZXJfc2xvdF9mbgorICoKKyAqIENoYW5nZSB0aGUgZGVmaW5p dGlvbiBvZiBhIHJlcGxpY2F0aW9uIHNsb3QuIEN1cnJlbnRseSwgaXQgb25seSBzdXBwb3J0cwor ICogY2hhbmdpbmcgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIHRoZSBzbG90LgorICovCit0eXBl ZGVmIHZvaWQgKCp3YWxyY3ZfYWx0ZXJfc2xvdF9mbikgKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwK KwkJCQkJCQkJCSAgY29uc3QgY2hhciAqc2xvdG5hbWUsCisJCQkJCQkJCQkgIGJvb2wgZmFpbG92 ZXIpOworCiAvKgogICogd2FscmN2X2dldF9iYWNrZW5kX3BpZF9mbgogICoKQEAgLTM5OSw2ICs0 MTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUKIAl3YWxyY3Zf cmVjZWl2ZV9mbiB3YWxyY3ZfcmVjZWl2ZTsKIAl3YWxyY3Zfc2VuZF9mbiB3YWxyY3Zfc2VuZDsK IAl3YWxyY3ZfY3JlYXRlX3Nsb3RfZm4gd2FscmN2X2NyZWF0ZV9zbG90OworCXdhbHJjdl9hbHRl cl9zbG90X2ZuIHdhbHJjdl9hbHRlcl9zbG90OwogCXdhbHJjdl9nZXRfYmFja2VuZF9waWRfZm4g d2FscmN2X2dldF9iYWNrZW5kX3BpZDsKIAl3YWxyY3ZfZXhlY19mbiB3YWxyY3ZfZXhlYzsKIAl3 YWxyY3ZfZGlzY29ubmVjdF9mbiB3YWxyY3ZfZGlzY29ubmVjdDsKQEAgLTQyOCw4ICs0NDAsMTAg QEAgZXh0ZXJuIFBHRExMSU1QT1JUIFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZSAqV2FsUmVjZWl2 ZXJGdW5jdGlvbnM7CiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9yZWNlaXZlKGNvbm4s IGJ1ZmZlciwgd2FpdF9mZCkKICNkZWZpbmUgd2FscmN2X3NlbmQoY29ubiwgYnVmZmVyLCBuYnl0 ZXMpIFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X3NlbmQoY29ubiwgYnVmZmVyLCBu Ynl0ZXMpCi0jZGVmaW5lIHdhbHJjdl9jcmVhdGVfc2xvdChjb25uLCBzbG90bmFtZSwgdGVtcG9y YXJ5LCB0d29fcGhhc2UsIHNuYXBzaG90X2FjdGlvbiwgbHNuKSBcCi0JV2FsUmVjZWl2ZXJGdW5j dGlvbnMtPndhbHJjdl9jcmVhdGVfc2xvdChjb25uLCBzbG90bmFtZSwgdGVtcG9yYXJ5LCB0d29f cGhhc2UsIHNuYXBzaG90X2FjdGlvbiwgbHNuKQorI2RlZmluZSB3YWxyY3ZfY3JlYXRlX3Nsb3Qo Y29ubiwgc2xvdG5hbWUsIHRlbXBvcmFyeSwgdHdvX3BoYXNlLCBmYWlsb3Zlciwgc25hcHNob3Rf YWN0aW9uLCBsc24pIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2NyZWF0ZV9zbG90 KGNvbm4sIHNsb3RuYW1lLCB0ZW1wb3JhcnksIHR3b19waGFzZSwgZmFpbG92ZXIsIHNuYXBzaG90 X2FjdGlvbiwgbHNuKQorI2RlZmluZSB3YWxyY3ZfYWx0ZXJfc2xvdChjb25uLCBzbG90bmFtZSwg ZmFpbG92ZXIpIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2FsdGVyX3Nsb3QoY29u biwgc2xvdG5hbWUsIGZhaWxvdmVyKQogI2RlZmluZSB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkKGNv bm4pIFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2dldF9iYWNrZW5kX3BpZChjb25u KQogI2RlZmluZSB3YWxyY3ZfZXhlYyhjb25uLCBleGVjLCBuUmV0VHlwZXMsIHJldFR5cGVzKSBc CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Ns b3RzX3N5bmMucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Ns b3RzX3N5bmMucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjQ2Mjkz YzM5ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlf ZmFpbG92ZXJfc2xvdHNfc3luYy5wbApAQCAtMCwwICsxLDg5IEBACisKKyMgQ29weXJpZ2h0IChj KSAyMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0 OwordXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9z dGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0aGF0IHdoZW4gYSBz dWJzY3JpcHRpb24gd2l0aCBmYWlsb3ZlciBlbmFibGVkIGlzIGNyZWF0ZWQsIGl0IHdpbGwgYWx0 ZXIKKyMgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIHRoZSBjb3JyZXNwb25kaW5nIHNsb3Qgb24g dGhlIHB1Ymxpc2hlci4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisKKyMgQ3JlYXRlIHB1Ymxpc2hlcgorbXkgJHB1Ymxpc2hlciA9IFBvc3RncmVT UUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7CiskcHVibGlzaGVyLT5pbml0KGFs bG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRwdWJsaXNoZXItPnN0YXJ0OworCiskcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHJlZ3Jl c3NfbXlwdWIgRk9SIEFMTCBUQUJMRVM7IgorKTsKKworbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0g JHB1Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKworIyBDcmVhdGUgYSBz dWJzY3JpYmVyIG5vZGUsIHdhaXQgZm9yIHN5bmMgdG8gY29tcGxldGUKK215ICRzdWJzY3JpYmVy MSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcjEnKTsKKyRzdWJz Y3JpYmVyMS0+aW5pdDsKKyRzdWJzY3JpYmVyMS0+c3RhcnQ7CisKKyMgQ3JlYXRlIGEgc2xvdCBv biB0aGUgcHVibGlzaGVyIHdpdGggZmFpbG92ZXIgZGlzYWJsZWQKKyRwdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxf cmVwbGljYXRpb25fc2xvdCgnbHN1YjFfc2xvdCcsICdwZ291dHB1dCcsIGZhbHNlLCBmYWxzZSwg ZmFsc2UpOyIKKyk7CisKKyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBz bG90IGlzIHR1cm5lZCBvZmYKK2lzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3Jl cycsCisJCXF7U0VMRUNUIGZhaWxvdmVyIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUg c2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnO30KKwkpLAorCSJmIiwKKwknbG9naWNhbCBzbG90IGhh cyBmYWlsb3ZlciBmYWxzZSBvbiB0aGUgcHVibGlzaGVyJyk7CisKKyMgQ3JlYXRlIGEgc3Vic2Ny aXB0aW9uICh1c2luZyB0aGUgc2FtZSBzbG90IGNyZWF0ZWQgYWJvdmUpIHRoYXQgZW5hYmxlcwor IyBmYWlsb3Zlci4KKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFU RSBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25u c3RyJyBQVUJMSUNBVElPTiByZWdyZXNzX215cHViIFdJVEggKHNsb3RfbmFtZSA9IGxzdWIxX3Ns b3QsIGNvcHlfZGF0YT1mYWxzZSwgZmFpbG92ZXIgPSB0cnVlLCBjcmVhdGVfc2xvdCA9IGZhbHNl LCBlbmFibGVkID0gZmFsc2UpOyIKKyk7CisKKyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBm bGFnIG9uIHRoZSBzbG90IGhhcyBub3cgYmVlbiB0dXJuZWQgb24KK2lzKCAkcHVibGlzaGVyLT5z YWZlX3BzcWwoCisJCSdwb3N0Z3JlcycsCisJCXF7U0VMRUNUIGZhaWxvdmVyIGZyb20gcGdfcmVw bGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnO30KKwkpLAorCSJ0 IiwKKwknbG9naWNhbCBzbG90IGhhcyBmYWlsb3ZlciB0cnVlIG9uIHRoZSBwdWJsaXNoZXInKTsK KworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg VGVzdCB0aGF0IGNoYW5naW5nIHRoZSBmYWlsb3ZlciBwcm9wZXJ0eSBvZiBhIHN1YnNjcmlwdGlv biB1cGRhdGVzIHRoZQorIyBjb3JyZXNwb25kaW5nIGZhaWxvdmVyIHByb3BlcnR5IG9mIHRoZSBz bG90LgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KworIyBEaXNhYmxlIGZhaWxvdmVyCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgU0VUIChmYWlsb3ZlciA9IGZh bHNlKSIpOworCisjIENvbmZpcm0gdGhhdCB0aGUgZmFpbG92ZXIgZmxhZyBvbiB0aGUgc2xvdCBo YXMgbm93IGJlZW4gdHVybmVkIG9mZgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bv c3RncmVzJywKKwkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBX SEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCSksCisJImYiLAorCSdsb2dpY2FsIHNs b3QgaGFzIGZhaWxvdmVyIGZhbHNlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworIyBFbmFibGUgZmFp bG92ZXIKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX215c3ViMSBTRVQgKGZhaWxvdmVyID0gdHJ1ZSkiKTsKKworIyBDb25m aXJtIHRoYXQgdGhlIGZhaWxvdmVyIGZsYWcgb24gdGhlIHNsb3QgaGFzIG5vdyBiZWVuIHR1cm5l ZCBvbgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXtTRUxF Q1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAn bHN1YjFfc2xvdCc7fQorCSksCisJInQiLAorCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIHRy dWUgb24gdGhlIHB1Ymxpc2hlcicpOworCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEiKTsKKworZG9uZV90ZXN0aW5n KCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IDU1ZjJlOTUzNTIuLjU3ODg0 ZDNmZWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xNDczLDggKzE0NzMs OSBAQCBwZ19yZXBsaWNhdGlvbl9zbG90c3wgU0VMRUNUIGwuc2xvdF9uYW1lLAogICAgIGwud2Fs X3N0YXR1cywKICAgICBsLnNhZmVfd2FsX3NpemUsCiAgICAgbC50d29fcGhhc2UsCi0gICAgbC5j b25mbGljdF9yZWFzb24KLSAgIEZST00gKHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygpIGwoc2xv dF9uYW1lLCBwbHVnaW4sIHNsb3RfdHlwZSwgZGF0b2lkLCB0ZW1wb3JhcnksIGFjdGl2ZSwgYWN0 aXZlX3BpZCwgeG1pbiwgY2F0YWxvZ194bWluLCByZXN0YXJ0X2xzbiwgY29uZmlybWVkX2ZsdXNo X2xzbiwgd2FsX3N0YXR1cywgc2FmZV93YWxfc2l6ZSwgdHdvX3BoYXNlLCBjb25mbGljdF9yZWFz b24pCisgICAgbC5jb25mbGljdF9yZWFzb24sCisgICAgbC5mYWlsb3ZlcgorICAgRlJPTSAocGdf Z2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgbChzbG90X25hbWUsIHBsdWdpbiwgc2xvdF90eXBlLCBk YXRvaWQsIHRlbXBvcmFyeSwgYWN0aXZlLCBhY3RpdmVfcGlkLCB4bWluLCBjYXRhbG9nX3htaW4s IHJlc3RhcnRfbHNuLCBjb25maXJtZWRfZmx1c2hfbHNuLCB3YWxfc3RhdHVzLCBzYWZlX3dhbF9z aXplLCB0d29fcGhhc2UsIGNvbmZsaWN0X3JlYXNvbiwgZmFpbG92ZXIpCiAgICAgIExFRlQgSk9J TiBwZ19kYXRhYmFzZSBkIE9OICgobC5kYXRvaWQgPSBkLm9pZCkpKTsKIHBnX3JvbGVzfCBTRUxF Q1QgcGdfYXV0aGlkLnJvbG5hbWUsCiAgICAgcGdfYXV0aGlkLnJvbHN1cGVyLApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IGIxNWVkZGJmZjMuLjVmYTIz MGE4OTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9u Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKQEAg LTExNiwxOCArMTE2LDE4IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNCBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVCiBXQVJOSU5HOiAgc3Vi c2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGlu aXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0 aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2Ny aXB0aW9uLgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g Ci0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgTmFtZSAgICAgICB8 ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g CistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IFNFVCAob3JpZ2luID0gYW55KTsKIFxkUnMrIHJl Z3Jlc3NfdGVzdHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg b2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwg VHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCBy ZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIzOwpAQCAtMTQ1LDEwICsxNDUsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBDT05ORUNUSU9OICdmb29iYXInOwogRVJST1I6ICBpbnZhbGlkIGNvbm5lY3Rp b24gc3RyaW5nIHN5bnRheDogbWlzc2luZyAiPSIgYWZ0ZXIgImZvb2JhciIgaW4gY29ubmVjdGlv biBpbmZvIHN0cmluZwogCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBj b21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K LSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTRVQgUFVCTElDQVRJT04gdGVzdHB1YjIsIHRlc3RwdWIzIFdJVEggKHJlZnJl c2ggPSBmYWxzZSk7CkBAIC0xNTcsMTAgKzE1NywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gJ25ld25hbWUnKTsKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlKTsKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChydW5fYXNfb3duZXIgPSB0cnVl KTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAg ICAgIHwgdCAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1Ymxp Y2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi Mix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAg ICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0MiB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAocGFzc3dvcmRfcmVxdWlyZWQgPSB0cnVlKTsKQEAgLTE3NiwxMCArMTc2LDEwIEBA IEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6ICJjcmVhdGVfc2xv dCIKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9 ICcwLzEyMzQ1Jyk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24g ICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8xMjM0NQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8xMjM0NQogKDEgcm93KQogCiAtLSBvayAtIHdpdGgg bHNuID0gTk9ORQpAQCAtMTg4LDEwICsxODgsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBTS0lQIChsc24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X3Rlc3RzdWIgU0tJUCAobHNuID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlv biAoTFNOKTogMC8wCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24g ICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK KyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogQkVHSU47CkBAIC0yMjMsMTAgKzIy MywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViX2ZvbyBTRVQgKHN5bmNo cm9ub3VzX2NvbW1pdCA9IGZvb2Jhcik7CiBFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIHBhcmFt ZXRlciAic3luY2hyb25vdXNfY29tbWl0IjogImZvb2JhciIKIEhJTlQ6ICBBdmFpbGFibGUgdmFs dWVzOiBsb2NhbCwgcmVtb3RlX3dyaXRlLCByZW1vdGVfYXBwbHksIG9uLCBvZmYuCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAg ICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBsb2NhbCAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNr IHRvIGtlZXAgdGhlIHJlc3Qgc2ltcGxlCkBAIC0yNTUsMTkgKzI1NSwxOSBAQCBDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlz IG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3Qg bWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlw dGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgdCAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoYmluYXJ5ID0gZmFsc2UpOwogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwog XGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAg Q29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTI3 OSwyNyArMjc5LDI3IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5F Q1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2Ny aXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRp YXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9u IHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0 aW9uLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IGYgICAgICB8IG9uICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAg ICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rl c3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChzdHJlYW1pbmcgPSBwYXJhbGxlbCk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAor LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IGZhbHNlKTsKIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJl Z3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAg fCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAg ICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8g ICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAog KDEgcm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gYWxyZWFkeSBleGlzdHMKQEAgLTMxNCwx MCArMzE0LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJ Q0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyCiBBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIEFERCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAo cmVmcmVzaCA9IGZhbHNlKTsKIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIxIiBpcyBhbHJl YWR5IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogXGRScysKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAg ICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiAtLSBm YWlsIC0gcHVibGljYXRpb24gdXNlZCBtb3JlIHRoYW4gb25jZQpAQCAtMzMyLDEwICszMzIsMTAg QEAgRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjMiIGlzIG5vdCBpbiBzdWJzY3JpcHRpb24g InJlZ3Jlc3NfdGVzdHN1YiIKIC0tIG9rIC0gZGVsZXRlIHB1YmxpY2F0aW9ucwogQUxURVIgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0 cHViMiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJs aWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIERST1AgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTM3MSwxMCArMzcxLDEwIEBAIENSRUFURSBTVUJT Q1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMg bm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBt YW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0 aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z Ci0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBE aXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3du ZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg U2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IHAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lw IExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAg ICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0tZmFp bCAtIGFsdGVyIG9mIHR3b19waGFzZSBvcHRpb24gbm90IHN1cHBvcnRlZC4KQEAgLTM4MywxMCAr MzgzLDEwIEBAIEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6ICJ0 d29fcGhhc2UiCiAtLSBidXQgY2FuIGFsdGVyIHN0cmVhbWluZyB3aGVuIHR3b19waGFzZSBlbmFi bGVkCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0g dHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtMzk2LDEwICszOTYsMTAgQEAgQ1JFQVRFIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBp cyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0 IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3Jp cHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwg cCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAg ICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAg ICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpA QCAtNDEyLDE4ICs0MTIsMzEgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg Q09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBz dWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8g aW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGlj YXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJz Y3JpcHRpb24uCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVz dHN1YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorKDEgcm93KQorCitBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitE Uk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CistLSB0ZXN0IGZhaWxvdmVyIG9wdGlv bgorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3Qg PSBmYWxzZSwgZmFpbG92ZXIgPSB0cnVlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNy ZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRp b24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxl IHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCitcZFJzKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCB0ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190 ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0 aW9uLnNxbAppbmRleCA0NDRlNTYzZmYzLi5lNDYwMTE1OGIzIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3N1YnNjcmlwdGlvbi5zcWwKQEAgLTI5MCw2ICsyOTAsMTQgQEAgQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlKTsKIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKIAorLS0gdGVzdCBmYWlsb3ZlciBvcHRpb24K K0NSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0g ZmFsc2UsIGZhaWxvdmVyID0gdHJ1ZSk7CisKK1xkUnMrCisKK0FMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YjsKKwogLS0gbGV0J3MgZG8gc29tZSB0ZXN0cyB3aXRoIHBnX2NyZWF0 ZV9zdWJzY3JpcHRpb24gcmF0aGVyIHRoYW4gc3VwZXJ1c2VyCiBTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOwogCmRpZmYgLS1naXQgYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CmluZGV4IDdlODY2ZTNjM2QuLjUxM2M3NzAyZmYgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0CkBAIC04NSw2ICs4NSw3IEBAIEFsdGVyT3duZXJTdG10CiBBbHRlclBvbGljeVN0bXQKIEFs dGVyUHVibGljYXRpb25BY3Rpb24KIEFsdGVyUHVibGljYXRpb25TdG10CitBbHRlclJlcGxpY2F0 aW9uU2xvdENtZAogQWx0ZXJSb2xlU2V0U3RtdAogQWx0ZXJSb2xlU3RtdAogQWx0ZXJTZXFTdG10 CkBAIC0zODgwLDYgKzM4ODEsNyBAQCB2YXJhdHRyaWJfMWJfZQogdmFyYXR0cmliXzRiCiB2Yml0 cwogdmVyaWZpZXJfY29udGV4dAord2FscmN2X2FsdGVyX3Nsb3RfZm4KIHdhbHJjdl9jaGVja19j b25uaW5mb19mbgogd2FscmN2X2Nvbm5lY3RfZm4KIHdhbHJjdl9jcmVhdGVfc2xvdF9mbgotLSAK Mi4zNC4xCgo= --000000000000fde609060f87276b Content-Type: application/octet-stream; name="v65-0002-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Disposition: attachment; filename="v65-0002-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lroufv781 RnJvbSAyZDhlYWM0ZWY4MmViMzU5MmJmYTFlNWFmNjAyM2EwNjMxOTBkNDViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjIgSmFuIDIwMjQgMDg6NTc6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NSAyLzZdIEFkZCBsb2dpY2FsIHNsb3Qgc3luYyBjYXBhYmlsaXR5IHRvIHRoZSBwaHlzaWNhbAog c3RhbmRieQoKVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHN5bmNocm9uaXphdGlvbiBvZiBsb2dpY2Fs IHJlcGxpY2F0aW9uIHNsb3RzCmZyb20gdGhlIHByaW1hcnkgc2VydmVyIHRvIHRoZSBwaHlzaWNh bCBzdGFuZGJ5IHNvIHRoYXQgbG9naWNhbApyZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBhZnRl ciBmYWlsb3Zlci4KCkdVQyAnZW5hYmxlX3N5bmNzbG90JyBlbmFibGVzIGEgcGh5c2ljYWwgc3Rh bmRieSB0byBzeW5jaHJvbml6ZSBmYWlsb3Zlcgpsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGZy b20gdGhlIHByaW1hcnkgc2VydmVyLgoKVGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgb24g dGhlIHByaW1hcnkgY2FuIGJlIHN5bmNocm9uaXplZCB0byB0aGUgaG90CnN0YW5kYnkgYnkgZW5h YmxpbmcgdGhlIGZhaWxvdmVyIG9wdGlvbiBkdXJpbmcgc2xvdCBjcmVhdGlvbiBhbmQgc2V0dGlu ZwonZW5hYmxlX3N5bmNzbG90JyBvbiB0aGUgc3RhbmRieS4gRm9yIHRoZSBzeW5jaHJvbml6YXRp b24gdG8gd29yaywgaXQgaXMKbWFuZGF0b3J5IHRvIGhhdmUgYSBwaHlzaWNhbCByZXBsaWNhdGlv biBzbG90IGJldHdlZW4gdGhlIHByaW1hcnkgYW5kIHRoZQpzdGFuZGJ5LCBhbmQgaG90X3N0YW5k YnlfZmVlZGJhY2sgbXVzdCBiZSBlbmFibGVkIG9uIHRoZSBzdGFuZGJ5LgoKQWxsIHRoZSBmYWls b3ZlciBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIG9uIHRoZSBwcmltYXJ5IChhc3N1bWluZwpj b25maWd1cmF0aW9ucyBhcmUgYXBwcm9wcmlhdGUpIGFyZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQg b24gdGhlIHBoeXNpY2FsCnN0YW5kYnlzIGFuZCBhcmUgc3luY2VkIHBlcmlvZGljYWxseS4gU2xv dC1zeW5jIHdvcmtlciBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIKcGluZyB0aGUgcHJpbWFyeSBzZXJ2 ZXIgYXQgcmVndWxhciBpbnRlcnZhbHMgdG8gZ2V0IHRoZSBuZWNlc3NhcnkKZmFpbG92ZXIgbG9n aWNhbCBzbG90cyBpbmZvcm1hdGlvbiBhbmQgY3JlYXRlL3VwZGF0ZSB0aGUgc2xvdHMgbG9jYWxs eS4KClRoZSBuYXAgdGltZSBvZiB0aGUgd29ya2VyIGlzIHR1bmVkIGFjY29yZGluZyB0byB0aGUg YWN0aXZpdHkgb24gdGhlIHByaW1hcnkuClRoZSB3b3JrZXIgd2FpdHMgZm9yIGEgcGVyaW9kIG9m IHRpbWUgYmVmb3JlIHRoZSBuZXh0IHN5bmNocm9uaXphdGlvbiwgd2l0aCB0aGUKZHVyYXRpb24g dmFyeWluZyBiYXNlZCBvbiB3aGV0aGVyIGFueSBzbG90cyB3ZXJlIHVwZGF0ZWQgZHVyaW5nIHRo ZSBsYXN0CmN5Y2xlLgoKVGhlIGxvZ2ljYWwgc2xvdHMgY3JlYXRlZCBieSBzbG90LXN5bmMgd29y a2VyIG9uIHBoeXNpY2FsIHN0YW5kYnlzIGFyZSBub3QKYWxsb3dlZCB0byBiZSBkcm9wcGVkIG9y IGNvbnN1bWVkLiBBbnkgYXR0ZW1wdCB0byBwZXJmb3JtIGxvZ2ljYWwgZGVjb2Rpbmcgb24Kc3Vj aCBzbG90cyB3aWxsIHJlc3VsdCBpbiBhbiBlcnJvci4KCklmIGEgbG9naWNhbCBzbG90IGlzIGlu dmFsaWRhdGVkIG9uIHRoZSBwcmltYXJ5LCB0aGVuIHRoYXQgc2xvdCBvbiB0aGUgc3RhbmRieQpp cyBhbHNvIGludmFsaWRhdGVkLgoKSWYgYSBsb2dpY2FsIHNsb3Qgb24gdGhlIHByaW1hcnkgaXMg dmFsaWQgYnV0IGlzIGludmFsaWRhdGVkIG9uIHRoZSBzdGFuZGJ5LAp0aGVuIHRoYXQgc2xvdCBp cyBkcm9wcGVkIGFuZCByZWNyZWF0ZWQgb24gdGhlIHN0YW5kYnkgaW4gbmV4dCBzeW5jLWN5Y2xl CnByb3ZpZGVkIHRoZSBzbG90IHN0aWxsIGV4aXN0cyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIuIEl0 IGlzIG9rYXkgdG8gcmVjcmVhdGUKc3VjaCBzbG90cyBhcyBsb25nIGFzIHRoZXNlIGFyZSBub3Qg Y29uc3VtYWJsZSBvbiB0aGUgc3RhbmRieSAod2hpY2ggaXMgdGhlCmNhc2UgY3VycmVudGx5KS4g VGhpcyBzaXR1YXRpb24gbWF5IG9jY3VyIGR1ZSB0byB0aGUgZm9sbG93aW5nIHJlYXNvbnM6Ci0g VGhlIG1heF9zbG90X3dhbF9rZWVwX3NpemUgb24gdGhlIHN0YW5kYnkgaXMgaW5zdWZmaWNpZW50 IHRvIHJldGFpbiBXQUwKICByZWNvcmRzIGZyb20gdGhlIHJlc3RhcnRfbHNuIG9mIHRoZSBzbG90 LgotIHByaW1hcnlfc2xvdF9uYW1lIGlzIHRlbXBvcmFyaWx5IHJlc2V0IHRvIG51bGwgYW5kIHRo ZSBwaHlzaWNhbCBzbG90IGlzCiAgcmVtb3ZlZC4KLSBUaGUgcHJpbWFyeSBjaGFuZ2VzIHdhbF9s ZXZlbCB0byBhIGxldmVsIGxvd2VyIHRoYW4gbG9naWNhbC4KClRoZSBzbG90cyBzeW5jaHJvbml6 YXRpb24gc3RhdHVzIG9uIHRoZSBzdGFuZGJ5IGNhbiBiZSBtb25pdG9yZWQgdXNpbmcKJ3N5bmNl ZCcgY29sdW1uIG9mIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIHZpZXcuCi0tLQogZG9jL3NyYy9zZ21s L2Jnd29ya2VyLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA2NSArLQogZG9jL3NyYy9zZ21s L2NvbmZpZy5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArLQogZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sICAgICAgICAgICAgIHwgICAzNyArCiBkb2Mvc3JjL3NnbWwv c3lzdGVtLXZpZXdzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8ICAgIDUgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jICAgICB8ICAgMTUgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICAgMyArLQogc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9iZ3dvcmtlci5jICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvYmFja2VuZC9wb3N0 bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAgIDEwICsKIC4uLi9saWJwcXdhbHJlY2Vp dmVyL2xpYnBxd2FscmVjZWl2ZXIuYyAgICAgICB8ICAgNDEgKwogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9NYWtlZmlsZSAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyAgICAgfCAgIDEyICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9zbG90c3luYy5jICAgIHwgMTE3OSArKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgICAzMiArLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgICAgICAgICAgIHwgICAxNCArLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jICAgIHwgICAxNiArCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAgIDE5ICstCiBzcmMvYmFj a2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMgICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAgICB8ICAgMTEgKwogLi4uL3V0aWxz L2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0ICAgICAgIHwgICAgMSArCiBzcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5k L3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAgNiArLQogc3JjL2luY2x1ZGUv cG9zdG1hc3Rlci9iZ3dvcmtlci5oICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmggICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaCAgICAgICAgICAgICAgICB8ICAgMTcgKy0KIHNyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmggICAgICAgICB8ICAgMTAgKwogc3JjL2luY2x1ZGUvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmggICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAgIDEwICsKIC4uLi90LzA1MF9zdGFuZGJ5 X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgICAgICB8ICAxNjYgKystCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgICA1ICstCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3N5c3ZpZXdzLm91dCAgICAgICAgfCAgICAzICstCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICAyICsKIDM0IGZpbGVzIGNoYW5nZWQs IDE3MDQgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbApp bmRleCAyYzM5MzM4NWE5Li5hN2NmZTZjNThjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvYmd3 b3JrZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbApAQCAtMTE0LDE4ICsx MTQsNTkgQEAgdHlwZWRlZiBzdHJ1Y3QgQmFja2dyb3VuZFdvcmtlcgogCiAgIDxwYXJhPgogICAg PHN0cnVjdGZpZWxkPmJnd19zdGFydF90aW1lPC9zdHJ1Y3RmaWVsZD4gaXMgdGhlIHNlcnZlciBz dGF0ZSBkdXJpbmcgd2hpY2gKLSAgIDxjb21tYW5kPnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQg c3RhcnQgdGhlIHByb2Nlc3M7IGl0IGNhbiBiZSBvbmUgb2YKLSAgIDxsaXRlcmFsPkJnV29ya2Vy U3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFsPiAoc3RhcnQgYXMgc29vbiBhcwotICAgPGNv bW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IGl0c2VsZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0 aWFsaXphdGlvbjsgcHJvY2Vzc2VzCi0gICByZXF1ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJs ZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlvbnMpLAotICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9D b25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IChzdGFydCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBz dGF0ZQotICAgaGFzIGJlZW4gcmVhY2hlZCBpbiBhIGhvdCBzdGFuZGJ5LCBhbGxvd2luZyBwcm9j ZXNzZXMgdG8gY29ubmVjdCB0bwotICAgZGF0YWJhc2VzIGFuZCBydW4gcmVhZC1vbmx5IHF1ZXJp ZXMpLCBhbmQKLSAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0 ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5c3RlbSBoYXMKLSAgIGVudGVyZWQgbm9ybWFs IHJlYWQtd3JpdGUgc3RhdGUpLiAgTm90ZSB0aGUgbGFzdCB0d28gdmFsdWVzIGFyZSBlcXVpdmFs ZW50Ci0gICBpbiBhIHNlcnZlciB0aGF0J3Mgbm90IGEgaG90IHN0YW5kYnkuICBOb3RlIHRoYXQg dGhpcyBzZXR0aW5nIG9ubHkgaW5kaWNhdGVzCi0gICB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIHRv IGJlIHN0YXJ0ZWQ7IHRoZXkgZG8gbm90IHN0b3Agd2hlbiBhIGRpZmZlcmVudCBzdGF0ZQotICAg aXMgcmVhY2hlZC4KKyAgIDxjb21tYW5kPnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQgc3RhcnQg dGhlIHByb2Nlc3MuIE5vdGUgdGhhdCB0aGlzIHNldHRpbmcKKyAgIG9ubHkgaW5kaWNhdGVzIHdo ZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRlZDsgdGhleSBkbyBub3Qgc3RvcCB3aGVu CisgICBhIGRpZmZlcmVudCBzdGF0ZSBpcyByZWFjaGVkLiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgor CisgICA8dmFyaWFibGVsaXN0PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRl cmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFsPjwvdGVybT4KKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5CZ1dv cmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvcHJpbWFyeT48L2luZGV4dGVybT4KKyAgICAgICBT dGFydCBhcyBzb29uIGFzIHBvc3RncmVzIGl0c2VsZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0 aWFsaXphdGlvbjsKKyAgICAgICBwcm9jZXNzZXMgcmVxdWVzdGluZyB0aGlzIGFyZSBub3QgZWxp Z2libGUgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25zLgorICAgICAgPC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg PHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+PC90 ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8aW5kZXh0ZXJtPjxw cmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlPC9wcmltYXJ5PjwvaW5kZXh0ZXJt PgorICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25zaXN0ZW50IHN0YXRlIGhhcyBiZWVuIHJl YWNoZWQgaW4gYSBob3Qtc3RhbmRieSwKKyAgICAgICBhbGxvd2luZyBwcm9jZXNzZXMgdG8gY29u bmVjdCB0byBkYXRhYmFzZXMgYW5kIHJ1biByZWFkLW9ubHkgcXVlcmllcy4KKyAgICAgIDwvcGFy YT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRl X0hvdFN0YW5kYnk8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0 YXRlX0hvdFN0YW5kYnk8L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgICAgU2FtZSBtZWFuaW5n IGFzIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlPC9saXRlcmFsPiBidXQK KyAgICAgICBpdCBpcyBtb3JlIHN0cmljdCBpbiB0ZXJtcyBvZiB0aGUgc2VydmVyIGkuZS4gc3Rh cnQgdGhlIHdvcmtlciBvbmx5CisgICAgICAgaWYgaXQgaXMgaG90LXN0YW5kYnkuCisgICAgICA8 L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFy bGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292ZXJ5Rmlu aXNoZWQ8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwv cHJpbWFyeT48L2luZGV4dGVybT4KKyAgICAgICBTdGFydCBhcyBzb29uIGFzIHRoZSBzeXN0ZW0g aGFzIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3RhdGUuIE5vdGUKKyAgICAgICB0aGF0IHRo ZSA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD4gYW5kCisg ICAgICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+IGFy ZSBlcXVpdmFsZW50CisgICAgICAgaW4gYSBzZXJ2ZXIgdGhhdCdzIG5vdCBhIGhvdCBzdGFuZGJ5 LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8L3ZhcmlhYmxlbGlzdD4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4 IDYxMDM4NDcyYzUuLmJkMmQyZjg3MWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTQ2MTIsOCArNDYxMiwxMyBA QCBBTlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bV9zeW5jPC9yZXBsYWNlYWJs ZT4gKCA8cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAgICAgIDx2YXJuYW1lPnByaW1hcnlfY29u bmluZm88L3Zhcm5hbWU+IHN0cmluZywgb3IgaW4gYSBzZXBhcmF0ZQogICAgICAgICAgIDxmaWxl bmFtZT5+Ly5wZ3Bhc3M8L2ZpbGVuYW1lPiBmaWxlIG9uIHRoZSBzdGFuZGJ5IHNlcnZlciAodXNl CiAgICAgICAgICAgPGxpdGVyYWw+cmVwbGljYXRpb248L2xpdGVyYWw+IGFzIHRoZSBkYXRhYmFz ZSBuYW1lKS4KLSAgICAgICAgICBEbyBub3Qgc3BlY2lmeSBhIGRhdGFiYXNlIG5hbWUgaW4gdGhl Ci0gICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLgor ICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgSWYgc2xvdCBzeW5j aHJvbml6YXRpb24gaXMgZW5hYmxlZCAoc2VlCisgICAgICAgICAgPHhyZWYgbGlua2VuZD0iZ3Vj LWVuYWJsZS1zeW5jc2xvdCIvPikgdGhlbiBpdCBpcyBhbHNvCisgICAgICAgICAgbmVjZXNzYXJ5 IHRvIHNwZWNpZnkgPGxpdGVyYWw+ZGJuYW1lPC9saXRlcmFsPiBpbiB0aGUKKyAgICAgICAgICA8 dmFybmFtZT5wcmltYXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBzdHJpbmcuIFRoaXMgd2lsbCBvbmx5 IGJlIHVzZWQgZm9yCisgICAgICAgICAgc2xvdCBzeW5jaHJvbml6YXRpb24uIEl0IGlzIGlnbm9y ZWQgZm9yIHN0cmVhbWluZy4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgIDxwYXJhPgogICAg ICAgICAgIFRoaXMgcGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBpbiB0aGUgPGZpbGVuYW1lPnBv c3RncmVzcWwuY29uZjwvZmlsZW5hbWU+CkBAIC00OTM4LDYgKzQ5NDMsMjQgQEAgQU5ZIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1fc3luYzwvcmVwbGFjZWFibGU+ICggPHJlcGxh Y2VhYmxlIGNsYXNzPSIKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1lbmFibGUtc3luY3Nsb3QiIHhyZWZsYWJlbD0i ZW5hYmxlX3N5bmNzbG90Ij4KKyAgICAgIDx0ZXJtPjx2YXJuYW1lPmVuYWJsZV9zeW5jc2xvdDwv dmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5lbmFibGVfc3luY3Nsb3Q8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+ CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIEl0IGVuYWJsZXMgYSBw aHlzaWNhbCBzdGFuZGJ5IHRvIHN5bmNocm9uaXplIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMKKyAg ICAgICAgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIgc28gdGhhdCBsb2dpY2FsIHN1YnNjcmliZXJz IGFyZSBub3QgYmxvY2tlZAorICAgICAgICBhZnRlciBmYWlsb3Zlci4KKyAgICAgICA8L3BhcmE+ CisgICAgICAgPHBhcmE+CisgICAgICAgIEl0IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuIFRoaXMg cGFyYW1ldGVyIGNhbiBvbmx5IGJlIHNldCBpbiB0aGUKKyAgICAgICAgPGZpbGVuYW1lPnBvc3Rn cmVzcWwuY29uZjwvZmlsZW5hbWU+IGZpbGUgb3Igb24gdGhlIHNlcnZlciBjb21tYW5kIGxpbmUu CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+ CiAgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvc2VjdDI+CiAKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rp bmcuc2dtbAppbmRleCBjZDE1MmQ0Y2VkLi5lYzE0Y2Y3MzI1IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNv ZGluZy5zZ21sCkBAIC0zNTgsNiArMzU4LDQzIEBAIHBvc3RncmVzPSMgc2VsZWN0ICogZnJvbSBw Z19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ3JlZ3Jlc3Npb25fc2xvdCcsIE5VTEwsIE5VCiAg ICAgICBTbyBpZiBhIHNsb3QgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkIGl0IHNob3VsZCBiZSBkcm9w cGVkLgogICAgICA8L3BhcmE+CiAgICAgPC9jYXV0aW9uPgorCisgICA8L3NlY3QyPgorCisgICA8 c2VjdDIgaWQ9ImxvZ2ljYWxkZWNvZGluZy1yZXBsaWNhdGlvbi1zbG90cy1zeW5jaHJvbml6YXRp b24iPgorICAgIDx0aXRsZT5SZXBsaWNhdGlvbiBTbG90IFN5bmNocm9uaXphdGlvbjwvdGl0bGU+ CisgICAgPHBhcmE+CisgICAgIEEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBwcmlt YXJ5IGNhbiBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIGhvdAorICAgICBzdGFuZGJ5IGJ5IGVuYWJs aW5nIHRoZSA8bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD4gb3B0aW9uIGR1cmluZyBzbG90Cisg ICAgIGNyZWF0aW9uIGFuZCBzZXR0aW5nCisgICAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1lbmFibGUt c3luY3Nsb3QiPjx2YXJuYW1lPmVuYWJsZV9zeW5jc2xvdDwvdmFybmFtZT48L2xpbms+CisgICAg IG9uIHRoZSBzdGFuZGJ5LiBGb3IgdGhlIHN5bmNocm9uaXphdGlvbgorICAgICB0byB3b3JrLCBp dCBpcyBtYW5kYXRvcnkgdG8gaGF2ZSBhIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QgYmV0d2Vl biB0aGUKKyAgICAgcHJpbWFyeSBhbmQgdGhlIHN0YW5kYnksIGFuZAorICAgICA8bGluayBsaW5r ZW5kPSJndWMtaG90LXN0YW5kYnktZmVlZGJhY2siPjx2YXJuYW1lPmhvdF9zdGFuZGJ5X2ZlZWRi YWNrPC92YXJuYW1lPjwvbGluaz4KKyAgICAgbXVzdCBiZSBlbmFibGVkIG9uIHRoZSBzdGFuZGJ5 LgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUaGUgYWJpbGl0eSB0byByZXN1bWUg bG9naWNhbCByZXBsaWNhdGlvbiBhZnRlciBmYWlsb3ZlciBkZXBlbmRzIHVwb24gdGhlCisgICAg IDxsaW5rIGxpbmtlbmQ9InZpZXctcGctcmVwbGljYXRpb24tc2xvdHMiPnBnX3JlcGxpY2F0aW9u X3Nsb3RzPC9saW5rPi48c3RydWN0ZmllbGQ+c3luY2VkPC9zdHJ1Y3RmaWVsZD4KKyAgICAgdmFs dWUgZm9yIHRoZSBzeW5jaHJvbml6ZWQgc2xvdHMgb24gdGhlIHN0YW5kYnkgYXQgdGhlIHRpbWUg b2YgZmFpbG92ZXIuCisgICAgIE9ubHkgcGVyc2lzdGVudCBzbG90cyB0aGF0IGhhdmUgYXR0YWlu ZWQgc3luY2VkIHN0YXRlIGFzIHRydWUgb24gdGhlIHN0YW5kYnkKKyAgICAgYmVmb3JlIGZhaWxv dmVyIGNhbiBiZSB1c2VkIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGFmdGVyIGZhaWxvdmVyLgor ICAgICBUZW1wb3Jhcnkgc2xvdHMgd2lsbCBiZSBkcm9wcGVkLCB0aGVyZWZvcmUgbG9naWNhbCBy ZXBsaWNhdGlvbiBmb3IgdGhvc2UKKyAgICAgc2xvdHMgY2Fubm90IGJlIHJlc3VtZWQuIEZvciBl eGFtcGxlLCBpZiB0aGUgc3luY2hyb25pemVkIHNsb3QgY291bGQgbm90CisgICAgIGJlY29tZSBw ZXJzaXN0ZW50IG9uIHRoZSBzdGFuZGJ5IGR1ZSB0byBhIGRpc2FibGVkIHN1YnNjcmlwdGlvbiwg dGhlbiB0aGUKKyAgICAgc3Vic2NyaXB0aW9uIGNhbm5vdCBiZSByZXN1bWVkIGFmdGVyIGZhaWxv dmVyIGV2ZW4gd2hlbiBpdCBpcyBlbmFibGVkLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgor ICAgICBUbyByZXN1bWUgbG9naWNhbCByZXBsaWNhdGlvbiBhZnRlciBmYWlsb3ZlciBmcm9tIHRo ZSBzeW5jZWQgbG9naWNhbAorICAgICBzbG90cywgdGhlIHN1YnNjcmlwdGlvbidzICdjb25uaW5m bycgbXVzdCBiZSBhbHRlcmVkIHRvIHBvaW50IHRvIHRoZQorICAgICBuZXcgcHJpbWFyeSBzZXJ2 ZXIuIFRoaXMgaXMgZG9uZSB1c2luZworICAgICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJzdWJz Y3JpcHRpb24tcGFyYW1zLWNvbm5lY3Rpb24iPjxjb21tYW5kPkFMVEVSIFNVQlNDUklQVElPTiAu Li4gQ09OTkVDVElPTjwvY29tbWFuZD48L2xpbms+LgorICAgICBJdCBpcyByZWNvbW1lbmRlZCB0 aGF0IHN1YnNjcmlwdGlvbnMgYXJlIGZpcnN0IGRpc2FibGVkIGJlZm9yZSBwcm9tb3RpbmcKKyAg ICAgdGhlIHN0YW5kYnkgYW5kIGFyZSBlbmFibGVkIGJhY2sgYWZ0ZXIgYWx0ZXJpbmcgdGhlIGNv bm5lY3Rpb24gc3RyaW5nLgorICAgIDwvcGFyYT4KICAgIDwvc2VjdDI+CiAKICAgIDxzZWN0MiBp ZD0ibG9naWNhbGRlY29kaW5nLWV4cGxhbmF0aW9uLW91dHB1dC1wbHVnaW5zIj4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9zeXN0ZW0t dmlld3Muc2dtbAppbmRleCAxODY4Yjk1ODM2Li40ZjM2YTJmNzMyIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3 cy5zZ21sCkBAIC0yNTY2LDYgKzI1NjYsMjIgQEAgU0VMRUNUICogRlJPTSBwZ19sb2NrcyBwbCBM RUZUIEpPSU4gcGdfcHJlcGFyZWRfeGFjdHMgcHB4CiAgICAgICAgYWZ0ZXIgZmFpbG92ZXIuIEFs d2F5cyBmYWxzZSBmb3IgcGh5c2ljYWwgc2xvdHMuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnN5bmNlZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgIFRydWUgaWYgdGhpcyBpcyBhIGxvZ2ljYWwgc2xvdCB0aGF0 IHdhcyBzeW5jZWQgZnJvbSBhIHByaW1hcnkgc2VydmVyLgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgT24gYSBob3Qgc3RhbmRieSwgdGhlIHNsb3RzIHdpdGggdGhlIHN5bmNl ZCBjb2x1bW4gbWFya2VkIGFzIHRydWUgY2FuCisgICAgICAgbmVpdGhlciBiZSB1c2VkIGZvciBs b2dpY2FsIGRlY29kaW5nIG5vciBkcm9wcGVkIGJ5IHRoZSB1c2VyLiBUaGUgdmFsdWUKKyAgICAg ICBvZiB0aGlzIGNvbHVtbiBoYXMgbm8gbWVhbmluZyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXI7IHRo ZSBjb2x1bW4gdmFsdWUgb24KKyAgICAgICB0aGUgcHJpbWFyeSBpcyBkZWZhdWx0IGZhbHNlIGZv ciBhbGwgc2xvdHMgYnV0IG1heSAoaWYgbGVmdG92ZXIgZnJvbSBhCisgICAgICAgcHJvbW90ZWQg c3RhbmRieSkgYWxzbyBiZSB0cnVlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFu c2FtL3hsb2cuYwppbmRleCA0NzgzNzdjNGEyLi4yZDY2ZDBkODRiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0veGxvZy5jCkBAIC0zNTk2LDYgKzM1OTYsOSBAQCBYTG9nR2V0TGFzdFJlbW92ZWRTZWdu byh2b2lkKQogLyoKICAqIFJldHVybiB0aGUgb2xkZXN0IFdBTCBzZWdtZW50IG9uIHRoZSBnaXZl biBUTEkgdGhhdCBzdGlsbCBleGlzdHMgaW4KICAqIFhMT0dESVIsIG9yIDAgaWYgbm9uZS4KKyAq CisgKiBJZiB0aGUgZ2l2ZW4gVExJIGlzIDAsIHJldHVybiB0aGUgb2xkZXN0IFdBTCBzZWdtZW50 IGFtb25nIGFsbCB0aGUgY3VycmVudGx5CisgKiBleGlzdGluZyBXQUwgc2VnbWVudHMuCiAgKi8K IFhMb2dTZWdObwogWExvZ0dldE9sZGVzdFNlZ25vKFRpbWVMaW5lSUQgdGxpKQpAQCAtMzYxOSw3 ICszNjIyLDcgQEAgWExvZ0dldE9sZGVzdFNlZ25vKFRpbWVMaW5lSUQgdGxpKQogCQkJCQkJIHdh bF9zZWdtZW50X3NpemUpOwogCiAJCS8qIElnbm9yZSBhbnl0aGluZyB0aGF0J3Mgbm90IGZyb20g dGhlIFRMSSBvZiBpbnRlcmVzdC4gKi8KLQkJaWYgKHRsaSAhPSBmaWxlX3RsaSkKKwkJaWYgKHRs aSAhPSAwICYmIHRsaSAhPSBmaWxlX3RsaSkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIElmIGl0J3Mg dGhlIG9sZGVzdCBzbyBmYXIsIHVwZGF0ZSBvbGRlc3Rfc2Vnbm8uICovCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmluZGV4IDFiNDhkNzE3MWEuLmUzOGE5NTg3ZTIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC01MCw2ICs1 MCw3IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9zdGFydHVwLmgiCiAjaW5jbHVkZSAicmVwbGlj YXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgiCisjaW5j bHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9m ZC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5o IgpAQCAtMTQ0MSw2ICsxNDQyLDIwIEBAIEZpbmlzaFdhbFJlY292ZXJ5KHZvaWQpCiAJICovCiAJ WExvZ1NodXRkb3duV2FsUmN2KCk7CiAKKwkvKgorCSAqIFNodXRkb3duIHRoZSBzbG90IHN5bmMg d29ya2VycyB0byBwcmV2ZW50IHBvdGVudGlhbCBjb25mbGljdHMgYmV0d2VlbgorCSAqIHVzZXIg cHJvY2Vzc2VzIGFuZCBzbG90c3luYyB3b3JrZXJzIGFmdGVyIGEgcHJvbW90aW9uLgorCSAqCisJ ICogV2UgZG8gbm90IHVwZGF0ZSB0aGUgJ3N5bmNlZCcgY29sdW1uIGZyb20gdHJ1ZSB0byBmYWxz ZSBoZXJlLCBhcyBhbnkKKwkgKiBmYWlsZWQgdXBkYXRlIGNvdWxkIGxlYXZlICdzeW5jZWQnIGNv bHVtbiBmYWxzZSBmb3Igc29tZSBzbG90cy4gVGhpcworCSAqIGNvdWxkIGNhdXNlIGlzc3VlcyBk dXJpbmcgc2xvdCBzeW5jIGFmdGVyIHJlc3RhcnRpbmcgdGhlIHNlcnZlciBhcyBhCisJICogc3Rh bmRieS4gV2hpbGUgdXBkYXRpbmcgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBuZXcgdGltZWxpbmUg aXMgYW4KKwkgKiBvcHRpb24sIGl0IGRvZXMgbm90IHNpbXBsaWZ5IHRoZSBoYW5kbGluZyBmb3Ig J3N5bmNlZCcgY29sdW1uLgorCSAqIFRoZXJlZm9yZSwgd2UgcmV0YWluIHRoZSAnc3luY2VkJyBj b2x1bW4gYXMgdHJ1ZSBhZnRlciBwcm9tb3Rpb24gYXMgaXQKKwkgKiBtYXkgcHJvdmlkZSB1c2Vm dWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNsb3Qgb3JpZ2luLgorCSAqLworCVNodXREb3duU2xv dFN5bmMoKTsKKwogCS8qCiAJICogV2UgYXJlIG5vdyBkb25lIHJlYWRpbmcgdGhlIHhsb2cgZnJv bSBzdHJlYW0uIFR1cm4gb2ZmIHN0cmVhbWluZwogCSAqIHJlY292ZXJ5IHRvIGZvcmNlIGZldGNo aW5nIHRoZSBmaWxlcyAod2hpY2ggd291bGQgYmUgcmVxdWlyZWQgYXQgZW5kIG9mCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKaW5kZXggZTQzYTkzNzM5ZC4uYWQ1N2JhZGUwNyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbApAQCAtMTAyNCw3ICsxMDI0LDggQEAgQ1JF QVRFIFZJRVcgcGdfcmVwbGljYXRpb25fc2xvdHMgQVMKICAgICAgICAgICAgIEwuc2FmZV93YWxf c2l6ZSwKICAgICAgICAgICAgIEwudHdvX3BoYXNlLAogICAgICAgICAgICAgTC5jb25mbGljdF9y ZWFzb24sCi0gICAgICAgICAgICBMLmZhaWxvdmVyCisgICAgICAgICAgICBMLmZhaWxvdmVyLAor ICAgICAgICAgICAgTC5zeW5jZWQKICAgICBGUk9NIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygp IEFTIEwKICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFzZSBEIE9OIChMLmRhdG9pZCA9 IEQub2lkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5j IGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCmluZGV4IDY3ZjkyYzI0ZGIuLjQ2 ODI4YjhhODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYwor KysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKQEAgLTIxLDYgKzIxLDcgQEAK ICNpbmNsdWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlv bi9sb2dpY2FsbGF1bmNoZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2Vy LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAi c3RvcmFnZS9kc20uaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3Jh Z2UvbGF0Y2guaCIKQEAgLTEyOSw2ICsxMzAsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0CiAJewog CQkiQXBwbHlXb3JrZXJNYWluIiwgQXBwbHlXb3JrZXJNYWluCiAJfSwKKwl7CisJCSJSZXBsU2xv dFN5bmNXb3JrZXJNYWluIiwgUmVwbFNsb3RTeW5jV29ya2VyTWFpbgorCX0sCiAJewogCQkiUGFy YWxsZWxBcHBseVdvcmtlck1haW4iLCBQYXJhbGxlbEFwcGx5V29ya2VyTWFpbgogCX0sCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5k L3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGZlYjQ3MWRkMWQuLmQ5MGQ1ZDE1NzYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbmNs dWRlICJwb3N0bWFzdGVyL3dhbHN1bW1hcml6ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9s b2dpY2FsbGF1bmNoZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKKyNp bmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdl L2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL3BnX3No bWVtLmgiCkBAIC0xMDEwLDYgKzEwMTEsMTIgQEAgUG9zdG1hc3Rlck1haW4oaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKIAkgKi8KIAlBcHBseUxhdW5jaGVyUmVnaXN0ZXIoKTsKIAorCS8qCisJICog UmVnaXN0ZXIgdGhlIHNsb3Qgc3luYyB3b3JrZXIgaGVyZSB0byBraWNrIHN0YXJ0IHNsb3Qtc3lu YyBvcGVyYXRpb24KKwkgKiBzb29uZXIgb24gdGhlIHBoeXNpY2FsIHN0YW5kYnkuCisJICovCisJ U2xvdFN5bmNXb3JrZXJSZWdpc3RlcigpOworCiAJLyoKIAkgKiBwcm9jZXNzIGFueSBsaWJyYXJp ZXMgdGhhdCBzaG91bGQgYmUgcHJlbG9hZGVkIGF0IHBvc3RtYXN0ZXIgc3RhcnQKIAkgKi8KQEAg LTU3OTksNiArNTgwNiw5IEBAIGJnd29ya2VyX3Nob3VsZF9zdGFydF9ub3coQmdXb3JrZXJTdGFy dFRpbWUgc3RhcnRfdGltZSkKIAkJY2FzZSBQTV9IT1RfU1RBTkRCWToKIAkJCWlmIChzdGFydF90 aW1lID09IEJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlKQogCQkJCXJldHVybiB0cnVlOwor CQkJaWYgKHN0YXJ0X3RpbWUgPT0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3Rh bmRieSAmJgorCQkJCQkgcG1TdGF0ZSAhPSBQTV9SVU4pCisJCQkJcmV0dXJuIHRydWU7CiAJCQkv KiBmYWxsIHRocm91Z2ggKi8KIAogCQljYXNlIFBNX1JFQ09WRVJZOgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2 ZXIuYwppbmRleCBjNTIzMmNlZTJmLi45MzRjMWEzYWIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIu YwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAjaW5jbHVk ZSAidXRpbHMvcGdfbHNuLmgiCiAjaW5jbHVkZSAidXRpbHMvdHVwbGVzdG9yZS5oIgorI2luY2x1 ZGUgInV0aWxzL3ZhcmxlbmEuaCIKIAogUEdfTU9EVUxFX01BR0lDOwogCkBAIC01OCw2ICs1OSw3 IEBAIHN0YXRpYyB2b2lkIGxpYnBxcmN2X2dldF9zZW5kZXJpbmZvKFdhbFJlY2VpdmVyQ29ubiAq Y29ubiwKIAkJCQkJCQkJCWNoYXIgKipzZW5kZXJfaG9zdCwgaW50ICpzZW5kZXJfcG9ydCk7CiBz dGF0aWMgY2hhciAqbGlicHFyY3ZfaWRlbnRpZnlfc3lzdGVtKFdhbFJlY2VpdmVyQ29ubiAqY29u biwKIAkJCQkJCQkJCSAgVGltZUxpbmVJRCAqcHJpbWFyeV90bGkpOworc3RhdGljIGNoYXIgKmxp YnBxcmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbyhjb25zdCBjaGFyICpjb25uaW5mbyk7CiBz dGF0aWMgaW50CWxpYnBxcmN2X3NlcnZlcl92ZXJzaW9uKFdhbFJlY2VpdmVyQ29ubiAqY29ubik7 CiBzdGF0aWMgdm9pZCBsaWJwcXJjdl9yZWFkdGltZWxpbmVoaXN0b3J5ZmlsZShXYWxSZWNlaXZl ckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkJCSBUaW1lTGluZUlEIHRsaSwgY2hhciAqKmZpbGVuYW1l LApAQCAtMTAwLDYgKzEwMiw3IEBAIHN0YXRpYyBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUgUFFX YWxSZWNlaXZlckZ1bmN0aW9ucyA9IHsKIAkud2FscmN2X3NlbmQgPSBsaWJwcXJjdl9zZW5kLAog CS53YWxyY3ZfY3JlYXRlX3Nsb3QgPSBsaWJwcXJjdl9jcmVhdGVfc2xvdCwKIAkud2FscmN2X2Fs dGVyX3Nsb3QgPSBsaWJwcXJjdl9hbHRlcl9zbG90LAorCS53YWxyY3ZfZ2V0X2RibmFtZV9mcm9t X2Nvbm5pbmZvID0gbGlicHFyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvLAogCS53YWxyY3Zf Z2V0X2JhY2tlbmRfcGlkID0gbGlicHFyY3ZfZ2V0X2JhY2tlbmRfcGlkLAogCS53YWxyY3ZfZXhl YyA9IGxpYnBxcmN2X2V4ZWMsCiAJLndhbHJjdl9kaXNjb25uZWN0ID0gbGlicHFyY3ZfZGlzY29u bmVjdApAQCAtNDMyLDYgKzQzNSw0NCBAQCBsaWJwcXJjdl9zZXJ2ZXJfdmVyc2lvbihXYWxSZWNl aXZlckNvbm4gKmNvbm4pCiAJcmV0dXJuIFBRc2VydmVyVmVyc2lvbihjb25uLT5zdHJlYW1Db25u KTsKIH0KIAorLyoKKyAqIEdldCBkYXRhYmFzZSBuYW1lIGZyb20gdGhlIHByaW1hcnkgc2VydmVy J3MgY29ubmluZm8uCisgKgorICogSWYgZGJuYW1lIGlzIG5vdCBmb3VuZCBpbiBjb25uSW5mbywg cmV0dXJuIE5VTEwgdmFsdWUuCisgKi8KK3N0YXRpYyBjaGFyICoKK2xpYnBxcmN2X2dldF9kYm5h bWVfZnJvbV9jb25uaW5mbyhjb25zdCBjaGFyICpjb25uSW5mbykKK3sKKwlQUWNvbm5pbmZvT3B0 aW9uICpvcHRzOworCWNoYXIJICAgKmRibmFtZSA9IE5VTEw7CisJY2hhcgkgICAqZXJyID0gTlVM TDsKKworCW9wdHMgPSBQUWNvbm5pbmZvUGFyc2UoY29ubkluZm8sICZlcnIpOworCWlmIChvcHRz ID09IE5VTEwpCisJeworCQkvKiBUaGUgZXJyb3Igc3RyaW5nIGlzIG1hbGxvYydkLCBzbyB3ZSBt dXN0IGZyZWUgaXQgZXhwbGljaXRseSAqLworCQljaGFyCSAgICplcnJjb3B5ID0gZXJyID8gcHN0 cmR1cChlcnIpIDogIm91dCBvZiBtZW1vcnkiOworCisJCVBRZnJlZW1lbShlcnIpOworCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJy bXNnKCJpbnZhbGlkIGNvbm5lY3Rpb24gc3RyaW5nIHN5bnRheDogJXMiLCBlcnJjb3B5KSkpOwor CX0KKworCWZvciAoUFFjb25uaW5mb09wdGlvbiAqb3B0ID0gb3B0czsgb3B0LT5rZXl3b3JkICE9 IE5VTEw7ICsrb3B0KQorCXsKKwkJLyoKKwkJICogSWYgbXVsdGlwbGUgZGJuYW1lcyBhcmUgc3Bl Y2lmaWVkLCB0aGVuIHRoZSBsYXN0IG9uZSB3aWxsIGJlCisJCSAqIHJldHVybmVkCisJCSAqLwor CQlpZiAoc3RyY21wKG9wdC0+a2V5d29yZCwgImRibmFtZSIpID09IDAgJiYgb3B0LT52YWwgJiYK KwkJCW9wdC0+dmFsWzBdICE9ICdcMCcpCisJCQlkYm5hbWUgPSBwc3RyZHVwKG9wdC0+dmFsKTsK Kwl9CisKKwlyZXR1cm4gZGJuYW1lOworfQorCiAvKgogICogU3RhcnQgc3RyZWFtaW5nIFdBTCBk YXRhIGZyb20gZ2l2ZW4gc3RyZWFtaW5nIG9wdGlvbnMuCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvTWFrZWZpbGUKaW5kZXggMmRjMjVlMzdiYi4uYmEwM2VlZmYxYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZQorKysgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCkBAIC0yNSw2ICsyNSw3IEBAIE9C SlMgPSBcCiAJcHJvdG8ubyBcCiAJcmVsYXRpb24ubyBcCiAJcmVvcmRlcmJ1ZmZlci5vIFwKKwlz bG90c3luYy5vIFwKIAlzbmFwYnVpbGQubyBcCiAJdGFibGVzeW5jLm8gXAogCXdvcmtlci5vCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCmluZGV4IGNhMDljNjgzZjEu LjVhZWZiMTBlY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv bG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5j CkBAIC01MjQsNiArNTI0LDE4IEBAIENyZWF0ZURlY29kaW5nQ29udGV4dChYTG9nUmVjUHRyIHN0 YXJ0X2xzbiwKIAkJCQkgZXJybXNnKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiB3YXMgbm90IGNy ZWF0ZWQgaW4gdGhpcyBkYXRhYmFzZSIsCiAJCQkJCQlOYW1lU3RyKHNsb3QtPmRhdGEubmFtZSkp KSk7CiAKKwkvKgorCSAqIERvIG5vdCBhbGxvdyBjb25zdW1wdGlvbiBvZiBhICJzeW5jaHJvbml6 ZWQiIHNsb3QgdW50aWwgdGhlIHN0YW5kYnkKKwkgKiBnZXRzIHByb21vdGVkLgorCSAqLworCWlm IChSZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJiBzbG90LT5kYXRhLnN5bmNlZCkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RB VEUpLAorCQkJCWVycm1zZygiY2Fubm90IHVzZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBmb3Ig bG9naWNhbCIKKwkJCQkJICAgIiBkZWNvZGluZyIsIE5hbWVTdHIoc2xvdC0+ZGF0YS5uYW1lKSks CisJCQkJZXJyZGV0YWlsKCJUaGlzIHNsb3QgaXMgYmVpbmcgc3luY2VkIGZyb20gdGhlIHByaW1h cnkgc2VydmVyLiIpLAorCQkJCWVycmhpbnQoIlNwZWNpZnkgYW5vdGhlciByZXBsaWNhdGlvbiBz bG90LiIpKTsKKwogCS8qCiAJICogQ2hlY2sgaWYgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCBk dWUgdG8gbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZS4gQXZvaWQKIAkgKiAiY2Fubm90IGdldCBjaGFu Z2VzIiB3b3JkaW5nIGluIHRoaXMgZXJybXNnIGJlY2F1c2UgdGhhdCdkIGJlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9tZXNvbi5idWlsZAppbmRleCAxMDUwZWIyYzA5Li4zZGVj MzZhNmRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21lc29u LmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQK QEAgLTExLDYgKzExLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncHJvdG8uYycs CiAgICdyZWxhdGlvbi5jJywKICAgJ3Jlb3JkZXJidWZmZXIuYycsCisgICdzbG90c3luYy5jJywK ICAgJ3NuYXBidWlsZC5jJywKICAgJ3RhYmxlc3luYy5jJywKICAgJ3dvcmtlci5jJywKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi41NWUwOGE2MTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCkBAIC0wLDAgKzEsMTE3OSBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKiBzbG90c3luYy5jCisgKgkgICBQb3N0Z3JlU1FMIHdvcmtl ciBmb3Igc3luY2hyb25pemluZyBzbG90cyB0byBhIHN0YW5kYnkgc2VydmVyIGZyb20gdGhlCisg KiAgICAgICAgIHByaW1hcnkgc2VydmVyLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAyNCwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBJREVOVElGSUNBVElPTgor ICoJICBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKKyAqCisgKiBU aGlzIGZpbGUgY29udGFpbnMgdGhlIGNvZGUgZm9yIHNsb3Qgc3luYyB3b3JrZXIgb24gYSBwaHlz aWNhbCBzdGFuZGJ5CisgKiB0byBmZXRjaCBsb2dpY2FsIGZhaWxvdmVyIHNsb3RzIGluZm9ybWF0 aW9uIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLAorICogY3JlYXRlIHRoZSBzbG90cyBvbiB0aGUg c3RhbmRieSBhbmQgc3luY2hyb25pemUgdGhlbSBwZXJpb2RpY2FsbHkuCisgKgorICogV2hpbGUg Y3JlYXRpbmcgdGhlIHNsb3Qgb24gcGh5c2ljYWwgc3RhbmRieSwgaWYgdGhlIGxvY2FsIHJlc3Rh cnRfbHNuIGFuZC9vcgorICogbG9jYWwgY2F0YWxvZ194bWluIGlzIGFoZWFkIG9mIHRob3NlIG9u IHRoZSByZW1vdGUgdGhlbiB0aGUgd29ya2VyIGNhbm5vdAorICogY3JlYXRlIHRoZSBsb2NhbCBz bG90IGluIHN5bmMgd2l0aCB0aGUgcHJpbWFyeSBzZXJ2ZXIgYmVjYXVzZSB0aGF0IHdvdWxkCisg KiBtZWFuIG1vdmluZyB0aGUgbG9jYWwgc2xvdCBiYWNrd2FyZHMgYW5kIHRoZSBzdGFuZGJ5IG1p Z2h0IG5vdCBoYXZlIFdBTHMKKyAqIHJldGFpbmVkIGZvciBvbGQgTFNOLiBJbiB0aGlzIGNhc2Us IHRoZSB3b3JrZXIgd2lsbCBtYXJrIHRoZSBzbG90IGFzCisgKiBSU19URU1QT1JBUlkuIE9uY2Ug dGhlIHByaW1hcnkgc2VydmVyIGNhdGNoZXMgdXAsIHRoZSB3b3JrZXIgd2lsbCBtYXJrIHRoZQor ICogc2xvdCBhcyBSU19QRVJTSVNURU5UICh3aGljaCBtZWFucyBzeW5jLXJlYWR5KSBhbmQgd2ls bCBwZXJmb3JtIHRoZSBzeW5jCisgKiBwZXJpb2RpY2FsbHkuCisgKgorICogVGhlIHdvcmtlciBh bHNvIHRha2VzIGNhcmUgb2YgZHJvcHBpbmcgdGhlIHNsb3RzIHdoaWNoIHdlcmUgY3JlYXRlZCBi eSBpdAorICogYW5kIGFyZSBjdXJyZW50bHkgbm90IG5lZWRlZCB0byBiZSBzeW5jaHJvbml6ZWQu CisgKgorICogSXQgd2FpdHMgZm9yIGEgcGVyaW9kIG9mIHRpbWUgYmVmb3JlIHRoZSBuZXh0IHN5 bmNocm9uaXphdGlvbiwgd2l0aCB0aGUKKyAqIGR1cmF0aW9uIHZhcnlpbmcgYmFzZWQgb24gd2hl dGhlciBhbnkgc2xvdHMgd2VyZSB1cGRhdGVkIGR1cmluZyB0aGUgbGFzdAorICogY3ljbGUuIFJl ZmVyIHRvIHRoZSBjb21tZW50cyBhYm92ZSB3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KCkgZm9yIG1v cmUgZGV0YWlscy4KKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3Rn cmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFi bGUuaCIKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRlcm5hbC5oIgorI2luY2x1ZGUgImFjY2Vz cy94bG9ncmVjb3ZlcnkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgorI2luY2x1ZGUgInBnc3RhdC5oIgorI2luY2x1 ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL2ludGVycnVw dC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWwuaCIKKyNpbmNsdWRlICJyZXBsaWNh dGlvbi9sb2dpY2FsbGF1bmNoZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29y a2VyLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJy ZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgor I2luY2x1ZGUgInN0b3JhZ2UvcHJvY2FycmF5LmgiCisjaW5jbHVkZSAidGNvcC90Y29wcHJvdC5o IgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMu aCIKKyNpbmNsdWRlICJ1dGlscy9ndWNfaG9va3MuaCIKKyNpbmNsdWRlICJ1dGlscy9wZ19sc24u aCIKKyNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCisKKy8qCisgKiBTdHJ1Y3R1cmUgdG8gaG9s ZCBpbmZvcm1hdGlvbiBmZXRjaGVkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyIGFib3V0IGEgbG9n aWNhbAorICogcmVwbGljYXRpb24gc2xvdC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUmVtb3RlU2xv dAoreworCWNoYXIJICAgKm5hbWU7CisJY2hhcgkgICAqcGx1Z2luOworCWNoYXIJICAgKmRhdGFi YXNlOworCWJvb2wJCXR3b19waGFzZTsKKwlib29sCQlmYWlsb3ZlcjsKKwlYTG9nUmVjUHRyCXJl c3RhcnRfbHNuOworCVhMb2dSZWNQdHIJY29uZmlybWVkX2xzbjsKKwlUcmFuc2FjdGlvbklkIGNh dGFsb2dfeG1pbjsKKworCS8qIFJTX0lOVkFMX05PTkUgaWYgdmFsaWQsIG9yIHRoZSByZWFzb24g b2YgaW52YWxpZGF0aW9uICovCisJUmVwbGljYXRpb25TbG90SW52YWxpZGF0aW9uQ2F1c2UgaW52 YWxpZGF0ZWQ7Cit9IFJlbW90ZVNsb3Q7CisKKy8qCisgKiBTdHJ1Y3QgZm9yIHNoYXJpbmcgaW5m b3JtYXRpb24gYmV0d2VlbiBzdGFydHVwIHByb2Nlc3MgYW5kIHNsb3QKKyAqIHN5bmMgd29ya2Vy LgorICoKKyAqIFNsb3Qgc3luYyB3b3JrZXIncyBwaWQgaXMgbmVlZGVkIGJ5IHRoZSBzdGFydHVw IHByb2Nlc3MgaW4gb3JkZXIgdG8KKyAqIHNodXQgaXQgZG93biBkdXJpbmcgcHJvbW90aW9uLiBT dGFydHVwIHByb2Nlc3Mgc2h1dHMgZG93biB0aGUgc2xvdAorICogc3luYyB3b3JrZXIgYW5kIGFs c28gc2V0cyBzdG9wU2lnbmFsZWQ9dHJ1ZSB0byBoYW5kbGUgdGhlIHJhY2UgY29uZGl0aW9uCisg KiB3aGVuIHBvc3RtYXN0ZXIgaGFzIG5vdCBub3RpY2VkIHRoZSBwcm9tb3Rpb24geWV0IGFuZCB0 aHVzIG1heSBlbmQgdXAKKyAqIHJlc3RhcnRpbmcgc2xvdCBzeW5jIHdvcmtlci4gSWYgc3RvcFNp Z25hbGVkIGlzIHNldCwgdGhlIHdvcmtlciB3aWxsCisgKiBleGl0IGluIHN1Y2ggYSBjYXNlLgor ICovCit0eXBlZGVmIHN0cnVjdCBTbG90U3luY1dvcmtlckN0eFN0cnVjdAoreworCXBpZF90CQlw aWQ7CisJYm9vbAkJc3RvcFNpZ25hbGVkOworCXNsb2NrX3QJCW11dGV4OworfSBTbG90U3luY1dv cmtlckN0eFN0cnVjdDsKKworU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QgKlNsb3RTeW5jV29ya2Vy ID0gTlVMTDsKKworLyogR1VDIHZhcmlhYmxlICovCitib29sCQllbmFibGVfc3luY3Nsb3QgPSBm YWxzZTsKKworLyogTWluIGFuZCBNYXggc2xlZXAgdGltZSBmb3Igc2xvdCBzeW5jIHdvcmtlciAq LworI2RlZmluZSBNSU5fV09SS0VSX05BUFRJTUVfTVMgIDIwMAorI2RlZmluZSBNQVhfV09SS0VS X05BUFRJTUVfTVMgIDMwMDAwCS8qIDMwcyAqLworCisvKgorICogU2xlZXAgdGltZSBpbiBtcyBi ZXR3ZWVuIHNsb3Qtc3luYyBjeWNsZXMuCisgKiBTZWUgd2FpdF9mb3Jfc2xvdF9hY3Rpdml0eSgp IGZvciBob3cgd2UgYWRqdXN0IHRoaXMKKyAqLworc3RhdGljIGxvbmcgc2xlZXBfbXMgPSBNSU5f V09SS0VSX05BUFRJTUVfTVM7CisKK3N0YXRpYyB2b2lkIFByb2Nlc3NTbG90U3luY0ludGVycnVw dHMoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4pOworCisvKgorICogSWYgbmVjZXNzYXJ5LCB1cGRh dGUgbG9jYWwgc2xvdCBtZXRhZGF0YSBiYXNlZCBvbiB0aGUgZGF0YSBmcm9tIHRoZSByZW1vdGUK KyAqIHNsb3QuCisgKgorICogSWYgbm8gdXBkYXRlIHdhcyBuZWVkZWQgKHRoZSBkYXRhIG9mIHRo ZSByZW1vdGUgc2xvdCBpcyB0aGUgc2FtZSBhcyB0aGUKKyAqIGxvY2FsIHNsb3QpIHJldHVybiBm YWxzZSwgb3RoZXJ3aXNlIHRydWUuCisgKi8KK3N0YXRpYyBib29sCitsb2NhbF9zbG90X3VwZGF0 ZShSZW1vdGVTbG90ICpyZW1vdGVfc2xvdCkKK3sKKwlPaWQJCQlyZW1vdGVfZGJpZDsKKwlSZXBs aWNhdGlvblNsb3QgKnNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKKworCUFzc2VydChzbG90LT5k YXRhLmludmFsaWRhdGVkID09IFJTX0lOVkFMX05PTkUpOworCisJcmVtb3RlX2RiaWQgPSBnZXRf ZGF0YWJhc2Vfb2lkKHJlbW90ZV9zbG90LT5kYXRhYmFzZSwgZmFsc2UpOworCisJaWYgKHN0cmNt cChyZW1vdGVfc2xvdC0+cGx1Z2luLCBOYW1lU3RyKHNsb3QtPmRhdGEucGx1Z2luKSkgPT0gMCAm JgorCQlyZW1vdGVfZGJpZCA9PSBzbG90LT5kYXRhLmRhdGFiYXNlICYmCisJCXJlbW90ZV9zbG90 LT5yZXN0YXJ0X2xzbiA9PSBzbG90LT5kYXRhLnJlc3RhcnRfbHNuICYmCisJCXJlbW90ZV9zbG90 LT5jYXRhbG9nX3htaW4gPT0gc2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4gJiYKKwkJcmVtb3RlX3Ns b3QtPnR3b19waGFzZSA9PSBzbG90LT5kYXRhLnR3b19waGFzZSAmJgorCQlyZW1vdGVfc2xvdC0+ ZmFpbG92ZXIgPT0gc2xvdC0+ZGF0YS5mYWlsb3ZlciAmJgorCQlyZW1vdGVfc2xvdC0+Y29uZmly bWVkX2xzbiA9PSBzbG90LT5kYXRhLmNvbmZpcm1lZF9mbHVzaCkKKwkJcmV0dXJuIGZhbHNlOwor CisJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJbmFtZXN0cmNweSgmc2xvdC0+ZGF0 YS5wbHVnaW4sIHJlbW90ZV9zbG90LT5wbHVnaW4pOworCXNsb3QtPmRhdGEuZGF0YWJhc2UgPSBy ZW1vdGVfZGJpZDsKKwlzbG90LT5kYXRhLnR3b19waGFzZSA9IHJlbW90ZV9zbG90LT50d29fcGhh c2U7CisJc2xvdC0+ZGF0YS5mYWlsb3ZlciA9IHJlbW90ZV9zbG90LT5mYWlsb3ZlcjsKKwlzbG90 LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuOworCXNsb3QtPmRh dGEuY29uZmlybWVkX2ZsdXNoID0gcmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9sc247CisJc2xvdC0+ ZGF0YS5jYXRhbG9nX3htaW4gPSByZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWluOworCXNsb3QtPmVm ZmVjdGl2ZV9jYXRhbG9nX3htaW4gPSByZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWluOworCVNwaW5M b2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCisJaWYgKHJlbW90ZV9zbG90LT5jYXRhbG9nX3ht aW4gIT0gc2xvdC0+ZGF0YS5jYXRhbG9nX3htaW4pCisJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRl UmVxdWlyZWRYbWluKGZhbHNlKTsKKworCWlmIChyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24gIT0g c2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikKKwkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJl ZExTTigpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBHZXQgbGlzdCBvZiBsb2NhbCBs b2dpY2FsIHNsb3RzIHdoaWNoIGFyZSBzeW5jaHJvbml6ZWQgZnJvbQorICogdGhlIHByaW1hcnkg c2VydmVyLgorICovCitzdGF0aWMgTGlzdCAqCitnZXRfbG9jYWxfc3luY2VkX3Nsb3RzKHZvaWQp Cit7CisJTGlzdAkgICAqbG9jYWxfc2xvdHMgPSBOSUw7CisKKwlMV0xvY2tBY3F1aXJlKFJlcGxp Y2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19TSEFSRUQpOworCisJZm9yIChpbnQgaSA9IDA7IGkg PCBtYXhfcmVwbGljYXRpb25fc2xvdHM7IGkrKykKKwl7CisJCVJlcGxpY2F0aW9uU2xvdCAqcyA9 ICZSZXBsaWNhdGlvblNsb3RDdGwtPnJlcGxpY2F0aW9uX3Nsb3RzW2ldOworCisJCS8qIENoZWNr IGlmIGl0IGlzIGEgc3luY2hyb25pemVkIHNsb3QgKi8KKwkJaWYgKHMtPmluX3VzZSAmJiBzLT5k YXRhLnN5bmNlZCkKKwkJeworCQkJQXNzZXJ0KFNsb3RJc0xvZ2ljYWwocykpOworCQkJbG9jYWxf c2xvdHMgPSBsYXBwZW5kKGxvY2FsX3Nsb3RzLCBzKTsKKwkJfQorCX0KKworCUxXTG9ja1JlbGVh c2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOworCisJcmV0dXJuIGxvY2FsX3Nsb3RzOwor fQorCisvKgorICogSGVscGVyIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGxvY2FsX3Nsb3QgaXMgcHJl c2VudCBpbiByZW1vdGVfc2xvdHMgbGlzdC4KKyAqCisgKiBJdCBhbHNvIGNoZWNrcyBpZiB0aGUg c2xvdCBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIgd2FzIGludmFsaWRhdGVkIHdoaWxlIHRoZQorICog Y29ycmVzcG9uZGluZyByZW1vdGUgc2xvdCBpbiB0aGUgbGlzdCByZW1haW5lZCB2YWxpZC4gSWYg Zm91bmQgc28sIGl0IHNldHMKKyAqIHRoZSBsb2NhbGx5X2ludmFsaWRhdGVkIGZsYWcgdG8gdHJ1 ZS4KKyAqLworc3RhdGljIGJvb2wKK2NoZWNrX3N5bmNfc2xvdF9vbl9yZW1vdGUoUmVwbGljYXRp b25TbG90ICpsb2NhbF9zbG90LCBMaXN0ICpyZW1vdGVfc2xvdHMsCisJCQkJCQkgIGJvb2wgKmxv Y2FsbHlfaW52YWxpZGF0ZWQpCit7CisJZm9yZWFjaF9wdHIoUmVtb3RlU2xvdCwgcmVtb3RlX3Ns b3QsIHJlbW90ZV9zbG90cykKKwl7CisJCWlmIChzdHJjbXAocmVtb3RlX3Nsb3QtPm5hbWUsIE5h bWVTdHIobG9jYWxfc2xvdC0+ZGF0YS5uYW1lKSkgPT0gMCkKKwkJeworCQkJLyoKKwkJCSAqIElm IHJlbW90ZSBzbG90IGlzIG5vdCBpbnZhbGlkYXRlZCBidXQgbG9jYWwgc2xvdCBpcyBtYXJrZWQg YXMKKwkJCSAqIGludmFsaWRhdGVkLCB0aGVuIHNldCB0aGUgYm9vbC4KKwkJCSAqLworCQkJU3Bp bkxvY2tBY3F1aXJlKCZsb2NhbF9zbG90LT5tdXRleCk7CisJCQkqbG9jYWxseV9pbnZhbGlkYXRl ZCA9CisJCQkJKHJlbW90ZV9zbG90LT5pbnZhbGlkYXRlZCA9PSBSU19JTlZBTF9OT05FKSAmJgor CQkJCShsb2NhbF9zbG90LT5kYXRhLmludmFsaWRhdGVkICE9IFJTX0lOVkFMX05PTkUpOworCQkJ U3BpbkxvY2tSZWxlYXNlKCZsb2NhbF9zbG90LT5tdXRleCk7CisKKwkJCXJldHVybiB0cnVlOwor CQl9CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCisvKgorICogRHJvcCBvYnNvbGV0ZSBzbG90 cworICoKKyAqIERyb3AgdGhlIHNsb3RzIHRoYXQgbm8gbG9uZ2VyIG5lZWQgdG8gYmUgc3luY2Vk IGkuZS4gdGhlc2UgZWl0aGVyIGRvIG5vdAorICogZXhpc3Qgb24gdGhlIHByaW1hcnkgb3IgYXJl IG5vIGxvbmdlciBlbmFibGVkIGZvciBmYWlsb3Zlci4KKyAqCisgKiBBZGRpdGlvbmFsbHksIGl0 IGRyb3BzIHNsb3RzIHRoYXQgYXJlIHZhbGlkIG9uIHRoZSBwcmltYXJ5IGJ1dCBnb3QKKyAqIGlu dmFsaWRhdGVkIG9uIHRoZSBzdGFuZGJ5LiBUaGlzIHNpdHVhdGlvbiBtYXkgb2NjdXIgZHVlIHRv IHRoZSBmb2xsb3dpbmcKKyAqIHJlYXNvbnM6CisgKiAtIFRoZSBtYXhfc2xvdF93YWxfa2VlcF9z aXplIG9uIHRoZSBzdGFuZGJ5IGlzIGluc3VmZmljaWVudCB0byByZXRhaW4gV0FMCisgKiAgIHJl Y29yZHMgZnJvbSB0aGUgcmVzdGFydF9sc24gb2YgdGhlIHNsb3QuCisgKiAtIHByaW1hcnlfc2xv dF9uYW1lIGlzIHRlbXBvcmFyaWx5IHJlc2V0IHRvIG51bGwgYW5kIHRoZSBwaHlzaWNhbCBzbG90 IGlzCisgKiAgIHJlbW92ZWQuCisgKiAtIFRoZSBwcmltYXJ5IGNoYW5nZXMgd2FsX2xldmVsIHRv IGEgbGV2ZWwgbG93ZXIgdGhhbiBsb2dpY2FsLgorICoKKyAqIFRoZSBhc3N1bXB0aW9uIGlzIHRo YXQgdGhlc2UgZHJvcHBlZCBzbG90cyB3aWxsIGdldCByZWNyZWF0ZWQgaW4gbmV4dAorICogc3lu Yy1jeWNsZSBhbmQgaXQgaXMgb2theSB0byBkcm9wIGFuZCByZWNyZWF0ZSBzdWNoIHNsb3RzIGFz IGxvbmcgYXMgdGhlc2UKKyAqIGFyZSBub3QgY29uc3VtYWJsZSBvbiB0aGUgc3RhbmRieSAod2hp Y2ggaXMgdGhlIGNhc2UgY3VycmVudGx5KS4KKyAqLworc3RhdGljIHZvaWQKK2Ryb3Bfb2Jzb2xl dGVfc2xvdHMoTGlzdCAqcmVtb3RlX3Nsb3RfbGlzdCkKK3sKKwlMaXN0CSAgICpsb2NhbF9zbG90 cyA9IGdldF9sb2NhbF9zeW5jZWRfc2xvdHMoKTsKKworCWZvcmVhY2hfcHRyKFJlcGxpY2F0aW9u U2xvdCwgbG9jYWxfc2xvdCwgbG9jYWxfc2xvdHMpCisJeworCQlib29sCQlyZW1vdGVfZXhpc3Rz ID0gZmFsc2U7CisJCWJvb2wJCWxvY2FsbHlfaW52YWxpZGF0ZWQgPSBmYWxzZTsKKworCQlyZW1v dGVfZXhpc3RzID0gY2hlY2tfc3luY19zbG90X29uX3JlbW90ZShsb2NhbF9zbG90LCByZW1vdGVf c2xvdF9saXN0LAorCQkJCQkJCQkJCQkJICAmbG9jYWxseV9pbnZhbGlkYXRlZCk7CisKKwkJLyoK KwkJICogRHJvcCB0aGUgbG9jYWwgc2xvdCBlaXRoZXIgaWYgaXQgaXMgbm90IGluIHRoZSByZW1v dGUgc2xvdHMgbGlzdCBvcgorCQkgKiBpcyBpbnZhbGlkYXRlZCB3aGlsZSByZW1vdGUgc2xvdCBp cyBzdGlsbCB2YWxpZC4KKwkJICovCisJCWlmICghcmVtb3RlX2V4aXN0cyB8fCBsb2NhbGx5X2lu dmFsaWRhdGVkKQorCQl7CisJCQlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKE5hbWVTdHIobG9jYWxf c2xvdC0+ZGF0YS5uYW1lKSwgdHJ1ZSk7CisJCQlBc3NlcnQoTXlSZXBsaWNhdGlvblNsb3QtPmRh dGEuc3luY2VkKTsKKwkJCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpOworCisJCQllcmVw b3J0KExPRywKKwkJCQkJZXJybXNnKCJkcm9wcGVkIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIG9m IGRiaWQgJWQiLAorCQkJCQkJICAgTmFtZVN0cihsb2NhbF9zbG90LT5kYXRhLm5hbWUpLAorCQkJ CQkJICAgbG9jYWxfc2xvdC0+ZGF0YS5kYXRhYmFzZSkpOworCQl9CisJfQorfQorCisvKgorICog UmVzZXJ2ZSBXQUwgZm9yIHRoZSBjdXJyZW50bHkgYWN0aXZlIHNsb3QgdXNpbmcgdGhlIHNwZWNp ZmllZCBXQUwgbG9jYXRpb24KKyAqIChyZXN0YXJ0X2xzbikuCisgKgorICogSWYgdGhlIGdpdmVu IFdBTCBsb2NhdGlvbiBoYXMgYmVlbiByZW1vdmVkLCByZXNlcnZlIFdBTCB1c2luZyB0aGUgb2xk ZXN0CisgKiBleGlzdGluZyBXQUwgc2VnbWVudC4KKyAqLworc3RhdGljIHZvaWQKK3Jlc2VydmVf d2FsX2Zvcl9zbG90KFhMb2dSZWNQdHIgcmVzdGFydF9sc24pCit7CisJWExvZ1NlZ05vCW9sZGVz dF9zZWdubzsKKwlYTG9nU2VnTm8Jc2Vnbm87CisJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTXlS ZXBsaWNhdGlvblNsb3Q7CisKKwlBc3NlcnQoc2xvdCAhPSBOVUxMKTsKKwlBc3NlcnQoWExvZ1Jl Y1B0cklzSW52YWxpZChzbG90LT5kYXRhLnJlc3RhcnRfbHNuKSk7CisKKwl3aGlsZSAodHJ1ZSkK Kwl7CisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlzbG90LT5kYXRhLnJlc3Rh cnRfbHNuID0gcmVzdGFydF9sc247CisJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwor CisJCS8qIFByZXZlbnQgV0FMIHJlbW92YWwgYXMgZmFzdCBhcyBwb3NzaWJsZSAqLworCQlSZXBs aWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNOKCk7CisKKwkJWExCeXRlVG9TZWcoc2xvdC0+ ZGF0YS5yZXN0YXJ0X2xzbiwgc2Vnbm8sIHdhbF9zZWdtZW50X3NpemUpOworCisJCS8qCisJCSAq IEZpbmQgdGhlIG9sZGVzdCBleGlzdGluZyBXQUwgc2VnbWVudCBmaWxlLgorCQkgKgorCQkgKiBO b3JtYWxseSwgd2UgY2FuIGRldGVybWluZSBpdCBieSB1c2luZyB0aGUgbGFzdCByZW1vdmVkIHNl Z21lbnQKKwkJICogbnVtYmVyLiBIb3dldmVyLCBpZiBubyBXQUwgc2VnbWVudCBmaWxlcyBoYXZl IGJlZW4gcmVtb3ZlZCBieSBhCisJCSAqIGNoZWNrcG9pbnQgc2luY2Ugc3RhcnR1cCwgd2UgbmVl ZCB0byBzZWFyY2ggZm9yIHRoZSBvbGRlc3Qgc2VnbWVudAorCQkgKiBmaWxlIGN1cnJlbnRseSBl eGlzdGluZyBpbiBYTE9HRElSLgorCQkgKi8KKwkJb2xkZXN0X3NlZ25vID0gWExvZ0dldExhc3RS ZW1vdmVkU2Vnbm8oKSArIDE7CisKKwkJaWYgKG9sZGVzdF9zZWdubyA9PSAxKQorCQkJb2xkZXN0 X3NlZ25vID0gWExvZ0dldE9sZGVzdFNlZ25vKDApOworCisJCS8qCisJCSAqIElmIGFsbCByZXF1 aXJlZCBXQUwgaXMgc3RpbGwgdGhlcmUsIGdyZWF0LCBvdGhlcndpc2UgcmV0cnkuIFRoZQorCQkg KiBzbG90IHNob3VsZCBwcmV2ZW50IGZ1cnRoZXIgcmVtb3ZhbCBvZiBXQUwsIHVubGVzcyB0aGVy ZSdzIGEKKwkJICogY29uY3VycmVudCBSZXBsaWNhdGlvblNsb3RzQ29tcHV0ZVJlcXVpcmVkTFNO KCkgYWZ0ZXIgd2UndmUgd3JpdHRlbgorCQkgKiB0aGUgbmV3IHJlc3RhcnRfbHNuIGFib3ZlLCBz byBub3JtYWxseSB3ZSBzaG91bGQgbmV2ZXIgbmVlZCB0byBsb29wCisJCSAqIG1vcmUgdGhhbiB0 d2ljZS4KKwkJICovCisJCWlmIChzZWdubyA+PSBvbGRlc3Rfc2Vnbm8pCisJCQlicmVhazsKKwor CQkvKiBSZXRyeSB1c2luZyB0aGUgbG9jYXRpb24gb2YgdGhlIG9sZGVzdCB3YWwgc2VnbWVudCAq LworCQlYTG9nU2VnTm9PZmZzZXRUb1JlY1B0cihvbGRlc3Rfc2Vnbm8sIDAsIHdhbF9zZWdtZW50 X3NpemUsIHJlc3RhcnRfbHNuKTsKKwl9Cit9CisKKy8qCisgKiBVcGRhdGUgdGhlIExTTnMgYW5k IHBlcnNpc3QgdGhlIHNsb3QgZm9yIGZ1cnRoZXIgc3luY3MgaWYgdGhlIHJlbW90ZQorICogcmVz dGFydF9sc24gYW5kIGNhdGFsb2dfeG1pbiBoYXZlIGNhdWdodCB1cCB3aXRoIHRoZSBsb2NhbCBv bmVzLCBvdGhlcndpc2UKKyAqIGRvIG5vdGhpbmcuCisgKgorICogUmV0dXJuIHRydWUgaWYgdGhl IHNsb3QgaXMgbWFya2VkIGFzIFJTX1BFUlNJU1RFTlQgKHN5bmMtcmVhZHkpLCBvdGhlcndpc2UK KyAqIGZhbHNlLgorICovCitzdGF0aWMgYm9vbAordXBkYXRlX2FuZF9wZXJzaXN0X3Nsb3QoUmVt b3RlU2xvdCAqcmVtb3RlX3Nsb3QpCit7CisJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTXlSZXBs aWNhdGlvblNsb3Q7CisKKwkvKgorCSAqIENoZWNrIGlmIHRoZSBwcmltYXJ5IHNlcnZlciBoYXMg Y2F1Z2h0IHVwLiBSZWZlciB0byB0aGUgY29tbWVudCBhdG9wCisJICogdGhlIGZpbGUgZm9yIGRl dGFpbHMgb24gdGhpcyBjaGVjay4KKwkgKgorCSAqIFdlIGFsc28gbmVlZCB0byBjaGVjayBpZiBy ZW1vdGVfc2xvdCdzIGNvbmZpcm1lZF9sc24gYmVjb21lcyB2YWxpZC4gSXQKKwkgKiBpcyBwb3Nz aWJsZSB0byBnZXQgbnVsbCB2YWx1ZXMgZm9yIGNvbmZpcm1lZF9sc24gYW5kIGNhdGFsb2dfeG1p biBpZiBvbgorCSAqIHRoZSBwcmltYXJ5IHNlcnZlciB0aGUgc2xvdCBpcyBqdXN0IGNyZWF0ZWQg d2l0aCBhIHZhbGlkIHJlc3RhcnRfbHNuCisJICogYW5kIHNsb3Qtc3luYyB3b3JrZXIgaGFzIGZl dGNoZWQgdGhlIHNsb3QgYmVmb3JlIHRoZSBwcmltYXJ5IHNlcnZlcgorCSAqIGNvdWxkIHNldCB2 YWxpZCBjb25maXJtZWRfbHNuIGFuZCBjYXRhbG9nX3htaW4uCisJICovCisJaWYgKHJlbW90ZV9z bG90LT5yZXN0YXJ0X2xzbiA8IHNsb3QtPmRhdGEucmVzdGFydF9sc24gfHwKKwkJWExvZ1JlY1B0 cklzSW52YWxpZChyZW1vdGVfc2xvdC0+Y29uZmlybWVkX2xzbikgfHwKKwkJVHJhbnNhY3Rpb25J ZFByZWNlZGVzKHJlbW90ZV9zbG90LT5jYXRhbG9nX3htaW4sCisJCQkJCQkJICBzbG90LT5kYXRh LmNhdGFsb2dfeG1pbikpCisJeworCQkvKgorCQkgKiBUaGUgcmVtb3RlIHNsb3QgZGlkbid0IGNh dGNoIHVwIHRvIGxvY2FsbHkgcmVzZXJ2ZWQgcG9zaXRpb24uCisJCSAqCisJCSAqIFdlIGRvIG5v dCBkcm9wIHRoZSBzbG90IGJlY2F1c2UgdGhlIHJlc3RhcnRfbHNuIGNhbiBiZSBhaGVhZCBvZiB0 aGUKKwkJICogY3VycmVudCBsb2NhdGlvbiB3aGVuIHJlY3JlYXRpbmcgdGhlIHNsb3QgaW4gdGhl IG5leHQgY3ljbGUuIEl0IG1heQorCQkgKiB0YWtlIG1vcmUgdGltZSB0byBjcmVhdGUgc3VjaCBh IHNsb3QuIFRoZXJlZm9yZSwgd2Uga2VlcCB0aGlzIHNsb3QKKwkJICogYW5kIGF0dGVtcHQgdGhl IHdhaXQgYW5kIHN5bmNocm9uaXphdGlvbiBpbiB0aGUgbmV4dCBjeWNsZS4KKwkJICovCisJCXJl dHVybiBmYWxzZTsKKwl9CisKKwkvKiBGaXJzdCB0aW1lIHNsb3QgdXBkYXRlLCB0aGUgZnVuY3Rp b24gbXVzdCByZXR1cm4gdHJ1ZSAqLworCWlmKCFsb2NhbF9zbG90X3VwZGF0ZShyZW1vdGVfc2xv dCkpCisJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gdXBkYXRlIHNsb3QiKTsKKworCVJlcGxpY2F0 aW9uU2xvdFBlcnNpc3QoKTsKKworCWVyZXBvcnQoTE9HLAorCQkJZXJybXNnKCJuZXdseSBjcmVh dGVkIHNsb3QgXCIlc1wiIGlzIHN5bmMtcmVhZHkgbm93IiwKKwkJCQkgICByZW1vdGVfc2xvdC0+ bmFtZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBTeW5jaHJvbml6ZSBzaW5nbGUg c2xvdCB0byBnaXZlbiBwb3NpdGlvbi4KKyAqCisgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgc2xvdCBp ZiB0aGVyZSBpcyBubyBleGlzdGluZyBvbmUgYW5kIHVwZGF0ZXMgdGhlCisgKiBtZXRhZGF0YSBv ZiB0aGUgc2xvdCBhcyBwZXIgdGhlIGRhdGEgcmVjZWl2ZWQgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2 ZXIuCisgKgorICogVGhlIHNsb3QgaXMgY3JlYXRlZCBhcyBhIHRlbXBvcmFyeSBzbG90IGFuZCBz dGF5cyBpbiB0aGUgc2FtZSBzdGF0ZSB1bnRpbCB0aGUKKyAqIHRoZSByZW1vdGVfc2xvdCBjYXRj aGVzIHVwIHdpdGggbG9jYWxseSByZXNlcnZlZCBwb3NpdGlvbiBhbmQgbG9jYWwgc2xvdCBpcwor ICogdXBkYXRlZC4gVGhlIHNsb3QgaXMgdGhlbiBwZXJzaXN0ZWQgYW5kIGlzIGNvbnNpZGVyZWQg YXMgc3luYy1yZWFkeSBmb3IKKyAqIHBlcmlvZGljIHN5bmNzLgorICoKKyAqIFJldHVybnMgVFJV RSBpZiB0aGUgbG9jYWwgc2xvdCBpcyB1cGRhdGVkLgorICovCitzdGF0aWMgYm9vbAorc3luY2hy b25pemVfb25lX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIFJlbW90ZVNsb3QgKnJlbW90 ZV9zbG90KQoreworCVJlcGxpY2F0aW9uU2xvdCAqc2xvdDsKKwlib29sCQlzbG90X3VwZGF0ZWQg PSBmYWxzZTsKKwlYTG9nUmVjUHRyCWxhdGVzdEZsdXNoUHRyOworCisJLyoKKwkgKiBTYW5pdHkg Y2hlY2s6IE1ha2Ugc3VyZSB0aGF0IGNvbmNlcm5lZCBXQUwgaXMgcmVjZWl2ZWQgYW5kIGZsdXNo ZWQKKwkgKiBiZWZvcmUgc3luY2luZyBzbG90IHRvIHRhcmdldCBsc24gcmVjZWl2ZWQgZnJvbSB0 aGUgcHJpbWFyeSBzZXJ2ZXIuCisJICoKKwkgKiBUaGlzIGNoZWNrIHNob3VsZCBuZXZlciBwYXNz IGFzIG9uIHRoZSBwcmltYXJ5IHNlcnZlciwgd2UgaGF2ZSB3YWl0ZWQKKwkgKiBmb3IgdGhlIHN0 YW5kYnkncyBjb25maXJtYXRpb24gYmVmb3JlIHVwZGF0aW5nIHRoZSBsb2dpY2FsIHNsb3QuCisJ ICovCisJbGF0ZXN0Rmx1c2hQdHIgPSBHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoTlVMTCk7CisJaWYg KHJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNuID4gbGF0ZXN0Rmx1c2hQdHIpCisJeworCQllbG9n KEVSUk9SLCAiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGFzIHRoZSByZWNlaXZl ZCBzbG90IHN5bmMiCisJCQkgIiBMU04gJVgvJVggZm9yIHNsb3QgXCIlc1wiIGlzIGFoZWFkIG9m IHRoZSBzdGFuZGJ5IHBvc2l0aW9uICVYLyVYIiwKKwkJCSBMU05fRk9STUFUX0FSR1MocmVtb3Rl X3Nsb3QtPmNvbmZpcm1lZF9sc24pLAorCQkJIHJlbW90ZV9zbG90LT5uYW1lLAorCQkJIExTTl9G T1JNQVRfQVJHUyhsYXRlc3RGbHVzaFB0cikpOworCX0KKworCS8qIFNlYXJjaCBmb3IgdGhlIG5h bWVkIHNsb3QgKi8KKwlpZiAoKHNsb3QgPSBTZWFyY2hOYW1lZFJlcGxpY2F0aW9uU2xvdChyZW1v dGVfc2xvdC0+bmFtZSwgdHJ1ZSkpKQorCXsKKwkJYm9vbAkJc3luY2VkOworCisJCVNwaW5Mb2Nr QWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlzeW5jZWQgPSBzbG90LT5kYXRhLnN5bmNlZDsKKwkJ U3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJLyogVXNlciBjcmVhdGVkIHNsb3Qg d2l0aCB0aGUgc2FtZSBuYW1lIGV4aXN0cywgcmFpc2UgRVJST1IuICovCisJCWlmICghc3luY2Vk KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5f UFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5j aHJvbml6YXRpb24gYmVjYXVzZSBzYW1lIgorCQkJCQkJICAgIiBuYW1lIHNsb3QgXCIlc1wiIGFs cmVhZHkgZXhpc3RzIG9uIHN0YW5kYnkiLAorCQkJCQkJICAgcmVtb3RlX3Nsb3QtPm5hbWUpLAor CQkJCQllcnJkZXRhaWwoIkEgdXNlci1jcmVhdGVkIHNsb3Qgd2l0aCB0aGUgc2FtZSBuYW1lIGFz IgorCQkJCQkJCSAgIiBmYWlsb3ZlciBzbG90IGFscmVhZHkgZXhpc3RzIG9uIHRoZSBzdGFuZGJ5 LiIpKTsKKworCQkvKgorCQkgKiBTbG90IGNyZWF0ZWQgYnkgdGhlIHNsb3Qgc3luYyB3b3JrZXIg ZXhpc3RzLCBzeW5jIGl0LgorCQkgKgorCQkgKiBJdCBpcyBpbXBvcnRhbnQgdG8gYWNxdWlyZSB0 aGUgc2xvdCBoZXJlIGJlZm9yZSBjaGVja2luZworCQkgKiBpbnZhbGlkYXRpb24uIElmIHdlIGRv bid0IGFjcXVpcmUgdGhlIHNsb3QgZmlyc3QsIHRoZXJlIGNvdWxkIGJlIGEKKwkJICogcmFjZSBj b25kaXRpb24gdGhhdCB0aGUgbG9jYWwgc2xvdCBjb3VsZCBiZSBpbnZhbGlkYXRlZCBqdXN0IGFm dGVyCisJCSAqIGNoZWNraW5nIHRoZSAnaW52YWxpZGF0ZWQnIGZsYWcgaGVyZSBhbmQgd2UgY291 bGQgZW5kIHVwCisJCSAqIG92ZXJ3cml0aW5nICdpbnZhbGlkYXRlZCcgZmxhZyB0byByZW1vdGVf c2xvdCdzIHZhbHVlLiBTZWUKKwkJICogSW52YWxpZGF0ZVBvc3NpYmx5T2Jzb2xldGVTbG90KCkg d2hlcmUgaXQgaW52YWxpZGF0ZXMgc2xvdCBkaXJlY3RseQorCQkgKiBpZiB0aGUgc2xvdCBpcyBu b3QgYWNxdWlyZWQgYnkgb3RoZXIgcHJvY2Vzc2VzLgorCQkgKi8KKwkJUmVwbGljYXRpb25TbG90 QWNxdWlyZShyZW1vdGVfc2xvdC0+bmFtZSwgdHJ1ZSk7CisKKwkJQXNzZXJ0KHNsb3QgPT0gTXlS ZXBsaWNhdGlvblNsb3QpOworCisJCS8qCisJCSAqIENvcHkgdGhlIGludmFsaWRhdGlvbiBjYXVz ZSBmcm9tIHJlbW90ZSBvbmx5IGlmIGxvY2FsIHNsb3QgaXMgbm90CisJCSAqIGludmFsaWRhdGVk IGxvY2FsbHksIHdlIGRvbid0IHdhbnQgdG8gb3ZlcndyaXRlIGV4aXN0aW5nIG9uZS4KKwkJICov CisJCWlmIChzbG90LT5kYXRhLmludmFsaWRhdGVkID09IFJTX0lOVkFMX05PTkUpCisJCXsKKwkJ CVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQkJc2xvdC0+ZGF0YS5pbnZhbGlkYXRl ZCA9IHJlbW90ZV9zbG90LT5pbnZhbGlkYXRlZDsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+ bXV0ZXgpOworCisJCQkvKiBNYWtlIHN1cmUgdGhlIGludmFsaWRhdGVkIHN0YXRlIHBlcnNpc3Rz IGFjcm9zcyBzZXJ2ZXIgcmVzdGFydCAqLworCQkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7 CisJCQlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJCQlzbG90X3VwZGF0ZWQgPSB0cnVlOworCQl9 CisKKwkJLyogU2tpcCB0aGUgc3luYyBvZiBhbiBpbnZhbGlkYXRlZCBzbG90ICovCisJCWlmIChz bG90LT5kYXRhLmludmFsaWRhdGVkICE9IFJTX0lOVkFMX05PTkUpCisJCXsKKwkJCVJlcGxpY2F0 aW9uU2xvdFJlbGVhc2UoKTsKKwkJCXJldHVybiBzbG90X3VwZGF0ZWQ7CisJCX0KKworCQkvKiBT bG90IG5vdCByZWFkeSB5ZXQsIGxldCdzIGF0dGVtcHQgdG8gbWFrZSBpdCBzeW5jLXJlYWR5IG5v dy4gKi8KKwkJaWYgKHNsb3QtPmRhdGEucGVyc2lzdGVuY3kgPT0gUlNfVEVNUE9SQVJZKQorCQl7 CisJCQlzbG90X3VwZGF0ZWQgPSB1cGRhdGVfYW5kX3BlcnNpc3Rfc2xvdChyZW1vdGVfc2xvdCk7 CisJCX0KKworCQkvKiBTbG90IHJlYWR5IGZvciBzeW5jLCBzbyBzeW5jIGl0LiAqLworCQllbHNl CisJCXsKKwkJCS8qCisJCQkgKiBTYW5pdHkgY2hlY2s6IEFzIGxvbmcgYXMgdGhlIGludmFsaWRh dGlvbnMgYXJlIGhhbmRsZWQKKwkJCSAqIGFwcHJvcHJpYXRlbHkgYXMgYWJvdmUsIHRoaXMgc2hv dWxkIG5ldmVyIGhhcHBlbi4KKwkJCSAqLworCQkJaWYgKHJlbW90ZV9zbG90LT5yZXN0YXJ0X2xz biA8IHNsb3QtPmRhdGEucmVzdGFydF9sc24pCisJCQkJZWxvZyhFUlJPUiwKKwkJCQkJICJjYW5u b3Qgc3luY2hyb25pemUgbG9jYWwgc2xvdCBcIiVzXCIgTFNOKCVYLyVYKSIKKwkJCQkJICIgdG8g cmVtb3RlIHNsb3QncyBMU04oJVgvJVgpIGFzIHN5bmNocm9uaXphdGlvbiIKKwkJCQkJICIgd291 bGQgbW92ZSBpdCBiYWNrd2FyZHMiLCByZW1vdGVfc2xvdC0+bmFtZSwKKwkJCQkJIExTTl9GT1JN QVRfQVJHUyhzbG90LT5kYXRhLnJlc3RhcnRfbHNuKSwKKwkJCQkJIExTTl9GT1JNQVRfQVJHUyhy ZW1vdGVfc2xvdC0+cmVzdGFydF9sc24pKTsKKworCQkJLyogTWFrZSBzdXJlIHRoZSBzbG90IGNo YW5nZXMgcGVyc2lzdCBhY3Jvc3Mgc2VydmVyIHJlc3RhcnQgKi8KKwkJCWlmIChsb2NhbF9zbG90 X3VwZGF0ZShyZW1vdGVfc2xvdCkpCisJCQl7CisJCQkJc2xvdF91cGRhdGVkID0gdHJ1ZTsKKwkJ CQlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsKKwkJCQlSZXBsaWNhdGlvblNsb3RTYXZlKCk7 CisJCQl9CisJCX0KKwl9CisJLyogT3RoZXJ3aXNlIGNyZWF0ZSB0aGUgc2xvdCBmaXJzdC4gKi8K KwllbHNlCisJeworCQlUcmFuc2FjdGlvbklkIHhtaW5faG9yaXpvbiA9IEludmFsaWRUcmFuc2Fj dGlvbklkOworCisJCS8qIFNraXAgY3JlYXRpbmcgdGhlIGxvY2FsIHNsb3QgaWYgcmVtb3RlX3Ns b3QgaXMgaW52YWxpZGF0ZWQgYWxyZWFkeSAqLworCQlpZiAocmVtb3RlX3Nsb3QtPmludmFsaWRh dGVkICE9IFJTX0lOVkFMX05PTkUpCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJLyogRW5zdXJlIHRo YXQgd2UgaGF2ZSB0cmFuc2FjdGlvbiBlbnYgbmVlZGVkIGJ5IGdldF9kYXRhYmFzZV9vaWQoKSAq LworCQlBc3NlcnQoSXNUcmFuc2FjdGlvblN0YXRlKCkpOworCisJCVJlcGxpY2F0aW9uU2xvdENy ZWF0ZShyZW1vdGVfc2xvdC0+bmFtZSwgdHJ1ZSwgUlNfVEVNUE9SQVJZLAorCQkJCQkJCSAgcmVt b3RlX3Nsb3QtPnR3b19waGFzZSwKKwkJCQkJCQkgIHJlbW90ZV9zbG90LT5mYWlsb3ZlciwKKwkJ CQkJCQkgIHRydWUgLyogc3luY2VkICovICk7CisKKwkJLyogRm9yIHNob3J0ZXIgbGluZXMuICov CisJCXNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3Qt Pm11dGV4KTsKKwkJc2xvdC0+ZGF0YS5kYXRhYmFzZSA9IGdldF9kYXRhYmFzZV9vaWQocmVtb3Rl X3Nsb3QtPmRhdGFiYXNlLCBmYWxzZSk7CisJCW5hbWVzdHJjcHkoJnNsb3QtPmRhdGEucGx1Z2lu LCByZW1vdGVfc2xvdC0+cGx1Z2luKTsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7 CisKKwkJcmVzZXJ2ZV93YWxfZm9yX3Nsb3QocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuKTsKKwor CQlMV0xvY2tBY3F1aXJlKFByb2NBcnJheUxvY2ssIExXX0VYQ0xVU0lWRSk7CisJCXhtaW5faG9y aXpvbiA9IEdldE9sZGVzdFNhZmVEZWNvZGluZ1RyYW5zYWN0aW9uSWQodHJ1ZSk7CisJCVNwaW5M b2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlzbG90LT5lZmZlY3RpdmVfY2F0YWxvZ194bWlu ID0geG1pbl9ob3Jpem9uOworCQlzbG90LT5kYXRhLmNhdGFsb2dfeG1pbiA9IHhtaW5faG9yaXpv bjsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisJCVJlcGxpY2F0aW9uU2xvdHND b21wdXRlUmVxdWlyZWRYbWluKHRydWUpOworCQlMV0xvY2tSZWxlYXNlKFByb2NBcnJheUxvY2sp OworCisJCSh2b2lkKSB1cGRhdGVfYW5kX3BlcnNpc3Rfc2xvdChyZW1vdGVfc2xvdCk7CisJCXNs b3RfdXBkYXRlZCA9IHRydWU7CisJfQorCisJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOworCisJ cmV0dXJuIHNsb3RfdXBkYXRlZDsKK30KKworLyoKKyAqIE1hcHMgdGhlIHBnX3JlcGxpY2F0aW9u X3Nsb3RzLmNvbmZsaWN0X3JlYXNvbiB0ZXh0IHZhbHVlIHRvCisgKiBSZXBsaWNhdGlvblNsb3RJ bnZhbGlkYXRpb25DYXVzZSBlbnVtIHZhbHVlCisgKi8KK3N0YXRpYyBSZXBsaWNhdGlvblNsb3RJ bnZhbGlkYXRpb25DYXVzZQorZ2V0X3Nsb3RfaW52YWxpZGF0aW9uX2NhdXNlKGNoYXIgKmNvbmZs aWN0X3JlYXNvbikKK3sKKwlBc3NlcnQoY29uZmxpY3RfcmVhc29uKTsKKworCWlmIChzdHJjbXAo Y29uZmxpY3RfcmVhc29uLCBTTE9UX0lOVkFMX1dBTF9SRU1PVkVEX1RFWFQpID09IDApCisJCXJl dHVybiBSU19JTlZBTF9XQUxfUkVNT1ZFRDsKKwllbHNlIGlmIChzdHJjbXAoY29uZmxpY3RfcmVh c29uLCBTTE9UX0lOVkFMX0hPUklaT05fVEVYVCkgPT0gMCkKKwkJcmV0dXJuIFJTX0lOVkFMX0hP UklaT047CisJZWxzZSBpZiAoc3RyY21wKGNvbmZsaWN0X3JlYXNvbiwgU0xPVF9JTlZBTF9XQUxf TEVWRUxfVEVYVCkgPT0gMCkKKwkJcmV0dXJuIFJTX0lOVkFMX1dBTF9MRVZFTDsKKwllbHNlCisJ CUFzc2VydCgwKTsKKworCS8qIEtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwlyZXR1cm4gUlNfSU5W QUxfTk9ORTsKK30KKworLyoKKyAqIFN5bmNocm9uaXplIHNsb3RzLgorICoKKyAqIEdldHMgdGhl IGZhaWxvdmVyIGxvZ2ljYWwgc2xvdHMgaW5mbyBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciBhbmQg dXBkYXRlcworICogdGhlIHNsb3RzIGxvY2FsbHkuIENyZWF0ZXMgdGhlIHNsb3RzIGlmIG5vdCBw cmVzZW50IG9uIHRoZSBzdGFuZGJ5LgorICoKKyAqIFJldHVybnMgVFJVRSBpZiBhbnkgb2YgdGhl IHNsb3RzIGdldHMgdXBkYXRlZCBpbiB0aGlzIHN5bmMtY3ljbGUuCisgKi8KK3N0YXRpYyBib29s CitzeW5jaHJvbml6ZV9zbG90cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKK3sKKyNkZWZpbmUg U0xPVFNZTkNfQ09MVU1OX0NPVU5UIDkKKwlPaWQJCQlzbG90Um93W1NMT1RTWU5DX0NPTFVNTl9D T1VOVF0gPSB7VEVYVE9JRCwgVEVYVE9JRCwgTFNOT0lELAorCUxTTk9JRCwgWElET0lELCBCT09M T0lELCBCT09MT0lELCBURVhUT0lELCBURVhUT0lEfTsKKworCVdhbFJjdkV4ZWNSZXN1bHQgKnJl czsKKwlUdXBsZVRhYmxlU2xvdCAqdHVwc2xvdDsKKwlTdHJpbmdJbmZvRGF0YSBzOworCUxpc3QJ ICAgKnJlbW90ZV9zbG90X2xpc3QgPSBOSUw7CisJYm9vbAkJc29tZV9zbG90X3VwZGF0ZWQgPSBm YWxzZTsKKwlYTG9nUmVjUHRyCWxhdGVzdFdhbEVuZDsKKworCS8qCisJICogVGhlIHByaW1hcnlf c2xvdF9uYW1lIGlzIG5vdCBzZXQgeWV0IG9yIFdBTHMgbm90IHJlY2VpdmVkIHlldC4KKwkgKiBT eW5jaHJvbml6YXRpb24gaXMgbm90IHBvc3NpYmxlIGlmIHRoZSB3YWxyZWNlaXZlciBpcyBub3Qg c3RhcnRlZC4KKwkgKi8KKwlsYXRlc3RXYWxFbmQgPSBHZXRXYWxSY3ZMYXRlc3RXYWxFbmQoKTsK KwlTcGluTG9ja0FjcXVpcmUoJldhbFJjdi0+bXV0ZXgpOworCWlmICgoV2FsUmN2LT5zbG90bmFt ZVswXSA9PSAnXDAnKSB8fAorCQlYTG9nUmVjUHRySXNJbnZhbGlkKGxhdGVzdFdhbEVuZCkpCisJ eworCQlTcGluTG9ja1JlbGVhc2UoJldhbFJjdi0+bXV0ZXgpOworCQlyZXR1cm4gZmFsc2U7CisJ fQorCVNwaW5Mb2NrUmVsZWFzZSgmV2FsUmN2LT5tdXRleCk7CisKKwkvKiBUaGUgc3lzY2FjaGUg YWNjZXNzIGluIHdhbHJjdl9leGVjKCkgbmVlZHMgYSB0cmFuc2FjdGlvbiBlbnYuICovCisJU3Rh cnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKworCWluaXRTdHJpbmdJbmZvKCZzKTsKKworCS8qIENv bnN0cnVjdCBxdWVyeSB0byBmZXRjaCBzbG90cyB3aXRoIGZhaWxvdmVyIGVuYWJsZWQuICovCisJ YXBwZW5kU3RyaW5nSW5mbygmcywKKwkJCQkJICJTRUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIGNv bmZpcm1lZF9mbHVzaF9sc24sIgorCQkJCQkgIiByZXN0YXJ0X2xzbiwgY2F0YWxvZ194bWluLCB0 d29fcGhhc2UsIGZhaWxvdmVyLCIKKwkJCQkJICIgZGF0YWJhc2UsIGNvbmZsaWN0X3JlYXNvbiIK KwkJCQkJICIgRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzIgorCQkJCQkgIiBX SEVSRSBmYWlsb3ZlciBhbmQgTk9UIHRlbXBvcmFyeSIpOworCisJLyogRXhlY3V0ZSB0aGUgcXVl cnkgKi8KKwlyZXMgPSB3YWxyY3ZfZXhlYyh3cmNvbm4sIHMuZGF0YSwgU0xPVFNZTkNfQ09MVU1O X0NPVU5ULCBzbG90Um93KTsKKwlwZnJlZShzLmRhdGEpOworCisJaWYgKHJlcy0+c3RhdHVzICE9 IFdBTFJDVl9PS19UVVBMRVMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJybXNnKCJjb3VsZCBu b3QgZmV0Y2ggZmFpbG92ZXIgbG9naWNhbCBzbG90cyBpbmZvIgorCQkJCQkgICAiIGZyb20gdGhl IHByaW1hcnkgc2VydmVyOiAlcyIsIHJlcy0+ZXJyKSk7CisKKwkvKiBDb25zdHJ1Y3QgdGhlIHJl bW90ZV9zbG90IHR1cGxlIGFuZCBzeW5jaHJvbml6ZSBlYWNoIHNsb3QgbG9jYWxseSAqLworCXR1 cHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNsb3QocmVzLT50dXBsZWRlc2MsICZUVFNPcHNN aW5pbWFsVHVwbGUpOworCXdoaWxlICh0dXBsZXN0b3JlX2dldHR1cGxlc2xvdChyZXMtPnR1cGxl c3RvcmUsIHRydWUsIGZhbHNlLCB0dXBzbG90KSkKKwl7CisJCWJvb2wJCWlzbnVsbDsKKwkJUmVt b3RlU2xvdCAqcmVtb3RlX3Nsb3QgPSBwYWxsb2MwKHNpemVvZihSZW1vdGVTbG90KSk7CisJCURh dHVtCQlkOworCisJCXJlbW90ZV9zbG90LT5uYW1lID0gVGV4dERhdHVtR2V0Q1N0cmluZyhzbG90 X2dldGF0dHIodHVwc2xvdCwgMSwgJmlzbnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJ cmVtb3RlX3Nsb3QtPnBsdWdpbiA9IFRleHREYXR1bUdldENTdHJpbmcoc2xvdF9nZXRhdHRyKHR1 cHNsb3QsIDIsICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCS8qCisJCSAqIEl0 IGlzIHBvc3NpYmxlIHRvIGdldCBudWxsIHZhbHVlcyBmb3IgTFNOIGFuZCBYbWluIGlmIHNsb3Qg aXMKKwkJICogaW52YWxpZGF0ZWQgb24gdGhlIHByaW1hcnkgc2VydmVyLCBzbyBoYW5kbGUgYWNj b3JkaW5nbHkuCisJCSAqLworCQlkID0gc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDMsICZpc251bGwp OworCQlyZW1vdGVfc2xvdC0+Y29uZmlybWVkX2xzbiA9IGlzbnVsbCA/IEludmFsaWRYTG9nUmVj UHRyIDoKKwkJCURhdHVtR2V0TFNOKGQpOworCisJCWQgPSBzbG90X2dldGF0dHIodHVwc2xvdCwg NCwgJmlzbnVsbCk7CisJCXJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbiA9IGlzbnVsbCA/IEludmFs aWRYTG9nUmVjUHRyIDogRGF0dW1HZXRMU04oZCk7CisKKwkJZCA9IHNsb3RfZ2V0YXR0cih0dXBz bG90LCA1LCAmaXNudWxsKTsKKwkJcmVtb3RlX3Nsb3QtPmNhdGFsb2dfeG1pbiA9IGlzbnVsbCA/ IEludmFsaWRUcmFuc2FjdGlvbklkIDoKKwkJCURhdHVtR2V0VHJhbnNhY3Rpb25JZChkKTsKKwor CQlyZW1vdGVfc2xvdC0+dHdvX3BoYXNlID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBz bG90LCA2LCAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQlyZW1vdGVfc2xvdC0+ ZmFpbG92ZXIgPSBEYXR1bUdldEJvb2woc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDcsICZpc251bGwp KTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCXJlbW90ZV9zbG90LT5kYXRhYmFzZSA9IFRleHRE YXR1bUdldENTdHJpbmcoc2xvdF9nZXRhdHRyKHR1cHNsb3QsCisJCQkJCQkJCQkJCQkJCQkJIDgs ICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCisJCWQgPSBzbG90X2dldGF0dHIodHVw c2xvdCwgOSwgJmlzbnVsbCk7CisJCXJlbW90ZV9zbG90LT5pbnZhbGlkYXRlZCA9IGlzbnVsbCA/ IFJTX0lOVkFMX05PTkUgOgorCQkJZ2V0X3Nsb3RfaW52YWxpZGF0aW9uX2NhdXNlKFRleHREYXR1 bUdldENTdHJpbmcoZCkpOworCisJCS8qIENyZWF0ZSBsaXN0IG9mIHJlbW90ZSBzbG90cyAqLwor CQlyZW1vdGVfc2xvdF9saXN0ID0gbGFwcGVuZChyZW1vdGVfc2xvdF9saXN0LCByZW1vdGVfc2xv dCk7CisKKwkJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJfQorCisJLyogRHJvcCBsb2NhbCBz bG90cyB0aGF0IG5vIGxvbmdlciBuZWVkIHRvIGJlIHN5bmNlZC4gKi8KKwlkcm9wX29ic29sZXRl X3Nsb3RzKHJlbW90ZV9zbG90X2xpc3QpOworCisJLyogTm93IHN5bmMgdGhlIHNsb3RzIGxvY2Fs bHkgKi8KKwlmb3JlYWNoX3B0cihSZW1vdGVTbG90LCByZW1vdGVfc2xvdCwgcmVtb3RlX3Nsb3Rf bGlzdCkKKwkJc29tZV9zbG90X3VwZGF0ZWQgfD0gc3luY2hyb25pemVfb25lX3Nsb3Qod3Jjb25u LCByZW1vdGVfc2xvdCk7CisKKwkvKiBXZSBhcmUgZG9uZSwgZnJlZSByZW1vdGVfc2xvdF9saXN0 IGVsZW1lbnRzICovCisJbGlzdF9mcmVlX2RlZXAocmVtb3RlX3Nsb3RfbGlzdCk7CisKKwl3YWxy Y3ZfY2xlYXJfcmVzdWx0KHJlcyk7CisKKwlDb21taXRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKwor CXJldHVybiBzb21lX3Nsb3RfdXBkYXRlZDsKK30KKworLyoKKyAqIENoZWNrcyB0aGUgcHJpbWFy eSBzZXJ2ZXIgaW5mby4KKyAqCisgKiBVc2luZyB0aGUgc3BlY2lmaWVkIHByaW1hcnkgc2VydmVy IGNvbm5lY3Rpb24sIGNoZWNrIHdoZXRoZXIgd2UgYXJlIGEKKyAqIGNhc2NhZGluZyBzdGFuZGJ5 LiBJdCBhbHNvIHZhbGlkYXRlcyBwcmltYXJ5X3Nsb3RfbmFtZSBmb3Igbm9uLWNhc2NhZGluZwor ICogc3RhbmRieXMuCisgKi8KK3N0YXRpYyB2b2lkCitjaGVja19wcmltYXJ5X2luZm8oV2FsUmVj ZWl2ZXJDb25uICp3cmNvbm4sIGJvb2wgKmFtX2Nhc2NhZGluZ19zdGFuZGJ5KQoreworI2RlZmlu ZSBQUklNQVJZX0lORk9fT1VUUFVUX0NPTF9DT1VOVCAyCisJV2FsUmN2RXhlY1Jlc3VsdCAqcmVz OworCU9pZAkJCXNsb3RSb3dbUFJJTUFSWV9JTkZPX09VVFBVVF9DT0xfQ09VTlRdID0ge0JPT0xP SUQsIEJPT0xPSUR9OworCVN0cmluZ0luZm9EYXRhIGNtZDsKKwlib29sCQlpc251bGw7CisJVHVw bGVUYWJsZVNsb3QgKnR1cHNsb3Q7CisJYm9vbAkJdmFsaWQ7CisJYm9vbAkJcmVtb3RlX2luX3Jl Y292ZXJ5OworCisJLyogVGhlIHN5c2NhY2hlIGFjY2VzcyBpbiB3YWxyY3ZfZXhlYygpIG5lZWRz IGEgdHJhbnNhY3Rpb24gZW52LiAqLworCVN0YXJ0VHJhbnNhY3Rpb25Db21tYW5kKCk7CisKKwlB c3NlcnQoYW1fY2FzY2FkaW5nX3N0YW5kYnkgIT0gTlVMTCk7CisKKwkqYW1fY2FzY2FkaW5nX3N0 YW5kYnkgPSBmYWxzZTsJLyogb3ZlcndyaXR0ZW4gbGF0ZXIgaWYgY2FzY2FkaW5nICovCisKKwlp bml0U3RyaW5nSW5mbygmY21kKTsKKwlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsCisJCQkJCSAiU0VM RUNUIHBnX2lzX2luX3JlY292ZXJ5KCksIGNvdW50KCopID0gMSIKKwkJCQkJICIgRlJPTSBwZ19y ZXBsaWNhdGlvbl9zbG90cyIKKwkJCQkJICIgV0hFUkUgc2xvdF90eXBlPSdwaHlzaWNhbCcgQU5E IHNsb3RfbmFtZT0lcyIsCisJCQkJCSBxdW90ZV9saXRlcmFsX2NzdHIoUHJpbWFyeVNsb3ROYW1l KSk7CisKKwlyZXMgPSB3YWxyY3ZfZXhlYyh3cmNvbm4sIGNtZC5kYXRhLCBQUklNQVJZX0lORk9f T1VUUFVUX0NPTF9DT1VOVCwgc2xvdFJvdyk7CisJcGZyZWUoY21kLmRhdGEpOworCisJaWYgKHJl cy0+c3RhdHVzICE9IFdBTFJDVl9PS19UVVBMRVMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJy bXNnKCJjb3VsZCBub3QgZmV0Y2ggcHJpbWFyeV9zbG90X25hbWUgXCIlc1wiIGluZm8gZnJvbSB0 aGUiCisJCQkJCSAgICIgcHJpbWFyeSBzZXJ2ZXI6ICVzIiwgUHJpbWFyeVNsb3ROYW1lLCByZXMt PmVycikpOworCisJdHVwc2xvdCA9IE1ha2VTaW5nbGVUdXBsZVRhYmxlU2xvdChyZXMtPnR1cGxl ZGVzYywgJlRUU09wc01pbmltYWxUdXBsZSk7CisJaWYgKCF0dXBsZXN0b3JlX2dldHR1cGxlc2xv dChyZXMtPnR1cGxlc3RvcmUsIHRydWUsIGZhbHNlLCB0dXBzbG90KSkKKwkJZWxvZyhFUlJPUiwg ImZhaWxlZCB0byBmZXRjaCBwcmltYXJ5X3Nsb3RfbmFtZSB0dXBsZSIpOworCisJcmVtb3RlX2lu X3JlY292ZXJ5ID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBzbG90LCAxLCAmaXNudWxs KSk7CisJQXNzZXJ0KCFpc251bGwpOworCisJaWYgKHJlbW90ZV9pbl9yZWNvdmVyeSkKKwl7CisJ CS8qIE5vIG5lZWQgdG8gY2hlY2sgZnVydGhlciwganVzdCBzZXQgYW1fY2FzY2FkaW5nX3N0YW5k YnkgdG8gdHJ1ZSAqLworCQkqYW1fY2FzY2FkaW5nX3N0YW5kYnkgPSB0cnVlOworCX0KKwllbHNl CisJeworCQkvKiBXZSBhcmUgYSBub3JtYWwgc3RhbmRieSAqLworCQl2YWxpZCA9IERhdHVtR2V0 Qm9vbChzbG90X2dldGF0dHIodHVwc2xvdCwgMiwgJmlzbnVsbCkpOworCQlBc3NlcnQoIWlzbnVs bCk7CisKKwkJaWYgKCF2YWxpZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygiZXhpdGluZyBmcm9t IHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJLyog dHJhbnNsYXRvcjogc2Vjb25kICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KKwkJCQkJZXJy ZGV0YWlsKCJUaGUgcHJpbWFyeSBzZXJ2ZXIgc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGJ5ICVzIGlz IG5vdCB2YWxpZC4iLAorCQkJCQkJCSAgUHJpbWFyeVNsb3ROYW1lLCAicHJpbWFyeV9zbG90X25h bWUiKSk7CisJfQorCisJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJd2FscmN2X2NsZWFyX3Jl c3VsdChyZXMpOworCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOworfQorCisvKgorICogQ2hl Y2sgdGhhdCBhbGwgbmVjZXNzYXJ5IEdVQ3MgZm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIGFyZSBz ZXQKKyAqIGFwcHJvcHJpYXRlbHkuIElmIG5vdCwgcmFpc2UgYW4gRVJST1IuCisgKgorICogSWYg YWxsIGNoZWNrcyBwYXNzLCBleHRyYWN0cyB0aGUgZGJuYW1lIGZyb20gdGhlIHByaW1hcnlfY29u bmluZm8gR1VDIGFuZAorICogcmV0dXJucyBpdC4KKyAqLworc3RhdGljIGNoYXIgKgordmFsaWRh dGVfcGFyYW1ldGVyc19hbmRfZ2V0X2RibmFtZSh2b2lkKQoreworCWNoYXIJICAgKmRibmFtZTsK KworCS8qIFNhbml0eSBjaGVjay4gKi8KKwlBc3NlcnQoZW5hYmxlX3N5bmNzbG90KTsKKworCS8q CisJICogQSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90KHByaW1hcnlfc2xvdF9uYW1lKSBpcyBy ZXF1aXJlZCBvbiB0aGUKKwkgKiBwcmltYXJ5IHRvIGVuc3VyZSB0aGF0IHRoZSByb3dzIG5lZWRl ZCBieSB0aGUgc3RhbmRieSBhcmUgbm90IHJlbW92ZWQKKwkgKiBhZnRlciByZXN0YXJ0aW5nLCBz byB0aGF0IHRoZSBzeW5jaHJvbml6ZWQgc2xvdCBvbiB0aGUgc3RhbmRieSB3aWxsIG5vdAorCSAq IGJlIGludmFsaWRhdGVkLgorCSAqLworCWlmIChQcmltYXJ5U2xvdE5hbWUgPT0gTlVMTCB8fCBz dHJjbXAoUHJpbWFyeVNsb3ROYW1lLCAiIikgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyog dHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJCWVycm1zZygiZXhp dGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIp LAorCQkJCWVycmhpbnQoIiVzIG11c3QgYmUgZGVmaW5lZC4iLCAicHJpbWFyeV9zbG90X25hbWUi KSk7CisKKwkvKgorCSAqIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG11c3QgYmUgZW5hYmxlZCB0byBj b29wZXJhdGUgd2l0aCB0aGUgcGh5c2ljYWwKKwkgKiByZXBsaWNhdGlvbiBzbG90LCB3aGljaCBh bGxvd3MgaW5mb3JtaW5nIHRoZSBwcmltYXJ5IGFib3V0IHRoZSB4bWluIGFuZAorCSAqIGNhdGFs b2dfeG1pbiB2YWx1ZXMgb24gdGhlIHN0YW5kYnkuCisJICovCisJaWYgKCFob3Rfc3RhbmRieV9m ZWVkYmFjaykKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMg dmFyaWFibGUgbmFtZSAqLworCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25p emF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIiVzIG11c3Qg YmUgZW5hYmxlZC4iLCAiaG90X3N0YW5kYnlfZmVlZGJhY2siKSk7CisKKwkvKgorCSAqIExvZ2lj YWwgZGVjb2RpbmcgcmVxdWlyZXMgd2FsX2xldmVsID49IGxvZ2ljYWwgYW5kIHdlIGN1cnJlbnRs eSBvbmx5CisJICogc3luY2hyb25pemUgbG9naWNhbCBzbG90cy4KKwkgKi8KKwlpZiAod2FsX2xl dmVsIDwgV0FMX0xFVkVMX0xPR0lDQUwpCisJCWVyZXBvcnQoRVJST1IsCisJCS8qIHRyYW5zbGF0 b3I6ICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KKwkJCQllcnJtc2coImV4aXRpbmcgZnJv bSBzbG90IHN5bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwkJCQll cnJoaW50KCJ3YWxfbGV2ZWwgbXVzdCBiZSA+PSBsb2dpY2FsLiIpKTsKKworCS8qCisJICogVGhl IHByaW1hcnlfY29ubmluZm8gaXMgcmVxdWlyZWQgdG8gbWFrZSBjb25uZWN0aW9uIHRvIHByaW1h cnkgZm9yCisJICogZ2V0dGluZyBzbG90cyBpbmZvcm1hdGlvbi4KKwkgKi8KKwlpZiAoUHJpbWFy eUNvbm5JbmZvID09IE5VTEwgfHwgc3RyY21wKFByaW1hcnlDb25uSW5mbywgIiIpID09IDApCisJ CWVyZXBvcnQoRVJST1IsCisJCS8qIHRyYW5zbGF0b3I6ICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5h bWUgKi8KKwkJCQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9uaXphdGlvbiBkdWUg dG8gYmFkIGNvbmZpZ3VyYXRpb24iKSwKKwkJCQllcnJoaW50KCIlcyBtdXN0IGJlIGRlZmluZWQu IiwgInByaW1hcnlfY29ubmluZm8iKSk7CisKKwkvKgorCSAqIFRoZSBzbG90IHN5bmMgd29ya2Vy IG5lZWRzIGEgZGF0YWJhc2UgY29ubmVjdGlvbiBmb3Igd2FscmN2X2V4ZWMgdG8KKwkgKiB3b3Jr LgorCSAqLworCWRibmFtZSA9IHdhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oUHJpbWFy eUNvbm5JbmZvKTsKKwlpZiAoZGJuYW1lID09IE5VTEwpCisJCWVyZXBvcnQoRVJST1IsCisKKwkJ LyoKKwkJICogdHJhbnNsYXRvcjogJ2RibmFtZScgaXMgYSBzcGVjaWZpYyBvcHRpb247ICVzIGlz IGEgR1VDIHZhcmlhYmxlCisJCSAqIG5hbWUKKwkJICovCisJCQkJZXJybXNnKCJleGl0aW5nIGZy b20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJ ZXJyaGludCgiJ2RibmFtZScgbXVzdCBiZSBzcGVjaWZpZWQgaW4gJXMuIiwgInByaW1hcnlfY29u bmluZm8iKSk7CisKKwlyZXR1cm4gZGJuYW1lOworfQorCisvKgorICogUmUtcmVhZCB0aGUgY29u ZmlnIGZpbGUuCisgKgorICogSWYgYW55IG9mIHRoZSBzbG90IHN5bmMgR1VDcyBoYXZlIGNoYW5n ZWQsIGV4aXQgdGhlIHdvcmtlciBhbmQKKyAqIGxldCBpdCBnZXQgcmVzdGFydGVkIGJ5IHRoZSBw b3N0bWFzdGVyLgorICovCitzdGF0aWMgdm9pZAorc2xvdHN5bmNfcmVyZWFkX2NvbmZpZyh2b2lk KQoreworCWNoYXIJICAgKm9sZF9wcmltYXJ5X2Nvbm5pbmZvID0gcHN0cmR1cChQcmltYXJ5Q29u bkluZm8pOworCWNoYXIJICAgKm9sZF9wcmltYXJ5X3Nsb3RuYW1lID0gcHN0cmR1cChQcmltYXJ5 U2xvdE5hbWUpOworCWJvb2wJCW9sZF9ob3Rfc3RhbmRieV9mZWVkYmFjayA9IGhvdF9zdGFuZGJ5 X2ZlZWRiYWNrOworCWJvb2wJCWNvbm5pbmZvX2NoYW5nZWQ7CisJYm9vbAkJcHJpbWFyeV9zbG90 bmFtZV9jaGFuZ2VkOworCisJQ29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOworCVByb2Nlc3ND b25maWdGaWxlKFBHQ19TSUdIVVApOworCisJY29ubmluZm9fY2hhbmdlZCA9IHN0cmNtcChvbGRf cHJpbWFyeV9jb25uaW5mbywgUHJpbWFyeUNvbm5JbmZvKSAhPSAwOworCXByaW1hcnlfc2xvdG5h bWVfY2hhbmdlZCA9IHN0cmNtcChvbGRfcHJpbWFyeV9zbG90bmFtZSwgUHJpbWFyeVNsb3ROYW1l KSAhPSAwOworCisJaWYgKGNvbm5pbmZvX2NoYW5nZWQgfHwKKwkJcHJpbWFyeV9zbG90bmFtZV9j aGFuZ2VkIHx8CisJCShvbGRfaG90X3N0YW5kYnlfZmVlZGJhY2sgIT0gaG90X3N0YW5kYnlfZmVl ZGJhY2spKQorCXsKKwkJZXJlcG9ydChMT0csCisJCQkJZXJybXNnKCJzbG90IHN5bmMgd29ya2Vy IHdpbGwgcmVzdGFydCBiZWNhdXNlIG9mIgorCQkJCQkgICAiIGEgcGFyYW1ldGVyIGNoYW5nZSIp KTsKKwkJLyogVGhlIGV4aXQgY29kZSAxIHdpbGwgbWFrZSBwb3N0bWFzdGVyIHJlc3RhcnQgdGhp cyB3b3JrZXIgKi8KKwkJcHJvY19leGl0KDEpOworCX0KKworCXBmcmVlKG9sZF9wcmltYXJ5X2Nv bm5pbmZvKTsKKwlwZnJlZShvbGRfcHJpbWFyeV9zbG90bmFtZSk7Cit9CisKKy8qCisgKiBJbnRl cnJ1cHQgaGFuZGxlciBmb3IgbWFpbiBsb29wIG9mIHNsb3Qgc3luYyB3b3JrZXIuCisgKi8KK3N0 YXRpYyB2b2lkCitQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKFdhbFJlY2VpdmVyQ29ubiAqd3Jj b25uKQoreworCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisKKwlpZiAoU2h1dGRvd25SZXF1ZXN0 UGVuZGluZykKKwl7CisJCXdhbHJjdl9kaXNjb25uZWN0KHdyY29ubik7CisJCWVyZXBvcnQoTE9H LAorCQkJCWVycm1zZygicmVwbGljYXRpb24gc2xvdCBzeW5jIHdvcmtlciBpcyBzaHV0dGluZyBk b3duIgorCQkJCQkgICAiIG9uIHJlY2VpdmluZyBTSUdJTlQiKSk7CisJCXByb2NfZXhpdCgwKTsK Kwl9CisKKwlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZykKKwkJc2xvdHN5bmNfcmVyZWFkX2NvbmZp ZygpOworfQorCisvKgorICogQ2xlYW51cCBmdW5jdGlvbiBmb3IgbG9naWNhbCByZXBsaWNhdGlv biBsYXVuY2hlci4KKyAqCisgKiBDYWxsZWQgb24gbG9naWNhbCByZXBsaWNhdGlvbiBsYXVuY2hl ciBleGl0LgorICovCitzdGF0aWMgdm9pZAorc2xvdHN5bmNfd29ya2VyX29uZXhpdChpbnQgY29k ZSwgRGF0dW0gYXJnKQoreworCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4 KTsKKwlTbG90U3luY1dvcmtlci0+cGlkID0gSW52YWxpZFBpZDsKKwlTcGluTG9ja1JlbGVhc2Uo JlNsb3RTeW5jV29ya2VyLT5tdXRleCk7Cit9CisKKy8qCisgKiBTbGVlcCBmb3IgbG9uZyBlbm91 Z2ggdGhhdCB3ZSBiZWxpZXZlIGl0J3MgbGlrZWx5IHRoYXQgdGhlIHNsb3RzIG9uIHByaW1hcnkK KyAqIGdldCB1cGRhdGVkLgorICoKKyAqIElmIHRoZXJlIGlzIG5vIHNsb3QgYWN0aXZpdHkgdGhl IHdhaXQgdGltZSBiZXR3ZWVuIHN5bmMtY3ljbGVzIHdpbGwgZG91YmxlCisgKiAodG8gYSBtYXhp bXVtIG9mIDMwcykuIElmIHRoZXJlIGlzIHNvbWUgc2xvdCBhY3Rpdml0eSB0aGUgd2FpdCB0aW1l IGJldHdlZW4KKyAqIHN5bmMtY3ljbGVzIGlzIHJlc2V0IHRvIHRoZSBtaW5pbXVtICgyMDBtcyku CisgKi8KK3N0YXRpYyB2b2lkCit3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KGJvb2wgc29tZV9zbG90 X3VwZGF0ZWQsIGJvb2wgYW1fY2FzY2FkaW5nX3N0YW5kYnkpCit7CisJaW50CQkJcmM7CisKKwlp ZiAoYW1fY2FzY2FkaW5nX3N0YW5kYnkpCisJeworCQkvKgorCQkgKiBTbG90IHN5bmNocm9uaXph dGlvbiBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBvbiBjYXNjYWRpbmcKKwkJICogc3RhbmRi eS4gU28gaWYgd2UgYXJlIG9uIHRoZSBjYXNjYWRpbmcgc3RhbmRieSwgd2Ugd2lsbCBza2lwIHRo ZQorCQkgKiBzeW5jIGFuZCB0YWtlIGEgbG9uZ2VyIG5hcCBiZWZvcmUgd2UgY2hlY2sgYWdhaW4g d2hldGhlciB3ZSBhcmUKKwkJICogc3RpbGwgY2FzY2FkaW5nIHN0YW5kYnkgb3Igbm90LgorCQkg Ki8KKwkJc2xlZXBfbXMgPSBNQVhfV09SS0VSX05BUFRJTUVfTVM7CisJfQorCWVsc2UgaWYgKCFz b21lX3Nsb3RfdXBkYXRlZCkKKwl7CisJCS8qCisJCSAqIE5vIHNsb3RzIHdlcmUgdXBkYXRlZCwg c28gZG91YmxlIHRoZSBzbGVlcCB0aW1lLCBidXQgbm90IGJleW9uZCB0aGUKKwkJICogbWF4aW11 bSBhbGxvd2FibGUgdmFsdWUuCisJCSAqLworCQlzbGVlcF9tcyA9IE1pbihzbGVlcF9tcyAqIDIs IE1BWF9XT1JLRVJfTkFQVElNRV9NUyk7CisJfQorCWVsc2UKKwl7CisJCS8qCisJCSAqIFNvbWUg c2xvdHMgd2VyZSB1cGRhdGVkIHNpbmNlIHRoZSBsYXN0IHNsZWVwLCBzbyByZXNldCB0aGUgc2xl ZXAKKwkJICogdGltZS4KKwkJICovCisJCXNsZWVwX21zID0gTUlOX1dPUktFUl9OQVBUSU1FX01T OworCX0KKworCXJjID0gV2FpdExhdGNoKE15TGF0Y2gsCisJCQkJICAgV0xfTEFUQ0hfU0VUIHwg V0xfVElNRU9VVCB8IFdMX0VYSVRfT05fUE1fREVBVEgsCisJCQkJICAgc2xlZXBfbXMsCisJCQkJ ICAgV0FJVF9FVkVOVF9SRVBMX1NMT1RTWU5DX01BSU4pOworCisJaWYgKHJjICYgV0xfTEFUQ0hf U0VUKQorCQlSZXNldExhdGNoKE15TGF0Y2gpOworfQorCisvKgorICogVGhlIG1haW4gbG9vcCBv ZiBvdXIgd29ya2VyIHByb2Nlc3MuCisgKgorICogSXQgY29ubmVjdHMgdG8gdGhlIHByaW1hcnkg c2VydmVyLCBmZXRjaGVzIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMKKyAqIGluZm9ybWF0aW9uIHBl cmlvZGljYWxseSBpbiBvcmRlciB0byBjcmVhdGUgYW5kIHN5bmMgdGhlIHNsb3RzLgorICovCit2 b2lkCitSZXBsU2xvdFN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQoreworCVdhbFJlY2Vp dmVyQ29ubiAqd3Jjb25uID0gTlVMTDsKKwljaGFyCSAgICpkYm5hbWU7CisJYm9vbAkJYW1fY2Fz Y2FkaW5nX3N0YW5kYnk7CisJY2hhcgkgICAqZXJyOworCisJZXJlcG9ydChMT0csIGVycm1zZygi cmVwbGljYXRpb24gc2xvdCBzeW5jIHdvcmtlciBzdGFydGVkIikpOworCisJb25fc2htZW1fZXhp dChzbG90c3luY193b3JrZXJfb25leGl0LCAoRGF0dW0pIDApOworCisJU3BpbkxvY2tBY3F1aXJl KCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCisJQXNzZXJ0KFNsb3RTeW5jV29ya2VyLT5waWQg PT0gSW52YWxpZFBpZCk7CisKKwkvKgorCSAqIFN0YXJ0dXAgcHJvY2VzcyBzaWduYWxlZCB0aGUg c2xvdCBzeW5jIHdvcmtlciB0byBzdG9wLCBzbyBpZiBtZWFud2hpbGUKKwkgKiBwb3N0bWFzdGVy IGVuZGVkIHVwIHN0YXJ0aW5nIHRoZSB3b3JrZXIgYWdhaW4sIGV4aXQuCisJICovCisJaWYgKFNs b3RTeW5jV29ya2VyLT5zdG9wU2lnbmFsZWQpCisJeworCQlTcGluTG9ja1JlbGVhc2UoJlNsb3RT eW5jV29ya2VyLT5tdXRleCk7CisJCXByb2NfZXhpdCgwKTsKKwl9CisKKwkvKiBBZHZlcnRpc2Ug b3VyIFBJRCBzbyB0aGF0IHRoZSBzdGFydHVwIHByb2Nlc3MgY2FuIGtpbGwgdXMgb24gcHJvbW90 aW9uICovCisJU2xvdFN5bmNXb3JrZXItPnBpZCA9IE15UHJvY1BpZDsKKworCVNwaW5Mb2NrUmVs ZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKworCS8qIFNldHVwIHNpZ25hbCBoYW5kbGlu ZyAqLworCXBxc2lnbmFsKFNJR0hVUCwgU2lnbmFsSGFuZGxlckZvckNvbmZpZ1JlbG9hZCk7CisJ cHFzaWduYWwoU0lHSU5ULCBTaWduYWxIYW5kbGVyRm9yU2h1dGRvd25SZXF1ZXN0KTsKKwlwcXNp Z25hbChTSUdURVJNLCBkaWUpOworCUJhY2tncm91bmRXb3JrZXJVbmJsb2NrU2lnbmFscygpOwor CisJLyogTG9hZCB0aGUgbGlicHEtc3BlY2lmaWMgZnVuY3Rpb25zICovCisJbG9hZF9maWxlKCJs aWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCisJZGJuYW1lID0gdmFsaWRhdGVfcGFyYW1ldGVy c19hbmRfZ2V0X2RibmFtZSgpOworCisJLyoKKwkgKiBDb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBz cGVjaWZpZWQgYnkgdXNlciBpbiBwcmltYXJ5X2Nvbm5pbmZvLiBXZSBuZWVkCisJICogYSBkYXRh YmFzZSBjb25uZWN0aW9uIGZvciB3YWxyY3ZfZXhlYyB0byB3b3JrLiBQbGVhc2Ugc2VlIGNvbW1l bnRzIGF0b3AKKwkgKiBsaWJwcXJjdl9leGVjLgorCSAqLworCUJhY2tncm91bmRXb3JrZXJJbml0 aWFsaXplQ29ubmVjdGlvbihkYm5hbWUsIE5VTEwsIDApOworCisJLyoKKwkgKiBFc3RhYmxpc2gg dGhlIGNvbm5lY3Rpb24gdG8gdGhlIHByaW1hcnkgc2VydmVyIGZvciBzbG90cworCSAqIHN5bmNo cm9uaXphdGlvbi4KKwkgKi8KKwl3cmNvbm4gPSB3YWxyY3ZfY29ubmVjdChQcmltYXJ5Q29ubklu Zm8sIHRydWUsIGZhbHNlLAorCQkJCQkJCWNsdXN0ZXJfbmFtZVswXSA/IGNsdXN0ZXJfbmFtZSA6 ICJzbG90c3luY3dvcmtlciIsCisJCQkJCQkJJmVycik7CisJaWYgKCF3cmNvbm4pCisJCWVyZXBv cnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCisJCQkJ ZXJybXNnKCJjb3VsZCBub3QgY29ubmVjdCB0byB0aGUgcHJpbWFyeSBzZXJ2ZXI6ICVzIiwgZXJy KSk7CisKKwkvKgorCSAqIFVzaW5nIHRoZSBzcGVjaWZpZWQgcHJpbWFyeSBzZXJ2ZXIgY29ubmVj dGlvbiwgY2hlY2sgd2hldGhlciB3ZSBhcmUKKwkgKiBjYXNjYWRpbmcgc3RhbmRieSBhbmQgdmFs aWRhdGVzIHByaW1hcnlfc2xvdF9uYW1lIGZvcgorCSAqIG5vbi1jYXNjYWRpbmctc3RhbmRieXMu CisJICovCisJY2hlY2tfcHJpbWFyeV9pbmZvKHdyY29ubiwgJmFtX2Nhc2NhZGluZ19zdGFuZGJ5 KTsKKworCS8qIE1haW4gd2FpdCBsb29wICovCisJZm9yICg7OykKKwl7CisJCWJvb2wJCXNvbWVf c2xvdF91cGRhdGVkID0gZmFsc2U7CisKKwkJUHJvY2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyh3cmNv bm4pOworCisJCWlmICghYW1fY2FzY2FkaW5nX3N0YW5kYnkpCisJCQlzb21lX3Nsb3RfdXBkYXRl ZCA9IHN5bmNocm9uaXplX3Nsb3RzKHdyY29ubik7CisKKwkJd2FpdF9mb3Jfc2xvdF9hY3Rpdml0 eShzb21lX3Nsb3RfdXBkYXRlZCwgYW1fY2FzY2FkaW5nX3N0YW5kYnkpOworCisJCS8qCisJCSAq IElmIHRoZSBzdGFuZGJ5IHdhcyBwcm9tb3RlZCB0aGVuIHdoYXQgd2FzIHByZXZpb3VzbHkgYSBj YXNjYWRpbmcKKwkJICogc3RhbmRieSBtaWdodCBubyBsb25nZXIgYmUgb25lLCBzbyByZWNoZWNr IGVhY2ggdGltZS4KKwkJICovCisJCWlmIChhbV9jYXNjYWRpbmdfc3RhbmRieSkKKwkJCWNoZWNr X3ByaW1hcnlfaW5mbyh3cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisJfQorCisJLyoK KwkgKiBUaGUgc2xvdCBzeW5jIHdvcmtlciBjYW4gbm90IGdldCBoZXJlIGJlY2F1c2UgaXQgd2ls bCBvbmx5IHN0b3Agd2hlbiBpdAorCSAqIHJlY2VpdmVzIGEgU0lHSU5UIGZyb20gdGhlIGxvZ2lj YWwgcmVwbGljYXRpb24gbGF1bmNoZXIsIG9yIHdoZW4gdGhlcmUKKwkgKiBpcyBhbiBlcnJvci4K KwkgKi8KKwlBc3NlcnQoZmFsc2UpOworfQorCisvKgorICogSXMgY3VycmVudCBwcm9jZXNzIHRo ZSBzbG90IHN5bmMgd29ya2VyPworICovCitib29sCitJc0xvZ2ljYWxTbG90U3luY1dvcmtlcih2 b2lkKQoreworCXJldHVybiBTbG90U3luY1dvcmtlci0+cGlkID09IE15UHJvY1BpZDsKK30KKwor LyoKKyAqIFNodXQgZG93biB0aGUgc2xvdCBzeW5jIHdvcmtlci4KKyAqLwordm9pZAorU2h1dERv d25TbG90U3luYyh2b2lkKQoreworCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11 dGV4KTsKKworCVNsb3RTeW5jV29ya2VyLT5zdG9wU2lnbmFsZWQgPSB0cnVlOworCisJaWYgKFNs b3RTeW5jV29ya2VyLT5waWQgPT0gSW52YWxpZFBpZCkKKwl7CisJCVNwaW5Mb2NrUmVsZWFzZSgm U2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKwkJcmV0dXJuOworCX0KKworCWtpbGwoU2xvdFN5bmNX b3JrZXItPnBpZCwgU0lHSU5UKTsKKworCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXIt Pm11dGV4KTsKKworCS8qIFdhaXQgZm9yIGl0IHRvIGRpZSAqLworCWZvciAoOzspCisJeworCQlp bnQJCQlyYzsKKworCQkvKiBXYWl0IGEgYml0LCB3ZSBkb24ndCBleHBlY3QgdG8gaGF2ZSB0byB3 YWl0IGxvbmcgKi8KKwkJcmMgPSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkJICAgV0xfTEFUQ0hf U0VUIHwgV0xfVElNRU9VVCB8IFdMX0VYSVRfT05fUE1fREVBVEgsCisJCQkJCSAgIDEwTCwgV0FJ VF9FVkVOVF9CR1dPUktFUl9TSFVURE9XTik7CisKKwkJaWYgKHJjICYgV0xfTEFUQ0hfU0VUKQor CQl7CisJCQlSZXNldExhdGNoKE15TGF0Y2gpOworCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsK KwkJfQorCisJCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKworCQkv KiBJcyBpdCBnb25lPyAqLworCQlpZiAoU2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJbnZhbGlkUGlk KQorCQkJYnJlYWs7CisKKwkJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgp OworCX0KKworCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKK30KKwor LyoKKyAqIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHNsb3Qgc3luYyB3b3JrZXIgc2hhcmVkIG1l bW9yeQorICovCit2b2lkCitTbG90U3luY1dvcmtlclNobWVtSW5pdCh2b2lkKQoreworCVNpemUJ CXNpemU7CisJYm9vbAkJZm91bmQ7CisKKwlzaXplID0gc2l6ZW9mKFNsb3RTeW5jV29ya2VyQ3R4 U3RydWN0KTsKKwlzaXplID0gTUFYQUxJR04oc2l6ZSk7CisKKwlTbG90U3luY1dvcmtlciA9IChT bG90U3luY1dvcmtlckN0eFN0cnVjdCAqKQorCQlTaG1lbUluaXRTdHJ1Y3QoIlNsb3QgU3luYyBX b3JrZXIgRGF0YSIsIHNpemUsICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJbWVtc2V0 KFNsb3RTeW5jV29ya2VyLCAwLCBzaXplKTsKKwkJU2xvdFN5bmNXb3JrZXItPnBpZCA9IEludmFs aWRQaWQ7CisJCVNwaW5Mb2NrSW5pdCgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKwl9Cit9CisK Ky8qCisgKiBSZWdpc3RlciB0aGUgYmFja2dyb3VuZCB3b3JrZXIgZm9yIHNsb3RzIHN5bmNocm9u aXphdGlvbiBwcm92aWRlZAorICogZW5hYmxlX3N5bmNzbG90IGlzIE9OLgorICovCit2b2lkCitT bG90U3luY1dvcmtlclJlZ2lzdGVyKHZvaWQpCit7CisJQmFja2dyb3VuZFdvcmtlciBiZ3c7CisK KwlpZiAoIWVuYWJsZV9zeW5jc2xvdCkKKwl7CisJCWVyZXBvcnQoTE9HLAorCQkJCWVycm1zZygi c2tpcHBpbmcgc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKKwkJCQllcnJkZXRhaWwoImVuYWJsZV9z eW5jc2xvdCBpcyBkaXNhYmxlZC4iKSk7CisJCXJldHVybjsKKwl9CisKKwltZW1zZXQoJmJndywg MCwgc2l6ZW9mKGJndykpOworCisJLyogV2UgbmVlZCBkYXRhYmFzZSBjb25uZWN0aW9uIHdoaWNo IG5lZWRzIHNoYXJlZC1tZW1vcnkgYWNjZXNzIGFzIHdlbGwgKi8KKwliZ3cuYmd3X2ZsYWdzID0g QkdXT1JLRVJfU0hNRU1fQUNDRVNTIHwKKwkJQkdXT1JLRVJfQkFDS0VORF9EQVRBQkFTRV9DT05O RUNUSU9OOworCisJLyogU3RhcnQgYXMgc29vbiBhcyBhIGNvbnNpc3RlbnQgc3RhdGUgaGFzIGJl ZW4gcmVhY2hlZCBpbiBhIGhvdCBzdGFuZGJ5ICovCisJYmd3LmJnd19zdGFydF90aW1lID0gQmdX b3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieTsKKworCXNucHJpbnRmKGJndy5i Z3dfbGlicmFyeV9uYW1lLCBNQVhQR1BBVEgsICJwb3N0Z3JlcyIpOworCXNucHJpbnRmKGJndy5i Z3dfZnVuY3Rpb25fbmFtZSwgQkdXX01BWExFTiwgIlJlcGxTbG90U3luY1dvcmtlck1haW4iKTsK KwlzbnByaW50ZihiZ3cuYmd3X25hbWUsIEJHV19NQVhMRU4sCisJCQkgInJlcGxpY2F0aW9uIHNs b3Qgc3luYyB3b3JrZXIiKTsKKwlzbnByaW50ZihiZ3cuYmd3X3R5cGUsIEJHV19NQVhMRU4sCisJ CQkgInNsb3Qgc3luYyB3b3JrZXIiKTsKKworCWJndy5iZ3dfcmVzdGFydF90aW1lID0gQkdXX0RF RkFVTFRfUkVTVEFSVF9JTlRFUlZBTDsKKwliZ3cuYmd3X25vdGlmeV9waWQgPSAwOworCWJndy5i Z3dfbWFpbl9hcmcgPSAoRGF0dW0pIDA7CisKKwlSZWdpc3RlckJhY2tncm91bmRXb3JrZXIoJmJn dyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5kZXggNjk2Mzc2NDAwZS4uMzNmOTU3YjAyZiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgogI2luY2x1ZGUgInBnc3RhdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3Qu aCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdl L2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2Mu aCIKQEAgLTEwMyw3ICsxMDQsNiBAQCBpbnQJCQltYXhfcmVwbGljYXRpb25fc2xvdHMgPSAxMDsg LyogdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcGxpY2F0aW9uCiAJCQkJCQkJCQkJICogc2xvdHMg Ki8KIAogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90U2htZW1FeGl0KGludCBjb2RlLCBEYXR1 bSBhcmcpOwotc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKHZvaWQpOwog c3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcFB0cihSZXBsaWNhdGlvblNsb3QgKnNsb3Qp OwogCiAvKiBpbnRlcm5hbCBwZXJzaXN0ZW5jeSBmdW5jdGlvbnMgKi8KQEAgLTI1MCwxMSArMjUw LDEyIEBAIFJlcGxpY2F0aW9uU2xvdFZhbGlkYXRlTmFtZShjb25zdCBjaGFyICpuYW1lLCBpbnQg ZWxldmVsKQogICogICAgIHVzZXIgd2lsbCBvbmx5IGdldCBjb21taXQgcHJlcGFyZWQuCiAgKiBm YWlsb3ZlcjogSWYgZW5hYmxlZCwgYWxsb3dzIHRoZSBzbG90IHRvIGJlIHN5bmNlZCB0byBwaHlz aWNhbCBzdGFuZGJ5cyBzbwogICogICAgIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBjYW4gYmUg cmVzdW1lZCBhZnRlciBmYWlsb3Zlci4KKyAqIHN5bmNlZDogVHJ1ZSBpZiB0aGUgc2xvdCBpcyBj cmVhdGVkIGJ5IGEgc2xvdHN5bmMgd29ya2VyLgogICovCiB2b2lkCiBSZXBsaWNhdGlvblNsb3RD cmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZpYywKIAkJCQkJICBSZXBsaWNh dGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0ZW5jeSwKLQkJCQkJICBib29sIHR3b19waGFzZSwg Ym9vbCBmYWlsb3ZlcikKKwkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3ZlciwgYm9v bCBzeW5jZWQpCiB7CiAJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTlVMTDsKIAlpbnQJCQlpOwpA QCAtMzE1LDYgKzMxNiw3IEBAIFJlcGxpY2F0aW9uU2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1l LCBib29sIGRiX3NwZWNpZmljLAogCXNsb3QtPmRhdGEudHdvX3BoYXNlID0gdHdvX3BoYXNlOwog CXNsb3QtPmRhdGEudHdvX3BoYXNlX2F0ID0gSW52YWxpZFhMb2dSZWNQdHI7CiAJc2xvdC0+ZGF0 YS5mYWlsb3ZlciA9IGZhaWxvdmVyOworCXNsb3QtPmRhdGEuc3luY2VkID0gc3luY2VkOwogCiAJ LyogYW5kIHRoZW4gZGF0YSBvbmx5IHByZXNlbnQgaW4gc2hhcmVkIG1lbW9yeSAqLwogCXNsb3Qt Pmp1c3RfZGlydGllZCA9IGZhbHNlOwpAQCAtNjgwLDYgKzY4MiwxNiBAQCBSZXBsaWNhdGlvblNs b3REcm9wKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgbm93YWl0KQogCiAJUmVwbGljYXRpb25TbG90 QWNxdWlyZShuYW1lLCBub3dhaXQpOwogCisJLyoKKwkgKiBEbyBub3QgYWxsb3cgdXNlcnMgdG8g ZHJvcCB0aGUgc2xvdHMgd2hpY2ggYXJlIGN1cnJlbnRseSBiZWluZyBzeW5jZWQKKwkgKiBmcm9t IHRoZSBwcmltYXJ5IHRvIHRoZSBzdGFuZGJ5LgorCSAqLworCWlmIChSZWNvdmVyeUluUHJvZ3Jl c3MoKSAmJiBNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5zeW5jZWQpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwK KwkJCQllcnJtc2coImNhbm5vdCBkcm9wIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwgbmFtZSks CisJCQkJZXJyZGV0YWlsKCJUaGlzIHNsb3QgaXMgYmVpbmcgc3luY2VkIGZyb20gdGhlIHByaW1h cnkgc2VydmVyLiIpKTsKKwogCVJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCgpOwogfQogCkBA IC02OTksNiArNzExLDE2IEBAIFJlcGxpY2F0aW9uU2xvdEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUs IGJvb2wgZmFpbG92ZXIpCiAJCQkJZXJybXNnKCJjYW5ub3QgdXNlICVzIHdpdGggYSBwaHlzaWNh bCByZXBsaWNhdGlvbiBzbG90IiwKIAkJCQkJICAgIkFMVEVSX1JFUExJQ0FUSU9OX1NMT1QiKSk7 CiAKKwkvKgorCSAqIERvIG5vdCBhbGxvdyB1c2VycyB0byBhbHRlciB0aGUgc2xvdHMgd2hpY2gg YXJlIGN1cnJlbnRseSBiZWluZyBzeW5jZWQKKwkgKiBmcm9tIHRoZSBwcmltYXJ5IHRvIHRoZSBz dGFuZGJ5LgorCSAqLworCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSAmJiBNeVJlcGxpY2F0aW9u U2xvdC0+ZGF0YS5zeW5jZWQpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RF X09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQllcnJtc2coImNhbm5vdCBh bHRlciByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsIG5hbWUpLAorCQkJCWVycmRldGFpbCgiVGhp cyBzbG90IGlzIGJlaW5nIHN5bmNlZCBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlci4iKSk7CisKIAlT cGluTG9ja0FjcXVpcmUoJk15UmVwbGljYXRpb25TbG90LT5tdXRleCk7CiAJTXlSZXBsaWNhdGlv blNsb3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsKIAlTcGluTG9ja1JlbGVhc2UoJk15UmVw bGljYXRpb25TbG90LT5tdXRleCk7CkBAIC03MTEsNyArNzMzLDcgQEAgUmVwbGljYXRpb25TbG90 QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBmYWlsb3ZlcikKIC8qCiAgKiBQZXJtYW5lbnRs eSBkcm9wIHRoZSBjdXJyZW50bHkgYWNxdWlyZWQgcmVwbGljYXRpb24gc2xvdC4KICAqLwotc3Rh dGljIHZvaWQKK3ZvaWQKIFJlcGxpY2F0aW9uU2xvdERyb3BBY3F1aXJlZCh2b2lkKQogewogCVJl cGxpY2F0aW9uU2xvdCAqc2xvdCA9IE15UmVwbGljYXRpb25TbG90OwpAQCAtODY3LDggKzg4OSw4 IEBAIFJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSh2b2lkKQogfQogCiAvKgotICogQ29udmVydCBh IHNsb3QgdGhhdCdzIG1hcmtlZCBhcyBSU19FUEhFTUVSQUwgdG8gYSBSU19QRVJTSVNURU5UIHNs b3QsCi0gKiBndWFyYW50ZWVpbmcgaXQgd2lsbCBiZSB0aGVyZSBhZnRlciBhbiBldmVudHVhbCBj cmFzaC4KKyAqIENvbnZlcnQgYSBzbG90IHRoYXQncyBtYXJrZWQgYXMgUlNfRVBIRU1FUkFMIG9y IFJTX1RFTVBPUkFSWSB0byBhCisgKiBSU19QRVJTSVNURU5UIHNsb3QsIGd1YXJhbnRlZWluZyBp dCB3aWxsIGJlIHRoZXJlIGFmdGVyIGFuIGV2ZW50dWFsIGNyYXNoLgogICovCiB2b2lkCiBSZXBs aWNhdGlvblNsb3RQZXJzaXN0KHZvaWQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9zbG90ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jCmlu ZGV4IGM5M2RiYTg1NWIuLjg0M2FlOGNkNjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Nsb3RmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5j cy5jCkBAIC00Myw3ICs0Myw3IEBAIGNyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KGNo YXIgKm5hbWUsIGJvb2wgaW1tZWRpYXRlbHlfcmVzZXJ2ZSwKIAkvKiBhY3F1aXJlIHJlcGxpY2F0 aW9uIHNsb3QsIHRoaXMgd2lsbCBjaGVjayBmb3IgY29uZmxpY3RpbmcgbmFtZXMgKi8KIAlSZXBs aWNhdGlvblNsb3RDcmVhdGUobmFtZSwgZmFsc2UsCiAJCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RF TVBPUkFSWSA6IFJTX1BFUlNJU1RFTlQsIGZhbHNlLAotCQkJCQkJICBmYWxzZSk7CisJCQkJCQkg IGZhbHNlLCBmYWxzZSAvKiBzeW5jZWQgKi8gKTsKIAogCWlmIChpbW1lZGlhdGVseV9yZXNlcnZl KQogCXsKQEAgLTEzNiw3ICsxMzYsNyBAQCBjcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90 KGNoYXIgKm5hbWUsIGNoYXIgKnBsdWdpbiwKIAkgKi8KIAlSZXBsaWNhdGlvblNsb3RDcmVhdGUo bmFtZSwgdHJ1ZSwKIAkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfRVBIRU1F UkFMLCB0d29fcGhhc2UsCi0JCQkJCQkgIGZhaWxvdmVyKTsKKwkJCQkJCSAgZmFpbG92ZXIsIGZh bHNlIC8qIHN5bmNlZCAqLyApOwogCiAJLyoKIAkgKiBDcmVhdGUgbG9naWNhbCBkZWNvZGluZyBj b250ZXh0IHRvIGZpbmQgc3RhcnQgcG9pbnQgb3IsIGlmIHdlIGRvbid0CkBAIC0yMzcsNyArMjM3 LDcgQEAgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KFBHX0ZVTkNUSU9OX0FSR1MpCiBEYXR1bQog cGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0jZGVmaW5lIFBH X0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTIDE2CisjZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElP Tl9TTE9UU19DT0xTIDE3CiAJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8g KikgZmNpbmZvLT5yZXN1bHRpbmZvOwogCVhMb2dSZWNQdHIJY3VycmxzbjsKIAlpbnQJCQlzbG90 bm87CkBAIC00MTgsMjEgKzQxOCwyMyBAQCBwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoUEdfRlVO Q1RJT05fQVJHUykKIAkJCQkJYnJlYWs7CiAKIAkJCQljYXNlIFJTX0lOVkFMX1dBTF9SRU1PVkVE OgotCQkJCQl2YWx1ZXNbaSsrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oIndhbF9yZW1vdmVkIik7 CisJCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRleHREYXR1bShTTE9UX0lOVkFMX1dBTF9S RU1PVkVEX1RFWFQpOwogCQkJCQlicmVhazsKIAogCQkJCWNhc2UgUlNfSU5WQUxfSE9SSVpPTjoK LQkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKCJyb3dzX3JlbW92ZWQiKTsK KwkJCQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKFNMT1RfSU5WQUxfSE9SSVpP Tl9URVhUKTsKIAkJCQkJYnJlYWs7CiAKIAkJCQljYXNlIFJTX0lOVkFMX1dBTF9MRVZFTDoKLQkJ CQkJdmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKCJ3YWxfbGV2ZWxfaW5zdWZmaWNp ZW50Iik7CisJCQkJCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRleHREYXR1bShTTE9UX0lOVkFM X1dBTF9MRVZFTF9URVhUKTsKIAkJCQkJYnJlYWs7CiAJCQl9CiAJCX0KIAogCQl2YWx1ZXNbaSsr XSA9IEJvb2xHZXREYXR1bShzbG90X2NvbnRlbnRzLmRhdGEuZmFpbG92ZXIpOwogCisJCXZhbHVl c1tpKytdID0gQm9vbEdldERhdHVtKHNsb3RfY29udGVudHMuZGF0YS5zeW5jZWQpOworCiAJCUFz c2VydChpID09IFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTKTsKIAogCQl0dXBsZXN0b3Jl X3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jCmluZGV4IDczYTdkOGY5NmMuLmQ0MjBh ODMzY2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyZnVu Y3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMKQEAg LTM0NSw2ICszNDUsMjIgQEAgR2V0V2FsUmN2Rmx1c2hSZWNQdHIoWExvZ1JlY1B0ciAqbGF0ZXN0 Q2h1bmtTdGFydCwgVGltZUxpbmVJRCAqcmVjZWl2ZVRMSSkKIAlyZXR1cm4gcmVjcHRyOwogfQog CisvKgorICogUmV0dXJucyB0aGUgbGF0ZXN0IHJlcG9ydGVkIGVuZCBvZiBXQUwgb24gdGhlIHNl bmRlcgorICovCitYTG9nUmVjUHRyCitHZXRXYWxSY3ZMYXRlc3RXYWxFbmQoKQoreworCVdhbFJj dkRhdGEgKndhbHJjdiA9IFdhbFJjdjsKKwlYTG9nUmVjUHRyCXJlY3B0cjsKKworCVNwaW5Mb2Nr QWNxdWlyZSgmd2FscmN2LT5tdXRleCk7CisJcmVjcHRyID0gd2FscmN2LT5sYXRlc3RXYWxFbmQ7 CisJU3BpbkxvY2tSZWxlYXNlKCZ3YWxyY3YtPm11dGV4KTsKKworCXJldHVybiByZWNwdHI7Cit9 CisKIC8qCiAgKiBSZXR1cm5zIHRoZSBsYXN0KzEgYnl0ZSBwb3NpdGlvbiB0aGF0IHdhbHJlY2Vp dmVyIGhhcyB3cml0dGVuLgogICogVGhpcyByZXR1cm5zIGEgcmVjZW50bHkgd3JpdHRlbiB2YWx1 ZSB3aXRob3V0IHRha2luZyBhIGxvY2suCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi93YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmlu ZGV4IDc3YzhiYWEzMmEuLmY3NTNhZWQzNDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRl ci5jCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIK ICNpbmNsdWRlICJyZXBsaWNhdGlvbi9kZWNvZGUuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9s b2dpY2FsLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oIgogI2luY2x1 ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbmFwYnVpbGQu aCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zeW5jcmVwLmgiCkBAIC0yNDMsNyArMjQ0LDYgQEAg c3RhdGljIHZvaWQgV2FsU25kU2h1dGRvd24odm9pZCkgcGdfYXR0cmlidXRlX25vcmV0dXJuKCk7 CiBzdGF0aWMgdm9pZCBYTG9nU2VuZFBoeXNpY2FsKHZvaWQpOwogc3RhdGljIHZvaWQgWExvZ1Nl bmRMb2dpY2FsKHZvaWQpOwogc3RhdGljIHZvaWQgV2FsU25kRG9uZShXYWxTbmRTZW5kRGF0YUNh bGxiYWNrIHNlbmRfZGF0YSk7Ci1zdGF0aWMgWExvZ1JlY1B0ciBHZXRTdGFuZGJ5Rmx1c2hSZWNQ dHIoVGltZUxpbmVJRCAqdGxpKTsKIHN0YXRpYyB2b2lkIElkZW50aWZ5U3lzdGVtKHZvaWQpOwog c3RhdGljIHZvaWQgVXBsb2FkTWFuaWZlc3Qodm9pZCk7CiBzdGF0aWMgYm9vbCBIYW5kbGVVcGxv YWRNYW5pZmVzdFBhY2tldChTdHJpbmdJbmZvIGJ1Ziwgb2ZmX3QgKm9mZnNldCwKQEAgLTEyMjQs NyArMTIyNCw3IEBAIENyZWF0ZVJlcGxpY2F0aW9uU2xvdChDcmVhdGVSZXBsaWNhdGlvblNsb3RD bWQgKmNtZCkKIAl7CiAJCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShjbWQtPnNsb3RuYW1lLCBmYWxz ZSwKIAkJCQkJCQkgIGNtZC0+dGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfUEVSU0lTVEVO VCwKLQkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CisJCQkJCQkJICBmYWxzZSwgZmFsc2UsIGZhbHNl IC8qIHN5bmNlZCAqLyApOwogCiAJCWlmIChyZXNlcnZlX3dhbCkKIAkJewpAQCAtMTI1NSw3ICsx MjU1LDcgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAq Y21kKQogCQkgKi8KIAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIHRydWUs CiAJCQkJCQkJICBjbWQtPnRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwK LQkJCQkJCQkgIHR3b19waGFzZSwgZmFpbG92ZXIpOworCQkJCQkJCSAgdHdvX3BoYXNlLCBmYWls b3ZlciwgZmFsc2UgLyogc3luY2VkICovICk7CiAKIAkJLyoKIAkJICogRG8gb3B0aW9ucyBjaGVj ayBlYXJseSBzbyB0aGF0IHdlIGNhbiBiYWlsIGJlZm9yZSBjYWxsaW5nIHRoZQpAQCAtMzM3NSwx NCArMzM3NSwxNyBAQCBXYWxTbmREb25lKFdhbFNuZFNlbmREYXRhQ2FsbGJhY2sgc2VuZF9kYXRh KQogfQogCiAvKgotICogUmV0dXJucyB0aGUgbGF0ZXN0IHBvaW50IGluIFdBTCB0aGF0IGhhcyBi ZWVuIHNhZmVseSBmbHVzaGVkIHRvIGRpc2ssIGFuZAotICogY2FuIGJlIHNlbnQgdG8gdGhlIHN0 YW5kYnkuIFRoaXMgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW4gaW4gcmVjb3ZlcnksCi0gKiBp ZS4gd2UncmUgc3RyZWFtaW5nIHRvIGEgY2FzY2FkZWQgc3RhbmRieS4KKyAqIFJldHVybnMgdGhl IGxhdGVzdCBwb2ludCBpbiBXQUwgdGhhdCBoYXMgYmVlbiBzYWZlbHkgZmx1c2hlZCB0byBkaXNr LgorICogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlbiBpbiByZWNvdmVyeS4KKyAqCisg KiBUaGlzIGlzIGNhbGxlZCBlaXRoZXIgYnkgY2FzY2FkaW5nIHdhbHNlbmRlciB0byBmaW5kIFdB TCBwb3N0aW9uIHRvCisgKiBiZSBzZW50IHRvIGEgY2FzY2FkZWQgc3RhbmRieSBvciBieSBhIHNs b3Qgc3luYyB3b3JrZXIgdG8gdmFsaWRhdGUKKyAqIHJlbW90ZSBzbG90J3MgbHNuIGJlZm9yZSBz eW5jaW5nIGl0IGxvY2FsbHkuCiAgKgogICogQXMgYSBzaWRlLWVmZmVjdCwgKnRsaSBpcyB1cGRh dGVkIHRvIHRoZSBUTEkgb2YgdGhlIGxhc3QKICAqIHJlcGxheWVkIFdBTCByZWNvcmQuCiAgKi8K LXN0YXRpYyBYTG9nUmVjUHRyCitYTG9nUmVjUHRyCiBHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoVGlt ZUxpbmVJRCAqdGxpKQogewogCVhMb2dSZWNQdHIJcmVwbGF5UHRyOwpAQCAtMzM5MSw2ICszMzk0 LDggQEAgR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQgKnRsaSkKIAlUaW1lTGluZUlE CXJlY2VpdmVUTEk7CiAJWExvZ1JlY1B0cglyZXN1bHQ7CiAKKwlBc3NlcnQoYW1fY2FzY2FkaW5n X3dhbHNlbmRlciB8fCBJc0xvZ2ljYWxTbG90U3luY1dvcmtlcigpKTsKKwogCS8qCiAJICogV2Ug Y2FuIHNhZmVseSBzZW5kIHdoYXQncyBhbHJlYWR5IGJlZW4gcmVwbGF5ZWQuIEFsc28sIGlmIHdh bHJlY2VpdmVyCiAJICogaXMgc3RyZWFtaW5nIFdBTCBmcm9tIHRoZSBzYW1lIHRpbWVsaW5lLCB3 ZSBjYW4gc2VuZCBhbnl0aGluZyB0aGF0IGl0CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9pcGNpLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMKaW5kZXggNzA4 NGUxODg2MS4uOTI1YWM2Yzk0MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv aXBjaS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYwpAQCAtMzgsNiArMzgs NyBAQAogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlv bi93YWxyZWNlaXZlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlci5oIgorI2lu Y2x1ZGUgInJlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv YnVmbWdyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9kc20uaCIKICNpbmNsdWRlICJzdG9yYWdlL2Rz bV9yZWdpc3RyeS5oIgpAQCAtMzQ3LDYgKzM0OCw3IEBAIENyZWF0ZU9yQXR0YWNoU2htZW1TdHJ1 Y3RzKHZvaWQpCiAJV2FsU3VtbWFyaXplclNobWVtSW5pdCgpOwogCVBnQXJjaFNobWVtSW5pdCgp OwogCUFwcGx5TGF1bmNoZXJTaG1lbUluaXQoKTsKKwlTbG90U3luY1dvcmtlclNobWVtSW5pdCgp OwogCiAJLyoKIAkgKiBTZXQgdXAgb3RoZXIgbW9kdWxlcyB0aGF0IG5lZWQgc29tZSBzaGFyZWQg bWVtb3J5IHNwYWNlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9z cmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMKaW5kZXggMWEzNGJkMzcxNS4uZThjNTMwYWNkOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5k L3Rjb3AvcG9zdGdyZXMuYwpAQCAtMzI4Niw2ICszMjg2LDE3IEBAIFByb2Nlc3NJbnRlcnJ1cHRz KHZvaWQpCiAJCQkgKi8KIAkJCXByb2NfZXhpdCgxKTsKIAkJfQorCQllbHNlIGlmIChJc0xvZ2lj YWxTbG90U3luY1dvcmtlcigpKQorCQl7CisJCQllbG9nKERFQlVHMSwKKwkJCQkgInJlcGxpY2F0 aW9uIHNsb3Qgc3luYyB3b3JrZXIgaXMgc2h1dHRpbmcgZG93biBkdWUgdG8gYWRtaW5pc3RyYXRv ciBjb21tYW5kIik7CisKKwkJCS8qCisJCQkgKiBTbG90IHN5bmMgd29ya2VyIGNhbiBiZSBzdG9w cGVkIGF0IGFueSB0aW1lLiBVc2UgZXhpdCBzdGF0dXMgMQorCQkJICogc28gdGhlIGJhY2tncm91 bmQgd29ya2VyIGlzIHJlc3RhcnRlZC4KKwkJCSAqLworCQkJcHJvY19leGl0KDEpOworCQl9CiAJ CWVsc2UgaWYgKElzQmFja2dyb3VuZFdvcmtlcikKIAkJCWVyZXBvcnQoRkFUQUwsCiAJCQkJCShl cnJjb2RlKEVSUkNPREVfQURNSU5fU0hVVERPV04pLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgYi9zcmMvYmFja2VuZC91dGlscy9h Y3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dAppbmRleCBhNWRmODM1ZGQ0Li4zZTYyMDMzMjJh IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVz LnR4dAorKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4 dApAQCAtNTMsNiArNTMsNyBAQCBMT0dJQ0FMX0FQUExZX01BSU4JIldhaXRpbmcgaW4gbWFpbiBs b29wIG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gYXBwbHkgcHJvY2Vzcy4iCiBMT0dJQ0FMX0xBVU5D SEVSX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gbGF1 bmNoZXIgcHJvY2Vzcy4iCiBMT0dJQ0FMX1BBUkFMTEVMX0FQUExZX01BSU4JIldhaXRpbmcgaW4g bWFpbiBsb29wIG9mIGxvZ2ljYWwgcmVwbGljYXRpb24gcGFyYWxsZWwgYXBwbHkgcHJvY2Vzcy4i CiBSRUNPVkVSWV9XQUxfU1RSRUFNCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBzdGFydHVwIHBy b2Nlc3MgZm9yIFdBTCB0byBhcnJpdmUsIGR1cmluZyBzdHJlYW1pbmcgcmVjb3ZlcnkuIgorUkVQ TF9TTE9UU1lOQ19NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBzbG90IHN5bmMgd29ya2Vy LiIKIFNZU0xPR0dFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBzeXNsb2dnZXIgcHJv Y2Vzcy4iCiBXQUxfUkVDRUlWRVJfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgV0FMIHJl Y2VpdmVyIHByb2Nlc3MuIgogV0FMX1NFTkRFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBv ZiBXQUwgc2VuZGVyIHByb2Nlc3MuIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRl eCA3ZmU1ODUxOGQ3Li5mZTA0NGMxNmRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9t aXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YwpAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxsYXVuY2hl ci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlv bi9zeW5jcmVwLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAj aW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xhcmdlX29iamVj dC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcGdfc2htZW0uaCIKQEAgLTIwNTQsNiArMjA1NSwxNSBA QCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlOVUxMLCBOVUxM LCBOVUxMCiAJfSwKIAorCXsKKwkJeyJlbmFibGVfc3luY3Nsb3QiLCBQR0NfUE9TVE1BU1RFUiwg UkVQTElDQVRJT05fU1RBTkRCWSwKKwkJCWdldHRleHRfbm9vcCgiRW5hYmxlcyBhIHBoeXNpY2Fs IHN0YW5kYnkgdG8gc3luY2hyb25pemUgbG9naWNhbCBmYWlsb3ZlciBzbG90cyBmcm9tIHRoZSBw cmltYXJ5IHNlcnZlci4iKSwKKwkJfSwKKwkJJmVuYWJsZV9zeW5jc2xvdCwKKwkJZmFsc2UsCisJ CU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCiAJLyogRW5kLW9mLWxpc3QgbWFya2VyICovCiAJewog CQl7TlVMTCwgMCwgMCwgTlVMTCwgTlVMTH0sIE5VTEwsIGZhbHNlLCBOVUxMLCBOVUxMLCBOVUxM CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXgg ZGExMGI0M2RhYy4uMzg2ODY5NGQzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMzYxLDYgKzM2MSw3IEBACiAjd2FsX3JldHJpZXZlX3Jl dHJ5X2ludGVydmFsID0gNXMJIyB0aW1lIHRvIHdhaXQgYmVmb3JlIHJldHJ5aW5nIHRvCiAJCQkJ CSMgcmV0cmlldmUgV0FMIGFmdGVyIGEgZmFpbGVkIGF0dGVtcHQKICNyZWNvdmVyeV9taW5fYXBw bHlfZGVsYXkgPSAwCQkjIG1pbmltdW0gZGVsYXkgZm9yIGFwcGx5aW5nIGNoYW5nZXMgZHVyaW5n IHJlY292ZXJ5CisjZW5hYmxlX3N5bmNzbG90ID0gb2ZmCQkJIyBlbmFibGVzIHNsb3Qgc3luY2hy b25pemF0aW9uIG9uIHRoZSBwaHlzaWNhbCBzdGFuZGJ5IGZyb20gdGhlIHByaW1hcnkKIAogIyAt IFN1YnNjcmliZXJzIC0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZTZlNGJiZGZiOS4u MTBlNmExZTk1MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMTEyMyw5ICsxMTEyMyw5 IEBACiAgIHByb25hbWUgPT4gJ3BnX2dldF9yZXBsaWNhdGlvbl9zbG90cycsIHByb3Jvd3MgPT4g JzEwJywgcHJvaXNzdHJpY3QgPT4gJ2YnLAogICBwcm9yZXRzZXQgPT4gJ3QnLCBwcm92b2xhdGls ZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCiAgIHByb2FyZ3R5cGVzID0+ICcnLAot ICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSx0ZXh0LG9pZCxib29sLGJvb2wsaW50NCx4 aWQseGlkLHBnX2xzbixwZ19sc24sdGV4dCxpbnQ4LGJvb2wsdGV4dCxib29sfScsCi0gIHByb2Fy Z21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBwcm9hcmdu YW1lcyA9PiAne3Nsb3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9pZCx0ZW1wb3JhcnksYWN0 aXZlLGFjdGl2ZV9waWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9sc24sY29uZmlybWVkX2Zs dXNoX2xzbix3YWxfc3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNlLGNvbmZsaWN0X3JlYXNv bixmYWlsb3Zlcn0nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSx0ZXh0LG9pZCxi b29sLGJvb2wsaW50NCx4aWQseGlkLHBnX2xzbixwZ19sc24sdGV4dCxpbnQ4LGJvb2wsdGV4dCxi b29sLGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHNsb3RfdHlw ZSxkYXRvaWQsdGVtcG9yYXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0YWxvZ194bWluLHJl c3RhcnRfbHNuLGNvbmZpcm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZlX3dhbF9zaXplLHR3 b19waGFzZSxjb25mbGljdF9yZWFzb24sZmFpbG92ZXIsc3luY2VkfScsCiAgIHByb3NyYyA9PiAn cGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzJyB9LAogeyBvaWQgPT4gJzM3ODYnLCBkZXNjciA9PiAn c2V0IHVwIGEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90JywKICAgcHJvbmFtZSA9PiAncGdfY3Jl YXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCcsIHByb3ZvbGF0aWxlID0+ICd2JywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCBiL3NyYy9pbmNsdWRlL3Bv c3RtYXN0ZXIvYmd3b3JrZXIuaAppbmRleCAyMmZjNDllYzI3Li43MDkyZmM3MmM2IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKKysrIGIvc3JjL2luY2x1ZGUv cG9zdG1hc3Rlci9iZ3dvcmtlci5oCkBAIC03OSw2ICs3OSw3IEBAIHR5cGVkZWYgZW51bQogCUJn V29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0LAogCUJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0 YXRlLAogCUJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZCwKKwlCZ1dvcmtlclN0YXJ0X0Nv bnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5LAogfSBCZ1dvcmtlclN0YXJ0VGltZTsKIAogI2RlZmlu ZSBCR1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMCTYwCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9s b2dpY2Fsd29ya2VyLmgKaW5kZXggYTE4ZDc5ZDFiMi4uYmJlMDQyMjZkYiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oCisrKyBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaApAQCAtMjIsNiArMjIsNyBAQCBleHRlcm4gdm9p ZCBUYWJsZXN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKTsKIAogZXh0ZXJuIGJvb2wgSXNM b2dpY2FsV29ya2VyKHZvaWQpOwogZXh0ZXJuIGJvb2wgSXNMb2dpY2FsUGFyYWxsZWxBcHBseVdv cmtlcih2b2lkKTsKK2V4dGVybiBib29sIElzTG9naWNhbFNsb3RTeW5jV29ya2VyKHZvaWQpOwog CiBleHRlcm4gdm9pZCBIYW5kbGVQYXJhbGxlbEFwcGx5TWVzc2FnZUludGVycnVwdCh2b2lkKTsK IGV4dGVybiB2b2lkIEhhbmRsZVBhcmFsbGVsQXBwbHlNZXNzYWdlcyh2b2lkKTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3Nsb3QuaAppbmRleCA1ODVjY2JiNTA0Li5mODFiZWY5ZTQyIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c2xvdC5oCkBAIC01Miw2ICs1MiwxNCBAQCB0eXBlZGVmIGVudW0gUmVwbGljYXRpb25TbG90SW52 YWxpZGF0aW9uQ2F1c2UKIAlSU19JTlZBTF9XQUxfTEVWRUwsCiB9IFJlcGxpY2F0aW9uU2xvdElu dmFsaWRhdGlvbkNhdXNlOwogCisvKgorICogVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgJ2NvbmZs aWN0X3JlYXNvbicgcmV0dXJuZWQgaW4KKyAqIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cy4KKyAq LworI2RlZmluZSBTTE9UX0lOVkFMX1dBTF9SRU1PVkVEX1RFWFQgIndhbF9yZW1vdmVkIgorI2Rl ZmluZSBTTE9UX0lOVkFMX0hPUklaT05fVEVYVCAgICAgInJvd3NfcmVtb3ZlZCIKKyNkZWZpbmUg U0xPVF9JTlZBTF9XQUxfTEVWRUxfVEVYVCAgICJ3YWxfbGV2ZWxfaW5zdWZmaWNpZW50IgorCiAv KgogICogT24tRGlzayBkYXRhIG9mIGEgcmVwbGljYXRpb24gc2xvdCwgcHJlc2VydmVkIGFjcm9z cyByZXN0YXJ0cy4KICAqLwpAQCAtMTEyLDYgKzEyMCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBSZXBs aWNhdGlvblNsb3RQZXJzaXN0ZW50RGF0YQogCS8qIHBsdWdpbiBuYW1lICovCiAJTmFtZURhdGEJ cGx1Z2luOwogCisJLyoKKwkgKiBXYXMgdGhpcyBzbG90IHN5bmNocm9uaXplZCBmcm9tIHRoZSBw cmltYXJ5IHNlcnZlcj8KKwkgKi8KKwljaGFyCQlzeW5jZWQ7CisKIAkvKgogCSAqIElzIHRoaXMg YSBmYWlsb3ZlciBzbG90IChzeW5jIGNhbmRpZGF0ZSBmb3IgcGh5c2ljYWwgc3RhbmRieXMpPyBP bmx5CiAJICogcmVsZXZhbnQgZm9yIGxvZ2ljYWwgc2xvdHMgb24gdGhlIHByaW1hcnkgc2VydmVy LgpAQCAtMjI0LDkgKzIzNywxMSBAQCBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RzU2htZW1J bml0KHZvaWQpOwogLyogbWFuYWdlbWVudCBvZiBpbmRpdmlkdWFsIHNsb3RzICovCiBleHRlcm4g dm9pZCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVj aWZpYywKIAkJCQkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0ZW5jeSwK LQkJCQkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3Zlcik7CisJCQkJCQkJCSAgYm9v bCB0d29fcGhhc2UsIGJvb2wgZmFpbG92ZXIsCisJCQkJCQkJCSAgYm9vbCBzeW5jZWQpOwogZXh0 ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90UGVyc2lzdCh2b2lkKTsKIGV4dGVybiB2b2lkIFJlcGxp Y2F0aW9uU2xvdERyb3AoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dhaXQpOworZXh0ZXJuIHZv aWQgUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKHZvaWQpOwogZXh0ZXJuIHZvaWQgUmVwbGlj YXRpb25TbG90QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBmYWlsb3Zlcik7CiAKIGV4dGVy biB2b2lkIFJlcGxpY2F0aW9uU2xvdEFjcXVpcmUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dh aXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaCBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKaW5kZXggZjU2NmE5OWJhMS4u MWRmNDNiMjVjMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2 ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCkBAIC0yNzgs NiArMjc4LDEyIEBAIHR5cGVkZWYgdm9pZCAoKndhbHJjdl9nZXRfc2VuZGVyaW5mb19mbikgKFdh bFJlY2VpdmVyQ29ubiAqY29ubiwKICAqLwogdHlwZWRlZiBjaGFyICooKndhbHJjdl9pZGVudGlm eV9zeXN0ZW1fZm4pIChXYWxSZWNlaXZlckNvbm4gKmNvbm4sCiAJCQkJCQkJCQkJCVRpbWVMaW5l SUQgKnByaW1hcnlfdGxpKTsKKy8qCisgKiB3YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZv X2ZuCisgKgorICogUmV0dXJucyB0aGUgZGJpZCBmcm9tIHRoZSBwcmltYXJ5X2Nvbm5pbmZvCisg Ki8KK3R5cGVkZWYgY2hhciAqKCp3YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvX2ZuKSAo Y29uc3QgY2hhciAqY29ubmluZm8pOwogCiAvKgogICogd2FscmN2X3NlcnZlcl92ZXJzaW9uX2Zu CkBAIC00MDMsNiArNDA5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV2FsUmVjZWl2ZXJGdW5jdGlvbnNU eXBlCiAJd2FscmN2X2dldF9jb25uaW5mb19mbiB3YWxyY3ZfZ2V0X2Nvbm5pbmZvOwogCXdhbHJj dl9nZXRfc2VuZGVyaW5mb19mbiB3YWxyY3ZfZ2V0X3NlbmRlcmluZm87CiAJd2FscmN2X2lkZW50 aWZ5X3N5c3RlbV9mbiB3YWxyY3ZfaWRlbnRpZnlfc3lzdGVtOworCXdhbHJjdl9nZXRfZGJuYW1l X2Zyb21fY29ubmluZm9fZm4gd2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbzsKIAl3YWxy Y3Zfc2VydmVyX3ZlcnNpb25fZm4gd2FscmN2X3NlcnZlcl92ZXJzaW9uOwogCXdhbHJjdl9yZWFk dGltZWxpbmVoaXN0b3J5ZmlsZV9mbiB3YWxyY3ZfcmVhZHRpbWVsaW5laGlzdG9yeWZpbGU7CiAJ d2FscmN2X3N0YXJ0c3RyZWFtaW5nX2ZuIHdhbHJjdl9zdGFydHN0cmVhbWluZzsKQEAgLTQyOCw2 ICs0MzUsOCBAQCBleHRlcm4gUEdETExJTVBPUlQgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpX YWxSZWNlaXZlckZ1bmN0aW9uczsKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2dldF9z ZW5kZXJpbmZvKGNvbm4sIHNlbmRlcl9ob3N0LCBzZW5kZXJfcG9ydCkKICNkZWZpbmUgd2FscmN2 X2lkZW50aWZ5X3N5c3RlbShjb25uLCBwcmltYXJ5X3RsaSkgXAogCVdhbFJlY2VpdmVyRnVuY3Rp b25zLT53YWxyY3ZfaWRlbnRpZnlfc3lzdGVtKGNvbm4sIHByaW1hcnlfdGxpKQorI2RlZmluZSB3 YWxyY3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvKGNvbm5pbmZvKSBcCisJV2FsUmVjZWl2ZXJG dW5jdGlvbnMtPndhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oY29ubmluZm8pCiAjZGVm aW5lIHdhbHJjdl9zZXJ2ZXJfdmVyc2lvbihjb25uKSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMt PndhbHJjdl9zZXJ2ZXJfdmVyc2lvbihjb25uKQogI2RlZmluZSB3YWxyY3ZfcmVhZHRpbWVsaW5l aGlzdG9yeWZpbGUoY29ubiwgdGxpLCBmaWxlbmFtZSwgY29udGVudCwgc2l6ZSkgXApAQCAtNDg1 LDYgKzQ5NCw3IEBAIGV4dGVybiB2b2lkIFJlcXVlc3RYTG9nU3RyZWFtaW5nKFRpbWVMaW5lSUQg dGxpLCBYTG9nUmVjUHRyIHJlY3B0ciwKIAkJCQkJCQkJIGJvb2wgY3JlYXRlX3RlbXBfc2xvdCk7 CiBleHRlcm4gWExvZ1JlY1B0ciBHZXRXYWxSY3ZGbHVzaFJlY1B0cihYTG9nUmVjUHRyICpsYXRl c3RDaHVua1N0YXJ0LCBUaW1lTGluZUlEICpyZWNlaXZlVExJKTsKIGV4dGVybiBYTG9nUmVjUHRy IEdldFdhbFJjdldyaXRlUmVjUHRyKHZvaWQpOworZXh0ZXJuIFhMb2dSZWNQdHIgR2V0V2FsUmN2 TGF0ZXN0V2FsRW5kKHZvaWQpOwogZXh0ZXJuIGludAlHZXRSZXBsaWNhdGlvbkFwcGx5RGVsYXko dm9pZCk7CiBleHRlcm4gaW50CUdldFJlcGxpY2F0aW9uVHJhbnNmZXJMYXRlbmN5KHZvaWQpOwog CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaCBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCmluZGV4IDFiNThkNTBiM2IuLjI3NmQ4OTEz YWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCisrKyBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCkBAIC0xMiw2ICsxMiw4IEBACiAj aWZuZGVmIF9XQUxTRU5ERVJfSAogI2RlZmluZSBfV0FMU0VOREVSX0gKIAorI2luY2x1ZGUgImFj Y2Vzcy94bG9nZGVmcy5oIgorCiAvKgogICogV2hhdCB0byBkbyB3aXRoIGEgc25hcHNob3QgaW4g Y3JlYXRlIHJlcGxpY2F0aW9uIHNsb3QgY29tbWFuZC4KICAqLwpAQCAtNDUsNiArNDcsNyBAQCBl eHRlcm4gdm9pZCBXYWxTbmRJbml0U3RvcHBpbmcodm9pZCk7CiBleHRlcm4gdm9pZCBXYWxTbmRX YWl0U3RvcHBpbmcodm9pZCk7CiBleHRlcm4gdm9pZCBIYW5kbGVXYWxTbmRJbml0U3RvcHBpbmco dm9pZCk7CiBleHRlcm4gdm9pZCBXYWxTbmRScXN0RmlsZVJlbG9hZCh2b2lkKTsKK2V4dGVybiBY TG9nUmVjUHRyIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1lTGluZUlEICp0bGkpOwogCiAvKgog ICogUmVtZW1iZXIgdGhhdCB3ZSB3YW50IHRvIHdha2V1cCB3YWxzZW5kZXJzIGxhdGVyCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmluZGV4IDUxNWFlZmQ1MTkuLjIx Njc3MjA5NzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRl cm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCkBA IC0yMzcsNiArMjM3LDExIEBAIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGluX3JlbW90ZV90cmFu c2FjdGlvbjsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgSW5pdGlhbGl6aW5nQXBwbHlXb3Jr ZXI7CiAKKy8qIFNsb3Qgc3luYyB3b3JrZXIgb2JqZWN0cyAqLworZXh0ZXJuIFBHRExMSU1QT1JU IGNoYXIgKlByaW1hcnlDb25uSW5mbzsKK2V4dGVybiBQR0RMTElNUE9SVCBjaGFyICpQcmltYXJ5 U2xvdE5hbWU7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBlbmFibGVfc3luY3Nsb3Q7CisKIGV4 dGVybiB2b2lkIGxvZ2ljYWxyZXBfd29ya2VyX2F0dGFjaChpbnQgc2xvdCk7CiBleHRlcm4gTG9n aWNhbFJlcFdvcmtlciAqbG9naWNhbHJlcF93b3JrZXJfZmluZChPaWQgc3ViaWQsIE9pZCByZWxp ZCwKIAkJCQkJCQkJCQkJCWJvb2wgb25seV9ydW5uaW5nKTsKQEAgLTMyNSw2ICszMzAsMTEgQEAg ZXh0ZXJuIHZvaWQgcGFfZGVjcl9hbmRfd2FpdF9zdHJlYW1fYmxvY2sodm9pZCk7CiBleHRlcm4g dm9pZCBwYV94YWN0X2ZpbmlzaChQYXJhbGxlbEFwcGx5V29ya2VySW5mbyAqd2luZm8sCiAJCQkJ CQkgICBYTG9nUmVjUHRyIHJlbW90ZV9sc24pOwogCitleHRlcm4gdm9pZCBSZXBsU2xvdFN5bmNX b3JrZXJNYWluKERhdHVtIG1haW5fYXJnKTsKK2V4dGVybiB2b2lkIFNsb3RTeW5jV29ya2VyUmVn aXN0ZXIodm9pZCk7CitleHRlcm4gdm9pZCBTaHV0RG93blNsb3RTeW5jKHZvaWQpOworZXh0ZXJu IHZvaWQgU2xvdFN5bmNXb3JrZXJTaG1lbUluaXQodm9pZCk7CisKICNkZWZpbmUgaXNQYXJhbGxl bEFwcGx5V29ya2VyKHdvcmtlcikgKCh3b3JrZXIpLT5pbl91c2UgJiYgXAogCQkJCQkJCQkJICAg KHdvcmtlciktPnR5cGUgPT0gV09SS0VSVFlQRV9QQVJBTExFTF9BUFBMWSkKICNkZWZpbmUgaXNU YWJsZXN5bmNXb3JrZXIod29ya2VyKSAoKHdvcmtlciktPmluX3VzZSAmJiBcCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwg Yi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwK aW5kZXggNjQ2MjkzYzM5ZS4uYWIxZTM5OTdlYyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3Zl cnkvdC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCisrKyBiL3NyYy90ZXN0L3Jl Y292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbApAQCAtODQsNiArODQs MTcwIEBAIGlzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAJInQiLAogCSdsb2dpY2FsIHNsb3Qg aGFzIGZhaWxvdmVyIHRydWUgb24gdGhlIHB1Ymxpc2hlcicpOwogCi0kc3Vic2NyaWJlcjEtPnNh ZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEiKTsK KyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc19teXN1YjEgRU5BQkxFIik7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgbG9naWNhbCBmYWlsb3ZlciBzbG90cyBvbiB0 aGUgc3RhbmRieQorIyBDb25maWd1cmUgc3RhbmRieTEgdG8gcmVwbGljYXRlIGFuZCBzeW5jaHJv bml6ZSBsb2dpY2FsIHNsb3RzIGNvbmZpZ3VyZWQKKyMgZm9yIGZhaWxvdmVyIG9uIHRoZSBwcmlt YXJ5CisjCisjICAgICAgICAgICAgICBmYWlsb3ZlciBzbG90IGxzdWIxX3Nsb3QtPnwgLS0tLT4g c3Vic2NyaWJlcjEgKGNvbm5lY3RlZCB2aWEgbG9naWNhbCByZXBsaWNhdGlvbikKKyMgcHJpbWFy eSAtLS0+ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorIyAgICAgICAgICAgICAgcGh5c2lj YWwgc2xvdCBzYjFfc2xvdC0tLT58IC0tLS0+IHN0YW5kYnkxIChjb25uZWN0ZWQgdmlhIHN0cmVh bWluZyByZXBsaWNhdGlvbikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgbHN1YjFfc2xvdChzeW5jZWRfc2xvdCkKKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK215ICRwcmltYXJ5ID0g JHB1Ymxpc2hlcjsKK215ICRiYWNrdXBfbmFtZSA9ICdiYWNrdXAnOworJHByaW1hcnktPmJhY2t1 cCgkYmFja3VwX25hbWUpOworCisjIENyZWF0ZSBhIHN0YW5kYnkKK215ICRzdGFuZGJ5MSA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRieTEnKTsKKyRzdGFuZGJ5MS0+aW5p dF9mcm9tX2JhY2t1cCgKKwkkcHJpbWFyeSwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcg PT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEpOworCitteSAkY29ubnN0cl8xID0gJHByaW1hcnkt PmNvbm5zdHI7Ciskc3RhbmRieTEtPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBx cSgKK2VuYWJsZV9zeW5jc2xvdCA9IHRydWUKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KK3By aW1hcnlfc2xvdF9uYW1lID0gJ3NiMV9zbG90JworcHJpbWFyeV9jb25uaW5mbyA9ICckY29ubnN0 cl8xIGRibmFtZT1wb3N0Z3JlcycKKykpOworCiskcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLAor CXF7U0VMRUNUIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdzYjFfc2xvdCcp O30pOworCitteSAkc3RhbmRieTFfY29ubmluZm8gPSAkc3RhbmRieTEtPmNvbm5zdHIgLiAnIGRi bmFtZT1wb3N0Z3Jlcyc7CitteSAkb2Zmc2V0ID0gLXMgJHN0YW5kYnkxLT5sb2dmaWxlOworCisj IFN0YXJ0IHRoZSBzdGFuZGJ5IHNvIHRoYXQgc2xvdCBzeW5jaW5nIGNhbiBiZWdpbgorJHN0YW5k YnkxLT5zdGFydDsKKworIyBHZW5lcmF0ZSBhIGxvZyB0byB0cmlnZ2VyIHRoZSB3YWxzZW5kZXIg dG8gc2VuZCBtZXNzYWdlcyB0byB0aGUgd2FscmVjZWl2ZXIKKyMgd2hpY2ggd2lsbCB1cGRhdGUg V2FsUmN2LT5sYXRlc3RXYWxFbmQgdG8gYSB2YWxpZCBudW1iZXIuCiskcHJpbWFyeS0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgcGdfbG9nX3N0YW5kYnlfc25hcHNob3QoKTsiKTsKKwor IyBXYWl0IGZvciB0aGUgc3RhbmRieSB0byBmaW5pc2ggc3luYworJHN0YW5kYnkxLT53YWl0X2Zv cl9sb2coCisJcXIvTE9HOiAoIFtBLVowLTldKzopPyBuZXdseSBjcmVhdGVkIHNsb3QgXCJsc3Vi MV9zbG90XCIgaXMgc3luYy1yZWFkeSBub3cvLAorCSRvZmZzZXQpOworCisjIENvbmZpcm0gdGhh dCB0aGUgbG9naWNhbCBmYWlsb3ZlciBzbG90IGlzIGNyZWF0ZWQgb24gdGhlIHN0YW5kYnkgYW5k IGlzCisjIGZsYWdnZWQgYXMgJ3N5bmNlZCcKK2lzKCRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJcXtTRUxFQ1QgZmFpbG92ZXIsIHN5bmNlZCBGUk9NIHBnX3JlcGxpY2F0aW9uX3Ns b3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90Jzt9KSwKKwkidHx0IiwKKwknbG9naWNh bCBzbG90IGhhcyBmYWlsb3ZlciBhcyB0cnVlIGFuZCBzeW5jZWQgYXMgdHJ1ZSBvbiBzdGFuZGJ5 Jyk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIFRlc3QgdG8gY29uZmlybSB0aGF0IHJlc3RhcnRfbHNuIGFuZCBjb25maXJtZWRfZmx1c2hf bHNuIG9mIHRoZSBsb2dpY2FsIHNsb3QKKyMgb24gdGhlIHByaW1hcnkgaXMgc3luY2VkIHRvIHRo ZSBzdGFuZGJ5CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCisjIEluc2VydCBkYXRhIG9uIHRoZSBwcmltYXJ5CiskcHJpbWFyeS0+c2FmZV9wc3Fs KAorCSdwb3N0Z3JlcycsIHFxWworCUNSRUFURSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZ IEtFWSk7CisJSU5TRVJUIElOVE8gdGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDEw KTsKK10pOworCisjIFN1YnNjcmliZSB0byB0aGUgbmV3IHRhYmxlIGRhdGEgYW5kIHdhaXQgZm9y IGl0IHRvIGFycml2ZQorJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXFb CisJQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19teXN1YjEgUkVGUkVTSCBQVUJMSUNBVElPTjsKK10pOworCiskc3Vi c2NyaWJlcjEtPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jOworCisjIERvIG5vdCBhbGxvdyBh bnkgZnVydGhlciBhZHZhbmNlbWVudCBvZiB0aGUgcmVzdGFydF9sc24gYW5kCisjIGNvbmZpcm1l ZF9mbHVzaF9sc24gZm9yIHRoZSBsc3ViMV9zbG90LgorJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBESVNBQkxFIik7 CisKKyMgV2FpdCBmb3IgdGhlIHJlcGxpY2F0aW9uIHNsb3QgdG8gYmVjb21lIGluYWN0aXZlIG9u IHRoZSBwdWJsaXNoZXIKKyRwcmltYXJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAorCSdwb3N0Z3Jlcycs CisJIlNFTEVDVCBDT1VOVCgqKSBGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMg V0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnIEFORCBhY3RpdmU9J2YnIiwKKwkxKTsKKwor IyBHZXQgdGhlIHJlc3RhcnRfbHNuIGZvciB0aGUgbG9naWNhbCBzbG90IGxzdWIxX3Nsb3Qgb24g dGhlIHByaW1hcnkKK215ICRwcmltYXJ5X3Jlc3RhcnRfbHNuID0gJHByaW1hcnktPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgcmVzdGFydF9sc24gZnJvbSBwZ19yZXBsaWNhdGlvbl9z bG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7Iik7CisKKyMgR2V0IHRoZSBjb25m aXJtZWRfZmx1c2hfbHNuIGZvciB0aGUgbG9naWNhbCBzbG90IGxzdWIxX3Nsb3Qgb24gdGhlIHBy aW1hcnkKK215ICRwcmltYXJ5X2ZsdXNoX2xzbiA9ICRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiU0VMRUNUIGNvbmZpcm1lZF9mbHVzaF9sc24gZnJvbSBwZ19yZXBsaWNhdGlvbl9z bG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7Iik7CisKKyMgQ29uZmlybSB0aGF0 IHJlc3RhcnRfbHNuIGFuZCBvZiBjb25maXJtZWRfZmx1c2hfbHNuIGxzdWIxX3Nsb3Qgc2xvdCBh cmUgc3luY2VkCisjIHRvIHRoZSBzdGFuZGJ5CitvayggJHN0YW5kYnkxLT5wb2xsX3F1ZXJ5X3Vu dGlsKAorCQkncG9zdGdyZXMnLAorCQkiU0VMRUNUICckcHJpbWFyeV9yZXN0YXJ0X2xzbicgPSBy ZXN0YXJ0X2xzbiBBTkQgJyRwcmltYXJ5X2ZsdXNoX2xzbicgPSBjb25maXJtZWRfZmx1c2hfbHNu IGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3Qn OyIpLAorCSdyZXN0YXJ0X2xzbiBhbmQgY29uZmlybWVkX2ZsdXNoX2xzbiBvZiBzbG90IGxzdWIx X3Nsb3Qgc3luY2VkIHRvIHN0YW5kYnknKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0aGF0IGEgc3luY2hyb25pemVkIHNsb3Qg Y2FuIG5vdCBiZSBkZWNvZGVkLCBhbHRlcmVkIG9yIGRyb3BwZWQgYnkgdGhlIHVzZXIKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgRGlzYWJs ZSBob3Rfc3RhbmRieV9mZWVkYmFjayB0ZW1wb3JhcmlseSB0byBzdG9wIHNsb3Qgc3luYyB3b3Jr ZXIgb3RoZXJ3aXNlCisjIHRoZSBjb25jZXJuZWQgdGVzdGluZyBzY2VuYXJpb3MgaGVyZSBtYXkg YmUgaW50ZXJydXB0ZWQgYnkgZGlmZmVyZW50IGVycm9yOgorIyAnRVJST1I6ICByZXBsaWNhdGlv biBzbG90IGlzIGFjdGl2ZSBmb3IgUElEIC4uJworJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgJ0FMVEVSIFNZU1RFTSBTRVQgaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmY7Jyk7Cisk c3RhbmRieTEtPnJlc3RhcnQ7CisKKyMgQXR0ZW1wdGluZyB0byBwZXJmb3JtIGxvZ2ljYWwgZGVj b2Rpbmcgb24gYSBzeW5jZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yCitteSAoJHJl c3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKKwki c2VsZWN0ICogZnJvbSBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMoJ2xzdWIxX3Nsb3QnLE5V TEwsTlVMTCk7Iik7Citvaygkc3RkZXJyID1+IC9FUlJPUjogIGNhbm5vdCB1c2UgcmVwbGljYXRp b24gc2xvdCAibHN1YjFfc2xvdCIgZm9yIGxvZ2ljYWwgZGVjb2RpbmcvLAorCSJsb2dpY2FsIGRl Y29kaW5nIGlzIG5vdCBhbGxvd2VkIG9uIHN5bmNlZCBzbG90Iik7CisKKyMgQXR0ZW1wdGluZyB0 byBhbHRlciBhIHN5bmNlZCBzbG90IHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3IKKygkcmVzdWx0 LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgKKyAgICAncG9zdGdyZXMnLAor ICAgIHFxW0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QgbHN1YjFfc2xvdCAoZmFpbG92ZXIpO10sCisg ICAgcmVwbGljYXRpb24gPT4gJ2RhdGFiYXNlJyk7Citvaygkc3RkZXJyID1+IC9FUlJPUjogIGNh bm5vdCBhbHRlciByZXBsaWNhdGlvbiBzbG90ICJsc3ViMV9zbG90Ii8sCisJInN5bmNlZCBzbG90 IG9uIHN0YW5kYnkgY2Fubm90IGJlIGFsdGVyZWQiKTsKKworIyBBdHRlbXB0aW5nIHRvIGRyb3Ag YSBzeW5jZWQgc2xvdCBzaG91bGQgcmVzdWx0IGluIGFuIGVycm9yCisoJHJlc3VsdCwgJHN0ZG91 dCwgJHN0ZGVycikgPSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHBnX2Ry b3BfcmVwbGljYXRpb25fc2xvdCgnbHN1YjFfc2xvdCcpOyIpOworb2soJHN0ZGVyciA9fiAvRVJS T1I6ICBjYW5ub3QgZHJvcCByZXBsaWNhdGlvbiBzbG90ICJsc3ViMV9zbG90Ii8sCisJInN5bmNl ZCBzbG90IG9uIHN0YW5kYnkgY2Fubm90IGJlIGRyb3BwZWQiKTsKKworIyBFbmFibGUgaG90X3N0 YW5kYnlfZmVlZGJhY2sgYW5kIHJlc3RhcnQgc3RhbmRieQorJHN0YW5kYnkxLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgJ0FMVEVSIFNZU1RFTSBTRVQgaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbjsn KTsKKyRzdGFuZGJ5MS0+cmVzdGFydDsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUHJvbW90ZSB0aGUgc3RhbmRieTEgdG8gcHJpbWFyeS4g Q29uZmlybSB0aGF0OgorIyBhKSB0aGUgc2xvdCAnbHN1YjFfc2xvdCcgaXMgcmV0YWluZWQgb24g dGhlIG5ldyBwcmltYXJ5CisjIGIpIGxvZ2ljYWwgcmVwbGljYXRpb24gZm9yIHJlZ3Jlc3NfbXlz dWIxIGlzIHJlc3VtZWQgc3VjY2Vzc2Z1bGx5IGFmdGVyIGZhaWxvdmVyCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworJHN0YW5kYnkxLT5wcm9tb3Rl OworCisjIFVwZGF0ZSBzdWJzY3JpcHRpb24gd2l0aCB0aGUgbmV3IHByaW1hcnkncyBjb25uZWN0 aW9uIGluZm8KKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX215c3ViMSBDT05ORUNUSU9OICckc3RhbmRieTFfY29ubmluZm8n OworCSBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgRU5BQkxFOyAiKTsKKworIyBD b25maXJtIHRoZSBzeW5jZWQgc2xvdCAnbHN1YjFfc2xvdCcgaXMgcmV0YWluZWQgb24gdGhlIG5l dyBwcmltYXJ5Citpcygkc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNU IHNsb3RfbmFtZSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICds c3ViMV9zbG90Jzt9KSwKKwknbHN1YjFfc2xvdCcsCisJJ3N5bmNlZCBzbG90IHJldGFpbmVkIG9u IHRoZSBuZXcgcHJpbWFyeScpOworCisjIEluc2VydCBkYXRhIG9uIHRoZSBuZXcgcHJpbWFyeQor JHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2ludCBT RUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDExLCAyMCk7Iik7Ciskc3RhbmRieTEtPndhaXRfZm9yX2Nh dGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7CisKKyMgQ29uZmlybSB0aGF0IGRhdGEgaW4gdGFiX2lu dCByZXBsaWNhdGVkIG9uIHRoZSBzdWJzY3JpYmVyCitpcyggJHN1YnNjcmliZXIxLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgY291bnQoKikgRlJPTSB0YWJfaW50O30pLAorCSIyMCIs CisJJ2RhdGEgcmVwbGljYXRlZCBmcm9tIHRoZSBuZXcgcHJpbWFyeScpOwogCiBkb25lX3Rlc3Rp bmcoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNTc4ODRkM2ZlYy4uY2I0 M2JhMWMzZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE0NzQsOCArMTQ3 NCw5IEBAIHBnX3JlcGxpY2F0aW9uX3Nsb3RzfCBTRUxFQ1QgbC5zbG90X25hbWUsCiAgICAgbC5z YWZlX3dhbF9zaXplLAogICAgIGwudHdvX3BoYXNlLAogICAgIGwuY29uZmxpY3RfcmVhc29uLAot ICAgIGwuZmFpbG92ZXIKLSAgIEZST00gKHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygpIGwoc2xv dF9uYW1lLCBwbHVnaW4sIHNsb3RfdHlwZSwgZGF0b2lkLCB0ZW1wb3JhcnksIGFjdGl2ZSwgYWN0 aXZlX3BpZCwgeG1pbiwgY2F0YWxvZ194bWluLCByZXN0YXJ0X2xzbiwgY29uZmlybWVkX2ZsdXNo X2xzbiwgd2FsX3N0YXR1cywgc2FmZV93YWxfc2l6ZSwgdHdvX3BoYXNlLCBjb25mbGljdF9yZWFz b24sIGZhaWxvdmVyKQorICAgIGwuZmFpbG92ZXIsCisgICAgbC5zeW5jZWQKKyAgIEZST00gKHBn X2dldF9yZXBsaWNhdGlvbl9zbG90cygpIGwoc2xvdF9uYW1lLCBwbHVnaW4sIHNsb3RfdHlwZSwg ZGF0b2lkLCB0ZW1wb3JhcnksIGFjdGl2ZSwgYWN0aXZlX3BpZCwgeG1pbiwgY2F0YWxvZ194bWlu LCByZXN0YXJ0X2xzbiwgY29uZmlybWVkX2ZsdXNoX2xzbiwgd2FsX3N0YXR1cywgc2FmZV93YWxf c2l6ZSwgdHdvX3BoYXNlLCBjb25mbGljdF9yZWFzb24sIGZhaWxvdmVyLCBzeW5jZWQpCiAgICAg IExFRlQgSk9JTiBwZ19kYXRhYmFzZSBkIE9OICgobC5kYXRvaWQgPSBkLm9pZCkpKTsKIHBnX3Jv bGVzfCBTRUxFQ1QgcGdfYXV0aGlkLnJvbG5hbWUsCiAgICAgcGdfYXV0aGlkLnJvbHN1cGVyLApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dAppbmRleCA5YmU3YWNhMmI4Li5mYWUw NTlkMzg5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3ZpZXdzLm91dApAQCAtMTMzLDgg KzEzMyw5IEBAIHNlbGVjdCBuYW1lLCBzZXR0aW5nIGZyb20gcGdfc2V0dGluZ3Mgd2hlcmUgbmFt ZSBsaWtlICdlbmFibGUlJzsKICBlbmFibGVfc2VsZl9qb2luX3JlbW92YWwgICAgICAgfCBvbgog IGVuYWJsZV9zZXFzY2FuICAgICAgICAgICAgICAgICB8IG9uCiAgZW5hYmxlX3NvcnQgICAgICAg ICAgICAgICAgICAgIHwgb24KKyBlbmFibGVfc3luY3Nsb3QgICAgICAgICAgICAgICAgfCBvZmYK ICBlbmFibGVfdGlkc2NhbiAgICAgICAgICAgICAgICAgfCBvbgotKDIzIHJvd3MpCisoMjQgcm93 cykKIAogLS0gVGhlcmUgYXJlIGFsd2F5cyB3YWl0IGV2ZW50IGRlc2NyaXB0aW9ucyBmb3IgdmFy aW91cyB0eXBlcy4KIHNlbGVjdCB0eXBlLCBjb3VudCgqKSA+IDAgYXMgb2sgRlJPTSBwZ193YWl0 X2V2ZW50cwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA1MTNjNzcwMmZmLi5kNTI3YmY5 MThiIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjMyNSw2ICsyMzI1LDcgQEAgUmVs b2NhdGlvbkJ1ZmZlckluZm8KIFJlbHB0ckZyZWVQYWdlQnRyZWUKIFJlbHB0ckZyZWVQYWdlTWFu YWdlcgogUmVscHRyRnJlZVBhZ2VTcGFuTGVhZGVyCitSZW1vdGVTbG90CiBSZW5hbWVTdG10CiBS ZW9wZW5QdHJUeXBlCiBSZW9yZGVyQnVmZmVyCkBAIC0yNTg1LDYgKzI1ODYsNyBAQCBTbGFiQmxv Y2sKIFNsYWJDb250ZXh0CiBTbGFiU2xvdAogU2xvdE51bWJlcgorU2xvdFN5bmNXb3JrZXJDdHhT dHJ1Y3QKIFNscnVDdGwKIFNscnVDdGxEYXRhCiBTbHJ1RXJyb3JDYXVzZQotLSAKMi4zNC4xCgo= --000000000000fde609060f87276b Content-Type: application/octet-stream; name="v65-0003-Slot-sync-worker-as-a-special-process.patch" Content-Disposition: attachment; filename="v65-0003-Slot-sync-worker-as-a-special-process.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lroufv792 RnJvbSA1M2EzNWZlZTFjNDlmMzg4MTg5MGU3OWEyYmNjOWJiM2JmMjUxNjc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjIgSmFuIDIwMjQgMTU6Mzk6NDcgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NSAzLzZdIFNsb3Qtc3luYyB3b3JrZXIgYXMgYSBzcGVjaWFsIHByb2Nlc3MKClRoaXMgcGF0Y2gg YXR0ZW1wdHMgdG8gc3RhcnQgc2xvdC1zeW5jIHdvcmtlciBhcyBhIHNwZWNpYWwgcHJvY2Vzcwp3 aGljaCBpcyBuZWl0aGVyIGEgYmd3b3JrZXIgbm9yIGFuIEF1eGlsaWFyeSBwcm9jZXNzLiBUaGUg YmVuZWZpdAp3ZSBnZXQgaGVyZSBpcyB3ZSBjYW4gY29udHJvbCB0aGUgc3RhcnQtY29uZGl0aW9u cyBvZiB0aGUgd29ya2VyIHdoaWNoCmZ1cnRoZXIgYWxsb3dzIHVzIHRvIGRlZmluZSAnZW5hYmxl X3N5bmNzbG90JyBhcyBQR0NfU0lHSFVQIHdoaWNoIHdhcwpvdGhlcndpc2UgYSBQR0NfUE9TVE1B U1RFUiBHVUMgd2hlbiBzbG90c3luYyB3b3JrZXIgd2FzIHJlZ2lzdGVyZWQgYXMKYmd3b3JrZXIu Ci0tLQogZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDY1 ICstLS0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYyAgICAgICAgICAgICB8ICAg MyAtCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAgfCAgODUg KysrLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8IDMx OSArKysrKysrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcm9jLmMgICAg ICAgICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDExIC0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9pby5j ICAgICAgICB8ICAgMSArCiAuLi4vdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQg ICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9taXNjaW5pdC5jICAgICAgICAg ICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMgICAgICAgICAg ICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jICAgICAgICAg ICB8ICAgMiArLQogc3JjL2luY2x1ZGUvbWlzY2FkbWluLmggICAgICAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCAgICAgICAgICAgICB8 ICAgMSAtCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCAgICAgfCAg IDcgKy0KIDE0IGZpbGVzIGNoYW5nZWQsIDM0NiBpbnNlcnRpb25zKCspLCAxODAgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Jnd29ya2VyLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvYmd3b3JrZXIuc2dtbAppbmRleCBhN2NmZTZjNThjLi4yYzM5MzM4NWE5IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIu c2dtbApAQCAtMTE0LDU5ICsxMTQsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgQmFja2dyb3VuZFdvcmtl cgogCiAgIDxwYXJhPgogICAgPHN0cnVjdGZpZWxkPmJnd19zdGFydF90aW1lPC9zdHJ1Y3RmaWVs ZD4gaXMgdGhlIHNlcnZlciBzdGF0ZSBkdXJpbmcgd2hpY2gKLSAgIDxjb21tYW5kPnBvc3RncmVz PC9jb21tYW5kPiBzaG91bGQgc3RhcnQgdGhlIHByb2Nlc3MuIE5vdGUgdGhhdCB0aGlzIHNldHRp bmcKLSAgIG9ubHkgaW5kaWNhdGVzIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRl ZDsgdGhleSBkbyBub3Qgc3RvcCB3aGVuCi0gICBhIGRpZmZlcmVudCBzdGF0ZSBpcyByZWFjaGVk LiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgotCi0gICA8dmFyaWFibGVsaXN0PgotICAgIDx2YXJsaXN0 ZW50cnk+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0 PC9saXRlcmFsPjwvdGVybT4KLSAgICAgPGxpc3RpdGVtPgotICAgICAgPHBhcmE+Ci0gICAgICAg PGluZGV4dGVybT48cHJpbWFyeT5CZ1dvcmtlclN0YXJ0X1Bvc3RtYXN0ZXJTdGFydDwvcHJpbWFy eT48L2luZGV4dGVybT4KLSAgICAgICBTdGFydCBhcyBzb29uIGFzIHBvc3RncmVzIGl0c2VsZiBo YXMgZmluaXNoZWQgaXRzIG93biBpbml0aWFsaXphdGlvbjsKLSAgICAgICBwcm9jZXNzZXMgcmVx dWVzdGluZyB0aGlzIGFyZSBub3QgZWxpZ2libGUgZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb25zLgot ICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVtPgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0g ICAgPHZhcmxpc3RlbnRyeT4KLSAgICAgPHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25z aXN0ZW50U3RhdGU8L2xpdGVyYWw+PC90ZXJtPgotICAgICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFy YT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfQ29uc2lzdGVudFN0 YXRlPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgotICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgYSBjb25z aXN0ZW50IHN0YXRlIGhhcyBiZWVuIHJlYWNoZWQgaW4gYSBob3Qtc3RhbmRieSwKLSAgICAgICBh bGxvd2luZyBwcm9jZXNzZXMgdG8gY29ubmVjdCB0byBkYXRhYmFzZXMgYW5kIHJ1biByZWFkLW9u bHkgcXVlcmllcy4KLSAgICAgIDwvcGFyYT4KLSAgICAgPC9saXN0aXRlbT4KLSAgICA8L3Zhcmxp c3RlbnRyeT4KLQotICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgIDx0ZXJtPjxsaXRlcmFsPkJnV29y a2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk8L2xpdGVyYWw+PC90ZXJtPgotICAg ICA8bGlzdGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJn V29ya2VyU3RhcnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnk8L3ByaW1hcnk+PC9pbmRleHRl cm0+Ci0gICAgICAgU2FtZSBtZWFuaW5nIGFzIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfQ29uc2lz dGVudFN0YXRlPC9saXRlcmFsPiBidXQKLSAgICAgICBpdCBpcyBtb3JlIHN0cmljdCBpbiB0ZXJt cyBvZiB0aGUgc2VydmVyIGkuZS4gc3RhcnQgdGhlIHdvcmtlciBvbmx5Ci0gICAgICAgaWYgaXQg aXMgaG90LXN0YW5kYnkuCi0gICAgICA8L3BhcmE+Ci0gICAgIDwvbGlzdGl0ZW0+Ci0gICAgPC92 YXJsaXN0ZW50cnk+Ci0KLSAgICA8dmFybGlzdGVudHJ5PgotICAgICA8dGVybT48bGl0ZXJhbD5C Z1dvcmtlclN0YXJ0X1JlY292ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+PC90ZXJtPgotICAgICA8bGlz dGl0ZW0+Ci0gICAgICA8cGFyYT4KLSAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2Vy U3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvcHJpbWFyeT48L2luZGV4dGVybT4KLSAgICAgICBTdGFy dCBhcyBzb29uIGFzIHRoZSBzeXN0ZW0gaGFzIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3Rh dGUuIE5vdGUKLSAgICAgICB0aGF0IHRoZSA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3Rl bnRTdGF0ZTwvbGl0ZXJhbD4gYW5kCi0gICAgICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X1JlY292 ZXJ5RmluaXNoZWQ8L2xpdGVyYWw+IGFyZSBlcXVpdmFsZW50Ci0gICAgICAgaW4gYSBzZXJ2ZXIg dGhhdCdzIG5vdCBhIGhvdCBzdGFuZGJ5LgotICAgICAgPC9wYXJhPgotICAgICA8L2xpc3RpdGVt PgotICAgIDwvdmFybGlzdGVudHJ5PgotCi0gICA8L3ZhcmlhYmxlbGlzdD4KKyAgIDxjb21tYW5k PnBvc3RncmVzPC9jb21tYW5kPiBzaG91bGQgc3RhcnQgdGhlIHByb2Nlc3M7IGl0IGNhbiBiZSBv bmUgb2YKKyAgIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0PC9saXRlcmFs PiAoc3RhcnQgYXMgc29vbiBhcworICAgPGNvbW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IGl0c2Vs ZiBoYXMgZmluaXNoZWQgaXRzIG93biBpbml0aWFsaXphdGlvbjsgcHJvY2Vzc2VzCisgICByZXF1 ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJsZSBmb3IgZGF0YWJhc2UgY29ubmVjdGlvbnMpLAor ICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IChzdGFy dCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0ZQorICAgaGFzIGJlZW4gcmVhY2hlZCBpbiBh IGhvdCBzdGFuZGJ5LCBhbGxvd2luZyBwcm9jZXNzZXMgdG8gY29ubmVjdCB0bworICAgZGF0YWJh c2VzIGFuZCBydW4gcmVhZC1vbmx5IHF1ZXJpZXMpLCBhbmQKKyAgIDxsaXRlcmFsPkJnV29ya2Vy U3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD4gKHN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5 c3RlbSBoYXMKKyAgIGVudGVyZWQgbm9ybWFsIHJlYWQtd3JpdGUgc3RhdGUpLiAgTm90ZSB0aGUg bGFzdCB0d28gdmFsdWVzIGFyZSBlcXVpdmFsZW50CisgICBpbiBhIHNlcnZlciB0aGF0J3Mgbm90 IGEgaG90IHN0YW5kYnkuICBOb3RlIHRoYXQgdGhpcyBzZXR0aW5nIG9ubHkgaW5kaWNhdGVzCisg ICB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIHRvIGJlIHN0YXJ0ZWQ7IHRoZXkgZG8gbm90IHN0b3Ag d2hlbiBhIGRpZmZlcmVudCBzdGF0ZQorICAgaXMgcmVhY2hlZC4KICAgPC9wYXJhPgogCiAgIDxw YXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jIGIvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCmluZGV4IDQ2ODI4YjhhODkuLjFhZGQ0NDlm N2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYworKysgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKQEAgLTEzMCw5ICsxMzAsNiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0CiAJewogCQkiQXBwbHlXb3JrZXJNYWluIiwgQXBwbHlXb3JrZXJNYWlu CiAJfSwKLQl7Ci0JCSJSZXBsU2xvdFN5bmNXb3JrZXJNYWluIiwgUmVwbFNsb3RTeW5jV29ya2Vy TWFpbgotCX0sCiAJewogCQkiUGFyYWxsZWxBcHBseVdvcmtlck1haW4iLCBQYXJhbGxlbEFwcGx5 V29ya2VyTWFpbgogCX0sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3Rt YXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGQ5MGQ1 ZDE1NzYuLmJmMDUxY2VkM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9z dG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCkBAIC0x NjgsMTEgKzE2OCwxMSBAQAogICogdGhleSB3aWxsIG5ldmVyIGJlY29tZSBsaXZlIGJhY2tlbmRz LiAgZGVhZF9lbmQgY2hpbGRyZW4gYXJlIG5vdCBhc3NpZ25lZCBhCiAgKiBQTUNoaWxkU2xvdC4g IGRlYWRfZW5kIGNoaWxkcmVuIGhhdmUgYmtlbmRfdHlwZSBOT1JNQUwuCiAgKgotICogIlNwZWNp YWwiIGNoaWxkcmVuIHN1Y2ggYXMgdGhlIHN0YXJ0dXAsIGJnd3JpdGVyIGFuZCBhdXRvdmFjdXVt IGxhdW5jaGVyCi0gKiB0YXNrcyBhcmUgbm90IGluIHRoaXMgbGlzdC4gIFRoZXkgYXJlIHRyYWNr ZWQgdmlhIFN0YXJ0dXBQSUQgYW5kIG90aGVyCi0gKiBwaWRfdCB2YXJpYWJsZXMgYmVsb3cuICAo VGh1cywgdGhlcmUgY2FuJ3QgYmUgbW9yZSB0aGFuIG9uZSBvZiBhbnkgZ2l2ZW4KLSAqICJzcGVj aWFsIiBjaGlsZCBwcm9jZXNzIHR5cGUuICBXZSB1c2UgQmFja2VuZExpc3QgZW50cmllcyBmb3Ig YW55IGNoaWxkCi0gKiBwcm9jZXNzIHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIG9mLikKKyAq ICJTcGVjaWFsIiBjaGlsZHJlbiBzdWNoIGFzIHRoZSBzdGFydHVwLCBiZ3dyaXRlciwgYXV0b3Zh Y3V1bSBsYXVuY2hlciBhbmQKKyAqIHNsb3Qgc3luYyB3b3JrZXIgdGFza3MgYXJlIG5vdCBpbiB0 aGlzIGxpc3QuICBUaGV5IGFyZSB0cmFja2VkIHZpYSBTdGFydHVwUElECisgKiBhbmQgb3RoZXIg cGlkX3QgdmFyaWFibGVzIGJlbG93LiAgKFRodXMsIHRoZXJlIGNhbid0IGJlIG1vcmUgdGhhbiBv bmUgb2YgYW55CisgKiBnaXZlbiAic3BlY2lhbCIgY2hpbGQgcHJvY2VzcyB0eXBlLiAgV2UgdXNl IEJhY2tlbmRMaXN0IGVudHJpZXMgZm9yIGFueQorICogY2hpbGQgcHJvY2VzcyB0aGVyZSBjYW4g YmUgbW9yZSB0aGFuIG9uZSBvZi4pCiAgKi8KIHR5cGVkZWYgc3RydWN0IGJrZW5kCiB7CkBAIC0y NTUsNyArMjU1LDggQEAgc3RhdGljIHBpZF90IFN0YXJ0dXBQSUQgPSAwLAogCQkJV2FsU3VtbWFy aXplclBJRCA9IDAsCiAJCQlBdXRvVmFjUElEID0gMCwKIAkJCVBnQXJjaFBJRCA9IDAsCi0JCQlT eXNMb2dnZXJQSUQgPSAwOworCQkJU3lzTG9nZ2VyUElEID0gMCwKKwkJCVNsb3RTeW5jV29ya2Vy UElEID0gMDsKIAogLyogU3RhcnR1cCBwcm9jZXNzJ3Mgc3RhdHVzICovCiB0eXBlZGVmIGVudW0K QEAgLTQ1OSw2ICs0NjAsOSBAQCBzdGF0aWMgdm9pZCBJbml0UG9zdG1hc3RlckRlYXRoV2F0Y2hI YW5kbGUodm9pZCk7CiAJICAgKHBtU3RhdGUgPT0gUE1fUkVDT1ZFUlkgfHwgcG1TdGF0ZSA9PSBQ TV9IT1RfU1RBTkRCWSkpKSAmJiBcCiAJIFBnQXJjaENhblJlc3RhcnQoKSkKIAorI2RlZmluZSBT bG90U3luY1dvcmtlckFsbG93ZWQoKQlcCisJKGVuYWJsZV9zeW5jc2xvdCAmJiBwbVN0YXRlID09 IFBNX0hPVF9TVEFOREJZKQorCiAjaWZkZWYgRVhFQ19CQUNLRU5ECiAKICNpZmRlZiBXSU4zMgpA QCAtMTAxMSwxMiArMTAxNSw2IEBAIFBvc3RtYXN0ZXJNYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCiAJICovCiAJQXBwbHlMYXVuY2hlclJlZ2lzdGVyKCk7CiAKLQkvKgotCSAqIFJlZ2lzdGVy IHRoZSBzbG90IHN5bmMgd29ya2VyIGhlcmUgdG8ga2ljayBzdGFydCBzbG90LXN5bmMgb3BlcmF0 aW9uCi0JICogc29vbmVyIG9uIHRoZSBwaHlzaWNhbCBzdGFuZGJ5LgotCSAqLwotCVNsb3RTeW5j V29ya2VyUmVnaXN0ZXIoKTsKLQogCS8qCiAJICogcHJvY2VzcyBhbnkgbGlicmFyaWVzIHRoYXQg c2hvdWxkIGJlIHByZWxvYWRlZCBhdCBwb3N0bWFzdGVyIHN0YXJ0CiAJICovCkBAIC0xODM3LDYg KzE4MzUsMTAgQEAgU2VydmVyTG9vcCh2b2lkKQogCQlpZiAoUGdBcmNoUElEID09IDAgJiYgUGdB cmNoU3RhcnR1cEFsbG93ZWQoKSkKIAkJCVBnQXJjaFBJRCA9IFN0YXJ0QXJjaGl2ZXIoKTsKIAor CQkvKiBJZiB3ZSBuZWVkIHRvIHN0YXJ0IGEgc2xvdCBzeW5jIHdvcmtlciwgdHJ5IHRvIGRvIHRo YXQgbm93ICovCisJCWlmIChTbG90U3luY1dvcmtlclBJRCA9PSAwICYmIFNsb3RTeW5jV29ya2Vy QWxsb3dlZCgpKQorCQkJU2xvdFN5bmNXb3JrZXJQSUQgPSBTdGFydFNsb3RTeW5jV29ya2VyKCk7 CisKIAkJLyogSWYgd2UgbmVlZCB0byBzaWduYWwgdGhlIGF1dG92YWN1dW0gbGF1bmNoZXIsIGRv IHNvIG5vdyAqLwogCQlpZiAoYXZsYXVuY2hlcl9uZWVkc19zaWduYWwpCiAJCXsKQEAgLTI2ODQs NiArMjY4Niw4IEBAIHByb2Nlc3NfcG1fcmVsb2FkX3JlcXVlc3Qodm9pZCkKIAkJCXNpZ25hbF9j aGlsZChQZ0FyY2hQSUQsIFNJR0hVUCk7CiAJCWlmIChTeXNMb2dnZXJQSUQgIT0gMCkKIAkJCXNp Z25hbF9jaGlsZChTeXNMb2dnZXJQSUQsIFNJR0hVUCk7CisJCWlmIChTbG90U3luY1dvcmtlclBJ RCAhPSAwKQorCQkJc2lnbmFsX2NoaWxkKFNsb3RTeW5jV29ya2VyUElELCBTSUdIVVApOwogCiAJ CS8qIFJlbG9hZCBhdXRoZW50aWNhdGlvbiBjb25maWcgZmlsZXMgdG9vICovCiAJCWlmICghbG9h ZF9oYmEoKSkKQEAgLTMwNDEsNiArMzA0NSw4IEBAIHByb2Nlc3NfcG1fY2hpbGRfZXhpdCh2b2lk KQogCQkJCUF1dG9WYWNQSUQgPSBTdGFydEF1dG9WYWNMYXVuY2hlcigpOwogCQkJaWYgKFBnQXJj aFN0YXJ0dXBBbGxvd2VkKCkgJiYgUGdBcmNoUElEID09IDApCiAJCQkJUGdBcmNoUElEID0gU3Rh cnRBcmNoaXZlcigpOworCQkJaWYgKFNsb3RTeW5jV29ya2VyQWxsb3dlZCgpICYmIFNsb3RTeW5j V29ya2VyUElEID09IDApCisJCQkJU2xvdFN5bmNXb3JrZXJQSUQgPSBTdGFydFNsb3RTeW5jV29y a2VyKCk7CiAKIAkJCS8qIHdvcmtlcnMgbWF5IGJlIHNjaGVkdWxlZCB0byBzdGFydCBub3cgKi8K IAkJCW1heWJlX3N0YXJ0X2Jnd29ya2VycygpOwpAQCAtMzIxMSw2ICszMjE3LDIyIEBAIHByb2Nl c3NfcG1fY2hpbGRfZXhpdCh2b2lkKQogCQkJY29udGludWU7CiAJCX0KIAorCQkvKgorCQkgKiBX YXMgaXQgdGhlIHNsb3Qgc3luYyB3b3JrZXI/IE5vcm1hbCBleGl0IG9yIEZBVEFMIGV4aXQgY2Fu IGJlCisJCSAqIGlnbm9yZWQgKEZBVEFMIGNhbiBiZSBjYXVzZWQgYnkgbGlicHF3YWxyZWNlaXZl ciBvbiByZWNlaXZpbmcKKwkJICogc2h1dGRvd24gcmVxdWVzdCBieSB0aGUgc3RhcnR1cCBwcm9j ZXNzIGR1cmluZyBwcm9tb3Rpb24pOyB3ZSdsbAorCQkgKiBzdGFydCBhIG5ldyBvbmUgYXQgdGhl IG5leHQgaXRlcmF0aW9uIG9mIHRoZSBwb3N0bWFzdGVyJ3MgbWFpbgorCQkgKiBsb29wLCBpZiBu ZWNlc3NhcnkuIEFueSBvdGhlciBleGl0IGNvbmRpdGlvbiBpcyB0cmVhdGVkIGFzIGEgY3Jhc2gu CisJCSAqLworCQlpZiAocGlkID09IFNsb3RTeW5jV29ya2VyUElEKQorCQl7CisJCQlTbG90U3lu Y1dvcmtlclBJRCA9IDA7CisJCQlpZiAoIUVYSVRfU1RBVFVTXzAoZXhpdHN0YXR1cykgJiYgIUVY SVRfU1RBVFVTXzEoZXhpdHN0YXR1cykpCisJCQkJSGFuZGxlQ2hpbGRDcmFzaChwaWQsIGV4aXRz dGF0dXMsCisJCQkJCQkJCSBfKCJzbG90IHN5bmMgd29ya2VyIHByb2Nlc3MiKSk7CisJCQljb250 aW51ZTsKKwkJfQorCiAJCS8qIFdhcyBpdCBvbmUgb2Ygb3VyIGJhY2tncm91bmQgd29ya2Vycz8g Ki8KIAkJaWYgKENsZWFudXBCYWNrZ3JvdW5kV29ya2VyKHBpZCwgZXhpdHN0YXR1cykpCiAJCXsK QEAgLTM1NzcsNiArMzU5OSwxMiBAQCBIYW5kbGVDaGlsZENyYXNoKGludCBwaWQsIGludCBleGl0 c3RhdHVzLCBjb25zdCBjaGFyICpwcm9jbmFtZSkKIAllbHNlIGlmIChQZ0FyY2hQSUQgIT0gMCAm JiB0YWtlX2FjdGlvbikKIAkJc2lncXVpdF9jaGlsZChQZ0FyY2hQSUQpOwogCisJLyogVGFrZSBj YXJlIG9mIHRoZSBzbG90IHN5bmMgd29ya2VyIHRvbyAqLworCWlmIChwaWQgPT0gU2xvdFN5bmNX b3JrZXJQSUQpCisJCVNsb3RTeW5jV29ya2VyUElEID0gMDsKKwllbHNlIGlmIChTbG90U3luY1dv cmtlclBJRCAhPSAwICYmIHRha2VfYWN0aW9uKQorCQlzaWdxdWl0X2NoaWxkKFNsb3RTeW5jV29y a2VyUElEKTsKKwogCS8qIFdlIGRvIE5PVCByZXN0YXJ0IHRoZSBzeXNsb2dnZXIgKi8KIAogCWlm IChTaHV0ZG93biAhPSBJbW1lZGlhdGVTaHV0ZG93bikKQEAgLTM3MTcsNiArMzc0NSw4IEBAIFBv c3RtYXN0ZXJTdGF0ZU1hY2hpbmUodm9pZCkKIAkJCXNpZ25hbF9jaGlsZChXYWxSZWNlaXZlclBJ RCwgU0lHVEVSTSk7CiAJCWlmIChXYWxTdW1tYXJpemVyUElEICE9IDApCiAJCQlzaWduYWxfY2hp bGQoV2FsU3VtbWFyaXplclBJRCwgU0lHVEVSTSk7CisJCWlmIChTbG90U3luY1dvcmtlclBJRCAh PSAwKQorCQkJc2lnbmFsX2NoaWxkKFNsb3RTeW5jV29ya2VyUElELCBTSUdURVJNKTsKIAkJLyog Y2hlY2twb2ludGVyLCBhcmNoaXZlciwgc3RhdHMsIGFuZCBzeXNsb2dnZXIgbWF5IGNvbnRpbnVl IGZvciBub3cgKi8KIAogCQkvKiBOb3cgdHJhbnNpdGlvbiB0byBQTV9XQUlUX0JBQ0tFTkRTIHN0 YXRlIHRvIHdhaXQgZm9yIHRoZW0gdG8gZGllICovCkBAIC0zNzMyLDEzICszNzYyLDEzIEBAIFBv c3RtYXN0ZXJTdGF0ZU1hY2hpbmUodm9pZCkKIAkJLyoKIAkJICogUE1fV0FJVF9CQUNLRU5EUyBz dGF0ZSBlbmRzIHdoZW4gd2UgaGF2ZSBubyByZWd1bGFyIGJhY2tlbmRzCiAJCSAqIChpbmNsdWRp bmcgYXV0b3ZhYyB3b3JrZXJzKSwgbm8gYmd3b3JrZXJzIChpbmNsdWRpbmcgdW5jb25uZWN0ZWQK LQkJICogb25lcyksIGFuZCBubyB3YWx3cml0ZXIsIGF1dG92YWMgbGF1bmNoZXIgb3IgYmd3cml0 ZXIuICBJZiB3ZSBhcmUKLQkJICogZG9pbmcgY3Jhc2ggcmVjb3Zlcnkgb3IgYW4gaW1tZWRpYXRl IHNodXRkb3duIHRoZW4gd2UgZXhwZWN0IHRoZQotCQkgKiBjaGVja3BvaW50ZXIgdG8gZXhpdCBh cyB3ZWxsLCBvdGhlcndpc2Ugbm90LiBUaGUgc3RhdHMgYW5kCi0JCSAqIHN5c2xvZ2dlciBwcm9j ZXNzZXMgYXJlIGRpc3JlZ2FyZGVkIHNpbmNlIHRoZXkgYXJlIG5vdCBjb25uZWN0ZWQgdG8KLQkJ ICogc2hhcmVkIG1lbW9yeTsgd2UgYWxzbyBkaXNyZWdhcmQgZGVhZF9lbmQgY2hpbGRyZW4gaGVy ZS4gV2Fsc2VuZGVycwotCQkgKiBhbmQgYXJjaGl2ZXIgYXJlIGFsc28gZGlzcmVnYXJkZWQsIHRo ZXkgd2lsbCBiZSB0ZXJtaW5hdGVkIGxhdGVyCi0JCSAqIGFmdGVyIHdyaXRpbmcgdGhlIGNoZWNr cG9pbnQgcmVjb3JkLgorCQkgKiBvbmVzKSwgYW5kIG5vIHdhbHdyaXRlciwgYXV0b3ZhYyBsYXVu Y2hlciwgYmd3cml0ZXIgb3Igc2xvdCBzeW5jCisJCSAqIHdvcmtlci4gIElmIHdlIGFyZSBkb2lu ZyBjcmFzaCByZWNvdmVyeSBvciBhbiBpbW1lZGlhdGUgc2h1dGRvd24KKwkJICogdGhlbiB3ZSBl eHBlY3QgdGhlIGNoZWNrcG9pbnRlciB0byBleGl0IGFzIHdlbGwsIG90aGVyd2lzZSBub3QuIFRo ZQorCQkgKiBzdGF0cyBhbmQgc3lzbG9nZ2VyIHByb2Nlc3NlcyBhcmUgZGlzcmVnYXJkZWQgc2lu Y2UgdGhleSBhcmUgbm90CisJCSAqIGNvbm5lY3RlZCB0byBzaGFyZWQgbWVtb3J5OyB3ZSBhbHNv IGRpc3JlZ2FyZCBkZWFkX2VuZCBjaGlsZHJlbgorCQkgKiBoZXJlLiBXYWxzZW5kZXJzIGFuZCBh cmNoaXZlciBhcmUgYWxzbyBkaXNyZWdhcmRlZCwgdGhleSB3aWxsIGJlCisJCSAqIHRlcm1pbmF0 ZWQgbGF0ZXIgYWZ0ZXIgd3JpdGluZyB0aGUgY2hlY2twb2ludCByZWNvcmQuCiAJCSAqLwogCQlp ZiAoQ291bnRDaGlsZHJlbihCQUNLRU5EX1RZUEVfQUxMIC0gQkFDS0VORF9UWVBFX1dBTFNORCkg PT0gMCAmJgogCQkJU3RhcnR1cFBJRCA9PSAwICYmCkBAIC0zNzQ4LDcgKzM3NzgsOCBAQCBQb3N0 bWFzdGVyU3RhdGVNYWNoaW5lKHZvaWQpCiAJCQkoQ2hlY2twb2ludGVyUElEID09IDAgfHwKIAkJ CSAoIUZhdGFsRXJyb3IgJiYgU2h1dGRvd24gPCBJbW1lZGlhdGVTaHV0ZG93bikpICYmCiAJCQlX YWxXcml0ZXJQSUQgPT0gMCAmJgotCQkJQXV0b1ZhY1BJRCA9PSAwKQorCQkJQXV0b1ZhY1BJRCA9 PSAwICYmCisJCQlTbG90U3luY1dvcmtlclBJRCA9PSAwKQogCQl7CiAJCQlpZiAoU2h1dGRvd24g Pj0gSW1tZWRpYXRlU2h1dGRvd24gfHwgRmF0YWxFcnJvcikKIAkJCXsKQEAgLTM4NDYsNiArMzg3 Nyw3IEBAIFBvc3RtYXN0ZXJTdGF0ZU1hY2hpbmUodm9pZCkKIAkJCUFzc2VydChDaGVja3BvaW50 ZXJQSUQgPT0gMCk7CiAJCQlBc3NlcnQoV2FsV3JpdGVyUElEID09IDApOwogCQkJQXNzZXJ0KEF1 dG9WYWNQSUQgPT0gMCk7CisJCQlBc3NlcnQoU2xvdFN5bmNXb3JrZXJQSUQgPT0gMCk7CiAJCQkv KiBzeXNsb2dnZXIgaXMgbm90IGNvbnNpZGVyZWQgaGVyZSAqLwogCQkJcG1TdGF0ZSA9IFBNX05P X0NISUxEUkVOOwogCQl9CkBAIC00MDY5LDYgKzQxMDEsOCBAQCBUZXJtaW5hdGVDaGlsZHJlbihp bnQgc2lnbmFsKQogCQlzaWduYWxfY2hpbGQoQXV0b1ZhY1BJRCwgc2lnbmFsKTsKIAlpZiAoUGdB cmNoUElEICE9IDApCiAJCXNpZ25hbF9jaGlsZChQZ0FyY2hQSUQsIHNpZ25hbCk7CisJaWYgKFNs b3RTeW5jV29ya2VyUElEICE9IDApCisJCXNpZ25hbF9jaGlsZChTbG90U3luY1dvcmtlclBJRCwg c2lnbmFsKTsKIH0KIAogLyoKQEAgLTQ4ODEsNiArNDkxNSw3IEBAIFN1YlBvc3RtYXN0ZXJNYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJICovCiAJaWYgKHN0cmNtcChhcmd2WzFdLCAiLS1m b3JrYmFja2VuZCIpID09IDAgfHwKIAkJc3RyY21wKGFyZ3ZbMV0sICItLWZvcmthdmxhdW5jaGVy IikgPT0gMCB8fAorCQlzdHJjbXAoYXJndlsxXSwgIi0tZm9ya3Nzd29ya2VyIikgPT0gMCB8fAog CQlzdHJjbXAoYXJndlsxXSwgIi0tZm9ya2F2d29ya2VyIikgPT0gMCB8fAogCQlzdHJjbXAoYXJn dlsxXSwgIi0tZm9ya2F1eCIpID09IDAgfHwKIAkJc3RyY21wKGFyZ3ZbMV0sICItLWZvcmtiZ3dv cmtlciIpID09IDApCkBAIC00OTg0LDYgKzUwMTksMTMgQEAgU3ViUG9zdG1hc3Rlck1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAogCQlBdXRvVmFjV29ya2VyTWFpbihhcmdjIC0gMiwgYXJn diArIDIpOwkvKiBkb2VzIG5vdCByZXR1cm4gKi8KIAl9CisJaWYgKHN0cmNtcChhcmd2WzFdLCAi LS1mb3Jrc3N3b3JrZXIiKSA9PSAwKQorCXsKKwkJLyogUmVzdG9yZSBiYXNpYyBzaGFyZWQgbWVt b3J5IHBvaW50ZXJzICovCisJCUluaXRTaG1lbUFjY2VzcyhVc2VkU2htZW1TZWdBZGRyKTsKKwor CQlSZXBsU2xvdFN5bmNXb3JrZXJNYWluKGFyZ2MgLSAyLCBhcmd2ICsgMik7IC8qIGRvZXMgbm90 IHJldHVybiAqLworCX0KIAlpZiAoc3RyY21wKGFyZ3ZbMV0sICItLWZvcmtiZ3dvcmtlciIpID09 IDApCiAJewogCQkvKiBkbyB0aGlzIGFzIGVhcmx5IGFzIHBvc3NpYmxlOyBpbiBwYXJ0aWN1bGFy LCBiZWZvcmUgSW5pdFByb2Nlc3MoKSAqLwpAQCAtNTgwNiw5ICs1ODQ4LDYgQEAgYmd3b3JrZXJf c2hvdWxkX3N0YXJ0X25vdyhCZ1dvcmtlclN0YXJ0VGltZSBzdGFydF90aW1lKQogCQljYXNlIFBN X0hPVF9TVEFOREJZOgogCQkJaWYgKHN0YXJ0X3RpbWUgPT0gQmdXb3JrZXJTdGFydF9Db25zaXN0 ZW50U3RhdGUpCiAJCQkJcmV0dXJuIHRydWU7Ci0JCQlpZiAoc3RhcnRfdGltZSA9PSBCZ1dvcmtl clN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5ICYmCi0JCQkJCSBwbVN0YXRlICE9IFBN X1JVTikKLQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCS8qIGZhbGwgdGhyb3VnaCAqLwogCiAJCWNhc2Ug UE1fUkVDT1ZFUlk6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L3Nsb3RzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMK aW5kZXggNTVlMDhhNjE0NS4uZTZkMzc4Yzk4NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvc2xvdHN5bmMuYwpAQCAtMjcsNiArMjcsOCBAQAogICogSXQgd2FpdHMgZm9yIGEg cGVyaW9kIG9mIHRpbWUgYmVmb3JlIHRoZSBuZXh0IHN5bmNocm9uaXphdGlvbiwgd2l0aCB0aGUK ICAqIGR1cmF0aW9uIHZhcnlpbmcgYmFzZWQgb24gd2hldGhlciBhbnkgc2xvdHMgd2VyZSB1cGRh dGVkIGR1cmluZyB0aGUgbGFzdAogICogY3ljbGUuIFJlZmVyIHRvIHRoZSBjb21tZW50cyBhYm92 ZSB3YWl0X2Zvcl9zbG90X2FjdGl2aXR5KCkgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBTbG90 IHN5bmNocm9uaXphdGlvbiBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBvbiB0aGUgY2FzY2Fk aW5nIHN0YW5kYnkuCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKQEAgLTQwLDcgKzQyLDkg QEAKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAicGdzdGF0Lmgi CiAjaW5jbHVkZSAicG9zdG1hc3Rlci9iZ3dvcmtlci5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIv Zm9ya19wcm9jZXNzLmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1cHQuaCIKKyNpbmNs dWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dp Y2FsLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbGxhdW5jaGVyLmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oIgpAQCAtNTMsNiArNTcsOCBAQAogI2luY2x1 ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjX2hvb2tzLmgiCiAjaW5j bHVkZSAidXRpbHMvcGdfbHNuLmgiCisjaW5jbHVkZSAidXRpbHMvcHNfc3RhdHVzLmgiCisjaW5j bHVkZSAidXRpbHMvdGltZW91dC5oIgogI2luY2x1ZGUgInV0aWxzL3ZhcmxlbmEuaCIKIAogLyoK QEAgLTEwNyw4ICsxMTMsMTYgQEAgYm9vbAkJZW5hYmxlX3N5bmNzbG90ID0gZmFsc2U7CiAgKi8K IHN0YXRpYyBsb25nIHNsZWVwX21zID0gTUlOX1dPUktFUl9OQVBUSU1FX01TOwogCisvKiBGbGFn IHRvIHRlbGwgaWYgd2UgYXJlIGluIGEgc2xvdCBzeW5jIHdvcmtlciBwcm9jZXNzICovCitzdGF0 aWMgYm9vbCBhbV9zbG90c3luY193b3JrZXIgPSBmYWxzZTsKKwogc3RhdGljIHZvaWQgUHJvY2Vz c1Nsb3RTeW5jSW50ZXJydXB0cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubik7CiAKKyNpZmRlZiBF WEVDX0JBQ0tFTkQKK3N0YXRpYyBwaWRfdCBzbG90c3luY3dvcmtlcl9mb3JrZXhlYyh2b2lkKTsK KyNlbmRpZgorTk9OX0VYRUNfU1RBVElDIHZvaWQgUmVwbFNsb3RTeW5jV29ya2VyTWFpbihpbnQg YXJnYywgY2hhciAqYXJndltdKSBwZ19hdHRyaWJ1dGVfbm9yZXR1cm4oKTsKKwogLyoKICAqIElm IG5lY2Vzc2FyeSwgdXBkYXRlIGxvY2FsIHNsb3QgbWV0YWRhdGEgYmFzZWQgb24gdGhlIGRhdGEg ZnJvbSB0aGUgcmVtb3RlCiAgKiBzbG90LgpAQCAtNjk2LDcgKzcxMCw4IEBAIHN5bmNocm9uaXpl X3Nsb3RzKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uKQogICogc3RhbmRieXMuCiAgKi8KIHN0YXRp YyB2b2lkCi1jaGVja19wcmltYXJ5X2luZm8oV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIGJvb2wg KmFtX2Nhc2NhZGluZ19zdGFuZGJ5KQorY2hlY2tfcHJpbWFyeV9pbmZvKFdhbFJlY2VpdmVyQ29u biAqd3Jjb25uLCBib29sICphbV9jYXNjYWRpbmdfc3RhbmRieSwKKwkJCQkgICBib29sICpwcmlt YXJ5X3Nsb3RfaW52YWxpZCkKIHsKICNkZWZpbmUgUFJJTUFSWV9JTkZPX09VVFBVVF9DT0xfQ09V TlQgMgogCVdhbFJjdkV4ZWNSZXN1bHQgKnJlczsKQEAgLTcxMSw4ICs3MjYsMTAgQEAgY2hlY2tf cHJpbWFyeV9pbmZvKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uLCBib29sICphbV9jYXNjYWRpbmdf c3RhbmRieSkKIAlTdGFydFRyYW5zYWN0aW9uQ29tbWFuZCgpOwogCiAJQXNzZXJ0KGFtX2Nhc2Nh ZGluZ19zdGFuZGJ5ICE9IE5VTEwpOworCUFzc2VydChwcmltYXJ5X3Nsb3RfaW52YWxpZCAhPSBO VUxMKTsKIAogCSphbV9jYXNjYWRpbmdfc3RhbmRieSA9IGZhbHNlOwkvKiBvdmVyd3JpdHRlbiBs YXRlciBpZiBjYXNjYWRpbmcgKi8KKwkqcHJpbWFyeV9zbG90X2ludmFsaWQgPSBmYWxzZTsJLyog b3ZlcndyaXR0ZW4gbGF0ZXIgaWYgaW52YWxpZCAqLwogCiAJaW5pdFN0cmluZ0luZm8oJmNtZCk7 CiAJYXBwZW5kU3RyaW5nSW5mbygmY21kLApAQCAtNzQ4LDEyICs3NjUsMTUgQEAgY2hlY2tfcHJp bWFyeV9pbmZvKFdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uLCBib29sICphbV9jYXNjYWRpbmdfc3Rh bmRieSkKIAkJQXNzZXJ0KCFpc251bGwpOwogCiAJCWlmICghdmFsaWQpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQl7CisJCQkqcHJpbWFyeV9zbG90X2ludmFsaWQgPSB0cnVlOworCQkJZXJlcG9ydChM T0csCiAJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJ CWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29u ZmlndXJhdGlvbiIpLAorCQkJCQllcnJtc2coImJhZCBjb25maWd1cmF0aW9uIGZvciBzbG90IHN5 bmNocm9uaXphdGlvbiIpLAogCQkJLyogdHJhbnNsYXRvcjogc2Vjb25kICVzIGlzIGEgR1VDIHZh cmlhYmxlIG5hbWUgKi8KIAkJCQkJZXJyZGV0YWlsKCJUaGUgcHJpbWFyeSBzZXJ2ZXIgc2xvdCBc IiVzXCIgc3BlY2lmaWVkIGJ5ICVzIGlzIG5vdCB2YWxpZC4iLAogCQkJCQkJCSAgUHJpbWFyeVNs b3ROYW1lLCAicHJpbWFyeV9zbG90X25hbWUiKSk7CisJCX0KIAl9CiAKIAlFeGVjQ2xlYXJUdXBs ZSh0dXBzbG90KTsKQEAgLTc2MiwyMCArNzgyLDE1IEBAIGNoZWNrX3ByaW1hcnlfaW5mbyhXYWxS ZWNlaXZlckNvbm4gKndyY29ubiwgYm9vbCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCiB9CiAKIC8q Ci0gKiBDaGVjayB0aGF0IGFsbCBuZWNlc3NhcnkgR1VDcyBmb3Igc2xvdCBzeW5jaHJvbml6YXRp b24gYXJlIHNldAotICogYXBwcm9wcmlhdGVseS4gSWYgbm90LCByYWlzZSBhbiBFUlJPUi4KKyAq IFJldHVybnMgdHJ1ZSBpZiBhbGwgbmVjZXNzYXJ5IEdVQ3MgZm9yIHNsb3Qgc3luY2hyb25pemF0 aW9uIGFyZSBzZXQKKyAqIGFwcHJvcHJpYXRlbHksIG90aGVyd2lzZSByZXR1cm5zIGZhbHNlLgog ICoKICAqIElmIGFsbCBjaGVja3MgcGFzcywgZXh0cmFjdHMgdGhlIGRibmFtZSBmcm9tIHRoZSBw cmltYXJ5X2Nvbm5pbmZvIEdVQyBhbmQKLSAqIHJldHVybnMgaXQuCisgKiBhbmQgcmV0dXJuIGl0 IGluIG91dHB1dCBkYm5hbWUgYXJnLgogICovCi1zdGF0aWMgY2hhciAqCi12YWxpZGF0ZV9wYXJh bWV0ZXJzX2FuZF9nZXRfZGJuYW1lKHZvaWQpCitzdGF0aWMgYm9vbAordmFsaWRhdGVfcGFyYW1l dGVyc19hbmRfZ2V0X2RibmFtZShjaGFyICoqZGJuYW1lKQogewotCWNoYXIJICAgKmRibmFtZTsK LQotCS8qIFNhbml0eSBjaGVjay4gKi8KLQlBc3NlcnQoZW5hYmxlX3N5bmNzbG90KTsKLQogCS8q CiAJICogQSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90KHByaW1hcnlfc2xvdF9uYW1lKSBpcyBy ZXF1aXJlZCBvbiB0aGUKIAkgKiBwcmltYXJ5IHRvIGVuc3VyZSB0aGF0IHRoZSByb3dzIG5lZWRl ZCBieSB0aGUgc3RhbmRieSBhcmUgbm90IHJlbW92ZWQKQEAgLTc4MywxMCArNzk4LDEzIEBAIHZh bGlkYXRlX3BhcmFtZXRlcnNfYW5kX2dldF9kYm5hbWUodm9pZCkKIAkgKiBiZSBpbnZhbGlkYXRl ZC4KIAkgKi8KIAlpZiAoUHJpbWFyeVNsb3ROYW1lID09IE5VTEwgfHwgc3RyY21wKFByaW1hcnlT bG90TmFtZSwgIiIpID09IDApCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcmVwb3J0KExPRywK IAkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLwotCQkJCWVycm1z ZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJh dGlvbiIpLAorCQkJCWVycm1zZygiYmFkIGNvbmZpZ3VyYXRpb24gZm9yIHNsb3Qgc3luY2hyb25p emF0aW9uIiksCiAJCQkJZXJyaGludCgiJXMgbXVzdCBiZSBkZWZpbmVkLiIsICJwcmltYXJ5X3Ns b3RfbmFtZSIpKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KIAogCS8qCiAJICogaG90X3N0YW5kYnlf ZmVlZGJhY2sgbXVzdCBiZSBlbmFibGVkIHRvIGNvb3BlcmF0ZSB3aXRoIHRoZSBwaHlzaWNhbApA QCAtNzk0LDQ1ICs4MTIsOTUgQEAgdmFsaWRhdGVfcGFyYW1ldGVyc19hbmRfZ2V0X2RibmFtZSh2 b2lkKQogCSAqIGNhdGFsb2dfeG1pbiB2YWx1ZXMgb24gdGhlIHN0YW5kYnkuCiAJICovCiAJaWYg KCFob3Rfc3RhbmRieV9mZWVkYmFjaykKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVyZXBvcnQo TE9HLAogCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCi0JCQkJ ZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBjb25m aWd1cmF0aW9uIiksCisJCQkJZXJybXNnKCJiYWQgY29uZmlndXJhdGlvbiBmb3Igc2xvdCBzeW5j aHJvbml6YXRpb24iKSwKIAkJCQllcnJoaW50KCIlcyBtdXN0IGJlIGVuYWJsZWQuIiwgImhvdF9z dGFuZGJ5X2ZlZWRiYWNrIikpOworCQlyZXR1cm4gZmFsc2U7CisJfQogCiAJLyoKIAkgKiBMb2dp Y2FsIGRlY29kaW5nIHJlcXVpcmVzIHdhbF9sZXZlbCA+PSBsb2dpY2FsIGFuZCB3ZSBjdXJyZW50 bHkgb25seQogCSAqIHN5bmNocm9uaXplIGxvZ2ljYWwgc2xvdHMuCiAJICovCiAJaWYgKHdhbF9s ZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMKQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJlcG9y dChMT0csCiAJCS8qIHRyYW5zbGF0b3I6ICVzIGlzIGEgR1VDIHZhcmlhYmxlIG5hbWUgKi8KLQkJ CQllcnJtc2coImV4aXRpbmcgZnJvbSBzbG90IHN5bmNocm9uaXphdGlvbiBkdWUgdG8gYmFkIGNv bmZpZ3VyYXRpb24iKSwKKwkJCQllcnJtc2coImJhZCBjb25maWd1cmF0aW9uIGZvciBzbG90IHN5 bmNocm9uaXphdGlvbiIpLAogCQkJCWVycmhpbnQoIndhbF9sZXZlbCBtdXN0IGJlID49IGxvZ2lj YWwuIikpOworCQlyZXR1cm4gZmFsc2U7CisJfQogCiAJLyoKIAkgKiBUaGUgcHJpbWFyeV9jb25u aW5mbyBpcyByZXF1aXJlZCB0byBtYWtlIGNvbm5lY3Rpb24gdG8gcHJpbWFyeSBmb3IKIAkgKiBn ZXR0aW5nIHNsb3RzIGluZm9ybWF0aW9uLgogCSAqLwogCWlmIChQcmltYXJ5Q29ubkluZm8gPT0g TlVMTCB8fCBzdHJjbXAoUHJpbWFyeUNvbm5JbmZvLCAiIikgPT0gMCkKLQkJZXJlcG9ydChFUlJP UiwKKwl7CisJCWVyZXBvcnQoTE9HLAogCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJp YWJsZSBuYW1lICovCi0JCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRp b24gZHVlIHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJybXNnKCJiYWQgY29uZmlndXJh dGlvbiBmb3Igc2xvdCBzeW5jaHJvbml6YXRpb24iKSwKIAkJCQllcnJoaW50KCIlcyBtdXN0IGJl IGRlZmluZWQuIiwgInByaW1hcnlfY29ubmluZm8iKSk7CisJCXJldHVybiBmYWxzZTsKKwl9CiAK IAkvKgogCSAqIFRoZSBzbG90IHN5bmMgd29ya2VyIG5lZWRzIGEgZGF0YWJhc2UgY29ubmVjdGlv biBmb3Igd2FscmN2X2V4ZWMgdG8KIAkgKiB3b3JrLgogCSAqLwotCWRibmFtZSA9IHdhbHJjdl9n ZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oUHJpbWFyeUNvbm5JbmZvKTsKLQlpZiAoZGJuYW1lID09 IE5VTEwpCi0JCWVyZXBvcnQoRVJST1IsCisJKmRibmFtZSA9IHdhbHJjdl9nZXRfZGJuYW1lX2Zy b21fY29ubmluZm8oUHJpbWFyeUNvbm5JbmZvKTsKKwlpZiAoKmRibmFtZSA9PSBOVUxMKQorCXsK KwkJZXJlcG9ydChMT0csCiAKIAkJLyoKIAkJICogdHJhbnNsYXRvcjogJ2RibmFtZScgaXMgYSBz cGVjaWZpYyBvcHRpb247ICVzIGlzIGEgR1VDIHZhcmlhYmxlCiAJCSAqIG5hbWUKIAkJICovCi0J CQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBj b25maWd1cmF0aW9uIiksCisJCQkJZXJybXNnKCJiYWQgY29uZmlndXJhdGlvbiBmb3Igc2xvdCBz eW5jaHJvbml6YXRpb24iKSwKIAkJCQllcnJoaW50KCInZGJuYW1lJyBtdXN0IGJlIHNwZWNpZmll ZCBpbiAlcy4iLCAicHJpbWFyeV9jb25uaW5mbyIpKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKwor CXJldHVybiB0cnVlOworfQorCisvKgorICogQ2hlY2sgdGhhdCBhbGwgbmVjZXNzYXJ5IEdVQ3Mg Zm9yIHNsb3Qgc3luY2hyb25pemF0aW9uIGFyZSBzZXQKKyAqIGFwcHJvcHJpYXRlbHkuIElmIG5v dCwgc2xlZXAgZm9yIE1BWF9XT1JLRVJfTkFQVElNRV9NUyBhbmQgY2hlY2sgYWdhaW4uCisgKiBU aGUgaWRlYSBpcyB0byBiZWNvbWUgbm8tb3AgdW50aWwgd2UgZ2V0IHZhbGlkIEdVQ3MgdmFsdWVz LgorICoKKyAqIElmIGFsbCBjaGVja3MgcGFzcywgZXh0cmFjdHMgdGhlIGRibmFtZSBmcm9tIHRo ZSBwcmltYXJ5X2Nvbm5pbmZvIEdVQyBhbmQKKyAqIHJldHVybnMgaXQuCisgKi8KK3N0YXRpYyBj aGFyICoKK3dhaXRfZm9yX3ZhbGlkX3BhcmFtc19hbmRfZ2V0X2RibmFtZSh2b2lkKQoreworCWNo YXIJICAgKmRibmFtZTsKKwlpbnQJCQlyYzsKKworCS8qIFNhbml0eSBjaGVjay4gKi8KKwlBc3Nl cnQoZW5hYmxlX3N5bmNzbG90KTsKKworCWZvciAoOzspCisJeworCQlpZiAodmFsaWRhdGVfcGFy YW1ldGVyc19hbmRfZ2V0X2RibmFtZSgmZGJuYW1lKSkKKwkJCWJyZWFrOworCisJCWVyZXBvcnQo TE9HLCBlcnJtc2coInNraXBwaW5nIHNsb3Qgc3luY2hyb25pemF0aW9uIikpOworCisJCVByb2Nl c3NTbG90U3luY0ludGVycnVwdHMoTlVMTCk7CisKKwkJcmMgPSBXYWl0TGF0Y2goTXlMYXRjaCwK KwkJCQkJICAgV0xfTEFUQ0hfU0VUIHwgV0xfVElNRU9VVCB8IFdMX0VYSVRfT05fUE1fREVBVEgs CisJCQkJCSAgIE1BWF9XT1JLRVJfTkFQVElNRV9NUywKKwkJCQkJICAgV0FJVF9FVkVOVF9SRVBM X1NMT1RTWU5DX01BSU4pOworCisJCWlmIChyYyAmIFdMX0xBVENIX1NFVCkKKwkJCVJlc2V0TGF0 Y2goTXlMYXRjaCk7CisJfQogCiAJcmV0dXJuIGRibmFtZTsKIH0KQEAgLTg0OCwxNiArOTE2LDI4 IEBAIHNsb3RzeW5jX3JlcmVhZF9jb25maWcodm9pZCkKIHsKIAljaGFyCSAgICpvbGRfcHJpbWFy eV9jb25uaW5mbyA9IHBzdHJkdXAoUHJpbWFyeUNvbm5JbmZvKTsKIAljaGFyCSAgICpvbGRfcHJp bWFyeV9zbG90bmFtZSA9IHBzdHJkdXAoUHJpbWFyeVNsb3ROYW1lKTsKKwlib29sCQlvbGRfZW5h YmxlX3N5bmNzbG90ID0gZW5hYmxlX3N5bmNzbG90OwogCWJvb2wJCW9sZF9ob3Rfc3RhbmRieV9m ZWVkYmFjayA9IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrOwogCWJvb2wJCWNvbm5pbmZvX2NoYW5nZWQ7 CiAJYm9vbAkJcHJpbWFyeV9zbG90bmFtZV9jaGFuZ2VkOwogCisJQXNzZXJ0KGVuYWJsZV9zeW5j c2xvdCk7CisKIAlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7CiAJUHJvY2Vzc0NvbmZpZ0Zp bGUoUEdDX1NJR0hVUCk7CiAKIAljb25uaW5mb19jaGFuZ2VkID0gc3RyY21wKG9sZF9wcmltYXJ5 X2Nvbm5pbmZvLCBQcmltYXJ5Q29ubkluZm8pICE9IDA7CiAJcHJpbWFyeV9zbG90bmFtZV9jaGFu Z2VkID0gc3RyY21wKG9sZF9wcmltYXJ5X3Nsb3RuYW1lLCBQcmltYXJ5U2xvdE5hbWUpICE9IDA7 CiAKKwlpZiAob2xkX2VuYWJsZV9zeW5jc2xvdCAhPSBlbmFibGVfc3luY3Nsb3QpCisJeworCQll cmVwb3J0KExPRywKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAq LworCQkJCWVycm1zZygic2xvdCBzeW5jIHdvcmtlciB3aWxsIHNodXRkb3duIGJlY2F1c2UiCisJ CQkJCSAgICIgJXMgaXMgZGlzYWJsZWQiLCAiZW5hYmxlX3N5bmNzbG90IikpOworCQlwcm9jX2V4 aXQoMCk7CisJfQorCiAJaWYgKGNvbm5pbmZvX2NoYW5nZWQgfHwKIAkJcHJpbWFyeV9zbG90bmFt ZV9jaGFuZ2VkIHx8CiAJCShvbGRfaG90X3N0YW5kYnlfZmVlZGJhY2sgIT0gaG90X3N0YW5kYnlf ZmVlZGJhY2spKQpAQCAtODY1LDggKzk0NSw3IEBAIHNsb3RzeW5jX3JlcmVhZF9jb25maWcodm9p ZCkKIAkJZXJlcG9ydChMT0csCiAJCQkJZXJybXNnKCJzbG90IHN5bmMgd29ya2VyIHdpbGwgcmVz dGFydCBiZWNhdXNlIG9mIgogCQkJCQkgICAiIGEgcGFyYW1ldGVyIGNoYW5nZSIpKTsKLQkJLyog VGhlIGV4aXQgY29kZSAxIHdpbGwgbWFrZSBwb3N0bWFzdGVyIHJlc3RhcnQgdGhpcyB3b3JrZXIg Ki8KLQkJcHJvY19leGl0KDEpOworCQlwcm9jX2V4aXQoMCk7CiAJfQogCiAJcGZyZWUob2xkX3By aW1hcnlfY29ubmluZm8pOwpAQCAtODgzLDcgKzk2Miw4IEBAIFByb2Nlc3NTbG90U3luY0ludGVy cnVwdHMoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4pCiAKIAlpZiAoU2h1dGRvd25SZXF1ZXN0UGVu ZGluZykKIAl7Ci0JCXdhbHJjdl9kaXNjb25uZWN0KHdyY29ubik7CisJCWlmICh3cmNvbm4pCisJ CQl3YWxyY3ZfZGlzY29ubmVjdCh3cmNvbm4pOwogCQllcmVwb3J0KExPRywKIAkJCQllcnJtc2co InJlcGxpY2F0aW9uIHNsb3Qgc3luYyB3b3JrZXIgaXMgc2h1dHRpbmcgZG93biIKIAkJCQkJICAg IiBvbiByZWNlaXZpbmcgU0lHSU5UIikpOwpAQCAtOTE2LDE3ICs5OTYsMTYgQEAgc2xvdHN5bmNf d29ya2VyX29uZXhpdChpbnQgY29kZSwgRGF0dW0gYXJnKQogICogc3luYy1jeWNsZXMgaXMgcmVz ZXQgdG8gdGhlIG1pbmltdW0gKDIwMG1zKS4KICAqLwogc3RhdGljIHZvaWQKLXdhaXRfZm9yX3Ns b3RfYWN0aXZpdHkoYm9vbCBzb21lX3Nsb3RfdXBkYXRlZCwgYm9vbCBhbV9jYXNjYWRpbmdfc3Rh bmRieSkKK3dhaXRfZm9yX3Nsb3RfYWN0aXZpdHkoYm9vbCBzb21lX3Nsb3RfdXBkYXRlZCwgYm9v bCByZWNoZWNrX3ByaW1hcnlfaW5mbykKIHsKIAlpbnQJCQlyYzsKIAotCWlmIChhbV9jYXNjYWRp bmdfc3RhbmRieSkKKwlpZiAocmVjaGVja19wcmltYXJ5X2luZm8pCiAJewogCQkvKgotCQkgKiBT bG90IHN5bmNocm9uaXphdGlvbiBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBvbiBjYXNjYWRp bmcKLQkJICogc3RhbmRieS4gU28gaWYgd2UgYXJlIG9uIHRoZSBjYXNjYWRpbmcgc3RhbmRieSwg d2Ugd2lsbCBza2lwIHRoZQotCQkgKiBzeW5jIGFuZCB0YWtlIGEgbG9uZ2VyIG5hcCBiZWZvcmUg d2UgY2hlY2sgYWdhaW4gd2hldGhlciB3ZSBhcmUKLQkJICogc3RpbGwgY2FzY2FkaW5nIHN0YW5k Ynkgb3Igbm90LgorCQkgKiBJZiB3ZSBhcmUgb24gdGhlIGNhc2NhZGluZyBzdGFuZGJ5IG9yIHBy aW1hcnlfc2xvdF9uYW1lIGNvbmZpZ3VyZWQKKwkJICogaXMgbm90IHZhbGlkLCB0aGVuIHdlIHdp bGwgc2tpcCB0aGUgc3luYyBhbmQgdGFrZSBhIGxvbmdlciBuYXAKKwkJICogYmVmb3JlIHdlIGNh biBkbyBjaGVja19wcmltYXJ5X2luZm8oKSBhZ2Fpbi4KIAkJICovCiAJCXNsZWVwX21zID0gTUFY X1dPUktFUl9OQVBUSU1FX01TOwogCX0KQEAgLTk2MiwyMCArMTA0MSwzOCBAQCB3YWl0X2Zvcl9z bG90X2FjdGl2aXR5KGJvb2wgc29tZV9zbG90X3VwZGF0ZWQsIGJvb2wgYW1fY2FzY2FkaW5nX3N0 YW5kYnkpCiAgKiBJdCBjb25uZWN0cyB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIsIGZldGNoZXMgbG9n aWNhbCBmYWlsb3ZlciBzbG90cwogICogaW5mb3JtYXRpb24gcGVyaW9kaWNhbGx5IGluIG9yZGVy IHRvIGNyZWF0ZSBhbmQgc3luYyB0aGUgc2xvdHMuCiAgKi8KLXZvaWQKLVJlcGxTbG90U3luY1dv cmtlck1haW4oRGF0dW0gbWFpbl9hcmcpCitOT05fRVhFQ19TVEFUSUMgdm9pZAorUmVwbFNsb3RT eW5jV29ya2VyTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogewogCVdhbFJlY2VpdmVyQ29u biAqd3Jjb25uID0gTlVMTDsKIAljaGFyCSAgICpkYm5hbWU7CiAJYm9vbAkJYW1fY2FzY2FkaW5n X3N0YW5kYnk7CisJYm9vbAkJcHJpbWFyeV9zbG90X2ludmFsaWQ7CiAJY2hhcgkgICAqZXJyOwor CXNpZ2ptcF9idWYJbG9jYWxfc2lnam1wX2J1ZjsKIAotCWVyZXBvcnQoTE9HLCBlcnJtc2coInJl cGxpY2F0aW9uIHNsb3Qgc3luYyB3b3JrZXIgc3RhcnRlZCIpKTsKKwlhbV9zbG90c3luY193b3Jr ZXIgPSB0cnVlOwogCi0Jb25fc2htZW1fZXhpdChzbG90c3luY193b3JrZXJfb25leGl0LCAoRGF0 dW0pIDApOworCU15QmFja2VuZFR5cGUgPSBCX1NMT1RTWU5DX1dPUktFUjsKIAotCVNwaW5Mb2Nr QWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKwlpbml0X3BzX2Rpc3BsYXkoTlVMTCk7 CisKKwlTZXRQcm9jZXNzaW5nTW9kZShJbml0UHJvY2Vzc2luZyk7CiAKKwkvKgorCSAqIENyZWF0 ZSBhIHBlci1iYWNrZW5kIFBHUFJPQyBzdHJ1Y3QgaW4gc2hhcmVkIG1lbW9yeS4gIFdlIG11c3Qg ZG8gdGhpcworCSAqIGJlZm9yZSB3ZSBhY2Nlc3MgYW55IHNoYXJlZCBtZW1vcnkuCisJICovCisJ SW5pdFByb2Nlc3MoKTsKKworCS8qCisJICogRWFybHkgaW5pdGlhbGl6YXRpb24uCisJICovCisJ QmFzZUluaXQoKTsKKworCUFzc2VydChTbG90U3luY1dvcmtlciAhPSBOVUxMKTsKKworCVNwaW5M b2NrQWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKIAlBc3NlcnQoU2xvdFN5bmNXb3Jr ZXItPnBpZCA9PSBJbnZhbGlkUGlkKTsKIAogCS8qCkBAIC05OTAsMjYgKzEwODcsNjkgQEAgUmVw bFNsb3RTeW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAogCS8qIEFkdmVydGlzZSBvdXIg UElEIHNvIHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyBjYW4ga2lsbCB1cyBvbiBwcm9tb3Rpb24g Ki8KIAlTbG90U3luY1dvcmtlci0+cGlkID0gTXlQcm9jUGlkOwotCiAJU3BpbkxvY2tSZWxlYXNl KCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOwogCisJZXJlcG9ydChMT0csIGVycm1zZygicmVwbGlj YXRpb24gc2xvdCBzeW5jIHdvcmtlciBzdGFydGVkIikpOworCisJb25fc2htZW1fZXhpdChzbG90 c3luY193b3JrZXJfb25leGl0LCAoRGF0dW0pIDApOworCiAJLyogU2V0dXAgc2lnbmFsIGhhbmRs aW5nICovCiAJcHFzaWduYWwoU0lHSFVQLCBTaWduYWxIYW5kbGVyRm9yQ29uZmlnUmVsb2FkKTsK IAlwcXNpZ25hbChTSUdJTlQsIFNpZ25hbEhhbmRsZXJGb3JTaHV0ZG93blJlcXVlc3QpOwogCXBx c2lnbmFsKFNJR1RFUk0sIGRpZSk7Ci0JQmFja2dyb3VuZFdvcmtlclVuYmxvY2tTaWduYWxzKCk7 CisKKwkvKgorCSAqIEVzdGFibGlzaGVzIFNJR0FMUk0gaGFuZGxlciBhbmQgaW5pdGlhbGl6ZSB0 aW1lb3V0IG1vZHVsZS4gSXQgaXMgbmVlZGVkCisJICogYnkgSW5pdFBvc3RncmVzIHRvIHJlZ2lz dGVyIGRpZmZlcmVudCB0aW1lb3V0cy4KKwkgKi8KKwlJbml0aWFsaXplVGltZW91dHMoKTsKIAog CS8qIExvYWQgdGhlIGxpYnBxLXNwZWNpZmljIGZ1bmN0aW9ucyAqLwogCWxvYWRfZmlsZSgibGli cHF3YWxyZWNlaXZlciIsIGZhbHNlKTsKIAotCWRibmFtZSA9IHZhbGlkYXRlX3BhcmFtZXRlcnNf YW5kX2dldF9kYm5hbWUoKTsKKwkvKgorCSAqIElmIGFuIGV4Y2VwdGlvbiBpcyBlbmNvdW50ZXJl ZCwgcHJvY2Vzc2luZyByZXN1bWVzIGhlcmUuCisJICoKKwkgKiBXZSBqdXN0IG5lZWQgdG8gY2xl YW4gdXAsIHJlcG9ydCB0aGUgZXJyb3IsIGFuZCBnbyBhd2F5LgorCSAqCisJICogSWYgd2UgZG8g bm90IGhhdmUgdGhpcyBoYW5kbGluZyBoZXJlLCB0aGVuIHNpbmNlIHRoaXMgd29ya2VyIHByb2Nl c3MKKwkgKiBvcGVyYXRlcyBhdCB0aGUgYm90dG9tIG9mIHRoZSBleGNlcHRpb24gc3RhY2ssIEVS Uk9ScyB0dXJuIGludG8gRkFUQUxzLgorCSAqIFRoZXJlZm9yZSwgd2UgY3JlYXRlIG91ciBvd24g ZXhjZXB0aW9uIGhhbmRsZXIgdG8gY2F0Y2ggRVJST1JzLgorCSAqLworCWlmIChzaWdzZXRqbXAo bG9jYWxfc2lnam1wX2J1ZiwgMSkgIT0gMCkKKwl7CisJCS8qIHNpbmNlIG5vdCB1c2luZyBQR19U UlksIG11c3QgcmVzZXQgZXJyb3Igc3RhY2sgYnkgaGFuZCAqLworCQllcnJvcl9jb250ZXh0X3N0 YWNrID0gTlVMTDsKKworCQkvKiBQcmV2ZW50cyBpbnRlcnJ1cHRzIHdoaWxlIGNsZWFuaW5nIHVw ICovCisJCUhPTERfSU5URVJSVVBUUygpOworCisJCS8qIFJlcG9ydCB0aGUgZXJyb3IgdG8gdGhl IHNlcnZlciBsb2cgKi8KKwkJRW1pdEVycm9yUmVwb3J0KCk7CisKKwkJLyoKKwkJICogV2UgY2Fu IG5vdyBnbyBhd2F5LiAgTm90ZSB0aGF0IGJlY2F1c2Ugd2UgY2FsbGVkIEluaXRQcm9jZXNzLCBh CisJCSAqIGNhbGxiYWNrIHdhcyByZWdpc3RlcmVkIHRvIGRvIFByb2NLaWxsLCB3aGljaCB3aWxs IGNsZWFuIHVwCisJCSAqIG5lY2Vzc2FyeSBzdGF0ZS4KKwkJICovCisJCXByb2NfZXhpdCgwKTsK Kwl9CisKKwkvKiBXZSBjYW4gbm93IGhhbmRsZSBlcmVwb3J0KEVSUk9SKSAqLworCVBHX2V4Y2Vw dGlvbl9zdGFjayA9ICZsb2NhbF9zaWdqbXBfYnVmOworCisJQmFja2dyb3VuZFdvcmtlclVuYmxv Y2tTaWduYWxzKCk7CisKKwlkYm5hbWUgPSB3YWl0X2Zvcl92YWxpZF9wYXJhbXNfYW5kX2dldF9k Ym5hbWUoKTsKIAogCS8qCiAJICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc3BlY2lmaWVkIGJ5 IHVzZXIgaW4gcHJpbWFyeV9jb25uaW5mby4gV2UgbmVlZAogCSAqIGEgZGF0YWJhc2UgY29ubmVj dGlvbiBmb3Igd2FscmN2X2V4ZWMgdG8gd29yay4gUGxlYXNlIHNlZSBjb21tZW50cyBhdG9wCiAJ ICogbGlicHFyY3ZfZXhlYy4KIAkgKi8KLQlCYWNrZ3JvdW5kV29ya2VySW5pdGlhbGl6ZUNvbm5l Y3Rpb24oZGJuYW1lLCBOVUxMLCAwKTsKKwlJbml0UG9zdGdyZXMoZGJuYW1lLCBJbnZhbGlkT2lk LCBOVUxMLCBJbnZhbGlkT2lkLCAwLCBOVUxMKTsKKworCVNldFByb2Nlc3NpbmdNb2RlKE5vcm1h bFByb2Nlc3NpbmcpOwogCiAJLyoKIAkgKiBFc3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8gdGhl IHByaW1hcnkgc2VydmVyIGZvciBzbG90cwpAQCAtMTAyOCwyNiArMTE2OCwyOSBAQCBSZXBsU2xv dFN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCSAqIGNhc2NhZGluZyBzdGFuZGJ5IGFu ZCB2YWxpZGF0ZXMgcHJpbWFyeV9zbG90X25hbWUgZm9yCiAJICogbm9uLWNhc2NhZGluZy1zdGFu ZGJ5cy4KIAkgKi8KLQljaGVja19wcmltYXJ5X2luZm8od3Jjb25uLCAmYW1fY2FzY2FkaW5nX3N0 YW5kYnkpOworCWNoZWNrX3ByaW1hcnlfaW5mbyh3cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRi eSwgJnByaW1hcnlfc2xvdF9pbnZhbGlkKTsKIAogCS8qIE1haW4gd2FpdCBsb29wICovCiAJZm9y ICg7OykKIAl7CiAJCWJvb2wJCXNvbWVfc2xvdF91cGRhdGVkID0gZmFsc2U7CisJCWJvb2wJCXJl Y2hlY2tfcHJpbWFyeV9pbmZvID0gYW1fY2FzY2FkaW5nX3N0YW5kYnkgfHwgcHJpbWFyeV9zbG90 X2ludmFsaWQ7CiAKIAkJUHJvY2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyh3cmNvbm4pOwogCi0JCWlm ICghYW1fY2FzY2FkaW5nX3N0YW5kYnkpCisJCWlmICghcmVjaGVja19wcmltYXJ5X2luZm8pCiAJ CQlzb21lX3Nsb3RfdXBkYXRlZCA9IHN5bmNocm9uaXplX3Nsb3RzKHdyY29ubik7CisJCWVsc2Ug aWYgKHByaW1hcnlfc2xvdF9pbnZhbGlkKQorCQkJZXJlcG9ydChMT0csIGVycm1zZygic2tpcHBp bmcgc2xvdCBzeW5jaHJvbml6YXRpb24iKSk7CiAKLQkJd2FpdF9mb3Jfc2xvdF9hY3Rpdml0eShz b21lX3Nsb3RfdXBkYXRlZCwgYW1fY2FzY2FkaW5nX3N0YW5kYnkpOworCQl3YWl0X2Zvcl9zbG90 X2FjdGl2aXR5KHNvbWVfc2xvdF91cGRhdGVkLCByZWNoZWNrX3ByaW1hcnlfaW5mbyk7CiAKIAkJ LyoKIAkJICogSWYgdGhlIHN0YW5kYnkgd2FzIHByb21vdGVkIHRoZW4gd2hhdCB3YXMgcHJldmlv dXNseSBhIGNhc2NhZGluZwogCQkgKiBzdGFuZGJ5IG1pZ2h0IG5vIGxvbmdlciBiZSBvbmUsIHNv IHJlY2hlY2sgZWFjaCB0aW1lLgogCQkgKi8KLQkJaWYgKGFtX2Nhc2NhZGluZ19zdGFuZGJ5KQot CQkJY2hlY2tfcHJpbWFyeV9pbmZvKHdyY29ubiwgJmFtX2Nhc2NhZGluZ19zdGFuZGJ5KTsKKwkJ aWYgKHJlY2hlY2tfcHJpbWFyeV9pbmZvKQorCQkJY2hlY2tfcHJpbWFyeV9pbmZvKHdyY29ubiwg JmFtX2Nhc2NhZGluZ19zdGFuZGJ5LCAmcHJpbWFyeV9zbG90X2ludmFsaWQpOwogCX0KIAogCS8q CkBAIC0xMDY0LDcgKzEyMDcsNyBAQCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5f YXJnKQogYm9vbAogSXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIodm9pZCkKIHsKLQlyZXR1cm4gU2xv dFN5bmNXb3JrZXItPnBpZCA9PSBNeVByb2NQaWQ7CisJcmV0dXJuIGFtX3Nsb3RzeW5jX3dvcmtl cjsKIH0KIAogLyoKQEAgLTEwOTUsNyArMTIzOCw3IEBAIFNodXREb3duU2xvdFN5bmModm9pZCkK IAkJLyogV2FpdCBhIGJpdCwgd2UgZG9uJ3QgZXhwZWN0IHRvIGhhdmUgdG8gd2FpdCBsb25nICov CiAJCXJjID0gV2FpdExhdGNoKE15TGF0Y2gsCiAJCQkJCSAgIFdMX0xBVENIX1NFVCB8IFdMX1RJ TUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRILAotCQkJCQkgICAxMEwsIFdBSVRfRVZFTlRfQkdX T1JLRVJfU0hVVERPV04pOworCQkJCQkgICAxMEwsIFdBSVRfRVZFTlRfUkVQTF9TTE9UU1lOQ19T SFVURE9XTik7CiAKIAkJaWYgKHJjICYgV0xfTEFUQ0hfU0VUKQogCQl7CkBAIC0xMTM4LDQyICsx MjgxLDYyIEBAIFNsb3RTeW5jV29ya2VyU2htZW1Jbml0KHZvaWQpCiAJfQogfQogCisjaWZkZWYg RVhFQ19CQUNLRU5ECiAvKgotICogUmVnaXN0ZXIgdGhlIGJhY2tncm91bmQgd29ya2VyIGZvciBz bG90cyBzeW5jaHJvbml6YXRpb24gcHJvdmlkZWQKLSAqIGVuYWJsZV9zeW5jc2xvdCBpcyBPTi4K KyAqIFRoZSBmb3JrZXhlYyByb3V0aW5lIGZvciB0aGUgc2xvdCBzeW5jIHdvcmtlciBwcm9jZXNz LgorICoKKyAqIEZvcm1hdCB1cCB0aGUgYXJnbGlzdCwgdGhlbiBmb3JrIGFuZCBleGVjLgogICov Ci12b2lkCi1TbG90U3luY1dvcmtlclJlZ2lzdGVyKHZvaWQpCitzdGF0aWMgcGlkX3QKK3Nsb3Rz eW5jd29ya2VyX2ZvcmtleGVjKHZvaWQpCiB7Ci0JQmFja2dyb3VuZFdvcmtlciBiZ3c7CisJY2hh cgkgICAqYXZbMTBdOworCWludAkJCWFjID0gMDsKIAotCWlmICghZW5hYmxlX3N5bmNzbG90KQot CXsKLQkJZXJlcG9ydChMT0csCi0JCQkJZXJybXNnKCJza2lwcGluZyBzbG90IHN5bmNocm9uaXph dGlvbiIpLAotCQkJCWVycmRldGFpbCgiZW5hYmxlX3N5bmNzbG90IGlzIGRpc2FibGVkLiIpKTsK LQkJcmV0dXJuOwotCX0KKwlhdlthYysrXSA9ICJwb3N0Z3JlcyI7CisJYXZbYWMrK10gPSAiLS1m b3Jrc3N3b3JrZXIiOworCWF2W2FjKytdID0gTlVMTDsJCQkvKiBmaWxsZWQgaW4gYnkgcG9zdG1h c3Rlcl9mb3JrZXhlYyAqLworCWF2W2FjXSA9IE5VTEw7CiAKLQltZW1zZXQoJmJndywgMCwgc2l6 ZW9mKGJndykpOworCUFzc2VydChhYyA8IGxlbmd0aG9mKGF2KSk7CiAKLQkvKiBXZSBuZWVkIGRh dGFiYXNlIGNvbm5lY3Rpb24gd2hpY2ggbmVlZHMgc2hhcmVkLW1lbW9yeSBhY2Nlc3MgYXMgd2Vs bCAqLwotCWJndy5iZ3dfZmxhZ3MgPSBCR1dPUktFUl9TSE1FTV9BQ0NFU1MgfAotCQlCR1dPUktF Ul9CQUNLRU5EX0RBVEFCQVNFX0NPTk5FQ1RJT047CisJcmV0dXJuIHBvc3RtYXN0ZXJfZm9ya2V4 ZWMoYWMsIGF2KTsKK30KKyNlbmRpZgogCi0JLyogU3RhcnQgYXMgc29vbiBhcyBhIGNvbnNpc3Rl bnQgc3RhdGUgaGFzIGJlZW4gcmVhY2hlZCBpbiBhIGhvdCBzdGFuZGJ5ICovCi0JYmd3LmJnd19z dGFydF90aW1lID0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieTsKKy8q CisgKiBNYWluIGVudHJ5IHBvaW50IGZvciBzbG90IHN5bmMgd29ya2VyIHByb2Nlc3MsIHRvIGJl IGNhbGxlZCBmcm9tIHRoZQorICogcG9zdG1hc3Rlci4KKyAqLworaW50CitTdGFydFNsb3RTeW5j V29ya2VyKHZvaWQpCit7CisJcGlkX3QJCXBpZDsKKworI2lmZGVmIEVYRUNfQkFDS0VORAorCXN3 aXRjaCAoKHBpZCA9IHNsb3RzeW5jd29ya2VyX2ZvcmtleGVjKCkpKQorI2Vsc2UKKwlzd2l0Y2gg KChwaWQgPSBmb3JrX3Byb2Nlc3MoKSkpCisJeworCQljYXNlIDA6CisJCQkvKiBpbiBwb3N0bWFz dGVyIGNoaWxkIC4uLiAqLworCQkJSW5pdFBvc3RtYXN0ZXJDaGlsZCgpOwogCi0Jc25wcmludGYo Ymd3LmJnd19saWJyYXJ5X25hbWUsIE1BWFBHUEFUSCwgInBvc3RncmVzIik7Ci0Jc25wcmludGYo Ymd3LmJnd19mdW5jdGlvbl9uYW1lLCBCR1dfTUFYTEVOLCAiUmVwbFNsb3RTeW5jV29ya2VyTWFp biIpOwotCXNucHJpbnRmKGJndy5iZ3dfbmFtZSwgQkdXX01BWExFTiwKLQkJCSAicmVwbGljYXRp b24gc2xvdCBzeW5jIHdvcmtlciIpOwotCXNucHJpbnRmKGJndy5iZ3dfdHlwZSwgQkdXX01BWExF TiwKLQkJCSAic2xvdCBzeW5jIHdvcmtlciIpOworCQkJLyogQ2xvc2UgdGhlIHBvc3RtYXN0ZXIn cyBzb2NrZXRzICovCisJCQlDbG9zZVBvc3RtYXN0ZXJQb3J0cyhmYWxzZSk7CiAKLQliZ3cuYmd3 X3Jlc3RhcnRfdGltZSA9IEJHV19ERUZBVUxUX1JFU1RBUlRfSU5URVJWQUw7Ci0JYmd3LmJnd19u b3RpZnlfcGlkID0gMDsKLQliZ3cuYmd3X21haW5fYXJnID0gKERhdHVtKSAwOworCQkJUmVwbFNs b3RTeW5jV29ya2VyTWFpbigwLCBOVUxMKTsKKwkJCWJyZWFrOworI2VuZGlmCisJCWNhc2UgLTE6 CisJCQllcmVwb3J0KExPRywKKwkJCQkJKGVycm1zZygiY291bGQgbm90IGZvcmsgc2xvdCBzeW5j IHdvcmtlciBwcm9jZXNzOiAlbSIpKSk7CisJCQlyZXR1cm4gMDsKKworCQlkZWZhdWx0OgorCQkJ cmV0dXJuIChpbnQpIHBpZDsKKwl9CiAKLQlSZWdpc3RlckJhY2tncm91bmRXb3JrZXIoJmJndyk7 CisJLyogc2hvdWxkbid0IGdldCBoZXJlICovCisJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdy L3Byb2MuYwppbmRleCA0YWQ5NmJlYjg3Li5hYTUzYTU3MDc3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9zdG9yYWdlL2xtZ3IvcHJvYy5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9w cm9jLmMKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90LmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vc3luY3JlcC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dh bHNlbmRlci5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIKICNpbmNs dWRlICJzdG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBj LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCkBAIC0zNjQsOCArMzY1LDEyIEBAIEluaXRQ cm9jZXNzKHZvaWQpCiAJICogY2hpbGQ7IHRoaXMgaXMgc28gdGhhdCB0aGUgcG9zdG1hc3RlciBj YW4gZGV0ZWN0IGl0IGlmIHdlIGV4aXQgd2l0aG91dAogCSAqIGNsZWFuaW5nIHVwLiAgKFhYWCBh dXRvdmFjIGxhdW5jaGVyIGN1cnJlbnRseSBkb2Vzbid0IHBhcnRpY2lwYXRlIGluCiAJICogdGhp czsgaXQgcHJvYmFibHkgc2hvdWxkLikKKwkgKgorCSAqIFNsb3Qgc3luYyB3b3JrZXIgYWxzbyBk b2VzIG5vdCBwYXJ0aWNpcGF0ZSBpbiBpdCwgc2VlIGNvbW1lbnRzIGF0b3AKKwkgKiAnc3RydWN0 IGJrZW5kJyBpbiBwb3N0bWFzdGVyLmMuCiAJICovCi0JaWYgKElzVW5kZXJQb3N0bWFzdGVyICYm ICFJc0F1dG9WYWN1dW1MYXVuY2hlclByb2Nlc3MoKSkKKwlpZiAoSXNVbmRlclBvc3RtYXN0ZXIg JiYgIUlzQXV0b1ZhY3V1bUxhdW5jaGVyUHJvY2VzcygpICYmCisJCSFJc0xvZ2ljYWxTbG90U3lu Y1dvcmtlcigpKQogCQlNYXJrUG9zdG1hc3RlckNoaWxkQWN0aXZlKCk7CiAKIAkvKgpAQCAtOTM0 LDggKzkzOSwxMiBAQCBQcm9jS2lsbChpbnQgY29kZSwgRGF0dW0gYXJnKQogCSAqIFRoaXMgcHJv Y2VzcyBpcyBubyBsb25nZXIgcHJlc2VudCBpbiBzaGFyZWQgbWVtb3J5IGluIGFueSBtZWFuaW5n ZnVsCiAJICogd2F5LCBzbyB0ZWxsIHRoZSBwb3N0bWFzdGVyIHdlJ3ZlIGNsZWFuZWQgdXAgYWNj ZXB0YWJseSB3ZWxsLiAoWFhYCiAJICogYXV0b3ZhYyBsYXVuY2hlciBzaG91bGQgYmUgaW5jbHVk ZWQgaGVyZSBzb21lZGF5KQorCSAqCisJICogU2xvdCBzeW5jIHdvcmtlciBpcyBhbHNvIG5vdCBh IHBvc3RtYXN0ZXIgY2hpbGQsIHNvIHNraXAgdGhpcyBzaGFyZWQKKwkgKiBtZW1vcnkgcmVsYXRl ZCBwcm9jZXNzaW5nIGhlcmUuCiAJICovCi0JaWYgKElzVW5kZXJQb3N0bWFzdGVyICYmICFJc0F1 dG9WYWN1dW1MYXVuY2hlclByb2Nlc3MoKSkKKwlpZiAoSXNVbmRlclBvc3RtYXN0ZXIgJiYgIUlz QXV0b1ZhY3V1bUxhdW5jaGVyUHJvY2VzcygpICYmCisJCSFJc0xvZ2ljYWxTbG90U3luY1dvcmtl cigpKQogCQlNYXJrUG9zdG1hc3RlckNoaWxkSW5hY3RpdmUoKTsKIAogCS8qIHdha2UgYXV0b3Zh YyBsYXVuY2hlciBpZiBuZWVkZWQgLS0gc2VlIGNvbW1lbnRzIGluIEZyZWVXb3JrZXJJbmZvICov CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90 Y29wL3Bvc3RncmVzLmMKaW5kZXggZThjNTMwYWNkOS4uMWEzNGJkMzcxNSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdy ZXMuYwpAQCAtMzI4NiwxNyArMzI4Niw2IEBAIFByb2Nlc3NJbnRlcnJ1cHRzKHZvaWQpCiAJCQkg Ki8KIAkJCXByb2NfZXhpdCgxKTsKIAkJfQotCQllbHNlIGlmIChJc0xvZ2ljYWxTbG90U3luY1dv cmtlcigpKQotCQl7Ci0JCQllbG9nKERFQlVHMSwKLQkJCQkgInJlcGxpY2F0aW9uIHNsb3Qgc3lu YyB3b3JrZXIgaXMgc2h1dHRpbmcgZG93biBkdWUgdG8gYWRtaW5pc3RyYXRvciBjb21tYW5kIik7 Ci0KLQkJCS8qCi0JCQkgKiBTbG90IHN5bmMgd29ya2VyIGNhbiBiZSBzdG9wcGVkIGF0IGFueSB0 aW1lLiBVc2UgZXhpdCBzdGF0dXMgMQotCQkJICogc28gdGhlIGJhY2tncm91bmQgd29ya2VyIGlz IHJlc3RhcnRlZC4KLQkJCSAqLwotCQkJcHJvY19leGl0KDEpOwotCQl9CiAJCWVsc2UgaWYgKElz QmFja2dyb3VuZFdvcmtlcikKIAkJCWVyZXBvcnQoRkFUQUwsCiAJCQkJCShlcnJjb2RlKEVSUkNP REVfQURNSU5fU0hVVERPV04pLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvcGdzdGF0X2lvLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfaW8uYwpp bmRleCA0M2MzOTNkNmZlLi45ZDZlMDY3MzgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hY3Rpdml0eS9wZ3N0YXRfaW8uYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9w Z3N0YXRfaW8uYwpAQCAtMzM4LDYgKzMzOCw3IEBAIHBnc3RhdF90cmFja3NfaW9fYmt0eXBlKEJh Y2tlbmRUeXBlIGJrdHlwZSkKIAkJY2FzZSBCX0JHX1dPUktFUjoKIAkJY2FzZSBCX0JHX1dSSVRF UjoKIAkJY2FzZSBCX0NIRUNLUE9JTlRFUjoKKwkJY2FzZSBCX1NMT1RTWU5DX1dPUktFUjoKIAkJ Y2FzZSBCX1NUQU5EQUxPTkVfQkFDS0VORDoKIAkJY2FzZSBCX1NUQVJUVVA6CiAJCWNhc2UgQl9X QUxfU0VOREVSOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9l dmVudF9uYW1lcy50eHQgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25h bWVzLnR4dAppbmRleCAzZTYyMDMzMjJhLi40YzBlZTJkZDI5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dAorKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVzLnR4dApAQCAtNTQsNiArNTQsNyBAQCBM T0dJQ0FMX0xBVU5DSEVSX01BSU4JIldhaXRpbmcgaW4gbWFpbiBsb29wIG9mIGxvZ2ljYWwgcmVw bGljYXRpb24gbGF1bmNoZXIgcHJvYwogTE9HSUNBTF9QQVJBTExFTF9BUFBMWV9NQUlOCSJXYWl0 aW5nIGluIG1haW4gbG9vcCBvZiBsb2dpY2FsIHJlcGxpY2F0aW9uIHBhcmFsbGVsIGFwcGx5IHBy b2Nlc3MuIgogUkVDT1ZFUllfV0FMX1NUUkVBTQkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Ygc3Rh cnR1cCBwcm9jZXNzIGZvciBXQUwgdG8gYXJyaXZlLCBkdXJpbmcgc3RyZWFtaW5nIHJlY292ZXJ5 LiIKIFJFUExfU0xPVFNZTkNfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Ygc2xvdCBzeW5j IHdvcmtlci4iCitSRVBMX1NMT1RTWU5DX1NIVVRET1dOCSJXYWl0aW5nIGZvciBzbG90IHN5bmMg d29ya2VyIHRvIHNodXQgZG93bi4iCiBTWVNMT0dHRVJfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxv b3Agb2Ygc3lzbG9nZ2VyIHByb2Nlc3MuIgogV0FMX1JFQ0VJVkVSX01BSU4JIldhaXRpbmcgaW4g bWFpbiBsb29wIG9mIFdBTCByZWNlaXZlciBwcm9jZXNzLiIKIFdBTF9TRU5ERVJfTUFJTgkiV2Fp dGluZyBpbiBtYWluIGxvb3Agb2YgV0FMIHNlbmRlciBwcm9jZXNzLiIKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2luaXQvbWlzY2luaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2luaXQv bWlzY2luaXQuYwppbmRleCAyM2Y3N2E1OWU1Li4zMDlhYTMzYTYyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9pbml0L21pc2Npbml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5p dC9taXNjaW5pdC5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRl cnJ1cHQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3BnYXJjaC5oIgogI2luY2x1ZGUgInBvc3Rt YXN0ZXIvcG9zdG1hc3Rlci5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIu aCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9pcGMuaCIKICNp bmNsdWRlICJzdG9yYWdlL2xhdGNoLmgiCkBAIC0yOTMsNiArMjk0LDkgQEAgR2V0QmFja2VuZFR5 cGVEZXNjKEJhY2tlbmRUeXBlIGJhY2tlbmRUeXBlKQogCQljYXNlIEJfTE9HR0VSOgogCQkJYmFj a2VuZERlc2MgPSAibG9nZ2VyIjsKIAkJCWJyZWFrOworCQljYXNlIEJfU0xPVFNZTkNfV09SS0VS OgorCQkJYmFja2VuZERlc2MgPSAic2xvdHN5bmN3b3JrZXIiOworCQkJYnJlYWs7CiAJCWNhc2Ug Ql9TVEFOREFMT05FX0JBQ0tFTkQ6CiAJCQliYWNrZW5kRGVzYyA9ICJzdGFuZGFsb25lIGJhY2tl bmQiOwogCQkJYnJlYWs7CkBAIC04MzUsOSArODM5LDEwIEBAIEluaXRpYWxpemVTZXNzaW9uVXNl cklkU3RhbmRhbG9uZSh2b2lkKQogewogCS8qCiAJICogVGhpcyBmdW5jdGlvbiBzaG91bGQgb25s eSBiZSBjYWxsZWQgaW4gc2luZ2xlLXVzZXIgbW9kZSwgaW4gYXV0b3ZhY3V1bQotCSAqIHdvcmtl cnMsIGFuZCBpbiBiYWNrZ3JvdW5kIHdvcmtlcnMuCisJICogd29ya2VycywgaW4gc2xvdCBzeW5j IHdvcmtlciBhbmQgaW4gYmFja2dyb3VuZCB3b3JrZXJzLgogCSAqLwotCUFzc2VydCghSXNVbmRl clBvc3RtYXN0ZXIgfHwgSXNBdXRvVmFjdXVtV29ya2VyUHJvY2VzcygpIHx8IElzQmFja2dyb3Vu ZFdvcmtlcik7CisJQXNzZXJ0KCFJc1VuZGVyUG9zdG1hc3RlciB8fCBJc0F1dG9WYWN1dW1Xb3Jr ZXJQcm9jZXNzKCkgfHwKKwkJICAgSXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIoKSB8fCBJc0JhY2tn cm91bmRXb3JrZXIpOwogCiAJLyogY2FsbCBvbmx5IG9uY2UgKi8KIAlBc3NlcnQoIU9pZElzVmFs aWQoQXV0aGVudGljYXRlZFVzZXJJZCkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9wb3N0aW5pdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jCmluZGV4 IDFhZDMzNjcxNTkuLmE1YWYwZjQxMGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2lu aXQvcG9zdGluaXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMKQEAg LTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJwb3N0bWFzdGVyL2F1dG92YWN1dW0uaCIKICNpbmNs dWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9zbG90 LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oIgogI2luY2x1ZGUgInJl cGxpY2F0aW9uL3dhbHNlbmRlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmbWdyLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9mZC5oIgpAQCAtODc0LDEwICs4NzUsMTEgQEAgSW5pdFBvc3RncmVzKGNv bnN0IGNoYXIgKmluX2RibmFtZSwgT2lkIGRib2lkLAogCSAqIFBlcmZvcm0gY2xpZW50IGF1dGhl bnRpY2F0aW9uIGlmIG5lY2Vzc2FyeSwgdGhlbiBmaWd1cmUgb3V0IG91cgogCSAqIHBvc3RncmVz IHVzZXIgSUQsIGFuZCBzZWUgaWYgd2UgYXJlIGEgc3VwZXJ1c2VyLgogCSAqCi0JICogSW4gc3Rh bmRhbG9uZSBtb2RlIGFuZCBpbiBhdXRvdmFjdXVtIHdvcmtlciBwcm9jZXNzZXMsIHdlIHVzZSBh IGZpeGVkCi0JICogSUQsIG90aGVyd2lzZSB3ZSBmaWd1cmUgaXQgb3V0IGZyb20gdGhlIGF1dGhl bnRpY2F0ZWQgdXNlciBuYW1lLgorCSAqIEluIHN0YW5kYWxvbmUgbW9kZSwgYXV0b3ZhY3V1bSB3 b3JrZXIgcHJvY2Vzc2VzIGFuZCBzbG90IHN5bmMgd29ya2VyCisJICogcHJvY2Vzcywgd2UgdXNl IGEgZml4ZWQgSUQsIG90aGVyd2lzZSB3ZSBmaWd1cmUgaXQgb3V0IGZyb20gdGhlCisJICogYXV0 aGVudGljYXRlZCB1c2VyIG5hbWUuCiAJICovCi0JaWYgKGJvb3RzdHJhcCB8fCBJc0F1dG9WYWN1 dW1Xb3JrZXJQcm9jZXNzKCkpCisJaWYgKGJvb3RzdHJhcCB8fCBJc0F1dG9WYWN1dW1Xb3JrZXJQ cm9jZXNzKCkgfHwgSXNMb2dpY2FsU2xvdFN5bmNXb3JrZXIoKSkKIAl7CiAJCUluaXRpYWxpemVT ZXNzaW9uVXNlcklkU3RhbmRhbG9uZSgpOwogCQlhbV9zdXBlcnVzZXIgPSB0cnVlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91 dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCBmZTA0NGMxNmRlLi4zYWYxMWIyYjgwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMjA1Niw3ICsyMDU2LDcgQEAgc3RydWN0 IGNvbmZpZ19ib29sIENvbmZpZ3VyZU5hbWVzQm9vbFtdID0KIAl9LAogCiAJewotCQl7ImVuYWJs ZV9zeW5jc2xvdCIsIFBHQ19QT1NUTUFTVEVSLCBSRVBMSUNBVElPTl9TVEFOREJZLAorCQl7ImVu YWJsZV9zeW5jc2xvdCIsIFBHQ19TSUdIVVAsIFJFUExJQ0FUSU9OX1NUQU5EQlksCiAJCQlnZXR0 ZXh0X25vb3AoIkVuYWJsZXMgYSBwaHlzaWNhbCBzdGFuZGJ5IHRvIHN5bmNocm9uaXplIGxvZ2lj YWwgZmFpbG92ZXIgc2xvdHMgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIuIiksCiAJCX0sCiAJCSZl bmFibGVfc3luY3Nsb3QsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9taXNjYWRtaW4uaCBiL3Ny Yy9pbmNsdWRlL21pc2NhZG1pbi5oCmluZGV4IDBiMDFjMWYwOTMuLjY1ODE5Y2I3YTcgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL21pc2NhZG1pbi5oCisrKyBiL3NyYy9pbmNsdWRlL21pc2NhZG1p bi5oCkBAIC0zMzIsNiArMzMyLDcgQEAgdHlwZWRlZiBlbnVtIEJhY2tlbmRUeXBlCiAJQl9CR19X UklURVIsCiAJQl9DSEVDS1BPSU5URVIsCiAJQl9MT0dHRVIsCisJQl9TTE9UU1lOQ19XT1JLRVIs CiAJQl9TVEFOREFMT05FX0JBQ0tFTkQsCiAJQl9TVEFSVFVQLAogCUJfV0FMX1JFQ0VJVkVSLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oIGIvc3JjL2luY2x1 ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oCmluZGV4IDcwOTJmYzcyYzYuLjIyZmM0OWVjMjcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaAorKysgYi9zcmMvaW5j bHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKQEAgLTc5LDcgKzc5LDYgQEAgdHlwZWRlZiBlbnVt CiAJQmdXb3JrZXJTdGFydF9Qb3N0bWFzdGVyU3RhcnQsCiAJQmdXb3JrZXJTdGFydF9Db25zaXN0 ZW50U3RhdGUsCiAJQmdXb3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkLAotCUJnV29ya2VyU3Rh cnRfQ29uc2lzdGVudFN0YXRlX0hvdFN0YW5kYnksCiB9IEJnV29ya2VyU3RhcnRUaW1lOwogCiAj ZGVmaW5lIEJHV19ERUZBVUxUX1JFU1RBUlRfSU5URVJWQUwJNjAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vd29ya2VyX2ludGVybmFsLmgKaW5kZXggMjE2NzcyMDk3MS4uY2Q1MzBkM2Q0MCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKKysrIGIv c3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgKQEAgLTMyOSw5ICszMjks MTAgQEAgZXh0ZXJuIHZvaWQgcGFfZGVjcl9hbmRfd2FpdF9zdHJlYW1fYmxvY2sodm9pZCk7CiAK IGV4dGVybiB2b2lkIHBhX3hhY3RfZmluaXNoKFBhcmFsbGVsQXBwbHlXb3JrZXJJbmZvICp3aW5m bywKIAkJCQkJCSAgIFhMb2dSZWNQdHIgcmVtb3RlX2xzbik7Ci0KLWV4dGVybiB2b2lkIFJlcGxT bG90U3luY1dvcmtlck1haW4oRGF0dW0gbWFpbl9hcmcpOwotZXh0ZXJuIHZvaWQgU2xvdFN5bmNX b3JrZXJSZWdpc3Rlcih2b2lkKTsKKyNpZmRlZiBFWEVDX0JBQ0tFTkQKK2V4dGVybiB2b2lkIFJl cGxTbG90U3luY1dvcmtlck1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgcGdfYXR0cmlidXRl X25vcmV0dXJuKCk7CisjZW5kaWYKK2V4dGVybiBpbnQgU3RhcnRTbG90U3luY1dvcmtlcih2b2lk KTsKIGV4dGVybiB2b2lkIFNodXREb3duU2xvdFN5bmModm9pZCk7CiBleHRlcm4gdm9pZCBTbG90 U3luY1dvcmtlclNobWVtSW5pdCh2b2lkKTsKIAotLSAKMi4zNC4xCgo= --000000000000fde609060f87276b Content-Type: application/octet-stream; name="v65-0006-Document-the-steps-to-check-if-the-standby-is-re.patch" Content-Disposition: attachment; filename="v65-0006-Document-the-steps-to-check-if-the-standby-is-re.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lroufv7b5 RnJvbSBjMGYwZmUxYjFhNzI0ZjVjOGVjZGFhZDFmODQxYjU0ZjczOWYyNTYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTE6MDQ6MTYgKzA1MzAKU3ViamVjdDogW1BBVENIIHY2 NSA2LzZdIERvY3VtZW50IHRoZSBzdGVwcyB0byBjaGVjayBpZiB0aGUgc3RhbmRieSBpcyByZWFk eQogZm9yIGZhaWxvdmVyCgotLS0KIGRvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s ICAgfCAgIDkgKysKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgfCAxMzAg KysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvaGlnaC1hdmFpbGFiaWxpdHkuc2dtbCBi L2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCmluZGV4IDIzNmMwYWY2NWYuLjM2 MjE1YWE2OGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9oaWdoLWF2YWlsYWJpbGl0eS5zZ21sCkBAIC0xNDg3LDYgKzE0 ODcsMTUgQEAgc3luY2hyb25vdXNfc3RhbmRieV9uYW1lcyA9ICdBTlkgMiAoczEsIHMyLCBzMykn CiAgICAgV3JpdHRlbiBhZG1pbmlzdHJhdGlvbiBwcm9jZWR1cmVzIGFyZSBhZHZpc2VkLgogICAg PC9wYXJhPgogCisgICA8cGFyYT4KKyAgICBJZiB5b3UgaGF2ZSBvcHRlZCBmb3Igc3luY2hyb25p emF0aW9uIG9mIGxvZ2ljYWwgc2xvdHMgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWxk ZWNvZGluZy1yZXBsaWNhdGlvbi1zbG90cy1zeW5jaHJvbml6YXRpb24iLz4pLAorICAgIHRoZW4g YmVmb3JlIHN3aXRjaGluZyB0byB0aGUgc3RhbmRieSBzZXJ2ZXIsIGl0IGlzIHJlY29tbWVuZGVk IHRvIGNoZWNrCisgICAgaWYgdGhlIGxvZ2ljYWwgc2xvdHMgc3luY2hyb25pemVkIG9uIHRoZSBz dGFuZGJ5IHNlcnZlciBhcmUgcmVhZHkKKyAgICBmb3IgZmFpbG92ZXIuIFRoaXMgY2FuIGJlIGRv bmUgYnkgZm9sbG93aW5nIHRoZSBzdGVwcyBkZXNjcmliZWQgaW4KKyAgICA8eHJlZiBsaW5rZW5k PSJsb2dpY2FsLXJlcGxpY2F0aW9uLWZhaWxvdmVyIi8+LgorICAgPC9wYXJhPgorCiAgICA8cGFy YT4KICAgICBUbyB0cmlnZ2VyIGZhaWxvdmVyIG9mIGEgbG9nLXNoaXBwaW5nIHN0YW5kYnkgc2Vy dmVyLCBydW4KICAgICA8Y29tbWFuZD5wZ19jdGwgcHJvbW90ZTwvY29tbWFuZD4gb3IgY2FsbCA8 ZnVuY3Rpb24+cGdfcHJvbW90ZSgpPC9mdW5jdGlvbj4uCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGlj YXRpb24uc2dtbAppbmRleCBlYzIxMzA2NjllLi45MjRlNGVhMDMzIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dp Y2FsLXJlcGxpY2F0aW9uLnNnbWwKQEAgLTY4Nyw2ICs2ODcsMTM2IEBAIEFMVEVSIFNVQlNDUklQ VElPTgogCiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1mYWls b3ZlciI+CisgIDx0aXRsZT5Mb2dpY2FsIFJlcGxpY2F0aW9uIEZhaWxvdmVyPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFdoZW4gdGhlIHB1Ymxpc2hlciBzZXJ2ZXIgaXMgdGhlIHByaW1hcnkgc2Vy dmVyIG9mIGEgc3RyZWFtaW5nIHJlcGxpY2F0aW9uLAorICAgdGhlIGxvZ2ljYWwgc2xvdHMgb24g dGhhdCBwcmltYXJ5IHNlcnZlciBjYW4gYmUgc3luY2hyb25pemVkIHRvIHRoZSBzdGFuZGJ5Cisg ICBzZXJ2ZXIgYnkgc3BlY2lmeWluZyA8bGl0ZXJhbD5mYWlsb3ZlciA9IHRydWU8L2xpdGVyYWw+ IHdoZW4gY3JlYXRpbmcKKyAgIHN1YnNjcmlwdGlvbnMgZm9yIHRob3NlIHB1YmxpY2F0aW9ucy4g RW5hYmxpbmcgZmFpbG92ZXIgZW5zdXJlcyBhIHNlYW1sZXNzCisgICB0cmFuc2l0aW9uIG9mIHRo b3NlIHN1YnNjcmlwdGlvbnMgYWZ0ZXIgdGhlIHN0YW5kYnkgaXMgcHJvbW90ZWQuIFRoZXkgY2Fu CisgICBjb250aW51ZSBzdWJzY3JpYmluZyB0byBwdWJsaWNhdGlvbnMgbm93IG9uIHRoZSBuZXcg cHJpbWFyeSBzZXJ2ZXIgd2l0aG91dAorICAgYW55IGRhdGEgbG9zcy4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgQmVjYXVzZSB0aGUgc2xvdCBzeW5jaHJvbml6YXRpb24gbG9naWMgY29waWVz IGFzeW5jaHJvbm91c2x5LCBpdCBpcworICAgbmVjZXNzYXJ5IHRvIGNvbmZpcm0gdGhhdCByZXBs aWNhdGlvbiBzbG90cyBoYXZlIGJlZW4gc3luY2VkIHRvIHRoZSBzdGFuZGJ5CisgICBzZXJ2ZXIg YmVmb3JlIHRoZSBmYWlsb3ZlciBoYXBwZW5zLiBGdXJ0aGVybW9yZSwgdG8gZW5zdXJlIGEgc3Vj Y2Vzc2Z1bAorICAgZmFpbG92ZXIsIHRoZSBzdGFuZGJ5IHNlcnZlciBtdXN0IG5vdCBiZSBsYWdn aW5nIGJlaGluZCB0aGUgc3Vic2NyaWJlci4gSXQKKyAgIGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0 byB1c2UKKyAgIDxsaW5rIGxpbmtlbmQ9Imd1Yy1zdGFuZGJ5LXNsb3QtbmFtZXMiPjx2YXJuYW1l PnN0YW5kYnlfc2xvdF9uYW1lczwvdmFybmFtZT48L2xpbms+CisgICB0byBwcmV2ZW50IHRoZSBz dWJzY3JpYmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMgZmFzdGVyIHRoYW4gdGhlIGhvdCBzdGFu ZGJ5LgorICAgVG8gY29uZmlybSB0aGF0IHRoZSBzdGFuZGJ5IHNlcnZlciBpcyBpbmRlZWQgcmVh ZHkgZm9yIGZhaWxvdmVyLCBmb2xsb3cKKyAgIHRoZXNlIDIgc3RlcHM6CisgIDwvcGFyYT4KKwor ICA8cHJvY2VkdXJlPgorICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICA8cGFy YT4KKyAgICAgQ29uZmlybSB0aGF0IGFsbCB0aGUgbmVjZXNzYXJ5IGxvZ2ljYWwgcmVwbGljYXRp b24gc2xvdHMgaGF2ZSBiZWVuIHN5bmNlZCB0bworICAgICB0aGUgc3RhbmRieSBzZXJ2ZXIuCisg ICAgPC9wYXJhPgorICAgIDxzdWJzdGVwcz4KKyAgICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVp cmVkIj4KKyAgICAgIDxwYXJhPgorICAgICAgIEZpcnN0bHksIG9uIHRoZSBzdWJzY3JpYmVyIG5v ZGUsIHVzZSB0aGUgZm9sbG93aW5nIFNRTCB0byBpZGVudGlmeQorICAgICAgIHdoaWNoIHNsb3Rz IHNob3VsZCBiZSBzeW5jZWQgdG8gdGhlIHN0YW5kYnkgdGhhdCB3ZSBwbGFuIHRvIHByb21vdGUu Cis8cHJvZ3JhbWxpc3Rpbmc+Cit0ZXN0X3N1Yj0jIFNFTEVDVAorICAgICAgICAgICAgICAgYXJy YXlfYWdnKHNsb3RuYW1lKSBBUyBzbG90cworICAgICAgICAgICBGUk9NCisgICAgICAgICAgICgo CisgICAgICAgICAgICAgICBTRUxFQ1Qgci5zcnN1YmlkIEFTIHN1YmlkLCBDT05DQVQoJ3BnXycg fHwgc3JzdWJpZCB8fCAnX3N5bmNfJyB8fCBzcnJlbGlkIHx8ICdfJyB8fCBjdGwuc3lzdGVtX2lk ZW50aWZpZXIpIEFTIHNsb3RuYW1lCisgICAgICAgICAgICAgICBGUk9NIHBnX2NvbnRyb2xfc3lz dGVtKCkgY3RsLCBwZ19zdWJzY3JpcHRpb25fcmVsIHIsIHBnX3N1YnNjcmlwdGlvbiBzCisgICAg ICAgICAgICAgICBXSEVSRSByLnNyc3Vic3RhdGUgPSAnZicgQU5EIHMub2lkID0gci5zcnN1Ymlk IEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAgICAgICAgICAg U0VMRUNUIHMub2lkIEFTIHN1YmlkLCBzLnN1YnNsb3RuYW1lIGFzIHNsb3RuYW1lCisgICAgICAg ICAgICAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBzCisgICAgICAgICAgICAgICBXSEVSRSBzLnN1 YmZhaWxvdmVyCisgICAgICAgICAgICkpOworIHNsb3RzCistLS0tLS0tCisge3N1YjEsc3ViMixz dWIzfQorKDEgcm93KQorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgIDwvc3RlcD4KKyAg ICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICAgIDxwYXJhPgorICAgICAgIE5l eHQsIGNoZWNrIHRoYXQgdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdHMgaWRlbnRpZmllZCBh Ym92ZSBleGlzdCBvbgorICAgICAgIHRoZSBzdGFuZGJ5IHNlcnZlciBhbmQgYXJlIHJlYWR5IGZv ciBmYWlsb3Zlci4KKzxwcm9ncmFtbGlzdGluZz4KK3Rlc3Rfc3RhbmRieT0jIFNFTEVDVCBzbG90 X25hbWUsIChzeW5jZWQgQU5EIE5PVCB0ZW1wb3JhcnkgQU5EIGNvbmZsaWN0X3JlYXNvbiBJUyBO VUxMKSBBUyBmYWlsb3Zlcl9yZWFkeQorICAgICAgICAgICAgICAgRlJPTSBwZ19yZXBsaWNhdGlv bl9zbG90cworICAgICAgICAgICAgICAgV0hFUkUgc2xvdF9uYW1lIElOICgnc3ViMScsJ3N1YjIn LCdzdWIzJyk7CisgIHNsb3RfbmFtZSAgfCBmYWlsb3Zlcl9yZWFkeQorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tCisgIHN1YjEgICAgICAgfCB0CisgIHN1YjIgICAgICAgfCB0CisgIHN1 YjMgICAgICAgfCB0CisoMyByb3dzKQorPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgICAgIDwv c3RlcD4KKyAgICA8L3N1YnN0ZXBzPgorICAgPC9zdGVwPgorCisgICA8c3RlcCBwZXJmb3JtYW5j ZT0icmVxdWlyZWQiPgorICAgIDxwYXJhPgorICAgICBDb25maXJtIHRoYXQgdGhlIHN0YW5kYnkg c2VydmVyIGlzIG5vdCBsYWdnaW5nIGJlaGluZCB0aGUgc3Vic2NyaWJlcnMuCisgICAgIFRoaXMg c3RlcCBjYW4gYmUgc2tpcHBlZCBpZgorICAgICA8bGluayBsaW5rZW5kPSJndWMtc3RhbmRieS1z bG90LW5hbWVzIj48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+PC9saW5rPgor ICAgICBoYXMgYmVlbiBjb3JyZWN0bHkgY29uZmlndXJlZC4KKyAgICA8L3BhcmE+CisgICAgIDxz dWJzdGVwcz4KKyAgICAgIDxzdGVwIHBlcmZvcm1hbmNlPSJyZXF1aXJlZCI+CisgICAgICAgPHBh cmE+CisgICAgICAgIEZpcnN0bHksIG9uIHRoZSBzdWJzY3JpYmVyIG5vZGUgY2hlY2sgdGhlIGxh c3QgcmVwbGF5ZWQgV0FMLgorPHByb2dyYW1saXN0aW5nPgordGVzdF9zdWI9IyBTRUxFQ1QKKyAg ICAgICAgICAgICAgIE1BWChyZW1vdGVfbHNuKSBBUyByZW1vdGVfbHNuX29uX3N1YnNjcmliZXIK KyAgICAgICAgICAgRlJPTQorICAgICAgICAgICAoKAorICAgICAgICAgICAgICAgU0VMRUNUIChD QVNFIFdIRU4gci5zcnN1YnN0YXRlID0gJ2YnIFRIRU4gcGdfcmVwbGljYXRpb25fb3JpZ2luX3By b2dyZXNzKENPTkNBVCgncGdfJyB8fCByLnNyc3ViaWQgfHwgJ18nIHx8IHIuc3JyZWxpZCksIGZh bHNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFTiByLnNyc3Vic3RhdGUgSU4gKCdz JywgJ3InKSBUSEVOIHIuc3JzdWJsc24gRU5EKSBBUyByZW1vdGVfbHNuCisgICAgICAgICAgICAg ICBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwgciwgcGdfc3Vic2NyaXB0aW9uIHMKKyAgICAgICAg ICAgICAgIFdIRVJFIHIuc3JzdWJzdGF0ZSBJTiAoJ2YnLCAncycsICdyJykgQU5EIHMub2lkID0g ci5zcnN1YmlkIEFORCBzLnN1YmZhaWxvdmVyCisgICAgICAgICAgICkgVU5JT04gKAorICAgICAg ICAgICAgICAgU0VMRUNUIHBnX3JlcGxpY2F0aW9uX29yaWdpbl9wcm9ncmVzcyhDT05DQVQoJ3Bn XycgfHwgcy5vaWQpLCBmYWxzZSkgQVMgcmVtb3RlX2xzbgorICAgICAgICAgICAgICAgRlJPTSBw Z19zdWJzY3JpcHRpb24gcworICAgICAgICAgICAgICAgV0hFUkUgcy5zdWJmYWlsb3ZlcgorICAg ICAgICAgICApKTsKKyByZW1vdGVfbHNuX29uX3N1YnNjcmliZXIKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgMC8zMDAwMzg4Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyAgICA8L3N0 ZXA+CisgICAgPHN0ZXAgcGVyZm9ybWFuY2U9InJlcXVpcmVkIj4KKyAgICAgPHBhcmE+CisgICAg ICBOZXh0LCBvbiB0aGUgc3RhbmRieSBzZXJ2ZXIgY2hlY2sgdGhhdCB0aGUgbGFzdC1yZWNlaXZl ZCBXQUwgbG9jYXRpb24KKyAgICAgIGlzIGFoZWFkIG9mIHRoZSByZXBsYXllZCBXQUwgbG9jYXRp b24gb24gdGhlIHN1YnNjcmliZXIgaWRlbnRpZmllZCBhYm92ZS4KKyAgICAgIElmIHRoZSBhYm92 ZSBTUUwgcmVzdWx0IHdhcyBOVUxMLCBpdCBtZWFucyB0aGUgc3Vic2NyaWJlciBoYXMgbm90IHll dAorICAgICAgcmVwbGF5ZWQgYW55IFdBTCwgc28gdGhlIHN0YW5kYnkgc2VydmVyIG11c3QgYmUg YWhlYWQgb2YgdGhlCisgICAgICBzdWJzY3JpYmVyLCBhbmQgdGhpcyBzdGVwIGNhbiBiZSBza2lw cGVkLgorPHByb2dyYW1saXN0aW5nPgordGVzdF9zdGFuZGJ5PSMgU0VMRUNUIHBnX2xhc3Rfd2Fs X3JlY2VpdmVfbHNuKCkgPj0gJzAvMzAwMDM4OCc6OnBnX2xzbiBBUyBmYWlsb3Zlcl9yZWFkeTsK KyBmYWlsb3Zlcl9yZWFkeQorLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKzwvcHJvZ3Jh bWxpc3Rpbmc+PC9wYXJhPgorICAgICA8L3N0ZXA+CisgICAgPC9zdWJzdGVwcz4KKyAgIDwvc3Rl cD4KKyAgPC9wcm9jZWR1cmU+CisKKyAgPHBhcmE+CisgICBJZiB0aGUgcmVzdWx0ICg8bGl0ZXJh bD5mYWlsb3Zlcl9yZWFkeTwvbGl0ZXJhbD4pIG9mIGJvdGggYWJvdmUgc3RlcHMgaXMKKyAgIHRy dWUsIGV4aXN0aW5nIHN1YnNjcmlwdGlvbnMgd2lsbCBiZSBhYmxlIHRvIGNvbnRpbnVlIHdpdGhv dXQgZGF0YSBsb3NzLgorICA8L3BhcmE+CisKKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJsb2dp Y2FsLXJlcGxpY2F0aW9uLXJvdy1maWx0ZXIiPgogICA8dGl0bGU+Um93IEZpbHRlcnM8L3RpdGxl PgogCi0tIAoyLjM0LjEKCg== --000000000000fde609060f87276b--