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 1rlJnH-001bCj-0J for pgsql-hackers@arkaria.postgresql.org; Sat, 16 Mar 2024 02:29:08 +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 1rlJnD-00DYdX-Ja for pgsql-hackers@arkaria.postgresql.org; Sat, 16 Mar 2024 02:29:04 +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 1rlJnC-00DYdO-Ab for pgsql-hackers@lists.postgresql.org; Sat, 16 Mar 2024 02:29:03 +0000 Received: from mx04.melco.co.jp ([192.218.140.144]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rlJn5-004kbM-9k for pgsql-hackers@postgresql.org; Sat, 16 Mar 2024 02:29:00 +0000 Received: from mr04.melco.co.jp (mr04 [133.141.98.166]) by mx04.melco.co.jp (Postfix) with ESMTP id 4TxQ6F3yjhzMvQB6; Sat, 16 Mar 2024 11:28:53 +0900 (JST) Received: from mr04.melco.co.jp (unknown [127.0.0.1]) by mr04.imss (Postfix) with ESMTP id 4TxQ6F39QCzMt0dT; Sat, 16 Mar 2024 11:28:53 +0900 (JST) Received: from mf04_second.melco.co.jp (unknown [192.168.20.184]) by mr04.melco.co.jp (Postfix) with ESMTP id 4TxQ6F2pDwzMt0dJ; Sat, 16 Mar 2024 11:28:53 +0900 (JST) Received: from mf04.melco.co.jp (unknown [133.141.98.184]) by mf04_second.melco.co.jp (Postfix) with ESMTP id 4TxQ6F2Rg7zMqkG7; Sat, 16 Mar 2024 11:28:53 +0900 (JST) Received: from TYVP286CU001.outbound.protection.outlook.com (unknown [40.93.73.0]) by mf04.melco.co.jp (Postfix) with ESMTP id 4TxQ6F26HzzMqkFw; Sat, 16 Mar 2024 11:28:53 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gnbWtizDUA9MLyvJtWEe+HL2tfwVIZV8EZL9cHr9vGkUejwLUSU/FQ2A2JUbMdPYOyW7+xHdZz1T13KSN9aQl2sfYSMxK+wSq5ZGyM6LGomy8Y4mbupjE8uvt6UFrKCFXQzhxKq78C2Yzt7es4lJ/65RzNJjctAHAXB1PTOYm06Tn1gw4+VrmWax2l0eEEJKSQ3nLGv2tLoLKDvT3wtMJC1tBqVehRm9cOWTQP3rZiRh22s18/MQYAy8yFVeF45KpwJ3pGExu1Y7Mcm4a1t4TeiEJcPiEAgJV4W3hFRyaMDPqKQV2n9Zrb6wTlzHd5do4/SfuJI2m1xIBXMx+cofNg== 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=tXebwnoZXUxmm9rLWGiNVoDMkQMATM8BxGXVXz/BRic=; b=BccdkkGmz06qGmOLKi+RSthIqzPjjUmpZ7NYOclpHUZFNCU8Kl5hbpwl7rKBkHOIVFOyT2S7UKc6+lvd4PkZN4yr23ezRvYOGXyFzGOOLVdCl86IpxJUTys5LTLTRLnQ4D2mF0frrTpeQlrATqjaW8UbmCX1rmHgAPtTA/gMAIvwEtJkVxPrvYyhkGqL9OUesW6IRPL88vDigrFaGQ3Xdy2HfU/vrtxlUUqU/65IpQv5xHDNGaKBxvMPxMuAky5Kd88ra5/X2xMqUEzim/CyrCKNNH6mVMBiQVXPc1B/afzywdXmvMXgz9yJ1fw9SoE+C7uGAL21BvyeTOT+diw1Zw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=df.mitsubishielectric.co.jp; dmarc=pass action=none header.from=df.mitsubishielectric.co.jp; dkim=pass header.d=df.mitsubishielectric.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mitsubishielectricgroup.onmicrosoft.com; s=selector2-mitsubishielectricgroup-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tXebwnoZXUxmm9rLWGiNVoDMkQMATM8BxGXVXz/BRic=; b=aTEt7zglubYw8TBXXnIU2i+n5nTv/TN3n9mkCa/LcvI6850lRZI21t5VtsB4N3MqgpWV4WGRs8pOw3OqtXLjkhE6W5jcBXRtKa5FoohFgDmnVuUHPZ4gx0PDEMlUjt1It+f03xoDqK50XNgS7hGY3rYazHwp9cysOHlFP9HST6c= Received: from TYAPR01MB5514.jpnprd01.prod.outlook.com (2603:1096:404:8035::12) by TYCPR01MB10994.jpnprd01.prod.outlook.com (2603:1096:400:3a4::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.23; Sat, 16 Mar 2024 02:28:51 +0000 Received: from TYAPR01MB5514.jpnprd01.prod.outlook.com ([fe80::9fff:7365:a705:51cf]) by TYAPR01MB5514.jpnprd01.prod.outlook.com ([fe80::9fff:7365:a705:51cf%5]) with mapi id 15.20.7386.020; Sat, 16 Mar 2024 02:28:51 +0000 From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" To: Alexander Pyhalov CC: Robert Haas , PostgreSQL-development , Tom Lane , Bruce Momjian , Stephen Frost , "Finnerty, Jim" , Andres Freund , Tomas Vondra , Julien Rouhaud , Daniel Gustafsson , vignesh C , "Fujii.Yuki@df.MitsubishiElectric.co.jp" Subject: RE: Partial aggregates pushdown Thread-Topic: Partial aggregates pushdown Thread-Index: AQHaZV+FhOOC+4jqD0O6QaSNENpP/LEfzV+AgBnxJJA= Date: Sat, 16 Mar 2024 02:28:50 +0000 Message-ID: References: <8175ddeb6d417d8a1f91e667fef77abf@postgrespro.ru> <4012625.1701120204@sss.pgh.pa.us> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-melpop: 1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=df.MitsubishiElectric.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYAPR01MB5514:EE_|TYCPR01MB10994:EE_ x-ms-office365-filtering-correlation-id: 859522a4-11dc-4841-adb4-08dc4560d13f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: C3mmhaUi3ebes/0H981hmp9lhckD4FLp+i7SybOLFKZNMY7xuIzNuArai/A0hMjoEBseQebHJlFPea0gRD8hGC35RYlnIGaMqokusdY+2msvPJGzZesHfmqj6rZ7x7Yui/ou2qKuJgxFnLUV/uMrJup5ZgEhhNSiCLqOpNnKlQaAsYxsDR8j7QSOG5eJ0SyO6XnZDHtjaNPG/b3QsbuYrZGEl1w/KOpDG7qOXj0468XpMVrnuSTTWv/Yq87b8LhxBOkq8VYm5r7KSPERopqPktMBsBHZbDiKZHFqCfk1h9W60TZL1sAyAW7Zs/1i6frvRnDBFTbnBB5RVnPz3OGWNKZUsb3dttjW+xaMUO7saaOtPx20MasVSJDtiJFNbmSgii7En+sEP4k/zE8DMJIng37KPJcS+RJ5ClSozh6dzvsUoX8CA1yLek2EmouLtSVryqK7+sOMXCAHi07gUdFSrjfGeTL+TvZur3Zgm4sVZy9yXVsfK08knX1Rij2Wxr9q96DiVga2URsOkzVJ3iH58OBFrTkqvAEJ4bIfWucKqRBpa8P36XLC+bOpGkSCKL4t0huxEQM2SdlC7Vf++Ojk6Z3hL3KEKlo9EX6yvc/UXoBqLwEluI9BdyZV3pRMLg/zJ16qIs5n0+t4UbMDFYa0GAcIYwWWn29nHtA6EuNTa09QDg7e8xpEAIbIB/kC56/ulR8jmdVRpRPq6/1UyNoBIAP8AZTW0648EF6GyxH1/Lw= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYAPR01MB5514.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(7416005)(1800799015)(366007)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bmh3RGk2bDB0cytvQlBZd1lzM1lHTEhIbUpWYW53cHRNTE5vNTc4WTJwMXI5?= =?utf-8?B?R1JTQS9Rb2NuOG93WEZuZlcrZ3NwMjZpRUZFNGd3RlVhaU5KNGROWnVLZk9h?= =?utf-8?B?aFR2L0JTRitTSWVZNU5TaWllWHA0NWFIcVByU0J6OGRLaitwY2JHbWJnT01C?= =?utf-8?B?R3hMR0xVcDZsbXQvWGdOV1QzdHd6M2pkczI3UDRBc2lVWjlRT2xLdU9nZlYv?= =?utf-8?B?cE9KQnhTT1lEMkptaC83TE1LRGNLNnMxa1RUYjhLZm5xZlRoOHQzZTFtYzIy?= =?utf-8?B?OU5CVjRBVC8ydFo0eUphd3A4UnR6RTNOek5KdVF4YWhKYllhbUhqQnNtejA5?= =?utf-8?B?b2FMZUpiYmtuaFhWYVF1eEluVGcyRTI2UURGb0hBeWxiakM3bkJrZDBxbTUx?= =?utf-8?B?WVMwMVZXbjQrV0hIZG9RbmFBRFAwdkNIK1FNeDNrbHBCUGJLVEdzd01Jd1Ft?= =?utf-8?B?UzVXbTIybHMrMmZHZEVYSkFUdmZONFE3VzNvQkRWeC9pL3NXVlZ1NSsrNDly?= =?utf-8?B?aDQ1SDFsM0M1TUlPcjJLL2NjeHl2ZWErSm1DS2pUbmd6QnJsYjNEdmNiV29E?= =?utf-8?B?WjVvQjFZQnVnMHQvYUI1SEZoWXlabUJnMldPczRNUE12aW1QUHNpdnlyaVFT?= =?utf-8?B?VWh1Qldtenl3T2d0QlZkbWtTNWIyQ3N1bkpLdmVsT1ViZVQxZjNERmh5UU43?= =?utf-8?B?Mm1Idjd2SzhRcnR5WlRqcEFFTjlRd2xYeGpJLzRXaU1lMTg3aW41MlhyUXV6?= =?utf-8?B?TCtmMjlmaHNxQWdNcEV1NTJ1b1pIdHo0bitvUGt1eFVVL0xET21qUk1qV3N4?= =?utf-8?B?VXNnMUt3R3dtQ21kcFM0a1dYemNMUjBPb3FaT1dkLzZKNEFoZjYwWENuSGYx?= =?utf-8?B?UWFTUVU3MXB4ZllGdnAyR3lLeXV0VmYySjhvWFNuV3d5cXplUkRMc3BCM3dp?= =?utf-8?B?MDRBMVdaUXFodm5jcm5QTS9NZGFBaGRtelM5K2VtS0ErZDAyZUEvK3RvbFZW?= =?utf-8?B?U01HWDhXOFNFTkZYYXM2OVZQc0RPUDRrQmI1WFovaWl4WEpVZVIzNGN6dTF6?= =?utf-8?B?ck4zTkFMMHRTZ3drRDM0T2I0WllyNjNYNUl0TE54RGY2MW5lUDBWYW8xYWlC?= =?utf-8?B?Y09tUHFrbDVna3VsaE9sZXZFSDlQVjBYbGwzMnlRNW1rVlpCUE5aNVFxRUti?= =?utf-8?B?RlV1L0xOQi9zNzdjYm5OSE9GWEhXYzZ0Z0VocjZFNnUzUUpHUFJyaHpWMm1p?= =?utf-8?B?aFg5Q21EM1JvZUliZHRMdEFTNjlvRHhuNWpKTEVXZ0VtSElNaHBRZW9TMGVu?= =?utf-8?B?Y3E3TW16Unc4eVFJc0M0bVR4Y0VDRXpPN3hKaURZTStEQ3lhUmZ5WWtLbFpS?= =?utf-8?B?VVlVeTljc2tDLzAzZ0JOUk9NUEJjSE92S0ZVTmJjQk1mUm9vZjdKWXVsMG4w?= =?utf-8?B?bkIvVmVyOGxKM1kyaEJuOUNSdTM0QkNWbzVGdW9ESUJkTlk3KzJPdlowcFdi?= =?utf-8?B?QkVKdzl3Q3B1S0hiRjU0bm5uUWl0dnArbTRXKzVmRldFRXdZZlVNOU1CNCs0?= =?utf-8?B?OWEyQ0FSLzByRzFMYWxLVjRhRzB1c1lJMmNRcEpRbndDVGVNdkJPQWtmQjF2?= =?utf-8?B?QjRvazZhNlY4SE5zYktWNTh0Uzdqcm9SQ2FsR0h0emZjRFB0VWI1bTM5U25S?= =?utf-8?B?UHhyWlkvc2N4RWZXc2RBK3JPN2tDK1RYZHQ1RUtTMzk4bU5SMzEzZlVtYng4?= =?utf-8?B?VEJyMFIrZjZPSmxkY0lnOXJ0VXZHekVzc1lpUEwxMEtjR0s4U0dXSHJ4c1hY?= =?utf-8?B?QWpvSHE2ODQ1bC9RNDNsYTdlZUN0NHNML0hEdTNLdWVYZWR1ejM2SGoyK2o4?= =?utf-8?B?SnlaMnE4cWRPUnBoNmpOY1l3Y3g2MVdRSklxWnc5a1EvMitnMmpyVVFjZi9v?= =?utf-8?B?bk9KZGlMZ0xXVzlpOGltbmNjMjFOdXl5R1FCSk05WVBrUldYVFhMdHZqVmRL?= =?utf-8?B?YndQUEpZK0V1RDZJMnl5MFZsQjJlVmV1MTF0WXh6dEFQNy9mSlBqRXowSlFF?= =?utf-8?B?WFMxZVdGL1VSaTNNb3VSRFRNZTFYOXIyWHpIdzZyRXBVL2t2MjNrZzlDSTFn?= =?utf-8?Q?T1j/V7QK/BeDwiOhIqO3lvmEo?= Content-Type: multipart/mixed; boundary="_002_TYAPR01MB55141D18188AC86ADCE35FCB952F2TYAPR01MB5514jpnp_" MIME-Version: 1.0 X-OriginatorOrg: df.MitsubishiElectric.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB5514.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 859522a4-11dc-4841-adb4-08dc4560d13f X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2024 02:28:50.9106 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c5a75b62-4bff-4c96-a720-6621ce9978e5 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GZyeSCfFNzEyCN9LBfsiUUaTV3GC/OCC9/UpiJY/XVKuGuY2W2ABGOiLNA35aAvXlWegiFl9xGpGFVlnNFZeog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10994 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TYAPR01MB55141D18188AC86ADCE35FCB952F2TYAPR01MB5514jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkuIE1yLlB5aGFsb3YuDQoNCj4gRnJvbTogQWxleGFuZGVyIFB5aGFsb3YgPGEucHloYWxvdkBw b3N0Z3Jlc3Byby5ydT4NCj4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFyeSAyOCwgMjAyNCAxMDo0 MyBQTQ0KPiA+IDEuIFRyYW5zbWl0dGluZyBzdGF0ZSB2YWx1ZSBzYWZlbHkgYmV0d2VlbiBtYWNo aW5lcw0KPiA+PiBGcm9tOiBSb2JlcnQgSGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPg0KPiA+ PiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDYsIDIwMjMgMTA6MjUgUE0gdGhlIHByb2JsZW1z IGFyb3VuZA0KPiA+PiB0cmFuc21pdHRpbmcgc2VyaWFsaXplZCBieXRlYSBibG9icyBiZXR3ZWVu IG1hY2hpbmVzIHRoYXQgY2FuJ3QgYmUNCj4gPj4gYXNzdW1lZCB0byBmdWxseSB0cnVzdCBlYWNo IG90aGVyIHdpbGwgbmVlZCB0byBiZSBhZGRyZXNzZWQgaW4gc29tZQ0KPiA+PiB3YXksIHdoaWNo IHNlZW1zIGxpa2UgaXQgd2lsbCByZXF1aXJlIGEgZ29vZCBkZWFsIG9mIGRlc2lnbiB3b3JrLA0K PiA+PiBmb3JtaW5nIHNvbWUga2luZCBvZiBjb25zZW5zdXMsIGFuZCB0aGVuIGltcGxlbWVudGF0 aW9uIHdvcmsgdG8NCj4gPj4gZm9sbG93Lg0KPiA+IEkgaGF2ZSBjb25zaWRlcmVkIG1ldGhvZHMg Zm9yIHNhZmVseSB0cmFuc21pdHRpbmcgc3RhdGUgdmFsdWVzIGJldHdlZW4NCj4gPiBkaWZmZXJl bnQgbWFjaGluZXMuDQo+ID4gSSBoYXZlIHRha2VuIGludG8gYWNjb3VudCB0aGUgdmVyc2lvbiBw b2xpY3kgb2YgUG9zdGdyZVNRTCAoNSB5ZWFycyBvZg0KPiA+IHN1cHBvcnQpIGFuZCB0aGUgbWFq b3IgdmVyc2lvbiByZWxlYXNlIGN5Y2xlIG92ZXIgdGhlIHBhc3QgMTAgeWVhcnMgKDENCj4gPiB5 ZWFyKSwgYW5kIGFzIGEgcmVzdWx0LCBJIGhhdmUgbWFkZSB0aGUgYXNzdW1wdGlvbiB0aGF0IHRy YW5zbWlzc2lvbg0KPiA+IGlzIGFsbG93ZWQgb25seSB3aGVuIHRoZSBkaWZmZXJlbmNlIGJldHdl ZW4gdGhlIGxvY2FsIHZlcnNpb24gYW5kIHRoZQ0KPiA+IHJlbW90ZSB2ZXJzaW9uIGlzIDUgb3Ig bGVzcy4NCj4gPiBJIGJlbGlldmUgdGhhdCBieSBhZGRpbmcgbmV3IGNvbXBvbmVudHMsICJleHBv cnQgZnVuY3Rpb24iIGFuZCAiaW1wb3J0DQo+ID4gZnVuY3Rpb24iLCB0byB0aGUgYWdncmVnYXRl IGZ1bmN0aW9ucywgYW5kIGZ1cnRoZXIgaW50cm9kdWNpbmcgYSBuZXcNCj4gPiBTUUwga2V5d29y ZCB0byB0aGUgcXVlcnkgc3ludGF4IG9mIGFnZ3JlZ2F0ZSBleHByZXNzaW9ucywgd2UgY2FuDQo+ ID4gYWRkcmVzcyB0aGlzIGlzc3VlLg0KPiA+DQogLi4uDQo+IA0KPiBJIGhvbmVzdGx5IHRoaW5r IHRoYXQgYWNoaWV2aW5nIGNyb3NzLXZlcnNpb24gY29tcGF0aWJpbGl0eSBpbiB0aGlzIHdheSBw dXRzIGEgc2lnbmlmaWNhbnQgYnVyZGVuIG9uIGRldmVsb3BlcnMuIENhbiB3ZQ0KPiBpbnN0ZWFk IGFsd2F5cyB1c2UgdGhlIG1vcmUgb3IgbGVzcyB1bml2ZXJzYWwgZXhwb3J0IGFuZCBpbXBvcnQg ZnVuY3Rpb24gdG8gZml4IHBvc3NpYmxlIGlzc3VlcyB3aXRoIGJpbmFyeSByZXByZXNlbnRhdGlv bnMNCj4gb24gZGlmZmVyZW50IGFyY2hpdGVjdHVyZXMgYW5kIGp1c3QgcmVmdXNlIHRvIHB1c2gg ZG93biBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgb24gc2VydmVyIHZlcnNpb24gbWlzbWF0Y2g/IEF0IGxl YXN0IGF0IHRoZSBmaXJzdA0KPiBzdGVwPw0KVGhhbmsgeW91IGZvciB5b3VyIGNvbW1lbnQuIEkg YWdyZWUgd2l0aCB5b3VyIHBvaW50IHRoYXQgdGhlIHByb3Bvc2VkIG1ldGhvZCB3b3VsZCBpbXBv c2UgYSBzaWduaWZpY2FudCBidXJkZW4gb24gZGV2ZWxvcGVycy4gSW4gb3JkZXIgdG8gZW5zdXJl IGNyb3NzLXZlcnNpb24gY29tcGF0aWJpbGl0eSwgaXQgaXMgbmVjZXNzYXJ5IHRvIGltcG9zZSBj b25zdHJhaW50cyBvbiB0aGUgZm9ybWF0IG9mIHRoZSBzdGF0ZSB2YWx1ZXMgZXhjaGFuZ2VkIGJl dHdlZW4gc2VydmVycywgd2hpY2ggd291bGQgaW5kZWVkIGJ1cmRlbiBkZXZlbG9wZXJzLiBBcyB5 b3UgbWVudGlvbmVkLCBJIHRoaW5rIHRoYXQgaXQgaXMgcmVhbGlzdGljIHRvIGFsbG93IHBhcnRp YWwgYWdncmVnYXRpb24gcHVzaGRvd24gb25seSB3aGVuIGNvb3JkaW5hdGluZyBiZXR3ZWVuIHRo ZSBzYW1lIHZlcnNpb25zIGluIHRoZSBmaXJzdCBzdGVwLg0KDQo+IEZyb206IEFsZXhhbmRlciBQ eWhhbG92IDxhLnB5aGFsb3ZAcG9zdGdyZXNwcm8ucnU+DQo+IFNlbnQ6IFdlZG5lc2RheSwgRmVi cnVhcnkgMjgsIDIwMjQgMTA6NDMgUE0NCj4gPiAzLiBGaXhpbmcgdGhlIGJlaGF2aW9yIHdoZW4g dGhlIEhBVklORyBjbGF1c2UgaXMgcHJlc2VudA0KPiA+PiBGcm9tOiBSb2JlcnQgSGFhcyA8cm9i ZXJ0bWhhYXNAZ21haWwuY29tPg0KPiA+PiBTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAyOCwgMjAy MyA0OjA4IEFNDQo+ID4+DQo+ID4+IE9uIFdlZCwgTm92IDIyLCAyMDIzIGF0IDE6MzLigK9BTSBB bGV4YW5kZXIgUHloYWxvdg0KPiA+PiA8YS5weWhhbG92QHBvc3RncmVzcHJvLnJ1PiB3cm90ZToN Cj4gPj4gPiBIaS4gSEFWSU5HIGlzIGFsc28gYSBwcm9ibGVtLiBDb25zaWRlciB0aGUgZm9sbG93 aW5nIHF1ZXJ5DQo+ID4+ID4NCj4gPj4gPiBTRUxFQ1QgY291bnQoYSkgRlJPTSB0IEhBVklORyBj b3VudChhKSA+IDEwIC0gd2UgY2FuJ3QgcHVzaCBpdCBkb3duDQo+ID4+ID4gdG8gZm9yZWlnbiBz ZXJ2ZXIgYXMgSEFWSU5HIG5lZWRzIGZ1bGwgYWdncmVnYXRlIHJlc3VsdCwgYnV0DQo+ID4+ID4g Zm9yZWlnbiBzZXJ2ZXIgZG9uJ3Qga25vdyBpdC4NCj4gPj4NCj4gPj4gSSBkb24ndCBzZWUgaXQg dGhhdCB3YXkuIFdoYXQgd2Ugd291bGQgcHVzaCB0byB0aGUgZm9yZWlnbiBzZXJ2ZXINCj4gPj4g d291bGQgYmUgc29tZXRoaW5nIGxpa2UgU0VMRUNUIGNvdW50KGEpIEZST00gdC4gVGhlbiwgYWZ0 ZXIgd2UgZ2V0DQo+ID4+IHRoZSByZXN1bHRzIGJhY2sgYW5kIGNvbWJpbmUgdGhlIHZhcmlvdXMg cGFydGlhbCBjb3VudHMgbG9jYWxseSwgd2UNCj4gPj4gd291bGQgbG9jYWxseSBldmFsdWF0ZSB0 aGUgSEFWSU5HIGNsYXVzZSBhZnRlcndhcmQuIFRoYXQgaXMsIHBhcnRpYWwNCj4gPj4gYWdncmVn YXRpb24gaXMgYSBiYXJyaWVyIHRvIHB1c2hpbmcgZG93biBIQVZJTkcgY2xhdXNlIGl0c2VsZiwg YnV0IGl0DQo+ID4+IGRvZXNuJ3QgcHJlY2x1ZGUgcHVzaGluZyBkb3duIHRoZSBhZ2dyZWdhdGlv bi4NCj4gPiBJIGhhdmUgbWFkZSBtb2RpZmljYXRpb25zIGluIHRoZSBhdHRhY2hlZCBwYXRjaCB0 byBlbnN1cmUgdGhhdCB3aGVuDQo+ID4gdGhlIEhBVklORyBjbGF1c2UgaXMgcHJlc2VudCwgdGhl IEhBVklORyBjbGF1c2UgaXMgZXhlY3V0ZWQgbG9jYWxseQ0KPiA+IHdoaWxlIHRoZSBwYXJ0aWFs IGFnZ3JlZ2F0aW9ucyBhcmUgcHVzaGVkIGRvd24uDQo+ID4NCj4gPg0KPiANCj4gU29ycnksIEkg ZG9uJ3Qgc2VlIGhvdyBpdCB3b3Jrcy4gV2hlbiB3ZSBoYXZlIHBhcnRpYWwgYWdncmVnYXRlcyBh bmQgaGF2aW5nIGNsYXVzZSwgZm9yZWlnbl9ncm91cGluZ19vaygpIHJldHVybnMgZmFsc2UgYW5k DQo+IGFkZF9mb3JlaWduX2dyb3VwaW5nX3BhdGhzKCkgYWRkcyBubyBwYXRocy4NCj4gSSdtIG5v dCBzYXlpbmcgaXQncyBuZWNlc3NhcnkgdG8gZml4IHRoaXMgaW4gdGhlIGZpcnN0IHBhdGNoIHZl cnNpb24uDQpPdXIgc2luY2VyZSBhcG9sb2dpZXMuIEkgaGFkIGF0dGFjaGVkIGFuIG9sZGVyIHZl cnNpb24gYmVmb3JlIHRoaXMgbW9kaWZpY2F0aW9uLg0KDQo+IEZyb206IEFsZXhhbmRlciBQeWhh bG92IDxhLnB5aGFsb3ZAcG9zdGdyZXNwcm8ucnU+DQo+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVh cnkgMjgsIDIwMjQgMTA6NDMgUE0NCj4gY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVwYXJzZS5jOiBj b21tZW50IGJlZm9yZSBhcHBlbmRGdW5jdGlvbk5hbWUoKSBoYXMgZ29uZSwgdGhpcyBzZWVtcyB0 byBiZSB3cm9uZy4NCkZpeGVkLg0KDQo+IEZyb206IEFsZXhhbmRlciBQeWhhbG92IDxhLnB5aGFs b3ZAcG9zdGdyZXNwcm8ucnU+DQo+IFNlbnQ6IFdlZG5lc2RheSwgRmVicnVhcnkgMjgsIDIwMjQg MTA6NDMgUE0NCj4gSW4gZmluYWxpemVfYWdncmVnYXRlKCkNCj4gDQo+IDEwNzkgICAgICAgICAv Kg0KPiAxMDgwICAgICAgICAgICogQXBwbHkgdGhlIGFnZydzIGZpbmFsZm4gaWYgb25lIGlzIHBy b3ZpZGVkLCBlbHNlIHJldHVybg0KPiB0cmFuc1ZhbHVlLg0KPiAxMDgxICAgICAgICAgICovDQo+ IA0KPiBDb21tZW50IHNob3VsZCBiZSB1cGRhdGVkIHRvIG5vdGUgYmVoYXZpb3IgZm9yIGFnZ19w YXJ0aWFsIGFnZ3JlZ2F0ZXMuDQpGaXhlZC4NCg0KPiBGcm9tOiBBbGV4YW5kZXIgUHloYWxvdiA8 YS5weWhhbG92QHBvc3RncmVzcHJvLnJ1Pg0KPiBTZW50OiBXZWRuZXNkYXksIEZlYnJ1YXJ5IDI4 LCAyMDI0IDEwOjQzIFBNDQo+IEluIHRoaXMgaWYgYnJhbmNoLCBzaG91bGQgd2UgY2hlY2sganVz dCBmb3IgcGVyYWdnLT5hZ2dyZWYtPmFnZ19wYXJ0aWFsIGFuZCBwZXJhZ2ctPmFnZ3JlZi0+YWdn dHJhbnN0eXBlID09DQo+IElOVEVSTkFMT0lEPyBJdCBzZWVtcyB0aGF0IGlmDQo+IHBlcmFnZy0+ YWdncmVmLT5hZ2d0cmFuc3R5cGUgPT0gSU5URVJOQUxPSUQgYW5kIHRoZXJlJ3Mgbm8NCj4gc2Vy aWFsZm5fb2lkLCBpdCdzIGxpa2VseSBhbiBlcnJvciAoYW5kIG9uZSBzaG91bGQgYmUgZ2VuZXJh dGVkKS4NCkFzIHlvdSBwb2ludGVkIG91dCwgSSBoYXZlIG1hZGUgbW9kaWZpY2F0aW9ucyB0byB0 aGUgc291cmNlIGNvZGUgc28gdGhhdCBpdCB0ZXJtaW5hdGVzIHdpdGggYW4gZXJyb3IgaWYgc2Vy aWFsZm4gaXMgaW52YWxpZC4NCg0KU2luY2VyZWx5IHlvdXJzLA0KWXV1a2kgRnVqaWkNCg0KLS0N Cll1dWtpIEZ1amlpDQpJbmZvcm1hdGlvbiBUZWNobm9sb2d5IFImRCBDZW50ZXIgTWl0c3ViaXNo aSBFbGVjdHJpYyBDb3Jwb3JhdGlvbg0K --_002_TYAPR01MB55141D18188AC86ADCE35FCB952F2TYAPR01MB5514jpnp_ Content-Type: application/octet-stream; name="0001-Partial-aggregates-push-down-SQL-keyword-v2.patch" Content-Description: 0001-Partial-aggregates-push-down-SQL-keyword-v2.patch Content-Disposition: attachment; filename="0001-Partial-aggregates-push-down-SQL-keyword-v2.patch"; size=146707; creation-date="Sat, 16 Mar 2024 02:22:49 GMT"; modification-date="Sat, 16 Mar 2024 02:28:50 GMT" Content-Transfer-Encoding: base64 RnJvbSAwNmMyODU3N2RhOTAyMTY3ZDUyMzRjNGZjYWMwOTBhNmIyYWM0Y2Q5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiWXVraSBGdWppaSBGdWppaS5ZdWtpQGRmLk1pdHN1YmlzaGlF bGVjdHJpYy5jby5qcCIKIDxGdWppaS5ZdWtpQGRmLk1pdHN1YmlzaGlFbGVjdHJpYy5jby5qcD4K RGF0ZTogU2F0LCAxNiBNYXIgMjAyNCAyMTowMjo1NyArMDkwMApTdWJqZWN0OiBbUEFUQ0hdIFBh cnRpYWwgYWdncmVnYXRlcyBwdXNoIGRvd24gU1FMIGtleXdvcmQgdjIKCi0tLQogY29udHJpYi9w b3N0Z3Jlc19mZHcvZGVwYXJzZS5jICAgICAgICAgICAgICAgICB8ICA4MyArKystCiBjb250cmli L3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IHwgNjM5ICsrKysrKysrKysr KysrKysrKysrKysrLS0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlvbi5jICAgICAgICAgICAg ICAgICAgfCAgIDQgKy0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jICAgICAg ICAgICAgfCAgNDMgKy0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5oICAgICAg ICAgICAgfCAgMTAgKwogY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwg ICAgICB8IDE1NSArKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYyAgICAgICAg ICAgICAgICAgfCAgNjAgKystCiBzcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyAgICAgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAg ICAgICAgICAgfCAxMzMgKysrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMu YyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGFnZy5j ICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAg ICAgICAgICAgIHwgIDI5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAg ICAgICAgICAgIHwgIDI0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAg ICAgICAgICAgfCAgMjQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAg ICAgICAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVBZ2cuaCAgICAgICAg ICAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAg ICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAg ICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfYWdnLmggICAgICAgICAgICAg ICAgIHwgICAyICstCiAyMyBmaWxlcyBjaGFuZ2VkLCAxMTE1IGluc2VydGlvbnMoKyksIDEyMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9kZXBhcnNlLmMg Yi9jb250cmliL3Bvc3RncmVzX2Zkdy9kZXBhcnNlLmMKaW5kZXggY2U3NjVlYy4uYzg5MTYxYyAx MDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVwYXJzZS5jCisrKyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2RlcGFyc2UuYwpAQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBib29sIGlz X3N1YnF1ZXJ5X3ZhcihWYXIgKm5vZGUsIFJlbE9wdEluZm8gKmZvcmVpZ25yZWwsCiAJCQkJCQkJ aW50ICpyZWxubywgaW50ICpjb2xubyk7CiBzdGF0aWMgdm9pZCBnZXRfcmVsYXRpb25fY29sdW1u X2FsaWFzX2lkcyhWYXIgKm5vZGUsIFJlbE9wdEluZm8gKmZvcmVpZ25yZWwsCiAJCQkJCQkJCQkJ ICBpbnQgKnJlbG5vLCBpbnQgKmNvbG5vKTsKLQorc3RhdGljIGJvb2wgcGFydGlhbF9hZ2dfb2so QWdncmVmICphZ2csIFBnRmR3UmVsYXRpb25JbmZvICpmcGluZm8pOwogCiAvKgogICogRXhhbWlu ZSBlYWNoIHF1YWwgY2xhdXNlIGluIGlucHV0X2NvbmRzLCBhbmQgY2xhc3NpZnkgdGhlbSBpbnRv IHR3byBncm91cHMsCkBAIC05MTEsOCArOTExLDkgQEAgZm9yZWlnbl9leHByX3dhbGtlcihOb2Rl ICpub2RlLAogCQkJCWlmICghSVNfVVBQRVJfUkVMKGdsb2JfY3h0LT5mb3JlaWducmVsKSkKIAkJ CQkJcmV0dXJuIGZhbHNlOwogCi0JCQkJLyogT25seSBub24tc3BsaXQgYWdncmVnYXRlcyBhcmUg cHVzaGFibGUuICovCi0JCQkJaWYgKGFnZy0+YWdnc3BsaXQgIT0gQUdHU1BMSVRfU0lNUExFKQor CQkJCWlmIChhZ2ctPmFnZ3NwbGl0ICE9IEFHR1NQTElUX1NJTVBMRSAmJiBhZ2ctPmFnZ3NwbGl0 ICE9IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMKQorCQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJaWYg KGFnZy0+YWdnc3BsaXQgPT0gQUdHU1BMSVRfSU5JVElBTF9TRVJJQUwgJiYgIXBhcnRpYWxfYWdn X29rKGFnZywgZnBpbmZvKSkKIAkJCQkJcmV0dXJuIGZhbHNlOwogCiAJCQkJLyogQXMgdXN1YWws IGl0IG11c3QgYmUgc2hpcHBhYmxlLiAqLwpAQCAtMzY1OSwxOCArMzY2MCwzNSBAQCBkZXBhcnNl QWdncmVmKEFnZ3JlZiAqbm9kZSwgZGVwYXJzZV9leHByX2N4dCAqY29udGV4dCkKIAlTdHJpbmdJ bmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKIAlib29sCQl1c2VfdmFyaWFkaWM7CiAKLQkvKiBPbmx5 IGJhc2ljLCBub24tc3BsaXQgYWdncmVnYXRpb24gYWNjZXB0ZWQuICovCi0JQXNzZXJ0KG5vZGUt PmFnZ3NwbGl0ID09IEFHR1NQTElUX1NJTVBMRSk7CisKKwlBc3NlcnQoKG5vZGUtPmFnZ3NwbGl0 ID09IEFHR1NQTElUX1NJTVBMRSkgfHwKKwkJICAgKG5vZGUtPmFnZ3NwbGl0ID09IEFHR1NQTElU X0lOSVRJQUxfU0VSSUFMKSk7CiAKIAkvKiBDaGVjayBpZiBuZWVkIHRvIHByaW50IFZBUklBRElD IChjZi4gcnVsZXV0aWxzLmMpICovCiAJdXNlX3ZhcmlhZGljID0gbm9kZS0+YWdndmFyaWFkaWM7 CiAKIAkvKiBGaW5kIGFnZ3JlZ2F0ZSBuYW1lIGZyb20gYWdnZm5vaWQgd2hpY2ggaXMgYSBwZ19w cm9jIGVudHJ5ICovCiAJYXBwZW5kRnVuY3Rpb25OYW1lKG5vZGUtPmFnZ2Zub2lkLCBjb250ZXh0 KTsKKwogCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJygnKTsKIAotCS8qIEFkZCBESVNUSU5D VCAqLwotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAobm9kZS0+YWdnZGlzdGluY3QgIT0g TklMKSA/ICJESVNUSU5DVCAiIDogIiIpOworCS8qIEFkZCBESVNUSU5DVCBvciBQQVJUSUFMX0FH R1JFR0FURSAqLworCWlmIChub2RlLT5hZ2dkaXN0aW5jdCAhPSBOSUwpIHsKKwkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZyhidWYsICJESVNUSU5DVCAiKTsKKwl9IGVsc2UgaWYgKG5vZGUtPmFnZ3Nw bGl0ID09IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMKSB7CisJCUhlYXBUdXBsZQlhZ2d0dXA7CisJ CUZvcm1fcGdfYWdncmVnYXRlIGFnZ2Zvcm07CisKKwkJYWdndHVwID0gU2VhcmNoU3lzQ2FjaGUx KEFHR0ZOT0lELCBPYmplY3RJZEdldERhdHVtKG5vZGUtPmFnZ2Zub2lkKSk7CisJCWlmICghSGVh cFR1cGxlSXNWYWxpZChhZ2d0dXApKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWls ZWQgZm9yIGFnZ3JlZ2F0ZSAldSIsIG5vZGUtPmFnZ2Zub2lkKTsKKwkJYWdnZm9ybSA9IChGb3Jt X3BnX2FnZ3JlZ2F0ZSkgR0VUU1RSVUNUKGFnZ3R1cCk7CisKKwkJaWYgKChhZ2dmb3JtLT5hZ2d0 cmFuc3R5cGUgPT0gSU5URVJOQUxPSUQpIHx8IE9pZElzVmFsaWQoYWdnZm9ybS0+YWdnZmluYWxm bikpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIlBBUlRJQUxfQUdHUkVHQVRFICIp OworCisJCVJlbGVhc2VTeXNDYWNoZShhZ2d0dXApOworCX0KIAogCWlmIChBR0dLSU5EX0lTX09S REVSRURfU0VUKG5vZGUtPmFnZ2tpbmQpKQogCXsKQEAgLTM4NjUsNiArMzg4Myw3IEBAIGFwcGVu ZEdyb3VwQnlDbGF1c2UoTGlzdCAqdGxpc3QsIGRlcGFyc2VfZXhwcl9jeHQgKmNvbnRleHQpCiAJ UXVlcnkJICAgKnF1ZXJ5ID0gY29udGV4dC0+cm9vdC0+cGFyc2U7CiAJTGlzdENlbGwgICAqbGM7 CiAJYm9vbAkJZmlyc3QgPSB0cnVlOworCVBnRmR3UmVsYXRpb25JbmZvICpmcGluZm8gPSAoUGdG ZHdSZWxhdGlvbkluZm8gKikgY29udGV4dC0+Zm9yZWlnbnJlbC0+ZmR3X3ByaXZhdGU7CiAKIAkv KiBOb3RoaW5nIHRvIGJlIGRvbmUsIGlmIHRoZXJlJ3Mgbm8gR1JPVVAgQlkgY2xhdXNlIGluIHRo ZSBxdWVyeS4gKi8KIAlpZiAoIXF1ZXJ5LT5ncm91cENsYXVzZSkKQEAgLTM4ODUsNyArMzkwNCw3 IEBAIGFwcGVuZEdyb3VwQnlDbGF1c2UoTGlzdCAqdGxpc3QsIGRlcGFyc2VfZXhwcl9jeHQgKmNv bnRleHQpCiAJICogdG8gZW1wdHksIGFuZCBpbiBhbnkgY2FzZSB0aGUgcmVkdW5kYW5jeSBzaXR1 YXRpb24gb24gdGhlIHJlbW90ZSBtaWdodAogCSAqIGJlIGRpZmZlcmVudCB0aGFuIHdoYXQgd2Ug dGhpbmsgaGVyZS4KIAkgKi8KLQlmb3JlYWNoKGxjLCBxdWVyeS0+Z3JvdXBDbGF1c2UpCisJZm9y ZWFjaChsYywgZnBpbmZvLT5ncm91cF9jbGF1c2UpCiAJewogCQlTb3J0R3JvdXBDbGF1c2UgKmdy cCA9IChTb3J0R3JvdXBDbGF1c2UgKikgbGZpcnN0KGxjKTsKIApAQCAtNDIwNiwzICs0MjI1LDUx IEBAIGdldF9yZWxhdGlvbl9jb2x1bW5fYWxpYXNfaWRzKFZhciAqbm9kZSwgUmVsT3B0SW5mbyAq Zm9yZWlnbnJlbCwKIAkvKiBTaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAllbG9nKEVSUk9SLCAidW5l eHBlY3RlZCBleHByZXNzaW9uIGluIHN1YnF1ZXJ5IG91dHB1dCIpOwogfQorCisvKgorICogLS0t LS0tLS0tLQorICogQ2hlY2sgdGhhdCBwYXJ0aWFsIGFnZ3JlZ2F0ZSAiYWdnIiBpcyBzYWZlIHRv IHB1c2ggZG93bi4KKyAqCisgKiBJdCBpcyBwdXNoZG93bi1zYWZlIHdoZW4gYWxsIG9mIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdHJ1ZToKKyAqCisgKiAgICAqIGFnZyBpcyBhbiBBR0dL SU5EX05PUk1BTCBhZ2dyZWdhdGUgd2hpY2ggY29udGFpbnMgbm8gRElTVElOQ1Qgb3IKKyAqICAg IE9SREVSIEJZIGNsYXVzZXMKKyAqICAgICogcmVtb3RlIHNlcnZlciBjYW4gcmV0dXJuIHBhcnRp YWwgYWdncmVnYXRlIHJlc3VsdHMKKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGJvb2wKK3Bh cnRpYWxfYWdnX29rKEFnZ3JlZiAqYWdnLCBQZ0Zkd1JlbGF0aW9uSW5mbyAqZnBpbmZvKQorewor CUhlYXBUdXBsZQlhZ2d0dXA7CisJRm9ybV9wZ19hZ2dyZWdhdGUgYWdnZm9ybTsKKwlib29sCQlw YXJ0aWFsX2FnZ19vayA9IHRydWU7CisKKwlBc3NlcnQoYWdnLT5hZ2dzcGxpdCA9PSBBR0dTUExJ VF9JTklUSUFMX1NFUklBTCk7CisKKwkvKiBXZSBkb24ndCBzdXBwb3J0IGNvbXBsZXggcGFydGlh bCBhZ2dyZWdhdGVzICovCisJaWYgKGFnZy0+YWdnZGlzdGluY3QgfHwgYWdnLT5hZ2draW5kICE9 IEFHR0tJTkRfTk9STUFMIHx8IGFnZy0+YWdnb3JkZXIgIT0gTklMKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlhZ2d0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQUdHRk5PSUQsIE9iamVjdElkR2V0RGF0dW0o YWdnLT5hZ2dmbm9pZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChhZ2d0dXApKQorCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYWdncmVnYXRlICV1IiwgYWdnLT5hZ2dm bm9pZCk7CisJYWdnZm9ybSA9IChGb3JtX3BnX2FnZ3JlZ2F0ZSkgR0VUU1RSVUNUKGFnZ3R1cCk7 CisKKwlpZiAoKE9pZElzVmFsaWQoYWdnZm9ybS0+YWdnZmluYWxmbikgfHwKKwkJKGFnZ2Zvcm0t PmFnZ3RyYW5zdHlwZSA9PSBJTlRFUk5BTE9JRCkpICYmCisJCWZwaW5mby0+Y2hlY2tfcGFydGlh bF9hZ2dyZWdhdGVfc3VwcG9ydCkKKwl7CisJCWlmIChmcGluZm8tPnJlbW90ZXZlcnNpb24gPT0g MCkKKwkJeworCQkJUEdjb25uCSAgICpjb25uID0gR2V0Q29ubmVjdGlvbihmcGluZm8tPnVzZXIs IGZhbHNlLCBOVUxMKTsKKworCQkJZnBpbmZvLT5yZW1vdGV2ZXJzaW9uID0gUFFzZXJ2ZXJWZXJz aW9uKGNvbm4pOworCQl9CisKKwkJaWYgKGZwaW5mby0+cmVtb3RldmVyc2lvbiA8IFBHX1ZFUlNJ T05fTlVNKQorCQkJcGFydGlhbF9hZ2dfb2sgPSBmYWxzZTsKKwl9CisKKwlSZWxlYXNlU3lzQ2Fj aGUoYWdndHVwKTsKKwlyZXR1cm4gcGFydGlhbF9hZ2dfb2s7Cit9CmRpZmYgLS1naXQgYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0 Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRleCA1OGE2MDNhLi43ODY0MTU5 IDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcu b3V0CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQK QEAgLTEwMDU4LDM2ICsxMDA1OCw1NiBAQCBSRVNFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9qb2lu OwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gdGVzdCBwYXJ0aXRpb253aXNlIGFnZ3JlZ2F0ZXMKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLUNSRUFURSBUQUJMRSBwYWdnX3RhYiAoYSBpbnQsIGIgaW50LCBjIHRleHQpIFBB UlRJVElPTiBCWSBSQU5HRShhKTsKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChBREQg ZmR3X3R1cGxlX2Nvc3QgJzAuMScpOworQ1JFQVRFIFRZUEUgbW9vZCBBUyBlbnVtICgnc2FkJywg J29rJywgJ2hhcHB5Jyk7CitBTFRFUiBFWFRFTlNJT04gcG9zdGdyZXNfZmR3IEFERCBUWVBFIG1v b2Q7CitDUkVBVEUgVEFCTEUgcGFnZ190YWIgKGEgaW50LCBiIGludCwgYyB0ZXh0LCBjX3Nlcmlh bCBpbnQ0LAorCQkJCQljX2ludDRhcnJheSBfaW50NCwgY19pbnRlcnZhbCBpbnRlcnZhbCwKKwkJ CQkJY19tb25leSBtb25leSwgY18xYyB0ZXh0LCBjXzFiIGJ5dGVhLAorCQkJCQljX2JpdCBiaXQo MiksIGNfMW9yM2ludDIgaW50MiwKKwkJCQkJY18xb3IzaW50NCBpbnQ0LCBjXzFvcjNpbnQ4IGlu dDgsCisJCQkJCWNfYm9vbCBib29sLCBjX2VudW0gbW9vZCwgY19wZ19sc24gcGdfbHNuLAorCQkJ CQljX3RpZCB0aWQsIGNfaW50NHJhbmdlIGludDRyYW5nZSwKKwkJCQkJY19pbnQ0bXVsdGlyYW5n ZSBpbnQ0bXVsdGlyYW5nZSwKKwkJCQkJY190aW1lIHRpbWUsIGNfdGltZXR6IHRpbWV0eiwKKwkJ CQkJY190aW1lc3RhbXAgdGltZXN0YW1wLCBjX3RpbWVzdGFtcHR6IHRpbWVzdGFtcHR6LAorCQkJ CQljX3hpZDggeGlkOCkKKwlQQVJUSVRJT04gQlkgUkFOR0UoYSk7CiBDUkVBVEUgVEFCTEUgcGFn Z190YWJfcDEgKExJS0UgcGFnZ190YWIpOwogQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiX3AyIChMSUtF IHBhZ2dfdGFiKTsKIENSRUFURSBUQUJMRSBwYWdnX3RhYl9wMyAoTElLRSBwYWdnX3RhYik7Ci1J TlNFUlQgSU5UTyBwYWdnX3RhYl9wMSBTRUxFQ1QgaSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8z MCwgJ0ZNMDAwMCcpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAz MCkgPCAxMDsKLUlOU0VSVCBJTlRPIHBhZ2dfdGFiX3AyIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwg dG9fY2hhcihpLzMwLCAnRk0wMDAwJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBX SEVSRSAoaSAlIDMwKSA8IDIwIGFuZCAoaSAlIDMwKSA+PSAxMDsKLUlOU0VSVCBJTlRPIHBhZ2df dGFiX3AzIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJykgRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVSRSAoaSAlIDMwKSA8IDMwIGFuZCAoaSAl IDMwKSA+PSAyMDsKK0lOU0VSVCBJTlRPIHBhZ2dfdGFiX3AxIFNFTEVDVCBpICUgMzAsIGkgJSA1 MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJyksIGksIGFycmF5WyhpICUgMiksIDBdLCAoKGkgJSAy KSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsIChpICUgMik6Om1vbmV5LCAoKGkgLSAxKSAlIDEw KTo6dGV4dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0KTo6Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIp ID0gMCB0aGVuIEInMDEnIGVsc2UgQicxMScgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhl biAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwg Y2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAy KSA9IDAgdGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5kLCAoY2FzZSB3aGVuIChpICUgMikgPSAwIHRo ZW4gJ3NhZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1vb2QsICgnMC8nIHx8IGkpOjpwZ19sc24sICgn KDAsJyB8fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJhbmdlKDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShp bnQ0cmFuZ2UoMCwgaSksIGludDRyYW5nZSgxMDAsIDEwMCArIGkpKSwgJzAwOjAwOjAwJzo6dGlt ZSArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzAwOjAwOjAwJzo6dGltZXR6ICsgKGkg fHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcCArIChpIHx8 ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3RhbXB0eiArIChpIHx8 ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKChpICUgMTApOjp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMTA7CitJTlNFUlQgSU5UTyBw YWdnX3RhYl9wMiBTRUxFQ1QgaSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcp LCBpLCBhcnJheVsoaSAlIDIpLCAwXSwgKChpICUgMikgfHwgJyBzZWNvbmRzJyk6OmludGVydmFs LCAoaSAlIDIpOjptb25leSwgKChpIC0gMSkgJSAxMCk6OnRleHQsICgoKGkgLSAxKSAlIDEwKTo6 dGV4dCk6OmJ5dGVhLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiBCJzAxJyBlbHNlIEInMTEn IGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4g KGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVu IDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gdHJ1ZSBlbHNlIGZhbHNl IGVuZCwgKGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuICdzYWQnIGVsc2UgJ2hhcHB5JyBlbmQp Ojptb29kLCAoJzAvJyB8fCBpKTo6cGdfbHNuLCAoJygwLCcgfHwgaSB8fCAnKScpOjp0aWQsIGlu dDRyYW5nZSgwLCBpKSwgaW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKDAsIGkpLCBpbnQ0cmFuZ2Uo MTAwLCAxMDAgKyBpKSksICcwMDowMDowMCc6OnRpbWUgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50 ZXJ2YWwsICcwMDowMDowMCc6OnRpbWV0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwg JzIwMDAtMDEtMDEnOjp0aW1lc3RhbXAgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcy MDAwLTAxLTAxJzo6dGltZXN0YW1wdHogKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICgo aSAlIDEwKTo6dGV4dCk6OnhpZDggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVS RSAoaSAlIDMwKSA8IDIwIGFuZCAoaSAlIDMwKSA+PSAxMDsKK0lOU0VSVCBJTlRPIHBhZ2dfdGFi X3AzIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJyksIGksIGFy cmF5WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsIChpICUg Mik6Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0KTo6 Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIEInMDEnIGVsc2UgQicxMScgZW5kLCBj YXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIp ID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNl IDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5kLCAo Y2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1vb2Qs ICgnMC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJhbmdl KDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSksIGludDRyYW5nZSgxMDAsIDEw MCArIGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwg JzAwOjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0w MS0wMSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEt MDEnOjp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKChpICUgMTAp Ojp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUg MzApIDwgMzAgYW5kIChpICUgMzApID49IDIwOwogLS0gQ3JlYXRlIGZvcmVpZ24gcGFydGl0aW9u cwogQ1JFQVRFIEZPUkVJR04gVEFCTEUgZnBhZ2dfdGFiX3AxIFBBUlRJVElPTiBPRiBwYWdnX3Rh YiBGT1IgVkFMVUVTIEZST00gKDApIFRPICgxMCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRh YmxlX25hbWUgJ3BhZ2dfdGFiX3AxJyk7CiBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmcGFnZ190YWJf cDIgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCkgU0VS VkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ3BhZ2dfdGFiX3AyJyk7CiBDUkVBVEUg Rk9SRUlHTiBUQUJMRSBmcGFnZ190YWJfcDMgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxV RVMgRlJPTSAoMjApIFRPICgzMCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUg J3BhZ2dfdGFiX3AzJyk7CiBBTkFMWVpFIHBhZ2dfdGFiOworQU5BTFlaRSBwYWdnX3RhYl9wMTsK K0FOQUxZWkUgcGFnZ190YWJfcDI7CitBTkFMWVpFIHBhZ2dfdGFiX3AzOwogQU5BTFlaRSBmcGFn Z190YWJfcDE7CiBBTkFMWVpFIGZwYWdnX3RhYl9wMjsKIEFOQUxZWkUgZnBhZ2dfdGFiX3AzOwor U0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CiAtLSBXaGVuIEdST1VQIEJZIGNsYXVzZSBtYXRj aGVzIHdpdGggUEFSVElUSU9OIEtFWS4KIC0tIFBsYW4gd2l0aCBwYXJ0aXRpb253aXNlIGFnZ3Jl Z2F0ZXMgaXMgZGlzYWJsZWQKIFNFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9hZ2dyZWdhdGUgVE8g ZmFsc2U7CiBFWFBMQUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgYSwgc3VtKGIpLCBtaW4oYiksIGNv dW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIgT1JERVIg QlkgMTsKLSAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIEdyb3VwQWdncmVnYXRlCi0gICBHcm91cCBLZXk6IHBhZ2dfdGFiLmEKLSAgIEZpbHRlcjog KGF2ZyhwYWdnX3RhYi5iKSA8ICcyMic6Om51bWVyaWMpCi0gICAtPiAgQXBwZW5kCi0gICAgICAg ICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMSBwYWdnX3RhYl8xCi0gICAgICAgICAt PiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCi0gICAgICAgICAtPiAg Rm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMyBwYWdnX3RhYl8zCi0oNyByb3dzKQorICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU29ydAorICAgU29ydCBLZXk6IHBhZ2dfdGFiLmEKKyAgIC0+ICBIYXNoQWdncmVnYXRlCisg ICAgICAgICBHcm91cCBLZXk6IHBhZ2dfdGFiLmEKKyAgICAgICAgIEZpbHRlcjogKGF2ZyhwYWdn X3RhYi5iKSA8ICcyMic6Om51bWVyaWMpCisgICAgICAgICAtPiAgQXBwZW5kCisgICAgICAgICAg ICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMSBwYWdnX3RhYl8xCisgICAgICAg ICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCisgICAg ICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMyBwYWdnX3RhYl8zCiso OSByb3dzKQogCiAtLSBQbGFuIHdpdGggcGFydGl0aW9ud2lzZSBhZ2dyZWdhdGVzIGlzIGVuYWJs ZWQKIFNFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9hZ2dyZWdhdGUgVE8gdHJ1ZTsKQEAgLTEwMTIx LDMyICsxMDE0MSwzNCBAQCBTRUxFQ1QgYSwgc3VtKGIpLCBtaW4oYiksIGNvdW50KCopIEZST00g cGFnZ190YWIgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIgTwogLS0gU2hvdWxkIGhhdmUg YWxsIHRoZSBjb2x1bW5zIGluIHRoZSB0YXJnZXQgbGlzdCBmb3IgdGhlIGdpdmVuIHJlbGF0aW9u CiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBTRUxFQ1QgYSwgY291bnQodDEpIEZST00g cGFnZ190YWIgdDEgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIgT1JERVIgQlkgMTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotIE1lcmdlIEFwcGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNvcnQKKyAgIE91dHB1 dDogdDEuYSwgKGNvdW50KCgodDEuKik6OnBhZ2dfdGFiKSkpCiAgICBTb3J0IEtleTogdDEuYQot ICAgLT4gIEdyb3VwQWdncmVnYXRlCi0gICAgICAgICBPdXRwdXQ6IHQxLmEsIGNvdW50KCgodDEu Kik6OnBhZ2dfdGFiKSkKLSAgICAgICAgIEdyb3VwIEtleTogdDEuYQotICAgICAgICAgRmlsdGVy OiAoYXZnKHQxLmIpIDwgJzIyJzo6bnVtZXJpYykKLSAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4g b24gcHVibGljLmZwYWdnX3RhYl9wMSB0MQotICAgICAgICAgICAgICAgT3V0cHV0OiB0MS5hLCB0 MS4qLCB0MS5iCi0gICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgYyBGUk9N IHB1YmxpYy5wYWdnX3RhYl9wMSBPUkRFUiBCWSBhIEFTQyBOVUxMUyBMQVNUCi0gICAtPiAgR3Jv dXBBZ2dyZWdhdGUKLSAgICAgICAgIE91dHB1dDogdDFfMS5hLCBjb3VudCgoKHQxXzEuKik6OnBh Z2dfdGFiKSkKLSAgICAgICAgIEdyb3VwIEtleTogdDFfMS5hCi0gICAgICAgICBGaWx0ZXI6IChh dmcodDFfMS5iKSA8ICcyMic6Om51bWVyaWMpCi0gICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9u IHB1YmxpYy5mcGFnZ190YWJfcDIgdDFfMQotICAgICAgICAgICAgICAgT3V0cHV0OiB0MV8xLmEs IHQxXzEuKiwgdDFfMS5iCi0gICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwg YyBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBPUkRFUiBCWSBhIEFTQyBOVUxMUyBMQVNUCi0gICAt PiAgR3JvdXBBZ2dyZWdhdGUKLSAgICAgICAgIE91dHB1dDogdDFfMi5hLCBjb3VudCgoKHQxXzIu Kik6OnBhZ2dfdGFiKSkKLSAgICAgICAgIEdyb3VwIEtleTogdDFfMi5hCi0gICAgICAgICBGaWx0 ZXI6IChhdmcodDFfMi5iKSA8ICcyMic6Om51bWVyaWMpCi0gICAgICAgICAtPiAgRm9yZWlnbiBT Y2FuIG9uIHB1YmxpYy5mcGFnZ190YWJfcDMgdDFfMgotICAgICAgICAgICAgICAgT3V0cHV0OiB0 MV8yLmEsIHQxXzIuKiwgdDFfMi5iCi0gICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1Qg YSwgYiwgYyBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMyBPUkRFUiBCWSBhIEFTQyBOVUxMUyBMQVNU Ci0oMjMgcm93cykKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ICBIYXNoQWdncmVnYXRlCisg ICAgICAgICAgICAgICBPdXRwdXQ6IHQxLmEsIGNvdW50KCgodDEuKik6OnBhZ2dfdGFiKSkKKyAg ICAgICAgICAgICAgIEdyb3VwIEtleTogdDEuYQorICAgICAgICAgICAgICAgRmlsdGVyOiAoYXZn KHQxLmIpIDwgJzIyJzo6bnVtZXJpYykKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4g b24gcHVibGljLmZwYWdnX3RhYl9wMSB0MQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0 MS5hLCB0MS4qLCB0MS5iCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1Qg YSwgYiwgYywgY19zZXJpYWwsIGNfaW50NGFycmF5LCBjX2ludGVydmFsLCBjX21vbmV5LCBjXzFj LCBjXzFiLCBjX2JpdCwgY18xb3IzaW50MiwgY18xb3IzaW50NCwgY18xb3IzaW50OCwgY19ib29s LCBjX2VudW0sIGNfcGdfbHNuLCBjX3RpZCwgY19pbnQ0cmFuZ2UsIGNfaW50NG11bHRpcmFuZ2Us IGNfdGltZSwgY190aW1ldHosIGNfdGltZXN0YW1wLCBjX3RpbWVzdGFtcHR6LCBjX3hpZDggRlJP TSBwdWJsaWMucGFnZ190YWJfcDEKKyAgICAgICAgIC0+ICBIYXNoQWdncmVnYXRlCisgICAgICAg ICAgICAgICBPdXRwdXQ6IHQxXzEuYSwgY291bnQoKCh0MV8xLiopOjpwYWdnX3RhYikpCisgICAg ICAgICAgICAgICBHcm91cCBLZXk6IHQxXzEuYQorICAgICAgICAgICAgICAgRmlsdGVyOiAoYXZn KHQxXzEuYikgPCAnMjInOjpudW1lcmljKQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2Nh biBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AyIHQxXzEKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1 dDogdDFfMS5hLCB0MV8xLiosIHQxXzEuYgorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNR TDogU0VMRUNUIGEsIGIsIGMsIGNfc2VyaWFsLCBjX2ludDRhcnJheSwgY19pbnRlcnZhbCwgY19t b25leSwgY18xYywgY18xYiwgY19iaXQsIGNfMW9yM2ludDIsIGNfMW9yM2ludDQsIGNfMW9yM2lu dDgsIGNfYm9vbCwgY19lbnVtLCBjX3BnX2xzbiwgY190aWQsIGNfaW50NHJhbmdlLCBjX2ludDRt dWx0aXJhbmdlLCBjX3RpbWUsIGNfdGltZXR6LCBjX3RpbWVzdGFtcCwgY190aW1lc3RhbXB0eiwg Y194aWQ4IEZST00gcHVibGljLnBhZ2dfdGFiX3AyCisgICAgICAgICAtPiAgSGFzaEFnZ3JlZ2F0 ZQorICAgICAgICAgICAgICAgT3V0cHV0OiB0MV8yLmEsIGNvdW50KCgodDFfMi4qKTo6cGFnZ190 YWIpKQorICAgICAgICAgICAgICAgR3JvdXAgS2V5OiB0MV8yLmEKKyAgICAgICAgICAgICAgIEZp bHRlcjogKGF2Zyh0MV8yLmIpIDwgJzIyJzo6bnVtZXJpYykKKyAgICAgICAgICAgICAgIC0+ICBG b3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMyB0MV8yCisgICAgICAgICAgICAgICAg ICAgICBPdXRwdXQ6IHQxXzIuYSwgdDFfMi4qLCB0MV8yLmIKKyAgICAgICAgICAgICAgICAgICAg IFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjLCBjX3NlcmlhbCwgY19pbnQ0YXJyYXksIGNfaW50 ZXJ2YWwsIGNfbW9uZXksIGNfMWMsIGNfMWIsIGNfYml0LCBjXzFvcjNpbnQyLCBjXzFvcjNpbnQ0 LCBjXzFvcjNpbnQ4LCBjX2Jvb2wsIGNfZW51bSwgY19wZ19sc24sIGNfdGlkLCBjX2ludDRyYW5n ZSwgY19pbnQ0bXVsdGlyYW5nZSwgY190aW1lLCBjX3RpbWV0eiwgY190aW1lc3RhbXAsIGNfdGlt ZXN0YW1wdHosIGNfeGlkOCBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMworKDI1IHJvd3MpCiAKIFNF TEVDVCBhLCBjb3VudCh0MSkgRlJPTSBwYWdnX3RhYiB0MSBHUk9VUCBCWSBhIEhBVklORyBhdmco YikgPCAyMiBPUkRFUiBCWSAxOwogIGEgIHwgY291bnQgCkBAIC0xMDE1OSwyNyArMTAxODEsNTM4 IEBAIFNFTEVDVCBhLCBjb3VudCh0MSkgRlJPTSBwYWdnX3RhYiB0MSBHUk9VUCBCWSBhIEhBVklO RyBhdmcoYikgPCAyMiBPUkRFUiBCWSAxOwogIDIxIHwgICAxMDAKICg2IHJvd3MpCiAKLS0tIFdo ZW4gR1JPVVAgQlkgY2xhdXNlIGRvZXMgbm90IG1hdGNoIHdpdGggUEFSVElUSU9OIEtFWS4KLUVY UExBSU4gKENPU1RTIE9GRikKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBhcmUgc2FmZSB0byBwdXNo IGRvd24gd2hlbiB0aGVyZSBpcyBhIEhBVklORyBjbGF1c2UKK0VYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikKIFNFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3Rh YiBHUk9VUCBCWSBiIEhBVklORyBzdW0oYSkgPCA3MDAgT1JERVIgQlkgMTsKLSAgICAgICAgICAg ICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgRmluYWxpemUgR3JvdXBBZ2dyZWdhdGUKKyAgIE91dHB1dDogcGFnZ190 YWIuYiwgYXZnKHBhZ2dfdGFiLmEpLCBtYXgocGFnZ190YWIuYSksIGNvdW50KCopCiAgICBHcm91 cCBLZXk6IHBhZ2dfdGFiLmIKICAgIEZpbHRlcjogKHN1bShwYWdnX3RhYi5hKSA8IDcwMCkKKyAg IC0+ICBTb3J0CisgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIChQQVJUSUFMIGF2ZyhwYWdn X3RhYi5hKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5hKSksIChQQVJUSUFMIGNvdW50KCopKSwg KFBBUlRJQUwgc3VtKHBhZ2dfdGFiLmEpKQorICAgICAgICAgU29ydCBLZXk6IHBhZ2dfdGFiLmIK KyAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAg ICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWIuYiwgKFBBUlRJQUwgYXZnKHBhZ2df dGFiLmEpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmEpKSwgKFBBUlRJQUwgY291bnQoKikpLCAo UEFSVElBTCBzdW0ocGFnZ190YWIuYSkpCisgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgo c3VtKHBhZ2dfdGFiLmEpKSA8IDcwMCkKKyAgICAgICAgICAgICAgICAgICAgIFJlbGF0aW9uczog QWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiKQorICAgICAgICAgICAg ICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwg bWF4KGEpLCBjb3VudCgqKSwgc3VtKGEpLCBzdW0oYSkgRlJPTSBwdWJsaWMucGFnZ190YWJfcDEg R1JPVVAgQlkgMQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgorICAgICAgICAgICAg ICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8xLmIsIChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8xLmEp KSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuYSkpLCAoUEFSVElBTCBjb3VudCgqKSksIChQQVJU SUFMIHN1bShwYWdnX3RhYl8xLmEpKQorICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKHN1 bShwYWdnX3RhYl8xLmEpKSA8IDcwMCkKKyAgICAgICAgICAgICAgICAgICAgIFJlbGF0aW9uczog QWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzEpCisgICAgICAgICAg ICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEp LCBtYXgoYSksIGNvdW50KCopLCBzdW0oYSksIHN1bShhKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9w MiBHUk9VUCBCWSAxCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAg ICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYiwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzIu YSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5hKSksIChQQVJUSUFMIGNvdW50KCopKSwgKFBB UlRJQUwgc3VtKHBhZ2dfdGFiXzIuYSkpCisgICAgICAgICAgICAgICAgICAgICBGaWx0ZXI6ICgo c3VtKHBhZ2dfdGFiXzIuYSkpIDwgNzAwKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25z OiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMikKKyAgICAgICAg ICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUg YSksIG1heChhKSwgY291bnQoKiksIHN1bShhKSwgc3VtKGEpIEZST00gcHVibGljLnBhZ2dfdGFi X3AzIEdST1VQIEJZIDEKKygyMyByb3dzKQorCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNv dW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBIQVZJTkcgc3VtKGEpIDwgNzAwIE9SREVS IEJZIDE7CisgYiAgfCAgICAgICAgIGF2ZyAgICAgICAgIHwgbWF4IHwgY291bnQgCistLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tCisgIDAgfCAxMC4wMDAwMDAwMDAwMDAw MDAwIHwgIDIwIHwgICAgNjAKKyAgMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2 MAorIDEwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMTEgfCAxMS4wMDAw MDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAyMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAg MjAgfCAgICA2MAorIDIxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMzAg fCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAzMSB8IDExLjAwMDAwMDAwMDAw MDAwMDAgfCAgMjEgfCAgICA2MAorIDQwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAg IDYwCisgNDEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKygxMCByb3dzKQor CistLSBQYXJ0aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIHdpdGhvdXQgaGF2 aW5nIGNsYXVzZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGIsIGF2Zyhh KSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIChhdmcocGFn Z190YWIuYSkpLCAobWF4KHBhZ2dfdGFiLmEpKSwgKGNvdW50KCopKQorICAgU29ydCBLZXk6IHBh Z2dfdGFiLmIKKyAgIC0+ICBGaW5hbGl6ZSBIYXNoQWdncmVnYXRlCisgICAgICAgICBPdXRwdXQ6 IHBhZ2dfdGFiLmIsIGF2ZyhwYWdnX3RhYi5hKSwgbWF4KHBhZ2dfdGFiLmEpLCBjb3VudCgqKQor ICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAtPiAgQXBwZW5kCisgICAg ICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IHBhZ2dfdGFiLmIsIChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5hKSksIChQQVJUSUFMIG1heChwYWdn X3RhYi5hKSksIChQQVJUSUFMIGNvdW50KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRp b25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIpCisgICAgICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRF IGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcHVibGljLnBhZ2dfdGFiX3AxIEdST1VQIEJZIDEK KyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91 dHB1dDogcGFnZ190YWJfMS5iLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMS5hKSksIChQQVJUSUFM IG1heChwYWdnX3RhYl8xLmEpKSwgKFBBUlRJQUwgY291bnQoKikpCisgICAgICAgICAgICAgICAg ICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3Rh Yl8xKQorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGF2ZyhQQVJU SUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9w MiBHUk9VUCBCWSAxCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAg ICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYiwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzIu YSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5hKSksIChQQVJUSUFMIGNvdW50KCopKQorICAg ICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190 YWJfcDMgcGFnZ190YWJfMikKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVD VCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwdWJs aWMucGFnZ190YWJfcDMgR1JPVVAgQlkgMQorKDE5IHJvd3MpCisKK1NFTEVDVCBiLCBhdmcoYSks IG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7Cisg YiAgfCAgICAgICAgIGF2ZyAgICAgICAgIHwgbWF4IHwgY291bnQgCistLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLSstLS0tLS0tCisgIDAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIw IHwgICAgNjAKKyAgMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorICAyIHwg MTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgIDMgfCAxMy4wMDAwMDAwMDAwMDAw MDAwIHwgIDIzIHwgICAgNjAKKyAgNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2 MAorICA1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgIDYgfCAxNi4wMDAw MDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAgNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAg MjcgfCAgICA2MAorICA4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgIDkg fCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyAxMCB8IDEwLjAwMDAwMDAwMDAw MDAwMDAgfCAgMjAgfCAgICA2MAorIDExIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAg IDYwCisgMTIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAxMyB8IDEzLjAw MDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDE0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyNCB8ICAgIDYwCisgMTUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyAx NiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDE3IHwgMTcuMDAwMDAwMDAw MDAwMDAwMCB8ICAyNyB8ICAgIDYwCisgMTggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwg ICAgNjAKKyAxOSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorIDIwIHwgMTAu MDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMjEgfCAxMS4wMDAwMDAwMDAwMDAwMDAw IHwgIDIxIHwgICAgNjAKKyAyMiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2MAor IDIzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisgMjQgfCAxNC4wMDAwMDAw MDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyAyNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUg fCAgICA2MAorIDI2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgMjcgfCAx Ny4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyAyOCB8IDE4LjAwMDAwMDAwMDAwMDAw MDAgfCAgMjggfCAgICA2MAorIDI5IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYw CisgMzAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAzMSB8IDExLjAwMDAw MDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDMyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAy MiB8ICAgIDYwCisgMzMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAzNCB8 IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorIDM1IHwgMTUuMDAwMDAwMDAwMDAw MDAwMCB8ICAyNSB8ICAgIDYwCisgMzYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAg NjAKKyAzNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDM4IHwgMTguMDAw MDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgMzkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwg IDI5IHwgICAgNjAKKyA0MCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDQx IHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgNDIgfCAxMi4wMDAwMDAwMDAw MDAwMDAwIHwgIDIyIHwgICAgNjAKKyA0MyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAg ICA2MAorIDQ0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgNDUgfCAxNS4w MDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyA0NiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAg fCAgMjYgfCAgICA2MAorIDQ3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYwCisg NDggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyA0OSB8IDE5LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjkgfCAgICA2MAorKDUwIHJvd3MpCisKKy0tIFBhcnRpYWwgYWdncmVnYXRl cyBhcmUgc2FmZSB0byBwdXNoIGRvd24gZXZlbiBpZiB3ZSBuZWVkIGJvdGggdmFyaWFibGUgYW5k IHZhcmlhYmxlLWJhc2VkIGV4cHJlc3Npb24KK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikK K1NFTEVDVCBhdmcoYSksIG1heChhKSwgY291bnQoKiksIChiLzIpOjpudW1lcmljIEZST00gcGFn Z190YWIgR1JPVVAgQlkgYi8yIE9SREVSIEJZIDQ7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgT3V0cHV0OiAoYXZn KHBhZ2dfdGFiLmEpKSwgKG1heChwYWdnX3RhYi5hKSksIChjb3VudCgqKSksICgoKChwYWdnX3Rh Yi5iIC8gMikpKTo6bnVtZXJpYyksICgocGFnZ190YWIuYiAvIDIpKQorICAgU29ydCBLZXk6ICgo KChwYWdnX3RhYi5iIC8gMikpKTo6bnVtZXJpYykKKyAgIC0+ICBGaW5hbGl6ZSBIYXNoQWdncmVn YXRlCisgICAgICAgICBPdXRwdXQ6IGF2ZyhwYWdnX3RhYi5hKSwgbWF4KHBhZ2dfdGFiLmEpLCBj b3VudCgqKSwgKCgocGFnZ190YWIuYiAvIDIpKSk6Om51bWVyaWMsICgocGFnZ190YWIuYiAvIDIp KQorICAgICAgICAgR3JvdXAgS2V5OiAoKHBhZ2dfdGFiLmIgLyAyKSkKKyAgICAgICAgIC0+ICBB cHBlbmQKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogKChwYWdnX3RhYi5iIC8gMikpLCAoUEFSVElBTCBhdmcocGFnZ190YWIuYSkp LCAoUEFSVElBTCBtYXgocGFnZ190YWIuYSkpLCAoUEFSVElBTCBjb3VudCgqKSksIHBhZ2dfdGFi LmIKKyAgICAgICAgICAgICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMu ZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiKQorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDog U0VMRUNUIChiIC8gMiksIGIsIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3Vu dCgqKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMSBHUk9VUCBCWSAxLCAyCisgICAgICAgICAgICAg ICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6ICgocGFnZ190 YWJfMS5iIC8gMikpLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMS5hKSksIChQQVJUSUFMIG1heChw YWdnX3RhYl8xLmEpKSwgKFBBUlRJQUwgY291bnQoKikpLCBwYWdnX3RhYl8xLmIKKyAgICAgICAg ICAgICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3Ay IHBhZ2dfdGFiXzEpCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgKGIg LyAyKSwgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBtYXgoYSksIGNvdW50KCopIEZST00g cHVibGljLnBhZ2dfdGFiX3AyIEdST1VQIEJZIDEsIDIKKyAgICAgICAgICAgICAgIC0+ICBGb3Jl aWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogKChwYWdnX3RhYl8yLmIgLyAy KSksIChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8yLmEpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIu YSkpLCAoUEFSVElBTCBjb3VudCgqKSksIHBhZ2dfdGFiXzIuYgorICAgICAgICAgICAgICAgICAg ICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJf MikKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAoYiAvIDIpLCBiLCBh dmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwdWJsaWMucGFn Z190YWJfcDMgR1JPVVAgQlkgMSwgMgorKDE5IHJvd3MpCisKK1NFTEVDVCBhdmcoYSksIG1heChh KSwgY291bnQoKiksIChiLzIpOjpudW1lcmljIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYi8yIE9S REVSIEJZIDQ7CisgICAgICAgICBhdmcgICAgICAgICB8IG1heCB8IGNvdW50IHwgbnVtZXJpYyAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tKy0tLS0tLS0tLQorIDEwLjUwMDAw MDAwMDAwMDAwMDAgfCAgMjEgfCAgIDEyMCB8ICAgICAgIDAKKyAxMi41MDAwMDAwMDAwMDAwMDAw IHwgIDIzIHwgICAxMjAgfCAgICAgICAxCisgMTQuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAg MTIwIHwgICAgICAgMgorIDE2LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgIDEyMCB8ICAgICAg IDMKKyAxOC41MDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAxMjAgfCAgICAgICA0CisgMTAuNTAw MDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgMTIwIHwgICAgICAgNQorIDEyLjUwMDAwMDAwMDAwMDAw MDAgfCAgMjMgfCAgIDEyMCB8ICAgICAgIDYKKyAxNC41MDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwg ICAxMjAgfCAgICAgICA3CisgMTYuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgMTIwIHwgICAg ICAgOAorIDE4LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgIDEyMCB8ICAgICAgIDkKKyAxMC41 MDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAxMjAgfCAgICAgIDEwCisgMTIuNTAwMDAwMDAwMDAw MDAwMCB8ICAyMyB8ICAgMTIwIHwgICAgICAxMQorIDE0LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjUg fCAgIDEyMCB8ICAgICAgMTIKKyAxNi41MDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAxMjAgfCAg ICAgIDEzCisgMTguNTAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgMTIwIHwgICAgICAxNAorIDEw LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgIDEyMCB8ICAgICAgMTUKKyAxMi41MDAwMDAwMDAw MDAwMDAwIHwgIDIzIHwgICAxMjAgfCAgICAgIDE2CisgMTQuNTAwMDAwMDAwMDAwMDAwMCB8ICAy NSB8ICAgMTIwIHwgICAgICAxNworIDE2LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgIDEyMCB8 ICAgICAgMTgKKyAxOC41MDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAxMjAgfCAgICAgIDE5Cisg MTAuNTAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgMTIwIHwgICAgICAyMAorIDEyLjUwMDAwMDAw MDAwMDAwMDAgfCAgMjMgfCAgIDEyMCB8ICAgICAgMjEKKyAxNC41MDAwMDAwMDAwMDAwMDAwIHwg IDI1IHwgICAxMjAgfCAgICAgIDIyCisgMTYuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgMTIw IHwgICAgICAyMworIDE4LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgIDEyMCB8ICAgICAgMjQK KygyNSByb3dzKQorCistLSBQYXJ0aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3du IGZvciBhbGwgYnVpbHQtaW4gYWdncmVnYXRlcworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KQorU0VMRUNUIC8qIGFnZ3JlZ2F0ZSA8PiBwYXJ0aWFsIGFnZ3JlZ2F0ZSAqLworICAgIGFycmF5 X2FnZyhjX2ludDRhcnJheSksIGFycmF5X2FnZyhiKSwKKyAgICBhdmcoYjo6aW50MiksIGF2Zyhi OjppbnQ0KSwgYXZnKGI6OmludDgpLCBhdmcoY19pbnRlcnZhbCksIGF2ZyhiOjpmbG9hdDQpLCBh dmcoYjo6ZmxvYXQ4KSwgYXZnKGI6Om51bWVyaWMpLAorICAgIGNvcnIoYjo6ZmxvYXQ4LCAoYiAq IGIpOjpmbG9hdDgpLAorICAgIGNvdmFyX3BvcChiOjpmbG9hdDgsIChiICogYik6OmZsb2F0OCks CisgICAgY292YXJfc2FtcChiOjpmbG9hdDgsIChiICogYik6OmZsb2F0OCksCisgICAgcmVncl9h dmd4KCgyICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX2F2Z3koKDIgKiBiKTo6 ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3JfaW50ZXJjZXB0KCgyICogYiArIDMpOjpmbG9h dDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9yMigoYiAqIGIpOjpmbG9hdDgsIGI6OmZsb2F0OCks CisgICAgcmVncl9zbG9wZSgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJl Z3Jfc3h4KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9zeHkoKGIg KiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3l5KCgyICogYiArIDMpOjpmbG9h dDgsIGI6OmZsb2F0OCksCisgICAgc3RkZGV2KGI6OmZsb2F0NCksIHN0ZGRldihiOjpmbG9hdDgp LCBzdGRkZXYoYjo6aW50MiksIHN0ZGRldihiOjppbnQ0KSwgc3RkZGV2KGI6OmludDgpLCBzdGRk ZXYoYjo6bnVtZXJpYyksCisgICAgc3RkZGV2X3BvcChiOjpmbG9hdDQpLCBzdGRkZXZfcG9wKGI6 OmZsb2F0OCksIHN0ZGRldl9wb3AoYjo6aW50MiksIHN0ZGRldl9wb3AoYjo6aW50NCksIHN0ZGRl dl9wb3AoYjo6aW50OCksIHN0ZGRldl9wb3AoYjo6bnVtZXJpYyksCisgICAgc3RkZGV2X3NhbXAo Yjo6ZmxvYXQ0KSwgc3RkZGV2X3NhbXAoYjo6ZmxvYXQ4KSwgc3RkZGV2X3NhbXAoYjo6aW50Miks IHN0ZGRldl9zYW1wKGI6OmludDQpLCBzdGRkZXZfc2FtcChiOjppbnQ4KSwgc3RkZGV2X3NhbXAo Yjo6bnVtZXJpYyksCisgICAgc3RyaW5nX2FnZyhjXzFjLCAnLCcpLCBzdHJpbmdfYWdnKGNfMWIs ICcsJyksCisgICAgc3VtKGI6OmludDgpLCBzdW0oYjo6bnVtZXJpYyksCisgICAgdmFyaWFuY2Uo Yjo6ZmxvYXQ0KSwgdmFyaWFuY2UoYjo6ZmxvYXQ4KSwgdmFyaWFuY2UoYjo6aW50MiksIHZhcmlh bmNlKGI6OmludDQpLCB2YXJpYW5jZShiOjppbnQ4KSwgdmFyaWFuY2UoYjo6bnVtZXJpYyksCisg ICAgdmFyX3BvcChiOjpmbG9hdDQpLCB2YXJfcG9wKGI6OmZsb2F0OCksIHZhcl9wb3AoYjo6aW50 MiksIHZhcl9wb3AoYjo6aW50NCksIHZhcl9wb3AoYjo6aW50OCksIHZhcl9wb3AoYjo6bnVtZXJp YyksCisgICAgdmFyX3NhbXAoYjo6ZmxvYXQ0KSwgdmFyX3NhbXAoYjo6ZmxvYXQ4KSwgdmFyX3Nh bXAoYjo6aW50MiksIHZhcl9zYW1wKGI6OmludDQpLCB2YXJfc2FtcChiOjppbnQ4KSwgdmFyX3Nh bXAoYjo6bnVtZXJpYyksCisgICAgLyogYWdncmVnYXRlID0gcGFydGlhbCBhZ2dyZWdhdGUgKi8K KyAgICBhbnlfdmFsdWUoYiAqIDApLAorICAgIGJpdF9hbmQoY19iaXQpLCBiaXRfYW5kKGNfMW9y M2ludDIpLCBiaXRfYW5kKGNfMW9yM2ludDQpLCBiaXRfYW5kKGNfMW9yM2ludDgpLAorICAgIGJp dF9vcihjX2JpdCksIGJpdF9vcihjXzFvcjNpbnQyKSwgYml0X29yKGNfMW9yM2ludDQpLCBiaXRf b3IoY18xb3IzaW50OCksCisgICAgYml0X3hvcihjX2JpdCksIGJpdF94b3IoY18xb3IzaW50Miks IGJpdF94b3IoY18xb3IzaW50NCksIGJpdF94b3IoY18xb3IzaW50OCksCisgICAgYm9vbF9hbmQo Y19ib29sKSwKKyAgICBib29sX29yKGNfYm9vbCksCisgICAgY291bnQoYiksIGNvdW50KCopLAor ICAgIGV2ZXJ5KGNfYm9vbCksCisgICAgbWF4KGNfaW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1h eChjXzFjOjpjaGFyKDEpKSwgbWF4KCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtYXgoJzAuMC4w LjAnOjppbmV0ICsgYiksIG1heChiOjpmbG9hdDQpLCBtYXgoYjo6ZmxvYXQ4KSwgbWF4KGI6Omlu dDIpLCBtYXgoYjo6aW50NCksIG1heChiOjppbnQ4KSwgbWF4KGNfaW50ZXJ2YWwpLCBtYXgoY19t b25leSksIG1heChiOjpudW1lcmljKSwgbWF4KGI6Om9pZCksIG1heChjX3BnX2xzbiksIG1heChj X3RpZCksIG1heChjXzFjKSwgbWF4KGNfdGltZSksIG1heChjX3RpbWV0eiksIG1heChjX3RpbWVz dGFtcCksIG1heChjX3RpbWVzdGFtcHR6KSwgbWF4KGNfeGlkOCksCisgICAgbWluKGNfaW50NGFy cmF5KSwgbWluKGNfZW51bSksIG1pbihjXzFjOjpjaGFyKDEpKSwgbWluKCcyMDAwLTAxLTAxJzo6 ZGF0ZSArIGIpLCBtaW4oJzAuMC4wLjAnOjppbmV0ICsgYiksIG1pbihiOjpmbG9hdDQpLCBtaW4o Yjo6ZmxvYXQ4KSwgbWluKGI6OmludDIpLCBtaW4oYjo6aW50NCksIG1pbihiOjppbnQ4KSwgbWlu KGNfaW50ZXJ2YWwpLCBtaW4oY19tb25leSksIG1pbihiOjpudW1lcmljKSwgbWluKGI6Om9pZCks IG1pbihjX3BnX2xzbiksIG1pbihjX3RpZCksIG1pbihjXzFjKSwgbWluKGNfdGltZSksIG1pbihj X3RpbWV0eiksIG1pbihjX3RpbWVzdGFtcCksIG1pbihjX3RpbWVzdGFtcHR6KSwgbWluKGNfeGlk OCksCisgICAgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRyYW5nZSksIHJhbmdlX2ludGVyc2Vj dF9hZ2coY19pbnQ0bXVsdGlyYW5nZSksCisgICAgcmVncl9jb3VudCgoMiAqIGIgKyAzKTo6Zmxv YXQ4LCBiOjpmbG9hdDgpLAorICAgIHN1bShiOjpmbG9hdDQpLCBzdW0oYjo6ZmxvYXQ4KSwgc3Vt KGI6OmludDIpLCBzdW0oYjo6aW50NCksCXN1bShjX2ludGVydmFsKSwgc3VtKGNfbW9uZXkpCisg IEZST00gcGFnZ190YWIgV0hFUkUgY19zZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBGaW5hbGl6ZSBBZ2dyZWdhdGUKKyAgIE91dHB1dDogYXJyYXlf YWdnKHBhZ2dfdGFiLmNfaW50NGFycmF5KSwgYXJyYXlfYWdnKHBhZ2dfdGFiLmIpLCBhdmcoKHBh Z2dfdGFiLmIpOjpzbWFsbGludCksIGF2ZyhwYWdnX3RhYi5iKSwgYXZnKChwYWdnX3RhYi5iKTo6 YmlnaW50KSwgYXZnKHBhZ2dfdGFiLmNfaW50ZXJ2YWwpLCBhdmcoKHBhZ2dfdGFiLmIpOjpyZWFs KSwgYXZnKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIGF2ZygocGFnZ190YWIuYik6 Om51bWVyaWMpLCBjb3JyKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3Rh Yi5iICogcGFnZ190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uKSwgY292YXJfcG9wKChwYWdnX3Rh Yi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3RhYi5iICogcGFnZ190YWIuYikpOjpkb3Vi bGUgcHJlY2lzaW9uKSwgY292YXJfc2FtcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24s ICgocGFnZ190YWIuYiAqIHBhZ2dfdGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfYXZn eCgoKDIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91 YmxlIHByZWNpc2lvbiksIHJlZ3JfYXZneSgoKDIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVj aXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfaW50ZXJjZXB0KCgo KDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpk b3VibGUgcHJlY2lzaW9uKSwgcmVncl9yMigoKHBhZ2dfdGFiLmIgKiBwYWdnX3RhYi5iKSk6OmRv dWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc2xv cGUoKCgoMiAqIHBhZ2dfdGFiLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIu Yik6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3N4eCgoKCgyICogcGFnZ190YWIuYikgKyAzKSk6 OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jf c3h5KCgocGFnZ190YWIuYiAqIHBhZ2dfdGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2df dGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9zeXkoKCgoMiAqIHBhZ2dfdGFiLmIpICsg MykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCBz dGRkZXYoKHBhZ2dfdGFiLmIpOjpyZWFsKSwgc3RkZGV2KChwYWdnX3RhYi5iKTo6ZG91YmxlIHBy ZWNpc2lvbiksIHN0ZGRldigocGFnZ190YWIuYik6OnNtYWxsaW50KSwgc3RkZGV2KHBhZ2dfdGFi LmIpLCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpu dW1lcmljKSwgc3RkZGV2X3BvcCgocGFnZ190YWIuYik6OnJlYWwpLCBzdGRkZXZfcG9wKChwYWdn X3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldl9wb3AoKHBhZ2dfdGFiLmIpOjpzbWFs bGludCksIHN0ZGRldl9wb3AocGFnZ190YWIuYiksIHN0ZGRldl9wb3AoKHBhZ2dfdGFiLmIpOjpi aWdpbnQpLCBzdGRkZXZfcG9wKChwYWdnX3RhYi5iKTo6bnVtZXJpYyksIHN0ZGRldl9zYW1wKChw YWdnX3RhYi5iKTo6cmVhbCksIHN0ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNp c2lvbiksIHN0ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpLCBzdGRkZXZfc2FtcChw YWdnX3RhYi5iKSwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBzdGRkZXZfc2Ft cCgocGFnZ190YWIuYik6Om51bWVyaWMpLCBzdHJpbmdfYWdnKHBhZ2dfdGFiLmNfMWMsICcsJzo6 dGV4dCksIHN0cmluZ19hZ2cocGFnZ190YWIuY18xYiwgJ1x4MmMnOjpieXRlYSksIHN1bSgocGFn Z190YWIuYik6OmJpZ2ludCksIHN1bSgocGFnZ190YWIuYik6Om51bWVyaWMpLCB2YXJpYW5jZSgo cGFnZ190YWIuYik6OnJlYWwpLCB2YXJpYW5jZSgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNp b24pLCB2YXJpYW5jZSgocGFnZ190YWIuYik6OnNtYWxsaW50KSwgdmFyaWFuY2UocGFnZ190YWIu YiksIHZhcmlhbmNlKChwYWdnX3RhYi5iKTo6YmlnaW50KSwgdmFyaWFuY2UoKHBhZ2dfdGFiLmIp OjpudW1lcmljKSwgdmFyX3BvcCgocGFnZ190YWIuYik6OnJlYWwpLCB2YXJfcG9wKChwYWdnX3Rh Yi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHZhcl9wb3AoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCks IHZhcl9wb3AocGFnZ190YWIuYiksIHZhcl9wb3AoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCB2YXJf cG9wKChwYWdnX3RhYi5iKTo6bnVtZXJpYyksIHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6cmVhbCks IHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHZhcl9zYW1wKChwYWdn X3RhYi5iKTo6c21hbGxpbnQpLCB2YXJfc2FtcChwYWdnX3RhYi5iKSwgdmFyX3NhbXAoKHBhZ2df dGFiLmIpOjpiaWdpbnQpLCB2YXJfc2FtcCgocGFnZ190YWIuYik6Om51bWVyaWMpLCBhbnlfdmFs dWUoKHBhZ2dfdGFiLmIgKiAwKSksIGJpdF9hbmQocGFnZ190YWIuY19iaXQpLCBiaXRfYW5kKHBh Z2dfdGFiLmNfMW9yM2ludDIpLCBiaXRfYW5kKHBhZ2dfdGFiLmNfMW9yM2ludDQpLCBiaXRfYW5k KHBhZ2dfdGFiLmNfMW9yM2ludDgpLCBiaXRfb3IocGFnZ190YWIuY19iaXQpLCBiaXRfb3IocGFn Z190YWIuY18xb3IzaW50MiksIGJpdF9vcihwYWdnX3RhYi5jXzFvcjNpbnQ0KSwgYml0X29yKHBh Z2dfdGFiLmNfMW9yM2ludDgpLCBiaXRfeG9yKHBhZ2dfdGFiLmNfYml0KSwgYml0X3hvcihwYWdn X3RhYi5jXzFvcjNpbnQyKSwgYml0X3hvcihwYWdnX3RhYi5jXzFvcjNpbnQ0KSwgYml0X3hvcihw YWdnX3RhYi5jXzFvcjNpbnQ4KSwgYm9vbF9hbmQocGFnZ190YWIuY19ib29sKSwgYm9vbF9vcihw YWdnX3RhYi5jX2Jvb2wpLCBjb3VudChwYWdnX3RhYi5iKSwgY291bnQoKiksIGV2ZXJ5KHBhZ2df dGFiLmNfYm9vbCksIG1heChwYWdnX3RhYi5jX2ludDRhcnJheSksIG1heChwYWdnX3RhYi5jX2Vu dW0pLCBtYXgoKHBhZ2dfdGFiLmNfMWMpOjpjaGFyYWN0ZXIoMSkpLCBtYXgoKCcwMS0wMS0yMDAw Jzo6ZGF0ZSArIHBhZ2dfdGFiLmIpKSwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWIu Yik6OmJpZ2ludCkpLCBtYXgoKHBhZ2dfdGFiLmIpOjpyZWFsKSwgbWF4KChwYWdnX3RhYi5iKTo6 ZG91YmxlIHByZWNpc2lvbiksIG1heCgocGFnZ190YWIuYik6OnNtYWxsaW50KSwgbWF4KHBhZ2df dGFiLmIpLCBtYXgoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBtYXgocGFnZ190YWIuY19pbnRlcnZh bCksIG1heChwYWdnX3RhYi5jX21vbmV5KSwgbWF4KChwYWdnX3RhYi5iKTo6bnVtZXJpYyksIG1h eCgocGFnZ190YWIuYik6Om9pZCksIG1heChwYWdnX3RhYi5jX3BnX2xzbiksIG1heChwYWdnX3Rh Yi5jX3RpZCksIG1heChwYWdnX3RhYi5jXzFjKSwgbWF4KHBhZ2dfdGFiLmNfdGltZSksIG1heChw YWdnX3RhYi5jX3RpbWV0eiksIG1heChwYWdnX3RhYi5jX3RpbWVzdGFtcCksIG1heChwYWdnX3Rh Yi5jX3RpbWVzdGFtcHR6KSwgbWF4KHBhZ2dfdGFiLmNfeGlkOCksIG1pbihwYWdnX3RhYi5jX2lu dDRhcnJheSksIG1pbihwYWdnX3RhYi5jX2VudW0pLCBtaW4oKHBhZ2dfdGFiLmNfMWMpOjpjaGFy YWN0ZXIoMSkpLCBtaW4oKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiLmIpKSwgbWluKCgn MC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWIuYik6OmJpZ2ludCkpLCBtaW4oKHBhZ2dfdGFiLmIp OjpyZWFsKSwgbWluKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIG1pbigocGFnZ190 YWIuYik6OnNtYWxsaW50KSwgbWluKHBhZ2dfdGFiLmIpLCBtaW4oKHBhZ2dfdGFiLmIpOjpiaWdp bnQpLCBtaW4ocGFnZ190YWIuY19pbnRlcnZhbCksIG1pbihwYWdnX3RhYi5jX21vbmV5KSwgbWlu KChwYWdnX3RhYi5iKTo6bnVtZXJpYyksIG1pbigocGFnZ190YWIuYik6Om9pZCksIG1pbihwYWdn X3RhYi5jX3BnX2xzbiksIG1pbihwYWdnX3RhYi5jX3RpZCksIG1pbihwYWdnX3RhYi5jXzFjKSwg bWluKHBhZ2dfdGFiLmNfdGltZSksIG1pbihwYWdnX3RhYi5jX3RpbWV0eiksIG1pbihwYWdnX3Rh Yi5jX3RpbWVzdGFtcCksIG1pbihwYWdnX3RhYi5jX3RpbWVzdGFtcHR6KSwgbWluKHBhZ2dfdGFi LmNfeGlkOCksIHJhbmdlX2ludGVyc2VjdF9hZ2cocGFnZ190YWIuY19pbnQ0cmFuZ2UpLCByYW5n ZV9pbnRlcnNlY3RfYWdnKHBhZ2dfdGFiLmNfaW50NG11bHRpcmFuZ2UpLCByZWdyX2NvdW50KCgo KDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpk b3VibGUgcHJlY2lzaW9uKSwgc3VtKChwYWdnX3RhYi5iKTo6cmVhbCksIHN1bSgocGFnZ190YWIu Yik6OmRvdWJsZSBwcmVjaXNpb24pLCBzdW0oKHBhZ2dfdGFiLmIpOjpzbWFsbGludCksIHN1bShw YWdnX3RhYi5iKSwgc3VtKHBhZ2dfdGFiLmNfaW50ZXJ2YWwpLCBzdW0ocGFnZ190YWIuY19tb25l eSkKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAg ICAgIE91dHB1dDogKFBBUlRJQUwgYXJyYXlfYWdnKHBhZ2dfdGFiLmNfaW50NGFycmF5KSksIChQ QVJUSUFMIGFycmF5X2FnZyhwYWdnX3RhYi5iKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWIuYik6 OnNtYWxsaW50KSksIChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5iKSksIChQQVJUSUFMIGF2ZygocGFn Z190YWIuYik6OmJpZ2ludCkpLCAoUEFSVElBTCBhdmcocGFnZ190YWIuY19pbnRlcnZhbCkpLCAo UEFSVElBTCBhdmcoKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWIu Yik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgYXZnKChwYWdnX3RhYi5iKTo6bnVtZXJp YykpLCAoUEFSVElBTCBjb3JyKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdn X3RhYi5iICogcGFnZ190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIGNvdmFy X3BvcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24sICgocGFnZ190YWIuYiAqIHBhZ2df dGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBjb3Zhcl9zYW1wKChwYWdnX3Rh Yi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3RhYi5iICogcGFnZ190YWIuYikpOjpkb3Vi bGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3JfYXZneCgoKDIgKiBwYWdnX3RhYi5iKSk6OmRv dWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElB TCByZWdyX2F2Z3koKCgyICogcGFnZ190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190 YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9pbnRlcmNlcHQoKCgoMiAq IHBhZ2dfdGFiLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJs ZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9yMigoKHBhZ2dfdGFiLmIgKiBwYWdnX3RhYi5i KSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAo UEFSVElBTCByZWdyX3Nsb3BlKCgoKDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNp c2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3Jfc3h4 KCgoKDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIp Ojpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3Jfc3h5KCgocGFnZ190YWIuYiAqIHBh Z2dfdGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lz aW9uKSksIChQQVJUSUFMIHJlZ3Jfc3l5KCgoKDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91Ymxl IHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN0 ZGRldigocGFnZ190YWIuYik6OnJlYWwpKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYi5iKTo6 ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpzbWFsbGlu dCkpLCAoUEFSVElBTCBzdGRkZXYocGFnZ190YWIuYikpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2df dGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYi5iKTo6bnVtZXJpYykp LCAoUEFSVElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYi5iKTo6cmVhbCkpLCAoUEFSVElBTCBzdGRk ZXZfcG9wKChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXZf cG9wKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcChwYWdnX3Rh Yi5iKSksIChQQVJUSUFMIHN0ZGRldl9wb3AoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJ QUwgc3RkZGV2X3BvcCgocGFnZ190YWIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgc3RkZGV2X3Nh bXAoKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKChwYWdnX3RhYi5i KTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWIuYik6 OnNtYWxsaW50KSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKHBhZ2dfdGFiLmIpKSwgKFBBUlRJQUwg c3RkZGV2X3NhbXAoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAo KHBhZ2dfdGFiLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHN0cmluZ19hZ2cocGFnZ190YWIuY18x YywgJywnOjp0ZXh0KSksIChQQVJUSUFMIHN0cmluZ19hZ2cocGFnZ190YWIuY18xYiwgJ1x4MmMn OjpieXRlYSkpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwg c3VtKChwYWdnX3RhYi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFnZ190YWIu Yik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lz aW9uKSksIChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJ QUwgdmFyaWFuY2UocGFnZ190YWIuYikpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFnZ190YWIuYik6 OmJpZ2ludCkpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFnZ190YWIuYik6Om51bWVyaWMpKSwgKFBB UlRJQUwgdmFyX3BvcCgocGFnZ190YWIuYik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFn Z190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWIu Yik6OnNtYWxsaW50KSksIChQQVJUSUFMIHZhcl9wb3AocGFnZ190YWIuYikpLCAoUEFSVElBTCB2 YXJfcG9wKChwYWdnX3RhYi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFi LmIpOjpudW1lcmljKSksIChQQVJUSUFMIHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6cmVhbCkpLCAo UEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJ QUwgdmFyX3NhbXAoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCB2YXJfc2FtcChw YWdnX3RhYi5iKSksIChQQVJUSUFMIHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6YmlnaW50KSksIChQ QVJUSUFMIHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBhbnlfdmFs dWUoKHBhZ2dfdGFiLmIgKiAwKSkpLCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiLmNfYml0KSks IChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWIuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfYW5k KHBhZ2dfdGFiLmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYi5jXzFvcjNp bnQ4KSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYi5jX2JpdCkpLCAoUEFSVElBTCBiaXRfb3Io cGFnZ190YWIuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWIuY18xb3IzaW50 NCkpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWIuY18xb3IzaW50OCkpLCAoUEFSVElBTCBiaXRf eG9yKHBhZ2dfdGFiLmNfYml0KSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWIuY18xb3IzaW50 MikpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFiLmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0 X3hvcihwYWdnX3RhYi5jXzFvcjNpbnQ4KSksIChQQVJUSUFMIGJvb2xfYW5kKHBhZ2dfdGFiLmNf Ym9vbCkpLCAoUEFSVElBTCBib29sX29yKHBhZ2dfdGFiLmNfYm9vbCkpLCAoUEFSVElBTCBjb3Vu dChwYWdnX3RhYi5iKSksIChQQVJUSUFMIGNvdW50KCopKSwgKFBBUlRJQUwgZXZlcnkocGFnZ190 YWIuY19ib29sKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX2ludDRhcnJheSkpLCAoUEFSVElB TCBtYXgocGFnZ190YWIuY19lbnVtKSksIChQQVJUSUFMIG1heCgocGFnZ190YWIuY18xYyk6OmNo YXJhY3RlcigxKSkpLCAoUEFSVElBTCBtYXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFi LmIpKSksIChQQVJUSUFMIG1heCgoJzAuMC4wLjAnOjppbmV0ICsgKHBhZ2dfdGFiLmIpOjpiaWdp bnQpKSksIChQQVJUSUFMIG1heCgocGFnZ190YWIuYik6OnJlYWwpKSwgKFBBUlRJQUwgbWF4KChw YWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiLmIp OjpzbWFsbGludCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuYikpLCAoUEFSVElBTCBtYXgoKHBh Z2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfaW50ZXJ2YWwpKSwg KFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfbW9uZXkpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYi5i KTo6bnVtZXJpYykpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiLmIpOjpvaWQpKSwgKFBBUlRJQUwg bWF4KHBhZ2dfdGFiLmNfcGdfbHNuKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3RpZCkpLCAo UEFSVElBTCBtYXgocGFnZ190YWIuY18xYykpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuY190aW1l KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3RpbWV0eikpLCAoUEFSVElBTCBtYXgocGFnZ190 YWIuY190aW1lc3RhbXApKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfdGltZXN0YW1wdHopKSwg KFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfeGlkOCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY19p bnQ0YXJyYXkpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiLmNfZW51bSkpLCAoUEFSVElBTCBtaW4o KHBhZ2dfdGFiLmNfMWMpOjpjaGFyYWN0ZXIoMSkpKSwgKFBBUlRJQUwgbWluKCgnMDEtMDEtMjAw MCc6OmRhdGUgKyBwYWdnX3RhYi5iKSkpLCAoUEFSVElBTCBtaW4oKCcwLjAuMC4wJzo6aW5ldCAr IChwYWdnX3RhYi5iKTo6YmlnaW50KSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiLmIpOjpyZWFs KSksIChQQVJUSUFMIG1pbigocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJ QUwgbWluKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiLmIp KSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYi5iKTo6YmlnaW50KSksIChQQVJUSUFMIG1pbihwYWdn X3RhYi5jX2ludGVydmFsKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX21vbmV5KSksIChQQVJU SUFMIG1pbigocGFnZ190YWIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYi5i KTo6b2lkKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX3BnX2xzbikpLCAoUEFSVElBTCBtaW4o cGFnZ190YWIuY190aWQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiLmNfMWMpKSwgKFBBUlRJQUwg bWluKHBhZ2dfdGFiLmNfdGltZSkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY190aW1ldHopKSwg KFBBUlRJQUwgbWluKHBhZ2dfdGFiLmNfdGltZXN0YW1wKSksIChQQVJUSUFMIG1pbihwYWdnX3Rh Yi5jX3RpbWVzdGFtcHR6KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX3hpZDgpKSwgKFBBUlRJ QUwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhwYWdnX3RhYi5jX2ludDRyYW5nZSkpLCAoUEFSVElBTCBy YW5nZV9pbnRlcnNlY3RfYWdnKHBhZ2dfdGFiLmNfaW50NG11bHRpcmFuZ2UpKSwgKFBBUlRJQUwg cmVncl9jb3VudCgoKCgyICogcGFnZ190YWIuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChw YWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiLmIp OjpyZWFsKSksIChQQVJUSUFMIHN1bSgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwg KFBBUlRJQUwgc3VtKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgc3VtKHBhZ2df dGFiLmIpKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFiLmNfaW50ZXJ2YWwpKSwgKFBBUlRJQUwgc3Vt KHBhZ2dfdGFiLmNfbW9uZXkpKQorICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUg b24gKHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIpCisgICAgICAgICAgICAgICBSZW1vdGUg U1FMOiBTRUxFQ1QgYXJyYXlfYWdnKFBBUlRJQUxfQUdHUkVHQVRFIGNfaW50NGFycmF5KSwgYXJy YXlfYWdnKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21h bGxpbnQpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBi OjpiaWdpbnQpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgY19pbnRlcnZhbCksIGF2ZyhQQVJUSUFM X0FHR1JFR0FURSBiOjpyZWFsKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVj aXNpb24pLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIGNvcnIoUEFSVElBTF9B R0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiwgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiks IGNvdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uLCAoYiAqIGIp Ojpkb3VibGUgcHJlY2lzaW9uKSwgY292YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3Vi bGUgcHJlY2lzaW9uLCAoYiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9hdmd4KFBBUlRJ QUxfQUdHUkVHQVRFICgyICogYik6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNp b24pLCByZWdyX2F2Z3koUEFSVElBTF9BR0dSRUdBVEUgKDIgKiBiKTo6ZG91YmxlIHByZWNpc2lv biwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfaW50ZXJjZXB0KFBBUlRJQUxfQUdHUkVHQVRF ICgoMiAqIGIpICsgMyk6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBy ZWdyX3IyKFBBUlRJQUxfQUdHUkVHQVRFIChiICogYik6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRv dWJsZSBwcmVjaXNpb24pLCByZWdyX3Nsb3BlKFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIpICsg Myk6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3N4eChQQVJU SUFMX0FHR1JFR0FURSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUg cHJlY2lzaW9uKSwgcmVncl9zeHkoUEFSVElBTF9BR0dSRUdBVEUgKGIgKiBiKTo6ZG91YmxlIHBy ZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc3l5KFBBUlRJQUxfQUdHUkVHQVRF ICgoMiAqIGIpICsgMyk6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBz dGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FU RSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxs aW50KSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdB VEUgYjo6YmlnaW50KSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBzdGRk ZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdH UkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRF IGI6OnNtYWxsaW50KSwgc3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiKSwgc3RkZGV2X3Bv cChQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVH QVRFIGI6Om51bWVyaWMpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwg c3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRl dl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgc3RkZGV2X3NhbXAoUEFSVElB TF9BR0dSRUdBVEUgYiksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCks IHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBzdHJpbmdfYWdnKFBB UlRJQUxfQUdHUkVHQVRFIGNfMWMsICcsJzo6dGV4dCksIHN0cmluZ19hZ2coUEFSVElBTF9BR0dS RUdBVEUgY18xYiwgRSdcXHgyYyc6OmJ5dGVhKSwgc3VtKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJp Z2ludCksIHN1bShQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgdmFyaWFuY2UoUEFSVElB TF9BR0dSRUdBVEUgYjo6cmVhbCksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJs ZSBwcmVjaXNpb24pLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHZh cmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBi OjpiaWdpbnQpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgdmFyX3Bv cChQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBi Ojpkb3VibGUgcHJlY2lzaW9uKSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGlu dCksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYiksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdB VEUgYjo6YmlnaW50KSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgdmFy X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVH QVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpz bWFsbGludCksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCB2YXJfc2FtcChQQVJUSUFM X0FHR1JFR0FURSBiOjpiaWdpbnQpLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1l cmljKSwgYW55X3ZhbHVlKChiICogMCkpLCBiaXRfYW5kKGNfYml0KSwgYml0X2FuZChjXzFvcjNp bnQyKSwgYml0X2FuZChjXzFvcjNpbnQ0KSwgYml0X2FuZChjXzFvcjNpbnQ4KSwgYml0X29yKGNf Yml0KSwgYml0X29yKGNfMW9yM2ludDIpLCBiaXRfb3IoY18xb3IzaW50NCksIGJpdF9vcihjXzFv cjNpbnQ4KSwgYml0X3hvcihjX2JpdCksIGJpdF94b3IoY18xb3IzaW50MiksIGJpdF94b3IoY18x b3IzaW50NCksIGJpdF94b3IoY18xb3IzaW50OCksIGJvb2xfYW5kKGNfYm9vbCksIGJvb2xfb3Io Y19ib29sKSwgY291bnQoYiksIGNvdW50KCopLCBldmVyeShjX2Jvb2wpLCBtYXgoY19pbnQ0YXJy YXkpLCBtYXgoY19lbnVtKSwgbWF4KGNfMWM6OmNoYXJhY3RlcigxKSksIG1heCgoJzAxLTAxLTIw MDAnOjpkYXRlICsgYikpLCBtYXgoKCcwLjAuMC4wJzo6aW5ldCArIGIpKSwgbWF4KGI6OnJlYWwp LCBtYXgoYjo6ZG91YmxlIHByZWNpc2lvbiksIG1heChiOjpzbWFsbGludCksIG1heChiKSwgbWF4 KGI6OmJpZ2ludCksIG1heChjX2ludGVydmFsKSwgbWF4KGNfbW9uZXkpLCBtYXgoYjo6bnVtZXJp YyksIG1heChiOjpvaWQpLCBtYXgoY19wZ19sc24pLCBtYXgoY190aWQpLCBtYXgoY18xYyksIG1h eChjX3RpbWUpLCBtYXgoY190aW1ldHopLCBtYXgoY190aW1lc3RhbXApLCBtYXgoY190aW1lc3Rh bXB0eiksIG1heChjX3hpZDgpLCBtaW4oY19pbnQ0YXJyYXkpLCBtaW4oY19lbnVtKSwgbWluKGNf MWM6OmNoYXJhY3RlcigxKSksIG1pbigoJzAxLTAxLTIwMDAnOjpkYXRlICsgYikpLCBtaW4oKCcw LjAuMC4wJzo6aW5ldCArIGIpKSwgbWluKGI6OnJlYWwpLCBtaW4oYjo6ZG91YmxlIHByZWNpc2lv biksIG1pbihiOjpzbWFsbGludCksIG1pbihiKSwgbWluKGI6OmJpZ2ludCksIG1pbihjX2ludGVy dmFsKSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJpYyksIG1pbihiOjpvaWQpLCBtaW4oY19w Z19sc24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1pbihjX3RpbWUpLCBtaW4oY190aW1ldHop LCBtaW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3RhbXB0eiksIG1pbihjX3hpZDgpLCByYW5n ZV9pbnRlcnNlY3RfYWdnKGNfaW50NHJhbmdlKSwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRt dWx0aXJhbmdlKSwgcmVncl9jb3VudCgoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBi Ojpkb3VibGUgcHJlY2lzaW9uKSwgc3VtKGI6OnJlYWwpLCBzdW0oYjo6ZG91YmxlIHByZWNpc2lv biksIHN1bShiOjpzbWFsbGludCksIHN1bShiKSwgc3VtKFBBUlRJQUxfQUdHUkVHQVRFIGNfaW50 ZXJ2YWwpLCBzdW0oY19tb25leSkgRlJPTSBwdWJsaWMucGFnZ190YWJfcDEgV0hFUkUgKChjX3Nl cmlhbCA+PSAxKSkgQU5EICgoY19zZXJpYWwgPD0gMzApKQorICAgICAgICAgLT4gIEZvcmVpZ24g U2NhbgorICAgICAgICAgICAgICAgT3V0cHV0OiAoUEFSVElBTCBhcnJheV9hZ2cocGFnZ190YWJf MS5jX2ludDRhcnJheSkpLCAoUEFSVElBTCBhcnJheV9hZ2cocGFnZ190YWJfMS5iKSksIChQQVJU SUFMIGF2ZygocGFnZ190YWJfMS5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFi XzEuYikpLCAoUEFSVElBTCBhdmcoKHBhZ2dfdGFiXzEuYik6OmJpZ2ludCkpLCAoUEFSVElBTCBh dmcocGFnZ190YWJfMS5jX2ludGVydmFsKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWJfMS5iKTo6 cmVhbCkpLCAoUEFSVElBTCBhdmcoKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwg KFBBUlRJQUwgYXZnKChwYWdnX3RhYl8xLmIpOjpudW1lcmljKSksIChQQVJUSUFMIGNvcnIoKHBh Z2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24sICgocGFnZ190YWJfMS5iICogcGFnZ190YWJf MS5iKSk6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgY292YXJfcG9wKChwYWdnX3RhYl8x LmIpOjpkb3VibGUgcHJlY2lzaW9uLCAoKHBhZ2dfdGFiXzEuYiAqIHBhZ2dfdGFiXzEuYikpOjpk b3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIGNvdmFyX3NhbXAoKHBhZ2dfdGFiXzEuYik6OmRv dWJsZSBwcmVjaXNpb24sICgocGFnZ190YWJfMS5iICogcGFnZ190YWJfMS5iKSk6OmRvdWJsZSBw cmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9hdmd4KCgoMiAqIHBhZ2dfdGFiXzEuYikpOjpkb3Vi bGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElB TCByZWdyX2F2Z3koKCgyICogcGFnZ190YWJfMS5iKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdn X3RhYl8xLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3JfaW50ZXJjZXB0KCgo KDIgKiBwYWdnX3RhYl8xLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMS5i KTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3IyKCgocGFnZ190YWJfMS5iICog cGFnZ190YWJfMS5iKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYl8xLmIpOjpkb3VibGUg cHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3Jfc2xvcGUoKCgoMiAqIHBhZ2dfdGFiXzEuYikgKyAz KSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYl8xLmIpOjpkb3VibGUgcHJlY2lzaW9uKSks IChQQVJUSUFMIHJlZ3Jfc3h4KCgoKDIgKiBwYWdnX3RhYl8xLmIpICsgMykpOjpkb3VibGUgcHJl Y2lzaW9uLCAocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdy X3N4eSgoKHBhZ2dfdGFiXzEuYiAqIHBhZ2dfdGFiXzEuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAo cGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3N5eSgoKCgy ICogcGFnZ190YWJfMS5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzEuYik6 OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYl8xLmIpOjpyZWFs KSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAo UEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiXzEuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHN0ZGRl dihwYWdnX3RhYl8xLmIpKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYl8xLmIpOjpiaWdpbnQp KSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYl8xLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHN0 ZGRldl9wb3AoKHBhZ2dfdGFiXzEuYik6OnJlYWwpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFn Z190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXZfcG9wKChwYWdn X3RhYl8xLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBzdGRkZXZfcG9wKHBhZ2dfdGFiXzEuYikp LCAoUEFSVElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwg c3RkZGV2X3BvcCgocGFnZ190YWJfMS5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBzdGRkZXZfc2Ft cCgocGFnZ190YWJfMS5iKTo6cmVhbCkpLCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWJf MS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWJf MS5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAocGFnZ190YWJfMS5iKSksIChQ QVJUSUFMIHN0ZGRldl9zYW1wKChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3Rk ZGV2X3NhbXAoKHBhZ2dfdGFiXzEuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgc3RyaW5nX2FnZyhw YWdnX3RhYl8xLmNfMWMsICcsJzo6dGV4dCkpLCAoUEFSVElBTCBzdHJpbmdfYWdnKHBhZ2dfdGFi XzEuY18xYiwgJ1x4MmMnOjpieXRlYSkpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiXzEuYik6OmJp Z2ludCkpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiXzEuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwg dmFyaWFuY2UoKHBhZ2dfdGFiXzEuYik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2df dGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2dfdGFi XzEuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHZhcmlhbmNlKHBhZ2dfdGFiXzEuYikpLCAoUEFS VElBTCB2YXJpYW5jZSgocGFnZ190YWJfMS5iKTo6YmlnaW50KSksIChQQVJUSUFMIHZhcmlhbmNl KChwYWdnX3RhYl8xLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiXzEu Yik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNp c2lvbikpLCAoUEFSVElBTCB2YXJfcG9wKChwYWdnX3RhYl8xLmIpOjpzbWFsbGludCkpLCAoUEFS VElBTCB2YXJfcG9wKHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCB2YXJfcG9wKChwYWdnX3RhYl8x LmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWJfMS5iKTo6bnVtZXJpYykp LCAoUEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWJfMS5iKTo6cmVhbCkpLCAoUEFSVElBTCB2YXJf c2FtcCgocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCB2YXJfc2Ft cCgocGFnZ190YWJfMS5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgdmFyX3NhbXAocGFnZ190YWJf MS5iKSksIChQQVJUSUFMIHZhcl9zYW1wKChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJ QUwgdmFyX3NhbXAoKHBhZ2dfdGFiXzEuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgYW55X3ZhbHVl KChwYWdnX3RhYl8xLmIgKiAwKSkpLCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiXzEuY19iaXQp KSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYl8xLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwgYml0 X2FuZChwYWdnX3RhYl8xLmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYl8x LmNfMW9yM2ludDgpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiXzEuY19iaXQpKSwgKFBBUlRJ QUwgYml0X29yKHBhZ2dfdGFiXzEuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190 YWJfMS5jXzFvcjNpbnQ0KSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYl8xLmNfMW9yM2ludDgp KSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYl8xLmNfYml0KSksIChQQVJUSUFMIGJpdF94b3Io cGFnZ190YWJfMS5jXzFvcjNpbnQyKSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWJfMS5jXzFv cjNpbnQ0KSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWJfMS5jXzFvcjNpbnQ4KSksIChQQVJU SUFMIGJvb2xfYW5kKHBhZ2dfdGFiXzEuY19ib29sKSksIChQQVJUSUFMIGJvb2xfb3IocGFnZ190 YWJfMS5jX2Jvb2wpKSwgKFBBUlRJQUwgY291bnQocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIGNv dW50KCopKSwgKFBBUlRJQUwgZXZlcnkocGFnZ190YWJfMS5jX2Jvb2wpKSwgKFBBUlRJQUwgbWF4 KHBhZ2dfdGFiXzEuY19pbnQ0YXJyYXkpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY19lbnVt KSksIChQQVJUSUFMIG1heCgocGFnZ190YWJfMS5jXzFjKTo6Y2hhcmFjdGVyKDEpKSksIChQQVJU SUFMIG1heCgoJzAxLTAxLTIwMDAnOjpkYXRlICsgcGFnZ190YWJfMS5iKSkpLCAoUEFSVElBTCBt YXgoKCcwLjAuMC4wJzo6aW5ldCArIChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSksIChQQVJUSUFM IG1heCgocGFnZ190YWJfMS5iKTo6cmVhbCkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzEuYik6 OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8xLmIpOjpzbWFsbGlu dCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJf MS5iKTo6YmlnaW50KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmNfaW50ZXJ2YWwpKSwgKFBB UlRJQUwgbWF4KHBhZ2dfdGFiXzEuY19tb25leSkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzEu Yik6Om51bWVyaWMpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8xLmIpOjpvaWQpKSwgKFBBUlRJ QUwgbWF4KHBhZ2dfdGFiXzEuY19wZ19sc24pKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY190 aWQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY18xYykpLCAoUEFSVElBTCBtYXgocGFnZ190 YWJfMS5jX3RpbWUpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY190aW1ldHopKSwgKFBBUlRJ QUwgbWF4KHBhZ2dfdGFiXzEuY190aW1lc3RhbXApKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEu Y190aW1lc3RhbXB0eikpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5jX3hpZDgpKSwgKFBBUlRJ QUwgbWluKHBhZ2dfdGFiXzEuY19pbnQ0YXJyYXkpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEu Y19lbnVtKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJfMS5jXzFjKTo6Y2hhcmFjdGVyKDEpKSks IChQQVJUSUFMIG1pbigoJzAxLTAxLTIwMDAnOjpkYXRlICsgcGFnZ190YWJfMS5iKSkpLCAoUEFS VElBTCBtaW4oKCcwLjAuMC4wJzo6aW5ldCArIChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSksIChQ QVJUSUFMIG1pbigocGFnZ190YWJfMS5iKTo6cmVhbCkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFi XzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8xLmIpOjpz bWFsbGludCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIG1pbigocGFn Z190YWJfMS5iKTo6YmlnaW50KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8xLmNfaW50ZXJ2YWwp KSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY19tb25leSkpLCAoUEFSVElBTCBtaW4oKHBhZ2df dGFiXzEuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8xLmIpOjpvaWQpKSwg KFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY19wZ19sc24pKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFi XzEuY190aWQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY18xYykpLCAoUEFSVElBTCBtaW4o cGFnZ190YWJfMS5jX3RpbWUpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY190aW1ldHopKSwg KFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY190aW1lc3RhbXApKSwgKFBBUlRJQUwgbWluKHBhZ2df dGFiXzEuY190aW1lc3RhbXB0eikpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX3hpZDgpKSwg KFBBUlRJQUwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhwYWdnX3RhYl8xLmNfaW50NHJhbmdlKSksIChQ QVJUSUFMIHJhbmdlX2ludGVyc2VjdF9hZ2cocGFnZ190YWJfMS5jX2ludDRtdWx0aXJhbmdlKSks IChQQVJUSUFMIHJlZ3JfY291bnQoKCgoMiAqIHBhZ2dfdGFiXzEuYikgKyAzKSk6OmRvdWJsZSBw cmVjaXNpb24sIChwYWdnX3RhYl8xLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN1 bSgocGFnZ190YWJfMS5iKTo6cmVhbCkpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiXzEuYik6OmRv dWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYl8xLmIpOjpzbWFsbGludCkp LCAoUEFSVElBTCBzdW0ocGFnZ190YWJfMS5iKSksIChQQVJUSUFMIHN1bShwYWdnX3RhYl8xLmNf aW50ZXJ2YWwpKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFiXzEuY19tb25leSkpCisgICAgICAgICAg ICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3Rh Yl8xKQorICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGFycmF5X2FnZyhQQVJUSUFM X0FHR1JFR0FURSBjX2ludDRhcnJheSksIGFycmF5X2FnZyhQQVJUSUFMX0FHR1JFR0FURSBiKSwg YXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRF IGIpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgYXZnKFBBUlRJQUxfQUdHUkVH QVRFIGNfaW50ZXJ2YWwpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIGF2ZyhQQVJU SUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRF IGI6Om51bWVyaWMpLCBjb3JyKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24s IChiICogYik6OmRvdWJsZSBwcmVjaXNpb24pLCBjb3Zhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUg Yjo6ZG91YmxlIHByZWNpc2lvbiwgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiksIGNvdmFyX3Nh bXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiwgKGIgKiBiKTo6ZG91Ymxl IHByZWNpc2lvbiksIHJlZ3JfYXZneChQQVJUSUFMX0FHR1JFR0FURSAoMiAqIGIpOjpkb3VibGUg cHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9hdmd5KFBBUlRJQUxfQUdHUkVH QVRFICgyICogYik6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdy X2ludGVyY2VwdChQQVJUSUFMX0FHR1JFR0FURSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lz aW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9yMihQQVJUSUFMX0FHR1JFR0FURSAoYiAq IGIpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9zbG9wZShQ QVJUSUFMX0FHR1JFR0FURSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3Vi bGUgcHJlY2lzaW9uKSwgcmVncl9zeHgoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6 ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc3h5KFBBUlRJQUxf QUdHUkVHQVRFIChiICogYik6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24p LCByZWdyX3N5eShQQVJUSUFMX0FHR1JFR0FURSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lz aW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJl YWwpLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRl dihQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FU RSBiKSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHN0ZGRldihQQVJUSUFM X0FHR1JFR0FURSBiOjpudW1lcmljKSwgc3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpy ZWFsKSwgc3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwg c3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHN0ZGRldl9wb3AoUEFS VElBTF9BR0dSRUdBVEUgYiksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50 KSwgc3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgc3RkZGV2X3NhbXAo UEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRF IGI6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpz bWFsbGludCksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBzdGRkZXZfc2FtcChQ QVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FU RSBiOjpudW1lcmljKSwgc3RyaW5nX2FnZyhQQVJUSUFMX0FHR1JFR0FURSBjXzFjLCAnLCc6OnRl eHQpLCBzdHJpbmdfYWdnKFBBUlRJQUxfQUdHUkVHQVRFIGNfMWIsIEUnXFx4MmMnOjpieXRlYSks IHN1bShQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCBzdW0oUEFSVElBTF9BR0dSRUdBVEUg Yjo6bnVtZXJpYyksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCB2YXJpYW5j ZShQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgdmFyaWFuY2UoUEFSVElB TF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiKSwg dmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgdmFyaWFuY2UoUEFSVElBTF9B R0dSRUdBVEUgYjo6bnVtZXJpYyksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCks IHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHZhcl9wb3Ao UEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRF IGIpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHZhcl9wb3AoUEFSVElB TF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJl YWwpLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgdmFy X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCB2YXJfc2FtcChQQVJUSUFMX0FH R1JFR0FURSBiKSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgdmFyX3Nh bXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIGFueV92YWx1ZSgoYiAqIDApKSwgYml0 X2FuZChjX2JpdCksIGJpdF9hbmQoY18xb3IzaW50MiksIGJpdF9hbmQoY18xb3IzaW50NCksIGJp dF9hbmQoY18xb3IzaW50OCksIGJpdF9vcihjX2JpdCksIGJpdF9vcihjXzFvcjNpbnQyKSwgYml0 X29yKGNfMW9yM2ludDQpLCBiaXRfb3IoY18xb3IzaW50OCksIGJpdF94b3IoY19iaXQpLCBiaXRf eG9yKGNfMW9yM2ludDIpLCBiaXRfeG9yKGNfMW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgp LCBib29sX2FuZChjX2Jvb2wpLCBib29sX29yKGNfYm9vbCksIGNvdW50KGIpLCBjb3VudCgqKSwg ZXZlcnkoY19ib29sKSwgbWF4KGNfaW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1heChjXzFjOjpj aGFyYWN0ZXIoMSkpLCBtYXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIGIpKSwgbWF4KCgnMC4wLjAu MCc6OmluZXQgKyBiKSksIG1heChiOjpyZWFsKSwgbWF4KGI6OmRvdWJsZSBwcmVjaXNpb24pLCBt YXgoYjo6c21hbGxpbnQpLCBtYXgoYiksIG1heChiOjpiaWdpbnQpLCBtYXgoY19pbnRlcnZhbCks IG1heChjX21vbmV5KSwgbWF4KGI6Om51bWVyaWMpLCBtYXgoYjo6b2lkKSwgbWF4KGNfcGdfbHNu KSwgbWF4KGNfdGlkKSwgbWF4KGNfMWMpLCBtYXgoY190aW1lKSwgbWF4KGNfdGltZXR6KSwgbWF4 KGNfdGltZXN0YW1wKSwgbWF4KGNfdGltZXN0YW1wdHopLCBtYXgoY194aWQ4KSwgbWluKGNfaW50 NGFycmF5KSwgbWluKGNfZW51bSksIG1pbihjXzFjOjpjaGFyYWN0ZXIoMSkpLCBtaW4oKCcwMS0w MS0yMDAwJzo6ZGF0ZSArIGIpKSwgbWluKCgnMC4wLjAuMCc6OmluZXQgKyBiKSksIG1pbihiOjpy ZWFsKSwgbWluKGI6OmRvdWJsZSBwcmVjaXNpb24pLCBtaW4oYjo6c21hbGxpbnQpLCBtaW4oYiks IG1pbihiOjpiaWdpbnQpLCBtaW4oY19pbnRlcnZhbCksIG1pbihjX21vbmV5KSwgbWluKGI6Om51 bWVyaWMpLCBtaW4oYjo6b2lkKSwgbWluKGNfcGdfbHNuKSwgbWluKGNfdGlkKSwgbWluKGNfMWMp LCBtaW4oY190aW1lKSwgbWluKGNfdGltZXR6KSwgbWluKGNfdGltZXN0YW1wKSwgbWluKGNfdGlt ZXN0YW1wdHopLCBtaW4oY194aWQ4KSwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRyYW5nZSks IHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0bXVsdGlyYW5nZSksIHJlZ3JfY291bnQoKCgyICog YikgKyAzKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN1bShiOjpy ZWFsKSwgc3VtKGI6OmRvdWJsZSBwcmVjaXNpb24pLCBzdW0oYjo6c21hbGxpbnQpLCBzdW0oYiks IHN1bShQQVJUSUFMX0FHR1JFR0FURSBjX2ludGVydmFsKSwgc3VtKGNfbW9uZXkpIEZST00gcHVi bGljLnBhZ2dfdGFiX3AyIFdIRVJFICgoY19zZXJpYWwgPj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9 IDMwKSkKKyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgIE91dHB1dDog KFBBUlRJQUwgYXJyYXlfYWdnKHBhZ2dfdGFiXzIuY19pbnQ0YXJyYXkpKSwgKFBBUlRJQUwgYXJy YXlfYWdnKHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCBhdmcoKHBhZ2dfdGFiXzIuYik6OnNtYWxs aW50KSksIChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8yLmIpKSwgKFBBUlRJQUwgYXZnKChwYWdnX3Rh Yl8yLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzIuY19pbnRlcnZhbCkpLCAo UEFSVElBTCBhdmcoKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwgKFBBUlRJQUwgYXZnKChwYWdnX3Rh Yl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWJfMi5iKTo6 bnVtZXJpYykpLCAoUEFSVElBTCBjb3JyKChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9u LCAoKHBhZ2dfdGFiXzIuYiAqIHBhZ2dfdGFiXzIuYikpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQ QVJUSUFMIGNvdmFyX3BvcCgocGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdn X3RhYl8yLmIgKiBwYWdnX3RhYl8yLmIpKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBj b3Zhcl9zYW1wKChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uLCAoKHBhZ2dfdGFiXzIu YiAqIHBhZ2dfdGFiXzIuYikpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3JfYXZn eCgoKDIgKiBwYWdnX3RhYl8yLmIpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6 OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9hdmd5KCgoMiAqIHBhZ2dfdGFiXzIu YikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbikp LCAoUEFSVElBTCByZWdyX2ludGVyY2VwdCgoKCgyICogcGFnZ190YWJfMi5iKSArIDMpKTo6ZG91 YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJ QUwgcmVncl9yMigoKHBhZ2dfdGFiXzIuYiAqIHBhZ2dfdGFiXzIuYikpOjpkb3VibGUgcHJlY2lz aW9uLCAocGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3Ns b3BlKCgoKDIgKiBwYWdnX3RhYl8yLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190 YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3N4eCgoKCgyICogcGFn Z190YWJfMi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRvdWJs ZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9zeHkoKChwYWdnX3RhYl8yLmIgKiBwYWdnX3Rh Yl8yLmIpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNp b24pKSwgKFBBUlRJQUwgcmVncl9zeXkoKCgoMiAqIHBhZ2dfdGFiXzIuYikgKyAzKSk6OmRvdWJs ZSBwcmVjaXNpb24sIChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFM IHN0ZGRldigocGFnZ190YWJfMi5iKTo6cmVhbCkpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFi XzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYl8yLmIp OjpzbWFsbGludCkpLCAoUEFSVElBTCBzdGRkZXYocGFnZ190YWJfMi5iKSksIChQQVJUSUFMIHN0 ZGRldigocGFnZ190YWJfMi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWJf Mi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYl8yLmIpOjpyZWFs KSksIChQQVJUSUFMIHN0ZGRldl9wb3AoKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24p KSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWJfMi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJ QUwgc3RkZGV2X3BvcChwYWdnX3RhYl8yLmIpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190 YWJfMi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHN0ZGRldl9wb3AoKHBhZ2dfdGFiXzIuYik6Om51 bWVyaWMpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwgKFBB UlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBB UlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiXzIuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHN0 ZGRldl9zYW1wKHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCBzdGRkZXZfc2FtcCgocGFnZ190YWJf Mi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKChwYWdnX3RhYl8yLmIpOjpudW1l cmljKSksIChQQVJUSUFMIHN0cmluZ19hZ2cocGFnZ190YWJfMi5jXzFjLCAnLCc6OnRleHQpKSwg KFBBUlRJQUwgc3RyaW5nX2FnZyhwYWdnX3RhYl8yLmNfMWIsICdceDJjJzo6Ynl0ZWEpKSwgKFBB UlRJQUwgc3VtKChwYWdnX3RhYl8yLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgc3VtKChwYWdnX3Rh Yl8yLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYl8yLmIpOjpyZWFs KSksIChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSks IChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYl8yLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCB2 YXJpYW5jZShwYWdnX3RhYl8yLmIpKSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2dfdGFiXzIuYik6 OmJpZ2ludCkpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFnZ190YWJfMi5iKTo6bnVtZXJpYykpLCAo UEFSVElBTCB2YXJfcG9wKChwYWdnX3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFMIHZhcl9wb3Ao KHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFn Z190YWJfMi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgdmFyX3BvcChwYWdnX3RhYl8yLmIpKSwg KFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWJfMi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHZhcl9w b3AoKHBhZ2dfdGFiXzIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFi XzIuYik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBw cmVjaXNpb24pKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFiXzIuYik6OnNtYWxsaW50KSks IChQQVJUSUFMIHZhcl9zYW1wKHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCB2YXJfc2FtcCgocGFn Z190YWJfMi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHZhcl9zYW1wKChwYWdnX3RhYl8yLmIpOjpu dW1lcmljKSksIChQQVJUSUFMIGFueV92YWx1ZSgocGFnZ190YWJfMi5iICogMCkpKSwgKFBBUlRJ QUwgYml0X2FuZChwYWdnX3RhYl8yLmNfYml0KSksIChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWJf Mi5jXzFvcjNpbnQyKSksIChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWJfMi5jXzFvcjNpbnQ0KSks IChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWJfMi5jXzFvcjNpbnQ4KSksIChQQVJUSUFMIGJpdF9v cihwYWdnX3RhYl8yLmNfYml0KSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYl8yLmNfMW9yM2lu dDIpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiXzIuY18xb3IzaW50NCkpLCAoUEFSVElBTCBi aXRfb3IocGFnZ190YWJfMi5jXzFvcjNpbnQ4KSksIChQQVJUSUFMIGJpdF94b3IocGFnZ190YWJf Mi5jX2JpdCkpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFiXzIuY18xb3IzaW50MikpLCAoUEFS VElBTCBiaXRfeG9yKHBhZ2dfdGFiXzIuY18xb3IzaW50NCkpLCAoUEFSVElBTCBiaXRfeG9yKHBh Z2dfdGFiXzIuY18xb3IzaW50OCkpLCAoUEFSVElBTCBib29sX2FuZChwYWdnX3RhYl8yLmNfYm9v bCkpLCAoUEFSVElBTCBib29sX29yKHBhZ2dfdGFiXzIuY19ib29sKSksIChQQVJUSUFMIGNvdW50 KHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCBjb3VudCgqKSksIChQQVJUSUFMIGV2ZXJ5KHBhZ2df dGFiXzIuY19ib29sKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfaW50NGFycmF5KSksIChQ QVJUSUFMIG1heChwYWdnX3RhYl8yLmNfZW51bSkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzIu Y18xYyk6OmNoYXJhY3RlcigxKSkpLCAoUEFSVElBTCBtYXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSAr IHBhZ2dfdGFiXzIuYikpKSwgKFBBUlRJQUwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyAocGFnZ190 YWJfMi5iKTo6YmlnaW50KSkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwg KFBBUlRJQUwgbWF4KChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFM IG1heCgocGFnZ190YWJfMi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIu YikpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkpLCAoUEFSVElBTCBtYXgo cGFnZ190YWJfMi5jX2ludGVydmFsKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfbW9uZXkp KSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8yLmIpOjpudW1lcmljKSksIChQQVJUSUFMIG1heCgo cGFnZ190YWJfMi5iKTo6b2lkKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfcGdfbHNuKSks IChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfdGlkKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8y LmNfMWMpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuY190aW1lKSksIChQQVJUSUFMIG1heChw YWdnX3RhYl8yLmNfdGltZXR6KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfdGltZXN0YW1w KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfdGltZXN0YW1wdHopKSwgKFBBUlRJQUwgbWF4 KHBhZ2dfdGFiXzIuY194aWQ4KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfaW50NGFycmF5 KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfZW51bSkpLCAoUEFSVElBTCBtaW4oKHBhZ2df dGFiXzIuY18xYyk6OmNoYXJhY3RlcigxKSkpLCAoUEFSVElBTCBtaW4oKCcwMS0wMS0yMDAwJzo6 ZGF0ZSArIHBhZ2dfdGFiXzIuYikpKSwgKFBBUlRJQUwgbWluKCgnMC4wLjAuMCc6OmluZXQgKyAo cGFnZ190YWJfMi5iKTo6YmlnaW50KSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzIuYik6OnJl YWwpKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQ QVJUSUFMIG1pbigocGFnZ190YWJfMi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgbWluKHBhZ2df dGFiXzIuYikpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkpLCAoUEFSVElB TCBtaW4ocGFnZ190YWJfMi5jX2ludGVydmFsKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNf bW9uZXkpKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8yLmIpOjpudW1lcmljKSksIChQQVJUSUFM IG1pbigocGFnZ190YWJfMi5iKTo6b2lkKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfcGdf bHNuKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfdGlkKSksIChQQVJUSUFMIG1pbihwYWdn X3RhYl8yLmNfMWMpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY190aW1lKSksIChQQVJUSUFM IG1pbihwYWdnX3RhYl8yLmNfdGltZXR6KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfdGlt ZXN0YW1wKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfdGltZXN0YW1wdHopKSwgKFBBUlRJ QUwgbWluKHBhZ2dfdGFiXzIuY194aWQ4KSksIChQQVJUSUFMIHJhbmdlX2ludGVyc2VjdF9hZ2co cGFnZ190YWJfMi5jX2ludDRyYW5nZSkpLCAoUEFSVElBTCByYW5nZV9pbnRlcnNlY3RfYWdnKHBh Z2dfdGFiXzIuY19pbnQ0bXVsdGlyYW5nZSkpLCAoUEFSVElBTCByZWdyX2NvdW50KCgoKDIgKiBw YWdnX3RhYl8yLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMi5iKTo6ZG91 YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiXzIuYik6OnJlYWwpKSwgKFBB UlRJQUwgc3VtKChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN1 bSgocGFnZ190YWJfMi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFiXzIuYikp LCAoUEFSVElBTCBzdW0ocGFnZ190YWJfMi5jX2ludGVydmFsKSksIChQQVJUSUFMIHN1bShwYWdn X3RhYl8yLmNfbW9uZXkpKQorICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24g KHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMikKKyAgICAgICAgICAgICAgIFJlbW90ZSBT UUw6IFNFTEVDVCBhcnJheV9hZ2coUEFSVElBTF9BR0dSRUdBVEUgY19pbnQ0YXJyYXkpLCBhcnJh eV9hZ2coUEFSVElBTF9BR0dSRUdBVEUgYiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFs bGludCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6 OmJpZ2ludCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBjX2ludGVydmFsKSwgYXZnKFBBUlRJQUxf QUdHUkVHQVRFIGI6OnJlYWwpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNp c2lvbiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgY29ycihQQVJUSUFMX0FH R1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uLCAoYiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uKSwg Y292YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24sIChiICogYik6 OmRvdWJsZSBwcmVjaXNpb24pLCBjb3Zhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJs ZSBwcmVjaXNpb24sIChiICogYik6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX2F2Z3goUEFSVElB TF9BR0dSRUdBVEUgKDIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lv biksIHJlZ3JfYXZneShQQVJUSUFMX0FHR1JFR0FURSAoMiAqIGIpOjpkb3VibGUgcHJlY2lzaW9u LCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9pbnRlcmNlcHQoUEFSVElBTF9BR0dSRUdBVEUg KCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJl Z3JfcjIoUEFSVElBTF9BR0dSRUdBVEUgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91 YmxlIHByZWNpc2lvbiksIHJlZ3Jfc2xvcGUoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAz KTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc3h4KFBBUlRJ QUxfQUdHUkVHQVRFICgoMiAqIGIpICsgMyk6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBw cmVjaXNpb24pLCByZWdyX3N4eShQQVJUSUFMX0FHR1JFR0FURSAoYiAqIGIpOjpkb3VibGUgcHJl Y2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9zeXkoUEFSVElBTF9BR0dSRUdBVEUg KCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0 ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRF IGI6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxp bnQpLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYiksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FU RSBiOjpiaWdpbnQpLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIHN0ZGRl dl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dS RUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUg Yjo6c21hbGxpbnQpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBzdGRkZXZfcG9w KFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdB VEUgYjo6bnVtZXJpYyksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCBz dGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3RkZGV2 X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCBzdGRkZXZfc2FtcChQQVJUSUFM X0FHR1JFR0FURSBiKSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwg c3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIHN0cmluZ19hZ2coUEFS VElBTF9BR0dSRUdBVEUgY18xYywgJywnOjp0ZXh0KSwgc3RyaW5nX2FnZyhQQVJUSUFMX0FHR1JF R0FURSBjXzFiLCBFJ1xceDJjJzo6Ynl0ZWEpLCBzdW0oUEFSVElBTF9BR0dSRUdBVEUgYjo6Ymln aW50KSwgc3VtKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCB2YXJpYW5jZShQQVJUSUFM X0FHR1JFR0FURSBiOjpyZWFsKSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91Ymxl IHByZWNpc2lvbiksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgdmFy aWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYiksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6 OmJpZ2ludCksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCB2YXJfcG9w KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6 OmRvdWJsZSBwcmVjaXNpb24pLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50 KSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiKSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FU RSBiOjpiaWdpbnQpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCB2YXJf c2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdB VEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNt YWxsaW50KSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYiksIHZhcl9zYW1wKFBBUlRJQUxf QUdHUkVHQVRFIGI6OmJpZ2ludCksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVy aWMpLCBhbnlfdmFsdWUoKGIgKiAwKSksIGJpdF9hbmQoY19iaXQpLCBiaXRfYW5kKGNfMW9yM2lu dDIpLCBiaXRfYW5kKGNfMW9yM2ludDQpLCBiaXRfYW5kKGNfMW9yM2ludDgpLCBiaXRfb3IoY19i aXQpLCBiaXRfb3IoY18xb3IzaW50MiksIGJpdF9vcihjXzFvcjNpbnQ0KSwgYml0X29yKGNfMW9y M2ludDgpLCBiaXRfeG9yKGNfYml0KSwgYml0X3hvcihjXzFvcjNpbnQyKSwgYml0X3hvcihjXzFv cjNpbnQ0KSwgYml0X3hvcihjXzFvcjNpbnQ4KSwgYm9vbF9hbmQoY19ib29sKSwgYm9vbF9vcihj X2Jvb2wpLCBjb3VudChiKSwgY291bnQoKiksIGV2ZXJ5KGNfYm9vbCksIG1heChjX2ludDRhcnJh eSksIG1heChjX2VudW0pLCBtYXgoY18xYzo6Y2hhcmFjdGVyKDEpKSwgbWF4KCgnMDEtMDEtMjAw MCc6OmRhdGUgKyBiKSksIG1heCgoJzAuMC4wLjAnOjppbmV0ICsgYikpLCBtYXgoYjo6cmVhbCks IG1heChiOjpkb3VibGUgcHJlY2lzaW9uKSwgbWF4KGI6OnNtYWxsaW50KSwgbWF4KGIpLCBtYXgo Yjo6YmlnaW50KSwgbWF4KGNfaW50ZXJ2YWwpLCBtYXgoY19tb25leSksIG1heChiOjpudW1lcmlj KSwgbWF4KGI6Om9pZCksIG1heChjX3BnX2xzbiksIG1heChjX3RpZCksIG1heChjXzFjKSwgbWF4 KGNfdGltZSksIG1heChjX3RpbWV0eiksIG1heChjX3RpbWVzdGFtcCksIG1heChjX3RpbWVzdGFt cHR6KSwgbWF4KGNfeGlkOCksIG1pbihjX2ludDRhcnJheSksIG1pbihjX2VudW0pLCBtaW4oY18x Yzo6Y2hhcmFjdGVyKDEpKSwgbWluKCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBiKSksIG1pbigoJzAu MC4wLjAnOjppbmV0ICsgYikpLCBtaW4oYjo6cmVhbCksIG1pbihiOjpkb3VibGUgcHJlY2lzaW9u KSwgbWluKGI6OnNtYWxsaW50KSwgbWluKGIpLCBtaW4oYjo6YmlnaW50KSwgbWluKGNfaW50ZXJ2 YWwpLCBtaW4oY19tb25leSksIG1pbihiOjpudW1lcmljKSwgbWluKGI6Om9pZCksIG1pbihjX3Bn X2xzbiksIG1pbihjX3RpZCksIG1pbihjXzFjKSwgbWluKGNfdGltZSksIG1pbihjX3RpbWV0eiks IG1pbihjX3RpbWVzdGFtcCksIG1pbihjX3RpbWVzdGFtcHR6KSwgbWluKGNfeGlkOCksIHJhbmdl X2ludGVyc2VjdF9hZ2coY19pbnQ0cmFuZ2UpLCByYW5nZV9pbnRlcnNlY3RfYWdnKGNfaW50NG11 bHRpcmFuZ2UpLCByZWdyX2NvdW50KCgoMiAqIGIpICsgMyk6OmRvdWJsZSBwcmVjaXNpb24sIGI6 OmRvdWJsZSBwcmVjaXNpb24pLCBzdW0oYjo6cmVhbCksIHN1bShiOjpkb3VibGUgcHJlY2lzaW9u KSwgc3VtKGI6OnNtYWxsaW50KSwgc3VtKGIpLCBzdW0oUEFSVElBTF9BR0dSRUdBVEUgY19pbnRl cnZhbCksIHN1bShjX21vbmV5KSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMyBXSEVSRSAoKGNfc2Vy aWFsID49IDEpKSBBTkQgKChjX3NlcmlhbCA8PSAzMCkpCisoMTUgcm93cykKKworU0VMRUNUIC8q IGFnZ3JlZ2F0ZSA8PiBwYXJ0aWFsIGFnZ3JlZ2F0ZSAqLworICAgIGFycmF5X2FnZyhjX2ludDRh cnJheSksIGFycmF5X2FnZyhiKSwKKyAgICBhdmcoYjo6aW50MiksIGF2ZyhiOjppbnQ0KSwgYXZn KGI6OmludDgpLCBhdmcoY19pbnRlcnZhbCksCisgICAgYXZnKGI6OmZsb2F0NCksIGF2ZyhiOjpm bG9hdDgpLAorICAgIGNvcnIoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIGNvdmFy X3BvcChiOjpmbG9hdDgsIChiICogYik6OmZsb2F0OCksCisgICAgY292YXJfc2FtcChiOjpmbG9h dDgsIChiICogYik6OmZsb2F0OCksCisgICAgcmVncl9hdmd4KCgyICogYik6OmZsb2F0OCwgYjo6 ZmxvYXQ4KSwKKyAgICByZWdyX2F2Z3koKDIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAg IHJlZ3JfaW50ZXJjZXB0KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVn cl9yMigoYiAqIGIpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9zbG9wZSgoMiAqIGIg KyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3h4KCgyICogYiArIDMpOjpmbG9h dDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9zeHkoKGIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgp LAorICAgIHJlZ3Jfc3l5KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgc3Rk ZGV2KGI6OmZsb2F0NCksIHN0ZGRldihiOjpmbG9hdDgpLCBzdGRkZXYoYjo6aW50MiksIHN0ZGRl dihiOjppbnQ0KSwgc3RkZGV2KGI6OmludDgpLCBzdGRkZXYoYjo6bnVtZXJpYyksCisgICAgc3Rk ZGV2X3BvcChiOjpmbG9hdDQpLCBzdGRkZXZfcG9wKGI6OmZsb2F0OCksIHN0ZGRldl9wb3AoYjo6 aW50MiksIHN0ZGRldl9wb3AoYjo6aW50NCksIHN0ZGRldl9wb3AoYjo6aW50OCksIHN0ZGRldl9w b3AoYjo6bnVtZXJpYyksCisgICAgc3RkZGV2X3NhbXAoYjo6ZmxvYXQ0KSwgc3RkZGV2X3NhbXAo Yjo6ZmxvYXQ4KSwgc3RkZGV2X3NhbXAoYjo6aW50MiksIHN0ZGRldl9zYW1wKGI6OmludDQpLCBz dGRkZXZfc2FtcChiOjppbnQ4KSwgc3RkZGV2X3NhbXAoYjo6bnVtZXJpYyksCisgICAgc3RyaW5n X2FnZyhjXzFjLCAnLCcpLCBzdHJpbmdfYWdnKGNfMWIsICcsJyksCisgICAgc3VtKGI6OmludDgp LCBzdW0oYjo6bnVtZXJpYyksCisgICAgdmFyaWFuY2UoYjo6ZmxvYXQ0KSwgdmFyaWFuY2UoYjo6 ZmxvYXQ4KSwgdmFyaWFuY2UoYjo6aW50MiksIHZhcmlhbmNlKGI6OmludDQpLCB2YXJpYW5jZShi OjppbnQ4KSwgdmFyaWFuY2UoYjo6bnVtZXJpYyksCisgICAgdmFyX3BvcChiOjpmbG9hdDQpLCB2 YXJfcG9wKGI6OmZsb2F0OCksIHZhcl9wb3AoYjo6aW50MiksIHZhcl9wb3AoYjo6aW50NCksIHZh cl9wb3AoYjo6aW50OCksIHZhcl9wb3AoYjo6bnVtZXJpYyksCisgICAgdmFyX3NhbXAoYjo6Zmxv YXQ0KSwgdmFyX3NhbXAoYjo6ZmxvYXQ4KSwgdmFyX3NhbXAoYjo6aW50MiksIHZhcl9zYW1wKGI6 OmludDQpLCB2YXJfc2FtcChiOjppbnQ4KSwgdmFyX3NhbXAoYjo6bnVtZXJpYyksCisgICAgLyog YWdncmVnYXRlID0gcGFydGlhbCBhZ2dyZWdhdGUgKi8KKyAgICBhbnlfdmFsdWUoYiAqIDApLAor ICAgIGJpdF9hbmQoY19iaXQpLCBiaXRfYW5kKGNfMW9yM2ludDIpLCBiaXRfYW5kKGNfMW9yM2lu dDQpLCBiaXRfYW5kKGNfMW9yM2ludDgpLAorICAgIGJpdF9vcihjX2JpdCksIGJpdF9vcihjXzFv cjNpbnQyKSwgYml0X29yKGNfMW9yM2ludDQpLCBiaXRfb3IoY18xb3IzaW50OCksCisgICAgYml0 X3hvcihjX2JpdCksIGJpdF94b3IoY18xb3IzaW50MiksIGJpdF94b3IoY18xb3IzaW50NCksIGJp dF94b3IoY18xb3IzaW50OCksCisgICAgYm9vbF9hbmQoY19ib29sKSwKKyAgICBib29sX29yKGNf Ym9vbCksCisgICAgY291bnQoYiksIGNvdW50KCopLAorICAgIGV2ZXJ5KGNfYm9vbCksCisgICAg bWF4KGNfaW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1heChjXzFjOjpjaGFyKDEpKSwgbWF4KCcy MDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtYXgoJzAuMC4wLjAnOjppbmV0ICsgYiksIG1heChiOjpm bG9hdDQpLCBtYXgoYjo6ZmxvYXQ4KSwgbWF4KGI6OmludDIpLCBtYXgoYjo6aW50NCksIG1heChi OjppbnQ4KSwgbWF4KGNfaW50ZXJ2YWwpLCBtYXgoY19tb25leSksIG1heChiOjpudW1lcmljKSwg bWF4KGI6Om9pZCksIG1heChjX3BnX2xzbiksIG1heChjX3RpZCksIG1heChjXzFjKSwgbWF4KGNf dGltZSksIG1heChjX3RpbWV0eiksIG1heChjX3RpbWVzdGFtcCksIG1heChjX3RpbWVzdGFtcHR6 KSwgbWF4KGNfeGlkOCksCisgICAgbWluKGNfaW50NGFycmF5KSwgbWluKGNfZW51bSksIG1pbihj XzFjOjpjaGFyKDEpKSwgbWluKCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtaW4oJzAuMC4wLjAn OjppbmV0ICsgYiksIG1pbihiOjpmbG9hdDQpLCBtaW4oYjo6ZmxvYXQ4KSwgbWluKGI6OmludDIp LCBtaW4oYjo6aW50NCksIG1pbihiOjppbnQ4KSwgbWluKGNfaW50ZXJ2YWwpLCBtaW4oY19tb25l eSksIG1pbihiOjpudW1lcmljKSwgbWluKGI6Om9pZCksIG1pbihjX3BnX2xzbiksIG1pbihjX3Rp ZCksIG1pbihjXzFjKSwgbWluKGNfdGltZSksIG1pbihjX3RpbWV0eiksIG1pbihjX3RpbWVzdGFt cCksIG1pbihjX3RpbWVzdGFtcHR6KSwgbWluKGNfeGlkOCksCisgICAgcmFuZ2VfaW50ZXJzZWN0 X2FnZyhjX2ludDRyYW5nZSksIHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0bXVsdGlyYW5nZSks CisgICAgcmVncl9jb3VudCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHN1 bShiOjpmbG9hdDQpLCBzdW0oYjo6ZmxvYXQ4KSwgc3VtKGI6OmludDIpLCBzdW0oYjo6aW50NCks CXN1bShjX2ludGVydmFsKSwgc3VtKGNfbW9uZXkpCisgIEZST00gcGFnZ190YWIgV0hFUkUgY19z ZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy cmF5X2FnZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXJyYXlfYWdnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgYXZnICAgICAgICAgfCAgICAgICAgIGF2ZyAgICAgICAgIHwgICAg ICAgICBhdmcgICAgICAgICB8ICAgIGF2ZyAgICAgfCBhdmcgIHwgYXZnICB8ICAgICAgIGNvcnIg ICAgICAgIHwgICAgY292YXJfcG9wICAgICB8IGNvdmFyX3NhbXAgfCByZWdyX2F2Z3ggfCByZWdy X2F2Z3kgfCByZWdyX2ludGVyY2VwdCB8ICAgICAgcmVncl9yMiAgICAgIHwgcmVncl9zbG9wZSB8 IHJlZ3Jfc3h4IHwgcmVncl9zeHkgfCByZWdyX3N5eSB8ICAgICBzdGRkZXYgICAgICB8ICAgICBz dGRkZXYgICAgICB8ICAgICAgIHN0ZGRldiAgICAgICB8ICAgICAgIHN0ZGRldiAgICAgICB8ICAg ICAgIHN0ZGRldiAgICAgICB8ICAgICAgIHN0ZGRldiAgICAgICB8ICAgIHN0ZGRldl9wb3AgICAg fCAgICBzdGRkZXZfcG9wICAgIHwgICAgIHN0ZGRldl9wb3AgICAgIHwgICAgIHN0ZGRldl9wb3Ag ICAgIHwgICAgIHN0ZGRldl9wb3AgICAgIHwgICAgIHN0ZGRldl9wb3AgICAgIHwgICBzdGRkZXZf c2FtcCAgIHwgICBzdGRkZXZfc2FtcCAgIHwgICAgc3RkZGV2X3NhbXAgICAgIHwgICAgc3RkZGV2 X3NhbXAgICAgIHwgICAgc3RkZGV2X3NhbXAgICAgIHwgICAgc3RkZGV2X3NhbXAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyaW5nX2FnZyAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyaW5nX2FnZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBzdW0gfCBzdW0gfCB2YXJpYW5jZSB8IHZhcmlhbmNlIHwgICAgICB2YXJpYW5j ZSAgICAgICB8ICAgICAgdmFyaWFuY2UgICAgICAgfCAgICAgIHZhcmlhbmNlICAgICAgIHwgICAg ICB2YXJpYW5jZSAgICAgICB8ICAgICB2YXJfcG9wICAgICAgfCAgICAgdmFyX3BvcCAgICAgIHwg ICAgICAgdmFyX3BvcCAgICAgICB8ICAgICAgIHZhcl9wb3AgICAgICAgfCAgICAgICB2YXJfcG9w ICAgICAgIHwgICAgICAgdmFyX3BvcCAgICAgICB8IHZhcl9zYW1wIHwgdmFyX3NhbXAgfCAgICAg IHZhcl9zYW1wICAgICAgIHwgICAgICB2YXJfc2FtcCAgICAgICB8ICAgICAgdmFyX3NhbXAgICAg ICAgfCAgICAgIHZhcl9zYW1wICAgICAgIHwgYW55X3ZhbHVlIHwgYml0X2FuZCB8IGJpdF9hbmQg fCBiaXRfYW5kIHwgYml0X2FuZCB8IGJpdF9vciB8IGJpdF9vciB8IGJpdF9vciB8IGJpdF9vciB8 IGJpdF94b3IgfCBiaXRfeG9yIHwgYml0X3hvciB8IGJpdF94b3IgfCBib29sX2FuZCB8IGJvb2xf b3IgfCBjb3VudCB8IGNvdW50IHwgZXZlcnkgfCAgbWF4ICB8ICBtYXggIHwgbWF4IHwgICAgbWF4 ICAgICB8ICAgbWF4ICAgIHwgbWF4IHwgbWF4IHwgbWF4IHwgbWF4IHwgbWF4IHwgICBtYXggICB8 ICBtYXggIHwgbWF4IHwgbWF4IHwgbWF4ICB8ICBtYXggICB8IG1heCB8ICAgbWF4ICAgIHwgICAg IG1heCAgICAgfCAgICAgICAgICAgbWF4ICAgICAgICAgICAgfCAgICAgICAgICAgICBtYXggICAg ICAgICAgICAgIHwgbWF4IHwgIG1pbiAgfCBtaW4gfCBtaW4gfCAgICBtaW4gICAgIHwgICBtaW4g ICB8IG1pbiB8IG1pbiB8IG1pbiB8IG1pbiB8IG1pbiB8IG1pbiB8ICBtaW4gIHwgbWluIHwgbWlu IHwgbWluIHwgIG1pbiAgfCBtaW4gfCAgIG1pbiAgICB8ICAgICBtaW4gICAgIHwgICAgICAgICAg IG1pbiAgICAgICAgICAgIHwgICAgICAgICAgICAgbWluICAgICAgICAgICAgICB8IG1pbiB8IHJh bmdlX2ludGVyc2VjdF9hZ2cgfCByYW5nZV9pbnRlcnNlY3RfYWdnIHwgcmVncl9jb3VudCB8IHN1 bSB8IHN1bSB8IHN1bSB8IHN1bSB8ICAgIHN1bSAgICB8ICBzdW0gICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0t LS0tLSstLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0t LSstLS0tLSstLS0tLS0tLS0rLS0tLS0tLSstLS0tLSstLS0tLSstLS0tLS0rLS0tLS0tLS0rLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tKy0tLS0tKy0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0r LS0tLS0tLSstLS0tLSstLS0tLSstLS0tLSstLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0KKyB7ezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEs MH0sezAsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0s ezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEsMH0sezAsMH0sezEs MH0sezAsMH0sezEsMH19IHwgezEsMiwzLDQsNSw2LDcsOCw5LDMwLDEwLDExLDEyLDEzLDE0LDE1 LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5fSB8IDE1LjUwMDAwMDAw MDAwMDAwMDAgfCAxNS41MDAwMDAwMDAwMDAwMDAwIHwgMTUuNTAwMDAwMDAwMDAwMDAwMCB8IEAg MC41IHNlY3MgfCAxNS41IHwgMTUuNSB8IDAuOTcwMjk4OTEzNTg5MjU4IHwgMjMyMi40MTY2NjY2 NjY2NyB8ICAgICAyNDAyLjUgfCAgICAgIDE1LjUgfCAgICAgICAgMzEgfCAgICAgICAgICAgICAg MyB8IDAuOTQxNDc5OTgxNzEyNDk0IHwgICAgICAgICAgMiB8ICAgMjI0Ny41IHwgIDY5NjcyLjUg fCAgICAgODk5MCB8IDguODAzNDA4NDMwODI5NSB8IDguODAzNDA4NDMwODI5NSB8IDguODAzNDA4 NDMwODI5NTA0NiB8IDguODAzNDA4NDMwODI5NTA0NiB8IDguODAzNDA4NDMwODI5NTA0NiB8IDgu ODAzNDA4NDMwODI5NTA0NiB8IDguNjU1NDQxNDQ4Mzk5MTkgfCA4LjY1NTQ0MTQ0ODM5OTE5IHwg OC42NTU0NDE0NDgzOTkxODk5IHwgOC42NTU0NDE0NDgzOTkxODk5IHwgOC42NTU0NDE0NDgzOTkx ODk5IHwgOC42NTU0NDE0NDgzOTkxODk5IHwgOC44MDM0MDg0MzA4Mjk1IHwgOC44MDM0MDg0MzA4 Mjk1IHwgOC44MDM0MDg0MzA4Mjk1MDQ2IHwgOC44MDM0MDg0MzA4Mjk1MDQ2IHwgOC44MDM0MDg0 MzA4Mjk1MDQ2IHwgOC44MDM0MDg0MzA4Mjk1MDQ2IHwgMCwxLDIsMyw0LDUsNiw3LDgsOSw5LDAs MSwyLDMsNCw1LDYsNyw4LDksMCwxLDIsMyw0LDUsNiw3LDggfCBceDMwMmMzMTJjMzIyYzMzMmMz NDJjMzUyYzM2MmMzNzJjMzgyYzM5MmMzOTJjMzAyYzMxMmMzMjJjMzMyYzM0MmMzNTJjMzYyYzM3 MmMzODJjMzkyYzMwMmMzMTJjMzIyYzMzMmMzNDJjMzUyYzM2MmMzNzJjMzggfCA0NjUgfCA0NjUg fCAgICAgNzcuNSB8ICAgICA3Ny41IHwgNzcuNTAwMDAwMDAwMDAwMDAwMCB8IDc3LjUwMDAwMDAw MDAwMDAwMDAgfCA3Ny41MDAwMDAwMDAwMDAwMDAwIHwgNzcuNTAwMDAwMDAwMDAwMDAwMCB8IDc0 LjkxNjY2NjY2NjY2NjcgfCA3NC45MTY2NjY2NjY2NjY3IHwgNzQuOTE2NjY2NjY2NjY2NjY2NyB8 IDc0LjkxNjY2NjY2NjY2NjY2NjcgfCA3NC45MTY2NjY2NjY2NjY2NjY3IHwgNzQuOTE2NjY2NjY2 NjY2NjY2NyB8ICAgICA3Ny41IHwgICAgIDc3LjUgfCA3Ny41MDAwMDAwMDAwMDAwMDAwIHwgNzcu NTAwMDAwMDAwMDAwMDAwMCB8IDc3LjUwMDAwMDAwMDAwMDAwMDAgfCA3Ny41MDAwMDAwMDAwMDAw MDAwIHwgICAgICAgICAwIHwgMDEgICAgICB8ICAgICAgIDEgfCAgICAgICAxIHwgICAgICAgMSB8 IDExICAgICB8ICAgICAgMyB8ICAgICAgMyB8ICAgICAgMyB8IDEwICAgICAgfCAgICAgICAyIHwg ICAgICAgMiB8ICAgICAgIDIgfCBmICAgICAgICB8IHQgICAgICAgfCAgICAzMCB8ICAgIDMwIHwg ZiAgICAgfCB7MSwwfSB8IGhhcHB5IHwgOSAgIHwgMDEtMzEtMjAwMCB8IDAuMC4wLjMwIHwgIDMw IHwgIDMwIHwgIDMwIHwgIDMwIHwgIDMwIHwgQCAxIHNlYyB8ICQxLjAwIHwgIDMwIHwgIDMwIHwg MC8zMCB8ICgwLDMwKSB8IDkgICB8IDAwOjAwOjMwIHwgMDA6MDA6MzAtMDcgfCBTYXQgSmFuIDAx IDAwOjAwOjMwIDIwMDAgfCBTYXQgSmFuIDAxIDAwOjAwOjMwIDIwMDAgUFNUIHwgICA5IHwgezAs MH0gfCBzYWQgfCAwICAgfCAwMS0wMi0yMDAwIHwgMC4wLjAuMSB8ICAgMSB8ICAgMSB8ICAgMSB8 ICAgMSB8ICAgMSB8IEAgMCB8ICQwLjAwIHwgICAxIHwgICAxIHwgMC8xIHwgKDAsMSkgfCAwICAg fCAwMDowMDowMSB8IDAwOjAwOjAxLTA3IHwgU2F0IEphbiAwMSAwMDowMDowMSAyMDAwIHwgU2F0 IEphbiAwMSAwMDowMDowMSAyMDAwIFBTVCB8ICAgMCB8IFswLDEpICAgICAgICAgICAgICAgfCB7 WzAsMSksWzEwMCwxMDEpfSAgIHwgICAgICAgICAzMCB8IDQ2NSB8IDQ2NSB8IDQ2NSB8IDQ2NSB8 IEAgMTUgc2VjcyB8ICQxNS4wMAorKDEgcm93KQorCistLSBUZXN0cyBmb3IgYmFja3dhcmQgY29t cGF0aWJpbGl0eQorQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBjaGVja19wYXJ0 aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0ICdmYWxzZScpOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMg T0ZGKQorU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdS T1VQIEJZIGIgT1JERVIgQlkgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBPdXRwdXQ6 IHBhZ2dfdGFiLmIsIChhdmcocGFnZ190YWIuYSkpLCAobWF4KHBhZ2dfdGFiLmEpKSwgKGNvdW50 KCopKQorICAgU29ydCBLZXk6IHBhZ2dfdGFiLmIKKyAgIC0+ICBGaW5hbGl6ZSBIYXNoQWdncmVn YXRlCisgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIGF2ZyhwYWdnX3RhYi5hKSwgbWF4KHBh Z2dfdGFiLmEpLCBjb3VudCgqKQorICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3RhYi5iCisgICAg ICAgICAtPiAgQXBwZW5kCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAg ICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5h KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5hKSksIChQQVJUSUFMIGNvdW50KCopKQorICAgICAg ICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJf cDEgcGFnZ190YWIpCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwg YXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcHVibGljLnBh Z2dfdGFiX3AxIEdST1VQIEJZIDEKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAg ICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5iLCAoUEFSVElBTCBhdmcocGFn Z190YWJfMS5hKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmEpKSwgKFBBUlRJQUwgY291bnQo KikpCisgICAgICAgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGlj LmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xKQorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNR TDogU0VMRUNUIGIsIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSBG Uk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBHUk9VUCBCWSAxCisgICAgICAgICAgICAgICAtPiAgRm9y ZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYiwgKFBB UlRJQUwgYXZnKHBhZ2dfdGFiXzIuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5hKSksIChQ QVJUSUFMIGNvdW50KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdh dGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMikKKyAgICAgICAgICAgICAgICAg ICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1heChh KSwgY291bnQoKikgRlJPTSBwdWJsaWMucGFnZ190YWJfcDMgR1JPVVAgQlkgMQorKDE5IHJvd3Mp CisKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9V UCBCWSBiIE9SREVSIEJZIDE7CisgYiAgfCAgICAgICAgIGF2ZyAgICAgICAgIHwgbWF4IHwgY291 bnQgCistLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tCisgIDAgfCAxMC4w MDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAgMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAg fCAgMjEgfCAgICA2MAorICAyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisg IDMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAgNCB8IDE0LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjQgfCAgICA2MAorICA1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8 ICAgIDYwCisgIDYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAgNyB8IDE3 LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorICA4IHwgMTguMDAwMDAwMDAwMDAwMDAw MCB8ICAyOCB8ICAgIDYwCisgIDkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAK KyAxMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDExIHwgMTEuMDAwMDAw MDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMTIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIy IHwgICAgNjAKKyAxMyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDE0IHwg MTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgMTUgfCAxNS4wMDAwMDAwMDAwMDAw MDAwIHwgIDI1IHwgICAgNjAKKyAxNiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2 MAorIDE3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYwCisgMTggfCAxOC4wMDAw MDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyAxOSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAg MjkgfCAgICA2MAorIDIwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMjEg fCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAyMiB8IDEyLjAwMDAwMDAwMDAw MDAwMDAgfCAgMjIgfCAgICA2MAorIDIzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAg IDYwCisgMjQgfCAxNC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyAyNSB8IDE1LjAw MDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgICA2MAorIDI2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyNiB8ICAgIDYwCisgMjcgfCAxNy4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyAy OCB8IDE4LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjggfCAgICA2MAorIDI5IHwgMTkuMDAwMDAwMDAw MDAwMDAwMCB8ICAyOSB8ICAgIDYwCisgMzAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwg ICAgNjAKKyAzMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDMyIHwgMTIu MDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgMzMgfCAxMy4wMDAwMDAwMDAwMDAwMDAw IHwgIDIzIHwgICAgNjAKKyAzNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAor IDM1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgMzYgfCAxNi4wMDAwMDAw MDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAzNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcg fCAgICA2MAorIDM4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgMzkgfCAx OS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyA0MCB8IDEwLjAwMDAwMDAwMDAwMDAw MDAgfCAgMjAgfCAgICA2MAorIDQxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYw CisgNDIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyA0MyB8IDEzLjAwMDAw MDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDQ0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAy NCB8ICAgIDYwCisgNDUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyA0NiB8 IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDQ3IHwgMTcuMDAwMDAwMDAwMDAw MDAwMCB8ICAyNyB8ICAgIDYwCisgNDggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAg NjAKKyA0OSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorKDUwIHJvd3MpCisK K0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChTRVQgY2hlY2tfcGFydGlhbF9hZ2dyZWdh dGVfc3VwcG9ydCAndHJ1ZScpOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNU IGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JE RVIgQlkgMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBPdXRwdXQ6IHBhZ2dfdGFiLmIs IChhdmcocGFnZ190YWIuYSkpLCAobWF4KHBhZ2dfdGFiLmEpKSwgKGNvdW50KCopKQorICAgU29y dCBLZXk6IHBhZ2dfdGFiLmIKKyAgIC0+ICBGaW5hbGl6ZSBIYXNoQWdncmVnYXRlCisgICAgICAg ICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIGF2ZyhwYWdnX3RhYi5hKSwgbWF4KHBhZ2dfdGFiLmEpLCBj b3VudCgqKQorICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAtPiAgQXBw ZW5kCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAg ICBPdXRwdXQ6IHBhZ2dfdGFiLmIsIChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5hKSksIChQQVJUSUFM IG1heChwYWdnX3RhYi5hKSksIChQQVJUSUFMIGNvdW50KCopKQorICAgICAgICAgICAgICAgICAg ICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIp CisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxf QUdHUkVHQVRFIGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcHVibGljLnBhZ2dfdGFiX3AxIEdS T1VQIEJZIDEKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAg ICAgICAgIE91dHB1dDogcGFnZ190YWJfMS5iLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMS5hKSks IChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmEpKSwgKFBBUlRJQUwgY291bnQoKikpCisgICAgICAg ICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9w MiBwYWdnX3RhYl8xKQorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIs IGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHB1YmxpYy5w YWdnX3RhYl9wMiBHUk9VUCBCWSAxCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisg ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYiwgKFBBUlRJQUwgYXZnKHBh Z2dfdGFiXzIuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5hKSksIChQQVJUSUFMIGNvdW50 KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1Ymxp Yy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMikKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBT UUw6IFNFTEVDVCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1heChhKSwgY291bnQoKikg RlJPTSBwdWJsaWMucGFnZ190YWJfcDMgR1JPVVAgQlkgMQorKDE5IHJvd3MpCisKK1NFTEVDVCBi LCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVS IEJZIDE7CisgYiAgfCAgICAgICAgIGF2ZyAgICAgICAgIHwgbWF4IHwgY291bnQgCistLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tCisgIDAgfCAxMC4wMDAwMDAwMDAwMDAw MDAwIHwgIDIwIHwgICAgNjAKKyAgMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2 MAorICAyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgIDMgfCAxMy4wMDAw MDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAgNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAg MjQgfCAgICA2MAorICA1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgIDYg fCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAgNyB8IDE3LjAwMDAwMDAwMDAw MDAwMDAgfCAgMjcgfCAgICA2MAorICA4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAg IDYwCisgIDkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyAxMCB8IDEwLjAw MDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDExIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyMSB8ICAgIDYwCisgMTIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAx MyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDE0IHwgMTQuMDAwMDAwMDAw MDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgMTUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwg ICAgNjAKKyAxNiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDE3IHwgMTcu MDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYwCisgMTggfCAxOC4wMDAwMDAwMDAwMDAwMDAw IHwgIDI4IHwgICAgNjAKKyAxOSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAor IDIwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMjEgfCAxMS4wMDAwMDAw MDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAyMiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIg fCAgICA2MAorIDIzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisgMjQgfCAx NC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyAyNSB8IDE1LjAwMDAwMDAwMDAwMDAw MDAgfCAgMjUgfCAgICA2MAorIDI2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYw CisgMjcgfCAxNy4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyAyOCB8IDE4LjAwMDAw MDAwMDAwMDAwMDAgfCAgMjggfCAgICA2MAorIDI5IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAy OSB8ICAgIDYwCisgMzAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAzMSB8 IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDMyIHwgMTIuMDAwMDAwMDAwMDAw MDAwMCB8ICAyMiB8ICAgIDYwCisgMzMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAg NjAKKyAzNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorIDM1IHwgMTUuMDAw MDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgMzYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwg IDI2IHwgICAgNjAKKyAzNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDM4 IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgMzkgfCAxOS4wMDAwMDAwMDAw MDAwMDAwIHwgIDI5IHwgICAgNjAKKyA0MCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAg ICA2MAorIDQxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgNDIgfCAxMi4w MDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyA0MyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAg fCAgMjMgfCAgICA2MAorIDQ0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisg NDUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyA0NiB8IDE2LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDQ3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8 ICAgIDYwCisgNDggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyA0OSB8IDE5 LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorKDUwIHJvd3MpCisKK0FMVEVSIFNFUlZF UiBsb29wYmFjayBPUFRJT05TIChTRVQgZmR3X3R1cGxlX2Nvc3QgJzEuMCcpOworU0VUIGVuYWJs ZV9wYXJ0aXRpb253aXNlX2pvaW49b247CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitT RUxFQ1QgYXZnKHQxLmIpLCBhdmcodDEuYjo6aW50OCkgRlJPTSBwYWdnX3RhYiB0MSBKT0lOIHBh Z2dfdGFiIHQyIFVTSU5HKGEpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRmluYWxpemUg QWdncmVnYXRlCisgICBPdXRwdXQ6IGF2Zyh0MS5iKSwgYXZnKCh0MS5iKTo6YmlnaW50KQorICAg LT4gIEFwcGVuZAorICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgorICAgICAgICAgICAgICAgT3V0 cHV0OiAoUEFSVElBTCBhdmcodDEuYikpLCAoUEFSVElBTCBhdmcoKHQxLmIpOjpiaWdpbnQpKQor ICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKChwdWJsaWMuZnBhZ2dfdGFi X3AxIHQxKSBJTk5FUiBKT0lOIChwdWJsaWMuZnBhZ2dfdGFiX3AxIHQyKSkKKyAgICAgICAgICAg ICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgcjQuYiksIGF2ZyhQ QVJUSUFMX0FHR1JFR0FURSByNC5iOjpiaWdpbnQpIEZST00gKHB1YmxpYy5wYWdnX3RhYl9wMSBy NCBJTk5FUiBKT0lOIHB1YmxpYy5wYWdnX3RhYl9wMSByNyBPTiAoKChyNC5hID0gcjcuYSkpKSkK KyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJ QUwgYXZnKHQxXzEuYikpLCAoUEFSVElBTCBhdmcoKHQxXzEuYik6OmJpZ2ludCkpCisgICAgICAg ICAgICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAoKHB1YmxpYy5mcGFnZ190YWJfcDIgdDFf MSkgSU5ORVIgSk9JTiAocHVibGljLmZwYWdnX3RhYl9wMiB0Ml8xKSkKKyAgICAgICAgICAgICAg IFJlbW90ZSBTUUw6IFNFTEVDVCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgcjUuYiksIGF2ZyhQQVJU SUFMX0FHR1JFR0FURSByNS5iOjpiaWdpbnQpIEZST00gKHB1YmxpYy5wYWdnX3RhYl9wMiByNSBJ Tk5FUiBKT0lOIHB1YmxpYy5wYWdnX3RhYl9wMiByOCBPTiAoKChyNS5hID0gcjguYSkpKSkKKyAg ICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJQUwg YXZnKHQxXzIuYikpLCAoUEFSVElBTCBhdmcoKHQxXzIuYik6OmJpZ2ludCkpCisgICAgICAgICAg ICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAoKHB1YmxpYy5mcGFnZ190YWJfcDMgdDFfMikg SU5ORVIgSk9JTiAocHVibGljLmZwYWdnX3RhYl9wMyB0Ml8yKSkKKyAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgcjYuYiksIGF2ZyhQQVJUSUFM X0FHR1JFR0FURSByNi5iOjpiaWdpbnQpIEZST00gKHB1YmxpYy5wYWdnX3RhYl9wMyByNiBJTk5F UiBKT0lOIHB1YmxpYy5wYWdnX3RhYl9wMyByOSBPTiAoKChyNi5hID0gcjkuYSkpKSkKKygxNSBy b3dzKQorCitTRUxFQ1QgYXZnKHQxLmIpLCBhdmcodDEuYjo6aW50OCkgRlJPTSBwYWdnX3RhYiB0 MSBKT0lOIHBhZ2dfdGFiIHQyIFVTSU5HKGEpOworICAgICAgICAgYXZnICAgICAgICAgfCAgICAg ICAgIGF2ZyAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIDI0LjUwMDAwMDAwMDAwMDAwMDAgfCAyNC41MDAwMDAwMDAwMDAwMDAwCisoMSByb3cp CisKK1JFU0VUIGVuYWJsZV9wYXJ0aXRpb253aXNlX2pvaW47CitBTFRFUiBTRVJWRVIgbG9vcGJh Y2sgT1BUSU9OUyAoU0VUIGZkd190dXBsZV9jb3N0ICcwLjEnKTsKK0FMVEVSIFNFUlZFUiBsb29w YmFjayBPUFRJT05TIChEUk9QIGNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQpOworLS0g SXQgaXMgdW5zYWZlIHRvIHB1c2ggZG93biBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgd2hpY2ggY29udGFp biBESVNUSU5DVCBjbGF1c2VzCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1Qg bWF4KGEpLCBjb3VudChkaXN0aW5jdCBiKSBGUk9NIHBhZ2dfdGFiOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdn cmVnYXRlCisgICBPdXRwdXQ6IG1heChwYWdnX3RhYi5hKSwgY291bnQoRElTVElOQ1QgcGFnZ190 YWIuYikKICAgIC0+ICBNZXJnZSBBcHBlbmQKICAgICAgICAgIFNvcnQgS2V5OiBwYWdnX3RhYi5i Ci0gICAgICAgICAtPiAgUGFydGlhbCBHcm91cEFnZ3JlZ2F0ZQotICAgICAgICAgICAgICAgR3Jv dXAgS2V5OiBwYWdnX3RhYi5iCi0gICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIGZw YWdnX3RhYl9wMSBwYWdnX3RhYgotICAgICAgICAgLT4gIFBhcnRpYWwgR3JvdXBBZ2dyZWdhdGUK LSAgICAgICAgICAgICAgIEdyb3VwIEtleTogcGFnZ190YWJfMS5iCi0gICAgICAgICAgICAgICAt PiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xCi0gICAgICAgICAtPiAg UGFydGlhbCBHcm91cEFnZ3JlZ2F0ZQotICAgICAgICAgICAgICAgR3JvdXAgS2V5OiBwYWdnX3Rh Yl8yLmIKLSAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gZnBhZ2dfdGFiX3AzIHBh Z2dfdGFiXzIKLSgxNCByb3dzKQorICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu ZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiXzEKKyAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJf MS5hLCBwYWdnX3RhYl8xLmIKKyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBi IEZST00gcHVibGljLnBhZ2dfdGFiX3AxIE9SREVSIEJZIGIgQVNDIE5VTExTIExBU1QKKyAgICAg ICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCisg ICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIuYSwgcGFnZ190YWJfMi5iCisgICAgICAg ICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBP UkRFUiBCWSBiIEFTQyBOVUxMUyBMQVNUCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1 YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMworICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdn X3RhYl8zLmEsIHBhZ2dfdGFiXzMuYgorICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNU IGEsIGIgRlJPTSBwdWJsaWMucGFnZ190YWJfcDMgT1JERVIgQlkgYiBBU0MgTlVMTFMgTEFTVAor KDEzIHJvd3MpCisKK1NFTEVDVCBtYXgoYSksIGNvdW50KGRpc3RpbmN0IGIpIEZST00gcGFnZ190 YWI7CisgbWF4IHwgY291bnQgCistLS0tLSstLS0tLS0tCisgIDI5IHwgICAgNTAKKygxIHJvdykK KworLS0gSXQgaXMgdW5zYWZlIHRvIHB1c2ggZG93biBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgd2hpY2gg Y29udGFpbiBPUkRFUiBCWSBjbGF1c2VzCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNF TEVDVCBhcnJheV9hZ2coYiBvcmRlciBieSBiKSBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFs IGJldHdlZW4gMSBhbmQgMzA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIE91dHB1dDogYXJyYXlfYWdnKHBh Z2dfdGFiLmIgT1JERVIgQlkgcGFnZ190YWIuYikKKyAgIC0+ICBTb3J0CisgICAgICAgICBPdXRw dXQ6IHBhZ2dfdGFiLmIKKyAgICAgICAgIFNvcnQgS2V5OiBwYWdnX3RhYi5iCisgICAgICAgICAt PiAgQXBwZW5kCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFn Z190YWJfcDEgcGFnZ190YWJfMQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3Rh Yl8xLmIKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiIEZST00gcHVi bGljLnBhZ2dfdGFiX3AxIFdIRVJFICgoY19zZXJpYWwgPj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9 IDMwKSkKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3Rh Yl9wMiBwYWdnX3RhYl8yCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzIu YgorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIgRlJPTSBwdWJsaWMu cGFnZ190YWJfcDIgV0hFUkUgKChjX3NlcmlhbCA+PSAxKSkgQU5EICgoY19zZXJpYWwgPD0gMzAp KQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3Az IHBhZ2dfdGFiXzMKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMy5iCisg ICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiBGUk9NIHB1YmxpYy5wYWdn X3RhYl9wMyBXSEVSRSAoKGNfc2VyaWFsID49IDEpKSBBTkQgKChjX3NlcmlhbCA8PSAzMCkpCiso MTUgcm93cykKKworU0VMRUNUIGFycmF5X2FnZyhiIG9yZGVyIGJ5IGIpIEZST00gcGFnZ190YWIg V0hFUkUgY19zZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcnJheV9hZ2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgezEsMiwzLDQsNSw2LDcsOCw5LDEw LDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDE5LDIwLDIxLDIyLDIzLDI0LDI1LDI2LDI3LDI4LDI5 LDMwfQorKDEgcm93KQogCitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoRFJPUCBmZHdf dHVwbGVfY29zdCk7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBhY2Nlc3MgcmlnaHRzIGFuZCBzdXBlcnVz ZXIKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlv bi5jIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKaW5kZXggNjMwYjMwNC4uY2M2ZDgw OCAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKKysrIGIvY29udHJp Yi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKQEAgLTEyNiw3ICsxMjYsOCBAQCBwb3N0Z3Jlc19mZHdf dmFsaWRhdG9yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAiYXN5 bmNfY2FwYWJsZSIpID09IDAgfHwKIAkJCXN0cmNtcChkZWYtPmRlZm5hbWUsICJwYXJhbGxlbF9j b21taXQiKSA9PSAwIHx8CiAJCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAicGFyYWxsZWxfYWJvcnQi KSA9PSAwIHx8Ci0JCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAia2VlcF9jb25uZWN0aW9ucyIpID09 IDApCisJCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAia2VlcF9jb25uZWN0aW9ucyIpID09IDAgfHwK KwkJCXN0cmNtcChkZWYtPmRlZm5hbWUsICJjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0 IikgPT0gMCkKIAkJewogCQkJLyogdGhlc2UgYWNjZXB0IG9ubHkgYm9vbGVhbiB2YWx1ZXMgKi8K IAkJCSh2b2lkKSBkZWZHZXRCb29sZWFuKGRlZik7CkBAIC0yNjgsNiArMjY5LDcgQEAgSW5pdFBn RmR3T3B0aW9ucyh2b2lkKQogCQkvKiBiYXRjaF9zaXplIGlzIGF2YWlsYWJsZSBvbiBib3RoIHNl cnZlciBhbmQgdGFibGUgKi8KIAkJeyJiYXRjaF9zaXplIiwgRm9yZWlnblNlcnZlclJlbGF0aW9u SWQsIGZhbHNlfSwKIAkJeyJiYXRjaF9zaXplIiwgRm9yZWlnblRhYmxlUmVsYXRpb25JZCwgZmFs c2V9LAorCQl7ImNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQiLCBGb3JlaWduU2VydmVy UmVsYXRpb25JZCwgZmFsc2V9LAogCQkvKiBhc3luY19jYXBhYmxlIGlzIGF2YWlsYWJsZSBvbiBi b3RoIHNlcnZlciBhbmQgdGFibGUgKi8KIAkJeyJhc3luY19jYXBhYmxlIiwgRm9yZWlnblNlcnZl clJlbGF0aW9uSWQsIGZhbHNlfSwKIAkJeyJhc3luY19jYXBhYmxlIiwgRm9yZWlnblRhYmxlUmVs YXRpb25JZCwgZmFsc2V9LApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdy ZXNfZmR3LmMgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYwppbmRleCAxNDJk Y2ZjLi40MmViMTdhIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19m ZHcuYworKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYwpAQCAtMzYsNiAr MzYsNyBAQAogI2luY2x1ZGUgIm9wdGltaXplci9wYXRobm9kZS5oIgogI2luY2x1ZGUgIm9wdGlt aXplci9wYXRocy5oIgogI2luY2x1ZGUgIm9wdGltaXplci9wbGFubWFpbi5oIgorI2luY2x1ZGUg Im9wdGltaXplci9wbGFubmVyLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3ByZXAuaCIKICNpbmNs dWRlICJvcHRpbWl6ZXIvcmVzdHJpY3RpbmZvLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3RsaXN0 LmgiCkBAIC01MTksNyArNTIwLDcgQEAgc3RhdGljIGJvb2wgZm9yZWlnbl9qb2luX29rKFBsYW5u ZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpqb2lucmVsLAogCQkJCQkJCUpvaW5UeXBlIGpvaW50 eXBlLCBSZWxPcHRJbmZvICpvdXRlcnJlbCwgUmVsT3B0SW5mbyAqaW5uZXJyZWwsCiAJCQkJCQkJ Sm9pblBhdGhFeHRyYURhdGEgKmV4dHJhKTsKIHN0YXRpYyBib29sIGZvcmVpZ25fZ3JvdXBpbmdf b2soUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmdyb3VwZWRfcmVsLAotCQkJCQkJCQlO b2RlICpoYXZpbmdRdWFsKTsKKwkJCQkJCQkJR3JvdXBQYXRoRXh0cmFEYXRhICpleHRyYSk7CiBz dGF0aWMgTGlzdCAqZ2V0X3VzZWZ1bF9wYXRoa2V5c19mb3JfcmVsYXRpb24oUGxhbm5lckluZm8g KnJvb3QsCiAJCQkJCQkJCQkJCSAgUmVsT3B0SW5mbyAqcmVsKTsKIHN0YXRpYyBMaXN0ICpnZXRf dXNlZnVsX2Vjc19mb3JfcmVsYXRpb24oUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKnJl bCk7CkBAIC02NTAsNiArNjUxLDggQEAgcG9zdGdyZXNHZXRGb3JlaWduUmVsU2l6ZShQbGFubmVy SW5mbyAqcm9vdCwKIAlmcGluZm8tPmZkd190dXBsZV9jb3N0ID0gREVGQVVMVF9GRFdfVFVQTEVf Q09TVDsKIAlmcGluZm8tPnNoaXBwYWJsZV9leHRlbnNpb25zID0gTklMOwogCWZwaW5mby0+ZmV0 Y2hfc2l6ZSA9IDEwMDsKKwlmcGluZm8tPmNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQg PSBmYWxzZTsKKwlmcGluZm8tPnJlbW90ZXZlcnNpb24gPSAwOwogCWZwaW5mby0+YXN5bmNfY2Fw YWJsZSA9IGZhbHNlOwogCiAJYXBwbHlfc2VydmVyX29wdGlvbnMoZnBpbmZvKTsKQEAgLTY2MSw3 ICs2NjQsNyBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25SZWxTaXplKFBsYW5uZXJJbmZvICpyb290LAog CSAqIHNob3VsZCBtYXRjaCB3aGF0IEV4ZWNDaGVja1Blcm1pc3Npb25zKCkgZG9lcy4gIElmIHdl IGZhaWwgZHVlIHRvIGxhY2sKIAkgKiBvZiBwZXJtaXNzaW9ucywgdGhlIHF1ZXJ5IHdvdWxkIGhh dmUgZmFpbGVkIGF0IHJ1bnRpbWUgYW55d2F5LgogCSAqLwotCWlmIChmcGluZm8tPnVzZV9yZW1v dGVfZXN0aW1hdGUpCisJaWYgKGZwaW5mby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSB8fCBmcGluZm8t PmNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQpCiAJewogCQlPaWQJCQl1c2VyaWQ7CiAK QEAgLTYwMzEsOSArNjAzNCwxMCBAQCBmb3JlaWduX2pvaW5fb2soUGxhbm5lckluZm8gKnJvb3Qs IFJlbE9wdEluZm8gKmpvaW5yZWwsIEpvaW5UeXBlIGpvaW50eXBlLAogCWZwaW5mby0+cHVzaGRv d25fc2FmZSA9IHRydWU7CiAKIAkvKiBHZXQgdXNlciBtYXBwaW5nICovCi0JaWYgKGZwaW5mby0+ dXNlX3JlbW90ZV9lc3RpbWF0ZSkKKwlpZiAoZnBpbmZvLT51c2VfcmVtb3RlX2VzdGltYXRlIHx8 IGZwaW5mby0+Y2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCkKIAl7Ci0JCWlmIChmcGlu Zm9fby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSkKKwkJaWYgKGZwaW5mb19vLT51c2VfcmVtb3RlX2Vz dGltYXRlIHx8CisJCQlmcGluZm9fby0+Y2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCkK IAkJCWZwaW5mby0+dXNlciA9IGZwaW5mb19vLT51c2VyOwogCQllbHNlCiAJCQlmcGluZm8tPnVz ZXIgPSBmcGluZm9faS0+dXNlcjsKQEAgLTYyMTUsNiArNjIxOSw4IEBAIGFwcGx5X3NlcnZlcl9v cHRpb25zKFBnRmR3UmVsYXRpb25JbmZvICpmcGluZm8pCiAJCQkJRXh0cmFjdEV4dGVuc2lvbkxp c3QoZGVmR2V0U3RyaW5nKGRlZiksIGZhbHNlKTsKIAkJZWxzZSBpZiAoc3RyY21wKGRlZi0+ZGVm bmFtZSwgImZldGNoX3NpemUiKSA9PSAwKQogCQkJKHZvaWQpIHBhcnNlX2ludChkZWZHZXRTdHJp bmcoZGVmKSwgJmZwaW5mby0+ZmV0Y2hfc2l6ZSwgMCwgTlVMTCk7CisJCWVsc2UgaWYgKHN0cmNt cChkZWYtPmRlZm5hbWUsICJjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0IikgPT0gMCkK KwkJCWZwaW5mby0+Y2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCA9IGRlZkdldEJvb2xl YW4oZGVmKTsKIAkJZWxzZSBpZiAoc3RyY21wKGRlZi0+ZGVmbmFtZSwgImFzeW5jX2NhcGFibGUi KSA9PSAwKQogCQkJZnBpbmZvLT5hc3luY19jYXBhYmxlID0gZGVmR2V0Qm9vbGVhbihkZWYpOwog CX0KQEAgLTYyNzQsNiArNjI4MCw4IEBAIG1lcmdlX2Zkd19vcHRpb25zKFBnRmR3UmVsYXRpb25J bmZvICpmcGluZm8sCiAJZnBpbmZvLT5zaGlwcGFibGVfZXh0ZW5zaW9ucyA9IGZwaW5mb19vLT5z aGlwcGFibGVfZXh0ZW5zaW9uczsKIAlmcGluZm8tPnVzZV9yZW1vdGVfZXN0aW1hdGUgPSBmcGlu Zm9fby0+dXNlX3JlbW90ZV9lc3RpbWF0ZTsKIAlmcGluZm8tPmZldGNoX3NpemUgPSBmcGluZm9f by0+ZmV0Y2hfc2l6ZTsKKwlmcGluZm8tPmNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQg PSBmcGluZm9fby0+Y2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydDsKKwlmcGluZm8tPnJl bW90ZXZlcnNpb24gPSBmcGluZm9fby0+cmVtb3RldmVyc2lvbjsKIAlmcGluZm8tPmFzeW5jX2Nh cGFibGUgPSBmcGluZm9fby0+YXN5bmNfY2FwYWJsZTsKIAogCS8qIE1lcmdlIHRoZSB0YWJsZSBs ZXZlbCBvcHRpb25zIGZyb20gZWl0aGVyIHNpZGUgb2YgdGhlIGpvaW4uICovCkBAIC02NDU2LDcg KzY0NjQsNyBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25Kb2luUGF0aHMoUGxhbm5lckluZm8gKnJvb3Qs CiAgKi8KIHN0YXRpYyBib29sCiBmb3JlaWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290 LCBSZWxPcHRJbmZvICpncm91cGVkX3JlbCwKLQkJCQkJTm9kZSAqaGF2aW5nUXVhbCkKKwkJCQkJ R3JvdXBQYXRoRXh0cmFEYXRhICpleHRyYSkKIHsKIAlRdWVyeQkgICAqcXVlcnkgPSByb290LT5w YXJzZTsKIAlQZ0Zkd1JlbGF0aW9uSW5mbyAqZnBpbmZvID0gKFBnRmR3UmVsYXRpb25JbmZvICop IGdyb3VwZWRfcmVsLT5mZHdfcHJpdmF0ZTsKQEAgLTY0NjUsNiArNjQ3Myw3IEBAIGZvcmVpZ25f Z3JvdXBpbmdfb2soUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmdyb3VwZWRfcmVsLAog CUxpc3RDZWxsICAgKmxjOwogCWludAkJCWk7CiAJTGlzdAkgICAqdGxpc3QgPSBOSUw7CisJYm9v bAkJcGFydGlhbCA9IGV4dHJhLT5wYXR5cGUgPT0gUEFSVElUSU9OV0lTRV9BR0dSRUdBVEVfUEFS VElBTDsKIAogCS8qIFdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IHB1c2hpbmcgR3JvdXBpbmcg U2V0cy4gKi8KIAlpZiAocXVlcnktPmdyb3VwaW5nU2V0cykKQEAgLTY0OTgsNiArNjUwNywxMiBA QCBmb3JlaWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpncm91 cGVkX3JlbCwKIAkgKiBhIG5vZGUsIGFzIGxvbmcgYXMgaXQncyBub3QgYXQgdG9wIGxldmVsOyB0 aGVuIG5vIG1hdGNoIGlzIHBvc3NpYmxlLgogCSAqLwogCWkgPSAwOworCWZwaW5mby0+Z3JvdXBf Y2xhdXNlID0gcXVlcnktPmdyb3VwQ2xhdXNlOworCWlmIChwYXJ0aWFsKQorCXsKKwkJZnBpbmZv LT5ncm91cF9jbGF1c2UgPSBleHRyYS0+Z3JvdXBDbGF1c2VQYXJ0aWFsOworCQlncm91cGluZ190 YXJnZXQgPSBleHRyYS0+cGFydGlhbF90YXJnZXQ7CisJfQogCWZvcmVhY2gobGMsIGdyb3VwaW5n X3RhcmdldC0+ZXhwcnMpCiAJewogCQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxj KTsKQEAgLTY1MDksNyArNjUyNCw3IEBAIGZvcmVpZ25fZ3JvdXBpbmdfb2soUGxhbm5lckluZm8g KnJvb3QsIFJlbE9wdEluZm8gKmdyb3VwZWRfcmVsLAogCQkgKiBjaGVjayB0aGUgd2hvbGUgR1JP VVAgQlkgY2xhdXNlIG5vdCBqdXN0IHByb2Nlc3NlZF9ncm91cENsYXVzZSwKIAkJICogYmVjYXVz ZSB3ZSB3aWxsIHNoaXAgYWxsIG9mIGl0LCBjZi4gYXBwZW5kR3JvdXBCeUNsYXVzZS4KIAkJICov Ci0JCWlmIChzZ3JlZiAmJiBnZXRfc29ydGdyb3VwcmVmX2NsYXVzZV9ub2VycihzZ3JlZiwgcXVl cnktPmdyb3VwQ2xhdXNlKSkKKwkJaWYgKHNncmVmICYmIGdldF9zb3J0Z3JvdXByZWZfY2xhdXNl X25vZXJyKHNncmVmLCBmcGluZm8tPmdyb3VwX2NsYXVzZSkpCiAJCXsKIAkJCVRhcmdldEVudHJ5 ICp0bGU7CiAKQEAgLTY1OTUsOSArNjYxMCw5IEBAIGZvcmVpZ25fZ3JvdXBpbmdfb2soUGxhbm5l ckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmdyb3VwZWRfcmVsLAogCSAqIENsYXNzaWZ5IHRoZSBw dXNoYWJsZSBhbmQgbm9uLXB1c2hhYmxlIEhBVklORyBjbGF1c2VzIGFuZCBzYXZlIHRoZW0gaW4K IAkgKiByZW1vdGVfY29uZHMgYW5kIGxvY2FsX2NvbmRzIG9mIHRoZSBncm91cGVkIHJlbCdzIGZw aW5mby4KIAkgKi8KLQlpZiAoaGF2aW5nUXVhbCkKKwlpZiAoZXh0cmEtPmhhdmluZ1F1YWwpCiAJ ewotCQlmb3JlYWNoKGxjLCAoTGlzdCAqKSBoYXZpbmdRdWFsKQorCQlmb3JlYWNoKGxjLCAoTGlz dCAqKSBleHRyYS0+aGF2aW5nUXVhbCkKIAkJewogCQkJRXhwcgkgICAqZXhwciA9IChFeHByICop IGxmaXJzdChsYyk7CiAJCQlSZXN0cmljdEluZm8gKnJpbmZvOwpAQCAtNjYxNyw3ICs2NjMyLDcg QEAgZm9yZWlnbl9ncm91cGluZ19vayhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqZ3Jv dXBlZF9yZWwsCiAJCQkJCQkJCQkgIGdyb3VwZWRfcmVsLT5yZWxpZHMsCiAJCQkJCQkJCQkgIE5V TEwsCiAJCQkJCQkJCQkgIE5VTEwpOwotCQkJaWYgKGlzX2ZvcmVpZ25fZXhwcihyb290LCBncm91 cGVkX3JlbCwgZXhwcikpCisJCQlpZiAoaXNfZm9yZWlnbl9leHByKHJvb3QsIGdyb3VwZWRfcmVs LCBleHByKSAmJiAhcGFydGlhbCkKIAkJCQlmcGluZm8tPnJlbW90ZV9jb25kcyA9IGxhcHBlbmQo ZnBpbmZvLT5yZW1vdGVfY29uZHMsIHJpbmZvKTsKIAkJCWVsc2UKIAkJCQlmcGluZm8tPmxvY2Fs X2NvbmRzID0gbGFwcGVuZChmcGluZm8tPmxvY2FsX2NvbmRzLCByaW5mbyk7CkBAIC02NzExLDYg KzY3MjYsNyBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25VcHBlclBhdGhzKFBsYW5uZXJJbmZvICpyb290 LCBVcHBlclJlbGF0aW9uS2luZCBzdGFnZSwKIAogCS8qIElnbm9yZSBzdGFnZXMgd2UgZG9uJ3Qg c3VwcG9ydDsgYW5kIHNraXAgYW55IGR1cGxpY2F0ZSBjYWxscy4gKi8KIAlpZiAoKHN0YWdlICE9 IFVQUEVSUkVMX0dST1VQX0FHRyAmJgorCQkgc3RhZ2UgIT0gVVBQRVJSRUxfUEFSVElBTF9HUk9V UF9BR0cgJiYKIAkJIHN0YWdlICE9IFVQUEVSUkVMX09SREVSRUQgJiYKIAkJIHN0YWdlICE9IFVQ UEVSUkVMX0ZJTkFMKSB8fAogCQlvdXRwdXRfcmVsLT5mZHdfcHJpdmF0ZSkKQEAgLTY3MjcsNiAr Njc0MywxMCBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25VcHBlclBhdGhzKFBsYW5uZXJJbmZvICpyb290 LCBVcHBlclJlbGF0aW9uS2luZCBzdGFnZSwKIAkJCWFkZF9mb3JlaWduX2dyb3VwaW5nX3BhdGhz KHJvb3QsIGlucHV0X3JlbCwgb3V0cHV0X3JlbCwKIAkJCQkJCQkJCSAgIChHcm91cFBhdGhFeHRy YURhdGEgKikgZXh0cmEpOwogCQkJYnJlYWs7CisJCWNhc2UgVVBQRVJSRUxfUEFSVElBTF9HUk9V UF9BR0c6CisJCQlhZGRfZm9yZWlnbl9ncm91cGluZ19wYXRocyhyb290LCBpbnB1dF9yZWwsIG91 dHB1dF9yZWwsCisJCQkJCQkJCQkgICAoR3JvdXBQYXRoRXh0cmFEYXRhICopIGV4dHJhKTsKKwkJ CWJyZWFrOwogCQljYXNlIFVQUEVSUkVMX09SREVSRUQ6CiAJCQlhZGRfZm9yZWlnbl9vcmRlcmVk X3BhdGhzKHJvb3QsIGlucHV0X3JlbCwgb3V0cHV0X3JlbCk7CiAJCQlicmVhazsKQEAgLTY3Njcs NyArNjc4Nyw4IEBAIGFkZF9mb3JlaWduX2dyb3VwaW5nX3BhdGhzKFBsYW5uZXJJbmZvICpyb290 LCBSZWxPcHRJbmZvICppbnB1dF9yZWwsCiAJCXJldHVybjsKIAogCUFzc2VydChleHRyYS0+cGF0 eXBlID09IFBBUlRJVElPTldJU0VfQUdHUkVHQVRFX05PTkUgfHwKLQkJICAgZXh0cmEtPnBhdHlw ZSA9PSBQQVJUSVRJT05XSVNFX0FHR1JFR0FURV9GVUxMKTsKKwkJICAgZXh0cmEtPnBhdHlwZSA9 PSBQQVJUSVRJT05XSVNFX0FHR1JFR0FURV9GVUxMIHx8CisJCSAgIGV4dHJhLT5wYXR5cGUgPT0g UEFSVElUSU9OV0lTRV9BR0dSRUdBVEVfUEFSVElBTCk7CiAKIAkvKiBzYXZlIHRoZSBpbnB1dF9y ZWwgYXMgb3V0ZXJyZWwgaW4gZnBpbmZvICovCiAJZnBpbmZvLT5vdXRlcnJlbCA9IGlucHV0X3Jl bDsKQEAgLTY3ODcsNyArNjgwOCw3IEBAIGFkZF9mb3JlaWduX2dyb3VwaW5nX3BhdGhzKFBsYW5u ZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICppbnB1dF9yZWwsCiAJICogVXNlIEhBVklORyBxdWFs IGZyb20gZXh0cmEuIEluIGNhc2Ugb2YgY2hpbGQgcGFydGl0aW9uLCBpdCB3aWxsIGhhdmUKIAkg KiB0cmFuc2xhdGVkIFZhcnMuCiAJICovCi0JaWYgKCFmb3JlaWduX2dyb3VwaW5nX29rKHJvb3Qs IGdyb3VwZWRfcmVsLCBleHRyYS0+aGF2aW5nUXVhbCkpCisJaWYgKCFmb3JlaWduX2dyb3VwaW5n X29rKHJvb3QsIGdyb3VwZWRfcmVsLCBleHRyYSkpCiAJCXJldHVybjsKIAogCS8qCmRpZmYgLS1n aXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuaCBiL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3Bvc3RncmVzX2Zkdy5oCmluZGV4IDM3YzE1NzUuLmRjZjE2NDEgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5oCisrKyBiL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3Bvc3RncmVzX2Zkdy5oCkBAIC04Niw2ICs4NiwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQ Z0Zkd1JlbGF0aW9uSW5mbwogCUZvcmVpZ25TZXJ2ZXIgKnNlcnZlcjsKIAlVc2VyTWFwcGluZyAq dXNlcjsJCQkvKiBvbmx5IHNldCBpbiB1c2VfcmVtb3RlX2VzdGltYXRlIG1vZGUgKi8KIAorCS8q IGZvciBwYXJ0aWFsIGFnZ3JlZ2F0ZSBwdXNoZG93biAqLworCWJvb2wJCWNoZWNrX3BhcnRpYWxf YWdncmVnYXRlX3N1cHBvcnQ7CisKKwkvKgorCSAqIElmIHJlbW90ZXZlcnNpb24gaXMgemVybywg aXQgbWVhbnMgdGhlIHJlbW90ZSBzZXJ2ZXIgdmVyc2lvbiBoYXMgbm90CisJICogYmVlbiBhY3F1 aXJlZC4KKwkgKi8KKwlpbnQJCQlyZW1vdGV2ZXJzaW9uOworCiAJaW50CQkJZmV0Y2hfc2l6ZTsJ CS8qIGZldGNoIHNpemUgZm9yIHRoaXMgcmVtb3RlIHRhYmxlICovCiAKIAkvKgpAQCAtMTEwLDYg KzExOSw3IEBAIHR5cGVkZWYgc3RydWN0IFBnRmR3UmVsYXRpb25JbmZvCiAKIAkvKiBHcm91cGlu ZyBpbmZvcm1hdGlvbiAqLwogCUxpc3QJICAgKmdyb3VwZWRfdGxpc3Q7CisJTGlzdAkgICAqZ3Jv dXBfY2xhdXNlOwogCiAJLyogU3VicXVlcnkgaW5mb3JtYXRpb24gKi8KIAlib29sCQltYWtlX291 dGVycmVsX3N1YnF1ZXJ5OyAvKiBkbyB3ZSBkZXBhcnNlIG91dGVycmVsIGFzIGEKZGlmZiAtLWdp dCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsIGIvY29udHJpYi9w b3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5kZXggZTNkMTQ3ZC4uZWJlM2MxNCAx MDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKKysr IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKQEAgLTMxMzcsMTYg KzMxMzcsMzEgQEAgUkVTRVQgZW5hYmxlX3BhcnRpdGlvbndpc2Vfam9pbjsKIC0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tIHRlc3QgcGFydGl0aW9ud2lzZSBhZ2dyZWdhdGVzCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLUNS RUFURSBUQUJMRSBwYWdnX3RhYiAoYSBpbnQsIGIgaW50LCBjIHRleHQpIFBBUlRJVElPTiBCWSBS QU5HRShhKTsKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChBREQgZmR3X3R1cGxlX2Nv c3QgJzAuMScpOworCitDUkVBVEUgVFlQRSBtb29kIEFTIGVudW0gKCdzYWQnLCAnb2snLCAnaGFw cHknKTsKK0FMVEVSIEVYVEVOU0lPTiBwb3N0Z3Jlc19mZHcgQUREIFRZUEUgbW9vZDsKKworQ1JF QVRFIFRBQkxFIHBhZ2dfdGFiIChhIGludCwgYiBpbnQsIGMgdGV4dCwgY19zZXJpYWwgaW50NCwK KwkJCQkJY19pbnQ0YXJyYXkgX2ludDQsIGNfaW50ZXJ2YWwgaW50ZXJ2YWwsCisJCQkJCWNfbW9u ZXkgbW9uZXksIGNfMWMgdGV4dCwgY18xYiBieXRlYSwKKwkJCQkJY19iaXQgYml0KDIpLCBjXzFv cjNpbnQyIGludDIsCisJCQkJCWNfMW9yM2ludDQgaW50NCwgY18xb3IzaW50OCBpbnQ4LAorCQkJ CQljX2Jvb2wgYm9vbCwgY19lbnVtIG1vb2QsIGNfcGdfbHNuIHBnX2xzbiwKKwkJCQkJY190aWQg dGlkLCBjX2ludDRyYW5nZSBpbnQ0cmFuZ2UsCisJCQkJCWNfaW50NG11bHRpcmFuZ2UgaW50NG11 bHRpcmFuZ2UsCisJCQkJCWNfdGltZSB0aW1lLCBjX3RpbWV0eiB0aW1ldHosCisJCQkJCWNfdGlt ZXN0YW1wIHRpbWVzdGFtcCwgY190aW1lc3RhbXB0eiB0aW1lc3RhbXB0eiwKKwkJCQkJY194aWQ4 IHhpZDgpCisJUEFSVElUSU9OIEJZIFJBTkdFKGEpOwogCiBDUkVBVEUgVEFCTEUgcGFnZ190YWJf cDEgKExJS0UgcGFnZ190YWIpOwogQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiX3AyIChMSUtFIHBhZ2df dGFiKTsKIENSRUFURSBUQUJMRSBwYWdnX3RhYl9wMyAoTElLRSBwYWdnX3RhYik7CiAKLUlOU0VS VCBJTlRPIHBhZ2dfdGFiX3AxIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAn Rk0wMDAwJykgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVSRSAoaSAlIDMwKSA8 IDEwOwotSU5TRVJUIElOVE8gcGFnZ190YWJfcDIgU0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0b19j aGFyKGkvMzAsICdGTTAwMDAnKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJF IChpICUgMzApIDwgMjAgYW5kIChpICUgMzApID49IDEwOwotSU5TRVJUIElOVE8gcGFnZ190YWJf cDMgU0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMzAgYW5kIChpICUgMzAp ID49IDIwOworSU5TRVJUIElOVE8gcGFnZ190YWJfcDEgU0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0 b19jaGFyKGkvMzAsICdGTTAwMDAnKSwgaSwgYXJyYXlbKGkgJSAyKSwgMF0sICgoaSAlIDIpIHx8 ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKGkgJSAyKTo6bW9uZXksICgoaSAtIDEpICUgMTApOjp0 ZXh0LCAoKChpIC0gMSkgJSAxMCk6OnRleHQpOjpieXRlYSwgY2FzZSB3aGVuIChpICUgMikgPSAw IHRoZW4gQicwMScgZWxzZSBCJzExJyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEg ZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNl IHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0g MCB0aGVuIHRydWUgZWxzZSBmYWxzZSBlbmQsIChjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAn c2FkJyBlbHNlICdoYXBweScgZW5kKTo6bW9vZCwgKCcwLycgfHwgaSk6OnBnX2xzbiwgKCcoMCwn IHx8IGkgfHwgJyknKTo6dGlkLCBpbnQ0cmFuZ2UoMCwgaSksIGludDRtdWx0aXJhbmdlKGludDRy YW5nZSgwLCBpKSwgaW50NHJhbmdlKDEwMCwgMTAwICsgaSkpLCAnMDA6MDA6MDAnOjp0aW1lICsg KGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMDA6MDA6MDAnOjp0aW1ldHogKyAoaSB8fCAn IHNlY29uZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAxLTAxJzo6dGltZXN0YW1wICsgKGkgfHwgJyBz ZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcHR6ICsgKGkgfHwgJyBz ZWNvbmRzJyk6OmludGVydmFsLCAoKGkgJSAxMCk6OnRleHQpOjp4aWQ4IEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAxMDsKK0lOU0VSVCBJTlRPIHBhZ2df dGFiX3AyIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJyksIGks IGFycmF5WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsIChp ICUgMik6Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0 KTo6Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIEInMDEnIGVsc2UgQicxMScgZW5k LCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAl IDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBl bHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5k LCAoY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1v b2QsICgnMC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJh bmdlKDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSksIGludDRyYW5nZSgxMDAs IDEwMCArIGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZh bCwgJzAwOjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAw MC0wMS0wMSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAt MDEtMDEnOjp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKChpICUg MTApOjp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChp ICUgMzApIDwgMjAgYW5kIChpICUgMzApID49IDEwOworSU5TRVJUIElOVE8gcGFnZ190YWJfcDMg U0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSwgaSwgYXJyYXlb KGkgJSAyKSwgMF0sICgoaSAlIDIpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKGkgJSAyKTo6 bW9uZXksICgoaSAtIDEpICUgMTApOjp0ZXh0LCAoKChpIC0gMSkgJSAxMCk6OnRleHQpOjpieXRl YSwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gQicwMScgZWxzZSBCJzExJyBlbmQsIGNhc2Ug d2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAw IHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBl bmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIHRydWUgZWxzZSBmYWxzZSBlbmQsIChjYXNl IHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAnc2FkJyBlbHNlICdoYXBweScgZW5kKTo6bW9vZCwgKCcw LycgfHwgaSk6OnBnX2xzbiwgKCcoMCwnIHx8IGkgfHwgJyknKTo6dGlkLCBpbnQ0cmFuZ2UoMCwg aSksIGludDRtdWx0aXJhbmdlKGludDRyYW5nZSgwLCBpKSwgaW50NHJhbmdlKDEwMCwgMTAwICsg aSkpLCAnMDA6MDA6MDAnOjp0aW1lICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMDA6 MDA6MDAnOjp0aW1ldHogKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAxLTAx Jzo6dGltZXN0YW1wICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6 OnRpbWVzdGFtcHR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAoKGkgJSAxMCk6OnRl eHQpOjp4aWQ4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkg PCAzMCBhbmQgKGkgJSAzMCkgPj0gMjA7CiAKIC0tIENyZWF0ZSBmb3JlaWduIHBhcnRpdGlvbnMK IENSRUFURSBGT1JFSUdOIFRBQkxFIGZwYWdnX3RhYl9wMSBQQVJUSVRJT04gT0YgcGFnZ190YWIg Rk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMTApIFNFUlZFUiBsb29wYmFjayBPUFRJT05TICh0YWJs ZV9uYW1lICdwYWdnX3RhYl9wMScpOwpAQCAtMzE1NCw5ICszMTY5LDEzIEBAIENSRUFURSBGT1JF SUdOIFRBQkxFIGZwYWdnX3RhYl9wMiBQQVJUSVRJT04gT0YgcGFnZ190YWIgRk9SIFZBTFVFUyBG Uk9NICgxMCkgVE8KIENSRUFURSBGT1JFSUdOIFRBQkxFIGZwYWdnX3RhYl9wMyBQQVJUSVRJT04g T0YgcGFnZ190YWIgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKSBTRVJWRVIgbG9vcGJhY2sg T1BUSU9OUyAodGFibGVfbmFtZSAncGFnZ190YWJfcDMnKTsKIAogQU5BTFlaRSBwYWdnX3RhYjsK K0FOQUxZWkUgcGFnZ190YWJfcDE7CitBTkFMWVpFIHBhZ2dfdGFiX3AyOworQU5BTFlaRSBwYWdn X3RhYl9wMzsKIEFOQUxZWkUgZnBhZ2dfdGFiX3AxOwogQU5BTFlaRSBmcGFnZ190YWJfcDI7CiBB TkFMWVpFIGZwYWdnX3RhYl9wMzsKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAwOwogCiAtLSBX aGVuIEdST1VQIEJZIGNsYXVzZSBtYXRjaGVzIHdpdGggUEFSVElUSU9OIEtFWS4KIC0tIFBsYW4g d2l0aCBwYXJ0aXRpb253aXNlIGFnZ3JlZ2F0ZXMgaXMgZGlzYWJsZWQKQEAgLTMxNzYsOSArMzE5 NSwxMzEgQEAgRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogU0VMRUNUIGEsIGNvdW50KHQx KSBGUk9NIHBhZ2dfdGFiIHQxIEdST1VQIEJZIGEgSEFWSU5HIGF2ZyhiKSA8IDIyIE9SREVSIEJZ IDE7CiBTRUxFQ1QgYSwgY291bnQodDEpIEZST00gcGFnZ190YWIgdDEgR1JPVVAgQlkgYSBIQVZJ TkcgYXZnKGIpIDwgMjIgT1JERVIgQlkgMTsKIAotLS0gV2hlbiBHUk9VUCBCWSBjbGF1c2UgZG9l cyBub3QgbWF0Y2ggd2l0aCBQQVJUSVRJT04gS0VZLgotRVhQTEFJTiAoQ09TVFMgT0ZGKQorLS0g UGFydGlhbCBhZ2dyZWdhdGVzIGFyZSBzYWZlIHRvIHB1c2ggZG93biB3aGVuIHRoZXJlIGlzIGEg SEFWSU5HIGNsYXVzZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogU0VMRUNUIGIsIGF2 ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgSEFWSU5HIHN1 bShhKSA8IDcwMCBPUkRFUiBCWSAxOworU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgq KSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgSEFWSU5HIHN1bShhKSA8IDcwMCBPUkRFUiBCWSAx OworCistLSBQYXJ0aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIHdpdGhvdXQg aGF2aW5nIGNsYXVzZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGIsIGF2 ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkg MTsKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9V UCBCWSBiIE9SREVSIEJZIDE7CisKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBhcmUgc2FmZSB0byBw dXNoIGRvd24gZXZlbiBpZiB3ZSBuZWVkIGJvdGggdmFyaWFibGUgYW5kIHZhcmlhYmxlLWJhc2Vk IGV4cHJlc3Npb24KK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBhdmcoYSks IG1heChhKSwgY291bnQoKiksIChiLzIpOjpudW1lcmljIEZST00gcGFnZ190YWIgR1JPVVAgQlkg Yi8yIE9SREVSIEJZIDQ7CitTRUxFQ1QgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopLCAoYi8yKTo6 bnVtZXJpYyBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIvMiBPUkRFUiBCWSA0OworCistLSBQYXJ0 aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIGZvciBhbGwgYnVpbHQtaW4gYWdn cmVnYXRlcworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIC8qIGFnZ3JlZ2F0 ZSA8PiBwYXJ0aWFsIGFnZ3JlZ2F0ZSAqLworICAgIGFycmF5X2FnZyhjX2ludDRhcnJheSksIGFy cmF5X2FnZyhiKSwKKyAgICBhdmcoYjo6aW50MiksIGF2ZyhiOjppbnQ0KSwgYXZnKGI6OmludDgp LCBhdmcoY19pbnRlcnZhbCksIGF2ZyhiOjpmbG9hdDQpLCBhdmcoYjo6ZmxvYXQ4KSwgYXZnKGI6 Om51bWVyaWMpLAorICAgIGNvcnIoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIGNv dmFyX3BvcChiOjpmbG9hdDgsIChiICogYik6OmZsb2F0OCksCisgICAgY292YXJfc2FtcChiOjpm bG9hdDgsIChiICogYik6OmZsb2F0OCksCisgICAgcmVncl9hdmd4KCgyICogYik6OmZsb2F0OCwg Yjo6ZmxvYXQ4KSwKKyAgICByZWdyX2F2Z3koKDIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAor ICAgIHJlZ3JfaW50ZXJjZXB0KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAg cmVncl9yMigoYiAqIGIpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9zbG9wZSgoMiAq IGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3h4KCgyICogYiArIDMpOjpm bG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9zeHkoKGIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9h dDgpLAorICAgIHJlZ3Jfc3l5KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAg c3RkZGV2KGI6OmZsb2F0NCksIHN0ZGRldihiOjpmbG9hdDgpLCBzdGRkZXYoYjo6aW50MiksIHN0 ZGRldihiOjppbnQ0KSwgc3RkZGV2KGI6OmludDgpLCBzdGRkZXYoYjo6bnVtZXJpYyksCisgICAg c3RkZGV2X3BvcChiOjpmbG9hdDQpLCBzdGRkZXZfcG9wKGI6OmZsb2F0OCksIHN0ZGRldl9wb3Ao Yjo6aW50MiksIHN0ZGRldl9wb3AoYjo6aW50NCksIHN0ZGRldl9wb3AoYjo6aW50OCksIHN0ZGRl dl9wb3AoYjo6bnVtZXJpYyksCisgICAgc3RkZGV2X3NhbXAoYjo6ZmxvYXQ0KSwgc3RkZGV2X3Nh bXAoYjo6ZmxvYXQ4KSwgc3RkZGV2X3NhbXAoYjo6aW50MiksIHN0ZGRldl9zYW1wKGI6OmludDQp LCBzdGRkZXZfc2FtcChiOjppbnQ4KSwgc3RkZGV2X3NhbXAoYjo6bnVtZXJpYyksCisgICAgc3Ry aW5nX2FnZyhjXzFjLCAnLCcpLCBzdHJpbmdfYWdnKGNfMWIsICcsJyksCisgICAgc3VtKGI6Omlu dDgpLCBzdW0oYjo6bnVtZXJpYyksCisgICAgdmFyaWFuY2UoYjo6ZmxvYXQ0KSwgdmFyaWFuY2Uo Yjo6ZmxvYXQ4KSwgdmFyaWFuY2UoYjo6aW50MiksIHZhcmlhbmNlKGI6OmludDQpLCB2YXJpYW5j ZShiOjppbnQ4KSwgdmFyaWFuY2UoYjo6bnVtZXJpYyksCisgICAgdmFyX3BvcChiOjpmbG9hdDQp LCB2YXJfcG9wKGI6OmZsb2F0OCksIHZhcl9wb3AoYjo6aW50MiksIHZhcl9wb3AoYjo6aW50NCks IHZhcl9wb3AoYjo6aW50OCksIHZhcl9wb3AoYjo6bnVtZXJpYyksCisgICAgdmFyX3NhbXAoYjo6 ZmxvYXQ0KSwgdmFyX3NhbXAoYjo6ZmxvYXQ4KSwgdmFyX3NhbXAoYjo6aW50MiksIHZhcl9zYW1w KGI6OmludDQpLCB2YXJfc2FtcChiOjppbnQ4KSwgdmFyX3NhbXAoYjo6bnVtZXJpYyksCisgICAg LyogYWdncmVnYXRlID0gcGFydGlhbCBhZ2dyZWdhdGUgKi8KKyAgICBhbnlfdmFsdWUoYiAqIDAp LAorICAgIGJpdF9hbmQoY19iaXQpLCBiaXRfYW5kKGNfMW9yM2ludDIpLCBiaXRfYW5kKGNfMW9y M2ludDQpLCBiaXRfYW5kKGNfMW9yM2ludDgpLAorICAgIGJpdF9vcihjX2JpdCksIGJpdF9vcihj XzFvcjNpbnQyKSwgYml0X29yKGNfMW9yM2ludDQpLCBiaXRfb3IoY18xb3IzaW50OCksCisgICAg Yml0X3hvcihjX2JpdCksIGJpdF94b3IoY18xb3IzaW50MiksIGJpdF94b3IoY18xb3IzaW50NCks IGJpdF94b3IoY18xb3IzaW50OCksCisgICAgYm9vbF9hbmQoY19ib29sKSwKKyAgICBib29sX29y KGNfYm9vbCksCisgICAgY291bnQoYiksIGNvdW50KCopLAorICAgIGV2ZXJ5KGNfYm9vbCksCisg ICAgbWF4KGNfaW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1heChjXzFjOjpjaGFyKDEpKSwgbWF4 KCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtYXgoJzAuMC4wLjAnOjppbmV0ICsgYiksIG1heChi OjpmbG9hdDQpLCBtYXgoYjo6ZmxvYXQ4KSwgbWF4KGI6OmludDIpLCBtYXgoYjo6aW50NCksIG1h eChiOjppbnQ4KSwgbWF4KGNfaW50ZXJ2YWwpLCBtYXgoY19tb25leSksIG1heChiOjpudW1lcmlj KSwgbWF4KGI6Om9pZCksIG1heChjX3BnX2xzbiksIG1heChjX3RpZCksIG1heChjXzFjKSwgbWF4 KGNfdGltZSksIG1heChjX3RpbWV0eiksIG1heChjX3RpbWVzdGFtcCksIG1heChjX3RpbWVzdGFt cHR6KSwgbWF4KGNfeGlkOCksCisgICAgbWluKGNfaW50NGFycmF5KSwgbWluKGNfZW51bSksIG1p bihjXzFjOjpjaGFyKDEpKSwgbWluKCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtaW4oJzAuMC4w LjAnOjppbmV0ICsgYiksIG1pbihiOjpmbG9hdDQpLCBtaW4oYjo6ZmxvYXQ4KSwgbWluKGI6Omlu dDIpLCBtaW4oYjo6aW50NCksIG1pbihiOjppbnQ4KSwgbWluKGNfaW50ZXJ2YWwpLCBtaW4oY19t b25leSksIG1pbihiOjpudW1lcmljKSwgbWluKGI6Om9pZCksIG1pbihjX3BnX2xzbiksIG1pbihj X3RpZCksIG1pbihjXzFjKSwgbWluKGNfdGltZSksIG1pbihjX3RpbWV0eiksIG1pbihjX3RpbWVz dGFtcCksIG1pbihjX3RpbWVzdGFtcHR6KSwgbWluKGNfeGlkOCksCisgICAgcmFuZ2VfaW50ZXJz ZWN0X2FnZyhjX2ludDRyYW5nZSksIHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0bXVsdGlyYW5n ZSksCisgICAgcmVncl9jb3VudCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAg IHN1bShiOjpmbG9hdDQpLCBzdW0oYjo6ZmxvYXQ4KSwgc3VtKGI6OmludDIpLCBzdW0oYjo6aW50 NCksCXN1bShjX2ludGVydmFsKSwgc3VtKGNfbW9uZXkpCisgIEZST00gcGFnZ190YWIgV0hFUkUg Y19zZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKKworU0VMRUNUIC8qIGFnZ3JlZ2F0ZSA8PiBwYXJ0 aWFsIGFnZ3JlZ2F0ZSAqLworICAgIGFycmF5X2FnZyhjX2ludDRhcnJheSksIGFycmF5X2FnZyhi KSwKKyAgICBhdmcoYjo6aW50MiksIGF2ZyhiOjppbnQ0KSwgYXZnKGI6OmludDgpLCBhdmcoY19p bnRlcnZhbCksCisgICAgYXZnKGI6OmZsb2F0NCksIGF2ZyhiOjpmbG9hdDgpLAorICAgIGNvcnIo Yjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIGNvdmFyX3BvcChiOjpmbG9hdDgsIChi ICogYik6OmZsb2F0OCksCisgICAgY292YXJfc2FtcChiOjpmbG9hdDgsIChiICogYik6OmZsb2F0 OCksCisgICAgcmVncl9hdmd4KCgyICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdy X2F2Z3koKDIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3JfaW50ZXJjZXB0KCgy ICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9yMigoYiAqIGIpOjpmbG9h dDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9zbG9wZSgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpm bG9hdDgpLAorICAgIHJlZ3Jfc3h4KCgyICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisg ICAgcmVncl9zeHkoKGIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3l5KCgy ICogYiArIDMpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgc3RkZGV2KGI6OmZsb2F0NCksIHN0 ZGRldihiOjpmbG9hdDgpLCBzdGRkZXYoYjo6aW50MiksIHN0ZGRldihiOjppbnQ0KSwgc3RkZGV2 KGI6OmludDgpLCBzdGRkZXYoYjo6bnVtZXJpYyksCisgICAgc3RkZGV2X3BvcChiOjpmbG9hdDQp LCBzdGRkZXZfcG9wKGI6OmZsb2F0OCksIHN0ZGRldl9wb3AoYjo6aW50MiksIHN0ZGRldl9wb3Ao Yjo6aW50NCksIHN0ZGRldl9wb3AoYjo6aW50OCksIHN0ZGRldl9wb3AoYjo6bnVtZXJpYyksCisg ICAgc3RkZGV2X3NhbXAoYjo6ZmxvYXQ0KSwgc3RkZGV2X3NhbXAoYjo6ZmxvYXQ4KSwgc3RkZGV2 X3NhbXAoYjo6aW50MiksIHN0ZGRldl9zYW1wKGI6OmludDQpLCBzdGRkZXZfc2FtcChiOjppbnQ4 KSwgc3RkZGV2X3NhbXAoYjo6bnVtZXJpYyksCisgICAgc3RyaW5nX2FnZyhjXzFjLCAnLCcpLCBz dHJpbmdfYWdnKGNfMWIsICcsJyksCisgICAgc3VtKGI6OmludDgpLCBzdW0oYjo6bnVtZXJpYyks CisgICAgdmFyaWFuY2UoYjo6ZmxvYXQ0KSwgdmFyaWFuY2UoYjo6ZmxvYXQ4KSwgdmFyaWFuY2Uo Yjo6aW50MiksIHZhcmlhbmNlKGI6OmludDQpLCB2YXJpYW5jZShiOjppbnQ4KSwgdmFyaWFuY2Uo Yjo6bnVtZXJpYyksCisgICAgdmFyX3BvcChiOjpmbG9hdDQpLCB2YXJfcG9wKGI6OmZsb2F0OCks IHZhcl9wb3AoYjo6aW50MiksIHZhcl9wb3AoYjo6aW50NCksIHZhcl9wb3AoYjo6aW50OCksIHZh cl9wb3AoYjo6bnVtZXJpYyksCisgICAgdmFyX3NhbXAoYjo6ZmxvYXQ0KSwgdmFyX3NhbXAoYjo6 ZmxvYXQ4KSwgdmFyX3NhbXAoYjo6aW50MiksIHZhcl9zYW1wKGI6OmludDQpLCB2YXJfc2FtcChi OjppbnQ4KSwgdmFyX3NhbXAoYjo6bnVtZXJpYyksCisgICAgLyogYWdncmVnYXRlID0gcGFydGlh bCBhZ2dyZWdhdGUgKi8KKyAgICBhbnlfdmFsdWUoYiAqIDApLAorICAgIGJpdF9hbmQoY19iaXQp LCBiaXRfYW5kKGNfMW9yM2ludDIpLCBiaXRfYW5kKGNfMW9yM2ludDQpLCBiaXRfYW5kKGNfMW9y M2ludDgpLAorICAgIGJpdF9vcihjX2JpdCksIGJpdF9vcihjXzFvcjNpbnQyKSwgYml0X29yKGNf MW9yM2ludDQpLCBiaXRfb3IoY18xb3IzaW50OCksCisgICAgYml0X3hvcihjX2JpdCksIGJpdF94 b3IoY18xb3IzaW50MiksIGJpdF94b3IoY18xb3IzaW50NCksIGJpdF94b3IoY18xb3IzaW50OCks CisgICAgYm9vbF9hbmQoY19ib29sKSwKKyAgICBib29sX29yKGNfYm9vbCksCisgICAgY291bnQo YiksIGNvdW50KCopLAorICAgIGV2ZXJ5KGNfYm9vbCksCisgICAgbWF4KGNfaW50NGFycmF5KSwg bWF4KGNfZW51bSksIG1heChjXzFjOjpjaGFyKDEpKSwgbWF4KCcyMDAwLTAxLTAxJzo6ZGF0ZSAr IGIpLCBtYXgoJzAuMC4wLjAnOjppbmV0ICsgYiksIG1heChiOjpmbG9hdDQpLCBtYXgoYjo6Zmxv YXQ4KSwgbWF4KGI6OmludDIpLCBtYXgoYjo6aW50NCksIG1heChiOjppbnQ4KSwgbWF4KGNfaW50 ZXJ2YWwpLCBtYXgoY19tb25leSksIG1heChiOjpudW1lcmljKSwgbWF4KGI6Om9pZCksIG1heChj X3BnX2xzbiksIG1heChjX3RpZCksIG1heChjXzFjKSwgbWF4KGNfdGltZSksIG1heChjX3RpbWV0 eiksIG1heChjX3RpbWVzdGFtcCksIG1heChjX3RpbWVzdGFtcHR6KSwgbWF4KGNfeGlkOCksCisg ICAgbWluKGNfaW50NGFycmF5KSwgbWluKGNfZW51bSksIG1pbihjXzFjOjpjaGFyKDEpKSwgbWlu KCcyMDAwLTAxLTAxJzo6ZGF0ZSArIGIpLCBtaW4oJzAuMC4wLjAnOjppbmV0ICsgYiksIG1pbihi OjpmbG9hdDQpLCBtaW4oYjo6ZmxvYXQ4KSwgbWluKGI6OmludDIpLCBtaW4oYjo6aW50NCksIG1p bihiOjppbnQ4KSwgbWluKGNfaW50ZXJ2YWwpLCBtaW4oY19tb25leSksIG1pbihiOjpudW1lcmlj KSwgbWluKGI6Om9pZCksIG1pbihjX3BnX2xzbiksIG1pbihjX3RpZCksIG1pbihjXzFjKSwgbWlu KGNfdGltZSksIG1pbihjX3RpbWV0eiksIG1pbihjX3RpbWVzdGFtcCksIG1pbihjX3RpbWVzdGFt cHR6KSwgbWluKGNfeGlkOCksCisgICAgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRyYW5nZSks IHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0bXVsdGlyYW5nZSksCisgICAgcmVncl9jb3VudCgo MiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHN1bShiOjpmbG9hdDQpLCBzdW0o Yjo6ZmxvYXQ4KSwgc3VtKGI6OmludDIpLCBzdW0oYjo6aW50NCksCXN1bShjX2ludGVydmFsKSwg c3VtKGNfbW9uZXkpCisgIEZST00gcGFnZ190YWIgV0hFUkUgY19zZXJpYWwgYmV0d2VlbiAxIGFu ZCAzMDsKKworLS0gVGVzdHMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKK0FMVEVSIFNFUlZF UiBsb29wYmFjayBPUFRJT05TIChBREQgY2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCAn ZmFsc2UnKTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBiLCBhdmcoYSks IG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CitT RUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkg YiBPUkRFUiBCWSAxOworCitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoU0VUIGNoZWNr X3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQgJ3RydWUnKTsKK0VYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3Rh YiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50 KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOworCitBTFRFUiBTRVJWRVIg bG9vcGJhY2sgT1BUSU9OUyAoU0VUIGZkd190dXBsZV9jb3N0ICcxLjAnKTsKK1NFVCBlbmFibGVf cGFydGl0aW9ud2lzZV9qb2luPW9uOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VM RUNUIGF2Zyh0MS5iKSwgYXZnKHQxLmI6OmludDgpIEZST00gcGFnZ190YWIgdDEgSk9JTiBwYWdn X3RhYiB0MiBVU0lORyhhKTsKK1NFTEVDVCBhdmcodDEuYiksIGF2Zyh0MS5iOjppbnQ4KSBGUk9N IHBhZ2dfdGFiIHQxIEpPSU4gcGFnZ190YWIgdDIgVVNJTkcoYSk7CitSRVNFVCBlbmFibGVfcGFy dGl0aW9ud2lzZV9qb2luOworQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBmZHdf dHVwbGVfY29zdCAnMC4xJyk7CisKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChEUk9Q IGNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQpOworCistLSBJdCBpcyB1bnNhZmUgdG8g cHVzaCBkb3duIHBhcnRpYWwgYWdncmVnYXRlcyB3aGljaCBjb250YWluIERJU1RJTkNUIGNsYXVz ZXMKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBtYXgoYSksIGNvdW50KGRp c3RpbmN0IGIpIEZST00gcGFnZ190YWI7CitTRUxFQ1QgbWF4KGEpLCBjb3VudChkaXN0aW5jdCBi KSBGUk9NIHBhZ2dfdGFiOworCistLSBJdCBpcyB1bnNhZmUgdG8gcHVzaCBkb3duIHBhcnRpYWwg YWdncmVnYXRlcyB3aGljaCBjb250YWluIE9SREVSIEJZIGNsYXVzZXMKK0VYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikgU0VMRUNUIGFycmF5X2FnZyhiIG9yZGVyIGJ5IGIpIEZST00gcGFnZ190 YWIgV0hFUkUgY19zZXJpYWwgYmV0d2VlbiAxIGFuZCAzMDsKK1NFTEVDVCBhcnJheV9hZ2coYiBv cmRlciBieSBiKSBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7 CisKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChEUk9QIGZkd190dXBsZV9jb3N0KTsK IAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0gYWNjZXNzIHJpZ2h0cyBhbmQgc3VwZXJ1c2VyCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlQWdnLmMKaW5kZXggNTNlYWQ3Ny4uZWI2NGVkNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cu YwpAQCAtMTA3Niw5ICsxMDc2LDE0IEBAIGZpbmFsaXplX2FnZ3JlZ2F0ZShBZ2dTdGF0ZSAqYWdn c3RhdGUsCiAJfQogCiAJLyoKLQkgKiBBcHBseSB0aGUgYWdnJ3MgZmluYWxmbiBpZiBvbmUgaXMg cHJvdmlkZWQsIGVsc2UgcmV0dXJuIHRyYW5zVmFsdWUuCisJICogSWYgdGhlIGFnZydzIGZpbmFs Zm4gaXMgcHJvdmlkZWQgYW5kIFBBUlRJQUxfQUdHUkVHQVRFIGtleXdvcmQgaXMKKwkgKiBub3Qg c3BlY2lmaWVkLCBhcHBseSB0aGUgYWdnJ3MgZmluYWxmbi4KKwkgKiBJZiBQQVJUSUFMX0FHR1JF R0FURSBrZXl3b3JkIGlzIHNwZWNpZmllZCBhbmQgdGhlIHRyYW5zVmFsdWUgdHlwZQorCSAqIGlz IGludGVybmFsLCBhcHBseSB0aGUgYWdnJ3Mgc2VyaWFsZm4uIEluIHRoaXMgY2FzZSwgaWYgdGhl IGFnZydzCisJICogc2VyaWFsZm4gbXVzdCBub3QgYmUgaW52YWxpZC4gT3RoZXJ3aXNlIHJldHVy biB0cmFuc1ZhbHVlLgogCSAqLwotCWlmIChPaWRJc1ZhbGlkKHBlcmFnZy0+ZmluYWxmbl9vaWQp KQorCWlmIChPaWRJc1ZhbGlkKHBlcmFnZy0+ZmluYWxmbl9vaWQpICYmCisJCShwZXJhZ2ctPmFn Z3JlZi0+YWdnX3BhcnRpYWwgPT0gZmFsc2UpKQogCXsKIAkJaW50CQkJbnVtRmluYWxBcmdzID0g cGVyYWdnLT5udW1GaW5hbEFyZ3M7CiAKQEAgLTExMjQsNiArMTEyOSw0NCBAQCBmaW5hbGl6ZV9h Z2dyZWdhdGUoQWdnU3RhdGUgKmFnZ3N0YXRlLAogCQl9CiAJCWFnZ3N0YXRlLT5jdXJwZXJhZ2cg PSBOVUxMOwogCX0KKwllbHNlIGlmIChwZXJhZ2ctPmFnZ3JlZi0+YWdnX3BhcnRpYWwKKwkJCSYm IChwZXJhZ2ctPmFnZ3JlZi0+YWdndHJhbnN0eXBlID09IElOVEVSTkFMT0lEKSkKKwl7CisJCWlm KCFPaWRJc1ZhbGlkKHBlcmFnZy0+c2VyaWFsZm5fb2lkKSkKKwkJCWVsb2coRVJST1IsICJzZXJp YWxmdW5jIGlzIG5vdGUgcHJvdmlkZWQgZm9yIHBhcnRpYWwgYWdncmVnYXRlIik7CisKKwkJLyog c2V0IHVwIGFnZ3N0YXRlLT5jdXJwZXJhZ2cgZm9yIEFnZ0dldEFnZ3JlZigpICovCisJCWFnZ3N0 YXRlLT5jdXJwZXJhZ2cgPSBwZXJhZ2c7CisKKwkJSW5pdEZ1bmN0aW9uQ2FsbEluZm9EYXRhKCpm Y2luZm8sICZwZXJhZ2ctPnNlcmlhbGZuLCAxLAorCQkJCQkJCQkgSW52YWxpZE9pZCwgKHZvaWQg KikgYWdnc3RhdGUsIE5VTEwpOworCisJCS8qIEZpbGwgaW4gdGhlIHRyYW5zaXRpb24gc3RhdGUg dmFsdWUgKi8KKwkJZmNpbmZvLT5hcmdzWzBdLnZhbHVlID0KKwkJCU1ha2VFeHBhbmRlZE9iamVj dFJlYWRPbmx5KHBlcmdyb3Vwc3RhdGUtPnRyYW5zVmFsdWUsCisJCQkJCQkJCQkgICBwZXJncm91 cHN0YXRlLT50cmFuc1ZhbHVlSXNOdWxsLAorCQkJCQkJCQkJICAgcGVydHJhbnMtPnRyYW5zdHlw ZUxlbik7CisJCWZjaW5mby0+YXJnc1swXS5pc251bGwgPSBwZXJncm91cHN0YXRlLT50cmFuc1Zh bHVlSXNOdWxsOworCQlhbnludWxsIHw9IHBlcmdyb3Vwc3RhdGUtPnRyYW5zVmFsdWVJc051bGw7 CisKKwkJaWYgKGZjaW5mby0+ZmxpbmZvLT5mbl9zdHJpY3QgJiYgYW55bnVsbCkKKwkJeworCQkJ LyogZG9uJ3QgY2FsbCBhIHN0cmljdCBmdW5jdGlvbiB3aXRoIE5VTEwgaW5wdXRzICovCisJCQkq cmVzdWx0VmFsID0gKERhdHVtKSAwOworCQkJKnJlc3VsdElzTnVsbCA9IHRydWU7CisJCX0KKwkJ ZWxzZQorCQl7CisJCQlEYXR1bQkJcmVzdWx0OworCisJCQlyZXN1bHQgPSBGdW5jdGlvbkNhbGxJ bnZva2UoZmNpbmZvKTsKKwkJCSpyZXN1bHRJc051bGwgPSBmY2luZm8tPmlzbnVsbDsKKwkJCSpy ZXN1bHRWYWwgPSBNYWtlRXhwYW5kZWRPYmplY3RSZWFkT25seShyZXN1bHQsCisJCQkJCQkJCQkJ CQkJZmNpbmZvLT5pc251bGwsCisJCQkJCQkJCQkJCQkJcGVyYWdnLT5yZXN1bHR0eXBlTGVuKTsK KwkJfQorCQlhZ2dzdGF0ZS0+Y3VycGVyYWdnID0gTlVMTDsKKwl9CiAJZWxzZQogCXsKIAkJKnJl c3VsdFZhbCA9CkBAIC0zNjYyLDcgKzM3MDUsNyBAQCBFeGVjSW5pdEFnZyhBZ2cgKm5vZGUsIEVT dGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQlPaWQJCQlzZXJpYWxmbl9vaWQsCiAJCQkJCWRl c2VyaWFsZm5fb2lkOwogCQlPaWQJCQlhZ2dPd25lcjsKLQkJRXhwcgkgICAqZmluYWxmbmV4cHI7 CisJCUV4cHIJICAgKmZpbmFsZm5leHByLCAqc2VyaWFsZm5leHByOwogCQlPaWQJCQlhZ2d0cmFu c3R5cGU7CiAKIAkJLyogUGxhbm5lciBzaG91bGQgaGF2ZSBhc3NpZ25lZCBhZ2dyZWdhdGUgdG8g Y29ycmVjdCBsZXZlbCAqLwpAQCAtMzgxOSw2ICszODYyLDE3IEBAIEV4ZWNJbml0QWdnKEFnZyAq bm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJCQlmbWdyX2luZm8oZmluYWxmbl9v aWQsICZwZXJhZ2ctPmZpbmFsZm4pOwogCQkJZm1ncl9pbmZvX3NldF9leHByKChOb2RlICopIGZp bmFsZm5leHByLCAmcGVyYWdnLT5maW5hbGZuKTsKIAkJfQorCQkvKgorCQkgKiBidWlsZCBleHBy ZXNzaW9uIHRyZWVzIGZvciB0aGUgc2VyaWFsZm4sIGlmIGl0IGV4aXN0cyBhbmQgaXMgcmVxdWly ZWQuCisJCSAqLworCQlpZiAoT2lkSXNWYWxpZChhZ2dmb3JtLT5hZ2dzZXJpYWxmbikgJiYgcGVy YWdnLT5hZ2dyZWYtPmFnZ19wYXJ0aWFsKQorCQl7CisJCQlidWlsZF9hZ2dyZWdhdGVfc2VyaWFs Zm5fZXhwcihhZ2dmb3JtLT5hZ2dzZXJpYWxmbiwKKwkJCQkJCQkJCQkgJnNlcmlhbGZuZXhwcik7 CisJCQlwZXJhZ2ctPnNlcmlhbGZuX29pZCA9IGFnZ2Zvcm0tPmFnZ3NlcmlhbGZuOworCQkJZm1n cl9pbmZvKGFnZ2Zvcm0tPmFnZ3NlcmlhbGZuLCAmcGVyYWdnLT5zZXJpYWxmbik7CisJCQlmbWdy X2luZm9fc2V0X2V4cHIoKE5vZGUgKikgc2VyaWFsZm5leHByLCAmcGVyYWdnLT5zZXJpYWxmbik7 CisJCX0KIAogCQkvKiBnZXQgaW5mbyBhYm91dCB0aGUgb3V0cHV0IHZhbHVlJ3MgZGF0YXR5cGUg Ki8KIAkJZ2V0X3R5cGxlbmJ5dmFsKGFnZ3JlZi0+YWdndHlwZSwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL25vZGVzL21ha2VmdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMK aW5kZXggMzNkNGQyMy4uN2IxNzczOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbWFr ZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKQEAgLTU5Niw2ICs1 OTYsNyBAQCBtYWtlRnVuY0NhbGwoTGlzdCAqbmFtZSwgTGlzdCAqYXJncywgQ29lcmNpb25Gb3Jt IGZ1bmNmb3JtYXQsIGludCBsb2NhdGlvbikKIAluLT5hZ2dfd2l0aGluX2dyb3VwID0gZmFsc2U7 CiAJbi0+YWdnX3N0YXIgPSBmYWxzZTsKIAluLT5hZ2dfZGlzdGluY3QgPSBmYWxzZTsKKwluLT5h Z2dfcGFydGlhbCA9IGZhbHNlOwogCW4tPmZ1bmNfdmFyaWFkaWMgPSBmYWxzZTsKIAluLT5mdW5j Zm9ybWF0ID0gZnVuY2Zvcm1hdDsKIAluLT5sb2NhdGlvbiA9IGxvY2F0aW9uOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IDU1NjQ4MjYuLjIyOGNiMDEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTIwMSw3ICsyMDEsNyBAQCBzdGF0aWMgUGF0aFRh cmdldCAqbWFrZV9ncm91cF9pbnB1dF90YXJnZXQoUGxhbm5lckluZm8gKnJvb3QsCiAJCQkJCQkJ CQkJICAgUGF0aFRhcmdldCAqZmluYWxfdGFyZ2V0KTsKIHN0YXRpYyBQYXRoVGFyZ2V0ICptYWtl X3BhcnRpYWxfZ3JvdXBpbmdfdGFyZ2V0KFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkJ UGF0aFRhcmdldCAqZ3JvdXBpbmdfdGFyZ2V0LAotCQkJCQkJCQkJCQkJTm9kZSAqaGF2aW5nUXVh bCk7CisJCQkJCQkJCQkJCQlHcm91cFBhdGhFeHRyYURhdGEgKmV4dHJhKTsKIHN0YXRpYyBMaXN0 ICpwb3N0cHJvY2Vzc19zZXRvcF90bGlzdChMaXN0ICpuZXdfdGxpc3QsIExpc3QgKm9yaWdfdGxp c3QpOwogc3RhdGljIHZvaWQgb3B0aW1pemVfd2luZG93X2NsYXVzZXMoUGxhbm5lckluZm8gKnJv b3QsCiAJCQkJCQkJCQlXaW5kb3dGdW5jTGlzdHMgKndmbGlzdHMpOwpAQCAtNTMzMyw2ICs1MzMz LDk5IEBAIG1ha2VfZ3JvdXBfaW5wdXRfdGFyZ2V0KFBsYW5uZXJJbmZvICpyb290LCBQYXRoVGFy Z2V0ICpmaW5hbF90YXJnZXQpCiB9CiAKIC8qCisgKiBzZXRHcm91cENsYXVzZVBhcnRpYWwKKyAq CSAgR2VuZXJhdGUgYSBncm91cENsYXVzZSBhbmQgYSBwYXRodGFyZ2V0IGZvciBwYXJ0aWFsIGFn Z3JlZ2F0ZQorICoJICBwdXNoZG93biBieSBGRFcgYW5kIHNldCB0aGVtIHRvIEdyb3VwUGF0aEV4 dHJhRGF0YS4KKyAqLworc3RhdGljIHZvaWQKK3NldEdyb3VwQ2xhdXNlUGFydGlhbChQYXRoVGFy Z2V0ICpwYXJ0aWFsX3RhcmdldCwgTGlzdCAqbm9uX2dyb3VwX2V4cHJzLAorCQkJCQkgIExpc3Qg Kmdyb3VwQ2xhdXNlLCBHcm91cFBhdGhFeHRyYURhdGEgKmV4dHJhKQoreworCWludAkJCWV4cHJu bywKKwkJCQlyZWZubzsKKwlMaXN0Q2VsbCAgICpsYzsKKwlJbmRleAkJbWF4UmVmID0gMDsKKwlM aXN0CSAgICpleHByc19wcm9jZXNzZWQgPSBOSUw7CisJaW50CQkJZXhwcnNfbnVtID0gMDsKKwor CWZvcmVhY2gobGMsIGdyb3VwQ2xhdXNlKQorCXsKKwkJU29ydEdyb3VwQ2xhdXNlICpzZ2MgPSAo U29ydEdyb3VwQ2xhdXNlICopIGxmaXJzdChsYyk7CisKKwkJaWYgKHNnYy0+dGxlU29ydEdyb3Vw UmVmID4gbWF4UmVmKQorCQkJbWF4UmVmID0gc2djLT50bGVTb3J0R3JvdXBSZWY7CisJfQorCW1h eFJlZisrOworCisJZXh0cmEtPmdyb3VwQ2xhdXNlUGFydGlhbCA9IGxpc3RfY29weV9kZWVwKGdy b3VwQ2xhdXNlKTsKKwlleHRyYS0+cGFydGlhbF90YXJnZXQgPSBjb3B5X3BhdGh0YXJnZXQocGFy dGlhbF90YXJnZXQpOworCisJaWYgKHBhcnRpYWxfdGFyZ2V0LT5leHBycykKKwkJZXhwcnNfbnVt ID0gcGFydGlhbF90YXJnZXQtPmV4cHJzLT5sZW5ndGg7CisKKwlmb3JlYWNoKGxjLCBub25fZ3Jv dXBfZXhwcnMpCisJeworCQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwor CQlyZWZubyA9IC0xOworCQlpZiAobGlzdF9tZW1iZXIoZXhwcnNfcHJvY2Vzc2VkLCBleHByKSB8 fAorCQkJKCFJc0EoZXhwciwgVmFyKSAmJiAhSXNBKGV4cHIsIFBsYWNlSG9sZGVyVmFyKSkpCisJ CQljb250aW51ZTsKKwkJZXhwcnNfcHJvY2Vzc2VkID0gbGFwcGVuZChleHByc19wcm9jZXNzZWQs IGV4cHIpOworCQlmb3IgKGV4cHJubyA9IDA7IGV4cHJubyA8IGV4cHJzX251bTsgZXhwcm5vKysp CisJCXsKKwkJCUV4cHIJICAgKnRhcmdldF9leHByID0gKEV4cHIgKikgbGlzdF9udGgocGFydGlh bF90YXJnZXQtPmV4cHJzLCBleHBybm8pOworCisJCQlpZiAoZXF1YWwodGFyZ2V0X2V4cHIsIGV4 cHIpKQorCQkJeworCQkJCXJlZm5vID0gZXhwcm5vOworCQkJCWJyZWFrOworCQkJfQorCQl9CisJ CWlmIChyZWZubyA8IDApCisJCXsKKwkJCVNvcnRHcm91cENsYXVzZSAqZ3JwY2wgPSBtYWtlTm9k ZShTb3J0R3JvdXBDbGF1c2UpOworCisJCQlncnBjbC0+dGxlU29ydEdyb3VwUmVmID0gbWF4UmVm Kys7CisJCQlleHRyYS0+Z3JvdXBDbGF1c2VQYXJ0aWFsID0gbGFwcGVuZChleHRyYS0+Z3JvdXBD bGF1c2VQYXJ0aWFsLCBncnBjbCk7CisJCQlhZGRfY29sdW1uX3RvX3BhdGh0YXJnZXQoZXh0cmEt PnBhcnRpYWxfdGFyZ2V0LCBleHByLCBncnBjbC0+dGxlU29ydEdyb3VwUmVmKTsKKwkJfQorCX0K K30KKworLyoKKyAqIGFkanVzdEFnZ3JlZkZvclBhcnRpYWwKKyAqIEFkanVzdCBBZ2dyZWZzIHRv IHB1dCB0aGVtIGluIHBhcnRpYWwgbW9kZQorICovCitzdGF0aWMgdm9pZAorYWRqdXN0QWdncmVm Rm9yUGFydGlhbChMaXN0ICpleHBycykKK3sKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2go bGMsIGV4cHJzKQorCXsKKwkJQWdncmVmCSAgICphZ2dyZWYgPSAoQWdncmVmICopIGxmaXJzdChs Yyk7CisKKwkJaWYgKElzQShhZ2dyZWYsIEFnZ3JlZikpCisJCXsKKwkJCUFnZ3JlZgkgICAqbmV3 YWdncmVmOworCisJCQkvKgorCQkJICogV2Ugc2hvdWxkbid0IG5lZWQgdG8gY29weSB0aGUgc3Vi c3RydWN0dXJlIG9mIHRoZSBBZ2dyZWYgbm9kZSwKKwkJCSAqIGJ1dCBmbGF0LWNvcHkgdGhlIG5v ZGUgaXRzZWxmIHRvIGF2b2lkIGRhbWFnaW5nIG90aGVyIHRyZWVzLgorCQkJICovCisJCQluZXdh Z2dyZWYgPSBtYWtlTm9kZShBZ2dyZWYpOworCQkJbWVtY3B5KG5ld2FnZ3JlZiwgYWdncmVmLCBz aXplb2YoQWdncmVmKSk7CisKKwkJCS8qIEZvciBub3csIGFzc3VtZSBzZXJpYWxpemF0aW9uIGlz IHJlcXVpcmVkICovCisJCQltYXJrX3BhcnRpYWxfYWdncmVmKG5ld2FnZ3JlZiwgQUdHU1BMSVRf SU5JVElBTF9TRVJJQUwpOworCisJCQlsZmlyc3QobGMpID0gbmV3YWdncmVmOworCQl9CisJfQor fQorCisvKgogICogbWFrZV9wYXJ0aWFsX2dyb3VwaW5nX3RhcmdldAogICoJICBHZW5lcmF0ZSBh cHByb3ByaWF0ZSBQYXRoVGFyZ2V0IGZvciBvdXRwdXQgb2YgcGFydGlhbCBhZ2dyZWdhdGUKICAq CSAgKG9yIHBhcnRpYWwgZ3JvdXBpbmcsIGlmIHRoZXJlIGFyZSBubyBhZ2dyZWdhdGVzKSBub2Rl cy4KQEAgLTUzNDcsMTEgKzU0NDAsMTUgQEAgbWFrZV9ncm91cF9pbnB1dF90YXJnZXQoUGxhbm5l ckluZm8gKnJvb3QsIFBhdGhUYXJnZXQgKmZpbmFsX3RhcmdldCkKICAqCiAgKiBncm91cGluZ190 YXJnZXQgaXMgdGhlIHRsaXN0IHRvIGJlIGVtaXR0ZWQgYnkgdGhlIHRvcG1vc3QgYWdncmVnYXRp b24gc3RlcC4KICAqIGhhdmluZ1F1YWwgcmVwcmVzZW50cyB0aGUgSEFWSU5HIGNsYXVzZS4KKyAq CisgKiBNb2RpZmllZCBQYXRoVGFyZ2V0IGNhbm5vdCBiZSB1c2VkIGJ5IEZEVyBhcy1pcyB0byBk ZXBhcnNlIHRoaXMgc3RhdGVtZW50LgorICogU28sIGJlZm9yZSBtb2RpZnlpbmcgUGF0aFRhcmdl dCwgc2V0R3JvdXBDbGF1c2VQYXJ0aWFsIGdlbmVyYXRlcworICogYW5vdGhlciBQYXRodGFyZ2V0 IGFuZCBhbm90aGVyIGxpc3Qgb2YgU29ydEdyb3VwQ2xhdXNlcy4KICAqLwogc3RhdGljIFBhdGhU YXJnZXQgKgogbWFrZV9wYXJ0aWFsX2dyb3VwaW5nX3RhcmdldChQbGFubmVySW5mbyAqcm9vdCwK IAkJCQkJCQkgUGF0aFRhcmdldCAqZ3JvdXBpbmdfdGFyZ2V0LAotCQkJCQkJCSBOb2RlICpoYXZp bmdRdWFsKQorCQkJCQkJCSBHcm91cFBhdGhFeHRyYURhdGEgKmV4dHJhKQogewogCVBhdGhUYXJn ZXQgKnBhcnRpYWxfdGFyZ2V0OwogCUxpc3QJICAgKm5vbl9ncm91cF9jb2xzOwpAQCAtNTM5Myw4 ICs1NDkwLDggQEAgbWFrZV9wYXJ0aWFsX2dyb3VwaW5nX3RhcmdldChQbGFubmVySW5mbyAqcm9v dCwKIAkvKgogCSAqIElmIHRoZXJlJ3MgYSBIQVZJTkcgY2xhdXNlLCB3ZSdsbCBuZWVkIHRoZSBW YXJzL0FnZ3JlZnMgaXQgdXNlcywgdG9vLgogCSAqLwotCWlmIChoYXZpbmdRdWFsKQotCQlub25f Z3JvdXBfY29scyA9IGxhcHBlbmQobm9uX2dyb3VwX2NvbHMsIGhhdmluZ1F1YWwpOworCWlmIChl eHRyYS0+aGF2aW5nUXVhbCkKKwkJbm9uX2dyb3VwX2NvbHMgPSBsYXBwZW5kKG5vbl9ncm91cF9j b2xzLCBleHRyYS0+aGF2aW5nUXVhbCk7CiAKIAkvKgogCSAqIFB1bGwgb3V0IGFsbCB0aGUgVmFy cywgUGxhY2VIb2xkZXJWYXJzLCBhbmQgQWdncmVmcyBtZW50aW9uZWQgaW4KQEAgLTU0MDcsMzUg KzU1MDQsMTcgQEAgbWFrZV9wYXJ0aWFsX2dyb3VwaW5nX3RhcmdldChQbGFubmVySW5mbyAqcm9v dCwKIAkJCQkJCQkJCSAgUFZDX0lOQ0xVREVfQUdHUkVHQVRFUyB8CiAJCQkJCQkJCQkgIFBWQ19S RUNVUlNFX1dJTkRPV0ZVTkNTIHwKIAkJCQkJCQkJCSAgUFZDX0lOQ0xVREVfUExBQ0VIT0xERVJT KTsKLQorCXNldEdyb3VwQ2xhdXNlUGFydGlhbChwYXJ0aWFsX3RhcmdldCwgbm9uX2dyb3VwX2V4 cHJzLCByb290LT5wYXJzZS0+Z3JvdXBDbGF1c2UsIGV4dHJhKTsKIAlhZGRfbmV3X2NvbHVtbnNf dG9fcGF0aHRhcmdldChwYXJ0aWFsX3RhcmdldCwgbm9uX2dyb3VwX2V4cHJzKTsKKwlhZGRfbmV3 X2NvbHVtbnNfdG9fcGF0aHRhcmdldChleHRyYS0+cGFydGlhbF90YXJnZXQsIG5vbl9ncm91cF9l eHBycyk7CiAKIAkvKgogCSAqIEFkanVzdCBBZ2dyZWZzIHRvIHB1dCB0aGVtIGluIHBhcnRpYWwg bW9kZS4gIEF0IHRoaXMgcG9pbnQgYWxsIEFnZ3JlZnMKIAkgKiBhcmUgYXQgdGhlIHRvcCBsZXZl bCBvZiB0aGUgdGFyZ2V0IGxpc3QsIHNvIHdlIGNhbiBqdXN0IHNjYW4gdGhlIGxpc3QKIAkgKiBy YXRoZXIgdGhhbiByZWN1cnNpbmcgdGhyb3VnaCB0aGUgZXhwcmVzc2lvbiB0cmVlcy4KIAkgKi8K LQlmb3JlYWNoKGxjLCBwYXJ0aWFsX3RhcmdldC0+ZXhwcnMpCi0JewotCQlBZ2dyZWYJICAgKmFn Z3JlZiA9IChBZ2dyZWYgKikgbGZpcnN0KGxjKTsKLQotCQlpZiAoSXNBKGFnZ3JlZiwgQWdncmVm KSkKLQkJewotCQkJQWdncmVmCSAgICpuZXdhZ2dyZWY7Ci0KLQkJCS8qCi0JCQkgKiBXZSBzaG91 bGRuJ3QgbmVlZCB0byBjb3B5IHRoZSBzdWJzdHJ1Y3R1cmUgb2YgdGhlIEFnZ3JlZiBub2RlLAot CQkJICogYnV0IGZsYXQtY29weSB0aGUgbm9kZSBpdHNlbGYgdG8gYXZvaWQgZGFtYWdpbmcgb3Ro ZXIgdHJlZXMuCi0JCQkgKi8KLQkJCW5ld2FnZ3JlZiA9IG1ha2VOb2RlKEFnZ3JlZik7Ci0JCQlt ZW1jcHkobmV3YWdncmVmLCBhZ2dyZWYsIHNpemVvZihBZ2dyZWYpKTsKLQotCQkJLyogRm9yIG5v dywgYXNzdW1lIHNlcmlhbGl6YXRpb24gaXMgcmVxdWlyZWQgKi8KLQkJCW1hcmtfcGFydGlhbF9h Z2dyZWYobmV3YWdncmVmLCBBR0dTUExJVF9JTklUSUFMX1NFUklBTCk7Ci0KLQkJCWxmaXJzdChs YykgPSBuZXdhZ2dyZWY7Ci0JCX0KLQl9CisJYWRqdXN0QWdncmVmRm9yUGFydGlhbChwYXJ0aWFs X3RhcmdldC0+ZXhwcnMpOworCWFkanVzdEFnZ3JlZkZvclBhcnRpYWwoZXh0cmEtPnBhcnRpYWxf dGFyZ2V0LT5leHBycyk7CiAKIAkvKiBjbGVhbiB1cCBjcnVmdCAqLwogCWxpc3RfZnJlZShub25f Z3JvdXBfZXhwcnMpOwpAQCAtNzA4OCw3ICs3MTY3LDcgQEAgY3JlYXRlX3BhcnRpYWxfZ3JvdXBp bmdfcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsCiAJICovCiAJcGFydGlhbGx5X2dyb3VwZWRfcmVs LT5yZWx0YXJnZXQgPQogCQltYWtlX3BhcnRpYWxfZ3JvdXBpbmdfdGFyZ2V0KHJvb3QsIGdyb3Vw ZWRfcmVsLT5yZWx0YXJnZXQsCi0JCQkJCQkJCQkgZXh0cmEtPmhhdmluZ1F1YWwpOworCQkJCQkJ CQkJIGV4dHJhKTsKIAogCWlmICghZXh0cmEtPnBhcnRpYWxfY29zdHNfc2V0KQogCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRleCA0MjYwM2RiLi5kZmU1NTIwIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yNTU2LDYgKzI1NTYsNyBAQCBjb252ZXJ0 X2NvbWJpbmluZ19hZ2dyZWZzKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCXBhcmVudF9h Z2cgPSBjb3B5T2JqZWN0KGNoaWxkX2FnZyk7CiAJCWNoaWxkX2FnZy0+YXJncyA9IG9yaWdfYWdn LT5hcmdzOwogCQljaGlsZF9hZ2ctPmFnZ2ZpbHRlciA9IG9yaWdfYWdnLT5hZ2dmaWx0ZXI7CisJ CWNoaWxkX2FnZy0+YWdnX3BhcnRpYWwgPSBmYWxzZTsKIAogCQkvKgogCQkgKiBOb3csIHNldCB1 cCBjaGlsZF9hZ2cgdG8gcmVwcmVzZW50IHRoZSBmaXJzdCBwaGFzZSBvZiBwYXJ0aWFsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwYWdnLmMgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcHJlcC9wcmVwYWdnLmMKaW5kZXggNDYwNmRmMy4uYWNlZDlmNyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGFnZy5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wcmVwL3ByZXBhZ2cuYwpAQCAtNDExLDYgKzQxMSw3IEBAIGZpbmRfY29t cGF0aWJsZV9hZ2coUGxhbm5lckluZm8gKnJvb3QsIEFnZ3JlZiAqbmV3YWdnLAogCQkvKiBhbGwg b2YgdGhlIGZvbGxvd2luZyBtdXN0IGJlIHRoZSBzYW1lIG9yIGl0J3Mgbm8gbWF0Y2ggKi8KIAkJ aWYgKG5ld2FnZy0+aW5wdXRjb2xsaWQgIT0gZXhpc3RpbmdSZWYtPmlucHV0Y29sbGlkIHx8CiAJ CQluZXdhZ2ctPmFnZ3RyYW5zdHlwZSAhPSBleGlzdGluZ1JlZi0+YWdndHJhbnN0eXBlIHx8CisJ CQluZXdhZ2ctPmFnZ19wYXJ0aWFsICE9IGV4aXN0aW5nUmVmLT5hZ2dfcGFydGlhbCB8fAogCQkJ bmV3YWdnLT5hZ2dzdGFyICE9IGV4aXN0aW5nUmVmLT5hZ2dzdGFyIHx8CiAJCQluZXdhZ2ctPmFn Z3ZhcmlhZGljICE9IGV4aXN0aW5nUmVmLT5hZ2d2YXJpYWRpYyB8fAogCQkJbmV3YWdnLT5hZ2dr aW5kICE9IGV4aXN0aW5nUmVmLT5hZ2draW5kIHx8CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBjNmUyZjY3Li43 ZGU0MzQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTc0NSw3ICs3NDUsNyBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCU9SREVSIE9SRElOQUxJVFkgT1RIRVJTIE9VVF9QIE9VVEVSX1AKIAlPVkVSIE9W RVJMQVBTIE9WRVJMQVkgT1ZFUlJJRElORyBPV05FRCBPV05FUgogCi0JUEFSQUxMRUwgUEFSQU1F VEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJVElPTiBQQVNTSU5HIFBBU1NXT1JECisJUEFSQUxMRUwg UEFSQU1FVEVSIFBBUlNFUiBQQVJUSUFMIFBBUlRJQUxfQUdHUkVHQVRFIFBBUlRJVElPTiBQQVNT SU5HIFBBU1NXT1JECiAJUExBQ0lORyBQTEFOUyBQT0xJQ1kKIAlQT1NJVElPTiBQUkVDRURJTkcg UFJFQ0lTSU9OIFBSRVNFUlZFIFBSRVBBUkUgUFJFUEFSRUQgUFJJTUFSWQogCVBSSU9SIFBSSVZJ TEVHRVMgUFJPQ0VEVVJBTCBQUk9DRURVUkUgUFJPQ0VEVVJFUyBQUk9HUkFNIFBVQkxJQ0FUSU9O CkBAIC0xNTMwMyw2ICsxNTMwMywyNiBAQCBmdW5jX2FwcGxpY2F0aW9uOiBmdW5jX25hbWUgJygn ICcpJwogCQkJCQluLT5hZ2dfZGlzdGluY3QgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCQkJfCBmdW5jX25hbWUgJygnIFBBUlRJQUxfQUdHUkVHQVRFIGZ1bmNfYXJnX2xp c3Qgb3B0X3NvcnRfY2xhdXNlICcpJworCQkJCXsKKwkJCQkJRnVuY0NhbGwgICAqbiA9IG1ha2VG dW5jQ2FsbCgkMSwgJDQsCisJCQkJCQkJCQkJCQkgQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJ CQkJCQkJCQkgQDEpOworCisJCQkJCW4tPmFnZ19vcmRlciA9ICQ1OworCQkJCQluLT5hZ2dfcGFy dGlhbCA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IGZ1bmNfbmFt ZSAnKCcgUEFSVElBTF9BR0dSRUdBVEUgJyonICcpJworCQkJCXsKKwkJCQkJRnVuY0NhbGwgICAq biA9IG1ha2VGdW5jQ2FsbCgkMSwgTklMLAorCQkJCQkJCQkJCQkJIENPRVJDRV9FWFBMSUNJVF9D QUxMLAorCQkJCQkJCQkJCQkJIEAxKTsKKworCQkJCQluLT5hZ2dfc3RhciA9IHRydWU7CisJCQkJ CW4tPmFnZ19wYXJ0aWFsID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJ CXwgZnVuY19uYW1lICcoJyAnKicgJyknCiAJCQkJewogCQkJCQkvKgpAQCAtMTUzNTgsNiArMTUz NzgsMTEgQEAgZnVuY19leHByOiBmdW5jX2FwcGxpY2F0aW9uIHdpdGhpbl9ncm91cF9jbGF1c2Ug ZmlsdGVyX2NsYXVzZSBvdmVyX2NsYXVzZQogCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5U QVhfRVJST1IpLAogCQkJCQkJCQkJIGVycm1zZygiY2Fubm90IHVzZSBESVNUSU5DVCB3aXRoIFdJ VEhJTiBHUk9VUCIpLAogCQkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihAMikpKTsKKwkJCQkJ CWlmIChuLT5hZ2dfcGFydGlhbCkKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQkJIGVycm1zZygiY2Fubm90IHVz ZSBQQVJUSUFMX0FHR1JFR0FURSB3aXRoIFdJVEhJTiBHUk9VUCIpLAorCQkJCQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihAMikpKTsKIAkJCQkJCWlmIChuLT5mdW5jX3ZhcmlhZGljKQogCQkJCQkJ CWVyZXBvcnQoRVJST1IsCiAJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CkBAIC0xNzYyNCw2ICsxNzY0OSw3IEBAIHJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IE9OTFkKIAkJ CXwgT1IKIAkJCXwgT1JERVIKKwkJCXwgUEFSVElBTF9BR0dSRUdBVEUKIAkJCXwgUExBQ0lORwog CQkJfCBQUklNQVJZCiAJCQl8IFJFRkVSRU5DRVMKQEAgLTE3OTMwLDYgKzE3OTU2LDcgQEAgYmFy ZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBQQVJBTUVURVIKIAkJCXwgUEFSU0VSCiAJCQl8IFBBUlRJ QUwKKwkJCXwgUEFSVElBTF9BR0dSRUdBVEUKIAkJCXwgUEFSVElUSU9OCiAJCQl8IFBBU1NJTkcK IAkJCXwgUEFTU1dPUkQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCA5ZDE1MWE4Li40MzJkMThi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC0xMDEsOCArMTAxLDggQEAgc3RhdGljIE5vZGUg Km1ha2VfYWdnX2FyZyhPaWQgYXJndHlwZSwgT2lkIGFyZ2NvbGxhdGlvbik7CiAgKiBwc3RhdGUg bGV2ZWwuCiAgKi8KIHZvaWQKLXRyYW5zZm9ybUFnZ3JlZ2F0ZUNhbGwoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBBZ2dyZWYgKmFnZywKLQkJCQkJICAgTGlzdCAqYXJncywgTGlzdCAqYWdnb3JkZXIsIGJv b2wgYWdnX2Rpc3RpbmN0KQordHJhbnNmb3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0YXRlICpwc3Rh dGUsIEFnZ3JlZiAqYWdnLCBMaXN0ICphcmdzLAorCQkJCQkgICBMaXN0ICphZ2dvcmRlciwgYm9v bCBhZ2dfZGlzdGluY3QsIGJvb2wgYWdnX3BhcnRpYWwpCiB7CiAJTGlzdAkgICAqYXJndHlwZXMg PSBOSUw7CiAJTGlzdAkgICAqdGxpc3QgPSBOSUw7CkBAIC0xNDcsOCArMTQ3LDggQEAgdHJhbnNm b3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIEFnZ3JlZiAqYWdnLAogCQkJCQkJ CQkJCSB0b3JkZXIsIHRsaXN0LCBzb3J0YnkpOwogCQl9CiAKLQkJLyogTmV2ZXIgYW55IERJU1RJ TkNUIGluIGFuIG9yZGVyZWQtc2V0IGFnZyAqLwotCQlBc3NlcnQoIWFnZ19kaXN0aW5jdCk7CisJ CS8qIE5ldmVyIGFueSBESVNUSU5DVCBhbmQgUEFSVElBTF9BR0cgaW4gYW4gb3JkZXJlZC1zZXQg YWdnICovCisJCUFzc2VydCghYWdnX2Rpc3RpbmN0IHx8ICFhZ2dfcGFydGlhbCk7CiAJfQogCWVs c2UKIAl7CkBAIC0yMjIsNiArMjIyLDIyIEBAIHRyYW5zZm9ybUFnZ3JlZ2F0ZUNhbGwoUGFyc2VT dGF0ZSAqcHN0YXRlLCBBZ2dyZWYgKmFnZywKIAlhZ2ctPmFyZ3MgPSB0bGlzdDsKIAlhZ2ctPmFn Z29yZGVyID0gdG9yZGVyOwogCWFnZy0+YWdnZGlzdGluY3QgPSB0ZGlzdGluY3Q7CisJYWdnLT5h Z2dfcGFydGlhbCA9IGFnZ19wYXJ0aWFsOworCWlmKGFnZy0+YWdnX3BhcnRpYWwpeworCQlIZWFw VHVwbGUJYWdndHVwOworCQlGb3JtX3BnX2FnZ3JlZ2F0ZSBhZ2dmb3JtOworCisJCWFnZ3R1cCA9 IFNlYXJjaFN5c0NhY2hlMShBR0dGTk9JRCwgT2JqZWN0SWRHZXREYXR1bShhZ2ctPmFnZ2Zub2lk KSk7CisJCWlmICghSGVhcFR1cGxlSXNWYWxpZChhZ2d0dXApKQorCQkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIGFnZ3JlZ2F0ZSAldSIsIGFnZy0+YWdnZm5vaWQpOworCQlh Z2dmb3JtID0gKEZvcm1fcGdfYWdncmVnYXRlKSBHRVRTVFJVQ1QoYWdndHVwKTsKKwkJUmVsZWFz ZVN5c0NhY2hlKGFnZ3R1cCk7CisJCWlmKGFnZ2Zvcm0tPmFnZ3RyYW5zdHlwZSA9PSBJTlRFUk5B TE9JRCl7CisJCQlhZ2ctPmFnZ3R5cGUgPSBCWVRFQU9JRDsKKwkJfSBlbHNlIHsKKwkJCWFnZy0+ YWdndHlwZSA9IGFnZ2Zvcm0tPmFnZ3RyYW5zdHlwZTsKKwkJfQorCX0KIAogCS8qCiAJICogTm93 IGJ1aWxkIHRoZSBhZ2dhcmd0eXBlcyBsaXN0IHdpdGggdGhlIHR5cGUgT0lEcyBvZiB0aGUgZGly ZWN0IGFuZApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jCmluZGV4IGQyYWM4NjcuLmUyYTc2NmMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMKQEAgLTU0MSw2ICs1NDEsNyBAQCB0cmFuc2Zv cm1SYW5nZUZ1bmN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VGdW5jdGlvbiAqcikKIAkJ CQlmYy0+b3ZlciA9PSBOVUxMICYmCiAJCQkJIWZjLT5hZ2dfc3RhciAmJgogCQkJCSFmYy0+YWdn X2Rpc3RpbmN0ICYmCisJCQkJIWZjLT5hZ2dfcGFydGlhbCAmJgogCQkJCSFmYy0+ZnVuY192YXJp YWRpYyAmJgogCQkJCWNvbGRlZmxpc3QgPT0gTklMKQogCQkJewpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKaW5kZXggOTMwMGM3Yi4uM2MzNGRmNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0z Nzc2LDcgKzM3NzYsOCBAQCB0cmFuc2Zvcm1Kc29uQWdnQ29uc3RydWN0b3IoUGFyc2VTdGF0ZSAq cHN0YXRlLCBKc29uQWdnQ29uc3RydWN0b3IgKmFnZ19jdG9yLAogCQlhZ2dyZWYtPmFnZ3RyYW5z bm8gPSAtMTsKIAkJYWdncmVmLT5sb2NhdGlvbiA9IGFnZ19jdG9yLT5sb2NhdGlvbjsKIAotCQl0 cmFuc2Zvcm1BZ2dyZWdhdGVDYWxsKHBzdGF0ZSwgYWdncmVmLCBhcmdzLCBhZ2dfY3Rvci0+YWdn X29yZGVyLCBmYWxzZSk7CisJCXRyYW5zZm9ybUFnZ3JlZ2F0ZUNhbGwocHN0YXRlLCBhZ2dyZWYs IGFyZ3MsIGFnZ19jdG9yLT5hZ2dfb3JkZXIsIGZhbHNlLAorCQkJCQkJCSAgIGZhbHNlKTsKIAog CQlub2RlID0gKE5vZGUgKikgYWdncmVmOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4 IGZkYjNlNmQuLjBjMzBhZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtOTcsNiArOTcs NyBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1l LCBMaXN0ICpmYXJncywKIAlib29sCQlhZ2dfd2l0aGluX2dyb3VwID0gKGZuID8gZm4tPmFnZ193 aXRoaW5fZ3JvdXAgOiBmYWxzZSk7CiAJYm9vbAkJYWdnX3N0YXIgPSAoZm4gPyBmbi0+YWdnX3N0 YXIgOiBmYWxzZSk7CiAJYm9vbAkJYWdnX2Rpc3RpbmN0ID0gKGZuID8gZm4tPmFnZ19kaXN0aW5j dCA6IGZhbHNlKTsKKwlib29sCQlhZ2dfcGFydGlhbCA9IChmbiA/IGZuLT5hZ2dfcGFydGlhbCA6 IGZhbHNlKTsKIAlib29sCQlmdW5jX3ZhcmlhZGljID0gKGZuID8gZm4tPmZ1bmNfdmFyaWFkaWMg OiBmYWxzZSk7CiAJQ29lcmNpb25Gb3JtIGZ1bmNmb3JtYXQgPSAoZm4gPyBmbi0+ZnVuY2Zvcm1h dCA6IENPRVJDRV9FWFBMSUNJVF9DQUxMKTsKIAlib29sCQljb3VsZF9iZV9wcm9qZWN0aW9uOwpA QCAtMjIyLDcgKzIyMyw4IEBAIFBhcnNlRnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAogCSAqLwogCWNvdWxkX2JlX3Byb2plY3Rpb24g PSAobmFyZ3MgPT0gMSAmJiAhcHJvY19jYWxsICYmCiAJCQkJCQkgICBhZ2dfb3JkZXIgPT0gTklM ICYmIGFnZ19maWx0ZXIgPT0gTlVMTCAmJgotCQkJCQkJICAgIWFnZ19zdGFyICYmICFhZ2dfZGlz dGluY3QgJiYgb3ZlciA9PSBOVUxMICYmCisJCQkJCQkgICAhYWdnX3N0YXIgJiYgIWFnZ19kaXN0 aW5jdCAmJgorCQkJCQkJICAgIWFnZ19wYXJ0aWFsICYmIG92ZXIgPT0gTlVMTCAmJgogCQkJCQkJ ICAgIWZ1bmNfdmFyaWFkaWMgJiYgYXJnbmFtZXMgPT0gTklMICYmCiAJCQkJCQkgICBsaXN0X2xl bmd0aChmdW5jbmFtZSkgPT0gMSAmJgogCQkJCQkJICAgKGFjdHVhbF9hcmdfdHlwZXNbMF0gPT0g UkVDT1JET0lEIHx8CkBAIC0zMjIsNiArMzI0LDEyIEBAIFBhcnNlRnVuY09yQ29sdW1uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAogCQkJCQkgZXJybXNn KCJESVNUSU5DVCBzcGVjaWZpZWQsIGJ1dCAlcyBpcyBub3QgYW4gYWdncmVnYXRlIGZ1bmN0aW9u IiwKIAkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGZ1bmNuYW1lKSksCiAJCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwkJaWYgKGFnZ19wYXJ0aWFsKQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJ CQkJCSBlcnJtc2coIlBBUlRJQUxfQUdHUkVHQVRFIHNwZWNpZmllZCwgYnV0ICVzIGlzIG5vdCBh biBhZ2dyZWdhdGUgZnVuY3Rpb24iLAorCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoZnVuY25hbWUp KSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwogCQlpZiAo YWdnX3dpdGhpbl9ncm91cCkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNP REVfV1JPTkdfT0JKRUNUX1RZUEUpLApAQCAtMzkyLDYgKzQwMCw4IEBAIFBhcnNlRnVuY09yQ29s dW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAogCQkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwogCQkJLyogZ3JhbS55 IHJlamVjdHMgRElTVElOQ1QgKyBXSVRISU4gR1JPVVAgKi8KIAkJCUFzc2VydCghYWdnX2Rpc3Rp bmN0KTsKKwkJCS8qIGdyYW0ueSByZWplY3RzIFBBUlRJQUxfQUdHUkVHQVRFICovCisJCQlBc3Nl cnQoIWFnZ19wYXJ0aWFsKTsKIAkJCS8qIGdyYW0ueSByZWplY3RzIFZBUklBRElDICsgV0lUSElO IEdST1VQICovCiAJCQlBc3NlcnQoIWZ1bmNfdmFyaWFkaWMpOwogCkBAIC04MTQsNyArODI0LDgg QEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpmdW5jbmFtZSwg TGlzdCAqZmFyZ3MsCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikp KTsKIAogCQkvKiBwYXJzZV9hZ2cuYyBkb2VzIGFkZGl0aW9uYWwgYWdncmVnYXRlLXNwZWNpZmlj IHByb2Nlc3NpbmcgKi8KLQkJdHJhbnNmb3JtQWdncmVnYXRlQ2FsbChwc3RhdGUsIGFnZ3JlZiwg ZmFyZ3MsIGFnZ19vcmRlciwgYWdnX2Rpc3RpbmN0KTsKKwkJdHJhbnNmb3JtQWdncmVnYXRlQ2Fs bChwc3RhdGUsIGFnZ3JlZiwgZmFyZ3MsIGFnZ19vcmRlciwgYWdnX2Rpc3RpbmN0LAorCQkJCQkJ CSAgIGFnZ19wYXJ0aWFsKTsKIAogCQlyZXR2YWwgPSAoTm9kZSAqKSBhZ2dyZWY7CiAJfQpAQCAt ODQ2LDYgKzg1NywxNSBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExp c3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGxvY2F0aW9uKSkpOwogCiAJCS8qCisJCSAqIHBhcnRpYWwgYWdncmVnYXRlcyBub3QgYWxs b3dlZCBpbiB3aW5kb3dzIHlldAorCQkgKi8KKwkJaWYgKGFnZ19wYXJ0aWFsKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAor CQkJCQkgZXJybXNnKCJQQVJUSUFMX0FHR1JFR0FURSBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIHdp bmRvdyBmdW5jdGlvbnMiKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0 aW9uKSkpOworCisJCS8qCiAJCSAqIFJlamVjdCBhdHRlbXB0IHRvIGNhbGwgYSBwYXJhbWV0ZXJs ZXNzIGFnZ3JlZ2F0ZSB3aXRob3V0ICgqKQogCQkgKiBzeW50YXguICBUaGlzIGlzIG1lcmUgcGVk YW50cnkgYnV0IHNvbWUgZm9sa3MgaW5zaXN0ZWQgLi4uCiAJCSAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCmluZGV4IDJhMWVlNjkuLmNmMjZmNzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKQEAgLTEwMTIyLDcgKzEwMTIyLDggQEAgZ2V0X2FnZ19leHByX2hlbHBlcihBZ2dyZWYg KmFnZ3JlZiwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0LAogCiAJLyogUHJpbnQgdGhlIGFnZ3Jl Z2F0ZSBuYW1lLCBzY2hlbWEtcXVhbGlmaWVkIGlmIG5lZWRlZCAqLwogCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAiJXMoJXMiLCBmdW5jbmFtZSwKLQkJCQkJIChhZ2dyZWYtPmFnZ2Rpc3RpbmN0ICE9 IE5JTCkgPyAiRElTVElOQ1QgIiA6ICIiKTsKKwkJCQkJIChhZ2dyZWYtPmFnZ2Rpc3RpbmN0ICE9 IE5JTCkgPyAiRElTVElOQ1QgIiA6CisJCQkJCSBhZ2dyZWYtPmFnZ19wYXJ0aWFsID8gIlBBUlRJ QUxfQUdHUkVHQVRFICIgOiAiIik7CiAKIAlpZiAoQUdHS0lORF9JU19PUkRFUkVEX1NFVChhZ2dy ZWYtPmFnZ2tpbmQpKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVB Z2cuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVBZ2cuaAppbmRleCA2ODQ3NzlhLi4wNzkz NjBjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlQWdnLmgKKysrIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3Ivbm9kZUFnZy5oCkBAIC0yMDYsNiArMjA2LDE1IEBAIHR5cGVkZWYg c3RydWN0IEFnZ1N0YXRlUGVyQWdnRGF0YQogCSAqLwogCUZtZ3JJbmZvCWZpbmFsZm47CiAKKwkv KiBPcHRpb25hbCBPaWQgb2Ygc2VyaWFsIGZ1bmN0aW9uIChtYXkgYmUgSW52YWxpZE9pZCkgKi8K KwlPaWQJCQlzZXJpYWxmbl9vaWQ7CisKKwkvKgorCSAqIGZtZ3IgbG9va3VwIGRhdGEgZm9yIHNl cmlhbCBmdW5jdGlvbiAtLS0gb25seSB2YWxpZCB3aGVuIHNlcmlhbGZuX29pZCBpcworCSAqIG5v dCBJbnZhbGlkT2lkLgorCSAqLworCUZtZ3JJbmZvCXNlcmlhbGZuOworCiAJLyoKIAkgKiBOdW1i ZXIgb2YgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGZpbmFsZm4uICBUaGlzIGlzIGFsd2F5cyBh dCBsZWFzdCAxCiAJICogKHRoZSB0cmFuc2l0aW9uIHN0YXRlIHZhbHVlKSBwbHVzIGFueSBvcmRl cmVkLXNldCBkaXJlY3QgYXJncy4gSWYgdGhlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYWFk YWY2Ny4uZTE1MGZmMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDMwLDYgKzQzMCw3IEBA IHR5cGVkZWYgc3RydWN0IEZ1bmNDYWxsCiAJYm9vbAkJYWdnX3dpdGhpbl9ncm91cDsJLyogT1JE RVIgQlkgYXBwZWFyZWQgaW4gV0lUSElOIEdST1VQICovCiAJYm9vbAkJYWdnX3N0YXI7CQkvKiBh cmd1bWVudCB3YXMgcmVhbGx5ICcqJyAqLwogCWJvb2wJCWFnZ19kaXN0aW5jdDsJLyogYXJndW1l bnRzIHdlcmUgbGFiZWxlZCBESVNUSU5DVCAqLworCWJvb2wJCWFnZ19wYXJ0aWFsOwkvKiBhcmd1 bWVudHMgd2VyZSBsYWJlbGVkIFBBUlRJQUxfQUdHUkVHQVRFICovCiAJYm9vbAkJZnVuY192YXJp YWRpYzsJLyogbGFzdCBhcmd1bWVudCB3YXMgbGFiZWxlZCBWQVJJQURJQyAqLwogCUNvZXJjaW9u Rm9ybSBmdW5jZm9ybWF0OwkvKiBob3cgdG8gZGlzcGxheSB0aGlzIG5vZGUgKi8KIAlpbnQJCQls b2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh dGhub2Rlcy5oCmluZGV4IDUzNDY5MmIuLmMyOWU5MWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCkBA IC0zMjU4LDYgKzMyNTgsOSBAQCB0eXBlZGVmIGVudW0KICAqIGhhdmluZ1F1YWwgZ2l2ZXMgbGlz dCBvZiBxdWFscyB0byBiZSBhcHBsaWVkIGFmdGVyIGFnZ3JlZ2F0aW9uLgogICogdGFyZ2V0TGlz dCBnaXZlcyBsaXN0IG9mIGNvbHVtbnMgdG8gYmUgcHJvamVjdGVkLgogICogcGF0eXBlIGlzIHRo ZSB0eXBlIG9mIHBhcnRpdGlvbndpc2UgYWdncmVnYXRpb24gdGhhdCBpcyBiZWluZyBwZXJmb3Jt ZWQuCisgKiBncm91cENsYXVzZVBhcnRpYWwgaXMgTGlzdCBvZiBTb3J0R3JvdXBDbGF1c2VzIGZv ciBwYXJ0aWFsIGFnZ3JlZ2F0ZQorICogCQlwdXNoZG93biBieSBGRFcKKyAqIHBhcnRpYWxfdGFy Z2V0IGlzIFBhdGhUYXJnZXQgZm9yIHBhcnRpYWwgYWdncmVnYXRlIHB1c2hkb3duIGJ5IEZEVwog ICovCiB0eXBlZGVmIHN0cnVjdAogewpAQCAtMzI3Miw2ICszMjc1LDggQEAgdHlwZWRlZiBzdHJ1 Y3QKIAlOb2RlCSAgICpoYXZpbmdRdWFsOwogCUxpc3QJICAgKnRhcmdldExpc3Q7CiAJUGFydGl0 aW9ud2lzZUFnZ3JlZ2F0ZVR5cGUgcGF0eXBlOworCUxpc3QJICAgKmdyb3VwQ2xhdXNlUGFydGlh bDsKKwlQYXRoVGFyZ2V0ICpwYXJ0aWFsX3RhcmdldDsKIH0gR3JvdXBQYXRoRXh0cmFEYXRhOwog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA0YTE1NDYwLi43Y2NiZGM0IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaApAQCAtNDU5LDYgKzQ1OSw5IEBAIHR5cGVkZWYgc3RydWN0IEFnZ3JlZgogCS8q IERJU1RJTkNUIChsaXN0IG9mIFNvcnRHcm91cENsYXVzZSkgKi8KIAlMaXN0CSAgICphZ2dkaXN0 aW5jdDsKIAorCS8qIHRydWUgaWYgdGhlcmUgaXMgUEFSVElBTF9BR0dSRUdBVEUga2V5d29yZCAq LworCWJvb2wgICAgICAgIGFnZ19wYXJ0aWFsOworCiAJLyogRklMVEVSIGV4cHJlc3Npb24sIGlm IGFueSAqLwogCUV4cHIJICAgKmFnZ2ZpbHRlcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDIzMzFh Y2EuLjk0MjA4MWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTMyMyw2ICszMjMsNyBAQCBQR19LRVlX T1JEKCJwYXJhbGxlbCIsIFBBUkFMTEVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJwYXJhbWV0ZXIiLCBQQVJBTUVURVIsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnNlciIsIFBBUlNFUiwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGFydGlhbCIsIFBBUlRJQUwsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInBhcnRpYWxfYWdncmVnYXRlIiwg UEFSVElBTF9BR0dSRUdBVEUsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJwYXJ0aXRpb24iLCBQQVJUSVRJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInBhc3NpbmciLCBQQVNTSU5HLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwYXNzd29yZCIsIFBBU1NXT1JELCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf YWdnLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfYWdnLmgKaW5kZXggNGRmOWIzNy4uNThj YmFkNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2FnZy5oCisrKyBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9hZ2cuaApAQCAtMTcsNyArMTcsNyBAQAogCiBleHRlcm4g dm9pZCB0cmFuc2Zvcm1BZ2dyZWdhdGVDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWdncmVmICph Z2csCiAJCQkJCQkJCSAgIExpc3QgKmFyZ3MsIExpc3QgKmFnZ29yZGVyLAotCQkJCQkJCQkgICBi b29sIGFnZ19kaXN0aW5jdCk7CisJCQkJCQkJCSAgIGJvb2wgYWdnX2Rpc3RpbmN0LCBib29sIGFn Z19wYXJ0aWFsKTsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUdyb3VwaW5nRnVuYyhQYXJzZVN0 YXRlICpwc3RhdGUsIEdyb3VwaW5nRnVuYyAqcCk7CiAKLS0gCjEuOC4zLjEKCg== --_002_TYAPR01MB55141D18188AC86ADCE35FCB952F2TYAPR01MB5514jpnp_--