Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rNB01-009qOk-0r for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Jan 2024 12:14:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rNAzz-00CRwg-Mj for pgsql-hackers@arkaria.postgresql.org; Tue, 09 Jan 2024 12:14:27 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rNAzy-00CRs3-A5 for pgsql-hackers@lists.postgresql.org; Tue, 09 Jan 2024 12:14:27 +0000 Received: from esa1.fujitsucc.c3s2.iphmx.com ([68.232.152.245]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rNAzp-000eOk-BT for pgsql-hackers@postgresql.org; Tue, 09 Jan 2024 12:14:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1704802458; x=1736338458; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=KZ/6+juSM2Asdta3s7HvjqPdQgYZyJyJ5+ua79ibS38=; b=TAtFL2Qb7syPcDVXxhgnvKZURLPSbyIsdxSsVNX4I9uzMPaaSRJGYjYw Gr6uwVWuMmzZviD53k6w7Uolo8DaOWeNgq8jYH5BFkm4ryvIgwC5qbrU5 LSslJ05ilb/WVxypx39LLqKp0rBvgBRwBT2YPzGThy7bvP1I4WafIUtOf FEAVKslAFh6lHJE9u3QUd4n4xftUlGPcZiFqRmSpq8gBkLohjEhBXjuHC OR1L71tdQqvYTsL2ZRYWpyWAb6LqS0hawVemnNtiMpK6wmnH5aRLaDZBH CVWRESdzNAgBmgR9YTYq3pc949N3aGb6Bfw8Ntux0VQtbnlmNgclaw9fE w==; X-IronPort-AV: E=McAfee;i="6600,9927,10947"; a="18740844" X-IronPort-AV: E=Sophos;i="6.04,182,1695654000"; d="scan'208,223";a="18740844" Received: from mail-tycjpn01lp2168.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.168]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jan 2024 21:14:10 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dE6G2qMwBpyW2orDPZ//sPT8ZHlO070eBAjtYnr9QXq6Xnt8xWVPkXi85G/XnSkjiD/8w5Vwx8TkEZMGEZUrwGCb9y8Ri+U5PhLNHMkwwVJg/g6Kget9a2AoNtWdAsRWJhll5dZMJ4DxRzZBH9o8zVQJX+BedFOHkrF37n8uZTtIFMMYkN4Q3reH9W4+11lzAhn5cnhvxqUW8ZU/uegRjBAxeihJX62z/mMP1wLEQu3GwKhd0ZC3nne9s0qo5pbiU7QqToX2hATqNvqg3VeNpbYk8j/0yYRFt3AVGjlyoKPhf9pLZvmcO+KEgASEzzlFUvGkXajXfiOCAT9RhFh7VA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dSekiiLUYHdwsMNfyUBcKVIPCoBvgVIsT0PgpRm3T/0=; b=gGFZyypuTwvUYo0Lb7Cv2xA/p8BycnrIU6UY9ewdc35D8TxE05SHFDH4Y2Yw+dmSS7pkWlA3s1k7e4LdBjGsE1XC7XTarLSx27ZLPUBKwSml6LNQKxtqnkc2evG7aCXMw4S5iIXugq/lH26r8GDBeGDcwsMNvWr7Y5VHZdw9OewuHuehm48WU+sxEI8HnnNXGO/UsBqTh9HLJOHwdK2IY3eHCROGRJn3/fQx9WrBJa3pnJSrKWb7Yfdvzj9xQayH/xiLxzYCYNJSJvFxB1f0GgHHMrclRskk/Rd2WU0Dc/9v9XP7W868Ly3BhZXKTCubrL4+lqdLd1BgFuvKycE/Ww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by TYWPR01MB8348.jpnprd01.prod.outlook.com (2603:1096:400:177::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.15; Tue, 9 Jan 2024 12:14:05 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::638f:c5ac:dcaf:baa1]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::638f:c5ac:dcaf:baa1%7]) with mapi id 15.20.7181.015; Tue, 9 Jan 2024 12:14:04 +0000 From: "Zhijie Hou (Fujitsu)" To: Dilip Kumar , Amit Kapila , Masahiko Sawada CC: shveta malik , Bertrand Drouvot , Peter Smith , Nisha Moond , "Hayato Kuroda (Fujitsu)" , Bharath Rupireddy , Peter Eisentraut , Bruce Momjian , Ashutosh Sharma , Andres Freund , pgsql-hackers , Ajin Cherian , Alvaro Herrera Subject: RE: Synchronizing slots from primary to standby Thread-Topic: Synchronizing slots from primary to standby Thread-Index: AQHaJE9sgJJNJUqALky3mvuBKJq3g7CYl8uAgAC/xgCAANHogIAAa3WAgAArgoCAAQCOgIAADoeAgAA1dgCAABjKgIAABtwAgAL+XYCABKJcAIAAQJWAgAK2zQCAABFoAIAAWssAgADokgCAAKIxAIABM9iAgAUcsHCAAOg8AIAAsL6AgAEHJgCAAGl7gIAAGzGAgAljCKCAABkPgIABJ9qAgABFKACAApdEgIAANHAAgAanVQCAAbfUMIAA/DsAgAATNYCAAJYZAIAA46aAgAB8dwCAABaPAIAEULaAgAHkvsA= Date: Tue, 9 Jan 2024 12:14:04 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9Zjg5YTZmMzQtNTg3Yi00ZjlhLTliNWQtMGUxNGVmZjUx?= =?utf-8?B?NzhhO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFROKAiztNU0lQ?= =?utf-8?B?X0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9T?= =?utf-8?B?ZXREYXRlPTIwMjQtMDEtMDlUMTE6MDQ6MzZaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?Q?d-81e1-4858-a9d8-736e267fd4c7;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS0PR01MB5716:EE_|TYWPR01MB8348:EE_ x-ms-office365-filtering-correlation-id: 768c48a7-be9b-4834-a8b4-08dc110c78dc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YlSDrgKfCeNEjC2zlB6TzzJ8LWAaqr4ZU3+XVCEzuFixsalrltUqSvG/u5amyFXtraohBKwthtiH1Bwb/AxIi+BxBuCtxND95afySZjaFw0BGzM/brzQ9Xf30vPbrrSLy924w1kbxC+X4rTsYCoBHrYXAWSr0L4Kb82QvLNKU46VHL+N12rZsnVRUi5GY/hep23XjnfpLneWmG6m9/fD0OIgrNKC+RRgWTz0nsL6Eyra+jP4QVwZDfPYhZCgRFNx/qfD6d5njU7wQ7XRFXc1XAqKcF7Nz/mI0sQ1ZtnHxB6bCtrgmAKnyLR5V/kbH2CMVTYDfptbm9bfBUqcOzucGX+Hrdk6hpxLQg6SkTGtwxB6bMXnjgVI+oAYN5sBqg6UhB5G/YLIz24obQGraZBZrzQlyTupeCciOsvyyXO8HTJXWpsAY0sRxNrpMrf3nUkHA9lL1NsxlI1Cw6RWQDHSWne5xyF8hxbAgDOseLbYuHdcgQMB3Yt5UbJtAdCQ/vmosIF9G9qhRuXUdNfE6li+lGZOe7JrhrAlumySgch1HlL8/KklzRJvox5dgwGlNpAyC/fqSAa0y9TqF/dqJ3GNoie9IFDBW06YYEHkw/SAQtulT65zHSpHnVt56uZfl3DultsfBA+Hr+L8zsiA3HMj2n//kahW7nsq9T4hMA8qiOgBlqIJE/KreJlCq2YeI6ZTJydGM0YUqmL3yfN8dCHmIYTxvczA09q2Eb148BvPhzU= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(39860400002)(396003)(346002)(136003)(366004)(230173577357003)(230273577357003)(230922051799003)(186009)(451199024)(1590799021)(1800799012)(64100799003)(55016003)(1580799018)(7696005)(53546011)(9686003)(6506007)(478600001)(71200400001)(966005)(26005)(38100700002)(122000001)(99936003)(82960400001)(33656002)(85182001)(2906002)(41300700001)(5660300002)(7416002)(66446008)(83380400001)(66946007)(86362001)(38070700009)(76116006)(4326008)(110136005)(52536014)(54906003)(64756008)(66476007)(66556008)(316002)(8676002)(8936002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MjhrZk1tS3NEZUhWa2R5K2N1TXlCNUNWb3MxZVFaWi9xTEp1c2dJVGQwbzFQ?= =?utf-8?B?dzRnOEhpb1NHdFYwYlFYQVdYV29rN2R1VHBOUEhJOUhmNTBTZlFTTWtOZmJw?= =?utf-8?B?VVg5dnVVU1kzblVNSFAybE9jNExlOEx1RlR2SnFUY1EycGc0V0NUMzVyYTBS?= =?utf-8?B?bDEwanBoMXNiTkV2ZGJRSVUwWHRHajFJV1RRbHptOHlGTDVyR2VwTW5KRHhq?= =?utf-8?B?SVhFMzNLaHJYRFZNSEVJVk40Zmt2QU1UWlRNT1RPSkM0d2tiWFhvRFVSaENw?= =?utf-8?B?ZTlZSWIwdVVBdjlnWGwwb1dIK29mQXMrUi8vSmMwSFZxbGxtUnhhZDhjTFRq?= =?utf-8?B?SWhPVzcrUS9WM2hVNEcyUTNKNitPdkZXOC9HSU4rWHNUVEt6a3FpODVFZkpY?= =?utf-8?B?VFFweE1Pekk3WVBFK29renlRLytJMVVteVhSNjVtNWlGa1RTMVdKbXJhc2Js?= =?utf-8?B?a1g5c1dmVHlMaUZ4cXJQdUVKSjE5ekhJZ2VpSDJjVzl4WVBiNXcreGhHaDlp?= =?utf-8?B?ak9TZGlveVU5K3RUQm1wb2llR1RVOXNTOG1GTDZOTDY0enVUUGRpZVV1RGha?= =?utf-8?B?YXlmazFQSGZBSjNodG82ZUV0VFJ3WFBCSnN0OFNQRnJEUzBwZGZodVRnYmZv?= =?utf-8?B?dnNwdkNSMXkzWFp6SksxelRRb0liQVVqTmpRRXVRQWpHWDUvMHVJSFQ4RjBD?= =?utf-8?B?WG4zMUZQNjJxcnBtZGNQcjlBNnNuSTY3WUZ3OGNLb0tzNzVManI3NEwrdlRh?= =?utf-8?B?WW1ueHpTU0Z5RWx6Sjc4dHZvd3pUbDdGUmdWdVloVmpYTVQ1VTR0L2ZvWUFN?= =?utf-8?B?MWNDNStVV2RoM2xPK0NhSTZJNXBqMWZ2bEs1Q3psNExZbGJqYWo2cXkrWE5V?= =?utf-8?B?aFB4cFVwVGxUZEdZbHBEMmgwWkRldzFHc1pKMi9hb3UraE9HM293cXhDMnJ2?= =?utf-8?B?ZXYxTUVsRlE4WUNjc085OHZ2KzdYRUZXUGs5V05nbnBaMkRtNHpmVUUvRnRv?= =?utf-8?B?YTVHVVp1aTR5RmVyeVZPNmpBKzFMT21GRzhWdkl0YUt0bmV4NnRpdzVBU0pa?= =?utf-8?B?V1l1QVhzMG5kS1F4MU5vVGdvNG9kMThrdk1aRERVOFUyY3hEU3NINHVTMFA4?= =?utf-8?B?UlVKVmI4ZnMwMGt5TXB5MTl1b2djR09neTJFNm9NZHJhVG5KWGxtN3NhSHlM?= =?utf-8?B?N09HWWp3KzNVVHdFTW9iTE5KcGczd3ZncnBKU1JZNFZpbUpYdHN2enFqbUla?= =?utf-8?B?d1JvSmJZNzFGdFBMUXVPbEQ4Vm1vd0dsaFEzY29hK3J0YlpSdUYwUTliY1Ja?= =?utf-8?B?SXhDQjc5algwQTVQWFpwdGdhNC8xRm95N2pZdU5ONTl3VHpiaUlTb3YwUHh4?= =?utf-8?B?QkpIOVBsVHRGOGxCVDFzaHpsaUU3Qmg5bUNYbTIrcWNzanhjVFgwN3BObk4z?= =?utf-8?B?Q1FOeDBjUEtpVnlkL0YvOHpVWVNYRmZIRU5Jbk9TVHVEV2RrNExJbHd6WVZq?= =?utf-8?B?bU91d3pJVEhSTGY5ZEVGZFU4NXpZU3hRVUlSandndGhmajhBaGxONS9GTVUx?= =?utf-8?B?ZnZBa1pkNm5UZkdMQ3gzY29wWUxaWktZVkhKK2RCZC9BZFczc0E5b3ZmZk4v?= =?utf-8?B?azhFMTF6bHY5Y1d6M0pZYys3Uk53bktjcWIwQWN6T1FsUVJkczBqaG9Zb001?= =?utf-8?B?ZnAwWndsQTlGS09wVnRMTzRRemhpemFlZ1J5VVhTVTdvNG9qZlZ6RC9VNW95?= =?utf-8?B?V2V6WUZNYVJFRjBtQmpIYmltbllic2xUWnRkSG9mSFhMWTZZSGptYmFuczk2?= =?utf-8?B?c1NsOGo2a3pYZzZXVjZxeGJaZTJ5R2VBN29YNGpFR0N2TW1nR0c4UFZNclVx?= =?utf-8?B?akw3VWg5N25qZ3pFakNDcEh6TVhSQkNPS3FWQTlzVVpyNHFaNkZHNmJpOXRJ?= =?utf-8?B?cEFMM3U1bGxmTlVQN1NjeTRQUXpjNFdtSHk0bzNiblFnOWlyWXF5MERMSjdB?= =?utf-8?B?d05aQ2ltU0dNSVNGelk0YkhxdXUzeThZOWYyK05IV2lYV0JjYzQrV3JvVjUr?= =?utf-8?B?WEhWNlJMVXFOV2NvWnFadFFhWEp0ckxYejFwL0NSVlh5ZVlBQjF5QmtnV21n?= =?utf-8?Q?16RrtJwIlHTqYYGxyqap0M2No?= Content-Type: multipart/mixed; boundary="_005_OS0PR01MB57169DD55EC8D9D1EDB7A0C2946A2OS0PR01MB5716jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: s4vagquBP4jnyEWoHjfEWfEL29FjtN+dXhmAdAus6PaqGZEozkjn0dc5u810aYhHRfZXGCB2+Ly133/S3QW04MdsdNxvz1baZDJaUdG7UEjGjPUI9W+s8JEGVYDxOsO5rvR/Uq1ehrjAEcUxXmumVN4qhQgwSAlQTTym2V7cg73LxLONSUqHQS7Vblt6nDn/4sOE7GXbrglwV9VuJbSHQaoJO1xxAbsYMo1PqgQf60vw3epBcFFYUUpvW6yvsm4vilj2rDHqRZc4fq8/zIFYUZ7HpsekaJjKhL7MgSGRW1PtHNl+wfgxoAH2+hKEgKbcbLunPpO1gQionbQ8usvBkWOH7MqbVEt/HFeLvGJl4K/XsPHiYNkGPBDIFWjejTwCXR/OdzwO2uP7gHsnaJmhVF2iK5elSKY0jIinvmlWpOoCZFqjFavJtccs318DcKYBK9VsDdJPXxDxmuNQ2YtFvzkoGyZb/EDvJBCqjQiF03SkrLTcrJ5js5eM+2bhgTfDRxnC3sZ/D6sHsNApasXr2ksQGmB6ybL0clr3o4kkvyiCIBdzif7nAhkNUtENYcC+nBZ8ZyBdG1mz5ixVpq8cfXsJRTpdlmggT0hYzLqbKHvuw54qt+4Zx48uZzXCV7lh X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 768c48a7-be9b-4834-a8b4-08dc110c78dc X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2024 12:14:04.4329 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: zToCtx9ffJXH2Bcd3VdUFS8HWVIEQQGs06Bp/4gXPLuyMbl/cEKz2PxYpBwBoorqw7det03I19htbKOie84EQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB8348 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_005_OS0PR01MB57169DD55EC8D9D1EDB7A0C2946A2OS0PR01MB5716jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gTW9uZGF5LCBKYW51YXJ5IDgsIDIwMjQgMjoxMCBQTSBEaWxpcCBLdW1hciA8ZGlsaXBiYWxh dXRAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IE9uIEZyaSwgSmFuIDUsIDIwMjQgYXQgNTo0NeKA r1BNIEFtaXQgS2FwaWxhIDxhbWl0LmthcGlsYTE2QGdtYWlsLmNvbT4gd3JvdGU6DQo+ID4NCj4g PiBPbiBGcmksIEphbiA1LCAyMDI0IGF0IDQ6MjXigK9QTSBEaWxpcCBLdW1hciA8ZGlsaXBiYWxh dXRAZ21haWwuY29tPiB3cm90ZToNCj4gPiA+DQo+ID4gPiBPbiBGcmksIEphbiA1LCAyMDI0IGF0 IDg6NTnigK9BTSBzaHZldGEgbWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+DQo+IHdyb3Rl Og0KPiA+ID4gPg0KPiA+ID4gSSB3YXMgZ29pbmcgdGhlIHRoZSBwYXRjaCBzZXQgYWdhaW4sIEkg aGF2ZSBhIHF1ZXN0aW9uLiAgVGhlIGJlbG93DQo+ID4gPiBjb21tZW50cyBzYXkgdGhhdCB3ZSBr ZWVwIHRoZSBmYWlsb3ZlciBvcHRpb24gYXMgUEVORElORyB1bnRpbCB3ZQ0KPiA+ID4gaGF2ZSBk b25lIHRoZSBpbml0aWFsIHRhYmxlIHN5bmMgd2hpY2ggc2VlbXMgZmluZS4gIEJ1dCB3aGF0IGhh cHBlbnMNCj4gPiA+IGlmIHdlIGFkZCBhIG5ldyB0YWJsZSB0byB0aGUgcHVibGljYXRpb24gYW5k IHJlZnJlc2ggdGhlDQo+ID4gPiBzdWJzY3JpcHRpb24/IEluIHN1Y2ggYSBjYXNlIGRvZXMgdGhp cyBnbyBiYWNrIHRvIHRoZSBQRU5ESU5HIHN0YXRlIG9yDQo+IHNvbWV0aGluZyBlbHNlPw0KPiA+ ID4NCj4gPg0KPiA+IEF0IHRoaXMgc3RhZ2UsIHN1Y2ggYW4gb3BlcmF0aW9uIGlzIHByb2hpYml0 ZWQuIFVzZXJzIG5lZWQgdG8gZGlzYWJsZQ0KPiA+IHRoZSBmYWlsb3ZlciBvcHRpb24gZmlyc3Qs IHRoZW4gcGVyZm9ybSB0aGUgYWJvdmUgb3BlcmF0aW9uLCBhbmQgYWZ0ZXINCj4gPiB0aGF0IGZh aWxvdmVyIG9wdGlvbiBjYW4gYmUgcmUtZW5hYmxlZC4NCj4gDQo+IE9rYXksIHRoYXQgbWFrZXMg c2Vuc2UgdG8gbWUuDQoNCkR1cmluZyB0aGUgb2ZmLWxpc3QgZGlzY3Vzc2lvbiwgU2F3YWRhLXNh biBwcm9wb3NlZCBvbmUgaWRlYSB3aGljaCBjYW4gcmVsZWFzZSB0aGUNCnJlc3RyaWN0aW9uIGZv ciB0YWJsZSBzeW5jOiBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGxhdGVzdCBXQUwgcG9zaXRp b24sIHdlDQpjYW4gdXRpbGl6ZSB0aGUgcmVtb3RlIHJlc3RhcnRfbHNuIHRvIHJlc2VydmUgdGhl IFdBTCB3aGVuIGNyZWF0aW5nIGEgbmV3DQpzeW5jZWQgc2xvdCBvbiB0aGUgc3RhbmRieS4gVGhp cyBhcHByb2FjaCBlbGltaW5hdGVzIHRoZSBuZWVkIHRvIHdhaXQgZm9yIHRoZQ0KcHJpbWFyeSBz ZXJ2ZXIgdG8gY2F0Y2ggdXAsIHRodXMgaW1wcm92aW5nIHRoZSBzcGVlZCBvZiBzeW5jZWQgc2xv dCBjcmVhdGlvbiBvbg0KdGhlIHN0YW5kYnkgaW4gbW9zdCBzY2VuYXJpb3MuDQoNCkJ5IHVzaW5n IHRoaXMgYXBwcm9hY2gsIHRoZSBsaW1pdGF0aW9uIHRoYXQgcHJldmVudHMgdXNlcnMgZnJvbSBw ZXJmb3JtaW5nDQp0YWJsZSBzeW5jIGR1cmluZyBmYWlsb3ZlciBjYW4gYmUgZWxpbWluYXRlZC4g SW4gcHJldmlvdXMgdmVyc2lvbnMsIHRoaXMNCnJlc3RyaWN0aW9uIGV4aXN0ZWQgYmVjYXVzZSB0 YWJsZSBzeW5jIHNsb3RzIHdlcmUgb2Z0ZW4gaW5jb21wbGV0ZWx5DQpzeW5jaHJvbml6ZWQgdG8g dGhlIHN0YW5kYnkodGhlIHNsb3RzIG9uIHByaW1hcnkgY291bGQgbm90IGNhdGNoIHVwIHRoZSBz eW5jZWQNCnNsb3QpLiBBbmQgd2l0aCB0aGlzIGFwcHJvYWNoLCB0aGUgdGFibGUgc3luYyBzbG90 cyBjYW4gYmUgZWZmaWNpZW50bHkNCnN5bmNlZCB0byB0aGUgc3RhbmRieSBpbiBtb3N0IGNhc2Vz Lg0KDQpIb3dldmVyLCB0aGVyZSBjb3VsZCBzdGlsbCBiZSByYXJlIGNhc2VzIHRoYXQgdGhlIFdB TCBhcm91bmQgcmVtb3RlIHJlc3RhcnRfbHNuDQpoYXMgYmVlbiByZW1vdmVkIG9uIHN0YW5kYnks IHdlIHdpbGwgdHJ5IHRvIHJlc2VydmUgdGhlIGxhc3QgcmVtYWluaW5nIHdhbCBpbg0KdGhpcyBj YXNlIGFuZCBtYXJrIHRoZSBzbG90IGFzIHRlbXBvcmFyeSwgdGhlc2UgdGVtcCBzbG90cyB3aWxs IGJlIGNvbnZlcnRlZCB0bw0KcGVyc2lzdGVudCBvbmNlIHRoZSByZW1vdGUgcmVzdGFydF9sc24g Y2F0Y2hlcyB1cC4NCg0KV2UgdGhpbmsgdGhpcyBpZGVhIGlzIHByb21pc2luZyBhbmQgaGVyZSBp cyB0aGUgVjU4IHBhdGNoIHNldCB3aGljaCB0cmllcyB0bw0KYWRkcmVzcyB0aGUgaWRlYSwgdGhl IHN1bW1hcnkgb2YgY2hhbmdlcyBmb3IgZWFjaCBwYXRjaCBpcyBhcyBmb2xsb3dzOg0KDQpWNTgt MDAwMQ0KDQoxKSBFbmFibGVzIGZhaWxvdmVyIGZvciB0YWJsZSBzeW5jIHNsb3QuDQoyKSBSZW1v dmVzIHRoZSByZXN0cmljdGlvbiBvbiB0YWJsZSBzeW5jIHdoZW4gZmFpbG92ZXIgaXMgZW5hYmxl ZC4NCjMpIFJlbW92ZXMgdHJpc3RhdGUgaGFuZGxpbmcgZm9yIGZhaWxvdmVyIHN0YXRlLg0KNCkg UmVuYW1lcyBmYWlsb3ZlcnN0YXRlIHRvIGZhaWxvdmVyLg0KNSkgQWRkcmVzcyBQZXRlcidzIGNv bW1lbnRzWzFdLg0KDQpWNTgtMDAwMg0KMSkgQWRkIHRoZSBkb2N1bWVudCBhYm91dCBob3cgdG8g cmVzdW1lIGxvZ2ljYWwgcmVwbGljYXRpb24gYWZ0ZXIgZmFpbG92ZXIuDQoyKSBEb24ndCBzeW5j IHRlbXBvcmFyeSBmcm9tIHByaW1hcnkgc2VydmVyIGFueW1vcmUuDQozKSBGaXggb25lIHNwaW5s b2NrIG1pc3MuDQo0KSBGaXggb25lIENGYm90IHdhcm5pbmcuDQo1KSBGaXhlcyBhIGJ1ZyB3aGVy ZSBsYXN0X3VwZGF0ZV90aW1lIGlzIG5vdCBpbml0aWFsaXplZC4NCjYpIFJlc2VydmVzIFdBTCBi YXNlZCBvbiB0aGUgcmVtb3RlIHJlc3RhcnRfbHNuLg0KNykgSW1wcm92ZXMgYW5kIGFkanVzdHMg dGhlIHRlc3RzLg0KOCkgcmVtb3ZlIHRoZSBzZXBhcmF0ZSBmdW5jdGlvbiB3YWl0X2Zvcl9wcmlt YXJ5X3Nsb3RfY2F0Y2h1cCgpIGFuZCBpbnRlZ3JhdGUNCiAgaXRzIGxvZ2ljIG9mIG1hcmtpbmcg dGhlIHNsb3QgYXMgcmVhZHkgaW50byB0aGUgbWFpbiBsb29wLg0KOSkgcmVtb3ZlIHRoZSAnaScg c3RhdGUgb2Ygc3luY19zdGF0ZS4gVGhlIHNsb3RzIHRoYXQgbmVlZCB0byB3YWl0IGZvciB0aGUN CiAgcHJpbWFyeSB0byBjYXRjaCB1cCB3aWxsIGJlIG1hcmtlZCBhcyBURU1QT1JBUlksIGFuZCB0 aGV5IHdpbGwgYmUgY29udmVydGVkDQogIHRvIFBFUlNJU1RFTlQgb25jZSB0aGUgcmVtb3RlIHJl c3RhcnRfbHNuIGNhdGNoZXMgdXAuDQoNClRoYW5rcyBTaHZldGEgZm9yIHdvcmtpbmcgb24gMSkg dG8gNCkuDQoNClY1OC0wMDAzDQpSZWJhc2VzIHRoZSB0ZXN0cy4NCg0KVjU4LTAwMDQ6DQpBZGRy ZXNzIEJlcnRyYW5kIGNvbW1lbnRzWzJdLiBUaGFua3MgU2h2ZXRhIGZvciB3b3JraW5nIG9uIHRo aXMuDQoNClRPRE86IEFkZCBkb2N1bWVudHMgdG8gZ3VpZGUgdXNlciB0aGUgd2F5IHRvIGlkZW50 aXR5IGlmIHRoZSB0YWJsZSBzeW5jIHNsb3QNCmFuZCB0aGUgbWFpbiBzbG90IGlzIFJFQURZIHRo YXQgdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgYnkNCnN1YnNjcmliaW5n IHRvIHRoZSBuZXcgcHJpbWFyeS4NCg0KWzFdIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21l c3NhZ2UtaWQvQ0FIdXQlMkJQdmJiUHoxJTNEVDRielkwX0dvdFVLNDYwRWloNDFUd2p0JTNEY3pK MXoySjhTR0V3JTQwbWFpbC5nbWFpbC5jb20NClsyXSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9y Zy9tZXNzYWdlLWlkL1paYTRwTEZDZTJtQWtzMW0lNDBpcC0xMC05Ny0xLTM0LmV1LXdlc3QtMy5j b21wdXRlLmludGVybmFsDQoNCkJlc3QgUmVnYXJkcywNCkhvdSB6ag0K --_005_OS0PR01MB57169DD55EC8D9D1EDB7A0C2946A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v58-0004-Non-replication-connection-and-app_name-change.patch" Content-Description: v58-0004-Non-replication-connection-and-app_name-change.patch Content-Disposition: attachment; filename="v58-0004-Non-replication-connection-and-app_name-change.patch"; size=9735; creation-date="Tue, 09 Jan 2024 12:00:02 GMT"; modification-date="Tue, 09 Jan 2024 12:14:00 GMT" Content-Transfer-Encoding: base64 RnJvbSA0ZWJmMThjYzkzYjU1OTU3YzI3OWI1NDUxNWZlOGYyNmRmMDRjN2Y0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBUdWUsIDkgSmFuIDIwMjQgMTU6NDI6NTIgKzA4MDAKU3ViamVjdDogW1BBVENIIHY1 OCA0LzRdIE5vbiByZXBsaWNhdGlvbiBjb25uZWN0aW9uIGFuZCBhcHBfbmFtZSBjaGFuZ2UuCgpD aGFuZ2VzIGluIHRoaXMgcGF0Y2g6CjEpIENvbnZlcnQgcmVwbGljYXRpb24gY29ubmVjdGlvbiB0 byBub24tcmVwbGljYXRpb24gb25lIGluIHNsb3RzeW5jIHdvcmtlci4KMikgVXNlIGFwcF9uYW1l IGFzIHtjbHVzdGVyX25hbWV9X3Nsb3RzeW5jd29ya2VyIGluIHRoZSBzbG90c3luYyB3b3JrZXIK Y29ubmVjdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmMg ICAgICAgfCAgOCArKy0tCiAuLi4vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMg ICAgICAgfCA0NCArKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3Nsb3RzeW5jLmMgICAgfCAxMyArKysrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvdGFibGVzeW5jLmMgICB8ICAyICstCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3dvcmtlci5jICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fs cmVjZWl2ZXIuYyAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJl Y2VpdmVyLmggICAgICAgICB8ICA1ICsrLQogNyBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25z KCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3JpcHRpb25jbWRz LmMKaW5kZXggZmFhYmQyOWYxZi4uNDc1YTNjM2U0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYwpAQCAtNzUzLDcgKzc1Myw3IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAKIAkJLyog VHJ5IHRvIGNvbm5lY3QgdG8gdGhlIHB1Ymxpc2hlci4gKi8KIAkJbXVzdF91c2VfcGFzc3dvcmQg PSAhc3VwZXJ1c2VyX2FyZyhvd25lcikgJiYgb3B0cy5wYXNzd29yZHJlcXVpcmVkOwotCQl3cmNv bm4gPSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCisJ CXdyY29ubiA9IHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCB0cnVlLCB0cnVlLCBtdXN0X3VzZV9w YXNzd29yZCwKIAkJCQkJCQkJc3RtdC0+c3VibmFtZSwgJmVycik7CiAJCWlmICghd3Jjb25uKQog CQkJZXJlcG9ydChFUlJPUiwKQEAgLTkwNCw3ICs5MDQsNyBAQCBBbHRlclN1YnNjcmlwdGlvbl9y ZWZyZXNoKFN1YnNjcmlwdGlvbiAqc3ViLCBib29sIGNvcHlfZGF0YSwKIAogCS8qIFRyeSB0byBj b25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCiAJbXVzdF91c2VfcGFzc3dvcmQgPSBzdWItPnBh c3N3b3JkcmVxdWlyZWQgJiYgIXN1Yi0+b3duZXJzdXBlcnVzZXI7Ci0Jd3Jjb25uID0gd2FscmN2 X2Nvbm5lY3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCisJd3Jjb25u ID0gd2FscmN2X2Nvbm5lY3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSwgdHJ1ZSwgbXVzdF91c2VfcGFz c3dvcmQsCiAJCQkJCQkJc3ViLT5uYW1lLCAmZXJyKTsKIAlpZiAoIXdyY29ubikKIAkJZXJlcG9y dChFUlJPUiwKQEAgLTE1MzgsNyArMTUzOCw3IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCiAJCS8qIFRyeSB0byBj b25uZWN0IHRvIHRoZSBwdWJsaXNoZXIuICovCiAJCW11c3RfdXNlX3Bhc3N3b3JkID0gc3ViLT5w YXNzd29yZHJlcXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOwotCQl3cmNvbm4gPSB3YWxy Y3ZfY29ubmVjdChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKKwkJd3Jj b25uID0gd2FscmN2X2Nvbm5lY3Qoc3ViLT5jb25uaW5mbywgdHJ1ZSwgdHJ1ZSwgbXVzdF91c2Vf cGFzc3dvcmQsCiAJCQkJCQkJCXN1Yi0+bmFtZSwgJmVycik7CiAJCWlmICghd3Jjb25uKQogCQkJ ZXJlcG9ydChFUlJPUiwKQEAgLTE3ODksNyArMTc4OSw3IEBAIERyb3BTdWJzY3JpcHRpb24oRHJv cFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAkgKi8KIAlsb2FkX2Zp bGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7CiAKLQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVj dChjb25uaW5mbywgdHJ1ZSwgbXVzdF91c2VfcGFzc3dvcmQsCisJd3Jjb25uID0gd2FscmN2X2Nv bm5lY3QoY29ubmluZm8sIHRydWUsIHRydWUsIG11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCXN1 Ym5hbWUsICZlcnIpOwogCWlmICh3cmNvbm4gPT0gTlVMTCkKIAl7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZl ci5jCmluZGV4IGY5MTBhM2IxMDMuLjhhYTAxMDNkOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j CkBAIC02LDYgKzYsOSBAQAogICogbG9hZGVkIGFzIGEgZHluYW1pYyBtb2R1bGUgdG8gYXZvaWQg bGlua2luZyB0aGUgbWFpbiBzZXJ2ZXIgYmluYXJ5IHdpdGgKICAqIGxpYnBxLgogICoKKyAqIEFw YXJ0IGZyb20gd2FscmVjZWl2ZXIsIHRoZSBsaWJwcS1zcGVjaWZpYyByb3V0aW5lcyBoZXJlIGFy ZSBub3cgYmVpbmcgdXNlZAorICogYnkgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXJzIGFuZCBz bG90c3luYyB3b3JrZXIgYXMgd2VsbC4KKwogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEw LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCiAgKgogICoKQEAgLTUw LDcgKzUzLDggQEAgc3RydWN0IFdhbFJlY2VpdmVyQ29ubgogCiAvKiBQcm90b3R5cGVzIGZvciBp bnRlcmZhY2UgZnVuY3Rpb25zICovCiBzdGF0aWMgV2FsUmVjZWl2ZXJDb25uICpsaWJwcXJjdl9j b25uZWN0KGNvbnN0IGNoYXIgKmNvbm5pbmZvLAotCQkJCQkJCQkJCSBib29sIGxvZ2ljYWwsIGJv b2wgbXVzdF91c2VfcGFzc3dvcmQsCisJCQkJCQkJCQkJIGJvb2wgcmVwbGljYXRpb24sIGJvb2wg bG9naWNhbCwKKwkJCQkJCQkJCQkgYm9vbCBtdXN0X3VzZV9wYXNzd29yZCwKIAkJCQkJCQkJCQkg Y29uc3QgY2hhciAqYXBwbmFtZSwgY2hhciAqKmVycik7CiBzdGF0aWMgdm9pZCBsaWJwcXJjdl9j aGVja19jb25uaW5mbyhjb25zdCBjaGFyICpjb25uaW5mbywKIAkJCQkJCQkJCWJvb2wgbXVzdF91 c2VfcGFzc3dvcmQpOwpAQCAtMTI1LDcgKzEyOSwxMiBAQCBfUEdfaW5pdCh2b2lkKQogfQogCiAv KgotICogRXN0YWJsaXNoIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBwcmltYXJ5IHNlcnZlciBmb3Ig WExPRyBzdHJlYW1pbmcKKyAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFy eSBzZXJ2ZXIuCisgKgorICogVGhlIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgY291bGQgYmUgZWl0 aGVyIGEgcmVwbGljYXRpb24gb25lIG9yCisgKiBhIG5vbi1yZXBsaWNhdGlvbiBvbmUgYmFzZWQg b24gaW5wdXQgYXJndW1lbnQgJ3JlcGxpY2F0aW9uJy4gQW5kIGZ1cnRoZXIKKyAqIGlmIGl0IGlz IGEgcmVwbGljYXRpb24gY29ubmVjdGlvbiwgaXQgY291bGQgYmUgZWl0aGVyIGxvZ2ljYWwgb3Ig cGh5c2ljYWwKKyAqIGJhc2VkIG9uIGlucHV0IGFyZ3VtZW50ICdsb2dpY2FsJy4KICAqCiAgKiBJ ZiBhbiBlcnJvciBvY2N1cnMsIHRoaXMgZnVuY3Rpb24gd2lsbCBub3JtYWxseSByZXR1cm4gTlVM TCBhbmQgc2V0ICplcnIKICAqIHRvIGEgcGFsbG9jJ2VkIGVycm9yIG1lc3NhZ2UuIEhvd2V2ZXIs IGlmIG11c3RfdXNlX3Bhc3N3b3JkIGlzIHRydWUgYW5kCkBAIC0xMzYsOCArMTQ1LDggQEAgX1BH X2luaXQodm9pZCkKICAqIGNhc2UuCiAgKi8KIHN0YXRpYyBXYWxSZWNlaXZlckNvbm4gKgotbGli cHFyY3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywgYm9vbCBsb2dpY2FsLCBib29sIG11 c3RfdXNlX3Bhc3N3b3JkLAotCQkJCSBjb25zdCBjaGFyICphcHBuYW1lLCBjaGFyICoqZXJyKQor bGlicHFyY3ZfY29ubmVjdChjb25zdCBjaGFyICpjb25uaW5mbywgYm9vbCByZXBsaWNhdGlvbiwg Ym9vbCBsb2dpY2FsLAorCQkJCSBib29sIG11c3RfdXNlX3Bhc3N3b3JkLCBjb25zdCBjaGFyICph cHBuYW1lLCBjaGFyICoqZXJyKQogewogCVdhbFJlY2VpdmVyQ29ubiAqY29ubjsKIAljb25zdCBj aGFyICprZXlzWzZdOwpAQCAtMTUwLDE3ICsxNTksMjYgQEAgbGlicHFyY3ZfY29ubmVjdChjb25z dCBjaGFyICpjb25uaW5mbywgYm9vbCBsb2dpY2FsLCBib29sIG11c3RfdXNlX3Bhc3N3b3JkLAog CSAqLwogCWtleXNbaV0gPSAiZGJuYW1lIjsKIAl2YWxzW2ldID0gY29ubmluZm87Ci0Ja2V5c1sr K2ldID0gInJlcGxpY2F0aW9uIjsKLQl2YWxzW2ldID0gbG9naWNhbCA/ICJkYXRhYmFzZSIgOiAi dHJ1ZSI7Ci0JaWYgKCFsb2dpY2FsKQorCisJLyogV2UgY2FuIG5vdCBoYXZlIGxvZ2ljYWwgd2l0 aG91dCByZXBsaWNhdGlvbiAqLworCWlmICghcmVwbGljYXRpb24pCisJCUFzc2VydCghbG9naWNh bCk7CisJZWxzZQogCXsKLQkJLyoKLQkJICogVGhlIGRhdGFiYXNlIG5hbWUgaXMgaWdub3JlZCBi eSB0aGUgc2VydmVyIGluIHJlcGxpY2F0aW9uIG1vZGUsIGJ1dAotCQkgKiBzcGVjaWZ5ICJyZXBs aWNhdGlvbiIgZm9yIC5wZ3Bhc3MgbG9va3VwLgotCQkgKi8KLQkJa2V5c1srK2ldID0gImRibmFt ZSI7Ci0JCXZhbHNbaV0gPSAicmVwbGljYXRpb24iOworCQlrZXlzWysraV0gPSAicmVwbGljYXRp b24iOworCQl2YWxzW2ldID0gbG9naWNhbCA/ICJkYXRhYmFzZSIgOiAidHJ1ZSI7CisKKwkJaWYg KCFsb2dpY2FsKQorCQl7CisJCQkvKgorCQkJICogVGhlIGRhdGFiYXNlIG5hbWUgaXMgaWdub3Jl ZCBieSB0aGUgc2VydmVyIGluIHJlcGxpY2F0aW9uIG1vZGUsCisJCQkgKiBidXQgc3BlY2lmeSAi cmVwbGljYXRpb24iIGZvciAucGdwYXNzIGxvb2t1cC4KKwkJCSAqLworCQkJa2V5c1srK2ldID0g ImRibmFtZSI7CisJCQl2YWxzW2ldID0gInJlcGxpY2F0aW9uIjsKKwkJfQogCX0KKwogCWtleXNb KytpXSA9ICJmYWxsYmFja19hcHBsaWNhdGlvbl9uYW1lIjsKIAl2YWxzW2ldID0gYXBwbmFtZTsK IAlpZiAobG9naWNhbCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvc2xvdHN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMu YwppbmRleCAzOWYyMGQ4OTU1Li40NzhkYmU2MmFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9zbG90c3luYy5jCkBAIC05MjIsNiArOTIyLDcgQEAgUmVwbFNsb3RTeW5jV29y a2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAlib29sCQlhbV9jYXNjYWRpbmdfc3RhbmRieTsKIAlj aGFyCSAgICplcnI7CiAJVGltZXN0YW1wVHogbGFzdF91cGRhdGVfdGltZTsKKwlTdHJpbmdJbmZv RGF0YSBhcHBfbmFtZTsKIAogCWVyZXBvcnQoTE9HLCBlcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qg c3luYyB3b3JrZXIgc3RhcnRlZCIpKTsKIApAQCAtOTU0LDEzICs5NTUsMjEgQEAgUmVwbFNsb3RT eW5jV29ya2VyTWFpbihEYXR1bSBtYWluX2FyZykKIAkgKi8KIAlCYWNrZ3JvdW5kV29ya2VySW5p dGlhbGl6ZUNvbm5lY3Rpb24oZGJuYW1lLCBOVUxMLCAwKTsKIAorCWluaXRTdHJpbmdJbmZvKCZh cHBfbmFtZSk7CisJaWYgKGNsdXN0ZXJfbmFtZVswXSkKKwkJYXBwZW5kU3RyaW5nSW5mbygmYXBw X25hbWUsICIlc18lcyIsIGNsdXN0ZXJfbmFtZSwgInNsb3RzeW5jd29ya2VyIik7CisJZWxzZQor CQlhcHBlbmRTdHJpbmdJbmZvKCZhcHBfbmFtZSwgIiVzIiwgInNsb3RzeW5jd29ya2VyIik7CisK IAkvKgogCSAqIEVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiB0byB0aGUgcHJpbWFyeSBzZXJ2ZXIg Zm9yIHNsb3RzCiAJICogc3luY2hyb25pemF0aW9uLgogCSAqLwotCXdyY29ubiA9IHdhbHJjdl9j b25uZWN0KFByaW1hcnlDb25uSW5mbywgdHJ1ZSwgZmFsc2UsCi0JCQkJCQkJY2x1c3Rlcl9uYW1l WzBdID8gY2x1c3Rlcl9uYW1lIDogInNsb3RzeW5jd29ya2VyIiwKKwl3cmNvbm4gPSB3YWxyY3Zf Y29ubmVjdChQcmltYXJ5Q29ubkluZm8sIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJCQkJCQkJYXBw X25hbWUuZGF0YSwKIAkJCQkJCQkmZXJyKTsKKwlwZnJlZShhcHBfbmFtZS5kYXRhKTsKKwogCWlm ICh3cmNvbm4gPT0gTlVMTCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQllcnJjb2RlKEVSUkNPREVf Q09OTkVDVElPTl9GQUlMVVJFKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Rh Ymxlc3luYy5jCmluZGV4IDBiZjAwMmUzZDUuLjg5YjYxZGY5YzMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwpAQCAtMTMyOSw3ICsxMzI5LDcgQEAgTG9n aWNhbFJlcFN5bmNUYWJsZVN0YXJ0KFhMb2dSZWNQdHIgKm9yaWdpbl9zdGFydHBvcykKIAkgKiBz byB0aGF0IHN5bmNocm9ub3VzIHJlcGxpY2F0aW9uIGNhbiBkaXN0aW5ndWlzaCB0aGVtLgogCSAq LwogCUxvZ1JlcFdvcmtlcldhbFJjdkNvbm4gPQotCQl3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlw dGlvbi0+Y29ubmluZm8sIHRydWUsCisJCXdhbHJjdl9jb25uZWN0KE15U3Vic2NyaXB0aW9uLT5j b25uaW5mbywgdHJ1ZSwgdHJ1ZSwKIAkJCQkJICAgbXVzdF91c2VfcGFzc3dvcmQsCiAJCQkJCSAg IHNsb3RuYW1lLCAmZXJyKTsKIAlpZiAoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiA9PSBOVUxMKQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKaW5kZXggM2RlYTEwZjliMy4u NGVmZmI2Mjg0OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93 b3JrZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBA IC00NTE4LDcgKzQ1MTgsNyBAQCBydW5fYXBwbHlfd29ya2VyKCkKIAltdXN0X3VzZV9wYXNzd29y ZCA9IE15U3Vic2NyaXB0aW9uLT5wYXNzd29yZHJlcXVpcmVkICYmCiAJCSFNeVN1YnNjcmlwdGlv bi0+b3duZXJzdXBlcnVzZXI7CiAKLQlMb2dSZXBXb3JrZXJXYWxSY3ZDb25uID0gd2FscmN2X2Nv bm5lY3QoTXlTdWJzY3JpcHRpb24tPmNvbm5pbmZvLCB0cnVlLAorCUxvZ1JlcFdvcmtlcldhbFJj dkNvbm4gPSB3YWxyY3ZfY29ubmVjdChNeVN1YnNjcmlwdGlvbi0+Y29ubmluZm8sIHRydWUsIHRy dWUsCiAJCQkJCQkJCQkJCW11c3RfdXNlX3Bhc3N3b3JkLAogCQkJCQkJCQkJCQlNeVN1YnNjcmlw dGlvbi0+bmFtZSwgJmVycik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5jCmlu ZGV4IGZmYWNkNTVlNWMuLmYzNGFiMDlhYzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2FscmVj ZWl2ZXIuYwpAQCAtMjk2LDcgKzI5Niw3IEBAIFdhbFJlY2VpdmVyTWFpbih2b2lkKQogCXNpZ3By b2NtYXNrKFNJR19TRVRNQVNLLCAmVW5CbG9ja1NpZywgTlVMTCk7CiAKIAkvKiBFc3RhYmxpc2gg dGhlIGNvbm5lY3Rpb24gdG8gdGhlIHByaW1hcnkgZm9yIFhMT0cgc3RyZWFtaW5nICovCi0Jd3Jj b25uID0gd2FscmN2X2Nvbm5lY3QoY29ubmluZm8sIGZhbHNlLCBmYWxzZSwKKwl3cmNvbm4gPSB3 YWxyY3ZfY29ubmVjdChjb25uaW5mbywgdHJ1ZSwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCWNsdXN0 ZXJfbmFtZVswXSA/IGNsdXN0ZXJfbmFtZSA6ICJ3YWxyZWNlaXZlciIsCiAJCQkJCQkJJmVycik7 CiAJaWYgKCF3cmNvbm4pCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxy ZWNlaXZlci5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2ZXIuaAppbmRleCA1 ZTk0MmNiNGZjLi42OGFjMDc0Mjc0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi93YWxyZWNlaXZlci5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVy LmgKQEAgLTIzNyw2ICsyMzcsNyBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSY3ZFeGVjUmVzdWx0CiAg KiByZXR1cm5lZCB3aXRoICdlcnInIGluY2x1ZGluZyB0aGUgZXJyb3IgZ2VuZXJhdGVkLgogICov CiB0eXBlZGVmIFdhbFJlY2VpdmVyQ29ubiAqKCp3YWxyY3ZfY29ubmVjdF9mbikgKGNvbnN0IGNo YXIgKmNvbm5pbmZvLAorCQkJCQkJCQkJCQkgICBib29sIHJlcGxpY2F0aW9uLAogCQkJCQkJCQkJ CQkgICBib29sIGxvZ2ljYWwsCiAJCQkJCQkJCQkJCSAgIGJvb2wgbXVzdF91c2VfcGFzc3dvcmQs CiAJCQkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmFwcG5hbWUsCkBAIC00MzQsOCArNDM1LDggQEAg dHlwZWRlZiBzdHJ1Y3QgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlCiAKIGV4dGVybiBQR0RMTElN UE9SVCBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUgKldhbFJlY2VpdmVyRnVuY3Rpb25zOwogCi0j ZGVmaW5lIHdhbHJjdl9jb25uZWN0KGNvbm5pbmZvLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29y ZCwgYXBwbmFtZSwgZXJyKSBcCi0JV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9jb25uZWN0 KGNvbm5pbmZvLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNzd29yZCwgYXBwbmFtZSwgZXJyKQorI2Rl ZmluZSB3YWxyY3ZfY29ubmVjdChjb25uaW5mbywgcmVwbGljYXRpb24sIGxvZ2ljYWwsIG11c3Rf dXNlX3Bhc3N3b3JkLCBhcHBuYW1lLCBlcnIpIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2Fs cmN2X2Nvbm5lY3QoY29ubmluZm8sIHJlcGxpY2F0aW9uLCBsb2dpY2FsLCBtdXN0X3VzZV9wYXNz d29yZCwgYXBwbmFtZSwgZXJyKQogI2RlZmluZSB3YWxyY3ZfY2hlY2tfY29ubmluZm8oY29ubmlu Zm8sIG11c3RfdXNlX3Bhc3N3b3JkKSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9j aGVja19jb25uaW5mbyhjb25uaW5mbywgbXVzdF91c2VfcGFzc3dvcmQpCiAjZGVmaW5lIHdhbHJj dl9nZXRfY29ubmluZm8oY29ubikgXAotLSAKMi4zMC4wLndpbmRvd3MuMgoK --_005_OS0PR01MB57169DD55EC8D9D1EDB7A0C2946A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v58-0001-Enable-setting-failover-property-for-a-slot-thro.patch" Content-Description: v58-0001-Enable-setting-failover-property-for-a-slot-thro.patch Content-Disposition: attachment; filename="v58-0001-Enable-setting-failover-property-for-a-slot-thro.patch"; size=103071; creation-date="Tue, 09 Jan 2024 12:00:02 GMT"; modification-date="Tue, 09 Jan 2024 12:14:01 GMT" Content-Transfer-Encoding: base64 RnJvbSBmOGI0NGFiOWVjYjY2MTRkNDlmODVmYWQ2ZDI2YzgwZGU2YzA1MTJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaHZldGEgTWFsaWsgPHNodmV0YS5tYWxpa0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNCBKYW4gMjAyNCAwOToxNToyNiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjU4 IDEvMl0gRW5hYmxlIHNldHRpbmcgZmFpbG92ZXIgcHJvcGVydHkgZm9yIGEgc2xvdCB0aHJvdWdo CiBTUUwgQVBJIGFuZCBzdWJzY3JpcHRpb24gY29tbWFuZHMKClRoaXMgY29tbWl0IGFkZHMgdGhl IGZhaWxvdmVyIHByb3BlcnR5IHRvIHRoZSByZXBsaWNhdGlvbiBzbG90LiBUaGUKZmFpbG92ZXIg cHJvcGVydHkgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNsb3Qgd2lsbCBiZSBzeW5jZWQgdG8gdGhl IHN0YW5kYnkKc2VydmVycywgZW5hYmxpbmcgdGhlIHJlc3VtcHRpb24gb2YgY29ycmVzcG9uZGlu ZyBsb2dpY2FsIHJlcGxpY2F0aW9uCmFmdGVyIGZhaWxvdmVyLiBCdXQgbm90ZSB0aGF0IHRoaXMg Y29tbWl0IGRvZXMgbm90IHlldCBpbmNsdWRlIHRoZQpjYXBhYmlsaXR5IHRvIGFjdHVhbGx5IHN5 bmMgdGhlIHJlcGxpY2F0aW9uIHNsb3Q7IHRoZSBuZXh0IHBhdGNoIHdpbGwKYWRkcmVzcyB0aGF0 LgoKSW4gYWRkaXRpb24sIGEgbmV3IHJlcGxpY2F0aW9uIGNvbW1hbmQgbmFtZWQgQUxURVJfUkVQ TElDQVRJT05fU0xPVCBhbmQgYQpjb3JyZXNwb25kaW5nIHdhbHJlY2VpdmVyIEFQSSBmdW5jdGlv biBuYW1lZCB3YWxyY3ZfYWx0ZXJfc2xvdCBoYXZlIGJlZW4KaW1wbGVtZW50ZWQuIFRoZXNlIGFk ZGl0aW9ucyBwcm92aWRlIHN1YnNjcmliZXJzIG9yIHVzZXJzIHRoZSBhYmlsaXR5IHRvCm1vZGlm eSB0aGUgZmFpbG92ZXIgcHJvcGVydHkgb2YgYSByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBwdWJs aXNoZXIuCgpNb3Jlb3ZlciwgYSBuZXcgc3Vic2NyaXB0aW9uIG9wdGlvbiBjYWxsZWQgJ2ZhaWxv dmVyJyBoYXMgYmVlbiBhZGRlZCwKYWxsb3dpbmcgdXNlcnMgdG8gc2V0IGl0IHdoZW4gY3JlYXRp bmcgb3IgYWx0ZXJpbmcgYSBzdWJzY3JpcHRpb24uIEFsc28sCmEgbmV3IHBhcmFtZXRlciAnZmFp bG92ZXInIGlzIGFkZGVkIHRvIHRoZQpwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90 IGZ1bmN0aW9uLgoKVGhlIHZhbHVlIG9mIHRoZSAnZmFpbG92ZXInIGZsYWcgaXMgZGlzcGxheWVk IGFzIHBhcnQgb2YKcGdfcmVwbGljYXRpb25fc2xvdHMgdmlldy4KLS0tCiBjb250cmliL3Rlc3Rf ZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQgICAgICAgfCAgNTggKysrKysrCiBjb250cmliL3Rl c3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsICAgICAgICAgICAgfCAgMTMgKysKIGRvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwogZG9jL3NyYy9zZ21s L2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBkb2Mvc3JjL3NnbWwv cHJvdG9jb2wuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgNTIgKysrKysrCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sICAgICAgfCAgMTYgKy0KIGRvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sICAgICB8ICAxMiArKwogZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAgICAgICAgIHwgIDExICsrCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9zeXN0ZW1fZnVuY3Rpb25zLnNxbCAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvc3Vic2NyaXB0aW9uY21kcy5jICAgICAgIHwgMTEzICsrKysrKysrKysrLQogLi4uL2xpYnBx d2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jICAgICAgIHwgIDM4ICsrKy0KIHNyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgICB8ICAgMSArCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcmVwbF9ncmFtLnkgICAgICAgICAgIHwgIDIwICsrLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vcmVwbF9zY2FubmVyLmwgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgICAgICB8ICAzMyArKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9zbG90ZnVuY3MuYyAgICAgICAgICAgfCAgMTYgKy0KIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgICAgIHwgIDY0ICsrKysrKy0KIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfdXBn cmFkZS9pbmZvLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2Jpbi9wZ191cGdy YWRlL3BnX3VwZ3JhZGUuYyAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ191cGdyYWRl L3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwgICAgIHwgICA2ICstCiBzcmMvYmluL3BzcWwvZGVzY3Jp YmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIHNyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDE0ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3N1YnNjcmlwdGlvbi5oICAgICAgICAgfCAgMTEgKysKIHNyYy9pbmNsdWRlL25vZGVzL3JlcGxu b2Rlcy5oICAgICAgICAgICAgICAgICB8ICAxMiArKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c2xvdC5oICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93 YWxyZWNlaXZlci5oICAgICAgICAgfCAgMTggKy0KIC4uLi90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVy X3Nsb3RzX3N5bmMucGwgICAgICB8ICA4OSArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3J1bGVzLm91dCAgICAgICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCAgICB8IDE2NSArKysrKysrKysrLS0tLS0tLS0KIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgICAgICAgICB8ICAgOCArCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDIgKwogMzkgZmlsZXMg Y2hhbmdlZCwgNzQ3IGluc2VydGlvbnMoKyksIDEyNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5 bmMucGwKCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5v dXQgYi9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQvc2xvdC5vdXQKaW5kZXggNjNhOTk0 MGY3My4uMjYxZDg4ODZkMyAxMDA2NDQKLS0tIGEvY29udHJpYi90ZXN0X2RlY29kaW5nL2V4cGVj dGVkL3Nsb3Qub3V0CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9zbG90Lm91 dApAQCAtNDA2LDMgKzQwNiw2MSBAQCBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdj b3BpZWRfc2xvdDJfbm90ZW1wJyk7CiAgCiAoMSByb3cpCiAKKy0tIFRlc3QgZmFpbG92ZXIgb3B0 aW9uIG9mIHNsb3RzLgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX3RydWVfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2Us IGZhbHNlLCB0cnVlKTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisK K1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdm YWlsb3Zlcl9mYWxzZV9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBmYWxzZSwgZmFsc2UsIGZhbHNl KTsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisKK1NFTEVDVCAnaW5p dCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZh dWx0X3Nsb3QnLCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSk7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgaW5pdAorKDEgcm93KQorCitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRl X3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKKyA/Y29sdW1uPyAK Ky0tLS0tLS0tLS0KKyBpbml0CisoMSByb3cpCisKK1NFTEVDVCBzbG90X25hbWUsIHNsb3RfdHlw ZSwgZmFpbG92ZXIgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90czsKKyAgICAgICBzbG90X25hbWUg ICAgICAgfCBzbG90X3R5cGUgfCBmYWlsb3ZlciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBmYWlsb3Zlcl90cnVlX3Nsb3QgICAgfCBsb2dpY2FsICAg fCB0CisgZmFpbG92ZXJfZmFsc2Vfc2xvdCAgIHwgbG9naWNhbCAgIHwgZgorIGZhaWxvdmVyX2Rl ZmF1bHRfc2xvdCB8IGxvZ2ljYWwgICB8IGYKKyBwaHlzaWNhbF9zbG90ICAgICAgICAgfCBwaHlz aWNhbCAgfCBmCisoNCByb3dzKQorCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdm YWlsb3Zlcl90cnVlX3Nsb3QnKTsKKyBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90Jyk7CisgcGdfZHJvcF9yZXBsaWNhdGlvbl9z bG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnZmFpbG92ZXJfZGVmYXVsdF9zbG90Jyk7CisgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJv dykKKworU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncGh5c2ljYWxfc2xvdCcpOwor IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5z cWwgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL3Nsb3Quc3FsCmluZGV4IDFhYTI3YzU2Njcu LjQ1YWVhZTdmZDUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvc2xvdC5z cWwKKysrIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9zbG90LnNxbApAQCAtMTc2LDMgKzE3 NiwxNiBAQCBPUkRFUiBCWSBvLnNsb3RfbmFtZSwgYy5zbG90X25hbWU7CiBTRUxFQ1QgcGdfZHJv cF9yZXBsaWNhdGlvbl9zbG90KCdvcmlnX3Nsb3QyJyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBsaWNh dGlvbl9zbG90KCdjb3BpZWRfc2xvdDJfbm9fY2hhbmdlJyk7CiBTRUxFQ1QgcGdfZHJvcF9yZXBs aWNhdGlvbl9zbG90KCdjb3BpZWRfc2xvdDJfbm90ZW1wJyk7CisKKy0tIFRlc3QgZmFpbG92ZXIg b3B0aW9uIG9mIHNsb3RzLgorU0VMRUNUICdpbml0JyBGUk9NIHBnX2NyZWF0ZV9sb2dpY2FsX3Jl cGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX3RydWVfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFs c2UsIGZhbHNlLCB0cnVlKTsKK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNhbF9y ZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9mYWxzZV9zbG90JywgJ3Rlc3RfZGVjb2RpbmcnLCBm YWxzZSwgZmFsc2UsIGZhbHNlKTsKK1NFTEVDVCAnaW5pdCcgRlJPTSBwZ19jcmVhdGVfbG9naWNh bF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl9kZWZhdWx0X3Nsb3QnLCAndGVzdF9kZWNvZGlu ZycsIGZhbHNlLCBmYWxzZSk7CitTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX3BoeXNpY2Fs X3JlcGxpY2F0aW9uX3Nsb3QoJ3BoeXNpY2FsX3Nsb3QnKTsKKworU0VMRUNUIHNsb3RfbmFtZSwg c2xvdF90eXBlLCBmYWlsb3ZlciBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzOworCitTRUxFQ1Qg cGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdmYWlsb3Zlcl90cnVlX3Nsb3QnKTsKK1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2ZhbHNlX3Nsb3QnKTsKK1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2ZhaWxvdmVyX2RlZmF1bHRfc2xvdCcpOworU0VMRUNU IHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgncGh5c2ljYWxfc2xvdCcpOwpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApp bmRleCAzZWM3MzkxZWM1Li5hNTAxM2NiOGJjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNzk5MCw2ICs3 OTkwLDE3IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQm Z3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9lbnRyeT4K ICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnN1YmZhaWxvdmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRydWUsIHRoZSBhc3NvY2lhdGVkIHJl cGxpY2F0aW9uIHNsb3RzIChpLmUuIHRoZSBtYWluIHNsb3QgYW5kIHRoZQorICAgICAgIHRhYmxl IHN5bmMgc2xvdHMpIGluIHRoZSB1cHN0cmVhbSBkYXRhYmFzZSBhcmUgZW5hYmxlZCB0byBiZQor ICAgICAgIHN5bmNocm9uaXplZCB0byB0aGUgcGh5c2ljYWwgc3RhbmRieXMuCisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAg ICAgICAgPHN0cnVjdGZpZWxkPnN1YmNvbm5pbmZvPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwv dHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwv ZnVuYy5zZ21sCmluZGV4IGNlYzIxZTQyYzAuLjE2OWRiYTFhOWQgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjc1NDcs NyArMjc1NDcsNyBAQCBwb3N0Z3Jlcz0jIFNFTEVDVCAnMC8wJzo6cGdfbHNuICsgcGQuc2VnbWVu dF9udW1iZXIgKiBwcy5zZXR0aW5nOjppbnQgKyA6b2Zmc2V0CiAgICAgICAgIDxpbmRleHRlcm0+ CiAgICAgICAgICA8cHJpbWFyeT5wZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90PC9w cmltYXJ5PgogICAgICAgICA8L2luZGV4dGVybT4KLSAgICAgICAgPGZ1bmN0aW9uPnBnX2NyZWF0 ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3Q8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+c2xvdF9u YW1lPC9wYXJhbWV0ZXI+IDx0eXBlPm5hbWU8L3R5cGU+LCA8cGFyYW1ldGVyPnBsdWdpbjwvcGFy YW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPnRlbXBvcmFy eTwvcGFyYW1ldGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiwgPHBhcmFtZXRlcj50d29waGFzZTwv cGFyYW1ldGVyPiA8dHlwZT5ib29sZWFuPC90eXBlPiA8L29wdGlvbmFsPiApCisgICAgICAgIDxm dW5jdGlvbj5wZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90PC9mdW5jdGlvbj4gKCA8 cGFyYW1ldGVyPnNsb3RfbmFtZTwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiwgPHBhcmFt ZXRlcj5wbHVnaW48L3BhcmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4gPG9wdGlvbmFsPiwgPHBh cmFtZXRlcj50ZW1wb3Jhcnk8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4sIDxwYXJh bWV0ZXI+dHdvcGhhc2U8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4sIDxwYXJhbWV0 ZXI+ZmFpbG92ZXI8L3BhcmFtZXRlcj4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4gPC9vcHRpb25hbD4g KQogICAgICAgICA8cmV0dXJudmFsdWU+cmVjb3JkPC9yZXR1cm52YWx1ZT4KICAgICAgICAgKCA8 cGFyYW1ldGVyPnNsb3RfbmFtZTwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiwKICAgICAg ICAgPHBhcmFtZXRlcj5sc248L3BhcmFtZXRlcj4gPHR5cGU+cGdfbHNuPC90eXBlPiApCkBAIC0y NzU2Miw4ICsyNzU2MiwxMyBAQCBwb3N0Z3Jlcz0jIFNFTEVDVCAnMC8wJzo6cGdfbHNuICsgcGQu c2VnbWVudF9udW1iZXIgKiBwcy5zZXR0aW5nOjppbnQgKyA6b2Zmc2V0CiAgICAgICAgIHJlbGVh c2VkIHVwb24gYW55IGVycm9yLiBUaGUgb3B0aW9uYWwgZm91cnRoIHBhcmFtZXRlciwKICAgICAg ICAgPHBhcmFtZXRlcj50d29waGFzZTwvcGFyYW1ldGVyPiwgd2hlbiBzZXQgdG8gdHJ1ZSwgc3Bl Y2lmaWVzCiAgICAgICAgIHRoYXQgdGhlIGRlY29kaW5nIG9mIHByZXBhcmVkIHRyYW5zYWN0aW9u cyBpcyBlbmFibGVkIGZvciB0aGlzCi0gICAgICAgIHNsb3QuIEEgY2FsbCB0byB0aGlzIGZ1bmN0 aW9uIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgdGhlIHJlcGxpY2F0aW9uCi0gICAgICAgIHByb3Rv Y29sIGNvbW1hbmQgPGxpdGVyYWw+Q1JFQVRFX1JFUExJQ0FUSU9OX1NMT1QgLi4uIExPR0lDQUw8 L2xpdGVyYWw+LgorICAgICAgICBzbG90LiBUaGUgb3B0aW9uYWwgZmlmdGggcGFyYW1ldGVyLAor ICAgICAgICA8cGFyYW1ldGVyPmZhaWxvdmVyPC9wYXJhbWV0ZXI+LCB3aGVuIHNldCB0byB0cnVl LAorICAgICAgICBzcGVjaWZpZXMgdGhhdCB0aGlzIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBzeW5j ZWQgdG8gdGhlCisgICAgICAgIHBoeXNpY2FsIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbCByZXBs aWNhdGlvbiBjYW4gYmUgcmVzdW1lZAorICAgICAgICBhZnRlciBmYWlsb3Zlci4gQSBjYWxsIHRv IHRoaXMgZnVuY3Rpb24gaGFzIHRoZSBzYW1lIGVmZmVjdCBhcworICAgICAgICB0aGUgcmVwbGlj YXRpb24gcHJvdG9jb2wgY29tbWFuZAorICAgICAgICA8bGl0ZXJhbD5DUkVBVEVfUkVQTElDQVRJ T05fU0xPVCAuLi4gTE9HSUNBTDwvbGl0ZXJhbD4uCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAppbmRleCA2YzNlOGE2MzFkLi5hZjk5N2VmZDJiIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cHJvdG9jb2wuc2dtbApAQCAtMjA2MCw2ICsyMDYwLDE3IEBAIHBzcWwgImRibmFtZT1wb3N0Z3Jl cyByZXBsaWNhdGlvbj1kYXRhYmFzZSIgLWMgIklERU5USUZZX1NZU1RFTTsiCiAgICAgICAgICA8 L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAg ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5GQUlMT1ZFUiBbIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4gXTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAg ICAgIElmIHRydWUsIHRoZSBzbG90IGlzIGVuYWJsZWQgdG8gYmUgc3luY2VkIHRvIHRoZSBwaHlz aWNhbAorICAgICAgICAgIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBjYW4g YmUgcmVzdW1lZCBhZnRlciBmYWlsb3Zlci4KKyAgICAgICAgICBUaGUgZGVmYXVsdCBpcyBmYWxz ZS4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxp c3RlbnRyeT4KICAgICAgIDwvdmFyaWFibGVsaXN0PgogCiAgICAgICA8cGFyYT4KQEAgLTIxMjQs NiArMjEzNSw0NyBAQCBwc3FsICJkYm5hbWU9cG9zdGdyZXMgcmVwbGljYXRpb249ZGF0YWJhc2Ui IC1jICJJREVOVElGWV9TWVNURU07IgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVu dHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wtcmVwbGljYXRpb24tYWx0ZXIt cmVwbGljYXRpb24tc2xvdCIgeHJlZmxhYmVsPSJBTFRFUl9SRVBMSUNBVElPTl9TTE9UIj4KKyAg ICAgPHRlcm0+PGxpdGVyYWw+QUxURVJfUkVQTElDQVRJT05fU0xPVDwvbGl0ZXJhbD4gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNsb3RfbmFtZTwvcmVwbGFjZWFibGU+ICggPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKQor ICAgICAgPGluZGV4dGVybT48cHJpbWFyeT5BTFRFUl9SRVBMSUNBVElPTl9TTE9UPC9wcmltYXJ5 PjwvaW5kZXh0ZXJtPgorICAgICA8L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJh PgorICAgICAgIENoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIHJlcGxpY2F0aW9uIHNsb3QuCisg ICAgICAgU2VlIDx4cmVmIGxpbmtlbmQ9InN0cmVhbWluZy1yZXBsaWNhdGlvbi1zbG90cyIvPiBm b3IgbW9yZSBhYm91dAorICAgICAgIHJlcGxpY2F0aW9uIHNsb3RzLiBUaGlzIGNvbW1hbmQgaXMg Y3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGZvciBsb2dpY2FsCisgICAgICAgcmVwbGljYXRpb24g c2xvdHMuCisgICAgICA8L3BhcmE+CisKKyAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnNsb3RfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgICA8cGFyYT4KKyAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgc2xvdCB0byBhbHRlci4gTXVz dCBiZSBhIHZhbGlkIHJlcGxpY2F0aW9uIHNsb3QKKyAgICAgICAgICBuYW1lIChzZWUgPHhyZWYg bGlua2VuZD0ic3RyZWFtaW5nLXJlcGxpY2F0aW9uLXNsb3RzLW1hbmlwdWxhdGlvbiIvPikuCisg ICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50 cnk+CisgICAgICA8L3ZhcmlhYmxlbGlzdD4KKworICAgICAgPHBhcmE+VGhlIGZvbGxvd2luZyBv cHRpb25zIGFyZSBzdXBwb3J0ZWQ6PC9wYXJhPgorCisgICAgICA8dmFyaWFibGVsaXN0PgorICAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPkZBSUxPVkVSIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdPC9saXRl cmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgSWYgdHJ1ZSwgdGhlIHNsb3QgaXMgZW5hYmxlZCB0byBiZSBzeW5jZWQgdG8gdGhlIHBoeXNp Y2FsCisgICAgICAgICAgc3RhbmRieXMgc28gdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNhbiBi ZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xp c3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgPC92YXJpYWJsZWxpc3Q+CisK KyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50 cnkgaWQ9InByb3RvY29sLXJlcGxpY2F0aW9uLXJlYWQtcmVwbGljYXRpb24tc2xvdCI+CiAgICAg IDx0ZXJtPjxsaXRlcmFsPlJFQURfUkVQTElDQVRJT05fU0xPVDwvbGl0ZXJhbD4gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNsb3RfbmFtZTwvcmVwbGFjZWFibGU+CiAgICAgICA8aW5k ZXh0ZXJtPjxwcmltYXJ5PlJFQURfUkVQTElDQVRJT05fU0xPVDwvcHJpbWFyeT48L2luZGV4dGVy bT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0aW9uLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IDZkMzZmZjBk YzkuLmIzZTc3OWRmNzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2Ny aXB0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dt bApAQCAtMjI2LDEwICsyMjYsMjIgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDwKICAgICAgIDxs aW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtc3RyZWFtaW5n Ij48bGl0ZXJhbD5zdHJlYW1pbmc8L2xpdGVyYWw+PC9saW5rPiwKICAgICAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZGlzYWJsZS1vbi1lcnJvciI+ PGxpdGVyYWw+ZGlzYWJsZV9vbl9lcnJvcjwvbGl0ZXJhbD48L2xpbms+LAogICAgICAgPGxpbmsg bGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1wYXNzd29yZC1yZXF1 aXJlZCI+PGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQ8L2xpdGVyYWw+PC9saW5rPiwKLSAgICAg IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtcnVuLWFz LW93bmVyIj48bGl0ZXJhbD5ydW5fYXNfb3duZXI8L2xpdGVyYWw+PC9saW5rPiwgYW5kCi0gICAg ICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW9yaWdp biI+PGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPjwvbGluaz4uCisgICAgICA8bGluayBsaW5rZW5k PSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXJ1bi1hcy1vd25lciI+PGxpdGVy YWw+cnVuX2FzX293bmVyPC9saXRlcmFsPjwvbGluaz4sCisgICAgICA8bGluayBsaW5rZW5kPSJz cWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLW9yaWdpbiI+PGxpdGVyYWw+b3JpZ2lu PC9saXRlcmFsPjwvbGluaz4sIGFuZAorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1 YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVy YWw+PC9saW5rPi4KICAgICAgIE9ubHkgYSBzdXBlcnVzZXIgY2FuIHNldCA8bGl0ZXJhbD5wYXNz d29yZF9yZXF1aXJlZCA9IGZhbHNlPC9saXRlcmFsPi4KICAgICAgPC9wYXJhPgorCisgICAgIDxw YXJhPgorICAgICAgV2hlbiBhbHRlcmluZyB0aGUKKyAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1j cmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtc2xvdC1uYW1lIj48bGl0ZXJhbD5zbG90X25h bWU8L2xpdGVyYWw+PC9saW5rPiwKKyAgICAgIHRoZSA8bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJh bD4gcHJvcGVydHkgdmFsdWUgb2YgdGhlIG5hbWVkIHNsb3QgbWF5IGRpZmZlciBmcm9tIHRoZQor ICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1m YWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9saW5rPgorICAgICAgcGFyYW1l dGVyIHNwZWNpZmllZCBpbiB0aGUgc3Vic2NyaXB0aW9uLiBXaGVuIGNyZWF0aW5nIHRoZSBzbG90 LAorICAgICAgZW5zdXJlIHRoZSBzbG90IDxsaXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPiBwcm9w ZXJ0eSBtYXRjaGVzIHRoZQorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVyYWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9s aW5rPgorICAgICAgcGFyYW1ldGVyIHZhbHVlIG9mIHRoZSBzdWJzY3JpcHRpb24uCisgICAgIDwv cGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKaW5kZXggZjFjMjBiM2E0Ni4uOGNkODM0MjAz NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwKQEAgLTM5OSw2 ICszOTksMTggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwKICAgICAgICAgIDwvcGFyYT4KICAg ICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgIDx2YXJs aXN0ZW50cnkgaWQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIi PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD4gKDx0eXBlPmJvb2xl YW48L3R5cGU+KTwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+Cisg ICAgICAgICAgU3BlY2lmaWVzIHdoZXRoZXIgdGhlIHJlcGxpY2F0aW9uIHNsb3RzIGFzc29jaWF0 ZWQgd2l0aCB0aGUgc3Vic2NyaXB0aW9uCisgICAgICAgICAgYXJlIGVuYWJsZWQgdG8gYmUgc3lu Y2VkIHRvIHRoZSBwaHlzaWNhbCBzdGFuZGJ5cyBzbyB0aGF0IGxvZ2ljYWwKKyAgICAgICAgICBy ZXBsaWNhdGlvbiBjYW4gYmUgcmVzdW1lZCBmcm9tIHRoZSBuZXcgcHJpbWFyeSBhZnRlciBmYWls b3Zlci4KKyAgICAgICAgICBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4u CisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0 ZW50cnk+CiAgICAgICA8L3ZhcmlhYmxlbGlzdD48L3BhcmE+CiAKICAgICA8L2xpc3RpdGVtPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sIGIvZG9jL3NyYy9zZ21s L3N5c3RlbS12aWV3cy5zZ21sCmluZGV4IDcyZDAxZmM2MjQuLjE4NjhiOTU4MzYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9zeXN0ZW0tdmlld3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3lz dGVtLXZpZXdzLnNnbWwKQEAgLTI1NTUsNiArMjU1NSwxNyBAQCBTRUxFQ1QgKiBGUk9NIHBnX2xv Y2tzIHBsIExFRlQgSk9JTiBwZ19wcmVwYXJlZF94YWN0cyBwcHgKICAgICAgICA8L2l0ZW1pemVk bGlzdD4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ZmFpbG92ZXI8L3N0cnVjdGZpZWxk PiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg VHJ1ZSBpZiB0aGlzIGlzIGEgbG9naWNhbCBzbG90IGVuYWJsZWQgdG8gYmUgc3luY2VkIHRvIHRo ZSBwaHlzaWNhbAorICAgICAgIHN0YW5kYnlzIHNvIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBj YW4gYmUgcmVzdW1lZCBmcm9tIHRoZSBuZXcgcHJpbWFyeQorICAgICAgIGFmdGVyIGZhaWxvdmVy LiBBbHdheXMgZmFsc2UgZm9yIHBoeXNpY2FsIHNsb3RzLgorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5jCmluZGV4IGM1MTZjMjVhYzcuLjQwNmEzYzJk ZDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpAQCAtNzMsNiArNzMsNyBA QCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAJc3ViLT5kaXNh Ymxlb25lcnIgPSBzdWJmb3JtLT5zdWJkaXNhYmxlb25lcnI7CiAJc3ViLT5wYXNzd29yZHJlcXVp cmVkID0gc3ViZm9ybS0+c3VicGFzc3dvcmRyZXF1aXJlZDsKIAlzdWItPnJ1bmFzb3duZXIgPSBz dWJmb3JtLT5zdWJydW5hc293bmVyOworCXN1Yi0+ZmFpbG92ZXIgPSBzdWJmb3JtLT5zdWJmYWls b3ZlcjsKIAogCS8qIEdldCBjb25uaW5mbyAqLwogCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90 TnVsbChTVUJTQ1JJUFRJT05PSUQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5 c3RlbV9mdW5jdGlvbnMuc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fZnVuY3Rpb25z LnNxbAppbmRleCBmMzE1ZmVjZjE4Li4zNDZjZmI5OGEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV9mdW5jdGlvbnMuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX2Z1bmN0aW9ucy5zcWwKQEAgLTQ3OSw2ICs0NzksNyBAQCBDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KAogICAgIElOIHNs b3RfbmFtZSBuYW1lLCBJTiBwbHVnaW4gbmFtZSwKICAgICBJTiB0ZW1wb3JhcnkgYm9vbGVhbiBE RUZBVUxUIGZhbHNlLAogICAgIElOIHR3b3BoYXNlIGJvb2xlYW4gREVGQVVMVCBmYWxzZSwKKyAg ICBJTiBmYWlsb3ZlciBib29sZWFuIERFRkFVTFQgZmFsc2UsCiAgICAgT1VUIHNsb3RfbmFtZSBu YW1lLCBPVVQgbHNuIHBnX2xzbikKIFJFVFVSTlMgUkVDT1JECiBMQU5HVUFHRSBJTlRFUk5BTApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IGU0M2UzNmY1YWMuLmU0M2E5Mzcz OWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTEwMjMsNyArMTAyMyw4 IEBAIENSRUFURSBWSUVXIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIEFTCiAgICAgICAgICAgICBMLndh bF9zdGF0dXMsCiAgICAgICAgICAgICBMLnNhZmVfd2FsX3NpemUsCiAgICAgICAgICAgICBMLnR3 b19waGFzZSwKLSAgICAgICAgICAgIEwuY29uZmxpY3RfcmVhc29uCisgICAgICAgICAgICBMLmNv bmZsaWN0X3JlYXNvbiwKKyAgICAgICAgICAgIEwuZmFpbG92ZXIKICAgICBGUk9NIHBnX2dldF9y ZXBsaWNhdGlvbl9zbG90cygpIEFTIEwKICAgICAgICAgICAgIExFRlQgSk9JTiBwZ19kYXRhYmFz ZSBEIE9OIChMLmRhdG9pZCA9IEQub2lkKTsKIApAQCAtMTM1Nyw3ICsxMzU4LDggQEAgUkVWT0tF IEFMTCBPTiBwZ19zdWJzY3JpcHRpb24gRlJPTSBwdWJsaWM7CiBHUkFOVCBTRUxFQ1QgKG9pZCwg c3ViZGJpZCwgc3Vic2tpcGxzbiwgc3VibmFtZSwgc3Vib3duZXIsIHN1YmVuYWJsZWQsCiAgICAg ICAgICAgICAgIHN1YmJpbmFyeSwgc3Vic3RyZWFtLCBzdWJ0d29waGFzZXN0YXRlLCBzdWJkaXNh Ymxlb25lcnIsCiAJCQkgIHN1YnBhc3N3b3JkcmVxdWlyZWQsIHN1YnJ1bmFzb3duZXIsCi0gICAg ICAgICAgICAgIHN1YnNsb3RuYW1lLCBzdWJzeW5jY29tbWl0LCBzdWJwdWJsaWNhdGlvbnMsIHN1 Ym9yaWdpbikKKyAgICAgICAgICAgICAgc3Vic2xvdG5hbWUsIHN1YnN5bmNjb21taXQsIHN1YnB1 YmxpY2F0aW9ucywgc3Vib3JpZ2luLAorICAgICAgICAgICAgICBzdWJmYWlsb3ZlcikKICAgICBP TiBwZ19zdWJzY3JpcHRpb24gVE8gcHVibGljOwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3N1YnNj cmlwdGlvbl9zdGF0cyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2Ny aXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5jCmlu ZGV4IDc1ZTZjZDhhZTMuLmZhYWJkMjlmMWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJzY3Jp cHRpb25jbWRzLmMKQEAgLTcxLDYgKzcxLDcgQEAKICNkZWZpbmUgU1VCT1BUX1JVTl9BU19PV05F UgkJCTB4MDAwMDEwMDAKICNkZWZpbmUgU1VCT1BUX0xTTgkJCQkJMHgwMDAwMjAwMAogI2RlZmlu ZSBTVUJPUFRfT1JJR0lOCQkJCTB4MDAwMDQwMDAKKyNkZWZpbmUgU1VCT1BUX0ZBSUxPVkVSCQkJ CTB4MDAwMDgwMDAKIAogLyogY2hlY2sgaWYgdGhlICd2YWwnIGhhcyAnYml0cycgc2V0ICovCiAj ZGVmaW5lIElzU2V0KHZhbCwgYml0cykgICgoKHZhbCkgJiAoYml0cykpID09IChiaXRzKSkKQEAg LTk2LDYgKzk3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXBhc3N3b3JkcmVx dWlyZWQ7CiAJYm9vbAkJcnVuYXNvd25lcjsKIAljaGFyCSAgICpvcmlnaW47CisJYm9vbAkJZmFp bG92ZXI7CiAJWExvZ1JlY1B0cglsc247CiB9IFN1Yk9wdHM7CiAKQEAgLTE1Nyw2ICsxNTksOCBA QCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0 bXRfb3B0aW9ucywKIAkJb3B0cy0+cnVuYXNvd25lciA9IGZhbHNlOwogCWlmIChJc1NldChzdXBw b3J0ZWRfb3B0cywgU1VCT1BUX09SSUdJTikpCiAJCW9wdHMtPm9yaWdpbiA9IHBzdHJkdXAoTE9H SUNBTFJFUF9PUklHSU5fQU5ZKTsKKwlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9G QUlMT1ZFUikpCisJCW9wdHMtPmZhaWxvdmVyID0gZmFsc2U7CiAKIAkvKiBQYXJzZSBvcHRpb25z ICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRpb25zKQpAQCAtMzI2LDYgKzMzMCwxNSBAQCBwYXJz ZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0 aW9ucywKIAkJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJ CQkJCQllcnJtc2coInVucmVjb2duaXplZCBvcmlnaW4gdmFsdWU6IFwiJXNcIiIsIG9wdHMtPm9y aWdpbikpOwogCQl9CisJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfRkFJ TE9WRVIpICYmCisJCQkJIHN0cmNtcChkZWZlbC0+ZGVmbmFtZSwgImZhaWxvdmVyIikgPT0gMCkK KwkJeworCQkJaWYgKElzU2V0KG9wdHMtPnNwZWNpZmllZF9vcHRzLCBTVUJPUFRfRkFJTE9WRVIp KQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCisJCQlvcHRz LT5zcGVjaWZpZWRfb3B0cyB8PSBTVUJPUFRfRkFJTE9WRVI7CisJCQlvcHRzLT5mYWlsb3ZlciA9 IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9CiAJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9v cHRzLCBTVUJPUFRfTFNOKSAmJgogCQkJCSBzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJsc24iKSA9 PSAwKQogCQl7CkBAIC01OTEsNyArNjA0LDggQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJICBTVUJPUFRf U1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJCSAgU1VCT1BUX1NUUkVB TUlORyB8IFNVQk9QVF9UV09QSEFTRV9DT01NSVQgfAogCQkJCQkgIFNVQk9QVF9ESVNBQkxFX09O X0VSUiB8IFNVQk9QVF9QQVNTV09SRF9SRVFVSVJFRCB8Ci0JCQkJCSAgU1VCT1BUX1JVTl9BU19P V05FUiB8IFNVQk9QVF9PUklHSU4pOworCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJP UFRfT1JJR0lOIHwKKwkJCQkJICBTVUJPUFRfRkFJTE9WRVIpOwogCXBhcnNlX3N1YnNjcmlwdGlv bl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsK IAogCS8qCkBAIC03MTAsNiArNzI0LDggQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJcHVibGljYXRpb25MaXN0 VG9BcnJheShwdWJsaWNhdGlvbnMpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJv cmlnaW4gLSAxXSA9CiAJCUNTdHJpbmdHZXRUZXh0RGF0dW0ob3B0cy5vcmlnaW4pOworCXZhbHVl c1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJmYWlsb3ZlciAtIDFdID0KKwkJQm9vbEdldERhdHVt KG9wdHMuZmFpbG92ZXIpOwogCiAJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVz Y3IocmVsKSwgdmFsdWVzLCBudWxscyk7CiAKQEAgLTgwNyw3ICs4MjMsNyBAQCBDcmVhdGVTdWJz Y3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10 LAogCQkJCQl0d29waGFzZV9lbmFibGVkID0gdHJ1ZTsKIAogCQkJCXdhbHJjdl9jcmVhdGVfc2xv dCh3cmNvbm4sIG9wdHMuc2xvdF9uYW1lLCBmYWxzZSwgdHdvcGhhc2VfZW5hYmxlZCwKLQkJCQkJ CQkJICAgQ1JTX05PRVhQT1JUX1NOQVBTSE9ULCBOVUxMKTsKKwkJCQkJCQkJICAgb3B0cy5mYWls b3ZlciwgQ1JTX05PRVhQT1JUX1NOQVBTSE9ULCBOVUxMKTsKIAogCQkJCWlmICh0d29waGFzZV9l bmFibGVkKQogCQkJCQlVcGRhdGVUd29QaGFzZVN0YXRlKHN1YmlkLCBMT0dJQ0FMUkVQX1RXT1BI QVNFX1NUQVRFX0VOQUJMRUQpOwpAQCAtODE2LDYgKzgzMiwyNCBAQCBDcmVhdGVTdWJzY3JpcHRp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJ CQkJKGVycm1zZygiY3JlYXRlZCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBvbiBwdWJsaXNoZXIi LAogCQkJCQkJCQlvcHRzLnNsb3RfbmFtZSkpKTsKIAkJCX0KKworCQkJLyoKKwkJCSAqIElmIHRo ZSBzbG90X25hbWUgaXMgc3BlY2lmaWVkIHdpdGhvdXQgdGhlIGNyZWF0ZV9zbG90IG9wdGlvbiwK KwkJCSAqIGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIHVzZXIgaW50ZW5kcyB0byB1c2UgYW4gZXhp c3Rpbmcgc2xvdCBvbgorCQkJICogdGhlIHB1Ymxpc2hlciwgc28gaGVyZSB3ZSBhbHRlciB0aGUg ZmFpbG92ZXIgcHJvcGVydHkgb2YgdGhlCisJCQkgKiBzbG90IHRvIG1hdGNoIHRoZSBmYWlsb3Zl ciB2YWx1ZSBpbiBzdWJzY3JpcHRpb24uCisJCQkgKgorCQkJICogV2UgZG8gbm90IG5lZWQgdG8g Y2hhbmdlIHRoZSBmYWlsb3ZlciB0byBmYWxzZSBpZiB0aGUgc2VydmVyCisJCQkgKiBkb2VzIG5v dCBzdXBwb3J0IGZhaWxvdmVyIChlLmcuIHByZS1QRzE3KS4KKwkJCSAqLworCQkJZWxzZSBpZiAo b3B0cy5zbG90X25hbWUgJiYKKwkJCQkJIChvcHRzLmZhaWxvdmVyIHx8IHdhbHJjdl9zZXJ2ZXJf dmVyc2lvbih3cmNvbm4pID49IDE3MDAwMCkpCisJCQl7CisJCQkJd2FscmN2X2FsdGVyX3Nsb3Qo d3Jjb25uLCBvcHRzLnNsb3RfbmFtZSwgb3B0cy5mYWlsb3Zlcik7CisJCQkJZXJlcG9ydChOT1RJ Q0UsCisJCQkJCQkoZXJybXNnKCJjaGFuZ2VkIHRoZSBmYWlsb3ZlciBzdGF0ZSBvZiByZXBsaWNh dGlvbiBzbG90IFwiJXNcIiBvbiBwdWJsaXNoZXIgdG8gJXMiLAorCQkJCQkJCQlvcHRzLnNsb3Rf bmFtZSwgb3B0cy5mYWlsb3ZlciA/ICJ0cnVlIiA6ICJmYWxzZSIpKSk7CisJCQl9CiAJCX0KIAkJ UEdfRklOQUxMWSgpOwogCQl7CkBAIC0xMDc5LDYgKzExMTMsNyBAQCBBbHRlclN1YnNjcmlwdGlv bihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAlIZWFw VHVwbGUJdHVwOwogCU9pZAkJCXN1YmlkOwogCWJvb2wJCXVwZGF0ZV90dXBsZSA9IGZhbHNlOwor CWJvb2wJCXNldF9mYWlsb3ZlciA9IGZhbHNlOwogCVN1YnNjcmlwdGlvbiAqc3ViOwogCUZvcm1f cGdfc3Vic2NyaXB0aW9uIGZvcm07CiAJYml0czMyCQlzdXBwb3J0ZWRfb3B0czsKQEAgLTExMzIs NyArMTE2Nyw4IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQkJCQkgIFNVQk9QVF9TWU5DSFJPTk9VU19DT01N SVQgfCBTVUJPUFRfQklOQVJZIHwKIAkJCQkJCQkJICBTVUJPUFRfU1RSRUFNSU5HIHwgU1VCT1BU X0RJU0FCTEVfT05fRVJSIHwKIAkJCQkJCQkJICBTVUJPUFRfUEFTU1dPUkRfUkVRVUlSRUQgfAot CQkJCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfT1JJR0lOKTsKKwkJCQkJCQkJ ICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BU X0ZBSUxPVkVSKTsKIAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3Rt dC0+b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTIx OCw2ICsxMjU0LDM3IEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0 ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlw dGlvbl9zdWJvcmlnaW4gLSAxXSA9IHRydWU7CiAJCQkJfQogCisJCQkJaWYgKElzU2V0KG9wdHMu c3BlY2lmaWVkX29wdHMsIFNVQk9QVF9GQUlMT1ZFUikpCisJCQkJeworCQkJCQlpZiAoIXN1Yi0+ c2xvdG5hbWUpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RF X09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fu bm90IHNldCBmYWlsb3ZlciBmb3IgYSBzdWJzY3JpcHRpb24gdGhhdCBkb2VzIG5vdCBoYXZlIGEg c2xvdCBuYW1lIikpKTsKKworCQkJCQkvKgorCQkJCQkgKiBEbyBub3QgYWxsb3cgY2hhbmdpbmcg dGhlIGZhaWxvdmVyIHN0YXRlIGlmIHRoZQorCQkJCQkgKiBzdWJzY3JpcHRpb24gaXMgZW5hYmxl ZC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBmYWlsb3ZlcgorCQkJCQkgKiBzdGF0ZSBvZiB0aGUgc2xv dCBvbiB0aGUgcHVibGlzaGVyIGNhbm5vdCBiZSBtb2RpZmllZCBpZgorCQkJCQkgKiB0aGUgc2xv dCBpcyBjdXJyZW50bHkgYmVpbmcgYWNxdWlyZWQgYnkgdGhlIGFwcGx5CisJCQkJCSAqIHdvcmtl ci4KKwkJCQkJICovCisJCQkJCWlmIChzdWItPmVuYWJsZWQpCisJCQkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NU QVRFKSwKKwkJCQkJCQkJIGVycm1zZygiY2Fubm90IHNldCAlcyBmb3IgZW5hYmxlZCBzdWJzY3Jp cHRpb24iLAorCQkJCQkJCQkJCSJmYWlsb3ZlciIpKSk7CisKKwkJCQkJdmFsdWVzW0FudW1fcGdf c3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVyIC0gMV0gPQorCQkJCQkJQm9vbEdldERhdHVtKG9wdHMu ZmFpbG92ZXIpOworCQkJCQlyZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJmYWlsb3Zl ciAtIDFdID0gdHJ1ZTsKKworCQkJCQkvKgorCQkJCQkgKiBUaGUgZmFpbG92ZXIgc3RhdGUgb2Yg dGhlIHNsb3Qgc2hvdWxkIGJlIGNoYW5nZWQgYWZ0ZXIKKwkJCQkJICogdGhlIGNhdGFsb2cgdXBk YXRlIGlzIGNvbXBsZXRlZC4KKwkJCQkJICovCisJCQkJCXNldF9mYWlsb3ZlciA9IHRydWU7CisJ CQkJfQorCiAJCQkJdXBkYXRlX3R1cGxlID0gdHJ1ZTsKIAkJCQlicmVhazsKIAkJCX0KQEAgLTE0 NTMsNiArMTUyMCw0NiBAQCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJaGVhcF9mcmVldHVwbGUodHVwKTsKIAl9CiAK KwkvKgorCSAqIFRyeSB0byBhY3F1aXJlIHRoZSBjb25uZWN0aW9uIG5lY2Vzc2FyeSBmb3IgYWx0 ZXJpbmcgc2xvdC4KKwkgKgorCSAqIFRoaXMgaGFzIHRvIGJlIGF0IHRoZSBlbmQgYmVjYXVzZSBv dGhlcndpc2UgaWYgdGhlcmUgaXMgYW4gZXJyb3IKKwkgKiB3aGlsZSBkb2luZyB0aGUgZGF0YWJh c2Ugb3BlcmF0aW9ucyB3ZSB3b24ndCBiZSBhYmxlIHRvIHJvbGxiYWNrCisJICogYWx0ZXJlZCBz bG90LgorCSAqLworCWlmIChzZXRfZmFpbG92ZXIpCisJeworCQlib29sCQltdXN0X3VzZV9wYXNz d29yZDsKKwkJY2hhcgkgICAqZXJyOworCQlXYWxSZWNlaXZlckNvbm4gKndyY29ubjsKKworCQkv KiBMb2FkIHRoZSBsaWJyYXJ5IHByb3ZpZGluZyB1cyBsaWJwcSBjYWxscy4gKi8KKwkJbG9hZF9m aWxlKCJsaWJwcXdhbHJlY2VpdmVyIiwgZmFsc2UpOworCisJCS8qIFRyeSB0byBjb25uZWN0IHRv IHRoZSBwdWJsaXNoZXIuICovCisJCW11c3RfdXNlX3Bhc3N3b3JkID0gc3ViLT5wYXNzd29yZHJl cXVpcmVkICYmICFzdWItPm93bmVyc3VwZXJ1c2VyOworCQl3cmNvbm4gPSB3YWxyY3ZfY29ubmVj dChzdWItPmNvbm5pbmZvLCB0cnVlLCBtdXN0X3VzZV9wYXNzd29yZCwKKwkJCQkJCQkJc3ViLT5u YW1lLCAmZXJyKTsKKwkJaWYgKCF3cmNvbm4pCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJy Y29kZShFUlJDT0RFX0NPTk5FQ1RJT05fRkFJTFVSRSksCisJCQkJCSBlcnJtc2coImNvdWxkIG5v dCBjb25uZWN0IHRvIHRoZSBwdWJsaXNoZXI6ICVzIiwgZXJyKSkpOworCisJCVBHX1RSWSgpOwor CQl7CisJCQl3YWxyY3ZfYWx0ZXJfc2xvdCh3cmNvbm4sIHN1Yi0+c2xvdG5hbWUsIG9wdHMuZmFp bG92ZXIpOworCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycm1zZygiY2hhbmdlZCB0aGUg ZmFpbG92ZXIgc3RhdGUgb2YgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgb24gcHVibGlzaGVyIHRv ICVzIiwKKwkJCQkJCQlzdWItPnNsb3RuYW1lLCAiZmFsc2UiKSkpOworCQl9CisJCVBHX0ZJTkFM TFkoKTsKKwkJeworCQkJd2FscmN2X2Rpc2Nvbm5lY3Qod3Jjb25uKTsKKwkJfQorCQlQR19FTkRf VFJZKCk7CisJfQorCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCU9i amVjdEFkZHJlc3NTZXQobXlzZWxmLCBTdWJzY3JpcHRpb25SZWxhdGlvbklkLCBzdWJpZCk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBx d2FscmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIv bGlicHF3YWxyZWNlaXZlci5jCmluZGV4IDc4MzQ0YTAzNjEuLmYxOGEwNGQ4YTQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNl aXZlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGli cHF3YWxyZWNlaXZlci5jCkBAIC03NCw4ICs3NCwxMSBAQCBzdGF0aWMgY2hhciAqbGlicHFyY3Zf Y3JlYXRlX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJCQkJCQkgIGNvbnN0IGNoYXIg KnNsb3RuYW1lLAogCQkJCQkJCQkgIGJvb2wgdGVtcG9yYXJ5LAogCQkJCQkJCQkgIGJvb2wgdHdv X3BoYXNlLAorCQkJCQkJCQkgIGJvb2wgZmFpbG92ZXIsCiAJCQkJCQkJCSAgQ1JTU25hcHNob3RB Y3Rpb24gc25hcHNob3RfYWN0aW9uLAogCQkJCQkJCQkgIFhMb2dSZWNQdHIgKmxzbik7CitzdGF0 aWMgdm9pZCBsaWJwcXJjdl9hbHRlcl9zbG90KFdhbFJlY2VpdmVyQ29ubiAqY29ubiwgY29uc3Qg Y2hhciAqc2xvdG5hbWUsCisJCQkJCQkJCWJvb2wgZmFpbG92ZXIpOwogc3RhdGljIHBpZF90IGxp YnBxcmN2X2dldF9iYWNrZW5kX3BpZChXYWxSZWNlaXZlckNvbm4gKmNvbm4pOwogc3RhdGljIFdh bFJjdkV4ZWNSZXN1bHQgKmxpYnBxcmN2X2V4ZWMoV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJ CQkJCQkJICAgY29uc3QgY2hhciAqcXVlcnksCkBAIC05Niw2ICs5OSw3IEBAIHN0YXRpYyBXYWxS ZWNlaXZlckZ1bmN0aW9uc1R5cGUgUFFXYWxSZWNlaXZlckZ1bmN0aW9ucyA9IHsKIAkud2FscmN2 X3JlY2VpdmUgPSBsaWJwcXJjdl9yZWNlaXZlLAogCS53YWxyY3Zfc2VuZCA9IGxpYnBxcmN2X3Nl bmQsCiAJLndhbHJjdl9jcmVhdGVfc2xvdCA9IGxpYnBxcmN2X2NyZWF0ZV9zbG90LAorCS53YWxy Y3ZfYWx0ZXJfc2xvdCA9IGxpYnBxcmN2X2FsdGVyX3Nsb3QsCiAJLndhbHJjdl9nZXRfYmFja2Vu ZF9waWQgPSBsaWJwcXJjdl9nZXRfYmFja2VuZF9waWQsCiAJLndhbHJjdl9leGVjID0gbGlicHFy Y3ZfZXhlYywKIAkud2FscmN2X2Rpc2Nvbm5lY3QgPSBsaWJwcXJjdl9kaXNjb25uZWN0CkBAIC04 ODUsOCArODg5LDggQEAgbGlicHFyY3Zfc2VuZChXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0 IGNoYXIgKmJ1ZmZlciwgaW50IG5ieXRlcykKICAqLwogc3RhdGljIGNoYXIgKgogbGlicHFyY3Zf Y3JlYXRlX3Nsb3QoV2FsUmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90bmFtZSwK LQkJCQkJIGJvb2wgdGVtcG9yYXJ5LCBib29sIHR3b19waGFzZSwgQ1JTU25hcHNob3RBY3Rpb24g c25hcHNob3RfYWN0aW9uLAotCQkJCQkgWExvZ1JlY1B0ciAqbHNuKQorCQkJCQkgYm9vbCB0ZW1w b3JhcnksIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVyLAorCQkJCQkgQ1JTU25hcHNob3RB Y3Rpb24gc25hcHNob3RfYWN0aW9uLCBYTG9nUmVjUHRyICpsc24pCiB7CiAJUEdyZXN1bHQgICAq cmVzOwogCVN0cmluZ0luZm9EYXRhIGNtZDsKQEAgLTkxNSw3ICs5MTksOCBAQCBsaWJwcXJjdl9j cmVhdGVfc2xvdChXYWxSZWNlaXZlckNvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnNsb3RuYW1lLAog CQkJZWxzZQogCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKCZjbWQsICcgJyk7CiAJCX0KLQorCQlp ZiAoZmFpbG92ZXIpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZjbWQsICJGQUlMT1ZFUiwg Iik7CiAJCWlmICh1c2VfbmV3X29wdGlvbnNfc3ludGF4KQogCQl7CiAJCQlzd2l0Y2ggKHNuYXBz aG90X2FjdGlvbikKQEAgLTk4NCw2ICs5ODksMzMgQEAgbGlicHFyY3ZfY3JlYXRlX3Nsb3QoV2Fs UmVjZWl2ZXJDb25uICpjb25uLCBjb25zdCBjaGFyICpzbG90bmFtZSwKIAlyZXR1cm4gc25hcHNo b3Q7CiB9CiAKKy8qCisgKiBDaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgdGhlIHJlcGxpY2F0aW9u IHNsb3QuCisgKi8KK3N0YXRpYyB2b2lkCitsaWJwcXJjdl9hbHRlcl9zbG90KFdhbFJlY2VpdmVy Q29ubiAqY29ubiwgY29uc3QgY2hhciAqc2xvdG5hbWUsCisJCQkJCWJvb2wgZmFpbG92ZXIpCit7 CisJU3RyaW5nSW5mb0RhdGEgY21kOworCVBHcmVzdWx0ICAgKnJlczsKKworCWluaXRTdHJpbmdJ bmZvKCZjbWQpOworCWFwcGVuZFN0cmluZ0luZm8oJmNtZCwgIkFMVEVSX1JFUExJQ0FUSU9OX1NM T1QgJXMgKCBGQUlMT1ZFUiAlcyApIiwKKwkJCQkJIHF1b3RlX2lkZW50aWZpZXIoc2xvdG5hbWUp LAorCQkJCQkgZmFpbG92ZXIgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKworCXJlcyA9IGxpYnBxcmN2 X1BRZXhlYyhjb25uLT5zdHJlYW1Db25uLCBjbWQuZGF0YSk7CisJcGZyZWUoY21kLmRhdGEpOwor CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1BST1RPQ09MX1ZJT0xBVElPTiksCisJCQkJ IGVycm1zZygiY291bGQgbm90IGFsdGVyIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiOiAlcyIsCisJ CQkJCQlzbG90bmFtZSwgcGNob21wKFBRZXJyb3JNZXNzYWdlKGNvbm4tPnN0cmVhbUNvbm4pKSkp KTsKKworCVBRY2xlYXIocmVzKTsKK30KKwogLyoKICAqIFJldHVybiBQSUQgb2YgcmVtb3RlIGJh Y2tlbmQgcHJvY2Vzcy4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC90YWJsZXN5bmMuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFi bGVzeW5jLmMKaW5kZXggMDZkNWIzZGYzMy4uMGJmMDAyZTNkNSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCkBAIC0xNDMwLDYgKzE0MzAsNyBAQCBMb2dp Y2FsUmVwU3luY1RhYmxlU3RhcnQoWExvZ1JlY1B0ciAqb3JpZ2luX3N0YXJ0cG9zKQogCSAqLwog CXdhbHJjdl9jcmVhdGVfc2xvdChMb2dSZXBXb3JrZXJXYWxSY3ZDb25uLAogCQkJCQkgICBzbG90 bmFtZSwgZmFsc2UgLyogcGVybWFuZW50ICovICwgZmFsc2UgLyogdHdvX3BoYXNlICovICwKKwkJ CQkJICAgTXlTdWJzY3JpcHRpb24tPmZhaWxvdmVyIC8qIGZhaWxvdmVyICovICwKIAkJCQkJICAg Q1JTX1VTRV9TTkFQU0hPVCwgb3JpZ2luX3N0YXJ0cG9zKTsKIAogCS8qCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC93b3JrZXIuYwppbmRleCA5MTE4MzVjNWNiLi4zZGVhMTBmOWIzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKQEAgLTEzMiw2ICsxMzIs MTMgQEAKICAqIGF2b2lkIHN1Y2ggZGVhZGxvY2tzLCB3ZSBnZW5lcmF0ZSBhIHVuaXF1ZSBHSUQg KGNvbnNpc3Rpbmcgb2YgdGhlCiAgKiBzdWJzY3JpcHRpb24gb2lkIGFuZCB0aGUgeGlkIG9mIHRo ZSBwcmVwYXJlZCB0cmFuc2FjdGlvbikgZm9yIGVhY2ggcHJlcGFyZQogICogdHJhbnNhY3Rpb24g b24gdGhlIHN1YnNjcmliZXIuCisgKgorICogRkFJTE9WRVIKKyAqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqIFRoZSBsb2dpY2FsIHNsb3Qgb24gdGhlIHByaW1hcnkgY2FuIGJlIHN5bmNlZCB0 byB0aGUgc3RhbmRieSBieSBzcGVjaWZ5aW5nCisgKiBmYWlsb3ZlciA9IHRydWUgd2hlbiBjcmVh dGluZyB0aGUgc3Vic2NyaXB0aW9uLiBFbmFibGluZyBmYWlsb3ZlciBhbGxvd3MgdXMKKyAqIHRv IHNtb290aGx5IHRyYW5zaXRpb24gdG8gdGhlIHByb21vdGVkIHN0YW5kYnksIGVuc3VyaW5nIHRo YXQgd2UgY2FuCisgKiBzdWJzY3JpYmUgdG8gdGhlIG5ldyBwcmltYXJ5IHdpdGhvdXQgbG9zaW5n IGFueSBkYXRhLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9y ZXBsX2dyYW0ueQppbmRleCA5NWUxMjZlYjRkLi5mZjM4MDllMDJmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9yZXBsX2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9yZXBsX2dyYW0ueQpAQCAtNjQsNiArNjQsNyBAQCBOb2RlICpyZXBsaWNhdGlvbl9wYXJz ZV9yZXN1bHQ7CiAldG9rZW4gS19TVEFSVF9SRVBMSUNBVElPTgogJXRva2VuIEtfQ1JFQVRFX1JF UExJQ0FUSU9OX1NMT1QKICV0b2tlbiBLX0RST1BfUkVQTElDQVRJT05fU0xPVAorJXRva2VuIEtf QUxURVJfUkVQTElDQVRJT05fU0xPVAogJXRva2VuIEtfVElNRUxJTkVfSElTVE9SWQogJXRva2Vu IEtfV0FJVAogJXRva2VuIEtfVElNRUxJTkUKQEAgLTgwLDggKzgxLDkgQEAgTm9kZSAqcmVwbGlj YXRpb25fcGFyc2VfcmVzdWx0OwogCiAldHlwZSA8bm9kZT4JY29tbWFuZAogJXR5cGUgPG5vZGU+ CWJhc2VfYmFja3VwIHN0YXJ0X3JlcGxpY2F0aW9uIHN0YXJ0X2xvZ2ljYWxfcmVwbGljYXRpb24K LQkJCQljcmVhdGVfcmVwbGljYXRpb25fc2xvdCBkcm9wX3JlcGxpY2F0aW9uX3Nsb3QgaWRlbnRp Znlfc3lzdGVtCi0JCQkJcmVhZF9yZXBsaWNhdGlvbl9zbG90IHRpbWVsaW5lX2hpc3Rvcnkgc2hv dyB1cGxvYWRfbWFuaWZlc3QKKwkJCQljcmVhdGVfcmVwbGljYXRpb25fc2xvdCBkcm9wX3JlcGxp Y2F0aW9uX3Nsb3QKKwkJCQlhbHRlcl9yZXBsaWNhdGlvbl9zbG90IGlkZW50aWZ5X3N5c3RlbSBy ZWFkX3JlcGxpY2F0aW9uX3Nsb3QKKwkJCQl0aW1lbGluZV9oaXN0b3J5IHNob3cgdXBsb2FkX21h bmlmZXN0CiAldHlwZSA8bGlzdD4JZ2VuZXJpY19vcHRpb25fbGlzdAogJXR5cGUgPGRlZmVsdD4J Z2VuZXJpY19vcHRpb24KICV0eXBlIDx1aW50dmFsPglvcHRfdGltZWxpbmUKQEAgLTExMiw2ICsx MTQsNyBAQCBjb21tYW5kOgogCQkJfCBzdGFydF9sb2dpY2FsX3JlcGxpY2F0aW9uCiAJCQl8IGNy ZWF0ZV9yZXBsaWNhdGlvbl9zbG90CiAJCQl8IGRyb3BfcmVwbGljYXRpb25fc2xvdAorCQkJfCBh bHRlcl9yZXBsaWNhdGlvbl9zbG90CiAJCQl8IHJlYWRfcmVwbGljYXRpb25fc2xvdAogCQkJfCB0 aW1lbGluZV9oaXN0b3J5CiAJCQl8IHNob3cKQEAgLTI1OSw2ICsyNjIsMTggQEAgZHJvcF9yZXBs aWNhdGlvbl9zbG90OgogCQkJCX0KIAkJCTsKIAorLyogQUxURVJfUkVQTElDQVRJT05fU0xPVCBz bG90ICovCithbHRlcl9yZXBsaWNhdGlvbl9zbG90OgorCQkJS19BTFRFUl9SRVBMSUNBVElPTl9T TE9UIElERU5UICcoJyBnZW5lcmljX29wdGlvbl9saXN0ICcpJworCQkJCXsKKwkJCQkJQWx0ZXJS ZXBsaWNhdGlvblNsb3RDbWQgKmNtZDsKKwkJCQkJY21kID0gbWFrZU5vZGUoQWx0ZXJSZXBsaWNh dGlvblNsb3RDbWQpOworCQkJCQljbWQtPnNsb3RuYW1lID0gJDI7CisJCQkJCWNtZC0+b3B0aW9u cyA9ICQ0OworCQkJCQkkJCA9IChOb2RlICopIGNtZDsKKwkJCQl9CisJCQk7CisKIC8qCiAgKiBT VEFSVF9SRVBMSUNBVElPTiBbU0xPVCBzbG90XSBbUEhZU0lDQUxdICVYLyVYIFtUSU1FTElORSAl ZF0KICAqLwpAQCAtNDEwLDYgKzQyNSw3IEBAIGlkZW50X29yX2tleXdvcmQ6CiAJCQl8IEtfU1RB UlRfUkVQTElDQVRJT04JCQl7ICQkID0gInN0YXJ0X3JlcGxpY2F0aW9uIjsgfQogCQkJfCBLX0NS RUFURV9SRVBMSUNBVElPTl9TTE9UCXsgJCQgPSAiY3JlYXRlX3JlcGxpY2F0aW9uX3Nsb3QiOyB9 CiAJCQl8IEtfRFJPUF9SRVBMSUNBVElPTl9TTE9UCQl7ICQkID0gImRyb3BfcmVwbGljYXRpb25f c2xvdCI7IH0KKwkJCXwgS19BTFRFUl9SRVBMSUNBVElPTl9TTE9UCQl7ICQkID0gImFsdGVyX3Jl cGxpY2F0aW9uX3Nsb3QiOyB9CiAJCQl8IEtfVElNRUxJTkVfSElTVE9SWQkJCXsgJCQgPSAidGlt ZWxpbmVfaGlzdG9yeSI7IH0KIAkJCXwgS19XQUlUCQkJCQkJeyAkJCA9ICJ3YWl0IjsgfQogCQkJ fCBLX1RJTUVMSU5FCQkJCQl7ICQkID0gInRpbWVsaW5lIjsgfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcmVwbF9zY2FubmVyLmwgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9yZXBsX3NjYW5uZXIubAppbmRleCA2ZmE2MjU2MTdiLi5lN2RlZjgwMDY1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9yZXBsX3NjYW5uZXIubAorKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9yZXBsX3NjYW5uZXIubApAQCAtMTI1LDYgKzEyNSw3IEBAIFRJTUVMSU5F CQkJeyByZXR1cm4gS19USU1FTElORTsgfQogU1RBUlRfUkVQTElDQVRJT04JeyByZXR1cm4gS19T VEFSVF9SRVBMSUNBVElPTjsgfQogQ1JFQVRFX1JFUExJQ0FUSU9OX1NMT1QJCXsgcmV0dXJuIEtf Q1JFQVRFX1JFUExJQ0FUSU9OX1NMT1Q7IH0KIERST1BfUkVQTElDQVRJT05fU0xPVAkJeyByZXR1 cm4gS19EUk9QX1JFUExJQ0FUSU9OX1NMT1Q7IH0KK0FMVEVSX1JFUExJQ0FUSU9OX1NMT1QJCXsg cmV0dXJuIEtfQUxURVJfUkVQTElDQVRJT05fU0xPVDsgfQogVElNRUxJTkVfSElTVE9SWQl7IHJl dHVybiBLX1RJTUVMSU5FX0hJU1RPUlk7IH0KIFBIWVNJQ0FMCQkJeyByZXR1cm4gS19QSFlTSUNB TDsgfQogUkVTRVJWRV9XQUwJCQl7IHJldHVybiBLX1JFU0VSVkVfV0FMOyB9CkBAIC0zMDIsNiAr MzAzLDcgQEAgcmVwbGljYXRpb25fc2Nhbm5lcl9pc19yZXBsaWNhdGlvbl9jb21tYW5kKHZvaWQp CiAJCWNhc2UgS19TVEFSVF9SRVBMSUNBVElPTjoKIAkJY2FzZSBLX0NSRUFURV9SRVBMSUNBVElP Tl9TTE9UOgogCQljYXNlIEtfRFJPUF9SRVBMSUNBVElPTl9TTE9UOgorCQljYXNlIEtfQUxURVJf UkVQTElDQVRJT05fU0xPVDoKIAkJY2FzZSBLX1JFQURfUkVQTElDQVRJT05fU0xPVDoKIAkJY2Fz ZSBLX1RJTUVMSU5FX0hJU1RPUlk6CiAJCWNhc2UgS19VUExPQURfTUFOSUZFU1Q6CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9zbG90LmMKaW5kZXggNTJkYTY5NGM3OS4uNjk2Mzc2NDAwZSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Nsb3QuYwpAQCAtOTAsNyArOTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBSZXBsaWNhdGlvblNsb3RP bkRpc2sKIAlzaXplb2YoUmVwbGljYXRpb25TbG90T25EaXNrKSAtIFJlcGxpY2F0aW9uU2xvdE9u RGlza0NvbnN0YW50U2l6ZQogCiAjZGVmaW5lIFNMT1RfTUFHSUMJCTB4MTA1MUNBMQkvKiBmb3Jt YXQgaWRlbnRpZmllciAqLwotI2RlZmluZSBTTE9UX1ZFUlNJT04JMwkJLyogdmVyc2lvbiBmb3Ig bmV3IGZpbGVzICovCisjZGVmaW5lIFNMT1RfVkVSU0lPTgk0CQkvKiB2ZXJzaW9uIGZvciBuZXcg ZmlsZXMgKi8KIAogLyogQ29udHJvbCBhcnJheSBmb3IgcmVwbGljYXRpb24gc2xvdCBtYW5hZ2Vt ZW50ICovCiBSZXBsaWNhdGlvblNsb3RDdGxEYXRhICpSZXBsaWNhdGlvblNsb3RDdGwgPSBOVUxM OwpAQCAtMjQ4LDEwICsyNDgsMTMgQEAgUmVwbGljYXRpb25TbG90VmFsaWRhdGVOYW1lKGNvbnN0 IGNoYXIgKm5hbWUsIGludCBlbGV2ZWwpCiAgKiAgICAgZHVyaW5nIGdldHRpbmcgY2hhbmdlcywg aWYgdGhlIHR3b19waGFzZSBvcHRpb24gaXMgZW5hYmxlZCBpdCBjYW4gc2tpcAogICogICAgIHBy ZXBhcmUgYmVjYXVzZSBieSB0aGF0IHRpbWUgc3RhcnQgZGVjb2RpbmcgcG9pbnQgaGFzIGJlZW4g bW92ZWQuIFNvIHRoZQogICogICAgIHVzZXIgd2lsbCBvbmx5IGdldCBjb21taXQgcHJlcGFyZWQu CisgKiBmYWlsb3ZlcjogSWYgZW5hYmxlZCwgYWxsb3dzIHRoZSBzbG90IHRvIGJlIHN5bmNlZCB0 byBwaHlzaWNhbCBzdGFuZGJ5cyBzbworICogICAgIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbiBj YW4gYmUgcmVzdW1lZCBhZnRlciBmYWlsb3Zlci4KICAqLwogdm9pZAogUmVwbGljYXRpb25TbG90 Q3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZGJfc3BlY2lmaWMsCi0JCQkJCSAgUmVwbGlj YXRpb25TbG90UGVyc2lzdGVuY3kgcGVyc2lzdGVuY3ksIGJvb2wgdHdvX3BoYXNlKQorCQkJCQkg IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5LAorCQkJCQkgIGJvb2wgdHdv X3BoYXNlLCBib29sIGZhaWxvdmVyKQogewogCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE5VTEw7 CiAJaW50CQkJaTsKQEAgLTMxMSw2ICszMTQsNyBAQCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29u c3QgY2hhciAqbmFtZSwgYm9vbCBkYl9zcGVjaWZpYywKIAlzbG90LT5kYXRhLnBlcnNpc3RlbmN5 ID0gcGVyc2lzdGVuY3k7CiAJc2xvdC0+ZGF0YS50d29fcGhhc2UgPSB0d29fcGhhc2U7CiAJc2xv dC0+ZGF0YS50d29fcGhhc2VfYXQgPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlzbG90LT5kYXRhLmZh aWxvdmVyID0gZmFpbG92ZXI7CiAKIAkvKiBhbmQgdGhlbiBkYXRhIG9ubHkgcHJlc2VudCBpbiBz aGFyZWQgbWVtb3J5ICovCiAJc2xvdC0+anVzdF9kaXJ0aWVkID0gZmFsc2U7CkBAIC02NzksNiAr NjgzLDMxIEBAIFJlcGxpY2F0aW9uU2xvdERyb3AoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dh aXQpCiAJUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCk7CiB9CiAKKy8qCisgKiBDaGFuZ2Ug dGhlIGRlZmluaXRpb24gb2YgdGhlIHNsb3QgaWRlbnRpZmllZCBieSB0aGUgc3BlY2lmaWVkIG5h bWUuCisgKi8KK3ZvaWQKK1JlcGxpY2F0aW9uU2xvdEFsdGVyKGNvbnN0IGNoYXIgKm5hbWUsIGJv b2wgZmFpbG92ZXIpCit7CisJQXNzZXJ0KE15UmVwbGljYXRpb25TbG90ID09IE5VTEwpOworCisJ UmVwbGljYXRpb25TbG90QWNxdWlyZShuYW1lLCB0cnVlKTsKKworCWlmIChTbG90SXNQaHlzaWNh bChNeVJlcGxpY2F0aW9uU2xvdCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJZXJybXNnKCJjYW5ub3QgdXNlICVzIHdp dGggYSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IiwKKwkJCQkJICAgIkFMVEVSX1JFUExJQ0FU SU9OX1NMT1QiKSk7CisKKwlTcGluTG9ja0FjcXVpcmUoJk15UmVwbGljYXRpb25TbG90LT5tdXRl eCk7CisJTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuZmFpbG92ZXIgPSBmYWlsb3ZlcjsKKwlTcGlu TG9ja1JlbGVhc2UoJk15UmVwbGljYXRpb25TbG90LT5tdXRleCk7CisKKwlSZXBsaWNhdGlvblNs b3RNYXJrRGlydHkoKTsKKwlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJUmVwbGljYXRpb25TbG90 UmVsZWFzZSgpOworfQorCiAvKgogICogUGVybWFuZW50bHkgZHJvcCB0aGUgY3VycmVudGx5IGFj cXVpcmVkIHJlcGxpY2F0aW9uIHNsb3QuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3RmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNz LmMKaW5kZXggY2FkMzVkY2U3Zi4uZWI2ODUwODliMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xv dGZ1bmNzLmMKQEAgLTQyLDcgKzQyLDggQEAgY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Ns b3QoY2hhciAqbmFtZSwgYm9vbCBpbW1lZGlhdGVseV9yZXNlcnZlLAogCiAJLyogYWNxdWlyZSBy ZXBsaWNhdGlvbiBzbG90LCB0aGlzIHdpbGwgY2hlY2sgZm9yIGNvbmZsaWN0aW5nIG5hbWVzICov CiAJUmVwbGljYXRpb25TbG90Q3JlYXRlKG5hbWUsIGZhbHNlLAotCQkJCQkJICB0ZW1wb3Jhcnkg PyBSU19URU1QT1JBUlkgOiBSU19QRVJTSVNURU5ULCBmYWxzZSk7CisJCQkJCQkgIHRlbXBvcmFy eSA/IFJTX1RFTVBPUkFSWSA6IFJTX1BFUlNJU1RFTlQsIGZhbHNlLAorCQkJCQkJICBmYWxzZSk7 CiAKIAlpZiAoaW1tZWRpYXRlbHlfcmVzZXJ2ZSkKIAl7CkBAIC0xMTcsNiArMTE4LDcgQEAgcGdf Y3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIHN0YXRp YyB2b2lkCiBjcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGNoYXIg KnBsdWdpbiwKIAkJCQkJCQkJYm9vbCB0ZW1wb3JhcnksIGJvb2wgdHdvX3BoYXNlLAorCQkJCQkJ CQlib29sIGZhaWxvdmVyLAogCQkJCQkJCQlYTG9nUmVjUHRyIHJlc3RhcnRfbHNuLAogCQkJCQkJ CQlib29sIGZpbmRfc3RhcnRwb2ludCkKIHsKQEAgLTEzMyw3ICsxMzUsOCBAQCBjcmVhdGVfbG9n aWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5hbWUsIGNoYXIgKnBsdWdpbiwKIAkgKiBlcnJv ciBhcyB3ZWxsLgogCSAqLwogCVJlcGxpY2F0aW9uU2xvdENyZWF0ZShuYW1lLCB0cnVlLAotCQkJ CQkJICB0ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19FUEhFTUVSQUwsIHR3b19waGFzZSk7 CisJCQkJCQkgIHRlbXBvcmFyeSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwgdHdvX3Bo YXNlLAorCQkJCQkJICBmYWlsb3Zlcik7CiAKIAkvKgogCSAqIENyZWF0ZSBsb2dpY2FsIGRlY29k aW5nIGNvbnRleHQgdG8gZmluZCBzdGFydCBwb2ludCBvciwgaWYgd2UgZG9uJ3QKQEAgLTE3MSw2 ICsxNzQsNyBAQCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KFBHX0ZVTkNUSU9O X0FSR1MpCiAJTmFtZQkJcGx1Z2luID0gUEdfR0VUQVJHX05BTUUoMSk7CiAJYm9vbAkJdGVtcG9y YXJ5ID0gUEdfR0VUQVJHX0JPT0woMik7CiAJYm9vbAkJdHdvX3BoYXNlID0gUEdfR0VUQVJHX0JP T0woMyk7CisJYm9vbAkJZmFpbG92ZXIgPSBQR19HRVRBUkdfQk9PTCg0KTsKIAlEYXR1bQkJcmVz dWx0OwogCVR1cGxlRGVzYwl0dXBkZXNjOwogCUhlYXBUdXBsZQl0dXBsZTsKQEAgLTE4OCw2ICsx OTIsNyBAQCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KFBHX0ZVTkNUSU9OX0FS R1MpCiAJCQkJCQkJCQlOYW1lU3RyKCpwbHVnaW4pLAogCQkJCQkJCQkJdGVtcG9yYXJ5LAogCQkJ CQkJCQkJdHdvX3BoYXNlLAorCQkJCQkJCQkJZmFpbG92ZXIsCiAJCQkJCQkJCQlJbnZhbGlkWExv Z1JlY1B0ciwKIAkJCQkJCQkJCXRydWUpOwogCkBAIC0yMzIsNyArMjM3LDcgQEAgcGdfZHJvcF9y ZXBsaWNhdGlvbl9zbG90KFBHX0ZVTkNUSU9OX0FSR1MpCiBEYXR1bQogcGdfZ2V0X3JlcGxpY2F0 aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiB7Ci0jZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElP Tl9TTE9UU19DT0xTIDE1CisjZGVmaW5lIFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xTIDE2 CiAJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZvLT5yZXN1 bHRpbmZvOwogCVhMb2dSZWNQdHIJY3VycmxzbjsKIAlpbnQJCQlzbG90bm87CkBAIC00MjYsNiAr NDMxLDggQEAgcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQl9 CiAJCX0KIAorCQl2YWx1ZXNbaSsrXSA9IEJvb2xHZXREYXR1bShzbG90X2NvbnRlbnRzLmRhdGEu ZmFpbG92ZXIpOworCiAJCUFzc2VydChpID09IFBHX0dFVF9SRVBMSUNBVElPTl9TTE9UU19DT0xT KTsKIAogCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5z ZXREZXNjLApAQCAtNjkzLDYgKzcwMCw3IEBAIGNvcHlfcmVwbGljYXRpb25fc2xvdChGdW5jdGlv bkNhbGxJbmZvIGZjaW5mbywgYm9vbCBsb2dpY2FsX3Nsb3QpCiAJWExvZ1JlY1B0cglzcmNfcmVz dGFydF9sc247CiAJYm9vbAkJc3JjX2lzbG9naWNhbDsKIAlib29sCQl0ZW1wb3Jhcnk7CisJYm9v bAkJZmFpbG92ZXI7CiAJY2hhcgkgICAqcGx1Z2luOwogCURhdHVtCQl2YWx1ZXNbMl07CiAJYm9v bAkJbnVsbHNbMl07CkBAIC03NDgsNiArNzU2LDcgQEAgY29weV9yZXBsaWNhdGlvbl9zbG90KEZ1 bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBib29sIGxvZ2ljYWxfc2xvdCkKIAlzcmNfaXNsb2dpY2Fs ID0gU2xvdElzTG9naWNhbCgmZmlyc3Rfc2xvdF9jb250ZW50cyk7CiAJc3JjX3Jlc3RhcnRfbHNu ID0gZmlyc3Rfc2xvdF9jb250ZW50cy5kYXRhLnJlc3RhcnRfbHNuOwogCXRlbXBvcmFyeSA9IChm aXJzdF9zbG90X2NvbnRlbnRzLmRhdGEucGVyc2lzdGVuY3kgPT0gUlNfVEVNUE9SQVJZKTsKKwlm YWlsb3ZlciA9IGZpcnN0X3Nsb3RfY29udGVudHMuZGF0YS5mYWlsb3ZlcjsKIAlwbHVnaW4gPSBs b2dpY2FsX3Nsb3QgPyBOYW1lU3RyKGZpcnN0X3Nsb3RfY29udGVudHMuZGF0YS5wbHVnaW4pIDog TlVMTDsKIAogCS8qIENoZWNrIHR5cGUgb2YgcmVwbGljYXRpb24gc2xvdCAqLwpAQCAtNzg3LDYg Kzc5Niw3IEBAIGNvcHlfcmVwbGljYXRpb25fc2xvdChGdW5jdGlvbkNhbGxJbmZvIGZjaW5mbywg Ym9vbCBsb2dpY2FsX3Nsb3QpCiAJCQkJCQkJCQkJcGx1Z2luLAogCQkJCQkJCQkJCXRlbXBvcmFy eSwKIAkJCQkJCQkJCQlmYWxzZSwKKwkJCQkJCQkJCQlmYWlsb3ZlciwKIAkJCQkJCQkJCQlzcmNf cmVzdGFydF9sc24sCiAJCQkJCQkJCQkJZmFsc2UpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxyZWNlaXZlci5jCmluZGV4IGUwMDM5NWZmMmIuLmZmYWNkNTVlNWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vd2FscmVjZWl2ZXIuYwpAQCAtMzg3LDcgKzM4Nyw3IEBAIFdhbFJlY2VpdmVyTWFp bih2b2lkKQogCQkJCQkgInBnX3dhbHJlY2VpdmVyXyVsbGQiLAogCQkJCQkgKGxvbmcgbG9uZyBp bnQpIHdhbHJjdl9nZXRfYmFja2VuZF9waWQod3Jjb25uKSk7CiAKLQkJCXdhbHJjdl9jcmVhdGVf c2xvdCh3cmNvbm4sIHNsb3RuYW1lLCB0cnVlLCBmYWxzZSwgMCwgTlVMTCk7CisJCQl3YWxyY3Zf Y3JlYXRlX3Nsb3Qod3Jjb25uLCBzbG90bmFtZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAwLCBOVUxM KTsKIAogCQkJU3BpbkxvY2tBY3F1aXJlKCZ3YWxyY3YtPm11dGV4KTsKIAkJCXN0cmxjcHkod2Fs cmN2LT5zbG90bmFtZSwgc2xvdG5hbWUsIE5BTUVEQVRBTEVOKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v d2Fsc2VuZGVyLmMKaW5kZXggMDg3MDMxZTlkYy4uNzdjOGJhYTMyYSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmMKQEAgLTExMjYsMTIgKzExMjYsMTMgQEAgc3RhdGljIHZvaWQKIHBh cnNlQ3JlYXRlUmVwbFNsb3RPcHRpb25zKENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kLAog CQkJCQkJICAgYm9vbCAqcmVzZXJ2ZV93YWwsCiAJCQkJCQkgICBDUlNTbmFwc2hvdEFjdGlvbiAq c25hcHNob3RfYWN0aW9uLAotCQkJCQkJICAgYm9vbCAqdHdvX3BoYXNlKQorCQkJCQkJICAgYm9v bCAqdHdvX3BoYXNlLCBib29sICpmYWlsb3ZlcikKIHsKIAlMaXN0Q2VsbCAgICpsYzsKIAlib29s CQlzbmFwc2hvdF9hY3Rpb25fZ2l2ZW4gPSBmYWxzZTsKIAlib29sCQlyZXNlcnZlX3dhbF9naXZl biA9IGZhbHNlOwogCWJvb2wJCXR3b19waGFzZV9naXZlbiA9IGZhbHNlOworCWJvb2wJCWZhaWxv dmVyX2dpdmVuID0gZmFsc2U7CiAKIAkvKiBQYXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywg Y21kLT5vcHRpb25zKQpAQCAtMTE4MSw2ICsxMTgyLDE1IEBAIHBhcnNlQ3JlYXRlUmVwbFNsb3RP cHRpb25zKENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kLAogCQkJdHdvX3BoYXNlX2dpdmVu ID0gdHJ1ZTsKIAkJCSp0d29fcGhhc2UgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKIAkJfQorCQll bHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJmYWlsb3ZlciIpID09IDApCisJCXsKKwkJ CWlmIChmYWlsb3Zlcl9naXZlbiB8fCBjbWQtPmtpbmQgIT0gUkVQTElDQVRJT05fS0lORF9MT0dJ Q0FMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIp KSk7CisJCQlmYWlsb3Zlcl9naXZlbiA9IHRydWU7CisJCQkqZmFpbG92ZXIgPSBkZWZHZXRCb29s ZWFuKGRlZmVsKTsKKwkJfQogCQllbHNlCiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9w dGlvbjogJXMiLCBkZWZlbC0+ZGVmbmFtZSk7CiAJfQpAQCAtMTE5Nyw2ICsxMjA3LDcgQEAgQ3Jl YXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCWNoYXIJ ICAgKnNsb3RfbmFtZTsKIAlib29sCQlyZXNlcnZlX3dhbCA9IGZhbHNlOwogCWJvb2wJCXR3b19w aGFzZSA9IGZhbHNlOworCWJvb2wJCWZhaWxvdmVyID0gZmFsc2U7CiAJQ1JTU25hcHNob3RBY3Rp b24gc25hcHNob3RfYWN0aW9uID0gQ1JTX0VYUE9SVF9TTkFQU0hPVDsKIAlEZXN0UmVjZWl2ZXIg KmRlc3Q7CiAJVHVwT3V0cHV0U3RhdGUgKnRzdGF0ZTsKQEAgLTEyMDYsMTMgKzEyMTcsMTQgQEAg Q3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCiAJ QXNzZXJ0KCFNeVJlcGxpY2F0aW9uU2xvdCk7CiAKLQlwYXJzZUNyZWF0ZVJlcGxTbG90T3B0aW9u cyhjbWQsICZyZXNlcnZlX3dhbCwgJnNuYXBzaG90X2FjdGlvbiwgJnR3b19waGFzZSk7CisJcGFy c2VDcmVhdGVSZXBsU2xvdE9wdGlvbnMoY21kLCAmcmVzZXJ2ZV93YWwsICZzbmFwc2hvdF9hY3Rp b24sICZ0d29fcGhhc2UsCisJCQkJCQkJICAgJmZhaWxvdmVyKTsKIAogCWlmIChjbWQtPmtpbmQg PT0gUkVQTElDQVRJT05fS0lORF9QSFlTSUNBTCkKIAl7CiAJCVJlcGxpY2F0aW9uU2xvdENyZWF0 ZShjbWQtPnNsb3RuYW1lLCBmYWxzZSwKIAkJCQkJCQkgIGNtZC0+dGVtcG9yYXJ5ID8gUlNfVEVN UE9SQVJZIDogUlNfUEVSU0lTVEVOVCwKLQkJCQkJCQkgIGZhbHNlKTsKKwkJCQkJCQkgIGZhbHNl LCBmYWxzZSk7CiAKIAkJaWYgKHJlc2VydmVfd2FsKQogCQl7CkBAIC0xMjQzLDcgKzEyNTUsNyBA QCBDcmVhdGVSZXBsaWNhdGlvblNsb3QoQ3JlYXRlUmVwbGljYXRpb25TbG90Q21kICpjbWQpCiAJ CSAqLwogCQlSZXBsaWNhdGlvblNsb3RDcmVhdGUoY21kLT5zbG90bmFtZSwgdHJ1ZSwKIAkJCQkJ CQkgIGNtZC0+dGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLAotCQkJCQkJ CSAgdHdvX3BoYXNlKTsKKwkJCQkJCQkgIHR3b19waGFzZSwgZmFpbG92ZXIpOwogCiAJCS8qCiAJ CSAqIERvIG9wdGlvbnMgY2hlY2sgZWFybHkgc28gdGhhdCB3ZSBjYW4gYmFpbCBiZWZvcmUgY2Fs bGluZyB0aGUKQEAgLTEzOTgsNiArMTQxMCw0MyBAQCBEcm9wUmVwbGljYXRpb25TbG90KERyb3BS ZXBsaWNhdGlvblNsb3RDbWQgKmNtZCkKIAlSZXBsaWNhdGlvblNsb3REcm9wKGNtZC0+c2xvdG5h bWUsICFjbWQtPndhaXQpOwogfQogCisvKgorICogUHJvY2VzcyBleHRyYSBvcHRpb25zIGdpdmVu IHRvIEFMVEVSX1JFUExJQ0FUSU9OX1NMT1QuCisgKi8KK3N0YXRpYyB2b2lkCitQYXJzZUFsdGVy UmVwbFNsb3RPcHRpb25zKEFsdGVyUmVwbGljYXRpb25TbG90Q21kICpjbWQsIGJvb2wgKmZhaWxv dmVyKQoreworCWJvb2wJCWZhaWxvdmVyX2dpdmVuID0gZmFsc2U7CisKKwkvKiBQYXJzZSBvcHRp b25zICovCisJZm9yZWFjaF9wdHIoRGVmRWxlbSwgZGVmZWwsIGNtZC0+b3B0aW9ucykKKwl7CisJ CWlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJmYWlsb3ZlciIpID09IDApCisJCXsKKwkJCWlm IChmYWlsb3Zlcl9naXZlbikKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJIGVycm1zZygiY29uZmxpY3Rpbmcgb3IgcmVkdW5k YW50IG9wdGlvbnMiKSkpOworCQkJZmFpbG92ZXJfZ2l2ZW4gPSB0cnVlOworCQkJKmZhaWxvdmVy ID0gZGVmR2V0Qm9vbGVhbihkZWZlbCk7CisJCX0KKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgInVu cmVjb2duaXplZCBvcHRpb246ICVzIiwgZGVmZWwtPmRlZm5hbWUpOworCX0KK30KKworLyoKKyAq IENoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIHJlcGxpY2F0aW9uIHNsb3QuCisgKi8KK3N0YXRp YyB2b2lkCitBbHRlclJlcGxpY2F0aW9uU2xvdChBbHRlclJlcGxpY2F0aW9uU2xvdENtZCAqY21k KQoreworCWJvb2wJCWZhaWxvdmVyID0gZmFsc2U7CisKKwlQYXJzZUFsdGVyUmVwbFNsb3RPcHRp b25zKGNtZCwgJmZhaWxvdmVyKTsKKwlSZXBsaWNhdGlvblNsb3RBbHRlcihjbWQtPnNsb3RuYW1l LCBmYWlsb3Zlcik7Cit9CisKIC8qCiAgKiBMb2FkIHByZXZpb3VzbHkgaW5pdGlhdGVkIGxvZ2lj YWwgc2xvdCBhbmQgcHJlcGFyZSBmb3Igc2VuZGluZyBkYXRhICh2aWEKICAqIFdhbFNuZExvb3Ap LgpAQCAtMTk3MSw2ICsyMDIwLDEzIEBAIGV4ZWNfcmVwbGljYXRpb25fY29tbWFuZChjb25zdCBj aGFyICpjbWRfc3RyaW5nKQogCQkJRW5kUmVwbGljYXRpb25Db21tYW5kKGNtZHRhZyk7CiAJCQli cmVhazsKIAorCQljYXNlIFRfQWx0ZXJSZXBsaWNhdGlvblNsb3RDbWQ6CisJCQljbWR0YWcgPSAi QUxURVJfUkVQTElDQVRJT05fU0xPVCI7CisJCQlzZXRfcHNfZGlzcGxheShjbWR0YWcpOworCQkJ QWx0ZXJSZXBsaWNhdGlvblNsb3QoKEFsdGVyUmVwbGljYXRpb25TbG90Q21kICopIGNtZF9ub2Rl KTsKKwkJCUVuZFJlcGxpY2F0aW9uQ29tbWFuZChjbWR0YWcpOworCQkJYnJlYWs7CisKIAkJY2Fz ZSBUX1N0YXJ0UmVwbGljYXRpb25DbWQ6CiAJCQl7CiAJCQkJU3RhcnRSZXBsaWNhdGlvbkNtZCAq Y21kID0gKFN0YXJ0UmVwbGljYXRpb25DbWQgKikgY21kX25vZGU7CmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCAy MmQxZTZjZjkyLi5iZTkwODdlZGRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTQ2NDEsNiArNDY0MSw3IEBA IGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3N1Ym9yaWdpbjsKIAlp bnQJCQlpX3N1Ym9yaWdpbnJlbW90ZWxzbjsKIAlpbnQJCQlpX3N1YmVuYWJsZWQ7CisJaW50CQkJ aV9zdWJmYWlsb3ZlcjsKIAlpbnQJCQlpLAogCQkJCW50dXBzOwogCkBAIC00NzA2LDEwICs0NzA3 LDE3IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAogCWlmIChkb3B0LT5iaW5h cnlfdXBncmFkZSAmJiBmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKIAkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocXVlcnksICIgby5yZW1vdGVfbHNuIEFTIHN1Ym9yaWdpbnJlbW90ZWxzbixc biIKLQkJCQkJCQkgIiBzLnN1YmVuYWJsZWRcbiIpOworCQkJCQkJCSAiIHMuc3ViZW5hYmxlZCxc biIpOwogCWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgTlVMTCBBUyBzdWJv cmlnaW5yZW1vdGVsc24sXG4iCi0JCQkJCQkJICIgZmFsc2UgQVMgc3ViZW5hYmxlZFxuIik7CisJ CQkJCQkJICIgZmFsc2UgQVMgc3ViZW5hYmxlZCxcbiIpOworCisJaWYgKGZvdXQtPnJlbW90ZVZl cnNpb24gPj0gMTcwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkg IiBzLnN1YmZhaWxvdmVyXG4iKTsKKwllbHNlCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAor CQkJCQkJICAiIGZhbHNlIEFTIHN1YmZhaWxvdmVyXG4iKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LAogCQkJCQkJICJGUk9NIHBnX3N1YnNjcmlwdGlvbiBzXG4iKTsKQEAgLTQ3NDgs NiArNDc1Niw3IEBAIGdldFN1YnNjcmlwdGlvbnMoQXJjaGl2ZSAqZm91dCkKIAlpX3N1Ym9yaWdp biA9IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW4iKTsKIAlpX3N1Ym9yaWdpbnJlbW90ZWxzbiA9 IFBRZm51bWJlcihyZXMsICJzdWJvcmlnaW5yZW1vdGVsc24iKTsKIAlpX3N1YmVuYWJsZWQgPSBQ UWZudW1iZXIocmVzLCAic3ViZW5hYmxlZCIpOworCWlfc3ViZmFpbG92ZXIgPSBQUWZudW1iZXIo cmVzLCAic3ViZmFpbG92ZXIiKTsKIAogCXN1YmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXpl b2YoU3Vic2NyaXB0aW9uSW5mbykpOwogCkBAIC00NzkyLDYgKzQ4MDEsOCBAQCBnZXRTdWJzY3Jp cHRpb25zKEFyY2hpdmUgKmZvdXQpCiAJCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3N1Ym9yaWdpbnJlbW90ZWxzbikpOwogCQlzdWJpbmZvW2ldLnN1YmVuYWJsZWQgPQogCQkJcGdf c3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmVuYWJsZWQpKTsKKwkJc3ViaW5mb1tpXS5z dWJmYWlsb3ZlciA9CisJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViZmFpbG92 ZXIpKTsKIAogCQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2Vs ZWN0RHVtcGFibGVPYmplY3QoJihzdWJpbmZvW2ldLmRvYmopLCBmb3V0KTsKQEAgLTUwMjAsNiAr NTAzMSw5IEBAIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0 aW9uSW5mbyAqc3ViaW5mbykKIAlpZiAoc3RyY21wKHN1YmluZm8tPnN1YnR3b3BoYXNlc3RhdGUs IHR3b19waGFzZV9kaXNhYmxlZCkgIT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnks ICIsIHR3b19waGFzZSA9IG9uIik7CiAKKwlpZiAoc3RyY21wKHN1YmluZm8tPnN1YmZhaWxvdmVy LCAidCIpID09IDApCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBmYWlsb3ZlciA9 IHRydWUiKTsKKwogCWlmIChzdHJjbXAoc3ViaW5mby0+c3ViZGlzYWJsZW9uZXJyLCAidCIpID09 IDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBkaXNhYmxlX29uX2Vycm9yID0g dHJ1ZSIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA5YTM0MzQ3Y2ZjLi42MjM4MjEzODFjIDEwMDY0NAot LS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKQEAgLTY3NSw2ICs2NzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5m bwogCWNoYXIJICAgKnN1YnB1YmxpY2F0aW9uczsKIAljaGFyCSAgICpzdWJvcmlnaW47CiAJY2hh cgkgICAqc3Vib3JpZ2lucmVtb3RlbHNuOworCWNoYXIJICAgKnN1YmZhaWxvdmVyOwogfSBTdWJz Y3JpcHRpb25JbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8u YyBiL3NyYy9iaW4vcGdfdXBncmFkZS9pbmZvLmMKaW5kZXggMTkwZGQ1M2E0Mi4uYjQxYTMzNWI3 MyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2luZm8uYworKysgYi9zcmMvYmluL3Bn X3VwZ3JhZGUvaW5mby5jCkBAIC02NjYsNyArNjY2LDcgQEAgZ2V0X29sZF9jbHVzdGVyX2xvZ2lj YWxfc2xvdF9pbmZvcyhEYkluZm8gKmRiaW5mbywgYm9vbCBsaXZlX2NoZWNrKQogCSAqIHN0YXJ0 ZWQgYW5kIHN0b3BwZWQgc2V2ZXJhbCB0aW1lcyBjYXVzaW5nIGFueSB0ZW1wb3Jhcnkgc2xvdHMg dG8gYmUKIAkgKiByZW1vdmVkLgogCSAqLwotCXJlcyA9IGV4ZWN1dGVRdWVyeU9yRGllKGNvbm4s ICJTRUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIHR3b19waGFzZSwgIgorCXJlcyA9IGV4ZWN1dGVR dWVyeU9yRGllKGNvbm4sICJTRUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIHR3b19waGFzZSwgZmFp bG92ZXIsICIKIAkJCQkJCQkiJXMgYXMgY2F1Z2h0X3VwLCBjb25mbGljdF9yZWFzb24gSVMgTk9U IE5VTEwgYXMgaW52YWxpZCAiCiAJCQkJCQkJIkZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlv bl9zbG90cyAiCiAJCQkJCQkJIldIRVJFIHNsb3RfdHlwZSA9ICdsb2dpY2FsJyBBTkQgIgpAQCAt Njg0LDYgKzY4NCw3IEBAIGdldF9vbGRfY2x1c3Rlcl9sb2dpY2FsX3Nsb3RfaW5mb3MoRGJJbmZv ICpkYmluZm8sIGJvb2wgbGl2ZV9jaGVjaykKIAkJaW50CQkJaV9zbG90bmFtZTsKIAkJaW50CQkJ aV9wbHVnaW47CiAJCWludAkJCWlfdHdvcGhhc2U7CisJCWludAkJCWlfZmFpbG92ZXI7CiAJCWlu dAkJCWlfY2F1Z2h0X3VwOwogCQlpbnQJCQlpX2ludmFsaWQ7CiAKQEAgLTY5Miw2ICs2OTMsNyBA QCBnZXRfb2xkX2NsdXN0ZXJfbG9naWNhbF9zbG90X2luZm9zKERiSW5mbyAqZGJpbmZvLCBib29s IGxpdmVfY2hlY2spCiAJCWlfc2xvdG5hbWUgPSBQUWZudW1iZXIocmVzLCAic2xvdF9uYW1lIik7 CiAJCWlfcGx1Z2luID0gUFFmbnVtYmVyKHJlcywgInBsdWdpbiIpOwogCQlpX3R3b3BoYXNlID0g UFFmbnVtYmVyKHJlcywgInR3b19waGFzZSIpOworCQlpX2ZhaWxvdmVyID0gUFFmbnVtYmVyKHJl cywgImZhaWxvdmVyIik7CiAJCWlfY2F1Z2h0X3VwID0gUFFmbnVtYmVyKHJlcywgImNhdWdodF91 cCIpOwogCQlpX2ludmFsaWQgPSBQUWZudW1iZXIocmVzLCAiaW52YWxpZCIpOwogCkBAIC03MDIs NiArNzA0LDcgQEAgZ2V0X29sZF9jbHVzdGVyX2xvZ2ljYWxfc2xvdF9pbmZvcyhEYkluZm8gKmRi aW5mbywgYm9vbCBsaXZlX2NoZWNrKQogCQkJY3Vyci0+c2xvdG5hbWUgPSBwZ19zdHJkdXAoUFFn ZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfc2xvdG5hbWUpKTsKIAkJCWN1cnItPnBsdWdpbiA9IHBn X3N0cmR1cChQUWdldHZhbHVlKHJlcywgc2xvdG51bSwgaV9wbHVnaW4pKTsKIAkJCWN1cnItPnR3 b19waGFzZSA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfdHdvcGhhc2UpLCAi dCIpID09IDApOworCQkJY3Vyci0+ZmFpbG92ZXIgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBz bG90bnVtLCBpX2ZhaWxvdmVyKSwgInQiKSA9PSAwKTsKIAkJCWN1cnItPmNhdWdodF91cCA9IChz dHJjbXAoUFFnZXR2YWx1ZShyZXMsIHNsb3RudW0sIGlfY2F1Z2h0X3VwKSwgInQiKSA9PSAwKTsK IAkJCWN1cnItPmludmFsaWQgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBzbG90bnVtLCBpX2lu dmFsaWQpLCAidCIpID09IDApOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5jIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwppbmRleCAxNGEz NmYwNTAzLi4xMGM5NGE2YzFmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBn cmFkZS5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMKQEAgLTkxNiw4ICs5 MTYsMTAgQEAgY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdHModm9pZCkKIAkJCWFwcGVu ZFN0cmluZ0xpdGVyYWxDb25uKHF1ZXJ5LCBzbG90X2luZm8tPnNsb3RuYW1lLCBjb25uKTsKIAkJ CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCAiKTsKIAkJCWFwcGVuZFN0cmluZ0xpdGVyYWxD b25uKHF1ZXJ5LCBzbG90X2luZm8tPnBsdWdpbiwgY29ubik7Ci0JCQlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwgIiwgZmFsc2UsICVzKTsiLAotCQkJCQkJCSAgc2xvdF9pbmZvLT50d29fcGhhc2Ug PyAidHJ1ZSIgOiAiZmFsc2UiKTsKKworCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIsIGZh bHNlLCAlcywgJXMpOyIsCisJCQkJCQkJICBzbG90X2luZm8tPnR3b19waGFzZSA/ICJ0cnVlIiA6 ICJmYWxzZSIsCisJCQkJCQkJICBzbG90X2luZm8tPmZhaWxvdmVyID8gInRydWUiIDogImZhbHNl Iik7CiAKIAkJCVBRY2xlYXIoZXhlY3V0ZVF1ZXJ5T3JEaWUoY29ubiwgIiVzIiwgcXVlcnktPmRh dGEpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCBiL3Ny Yy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmgKaW5kZXggYTFkMDhjM2RhYi4uZDlhODQ4Y2Jm ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAorKysgYi9zcmMv YmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5oCkBAIC0xNjAsNiArMTYwLDggQEAgdHlwZWRlZiBz dHJ1Y3QKIAlib29sCQl0d29fcGhhc2U7CQkvKiBjYW4gdGhlIHNsb3QgZGVjb2RlIDJQQz8gKi8K IAlib29sCQljYXVnaHRfdXA7CQkvKiBoYXMgdGhlIHNsb3QgY2F1Z2h0IHVwIHRvIGxhdGVzdCBj aGFuZ2VzPyAqLwogCWJvb2wJCWludmFsaWQ7CQkvKiBpZiB0cnVlLCB0aGUgc2xvdCBpcyB1bnVz YWJsZSAqLworCWJvb2wJCWZhaWxvdmVyOwkJLyogaXMgdGhlIHNsb3QgZGVzaWduYXRlZCB0byBi ZSBzeW5jZWQgdG8gdGhlCisJCQkJCQkJCSAqIHBoeXNpY2FsIHN0YW5kYnk/ICovCiB9IExvZ2lj YWxTbG90SW5mbzsKIAogdHlwZWRlZiBzdHJ1Y3QKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBn cmFkZS90LzAwM19sb2dpY2FsX3Nsb3RzLnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xv Z2ljYWxfc2xvdHMucGwKaW5kZXggMGU3MDE0ZWNjZS4uYTFmNzg3MDE5ZCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwKKysrIGIvc3JjL2Jpbi9w Z191cGdyYWRlL3QvMDAzX2xvZ2ljYWxfc2xvdHMucGwKQEAgLTE1OSw3ICsxNTksNyBAQCAkc3Vi LT5zdGFydDsKICRzdWItPnNhZmVfcHNxbCgKIAkncG9zdGdyZXMnLCBxcVsKIAlDUkVBVEUgVEFC TEUgdGJsIChhIGludCk7Ci0JQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3N1YiBDT05ORUNU SU9OICckb2xkX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHJlZ3Jlc3NfcHViIFdJVEggKHR3b19waGFz ZSA9ICd0cnVlJykKKwlDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nfc3ViIENPTk5FQ1RJT04g JyRvbGRfY29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19wdWIgV0lUSCAodHdvX3BoYXNlID0g J3RydWUnLCBmYWlsb3ZlciA9ICd0cnVlJykKIF0pOwogJHN1Yi0+d2FpdF9mb3Jfc3Vic2NyaXB0 aW9uX3N5bmMoJG9sZHB1YiwgJ3JlZ3Jlc3Nfc3ViJyk7CiAKQEAgLTE3OSw4ICsxNzksOCBAQCBj b21tYW5kX29rKFtAcGdfdXBncmFkZV9jbWRdLCAncnVuIG9mIHBnX3VwZ3JhZGUgb2Ygb2xkIGNs dXN0ZXInKTsKICMgQ2hlY2sgdGhhdCB0aGUgc2xvdCAncmVncmVzc19zdWInIGhhcyBtaWdyYXRl ZCB0byB0aGUgbmV3IGNsdXN0ZXIKICRuZXdwdWItPnN0YXJ0OwogbXkgJHJlc3VsdCA9ICRuZXdw dWItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJTRUxFQ1Qgc2xvdF9uYW1lLCB0d29fcGhhc2Ug RlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cyIpOwotaXMoJHJlc3VsdCwgcXEocmVncmVzc19zdWJ8 dCksICdjaGVjayB0aGUgc2xvdCBleGlzdHMgb24gbmV3IGNsdXN0ZXInKTsKKwkiU0VMRUNUIHNs b3RfbmFtZSwgdHdvX3BoYXNlLCBmYWlsb3ZlciBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIik7 CitpcygkcmVzdWx0LCBxcShyZWdyZXNzX3N1Ynx0fHQpLCAnY2hlY2sgdGhlIHNsb3QgZXhpc3Rz IG9uIG5ldyBjbHVzdGVyJyk7CiAKICMgVXBkYXRlIHRoZSBjb25uZWN0aW9uCiBteSAkbmV3X2Nv bm5zdHIgPSAkbmV3cHViLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRl eCAzN2Y5NTE2MzIwLi42ZDlhZDVkNzRlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNjU2Myw3ICs2NTYzLDggQEAg ZGVzY3JpYmVTdWJzY3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkK IAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKIAlz dGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLAotCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwkJZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisJZmFsc2V9OwogCiAJ aWYgKHBzZXQuc3ZlcnNpb24gPCAxMDAwMDApCiAJewpAQCAtNjYyNyw2ICs2NjI4LDExIEBAIGRl c2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJ CQkJCQkJICBnZXR0ZXh0X25vb3AoIlBhc3N3b3JkIHJlcXVpcmVkIiksCiAJCQkJCQkJICBnZXR0 ZXh0X25vb3AoIlJ1biBhcyBvd25lcj8iKSk7CiAKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTcw MDAwKQorCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICIsIHN1YmZhaWxvdmVy IEFTIFwiJXNcIlxuIiwKKwkJCQkJCQkgIGdldHRleHRfbm9vcCgiRmFpbG92ZXIiKSk7CisKIAkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJCSAgIiwgIHN1YnN5bmNjb21taXQgQVMgXCIl c1wiXG4iCiAJCQkJCQkgICIsICBzdWJjb25uaW5mbyBBUyBcIiVzXCJcbiIsCmRpZmYgLS1naXQg YS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmMKaW5kZXggMDk5MTQxNjVlNC4uNmI5YWEyMDhjMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwpAQCAtMTk0 Myw3ICsxOTQzLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFy dCwgaW50IGVuZCkKIAkJQ09NUExFVEVfV0lUSCgiKCIsICJQVUJMSUNBVElPTiIpOwogCS8qIEFM VEVSIFNVQlNDUklQVElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNlIGlmIChIZWFkTWF0Y2hlcygi QUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnkpICYmIFRhaWxNYXRjaGVzKCJTRVQiLCAi KCIpKQotCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJvciIsICJvcmln aW4iLAorCQlDT01QTEVURV9XSVRIKCJiaW5hcnkiLCAiZGlzYWJsZV9vbl9lcnJvciIsICJmYWls b3ZlciIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29yZF9yZXF1aXJlZCIsICJydW5fYXNfb3du ZXIiLCAic2xvdF9uYW1lIiwKIAkJCQkJICAic3RyZWFtaW5nIiwgInN5bmNocm9ub3VzX2NvbW1p dCIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFtZT4gU0tJUCAoICovCkBAIC0zMzM1LDcg KzMzMzUsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBp bnQgZW5kKQogCS8qIENvbXBsZXRlICJDUkVBVEUgU1VCU0NSSVBUSU9OIDxuYW1lPiAuLi4gIFdJ VEggKCA8b3B0PiIgKi8KIAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQ1JFQVRFIiwgIlNVQlNDUklQ VElPTiIpICYmIFRhaWxNYXRjaGVzKCJXSVRIIiwgIigiKSkKIAkJQ09NUExFVEVfV0lUSCgiYmlu YXJ5IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwgImNyZWF0ZV9zbG90IiwKLQkJCQkJICAiZGlz YWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgIm9yaWdpbiIsCisJCQkJCSAgImRpc2FibGVfb25f ZXJyb3IiLCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsICJvcmlnaW4iLAogCQkJCQkgICJwYXNzd29y ZF9yZXF1aXJlZCIsICJydW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwKIAkJCQkJICAic3RyZWFt aW5nIiwgInN5bmNocm9ub3VzX2NvbW1pdCIsICJ0d29fcGhhc2UiKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQKaW5kZXggNzk3OTM5Mjc3Ni4uZjQwNzI2YzRmNyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3By b2MuZGF0CkBAIC0xMTExNSwxNyArMTExMTUsMTcgQEAKICAgcHJvbmFtZSA9PiAncGdfZ2V0X3Jl cGxpY2F0aW9uX3Nsb3RzJywgcHJvcm93cyA9PiAnMTAnLCBwcm9pc3N0cmljdCA9PiAnZicsCiAg IHByb3JldHNldCA9PiAndCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAncmVj b3JkJywKICAgcHJvYXJndHlwZXMgPT4gJycsCi0gIHByb2FsbGFyZ3R5cGVzID0+ICd7bmFtZSxu YW1lLHRleHQsb2lkLGJvb2wsYm9vbCxpbnQ0LHhpZCx4aWQscGdfbHNuLHBnX2xzbix0ZXh0LGlu dDgsYm9vbCx0ZXh0fScsCi0gIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG99JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHNsb3RfdHlw ZSxkYXRvaWQsdGVtcG9yYXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0YWxvZ194bWluLHJl c3RhcnRfbHNuLGNvbmZpcm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZlX3dhbF9zaXplLHR3 b19waGFzZSxjb25mbGljdF9yZWFzb259JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5h bWUsdGV4dCxvaWQsYm9vbCxib29sLGludDQseGlkLHhpZCxwZ19sc24scGdfbHNuLHRleHQsaW50 OCxib29sLHRleHQsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHNs b3RfdHlwZSxkYXRvaWQsdGVtcG9yYXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0YWxvZ194 bWluLHJlc3RhcnRfbHNuLGNvbmZpcm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZlX3dhbF9z aXplLHR3b19waGFzZSxjb25mbGljdF9yZWFzb24sZmFpbG92ZXJ9JywKICAgcHJvc3JjID0+ICdw Z19nZXRfcmVwbGljYXRpb25fc2xvdHMnIH0sCiB7IG9pZCA9PiAnMzc4NicsIGRlc2NyID0+ICdz ZXQgdXAgYSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QnLAogICBwcm9uYW1lID0+ICdwZ19jcmVh dGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90JywgcHJvdm9sYXRpbGUgPT4gJ3YnLAogICBwcm9w YXJhbGxlbCA9PiAndScsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCi0gIHByb2FyZ3R5cGVzID0+ ICduYW1lIG5hbWUgYm9vbCBib29sJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tuYW1lLG5hbWUs Ym9vbCxib29sLG5hbWUscGdfbHNufScsCi0gIHByb2FyZ21vZGVzID0+ICd7aSxpLGksaSxvLG99 JywKLSAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHRlbXBvcmFyeSx0d29waGFz ZSxzbG90X25hbWUsbHNufScsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIG5hbWUgYm9vbCBib29s IGJvb2wnLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSxib29sLGJvb2wsYm9vbCxu YW1lLHBnX2xzbn0nLAorICBwcm9hcmdtb2RlcyA9PiAne2ksaSxpLGksaSxvLG99JywKKyAgcHJv YXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHRlbXBvcmFyeSx0d29waGFzZSxmYWlsb3Zl cixzbG90X25hbWUsbHNufScsCiAgIHByb3NyYyA9PiAncGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGlj YXRpb25fc2xvdCcgfSwKIHsgb2lkID0+ICc0MjIyJywKICAgZGVzY3IgPT4gJ2NvcHkgYSBsb2dp Y2FsIHJlcGxpY2F0aW9uIHNsb3QsIGNoYW5naW5nIHRlbXBvcmFsaXR5IGFuZCBwbHVnaW4nLApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggY2EzMjYyNTU4NS4uODY5NTUz OTVjZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oCkBAIC05Myw2ICs5Mywx MiBAQCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9uSWQp IEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCWJvb2wJCXN1YnJ1bmFzb3duZXI7CS8qIFRy dWUgaWYgcmVwbGljYXRpb24gc2hvdWxkIGV4ZWN1dGUgYXMgdGhlCiAJCQkJCQkJCSAqIHN1YnNj cmlwdGlvbiBvd25lciAqLwogCisJYm9vbAkJc3ViZmFpbG92ZXI7CS8qIFRydWUgaWYgdGhlIGFz c29jaWF0ZWQgcmVwbGljYXRpb24gc2xvdHMKKwkJCQkJCQkJICogKGkuZS4gdGhlIG1haW4gc2xv dCBhbmQgdGhlIHRhYmxlIHN5bmMKKwkJCQkJCQkJICogc2xvdHMpIGluIHRoZSB1cHN0cmVhbSBk YXRhYmFzZSBhcmUgZW5hYmxlZAorCQkJCQkJCQkgKiB0aGUgdXBzdHJlYW0gZGF0YWJhc2UgYXJl IGVuYWJsZWQgdG8gYmUKKwkJCQkJCQkJICogc3luY2hyb25pemVkIHRvIHRoZSBwaHlzaWNhbCBz dGFuZGJ5cy4gKi8KKwogI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3Ro IGZpZWxkcyBzdGFydCBoZXJlICovCiAJLyogQ29ubmVjdGlvbiBzdHJpbmcgdG8gdGhlIHB1Ymxp c2hlciAqLwogCXRleHQJCXN1YmNvbm5pbmZvIEJLSV9GT1JDRV9OT1RfTlVMTDsKQEAgLTE0NSw2 ICsxNTEsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgU3Vic2NyaXB0aW9uCiAJTGlzdAkgICAqcHVibGlj YXRpb25zOwkvKiBMaXN0IG9mIHB1YmxpY2F0aW9uIG5hbWVzIHRvIHN1YnNjcmliZSB0byAqLwog CWNoYXIJICAgKm9yaWdpbjsJCQkvKiBPbmx5IHB1Ymxpc2ggZGF0YSBvcmlnaW5hdGluZyBmcm9t IHRoZQogCQkJCQkJCQkgKiBzcGVjaWZpZWQgb3JpZ2luICovCisJYm9vbAkJZmFpbG92ZXI7CQkv KiBJbmRpY2F0ZXMgaWYgdGhlIGFzc29jaWF0ZWQgcmVwbGljYXRpb24KKwkJCQkJCQkJICogc2xv dHMgKGkuZS4gdGhlIG1haW4gc2xvdCBhbmQgdGhlIHRhYmxlIHN5bmMKKwkJCQkJCQkJICogc2xv dHMpIGluIHRoZSB1cHN0cmVhbSBkYXRhYmFzZSBhcmUgZW5hYmxlZAorCQkJCQkJCQkgKiB0byBi ZSBzeW5jaHJvbml6ZWQgdG8gdGhlIHBoeXNpY2FsCisJCQkJCQkJCSAqIHN0YW5kYnlzLiAqLwog fSBTdWJzY3JpcHRpb247CiAKIC8qIERpc2FsbG93IHN0cmVhbWluZyBpbi1wcm9ncmVzcyB0cmFu c2FjdGlvbnMuICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9yZXBsbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5oCmluZGV4IGFmMGEzMzNmMWEuLmVkMjMzMzNl OTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3JlcGxub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3JlcGxub2Rlcy5oCkBAIC03Miw2ICs3MiwxOCBAQCB0eXBlZGVmIHN0cnVj dCBEcm9wUmVwbGljYXRpb25TbG90Q21kCiB9IERyb3BSZXBsaWNhdGlvblNsb3RDbWQ7CiAKIAor LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCUFMVEVSX1JFUExJQ0FUSU9OX1NMT1QgY29t bWFuZAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBBbHRl clJlcGxpY2F0aW9uU2xvdENtZAoreworCU5vZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqc2xvdG5h bWU7CisJTGlzdAkgICAqb3B0aW9uczsKK30gQWx0ZXJSZXBsaWNhdGlvblNsb3RDbWQ7CisKKwog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCVNUQVJUX1JFUExJQ0FUSU9OIGNvbW1hbmQK ICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCA5ZTM5 YWFmMzAzLi41ODVjY2JiNTA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9z bG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBAIC0xMTEsNiArMTEx LDEyIEBAIHR5cGVkZWYgc3RydWN0IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbnREYXRhCiAKIAkv KiBwbHVnaW4gbmFtZSAqLwogCU5hbWVEYXRhCXBsdWdpbjsKKworCS8qCisJICogSXMgdGhpcyBh IGZhaWxvdmVyIHNsb3QgKHN5bmMgY2FuZGlkYXRlIGZvciBwaHlzaWNhbCBzdGFuZGJ5cyk/IE9u bHkKKwkgKiByZWxldmFudCBmb3IgbG9naWNhbCBzbG90cyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIu CisJICovCisJYm9vbAkJZmFpbG92ZXI7CiB9IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3RlbnREYXRh OwogCiAvKgpAQCAtMjE4LDkgKzIyNCwxMCBAQCBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3Rz U2htZW1Jbml0KHZvaWQpOwogLyogbWFuYWdlbWVudCBvZiBpbmRpdmlkdWFsIHNsb3RzICovCiBl eHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBk Yl9zcGVjaWZpYywKIAkJCQkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0 ZW5jeSwKLQkJCQkJCQkJICBib29sIHR3b19waGFzZSk7CisJCQkJCQkJCSAgYm9vbCB0d29fcGhh c2UsIGJvb2wgZmFpbG92ZXIpOwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90UGVyc2lzdCh2 b2lkKTsKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdERyb3AoY29uc3QgY2hhciAqbmFtZSwg Ym9vbCBub3dhaXQpOworZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90QWx0ZXIoY29uc3QgY2hh ciAqbmFtZSwgYm9vbCBmYWlsb3Zlcik7CiAKIGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdEFj cXVpcmUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dhaXQpOwogZXh0ZXJuIHZvaWQgUmVwbGlj YXRpb25TbG90UmVsZWFzZSh2b2lkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL3dhbHJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5o CmluZGV4IDA4OTk4OTFjZGIuLmY1NjZhOTliYTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fs cmVjZWl2ZXIuaApAQCAtMzU1LDkgKzM1NSwyMCBAQCB0eXBlZGVmIGNoYXIgKigqd2FscmN2X2Ny ZWF0ZV9zbG90X2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJCQkJCQkJCWNvbnN0IGNo YXIgKnNsb3RuYW1lLAogCQkJCQkJCQkJCWJvb2wgdGVtcG9yYXJ5LAogCQkJCQkJCQkJCWJvb2wg dHdvX3BoYXNlLAorCQkJCQkJCQkJCWJvb2wgZmFpbG92ZXIsCiAJCQkJCQkJCQkJQ1JTU25hcHNo b3RBY3Rpb24gc25hcHNob3RfYWN0aW9uLAogCQkJCQkJCQkJCVhMb2dSZWNQdHIgKmxzbik7CiAK Ky8qCisgKiB3YWxyY3ZfYWx0ZXJfc2xvdF9mbgorICoKKyAqIENoYW5nZSB0aGUgZGVmaW5pdGlv biBvZiBhIHJlcGxpY2F0aW9uIHNsb3QuIEN1cnJlbnRseSwgaXQgb25seSBzdXBwb3J0cworICog Y2hhbmdpbmcgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIHRoZSBzbG90LgorICovCit0eXBlZGVm IHZvaWQgKCp3YWxyY3ZfYWx0ZXJfc2xvdF9mbikgKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKKwkJ CQkJCQkJCSAgY29uc3QgY2hhciAqc2xvdG5hbWUsCisJCQkJCQkJCQkgIGJvb2wgZmFpbG92ZXIp OworCiAvKgogICogd2FscmN2X2dldF9iYWNrZW5kX3BpZF9mbgogICoKQEAgLTM5OSw2ICs0MTAs NyBAQCB0eXBlZGVmIHN0cnVjdCBXYWxSZWNlaXZlckZ1bmN0aW9uc1R5cGUKIAl3YWxyY3ZfcmVj ZWl2ZV9mbiB3YWxyY3ZfcmVjZWl2ZTsKIAl3YWxyY3Zfc2VuZF9mbiB3YWxyY3Zfc2VuZDsKIAl3 YWxyY3ZfY3JlYXRlX3Nsb3RfZm4gd2FscmN2X2NyZWF0ZV9zbG90OworCXdhbHJjdl9hbHRlcl9z bG90X2ZuIHdhbHJjdl9hbHRlcl9zbG90OwogCXdhbHJjdl9nZXRfYmFja2VuZF9waWRfZm4gd2Fs cmN2X2dldF9iYWNrZW5kX3BpZDsKIAl3YWxyY3ZfZXhlY19mbiB3YWxyY3ZfZXhlYzsKIAl3YWxy Y3ZfZGlzY29ubmVjdF9mbiB3YWxyY3ZfZGlzY29ubmVjdDsKQEAgLTQyOCw4ICs0NDAsMTAgQEAg ZXh0ZXJuIFBHRExMSU1QT1JUIFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZSAqV2FsUmVjZWl2ZXJG dW5jdGlvbnM7CiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9yZWNlaXZlKGNvbm4sIGJ1 ZmZlciwgd2FpdF9mZCkKICNkZWZpbmUgd2FscmN2X3NlbmQoY29ubiwgYnVmZmVyLCBuYnl0ZXMp IFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X3NlbmQoY29ubiwgYnVmZmVyLCBuYnl0 ZXMpCi0jZGVmaW5lIHdhbHJjdl9jcmVhdGVfc2xvdChjb25uLCBzbG90bmFtZSwgdGVtcG9yYXJ5 LCB0d29fcGhhc2UsIHNuYXBzaG90X2FjdGlvbiwgbHNuKSBcCi0JV2FsUmVjZWl2ZXJGdW5jdGlv bnMtPndhbHJjdl9jcmVhdGVfc2xvdChjb25uLCBzbG90bmFtZSwgdGVtcG9yYXJ5LCB0d29fcGhh c2UsIHNuYXBzaG90X2FjdGlvbiwgbHNuKQorI2RlZmluZSB3YWxyY3ZfY3JlYXRlX3Nsb3QoY29u biwgc2xvdG5hbWUsIHRlbXBvcmFyeSwgdHdvX3BoYXNlLCBmYWlsb3Zlciwgc25hcHNob3RfYWN0 aW9uLCBsc24pIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2NyZWF0ZV9zbG90KGNv bm4sIHNsb3RuYW1lLCB0ZW1wb3JhcnksIHR3b19waGFzZSwgZmFpbG92ZXIsIHNuYXBzaG90X2Fj dGlvbiwgbHNuKQorI2RlZmluZSB3YWxyY3ZfYWx0ZXJfc2xvdChjb25uLCBzbG90bmFtZSwgZmFp bG92ZXIpIFwKKwlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2FsdGVyX3Nsb3QoY29ubiwg c2xvdG5hbWUsIGZhaWxvdmVyKQogI2RlZmluZSB3YWxyY3ZfZ2V0X2JhY2tlbmRfcGlkKGNvbm4p IFwKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2dldF9iYWNrZW5kX3BpZChjb25uKQog I2RlZmluZSB3YWxyY3ZfZXhlYyhjb25uLCBleGVjLCBuUmV0VHlwZXMsIHJldFR5cGVzKSBcCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3Rz X3N5bmMucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3Rz X3N5bmMucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjQ2MjkzYzM5 ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFp bG92ZXJfc2xvdHNfc3luYy5wbApAQCAtMCwwICsxLDg5IEBACisKKyMgQ29weXJpZ2h0IChjKSAy MDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0Owor dXNlIHdhcm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdy ZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0aGF0IHdoZW4gYSBzdWJz Y3JpcHRpb24gd2l0aCBmYWlsb3ZlciBlbmFibGVkIGlzIGNyZWF0ZWQsIGl0IHdpbGwgYWx0ZXIK KyMgdGhlIGZhaWxvdmVyIHByb3BlcnR5IG9mIHRoZSBjb3JyZXNwb25kaW5nIHNsb3Qgb24gdGhl IHB1Ymxpc2hlci4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCisKKyMgQ3JlYXRlIHB1Ymxpc2hlcgorbXkgJHB1Ymxpc2hlciA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7CiskcHVibGlzaGVyLT5pbml0KGFsbG93 c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRwdWJsaXNoZXItPnN0YXJ0OworCiskcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHJlZ3Jlc3Nf bXlwdWIgRk9SIEFMTCBUQUJMRVM7IgorKTsKKworbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJHB1 Ymxpc2hlci0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKworIyBDcmVhdGUgYSBzdWJz Y3JpYmVyIG5vZGUsIHdhaXQgZm9yIHN5bmMgdG8gY29tcGxldGUKK215ICRzdWJzY3JpYmVyMSA9 IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2NyaWJlcjEnKTsKKyRzdWJzY3Jp YmVyMS0+aW5pdDsKKyRzdWJzY3JpYmVyMS0+c3RhcnQ7CisKKyMgQ3JlYXRlIGEgc2xvdCBvbiB0 aGUgcHVibGlzaGVyIHdpdGggZmFpbG92ZXIgZGlzYWJsZWQKKyRwdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgJ2luaXQnIEZST00gcGdfY3JlYXRlX2xvZ2ljYWxfcmVw bGljYXRpb25fc2xvdCgnbHN1YjFfc2xvdCcsICdwZ291dHB1dCcsIGZhbHNlLCBmYWxzZSwgZmFs c2UpOyIKKyk7CisKKyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFnIG9uIHRoZSBzbG90 IGlzIHR1cm5lZCBvZmYKK2lzKCAkcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJCSdwb3N0Z3Jlcycs CisJCXF7U0VMRUNUIGZhaWxvdmVyIGZyb20gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xv dF9uYW1lID0gJ2xzdWIxX3Nsb3QnO30KKwkpLAorCSJmIiwKKwknbG9naWNhbCBzbG90IGhhcyBm YWlsb3ZlciBmYWxzZSBvbiB0aGUgcHVibGlzaGVyJyk7CisKKyMgQ3JlYXRlIGEgc3Vic2NyaXB0 aW9uICh1c2luZyB0aGUgc2FtZSBzbG90IGNyZWF0ZWQgYWJvdmUpIHRoYXQgZW5hYmxlcworIyBm YWlsb3Zlci4KKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBT VUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3Ry JyBQVUJMSUNBVElPTiByZWdyZXNzX215cHViIFdJVEggKHNsb3RfbmFtZSA9IGxzdWIxX3Nsb3Qs IGNvcHlfZGF0YT1mYWxzZSwgZmFpbG92ZXIgPSB0cnVlLCBjcmVhdGVfc2xvdCA9IGZhbHNlLCBl bmFibGVkID0gZmFsc2UpOyIKKyk7CisKKyMgQ29uZmlybSB0aGF0IHRoZSBmYWlsb3ZlciBmbGFn IG9uIHRoZSBzbG90IGhhcyBub3cgYmVlbiB0dXJuZWQgb24KK2lzKCAkcHVibGlzaGVyLT5zYWZl X3BzcWwoCisJCSdwb3N0Z3JlcycsCisJCXF7U0VMRUNUIGZhaWxvdmVyIGZyb20gcGdfcmVwbGlj YXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2xzdWIxX3Nsb3QnO30KKwkpLAorCSJ0IiwK KwknbG9naWNhbCBzbG90IGhhcyBmYWlsb3ZlciB0cnVlIG9uIHRoZSBwdWJsaXNoZXInKTsKKwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVz dCB0aGF0IGNoYW5naW5nIHRoZSBmYWlsb3ZlciBwcm9wZXJ0eSBvZiBhIHN1YnNjcmlwdGlvbiB1 cGRhdGVzIHRoZQorIyBjb3JyZXNwb25kaW5nIGZhaWxvdmVyIHByb3BlcnR5IG9mIHRoZSBzbG90 LgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor IyBEaXNhYmxlIGZhaWxvdmVyCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgU0VUIChmYWlsb3ZlciA9IGZhbHNl KSIpOworCisjIENvbmZpcm0gdGhhdCB0aGUgZmFpbG92ZXIgZmxhZyBvbiB0aGUgc2xvdCBoYXMg bm93IGJlZW4gdHVybmVkIG9mZgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3Rn cmVzJywKKwkJcXtTRUxFQ1QgZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVS RSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCc7fQorCSksCisJImYiLAorCSdsb2dpY2FsIHNsb3Qg aGFzIGZhaWxvdmVyIGZhbHNlIG9uIHRoZSBwdWJsaXNoZXInKTsKKworIyBFbmFibGUgZmFpbG92 ZXIKKyRzdWJzY3JpYmVyMS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX215c3ViMSBTRVQgKGZhaWxvdmVyID0gdHJ1ZSkiKTsKKworIyBDb25maXJt IHRoYXQgdGhlIGZhaWxvdmVyIGZsYWcgb24gdGhlIHNsb3QgaGFzIG5vdyBiZWVuIHR1cm5lZCBv bgoraXMoICRwdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVzJywKKwkJcXtTRUxFQ1Qg ZmFpbG92ZXIgZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1 YjFfc2xvdCc7fQorCSksCisJInQiLAorCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVyIHRydWUg b24gdGhlIHB1Ymxpc2hlcicpOworCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEiKTsKKworZG9uZV90ZXN0aW5nKCk7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IGQ4NzhhOTcxZGYuLmFjYzIzMzli NDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xNDczLDggKzE0NzMsOSBA QCBwZ19yZXBsaWNhdGlvbl9zbG90c3wgU0VMRUNUIGwuc2xvdF9uYW1lLAogICAgIGwud2FsX3N0 YXR1cywKICAgICBsLnNhZmVfd2FsX3NpemUsCiAgICAgbC50d29fcGhhc2UsCi0gICAgbC5jb25m bGljdF9yZWFzb24KLSAgIEZST00gKHBnX2dldF9yZXBsaWNhdGlvbl9zbG90cygpIGwoc2xvdF9u YW1lLCBwbHVnaW4sIHNsb3RfdHlwZSwgZGF0b2lkLCB0ZW1wb3JhcnksIGFjdGl2ZSwgYWN0aXZl X3BpZCwgeG1pbiwgY2F0YWxvZ194bWluLCByZXN0YXJ0X2xzbiwgY29uZmlybWVkX2ZsdXNoX2xz biwgd2FsX3N0YXR1cywgc2FmZV93YWxfc2l6ZSwgdHdvX3BoYXNlLCBjb25mbGljdF9yZWFzb24p CisgICAgbC5jb25mbGljdF9yZWFzb24sCisgICAgbC5mYWlsb3ZlcgorICAgRlJPTSAocGdfZ2V0 X3JlcGxpY2F0aW9uX3Nsb3RzKCkgbChzbG90X25hbWUsIHBsdWdpbiwgc2xvdF90eXBlLCBkYXRv aWQsIHRlbXBvcmFyeSwgYWN0aXZlLCBhY3RpdmVfcGlkLCB4bWluLCBjYXRhbG9nX3htaW4sIHJl c3RhcnRfbHNuLCBjb25maXJtZWRfZmx1c2hfbHNuLCB3YWxfc3RhdHVzLCBzYWZlX3dhbF9zaXpl LCB0d29fcGhhc2UsIGNvbmZsaWN0X3JlYXNvbiwgZmFpbG92ZXIpCiAgICAgIExFRlQgSk9JTiBw Z19kYXRhYmFzZSBkIE9OICgobC5kYXRvaWQgPSBkLm9pZCkpKTsKIHBnX3JvbGVzfCBTRUxFQ1Qg cGdfYXV0aGlkLnJvbG5hbWUsCiAgICAgcGdfYXV0aGlkLnJvbHN1cGVyLApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CmluZGV4IGIxNWVkZGJmZjMuLjVmYTIzMGE4 OTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKQEAgLTEx NiwxOCArMTE2LDE4IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNCBDT05O RUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVCiBXQVJOSU5HOiAgc3Vic2Ny aXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRp YXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9u IHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0 aW9uLgogXGRScysgcmVncmVzc190ZXN0c3ViNAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlv biB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVy cm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBub25lICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgTmFtZSAgICAgICB8ICAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCist LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWI0IFNFVCAob3JpZ2luID0gYW55KTsKIFxkUnMrIHJlZ3Jl c3NfdGVzdHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIzOwpAQCAtMTQ1LDEwICsxNDUsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBDT05ORUNUSU9OICdmb29iYXInOwogRVJST1I6ICBpbnZhbGlkIGNvbm5lY3Rpb24g c3RyaW5nIHN5bnRheDogbWlzc2luZyAiPSIgYWZ0ZXIgImZvb2JhciIgaW4gY29ubmVjdGlvbiBp bmZvIHN0cmluZwogCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSBy ZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwg VHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCBy ZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19k b2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTRVQgUFVCTElDQVRJT04gdGVzdHB1YjIsIHRlc3RwdWIzIFdJVEggKHJlZnJlc2gg PSBmYWxzZSk7CkBAIC0xNTcsMTAgKzE1NywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gJ25ld25hbWUnKTsKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlKTsKIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChydW5fYXNfb3duZXIgPSB0cnVlKTsK IFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkg fCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdp biB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAg ICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAg IHwgdCAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0 aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0 ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICAgICB8IGFueSAgICB8IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8 IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0MiB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAocGFzc3dvcmRfcmVxdWlyZWQgPSB0cnVlKTsKQEAgLTE3NiwxMCArMTc2LDEwIEBAIEVS Uk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6ICJjcmVhdGVfc2xvdCIK IC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcw LzEyMzQ1Jyk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAg IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8xMjM0NQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z CisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8xMjM0NQogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNu ID0gTk9ORQpAQCAtMTg4LDEwICsxODgsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTS0lQIChsc24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0tJUCAobHNuID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAo TFNOKTogMC8wCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAg IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAg ICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJvdykKIAogQkVHSU47CkBAIC0yMjMsMTAgKzIyMywx MCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViX2ZvbyBTRVQgKHN5bmNocm9u b3VzX2NvbW1pdCA9IGZvb2Jhcik7CiBFUlJPUjogIGludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRl ciAic3luY2hyb25vdXNfY29tbWl0IjogImZvb2JhciIKIEhJTlQ6ICBBdmFpbGFibGUgdmFsdWVz OiBsb2NhbCwgcmVtb3RlX3dyaXRlLCByZW1vdGVfYXBwbHksIG9uLCBvZmYuCiBcZFJzKwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQotIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAg IE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAg IFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBsb2NhbCAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNrIHRv IGtlZXAgdGhlIHJlc3Qgc2ltcGxlCkBAIC0yNTUsMTkgKzI1NSwxOSBAQCBDUkVBVEUgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5v dCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFu dWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlv biwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgdCAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoYmluYXJ5ID0gZmFsc2UpOwogQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwogXGRS cysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRp b25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJs ZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQg fCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMg b3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAg fCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAg ICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8w CiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTI3OSwy NyArMjc5LDI3IEBAIENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJ T04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0 aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRl IHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNs b3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9uLCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9u LgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IG9uICAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJz Y3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBj b21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBS dW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VU IChzdHJlYW1pbmcgPSBwYXJhbGxlbCk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IGZhbHNlKTsKIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jl c3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBv ZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEg cm93KQogCiAtLSBmYWlsIC0gcHVibGljYXRpb24gYWxyZWFkeSBleGlzdHMKQEAgLTMxNCwxMCAr MzE0LDEwIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FU SU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRIIChyZWZyCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIEFERCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVm cmVzaCA9IGZhbHNlKTsKIEVSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWIxIiBpcyBhbHJlYWR5 IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0c3ViIgogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNj cmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwg RW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAg IHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAg ICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENv bm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBm ICAgICAgIHwge3Rlc3RwdWIsdGVzdHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiAtLSBmYWls IC0gcHVibGljYXRpb24gdXNlZCBtb3JlIHRoYW4gb25jZQpAQCAtMzMyLDEwICszMzIsMTAgQEAg RVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjMiIGlzIG5vdCBpbiBzdWJzY3JpcHRpb24gInJl Z3Jlc3NfdGVzdHN1YiIKIC0tIG9rIC0gZGVsZXRlIHB1YmxpY2F0aW9ucwogQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHVi MiBXSVRIIChyZWZyZXNoID0gZmFsc2UpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g Ci0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJv bm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIERST1AgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YjsKQEAgLTM3MSwxMCArMzcxLDEwIEBAIENSRUFURSBTVUJTQ1JJ UFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBidXQgaXMgbm90 IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3UgbXVzdCBtYW51 YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vic2NyaXB0aW9u LCBhbmQgcmVmcmVzaCB0aGUgc3Vic2NyaXB0aW9uLgogXGRScysKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0g ICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQ dWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNh YmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/ IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IHAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAg fCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAg IHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIC0tZmFpbCAt IGFsdGVyIG9mIHR3b19waGFzZSBvcHRpb24gbm90IHN1cHBvcnRlZC4KQEAgLTM4MywxMCArMzgz LDEwIEBAIEVSUk9SOiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6ICJ0d29f cGhhc2UiCiAtLSBidXQgY2FuIGFsdGVyIHN0cmVhbWluZyB3aGVuIHR3b19waGFzZSBlbmFibGVk CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0gdHJ1 ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rl c3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAg IHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg ICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBT RVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtMzk2LDEwICszOTYsMTAgQEAgQ1JFQVRFIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25v dGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBu b3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1h bnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRp b24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBT a2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAg TFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAg ICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIg U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAt NDEyLDE4ICs0MTIsMzEgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09O TkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJz Y3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5p dGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRp b24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3Jp cHRpb24uCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNz X3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVi fSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwot ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNr aXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAg ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorKDEgcm93KQorCitBTFRFUiBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CistLSB0ZXN0IGZhaWxvdmVyIG9wdGlvbgor Q1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBm YWxzZSwgZmFpbG92ZXIgPSB0cnVlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0 ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24s IHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRo ZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCitcZFJzKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28t cGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVp cmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8 IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAg ICAgfCB0ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zdWJzY3JpcHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9u LnNxbAppbmRleCA0NDRlNTYzZmYzLi5lNDYwMTE1OGIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1 YnNjcmlwdGlvbi5zcWwKQEAgLTI5MCw2ICsyOTAsMTQgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlKTsKIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIERST1AgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKIAorLS0gdGVzdCBmYWlsb3ZlciBvcHRpb24KK0NS RUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFs c2UsIGZhaWxvdmVyID0gdHJ1ZSk7CisKK1xkUnMrCisKK0FMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YjsKKwogLS0gbGV0J3MgZG8gc29tZSB0ZXN0cyB3aXRoIHBnX2NyZWF0ZV9z dWJzY3JpcHRpb24gcmF0aGVyIHRoYW4gc3VwZXJ1c2VyCiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFU SU9OIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIzOwogCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CmluZGV4IDVmZDQ2YjdiZDEuLjliNjc5ODY5MTQgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CkBAIC04NSw2ICs4NSw3IEBAIEFsdGVyT3duZXJTdG10CiBBbHRlclBvbGljeVN0bXQKIEFsdGVy UHVibGljYXRpb25BY3Rpb24KIEFsdGVyUHVibGljYXRpb25TdG10CitBbHRlclJlcGxpY2F0aW9u U2xvdENtZAogQWx0ZXJSb2xlU2V0U3RtdAogQWx0ZXJSb2xlU3RtdAogQWx0ZXJTZXFTdG10CkBA IC0zODc0LDYgKzM4NzUsNyBAQCB2YXJhdHRyaWJfMWJfZQogdmFyYXR0cmliXzRiCiB2Yml0cwog dmVyaWZpZXJfY29udGV4dAord2FscmN2X2FsdGVyX3Nsb3RfZm4KIHdhbHJjdl9jaGVja19jb25u aW5mb19mbgogd2FscmN2X2Nvbm5lY3RfZm4KIHdhbHJjdl9jcmVhdGVfc2xvdF9mbgotLSAKMi4z MC4wLndpbmRvd3MuMgoK --_005_OS0PR01MB57169DD55EC8D9D1EDB7A0C2946A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v58-0002-Add-logical-slot-sync-capability-to-the-physical.patch" Content-Description: v58-0002-Add-logical-slot-sync-capability-to-the-physical.patch Content-Disposition: attachment; filename="v58-0002-Add-logical-slot-sync-capability-to-the-physical.patch"; size=84598; creation-date="Tue, 09 Jan 2024 12:00:02 GMT"; modification-date="Tue, 09 Jan 2024 12:14:02 GMT" Content-Transfer-Encoding: base64 RnJvbSAzMDkxNzAzMDFjNDYxN2YwM2Y4YTdlMDUwY2I5ODA4Mjc2ZDhhMjNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxzaGVybG9ja2NwcEBmb3htYWlsLmNvbT4K RGF0ZTogU2F0LCA2IEphbiAyMDI0IDE1OjA4OjU3ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NTgg Mi8yXSBBZGQgbG9naWNhbCBzbG90IHN5bmMgY2FwYWJpbGl0eSB0byB0aGUgcGh5c2ljYWwKIHN0 YW5kYnkKClRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzeW5jaHJvbml6YXRpb24gb2YgbG9naWNhbCBy ZXBsaWNhdGlvbiBzbG90cwpmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciB0byB0aGUgcGh5c2ljYWwg c3RhbmRieSBzbyB0aGF0IGxvZ2ljYWwKcmVwbGljYXRpb24gY2FuIGJlIHJlc3VtZWQgYWZ0ZXIg ZmFpbG92ZXIuCgpHVUMgJ2VuYWJsZV9zeW5jc2xvdCcgZW5hYmxlcyBhIHBoeXNpY2FsIHN0YW5k YnkgdG8gc3luY2hyb25pemUgZmFpbG92ZXIKbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBmcm9t IHRoZSBwcmltYXJ5IHNlcnZlci4KClRoZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIG9uIHRo ZSBwcmltYXJ5IGNhbiBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIGhvdApzdGFuZGJ5IGJ5IGVuYWJs aW5nIHRoZSBmYWlsb3ZlciBvcHRpb24gZHVyaW5nIHNsb3QgY3JlYXRpb24gYW5kIHNldHRpbmcK J2VuYWJsZV9zeW5jc2xvdCcgb24gdGhlIHN0YW5kYnkuIEZvciB0aGUgc3luY2hyb25pemF0aW9u IHRvIHdvcmssIGl0IGlzCm1hbmRhdG9yeSB0byBoYXZlIGEgcGh5c2ljYWwgcmVwbGljYXRpb24g c2xvdCBiZXR3ZWVuIHRoZSBwcmltYXJ5IGFuZCB0aGUKc3RhbmRieSwgYW5kIGhvdF9zdGFuZGJ5 X2ZlZWRiYWNrIG11c3QgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRieS4KCkFsbCB0aGUgZmFpbG92 ZXIgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cyBvbiB0aGUgcHJpbWFyeSAoYXNzdW1pbmcKY29u ZmlndXJhdGlvbnMgYXJlIGFwcHJvcHJpYXRlKSBhcmUgYXV0b21hdGljYWxseSBjcmVhdGVkIG9u IHRoZSBwaHlzaWNhbApzdGFuZGJ5cyBhbmQgYXJlIHN5bmNlZCBwZXJpb2RpY2FsbHkuIFNsb3Qt c3luYyB3b3JrZXIgb24gdGhlIHN0YW5kYnkgc2VydmVyCnBpbmcgdGhlIHByaW1hcnkgc2VydmVy IGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIHRvIGdldCB0aGUgbmVjZXNzYXJ5CmZhaWxvdmVyIGxvZ2lj YWwgc2xvdHMgaW5mb3JtYXRpb24gYW5kIGNyZWF0ZS91cGRhdGUgdGhlIHNsb3RzIGxvY2FsbHku CgpUaGUgbmFwIHRpbWUgb2YgdGhlIHdvcmtlciBpcyB0dW5lZCBhY2NvcmRpbmcgdG8gdGhlIGFj dGl2aXR5IG9uIHRoZSBwcmltYXJ5LgpUaGUgd29ya2VyIHN0YXJ0cyB3aXRoIG5hcCB0aW1lIG9m IDEwbXMgYW5kIGlmIG5vIGFjdGl2aXR5IGlzIG9ic2VydmVkIG9uCnRoZSBwcmltYXJ5IGZvciBz b21lIHRpbWUsIHRoZW4gbmFwIHRpbWUgaXMgaW5jcmVhc2VkIHRvIDEwc2VjLiBJZgphY3Rpdml0 eSBpcyBvYnNlcnZlZCBhZ2FpbiwgbmFwIHRpbWUgaXMgcmVkdWNlZCBiYWNrIHRvIDEwbXMuCgpU aGUgbG9naWNhbCBzbG90cyBjcmVhdGVkIGJ5IHNsb3Qtc3luYyB3b3JrZXIgb24gcGh5c2ljYWwg c3RhbmRieXMgYXJlIG5vdAphbGxvd2VkIHRvIGJlIGRyb3BwZWQgb3IgY29uc3VtZWQuIEFueSBh dHRlbXB0IHRvIHBlcmZvcm0gbG9naWNhbCBkZWNvZGluZyBvbgpzdWNoIHNsb3RzIHdpbGwgcmVz dWx0IGluIGFuIGVycm9yLgoKSWYgYSBsb2dpY2FsIHNsb3QgaXMgaW52YWxpZGF0ZWQgb24gdGhl IHByaW1hcnksIHNsb3Qgb24gdGhlIHN0YW5kYnkgaXMgYWxzbwppbnZhbGlkYXRlZC4KCklmIGEg bG9naWNhbCBzbG90IG9uIHRoZSBwcmltYXJ5IGlzIHZhbGlkIGJ1dCBpcyBpbnZhbGlkYXRlZCBv biB0aGUgc3RhbmRieSwKdGhlbiB0aGF0IHNsb3QgaXMgZHJvcHBlZCBhbmQgcmVjcmVhdGVkIG9u IHRoZSBzdGFuZGJ5IGluIG5leHQgc3luYy1jeWNsZQpwcm92aWRlZCB0aGUgc2xvdCBzdGlsbCBl eGlzdHMgb24gdGhlIHByaW1hcnkgc2VydmVyLiBJdCBpcyBva2F5IHRvIHJlY3JlYXRlCnN1Y2gg c2xvdHMgYXMgbG9uZyBhcyB0aGVzZSBhcmUgbm90IGNvbnN1bWFibGUgb24gdGhlIHN0YW5kYnkg KHdoaWNoIGlzIHRoZQpjYXNlIGN1cnJlbnRseSkuIFRoaXMgc2l0dWF0aW9uIG1heSBvY2N1ciBk dWUgdG8gdGhlIGZvbGxvd2luZyByZWFzb25zOgotIFRoZSBtYXhfc2xvdF93YWxfa2VlcF9zaXpl IG9uIHRoZSBzdGFuZGJ5IGlzIGluc3VmZmljaWVudCB0byByZXRhaW4gV0FMCiAgcmVjb3JkcyBm cm9tIHRoZSByZXN0YXJ0X2xzbiBvZiB0aGUgc2xvdC4KLSBwcmltYXJ5X3Nsb3RfbmFtZSBpcyB0 ZW1wb3JhcmlseSByZXNldCB0byBudWxsIGFuZCB0aGUgcGh5c2ljYWwgc2xvdCBpcwogIHJlbW92 ZWQuCi0gVGhlIHByaW1hcnkgY2hhbmdlcyB3YWxfbGV2ZWwgdG8gYSBsZXZlbCBsb3dlciB0aGFu IGxvZ2ljYWwuCgpUaGUgc2xvdHMgc3luY2hyb25pemF0aW9uIHN0YXR1cyBvbiB0aGUgc3RhbmRi eSBjYW4gYmUgbW9uaXRvcmVkIHVzaW5nCidzeW5jZWQnIGNvbHVtbiBvZiBwZ19yZXBsaWNhdGlv bl9zbG90cyB2aWV3LgotLS0KIGRvYy9zcmMvc2dtbC9iZ3dvcmtlci5zZ21sICAgICAgICAgICAg ICAgICAgICB8ICAgNjUgKy0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAg ICAgICAgICB8ICAgMjcgKy0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCAgICAg ICAgICAgICB8ICAgMzQgKwogZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sICAgICAgICAg ICAgICAgIHwgICAxNiArCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgICAgICAg ICAgICAgfCAgICA1ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3Zlcnku YyAgICAgfCAgIDE1ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCAgICAg ICAgICB8ICAgIDMgKy0KIHNyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYyAgICAgICAg ICAgICB8ICAgIDQgKwogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgICAgICAg ICAgIHwgICAxMCArCiAuLi4vbGlicHF3YWxyZWNlaXZlci9saWJwcXdhbHJlY2VpdmVyLmMgICAg ICAgfCAgIDQxICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUgICAg ICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMgICAg IHwgICAxMiArCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkICAg fCAgICAxICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYyAgICB8 IDExNTQgKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyAg ICAgICAgICAgICAgICB8ICAgMzIgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5j cy5jICAgICAgICAgICB8ICAgMTQgKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyZnVuY3MuYyAgICB8ICAgMTYgKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmMgICAgICAgICAgIHwgICAgNCArLQogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jICAg ICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAg ICAgICAgICAgICAgfCAgIDExICsKIC4uLi91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25hbWVz LnR4dCAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMg ICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29u Zi5zYW1wbGUgfCAgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAg ICAgICAgICB8ICAgIDYgKy0KIHNyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCAgICAg ICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5o ICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmggICAgICAgICAg ICAgICAgfCAgIDE3ICstCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oICAg ICAgICAgfCAgIDE5ICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5o ICAgICB8ICAgMTAgKwogLi4uL3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCAg ICAgIHwgIDE2NSArKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAg ICAgICB8ICAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0ICAg ICAgICB8ICAgIDMgKy0KIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAg ICAgICB8ICAgIDIgKwogMzMgZmlsZXMgY2hhbmdlZCwgMTY3MiBpbnNlcnRpb25zKCspLCAzNyBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL3Nsb3RzeW5jLmMKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvYmd3b3JrZXIuc2dt bCBiL2RvYy9zcmMvc2dtbC9iZ3dvcmtlci5zZ21sCmluZGV4IDJjMzkzMzg1YTkuLmE3Y2ZlNmM1 OGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9iZ3dvcmtlci5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9iZ3dvcmtlci5zZ21sCkBAIC0xMTQsMTggKzExNCw1OSBAQCB0eXBlZGVmIHN0cnVjdCBC YWNrZ3JvdW5kV29ya2VyCiAKICAgPHBhcmE+CiAgICA8c3RydWN0ZmllbGQ+Ymd3X3N0YXJ0X3Rp bWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgc2VydmVyIHN0YXRlIGR1cmluZyB3aGljaAotICAgPGNv bW1hbmQ+cG9zdGdyZXM8L2NvbW1hbmQ+IHNob3VsZCBzdGFydCB0aGUgcHJvY2VzczsgaXQgY2Fu IGJlIG9uZSBvZgotICAgPGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Qb3N0bWFzdGVyU3RhcnQ8L2xp dGVyYWw+IChzdGFydCBhcyBzb29uIGFzCi0gICA8Y29tbWFuZD5wb3N0Z3JlczwvY29tbWFuZD4g aXRzZWxmIGhhcyBmaW5pc2hlZCBpdHMgb3duIGluaXRpYWxpemF0aW9uOyBwcm9jZXNzZXMKLSAg IHJlcXVlc3RpbmcgdGhpcyBhcmUgbm90IGVsaWdpYmxlIGZvciBkYXRhYmFzZSBjb25uZWN0aW9u cyksCi0gICA8bGl0ZXJhbD5CZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD4g KHN0YXJ0IGFzIHNvb24gYXMgYSBjb25zaXN0ZW50IHN0YXRlCi0gICBoYXMgYmVlbiByZWFjaGVk IGluIGEgaG90IHN0YW5kYnksIGFsbG93aW5nIHByb2Nlc3NlcyB0byBjb25uZWN0IHRvCi0gICBk YXRhYmFzZXMgYW5kIHJ1biByZWFkLW9ubHkgcXVlcmllcyksIGFuZAotICAgPGxpdGVyYWw+QmdX b3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkPC9saXRlcmFsPiAoc3RhcnQgYXMgc29vbiBhcyB0 aGUgc3lzdGVtIGhhcwotICAgZW50ZXJlZCBub3JtYWwgcmVhZC13cml0ZSBzdGF0ZSkuICBOb3Rl IHRoZSBsYXN0IHR3byB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQKLSAgIGluIGEgc2VydmVyIHRoYXQn cyBub3QgYSBob3Qgc3RhbmRieS4gIE5vdGUgdGhhdCB0aGlzIHNldHRpbmcgb25seSBpbmRpY2F0 ZXMKLSAgIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgdG8gYmUgc3RhcnRlZDsgdGhleSBkbyBub3Qg c3RvcCB3aGVuIGEgZGlmZmVyZW50IHN0YXRlCi0gICBpcyByZWFjaGVkLgorICAgPGNvbW1hbmQ+ cG9zdGdyZXM8L2NvbW1hbmQ+IHNob3VsZCBzdGFydCB0aGUgcHJvY2Vzcy4gTm90ZSB0aGF0IHRo aXMgc2V0dGluZworICAgb25seSBpbmRpY2F0ZXMgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSB0byBi ZSBzdGFydGVkOyB0aGV5IGRvIG5vdCBzdG9wIHdoZW4KKyAgIGEgZGlmZmVyZW50IHN0YXRlIGlz IHJlYWNoZWQuIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+QmdXb3JrZXJTdGFydF9Qb3N0bWFz dGVyU3RhcnQ8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4K KyAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0 PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAgICAgIFN0YXJ0IGFzIHNvb24gYXMgcG9zdGdyZXMg aXRzZWxmIGhhcyBmaW5pc2hlZCBpdHMgb3duIGluaXRpYWxpemF0aW9uOworICAgICAgIHByb2Nl c3NlcyByZXF1ZXN0aW5nIHRoaXMgYXJlIG5vdCBlbGlnaWJsZSBmb3IgZGF0YWJhc2UgY29ubmVj dGlvbnMuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5CZ1dvcmtlclN0 YXJ0X0NvbnNpc3RlbnRTdGF0ZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAg ICAgIDxwYXJhPgorICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+QmdXb3JrZXJTdGFydF9Db25z aXN0ZW50U3RhdGU8L3ByaW1hcnk+PC9pbmRleHRlcm0+CisgICAgICAgU3RhcnQgYXMgc29vbiBh cyBhIGNvbnNpc3RlbnQgc3RhdGUgaGFzIGJlZW4gcmVhY2hlZCBpbiBhIGhvdC1zdGFuZGJ5LAor ICAgICAgIGFsbG93aW5nIHByb2Nlc3NlcyB0byBjb25uZWN0IHRvIGRhdGFiYXNlcyBhbmQgcnVu IHJlYWQtb25seSBxdWVyaWVzLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVy YWw+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxpbmRleHRlcm0+PHBy aW1hcnk+QmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGVfSG90U3RhbmRieTwvcHJpbWFyeT48 L2luZGV4dGVybT4KKyAgICAgICBTYW1lIG1lYW5pbmcgYXMgPGxpdGVyYWw+QmdXb3JrZXJTdGFy dF9Db25zaXN0ZW50U3RhdGU8L2xpdGVyYWw+IGJ1dAorICAgICAgIGl0IGlzIG1vcmUgc3RyaWN0 IGluIHRlcm1zIG9mIHRoZSBzZXJ2ZXIgaS5lLiBzdGFydCB0aGUgd29ya2VyIG9ubHkKKyAgICAg ICBpZiBpdCBpcyBob3Qtc3RhbmRieS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxs aXRlcmFsPkJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+ QmdXb3JrZXJTdGFydF9SZWNvdmVyeUZpbmlzaGVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPgorICAg ICAgIFN0YXJ0IGFzIHNvb24gYXMgdGhlIHN5c3RlbSBoYXMgZW50ZXJlZCBub3JtYWwgcmVhZC13 cml0ZSBzdGF0ZS4gTm90ZQorICAgICAgIHRoYXQgdGhlIDxsaXRlcmFsPkJnV29ya2VyU3RhcnRf Q29uc2lzdGVudFN0YXRlPC9saXRlcmFsPiBhbmQKKyAgICAgIDxsaXRlcmFsPkJnV29ya2VyU3Rh cnRfUmVjb3ZlcnlGaW5pc2hlZDwvbGl0ZXJhbD4gYXJlIGVxdWl2YWxlbnQKKyAgICAgICBpbiBh IHNlcnZlciB0aGF0J3Mgbm90IGEgaG90IHN0YW5kYnkuCisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDwvdmFyaWFibGVsaXN0PgogICA8 L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggZjMyM2JiYTAxOC4uY2Q5YWU3MGM0MSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9j b25maWcuc2dtbApAQCAtNDYxMSw4ICs0NjExLDEzIEBAIEFOWSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtX3N5bmM8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i CiAgICAgICAgICAgPHZhcm5hbWU+cHJpbWFyeV9jb25uaW5mbzwvdmFybmFtZT4gc3RyaW5nLCBv ciBpbiBhIHNlcGFyYXRlCiAgICAgICAgICAgPGZpbGVuYW1lPn4vLnBncGFzczwvZmlsZW5hbWU+ IGZpbGUgb24gdGhlIHN0YW5kYnkgc2VydmVyICh1c2UKICAgICAgICAgICA8bGl0ZXJhbD5yZXBs aWNhdGlvbjwvbGl0ZXJhbD4gYXMgdGhlIGRhdGFiYXNlIG5hbWUpLgotICAgICAgICAgIERvIG5v dCBzcGVjaWZ5IGEgZGF0YWJhc2UgbmFtZSBpbiB0aGUKLSAgICAgICAgICA8dmFybmFtZT5wcmlt YXJ5X2Nvbm5pbmZvPC92YXJuYW1lPiBzdHJpbmcuCisgICAgICAgICA8L3BhcmE+CisgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICBJZiBzbG90IHN5bmNocm9uaXphdGlvbiBpcyBlbmFibGVkIChz ZWUKKyAgICAgICAgICA8eHJlZiBsaW5rZW5kPSJndWMtZW5hYmxlLXN5bmNzbG90Ii8+KSB0aGVu IGl0IGlzIGFsc28KKyAgICAgICAgICBuZWNlc3NhcnkgdG8gc3BlY2lmeSA8bGl0ZXJhbD5kYm5h bWU8L2xpdGVyYWw+IGluIHRoZQorICAgICAgICAgIDx2YXJuYW1lPnByaW1hcnlfY29ubmluZm88 L3Zhcm5hbWU+IHN0cmluZy4gVGhpcyB3aWxsIG9ubHkgYmUgdXNlZCBmb3IKKyAgICAgICAgICBz bG90IHN5bmNocm9uaXphdGlvbi4gSXQgaXMgaWdub3JlZCBmb3Igc3RyZWFtaW5nLgogICAgICAg ICAgPC9wYXJhPgogICAgICAgICAgPHBhcmE+CiAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgY2Fu IG9ubHkgYmUgc2V0IGluIHRoZSA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4K QEAgLTQ5MzcsNiArNDk0MiwyNCBAQCBBTlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm51bV9zeW5jPC9yZXBsYWNlYWJsZT4gKCA8cmVwbGFjZWFibGUgY2xhc3M9IgogICAgICAgPC9s aXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0i Z3VjLWVuYWJsZS1zeW5jc2xvdCIgeHJlZmxhYmVsPSJlbmFibGVfc3luY3Nsb3QiPgorICAgICAg PHRlcm0+PHZhcm5hbWU+ZW5hYmxlX3N5bmNzbG90PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwv dHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPmVuYWJs ZV9zeW5jc2xvdDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+Cisg ICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgSXQgZW5hYmxlcyBhIHBoeXNpY2FsIHN0YW5kYnkgdG8gc3luY2hy b25pemUgbG9naWNhbCBmYWlsb3ZlciBzbG90cworICAgICAgICBmcm9tIHRoZSBwcmltYXJ5IHNl cnZlciBzbyB0aGF0IGxvZ2ljYWwgc3Vic2NyaWJlcnMgYXJlIG5vdCBibG9ja2VkCisgICAgICAg IGFmdGVyIGZhaWxvdmVyLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAg SXQgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gVGhpcyBwYXJhbWV0ZXIgY2FuIG9ubHkgYmUgc2V0 IGluIHRoZQorICAgICAgICA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25mPC9maWxlbmFtZT4gZmls ZSBvciBvbiB0aGUgc2VydmVyIGNvbW1hbmQgbGluZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92YXJpYWJsZWxpc3Q+CiAg ICAgPC9zZWN0Mj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5z Z21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCmluZGV4IGNkMTUyZDRjZWQu LmFjMjQ0MzcwZjcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNnbWwKQEAgLTM0Niw2ICszNDYs NDAgQEAgcG9zdGdyZXM9IyBzZWxlY3QgKiBmcm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdl cygncmVncmVzc2lvbl9zbG90JywgTlVMTCwgTlUKICAgICAgPGZ1bmN0aW9uPnBnX2xvZ19zdGFu ZGJ5X3NuYXBzaG90PC9mdW5jdGlvbj4gZnVuY3Rpb24gb24gdGhlIHByaW1hcnkuCiAgICAgPC9w YXJhPgogCisgICAgPHBhcmE+CisgICAgIEEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IG9uIHRo ZSBwcmltYXJ5IGNhbiBiZSBzeW5jaHJvbml6ZWQgdG8gdGhlIGhvdAorICAgICBzdGFuZGJ5IGJ5 IGVuYWJsaW5nIHRoZSBmYWlsb3ZlciBvcHRpb24gZHVyaW5nIHNsb3QgY3JlYXRpb24gYW5kIHNl dHRpbmcKKyAgICAgPHhyZWYgbGlua2VuZD0iZ3VjLWVuYWJsZS1zeW5jc2xvdCIvPiBvbiB0aGUg c3RhbmRieS4gRm9yIHRoZSBzeW5jaHJvbml6YXRpb24KKyAgICAgdG8gd29yaywgaXQgaXMgbWFu ZGF0b3J5IHRvIGhhdmUgYSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90IGJldHdlZW4gdGhlCisg ICAgIHByaW1hcnkgYW5kIHRoZSBzdGFuZGJ5LCBhbmQgPHZhcm5hbWU+aG90X3N0YW5kYnlfZmVl ZGJhY2s8L3Zhcm5hbWU+IG11c3QKKyAgICAgYmUgZW5hYmxlZCBvbiB0aGUgc3RhbmRieS4gSXQn cyBhbHNvIGhpZ2hseSByZWNvbW1lbmRlZCB0aGF0IHRoZSBzYWlkCisgICAgIHBoeXNpY2FsIHJl cGxpY2F0aW9uIHNsb3QgaXMgbmFtZWQgaW4gPHZhcm5hbWU+c3RhbmRieV9zbG90X25hbWVzPC92 YXJuYW1lPgorICAgICBsaXN0IG9uIHRoZSBwcmltYXJ5LCB0byBwcmV2ZW50IHRoZSBzdWJzY3Jp YmVyIGZyb20gY29uc3VtaW5nIGNoYW5nZXMKKyAgICAgZmFzdGVyIHRoYW4gdGhlIGhvdCBzdGFu ZGJ5LgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBUaGUgYWJpbGl0eSB0byByZXN1 bWUgbG9naWNhbCByZXBsaWNhdGlvbiBhZnRlciBmYWlsb3ZlciBkZXBlbmRzIHVwb24gdGhlCisg ICAgIDxsaW5rIGxpbmtlbmQ9InZpZXctcGctcmVwbGljYXRpb24tc2xvdHMiPnBnX3JlcGxpY2F0 aW9uX3Nsb3RzPC9saW5rPi48c3RydWN0ZmllbGQ+c3luY2VkPC9zdHJ1Y3RmaWVsZD4KKyAgICAg dmFsdWUgZm9yIHRoZSBzeW5jaHJvbml6ZWQgc2xvdHMgb24gdGhlIHN0YW5kYnkgYXQgdGhlIHRp bWUgb2YgZmFpbG92ZXIuCisgICAgIE9ubHkgcGVyc2lzdGVudCBzbG90cyB0aGF0IGhhdmUgYXR0 YWluZWQgc3luY2VkIHN0YXRlIGFzIHRydWUgb24gdGhlIHN0YW5kYnkKKyAgICAgYmVmb3JlIGZh aWxvdmVyIGNhbiBiZSB1c2VkIGZvciBsb2dpY2FsIHJlcGxpY2F0aW9uIGFmdGVyIGZhaWxvdmVy LgorICAgICBUZW1wb3Jhcnkgc2xvdHMgd2lsbCBiZSBkcm9wcGVkLCB0aGVyZWZvcmUgbG9naWNh bCByZXBsaWNhdGlvbiBmb3IgdGhvc2UKKyAgICAgc2xvdHMgY2Fubm90IGJlIHJlc3VtZWQuIEZv ciBleGFtcGxlLCBpZiB0aGUgc3luY2hyb25pemVkIHNsb3QgY291bGQgbm90CisgICAgIGJlY29t ZSBwZXJzaXN0ZW50IG9uIHRoZSBzdGFuZGJ5IGR1ZSB0byBhIGRpc2FibGVkIHN1YnNjcmlwdGlv biwgdGhlbiB0aGUKKyAgICAgc3Vic2NyaXB0aW9uIGNhbm5vdCBiZSByZXN1bWVkIGFmdGVyIGZh aWxvdmVyIGV2ZW4gd2hlbiBpdCBpcyBlbmFibGVkLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJh PgorICAgICBJbiBvcmRlciB0byByZXN1bWUgbG9naWNhbCByZXBsaWNhdGlvbiBhZnRlciBmYWls b3ZlciBmcm9tIHRoZSBzeW5jZWQKKyAgICAgbG9naWNhbCBzbG90cywgaXQgaXMgcmVxdWlyZWQg dGhhdCAnY29ubmluZm8nIGluIHN1YnNjcmlwdGlvbnMgYXJlIGFsdGVyZWQKKyAgICAgdG8gcG9p bnQgdG8gdGhlIG5ldyBwcmltYXJ5IHNlcnZlciB1c2luZworICAgICA8bGluayBsaW5rZW5kPSJz cWwtYWx0ZXJzdWJzY3JpcHRpb24tcGFyYW1zLWNvbm5lY3Rpb24iPjxjb21tYW5kPkFMVEVSIFNV QlNDUklQVElPTiAuLi4gQ09OTkVDVElPTjwvY29tbWFuZD48L2xpbms+LgorICAgICBJdCBpcyBy ZWNvbW1lbmRlZCB0aGF0IHN1YnNjcmlwdGlvbnMgYXJlIGZpcnN0IGRpc2FibGVkIGJlZm9yZSBw cm9tb3RpbmcKKyAgICAgdGhlIHN0YW5kYnkgYW5kIGFyZSBlbmFibGVkIGJhY2sgb25jZSB0aGVz ZSBhcmUgYWx0ZXJlZCBhcyBhYm92ZSBhZnRlcgorICAgICBmYWlsb3Zlci4KKyAgICA8L3BhcmE+ CisKICAgICA8Y2F1dGlvbj4KICAgICAgPHBhcmE+CiAgICAgICBSZXBsaWNhdGlvbiBzbG90cyBw ZXJzaXN0IGFjcm9zcyBjcmFzaGVzIGFuZCBrbm93IG5vdGhpbmcgYWJvdXQgdGhlIHN0YXRlCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3lzdGVtLXZpZXdzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv c3lzdGVtLXZpZXdzLnNnbWwKaW5kZXggMTg2OGI5NTgzNi4uNjRlNTExMjgxMCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3N5c3RlbS12aWV3cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeXN0 ZW0tdmlld3Muc2dtbApAQCAtMjU2Niw2ICsyNTY2LDIyIEBAIFNFTEVDVCAqIEZST00gcGdfbG9j a3MgcGwgTEVGVCBKT0lOIHBnX3ByZXBhcmVkX3hhY3RzIHBweAogICAgICAgIGFmdGVyIGZhaWxv dmVyLiBBbHdheXMgZmFsc2UgZm9yIHBoeXNpY2FsIHNsb3RzLgogICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxz dHJ1Y3RmaWVsZD5zeW5jZWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICBUcnVlIGlmIHRoaXMgbG9naWNhbCBzbG90IHdh cyBzeW5jZWQgZnJvbSBhIHByaW1hcnkgc2VydmVyLgorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgT24gYSBob3Qgc3RhbmRieSwgdGhlIHNsb3RzIHdpdGggdGhlIHN5bmNlZCBj b2x1bW4gbWFya2VkIGFzIHRydWUgY2FuCisgICAgICAgbmVpdGhlciBiZSB1c2VkIGZvciBsb2dp Y2FsIGRlY29kaW5nIG5vciBkcm9wcGVkIGJ5IHRoZSB1c2VyLiBUaGUgdmFsdWUKKyAgICAgICBv ZiB0aGlzIGNvbHVtbiBoYXMgbm8gbWVhbmluZyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXI7IHRoZSBj b2x1bW4gdmFsdWUgb24KKyAgICAgICB0aGUgcHJpbWFyeSBpcyBkZWZhdWx0IGZhbHNlIGZvciBh bGwgc2xvdHMgYnV0IG1heSAoaWYgbGVmdG92ZXIgZnJvbSBhCisgICAgICAgcHJvbW90ZWQgc3Rh bmRieSkgYWxzbyBiZSB0cnVlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgog ICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2Ft L3hsb2cuYwppbmRleCA0NzgzNzdjNGEyLi4yZDY2ZDBkODRiIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5z YW0veGxvZy5jCkBAIC0zNTk2LDYgKzM1OTYsOSBAQCBYTG9nR2V0TGFzdFJlbW92ZWRTZWdubyh2 b2lkKQogLyoKICAqIFJldHVybiB0aGUgb2xkZXN0IFdBTCBzZWdtZW50IG9uIHRoZSBnaXZlbiBU TEkgdGhhdCBzdGlsbCBleGlzdHMgaW4KICAqIFhMT0dESVIsIG9yIDAgaWYgbm9uZS4KKyAqCisg KiBJZiB0aGUgZ2l2ZW4gVExJIGlzIDAsIHJldHVybiB0aGUgb2xkZXN0IFdBTCBzZWdtZW50IGFt b25nIGFsbCB0aGUgY3VycmVudGx5CisgKiBleGlzdGluZyBXQUwgc2VnbWVudHMuCiAgKi8KIFhM b2dTZWdObwogWExvZ0dldE9sZGVzdFNlZ25vKFRpbWVMaW5lSUQgdGxpKQpAQCAtMzYxOSw3ICsz NjIyLDcgQEAgWExvZ0dldE9sZGVzdFNlZ25vKFRpbWVMaW5lSUQgdGxpKQogCQkJCQkJIHdhbF9z ZWdtZW50X3NpemUpOwogCiAJCS8qIElnbm9yZSBhbnl0aGluZyB0aGF0J3Mgbm90IGZyb20gdGhl IFRMSSBvZiBpbnRlcmVzdC4gKi8KLQkJaWYgKHRsaSAhPSBmaWxlX3RsaSkKKwkJaWYgKHRsaSAh PSAwICYmIHRsaSAhPSBmaWxlX3RsaSkKIAkJCWNvbnRpbnVlOwogCiAJCS8qIElmIGl0J3MgdGhl IG9sZGVzdCBzbyBmYXIsIHVwZGF0ZSBvbGRlc3Rfc2Vnbm8uICovCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCmluZGV4IDFiNDhkNzE3MWEuLmQ0Njg4YjlhMDIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jCkBAIC01MCw2ICs1MCw3 IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9zdGFydHVwLmgiCiAjaW5jbHVkZSAicmVwbGljYXRp b24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgiCisjaW5jbHVk ZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9mZC5o IgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sYXRjaC5oIgpA QCAtMTQ0MSw2ICsxNDQyLDIwIEBAIEZpbmlzaFdhbFJlY292ZXJ5KHZvaWQpCiAJICovCiAJWExv Z1NodXRkb3duV2FsUmN2KCk7CiAKKwkvKgorCSAqIFNodXRkb3duIHRoZSBzbG90IHN5bmMgd29y a2VycyB0byBwcmV2ZW50IHBvdGVudGlhbCBjb25mbGljdHMgYmV0d2VlbgorCSAqIHVzZXIgcHJv Y2Vzc2VzIGFuZCBzbG90c3luYyB3b3JrZXJzIGFmdGVyIGEgcHJvbW90aW9uLgorCSAqCisJICog V2UgZG8gbm90IHVwZGF0ZSB0aGUgJ3N5bmNlZCcgY29sdW1uIGZyb20gdHJ1ZSB0byBmYWxzZSBo ZXJlLCBhcyBhbnkKKwkgKiBmYWlsZWQgdXBkYXRlIGNvdWxkIGxlYXZlIHNvbWUgc2xvdCdzICdz eW5jZWQnIGNvbHVtbiBhcyBmYWxzZS4gVGhpcworCSAqIGNvdWxkIGNhdXNlIGlzc3VlcyBkdXJp bmcgc2xvdCBzeW5jIGFmdGVyIHJlc3RhcnRpbmcgdGhlIHNlcnZlciBhcyBhCisJICogc3RhbmRi eS4gV2hpbGUgdXBkYXRpbmcgYWZ0ZXIgc3dpdGNoaW5nIHRvIHRoZSBuZXcgdGltZWxpbmUgaXMg YW4KKwkgKiBvcHRpb24sIGl0IGRvZXMgbm90IHNpbXBsaWZ5IHRoZSBoYW5kbGluZyBmb3IgJ3N5 bmNlZCcgY29sdW1uLgorCSAqIFRoZXJlZm9yZSwgd2UgcmV0YWluIHRoZSAnc3luY2VkJyBjb2x1 bW4gYXMgdHJ1ZSBhZnRlciBwcm9tb3Rpb24gYXMgdGhleQorCSAqIGNhbiBwcm92aWRlIHVzZWZ1 bCBpbmZvcm1hdGlvbiBhYm91dCB0aGVpciBvcmlnaW4uCisJICovCisJU2h1dERvd25TbG90U3lu YygpOworCiAJLyoKIAkgKiBXZSBhcmUgbm93IGRvbmUgcmVhZGluZyB0aGUgeGxvZyBmcm9tIHN0 cmVhbS4gVHVybiBvZmYgc3RyZWFtaW5nCiAJICogcmVjb3ZlcnkgdG8gZm9yY2UgZmV0Y2hpbmcg dGhlIGZpbGVzICh3aGljaCB3b3VsZCBiZSByZXF1aXJlZCBhdCBlbmQgb2YKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBlNDNhOTM3MzlkLi5hZDU3YmFkZTA3IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMDI0LDcgKzEwMjQsOCBAQCBDUkVBVEUg VklFVyBwZ19yZXBsaWNhdGlvbl9zbG90cyBBUwogICAgICAgICAgICAgTC5zYWZlX3dhbF9zaXpl LAogICAgICAgICAgICAgTC50d29fcGhhc2UsCiAgICAgICAgICAgICBMLmNvbmZsaWN0X3JlYXNv biwKLSAgICAgICAgICAgIEwuZmFpbG92ZXIKKyAgICAgICAgICAgIEwuZmFpbG92ZXIsCisgICAg ICAgICAgICBMLnN5bmNlZAogICAgIEZST00gcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKCkgQVMg TAogICAgICAgICAgICAgTEVGVCBKT0lOIHBnX2RhdGFiYXNlIEQgT04gKEwuZGF0b2lkID0gRC5v aWQpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMgYi9z cmMvYmFja2VuZC9wb3N0bWFzdGVyL2Jnd29ya2VyLmMKaW5kZXggNjdmOTJjMjRkYi4uNDY4Mjhi OGE4OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9iZ3dvcmtlci5jCisrKyBi L3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuYwpAQCAtMjEsNiArMjEsNyBAQAogI2lu Y2x1ZGUgInBvc3RtYXN0ZXIvcG9zdG1hc3Rlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xv Z2ljYWxsYXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCIK KyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9y YWdlL2RzbS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9s YXRjaC5oIgpAQCAtMTI5LDYgKzEzMCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CiAJCSJB cHBseVdvcmtlck1haW4iLCBBcHBseVdvcmtlck1haW4KIAl9LAorCXsKKwkJIlJlcGxTbG90U3lu Y1dvcmtlck1haW4iLCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluCisJfSwKIAl7CiAJCSJQYXJhbGxl bEFwcGx5V29ya2VyTWFpbiIsIFBhcmFsbGVsQXBwbHlXb3JrZXJNYWluCiAJfSwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIvc3JjL2JhY2tlbmQvcG9z dG1hc3Rlci9wb3N0bWFzdGVyLmMKaW5kZXggZmViNDcxZGQxZC4uZDkwZDVkMTU3NiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tl bmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKQEAgLTExNiw2ICsxMTYsNyBAQAogI2luY2x1ZGUg InBvc3RtYXN0ZXIvd2Fsc3VtbWFyaXplci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2lj YWxsYXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlci5oIgorI2luY2x1 ZGUgInJlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQu aCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcGdfc2htZW0u aCIKQEAgLTEwMTAsNiArMTAxMSwxMiBAQCBQb3N0bWFzdGVyTWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQogCSAqLwogCUFwcGx5TGF1bmNoZXJSZWdpc3RlcigpOwogCisJLyoKKwkgKiBSZWdp c3RlciB0aGUgc2xvdCBzeW5jIHdvcmtlciBoZXJlIHRvIGtpY2sgc3RhcnQgc2xvdC1zeW5jIG9w ZXJhdGlvbgorCSAqIHNvb25lciBvbiB0aGUgcGh5c2ljYWwgc3RhbmRieS4KKwkgKi8KKwlTbG90 U3luY1dvcmtlclJlZ2lzdGVyKCk7CisKIAkvKgogCSAqIHByb2Nlc3MgYW55IGxpYnJhcmllcyB0 aGF0IHNob3VsZCBiZSBwcmVsb2FkZWQgYXQgcG9zdG1hc3RlciBzdGFydAogCSAqLwpAQCAtNTc5 OSw2ICs1ODA2LDkgQEAgYmd3b3JrZXJfc2hvdWxkX3N0YXJ0X25vdyhCZ1dvcmtlclN0YXJ0VGlt ZSBzdGFydF90aW1lKQogCQljYXNlIFBNX0hPVF9TVEFOREJZOgogCQkJaWYgKHN0YXJ0X3RpbWUg PT0gQmdXb3JrZXJTdGFydF9Db25zaXN0ZW50U3RhdGUpCiAJCQkJcmV0dXJuIHRydWU7CisJCQlp ZiAoc3RhcnRfdGltZSA9PSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5 ICYmCisJCQkJCSBwbVN0YXRlICE9IFBNX1JVTikKKwkJCQlyZXR1cm4gdHJ1ZTsKIAkJCS8qIGZh bGwgdGhyb3VnaCAqLwogCiAJCWNhc2UgUE1fUkVDT1ZFUlk6CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9saWJwcXdhbHJlY2VpdmVyL2xpYnBxd2FscmVjZWl2ZXIuYyBiL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5j CmluZGV4IGYxOGEwNGQ4YTQuLmY5MTBhM2IxMDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xpYnBxd2FscmVjZWl2ZXIvbGlicHF3YWxyZWNlaXZlci5jCkBA IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNpbmNsdWRlICJ1 dGlscy9wZ19sc24uaCIKICNpbmNsdWRlICJ1dGlscy90dXBsZXN0b3JlLmgiCisjaW5jbHVkZSAi dXRpbHMvdmFybGVuYS5oIgogCiBQR19NT0RVTEVfTUFHSUM7CiAKQEAgLTU4LDYgKzU5LDcgQEAg c3RhdGljIHZvaWQgbGlicHFyY3ZfZ2V0X3NlbmRlcmluZm8oV2FsUmVjZWl2ZXJDb25uICpjb25u LAogCQkJCQkJCQkJY2hhciAqKnNlbmRlcl9ob3N0LCBpbnQgKnNlbmRlcl9wb3J0KTsKIHN0YXRp YyBjaGFyICpsaWJwcXJjdl9pZGVudGlmeV9zeXN0ZW0oV2FsUmVjZWl2ZXJDb25uICpjb25uLAog CQkJCQkJCQkJICBUaW1lTGluZUlEICpwcmltYXJ5X3RsaSk7CitzdGF0aWMgY2hhciAqbGlicHFy Y3ZfZ2V0X2RibmFtZV9mcm9tX2Nvbm5pbmZvKGNvbnN0IGNoYXIgKmNvbm5pbmZvKTsKIHN0YXRp YyBpbnQJbGlicHFyY3Zfc2VydmVyX3ZlcnNpb24oV2FsUmVjZWl2ZXJDb25uICpjb25uKTsKIHN0 YXRpYyB2b2lkIGxpYnBxcmN2X3JlYWR0aW1lbGluZWhpc3RvcnlmaWxlKFdhbFJlY2VpdmVyQ29u biAqY29ubiwKIAkJCQkJCQkJCQkJIFRpbWVMaW5lSUQgdGxpLCBjaGFyICoqZmlsZW5hbWUsCkBA IC0xMDAsNiArMTAyLDcgQEAgc3RhdGljIFdhbFJlY2VpdmVyRnVuY3Rpb25zVHlwZSBQUVdhbFJl Y2VpdmVyRnVuY3Rpb25zID0gewogCS53YWxyY3Zfc2VuZCA9IGxpYnBxcmN2X3NlbmQsCiAJLndh bHJjdl9jcmVhdGVfc2xvdCA9IGxpYnBxcmN2X2NyZWF0ZV9zbG90LAogCS53YWxyY3ZfYWx0ZXJf c2xvdCA9IGxpYnBxcmN2X2FsdGVyX3Nsb3QsCisJLndhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29u bmluZm8gPSBsaWJwcXJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm8sCiAJLndhbHJjdl9nZXRf YmFja2VuZF9waWQgPSBsaWJwcXJjdl9nZXRfYmFja2VuZF9waWQsCiAJLndhbHJjdl9leGVjID0g bGlicHFyY3ZfZXhlYywKIAkud2FscmN2X2Rpc2Nvbm5lY3QgPSBsaWJwcXJjdl9kaXNjb25uZWN0 CkBAIC00MTgsNiArNDIxLDQ0IEBAIGxpYnBxcmN2X3NlcnZlcl92ZXJzaW9uKFdhbFJlY2VpdmVy Q29ubiAqY29ubikKIAlyZXR1cm4gUFFzZXJ2ZXJWZXJzaW9uKGNvbm4tPnN0cmVhbUNvbm4pOwog fQogCisvKgorICogR2V0IGRhdGFiYXNlIG5hbWUgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIncyBj b25uaW5mby4KKyAqCisgKiBJZiBkYm5hbWUgaXMgbm90IGZvdW5kIGluIGNvbm5JbmZvLCByZXR1 cm4gTlVMTCB2YWx1ZS4KKyAqLworc3RhdGljIGNoYXIgKgorbGlicHFyY3ZfZ2V0X2RibmFtZV9m cm9tX2Nvbm5pbmZvKGNvbnN0IGNoYXIgKmNvbm5JbmZvKQoreworCVBRY29ubmluZm9PcHRpb24g Km9wdHM7CisJY2hhcgkgICAqZGJuYW1lID0gTlVMTDsKKwljaGFyCSAgICplcnIgPSBOVUxMOwor CisJb3B0cyA9IFBRY29ubmluZm9QYXJzZShjb25uSW5mbywgJmVycik7CisJaWYgKG9wdHMgPT0g TlVMTCkKKwl7CisJCS8qIFRoZSBlcnJvciBzdHJpbmcgaXMgbWFsbG9jJ2QsIHNvIHdlIG11c3Qg ZnJlZSBpdCBleHBsaWNpdGx5ICovCisJCWNoYXIJICAgKmVycmNvcHkgPSBlcnIgPyBwc3RyZHVw KGVycikgOiAib3V0IG9mIG1lbW9yeSI7CisKKwkJUFFmcmVlbWVtKGVycik7CisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2co ImludmFsaWQgY29ubmVjdGlvbiBzdHJpbmcgc3ludGF4OiAlcyIsIGVycmNvcHkpKSk7CisJfQor CisJZm9yIChQUWNvbm5pbmZvT3B0aW9uICpvcHQgPSBvcHRzOyBvcHQtPmtleXdvcmQgIT0gTlVM TDsgKytvcHQpCisJeworCQkvKgorCQkgKiBJZiBtdWx0aXBsZSBkYm5hbWVzIGFyZSBzcGVjaWZp ZWQsIHRoZW4gdGhlIGxhc3Qgb25lIHdpbGwgYmUKKwkJICogcmV0dXJuZWQKKwkJICovCisJCWlm IChzdHJjbXAob3B0LT5rZXl3b3JkLCAiZGJuYW1lIikgPT0gMCAmJiBvcHQtPnZhbCAmJgorCQkJ b3B0LT52YWxbMF0gIT0gJ1wwJykKKwkJCWRibmFtZSA9IHBzdHJkdXAob3B0LT52YWwpOworCX0K KworCXJldHVybiBkYm5hbWU7Cit9CisKIC8qCiAgKiBTdGFydCBzdHJlYW1pbmcgV0FMIGRhdGEg ZnJvbSBnaXZlbiBzdHJlYW1pbmcgb3B0aW9ucy4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9NYWtlZmlsZQppbmRleCAyZGMyNWUzN2JiLi5iYTAzZWVmZjFjIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL01ha2VmaWxlCisrKyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZpbGUKQEAgLTI1LDYgKzI1LDcgQEAgT0JKUyA9 IFwKIAlwcm90by5vIFwKIAlyZWxhdGlvbi5vIFwKIAlyZW9yZGVyYnVmZmVyLm8gXAorCXNsb3Rz eW5jLm8gXAogCXNuYXBidWlsZC5vIFwKIAl0YWJsZXN5bmMubyBcCiAJd29ya2VyLm8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKaW5kZXggY2EwOWM2ODNmMS4uNWFl ZmIxMGVjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dp Y2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAg LTUyNCw2ICs1MjQsMTggQEAgQ3JlYXRlRGVjb2RpbmdDb250ZXh0KFhMb2dSZWNQdHIgc3RhcnRf bHNuLAogCQkJCSBlcnJtc2coInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIHdhcyBub3QgY3JlYXRl ZCBpbiB0aGlzIGRhdGFiYXNlIiwKIAkJCQkJCU5hbWVTdHIoc2xvdC0+ZGF0YS5uYW1lKSkpKTsK IAorCS8qCisJICogRG8gbm90IGFsbG93IGNvbnN1bXB0aW9uIG9mIGEgInN5bmNocm9uaXplZCIg c2xvdCB1bnRpbCB0aGUgc3RhbmRieQorCSAqIGdldHMgcHJvbW90ZWQuCisJICovCisJaWYgKFJl Y292ZXJ5SW5Qcm9ncmVzcygpICYmIHNsb3QtPmRhdGEuc3luY2VkKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSks CisJCQkJZXJybXNnKCJjYW5ub3QgdXNlIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGZvciBsb2dp Y2FsIgorCQkJCQkgICAiIGRlY29kaW5nIiwgTmFtZVN0cihzbG90LT5kYXRhLm5hbWUpKSwKKwkJ CQllcnJkZXRhaWwoIlRoaXMgc2xvdCBpcyBiZWluZyBzeW5jZWQgZnJvbSB0aGUgcHJpbWFyeSBz ZXJ2ZXIuIiksCisJCQkJZXJyaGludCgiU3BlY2lmeSBhbm90aGVyIHJlcGxpY2F0aW9uIHNsb3Qu IikpOworCiAJLyoKIAkgKiBDaGVjayBpZiBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkIGR1ZSB0 byBtYXhfc2xvdF93YWxfa2VlcF9zaXplLiBBdm9pZAogCSAqICJjYW5ub3QgZ2V0IGNoYW5nZXMi IHdvcmRpbmcgaW4gdGhpcyBlcnJtc2cgYmVjYXVzZSB0aGF0J2QgYmUKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkCmluZGV4IDEwNTBlYjJjMDkuLjNkZWMzNmE2 ZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVp bGQKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9tZXNvbi5idWlsZApAQCAt MTEsNiArMTEsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdwcm90by5jJywKICAg J3JlbGF0aW9uLmMnLAogICAncmVvcmRlcmJ1ZmZlci5jJywKKyAgJ3Nsb3RzeW5jLmMnLAogICAn c25hcGJ1aWxkLmMnLAogICAndGFibGVzeW5jLmMnLAogICAnd29ya2VyLmMnLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9zbG90c3luYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjM5ZmQ4YzliYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Nsb3RzeW5jLmMKQEAgLTAsMCArMSwxMTU0IEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqIHNsb3RzeW5jLmMKKyAqCSAgIFBvc3RncmVTUUwgd29ya2VyIGZv ciBzeW5jaHJvbml6aW5nIHNsb3RzIHRvIGEgc3RhbmRieSBzZXJ2ZXIgZnJvbSB0aGUKKyAqICAg ICAgICAgcHJpbWFyeSBzZXJ2ZXIuCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI0LCBQb3N0Z3Jl U1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkg IHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvc2xvdHN5bmMuYworICoKKyAqIFRoaXMg ZmlsZSBjb250YWlucyB0aGUgY29kZSBmb3Igc2xvdCBzeW5jIHdvcmtlciBvbiBhIHBoeXNpY2Fs IHN0YW5kYnkKKyAqIHRvIGZldGNoIGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgaW5mb3JtYXRpb24g ZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIsCisgKiBjcmVhdGUgdGhlIHNsb3RzIG9uIHRoZSBzdGFu ZGJ5IGFuZCBzeW5jaHJvbml6ZSB0aGVtIHBlcmlvZGljYWxseS4KKyAqCisgKiBXaGlsZSBjcmVh dGluZyB0aGUgc2xvdCBvbiBwaHlzaWNhbCBzdGFuZGJ5LCBpZiB0aGUgbG9jYWwgcmVzdGFydF9s c24gYW5kL29yCisgKiBsb2NhbCBjYXRhbG9nX3htaW4gaXMgYWhlYWQgb2YgdGhvc2Ugb24gdGhl IHJlbW90ZSB0aGVuIHRoZSB3b3JrZXIgY2Fubm90CisgKiBjcmVhdGUgdGhlIGxvY2FsIHNsb3Qg aW4gc3luYyB3aXRoIHRoZSBwcmltYXJ5IHNlcnZlciBiZWNhdXNlIHRoYXQgd291bGQKKyAqIG1l YW4gbW92aW5nIHRoZSBsb2NhbCBzbG90IGJhY2t3YXJkcyBhbmQgdGhlIHN0YW5kYnkgbWlnaHQg bm90IGhhdmUgV0FMcworICogcmV0YWluZWQgZm9yIG9sZCBMU04uIEluIHRoaXMgY2FzZSwgdGhl IHdvcmtlciB3aWxsIG1hcmsgdGhlIHNsb3QgYXMKKyAqIFJTX1RFTVBPUkFSWS4gT25jZSB0aGUg cHJpbWFyeSBzZXJ2ZXIgY2F0Y2hlcyB1cCwgaXQgd2lsbCBtb3ZlIHRoZSBzbG90IHRvCisgKiBS U19QRVJTSVNURU5UIGFuZCB3aWxsIHBlcmZvcm0gdGhlIHN5bmMgcGVyaW9kaWNhbGx5LgorICoK KyAqIFRoZSB3b3JrZXIgYWxzbyB0YWtlcyBjYXJlIG9mIGRyb3BwaW5nIHRoZSBzbG90cyB3aGlj aCB3ZXJlIGNyZWF0ZWQgYnkgaXQKKyAqIGFuZCBhcmUgY3VycmVudGx5IG5vdCBuZWVkZWQgdG8g YmUgc3luY2hyb25pemVkLgorICoKKyAqIEl0IHRha2VzIGEgbmFwIG9mIFdPUktFUl9ERUZBVUxU X05BUFRJTUVfTVMgYmVmb3JlIGV2ZXJ5IG5leHQKKyAqIHN5bmNocm9uaXphdGlvbi4gSWYgdGhl cmUgaXMgbm8gYWN0aXZpdHkgb2JzZXJ2ZWQgb24gdGhlIHByaW1hcnkgc2VydmVyIGZvcgorICog c29tZSB0aW1lLCB0aGUgbmFwIHRpbWUgaXMgaW5jcmVhc2VkIHRvIFdPUktFUl9JTkFDVElWSVRZ X05BUFRJTUVfTVMsIGJ1dCBpZgorICogYW55IGFjdGl2aXR5IGlzIG9ic2VydmVkLCB0aGUgbmFw IHRpbWUgcmV2ZXJ0cyB0byB0aGUgZGVmYXVsdCB2YWx1ZS4KKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0u aCIKKyNpbmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ19pbnRl cm5hbC5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3ZlcnkuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2RhdGFiYXNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgorI2lu Y2x1ZGUgInBnc3RhdC5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvYmd3b3JrZXIuaCIKKyNpbmNs dWRlICJwb3N0bWFzdGVyL2ludGVycnVwdC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2lj YWwuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9sb2dpY2FsbGF1bmNoZXIuaCIKKyNpbmNsdWRl ICJyZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fs cmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCIKKyNp bmNsdWRlICJzdG9yYWdlL2lwYy5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvY2FycmF5LmgiCisj aW5jbHVkZSAidGNvcC90Y29wcHJvdC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9ndWNfaG9va3MuaCIK KyNpbmNsdWRlICJ1dGlscy9wZ19sc24uaCIKKyNpbmNsdWRlICJ1dGlscy92YXJsZW5hLmgiCisK Ky8qCisgKiBTdHJ1Y3R1cmUgdG8gaG9sZCBpbmZvcm1hdGlvbiBmZXRjaGVkIGZyb20gdGhlIHBy aW1hcnkgc2VydmVyIGFib3V0IGEgbG9naWNhbAorICogcmVwbGljYXRpb24gc2xvdC4KKyAqLwor dHlwZWRlZiBzdHJ1Y3QgUmVtb3RlU2xvdAoreworCWNoYXIJICAgKm5hbWU7CisJY2hhcgkgICAq cGx1Z2luOworCWNoYXIJICAgKmRhdGFiYXNlOworCWJvb2wJCXR3b19waGFzZTsKKwlib29sCQlm YWlsb3ZlcjsKKwlYTG9nUmVjUHRyCXJlc3RhcnRfbHNuOworCVhMb2dSZWNQdHIJY29uZmlybWVk X2xzbjsKKwlUcmFuc2FjdGlvbklkIGNhdGFsb2dfeG1pbjsKKworCS8qIFJTX0lOVkFMX05PTkUg aWYgdmFsaWQsIG9yIHRoZSByZWFzb24gb2YgaW52YWxpZGF0aW9uICovCisJUmVwbGljYXRpb25T bG90SW52YWxpZGF0aW9uQ2F1c2UgaW52YWxpZGF0ZWQ7Cit9IFJlbW90ZVNsb3Q7CisKKy8qCisg KiBTdHJ1Y3QgZm9yIHNoYXJpbmcgaW5mb3JtYXRpb24gYmV0d2VlbiBzdGFydHVwIHByb2Nlc3Mg YW5kIHNsb3QKKyAqIHN5bmMgd29ya2VyLgorICoKKyAqIFNsb3Qgc3luYyB3b3JrZXIncyBwaWQg aXMgbmVlZGVkIGJ5IHN0YXJ0dXAgcHJvY2VzcyBpbiBvcmRlciB0bworICogc2h1dCBpdCBkb3du IGR1cmluZyBwcm9tb3Rpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IFNsb3RTeW5jV29ya2VyQ3R4 U3RydWN0Cit7CisJcGlkX3QJCXBpZDsKKwlzbG9ja190CQltdXRleDsKK30JCQlTbG90U3luY1dv cmtlckN0eFN0cnVjdDsKKworU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QgKlNsb3RTeW5jV29ya2Vy ID0gTlVMTDsKKworLyogR1VDIHZhcmlhYmxlICovCitib29sCQllbmFibGVfc3luY3Nsb3QgPSBm YWxzZTsKKworLyogVGhlIGxhc3Qgc3luYy1jeWNsZSB0aW1lIHdoZW4gdGhlIHdvcmtlciB1cGRh dGVkIGFueSBvZiB0aGUgc2xvdHMuICovCisKKy8qIFdvcmtlcidzIG5hcCB0aW1lIGluIGNhc2Ug b2YgcmVndWxhciBhY3Rpdml0eSBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIgKi8KKyNkZWZpbmUgV09S S0VSX0RFRkFVTFRfTkFQVElNRV9NUyAgICAgICAgICAgICAgICAgICAxMEwgLyogMTAgbXMgKi8K KworLyogV29ya2VyJ3MgbmFwIHRpbWUgaW4gY2FzZSBvZiBuby1hY3Rpdml0eSBvbiB0aGUgcHJp bWFyeSBzZXJ2ZXIgKi8KKyNkZWZpbmUgV09SS0VSX0lOQUNUSVZJVFlfTkFQVElNRV9NUyAgICAg ICAgICAgICAgICAxMDAwMEwJLyogMTAgc2VjICovCisKKy8qCisgKiBJbmFjdGl2aXR5IFRocmVz aG9sZCBpbiBtcyBiZWZvcmUgaW5jcmVhc2luZyBuYXAgdGltZSBvZiB3b3JrZXIuCisgKgorICog SWYgdGhlIGxzbiBvZiBzbG90IGJlaW5nIG1vbml0b3JlZCBkaWQgbm90IGNoYW5nZSBmb3IgdGhp cyB0aHJlc2hvbGQgdGltZSwKKyAqIHRoZW4gaW5jcmVhc2UgbmFwIHRpbWUgb2YgY3VycmVudCB3 b3JrZXIgZnJvbSBXT1JLRVJfREVGQVVMVF9OQVBUSU1FX01TIHRvCisgKiBXT1JLRVJfSU5BQ1RJ VklUWV9OQVBUSU1FX01TLgorICovCisjZGVmaW5lIFdPUktFUl9JTkFDVElWSVRZX1RIUkVTSE9M RF9NUyAxMDAwMEwJLyogMTAgc2VjICovCisKK3N0YXRpYyB2b2lkIFByb2Nlc3NTbG90U3luY0lu dGVycnVwdHMoV2FsUmVjZWl2ZXJDb25uICp3cmNvbm4pOworCisvKgorICogVXBkYXRlIGxvY2Fs IHNsb3QgbWV0YWRhdGEgYXMgcGVyIHJlbW90ZV9zbG90J3MgcG9zaXRpb25zCisgKi8KK3N0YXRp YyB2b2lkCitsb2NhbF9zbG90X3VwZGF0ZShSZW1vdGVTbG90ICpyZW1vdGVfc2xvdCkKK3sKKwlB c3NlcnQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuaW52YWxpZGF0ZWQgPT0gUlNfSU5WQUxfTk9O RSk7CisKKwlMb2dpY2FsQ29uZmlybVJlY2VpdmVkTG9jYXRpb24ocmVtb3RlX3Nsb3QtPmNvbmZp cm1lZF9sc24pOworCUxvZ2ljYWxJbmNyZWFzZVhtaW5Gb3JTbG90KHJlbW90ZV9zbG90LT5jb25m aXJtZWRfbHNuLAorCQkJCQkJCSAgIHJlbW90ZV9zbG90LT5jYXRhbG9nX3htaW4pOworCUxvZ2lj YWxJbmNyZWFzZVJlc3RhcnREZWNvZGluZ0ZvclNsb3QocmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9s c24sCisJCQkJCQkJCQkJICByZW1vdGVfc2xvdC0+cmVzdGFydF9sc24pOworfQorCisvKgorICog SGVscGVyIGZ1bmN0aW9uIGZvciBkcm9wX29ic29sZXRlX3Nsb3RzKCkKKyAqCisgKiBEcm9wcyBz eW5jZWQgc2xvdCBpZGVudGlmaWVkIGJ5IHRoZSBwYXNzZWQgaW4gbmFtZS4KKyAqLworc3RhdGlj IHZvaWQKK2Ryb3Bfc3luY2VkX3Nsb3RzX2ludGVybmFsKGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wg bm93YWl0KQoreworCUFzc2VydChNeVJlcGxpY2F0aW9uU2xvdCA9PSBOVUxMKTsKKworCVJlcGxp Y2F0aW9uU2xvdEFjcXVpcmUobmFtZSwgbm93YWl0KTsKKworCUFzc2VydChNeVJlcGxpY2F0aW9u U2xvdC0+ZGF0YS5zeW5jZWQpOworCisJUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCk7Cit9 CisKKy8qCisgKiBHZXQgbGlzdCBvZiBsb2NhbCBsb2dpY2FsIHNsb3RzIHdoaWNoIGFyZSBzeW5j aHJvbml6ZWQgZnJvbQorICogdGhlIHByaW1hcnkgc2VydmVyLgorICovCitzdGF0aWMgTGlzdCAq CitnZXRfbG9jYWxfc3luY2VkX3Nsb3RzKHZvaWQpCit7CisJTGlzdAkgICAqbG9jYWxfc2xvdHMg PSBOSUw7CisKKwlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrLCBMV19T SEFSRUQpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBtYXhfcmVwbGljYXRpb25fc2xvdHM7IGkr KykKKwl7CisJCVJlcGxpY2F0aW9uU2xvdCAqcyA9ICZSZXBsaWNhdGlvblNsb3RDdGwtPnJlcGxp Y2F0aW9uX3Nsb3RzW2ldOworCisJCS8qIENoZWNrIGlmIGl0IGlzIGxvZ2ljYWwgc3luY2hyb25p emVkIHNsb3QgKi8KKwkJaWYgKHMtPmluX3VzZSAmJiBTbG90SXNMb2dpY2FsKHMpICYmIHMtPmRh dGEuc3luY2VkKQorCQl7CisJCQlsb2NhbF9zbG90cyA9IGxhcHBlbmQobG9jYWxfc2xvdHMsIHMp OworCQl9CisJfQorCisJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7 CisKKwlyZXR1cm4gbG9jYWxfc2xvdHM7Cit9CisKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8g Y2hlY2sgaWYgbG9jYWxfc2xvdCBpcyBwcmVzZW50IGluIHJlbW90ZV9zbG90cyBsaXN0LgorICoK KyAqIEl0IGFsc28gY2hlY2tzIGlmIGxvZ2ljYWwgc2xvdCBpcyBsb2NhbGx5IGludmFsaWRhdGVk IGkuZS4gaW52YWxpZGF0ZWQgb24KKyAqIHRoZSBzdGFuZGJ5IGJ1dCB2YWxpZCBvbiB0aGUgcHJp bWFyeSBzZXJ2ZXIuIElmIGZvdW5kIHNvLCBpdCBzZXRzCisgKiBsb2NhbGx5X2ludmFsaWRhdGVk IHRvIHRydWUuCisgKi8KK3N0YXRpYyBib29sCitjaGVja19zeW5jX3Nsb3Rfb25fcmVtb3RlKFJl cGxpY2F0aW9uU2xvdCAqbG9jYWxfc2xvdCwgTGlzdCAqcmVtb3RlX3Nsb3RzLAorCQkJCQkJICBi b29sICpsb2NhbGx5X2ludmFsaWRhdGVkKQoreworCUxpc3RDZWxsICAgKmxjOworCisJZm9yZWFj aChsYywgcmVtb3RlX3Nsb3RzKQorCXsKKwkJUmVtb3RlU2xvdCAqcmVtb3RlX3Nsb3QgPSAoUmVt b3RlU2xvdCAqKSBsZmlyc3QobGMpOworCisJCWlmIChzdHJjbXAocmVtb3RlX3Nsb3QtPm5hbWUs IE5hbWVTdHIobG9jYWxfc2xvdC0+ZGF0YS5uYW1lKSkgPT0gMCkKKwkJeworCQkJLyoKKwkJCSAq IElmIHJlbW90ZSBzbG90IGlzIG5vdCBpbnZhbGlkYXRlZCBidXQgbG9jYWwgc2xvdCBpcyBtYXJr ZWQgYXMKKwkJCSAqIGludmFsaWRhdGVkLCB0aGVuIHNldCB0aGUgYm9vbC4KKwkJCSAqLworCQkJ U3BpbkxvY2tBY3F1aXJlKCZsb2NhbF9zbG90LT5tdXRleCk7CisJCQkqbG9jYWxseV9pbnZhbGlk YXRlZCA9CisJCQkJKHJlbW90ZV9zbG90LT5pbnZhbGlkYXRlZCA9PSBSU19JTlZBTF9OT05FKSAm JgorCQkJCShsb2NhbF9zbG90LT5kYXRhLmludmFsaWRhdGVkICE9IFJTX0lOVkFMX05PTkUpOwor CQkJU3BpbkxvY2tSZWxlYXNlKCZsb2NhbF9zbG90LT5tdXRleCk7CisKKwkJCXJldHVybiB0cnVl OworCQl9CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCisvKgorICogRHJvcCBvYnNvbGV0ZSBz bG90cworICoKKyAqIERyb3AgdGhlIHNsb3RzIHRoYXQgbm8gbG9uZ2VyIG5lZWQgdG8gYmUgc3lu Y2VkIGkuZS4gdGhlc2UgZWl0aGVyIGRvIG5vdAorICogZXhpc3Qgb24gdGhlIHByaW1hcnkgb3Ig YXJlIG5vIGxvbmdlciBlbmFibGVkIGZvciBmYWlsb3Zlci4KKyAqCisgKiBBZGRpdGlvbmFsbHks IGl0IGRyb3BzIHNsb3RzIHRoYXQgYXJlIHZhbGlkIG9uIHRoZSBwcmltYXJ5IGJ1dCBnb3QKKyAq IGludmFsaWRhdGVkIG9uIHRoZSBzdGFuZGJ5LiBUaGlzIHNpdHVhdGlvbiBtYXkgb2NjdXIgZHVl IHRvIHRoZSBmb2xsb3dpbmcKKyAqIHJlYXNvbnM6CisgKiAtIFRoZSBtYXhfc2xvdF93YWxfa2Vl cF9zaXplIG9uIHRoZSBzdGFuZGJ5IGlzIGluc3VmZmljaWVudCB0byByZXRhaW4gV0FMCisgKiAg IHJlY29yZHMgZnJvbSB0aGUgcmVzdGFydF9sc24gb2YgdGhlIHNsb3QuCisgKiAtIHByaW1hcnlf c2xvdF9uYW1lIGlzIHRlbXBvcmFyaWx5IHJlc2V0IHRvIG51bGwgYW5kIHRoZSBwaHlzaWNhbCBz bG90IGlzCisgKiAgIHJlbW92ZWQuCisgKiAtIFRoZSBwcmltYXJ5IGNoYW5nZXMgd2FsX2xldmVs IHRvIGEgbGV2ZWwgbG93ZXIgdGhhbiBsb2dpY2FsLgorICoKKyAqIFRoZSBhc3N1bXB0aW9uIGlz IHRoYXQgdGhlc2UgZHJvcHBlZCBzbG90cyB3aWxsIGdldCByZWNyZWF0ZWQgaW4gbmV4dAorICog c3luYy1jeWNsZSBhbmQgaXQgaXMgb2theSB0byBkcm9wIGFuZCByZWNyZWF0ZSBzdWNoIHNsb3Rz IGFzIGxvbmcgYXMgdGhlc2UKKyAqIGFyZSBub3QgY29uc3VtYWJsZSBvbiB0aGUgc3RhbmRieSAo d2hpY2ggaXMgdGhlIGNhc2UgY3VycmVudGx5KS4KKyAqLworc3RhdGljIHZvaWQKK2Ryb3Bfb2Jz b2xldGVfc2xvdHMoTGlzdCAqcmVtb3RlX3Nsb3RfbGlzdCkKK3sKKwlMaXN0CSAgICpsb2NhbF9z bG90cyA9IE5JTDsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWxvY2FsX3Nsb3RzID0gZ2V0X2xvY2Fs X3N5bmNlZF9zbG90cygpOworCisJZm9yZWFjaChsYywgbG9jYWxfc2xvdHMpCisJeworCQlSZXBs aWNhdGlvblNsb3QgKmxvY2FsX3Nsb3QgPSAoUmVwbGljYXRpb25TbG90ICopIGxmaXJzdChsYyk7 CisJCWJvb2wJCXJlbW90ZV9leGlzdHMgPSBmYWxzZTsKKwkJYm9vbAkJbG9jYWxseV9pbnZhbGlk YXRlZCA9IGZhbHNlOworCisJCXJlbW90ZV9leGlzdHMgPSBjaGVja19zeW5jX3Nsb3Rfb25fcmVt b3RlKGxvY2FsX3Nsb3QsIHJlbW90ZV9zbG90X2xpc3QsCisJCQkJCQkJCQkJCQkgICZsb2NhbGx5 X2ludmFsaWRhdGVkKTsKKworCQkvKgorCQkgKiBEcm9wIHRoZSBsb2NhbCBzbG90IGVpdGhlciBp ZiBpdCBpcyBub3QgaW4gdGhlIHJlbW90ZSBzbG90cyBsaXN0IG9yCisJCSAqIGlzIGludmFsaWRh dGVkIHdoaWxlIHJlbW90ZSBzbG90IGlzIHN0aWxsIHZhbGlkLgorCQkgKi8KKwkJaWYgKCFyZW1v dGVfZXhpc3RzIHx8IGxvY2FsbHlfaW52YWxpZGF0ZWQpCisJCXsKKwkJCWRyb3Bfc3luY2VkX3Ns b3RzX2ludGVybmFsKE5hbWVTdHIobG9jYWxfc2xvdC0+ZGF0YS5uYW1lKSwgdHJ1ZSk7CisKKwkJ CWVyZXBvcnQoTE9HLAorCQkJCQllcnJtc2coImRyb3BwZWQgcmVwbGljYXRpb24gc2xvdCBcIiVz XCIgb2YgZGJpZCAlZCIsCisJCQkJCQkgICBOYW1lU3RyKGxvY2FsX3Nsb3QtPmRhdGEubmFtZSks CisJCQkJCQkgICBsb2NhbF9zbG90LT5kYXRhLmRhdGFiYXNlKSk7CisJCX0KKwl9Cit9CisKKy8q CisgKiBSZXNlcnZlIFdBTCBmb3IgdGhlIGN1cnJlbnRseSBhY3RpdmUgc2xvdCB1c2luZyB0aGUg c3BlY2lmaWVkIFdBTCBsb2NhdGlvbgorICogKHJlc3RhcnRfbHNuKS4KKyAqCisgKiBJZiB0aGUg Z2l2ZW4gV0FMIGxvY2F0aW9uIGhhcyBiZWVuIHJlbW92ZWQsIHJlc2VydmUgV0FMIHVzaW5nIHRo ZSBvbGRlc3QKKyAqIGV4aXN0aW5nIFdBTCBzZWdtZW50LgorICovCitzdGF0aWMgdm9pZAorcmVz ZXJ2ZV93YWxfZm9yX3Nsb3QoWExvZ1JlY1B0ciByZXN0YXJ0X2xzbikKK3sKKwlYTG9nU2VnTm8J b2xkZXN0X3NlZ25vOworCVhMb2dTZWdObwlzZWdubzsKKwlSZXBsaWNhdGlvblNsb3QgKnNsb3Qg PSBNeVJlcGxpY2F0aW9uU2xvdDsKKworCUFzc2VydChzbG90ICE9IE5VTEwpOworCUFzc2VydChz bG90LT5kYXRhLnJlc3RhcnRfbHNuID09IEludmFsaWRYTG9nUmVjUHRyKTsKKworCXdoaWxlICh0 cnVlKQorCXsKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7CisJCXNsb3QtPmRhdGEu cmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRl eCk7CisKKwkJLyogUHJldmVudCBXQUwgcmVtb3ZhbCBhcyBmYXN0IGFzIHBvc3NpYmxlICovCisJ CVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04oKTsKKworCQlYTEJ5dGVUb1NlZyhz bG90LT5kYXRhLnJlc3RhcnRfbHNuLCBzZWdubywgd2FsX3NlZ21lbnRfc2l6ZSk7CisKKwkJLyoK KwkJICogRmluZCB0aGUgb2xkZXN0IGV4aXN0aW5nIFdBTCBzZWdtZW50IGZpbGUuCisJCSAqCisJ CSAqIE5vcm1hbGx5LCB3ZSBjYW4gZGV0ZXJtaW5lIGl0IGJ5IHVzaW5nIHRoZSBsYXN0IHJlbW92 ZWQgc2VnbWVudAorCQkgKiBudW1iZXIuIEhvd2V2ZXIsIGlmIG5vIFdBTCBzZWdtZW50IGZpbGVz IGhhdmUgYmVlbiByZW1vdmVkIGJ5IGEKKwkJICogY2hlY2twb2ludCBzaW5jZSBzdGFydHVwLCB3 ZSBuZWVkIHRvIHNlYXJjaCBmb3IgdGhlIG9sZGVzdCBzZWdtZW50CisJCSAqIGZpbGUgY3VycmVu dGx5IGV4aXN0aW5nIGluIFhMT0dESVIuCisJCSAqLworCQlvbGRlc3Rfc2Vnbm8gPSBYTG9nR2V0 TGFzdFJlbW92ZWRTZWdubygpICsgMTsKKworCQlpZiAob2xkZXN0X3NlZ25vID09IDEpCisJCQlv bGRlc3Rfc2Vnbm8gPSBYTG9nR2V0T2xkZXN0U2Vnbm8oMCk7CisKKwkJLyoKKwkJICogSWYgYWxs IHJlcXVpcmVkIFdBTCBpcyBzdGlsbCB0aGVyZSwgZ3JlYXQsIG90aGVyd2lzZSByZXRyeS4gVGhl CisJCSAqIHNsb3Qgc2hvdWxkIHByZXZlbnQgZnVydGhlciByZW1vdmFsIG9mIFdBTCwgdW5sZXNz IHRoZXJlJ3MgYQorCQkgKiBjb25jdXJyZW50IFJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWly ZWRMU04oKSBhZnRlciB3ZSd2ZSB3cml0dGVuCisJCSAqIHRoZSBuZXcgcmVzdGFydF9sc24gYWJv dmUsIHNvIG5vcm1hbGx5IHdlIHNob3VsZCBuZXZlciBuZWVkIHRvIGxvb3AKKwkJICogbW9yZSB0 aGFuIHR3aWNlLgorCQkgKi8KKwkJaWYgKHNlZ25vID49IG9sZGVzdF9zZWdubykKKwkJCWJyZWFr OworCisJCS8qIFJldHJ5IHVzaW5nIHRoZSBsb2NhdGlvbiBvZiB0aGUgb2xkZXN0IHdhbCBzZWdt ZW50ICovCisJCVhMb2dTZWdOb09mZnNldFRvUmVjUHRyKG9sZGVzdF9zZWdubywgMCwgd2FsX3Nl Z21lbnRfc2l6ZSwgcmVzdGFydF9sc24pOworCX0KK30KKworLyoKKyAqIFVwZGF0ZSB0aGUgTFNO cyBhbmQgcGVyc2lzdCB0aGUgc2xvdCBmb3IgZnVydGhlciBzeW5jcyBpZiB0aGUgcmVtb3RlCisg KiByZXN0YXJ0X2xzbiBhbmQgY2F0YWxvZ194bWluIGhhdmUgY2F1Z2h0IHVwIHdpdGggdGhlIGxv Y2FsIG9uZXMuIE90aGVyd2lzZSwKKyAqIHBlcnNpc3QgdGhlIHNsb3QgYW5kIHJldHVybi4KKyAq CisgKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2xvdCBpcyBtYXJrZWQgUkVBRFksIG90aGVyd2lzZSBm YWxzZS4KKyAqLworc3RhdGljIGJvb2wKK3VwZGF0ZV9hbmRfcGVyc2lzdF9zbG90KFJlbW90ZVNs b3QgKnJlbW90ZV9zbG90KQoreworCVJlcGxpY2F0aW9uU2xvdCAqc2xvdCA9IE15UmVwbGljYXRp b25TbG90OworCisJLyoKKwkgKiBDaGVjayBpZiB0aGUgcHJpbWFyeSBzZXJ2ZXIgaGFzIGNhdWdo dCB1cC4gUmVmZXIgdG8gdGhlIGNvbW1lbnQgYXRvcCB0aGUKKwkgKiBmaWxlIGZvciBkZXRhaWxz IG9uIHRoaXMgY2hlY2suCisJICoKKwkgKiBXZSBhbHNvIG5lZWQgdG8gY2hlY2sgaWYgcmVtb3Rl X3Nsb3QncyBjb25maXJtZWRfbHNuIGJlY29tZXMgdmFsaWQuIEl0CisJICogaXMgcG9zc2libGUg dG8gZ2V0IG51bGwgdmFsdWVzIGZvciBjb25maXJtZWRfbHNuIGFuZCBjYXRhbG9nX3htaW4gaWYg b24KKwkgKiB0aGUgcHJpbWFyeSBzZXJ2ZXIgdGhlIHNsb3QgaXMganVzdCBjcmVhdGVkIHdpdGgg YSB2YWxpZCByZXN0YXJ0X2xzbiBhbmQKKwkgKiBzbG90LXN5bmMgd29ya2VyIGhhcyBmZXRjaGVk IHRoZSBzbG90IGJlZm9yZSB0aGUgcHJpbWFyeSBzZXJ2ZXIgY291bGQKKwkgKiBzZXQgdmFsaWQg Y29uZmlybWVkX2xzbiBhbmQgY2F0YWxvZ194bWluLgorCSAqLworCWlmIChyZW1vdGVfc2xvdC0+ cmVzdGFydF9sc24gPCBzbG90LT5kYXRhLnJlc3RhcnRfbHNuIHx8CisJCVhMb2dSZWNQdHJJc0lu dmFsaWQocmVtb3RlX3Nsb3QtPmNvbmZpcm1lZF9sc24pIHx8CisJCVRyYW5zYWN0aW9uSWRQcmVj ZWRlcyhyZW1vdGVfc2xvdC0+Y2F0YWxvZ194bWluLAorCQkJCQkJCSAgc2xvdC0+ZGF0YS5jYXRh bG9nX3htaW4pKQorCXsKKwkJLyoKKwkJICogVGhlIHJlbW90ZSBzbG90IGRpZG4ndCBjYXRjaCB1 cCB0byBsb2NhbGx5IHJlc2VydmVkIHBvc2l0aW9uLgorCQkgKgorCQkgKiBXZSBkbyBub3QgZHJv cCB0aGUgc2xvdCBiZWNhdXNlIHRoZSByZXN0YXJ0X2xzbiBjYW4gYmUgYWhlYWQgb2YgdGhlCisJ CSAqIGN1cnJlbnQgbG9jYXRpb24gd2hlbiByZWNyZWF0aW5nIHRoZSBzbG90IGluIHRoZSBuZXh0 IGN5Y2xlLiBJdCBtYXkKKwkJICogdGFrZSBtb3JlIHRpbWUgdG8gY3JlYXRlIHN1Y2ggYSBzbG90 LiBUaGVyZWZvcmUsIHdlIGtlZXAgdGhpcyBzbG90CisJCSAqIGFuZCBhdHRlbXB0IHRoZSB3YWl0 IGFuZCBzeW5jaHJvbml6YXRpb24gaW4gdGhlIG5leHQgY3ljbGUuCisJCSAqLworCQlyZXR1cm4g ZmFsc2U7CisJfQorCisJbG9jYWxfc2xvdF91cGRhdGUocmVtb3RlX3Nsb3QpOworCisJaWYgKHNs b3QtPmRhdGEucGVyc2lzdGVuY3kgPT0gUlNfVEVNUE9SQVJZKQorCQlSZXBsaWNhdGlvblNsb3RQ ZXJzaXN0KCk7CisJZWxzZQorCXsKKwkJUmVwbGljYXRpb25TbG90TWFya0RpcnR5KCk7CisJCVJl cGxpY2F0aW9uU2xvdFNhdmUoKTsKKwl9CisKKwllcmVwb3J0KExPRywKKwkJCWVycm1zZygibmV3 bHkgbG9jYWxseSBjcmVhdGVkIHNsb3QgXCIlc1wiIGlzIHN5bmMtcmVhZHkgbm93IiwKKwkJCQkg ICByZW1vdGVfc2xvdC0+bmFtZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBTeW5j aHJvbml6ZSBzaW5nbGUgc2xvdCB0byBnaXZlbiBwb3NpdGlvbi4KKyAqCisgKiBUaGlzIGNyZWF0 ZXMgYSBuZXcgc2xvdCBpZiB0aGVyZSBpcyBubyBleGlzdGluZyBvbmUgYW5kIHVwZGF0ZXMgdGhl CisgKiBtZXRhZGF0YSBvZiB0aGUgc2xvdCBhcyBwZXIgdGhlIGRhdGEgcmVjZWl2ZWQgZnJvbSB0 aGUgcHJpbWFyeSBzZXJ2ZXIuCisgKgorICogVGhlIHNsb3QgaXMgY3JlYXRlZCBhcyBhIHRlbXBv cmFyeSBzbG90IGFuZCBzdGF5cyBpbiBzYW1lIHN0YXRlIHVudGlsIHRoZQorICogaW5pdGlhbGl6 YXRpb24gaXMgY29tcGxldGUuIFRoZSBpbml0aWFsaXphdGlvbiBpcyBjb25zaWRlcmVkIHRvIGJl IGNvbXBsZXRlZAorICogb25jZSB0aGUgcmVtb3RlX3Nsb3QgY2F0Y2hlcyB1cCB3aXRoIGxvY2Fs bHkgcmVzZXJ2ZWQgcG9zaXRpb24gYW5kIGxvY2FsCisgKiBzbG90IGlzIHVwZGF0ZWQuIFRoZSBz bG90IGlzIHRoZW4gcGVyc2lzdGVkLgorICoKKyAqIFJldHVybnMgVFJVRSBpZiB0aGUgbG9jYWwg c2xvdCBpcyB1cGRhdGVkLgorICovCitzdGF0aWMgYm9vbAorc3luY2hyb25pemVfb25lX3Nsb3Qo V2FsUmVjZWl2ZXJDb25uICp3cmNvbm4sIFJlbW90ZVNsb3QgKnJlbW90ZV9zbG90KQoreworCVJl cGxpY2F0aW9uU2xvdCAqc2xvdDsKKwlib29sCQlzbG90X3VwZGF0ZWQgPSBmYWxzZTsKKwlYTG9n UmVjUHRyCWxhdGVzdFdhbEVuZDsKKworCS8qCisJICogU2FuaXR5IGNoZWNrOiBNYWtlIHN1cmUg dGhhdCBjb25jZXJuZWQgV0FMIGlzIHJlY2VpdmVkIGJlZm9yZSBzeW5jaW5nCisJICogc2xvdCB0 byB0YXJnZXQgbHNuIHJlY2VpdmVkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLgorCSAqCisJICog VGhpcyBjaGVjayBzaG91bGQgbmV2ZXIgcGFzcyBhcyBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIsIHdl IGhhdmUgd2FpdGVkCisJICogZm9yIHRoZSBzdGFuZGJ5J3MgY29uZmlybWF0aW9uIGJlZm9yZSB1 cGRhdGluZyB0aGUgbG9naWNhbCBzbG90LgorCSAqLworCWxhdGVzdFdhbEVuZCA9IEdldFdhbFJj dkxhdGVzdFdhbEVuZCgpOworCWlmIChyZW1vdGVfc2xvdC0+Y29uZmlybWVkX2xzbiA+IGxhdGVz dFdhbEVuZCkKKwl7CisJCWVsb2coRVJST1IsICJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6 YXRpb24gYXMgdGhlIHJlY2VpdmVkIHNsb3Qgc3luYyIKKwkJCSAiIExTTiAlWC8lWCBmb3Igc2xv dCBcIiVzXCIgaXMgYWhlYWQgb2YgdGhlIHN0YW5kYnkgcG9zaXRpb24gJVgvJVgiLAorCQkJIExT Tl9GT1JNQVRfQVJHUyhyZW1vdGVfc2xvdC0+Y29uZmlybWVkX2xzbiksCisJCQkgcmVtb3RlX3Ns b3QtPm5hbWUsCisJCQkgTFNOX0ZPUk1BVF9BUkdTKGxhdGVzdFdhbEVuZCkpOworCX0KKworCS8q IFNlYXJjaCBmb3IgdGhlIG5hbWVkIHNsb3QgKi8KKwlpZiAoKHNsb3QgPSBTZWFyY2hOYW1lZFJl cGxpY2F0aW9uU2xvdChyZW1vdGVfc2xvdC0+bmFtZSwgdHJ1ZSkpKQorCXsKKwkJYm9vbAkJc3lu Y2VkOworCisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+bXV0ZXgpOworCQlzeW5jZWQgPSBzbG90 LT5kYXRhLnN5bmNlZDsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJLyog VXNlciBjcmVhdGVkIHNsb3Qgd2l0aCB0aGUgc2FtZSBuYW1lIGV4aXN0cywgcmFpc2UgRVJST1Iu ICovCisJCWlmICghc3luY2VkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJD T0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQkJZXJybXNnKCJleGl0 aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gb24gcmVjZWl2aW5nIgorCQkJCQkJICAgIiB0 aGUgZmFpbG92ZXIgc2xvdCBcIiVzXCIgZnJvbSB0aGUgcHJpbWFyeSBzZXJ2ZXIiLAorCQkJCQkJ ICAgcmVtb3RlX3Nsb3QtPm5hbWUpLAorCQkJCQllcnJkZXRhaWwoIkEgdXNlci1jcmVhdGVkIHNs b3Qgd2l0aCB0aGUgc2FtZSBuYW1lIGFscmVhZHkiCisJCQkJCQkJICAiIGV4aXN0cyBvbiB0aGUg c3RhbmRieS4iKSk7CisKKwkJLyoKKwkJICogU2xvdCBjcmVhdGVkIGJ5IHRoZSBzbG90IHN5bmMg d29ya2VyIGV4aXN0cywgc3luYyBpdC4KKwkJICoKKwkJICogSXQgaXMgaW1wb3J0YW50IHRvIGFj cXVpcmUgdGhlIHNsb3QgaGVyZSBiZWZvcmUgY2hlY2tpbmcKKwkJICogaW52YWxpZGF0aW9uLiBJ ZiB3ZSBkb24ndCBhY3F1aXJlIHRoZSBzbG90IGZpcnN0LCB0aGVyZSBjb3VsZCBiZSBhCisJCSAq IHJhY2UgY29uZGl0aW9uIHRoYXQgdGhlIGxvY2FsIHNsb3QgY291bGQgYmUgaW52YWxpZGF0ZWQg anVzdCBhZnRlcgorCQkgKiBjaGVja2luZyB0aGUgJ2ludmFsaWRhdGVkJyBmbGFnIGhlcmUgYW5k IHdlIGNvdWxkIGVuZCB1cAorCQkgKiBvdmVyd3JpdGluZyAnaW52YWxpZGF0ZWQnIGZsYWcgdG8g cmVtb3RlX3Nsb3QncyB2YWx1ZS4gU2VlCisJCSAqIEludmFsaWRhdGVQb3NzaWJseU9ic29sZXRl U2xvdCgpIHdoZXJlIGl0IGludmFsaWRhdGVzIHNsb3QgZGlyZWN0bHkKKwkJICogaWYgdGhlIHNs b3QgaXMgbm90IGFjcXVpcmVkIGJ5IG90aGVyIHByb2Nlc3Nlcy4KKwkJICovCisJCVJlcGxpY2F0 aW9uU2xvdEFjcXVpcmUocmVtb3RlX3Nsb3QtPm5hbWUsIHRydWUpOworCisJCUFzc2VydChzbG90 ID09IE15UmVwbGljYXRpb25TbG90KTsKKworCQkvKgorCQkgKiBDb3B5IHRoZSBpbnZhbGlkYXRp b24gY2F1c2UgZnJvbSByZW1vdGUgb25seSBpZiBsb2NhbCBzbG90IGlzIG5vdAorCQkgKiBpbnZh bGlkYXRlZCBsb2NhbGx5LCB3ZSBkb24ndCB3YW50IHRvIG92ZXJ3cml0ZSBleGlzdGluZyBvbmUu CisJCSAqLworCQlpZiAoc2xvdC0+ZGF0YS5pbnZhbGlkYXRlZCA9PSBSU19JTlZBTF9OT05FKQor CQl7CisJCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJCXNsb3QtPmRhdGEuaW52 YWxpZGF0ZWQgPSByZW1vdGVfc2xvdC0+aW52YWxpZGF0ZWQ7CisJCQlTcGluTG9ja1JlbGVhc2Uo JnNsb3QtPm11dGV4KTsKKworCQkJLyogTWFrZSBzdXJlIHRoZSBpbnZhbGlkYXRlZCBzdGF0ZSBw ZXJzaXN0cyBhY3Jvc3Mgc2VydmVyIHJlc3RhcnQgKi8KKwkJCVJlcGxpY2F0aW9uU2xvdE1hcmtE aXJ0eSgpOworCQkJUmVwbGljYXRpb25TbG90U2F2ZSgpOworCQkJc2xvdF91cGRhdGVkID0gdHJ1 ZTsKKwkJfQorCisJCS8qIFNraXAgdGhlIHN5bmMgb2YgYW4gaW52YWxpZGF0ZWQgc2xvdCAqLwor CQlpZiAoc2xvdC0+ZGF0YS5pbnZhbGlkYXRlZCAhPSBSU19JTlZBTF9OT05FKQorCQl7CisJCQlS ZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisJCQlyZXR1cm4gc2xvdF91cGRhdGVkOworCQl9CisK KwkJLyogU2xvdCBub3QgcmVhZHkgeWV0LCBsZXQncyBhdHRlbXB0IHRvIG1ha2UgaXQgc3luYy1y ZWFkeSBub3cuICovCisJCWlmIChzbG90LT5kYXRhLnBlcnNpc3RlbmN5ID09IFJTX1RFTVBPUkFS WSkKKwkJeworCQkJc2xvdF91cGRhdGVkID0gdXBkYXRlX2FuZF9wZXJzaXN0X3Nsb3QocmVtb3Rl X3Nsb3QpOworCQl9CisJCS8qIFNsb3QgcmVhZHkgZm9yIHN5bmMsIHNvIHN5bmMgaXQuICovCisJ CWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFNhbml0eSBjaGVjazogV2l0aCBob3Rfc3RhbmRieV9m ZWVkYmFjayBlbmFibGVkIGFuZAorCQkJICogaW52YWxpZGF0aW9ucyBoYW5kbGVkIGFwcHJvcHJp YXRlbHkgYXMgYWJvdmUsIHRoaXMgc2hvdWxkIG5ldmVyCisJCQkgKiBoYXBwZW4uCisJCQkgKi8K KwkJCWlmIChyZW1vdGVfc2xvdC0+cmVzdGFydF9sc24gPCBzbG90LT5kYXRhLnJlc3RhcnRfbHNu KQorCQkJCWVsb2coRVJST1IsCisJCQkJCSAiY2Fubm90IHN5bmNocm9uaXplIGxvY2FsIHNsb3Qg XCIlc1wiIExTTiglWC8lWCkiCisJCQkJCSAiIHRvIHJlbW90ZSBzbG90J3MgTFNOKCVYLyVYKSBh cyBzeW5jaHJvbml6YXRpb24iCisJCQkJCSAiIHdvdWxkIG1vdmUgaXQgYmFja3dhcmRzIiwgcmVt b3RlX3Nsb3QtPm5hbWUsCisJCQkJCSBMU05fRk9STUFUX0FSR1Moc2xvdC0+ZGF0YS5yZXN0YXJ0 X2xzbiksCisJCQkJCSBMU05fRk9STUFUX0FSR1MocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuKSk7 CisKKwkJCWlmIChyZW1vdGVfc2xvdC0+Y29uZmlybWVkX2xzbiAhPSBzbG90LT5kYXRhLmNvbmZp cm1lZF9mbHVzaCB8fAorCQkJCXJlbW90ZV9zbG90LT5yZXN0YXJ0X2xzbiAhPSBzbG90LT5kYXRh LnJlc3RhcnRfbHNuIHx8CisJCQkJcmVtb3RlX3Nsb3QtPmNhdGFsb2dfeG1pbiAhPSBzbG90LT5k YXRhLmNhdGFsb2dfeG1pbikKKwkJCXsKKwkJCQkvKiBVcGRhdGUgTFNOIG9mIHNsb3QgdG8gcmVt b3RlIHNsb3QncyBjdXJyZW50IHBvc2l0aW9uICovCisJCQkJbG9jYWxfc2xvdF91cGRhdGUocmVt b3RlX3Nsb3QpOworCisJCQkJLyogTWFrZSBzdXJlIHRoZSBzbG90IGNoYW5nZXMgcGVyc2lzdCBh Y3Jvc3Mgc2VydmVyIHJlc3RhcnQgKi8KKwkJCQlSZXBsaWNhdGlvblNsb3RNYXJrRGlydHkoKTsK KwkJCQlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJCQkJc2xvdF91cGRhdGVkID0gdHJ1ZTsKKwkJ CX0KKwkJfQorCX0KKwkvKiBPdGhlcndpc2UgY3JlYXRlIHRoZSBzbG90IGZpcnN0LiAqLworCWVs c2UKKwl7CisJCVRyYW5zYWN0aW9uSWQgeG1pbl9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0aW9u SWQ7CisKKwkJLyogU2tpcCBjcmVhdGluZyB0aGUgbG9jYWwgc2xvdCBpZiByZW1vdGVfc2xvdCBp cyBpbnZhbGlkYXRlZCBhbHJlYWR5ICovCisJCWlmIChyZW1vdGVfc2xvdC0+aW52YWxpZGF0ZWQg IT0gUlNfSU5WQUxfTk9ORSkKKwkJCXJldHVybiBmYWxzZTsKKworCQkvKiBFbnN1cmUgdGhhdCB3 ZSBoYXZlIHRyYW5zYWN0aW9uIGVudiBuZWVkZWQgYnkgZ2V0X2RhdGFiYXNlX29pZCgpICovCisJ CUFzc2VydChJc1RyYW5zYWN0aW9uU3RhdGUoKSk7CisKKwkJUmVwbGljYXRpb25TbG90Q3JlYXRl KHJlbW90ZV9zbG90LT5uYW1lLCB0cnVlLCBSU19URU1QT1JBUlksCisJCQkJCQkJICByZW1vdGVf c2xvdC0+dHdvX3BoYXNlLAorCQkJCQkJCSAgcmVtb3RlX3Nsb3QtPmZhaWxvdmVyLAorCQkJCQkJ CSAgdHJ1ZSk7CisKKwkJLyogRm9yIHNob3J0ZXIgbGluZXMuICovCisJCXNsb3QgPSBNeVJlcGxp Y2F0aW9uU2xvdDsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsKKwkJc2xvdC0+ ZGF0YS5kYXRhYmFzZSA9IGdldF9kYXRhYmFzZV9vaWQocmVtb3RlX3Nsb3QtPmRhdGFiYXNlLCBm YWxzZSk7CisJCW5hbWVzdHJjcHkoJnNsb3QtPmRhdGEucGx1Z2luLCByZW1vdGVfc2xvdC0+cGx1 Z2luKTsKKwkJU3BpbkxvY2tSZWxlYXNlKCZzbG90LT5tdXRleCk7CisKKwkJcmVzZXJ2ZV93YWxf Zm9yX3Nsb3QocmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNuKTsKKworCQlMV0xvY2tBY3F1aXJlKFBy b2NBcnJheUxvY2ssIExXX0VYQ0xVU0lWRSk7CisJCXhtaW5faG9yaXpvbiA9IEdldE9sZGVzdFNh ZmVEZWNvZGluZ1RyYW5zYWN0aW9uSWQodHJ1ZSk7CisJCVNwaW5Mb2NrQWNxdWlyZSgmc2xvdC0+ bXV0ZXgpOworCQlzbG90LT5lZmZlY3RpdmVfY2F0YWxvZ194bWluID0geG1pbl9ob3Jpem9uOwor CQlzbG90LT5kYXRhLmNhdGFsb2dfeG1pbiA9IHhtaW5faG9yaXpvbjsKKwkJU3BpbkxvY2tSZWxl YXNlKCZzbG90LT5tdXRleCk7CisJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRYbWlu KHRydWUpOworCQlMV0xvY2tSZWxlYXNlKFByb2NBcnJheUxvY2spOworCisJCSh2b2lkKSB1cGRh dGVfYW5kX3BlcnNpc3Rfc2xvdChyZW1vdGVfc2xvdCk7CisJCXNsb3RfdXBkYXRlZCA9IHRydWU7 CisJfQorCisJUmVwbGljYXRpb25TbG90UmVsZWFzZSgpOworCisJcmV0dXJuIHNsb3RfdXBkYXRl ZDsKK30KKworLyoKKyAqIE1hcHMgdGhlIHBnX3JlcGxpY2F0aW9uX3Nsb3RzLmNvbmZsaWN0X3Jl YXNvbiB0ZXh0IHZhbHVlIHRvCisgKiBSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRpb25DYXVzZSBl bnVtIHZhbHVlCisgKi8KK3N0YXRpYyBSZXBsaWNhdGlvblNsb3RJbnZhbGlkYXRpb25DYXVzZQor Z2V0X3Nsb3RfaW52YWxpZGF0aW9uX2NhdXNlKGNoYXIgKmNvbmZsaWN0X3JlYXNvbikKK3sKKwlB c3NlcnQoY29uZmxpY3RfcmVhc29uKTsKKworCWlmIChzdHJjbXAoY29uZmxpY3RfcmVhc29uLCBT TE9UX0lOVkFMX1dBTF9SRU1PVkVEX1RFWFQpID09IDApCisJCXJldHVybiBSU19JTlZBTF9XQUxf UkVNT1ZFRDsKKwllbHNlIGlmIChzdHJjbXAoY29uZmxpY3RfcmVhc29uLCBTTE9UX0lOVkFMX0hP UklaT05fVEVYVCkgPT0gMCkKKwkJcmV0dXJuIFJTX0lOVkFMX0hPUklaT047CisJZWxzZSBpZiAo c3RyY21wKGNvbmZsaWN0X3JlYXNvbiwgU0xPVF9JTlZBTF9XQUxfTEVWRUxfVEVYVCkgPT0gMCkK KwkJcmV0dXJuIFJTX0lOVkFMX1dBTF9MRVZFTDsKKwllbHNlCisJCUFzc2VydCgwKTsKKworCS8q IEtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwlyZXR1cm4gUlNfSU5WQUxfTk9ORTsKK30KKworLyoK KyAqIFN5bmNocm9uaXplIHNsb3RzLgorICoKKyAqIEdldHMgdGhlIGZhaWxvdmVyIGxvZ2ljYWwg c2xvdHMgaW5mbyBmcm9tIHRoZSBwcmltYXJ5IHNlcnZlciBhbmQgdXBkYXRlcworICogdGhlIHNs b3RzIGxvY2FsbHkuIENyZWF0ZXMgdGhlIHNsb3RzIGlmIG5vdCBwcmVzZW50IG9uIHRoZSBzdGFu ZGJ5LgorICoKKyAqIFJldHVybnMgVFJVRSBpZiBhbnkgb2YgdGhlIHNsb3RzIGdldHMgdXBkYXRl ZCBpbiB0aGlzIHN5bmMtY3ljbGUuCisgKi8KK3N0YXRpYyBib29sCitzeW5jaHJvbml6ZV9zbG90 cyhXYWxSZWNlaXZlckNvbm4gKndyY29ubikKK3sKKyNkZWZpbmUgU0xPVFNZTkNfQ09MVU1OX0NP VU5UIDkKKwlPaWQJCQlzbG90Um93W1NMT1RTWU5DX0NPTFVNTl9DT1VOVF0gPSB7VEVYVE9JRCwg VEVYVE9JRCwgTFNOT0lELAorCUxTTk9JRCwgWElET0lELCBCT09MT0lELCBCT09MT0lELCBURVhU T0lELCBURVhUT0lEfTsKKworCVdhbFJjdkV4ZWNSZXN1bHQgKnJlczsKKwlUdXBsZVRhYmxlU2xv dCAqdHVwc2xvdDsKKwlTdHJpbmdJbmZvRGF0YSBzOworCUxpc3QJICAgKnJlbW90ZV9zbG90X2xp c3QgPSBOSUw7CisJTGlzdENlbGwgICAqbGM7CisJYm9vbAkJc29tZV9zbG90X3VwZGF0ZWQgPSBm YWxzZTsKKwlYTG9nUmVjUHRyCWxhdGVzdFdhbEVuZDsKKworCS8qCisJICogVGhlIHByaW1hcnlf c2xvdF9uYW1lIGlzIG5vdCBzZXQgeWV0IG9yIFdBTHMgbm90IHJlY2VpdmVkIHlldC4KKwkgKiBT eW5jaHJvbml6YXRpb24gaXMgbm90IHBvc3NpYmxlIGlmIHRoZSB3YWxyZWNlaXZlciBpcyBub3Qg c3RhcnRlZC4KKwkgKi8KKwlsYXRlc3RXYWxFbmQgPSBHZXRXYWxSY3ZMYXRlc3RXYWxFbmQoKTsK KwlTcGluTG9ja0FjcXVpcmUoJldhbFJjdi0+bXV0ZXgpOworCWlmICgoV2FsUmN2LT5zbG90bmFt ZVswXSA9PSAnXDAnKSB8fAorCQlYTG9nUmVjUHRySXNJbnZhbGlkKGxhdGVzdFdhbEVuZCkpCisJ eworCQlTcGluTG9ja1JlbGVhc2UoJldhbFJjdi0+bXV0ZXgpOworCQlyZXR1cm4gZmFsc2U7CisJ fQorCVNwaW5Mb2NrUmVsZWFzZSgmV2FsUmN2LT5tdXRleCk7CisKKwkvKiBUaGUgc3lzY2FjaGUg YWNjZXNzIGluIHdhbHJjdl9leGVjKCkgbmVlZHMgYSB0cmFuc2FjdGlvbiBlbnYuICovCisJU3Rh cnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKKworCWluaXRTdHJpbmdJbmZvKCZzKTsKKworCS8qIENv bnN0cnVjdCBxdWVyeSB0byBmZXRjaCBzbG90cyB3aXRoIGZhaWxvdmVyIGVuYWJsZWQuICovCisJ YXBwZW5kU3RyaW5nSW5mbygmcywKKwkJCQkJICJTRUxFQ1Qgc2xvdF9uYW1lLCBwbHVnaW4sIGNv bmZpcm1lZF9mbHVzaF9sc24sIgorCQkJCQkgIiByZXN0YXJ0X2xzbiwgY2F0YWxvZ194bWluLCB0 d29fcGhhc2UsIGZhaWxvdmVyLCIKKwkJCQkJICIgZGF0YWJhc2UsIGNvbmZsaWN0X3JlYXNvbiIK KwkJCQkJICIgRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzIgorCQkJCQkgIiBX SEVSRSBmYWlsb3ZlciBhbmQgTk9UIHRlbXBvcmFyeSIpOworCisJLyogRXhlY3V0ZSB0aGUgcXVl cnkgKi8KKwlyZXMgPSB3YWxyY3ZfZXhlYyh3cmNvbm4sIHMuZGF0YSwgU0xPVFNZTkNfQ09MVU1O X0NPVU5ULCBzbG90Um93KTsKKwlwZnJlZShzLmRhdGEpOworCisJaWYgKHJlcy0+c3RhdHVzICE9 IFdBTFJDVl9PS19UVVBMRVMpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJybXNnKCJjb3VsZCBu b3QgZmV0Y2ggZmFpbG92ZXIgbG9naWNhbCBzbG90cyBpbmZvIgorCQkJCQkgICAiIGZyb20gdGhl IHByaW1hcnkgc2VydmVyOiAlcyIsIHJlcy0+ZXJyKSk7CisKKwkvKiBDb25zdHJ1Y3QgdGhlIHJl bW90ZV9zbG90IHR1cGxlIGFuZCBzeW5jaHJvbml6ZSBlYWNoIHNsb3QgbG9jYWxseSAqLworCXR1 cHNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNsb3QocmVzLT50dXBsZWRlc2MsICZUVFNPcHNN aW5pbWFsVHVwbGUpOworCXdoaWxlICh0dXBsZXN0b3JlX2dldHR1cGxlc2xvdChyZXMtPnR1cGxl c3RvcmUsIHRydWUsIGZhbHNlLCB0dXBzbG90KSkKKwl7CisJCWJvb2wJCWlzbnVsbDsKKwkJUmVt b3RlU2xvdCAqcmVtb3RlX3Nsb3QgPSBwYWxsb2MwKHNpemVvZihSZW1vdGVTbG90KSk7CisKKwkJ cmVtb3RlX3Nsb3QtPm5hbWUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKHNsb3RfZ2V0YXR0cih0dXBz bG90LCAxLCAmaXNudWxsKSk7CisJCUFzc2VydCghaXNudWxsKTsKKworCQlyZW1vdGVfc2xvdC0+ cGx1Z2luID0gVGV4dERhdHVtR2V0Q1N0cmluZyhzbG90X2dldGF0dHIodHVwc2xvdCwgMiwgJmlz bnVsbCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJLyoKKwkJICogSXQgaXMgcG9zc2libGUg dG8gZ2V0IG51bGwgdmFsdWVzIGZvciBMU04gYW5kIFhtaW4gaWYgc2xvdCBpcworCQkgKiBpbnZh bGlkYXRlZCBvbiB0aGUgcHJpbWFyeSBzZXJ2ZXIsIHNvIGhhbmRsZSBhY2NvcmRpbmdseS4KKwkJ ICovCisJCXJlbW90ZV9zbG90LT5jb25maXJtZWRfbHNuID0gIXNsb3RfYXR0aXNudWxsKHR1cHNs b3QsIDMpID8KKwkJCURhdHVtR2V0TFNOKHNsb3RfZ2V0YXR0cih0dXBzbG90LCAzLCAmaXNudWxs KSkgOgorCQkJSW52YWxpZFhMb2dSZWNQdHI7CisKKwkJcmVtb3RlX3Nsb3QtPnJlc3RhcnRfbHNu ID0gIXNsb3RfYXR0aXNudWxsKHR1cHNsb3QsIDQpID8KKwkJCURhdHVtR2V0TFNOKHNsb3RfZ2V0 YXR0cih0dXBzbG90LCA0LCAmaXNudWxsKSkgOgorCQkJSW52YWxpZFhMb2dSZWNQdHI7CisKKwkJ cmVtb3RlX3Nsb3QtPmNhdGFsb2dfeG1pbiA9ICFzbG90X2F0dGlzbnVsbCh0dXBzbG90LCA1KSA/ CisJCQlEYXR1bUdldFRyYW5zYWN0aW9uSWQoc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDUsICZpc251 bGwpKSA6CisJCQlJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKworCQlyZW1vdGVfc2xvdC0+dHdvX3Bo YXNlID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0dXBzbG90LCA2LCAmaXNudWxsKSk7CisJ CUFzc2VydCghaXNudWxsKTsKKworCQlyZW1vdGVfc2xvdC0+ZmFpbG92ZXIgPSBEYXR1bUdldEJv b2woc2xvdF9nZXRhdHRyKHR1cHNsb3QsIDcsICZpc251bGwpKTsKKwkJQXNzZXJ0KCFpc251bGwp OworCisJCXJlbW90ZV9zbG90LT5kYXRhYmFzZSA9IFRleHREYXR1bUdldENTdHJpbmcoc2xvdF9n ZXRhdHRyKHR1cHNsb3QsCisJCQkJCQkJCQkJCQkJCQkJIDgsICZpc251bGwpKTsKKwkJQXNzZXJ0 KCFpc251bGwpOworCisJCXJlbW90ZV9zbG90LT5pbnZhbGlkYXRlZCA9ICFzbG90X2F0dGlzbnVs bCh0dXBzbG90LCA5KSA/CisJCQlnZXRfc2xvdF9pbnZhbGlkYXRpb25fY2F1c2UoVGV4dERhdHVt R2V0Q1N0cmluZyhzbG90X2dldGF0dHIodHVwc2xvdCwgOSwgJmlzbnVsbCkpKSA6CisJCQlSU19J TlZBTF9OT05FOworCisJCS8qIENyZWF0ZSBsaXN0IG9mIHJlbW90ZSBzbG90cyAqLworCQlyZW1v dGVfc2xvdF9saXN0ID0gbGFwcGVuZChyZW1vdGVfc2xvdF9saXN0LCByZW1vdGVfc2xvdCk7CisK KwkJRXhlY0NsZWFyVHVwbGUodHVwc2xvdCk7CisJfQorCisJLyogRHJvcCBsb2NhbCBzbG90cyB0 aGF0IG5vIGxvbmdlciBuZWVkIHRvIGJlIHN5bmNlZC4gKi8KKwlkcm9wX29ic29sZXRlX3Nsb3Rz KHJlbW90ZV9zbG90X2xpc3QpOworCisJLyogTm93IHN5bmMgdGhlIHNsb3RzIGxvY2FsbHkgKi8K Kwlmb3JlYWNoKGxjLCByZW1vdGVfc2xvdF9saXN0KQorCXsKKwkJUmVtb3RlU2xvdCAqcmVtb3Rl X3Nsb3QgPSAoUmVtb3RlU2xvdCAqKSBsZmlyc3QobGMpOworCisJCXNvbWVfc2xvdF91cGRhdGVk IHw9IHN5bmNocm9uaXplX29uZV9zbG90KHdyY29ubiwgcmVtb3RlX3Nsb3QpOworCX0KKworCS8q IFdlIGFyZSBkb25lLCBmcmVlIHJlbW90ZV9zbG90X2xpc3QgZWxlbWVudHMgKi8KKwlsaXN0X2Zy ZWVfZGVlcChyZW1vdGVfc2xvdF9saXN0KTsKKworCXdhbHJjdl9jbGVhcl9yZXN1bHQocmVzKTsK KworCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCisJcmV0dXJuIHNvbWVfc2xvdF91cGRh dGVkOworfQorCisvKgorICogQ2hlY2tzIHRoZSBwcmltYXJ5IHNlcnZlciBpbmZvLgorICoKKyAq IFVzaW5nIHRoZSBzcGVjaWZpZWQgcHJpbWFyeSBzZXJ2ZXIgY29ubmVjdGlvbiwgY2hlY2sgd2hl dGhlciB3ZSBhcmUgYQorICogY2FzY2FkaW5nIHN0YW5kYnkuIEl0IGFsc28gdmFsaWRhdGVzIHBy aW1hcnlfc2xvdF9uYW1lIGZvciBub24tY2FzY2FkaW5nCisgKiBzdGFuZGJ5cy4KKyAqLworc3Rh dGljIHZvaWQKK2NoZWNrX3ByaW1hcnlfaW5mbyhXYWxSZWNlaXZlckNvbm4gKndyY29ubiwgYm9v bCAqYW1fY2FzY2FkaW5nX3N0YW5kYnkpCit7CisjZGVmaW5lIFBSSU1BUllfSU5GT19PVVRQVVRf Q09MX0NPVU5UIDIKKwlXYWxSY3ZFeGVjUmVzdWx0ICpyZXM7CisJT2lkCQkJc2xvdFJvd1tQUklN QVJZX0lORk9fT1VUUFVUX0NPTF9DT1VOVF0gPSB7Qk9PTE9JRCwgQk9PTE9JRH07CisJU3RyaW5n SW5mb0RhdGEgY21kOworCWJvb2wJCWlzbnVsbDsKKwlUdXBsZVRhYmxlU2xvdCAqdHVwc2xvdDsK Kwlib29sCQl2YWxpZDsKKwlib29sCQlyZW1vdGVfaW5fcmVjb3Zlcnk7CisJYm9vbAkJdHVwbGVf b2sgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCisJLyogVGhlIHN5c2NhY2hlIGFjY2VzcyBp biB3YWxyY3ZfZXhlYygpIG5lZWRzIGEgdHJhbnNhY3Rpb24gZW52LiAqLworCVN0YXJ0VHJhbnNh Y3Rpb25Db21tYW5kKCk7CisKKwlBc3NlcnQoYW1fY2FzY2FkaW5nX3N0YW5kYnkgIT0gTlVMTCk7 CisKKwkqYW1fY2FzY2FkaW5nX3N0YW5kYnkgPSBmYWxzZTsJLyogb3ZlcndyaXR0ZW4gbGF0ZXIg aWYgY2FzY2FkaW5nICovCisKKwlpbml0U3RyaW5nSW5mbygmY21kKTsKKwlhcHBlbmRTdHJpbmdJ bmZvKCZjbWQsCisJCQkJCSAiU0VMRUNUIHBnX2lzX2luX3JlY292ZXJ5KCksIGNvdW50KCopID0g MSIKKwkJCQkJICIgRlJPTSBwZ19yZXBsaWNhdGlvbl9zbG90cyIKKwkJCQkJICIgV0hFUkUgc2xv dF90eXBlPSdwaHlzaWNhbCcgQU5EIHNsb3RfbmFtZT0lcyIsCisJCQkJCSBxdW90ZV9saXRlcmFs X2NzdHIoUHJpbWFyeVNsb3ROYW1lKSk7CisKKwlyZXMgPSB3YWxyY3ZfZXhlYyh3cmNvbm4sIGNt ZC5kYXRhLCBQUklNQVJZX0lORk9fT1VUUFVUX0NPTF9DT1VOVCwgc2xvdFJvdyk7CisJcGZyZWUo Y21kLmRhdGEpOworCisJaWYgKHJlcy0+c3RhdHVzICE9IFdBTFJDVl9PS19UVVBMRVMpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJZXJybXNnKCJjb3VsZCBub3QgZmV0Y2ggcHJpbWFyeV9zbG90X25h bWUgXCIlc1wiIGluZm8gZnJvbSB0aGUiCisJCQkJCSAgICIgcHJpbWFyeSBzZXJ2ZXI6ICVzIiwg UHJpbWFyeVNsb3ROYW1lLCByZXMtPmVycikpOworCisJdHVwc2xvdCA9IE1ha2VTaW5nbGVUdXBs ZVRhYmxlU2xvdChyZXMtPnR1cGxlZGVzYywgJlRUU09wc01pbmltYWxUdXBsZSk7CisJdHVwbGVf b2sgPSB0dXBsZXN0b3JlX2dldHR1cGxlc2xvdChyZXMtPnR1cGxlc3RvcmUsIHRydWUsIGZhbHNl LCB0dXBzbG90KTsKKwlBc3NlcnQodHVwbGVfb2spOwkJCS8qIEl0IG11c3QgcmV0dXJuIG9uZSB0 dXBsZSAqLworCisJcmVtb3RlX2luX3JlY292ZXJ5ID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0 cih0dXBzbG90LCAxLCAmaXNudWxsKSk7CisJQXNzZXJ0KCFpc251bGwpOworCisJaWYgKHJlbW90 ZV9pbl9yZWNvdmVyeSkKKwl7CisJCS8qIE5vIG5lZWQgdG8gY2hlY2sgZnVydGhlciwgcmV0dXJu IHRoYXQgd2UgYXJlIGNhc2NhZGluZyBzdGFuZGJ5ICovCisJCSphbV9jYXNjYWRpbmdfc3RhbmRi eSA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCS8qIFdlIGFyZSBhIG5vcm1hbCBzdGFuZGJ5LiAq LworCQl2YWxpZCA9IERhdHVtR2V0Qm9vbChzbG90X2dldGF0dHIodHVwc2xvdCwgMiwgJmlzbnVs bCkpOworCQlBc3NlcnQoIWlzbnVsbCk7CisKKwkJaWYgKCF2YWxpZCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJ CWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29u ZmlndXJhdGlvbiIpLAorCQkJLyogdHJhbnNsYXRvcjogc2Vjb25kICVzIGlzIGEgR1VDIHZhcmlh YmxlIG5hbWUgKi8KKwkJCQkJZXJyZGV0YWlsKCJUaGUgcHJpbWFyeSBzZXJ2ZXIgc2xvdCBcIiVz XCIgc3BlY2lmaWVkIGJ5ICVzIGlzIG5vdCB2YWxpZC4iLAorCQkJCQkJCSAgUHJpbWFyeVNsb3RO YW1lLCAicHJpbWFyeV9zbG90X25hbWUiKSk7CisJfQorCisJRXhlY0NsZWFyVHVwbGUodHVwc2xv dCk7CisJd2FscmN2X2NsZWFyX3Jlc3VsdChyZXMpOworCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFu ZCgpOworfQorCisvKgorICogQ2hlY2sgdGhhdCBhbGwgbmVjZXNzYXJ5IEdVQ3MgZm9yIHNsb3Qg c3luY2hyb25pemF0aW9uIGFyZSBzZXQKKyAqIGFwcHJvcHJpYXRlbHkuIElmIG5vdCwgcmFpc2Ug YW4gRVJST1IuCisgKi8KK3N0YXRpYyB2b2lkCit2YWxpZGF0ZV9zbG90c3luY19wYXJhbWV0ZXJz KGNoYXIgKipkYm5hbWUpCit7CisJLyogU2FuaXR5IGNoZWNrLiAqLworCUFzc2VydChlbmFibGVf c3luY3Nsb3QpOworCisJLyoKKwkgKiBBIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QocHJpbWFy eV9zbG90X25hbWUpIGlzIHJlcXVpcmVkIG9uIHRoZQorCSAqIHByaW1hcnkgdG8gZW5zdXJlIHRo YXQgdGhlIHJvd3MgbmVlZGVkIGJ5IHRoZSBzdGFuZGJ5IGFyZSBub3QgcmVtb3ZlZAorCSAqIGFm dGVyIHJlc3RhcnRpbmcsIHNvIHRoYXQgdGhlIHN5bmNocm9uaXplZCBzbG90IG9uIHRoZSBzdGFu ZGJ5IHdpbGwgbm90CisJICogYmUgaW52YWxpZGF0ZWQuCisJICovCisJaWYgKFByaW1hcnlTbG90 TmFtZSA9PSBOVUxMIHx8IHN0cmNtcChQcmltYXJ5U2xvdE5hbWUsICIiKSA9PSAwKQorCQllcmVw b3J0KEVSUk9SLAorCQkvKiB0cmFuc2xhdG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICov CisJCQkJZXJybXNnKCJleGl0aW5nIGZyb20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJh ZCBjb25maWd1cmF0aW9uIiksCisJCQkJZXJyaGludCgiJXMgbXVzdCBiZSBkZWZpbmVkLiIsICJw cmltYXJ5X3Nsb3RfbmFtZSIpKTsKKworCS8qCisJICogSG90X3N0YW5kYnlfZmVlZGJhY2sgbXVz dCBiZSBlbmFibGVkIHRvIGNvb3BlcmF0ZSB3aXRoIHRoZSBwaHlzaWNhbAorCSAqIHJlcGxpY2F0 aW9uIHNsb3QsIHdoaWNoIGFsbG93cyBpbmZvcm1pbmcgdGhlIHByaW1hcnkgYWJvdXQgdGhlIHht aW4gYW5kCisJICogY2F0YWxvZ194bWluIHZhbHVlcyBvbiB0aGUgc3RhbmRieS4KKwkgKi8KKwlp ZiAoIWhvdF9zdGFuZGJ5X2ZlZWRiYWNrKQorCQllcmVwb3J0KEVSUk9SLAorCQkvKiB0cmFuc2xh dG9yOiAlcyBpcyBhIEdVQyB2YXJpYWJsZSBuYW1lICovCisJCQkJZXJybXNnKCJleGl0aW5nIGZy b20gc2xvdCBzeW5jaHJvbml6YXRpb24gZHVlIHRvIGJhZCBjb25maWd1cmF0aW9uIiksCisJCQkJ ZXJyaGludCgiJXMgbXVzdCBiZSBlbmFibGVkLiIsICJob3Rfc3RhbmRieV9mZWVkYmFjayIpKTsK KworCS8qCisJICogTG9naWNhbCBkZWNvZGluZyByZXF1aXJlcyB3YWxfbGV2ZWwgPj0gbG9naWNh bCBhbmQgd2UgY3VycmVudGx5IG9ubHkKKwkgKiBzeW5jaHJvbml6ZSBsb2dpY2FsIHNsb3RzLgor CSAqLworCWlmICh3YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJZXJlcG9ydChFUlJP UiwKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMgYSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJCWVy cm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmln dXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIndhbF9sZXZlbCBtdXN0IGJlID49IGxvZ2ljYWwuIikp OworCisJLyoKKwkgKiBUaGUgcHJpbWFyeV9jb25uaW5mbyBpcyByZXF1aXJlZCB0byBtYWtlIGNv bm5lY3Rpb24gdG8gcHJpbWFyeSBmb3IKKwkgKiBnZXR0aW5nIHNsb3RzIGluZm9ybWF0aW9uLgor CSAqLworCWlmIChQcmltYXJ5Q29ubkluZm8gPT0gTlVMTCB8fCBzdHJjbXAoUHJpbWFyeUNvbm5J bmZvLCAiIikgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJLyogdHJhbnNsYXRvcjogJXMgaXMg YSBHVUMgdmFyaWFibGUgbmFtZSAqLworCQkJCWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3lu Y2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29uZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIiVz IG11c3QgYmUgZGVmaW5lZC4iLCAicHJpbWFyeV9jb25uaW5mbyIpKTsKKworCS8qCisJICogVGhl IHNsb3Qgc3luYyB3b3JrZXIgbmVlZHMgYSBkYXRhYmFzZSBjb25uZWN0aW9uIGZvciB3YWxyY3Zf ZXhlYyB0bworCSAqIHdvcmsuCisJICovCisJKmRibmFtZSA9IHdhbHJjdl9nZXRfZGJuYW1lX2Zy b21fY29ubmluZm8oUHJpbWFyeUNvbm5JbmZvKTsKKwlpZiAoKmRibmFtZSA9PSBOVUxMKQorCQll cmVwb3J0KEVSUk9SLAorCisJCS8qCisJCSAqIHRyYW5zbGF0b3I6ICdkYm5hbWUnIGlzIGEgc3Bl Y2lmaWMgb3B0aW9uOyAlcyBpcyBhIEdVQyB2YXJpYWJsZQorCQkgKiBuYW1lCisJCSAqLworCQkJ CWVycm1zZygiZXhpdGluZyBmcm9tIHNsb3Qgc3luY2hyb25pemF0aW9uIGR1ZSB0byBiYWQgY29u ZmlndXJhdGlvbiIpLAorCQkJCWVycmhpbnQoIidkYm5hbWUnIG11c3QgYmUgc3BlY2lmaWVkIGlu ICVzLiIsICJwcmltYXJ5X2Nvbm5pbmZvIikpOworfQorCisvKgorICogUmUtcmVhZCB0aGUgY29u ZmlnIGZpbGUuCisgKgorICogSWYgYW55IG9mIHRoZSBzbG90IHN5bmMgR1VDcyBoYXZlIGNoYW5n ZWQsIGV4aXQgdGhlIHdvcmtlciBhbmQKKyAqIGxldCBpdCBnZXQgcmVzdGFydGVkIGJ5IHRoZSBw b3N0bWFzdGVyLgorICovCitzdGF0aWMgdm9pZAorc2xvdHN5bmNfcmVyZWFkX2NvbmZpZyhXYWxS ZWNlaXZlckNvbm4gKndyY29ubikKK3sKKwljaGFyCSAgICpvbGRfcHJpbWFyeV9jb25uaW5mbyA9 IHBzdHJkdXAoUHJpbWFyeUNvbm5JbmZvKTsKKwljaGFyCSAgICpvbGRfcHJpbWFyeV9zbG90bmFt ZSA9IHBzdHJkdXAoUHJpbWFyeVNsb3ROYW1lKTsKKwlib29sCQlvbGRfaG90X3N0YW5kYnlfZmVl ZGJhY2sgPSBob3Rfc3RhbmRieV9mZWVkYmFjazsKKwlib29sCQljb25uaW5mb19jaGFuZ2VkOwor CWJvb2wJCXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZDsKKworCUNvbmZpZ1JlbG9hZFBlbmRpbmcg PSBmYWxzZTsKKwlQcm9jZXNzQ29uZmlnRmlsZShQR0NfU0lHSFVQKTsKKworCWNvbm5pbmZvX2No YW5nZWQgPSBzdHJjbXAob2xkX3ByaW1hcnlfY29ubmluZm8sIFByaW1hcnlDb25uSW5mbykgIT0g MDsKKwlwcmltYXJ5X3Nsb3RuYW1lX2NoYW5nZWQgPSBzdHJjbXAob2xkX3ByaW1hcnlfc2xvdG5h bWUsIFByaW1hcnlTbG90TmFtZSkgIT0gMDsKKworCWlmIChjb25uaW5mb19jaGFuZ2VkIHx8CisJ CXByaW1hcnlfc2xvdG5hbWVfY2hhbmdlZCB8fAorCQkob2xkX2hvdF9zdGFuZGJ5X2ZlZWRiYWNr ICE9IGhvdF9zdGFuZGJ5X2ZlZWRiYWNrKSkKKwl7CisJCWVyZXBvcnQoTE9HLAorCQkJCWVycm1z Zygic2xvdCBzeW5jIHdvcmtlciB3aWxsIHJlc3RhcnQgYmVjYXVzZSBvZiIKKwkJCQkJICAgIiBh IHBhcmFtZXRlciBjaGFuZ2UiKSk7CisJCS8qIFRoZSBleGl0IGNvZGUgMSB3aWxsIG1ha2UgcG9z dG1hc3RlciByZXN0YXJ0IHRoaXMgd29ya2VyICovCisJCXByb2NfZXhpdCgxKTsKKwl9CisKKwlw ZnJlZShvbGRfcHJpbWFyeV9jb25uaW5mbyk7CisJcGZyZWUob2xkX3ByaW1hcnlfc2xvdG5hbWUp OworfQorCisvKgorICogSW50ZXJydXB0IGhhbmRsZXIgZm9yIG1haW4gbG9vcCBvZiBzbG90IHN5 bmMgd29ya2VyLgorICovCitzdGF0aWMgdm9pZAorUHJvY2Vzc1Nsb3RTeW5jSW50ZXJydXB0cyhX YWxSZWNlaXZlckNvbm4gKndyY29ubikKK3sKKwlDSEVDS19GT1JfSU5URVJSVVBUUygpOworCisJ aWYgKFNodXRkb3duUmVxdWVzdFBlbmRpbmcpCisJeworCQl3YWxyY3ZfZGlzY29ubmVjdCh3cmNv bm4pOworCQllcmVwb3J0KExPRywKKwkJCQllcnJtc2coInJlcGxpY2F0aW9uIHNsb3Qgc3luYyB3 b3JrZXIgaXMgc2h1dHRpbmcgZG93biIKKwkJCQkJICAgIiBvbiByZWNlaXZpbmcgU0lHSU5UIikp OworCQlwcm9jX2V4aXQoMCk7CisJfQorCisJaWYgKENvbmZpZ1JlbG9hZFBlbmRpbmcpCisJCXNs b3RzeW5jX3JlcmVhZF9jb25maWcod3Jjb25uKTsKK30KKworLyoKKyAqIENsZWFudXAgZnVuY3Rp b24gZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24gbGF1bmNoZXIuCisgKgorICogQ2FsbGVkIG9uIGxv Z2ljYWwgcmVwbGljYXRpb24gbGF1bmNoZXIgZXhpdC4KKyAqLworc3RhdGljIHZvaWQKK3Nsb3Rz eW5jX3dvcmtlcl9vbmV4aXQoaW50IGNvZGUsIERhdHVtIGFyZykKK3sKKwlTcGluTG9ja0FjcXVp cmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJU2xvdFN5bmNXb3JrZXItPnBpZCA9IEludmFs aWRQaWQ7CisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworfQorCisv KgorICogVGhlIG1haW4gbG9vcCBvZiBvdXIgd29ya2VyIHByb2Nlc3MuCisgKgorICogSXQgY29u bmVjdHMgdG8gdGhlIHByaW1hcnkgc2VydmVyLCBmZXRjaGVzIGxvZ2ljYWwgZmFpbG92ZXIgc2xv dHMKKyAqIGluZm9ybWF0aW9uIHBlcmlvZGljYWxseSBpbiBvcmRlciB0byBjcmVhdGUgYW5kIHN5 bmMgdGhlIHNsb3RzLgorICovCit2b2lkCitSZXBsU2xvdFN5bmNXb3JrZXJNYWluKERhdHVtIG1h aW5fYXJnKQoreworCVdhbFJlY2VpdmVyQ29ubiAqd3Jjb25uID0gTlVMTDsKKwljaGFyCSAgICpk Ym5hbWU7CisJYm9vbAkJYW1fY2FzY2FkaW5nX3N0YW5kYnk7CisJY2hhcgkgICAqZXJyOworCVRp bWVzdGFtcFR6IGxhc3RfdXBkYXRlX3RpbWU7CisKKwllcmVwb3J0KExPRywgZXJybXNnKCJyZXBs aWNhdGlvbiBzbG90IHN5bmMgd29ya2VyIHN0YXJ0ZWQiKSk7CisKKwlvbl9zaG1lbV9leGl0KHNs b3RzeW5jX3dvcmtlcl9vbmV4aXQsIChEYXR1bSkgMCk7CisKKwlTcGluTG9ja0FjcXVpcmUoJlNs b3RTeW5jV29ya2VyLT5tdXRleCk7CisKKwlBc3NlcnQoU2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJ bnZhbGlkUGlkKTsKKworCS8qIEFkdmVydGlzZSBvdXIgUElEIHNvIHRoYXQgdGhlIHN0YXJ0dXAg cHJvY2VzcyBjYW4ga2lsbCB1cyBvbiBwcm9tb3Rpb24gKi8KKwlTbG90U3luY1dvcmtlci0+cGlk ID0gTXlQcm9jUGlkOworCisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtlci0+bXV0ZXgp OworCisJLyogU2V0dXAgc2lnbmFsIGhhbmRsaW5nICovCisJcHFzaWduYWwoU0lHSFVQLCBTaWdu YWxIYW5kbGVyRm9yQ29uZmlnUmVsb2FkKTsKKwlwcXNpZ25hbChTSUdJTlQsIFNpZ25hbEhhbmRs ZXJGb3JTaHV0ZG93blJlcXVlc3QpOworCXBxc2lnbmFsKFNJR1RFUk0sIGRpZSk7CisJQmFja2dy b3VuZFdvcmtlclVuYmxvY2tTaWduYWxzKCk7CisKKwkvKiBMb2FkIHRoZSBsaWJwcS1zcGVjaWZp YyBmdW5jdGlvbnMgKi8KKwlsb2FkX2ZpbGUoImxpYnBxd2FscmVjZWl2ZXIiLCBmYWxzZSk7CisK Kwl2YWxpZGF0ZV9zbG90c3luY19wYXJhbWV0ZXJzKCZkYm5hbWUpOworCisJLyoKKwkgKiBDb25u ZWN0IHRvIHRoZSBkYXRhYmFzZSBzcGVjaWZpZWQgYnkgdXNlciBpbiBwcmltYXJ5X2Nvbm5pbmZv LiBXZSBuZWVkCisJICogYSBkYXRhYmFzZSBjb25uZWN0aW9uIGZvciB3YWxyY3ZfZXhlYyB0byB3 b3JrLiBQbGVhc2Ugc2VlIGNvbW1lbnRzIGF0b3AKKwkgKiBsaWJwcXJjdl9leGVjLgorCSAqLwor CUJhY2tncm91bmRXb3JrZXJJbml0aWFsaXplQ29ubmVjdGlvbihkYm5hbWUsIE5VTEwsIDApOwor CisJLyoKKwkgKiBFc3RhYmxpc2ggdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHByaW1hcnkgc2VydmVy IGZvciBzbG90cworCSAqIHN5bmNocm9uaXphdGlvbi4KKwkgKi8KKwl3cmNvbm4gPSB3YWxyY3Zf Y29ubmVjdChQcmltYXJ5Q29ubkluZm8sIHRydWUsIGZhbHNlLAorCQkJCQkJCWNsdXN0ZXJfbmFt ZVswXSA/IGNsdXN0ZXJfbmFtZSA6ICJzbG90c3luY3dvcmtlciIsCisJCQkJCQkJJmVycik7CisJ aWYgKHdyY29ubiA9PSBOVUxMKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09E RV9DT05ORUNUSU9OX0ZBSUxVUkUpLAorCQkJCWVycm1zZygiY291bGQgbm90IGNvbm5lY3QgdG8g dGhlIHByaW1hcnkgc2VydmVyOiAlcyIsIGVycikpOworCisJLyoKKwkgKiBVc2luZyB0aGUgc3Bl Y2lmaWVkIHByaW1hcnkgc2VydmVyIGNvbm5lY3Rpb24sIGNoZWNrIHdoZXRoZXIgd2UgYXJlCisJ ICogY2FzY2FkaW5nIHN0YW5kYnkgYW5kIHZhbGlkYXRlcyBwcmltYXJ5X3Nsb3RfbmFtZSBmb3IK KwkgKiBub24tY2FzY2FkaW5nLXN0YW5kYnlzLgorCSAqLworCWNoZWNrX3ByaW1hcnlfaW5mbyh3 cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisKKwlsYXN0X3VwZGF0ZV90aW1lID0gR2V0 Q3VycmVudFRpbWVzdGFtcCgpOworCisJLyogTWFpbiB3YWl0IGxvb3AuICovCisJZm9yICg7OykK Kwl7CisJCWludAkJCXJjOworCQlsb25nCQluYXB0aW1lID0gV09SS0VSX0RFRkFVTFRfTkFQVElN RV9NUzsKKwkJVGltZXN0YW1wVHogbm93OworCQlib29sCQlzb21lX3Nsb3RfdXBkYXRlZDsKKwor CQlQcm9jZXNzU2xvdFN5bmNJbnRlcnJ1cHRzKHdyY29ubik7CisKKwkJaWYgKGFtX2Nhc2NhZGlu Z19zdGFuZGJ5KQorCQl7CisJCQkvKgorCQkJICogU2xvdCBzeW5jaHJvbml6YXRpb24gaXMgY3Vy cmVudGx5IG5vdCBzdXBwb3J0ZWQgb24gY2FzY2FkaW5nCisJCQkgKiBzdGFuZGJ5LiBTbyBpZiB3 ZSBhcmUgb24gdGhlIGNhc2NhZGluZyBzdGFuZGJ5LCBza2lwIHRoZSBzeW5jCisJCQkgKiBhbmQg dGFrZSBhIGxvbmdlciBuYXAgYmVmb3JlIHdlIGNoZWNrIGFnYWluIHdoZXRoZXIgd2UgYXJlCisJ CQkgKiBzdGlsbCBjYXNjYWRpbmcgc3RhbmRieSBvciBub3QuCisJCQkgKi8KKwkJCW5hcHRpbWUg PSA2ICogV09SS0VSX0lOQUNUSVZJVFlfTkFQVElNRV9NUzsgLyogNjAgc2VjICovCisJCX0KKwkJ ZWxzZQorCQl7CisJCQlzb21lX3Nsb3RfdXBkYXRlZCA9IHN5bmNocm9uaXplX3Nsb3RzKHdyY29u bik7CisKKwkJCS8qCisJCQkgKiBJZiBhbnkgb2YgdGhlIHNsb3RzIGdldCB1cGRhdGVkIGluIHRo aXMgc3luYy1jeWNsZSwgdXNlIGRlZmF1bHQKKwkJCSAqIG5hcHRpbWUgYW5kIHVwZGF0ZSAnbGFz dF91cGRhdGVfdGltZScuIEJ1dCBpZiBubyBhY3Rpdml0eSBpcworCQkJICogb2JzZXJ2ZWQgaW4g dGhpcyBzeW5jLWN5Y2xlLCB0aGVuIGluY3JlYXNlIG5hcHRpbWUgcHJvdmlkZWQKKwkJCSAqIGlu YWN0aXZpdHkgdGltZSByZWFjaGVzIHRocmVzaG9sZC4KKwkJCSAqLworCQkJbm93ID0gR2V0Q3Vy cmVudFRpbWVzdGFtcCgpOworCQkJaWYgKHNvbWVfc2xvdF91cGRhdGVkKQorCQkJCWxhc3RfdXBk YXRlX3RpbWUgPSBub3c7CisJCQllbHNlIGlmIChUaW1lc3RhbXBEaWZmZXJlbmNlRXhjZWVkcyhs YXN0X3VwZGF0ZV90aW1lLAorCQkJCQkJCQkJCQkJbm93LCBXT1JLRVJfSU5BQ1RJVklUWV9USFJF U0hPTERfTVMpKQorCQkJCW5hcHRpbWUgPSBXT1JLRVJfSU5BQ1RJVklUWV9OQVBUSU1FX01TOwor CQl9CisKKwkJcmMgPSBXYWl0TGF0Y2goTXlMYXRjaCwKKwkJCQkJICAgV0xfTEFUQ0hfU0VUIHwg V0xfVElNRU9VVCB8IFdMX0VYSVRfT05fUE1fREVBVEgsCisJCQkJCSAgIG5hcHRpbWUsCisJCQkJ CSAgIFdBSVRfRVZFTlRfUkVQTF9TTE9UU1lOQ19NQUlOKTsKKworCQlpZiAocmMgJiBXTF9MQVRD SF9TRVQpCisJCQlSZXNldExhdGNoKE15TGF0Y2gpOworCisJCS8qCisJCSAqIElmIHRoZSBzdGFu ZGJ5IHdhcyBwcm9tb3RlZCB0aGVuIHdoYXQgd2FzIHByZXZpb3VzbHkgYSBjYXNjYWRpbmcKKwkJ ICogc3RhbmRieSBtaWdodCBubyBsb25nZXIgYmUgb25lLCBzbyByZWNoZWNrIGVhY2ggdGltZS4K KwkJICovCisJCWlmIChhbV9jYXNjYWRpbmdfc3RhbmRieSkKKwkJCWNoZWNrX3ByaW1hcnlfaW5m byh3cmNvbm4sICZhbV9jYXNjYWRpbmdfc3RhbmRieSk7CisJfQorCisJLyoKKwkgKiBUaGUgc2xv dCBzeW5jIHdvcmtlciBjYW4gbm90IGdldCBoZXJlIGJlY2F1c2UgaXQgd2lsbCBvbmx5IHN0b3Ag d2hlbiBpdAorCSAqIHJlY2VpdmVzIGEgU0lHSU5UIGZyb20gdGhlIGxvZ2ljYWwgcmVwbGljYXRp b24gbGF1bmNoZXIsIG9yIHdoZW4gdGhlcmUKKwkgKiBpcyBhbiBlcnJvci4KKwkgKi8KKwlBc3Nl cnQoZmFsc2UpOworfQorCisvKgorICogSXMgY3VycmVudCBwcm9jZXNzIHRoZSBzbG90IHN5bmMg d29ya2VyPworICovCitib29sCitJc0xvZ2ljYWxTbG90U3luY1dvcmtlcih2b2lkKQoreworCXJl dHVybiBTbG90U3luY1dvcmtlci0+cGlkID09IE15UHJvY1BpZDsKK30KKworLyoKKyAqIFNodXQg ZG93biB0aGUgc2xvdCBzeW5jIHdvcmtlci4KKyAqLwordm9pZAorU2h1dERvd25TbG90U3luYyh2 b2lkKQoreworCVNwaW5Mb2NrQWNxdWlyZSgmU2xvdFN5bmNXb3JrZXItPm11dGV4KTsKKwlpZiAo U2xvdFN5bmNXb3JrZXItPnBpZCA9PSBJbnZhbGlkUGlkKQorCXsKKwkJU3BpbkxvY2tSZWxlYXNl KCZTbG90U3luY1dvcmtlci0+bXV0ZXgpOworCQlyZXR1cm47CisJfQorCisJa2lsbChTbG90U3lu Y1dvcmtlci0+cGlkLCBTSUdJTlQpOworCisJU3BpbkxvY2tSZWxlYXNlKCZTbG90U3luY1dvcmtl ci0+bXV0ZXgpOworCisJLyogV2FpdCBmb3IgaXQgdG8gZGllLiAqLworCWZvciAoOzspCisJewor CQlpbnQJCQlyYzsKKworCQkvKiBXYWl0IGEgYml0LCB3ZSBkb24ndCBleHBlY3QgdG8gaGF2ZSB0 byB3YWl0IGxvbmcuICovCisJCXJjID0gV2FpdExhdGNoKE15TGF0Y2gsCisJCQkJCSAgIFdMX0xB VENIX1NFVCB8IFdMX1RJTUVPVVQgfCBXTF9FWElUX09OX1BNX0RFQVRILAorCQkJCQkgICAxMEws IFdBSVRfRVZFTlRfQkdXT1JLRVJfU0hVVERPV04pOworCisJCWlmIChyYyAmIFdMX0xBVENIX1NF VCkKKwkJeworCQkJUmVzZXRMYXRjaChNeUxhdGNoKTsKKwkJCUNIRUNLX0ZPUl9JTlRFUlJVUFRT KCk7CisJCX0KKworCQlTcGluTG9ja0FjcXVpcmUoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisK KwkJLyogSXMgaXQgZ29uZT8gKi8KKwkJaWYgKFNsb3RTeW5jV29ya2VyLT5waWQgPT0gSW52YWxp ZFBpZCkKKwkJCWJyZWFrOworCisJCVNwaW5Mb2NrUmVsZWFzZSgmU2xvdFN5bmNXb3JrZXItPm11 dGV4KTsKKwl9CisKKwlTcGluTG9ja1JlbGVhc2UoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7Cit9 CisKKy8qCisgKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSBzbG90IHN5bmMgd29ya2VyIHNoYXJl ZCBtZW1vcnkKKyAqLwordm9pZAorU2xvdFN5bmNXb3JrZXJTaG1lbUluaXQodm9pZCkKK3sKKwlT aXplCQlzaXplOworCWJvb2wJCWZvdW5kOworCisJc2l6ZSA9IHNpemVvZihTbG90U3luY1dvcmtl ckN0eFN0cnVjdCk7CisJc2l6ZSA9IE1BWEFMSUdOKHNpemUpOworCisJU2xvdFN5bmNXb3JrZXIg PSAoU2xvdFN5bmNXb3JrZXJDdHhTdHJ1Y3QgKikKKwkJU2htZW1Jbml0U3RydWN0KCJTbG90IFN5 bmMgV29ya2VyIERhdGEiLCBzaXplLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJCW1l bXNldChTbG90U3luY1dvcmtlciwgMCwgc2l6ZSk7CisJCVNsb3RTeW5jV29ya2VyLT5waWQgPSBJ bnZhbGlkUGlkOworCQlTcGluTG9ja0luaXQoJlNsb3RTeW5jV29ya2VyLT5tdXRleCk7CisJfQor fQorCisvKgorICogUmVnaXN0ZXIgdGhlIGJhY2tncm91bmQgd29ya2VyIGZvciBzbG90cyBzeW5j aHJvbml6YXRpb24gcHJvdmlkZWQKKyAqIGVuYWJsZV9zeW5jc2xvdCBpcyBPTi4KKyAqLwordm9p ZAorU2xvdFN5bmNXb3JrZXJSZWdpc3Rlcih2b2lkKQoreworCUJhY2tncm91bmRXb3JrZXIgYmd3 OworCisJaWYgKCFlbmFibGVfc3luY3Nsb3QpCisJeworCQllcmVwb3J0KExPRywKKwkJCQllcnJt c2coInNraXBwaW5nIHNsb3Qgc3luY2hyb25pemF0aW9uIiksCisJCQkJZXJyZGV0YWlsKCJlbmFi bGVfc3luY3Nsb3QgaXMgZGlzYWJsZWQuIikpOworCQlyZXR1cm47CisJfQorCisJbWVtc2V0KCZi Z3csIDAsIHNpemVvZihiZ3cpKTsKKworCS8qIFdlIG5lZWQgZGF0YWJhc2UgY29ubmVjdGlvbiB3 aGljaCBuZWVkcyBzaGFyZWQtbWVtb3J5IGFjY2VzcyBhcyB3ZWxsLiAqLworCWJndy5iZ3dfZmxh Z3MgPSBCR1dPUktFUl9TSE1FTV9BQ0NFU1MgfAorCQlCR1dPUktFUl9CQUNLRU5EX0RBVEFCQVNF X0NPTk5FQ1RJT047CisKKwkvKiBTdGFydCBhcyBzb29uIGFzIGEgY29uc2lzdGVudCBzdGF0ZSBo YXMgYmVlbiByZWFjaGVkIGluIGEgaG90IHN0YW5kYnkgKi8KKwliZ3cuYmd3X3N0YXJ0X3RpbWUg PSBCZ1dvcmtlclN0YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5OworCisJc25wcmludGYo Ymd3LmJnd19saWJyYXJ5X25hbWUsIE1BWFBHUEFUSCwgInBvc3RncmVzIik7CisJc25wcmludGYo Ymd3LmJnd19mdW5jdGlvbl9uYW1lLCBCR1dfTUFYTEVOLCAiUmVwbFNsb3RTeW5jV29ya2VyTWFp biIpOworCXNucHJpbnRmKGJndy5iZ3dfbmFtZSwgQkdXX01BWExFTiwKKwkJCSAicmVwbGljYXRp b24gc2xvdCBzeW5jIHdvcmtlciIpOworCXNucHJpbnRmKGJndy5iZ3dfdHlwZSwgQkdXX01BWExF TiwKKwkJCSAic2xvdCBzeW5jIHdvcmtlciIpOworCisJYmd3LmJnd19yZXN0YXJ0X3RpbWUgPSBC R1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMOworCWJndy5iZ3dfbm90aWZ5X3BpZCA9IDA7CisJ Ymd3LmJnd19tYWluX2FyZyA9IChEYXR1bSkgMDsKKworCVJlZ2lzdGVyQmFja2dyb3VuZFdvcmtl cigmYmd3KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA2OTYzNzY0MDBlLi4zM2Y5NTdi MDJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24v c2xvdC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlci5oIgogI2luY2x1ZGUgInN0 b3JhZ2UvZmQuaCIKICNpbmNsdWRlICJzdG9yYWdlL2lwYy5oIgogI2luY2x1ZGUgInN0b3JhZ2Uv cHJvYy5oIgpAQCAtMTAzLDcgKzEwNCw2IEBAIGludAkJCW1heF9yZXBsaWNhdGlvbl9zbG90cyA9 IDEwOyAvKiB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwbGljYXRpb24KIAkJCQkJCQkJCQkgKiBz bG90cyAqLwogCiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3RTaG1lbUV4aXQoaW50IGNvZGUs IERhdHVtIGFyZyk7Ci1zdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wQWNxdWlyZWQodm9p ZCk7CiBzdGF0aWMgdm9pZCBSZXBsaWNhdGlvblNsb3REcm9wUHRyKFJlcGxpY2F0aW9uU2xvdCAq c2xvdCk7CiAKIC8qIGludGVybmFsIHBlcnNpc3RlbmN5IGZ1bmN0aW9ucyAqLwpAQCAtMjUwLDEx ICsyNTAsMTIgQEAgUmVwbGljYXRpb25TbG90VmFsaWRhdGVOYW1lKGNvbnN0IGNoYXIgKm5hbWUs IGludCBlbGV2ZWwpCiAgKiAgICAgdXNlciB3aWxsIG9ubHkgZ2V0IGNvbW1pdCBwcmVwYXJlZC4K ICAqIGZhaWxvdmVyOiBJZiBlbmFibGVkLCBhbGxvd3MgdGhlIHNsb3QgdG8gYmUgc3luY2VkIHRv IHBoeXNpY2FsIHN0YW5kYnlzIHNvCiAgKiAgICAgdGhhdCBsb2dpY2FsIHJlcGxpY2F0aW9uIGNh biBiZSByZXN1bWVkIGFmdGVyIGZhaWxvdmVyLgorICogc3luY2VkOiBUcnVlIGlmIHRoZSBzbG90 IGlzIGNyZWF0ZWQgYnkgYSBzbG90c3luYyB3b3JrZXIuCiAgKi8KIHZvaWQKIFJlcGxpY2F0aW9u U2xvdENyZWF0ZShjb25zdCBjaGFyICpuYW1lLCBib29sIGRiX3NwZWNpZmljLAogCQkJCQkgIFJl cGxpY2F0aW9uU2xvdFBlcnNpc3RlbmN5IHBlcnNpc3RlbmN5LAotCQkJCQkgIGJvb2wgdHdvX3Bo YXNlLCBib29sIGZhaWxvdmVyKQorCQkJCQkgIGJvb2wgdHdvX3BoYXNlLCBib29sIGZhaWxvdmVy LCBib29sIHN5bmNlZCkKIHsKIAlSZXBsaWNhdGlvblNsb3QgKnNsb3QgPSBOVUxMOwogCWludAkJ CWk7CkBAIC0zMTUsNiArMzE2LDcgQEAgUmVwbGljYXRpb25TbG90Q3JlYXRlKGNvbnN0IGNoYXIg Km5hbWUsIGJvb2wgZGJfc3BlY2lmaWMsCiAJc2xvdC0+ZGF0YS50d29fcGhhc2UgPSB0d29fcGhh c2U7CiAJc2xvdC0+ZGF0YS50d29fcGhhc2VfYXQgPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAlzbG90 LT5kYXRhLmZhaWxvdmVyID0gZmFpbG92ZXI7CisJc2xvdC0+ZGF0YS5zeW5jZWQgPSBzeW5jZWQ7 CiAKIAkvKiBhbmQgdGhlbiBkYXRhIG9ubHkgcHJlc2VudCBpbiBzaGFyZWQgbWVtb3J5ICovCiAJ c2xvdC0+anVzdF9kaXJ0aWVkID0gZmFsc2U7CkBAIC02ODAsNiArNjgyLDE2IEBAIFJlcGxpY2F0 aW9uU2xvdERyb3AoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dhaXQpCiAKIAlSZXBsaWNhdGlv blNsb3RBY3F1aXJlKG5hbWUsIG5vd2FpdCk7CiAKKwkvKgorCSAqIERvIG5vdCBhbGxvdyB1c2Vy cyB0byBkcm9wIHRoZSBzbG90cyB3aGljaCBhcmUgY3VycmVudGx5IGJlaW5nIHN5bmNlZAorCSAq IGZyb20gdGhlIHByaW1hcnkgdG8gdGhlIHN0YW5kYnkuCisJICovCisJaWYgKFJlY292ZXJ5SW5Q cm9ncmVzcygpICYmIE15UmVwbGljYXRpb25TbG90LT5kYXRhLnN5bmNlZCkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RB VEUpLAorCQkJCWVycm1zZygiY2Fubm90IGRyb3AgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIiLCBu YW1lKSwKKwkJCQllcnJkZXRhaWwoIlRoaXMgc2xvdCBpcyBiZWluZyBzeW5jZWQgZnJvbSB0aGUg cHJpbWFyeSBzZXJ2ZXIuIikpOworCiAJUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKCk7CiB9 CiAKQEAgLTY5OSw2ICs3MTEsMTYgQEAgUmVwbGljYXRpb25TbG90QWx0ZXIoY29uc3QgY2hhciAq bmFtZSwgYm9vbCBmYWlsb3ZlcikKIAkJCQllcnJtc2coImNhbm5vdCB1c2UgJXMgd2l0aCBhIHBo eXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QiLAogCQkJCQkgICAiQUxURVJfUkVQTElDQVRJT05fU0xP VCIpKTsKIAorCS8qCisJICogRG8gbm90IGFsbG93IHVzZXJzIHRvIGFsdGVyIHRoZSBzbG90cyB3 aGljaCBhcmUgY3VycmVudGx5IGJlaW5nIHN5bmNlZAorCSAqIGZyb20gdGhlIHByaW1hcnkgdG8g dGhlIHN0YW5kYnkuCisJICovCisJaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpICYmIE15UmVwbGlj YXRpb25TbG90LT5kYXRhLnN5bmNlZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVS UkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCWVycm1zZygiY2Fu bm90IGFsdGVyIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwgbmFtZSksCisJCQkJZXJyZGV0YWls KCJUaGlzIHNsb3QgaXMgYmVpbmcgc3luY2VkIGZyb20gdGhlIHByaW1hcnkgc2VydmVyLiIpKTsK KwogCVNwaW5Mb2NrQWNxdWlyZSgmTXlSZXBsaWNhdGlvblNsb3QtPm11dGV4KTsKIAlNeVJlcGxp Y2F0aW9uU2xvdC0+ZGF0YS5mYWlsb3ZlciA9IGZhaWxvdmVyOwogCVNwaW5Mb2NrUmVsZWFzZSgm TXlSZXBsaWNhdGlvblNsb3QtPm11dGV4KTsKQEAgLTcxMSw3ICs3MzMsNyBAQCBSZXBsaWNhdGlv blNsb3RBbHRlcihjb25zdCBjaGFyICpuYW1lLCBib29sIGZhaWxvdmVyKQogLyoKICAqIFBlcm1h bmVudGx5IGRyb3AgdGhlIGN1cnJlbnRseSBhY3F1aXJlZCByZXBsaWNhdGlvbiBzbG90LgogICov Ci1zdGF0aWMgdm9pZAordm9pZAogUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKHZvaWQpCiB7 CiAJUmVwbGljYXRpb25TbG90ICpzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CkBAIC04NjcsOCAr ODg5LDggQEAgUmVwbGljYXRpb25TbG90TWFya0RpcnR5KHZvaWQpCiB9CiAKIC8qCi0gKiBDb252 ZXJ0IGEgc2xvdCB0aGF0J3MgbWFya2VkIGFzIFJTX0VQSEVNRVJBTCB0byBhIFJTX1BFUlNJU1RF TlQgc2xvdCwKLSAqIGd1YXJhbnRlZWluZyBpdCB3aWxsIGJlIHRoZXJlIGFmdGVyIGFuIGV2ZW50 dWFsIGNyYXNoLgorICogQ29udmVydCBhIHNsb3QgdGhhdCdzIG1hcmtlZCBhcyBSU19FUEhFTUVS QUwgb3IgUlNfVEVNUE9SQVJZIHRvIGEKKyAqIFJTX1BFUlNJU1RFTlQgc2xvdCwgZ3VhcmFudGVl aW5nIGl0IHdpbGwgYmUgdGhlcmUgYWZ0ZXIgYW4gZXZlbnR1YWwgY3Jhc2guCiAgKi8KIHZvaWQK IFJlcGxpY2F0aW9uU2xvdFBlcnNpc3Qodm9pZCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Nsb3RmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdGZ1bmNz LmMKaW5kZXggZWI2ODUwODliMy4uMzM4ZDA5MmU4NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xv dGZ1bmNzLmMKQEAgLTQzLDcgKzQzLDcgQEAgY3JlYXRlX3BoeXNpY2FsX3JlcGxpY2F0aW9uX3Ns b3QoY2hhciAqbmFtZSwgYm9vbCBpbW1lZGlhdGVseV9yZXNlcnZlLAogCS8qIGFjcXVpcmUgcmVw bGljYXRpb24gc2xvdCwgdGhpcyB3aWxsIGNoZWNrIGZvciBjb25mbGljdGluZyBuYW1lcyAqLwog CVJlcGxpY2F0aW9uU2xvdENyZWF0ZShuYW1lLCBmYWxzZSwKIAkJCQkJCSAgdGVtcG9yYXJ5ID8g UlNfVEVNUE9SQVJZIDogUlNfUEVSU0lTVEVOVCwgZmFsc2UsCi0JCQkJCQkgIGZhbHNlKTsKKwkJ CQkJCSAgZmFsc2UsIGZhbHNlKTsKIAogCWlmIChpbW1lZGlhdGVseV9yZXNlcnZlKQogCXsKQEAg LTEzNiw3ICsxMzYsNyBAQCBjcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KGNoYXIgKm5h bWUsIGNoYXIgKnBsdWdpbiwKIAkgKi8KIAlSZXBsaWNhdGlvblNsb3RDcmVhdGUobmFtZSwgdHJ1 ZSwKIAkJCQkJCSAgdGVtcG9yYXJ5ID8gUlNfVEVNUE9SQVJZIDogUlNfRVBIRU1FUkFMLCB0d29f cGhhc2UsCi0JCQkJCQkgIGZhaWxvdmVyKTsKKwkJCQkJCSAgZmFpbG92ZXIsIGZhbHNlKTsKIAog CS8qCiAJICogQ3JlYXRlIGxvZ2ljYWwgZGVjb2RpbmcgY29udGV4dCB0byBmaW5kIHN0YXJ0IHBv aW50IG9yLCBpZiB3ZSBkb24ndApAQCAtMjM3LDcgKzIzNyw3IEBAIHBnX2Ryb3BfcmVwbGljYXRp b25fc2xvdChQR19GVU5DVElPTl9BUkdTKQogRGF0dW0KIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90 cyhQR19GVU5DVElPTl9BUkdTKQogewotI2RlZmluZSBQR19HRVRfUkVQTElDQVRJT05fU0xPVFNf Q09MUyAxNgorI2RlZmluZSBQR19HRVRfUkVQTElDQVRJT05fU0xPVFNfQ09MUyAxNwogCVJldHVy blNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5mbzsK IAlYTG9nUmVjUHRyCWN1cnJsc247CiAJaW50CQkJc2xvdG5vOwpAQCAtNDE4LDIxICs0MTgsMjMg QEAgcGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCWJyZWFr OwogCiAJCQkJY2FzZSBSU19JTlZBTF9XQUxfUkVNT1ZFRDoKLQkJCQkJdmFsdWVzW2krK10gPSBD U3RyaW5nR2V0VGV4dERhdHVtKCJ3YWxfcmVtb3ZlZCIpOworCQkJCQl2YWx1ZXNbaSsrXSA9IENT dHJpbmdHZXRUZXh0RGF0dW0oU0xPVF9JTlZBTF9XQUxfUkVNT1ZFRF9URVhUKTsKIAkJCQkJYnJl YWs7CiAKIAkJCQljYXNlIFJTX0lOVkFMX0hPUklaT046Ci0JCQkJCXZhbHVlc1tpKytdID0gQ1N0 cmluZ0dldFRleHREYXR1bSgicm93c19yZW1vdmVkIik7CisJCQkJCXZhbHVlc1tpKytdID0gQ1N0 cmluZ0dldFRleHREYXR1bShTTE9UX0lOVkFMX0hPUklaT05fVEVYVCk7CiAJCQkJCWJyZWFrOwog CiAJCQkJY2FzZSBSU19JTlZBTF9XQUxfTEVWRUw6Ci0JCQkJCXZhbHVlc1tpKytdID0gQ1N0cmlu Z0dldFRleHREYXR1bSgid2FsX2xldmVsX2luc3VmZmljaWVudCIpOworCQkJCQl2YWx1ZXNbaSsr XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oU0xPVF9JTlZBTF9XQUxfTEVWRUxfVEVYVCk7CiAJCQkJ CWJyZWFrOwogCQkJfQogCQl9CiAKIAkJdmFsdWVzW2krK10gPSBCb29sR2V0RGF0dW0oc2xvdF9j b250ZW50cy5kYXRhLmZhaWxvdmVyKTsKIAorCQl2YWx1ZXNbaSsrXSA9IEJvb2xHZXREYXR1bShz bG90X2NvbnRlbnRzLmRhdGEuc3luY2VkKTsKKwogCQlBc3NlcnQoaSA9PSBQR19HRVRfUkVQTElD QVRJT05fU0xPVFNfQ09MUyk7CiAKIAkJdHVwbGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRS ZXN1bHQsIHJzaW5mby0+c2V0RGVzYywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL3dhbHJlY2VpdmVyZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHJlY2Vp dmVyZnVuY3MuYwppbmRleCA3M2E3ZDhmOTZjLi5kNDIwYTgzM2NkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi93YWxyZWNlaXZlcmZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vd2FscmVjZWl2ZXJmdW5jcy5jCkBAIC0zNDUsNiArMzQ1LDIyIEBAIEdldFdh bFJjdkZsdXNoUmVjUHRyKFhMb2dSZWNQdHIgKmxhdGVzdENodW5rU3RhcnQsIFRpbWVMaW5lSUQg KnJlY2VpdmVUTEkpCiAJcmV0dXJuIHJlY3B0cjsKIH0KIAorLyoKKyAqIFJldHVybnMgdGhlIGxh dGVzdCByZXBvcnRlZCBlbmQgb2YgV0FMIG9uIHRoZSBzZW5kZXIKKyAqLworWExvZ1JlY1B0cgor R2V0V2FsUmN2TGF0ZXN0V2FsRW5kKCkKK3sKKwlXYWxSY3ZEYXRhICp3YWxyY3YgPSBXYWxSY3Y7 CisJWExvZ1JlY1B0cglyZWNwdHI7CisKKwlTcGluTG9ja0FjcXVpcmUoJndhbHJjdi0+bXV0ZXgp OworCXJlY3B0ciA9IHdhbHJjdi0+bGF0ZXN0V2FsRW5kOworCVNwaW5Mb2NrUmVsZWFzZSgmd2Fs cmN2LT5tdXRleCk7CisKKwlyZXR1cm4gcmVjcHRyOworfQorCiAvKgogICogUmV0dXJucyB0aGUg bGFzdCsxIGJ5dGUgcG9zaXRpb24gdGhhdCB3YWxyZWNlaXZlciBoYXMgd3JpdHRlbi4KICAqIFRo aXMgcmV0dXJucyBhIHJlY2VudGx5IHdyaXR0ZW4gdmFsdWUgd2l0aG91dCB0YWtpbmcgYSBsb2Nr LgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRleCA3N2M4YmFhMzJhLi5jNjkyYWMz NTY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYworKysg Yi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAtMTIyNCw3ICsxMjI0LDcg QEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQog CXsKIAkJUmVwbGljYXRpb25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIGZhbHNlLAogCQkJCQkJ CSAgY21kLT50ZW1wb3JhcnkgPyBSU19URU1QT1JBUlkgOiBSU19QRVJTSVNURU5ULAotCQkJCQkJ CSAgZmFsc2UsIGZhbHNlKTsKKwkJCQkJCQkgIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwogCiAJCWlm IChyZXNlcnZlX3dhbCkKIAkJewpAQCAtMTI1NSw3ICsxMjU1LDcgQEAgQ3JlYXRlUmVwbGljYXRp b25TbG90KENyZWF0ZVJlcGxpY2F0aW9uU2xvdENtZCAqY21kKQogCQkgKi8KIAkJUmVwbGljYXRp b25TbG90Q3JlYXRlKGNtZC0+c2xvdG5hbWUsIHRydWUsCiAJCQkJCQkJICBjbWQtPnRlbXBvcmFy eSA/IFJTX1RFTVBPUkFSWSA6IFJTX0VQSEVNRVJBTCwKLQkJCQkJCQkgIHR3b19waGFzZSwgZmFp bG92ZXIpOworCQkJCQkJCSAgdHdvX3BoYXNlLCBmYWlsb3ZlciwgZmFsc2UpOwogCiAJCS8qCiAJ CSAqIERvIG9wdGlvbnMgY2hlY2sgZWFybHkgc28gdGhhdCB3ZSBjYW4gYmFpbCBiZWZvcmUgY2Fs bGluZyB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYyBiL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2lwY2kuYwppbmRleCBlNTExOWVkNTVkLi4wNGZlZDEwMDdl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9pcGNpLmMKKysrIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvaXBjaS5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAicmVw bGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgiCiAj aW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24v d29ya2VyX2ludGVybmFsLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRl ICJzdG9yYWdlL2RzbS5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCkBAIC0zNDIsNiArMzQz LDcgQEAgQ3JlYXRlT3JBdHRhY2hTaG1lbVN0cnVjdHModm9pZCkKIAlXYWxTdW1tYXJpemVyU2ht ZW1Jbml0KCk7CiAJUGdBcmNoU2htZW1Jbml0KCk7CiAJQXBwbHlMYXVuY2hlclNobWVtSW5pdCgp OworCVNsb3RTeW5jV29ya2VyU2htZW1Jbml0KCk7CiAKIAkvKgogCSAqIFNldCB1cCBvdGhlciBt b2R1bGVzIHRoYXQgbmVlZCBzb21lIHNoYXJlZCBtZW1vcnkgc3BhY2UKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYwpp bmRleCAxZWFhZjNjNmM1Li4xOWIwOGMxYjVmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29w L3Bvc3RncmVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCkBAIC0zMjg2LDYg KzMyODYsMTcgQEAgUHJvY2Vzc0ludGVycnVwdHModm9pZCkKIAkJCSAqLwogCQkJcHJvY19leGl0 KDEpOwogCQl9CisJCWVsc2UgaWYgKElzTG9naWNhbFNsb3RTeW5jV29ya2VyKCkpCisJCXsKKwkJ CWVsb2coREVCVUcxLAorCQkJCSAicmVwbGljYXRpb24gc2xvdCBzeW5jIHdvcmtlciBpcyBzaHV0 dGluZyBkb3duIGR1ZSB0byBhZG1pbmlzdHJhdG9yIGNvbW1hbmQiKTsKKworCQkJLyoKKwkJCSAq IFNsb3Qgc3luYyB3b3JrZXIgY2FuIGJlIHN0b3BwZWQgYXQgYW55IHRpbWUuIFVzZSBleGl0IHN0 YXR1cyAxCisJCQkgKiBzbyB0aGUgYmFja2dyb3VuZCB3b3JrZXIgaXMgcmVzdGFydGVkLgorCQkJ ICovCisJCQlwcm9jX2V4aXQoMSk7CisJCX0KIAkJZWxzZSBpZiAoSXNCYWNrZ3JvdW5kV29ya2Vy KQogCQkJZXJlcG9ydChGQVRBTCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9BRE1JTl9TSFVURE9X TiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50X25h bWVzLnR4dCBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0 CmluZGV4IDA4OGViOTc3ZDQuLmFlZTVmZTczMTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0CkBAIC01Myw2ICs1Myw4IEBAIExPR0lDQUxf QVBQTFlfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNhdGlvbiBh cHBseSBwcm9jZXNzLiIKIExPR0lDQUxfTEFVTkNIRVJfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxv b3Agb2YgbG9naWNhbCByZXBsaWNhdGlvbiBsYXVuY2hlciBwcm9jZXNzLiIKIExPR0lDQUxfUEFS QUxMRUxfQVBQTFlfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2YgbG9naWNhbCByZXBsaWNh dGlvbiBwYXJhbGxlbCBhcHBseSBwcm9jZXNzLiIKIFJFQ09WRVJZX1dBTF9TVFJFQU0JIldhaXRp bmcgaW4gbWFpbiBsb29wIG9mIHN0YXJ0dXAgcHJvY2VzcyBmb3IgV0FMIHRvIGFycml2ZSwgZHVy aW5nIHN0cmVhbWluZyByZWNvdmVyeS4iCitSRVBMX1NMT1RTWU5DX01BSU4JIldhaXRpbmcgaW4g bWFpbiBsb29wIG9mIHNsb3Qgc3luYyB3b3JrZXIuIgorUkVQTF9TTE9UU1lOQ19QUklNQVJZX0NB VENIVVAJIldhaXRpbmcgZm9yIHRoZSBwcmltYXJ5IHRvIGNhdGNoLXVwLCBpbiBzbG90IHN5bmMg d29ya2VyLiIKIFNZU0xPR0dFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4gbG9vcCBvZiBzeXNsb2dn ZXIgcHJvY2Vzcy4iCiBXQUxfUkVDRUlWRVJfTUFJTgkiV2FpdGluZyBpbiBtYWluIGxvb3Agb2Yg V0FMIHJlY2VpdmVyIHByb2Nlc3MuIgogV0FMX1NFTkRFUl9NQUlOCSJXYWl0aW5nIGluIG1haW4g bG9vcCBvZiBXQUwgc2VuZGVyIHByb2Nlc3MuIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMu YwppbmRleCBlNTNlYmM2ZGMyLi4wZjVlYzYzZGUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190 YWJsZXMuYwpAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxs YXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJyZXBs aWNhdGlvbi9zeW5jcmVwLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd29ya2VyX2ludGVybmFs LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9idWZtZ3IuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xhcmdl X29iamVjdC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcGdfc2htZW0uaCIKQEAgLTIwNDQsNiArMjA0 NSwxNSBAQCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlOVUxM LCBOVUxMLCBOVUxMCiAJfSwKIAorCXsKKwkJeyJlbmFibGVfc3luY3Nsb3QiLCBQR0NfUE9TVE1B U1RFUiwgUkVQTElDQVRJT05fU1RBTkRCWSwKKwkJCWdldHRleHRfbm9vcCgiRW5hYmxlcyBhIHBo eXNpY2FsIHN0YW5kYnkgdG8gc3luY2hyb25pemUgbG9naWNhbCBmYWlsb3ZlciBzbG90cyBmcm9t IHRoZSBwcmltYXJ5IHNlcnZlci4iKSwKKwkJfSwKKwkJJmVuYWJsZV9zeW5jc2xvdCwKKwkJZmFs c2UsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCiAJLyogRW5kLW9mLWxpc3QgbWFya2VyICov CiAJewogCQl7TlVMTCwgMCwgMCwgTlVMTCwgTlVMTH0sIE5VTEwsIGZhbHNlLCBOVUxMLCBOVUxM LCBOVUxMCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29u Zi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUK aW5kZXggYjI4MDljNzExYS4uMTM2YmU5MTJlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtMzYxLDYgKzM2MSw3IEBACiAjd2FsX3JldHJp ZXZlX3JldHJ5X2ludGVydmFsID0gNXMJIyB0aW1lIHRvIHdhaXQgYmVmb3JlIHJldHJ5aW5nIHRv CiAJCQkJCSMgcmV0cmlldmUgV0FMIGFmdGVyIGEgZmFpbGVkIGF0dGVtcHQKICNyZWNvdmVyeV9t aW5fYXBwbHlfZGVsYXkgPSAwCQkjIG1pbmltdW0gZGVsYXkgZm9yIGFwcGx5aW5nIGNoYW5nZXMg ZHVyaW5nIHJlY292ZXJ5CisjZW5hYmxlX3N5bmNzbG90ID0gb2ZmCQkJIyBlbmFibGVzIHNsb3Qg c3luY2hyb25pemF0aW9uIG9uIHRoZSBwaHlzaWNhbCBzdGFuZGJ5IGZyb20gdGhlIHByaW1hcnkK IAogIyAtIFN1YnNjcmliZXJzIC0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZjQwNzI2 YzRmNy4uYzQzZDdjMDZmMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMTExNSw5ICsx MTExNSw5IEBACiAgIHByb25hbWUgPT4gJ3BnX2dldF9yZXBsaWNhdGlvbl9zbG90cycsIHByb3Jv d3MgPT4gJzEwJywgcHJvaXNzdHJpY3QgPT4gJ2YnLAogICBwcm9yZXRzZXQgPT4gJ3QnLCBwcm92 b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCiAgIHByb2FyZ3R5cGVzID0+ ICcnLAotICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSx0ZXh0LG9pZCxib29sLGJvb2ws aW50NCx4aWQseGlkLHBnX2xzbixwZ19sc24sdGV4dCxpbnQ4LGJvb2wsdGV4dCxib29sfScsCi0g IHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBw cm9hcmduYW1lcyA9PiAne3Nsb3RfbmFtZSxwbHVnaW4sc2xvdF90eXBlLGRhdG9pZCx0ZW1wb3Jh cnksYWN0aXZlLGFjdGl2ZV9waWQseG1pbixjYXRhbG9nX3htaW4scmVzdGFydF9sc24sY29uZmly bWVkX2ZsdXNoX2xzbix3YWxfc3RhdHVzLHNhZmVfd2FsX3NpemUsdHdvX3BoYXNlLGNvbmZsaWN0 X3JlYXNvbixmYWlsb3Zlcn0nLAorICBwcm9hbGxhcmd0eXBlcyA9PiAne25hbWUsbmFtZSx0ZXh0 LG9pZCxib29sLGJvb2wsaW50NCx4aWQseGlkLHBnX2xzbixwZ19sc24sdGV4dCxpbnQ4LGJvb2ws dGV4dCxib29sLGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUscGx1Z2luLHNs b3RfdHlwZSxkYXRvaWQsdGVtcG9yYXJ5LGFjdGl2ZSxhY3RpdmVfcGlkLHhtaW4sY2F0YWxvZ194 bWluLHJlc3RhcnRfbHNuLGNvbmZpcm1lZF9mbHVzaF9sc24sd2FsX3N0YXR1cyxzYWZlX3dhbF9z aXplLHR3b19waGFzZSxjb25mbGljdF9yZWFzb24sZmFpbG92ZXIsc3luY2VkfScsCiAgIHByb3Ny YyA9PiAncGdfZ2V0X3JlcGxpY2F0aW9uX3Nsb3RzJyB9LAogeyBvaWQgPT4gJzM3ODYnLCBkZXNj ciA9PiAnc2V0IHVwIGEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90JywKICAgcHJvbmFtZSA9PiAn cGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdCcsIHByb3ZvbGF0aWxlID0+ICd2JywK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaCBiL3NyYy9pbmNs dWRlL3Bvc3RtYXN0ZXIvYmd3b3JrZXIuaAppbmRleCAyMmZjNDllYzI3Li43MDkyZmM3MmM2IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3N0bWFzdGVyL2Jnd29ya2VyLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcG9zdG1hc3Rlci9iZ3dvcmtlci5oCkBAIC03OSw2ICs3OSw3IEBAIHR5cGVkZWYgZW51 bQogCUJnV29ya2VyU3RhcnRfUG9zdG1hc3RlclN0YXJ0LAogCUJnV29ya2VyU3RhcnRfQ29uc2lz dGVudFN0YXRlLAogCUJnV29ya2VyU3RhcnRfUmVjb3ZlcnlGaW5pc2hlZCwKKwlCZ1dvcmtlclN0 YXJ0X0NvbnNpc3RlbnRTdGF0ZV9Ib3RTdGFuZGJ5LAogfSBCZ1dvcmtlclN0YXJ0VGltZTsKIAog I2RlZmluZSBCR1dfREVGQVVMVF9SRVNUQVJUX0lOVEVSVkFMCTYwCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmggYi9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9sb2dpY2Fsd29ya2VyLmgKaW5kZXggYTE4ZDc5ZDFiMi4uYmJlMDQyMjZkYiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oCisrKyBiL3NyYy9p bmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWx3b3JrZXIuaApAQCAtMjIsNiArMjIsNyBAQCBleHRl cm4gdm9pZCBUYWJsZXN5bmNXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKTsKIAogZXh0ZXJuIGJv b2wgSXNMb2dpY2FsV29ya2VyKHZvaWQpOwogZXh0ZXJuIGJvb2wgSXNMb2dpY2FsUGFyYWxsZWxB cHBseVdvcmtlcih2b2lkKTsKK2V4dGVybiBib29sIElzTG9naWNhbFNsb3RTeW5jV29ya2VyKHZv aWQpOwogCiBleHRlcm4gdm9pZCBIYW5kbGVQYXJhbGxlbEFwcGx5TWVzc2FnZUludGVycnVwdCh2 b2lkKTsKIGV4dGVybiB2b2lkIEhhbmRsZVBhcmFsbGVsQXBwbHlNZXNzYWdlcyh2b2lkKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3Jl cGxpY2F0aW9uL3Nsb3QuaAppbmRleCA1ODVjY2JiNTA0Li5mODFiZWY5ZTQyIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vc2xvdC5oCkBAIC01Miw2ICs1MiwxNCBAQCB0eXBlZGVmIGVudW0gUmVwbGljYXRpb25T bG90SW52YWxpZGF0aW9uQ2F1c2UKIAlSU19JTlZBTF9XQUxfTEVWRUwsCiB9IFJlcGxpY2F0aW9u U2xvdEludmFsaWRhdGlvbkNhdXNlOwogCisvKgorICogVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3Ig J2NvbmZsaWN0X3JlYXNvbicgcmV0dXJuZWQgaW4KKyAqIHBnX2dldF9yZXBsaWNhdGlvbl9zbG90 cy4KKyAqLworI2RlZmluZSBTTE9UX0lOVkFMX1dBTF9SRU1PVkVEX1RFWFQgIndhbF9yZW1vdmVk IgorI2RlZmluZSBTTE9UX0lOVkFMX0hPUklaT05fVEVYVCAgICAgInJvd3NfcmVtb3ZlZCIKKyNk ZWZpbmUgU0xPVF9JTlZBTF9XQUxfTEVWRUxfVEVYVCAgICJ3YWxfbGV2ZWxfaW5zdWZmaWNpZW50 IgorCiAvKgogICogT24tRGlzayBkYXRhIG9mIGEgcmVwbGljYXRpb24gc2xvdCwgcHJlc2VydmVk IGFjcm9zcyByZXN0YXJ0cy4KICAqLwpAQCAtMTEyLDYgKzEyMCwxMSBAQCB0eXBlZGVmIHN0cnVj dCBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW50RGF0YQogCS8qIHBsdWdpbiBuYW1lICovCiAJTmFt ZURhdGEJcGx1Z2luOwogCisJLyoKKwkgKiBXYXMgdGhpcyBzbG90IHN5bmNocm9uaXplZCBmcm9t IHRoZSBwcmltYXJ5IHNlcnZlcj8KKwkgKi8KKwljaGFyCQlzeW5jZWQ7CisKIAkvKgogCSAqIElz IHRoaXMgYSBmYWlsb3ZlciBzbG90IChzeW5jIGNhbmRpZGF0ZSBmb3IgcGh5c2ljYWwgc3RhbmRi eXMpPyBPbmx5CiAJICogcmVsZXZhbnQgZm9yIGxvZ2ljYWwgc2xvdHMgb24gdGhlIHByaW1hcnkg c2VydmVyLgpAQCAtMjI0LDkgKzIzNywxMSBAQCBleHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3Rz U2htZW1Jbml0KHZvaWQpOwogLyogbWFuYWdlbWVudCBvZiBpbmRpdmlkdWFsIHNsb3RzICovCiBl eHRlcm4gdm9pZCBSZXBsaWNhdGlvblNsb3RDcmVhdGUoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBk Yl9zcGVjaWZpYywKIAkJCQkJCQkJICBSZXBsaWNhdGlvblNsb3RQZXJzaXN0ZW5jeSBwZXJzaXN0 ZW5jeSwKLQkJCQkJCQkJICBib29sIHR3b19waGFzZSwgYm9vbCBmYWlsb3Zlcik7CisJCQkJCQkJ CSAgYm9vbCB0d29fcGhhc2UsIGJvb2wgZmFpbG92ZXIsCisJCQkJCQkJCSAgYm9vbCBzeW5jZWQp OwogZXh0ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90UGVyc2lzdCh2b2lkKTsKIGV4dGVybiB2b2lk IFJlcGxpY2F0aW9uU2xvdERyb3AoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBub3dhaXQpOworZXh0 ZXJuIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcEFjcXVpcmVkKHZvaWQpOwogZXh0ZXJuIHZvaWQg UmVwbGljYXRpb25TbG90QWx0ZXIoY29uc3QgY2hhciAqbmFtZSwgYm9vbCBmYWlsb3Zlcik7CiAK IGV4dGVybiB2b2lkIFJlcGxpY2F0aW9uU2xvdEFjcXVpcmUoY29uc3QgY2hhciAqbmFtZSwgYm9v bCBub3dhaXQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2FscmVjZWl2 ZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHJlY2VpdmVyLmgKaW5kZXggZjU2NmE5 OWJhMS4uNWU5NDJjYjRmYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fs cmVjZWl2ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxyZWNlaXZlci5oCkBA IC0yNzksNiArMjc5LDIxIEBAIHR5cGVkZWYgdm9pZCAoKndhbHJjdl9nZXRfc2VuZGVyaW5mb19m bikgKFdhbFJlY2VpdmVyQ29ubiAqY29ubiwKIHR5cGVkZWYgY2hhciAqKCp3YWxyY3ZfaWRlbnRp Znlfc3lzdGVtX2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25uLAogCQkJCQkJCQkJCQlUaW1lTGlu ZUlEICpwcmltYXJ5X3RsaSk7CiAKKy8qCisgKiB3YWxyY3ZfZ2V0X2RiaW5mb19mb3JfZmFpbG92 ZXJfc2xvdHNfZm4KKyAqCisgKiBSdW4gTElTVF9EQklEX0ZPUl9GQUlMT1ZFUl9TTE9UUyBvbiBw cmltYXJ5IHNlcnZlciB0byBnZXQgdGhlCisgKiBsaXN0IG9mIHVuaXF1ZSBEQklEcyBmb3IgZmFp bG92ZXIgbG9naWNhbCBzbG90cworICovCit0eXBlZGVmIExpc3QgKigqd2FscmN2X2dldF9kYmlu Zm9fZm9yX2ZhaWxvdmVyX3Nsb3RzX2ZuKSAoV2FsUmVjZWl2ZXJDb25uICpjb25uKTsKKworLyoK KyAqIHdhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm9fZm4KKyAqCisgKiBSZXR1cm5zIHRo ZSBkYmlkIGZyb20gdGhlIHByaW1hcnlfY29ubmluZm8KKyAqLwordHlwZWRlZiBjaGFyICooKndh bHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm9fZm4pIChjb25zdCBjaGFyICpjb25uaW5mbyk7 CisKIC8qCiAgKiB3YWxyY3Zfc2VydmVyX3ZlcnNpb25fZm4KICAqCkBAIC00MDMsNiArNDE4LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlCiAJd2FscmN2X2dldF9j b25uaW5mb19mbiB3YWxyY3ZfZ2V0X2Nvbm5pbmZvOwogCXdhbHJjdl9nZXRfc2VuZGVyaW5mb19m biB3YWxyY3ZfZ2V0X3NlbmRlcmluZm87CiAJd2FscmN2X2lkZW50aWZ5X3N5c3RlbV9mbiB3YWxy Y3ZfaWRlbnRpZnlfc3lzdGVtOworCXdhbHJjdl9nZXRfZGJuYW1lX2Zyb21fY29ubmluZm9fZm4g d2FscmN2X2dldF9kYm5hbWVfZnJvbV9jb25uaW5mbzsKIAl3YWxyY3Zfc2VydmVyX3ZlcnNpb25f Zm4gd2FscmN2X3NlcnZlcl92ZXJzaW9uOwogCXdhbHJjdl9yZWFkdGltZWxpbmVoaXN0b3J5Zmls ZV9mbiB3YWxyY3ZfcmVhZHRpbWVsaW5laGlzdG9yeWZpbGU7CiAJd2FscmN2X3N0YXJ0c3RyZWFt aW5nX2ZuIHdhbHJjdl9zdGFydHN0cmVhbWluZzsKQEAgLTQyOCw2ICs0NDQsOCBAQCBleHRlcm4g UEdETExJTVBPUlQgV2FsUmVjZWl2ZXJGdW5jdGlvbnNUeXBlICpXYWxSZWNlaXZlckZ1bmN0aW9u czsKIAlXYWxSZWNlaXZlckZ1bmN0aW9ucy0+d2FscmN2X2dldF9zZW5kZXJpbmZvKGNvbm4sIHNl bmRlcl9ob3N0LCBzZW5kZXJfcG9ydCkKICNkZWZpbmUgd2FscmN2X2lkZW50aWZ5X3N5c3RlbShj b25uLCBwcmltYXJ5X3RsaSkgXAogCVdhbFJlY2VpdmVyRnVuY3Rpb25zLT53YWxyY3ZfaWRlbnRp Znlfc3lzdGVtKGNvbm4sIHByaW1hcnlfdGxpKQorI2RlZmluZSB3YWxyY3ZfZ2V0X2RibmFtZV9m cm9tX2Nvbm5pbmZvKGNvbm5pbmZvKSBcCisJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9n ZXRfZGJuYW1lX2Zyb21fY29ubmluZm8oY29ubmluZm8pCiAjZGVmaW5lIHdhbHJjdl9zZXJ2ZXJf dmVyc2lvbihjb25uKSBcCiAJV2FsUmVjZWl2ZXJGdW5jdGlvbnMtPndhbHJjdl9zZXJ2ZXJfdmVy c2lvbihjb25uKQogI2RlZmluZSB3YWxyY3ZfcmVhZHRpbWVsaW5laGlzdG9yeWZpbGUoY29ubiwg dGxpLCBmaWxlbmFtZSwgY29udGVudCwgc2l6ZSkgXApAQCAtNDg1LDYgKzUwMyw3IEBAIGV4dGVy biB2b2lkIFJlcXVlc3RYTG9nU3RyZWFtaW5nKFRpbWVMaW5lSUQgdGxpLCBYTG9nUmVjUHRyIHJl Y3B0ciwKIAkJCQkJCQkJIGJvb2wgY3JlYXRlX3RlbXBfc2xvdCk7CiBleHRlcm4gWExvZ1JlY1B0 ciBHZXRXYWxSY3ZGbHVzaFJlY1B0cihYTG9nUmVjUHRyICpsYXRlc3RDaHVua1N0YXJ0LCBUaW1l TGluZUlEICpyZWNlaXZlVExJKTsKIGV4dGVybiBYTG9nUmVjUHRyIEdldFdhbFJjdldyaXRlUmVj UHRyKHZvaWQpOworZXh0ZXJuIFhMb2dSZWNQdHIgR2V0V2FsUmN2TGF0ZXN0V2FsRW5kKHZvaWQp OwogZXh0ZXJuIGludAlHZXRSZXBsaWNhdGlvbkFwcGx5RGVsYXkodm9pZCk7CiBleHRlcm4gaW50 CUdldFJlcGxpY2F0aW9uVHJhbnNmZXJMYXRlbmN5KHZvaWQpOwogCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaCBiL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCmluZGV4IDUxNWFlZmQ1MTkuLjIxNjc3MjA5NzEgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCisrKyBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dvcmtlcl9pbnRlcm5hbC5oCkBAIC0yMzcsNiArMjM3 LDExIEBAIGV4dGVybiBQR0RMTElNUE9SVCBib29sIGluX3JlbW90ZV90cmFuc2FjdGlvbjsKIAog ZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgSW5pdGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKKy8qIFNs b3Qgc3luYyB3b3JrZXIgb2JqZWN0cyAqLworZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKlByaW1h cnlDb25uSW5mbzsKK2V4dGVybiBQR0RMTElNUE9SVCBjaGFyICpQcmltYXJ5U2xvdE5hbWU7Citl eHRlcm4gUEdETExJTVBPUlQgYm9vbCBlbmFibGVfc3luY3Nsb3Q7CisKIGV4dGVybiB2b2lkIGxv Z2ljYWxyZXBfd29ya2VyX2F0dGFjaChpbnQgc2xvdCk7CiBleHRlcm4gTG9naWNhbFJlcFdvcmtl ciAqbG9naWNhbHJlcF93b3JrZXJfZmluZChPaWQgc3ViaWQsIE9pZCByZWxpZCwKIAkJCQkJCQkJ CQkJCWJvb2wgb25seV9ydW5uaW5nKTsKQEAgLTMyNSw2ICszMzAsMTEgQEAgZXh0ZXJuIHZvaWQg cGFfZGVjcl9hbmRfd2FpdF9zdHJlYW1fYmxvY2sodm9pZCk7CiBleHRlcm4gdm9pZCBwYV94YWN0 X2ZpbmlzaChQYXJhbGxlbEFwcGx5V29ya2VySW5mbyAqd2luZm8sCiAJCQkJCQkgICBYTG9nUmVj UHRyIHJlbW90ZV9sc24pOwogCitleHRlcm4gdm9pZCBSZXBsU2xvdFN5bmNXb3JrZXJNYWluKERh dHVtIG1haW5fYXJnKTsKK2V4dGVybiB2b2lkIFNsb3RTeW5jV29ya2VyUmVnaXN0ZXIodm9pZCk7 CitleHRlcm4gdm9pZCBTaHV0RG93blNsb3RTeW5jKHZvaWQpOworZXh0ZXJuIHZvaWQgU2xvdFN5 bmNXb3JrZXJTaG1lbUluaXQodm9pZCk7CisKICNkZWZpbmUgaXNQYXJhbGxlbEFwcGx5V29ya2Vy KHdvcmtlcikgKCh3b3JrZXIpLT5pbl91c2UgJiYgXAogCQkJCQkJCQkJICAgKHdvcmtlciktPnR5 cGUgPT0gV09SS0VSVFlQRV9QQVJBTExFTF9BUFBMWSkKICNkZWZpbmUgaXNUYWJsZXN5bmNXb3Jr ZXIod29ya2VyKSAoKHdvcmtlciktPmluX3VzZSAmJiBcCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwgYi9zcmMvdGVzdC9y ZWNvdmVyeS90LzA1MF9zdGFuZGJ5X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKaW5kZXggNjQ2Mjkz YzM5ZS4uYWVlYjE5YTA1MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wNTBfc3Rh bmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUw X3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbApAQCAtODQsNiArODQsMTY5IEBAIGlzKCAk cHVibGlzaGVyLT5zYWZlX3BzcWwoCiAJInQiLAogCSdsb2dpY2FsIHNsb3QgaGFzIGZhaWxvdmVy IHRydWUgb24gdGhlIHB1Ymxpc2hlcicpOwogCi0kc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEiKTsKKyRzdWJzY3JpYmVy MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1 YjEgRU5BQkxFIik7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjIFRlc3QgbG9naWNhbCBmYWlsb3ZlciBzbG90cyBvbiB0aGUgc3RhbmRieQor IyBDb25maWd1cmUgc3RhbmRieTEgdG8gcmVwbGljYXRlIGFuZCBzeW5jaHJvbml6ZSBsb2dpY2Fs IHNsb3RzIGNvbmZpZ3VyZWQKKyMgZm9yIGZhaWxvdmVyIG9uIHRoZSBwcmltYXJ5CisjCisjICAg ICAgICAgICAgICBmYWlsb3ZlciBzbG90IGxzdWIxX3Nsb3QtPnwgLS0tLT4gc3Vic2NyaWJlcjEg KGNvbm5lY3RlZCB2aWEgbG9naWNhbCByZXBsaWNhdGlvbikKKyMgcHJpbWFyeSAtLS0+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorIyAgICAgICAgICAgICAgcGh5c2ljYWwgc2xvdCBzYjFf c2xvdC0tLT58IC0tLS0+IHN0YW5kYnkxIChjb25uZWN0ZWQgdmlhIHN0cmVhbWluZyByZXBsaWNh dGlvbikKKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgbHN1YjFfc2xvdChzeW5jZWRfc2xvdCkKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK215ICRwcmltYXJ5ID0gJHB1Ymxpc2hlcjsK K215ICRiYWNrdXBfbmFtZSA9ICdiYWNrdXAnOworJHByaW1hcnktPmJhY2t1cCgkYmFja3VwX25h bWUpOworCisjIENyZWF0ZSBhIHN0YW5kYnkKK215ICRzdGFuZGJ5MSA9IFBvc3RncmVTUUw6OlRl c3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRieTEnKTsKKyRzdGFuZGJ5MS0+aW5pdF9mcm9tX2JhY2t1 cCgKKwkkcHJpbWFyeSwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNf cmVzdG9yaW5nID0+IDEpOworCitteSAkY29ubnN0cl8xID0gJHByaW1hcnktPmNvbm5zdHI7Cisk c3RhbmRieTEtPmFwcGVuZF9jb25mKAorCSdwb3N0Z3Jlc3FsLmNvbmYnLCBxcSgKK2VuYWJsZV9z eW5jc2xvdCA9IHRydWUKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24KK3ByaW1hcnlfc2xvdF9u YW1lID0gJ3NiMV9zbG90JworcHJpbWFyeV9jb25uaW5mbyA9ICckY29ubnN0cl8xIGRibmFtZT1w b3N0Z3JlcycKKykpOworCiskcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLAorCXF7U0VMRUNUIHBn X2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdzYjFfc2xvdCcpO30pOworCitteSAk c3RhbmRieTFfY29ubmluZm8gPSAkc3RhbmRieTEtPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jl cyc7CisKKyMgV2FpdCBmb3IgdGhlIHN0YW5kYnkgdG8gc3RhcnQgc3luYworJHN0YW5kYnkxLT5z dGFydDsKKworIyBHZW5lcmF0ZSBhIGxvZyB0byB0cmlnZ2VyIHRoZSB3YWxzZW5kZXIgdG8gc2Vu ZCBtZXNzYWdlcyB0byB0aGUgd2FscmVjZWl2ZXIKKyMgd2hpY2ggd2lsbCB1cGRhdGUgV2FsUmN2 LT5sYXRlc3RXYWxFbmQgdG8gYSB2YWxpZCBudW1iZXIuCiskcHJpbWFyeS0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICJTRUxFQ1QgcGdfbG9nX3N0YW5kYnlfc25hcHNob3QoKTsiKTsKKworIyBXYWl0 IGZvciB0aGUgc3RhbmRieSB0byBmaW5pc2ggc3luYworbXkgJG9mZnNldCA9IC1zICRzdGFuZGJ5 MS0+bG9nZmlsZTsKKyRzdGFuZGJ5MS0+d2FpdF9mb3JfbG9nKAorCXFyL0xPRzogKCBbQS1aMC05 XSs6KT8gbmV3bHkgbG9jYWxseSBjcmVhdGVkIHNsb3QgXCJsc3ViMV9zbG90XCIgaXMgc3luYy1y ZWFkeSBub3cvLAorCSRvZmZzZXQpOworCisjIENvbmZpcm0gdGhhdCBsb2dpY2FsIGZhaWxvdmVy IHNsb3QgaXMgY3JlYXRlZCBvbiB0aGUgc3RhbmRieSBhbmQgaXMgc3luYworIyByZWFkeS4KK2lz KCRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxFQ1QgZmFpbG92ZXIsIHN5 bmNlZCBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9z bG90Jzt9KSwKKwkidHx0IiwKKwknbG9naWNhbCBzbG90IGhhcyBmYWlsb3ZlciBhcyB0cnVlIGFu ZCBzeW5jZWQgYXMgdHJ1ZSBvbiBzdGFuZGJ5Jyk7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFRlc3QgdG8gY29uZmlybSB0aGF0IHJlc3Rh cnRfbHNuIGFuZCBjb25maXJtZWRfZmx1c2hfbHNuIG9mIHRoZSBsb2dpY2FsIHNsb3QKKyMgb24g dGhlIHByaW1hcnkgaXMgc3luY2VkIHRvIHRoZSBzdGFuZGJ5CisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIEluc2VydCBkYXRhIG9uIHRoZSBw cmltYXJ5CiskcHJpbWFyeS0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxWworCUNSRUFURSBU QUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7CisJSU5TRVJUIElOVE8gdGFiX2ludCBT RUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKTsKK10pOworCiskc3Vic2NyaWJlcjEtPnNhZmVf cHNxbCgKKwkncG9zdGdyZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAoYSBpbnQgUFJJ TUFSWSBLRVkpOworCUFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBSRUZSRVNIIFBV QkxJQ0FUSU9OOworXSk7CisKKyRzdWJzY3JpYmVyMS0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5 bmM7CisKKyMgRG8gbm90IGFsbG93IGFueSBmdXJ0aGVyIGFkdmFuY2VtZW50IG9mIHRoZSByZXN0 YXJ0X2xzbiBhbmQKKyMgY29uZmlybWVkX2ZsdXNoX2xzbiBmb3IgdGhlIGxzdWIxX3Nsb3QuCisk c3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfbXlzdWIxIERJU0FCTEUiKTsKKworIyBXYWl0IGZvciB0aGUgcmVwbGljYXRpb24gc2xv dCB0byBiZWNvbWUgaW5hY3RpdmUgb24gdGhlIHB1Ymxpc2hlcgorJHByaW1hcnktPnBvbGxfcXVl cnlfdW50aWwoCisJJ3Bvc3RncmVzJywKKwkiU0VMRUNUIENPVU5UKCopIEZST00gcGdfY2F0YWxv Zy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnbHN1YjFfc2xvdCcgQU5E IGFjdGl2ZT0nZiciLAorCTEpOworCisjIEdldCB0aGUgcmVzdGFydF9sc24gZm9yIHRoZSBsb2dp Y2FsIHNsb3QgbHN1YjFfc2xvdCBvbiB0aGUgcHJpbWFyeQorbXkgJHByaW1hcnlfcmVzdGFydF9s c24gPSAkcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCByZXN0YXJ0X2xz biBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90 JzsiKTsKKworIyBHZXQgdGhlIGNvbmZpcm1lZF9mbHVzaF9sc24gZm9yIHRoZSBsb2dpY2FsIHNs b3QgbHN1YjFfc2xvdCBvbiB0aGUgcHJpbWFyeQorbXkgJHByaW1hcnlfZmx1c2hfbHNuID0gJHBy aW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY29uZmlybWVkX2ZsdXNoX2xz biBmcm9tIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdsc3ViMV9zbG90 JzsiKTsKKworIyBDb25maXJtIHRoYXQgcmVzdGFydF9sc24gYW5kIG9mIGNvbmZpcm1lZF9mbHVz aF9sc24gbHN1YjFfc2xvdCBzbG90IGFyZSBzeW5jZWQKKyMgdG8gdGhlIHN0YW5kYnkKK29rKCAk c3RhbmRieTEtPnBvbGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3JlcycsCisJCSJTRUxFQ1QgJyRw cmltYXJ5X3Jlc3RhcnRfbHNuJyA9IHJlc3RhcnRfbHNuIEFORCAnJHByaW1hcnlfZmx1c2hfbHNu JyA9IGNvbmZpcm1lZF9mbHVzaF9sc24gZnJvbSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBz bG90X25hbWUgPSAnbHN1YjFfc2xvdCc7IiksCisJJ3Jlc3RhcnRfbHNuIGFuZCBjb25maXJtZWRf Zmx1c2hfbHNuIG9mIHNsb3QgbHN1YjFfc2xvdCBzeW5jZWQgdG8gc3RhbmRieScpOworCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRo YXQgYSBzeW5jaHJvbml6ZWQgc2xvdCBjYW4gbm90IGJlIGRlY29kZWQsIGFsdGVyZWQgb3IgZHJv cHBlZCBieSB0aGUgdXNlcgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworIyBEaXNhYmxlIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHRlbXBvcmFyaWx5 IHRvIHN0b3Agc2xvdCBzeW5jIHdvcmtlciBvdGhlcndpc2UKKyMgdGhlIGNvbmNlcm5lZCB0ZXN0 aW5nIHNjZW5hcmlvcyBoZXJlIG1heSBiZSBpbnRlcnJ1cHRlZCBieSBkaWZmZXJlbnQgZXJyb3I6 CisjICdFUlJPUjogIHJlcGxpY2F0aW9uIHNsb3QgaXMgYWN0aXZlIGZvciBQSUQgLi4nCisKKyRz dGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdBTFRFUiBTWVNURU0gU0VUIGhvdF9zdGFu ZGJ5X2ZlZWRiYWNrID0gb2ZmOycpOworJHN0YW5kYnkxLT5yZXN0YXJ0OworCisjIEF0dGVtcHRp bmcgdG8gcGVyZm9ybSBsb2dpY2FsIGRlY29kaW5nIG9uIGEgc3luY2VkIHNsb3Qgc2hvdWxkIHJl c3VsdCBpbiBhbiBlcnJvcgorbXkgKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5k YnkxLT5wc3FsKCdwb3N0Z3JlcycsCisJInNlbGVjdCAqIGZyb20gcGdfbG9naWNhbF9zbG90X2dl dF9jaGFuZ2VzKCdsc3ViMV9zbG90JyxOVUxMLE5VTEwpOyIpOworb2soJHN0ZGVyciA9fiAvRVJS T1I6ICBjYW5ub3QgdXNlIHJlcGxpY2F0aW9uIHNsb3QgImxzdWIxX3Nsb3QiIGZvciBsb2dpY2Fs IGRlY29kaW5nLywKKwkibG9naWNhbCBkZWNvZGluZyBpcyBub3QgYWxsb3dlZCBvbiBzeW5jZWQg c2xvdCIpOworCisjIEF0dGVtcHRpbmcgdG8gYWx0ZXIgYSBzeW5jZWQgc2xvdCBzaG91bGQgcmVz dWx0IGluIGFuIGVycm9yCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkc3RhbmRieTEt PnBzcWwoCisgICAgJ3Bvc3RncmVzJywKKyAgICBxcVtBTFRFUl9SRVBMSUNBVElPTl9TTE9UIGxz dWIxX3Nsb3QgKGZhaWxvdmVyKTtdLAorICAgIHJlcGxpY2F0aW9uID0+ICdkYXRhYmFzZScpOwor b2soJHN0ZGVyciA9fiAvRVJST1I6ICBjYW5ub3QgYWx0ZXIgcmVwbGljYXRpb24gc2xvdCAibHN1 YjFfc2xvdCIvLAorCSJzeW5jZWQgc2xvdCBvbiBzdGFuZGJ5IGNhbm5vdCBiZSBhbHRlcmVkIik7 CisKKyMgQXR0ZW1wdGluZyB0byBkcm9wIGEgc3luY2VkIHNsb3Qgc2hvdWxkIHJlc3VsdCBpbiBh biBlcnJvcgorKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJHN0YW5kYnkxLT5wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2xzdWIxX3Nsb3Qn KTsiKTsKK29rKCRzdGRlcnIgPX4gL0VSUk9SOiAgY2Fubm90IGRyb3AgcmVwbGljYXRpb24gc2xv dCAibHN1YjFfc2xvdCIvLAorCSJzeW5jZWQgc2xvdCBvbiBzdGFuZGJ5IGNhbm5vdCBiZSBkcm9w cGVkIik7CisKKyMgRW5hYmxlIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIGFuZCByZXN0YXJ0IHN0YW5k YnkKKyRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICdBTFRFUiBTWVNURU0gU0VUIGhv dF9zdGFuZGJ5X2ZlZWRiYWNrID0gb247Jyk7Ciskc3RhbmRieTEtPnJlc3RhcnQ7CisKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFByb21vdGUg dGhlIHN0YW5kYnkxIHRvIHByaW1hcnkuIENvbmZpcm0gdGhhdDoKKyMgYSkgdGhlIHNsb3QgJ2xz dWIxX3Nsb3QnIGlzIHJldGFpbmVkIG9uIHRoZSBuZXcgcHJpbWFyeQorIyBiKSBsb2dpY2FsIHJl cGxpY2F0aW9uIGZvciByZWdyZXNzX215c3ViMSBpcyByZXN1bWVkIHN1Y2Nlc3NmdWxseSBhZnRl ciBmYWlsb3ZlcgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyRzdGFuZGJ5MS0+cHJvbW90ZTsKKworIyBVcGRhdGUgc3Vic2NyaXB0aW9uIHdpdGgg dGhlIG5ldyBwcmltYXJ5J3MgY29ubmVjdGlvbiBpbmZvCiskc3Vic2NyaWJlcjEtPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19teXN1YjEgQ09OTkVD VElPTiAnJHN0YW5kYnkxX2Nvbm5pbmZvJzsKKwkgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf bXlzdWIxIEVOQUJMRTsgIik7CisKK2lzKCRzdGFuZGJ5MS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJcXtTRUxFQ1Qgc2xvdF9uYW1lIEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xv dF9uYW1lID0gJ2xzdWIxX3Nsb3QnO30pLAorCSdsc3ViMV9zbG90JywKKwknc3luY2VkIHNsb3Qg cmV0YWluZWQgb24gdGhlIG5ldyBwcmltYXJ5Jyk7CisKKyMgSW5zZXJ0IGRhdGEgb24gdGhlIG5l dyBwcmltYXJ5Ciskc3RhbmRieTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5U TyB0YWJfaW50IFNFTEVDVCBnZW5lcmF0ZV9zZXJpZXMoMTEsIDIwKTsiKTsKKyRzdGFuZGJ5MS0+ d2FpdF9mb3JfY2F0Y2h1cCgncmVncmVzc19teXN1YjEnKTsKKworIyBDb25maXJtIHRoYXQgZGF0 YSBpbiB0YWJfaW50IHJlcGxpY2F0ZWQgb24gc3Vic2NyaWJlcgoraXMoICRzdWJzY3JpYmVyMS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGNvdW50KCopIEZST00gdGFiX2ludDt9KSwK KwkiMjAiLAorCSdkYXRhIHJlcGxpY2F0ZWQgZnJvbSB0aGUgbmV3IHByaW1hcnknKTsKIAogZG9u ZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CmluZGV4IGFjYzIzMzli NDkuLmFlNjg3NTMxZDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xNDc0 LDggKzE0NzQsOSBAQCBwZ19yZXBsaWNhdGlvbl9zbG90c3wgU0VMRUNUIGwuc2xvdF9uYW1lLAog ICAgIGwuc2FmZV93YWxfc2l6ZSwKICAgICBsLnR3b19waGFzZSwKICAgICBsLmNvbmZsaWN0X3Jl YXNvbiwKLSAgICBsLmZhaWxvdmVyCi0gICBGUk9NIChwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMo KSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90X3R5cGUsIGRhdG9pZCwgdGVtcG9yYXJ5LCBhY3Rp dmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFsb2dfeG1pbiwgcmVzdGFydF9sc24sIGNvbmZpcm1l ZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNhZmVfd2FsX3NpemUsIHR3b19waGFzZSwgY29uZmxp Y3RfcmVhc29uLCBmYWlsb3ZlcikKKyAgICBsLmZhaWxvdmVyLAorICAgIGwuc3luY2VkCisgICBG Uk9NIChwZ19nZXRfcmVwbGljYXRpb25fc2xvdHMoKSBsKHNsb3RfbmFtZSwgcGx1Z2luLCBzbG90 X3R5cGUsIGRhdG9pZCwgdGVtcG9yYXJ5LCBhY3RpdmUsIGFjdGl2ZV9waWQsIHhtaW4sIGNhdGFs b2dfeG1pbiwgcmVzdGFydF9sc24sIGNvbmZpcm1lZF9mbHVzaF9sc24sIHdhbF9zdGF0dXMsIHNh ZmVfd2FsX3NpemUsIHR3b19waGFzZSwgY29uZmxpY3RfcmVhc29uLCBmYWlsb3Zlciwgc3luY2Vk KQogICAgICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBPTiAoKGwuZGF0b2lkID0gZC5vaWQpKSk7 CiBwZ19yb2xlc3wgU0VMRUNUIHBnX2F1dGhpZC5yb2xuYW1lLAogICAgIHBnX2F1dGhpZC5yb2xz dXBlciwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKaW5kZXggMjcxMzEzZWJm OC4uYWFjODM3NTVkZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2 aWV3cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zeXN2aWV3cy5vdXQKQEAg LTEzMiw4ICsxMzIsOSBAQCBzZWxlY3QgbmFtZSwgc2V0dGluZyBmcm9tIHBnX3NldHRpbmdzIHdo ZXJlIG5hbWUgbGlrZSAnZW5hYmxlJSc7CiAgZW5hYmxlX3NlbGZfam9pbl9yZW1vdmFsICAgICAg IHwgb24KICBlbmFibGVfc2Vxc2NhbiAgICAgICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9zb3J0 ICAgICAgICAgICAgICAgICAgICB8IG9uCisgZW5hYmxlX3N5bmNzbG90ICAgICAgICAgICAgICAg IHwgb2ZmCiAgZW5hYmxlX3RpZHNjYW4gICAgICAgICAgICAgICAgIHwgb24KLSgyMiByb3dzKQor KDIzIHJvd3MpCiAKIC0tIFRoZXJlIGFyZSBhbHdheXMgd2FpdCBldmVudCBkZXNjcmlwdGlvbnMg Zm9yIHZhcmlvdXMgdHlwZXMuCiBzZWxlY3QgdHlwZSwgY291bnQoKikgPiAwIGFzIG9rIEZST00g cGdfd2FpdF9ldmVudHMKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5s aXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggOWI2Nzk4NjkxNC4u YjgzZjIxNDNjZCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTIzMjEsNiArMjMyMSw3 IEBAIFJlbG9jYXRpb25CdWZmZXJJbmZvCiBSZWxwdHJGcmVlUGFnZUJ0cmVlCiBSZWxwdHJGcmVl UGFnZU1hbmFnZXIKIFJlbHB0ckZyZWVQYWdlU3BhbkxlYWRlcgorUmVtb3RlU2xvdAogUmVuYW1l U3RtdAogUmVvcGVuUHRyVHlwZQogUmVvcmRlckJ1ZmZlcgpAQCAtMjU4MSw2ICsyNTgyLDcgQEAg U2xhYkJsb2NrCiBTbGFiQ29udGV4dAogU2xhYlNsb3QKIFNsb3ROdW1iZXIKK1Nsb3RTeW5jV29y a2VyQ3R4CiBTbHJ1Q3RsCiBTbHJ1Q3RsRGF0YQogU2xydUVycm9yQ2F1c2UKLS0gCjIuMzAuMC53 aW5kb3dzLjIKCg== --_005_OS0PR01MB57169DD55EC8D9D1EDB7A0C2946A2OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v58-0003-Allow-logical-walsenders-to-wait-for-the-physica.patch" Content-Description: v58-0003-Allow-logical-walsenders-to-wait-for-the-physica.patch Content-Disposition: attachment; filename="v58-0003-Allow-logical-walsenders-to-wait-for-the-physica.patch"; size=40622; creation-date="Tue, 09 Jan 2024 12:00:02 GMT"; modification-date="Tue, 09 Jan 2024 12:14:03 GMT" Content-Transfer-Encoding: base64 RnJvbSAyZjM0ZTYxMDE2ZjViZWY3NWI4YjM2YWQ1OWRiM2Q0YTU3NjIyMmI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxzaGVybG9ja2NwcEBmb3htYWlsLmNvbT4K RGF0ZTogU2F0LCA2IEphbiAyMDI0IDE2OjQ2OjA5ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NTgg My80XSBBbGxvdyBsb2dpY2FsIHdhbHNlbmRlcnMgdG8gd2FpdCBmb3IgdGhlIHBoeXNpY2FsCiBz dGFuZGJ5cwoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbWVjaGFuaXNtIHRvIGVuc3VyZSB0aGF0 IHBoeXNpY2FsIHN0YW5kYnkgc2VydmVycywKd2hpY2ggYXJlIHBvdGVudGlhbCBmYWlsb3ZlciBj YW5kaWRhdGVzLCBoYXZlIHJlY2VpdmVkIGFuZCBmbHVzaGVkIGNoYW5nZXMKYmVmb3JlIG1ha2lu ZyB0aGVtIHZpc2libGUgdG8gc3Vic2NyaWJlcnMuIEJ5IGRvaW5nIHNvLCBpdCBndWFyYW50ZWVz IHRoYXQKdGhlIHByb21vdGVkIHN0YW5kYnkgc2VydmVyIGlzIG5vdCBsYWdnaW5nIGJlaGluZCB0 aGUgc3Vic2NyaWJlcnMgd2hlbiBhCmZhaWxvdmVyIGlzIG5lY2Vzc2FyeS4KCkEgbmV3IHBhcmFt ZXRlciBuYW1lZCBzdGFuZGJ5X3Nsb3RfbmFtZXMgaXMgaW50cm9kdWNlZC4gVGhlIGxvZ2ljYWwK d2Fsc2VuZGVyIG5vdyBndWFyYW50ZWVzIHRoYXQgYWxsIGxvY2FsIGNoYW5nZXMgYXJlIHNlbnQg YW5kIGZsdXNoZWQgdG8KdGhlIHN0YW5kYnkgc2VydmVycyBjb3JyZXNwb25kaW5nIHRvIHRoZSBy ZXBsaWNhdGlvbiBzbG90cyBzcGVjaWZpZWQgaW4Kc3RhbmRieV9zbG90X25hbWVzIGJlZm9yZSBz ZW5kaW5nIHRob3NlIGNoYW5nZXMgdG8gdGhlIHN1YnNjcmliZXIuCgpBZGRpdGlvbmFsbHksIFRo ZSBTUUwgZnVuY3Rpb25zIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcyBhbmQKcGdfcmVwbGlj YXRpb25fc2xvdF9hZHZhbmNlIGFyZSBtb2RpZmllZCB0byB3YWl0IGZvciB0aGUgcmVwbGljYXRp b24gc2xvdHMKbWVudGlvbmVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcyB0byBjYXRjaCB1cCBiZWZv cmUgcmV0dXJuaW5nIHRoZSBjaGFuZ2VzCnRvIHRoZSB1c2VyLgotLS0KIGRvYy9zcmMvc2dtbC9j b25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAyNCArKwogLi4uL3JlcGxpY2F0aW9u L2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMgICAgICAgIHwgIDEzICsKIHNyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3Nsb3QuYyAgICAgICAgICAgICAgICB8IDM0MiArKysrKysrKysrKysrKysrKy0KIHNy Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3RmdW5jcy5jICAgICAgICAgICB8ICAgOSArCiBzcmMv YmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICAgICAgfCAxMTEgKysrKystCiAu Li4vdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQgICAgICAgfCAgIDEgKwogc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgIDE0ICsKIHNyYy9i YWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgMiArCiBzcmMvaW5j bHVkZS9yZXBsaWNhdGlvbi9zbG90LmggICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmggICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmggICB8ICAgNyArCiBzcmMvaW5jbHVkZS91 dGlscy9ndWNfaG9va3MuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlY292ZXJ5 L3QvMDA2X2xvZ2ljYWxfZGVjb2RpbmcucGwgICB8ICAgMyArLQogLi4uL3QvMDUwX3N0YW5kYnlf ZmFpbG92ZXJfc2xvdHNfc3luYy5wbCAgICAgIHwgMjMxICsrKysrKysrKystLQogMTUgZmlsZXMg Y2hhbmdlZCwgNzMwIGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRl eCBjZDlhZTcwYzQxLi41N2JiMTkzNzU3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmln LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC00NDE5LDYgKzQ0MTksMzAg QEAgcmVzdG9yZV9jb21tYW5kID0gJ2NvcHkgIkM6XFxzZXJ2ZXJcXGFyY2hpdmVkaXJcXCVmIiAi JXAiJyAgIyBXaW5kb3dzCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4K IAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc3RhbmRieS1zbG90LW5hbWVzIiB4cmVmbGFi ZWw9InN0YW5kYnlfc2xvdF9uYW1lcyI+CisgICAgICA8dGVybT48dmFybmFtZT5zdGFuZGJ5X3Ns b3RfbmFtZXM8L3Zhcm5hbWU+ICg8dHlwZT5zdHJpbmc8L3R5cGU+KQorICAgICAgPGluZGV4dGVy bT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+ IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRlcm0+Cisg ICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIExp c3Qgb2YgcGh5c2ljYWwgc2xvdHMgZ3VhcmFudGVlcyB0aGF0IGxvZ2ljYWwgcmVwbGljYXRpb24g c2xvdHMgd2l0aAorICAgICAgICBmYWlsb3ZlciBlbmFibGVkIGRvIG5vdCBjb25zdW1lIGNoYW5n ZXMgdW50aWwgdGhvc2UgY2hhbmdlcyBhcmUgcmVjZWl2ZWQKKyAgICAgICAgYW5kIGZsdXNoZWQg dG8gY29ycmVzcG9uZGluZyBwaHlzaWNhbCBzdGFuZGJ5cy4gSWYgYSBsb2dpY2FsIHJlcGxpY2F0 aW9uCisgICAgICAgIGNvbm5lY3Rpb24gaXMgbWVhbnQgdG8gc3dpdGNoIHRvIGEgcGh5c2ljYWwg c3RhbmRieSBhZnRlciB0aGUgc3RhbmRieSBpcworICAgICAgICBwcm9tb3RlZCwgdGhlIHBoeXNp Y2FsIHJlcGxpY2F0aW9uIHNsb3QgZm9yIHRoZSBzdGFuZGJ5IHNob3VsZCBiZSBsaXN0ZWQKKyAg ICAgICAgaGVyZS4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBz dGFuZGJ5cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwaHlzaWNhbCByZXBsaWNhdGlvbiBzbG90cyBp bgorICAgICAgICA8dmFybmFtZT5zdGFuZGJ5X3Nsb3RfbmFtZXM8L3Zhcm5hbWU+IG11c3QgY29u ZmlndXJlCisgICAgICAgIDxsaXRlcmFsPmVuYWJsZV9zeW5jc2xvdCA9IHRydWU8L2xpdGVyYWw+ IHNvIHRoZXkgY2FuIHJlY2VpdmUKKyAgICAgICAgZmFpbG92ZXIgbG9naWNhbCBzbG90cyBjaGFu Z2VzIGZyb20gdGhlIHByaW1hcnkuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4K KyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICAgPC9zZWN0 Mj4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2Fs ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMK aW5kZXggYjAwODFkM2NlNS4uNWZmNzYxZGQ2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi cmVwbGljYXRpb24vZGVjb2RlLmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbC5oIgog I2luY2x1ZGUgInJlcGxpY2F0aW9uL21lc3NhZ2UuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi93 YWxzZW5kZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2ZkLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJy YXkuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMTA5LDYgKzExMCw3IEBAIHBn X2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlc19ndXRzKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLCBi b29sIGNvbmZpcm0sIGJvb2wgYmluCiAJTWVtb3J5Q29udGV4dCBwZXJfcXVlcnlfY3R4OwogCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKIAlYTG9nUmVjUHRyCWVuZF9vZl93YWw7CisJWExvZ1Jl Y1B0cgl3YWl0X2Zvcl93YWxfbHNuOwogCUxvZ2ljYWxEZWNvZGluZ0NvbnRleHQgKmN0eDsKIAlS ZXNvdXJjZU93bmVyIG9sZF9yZXNvd25lciA9IEN1cnJlbnRSZXNvdXJjZU93bmVyOwogCUFycmF5 VHlwZSAgKmFycjsKQEAgLTIyOCw2ICsyMzAsMTcgQEAgcGdfbG9naWNhbF9zbG90X2dldF9jaGFu Z2VzX2d1dHMoRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8sIGJvb2wgY29uZmlybSwgYm9vbCBiaW4K IAkJCQkJCQlOYW1lU3RyKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnBsdWdpbiksCiAJCQkJCQkJ Zm9ybWF0X3Byb2NlZHVyZShmY2luZm8tPmZsaW5mby0+Zm5fb2lkKSkpKTsKIAorCQlpZiAoWExv Z1JlY1B0cklzSW52YWxpZCh1cHRvX2xzbikpCisJCQl3YWl0X2Zvcl93YWxfbHNuID0gZW5kX29m X3dhbDsKKwkJZWxzZQorCQkJd2FpdF9mb3Jfd2FsX2xzbiA9IE1pbih1cHRvX2xzbiwgZW5kX29m X3dhbCk7CisKKwkJLyoKKwkJICogV2FpdCBmb3Igc3BlY2lmaWVkIHN0cmVhbWluZyByZXBsaWNh dGlvbiBzdGFuZGJ5IHNlcnZlcnMgKGlmIGFueSkKKwkJICogdG8gY29uZmlybSByZWNlaXB0IG9m IFdBTCB1cCB0byB3YWl0X2Zvcl93YWxfbHNuLgorCQkgKi8KKwkJV2FpdEZvclN0YW5kYnlDb25m aXJtYXRpb24od2FpdF9mb3Jfd2FsX2xzbik7CisKIAkJY3R4LT5vdXRwdXRfd3JpdGVyX3ByaXZh dGUgPSBwOwogCiAJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90 LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKaW5kZXggMjA4Y2Q5M2Y2MS4uMDA5 MjE2ZWRlNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwpAQCAtNDYsMTMgKzQ2LDE4IEBACiAjaW5j bHVkZSAiY29tbW9uL3N0cmluZy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUg InBnc3RhdC5oIgorI2luY2x1ZGUgInBvc3RtYXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAi cmVwbGljYXRpb24vc2xvdC5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlci5oIgor I2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmgiCiAjaW5jbHVkZSAic3Rv cmFnZS9mZC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9w cm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRlICJ1dGlscy9i dWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2d1Y19ob29rcy5oIgorI2luY2x1ZGUgInV0aWxz L21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvdmFybGVuYS5oIgogCiAvKgogICogUmVwbGlj YXRpb24gc2xvdCBvbi1kaXNrIGRhdGEgc3RydWN0dXJlLgpAQCAtOTksMTAgKzEwNCwxOSBAQCBS ZXBsaWNhdGlvblNsb3RDdGxEYXRhICpSZXBsaWNhdGlvblNsb3RDdGwgPSBOVUxMOwogLyogTXkg YmFja2VuZCdzIHJlcGxpY2F0aW9uIHNsb3QgaW4gdGhlIHNoYXJlZCBtZW1vcnkgYXJyYXkgKi8K IFJlcGxpY2F0aW9uU2xvdCAqTXlSZXBsaWNhdGlvblNsb3QgPSBOVUxMOwogCi0vKiBHVUMgdmFy aWFibGUgKi8KKy8qIEdVQyB2YXJpYWJsZXMgKi8KIGludAkJCW1heF9yZXBsaWNhdGlvbl9zbG90 cyA9IDEwOyAvKiB0aGUgbWF4aW11bSBudW1iZXIgb2YgcmVwbGljYXRpb24KIAkJCQkJCQkJCQkg KiBzbG90cyAqLwogCisvKgorICogVGhpcyBHVUMgbGlzdHMgc3RyZWFtaW5nIHJlcGxpY2F0aW9u IHN0YW5kYnkgc2VydmVyIHNsb3QgbmFtZXMgdGhhdAorICogbG9naWNhbCBXQUwgc2VuZGVyIHBy b2Nlc3NlcyB3aWxsIHdhaXQgZm9yLgorICovCitjaGFyCSAgICpzdGFuZGJ5X3Nsb3RfbmFtZXM7 CisKKy8qIFRoaXMgaXMgcGFyc2VkIGFuZCBjYWNoZWQgbGlzdCBmb3IgcmF3IHN0YW5kYnlfc2xv dF9uYW1lcy4gKi8KK3N0YXRpYyBMaXN0ICpzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCA9IE5JTDsK Kwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90U2htZW1FeGl0KGludCBjb2RlLCBEYXR1bSBh cmcpOwogc3RhdGljIHZvaWQgUmVwbGljYXRpb25TbG90RHJvcFB0cihSZXBsaWNhdGlvblNsb3Qg KnNsb3QpOwogCkBAIC0yMjEwLDMgKzIyMjQsMzI5IEBAIFJlc3RvcmVTbG90RnJvbURpc2soY29u c3QgY2hhciAqbmFtZSkKIAkJCQkoZXJybXNnKCJ0b28gbWFueSByZXBsaWNhdGlvbiBzbG90cyBh Y3RpdmUgYmVmb3JlIHNodXRkb3duIiksCiAJCQkJIGVycmhpbnQoIkluY3JlYXNlIG1heF9yZXBs aWNhdGlvbl9zbG90cyBhbmQgdHJ5IGFnYWluLiIpKSk7CiB9CisKKy8qCisgKiBBIGhlbHBlciBm dW5jdGlvbiB0byB2YWxpZGF0ZSBzbG90cyBzcGVjaWZpZWQgaW4gR1VDIHN0YW5kYnlfc2xvdF9u YW1lcy4KKyAqLworc3RhdGljIGJvb2wKK3ZhbGlkYXRlX3N0YW5kYnlfc2xvdHMoY2hhciAqKm5l d3ZhbCkKK3sKKwljaGFyCSAgICpyYXduYW1lOworCUxpc3QJICAgKmVsZW1saXN0OworCUxpc3RD ZWxsICAgKmxjOworCWJvb2wJCW9rOworCisJLyogTmVlZCBhIG1vZGlmaWFibGUgY29weSBvZiBz dHJpbmcgKi8KKwlyYXduYW1lID0gcHN0cmR1cCgqbmV3dmFsKTsKKworCS8qIFZlcmlmeSBzeW50 YXggYW5kIHBhcnNlIHN0cmluZyBpbnRvIGEgbGlzdCBvZiBpZGVudGlmaWVycyAqLworCW9rID0g U3BsaXRJZGVudGlmaWVyU3RyaW5nKHJhd25hbWUsICcsJywgJmVsZW1saXN0KTsKKworCWlmICgh b2spCisJCUdVQ19jaGVja19lcnJkZXRhaWwoIkxpc3Qgc3ludGF4IGlzIGludmFsaWQuIik7CisK KwkvKgorCSAqIElmIHRoZXJlIGlzIGEgc3ludGF4IGVycm9yIGluIHRoZSBuYW1lIG9yIGlmIHRo ZSByZXBsaWNhdGlvbiBzbG90cycKKwkgKiBkYXRhIGlzIG5vdCBpbml0aWFsaXplZCB5ZXQgKGku ZS4sIHdlIGFyZSBpbiB0aGUgc3RhcnR1cCBwcm9jZXNzKSwgc2tpcAorCSAqIHRoZSBzbG90IHZl cmlmaWNhdGlvbi4KKwkgKi8KKwlpZiAoIW9rIHx8ICFSZXBsaWNhdGlvblNsb3RDdGwpCisJewor CQlwZnJlZShyYXduYW1lKTsKKwkJbGlzdF9mcmVlKGVsZW1saXN0KTsKKwkJcmV0dXJuIG9rOwor CX0KKworCWZvcmVhY2gobGMsIGVsZW1saXN0KQorCXsKKwkJY2hhcgkgICAqbmFtZSA9IGxmaXJz dChsYyk7CisJCVJlcGxpY2F0aW9uU2xvdCAqc2xvdDsKKworCQlzbG90ID0gU2VhcmNoTmFtZWRS ZXBsaWNhdGlvblNsb3QobmFtZSwgdHJ1ZSk7CisKKwkJaWYgKCFzbG90KQorCQl7CisJCQlHVUNf Y2hlY2tfZXJyZGV0YWlsKCJyZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIs CisJCQkJCQkJCW5hbWUpOworCQkJb2sgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisKKwkJaWYg KCFTbG90SXNQaHlzaWNhbChzbG90KSkKKwkJeworCQkJR1VDX2NoZWNrX2VycmRldGFpbCgiXCIl c1wiIGlzIG5vdCBhIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QiLAorCQkJCQkJCQluYW1lKTsK KwkJCW9rID0gZmFsc2U7CisJCQlicmVhazsKKwkJfQorCX0KKworCXBmcmVlKHJhd25hbWUpOwor CWxpc3RfZnJlZShlbGVtbGlzdCk7CisJcmV0dXJuIG9rOworfQorCisvKgorICogR1VDIGNoZWNr X2hvb2sgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcworICovCitib29sCitjaGVja19zdGFuZGJ5X3Ns b3RfbmFtZXMoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLCBHdWNTb3VyY2Ugc291cmNlKQor eworCWlmIChzdHJjbXAoKm5ld3ZhbCwgIiIpID09IDApCisJCXJldHVybiB0cnVlOworCisJLyoK KwkgKiAiKiIgaXMgbm90IGFjY2VwdGVkIGFzIGluIHRoYXQgY2FzZSBwcmltYXJ5IHdpbGwgbm90 IGJlIGFibGUgdG8ga25vdworCSAqIGZvciB3aGljaCBhbGwgc3RhbmRieXMgdG8gd2FpdCBmb3Iu IEV2ZW4gaWYgd2UgaGF2ZSBwaHlzaWNhbC1zbG90cworCSAqIGluZm8sIHRoZXJlIGlzIG5vIHdh eSB0byBjb25maXJtIHdoZXRoZXIgdGhlcmUgaXMgYW55IHN0YW5kYnkKKwkgKiBjb25maWd1cmVk IGZvciB0aGUga25vd24gcGh5c2ljYWwgc2xvdHMuCisJICovCisJaWYgKHN0cmNtcCgqbmV3dmFs LCAiKiIpID09IDApCisJeworCQlHVUNfY2hlY2tfZXJyZGV0YWlsKCJcIiVzXCIgaXMgbm90IGFj Y2VwdGVkIGZvciBzdGFuZGJ5X3Nsb3RfbmFtZXMiLAorCQkJCQkJCSpuZXd2YWwpOworCQlyZXR1 cm4gZmFsc2U7CisJfQorCisJLyogTm93IHZlcmlmeSBpZiB0aGUgc3BlY2lmaWVkIHNsb3RzIHJl YWxseSBleGlzdCBhbmQgaGF2ZSBjb3JyZWN0IHR5cGUgKi8KKwlpZiAoIXZhbGlkYXRlX3N0YW5k Ynlfc2xvdHMobmV3dmFsKSkKKwkJcmV0dXJuIGZhbHNlOworCisJKmV4dHJhID0gZ3VjX3N0cmR1 cChFUlJPUiwgKm5ld3ZhbCk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIEdVQyBhc3Np Z25faG9vayBmb3Igc3RhbmRieV9zbG90X25hbWVzCisgKi8KK3ZvaWQKK2Fzc2lnbl9zdGFuZGJ5 X3Nsb3RfbmFtZXMoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSkKK3sKKwlMaXN0CSAg ICpzdGFuZGJ5X3Nsb3RzOworCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCWNoYXIJICAgKnN0YW5k Ynlfc2xvdF9uYW1lc19jcHkgPSBleHRyYTsKKworCWxpc3RfZnJlZShzdGFuZGJ5X3Nsb3RfbmFt ZXNfbGlzdCk7CisJc3RhbmRieV9zbG90X25hbWVzX2xpc3QgPSBOSUw7CisKKwkvKiBObyB2YWx1 ZSBpcyBzcGVjaWZpZWQgZm9yIHN0YW5kYnlfc2xvdF9uYW1lcy4gKi8KKwlpZiAoc3RhbmRieV9z bG90X25hbWVzX2NweSA9PSBOVUxMKQorCQlyZXR1cm47CisKKwlpZiAoIVNwbGl0SWRlbnRpZmll clN0cmluZyhzdGFuZGJ5X3Nsb3RfbmFtZXNfY3B5LCAnLCcsICZzdGFuZGJ5X3Nsb3RzKSkKKwl7 CisJCS8qIFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4gaWYgR1VDIGNoZWNrZWQgY2hlY2tfc3RhbmRi eV9zbG90X25hbWVzLiAqLworCQllbG9nKEVSUk9SLCAiaW52YWxpZCBsaXN0IHN5bnRheCIpOwor CX0KKworCS8qCisJICogU3dpdGNoIHRvIHRoZSBzYW1lIG1lbW9yeSBjb250ZXh0IHVuZGVyIHdo aWNoIEdVQyB2YXJpYWJsZXMgYXJlCisJICogYWxsb2NhdGVkIChHVUNNZW1vcnlDb250ZXh0KS4K KwkgKi8KKwlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oR2V0TWVtb3J5Q2h1bmtDb250 ZXh0KHN0YW5kYnlfc2xvdF9uYW1lc19jcHkpKTsKKwlzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlzdCA9 IGxpc3RfY29weShzdGFuZGJ5X3Nsb3RzKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0 KTsKK30KKworLyoKKyAqIFJldHVybiBhIGNvcHkgb2Ygc3RhbmRieV9zbG90X25hbWVzX2xpc3Qg aWYgdGhlIGNvcHkgZmxhZyBpcyBzZXQgdG8gdHJ1ZSwKKyAqIG90aGVyd2lzZSByZXR1cm4gdGhl IG9yaWdpbmFsIGxpc3QuCisgKi8KK0xpc3QgKgorR2V0U3RhbmRieVNsb3RMaXN0KGJvb2wgY29w eSkKK3sKKwkvKgorCSAqIFNpbmNlIHdlIGRvIG5vdCBzdXBwb3J0IHN5bmNpbmcgc2xvdHMgdG8g Y2FzY2FkaW5nIHN0YW5kYnlzLCB3ZSByZXR1cm4KKwkgKiBOSUwgaGVyZSBpZiB3ZSBhcmUgcnVu bmluZyBpbiBhIHN0YW5kYnkgdG8gaW5kaWNhdGUgdGhhdCBubyBzdGFuZGJ5CisJICogc2xvdHMg bmVlZCB0byBiZSB3YWl0ZWQgZm9yLgorCSAqLworCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkK KwkJcmV0dXJuIE5JTDsKKworCWlmIChjb3B5KQorCQlyZXR1cm4gbGlzdF9jb3B5KHN0YW5kYnlf c2xvdF9uYW1lc19saXN0KTsKKwllbHNlCisJCXJldHVybiBzdGFuZGJ5X3Nsb3RfbmFtZXNfbGlz dDsKK30KKworLyoKKyAqIFJlbG9hZCB0aGUgY29uZmlnIGZpbGUgYW5kIHJlaW5pdGlhbGl6ZSB0 aGUgc3RhbmRieSBzbG90IGxpc3QgaWYgdGhlIEdVQworICogc3RhbmRieV9zbG90X25hbWVzIGhh cyBjaGFuZ2VkLgorICovCit2b2lkCitSZXJlYWRDb25maWdBbmRSZUluaXRTbG90TGlzdChMaXN0 ICoqc3RhbmRieV9zbG90cykKK3sKKwljaGFyCSAgICpwcmVfc3RhbmRieV9zbG90X25hbWVzOwor CisJLyoKKwkgKiBJZiB3ZSBhcmUgcnVubmluZyBvbiBhIHN0YW5kYnksIHRoZXJlIGlzIG5vIG5l ZWQgdG8gcmVsb2FkCisJICogc3RhbmRieV9zbG90X25hbWVzIHNpbmNlIHdlIGRvIG5vdCBzdXBw b3J0IHN5bmNpbmcgc2xvdHMgdG8gY2FzY2FkaW5nCisJICogc3RhbmRieXMuCisJICovCisJaWYg KFJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCXsKKwkJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hV UCk7CisJCXJldHVybjsKKwl9CisKKwlwcmVfc3RhbmRieV9zbG90X25hbWVzID0gcHN0cmR1cChz dGFuZGJ5X3Nsb3RfbmFtZXMpOworCisJUHJvY2Vzc0NvbmZpZ0ZpbGUoUEdDX1NJR0hVUCk7CisK KwlpZiAoc3RyY21wKHByZV9zdGFuZGJ5X3Nsb3RfbmFtZXMsIHN0YW5kYnlfc2xvdF9uYW1lcykg IT0gMCkKKwl7CisJCWxpc3RfZnJlZSgqc3RhbmRieV9zbG90cyk7CisJCSpzdGFuZGJ5X3Nsb3Rz ID0gR2V0U3RhbmRieVNsb3RMaXN0KHRydWUpOworCX0KKworCXBmcmVlKHByZV9zdGFuZGJ5X3Ns b3RfbmFtZXMpOworfQorCisvKgorICogRmlsdGVyIHRoZSBzdGFuZGJ5IHNsb3RzIGJhc2VkIG9u IHRoZSBzcGVjaWZpZWQgbG9nIHNlcXVlbmNlIG51bWJlcgorICogKHdhaXRfZm9yX2xzbikuCisg KgorICogVGhpcyBmdW5jdGlvbiB1cGRhdGVzIHRoZSBwYXNzZWQgc3RhbmRieV9zbG90cyBsaXN0 LCByZW1vdmluZyBhbnkgc2xvdHMgdGhhdAorICogaGF2ZSBhbHJlYWR5IGNhdWdodCB1cCB0byBv ciBzdXJwYXNzZWQgdGhlIGdpdmVuIHdhaXRfZm9yX2xzbi4gQWRkaXRpb25hbGx5LAorICogaXQg cmVtb3ZlcyBzbG90cyB0aGF0IGhhdmUgYmVlbiBpbnZhbGlkYXRlZCwgZHJvcHBlZCwgb3IgY29u dmVydGVkIHRvCisgKiBsb2dpY2FsIHNsb3RzLgorICovCit2b2lkCitGaWx0ZXJTdGFuZGJ5U2xv dHMoWExvZ1JlY1B0ciB3YWl0X2Zvcl9sc24sIExpc3QgKipzdGFuZGJ5X3Nsb3RzKQoreworCUxp c3RDZWxsICAgKmxjOworCUxpc3QJICAgKnN0YW5kYnlfc2xvdHNfY3B5ID0gKnN0YW5kYnlfc2xv dHM7CisKKwlmb3JlYWNoKGxjLCBzdGFuZGJ5X3Nsb3RzX2NweSkKKwl7CisJCWNoYXIJICAgKm5h bWUgPSBsZmlyc3QobGMpOworCQljaGFyCSAgICp3YXJuaW5nZm10ID0gTlVMTDsKKwkJUmVwbGlj YXRpb25TbG90ICpzbG90OworCisJCXNsb3QgPSBTZWFyY2hOYW1lZFJlcGxpY2F0aW9uU2xvdChu YW1lLCB0cnVlKTsKKworCQlpZiAoIXNsb3QpCisJCXsKKwkJCS8qCisJCQkgKiBJdCBtYXkgaGFw cGVuIHRoYXQgdGhlIHNsb3Qgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcyBHVUMKKwkJ CSAqIHZhbHVlIGlzIGRyb3BwZWQsIHNvIGxldCdzIHNraXAgb3ZlciBpdC4KKwkJCSAqLworCQkJ d2FybmluZ2ZtdCA9IF8oInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIHNwZWNpZmllZCBpbiBwYXJh bWV0ZXIgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBpZ25vcmluZyIpOworCQl9CisJCWVsc2UgaWYg KFNsb3RJc0xvZ2ljYWwoc2xvdCkpCisJCXsKKwkJCS8qCisJCQkgKiBJZiBhIGxvZ2ljYWwgc2xv dCBuYW1lIGlzIHByb3ZpZGVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcywgaXNzdWUKKwkJCSAqIGEg V0FSTklORyBhbmQgc2tpcCBpdC4gQWx0aG91Z2ggbG9naWNhbCBzbG90cyBhcmUgZGlzYWxsb3dl ZCBpbgorCQkJICogdGhlIEdVQyBjaGVja19ob29rKHZhbGlkYXRlX3N0YW5kYnlfc2xvdHMpLCBp dCBpcyBzdGlsbAorCQkJICogcG9zc2libGUgZm9yIGEgdXNlciB0byBkcm9wIGFuIGV4aXN0aW5n IHBoeXNpY2FsIHNsb3QgYW5kCisJCQkgKiByZWNyZWF0ZSBhIGxvZ2ljYWwgc2xvdCB3aXRoIHRo ZSBzYW1lIG5hbWUuIFNpbmNlIGl0IGlzCisJCQkgKiBoYXJtbGVzcywgYSBXQVJOSU5HIHNob3Vs ZCBiZSBlbm91Z2gsIG5vIG5lZWQgdG8gZXJyb3Itb3V0LgorCQkJICovCisJCQl3YXJuaW5nZm10 ID0gXygiY2Fubm90IGhhdmUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBwYXJh bWV0ZXIgXCIlc1wiLCBpZ25vcmluZyIpOworCQl9CisJCWVsc2UKKwkJeworCQkJU3BpbkxvY2tB Y3F1aXJlKCZzbG90LT5tdXRleCk7CisKKwkJCWlmIChzbG90LT5kYXRhLmludmFsaWRhdGVkICE9 IFJTX0lOVkFMX05PTkUpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBTcGVjaWZpZWQgcGh5c2ljYWwg c2xvdCBoYXZlIGJlZW4gaW52YWxpZGF0ZWQsIHNvIG5vIHBvaW50CisJCQkJICogaW4gd2FpdGlu ZyBmb3IgaXQuCisJCQkJICovCisJCQkJd2FybmluZ2ZtdCA9IF8oInBoeXNpY2FsIHNsb3QgXCIl c1wiIHNwZWNpZmllZCBpbiBwYXJhbWV0ZXIgXCIlc1wiIGhhcyBiZWVuIGludmFsaWRhdGVkLCBp Z25vcmluZyIpOworCQkJfQorCQkJZWxzZSBpZiAoWExvZ1JlY1B0cklzSW52YWxpZChzbG90LT5k YXRhLnJlc3RhcnRfbHNuKSB8fAorCQkJCQkgc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA8IHdhaXRf Zm9yX2xzbikKKwkJCXsKKwkJCQlib29sCWluYWN0aXZlID0gKHNsb3QtPmFjdGl2ZV9waWQgPT0g MCk7CisKKwkJCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKKworCQkJCS8qIExvZyB3 YXJuaW5nIGlmIG5vIGFjdGl2ZV9waWQgZm9yIHRoaXMgcGh5c2ljYWwgc2xvdCAqLworCQkJCWlm IChpbmFjdGl2ZSkKKwkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJCWVycm1zZygicmVwbGlj YXRpb24gc2xvdCBcIiVzXCIgc3BlY2lmaWVkIGluIHBhcmFtZXRlciBcIiVzXCIgZG9lcyBub3Qg aGF2ZSBhY3RpdmVfcGlkIiwKKwkJCQkJCQkJICAgbmFtZSwgInN0YW5kYnlfc2xvdF9uYW1lcyIp LAorCQkJCQkJCWVycmRldGFpbCgiTG9naWNhbCByZXBsaWNhdGlvbiBpcyB3YWl0aW5nIG9uIHRo ZSAiCisJCQkJCQkJCQkgICJzdGFuZGJ5IGFzc29jaWF0ZWQgd2l0aCBcIiVzXCIuIiwgbmFtZSks CisJCQkJCQkJZXJyaGludCgiQ29uc2lkZXIgc3RhcnRpbmcgc3RhbmRieSBhc3NvY2lhdGVkIHdp dGggIgorCQkJCQkJCQkJIlwiJXNcIiBvciBhbWVuZCBzdGFuZGJ5X3Nsb3RfbmFtZXMuIiwgbmFt ZSkpOworCisJCQkJLyogQ29udGludWUgaWYgdGhlIGN1cnJlbnQgc2xvdCBoYXNuJ3QgY2F1Z2h0 IHVwLiAqLworCQkJCWNvbnRpbnVlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCUFzc2VydChz bG90LT5kYXRhLnJlc3RhcnRfbHNuID49IHdhaXRfZm9yX2xzbik7CisJCQl9CisKKwkJCVNwaW5M b2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOworCQl9CisKKwkJLyoKKwkJICogUmVhY2hpbmcgaGVy ZSBpbmRpY2F0ZXMgdGhhdCBlaXRoZXIgdGhlIHNsb3QgaGFzIHBhc3NlZCB0aGUKKwkJICogd2Fp dF9mb3JfbHNuIG9yIHRoZXJlIGlzIGFuIGlzc3VlIHdpdGggdGhlIHNsb3QgdGhhdCByZXF1aXJl cyBhCisJCSAqIHdhcm5pbmcgdG8gYmUgcmVwb3J0ZWQuCisJCSAqLworCQlpZiAod2FybmluZ2Zt dCkKKwkJCWVyZXBvcnQoV0FSTklORywgZXJybXNnKHdhcm5pbmdmbXQsIG5hbWUsICJzdGFuZGJ5 X3Nsb3RfbmFtZXMiKSk7CisKKwkJc3RhbmRieV9zbG90c19jcHkgPSBmb3JlYWNoX2RlbGV0ZV9j dXJyZW50KHN0YW5kYnlfc2xvdHNfY3B5LCBsYyk7CisJfQorCisJKnN0YW5kYnlfc2xvdHMgPSBz dGFuZGJ5X3Nsb3RzX2NweTsKK30KKworLyoKKyAqIFdhaXQgZm9yIHBoeXNpY2FsIHN0YW5kYnkg dG8gY29uZmlybSByZWNlaXZpbmcgdGhlIGdpdmVuIGxzbi4KKyAqCisgKiBVc2VkIGJ5IGxvZ2lj YWwgZGVjb2RpbmcgU1FMIGZ1bmN0aW9ucyB0aGF0IGFjcXVpcmVkIHNsb3Qgd2l0aCBmYWlsb3Zl cgorICogZW5hYmxlZC4gSXQgd2FpdHMgZm9yIHBoeXNpY2FsIHN0YW5kYnlzIGNvcnJlc3BvbmRp bmcgdG8gdGhlIHBoeXNpY2FsIHNsb3RzCisgKiBzcGVjaWZpZWQgaW4gdGhlIHN0YW5kYnlfc2xv dF9uYW1lcyBHVUMuCisgKi8KK3ZvaWQKK1dhaXRGb3JTdGFuZGJ5Q29uZmlybWF0aW9uKFhMb2dS ZWNQdHIgd2FpdF9mb3JfbHNuKQoreworCUxpc3QJICAgKnN0YW5kYnlfc2xvdHM7CisKKwlpZiAo IU15UmVwbGljYXRpb25TbG90LT5kYXRhLmZhaWxvdmVyKQorCQlyZXR1cm47CisKKwlzdGFuZGJ5 X3Nsb3RzID0gR2V0U3RhbmRieVNsb3RMaXN0KHRydWUpOworCisJaWYgKHN0YW5kYnlfc2xvdHMg PT0gTklMKQorCQlyZXR1cm47CisKKwlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZX YWxTbmRDdGwtPndhbF9jb25maXJtX3Jjdl9jdik7CisKKwlmb3IgKDs7KQorCXsKKwkJQ0hFQ0tf Rk9SX0lOVEVSUlVQVFMoKTsKKworCQlpZiAoQ29uZmlnUmVsb2FkUGVuZGluZykKKwkJeworCQkJ Q29uZmlnUmVsb2FkUGVuZGluZyA9IGZhbHNlOworCQkJUmVyZWFkQ29uZmlnQW5kUmVJbml0U2xv dExpc3QoJnN0YW5kYnlfc2xvdHMpOworCQl9CisKKwkJRmlsdGVyU3RhbmRieVNsb3RzKHdhaXRf Zm9yX2xzbiwgJnN0YW5kYnlfc2xvdHMpOworCisJCS8qIEV4aXQgaWYgZG9uZSB3YWl0aW5nIGZv ciBldmVyeSBzbG90LiAqLworCQlpZiAoc3RhbmRieV9zbG90cyA9PSBOSUwpCisJCQlicmVhazsK KworCQkvKgorCQkgKiBXZSB3YWl0IGZvciB0aGUgc2xvdHMgaW4gdGhlIHN0YW5kYnlfc2xvdF9u YW1lcyB0byBjYXRjaCB1cCwgYnV0IHdlCisJCSAqIHVzZSBhIHRpbWVvdXQgc28gd2UgY2FuIGFs c28gY2hlY2sgdGhlIGlmIHRoZSBzdGFuZGJ5X3Nsb3RfbmFtZXMgaGFzCisJCSAqIGJlZW4gY2hh bmdlZC4KKwkJICovCisJCUNvbmRpdGlvblZhcmlhYmxlVGltZWRTbGVlcCgmV2FsU25kQ3RsLT53 YWxfY29uZmlybV9yY3ZfY3YsIDEwMDAsCisJCQkJCQkJCQlXQUlUX0VWRU5UX1dBSVRfRk9SX1NU QU5EQllfQ09ORklSTUFUSU9OKTsKKwl9CisKKwlDb25kaXRpb25WYXJpYWJsZUNhbmNlbFNsZWVw KCk7CisJbGlzdF9mcmVlKHN0YW5kYnlfc2xvdHMpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90 ZnVuY3MuYwppbmRleCAzMzhkMDkyZTg0Li41NDEzYzFjNjRhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9zbG90ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9zbG90ZnVuY3MuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2Rl Y29kZS5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWwuaCIKICNpbmNsdWRlICJyZXBs aWNhdGlvbi9zbG90LmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vd2Fsc2VuZGVyLmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgogI2luY2x1 ZGUgInV0aWxzL3BnX2xzbi5oIgpAQCAtNDc0LDYgKzQ3NSw4IEBAIHBnX3BoeXNpY2FsX3JlcGxp Y2F0aW9uX3Nsb3RfYWR2YW5jZShYTG9nUmVjUHRyIG1vdmV0bykKIAkJICogY3Jhc2gsIGJ1dCB0 aGlzIG1ha2VzIHRoZSBkYXRhIGNvbnNpc3RlbnQgYWZ0ZXIgYSBjbGVhbiBzaHV0ZG93bi4KIAkJ ICovCiAJCVJlcGxpY2F0aW9uU2xvdE1hcmtEaXJ0eSgpOworCisJCVBoeXNpY2FsV2FrZXVwTG9n aWNhbFdhbFNuZCgpOwogCX0KIAogCXJldHVybiByZXRsc247CkBAIC01MTQsNiArNTE3LDEyIEBA IHBnX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdF9hZHZhbmNlKFhMb2dSZWNQdHIgbW92ZXRvKQog CQkJCQkJCQkJCQkgICAuc2VnbWVudF9jbG9zZSA9IHdhbF9zZWdtZW50X2Nsb3NlKSwKIAkJCQkJ CQkJCU5VTEwsIE5VTEwsIE5VTEwpOwogCisJCS8qCisJCSAqIFdhaXQgZm9yIHNwZWNpZmllZCBz dHJlYW1pbmcgcmVwbGljYXRpb24gc3RhbmRieSBzZXJ2ZXJzIChpZiBhbnkpCisJCSAqIHRvIGNv bmZpcm0gcmVjZWlwdCBvZiBXQUwgdXAgdG8gbW92ZXRvIGxzbi4KKwkJICovCisJCVdhaXRGb3JT dGFuZGJ5Q29uZmlybWF0aW9uKG1vdmV0byk7CisKIAkJLyoKIAkJICogU3RhcnQgcmVhZGluZyBh dCB0aGUgc2xvdCdzIHJlc3RhcnRfbHNuLCB3aGljaCB3ZSBrbm93IHRvIHBvaW50IHRvCiAJCSAq IGEgdmFsaWQgcmVjb3JkLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fs c2VuZGVyLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwppbmRleCBjNjky YWMzNTY5Li5hNWMwNGRhYjQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYwpAQCAt MTIxOSw3ICsxMjE5LDYgQEAgQ3JlYXRlUmVwbGljYXRpb25TbG90KENyZWF0ZVJlcGxpY2F0aW9u U2xvdENtZCAqY21kKQogCiAJcGFyc2VDcmVhdGVSZXBsU2xvdE9wdGlvbnMoY21kLCAmcmVzZXJ2 ZV93YWwsICZzbmFwc2hvdF9hY3Rpb24sICZ0d29fcGhhc2UsCiAJCQkJCQkJICAgJmZhaWxvdmVy KTsKLQogCWlmIChjbWQtPmtpbmQgPT0gUkVQTElDQVRJT05fS0lORF9QSFlTSUNBTCkKIAl7CiAJ CVJlcGxpY2F0aW9uU2xvdENyZWF0ZShjbWQtPnNsb3RuYW1lLCBmYWxzZSwKQEAgLTE3MjgsMjcg KzE3MjcsNzggQEAgV2FsU25kVXBkYXRlUHJvZ3Jlc3MoTG9naWNhbERlY29kaW5nQ29udGV4dCAq Y3R4LCBYTG9nUmVjUHRyIGxzbiwgVHJhbnNhY3Rpb25JZAogCQlQcm9jZXNzUGVuZGluZ1dyaXRl cygpOwogfQogCisvKgorICogV2FrZSB1cCB0aGUgbG9naWNhbCB3YWxzZW5kZXIgcHJvY2Vzc2Vz IHdpdGggZmFpbG92ZXItZW5hYmxlZCBzbG90cyBpZiB0aGUKKyAqIGN1cnJlbnRseSBhY3F1aXJl ZCBwaHlzaWNhbCBzbG90IGlzIHNwZWNpZmllZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMKKyAqIEdV Qy4KKyAqLwordm9pZAorUGh5c2ljYWxXYWtldXBMb2dpY2FsV2FsU25kKHZvaWQpCit7CisJTGlz dENlbGwgICAqbGM7CisJTGlzdAkgICAqc3RhbmRieV9zbG90czsKKworCUFzc2VydChNeVJlcGxp Y2F0aW9uU2xvdCAmJiBTbG90SXNQaHlzaWNhbChNeVJlcGxpY2F0aW9uU2xvdCkpOworCisJc3Rh bmRieV9zbG90cyA9IEdldFN0YW5kYnlTbG90TGlzdChmYWxzZSk7CisKKwlmb3JlYWNoKGxjLCBz dGFuZGJ5X3Nsb3RzKQorCXsKKwkJY2hhcgkgICAqbmFtZSA9IGxmaXJzdChsYyk7CisKKwkJaWYg KHN0cmNtcChuYW1lLCBOYW1lU3RyKE15UmVwbGljYXRpb25TbG90LT5kYXRhLm5hbWUpKSA9PSAw KQorCQl7CisJCQlDb25kaXRpb25WYXJpYWJsZUJyb2FkY2FzdCgmV2FsU25kQ3RsLT53YWxfY29u ZmlybV9yY3ZfY3YpOworCQkJcmV0dXJuOworCQl9CisJfQorfQorCiAvKgogICogV2FpdCB0aWxs IFdBTCA8IGxvYyBpcyBmbHVzaGVkIHRvIGRpc2sgc28gaXQgY2FuIGJlIHNhZmVseSBzZW50IHRv IGNsaWVudC4KICAqCi0gKiBSZXR1cm5zIGVuZCBMU04gb2YgZmx1c2hlZCBXQUwuICBOb3JtYWxs eSB0aGlzIHdpbGwgYmUgPj0gbG9jLCBidXQKLSAqIGlmIHdlIGRldGVjdCBhIHNodXRkb3duIHJl cXVlc3QgKGVpdGhlciBmcm9tIHBvc3RtYXN0ZXIgb3IgY2xpZW50KQotICogd2Ugd2lsbCByZXR1 cm4gZWFybHksIHNvIGNhbGxlciBtdXN0IGFsd2F5cyBjaGVjay4KKyAqIElmIHRoZSB3YWxzZW5k ZXIgaG9sZHMgYSBsb2dpY2FsIHNsb3QgdGhhdCBoYXMgZW5hYmxlZCBmYWlsb3Zlciwgd2UgYWxz bworICogd2FpdCBmb3IgYWxsIHRoZSBzcGVjaWZpZWQgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHN0 YW5kYnkgc2VydmVycyB0bworICogY29uZmlybSByZWNlaXB0IG9mIFdBTCB1cCB0byBSZWNlbnRG bHVzaFB0ci4KKyAqCisgKiBSZXR1cm5zIGVuZCBMU04gb2YgZmx1c2hlZCBXQUwuICBOb3JtYWxs eSB0aGlzIHdpbGwgYmUgPj0gbG9jLCBidXQgaWYgd2UKKyAqIGRldGVjdCBhIHNodXRkb3duIHJl cXVlc3QgKGVpdGhlciBmcm9tIHBvc3RtYXN0ZXIgb3IgY2xpZW50KSB3ZSB3aWxsIHJldHVybgor ICogZWFybHksIHNvIGNhbGxlciBtdXN0IGFsd2F5cyBjaGVjay4KICAqLwogc3RhdGljIFhMb2dS ZWNQdHIKIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiB7CiAJaW50CQkJd2FrZUV2 ZW50czsKKwlib29sCQl3YWl0X2Zvcl9zdGFuZGJ5ID0gZmFsc2U7CisJdWludDMyCQl3YWl0X2V2 ZW50OworCUxpc3QJICAgKnN0YW5kYnlfc2xvdHMgPSBOSUw7CiAJc3RhdGljIFhMb2dSZWNQdHIg UmVjZW50Rmx1c2hQdHIgPSBJbnZhbGlkWExvZ1JlY1B0cjsKIAorCWlmIChNeVJlcGxpY2F0aW9u U2xvdC0+ZGF0YS5mYWlsb3ZlcikKKwkJc3RhbmRieV9zbG90cyA9IEdldFN0YW5kYnlTbG90TGlz dCh0cnVlKTsKKwogCS8qCi0JICogRmFzdCBwYXRoIHRvIGF2b2lkIGFjcXVpcmluZyB0aGUgc3Bp bmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cgd2UKLQkgKiBoYXZlIGVub3VnaCBXQUwgYXZh aWxhYmxlLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbnRlcmVzdGluZyBpZiB3ZSdyZQotCSAqIGZh ciBiZWhpbmQuCisJICogQ2hlY2sgaWYgYWxsIHRoZSBzdGFuZGJ5IHNlcnZlcnMgaGF2ZSBjb25m aXJtZWQgcmVjZWlwdCBvZiBXQUwgdXAgdG8KKwkgKiBSZWNlbnRGbHVzaFB0ciBldmVuIHdoZW4g d2UgYWxyZWFkeSBrbm93IHdlIGhhdmUgZW5vdWdoIFdBTCBhdmFpbGFibGUuCisJICoKKwkgKiBO b3RlIHRoYXQgd2UgY2Fubm90IGRpcmVjdGx5IHJldHVybiB3aXRob3V0IGNoZWNraW5nIHRoZSBz dGF0dXMgb2YKKwkgKiBzdGFuZGJ5IHNlcnZlcnMgYmVjYXVzZSB0aGUgc3RhbmRieV9zbG90X25h bWVzIG1heSBoYXZlIGNoYW5nZWQsIHdoaWNoCisJICogbWVhbnMgdGhlcmUgY291bGQgYmUgbmV3 IHN0YW5kYnkgc2xvdHMgaW4gdGhlIGxpc3QgdGhhdCBoYXZlIG5vdCB5ZXQKKwkgKiBjYXVnaHQg dXAgdG8gdGhlIFJlY2VudEZsdXNoUHRyLgogCSAqLwotCWlmIChSZWNlbnRGbHVzaFB0ciAhPSBJ bnZhbGlkWExvZ1JlY1B0ciAmJgotCQlsb2MgPD0gUmVjZW50Rmx1c2hQdHIpCi0JCXJldHVybiBS ZWNlbnRGbHVzaFB0cjsKKwlpZiAoIVhMb2dSZWNQdHJJc0ludmFsaWQoUmVjZW50Rmx1c2hQdHIp ICYmIGxvYyA8PSBSZWNlbnRGbHVzaFB0cikKKwl7CisJCUZpbHRlclN0YW5kYnlTbG90cyhSZWNl bnRGbHVzaFB0ciwgJnN0YW5kYnlfc2xvdHMpOworCisJCS8qCisJCSAqIEZhc3QgcGF0aCB0byBh dm9pZCBhY3F1aXJpbmcgdGhlIHNwaW5sb2NrIGluIGNhc2Ugd2UgYWxyZWFkeSBrbm93CisJCSAq IHdlIGhhdmUgZW5vdWdoIFdBTCBhdmFpbGFibGUgYW5kIGFsbCB0aGUgc3RhbmRieSBzZXJ2ZXJz IGhhdmUKKwkJICogY29uZmlybWVkIHJlY2VpcHQgb2YgV0FMIHVwIHRvIFJlY2VudEZsdXNoUHRy LiBUaGlzIGlzIHBhcnRpY3VsYXJseQorCQkgKiBpbnRlcmVzdGluZyBpZiB3ZSdyZSBmYXIgYmVo aW5kLgorCQkgKi8KKwkJaWYgKHN0YW5kYnlfc2xvdHMgPT0gTklMKQorCQkJcmV0dXJuIFJlY2Vu dEZsdXNoUHRyOworCX0KIAogCS8qIEdldCBhIG1vcmUgcmVjZW50IGZsdXNoIHBvaW50ZXIuICov CiAJaWYgKCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKQEAgLTE3NjksNyArMTgxOSw3IEBAIFdhbFNu ZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCWlmIChDb25maWdSZWxvYWRQZW5kaW5nKQog CQl7CiAJCQlDb25maWdSZWxvYWRQZW5kaW5nID0gZmFsc2U7Ci0JCQlQcm9jZXNzQ29uZmlnRmls ZShQR0NfU0lHSFVQKTsKKwkJCVJlcmVhZENvbmZpZ0FuZFJlSW5pdFNsb3RMaXN0KCZzdGFuZGJ5 X3Nsb3RzKTsKIAkJCVN5bmNSZXBJbml0Q29uZmlnKCk7CiAJCX0KIApAQCAtMTc4NCw4ICsxODM0 LDE4IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCWlmIChnb3RfU1RPUFBJ TkcpCiAJCQlYTG9nQmFja2dyb3VuZEZsdXNoKCk7CiAKKwkJLyoKKwkJICogVXBkYXRlIHRoZSBz dGFuZGJ5IHNsb3RzIHRoYXQgaGF2ZSBub3QgeWV0IGNhdWdodCB1cCB0byB0aGUgZmx1c2hlZAor CQkgKiBwb3NpdGlvbi4gSXQgaXMgZ29vZCB0byB3YWl0IHVwIHRvIFJlY2VudEZsdXNoUHRyIGFu ZCB0aGVuIGxldCBpdAorCQkgKiBzZW5kIHRoZSBjaGFuZ2VzIHRvIGxvZ2ljYWwgc3Vic2NyaWJl cnMgb25lIGJ5IG9uZSB3aGljaCBhcmUKKwkJICogYWxyZWFkeSBjb3ZlcmVkIGluIFJlY2VudEZs dXNoUHRyIHdpdGhvdXQgbmVlZGluZyB0byB3YWl0IG9uIGV2ZXJ5CisJCSAqIGNoYW5nZSBmb3Ig c3RhbmRieSBjb25maXJtYXRpb24uCisJCSAqLworCQlpZiAod2FpdF9mb3Jfc3RhbmRieSkKKwkJ CUZpbHRlclN0YW5kYnlTbG90cyhSZWNlbnRGbHVzaFB0ciwgJnN0YW5kYnlfc2xvdHMpOworCiAJ CS8qIFVwZGF0ZSBvdXIgaWRlYSBvZiB0aGUgY3VycmVudGx5IGZsdXNoZWQgcG9zaXRpb24uICov Ci0JCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJCWVsc2UgaWYgKCFSZWNvdmVyeUluUHJv Z3Jlc3MoKSkKIAkJCVJlY2VudEZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoTlVMTCk7CiAJCWVs c2UKIAkJCVJlY2VudEZsdXNoUHRyID0gR2V0WExvZ1JlcGxheVJlY1B0cihOVUxMKTsKQEAgLTE4 MTMsOSArMTg3MywxOCBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIgbG9jKQogCQkJIXdh aXRpbmdfZm9yX3BpbmdfcmVzcG9uc2UpCiAJCQlXYWxTbmRLZWVwYWxpdmUoZmFsc2UsIEludmFs aWRYTG9nUmVjUHRyKTsKIAotCQkvKiBjaGVjayB3aGV0aGVyIHdlJ3JlIGRvbmUgKi8KLQkJaWYg KGxvYyA8PSBSZWNlbnRGbHVzaFB0cikKKwkJaWYgKGxvYyA+IFJlY2VudEZsdXNoUHRyKQorCQkJ d2FpdF9ldmVudCA9IFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9XQUlUX0ZPUl9XQUw7CisJCWVsc2Ug aWYgKHN0YW5kYnlfc2xvdHMpCisJCXsKKwkJCXdhaXRfZXZlbnQgPSBXQUlUX0VWRU5UX1dBSVRf Rk9SX1NUQU5EQllfQ09ORklSTUFUSU9OOworCQkJd2FpdF9mb3Jfc3RhbmRieSA9IHRydWU7CisJ CX0KKwkJZWxzZQorCQl7CisJCQkvKiBBbHJlYWR5IGNhdWdodCB1cCBhbmQgZG9lc24ndCBuZWVk IHRvIHdhaXQgZm9yIHN0YW5kYnlfc2xvdHMuICovCiAJCQlicmVhazsKKwkJfQogCiAJCS8qIFdh aXRpbmcgZm9yIG5ldyBXQUwuIFNpbmNlIHdlIG5lZWQgdG8gd2FpdCwgd2UncmUgbm93IGNhdWdo dCB1cC4gKi8KIAkJV2FsU25kQ2F1Z2h0VXAgPSB0cnVlOwpAQCAtMTg1NSw5ICsxOTI0LDExIEBA IFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBsb2MpCiAJCWlmIChwcV9pc19zZW5kX3BlbmRp bmcoKSkKIAkJCXdha2VFdmVudHMgfD0gV0xfU09DS0VUX1dSSVRFQUJMRTsKIAotCQlXYWxTbmRX YWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSwgV0FJVF9FVkVOVF9XQUxfU0VOREVSX1dBSVRfRk9S X1dBTCk7CisJCVdhbFNuZFdhaXQod2FrZUV2ZW50cywgc2xlZXB0aW1lLCB3YWl0X2V2ZW50KTsK IAl9CiAKKwlsaXN0X2ZyZWUoc3RhbmRieV9zbG90cyk7CisKIAkvKiByZWFjdGl2YXRlIGxhdGNo IHNvIFdhbFNuZExvb3Aga25vd3MgdG8gY29udGludWUgKi8KIAlTZXRMYXRjaChNeUxhdGNoKTsK IAlyZXR1cm4gUmVjZW50Rmx1c2hQdHI7CkBAIC0yMjY1LDYgKzIzMzYsNyBAQCBQaHlzaWNhbENv bmZpcm1SZWNlaXZlZExvY2F0aW9uKFhMb2dSZWNQdHIgbHNuKQogCXsKIAkJUmVwbGljYXRpb25T bG90TWFya0RpcnR5KCk7CiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRMU04oKTsK KwkJUGh5c2ljYWxXYWtldXBMb2dpY2FsV2FsU25kKCk7CiAJfQogCiAJLyoKQEAgLTM1MjcsNiAr MzU5OSw3IEBAIFdhbFNuZFNobWVtSW5pdCh2b2lkKQogCiAJCUNvbmRpdGlvblZhcmlhYmxlSW5p dCgmV2FsU25kQ3RsLT53YWxfZmx1c2hfY3YpOwogCQlDb25kaXRpb25WYXJpYWJsZUluaXQoJldh bFNuZEN0bC0+d2FsX3JlcGxheV9jdik7CisJCUNvbmRpdGlvblZhcmlhYmxlSW5pdCgmV2FsU25k Q3RsLT53YWxfY29uZmlybV9yY3ZfY3YpOwogCX0KIH0KIApAQCAtMzU5Niw4ICszNjY5LDE0IEBA IFdhbFNuZFdhaXQodWludDMyIHNvY2tldF9ldmVudHMsIGxvbmcgdGltZW91dCwgdWludDMyIHdh aXRfZXZlbnQpCiAJICoKIAkgKiBBbmQsIHdlIHVzZSBzZXBhcmF0ZSBzaGFyZWQgbWVtb3J5IENW cyBmb3IgcGh5c2ljYWwgYW5kIGxvZ2ljYWwKIAkgKiB3YWxzZW5kZXJzIGZvciBzZWxlY3RpdmUg d2FrZSB1cHMsIHNlZSBXYWxTbmRXYWtldXAoKSBmb3IgbW9yZSBkZXRhaWxzLgorCSAqCisJICog SWYgdGhlIHdhaXQgZXZlbnQgaXMgV0FJVF9GT1JfU1RBTkRCWV9DT05GSVJNQVRJT04sIHdhaXQg b24gYW5vdGhlciBDVgorCSAqIHVudGlsIGF3YWtlbmVkIGJ5IHBoeXNpY2FsIHdhbHNlbmRlcnMg YWZ0ZXIgdGhlIHdhbHJlY2VpdmVyIGNvbmZpcm1zIHRoZQorCSAqIHJlY2VpcHQgb2YgdGhlIExT Ti4KIAkgKi8KLQlpZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQTElDQVRJT05fS0lORF9QSFlTSUNB TCkKKwlpZiAod2FpdF9ldmVudCA9PSBXQUlUX0VWRU5UX1dBSVRfRk9SX1NUQU5EQllfQ09ORklS TUFUSU9OKQorCQlDb25kaXRpb25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZXYWxTbmRDdGwtPndh bF9jb25maXJtX3Jjdl9jdik7CisJZWxzZSBpZiAoTXlXYWxTbmQtPmtpbmQgPT0gUkVQTElDQVRJ T05fS0lORF9QSFlTSUNBTCkKIAkJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9TbGVlcCgmV2Fs U25kQ3RsLT53YWxfZmx1c2hfY3YpOwogCWVsc2UgaWYgKE15V2FsU25kLT5raW5kID09IFJFUExJ Q0FUSU9OX0tJTkRfTE9HSUNBTCkKIAkJQ29uZGl0aW9uVmFyaWFibGVQcmVwYXJlVG9TbGVlcCgm V2FsU25kQ3RsLT53YWxfcmVwbGF5X2N2KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L3dhaXRfZXZlbnRfbmFtZXMudHh0IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZp dHkvd2FpdF9ldmVudF9uYW1lcy50eHQKaW5kZXggYWVlNWZlNzMxNS4uZmJhOTA0MDE2NSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudF9uYW1lcy50eHQKQEAg LTc4LDYgKzc4LDcgQEAgR1NTX09QRU5fU0VSVkVSCSJXYWl0aW5nIHRvIHJlYWQgZGF0YSBmcm9t IHRoZSBjbGllbnQgd2hpbGUgZXN0YWJsaXNoaW5nIGEgR1NTQVAKIExJQlBRV0FMUkVDRUlWRVJf Q09OTkVDVAkiV2FpdGluZyBpbiBXQUwgcmVjZWl2ZXIgdG8gZXN0YWJsaXNoIGNvbm5lY3Rpb24g dG8gcmVtb3RlIHNlcnZlci4iCiBMSUJQUVdBTFJFQ0VJVkVSX1JFQ0VJVkUJIldhaXRpbmcgaW4g V0FMIHJlY2VpdmVyIHRvIHJlY2VpdmUgZGF0YSBmcm9tIHJlbW90ZSBzZXJ2ZXIuIgogU1NMX09Q RU5fU0VSVkVSCSJXYWl0aW5nIGZvciBTU0wgd2hpbGUgYXR0ZW1wdGluZyBjb25uZWN0aW9uLiIK K1dBSVRfRk9SX1NUQU5EQllfQ09ORklSTUFUSU9OCSJXYWl0aW5nIGZvciB0aGUgV0FMIHRvIGJl IHJlY2VpdmVkIGJ5IHBoeXNpY2FsIHN0YW5kYnkuIgogV0FMX1NFTkRFUl9XQUlUX0ZPUl9XQUwJ IldhaXRpbmcgZm9yIFdBTCB0byBiZSBmbHVzaGVkIGluIFdBTCBzZW5kZXIgcHJvY2Vzcy4iCiBX QUxfU0VOREVSX1dSSVRFX0RBVEEJIldhaXRpbmcgZm9yIGFueSBhY3Rpdml0eSB3aGVuIHByb2Nl c3NpbmcgcmVwbGllcyBmcm9tIFdBTCByZWNlaXZlciBpbiBXQUwgc2VuZGVyIHByb2Nlc3MuIgog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDBmNWVjNjNkZTEuLjJmZjAzODc5 ZWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCkBAIC00NjE4LDYgKzQ2MTgsMjAg QEAgc3RydWN0IGNvbmZpZ19zdHJpbmcgQ29uZmlndXJlTmFtZXNTdHJpbmdbXSA9CiAJCWNoZWNr X2RlYnVnX2lvX2RpcmVjdCwgYXNzaWduX2RlYnVnX2lvX2RpcmVjdCwgTlVMTAogCX0sCiAKKwl7 CisJCXsic3RhbmRieV9zbG90X25hbWVzIiwgUEdDX1NJR0hVUCwgUkVQTElDQVRJT05fUFJJTUFS WSwKKwkJCWdldHRleHRfbm9vcCgiTGlzdHMgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHN0YW5kYnkg c2VydmVyIHNsb3QgIgorCQkJCQkJICJuYW1lcyB0aGF0IGxvZ2ljYWwgV0FMIHNlbmRlciBwcm9j ZXNzZXMgd2lsbCB3YWl0IGZvci4iKSwKKwkJCWdldHRleHRfbm9vcCgiRGVjb2RlZCBjaGFuZ2Vz IGFyZSBzZW50IG91dCB0byBwbHVnaW5zIGJ5IGxvZ2ljYWwgIgorCQkJCQkJICJXQUwgc2VuZGVy IHByb2Nlc3NlcyBvbmx5IGFmdGVyIHNwZWNpZmllZCAiCisJCQkJCQkgInJlcGxpY2F0aW9uIHNs b3RzIGNvbmZpcm0gcmVjZWl2aW5nIFdBTC4iKSwKKwkJCUdVQ19MSVNUX0lOUFVUIHwgR1VDX0xJ U1RfUVVPVEUKKwkJfSwKKwkJJnN0YW5kYnlfc2xvdF9uYW1lcywKKwkJIiIsCisJCWNoZWNrX3N0 YW5kYnlfc2xvdF9uYW1lcywgYXNzaWduX3N0YW5kYnlfc2xvdF9uYW1lcywgTlVMTAorCX0sCisK IAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxMLCAwLCAwLCBOVUxMLCBOVUxM fSwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlz Yy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDEzNmJlOTEyZTYuLjAyMmEyMDUwMDggMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQor KysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTMz NCw2ICszMzQsOCBAQAogCQkJCSMgbWV0aG9kIHRvIGNob29zZSBzeW5jIHN0YW5kYnlzLCBudW1i ZXIgb2Ygc3luYyBzdGFuZGJ5cywKIAkJCQkjIGFuZCBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBh cHBsaWNhdGlvbl9uYW1lCiAJCQkJIyBmcm9tIHN0YW5kYnkocyk7ICcqJyA9IGFsbAorI3N0YW5k Ynlfc2xvdF9uYW1lcyA9ICcnICMgc3RyZWFtaW5nIHJlcGxpY2F0aW9uIHN0YW5kYnkgc2VydmVy IHNsb3QgbmFtZXMgdGhhdAorCQkJCSMgbG9naWNhbCB3YWxzZW5kZXIgcHJvY2Vzc2VzIHdpbGwg d2FpdCBmb3IKIAogIyAtIFN0YW5kYnkgU2VydmVycyAtCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3JlcGxpY2F0aW9uL3Nsb3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApp bmRleCBmODFiZWY5ZTQyLi5lZWY5ZjI1YzQ1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9zbG90LmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBAIC0y MjksNiArMjI5LDcgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIFJlcGxpY2F0aW9uU2xvdCAqTXlSZXBs aWNhdGlvblNsb3Q7CiAKIC8qIEdVQ3MgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgbWF4X3Jl cGxpY2F0aW9uX3Nsb3RzOworZXh0ZXJuIFBHRExMSU1QT1JUIGNoYXIgKnN0YW5kYnlfc2xvdF9u YW1lczsKIAogLyogc2htZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25zICovCiBleHRlcm4gU2l6 ZSBSZXBsaWNhdGlvblNsb3RzU2htZW1TaXplKHZvaWQpOwpAQCAtMjc1LDQgKzI3NiwxMCBAQCBl eHRlcm4gdm9pZCBDaGVja1BvaW50UmVwbGljYXRpb25TbG90cyhib29sIGlzX3NodXRkb3duKTsK IGV4dGVybiB2b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKIGV4dGVybiB2b2lkIENo ZWNrU2xvdFBlcm1pc3Npb25zKHZvaWQpOwogCitleHRlcm4gTGlzdCAqR2V0U3RhbmRieVNsb3RM aXN0KGJvb2wgY29weSk7CitleHRlcm4gdm9pZCBXYWl0Rm9yU3RhbmRieUNvbmZpcm1hdGlvbihY TG9nUmVjUHRyIHdhaXRfZm9yX2xzbik7CitleHRlcm4gdm9pZCBGaWx0ZXJTdGFuZGJ5U2xvdHMo WExvZ1JlY1B0ciB3YWl0X2Zvcl9sc24sCisJCQkJCQkJCQkgTGlzdCAqKnN0YW5kYnlfc2xvdHMp OworZXh0ZXJuIHZvaWQgUmVyZWFkQ29uZmlnQW5kUmVJbml0U2xvdExpc3QoTGlzdCAqKnN0YW5k Ynlfc2xvdHMpOworCiAjZW5kaWYJCQkJCQkJLyogU0xPVF9IICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9u L3dhbHNlbmRlci5oCmluZGV4IDFiNThkNTBiM2IuLjlhNDJiMDFmOWEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5oCkBAIC00NSw2ICs0NSw3IEBAIGV4dGVybiB2b2lkIFdhbFNuZElu aXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lkIFdhbFNuZFdhaXRTdG9wcGluZyh2b2lkKTsK IGV4dGVybiB2b2lkIEhhbmRsZVdhbFNuZEluaXRTdG9wcGluZyh2b2lkKTsKIGV4dGVybiB2b2lk IFdhbFNuZFJxc3RGaWxlUmVsb2FkKHZvaWQpOworZXh0ZXJuIHZvaWQgUGh5c2ljYWxXYWtldXBM b2dpY2FsV2FsU25kKHZvaWQpOwogCiAvKgogICogUmVtZW1iZXIgdGhhdCB3ZSB3YW50IHRvIHdh a2V1cCB3YWxzZW5kZXJzIGxhdGVyCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi93YWxzZW5kZXJfcHJpdmF0ZS5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVy X3ByaXZhdGUuaAppbmRleCAzMTEzZTllYTQ3Li4wZjk2MmIwYzcyIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXJfcHJpdmF0ZS5oCisrKyBiL3NyYy9pbmNsdWRl L3JlcGxpY2F0aW9uL3dhbHNlbmRlcl9wcml2YXRlLmgKQEAgLTExMyw2ICsxMTMsMTMgQEAgdHlw ZWRlZiBzdHJ1Y3QKIAlDb25kaXRpb25WYXJpYWJsZSB3YWxfZmx1c2hfY3Y7CiAJQ29uZGl0aW9u VmFyaWFibGUgd2FsX3JlcGxheV9jdjsKIAorCS8qCisJICogVXNlZCBieSBwaHlzaWNhbCB3YWxz ZW5kZXJzIGhvbGRpbmcgc2xvdHMgc3BlY2lmaWVkIGluCisJICogc3RhbmRieV9zbG90X25hbWVz IHRvIHdha2UgdXAgbG9naWNhbCB3YWxzZW5kZXJzIGhvbGRpbmcKKwkgKiBmYWlsb3Zlci1lbmFi bGVkIHNsb3RzIHdoZW4gYSB3YWxyZWNlaXZlciBjb25maXJtcyB0aGUgcmVjZWlwdCBvZiBMU04u CisJICovCisJQ29uZGl0aW9uVmFyaWFibGUgd2FsX2NvbmZpcm1fcmN2X2N2OworCiAJV2FsU25k CQl3YWxzbmRzW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07CiB9IFdhbFNuZEN0bERhdGE7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Y19ob29rcy5oIGIvc3JjL2luY2x1ZGUvdXRp bHMvZ3VjX2hvb2tzLmgKaW5kZXggNTMwMGM0NGYzYi4uNDY0OTk2YjRmMCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvdXRpbHMvZ3VjX2hvb2tzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZ3Vj X2hvb2tzLmgKQEAgLTE2Miw1ICsxNjIsOCBAQCBleHRlcm4gYm9vbCBjaGVja193YWxfY29uc2lz dGVuY3lfY2hlY2tpbmcoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4dHJhLAogZXh0ZXJuIHZvaWQg YXNzaWduX3dhbF9jb25zaXN0ZW5jeV9jaGVja2luZyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQg KmV4dHJhKTsKIGV4dGVybiBib29sIGNoZWNrX3dhbF9zZWdtZW50X3NpemUoaW50ICpuZXd2YWws IHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSk7CiBleHRlcm4gdm9pZCBhc3NpZ25fd2Fs X3N5bmNfbWV0aG9kKGludCBuZXdfd2FsX3N5bmNfbWV0aG9kLCB2b2lkICpleHRyYSk7CitleHRl cm4gYm9vbCBjaGVja19zdGFuZGJ5X3Nsb3RfbmFtZXMoY2hhciAqKm5ld3ZhbCwgdm9pZCAqKmV4 dHJhLAorCQkJCQkJCQkJIEd1Y1NvdXJjZSBzb3VyY2UpOworZXh0ZXJuIHZvaWQgYXNzaWduX3N0 YW5kYnlfc2xvdF9uYW1lcyhjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKTsKIAogI2Vu ZGlmCQkJCQkJCS8qIEdVQ19IT09LU19IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVy eS9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkCmluZGV4IDg4ZmIw MzA2ZjUuLjQxNTJjMDczMTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1 aWxkCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkCkBAIC00NSw2ICs0NSw3IEBA IHRlc3RzICs9IHsKICAgICAgICd0LzAzN19pbnZhbGlkX2RhdGFiYXNlLnBsJywKICAgICAgICd0 LzAzOF9zYXZlX2xvZ2ljYWxfc2xvdHNfc2h1dGRvd24ucGwnLAogICAgICAgJ3QvMDM5X2VuZF9v Zl93YWwucGwnLAorICAgICAgJ3QvMDUwX3N0YW5kYnlfZmFpbG92ZXJfc2xvdHNfc3luYy5wbCcs CiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDA2X2xv Z2ljYWxfZGVjb2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAwNl9sb2dpY2FsX2RlY29k aW5nLnBsCmluZGV4IDVjN2I0Y2E1ZTMuLjg1ZjAxOTc3NGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlY292ZXJ5L3QvMDA2X2xvZ2ljYWxfZGVjb2RpbmcucGwKKysrIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvdC8wMDZfbG9naWNhbF9kZWNvZGluZy5wbApAQCAtMTcyLDkgKzE3MiwxMCBAQCBpcygkbm9k ZV9wcmltYXJ5LT5zbG90KCdvdGhlcmRiX3Nsb3QnKS0+eydzbG90X25hbWUnfSwKIAl1bmRlZiwg J2xvZ2ljYWwgc2xvdCB3YXMgYWN0dWFsbHkgZHJvcHBlZCB3aXRoIERCJyk7CiAKICMgVGVzdCBs b2dpY2FsIHNsb3QgYWR2YW5jaW5nIGFuZCBpdHMgZHVyYWJpbGl0eS4KKyMgUGFzcyBmYWlsb3Zl cj10cnVlIChsYXN0LWFyZyksIGl0IHNob3VsZCBub3QgaGF2ZSBhbnkgaW1wYWN0IG9uIGFkdmFu Y2luZy4KIG15ICRsb2dpY2FsX3Nsb3QgPSAnbG9naWNhbF9zbG90JzsKICRub2RlX3ByaW1hcnkt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJTRUxFQ1QgcGdfY3JlYXRlX2xvZ2ljYWxfcmVwbGlj YXRpb25fc2xvdCgnJGxvZ2ljYWxfc2xvdCcsICd0ZXN0X2RlY29kaW5nJywgZmFsc2UpOyIKKwki U0VMRUNUIHBnX2NyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoJyRsb2dpY2FsX3Nsb3Qn LCAndGVzdF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IgogKTsKICRub2RlX3ByaW1h cnktPnBzcWwoCiAJJ3Bvc3RncmVzJywgIgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3Zlcnkv dC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsIGIvc3JjL3Rlc3QvcmVjb3Zlcnkv dC8wNTBfc3RhbmRieV9mYWlsb3Zlcl9zbG90c19zeW5jLnBsCmluZGV4IGFlZWIxOWEwNTIuLjMx Y2VlMDhkMDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDUwX3N0YW5kYnlfZmFp bG92ZXJfc2xvdHNfc3luYy5wbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzA1MF9zdGFuZGJ5 X2ZhaWxvdmVyX3Nsb3RzX3N5bmMucGwKQEAgLTg3LDE3ICs4NywzMCBAQCBpcyggJHB1Ymxpc2hl ci0+c2FmZV9wc3FsKAogJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBFTkFCTEUiKTsKIAogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgVGVzdCBsb2dpY2FsIGZhaWxv dmVyIHNsb3RzIG9uIHRoZSBzdGFuZGJ5Ci0jIENvbmZpZ3VyZSBzdGFuZGJ5MSB0byByZXBsaWNh dGUgYW5kIHN5bmNocm9uaXplIGxvZ2ljYWwgc2xvdHMgY29uZmlndXJlZAotIyBmb3IgZmFpbG92 ZXIgb24gdGhlIHByaW1hcnkKKyMgVGVzdCBwcmltYXJ5IGRpc2FsbG93aW5nIHNwZWNpZmllZCBs b2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzIGdldHRpbmcgYWhlYWQgb2YKKyMgc3BlY2lmaWVkIHBo eXNpY2FsIHJlcGxpY2F0aW9uIHNsb3RzLiBJdCB1c2VzIHRoZSBmb2xsb3dpbmcgc2V0IHVwOgog IwotIyAgICAgICAgICAgICAgZmFpbG92ZXIgc2xvdCBsc3ViMV9zbG90LT58IC0tLS0+IHN1YnNj cmliZXIxIChjb25uZWN0ZWQgdmlhIGxvZ2ljYWwgcmVwbGljYXRpb24pCi0jIHByaW1hcnkgLS0t PiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSMgICAgICAgICAgICAgIHBoeXNpY2FsIHNs b3Qgc2IxX3Nsb3QtLS0+fCAtLS0tPiBzdGFuZGJ5MSAoY29ubmVjdGVkIHZpYSBzdHJlYW1pbmcg cmVwbGljYXRpb24pCi0jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgIGxzdWIxX3Nsb3Qoc3luY2VkX3Nsb3QpCisjCQkJCXwgLS0tLT4gc3Rh bmRieTEgKHByaW1hcnlfc2xvdF9uYW1lID0gc2IxX3Nsb3QpCisjCQkJCXwgLS0tLT4gc3RhbmRi eTIgKHByaW1hcnlfc2xvdF9uYW1lID0gc2IyX3Nsb3QpCisjIHByaW1hcnkgLS0tLS0JfAorIwkJ CQl8IC0tLS0+IHN1YnNjcmliZXIxIChmYWlsb3ZlciA9IHRydWUpCisjCQkJCXwgLS0tLT4gc3Vi c2NyaWJlcjIgKGZhaWxvdmVyID0gZmFsc2UpCisjCisjIHN0YW5kYnlfc2xvdF9uYW1lcyA9ICdz YjFfc2xvdCcKKyMKKyMgU2V0IHVwIGlzIGNvbmZpZ3VyZWQgaW4gc3VjaCBhIHdheSB0aGF0IHRo ZSBsb2dpY2FsIHNsb3Qgb2Ygc3Vic2NyaWJlcjEgaXMKKyMgZW5hYmxlZCBmYWlsb3ZlciwgdGh1 cyBpdCB3aWxsIHdhaXQgZm9yIHRoZSBwaHlzaWNhbCBzbG90IG9mCisjIHN0YW5kYnkxKHNiMV9z bG90KSB0byBjYXRjaCB1cCBiZWZvcmUgc2VuZGluZyBkZWNvZGVkIGNoYW5nZXMgdG8gc3Vic2Ny aWJlcjEuCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwogCisjIENyZWF0ZSBwcmltYXJ5CiBteSAkcHJpbWFyeSA9ICRwdWJsaXNoZXI7CisKKyRwcmlt YXJ5LT5wc3FsKCdwb3N0Z3JlcycsCisJcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNpY2FsX3JlcGxp Y2F0aW9uX3Nsb3QoJ3NiMV9zbG90Jyk7fSk7CiskcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLAor CXF7U0VMRUNUIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCdzYjJfc2xvdCcp O30pOworCiBteSAkYmFja3VwX25hbWUgPSAnYmFja3VwJzsKICRwcmltYXJ5LT5iYWNrdXAoJGJh Y2t1cF9uYW1lKTsKIApAQCAtMTA3LDE5ICsxMjAsMTk5IEBAICRzdGFuZGJ5MS0+aW5pdF9mcm9t X2JhY2t1cCgKIAkkcHJpbWFyeSwgJGJhY2t1cF9uYW1lLAogCWhhc19zdHJlYW1pbmcgPT4gMSwK IAloYXNfcmVzdG9yaW5nID0+IDEpOworJHN0YW5kYnkxLT5hcHBlbmRfY29uZigKKwkncG9zdGdy ZXNxbC5jb25mJywgcXEoCitwcmltYXJ5X3Nsb3RfbmFtZSA9ICdzYjFfc2xvdCcKKykpOworJHN0 YW5kYnkxLT5zdGFydDsKKyRwcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRi eTEpOworCisjIENyZWF0ZSBhbm90aGVyIHN0YW5kYnkKK215ICRzdGFuZGJ5MiA9IFBvc3RncmVT UUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRieTInKTsKKyRzdGFuZGJ5Mi0+aW5pdF9mcm9t X2JhY2t1cCgKKwkkcHJpbWFyeSwgJGJhY2t1cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwK KwloYXNfcmVzdG9yaW5nID0+IDEpOworJHN0YW5kYnkyLT5hcHBlbmRfY29uZigKKwkncG9zdGdy ZXNxbC5jb25mJywgcXEoCitwcmltYXJ5X3Nsb3RfbmFtZSA9ICdzYjJfc2xvdCcKKykpOworJHN0 YW5kYnkyLT5zdGFydDsKKyRwcmltYXJ5LT53YWl0X2Zvcl9yZXBsYXlfY2F0Y2h1cCgkc3RhbmRi eTIpOworCisjIENvbmZpZ3VyZSBwcmltYXJ5IHRvIGRpc2FsbG93IGFueSBsb2dpY2FsIHNsb3Rz IHRoYXQgZW5hYmxlZCBmYWlsb3ZlciBmcm9tCisjIGdldHRpbmcgYWhlYWQgb2Ygc3BlY2lmaWVk IHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3QgKHNiMV9zbG90KS4KKyRwcmltYXJ5LT5hcHBlbmRf Y29uZigKKwkncG9zdGdyZXNxbC5jb25mJywgcXEoCitzdGFuZGJ5X3Nsb3RfbmFtZXMgPSAnc2Ix X3Nsb3QnCispKTsKKyRwcmltYXJ5LT5yZWxvYWQ7CisKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIkNSRUFURSBUQUJMRSB0YWJfaW50IChhIGludCBQUklNQVJZIEtFWSk7Iik7CisK KyMgQ3JlYXRlIGEgdGFibGUgYW5kIHJlZnJlc2ggdGhlIHB1YmxpY2F0aW9uCiskc3Vic2NyaWJl cjEtPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcVsKKwlDUkVBVEUgVEFCTEUgdGFiX2ludCAo YSBpbnQgUFJJTUFSWSBLRVkpOworCUFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX215c3ViMSBS RUZSRVNIIFBVQkxJQ0FUSU9OIFdJVEggKGNvcHlfZGF0YSA9IGZhbHNlKTsKK10pOworCisjIENy ZWF0ZSBhbm90aGVyIHN1YnNjcmliZXIgbm9kZSB3aXRob3V0IGVuYWJsaW5nIGZhaWxvdmVyLCB3 YWl0IGZvciBzeW5jIHRvCisjIGNvbXBsZXRlCitteSAkc3Vic2NyaWJlcjIgPSBQb3N0Z3JlU1FM OjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmliZXIyJyk7Ciskc3Vic2NyaWJlcjItPmluaXQ7 Ciskc3Vic2NyaWJlcjItPnN0YXJ0OworJHN1YnNjcmliZXIyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywgcXFbCisJQ1JFQVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlD UkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfbXlzdWIyIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJf Y29ubnN0cicgUFVCTElDQVRJT04gcmVncmVzc19teXB1YiBXSVRIIChzbG90X25hbWUgPSBsc3Vi Ml9zbG90LCBjb3B5X2RhdGEgPSBmYWxzZSk7CitdKTsKIAorIyBTdG9wIHRoZSBzdGFuZGJ5IGFz c29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHBoeXNpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgc28K KyMgdGhhdCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IHdvbid0IHJlY2VpdmUgY2hhbmdl cyB1bnRpbCB0aGUgc3RhbmRieQorIyBjb21lcyB1cC4KKyRzdGFuZGJ5MS0+c3RvcDsKKworIyBD cmVhdGUgc29tZSBkYXRhIG9uIHRoZSBwcmltYXJ5CitteSAkcHJpbWFyeV9yb3dfY291bnQgPSAx MDsKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiX2lu dCBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsICRwcmltYXJ5X3Jvd19jb3VudCk7Iik7CisKKyMg V2FpdCBmb3IgdGhlIHN0YW5kYnkgdGhhdCdzIHVwIGFuZCBydW5uaW5nIGdldHMgdGhlIGRhdGEg ZnJvbSBwcmltYXJ5CiskcHJpbWFyeS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJHN0YW5kYnky KTsKK215ICRyZXN1bHQgPSAkc3RhbmRieTItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxF Q1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3dfY291bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJl c3VsdCwgJ3QnLCAic3RhbmRieTIgZ2V0cyBkYXRhIGZyb20gcHJpbWFyeSIpOworCisjIFdhaXQg Zm9yIHRoZSBzdWJzY3JpcHRpb24gdGhhdCdzIHVwIGFuZCBydW5uaW5nIGFuZCBpcyBub3QgZW5h YmxlZCBmb3IgZmFpbG92ZXIuCisjIEl0IGdldHMgdGhlIGRhdGEgZnJvbSBwcmltYXJ5IHdpdGhv dXQgd2FpdGluZyBmb3IgYW55IHN0YW5kYnlzLgorJHB1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgncmVncmVzc19teXN1YjInKTsKKyRyZXN1bHQgPSAkc3Vic2NyaWJlcjItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgPSAkcHJpbWFyeV9yb3dfY291bnQgRlJPTSB0 YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLCAic3Vic2NyaWJlcjIgZ2V0cyBkYXRhIGZyb20g cHJpbWFyeSIpOworCisjIFRoZSBzdWJzY3JpcHRpb24gdGhhdCdzIHVwIGFuZCBydW5uaW5nIGFu ZCBpcyBlbmFibGVkIGZvciBmYWlsb3ZlcgorIyBkb2Vzbid0IGdldCB0aGUgZGF0YSBmcm9tIHBy aW1hcnkgYW5kIGtlZXBzIHdhaXRpbmcgZm9yIHRoZQorIyBzdGFuZGJ5IHNwZWNpZmllZCBpbiBz dGFuZGJ5X3Nsb3RfbmFtZXMuCiskcmVzdWx0ID0KKyAgJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSA9IDAgRlJPTSB0YWJfaW50OyIpOworaXMoJHJl c3VsdCwgJ3QnLAorCSJzdWJzY3JpYmVyMSBkb2Vzbid0IGdldCBkYXRhIGZyb20gcHJpbWFyeSB1 bnRpbCBzdGFuZGJ5MSBhY2tub3dsZWRnZXMgY2hhbmdlcyIKKyk7CisKKyMgU3RhcnQgdGhlIHN0 YW5kYnkgc3BlY2lmaWVkIGluIHN0YW5kYnlfc2xvdF9uYW1lcyBhbmQgd2FpdCBmb3IgaXQgdG8g Y2F0Y2gKKyMgdXAgd2l0aCB0aGUgcHJpbWFyeS4KKyRzdGFuZGJ5MS0+c3RhcnQ7CiskcHJpbWFy eS0+d2FpdF9mb3JfcmVwbGF5X2NhdGNodXAoJHN0YW5kYnkxKTsKKyRyZXN1bHQgPSAkc3RhbmRi eTEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgY291bnQoKikgPSAkcHJpbWFyeV9y b3dfY291bnQgRlJPTSB0YWJfaW50OyIpOworaXMoJHJlc3VsdCwgJ3QnLCAic3RhbmRieTEgZ2V0 cyBkYXRhIGZyb20gcHJpbWFyeSIpOworCisjIE5vdyB0aGF0IHRoZSBzdGFuZGJ5IHNwZWNpZmll ZCBpbiBzdGFuZGJ5X3Nsb3RfbmFtZXMgaXMgdXAgYW5kIHJ1bm5pbmcsCisjIHByaW1hcnkgbXVz dCBzZW5kIHRoZSBkZWNvZGVkIGNoYW5nZXMgdG8gc3Vic2NyaXB0aW9uIGVuYWJsZWQgZm9yIGZh aWxvdmVyCisjIFdoaWxlIHRoZSBzdGFuZGJ5IHdhcyBkb3duLCB0aGlzIHN1YnNjcmliZXIgZGlk bid0IHJlY2VpdmUgYW55IGRhdGEgZnJvbQorIyBwcmltYXJ5IGkuZS4gdGhlIHByaW1hcnkgZGlk bid0IGFsbG93IGl0IHRvIGdvIGFoZWFkIG9mIHN0YW5kYnkuCiskcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCdyZWdyZXNzX215c3ViMScpOworJHJlc3VsdCA9ICRzdWJzY3JpYmVyMS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSA9ICRwcmltYXJ5X3Jvd19jb3Vu dCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsCisJInN1YnNjcmliZXIxIGdldHMg ZGF0YSBmcm9tIHByaW1hcnkgYWZ0ZXIgc3RhbmRieTEgYWNrbm93bGVkZ2VzIGNoYW5nZXMiKTsK KworIyBTdG9wIHRoZSBzdGFuZGJ5IGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHBoeXNp Y2FsIHJlcGxpY2F0aW9uIHNsb3Qgc28KKyMgdGhhdCB0aGUgbG9naWNhbCByZXBsaWNhdGlvbiBz bG90IHdvbid0IHJlY2VpdmUgY2hhbmdlcyB1bnRpbCB0aGUgc3RhbmRieQorIyBzbG90J3MgcmVz dGFydF9sc24gaXMgYWR2YW5jZWQgb3IgdGhlIHNsb3QgaXMgcmVtb3ZlZCBmcm9tIHRoZQorIyBz dGFuZGJ5X3Nsb3RfbmFtZXMgbGlzdC4KKyRwdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiVFJVTkNBVEUgdGFiX2ludDsiKTsKKyRwdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3Jl Z3Jlc3NfbXlzdWIxJyk7Ciskc3RhbmRieTEtPnN0b3A7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlcmlmeSB0aGF0IHdoZW4gdXNpbmcg cGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzIHRvIGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEKKyMg bG9naWNhbCBzbG90IHdpdGggZmFpbG92ZXIgZW5hYmxlZCwgaXQgd2lsbCBhbHNvIHdhaXQgZm9y IHRoZSBzbG90cyBzcGVjaWZpZWQKKyMgaW4gc3RhbmRieV9zbG90X25hbWVzIHRvIGNhdGNoIHVw LgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor IyBDcmVhdGUgYSBsb2dpY2FsICd0ZXN0X2RlY29kaW5nJyByZXBsaWNhdGlvbiBzbG90IHdpdGgg ZmFpbG92ZXIgZW5hYmxlZAorJHB1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCd0ZXN0X3Nsb3QnLCAndGVz dF9kZWNvZGluZycsIGZhbHNlLCBmYWxzZSwgdHJ1ZSk7IgorKTsKKworbXkgJGJhY2tfcSA9ICRw cmltYXJ5LT5iYWNrZ3JvdW5kX3BzcWwoJ3Bvc3RncmVzJywgb25fZXJyb3Jfc3RvcCA9PiAwKTsK K215ICRwaWQgPSAkYmFja19xLT5xdWVyeSgnU0VMRUNUIHBnX2JhY2tlbmRfcGlkKCknKTsKKwor IyBUcnkgYW5kIGdldCBjaGFuZ2VzIGZyb20gdGhlIGxvZ2ljYWwgc2xvdCB3aXRoIGZhaWxvdmVy IGVuYWJsZWQuCitteSAkb2Zmc2V0ID0gLXMgJHByaW1hcnktPmxvZ2ZpbGU7CiskYmFja19xLT5x dWVyeV91bnRpbChxci8vLAorCSJTRUxFQ1QgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCd0 ZXN0X3Nsb3QnLCBOVUxMLCBOVUxMKTtcbiIpOworCisjIFdhaXQgdW50aWwgdGhlIHByaW1hcnkg c2VydmVyIGxvZ3MgYSB3YXJuaW5nIGluZGljYXRpbmcgdGhhdCBpdCBpcyB3YWl0aW5nCisjIGZv ciB0aGUgc2IxX3Nsb3QgdG8gY2F0Y2ggdXAuCiskcHJpbWFyeS0+d2FpdF9mb3JfbG9nKAorCXFy L1dBUk5JTkc6ICggW0EtWjAtOV0rOik/IHJlcGxpY2F0aW9uIHNsb3QgXCJzYjFfc2xvdFwiIHNw ZWNpZmllZCBpbiBwYXJhbWV0ZXIgXCJzdGFuZGJ5X3Nsb3RfbmFtZXNcIiBkb2VzIG5vdCBoYXZl IGFjdGl2ZV9waWQvLAorCSRvZmZzZXQpOworCitvaygkcHJpbWFyeS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJTRUxFQ1QgcGdfY2FuY2VsX2JhY2tlbmQoJHBpZCkiKSwKKwkiY2FuY2VsbGluZyBw Z19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXMgY29tbWFuZCIpOworCiskYmFja19xLT5xdWl0Owor CiskcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgndGVzdF9zbG90Jyk7IgorKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0aGF0IGxvZ2ljYWwgcmVwbGlj YXRpb24gd2lsbCB3YWl0IGZvciB0aGUgdXNlci1jcmVhdGVkIGluYWN0aXZlCisjIHBoeXNpY2Fs IHNsb3QgdG8gY2F0Y2ggdXAgdW50aWwgd2UgcmVtb3ZlIHRoZSBzbG90IGZyb20gc3RhbmRieV9z bG90X25hbWVzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKworIyBDcmVhdGUgc29tZSBkYXRhIG9uIHRoZSBwcmltYXJ5CiskcHJpbWFyeV9yb3df Y291bnQgPSAxMDsKKyRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElO VE8gdGFiX2ludCBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsICRwcmltYXJ5X3Jvd19jb3VudCk7 Iik7CisKKyRyZXN1bHQgPQorICAkc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi U0VMRUNUIGNvdW50KCopID0gMCBGUk9NIHRhYl9pbnQ7Iik7CitpcygkcmVzdWx0LCAndCcsCisJ InN1YnNjcmliZXIxIGRvZXNuJ3QgZ2V0IGRhdGEgYXMgdGhlIHNiMV9zbG90IGRvZXNuJ3QgY2F0 Y2ggdXAiKTsKKworIyBSZW1vdmUgdGhlIHN0YW5kYnkgZnJvbSB0aGUgc3RhbmRieV9zbG90X25h bWVzIGxpc3QgYW5kIHJlbG9hZCB0aGUKKyMgY29uZmlndXJhdGlvbi4KKyRwcmltYXJ5LT5hZGp1 c3RfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ3N0YW5kYnlfc2xvdF9uYW1lcycsICInJyIpOwor JHByaW1hcnktPnJlbG9hZDsKKworIyBTaW5jZSB0aGVyZSBhcmUgbm8gc2xvdHMgaW4gc3RhbmRi eV9zbG90X25hbWVzLCB0aGUgcHJpbWFyeSBzZXJ2ZXIgc2hvdWxkIG5vdworIyBzZW5kIHRoZSBk ZWNvZGVkIGNoYW5nZXMgdG8gdGhlIHN1YnNjcmlwdGlvbi4KKyRwdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7CiskcmVzdWx0ID0gJHN1YnNjcmliZXIxLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopID0gJHByaW1hcnlfcm93X2NvdW50 IEZST00gdGFiX2ludDsiKTsKK2lzKCRyZXN1bHQsICd0JywKKwkic3Vic2NyaWJlcjEgZ2V0cyBk YXRhIGZyb20gcHJpbWFyeSBhZnRlciBzdGFuZGJ5MSBpcyByZW1vdmVkIGZyb20gdGhlIHN0YW5k Ynlfc2xvdF9uYW1lcyBsaXN0IgorKTsKKworIyBQdXQgdGhlIHN0YW5kYnkgYmFjayBvbiB0aGUg cHJpbWFyeV9zbG90X25hbWUgZm9yIHRoZSByZXN0IG9mIHRoZSB0ZXN0cworJHByaW1hcnktPmFk anVzdF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAnc3RhbmRieV9zbG90X25hbWVzJywgJ3NiMV9z bG90Jyk7CiskcHJpbWFyeS0+cmVsb2FkOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IGxvZ2ljYWwgZmFpbG92ZXIgc2xvdHMgb24g dGhlIHN0YW5kYnkKKyMgQ29uZmlndXJlIHN0YW5kYnkxIHRvIHJlcGxpY2F0ZSBhbmQgc3luY2hy b25pemUgbG9naWNhbCBzbG90cyBjb25maWd1cmVkCisjIGZvciBmYWlsb3ZlciBvbiB0aGUgcHJp bWFyeQorIworIyAgICAgICAgICAgICAgZmFpbG92ZXIgc2xvdCBsc3ViMV9zbG90LT58IC0tLS0+ IHN1YnNjcmliZXIxIChjb25uZWN0ZWQgdmlhIGxvZ2ljYWwgcmVwbGljYXRpb24pCisjIHByaW1h cnkgLS0tPiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyMgICAgICAgICAgICAgIHBoeXNp Y2FsIHNsb3Qgc2IxX3Nsb3QtLS0+fCAtLS0tPiBzdGFuZGJ5MSAoY29ubmVjdGVkIHZpYSBzdHJl YW1pbmcgcmVwbGljYXRpb24pCisjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgIGxzdWIxX3Nsb3Qoc3luY2VkX3Nsb3QpCisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIENyZWF0ZSBhIHN0 YW5kYnkKIG15ICRjb25uc3RyXzEgPSAkcHJpbWFyeS0+Y29ubnN0cjsKICRzdGFuZGJ5MS0+YXBw ZW5kX2NvbmYoCiAJJ3Bvc3RncmVzcWwuY29uZicsIHFxKAogZW5hYmxlX3N5bmNzbG90ID0gdHJ1 ZQogaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgotcHJpbWFyeV9zbG90X25hbWUgPSAnc2IxX3Ns b3QnCiBwcmltYXJ5X2Nvbm5pbmZvID0gJyRjb25uc3RyXzEgZGJuYW1lPXBvc3RncmVzJwogKSk7 CiAKLSRwcmltYXJ5LT5wc3FsKCdwb3N0Z3JlcycsCi0JcXtTRUxFQ1QgcGdfY3JlYXRlX3BoeXNp Y2FsX3JlcGxpY2F0aW9uX3Nsb3QoJ3NiMV9zbG90Jyk7fSk7Ci0KIG15ICRzdGFuZGJ5MV9jb25u aW5mbyA9ICRzdGFuZGJ5MS0+Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKIAogIyBXYWl0 IGZvciB0aGUgc3RhbmRieSB0byBzdGFydCBzeW5jCkBAIC0xMzAsNyArMzIzLDcgQEAgJHN0YW5k YnkxLT5zdGFydDsKICRwcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBwZ19s b2dfc3RhbmRieV9zbmFwc2hvdCgpOyIpOwogCiAjIFdhaXQgZm9yIHRoZSBzdGFuZGJ5IHRvIGZp bmlzaCBzeW5jCi1teSAkb2Zmc2V0ID0gLXMgJHN0YW5kYnkxLT5sb2dmaWxlOworJG9mZnNldCA9 IC1zICRzdGFuZGJ5MS0+bG9nZmlsZTsKICRzdGFuZGJ5MS0+d2FpdF9mb3JfbG9nKAogCXFyL0xP RzogKCBbQS1aMC05XSs6KT8gbmV3bHkgbG9jYWxseSBjcmVhdGVkIHNsb3QgXCJsc3ViMV9zbG90 XCIgaXMgc3luYy1yZWFkeSBub3cvLAogCSRvZmZzZXQpOwpAQCAtMTUwLDE3ICszNDMsMTEgQEAg aXMoJHN0YW5kYnkxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKICMgSW5zZXJ0IGRhdGEgb24gdGhl IHByaW1hcnkKICRwcmltYXJ5LT5zYWZlX3BzcWwoCiAJJ3Bvc3RncmVzJywgcXFbCi0JQ1JFQVRF IFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKKwlUUlVOQ0FURSBUQUJMRSB0YWJf aW50OwogCUlOU0VSVCBJTlRPIHRhYl9pbnQgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLCAxMCk7 CiBdKTsKIAotJHN1YnNjcmliZXIxLT5zYWZlX3BzcWwoCi0JJ3Bvc3RncmVzJywgcXFbCi0JQ1JF QVRFIFRBQkxFIHRhYl9pbnQgKGEgaW50IFBSSU1BUlkgS0VZKTsKLQlBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc19teXN1YjEgUkVGUkVTSCBQVUJMSUNBVElPTjsKLV0pOwotCi0kc3Vic2NyaWJl cjEtPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jOworJHByaW1hcnktPndhaXRfZm9yX2NhdGNo dXAoJ3JlZ3Jlc3NfbXlzdWIxJyk7CiAKICMgRG8gbm90IGFsbG93IGFueSBmdXJ0aGVyIGFkdmFu Y2VtZW50IG9mIHRoZSByZXN0YXJ0X2xzbiBhbmQKICMgY29uZmlybWVkX2ZsdXNoX2xzbiBmb3Ig dGhlIGxzdWIxX3Nsb3QuCkBAIC0xOTksNyArMzg2LDkgQEAgJHN0YW5kYnkxLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgJ0FMVEVSIFNZU1RFTSBTRVQgaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmY7 JykKICRzdGFuZGJ5MS0+cmVzdGFydDsKIAogIyBBdHRlbXB0aW5nIHRvIHBlcmZvcm0gbG9naWNh bCBkZWNvZGluZyBvbiBhIHN5bmNlZCBzbG90IHNob3VsZCByZXN1bHQgaW4gYW4gZXJyb3IKLW15 ICgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRzdGFuZGJ5MS0+cHNxbCgncG9zdGdyZXMn LAorbXkgKCRzdGRvdXQsICRzdGRlcnIpOworCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikg PSAkc3RhbmRieTEtPnBzcWwoJ3Bvc3RncmVzJywKIAkic2VsZWN0ICogZnJvbSBwZ19sb2dpY2Fs X3Nsb3RfZ2V0X2NoYW5nZXMoJ2xzdWIxX3Nsb3QnLE5VTEwsTlVMTCk7Iik7CiBvaygkc3RkZXJy ID1+IC9FUlJPUjogIGNhbm5vdCB1c2UgcmVwbGljYXRpb24gc2xvdCAibHN1YjFfc2xvdCIgZm9y IGxvZ2ljYWwgZGVjb2RpbmcvLAogCSJsb2dpY2FsIGRlY29kaW5nIGlzIG5vdCBhbGxvd2VkIG9u IHN5bmNlZCBzbG90Iik7Ci0tIAoyLjMwLjAud2luZG93cy4yCgo= --_005_OS0PR01MB57169DD55EC8D9D1EDB7A0C2946A2OS0PR01MB5716jpnp_--