<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div markdown-here-wrapper-content-modified="true" style=""
      class="markdown-here-wrapper" data-md-url="Thunderbird">
      <p style="margin: 0px 0px 1.2em ! important;">Thanks for your
        answer Brad !</p>
      <p style="margin: 0px 0px 1.2em ! important;">Just to confirm that
        I understood well:</p>
      <p style="margin: 0px 0px 1.2em ! important;">To unsure that only
        the needed parts are actualized I call the global update, I need
        to:</p>
      <ul style="margin: 1.2em 0px;padding-left: 2em;">
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em ! important;margin: 0.5em 0px
            ! important;">use the H, R, RS, W, WS, M filters as members</p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em ! important;margin: 0.5em 0px
            ! important;">set up their relationships in the filter
            constructor</p>
        </li>
        <li style="margin: 0.5em 0px;">
          <p style="margin: 0px 0px 1.2em ! important;margin: 0.5em 0px
            ! important;">do the update at the M filter</p>
        </li>
      </ul>
      <p style="margin: 0px 0px 1.2em ! important;">Then I can call
        manually releaseData on the R and W filter after the call to M
        update().</p>
      <p style="margin: 0px 0px 1.2em ! important;">And that should do
        the trick, and release data should not make the downstream
        filters RS and WS to update, right ?</p>
      <p style="margin: 0px 0px 1.2em ! important;">Ok, after rereading
        what the software guide tells about that: </p>
      <blockquote style="margin: 1.2em 0px;border-left: 4px solid
        rgb(221, 221, 221); padding: 0px 1em; color: rgb(119, 119, 119);
        quotes: none;">
        <p style="margin: 0px 0px 1.2em ! important;">Filter execution
          occurs<br>
          when a) the filter is modified as a result of modifying an
          instance variable; b) the input to the filter<br>
          changes; c) the input data has been released<br>
          — <cite>ITK Software guide p. 200 </cite> </p>
      </blockquote>
      <p style="margin: 0px 0px 1.2em ! important;">So it seems like if
        I release the data of W or R, updating M will force WS and RS to
        update… Am I wrong ?</p>
      <p style="margin: 0px 0px 1.2em ! important;">If I want the filter
        to have the expected behavior, Is it possible to trigger the
        update manually ?<br>
        I’m thinking of disconnecting RS and WS by using new smart
        pointers for R and W output, checking manually the modified
        state to conditionally call update when relevant.</p>
      <p style="margin: 0px 0px 1.2em ! important;">Yann</p>
      <p style="margin: 0px 0px 1.2em ! important;">Le 24/04/2017 à
        17:35, Lowekamp, Bradley (NIH/NLM/LHC) [C] a écrit :</p>
      <p style="margin: 0px 0px 1.2em ! important;"></p>
      <div class="markdown-here-exclude">
        <p></p>
        <blockquote
          cite="mid:41F1BDD4-8A68-4998-A1C7-5A3B2DF9D544@mail.nih.gov"
          type="cite">
          <meta http-equiv="Content-Type" content="text/html;
            charset=utf-8">
          Hello,
          <div class=""><br class="">
          </div>
          <div class="">To the best of my knowledge and experience with
            the ITK pipeline, when the output of a filter ( H or R ) is
            used as multiple inputs with the ReleaseData, the data from
            the output ( H or R ) will be release after _each_ filter
            which use that output data. So the result is that the
            minimal amount of memory is consumed! But in a complex
            pipeline like yours filters will be executed multiple times
            for a single update.</div>
          <div class=""><br class="">
          </div>
          <div class="">Based on your comments you likely want to set
            only R and W to ReleaseData automatically. This ensures that
            all the inputs to M are cached and available. The trade off
            is that R will get execute twice. Alternatively, you could
            just manually release the output of R after execution.</div>
          <div class=""><br class="">
          </div>
          <div class="">HTH,</div>
          <div class="">Brad</div>
          <div class=""><br class="">
            <div>
              <blockquote type="cite" class="">
                <div class="">On Apr 22, 2017, at 12:46 PM, asertyuio
                  via Insight-users <<a moz-do-not-send="true"
                    href="mailto:insight-users@itk.org" class="">insight-users@itk.org</a>>
                  wrote:</div>
                <br class="Apple-interchange-newline">
                <div class="">
                  <div text="#000000" bgcolor="#FFFFFF" class="">
                    <div markdown-here-wrapper-content-modified="true"
                      style="" class="markdown-here-wrapper"
                      data-md-url="Thunderbird">
                      <p style="margin: 0px 0px 1.2em ! important;"
                        class="">Dear Users,</p>
                      <p style="margin: 0px 0px 1.2em ! important;"
                        class="">I have trouble applying the concepts
                        behind the release data flag, and memory
                        management  of itk to a particular problem.</p>
                      <p style="margin: 0px 0px 1.2em ! important;"
                        class="">I’m developing a filter with, for part
                        of it, it a rather complex mini pipeline.<br
                          class="">
                        H, R, RS, W, WS and M are itk filters.<br
                          class="">
                        The filter will be updated frequently, and I’m
                        trying to make the update only update necessary
                        parts, while keeping memory imprinting as low as
                        possible.</p>
                      <p style="margin: 0px 0px 1.2em ! important;"
                        class="">Here is a schematic, simplified graph
                        representing my filter :</p>
                      <pre style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;font-size: 1em; line-height: 1.2em;margin: 1.2em 0px;" class=""><code style="font-size: 0.85em; font-family: Consolas,Inconsolata,Courier,monospace;margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap; border: 1px solid rgb(234, 234, 234); background-color: rgb(248, 248, 248); border-radius: 3px; display: inline;white-space: pre; overflow: auto; border-radius: 3px; border: 1px solid rgb(204, 204, 204); padding: 0.5em 0.7em; display: block ! important;" class="">    H          
    | \
    v  \
    R   \    -> take as input a parameter P1 that do not change often
    |    \
   / \   /\
  v   v v  |
 RS    W   |
  |    |   |
  |    v   |
   \  WS   |   
    \  |  /
     v v v
       M     -> takes parameters P2 that are often updated
