From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10088 invoked by alias); 17 Jun 2009 21:54:55 -0000 Received: (qmail 10074 invoked by uid 22791); 17 Jun 2009 21:54:52 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-fx0-f210.google.com (HELO mail-fx0-f210.google.com) (209.85.220.210) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 17 Jun 2009 21:54:44 +0000 Received: by fxm6 with SMTP id 6so781519fxm.24 for ; Wed, 17 Jun 2009 14:54:41 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.30.19 with SMTP id j19mr268735wea.46.1245275681140; Wed, 17 Jun 2009 14:54:41 -0700 (PDT) In-Reply-To: <20090615183150.GA6198@hippogriff.homeunix.org> References: <20090614165708.22998.15238.stgit@localhost> <4a00655d0906150743h73d5d019w58a32db374861309@mail.gmail.com> <20090615173917.GA31020@hippogriff.homeunix.org> <4a00655d0906151113y5efb05a7gde0b73d7afc9d0bf@mail.gmail.com> <20090615183150.GA6198@hippogriff.homeunix.org> From: Rhys Ulerich Date: Wed, 17 Jun 2009 21:54:00 -0000 Message-ID: <4a00655d0906171454h411b717ao842bdb618513e3b9@mail.gmail.com> Subject: Re: [PATCH] Add Greville abscissae functionality to B-splines To: Patrick Alken Cc: gsl-discuss@sourceware.org Content-Type: multipart/mixed; boundary=0016e6dd86339f30d0046c925602 Mailing-List: contact gsl-discuss-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gsl-discuss-owner@sourceware.org X-SW-Source: 2009-q2/txt/msg00024.txt.bz2 --0016e6dd86339f30d0046c925602 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1930 Hi Patrick (and all), Attached is a patch to apply atop my last Greville abscissae contribution. I had badly misunderstood some of the details when I implemented it originally. This new patch corrects the implementation, units tests, and documentation. - Rhys On Mon, Jun 15, 2009 at 1:31 PM, Patrick Alken wrote: > Oops, I must have ran some autoconf tools and changed that file. > I think its fixed now. > > Patrick > > On Mon, Jun 15, 2009 at 01:13:32PM -0500, Rhys Ulerich wrote: >> Hi Patrick, >> >> I noticed in the commit there were changes made to install.sh >> (http://git.savannah.gnu.org/gitweb/?p=3Dgsl.git;a=3Dcommit;h=3Dccccc3cb= 7630ea43bdf365bcbaec71e31f8aea91). >> =A0Were those deliberate? >> >> - Rhys >> >> On Mon, Jun 15, 2009 at 12:39 PM, Patrick >> Alken wrote: >> > Nice work, I have added your patch to the repository and >> > inserted the appropriate gsl_bspline_free's in test.c. >> > >> > Patrick >> > >> > On Mon, Jun 15, 2009 at 09:43:46AM -0500, Rhys Ulerich wrote: >> >> Thanks guys. >> >> >> >> FYI, I woke up this morning and realized I forgot a gsl_bspline_free >> >> call at the bottom of each of the unit test blocks in test.c. >> >> >> >> - Rhys >> >> >> >> On Mon, Jun 15, 2009 at 5:26 AM, Brian Gough wrote: >> >> > At Sun, 14 Jun 2009 12:02:10 -0500, >> >> > Rhys Ulerich wrote: >> >> >> =A0This change adds computing Greville abscissae to the GSL B-spli= ne >> >> >> =A0routines. =A0Updates to unit tests and documentation are includ= ed. >> >> >> =A0The routines are written so that if the b-spline classes have l= ower >> >> >> =A0continuity basis added later (i.e. by adding multiple knots per >> >> >> =A0interior breakpoint), these should continue to do the right thi= ng. >> >> > >> >> > Cool. I'll let Patrick take care of these. >> >> > >> >> > -- >> >> > Brian Gough >> >> > >> >> > >> > > --0016e6dd86339f30d0046c925602 Content-Type: text/x-diff; charset=US-ASCII; name="0001-Fixed-Greville-abscissae-implementation.patch" Content-Disposition: attachment; filename="0001-Fixed-Greville-abscissae-implementation.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fw2ks3250 Content-length: 13018 RnJvbSA3YWM2ZWQyOWNjMzAyZjAwMjI4NzMyZDQwMDBiZDMyNGEyYTk1MjQx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaHlzIFVsZXJpY2gg PHJoeXMudWxlcmljaEBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTcgSnVuIDIw MDkgMTY6Mjc6MjcgLTA1MDAKU3ViamVjdDogW1BBVENIXSBGaXhlZCBHcmV2 aWxsZSBhYnNjaXNzYWUgaW1wbGVtZW50YXRpb24KClJlcGFpcnMgdGhlIHBy ZXZpb3VzLCBicm9rZW4gaW1wbGVtZW50YXRpb24gb2YgR3JldmlsbGUgYWJz Y2lzc2FlLiAgSSBoYWQKbWlzdW5kZXJzdG9vZCB0aGUgZGVmaW5pdGlvbiBi ZWNhdXNlIGl0IHdhcyBpbXBsaWVkIHRoYXQgdGhlIGZpcnN0IGFuZCBsYXN0 Cmtub3RzIGFyZSBleGNsdWRlZCBwcmlvciB0byB0aGUgYXZlcmFnaW5nIHBy b2Nlc3MuICBUaGF0IGNoYW5nZXMgYm90aCB0aGUKbnVtYmVyIGFuZCB2YWx1 ZXMgb2YgdGhlIGxvY2F0aW9ucy4gIFVwZGF0ZXMgdG8gdW5pdCB0ZXN0cyBh bmQgZG9jdW1lbnRhdGlvbgppbmNsdWRlZC4KCi0tLQogYnNwbGluZS9ic3Bs aW5lLmMgICAgIHwgICAyMSArKysrKysrKystLS0tLS0tLQogYnNwbGluZS9n c2xfYnNwbGluZS5oIHwgICAgMSAtCiBic3BsaW5lL3Rlc3QuYyAgICAgICAg fCAgIDU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLQogZG9jL2JzcGxpbmUudGV4aSAgICAgIHwgICAyNCArKysr KysrKysrKysrKy0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRp b25zKCspLCAzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ic3BsaW5l L2JzcGxpbmUuYyBiL2JzcGxpbmUvYnNwbGluZS5jCmluZGV4IGQxZTQ0NzAu LmI1MzhlMDEgMTAwNjQ0Ci0tLSBhL2JzcGxpbmUvYnNwbGluZS5jCisrKyBi L2JzcGxpbmUvYnNwbGluZS5jCkBAIC0yMDgsMjcgKzIwOCwyOCBAQCBnc2xf YnNwbGluZV9icmVha3BvaW50IChzaXplX3QgaSwgZ3NsX2JzcGxpbmVfd29y a3NwYWNlICogdykKICAgcmV0dXJuIGdzbF92ZWN0b3JfZ2V0ICh3LT5rbm90 cywgaik7CiB9CiAKLS8qIFJldHVybiB0aGUgbnVtYmVyIG9mIEdyZXZpbGxl IGFic2Npc3NhZSBmb3IgdGhpcyBiYXNpcyAqLwotc2l6ZV90Ci1nc2xfYnNw bGluZV9ncmV2aWxsZV9uYWJzY2lzc2FlKGdzbF9ic3BsaW5lX3dvcmtzcGFj ZSAqdykKLXsKLSAgcmV0dXJuIHctPmtub3RzLT5zaXplIC0gdy0+a20xOwot fQotCiAvKiBSZXR1cm4gdGhlIGxvY2F0aW9uIG9mIHRoZSBpLXRoIEdyZXZp bGxlIGFic2Npc3NhICovCiBkb3VibGUKIGdzbF9ic3BsaW5lX2dyZXZpbGxl X2Fic2Npc3NhKHNpemVfdCBpLCBnc2xfYnNwbGluZV93b3Jrc3BhY2UgKncp CiB7CiAjaWYgR1NMX1JBTkdFX0NIRUNLCi0gIGlmIChHU0xfUkFOR0VfQ09O RChpID49IGdzbF9ic3BsaW5lX2dyZXZpbGxlX25hYnNjaXNzYWUodykpKQor ICBpZiAoR1NMX1JBTkdFX0NPTkQoaSA+PSBnc2xfYnNwbGluZV9uY29lZmZz KHcpKSkKICAgICB7CiAgICAgICBHU0xfRVJST1JfVkFMICgiR3JldmlsbGUg YWJzY2lzc2EgaW5kZXggb3V0IG9mIHJhbmdlIiwgR1NMX0VJTlZBTCwgMCk7 CiAgICAgfQogI2VuZGlmCiAgIGNvbnN0IHNpemVfdCBzdHJpZGUgPSB3LT5r bm90cy0+c3RyaWRlOwotICBjb25zdCBkb3VibGUgKiBkYXRhID0gdy0+a25v dHMtPmRhdGEgKyBpKnN0cmlkZTsKKyAgc2l6ZV90IGttMSA9IHctPmttMTsK KyAgZG91YmxlICogZGF0YSA9IHctPmtub3RzLT5kYXRhICsgKGkrMSkqc3Ry aWRlOworCisgIGlmIChrbTEgPT0gMCkKKyAgICB7CisgICAgICAvKiBSZXR1 cm4gaW50ZXJ2YWwgbWlkcG9pbnRzIGluIGRlZ2VuZXJhdGUgayA9IDEgY2Fz ZSovCisgICAgICBrbTEgICA9IDI7CisgICAgICBkYXRhIC09IHN0cmlkZTsK KyAgICB9CiAKLSAgcmV0dXJuIGdzbF9zdGF0c19tZWFuKGRhdGEsIHN0cmlk ZSwgdy0+ayk7CisgIHJldHVybiBnc2xfc3RhdHNfbWVhbihkYXRhLCBzdHJp ZGUsIGttMSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9ic3BsaW5lL2dzbF9i c3BsaW5lLmggYi9ic3BsaW5lL2dzbF9ic3BsaW5lLmgKaW5kZXggZjMwZmVm YS4uN2I4OWExMCAxMDA2NDQKLS0tIGEvYnNwbGluZS9nc2xfYnNwbGluZS5o CisrKyBiL2JzcGxpbmUvZ3NsX2JzcGxpbmUuaApAQCAtNjgsNyArNjgsNiBA QCBzaXplX3QgZ3NsX2JzcGxpbmVfbmNvZWZmcyhnc2xfYnNwbGluZV93b3Jr c3BhY2UgKiB3KTsKIHNpemVfdCBnc2xfYnNwbGluZV9vcmRlcihnc2xfYnNw bGluZV93b3Jrc3BhY2UgKiB3KTsKIHNpemVfdCBnc2xfYnNwbGluZV9uYnJl YWsoZ3NsX2JzcGxpbmVfd29ya3NwYWNlICogdyk7CiBkb3VibGUgZ3NsX2Jz cGxpbmVfYnJlYWtwb2ludChzaXplX3QgaSwgZ3NsX2JzcGxpbmVfd29ya3Nw YWNlICogdyk7Ci1zaXplX3QgZ3NsX2JzcGxpbmVfZ3JldmlsbGVfbmFic2Np c3NhZShnc2xfYnNwbGluZV93b3Jrc3BhY2UgKncpOwogZG91YmxlIGdzbF9i c3BsaW5lX2dyZXZpbGxlX2Fic2Npc3NhKHNpemVfdCBpLCBnc2xfYnNwbGlu ZV93b3Jrc3BhY2UgKncpOwogCiBpbnQKZGlmZiAtLWdpdCBhL2JzcGxpbmUv dGVzdC5jIGIvYnNwbGluZS90ZXN0LmMKaW5kZXggOTI1NmE3Ny4uODg1ZmI4 NyAxMDA2NDQKLS0tIGEvYnNwbGluZS90ZXN0LmMKKysrIGIvYnNwbGluZS90 ZXN0LmMKQEAgLTI2NywyNSArMjY3LDUzIEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogICAgIGdzbF92ZWN0b3JfZnJlZShicmVha3B0cyk7CiAg IH0KIAotICAvKiBDaGVjayBHcmV2aWxsZSBhYnNjaXNzYWUgZnVuY3Rpb25h bGl0eSBvbiBhIHVuaWZvcm0gaz0zICovCisgIC8qIENoZWNrIEdyZXZpbGxl IGFic2Npc3NhZSBmdW5jdGlvbmFsaXR5IG9uIGEgbm9uLXVuaWZvcm0gaz0x ICovCiAgIHsKICAgICBzaXplX3QgaTsgLyogbG9vcGluZyAqLwogCiAgICAg LyogVGVzdCBwYXJhbWV0ZXJzICovCi0gICAgY29uc3Qgc2l6ZV90IGsgPSAz OwotICAgIGNvbnN0IGRvdWJsZSBicG9pbnRfZGF0YVtdICAgID0geyAwLjAs IDIuMCwgNC4wIH07CisgICAgY29uc3Qgc2l6ZV90IGsgPSAxOworICAgIGNv bnN0IGRvdWJsZSBicG9pbnRfZGF0YVtdICAgID0geyAwLjAsIDAuMiwgMC41 LCAwLjc1LCAxLjAgfTsKKyAgICBjb25zdCBzaXplX3QgbmJyZWFrICAgICAg ICAgICA9IHNpemVvZihicG9pbnRfZGF0YSkvc2l6ZW9mKGJwb2ludF9kYXRh WzBdKTsKKworICAgIC8qIEV4cGVjdGVkIHJlc3VsdHMgKi8KKyAgICBjb25z dCBkb3VibGUgYWJzY2lzc2FlX2RhdGFbXSA9IHsgMC4xLCAwLjM1LCAwLjYy NSwgMC44NzUgfTsKKyAgICBjb25zdCBzaXplX3QgbmFic2Npc3NhZSAgICAg ICA9IHNpemVvZihhYnNjaXNzYWVfZGF0YSkvc2l6ZW9mKGFic2Npc3NhZV9k YXRhWzBdKTsKKworICAgIGdzbF92ZWN0b3JfY29uc3RfdmlldyBicG9pbnRz ID0gZ3NsX3ZlY3Rvcl9jb25zdF92aWV3X2FycmF5KGJwb2ludF9kYXRhLCBu YnJlYWspOworICAgIGdzbF9ic3BsaW5lX3dvcmtzcGFjZSAqdyA9IGdzbF9i c3BsaW5lX2FsbG9jKGssIG5icmVhayk7CisgICAgZ3NsX2JzcGxpbmVfa25v dHMoKGNvbnN0IGdzbF92ZWN0b3IgKikgJmJwb2ludHMsIHcpOworCisgICAg Z3NsX3Rlc3RfaW50KG5hYnNjaXNzYWUsIGdzbF9ic3BsaW5lX25jb2VmZnMo dyksCisgICAgICAgICJiLXNwbGluZSBrPSVkIG51bWJlciBvZiBhYnNjaXNz YWUiLCBrKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmFic2Npc3NhZTsgKytp KQorICAgICAgeworICAgICAgICBnc2xfdGVzdF9hYnMoZ3NsX2JzcGxpbmVf Z3JldmlsbGVfYWJzY2lzc2EoaSwgdyksIGFic2Npc3NhZV9kYXRhW2ldLCAy KmsqR1NMX0RCTF9FUFNJTE9OLAorICAgICAgICAgICAgImItc3BsaW5lIGs9 JWQgR3JldmlsbGUgYWJzY2lzc2EgIyVkIGF0IHggPSAlZiIsIGssIGksIGFi c2Npc3NhZV9kYXRhW2ldKTsKKyAgICAgIH0KKworICAgIGdzbF9ic3BsaW5l X2ZyZWUodyk7CisgIH0KKworICAvKiBDaGVjayBHcmV2aWxsZSBhYnNjaXNz YWUgZnVuY3Rpb25hbGl0eSBvbiBhIG5vbi11bmlmb3JtIGs9MiAqLworICB7 CisgICAgc2l6ZV90IGk7IC8qIGxvb3BpbmcgKi8KKworICAgIC8qIFRlc3Qg cGFyYW1ldGVycyAqLworICAgIGNvbnN0IHNpemVfdCBrID0gMjsKKyAgICBj b25zdCBkb3VibGUgYnBvaW50X2RhdGFbXSAgICA9IHsgMC4wLCAwLjIsIDAu NSwgMC43NSwgMS4wIH07CiAgICAgY29uc3Qgc2l6ZV90IG5icmVhayAgICAg ICAgICAgPSBzaXplb2YoYnBvaW50X2RhdGEpL3NpemVvZihicG9pbnRfZGF0 YVswXSk7CiAKICAgICAvKiBFeHBlY3RlZCByZXN1bHRzICovCi0gICAgY29u c3QgZG91YmxlIGFic2Npc3NhZV9kYXRhW10gPSB7IDAuMCwgMi4wLzMuMCwg Mi4wLCAxMC4wLzMuMCwgNC4wIH07CisgICAgY29uc3QgZG91YmxlIGFic2Np c3NhZV9kYXRhW10gPSB7IDAuMCwgMC4yLCAwLjUsIDAuNzUsIDEuMCB9Owog ICAgIGNvbnN0IHNpemVfdCBuYWJzY2lzc2FlICAgICAgID0gc2l6ZW9mKGFi c2Npc3NhZV9kYXRhKS9zaXplb2YoYWJzY2lzc2FlX2RhdGFbMF0pOwogCiAg ICAgZ3NsX3ZlY3Rvcl9jb25zdF92aWV3IGJwb2ludHMgPSBnc2xfdmVjdG9y X2NvbnN0X3ZpZXdfYXJyYXkoYnBvaW50X2RhdGEsIG5icmVhayk7CiAgICAg Z3NsX2JzcGxpbmVfd29ya3NwYWNlICp3ID0gZ3NsX2JzcGxpbmVfYWxsb2Mo aywgbmJyZWFrKTsKICAgICBnc2xfYnNwbGluZV9rbm90cygoY29uc3QgZ3Ns X3ZlY3RvciAqKSAmYnBvaW50cywgdyk7CiAKLSAgICBnc2xfdGVzdF9pbnQo Z3NsX2JzcGxpbmVfZ3JldmlsbGVfbmFic2Npc3NhZSh3KSwgbmFic2Npc3Nh ZSwKLSAgICAgICAgImItc3BsaW5lIGs9JWQgbnVtYmVyIG9mIEdyZXZpbGxl IGFic2Npc3NhZSBpcyAlZCIsIGssIG5hYnNjaXNzYWUpOworICAgIGdzbF90 ZXN0X2ludChuYWJzY2lzc2FlLCBnc2xfYnNwbGluZV9uY29lZmZzKHcpLAor ICAgICAgICAiYi1zcGxpbmUgaz0lZCBudW1iZXIgb2YgYWJzY2lzc2FlIiwg ayk7CiAgICAgZm9yIChpID0gMDsgaSA8IG5hYnNjaXNzYWU7ICsraSkKICAg ICAgIHsKICAgICAgICAgZ3NsX3Rlc3RfYWJzKGdzbF9ic3BsaW5lX2dyZXZp bGxlX2Fic2Npc3NhKGksIHcpLCBhYnNjaXNzYWVfZGF0YVtpXSwgMiprKkdT TF9EQkxfRVBTSUxPTiwKQEAgLTMwNSwxNiArMzMzLDE2IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgIGNvbnN0IHNpemVfdCBuYnJlYWsg ICAgICAgICAgID0gc2l6ZW9mKGJwb2ludF9kYXRhKS9zaXplb2YoYnBvaW50 X2RhdGFbMF0pOwogCiAgICAgLyogRXhwZWN0ZWQgcmVzdWx0cyAqLwotICAg IGNvbnN0IGRvdWJsZSBhYnNjaXNzYWVfZGF0YVtdID0geyAgICAgICAwLjAs IDEuMC8xNS4wLCAgNy4wLzMwLjAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDI5LjAvNjAuMCwgMy4wLzQuMCwgIDExLjAvMTIu MCwgMS4wIH07CisgICAgY29uc3QgZG91YmxlIGFic2Npc3NhZV9kYXRhW10g PSB7ICAgICAgMC4wLCAxLjAvMTAuMCwgNy4wLzIwLjAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuMC8gOC4wLCA3LjAvIDgu MCwgICAgICAxLjAgfTsKICAgICBjb25zdCBzaXplX3QgbmFic2Npc3NhZSAg ICAgICA9IHNpemVvZihhYnNjaXNzYWVfZGF0YSkvc2l6ZW9mKGFic2Npc3Nh ZV9kYXRhWzBdKTsKIAogICAgIGdzbF92ZWN0b3JfY29uc3RfdmlldyBicG9p bnRzID0gZ3NsX3ZlY3Rvcl9jb25zdF92aWV3X2FycmF5KGJwb2ludF9kYXRh LCBuYnJlYWspOwogICAgIGdzbF9ic3BsaW5lX3dvcmtzcGFjZSAqdyA9IGdz bF9ic3BsaW5lX2FsbG9jKGssIG5icmVhayk7CiAgICAgZ3NsX2JzcGxpbmVf a25vdHMoKGNvbnN0IGdzbF92ZWN0b3IgKikgJmJwb2ludHMsIHcpOwogCi0g ICAgZ3NsX3Rlc3RfaW50KGdzbF9ic3BsaW5lX2dyZXZpbGxlX25hYnNjaXNz YWUodyksIG5hYnNjaXNzYWUsCi0gICAgICAgICJiLXNwbGluZSBrPSVkIG51 bWJlciBvZiBHcmV2aWxsZSBhYnNjaXNzYWUgaXMgJWQiLCBrLCBuYWJzY2lz c2FlKTsKKyAgICBnc2xfdGVzdF9pbnQobmFic2Npc3NhZSwgZ3NsX2JzcGxp bmVfbmNvZWZmcyh3KSwKKyAgICAgICAgImItc3BsaW5lIGs9JWQgbnVtYmVy IG9mIGFic2Npc3NhZSIsIGspOwogICAgIGZvciAoaSA9IDA7IGkgPCBuYWJz Y2lzc2FlOyArK2kpCiAgICAgICB7CiAgICAgICAgIGdzbF90ZXN0X2Ficyhn c2xfYnNwbGluZV9ncmV2aWxsZV9hYnNjaXNzYShpLCB3KSwgYWJzY2lzc2Fl X2RhdGFbaV0sIDIqaypHU0xfREJMX0VQU0lMT04sCkBAIC0zMzQsMTYgKzM2 MiwxNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBjb25z dCBzaXplX3QgbmJyZWFrICAgICAgICAgICA9IHNpemVvZihicG9pbnRfZGF0 YSkvc2l6ZW9mKGJwb2ludF9kYXRhWzBdKTsKIAogICAgIC8qIEV4cGVjdGVk IHJlc3VsdHMgKi8KLSAgICBjb25zdCBkb3VibGUgYWJzY2lzc2FlX2RhdGFb XSA9IHsgICAgICAgMC4wLCAgMS4wLzIwLjAsICA3LjAvNDAuMCwgIDI5LjAv ODAuMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg NDkuMC84MC4wLCAxMy4wLzE2LjAsIDE1LjAvMTYuMCwgICAgICAgIDEuMCB9 OworICAgIGNvbnN0IGRvdWJsZSBhYnNjaXNzYWVfZGF0YVtdID0geyAwLjAs ICAxLjAvMTUuMCwgIDcuMC8zMC4wLCAgMjkuMC82MC4wLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjAvIDQuMCwg MTEuMC8xMi4wLCAgICAgICAgMS4wIH07CiAgICAgY29uc3Qgc2l6ZV90IG5h YnNjaXNzYWUgICAgICAgPSBzaXplb2YoYWJzY2lzc2FlX2RhdGEpL3NpemVv ZihhYnNjaXNzYWVfZGF0YVswXSk7CiAKICAgICBnc2xfdmVjdG9yX2NvbnN0 X3ZpZXcgYnBvaW50cyA9IGdzbF92ZWN0b3JfY29uc3Rfdmlld19hcnJheShi cG9pbnRfZGF0YSwgbmJyZWFrKTsKICAgICBnc2xfYnNwbGluZV93b3Jrc3Bh Y2UgKncgPSBnc2xfYnNwbGluZV9hbGxvYyhrLCBuYnJlYWspOwogICAgIGdz bF9ic3BsaW5lX2tub3RzKChjb25zdCBnc2xfdmVjdG9yICopICZicG9pbnRz LCB3KTsKIAotICAgIGdzbF90ZXN0X2ludChnc2xfYnNwbGluZV9ncmV2aWxs ZV9uYWJzY2lzc2FlKHcpLCBuYWJzY2lzc2FlLAotICAgICAgICAiYi1zcGxp bmUgaz0lZCBudW1iZXIgb2YgR3JldmlsbGUgYWJzY2lzc2FlIGlzICVkIiwg aywgbmFic2Npc3NhZSk7CisgICAgZ3NsX3Rlc3RfaW50KG5hYnNjaXNzYWUs IGdzbF9ic3BsaW5lX25jb2VmZnModyksCisgICAgICAgICJiLXNwbGluZSBr PSVkIG51bWJlciBvZiBhYnNjaXNzYWUiLCBrKTsKICAgICBmb3IgKGkgPSAw OyBpIDwgbmFic2Npc3NhZTsgKytpKQogICAgICAgewogICAgICAgICBnc2xf dGVzdF9hYnMoZ3NsX2JzcGxpbmVfZ3JldmlsbGVfYWJzY2lzc2EoaSwgdyks IGFic2Npc3NhZV9kYXRhW2ldLCAyKmsqR1NMX0RCTF9FUFNJTE9OLApkaWZm IC0tZ2l0IGEvZG9jL2JzcGxpbmUudGV4aSBiL2RvYy9ic3BsaW5lLnRleGkK aW5kZXggOGRmODJiZS4uZWI2NGM0NyAxMDA2NDQKLS0tIGEvZG9jL2JzcGxp bmUudGV4aQorKysgYi9kb2MvYnNwbGluZS50ZXhpCkBAIC0yMDUsMTcgKzIw NSwxOSBAQCB0aGVpciBkZXJpdmF0aXZlcyB0byBiZSBjb21wdXRlZCB3aXRo b3V0IHVubmVjZXNzYXJ5IHRlcm1zLgogQHNlY3Rpb24gR3JldmlsbGUgYWJz Y2lzc2FlCiBAY2luZGV4IGJhc2lzIHNwbGluZXMsIEdyZXZpbGxlIGFic2Np c3NhZQogCi1UaGUgR3JldmlsbGUgYWJzY2lzc2FlIGFyZSBkZWZpbmVkIHRv IGJlIHRoZSBtZWFuIGxvY2F0aW9uIG9mIEBtYXRoe2t9Ci1jb25zZWN1dGl2 ZSBrbm90cyBpbiB0aGUga25vdCB2ZWN0b3IgZm9yIGVhY2ggYmFzaXMgc3Bs aW5lIG9mIG9yZGVyIEBtYXRoe2t9LgotVGhleSBhcmUgb2Z0ZW4gdXNlZCBp biBCLXNwbGluZSBjb2xsb2NhdGlvbiBhcHBsaWNhdGlvbnMuCitUaGUgR3Jl dmlsbGUgYWJzY2lzc2FlIGFyZSBkZWZpbmVkIHRvIGJlIHRoZSBtZWFuIGxv Y2F0aW9uIG9mIEBtYXRoe2stMX0KK2NvbnNlY3V0aXZlIGtub3RzIGluIHRo ZSBrbm90IHZlY3RvciBmb3IgZWFjaCBiYXNpcyBzcGxpbmUgZnVuY3Rpb24g b2Ygb3JkZXIKK0BtYXRoe2t9LiAgTm90ZSB0aGF0IHRoZSBmaXJzdCBhbmQg bGFzdCBrbm90cyBpbiB0aGUga25vdCB2ZWN0b3IgYXJlIGV4Y2x1ZGVkCit3 aGVuIGFwcGx5aW5nIHRoaXMgZGVmaW5pdGlvbjsgY29uc2VxdWVudGx5IHRo ZXJlIGFyZQorQGNvZGV7Z3NsX2JzcGxpbmVfbmNvZWZmc30gR3JldmlsbGUg YWJzY2lzc2EuICBUaGV5IGFyZSBvZnRlbiB1c2VkIGluIEItc3BsaW5lCitj b2xsb2NhdGlvbiBhcHBsaWNhdGlvbnMgYW5kIG1heSBhbHNvIGJlIGNhbGxl ZCBNYXJzZGVuLVNjaG9lbmJlcmcgcG9pbnRzLgogCi1AZGVmdHlwZWZ1biBp bnQgZ3NsX2JzcGxpbmVfZ3JldmlsbGVfbmFic2Npc3NhZSAoZ3NsX2JzcGxp bmVfd29ya3NwYWNlICogQHZhcnt3fSkKLVJldHVybnMgdGhlIG51bWJlciBv ZiBHcmV2aWxsZSBhYnNjaXNzYWUgZm9yIHRoZSBnaXZlbiBzcGxpbmUgYmFz aXMuCi1AZW5kIGRlZnR5cGVmdW4KK1RoZSBhYm92ZSBkZWZpbml0aW9uIGlz IHVuZGVmaW5lZCBmb3IgQG1hdGh7az0xfS4gIFRoZSBpbXBsZW1lbnRhdGlv biBjaG9vc2VzCit0byByZXR1cm4gaW50ZXJ2YWwgbWlkcG9pbnRzIGluIHRo ZSBkZWdlbmVyYXRlIEBtYXRoe2s9MX0gY2FzZS4KIAogQGRlZnR5cGVmdW4g ZG91YmxlIGdzbF9ic3BsaW5lX2dyZXZpbGxlX2Fic2Npc3NhIChzaXplX3Qg QHZhcntpfSwgZ3NsX2JzcGxpbmVfd29ya3NwYWNlICpAdmFye3d9KTsKIFJl dHVybnMgdGhlIGxvY2F0aW9uIG9mIHRoZSBAbWF0aHtpfS10aCBHcmV2aWxs ZSBhYnNjaXNzYSBmb3IgdGhlIGdpdmVuIHNwbGluZQotYmFzaXMuCitiYXNp cy4gIEhlcmUsIEBtYXRoe2kgPSAwfSwgLi4uLCBAY29kZXtnc2xfYnNwbGlu ZV9uY29lZmZzKHcpfS4KIEBlbmQgZGVmdHlwZWZ1bgogCiBAbm9kZSBFeGFt cGxlIHByb2dyYW1zIGZvciBCLXNwbGluZXMKQEAgLTI1NSw2ICsyNTcsMTQg QEAgQy4gZGUgQm9vciwgQGNpdGV7QSBQcmFjdGljYWwgR3VpZGUgdG8gU3Bs aW5lc30gKDE5NzgpLCBTcHJpbmdlci1WZXJsYWcsCiBJU0JOIDAtMzg3LTkw MzU2LTkuCiBAZW5kIGl0ZW1pemUKIAorRnVydGhlciBpbmZvcm1hdGlvbiBv ZiBHcmV2aWxsZSBhYnNjaXNzYWUgYW5kIEItc3BsaW5lIGNvbGxvY2F0aW9u CitjYW4gYmUgZm91bmQgaW4gdGhlIGZvbGxvd2luZyBwYXBlciwKKworQGl0 ZW1pemUgQGFzaXMKK1JpY2hhcmQgVy4gSm9obnNvbiwgSGlnaGVyIG9yZGVy IEItc3BsaW5lIGNvbGxvY2F0aW9uIGF0IHRoZSBHcmV2aWxsZQorYWJzY2lz c2FlLiAgQGNpdGV7QXBwbGllZCBOdW1lcmljYWwgTWF0aGVtYXRpY3N9LiB2 b2wuQDogNTIsIDIwMDUsIDYzLS03NS4KK0BlbmQgaXRlbWl6ZQorCiBAbm9p bmRlbnQKIEEgbGFyZ2UgY29sbGVjdGlvbiBvZiBCLXNwbGluZSByb3V0aW5l cyBpcyBhdmFpbGFibGUgaW4gdGhlCiBAc2N7cHBwYWNrfSBsaWJyYXJ5IGF2 YWlsYWJsZSBhdCBAdXJlZntodHRwOi8vd3d3Lm5ldGxpYi5vcmcvcHBwYWNr fSwKLS0gCjEuNS40LjMKCg== --0016e6dd86339f30d0046c925602--