From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14198 invoked by alias); 10 Nov 2004 20:00:11 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 14030 invoked from network); 10 Nov 2004 19:59:52 -0000 Received: from unknown (HELO e34.co.us.ibm.com) (32.97.110.132) by sourceware.org with SMTP; 10 Nov 2004 19:59:52 -0000 Received: from westrelay04.boulder.ibm.com (westrelay04.boulder.ibm.com [9.17.193.32]) by e34.co.us.ibm.com (8.12.10/8.12.9) with ESMTP id iAAJxqAD382656; Wed, 10 Nov 2004 14:59:52 -0500 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by westrelay04.boulder.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id iAAJxsHt124988; Wed, 10 Nov 2004 12:59:54 -0700 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.12.11/8.12.11) with ESMTP id iAAJxpiW022755; Wed, 10 Nov 2004 12:59:51 -0700 Received: from austin.ibm.com (netmail2.austin.ibm.com [9.41.248.176]) by d03av02.boulder.ibm.com (8.12.11/8.12.11) with ESMTP id iAAJxpWR022728; Wed, 10 Nov 2004 12:59:51 -0700 Received: from lazy.austin.ibm.com (lazy.austin.ibm.com [9.53.94.97]) by austin.ibm.com (8.12.10/8.12.10) with ESMTP id iAAJxox4049086; Wed, 10 Nov 2004 13:59:50 -0600 Date: Wed, 10 Nov 2004 20:24:00 -0000 From: Manoj Iyer X-X-Sender: manjo@lazy To: gdb-patches@sources.redhat.com cc: gdb@sources.redhat.com Subject: [RFC] GDB testsuite script to simplify execution of testcases. Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1910961257-1100113863=:20251" X-SW-Source: 2004-11/txt/msg00097.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --8323328-1910961257-1100113863=:20251 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-length: 1250 I wrote this script (attached) that will make executing GDB testcases easy. The script has options to do the following. - generate a stand alone testsuite with sources from mainline CVS - execute testcases in 32/64 bit mode. - execute a perticular testcase or all testcase - use a user defined gdb or default gdb installed on the system Type the command with no options or -h to see all options. These options may be provided in combinations. This was useful for me to test a GDB that I built or test a gdb that came with a distro. It generates a stand alone testsuite based on the mainline sources. I just thought there may be others out there who would want the same, the script need not necessarly be part of the GDB sources but might be useful for someone wanting to run the testcases without going into details of howto. If the maintainers feel that it is nice to have it checked into cvs I will be happy to do so. Script was tested on PowerPC (RedHat & SLES) and on X86 (Debian sarge). Thanks ----- manjo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Cognito ergo sum + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --8323328-1910961257-1100113863=:20251 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=rungdbtest Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: GDB test script Content-Disposition: attachment; filename=rungdbtest Content-length: 17707 IyEvYmluL3NoDQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Iw0KIyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMNCiMjIENv cHlyaWdodCAoYykgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyAg Q29ycC4sIDIwMDEgICAgICAgICAgICAgICAgICMjDQojIyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIw0KIyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7ICB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQjb3Ig bW9kaWZ5ICAgICAgIyMNCiMjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5ICAg ICAgICMjDQojIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAgICAgICAgICAjIw0K IyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMNCiMjICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMjDQojIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwgYnV0ICAgICAgICAjIw0KIyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkgIyMNCiMjIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAg ICMjDQojIyBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIw0KIyMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMNCiMjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlICAgICAgICAgICMjDQojIyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgIGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUg ICAgICAgICAgICAgICAjIw0KIyMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt cGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBV U0EgICAgIyMNCiMjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMj DQojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiMNCiMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjDQojIEZpbGU6IHJ1bmdkYnRlc3QgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIw0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMNCiMgRGVzY3JpcHRpb246IEdEQiB0ZXN0c3VpdGUgZHJpdmVyICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjDQoj ICAgICAgICAgICAgICBUaGlzIHNjcmlwdCBjYW4gYmUgdXNlZCB0byBnZW5l cmF0ZSBhIHN0YW5kIGFsb25lIHRlc3RzdWl0ZSwgICAgIw0KIyAgICAgICAg ICAgICAgZXhlY3V0ZSBhIHBlcnRpY3VsYXIgdGVzdCBvciBhbGwgdGhlIHRl c3RjYXNlcyB1c2luZyB0aGUgc3lzdGVtICMNCiMgICAgICAgICAgICAgIEdE QiwgaWUgR0RCIGluc3RhbGxlZCBpbiB0aGUgT1Mgb3IgdXNlciBkZWZpbmVk IEdEQiBpbiAzMmJpdCBvciAjDQojICAgICAgICAgICAgICA2NCBiaXQgbW9k ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIw0KIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMNCiMgQXV0aG9yOiBNYW5vaiBJeWVyIG1hbmpvQGF1c3Rpbi5pYm0uY29t IC0gMjkgSnVseSAyMDA0IC0gQ3JlYXRlZC4gICAgICAgICAgICAjDQojICAg ICAgICAgTWFub2ogSXllciAtIDE3IEF1Z3VzdCAyMDA0IC0gdXNlIGNvbmZp Zy5ndWVzcyB0byBndWVzcyB0aGUgYXJjaCAgICAgIw0KIyAgICAgICAgIE1h bm9qIEl5ZXIgLSAwMyBOb3ZlbWJlciAyMDA0IC0gQ3JlYXRlIHN0YW5kIGFs b25lIHRlc3RzdWl0ZSAgICAgICAgICMNCiMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAjDQojKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqIw0KDQoNCmZ1bmN0aW9uIHVzYWdlKCkNCnsNCg0KICAgY2F0IDw8 LUVPRiA+JjINCiAgICB1c2FnZTogLi8kezAjIyovfSAtZCAtaCBbIC1tIDMy LzY0ICogXSBbIC1wIEdEQiBdIC1yIFsgLXQgVEVTVENBU0UgXQ0KICAgIC1k ICAgICAgICAgIC0gZ2VuZXJhdGUgR0RCIHRlc3RzdWl0ZS4NCiAgICAtaCAg ICAgICAgICAtIGhlbHANCiAgICAtbSAzMi82NCAqICAtIGV4ZWN1dGUgdGhl IHRlc3RjYXNlcyBpbiAzMmJpdCBvciA2NGJpdCBtb2RlICh1c2Ugb25lIG9w dGlvbikNCiAgICAtcCBHREIgICAgICAtIGZ1bGx5X3F1YWxpZmllZF9wYXRo L2dkYiBlZzogL2hvbWUvam9lL3NyYy9nZGIvZ2RiDQogICAgLXIgICAgICAg ICAgLSBkb250IHJ1biAuL2NvbmZpZ3VyZSwgdXNlIGl0IGlmIHUgcmVwZWF0 IGFueSB0ZXN0Lg0KICAgIC10IFRFU1RDQVNFIC0gZXhlY3V0ZSBhIHNpbmds ZSB0ZXN0Y2FzZS4gKFhYWC5leHAgZmlsZSkuIChkZWZhdWx0IGFsbCB0ZXN0 cykNCg0KICAgIEV4YW1wbGU6IA0KICAgICAgICAgICAgRG93bmxvYWQgdGVz dHMgZnJvbSBjdnMgYW5kIGV4ZWN1dGUgdGVzdCwgdXNpbmcgdXNlcidzIGdk YiANCiAgICAgICAgICAgIC4vJHswIyMqL30gLWQgLW0gNjQgLXAgL2hvbWUv am9lL3NyYy9nZGIvZ2RiDQoNCiAgICAgICAgICAgIENyZWF0ZSBzdGFuZCBh bG9uZSB0ZXN0c3VpdGUuIERvbnQgcnVuIGFueSB0ZXN0cy4NCiAgICAgICAg ICAgIC4vJHswIyMqL30gLWQNCg0KICAgICAgICAgICAgUnVuIGFsbCB0ZXN0 Y2FzZXMgaW4gNjRiaXQgbW9kZSwgdXNpbmcgam9lcyBjdXN0b20gZ2RiLg0K ICAgICAgICAgICAgLi8kezAjIyovfSAtbSA2NCAtcCAvaG9tZS9qb2Uvc3Jj L2dkYi9nZGIgDQoNCiAgICAgICAgICAgIFJ1biB0ZXN0IGFubm90YTEuZXhw IGluIDY0Yml0IG1vZGUsIHVzaW5nIGpvZXMgY3VzdG9tIGdkYi4NCiAgICAg ICAgICAgIC4vJHswIyMqL30gLW0gNjQgLXAgL2hvbWUvam9lL3NyYy9nZGIv Z2RiIC10IGFubm90YTEuZXhwDQoNCiAgICogPSBpbmRpY2F0ZXMgdGhpcyBv cHRpb24gLW0gMzIgb3IgLW0gNjQgTVVTVCBiZSBwcm92aWRlLg0KCUVPRg0K ICAgIGV4aXQgMTsNCn0NCg0KDQpmdW5jdGlvbiBjbGVhbnVwKCkNCnsNCiAg ICBybSAtZiAvdG1wL2dkYnRlc3QubG9nLiQkID4vZGV2L251bGwgMj4mMSA7 DQogICAgcm0gLWZyIC90bXAvdGVzdC4kJCA+IC9kZXYvbnVsbCAyPiYxDQp9 DQoNCg0KZnVuY3Rpb24gZ2V0X3NvdXJjZSgpDQp7DQogICAgbG9jYWwgQ01E PSIgIiAgICAjIHZhcmlhYmxlIGhvbGRzIHRoZSBjdnMgY29tbWFuZC4NCiAg ICANCiAgICAjIGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3Rvcnkgd2hlcmUg R0RCIHNvdXJjZXMgd2lsbCBiZSBleHRyYWNlZC4NCiAgICBta2RpciAvdG1w L3RtcC4kJCB8fA0KICAgIHsNCiAgICAgICAgZWNobyAiRVJST1I6IHVuYWJs ZSB0byBjcmVhdGUgdG1wLiQkIGluIC90bXAiOw0KICAgICAgICByZXR1cm4g LTE7DQogICAgfSAgIA0KDQogICAgZWNobyAiSU5GTzogcHVsbGluZyBnZGIg dGVzdHN1aXRlLCBkZWphZ251LCAgaW5zdGFsbC1zaCwgY29uZmlnLnN1Yiwg YW5kIGNvbmZpZy5ndWVzcyBzb3VyY2UgZnJvbSBDVlMiDQogICAgZWNobyAi SU5GTzogVGhpcyB3aWxsIGJlIGFzIHNsb3cgYXMgeW91ciBuZXR3b3JrIg0K DQogICAgQ01EPSJjZCAvdG1wL3RtcC4kJCAmJiBcDQogICAgICAgICBjdnMg LVEgLWQgOnBzZXJ2ZXI6YW5vbmN2c0Bzb3VyY2VzLnJlZGhhdC5jb206L2N2 cy9zcmMgY28gc3JjL2dkYi90ZXN0c3VpdGUgIHNyYy9kZWphZ251IHNyYy9p bnN0YWxsLXNoIHNyYy9jb25maWcuZ3Vlc3Mgc3JjL2NvbmZpZy5zdWIiDQoN CiAgICAoZXZhbCAkQ01EOyBlY2hvICQ/KSAyPiYxIHwgdGVlIC1hIC90bXAv cnVuZ2RidGVzdC4kJC5sb2cNCg0KICAgIFsgImB0YWlsIC0xIC90bXAvcnVu Z2RidGVzdC4kJC5sb2dgIiAhPSAiMCIgXSAmJg0KICAgIHsNCiAgICAgICAg ZWNobyAiRVJST1I6IENoZWNrb3V0IG9mIGdkYiBzb3VyY2VzIGZyb20gQ1ZT IGZhaWxlZC4iOw0KICAgICAgICBlY2hvICJJTkZPOiBpZiB5b3UgZ2V0ICdD b25uZWN0aW9uIHJlc2V0IGJ5IHBlZXInIG1lc3NhZ2Ugd2FpdCBmZXcgbWlu dXRlcyBhbmQgdHJ5IGFnYWluIiA7DQogICAgICAgIHJldHVybiAtMTsNCiAg ICB9DQoNCiAgICBlY2hvICJJTkZPOiBjcmVhdGluZyBzdGFuZCBhbG9uZSB0 ZXN0c3VpdGUiDQoNCiAgICAjIGNvcHkgdGVzdHN1aXRlIHRvIGN1cnJlbnQg ZGlyZWN0b3J5Lg0KICAgIENNRD0ibXYgIC90bXAvdG1wLiQkL3NyYy9nZGIv dGVzdHN1aXRlLyogLiINCiAgICAoZXZhbCAkQ01EOyBlY2hvICQ/KSAyPiYx IHwgdGVlIC1hIC90bXAvcnVuZ2RidGVzdC4kJC5sb2cNCg0KICAgIFsgImB0 YWlsIC0xIC90bXAvcnVuZ2RidGVzdC4kJC5sb2dgIiAhPSAiMCIgXSAmJg0K ICAgIHsNCiAgICAgICAgZWNobyAiRVJST1I6IGZhaWxlZCBzZXR0aW5nIHVw IHRlc3Qgc291cmNlcyI7DQogICAgICAgIHJldHVybiAtMTsNCiAgICB9DQoN CiAgICAjIGNvcHkgZGVqYWdudSB0byBjdXJyZW50IGRpcmVjdG9yeS4NCiAg ICBDTUQ9Im12IC90bXAvdG1wLiQkL3NyYy9kZWphZ251IC4iDQogICAgKGV2 YWwgJENNRDsgZWNobyAkPykgMj4mMSB8IHRlZSAtYSAvdG1wL3J1bmdkYnRl c3QuJCQubG9nDQoNCiAgICBbICJgdGFpbCAtMSAvdG1wL3J1bmdkYnRlc3Qu JCQubG9nYCIgIT0gIjAiIF0gJiYNCiAgICB7DQogICAgICAgIGVjaG8gIkVS Uk9SOiBmYWlsZWQgc2V0dGluZyB1cCB0ZXN0IHNvdXJjZXMiOw0KICAgICAg ICByZXR1cm4gLTE7DQogICAgfQ0KDQogICAgIyBjb3B5IGNvbmZpZy5ndWVz cyB0byBjdXJyZW50IGRpcmVjdG9yeQ0KICAgIENNRD0ibXYgL3RtcC90bXAu JCQvc3JjL2NvbmZpZy5ndWVzcyAuIg0KICAgIChldmFsICRDTUQ7IGVjaG8g JD8pIDI+JjEgfCB0ZWUgLWEgL3RtcC9ydW5nZGJ0ZXN0LiQkLmxvZw0KDQog ICAgWyAiYHRhaWwgLTEgL3RtcC9ydW5nZGJ0ZXN0LiQkLmxvZ2AiICE9ICIw IiBdICYmDQogICAgew0KICAgICAgICBlY2hvICJFUlJPUjogZmFpbGVkIHNl dHRpbmcgdXAgdGVzdCBzb3VyY2VzIjsNCiAgICAgICAgcmV0dXJuIC0xOw0K ICAgIH0NCg0KICAgICMgSEFDS1MhISEgY29weSBzb21lIGZpbGVzIHRvIGN1 cnJlbnQgZGlyZWN0b3J5IGFuZCB0ZXN0Y2FzZSBkaXJlY3Rvcmllcy4NCg0K ICAgIGVjaG8gIklORk86IEFwcGx5aW5nIGhhY2tzIHRvIHNjcmlwdHMgYW5k IE1ha2VmaWxlcyINCg0KICAgIENNRD0ibXYgL3RtcC90bXAuJCQvc3JjL2lu c3RhbGwtc2ggLiINCiAgICAoZXZhbCAkQ01EOyBlY2hvICQ/KSAyPiYxIHwg dGVlIC1hIC90bXAvcnVuZ2RidGVzdC4kJC5sb2cNCg0KICAgIFsgImB0YWls IC0xIC90bXAvcnVuZ2RidGVzdC4kJC5sb2dgIiAhPSAiMCIgXSAmJg0KICAg IHsNCiAgICAgICAgZWNobyAiRVJST1I6IGZhaWxlZCBzZXR0aW5nIHVwIGhh Y2tzIHRvIHNvdXJjZXMiOw0KICAgICAgICByZXR1cm4gLTE7DQogICAgfQ0K DQogICAgQ01EPSJ0b3VjaCAuL2NvbmZpZy5jYWNoZSINCiAgIChldmFsICRD TUQ7IGVjaG8gJD8pIDI+JjEgfCB0ZWUgLWEgL3RtcC9ydW5nZGJ0ZXN0LiQk LmxvZw0KDQogICAgWyAiYHRhaWwgLTEgL3RtcC9ydW5nZGJ0ZXN0LiQkLmxv Z2AiICE9ICIwIiBdICYmDQogICAgew0KICAgICAgICBlY2hvICJFUlJPUjog ZmFpbGVkIHNldHRpbmcgdXAgaGFja3MgdG8gc291cmNlcyI7DQogICAgICAg IHJldHVybiAtMTsNCiAgICB9DQoNCiAgIENNRD0ibXYgL3RtcC90bXAuJCQv c3JjL2NvbmZpZy5zdWIgLiINCiAgIChldmFsICRDTUQ7IGVjaG8gJD8pIDI+ JjEgfCB0ZWUgLWEgL3RtcC9ydW5nZGJ0ZXN0LiQkLmxvZw0KDQogICAgWyAi YHRhaWwgLTEgL3RtcC9ydW5nZGJ0ZXN0LiQkLmxvZ2AiICE9ICIwIiBdICYm DQogICAgew0KICAgICAgICBlY2hvICJFUlJPUjogZmFpbGVkIHNldHRpbmcg dXAgaGFja3MgdG8gc291cmNlcyI7DQogICAgICAgIHJldHVybiAtMTsNCiAg ICB9DQoNCiAgICBDTUQ9ImNwIC4vZGVqYWdudS9ydW50ZXN0IC4gOyBjcCAu L2RlamFnbnUvcnVudGVzdC5leHAgLiINCiAgIChldmFsICRDTUQ7IGVjaG8g JD8pIDI+JjEgfCB0ZWUgLWEgL3RtcC9ydW5nZGJ0ZXN0LiQkLmxvZw0KDQog ICAgWyAiYHRhaWwgLTEgL3RtcC9ydW5nZGJ0ZXN0LiQkLmxvZ2AiICE9ICIw IiBdICYmDQogICAgew0KICAgICAgICBlY2hvICJFUlJPUjogZmFpbGVkIHNl dHRpbmcgdXAgaGFja3MgdG8gc291cmNlcyI7DQogICAgICAgIHJldHVybiAt MTsNCiAgICB9DQoNCiAgICAjIEhBQ0tTISEgdG8gc2NyaXB0cyBhbmQgbWFr ZWZpbGVzLg0KICAgIHNlZCAnL15SVU5URVNUX0ZPUl9UQVJHRVQvcy8vI1JV TlRFU1RfRk9SX1RBUkdFVC8nIC4vTWFrZWZpbGUuaW4gPiBcDQogICAgLi9N YWtlZmlsZS5pbi5zYXYgfHwgXA0KICAgIHsNCiAgICAgICAgZWNobyAiRVJS T1I6IEhBQ0tTIHRvIHNjcmlwdHMgJiBtYWtlZmlsZXMgZmFpbGVkIiA7DQog ICAgcmV0dXJuIC0xOw0KICAgIH0NCg0KICAgIHNlZCAnLyNSVU5URVNUX0ZP Ul9UQVJHRVQvaSBSVU5URVNUX0ZPUl9UQVJHRVQgPSAuXC9ydW50ZXN0JyBc DQogICAgLi9NYWtlZmlsZS5pbi5zYXYgID4gLi9NYWtlZmlsZS5pbiB8fCBc DQogICAgew0KICAgICAgICBlY2hvICJFUlJPUjogSEFDS1MgdG8gc2NyaXB0 cyAmIG1ha2VmaWxlcyBmYWlsZWQiIDsNCiAgICAgICAgcmV0dXJuIC0xOw0K ICAgIH0NCg0KICAgIGZvciBjb25maWcgaW4gJChmaW5kIC4gLW1pbmRlcHRo IDIgLW5hbWUgY29uZmlndXJlKQ0KICAgIGRvDQogICAgICAgIHNlZCAnL15m b3IgYWNfZGlyIGluL3MvOyBkby8gLi47IGRvLycgIGNvbmZpZyA+IFwNCiAg ICAgICAgJGNvbmZpZy5zYXYgfHwgXA0KICAgICAgICB7DQogICAgICAgICAg ICBlY2hvICJFUlJPUjogSEFDS1MgdG8gc2NyaXB0cyAmIG1ha2VmaWxlcyBm YWlsZWQiIDsNCiAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgfQ0K DQogICAgICAgIG12ICRjb25maWcuc2F2ICRjb25maWcgfHwgXA0KICAgICAg ICB7DQogICAgICAgICAgICBlY2hvICJFUlJPUjogSEFDS1MgdG8gc2NyaXB0 cyAmIG1ha2VmaWxlcyBmYWlsZWQiIDsNCiAgICAgICAgICAgIHJldHVybiAt MTsNCiAgICAgICAgfQ0KICAgIGRvbmUNCg0KICAgIGVjaG8gIklORk86IERv bmUgZ2VuZXJhdGluZyBzdGFuZCBhbG9uZSB0ZXN0c3VpdGUiDQogICAgcmV0 dXJuIDA7DQoNCn0NCiAgICANCg0KZnVuY3Rpb24gbWFpbigpDQp7DQogICAg UkVQRUFUPSJOTyIgICAgICAjIG9wdGlvbiB0byB0dXJuIG9mZiBydW5uaW5n IGNvbmZpZ3VyZS4NCiAgICBNT0RFPSIgIiAgICAgICAgICMgRXhlY3V0ZSB0 aGUgdGVzdGNhc2UgaW4gMzJiaXQgbW9kZSBvciA2NGJpdCBtb2RlDQogICAg VEFSR0VUPSIgIiAgICAgICAjIENvbnRhaW5zIHRoZSBzdHJpbmcgdGhhdCBp cyBwYXNzZWQgdG8gbWFrZSBjaGVjaw0KICAgIEdEQl9DTUQ9Ik5PTkUiICAg IyBGdWxseSBxdWFsaWZpZWQgcGF0aCB0byBjdXN0b20gR0RCLg0KICAgIFRF U1RfQ0FTRT0iICIgICAgIyBUZW1wb3JhcnkgcGxhY2UgaG9sZGVyIHRvIHRl c3RjYXNlIG5hbWUuDQogICAgY21kPSIgIiAgICAgICAgICAjIENvbW1hbmQg dGhhdCBuZWVkcyB0byBiZSBleGVjdXRlZCB0byBydW4gdGVzdGNhc2VzDQog ICAgDQogICAgWyAkIyAtbHQgMSBdICYmIHsgdXNhZ2UgOyByZXR1cm4gJD87 IH0NCg0KICAgICMgUGFyc2Ugb3B0aW9ucw0KICAgIHdoaWxlIGdldG9wdHMg ZGhtOnA6cnQ6IGFyZw0KICAgIGRvIGNhc2UgJGFyZyBpbg0KICAgICAgICBk KSBnZXRfc291cmNlIDsgWyAkIyAtbHQgMiBdICYmIHJldHVybiAtMSA7Ow0K ICAgICAgICBoKSB1c2FnZSA7Ow0KDQogICAgICAgIG0pIGNhc2UgIiRPUFRB UkciIGluDQogICAgICAgICAgICAgICAzMikgVEFSR0VUPSJSVU5URVNURkxB R1M9LS10YXJnZXRfYm9hcmQ9dW5peC8tbTMyIg0KICAgICAgICAgICAgICAg ICAgIE1PREU9IjMyIjs7DQogICAgICAgICAgICAgICA2NCkgVEFSR0VUPSJS VU5URVNURkxBR1M9LS10YXJnZXRfYm9hcmQ9dW5peC8tbTY0IjsNCiAgICAg ICAgICAgICAgICAgICBNT0RFPSI2NCI7Ow0KICAgICAgICAgICAgICAgKikg IGVjaG8gIldBUk46IFVucmVjb2duaXplZCBtb2RlLCBhc3N1bWluZyAzMiBi aXQiOw0KICAgICAgICAgICAgICAgICAgIFRBUkdFVD0iUlVOVEVTVEZMQUdT PS0tdGFyZ2V0X2JvYXJkPXVuaXgvLW0zMiI7DQogICAgICAgICAgICAgICAg ICAgTU9ERT0iMzIiOzsNCiAgICAgICAgICAgZXNhYzs7DQoNCiAgICAgICAg cCkgWyAteiAiJE9QVEFSRyIgXSAmJiB7IHVzYWdlIDsgfSANCg0KICAgICAg ICMgaWYgdGhlIGdkYiBwcm92aWRlZCBieSB0aGUgdXNlciBpcyBub3QgYW4g ZXhlY3V0YWJsZSBjb21wbGFpbg0KICAgICAgICAgICBbICEgLXggIiRPUFRB UkciIF0gJiYgXA0KICAgICAgICAgICB7DQogICAgICAgICAgICAgICBlY2hv ICJFUlJPUjogJE9QVEFSRyBpcyBub3QgYSB2YWxpZCBleGVjdXRhYmxlIjsN CiAgICAgICAgICAgICAgIHJldHVybiAtMTsNCiAgICAgICAgICAgfQ0KDQog ICAgICAgIyBpZiA2NC1iaXQgbW9kZSBpcyBjaG9zZW4gYW5kIDMyLWJpdCBn ZGIgaXMgdXNlZCBjb21wbGFpbg0KICAgICAgICAgICBbICIkTU9ERSIgPT0g IjY0IiBdICYmIFwNCiAgICAgICAgICAgeyANCg0KICAgICAgICAgICAgICAg WyAiJChmaWxlIC1iICIkT1BUQVJHIiB8IGN1dCAtZiAyIC1kICIgIikiID09 ICI2NC1iaXQiIF0gfHwgXA0KICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgIGVjaG8gIkVSUk9SOiAkT1BUQVJHIGlzIG5vdCBhIDY0IGJp dCBHREIiIDsNCiAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7DQogICAg ICAgICAgICAgICB9DQogICAgICAgICAgIH0NCiAgICAgICANCiAgICAgICAg ICAgR0RCX0NNRD0iJFRBUkdFVCAtLXRvb2xfZXhlYz0kT1BUQVJHIjsNCiAg ICAgICBUQVJHRVQ9IiRHREJfQ01EIjs7DQoNCiAgICAgICAgcikgUkVQRUFU PSJZRVMiOzsNCg0KICAgICAgICB0KSBbIC16ICIkT1BUQVJHIiBdICYmIHsg dXNhZ2UgOyB9DQogICAgICAgICAgIFRFU1RfQ0FTRT0iJFRBUkdFVCAkT1BU QVJHIjsNCiAgICAgICAgICAgVEFSR0VUPSIkVEVTVF9DQVNFIiA7Ow0KICAg ICAgICBcPykgdXNhZ2UgOzsNCiAgICAgICBlc2FjDQogICAgZG9uZQ0KDQog IA0KICAgICMgSWYgbm8gc291cmNlIGlzIGZvdW5kIGV4aXQuDQogICAgWyAt ZiAuL2NvbmZpZ3VyZSBdIHx8IFwNCiAgICB7DQogICAgICAgIGVjaG8gIkZB VEFMOiBnZW5lcmF0ZSB0aGUgdGVzdHN1aXRlIGZpcnN0LCB1c2UgLWQgb3B0 aW9uIjsNCiAgICAgICAgZWNobyAiICI7DQogICAgICAgIHVzYWdlOw0KICAg ICAgICByZXR1cm4gLTE7DQogICAgfQ0KDQogICAgIyBJZiBleHBlY3QgaXMg bm90IGluc3RhbGxlZCBjb21wbGFpbi4NCiAgICB3aGljaCBleHBlY3QgPi9k ZXYvbnVsbCAyPiYxIHx8IFwNCiAgICB7DQogICAgICAgIGVjaG8gIkZBVEFM OiBleHBlY3QgaXMgcmVxdWlyZWQgdG8gcnVuIHRlc3RjYXNlcywgcGxlYXNl IGluc3RhbGwgZXhwZWN0Ig0KICAgIHJldHVybiAtMTsNCiAgICB9DQoNCiAg ICAjIElmIG5vIGdkYiBjb21tYW5kIGlzIHNwZWNpZmllZCBwaWNrIGEgZ2Ri IGJhc2VkIG9uIE1PREUgDQogICAgWyAiJEdEQl9DTUQiID09ICJOT05FIiBd ICYmIFwNCiAgICB7DQogICAgICAgIGVjaG8gIldBUk46IG5vIGN1c3RvbSBn ZGIgcmVxdWVzdGVkLCB1c2luZyBzeXN0ZW0gZ2RiIiA7DQogICAgICAgIFsg IiRNT0RFIiA9PSAiMzIiIF0gJiYgXA0KICAgICAgICB7IA0KICAgICAgICAg ICAgWyAteiAiJCh3aGljaCBnZGIpIiBdICYmIHsgZWNobyAiRVJST1I6IG5v IGdkYiBpbnN0YWxsZWQiOyByZXR1cm4gLTE7IH0NCiAgICAgICAgICAgIEdE Ql9DTUQ9IiRUQVJHRVQgLS10b29sX2V4ZWM9JCh3aGljaCBnZGIpIjsgDQog ICAgICAgIGVjaG8gIklORk86IHVzaW5nICRHREJfQ01EIjsNCiAgICAgICAg fQ0KDQogICAgICAgIFsgIiRNT0RFIiA9PSAiNjQiIF0gJiYgXA0KICAgICAg ICB7IA0KICAgICAgICAgICAgR0RCX0NNRD0iJFRBUkdFVCAtLXRvb2xfZXhl Yz0kKHdoaWNoIGdkYjY0KSI7IA0KICAgICAgICAgICAgWyAteiAiJCh3aGlj aCBnZGI2NCkiIF0gJiYgXA0KICAgICAgICAgICAgeyANCiAgICAgICAgICAg ICAgICAjIDY0LWJpdCBHREIgY291bGQgYmUgaW5zdGFsbGVkIHVuZGVyIHRo ZSBuYW1lIGdkYiANCiAgICAgICAgICAgICAgICBbICIkKGZpbGUgLWIgJCh3 aGljaCBnZGIpIHwgY3V0IC1mIDIgLWQgIiAiKSIgPT0gIjY0LWJpdCIgXSB8 fCBcDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBl Y2hvICJFUlJPUjogTm8gNjQtYml0IGdkYiBmb3VuZCBvbiB0aGUgc3lzdGVt IjsNCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAgICAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIEdEQl9DTUQ9IiRUQVJHRVQg LS10b29sX2V4ZWM9JCh3aGljaCBnZGIpIjsgDQogICAgICAgICAgICBlY2hv ICJJTkZPOiB1c2luZyAkR0RCX0NNRCI7DQogICAgICAgICAgICB9DQoNCiAg ICAgICAgfQ0KDQogICAgVEFSR0VUPSIkR0RCX0NNRCI7DQogICAgfQ0KDQog ICAgIyBJZiB0aGlzIHNjcmlwdCBpcyBleGVjdXRlZCBvdXRzaWRlIG9mIHRo aXMgdGVzdHN1aXRlIGRpciBjb21wbGFpbg0KICAgIFsgLWYgLi9jb25maWd1 cmUgXSB8fCBcDQogICAgew0KICAgICAgICBlY2hvICJFUlJPUjogVGhpcyBz Y3JpcHQgbXVzdCBiZSBsb2NhdGVkIHVuZGVyIHRoZSB0ZXN0c3VpdGUgZGly IiA7DQogICAgICAgIHJldHVybiAtMTsNCiAgICB9DQoNCiAgICAjIGlmIHRo ZSB1c2VyIGlzIGV4ZWN1dGluZyBvbmUgdGVzdGNhc2UgYXQgYSB0aW1lLCBh bGxvdyBoaW0gdG8gc2tpcA0KICAgICMgcmVwZWF0aW5nIHRoZSBjb25maWd1 cmUgc3RlcCANCiAgICBbICIkUkVQRUFUIiA9PSAiWUVTIiBdIHx8ICBcDQog ICAgew0KICAgICAgICBlY2hvICJJTkZPOiBFeGVjdXRpbmcgbWFrZSBkaXN0 Y2xlYW4iOw0KICAgICAgICBtYWtlIGRpc3RjbGVhbjsNCg0KICAgICAgICBl Y2hvICJJTkZPOiBSZW1vdmluZyBhbnkgY29uZmlnLmNhY2hlIGZpbGVzIjsg DQogICAgICAgIGZvciBjb25maWcgaW4gJChmaW5kIC4gLW5hbWUgY29uZmln LmNhY2hlKQ0KICAgICAgICBkbw0KICAgICAgICAgICAgcm0gLWYgJGNvbmZp ZyANCiAgICAgICAgZG9uZSANCg0KICAgICAgICBlY2hvICJJTkZPOiBleGVj dXRpbmcgLi9jb25maWd1cmUgb24gdGVzdGNhc2VzLiINCiAgICAgICAgLi9j b25maWd1cmUgLS1ob3N0PSQoLi9jb25maWcuZ3Vlc3MpIC0tZGlzYWJsZS10 dWkgLS1kaXNhYmxlLXRjbCBcDQogICAgICAgICAgICAgPiAvdG1wL2dkYnRl c3QubG9nLiQkIDI+JjEgfHwgXA0KICAgICAgICB7DQogICAgICAgICAgICBl Y2hvICJFUlJPUjogQ29uZmlndXJpbmcgdGVzdGNhc2UgJChjYXQgL3RtcC9n ZGJ0ZXN0LmxvZy4kJCkiOw0KICAgICAgICAgICAgcmV0dXJuIC0xOw0KICAg ICAgICB9DQogICAgfQ0KDQogICAgY21kPSJtYWtlIGNoZWNrICckVEFSR0VU JyI7DQoNCiAgICBlY2hvICJJTkZPOiBVc2luZyBjb21tYW5kICRjbWQiDQoN CiAgICBlY2hvICJJTkZPOiBFeGVjdXRpbmcgdGVzdGNhc2UgY29tbWFuZCAk Y21kIg0KICAgKGV2YWwgJGNtZDsgZWNobyAkPykgMj4mMSB8IHRlZSAtYSAv dG1wL2dkYnRlc3QubG9nLiQkIA0KICAgWyAiYHRhaWwgLTEgL3RtcC9nZGJ0 ZXN0LmxvZy4kJGAiICE9ICIwIiBdICYmIFwNCiAgIHsNCiAgICAgICBlY2hv ICJFUlJPUjogY2VydGFpbiBlcnJvcnMgZW5jb3VudGVyZCBleGVjdXRpbmcg dGVzdGNhc2VzLiI7DQogICAgICAgbXYgL3RtcC9nZGJ0ZXN0LmxvZy4kJCAu L3J1bmdkYnRlc3QuZXJyLmxvZyA+L2Rldi9udWxsIDI+JjEgfHwgXA0KICAg ICAgIHsNCiAgICAgICAgICAgZWNobyAiRVJST1I6IGNyZWF0aW5nIC4vcnVu Z2RidGVzdC5lcnIubG9nIjsNCiAgICAgICB9DQogICAgICAgZWNobyAiSU5G TzogZGV0YWlscyBpbiAuL3J1bmdkYnRlc3QuZXJyLmxvZyBhbmQgZ2RiLmxv ZyI7DQogICAgICAgcmV0dXJuIC0xOw0KICAgfQ0KDQogICByZXR1cm4gMA0K fQ0KDQoNCiMgY2xlYW51cCB0ZW1wb3JhdHkgZmlsZXMgY3JlYXRlZCBpbiAv dG1wDQp0cmFwICJjbGVhbnVwIiAwDQoNCiMgZW50cnkgcG9pbnQgc28gdG8g c3BlYWsNCm1haW4gIiRAIg0KDQojIGV4aXQgd2l0aCByZXR1cm4gY29kZS4N CmV4aXQgJD8NCg== --8323328-1910961257-1100113863=:20251--