From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id D89CA3858D28 for ; Mon, 30 Oct 2023 12:30:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D89CA3858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D89CA3858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=68.232.137.180 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698669032; cv=none; b=QBSUq0H8mMm6b60lx/2xdAlcLWkPWu9ZR+2+yYch6Pwu0VWVAGBUNRKmnmTH9RV4VpUXUU2p59WxgM79f3nkLUfUU2H5/8BWTgdNy6G6A+EI+8QALPDqTSSUbcXMKOAetT/8C86M+pJ+tNDOxJc1CIgUMwuIEyJNxn3/Yesyqi8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698669032; c=relaxed/simple; bh=iDecSHcd8XI5ehlaD61DN11vZB3qWPYMwDaO5/CerSM=; h=Message-ID:Date:MIME-Version:From:Subject:To; b=b2cf2vVTmiC0dtlwS98VwfXxgn6QZdR+rnQzecOtIJpjeyj97tB47B8dWmQJQw37KbGJ1mmix3h4Q730cP9YrvgbTsSa9YRInct/TYcy8F7NMGtwvDllBnpbxlUDy7oRu2dLN7y6518ylLqyzNl3uXqtdsjzcnagTxT8CJBk6Dk= ARC-Authentication-Results: i=1; server2.sourceware.org X-CSE-ConnectionGUID: hgqQXIDXTruaVxdRiyd2Nw== X-CSE-MsgGUID: necsLVnjRWeeK3QhgW7ikg== X-IronPort-AV: E=Sophos;i="6.03,263,1694764800"; d="diff'?scan'208,223";a="21283257" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa3.mentor.iphmx.com with ESMTP; 30 Oct 2023 04:30:23 -0800 IronPort-SDR: IAkps5hMRNwm6px/JeEgu4PNf8AgPw6ZojyaRBbYLLKKFZk3fJUPbJqFb2IwByVW729aQieW9e uD9g1Y1Ju/onqwmsONl0xOg1GIzdo+pm6TSzMFaJ5+A3rudZOMDTffuR07jUmPjozMkkcoro11 SBA7uq9H3dw9obpj2zeJ0hGCaNXK42w9RxIvzDEe+4klHO5ky0CoyCb8ze5k/cQmSI2ub6U+nh MzVbKKmFNZhDudqzClfmJyqrMA1C4KB6HHbHgjvJhA06IDo8i1NV5gMypQJ6NpHzKLkrhFW5xS CyM= Content-Type: multipart/mixed; boundary="------------AbyYoqGDOJbUDrmYri0ByhXm" Message-ID: Date: Mon, 30 Oct 2023 13:30:08 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Tobias Burnus Subject: [OG13] OpenMP/Fortran: Merge upstream 'omp allocators' with OG13 'omp allocate' To: gcc-patches Content-Language: en-US X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-14.mgc.mentorg.com (139.181.222.14) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,SPF_HELO_PASS,SPF_PASS,TXREP,URIBL_BLACK autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------AbyYoqGDOJbUDrmYri0ByhXm Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable To have it also documented via the mailing list... [OG13 =3D devel/omp/gcc-13] This is above merging a mainline commit to OG13, which is in principle boring. However, as OG13 already had some support for 'omp allocate' with allocatables/pointers, the merge was "interesting". Besides a revert of branch code and fixing merge differences, it also contains code which was in neither commit. That's the main reason to have it here at gcc-patches@gcc a8b1fb51ae5 OpenMP/Fortran: Merge upstream 'omp allocators' with OG13 'omp = allocate' Is the attached patch; additionally fixed was a left out fix b687bc195c0 gfortran.dg/gomp/allocate-4a.f90: Update dg-error and a fixup 2cbf164c7fd OpenMP/Fortran: Ensure allocator is gimplified for 'omp allocat= e' (Both also attached) Plus more or less flawless mainline cherry picks (hash =3D OG13 hash): f0d163da425 OpenMP: Avoid ICE with LTO and 'omp allocate' 1b9ab8a0f16 OpenMP: Add C++ support for 'omp allocate' with stack variables 59175e6f088 Fortran: Support OpenMP's 'allocate' directive for stack vars 7449921f6a0 Fortran: Fix parse-dump-tree for OpenMP ALLOCATE clause Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------AbyYoqGDOJbUDrmYri0ByhXm Content-Type: text/x-patch; charset="UTF-8"; name="committed.diff" Content-Disposition: attachment; filename="committed.diff" Content-Transfer-Encoding: base64 Y29tbWl0IGE4YjFmYjUxYWU1NWRjZjhiZjI0ZmFkMTk4NmU1MjgwZTM2MmM4NzMKQXV0aG9y OiBUb2JpYXMgQnVybnVzIDx0b2JpYXNAY29kZXNvdXJjZXJ5LmNvbT4KRGF0ZTogICBUaHUg T2N0IDI2IDExOjE3OjQwIDIwMjMgKzAyMDAKCiAgICBPcGVuTVAvRm9ydHJhbjogTWVyZ2Ug dXBzdHJlYW0gJ29tcCBhbGxvY2F0b3JzJyB3aXRoIE9HMTMgJ29tcCBhbGxvY2F0ZScKICAg IAogICAgVGhpcyBtZXJnZXMgbWFpbmxpbmUncwogICAgICByMTQtMTMwMS1nZDY0ZThlMTIy NDcwOGUKICAgICAgRm9ydHJhbi9PcGVuTVA6IEFkZCBwYXJzaW5nIHN1cHBvcnQgZm9yIGFs bG9jYXRvcnMvYWxsb2NhdGUgZGlyZWN0aXZlcwogICAgaW50byBPRzEzLgogICAgCiAgICBJ biB0aGVvcnksIHRoYXQganVzdCByZXBsYWNlcyAocmV2ZXJ0cykgdGhlIE9HMTMtb25seSBj b21taXQKICAgICAgNmNlNWVlNzdmNzMgQWRkIHBhcnNpbmcgc3VwcG9ydCBmb3IgYWxsb2Nh dGUgZGlyZWN0aXZlIChPcGVuTVAgNS4wKQogICAgICBieSBIYWZpeiBBYmlkIFFhZGVlciAg PGFiaWRoQGNvZGVzb3VyY2VyeS5jb20+CiAgICAKICAgIEhvd2V2ZXIsIHRoZSByZXBsYWNl bWVudCBpcyBub3QgZnVsbCAtIHRodXMsIHRoaXMgY29tbWl0IGRvZXMgbXVjaCBtb3JlOgog ICAgICBXaGlsZSBtYWlubGluZSBzdXBwb3J0ICdvbXAgYWxsb2NhdG9ycycgYmVzaWRlcyAn b21wIGFsbG9jYXRlJyBhbmQKICAgICAgdGhlIGxhdHRlciBhbHNvIGZvciBzdGFjayBhbmQg cG9pbnRlciB2YXJpYWJsZXMsCiAgICAgIHRoZSBPRzEzIGJyYW5jaCBzdXBwb3J0cyBhY3R1 YWwgYWxsb2NhdGlvbiB3aXRoIHRoZSBkaXJlY3RpdmUgdmVyc2lvbi4KICAgICogVGh1cywg dGhpcyBjb21taXQgd2lyZXMgdGhlIG1haW5saW5lJ3MgZXhlY3V0aXZlIGFsbG9jYXRlICsg bmV3IGFsbG9jYXRvcnMKICAgICAgd2l0aCB0aGUgT0cxMyBHT01QX2FsbG9jL0dPTVBfZnJl ZSBoYW5kbGluZy4KICAgICogSXQgYWxzbyBoYW5kbGVzIG5vdyB0aGUgJ2FsaWduJyBjbGF1 c2UvbW9kaWZpZXIuCiAgICAqIEJ5IGRlZmF1bHRpbmcgdG8gJ29tcCBhbGxvY2F0b3JzJywg aXQgcmUtdXNlcyB0aGUgQUxMT0NBVEUgY2xhdXNlIGluIHRoZQogICAgICBNRSBpbnN0ZWFk IG9mIHVzaW5nIHRoZSBuZXcgQUxMT0NBVE9SIGNsYXVzZSwgd2hpY2ggaGFzIG5vdyBiZWVu IHJlbW92ZWQKICAgICAgZnJvbSB0aGUgTUUgY29kZS4KICAgIAogICAgT24gdGhlIEZFIHNp ZGUsIGl0IGFsc28gaW5jbHVkZXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mOgogICAgICBodHRw czovL2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIzLU9jdG9iZXIvNjM0 MDk2Lmh0bWwKICAgICAgW1BhdGNoXSBPcGVuTVAvRm9ydHJhbjogSGFuZGxlIHVubGlzdGVk IGl0ZW1zIGluICdvbXAgYWxsb2NhdG9ycycgKyBleGVjLiAnb21wIGFsbG9jYXRlJwogICAg CiAgICBUaGUgd2hvbGUgcGF0Y2ggY2Fubm90IGJlIGVhc2lseSBkaXNlbnRhbmdsZWQgYW5k IHBhcnRzIG9mCiAgICA2Y2U1ZWU3N2Y3MyByZW1haW4gaW4gYSByZXZpc2VkIGZvcm0uIEZv ciB0aG9zZSBiaXRzLCB0aGUKICAgIGNyZWRpdHMgYmVsb25nIHRvIEFiaWQuCiAgICAKICAg IGdjYy9mb3J0cmFuL0NoYW5nZUxvZzoKICAgIAogICAgICAgICAgICAqIGR1bXAtcGFyc2Ut dHJlZS5jYyAoc2hvd19vbXBfbmFtZWxpc3QsIHNob3dfb21wX25vZGUsCiAgICAgICAgICAg IHNob3dfY29kZV9ub2RlKTogRHVtcCBFWEVDX09NUF9BTExPQ0FUT1JTIHVwZGF0ZSBmb3Ig c3RydWN0IGNoYW5nZXMuCiAgICAgICAgICAgICogZ2ZvcnRyYW4uaCAoZW51bSBnZmNfc3Rh dGVtZW50KTogQWRkIFNUX09NUF8oRU5EXylBTExPQ0FUT1JTLgogICAgICAgICAgICAoZ2Zj X29tcF9uYW1lbGlzdCk6IEFkZCBhbGxvY2F0b3IgdG8gdW5pb24gdTIuCiAgICAgICAgICAg IChlbnVtKTogUmVtb3ZlIE9NUF9MSVNUX0FMTE9DQVRPUi4KICAgICAgICAgICAgKGdmY19u YW1lc3BhY2UpOiBBZGQgb21wX2FsbG9jYXRlLgogICAgICAgICAgICAoZW51bSBnZmNfZXhl Y19vcCk6IEFkZCBFWEVDX09NUF9BTExPQ0FUT1JTLgogICAgICAgICAgICAoZ2ZjX3Jlc29s dmVfb21wX2FsbG9jYXRlKTogTmV3IHByb3RvdHlwZS4KICAgICAgICAgICAgKiBtYXRjaC5j YyAoZ2ZjX2ZyZWVfb21wX25hbWVsaXN0KTogRnJlZSB1Mi5hbGxvY2F0b3IuCiAgICAgICAg ICAgICogbWF0Y2guaCAoZ2ZjX21hdGNoX29tcF9hbGxvY2F0b3JzKTogTmV3IHByb3RvdHlw ZS4KICAgICAgICAgICAgKiBvcGVubXAuY2MgKGdmY19vbXBfZGlyZWN0aXZlcyk6IEVuYWJs ZSBhbGxvY2F0ZS9hbGxvY2F0b3IuCiAgICAgICAgICAgIChnZmNfbWF0Y2hfb21wX3Zhcmlh YmxlX2xpc3QpOiBBZGQgcmVqZWN0X2NvbW1vbl92YXJzIEJvb2xlYW4gYXJnLgogICAgICAg ICAgICAoZW51bSBvbXBfbWFzazIpOiBSZW1vdmUgT01QX0NMQVVTRV9BTExPQ0FUT1IuCiAg ICAgICAgICAgIChnZmNfbWF0Y2hfb21wX2NsYXVzZXMpOiBVcGRhdGUgZm9yIHN0cnVjdCBj aGFuZ2UuCiAgICAgICAgICAgIChPTVBfQUxMT0NBVEVfQ0xBVVNFUyk6IFJlbW92ZS4KICAg ICAgICAgICAgKE9NUF9BTExPQ0FUT1JTX0NMQVVTRVMpOiBBZGQuCiAgICAgICAgICAgIChn ZmNfbWF0Y2hfb21wX2FsbG9jYXRlKTogUmVwbGFjZSBieSB1cHN0cmVhbSB2ZXJzaW9uLgog ICAgICAgICAgICAoZ2ZjX21hdGNoX29tcF9hbGxvY2F0b3JzLCBpc19wcmVkZWZpbmVkX2Fs bG9jYXRvciwKICAgICAgICAgICAgZ2ZjX3Jlc29sdmVfb21wX2FsbG9jYXRlKTogTmV3Lgog ICAgICAgICAgICAodmVyaWZ5X29tcF9jbGF1c2VzX3N5bWJvbF9kdXBzKTogVXBkYXRlIGZv ciBhbGxvY2F0ZS9hbGxvY2F0b3IuCiAgICAgICAgICAgIChyZXNvbHZlX29tcF9jbGF1c2Vz KTogVXBkYXRlIGZyb20gbWFpbmxpbmUuCiAgICAgICAgICAgIChvbXBfY29kZV90b19zdGF0 ZW1lbnQpOiBBZGQgRVhFQ19PTVBfQUxMT0NBVE9SUy4KICAgICAgICAgICAgcHJlcGFyZV9v bXBfYWxsb2NhdGVkX3Zhcl9saXN0X2Zvcl9jbGVhbnVwLAogICAgICAgICAgICBjaGVja19h bGxvY2F0ZV9kaXJlY3RpdmVfcmVzdHJpY3Rpb25zLCBFTVBUWV9WQVJfTElTVCwKICAgICAg ICAgICAgZ2ZjX3Jlc29sdmVfb21wX2FsbG9jYXRlKTogUmVtb3ZlLgogICAgICAgICAgICAo Z2ZjX3Jlc29sdmVfb21wX2RpcmVjdGl2ZSk6IEFkZCBFWEVDX09NUF9BTExPQ0FUT1JTLgog ICAgICAgICAgICAqIHBhcnNlLmNjIChjaGVja19vbXBfYWxsb2NhdGVfc3RtdCwgZGVjb2Rl X29tcF9kaXJlY3RpdmUKICAgICAgICAgICAgbmV4dF9zdGF0ZW1lbnQsIGNhc2Vfb21wX2Rl Y2wsIGdmY19hc2NpaV9zdGF0ZW1lbnQsCiAgICAgICAgICAgIHZlcmlmeV9zdF9vcmRlciwg cGFyc2Vfb3Blbm1wX2FsbG9jYXRlX2Jsb2NrLAogICAgICAgICAgICBwYXJzZV9vbXBfc3Ry dWN0dXJlZF9ibG9jaywgcGFyc2VfZXhlY3V0YWJsZSk6IFVwZGF0ZSBmcm9tIG1haW5saW5l LgogICAgICAgICAgICAqIHJlc29sdmUuY2MgKGdmY19yZXNvbHZlX2Jsb2NrcywgcmVzb2x2 ZV9jb2Rlcyk6IEhhbmRsZSBhbGxvY2F0ZQogICAgICAgICAgICBhbmQgYWxsb2NhdG9yLgog ICAgICAgICAgICAqIHN0LmNjIChnZmNfZnJlZV9zdGF0ZW1lbnQpOiBBbmQgRVhFQ19PTVBf QUxMT0NBVE9SUy4KICAgICAgICAgICAgKiB0cmFucy1kZWNsLmNjIChnZmNfdHJhbnNfZGVm ZXJyZWRfdmFycyk6IFVzZSBPTVBfTElTVF9BTExPQ0FURQogICAgICAgICAgICBpbnN0ZWFk IG9mIE9NUF9MSVNUX0FMTE9DQVRPUi4KICAgICAgICAgICAgKiB0cmFucy1vcGVubXAuY2Mg KGdmY190cmFuc19vbXBfY2xhdXNlcyk6IFJlbW92ZSBPTVBfTElTVF9BTExPQ0FUT1IsCiAg ICAgICAgICAgIHVwZGF0ZSBhbGxvY2F0ZSBoYW5kbGluZy4KICAgICAgICAgICAgKGdmY190 cmFuc19vbXBfYWxsb2NhdGUpOiBSZW5hbWVkIHRvIC4uLgogICAgICAgICAgICAoZ2ZjX3Ry YW5zX29tcF9hbGxvY2F0b3JzKTogLi4uIHRoaXMuCiAgICAgICAgICAgIChnZmNfc3BsaXRf b21wX2NsYXVzZXMsIGdmY190cmFuc19vbXBfZGlyZWN0aXZlKTogVXBkYXRlLgogICAgICAg ICAgICAqIHRyYW5zLmNjICh0cmFuc19jb2RlKTogSGFuZGxlIEVYRUNfT01QX0FMTE9DQVRP UlMuCiAgICAKICAgIGdjYy9DaGFuZ2VMb2c6CiAgICAKICAgICAgICAgICAgKiBvbXAtbG93 LmNjIChzY2FuX3NoYXJpbmdfY2xhdXNlcyk6IFVwZGF0ZSBtZXNzYWdlIGZvciBkaXJlY3Rp dmUgdXNlLgogICAgICAgICAgICAobG93ZXJfb21wX2FsbG9jYXRlLCBsb3dlcl9vbXBfMSk6 IFVwZGF0ZSBmb3IgY2xhdXNlIGNoYW5nZXM7IGhhbmRsZQogICAgICAgICAgICBhbGlnbm1l bnQuCiAgICAgICAgICAgICogdHJlZS1jb3JlLmggKGVudW0gb21wX2NsYXVzZV9jb2RlKTog UmVtb3ZlIE9NUF9DTEFVU0VfQUxMT0NBVE9SLgogICAgICAgICAgICAqIHRyZWUtcHJldHR5 LXByaW50LmNjIChkdW1wX29tcF9jbGF1c2UpOiBMaWtld2lzZS4KICAgICAgICAgICAgKiB0 cmVlLmNjIChvbXBfY2xhdXNlX251bV9vcHMpOiBMaWtld2lzZS4KICAgICAgICAgICAgKiB0 cmVlLmggKE9NUF9BTExPQ0FURV9ERUNMLCBPTVBfQUxMT0NBVEVfQUxMT0NBVE9SKTogUmVt b3ZlLgogICAgCiAgICBsaWJnb21wL0NoYW5nZUxvZzoKICAgIAogICAgICAgICAgICAqIHRl c3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vYWxsb2NhdGUtMmEuZjkwOiBBZGQgZXhlYyBzdG10 LgogICAgICAgICAgICAqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vYWxsb2NhdGUtNC5m OTA6IFVwZGF0ZSBkZy1lcnJvcgogICAgICAgICAgICAqIHRlc3RzdWl0ZS9saWJnb21wLmZv cnRyYW4vYWxsb2NhdGUtNS5mOTA6IExpa2V3aXNlOyBhZGQgZXhlYyBzdG10LgogICAgCiAg ICBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKICAgIAogICAgICAgICAgICAqIGdmb3J0cmFu LmRnL2dvbXAvYWxsb2NhdGUtMi5mOTA6IFVwZGF0ZSBkZy13YXJuaW5nLgogICAgICAgICAg ICAqIGdmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNC5mOTA6IE5ldyB1cHN0cmVhbSB0ZXN0 LgogICAgICAgICAgICAqIGdmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNS5mOTA6IE5ldyB1 cHN0cmVhbSB0ZXN0LgogICAgICAgICAgICAqIGdmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUt Ni5mOTA6IE5ldyB1cHN0cmVhbSB0ZXN0LgogICAgICAgICAgICAqIGdmb3J0cmFuLmRnL2dv bXAvYWxsb2NhdGUtNy5mOTA6IE5ldyB1cHN0cmVhbSB0ZXN0LgogICAgICAgICAgICAqIGdm b3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNGEuZjkwOiBSZW5hbWVkIGZyb20gYWxsb2NhdGUt NC5mOTAKICAgICAgICAgICAgKiBnZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTZhLmY5MDog UmVuYW1lZCBmcm9tIGFsbG9jYXRlLTYuZjkwCiAgICAgICAgICAgICogZ2ZvcnRyYW4uZGcv Z29tcC9hbGxvY2F0ZS03YS5mOTA6IFJlbmFtZWQgZnJvbSBhbGxvY2F0ZS03LmY5MAogICAg ICAgICAgICAqIGdmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtOWEuZjkwOiBOZXcgdGVzdC4K ICAgICAgICAgICAgKiBnZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRvcnMtMS5mOTA6IE5ldyB1 cHN0cmVhbSB0ZXN0LgogICAgICAgICAgICAqIGdmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdG9y cy0yLmY5MDogTmV3IHVwc3RyZWFtIHRlc3QuCi0tLQogZ2NjL0NoYW5nZUxvZy5vbXAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTEgKwogZ2NjL2ZvcnRyYW4vQ2hh bmdlTG9nLm9tcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKysKIGdjYy9mb3J0 cmFuL2R1bXAtcGFyc2UtdHJlZS5jYyAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCiBn Y2MvZm9ydHJhbi9nZm9ydHJhbi5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx NCArLQogZ2NjL2ZvcnRyYW4vbWF0Y2guY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogZ2NjL2ZvcnRyYW4vbWF0Y2guaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwogZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCA3MDQgKysrKysrKysrKysrKy0tLS0tLS0tCiBnY2MvZm9ydHJh bi9wYXJzZS5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE5NiArKysrKy0K IGdjYy9mb3J0cmFuL3Jlc29sdmUuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICA1ICsKIGdjYy9mb3J0cmFuL3N0LmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIGdjYy9mb3J0cmFuL3RyYW5zLWRlY2wuY2MgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCiBnY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MgICAgICAg ICAgICAgICAgICAgICAgICB8ICA1NCArLQogZ2NjL2ZvcnRyYW4vdHJhbnMuY2MgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGdjYy9vbXAtbG93LmNjICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICstCiBnY2MvdGVzdHN1aXRl L0NoYW5nZUxvZy5vbXAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNSArCiBnY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtMi5mOTAgICAgICB8ICAgNCArLQog Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTQuZjkwICAgICAgfCAg NTQgKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS00YS5mOTAg ICAgIHwgIDU0ICsrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUt NS5mOTAgICAgICB8IDE0OCArKystLQogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21w L2FsbG9jYXRlLTYuZjkwICAgICAgfCAxNzEgKystLS0KIGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZ29tcC9hbGxvY2F0ZS02YS5mOTAgICAgIHwgIDg1ICsrKwogZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTcuZjkwICAgICAgfCAyMzYgKysrKysrLQog Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTdhLmY5MCAgICAgfCAg MTMgKwogLi4uL2dvbXAve2FsbG9jYXRlLTguZjkwID0+IGFsbG9jYXRlLThhLmY5MH0gICAg ICAgfCAgIDAKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS05YS5m OTAgICAgIHwgIDE1ICsKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0 b3JzLTEuZjkwICAgIHwgIDI4ICsKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9h bGxvY2F0b3JzLTIuZjkwICAgIHwgIDIyICsKIGdjYy90cmVlLWNvcmUuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzIC0KIGdjYy90cmVlLXByZXR0eS1wcmlu dC5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE0IC0KIGdjYy90cmVlLmNjICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIGdjYy90cmVl LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5IC0KIGxp YmdvbXAvQ2hhbmdlTG9nLm9tcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3 ICsKIGxpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS0yYS5mOTAg IHwgICAxICsKIGxpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS00 LmY5MCAgIHwgIDEyICstCiBsaWJnb21wL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vYWxs b2NhdGUtNS5mOTAgICB8ICAzNiArLQogMzUgZmlsZXMgY2hhbmdlZCwgMTQ5MiBpbnNlcnRp b25zKCspLCA1MjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL0NoYW5nZUxvZy5v bXAgYi9nY2MvQ2hhbmdlTG9nLm9tcAppbmRleCA4MjA1ZWNkMDUwNy4uZThiMjNiOTBkZTEg MTAwNjQ0Ci0tLSBhL2djYy9DaGFuZ2VMb2cub21wCisrKyBiL2djYy9DaGFuZ2VMb2cub21w CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjMtMTAtMjYgIFRvYmlhcyBCdXJudXMgIDx0b2JpYXNA Y29kZXNvdXJjZXJ5LmNvbT4KKwkgICAgQ2h1bmctTGluIFRhbmcgIDxjbHRhbmdAY29kZXNv dXJjZXJ5LmNvbT4KKworCSogb21wLWxvdy5jYyAoc2Nhbl9zaGFyaW5nX2NsYXVzZXMpOiBV cGRhdGUgbWVzc2FnZSBmb3IgZGlyZWN0aXZlIHVzZS4KKwkobG93ZXJfb21wX2FsbG9jYXRl LCBsb3dlcl9vbXBfMSk6IFVwZGF0ZSBmb3IgY2xhdXNlIGNoYW5nZXM7IGhhbmRsZQorCWFs aWdubWVudC4KKwkqIHRyZWUtY29yZS5oIChlbnVtIG9tcF9jbGF1c2VfY29kZSk6IFJlbW92 ZSBPTVBfQ0xBVVNFX0FMTE9DQVRPUi4KKwkqIHRyZWUtcHJldHR5LXByaW50LmNjIChkdW1w X29tcF9jbGF1c2UpOiBMaWtld2lzZS4KKwkqIHRyZWUuY2MgKG9tcF9jbGF1c2VfbnVtX29w cyk6IExpa2V3aXNlLgorCSogdHJlZS5oIChPTVBfQUxMT0NBVEVfREVDTCwgT01QX0FMTE9D QVRFX0FMTE9DQVRPUik6IFJlbW92ZS4KKwogMjAyMy0wOS0yMCAgVG9iaWFzIEJ1cm51cyAg PHRvYmlhc0Bjb2Rlc291cmNlcnkuY29tPgogCiAJQmFja3BvcnRlZCBmcm9tIG1hc3RlcjoK ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL0NoYW5nZUxvZy5vbXAgYi9nY2MvZm9ydHJhbi9D aGFuZ2VMb2cub21wCmluZGV4IGJhZTkwZDFlNWMxLi43MTA5ODg1MDU0OCAxMDA2NDQKLS0t IGEvZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nLm9tcAorKysgYi9nY2MvZm9ydHJhbi9DaGFuZ2VM b2cub21wCkBAIC0xLDMgKzEsNDggQEAKKzIwMjMtMTAtMjYgIFRvYmlhcyBCdXJudXMgIDx0 b2JpYXNAY29kZXNvdXJjZXJ5LmNvbT4KKwkgICAgQ2h1bmctTGluIFRhbmcgIDxjbHRhbmdA Y29kZXNvdXJjZXJ5LmNvbT4KKworCSogZHVtcC1wYXJzZS10cmVlLmNjIChzaG93X29tcF9u YW1lbGlzdCwgc2hvd19vbXBfbm9kZSwKKwlzaG93X2NvZGVfbm9kZSk6IER1bXAgRVhFQ19P TVBfQUxMT0NBVE9SUyB1cGRhdGUgZm9yIHN0cnVjdCBjaGFuZ2VzLgorCSogZ2ZvcnRyYW4u aCAoZW51bSBnZmNfc3RhdGVtZW50KTogQWRkIFNUX09NUF8oRU5EXylBTExPQ0FUT1JTLgor CShnZmNfb21wX25hbWVsaXN0KTogQWRkIGFsbG9jYXRvciB0byB1bmlvbiB1Mi4KKwkoZW51 bSk6IFJlbW92ZSBPTVBfTElTVF9BTExPQ0FUT1IuCisJKGdmY19uYW1lc3BhY2UpOiBBZGQg b21wX2FsbG9jYXRlLgorCShlbnVtIGdmY19leGVjX29wKTogQWRkIEVYRUNfT01QX0FMTE9D QVRPUlMuCisJKGdmY19yZXNvbHZlX29tcF9hbGxvY2F0ZSk6IE5ldyBwcm90b3R5cGUuCisJ KiBtYXRjaC5jYyAoZ2ZjX2ZyZWVfb21wX25hbWVsaXN0KTogRnJlZSB1Mi5hbGxvY2F0b3Iu CisJKiBtYXRjaC5oIChnZmNfbWF0Y2hfb21wX2FsbG9jYXRvcnMpOiBOZXcgcHJvdG90eXBl LgorCSogb3Blbm1wLmNjIChnZmNfb21wX2RpcmVjdGl2ZXMpOiBFbmFibGUgYWxsb2NhdGUv YWxsb2NhdG9yLgorCShnZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3QpOiBBZGQgcmVqZWN0 X2NvbW1vbl92YXJzIEJvb2xlYW4gYXJnLgorCShlbnVtIG9tcF9tYXNrMik6IFJlbW92ZSBP TVBfQ0xBVVNFX0FMTE9DQVRPUi4KKwkoZ2ZjX21hdGNoX29tcF9jbGF1c2VzKTogVXBkYXRl IGZvciBzdHJ1Y3QgY2hhbmdlLgorCShPTVBfQUxMT0NBVEVfQ0xBVVNFUyk6IFJlbW92ZS4K KwkoT01QX0FMTE9DQVRPUlNfQ0xBVVNFUyk6IEFkZC4KKwkoZ2ZjX21hdGNoX29tcF9hbGxv Y2F0ZSk6IFJlcGxhY2UgYnkgdXBzdHJlYW0gdmVyc2lvbi4KKwkoZ2ZjX21hdGNoX29tcF9h bGxvY2F0b3JzLCBpc19wcmVkZWZpbmVkX2FsbG9jYXRvciwKKwlnZmNfcmVzb2x2ZV9vbXBf YWxsb2NhdGUpOiBOZXcuCisJKHZlcmlmeV9vbXBfY2xhdXNlc19zeW1ib2xfZHVwcyk6IFVw ZGF0ZSBmb3IgYWxsb2NhdGUvYWxsb2NhdG9yLgorCShyZXNvbHZlX29tcF9jbGF1c2VzKTog VXBkYXRlIGZyb20gbWFpbmxpbmUuCisJKG9tcF9jb2RlX3RvX3N0YXRlbWVudCk6IEFkZCBF WEVDX09NUF9BTExPQ0FUT1JTLgorCXByZXBhcmVfb21wX2FsbG9jYXRlZF92YXJfbGlzdF9m b3JfY2xlYW51cCwKKwljaGVja19hbGxvY2F0ZV9kaXJlY3RpdmVfcmVzdHJpY3Rpb25zLCBF TVBUWV9WQVJfTElTVCwKKwlnZmNfcmVzb2x2ZV9vbXBfYWxsb2NhdGUpOiBSZW1vdmUuCisJ KGdmY19yZXNvbHZlX29tcF9kaXJlY3RpdmUpOiBBZGQgRVhFQ19PTVBfQUxMT0NBVE9SUy4K KwkqIHBhcnNlLmNjIChjaGVja19vbXBfYWxsb2NhdGVfc3RtdCwgZGVjb2RlX29tcF9kaXJl Y3RpdmUKKwluZXh0X3N0YXRlbWVudCwgY2FzZV9vbXBfZGVjbCwgZ2ZjX2FzY2lpX3N0YXRl bWVudCwKKwl2ZXJpZnlfc3Rfb3JkZXIsIHBhcnNlX29wZW5tcF9hbGxvY2F0ZV9ibG9jaywK KwlwYXJzZV9vbXBfc3RydWN0dXJlZF9ibG9jaywgcGFyc2VfZXhlY3V0YWJsZSk6IFVwZGF0 ZSBmcm9tIG1haW5saW5lLgorCSogcmVzb2x2ZS5jYyAoZ2ZjX3Jlc29sdmVfYmxvY2tzLCBy ZXNvbHZlX2NvZGVzKTogSGFuZGxlIGFsbG9jYXRlCisJYW5kIGFsbG9jYXRvci4KKwkqIHN0 LmNjIChnZmNfZnJlZV9zdGF0ZW1lbnQpOiBBbmQgRVhFQ19PTVBfQUxMT0NBVE9SUy4KKwkq IHRyYW5zLWRlY2wuY2MgKGdmY190cmFuc19kZWZlcnJlZF92YXJzKTogVXNlIE9NUF9MSVNU X0FMTE9DQVRFCisJaW5zdGVhZCBvZiBPTVBfTElTVF9BTExPQ0FUT1IuCisJKiB0cmFucy1v cGVubXAuY2MgKGdmY190cmFuc19vbXBfY2xhdXNlcyk6IFJlbW92ZSBPTVBfTElTVF9BTExP Q0FUT1IsCisJdXBkYXRlIGFsbG9jYXRlIGhhbmRsaW5nLgorCShnZmNfdHJhbnNfb21wX2Fs bG9jYXRlKTogUmVuYW1lZCB0byAuLi4KKwkoZ2ZjX3RyYW5zX29tcF9hbGxvY2F0b3JzKTog Li4uIHRoaXMuCisJKGdmY19zcGxpdF9vbXBfY2xhdXNlcywgZ2ZjX3RyYW5zX29tcF9kaXJl Y3RpdmUpOiBVcGRhdGUuCisJKiB0cmFucy5jYyAodHJhbnNfY29kZSk6IEhhbmRsZSBFWEVD X09NUF9BTExPQ0FUT1JTLgorCiAyMDIzLTEwLTE2ICBUb2JpYXMgQnVybnVzICA8dG9iaWFz QGNvZGVzb3VyY2VyeS5jb20+CiAKIAlCYWNrcG9ydGVkIGZyb20gbWFzdGVyOgpkaWZmIC0t Z2l0IGEvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmNjIGIvZ2NjL2ZvcnRyYW4vZHVt cC1wYXJzZS10cmVlLmNjCmluZGV4IDcxZDU5MTE4YWJmLi4xNGQ1ZWJkYmI4NSAxMDA2NDQK LS0tIGEvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10cmVlLmNjCisrKyBiL2djYy9mb3J0cmFu L2R1bXAtcGFyc2UtdHJlZS5jYwpAQCAtMTM2NCwxNCArMTM2NCwxNCBAQCBzaG93X29tcF9u YW1lbGlzdCAoaW50IGxpc3RfdHlwZSwgZ2ZjX29tcF9uYW1lbGlzdCAqbikKIAkgIGlmIChu LT5leHByKQogCSAgICB7CiAJICAgICAgZnB1dHMgKCJhbGxvY2F0b3IoIiwgZHVtcGZpbGUp OwotCSAgICAgIHNob3dfZXhwciAobi0+ZXhwcik7CisJICAgICAgc2hvd19leHByIChuLT51 Mi5hbGxvY2F0b3IpOwogCSAgICAgIGZwdXRjICgnKScsIGR1bXBmaWxlKTsKIAkgICAgfQog CSAgaWYgKG4tPmV4cHIgJiYgbi0+dS5hbGlnbikKIAkgICAgZnB1dGMgKCcsJywgZHVtcGZp bGUpOwogCSAgaWYgKG4tPnUuYWxpZ24pCiAJICAgIHsKLQkgICAgICBmcHV0cyAoImFsbG9j YXRvcigiLCBkdW1wZmlsZSk7CisJICAgICAgZnB1dHMgKCJhbGlnbigiLCBkdW1wZmlsZSk7 CiAJICAgICAgc2hvd19leHByIChuLT51LmFsaWduKTsKIAkgICAgICBmcHV0YyAoJyknLCBk dW1wZmlsZSk7CiAJICAgIH0KQEAgLTIxMzcsNiArMjEzNyw3IEBAIHNob3dfb21wX25vZGUg KGludCBsZXZlbCwgZ2ZjX2NvZGUgKmMpCiAgICAgY2FzZSBFWEVDX09BQ0NfRU5URVJfREFU QTogbmFtZSA9ICJFTlRFUiBEQVRBIjsgaXNfb2FjYyA9IHRydWU7IGJyZWFrOwogICAgIGNh c2UgRVhFQ19PQUNDX0VYSVRfREFUQTogbmFtZSA9ICJFWElUIERBVEEiOyBpc19vYWNjID0g dHJ1ZTsgYnJlYWs7CiAgICAgY2FzZSBFWEVDX09NUF9BTExPQ0FURTogbmFtZSA9ICJBTExP Q0FURSI7IGJyZWFrOworICAgIGNhc2UgRVhFQ19PTVBfQUxMT0NBVE9SUzogbmFtZSA9ICJB TExPQ0FUT1JTIjsgYnJlYWs7CiAgICAgY2FzZSBFWEVDX09NUF9BU1NVTUU6IG5hbWUgPSAi QVNTVU1FIjsgYnJlYWs7CiAgICAgY2FzZSBFWEVDX09NUF9BVE9NSUM6IG5hbWUgPSAiQVRP TUlDIjsgYnJlYWs7CiAgICAgY2FzZSBFWEVDX09NUF9CQVJSSUVSOiBuYW1lID0gIkJBUlJJ RVIiOyBicmVhazsKQEAgLTIyNDIsNiArMjI0Myw4IEBAIHNob3dfb21wX25vZGUgKGludCBs ZXZlbCwgZ2ZjX2NvZGUgKmMpCiAgICAgY2FzZSBFWEVDX09BQ0NfQ0FDSEU6CiAgICAgY2Fz ZSBFWEVDX09BQ0NfRU5URVJfREFUQToKICAgICBjYXNlIEVYRUNfT0FDQ19FWElUX0RBVEE6 CisgICAgY2FzZSBFWEVDX09NUF9BTExPQ0FURToKKyAgICBjYXNlIEVYRUNfT01QX0FMTE9D QVRPUlM6CiAgICAgY2FzZSBFWEVDX09NUF9BU1NVTUU6CiAgICAgY2FzZSBFWEVDX09NUF9D QU5DRUw6CiAgICAgY2FzZSBFWEVDX09NUF9DQU5DRUxMQVRJT05fUE9JTlQ6CkBAIC0yMzQ1 LDcgKzIzNDgsNiBAQCBzaG93X29tcF9ub2RlIChpbnQgbGV2ZWwsIGdmY19jb2RlICpjKQog ICAgICAgfHwgYy0+b3AgPT0gRVhFQ19PTVBfVEFSR0VUX1VQREFURSB8fCBjLT5vcCA9PSBF WEVDX09NUF9UQVJHRVRfRU5URVJfREFUQQogICAgICAgfHwgYy0+b3AgPT0gRVhFQ19PTVBf VEFSR0VUX0VYSVRfREFUQSB8fCBjLT5vcCA9PSBFWEVDX09NUF9TQ0FOCiAgICAgICB8fCBj LT5vcCA9PSBFWEVDX09NUF9ERVBPQkogfHwgYy0+b3AgPT0gRVhFQ19PTVBfRVJST1IKLSAg ICAgIHx8IGMtPm9wID09IEVYRUNfT01QX0FMTE9DQVRFCiAgICAgICB8fCAoYy0+b3AgPT0g RVhFQ19PTVBfT1JERVJFRCAmJiBjLT5ibG9jayA9PSBOVUxMKSkKICAgICByZXR1cm47CiAg IGlmIChjLT5vcCA9PSBFWEVDX09NUF9TRUNUSU9OUyB8fCBjLT5vcCA9PSBFWEVDX09NUF9Q QVJBTExFTF9TRUNUSU9OUykKQEAgLTM0OTIsNiArMzQ5NCw3IEBAIHNob3dfY29kZV9ub2Rl IChpbnQgbGV2ZWwsIGdmY19jb2RlICpjKQogICAgIGNhc2UgRVhFQ19PQUNDX0VOVEVSX0RB VEE6CiAgICAgY2FzZSBFWEVDX09BQ0NfRVhJVF9EQVRBOgogICAgIGNhc2UgRVhFQ19PTVBf QUxMT0NBVEU6CisgICAgY2FzZSBFWEVDX09NUF9BTExPQ0FUT1JTOgogICAgIGNhc2UgRVhF Q19PTVBfQVNTVU1FOgogICAgIGNhc2UgRVhFQ19PTVBfQVRPTUlDOgogICAgIGNhc2UgRVhF Q19PTVBfQ0FOQ0VMOgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaCBiL2dj Yy9mb3J0cmFuL2dmb3J0cmFuLmgKaW5kZXggMmNiODI1NzEyMWYuLmI5M2UxN2U5OGZmIDEw MDY0NAotLS0gYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCisrKyBiL2djYy9mb3J0cmFuL2dm b3J0cmFuLmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBlbnVtIGdmY19zdGF0ZW1lbnQKICAgU1Rf T0FDQ19DQUNIRSwgU1RfT0FDQ19LRVJORUxTX0xPT1AsIFNUX09BQ0NfRU5EX0tFUk5FTFNf TE9PUCwKICAgU1RfT0FDQ19TRVJJQUxfTE9PUCwgU1RfT0FDQ19FTkRfU0VSSUFMX0xPT1As IFNUX09BQ0NfU0VSSUFMLAogICBTVF9PQUNDX0VORF9TRVJJQUwsIFNUX09BQ0NfRU5URVJf REFUQSwgU1RfT0FDQ19FWElUX0RBVEEsIFNUX09BQ0NfUk9VVElORSwKLSAgU1RfT0FDQ19B VE9NSUMsIFNUX09BQ0NfRU5EX0FUT01JQywgU1RfT01QX0FMTE9DQVRFLAorICBTVF9PQUND X0FUT01JQywgU1RfT0FDQ19FTkRfQVRPTUlDLAogICBTVF9PTVBfQVRPTUlDLCBTVF9PTVBf QkFSUklFUiwgU1RfT01QX0NSSVRJQ0FMLCBTVF9PTVBfRU5EX0FUT01JQywKICAgU1RfT01Q X0VORF9DUklUSUNBTCwgU1RfT01QX0VORF9ETywgU1RfT01QX0VORF9NQVNURVIsIFNUX09N UF9FTkRfT1JERVJFRCwKICAgU1RfT01QX0VORF9QQVJBTExFTCwgU1RfT01QX0VORF9QQVJB TExFTF9ETywgU1RfT01QX0VORF9QQVJBTExFTF9TRUNUSU9OUywKQEAgLTMyMCw2ICszMjAs OCBAQCBlbnVtIGdmY19zdGF0ZW1lbnQKICAgU1RfT01QX0VORF9NQVNLRURfVEFTS0xPT1Bf U0lNRCwgU1RfT01QX1NDT1BFLCBTVF9PTVBfRU5EX1NDT1BFLAogICBTVF9PTVBfTUVUQURJ UkVDVElWRSwgU1RfT01QX0JFR0lOX01FVEFESVJFQ1RJVkUsIFNUX09NUF9FTkRfTUVUQURJ UkVDVElWRSwKICAgU1RfT01QX0VSUk9SLCBTVF9PTVBfQVNTVU1FLCBTVF9PTVBfRU5EX0FT U1VNRSwgU1RfT01QX0FTU1VNRVMsCisgIFNUX09NUF9BTExPQ0FURSwgU1RfT01QX0FMTE9D QVRFX0VYRUMsCisgIFNUX09NUF9BTExPQ0FUT1JTLCBTVF9PTVBfRU5EX0FMTE9DQVRPUlMs CiAgIC8qIE5vdGU6IGdmY19tYXRjaF9vbXBfbm90aGluZyByZXR1cm5zIFNUX05PTkUuICov CiAgIFNUX09NUF9OT1RISU5HLCBTVF9OT05FLAogICBTVF9PTVBfVU5ST0xMLCBTVF9PTVBf RU5EX1VOUk9MTCwKQEAgLTEzODcsNiArMTM4OSw3IEBAIHR5cGVkZWYgc3RydWN0IGdmY19v bXBfbmFtZWxpc3QKICAgICAgIHN0cnVjdCBnZmNfb21wX25hbWVsaXN0X3VkciAqdWRyOwog ICAgICAgc3RydWN0IGdmY19vbXBfbmFtZWxpc3RfdWRtICp1ZG07CiAgICAgICBnZmNfbmFt ZXNwYWNlICpuczsKKyAgICAgIGdmY19leHByICphbGxvY2F0b3I7CiAgICAgICBzdHJ1Y3Qg Z2ZjX29tcF9uYW1lbGlzdCAqZHVwbGljYXRlX29mOwogICAgIH0gdTI7CiAgIHN0cnVjdCBn ZmNfc3ltYm9sICptZW1zcGFjZV9zeW07CkBAIC0xNDMxLDcgKzE0MzQsNiBAQCBlbnVtCiAg IE9NUF9MSVNUX1VTRV9ERVZJQ0VfQUREUiwKICAgT01QX0xJU1RfTk9OVEVNUE9SQUwsCiAg IE9NUF9MSVNUX0FMTE9DQVRFLAotICBPTVBfTElTVF9BTExPQ0FUT1IsCiAgIE9NUF9MSVNU X0hBU19ERVZJQ0VfQUREUiwKICAgT01QX0xJU1RfRU5URVIsCiAgIE9NUF9MSVNUX1VTRVNf QUxMT0NBVE9SUywKQEAgLTIyNTcsOCArMjI1OSw5IEBAIHR5cGVkZWYgc3RydWN0IGdmY19u YW1lc3BhY2UKICAgLyogTGlua2VkIGxpc3Qgb2YgISRvbXAgZGVjbGFyZSB2YXJpYW50IGNv bnN0cnVjdHMuICAqLwogICBzdHJ1Y3QgZ2ZjX29tcF9kZWNsYXJlX3ZhcmlhbnQgKm9tcF9k ZWNsYXJlX3ZhcmlhbnQ7CiAKLSAgLyogT3Blbk1QIGFzc3VtcHRpb25zLiAgKi8KKyAgLyog T3Blbk1QIGFzc3VtcHRpb25zIGFuZCBhbGxvY2F0ZSBmb3Igc3RhdGljL3N0YWNrIHZhcnMu ICAqLwogICBzdHJ1Y3QgZ2ZjX29tcF9hc3N1bXB0aW9ucyAqb21wX2Fzc3VtZXM7CisgIHN0 cnVjdCBnZmNfb21wX25hbWVsaXN0ICpvbXBfYWxsb2NhdGU7CiAKICAgLyogQSBoYXNoIHNl dCBmb3IgdGhlIGdmYyBleHByZXNzaW9ucyB0aGF0IGhhdmUgYWxyZWFkeQogICAgICBiZWVu IGZpbmFsaXplZCBpbiB0aGlzIG5hbWVzcGFjZS4gICovCkBAIC0zMDI3LDcgKzMwMzAsNiBA QCBlbnVtIGdmY19leGVjX29wCiAgIEVYRUNfT0FDQ19EQVRBLCBFWEVDX09BQ0NfSE9TVF9E QVRBLCBFWEVDX09BQ0NfTE9PUCwgRVhFQ19PQUNDX1VQREFURSwKICAgRVhFQ19PQUNDX1dB SVQsIEVYRUNfT0FDQ19DQUNIRSwgRVhFQ19PQUNDX0VOVEVSX0RBVEEsIEVYRUNfT0FDQ19F WElUX0RBVEEsCiAgIEVYRUNfT0FDQ19BVE9NSUMsIEVYRUNfT0FDQ19ERUNMQVJFLAotICBF WEVDX09NUF9BTExPQ0FURSwKICAgRVhFQ19PTVBfQ1JJVElDQUwsIEVYRUNfT01QX0RPLCBF WEVDX09NUF9GTFVTSCwgRVhFQ19PTVBfTUFTVEVSLAogICBFWEVDX09NUF9PUkRFUkVELCBF WEVDX09NUF9QQVJBTExFTCwgRVhFQ19PTVBfUEFSQUxMRUxfRE8sCiAgIEVYRUNfT01QX1BB UkFMTEVMX1NFQ1RJT05TLCBFWEVDX09NUF9QQVJBTExFTF9XT1JLU0hBUkUsCkBAIC0zMDU4 LDcgKzMwNjAsOCBAQCBlbnVtIGdmY19leGVjX29wCiAgIEVYRUNfT01QX1RBUkdFVF9URUFN U19MT09QLCBFWEVDX09NUF9NQVNLRUQsIEVYRUNfT01QX1BBUkFMTEVMX01BU0tFRCwKICAg RVhFQ19PTVBfUEFSQUxMRUxfTUFTS0VEX1RBU0tMT09QLCBFWEVDX09NUF9QQVJBTExFTF9N QVNLRURfVEFTS0xPT1BfU0lNRCwKICAgRVhFQ19PTVBfTUFTS0VEX1RBU0tMT09QLCBFWEVD X09NUF9NQVNLRURfVEFTS0xPT1BfU0lNRCwgRVhFQ19PTVBfU0NPUEUsCi0gIEVYRUNfT01Q X01FVEFESVJFQ1RJVkUsIEVYRUNfT01QX1VOUk9MTCwgRVhFQ19PTVBfVElMRSwgRVhFQ19P TVBfRVJST1IKKyAgRVhFQ19PTVBfTUVUQURJUkVDVElWRSwgRVhFQ19PTVBfVU5ST0xMLCBF WEVDX09NUF9USUxFLCBFWEVDX09NUF9FUlJPUiwKKyAgRVhFQ19PTVBfQUxMT0NBVEUsIEVY RUNfT01QX0FMTE9DQVRPUlMKIH07CiAKIHR5cGVkZWYgc3RydWN0IGdmY19jb2RlCkBAIC0z NzEyLDYgKzM3MTUsNyBAQCB2b2lkIGdmY19mcmVlX29tcF91ZHIgKGdmY19vbXBfdWRyICop Owogdm9pZCBnZmNfZnJlZV9vbXBfbWV0YWRpcmVjdGl2ZV9jbGF1c2VzIChnZmNfb21wX21l dGFkaXJlY3RpdmVfY2xhdXNlICopOwogdm9pZCBnZmNfZnJlZV9vbXBfdWRtIChnZmNfb21w X3VkbSAqKTsKIGdmY19vbXBfdWRyICpnZmNfb21wX3Vkcl9maW5kIChnZmNfc3ltdHJlZSAq LCBnZmNfdHlwZXNwZWMgKik7Cit2b2lkIGdmY19yZXNvbHZlX29tcF9hbGxvY2F0ZSAoZ2Zj X25hbWVzcGFjZSAqLCBnZmNfb21wX25hbWVsaXN0ICopOwogdm9pZCBnZmNfcmVzb2x2ZV9v bXBfYXNzdW1wdGlvbnMgKGdmY19vbXBfYXNzdW1wdGlvbnMgKik7CiBnZmNfb21wX3VkbSAq Z2ZjX29tcF91ZG1fZmluZCAoZ2ZjX3N5bXRyZWUgKiwgZ2ZjX3R5cGVzcGVjICopOwogZ2Zj X29tcF91ZG0gKmdmY19maW5kX29tcF91ZG0gKGdmY19uYW1lc3BhY2UgKm5zLCBjb25zdCBj aGFyICptYXBwZXJfaWQsCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9tYXRjaC5jYyBiL2dj Yy9mb3J0cmFuL21hdGNoLmNjCmluZGV4IDM4YTBlZmVkOGFjLi40NjUwMzZiNzc0MCAxMDA2 NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vbWF0Y2guY2MKKysrIGIvZ2NjL2ZvcnRyYW4vbWF0Y2gu Y2MKQEAgLTU1NTQsNiArNTU1NCw4IEBAIGdmY19mcmVlX29tcF9uYW1lbGlzdCAoZ2ZjX29t cF9uYW1lbGlzdCAqbmFtZSwgaW50IGxpc3QpCiAJZ2ZjX2ZyZWVfbmFtZXNwYWNlIChuYW1l LT51Mi5ucyk7CiAgICAgICBlbHNlIGlmIChmcmVlX21hcHBlciAmJiBuYW1lLT51Mi51ZG0p CiAJZnJlZSAobmFtZS0+dTIudWRtKTsKKyAgICAgIGVsc2UgaWYgKGZyZWVfYWxpZ24pCisJ Z2ZjX2ZyZWVfZXhwciAobmFtZS0+dTIuYWxsb2NhdG9yKTsKICAgICAgIGVsc2UgaWYgKCFm cmVlX21hcHBlciAmJiBuYW1lLT51Mi51ZHIpCiAJewogCSAgaWYgKG5hbWUtPnUyLnVkci0+ Y29tYmluZXIpCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9tYXRjaC5oIGIvZ2NjL2ZvcnRy YW4vbWF0Y2guaAppbmRleCA3ZDQxNGU0NTdiNi4uZDE1YjA2NzI2ZjEgMTAwNjQ0Ci0tLSBh L2djYy9mb3J0cmFuL21hdGNoLmgKKysrIGIvZ2NjL2ZvcnRyYW4vbWF0Y2guaApAQCAtMTUw LDYgKzE1MCw3IEBAIG1hdGNoIGdmY19tYXRjaF9vYWNjX3JvdXRpbmUgKHZvaWQpOwogLyog T3Blbk1QIGRpcmVjdGl2ZSBtYXRjaGVycy4gICovCiBtYXRjaCBnZmNfbWF0Y2hfb21wX2Vv c19lcnJvciAodm9pZCk7CiBtYXRjaCBnZmNfbWF0Y2hfb21wX2FsbG9jYXRlICh2b2lkKTsK K21hdGNoIGdmY19tYXRjaF9vbXBfYWxsb2NhdG9ycyAodm9pZCk7CiBtYXRjaCBnZmNfbWF0 Y2hfb21wX2Fzc3VtZSAodm9pZCk7CiBtYXRjaCBnZmNfbWF0Y2hfb21wX2Fzc3VtZXMgKHZv aWQpOwogbWF0Y2ggZ2ZjX21hdGNoX29tcF9hdG9taWMgKHZvaWQpOwpkaWZmIC0tZ2l0IGEv Z2NjL2ZvcnRyYW4vb3Blbm1wLmNjIGIvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCmluZGV4IDUz ZTcwNWZmZjc0Li40NzA3ZDFkNWExYSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vb3Blbm1w LmNjCisrKyBiL2djYy9mb3J0cmFuL29wZW5tcC5jYwpAQCAtNTYsOCArNTYsOCBAQCBzdHJ1 Y3QgZ2ZjX29tcF9kaXJlY3RpdmUgewogICAgYW5kICJub3RoaW5nIi4gICovCiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZ2ZjX29tcF9kaXJlY3RpdmUgZ2ZjX29tcF9kaXJlY3RpdmVzW10g PSB7Ci0gIC8qIHsiYWxsb2NhdGUiLCBHRkNfT01QX0RJUl9ERUNMQVJBVElWRSwgU1RfT01Q X0FMTE9DQVRFfSwgKi8KLSAgLyogeyJhbGxvY2F0b3JzIiwgR0ZDX09NUF9ESVJfRVhFQ1VU QUJMRSwgU1RfT01QX0FMTE9DQVRPUlN9LCAqLworICB7ImFsbG9jYXRlIiwgR0ZDX09NUF9E SVJfREVDTEFSQVRJVkUsIFNUX09NUF9BTExPQ0FURX0sCisgIHsiYWxsb2NhdG9ycyIsIEdG Q19PTVBfRElSX0VYRUNVVEFCTEUsIFNUX09NUF9BTExPQ0FUT1JTfSwKICAgeyJhc3N1bWVz IiwgR0ZDX09NUF9ESVJfSU5GT1JNQVRJT05BTCwgU1RfT01QX0FTU1VNRVN9LAogICB7ImFz c3VtZSIsIEdGQ19PTVBfRElSX0lORk9STUFUSU9OQUwsIFNUX09NUF9BU1NVTUV9LAogICB7 ImF0b21pYyIsIEdGQ19PTVBfRElSX0VYRUNVVEFCTEUsIFNUX09NUF9BVE9NSUN9LApAQCAt NDMwLDcgKzQzMCw4IEBAIGdmY19tYXRjaF9vbXBfdmFyaWFibGVfbGlzdCAoY29uc3QgY2hh ciAqc3RyLCBnZmNfb21wX25hbWVsaXN0ICoqbGlzdCwKIAkJCSAgICAgZ2ZjX29tcF9uYW1l bGlzdCAqKipoZWFkcCA9IE5VTEwsCiAJCQkgICAgIGJvb2wgYWxsb3dfc2VjdGlvbnMgPSBm YWxzZSwKIAkJCSAgICAgYm9vbCBhbGxvd19kZXJpdmVkID0gZmFsc2UsCi0JCQkgICAgIGJv b2wgKmhhc19hbGxfbWVtb3J5ID0gTlVMTCkKKwkJCSAgICAgYm9vbCAqaGFzX2FsbF9tZW1v cnkgPSBOVUxMLAorCQkJICAgICBib29sIHJlamVjdF9jb21tb25fdmFycyA9IGZhbHNlKQog ewogICBnZmNfb21wX25hbWVsaXN0ICpoZWFkLCAqdGFpbCwgKnA7CiAgIGxvY3VzIG9sZF9s b2MsIGN1cl9sb2M7CkBAIC01MTgsNiArNTE5LDE1IEBAIGdmY19tYXRjaF9vbXBfdmFyaWFi bGVfbGlzdCAoY29uc3QgY2hhciAqc3RyLCBnZmNfb21wX25hbWVsaXN0ICoqbGlzdCwKIAkg IHRhaWwtPnN5bSA9IHN5bTsKIAkgIHRhaWwtPmV4cHIgPSBleHByOwogCSAgdGFpbC0+d2hl cmUgPSBjdXJfbG9jOworCSAgaWYgKHJlamVjdF9jb21tb25fdmFycyAmJiBzeW0tPmF0dHIu aW5fY29tbW9uKQorCSAgICB7CisJICAgICAgZ2NjX2Fzc2VydCAoYWxsb3dfY29tbW9uKTsK KwkgICAgICBnZmNfZXJyb3IgKCIlcXMgYXQgJUwgaXMgcGFydCBvZiB0aGUgY29tbW9uIGJs b2NrICU8LyVzLyU+IGFuZCAiCisJCQkgIm1heSBvbmx5IGJlIHNwZWNpZmljZWQgaW1wbGlj aXRseSB2aWEgdGhlIG5hbWVkICIKKwkJCSAiY29tbW9uIGJsb2NrIiwgc3ltLT5uYW1lLCAm Y3VyX2xvYywKKwkJCSBzeW0tPmNvbW1vbl9oZWFkLT5uYW1lKTsKKwkgICAgICBnb3RvIGNs ZWFudXA7CisJICAgIH0KIAkgIGdvdG8gbmV4dF9pdGVtOwogCWNhc2UgTUFUQ0hfTk86CiAJ ICBicmVhazsKQEAgLTExODcsNyArMTE5Nyw2IEBAIGVudW0gb21wX21hc2syCiAgIE9NUF9D TEFVU0VfRklOQUxJWkUsCiAgIE9NUF9DTEFVU0VfQVRUQUNILAogICBPTVBfQ0xBVVNFX05P SE9TVCwKLSAgT01QX0NMQVVTRV9BTExPQ0FUT1IsCiAgIE9NUF9DTEFVU0VfSEFTX0RFVklD RV9BRERSLCAgLyogT3Blbk1QIDUuMSAgKi8KICAgT01QX0NMQVVTRV9FTlRFUiwgLyogT3Bl bk1QIDUuMiAqLwogICBPTVBfQ0xBVVNFX0RPQUNST1NTLCAvKiBPcGVuTVAgNS4yICovCkBA IC0yNjQzLDcgKzI2NTIsOCBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xh dXNlcyAqKmNwLCBjb25zdCBvbXBfbWFzayBtYXNrLAogCiAJICAgICAgZm9yIChnZmNfb21w X25hbWVsaXN0ICpuID0gKmhlYWQ7IG47IG4gPSBuLT5uZXh0KQogCQl7Ci0JCSAgbi0+ZXhw ciA9IChhbGxvY2F0b3IpID8gZ2ZjX2NvcHlfZXhwciAoYWxsb2NhdG9yKSA6IE5VTEw7CisJ CSAgbi0+dTIuYWxsb2NhdG9yID0gKChhbGxvY2F0b3IpCisJCQkJICAgICA/IGdmY19jb3B5 X2V4cHIgKGFsbG9jYXRvcikgOiBOVUxMKTsKIAkJICBuLT51LmFsaWduID0gKGFsaWduKSA/ IGdmY19jb3B5X2V4cHIgKGFsaWduKSA6IE5VTEw7CiAJCX0KIAkgICAgICBnZmNfZnJlZV9l eHByIChhbGxvY2F0b3IpOwpAQCAtNTAzMSw3ICs1MDQxLDYgQEAgY2xlYW51cDoKIH0KIAog Ci0jZGVmaW5lIE9NUF9BTExPQ0FURV9DTEFVU0VTIChvbXBfbWFzayAoT01QX0NMQVVTRV9B TExPQ0FUT1IpKQogI2RlZmluZSBPTVBfUEFSQUxMRUxfQ0xBVVNFUyBcCiAgIChvbXBfbWFz ayAoT01QX0NMQVVTRV9QUklWQVRFKSB8IE9NUF9DTEFVU0VfRklSU1RQUklWQVRFCQlcCiAg ICB8IE9NUF9DTEFVU0VfU0hBUkVEIHwgT01QX0NMQVVTRV9DT1BZSU4gfCBPTVBfQ0xBVVNF X1JFRFVDVElPTglcCkBAIC01MTIzLDYgKzUxMzIsOCBAQCBjbGVhbnVwOgogICAob21wX21h c2sgKE9NUF9DTEFVU0VfQVQpIHwgT01QX0NMQVVTRV9NRVNTQUdFIHwgT01QX0NMQVVTRV9T RVZFUklUWSkKICNkZWZpbmUgT01QX1dPUktTSEFSRV9DTEFVU0VTIFwKICAgb21wX21hc2sg KE9NUF9DTEFVU0VfTk9XQUlUKQorI2RlZmluZSBPTVBfQUxMT0NBVE9SU19DTEFVU0VTIFwK KyAgb21wX21hc2sgKE9NUF9DTEFVU0VfQUxMT0NBVEUpCiAjZGVmaW5lIE9NUF9VTlJPTExf Q0xBVVNFUyBcCiAgIChvbXBfbWFzayAoT01QX0NMQVVTRV9VTlJPTExfRlVMTCkgfCBPTVBf Q0xBVVNFX1VOUk9MTF9QQVJUSUFMKQogI2RlZmluZSBPTVBfVElMRV9DTEFVU0VTIFwKQEAg LTUxNDAsNiArNTE1MSwxMTMgQEAgbWF0Y2hfb21wIChnZmNfZXhlY19vcCBvcCwgY29uc3Qg b21wX21hc2sgbWFzaykKICAgcmV0dXJuIE1BVENIX1lFUzsKIH0KIAorLyogSGFuZGxlcyBi b3RoIGRlY2xhcmF0aXZlIGFuZCAoZGVwcmVjYXRlZCkgZXhlY3V0YWJsZSBBTExPQ0FURSBk aXJlY3RpdmU7CisgICBhY2NlcHRzIG9wdGlvbmFsIGxpc3QgKGZvciBleGVjdXRhYmxlKSBh bmQgY29tbW9uIGJsb2Nrcy4KKyAgIElmIG5vIHZhcmlhYmxlcyBoYXZlIGJlZW4gcHJvdmlk ZWQsIHRoZSBzaW5nbGUgb21wIG5hbWVsaXN0IGhhcyBzeW0gPT0gTlVMTC4KKworICAgTm90 ZSB0aGF0IHRoZSBleGVjdXRhYmxlIEFMTE9DQVRFIGRpcmVjdGl2ZSBwZXJtaXRzIHN0cnVj dHVyZSBlbGVtZW50cyBvbmx5CisgICBpbiBPcGVuTVAgNS4wIGFuZCA1LjEgYnV0IG5vdCBs b25nZXIgaW4gNS4yLiAgU2VlIGFsc28gdGhlIGNvbW1lbnQgb24gdGhlCisgICAnb21wIGFs bG9jYXRvcnMnIGRpcmVjdGl2ZSBiZWxvdy4gVGhlIGFjY2lkZW50YWwgY2hhbmdlIHdhcyBy ZXZlcnRlZCBmb3IKKyAgIE9wZW5NUCBUUjEyLCBwZXJtaXR0aW5nIHRoZW0gYWdhaW4uIFNl ZSBhbHNvIGdmY19tYXRjaF9vbXBfYWxsb2NhdG9ycy4KKworICAgSGVuY2UsIHN0cnVjdHVy ZSBlbGVtZW50cyBhcmUgcmVqZWN0ZWQgZm9yIG5vdywgYWxzbyB0byBtYWtlIHJlc29sdmlu ZworICAgT01QX0xJU1RfQUxMT0NBVEUgc2ltcGxlciAoY2hlY2sgZm9yIGR1cGxpY2F0ZXMs IHNhbWUgc3ltYm9sIGluCisgICBGb3J0cmFuIGFsbG9jYXRlIHN0bXQpLiAgVE9ETzogUGVy bWl0IHN0cnVjdHVyZSBlbGVtZW50cy4gICovCisKK21hdGNoCitnZmNfbWF0Y2hfb21wX2Fs bG9jYXRlICh2b2lkKQoreworICBtYXRjaCBtOworICBib29sIGZpcnN0ID0gdHJ1ZTsKKyAg Z2ZjX29tcF9uYW1lbGlzdCAqdmFycyA9IE5VTEw7CisgIGdmY19leHByICphbGlnbiA9IE5V TEw7CisgIGdmY19leHByICphbGxvY2F0b3IgPSBOVUxMOworICBsb2N1cyBsb2MgPSBnZmNf Y3VycmVudF9sb2N1czsKKworICBtID0gZ2ZjX21hdGNoX29tcF92YXJpYWJsZV9saXN0ICgi ICgiLCAmdmFycywgdHJ1ZSwgTlVMTCwgTlVMTCwgdHJ1ZSwgdHJ1ZSwKKwkJCQkgICBOVUxM LCB0cnVlKTsKKworICBpZiAobSA9PSBNQVRDSF9FUlJPUikKKyAgICByZXR1cm4gbTsKKwor ICB3aGlsZSAodHJ1ZSkKKyAgICB7CisgICAgICBnZmNfZ29iYmxlX3doaXRlc3BhY2UgKCk7 CisgICAgICBpZiAoZ2ZjX21hdGNoX29tcF9lb3MgKCkgPT0gTUFUQ0hfWUVTKQorCWJyZWFr OworICAgICAgaWYgKCFmaXJzdCkKKwlnZmNfbWF0Y2ggKCIsICIpOworICAgICAgZmlyc3Qg PSBmYWxzZTsKKyAgICAgIGlmICgobSA9IGdmY19tYXRjaF9kdXBsX2NoZWNrICghYWxpZ24s ICJhbGlnbiIsIHRydWUsICZhbGlnbikpCisJICAhPSBNQVRDSF9OTykKKwl7CisJICBpZiAo bSA9PSBNQVRDSF9FUlJPUikKKwkgICAgZ290byBlcnJvcjsKKwkgIGNvbnRpbnVlOworCX0K KyAgICAgIGlmICgobSA9IGdmY19tYXRjaF9kdXBsX2NoZWNrICghYWxsb2NhdG9yLCAiYWxs b2NhdG9yIiwKKwkJCQkgICAgIHRydWUsICZhbGxvY2F0b3IpKSAhPSBNQVRDSF9OTykKKwl7 CisJICBpZiAobSA9PSBNQVRDSF9FUlJPUikKKwkgICAgZ290byBlcnJvcjsKKwkgIGNvbnRp bnVlOworCX0KKyAgICAgIGdmY19lcnJvciAoIkV4cGVjdGVkIEFMSUdOIG9yIEFMTE9DQVRP UiBjbGF1c2UgYXQgJUMiKTsKKyAgICAgIHJldHVybiBNQVRDSF9FUlJPUjsKKyAgICB9Cisg IGZvciAoZ2ZjX29tcF9uYW1lbGlzdCAqbiA9IHZhcnM7IG47IG4gPSBuLT5uZXh0KQorICAg IGlmIChuLT5leHByKQorICAgICAgeworCWlmICgobi0+ZXhwci0+cmVmICYmIG4tPmV4cHIt PnJlZi0+dHlwZSA9PSBSRUZfQ09NUE9ORU5UKQorCSAgICB8fCAobi0+ZXhwci0+cmVmLT5u ZXh0ICYmIG4tPmV4cHItPnJlZi0+dHlwZSA9PSBSRUZfQ09NUE9ORU5UKSkKKwkgIGdmY19l cnJvciAoIlNvcnJ5LCBzdHJ1Y3R1cmUtZWxlbWVudCBsaXN0IGl0ZW0gYXQgJUwgaW4gQUxM T0NBVEUgIgorCQkgICAgICJkaXJlY3RpdmUgaXMgbm90IHlldCBzdXBwb3J0ZWQiLCAmbi0+ ZXhwci0+d2hlcmUpOworCWVsc2UKKwkgIGdmY19lcnJvciAoIlVuZXhwZWN0ZWQgZXhwcmVz c2lvbiBhcyBsaXN0IGl0ZW0gYXQgJUwgaW4gQUxMT0NBVEUgIgorCQkgICAgICJkaXJlY3Rp dmUiLCAmbi0+ZXhwci0+d2hlcmUpOworCisJZ2ZjX2ZyZWVfb21wX25hbWVsaXN0ICh2YXJz LCBPTVBfTElTVF9BTExPQ0FURSk7CisJZ290byBlcnJvcjsKKyAgICAgIH0KKworICBuZXdf c3Qub3AgPSBFWEVDX09NUF9BTExPQ0FURTsKKyAgbmV3X3N0LmV4dC5vbXBfY2xhdXNlcyA9 IGdmY19nZXRfb21wX2NsYXVzZXMgKCk7CisgIGlmICh2YXJzID09IE5VTEwpCisgICAgewor ICAgICAgdmFycyA9IGdmY19nZXRfb21wX25hbWVsaXN0ICgpOworICAgICAgdmFycy0+d2hl cmUgPSBsb2M7CisgICAgICB2YXJzLT51LmFsaWduID0gYWxpZ247CisgICAgICB2YXJzLT51 Mi5hbGxvY2F0b3IgPSBhbGxvY2F0b3I7CisgICAgICBuZXdfc3QuZXh0Lm9tcF9jbGF1c2Vz LT5saXN0c1tPTVBfTElTVF9BTExPQ0FURV0gPSB2YXJzOworICAgIH0KKyAgZWxzZQorICAg IHsKKyAgICAgIG5ld19zdC5leHQub21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9D QVRFXSA9IHZhcnM7CisgICAgICBmb3IgKDsgdmFyczsgdmFycyA9IHZhcnMtPm5leHQpCisJ eworCSAgdmFycy0+dS5hbGlnbiA9IChhbGlnbikgPyBnZmNfY29weV9leHByIChhbGlnbikg OiBOVUxMOworCSAgdmFycy0+dTIuYWxsb2NhdG9yID0gKChhbGxvY2F0b3IpID8gZ2ZjX2Nv cHlfZXhwciAoYWxsb2NhdG9yKSA6IE5VTEwpOworCX0KKyAgICAgIGdmY19mcmVlX2V4cHIg KGFsbG9jYXRvcik7CisgICAgICBnZmNfZnJlZV9leHByIChhbGlnbik7CisgICAgfQorICBy ZXR1cm4gTUFUQ0hfWUVTOworCitlcnJvcjoKKyAgZ2ZjX2ZyZWVfZXhwciAoYWxpZ24pOwor ICBnZmNfZnJlZV9leHByIChhbGxvY2F0b3IpOworICByZXR1cm4gTUFUQ0hfRVJST1I7Cit9 CisKKy8qIEluIGxpbmUgd2l0aCBPcGVuTVAgNS4yIGRlcml2ZWQtdHlwZSBjb21wb25lbnRz IGFyZSByZWplY3RlZC4KKyAgIFNlZSBhbHNvIGNvbW1lbnQgYmVmb3JlIGdmY19tYXRjaF9v bXBfYWxsb2NhdGUuICAqLworCittYXRjaAorZ2ZjX21hdGNoX29tcF9hbGxvY2F0b3JzICh2 b2lkKQoreworICByZXR1cm4gbWF0Y2hfb21wIChFWEVDX09NUF9BTExPQ0FUT1JTLCBPTVBf QUxMT0NBVE9SU19DTEFVU0VTKTsKK30KKwogCiBtYXRjaAogZ2ZjX21hdGNoX29tcF9hc3N1 bWUgKHZvaWQpCkBAIC03NjU2LDY2ICs3Nzc0LDYgQEAgZ2ZjX21hdGNoX29tcF9vcmRlcmVk X2RlcGVuZCAodm9pZCkKICAgcmV0dXJuIG1hdGNoX29tcCAoRVhFQ19PTVBfT1JERVJFRCwg b21wX21hc2sgKE9NUF9DTEFVU0VfRE9BQ1JPU1MpKTsKIH0KIAotLyogb21wIGFsbG9jYXRl IChsaXN0KSBbY2xhdXNlLWxpc3RdCi0gICAtIGNsYXVzZS1saXN0OiAgYWxsb2NhdG9yCi0q LwotCi1tYXRjaAotZ2ZjX21hdGNoX29tcF9hbGxvY2F0ZSAodm9pZCkKLXsKLSAgZ2ZjX29t cF9jbGF1c2VzICpjID0gZ2ZjX2dldF9vbXBfY2xhdXNlcyAoKTsKLSAgZ2ZjX2V4cHIgKmFs bG9jYXRvciA9IE5VTEw7Ci0gIG1hdGNoIG07Ci0KLSAgbSA9IGdmY19tYXRjaCAoIiAoIik7 Ci0gIGlmIChtID09IE1BVENIX1lFUykKLSAgICB7Ci0gICAgICBtID0gZ2ZjX21hdGNoX29t cF92YXJpYWJsZV9saXN0ICgiIiwgJmMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRPUl0sCi0J CQkJICAgICAgIHRydWUsIE5VTEwpOwotCi0gICAgICBpZiAobSAhPSBNQVRDSF9ZRVMpCi0J ewotCSAgLyogSWYgdGhlIGxpc3Qgd2FzIGVtcHR5LCB3ZSBtdXN0IGZpbmQgY2xvc2luZyAn KScuICAqLwotCSAgbSA9IGdmY19tYXRjaCAoIikiKTsKLQkgIGlmIChtICE9IE1BVENIX1lF UykKLQkgICAgcmV0dXJuIG07Ci0JfQotICAgIH0KLQotICBpZiAoZ2ZjX21hdGNoICgiIGFs bG9jYXRvciAoICIpID09IE1BVENIX1lFUykKLSAgICB7Ci0gICAgICBtID0gZ2ZjX21hdGNo X2V4cHIgKCZhbGxvY2F0b3IpOwotICAgICAgaWYgKG0gIT0gTUFUQ0hfWUVTKQotCXsKLQkg IGdmY19lcnJvciAoIkV4cGVjdGVkIGFsbG9jYXRvciBhdCAlQyIpOwotCSAgcmV0dXJuIE1B VENIX0VSUk9SOwotCX0KLSAgICAgIGlmIChnZmNfbWF0Y2ggKCIgKSAiKSAhPSBNQVRDSF9Z RVMpCi0JewotCSAgZ2ZjX2Vycm9yICgiRXhwZWN0ZWQgJyknIGF0ICVDIik7Ci0JICBnZmNf ZnJlZV9leHByIChhbGxvY2F0b3IpOwotCSAgcmV0dXJuIE1BVENIX0VSUk9SOwotCX0KLSAg ICB9Ci0KLSAgaWYgKGdmY19tYXRjaF9vbXBfZW9zICgpICE9IE1BVENIX1lFUykKLSAgICB7 Ci0gICAgICBnZmNfZnJlZV9leHByIChhbGxvY2F0b3IpOwotICAgICAgZ2ZjX2Vycm9yICgi VW5leHBlY3RlZCBqdW5rIGFmdGVyICRPTVAgYWxsb2NhdGUgYXQgJUMiKTsKLSAgICAgIHJl dHVybiBNQVRDSF9FUlJPUjsKLSAgICB9Ci0gIGdmY19vbXBfbmFtZWxpc3QgKm47Ci0gIGZv ciAobiA9IGMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRPUl07IG47IG4gPSBuLT5uZXh0KQot ICAgICAgbi0+ZXhwciA9IGdmY19jb3B5X2V4cHIgKGFsbG9jYXRvcik7Ci0KLSAgbmV3X3N0 Lm9wID0gRVhFQ19PTVBfQUxMT0NBVEU7Ci0gIG5ld19zdC5leHQub21wX2NsYXVzZXMgPSBj OwotICBuZXdfc3QucmVzb2x2ZWRfc3ltID0gTlVMTDsKLSAgZ2ZjX2ZyZWVfZXhwciAoYWxs b2NhdG9yKTsKLSAgcmV0dXJuIE1BVENIX1lFUzsKLX0KLQotCiAvKiBvbXAgYXRvbWljIFtj bGF1c2UtbGlzdF0KICAgIC0gYXRvbWljLWNsYXVzZTogIHJlYWQgfCB3cml0ZSB8IHVwZGF0 ZQogICAgLSBjYXB0dXJlCkBAIC04MTcwLDYgKzgyMjgsMTI4IEBAIHJlc29sdmVfb21wX3Vk cl9jbGF1c2UgKGdmY19vbXBfbmFtZWxpc3QgKm4sIGdmY19uYW1lc3BhY2UgKm5zLAogICBy ZXR1cm4gY29weTsKIH0KIAorLyogQXNzdW1lIHRoYXQgYSBjb25zdGFudCBleHByZXNzaW9u IGluIHRoZSByYW5nZSAxIChvbXBfZGVmYXVsdF9tZW1fYWxsb2MpCisgICB0byA4IChvbXBf dGhyZWFkX21lbV9hbGxvYykgcmFuZ2UgaXMgZmluZS4gIFRoZSBvcmlnaW5hbCBzeW1ib2wg bmFtZSBpcworICAgYWxyZWFkeSBsb3N0IGR1cmluZyBtYXRjaGluZyB2aWEgZ2ZjX21hdGNo X2V4cHIuICAqLworYm9vbAoraXNfcHJlZGVmaW5lZF9hbGxvY2F0b3IgKGdmY19leHByICpl eHByKQoreworICByZXR1cm4gKGdmY19yZXNvbHZlX2V4cHIgKGV4cHIpCisJICAmJiBleHBy LT5yYW5rID09IDAKKwkgICYmIGV4cHItPnRzLnR5cGUgPT0gQlRfSU5URUdFUgorCSAgJiYg ZXhwci0+dHMua2luZCA9PSBnZmNfY19pbnRwdHJfa2luZAorCSAgJiYgZXhwci0+ZXhwcl90 eXBlID09IEVYUFJfQ09OU1RBTlQKKwkgICYmIG1wel9zZ24gKGV4cHItPnZhbHVlLmludGVn ZXIpID4gMAorCSAgJiYgbXB6X2NtcF9zaSAoZXhwci0+dmFsdWUuaW50ZWdlciwgOCkgPD0g MCk7Cit9CisKKy8qIFJlc29sdmUgZGVjbGFyYXRpdmUgQUxMT0NBVEUgc3RhdGVtZW50LiBO b3RlOiBDb21tb24gYmxvY2sgdmFycyBvbmx5IGFwcGVhcgorICAgYXMgL2Jsb2NrLyBub3Qg aW5kaXZpZHVhbCwgd2hpY2ggaXMgZW5zdXJlZCBkdXJpbmcgcGFyc2luZy4gICovCisKK3Zv aWQKK2dmY19yZXNvbHZlX29tcF9hbGxvY2F0ZSAoZ2ZjX25hbWVzcGFjZSAqbnMsIGdmY19v bXBfbmFtZWxpc3QgKmxpc3QpCit7CisgIGZvciAoZ2ZjX29tcF9uYW1lbGlzdCAqbiA9IGxp c3Q7IG47IG4gPSBuLT5uZXh0KQorICAgIG4tPnN5bS0+bWFyayA9IDA7CisgIGZvciAoZ2Zj X29tcF9uYW1lbGlzdCAqbiA9IGxpc3Q7IG47IG4gPSBuLT5uZXh0KQorICAgIHsKKyAgICAg IGlmIChuLT5zeW0tPmF0dHIuZmxhdm9yICE9IEZMX1ZBUklBQkxFKQorCXsKKwkgIGdmY19l cnJvciAoIkFyZ3VtZW50ICVxcyBhdCAlTCB0byBkZWNsYXJhdGl2ZSAhJE9NUCBBTExPQ0FU RSAiCisJCSAgICAgImRpcmVjdGl2ZSBtdXN0IGJlIGEgdmFyaWFibGUiLCBuLT5zeW0tPm5h bWUsCisJCSAgICAgJm4tPndoZXJlKTsKKwkgIGNvbnRpbnVlOworCX0KKyAgICAgIGlmIChu cyAhPSBuLT5zeW0tPm5zIHx8IG4tPnN5bS0+YXR0ci51c2VfYXNzb2MKKwkgIHx8IG4tPnN5 bS0+YXR0ci5ob3N0X2Fzc29jIHx8IG4tPnN5bS0+YXR0ci5pbXBvcnRlZCkKKwl7CisJICBn ZmNfZXJyb3IgKCJBcmd1bWVudCAlcXMgYXQgJUwgdG8gZGVjbGFyYXRpdmUgISRPTVAgQUxM T0NBVEUgc2hhbGwgYmUiCisJCSAgICAgIiBpbiB0aGUgc2FtZSBzY29wZSBhcyB0aGUgdmFy aWFibGUgZGVjbGFyYXRpb24iLAorCQkgICAgIG4tPnN5bS0+bmFtZSwgJm4tPndoZXJlKTsK KwkgIGNvbnRpbnVlOworCX0KKyAgICAgIGlmIChuLT5zeW0tPmF0dHIuZHVtbXkpCisJewor CSAgZ2ZjX2Vycm9yICgiVW5leHBlY3RlZCBkdW1teSBhcmd1bWVudCAlcXMgYXMgYXJndW1l bnQgYXQgJUwgdG8gIgorCQkgICAgICJkZWNsYXJhdGl2ZSAhJE9NUCBBTExPQ0FURSIsIG4t PnN5bS0+bmFtZSwgJm4tPndoZXJlKTsKKwkgIGNvbnRpbnVlOworCX0KKyAgICAgIGlmIChu LT5zeW0tPm1hcmspCisJeworCSAgaWYgKG4tPnN5bS0+YXR0ci5pbl9jb21tb24pCisJICAg IHsKKwkgICAgICBnZmNfZXJyb3IgKCJEdXBsaWNhdGVkIGNvbW1vbiBibG9jayAlPC8lcy8l PiBpbiAhJE9NUCBBTExPQ0FURSAiCisJCQkgImF0ICVMIiwgbi0+c3ltLT5jb21tb25faGVh ZC0+bmFtZSwgJm4tPndoZXJlKTsKKwkgICAgICB3aGlsZSAobi0+bmV4dCAmJiBuLT5uZXh0 LT5zeW0KKwkJICAgICAmJiBuLT5zeW0tPmNvbW1vbl9oZWFkID09IG4tPm5leHQtPnN5bS0+ Y29tbW9uX2hlYWQpCisJCW4gPSBuLT5uZXh0OworCSAgICB9CisJICBlbHNlCisJICAgIGdm Y19lcnJvciAoIkR1cGxpY2F0ZWQgdmFyaWFibGUgJXFzIGluICEkT01QIEFMTE9DQVRFIGF0 ICVMIiwKKwkJICAgICAgIG4tPnN5bS0+bmFtZSwgJm4tPndoZXJlKTsKKwkgIGNvbnRpbnVl OworCX0KKyAgICAgIG4tPnN5bS0+bWFyayA9IDE7CisgICAgICBpZiAoKG4tPnN5bS0+dHMu dHlwZSA9PSBCVF9DTEFTUyAmJiBuLT5zeW0tPmF0dHIuY2xhc3Nfb2sKKwkgICAmJiBDTEFT U19EQVRBIChuLT5zeW0pLT5hdHRyLmFsbG9jYXRhYmxlKQorCSAgfHwgKG4tPnN5bS0+dHMu dHlwZSAhPSBCVF9DTEFTUyAmJiBuLT5zeW0tPmF0dHIuYWxsb2NhdGFibGUpKQorCWdmY19l cnJvciAoIlVuZXhwZWN0ZWQgYWxsb2NhdGFibGUgdmFyaWFibGUgJXFzIGF0ICVMIGluIGRl Y2xhcmF0aXZlICIKKwkJICAgIiEkT01QIEFMTE9DQVRFIGRpcmVjdGl2ZSIsIG4tPnN5bS0+ bmFtZSwgJm4tPndoZXJlKTsKKyAgICAgIGVsc2UgaWYgKChuLT5zeW0tPnRzLnR5cGUgPT0g QlRfQ0xBU1MgJiYgbi0+c3ltLT5hdHRyLmNsYXNzX29rCisJCSYmIENMQVNTX0RBVEEgKG4t PnN5bSktPmF0dHIuY2xhc3NfcG9pbnRlcikKKwkgICAgICAgfHwgKG4tPnN5bS0+dHMudHlw ZSAhPSBCVF9DTEFTUyAmJiBuLT5zeW0tPmF0dHIucG9pbnRlcikpCisJZ2ZjX2Vycm9yICgi VW5leHBlY3RlZCBwb2ludGVyIHZhcmlhYmxlICVxcyBhdCAlTCBpbiBkZWNsYXJhdGl2ZSAi CisJCSAgICIhJE9NUCBBTExPQ0FURSBkaXJlY3RpdmUiLCBuLT5zeW0tPm5hbWUsICZuLT53 aGVyZSk7CisgICAgICBIT1NUX1dJREVfSU5UIGFsaWdubWVudCA9IDA7CisgICAgICBpZiAo bi0+dS5hbGlnbgorCSAgJiYgKCFnZmNfcmVzb2x2ZV9leHByIChuLT51LmFsaWduKQorCSAg ICAgIHx8IG4tPnUuYWxpZ24tPnRzLnR5cGUgIT0gQlRfSU5URUdFUgorCSAgICAgIHx8IG4t PnUuYWxpZ24tPnJhbmsgIT0gMAorCSAgICAgIHx8IG4tPnUuYWxpZ24tPmV4cHJfdHlwZSAh PSBFWFBSX0NPTlNUQU5UCisJICAgICAgfHwgZ2ZjX2V4dHJhY3RfaHdpIChuLT51LmFsaWdu LCAmYWxpZ25tZW50KQorCSAgICAgIHx8ICFwb3cycF9od2kgKGFsaWdubWVudCkpKQorCXsK KwkgIGdmY19lcnJvciAoIkFMSUdOIHJlcXVpcmVzIGEgc2NhbGFyIHBvc2l0aXZlIGNvbnN0 YW50IGludGVnZXIgIgorCQkgICAgICJhbGlnbm1lbnQgZXhwcmVzc2lvbiBhdCAlTCB0aGF0 IGlzIGEgcG93ZXIgb2YgdHdvIiwKKwkJICAgICAmbi0+dS5hbGlnbi0+d2hlcmUpOworCSAg d2hpbGUgKG4tPnN5bS0+YXR0ci5pbl9jb21tb24gJiYgbi0+bmV4dCAmJiBuLT5uZXh0LT5z eW0KKwkJICYmIG4tPnN5bS0+Y29tbW9uX2hlYWQgPT0gbi0+bmV4dC0+c3ltLT5jb21tb25f aGVhZCkKKwkgICAgbiA9IG4tPm5leHQ7CisJICBjb250aW51ZTsKKwl9CisgICAgICBpZiAo bi0+c3ltLT5hdHRyLmluX2NvbW1vbiB8fCBuLT5zeW0tPmF0dHIuc2F2ZSB8fCBuLT5zeW0t Pm5zLT5zYXZlX2FsbAorCSAgfHwgKG4tPnN5bS0+bnMtPnByb2NfbmFtZQorCSAgICAgICYm IChuLT5zeW0tPm5zLT5wcm9jX25hbWUtPmF0dHIuZmxhdm9yID09IEZMX1BST0dSQU0KKwkJ ICB8fCBuLT5zeW0tPm5zLT5wcm9jX25hbWUtPmF0dHIuZmxhdm9yID09IEZMX01PRFVMRSkp KQorCXsKKwkgIGJvb2wgY29tID0gbi0+c3ltLT5hdHRyLmluX2NvbW1vbjsKKwkgIGlmICgh bi0+dTIuYWxsb2NhdG9yKQorCSAgICBnZmNfZXJyb3IgKCJBbiBBTExPQ0FUT1IgY2xhdXNl IGlzIHJlcXVpcmVkIGFzIHRoZSBsaXN0IGl0ZW0gIgorCQkgICAgICAgIiU8JXMlcyVzJT4g YXQgJUwgaGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIsIGNvbSA/ICIvIiA6ICIiLAorCQkgICAg ICAgY29tID8gbi0+c3ltLT5jb21tb25faGVhZC0+bmFtZSA6IG4tPnN5bS0+bmFtZSwKKwkJ ICAgICAgIGNvbSA/ICIvIiA6ICIiLCAmbi0+d2hlcmUpOworCSAgZWxzZSBpZiAoIWlzX3By ZWRlZmluZWRfYWxsb2NhdG9yIChuLT51Mi5hbGxvY2F0b3IpKQorCSAgICBnZmNfZXJyb3Ig KCJQcmVkZWZpbmVkIGFsbG9jYXRvciByZXF1aXJlZCBpbiBBTExPQ0FUT1IgY2xhdXNlIGF0 ICVMIgorCQkgICAgICAgIiBhcyB0aGUgbGlzdCBpdGVtICU8JXMlcyVzJT4gYXQgJUwgaGFz IHRoZSBTQVZFIGF0dHJpYnV0ZSIsCisJCSAgICAgICAmbi0+dTIuYWxsb2NhdG9yLT53aGVy ZSwgY29tID8gIi8iIDogIiIsCisJCSAgICAgICBjb20gPyBuLT5zeW0tPmNvbW1vbl9oZWFk LT5uYW1lIDogbi0+c3ltLT5uYW1lLAorCQkgICAgICAgY29tID8gIi8iIDogIiIsICZuLT53 aGVyZSk7CisJICB3aGlsZSAobi0+c3ltLT5hdHRyLmluX2NvbW1vbiAmJiBuLT5uZXh0ICYm IG4tPm5leHQtPnN5bQorCQkgJiYgbi0+c3ltLT5jb21tb25faGVhZCA9PSBuLT5uZXh0LT5z eW0tPmNvbW1vbl9oZWFkKQorCSAgICBuID0gbi0+bmV4dDsKKwl9CisgICAgICBlbHNlIGlm IChuLT51Mi5hbGxvY2F0b3IKKwkgICYmICghZ2ZjX3Jlc29sdmVfZXhwciAobi0+dTIuYWxs b2NhdG9yKQorCSAgICAgIHx8IG4tPnUyLmFsbG9jYXRvci0+dHMudHlwZSAhPSBCVF9JTlRF R0VSCisJICAgICAgfHwgbi0+dTIuYWxsb2NhdG9yLT5yYW5rICE9IDAKKwkgICAgICB8fCBu LT51Mi5hbGxvY2F0b3ItPnRzLmtpbmQgIT0gZ2ZjX2NfaW50cHRyX2tpbmQpKQorCWdmY19l cnJvciAoIkV4cGVjdGVkIGludGVnZXIgZXhwcmVzc2lvbiBvZiB0aGUgIgorCQkgICAiJTxv bXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kJT4ga2luZCBhdCAlTCIsCisJCSAgICZuLT51Mi5h bGxvY2F0b3ItPndoZXJlKTsKKyAgICB9CisgIGdmY19lcnJvciAoIlNvcnJ5LCBkZWNsYXJh dGl2ZSAhJE9NUCBBTExPQ0FURSBhdCAlTCBub3QgeWV0IHN1cHBvcnRlZCIsCisJICAgICAm bGlzdC0+d2hlcmUpOworfQogCiAvKiBSZXNvbHZlIEFTU1VNRSdzIGFuZCBBU1NVTUVTJyBh c3N1bXB0aW9uIGNsYXVzZXMuICBOb3RlIHRoYXQgYWJzZW50L2NvbnRhaW5zCiAgICBpcyBo YW5kbGVkIGR1cmluZyBwYXJzZSB0aW1lIGluIG9tcF92ZXJpZnlfbWVyZ2VfYWJzZW50X2Nv bnRhaW5zLiAgICovCkBAIC04NDU3LDI4ICs4NjM3LDMxIEBAIHZlcmlmeV9vbXBfY2xhdXNl c19zeW1ib2xfZHVwcyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19vbXBfY2xhdXNlcyAqb21wX2Ns YXVzZXMsCiAgICAgewogICAgICAgZm9yIChuID0gb21wX2NsYXVzZXMtPmxpc3RzW09NUF9M SVNUX0FMTE9DQVRFXTsgbjsgbiA9IG4tPm5leHQpCiAJewotCSAgaWYgKG4tPmV4cHIgJiYg KCFnZmNfcmVzb2x2ZV9leHByIChuLT5leHByKQotCQkJICB8fCBuLT5leHByLT50cy50eXBl ICE9IEJUX0lOVEVHRVIKLQkJCSAgfHwgbi0+ZXhwci0+dHMua2luZCAhPSBnZmNfY19pbnRw dHJfa2luZCkpCisJICBpZiAobi0+dTIuYWxsb2NhdG9yCisJICAgICAgJiYgKCFnZmNfcmVz b2x2ZV9leHByIChuLT51Mi5hbGxvY2F0b3IpCisJCSAgfHwgbi0+dTIuYWxsb2NhdG9yLT50 cy50eXBlICE9IEJUX0lOVEVHRVIKKwkJICB8fCBuLT51Mi5hbGxvY2F0b3ItPnJhbmsgIT0g MAorCQkgIHx8IG4tPnUyLmFsbG9jYXRvci0+dHMua2luZCAhPSBnZmNfY19pbnRwdHJfa2lu ZCkpCiAJICAgIHsKIAkgICAgICBnZmNfZXJyb3IgKCJFeHBlY3RlZCBpbnRlZ2VyIGV4cHJl c3Npb24gb2YgdGhlICIKIAkJCSAiJTxvbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kJT4ga2lu ZCBhdCAlTCIsCi0JCQkgJm4tPmV4cHItPndoZXJlKTsKKwkJCSAmbi0+dTIuYWxsb2NhdG9y LT53aGVyZSk7CiAJICAgICAgYnJlYWs7CiAJICAgIH0KIAkgIGlmICghbi0+dS5hbGlnbikK IAkgICAgY29udGludWU7Ci0JICBpbnQgYWxpZ25tZW50ID0gMDsKKwkgIEhPU1RfV0lERV9J TlQgYWxpZ25tZW50ID0gMDsKIAkgIGlmICghZ2ZjX3Jlc29sdmVfZXhwciAobi0+dS5hbGln bikKIAkgICAgICB8fCBuLT51LmFsaWduLT50cy50eXBlICE9IEJUX0lOVEVHRVIKIAkgICAg ICB8fCBuLT51LmFsaWduLT5yYW5rICE9IDAKLQkgICAgICB8fCBnZmNfZXh0cmFjdF9pbnQg KG4tPnUuYWxpZ24sICZhbGlnbm1lbnQpCisJICAgICAgfHwgbi0+dS5hbGlnbi0+ZXhwcl90 eXBlICE9IEVYUFJfQ09OU1RBTlQKKwkgICAgICB8fCBnZmNfZXh0cmFjdF9od2kgKG4tPnUu YWxpZ24sICZhbGlnbm1lbnQpCiAJICAgICAgfHwgYWxpZ25tZW50IDw9IDAKIAkgICAgICB8 fCAhcG93MnBfaHdpIChhbGlnbm1lbnQpKQogCSAgICB7Ci0JICAgICAgZ2ZjX2Vycm9yICgi QUxJR04gbW9kaWZpZXIgcmVxdWlyZXMgYXQgJUwgYSBzY2FsYXIgcG9zaXRpdmUgIgotCQkJ ICJjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCBleHByZXNzaW9uIHRoYXQgaXMgYSAiCi0J CQkgInBvd2VyIG9mIHR3byIsICZuLT51LmFsaWduLT53aGVyZSk7CisJICAgICAgZ2ZjX2Vy cm9yICgiQUxJR04gcmVxdWlyZXMgYSBzY2FsYXIgcG9zaXRpdmUgY29uc3RhbnQgaW50ZWdl ciAiCisJCQkgImFsaWdubWVudCBleHByZXNzaW9uIGF0ICVMIHRoYXQgaXMgYSBwb3dlciBv ZiB0d28iLAorCQkJICZuLT51LmFsaWduLT53aGVyZSk7CiAJICAgICAgYnJlYWs7CiAJICAg IH0KIAl9CkBAIC04NDg4LDE1ICs4NjcxLDIxIEBAIHZlcmlmeV9vbXBfY2xhdXNlc19zeW1i b2xfZHVwcyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMs CiAJIDIuICBWYXJpYWJsZSBpbiBhbGxvY2F0ZSBjbGF1c2UgYXJlIGFsc28gcHJlc2VudCBp biBzb21lCiAJICAgICBwcml2YXRpemF0aW9uIGNsYXNlIChub24tY29tcG9zaXRlIGNhc2Up LiAgKi8KICAgICAgIGZvciAobiA9IG9tcF9jbGF1c2VzLT5saXN0c1tPTVBfTElTVF9BTExP Q0FURV07IG47IG4gPSBuLT5uZXh0KQotCW4tPnN5bS0+bWFyayA9IDA7CisJaWYgKG4tPnN5 bSkKKwkgIG4tPnN5bS0+bWFyayA9IDA7CiAKICAgICAgIGdmY19vbXBfbmFtZWxpc3QgKnBy ZXYgPSBOVUxMOwotICAgICAgZm9yIChuID0gb21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNU X0FMTE9DQVRFXTsgbjspCisgICAgICBmb3IgKG4gPSBvbXBfY2xhdXNlcy0+bGlzdHNbT01Q X0xJU1RfQUxMT0NBVEVdOyBuOyApCiAJeworCSAgaWYgKG4tPnN5bSA9PSBOVUxMKQorCSAg ICB7CisJICAgICAgbiA9IG4tPm5leHQ7CisJICAgICAgY29udGludWU7CisJICAgIH0KIAkg IGlmIChuLT5zeW0tPm1hcmsgPT0gMSkKIAkgICAgewogCSAgICAgIGdmY193YXJuaW5nICgw LCAiJXFzIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UgaW4gJTxhbGxvY2F0ZSU+ICIKLQkJCSAg ICJjbGF1c2VzIGF0ICVMIiAsIG4tPnN5bS0+bmFtZSwgJm4tPndoZXJlKTsKKwkJCSAgICJh dCAlTCIgLCBuLT5zeW0tPm5hbWUsICZuLT53aGVyZSk7CiAJICAgICAgLyogV2UgaGF2ZSBh bHJlYWR5IHNlZW4gdGhpcyB2YXJpYWJsZSBzbyBpdCBpcyBhIGR1cGxpY2F0ZS4KIAkJIFJl bW92ZSBpdC4gICovCiAJICAgICAgaWYgKHByZXYgIT0gTlVMTCAmJiBwcmV2LT5uZXh0ID09 IG4pCkBAIC04NTQxLDYgKzg3MzAsMTY4IEBAIHZlcmlmeV9vbXBfY2xhdXNlc19zeW1ib2xf ZHVwcyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMsCiAJ CQkgImluIGFuIGV4cGxpY2l0IHByaXZhdGl6YXRpb24gY2xhdXNlIiwgbi0+c3ltLT5uYW1l LAogCQkJICZuLT53aGVyZSk7CiAJfQorICAgICAgaWYgKGNvZGUKKwkgICYmIChjb2RlLT5v cCA9PSBFWEVDX09NUF9BTExPQ0FUT1JTIHx8IGNvZGUtPm9wID09IEVYRUNfT01QX0FMTE9D QVRFKQorCSAgJiYgY29kZS0+YmxvY2sKKwkgICYmIGNvZGUtPmJsb2NrLT5uZXh0CisJICAm JiBjb2RlLT5ibG9jay0+bmV4dC0+b3AgPT0gRVhFQ19BTExPQ0FURSkKKwl7CisJICBnZmNf YWxsb2MgKmE7CisJICBnZmNfb21wX25hbWVsaXN0ICpuX251bGwgPSBOVUxMOworCSAgZm9y IChuID0gb21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXTsgbjsgbiA9IG4t Pm5leHQpCisJICAgIHsKKwkgICAgICBpZiAobi0+c3ltID09IE5VTEwpCisJCXsKKwkJICBu X251bGwgPSBuOworCQkgIGNvbnRpbnVlOworCQl9CisJICAgICAgZm9yIChhID0gY29kZS0+ YmxvY2stPm5leHQtPmV4dC5hbGxvYy5saXN0OyBhOyBhID0gYS0+bmV4dCkKKwkJaWYgKGEt PmV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFCisJCSAgICAmJiBhLT5leHByLT5z eW10cmVlLT5uLnN5bSA9PSBuLT5zeW0pCisJCSAgYnJlYWs7CisJICAgICAgaWYgKGEgPT0g TlVMTCkKKwkJZ2ZjX2Vycm9yICgiJXFzIHNwZWNpZmllZCBpbiAlPGFsbG9jYXRlJT4gYXQg JUwgYnV0IG5vdCAiCisJCQkgICAiaW4gdGhlIGFzc29jaWF0ZWQgQUxMT0NBVEUgc3RhdGVt ZW50IiwKKwkJCSAgIG4tPnN5bS0+bmFtZSwgJm4tPndoZXJlKTsKKwkgICAgfQorCSAgLyog SWYgdGhlcmUgaXMgYW4gQUxMT0NBVEUgZGlyZWN0aXZlIHdpdGhvdXQgbGlzdCBhcmd1bWVu dCwgYQorCSAgICAgbmFtZWxpc3Qgd2l0aCBpdHMgYWxsb2NhdG9yL2FsaWduIGNsYXVzZXMg YW5kIG4tPnN5bSA9IE5VTEwgaXMKKwkgICAgIGNyZWF0ZWQgZHVyaW5nIHBhcnNpbmc7IGhl cmUsIHdlIGFkZCBhbGwgbm90IG90aGVyd2lzZSBzcGVjaWZpZWQKKwkgICAgIGl0ZW1zIGZy b20gdGhlIEZvcnRyYW4gYWxsb2NhdGUgdG8gdGhhdCBsaXN0LgorCSAgICAgRm9yIGFuIEFM TE9DQVRPUlMgZGlyZWN0aXZlLCBub3QgbGlzdGVkIGl0ZW1zIHVzZSB0aGUgbm9ybWFsCisJ ICAgICBGb3J0cmFuIHdheS4KKwkgICAgIFRoZSBiZWhhdmlvciBvZiBhbiBBTExPQ0FURSBk aXJlY3RpdmUgdGhhdCBkb2VzIG5vdCBsaXN0IGFsbAorCSAgICAgYXJndW1lbnRzIGJ1dCB0 aGVyZSBpcyBubyBkaXJlY3RpdmUgd2l0aG91dCBsaXN0IGFyZ3VtZW50IGlzIG5vdAorCSAg ICAgd2VsbCBzcGVjaWZpZWQuICBUaHVzLCB3ZSByZWplY3Qgc3VjaCBjb2RlIGJlbG93LiBJ biBPcGVuTVAgNS4yCisJICAgICB0aGUgZXhlY3V0YWJsZSBBTExPQ0FURSBkaXJlY3RpdmUg aXMgZGVwcmVjYXRlZCBhbmQgaW4gNi4wCisJICAgICBkZWxldGVkIHN1Y2ggdGhhdCBubyBz cGVjIGNsYXJpZmljYXRpb24gaXMgdG8gYmUgZXhwZWN0ZWQuICAqLworCSAgZ2ZjX2FsbG9j ICphX3ByZXYgPSBOVUxMOworCSAgZ2ZjX2FsbG9jICpleHRyYV9hbGxvYyA9IE5VTEwsICpl eHRyYV9hbGxvY19sYXN0ID0gTlVMTDsKKwkgIGZvciAoYSA9IGNvZGUtPmJsb2NrLT5uZXh0 LT5leHQuYWxsb2MubGlzdDsgYTsgKQorCSAgICB7CisJICAgICAgaWYgKGEtPmV4cHItPmV4 cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFKQorCQl7CisJCSAgZm9yIChuID0gb21wX2NsYXVz ZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXTsgbjsgbiA9IG4tPm5leHQpCisJCSAgICBp ZiAoYS0+ZXhwci0+c3ltdHJlZS0+bi5zeW0gPT0gbi0+c3ltKQorCQkgICAgICBicmVhazsK KwkJICBpZiAobiA9PSBOVUxMICYmIG5fbnVsbCA9PSBOVUxMKQorCQkgICAgeworCQkgICAg ICBpZiAoIWV4dHJhX2FsbG9jKQorCQkJZXh0cmFfYWxsb2MgPSBleHRyYV9hbGxvY19sYXN0 ID0gYTsKKwkJICAgICAgZWxzZQorCQkJeworCQkJICBleHRyYV9hbGxvY19sYXN0LT5uZXh0 ID0gYTsKKwkJCSAgZXh0cmFfYWxsb2NfbGFzdCA9IGE7CisJCQl9CisJCSAgICAgIGEgPSBh LT5uZXh0OworCQkgICAgICBpZiAoY29kZS0+YmxvY2stPm5leHQtPmV4dC5hbGxvYy5saXN0 ID09IGV4dHJhX2FsbG9jX2xhc3QpCisJCQljb2RlLT5ibG9jay0+bmV4dC0+ZXh0LmFsbG9j Lmxpc3QgPSBhOworCQkgICAgICBlbHNlCisJCQlhX3ByZXYtPm5leHQgPSBhOworCQkgICAg ICBleHRyYV9hbGxvY19sYXN0LT5uZXh0ID0gTlVMTDsKKwkJICAgICAgY29udGludWU7CisJ CSAgICB9CisJCSAgaWYgKG4gPT0gTlVMTCkKKwkJICAgIHsKKwkJICAgICAgaWYgKGEtPmV4 cHItPnN5bXRyZWUtPm4uc3ltLT5hdHRyLmNvZGltZW5zaW9uKQorCQkJZ2ZjX2Vycm9yICgi VW5leHBlY3RlZCBjb2FycmF5ICVxcyBpbiAlPGFsbG9jYXRlJT4gYXQgIgorCQkJCSAgICIl TCwgaW1wbGljaXRseSBsaXN0ZWQgaW4gJTwhJE9NUCBBTExPQ0FURSU+IgorCQkJCSAgICIg YXQgJUwiLCBhLT5leHByLT5zeW10cmVlLT5uLnN5bS0+bmFtZSwKKwkJCQkgICAmYS0+ZXhw ci0+d2hlcmUsICZuX251bGwtPndoZXJlKTsKKwkJICAgICAgaWYgKG5fbnVsbC0+c3ltID09 IE5VTEwpCisJCQluX251bGwtPnN5bSA9IGEtPmV4cHItPnN5bXRyZWUtPm4uc3ltOworCQkg ICAgICBlbHNlCisJCQl7CisJCQkgIG4gPSBuX251bGwtPm5leHQ7CisJCQkgIG5fbnVsbC0+ bmV4dCA9IGdmY19nZXRfb21wX25hbWVsaXN0ICgpOworCQkJICBuX251bGwtPm5leHQtPm5l eHQgPSBuOworCQkJICBuX251bGwtPm5leHQtPnN5bSA9IGEtPmV4cHItPnN5bXRyZWUtPm4u c3ltOworCQkJICBuX251bGwtPm5leHQtPnUyLmFsbG9jYXRvciA9IG5fbnVsbC0+dTIuYWxs b2NhdG9yOworCQkJICBuX251bGwtPm5leHQtPnUuYWxpZ24KKwkJCSAgICA9IGdmY19jb3B5 X2V4cHIgKG5fbnVsbC0+dS5hbGlnbik7CisJCQkgIG5fbnVsbC0+bmV4dC0+d2hlcmUgPSBu X251bGwtPndoZXJlOworCQkJICBuX251bGwgPSBuX251bGwtPm5leHQ7CisJCQl9CisJCSAg ICB9CisJCX0KKwkgICAgICBhX3ByZXYgPSBhOworCSAgICAgIGEgPSBhLT5uZXh0OworCSAg ICB9CisJICBpZiAobl9udWxsICYmIG5fbnVsbC0+c3ltID09IE5VTEwpCisJICAgIHsKKwkg ICAgICBpZiAobl9udWxsID09IG9tcF9jbGF1c2VzLT5saXN0c1tPTVBfTElTVF9BTExPQ0FU RV0pCisJCW9tcF9jbGF1c2VzLT5saXN0c1tPTVBfTElTVF9BTExPQ0FURV0gPSBuX251bGwt Pm5leHQ7CisJICAgICAgZWxzZQorCQl7CisJCSAgZm9yIChuID0gb21wX2NsYXVzZXMtPmxp c3RzW09NUF9MSVNUX0FMTE9DQVRFXTsgbjsKKwkJICAgICAgIG4gPSBuLT5uZXh0KQorCQkg ICAgaWYgKG4tPm5leHQgPT0gbl9udWxsKQorCQkgICAgICBicmVhazsKKwkJICBuLT5uZXh0 ID0gbl9udWxsLT5uZXh0OworCQkgIG5fbnVsbC0+bmV4dCA9IE5VTEw7CisJCSAgZ2ZjX2Zy ZWVfb21wX25hbWVsaXN0IChuX251bGwsIE9NUF9MSVNUX0FMTE9DQVRFKTsKKwkJfQorCSAg ICB9CisJICBpZiAoZXh0cmFfYWxsb2MpCisJICAgIHsKKwkgICAgICAvKiBVbnNwZWNpZmll ZCB3aGV0aGVyIHRoYXQgc2hvdWxkIHVzZSB0aGUgZGVmYXVsdCBhbGxvY2F0b3IKKwkJIG9m IE9wZW5NUCBvciB0aGUgRm9ydHJhbiBhbGxvY2F0b3IuIFRodXMsIGp1c3QgcmVqZWN0IGl0 LiAgKi8KKwkgICAgICBpZiAoY29kZS0+b3AgPT0gRVhFQ19PTVBfQUxMT0NBVEUpCisJCWdm Y19lcnJvciAoIiVxcyBsaXN0ZWQgaW4gJTxhbGxvY2F0ZSU+IHN0YXRlbWVudCBhdCAlTCBi dXQgIgorCQkJICAgIml0IGlzIG5laXRoZXIgZXhwbGljaXRseSBpbiBsaXN0ZWQgaW4gdGhl ICIKKwkJCSAgICIlPCEkT01QIEFMTE9DQVRFJT4gZGlyZWN0aXZlIG5vciBleGlzdHMgYSBk aXJlY3RpdmUiCisJCQkgICAiIHdpdGhvdXQgYXJndW1lbnQgbGlzdCIsCisJCQkgICBleHRy YV9hbGxvYy0+ZXhwci0+c3ltdHJlZS0+bi5zeW0tPm5hbWUsCisJCQkgICAmZXh0cmFfYWxs b2MtPmV4cHItPndoZXJlKTsKKwkgICAgICBnZmNfY29kZSAqYyA9IGNvZGUtPmJsb2NrLT5u ZXh0OworCSAgICAgIGdjY19hc3NlcnQgKGMtPm9wID09IEVYRUNfQUxMT0NBVEUgJiYgYy0+ bmV4dCA9PSBOVUxMKTsKKwkgICAgICBnZmNfY29kZSAqY24gPSBjb2RlLT5uZXh0OworCSAg ICAgIGNvZGUtPm5leHQgPSBnZmNfZ2V0X2NvZGUgKGMtPm9wKTsKKwkgICAgICBjb2RlLT5u ZXh0LT5uZXh0ID0gY247CisJICAgICAgY24gPSBjb2RlLT5uZXh0OworCSAgICAgIGNuLT5s b2MgPSBjLT5sb2M7CisJICAgICAgY24tPmV4cHIxID0gZ2ZjX2NvcHlfZXhwciAoY24tPmV4 cHIxKTsKKwkgICAgICBjbi0+ZXhwcjIgPSBnZmNfY29weV9leHByIChjbi0+ZXhwcjIpOwor CSAgICAgIGNuLT5leHByMyA9IGdmY19jb3B5X2V4cHIgKGNuLT5leHByMyk7CisJICAgICAg Y24tPmV4dC5hbGxvYy50cyA9IGNuLT5leHQuYWxsb2MudHM7CisJICAgICAgY24tPmV4dC5h bGxvYy5saXN0ID0gZXh0cmFfYWxsb2M7CisJICAgICAgY24tPmV4dC5hbGxvYy5hcnJfc3Bl Y19mcm9tX2V4cHIzCisJCT0gYy0+ZXh0LmFsbG9jLmFycl9zcGVjX2Zyb21fZXhwcjM7CisJ ICAgICAgY24tPmV4dC5hbGxvYy5leHByM19ub3RfZXhwbGljaXQKKwkJPSBjLT5leHQuYWxs b2MuZXhwcjNfbm90X2V4cGxpY2l0OworCSAgICB9CisJICAvKiBUaGUgY3VycmVudCBpbXBs ZW1lbnRhdGlvbiByZXF1aXJlcyB0aGF0IGFuIEVYRUNfT01QX0FMTE9DQVRFIGlzCisJICAg ICBhZGRlZCB3aXRoIE9NUF9BTExPQ0FURV9LSU5EX0ZSRUUgc2V0IGF0IHRoZSBlbmQgb2Yg dGhlIHNjb3BlOworCSAgICAgY2YuIHRyYW5zLWRlY2wuY2MncyBnZmNfdHJhbnNfZGVmZXJy ZWRfdmFycyBhbmQKKwkgICAgIGdmY190cmFuc19vbXBfYWxsb2NhdGUuICAqLworCSAgZm9y IChuID0gb21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXTsgbjsgbiA9IG4t Pm5leHQpCisJICAgIGlmIChuLT5zeW0KKwkJJiYgbi0+c3ltLT5hdHRyLmFsbG9jYXRhYmxl CisJCSYmICFuLT5zeW0tPmF0dHIuc2F2ZQorCQkmJiAhbi0+c3ltLT5hdHRyLnJlc3VsdAor CQkmJiAhbi0+c3ltLT5ucy0+cHJvY19uYW1lLT5hdHRyLmlzX21haW5fcHJvZ3JhbSkKKwkg ICAgICB7CisJCWlmIChucyAhPSBuLT5zeW0tPm5zKQorCQkgIGdmY19lcnJvciAoIlNvcnJ5 LCBhbGxvY2F0aW9uIG9mIGFsbG9jYXRhYmxlICVxcyB3aXRoICIKKwkJCSAgICAgIiU8ISRv bXAgYWxsb2NhdG9ycyU+IG9yICU8ISRvbXAgYWxsb2NhdGUlPiBhdCAlTCAiCisJCQkgICAg ICJpcyBvbmx5IHN1cHBvcmVkIGluIHRoZSBzY29wZSB3aGVyZSBpdCBoYXMgYmVlbiAiCisJ CQkgICAgICJkZWNsYXJlZCwgdW5sZXNzIGl0IGhhcyB0aGUgU0FWRSBhdHRyaWJ1dGUiLAor CQkJICAgICBuLT5zeW0tPm5hbWUsICZjb2RlLT5sb2MpOworCQlnZmNfc3ltYm9sICpwcm9j ID0gbi0+c3ltLT5ucy0+cHJvY19uYW1lOworCQlnZmNfb21wX25hbWVsaXN0ICpwID0gZ2Zj X2dldF9vbXBfbmFtZWxpc3QgKCk7CisJCXAtPnN5bSA9IG4tPnN5bTsKKwkJcC0+ZXhwciA9 IGdmY19jb3B5X2V4cHIgKG4tPmV4cHIpOworCQlwLT53aGVyZSA9IGNvZGUtPmxvYzsKKwkJ cC0+bmV4dCA9IE5VTEw7CisJCWlmIChwcm9jLT5vbXBfYWxsb2NhdGVkID09IE5VTEwpCisJ CSAgcHJvYy0+b21wX2FsbG9jYXRlZF9lbmQgPSBwcm9jLT5vbXBfYWxsb2NhdGVkID0gcDsK KwkJZWxzZQorCQkgIHsKKwkJICAgIHByb2MtPm9tcF9hbGxvY2F0ZWRfZW5kLT5uZXh0ID0g cDsKKwkJICAgIHByb2MtPm9tcF9hbGxvY2F0ZWRfZW5kID0gcDsKKwkJICB9CisJICAgICAg fQorCX0KICAgICB9CiAgIGZvciAobiA9IG9tcF9jbGF1c2VzLT5saXN0c1tPTVBfTElTVF9U T107IG47IG4gPSBuLT5uZXh0KQogICAgIG4tPnN5bS0+bWFyayA9IDA7CkBAIC04ODExLDcg KzkxNjIsNyBAQCByZXNvbHZlX29tcF9jbGF1c2VzIChnZmNfY29kZSAqY29kZSwgZ2ZjX29t cF9jbGF1c2VzICpvbXBfY2xhdXNlcywKIAkiSU5fUkVEVUNUSU9OIiwgIlRBU0tfUkVEVUNU SU9OIiwKIAkiREVWSUNFX1JFU0lERU5UIiwgIkxJTksiLCAiVVNFX0RFVklDRSIsCiAJIkNB Q0hFIiwgIklTX0RFVklDRV9QVFIiLCAiVVNFX0RFVklDRV9QVFIiLCAiVVNFX0RFVklDRV9B RERSIiwKLQkiTk9OVEVNUE9SQUwiLCAiQUxMT0NBVEUiLCAiSEFTX0RFVklDRV9BRERSIiwg IkVOVEVSIiwgIkFMTE9DQVRPUiIsCisJIk5PTlRFTVBPUkFMIiwgIkFMTE9DQVRFIiwgIkhB U19ERVZJQ0VfQUREUiIsICJFTlRFUiIsCiAJIlVTRVNfQUxMT0NBVE9SUyIgfTsKICAgU1RB VElDX0FTU0VSVCAoQVJSQVlfU0laRSAoY2xhdXNlX25hbWVzKSA9PSBPTVBfTElTVF9OVU0p OwogCkBAIC05MTEwLDE1ICs5NDYxLDEzIEBAIHJlc29sdmVfb21wX2NsYXVzZXMgKGdmY19j b2RlICpjb2RlLCBnZmNfb21wX2NsYXVzZXMgKm9tcF9jbGF1c2VzLAogCQkJICAgICBuLT5z eW0tPm5hbWUsICZuLT53aGVyZSk7CiAJCWVsc2UgaWYgKG4tPmV4cHIpCiAJCSAgewotCQkg ICAgZ2ZjX2V4cHIgKmV4cHIgPSBuLT5leHByOwotCQkgICAgaW50IGFsaWdubWVudCA9IDA7 Ci0JCSAgICBpZiAoIWdmY19yZXNvbHZlX2V4cHIgKGV4cHIpCi0JCQl8fCBleHByLT50cy50 eXBlICE9IEJUX0lOVEVHRVIKLQkJCXx8IGV4cHItPnJhbmsgIT0gMAotCQkJfHwgZ2ZjX2V4 dHJhY3RfaW50IChleHByLCAmYWxpZ25tZW50KQotCQkJfHwgYWxpZ25tZW50IDw9IDApCi0J CSAgICAgIGdmY19lcnJvciAoIiVxcyBpbiBBTElHTkVEIGNsYXVzZSBhdCAlTCByZXF1aXJl cyBhIHNjYWxhciAiCi0JCQkJICJwb3NpdGl2ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVu dCAiCisJCSAgICBpZiAoIWdmY19yZXNvbHZlX2V4cHIgKG4tPmV4cHIpCisJCQl8fCBuLT5l eHByLT50cy50eXBlICE9IEJUX0lOVEVHRVIKKwkJCXx8IG4tPmV4cHItPnJhbmsgIT0gMAor CQkJfHwgbi0+ZXhwci0+ZXhwcl90eXBlICE9IEVYUFJfQ09OU1RBTlQKKwkJCXx8IG1wel9z Z24gKG4tPmV4cHItPnZhbHVlLmludGVnZXIpIDw9IDApCisJCSAgICAgIGdmY19lcnJvciAo IiVxcyBpbiBBTElHTkVEIGNsYXVzZSBhdCAlTCByZXF1aXJlcyBhIHNjYWxhciIKKwkJCQkg IiBwb3NpdGl2ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCAiCiAJCQkJICJleHByZXNz aW9uIiwgbi0+c3ltLT5uYW1lLCAmbi0+d2hlcmUpOwogCQkgIH0KIAkgICAgICB9CkBAIC05 MzE4LDYgKzk2NjcsMTIgQEAgcmVzb2x2ZV9vbXBfY2xhdXNlcyAoZ2ZjX2NvZGUgKmNvZGUs IGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMsCiAJICBkZWZhdWx0OgogCSAgICBmb3Ig KDsgbiAhPSBOVUxMOyBuID0gbi0+bmV4dCkKIAkgICAgICB7CisJCWlmIChuLT5zeW0gPT0g TlVMTCkKKwkJICB7CisJCSAgICBnY2NfYXNzZXJ0IChjb2RlLT5vcCA9PSBFWEVDX09NUF9B TExPQ0FUT1JTCisJCQkJfHwgY29kZS0+b3AgPT0gRVhFQ19PTVBfQUxMT0NBVEUpOworCQkg ICAgY29udGludWU7CisJCSAgfQogCQlib29sIGJhZCA9IGZhbHNlOwogCQlib29sIGlzX3Jl ZHVjdGlvbiA9IChsaXN0ID09IE9NUF9MSVNUX1JFRFVDVElPTgogCQkJCSAgICAgfHwgbGlz dCA9PSBPTVBfTElTVF9SRURVQ1RJT05fSU5TQ0FOCkBAIC0xMTcwNiw4ICsxMjA2MSw2IEBA IG9tcF9jb2RlX3RvX3N0YXRlbWVudCAoZ2ZjX2NvZGUgKmNvZGUpCiB7CiAgIHN3aXRjaCAo Y29kZS0+b3ApCiAgICAgewotICAgIGNhc2UgRVhFQ19PTVBfQUxMT0NBVEU6Ci0gICAgICBy ZXR1cm4gU1RfT01QX0FMTE9DQVRFOwogICAgIGNhc2UgRVhFQ19PTVBfUEFSQUxMRUw6CiAg ICAgICByZXR1cm4gU1RfT01QX1BBUkFMTEVMOwogICAgIGNhc2UgRVhFQ19PTVBfUEFSQUxM RUxfTUFTS0VEOgpAQCAtMTE3NTQsNiArMTIxMDcsMTAgQEAgb21wX2NvZGVfdG9fc3RhdGVt ZW50IChnZmNfY29kZSAqY29kZSkKICAgICAgIHJldHVybiBTVF9PTVBfRE87CiAgICAgY2Fz ZSBFWEVDX09NUF9MT09QOgogICAgICAgcmV0dXJuIFNUX09NUF9MT09QOworICAgIGNhc2Ug RVhFQ19PTVBfQUxMT0NBVEU6CisgICAgICByZXR1cm4gU1RfT01QX0FMTE9DQVRFX0VYRUM7 CisgICAgY2FzZSBFWEVDX09NUF9BTExPQ0FUT1JTOgorICAgICAgcmV0dXJuIFNUX09NUF9B TExPQ0FUT1JTOwogICAgIGNhc2UgRVhFQ19PTVBfQVNTVU1FOgogICAgICAgcmV0dXJuIFNU X09NUF9BU1NVTUU7CiAgICAgY2FzZSBFWEVDX09NUF9BVE9NSUM6CkBAIC0xMjIwNywxNjgg KzEyNTY0LDYgQEAgZ2ZjX3Jlc29sdmVfb2FjY19yb3V0aW5lcyAoZ2ZjX25hbWVzcGFjZSAq bnMpCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZAotcHJlcGFyZV9vbXBfYWxsb2NhdGVkX3Zh cl9saXN0X2Zvcl9jbGVhbnVwIChnZmNfb21wX25hbWVsaXN0ICpjbiwgbG9jdXMgbG9jKQot ewotICBnZmNfc3ltYm9sICpwcm9jID0gY24tPnN5bS0+bnMtPnByb2NfbmFtZTsKLSAgZ2Zj X29tcF9uYW1lbGlzdCAqcCwgKm47Ci0KLSAgZm9yIChuID0gY247IG47IG4gPSBuLT5uZXh0 KQotICAgIHsKLSAgICAgIGlmIChuLT5zeW0tPmF0dHIuYWxsb2NhdGFibGUgJiYgIW4tPnN5 bS0+YXR0ci5zYXZlCi0JICAmJiAhbi0+c3ltLT5hdHRyLnJlc3VsdCAmJiAhcHJvYy0+YXR0 ci5pc19tYWluX3Byb2dyYW0pCi0JewotCSAgcCA9IGdmY19nZXRfb21wX25hbWVsaXN0ICgp OwotCSAgcC0+c3ltID0gbi0+c3ltOwotCSAgcC0+ZXhwciA9IGdmY19jb3B5X2V4cHIgKG4t PmV4cHIpOwotCSAgcC0+d2hlcmUgPSBsb2M7Ci0JICBwLT5uZXh0ID0gTlVMTDsKLQkgIGlm IChwcm9jLT5vbXBfYWxsb2NhdGVkID09IE5VTEwpCi0JICAgIHByb2MtPm9tcF9hbGxvY2F0 ZWRfZW5kID0gcHJvYy0+b21wX2FsbG9jYXRlZCA9IHA7Ci0JICBlbHNlCi0JICAgIHsKLQkg ICAgICBwcm9jLT5vbXBfYWxsb2NhdGVkX2VuZC0+bmV4dCA9IHA7Ci0JICAgICAgcHJvYy0+ b21wX2FsbG9jYXRlZF9lbmQgPSBwOwotCSAgICB9Ci0KLQl9Ci0gICAgfQotfQotCi1zdGF0 aWMgdm9pZAotY2hlY2tfYWxsb2NhdGVfZGlyZWN0aXZlX3Jlc3RyaWN0aW9ucyAoZ2ZjX3N5 bWJvbCAqc3ltLCBnZmNfZXhwciAqb21wX2FsLAotCQkJCSAgICAgICBnZmNfbmFtZXNwYWNl ICpucywgbG9jdXMgbG9jKQotewotICBpZiAoc3ltLT5hdHRyLnNhdmUgIT0gU0FWRV9OT05F IHx8IHN5bS0+YXR0ci5pbl9jb21tb24gPT0gMQotICAgICAgfHwgc3ltLT5tb2R1bGUgIT0g TlVMTCkKLSAgICB7Ci0gICAgICBpbnQgdG1wOwotICAgICAgLyogIEFzc3VtcHRpb24gaGVy ZSBpcyB0aGF0IHdlIGNhbiBleHRyYWN0IGFuIGludGVnZXIgdGhlbgotCSAgaXQgaXMgYSBw cmVkZWZpbmVkIHRoaW5nLiAgKi8KLSAgICAgIGlmICghb21wX2FsIHx8IGdmY19leHRyYWN0 X2ludCAob21wX2FsLCAmdG1wKSkKLQkgIGdmY19lcnJvciAoIiVxcyBzaG91bGQgdXNlIHBy ZWRlZmluZWQgYWxsb2NhdG9yIGF0ICVMIiwgc3ltLT5uYW1lLAotCQkgICAgICZsb2MpOwot ICAgIH0KLSAgaWYgKG5zICE9IHN5bS0+bnMpCi0gICAgZ2ZjX2Vycm9yICgiJXFzIGlzIG5v dCBpbiB0aGUgc2FtZSBzY29wZSBhcyAlPGFsbG9jYXRlJT4iCi0JICAgICAgICIgZGlyZWN0 aXZlIGF0ICVMIiwgc3ltLT5uYW1lLCAmbG9jKTsKLX0KLQotI2RlZmluZSBFTVBUWV9WQVJf TElTVChub2RlKSBcCi0gIChub2RlLT5leHQub21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNU X0FMTE9DQVRPUl0gPT0gTlVMTCkKLQotc3RhdGljIHZvaWQKLWdmY19yZXNvbHZlX29tcF9h bGxvY2F0ZSAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19uYW1lc3BhY2UgKm5zKQotewotICBnZmNf YWxsb2MgKmFsOwotICBnZmNfb21wX25hbWVsaXN0ICpuID0gTlVMTDsKLSAgZ2ZjX29tcF9u YW1lbGlzdCAqY24gPSBOVUxMOwotICBnZmNfb21wX25hbWVsaXN0ICpwLCAqdGFpbCA9IE5V TEw7Ci0gIGdmY19jb2RlICpjdXI7Ci0gIGhhc2hfc2V0PGdmY19zeW1ib2wqPiB2YXJzOwot Ci0gIGdmY19vbXBfY2xhdXNlcyAqY2xhdXNlcyA9IGNvZGUtPmV4dC5vbXBfY2xhdXNlczsK LSAgZ2NjX2Fzc2VydCAoY2xhdXNlcyk7Ci0gIGNuID0gY2xhdXNlcy0+bGlzdHNbT01QX0xJ U1RfQUxMT0NBVE9SXTsKLSAgZ2ZjX2V4cHIgKm9tcF9hbCA9IGNuID8gY24tPmV4cHIgOiBO VUxMOwotCi0gIGlmIChvbXBfYWwgJiYgKG9tcF9hbC0+dHMudHlwZSAhPSBCVF9JTlRFR0VS Ci0gICAgICB8fCBvbXBfYWwtPnRzLmtpbmQgIT0gZ2ZjX2NfaW50cHRyX2tpbmQpKQotICAg IGdmY19lcnJvciAoIkV4cGVjdGVkIGludGVnZXIgZXhwcmVzc2lvbiBvZiB0aGUgIgotCSAg ICAgICAiJTxvbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kJT4ga2luZCBhdCAlTCIsICZvbXBf YWwtPndoZXJlKTsKLQotICAvKiBDaGVjayB0aGF0IHZhcmlhYmxlcyBpbiB0aGlzIGFsbG9j YXRlIGRpcmVjdGl2ZSBhcmUgbm90IGR1cGxpY2F0ZWQKLSAgICAgaW4gdGhpcyBkaXJlY3Rp dmUgb3Igb3RoZXJzIGNvbWluZyBkaXJlY3RseSBhZnRlciBpdC4gICovCi0gIGZvciAoY3Vy ID0gY29kZTsgY3VyICE9IE5VTEwgJiYgY3VyLT5vcCA9PSBFWEVDX09NUF9BTExPQ0FURTsK LSAgICAgIGN1ciA9IGN1ci0+bmV4dCkKLSAgICB7Ci0gICAgICBnZmNfb21wX2NsYXVzZXMg KmMgPSBjdXItPmV4dC5vbXBfY2xhdXNlczsKLSAgICAgIGdjY19hc3NlcnQgKGMpOwotICAg ICAgZm9yIChuID0gYy0+bGlzdHNbT01QX0xJU1RfQUxMT0NBVE9SXTsgbjsgbiA9IG4tPm5l eHQpCi0JewotCSAgaWYgKHZhcnMuY29udGFpbnMgKG4tPnN5bSkpCi0JICAgIGdmY19lcnJv ciAoIiVxcyBpcyB1c2VkIGluIG11bHRpcGxlICU8YWxsb2NhdGUlPiAiCi0JCSAgICAgICAi ZGlyZWN0aXZlcyBhdCAlTCIsIG4tPnN5bS0+bmFtZSwgJmN1ci0+bG9jKTsKLQkgIC8qIFRo aXMgaGVscHMgdXMgYXZvaWQgZHVwbGljYXRlIGVycm9yIG1lc3NhZ2VzLiAgKi8KLQkgIGlm IChjdXIgPT0gY29kZSkKLQkgICAgdmFycy5hZGQgKG4tPnN5bSk7Ci0JfQotICAgIH0KLQot ICBpZiAoY3VyID09IE5VTEwgfHwgY3VyLT5vcCAhPSBFWEVDX0FMTE9DQVRFKQotICAgIHsK LSAgICAgIC8qICBUaGVyZSBpcyBubyBhbGxvY2F0ZSBzdGF0ZW1lbnQgcmlnaHQgYWZ0ZXIg YWxsb2NhdGUgZGlyZWN0aXZlLgotCSAgV2UgZG9uJ3Qgc3VwcG9ydCB0aGlzIGNhc2UgYXQg dGhlIG1vbWVudC4gICovCi0gICAgICBmb3IgKG4gPSBjbjsgbiAhPSBOVUxMOyBuID0gbi0+ bmV4dCkKLQl7Ci0JICBnZmNfc3ltYm9sICpzeW0gPSBuLT5zeW07Ci0JICBpZiAoc3ltLT5h dHRyLmFsbG9jYXRhYmxlID09IDEpCi0JICAgIGdmY19lcnJvciAoIiVxcyB3aXRoIEFMTE9D QVRBQkxFIGF0dHJpYnV0ZSBpcyBub3QgYWxsb3dlZCBpbiAiCi0JCSAgICAgICAiJTxhbGxv Y2F0ZSU+IGRpcmVjdGl2ZSBhdCAlTCBhcyB0aGlzIGRpcmVjdGl2ZSBpcyBub3QiCi0JCSAg ICAgICAiIGFzc29jaWF0ZWQgd2l0aCBhbiAlPGFsbG9jYXRlJT4gc3RhdGVtZW50LiIsCi0J CSAgICAgICBzeW0tPm5hbWUsICZjb2RlLT5sb2MpOwotCX0KLSAgICAgIHNvcnJ5X2F0IChj b2RlLT5sb2MubGItPmxvY2F0aW9uLCAiJTxhbGxvY2F0ZSU+IGRpcmVjdGl2ZSB0aGF0IGlz ICIKLQkJIm5vdCBhc3NvY2lhdGVkIHdpdGggYW4gJTxhbGxvY2F0ZSU+IHN0YXRlbWVudCBp cyBub3QgIgotCQkic3VwcG9ydGVkLiIpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAv KiBJZiB0aGVyZSBpcyBhbm90aGVyIGFsbG9jYXRlIGRpcmVjdGl2ZSByaWdodCBhZnRlciB0 aGlzIG9uZSwgY2hlY2sKLSAgICAgdGhhdCBub25lIG9mIHRoZW0gaXMgZW1wdHkuICBEb2lu ZyBpdCB0aGlzIHdheSwgd2UgY2FuIGNoZWNrIHRoaXMKLSAgICAgdGhpbmcgZXZlbiB3aGVu IG11bHRpcGxlIGRpcmVjdGl2ZXMgYXJlIHRvZ2V0aGVyIGFuZCBnZW5lcmF0ZQotICAgICBl cnJvciBhdCByaWdodCBsb2NhdGlvbi4gICovCi0gIGlmIChjb2RlLT5uZXh0ICYmIGNvZGUt Pm5leHQtPm9wID09IEVYRUNfT01QX0FMTE9DQVRFCi0gICAgICAmJiAoRU1QVFlfVkFSX0xJ U1QgKGNvZGUpIHx8IEVNUFRZX1ZBUl9MSVNUIChjb2RlLT5uZXh0KSkpCi0gICAgZ2ZjX2Vy cm9yICgiRW1wdHkgdmFyaWFibGUgbGlzdCBpcyBub3QgYWxsb3dlZCBhdCAlTCB3aGVuIG11 bHRpcGxlICIKLQkgICAgICAgIiU8YWxsb2NhdGUlPiBkaXJlY3RpdmVzIGFyZSBhc3NvY2lh dGVkIHdpdGggYW4gIgotCSAgICAgICAiJTxhbGxvY2F0ZSU+IHN0YXRlbWVudC4iLAotCSAg ICAgICBFTVBUWV9WQVJfTElTVCAoY29kZSkgPyAmY29kZS0+bG9jIDogJmNvZGUtPm5leHQt PmxvYyk7Ci0KLSAgaWYgKEVNUFRZX1ZBUl9MSVNUIChjb2RlKSkKLSAgICB7Ci0gICAgICAv KiBFbXB0eSBuYW1lbGlzdCBtZWFucyBhbGxvY2F0ZSBkaXJlY3RpdmUgYXBwbGllcyB0byBh bGwKLQkgdmFyaWFibGVzIGluIGFsbG9jYXRlIHN0YXRlbWVudC4gICdjdXInIHBvaW50cyB0 byBhc3NvY2lhdGVkCi0JIGFsbG9jYXRlIHN0YXRlbWVudC4gICovCi0gICAgICBmb3IgKGFs ID0gY3VyLT5leHQuYWxsb2MubGlzdDsgYWwgIT0gTlVMTDsgYWwgPSBhbC0+bmV4dCkKLQlp ZiAoYWwtPmV4cHIgJiYgYWwtPmV4cHItPnN5bXRyZWUgJiYgYWwtPmV4cHItPnN5bXRyZWUt Pm4uc3ltKQotCSAgewotCSAgICBjaGVja19hbGxvY2F0ZV9kaXJlY3RpdmVfcmVzdHJpY3Rp b25zIChhbC0+ZXhwci0+c3ltdHJlZS0+bi5zeW0sCi0JCQkJCQkgICBvbXBfYWwsIG5zLCBj b2RlLT5sb2MpOwotCSAgICBwID0gZ2ZjX2dldF9vbXBfbmFtZWxpc3QgKCk7Ci0JICAgIHAt PnN5bSA9IGFsLT5leHByLT5zeW10cmVlLT5uLnN5bTsKLQkgICAgcC0+ZXhwciA9IG9tcF9h bDsKLQkgICAgcC0+d2hlcmUgPSBjb2RlLT5sb2M7Ci0JICAgIGlmIChjbiA9PSBOVUxMKQot CSAgICAgIGNuID0gdGFpbCA9IHA7Ci0JICAgIGVsc2UKLQkgICAgICB7Ci0JCXRhaWwtPm5l eHQgPSBwOwotCQl0YWlsID0gdGFpbC0+bmV4dDsKLQkgICAgICB9Ci0JICB9Ci0gICAgICBj bGF1c2VzLT5saXN0c1tPTVBfTElTVF9BTExPQ0FUT1JdPSBjbjsKLSAgICB9Ci0gIGVsc2UK LSAgICB7Ci0gICAgICBmb3IgKG4gPSBjbjsgbiAhPSBOVUxMOyBuID0gbi0+bmV4dCkKLQl7 Ci0JICBmb3IgKGFsID0gY3VyLT5leHQuYWxsb2MubGlzdDsgYWwgIT0gTlVMTDsgYWwgPSBh bC0+bmV4dCkKLQkgICAgaWYgKGFsLT5leHByICYmIGFsLT5leHByLT5zeW10cmVlICYmIGFs LT5leHByLT5zeW10cmVlLT5uLnN5bQotCQkmJiBhbC0+ZXhwci0+c3ltdHJlZS0+bi5zeW0g PT0gbi0+c3ltKQotCSAgICAgIGJyZWFrOwotCSAgaWYgKGFsID09IE5VTEwpCi0JICAgIGdm Y19lcnJvciAoIiVxcyBpbiAlPGFsbG9jYXRlJT4gZGlyZWN0aXZlIGF0ICVMIGlzIG5vdCBw cmVzZW50ICIKLQkJICAgICAgICJpbiBhc3NvY2lhdGVkICU8YWxsb2NhdGUlPiBzdGF0ZW1l bnQuIiwKLQkJICAgICAgIG4tPnN5bS0+bmFtZSwgJmNvZGUtPmxvYyk7Ci0JICBjaGVja19h bGxvY2F0ZV9kaXJlY3RpdmVfcmVzdHJpY3Rpb25zIChuLT5zeW0sIG9tcF9hbCwgbnMsCi0J CQkJCQkgY29kZS0+bG9jKTsKLQl9Ci0gICAgfQotICBwcmVwYXJlX29tcF9hbGxvY2F0ZWRf dmFyX2xpc3RfZm9yX2NsZWFudXAgKGNuLCBjb2RlLT5sb2MpOwotfQotCi0KIHZvaWQKIGdm Y19yZXNvbHZlX29hY2NfZGlyZWN0aXZlIChnZmNfY29kZSAqY29kZSwgZ2ZjX25hbWVzcGFj ZSAqbnMgQVRUUklCVVRFX1VOVVNFRCkKIHsKQEAgLTEyNTE4LDYgKzEyNzEzLDggQEAgZ2Zj X3Jlc29sdmVfb21wX2RpcmVjdGl2ZSAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19uYW1lc3BhY2Ug Km5zKQogICAgIGNhc2UgRVhFQ19PTVBfVEFSR0VUOgogICAgICAgcmVzb2x2ZV9vbXBfdGFy Z2V0IChjb2RlKTsKICAgICAgIGdjY19mYWxsdGhyb3VnaCAoKTsKKyAgICBjYXNlIEVYRUNf T01QX0FMTE9DQVRFOgorICAgIGNhc2UgRVhFQ19PTVBfQUxMT0NBVE9SUzoKICAgICBjYXNl IEVYRUNfT01QX0FTU1VNRToKICAgICBjYXNlIEVYRUNfT01QX0NBTkNFTDoKICAgICBjYXNl IEVYRUNfT01QX0VSUk9SOgpAQCAtMTI1NzgsOSArMTI3NzUsNiBAQCBnZmNfcmVzb2x2ZV9v bXBfZGlyZWN0aXZlIChnZmNfY29kZSAqY29kZSwgZ2ZjX25hbWVzcGFjZSAqbnMpCiAgICAg Y2FzZSBFWEVDX09NUF9NRVRBRElSRUNUSVZFOgogICAgICAgcmVzb2x2ZV9vbXBfbWV0YWRp cmVjdGl2ZSAoY29kZSwgbnMpOwogICAgICAgYnJlYWs7Ci0gICAgY2FzZSBFWEVDX09NUF9B TExPQ0FURToKLSAgICAgIGdmY19yZXNvbHZlX29tcF9hbGxvY2F0ZSAoY29kZSwgbnMpOwot ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAt LWdpdCBhL2djYy9mb3J0cmFuL3BhcnNlLmNjIGIvZ2NjL2ZvcnRyYW4vcGFyc2UuY2MKaW5k ZXggYzRkM2UwZjkwOTcuLmZlZmYwNWFhODY4IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9w YXJzZS5jYworKysgYi9nY2MvZm9ydHJhbi9wYXJzZS5jYwpAQCAtNDIsNiArNDIsNyBAQCBz dGF0aWMgam1wX2J1ZiBlb2ZfYnVmOwogCiBnZmNfc3RhdGVfZGF0YSAqZ2ZjX3N0YXRlX3N0 YWNrOwogc3RhdGljIGJvb2wgbGFzdF93YXNfdXNlX3N0bXQgPSBmYWxzZTsKK2Jvb2wgaW5f ZXhlY19wYXJ0OwogCiBib29sIGdmY19tYXRjaGluZ19vbXBfY29udGV4dF9zZWxlY3RvcjsK IGJvb2wgZ2ZjX2luX21ldGFkaXJlY3RpdmVfYm9keTsKQEAgLTc1Miw2ICs3NTMsODIgQEAg ZGVjb2RlX29hY2NfZGlyZWN0aXZlICh2b2lkKQogICByZXR1cm4gU1RfR0VUX0ZDTl9DSEFS QUNURVJJU1RJQ1M7CiB9CiAKKy8qIENoZWNrcyBmb3IgdGhlIFNUX09NUF9BTExPQ0FURS4g Rmlyc3QsIGNoZWNrIHdoZXRoZXIgYWxsIGxpc3QgaXRlbXMKKyAgIGFyZSBhbGxvY2F0YWJs ZXMvcG9pbnRlcnMgLSBhbmQgaWYgc28sIGFzc3VtZSBpdCBpcyBhc3NvY2lhdGVkIHdpdGgg YSBGb3J0cmFuCisgICBBTExPQ0FURSBzdG10LiAgSWYgbm90LCBkbyBzb21lIGluaXRpYWwg cGFyc2luZy1yZWxhdGVkIGNoZWNrcyBhbmQgYXBwZW5kCisgICBuYW1lbGlzdCB0byBuYW1l c3BhY2UuCisgICBUaGUgY2hlY2sgZm9sbG93cyBPcGVuTVAgNS4xIGJ5IHJlcXVpcmluZyBh biBleGVjdXRhYmxlIHN0bXQgb3IgT3Blbk1QCisgICBjb25zdHJ1Y3QgYmVmb3JlIGEgZGly ZWN0aXZlIGFzc29jaWF0ZWQgd2l0aCBhbiBhbGxvY2F0ZSBzdGF0ZW1lbnQKKyAgICgtPiBT VF9PTVBfQUxMT0NBVEVfRVhFQyk7IGluc3RlYWQgb2Ygc2hvd2luZyBhbiBlcnJvciwgY29u dmVyc2lvbiBvZgorICAgU1RfT01QX0FMTE9DQVRFIC0+IFNUX09NUF9BTExPQ0FURV9FWEVD IHdvdWxkIGJlIGFuIGFsdGVybmF0aXZlLiAgKi8KKworYm9vbAorY2hlY2tfb21wX2FsbG9j YXRlX3N0bXQgKGxvY3VzICpsb2MpCit7CisgIGdmY19vbXBfbmFtZWxpc3QgKm47CisKKyAg aWYgKG5ld19zdC5leHQub21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXS0+ c3ltID09IE5VTEwpCisgICAgeworICAgICAgZ2ZjX2Vycm9yICgiJXFzIGRpcmVjdGl2ZSBh dCAlTCBtdXN0IGVpdGhlciBoYXZlIGEgdmFyaWFibGUgYXJndW1lbnQgb3IsICIKKwkJICJp ZiBhc3NvY2lhdGVkIHdpdGggYW4gQUxMT0NBVEUgc3RtdCwgbXVzdCBiZSBwcmVjZWRlZCBi eSBhbiAiCisJCSAiZXhlY3V0YWJsZSBzdGF0ZW1lbnQgb3IgT3Blbk1QIGNvbnN0cnVjdCIs CisJCSBnZmNfYXNjaWlfc3RhdGVtZW50IChTVF9PTVBfQUxMT0NBVEUpLCBsb2MpOworICAg ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgYm9vbCBoYXNfYWxsb2NhdGFibGUgPSBmYWxz ZTsKKyAgYm9vbCBoYXNfbm9uX2FsbG9jYXRhYmxlID0gZmFsc2U7CisgIGZvciAobiA9IG5l d19zdC5leHQub21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXTsgbjsgbiA9 IG4tPm5leHQpCisgICAgeworICAgICAgaWYgKG4tPmV4cHIpCisJeworCSAgZ2ZjX2Vycm9y ICgiU3RydWN0dXJlLWNvbXBvbmVudCBleHByZXNzaW9uIGF0ICVMIGluICVxcyBkaXJlY3Rp dmUgbm90IgorCQkgICAgICIgcGVybWl0dGVkIGluIGRlY2xhcmF0aXZlIGRpcmVjdGl2ZTsg YXMgZGlyZWN0aXZlICIKKwkJICAgICAiYXNzb2NpYXRlZCB3aXRoIGFuIEFMTE9DQVRFIHN0 bXQgaXQgbXVzdCBiZSBwcmVjZWRlZCBieSAiCisJCSAgICAgImFuIGV4ZWN1dGFibGUgc3Rh dGVtZW50IG9yIE9wZW5NUCBjb25zdHJ1Y3QiLAorCQkgICAgICAmbi0+ZXhwci0+d2hlcmUs IGdmY19hc2NpaV9zdGF0ZW1lbnQgKFNUX09NUF9BTExPQ0FURSkpOworCSAgcmV0dXJuIGZh bHNlOworCX0KKyAgICAgIGJvb2wgYWxsb2NfcHRyOworICAgICAgaWYgKG4tPnN5bS0+dHMu dHlwZSA9PSBCVF9DTEFTUyAmJiBuLT5zeW0tPmF0dHIuY2xhc3Nfb2spCisJYWxsb2NfcHRy ID0gKENMQVNTX0RBVEEgKG4tPnN5bSktPmF0dHIuYWxsb2NhdGFibGUKKwkJICAgICB8fCBD TEFTU19EQVRBIChuLT5zeW0pLT5hdHRyLmNsYXNzX3BvaW50ZXIpOworICAgICAgZWxzZQor CWFsbG9jX3B0ciA9IChuLT5zeW0tPmF0dHIuYWxsb2NhdGFibGUgfHwgbi0+c3ltLT5hdHRy LnBvaW50ZXIKKwkJICAgICB8fCBuLT5zeW0tPmF0dHIucHJvY19wb2ludGVyKTsKKyAgICAg IGlmIChhbGxvY19wdHIKKwkgIHx8IChuLT5zeW0tPm5zICYmIG4tPnN5bS0+bnMtPnByb2Nf bmFtZQorCSAgICAgICYmIChuLT5zeW0tPm5zLT5wcm9jX25hbWUtPmF0dHIuYWxsb2NhdGFi bGUKKwkJICB8fCBuLT5zeW0tPm5zLT5wcm9jX25hbWUtPmF0dHIucG9pbnRlcgorCQkgIHx8 IG4tPnN5bS0+bnMtPnByb2NfbmFtZS0+YXR0ci5wcm9jX3BvaW50ZXIpKSkKKwloYXNfYWxs b2NhdGFibGUgPSB0cnVlOworICAgICAgZWxzZQorCWhhc19ub25fYWxsb2NhdGFibGUgPSB0 cnVlOworICAgIH0KKyAgLyogQWxsIGFsbG9jYXRhYmxlcyAtIGFzc3VtZSBpdCBpcyBhbGxv Y2F0ZWQgd2l0aCBhbiBBTExPQ0FURSBzdG10LiAgKi8KKyAgaWYgKGhhc19hbGxvY2F0YWJs ZSAmJiAhaGFzX25vbl9hbGxvY2F0YWJsZSkKKyAgICB7CisgICAgICBnZmNfZXJyb3IgKCIl cXMgZGlyZWN0aXZlIGF0ICVMIGFzc29jaWF0ZWQgd2l0aCBhbiBBTExPQ0FURSBzdG10IG11 c3QgYmUgIgorCQkgInByZWNlZGVkIGJ5IGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50IG9yIE9w ZW5NUCBjb25zdHJ1Y3Q7ICIKKwkJICJub3RlIHRoZSB2YXJpYWJsZXMgaW4gdGhlIGxpc3Qg YWxsIGhhdmUgdGhlIGFsbG9jYXRhYmxlIG9yICIKKwkJICJwb2ludGVyIGF0dHJpYnV0ZSIs IGdmY19hc2NpaV9zdGF0ZW1lbnQgKFNUX09NUF9BTExPQ0FURSksCisJCSBsb2MpOworICAg ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgaWYgKCFnZmNfY3VycmVudF9ucy0+b21wX2Fs bG9jYXRlKQorICAgIGdmY19jdXJyZW50X25zLT5vbXBfYWxsb2NhdGUKKyAgICAgID0gbmV3 X3N0LmV4dC5vbXBfY2xhdXNlcy0+bGlzdHNbT01QX0xJU1RfQUxMT0NBVEVdOworICBlbHNl CisgICAgeworICAgICAgZm9yIChuID0gZ2ZjX2N1cnJlbnRfbnMtPm9tcF9hbGxvY2F0ZTsg bi0+bmV4dDsgbiA9IG4tPm5leHQpCisJOworICAgICAgbi0+bmV4dCA9IG5ld19zdC5leHQu b21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXTsKKyAgICB9CisgIG5ld19z dC5leHQub21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXSA9IE5VTEw7Cisg IGdmY19mcmVlX29tcF9jbGF1c2VzIChuZXdfc3QuZXh0Lm9tcF9jbGF1c2VzKTsKKyAgcmV0 dXJuIHRydWU7Cit9CisKKwogLyogTGlrZSBtYXRjaCwgYnV0IHNldCBhIGZsYWcgc2ltZF9t YXRjaGVkIGlmIGtleXdvcmQgbWF0Y2hlZAogICAgYW5kIGlmIHNwZWNfb25seSwgZ290byBk b19zcGVjX29ubHkgd2l0aG91dCBhY3R1YWxseSBtYXRjaGluZy4gICovCiAjZGVmaW5lIG1h dGNocyhrZXl3b3JkLCBzdWJyLCBzdCkJCQkJXApAQCAtODY1LDYgKzk0MiwxMSBAQCBkZWNv ZGVfb21wX2RpcmVjdGl2ZSAodm9pZCkKICAgc3dpdGNoIChjKQogICAgIHsKICAgICBjYXNl ICdhJzoKKyAgICAgIGlmIChpbl9leGVjX3BhcnQpCisJbWF0Y2hvICgiYWxsb2NhdGUiLCBn ZmNfbWF0Y2hfb21wX2FsbG9jYXRlLCBTVF9PTVBfQUxMT0NBVEVfRVhFQyk7CisgICAgICBl bHNlCisJbWF0Y2hvICgiYWxsb2NhdGUiLCBnZmNfbWF0Y2hfb21wX2FsbG9jYXRlLCBTVF9P TVBfQUxMT0NBVEUpOworICAgICAgbWF0Y2hvICgiYWxsb2NhdG9ycyIsIGdmY19tYXRjaF9v bXBfYWxsb2NhdG9ycywgU1RfT01QX0FMTE9DQVRPUlMpOwogICAgICAgLyogRm9yIC1mb3Bl bm1wLXNpbWQsIGlnbm9yZSAnYXNzdW1lcyc7IG5vdGUgbm8gY2xhdXNlIHN0YXJ0cyB3aXRo ICdzJy4gKi8KICAgICAgIGlmICghZmxhZ19vcGVubXAgJiYgZ2ZjX21hdGNoICgiYXNzdW1l cyIpID09IE1BVENIX1lFUykKIAlicmVhazsKQEAgLTg4Nyw2ICs5NjksNyBAQCBkZWNvZGVf b21wX2RpcmVjdGl2ZSAodm9pZCkKICAgICAgIGJyZWFrOwogICAgIGNhc2UgJ2UnOgogICAg ICAgbWF0Y2hzICgiZW5kIGFzc3VtZSIsIGdmY19tYXRjaF9vbXBfZW9zX2Vycm9yLCBTVF9P TVBfRU5EX0FTU1VNRSk7CisgICAgICBtYXRjaG8gKCJlbmQgYWxsb2NhdG9ycyIsIGdmY19t YXRjaF9vbXBfZW9zX2Vycm9yLCBTVF9PTVBfRU5EX0FMTE9DQVRPUlMpOwogICAgICAgbWF0 Y2hvICgiZW5kIG1ldGFkaXJlY3RpdmUiLCBnZmNfbWF0Y2hfb21wX2Vvc19lcnJvciwKIAkg ICAgICBTVF9PTVBfRU5EX01FVEFESVJFQ1RJVkUpOwogICAgICAgbWF0Y2hzICgiZW5kIHNp bWQiLCBnZmNfbWF0Y2hfb21wX2Vvc19lcnJvciwgU1RfT01QX0VORF9TSU1EKTsKQEAgLTky Nyw3ICsxMDEwLDYgQEAgZGVjb2RlX29tcF9kaXJlY3RpdmUgKHZvaWQpCiAgICAgewogICAg IGNhc2UgJ2EnOgogICAgICAgbWF0Y2hvICgiYXRvbWljIiwgZ2ZjX21hdGNoX29tcF9hdG9t aWMsIFNUX09NUF9BVE9NSUMpOwotICAgICAgbWF0Y2hvICgiYWxsb2NhdGUiLCBnZmNfbWF0 Y2hfb21wX2FsbG9jYXRlLCBTVF9PTVBfQUxMT0NBVEUpOwogICAgICAgYnJlYWs7CiAgICAg Y2FzZSAnYic6CiAgICAgICBtYXRjaG8gKCJiYXJyaWVyIiwgZ2ZjX21hdGNoX29tcF9iYXJy aWVyLCBTVF9PTVBfQkFSUklFUik7CkBAIC0xMjI4LDYgKzEzMTAsOSBAQCBkZWNvZGVfb21w X2RpcmVjdGl2ZSAodm9pZCkKIAkgIHJldHVybiBTVF9OT05FOwogCX0KICAgICB9CisgIGlm IChyZXQgPT0gU1RfT01QX0FMTE9DQVRFICYmICFjaGVja19vbXBfYWxsb2NhdGVfc3RtdCAo Jm9sZF9sb2N1cykpCisgICAgZ290byBlcnJvcl9oYW5kbGluZzsKKwogICBzd2l0Y2ggKHJl dCkKICAgICB7CiAgICAgLyogU2V0IG9tcF90YXJnZXRfc2VlbjsgZXhjbHVkZSBTVF9PTVBf REVDTEFSRV9UQVJHRVQuCkBAIC0xNzY5LDkgKzE4NTQsOSBAQCBuZXh0X3N0YXRlbWVudCAo dm9pZCkKICAgY2FzZSBTVF9PTVBfQ0FOQ0VMOiBjYXNlIFNUX09NUF9DQU5DRUxMQVRJT05f UE9JTlQ6IGNhc2UgU1RfT01QX0RFUE9CSjogXAogICBjYXNlIFNUX09NUF9UQVJHRVRfVVBE QVRFOiBjYXNlIFNUX09NUF9UQVJHRVRfRU5URVJfREFUQTogXAogICBjYXNlIFNUX09NUF9U QVJHRVRfRVhJVF9EQVRBOiBjYXNlIFNUX09NUF9PUkRFUkVEX0RFUEVORDogY2FzZSBTVF9P TVBfRVJST1I6IFwKLSAgY2FzZSBTVF9PTVBfQUxMT0NBVEU6IGNhc2UgU1RfRVJST1JfU1RP UDogY2FzZSBTVF9PTVBfU0NBTjogXAotICBjYXNlIFNUX1NZTkNfQUxMOiBjYXNlIFNUX1NZ TkNfSU1BR0VTOiBjYXNlIFNUX1NZTkNfTUVNT1JZOiBjYXNlIFNUX0xPQ0s6IFwKLSAgY2Fz ZSBTVF9VTkxPQ0s6IGNhc2UgU1RfRk9STV9URUFNOiBjYXNlIFNUX0NIQU5HRV9URUFNOiBc CisgIGNhc2UgU1RfRVJST1JfU1RPUDogY2FzZSBTVF9PTVBfU0NBTjogY2FzZSBTVF9TWU5D X0FMTDogXAorICBjYXNlIFNUX1NZTkNfSU1BR0VTOiBjYXNlIFNUX1NZTkNfTUVNT1JZOiBj YXNlIFNUX0xPQ0s6IGNhc2UgU1RfVU5MT0NLOiBcCisgIGNhc2UgU1RfRk9STV9URUFNOiBj YXNlIFNUX0NIQU5HRV9URUFNOiBcCiAgIGNhc2UgU1RfRU5EX1RFQU06IGNhc2UgU1RfU1lO Q19URUFNOiBcCiAgIGNhc2UgU1RfRVZFTlRfUE9TVDogY2FzZSBTVF9FVkVOVF9XQUlUOiBj YXNlIFNUX0ZBSUxfSU1BR0U6IFwKICAgY2FzZSBTVF9PQUNDX1VQREFURTogY2FzZSBTVF9P QUNDX1dBSVQ6IGNhc2UgU1RfT0FDQ19DQUNIRTogXApAQCAtMTgxMSw3ICsxODk2LDcgQEAg bmV4dF9zdGF0ZW1lbnQgKHZvaWQpCiAgIGNhc2UgU1RfT01QX1RBUkdFVF9TSU1EOiBjYXNl IFNUX09NUF9UQVNLTE9PUDogY2FzZSBTVF9PTVBfVEFTS0xPT1BfU0lNRDogXAogICBjYXNl IFNUX09NUF9MT09QOiBjYXNlIFNUX09NUF9QQVJBTExFTF9MT09QOiBjYXNlIFNUX09NUF9U RUFNU19MT09QOiBcCiAgIGNhc2UgU1RfT01QX1RBUkdFVF9QQVJBTExFTF9MT09QOiBjYXNl IFNUX09NUF9UQVJHRVRfVEVBTVNfTE9PUDogXAotICBjYXNlIFNUX09NUF9BU1NVTUU6IFwK KyAgY2FzZSBTVF9PTVBfQUxMT0NBVEVfRVhFQzogY2FzZSBTVF9PTVBfQUxMT0NBVE9SUzog Y2FzZSBTVF9PTVBfQVNTVU1FOiBcCiAgIGNhc2UgU1RfT01QX1VOUk9MTDogXAogICBjYXNl IFNUX09NUF9USUxFOiBcCiAgIGNhc2UgU1RfQ1JJVElDQUw6IFwKQEAgLTE4MzIsOCArMTkx Nyw4IEBAIG5leHRfc3RhdGVtZW50ICh2b2lkKQogI2RlZmluZSBjYXNlX29tcF9kZWNsIGNh c2UgU1RfT01QX1RIUkVBRFBSSVZBVEU6IGNhc2UgU1RfT01QX0RFQ0xBUkVfU0lNRDogXAog ICBjYXNlIFNUX09NUF9ERUNMQVJFX1RBUkdFVDogY2FzZSBTVF9PTVBfREVDTEFSRV9NQVBQ RVI6IFwKICAgY2FzZSBTVF9PTVBfREVDTEFSRV9SRURVQ1RJT046IGNhc2UgU1RfT01QX0RF Q0xBUkVfVkFSSUFOVDogXAotICBjYXNlIFNUX09NUF9BU1NVTUVTOiBjYXNlIFNUX09NUF9S RVFVSVJFUzogY2FzZSBTVF9PQUNDX1JPVVRJTkU6IFwKLSAgY2FzZSBTVF9PQUNDX0RFQ0xB UkUKKyAgY2FzZSBTVF9PTVBfQUxMT0NBVEU6IGNhc2UgU1RfT01QX0FTU1VNRVM6IGNhc2Ug U1RfT01QX1JFUVVJUkVTOiBcCisgIGNhc2UgU1RfT0FDQ19ST1VUSU5FOiBjYXNlIFNUX09B Q0NfREVDTEFSRQogCiAvKiBPcGVuTVAgc3RhdGVtZW50cyB0aGF0IGFyZSBmb2xsb3dlZCBi eSBhIHN0cnVjdHVyZWQgYmxvY2suICAqLwogCkBAIC0yNDk0LDE1ICsyNTc5LDE5IEBAIGdm Y19hc2NpaV9zdGF0ZW1lbnQgKGdmY19zdGF0ZW1lbnQgc3QsIGJvb2wgc3RyaXBfc2VudGlu ZWwpCiAgICAgY2FzZSBTVF9PQUNDX0VORF9BVE9NSUM6CiAgICAgICBwID0gIiEkQUNDIEVO RCBBVE9NSUMiOwogICAgICAgYnJlYWs7CisgICAgY2FzZSBTVF9PTVBfQUxMT0NBVEU6Cisg ICAgY2FzZSBTVF9PTVBfQUxMT0NBVEVfRVhFQzoKKyAgICAgIHAgPSAiISRPTVAgQUxMT0NB VEUiOworICAgICAgYnJlYWs7CisgICAgY2FzZSBTVF9PTVBfQUxMT0NBVE9SUzoKKyAgICAg IHAgPSAiISRPTVAgQUxMT0NBVE9SUyI7CisgICAgICBicmVhazsKICAgICBjYXNlIFNUX09N UF9BU1NVTUU6CiAgICAgICBwID0gIiEkT01QIEFTU1VNRSI7CiAgICAgICBicmVhazsKICAg ICBjYXNlIFNUX09NUF9BU1NVTUVTOgogICAgICAgcCA9ICIhJE9NUCBBU1NVTUVTIjsKICAg ICAgIGJyZWFrOwotICAgIGNhc2UgU1RfT01QX0FMTE9DQVRFOgotICAgICAgcCA9ICIhJE9N UCBBTExPQ0FURSI7Ci0gICAgICBicmVhazsKICAgICBjYXNlIFNUX09NUF9BVE9NSUM6CiAg ICAgICBwID0gIiEkT01QIEFUT01JQyI7CiAgICAgICBicmVhazsKQEAgLTI1NTcsNiArMjY0 Niw5IEBAIGdmY19hc2NpaV9zdGF0ZW1lbnQgKGdmY19zdGF0ZW1lbnQgc3QsIGJvb2wgc3Ry aXBfc2VudGluZWwpCiAgICAgY2FzZSBTVF9PTVBfRE9fU0lNRDoKICAgICAgIHAgPSAiISRP TVAgRE8gU0lNRCI7CiAgICAgICBicmVhazsKKyAgICBjYXNlIFNUX09NUF9FTkRfQUxMT0NB VE9SUzoKKyAgICAgIHAgPSAiISRPTVAgRU5EIEFMTE9DQVRPUlMiOworICAgICAgYnJlYWs7 CiAgICAgY2FzZSBTVF9PTVBfRU5EX0FTU1VNRToKICAgICAgIHAgPSAiISRPTVAgRU5EIEFT U1VNRSI7CiAgICAgICBicmVhazsKQEAgLTMxMzgsNiArMzIzMCw3IEBAIHZlcmlmeV9zdF9v cmRlciAoc3Rfc3RhdGUgKnAsIGdmY19zdGF0ZW1lbnQgc3QsIGJvb2wgc2lsZW50KQogICAg IHsKICAgICBjYXNlIFNUX05PTkU6CiAgICAgICBwLT5zdGF0ZSA9IE9SREVSX1NUQVJUOwor ICAgICAgaW5fZXhlY19wYXJ0ID0gZmFsc2U7CiAgICAgICBicmVhazsKIAogICAgIGNhc2Ug U1RfVVNFOgpAQCAtMzIxMSw2ICszMzA0LDcgQEAgdmVyaWZ5X3N0X29yZGVyIChzdF9zdGF0 ZSAqcCwgZ2ZjX3N0YXRlbWVudCBzdCwgYm9vbCBzaWxlbnQpCiAgICAgY2FzZV9leGVjX21h cmtlcnM6CiAgICAgICBpZiAocC0+c3RhdGUgPCBPUkRFUl9FWEVDKQogCXAtPnN0YXRlID0g T1JERVJfRVhFQzsKKyAgICAgIGluX2V4ZWNfcGFydCA9IHRydWU7CiAgICAgICBicmVhazsK IAogICAgIGRlZmF1bHQ6CkBAIC01Nzc3LDYgKzU4NzEsNzcgQEAgcGFyc2Vfb2FjY19sb29w IChnZmNfc3RhdGVtZW50IGFjY19zdCkKIH0KIAogCisvKiBQYXJzZSBhbiBPcGVuTVAgYWxs b2NhdGUgYmxvY2ssIGluY2x1ZGluZyBvcHRpb25hbCBBTExPQ0FUT1JTCisgICBlbmQgZGly ZWN0aXZlLiAgKi8KKworc3RhdGljIGdmY19zdGF0ZW1lbnQKK3BhcnNlX29wZW5tcF9hbGxv Y2F0ZV9ibG9jayAoZ2ZjX3N0YXRlbWVudCBvbXBfc3QpCit7CisgIGdmY19zdGF0ZW1lbnQg c3Q7CisgIGdmY19jb2RlICpjcCwgKm5wOworICBnZmNfc3RhdGVfZGF0YSBzOworICBib29s IGVtcHR5X2xpc3QgPSBmYWxzZTsKKyAgbG9jdXMgZW1wdHlfbGlzdF9sb2M7CisgIGdmY19v bXBfbmFtZWxpc3QgKm5fZmlyc3QgPSBuZXdfc3QuZXh0Lm9tcF9jbGF1c2VzLT5saXN0c1tP TVBfTElTVF9BTExPQ0FURV07CisKKyAgaWYgKG9tcF9zdCA9PSBTVF9PTVBfQUxMT0NBVEVf RVhFQworICAgICAgJiYgbmV3X3N0LmV4dC5vbXBfY2xhdXNlcy0+bGlzdHNbT01QX0xJU1Rf QUxMT0NBVEVdLT5zeW0gPT0gTlVMTCkKKyAgICB7CisgICAgICBlbXB0eV9saXN0ID0gdHJ1 ZTsKKyAgICAgIGVtcHR5X2xpc3RfbG9jID0gbmV3X3N0LmV4dC5vbXBfY2xhdXNlcy0+bGlz dHNbT01QX0xJU1RfQUxMT0NBVEVdLT53aGVyZTsKKyAgICB9CisKKyAgYWNjZXB0X3N0YXRl bWVudCAob21wX3N0KTsKKworICBjcCA9IGdmY19zdGF0ZV9zdGFjay0+dGFpbDsKKyAgcHVz aF9zdGF0ZSAoJnMsIENPTVBfT01QX1NUUlVDVFVSRURfQkxPQ0ssIE5VTEwpOworICBucCA9 IG5ld19sZXZlbCAoY3ApOworICBucC0+b3AgPSBjcC0+b3A7CisgIG5wLT5ibG9jayA9IE5V TEw7CisKKyAgc3QgPSBuZXh0X3N0YXRlbWVudCAoKTsKKyAgd2hpbGUgKG9tcF9zdCA9PSBT VF9PTVBfQUxMT0NBVEVfRVhFQyAmJiBzdCA9PSBTVF9PTVBfQUxMT0NBVEVfRVhFQykKKyAg ICB7CisgICAgICBpZiAoZW1wdHlfbGlzdCAmJiAhbmV3X3N0LmV4dC5vbXBfY2xhdXNlcy0+ bGlzdHNbT01QX0xJU1RfQUxMT0NBVEVdLT5zeW0pCisJeworCSAgbG9jdXMgKmxvYyA9ICZu ZXdfc3QuZXh0Lm9tcF9jbGF1c2VzLT5saXN0c1tPTVBfTElTVF9BTExPQ0FURV0tPndoZXJl OworCSAgZ2ZjX2Vycm9yX25vdyAoIiVzIHN0YXRlbWVudHMgYXQgJUwgYW5kICVMIGhhdmUg Ym90aCBubyBsaXN0IGl0ZW0gYnV0IgorCQkJICIgb25seSBvbmUgbWF5IiwgZ2ZjX2FzY2lp X3N0YXRlbWVudCAoc3QpLAorCQkJICZlbXB0eV9saXN0X2xvYywgbG9jKTsKKwkgIGVtcHR5 X2xpc3QgPSBmYWxzZTsKKwl9CisgICAgICBpZiAoIW5ld19zdC5leHQub21wX2NsYXVzZXMt Pmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXS0+c3ltKQorCXsKKwkgIGVtcHR5X2xpc3QgPSB0 cnVlOworCSAgZW1wdHlfbGlzdF9sb2MgPSBuZXdfc3QuZXh0Lm9tcF9jbGF1c2VzLT5saXN0 c1tPTVBfTElTVF9BTExPQ0FURV0tPndoZXJlOworCX0KKyAgICAgIGZvciAoIDsgbl9maXJz dC0+bmV4dDsgbl9maXJzdCA9IG5fZmlyc3QtPm5leHQpCisJOworICAgICAgbl9maXJzdC0+ bmV4dCA9IG5ld19zdC5leHQub21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRF XTsKKyAgICAgIG5ld19zdC5leHQub21wX2NsYXVzZXMtPmxpc3RzW09NUF9MSVNUX0FMTE9D QVRFXSA9IE5VTEw7CisgICAgICBnZmNfZnJlZV9vbXBfY2xhdXNlcyAobmV3X3N0LmV4dC5v bXBfY2xhdXNlcyk7CisKKyAgICAgIGFjY2VwdF9zdGF0ZW1lbnQgKFNUX05PTkUpOworICAg ICAgc3QgPSBuZXh0X3N0YXRlbWVudCAoKTsKKyAgICB9CisgIGlmIChzdCAhPSBTVF9BTExP Q0FURSAmJiBvbXBfc3QgPT0gU1RfT01QX0FMTE9DQVRFX0VYRUMpCisgICAgZ2ZjX2Vycm9y X25vdyAoIlVuZXhwZWN0ZWQgJXMgYXQgJUM7IGV4cGVjdGVkIEFMTE9DQVRFIG9yICVzIHN0 YXRlbWVudCIsCisJCSAgIGdmY19hc2NpaV9zdGF0ZW1lbnQgKHN0KSwgZ2ZjX2FzY2lpX3N0 YXRlbWVudCAob21wX3N0KSk7CisgIGVsc2UgaWYgKHN0ICE9IFNUX0FMTE9DQVRFKQorICAg IGdmY19lcnJvcl9ub3cgKCJVbmV4cGVjdGVkICVzIGF0ICVDOyBleHBlY3RlZCBBTExPQ0FU RSBzdGF0ZW1lbnQgYWZ0ZXIgJXMiLAorCQkgICBnZmNfYXNjaWlfc3RhdGVtZW50IChzdCks IGdmY19hc2NpaV9zdGF0ZW1lbnQgKG9tcF9zdCkpOworICBhY2NlcHRfc3RhdGVtZW50IChz dCk7CisgIHBvcF9zdGF0ZSAoKTsKKyAgc3QgPSBuZXh0X3N0YXRlbWVudCAoKTsKKyAgaWYg KG9tcF9zdCA9PSBTVF9PTVBfQUxMT0NBVE9SUyAmJiBzdCA9PSBTVF9PTVBfRU5EX0FMTE9D QVRPUlMpCisgICAgeworICAgICAgYWNjZXB0X3N0YXRlbWVudCAoc3QpOworICAgICAgc3Qg PSBuZXh0X3N0YXRlbWVudCAoKTsKKyAgICB9CisgIHJldHVybiBzdDsKK30KKworCiAvKiBQ YXJzZSB0aGUgc3RhdGVtZW50cyBvZiBhbiBPcGVuTVAgc3RydWN0dXJlZCBibG9jay4gICov CiAKIHN0YXRpYyBnZmNfc3RhdGVtZW50CkBAIC01ODk4LDYgKzYwNjMsMTEgQEAgcGFyc2Vf b21wX3N0cnVjdHVyZWRfYmxvY2sgKGdmY19zdGF0ZW1lbnQgb21wX3N0LCBib29sIHdvcmtz aGFyZV9zdG10c19vbmx5KQogCQkgIHBhcnNlX2ZvcmFsbF9ibG9jayAoKTsKIAkJICBicmVh azsKIAorCQljYXNlIFNUX09NUF9BTExPQ0FURV9FWEVDOgorCQljYXNlIFNUX09NUF9BTExP Q0FUT1JTOgorCQkgIHN0ID0gcGFyc2Vfb3Blbm1wX2FsbG9jYXRlX2Jsb2NrIChzdCk7CisJ CSAgY29udGludWU7CisKIAkJY2FzZSBTVF9PTVBfQVNTVU1FOgogCQljYXNlIFNUX09NUF9Q QVJBTExFTDoKIAkJY2FzZSBTVF9PTVBfUEFSQUxMRUxfTUFTS0VEOgpAQCAtNjExNCw2ICs2 Mjg0LDcgQEAgcGFyc2VfZXhlY3V0YWJsZSAoZ2ZjX3N0YXRlbWVudCBzdCkKIHsKICAgaW50 IGNsb3NlX2ZsYWc7CiAgIGJvb2wgb25lX3N0bXRfcCA9IGZhbHNlOworICBpbl9leGVjX3Bh cnQgPSB0cnVlOwogCiAgIGlmIChzdCA9PSBTVF9OT05FKQogICAgIHN0ID0gbmV4dF9zdGF0 ZW1lbnQgKCk7CkBAIC02MjMwLDYgKzY0MDEsMTEgQEAgcGFyc2VfZXhlY3V0YWJsZSAoZ2Zj X3N0YXRlbWVudCBzdCkKIAkgIHBhcnNlX29hY2Nfc3RydWN0dXJlZF9ibG9jayAoc3QpOwog CSAgYnJlYWs7CiAKKwljYXNlIFNUX09NUF9BTExPQ0FURV9FWEVDOgorCWNhc2UgU1RfT01Q X0FMTE9DQVRPUlM6CisJICBzdCA9IHBhcnNlX29wZW5tcF9hbGxvY2F0ZV9ibG9jayAoc3Qp OworCSAgY29udGludWU7CisKIAljYXNlX29tcF9zdHJ1Y3R1cmVkX2Jsb2NrOgogCSAgc3Qg PSBwYXJzZV9vbXBfc3RydWN0dXJlZF9ibG9jayAoc3QsCiAJCQkJCSAgIHN0ID09IFNUX09N UF9XT1JLU0hBUkUKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Jlc29sdmUuY2MgYi9nY2Mv Zm9ydHJhbi9yZXNvbHZlLmNjCmluZGV4IDlhMTljMTkzNTZhLi4xMTI5Y2IwY2ViMiAxMDA2 NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jYworKysgYi9nY2MvZm9ydHJhbi9yZXNv bHZlLmNjCkBAIC0xMTA0MCw2ICsxMTA0MCw4IEBAIGdmY19yZXNvbHZlX2Jsb2NrcyAoZ2Zj X2NvZGUgKmIsIGdmY19uYW1lc3BhY2UgKm5zKQogCWNhc2UgRVhFQ19PQUNDX0VOVEVSX0RB VEE6CiAJY2FzZSBFWEVDX09BQ0NfRVhJVF9EQVRBOgogCWNhc2UgRVhFQ19PQUNDX1JPVVRJ TkU6CisJY2FzZSBFWEVDX09NUF9BTExPQ0FURToKKwljYXNlIEVYRUNfT01QX0FMTE9DQVRP UlM6CiAJY2FzZSBFWEVDX09NUF9BU1NVTUU6CiAJY2FzZSBFWEVDX09NUF9DUklUSUNBTDoK IAljYXNlIEVYRUNfT01QX0RJU1RSSUJVVEU6CkBAIC0xMjcxMyw2ICsxMjcxNSw3IEBAIHN0 YXJ0OgogCSAgYnJlYWs7CiAKIAljYXNlIEVYRUNfT01QX0FMTE9DQVRFOgorCWNhc2UgRVhF Q19PTVBfQUxMT0NBVE9SUzoKIAljYXNlIEVYRUNfT01QX0FTU1VNRToKIAljYXNlIEVYRUNf T01QX0FUT01JQzoKIAljYXNlIEVYRUNfT01QX0JBUlJJRVI6CkBAIC0xODAzMSw2ICsxODAz NCw4IEBAIHJlc29sdmVfY29kZXMgKGdmY19uYW1lc3BhY2UgKm5zKQogICBnZmNfcmVzb2x2 ZV9vYWNjX2RlY2xhcmUgKG5zKTsKICAgZ2ZjX3Jlc29sdmVfb2FjY19yb3V0aW5lcyAobnMp OwogICBnZmNfcmVzb2x2ZV9vbXBfbG9jYWxfdmFycyAobnMpOworICBpZiAobnMtPm9tcF9h bGxvY2F0ZSkKKyAgICBnZmNfcmVzb2x2ZV9vbXBfYWxsb2NhdGUgKG5zLCBucy0+b21wX2Fs bG9jYXRlKTsKICAgZ2ZjX3Jlc29sdmVfY29kZSAobnMtPmNvZGUsIG5zKTsKIAogICBiaXRt YXBfb2JzdGFja19yZWxlYXNlICgmbGFiZWxzX29ic3RhY2spOwpkaWZmIC0tZ2l0IGEvZ2Nj L2ZvcnRyYW4vc3QuY2MgYi9nY2MvZm9ydHJhbi9zdC5jYwppbmRleCBlYmU1ODhiOWI5MS4u NTAxN2Y0ZmJmYWIgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3N0LmNjCisrKyBiL2djYy9m b3J0cmFuL3N0LmNjCkBAIC0yMTUsNiArMjE1LDcgQEAgZ2ZjX2ZyZWVfc3RhdGVtZW50IChn ZmNfY29kZSAqcCkKICAgICBjYXNlIEVYRUNfT0FDQ19FWElUX0RBVEE6CiAgICAgY2FzZSBF WEVDX09BQ0NfUk9VVElORToKICAgICBjYXNlIEVYRUNfT01QX0FMTE9DQVRFOgorICAgIGNh c2UgRVhFQ19PTVBfQUxMT0NBVE9SUzoKICAgICBjYXNlIEVYRUNfT01QX0FTU1VNRToKICAg ICBjYXNlIEVYRUNfT01QX0FUT01JQzoKICAgICBjYXNlIEVYRUNfT01QX0NBTkNFTDoKZGlm ZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWRlY2wuY2MgYi9nY2MvZm9ydHJhbi90cmFu cy1kZWNsLmNjCmluZGV4IGE0MDc1MjRjNmJiLi5hMTI2Mzk1Mjk1NSAxMDA2NDQKLS0tIGEv Z2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1kZWNs LmNjCkBAIC00NjU0LDcgKzQ2NTQsNyBAQCBnZmNfdHJhbnNfZGVmZXJyZWRfdmFycyAoZ2Zj X3N5bWJvbCAqIHByb2Nfc3ltLCBnZmNfd3JhcHBlZF9ibG9jayAqIGJsb2NrKQogICAgICAg Z2ZjX2NsZWFyX25ld19zdCAoKTsKICAgICAgIG5ld19zdC5vcCA9IEVYRUNfT01QX0FMTE9D QVRFOwogICAgICAgZ2ZjX29tcF9jbGF1c2VzICpjID0gZ2ZjX2dldF9vbXBfY2xhdXNlcyAo KTsKLSAgICAgIGMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRPUl0gPSBwcm9jX3N5bS0+b21w X2FsbG9jYXRlZDsKKyAgICAgIGMtPmxpc3RzW09NUF9MSVNUX0FMTE9DQVRFXSA9IHByb2Nf c3ltLT5vbXBfYWxsb2NhdGVkOwogICAgICAgbmV3X3N0LmV4dC5vbXBfY2xhdXNlcyA9IGM7 CiAgICAgICAvKiBUaGlzIGlzIGp1c3QgYSBoYWNreSB3YXkgdG8gY29udmV5IHRvIGhhbmRs ZXIgdGhhdCB3ZSBhcmUKIAkgZGVhbGluZyB3aXRoIGNsZWFudXAgaGVyZS4gIFNhdmVzIHVz IGZyb20gdXNpbmcgYW5vdGhlciBmaWVsZApkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJh bnMtb3Blbm1wLmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjCmluZGV4IDE5OWM3 MTkyMjYwLi5jMmUwMzZlNGExZSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtb3Bl bm1wLmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwpAQCAtNDcxOSwxNyAr NDcxOSwyNCBAQCBnZmNfdHJhbnNfb21wX2NsYXVzZXMgKHN0bXRibG9ja190ICpibG9jaywg Z2ZjX29tcF9jbGF1c2VzICpjbGF1c2VzLAogCQkgICAgdHJlZSBub2RlID0gYnVpbGRfb21w X2NsYXVzZSAoaW5wdXRfbG9jYXRpb24sCiAJCQkJCQkgIE9NUF9DTEFVU0VfQUxMT0NBVEUp OwogCQkgICAgT01QX0NMQVVTRV9ERUNMIChub2RlKSA9IHQ7Ci0JCSAgICBpZiAobi0+ZXhw cikKKwkJICAgIGlmIChuLT51Mi5hbGxvY2F0b3IpCiAJCSAgICAgIHsKIAkJCXRyZWUgYWxs b2NhdG9yXzsKLQkJCWlmIChuLT5leHByLT5leHByX3R5cGUgPT0gRVhQUl9WQVJJQUJMRSkK LQkJCSAgYWxsb2NhdG9yXwotCQkJICAgID0gZ2ZjX3RyYW5zX29tcF92YXJpYWJsZSAobi0+ ZXhwci0+c3ltdHJlZS0+bi5zeW0sCi0JCQkJCQkgICAgICBmYWxzZSk7CisJCQlpZiAobi0+ dTIuYWxsb2NhdG9yLT5leHByX3R5cGUgPT0gRVhQUl9WQVJJQUJMRSkKKwkJCSAgeworCQkJ ICAgIGFsbG9jYXRvcl8KKwkJCSAgICAgID0gZ2ZjX3RyYW5zX29tcF92YXJpYWJsZSAobi0+ dTIuYWxsb2NhdG9yLT5zeW10cmVlLT5uLnN5bSwKKwkJCQkJCQlmYWxzZSk7CisJCQkgICAg aWYgKFBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKGFsbG9jYXRvcl8pKSkKKwkJCSAgICAg IHsKKwkJCQlhbGxvY2F0b3JfID0gYnVpbGRfZm9sZF9pbmRpcmVjdF9yZWYgKGFsbG9jYXRv cl8pOworCQkJCWFsbG9jYXRvcl8gPSBnZmNfZXZhbHVhdGVfbm93IChhbGxvY2F0b3JfLCBi bG9jayk7CisJCQkgICAgICB9CisJCQkgIH0KIAkJCWVsc2UKIAkJCSAgewogCQkJICAgIGdm Y19pbml0X3NlICgmc2UsIE5VTEwpOwotCQkJICAgIGdmY19jb252X2V4cHIgKCZzZSwgbi0+ ZXhwcik7CisJCQkgICAgZ2ZjX2NvbnZfZXhwciAoJnNlLCBuLT51Mi5hbGxvY2F0b3IpOwog CQkJICAgIGFsbG9jYXRvcl8gPSBnZmNfZXZhbHVhdGVfbm93IChzZS5leHByLCBibG9jayk7 CiAJCQkgIH0KIAkJCU9NUF9DTEFVU0VfQUxMT0NBVEVfQUxMT0NBVE9SIChub2RlKSA9IGFs bG9jYXRvcl87CkBAIC00NzQ2LDI4ICs0NzUzLDYgQEAgZ2ZjX3RyYW5zX29tcF9jbGF1c2Vz IChzdG10YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xhdXNlcyAqY2xhdXNlcywKIAkJICB9 CiAJICAgICAgfQogCSAgYnJlYWs7Ci0JY2FzZSBPTVBfTElTVF9BTExPQ0FUT1I6Ci0JICBm b3IgKDsgbiAhPSBOVUxMOyBuID0gbi0+bmV4dCkKLQkgICAgaWYgKG4tPnN5bS0+YXR0ci5y ZWZlcmVuY2VkKQotCSAgICAgIHsKLQkJdHJlZSB0ID0gZ2ZjX3RyYW5zX29tcF92YXJpYWJs ZSAobi0+c3ltLCBmYWxzZSk7Ci0JCWlmICh0ICE9IGVycm9yX21hcmtfbm9kZSkKLQkJICB7 Ci0JCSAgICB0cmVlIG5vZGUgPSBidWlsZF9vbXBfY2xhdXNlIChpbnB1dF9sb2NhdGlvbiwK LQkJCQkJCSAgT01QX0NMQVVTRV9BTExPQ0FUT1IpOwotCQkgICAgT01QX0FMTE9DQVRFX0RF Q0wgKG5vZGUpID0gdDsKLQkJICAgIGlmIChuLT5leHByKQotCQkgICAgICB7Ci0JCQl0cmVl IGFsbG9jYXRvcl87Ci0JCQlnZmNfaW5pdF9zZSAoJnNlLCBOVUxMKTsKLQkJCWdmY19jb252 X2V4cHIgKCZzZSwgbi0+ZXhwcik7Ci0JCQlhbGxvY2F0b3JfID0gZ2ZjX2V2YWx1YXRlX25v dyAoc2UuZXhwciwgYmxvY2spOwotCQkJT01QX0FMTE9DQVRFX0FMTE9DQVRPUiAobm9kZSkg PSBhbGxvY2F0b3JfOwotCQkgICAgICB9Ci0JCSAgICBvbXBfY2xhdXNlcyA9IGdmY190cmFu c19hZGRfY2xhdXNlIChub2RlLCBvbXBfY2xhdXNlcyk7Ci0JCSAgfQotCSAgICAgIH0KLQkg IGJyZWFrOwogCWNhc2UgT01QX0xJU1RfTElORUFSOgogCSAgewogCSAgICBnZmNfZXhwciAq bGFzdF9zdGVwX2V4cHIgPSBOVUxMOwpAQCAtNzgxOCw3ICs3ODAzLDcgQEAgZ2ZjX3RyYW5z X29tcF9hdG9taWMgKGdmY19jb2RlICpjb2RlKQogfQogCiBzdGF0aWMgdHJlZQotZ2ZjX3Ry YW5zX29tcF9hbGxvY2F0ZSAoZ2ZjX2NvZGUgKmNvZGUpCitnZmNfdHJhbnNfb21wX2FsbG9j YXRvcnMgKGdmY19jb2RlICpjb2RlKQogewogICBzdG10YmxvY2tfdCBibG9jazsKICAgdHJl ZSBzdG10OwpAQCAtNzgzNiw3ICs3ODIxLDExIEBAIGdmY190cmFuc19vbXBfYWxsb2NhdGUg KGdmY19jb2RlICpjb2RlKQogICAgICAgJiYgY29kZS0+cmVzb2x2ZWRfc3ltICE9IE5VTEwp CiAgICAgT01QX0FMTE9DQVRFX0tJTkRfRlJFRSAoc3RtdCkgPSAxOwogICBlbHNlCi0gICAg T01QX0FMTE9DQVRFX0tJTkRfQUxMT0NBVEUgKHN0bXQpID0gMTsKKyAgICB7CisgICAgICBP TVBfQUxMT0NBVEVfS0lORF9BTExPQ0FURSAoc3RtdCkgPSAxOworICAgICAgZ2ZjX2FkZF9l eHByX3RvX2Jsb2NrICgmYmxvY2ssIHN0bXQpOworICAgICAgc3RtdCA9IGdmY190cmFuc19h bGxvY2F0ZSAoY29kZS0+YmxvY2stPm5leHQpOworICAgIH0KIAogICBnZmNfYWRkX2V4cHJf dG9fYmxvY2sgKCZibG9jaywgc3RtdCk7CiAgIGdmY19tZXJnZV9ibG9ja19zY29wZSAoJmJs b2NrKTsKQEAgLTk1OTAsNiArOTU3OSw4IEBAIGdmY19zcGxpdF9vbXBfY2xhdXNlcyAoZ2Zj X2NvZGUgKmNvZGUsCiAJCQkgICAgIHAgPSBnZmNfZ2V0X29tcF9uYW1lbGlzdCAoKTsKIAkJ CSAgICAgcC0+c3ltID0gYWxsb2NfbmwtPnN5bTsKIAkJCSAgICAgcC0+ZXhwciA9IGFsbG9j X25sLT5leHByOworCQkJICAgICBwLT51LmFsaWduID0gYWxsb2NfbmwtPnUuYWxpZ247CisJ CQkgICAgIHAtPnUyLmFsbG9jYXRvciA9IGFsbG9jX25sLT51Mi5hbGxvY2F0b3I7CiAJCQkg ICAgIHAtPndoZXJlID0gYWxsb2NfbmwtPndoZXJlOwogCQkJICAgICBpZiAoY2xhdXNlc2Fb aV0ubGlzdHNbT01QX0xJU1RfQUxMT0NBVEVdID09IE5VTEwpCiAJCQkgICAgICAgewpAQCAt MTA4NDksNyArMTA4NDAsOCBAQCBnZmNfdHJhbnNfb21wX2RpcmVjdGl2ZSAoZ2ZjX2NvZGUg KmNvZGUpCiAgIHN3aXRjaCAoY29kZS0+b3ApCiAgICAgewogICAgIGNhc2UgRVhFQ19PTVBf QUxMT0NBVEU6Ci0gICAgICByZXR1cm4gZ2ZjX3RyYW5zX29tcF9hbGxvY2F0ZSAoY29kZSk7 CisgICAgY2FzZSBFWEVDX09NUF9BTExPQ0FUT1JTOgorICAgICAgcmV0dXJuIGdmY190cmFu c19vbXBfYWxsb2NhdG9ycyAoY29kZSk7CiAgICAgY2FzZSBFWEVDX09NUF9BU1NVTUU6CiAg ICAgICByZXR1cm4gZ2ZjX3RyYW5zX29tcF9hc3N1bWUgKGNvZGUpOwogICAgIGNhc2UgRVhF Q19PTVBfQVRPTUlDOgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMuY2MgYi9nY2Mv Zm9ydHJhbi90cmFucy5jYwppbmRleCA5YmVjN2FlNmQ0Mi4uMTQ2ODg4ZWM4MDMgMTAwNjQ0 Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLmNj CkBAIC0yNDU0LDcgKzI0NTQsOCBAQCB0cmFuc19jb2RlIChnZmNfY29kZSAqIGNvZGUsIHRy ZWUgY29uZCkKIAkgIGJyZWFrOwogCiAJY2FzZSBFWEVDX09NUF9BTExPQ0FURToKLSAgY2Fz ZSBFWEVDX09NUF9BU1NVTUU6CisJY2FzZSBFWEVDX09NUF9BTExPQ0FUT1JTOgorCWNhc2Ug RVhFQ19PTVBfQVNTVU1FOgogCWNhc2UgRVhFQ19PTVBfQVRPTUlDOgogCWNhc2UgRVhFQ19P TVBfQkFSUklFUjoKIAljYXNlIEVYRUNfT01QX0NBTkNFTDoKZGlmZiAtLWdpdCBhL2djYy9v bXAtbG93LmNjIGIvZ2NjL29tcC1sb3cuY2MKaW5kZXggZmQwZWEzZGNjYzMuLjc3MTQyNTg5 ZjI3IDEwMDY0NAotLS0gYS9nY2Mvb21wLWxvdy5jYworKysgYi9nY2Mvb21wLWxvdy5jYwpA QCAtNjAsNiArNjAsNyBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkcz LiAgSWYgbm90IHNlZQogI2luY2x1ZGUgInN0cmluZ3Bvb2wuaCIKICNpbmNsdWRlICJhdHRy aWJzLmgiCiAjaW5jbHVkZSAib21wLW9mZmxvYWQuaCIKKyNpbmNsdWRlICJpbnRsLmgiCiAK IC8qIExvd2VyaW5nIG9mIE9NUCBwYXJhbGxlbCBhbmQgd29ya3NoYXJlIGNvbnN0cnVjdHMg cHJvY2VlZHMgaW4gdHdvCiAgICBwaGFzZXMuICBUaGUgZmlyc3QgcGhhc2Ugc2NhbnMgdGhl IGZ1bmN0aW9uIGxvb2tpbmcgZm9yIE9NUCBzdGF0ZW1lbnRzCkBAIC0xNDY4LDggKzE0Njks MTEgQEAgc2Nhbl9zaGFyaW5nX2NsYXVzZXMgKHRyZWUgY2xhdXNlcywgb21wX2NvbnRleHQg KmN0eCwKIAlpZiAoT01QX0NMQVVTRV9BTExPQ0FURV9BTExPQ0FUT1IgKGMpID09IE5VTExf VFJFRQogCSAgICAmJiAoKG9tcF9yZXF1aXJlc19tYXNrICYgT01QX1JFUVVJUkVTX0RZTkFN SUNfQUxMT0NBVE9SUykgPT0gMCkKIAkgICAgJiYgb21wX21heWJlX29mZmxvYWRlZF9jdHgg KGN0eCkpCi0JICBlcnJvcl9hdCAoT01QX0NMQVVTRV9MT0NBVElPTiAoYyksICIlPGFsbG9j YXRlJT4gY2xhdXNlIG11c3QiCi0JCSAgICAiIHNwZWNpZnkgYW4gYWxsb2NhdG9yIGhlcmUi KTsKKwkgIGVycm9yX2F0IChPTVBfQ0xBVVNFX0xPQ0FUSU9OIChjKSwKKwkJICAgIGdpbXBs ZV9jb2RlIChjdHgtPnN0bXQpID09IEdJTVBMRV9PTVBfQUxMT0NBVEUKKwkJICAgID8gR18o IiU8YWxsb2NhdGUlPiBkaXJlY3RpdmUgbXVzdCBzcGVjaWZ5IGFuIGFsbG9jYXRvciAiCisJ CQkgImhlcmUiKQorCQkgICAgOiBHXygiJTxhbGxvY2F0ZSU+IGNsYXVzZSBtdXN0IHNwZWNp ZnkgYW4gYWxsb2NhdG9yIGhlcmUiKSk7CiAJaWYgKGN0eC0+YWxsb2NhdGVfbWFwID09IE5V TEwpCiAJICBjdHgtPmFsbG9jYXRlX21hcCA9IG5ldyBoYXNoX21hcDx0cmVlLCB0cmVlPjsK IAl0cmVlIHZhbCA9IGludGVnZXJfemVyb19ub2RlOwpAQCAtMjE2OCw3ICsyMTcyLDYgQEAg c2Nhbl9zaGFyaW5nX2NsYXVzZXMgKHRyZWUgY2xhdXNlcywgb21wX2NvbnRleHQgKmN0eCwK IAljYXNlIE9NUF9DTEFVU0VfRklOQUxJWkU6CiAJY2FzZSBPTVBfQ0xBVVNFX1RBU0tfUkVE VUNUSU9OOgogCWNhc2UgT01QX0NMQVVTRV9BTExPQ0FURToKLQljYXNlIE9NUF9DTEFVU0Vf QUxMT0NBVE9SOgogCWNhc2UgT01QX0NMQVVTRV9fT01QQUNDXzoKIAkgIGJyZWFrOwogCkBA IC0yMzk4LDcgKzI0MDEsNiBAQCBzY2FuX3NoYXJpbmdfY2xhdXNlcyAodHJlZSBjbGF1c2Vz LCBvbXBfY29udGV4dCAqY3R4LAogCWNhc2UgT01QX0NMQVVTRV9GSU5BTElaRToKIAljYXNl IE9NUF9DTEFVU0VfRklMVEVSOgogCWNhc2UgT01QX0NMQVVTRV9fQ09ORFRFTVBfOgotCWNh c2UgT01QX0NMQVVTRV9BTExPQ0FUT1I6CiAJY2FzZSBPTVBfQ0xBVVNFX19PTVBBQ0NfOgog CSAgYnJlYWs7CiAKQEAgLTk0NTcsMzEgKzk0NTksMjAgQEAgbG93ZXJfb21wX3NpbmdsZV9z aW1wbGUgKGdvbXBfc2luZ2xlICpzaW5nbGVfc3RtdCwgZ2ltcGxlX3NlcSAqcHJlX3ApCiB9 CiAKIHN0YXRpYyB2b2lkCi1sb3dlcl9vbXBfYWxsb2NhdGUgKGdpbXBsZV9zdG10X2l0ZXJh dG9yICpnc2lfcCwgb21wX2NvbnRleHQgKmN0eCkKK2xvd2VyX29tcF9hbGxvY2F0ZSAoZ2lt cGxlX3N0bXRfaXRlcmF0b3IgKmdzaV9wKQogewogICBnb21wX2FsbG9jYXRlICpzdCA9IGFz X2EgPGdvbXBfYWxsb2NhdGUgKj4gKGdzaV9zdG10ICgqZ3NpX3ApKTsKICAgdHJlZSBjbGF1 c2VzID0gZ2ltcGxlX29tcF9hbGxvY2F0ZV9jbGF1c2VzIChzdCk7CiAgIGludCBraW5kID0g Z2ltcGxlX29tcF9hbGxvY2F0ZV9raW5kIChzdCk7CiAgIGdjY19hc3NlcnQgKGtpbmQgPT0g R0ZfT01QX0FMTE9DQVRFX0tJTkRfQUxMT0NBVEUKIAkgICAgICB8fCBraW5kID09IEdGX09N UF9BTExPQ0FURV9LSU5EX0ZSRUUpOwotCiAgIGZvciAodHJlZSBjID0gY2xhdXNlczsgYzsg YyA9IE9NUF9DTEFVU0VfQ0hBSU4gKGMpKQogICAgIHsKLSAgICAgIGlmIChPTVBfQ0xBVVNF X0NPREUgKGMpICE9IE9NUF9DTEFVU0VfQUxMT0NBVE9SKQorICAgICAgaWYgKE9NUF9DTEFV U0VfQ09ERSAoYykgIT0gT01QX0NMQVVTRV9BTExPQ0FURSkKIAljb250aW51ZTsKIAogICAg ICAgYm9vbCBhbGxvY2F0ZSA9IChraW5kID09IEdGX09NUF9BTExPQ0FURV9LSU5EX0FMTE9D QVRFKTsKLSAgICAgIC8qIFRoZSBhbGxvY2F0ZSBkaXJlY3RpdmVzIHRoYXQgYXBwZWFyIGlu IGEgdGFyZ2V0IHJlZ2lvbiBtdXN0IHNwZWNpZnkKLQkgYW4gYWxsb2NhdG9yIGNsYXVzZSB1 bmxlc3MgYSByZXF1aXJlcyBkaXJlY3RpdmUgd2l0aCB0aGUKLQkgZHluYW1pY19hbGxvY2F0 b3JzIGNsYXVzZSBpcyBwcmVzZW50IGluIHRoZSBzYW1lIGNvbXBpbGF0aW9uIHVuaXQuICAq LwotICAgICAgaWYgKE9NUF9BTExPQ0FURV9BTExPQ0FUT1IgKGMpID09IE5VTExfVFJFRQot CSAgJiYgKChvbXBfcmVxdWlyZXNfbWFzayAmIE9NUF9SRVFVSVJFU19EWU5BTUlDX0FMTE9D QVRPUlMpID09IDApCi0JICAmJiBvbXBfbWF5YmVfb2ZmbG9hZGVkX2N0eCAoY3R4KSkKLQll cnJvcl9hdCAoT01QX0NMQVVTRV9MT0NBVElPTiAoYyksICIlPGFsbG9jYXRlJT4gZGlyZWN0 aXZlIG11c3QiCi0JCSAgIiBzcGVjaWZ5IGFuIGFsbG9jYXRvciBoZXJlIik7Ci0KLSAgICAg IHRyZWUgdmFyID0gT01QX0FMTE9DQVRFX0RFQ0wgKGMpOwotCisgICAgICB0cmVlIHZhciA9 IE9NUF9DTEFVU0VfREVDTCAoYyk7CiAgICAgICBnaW1wbGVfc3RtdF9pdGVyYXRvciBnc2kg PSAqZ3NpX3A7CiAgICAgICBmb3IgKGdzaV9uZXh0ICgmZ3NpKTsgIWdzaV9lbmRfcCAoZ3Np KTsgZ3NpX25leHQgKCZnc2kpKQogCXsKQEAgLTk0OTMsMTAgKzk0ODQsMTEgQEAgbG93ZXJf b21wX2FsbG9jYXRlIChnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpX3AsIG9tcF9jb250ZXh0 ICpjdHgpCiAJICAgICAgfHwgKCFhbGxvY2F0ZSAmJiBnaW1wbGVfY2FsbF9mbmRlY2wgKHN0 bXQpCiAJCSAgIT0gYnVpbHRpbl9kZWNsX2V4cGxpY2l0IChCVUlMVF9JTl9GUkVFKSkpCiAJ ICAgIGNvbnRpbnVlOworCiAJICBjb25zdCBnY2FsbCAqZ3MgPSBhc19hIDxjb25zdCBnY2Fs bCAqPiAoc3RtdCk7Ci0JICB0cmVlIGFsbG9jYXRvciA9IE9NUF9BTExPQ0FURV9BTExPQ0FU T1IgKGMpCi0JCQkgICA/IE9NUF9BTExPQ0FURV9BTExPQ0FUT1IgKGMpCi0JCQkgICA6IGlu dGVnZXJfemVyb19ub2RlOworCSAgdHJlZSBhbGxvY2F0b3IgPSBPTVBfQ0xBVVNFX0FMTE9D QVRFX0FMTE9DQVRPUiAoYykKKwkJCSAgID8gT01QX0NMQVVTRV9BTExPQ0FURV9BTExPQ0FU T1IgKGMpCisJCQkgICA6IGJ1aWxkX3plcm9fY3N0IChwdHJfdHlwZV9ub2RlKTsKIAkgIGlm IChhbGxvY2F0ZSkKIAkgICAgewogCSAgICAgIHRyZWUgbGhzID0gZ2ltcGxlX2NhbGxfbGhz IChncyk7CkBAIC05NTE4LDEyICs5NTEwLDE3IEBAIGxvd2VyX29tcF9hbGxvY2F0ZSAoZ2lt cGxlX3N0bXRfaXRlcmF0b3IgKmdzaV9wLCBvbXBfY29udGV4dCAqY3R4KQogCSAgICAgIGlm IChsaHMgPT0gdmFyKQogCQl7CiAJCSAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBpYWxpZ24g PSAwOwotCQkgIHRyZWUgYWxpZ247CisJCSAgdHJlZSBhbGlnbiA9IE9NUF9DTEFVU0VfQUxM T0NBVEVfQUxJR04gKGMpOwogCQkgIGlmIChUWVBFX1AgKHZhcikpCiAJCSAgICBpYWxpZ24g PSBUWVBFX0FMSUdOX1VOSVQgKHZhcik7CiAJCSAgZWxzZQogCQkgICAgaWFsaWduID0gREVD TF9BTElHTl9VTklUICh2YXIpOwotCQkgIGFsaWduID0gYnVpbGRfaW50X2NzdCAoc2l6ZV90 eXBlX25vZGUsIGlhbGlnbik7CisJCSAgaWYgKGFsaWduID09IE5VTExfVFJFRSkKKwkJICAg IGFsaWduID0gYnVpbGRfaW50X2NzdCAoc2l6ZV90eXBlX25vZGUsIGlhbGlnbik7CisJCSAg ZWxzZQorCQkgICAgYWxpZ24gPSBidWlsZF9pbnRfY3N0IChzaXplX3R5cGVfbm9kZSwKKwkJ CQkJICAgTUFYICh0cmVlX3RvX3Vod2kgKGFsaWduKSwKKwkJCQkJCWlhbGlnbikpOwogCQkg IHRyZWUgcmVwbCA9IGJ1aWx0aW5fZGVjbF9leHBsaWNpdCAoQlVJTFRfSU5fR09NUF9BTExP Qyk7CiAJCSAgdHJlZSBzaXplID0gZ2ltcGxlX2NhbGxfYXJnIChncywgMCk7CiAJCSAgZ2lt cGxlICpnID0gZ2ltcGxlX2J1aWxkX2NhbGwgKHJlcGwsIDMsIGFsaWduLCBzaXplLApAQCAt MTYxMzUsNyArMTYxMzIsNyBAQCBsb3dlcl9vbXBfMSAoZ2ltcGxlX3N0bXRfaXRlcmF0b3Ig KmdzaV9wLCBvbXBfY29udGV4dCAqY3R4KQogICAgIGNhc2UgR0lNUExFX09NUF9BTExPQ0FU RToKICAgICAgIGN0eCA9IG1heWJlX2xvb2t1cF9jdHggKHN0bXQpOwogICAgICAgZ2NjX2Fz c2VydCAoY3R4KTsKLSAgICAgIGxvd2VyX29tcF9hbGxvY2F0ZSAoZ3NpX3AsIGN0eCk7Cisg ICAgICBsb3dlcl9vbXBfYWxsb2NhdGUgKGdzaV9wKTsKICAgICAgIGJyZWFrOwogICAgIGNh c2UgR0lNUExFX09NUF9TSU5HTEU6CiAgICAgICBjdHggPSBtYXliZV9sb29rdXBfY3R4IChz dG10KTsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvQ2hhbmdlTG9nLm9tcCBiL2djYy90 ZXN0c3VpdGUvQ2hhbmdlTG9nLm9tcAppbmRleCBlOWY0ZDFjNjNlNi4uMmQ4NjJiOTI3OTcg MTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvQ2hhbmdlTG9nLm9tcAorKysgYi9nY2MvdGVz dHN1aXRlL0NoYW5nZUxvZy5vbXAKQEAgLTEsMyArMSwxOCBAQAorMjAyMy0xMC0yNiAgVG9i aWFzIEJ1cm51cyAgPHRvYmlhc0Bjb2Rlc291cmNlcnkuY29tPgorCSAgICBDaHVuZy1MaW4g VGFuZyAgPGNsdGFuZ0Bjb2Rlc291cmNlcnkuY29tPgorCisJKiBnZm9ydHJhbi5kZy9nb21w L2FsbG9jYXRlLTIuZjkwOiBVcGRhdGUgZGctd2FybmluZy4KKwkqIGdmb3J0cmFuLmRnL2dv bXAvYWxsb2NhdGUtNC5mOTA6IE5ldyB1cHN0cmVhbSB0ZXN0LgorCSogZ2ZvcnRyYW4uZGcv Z29tcC9hbGxvY2F0ZS01LmY5MDogTmV3IHVwc3RyZWFtIHRlc3QuCisJKiBnZm9ydHJhbi5k Zy9nb21wL2FsbG9jYXRlLTYuZjkwOiBOZXcgdXBzdHJlYW0gdGVzdC4KKwkqIGdmb3J0cmFu LmRnL2dvbXAvYWxsb2NhdGUtNy5mOTA6IE5ldyB1cHN0cmVhbSB0ZXN0LgorCSogZ2ZvcnRy YW4uZGcvZ29tcC9hbGxvY2F0ZS00YS5mOTA6IFJlbmFtZWQgZnJvbSBhbGxvY2F0ZS00LmY5 MAorCSogZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS02YS5mOTA6IFJlbmFtZWQgZnJvbSBh bGxvY2F0ZS02LmY5MAorCSogZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS03YS5mOTA6IFJl bmFtZWQgZnJvbSBhbGxvY2F0ZS03LmY5MAorCSogZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0 ZS05YS5mOTA6IE5ldyB0ZXN0LgorCSogZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0b3JzLTEu ZjkwOiBOZXcgdXBzdHJlYW0gdGVzdC4KKwkqIGdmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdG9y cy0yLmY5MDogTmV3IHVwc3RyZWFtIHRlc3QuCisKIDIwMjMtMDktMjAgIFRvYmlhcyBCdXJu dXMgIDx0b2JpYXNAY29kZXNvdXJjZXJ5LmNvbT4KIAogCUJhY2twb3J0ZWQgZnJvbSBtYXN0 ZXI6CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2Nh dGUtMi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtMi5m OTAKaW5kZXggNjU3ZmY0NGQwMjMuLmNjODNiNWVkYmNlIDEwMDY0NAotLS0gYS9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtMi5mOTAKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTIuZjkwCkBAIC0yNSwxMSArMjUsMTEg QEAgc3Vicm91dGluZSBmb28oeCkKICAgeD0zCiAgICEkb21wIGVuZCBwYXJhbGxlbAogCi0g ICEkb21wIHBhcmFsbGVsIHByaXZhdGUgKHgpIGFsbG9jYXRlICh4KSBhbGxvY2F0ZSAoeCkg ISB7IGRnLXdhcm5pbmcgIid4JyBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlIGluICdhbGxvY2F0 ZScgY2xhdXNlcyBhdCAuMS4iIH0KKyAgISRvbXAgcGFyYWxsZWwgcHJpdmF0ZSAoeCkgYWxs b2NhdGUgKHgpIGFsbG9jYXRlICh4KSAhIHsgZGctd2FybmluZyAiJ3gnIGFwcGVhcnMgbW9y ZSB0aGFuIG9uY2UgaW4gJ2FsbG9jYXRlJyBhdCAuMS4iIH0KICAgeD00CiAgICEkb21wIGVu ZCBwYXJhbGxlbAogCi0gICEkb21wIHBhcmFsbGVsIHByaXZhdGUgKHgpIGFsbG9jYXRlICh4 LCB4KSAhIHsgZGctd2FybmluZyAiJ3gnIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UgaW4gJ2Fs bG9jYXRlJyBjbGF1c2VzIGF0IC4xLiIgfSAKKyAgISRvbXAgcGFyYWxsZWwgcHJpdmF0ZSAo eCkgYWxsb2NhdGUgKHgsIHgpICEgeyBkZy13YXJuaW5nICIneCcgYXBwZWFycyBtb3JlIHRo YW4gb25jZSBpbiAnYWxsb2NhdGUnIGF0IC4xLiIgfSAKICAgeD01CiAgICEkb21wIGVuZCBw YXJhbGxlbAogCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAv YWxsb2NhdGUtNC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2Nh dGUtNC5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmEyZGNm MTA1ZWUxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9n b21wL2FsbG9jYXRlLTQuZjkwCkBAIC0wLDAgKzEsNTQgQEAKK21vZHVsZSBteV9vbXBfbGli CisgIHVzZSBpc29fY19iaW5kaW5nLCBvbmx5OiBjX2ludHB0cl90CisgICF1c2Ugb21wX2xp YgorICBpbXBsaWNpdCBub25lCisgICAgICAgIGludGVnZXIsIHBhcmFtZXRlciA6OiBvbXBf YWxsb2NhdG9yX2hhbmRsZV9raW5kID0gY19pbnRwdHJfdAorCisgICAgICAgIGludGVnZXIg KGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAg cGFyYW1ldGVyIDo6IG9tcF9udWxsX2FsbG9jYXRvciA9IDAKKworICAgICAgICBpbnRlZ2Vy IChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgICAgICAgICAgICAg IHBhcmFtZXRlciA6OiBvbXBfZGVmYXVsdF9tZW1fYWxsb2MgPSAxCisgICAgICAgIGludGVn ZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgICAgICAgICAg ICAgcGFyYW1ldGVyIDo6IG9tcF9sYXJnZV9jYXBfbWVtX2FsbG9jID0gMgorICAgICAgICBp bnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgICAgICAg ICAgICAgIHBhcmFtZXRlciA6OiBvbXBfY29uc3RfbWVtX2FsbG9jID0gMworICAgICAgICBp bnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgICAgICAg ICAgICAgIHBhcmFtZXRlciA6OiBvbXBfaGlnaF9id19tZW1fYWxsb2MgPSA0CisgICAgICAg IGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgICAg ICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9sb3dfbGF0X21lbV9hbGxvYyA9IDUKKyAgICAg ICAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICAg ICAgICAgICAgICBwYXJhbWV0ZXIgOjogb21wX2Nncm91cF9tZW1fYWxsb2MgPSA2CisgICAg ICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAg ICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9wdGVhbV9tZW1fYWxsb2MgPSA3CisgICAg ICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAg ICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF90aHJlYWRfbWVtX2FsbG9jID0gOAorZW5k IG1vZHVsZSBteV9vbXBfbGliCisKK3N1YnJvdXRpbmUgb25lKG4sIG15X2FsbG9jKQorICB1 c2UgbXlfb21wX2xpYgorICBpbXBsaWNpdCBub25lCitpbnRlZ2VyIDo6IG4KK2ludGVnZXIo a2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgaW50ZW50KGluKSA6OiBteV9hbGxv YworCishc3RhY2sgdmFyaWFibGVzOgoraW50ZWdlciA6OiBhLGIsYyhuKSxkKDUpLGUoMikK KyEkb21wIGFsbG9jYXRlKGEpICAgISB7IGRnLWVycm9yICJTb3JyeSwgZGVjbGFyYXRpdmUg IS5PTVAgQUxMT0NBVEUgYXQgLjEuIG5vdCB5ZXQgc3VwcG9ydGVkIiB9CishJG9tcCBhbGxv Y2F0ZSAoIGIgLCBjICkgYWxpZ24gKCAzMikgYWxsb2NhdG9yIChteV9hbGxvYykKKyEkb21w IGFsbG9jYXRlIChkKSBhbGlnbiggMTI4ICkKKyEkb21wIGFsbG9jYXRlKCAgIGUgKSBhbGxv Y2F0b3IoIG9tcF9oaWdoX2J3X21lbV9hbGxvYyApCisKKyFzYXZlZCB2YXJzCitpbnRlZ2Vy LCBzYXZlIDo6IGssbCxtKDUpLHIoMikKKyEkb21wIGFsbG9jYXRlKGspICBhbGlnbigxNikg LCBhbGxvY2F0b3IgKG9tcF9sYXJnZV9jYXBfbWVtX2FsbG9jKQorISRvbXAgYWxsb2NhdGUg KCBsICkgYWxsb2NhdG9yIChvbXBfbGFyZ2VfY2FwX21lbV9hbGxvYykgLCBhbGlnbiAoIDMy KQorISRvbXAgYWxsb2NhdGUgKG0pIGFsaWduKCAxMjggKSxhbGxvY2F0b3IoIG9tcF9oaWdo X2J3X21lbV9hbGxvYyApCishJG9tcCBhbGxvY2F0ZSggICByICkgYWxsb2NhdG9yKCBvbXBf aGlnaF9id19tZW1fYWxsb2MgKQorCishY29tbW9uIC9ibG9jay8KK2ludGVnZXIgOjogcSx4 LHkoMikseig1KQorY29tbW9uIC9jb20xLyBxLHgKK2NvbW1vbiAvY29tMi8geSx6CishJG9t cCBhbGxvY2F0ZSAoIC8gY29tMS8pIGFsaWduKCAxMjggKSBhbGxvY2F0b3IoIG9tcF9oaWdo X2J3X21lbV9hbGxvYyApCishJG9tcCBhbGxvY2F0ZSgvY29tMiAvICkgYWxsb2NhdG9yKCBv bXBfaGlnaF9id19tZW1fYWxsb2MgKQorZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNGEuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9nb21wL2FsbG9jYXRlLTRhLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uYTJkY2YxMDVlZTEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNGEuZjkwCkBAIC0wLDAgKzEsNTQg QEAKK21vZHVsZSBteV9vbXBfbGliCisgIHVzZSBpc29fY19iaW5kaW5nLCBvbmx5OiBjX2lu dHB0cl90CisgICF1c2Ugb21wX2xpYgorICBpbXBsaWNpdCBub25lCisgICAgICAgIGludGVn ZXIsIHBhcmFtZXRlciA6OiBvbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kID0gY19pbnRwdHJf dAorCisgICAgICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCks ICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9udWxsX2FsbG9jYXRvciA9 IDAKKworICAgICAgICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQp LCAmCisgICAgICAgICAgICAgICAgIHBhcmFtZXRlciA6OiBvbXBfZGVmYXVsdF9tZW1fYWxs b2MgPSAxCisgICAgICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2lu ZCksICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9sYXJnZV9jYXBfbWVt X2FsbG9jID0gMgorICAgICAgICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxl X2tpbmQpLCAmCisgICAgICAgICAgICAgICAgIHBhcmFtZXRlciA6OiBvbXBfY29uc3RfbWVt X2FsbG9jID0gMworICAgICAgICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxl X2tpbmQpLCAmCisgICAgICAgICAgICAgICAgIHBhcmFtZXRlciA6OiBvbXBfaGlnaF9id19t ZW1fYWxsb2MgPSA0CisgICAgICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5k bGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9sb3dfbGF0 X21lbV9hbGxvYyA9IDUKKyAgICAgICAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hh bmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgOjogb21wX2Nncm91 cF9tZW1fYWxsb2MgPSA2CisgICAgICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9o YW5kbGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9wdGVh bV9tZW1fYWxsb2MgPSA3CisgICAgICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9o YW5kbGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF90aHJl YWRfbWVtX2FsbG9jID0gOAorZW5kIG1vZHVsZSBteV9vbXBfbGliCisKK3N1YnJvdXRpbmUg b25lKG4sIG15X2FsbG9jKQorICB1c2UgbXlfb21wX2xpYgorICBpbXBsaWNpdCBub25lCitp bnRlZ2VyIDo6IG4KK2ludGVnZXIoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwg aW50ZW50KGluKSA6OiBteV9hbGxvYworCishc3RhY2sgdmFyaWFibGVzOgoraW50ZWdlciA6 OiBhLGIsYyhuKSxkKDUpLGUoMikKKyEkb21wIGFsbG9jYXRlKGEpICAgISB7IGRnLWVycm9y ICJTb3JyeSwgZGVjbGFyYXRpdmUgIS5PTVAgQUxMT0NBVEUgYXQgLjEuIG5vdCB5ZXQgc3Vw cG9ydGVkIiB9CishJG9tcCBhbGxvY2F0ZSAoIGIgLCBjICkgYWxpZ24gKCAzMikgYWxsb2Nh dG9yIChteV9hbGxvYykKKyEkb21wIGFsbG9jYXRlIChkKSBhbGlnbiggMTI4ICkKKyEkb21w IGFsbG9jYXRlKCAgIGUgKSBhbGxvY2F0b3IoIG9tcF9oaWdoX2J3X21lbV9hbGxvYyApCisK KyFzYXZlZCB2YXJzCitpbnRlZ2VyLCBzYXZlIDo6IGssbCxtKDUpLHIoMikKKyEkb21wIGFs bG9jYXRlKGspICBhbGlnbigxNikgLCBhbGxvY2F0b3IgKG9tcF9sYXJnZV9jYXBfbWVtX2Fs bG9jKQorISRvbXAgYWxsb2NhdGUgKCBsICkgYWxsb2NhdG9yIChvbXBfbGFyZ2VfY2FwX21l bV9hbGxvYykgLCBhbGlnbiAoIDMyKQorISRvbXAgYWxsb2NhdGUgKG0pIGFsaWduKCAxMjgg KSxhbGxvY2F0b3IoIG9tcF9oaWdoX2J3X21lbV9hbGxvYyApCishJG9tcCBhbGxvY2F0ZSgg ICByICkgYWxsb2NhdG9yKCBvbXBfaGlnaF9id19tZW1fYWxsb2MgKQorCishY29tbW9uIC9i bG9jay8KK2ludGVnZXIgOjogcSx4LHkoMikseig1KQorY29tbW9uIC9jb20xLyBxLHgKK2Nv bW1vbiAvY29tMi8geSx6CishJG9tcCBhbGxvY2F0ZSAoIC8gY29tMS8pIGFsaWduKCAxMjgg KSBhbGxvY2F0b3IoIG9tcF9oaWdoX2J3X21lbV9hbGxvYyApCishJG9tcCBhbGxvY2F0ZSgv Y29tMiAvICkgYWxsb2NhdG9yKCBvbXBfaGlnaF9id19tZW1fYWxsb2MgKQorZW5kCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNS5mOTAg Yi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNS5mOTAKaW5kZXgg NzYxYjZkZWRlMjguLjMzODA1ZWMxMmQ0IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNS5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9nb21wL2FsbG9jYXRlLTUuZjkwCkBAIC0xLDczICsxLDk5IEBACi0hIHsgZGct ZG8gY29tcGlsZSB9Ci0KLW1vZHVsZSBvbXBfbGliX2tpbmRzCi0gIHVzZSBpc29fY19iaW5k aW5nLCBvbmx5OiBjX2ludCwgY19pbnRwdHJfdAorbW9kdWxlIG15X29tcF9saWIKKyAgdXNl IGlzb19jX2JpbmRpbmcsIG9ubHk6IGNfaW50cHRyX3QKKyAgIXVzZSBvbXBfbGliCiAgIGlt cGxpY2l0IG5vbmUKLSAgcHJpdmF0ZSA6OiBjX2ludCwgY19pbnRwdHJfdAotICBpbnRlZ2Vy LCBwYXJhbWV0ZXIgOjogb21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCA9IGNfaW50cHRyX3QK KyAgICAgICAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IG9tcF9hbGxvY2F0b3JfaGFuZGxlX2tp bmQgPSBjX2ludHB0cl90CiAKLSAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRs ZV9raW5kKSwgJgotICAgICBwYXJhbWV0ZXIgOjogb21wX251bGxfYWxsb2NhdG9yID0gMAot ICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCi0gICAgIHBh cmFtZXRlciA6OiBvbXBfZGVmYXVsdF9tZW1fYWxsb2MgPSAxCi0gIGludGVnZXIgKGtpbmQ9 b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKLSAgICAgcGFyYW1ldGVyIDo6IG9tcF9s YXJnZV9jYXBfbWVtX2FsbG9jID0gMgotICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3Jf aGFuZGxlX2tpbmQpLCAmCi0gICAgIHBhcmFtZXRlciA6OiBvbXBfY29uc3RfbWVtX2FsbG9j ID0gMwotICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCi0g ICAgIHBhcmFtZXRlciA6OiBvbXBfaGlnaF9id19tZW1fYWxsb2MgPSA0Ci0gIGludGVnZXIg KGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKLSAgICAgcGFyYW1ldGVyIDo6 IG9tcF9sb3dfbGF0X21lbV9hbGxvYyA9IDUKLSAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2Nh dG9yX2hhbmRsZV9raW5kKSwgJgotICAgICBwYXJhbWV0ZXIgOjogb21wX2Nncm91cF9tZW1f YWxsb2MgPSA2Ci0gIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCks ICYKLSAgICAgcGFyYW1ldGVyIDo6IG9tcF9wdGVhbV9tZW1fYWxsb2MgPSA3Ci0gIGludGVn ZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKLSAgICAgcGFyYW1ldGVy IDo6IG9tcF90aHJlYWRfbWVtX2FsbG9jID0gOAotZW5kIG1vZHVsZQorICAgICAgICBpbnRl Z2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgICAgICAgICAg ICAgIHBhcmFtZXRlciA6OiBvbXBfbnVsbF9hbGxvY2F0b3IgPSAwCiAKLXN1YnJvdXRpbmUg Zm9vKHgsIHkpCi0gIHVzZSBvbXBfbGliX2tpbmRzCi0gIGltcGxpY2l0IG5vbmUKLSAgaW50 ZWdlciAgOjogeAotICBpbnRlZ2VyICA6OiB5CisgICAgICAgIGludGVnZXIgKGtpbmQ9b21w X2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVy IDo6IG9tcF9kZWZhdWx0X21lbV9hbGxvYyA9IDEKKyAgICAgICAgaW50ZWdlciAoa2luZD1v bXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAgICBwYXJhbWV0 ZXIgOjogb21wX2xhcmdlX2NhcF9tZW1fYWxsb2MgPSAyCisgICAgICAgIGludGVnZXIgKGtp bmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAgcGFy YW1ldGVyIDo6IG9tcF9jb25zdF9tZW1fYWxsb2MgPSAzCisgICAgICAgIGludGVnZXIgKGtp bmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAgcGFy YW1ldGVyIDo6IG9tcF9oaWdoX2J3X21lbV9hbGxvYyA9IDQKKyAgICAgICAgaW50ZWdlciAo a2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAgICBw YXJhbWV0ZXIgOjogb21wX2xvd19sYXRfbWVtX2FsbG9jID0gNQorICAgICAgICBpbnRlZ2Vy IChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgICAgICAgICAgICAg IHBhcmFtZXRlciA6OiBvbXBfY2dyb3VwX21lbV9hbGxvYyA9IDYKKyAgICAgICAgaW50ZWdl ciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAg ICBwYXJhbWV0ZXIgOjogb21wX3B0ZWFtX21lbV9hbGxvYyA9IDcKKyAgICAgICAgaW50ZWdl ciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAg ICBwYXJhbWV0ZXIgOjogb21wX3RocmVhZF9tZW1fYWxsb2MgPSA4CisgIHR5cGUgdAorICAg IGludGVnZXIgOjogYQorICBlbmQgdHlwZSB0CitlbmQgbW9kdWxlIG15X29tcF9saWIKIAot ICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXIxKDopCi0gIGludGVnZXIsIGFsbG9jYXRh YmxlIDo6IHZhcjIoOikKLSAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmFyMyg6KQotICBp bnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXI0KDosOikKLSAgaW50ZWdlciwgYWxsb2NhdGFi bGUgOjogdmFyNSg6KQotICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXI2KDopCi0gIGlu dGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZhcjcoOikKLSAgaW50ZWdlciwgYWxsb2NhdGFibGUg OjogdmFyOCg6KQotICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXI5KDopCi0gIGludGVn ZXIsIGFsbG9jYXRhYmxlIDo6IHZhcjEwKDopCi0gIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6 IHZhcjExKDopCi0gIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZhcjEyKDopCitzdWJyb3V0 aW5lIHplcm8oKQorICAhJG9tcCBhc3N1bWVzIGFic2VudCAoYWxsb2NhdG9ycykKIAotICAh JG9tcCBhbGxvY2F0ZSAodmFyMSkgYWxsb2NhdG9yKG9tcF9kZWZhdWx0X21lbV9hbGxvYykK LSAgYWxsb2NhdGUgKHZhcjEoeCkpCi0gIAotICAhJG9tcCBhbGxvY2F0ZSAodmFyMikKLSAg YWxsb2NhdGUgKHZhcjIoeCkpCisgICEkb21wIGFzc3VtZSBhYnNlbnQgKGFsbG9jYXRvcnMp CisgICEkb21wIGVuZCBhc3N1bWUKK2VuZAogCi0gICEkb21wIGFsbG9jYXRlICh2YXIzLCB2 YXI0KSBhbGxvY2F0b3Iob21wX2xhcmdlX2NhcF9tZW1fYWxsb2MpCi0gIGFsbG9jYXRlICh2 YXIzKHgpLHZhcjQoeCx5KSkKK3N1YnJvdXRpbmUgdHdvKGMseDIseTIpCisgIHVzZSBteV9v bXBfbGliCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogYSwg Yig6KSwgYyg6LDopCisgIHR5cGUodCksIGFsbG9jYXRhYmxlIDo6IHgxCisgIHR5cGUodCks IHBvaW50ZXIgOjogeDIoOikKKyAgY2xhc3ModCksIGFsbG9jYXRhYmxlIDo6IHkxCisgIGNs YXNzKHQpLCBwb2ludGVyIDo6IHkyKDopCiAKLSAgISRvbXAgYWxsb2NhdGUoKQotICBhbGxv Y2F0ZSAodmFyNSh4KSkKKyAgISRvbXAgZmx1c2ggICEgc29tZSBleGVjdXRhYmxlIHN0YXRl bWVudAorICAhJG9tcCBhbGxvY2F0ZShhKQorICBhbGxvY2F0ZShhKQorICBkZWFsbG9jYXRl KGEpCiAKLSAgISRvbXAgYWxsb2NhdGUKLSAgYWxsb2NhdGUgKHZhcjYoeCkpCisgICEkb21w IGFsbG9jYXRlKHgxLHkxLHgyLHkyKQorICBhbGxvY2F0ZSh4MSx5MSx4Mig1KSx5Mig1KSkK KyAgZGVhbGxvY2F0ZSh4MSx5MSx4Mix5MikKIAotICAhJG9tcCBhbGxvY2F0ZSAoKSBhbGxv Y2F0b3Iob21wX2RlZmF1bHRfbWVtX2FsbG9jKQotICBhbGxvY2F0ZSAodmFyNyh4KSkKKyAg ISRvbXAgYWxsb2NhdGUoYixhKSBhbGlnbiAoIDEyOCApCisgICEkb21wIGFsbG9jYXRlIGFs aWduICggNjQgKQorICBhbGxvY2F0ZShhLGIoNCksYygzLDQpKQorICBkZWFsbG9jYXRlKGEs YixjKQorZW5kCiAKLSAgISRvbXAgYWxsb2NhdGUgYWxsb2NhdG9yKG9tcF9kZWZhdWx0X21l bV9hbGxvYykKLSAgYWxsb2NhdGUgKHZhcjgoeCkpCitzdWJyb3V0aW5lIHRocmVlKGMpCisg IHVzZSBteV9vbXBfbGliCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciA6OiBxCisgIGlu dGVnZXIsIGFsbG9jYXRhYmxlIDo6IGEsIGIoOiksIGMoOiw6KQogCi0gICEkb21wIGFsbG9j YXRlICh2YXI5KSBhbGxvY2F0b3Iob21wX2RlZmF1bHRfbWVtX2FsbG9jKQotICAhJG9tcCBh bGxvY2F0ZSAodmFyMTApIGFsbG9jYXRvcihvbXBfbGFyZ2VfY2FwX21lbV9hbGxvYykKLSAg YWxsb2NhdGUgKHZhcjkoeCksIHZhcjEwKHgpKQorICBjYWxsIGZvbygpICAhIGV4ZWN1dGFi bGUgc3RtdAorICAhJG9tcCBhbGxvY2F0ZSBhbGxvY2F0b3IoIG9tcF9sYXJnZV9jYXBfbWVt X2FsbG9jICkgLCBhbGlnbig2NCkKKyAgISRvbXAgYWxsb2NhdGUoYikgYWxsb2NhdG9yKCBv bXBfaGlnaF9id19tZW1fYWxsb2MgKQorICAhJG9tcCBhbGxvY2F0ZShjKSBhbGxvY2F0b3Io IG9tcF9oaWdoX2J3X21lbV9hbGxvYyApCisgIGFsbG9jYXRlKGEsYig0KSxjKDMsNCkpCisg IGRlYWxsb2NhdGUoYSxiLGMpCiAKLWVuZCBzdWJyb3V0aW5lCisgIGJsb2NrCisgICAgcSA9 IDUgICEgZXhlY3V0YWJsZSBzdG10CisgICAgISRvbXAgYWxsb2NhdGUoYSkgYWxpZ24oNjQp CisgICAgISRvbXAgYWxsb2NhdGUoYikgYWxsb2NhdG9yKCBvbXBfaGlnaF9id19tZW1fYWxs b2MgKSwgYWxpZ24oMzIpCisgICAgISRvbXAgYWxsb2NhdGUoYykgYWxsb2NhdG9yKCBvbXBf dGhyZWFkX21lbV9hbGxvYyApCisgICAgISB7IGRnLWVycm9yICJTb3JyeSwgYWxsb2NhdGlv biBvZiBhbGxvY2F0YWJsZSAnYScgd2l0aCAnIS5vbXAgYWxsb2NhdG9ycycgb3IgJyEub21w IGFsbG9jYXRlJyBhdCAuMS4gaXMgb25seSBzdXBwb3JlZCBpbiB0aGUgc2NvcGUgd2hlcmUg aXQgaGFzIGJlZW4gZGVjbGFyZWQsIHVubGVzcyBpdCBoYXMgdGhlIFNBVkUgYXR0cmlidXRl IiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMyB9CisgICAgISB7IGRnLWVycm9yICJTb3JyeSwg YWxsb2NhdGlvbiBvZiBhbGxvY2F0YWJsZSAnYicgd2l0aCAnIS5vbXAgYWxsb2NhdG9ycycg b3IgJyEub21wIGFsbG9jYXRlJyBhdCAuMS4gaXMgb25seSBzdXBwb3JlZCBpbiB0aGUgc2Nv cGUgd2hlcmUgaXQgaGFzIGJlZW4gZGVjbGFyZWQsIHVubGVzcyBpdCBoYXMgdGhlIFNBVkUg YXR0cmlidXRlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tNCB9CisgICAgISB7IGRnLWVycm9y ICJTb3JyeSwgYWxsb2NhdGlvbiBvZiBhbGxvY2F0YWJsZSAnYycgd2l0aCAnIS5vbXAgYWxs b2NhdG9ycycgb3IgJyEub21wIGFsbG9jYXRlJyBhdCAuMS4gaXMgb25seSBzdXBwb3JlZCBp biB0aGUgc2NvcGUgd2hlcmUgaXQgaGFzIGJlZW4gZGVjbGFyZWQsIHVubGVzcyBpdCBoYXMg dGhlIFNBVkUgYXR0cmlidXRlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tNSB9CisgICAgYWxs b2NhdGUoYSxiKDQpLGMoMyw0KSkKKyAgICBkZWFsbG9jYXRlKGEsYixjKQorICBlbmQgYmxv Y2sKKyAgY2FsbCBpbm5lcgorY29udGFpbnMKKyAgc3Vicm91dGluZSBpbm5lcgorICAgIGNh bGwgZm9vKCkgICEgZXhlY3V0YWJsZSBzdG10CisgICAgISRvbXAgYWxsb2NhdGUoYSkgYWxp Z24oNjQpCisgICAgISRvbXAgYWxsb2NhdGUoYikgYWxsb2NhdG9yKCBvbXBfaGlnaF9id19t ZW1fYWxsb2MgKSwgYWxpZ24oMzIpCisgICAgISRvbXAgYWxsb2NhdGUoYykgYWxsb2NhdG9y KCBvbXBfdGhyZWFkX21lbV9hbGxvYyApCisgICAgISB7IGRnLWVycm9yICJTb3JyeSwgYWxs b2NhdGlvbiBvZiBhbGxvY2F0YWJsZSAnYScgd2l0aCAnIS5vbXAgYWxsb2NhdG9ycycgb3Ig JyEub21wIGFsbG9jYXRlJyBhdCAuMS4gaXMgb25seSBzdXBwb3JlZCBpbiB0aGUgc2NvcGUg d2hlcmUgaXQgaGFzIGJlZW4gZGVjbGFyZWQsIHVubGVzcyBpdCBoYXMgdGhlIFNBVkUgYXR0 cmlidXRlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMyB9CisgICAgISB7IGRnLWVycm9yICJT b3JyeSwgYWxsb2NhdGlvbiBvZiBhbGxvY2F0YWJsZSAnYicgd2l0aCAnIS5vbXAgYWxsb2Nh dG9ycycgb3IgJyEub21wIGFsbG9jYXRlJyBhdCAuMS4gaXMgb25seSBzdXBwb3JlZCBpbiB0 aGUgc2NvcGUgd2hlcmUgaXQgaGFzIGJlZW4gZGVjbGFyZWQsIHVubGVzcyBpdCBoYXMgdGhl IFNBVkUgYXR0cmlidXRlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tNCB9CisgICAgISB7IGRn LWVycm9yICJTb3JyeSwgYWxsb2NhdGlvbiBvZiBhbGxvY2F0YWJsZSAnYycgd2l0aCAnIS5v bXAgYWxsb2NhdG9ycycgb3IgJyEub21wIGFsbG9jYXRlJyBhdCAuMS4gaXMgb25seSBzdXBw b3JlZCBpbiB0aGUgc2NvcGUgd2hlcmUgaXQgaGFzIGJlZW4gZGVjbGFyZWQsIHVubGVzcyBp dCBoYXMgdGhlIFNBVkUgYXR0cmlidXRlIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tNSB9Cisg ICAgYWxsb2NhdGUoYSxiKDQpLGMoMyw0KSkKKyAgICBkZWFsbG9jYXRlKGEsYixjKQorICBl bmQgc3Vicm91dGluZSBpbm5lcgorZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2dvbXAvYWxsb2NhdGUtNi5mOTAKaW5kZXggNzM4ZDk5MzZmNmEuLjczZTViYmNmNzFi IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUt Ni5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTYu ZjkwCkBAIC0xLDg0ICsxLDEwMyBAQAotISB7IGRnLWRvIGNvbXBpbGUgfQotISB7IGRnLWFk ZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtb3JpZ2luYWwgLWZkdW1wLXRyZWUtZ2lt cGxlIiB9Ci0hIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vbXBsb3dl ciIgfQorbW9kdWxlIG15X29tcF9saWIKKyAgdXNlIGlzb19jX2JpbmRpbmcsIG9ubHk6IGNf aW50cHRyX3QKKyAgIXVzZSBvbXBfbGliCisgIGltcGxpY2l0IG5vbmUKKyAgICAgICAgaW50 ZWdlciwgcGFyYW1ldGVyIDo6IG9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQgPSBjX2ludHB0 cl90CisKKyAgICAgICAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5k KSwgJgorICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgOjogb21wX251bGxfYWxsb2NhdG9y ID0gMAorCisgICAgICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2lu ZCksICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9kZWZhdWx0X21lbV9h bGxvYyA9IDEKKyAgICAgICAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9r aW5kKSwgJgorICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgOjogb21wX2xhcmdlX2NhcF9t ZW1fYWxsb2MgPSAyCisgICAgICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5k bGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9jb25zdF9t ZW1fYWxsb2MgPSAzCisgICAgICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5k bGVfa2luZCksICYKKyAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9oaWdoX2J3 X21lbV9hbGxvYyA9IDQKKyAgICAgICAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hh bmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgOjogb21wX2xvd19s YXRfbWVtX2FsbG9jID0gNQorICAgICAgICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3Jf aGFuZGxlX2tpbmQpLCAmCisgICAgICAgICAgICAgICAgIHBhcmFtZXRlciA6OiBvbXBfY2dy b3VwX21lbV9hbGxvYyA9IDYKKyAgICAgICAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9y X2hhbmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgOjogb21wX3B0 ZWFtX21lbV9hbGxvYyA9IDcKKyAgICAgICAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9y X2hhbmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAgICBwYXJhbWV0ZXIgOjogb21wX3Ro cmVhZF9tZW1fYWxsb2MgPSA4CisgICB0eXBlIHQKKyAgICAgaW50ZWdlcixhbGxvY2F0YWJs ZSA6OiBhCisgICAgIGludGVnZXIscG9pbnRlciA6OiBiKDosOikKKyAgIGVuZCB0eXBlIHQK K2VuZCBtb2R1bGUgbXlfb21wX2xpYgorCitzdWJyb3V0aW5lIHplcm8oKQorICAhJG9tcCBh c3N1bWVzIGFic2VudCAoYWxsb2NhdGUpICAhIHsgZGctZXJyb3IgIkludmFsaWQgJ0FMTE9D QVRFJyBkaXJlY3RpdmUgYXQgLjEuIGluIEFCU0VOVCBjbGF1c2U6IGRlY2xhcmF0aXZlLCBp bmZvcm1hdGlvbmFsIGFuZCBtZXRhIGRpcmVjdGl2ZXMgbm90IHBlcm1pdHRlZCIgfQorCisg ICEkb21wIGFzc3VtZSBhYnNlbnQgKGFsbG9jYXRlKSAgISB7IGRnLWVycm9yICJJbnZhbGlk ICdBTExPQ0FURScgZGlyZWN0aXZlIGF0IC4xLiBpbiBBQlNFTlQgY2xhdXNlOiBkZWNsYXJh dGl2ZSwgaW5mb3JtYXRpb25hbCBhbmQgbWV0YSBkaXJlY3RpdmVzIG5vdCBwZXJtaXR0ZWQi IH0KKyAgISEkb21wIGVuZCBhc3N1bWUKK2VuZAogCi1tb2R1bGUgb21wX2xpYl9raW5kcwot ICB1c2UgaXNvX2NfYmluZGluZywgb25seTogY19pbnQsIGNfaW50cHRyX3QKK3N1YnJvdXRp bmUgYWxsb2MoYyx4Mix5MikKKyAgdXNlIG15X29tcF9saWIKICAgaW1wbGljaXQgbm9uZQot ICBwcml2YXRlIDo6IGNfaW50LCBjX2ludHB0cl90Ci0gIGludGVnZXIsIHBhcmFtZXRlciA6 OiBvbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kID0gY19pbnRwdHJfdAotCi0gIGludGVnZXIg KGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKLSAgICAgcGFyYW1ldGVyIDo6 IG9tcF9udWxsX2FsbG9jYXRvciA9IDAKLSAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9y X2hhbmRsZV9raW5kKSwgJgotICAgICBwYXJhbWV0ZXIgOjogb21wX2RlZmF1bHRfbWVtX2Fs bG9jID0gMQotICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAm Ci0gICAgIHBhcmFtZXRlciA6OiBvbXBfbGFyZ2VfY2FwX21lbV9hbGxvYyA9IDIKLSAgaW50 ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgotICAgICBwYXJhbWV0 ZXIgOjogb21wX2NvbnN0X21lbV9hbGxvYyA9IDMKLSAgaW50ZWdlciAoa2luZD1vbXBfYWxs b2NhdG9yX2hhbmRsZV9raW5kKSwgJgotICAgICBwYXJhbWV0ZXIgOjogb21wX2hpZ2hfYndf bWVtX2FsbG9jID0gNAotICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tp bmQpLCAmCi0gICAgIHBhcmFtZXRlciA6OiBvbXBfbG93X2xhdF9tZW1fYWxsb2MgPSA1Ci0g IGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKLSAgICAgcGFy YW1ldGVyIDo6IG9tcF9jZ3JvdXBfbWVtX2FsbG9jID0gNgotICBpbnRlZ2VyIChraW5kPW9t cF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCi0gICAgIHBhcmFtZXRlciA6OiBvbXBfcHRl YW1fbWVtX2FsbG9jID0gNwotICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxl X2tpbmQpLCAmCi0gICAgIHBhcmFtZXRlciA6OiBvbXBfdGhyZWFkX21lbV9hbGxvYyA9IDgK LWVuZCBtb2R1bGUKLQotCi1zdWJyb3V0aW5lIGZvbyh4LCB5LCBhbCkKLSAgdXNlIG9tcF9s aWJfa2luZHMKKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogYSwgYig6KSwgYyg6LDopCisg IHR5cGUodCkgOjogeDEseDIKKyAgY2xhc3ModCkgOjogeTEseTIKKyAgYWxsb2NhdGFibGUg OjogeDEsIHkxCisKKyAgISRvbXAgZmx1c2ggICEgc29tZSBleGVjdXRhYmxlIHN0YXRlbWVu dAorCisgICEkb21wIGFsbG9jYXRlKHgyJWEseDIlYix5MiVhLHkyJWIpIGFsbG9jYXRvcihv bXBfcHRlYW1fbWVtX2FsbG9jKSBhbGlnbig2NCkgICEgeyBkZy1lcnJvciAiU29ycnksIHN0 cnVjdHVyZS1lbGVtZW50IGxpc3QgaXRlbSBhdCAuMS4gaW4gQUxMT0NBVEUgZGlyZWN0aXZl IGlzIG5vdCB5ZXQgc3VwcG9ydGVkIiB9CisgIGFsbG9jYXRlKHgyJWEseDIlYigzLDQpLHky JWEseTIlYigzLDQpKQorCisgICEkb21wIGFsbG9jYXRlKGIoMykpIGFsaWduICggNjQgKSAh IHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgZXhwcmVzc2lvbiBhcyBsaXN0IGl0ZW0gYXQgLjEu IGluIEFMTE9DQVRFIGRpcmVjdGl2ZSIgfQorICBhbGxvY2F0ZShiKDMpKQorZW5kCisKK3N1 YnJvdXRpbmUgb25lKG4sIG15X2FsbG9jKQorICB1c2UgbXlfb21wX2xpYgogICBpbXBsaWNp dCBub25lCi0gIAotdHlwZSA6OiBteV90eXBlCi0gIGludGVnZXIgOjogaQotICBpbnRlZ2Vy IDo6IGoKLSAgcmVhbCA6OiB4Ci1lbmQgdHlwZQotCi0gIGludGVnZXIgIDo6IHgKLSAgaW50 ZWdlciAgOjogeQotICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQp IDo6IGFsCi0KLSAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmFyMQotICBpbnRlZ2VyLCBh bGxvY2F0YWJsZSA6OiB2YXIyCi0gIHJlYWwsIGFsbG9jYXRhYmxlIDo6IHZhcjMoOiw6KQot ICB0eXBlIChteV90eXBlKSwgYWxsb2NhdGFibGUgOjogdmFyNAotICBpbnRlZ2VyLCBwb2lu dGVyIDo6IHBpaSwgcGFycig6KQotICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXIKLQot ICBjaGFyYWN0ZXIsIGFsbG9jYXRhYmxlIDo6IHN0cjFhLCBzdHIxYWFycig6KSAKLSAgY2hh cmFjdGVyKGxlbj01KSwgYWxsb2NhdGFibGUgOjogc3RyNWEsIHN0cjVhYXJyKDopCi0gIAot ICAhJG9tcCBhbGxvY2F0ZQotICBhbGxvY2F0ZShzdHIxYSwgc3RyMWFhcnIoMTApLCBzdHI1 YSwgc3RyNWFhcnIoMTApKQoraW50ZWdlciA6OiBuCitpbnRlZ2VyKGtpbmQ9b21wX2FsbG9j YXRvcl9oYW5kbGVfa2luZCksIGludGVudChpbikgOjogbXlfYWxsb2MKKworaW50ZWdlciA6 OiBhLGIsYyhuKSxkKDUpLGUoMikKK2ludGVnZXIsIHNhdmUgOjogayxsLG0oNSkscigyKQor aW50ZWdlciA6OiBxLHgseSgyKSx6KDUpCitjb21tb24gL2NvbTEvIHEseAorY29tbW9uIC9j b20yLyB5LHoKK2ludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGFsbG9jCitpbnRlZ2VyLCBwb2lu dGVyIDo6IHB0cgorCishJG9tcCBhbGxvY2F0ZShxKSAhIHsgZGctZXJyb3IgIidxJyBhdCAu MS4gaXMgcGFydCBvZiB0aGUgY29tbW9uIGJsb2NrICcvY29tMS8nIGFuZCBtYXkgb25seSBi ZSBzcGVjaWZpY2VkIGltcGxpY2l0bHkgdmlhIHRoZSBuYW1lZCBjb21tb24gYmxvY2siIH0K KworISRvbXAgYWxsb2NhdGUoZCg6KSkgISB7IGRnLWVycm9yICJVbmV4cGVjdGVkIGV4cHJl c3Npb24gYXMgbGlzdCBpdGVtIGF0IC4xLiBpbiBBTExPQ0FURSBkaXJlY3RpdmUiIH0KKyEk b21wIGFsbG9jYXRlKGEpIGFsaWduKDQpLCBhbGlnbig0KSAgISB7IGRnLWVycm9yICJEdXBs aWNhdGVkICdhbGlnbicgY2xhdXNlIiB9CishJG9tcCBhbGxvY2F0ZSggICBlICkgYWxsb2Nh dG9yKCBvbXBfaGlnaF9id19tZW1fYWxsb2MgKSwgYWxpZ24oMzIpLGFsbG9jYXRvciggb21w X2hpZ2hfYndfbWVtX2FsbG9jICkgICEgeyBkZy1lcnJvciAiRHVwbGljYXRlZCAnYWxsb2Nh dG9yJyBjbGF1c2UiIH0KIAotICAhJG9tcCBhbGxvY2F0ZSAodmFyMSkgYWxsb2NhdG9yKG9t cF9kZWZhdWx0X21lbV9hbGxvYykKLSAgISRvbXAgYWxsb2NhdGUgKHZhcjIpIGFsbG9jYXRv cihvbXBfbGFyZ2VfY2FwX21lbV9hbGxvYykKLSAgYWxsb2NhdGUgKHZhcjEsIHZhcjIpCish JG9tcCBhbGxvY2F0ZSBhbGlnbigzMikgISB7IGRnLWVycm9yICInIS5PTVAgQUxMT0NBVEUn IGRpcmVjdGl2ZSBhdCAuMS4gbXVzdCBlaXRoZXIgaGF2ZSBhIHZhcmlhYmxlIGFyZ3VtZW50 IG9yLCBpZiBhc3NvY2lhdGVkIHdpdGggYW4gQUxMT0NBVEUgc3RtdCwgbXVzdCBiZSBwcmVj ZWRlZCBieSBhbiBleGVjdXRhYmxlIHN0YXRlbWVudCBvciBPcGVuTVAgY29uc3RydWN0IiB9 CiAKLSAgISRvbXAgYWxsb2NhdGUgKHZhcjQpICBhbGxvY2F0b3Iob21wX2xvd19sYXRfbWVt X2FsbG9jKQotICBhbGxvY2F0ZSAodmFyNCkKLSAgdmFyNCVpID0gNQorISRvbXAgYWxsb2Nh dGUoYWxsb2MpIGFsaWduKDEyOCkgICEgeyBkZy1lcnJvciAiJyEuT01QIEFMTE9DQVRFJyBk aXJlY3RpdmUgYXQgLjEuIGFzc29jaWF0ZWQgd2l0aCBhbiBBTExPQ0FURSBzdG10IG11c3Qg YmUgcHJlY2VkZWQgYnkgYW4gZXhlY3V0YWJsZSBzdGF0ZW1lbnQgb3IgT3Blbk1QIGNvbnN0 cnVjdDsgbm90ZSB0aGUgdmFyaWFibGVzIGluIHRoZSBsaXN0IGFsbCBoYXZlIHRoZSBhbGxv Y2F0YWJsZSBvciBwb2ludGVyIGF0dHJpYnV0ZSIgfQorISRvbXAgYWxsb2NhdGUocHRyKSBh bGlnbigxMjgpICAhIHsgZGctZXJyb3IgIichLk9NUCBBTExPQ0FURScgZGlyZWN0aXZlIGF0 IC4xLiBhc3NvY2lhdGVkIHdpdGggYW4gQUxMT0NBVEUgc3RtdCBtdXN0IGJlIHByZWNlZGVk IGJ5IGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50IG9yIE9wZW5NUCBjb25zdHJ1Y3Q7IG5vdGUg dGhlIHZhcmlhYmxlcyBpbiB0aGUgbGlzdCBhbGwgaGF2ZSB0aGUgYWxsb2NhdGFibGUgb3Ig cG9pbnRlciBhdHRyaWJ1dGUiIH0KIAotICAhJG9tcCBhbGxvY2F0ZSAodmFyMykgIGFsbG9j YXRvcihvbXBfbG93X2xhdF9tZW1fYWxsb2MpCi0gIGFsbG9jYXRlICh2YXIzKHgseSkpCish JG9tcCBhbGxvY2F0ZShlKSBhbGxvY2F0ZShvbXBfdGhyZWFkX21lbV9hbGxvYykgICEgeyBk Zy1lcnJvciAiRXhwZWN0ZWQgQUxJR04gb3IgQUxMT0NBVE9SIGNsYXVzZSIgfQorZW5kCisK K3N1YnJvdXRpbmUgdHdvKCkKKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogYSxiLGMKKwor ICBjYWxsIGZvbygpCisgICEkb21wIGFsbG9jYXRlKGEpCisgIGEgPSA1ICAhIHsgZGctZXJy b3IgIlVuZXhwZWN0ZWQgYXNzaWdubWVudCBhdCAuMS47IGV4cGVjdGVkIEFMTE9DQVRFIG9y ICEuT01QIEFMTE9DQVRFIHN0YXRlbWVudCIgfQorCisgICEkb21wIGFsbG9jYXRlICAhIHsg ZGctZXJyb3IgIiEuT01QIEFMTE9DQVRFIHN0YXRlbWVudHMgYXQgLjEuIGFuZCAuMi4gaGF2 ZSBib3RoIG5vIGxpc3QgaXRlbSBidXQgb25seSBvbmUgbWF5IiB9CisgICEkb21wIGFsbG9j YXRlKGIpCisgICEkb21wIGFsbG9jYXRlICAhIHsgZGctZXJyb3IgIiEuT01QIEFMTE9DQVRF IHN0YXRlbWVudHMgYXQgLjEuIGFuZCAuMi4gaGF2ZSBib3RoIG5vIGxpc3QgaXRlbSBidXQg b25seSBvbmUgbWF5IiB9CisgICBhbGxvY2F0ZShhLGIsYykKIAogICAhJG9tcCBhbGxvY2F0 ZQotICBhbGxvY2F0ZShwaWksIHBhcnIoNSkpCi0KLSAgISBhbGxvY2F0ZSBzdGF0ZW1lbnQg bm90IGFzc29jaWF0ZWQgd2l0aCBhbiBhbGxvY2F0ZSBkaXJlY3RpdmUKLSAgYWxsb2NhdGUo dmFyKQotZW5kIHN1YnJvdXRpbmUKLQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgIiNwcmFnbWEgb21wIGFsbG9jYXRlIFxcKGtpbmQ9YWxsb2NhdGVcXCkiIDYgIm9y aWdpbmFsIiB9IH0KLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICIjcHJhZ21hIG9t cCBhbGxvY2F0ZSBcXChraW5kPWZyZWVcXCkiICJvcmlnaW5hbCIgfSB9Ci0hIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgYWxsb2NhdGUgXFwoa2lu ZD1hbGxvY2F0ZVxcKSIgNiAiZ2ltcGxlIiB9IH0KLSEgeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wICIjcHJhZ21hIG9tcCBhbGxvY2F0ZSBcXChraW5kPWZyZWVcXCkiICJnaW1wbGUi IH0gfQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImJ1aWx0aW5fbWFs bG9jIiAxMSAib3JpZ2luYWwiIH0gfQotISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt dGltZXMgImJ1aWx0aW5fZnJlZSIgOSAib3JpZ2luYWwiIH0gfQotISB7IGRnLWZpbmFsIHsg c2Nhbi10cmVlLWR1bXAtdGltZXMgIkdPTVBfYWxsb2MiIDEwICJvbXBsb3dlciIgfSB9Ci0h IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiR09NUF9mcmVlIiA4ICJvbXBs b3dlciIgfSB9CisgICBhbGxvY2F0ZShhLGIsYykgICEgYWxsb2NhdGUgaXMgbm8gYmxvY2sg Y29uc3RydWN0LCBoZW5jZToKKyAgISRvbXAgZW5kIGFsbG9jYXRlICAhIHsgZGctZXJyb3Ig IlVuY2xhc3NpZmlhYmxlIE9wZW5NUCBkaXJlY3RpdmUiIH0KKworICAhJG9tcCBhbGxvY2F0 b3JzIGFsbG9jYXRlKGFsaWduKDY0KSA6IGEsIGIpCisgICEkb21wIGFsbG9jYXRvcnMgYWxs b2NhdGUoYWxpZ24oMTI4KSA6IGMpICAhIHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgIS5PTVAg QUxMT0NBVE9SUyBhdCAuMS47IGV4cGVjdGVkIEFMTE9DQVRFIHN0YXRlbWVudCBhZnRlciAh Lk9NUCBBTExPQ0FUT1JTIiB9CisgICBhbGxvY2F0ZShhLGIsYykKK2VuZApkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTZhLmY5MCBiL2dj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS02YS5mOTAKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1OWM2MTBhZTUxCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTZhLmY5 MApAQCAtMCwwICsxLDg1IEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctYWRkaXRp b25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1vcmlnaW5hbCAtZmR1bXAtdHJlZS1naW1wbGUi IH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1mZHVtcC10cmVlLW9tcGxvd2VyIiB9 CisKK21vZHVsZSBvbXBfbGliX2tpbmRzCisgIHVzZSBpc29fY19iaW5kaW5nLCBvbmx5OiBj X2ludCwgY19pbnRwdHJfdAorICBpbXBsaWNpdCBub25lCisgIHByaXZhdGUgOjogY19pbnQs IGNfaW50cHRyX3QKKyAgaW50ZWdlciwgcGFyYW1ldGVyIDo6IG9tcF9hbGxvY2F0b3JfaGFu ZGxlX2tpbmQgPSBjX2ludHB0cl90CisKKyAgaW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9y X2hhbmRsZV9raW5kKSwgJgorICAgICBwYXJhbWV0ZXIgOjogb21wX251bGxfYWxsb2NhdG9y ID0gMAorICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisg ICAgIHBhcmFtZXRlciA6OiBvbXBfZGVmYXVsdF9tZW1fYWxsb2MgPSAxCisgIGludGVnZXIg KGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgcGFyYW1ldGVyIDo6 IG9tcF9sYXJnZV9jYXBfbWVtX2FsbG9jID0gMgorICBpbnRlZ2VyIChraW5kPW9tcF9hbGxv Y2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgIHBhcmFtZXRlciA6OiBvbXBfY29uc3RfbWVt X2FsbG9jID0gMworICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQp LCAmCisgICAgIHBhcmFtZXRlciA6OiBvbXBfaGlnaF9id19tZW1fYWxsb2MgPSA0CisgIGlu dGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgcGFyYW1l dGVyIDo6IG9tcF9sb3dfbGF0X21lbV9hbGxvYyA9IDUKKyAgaW50ZWdlciAoa2luZD1vbXBf YWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICBwYXJhbWV0ZXIgOjogb21wX2Nncm91 cF9tZW1fYWxsb2MgPSA2CisgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVf a2luZCksICYKKyAgICAgcGFyYW1ldGVyIDo6IG9tcF9wdGVhbV9tZW1fYWxsb2MgPSA3Cisg IGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAgcGFy YW1ldGVyIDo6IG9tcF90aHJlYWRfbWVtX2FsbG9jID0gOAorZW5kIG1vZHVsZQorCisKK3N1 YnJvdXRpbmUgZm9vKHgsIHksIGFsKQorICB1c2Ugb21wX2xpYl9raW5kcworICBpbXBsaWNp dCBub25lCisgIAordHlwZSA6OiBteV90eXBlCisgIGludGVnZXIgOjogaQorICBpbnRlZ2Vy IDo6IGoKKyAgcmVhbCA6OiB4CitlbmQgdHlwZQorCisgIGludGVnZXIgIDo6IHgKKyAgaW50 ZWdlciAgOjogeQorICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQp IDo6IGFsCisKKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmFyMQorICBpbnRlZ2VyLCBh bGxvY2F0YWJsZSA6OiB2YXIyCisgIHJlYWwsIGFsbG9jYXRhYmxlIDo6IHZhcjMoOiw6KQor ICB0eXBlIChteV90eXBlKSwgYWxsb2NhdGFibGUgOjogdmFyNAorICBpbnRlZ2VyLCBwb2lu dGVyIDo6IHBpaSwgcGFycig6KQorICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXIKKwor ICBjaGFyYWN0ZXIsIGFsbG9jYXRhYmxlIDo6IHN0cjFhLCBzdHIxYWFycig6KSAKKyAgY2hh cmFjdGVyKGxlbj01KSwgYWxsb2NhdGFibGUgOjogc3RyNWEsIHN0cjVhYXJyKDopCisgIAor ICB4ID0gNSAhIFNvbWUgZXhlY3V0YWJsZSBzdG10CisgICEkb21wIGFsbG9jYXRlCisgIGFs bG9jYXRlKHN0cjFhLCBzdHIxYWFycigxMCksIHN0cjVhLCBzdHI1YWFycigxMCkpCisKKyAg ISRvbXAgYWxsb2NhdGUgKHZhcjEpIGFsbG9jYXRvcihvbXBfZGVmYXVsdF9tZW1fYWxsb2Mp CisgICEkb21wIGFsbG9jYXRlICh2YXIyKSBhbGxvY2F0b3Iob21wX2xhcmdlX2NhcF9tZW1f YWxsb2MpCisgIGFsbG9jYXRlICh2YXIxLCB2YXIyKQorCisgICEkb21wIGFsbG9jYXRlICh2 YXI0KSAgYWxsb2NhdG9yKG9tcF9sb3dfbGF0X21lbV9hbGxvYykKKyAgYWxsb2NhdGUgKHZh cjQpCisgIHZhcjQlaSA9IDUKKworICAhJG9tcCBhbGxvY2F0ZSAodmFyMykgIGFsbG9jYXRv cihvbXBfbG93X2xhdF9tZW1fYWxsb2MpCisgIGFsbG9jYXRlICh2YXIzKHgseSkpCisKKyAg ISRvbXAgYWxsb2NhdGUKKyAgYWxsb2NhdGUocGlpLCBwYXJyKDUpKQorCisgICEgYWxsb2Nh dGUgc3RhdGVtZW50IG5vdCBhc3NvY2lhdGVkIHdpdGggYW4gYWxsb2NhdGUgZGlyZWN0aXZl CisgIGFsbG9jYXRlKHZhcikKK2VuZCBzdWJyb3V0aW5lCisKKyEgeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBhbGxvY2F0ZSBcXChraW5kPWFsbG9j YXRlXFwpIiA1ICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cCAiI3ByYWdtYSBvbXAgYWxsb2NhdGUgXFwoa2luZD1mcmVlXFwpIiAib3JpZ2luYWwiIH0g fQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIGFs bG9jYXRlIFxcKGtpbmQ9YWxsb2NhdGVcXCkiIDUgImdpbXBsZSIgfSB9CishIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcCAiI3ByYWdtYSBvbXAgYWxsb2NhdGUgXFwoa2luZD1mcmVl XFwpIiAiZ2ltcGxlIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICJidWlsdGluX21hbGxvYyIgMTEgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLXRpbWVzICJidWlsdGluX2ZyZWUiIDkgIm9yaWdpbmFsIiB9IH0KKyEg eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJHT01QX2FsbG9jIiAxMCAib21w bG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIkdPTVBf ZnJlZSIgOCAib21wbG93ZXIiIH0gfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9nb21wL2FsbG9jYXRlLTcuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb21wL2FsbG9jYXRlLTcuZjkwCmluZGV4IGRiNzZlOTAxYzA4Li5iODU2MjA0ZDQ4YSAx MDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTcu ZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS03LmY5 MApAQCAtMSwxMyArMSwyMzEgQEAKLSEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1hZGRp dGlvbmFsLW9wdGlvbnMgIi1mbWF4LWVycm9ycz0xMDAwIiB9Cittb2R1bGUgbXlfb21wX2xp YgorICB1c2UgaXNvX2NfYmluZGluZywgb25seTogY19pbnRwdHJfdAorICAhdXNlIG9tcF9s aWIKKyAgaW1wbGljaXQgbm9uZQorICAgICAgICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogb21w X2FsbG9jYXRvcl9oYW5kbGVfa2luZCA9IGNfaW50cHRyX3QKKworICAgICAgICBpbnRlZ2Vy IChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgICAgICAgICAgICAg IHBhcmFtZXRlciA6OiBvbXBfbnVsbF9hbGxvY2F0b3IgPSAwCisKKyAgICAgICAgaW50ZWdl ciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICAgICAgICAgICAg ICBwYXJhbWV0ZXIgOjogb21wX2RlZmF1bHRfbWVtX2FsbG9jID0gMQorICAgICAgICBpbnRl Z2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgICAgICAgICAg ICAgIHBhcmFtZXRlciA6OiBvbXBfbGFyZ2VfY2FwX21lbV9hbGxvYyA9IDIKKyAgICAgICAg aW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICAgICAg ICAgICAgICBwYXJhbWV0ZXIgOjogb21wX2NvbnN0X21lbV9hbGxvYyA9IDMKKyAgICAgICAg aW50ZWdlciAoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgJgorICAgICAgICAg ICAgICAgICBwYXJhbWV0ZXIgOjogb21wX2hpZ2hfYndfbWVtX2FsbG9jID0gNAorICAgICAg ICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAgICAg ICAgICAgICAgIHBhcmFtZXRlciA6OiBvbXBfbG93X2xhdF9tZW1fYWxsb2MgPSA1CisgICAg ICAgIGludGVnZXIgKGtpbmQ9b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCksICYKKyAgICAg ICAgICAgICAgICAgcGFyYW1ldGVyIDo6IG9tcF9jZ3JvdXBfbWVtX2FsbG9jID0gNgorICAg ICAgICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAg ICAgICAgICAgICAgIHBhcmFtZXRlciA6OiBvbXBfcHRlYW1fbWVtX2FsbG9jID0gNworICAg ICAgICBpbnRlZ2VyIChraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCAmCisgICAg ICAgICAgICAgICAgIHBhcmFtZXRlciA6OiBvbXBfdGhyZWFkX21lbV9hbGxvYyA9IDgKKyAg IHR5cGUgdAorICAgICBpbnRlZ2VyLGFsbG9jYXRhYmxlIDo6IGEKKyAgICAgaW50ZWdlcixw b2ludGVyIDo6IGIoOiw6KQorICAgZW5kIHR5cGUgdAorICAgaW50ZWdlciA6OiB1c2VkCitl bmQgbW9kdWxlIG15X29tcF9saWIKKworc3Vicm91dGluZSBvbmUobiwgbXlfYWxsb2MpCisg IHVzZSBteV9vbXBfbGliCisgIGltcGxpY2l0IG5vbmUKK2ludGVnZXIgOjogbgoraW50ZWdl cihraW5kPW9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpLCBpbnRlbnQoaW4pIDo6IG15X2Fs bG9jCisKK2ludGVnZXIgOjogYSxiLGMobiksZCg1KSxlKDIpCitpbnRlZ2VyLCBzYXZlIDo6 IGssbCxtKDUpLHIoMikKK2ludGVnZXIgOjogcSx4LHkoMikseig1KQorY29tbW9uIC9jb20x LyBxLHgKK2NvbW1vbiAvY29tMi8geSx6CitpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiBhbGxv YworaW50ZWdlciwgcG9pbnRlciA6OiBwdHIKK2ludGVnZXIsIHBhcmFtZXRlciA6OiBwcm09 NQorCishJG9tcCBhbGxvY2F0ZShwcm0pIGFsaWduKDY0KSAhIHsgZGctZXJyb3IgIkFyZ3Vt ZW50ICdwcm0nIGF0IC4xLiB0byBkZWNsYXJhdGl2ZSAhLk9NUCBBTExPQ0FURSBkaXJlY3Rp dmUgbXVzdCBiZSBhIHZhcmlhYmxlIiB9CishIHsgZGctZXJyb3IgIlNvcnJ5LCBkZWNsYXJh dGl2ZSAhLk9NUCBBTExPQ0FURSBhdCAuMS4gbm90IHlldCBzdXBwb3J0ZWQiICIiIHsgdGFy Z2V0ICotKi0qIH0gLi0xIH0KKworISRvbXAgYWxsb2NhdGUodXNlZCkgYWxsb2NhdG9yKG9t cF9wdGVhbV9tZW1fYWxsb2MpICAhIHsgZGctZXJyb3IgIkFyZ3VtZW50ICd1c2VkJyBhdCAu MS4gdG8gZGVjbGFyYXRpdmUgIS5PTVAgQUxMT0NBVEUgc2hhbGwgYmUgaW4gdGhlIHNhbWUg c2NvcGUgYXMgdGhlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIiB9CishJG9tcCBhbGxvY2F0ZShu KSBhbGxvY2F0b3Iob21wX3B0ZWFtX21lbV9hbGxvYykgISB7IGRnLWVycm9yICJVbmV4cGVj dGVkIGR1bW15IGFyZ3VtZW50ICduJyBhcyBhcmd1bWVudCBhdCAuMS4gdG8gZGVjbGFyYXRp dmUgIS5PTVAgQUxMT0NBVEUiIH0KKworISRvbXAgYWxsb2NhdGUgKHgpIGFsaWduKDEyOCkg ISB7IGRnLWVycm9yICIneCcgYXQgLjEuIGlzIHBhcnQgb2YgdGhlIGNvbW1vbiBibG9jayAn L2NvbTEvJyBhbmQgbWF5IG9ubHkgYmUgc3BlY2lmaWNlZCBpbXBsaWNpdGx5IHZpYSB0aGUg bmFtZWQgY29tbW9uIGJsb2NrIiB9CisKKyEkb21wIGFsbG9jYXRlIChhLCBiLCBhKSBhbGxv Y2F0b3IgKG9tcF9wdGVhbV9tZW1fYWxsb2MpICEgeyBkZy1lcnJvciAiRHVwbGljYXRlZCB2 YXJpYWJsZSAnYScgaW4gIS5PTVAgQUxMT0NBVEUiIH0KK2NvbnRhaW5zCisKKyAgc3Vicm91 dGluZSBpbm5lcgorICAgICEkb21wIGFsbG9jYXRlKGEpIGFsbG9jYXRvcihvbXBfcHRlYW1f bWVtX2FsbG9jKSAgISB7IGRnLWVycm9yICJBcmd1bWVudCAnYScgYXQgLjEuIHRvIGRlY2xh cmF0aXZlICEuT01QIEFMTE9DQVRFIHNoYWxsIGJlIGluIHRoZSBzYW1lIHNjb3BlIGFzIHRo ZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiIgfQorISB7IGRnLWVycm9yICJTb3JyeSwgZGVjbGFy YXRpdmUgIS5PTVAgQUxMT0NBVEUgYXQgLjEuIG5vdCB5ZXQgc3VwcG9ydGVkIiAiIiB7IHRh cmdldCAqLSotKiB9IC4tMSB9CisgIGVuZAorZW5kCisKK3N1YnJvdXRpbmUgdGhyZWUobikK KyAgdXNlIG15X29tcF9saWIKKyAgaW1wbGljaXQgbm9uZQoraW50ZWdlcix2YWx1ZSA6OiBu CitpbnRlZ2VyIDo6IGEsYixjKG4pLGQoNSksZSgyKQoraW50ZWdlciwgc2F2ZSA6OiBrLGws bSg1KQoraW50ZWdlciA6OiBxLHgseSgyKSx6KDUpLHIKK2NvbW1vbiAvY29tNC8geSx6Cith bGxvY2F0YWJsZSA6OiBxCitwb2ludGVyIDo6IGIKKyEkb21wIGFsbG9jYXRlIChjLCBkKSBh bGxvY2F0b3IgKG9tcF9wdGVhbV9tZW1fYWxsb2MpCishIHsgZGctZXJyb3IgIlNvcnJ5LCBk ZWNsYXJhdGl2ZSAhLk9NUCBBTExPQ0FURSBhdCAuMS4gbm90IHlldCBzdXBwb3J0ZWQiICIi IHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0KKyEkb21wIGFsbG9jYXRlICgvY29tNC8pIGFsbG9j YXRvciAob21wX3B0ZWFtX21lbV9hbGxvYykKKyEkb21wIGFsbG9jYXRlIChjKSBhbGxvY2F0 b3IgKG9tcF9wdGVhbV9tZW1fYWxsb2MpICEgeyBkZy1lcnJvciAiRHVwbGljYXRlZCB2YXJp YWJsZSAnYycgaW4gIS5PTVAgQUxMT0NBVEUiIH0KKyEkb21wIGFsbG9jYXRlICgvY29tNC8p IGFsbG9jYXRvciAob21wX3B0ZWFtX21lbV9hbGxvYykgISB7IGRnLWVycm9yICJEdXBsaWNh dGVkIGNvbW1vbiBibG9jayAnL2NvbTQvJyBpbiAhLk9NUCBBTExPQ0FURSIgfQorCishJG9t cCBhbGxvY2F0ZShxLHgpICAhIHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgYWxsb2NhdGFibGUg dmFyaWFibGUgJ3EnIGF0IC4xLiBpbiBkZWNsYXJhdGl2ZSAhLk9NUCBBTExPQ0FURSBkaXJl Y3RpdmUiIH0KKyEkb21wIGFsbG9jYXRlKGIsZSkgICEgeyBkZy1lcnJvciAiVW5leHBlY3Rl ZCBwb2ludGVyIHZhcmlhYmxlICdiJyBhdCAuMS4gaW4gZGVjbGFyYXRpdmUgIS5PTVAgQUxM T0NBVEUgZGlyZWN0aXZlIiB9CitlbmQKKworc3Vicm91dGluZSBmb3VyKG4pCisgIGludGVn ZXIgOjogcXEsIHJyLCBzcywgdHQsIHV1LCB2dixuCishJG9tcCBhbGxvY2F0ZSAocXEpIGFs aWduKDMrbikgISB7IGRnLWVycm9yICJBTElHTiByZXF1aXJlcyBhIHNjYWxhciBwb3NpdGl2 ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCBleHByZXNzaW9uIGF0IC4xLiB0aGF0IGlz IGEgcG93ZXIgb2YgdHdvIiB9CishIHsgZGctZXJyb3IgIlNvcnJ5LCBkZWNsYXJhdGl2ZSAh Lk9NUCBBTExPQ0FURSBhdCAuMS4gbm90IHlldCBzdXBwb3J0ZWQiICIiIHsgdGFyZ2V0ICot Ki0qIH0gLi0xIH0KKyEkb21wIGFsbG9jYXRlIChycikgYWxpZ24oWzRdKSAhIHsgZGctZXJy b3IgIkFMSUdOIHJlcXVpcmVzIGEgc2NhbGFyIHBvc2l0aXZlIGNvbnN0YW50IGludGVnZXIg YWxpZ25tZW50IGV4cHJlc3Npb24gYXQgLjEuIHRoYXQgaXMgYSBwb3dlciBvZiB0d28iIH0K KyEkb21wIGFsbG9jYXRlIChzcykgYWxpZ24oWzRdKSAhIHsgZGctZXJyb3IgIkFMSUdOIHJl cXVpcmVzIGEgc2NhbGFyIHBvc2l0aXZlIGNvbnN0YW50IGludGVnZXIgYWxpZ25tZW50IGV4 cHJlc3Npb24gYXQgLjEuIHRoYXQgaXMgYSBwb3dlciBvZiB0d28iIH0KKyEkb21wIGFsbG9j YXRlICh0dCkgYWxpZ24oMzIuMCkgISB7IGRnLWVycm9yICJBTElHTiByZXF1aXJlcyBhIHNj YWxhciBwb3NpdGl2ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCBleHByZXNzaW9uIGF0 IC4xLiB0aGF0IGlzIGEgcG93ZXIgb2YgdHdvIiB9CishJG9tcCBhbGxvY2F0ZSAodXUpIGFs aWduKDMxKSAhIHsgZGctZXJyb3IgIkFMSUdOIHJlcXVpcmVzIGEgc2NhbGFyIHBvc2l0aXZl IGNvbnN0YW50IGludGVnZXIgYWxpZ25tZW50IGV4cHJlc3Npb24gYXQgLjEuIHRoYXQgaXMg YSBwb3dlciBvZiB0d28iIH0KK2VuZAorCitzdWJyb3V0aW5lIGZpdmUobixteV9hbGxvYykK KyAgdXNlIG15X29tcF9saWIKKyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2VyIDo6IHFxLCBy ciwgc3MsIHR0LCB1dSwgdnYsbgorICBpbnRlZ2VyKG9tcF9hbGxvY2F0b3JfaGFuZGxlX2tp bmQpIDo6IG15X2FsbG9jCishJG9tcCBhbGxvY2F0ZSAocXEpIGFsbG9jYXRvcigzLjApICAh IHsgZGctZXJyb3IgIkV4cGVjdGVkIGludGVnZXIgZXhwcmVzc2lvbiBvZiB0aGUgJ29tcF9h bGxvY2F0b3JfaGFuZGxlX2tpbmQnIGtpbmQiIH0KKyEgeyBkZy1lcnJvciAiU29ycnksIGRl Y2xhcmF0aXZlICEuT01QIEFMTE9DQVRFIGF0IC4xLiBub3QgeWV0IHN1cHBvcnRlZCIgIiIg eyB0YXJnZXQgKi0qLSogfSAuLTEgfQorISRvbXAgYWxsb2NhdGUgKHJyKSBhbGxvY2F0b3Io M18yKSAgISB7IGRnLWVycm9yICJFeHBlY3RlZCBpbnRlZ2VyIGV4cHJlc3Npb24gb2YgdGhl ICdvbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kJyBraW5kIiB9CishJG9tcCBhbGxvY2F0ZSAo c3MpIGFsbG9jYXRvcihbb21wX3B0ZWFtX21lbV9hbGxvY10pICAhIHsgZGctZXJyb3IgIkV4 cGVjdGVkIGludGVnZXIgZXhwcmVzc2lvbiBvZiB0aGUgJ29tcF9hbGxvY2F0b3JfaGFuZGxl X2tpbmQnIGtpbmQiIH0KKyEkb21wIGFsbG9jYXRlICh0dCkgYWxsb2NhdG9yKG15X2FsbG9j KSAgISBPSworZW5kCisKKworc3Vicm91dGluZSBmaXZlX1NhdmVBbGwobixteV9hbGxvYykK KyAgdXNlIG15X29tcF9saWIKKyAgaW1wbGljaXQgbm9uZQorICBzYXZlCisgIGludGVnZXIg OjogcXEsIHJyLCBzcywgdHQsIHV1LCB2dixuCisgIGludGVnZXIob21wX2FsbG9jYXRvcl9o YW5kbGVfa2luZCkgOjogbXlfYWxsb2MKKyEkb21wIGFsbG9jYXRlIChxcSkgYWxsb2NhdG9y KDMuMCkgICEgeyBkZy1lcnJvciAiUHJlZGVmaW5lZCBhbGxvY2F0b3IgcmVxdWlyZWQgaW4g QUxMT0NBVE9SIGNsYXVzZSBhdCAuMS4gYXMgdGhlIGxpc3QgaXRlbSAncXEnIGF0IC4yLiBo YXMgdGhlIFNBVkUgYXR0cmlidXRlIiB9CishIHsgZGctZXJyb3IgIlNvcnJ5LCBkZWNsYXJh dGl2ZSAhLk9NUCBBTExPQ0FURSBhdCAuMS4gbm90IHlldCBzdXBwb3J0ZWQiICIiIHsgdGFy Z2V0ICotKi0qIH0gLi0xIH0KKyEkb21wIGFsbG9jYXRlIChycikgYWxsb2NhdG9yKDNfMikg ICEgeyBkZy1lcnJvciAiUHJlZGVmaW5lZCBhbGxvY2F0b3IgcmVxdWlyZWQgaW4gQUxMT0NB VE9SIGNsYXVzZSBhdCAuMS4gYXMgdGhlIGxpc3QgaXRlbSAncnInIGF0IC4yLiBoYXMgdGhl IFNBVkUgYXR0cmlidXRlIiB9CishJG9tcCBhbGxvY2F0ZSAoc3MpIGFsbG9jYXRvcihbb21w X3B0ZWFtX21lbV9hbGxvY10pICAhIHsgZGctZXJyb3IgIlByZWRlZmluZWQgYWxsb2NhdG9y IHJlcXVpcmVkIGluIEFMTE9DQVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0IGl0ZW0g J3NzJyBhdCAuMi4gaGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIgfQorISRvbXAgYWxsb2NhdGUg KHR0KSBhbGxvY2F0b3IobXlfYWxsb2MpICAhIHsgZGctZXJyb3IgIlByZWRlZmluZWQgYWxs b2NhdG9yIHJlcXVpcmVkIGluIEFMTE9DQVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0 IGl0ZW0gJ3R0JyBhdCAuMi4gaGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIgfQorZW5kCiAKLXN1 YnJvdXRpbmUgYmFyKGEpCisKK3N1YnJvdXRpbmUgZml2ZV9TYXZlKG4sbXlfYWxsb2MpCisg IHVzZSBteV9vbXBfbGliCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciA6OiBuCisgIGlu dGVnZXIsIHNhdmUgOjogcXEsIHJyLCBzcywgdHQsIHV1LCB2dgorICBpbnRlZ2VyKG9tcF9h bGxvY2F0b3JfaGFuZGxlX2tpbmQpIDo6IG15X2FsbG9jCishJG9tcCBhbGxvY2F0ZSAocXEp IGFsbG9jYXRvcigzLjApICAhIHsgZGctZXJyb3IgIlByZWRlZmluZWQgYWxsb2NhdG9yIHJl cXVpcmVkIGluIEFMTE9DQVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0IGl0ZW0gJ3Fx JyBhdCAuMi4gaGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIgfQorISB7IGRnLWVycm9yICJTb3Jy eSwgZGVjbGFyYXRpdmUgIS5PTVAgQUxMT0NBVEUgYXQgLjEuIG5vdCB5ZXQgc3VwcG9ydGVk IiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9CishJG9tcCBhbGxvY2F0ZSAocnIpIGFsbG9j YXRvcigzXzIpICAhIHsgZGctZXJyb3IgIlByZWRlZmluZWQgYWxsb2NhdG9yIHJlcXVpcmVk IGluIEFMTE9DQVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0IGl0ZW0gJ3JyJyBhdCAu Mi4gaGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIgfQorISRvbXAgYWxsb2NhdGUgKHNzKSBhbGxv Y2F0b3IoW29tcF9wdGVhbV9tZW1fYWxsb2NdKSAgISB7IGRnLWVycm9yICJQcmVkZWZpbmVk IGFsbG9jYXRvciByZXF1aXJlZCBpbiBBTExPQ0FUT1IgY2xhdXNlIGF0IC4xLiBhcyB0aGUg bGlzdCBpdGVtICdzcycgYXQgLjIuIGhhcyB0aGUgU0FWRSBhdHRyaWJ1dGUiIH0KKyEkb21w IGFsbG9jYXRlICh0dCkgYWxsb2NhdG9yKG15X2FsbG9jKSAgISB7IGRnLWVycm9yICJQcmVk ZWZpbmVkIGFsbG9jYXRvciByZXF1aXJlZCBpbiBBTExPQ0FUT1IgY2xhdXNlIGF0IC4xLiBh cyB0aGUgbGlzdCBpdGVtICd0dCcgYXQgLjIuIGhhcyB0aGUgU0FWRSBhdHRyaWJ1dGUiIH0K K2VuZAorCittb2R1bGUgZml2ZV9Nb2R1bGUKKyAgdXNlIG15X29tcF9saWIKKyAgaW1wbGlj aXQgbm9uZQorICBpbnRlZ2VyLCBzYXZlIDo6IHFxLCByciwgc3MsIHR0LCB1dSwgdnYsbgor ICBpbnRlZ2VyKG9tcF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpIDo6IG15X2FsbG9jCishJG9t cCBhbGxvY2F0ZSAocXEpIGFsbG9jYXRvcigzLjApICAhIHsgZGctZXJyb3IgIlByZWRlZmlu ZWQgYWxsb2NhdG9yIHJlcXVpcmVkIGluIEFMTE9DQVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRo ZSBsaXN0IGl0ZW0gJ3FxJyBhdCAuMi4gaGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIgfQorISB7 IGRnLWVycm9yICJTb3JyeSwgZGVjbGFyYXRpdmUgIS5PTVAgQUxMT0NBVEUgYXQgLjEuIG5v dCB5ZXQgc3VwcG9ydGVkIiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9CishJG9tcCBhbGxv Y2F0ZSAocnIpIGFsbG9jYXRvcigzXzIpICAhIHsgZGctZXJyb3IgIlByZWRlZmluZWQgYWxs b2NhdG9yIHJlcXVpcmVkIGluIEFMTE9DQVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0 IGl0ZW0gJ3JyJyBhdCAuMi4gaGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIgfQorISRvbXAgYWxs b2NhdGUgKHNzKSBhbGxvY2F0b3IoW29tcF9wdGVhbV9tZW1fYWxsb2NdKSAgISB7IGRnLWVy cm9yICJQcmVkZWZpbmVkIGFsbG9jYXRvciByZXF1aXJlZCBpbiBBTExPQ0FUT1IgY2xhdXNl IGF0IC4xLiBhcyB0aGUgbGlzdCBpdGVtICdzcycgYXQgLjIuIGhhcyB0aGUgU0FWRSBhdHRy aWJ1dGUiIH0KKyEkb21wIGFsbG9jYXRlICh0dCkgYWxsb2NhdG9yKG15X2FsbG9jKSAgISB7 IGRnLWVycm9yICJQcmVkZWZpbmVkIGFsbG9jYXRvciByZXF1aXJlZCBpbiBBTExPQ0FUT1Ig Y2xhdXNlIGF0IC4xLiBhcyB0aGUgbGlzdCBpdGVtICd0dCcgYXQgLjIuIGhhcyB0aGUgU0FW RSBhdHRyaWJ1dGUiIH0KK2VuZCBtb2R1bGUKKworcHJvZ3JhbSBmaXZlX3Byb2dyYW0KKyAg dXNlIG15X29tcF9saWIKKyAgaW1wbGljaXQgbm9uZQorICBpbnRlZ2VyLCBzYXZlIDo6IHFx LCByciwgc3MsIHR0LCB1dSwgdnYsbgorICBpbnRlZ2VyKG9tcF9hbGxvY2F0b3JfaGFuZGxl X2tpbmQpIDo6IG15X2FsbG9jCishJG9tcCBhbGxvY2F0ZSAocXEpIGFsbG9jYXRvcigzLjAp ICAhIHsgZGctZXJyb3IgIlByZWRlZmluZWQgYWxsb2NhdG9yIHJlcXVpcmVkIGluIEFMTE9D QVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0IGl0ZW0gJ3FxJyBhdCAuMi4gaGFzIHRo ZSBTQVZFIGF0dHJpYnV0ZSIgfQorISB7IGRnLWVycm9yICJTb3JyeSwgZGVjbGFyYXRpdmUg IS5PTVAgQUxMT0NBVEUgYXQgLjEuIG5vdCB5ZXQgc3VwcG9ydGVkIiAiIiB7IHRhcmdldCAq LSotKiB9IC4tMSB9CishJG9tcCBhbGxvY2F0ZSAocnIpIGFsbG9jYXRvcigzXzIpICAhIHsg ZGctZXJyb3IgIlByZWRlZmluZWQgYWxsb2NhdG9yIHJlcXVpcmVkIGluIEFMTE9DQVRPUiBj bGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0IGl0ZW0gJ3JyJyBhdCAuMi4gaGFzIHRoZSBTQVZF IGF0dHJpYnV0ZSIgfQorISRvbXAgYWxsb2NhdGUgKHNzKSBhbGxvY2F0b3IoW29tcF9wdGVh bV9tZW1fYWxsb2NdKSAgISB7IGRnLWVycm9yICJQcmVkZWZpbmVkIGFsbG9jYXRvciByZXF1 aXJlZCBpbiBBTExPQ0FUT1IgY2xhdXNlIGF0IC4xLiBhcyB0aGUgbGlzdCBpdGVtICdzcycg YXQgLjIuIGhhcyB0aGUgU0FWRSBhdHRyaWJ1dGUiIH0KKyEkb21wIGFsbG9jYXRlICh0dCkg YWxsb2NhdG9yKG15X2FsbG9jKSAgISB7IGRnLWVycm9yICJQcmVkZWZpbmVkIGFsbG9jYXRv ciByZXF1aXJlZCBpbiBBTExPQ0FUT1IgY2xhdXNlIGF0IC4xLiBhcyB0aGUgbGlzdCBpdGVt ICd0dCcgYXQgLjIuIGhhcyB0aGUgU0FWRSBhdHRyaWJ1dGUiIH0KK2VuZCBwcm9ncmFtCisK KworCitzdWJyb3V0aW5lIHNpeChuLG15X2FsbG9jKQorICB1c2UgbXlfb21wX2xpYgorICBp bXBsaWNpdCBub25lCisgIGludGVnZXIgOjogcXEsIHJyLCBzcywgdHQsIHV1LCB2dixuCisg IGNvbW1vbiAvY29tNnFxLyBxcQorICBjb21tb24gL2NvbTZyci8gcnIKKyAgY29tbW9uIC9j b202c3MvIHNzCisgIGNvbW1vbiAvY29tNnR0LyB0dAorICBpbnRlZ2VyKG9tcF9hbGxvY2F0 b3JfaGFuZGxlX2tpbmQpIDo6IG15X2FsbG9jCisKKyEkb21wIGFsbG9jYXRlICgvY29tNnFx LykgYWxsb2NhdG9yKDMuMCkgICEgeyBkZy1lcnJvciAiUHJlZGVmaW5lZCBhbGxvY2F0b3Ig cmVxdWlyZWQgaW4gQUxMT0NBVE9SIGNsYXVzZSBhdCAuMS4gYXMgdGhlIGxpc3QgaXRlbSAn L2NvbTZxcS8nIGF0IC4yLiBoYXMgdGhlIFNBVkUgYXR0cmlidXRlIiB9CishIHsgZGctZXJy b3IgIlNvcnJ5LCBkZWNsYXJhdGl2ZSAhLk9NUCBBTExPQ0FURSBhdCAuMS4gbm90IHlldCBz dXBwb3J0ZWQiICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0KKyEkb21wIGFsbG9jYXRlICgv Y29tNnJyLykgYWxsb2NhdG9yKDNfMikgICEgeyBkZy1lcnJvciAiUHJlZGVmaW5lZCBhbGxv Y2F0b3IgcmVxdWlyZWQgaW4gQUxMT0NBVE9SIGNsYXVzZSBhdCAuMS4gYXMgdGhlIGxpc3Qg aXRlbSAnL2NvbTZyci8nIGF0IC4yLiBoYXMgdGhlIFNBVkUgYXR0cmlidXRlIiB9CishJG9t cCBhbGxvY2F0ZSAoL2NvbTZzcy8pIGFsbG9jYXRvcihbb21wX3B0ZWFtX21lbV9hbGxvY10p ICAhIHsgZGctZXJyb3IgIlByZWRlZmluZWQgYWxsb2NhdG9yIHJlcXVpcmVkIGluIEFMTE9D QVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0IGl0ZW0gJy9jb202c3MvJyBhdCAuMi4g aGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIgfQorISRvbXAgYWxsb2NhdGUgKC9jb202dHQvKSBh bGxvY2F0b3IobXlfYWxsb2MpICAhIHsgZGctZXJyb3IgIlByZWRlZmluZWQgYWxsb2NhdG9y IHJlcXVpcmVkIGluIEFMTE9DQVRPUiBjbGF1c2UgYXQgLjEuIGFzIHRoZSBsaXN0IGl0ZW0g Jy9jb202dHQvJyBhdCAuMi4gaGFzIHRoZSBTQVZFIGF0dHJpYnV0ZSIgfQorZW5kCisKKwor c3Vicm91dGluZSB0d28oKQorICB1c2UgbXlfb21wX2xpYgorICBpbXBsaWNpdCBub25lCisg IGludGVnZXIsYWxsb2NhdGFibGUgOjogcXEsIHJyLCBzcywgdHQsIHV1LCB2dixuCisgIGlu dGVnZXIob21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCkgOjogbXlfYWxsb2MKKworICBjYWxs IGZvbygpCishJG9tcCBhbGxvY2F0ZSAocXEpIGFsbG9jYXRvcigzLjApICAhIHsgZGctZXJy b3IgIkV4cGVjdGVkIGludGVnZXIgZXhwcmVzc2lvbiBvZiB0aGUgJ29tcF9hbGxvY2F0b3Jf aGFuZGxlX2tpbmQnIGtpbmQiIH0KK2FsbG9jYXRlKHFxKQorISRvbXAgYWxsb2NhdGUgKHJy KSBhbGxvY2F0b3IoM18yKSAgISB7IGRnLWVycm9yICJFeHBlY3RlZCBpbnRlZ2VyIGV4cHJl c3Npb24gb2YgdGhlICdvbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kJyBraW5kIiB9CithbGxv Y2F0ZShycikKKyEkb21wIGFsbG9jYXRlIChzcykgYWxsb2NhdG9yKFtvbXBfcHRlYW1fbWVt X2FsbG9jXSkgICEgeyBkZy1lcnJvciAiRXhwZWN0ZWQgaW50ZWdlciBleHByZXNzaW9uIG9m IHRoZSAnb21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCcga2luZCIgfQorYWxsb2NhdGUoc3Mp CishJG9tcCBhbGxvY2F0ZSAodHQpIGFsbG9jYXRvcihteV9hbGxvYykgICEgT0sKK2FsbG9j YXRlKHR0KQorZW5kCisKK3N1YnJvdXRpbmUgdHdvX3B0cigpCisgIHVzZSBteV9vbXBfbGli CiAgIGltcGxpY2l0IG5vbmUKLSAgaW50ZWdlciAgOjogYQotICBpbnRlZ2VyLCBhbGxvY2F0 YWJsZSA6OiB2YXIKLSEkb21wIHRhcmdldAotICAhJG9tcCBhbGxvY2F0ZSAodmFyKSAhIHsg ZGctZXJyb3IgIidhbGxvY2F0ZScgZGlyZWN0aXZlIG11c3Qgc3BlY2lmeSBhbiBhbGxvY2F0 b3IgaGVyZSIgfQotICBhbGxvY2F0ZSAodmFyKQotISRvbXAgZW5kIHRhcmdldAorICBpbnRl Z2VyLHBvaW50ZXIgOjogcXEsIHJyLCBzcywgdHQsIHV1LCB2dixuCisgIGludGVnZXIob21w X2FsbG9jYXRvcl9oYW5kbGVfa2luZCkgOjogbXlfYWxsb2MKKworICBjYWxsIGZvbygpCish JG9tcCBhbGxvY2F0ZSAocXEpIGFsaWduKDMrbikgISB7IGRnLWVycm9yICJBTElHTiByZXF1 aXJlcyBhIHNjYWxhciBwb3NpdGl2ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCBleHBy ZXNzaW9uIGF0IC4xLiB0aGF0IGlzIGEgcG93ZXIgb2YgdHdvIiB9CithbGxvY2F0ZShxcSkK KyEkb21wIGFsbG9jYXRlIChycikgYWxpZ24oWzRdKSAhIHsgZGctZXJyb3IgIkFMSUdOIHJl cXVpcmVzIGEgc2NhbGFyIHBvc2l0aXZlIGNvbnN0YW50IGludGVnZXIgYWxpZ25tZW50IGV4 cHJlc3Npb24gYXQgLjEuIHRoYXQgaXMgYSBwb3dlciBvZiB0d28iIH0KK2FsbG9jYXRlKHJy KQorISRvbXAgYWxsb2NhdGUgKHNzKSBhbGlnbihbNF0pICEgeyBkZy1lcnJvciAiQUxJR04g cmVxdWlyZXMgYSBzY2FsYXIgcG9zaXRpdmUgY29uc3RhbnQgaW50ZWdlciBhbGlnbm1lbnQg ZXhwcmVzc2lvbiBhdCAuMS4gdGhhdCBpcyBhIHBvd2VyIG9mIHR3byIgfQorYWxsb2NhdGUo c3MpCishJG9tcCBhbGxvY2F0ZSAodHQpIGFsaWduKDMyLjApICEgeyBkZy1lcnJvciAiQUxJ R04gcmVxdWlyZXMgYSBzY2FsYXIgcG9zaXRpdmUgY29uc3RhbnQgaW50ZWdlciBhbGlnbm1l bnQgZXhwcmVzc2lvbiBhdCAuMS4gdGhhdCBpcyBhIHBvd2VyIG9mIHR3byIgfQorYWxsb2Nh dGUodHQpCishJG9tcCBhbGxvY2F0ZSAodXUpIGFsaWduKDMxKSAhIHsgZGctZXJyb3IgIkFM SUdOIHJlcXVpcmVzIGEgc2NhbGFyIHBvc2l0aXZlIGNvbnN0YW50IGludGVnZXIgYWxpZ25t ZW50IGV4cHJlc3Npb24gYXQgLjEuIHRoYXQgaXMgYSBwb3dlciBvZiB0d28iIH0KK2FsbG9j YXRlKHV1KQorZW5kCisKK3N1YnJvdXRpbmUgbmV4dCgpCisgIHVzZSBteV9vbXBfbGliCisg IGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlcixhbGxvY2F0YWJsZSA6OiBxcSwgcnIsIHNzLCB0 dCwgdXUsIHZ2LG4KKyAgaW50ZWdlcihvbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSA6OiBt eV9hbGxvYworCisgICEkb21wIGFsbG9jYXRlKHFxKSAgISB7IGRnLWVycm9yICInIS5PTVAg QUxMT0NBVEUnIGRpcmVjdGl2ZSBhdCAuMS4gYXNzb2NpYXRlZCB3aXRoIGFuIEFMTE9DQVRF IHN0bXQgbXVzdCBiZSBwcmVjZWRlZCBieSBhbiBleGVjdXRhYmxlIHN0YXRlbWVudCBvciBP cGVuTVAgY29uc3RydWN0OyBub3RlIHRoZSB2YXJpYWJsZXMgaW4gdGhlIGxpc3QgYWxsIGhh dmUgdGhlIGFsbG9jYXRhYmxlIG9yIHBvaW50ZXIgYXR0cmlidXRlIiB9CisgICBhbGxvY2F0 ZShxcSxycikKIAotZW5kIHN1YnJvdXRpbmUKKyAgISRvbXAgYWxsb2NhdGUodXUsdHQpCisg ICEkb21wIGFsbG9jYXRlKHR0KSAgISB7IGRnLXdhcm5pbmcgIid0dCcgYXBwZWFycyBtb3Jl IHRoYW4gb25jZSBpbiAnYWxsb2NhdGUiIH0KKyAgIGFsbG9jYXRlKHV1LHR0KQogCisgICEk b21wIGFsbG9jYXRlKHV1LHZ2KSAhIHsgZGctZXJyb3IgIid1dScgc3BlY2lmaWVkIGluICdh bGxvY2F0ZScgYXQgLjEuIGJ1dCBub3QgaW4gdGhlIGFzc29jaWF0ZWQgQUxMT0NBVEUgc3Rh dGVtZW50IiB9CisgICBhbGxvY2F0ZSh2dikKK2VuZApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTdhLmY5MCBiL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS03YS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmRiNzZlOTAxYzA4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTdhLmY5MApAQCAtMCwwICsx LDEzIEBACishIHsgZGctZG8gY29tcGlsZSB9CisKK3N1YnJvdXRpbmUgYmFyKGEpCisgIGlt cGxpY2l0IG5vbmUKKyAgaW50ZWdlciAgOjogYQorICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6 OiB2YXIKKyEkb21wIHRhcmdldAorICAhJG9tcCBhbGxvY2F0ZSAodmFyKSAhIHsgZGctZXJy b3IgIidhbGxvY2F0ZScgZGlyZWN0aXZlIG11c3Qgc3BlY2lmeSBhbiBhbGxvY2F0b3IgaGVy ZSIgfQorICBhbGxvY2F0ZSAodmFyKQorISRvbXAgZW5kIHRhcmdldAorCitlbmQgc3Vicm91 dGluZQorCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxs b2NhdGUtOC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUt OGEuZjkwCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBnY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtOC5mOTAKcmVuYW1lIHRvIGdjYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS04YS5mOTAKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS05YS5mOTAgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtOWEuZjkwCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zOWQ5NGUzMDQxMAotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS05YS5mOTAKQEAgLTAs MCArMSwxNSBAQAorISB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtb21w bG93ZXIiIH0KK3N1YnJvdXRpbmUgZigpCisgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IEEs IEIKKworICAhJG9tcCBhbGxvY2F0b3JzIGFsbG9jYXRlKGFsaWduKDEyOCk6IEEpCisgIGFs bG9jYXRlKEEpCisKKyAgISRvbXAgYWxsb2NhdGUoQikgYWxpZ24oMjU2KQorICBhbGxvY2F0 ZShCKQorZW5kCisKKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJhID0gX19idWls dGluX0dPTVBfYWxsb2MgXFwoMTI4LCA0LCAwQlxcKTsiICJvbXBsb3dlciIgfSB9CishIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiYiA9IF9fYnVpbHRpbl9HT01QX2FsbG9jIFxc KDI1NiwgNCwgMEJcXCk7IiAib21wbG93ZXIiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAgIl9fYnVpbHRpbl9HT01QX2ZyZWUgXFwoYiwgMEJcXCk7IiAib21wbG93ZXIi IH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIl9fYnVpbHRpbl9HT01QX2Zy ZWUgXFwoYSwgMEJcXCk7IiAib21wbG93ZXIiIH0gfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRvcnMtMS5mOTAgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdG9ycy0xLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uYjM5ZjZkMjcyYzEKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdG9ycy0xLmY5MApAQCAtMCww ICsxLDI4IEBACitpbXBsaWNpdCBub25lCitpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiBhLCBi CitpbnRlZ2VyIDo6IHEKK2ludGVnZXIgOjogYXJyKDIpCisKKyEkb21wIGFsbG9jYXRvcnMg YWxsb2NhdGUoYWxpZ24oNjQpOiBhKQorYmxvY2sgICEgeyBkZy1lcnJvciAiZXhwZWN0ZWQg QUxMT0NBVEUgc3RhdGVtZW50IGFmdGVyICEuT01QIEFMTE9DQVRPUlMiIH0KK2VuZCBibG9j ayAhIHsgZGctZXJyb3IgIkV4cGVjdGluZyBFTkQgUFJPR1JBTSBzdGF0ZW1lbnQiIH0KKwor CishJG9tcCBhbGxvY2F0b3JzIGFsbG9jYXRlKGFsaWduKDY0KTogYSkKKyAgYWxsb2NhdGUo YSwgYikgICEgT0sKKyEkb21wIGVuZCBhbGxvY2F0b3JzCisKKyEkb21wIGFsbG9jYXRvcnMg YWxsb2NhdGUoYWxpZ24oMTI4KTogYikKKyAgYWxsb2NhdGUoYSwgYikgICEgT0sgKGFzc3Vt aW5nIG5vdCBhbGxvY2F0ZWQpCisKKworISRvbXAgYWxsb2NhdG9ycyBhbGxvY2F0ZShhbGln big2NCk6IGEpCisgIGFsbG9jYXRlKGEsIGIsIHN0YXQ9YXJyKSAgISB7IGRnLWVycm9yICJT dGF0LXZhcmlhYmxlIGF0IC4xLiBtdXN0IGJlIGEgc2NhbGFyIElOVEVHRVIgdmFyaWFibGUi IH0KKyEkb21wIGVuZCBhbGxvY2F0b3JzCisKKworISRvbXAgYWxsb2NhdG9ycyBhbGxvY2F0 ZShhbGlnbig2NCk6IGEpCisgIGFsbG9jYXRlKHEpICAhIHsgZGctZXJyb3IgImlzIG5laXRo ZXIgYSBkYXRhIHBvaW50ZXIgbm9yIGFuIGFsbG9jYXRhYmxlIHZhcmlhYmxlIiB9CishJG9t cCBlbmQgYWxsb2NhdG9ycyAhIHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgIS5PTVAgRU5EIEFM TE9DQVRPUlMiIH0KKworZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2dvbXAvYWxsb2NhdG9ycy0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Z29tcC9hbGxvY2F0b3JzLTIuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi42ZmI4MDg3OWVmNwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0b3JzLTIuZjkwCkBAIC0wLDAgKzEsMjIgQEAKK2lt cGxpY2l0IG5vbmUKK2ludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGEsIGIKK2ludGVnZXIgOjog cQoraW50ZWdlciA6OiBhcnIoMikKKworISRvbXAgYWxsb2NhdG9ycyBhbGxvY2F0ZShhbGln big2NCk6IGEpCisgIGFsbG9jYXRlKGEsIGIpICAhIE9LCishJG9tcCBlbmQgYWxsb2NhdG9y cworCishJG9tcCBhbGxvY2F0b3JzIGFsbG9jYXRlKGFsaWduKDEyOCk6IGIpCisgIGFsbG9j YXRlKGEsIGIpICAhIE9LIChhc3N1bWluZyBub3QgYWxsb2NhdGVkKQorCisKKyEkb21wIGFs bG9jYXRvcnMgYWxsb2NhdGUoYWxpZ24oNjIuMCk6IGEpICEgeyBkZy1lcnJvciAiYSBzY2Fs YXIgcG9zaXRpdmUgY29uc3RhbnQgaW50ZWdlciBhbGlnbm1lbnQgZXhwcmVzc2lvbiIgfQor IGFsbG9jYXRlKGEpCisKKworISRvbXAgYWxsb2NhdG9ycyBhbGxvY2F0ZShhbGlnbig2NCk6 IGEsIGIpICAhIHsgZGctZXJyb3IgIidiJyBzcGVjaWZpZWQgaW4gJ2FsbG9jYXRlJyBhdCBc XCgxXFwpIGJ1dCBub3QgaW4gdGhlIGFzc29jaWF0ZWQgQUxMT0NBVEUgc3RhdGVtZW50IiB9 CisgYWxsb2NhdGUoYSkKKyEkb21wIGVuZCBhbGxvY2F0b3JzCisKK2VuZApkaWZmIC0tZ2l0 IGEvZ2NjL3RyZWUtY29yZS5oIGIvZ2NjL3RyZWUtY29yZS5oCmluZGV4IDU4Y2YzYzViYWY4 Li5lYmU4OTEwZDdjYiAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtY29yZS5oCisrKyBiL2djYy90 cmVlLWNvcmUuaApAQCAtNTM2LDkgKzUzNiw2IEBAIGVudW0gb21wX2NsYXVzZV9jb2RlIHsK ICAgLyogT3BlbkFDQyBjbGF1c2U6IG5vaG9zdC4gICovCiAgIE9NUF9DTEFVU0VfTk9IT1NU LAogCi0gIC8qIE9wZW5NUCBjbGF1c2U6IGFsbG9jYXRvci4gICovCi0gIE9NUF9DTEFVU0Vf QUxMT0NBVE9SLAotCiAgIC8qIE9wZW5NUCBjbGF1c2U6IHVzZXNfYWxsb2NhdG9ycy4gICov CiAgIE9NUF9DTEFVU0VfVVNFU19BTExPQ0FUT1JTLAogCmRpZmYgLS1naXQgYS9nY2MvdHJl ZS1wcmV0dHktcHJpbnQuY2MgYi9nY2MvdHJlZS1wcmV0dHktcHJpbnQuY2MKaW5kZXggMjAw MWE0N2JmODkuLjc3YTU4Zjk4ZWQxIDEwMDY0NAotLS0gYS9nY2MvdHJlZS1wcmV0dHktcHJp bnQuY2MKKysrIGIvZ2NjL3RyZWUtcHJldHR5LXByaW50LmNjCkBAIC04MTUsMjAgKzgxNSw2 IEBAIGR1bXBfb21wX2NsYXVzZSAocHJldHR5X3ByaW50ZXIgKnBwLCB0cmVlIGNsYXVzZSwg aW50IHNwYywgZHVtcF9mbGFnc190IGZsYWdzKQogICAgICAgcHBfcmlnaHRfcGFyZW4gKHBw KTsKICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBPTVBfQ0xBVVNFX0FMTE9DQVRPUjoKLSAg ICAgIHBwX3N0cmluZyAocHAsICIoIik7Ci0gICAgICBkdW1wX2dlbmVyaWNfbm9kZSAocHAs IE9NUF9BTExPQ0FURV9ERUNMIChjbGF1c2UpLAotCQkJIHNwYywgZmxhZ3MsIGZhbHNlKTsK LSAgICAgIGlmIChPTVBfQUxMT0NBVEVfQUxMT0NBVE9SIChjbGF1c2UpKQotCXsKLQkgIHBw X3N0cmluZyAocHAsICI6YWxsb2NhdG9yKCIpOwotCSAgZHVtcF9nZW5lcmljX25vZGUgKHBw LCBPTVBfQUxMT0NBVEVfQUxMT0NBVE9SIChjbGF1c2UpLAotCQkJICAgICBzcGMsIGZsYWdz LCBmYWxzZSk7Ci0JICBwcF9yaWdodF9wYXJlbiAocHApOwotCX0KLSAgICAgIHBwX3JpZ2h0 X3BhcmVuIChwcCk7Ci0gICAgICBicmVhazsKLQogICAgIGNhc2UgT01QX0NMQVVTRV9BTExP Q0FURToKICAgICAgIHBwX3N0cmluZyAocHAsICJhbGxvY2F0ZSgiKTsKICAgICAgIGlmIChP TVBfQ0xBVVNFX0FMTE9DQVRFX0FMTE9DQVRPUiAoY2xhdXNlKSkKZGlmZiAtLWdpdCBhL2dj Yy90cmVlLmNjIGIvZ2NjL3RyZWUuY2MKaW5kZXggZDQyYWYxZGY4YmQuLmZiYWQyNDkzNTgz IDEwMDY0NAotLS0gYS9nY2MvdHJlZS5jYworKysgYi9nY2MvdHJlZS5jYwpAQCAtMzI4LDcg KzMyOCw2IEBAIHVuc2lnbmVkIGNvbnN0IGNoYXIgb21wX2NsYXVzZV9udW1fb3BzW10gPQog ICAwLCAvKiBPTVBfQ0xBVVNFX0lGX1BSRVNFTlQgKi8KICAgMCwgLyogT01QX0NMQVVTRV9G SU5BTElaRSAqLwogICAwLCAvKiBPTVBfQ0xBVVNFX05PSE9TVCAqLwotICAyLCAvKiBPTVBf Q0xBVVNFX0FMTE9DQVRPUiAqLwogICAzLCAvKiBPTVBfQ0xBVVNFX1VTRVNfQUxMT0NBVE9S UyAqLwogICAxLCAvKiBPTVBfQ0xBVVNFX1VOUk9MTF9GVUxMICovCiAgIDEsIC8qIE9NUF9D TEFVU0VfVU5ST0xMX05PTkUgKi8KZGlmZiAtLWdpdCBhL2djYy90cmVlLmggYi9nY2MvdHJl ZS5oCmluZGV4IDVmM2JkODJhYjFlLi4zM2ZkNDg5MzVjYiAxMDA2NDQKLS0tIGEvZ2NjL3Ry ZWUuaAorKysgYi9nY2MvdHJlZS5oCkBAIC0xOTQzLDE1ICsxOTQzLDYgQEAgY2xhc3MgYXV0 b19zdXBwcmVzc19sb2NhdGlvbl93cmFwcGVycwogI2RlZmluZSBPTVBfQ0xBVVNFX0FMTE9D QVRFX0FMSUdOKE5PREUpIFwKICAgT01QX0NMQVVTRV9PUEVSQU5EIChPTVBfQ0xBVVNFX1NV QkNPREVfQ0hFQ0sgKE5PREUsIE9NUF9DTEFVU0VfQUxMT0NBVEUpLCAyKQogCi0vKiBNYXkg YmUgd2UgY2FuIHVzZSBPTVBfQ0xBVVNFX0RFQ0wgYnV0IHRoZSBJIGFtIG5vdCBzdXJlIHdo ZXJlIHRvIHBsYWNlCi0gICBPTVBfQ0xBVVNFX0FMTE9DQVRPUiBpbiBvbXBfY2xhdXNlX2Nv ZGUuICAqLwotCi0jZGVmaW5lIE9NUF9BTExPQ0FURV9ERUNMKE5PREUpIFwKLSAgT01QX0NM QVVTRV9PUEVSQU5EIChPTVBfQ0xBVVNFX1NVQkNPREVfQ0hFQ0sgKE5PREUsIE9NUF9DTEFV U0VfQUxMT0NBVE9SKSwgMCkKLQotI2RlZmluZSBPTVBfQUxMT0NBVEVfQUxMT0NBVE9SKE5P REUpIFwKLSAgT01QX0NMQVVTRV9PUEVSQU5EIChPTVBfQ0xBVVNFX1NVQkNPREVfQ0hFQ0sg KE5PREUsIE9NUF9DTEFVU0VfQUxMT0NBVE9SKSwgMSkKLQogLyogVHJ1ZSBpZiBhbiBBTExP Q0FURSBjbGF1c2Ugd2FzIHByZXNlbnQgb24gYSBjb21iaW5lZCBvciBjb21wb3NpdGUKICAg IGNvbnN0cnVjdCBhbmQgdGhlIGNvZGUgZm9yIHNwbGl0dGluZyB0aGUgY2xhdXNlcyBoYXMg YWxyZWFkeSBwZXJmb3JtZWQKICAgIGNoZWNraW5nIGlmIHRoZSBsaXN0ZWQgdmFyaWFibGUg aGFzIGV4cGxpY2l0IHByaXZhdGl6YXRpb24gb24gdGhlCmRpZmYgLS1naXQgYS9saWJnb21w L0NoYW5nZUxvZy5vbXAgYi9saWJnb21wL0NoYW5nZUxvZy5vbXAKaW5kZXggNDNlY2JlYTA2 ZGQuLjZkZjAxYmVkZjJlIDEwMDY0NAotLS0gYS9saWJnb21wL0NoYW5nZUxvZy5vbXAKKysr IGIvbGliZ29tcC9DaGFuZ2VMb2cub21wCkBAIC0xLDMgKzEsMTAgQEAKKzIwMjMtMTAtMjYg IFRvYmlhcyBCdXJudXMgIDx0b2JpYXNAY29kZXNvdXJjZXJ5LmNvbT4KKwkgICAgQ2h1bmct TGluIFRhbmcgIDxjbHRhbmdAY29kZXNvdXJjZXJ5LmNvbT4KKworCSogdGVzdHN1aXRlL2xp YmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS0yYS5mOTA6IEFkZCBleGVjIHN0bXQuCisJKiB0ZXN0 c3VpdGUvbGliZ29tcC5mb3J0cmFuL2FsbG9jYXRlLTQuZjkwOiBVcGRhdGUgZGctZXJyb3IK KwkqIHRlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vYWxsb2NhdGUtNS5mOTA6IExpa2V3aXNl OyBhZGQgZXhlYyBzdG10LgorCiAyMDIzLTA5LTIwICBUb2JpYXMgQnVybnVzICA8dG9iaWFz QGNvZGVzb3VyY2VyeS5jb20+CiAKIAlCYWNrcG9ydGVkIGZyb20gbWFzdGVyOgpkaWZmIC0t Z2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2FsbG9jYXRlLTJhLmY5 MCBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS0yYS5mOTAK aW5kZXggMjIxOWYxMDdmZTcuLjUxMGE0ZjcwMjNkIDEwMDY0NAotLS0gYS9saWJnb21wL3Rl c3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vYWxsb2NhdGUtMmEuZjkwCisrKyBiL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS0yYS5mOTAKQEAgLTIyLDYgKzIy LDcgQEAgc3Vicm91dGluZSBmb28gKHgsIHksIGgpCiAgIGludGVnZXIgKGtpbmQ9b21wX2Fs bG9jYXRvcl9oYW5kbGVfa2luZCkgOjogaAogICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2 YXIxCiAKKyAgISRvbXAgZmx1c2ggISBleGVjdXRhYmxlIHN0YXRlbWVudCBiZWZvcmUgJyEk b21wIGFsbG9jYXRlJwogICAhJG9tcCBhbGxvY2F0ZSAodmFyMSkgIGFsbG9jYXRvcihoKQog ICBhbGxvY2F0ZSAodmFyMSkKIApkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0c3VpdGUvbGli Z29tcC5mb3J0cmFuL2FsbG9jYXRlLTQuZjkwIGIvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29t cC5mb3J0cmFuL2FsbG9jYXRlLTQuZjkwCmluZGV4IGRkYjUwN2JhOGU0Li4xZjgzM2I2ZTcw ZiAxMDA2NDQKLS0tIGEvbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2FsbG9j YXRlLTQuZjkwCisrKyBiL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxv Y2F0ZS00LmY5MApAQCAtMTYsMjcgKzE2LDI3IEBAIGludGVnZXIsIHBhcmFtZXRlciA6OiBj bnN0KDIpID0gWzY0LCAxMDFdCiAhJG9tcCBwYXJhbGxlbCBhbGxvY2F0ZSggYWxsb2NhdG9y IChvbXBfaGlnaF9id19tZW1fYWxsb2MpIDogeCkgIGZpcnN0cHJpdmF0ZSh4KSAhIHsgZGct ZXJyb3IgIkV4cGVjdGVkIGludGVnZXIgZXhwcmVzc2lvbiBvZiB0aGUgJ29tcF9hbGxvY2F0 b3JfaGFuZGxlX2tpbmQnIGtpbmQiIH0KICEkb21wIGVuZCBwYXJhbGxlbAogCi0hJG9tcCBw YXJhbGxlbCBhbGxvY2F0ZSggYWxpZ24gKHEpIDogeCkgIGZpcnN0cHJpdmF0ZSh4KSAhIHsg ZGctZXJyb3IgIjMyOkFMSUdOIG1vZGlmaWVyIHJlcXVpcmVzIGF0IFxcKDFcXCkgYSBzY2Fs YXIgcG9zaXRpdmUgY29uc3RhbnQgaW50ZWdlciBhbGlnbm1lbnQgZXhwcmVzc2lvbiB0aGF0 IGlzIGEgcG93ZXIgb2YgdHdvIiB9CishJG9tcCBwYXJhbGxlbCBhbGxvY2F0ZSggYWxpZ24g KHEpIDogeCkgIGZpcnN0cHJpdmF0ZSh4KSAhIHsgZGctZXJyb3IgIjMyOkFMSUdOIHJlcXVp cmVzIGEgc2NhbGFyIHBvc2l0aXZlIGNvbnN0YW50IGludGVnZXIgYWxpZ25tZW50IGV4cHJl c3Npb24gYXQgXFwoMVxcKSB0aGF0IGlzIGEgcG93ZXIgb2YgdHdvIiB9CiAhJG9tcCBlbmQg cGFyYWxsZWwKIAogISRvbXAgcGFyYWxsZWwgYWxsb2NhdGUoIGFsaWduICgzMikgOiB4KSAg Zmlyc3Rwcml2YXRlKHgpICEgT0sKICEkb21wIGVuZCBwYXJhbGxlbAogCi0hJG9tcCBwYXJh bGxlbCBhbGxvY2F0ZSggYWxpZ24ocSkgOiB4KSBmaXJzdHByaXZhdGUoeCkgISB7IGRnLWVy cm9yICIzMTpBTElHTiBtb2RpZmllciByZXF1aXJlcyBhdCBcXCgxXFwpIGEgc2NhbGFyIHBv c2l0aXZlIGNvbnN0YW50IGludGVnZXIgYWxpZ25tZW50IGV4cHJlc3Npb24gdGhhdCBpcyBh IHBvd2VyIG9mIHR3byIgfQorISRvbXAgcGFyYWxsZWwgYWxsb2NhdGUoIGFsaWduKHEpIDog eCkgZmlyc3Rwcml2YXRlKHgpICEgeyBkZy1lcnJvciAiMzE6QUxJR04gcmVxdWlyZXMgYSBz Y2FsYXIgcG9zaXRpdmUgY29uc3RhbnQgaW50ZWdlciBhbGlnbm1lbnQgZXhwcmVzc2lvbiBh dCBcXCgxXFwpIHRoYXQgaXMgYSBwb3dlciBvZiB0d28iIH0KICEkb21wIGVuZCBwYXJhbGxl bAogCiAhJG9tcCBwYXJhbGxlbCBhbGxvY2F0ZSggYWxpZ24oY25zdCgxKSkgOiB4ICkgZmly c3Rwcml2YXRlKHgpICEgT0sKICEkb21wIGVuZCBwYXJhbGxlbAogCi0hJG9tcCBwYXJhbGxl bCBhbGxvY2F0ZSggYWxpZ24oY25zdCgyKSkgOiB4KSBmaXJzdHByaXZhdGUoeCkgICEgeyBk Zy1lcnJvciAiMzE6QUxJR04gbW9kaWZpZXIgcmVxdWlyZXMgYXQgXFwoMVxcKSBhIHNjYWxh ciBwb3NpdGl2ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCBleHByZXNzaW9uIHRoYXQg aXMgYSBwb3dlciBvZiB0d28iIH0KKyEkb21wIHBhcmFsbGVsIGFsbG9jYXRlKCBhbGlnbihj bnN0KDIpKSA6IHgpIGZpcnN0cHJpdmF0ZSh4KSAgISB7IGRnLWVycm9yICIzMTpBTElHTiBy ZXF1aXJlcyBhIHNjYWxhciBwb3NpdGl2ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCBl eHByZXNzaW9uIGF0IFxcKDFcXCkgdGhhdCBpcyBhIHBvd2VyIG9mIHR3byIgfQogISRvbXAg ZW5kIHBhcmFsbGVsCiAKLSEkb21wIHBhcmFsbGVsIGFsbG9jYXRlKCBhbGlnbiggMzEpIDp4 KSBmaXJzdHByaXZhdGUoeCkgICEgeyBkZy1lcnJvciAiMzI6QUxJR04gbW9kaWZpZXIgcmVx dWlyZXMgYXQgXFwoMVxcKSBhIHNjYWxhciBwb3NpdGl2ZSBjb25zdGFudCBpbnRlZ2VyIGFs aWdubWVudCBleHByZXNzaW9uIHRoYXQgaXMgYSBwb3dlciBvZiB0d28iIH0KKyEkb21wIHBh cmFsbGVsIGFsbG9jYXRlKCBhbGlnbiggMzEpIDp4KSBmaXJzdHByaXZhdGUoeCkgICEgeyBk Zy1lcnJvciAiMzI6QUxJR04gcmVxdWlyZXMgYSBzY2FsYXIgcG9zaXRpdmUgY29uc3RhbnQg aW50ZWdlciBhbGlnbm1lbnQgZXhwcmVzc2lvbiBhdCBcXCgxXFwpIHRoYXQgaXMgYSBwb3dl ciBvZiB0d28iIH0KICEkb21wIGVuZCBwYXJhbGxlbAogCi0hJG9tcCBwYXJhbGxlbCBhbGxv Y2F0ZSggYWxpZ24gKDMyLjApOiB4KSBmaXJzdHByaXZhdGUoeCkgICEgeyBkZy1lcnJvciAi MzI6QUxJR04gbW9kaWZpZXIgcmVxdWlyZXMgYXQgXFwoMVxcKSBhIHNjYWxhciBwb3NpdGl2 ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCBleHByZXNzaW9uIHRoYXQgaXMgYSBwb3dl ciBvZiB0d28iIH0KKyEkb21wIHBhcmFsbGVsIGFsbG9jYXRlKCBhbGlnbiAoMzIuMCk6IHgp IGZpcnN0cHJpdmF0ZSh4KSAgISB7IGRnLWVycm9yICIzMjpBTElHTiByZXF1aXJlcyBhIHNj YWxhciBwb3NpdGl2ZSBjb25zdGFudCBpbnRlZ2VyIGFsaWdubWVudCBleHByZXNzaW9uIGF0 IFxcKDFcXCkgdGhhdCBpcyBhIHBvd2VyIG9mIHR3byIgfQogISRvbXAgZW5kIHBhcmFsbGVs CiAKLSEkb21wIHBhcmFsbGVsIGFsbG9jYXRlKCBhbGlnbihjbnN0ICkgOiB4ICkgZmlyc3Rw cml2YXRlKHgpICAhIHsgZGctZXJyb3IgIjMxOkFMSUdOIG1vZGlmaWVyIHJlcXVpcmVzIGF0 IFxcKDFcXCkgYSBzY2FsYXIgcG9zaXRpdmUgY29uc3RhbnQgaW50ZWdlciBhbGlnbm1lbnQg ZXhwcmVzc2lvbiB0aGF0IGlzIGEgcG93ZXIgb2YgdHdvIiB9CishJG9tcCBwYXJhbGxlbCBh bGxvY2F0ZSggYWxpZ24oY25zdCApIDogeCApIGZpcnN0cHJpdmF0ZSh4KSAgISB7IGRnLWVy cm9yICIzMTpBTElHTiByZXF1aXJlcyBhIHNjYWxhciBwb3NpdGl2ZSBjb25zdGFudCBpbnRl Z2VyIGFsaWdubWVudCBleHByZXNzaW9uIGF0IFxcKDFcXCkgdGhhdCBpcyBhIHBvd2VyIG9m IHR3byIgfQogISRvbXAgZW5kIHBhcmFsbGVsCiBlbmQKZGlmZiAtLWdpdCBhL2xpYmdvbXAv dGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS01LmY5MCBiL2xpYmdvbXAvdGVz dHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS01LmY5MAppbmRleCAwNzczZTVjNTll Ni4uZjg1YTdjYWIxMjMgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAu Zm9ydHJhbi9hbGxvY2F0ZS01LmY5MAorKysgYi9saWJnb21wL3Rlc3RzdWl0ZS9saWJnb21w LmZvcnRyYW4vYWxsb2NhdGUtNS5mOTAKQEAgLTIyLDYgKzIyLDggQEAgc3Vicm91dGluZSBm b28oeCwgeSkKICAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmFyOCg6KQogICBpbnRlZ2Vy LCBhbGxvY2F0YWJsZSA6OiB2YXI5KDopCiAKKyAgeCA9IDEgISBleGVjdXRhYmxlIHN0YXRl bWVudCBiZWZvcmUgJyEkb21wIGFsbG9jYXRlJworCiAgICEgRG9uJ3QgdXNlIGEgaGFyZC1j b2RlZCB2YWx1ZSAoLi4uLCBidXQgaXQgZG9lcyBwYXNzIHRoZSBjaGVja3MpLgogICAhJG9t cCBhbGxvY2F0ZSAodmFyMSkgYWxsb2NhdG9yKDEwX29tcF9hbGxvY2F0b3JfaGFuZGxlX2tp bmQpICEgeyBkZy1ib2d1cyAiRXhwZWN0ZWQgaW50ZWdlciBleHByZXNzaW9uIG9mIHRoZSAn b21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCcga2luZCIgfQogICBhbGxvY2F0ZSAodmFyMSh4 KSkKQEAgLTMwLDI3ICszMiwyNiBAQCBzdWJyb3V0aW5lIGZvbyh4LCB5KQogICAhJG9tcCBh bGxvY2F0ZSAodmFyMSkgYWxsb2NhdG9yKDEwXzEpICEgeyBkZy1lcnJvciAiRXhwZWN0ZWQg aW50ZWdlciBleHByZXNzaW9uIG9mIHRoZSAnb21wX2FsbG9jYXRvcl9oYW5kbGVfa2luZCcg a2luZCBhdCAuMS4iIH0KICAgYWxsb2NhdGUgKHZhcjEoeCkpCiAKLSAgISRvbXAgYWxsb2Nh dGUgKHZhcjIpICAhIHsgZGctZXJyb3IgIid2YXIyJyBpbiAnYWxsb2NhdGUnIGRpcmVjdGl2 ZSBhdCAuMS4gaXMgbm90IHByZXNlbnQgaW4gYXNzb2NpYXRlZCAnYWxsb2NhdGUnIHN0YXRl bWVudC4iIH0KLSAgYWxsb2NhdGUgKHZhcjMoeCkpCisgICEkb21wIGFsbG9jYXRlICh2YXIy KSAgISB7IGRnLWVycm9yICIndmFyMicgc3BlY2lmaWVkIGluICdhbGxvY2F0ZScgYXQgLjEu IGJ1dCBub3QgaW4gdGhlIGFzc29jaWF0ZWQgQUxMT0NBVEUgc3RhdGVtZW50IiB9CisgIGFs bG9jYXRlICh2YXIzKHgpKSAgISB7IGRnLWVycm9yICIndmFyMycgbGlzdGVkIGluICdhbGxv Y2F0ZScgc3RhdGVtZW50IGF0IC4xLiBidXQgaXQgaXMgbmVpdGhlciBleHBsaWNpdGx5IGlu IGxpc3RlZCBpbiB0aGUgJyEuT01QIEFMTE9DQVRFJyBkaXJlY3RpdmUgbm9yIGV4aXN0cyBh IGRpcmVjdGl2ZSB3aXRob3V0IGFyZ3VtZW50IGxpc3QiIH0KIAotICAhJG9tcCBhbGxvY2F0 ZSAoeCkgISB7IGRnLW1lc3NhZ2UgInNvcnJ5LCB1bmltcGxlbWVudGVkOiAnYWxsb2NhdGUn IGRpcmVjdGl2ZSB0aGF0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW4gJ2FsbG9jYXRlJyBz dGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZC4iIH0KLSAgeCA9IDIKKyAgISRvbXAgYWxsb2Nh dGUgKHgpCisgIHggPSAyICAhIHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgYXNzaWdubWVudCBh dCAuMS47IGV4cGVjdGVkIEFMTE9DQVRFIG9yICEuT01QIEFMTE9DQVRFIHN0YXRlbWVudCIg fQogCi0gICEkb21wIGFsbG9jYXRlICh2YXI0KSAhIHsgZGctZXJyb3IgIid2YXI0JyB3aXRo IEFMTE9DQVRBQkxFIGF0dHJpYnV0ZSBpcyBub3QgYWxsb3dlZCBpbiAnYWxsb2NhdGUnIGRp cmVjdGl2ZSBhdCAuMS4gYXMgdGhpcyBkaXJlY3RpdmUgaXMgbm90IGFzc29jaWF0ZWQgd2l0 aCBhbiAnYWxsb2NhdGUnIHN0YXRlbWVudC4iIH0gCi0gICEgeyBkZy1tZXNzYWdlICJzb3Jy eSwgdW5pbXBsZW1lbnRlZDogJ2FsbG9jYXRlJyBkaXJlY3RpdmUgdGhhdCBpcyBub3QgYXNz b2NpYXRlZCB3aXRoIGFuICdhbGxvY2F0ZScgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQu IiAiIiB7IHRhcmdldCAqLSotKiB9IC4tMSB9Ci0gIHkgPSAyCisgICEkb21wIGFsbG9jYXRl ICh2YXI0KQorICB5ID0gMiAhIHsgZGctZXJyb3IgIlVuZXhwZWN0ZWQgYXNzaWdubWVudCBh dCAuMS47IGV4cGVjdGVkIEFMTE9DQVRFIG9yICEuT01QIEFMTE9DQVRFIHN0YXRlbWVudCIg fQogCiAgICEkb21wIGFsbG9jYXRlICh2YXI1KQotICAhJG9tcCBhbGxvY2F0ZSAgISB7IGRn LWVycm9yICJFbXB0eSB2YXJpYWJsZSBsaXN0IGlzIG5vdCBhbGxvd2VkIGF0IC4xLiB3aGVu IG11bHRpcGxlICdhbGxvY2F0ZScgZGlyZWN0aXZlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIGFu ICdhbGxvY2F0ZScgc3RhdGVtZW50LiIgfQorICAhJG9tcCBhbGxvY2F0ZQogICBhbGxvY2F0 ZSAodmFyNSh4KSkKIAogICAhJG9tcCBhbGxvY2F0ZSAodmFyNikKLSAgISRvbXAgYWxsb2Nh dGUgKHZhcjcpICAhIHsgZGctZXJyb3IgIid2YXI3JyBpbiAnYWxsb2NhdGUnIGRpcmVjdGl2 ZSBhdCAuMS4gaXMgbm90IHByZXNlbnQgaW4gYXNzb2NpYXRlZCAnYWxsb2NhdGUnIHN0YXRl bWVudC4iIH0KLSAgISRvbXAgYWxsb2NhdGUgKHZhcjgpICAhIHsgZGctZXJyb3IgIid2YXI4 JyBpbiAnYWxsb2NhdGUnIGRpcmVjdGl2ZSBhdCAuMS4gaXMgbm90IHByZXNlbnQgaW4gYXNz b2NpYXRlZCAnYWxsb2NhdGUnIHN0YXRlbWVudC4iIH0KKyAgISRvbXAgYWxsb2NhdGUgKHZh cjcpICAhIHsgZGctZXJyb3IgIid2YXI3JyBzcGVjaWZpZWQgaW4gJ2FsbG9jYXRlJyBhdCAu MS4gYnV0IG5vdCBpbiB0aGUgYXNzb2NpYXRlZCBBTExPQ0FURSBzdGF0ZW1lbnQiIH0KKyAg ISRvbXAgYWxsb2NhdGUgKHZhcjgpICAhIHsgZGctZXJyb3IgIid2YXI4JyBzcGVjaWZpZWQg aW4gJ2FsbG9jYXRlJyBhdCAuMS4gYnV0IG5vdCBpbiB0aGUgYXNzb2NpYXRlZCBBTExPQ0FU RSBzdGF0ZW1lbnQiIH0KICAgYWxsb2NhdGUgKHZhcjYoeCkpCiAKICAgISRvbXAgYWxsb2Nh dGUgKHZhcjkpCi0gICEkb21wIGFsbG9jYXRlICh2YXI5KSAgISB7IGRnLWVycm9yICIndmFy OScgaXMgdXNlZCBpbiBtdWx0aXBsZSAnYWxsb2NhdGUnIGRpcmVjdGl2ZXMgYXQgLjEuIiB9 CisgICEkb21wIGFsbG9jYXRlICh2YXI5KSAgISB7IGRnLXdhcm5pbmcgInZhcjknIGFwcGVh cnMgbW9yZSB0aGFuIG9uY2UgaW4gJ2FsbG9jYXRlJyIgfQogICBhbGxvY2F0ZSAodmFyOSh4 KSkKIAogZW5kIHN1YnJvdXRpbmUKQEAgLTcwLDcgKzcxLDkgQEAgZnVuY3Rpb24gb3V0ZXIo YSkKICAgICBpbnRlZ2VyIDo6IHgKICAgICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2YXIy CiAKLSAgICAhJG9tcCBhbGxvY2F0ZSAodmFyMSwgdmFyMikgISB7IGRnLWVycm9yICIndmFy MScgaXMgbm90IGluIHRoZSBzYW1lIHNjb3BlIGFzICdhbGxvY2F0ZScgZGlyZWN0aXZlIGF0 IC4xLiIgfQorICAgIHggPSAxICEgZXhlY3V0YWJsZSBzdGF0ZW1lbnQgYmVmb3JlICchJG9t cCBhbGxvY2F0ZScKKworICAgICEkb21wIGFsbG9jYXRlICh2YXIxLCB2YXIyKSAgISB7IGRn LWVycm9yICJTb3JyeSwgYWxsb2NhdGlvbiBvZiBhbGxvY2F0YWJsZSAndmFyMScgd2l0aCAn IS5vbXAgYWxsb2NhdG9ycycgb3IgJyEub21wIGFsbG9jYXRlJyBhdCAuMS4gaXMgb25seSBz dXBwb3JlZCBpbiB0aGUgc2NvcGUgd2hlcmUgaXQgaGFzIGJlZW4gZGVjbGFyZWQsIHVubGVz cyBpdCBoYXMgdGhlIFNBVkUgYXR0cmlidXRlIiB9CiAgICAgYWxsb2NhdGUgKHZhcjEsIHZh cjIpCiAKICAgICBpbm5lciA9IHggKyAxMApAQCAtOTYsMjIgKzk5LDIxIEBAIHN1YnJvdXRp bmUgYmFyKHMpCiAgIGEgPSBvbXBfaW5pdF9hbGxvY2F0b3IgKG9tcF9kZWZhdWx0X21lbV9z cGFjZSwgMywgdHJhaXRzKQogICBpZiAoYSA9PSBvbXBfbnVsbF9hbGxvY2F0b3IpIHN0b3Ag MQogCi0gICEkb21wIGFsbG9jYXRlIChtdmFyMSkgYWxsb2NhdG9yKGEpICEgeyBkZy1lcnJv ciAiJ212YXIxJyBzaG91bGQgdXNlIHByZWRlZmluZWQgYWxsb2NhdG9yIGF0IC4xLiIgfQor ICAhJG9tcCBhbGxvY2F0ZSAobXZhcjEpIGFsbG9jYXRvcihhKQogICBhbGxvY2F0ZSAobXZh cjEpCiAKLSAgISRvbXAgYWxsb2NhdGUgKG12YXIyKSAhIHsgZGctZXJyb3IgIidtdmFyMicg c2hvdWxkIHVzZSBwcmVkZWZpbmVkIGFsbG9jYXRvciBhdCAuMS4iIH0KKyAgISRvbXAgYWxs b2NhdGUgKG12YXIyKQogICBhbGxvY2F0ZSAobXZhcjIpCiAKICAgISRvbXAgYWxsb2NhdGUg KG12YXIzKSBhbGxvY2F0b3Iob21wX2xvd19sYXRfbWVtX2FsbG9jKQogICBhbGxvY2F0ZSAo bXZhcjMpCiAKLSAgISRvbXAgYWxsb2NhdGUgKHN2YXIxKSAgYWxsb2NhdG9yKGEpICEgeyBk Zy1lcnJvciAiJ3N2YXIxJyBzaG91bGQgdXNlIHByZWRlZmluZWQgYWxsb2NhdG9yIGF0IC4x LiIgfQorICAhJG9tcCBhbGxvY2F0ZSAoc3ZhcjEpICBhbGxvY2F0b3IoYSkKICAgYWxsb2Nh dGUgKHN2YXIxKQogCi0gICEkb21wIGFsbG9jYXRlIChzdmFyMikgISB7IGRnLWVycm9yICIn c3ZhcjInIHNob3VsZCB1c2UgcHJlZGVmaW5lZCBhbGxvY2F0b3IgYXQgLjEuIiB9CisgICEk b21wIGFsbG9jYXRlIChzdmFyMikKICAgYWxsb2NhdGUgKHN2YXIyKQogCiAgICEkb21wIGFs bG9jYXRlIChzdmFyMykgYWxsb2NhdG9yKG9tcF9sb3dfbGF0X21lbV9hbGxvYykKICAgYWxs b2NhdGUgKHN2YXIzKQogZW5kIHN1YnJvdXRpbmUKLQo= --------------AbyYoqGDOJbUDrmYri0ByhXm Content-Type: text/x-patch; charset="UTF-8"; name="0001-gfortran.dg-gomp-allocate-4a.f90-Update-dg-error.patch" Content-Disposition: attachment; filename="0001-gfortran.dg-gomp-allocate-4a.f90-Update-dg-error.patch" Content-Transfer-Encoding: base64 RnJvbSBiNjg3YmMxOTVjMDliMTExMWU4YjM5MGQyMTQzM2Y3N2M0YjczNzUyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb2JpYXMgQnVybnVzIDx0b2JpYXNAY29kZXNvdXJj ZXJ5LmNvbT4KRGF0ZTogVGh1LCAyNiBPY3QgMjAyMyAxNjoxMjoxOSArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIGdmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNGEuZjkwOiBVcGRhdGUgZGct ZXJyb3IKClRoaXMgaGFzIGJlZW4gbWlzc2VkIHRvIGluY2x1ZGUgaW4gY29tbWl0CiAgNTkx NzVlNmYwODggRm9ydHJhbjogU3VwcG9ydCBPcGVuTVAncyAnYWxsb2NhdGUnIGRpcmVjdGl2 ZSBmb3Igc3RhY2sgdmFycwoKZ2NjL3Rlc3RzdWl0ZS8KCiAgICAgICAgKiBnZm9ydHJhbi5k Zy9nb21wL2FsbG9jYXRlLTRhLmY5MDogVXBkYXRlIGRnLWVycm9yLgotLS0KIGdjYy90ZXN0 c3VpdGUvQ2hhbmdlTG9nLm9tcCAgICAgICAgICAgICAgICAgICAgfCA0ICsrKysKIGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS00YS5mOTAgfCA0ICsrLS0KIDIg ZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvQ2hhbmdlTG9nLm9tcCBiL2djYy90ZXN0c3VpdGUvQ2hh bmdlTG9nLm9tcAppbmRleCA4OTA1OWNhZGQ2Mi4uMjc0NDVjNmRmODkgMTAwNjQ0Ci0tLSBh L2djYy90ZXN0c3VpdGUvQ2hhbmdlTG9nLm9tcAorKysgYi9nY2MvdGVzdHN1aXRlL0NoYW5n ZUxvZy5vbXAKQEAgLTEsMyArMSw3IEBACisyMDIzLTEwLTI2ICBUb2JpYXMgQnVybnVzICA8 dG9iaWFzQGNvZGVzb3VyY2VyeS5jb20+CisKKwkqIGdmb3J0cmFuLmRnL2dvbXAvYWxsb2Nh dGUtNGEuZjkwOiBVcGRhdGUgZGctZXJyb3IuCisKIDIwMjMtMTAtMjYgIFRvYmlhcyBCdXJu dXMgIDx0b2JpYXNAY29kZXNvdXJjZXJ5LmNvbT4KIAogCSogYy1jKystY29tbW9uL2dvbXAv YWxsb2NhdGUtNS5jOiBSZW1vdmUgQysrICdzb3JyeSc7IG1pbm9yIHVwZGF0ZXMuCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsb2NhdGUtNGEuZjkw IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTRhLmY5MAppbmRl eCBhMmRjZjEwNWVlMS4uYTc5ZWQ3Nzg3ZGUgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29tcC9hbGxvY2F0ZS00YS5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9nb21wL2FsbG9jYXRlLTRhLmY5MApAQCAtMzMsMTMgKzMzLDEzIEBAIGlu dGVnZXIoa2luZD1vbXBfYWxsb2NhdG9yX2hhbmRsZV9raW5kKSwgaW50ZW50KGluKSA6OiBt eV9hbGxvYwogCiAhc3RhY2sgdmFyaWFibGVzOgogaW50ZWdlciA6OiBhLGIsYyhuKSxkKDUp LGUoMikKLSEkb21wIGFsbG9jYXRlKGEpICAgISB7IGRnLWVycm9yICJTb3JyeSwgZGVjbGFy YXRpdmUgIS5PTVAgQUxMT0NBVEUgYXQgLjEuIG5vdCB5ZXQgc3VwcG9ydGVkIiB9CishJG9t cCBhbGxvY2F0ZShhKQogISRvbXAgYWxsb2NhdGUgKCBiICwgYyApIGFsaWduICggMzIpIGFs bG9jYXRvciAobXlfYWxsb2MpCiAhJG9tcCBhbGxvY2F0ZSAoZCkgYWxpZ24oIDEyOCApCiAh JG9tcCBhbGxvY2F0ZSggICBlICkgYWxsb2NhdG9yKCBvbXBfaGlnaF9id19tZW1fYWxsb2Mg KQogCiAhc2F2ZWQgdmFycwotaW50ZWdlciwgc2F2ZSA6OiBrLGwsbSg1KSxyKDIpCitpbnRl Z2VyLCBzYXZlIDo6IGssbCxtKDUpLHIoMikgICAhIHsgZGctZXJyb3IgIlNvcnJ5LCAhLk9N UCBhbGxvY2F0ZSBmb3IgdmFyaWFibGUgJ2snIGF0IC4xLiB3aXRoIFNBVkUgYXR0cmlidXRl IG5vdCB5ZXQgaW1wbGVtZW50ZWQiIH0KICEkb21wIGFsbG9jYXRlKGspICBhbGlnbigxNikg LCBhbGxvY2F0b3IgKG9tcF9sYXJnZV9jYXBfbWVtX2FsbG9jKQogISRvbXAgYWxsb2NhdGUg KCBsICkgYWxsb2NhdG9yIChvbXBfbGFyZ2VfY2FwX21lbV9hbGxvYykgLCBhbGlnbiAoIDMy KQogISRvbXAgYWxsb2NhdGUgKG0pIGFsaWduKCAxMjggKSxhbGxvY2F0b3IoIG9tcF9oaWdo X2J3X21lbV9hbGxvYyApCi0tIAoyLjM0LjEKCg== --------------AbyYoqGDOJbUDrmYri0ByhXm Content-Type: text/x-patch; charset="UTF-8"; name="0001-OpenMP-Fortran-Ensure-allocator-is-gimplified-for-om.patch" Content-Disposition: attachment; filename*0="0001-OpenMP-Fortran-Ensure-allocator-is-gimplified-for-om.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyY2JmMTY0YzdmZDBiODRiZjNlZDM2MTE4OGI4Y2IwMTRmMjVhOTAwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb2JpYXMgQnVybnVzIDx0b2JpYXNAY29kZXNvdXJj ZXJ5LmNvbT4KRGF0ZTogTW9uLCAzMCBPY3QgMjAyMyAxMDo1MzoyOSArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIE9wZW5NUC9Gb3J0cmFuOiBFbnN1cmUgYWxsb2NhdG9yIGlzIGdpbXBsaWZp ZWQgZm9yICdvbXAKIGFsbG9jYXRlJwoKV2l0aG91dCB0aGlzIGNoYW5nZSwgd2Ugd2UgZ2V0 IGFuIElDRSBpbiB2ZXJpZnlfZ2ltcGxlX2NhbGwgZm9yCkdPTVBfYWxsb2NhdGUgd2hlbiBk b2luZyBhIGxhdGUgcmVwbGFjZW1lbnQgaW4gb21wLWxvdy5jYwoKZ2NjL2ZvcnRyYW4vQ2hh bmdlTG9nOgoKICAgICAgICogdHJhbnMtb3Blbm1wLmNjIChnZmNfdHJhbnNfb21wX2NsYXVz ZXMpOiBBdm9pZCBnZmNfZXZhbHVhdGVfbm93CiAgICAgICBmb3IgYWxsb2NhdG9yIHdpdGgg aW5kaXJlY3QgcmVmIGZvciBiZXR0ZXIgZGlhZ25vc3RpYy4KCmdjYy9DaGFuZ2VMb2c6CgoJ KiBnY2MvZ2ltcGxpZnkuY2MgKGdpbXBsaWZ5X29tcF9hbGxvY2F0ZSk6IEdpbXBsaWZ5IGFs bG9jYXRvci4KCSogb21wLWxvdy5jYyAobG93ZXJfb21wX2FsbG9jYXRlKTogU2ltcGxpZnk7 IEdPTVBfZnJlZSBjYW4gYWxzbwoJdGFrZSBhIHBsYWluIDAgYXMgYWxsb2NhdG9yIGFyZ3Vt ZW50IChhcmcgaXMgdW51c2VkIGluIGxpYmdvbXApLgoKbGliZ29tcC9DaGFuZ2VMb2c6CgoJ KiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2FsbG9jYXRlLThhLmY5MDogTmV3IHRlc3Qu Ci0tLQogZ2NjL0NoYW5nZUxvZy5vbXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDYgKysrCiBnY2MvZm9ydHJhbi9DaGFuZ2VMb2cub21wICAgICAgICAgICAgICAgICAgICAg fCAgNSArKysKIGdjYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYyAgICAgICAgICAgICAgICAg ICB8ICA1ICstLQogZ2NjL2dpbXBsaWZ5LmNjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDkgKysrKwogZ2NjL29tcC1sb3cuY2MgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDcgKy0tCiBsaWJnb21wL0NoYW5nZUxvZy5vbXAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNCArKwogLi4uL3Rlc3RzdWl0ZS9saWJnb21wLmZvcnRyYW4vYWxsb2Nh dGUtOGEuZjkwIHwgNDQgKysrKysrKysrKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA3 MyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxp YmdvbXAvdGVzdHN1aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS04YS5mOTAKCmRpZmYg LS1naXQgYS9nY2MvQ2hhbmdlTG9nLm9tcCBiL2djYy9DaGFuZ2VMb2cub21wCmluZGV4IDU3 MGYwYjAwOWZlLi5mZDM4OTg2MGE5NyAxMDA2NDQKLS0tIGEvZ2NjL0NoYW5nZUxvZy5vbXAK KysrIGIvZ2NjL0NoYW5nZUxvZy5vbXAKQEAgLTEsMyArMSw5IEBACisyMDIzLTEwLTMwICBU b2JpYXMgQnVybnVzICA8dG9iaWFzQGNvZGVzb3VyY2VyeS5jb20+CisKKwkqIGdjYy9naW1w bGlmeS5jYyAoZ2ltcGxpZnlfb21wX2FsbG9jYXRlKTogR2ltcGxpZnkgYWxsb2NhdG9yLgor CSogb21wLWxvdy5jYyAobG93ZXJfb21wX2FsbG9jYXRlKTogU2ltcGxpZnk7IEdPTVBfZnJl ZSBjYW4gYWxzbworCXRha2UgYSBwbGFpbiAwIGFzIGFsbG9jYXRvciBhcmd1bWVudCAoYXJn IGlzIHVudXNlZCBpbiBsaWJnb21wKS4KKwogMjAyMy0xMC0yNyAgVG9iaWFzIEJ1cm51cyAg PHRvYmlhc0Bjb2Rlc291cmNlcnkuY29tPgogCiAJQmFja3BvcnRlZCBmcm9tIG1hc3RlcjoK ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL0NoYW5nZUxvZy5vbXAgYi9nY2MvZm9ydHJhbi9D aGFuZ2VMb2cub21wCmluZGV4IDJiODFjYWRhMzI2Li42YjMwMzAyNDI4ZiAxMDA2NDQKLS0t IGEvZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nLm9tcAorKysgYi9nY2MvZm9ydHJhbi9DaGFuZ2VM b2cub21wCkBAIC0xLDMgKzEsOCBAQAorMjAyMy0xMC0zMCAgVG9iaWFzIEJ1cm51cyAgPHRv Ymlhc0Bjb2Rlc291cmNlcnkuY29tPgorCisJKiB0cmFucy1vcGVubXAuY2MgKGdmY190cmFu c19vbXBfY2xhdXNlcyk6IEF2b2lkIGdmY19ldmFsdWF0ZV9ub3cKKwlmb3IgYWxsb2NhdG9y IHdpdGggaW5kaXJlY3QgcmVmIGZvciBiZXR0ZXIgZGlhZ25vc3RpYy4KKwogMjAyMy0xMC0y NiAgVG9iaWFzIEJ1cm51cyAgPHRvYmlhc0Bjb2Rlc291cmNlcnkuY29tPgogCiAJQmFja3Bv cnRlZCBmcm9tIG1hc3RlcjoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5t cC5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwppbmRleCAzMGU0M2NlYTU2Yy4u YWI0NTAzMmVkYTMgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwor KysgYi9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MKQEAgLTQ3MzAsMTEgKzQ3MzAsOCBA QCBnZmNfdHJhbnNfb21wX2NsYXVzZXMgKHN0bXRibG9ja190ICpibG9jaywgZ2ZjX29tcF9j bGF1c2VzICpjbGF1c2VzLAogCQkJICAgICAgYWxsb2NhdG9yXwogCQkJCT0gZ2ZjX3RyYW5z X29tcF92YXJpYWJsZSAobi0+dTIuYWxsb2NhdG9yLT5zeW10cmVlLT5uLnN5bSwKIAkJCQkJ CQkgIGZhbHNlKTsKLQkJCSAgICBpZiAoUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAoYWxs b2NhdG9yXykpKQotCQkJICAgICAgeworCQkJICAgICAgaWYgKFBPSU5URVJfVFlQRV9QIChU UkVFX1RZUEUgKGFsbG9jYXRvcl8pKSkKIAkJCQlhbGxvY2F0b3JfID0gYnVpbGRfZm9sZF9p bmRpcmVjdF9yZWYgKGFsbG9jYXRvcl8pOwotCQkJCWFsbG9jYXRvcl8gPSBnZmNfZXZhbHVh dGVfbm93IChhbGxvY2F0b3JfLCBibG9jayk7Ci0JCQkgICAgICB9CiAJCQkgICAgfQogCQkJ ICBlbHNlIGlmIChhbGxvY19leHByICE9IG4tPnUyLmFsbG9jYXRvcikKIAkJCSAgICB7CmRp ZmYgLS1naXQgYS9nY2MvZ2ltcGxpZnkuY2MgYi9nY2MvZ2ltcGxpZnkuY2MKaW5kZXggMmI2 ZTU5MjIxM2YuLjcwZmRhNmJiZjBkIDEwMDY0NAotLS0gYS9nY2MvZ2ltcGxpZnkuY2MKKysr IGIvZ2NjL2dpbXBsaWZ5LmNjCkBAIC0xNzg3Niw2ICsxNzg3NiwxNSBAQCBnaW1wbGlmeV9v bXBfYWxsb2NhdGUgKHRyZWUgKmV4cHJfcCwgZ2ltcGxlX3NlcSAqcHJlX3ApCiAgICAga2lu ZCA9IEdGX09NUF9BTExPQ0FURV9LSU5EX0FMTE9DQVRFOwogICBlbHNlCiAgICAga2luZCA9 IEdGX09NUF9BTExPQ0FURV9LSU5EX0ZSRUU7CisgIGZvciAodHJlZSBjID0gT01QX0FMTE9D QVRFX0NMQVVTRVMgKGV4cHIpOyBjOyBjID0gT01QX0NMQVVTRV9DSEFJTiAoYykpCisgICAg eworICAgICAgaWYgKE9NUF9DTEFVU0VfQ09ERSAoYykgIT0gT01QX0NMQVVTRV9BTExPQ0FU RSkKKwljb250aW51ZTsKKworICAgICAgZ2ltcGxpZnlfZXhwciAoJk9NUF9DTEFVU0VfQUxM T0NBVEVfQUxMT0NBVE9SIChjKSwgcHJlX3AsIE5VTEwsCisJCQkgaXNfZ2ltcGxlX3ZhbCwg ZmJfcnZhbHVlKTsKKyAgICB9CisKICAgZ2ltcGxlICpzdG10ID0gZ2ltcGxlX2J1aWxkX29t cF9hbGxvY2F0ZSAoT01QX0FMTE9DQVRFX0NMQVVTRVMgKGV4cHIpLAogCQkJCQkgICAga2lu ZCk7CiAgIGdpbXBsaWZ5X3NlcV9hZGRfc3RtdCAocHJlX3AsIHN0bXQpOwpkaWZmIC0tZ2l0 IGEvZ2NjL29tcC1sb3cuY2MgYi9nY2Mvb21wLWxvdy5jYwppbmRleCA3NzE0MjU4OWYyNy4u NzMxMjcxZTVjOTYgMTAwNjQ0Ci0tLSBhL2djYy9vbXAtbG93LmNjCisrKyBiL2djYy9vbXAt bG93LmNjCkBAIC05NDg2LDExICs5NDg2LDExIEBAIGxvd2VyX29tcF9hbGxvY2F0ZSAoZ2lt cGxlX3N0bXRfaXRlcmF0b3IgKmdzaV9wKQogCSAgICBjb250aW51ZTsKIAogCSAgY29uc3Qg Z2NhbGwgKmdzID0gYXNfYSA8Y29uc3QgZ2NhbGwgKj4gKHN0bXQpOwotCSAgdHJlZSBhbGxv Y2F0b3IgPSBPTVBfQ0xBVVNFX0FMTE9DQVRFX0FMTE9DQVRPUiAoYykKLQkJCSAgID8gT01Q X0NMQVVTRV9BTExPQ0FURV9BTExPQ0FUT1IgKGMpCi0JCQkgICA6IGJ1aWxkX3plcm9fY3N0 IChwdHJfdHlwZV9ub2RlKTsKIAkgIGlmIChhbGxvY2F0ZSkKIAkgICAgeworCSAgICAgIHRy ZWUgYWxsb2NhdG9yID0gKE9NUF9DTEFVU0VfQUxMT0NBVEVfQUxMT0NBVE9SIChjKQorCQkJ CT8gT01QX0NMQVVTRV9BTExPQ0FURV9BTExPQ0FUT1IgKGMpCisJCQkJOiBidWlsZF96ZXJv X2NzdCAocHRyX3R5cGVfbm9kZSkpOwogCSAgICAgIHRyZWUgbGhzID0gZ2ltcGxlX2NhbGxf bGhzIChncyk7CiAJICAgICAgaWYgKGxocyAmJiBUUkVFX0NPREUgKGxocykgPT0gU1NBX05B TUUpCiAJCXsKQEAgLTk1NTksNiArOTU1OSw3IEBAIGxvd2VyX29tcF9hbGxvY2F0ZSAoZ2lt cGxlX3N0bXRfaXRlcmF0b3IgKmdzaV9wKQogCSAgICAgIGlmIChhcmcgPT0gdmFyKQogCQl7 CiAJCSAgdHJlZSByZXBsID0gYnVpbHRpbl9kZWNsX2V4cGxpY2l0IChCVUlMVF9JTl9HT01Q X0ZSRUUpOworCQkgIHRyZWUgYWxsb2NhdG9yID0gYnVpbGRfemVyb19jc3QgKHB0cl90eXBl X25vZGUpOwogCQkgIGdpbXBsZSAqZyA9IGdpbXBsZV9idWlsZF9jYWxsIChyZXBsLCAyLAog CQkJCQkJIGdpbXBsZV9jYWxsX2FyZyAoZ3MsIDApLAogCQkJCQkJIGFsbG9jYXRvcik7CmRp ZmYgLS1naXQgYS9saWJnb21wL0NoYW5nZUxvZy5vbXAgYi9saWJnb21wL0NoYW5nZUxvZy5v bXAKaW5kZXggZDIzYTRiZTk0YTAuLjRjYjg3NDljMTUyIDEwMDY0NAotLS0gYS9saWJnb21w L0NoYW5nZUxvZy5vbXAKKysrIGIvbGliZ29tcC9DaGFuZ2VMb2cub21wCkBAIC0xLDMgKzEs NyBAQAorMjAyMy0xMC0zMCAgVG9iaWFzIEJ1cm51cyAgPHRvYmlhc0Bjb2Rlc291cmNlcnku Y29tPgorCisJKiB0ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2FsbG9jYXRlLThhLmY5MDog TmV3IHRlc3QuCisKIDIwMjMtMTAtMjYgIFRvYmlhcyBCdXJudXMgIDx0b2JpYXNAY29kZXNv dXJjZXJ5LmNvbT4KIAogCSogbGliZ29tcC50ZXhpIChPcGVuTVAgSW1wbC4gU3RhdHVzKTog RG9jdW1lbnQgdGhhdCAnb21wIGFsbG9jYXRlJwpkaWZmIC0tZ2l0IGEvbGliZ29tcC90ZXN0 c3VpdGUvbGliZ29tcC5mb3J0cmFuL2FsbG9jYXRlLThhLmY5MCBiL2xpYmdvbXAvdGVzdHN1 aXRlL2xpYmdvbXAuZm9ydHJhbi9hbGxvY2F0ZS04YS5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI4ZmUwNGZiZDU4Ci0tLSAvZGV2L251bGwKKysrIGIv bGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5mb3J0cmFuL2FsbG9jYXRlLThhLmY5MApAQCAt MCwwICsxLDQ0IEBACishIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZmR1bXAtdHJlZS1v bXBsb3dlciIgfQorcHJvZ3JhbSBtYWluCisgIHVzZSBpc29fY19iaW5kaW5nCisgIHVzZSBv bXBfbGliCisgIGltcGxpY2l0IG5vbmUgKHR5cGUsIGV4dGVybmFsKQorICBpbnRlZ2VyKG9t cF9hbGxvY2F0b3JfaGFuZGxlX2tpbmQpOjogYWxsb2NfaAorICBpbnRlZ2VyIDo6IGksIE4K KyAgaW50ZWdlcihjX2ludHB0cl90KSA6OiBpbnRwdHIKKyAgaW50ZWdlciwgYWxsb2NhdGFi bGUgOjogQSg6KQorICB0eXBlKG9tcF9hbGxvY3RyYWl0KTo6IHRyYWl0cygxKSA9IFtvbXBf YWxsb2N0cmFpdChvbXBfYXRrX2FsaWdubWVudCwgMTI4KV0KKworICBOID0gMTAKKyAgYWxs b2NfaCA9IG9tcF9pbml0X2FsbG9jYXRvcihvbXBfZGVmYXVsdF9tZW1fc3BhY2UsIDEsIHRy YWl0cykKKworICAhJG9tcCBhbGxvY2F0ZShBKSBhbGxvY2F0b3IoYWxsb2NfaCkKKyAgYWxs b2NhdGUoQShOKSkKKyAgYSg6KSA9IFsoaSwgaT0xLE4pXQorICBpZiAobW9kICh0cmFuc2Zl ciAobG9jKGEpLCBpbnRwdHIpLDEyOCkgLz0gMCkgJgorICAgIHN0b3AgMQorICBpZiAoYW55 IChhIC89IFsoaSwgaT0xLE4pXSkpICYKKyAgICBzdG9wIDIKKyAgZGVhbGxvY2F0ZShBKQor ICAhJG9tcCBhbGxvY2F0ZShBKSBhbGxvY2F0b3IoYWxsb2NfaCkgYWxpZ24oNTEyKQorICBh bGxvY2F0ZShBKE4pKQorICBibG9jaworICAgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IEIo OikKKyAgICAhJG9tcCBhbGxvY2F0b3JzIGFsbG9jYXRlKGFsbG9jYXRvcihhbGxvY19oKSwg YWxpZ24oMjU2KSA6IEIpCisgICAgYWxsb2NhdGUoQihOKSkKKyAgICBCKDopID0gWygyKmks IGk9MSxOKV0KKyAgICBBKDopID0gQgorICAgIGlmIChtb2QgKHRyYW5zZmVyIChsb2MoQiks IGludHB0ciksIDI1NikgLz0gMCkgJgorICAgICAgc3RvcCAxCisgICAgISBlbmQgb2Ygc2Nv cGUgZGVhbGxvY2F0aW9uCisgIGVuZCBibG9jaworICBpZiAobW9kICh0cmFuc2ZlciAobG9j KGEpLCBpbnRwdHIpLDUxMikgLz0gMCkgJgorICAgIHN0b3AgMQorICBpZiAoYW55IChhIC89 IFsoMippLCBpPTEsTildKSkgJgorICAgIHN0b3AgMgorICBkZWFsbG9jYXRlKEEpICEgTXVz dCBkZWFsbG9jYXRlIGhlcmUgLSBiZWZvcmUgZGVhbGxvY2F0b3IgaXMgZGVzdHJveWVkCisg IGNhbGwgb21wX2Rlc3Ryb3lfYWxsb2NhdG9yKGFsbG9jX2gpCisgICEgTm8gYXV0byBkZWFs bG9jIG9mIEEgYmVjYXVzZSBpdCBpcyBTQVZFCitlbmQKKyEgeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJfX2J1aWx0aW5fR09NUF9hbGxvYyBcXCgiIDMgIm9tcGxvd2Vy IiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJfX2J1aWx0aW5f R09NUF9mcmVlIFxcKCIgMyAib21wbG93ZXIiIH0gfQotLSAKMi4zNC4xCgo= --------------AbyYoqGDOJbUDrmYri0ByhXm--