From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (unknown [192.55.52.120]) by sourceware.org (Postfix) with ESMTPS id 3228D3858D38 for ; Mon, 31 Jul 2023 02:49:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3228D3858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1690771788; x=1722307788; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=wD9aabWM40Lyo5k/qgH07bC34dT7/E6Be9x311vNpZc=; b=RgG/gfBOloICWc8QYSwPMDrsHbxvRhjdxRbo0fbntda/lAAa7KqwsP5r mGBB0Ez1WVCMdihO4HfudM+kG8rPmfRSJaJoYxxfIP7BLJ6IxLJGIBu6b HeIOfbWYcxFuWVkp4oz0T4TWLcYy7FFQZ3tslpHZ23m6Dg+v/KaMqiulC O0dFTnaZvZ9ebrNKJ1KyxG0wakMEtOpUTxYnMwL/zVBMwIcNAP5ENFKxU sj9ivmAZZM/jBo9UFacLv8dZEdcRARlPQf2HxTnq2XV26X305tlpubjLD UMT8MkqXP9p1uHhZNUVoVP4Z8ZxVPYEP6RH+ia6x7vXk5nmNT0C1Bxg7d Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10787"; a="367795427" X-IronPort-AV: E=Sophos;i="6.01,243,1684825200"; d="scan'208";a="367795427" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jul 2023 19:49:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.01,202,1684825200"; d="scan'208";a="871465588" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 30 Jul 2023 19:49:48 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Sun, 30 Jul 2023 19:49:45 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Sun, 30 Jul 2023 19:49:45 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Sun, 30 Jul 2023 19:49:45 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Sun, 30 Jul 2023 19:49:40 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zi7R3rKF0gYA4ZUgFaCMwIzAW7zOYJZ/qcwSQdMEX/tirXdUpukroZ5OcvZY86sUhWw/rgfWLKIU9bN6eelUlJa20jiK2rmyDYFdvjM31+5sWvJJWzTsRiPbvcbbCsjm90h/1ZMbBhQi+yKtybJEYoO+JjHLh+E8Fzq6+gOxmAJAWiM6dIrEX0DGr43O+fST8fnbuohIWo7NvxSAfxuaDq4dwSlgQcveSdCYSgTmbS68sMHGERdgmPMcOLHCA5rkT0ohjOivIt9ZgLDTPF3y8cgh9GYUpVVoL5rgEkaHfoNUcMpw4EIidMPy1IemN0pPOpt0QYKZvRnOlOPobtN1aQ== 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=wD9aabWM40Lyo5k/qgH07bC34dT7/E6Be9x311vNpZc=; b=b4Bltoj8+Uc31vaHgKaZ1V4FGDkvmUoDgEmWlYVh+218GcLFFmkDQDAhKwFmo/KS9sbOsBTT6TOnvjaGOZzKzoStzCZ3rE3Cp+Om9mbyVLn1BPDnOmWzbDdNZcbfIFD7H4cRYHwtYAcY8as6kO7TGEMRMLHkTjlBLCBR90nYYgRiZhsOrUVzKkCNWZT391IIywkHY8J/zb281lsjepyoBKwSYBX7KItoVwD2yoDBGFtOCe6EwNj2UhOUjjXpQ6WRh/jnLs4XSv3Vryb/mHqdSbnhbCWEgFaUhaUp3OcQCspcchwd0pdAz9RBp7aE+sExqLtrW3dlu+m4Ue9oi9pqUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from MW5PR11MB5908.namprd11.prod.outlook.com (2603:10b6:303:194::10) by SJ0PR11MB5183.namprd11.prod.outlook.com (2603:10b6:a03:2d9::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.39; Mon, 31 Jul 2023 02:49:37 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::21a9:85fa:b8a8:8052]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::21a9:85fa:b8a8:8052%3]) with mapi id 15.20.6631.042; Mon, 31 Jul 2023 02:49:37 +0000 From: "Li, Pan2" To: Kito Cheng , Juzhe-Zhong CC: "gcc-patches@gcc.gnu.org" , "kito.cheng@sifive.com" , "jeffreyalaw@gmail.com" , "rdapp.gcc@gmail.com" Subject: RE: [PATCH V2] RISC-V: Enable basic VLS auto-vectorization Thread-Topic: [PATCH V2] RISC-V: Enable basic VLS auto-vectorization Thread-Index: AQHZw1TBYGIDATcKWU6URsPfm3f9OK/TKp+AgAAB7KA= Date: Mon, 31 Jul 2023 02:49:37 +0000 Message-ID: References: <20230731021357.3815294-1-juzhe.zhong@rivai.ai> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW5PR11MB5908:EE_|SJ0PR11MB5183:EE_ x-ms-office365-filtering-correlation-id: 4790b1e6-44bd-4b68-fda5-08db9170c765 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7TDN7PadyaqVarJEdbxG7QDg3STJLZnCBwgvnKlEsmV8kj7covPO6jekaLh7kp86godIL/CWOQTgaX37nTuqpox4Nh0rZgwGissL0zZju0wyLjJibT88MJrZ8bOTJZfXiHFZQf1woCfz0fyvtNhmCtfvZp/DL//AV6mIH7mmB3NRmO21H9Xoi+AT32i1CLuY4/+f7j2t1Dp7cqpXWClXqbI9I+3YPLxGpbLL89uShK/OD0OJ0OqixuqquOG0OOZ3Il+VHVZhiwLS9T8BflAOwhW36ASklkdiCwchuRUQdzKwTZOSe1rNBlJOucyCkvgnyTl7s+SBgJb+w5xCEQ+dSKqTHYZHpsQFl9u/T5eh/f39O8xLz8UhTmOm9kJlT1O3ivTLIayFaPtRKNSdI1nNBHjtT3oiPGYFNH3HQ9ybNpf5G8h1wz8mJAhfHx5yA63dq7XW7HZrYeA4uKR9Nmi10/MKJZGck2tInqb3KssiBzIUp7Ug211FW9Tm25xZ8fdnLI28hHKneAdZJMPO1Vy28tj/kgJ++mY0eogt8EpfyRCpb0YIBy6K7gIwCcR6QswcqvBUHznmM71VXXPXpAtxHGsG10N+DKRUR9CySoFs9uU= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW5PR11MB5908.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(39860400002)(366004)(346002)(376002)(396003)(136003)(451199021)(9686003)(7696005)(55016003)(53546011)(6506007)(26005)(83380400001)(186003)(33656002)(76116006)(66946007)(66556008)(52536014)(38070700005)(122000001)(54906003)(82960400001)(110136005)(84970400001)(41300700001)(86362001)(66476007)(316002)(64756008)(66446008)(4326008)(5660300002)(8936002)(8676002)(38100700002)(2906002)(71200400001)(478600001)(30864003)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dWNOVFFmcHdDRkkraWlyL0poYnRMZEV0eGdyN3gyeEIydEc3VU4zQ1FZcEd0?= =?utf-8?B?QmFOalJiZks1aVBwNS9jUmQ0dFFlK3FPY09BL213Q0d4K0pubGp1ZC9tMDN1?= =?utf-8?B?QWdhVHJZVjEwbk53NmU4clR1cWhiT0NpcXN6TGFaWm9JREs2R0NMQWRMVXBa?= =?utf-8?B?bDZjejBSS2tGcDF1UjZ5MGpYMVJCV20vaVNmKzN6TWdYUGE1b2Y4TThONk9W?= =?utf-8?B?VlNOb2tBWS9RMGNzOHlPU0NlRG5KVVhqeFFSYXJXTjVtVGMwcTJlak45aUxQ?= =?utf-8?B?ZFZISDlTbWdRd2dEUHNkcUY2SmxSWTFobldGNXhiZ1pyL1BwNkJySGlpcktT?= =?utf-8?B?clRpcDBPT1dlQW92bm5EcVA2OTlGWTBTYnN4bFp5bHN1eGIzbkgzRTMySDNS?= =?utf-8?B?MDNtQmo1c00zOTBDWHQ0OW03ZFN2TE9wU0U5enoxUytpcC9LUjZkVXd4SC94?= =?utf-8?B?OWtaNHgyWUtrMU1NeFJyTkFPVUFMYTZqQlM3R0ttbmFVMXcxeGIvUE9rZVVX?= =?utf-8?B?SUpib3Y3VFdMUjFpMG9TZGJkWHU1SHhQWFBDZVlPY2VlOWI4MHRRQ0toWHV1?= =?utf-8?B?MjlwYmIra1FRbml2dk04aG80VjJzRTNZWVNWN3ZZaEFmWENTOW1LS3lqV3hs?= =?utf-8?B?UEY0VElBYTFqaDhTMURzVlBiSlJLakJVYmxnWEp1Nk9BRUkvUGxEUm9YUldl?= =?utf-8?B?OC9Wa2YyN2RMT1pmRERQM2lWRHhpZ3hqbElmV28yVDUzWkhIT3pmMGM4enFt?= =?utf-8?B?MysvNHhIdU82SmM4TEkrb0ZFZ0p5VlFQRk5iVmVJdW54KzZ1MGJYbERvSC9U?= =?utf-8?B?K2UzeEgwc2dsT1F4MEpBZXJhK01qK3Yrc2NSKzc5RTd3UVlIM0VicGtTSmVY?= =?utf-8?B?dWJqM3VEOXZUdklQcXdoRVRyVzcvaElXcFYxeWpUVVZMVEJZNnArYWVwcTRx?= =?utf-8?B?UDhmYUhCbStkVTVsQ3FHTlRXS1V3alorTWZqbFNKc29JWlNRZC9sMjAxL0tv?= =?utf-8?B?bkdlOWd3SzJ4TWpJZFcwSUtPSDFuTlpjMmhaRWRRSEdoMVl5cm92UUJNWEFw?= =?utf-8?B?S0VGWDlkLy95bjhtSlc0eDNHUXhjZ291d3gxcktPbEpnWlczdHpCZEFXellN?= =?utf-8?B?c2s2WDBKNGxweXlHczhrN1VMbStQckx5MGFFM2c2N1lCVTczUHFWYkR3NmVu?= =?utf-8?B?cFZ1VXJwZ0w0dWZGSXY1eDZPRXlSYWg4ZVA3Tk9wRkhBR3hKVmpFNUxaQ1dI?= =?utf-8?B?MWhoclgrRS9Sak5aWXNFN0piYktwdjRkZ0VlTUZXZytRY0k3ZmM4OEtYNHEz?= =?utf-8?B?b2Rjd1NyejNDTHZHTzRldGp3U29rNVFrTzJNMVAwMURvMEZBZFhTSHE2MXVH?= =?utf-8?B?THJKTjlWUlVXRTJZS08wTUp4dkRRdXVJcWRKTkpheWEzSHNxbFVSRGdlSDNR?= =?utf-8?B?VFZzeGtnamZJdVpzNUVjbElyUHBBeDBmTHhGL0VxQ1lDWk9TWjdLYmFZc0do?= =?utf-8?B?QzNSc3A5VFlqUy83REhkcmVDeFo1NmhDTXMwRjA0VTNscnIrc0NWcXVBbjdW?= =?utf-8?B?aXFzamF0RTNPSjJXV0xDQnA5L3krN2Y3TXNpR0syTGVBQWl6Zk1Cb1NrMVJu?= =?utf-8?B?UFVCTjF6WHdNckxQaXV2Y2pKRHZub3FTdVZqWUJJd2diOVV5bVUvMldQbmpr?= =?utf-8?B?VndmZmIwaVhUVmh5bjhnTGdSampVUUhXVHRQQU1UczJGMDJ5eXU2YmsramRQ?= =?utf-8?B?NWpzWVQySHB6enExWmIxMWI5cno1NnlxdkxyWGoxOFpmbGxZeStXRS9FL1Q0?= =?utf-8?B?bVVrTytmNnAwSHRJdWx1d08zNU4wZEFtN3NNRUovMU5GdUJUVHBZZ1lOYU1z?= =?utf-8?B?VmFYbVhBTHZ0ZGJENUhnbEtCdTZmaloydmR3L1k4S3BETHErejAwSExtczNC?= =?utf-8?B?RWRDOG11SGdJYVZqS1VCTmd4L2NFWVRrbTlwTWNhUGIvZlNCQWUvTVk0M0lO?= =?utf-8?B?bTcxTXFHSXR5VE42OTdzWmljMUFxbzFxUk9RdzdRbUphMDZQOUNrS1A3ZHVn?= =?utf-8?B?L2RIdSt6SVNnWWh0Q3RBTmo1QmZONVh5L0krN3FIaVo1Q1BmSkltUW1OUDNU?= =?utf-8?Q?mxsg=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW5PR11MB5908.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4790b1e6-44bd-4b68-fda5-08db9170c765 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jul 2023 02:49:37.0304 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Euat100J8YA21KXR9zqYO4B+rxhBqzni25QNxx1YAGKZt+ULFzm3chtYgXNW99TF7vJtinnMM+fqh/wgvfx5RA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5183 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Q29tbWl0dGVkLCB0aGFua3MgS2l0by4NCg0KUGFuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQpGcm9tOiBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXMtYm91bmNlcytwYW4yLmxpPWludGVs LmNvbUBnY2MuZ251Lm9yZz4gT24gQmVoYWxmIE9mIEtpdG8gQ2hlbmcgdmlhIEdjYy1wYXRjaGVz DQpTZW50OiBNb25kYXksIEp1bHkgMzEsIDIwMjMgMTA6NDIgQU0NClRvOiBKdXpoZS1aaG9uZyA8 anV6aGUuemhvbmdAcml2YWkuYWk+DQpDYzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc7IGtpdG8u Y2hlbmdAc2lmaXZlLmNvbTsgamVmZnJleWFsYXdAZ21haWwuY29tOyByZGFwcC5nY2NAZ21haWwu Y29tDQpTdWJqZWN0OiBSZTogW1BBVENIIFYyXSBSSVNDLVY6IEVuYWJsZSBiYXNpYyBWTFMgYXV0 by12ZWN0b3JpemF0aW9uDQoNCkxHVE0sIHRoYW5rcyA6KQ0KDQpPbiBNb24sIEp1bCAzMSwgMjAy MyBhdCAxMDoxNOKAr0FNIEp1emhlLVpob25nIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4gd3JvdGU6 DQo+DQo+IENvbnNpZGVyIHRoaXMgZm9sbG93aW5nIGNhc2U6DQo+IHZvaWQNCj4gZm9vIChpbnQ4 X3QgKmluLCBpbnQ4X3QgKm91dCwgaW50OF90IHgpDQo+IHsNCj4gICBmb3IgKGludCBpID0gMDsg aSA8IDE2OyBpKyspDQo+ICAgICBpbltpXSA9IHg7DQo+IH0NCj4NCj4gQ29tcGlsZSBvcHRpb246 IC0tcGFyYW09cmlzY3YtYXV0b3ZlYy1wcmVmZXJlbmNlPXNjYWxhYmxlIC1mbm8tYnVpbHRpbg0K Pg0KPiBCZWZvcmUgdGhpcyBwYXRjaDoNCj4NCj4gZm9vOg0KPiAgICAgICAgIGxpICAgICAgYTUs MTYNCj4gICAgICAgICBjc3JyICAgIGE0LHZsZW5iDQo+ICAgICAgICAgdnNldHZsaSBhMyx6ZXJv LGU4LG0xLHRhLG1hDQo+ICAgICAgICAgdm12LnYueCB2MSxhMg0KPiAgICAgICAgIGJsZXUgICAg YTUsYTQsLkwyDQo+ICAgICAgICAgbXYgICAgICBhNSxhNA0KPiAuTDI6DQo+ICAgICAgICAgdnNl dHZsaSB6ZXJvLGE1LGU4LG0xLHRhLG1hDQo+ICAgICAgICAgdnNlOC52ICB2MSwwKGEwKQ0KPiAg ICAgICAgIHJldA0KPg0KPiBBZnRlciB0aGlzIHBhdGNoOg0KPg0KPiBmb286DQo+ICAgICAgICAg dnNldGl2bGkgICAgICAgIHplcm8sMTYsZTgsbWY4LHRhLG1hDQo+ICAgICAgICAgdm12LnYueCB2 MSxhMg0KPiAgICAgICAgIHZzZTgudiAgdjEsMChhMCkNCj4gICAgICAgICByZXQNCj4NCj4gZ2Nj L0NoYW5nZUxvZzoNCj4NCj4gICAgICAgICAqIGNvbmZpZy9yaXNjdi9hdXRvdmVjLXZscy5tZCAo QHZlY19kdXBsaWNhdGU8bW9kZT4pOiBOZXcgcGF0dGVybi4NCj4gICAgICAgICAqIGNvbmZpZy9y aXNjdi9yaXNjdi12LmNjIChhdXRvdmVjdG9yaXplX3ZlY3Rvcl9tb2Rlcyk6IEFkZCBWTFMgYXV0 b3ZlYyBzdXBwb3J0Lg0KPg0KPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4NCj4gICAgICAg ICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdi0xLmM6IEFkYXB0IHRlc3QuDQo+ICAg ICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTMyZl96dmwxMjhiLTEuYzog RGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0ZF96 dmwxMjhiLTEuYzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3p2ZTY0Zl96dmwxMjhiLTEuYzogRGl0dG8uDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtMS5jOiBOZXcgdGVzdC4NCj4gICAgICAgICAqIGdjYy50 YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC0yLmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAg ICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMvZHVwLTMuYzogTmV3IHRlc3QuDQo+ ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtNC5jOiBOZXcg dGVzdC4NCj4gICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC01 LmM6IE5ldyB0ZXN0Lg0KPiAgICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92 bHMvZHVwLTYuYzogTmV3IHRlc3QuDQo+ICAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3Zscy9kdXAtNy5jOiBOZXcgdGVzdC4NCj4NCj4gLS0tDQo+ICBnY2MvY29uZmlnL3Jp c2N2L2F1dG92ZWMtdmxzLm1kICAgICAgICAgICAgICAgfCAgMTkgKysNCj4gIGdjYy9jb25maWcv cmlzY3YvcmlzY3Ytdi5jYyAgICAgICAgICAgICAgICAgICB8ICAyMSArKy0NCj4gIC4uLi9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3YtMS5jICAgICAgICB8ICAgMiArLQ0KPiAgLi4uL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC0xLmMgIHwgMTY4ICsrKysrKysrKysr KysrKysrKw0KPiAgLi4uL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC0yLmMg IHwgMTUzICsrKysrKysrKysrKysrKysNCj4gIC4uLi9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3Zscy9kdXAtMy5jICB8IDE1MyArKysrKysrKysrKysrKysrDQo+ICAuLi4vZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMvZHVwLTQuYyAgfCAxMzcgKysrKysrKysrKysrKysNCj4g IC4uLi9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtNS5jICB8IDEzNyArKysr KysrKysrKysrKw0KPiAgLi4uL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC02 LmMgIHwgMTIyICsrKysrKysrKysrKysNCj4gIC4uLi9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRv dmVjL3Zscy9kdXAtNy5jICB8IDEyMiArKysrKysrKysrKysrDQo+ICAuLi4vcmlzY3YvcnZ2L2F1 dG92ZWMvenZlMzJmX3p2bDEyOGItMS5jICAgICAgfCAgIDIgKy0NCj4gIC4uLi9yaXNjdi9ydnYv YXV0b3ZlYy96dmU2NGRfenZsMTI4Yi0xLmMgICAgICB8ICAgMiArLQ0KPiAgLi4uL3Jpc2N2L3J2 di9hdXRvdmVjL3p2ZTY0Zl96dmwxMjhiLTEuYyAgICAgIHwgICAyICstDQo+ICAxMyBmaWxlcyBj aGFuZ2VkLCAxMDM0IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9k dXAtMS5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtMi5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtMy5jDQo+ICBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVj L3Zscy9kdXAtNC5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtNS5jDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtNi5jDQo+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9h dXRvdmVjL3Zscy9kdXAtNy5jDQo+DQo+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L2F1 dG92ZWMtdmxzLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi9hdXRvdmVjLXZscy5tZA0KPiBpbmRleCA5 ZWNlMzE3Y2E0ZS4uMWE2NGRmZGQ5MWUgMTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvcmlzY3Yv YXV0b3ZlYy12bHMubWQNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9hdXRvdmVjLXZscy5tZA0K PiBAQCAtMTM5LDMgKzEzOSwyMiBAQA0KPiAgICAidm12JW0xci52XHQlMCwlMSINCj4gICAgWyhz ZXRfYXR0ciAidHlwZSIgInZtb3YiKQ0KPiAgICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+Iild KQ0KPiArDQo+ICs7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiArOzsgLS0tLSBEdXBsaWNhdGUgT3BlcmF0aW9ucw0K PiArOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiQHZlY19kdXBs aWNhdGU8bW9kZT4iDQo+ICsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZMUyAwICJyZWdpc3Rlcl9v cGVyYW5kIikNCj4gKyAgICAgICAgKHZlY19kdXBsaWNhdGU6VkxTDQo+ICsgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6PFZFTD4gMSAicmVnX29yX2ludF9vcGVyYW5kIikpKV0NCj4gKyAgIlRBUkdF VF9WRUNUT1IgJiYgY2FuX2NyZWF0ZV9wc2V1ZG9fcCAoKSINCj4gKyAgIiMiDQo+ICsgICImJiAx Ig0KPiArICBbKGNvbnN0X2ludCAwKV0NCj4gKyAgew0KPiArICAgIHJpc2N2X3ZlY3Rvcjo6ZW1p dF92bG1heF9pbnNuIChjb2RlX2Zvcl9wcmVkX2Jyb2FkY2FzdCAoPE1PREU+bW9kZSksDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpc2N2X3ZlY3Rvcjo6UlZWX1VOT1As IG9wZXJhbmRzKTsNCj4gKyAgICBET05FOw0KPiArICB9DQo+ICspDQo+IGRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MN Cj4gaW5kZXggOWU4OWY5NzBhNGMuLmMxMGU1MWIzNjJlIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXYuY2MNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12LmNj DQo+IEBAIC0yNTMzLDcgKzI1MzMsNiBAQCBhdXRvdmVjdG9yaXplX3ZlY3Rvcl9tb2RlcyAodmVj dG9yX21vZGVzICptb2RlcywgYm9vbCkNCj4gIHsNCj4gICAgaWYgKGF1dG92ZWNfdXNlX3ZsbWF4 X3AgKCkpDQo+ICAgICAgew0KPiAtICAgICAgLyogVE9ETzogV2Ugd2lsbCBzdXBwb3J0IFJWViBW TFMgYXV0by12ZWN0b3JpemF0aW9uIG1vZGUgaW4gdGhlIGZ1dHVyZS4gKi8NCj4gICAgICAgIHBv bHlfdWludDY0IGZ1bGxfc2l6ZQ0KPiAgICAgICAgID0gQllURVNfUEVSX1JJU0NWX1ZFQ1RPUiAq ICgoaW50KSByaXNjdl9hdXRvdmVjX2xtdWwpOw0KPg0KPiBAQCAtMjU2MSw3ICsyNTYwLDI1IEBA IGF1dG92ZWN0b3JpemVfdmVjdG9yX21vZGVzICh2ZWN0b3JfbW9kZXMgKm1vZGVzLCBib29sKQ0K PiAgICAgICAgICAgICBtb2Rlcy0+c2FmZV9wdXNoIChtb2RlKTsNCj4gICAgICAgICB9DQo+ICAg ICAgfQ0KPiAtICByZXR1cm4gMDsNCj4gKyAgdW5zaWduZWQgaW50IGZsYWcgPSAwOw0KPiArICBp ZiAoVEFSR0VUX1ZFQ1RPUl9WTFMpDQo+ICsgICAgew0KPiArICAgICAgLyogRW5hYmxlIFZFQ1Rf Q09NUEFSRV9DT1NUUyBiZXR3ZWVuIFZMQSBtb2RlcyBWTFMgbW9kZXMgZm9yIHNjYWxhYmxlDQo+ ICsgICAgICAgIGF1dG8tdmVjdG9yaXphdGlvbi4gICovDQo+ICsgICAgICBmbGFnIHw9IFZFQ1Rf Q09NUEFSRV9DT1NUUzsNCj4gKyAgICAgIC8qIFB1c2ggYWxsIFZMU21vZGVzIGFjY29yZGluZyB0 byBUQVJHRVRfTUlOX1ZMRU4uICAqLw0KPiArICAgICAgdW5zaWduZWQgaW50IGkgPSAwOw0KPiAr ICAgICAgdW5zaWduZWQgaW50IGJhc2Vfc2l6ZSA9IFRBUkdFVF9NSU5fVkxFTiAqIHJpc2N2X2F1 dG92ZWNfbG11bCAvIDg7DQo+ICsgICAgICB1bnNpZ25lZCBpbnQgc2l6ZSA9IGJhc2Vfc2l6ZTsN Cj4gKyAgICAgIG1hY2hpbmVfbW9kZSBtb2RlOw0KPiArICAgICAgd2hpbGUgKHNpemUgPiAwICYm IGdldF92ZWN0b3JfbW9kZSAoUUltb2RlLCBzaXplKS5leGlzdHMgKCZtb2RlKSkNCj4gKyAgICAg ICB7DQo+ICsgICAgICAgICBtb2Rlcy0+c2FmZV9wdXNoIChtb2RlKTsNCj4gKyAgICAgICAgIGkr KzsNCj4gKyAgICAgICAgIHNpemUgPSBiYXNlX3NpemUgLyAoMVUgPDwgaSk7DQo+ICsgICAgICAg fQ0KPiArICAgIH0NCj4gKyAgcmV0dXJuIGZsYWc7DQo+ICB9DQo+DQo+ICAvKiBJZiB0aGUgZ2l2 ZW4gVkVDVE9SX01PREUgaXMgYW4gUlZWIG1vZGUsICBmaXJzdCBnZXQgdGhlIGxhcmdlc3QgbnVt YmVyDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1 dG92ZWMvdi0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMv di0xLmMNCj4gaW5kZXggZTY4ZDA1ZjVmNDguLmViYmU1ZTIxMGM1IDEwMDY0NA0KPiAtLS0gYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdi0xLmMNCj4gKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3YtMS5jDQo+IEBAIC0z LDQgKzMsNCBAQA0KPg0KPiAgI2luY2x1ZGUgInRlbXBsYXRlLTEuaCINCj4NCj4gLS8qIHsgZGct ZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0 aW9uIiA1ICJ2ZWN0IiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiA2ICJ2ZWN0IiB9IH0gKi8NCj4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92 bHMvZHVwLTEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92 bHMvZHVwLTEuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4u MWY1MjBmMmIwYTcNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC0xLmMNCj4gQEAgLTAsMCArMSwxNjggQEAN Cj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1y djY0Z2N2X3p2ZmhfenZsNDA5NmIgLW1hYmk9bHA2NGQgLU8zIC1mbm8tYnVpbHRpbiAtZm5vLXNj aGVkdWxlLWluc25zIC1mbm8tc2NoZWR1bGUtaW5zbnMyIC0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1s bXVsPW04IiB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIq KiIgIiIgfSB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJkZWYuaCINCj4gKw0KPiArLyoNCj4gKyoq IGZvbzE6DQo+ICsqKiAgdnNldGl2bGlccyt6ZXJvLFxzKjQsXHMqZTgsXHMqbWY4LFxzKnRbYXVd LFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAt MV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZThcLnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18 djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ ICtmb28xIChpbnQ4X3QgKmluLCBpbnQ4X3QgKm91dCwgaW50OF90IHgpDQo+ICt7DQo+ICsgIGZv ciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0K PiArLyoNCj4gKyoqIGZvbzI6DQo+ICsqKiAgdnNldGl2bGlccyt6ZXJvLFxzKjgsXHMqZTgsXHMq bWY4LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0y XVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZThcLnZccysoPzp2WzAtOV18 dlsxLTJdWzAtOV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyov DQo+ICt2b2lkDQo+ICtmb28yIChpbnQ4X3QgKmluLCBpbnQ4X3QgKm91dCwgaW50OF90IHgpDQo+ ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgaSsrKQ0KPiArICAgIGluW2ldID0geDsN Cj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzM6DQo+ICsqKiAgdnNldGl2bGlccyt6ZXJvLFxz KjE2LFxzKmU4LFxzKm1mOCxccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZtdlwudlwueFxzKyg/ OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2U4XC52 XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsq KiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vMyAoaW50OF90ICppbiwgaW50OF90ICpvdXQs IGludDhfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspDQo+ICsg ICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNDoNCj4gKyoqICBsaVxz K1thLXgwLTldKywzMg0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplOCxc cyptZjgsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsx LTJdWzAtOV18djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlOFwudlxzKyg/OnZbMC05 XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiAr Ki8NCj4gK3ZvaWQNCj4gK2ZvbzQgKGludDhfdCAqaW4sIGludDhfdCAqb3V0LCBpbnQ4X3QgeCkN Cj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMjsgaSsrKQ0KPiArICAgIGluW2ldID0g eDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzU6DQo+ICsqKiAgbGlccytbYS14MC05XSss NjQNCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTgsXHMqbWY4LFxzKnRb YXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYz WzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZThcLnZccysoPzp2WzAtOV18dlsxLTJdWzAt OV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lk DQo+ICtmb281IChpbnQ4X3QgKmluLCBpbnQ4X3QgKm91dCwgaW50OF90IHgpDQo+ICt7DQo+ICsg IGZvciAoaW50IGkgPSAwOyBpIDwgNjQ7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ ICsNCj4gKy8qDQo+ICsqKiBmb282Og0KPiArKiogIGxpXHMrW2EteDAtOV0rLDEyOA0KPiArKiog IHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplOCxccyptZjQsXHMqdFthdV0sXHMqbVth dV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksXHMq W2EteDAtOV0rDQo+ICsqKiAgdnNlOFwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFd KSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzYg KGludDhfdCAqaW4sIGludDhfdCAqb3V0LCBpbnQ4X3QgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQg aSA9IDA7IGkgPCAxMjg7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8q DQo+ICsqKiBmb283Og0KPiArKiogIGxpXHMrW2EteDAtOV0rLDI1Ng0KPiArKiogIHZzZXR2bGlc cyt6ZXJvLFxzKlthLXgwLTldKyxccyplOCxccyptZjIsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoq ICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksXHMqW2EteDAtOV0r DQo+ICsqKiAgdnNlOFwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChb YS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzcgKGludDhfdCAq aW4sIGludDhfdCAqb3V0LCBpbnQ4X3QgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkg PCAyNTY7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBm b284Og0KPiArKiogIGxpXHMrW2EteDAtOV0rLDUxMg0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxz KlthLXgwLTldKyxccyplOCxccyptMSxccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZtdlwudlwu eFxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2 c2U4XC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wp DQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vOCAoaW50OF90ICppbiwgaW50OF90 ICpvdXQsIGludDhfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDUxMjsgaSsr KQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzk6DQo+ICsq KiAgbGlccytbYS14MC05XSssMTAyNA0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTld KyxccyplOCxccyptMixccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZtdlwudlwueFxzKyg/OnZb MC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2U4XC52XHMr KD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAg cmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vOSAoaW50OF90ICppbiwgaW50OF90ICpvdXQsIGlu dDhfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDEwMjQ7IGkrKykNCj4gKyAg ICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb28xMDoNCj4gKyoqICBsaVxz K1thLXgwLTldKyw0MDk2DQo+ICsqKiAgYWRkaVxzK1thLXgwLTldKyxbYS14MC05XSssLTIwNDgN Cj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTgsXHMqbTQsXHMqdFthdV0s XHMqbVthdV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0x XSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlOFwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2 M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4g K2ZvbzEwIChpbnQ4X3QgKmluLCBpbnQ4X3QgKm91dCwgaW50OF90IHgpDQo+ICt7DQo+ICsgIGZv ciAoaW50IGkgPSAwOyBpIDwgMjA0ODsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4g Kw0KPiArLyoNCj4gKyoqIGZvbzExOg0KPiArKiogIGxpXHMrW2EteDAtOV0rLDQwOTYNCj4gKyoq ICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTgsXHMqbTgsXHMqdFthdV0sXHMqbVth dV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksXHMq W2EteDAtOV0rDQo+ICsqKiAgdnNlOFwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFd KSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzEx IChpbnQ4X3QgKmluLCBpbnQ4X3QgKm91dCwgaW50OF90IHgpDQo+ICt7DQo+ICsgIGZvciAoaW50 IGkgPSAwOyBpIDwgNDA5NjsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMvZHVw LTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMvZHVw LTIuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uMWE5MzBk MDU5YzgNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC0yLmMNCj4gQEAgLTAsMCArMSwxNTMgQEANCj4gKy8q IHsgZGctZG8gY29tcGlsZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2 X3p2ZmhfenZsNDA5NmIgLW1hYmk9bHA2NGQgLU8zIC1mbm8tYnVpbHRpbiAtZm5vLXNjaGVkdWxl LWluc25zIC1mbm8tc2NoZWR1bGUtaW5zbnMyIC0tcGFyYW0gcmlzY3YtYXV0b3ZlYy1sbXVsPW04 IiB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIg fSB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJkZWYuaCINCj4gKw0KPiArLyoNCj4gKyoqIGZvbzE6 DQo+ICsqKiAgdnNldGl2bGlccyt6ZXJvLFxzKjQsXHMqZTE2LFxzKm1mNCxccyp0W2F1XSxccypt W2F1XQ0KPiArKiogIHZtdlwudlwueFxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxc cypbYS14MC05XSsNCj4gKyoqICB2c2UxNlwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1sw LTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2Zv bzEgKGludDE2X3QgKmluLCBpbnQxNl90ICpvdXQsIGludDE2X3QgeCkNCj4gK3sNCj4gKyAgZm9y IChpbnQgaSA9IDA7IGkgPCA0OyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ ICsvKg0KPiArKiogZm9vMjoNCj4gKyoqICB2c2V0aXZsaVxzK3plcm8sXHMqOCxccyplMTYsXHMq bWY0LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0y XVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTE2XC52XHMrKD86dlswLTld fHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsq Lw0KPiArdm9pZA0KPiArZm9vMiAoaW50MTZfdCAqaW4sIGludDE2X3QgKm91dCwgaW50MTZfdCB4 KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykNCj4gKyAgICBpbltpXSA9 IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb28zOg0KPiArKiogIHZzZXRpdmxpXHMremVy byxccyoxNixccyplMTYsXHMqbWY0LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54 XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZz ZTE2XC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wp DQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vMyAoaW50MTZfdCAqaW4sIGludDE2 X3QgKm91dCwgaW50MTZfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDE2OyBp KyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNDoNCj4g KyoqICBsaVxzK1thLXgwLTldKywzMg0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTld KyxccyplMTYsXHMqbWY0LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86 dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTE2XC52 XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsq KiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vNCAoaW50MTZfdCAqaW4sIGludDE2X3QgKm91 dCwgaW50MTZfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspDQo+ ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNToNCj4gKyoqICBs aVxzK1thLXgwLTldKyw2NA0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccypl MTYsXHMqbWY0LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTld fHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTE2XC52XHMrKD86 dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0 DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vNSAoaW50MTZfdCAqaW4sIGludDE2X3QgKm91dCwgaW50 MTZfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDY0OyBpKyspDQo+ICsgICAg aW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNjoNCj4gKyoqICBsaVxzK1th LXgwLTldKywxMjgNCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTE2LFxz Km1mMixccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZtdlwudlwueFxzKyg/OnZbMC05XXx2WzEt Ml1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2UxNlwudlxzKyg/OnZbMC05 XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiAr Ki8NCj4gK3ZvaWQNCj4gK2ZvbzYgKGludDE2X3QgKmluLCBpbnQxNl90ICpvdXQsIGludDE2X3Qg eCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMjg7IGkrKykNCj4gKyAgICBpbltp XSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb283Og0KPiArKiogIGxpXHMrW2EteDAt OV0rLDI1Ng0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplMTYsXHMqbTEs XHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAt OV18djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlMTZcLnZccysoPzp2WzAtOV18dlsx LTJdWzAtOV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ ICt2b2lkDQo+ICtmb283IChpbnQxNl90ICppbiwgaW50MTZfdCAqb3V0LCBpbnQxNl90IHgpDQo+ ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMjU2OyBpKyspDQo+ICsgICAgaW5baV0gPSB4 Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vODoNCj4gKyoqICBsaVxzK1thLXgwLTldKyw1 MTINCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTE2LFxzKm0yLFxzKnRb YXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYz WzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTE2XC52XHMrKD86dlswLTldfHZbMS0yXVsw LTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9p ZA0KPiArZm9vOCAoaW50MTZfdCAqaW4sIGludDE2X3QgKm91dCwgaW50MTZfdCB4KQ0KPiArew0K PiArICBmb3IgKGludCBpID0gMDsgaSA8IDUxMjsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4g K30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzk6DQo+ICsqKiAgbGlccytbYS14MC05XSssMTAyNA0K PiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplMTYsXHMqbTQsXHMqdFthdV0s XHMqbVthdV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0x XSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlMTZcLnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18 djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ ICtmb285IChpbnQxNl90ICppbiwgaW50MTZfdCAqb3V0LCBpbnQxNl90IHgpDQo+ICt7DQo+ICsg IGZvciAoaW50IGkgPSAwOyBpIDwgMTAyNDsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30N Cj4gKw0KPiArLyoNCj4gKyoqIGZvbzEwOg0KPiArKiogIGxpXHMrW2EteDAtOV0rLDQwOTYNCj4g KyoqICBhZGRpXHMrW2EteDAtOV0rLFthLXgwLTldKywtMjA0OA0KPiArKiogIHZzZXR2bGlccyt6 ZXJvLFxzKlthLXgwLTldKyxccyplMTYsXHMqbTgsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2 bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ ICsqKiAgdnNlMTZcLnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksMFxzKlwoW2Et eDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ICtmb28xMCAoaW50MTZfdCAq aW4sIGludDE2X3QgKm91dCwgaW50MTZfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsg aSA8IDIwNDg7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC0zLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC0zLmMNCj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjQ2ZmI1YTUyNWE1DQo+ IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9hdXRvdmVjL3Zscy9kdXAtMy5jDQo+IEBAIC0wLDAgKzEsMTUzIEBADQo+ICsvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdl96dmZoX3p2 bDQwOTZiIC1tYWJpPWxwNjRkIC1PMyAtZm5vLWJ1aWx0aW4gLWZuby1zY2hlZHVsZS1pbnNucyAt Zm5vLXNjaGVkdWxlLWluc25zMiAtLXBhcmFtIHJpc2N2LWF1dG92ZWMtbG11bD1tOCIgfSAqLw0K PiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0K PiArDQo+ICsjaW5jbHVkZSAiZGVmLmgiDQo+ICsNCj4gKy8qDQo+ICsqKiBmb28xOg0KPiArKiog IHZzZXRpdmxpXHMremVybyxccyo0LFxzKmUxNixccyptZjQsXHMqdFthdV0sXHMqbVthdV0NCj4g KyoqICB2Zm12XC52XC5mXHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgw LTldKw0KPiArKiogIHZzZTE2XC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBc cypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vMSAoX0Zs b2F0MTYgKmluLCBfRmxvYXQxNiAqb3V0LCBfRmxvYXQxNiB4KQ0KPiArew0KPiArICBmb3IgKGlu dCBpID0gMDsgaSA8IDQ7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8q DQo+ICsqKiBmb28yOg0KPiArKiogIHZzZXRpdmxpXHMremVybyxccyo4LFxzKmUxNixccyptZjQs XHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2Zm12XC52XC5mXHMrKD86dlswLTldfHZbMS0yXVsw LTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTE2XC52XHMrKD86dlswLTldfHZb MS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0K PiArdm9pZA0KPiArZm9vMiAoX0Zsb2F0MTYgKmluLCBfRmxvYXQxNiAqb3V0LCBfRmxvYXQxNiB4 KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykNCj4gKyAgICBpbltpXSA9 IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb28zOg0KPiArKiogIHZzZXRpdmxpXHMremVy byxccyoxNixccyplMTYsXHMqbWY0LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwu ZlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2 c2UxNlwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStc KQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzMgKF9GbG9hdDE2ICppbiwgX0Zs b2F0MTYgKm91dCwgX0Zsb2F0MTYgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAx NjsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzQ6 DQo+ICsqKiAgbGlccytbYS14MC05XSssMzINCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14 MC05XSssXHMqZTE2LFxzKm1mNCxccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZmbXZcLnZcLmZc cysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNl MTZcLnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkN Cj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ICtmb280IChfRmxvYXQxNiAqaW4sIF9GbG9h dDE2ICpvdXQsIF9GbG9hdDE2IHgpDQo+ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMzI7 IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb281Og0K PiArKiogIGxpXHMrW2EteDAtOV0rLDY0DQo+ICsqKiAgdnNldHZsaVxzK3plcm8sXHMqW2EteDAt OV0rLFxzKmUxNixccyptZjQsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2Zm12XC52XC5mXHMr KD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTE2 XC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vNSAoX0Zsb2F0MTYgKmluLCBfRmxvYXQx NiAqb3V0LCBfRmxvYXQxNiB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDY0OyBp KyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNjoNCj4g KyoqICBsaVxzK1thLXgwLTldKywxMjgNCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05 XSssXHMqZTE2LFxzKm1mMixccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZmbXZcLnZcLmZccyso Pzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlMTZc LnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4g KyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ICtmb282IChfRmxvYXQxNiAqaW4sIF9GbG9hdDE2 ICpvdXQsIF9GbG9hdDE2IHgpDQo+ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMTI4OyBp KyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNzoNCj4g KyoqICBsaVxzK1thLXgwLTldKywyNTYNCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05 XSssXHMqZTE2LFxzKm0xLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwuZlxzKyg/ OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2UxNlwu dlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiAr KiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzcgKF9GbG9hdDE2ICppbiwgX0Zsb2F0MTYg Km91dCwgX0Zsb2F0MTYgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7IGkr KykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb284Og0KPiAr KiogIGxpXHMrW2EteDAtOV0rLDUxMg0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTld KyxccyplMTYsXHMqbTIsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2Zm12XC52XC5mXHMrKD86 dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTE2XC52 XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsq KiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vOCAoX0Zsb2F0MTYgKmluLCBfRmxvYXQxNiAq b3V0LCBfRmxvYXQxNiB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDUxMjsgaSsr KQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzk6DQo+ICsq KiAgbGlccytbYS14MC05XSssMTAyNA0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTld KyxccyplMTYsXHMqbTQsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2Zm12XC52XC5mXHMrKD86 dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTE2XC52 XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsq KiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vOSAoX0Zsb2F0MTYgKmluLCBfRmxvYXQxNiAq b3V0LCBfRmxvYXQxNiB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDEwMjQ7IGkr KykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb28xMDoNCj4g KyoqICBsaVxzK1thLXgwLTldKyw0MDk2DQo+ICsqKiAgYWRkaVxzK1thLXgwLTldKyxbYS14MC05 XSssLTIwNDgNCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTE2LFxzKm04 LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwuZlxzKyg/OnZbMC05XXx2WzEtMl1b MC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2UxNlwudlxzKyg/OnZbMC05XXx2 WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8N Cj4gK3ZvaWQNCj4gK2ZvbzEwIChfRmxvYXQxNiAqaW4sIF9GbG9hdDE2ICpvdXQsIF9GbG9hdDE2 IHgpDQo+ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMjA0ODsgaSsrKQ0KPiArICAgIGlu W2ldID0geDsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy92bHMvZHVwLTQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy92bHMvZHVwLTQuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBp bmRleCAwMDAwMDAwMDAwMC4uN2U0NmRjNDI1MjYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC00LmMNCj4g QEAgLTAsMCArMSwxMzcgQEANCj4gKy8qIHsgZGctZG8gY29tcGlsZSB9ICovDQo+ICsvKiB7IGRn LW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3p2ZmhfenZsNDA5NmIgLW1hYmk9bHA2NGQgLU8zIC1m bm8tYnVpbHRpbiAtZm5vLXNjaGVkdWxlLWluc25zIC1mbm8tc2NoZWR1bGUtaW5zbnMyIC0tcGFy YW0gcmlzY3YtYXV0b3ZlYy1sbXVsPW04IiB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2st ZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJkZWYuaCIN Cj4gKw0KPiArLyoNCj4gKyoqIGZvbzE6DQo+ICsqKiAgdnNldGl2bGlccyt6ZXJvLFxzKjQsXHMq ZTMyLFxzKm1mMixccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZtdlwudlwueFxzKyg/OnZbMC05 XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2UzMlwudlxzKyg/ OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJl dA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzEgKGludDMyX3QgKmluLCBpbnQzMl90ICpvdXQsIGlu dDMyX3QgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspDQo+ICsgICAg aW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vMjoNCj4gKyoqICB2c2V0aXZs aVxzK3plcm8sXHMqOCxccyplMzIsXHMqbWYyLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12 XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiAr KiogIHZzZTMyXC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgw LTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vMiAoaW50MzJfdCAqaW4s IGludDMyX3QgKm91dCwgaW50MzJfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8 IDg7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb28z Og0KPiArKiogIHZzZXRpdmxpXHMremVybyxccyoxNixccyplMzIsXHMqbWYyLFxzKnRbYXVdLFxz Km1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0p LFxzKlthLXgwLTldKw0KPiArKiogIHZzZTMyXC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYz WzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiAr Zm9vMyAoaW50MzJfdCAqaW4sIGludDMyX3QgKm91dCwgaW50MzJfdCB4KQ0KPiArew0KPiArICBm b3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiAr DQo+ICsvKg0KPiArKiogZm9vNDoNCj4gKyoqICBsaVxzK1thLXgwLTldKywzMg0KPiArKiogIHZz ZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplMzIsXHMqbWYyLFxzKnRbYXVdLFxzKm1bYXVd DQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlth LXgwLTldKw0KPiArKiogIHZzZTMyXC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0p LDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vNCAo aW50MzJfdCAqaW4sIGludDMyX3QgKm91dCwgaW50MzJfdCB4KQ0KPiArew0KPiArICBmb3IgKGlu dCBpID0gMDsgaSA8IDMyOyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsv Kg0KPiArKiogZm9vNToNCj4gKyoqICBsaVxzK1thLXgwLTldKyw2NA0KPiArKiogIHZzZXR2bGlc cyt6ZXJvLFxzKlthLXgwLTldKyxccyplMzIsXHMqbWYyLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsq KiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTld Kw0KPiArKiogIHZzZTMyXC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypc KFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vNSAoaW50MzJf dCAqaW4sIGludDMyX3QgKm91dCwgaW50MzJfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0g MDsgaSA8IDY0OyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiAr KiogZm9vNjoNCj4gKyoqICBsaVxzK1thLXgwLTldKywxMjgNCj4gKyoqICB2c2V0dmxpXHMremVy byxccypbYS14MC05XSssXHMqZTMyLFxzKm0xLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12 XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiAr KiogIHZzZTMyXC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgw LTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vNiAoaW50MzJfdCAqaW4s IGludDMyX3QgKm91dCwgaW50MzJfdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8 IDEyODsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZv bzc6DQo+ICsqKiAgbGlccytbYS14MC05XSssMjU2DQo+ICsqKiAgdnNldHZsaVxzK3plcm8sXHMq W2EteDAtOV0rLFxzKmUzMixccyptMixccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZtdlwudlwu eFxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2 c2UzMlwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStc KQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzcgKGludDMyX3QgKmluLCBpbnQz Ml90ICpvdXQsIGludDMyX3QgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7 IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb284Og0K PiArKiogIGxpXHMrW2EteDAtOV0rLDUxMg0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgw LTldKyxccyplMzIsXHMqbTQsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2bXZcLnZcLnhccyso Pzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlMzJc LnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4g KyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ICtmb284IChpbnQzMl90ICppbiwgaW50MzJfdCAq b3V0LCBpbnQzMl90IHgpDQo+ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgNTEyOyBpKysp DQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vOToNCj4gKyoq ICBsaVxzK1thLXgwLTldKywxMDI0DQo+ICsqKiAgdnNldHZsaVxzK3plcm8sXHMqW2EteDAtOV0r LFxzKmUzMixccyptOCxccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZtdlwudlwueFxzKyg/OnZb MC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2UzMlwudlxz Kyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiog IHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzkgKGludDMyX3QgKmluLCBpbnQzMl90ICpvdXQs IGludDMyX3QgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDI0OyBpKyspDQo+ ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtNS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtNS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi45YjkzMjdiZGQ0ZA0KPiAtLS0gL2Rldi9udWxsDQo+ ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy92bHMvZHVw LTUuYw0KPiBAQCAtMCwwICsxLDEzNyBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4g Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3ZfenZmaF96dmw0MDk2YiAtbWFiaT1scDY0 ZCAtTzMgLWZuby1idWlsdGluIC1mbm8tc2NoZWR1bGUtaW5zbnMgLWZuby1zY2hlZHVsZS1pbnNu czIgLS1wYXJhbSByaXNjdi1hdXRvdmVjLWxtdWw9bTgiIH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCj4gKw0KPiArI2luY2x1ZGUg ImRlZi5oIg0KPiArDQo+ICsvKg0KPiArKiogZm9vMToNCj4gKyoqICB2c2V0aXZsaVxzK3plcm8s XHMqNCxccyplMzIsXHMqbWYyLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwuZlxz Kyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2Uz MlwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0K PiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzEgKGZsb2F0ICppbiwgZmxvYXQgKm91 dCwgZmxvYXQgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspDQo+ICsg ICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vMjoNCj4gKyoqICB2c2V0 aXZsaVxzK3plcm8sXHMqOCxccyplMzIsXHMqbWYyLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAg dmZtdlwudlwuZlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsN Cj4gKyoqICB2c2UzMlwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChb YS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzIgKGZsb2F0ICpp biwgZmxvYXQgKm91dCwgZmxvYXQgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA4 OyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vMzoN Cj4gKyoqICB2c2V0aXZsaVxzK3plcm8sXHMqMTYsXHMqZTMyLFxzKm1mMixccyp0W2F1XSxccypt W2F1XQ0KPiArKiogIHZmbXZcLnZcLmZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSks XHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlMzJcLnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNb MC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ICtm b28zIChmbG9hdCAqaW4sIGZsb2F0ICpvdXQsIGZsb2F0IHgpDQo+ICt7DQo+ICsgIGZvciAoaW50 IGkgPSAwOyBpIDwgMTY7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8q DQo+ICsqKiBmb280Og0KPiArKiogIGxpXHMrW2EteDAtOV0rLDMyDQo+ICsqKiAgdnNldHZsaVxz K3plcm8sXHMqW2EteDAtOV0rLFxzKmUzMixccyptZjIsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoq ICB2Zm12XC52XC5mXHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTld Kw0KPiArKiogIHZzZTMyXC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypc KFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vNCAoZmxvYXQg KmluLCBmbG9hdCAqb3V0LCBmbG9hdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8 IDMyOyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9v NToNCj4gKyoqICBsaVxzK1thLXgwLTldKyw2NA0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlth LXgwLTldKyxccyplMzIsXHMqbWYyLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwu ZlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2 c2UzMlwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStc KQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzUgKGZsb2F0ICppbiwgZmxvYXQg Km91dCwgZmxvYXQgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA2NDsgaSsrKQ0K PiArICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzY6DQo+ICsqKiAg bGlccytbYS14MC05XSssMTI4DQo+ICsqKiAgdnNldHZsaVxzK3plcm8sXHMqW2EteDAtOV0rLFxz KmUzMixccyptMSxccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZmbXZcLnZcLmZccysoPzp2WzAt OV18dlsxLTJdWzAtOV18djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlMzJcLnZccyso Pzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICBy ZXQNCj4gKyovDQo+ICt2b2lkDQo+ICtmb282IChmbG9hdCAqaW4sIGZsb2F0ICpvdXQsIGZsb2F0 IHgpDQo+ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMTI4OyBpKyspDQo+ICsgICAgaW5b aV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNzoNCj4gKyoqICBsaVxzK1thLXgw LTldKywyNTYNCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTMyLFxzKm0y LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwuZlxzKyg/OnZbMC05XXx2WzEtMl1b MC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2UzMlwudlxzKyg/OnZbMC05XXx2 WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8N Cj4gK3ZvaWQNCj4gK2ZvbzcgKGZsb2F0ICppbiwgZmxvYXQgKm91dCwgZmxvYXQgeCkNCj4gK3sN Cj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAyNTY7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb284Og0KPiArKiogIGxpXHMrW2EteDAtOV0rLDUxMg0K PiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplMzIsXHMqbTQsXHMqdFthdV0s XHMqbVthdV0NCj4gKyoqICB2Zm12XC52XC5mXHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAt MV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTMyXC52XHMrKD86dlswLTldfHZbMS0yXVswLTld fHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0K PiArZm9vOCAoZmxvYXQgKmluLCBmbG9hdCAqb3V0LCBmbG9hdCB4KQ0KPiArew0KPiArICBmb3Ig KGludCBpID0gMDsgaSA8IDUxMjsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0K PiArLyoNCj4gKyoqIGZvbzk6DQo+ICsqKiAgbGlccytbYS14MC05XSssMTAyNA0KPiArKiogIHZz ZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplMzIsXHMqbTgsXHMqdFthdV0sXHMqbVthdV0N Cj4gKyoqICB2Zm12XC52XC5mXHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlth LXgwLTldKw0KPiArKiogIHZzZTMyXC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0p LDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vOSAo ZmxvYXQgKmluLCBmbG9hdCAqb3V0LCBmbG9hdCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0g MDsgaSA8IDEwMjQ7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+IGRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC02LmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1cC02LmMN Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjUyZDVhNjViNDRl DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9hdXRvdmVjL3Zscy9kdXAtNi5jDQo+IEBAIC0wLDAgKzEsMTIyIEBADQo+ICsvKiB7IGRn LWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdl96dmZo X3p2bDQwOTZiIC1tYWJpPWxwNjRkIC1PMyAtZm5vLWJ1aWx0aW4gLWZuby1zY2hlZHVsZS1pbnNu cyAtZm5vLXNjaGVkdWxlLWluc25zMiAtLXBhcmFtIHJpc2N2LWF1dG92ZWMtbG11bD1tOCIgfSAq Lw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAq Lw0KPiArDQo+ICsjaW5jbHVkZSAiZGVmLmgiDQo+ICsNCj4gKy8qDQo+ICsqKiBmb28xOg0KPiAr KiogIHZzZXRpdmxpXHMremVybyxccyo0LFxzKmU2NCxccyptMSxccyp0W2F1XSxccyptW2F1XQ0K PiArKiogIHZtdlwudlwueFxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14 MC05XSsNCj4gKyoqICB2c2U2NFwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSww XHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzEgKGlu dDY0X3QgKmluLCBpbnQ2NF90ICpvdXQsIGludDY0X3QgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQg aSA9IDA7IGkgPCA0OyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0K PiArKiogZm9vMjoNCj4gKyoqICB2c2V0aXZsaVxzK3plcm8sXHMqOCxccyplNjQsXHMqbTEsXHMq dFthdV0sXHMqbVthdV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAtOV18 djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlNjRcLnZccysoPzp2WzAtOV18dlsxLTJd WzAtOV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2 b2lkDQo+ICtmb28yIChpbnQ2NF90ICppbiwgaW50NjRfdCAqb3V0LCBpbnQ2NF90IHgpDQo+ICt7 DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgODsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4g K30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzM6DQo+ICsqKiAgdnNldGl2bGlccyt6ZXJvLFxzKjE2 LFxzKmU2NCxccyptMSxccyp0W2F1XSxccyptW2F1XQ0KPiArKiogIHZtdlwudlwueFxzKyg/OnZb MC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2U2NFwudlxz Kyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiog IHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzMgKGludDY0X3QgKmluLCBpbnQ2NF90ICpvdXQs IGludDY0X3QgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKQ0KPiAr ICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzQ6DQo+ICsqKiAgbGlc cytbYS14MC05XSssMzINCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTY0 LFxzKm0xLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZb MS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTldKw0KPiArKiogIHZzZTY0XC52XHMrKD86dlsw LTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ ICsqLw0KPiArdm9pZA0KPiArZm9vNCAoaW50NjRfdCAqaW4sIGludDY0X3QgKm91dCwgaW50NjRf dCB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDMyOyBpKyspDQo+ICsgICAgaW5b aV0gPSB4Ow0KPiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNToNCj4gKyoqICBsaVxzK1thLXgw LTldKyw2NA0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplNjQsXHMqbTEs XHMqdFthdV0sXHMqbVthdV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAt OV18djNbMC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlNjRcLnZccysoPzp2WzAtOV18dlsx LTJdWzAtOV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ ICt2b2lkDQo+ICtmb281IChpbnQ2NF90ICppbiwgaW50NjRfdCAqb3V0LCBpbnQ2NF90IHgpDQo+ ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgNjQ7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7 DQo+ICt9DQo+ICsNCj4gKy8qDQo+ICsqKiBmb282Og0KPiArKiogIGxpXHMrW2EteDAtOV0rLDEy OA0KPiArKiogIHZzZXR2bGlccyt6ZXJvLFxzKlthLXgwLTldKyxccyplNjQsXHMqbTIsXHMqdFth dV0sXHMqbVthdV0NCj4gKyoqICB2bXZcLnZcLnhccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNb MC0xXSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlNjRcLnZccysoPzp2WzAtOV18dlsxLTJdWzAt OV18djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lk DQo+ICtmb282IChpbnQ2NF90ICppbiwgaW50NjRfdCAqb3V0LCBpbnQ2NF90IHgpDQo+ICt7DQo+ ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMTI4OyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiAr fQ0KPiArDQo+ICsvKg0KPiArKiogZm9vNzoNCj4gKyoqICBsaVxzK1thLXgwLTldKywyNTYNCj4g KyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTY0LFxzKm00LFxzKnRbYXVdLFxz Km1bYXVdDQo+ICsqKiAgdm12XC52XC54XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0p LFxzKlthLXgwLTldKw0KPiArKiogIHZzZTY0XC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYz WzAtMV0pLDBccypcKFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiAr Zm9vNyAoaW50NjRfdCAqaW4sIGludDY0X3QgKm91dCwgaW50NjRfdCB4KQ0KPiArew0KPiArICBm b3IgKGludCBpID0gMDsgaSA8IDI1NjsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4g Kw0KPiArLyoNCj4gKyoqIGZvbzg6DQo+ICsqKiAgbGlccytbYS14MC05XSssNTEyDQo+ICsqKiAg dnNldHZsaVxzK3plcm8sXHMqW2EteDAtOV0rLFxzKmU2NCxccyptOCxccyp0W2F1XSxccyptW2F1 XQ0KPiArKiogIHZtdlwudlwueFxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypb YS14MC05XSsNCj4gKyoqICB2c2U2NFwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFd KSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2Zvbzgg KGludDY0X3QgKmluLCBpbnQ2NF90ICpvdXQsIGludDY0X3QgeCkNCj4gK3sNCj4gKyAgZm9yIChp bnQgaSA9IDA7IGkgPCA1MTI7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+IGRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1 cC03LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvdmxzL2R1 cC03LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjM5ZjI3 ZWNlMmU3DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3Zscy9kdXAtNy5jDQo+IEBAIC0wLDAgKzEsMTIyIEBADQo+ICsv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdj dl96dmZoX3p2bDQwOTZiIC1tYWJpPWxwNjRkIC1PMyAtZm5vLWJ1aWx0aW4gLWZuby1zY2hlZHVs ZS1pbnNucyAtZm5vLXNjaGVkdWxlLWluc25zMiAtLXBhcmFtIHJpc2N2LWF1dG92ZWMtbG11bD1t OCIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIi IH0gfSAqLw0KPiArDQo+ICsjaW5jbHVkZSAiZGVmLmgiDQo+ICsNCj4gKy8qDQo+ICsqKiBmb28x Og0KPiArKiogIHZzZXRpdmxpXHMremVybyxccyo0LFxzKmU2NCxccyptMSxccyp0W2F1XSxccypt W2F1XQ0KPiArKiogIHZmbXZcLnZcLmZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0xXSks XHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlNjRcLnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNb MC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ICtm b28xIChkb3VibGUgKmluLCBkb3VibGUgKm91dCwgZG91YmxlIHgpDQo+ICt7DQo+ICsgIGZvciAo aW50IGkgPSAwOyBpIDwgNDsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0KPiAr LyoNCj4gKyoqIGZvbzI6DQo+ICsqKiAgdnNldGl2bGlccyt6ZXJvLFxzKjgsXHMqZTY0LFxzKm0x LFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwuZlxzKyg/OnZbMC05XXx2WzEtMl1b MC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2U2NFwudlxzKyg/OnZbMC05XXx2 WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8N Cj4gK3ZvaWQNCj4gK2ZvbzIgKGRvdWJsZSAqaW4sIGRvdWJsZSAqb3V0LCBkb3VibGUgeCkNCj4g K3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0K PiArfQ0KPiArDQo+ICsvKg0KPiArKiogZm9vMzoNCj4gKyoqICB2c2V0aXZsaVxzK3plcm8sXHMq MTYsXHMqZTY0LFxzKm0xLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwuZlxzKyg/ OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2U2NFwu dlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiAr KiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzMgKGRvdWJsZSAqaW4sIGRvdWJsZSAqb3V0 LCBkb3VibGUgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKQ0KPiAr ICAgIGluW2ldID0geDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzQ6DQo+ICsqKiAgbGlc cytbYS14MC05XSssMzINCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTY0 LFxzKm0xLFxzKnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwuZlxzKyg/OnZbMC05XXx2 WzEtMl1bMC05XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2U2NFwudlxzKyg/OnZb MC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0K PiArKi8NCj4gK3ZvaWQNCj4gK2ZvbzQgKGRvdWJsZSAqaW4sIGRvdWJsZSAqb3V0LCBkb3VibGUg eCkNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAzMjsgaSsrKQ0KPiArICAgIGluW2ld ID0geDsNCj4gK30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzU6DQo+ICsqKiAgbGlccytbYS14MC05 XSssNjQNCj4gKyoqICB2c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTY0LFxzKm0xLFxz KnRbYXVdLFxzKm1bYXVdDQo+ICsqKiAgdmZtdlwudlwuZlxzKyg/OnZbMC05XXx2WzEtMl1bMC05 XXx2M1swLTFdKSxccypbYS14MC05XSsNCj4gKyoqICB2c2U2NFwudlxzKyg/OnZbMC05XXx2WzEt Ml1bMC05XXx2M1swLTFdKSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4g K3ZvaWQNCj4gK2ZvbzUgKGRvdWJsZSAqaW4sIGRvdWJsZSAqb3V0LCBkb3VibGUgeCkNCj4gK3sN Cj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCA2NDsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4g K30NCj4gKw0KPiArLyoNCj4gKyoqIGZvbzY6DQo+ICsqKiAgbGlccytbYS14MC05XSssMTI4DQo+ ICsqKiAgdnNldHZsaVxzK3plcm8sXHMqW2EteDAtOV0rLFxzKmU2NCxccyptMixccyp0W2F1XSxc cyptW2F1XQ0KPiArKiogIHZmbXZcLnZcLmZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18djNbMC0x XSksXHMqW2EteDAtOV0rDQo+ICsqKiAgdnNlNjRcLnZccysoPzp2WzAtOV18dlsxLTJdWzAtOV18 djNbMC0xXSksMFxzKlwoW2EteDAtOV0rXCkNCj4gKyoqICByZXQNCj4gKyovDQo+ICt2b2lkDQo+ ICtmb282IChkb3VibGUgKmluLCBkb3VibGUgKm91dCwgZG91YmxlIHgpDQo+ICt7DQo+ICsgIGZv ciAoaW50IGkgPSAwOyBpIDwgMTI4OyBpKyspDQo+ICsgICAgaW5baV0gPSB4Ow0KPiArfQ0KPiAr DQo+ICsvKg0KPiArKiogZm9vNzoNCj4gKyoqICBsaVxzK1thLXgwLTldKywyNTYNCj4gKyoqICB2 c2V0dmxpXHMremVybyxccypbYS14MC05XSssXHMqZTY0LFxzKm00LFxzKnRbYXVdLFxzKm1bYXVd DQo+ICsqKiAgdmZtdlwudlwuZlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFdKSxccypb YS14MC05XSsNCj4gKyoqICB2c2U2NFwudlxzKyg/OnZbMC05XXx2WzEtMl1bMC05XXx2M1swLTFd KSwwXHMqXChbYS14MC05XStcKQ0KPiArKiogIHJldA0KPiArKi8NCj4gK3ZvaWQNCj4gK2Zvbzcg KGRvdWJsZSAqaW4sIGRvdWJsZSAqb3V0LCBkb3VibGUgeCkNCj4gK3sNCj4gKyAgZm9yIChpbnQg aSA9IDA7IGkgPCAyNTY7IGkrKykNCj4gKyAgICBpbltpXSA9IHg7DQo+ICt9DQo+ICsNCj4gKy8q DQo+ICsqKiBmb284Og0KPiArKiogIGxpXHMrW2EteDAtOV0rLDUxMg0KPiArKiogIHZzZXR2bGlc cyt6ZXJvLFxzKlthLXgwLTldKyxccyplNjQsXHMqbTgsXHMqdFthdV0sXHMqbVthdV0NCj4gKyoq ICB2Zm12XC52XC5mXHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLFxzKlthLXgwLTld Kw0KPiArKiogIHZzZTY0XC52XHMrKD86dlswLTldfHZbMS0yXVswLTldfHYzWzAtMV0pLDBccypc KFthLXgwLTldK1wpDQo+ICsqKiAgcmV0DQo+ICsqLw0KPiArdm9pZA0KPiArZm9vOCAoZG91Ymxl ICppbiwgZG91YmxlICpvdXQsIGRvdWJsZSB4KQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsg aSA8IDUxMjsgaSsrKQ0KPiArICAgIGluW2ldID0geDsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy96dmUzMmZfenZsMTI4Yi0x LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlMzJmX3p2 bDEyOGItMS5jDQo+IGluZGV4IGVjZmRhNzllMTlhLi4zNDVlMmY5NjNkNSAxMDA2NDQNCj4gLS0t IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTMyZl96dmwx MjhiLTEuYw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92 ZWMvenZlMzJmX3p2bDEyOGItMS5jDQo+IEBAIC0zLDQgKzMsNCBAQA0KPg0KPiAgI2luY2x1ZGUg InRlbXBsYXRlLTEuaCINCj4NCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiAzICJ2ZWN0IiB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGlu IGZ1bmN0aW9uIiA0ICJ2ZWN0IiB9IH0gKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy96dmU2NGRfenZsMTI4Yi0xLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRkX3p2bDEyOGItMS5jDQo+ IGluZGV4IDZiMzIwY2E2ZjM4Li5lMTNjMjdkY2RiMCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0ZF96dmwxMjhiLTEuYw0KPiAr KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRkX3p2 bDEyOGItMS5jDQo+IEBAIC0zLDQgKzMsNCBAQA0KPg0KPiAgI2luY2x1ZGUgInRlbXBsYXRlLTEu aCINCj4NCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAidmVjdG9yaXpl ZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiA1ICJ2ZWN0IiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiA2 ICJ2ZWN0IiB9IH0gKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYXV0b3ZlYy96dmU2NGZfenZsMTI4Yi0xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRmX3p2bDEyOGItMS5jDQo+IGluZGV4IGFlM2Yw NjY0NzdjLi5lNzY3NjI5YWU1NCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9hdXRvdmVjL3p2ZTY0Zl96dmwxMjhiLTEuYw0KPiArKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvenZlNjRmX3p2bDEyOGItMS5jDQo+ IEBAIC0zLDQgKzMsNCBAQA0KPg0KPiAgI2luY2x1ZGUgInRlbXBsYXRlLTEuaCINCj4NCj4gLS8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGlu IGZ1bmN0aW9uIiA0ICJ2ZWN0IiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUt ZHVtcC10aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIGluIGZ1bmN0aW9uIiA1ICJ2ZWN0IiB9IH0g Ki8NCj4gLS0NCj4gMi4zNi4zDQo+DQo=