</code></pre>
                      <p style="margin: 0px 0px 1.2em ! important;"
                        class="">I would like to be able to release the
                        output data of the filter R and of the filter W,
                        updating them only if the parameter P1 change
                        (which would trigger update for the whole
                        pipeline), while still being able to change P2
                        without having to recalculate R, W and RS.</p>
                      <p style="margin: 0px 0px 1.2em ! important;"
                        class="">I think it may be possible with the
                        releaseData flag, don’t really understand where
                        it should be putted, and if this will do what I
                        need.</p>
                      <p style="margin: 0px 0px 1.2em ! important;"
                        class="">Thanks a lot for you help !<br class="">
                        Yann</p>
                      <div
title="MDH:RGVhciBVc2Vycyw8YnI+PGJyPkkgaGF2ZSB0cm91YmxlIGFwcGx5aW5nwqAgdGhlIGNvbmNlcHRzIGJlaGluZCB0aGUgcmVsZWFzZSBkYXRhIGZsYWcsIGFuZCBtZW1vcnkgb2YgaXRrIHRvIGEgcGFydGljdWxhciBwcm9ibGVtLjxicj48YnI+SSdtIGRldmVsb3BpbmcgYSBmaWx0ZXIgd2l0aCwgZm9y
IHBhcnQgb2YgaXQsIGl0IGEgcmF0aGVyIGNvbXBsZXggbWluaSBwaXBlbGluZS48YnI+SCwgUiwg
UlMsIFcsIFdTIGFuZCBNIGFyZSBpdGsgZmlsdGVycy48YnI+VGhlIGZpbHRlciB3aWxsIGJlIHVw
ZGF0ZWQgZnJlcXVlbnRseSwgYW5kIEknbSB0cnlpbmcgdG8gbWFrZSB0aGUgdXBkYXRlCiBvbmx5
IHVwZGF0ZSBuZWNlc3NhcnkgcGFydHMsIHdoaWxlIGtlZXBpbmcgbWVtb3J5IGltcHJpbnRpbmcg
YXMgbG93IGFzIApwb3NzaWJsZS48YnI+PGJyPkhlcmUgaXMgYSBzY2hlbWF0aWMsIHNpbXBsaWZp
ZWQgZ3JhcGggcmVwcmVzZW50aW5nIG15IGZpbHRlciA6PGJyPjxicj5gYGA8YnI+wqDCoMKgIEjC
oMKgwqDCoMKgwqDCoMKgwqAgPGJyPsKgwqDCoCB8IFw8YnI+wqDCoMKgIHbCoCBcPGJyPsKgwqDC
oCBSwqDCoCBcwqDCoMKgIC0mZ3Q7IHRha2UgYXMgaW5wdXQgYSBwYXJhbWV0ZXIgUDEgdGhhdCBk
byBub3QgY2hhbmdlIG9mdGVuPGJyPsKgwqDCoCB8wqDCoMKgIFw8YnI+wqDCoCAvIFzCoMKgIC9c
PGJyPsKgIHbCoMKgIHYgdsKgIHw8YnI+wqBSU8KgwqDCoCBXwqDCoCB8PGJyPsKgIHzCoMKgwqAg
fMKgwqAgfDxicj7CoCB8wqDCoMKgIHbCoMKgIHw8YnI+wqDCoCBcwqAgV1PCoMKgIHzCoMKgIDxi
cj7CoMKgwqAgXMKgIHzCoCAvPGJyPsKgwqDCoMKgIHYgdiB2PGJyPsKgwqDCoMKgwqDCoCBNwqDC
oMKgwqAgLSZndDsgdGFrZXMgcGFyYW1ldGVycyBQMiB0aGF0IGFyZSBvZnRlbiB1cGRhdGVkPGJy
Pjxicj5gYGA8YnI+SSB3b3VsZCBsaWtlIHRvIGJlIGFibGUgdG8gcmVsZWFzZSB0aGUgZGF0YSBv
ZiB0aGUgZmlsdGVyIFIgYW5kIHRoZSBmaWx0ZXIgVywgdXBkYXRpbmcgdGhlbSBvbmx5IGlmIHRo
ZSBwYXJhbWV0ZXIgUDEgY2hhbmdlICh3aGljaCB3b3VsZCB0cmlnZ2VyIHVwZGF0ZSBmb3IgIHRo
ZSB3aG9sZSBwaXBlbGluZSksIHdoaWxlIHN0aWxsIGJlaW5nIGFibGUgdG8gY2hhbmdlIFAyIHdp
dGhvdXQgaGF2aW5nIHRvIHVwZGF0ZSBSLCBXIGFuZCBSUy48YnI+PGJyPkkgdGhpbmsgaXQgbWF5
IGJlIHBvc3NpYmxlIHdpdGggdGhlIHJlbGVhc2VEYXRhIGZsYWcsIGRvbid0IHJlYWxseSB1bmRl
cnN0YW5kIHdoZXJlIGl0IHNob3VsZCBiZSBwdXR0ZWQsIGFuZCBpZiB0aGlzIHdpbGwgZG8gd2hh
dCBJIG5lZWQuPGJyPjxicj5UaGFua3MgYSBsb3QgZm9yIHlvdSBoZWxwICE8YnI+WWFubjxicj7C
                        oDxicj4="
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;"
                        class="">
                        ​</div>
                    </div>
                  </div>
                  _____________________________________<br class="">
                  Powered by <a moz-do-not-send="true"
                    href="http://www.kitware.com" class="">www.kitware.com</a><br
                    class="">
                  <br class="">
                  Visit other Kitware open-source projects at<br
                    class="">
                  <a moz-do-not-send="true"
                    href="http://www.kitware.com/opensource/opensource.html"
                    class="">http://www.kitware.com/opensource/opensource.html</a><br
                    class="">
                  <br class="">
                  Kitware offers ITK Training Courses, for more
                  information visit:<br class="">
                  <a class="moz-txt-link-freetext" href="http://www.kitware.com/products/protraining.php">http://www.kitware.com/products/protraining.php</a><br
                    class="">
                  <br class="">
                  Please keep messages on-topic and check the ITK FAQ
                  at:<br class="">
                  <a class="moz-txt-link-freetext" href="http://www.itk.org/Wiki/ITK_FAQ">http://www.itk.org/Wiki/ITK_FAQ</a><br class="">
                  <br class="">
                  Follow this link to subscribe/unsubscribe:<br class="">
