Return-Path: Delivered-To: apmail-apr-dev-archive@apr.apache.org Received: (qmail 22303 invoked by uid 500); 8 Jul 2001 22:01:15 -0000 Mailing-List: contact dev-help@apr.apache.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Delivered-To: mailing list dev@apr.apache.org Received: (qmail 22292 invoked from network); 8 Jul 2001 22:01:15 -0000 Date: Sun, 8 Jul 2001 15:01:19 -0700 (PDT) From: Mo DeJong To: dev@apr.apache.org Subject: Re: Upgrading apr to autoconf 2.50 and libtool 1.4 In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-33463914-994629679=:13586" X-Spam-Rating: h31.sny.collab.net 1.6.2 0/1000/N 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. ---559023410-33463914-994629679=:13586 Content-Type: TEXT/PLAIN; charset=US-ASCII Since my last patch re upgrading autoconf and libtool was not received with open arms, I decided to take the decidedly less fun route and get things working with both autoconf 2.13 and 2.50 as well as libtool 1.3 and 1.4. Here is a patch that implements that change. The first step is to remove the shmem/unix/mm/aclocal.m4 and add the attached shmem/unix/mm/apr_mm.m4 file: rm shmem/unix/mm/aclocal.m4 cvs rm shmem/unix/mm/aclocal.m4 cvs add shmem/unix/mm/apr_mm.m4 Then, the following patch should be applied: Index: buildconf =================================================================== RCS file: /home/cvspublic/apr/buildconf,v retrieving revision 1.17 diff -u -r1.17 buildconf --- buildconf 2001/05/01 02:06:09 1.17 +++ buildconf 2001/07/08 21:50:11 @@ -74,7 +74,7 @@ # echo "Copying libtool helper files ..." -$libtoolize --copy --automake +$libtoolize --copy --force --automake ltpath=`dirname $libtoolize` ltfile=`cd $ltpath/../share/aclocal ; pwd`/libtool.m4 @@ -101,6 +101,6 @@ ### do some work to toss config.cache? autoconf -(cd shmem/unix/mm && autoconf) +(cd shmem/unix/mm && aclocal && autoconf) exit 0 Index: shmem/unix/mm/Makefile.in =================================================================== RCS file: /home/cvspublic/apr/shmem/unix/mm/Makefile.in,v retrieving revision 1.4 diff -u -r1.4 Makefile.in --- shmem/unix/mm/Makefile.in 2000/05/03 17:15:48 1.4 +++ shmem/unix/mm/Makefile.in 2001/07/08 21:50:12 @@ -51,6 +51,10 @@ includedir = @includedir@ mandir = @mandir@ +# This is a nasty hack that is needed because libtool +# 1.4 uses top_builddir which is undefined here. +top_builddir = . + SHELL = /bin/sh CC = @CC@ CFLAGS = @CFLAGS@ Index: shmem/unix/mm/configure.in =================================================================== RCS file: /home/cvspublic/apr/shmem/unix/mm/configure.in,v retrieving revision 1.9 diff -u -r1.9 configure.in --- shmem/unix/mm/configure.in 2001/02/18 15:52:12 1.9 +++ shmem/unix/mm/configure.in 2001/07/08 21:50:12 @@ -2,6 +2,8 @@ dnl ## Autoconf specification for MM library dnl ## +builtin(include,apr_mm.m4) + dnl # dnl # standard Autoconf prolog dnl # cheers Mo DeJong Red Hat Inc ---559023410-33463914-994629679=:13586 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="apr_mm.m4" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: IyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMjIENvcHlyaWdodCAoYykg MTk5OS0yMDAwIFJhbGYgUy4gRW5nZWxzY2hhbGwuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuDQojIw0KIyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0DQojIyBtb2Rp ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnMNCiMjIGFyZSBtZXQ6DQojIw0KIyMgMS4gUmVk aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh Ym92ZSBjb3B5cmlnaHQNCiMjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gDQojIw0K IyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQNCiMjICAgIG5vdGljZSwgdGhp cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lciBpbg0KIyMgICAgdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQ0KIyMgICAgZGlzdHJpYnV0 aW9uLg0KIyMNCiMjIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVu dGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcw0KIyMgICAgc29mdHdh cmUgbXVzdCBkaXNwbGF5IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ21lbnQ6 DQojIyAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJlIGRldmVs b3BlZCBieQ0KIyMgICAgIFJhbGYgUy4gRW5nZWxzY2hhbGwgPHJzZUBlbmdl bHNjaGFsbC5jb20+LiINCiMjDQojIyA0LiBSZWRpc3RyaWJ1dGlvbnMgb2Yg YW55IGZvcm0gd2hhdHNvZXZlciBtdXN0IHJldGFpbiB0aGUgZm9sbG93aW5n DQojIyAgICBhY2tub3dsZWRnbWVudDoNCiMjICAgICJUaGlzIHByb2R1Y3Qg aW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5DQojIyAgICAgUmFsZiBT LiBFbmdlbHNjaGFsbCA8cnNlQGVuZ2Vsc2NoYWxsLmNvbT4uIg0KIyMNCiMj IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgUkFMRiBTLiBFTkdFTFND SEFMTCBgYEFTIElTJycgQU5EIEFOWQ0KIyMgRVhQUkVTU0VEIE9SIElNUExJ RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s IFRIRQ0KIyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSDQojIyBQVVJQT1NFIEFS RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgUkFMRiBTLiBFTkdF TFNDSEFMTCBPUg0KIyMgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLA0KIyMgU1BFQ0lB TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV RElORywgQlVUDQojIyBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsNCiMjIExPU1MgT0YgVVNF LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p DQojIyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsDQojIyBTVFJJQ1QgTElBQklM SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ U0UpDQojIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEDQojIyBPRiBUSEUgUE9T U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuDQojIyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KZGl2ZXJ0KC0xKQ0KDQpkZWZpbmUoQUNfQ0hFQ0tfREVCVUdH SU5HLFtkbmwNCkFDX01TR19DSEVDS0lORyhmb3IgY29tcGlsYXRpb24gZGVi dWcgbW9kZSkNCkFDX0FSR19FTkFCTEUoZGVidWcsZG5sDQpbICAtLWVuYWJs ZS1kZWJ1ZyAgICAgICAgICBidWlsZCBmb3IgZGVidWdnaW5nIChkZWZhdWx0 PW5vKV0sDQpbZG5sDQppZiB0ZXN0ICIuJGFjX2N2X3Byb2dfZ2NjIiA9ICIu eWVzIjsgdGhlbg0KICAgIGNhc2UgIiRDRkxBR1MiIGluDQogICAgICAgICot TzIqICkgOzsNCiAgICAgICAgICAgICogKSBDRkxBR1M9IiRDRkxBR1MgLU8y IiA7Ow0KICAgIGVzYWMNCiAgICBjYXNlICIkQ0ZMQUdTIiBpbg0KICAgICAg ICAqLWcqICkgOzsNCiAgICAgICAgICAgKiApIENGTEFHUz0iJENGTEFHUyAt ZyIgOzsNCiAgICBlc2FjDQogICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1nZ2RiMyIN CiAgICBDRkxBR1M9IiRDRkxBR1MgLVdhbGwgLVdzaGFkb3cgLVdwb2ludGVy LWFyaXRoIC1XY2FzdC1hbGlnbiINCiAgICBDRkxBR1M9IiRDRkxBR1MgLVdt aXNzaW5nLXByb3RvdHlwZXMgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV25l c3RlZC1leHRlcm5zIC1XaW5saW5lIg0KZWxzZQ0KICAgIGNhc2UgIiRDRkxB R1MiIGluDQogICAgICAgICotZyogKSA7Ow0KICAgICAgICAgICAqICkgQ0ZM QUdTPSIkQ0ZMQUdTIC1nIiA7Ow0KICAgIGVzYWMNCmZpDQptc2c9ImVuYWJs ZWQiDQpBQ19ERUZJTkUoTU1fREVCVUcpDQpdLFsNCmNhc2UgIiRDRkxBR1Mi IGluDQogICAgKi1nKiApIENGTEFHUz1gZWNobyAiJENGTEFHUyIgfFwNCiAg ICAgICAgICAgICAgICAgICBzZWQgLWUgJ3MvIC1nIC8gL2cnIC1lICdzLyAt ZyQvLycgLWUgJ3MvXi1nIC8vZycgLWUgJ3MvXi1nJC8vJ2AgOzsNCmVzYWMN Cm1zZz1kaXNhYmxlZA0KXSkNCkFDX01TR19SRVNVTFQoWyRtc2ddKQ0KXSkN Cg0KZGVmaW5lKEFDX0NPTkZJR1VSRV9QQVJULFtkbmwNCkFDX01TR19SRVNV TFQoKQ0KQUNfTVNHX1JFU1VMVCgke1RfTUR9JDE6JHtUX01FfSkNCl0pZG5s DQoNCmRlZmluZShBQ19DSEVDS19ERUZJTkUsW2RubA0KICBBQ19DQUNIRV9D SEVDSyhmb3IgJDEgaW4gJDIsIGFjX2N2X2RlZmluZV8kMSwNCiAgICBBQ19F R1JFUF9DUFAoW1lFU19JU19ERUZJTkVEXSwgWw0KI2luY2x1ZGUgPCQyPg0K I2lmZGVmICQxDQpZRVNfSVNfREVGSU5FRA0KI2VuZGlmDQogICAgXSwgYWNf Y3ZfZGVmaW5lXyQxPXllcywgYWNfY3ZfZGVmaW5lXyQxPW5vKQ0KICApDQog IGlmIHRlc3QgIiRhY19jdl9kZWZpbmVfJDEiID0gInllcyIgOyB0aGVuDQog ICAgQUNfREVGSU5FKEhBVkVfJDEpDQogIGZpDQpdKWRubA0KQUNfREVGSU5F KEhBVkVfJDEpDQoNCmRlZmluZShBQ19JRkFMTFlFUyxbZG5sDQphY19yYz15 ZXMNCmZvciBhY19zcGVjIGluICQxOyBkbw0KICAgIGFjX3R5cGU9YGVjaG8g IiRhY19zcGVjIiB8IHNlZCAtZSAncy86LiokLy8nYA0KICAgIGFjX2l0ZW09 YGVjaG8gIiRhY19zcGVjIiB8IHNlZCAtZSAncy9eLio6Ly8nYA0KICAgIGNh c2UgJGFjX3R5cGUgaW4NCiAgICAgICAgaGVhZGVyICkNCiAgICAgICAgICAg IGFjX2l0ZW09YGVjaG8gIiRhY19pdGVtIiB8IHNlZCAneSUuLystJV9fcF8l J2ANCiAgICAgICAgICAgIGFjX3Zhcj0iYWNfY3ZfaGVhZGVyXyRhY19pdGVt Ig0KICAgICAgICAgICAgOzsNCiAgICAgICAgZmlsZSApDQogICAgICAgICAg ICBhY19pdGVtPWBlY2hvICIkYWNfaXRlbSIgfCBzZWQgJ3klLi8rLSVfX3Bf JSdgDQogICAgICAgICAgICBhY192YXI9ImFjX2N2X2ZpbGVfJGFjX2l0ZW0i DQogICAgICAgICAgICA7Ow0KICAgICAgICBmdW5jICkgICBhY192YXI9ImFj X2N2X2Z1bmNfJGFjX2l0ZW0iICAgOzsNCiAgICAgICAgZGVmaW5lICkgYWNf dmFyPSJhY19jdl9kZWZpbmVfJGFjX2l0ZW0iIDs7DQogICAgICAgIGN1c3Rv bSApIGFjX3Zhcj0iJGFjX2l0ZW0iIDs7DQogICAgZXNhYw0KICAgIGV2YWwg ImFjX3ZhbD1cJCRhY192YXIiDQogICAgaWYgdGVzdCAiLiRhY192YWwiICE9 IC55ZXM7IHRoZW4NCiAgICAgICAgYWNfcmM9bm8NCiAgICAgICAgYnJlYWsN CiAgICBmaQ0KZG9uZQ0KaWYgdGVzdCAiLiRhY19yYyIgPSAueWVzOyB0aGVu DQogICAgOg0KICAgICQyDQplbHNlDQogICAgOg0KICAgICQzDQpmaQ0KXSlk bmwNCg0KZGVmaW5lKEFDX0JFR0lOX0RFQ0lTSU9OLFtkbmwNCmFjX2RlY2lz aW9uX2l0ZW09JyQxJw0KYWNfZGVjaXNpb25fbXNnPSdGQUlMRUQnDQphY19k ZWNpc2lvbj0nJw0KXSlkbmwNCmRlZmluZShBQ19ERUNJREUsW2RubA0KYWNf ZGVjaXNpb249JyQxJw0KYWNfZGVjaXNpb25fbXNnPSckMicNCmFjX2RlY2lz aW9uXyQxPXllcw0KYWNfZGVjaXNpb25fJDFfbXNnPSckMicNCl0pZG5sDQpk ZWZpbmUoQUNfREVDSVNJT05fT1ZFUlJJREUsW2RubA0KICAgIGFjX2RlY2lz aW9uPScnDQogICAgZm9yIGFjX2l0ZW0gaW4gJDE7IGRvDQogICAgICAgICBl dmFsICJhY19kZWNpc2lvbl90aGlzPVwkYWNfZGVjaXNpb25fJHthY19pdGVt fSINCiAgICAgICAgIGlmIHRlc3QgIi4kYWNfZGVjaXNpb25fdGhpcyIgPSAu eWVzOyB0aGVuDQogICAgICAgICAgICAgYWNfZGVjaXNpb249JGFjX2l0ZW0N CiAgICAgICAgICAgICBldmFsICJhY19kZWNpc2lvbl9tc2c9XCRhY19kZWNp c2lvbl8ke2FjX2l0ZW19X21zZyINCiAgICAgICAgIGZpDQogICAgZG9uZQ0K XSlkbmwNCmRlZmluZShBQ19ERUNJU0lPTl9GT1JDRSxbZG5sDQphY19kZWNp c2lvbj0iJDEiDQpldmFsICJhY19kZWNpc2lvbl9tc2c9XCJcJGFjX2RlY2lz aW9uXyR7YWNfZGVjaXNpb259X21zZ1wiIg0KXSlkbmwNCmRlZmluZShBQ19F TkRfREVDSVNJT04sW2RubA0KaWYgdGVzdCAiLiRhY19kZWNpc2lvbiIgPSAu OyB0aGVuDQogICAgZWNobyAiWyRdMDpFcnJvcjogZGVjaXNpb24gb24gJGFj X2RlY2lzaW9uX2l0ZW0gZmFpbGVkIiAxPiYyDQogICAgZXhpdCAxDQplbHNl DQogICAgaWYgdGVzdCAiLiRhY19kZWNpc2lvbl9tc2ciID0gLjsgdGhlbg0K ICAgICAgICBhY19kZWNpc2lvbl9tc2c9IiRhY19kZWNpc2lvbiINCiAgICBm aQ0KICAgIEFDX01TR19SRVNVTFQoW2RlY2lzaW9uIG9uICRhY19kZWNpc2lv bl9pdGVtLi4uICRhY19kZWNpc2lvbl9tc2ddKQ0KZmkNCl0pZG5sDQoNCkFD X0RFRlVOKEFDX1RFU1RfRklMRSwNCltBQ19SRVFVSVJFKFtBQ19QUk9HX0ND XSkNCmFjX3NhZmU9YGVjaG8gIiQxIiB8IHNlZCAneSUuLystJV9fcF8lJ2AN CkFDX01TR19DSEVDS0lORyhbZm9yICQxXSkNCkFDX0NBQ0hFX1ZBTChhY19j dl9maWxlXyRhY19zYWZlLCBbDQogIGlmIHRlc3QgLXIgJDE7IHRoZW4NCiAg ICBldmFsICJhY19jdl9maWxlXyRhY19zYWZlPXllcyINCiAgZWxzZQ0KICAg IGV2YWwgImFjX2N2X2ZpbGVfJGFjX3NhZmU9bm8iDQogIGZpDQpdKWRubA0K aWYgZXZhbCAidGVzdCBcImBlY2hvICckYWNfY3ZfZmlsZV8nJGFjX3NhZmVg XCIgPSB5ZXMiOyB0aGVuDQogIEFDX01TR19SRVNVTFQoeWVzKQ0KICBpZmVs c2UoWyQyXSwgLCA6LCBbJDJdKQ0KZWxzZQ0KICBBQ19NU0dfUkVTVUxUKG5v KQ0KaWZlbHNlKFskM10sICwgLCBbJDNdKQ0KZmkNCl0pDQoNCmRlZmluZShB Q19DSEVDS19NQVhTRUdTSVpFLFtkbmwNCkFDX01TR19DSEVDS0lORyhmb3Ig c2hhcmVkIG1lbW9yeSBtYXhpbXVtIHNlZ21lbnQgc2l6ZSkNCkFDX0NBQ0hF X1ZBTChhY19jdl9tYXhzZWdzaXplLA0KWw0KT0NGTEFHUz0iJENGTEFHUyIN CmNhc2UgIiQxIiBpbg0KICAgIE1NX1NITVRfTU0qICAgICkgQ0ZMQUdTPSIt RFRFU1RfTU1BUCAgICRDRkxBR1MiIDs7DQogICAgTU1fU0hNVF9JUENTSE0g KSBDRkxBR1M9Ii1EVEVTVF9TSE1HRVQgJENGTEFHUyIgOzsNCiAgICBNTV9T SE1UX0JFT1MgICApIENGTEFHUz0iLURURVNUX0FSRUFTICAkQ0ZMQUdTIiA7 Ow0KZXNhYw0KQUNfVFJZX1JVTigNCmNoYW5nZXF1b3RlKDw8LCA+PilkbmwN Cjw8DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDxzdGRsaWIuaD4N CiNpbmNsdWRlIDx1bmlzdGQuaD4NCiNpbmNsdWRlIDxmY250bC5oPg0KI2lu Y2x1ZGUgPHN5cy9maWxlLmg+DQojaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQoj aW5jbHVkZSA8c3lzL3N0YXQuaD4NCiNpZmRlZiBURVNUX01NQVANCiNpbmNs dWRlIDxzeXMvbW1hbi5oPg0KI2VuZGlmDQojaWZkZWYgVEVTVF9TSE1HRVQN CiNpZmRlZiBNTV9PU19TVU5PUw0KI2RlZmluZSBLRVJORUwgMQ0KI2VuZGlm DQojaWZkZWYgTU1fT1NfQlMyMDAwDQojZGVmaW5lIF9LTUVNVVNFUiANCiNl bmRpZg0KI2luY2x1ZGUgPHN5cy9pcGMuaD4NCiNpbmNsdWRlIDxzeXMvc2ht Lmg+DQojaWZkZWYgTU1fT1NfU1VOT1MNCiN1bmRlZiBLRVJORUwNCiNlbmRp Zg0KI2lmZGVmIE1NX09TX0JTMjAwMA0KI3VuZGVmIF9LTUVNVVNFUg0KI2Vu ZGlmDQojaWYgIWRlZmluZWQoU0hNX1IpDQojZGVmaW5lIFNITV9SIDA0MDAN CiNlbmRpZg0KI2lmICFkZWZpbmVkKFNITV9XKQ0KI2RlZmluZSBTSE1fVyAw MjAwDQojZW5kaWYNCiNlbmRpZg0KI2lmICFkZWZpbmVkKE1BUF9GQUlMRUQp DQojZGVmaW5lIE1BUF9GQUlMRUQgKCh2b2lkICopLTEpDQojZW5kaWYNCiNp ZmRlZiBNTV9PU19CRU9TDQojaW5jbHVkZSA8a2VybmVsL09TLmg+DQojZW5k aWYNCg0KDQppbnQgdGVzdGl0KGludCBzaXplKQ0Kew0KICAgIGludCBmZDsN CiAgICB2b2lkICpzZWdtZW50Ow0KI2lmZGVmIFRFU1RfTU1BUA0KICAgIGNo YXIgZmlsZVtdID0gIi4vYWNfdGVzdC50bXAiOw0KICAgIHVubGluayhmaWxl KTsNCiAgICBpZiAoKGZkID0gb3BlbihmaWxlLCBPX1JEV1J8T19DUkVBVCwg U19JUlVTUnxTX0lXVVNSKSkgPT0gLTEpDQogICAgICAgIHJldHVybiAwOw0K ICAgIGlmIChmdHJ1bmNhdGUoZmQsIHNpemUpID09IC0xKQ0KICAgICAgICBy ZXR1cm4gMDsNCiAgICBpZiAoKHNlZ21lbnQgPSAodm9pZCAqKW1tYXAoTlVM TCwgc2l6ZSwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBNQVBfU0hBUkVELCBmZCwgMCkpID09IE1B UF9GQUlMRUQpIHsNCiAgICAgICAgY2xvc2UoZmQpOw0KICAgICAgICByZXR1 cm4gMDsNCiAgICB9DQogICAgbXVubWFwKChjYWRkcl90KXNlZ21lbnQsIHNp emUpOw0KICAgIGNsb3NlKGZkKTsNCiAgICB1bmxpbmsoZmlsZSk7DQojZW5k aWYNCiNpZmRlZiBURVNUX1NITUdFVA0KICAgIGlmICgoZmQgPSBzaG1nZXQo SVBDX1BSSVZBVEUsIHNpemUsIFNITV9SfFNITV9XfElQQ19DUkVBVCkpID09 IC0xKQ0KICAgICAgICByZXR1cm4gMDsNCiAgICBpZiAoKHNlZ21lbnQgPSAo dm9pZCAqKXNobWF0KGZkLCBOVUxMLCAwKSkgPT0gKCh2b2lkICopLTEpKSB7 DQogICAgICAgIHNobWN0bChmZCwgSVBDX1JNSUQsIE5VTEwpOw0KICAgICAg ICByZXR1cm4gMDsNCiAgICB9DQogICAgc2htZHQoc2VnbWVudCk7DQogICAg c2htY3RsKGZkLCBJUENfUk1JRCwgTlVMTCk7DQojZW5kaWYNCiNpZmRlZiBU RVNUX0JFT1MNCiAgICBhcmVhX2lkIGlkOw0KICAgIGlkID0gY3JlYXRlX2Fy ZWEoIm1tX3Rlc3QiLCAodm9pZCopJnNlZ21lbnQsIEJfQU5ZX0FERFJFU1Ms IHNpemUsIA0KICAgICAgICAgICAgICBCX0xBWllfTE9DSywgQl9SRUFEX0FS RUF8Ql9XUklURV9BUkVBKTsNCiAgICBpZiAoaWQgPCAwKQ0KICAgICAgICBy ZXR1cm4gMDsNCiAgICBkZWxldGVfYXJlYShpZCk7DQojZW5kaWYNCiAgICBy ZXR1cm4gMTsNCn0NCg0KI2RlZmluZSBBQlMobikgKChuKSA+PSAwID8gKG4p IDogKC0obikpKQ0KDQppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd KSANCnsNCiAgICBpbnQgdCwgbSwgYjsNCiAgICBpbnQgZDsNCiAgICBpbnQg cmM7DQogICAgRklMRSAqZjsNCg0KICAgIC8qDQogICAgICogRmluZCBtYXhp bXVtIHBvc3NpYmxlIGFsbG9jYXRpb24gc2l6ZSBieSBwZXJmb3JtaW5nIGEN CiAgICAgKiBiaW5hcnkgc2VhcmNoIHN0YXJ0aW5nIHdpdGggYSBzZWFyY2gg c3BhY2UgYmV0d2VlbiAwIGFuZA0KICAgICAqIDY0TUIgb2YgbWVtb3J5Lg0K ICAgICAqLw0KICAgIHQgPSAxMDI0KjEwMjQqNjQgLyogPSA2NzEwODg2NCAq LzsNCiAgICBpZiAodGVzdGl0KHQpKQ0KICAgICAgICBtID0gdDsNCiAgICBl bHNlIHsNCiAgICAgICAgbSA9IDEwMjQqMTAyNCozMjsNCiAgICAgICAgYiA9 IDA7DQogICAgICAgIGZvciAoOzspIHsNCiAgICAgICAgICAgIC8qIGZwcmlu dGYoc3RkZXJyLCAidD0lZCwgbT0lZCwgYj0lZFxuIiwgdCwgbSwgYik7ICov IA0KICAgICAgICAgICAgcmMgPSB0ZXN0aXQobSk7DQogICAgICAgICAgICBp ZiAocmMpIHsNCiAgICAgICAgICAgICAgICBkID0gKCh0LW0pLzIpOw0KICAg ICAgICAgICAgICAgIGIgPSBtOw0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgZWxzZSB7DQogICAgICAgICAgICAgICAgZCA9IC0oKG0tYikvMik7DQog ICAgICAgICAgICAgICAgdCA9IG07DQogICAgICAgICAgICB9DQogICAgICAg ICAgICBpZiAoQUJTKGQpIDwgMTAyNCoxKSB7DQogICAgICAgICAgICAgICAg aWYgKCFyYykNCiAgICAgICAgICAgICAgICAgICAgbSA9IGI7DQogICAgICAg ICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBp ZiAobSA8IDEwMjQqOCkNCiAgICAgICAgICAgICAgICBicmVhazsNCiAgICAg ICAgICAgIG0gKz0gZDsNCiAgICAgICAgfQ0KICAgICAgICBpZiAobSA8IDEw MjQqOCkNCiAgICAgICAgICAgIG0gPSAwOw0KICAgIH0NCiAgICBpZiAoKGYg PSBmb3BlbigiY29uZnRlc3R2YWwiLCAidyIpKSA9PSBOVUxMKQ0KICAgICAg ICBleGl0KDEpOw0KICAgIGZwcmludGYoZiwgIiVkXG4iLCBtKTsNCiAgICBm Y2xvc2UoZik7DQogICAgZXhpdCgwKTsNCn0NCj4+DQpjaGFuZ2VxdW90ZShb LCBdKWRubA0KLFthY19jdl9tYXhzZWdzaXplPSJgY2F0IGNvbmZ0ZXN0dmFs YCINCl0sDQphY19jdl9tYXhzZWdzaXplPTANCiwNCmFjX2N2X21heHNlZ3Np emU9MA0KKQ0KQ0ZMQUdTPSIkT0NGTEFHUyINCl0pDQptc2c9IiRhY19jdl9t YXhzZWdzaXplIg0KaWYgdGVzdCAkbXNnIC1lcSA2NzEwODg2NDsgdGhlbg0K ICAgIG1zZz0iNjRNQiAoc29mdCBsaW1pdCkiDQplbGlmIHRlc3QgJG1zZyAt Z3QgMTA0ODU3NjsgdGhlbg0KICAgIG1zZz0iYGV4cHIgJG1zZyAvIDEwMjRg Ig0KICAgIG1zZz0iYGV4cHIgJG1zZyAvIDEwMjRgIg0KICAgIG1zZz0iJHtt c2d9TUIiDQplbGlmIHRlc3QgJG1zZyAtZ3QgMTAyNDsgdGhlbg0KICAgIG1z Zz0iYGV4cHIgJG1zZyAvIDEwMjRgIg0KICAgIG1zZz0iJHttc2d9S0IiDQpl bHNlDQogICAgYWNfY3ZfbWF4c2Vnc2l6ZT0wDQogICAgbXNnPXVua25vd24N CmZpDQpNTV9TSE1fTUFYU0VHU0laRT0kYWNfY3ZfbWF4c2Vnc2l6ZQ0KdGVz dCAiLiRtc2ciID0gLnVua25vd24gJiYgQUNfTVNHX0VSUk9SKFtVbmFibGUg dG8gZGV0ZXJtaW5lIG1heGltdW0gc2hhcmVkIG1lbW9yeSBzZWdtZW50IHNp emVdKQ0KQUNfTVNHX1JFU1VMVChbJG1zZ10pDQpBQ19ERUZJTkVfVU5RVU9U RUQoTU1fU0hNX01BWFNFR1NJWkUsICRNTV9TSE1fTUFYU0VHU0laRSkNCl0p DQoNCmRpdmVydA0K ---559023410-33463914-994629679=:13586--