From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by sourceware.org (Postfix) with ESMTPS id 185833858C78 for ; Fri, 17 Feb 2023 08:39:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 185833858C78 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=1676623182; x=1708159182; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=sFNb/C0ihX355gyn6aiVAXtdWTsL4oCaKJ6EGv05npY=; b=iK52fisYgVA6rP3rXrZ2UEpIBTXTgoumDn2vNRXyIpILnThssEW4tsFY 3Pp+W5vcTTbZjTTcKaryOZeY1Qe6waTk02XodxVpr499nqBhoDDhEeo98 JbYoxv+k1lifYKIxY0+Y/X2uRDCqPYJ2PVBKVpupHvW6m/N8I2G8IkFLd nSrmInCl17fdclCRJ8ctG7nWRjK7erHvk4UcwgMziy4Ws1li/B7FL8meQ JwvKmH4TnVOyeWsgy7Sr+LDLC0B36MlDLXoDFIf6jXPEAWYlOWuCUETuY CpnflPg81c7bFhJyHSlfALhf0fhJMOifSgomI5iksGwkJTodQAKylSI52 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10623"; a="396617894" X-IronPort-AV: E=Sophos;i="5.97,304,1669104000"; d="scan'208";a="396617894" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Feb 2023 00:39:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10623"; a="734227093" X-IronPort-AV: E=Sophos;i="5.97,304,1669104000"; d="scan'208";a="734227093" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga008.fm.intel.com with ESMTP; 17 Feb 2023 00:39:34 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.16; Fri, 17 Feb 2023 00:39:33 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Fri, 17 Feb 2023 00:39:33 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Fri, 17 Feb 2023 00:39:33 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ja/3rvBHHDxdWp10U8/vRdQAHGLdqNqoWF68iuPAKK6Rkru8C3c8KqQuDeOx/ZeS13DCrLJDH7LOS4stS9u49nGNjTqTnzgMRCo/AAf0QU87FZJTUkLMGn/x/hYVSEvfD6ufClU0Ms39P44BBIueEz0LJeTISHmRc/R5iARQfzAWs56PqAZoeGxdlxaTUTzjOecrpf54euNuKe2lkFW2EL/3wMeBSgYFmf9hgnsFWO7fiydXt22ZdbGztjSJ33eJ1nem6+w8Lj8hXJJQaBqnSEQIwPsAzHwwfAF9zKy/v+/ETUy4Da0E9iJoiZv5phjZRT2JcaO42gwRSWirYtiHkA== 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=sFNb/C0ihX355gyn6aiVAXtdWTsL4oCaKJ6EGv05npY=; b=YJF3/6nDrZLjiP+I+2Ol//djL96O7CGX57ne6dv3sl81AoENtYeXTpwNx00VNAAsNG82xOKcqc1CvxG0rCnfF5P0RjTd69vNus+FnOFkDPdEFw6zksksXNszoXatIqq6q0b6fqcwpzt2oNCRKQyDnDJxRealWav0E5uhrOedGSM/e/2eVS8XFnZ4pAX/TOG8xAeq8rsR8ZCbHoamcHN0Xze3O8ioPb0wysFW1ojCbNx4gcFrjl8z9TZnm+vN8N3vnu+OnPlD1Cb83oqPpNT2ErM0kCAVlRFyejqWUzJgdQm2kP6bErCePcfBxNxtqrzHLPQFjcN8Bk2ijcwtJH2WBg== 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 PH7PR11MB6770.namprd11.prod.outlook.com (2603:10b6:510:1b4::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.13; Fri, 17 Feb 2023 08:39:26 +0000 Received: from MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::7ad:494f:ca70:719]) by MW5PR11MB5908.namprd11.prod.outlook.com ([fe80::7ad:494f:ca70:719%6]) with mapi id 15.20.6111.015; Fri, 17 Feb 2023 08:39:26 +0000 From: "Li, Pan2" To: "richard.sandiford@arm.com" , juzhe.zhong CC: "incarnation.p.lee@outlook.com" , "gcc-patches@gcc.gnu.org" , "kito.cheng@sifive.com" , Richard Biener Subject: RE: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Topic: [PATCH] RISC-V: Bugfix for rvv bool mode precision adjustment Thread-Index: AQHZQiBGH7RnpggGdk6ss2W0Gmyulq7RsL4AgAEQAoCAABCucA== Date: Fri, 17 Feb 2023 08:39:26 +0000 Message-ID: References: <9800822AA73B1E3D+5F679DFB-633A-446F-BB7F-59ADEEE67E50@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_|PH7PR11MB6770:EE_ x-ms-office365-filtering-correlation-id: fb6d6a54-ab99-482c-1796-08db10c27a20 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mwUInhvpVpqYfcC1rSW3XT616/TdWkESGwWXCOD5dr4pXRL3AVrrHTqFwShElT8Y9QPv0DUT5xvNYpq1Cczd0x8JYnB4tndZ9kcWWnAVxXOF/gbBNuWJ1hqHdVwVOIcs+7OMo/99hxtMzx1GQgJGcnezCiCuWvoL4/nHHyGuOQAxnYR1RnxaMSqDTXV1TjknPrEGj7Cw7dqJNFaYN1ElvG2I6i8EGvTNEcKbhfufOdkiOlv168hiWqd77JlkxbPt8y326Xw5IBn/VNnA+/eyPAdgPHjGp/hoCcU+d7dqzt1Hj6pxv2egEfi6qEcyoV2NiJakqGvdT6VYB1ZdE4mhzaHPBd66W6W593ecs+TF4G4eQusTRkGX7X9a9/E0kAWhY/2gJ8OnXHcUYsRs+DaO0J/uxjM+x5ekY43UU0LIwaH+ZGecHIpV4rvliSS8huQUZXE1d7pe5ikDJo1TmXhPL4TNvjG6GCPd+oTi0E5loYyJV29ikGsDUXWop118MhBtVCD+kWiYcOSsnv/X8XKlQctksRwj2U6BJcam5R0orQj5YCyxddeQpfczbRTs/b9OinVozanL7aWkoXFLD+DTfSCGB1PtYAhN9G+rq+5WsVPjKLhNJe4s9btj+AyvAbyT3FYj3C1IQ0+4tqXPP6CzdPdoz3TQmRR9IZmm59E9IBiJIpYUwEo3H9X9Qva0E5Rc 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:(13230025)(39860400002)(396003)(376002)(366004)(136003)(346002)(451199018)(8936002)(41300700001)(71200400001)(52536014)(5660300002)(110136005)(45080400002)(30864003)(7696005)(478600001)(66476007)(66446008)(66556008)(8676002)(66946007)(76116006)(64756008)(54906003)(316002)(4326008)(2906002)(55016003)(83380400001)(84970400001)(33656002)(122000001)(38100700002)(38070700005)(82960400001)(186003)(53546011)(9686003)(6506007)(26005)(86362001)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RFFSVE5TYk8vbGN1L1dSWktuYis4NEVSdlhoUmswbVZJbERiblIvbDROWUxG?= =?utf-8?B?L2dockN3c2l3Y2o2K1F3bUt3eHAyVTJIS3Vvb3lLd1BHRWdQL1Z2VXpiVjNw?= =?utf-8?B?c2JaWmtqWS94cDhHSG5ZTTV3TGNEMHhaSXpXZVd4cUZYK0kxQnM2cVdINGQ3?= =?utf-8?B?dnlOYUNrN3pSWDR2Z2tJd2V5eFpaYkNZeTN0cjF6V25rMDgwS0dkZWIyYUcr?= =?utf-8?B?dng3dExET09DeVVQS3Z2V21rdGFjWXlLbGEwcW5Tb3d4UkU4TkZkUDN1bEJt?= =?utf-8?B?cUpxUWh5RWZtMWxWSDVuMHl5Z1c2VlRLdWJGa2MvdzJjK01FblBQU0NtYnNr?= =?utf-8?B?QjBqV2xucHlZOVM0M2RnNmVQYytyM0QwaXYyYVBEdzVha043WjY4QTRETkZR?= =?utf-8?B?UWkzcUZxRm42S2JhNGhmODZVNVZpWUMzVzFVa2pSc0k3TEtkMzNKSk5nRHJF?= =?utf-8?B?dnU0RUpNdWNVdnNVZ3RYMmJtNmZac0xnMWRLYlgwb21aSi82ZHZhK0FmYlQ5?= =?utf-8?B?U3JHeVoveHF6YlkvM0pTUjM3SnlXM0t2MlJuMWh1SThDMURKZm1tM1pCS0xC?= =?utf-8?B?cGovUzBoeUJMR0lCaE1YaHVqYmRrOFJ3cmt1dmhTendpUTNSVE5QRzNwTW8z?= =?utf-8?B?SCs1RlptT3JaRGZjRmpCT2w5REFFUmJISmloL1lqWFB6T2tvN2dVR1VDZ3RM?= =?utf-8?B?dHJ2bk80MHNzSEhXMkpkM1EycDVpSFZMUkx4WmpMM0RiOVFSMHhKb2RFbGhL?= =?utf-8?B?SlUweGJqUTlnY292azNSYktXMElLSnpEbXJDa1o4Q1BqcnZmOGZjYTloZU5S?= =?utf-8?B?VG5VeUVSSWs0bVFwRmhtYkJMeWZRUFVEeEtWYm1SaWU5QVhJMWJXUkJSQUV1?= =?utf-8?B?T2VZeFd0TlBZTkNYd2VnT1J1TG82enluWEpheGtpRVVXc29KUEE0VkFGMTU5?= =?utf-8?B?bU9HUEV2WE1PNUs1eTB6QzVLa2RaVVp5d2hhK2hCOVNvNDRJNXFxdno4RFMx?= =?utf-8?B?RWtseWl4NmFETXdlSzNHVkFROEJXY0p0WUJpSjQ2c29uUjFZVjN1R01rdTBa?= =?utf-8?B?V2NueVM2UWxKcEJ3WmRUUUw3alQyYmVHK1VpV1FxNFcwOW8rcjJqQXBEOGVm?= =?utf-8?B?ZU1LN0UzVXVJUFhlL3RueEFtWGw1MGd5Y2ZsRHZreHNxZVZFZHFod0QzSlYz?= =?utf-8?B?NE5xTkVubWVMd0tlT09qWXV1aVJVTGdhU1BtbFQ1aXE4d1lBc016U2lsaWtG?= =?utf-8?B?QlVvODNvSGlmS0xadFVKZXZnSUpVUFZ1eWFoMFlzcUxiQVpabWFxbEErbjVi?= =?utf-8?B?dWNMZnNIMkxJcXh5d1lrZC9zS1FXZU9kQ21VcXlPUmRoNlgySjY0ZVByNE9s?= =?utf-8?B?dllJQXJvSktCREd2YTQvMDkvdFBFVlJLNDU3S3ZuTWJpVG9BL21sL1gwcFU5?= =?utf-8?B?TWdld2Z0Vjg0VHRtUDZwdFJkaUl4REZwWU1KaS84WXFJVGFvb3VrbHR3Wlg2?= =?utf-8?B?V1BKWHJXVGdRbFJLRkhmSjdWcTN3c2VLYW90aHBheTBGVXNnUnExUlZrdjR2?= =?utf-8?B?OGlVcngydzNnZ1N6Tkh5U0hHZUcxc1RKNi9JYUlOS2ZIaXJUYWE1amgyaWRO?= =?utf-8?B?ZkpMV1NFU3hlWnI4bVBpK0RGQW4vOUhqVkdzTWd5ZGlIQkl6aS9CRFZuclN5?= =?utf-8?B?OVJKa1hCVjUxL1l2eTgzSk9HVXZYckw1VWFYQzM4QkNHckRaaEd2YUtCY1Ey?= =?utf-8?B?b0dGUHJ1NlVQaXMycFp1bFM1cjhWKzV4SjhXZ2ZUbEt5azAxMlFUMmFBekIv?= =?utf-8?B?NHBWQmxTMEhMWmdxVkRnQmVPbXI0aERPN1V1cUtuMHhtaGlYYjIwdDVtSDZV?= =?utf-8?B?UmZTNWdVNkNHSUpoTnhLVy8yc005UHJQc2c0Miswd2pDb3NqcEpWQTJnRVpi?= =?utf-8?B?TFRCMzlYYi9DcUF0YTh2cU11TEVUdjFVNDVrd21NZUZDTGpyeHp1MjdCTEF3?= =?utf-8?B?b2cwWlRuOXNyOE95VndyWGlqcmsyY0YySGVueTNVQ21POXhJa2ZZNjYyMXg2?= =?utf-8?B?Qjc2OEd2SWZsMlJJajNrUjRxaDk5R1NsYmM4YWxzMnRlQ0VQR3pKa002dEMr?= =?utf-8?Q?TC8U=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: fb6d6a54-ab99-482c-1796-08db10c27a20 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Feb 2023 08:39:26.1524 (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: xfz/4N7BjbHaM8NeqoU1nwH9bYV/dCNZm5Vaq8QiXB9mfdlbyBiq+4OexwAK70ZKC+Ir0faxnCRe4/pfHvTETA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6770 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,SPF_HELO_NONE,SPF_NONE,TXREP 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: Q29vbCwgdGhhbmsgeW91IQ0KDQpIaSBSaWNoYXJkIFMsDQoNCkNvdWxkIHlvdSBwbGVhc2UgaGVs cCB0byBkbyBtZSBhIGZldmVyIGZvciB0aGlzIGNoYW5nZSB3aGVuIHlvdSBmcmVlPyBUaGFuayB5 b3UhDQoNClBhbg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogUmljaGFyZCBC aWVuZXIgPHJndWVudGhlckBzdXNlLmRlPiANClNlbnQ6IEZyaWRheSwgRmVicnVhcnkgMTcsIDIw MjMgMzozNiBQTQ0KVG86IGp1emhlLnpob25nIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4NCkNjOiBp bmNhcm5hdGlvbi5wLmxlZUBvdXRsb29rLmNvbTsgZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc7IGtp dG8uY2hlbmdAc2lmaXZlLmNvbTsgTGksIFBhbjIgPHBhbjIubGlAaW50ZWwuY29tPjsgcmljaGFy ZC5zYW5kaWZvcmRAYXJtLmNvbQ0KU3ViamVjdDogUmU6IFtQQVRDSF0gUklTQy1WOiBCdWdmaXgg Zm9yIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIGFkanVzdG1lbnQNCg0KT24gVGh1LCAxNiBGZWIg MjAyMywganV6aGUuemhvbmcgd3JvdGU6DQoNCj4gVGhhbmtzIGZvciB0aGUgZ3JlYXQgd29yayB0 byBmaXggdGhpcyBpc3N1ZSBmb3IgcnZ2Lkhp77yMcmljaGFyZC4gVGhpcyANCj4gaXMgdGhlIHBh dGNoIHRvIGRpZmZlcmVudGlhdGUgbWFzayBtb2RlIG9mIHNhbWUgYnl0ZXNpemUuIEFkanVzdCB0 aGUgDQo+IHByZWNpc2lvbiBjb3JyZWN0bHkgYWNjb3JkaW5nIHRvIHJ2diBpc2EuIFdvdWxkIHlv dSBtaW5kIGhlbHBpbmcgdXMgDQo+IHdpdGggdGhpcyBwYXRjaCDvvJ8NCj4gU2luY2UgaXTigJhz IHZlcnkgaW1wb3J0YW50IGZvciBydnYgc3VwcG9ydCBpbiBnY2MNCg0KSWYgYWRqdXN0aW5nIHRo ZSBwcmVjaXNpb24gd29ya3MgZmluZSB0aGVuIEkgc3VwcG9zZSB0aGUgcGF0Y2ggbG9va3MgcmVh c29uYWJsZS4gIEknbGwgZGVmZXIgdG8gUmljaGFyZCBTLiB0aG91Z2ggc2luY2UgaGUncyB0aGUg b25lIGtub3dpbmcgdGhlIG1vZGUgc3R1ZmYgYmV0dGVyLiAgSSdkIGhhdmUgaW50ZWdyYXRlZCB0 aGUgcHJlY2lzaW9uIGFkanVzdG1lbnQgd2l0aCB0aGUgQURKVVNUX05JVEVSIGhvb2sgc2luY2Ug dGhhdCBpcyBhbHNvIGRvY3VtZW50ZWQgdG8gYWRqdXN0IHRoZSBwcmVjaXNpb24gYnR3Lg0KDQpS aWNoYXJkLg0KDQo+IFRoYW5rcy4NCj4gLS0tLSBSZXBsaWVkIE1lc3NhZ2UgLS0tLQ0KPiBGcm9t DQo+IGluY2FybmF0aW9uLnAubGVlQG91dGxvb2suY29tPGluY2FybmF0aW9uLnAubGVlQG91dGxv b2suY29tPg0KPiBEYXRlDQo+IDAyLzE2LzIwMjMgMjM6MTINCj4gVG8NCj4gZ2NjLXBhdGNoZXNA Z2NjLmdudS5vcmc8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+DQo+IENjDQo+IGp1emhlLnpob25n QHJpdmFpLmFpPGp1emhlLnpob25nQHJpdmFpLmFpPiwNCj4ga2l0by5jaGVuZ0BzaWZpdmUuY29t PGtpdG8uY2hlbmdAc2lmaXZlLmNvbT4sDQo+IHJndWVudGhlckBzdXNlLmRlPHJndWVudGhlckBz dXNlLmRlPiwNCj4gcGFuMi5saUBpbnRlbC5jb208cGFuMi5saUBpbnRlbC5jb20+DQo+IFN1Ympl Y3QNCj4gW1BBVENIXSBSSVNDLVY6IEJ1Z2ZpeCBmb3IgcnZ2IGJvb2wgbW9kZSBwcmVjaXNpb24g YWRqdXN0bWVudA0KPiBGcm9tOiBQYW4gTGkgPHBhbjIubGlAaW50ZWwuY29tPg0KPiANCj4gwqDC oMKgRml4IHRoZSBidWcgb2YgdGhlIHJ2diBib29sIG1vZGUgcHJlY2lzaW9uIHdpdGggdGhlIGFk anVzdG1lbnQuDQo+IMKgwqDCoFRoZSBiaXRzIHNpemUgb2YgdmJvb2wqX3Qgd2lsbCBiZSBhZGp1 c3RlZCB0bw0KPiDCoMKgwqBbMSwgMiwgNCwgOCwgMTYsIDMyLCA2NF0gYWNjb3JkaW5nIHRvIHRo ZSBydnYgc3BlYyAxLjAgaXNhLiBUaGUNCj4gwqDCoMKgYWRqdXN0ZWQgbW9kZSBwcmVjaXNvbiBv ZiB2Ym9vbCpfdCB3aWxsIGhlbHAgdW5kZXJseWluZyBwYXNzIHRvDQo+IMKgwqDCoG1ha2UgdGhl IHJpZ2h0IGRlY2lzaW9uIGZvciBib3RoIHRoZSBjb3JyZWN0bmVzcyBhbmQgb3B0aW1pemF0aW9u Lg0KPiANCj4gwqDCoMKgR2l2ZW4gYmVsb3cgc2FtcGxlIGNvZGU6DQo+IMKgwqDCoHZvaWQgdGVz dF8xKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpDQo+IMKgwqDC oHsNCj4gwqDCoMKgIMKgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4gwqDCoMKgIMKg dmJvb2wxNl90IHY1ID0gKih2Ym9vbDE2X3QqKWluOw0KPiDCoMKgwqAgwqAqKHZib29sMTZfdCop KG91dCArIDIwMCkgPSB2NTsNCj4gwqDCoMKgIMKgKih2Ym9vbDhfdCopKG91dCArIDEwMCkgPSB2 MjsNCj4gwqDCoMKgfQ0KPiANCj4gwqDCoMKgQmVmb3JlIHRoZSBwcmVjaXNpb24gYWRqdXN0bWVu dDoNCj4gwqDCoMKgYWRkaSDCoMKgwqBhNCxhMSwxMDANCj4gwqDCoMKgdnNldHZsaSBhNSx6ZXJv LGU4LG0xLHRhLG1hDQo+IMKgwqDCoGFkZGkgwqDCoMKgYTEsYTEsMjAwDQo+IMKgwqDCoHZsbS52 IMKgwqB2MjQsMChhMCkNCj4gwqDCoMKgdnNtLnYgwqDCoHYyNCwwKGE0KQ0KPiDCoMKgwqAvLyBO ZWVkIG9uZSB2c2V0dmxpIGFuZCB2bG0udiBmb3IgY29ycmVjdG5lc3MgaGVyZS4NCj4gwqDCoMKg dnNtLnYgwqDCoHYyNCwwKGExKQ0KPiANCj4gwqDCoMKgQWZ0ZXIgdGhlIHByZWNpc2lvbiBhZGp1 c3RtZW50Og0KPiDCoMKgwqBjc3JyIMKgwqDCoHQwLHZsZW5iDQo+IMKgwqDCoHNsbGkgwqDCoMKg dDEsdDAsMQ0KPiDCoMKgwqBjc3JyIMKgwqDCoGEzLHZsZW5iDQo+IMKgwqDCoHN1YiDCoMKgwqDC oHNwLHNwLHQxDQo+IMKgwqDCoHNsbGkgwqDCoMKgYTQsYTMsMQ0KPiDCoMKgwqBhZGQgwqDCoMKg wqBhNCxhNCxzcA0KPiDCoMKgwqBzdWIgwqDCoMKgwqBhMyxhNCxhMw0KPiDCoMKgwqB2c2V0dmxp IGE1LHplcm8sZTgsbTEsdGEsbWENCj4gwqDCoMKgYWRkaSDCoMKgwqBhMixhMSwyMDANCj4gwqDC oMKgdmxtLnYgwqDCoHYyNCwwKGEwKQ0KPiDCoMKgwqB2c20udiDCoMKgdjI0LDAoYTMpDQo+IMKg wqDCoGFkZGkgwqDCoMKgYTEsYTEsMTAwDQo+IMKgwqDCoHZzZXR2bGkgYTQsemVybyxlOCxtZjIs dGEsbWENCj4gwqDCoMKgY3NyciDCoMKgwqB0MCx2bGVuYg0KPiDCoMKgwqB2bG0udiDCoMKgdjI1 LDAoYTMpDQo+IMKgwqDCoHZzbS52IMKgwqB2MjUsMChhMikNCj4gwqDCoMKgc2xsaSDCoMKgwqB0 MSx0MCwxDQo+IMKgwqDCoHZzZXR2bGkgYTUsemVybyxlOCxtMSx0YSxtYQ0KPiDCoMKgwqB2c20u diDCoMKgdjI0LDAoYTEpDQo+IMKgwqDCoGFkZCDCoMKgwqDCoHNwLHNwLHQxDQo+IMKgwqDCoGpy IMKgwqDCoMKgwqByYQ0KPiANCj4gwqDCoMKgSG93ZXZlciwgdGhlcmUgbWF5IGJlIHNvbWUgb3B0 aW1pemF0aW9uIG9wcG9ydHVuYXRlcyBhZnRlcg0KPiDCoMKgwqB0aGUgbW9kZSBwcmVjaXNpb24g YWRqdXN0bWVudC4gSXQgY2FuIGJlIHRva2VuIGNhcmUgb2YgaW4NCj4gwqDCoMKgdGhlIFJJU0Mt ViBiYWNrZW5kIGluIHRoZSB1bmRlcmx5aW5nIHNlcGFydGVkIFBSKHMpLg0KPiANCj4gwqDCoMKg UFIgMTA4MTg1DQo+IMKgwqDCoFBSIDEwODY1NA0KPiANCj4gZ2NjL0NoYW5nZUxvZzoNCj4gDQo+ IMKgwqDCoCogY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZiAoQURKVVNUX1BSRUNJU0lPTik6 DQo+IMKgwqDCoCogY29uZmlnL3Jpc2N2L3Jpc2N2LmNjIChyaXNjdl92X2FkanVzdF9wcmVjaXNp b24pOg0KPiDCoMKgwqAqIGNvbmZpZy9yaXNjdi9yaXNjdi5oIChyaXNjdl92X2FkanVzdF9wcmVj aXNpb24pOg0KPiDCoMKgwqAqIGdlbm1vZGVzLmNjIChBREpVU1RfUFJFQ0lTSU9OKToNCj4gwqDC oMKgKGVtaXRfbW9kZV9hZGp1c3RtZW50cyk6DQo+IA0KPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxv ZzoNCj4gDQo+IMKgwqDCoCogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0xLmM6IE5ldyB0ZXN0 Lg0KPiDCoMKgwqAqIGdjYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMi5jOiBOZXcgdGVzdC4NCj4g wqDCoMKgKiBnY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTMuYzogTmV3IHRlc3QuDQo+IMKgwqDC oCogZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS00LmM6IE5ldyB0ZXN0Lg0KPiDCoMKgwqAqIGdj Yy50YXJnZXQvcmlzY3YvcHIxMDgxODUtNS5jOiBOZXcgdGVzdC4NCj4gwqDCoMKgKiBnY2MudGFy Z2V0L3Jpc2N2L3ByMTA4MTg1LTYuYzogTmV3IHRlc3QuDQo+IMKgwqDCoCogZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS03LmM6IE5ldyB0ZXN0Lg0KPiDCoMKgwqAqIGdjYy50YXJnZXQvcmlzY3Yv cHIxMDgxODUtOC5jOiBOZXcgdGVzdC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFBhbiBMaSA8cGFu Mi5saUBpbnRlbC5jb20+DQo+IC0tLQ0KPiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRl ZiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCDCoDggKysrIA0KPiBnY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LmNjIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHwgMTIgKysrKyANCj4g Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgfCDCoDEgKyBnY2MvZ2VubW9kZXMuY2MgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqANCj4gfCAyNSArKysrKystIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0xLmMgfCA2OCANCj4gKysrKysrKysrKysrKysr KysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmMgfCA2OCANCj4g KysrKysrKysrKysrKysrKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS0zLmMgfCA2OCANCj4gKysrKysrKysrKysrKysrKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9wcjEwODE4NS00LmMgfCA2OCANCj4gKysrKysrKysrKysrKysrKysrIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS01LmMgfCA2OCANCj4gKysrKysrKysrKysr KysrKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS02LmMgfCA2OCAN Cj4gKysrKysrKysrKysrKysrKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEw ODE4NS03LmMgfCA2OCANCj4gKysrKysrKysrKysrKysrKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS04LmMgfCA3NyANCj4gKysrKysrKysrKysrKysrKysrKysrDQo+ IDEyIGZpbGVzIGNoYW5nZWQsIDU5OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pIGNyZWF0 ZSBtb2RlIDEwMDY0NCANCj4gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1 LTEuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3ByMTA4MTg1LTIuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3ByMTA4MTg1LTMuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTQuYw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTUuYw0KPiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTcu Yw0KPiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3By MTA4MTg1LTguYw0KPiANCj4gZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtbW9k ZXMuZGVmDQo+IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1tb2Rlcy5kZWYNCj4gaW5kZXggZDUz MDVlZmE4YTYuLjExMGJkZGNlODUxIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LW1vZGVzLmRlZg0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW1vZGVzLmRlZg0K PiBAQCAtNzIsNiArNzIsMTQgQEAgQURKVVNUX0JZVEVTSVpFIChWTngxNkJJLCByaXNjdl92ZWN0 b3JfY2h1bmtzICogDQo+IHJpc2N2X2J5dGVzX3Blcl92ZWN0b3JfY2h1bmspOyBBREpVU1RfQllU RVNJWkUgKFZOeDMyQkksIA0KPiByaXNjdl92ZWN0b3JfY2h1bmtzICogcmlzY3ZfYnl0ZXNfcGVy X3ZlY3Rvcl9jaHVuayk7IEFESlVTVF9CWVRFU0laRSANCj4gKFZOeDY0QkksIHJpc2N2X3ZfYWRq dXN0X251bml0cyAoVk54NjRCSW1vZGUsIDgpKTsNCj4gDQo+ICtBREpVU1RfUFJFQ0lTSU9OIChW TngxQkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MUJJbW9kZSwgMSkpOyANCj4gK0FE SlVTVF9QUkVDSVNJT04gKFZOeDJCSSwgcmlzY3Zfdl9hZGp1c3RfcHJlY2lzaW9uIChWTngyQklt b2RlLCAyKSk7IA0KPiArQURKVVNUX1BSRUNJU0lPTiAoVk54NEJJLCByaXNjdl92X2FkanVzdF9w cmVjaXNpb24gKFZOeDRCSW1vZGUsIDQpKTsgDQo+ICtBREpVU1RfUFJFQ0lTSU9OIChWTng4Qkks IHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54OEJJbW9kZSwgOCkpOyANCj4gK0FESlVTVF9Q UkVDSVNJT04gKFZOeDE2QkksIHJpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54MTZCSW1vZGUs IA0KPiArMTYpKTsgQURKVVNUX1BSRUNJU0lPTiAoVk54MzJCSSwgcmlzY3Zfdl9hZGp1c3RfcHJl Y2lzaW9uIA0KPiArKFZOeDMyQkltb2RlLCAzMikpOyBBREpVU1RfUFJFQ0lTSU9OIChWTng2NEJJ LCANCj4gK3Jpc2N2X3ZfYWRqdXN0X3ByZWNpc2lvbiAoVk54NjRCSW1vZGUsIDY0KSk7DQo+ICsN Cj4gLyoNCj4gwqDCoMKgfCBNb2RlIMKgwqDCoMKgwqDCoMKgfCBNSU5fVkxFTj0zMiB8IE1JTl9W TEVOPTMyIHwgTUlOX1ZMRU49NjQgfCANCj4gTUlOX1ZMRU49NjQgfA0KPiDCoMKgwqB8IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHwgTE1VTCDCoMKgwqDCoMKgwqDCoHwgU0VXL0xNVUwgwqDCoMKg fCBMTVVMIMKgwqDCoMKgwqDCoMKgfCBTRVcvTE1VTCDCoMKgwqANCj4gfCBkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgDQo+ IGluZGV4IGRlM2UxZjkwM2M3Li5jYmU2NmMwZTM1YiAxMDA2NDQNCj4gLS0tIGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi5jYw0KPiArKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjDQo+IEBA IC0xMDAzLDYgKzEwMDMsMTggQEAgcmlzY3Zfdl9hZGp1c3RfbnVuaXRzIChtYWNoaW5lX21vZGUg bW9kZSwgaW50IA0KPiBzY2FsZSkNCj4gwqDCoHJldHVybiBzY2FsZTsNCj4gfQ0KPiANCj4gKy8q IENhbGwgZnJvbSBBREpVU1RfUFJFQ0lTSU9OIGluIHJpc2N2LW1vZGVzLmRlZi4gwqBSZXR1cm4g dGhlIGNvcnJlY3QNCj4gKyDCoMKgUFJFQ0lTSU9OIHNpemUgZm9yIGNvcnJlc3BvbmRpbmcgbWFj aGluZV9tb2RlLiDCoCovDQo+ICsNCj4gK3BvbHlfaW50NjQNCj4gK3Jpc2N2X3ZfYWRqdXN0X3By ZWNpc2lvbiAobWFjaGluZV9tb2RlIG1vZGUsIGludCBzY2FsZSkgew0KPiArIMKgaWYgKHJpc2N2 X3ZfZXh0X3ZlY3Rvcl9tb2RlX3AgKG1vZGUpKQ0KPiArIMKgwqDCoHJldHVybiByaXNjdl92ZWN0 b3JfY2h1bmtzICogc2NhbGU7DQo+ICsNCj4gKyDCoHJldHVybiBzY2FsZTsNCj4gK30NCj4gKw0K PiAvKiBSZXR1cm4gdHJ1ZSBpZiBYIGlzIGEgdmFsaWQgYWRkcmVzcyBmb3IgbWFjaGluZSBtb2Rl IE1PREUuIMKgSWYgaXQgDQo+IGlzLA0KPiDCoMKgwqBmaWxsIGluIElORk8gYXBwcm9wcmlhdGVs eS4gwqBTVFJJQ1RfUCBpcyB0cnVlIGlmIFJFR19PS19TVFJJQ1QgaXMgDQo+IGluDQo+IMKgwqDC oGVmZmVjdC4gwqAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5oIGluZGV4IA0KPiA1YmM3ZjJmNDY3ZC4uMTViOTMxN2E4 Y2UgMTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuaA0KPiArKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LmgNCj4gQEAgLTEwMjUsNiArMTAyNSw3IEBAIGV4dGVybiB1bnNp Z25lZCByaXNjdl9zdGFja19ib3VuZGFyeTsgZXh0ZXJuIA0KPiB1bnNpZ25lZCByaXNjdl9ieXRl c19wZXJfdmVjdG9yX2NodW5rOyBleHRlcm4gcG9seV91aW50MTYgDQo+IHJpc2N2X3ZlY3Rvcl9j aHVua3M7IGV4dGVybiBwb2x5X2ludDY0IHJpc2N2X3ZfYWRqdXN0X251bml0cyAoZW51bSANCj4g bWFjaGluZV9tb2RlLCBpbnQpOw0KPiArZXh0ZXJuIHBvbHlfaW50NjQgcmlzY3Zfdl9hZGp1c3Rf cHJlY2lzaW9uIChlbnVtIG1hY2hpbmVfbW9kZSwgaW50KTsNCj4gLyogVGhlIG51bWJlciBvZiBi aXRzIGFuZCBieXRlcyBpbiBhIFJWViB2ZWN0b3IuIMKgKi8gI2RlZmluZSANCj4gQklUU19QRVJf UklTQ1ZfVkVDVE9SIChwb2x5X3VpbnQxNiAocmlzY3ZfdmVjdG9yX2NodW5rcyAqIA0KPiByaXNj dl9ieXRlc19wZXJfdmVjdG9yX2NodW5rICogOCkpICNkZWZpbmUgQllURVNfUEVSX1JJU0NWX1ZF Q1RPUiANCj4gKHBvbHlfdWludDE2IChyaXNjdl92ZWN0b3JfY2h1bmtzICoNCj4gcmlzY3ZfYnl0 ZXNfcGVyX3ZlY3Rvcl9jaHVuaykpDQo+IGRpZmYgLS1naXQgYS9nY2MvZ2VubW9kZXMuY2MgYi9n Y2MvZ2VubW9kZXMuY2MgaW5kZXggDQo+IDJkNDE4ZjA5YWFiLi4xMmY0ZTYzMzVlNiAxMDA2NDQN Cj4gLS0tIGEvZ2NjL2dlbm1vZGVzLmNjDQo+ICsrKyBiL2djYy9nZW5tb2Rlcy5jYw0KPiBAQCAt MTE0LDYgKzExNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgbW9kZV9hZGp1c3QgKmFkal9hbGlnbm1lbnQ7 IHN0YXRpYyANCj4gc3RydWN0IG1vZGVfYWRqdXN0ICphZGpfZm9ybWF0OyBzdGF0aWMgc3RydWN0 IG1vZGVfYWRqdXN0ICphZGpfaWJpdDsgDQo+IHN0YXRpYyBzdHJ1Y3QgbW9kZV9hZGp1c3QgKmFk al9mYml0Ow0KPiArc3RhdGljIHN0cnVjdCBtb2RlX2FkanVzdCAqYWRqX3ByZWNpc2lvbjsNCj4g DQo+IC8qIE1vZGUgY2xhc3Mgb3BlcmF0aW9ucy4gwqAqLw0KPiBzdGF0aWMgZW51bSBtb2RlX2Ns YXNzDQo+IEBAIC04MTksNiArODIwLDcgQEAgbWFrZV92ZWN0b3JfbW9kZSAoZW51bSBtb2RlX2Ns YXNzIGJjbGFzcywgI2RlZmluZSANCj4gQURKVVNUX05VTklUUyhNLCBYKSDCoMKgwqBfQUREX0FE SlVTVCAobnVuaXRzLCBNLCBYLCBSQU5ET00sIFJBTkRPTSkgDQo+ICNkZWZpbmUgQURKVVNUX0JZ VEVTSVpFKE0sIFgpIMKgX0FERF9BREpVU1QgKGJ5dGVzaXplLCBNLCBYLCBSQU5ET00sIA0KPiBS QU5ET00pICNkZWZpbmUgQURKVVNUX0FMSUdOTUVOVChNLCBYKSBfQUREX0FESlVTVCAoYWxpZ25t ZW50LCBNLCBYLCANCj4gUkFORE9NLCBSQU5ET00pDQo+ICsjZGVmaW5lIEFESlVTVF9QUkVDSVNJ T04oTSwgWCkgX0FERF9BREpVU1QgKHByZWNpc2lvbiwgTSwgWCwgUkFORE9NLA0KPiBSQU5ET00p DQo+ICNkZWZpbmUgQURKVVNUX0ZMT0FUX0ZPUk1BVChNLCBYKSDCoMKgwqBfQUREX0FESlVTVCAo Zm9ybWF0LCBNLCBYLCBGTE9BVCwNCj4gRkxPQVQpDQo+ICNkZWZpbmUgQURKVVNUX0lCSVQoTSwg WCkgwqBfQUREX0FESlVTVCAoaWJpdCwgTSwgWCwgQUNDVU0sIFVBQ0NVTSkgDQo+ICNkZWZpbmUg QURKVVNUX0ZCSVQoTSwgWCkgwqBfQUREX0FESlVTVCAoZmJpdCwgTSwgWCwgRlJBQ1QsIFVBQ0NV TSkgQEAgDQo+IC0xODI5LDcgKzE4MzEsMTUgQEAgZW1pdF9tb2RlX2FkanVzdG1lbnRzICh2b2lk KQ0KPiDCoMKgwqAgwqDCoMKgwqDCoCIgKG1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXSwgbW9kZV9u dW5pdHNbRV8lc21vZGVdKTtcbiIsDQo+IMKgwqDCoCDCoMKgwqDCoMKgbS0+bmFtZSwgbS0+bmFt ZSk7DQo+IMKgwqDCoMKgwqDCoHByaW50ZiAoIiDCoMKgwqBtb2RlX3ByZWNpc2lvbltFXyVzbW9k ZV0gPSBwcyAqIG9sZF9mYWN0b3I7XG4iLCANCj4gbS0+bmFtZSk7DQo+IC0gwqDCoMKgwqDCoHBy aW50ZiAoIiDCoMKgwqBtb2RlX3NpemVbRV8lc21vZGVdID0gZXhhY3RfZGl2IA0KPiAobW9kZV9w cmVjaXNpb25bRV8lc21vZGVdLCINCj4gKyDCoMKgwqDCoMKgLyogTm9ybWFsaXplIHRoZSBzaXpl IHRvIDEgaWYgcHJlY2lzb24gaXMgbGVzcyB0aGFuIEJJVFNfUEVSX1VOSVQuDQo+IMKgKi8NCj4g KyDCoMKgwqDCoMKgcHJpbnRmICgiIMKgwqDCoHBvbHlfdWludDE2IHNpemVfb25lID0gIg0KPiAr IMKgwqDCoCDCoMKgwqDCoMKgIm1vZGVfcHJlY2lzaW9uW0VfJXNtb2RlXS5pc19jb25zdGFudCAo KVxuIiwgbS0+bmFtZSk7DQo+ICsgwqDCoMKgwqDCoHByaW50ZiAoIiDCoMKgwqDCoMKgPyBwb2x5 X3VpbnQxNiAoMSwgMCkgOiBwb2x5X3VpbnQxNiAoMSwgMSk7XG4iKTsNCj4gKyDCoMKgwqDCoMKg cHJpbnRmICgiIMKgwqDCoGlmIChrbm93bl9sdCAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCAi DQo+ICsgwqDCoMKgIMKgwqDCoMKgwqAic2l6ZV9vbmUgKiBCSVRTX1BFUl9VTklUKSlcbiIsIG0t Pm5hbWUpOw0KPiArIMKgwqDCoMKgwqBwcmludGYgKCIgwqDCoMKgwqDCoG1vZGVfc2l6ZVtFXyVz bW9kZV0gPSBzaXplX29uZTtcbiIsIG0tPm5hbWUpOw0KPiArIMKgwqDCoMKgwqBwcmludGYgKCIg wqDCoMKgZWxzZVxuIik7DQo+ICsgwqDCoMKgwqDCoHByaW50ZiAoIiDCoMKgwqDCoMKgbW9kZV9z aXplW0VfJXNtb2RlXSA9IGV4YWN0X2Rpdg0KPiAobW9kZV9wcmVjaXNpb25bRV8lc21vZGVdLCIN Cj4gwqDCoMKgIMKgwqDCoMKgwqAiIEJJVFNfUEVSX1VOSVQpO1xuIiwgbS0+bmFtZSwgbS0+bmFt ZSk7DQo+IMKgwqDCoMKgwqDCoHByaW50ZiAoIiDCoMKgwqBtb2RlX251bml0c1tFXyVzbW9kZV0g PSBwcztcbiIsIG0tPm5hbWUpOw0KPiDCoMKgwqDCoMKgwqBwcmludGYgKCIgwqDCoMKgYWRqdXN0 X21vZGVfbWFzayAoRV8lc21vZGUpO1xuIiwgbS0+bmFtZSk7IEBAIA0KPiAtMTk2Myw2ICsxOTcz LDE5IEBAIGVtaXRfbW9kZV9hZGp1c3RtZW50cyAodm9pZCkNCj4gwqDCoMKgwqBwcmludGYgKCJc biDCoC8qICVzOiVkICovXG4gwqBSRUFMX01PREVfRk9STUFUIChFXyVzbW9kZSkgPSAlcztcbiIs DQo+IMKgwqDCoCDCoMKgwqBhLT5maWxlLCBhLT5saW5lLCBhLT5tb2RlLT5uYW1lLCBhLT5hZGp1 c3RtZW50KTsNCj4gDQo+ICsgwqAvKiBBZGp1c3QgcHJlY2lzaW9uIHRvIHRoZSBhY3R1YWwgYml0 cyBzaXplLiDCoCovDQo+ICsgwqBmb3IgKGEgPSBhZGpfcHJlY2lzaW9uOyBhOyBhID0gYS0+bmV4 dCkNCj4gKyDCoMKgwqBzd2l0Y2ggKGEtPm1vZGUtPmNsKQ0KPiArIMKgwqDCoMKgwqB7DQo+ICsg wqDCoMKgY2FzZSBNT0RFX1ZFQ1RPUl9CT09MOg0KPiArIMKgwqDCoCDCoHByaW50ZiAoIlxuIMKg LyogJXM6JWQuIMKgKi9cbiDCoHBzID0gJXM7XG4iLCBhLT5maWxlLCBhLT5saW5lLA0KPiArIMKg wqDCoCDCoMKgwqAgwqBhLT5hZGp1c3RtZW50KTsNCj4gKyDCoMKgwqAgwqBwcmludGYgKCIgwqBt b2RlX3ByZWNpc2lvbltFXyVzbW9kZV0gPSBwcztcbiIsIGEtPm1vZGUtPm5hbWUpOw0KPiArIMKg wqDCoCDCoGJyZWFrOw0KPiArIMKgwqDCoGRlZmF1bHQ6DQo+ICsgwqDCoMKgIMKgYnJlYWs7DQo+ ICsgwqDCoMKgwqDCoH0NCj4gKw0KPiDCoMKgcHV0cyAoIn0iKTsNCj4gfQ0KPiANCj4gZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0xLmMNCj4gYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMS5jDQo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5lNzA5NjBjNWI2ZA0KPiAtLS0gL2Rldi9u dWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0xLmMN Cj4gQEAgLTAsMCArMSw2OCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsg ZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4gKw0KPiAr I2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMV90 aGVuX3Zib29sMihpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSAN Cj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPiArIMKgwqDC oHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMV90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAyMDApID0g djI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wxX3RoZW5fdmJvb2w0KGludDhf dCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiArIMKgwqDC oHZib29sMV90IHYxID0gKih2Ym9vbDFfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w0X3QgdjIgPSAq KHZib29sNF90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAxMDApID0g djE7DQo+ICsgwqDCoMKgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0K PiArdm9pZA0KPiArdGVzdF92Ym9vbDFfdGhlbl92Ym9vbDgoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wxX3QgdjEgPSAq KHZib29sMV90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3QqKWluOw0K PiArDQo+ICsgwqDCoMKgKih2Ym9vbDFfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAq KHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0 X3Zib29sMV90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3Ry aWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsN Cj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+ICsNCj4gKyDCoMKg wqAqKHZib29sMV90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxNl90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMV90aGVu X3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ ICt7DQo+ICsgwqDCoMKgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4gKyDCoMKgwqB2 Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMV90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wzMl90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sNjQoaW50 OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDC oMKgdmJvb2wxX3QgdjEgPSAqKHZib29sMV90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDY0X3QgdjIg PSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMV90Kikob3V0ICsgMTAw KSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w2NF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0K PiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlc cytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1hfSA2IH0gfSAqLw0K PiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2Et eF1bMC05XSssXHMqemVybyxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVy byxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxz KmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgs XHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIA0KPiAre3ZsbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0N Cj4gMTIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ ICt7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxOCB9IH0gKi8NCj4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS0yLmMN Cj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMi5jDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5kY2M3YTY0NGE4OA0KPiAtLS0g L2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS0yLmMNCj4gQEAgLTAsMCArMSw2OCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4g Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4g Kw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zi b29sMl90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qg b3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDJfdCB2MSA9ICoodmJvb2wyX3QqKWluOw0KPiAr IMKgwqDCoHZib29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZi b29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAy MDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2w0 KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiAr IMKgwqDCoHZib29sMl90IHYxID0gKih2Ym9vbDJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w0X3Qg djIgPSAqKHZib29sNF90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAx MDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30N Cj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDJfdGhlbl92Ym9vbDgoaW50OF90ICogcmVzdHJp Y3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wyX3Qg djEgPSAqKHZib29sMl90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDhfdCB2MiA9ICoodmJvb2w4X3Qq KWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDJfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDC oMKgwqAqKHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ ICt0ZXN0X3Zib29sMl90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAq IHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90 KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+ICsNCj4g KyDCoMKgwqAqKHZib29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wx Nl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29s Ml90aGVuX3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91 dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4gKyDC oMKgwqB2Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZi b29sMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wzMl90Kikob3V0ICsg MjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMl90aGVuX3Zib29s NjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ ICsgwqDCoMKgdmJvb2wyX3QgdjEgPSAqKHZib29sMl90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDY0 X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMl90Kikob3V0 ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w2NF90Kikob3V0ICsgMjAwKSA9IHYyOw0K PiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3Zz ZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSA2IH0g fSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxp XHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0gMSB9IH0gKi8N Cj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1th LXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVsw LTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSss XHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZsbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05 XStcKX0NCj4gMTIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMgDQo+ICt7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxNyB9IH0g Ki8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4 NS0zLmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtMy5jDQo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi4zYWYwNTEzZTAwNg0K PiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS0zLmMNCj4gQEAgLTAsMCArMSw2OCBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0g Ki8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0g Ki8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0 ZXN0X3Zib29sNF90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVz dHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDRfdCB2MSA9ICoodmJvb2w0X3QqKWlu Ow0KPiArIMKgwqDCoHZib29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47DQo+ICsNCj4gKyDCoMKg wqAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShv dXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w0X3RoZW5f dmJvb2wyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiAr ew0KPiArIMKgwqDCoHZib29sNF90IHYxID0gKih2Ym9vbDRfdCopaW47DQo+ICsgwqDCoMKgdmJv b2wyX3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w0X3QqKShv dXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDJfdCopKG91dCArIDIwMCkgPSB2MjsN Cj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDRfdGhlbl92Ym9vbDgoaW50OF90ICog cmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJv b2w0X3QgdjEgPSAqKHZib29sNF90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDhfdCB2MiA9ICoodmJv b2w4X3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsN Cj4gKyDCoMKgwqAqKHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2 b2lkDQo+ICt0ZXN0X3Zib29sNF90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGlu dDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2w0X3QgdjEgPSAqKHZi b29sNF90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZfdCopaW47DQo+ ICsNCj4gKyDCoMKgwqAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoo dmJvb2wxNl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0 X3Zib29sNF90aGVuX3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3Ry aWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90KilpbjsN Cj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47DQo+ICsNCj4gKyDCoMKg wqAqKHZib29sNF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wzMl90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sNF90aGVu X3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ ICt7DQo+ICsgwqDCoMKgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90KilpbjsNCj4gKyDCoMKgwqB2 Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sNF90 Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w2NF90Kikob3V0ICsgMjAwKSA9 IHYyOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMN Cj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1h fSA2IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2 c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptOCxccyp0YSxccyptYX0gMSB9 IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZs aVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTQsXHMqdGEsXHMqbWF9IDEgfSB9ICov DQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytb YS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1b MC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTld Kyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZsbVwudlxzK3ZbMC05XSssXHMqMFwoW2Et eF1bMC05XStcKX0NCj4gMTIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgDQo+ICt7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAx NiB9IH0gKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9w cjEwODE4NS00LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUt NC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi5lYTNjMzYw ZDc1Ng0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS00LmMNCj4gQEAgLTAsMCArMSw2OCBAQA0KPiArLyogeyBkZy1kbyBjb21w aWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAt TzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lk DQo+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90 ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4 X3QqKWluOw0KPiArIMKgwqDCoHZib29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47DQo+ICsNCj4g KyDCoMKgwqAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wx X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2w4 X3RoZW5fdmJvb2wyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQp IA0KPiArew0KPiArIMKgwqDCoHZib29sOF90IHYxID0gKih2Ym9vbDhfdCopaW47DQo+ICsgwqDC oMKgdmJvb2wyX3QgdjIgPSAqKHZib29sMl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2w4 X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDJfdCopKG91dCArIDIwMCkg PSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDhfdGhlbl92Ym9vbDQoaW50 OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDC oMKgdmJvb2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDRfdCB2MiA9 ICoodmJvb2w0X3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDhfdCopKG91dCArIDEwMCkg PSB2MTsNCj4gKyDCoMKgwqAqKHZib29sNF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiAr DQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3Qg aW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2w4X3QgdjEg PSAqKHZib29sOF90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjIgPSAqKHZib29sMTZfdCop aW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKg wqDCoCoodmJvb2wxNl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ ICt0ZXN0X3Zib29sOF90aGVuX3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAq IHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2w4X3QgdjEgPSAqKHZib29sOF90 KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjIgPSAqKHZib29sMzJfdCopaW47DQo+ICsNCj4g KyDCoMKgwqAqKHZib29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wz Ml90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29s OF90aGVuX3Zib29sNjQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91 dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2w4X3QgdjEgPSAqKHZib29sOF90KilpbjsNCj4gKyDC oMKgwqB2Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZi b29sOF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w2NF90Kikob3V0ICsg MjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRh LFxzKm1hfSA2IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz DQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccypt YX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7 dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEg fSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2 bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAq Lw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMr W2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14 XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mNCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZsbVwudlxzK3ZbMC05XSssXHMq MFwoW2EteF1bMC05XStcKX0NCj4gMTIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgDQo+ICt7dnNtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wp fQ0KPiAxNSB9IH0gKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9wcjEwODE4NS01LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcHIx MDgxODUtNS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwLi45 ZmM2NTlkMjQwMg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9wcjEwODE4NS01LmMNCj4gQEAgLTAsMCArMSw2OCBAQA0KPiArLyogeyBkZy1k byBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3YgLW1hYmk9 bHA2NCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KPiArDQo+ ICt2b2lkDQo+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDEoaW50OF90ICogcmVzdHJpY3QgaW4s IGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wxNl90IHYxID0g Kih2Ym9vbDE2X3QqKWluOw0KPiArIMKgwqDCoHZib29sMV90IHYyID0gKih2Ym9vbDFfdCopaW47 DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKg wqAqKHZib29sMV90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0 ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDIoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3Qq KWluOw0KPiArIMKgwqDCoHZib29sMl90IHYyID0gKih2Ym9vbDJfdCopaW47DQo+ICsNCj4gKyDC oMKgwqAqKHZib29sMTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sMl90 Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMTZf dGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkg DQo+ICt7DQo+ICsgwqDCoMKgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPiArIMKg wqDCoHZib29sNF90IHYyID0gKih2Ym9vbDRfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29s MTZfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sNF90Kikob3V0ICsgMjAw KSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDgo aW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IG91dCkgDQo+ICt7DQo+ICsg wqDCoMKgdmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPiArIMKgwqDCoHZib29sOF90 IHYyID0gKih2Ym9vbDhfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMTZfdCopKG91dCAr IDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sOF90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiAr fQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMTZfdGhlbl92Ym9vbDMyKGludDhfdCAqIHJl c3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCANCj4gK291dCkgew0KPiArIMKgwqDCoHZib29s MTZfdCB2MSA9ICoodmJvb2wxNl90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjIgPSAqKHZi b29sMzJfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMTZfdCopKG91dCArIDEwMCkgPSB2 MTsNCj4gKyDCoMKgwqAqKHZib29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0K PiArdm9pZA0KPiArdGVzdF92Ym9vbDE2X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3QgDQo+ICtvdXQpIHsNCj4gKyDCoMKgwqB2Ym9vbDE2X3QgdjEg PSAqKHZib29sMTZfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w2NF90IHYyID0gKih2Ym9vbDY0X3Qq KWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDE2X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsg wqDCoMKgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSA2IH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMq emVybyxccyplOCxccyptMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt MSxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxz KnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEs XHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg DQo+ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxMiB9IH0gKi8N Cj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2c21cLnZccyt2 WzAtOV0rLFxzKjBcKFthLXhdWzAtOV0rXCl9DQo+IDE0IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPiBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS02LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjk4Mjc1ZTUyNjdkDQo+IC0tLSAvZGV2L251bGwNCj4g KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1LTYuYw0KPiBAQCAt MCwwICsxLDY4IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPiArLyogeyBkZy1vcHRp b25zICItbWFyY2g9cnY2NGdjdiAtbWFiaT1scDY0IC1PMyIgfSAqLw0KPiArDQo+ICsjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiDQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zi b29sMShpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sN Cj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+ICsgwqDCoMKgdmJv b2wxX3QgdjIgPSAqKHZib29sMV90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wzMl90Kiko b3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7 DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sMihpbnQ4X3Qg KiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2 Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjIgPSAq KHZib29sMl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9 IHYxOw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsN Cj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sNChpbnQ4X3QgKiByZXN0cmljdCBp biwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjEg PSAqKHZib29sMzJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w0X3QgdjIgPSAqKHZib29sNF90Kilp bjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKg wqDCoCoodmJvb2w0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4g K3Rlc3RfdmJvb2wzMl90aGVuX3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICog cmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjEgPSAqKHZib29sMzJf dCopaW47DQo+ICsgwqDCoMKgdmJvb2w4X3QgdjIgPSAqKHZib29sOF90KilpbjsNCj4gKw0KPiAr IMKgwqDCoCoodmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w4 X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wz Ml90aGVuX3Zib29sMTYoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IA0K PiArb3V0KSB7DQo+ICsgwqDCoMKgdmJvb2wzMl90IHYxID0gKih2Ym9vbDMyX3QqKWluOw0KPiAr IMKgwqDCoHZib29sMTZfdCB2MiA9ICoodmJvb2wxNl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoo dmJvb2wzMl90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxNl90Kikob3V0 ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMzJfdGhlbl92 Ym9vbDY0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCANCj4gK291dCkg ew0KPiArIMKgwqDCoHZib29sMzJfdCB2MSA9ICoodmJvb2wzMl90KilpbjsNCj4gKyDCoMKgwqB2 Ym9vbDY0X3QgdjIgPSAqKHZib29sNjRfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMzJf dCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sNjRfdCopKG91dCArIDIwMCkg PSB2MjsNCj4gK30NCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz DQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjQsXHMqdGEsXHMq bWF9IDYgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4g e3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm04LFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0 dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptNCxccyp0YSxccyptYX0gMSB9IH0g Ki8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxz K1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14 XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05 XSssXHMqemVybyxccyplOCxccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyANCj4gK3t2bG1cLnZccyt2WzAtOV0rLFxzKjBcKFth LXhdWzAtOV0rXCl9DQo+IDEyIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIA0KPiAre3ZzbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0NCj4g MTMgfSB9ICovDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cHIxMDgxODUtNy5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3ByMTA4MTg1 LTcuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uOGY2ZjBi MTFmMDkNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcHIxMDgxODUtNy5jDQo+IEBAIC0wLDAgKzEsNjggQEANCj4gKy8qIHsgZGctZG8gY29t cGlsZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2IC1tYWJpPWxwNjQg LU8zIiB9ICovDQo+ICsNCj4gKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCj4gKw0KPiArdm9p ZA0KPiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2wxKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4 X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiArIMKgwqDCoHZib29sNjRfdCB2MSA9ICoodmJv b2w2NF90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDFfdCB2MiA9ICoodmJvb2wxX3QqKWluOw0KPiAr DQo+ICsgwqDCoMKgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2 Ym9vbDFfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92 Ym9vbDY0X3RoZW5fdmJvb2wyKGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmlj dCBvdXQpIA0KPiArew0KPiArIMKgwqDCoHZib29sNjRfdCB2MSA9ICoodmJvb2w2NF90KilpbjsN Cj4gKyDCoMKgwqB2Ym9vbDJfdCB2MiA9ICoodmJvb2wyX3QqKWluOw0KPiArDQo+ICsgwqDCoMKg Kih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDJfdCopKG91 dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDY0X3RoZW5f dmJvb2w0KGludDhfdCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiAr ew0KPiArIMKgwqDCoHZib29sNjRfdCB2MSA9ICoodmJvb2w2NF90KilpbjsNCj4gKyDCoMKgwqB2 Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDY0X3Qq KShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDRfdCopKG91dCArIDIwMCkgPSB2 MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2w4KGludDhf dCAqIHJlc3RyaWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiArIMKgwqDC oHZib29sNjRfdCB2MSA9ICoodmJvb2w2NF90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDhfdCB2MiA9 ICoodmJvb2w4X3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDAp ID0gdjE7DQo+ICsgwqDCoMKgKih2Ym9vbDhfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4g Kw0KPiArdm9pZA0KPiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2wxNihpbnQ4X3QgKiByZXN0cmlj dCBpbiwgaW50OF90ICogcmVzdHJpY3QgDQo+ICtvdXQpIHsNCj4gKyDCoMKgwqB2Ym9vbDY0X3Qg djEgPSAqKHZib29sNjRfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wxNl90IHYyID0gKih2Ym9vbDE2 X3QqKWluOw0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ ICsgwqDCoMKgKih2Ym9vbDE2X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gK3Zv aWQNCj4gK3Rlc3RfdmJvb2w2NF90aGVuX3Zib29sMzIoaW50OF90ICogcmVzdHJpY3QgaW4sIGlu dDhfdCAqIHJlc3RyaWN0IA0KPiArb3V0KSB7DQo+ICsgwqDCoMKgdmJvb2w2NF90IHYxID0gKih2 Ym9vbDY0X3QqKWluOw0KPiArIMKgwqDCoHZib29sMzJfdCB2MiA9ICoodmJvb2wzMl90KilpbjsN Cj4gKw0KPiArIMKgwqDCoCoodmJvb2w2NF90Kikob3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDC oCoodmJvb2wzMl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm1mOCxccyp0YSxccyptYX0gNiB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8s XHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4 LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccypt Mixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMq dGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxc cyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0K PiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRhLFxzKm1h fSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAr e3ZsbVwudlxzK3ZbMC05XSssXHMqMFwoW2EteF1bMC05XStcKX0NCj4gMTIgfSB9ICovDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ICt7dnNtXC52XHMrdlswLTld KyxccyowXChbYS14XVswLTldK1wpfQ0KPiAxMiB9IH0gKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS04LmMNCj4gYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcHIxMDgxODUtOC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4IDAwMDAwMDAwMDAwLi5kOTY5NTlkZDA2NA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9wcjEwODE4NS04LmMNCj4gQEAgLTAsMCAr MSw3NyBAQA0KPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAi LW1hcmNoPXJ2NjRnY3YgLW1hYmk9bHA2NCAtTzMiIH0gKi8NCj4gKw0KPiArI2luY2x1ZGUgInJp c2N2X3ZlY3Rvci5oIg0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMV90aGVuX3Zib29sMShp bnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4gK3sNCj4gKyDC oMKgwqB2Ym9vbDFfdCB2MSA9ICoodmJvb2wxX3QqKWluOw0KPiArIMKgwqDCoHZib29sMV90IHYy ID0gKih2Ym9vbDFfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMV90Kikob3V0ICsgMTAw KSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxX3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wyX3RoZW5fdmJvb2wyKGludDhfdCAqIHJlc3RyaWN0 IGluLCBpbnQ4X3QgKiByZXN0cmljdCBvdXQpIA0KPiArew0KPiArIMKgwqDCoHZib29sMl90IHYx ID0gKih2Ym9vbDJfdCopaW47DQo+ICsgwqDCoMKgdmJvb2wyX3QgdjIgPSAqKHZib29sMl90Kilp bjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wyX3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDC oMKgKih2Ym9vbDJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiArdm9pZA0KPiAr dGVzdF92Ym9vbDRfdGhlbl92Ym9vbDQoaW50OF90ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJl c3RyaWN0IG91dCkgDQo+ICt7DQo+ICsgwqDCoMKgdmJvb2w0X3QgdjEgPSAqKHZib29sNF90Kilp bjsNCj4gKyDCoMKgwqB2Ym9vbDRfdCB2MiA9ICoodmJvb2w0X3QqKWluOw0KPiArDQo+ICsgwqDC oMKgKih2Ym9vbDRfdCopKG91dCArIDEwMCkgPSB2MTsNCj4gKyDCoMKgwqAqKHZib29sNF90Kiko b3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0KPiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sOF90aGVu X3Zib29sOChpbnQ4X3QgKiByZXN0cmljdCBpbiwgaW50OF90ICogcmVzdHJpY3Qgb3V0KSANCj4g K3sNCj4gKyDCoMKgwqB2Ym9vbDhfdCB2MSA9ICoodmJvb2w4X3QqKWluOw0KPiArIMKgwqDCoHZi b29sOF90IHYyID0gKih2Ym9vbDhfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sOF90Kiko b3V0ICsgMTAwKSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2w4X3QqKShvdXQgKyAyMDApID0gdjI7 DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3Rlc3RfdmJvb2wxNl90aGVuX3Zib29sMTYoaW50OF90 ICogcmVzdHJpY3QgaW4sIGludDhfdCAqIHJlc3RyaWN0IA0KPiArb3V0KSB7DQo+ICsgwqDCoMKg dmJvb2wxNl90IHYxID0gKih2Ym9vbDE2X3QqKWluOw0KPiArIMKgwqDCoHZib29sMTZfdCB2MiA9 ICoodmJvb2wxNl90KilpbjsNCj4gKw0KPiArIMKgwqDCoCoodmJvb2wxNl90Kikob3V0ICsgMTAw KSA9IHYxOw0KPiArIMKgwqDCoCoodmJvb2wxNl90Kikob3V0ICsgMjAwKSA9IHYyOw0KPiArfQ0K PiArDQo+ICt2b2lkDQo+ICt0ZXN0X3Zib29sMzJfdGhlbl92Ym9vbDMyKGludDhfdCAqIHJlc3Ry aWN0IGluLCBpbnQ4X3QgKiByZXN0cmljdCANCj4gK291dCkgew0KPiArIMKgwqDCoHZib29sMzJf dCB2MSA9ICoodmJvb2wzMl90KilpbjsNCj4gKyDCoMKgwqB2Ym9vbDMyX3QgdjIgPSAqKHZib29s MzJfdCopaW47DQo+ICsNCj4gKyDCoMKgwqAqKHZib29sMzJfdCopKG91dCArIDEwMCkgPSB2MTsN Cj4gKyDCoMKgwqAqKHZib29sMzJfdCopKG91dCArIDIwMCkgPSB2MjsNCj4gK30NCj4gKw0KPiAr dm9pZA0KPiArdGVzdF92Ym9vbDY0X3RoZW5fdmJvb2w2NChpbnQ4X3QgKiByZXN0cmljdCBpbiwg aW50OF90ICogcmVzdHJpY3QgDQo+ICtvdXQpIHsNCj4gKyDCoMKgwqB2Ym9vbDY0X3QgdjEgPSAq KHZib29sNjRfdCopaW47DQo+ICsgwqDCoMKgdmJvb2w2NF90IHYyID0gKih2Ym9vbDY0X3QqKWlu Ow0KPiArDQo+ICsgwqDCoMKgKih2Ym9vbDY0X3QqKShvdXQgKyAxMDApID0gdjE7DQo+ICsgwqDC oMKgKih2Ym9vbDY0X3QqKShvdXQgKyAyMDApID0gdjI7DQo+ICt9DQo+ICsNCj4gKy8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbTgsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJv LFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzDQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccypl OCxccyptMixccyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMq bTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMNCj4ge3ZzZXR2bGlccytbYS14XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixc cyp0YSxccyptYX0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcw0KPiB7dnNldHZsaVxzK1thLXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY0LFxzKnRh LFxzKm1hfSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz DQo+IHt2c2V0dmxpXHMrW2EteF1bMC05XSssXHMqemVybyxccyplOCxccyptZjgsXHMqdGEsXHMq bWF9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgDQo+ ICt7dmxtXC52XHMrdlswLTldKyxccyowXChbYS14XVswLTldK1wpfQ0KPiA3IH0gfSAqLw0KPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIA0KPiAre3ZzbVwudlxzK3ZbMC05 XSssXHMqMFwoW2EteF1bMC05XStcKX0NCj4gMTQgfSB9ICovDQo+IC0tDQo+IDIuMzQuMQ0KPiAN Cj4gDQo+IA0KDQotLQ0KUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KU1VTRSBT b2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBGcmFua2Vuc3RyYXNzZSAxNDYsIDkwNDYx IE51ZXJuYmVyZywgR2VybWFueTsgR0Y6IEl2byBUb3RldiwgQW5kcmV3IE15ZXJzLCBBbmRyZXcg TWNEb25hbGQsIEJvdWRpZW4gTW9lcm1hbjsgSFJCIDM2ODA5IChBRyBOdWVybmJlcmcpDQo=