<a class="moz-txt-link-freetext" href="http://public.kitware.com/mailman/listinfo/insight-users">http://public.kitware.com/mailman/listinfo/insight-users</a><br class="">
                </div>
              </blockquote>
            </div>
            <br class="">
          </div>
        </blockquote>
        <p></p>
      </div>
      <p style="margin: 0px 0px 1.2em ! important;"></p>
      <div
title="MDH:PHA+VGhhbmtzIGZvciB5b3VyIGFuc3dlciBCcmFkICE8YnI+PC9wPjxwPkp1c3QgdG8gY29uZmlybSB0aGF0IEkgdW5kZXJzdG9vZCB3ZWxsOjwvcD48cD5UbyB1bnN1cmUgdGhhdCBvbmx5IHRoZSBu
ZWVkZWQgcGFydHMgYXJlIGFjdHVhbGl6ZWQgSSBjYWxsIHRoZSBnbG9iYWwgdXBkYXRlLCBJIG5l
ZWQgdG86PC9wPjxwPi0gdXNlIHRoZSBILCBSLCBSUywgVywgV1MsIE0gZmlsdGVycyBhcyBtZW1i
ZXJzPC9wPjxwPi0gc2V0IHVwIHRoZWlyIHJlbGF0aW9uc2hpcHMgaW4gdGhlIGZpbHRlciBjb25z
dHJ1Y3RvcjwvcD48cD4tIGRvIHRoZSB1cGRhdGUgYXQgdGhlIE0gZmlsdGVyPC9wPjxwPlRoZW4g
SSBjYW4gY2FsbCBtYW51YWxseSByZWxlYXNlRGF0YSAKb24gdGhlIFIgYW5kIFcgZmlsdGVyIGFm
dGVyIHRoZSBjYWxsIHRvIE0gdXBkYXRlKCkuPC9wPjxwPkFuZCB0aGF0IHNob3VsZCBkbyB0aGUg
dHJpY2ssIGFuZCByZWxlYXNlIGRhdGEgc2hvdWxkIG5vdCBtYWtlIHRoZSBkb3duc3RyZWFtIGZp
bHRlcnMgUlMgYW5kIFdTIHRvIHVwZGF0ZSwgcmlnaHQgPzwvcD48cD5PaywgYWZ0ZXIgcmVyZWFk
aW5nIHRoZSBzb2Z0d2FyZSBndWlkZSBhYm91dCB0aGF0OiA8YnI+PC9wPiZndDtGaWx0ZXIgZXhl
Y3V0aW9uIG9jY3Vyczxicj4mZ3Q7d2hlbiBhKSB0aGUgZmlsdGVyIGlzIG1vZGlmaWVkIGFzIGEg
cmVzdWx0IG9mIG1vZGlmeWluZyBhbiBpbnN0YW5jZSB2YXJpYWJsZTsgYikgdGhlIGlucHV0IHRv
IHRoZSBmaWx0ZXI8YnI+Jmd0O2NoYW5nZXM7IGMpIHRoZSBpbnB1dCBkYXRhIGhhcyBiZWVuIHJl
bGVhc2VkPGJyPiZndDsgLS0gJmx0O2NpdGUmZ3Q7SVRLIFNvZnR3YXJlIGd1aWRlIHAuIDIwMDxj
b2RlPiAmbHQ7L2NpdGUmZ3Q7PC9jb2RlPgo8cHJlPjxjb2RlPjxicj48L2NvZGU+PC9wcmU+PHBy
ZT48Y29kZT5TbyBpdCBzZWVtcyBsaWtlIGlmIEkgcmVsZWFzZSB0aGUgZGF0YSBvZiBXIG9yIFIs
IHVwZGF0aW5nIE0gd2lsbCBmb3JjZSBXUyBhbmQgUlMgdG8gdXBkYXRlLi4uIEFuIEkgd3Jvbmcg
Pzxicj48YnI+SWYgSSB3YW50IHRoZSBmaWx0ZXIgdG8gaGF2ZSB0aGUgZXhwZWN0ZWQgYmVoYXZp
b3VyLCBJcyBpdCBwb3NzaWJsZSB0byB0cmlnZXIgdGhlIHVwZGF0ZSBtYW51YWxseSA/PGJyPkkn
bSB0aGlua2luZyBvZiBkaXNjb25lY3RpbmcgUlMgYW5kIFdTIGJ5IHVzaW5nIG5ldyBzbWFydCBw
b2ludGVycyBmb3IgUiBhbmQgVyBvdXRwdXQsIGNoZWNraW5nIG1hbnVhbGx5IHRoZSBtb2RpZmll
ZCBzdGF0ZSB0byBjb25kaXRpb25hbHkgY2FsbCB1cGRhdGUgd2hlbiByZWxldmFudC48YnI+PGJy
PjwvY29kZT48L3ByZT48cD5ZYW5uPGJyPjwvcD48YnI+PGRpdiBjbGFzcz0ibW96LWNpdGUtcHJl
Zml4Ij5MZSAyNC8wNC8yMDE3IMOgIDE3OjM1LCBMb3dla2FtcCwgQnJhZGxleSAoTklIL05MTS9M
SEMpIFtDXSBhIMOpY3JpdCZuYnNwOzo8YnI+PC9kaXY+PGJsb2NrcXVvdGUgY2l0ZT0ibWlkOjQx
RjFCREQ0LThBNjgtNDk5OC1BMUM3LTVBM0IyREY5RDU0NEBtYWlsLm5paC5nb3YiIHR5cGU9ImNp
dGUiPgoKPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
ICI+CgoKSGVsbG8sCjxkaXYgY2xhc3M9IiI+PGJyIGNsYXNzPSIiPgo8L2Rpdj4KPGRpdiBjbGFz
cz0iIj5UbyB0aGUgYmVzdCBvZiBteSBrbm93bGVkZ2UgYW5kIGV4cGVyaWVuY2Ugd2l0aCB0aGUg
SVRLIHBpcGVsaW5lLCB3aGVuIHRoZSBvdXRwdXQgb2YgYSBmaWx0ZXIgKCBIIG9yIFIgKSBpcyB1
c2VkIGFzIG11bHRpcGxlIGlucHV0cyB3aXRoIHRoZSBSZWxlYXNlRGF0YSwgdGhlIGRhdGEgZnJv
bSB0aGUgb3V0cHV0ICggSCBvciBSICkgd2lsbCBiZSByZWxlYXNlIGFmdGVyIF9lYWNoXyBmaWx0
ZXIgd2hpY2ggdXNlIHRoYXQgb3V0cHV0CiBkYXRhLiBTbyB0aGUgcmVzdWx0IGlzIHRoYXQgdGhl
IG1pbmltYWwgYW1vdW50IG9mIG1lbW9yeSBpcyBjb25zdW1lZCEgQnV0IGluIGEgY29tcGxleCBw
aXBlbGluZSBsaWtlIHlvdXJzIGZpbHRlcnMgd2lsbCBiZSBleGVjdXRlZCBtdWx0aXBsZSB0aW1l
cyBmb3IgYSBzaW5nbGUgdXBkYXRlLjwvZGl2Pgo8ZGl2IGNsYXNzPSIiPjxiciBjbGFzcz0iIj4K
PC9kaXY+CjxkaXYgY2xhc3M9IiI+QmFzZWQgb24geW91ciBjb21tZW50cyB5b3UgbGlrZWx5IHdh
bnQgdG8gc2V0IG9ubHkgUiBhbmQgVyB0byBSZWxlYXNlRGF0YSBhdXRvbWF0aWNhbGx5LiBUaGlz
IGVuc3VyZXMgdGhhdCBhbGwgdGhlIGlucHV0cyB0byBNIGFyZSBjYWNoZWQgYW5kIGF2YWlsYWJs
ZS4gVGhlIHRyYWRlIG9mZiBpcyB0aGF0IFIgd2lsbCBnZXQgZXhlY3V0ZSB0d2ljZS4gQWx0ZXJu
YXRpdmVseSwgeW91IGNvdWxkIGp1c3QgbWFudWFsbHkgcmVsZWFzZQogdGhlIG91dHB1dCBvZiBS
IGFmdGVyIGV4ZWN1dGlvbi48L2Rpdj4KPGRpdiBjbGFzcz0iIj48YnIgY2xhc3M9IiI+CjwvZGl2
Pgo8ZGl2IGNsYXNzPSIiPkhUSCw8L2Rpdj4KPGRpdiBjbGFzcz0iIj5CcmFkPC9kaXY+CjxkaXYg
Y2xhc3M9IiI+PGJyIGNsYXNzPSIiPgo8ZGl2Pgo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjbGFz
cz0iIj4KPGRpdiBjbGFzcz0iIj5PbiBBcHIgMjIsIDIwMTcsIGF0IDEyOjQ2IFBNLCBhc2VydHl1
aW8gdmlhIEluc2lnaHQtdXNlcnMgJmx0OzxhIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSIgaHJlZj0i
bWFpbHRvOmluc2lnaHQtdXNlcnNAaXRrLm9yZyIgY2xhc3M9IiI+aW5zaWdodC11c2Vyc0BpdGsu
b3JnPC9hPiZndDsgd3JvdGU6PC9kaXY+CjxiciBjbGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2UtbmV3
bGluZSI+CjxkaXYgY2xhc3M9IiI+CjxkaXYgdGV4dD0iIzAwMDAwMCIgYmdjb2xvcj0iI0ZGRkZG
RiIgY2xhc3M9IiI+CjxkaXYgbWFya2Rvd24taGVyZS13cmFwcGVyLWNvbnRlbnQtbW9kaWZpZWQ9
InRydWUiIHN0eWxlPSIiIGNsYXNzPSJtYXJrZG93bi1oZXJlLXdyYXBwZXIiIGRhdGEtbWQtdXJs
PSJUaHVuZGVyYmlyZCI+CjxwIHN0eWxlPSJtYXJnaW46IDBweCAwcHggMS4yZW0gISBpbXBvcnRh
bnQ7IiBjbGFzcz0iIj5EZWFyIFVzZXJzLDwvcD4KPHAgc3R5bGU9Im1hcmdpbjogMHB4IDBweCAx
LjJlbSAhIGltcG9ydGFudDsiIGNsYXNzPSIiPkkgaGF2ZSB0cm91YmxlIGFwcGx5aW5nIHRoZSBj
b25jZXB0cyBiZWhpbmQgdGhlIHJlbGVhc2UgZGF0YSBmbGFnLCBhbmQgbWVtb3J5IG1hbmFnZW1l
bnQmbmJzcDsgb2YgaXRrIHRvIGEgcGFydGljdWxhciBwcm9ibGVtLjwvcD4KPHAgc3R5bGU9Im1h
cmdpbjogMHB4IDBweCAxLjJlbSAhIGltcG9ydGFudDsiIGNsYXNzPSIiPknigJltIGRldmVsb3Bp
bmcgYSBmaWx0ZXIgd2l0aCwgZm9yIHBhcnQgb2YgaXQsIGl0IGEgcmF0aGVyIGNvbXBsZXggbWlu
aSBwaXBlbGluZS48YnIgY2xhc3M9IiI+CkgsIFIsIFJTLCBXLCBXUyBhbmQgTSBhcmUgaXRrIGZp
bHRlcnMuPGJyIGNsYXNzPSIiPgpUaGUgZmlsdGVyIHdpbGwgYmUgdXBkYXRlZCBmcmVxdWVudGx5
LCBhbmQgSeKAmW0gdHJ5aW5nIHRvIG1ha2UgdGhlIHVwZGF0ZSBvbmx5IHVwZGF0ZSBuZWNlc3Nh
cnkgcGFydHMsIHdoaWxlIGtlZXBpbmcgbWVtb3J5IGltcHJpbnRpbmcgYXMgbG93IGFzIHBvc3Np
YmxlLjwvcD4KPHAgc3R5bGU9Im1hcmdpbjogMHB4IDBweCAxLjJlbSAhIGltcG9ydGFudDsiIGNs
YXNzPSIiPkhlcmUgaXMgYSBzY2hlbWF0aWMsIHNpbXBsaWZpZWQgZ3JhcGggcmVwcmVzZW50aW5n
IG15IGZpbHRlciA6PC9wPgo8cHJlIHN0eWxlPSJmb250LXNpemU6IDAuODVlbTsgZm9udC1mYW1p
bHk6IENvbnNvbGFzLEluY29uc29sYXRhLENvdXJpZXIsbW9ub3NwYWNlO2ZvbnQtc2l6ZTogMWVt
OyBsaW5lLWhlaWdodDogMS4yZW07bWFyZ2luOiAxLjJlbSAwcHg7IiBjbGFzcz0iIj48Y29kZSBz
dHlsZT0iZm9udC1zaXplOiAwLjg1ZW07IGZvbnQtZmFtaWx5OiBDb25zb2xhcyxJbmNvbnNvbGF0
YSxDb3VyaWVyLG1vbm9zcGFjZTttYXJnaW46IDBweCAwLjE1ZW07IHBhZGRpbmc6IDBweCAwLjNl
bTsgd2hpdGUtc3BhY2U6IHByZS13cmFwOyBib3JkZXI6IDFweCBzb2xpZCByZ2IoMjM0LCAyMzQs
IDIzNCk7IGJhY2tncm91bmQtY29sb3I6IHJnYigyNDgsIDI0OCwgMjQ4KTsgYm9yZGVyLXJhZGl1
czogM3B4OyBkaXNwbGF5OiBpbmxpbmU7d2hpdGUtc3BhY2U6IHByZTsgb3ZlcmZsb3c6IGF1dG87
IGJvcmRlci1yYWRpdXM6IDNweDsgYm9yZGVyOiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQp
OyBwYWRkaW5nOiAwLjVlbSAwLjdlbTsgZGlzcGxheTogYmxvY2sgISBpbXBvcnRhbnQ7IiBjbGFz
cz0iIj4gICAgSCAgICAgICAgICAKICAgIHwgXAogICAgdiAgXAogICAgUiAgIFwgICAgLSZndDsg
dGFrZSBhcyBpbnB1dCBhIHBhcmFtZXRlciBQMSB0aGF0IGRvIG5vdCBjaGFuZ2Ugb2Z0ZW4KICAg
IHwgICAgXAogICAvIFwgICAvXAogIHYgICB2IHYgIHwKIFJTICAgIFcgICB8CiAgfCAgICB8ICAg
fAogIHwgICAgdiAgIHwKICAgXCAgV1MgICB8ICAgCiAgICBcICB8ICAvCiAgICAgdiB2IHYKICAg
ICAgIE0gICAgIC0mZ3Q7IHRha2VzIHBhcmFtZXRlcnMgUDIgdGhhdCBhcmUgb2Z0ZW4gdXBkYXRl
ZAo8L2NvZGU+PC9wcmU+CjxwIHN0eWxlPSJtYXJnaW46IDBweCAwcHggMS4yZW0gISBpbXBvcnRh
bnQ7IiBjbGFzcz0iIj5JIHdvdWxkIGxpa2UgdG8gYmUgYWJsZSB0byByZWxlYXNlIHRoZSBvdXRw
dXQgZGF0YSBvZiB0aGUgZmlsdGVyIFIgYW5kIG9mIHRoZSBmaWx0ZXIgVywgdXBkYXRpbmcgdGhl
bSBvbmx5IGlmIHRoZSBwYXJhbWV0ZXIgUDEgY2hhbmdlICh3aGljaCB3b3VsZCB0cmlnZ2VyIHVw
ZGF0ZSBmb3IgdGhlIHdob2xlIHBpcGVsaW5lKSwgd2hpbGUgc3RpbGwgYmVpbmcKIGFibGUgdG8g
Y2hhbmdlIFAyIHdpdGhvdXQgaGF2aW5nIHRvIHJlY2FsY3VsYXRlIFIsIFcgYW5kIFJTLjwvcD4K
PHAgc3R5bGU9Im1hcmdpbjogMHB4IDBweCAxLjJlbSAhIGltcG9ydGFudDsiIGNsYXNzPSIiPkkg
dGhpbmsgaXQgbWF5IGJlIHBvc3NpYmxlIHdpdGggdGhlIHJlbGVhc2VEYXRhIGZsYWcsIGRvbuKA
mXQgcmVhbGx5IHVuZGVyc3RhbmQgd2hlcmUgaXQgc2hvdWxkIGJlIHB1dHRlZCwgYW5kIGlmIHRo
aXMgd2lsbCBkbyB3aGF0IEkgbmVlZC48L3A+CjxwIHN0eWxlPSJtYXJnaW46IDBweCAwcHggMS4y
ZW0gISBpbXBvcnRhbnQ7IiBjbGFzcz0iIj5UaGFua3MgYSBsb3QgZm9yIHlvdSBoZWxwICE8YnIg
Y2xhc3M9IiI+Cllhbm48L3A+CjxkaXYgdGl0bGU9Ik1ESDpSR1ZoY2lCVmMyVnljeXc4WW5JK1BH
SnlQa2tnYUdGMlpTQjBjbTkxWW14bElHRndjR3g1YVc1bndxQWdkR2hsSUdOdmJtTmxjSFJ6SUdK
bGFHbHVaQ0IwYUdVZ2NtVnNaV0Z6WlNCa1lYUmhJR1pzWVdjc0lHRnVaQ0J0WlcxdmNua2diMlln
YVhScklIUnZJR0VnY0dGeQpkR2xqZFd4aGNpQndjbTlpYkdWdExqeGljajQ4WW5JK1NTZHRJR1Js
ZG1Wc2IzQnBibWNnWVNCbWFXeDBaWElnZDJsMGFDd2dabTl5CklIQmhjblFnYjJZZ2FYUXNJR2ww
SUdFZ2NtRjBhR1Z5SUdOdmJYQnNaWGdnYldsdWFTQndhWEJsYkdsdVpTNDhZbkkrU0N3Z1Vpd2cK
VWxNc0lGY3NJRmRUSUdGdVpDQk5JR0Z5WlNCcGRHc2dabWxzZEdWeWN5NDhZbkkrVkdobElHWnBi
SFJsY2lCM2FXeHNJR0psSUhWdwpaR0YwWldRZ1puSmxjWFZsYm5Sc2VTd2dZVzVrSUVrbmJTQjBj
bmxwYm1jZ2RHOGdiV0ZyWlNCMGFHVWdkWEJrWVhSbENpQnZibXg1CklIVndaR0YwWlNCdVpXTmxj
M05oY25rZ2NHRnlkSE1zSUhkb2FXeGxJR3RsWlhCcGJtY2diV1Z0YjNKNUlHbHRjSEpwYm5ScGJt
Y2cKWVhNZ2JHOTNJR0Z6SUFwd2IzTnphV0pzWlM0OFluSStQR0p5UGtobGNtVWdhWE1nWVNCelky
aGxiV0YwYVdNc0lITnBiWEJzYVdacApaV1FnWjNKaGNHZ2djbVZ3Y21WelpXNTBhVzVuSUcxNUlH
WnBiSFJsY2lBNlBHSnlQanhpY2o1Z1lHQThZbkkrd3FEQ29NS2dJRWpDCm9NS2d3cURDb01LZ3dx
RENvTUtnd3FBZ1BHSnlQc0tnd3FEQ29DQjhJRnc4WW5JK3dxRENvTUtnSUhiQ29DQmNQR0p5UHNL
Z3dxREMKb0NCU3dxRENvQ0Jjd3FEQ29NS2dJQzBtWjNRN0lIUmhhMlVnWVhNZ2FXNXdkWFFnWVNC
d1lYSmhiV1YwWlhJZ1VERWdkR2hoZENCawpieUJ1YjNRZ1kyaGhibWRsSUc5bWRHVnVQR0p5UHNL
Z3dxRENvQ0I4d3FEQ29NS2dJRnc4WW5JK3dxRENvQ0F2SUZ6Q29NS2dJQzljClBHSnlQc0tnSUhi
Q29NS2dJSFlnZHNLZ0lIdzhZbkkrd3FCU1U4S2d3cURDb0NCWHdxRENvQ0I4UEdKeVBzS2dJSHpD
b01LZ3dxQWcKZk1LZ3dxQWdmRHhpY2o3Q29DQjh3cURDb01LZ0lIYkNvTUtnSUh3OFluSSt3cURD
b0NCY3dxQWdWMVBDb01LZ0lIekNvTUtnSUR4aQpjajdDb01LZ3dxQWdYTUtnSUh6Q29DQXZQR0p5
UHNLZ3dxRENvTUtnSUhZZ2RpQjJQR0p5UHNLZ3dxRENvTUtnd3FEQ29DQk53cURDCm9NS2d3cUFn
TFNabmREc2dkR0ZyWlhNZ2NHRnlZVzFsZEdWeWN5QlFNaUIwYUdGMElHRnlaU0J2Wm5SbGJpQjFj
R1JoZEdWa1BHSnkKUGp4aWNqNWdZR0E4WW5JK1NTQjNiM1ZzWkNCc2FXdGxJSFJ2SUdKbElHRmli
R1VnZEc4Z2NtVnNaV0Z6WlNCMGFHVWdaR0YwWVNCdgpaaUIwYUdVZ1ptbHNkR1Z5SUZJZ1lXNWtJ
SFJvWlNCbWFXeDBaWElnVnl3Z2RYQmtZWFJwYm1jZ2RHaGxiU0J2Ym14NUlHbG1JSFJvClpTQndZ
WEpoYldWMFpYSWdVREVnWTJoaGJtZGxJQ2gzYUdsamFDQjNiM1ZzWkNCMGNtbG5aMlZ5SUhWd1pH
RjBaU0JtYjNJZ0lIUm8KWlNCM2FHOXNaU0J3YVhCbGJHbHVaU2tzSUhkb2FXeGxJSE4wYVd4c0lH
SmxhVzVuSUdGaWJHVWdkRzhnWTJoaGJtZGxJRkF5SUhkcApkR2h2ZFhRZ2FHRjJhVzVuSUhSdklI
VndaR0YwWlNCU0xDQlhJR0Z1WkNCU1V5NDhZbkkrUEdKeVBra2dkR2hwYm1zZ2FYUWdiV0Y1CklH
SmxJSEJ2YzNOcFlteGxJSGRwZEdnZ2RHaGxJSEpsYkdWaGMyVkVZWFJoSUdac1lXY3NJR1J2Ymlk
MElISmxZV3hzZVNCMWJtUmwKY25OMFlXNWtJSGRvWlhKbElHbDBJSE5vYjNWc1pDQmlaU0J3ZFhS
MFpXUXNJR0Z1WkNCcFppQjBhR2x6SUhkcGJHd2daRzhnZDJoaApkQ0JKSUc1bFpXUXVQR0p5UGp4
aWNqNVVhR0Z1YTNNZ1lTQnNiM1FnWm05eUlIbHZkU0JvWld4d0lDRThZbkkrV1dGdWJqeGljajdD
CiAgICAgICAgb0R4aWNqND0iIHN0eWxlPSJoZWlnaHQ6MDt3aWR0aDowO21heC1oZWlnaHQ6MDtt
YXgtd2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47Zm9udC1zaXplOjBlbTtwYWRkaW5nOjA7bWFyZ2lu
OjA7IiBjbGFzcz0iIj4K4oCLPC9kaXY+CjwvZGl2Pgo8L2Rpdj4KX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXzxiciBjbGFzcz0iIj4KUG93ZXJlZCBieSA8YSBtb3otZG8tbm90
LXNlbmQ9InRydWUiIGhyZWY9Imh0dHA6Ly93d3cua2l0d2FyZS5jb20iIGNsYXNzPSIiPnd3dy5r
aXR3YXJlLmNvbTwvYT48YnIgY2xhc3M9IiI+CjxiciBjbGFzcz0iIj4KVmlzaXQgb3RoZXIgS2l0
d2FyZSBvcGVuLXNvdXJjZSBwcm9qZWN0cyBhdDxiciBjbGFzcz0iIj4KPGEgbW96LWRvLW5vdC1z
ZW5kPSJ0cnVlIiBocmVmPSJodHRwOi8vd3d3LmtpdHdhcmUuY29tL29wZW5zb3VyY2Uvb3BlbnNv
dXJjZS5odG1sIiBjbGFzcz0iIj5odHRwOi8vd3d3LmtpdHdhcmUuY29tL29wZW5zb3VyY2Uvb3Bl
bnNvdXJjZS5odG1sPC9hPjxiciBjbGFzcz0iIj4KPGJyIGNsYXNzPSIiPgpLaXR3YXJlIG9mZmVy
cyBJVEsgVHJhaW5pbmcgQ291cnNlcywgZm9yIG1vcmUgaW5mb3JtYXRpb24gdmlzaXQ6PGJyIGNs
YXNzPSIiPgpodHRwOi8vd3d3LmtpdHdhcmUuY29tL3Byb2R1Y3RzL3Byb3RyYWluaW5nLnBocDxi
ciBjbGFzcz0iIj4KPGJyIGNsYXNzPSIiPgpQbGVhc2Uga2VlcCBtZXNzYWdlcyBvbi10b3BpYyBh
bmQgY2hlY2sgdGhlIElUSyBGQVEgYXQ6PGJyIGNsYXNzPSIiPgpodHRwOi8vd3d3Lml0ay5vcmcv
V2lraS9JVEtfRkFRPGJyIGNsYXNzPSIiPgo8YnIgY2xhc3M9IiI+CkZvbGxvdyB0aGlzIGxpbmsg
dG8gc3Vic2NyaWJlL3Vuc3Vic2NyaWJlOjxiciBjbGFzcz0iIj4KaHR0cDovL3B1YmxpYy5raXR3
YXJlLmNvbS9tYWlsbWFuL2xpc3RpbmZvL2luc2lnaHQtdXNlcnM8YnIgY2xhc3M9IiI+CjwvZGl2
Pgo8L2Jsb2NrcXVvdGU+CjwvZGl2Pgo8YnIgY2xhc3M9IiI+CjwvZGl2PgoKCgoKPC9ibG9ja3F1
        b3RlPjxicj4="
style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0;">​</div>
    </div>
  </body>
</html>