<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Here is the patch:<div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span><a href="http://review.source.kitware.com/#/c/19878/" class="">http://review.source.kitware.com/#/c/19878/</a></div><div class=""><br class=""></div><div class="">I don’t have time right now, for that but it would also be good to make a similar test with Data (i.e. PointData and CellData) to make sure there are not similar memory leaks…</div><div class=""><br class=""></div><div class="">Best</div><div class="">Arnaud</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 05 Jun 2015, at 08:27, Arnaud Gelas <<a href="mailto:arnaudgelas@gmail.com" class="">arnaudgelas@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi,<div class=""><br class=""></div><div class="">Thanks for pointing out this problem!</div><div class=""><br class=""></div><div class="">The real problem is not with itk::QuadEdgeMesh, but with itk::Mesh, if you just change the mesh type from itk::QuadEdgeMesh to itk::Mesh, you’ll also get memory leaks.</div><div class="">It just happens, that CellsContainer memory is not released for the current mesh when doing a Graft on another one.</div><div class=""><br class=""></div><div class="">I’ll submit a patch very soon to fix it, and add both of you as reviewer!</div><div class=""><br class=""></div><div class="">Thanks</div><div class="">Arnaud</div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On 04 Jun 2015, at 18:55, wanlin zhu <<a href="mailto:wanlin.zhu@outlook.com" class="">wanlin.zhu@outlook.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="color: rgb(68, 68, 68); font-family: Calibri; line-height: 22.7199993133545px; background-color: rgb(255, 255, 255);" class="">I think the memory leak issue origined from QuadEdgeMesh,</span><div style="line-height: 22.7199993133545px; color: rgb(68, 68, 68); font-family: Calibri; background-color: rgb(255, 255, 255);" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px; color: rgb(68, 68, 68); font-family: Calibri; background-color: rgb(255, 255, 255);" class=""><div style="line-height: 22.7199993133545px;" class="">#include "itkQuadEdgeMesh.h"</div><div style="line-height: 22.7199993133545px;" class="">#include "itkRegularSphereMeshSource.h"</div><div style="line-height: 22.7199993133545px;" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px;" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px;" class="">typedef itk::QuadEdgeMesh< double, 3 > TMesh;</div><div style="line-height: 22.7199993133545px;" class="">typedef itk::RegularSphereMeshSource< TMesh > TSource;</div><div style="line-height: 22.7199993133545px;" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px;" class="">int main(int argc, char ** argv)</div><div style="line-height: 22.7199993133545px;" class="">{</div><div style="line-height: 22.7199993133545px;" class=""> TSource::Pointer source = TSource::New();</div><div style="line-height: 22.7199993133545px;" class=""> source->Update();</div><div style="line-height: 22.7199993133545px;" class=""> TSource::Pointer source1 = TSource::New();</div><div style="line-height: 22.7199993133545px;" class=""> source1->SetResolution(5);</div><div style="line-height: 22.7199993133545px;" class=""> source1->Update();</div><div style="line-height: 22.7199993133545px;" class=""> TMesh::Pointer mesh = source->GetOutput();</div><div style="line-height: 22.7199993133545px;" class=""> mesh->Graft( source1->GetOutput());</div><div style="line-height: 22.7199993133545px;" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px;" class=""> return EXIT_SUCCESS;</div><div style="line-height: 22.7199993133545px;" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px;" class="">}</div></div><div style="line-height: 22.7199993133545px; color: rgb(68, 68, 68); font-family: Calibri; background-color: rgb(255, 255, 255);" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px; color: rgb(68, 68, 68); font-family: Calibri; background-color: rgb(255, 255, 255);" class="">It gives memory leak errors as well. </div><div style="line-height: 22.7199993133545px; color: rgb(68, 68, 68); font-family: Calibri; background-color: rgb(255, 255, 255);" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px; color: rgb(68, 68, 68); font-family: Calibri; background-color: rgb(255, 255, 255);" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px; color: rgb(68, 68, 68); font-family: Calibri; background-color: rgb(255, 255, 255);" class=""><br style="line-height: 22.7199993133545px;" class=""></div><div style="line-height: 22.7199993133545px; color: rgb(68, 68, 68); font-family: Calibri; background-color: rgb(255, 255, 255);" class="">wanlin</div><br class=""><div class="">> Date: Wed, 3 Jun 2015 09:49:33 -0700<br class="">> From:<span class="Apple-converted-space"> </span><a href="mailto:davis.vigneault@gmail.com" class="">davis.vigneault@gmail.com</a><br class="">> To:<span class="Apple-converted-space"> </span><a href="mailto:insight-users@itk.org" class="">insight-users@itk.org</a><br class="">> Subject: [ITK-users] Possible memory leak in itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter<br class="">><span class="Apple-converted-space"> </span><br class="">> All--<br class="">><span class="Apple-converted-space"> </span><br class="">> I've been observing some erratic behavior in my program, which after some<br class="">> investigation I believe may be due to a memory leak in<br class="">> itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter. I've copied below<br class="">> a minimal example which exhibits the problem, along with the output from<br class="">> valgrind showing 15,360 bytes lost in 128 blocks. Is anyone able to<br class="">> reproduce this issue? (Note that the 72,704 bytes still reachable is<span class="Apple-converted-space"> </span><br class="">> valgrind's fault<br class="">> <<a href="http://stackoverflow.com/questions/30376601/valgrind-memory-still-reachable-with-trivial-program-using-iostream" class="">http://stackoverflow.com/questions/30376601/valgrind-memory-still-reachable-with-trivial-program-using-iostream</a>><span class="Apple-converted-space"> </span><br class="">> , not ITK's).<br class="">><span class="Apple-converted-space"> </span><br class="">> ///////////////////////////////////////<br class="">> // MINIMAL EXAMPLE //<br class="">> ///////////////////////////////////////<br class="">><span class="Apple-converted-space"> </span><br class="">> #include "itkQuadEdgeMesh.h"<br class="">> #include "itkRegularSphereMeshSource.h"<br class="">> #include "itkLoopTriangleCellSubdivisionQuadEdgeMeshFilter.h"<br class="">> #include "itkIterativeTriangleCellSubdivisionQuadEdgeMeshFilter.h"<br class="">><span class="Apple-converted-space"> </span><br class="">> typedef itk::QuadEdgeMesh< double, 3 > TMesh;<br class="">> typedef itk::RegularSphereMeshSource< TMesh > TSource;<br class="">> typedef itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh, TMesh ><br class="">> TLoop;<br class="">> typedef itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter< TMesh,<br class="">> TLoop > TSubdivide;<br class="">><span class="Apple-converted-space"> </span><br class="">> int main(int argc, char ** argv)<br class="">> {<br class="">><span class="Apple-converted-space"> </span><br class="">> TSource::Pointer source = TSource::New();<br class="">> TSubdivide::Pointer sub = TSubdivide::New();<br class="">> sub->SetInput( source->GetOutput() );<br class="">> sub->SetResolutionLevels( 1 );<br class="">> sub->Update();<br class="">><span class="Apple-converted-space"> </span><br class="">> return EXIT_SUCCESS;<br class="">><span class="Apple-converted-space"> </span><br class="">> }<br class="">><span class="Apple-converted-space"> </span><br class="">> ////////////////////////////////////////<br class="">> // VALGRIND OUTPUT //<br class="">> ////////////////////////////////////////<br class="">><span class="Apple-converted-space"> </span><br class="">> $ valgrind --leak-check=full ./dv-registration<br class="">> ==20328== Memcheck, a memory error detector<br class="">> ==20328== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.<br class="">> ==20328== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info<br class="">> ==20328== Command: ./dv-registration<br class="">> ==20328==<span class="Apple-converted-space"> </span><br class="">> ==20328==<span class="Apple-converted-space"> </span><br class="">> ==20328== HEAP SUMMARY:<br class="">> ==20328== in use at exit: 92,160 bytes in 257 blocks<br class="">> ==20328== total heap usage: 13,030 allocs, 12,773 frees, 879,010 bytes<br class="">> allocated<br class="">> ==20328==<span class="Apple-converted-space"> </span><br class="">> ==20328== 19,456 (15,360 direct, 4,096 indirect) bytes in 128 blocks are<br class="">> definitely lost in loss record 2 of 3<br class="">> ==20328== at 0x4C2B0A5: operator new(unsigned long)<br class="">> (vg_replace_malloc.c:324)<br class="">> ==20328== by 0x4984F8: itk::QuadEdgeMesh<double, 3u,<br class="">> itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float><br class="">> >::AddFace(itk::GeometricalQuadEdge<unsigned long, unsigned long, bool,<br class="">> bool, true>*) (in<br class="">> /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration)<br class="">> ==20328== by 0x49926F: itk::QuadEdgeMesh<double, 3u,<br class="">> itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float><br class="">> >::AddFaceWithSecurePointList(std::vector<unsigned long,<br class="">> std::allocator<unsigned long> > const&, bool) (in<br class="">> /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration)<br class="">> ==20328== by 0x49D0D5: void<br class="">> itk::CopyMeshToMeshCells<itk::QuadEdgeMesh<double, 3u,<br class="">> itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >,<br class="">> itk::QuadEdgeMesh<double, 3u, itk::QuadEdgeMeshTraits<double, 3u, bool,<br class="">> bool, float, float> > >(itk::QuadEdgeMesh<double, 3u,<br class="">> itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> > const*,<br class="">> itk::QuadEdgeMesh<double, 3u, itk::QuadEdgeMeshTraits<double, 3u, bool,<br class="">> bool, float, float> >*) (in<br class="">> /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration)<br class="">> ==20328== by 0x491766:<br class="">> itk::QuadEdgeMeshToQuadEdgeMeshFilter<itk::QuadEdgeMesh<double, 3u,<br class="">> itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >,<br class="">> itk::QuadEdgeMesh<double, 3u, itk::QuadEdgeMeshTraits<double, 3u, bool,<br class="">> bool, float, float> > >::CopyInputMeshToOutputMeshCells() (in<br class="">> /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration)<br class="">> ==20328== by 0x4916E2:<br class="">> itk::QuadEdgeMeshToQuadEdgeMeshFilter<itk::QuadEdgeMesh<double, 3u,<br class="">> itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >,<br class="">> itk::QuadEdgeMesh<double, 3u, itk::QuadEdgeMeshTraits<double, 3u, bool,<br class="">> bool, float, float> > >::CopyInputMeshToOutputMeshGeometry() (in<br class="">> /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration)<br class="">> ==20328== by 0x491063:<br class="">> itk::IterativeTriangleCellSubdivisionQuadEdgeMeshFilter<itk::QuadEdgeMesh<double,<br class="">> 3u, itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >,<br class="">> itk::LoopTriangleCellSubdivisionQuadEdgeMeshFilter<itk::QuadEdgeMesh<double,<br class="">> 3u, itk::QuadEdgeMeshTraits<double, 3u, bool, bool, float, float> >,<br class="">> itk::QuadEdgeMesh<double, 3u, itk::QuadEdgeMeshTraits<double, 3u, bool,<br class="">> bool, float, float> > > >::GenerateData() (in<br class="">> /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration)<br class="">> ==20328== by 0x4C578C:<br class="">> itk::ProcessObject::UpdateOutputData(itk::DataObject*) (in<br class="">> /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration)<br class="">> ==20328== by 0x4866C6: main (in<br class="">> /home/davis/Developer/oxford/Stebbing_Method/SubTest/bin/dv-registration)<br class="">> ==20328==<span class="Apple-converted-space"> </span><br class="">> ==20328== LEAK SUMMARY:<br class="">> ==20328== definitely lost: 15,360 bytes in 128 blocks<br class="">> ==20328== indirectly lost: 4,096 bytes in 128 blocks<br class="">> ==20328== possibly lost: 0 bytes in 0 blocks<br class="">> ==20328== still reachable: 72,704 bytes in 1 blocks<br class="">> ==20328== suppressed: 0 bytes in 0 blocks<br class="">> ==20328== Reachable blocks (those to which a pointer was found) are not<br class="">> shown.<br class="">> ==20328== To see them, rerun with: --leak-check=full --show-leak-kinds=all<br class="">> ==20328==<span class="Apple-converted-space"> </span><br class="">> ==20328== For counts of detected and suppressed errors, rerun with: -v<br class="">> ==20328== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)<br class="">><span class="Apple-converted-space"> </span><br class="">><span class="Apple-converted-space"> </span><br class="">><span class="Apple-converted-space"> </span><br class="">><span class="Apple-converted-space"> </span><br class="">> --<br class="">> View this message in context: <a href="http://itk-insight-users.2283740.n2.nabble.com/Possible-memory-leak-in-itk-IterativeTriangleCellSubdivisionQuadEdgeMeshFilter-tp7587434.html" class="">http://itk-insight-users.2283740.n2.nabble.com/Possible-memory-leak-in-itk-IterativeTriangleCellSubdivisionQuadEdgeMeshFilter-tp7587434.html</a><br class="">> Sent from the ITK Insight Users mailing list archive at <a href="http://nabble.com/" class="">Nabble.com</a>.<br class="">> _____________________________________<br class="">> Powered by <a href="http://www.kitware.com/" class="">www.kitware.com</a><br class="">><span class="Apple-converted-space"> </span><br class="">> Visit other Kitware open-source projects at<br class="">> <a href="http://www.kitware.com/opensource/opensource.html" class="">http://www.kitware.com/opensource/opensource.html</a><br class="">><span class="Apple-converted-space"> </span><br class="">> Kitware offers ITK Training Courses, for more information visit:<br class="">> <a href="http://www.kitware.com/products/protraining.php" class="">http://www.kitware.com/products/protraining.php</a><br class="">><span class="Apple-converted-space"> </span><br class="">> Please keep messages on-topic and check the ITK FAQ at:<br class="">> <a href="http://www.itk.org/Wiki/ITK_FAQ" class="">http://www.itk.org/Wiki/ITK_FAQ</a><br class="">><span class="Apple-converted-space"> </span><br class="">> Follow this link to subscribe/unsubscribe:<br class="">> <a href="http://public.kitware.com/mailman/listinfo/insight-users" class="">http://public.kitware.com/mailman/listinfo/insight-users</a><br class=""></div></div><span style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">_____________________________________</span><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Powered by<span class="Apple-converted-space"> </span></span><a href="http://www.kitware.com/" style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">www.kitware.com</a><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Visit other Kitware open-source projects at</span><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="http://www.kitware.com/opensource/opensource.html" style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://www.kitware.com/opensource/opensource.html</a><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Kitware offers ITK Training Courses, for more information visit:</span><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="http://www.kitware.com/products/protraining.php" style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://www.kitware.com/products/protraining.php</a><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Please keep messages on-topic and check the ITK FAQ at:</span><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="http://www.itk.org/Wiki/ITK_FAQ" style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://www.itk.org/Wiki/ITK_FAQ</a><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><span style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;" class="">Follow this link to subscribe/unsubscribe:</span><br style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><a href="http://public.kitware.com/mailman/listinfo/insight-users" style="font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">http://public.kitware.com/mailman/listinfo/insight-users</a></div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></div></body></html>