From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27297 invoked by alias); 18 Aug 2015 08:02:43 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 27262 invoked by uid 89); 18 Aug 2015 08:02:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-HELO: na01-bn1-obe.outbound.protection.outlook.com Received: from mail-bn1bon0068.outbound.protection.outlook.com (HELO na01-bn1-obe.outbound.protection.outlook.com) (157.56.111.68) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA256 encrypted) ESMTPS; Tue, 18 Aug 2015 08:02:40 +0000 Received: from BL2FFO11OLC009.protection.gbl (10.173.160.33) by BL2FFO11HUB031.protection.gbl (10.173.161.55) with Microsoft SMTP Server (TLS) id 15.1.243.9; Tue, 18 Aug 2015 08:02:37 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; arm.com; dkim=none (message not signed) header.d=none; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BL2FFO11OLC009.mail.protection.outlook.com (10.173.160.145) with Microsoft SMTP Server (TLS) id 15.1.243.9 via Frontend Transport; Tue, 18 Aug 2015 08:02:36 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1ZRbqt-0008J7-PT; Tue, 18 Aug 2015 01:02:35 -0700 Received: from [127.0.0.1] (helo=xsj-smtp-dlp1.xlnx.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1ZRbqt-0007it-Hv; Tue, 18 Aug 2015 01:02:35 -0700 Received: from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id t7I82580003830; Tue, 18 Aug 2015 01:02:05 -0700 Received: from [172.22.159.26] (helo=XAP-PVEXCAS02.xlnx.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1ZRbqs-0007ii-Bq; Tue, 18 Aug 2015 01:02:34 -0700 Received: from XAP-PVEXMBX02.xlnx.xilinx.com ([fe80::6c95:7dae:8014:5ca1]) by XAP-PVEXCAS02.xlnx.xilinx.com ([::1]) with mapi id 14.03.0195.001; Tue, 18 Aug 2015 16:02:33 +0800 From: Ajit Kumar Agarwal To: Bin.Cheng CC: Richard Biener , Bin Cheng , GCC Patches , Vinod Kathail , Shail Aditya Gupta , "Vidhumouli Hunsigida" , Nagaraju Mekala Subject: RE: [PATCH GCC]Improve bound information in loop niter analysis Date: Tue, 18 Aug 2015 08:16:00 -0000 Message-ID: <37378DC5BCD0EE48BA4B082E0B55DFAA4295BB32@XAP-PVEXMBX02.xlnx.xilinx.com> References: <000401d0c918$d7a2e780$86e8b680$@arm.com> <37378DC5BCD0EE48BA4B082E0B55DFAA4295B753@XAP-PVEXMBX02.xlnx.xilinx.com> In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-RCIS-Action: ALLOW X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11OLC009;1:jBL6POqMt+/qYxz+DwtubWJunb4r3dkYa9Zpku4VMreemCX/NSo/wTLB+TIikIKSaVTVFn7/5pAPlAebuL2IjAln+kgPITCkGP35Oi+P4CrN5VcBYjUs8/gi140N72TInMUXqdiKJBCYigm3pM30GoVEYYebYScp4bZkLfwvQWtFz/NuZgcoSGlUaA4jqf2BZGsVyblXrH5vllphw3d8gzPHrPBCoEWR5y+xgssHp50B8ibF0B8MeU38CWqTtH7l7VwUwMLej75uK8mwwg/5N7nnEG5sHGIoV4kOlet3x9R9VHEUrmRvxdN9QGPcAQ6ohIkFFrTdRi9+KblgLtMZIKdnfiJNfsL5zx5qzOk6taloz5E3GmrwPqEkHBNGVEOD X-Forefront-Antispam-Report: CIP:149.199.60.83;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(438002)(3050300001)(13464003)(189002)(24454002)(377454003)(199003)(377424004)(54534003)(69224002)(164054003)(5003600100002)(5890100001)(86362001)(63266004)(189998001)(92566002)(2950100001)(4001540100001)(2900100001)(2656002)(102836002)(81156007)(50466002)(19580405001)(46102003)(19580395003)(50986999)(106116001)(6806004)(5001860100001)(87936001)(55846006)(110136002)(5001960100002)(77156002)(33656002)(5250100002)(93886004)(2920100001)(5001830100001)(107886002)(64706001)(76176999)(62966003)(54356999)(47776003)(23676002)(106466001)(107986001)(4001430100001);DIR:OUT;SFP:1101;SCL:1;SRVR:BL2FFO11HUB031;H:xsj-pvapsmtpgw01;FPR:;SPF:Pass;PTR:unknown-60-83.xilinx.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11HUB031;2:jVdVr2yPCbChluzLjvkqgQ3OfRj22/Y74vzLvgrN/x4u6bIFCpha+HaqG29lVJdhgjYsxBOMCoSY2ifhO5eBe6e0ZKsxbpS1XZwVPQqj7QINvolyh5OzLL7NvzukQaqWGxslgYefsaCEtvnFYxILRsPWp5LXr0L1jF/HCKU2bhY=;3:HcFPERSV02NzYv6qeClYsCMByOzu4Jfr+MztKMXhTKgYwyOvLhzlK3fj8joKVwjm5zldkEB5JQ9Mm4goJ942mTdnImgnseLJImPrxOXNcr5bw2eKq7oFzbbW2YMI9nASJ6rDMmUwLQftw/Redh6BF8Sr2XTOJWtkxtd2/xEQurceJ6X+5UavEZCE4Mq/4TYGPob4ztiNMTfWFwmRjSIIB7O9p/l0jpuDxJriP8mzAZ8=;25:9mcsikh8F5OWoSnwoGgsu/VPo+v+5kK/mBAf2skKBfwguKQ6gJU9DsXQcVeRCqG6ZQoUty+dw/tD716DG4ZKNDUPbnZ2LkX4/nbDsBkdeDXuhBGkKTOiQII2qibQ0MwwDjtEinliw0ESeL4mQff5V78EHPbxdCDD9baLzszaV0cRW+dsurN1RVIGlWkc5x/GnENMtiHgMTqC6zjlPf4SBjkgoSoSM3dECPbj9El6/s/1HNIHJljtVDFQ88TStzG6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB031; X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11HUB031;20:wZqW3gjsYQpfP4P+RtfjRWUFRy1I0PAVF/9RjoK8nGUK+9dMpsRs0hOIMdErwUiJLPYiQyDIwq8Jc/GMLFl/WGiAj9wrm38X7h+3N8s3l+b+puTuajrWxiCGhzJdjXDsjMJ/R46kgZLVQbf1dDgq28KKAh3tOA3zamPs2Q0Cpb2kK+hYikUg27yhSrd/Xo4FbjI+WgZnpa6GnOX6ozGFHrczEn6jRvsTKcfp71uwIZiWV+JQ7w4AnbM1g8hwk5vPrkpgPCd4Z9UOSzhKlKpd1BjqGTVeRROKfuq3CuMpw/pqwpzQwJGhTTP7MP5Y6ntLDgQ5YxCgGHaCb5rIOVlfEqP4Mi0KJBtId3jgmCF0QLnxDHp3l9Um+lpiedMLCuf46RT2RIxHLZSllvgtshwoMp5ewkxQe/PHOZEaeSFbZZSuljcPhd2hFN1fZ037VrkmukP+Dhc/dIAp3NQlc5Gg+xA4sv8N3I3f5Nieo7F6bWmi5bzBQmu0x2uIHSbVgwK0;4:YEyM7SGfz54MQbk/6QuW0YmDLvYKm8f//IYC+hjXhnj3BDbWvS5zybc76lowYFLkokqjrbV+jYuG3RsHytDdkfpvOrRm95eCan5XOuB6BVgiZV5HRJnUmmLVzQ76GoeLZFa+o7G43T1icMPDfu92CUTe9uVXQiz0+moo8fnBoU22SFLKSVvFUHSQVBmXt7EeUBX+eGpKVa9E68Aexbzj2Hc/I3MMf6gJTi+pyPXC9Th6+8I6O50mEGtv9sk8NUYD9aHiq4CfQ0QQCBLw9DS3gdw52ofqMQmsRcd5i0FnZztG65DsATO7nUap6WDQyHjRE66X+j6Dhh85p43reDJnJDPmKcv/OnWEVP4iyJ2cLxg= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(8121501046)(8121501027)(3002001);SRVR:BL2FFO11HUB031;BCL:0;PCL:0;RULEID:;SRVR:BL2FFO11HUB031; X-Forefront-PRVS: 067270ECAF X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTDJGRk8xMUhVQjAzMTsyMzpLQW91UzBBVHJDZUZ3U2ZDOHJFbllQMmNt?= =?utf-8?B?Qmg3cDVndGRMMTB2SmJhb2Fmc2RpR2VmZGVMbUNjNGVPTWJmZXUwUVQ5OU44?= =?utf-8?B?dGtCcUZlbmdUMFBhUkpRNll3SjdGZEp2b3Z0NjNCSVpPZE52MnBEc3llWnpW?= =?utf-8?B?T3I1SmMwUUVCNDJkT1lKVWVpYzFGMmlmanlNTkhjV2lOYmtJR0xscWYvaTUy?= =?utf-8?B?bW1iamxDcWNSSkZYQjhRMGJQbDQxa1hmeGJlNEJwRThjMi9BdHRpNmdtK2VI?= =?utf-8?B?ZkVBTmtaQ3RwVkNnY1BheHltanRTTmhYUGFzVC9idjNrTGY4bUgzdyt2SXc1?= =?utf-8?B?Z2k5MzZKR2hoM0pBNFE5dWxvM1FPWWRTM2lpZ1ZLNlR5STdsckYzY0prSWVM?= =?utf-8?B?Ui96MThId1V6c25VQ1M0Kzl1NFBtL2ZzczhiS0RESXA5QXdId2I1UGV2d0Jt?= =?utf-8?B?WmJkcDdvQWNsY2RocnRuN2pHSmJXZVhFWkpJblJLU2FhUVpPSDZVMURuM2FW?= =?utf-8?B?a0dRNngzaHArVjJ1d3oxWldKdDNTWlNFNnIyWHZ2RDgyQkxobDJGUXZ4U01Z?= =?utf-8?B?STFsRCtXWFE4ekpRYUNwTUI4QzJRM1BOaDZxKzdQVGxBTjRKUzltZ0xwNFlk?= =?utf-8?B?aG5jbGJXNDlBa1dJYXBhRDc0ZXZDTUhDRVc3TWJ5ZDJJSHFrSlhKVngwL0Fx?= =?utf-8?B?M0kvTUhRZnRSNDBRNlR3cHAxTk5mRDdod0hPZkxvMHdQQ01VeGtOVXB5ZG11?= =?utf-8?B?UUNHRWQ1NmdWUjYxZElCRlFtblMwaUNvbWFRa1EwVktVdnFoMzFuWGNWRkZR?= =?utf-8?B?bzZHU2dCQ2ZnNGtNeFFsWTIxUXhQaXRuVUFHMzRjb1E5cWRUOGVVT1R0N0J2?= =?utf-8?B?d0p0enNNWmFSWVBFR2kyUnVvUEtOUmVsQm5Hd3hmUFlPYVVVd3RjZjJOVUY3?= =?utf-8?B?WGo3QjRyK0VCYXpZdEV3d0NVRGFncGI2MnByWjRIOEdrWVpCY2duUmpGdUlC?= =?utf-8?B?djY2NC9NbGtKNGNDMXZzS2VBcVBiM1lzdERySlNzRDBuZFRlOGlqcXAwMXM2?= =?utf-8?B?cUMwQTBuL21CYXR1K29mbjZMcjJ0TFFGdDdIT1dYSHd0cmI5Z3ZKcmxjWnlp?= =?utf-8?B?K1hkMDNQOWVlMVZ0M25yUytpRHdEMGF2cGlWMlQxN1U3bmlmaGQ1ZXhXV3JJ?= =?utf-8?B?U1hhbWN4UmZHMFF6ZHZuR0RZdklwUTFnd3Q0cjdicWZ0ckFOVlYrWkE5U0pm?= =?utf-8?B?d1hzbmJ2MzRZcVZNUGd3MUwzWUVWQjAyTGE3VGtnVUNNZUprK3BOejkyZTRV?= =?utf-8?B?UDV3RGdxb0hkN2dKb2poVi9IV1VaWVJhQVZZaFJ4ejdBQ3U0bklVanRlVU4x?= =?utf-8?B?ZzRhMWRaZHM3OEZWSjlhZXdmaURRM3M5cW5QeXZiQmRHMERiRmNLZzJ5azF5?= =?utf-8?B?NUpWTkZ0VEJIMXdBK0FwcHY2QklGVmx4ZWFrQ0o0bHZMYndiQi9SRzd3cHRK?= =?utf-8?B?L1R6dVhsditlclVERWd3dWZzS00xcUp4ak0zZWYzb2VIV3ptYTNYd2ZuTFBx?= =?utf-8?B?bG16UE56N002UkF2b0dxcGNxZ1dHelYzVlR4MlkrZSsvMnpjbGRBaE1hWGVZ?= =?utf-8?B?SEczcXR2ak04a3FJODU2SS9aWHZMZjRsYUFDYW5NZXRwS2ZDUm9pdzNFcDhr?= =?utf-8?B?Qzd5d25pK2VIc21UYVNlM3VoU2xyaFJRS0daSVNIcHJyQlRueE1UblYrdTdi?= =?utf-8?B?eDFWUU1qUEFKeFZiS1lqcnYzMWFFU21oWFN0c2p1cjIxdFVYTDFVWFdVdkcr?= =?utf-8?B?UVliR2JUb21qWnlpUkR6L01aeFVMbkh1dWt6NGxUZDg3V0dpb2paSDc5MUJo?= =?utf-8?Q?q0ddERpZ4VJ99BGUwz8htTJhUAzWtglVl?= X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11HUB031;5:2eEf+hg3fSvhkIaCMF3jXoJ+sNDxxs8xPehuyiBm890WXtTLAAk5/UekljT6rWo9gp8TLpqQi66ZPjnrFNvUImIZcwhPY/9UwAdBgHcFF1jqsP9KGOjHZc0EU3WfrnPZUEY73cXBLRFqo47RbofWBw==;24:0l1FCtiViwfQHmqIm/j0ZX65Xo5kSkLXUbcAKVJk3iKA99XfZoKd1dLQadAtaDZB3C/fJVuVEkcA0zEK26hhVx84TopwYVz5H/ysHx7p9ow= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2015 08:02:36.6741 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.83];Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2FFO11HUB031 X-SW-Source: 2015-08/txt/msg00954.txt.bz2 DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBCaW4uQ2hl bmcgW21haWx0bzphbWtlci5jaGVuZ0BnbWFpbC5jb21dIA0KU2VudDogVHVl c2RheSwgQXVndXN0IDE4LCAyMDE1IDE6MDggUE0NClRvOiBBaml0IEt1bWFy IEFnYXJ3YWwNCkNjOiBSaWNoYXJkIEJpZW5lcjsgQmluIENoZW5nOyBHQ0Mg UGF0Y2hlczsgVmlub2QgS2F0aGFpbDsgU2hhaWwgQWRpdHlhIEd1cHRhOyBW aWRodW1vdWxpIEh1bnNpZ2lkYTsgTmFnYXJhanUgTWVrYWxhDQpTdWJqZWN0 OiBSZTogW1BBVENIIEdDQ11JbXByb3ZlIGJvdW5kIGluZm9ybWF0aW9uIGlu IGxvb3Agbml0ZXIgYW5hbHlzaXMNCg0KT24gTW9uLCBBdWcgMTcsIDIwMTUg YXQgNjo0OSBQTSwgQWppdCBLdW1hciBBZ2Fyd2FsIDxhaml0Lmt1bWFyLmFn YXJ3YWxAeGlsaW54LmNvbT4gd3JvdGU6DQo+IEFsbDoNCj4NCj4gRG9lcyB0 aGUgTG9naWMgdG8gY2FsY3VsYXRlIHRoZSBMb29wIGJvdW5kIGluZm9ybWF0 aW9uIHRocm91Z2ggVmFsdWUgDQo+IFJhbmdlIEFuYWx5aXMgdXNlcyB0aGUg cG9zdCBkb21pbmF0b3IgYW5kIERvbWluYXRvciBpbmZvLiBUaGUgaXRlcmF0 aW9uIGJyYW5jaGVzIGluc3RlYWQgb2YgTG9vcCBleGl0IGNvbmRpdGlvbiBj YW4gYmUgY2FsY3VsYXRlZCB0aHJvdWdoIHBvc3QgZG9taW5hdG9yIGluZm8u DQo+IElmIHRoZSBub2RlIGluIHRoZSBMb29wIGhhcyB0d28gc3VjY2Vzc29y cyBhbmQgcG9zdCBkb21pbmF0ZXMgdGhlIHR3byANCj4gc3VjY2Vzc29ycyB0 aGVuIHRoZSBpdGVyYXRpb24gYnJhbmNoIGNhbiBiZSBUaGUgc2FtZSBub2Rl Lg0KPg0KPiBGb3IgQWxsIHRoZSBub2RlcyBMIGluIHRoZSBMb29wIEINCj4g SWYgKEwxLCBMMiAgYmVsb25ncyB0byBzdWNjZXNzb3JzIG9mIChMKSAmJiBM MSxMMiBiZWxvbmdzIHRvIA0KPiBQb3NEb20oSGVhZGVyIG9mIExvb3ApKSB7 DQo+ICAgSSA9IEkgdW5pb24gTDENCj4gfQ0KPg0KPiBUaHVzICJJIiB3aWxs IGhhdmUgYWxsIHNldCBvZiBpdGVyYXRpb24gYnJhbmNoZXMuIFRoaXMgd2ls bCBoYW5kbGUgDQo+IG1vcmUgY2FzZXMgb2YgTG9vcCBib3VuZCBpbmZvcm1h dGlvbiB0aGF0IFdpbGwgYmUgYWNjdXJhdGUgdGhyb3VnaCB0aGUgDQo+IGV4 YWN0IGl0ZXJhdGlvbiBjb3VudCB0aGF0IGFyZSBrbm93biBjYXNlcyBhbG9u ZyB3aXRoIFZhbHVlIFJhbmdlIEluZm9ybWF0aW9uIFdoZXJlIHRoZSBjb25k aXRpb24gaXMgaW5zdGVhZCBub3QgdGhlIExvb3AgZXhpdHMgYnV0IG90aGVy IG5vZGVzIGluIHRoZSBMb29wLg0KDQo+PkkgZG9uJ3QgcXVpdGUgZm9sbG93 IHlvdXIgd29yZHMgaGVyZS4gIENvdWxkIHlvdSBwbGVhc2UgZ2l2ZSBhIHNp bXBsZSBleGFtcGxlIGFib3V0IGl0PyAgRXNwZWNpYWxseSBJIGRvbid0IGtu b3cgaG93IHBvc3QtZG9tIGhlbHBzIHRoZSBsb29wIGJvdW5kIGFuYWx5c2lz LiAgPj5TZWVtcyB5b3VyIHBzZXVkbyBjb2RlIGlzIGNvbGxlY3Rpbmcgc29t ZSBjb21wYXJpc29uIGJhc2ljIGJsb2NrIG9mIGxvb3A/DQoNClRoZSBBbGdv cml0aG0gSSBoYXZlIGdpdmVuIGFib3ZlIGlzIGJhc2VkIG9uIFBvc3QgRG9t aW5hdG9yIEluZm8uIFRoaXMgaGVscHMgdG8gY2FsY3VsYXRlIHRoZSBpdGVy YXRpb24gYnJhbmNoZXMuIFRoZSBpdGVyYXRpb24gYnJhbmNoZXMgYXJlIHRo ZQ0KQnJhbmNoZXMgdGhhdCBkZXRlcm1pbmUgdGhlIGxvb3AgZXhpdCBjb25k aXRpb24uIEJhc2VkIG9uIHRoZSBjb25kaXRpb24gaXQgZWl0aGVyIGJyYW5j aGVzIHRvIHRoZSBoZWFkZXIgb2YgdGhlIExvb3AsIE9yIGl0IG1heSBicmFu Y2ggdG8gdGhlIA0KQmxvY2sgZG9taW5hdGVkIGJ5IHRoZSBoZWFkZXIgb3Ig ZXhpdCBmcm9tIHRoZSBsb29wLiBUaGUgYWJvdmUgQWxnb3JpdGhtIGZpbmRz IG91dCBzdWNoIGl0ZXJhdGlvbiBicmFuY2hlcyBhbmQgdGh1cyBkZWNpZGVz IG9uIHRoZSBMb29wIGJvdW5kDQpPciBpdGVyYXRpb24gY291bnQuIElmIHN1 Y2ggaXRlcmF0aW9uIGJyYW5jaGVzIGFyZSBub3QgYXQgdGhlIGJhY2sgZWRn ZSBub2RlIGFuZCBpdCBtYXkgYmUgYSBub2RlIGluc2lkZSB0aGUgbG9vcCBi YXNlZCBvbiBzb21lIGNvbmRpdGlvbnMuDQpGaW5kaW5nIG91dCBzdWNoIGl0 ZXJhdGlvbiBicmFuY2hlcyBjYW4gYmUgZG9uZSB0aHJvdWdoIHRoZSBwb3N0 IGRvbWluYXRvciBpbmZvIHVzaW5nIHRoZSBhYm92ZSBhbGdvcml0aG0uICBC YXNlZCBvbiB0aGUgaXRlcmF0aW9uIGJyYW5jaGVzIHRoZSANCmNvbmRpdGlv bnMgY2FuIGJlIGFuYWx5emVkIGFuZCB0aGF0IGhlbHBzIGluIGZpbmRpbmcg b3V0IHRoZSBpdGVyYXRpb24gYm91bmQgZm9yIEtub3duIGNhc2VzLiBLbm93 IGNhc2VzIGFyZSB0aGUgY2FzZXMgd2hlcmUgdGhlIGxvb3AgYm91bmQgY2Fu IGJlIGRldGVybWluZWQgYXQgY29tcGlsZSB0aW1lLg0KDQogT25lIEV4YW1w bGUgd291bGQgYmUgTXVsdGktRXhpdHMgTG9vcHMgd2hlcmUgdGhlIExvb3Ag ZXhpdCBjb25kaXRpb24gY2FuIGJlIGF0IHRoZSBiYWNrIGVkZ2Ugb3IgaXQg bWF5IGJlIGEgYmxvY2sgaW5zaWRlIHRoZSBMb29wIGJhc2VkIG9uIHRoZSAN CklGIGNvbmRpdGlvbnMgYW5kIGJyZWFrcyBvdXQgYmFzZWQgb24gdGhlIGNv bmRpdGlvbnMuIFRodXMgaGF2aW5nIG11bHRpcGxlIGV4aXRzLiBTdWNoIGl0 ZXJhdGlvbiBicmFuY2hlcyBjYW4gYmUgZm91bmQgdXNpbmcgVGhlIGFib3Zl IEFsZ29yaXRobS4NCg0KVGhhbmtzICYgUmVnYXJkcw0KQWppdCANCg0KVGhh bmtzLA0KYmluDQo+DQo+IFRoYW5rcyAmIFJlZ2FyZHMNCj4gQWppdA0KPg0K Pg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBnY2Mt cGF0Y2hlcy1vd25lckBnY2MuZ251Lm9yZyANCj4gW21haWx0bzpnY2MtcGF0 Y2hlcy1vd25lckBnY2MuZ251Lm9yZ10gT24gQmVoYWxmIE9mIEJpbi5DaGVu Zw0KPiBTZW50OiBNb25kYXksIEF1Z3VzdCAxNywgMjAxNSAzOjMyIFBNDQo+ IFRvOiBSaWNoYXJkIEJpZW5lcg0KPiBDYzogQmluIENoZW5nOyBHQ0MgUGF0 Y2hlcw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIEdDQ11JbXByb3ZlIGJvdW5k IGluZm9ybWF0aW9uIGluIGxvb3Agbml0ZXIgDQo+IGFuYWx5c2lzDQo+DQo+ IFRoYW5rcyBmb3IgYWxsIHlvdXIgcmV2aWV3cy4NCj4NCj4gT24gRnJpLCBB dWcgMTQsIDIwMTUgYXQgNDoxNyBQTSwgUmljaGFyZCBCaWVuZXIgPHJpY2hh cmQuZ3VlbnRoZXJAZ21haWwuY29tPiB3cm90ZToNCj4+IE9uIFR1ZSwgSnVs IDI4LCAyMDE1IGF0IDExOjM2IEFNLCBCaW4gQ2hlbmcgPGJpbi5jaGVuZ0Bh cm0uY29tPiB3cm90ZToNCj4+PiBIaSwNCj4+PiBMb29wIG5pdGVyIGNvbXB1 dGVzIGluYWNjdXJhdGUgYm91bmQgaW5mb3JtYXRpb24gZm9yIGRpZmZlcmVu dCBsb29wcy4NCj4+PiBUaGlzIHBhdGNoIGlzIHRvIGltcHJvdmUgaXQgYnkg dXNpbmcgbG9vcCBpbml0aWFsIGNvbmRpdGlvbiBpbiANCj4+PiBkZXRlcm1p bmVfdmFsdWVfcmFuZ2UuICBHZW5lcmFsbHksIGxvb3Agbml0ZXIgaXMgY29t cHV0ZWQgYnkgDQo+Pj4gc3VidHJhY3Rpbmcgc3RhcnQgdmFyIGZyb20gZW5k IHZhciBpbiBsb29wIGV4aXQgY29uZGl0aW9uLiAgDQo+Pj4gTW9yZW92ZXIs IGxvb3AgYm91bmQgaXMgY29tcHV0ZWQgdXNpbmcgdmFsdWUgcmFuZ2UgaW5m b3JtYXRpb24gb2YgYm90aCBzdGFydCBhbmQgZW5kIHZhcmlhYmxlcy4NCj4+ PiBCYXNpYyBpZGVhIG9mIHRoaXMgcGF0Y2ggaXMgdG8gY2hlY2sgaWYgbG9v cCBpbml0aWFsIGNvbmRpdGlvbiANCj4+PiBpbXBsaWVzIG1vcmUgcmFuZ2Ug aW5mb3JtYXRpb24gZm9yIGJvdGggc3RhcnQvZW5kIHZhcmlhYmxlcy4gIElm IA0KPj4+IHllcywgd2UgcmVmaW5lIHJhbmdlIGluZm9ybWF0aW9uIGFuZCB1 c2UgdGhhdCB0byBjb21wdXRlIGxvb3AgYm91bmQuDQo+Pj4gV2l0aCB0aGlz IGltcHJvdmVtZW50LCBtb3JlIGFjY3VyYXRlIGxvb3AgYm91bmQgaW5mb3Jt YXRpb24gaXMgDQo+Pj4gY29tcHV0ZWQgZm9yIHRlc3QgY2FzZXMgYWRkZWQg YnkgdGhpcyBwYXRjaC4NCj4+DQo+PiArICAgICAgYzAgPSBmb2xkX2NvbnZl cnQgKHR5cGUsIGMwKTsNCj4+ICsgICAgICBjMSA9IGZvbGRfY29udmVydCAo dHlwZSwgYzEpOw0KPj4gKw0KPj4gKyAgICAgIGlmIChvcGVyYW5kX2VxdWFs X3AgKHZhciwgYzAsIDApKQ0KPj4NCj4+IEkgYmVsaWV2ZSBpZiBjMCBpcyBu b3QgYWxyZWFkeSBvZiB0eXBlIHR5cGUgb3BlcmFuZC1lcXVhbF9wIHdpbGwg bmV2ZXIgc3VjY2VlZC4NCj4gSXQncyBxdWl0ZSBzcGVjaWZpYyBjYXNlIHRh cmdldGluZyBjb21wYXJpc29uIGJldHdlZW4gdmFyIGFuZCBpdCdzIHJhbmdl IGJvdW5kcy4gIEdpdmVuIGMwIGlzIGluIGZvcm0gb2YgInZhciArIG9mZmMw IiwgdGhlbiB0aGUgY29tcGFyaXNvbiAidmFyICsgb2ZmYzAgIT0gcmFuZ2Ug Ym91bmRzIiBkb2Vzbid0IGhhdmUgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbi4g IE1heWJlIHVzZWxlc3MgdHlwZSBjb252ZXJzaW9uIGNhbiBiZSBoYW5kbGVk IGhlcmUgdGhvdWdoLCBpdCBtaWdodCBiZSBldmVuIGNvcm5lciBjYXNlLg0K Pg0KPj4NCj4+IChzaWRlLW5vdGU6IHdlIHNob3VsZCBnZXQgcmlkIG9mIHRo ZSBHTVAgdXNlLCB0aGF0J3MgZXhwZW5zaXZlIGFuZCANCj4+IG5vdyB3ZSBo YXZlIHdpZGUtaW50IGF2YWlsYWJsZSB3aGljaCBzaG91bGQgZG8gdGhlIHRy aWNrIGFzIHdlbGwpDQo+Pg0KPj4gKyAgICAgICAgIC8qIENhc2Ugb2YgY29t cGFyaW5nIHdpdGggdGhlIGJvdW5kcyBvZiB0aGUgdHlwZS4gICovDQo+PiAr ICAgICAgICAgaWYgKFRZUEVfTUlOX1ZBTFVFICh0eXBlKQ0KPj4gKyAgICAg ICAgICAgICAmJiBvcGVyYW5kX2VxdWFsX3AgKGMxLCBUWVBFX01JTl9WQUxV RSAodHlwZSksIDApKQ0KPj4gKyAgICAgICAgICAgY21wID0gR1RfRVhQUjsN Cj4+ICsgICAgICAgICBpZiAoVFlQRV9NQVhfVkFMVUUgKHR5cGUpDQo+PiAr ICAgICAgICAgICAgICYmIG9wZXJhbmRfZXF1YWxfcCAoYzEsIFRZUEVfTUFY X1ZBTFVFICh0eXBlKSwgMCkpDQo+PiArICAgICAgICAgICBjbXAgPSBMVF9F WFBSOw0KPj4NCj4+IGRvbid0IHVzZSBUWVBFX01JTi9NQVhfVkFMVUUuICBJ bnN0ZWFkIHVzZSB0aGUgdHlwZXMgcHJlY2lzaW9uIGFuZCANCj4+IGFsbCB3 aWRlX2ludCBvcGVyYXRpb25zIChzZWUgbWF0Y2gucGQgd2k6Om1heF92YWx1 ZSB1c2UpLg0KPiBEb25lLg0KPg0KPj4NCj4+ICsgIGVsc2UgaWYgKCFvcGVy YW5kX2VxdWFsX3AgKHZhciwgdmFyYzAsIDApKQ0KPj4gKyAgICBnb3RvIGVu ZF8yOw0KPj4NCj4+IGljayAtIGdvdG8uICBXZSBuZWVkIHN0aCBsaWtlIGEg YXV0b19tcHogY2xhc3Mgd2l0aCBhIGRlc3RydWN0b3IuDQo+IExhYmVsIGVu ZF8yIHJlbW92ZWQuDQo+DQo+Pg0KPj4gc3RydWN0IGF1dG9fbXB6DQo+PiB7 DQo+PiAgIGF1dG9fbXB6ICgpIHsgbXB6X2luaXQgKG1fdmFsKTsgfQ0KPj4g ICB+YXV0b19tcHogKCkgeyBtcHpfY2xlYXIgKG1fdmFsKTsgfQ0KPj4gICBt cHomIG9wZXJhdG9yKCkgeyByZXR1cm4gbV92YWw7IH0NCj4+ICAgbXB6IG1f dmFsOw0KPj4gfTsNCj4+DQo+Pj4gSXMgaXQgT0s/DQo+Pg0KPj4gSSBzZWUg dGhlIGNvZGUgZm9sbG93cyBleGlzdGluZyBwcmFjdGljZSBpbiBuaXRlciBh bmFseXNpcyBldmVuIA0KPj4gdGhvdWdoIG15IG92ZXJhbGwgcGxhbiB3YXMg dG8gdHJhbnNpdGlvbiBpdHMgY29weWluZyBvZiB2YWx1ZS1yYW5nZSANCj4+ IHJlbGF0ZWQgb3B0aW1pemF0aW9ucyB0byB1c2UgVlJQIGluZnJhc3RydWN0 dXJlLg0KPiBZZXMsIEkgdGhpbmsgaXQncyBlYXN5IHRvIHB1c2ggaXQgdG8g VlJQIGluZnJhc3RydWN0dXJlLiAgQWN0dWFsbHkgZnJvbSB0aGUgbmFtZSBv ZiB0aGUgZnVuY3Rpb24sIGl0J3MgbW9yZSB2cnAgcmVsYXRlZC4gIEZvciBu b3csIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBieSBib3VuZF9kaWZm ZXJlbmNlLCBub3Qgc28gbWFueSBhcyB2cnAgcXVlcmllcy4gIFdlIG5lZWQg Y2FjaGUgZmFjaWxpdHkgaW4gdnJwIG90aGVyd2lzZSBpdCB3b3VsZCBiZSBl eHBlbnNpdmUuDQo+DQo+Pg0KPj4gSSdtIHN0aWxsIG9rIHdpdGggaW1wcm92 aW5nIHRoZSBleGlzdGluZyBjb2RlIG9uIHRoZSBiYXNpcyB0aGF0IEkgDQo+ PiB3b24ndCBnZXQgdG8gdGhhdCBmb3IgR0NDIDYuDQo+Pg0KPj4gU28gLSBv ayB3aXRoIHRoZSBUWVBFX01JTi9NQVhfVkFMVUUgY2hhbmdlIHN1Z2dlc3Rl ZCBhYm92ZS4NCj4+DQo+PiBSZWZhY3RvcmluZyB3aXRoIGF1dG9fbXB6IHdl bGNvbWUuDQo+IFRoYXQgd2lsbCBiZSBhbiBpbmRlcGVuZGVudCBwYXRjaCwg c28gSSBza2lwcGVkIGl0IGluIHRoaXMgb25lLg0KPg0KPiBOZXcgdmVyc2lv biBhdHRhY2hlZC4gIEJvb3RzdHJhcCBhbmQgdGVzdCBvbiB4ODZfNjQuDQo+ DQo+IFRoYW5rcywNCj4gYmluDQo+Pg0KPj4gVGhhbmtzLA0KPj4gUkljaGFy ZC4NCj4+DQo+Pj4gVGhhbmtzLA0KPj4+IGJpbg0KPj4+DQo+Pj4gMjAxNS0w Ny0yOCAgQmluIENoZW5nICA8YmluLmNoZW5nQGFybS5jb20+DQo+Pj4NCj4+ PiAgICAgICAgICogdHJlZS1zc2EtbG9vcC1uaXRlci5jIChyZWZpbmVfdmFs dWVfcmFuZ2VfdXNpbmdfZ3VhcmQpOiBOZXcuDQo+Pj4gICAgICAgICAoZGV0 ZXJtaW5lX3ZhbHVlX3JhbmdlKTogQ2FsbCByZWZpbmVfdmFsdWVfcmFuZ2Vf dXNpbmdfZ3VhcmQgZm9yDQo+Pj4gICAgICAgICBlYWNoIGxvb3AgaW5pdGlh bCBjb25kaXRpb24gdG8gaW1wcm92ZSB2YWx1ZSByYW5nZS4NCj4+Pg0KPj4+ IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nDQo+Pj4gMjAxNS0wNy0yOCAgQmlu IENoZW5nICA8YmluLmNoZW5nQGFybS5jb20+DQo+Pj4NCj4+PiAgICAgICAg ICogZ2NjLmRnL3RyZWUtc3NhL2xvb3AtYm91bmQtMS5jOiBOZXcgdGVzdC4N Cj4+PiAgICAgICAgICogZ2NjLmRnL3RyZWUtc3NhL2xvb3AtYm91bmQtMy5j OiBOZXcgdGVzdC4NCj4+PiAgICAgICAgICogZ2NjLmRnL3RyZWUtc3NhL2xv b3AtYm91bmQtNS5jOiBOZXcgdGVzdC4NCg==