<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>63064</bug_id>
          
          <creation_ts>2011-06-21 06:19:42 -0700</creation_ts>
          <short_desc>Apply the ParallelJobs support to FEMorphology</short_desc>
          <delta_ts>2011-06-30 04:54:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andras Piroska">pandras</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bulach</cc>
    
    <cc>loki</cc>
    
    <cc>ossy</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zherczeg</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>424415</commentid>
    <comment_count>0</comment_count>
    <who name="Andras Piroska">pandras</who>
    <bug_when>2011-06-21 06:19:42 -0700</bug_when>
    <thetext>The FEMorphology filter of SVG can consume lots of resources if it is
applied to a large area. The computation can be distributed to multiple
cores if the architecture supports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424424</commentid>
    <comment_count>1</comment_count>
      <attachid>97979</attachid>
    <who name="Andras Piroska">pandras</who>
    <bug_when>2011-06-21 06:39:39 -0700</bug_when>
    <thetext>Created attachment 97979
Apply the ParallelJobs support to FEMorphology</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424425</commentid>
    <comment_count>2</comment_count>
      <attachid>97979</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-06-21 06:47:19 -0700</bug_when>
    <thetext>Comment on attachment 97979
Apply the ParallelJobs support to FEMorphology

View in context: https://bugs.webkit.org/attachment.cgi?id=97979&amp;action=review

&gt; Source/WebCore/ChangeLog:1
&gt; +2011-06-15  Piroska AndrÃ¡s  &lt;Piroska.AndrÃ¡s@stud.u-szeged.hu&gt;

Your email address is wrong! I guess you want to write Piroska.Andras@... ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424694</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-06-21 13:07:50 -0700</bug_when>
    <thetext>Zoltan, can you give an informal review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425047</commentid>
    <comment_count>4</comment_count>
      <attachid>97979</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-06-21 23:28:40 -0700</bug_when>
    <thetext>Comment on attachment 97979
Apply the ParallelJobs support to FEMorphology

View in context: https://bugs.webkit.org/attachment.cgi?id=97979&amp;action=review

&gt; Source/WebCore/ChangeLog:10
&gt; +        cores if the architecture supports.

You should mention the gain somewhere (and the benchmark if it is publicly availible).

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.cpp:110
&gt; +    const int rowByteWidth = width * 4;

Strange name for me. I liked the effectWidth better, or maybe scanlineWidth?

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.cpp:115
&gt; +        yEnd = height;

I would not prefer these &quot;ifs&quot; here, why not simply pass these values as arguments?

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.cpp:119
&gt; +        int extStartY = max(0, y - radiusY);

We don&apos;t use abbreviations is WebKit, keep the original name or make it extremaStartY

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.cpp:120
&gt; +        int extEndY = min(height - 1, y + radiusY);

Ditto.

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.h:61
&gt; +    };

It seems to me that radiusX and radiusY are constants, so they should go here, and not passed as arguments to platformApply* .

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.h:64
&gt; +        static const int s_minimalArea = 300 * 300;

We should mention here that this is empirical data.

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.h:78
&gt; +        void platformApplyGeneric(PaintingData*, const int radiusX, const int radiusY, const int yStart=-1, const int yEnd=-1);

The above two should be inline function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426123</commentid>
    <comment_count>5</comment_count>
      <attachid>98343</attachid>
    <who name="Andras Piroska">pandras</who>
    <bug_when>2011-06-23 06:49:30 -0700</bug_when>
    <thetext>Created attachment 98343
Apply the ParallelJobs support to FEMorphology</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426809</commentid>
    <comment_count>6</comment_count>
      <attachid>98477</attachid>
    <who name="Andras Piroska">pandras</who>
    <bug_when>2011-06-24 03:48:25 -0700</bug_when>
    <thetext>Created attachment 98477
Apply the ParallelJobs support to FEMorphology

The FEMorphology filter of SVG can consume lots of resources if it is
applied to a large area. The computation can be distributed to multiple
cores if the architecture supports.
The average performance progression is 20-25% on dual-core machines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426823</commentid>
    <comment_count>7</comment_count>
      <attachid>98477</attachid>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-06-24 04:18:52 -0700</bug_when>
    <thetext>Comment on attachment 98477
Apply the ParallelJobs support to FEMorphology

View in context: https://bugs.webkit.org/attachment.cgi?id=98477&amp;action=review

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.h:73
&gt; +        static inline void platformApplyWorker(PlatformApplyParameters*);

This function cannot be inline, since called by pointer. Probably the compiler realises this anyway, but still it would be better to remove it.

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.h:76
&gt; +        inline void platformApply(PaintingData*, const int radiusX, const int radiusY);

Ok, this is still bad. Maybe I was not clear last time.

platformApply should get only 1 parameter: PaintingData*
radiusX and radiusY should go to PaintingData as the width and height

The calculation should be paintingData.radiusX = min(effectDrawingRect.width() - 1, radiusX);, since otherwise the plain radiusX would be an unused parameter.

Drop these lines: int radiusX = static_cast&lt;int&gt;(floorf(filter()-&gt;applyHorizontalScale(m_radiusX))); and radiusY = ...
I am not even sure this is correct...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429461</commentid>
    <comment_count>8</comment_count>
      <attachid>99048</attachid>
    <who name="Andras Piroska">pandras</who>
    <bug_when>2011-06-29 00:32:08 -0700</bug_when>
    <thetext>Created attachment 99048
Apply the ParallelJobs support to FEMorphology</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429500</commentid>
    <comment_count>9</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2011-06-29 03:01:47 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=99048) [details]
&gt; Apply the ParallelJobs support to FEMorphology

I think the patch is OK now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429520</commentid>
    <comment_count>10</comment_count>
      <attachid>99048</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-29 04:21:44 -0700</bug_when>
    <thetext>Comment on attachment 99048
Apply the ParallelJobs support to FEMorphology

View in context: https://bugs.webkit.org/attachment.cgi?id=99048&amp;action=review

I just have a snippet, a style issue. r- because you don&apos;t have commit rights and can&apos;t change it before landing.

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.cpp:183
&gt; +                param.endY = (job) ? (currentY) : (paintingData-&gt;height);

Can you omit the braces here?  They are superfluous and not webkit style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430198</commentid>
    <comment_count>11</comment_count>
      <attachid>99242</attachid>
    <who name="Andras Piroska">pandras</who>
    <bug_when>2011-06-29 23:21:44 -0700</bug_when>
    <thetext>Created attachment 99242
Apply the ParallelJobs support to FEMorphology</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430202</commentid>
    <comment_count>12</comment_count>
      <attachid>99242</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-06-29 23:40:13 -0700</bug_when>
    <thetext>Comment on attachment 99242
Apply the ParallelJobs support to FEMorphology

r=me. Great job!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430214</commentid>
    <comment_count>13</comment_count>
      <attachid>99242</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 00:21:02 -0700</bug_when>
    <thetext>Comment on attachment 99242
Apply the ParallelJobs support to FEMorphology

Clearing flags on attachment: 99242

Committed r90091: &lt;http://trac.webkit.org/changeset/90091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430215</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-30 00:21:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430252</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-30 01:43:46 -0700</bug_when>
    <thetext>This change broke the following tests on Apple Mac, Chromium-win, Chromium-mac, Chromium-linux.

svg/W3C-SVG-1.1/filters-morph-01-f.svg
svg/filters/filterRes.svg

Especially, the result of filterRes.svg looks significantly different to me.  It this expected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430253</commentid>
    <comment_count>16</comment_count>
      <attachid>99256</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-30 01:47:12 -0700</bug_when>
    <thetext>Created attachment 99256
filterRes.svg result on Apple Mac 10.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430262</commentid>
    <comment_count>17</comment_count>
    <who name="Andras Piroska">pandras</who>
    <bug_when>2011-06-30 01:59:30 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=99256) [details]
&gt; filterRes.svg result on Apple Mac 10.6

I examine this difference, but need a little time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430270</commentid>
    <comment_count>18</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2011-06-30 02:08:31 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; Created an attachment (id=99256) [details] [details]
&gt; &gt; filterRes.svg result on Apple Mac 10.6
&gt; 
&gt; I examine this difference, but need a little time

I created a bug / patch with the diff:
https://bugs.webkit.org/show_bug.cgi?id=63692

I&apos;ll disable these two tests in chromium now so I can roll WebKit there. Please let me know when you have a fix so I can re-enable these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430288</commentid>
    <comment_count>19</comment_count>
    <who name="Andras Piroska">pandras</who>
    <bug_when>2011-06-30 02:26:44 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=99256) [details]
&gt; filterRes.svg result on Apple Mac 10.6

Thanks, I will fix it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>430329</commentid>
    <comment_count>20</comment_count>
      <attachid>99242</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2011-06-30 04:54:55 -0700</bug_when>
    <thetext>Comment on attachment 99242
Apply the ParallelJobs support to FEMorphology

View in context: https://bugs.webkit.org/attachment.cgi?id=99242&amp;action=review

&gt; Source/WebCore/platform/graphics/filters/FEMorphology.cpp:122
&gt; +                unsigned char columnExtrema = srcPixelArray-&gt;get(yStart * effectWidth  + 4 * x + clrChannel);

There was a typo in this line. The extremaStartY should have been used here instead of yStart. I guess it was a typo, because you used extrameStartY in a right way below.

Anyway, the fix is landed in r90105 and the bug 63692 is closed as well.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97979</attachid>
            <date>2011-06-21 06:39:39 -0700</date>
            <delta_ts>2011-06-23 06:49:30 -0700</delta_ts>
            <desc>Apply the ParallelJobs support to FEMorphology</desc>
            <filename>0001-Apply-the-ParallelJobs-support-to-FEMorphology.patch</filename>
            <type>text/plain</type>
            <size>11085</size>
            <attacher name="Andras Piroska">pandras</attacher>
            
              <data encoding="base64">RnJvbSA0NzY2ZmJlMmMzYWM3Nzk5ODg5MjdkMTVjYWIxNDZkYzJlYWYzY2YwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UGlyb3NrYT0yMEFuZHI9QzM9QTFzPz0gPFBp
cm9za2EuQW5kcmFzQHN0dWQudS1zemVnZWQuaHU+CkRhdGU6IFR1ZSwgMjEgSnVuIDIwMTEgMTU6
Mjc6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBcHBseS10aGUtUGFyYWxsZWxKb2JzLXN1cHBv
cnQtdG8tRkVNb3JwaG9sb2d5CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5jcHAgICAgIHwgIDE1MCArKysrKysrKysrKysrKy0tLS0tLQogLi4u
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggICAgICAgfCAgIDIzICsr
KwogMyBmaWxlcyBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ0NGVkZDEuLjAwNmU3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMS0wNi0xNSAgUGlyb3NrYSBBbmRyw6FzICA8UGlyb3NrYS5BbmRyw6FzQHN0dWQudS1z
emVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQXBwbHkgdGhlIFBhcmFsbGVsSm9icyBzdXBwb3J0IHRvIEZFTW9ycGhvbG9neQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwNjQKKworICAgICAg
ICBUaGUgRkVNb3JwaG9sb2d5IGZpbHRlciBvZiBTVkcgY2FuIGNvbnN1bWUgbG90cyBvZiByZXNv
dXJjZXMgaWYgaXQgaXMKKyAgICAgICAgYXBwbGllZCB0byBhIGxhcmdlIGFyZWEuIFRoZSBjb21w
dXRhdGlvbiBjYW4gYmUgZGlzdHJpYnV0ZWQgdG8gbXVsdGlwbGUKKyAgICAgICAgY29yZXMgaWYg
dGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9n
eTo6cGxhdGZvcm1BcHBseUdlbmVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6RkVNb3JwaG9sb2d5
OjpwbGF0Zm9ybUFwcGx5V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6
cGxhdGZvcm1BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpGRU1vcnBob2xvZ3k6OmFwcGx5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorCiAy
MDExLTA2LTA5ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAppbmRleCBhYTAx
NTcwLi4zMzUwZDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiVGV4dFN0cmVhbS5oIgogCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgorI2luY2x1
ZGUgPHd0Zi9QYXJhbGxlbEpvYnMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5n
IHN0ZDo6bWluOwpAQCAtMTAwLDYgKzEwMSwxMDQgQEAgYm9vbCBGRU1vcnBob2xvZ3k6OnNldFJh
ZGl1c1koZmxvYXQgcmFkaXVzWSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBGRU1vcnBo
b2xvZ3k6OnBsYXRmb3JtQXBwbHlHZW5lcmljKFBhaW50aW5nRGF0YSogcGFpbnRpbmdEYXRhLCBj
b25zdCBpbnQgcmFkaXVzWCwgY29uc3QgaW50IHJhZGl1c1ksIGludCB5U3RhcnQsIGludCB5RW5k
KQoreworICAgIEJ5dGVBcnJheSogc3JjUGl4ZWxBcnJheSA9IHBhaW50aW5nRGF0YS0+c3JjUGl4
ZWxBcnJheTsKKyAgICBCeXRlQXJyYXkqIGRzdFBpeGVsQXJyYXkgPSBwYWludGluZ0RhdGEtPmRz
dFBpeGVsQXJyYXk7CisgICAgY29uc3QgaW50IHdpZHRoID0gcGFpbnRpbmdEYXRhLT53aWR0aDsK
KyAgICBjb25zdCBpbnQgaGVpZ2h0ID0gcGFpbnRpbmdEYXRhLT5oZWlnaHQ7CisgICAgY29uc3Qg
aW50IHJvd0J5dGVXaWR0aCA9IHdpZHRoICogNDsKKworICAgIGlmICh5U3RhcnQgPT0gLTEpCisg
ICAgICAgIHlTdGFydCA9IDA7CisgICAgaWYgKHlFbmQgPT0gLTEpCisgICAgICAgIHlFbmQgPSBo
ZWlnaHQ7CisKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gZXh0cmVtYTsKKyAgICBmb3IgKGlu
dCB5ID0geVN0YXJ0OyB5IDwgeUVuZDsgKyt5KSB7CisgICAgICAgIGludCBleHRTdGFydFkgPSBt
YXgoMCwgeSAtIHJhZGl1c1kpOworICAgICAgICBpbnQgZXh0RW5kWSA9IG1pbihoZWlnaHQgLSAx
LCB5ICsgcmFkaXVzWSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaW50IGNsckNoYW5uZWwgPSAw
OyBjbHJDaGFubmVsIDwgNDsgKytjbHJDaGFubmVsKSB7CisgICAgICAgICAgICBleHRyZW1hLmNs
ZWFyKCk7CisgICAgICAgICAgICAvLyBDb21wdXRlIGV4dHJlbWFzIGZvciBlYWNoIGNvbHVtbnMK
KyAgICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDw9IHJhZGl1c1g7ICsreCkgeworICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29sdW1uRXh0cmVtYSA9IHNyY1BpeGVsQXJyYXktPmdl
dCh5U3RhcnQgKiByb3dCeXRlV2lkdGggKyA0ICogeCArIGNsckNoYW5uZWwpOworICAgICAgICAg
ICAgICAgIGZvciAoaW50IGVZID0gZXh0U3RhcnRZKzE7IGVZIDwgZXh0RW5kWTsgKytlWSkgewor
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHBpeGVsID0gc3JjUGl4ZWxBcnJheS0+
Z2V0KGVZICogcm93Qnl0ZVdpZHRoICsgNCAqIHggKyBjbHJDaGFubmVsKTsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0VST0RFICYmIHBp
eGVsIDw9IGNvbHVtbkV4dHJlbWEpCisgICAgICAgICAgICAgICAgICAgICAgICB8fCAobV90eXBl
ID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxBVEUgJiYgcGl4ZWwgPj0gY29sdW1uRXh0cmVt
YSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkV4dHJlbWEgPSBwaXhlbDsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGV4dHJlbWEuYXBwZW5kKGNvbHVtbkV4dHJlbWEpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAvLyBLZXJuZWwgaXMgZmlsbGVkLCBnZXQgZXh0cmVtYSBvZiBuZXh0IGNvbHVtbgorICAg
ICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7CisgICAgICAgICAgICAg
ICAgY29uc3QgaW50IGVuZFggPSBtaW4oeCArIHJhZGl1c1gsIHdpZHRoIC0gMSk7CisgICAgICAg
ICAgICAgICAgdW5zaWduZWQgY2hhciBjb2x1bW5FeHRyZW1hID0gc3JjUGl4ZWxBcnJheS0+Z2V0
KGV4dFN0YXJ0WSAqIHJvd0J5dGVXaWR0aCArIGVuZFggKiA0ICsgY2xyQ2hhbm5lbCk7CisgICAg
ICAgICAgICAgICAgZm9yIChpbnQgaSA9IGV4dFN0YXJ0WSArIDE7IGkgPD0gZXh0RW5kWTsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgcGl4ZWwgPSBzcmNQaXhlbEFy
cmF5LT5nZXQoaSAqIHJvd0J5dGVXaWR0aCArIGVuZFggKiA0ICsgY2xyQ2hhbm5lbCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmICgobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9FUk9E
RSAmJiBwaXhlbCA8PSBjb2x1bW5FeHRyZW1hKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwg
KG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRElMQVRFICYmIHBpeGVsID49IGNvbHVt
bkV4dHJlbWEpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRXh0cmVtYSA9IHBpeGVs
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICh4IC0gcmFkaXVzWCA+
PSAwKQorICAgICAgICAgICAgICAgICAgICBleHRyZW1hLnJlbW92ZSgwKTsKKyAgICAgICAgICAg
ICAgICBpZiAoeCArIHJhZGl1c1ggPD0gd2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGV4dHJl
bWEuYXBwZW5kKGNvbHVtbkV4dHJlbWEpOworCisgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hh
ciBlbnRpcmVFeHRyZW1hID0gZXh0cmVtYVswXTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGtlcm5lbEluZGV4ID0gMTsga2VybmVsSW5kZXggPCBleHRyZW1hLnNpemUoKTsgKytrZXJu
ZWxJbmRleCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xP
R1lfT1BFUkFUT1JfRVJPREUgJiYgZXh0cmVtYVtrZXJuZWxJbmRleF0gPD0gZW50aXJlRXh0cmVt
YSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09Q
RVJBVE9SX0RJTEFURSAmJiBleHRyZW1hW2tlcm5lbEluZGV4XSA+PSBlbnRpcmVFeHRyZW1hKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGVudGlyZUV4dHJlbWEgPSBleHRyZW1hW2tlcm5lbElu
ZGV4XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZHN0UGl4ZWxBcnJheS0+
c2V0KHkgKiByb3dCeXRlV2lkdGggKyA0ICogeCArIGNsckNoYW5uZWwsIGVudGlyZUV4dHJlbWEp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisjaWYgRU5BQkxFKFBBUkFM
TEVMX0pPQlMpCit2b2lkIEZFTW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseVdvcmtlcihQbGF0Zm9y
bUFwcGx5UGFyYW1ldGVycyogcGFyYW0pCit7CisgICAgcGFyYW0tPmZpbHRlci0+cGxhdGZvcm1B
cHBseUdlbmVyaWMocGFyYW0tPnBhaW50aW5nRGF0YSwgcGFyYW0tPnJhZGl1c1gsIHBhcmFtLT5y
YWRpdXNZLCBwYXJhbS0+c3RhcnRZLCBwYXJhbS0+ZW5kWSk7Cit9CisjZW5kaWYKKwordm9pZCBG
RU1vcnBob2xvZ3k6OnBsYXRmb3JtQXBwbHkoUGFpbnRpbmdEYXRhKiBwYWludGluZ0RhdGEsIGNv
bnN0IGludCByYWRpdXNYLCBjb25zdCBpbnQgcmFkaXVzWSkKK3sKKyNpZiBFTkFCTEUoUEFSQUxM
RUxfSk9CUykKKyAgICBpbnQgb3B0aW1hbFRocmVhZE51bWJlciA9IChwYWludGluZ0RhdGEtPndp
ZHRoICogcGFpbnRpbmdEYXRhLT5oZWlnaHQpIC8gc19taW5pbWFsQXJlYTsKKyAgICBpZiAob3B0
aW1hbFRocmVhZE51bWJlciA+IDEpIHsKKyAgICAgICAgUGFyYWxsZWxKb2JzPFBsYXRmb3JtQXBw
bHlQYXJhbWV0ZXJzPiBwYXJhbGxlbEpvYnMoJldlYkNvcmU6OkZFTW9ycGhvbG9neTo6cGxhdGZv
cm1BcHBseVdvcmtlciwgb3B0aW1hbFRocmVhZE51bWJlcik7CisgICAgICAgIGludCBudW1PZlRo
cmVhZHMgPSBwYXJhbGxlbEpvYnMubnVtYmVyT2ZKb2JzKCk7CisgICAgICAgIGlmIChudW1PZlRo
cmVhZHMgPiAxKSB7CisgICAgICAgICAgICBjb25zdCBpbnQgZGVsdGFZID0gMSArIHBhaW50aW5n
RGF0YS0+aGVpZ2h0IC8gbnVtT2ZUaHJlYWRzOworICAgICAgICAgICAgaW50IGN1cnJlbnRZID0g
MDsKKyAgICAgICAgICAgIGZvciAoaW50IGpvYiA9IG51bU9mVGhyZWFkcyAtIDE7IGpvYiA+PSAw
OyAtLWpvYikgeworICAgICAgICAgICAgICAgIFBsYXRmb3JtQXBwbHlQYXJhbWV0ZXJzJiBwYXJh
bSA9IHBhcmFsbGVsSm9icy5wYXJhbWV0ZXIoam9iKTsKKyAgICAgICAgICAgICAgICBwYXJhbS5m
aWx0ZXIgPSB0aGlzOworICAgICAgICAgICAgICAgIHBhcmFtLnN0YXJ0WSA9IGN1cnJlbnRZOwor
ICAgICAgICAgICAgICAgIGN1cnJlbnRZICs9IGRlbHRhWTsKKyAgICAgICAgICAgICAgICBwYXJh
bS5lbmRZID0gKGpvYikgPyAoY3VycmVudFkpIDogKHBhaW50aW5nRGF0YS0+aGVpZ2h0KTsKKyAg
ICAgICAgICAgICAgICBwYXJhbS5wYWludGluZ0RhdGEgPSBwYWludGluZ0RhdGE7CisgICAgICAg
ICAgICAgICAgcGFyYW0ucmFkaXVzWCA9IHJhZGl1c1g7CisgICAgICAgICAgICAgICAgcGFyYW0u
cmFkaXVzWSA9IHJhZGl1c1k7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXJhbGxlbEpv
YnMuZXhlY3V0ZSgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8v
IEZhbGxiYWNrIHRvIHNpbmdsZSB0aHJlYWQgbW9kZWwKKyAgICB9CisjZW5kaWYKKyAgICBwbGF0
Zm9ybUFwcGx5R2VuZXJpYyhwYWludGluZ0RhdGEsIHJhZGl1c1gsIHJhZGl1c1kpOworfQorCisK
IHZvaWQgRkVNb3JwaG9sb2d5OjphcHBseSgpCiB7CiAgICAgaWYgKGhhc1Jlc3VsdCgpKQpAQCAt
MTIzLDU1ICsyMjIsMTggQEAgdm9pZCBGRU1vcnBob2xvZ3k6OmFwcGx5KCkKIAogICAgIEludFJl
Y3QgZWZmZWN0RHJhd2luZ1JlY3QgPSByZXF1ZXN0ZWRSZWdpb25PZklucHV0SW1hZ2VEYXRhKGlu
LT5hYnNvbHV0ZVBhaW50UmVjdCgpKTsKICAgICBSZWZQdHI8Qnl0ZUFycmF5PiBzcmNQaXhlbEFy
cmF5ID0gaW4tPmFzUHJlbXVsdGlwbGllZEltYWdlKGVmZmVjdERyYXdpbmdSZWN0KTsKLQotICAg
IGludCBlZmZlY3RXaWR0aCA9IGVmZmVjdERyYXdpbmdSZWN0LndpZHRoKCkgKiA0OwogICAgIAog
ICAgIC8vIExpbWl0IHRoZSByYWRpdXMgc2l6ZSB0byBlZmZlY3QgZGltZW5zaW9ucwogICAgIHJh
ZGl1c1ggPSBtaW4oZWZmZWN0RHJhd2luZ1JlY3Qud2lkdGgoKSAtIDEsIHJhZGl1c1gpOwogICAg
IHJhZGl1c1kgPSBtaW4oZWZmZWN0RHJhd2luZ1JlY3QuaGVpZ2h0KCkgLSAxLCByYWRpdXNZKTsK
ICAgICAKLSAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gZXh0cmVtYTsKLSAgICBmb3IgKGludCB5
ID0gMDsgeSA8IGVmZmVjdERyYXdpbmdSZWN0LmhlaWdodCgpOyArK3kpIHsKLSAgICAgICAgaW50
IHN0YXJ0WSA9IG1heCgwLCB5IC0gcmFkaXVzWSk7Ci0gICAgICAgIGludCBlbmRZID0gbWluKGVm
ZmVjdERyYXdpbmdSZWN0LmhlaWdodCgpIC0gMSwgeSArIHJhZGl1c1kpOwotICAgICAgICBmb3Ig
KHVuc2lnbmVkIGNoYW5uZWwgPSAwOyBjaGFubmVsIDwgNDsgKytjaGFubmVsKSB7Ci0gICAgICAg
ICAgICAvLyBGaWxsIHRoZSBrZXJuZWwKLSAgICAgICAgICAgIGV4dHJlbWEuY2xlYXIoKTsKLSAg
ICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IHJhZGl1c1g7ICsraikgewotICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGNoYXIgY29sdW1uRXh0cmVtYSA9IHNyY1BpeGVsQXJyYXktPmdldChz
dGFydFkgKiBlZmZlY3RXaWR0aCArIDQgKiBqICsgY2hhbm5lbCk7Ci0gICAgICAgICAgICAgICAg
Zm9yIChpbnQgaSA9IHN0YXJ0WTsgaSA8PSBlbmRZOyArK2kpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgY2hhciBwaXhlbCA9IHNyY1BpeGVsQXJyYXktPmdldChpICogZWZmZWN0V2lk
dGggKyA0ICogaiArIGNoYW5uZWwpOwotICAgICAgICAgICAgICAgICAgICBpZiAoKG1fdHlwZSA9
PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJPREUgJiYgcGl4ZWwgPD0gY29sdW1uRXh0cmVtYSkg
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgIChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJB
VE9SX0RJTEFURSAmJiBwaXhlbCA+PSBjb2x1bW5FeHRyZW1hKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbHVtbkV4dHJlbWEgPSBwaXhlbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgZXh0cmVtYS5hcHBlbmQoY29sdW1uRXh0cmVtYSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEtlcm5lbCBpcyBmaWxsZWQsIGdldCBleHRyZW1h
IG9mIG5leHQgY29sdW1uIAotICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBlZmZlY3RE
cmF3aW5nUmVjdC53aWR0aCgpOyArK3gpIHsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBlbmRY
ID0gbWluKHggKyByYWRpdXNYLCBlZmZlY3REcmF3aW5nUmVjdC53aWR0aCgpIC0gMSk7Ci0gICAg
ICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb2x1bW5FeHRyZW1hID0gc3JjUGl4ZWxBcnJheS0+
Z2V0KHN0YXJ0WSAqIGVmZmVjdFdpZHRoICsgZW5kWCAqIDQgKyBjaGFubmVsKTsKLSAgICAgICAg
ICAgICAgICBmb3IgKGludCBpID0gc3RhcnRZOyBpIDw9IGVuZFk7ICsraSkgewotICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHBpeGVsID0gc3JjUGl4ZWxBcnJheS0+Z2V0KGkgKiBl
ZmZlY3RXaWR0aCArIGVuZFggKiA0ICsgY2hhbm5lbCk7Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICgobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9FUk9ERSAmJiBwaXhlbCA8PSBjb2x1
bW5FeHRyZW1hKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgKG1fdHlwZSA9PSBGRU1PUlBI
T0xPR1lfT1BFUkFUT1JfRElMQVRFICYmIHBpeGVsID49IGNvbHVtbkV4dHJlbWEpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgY29sdW1uRXh0cmVtYSA9IHBpeGVsOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBpZiAoeCAtIHJhZGl1c1ggPj0gMCkKLSAgICAgICAgICAgICAg
ICAgICAgZXh0cmVtYS5yZW1vdmUoMCk7Ci0gICAgICAgICAgICAgICAgaWYgKHggKyByYWRpdXNY
IDw9IGVmZmVjdERyYXdpbmdSZWN0LndpZHRoKCkpCi0gICAgICAgICAgICAgICAgICAgIGV4dHJl
bWEuYXBwZW5kKGNvbHVtbkV4dHJlbWEpOwotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIg
ZW50aXJlRXh0cmVtYSA9IGV4dHJlbWFbMF07Ci0gICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBrZXJuZWxJbmRleCA9IDA7IGtlcm5lbEluZGV4IDwgZXh0cmVtYS5zaXplKCk7ICsra2VybmVs
SW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZ
X09QRVJBVE9SX0VST0RFICYmIGV4dHJlbWFba2VybmVsSW5kZXhdIDw9IGVudGlyZUV4dHJlbWEp
IHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVS
QVRPUl9ESUxBVEUgJiYgZXh0cmVtYVtrZXJuZWxJbmRleF0gPj0gZW50aXJlRXh0cmVtYSkpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBlbnRpcmVFeHRyZW1hID0gZXh0cmVtYVtrZXJuZWxJbmRl
eF07Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGRzdFBpeGVsQXJyYXktPnNl
dCh5ICogZWZmZWN0V2lkdGggKyA0ICogeCArIGNoYW5uZWwsIGVudGlyZUV4dHJlbWEpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIFBhaW50aW5nRGF0YSBwYWludGluZ0Rh
dGE7CisgICAgcGFpbnRpbmdEYXRhLnNyY1BpeGVsQXJyYXkgPSBzcmNQaXhlbEFycmF5LmdldCgp
OworICAgIHBhaW50aW5nRGF0YS5kc3RQaXhlbEFycmF5ID0gZHN0UGl4ZWxBcnJheTsKKyAgICBw
YWludGluZ0RhdGEud2lkdGggPSBlZmZlY3REcmF3aW5nUmVjdC53aWR0aCgpOworICAgIHBhaW50
aW5nRGF0YS5oZWlnaHQgPSBlZmZlY3REcmF3aW5nUmVjdC5oZWlnaHQoKTsKKworICAgIHBsYXRm
b3JtQXBwbHkoJnBhaW50aW5nRGF0YSwgcmFkaXVzWCwgcmFkaXVzWSk7CiB9CiAKIHZvaWQgRkVN
b3JwaG9sb2d5OjpkdW1wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCmluZGV4IDc0YzNiNWEuLjdlZmY5NDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3Jw
aG9sb2d5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU1vcnBob2xvZ3kuaApAQCAtNTMsNiArNTMsMjkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBU
ZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50
aW9uKSBjb25zdDsKIAorICAgIHN0cnVjdCBQYWludGluZ0RhdGEgeworICAgICAgICBCeXRlQXJy
YXkqIHNyY1BpeGVsQXJyYXk7CisgICAgICAgIEJ5dGVBcnJheSogZHN0UGl4ZWxBcnJheTsKKyAg
ICAgICAgaW50IHdpZHRoOworICAgICAgICBpbnQgaGVpZ2h0OworICAgIH07CisKKyAgICAjaWYg
RU5BQkxFKFBBUkFMTEVMX0pPQlMpCisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc19taW5pbWFs
QXJlYSA9IDMwMCAqIDMwMDsKKworICAgICAgICBzdHJ1Y3QgUGxhdGZvcm1BcHBseVBhcmFtZXRl
cnMgeworICAgICAgICAgICAgRkVNb3JwaG9sb2d5KiBmaWx0ZXI7CisgICAgICAgICAgICBpbnQg
c3RhcnRZOworICAgICAgICAgICAgaW50IGVuZFk7CisgICAgICAgICAgICBQYWludGluZ0RhdGEq
IHBhaW50aW5nRGF0YTsKKyAgICAgICAgICAgIGludCByYWRpdXNYOworICAgICAgICAgICAgaW50
IHJhZGl1c1k7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyB2b2lkIHBsYXRmb3JtQXBwbHlX
b3JrZXIoUGxhdGZvcm1BcHBseVBhcmFtZXRlcnMqKTsKKyAgICAjZW5kaWYKKworICAgICAgICB2
b2lkIHBsYXRmb3JtQXBwbHkoUGFpbnRpbmdEYXRhKiwgY29uc3QgaW50IHJhZGl1c1gsIGNvbnN0
IGludCByYWRpdXNZKTsKKyAgICAgICAgdm9pZCBwbGF0Zm9ybUFwcGx5R2VuZXJpYyhQYWludGlu
Z0RhdGEqLCBjb25zdCBpbnQgcmFkaXVzWCwgY29uc3QgaW50IHJhZGl1c1ksIGNvbnN0IGludCB5
U3RhcnQ9LTEsIGNvbnN0IGludCB5RW5kPS0xKTsKIHByaXZhdGU6CiAgICAgRkVNb3JwaG9sb2d5
KEZpbHRlciosIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1c1gsIGZsb2F0IHJh
ZGl1c1kpOwogICAgIAotLSAKMS43LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98343</attachid>
            <date>2011-06-23 06:49:30 -0700</date>
            <delta_ts>2011-06-24 03:48:25 -0700</delta_ts>
            <desc>Apply the ParallelJobs support to FEMorphology</desc>
            <filename>0001-Apply-the-ParallelJobs-support-to-FEMorphology.patch</filename>
            <type>text/plain</type>
            <size>11023</size>
            <attacher name="Andras Piroska">pandras</attacher>
            
              <data encoding="base64">RnJvbSAyMDRlMmRhNDNiY2IwNjNiNDIxZDQ5MWQyMTFjMWI3MjI4M2M5ZjQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UGlyb3NrYT0yMEFuZHI9QzM9QTFzPz0gPFBp
cm9za2EuQW5kcmFzQHN0dWQudS1zemVnZWQuaHU+CkRhdGU6IFRodSwgMjMgSnVuIDIwMTEgMTU6
Mzc6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBcHBseS10aGUtUGFyYWxsZWxKb2JzLXN1cHBv
cnQtdG8tRkVNb3JwaG9sb2d5CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5jcHAgICAgIHwgIDE0NiArKysrKysrKysrKysrKy0tLS0tLQogLi4u
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggICAgICAgfCAgIDIyICsr
KwogMyBmaWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ0NGVkZDEuLjAwNmU3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMS0wNi0xNSAgUGlyb3NrYSBBbmRyw6FzICA8UGlyb3NrYS5BbmRyw6FzQHN0dWQudS1z
emVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQXBwbHkgdGhlIFBhcmFsbGVsSm9icyBzdXBwb3J0IHRvIEZFTW9ycGhvbG9neQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwNjQKKworICAgICAg
ICBUaGUgRkVNb3JwaG9sb2d5IGZpbHRlciBvZiBTVkcgY2FuIGNvbnN1bWUgbG90cyBvZiByZXNv
dXJjZXMgaWYgaXQgaXMKKyAgICAgICAgYXBwbGllZCB0byBhIGxhcmdlIGFyZWEuIFRoZSBjb21w
dXRhdGlvbiBjYW4gYmUgZGlzdHJpYnV0ZWQgdG8gbXVsdGlwbGUKKyAgICAgICAgY29yZXMgaWYg
dGhlIGFyY2hpdGVjdHVyZSBzdXBwb3J0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9n
eTo6cGxhdGZvcm1BcHBseUdlbmVyaWMpOgorICAgICAgICAoV2ViQ29yZTo6RkVNb3JwaG9sb2d5
OjpwbGF0Zm9ybUFwcGx5V29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6
cGxhdGZvcm1BcHBseSk6CisgICAgICAgIChXZWJDb3JlOjpGRU1vcnBob2xvZ3k6OmFwcGx5KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oOgorCiAy
MDExLTA2LTA5ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAppbmRleCBhYTAx
NTcwLi4zNDJkZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiVGV4dFN0cmVhbS5oIgogCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgorI2luY2x1
ZGUgPHd0Zi9QYXJhbGxlbEpvYnMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5n
IHN0ZDo6bWluOwpAQCAtMTAwLDYgKzEwMSwxMDAgQEAgYm9vbCBGRU1vcnBob2xvZ3k6OnNldFJh
ZGl1c1koZmxvYXQgcmFkaXVzWSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBGRU1vcnBo
b2xvZ3k6OnBsYXRmb3JtQXBwbHlHZW5lcmljKFBhaW50aW5nRGF0YSogcGFpbnRpbmdEYXRhLCBp
bnQgeVN0YXJ0LCBpbnQgeUVuZCkKK3sKKyAgICBCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXkgPSBw
YWludGluZ0RhdGEtPnNyY1BpeGVsQXJyYXk7CisgICAgQnl0ZUFycmF5KiBkc3RQaXhlbEFycmF5
ID0gcGFpbnRpbmdEYXRhLT5kc3RQaXhlbEFycmF5OworICAgIGNvbnN0IGludCB3aWR0aCA9IHBh
aW50aW5nRGF0YS0+d2lkdGg7CisgICAgY29uc3QgaW50IGhlaWdodCA9IHBhaW50aW5nRGF0YS0+
aGVpZ2h0OworICAgIGNvbnN0IGludCBlZmZlY3RXaWR0aCAgPSB3aWR0aCAqIDQ7CisKKyAgICBp
bnQgcmFkaXVzWCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKGZpbHRlcigpLT5hcHBseUhvcml6
b250YWxTY2FsZShtX3JhZGl1c1gpKSk7CisgICAgaW50IHJhZGl1c1kgPSBzdGF0aWNfY2FzdDxp
bnQ+KGZsb29yZihmaWx0ZXIoKS0+YXBwbHlWZXJ0aWNhbFNjYWxlKG1fcmFkaXVzWSkpKTsKKwor
ICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBleHRyZW1hOworICAgIGZvciAoaW50IHkgPSB5U3Rh
cnQ7IHkgPCB5RW5kOyArK3kpIHsKKyAgICAgICAgaW50IGV4dHJlbWFTdGFydFkgPSBtYXgoMCwg
eSAtIHJhZGl1c1kpOworICAgICAgICBpbnQgZXh0cmVtYUVuZFkgPSBtaW4oaGVpZ2h0IC0gMSwg
eSArIHJhZGl1c1kpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBjbHJDaGFubmVsID0gMDsg
Y2xyQ2hhbm5lbCA8IDQ7ICsrY2xyQ2hhbm5lbCkgeworICAgICAgICAgICAgZXh0cmVtYS5jbGVh
cigpOworICAgICAgICAgICAgLy8gQ29tcHV0ZSBleHRyZW1hcyBmb3IgZWFjaCBjb2x1bW5zCisg
ICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8PSByYWRpdXNYOyArK3gpIHsKKyAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbHVtbkV4dHJlbWEgPSBzcmNQaXhlbEFycmF5LT5nZXQo
eVN0YXJ0ICogZWZmZWN0V2lkdGggICsgNCAqIHggKyBjbHJDaGFubmVsKTsKKyAgICAgICAgICAg
ICAgICBmb3IgKGludCBlWSA9IGV4dHJlbWFTdGFydFkgKyAxOyBlWSA8IGV4dHJlbWFFbmRZOyAr
K2VZKSB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgcGl4ZWwgPSBzcmNQaXhl
bEFycmF5LT5nZXQoZVkgKiBlZmZlY3RXaWR0aCAgKyA0ICogeCArIGNsckNoYW5uZWwpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJP
REUgJiYgcGl4ZWwgPD0gY29sdW1uRXh0cmVtYSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8
IChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0RJTEFURSAmJiBwaXhlbCA+PSBjb2x1
bW5FeHRyZW1hKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRXh0cmVtYSA9IHBp
eGVsOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgZXh0cmVtYS5hcHBlbmQoY29sdW1uRXh0cmVtYSk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC8vIEtlcm5lbCBpcyBmaWxsZWQsIGdldCBleHRyZW1hIG9mIG5leHQgY29s
dW1uCisgICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpIHsKKyAgICAg
ICAgICAgICAgICBjb25zdCBpbnQgZW5kWCA9IG1pbih4ICsgcmFkaXVzWCwgd2lkdGggLSAxKTsK
KyAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbHVtbkV4dHJlbWEgPSBzcmNQaXhlbEFy
cmF5LT5nZXQoZXh0cmVtYVN0YXJ0WSAqIGVmZmVjdFdpZHRoICArIGVuZFggKiA0ICsgY2xyQ2hh
bm5lbCk7CisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IGV4dHJlbWFTdGFydFkgKyAxOyBp
IDw9IGV4dHJlbWFFbmRZOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hh
ciBwaXhlbCA9IHNyY1BpeGVsQXJyYXktPmdldChpICogZWZmZWN0V2lkdGggICsgZW5kWCAqIDQg
KyBjbHJDaGFubmVsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChtX3R5cGUgPT0gRkVNT1JQ
SE9MT0dZX09QRVJBVE9SX0VST0RFICYmIHBpeGVsIDw9IGNvbHVtbkV4dHJlbWEpCisgICAgICAg
ICAgICAgICAgICAgICAgICB8fCAobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxB
VEUgJiYgcGl4ZWwgPj0gY29sdW1uRXh0cmVtYSkpCisgICAgICAgICAgICAgICAgICAgICAgICBj
b2x1bW5FeHRyZW1hID0gcGl4ZWw7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg
ICAgaWYgKHggLSByYWRpdXNYID49IDApCisgICAgICAgICAgICAgICAgICAgIGV4dHJlbWEucmVt
b3ZlKDApOworICAgICAgICAgICAgICAgIGlmICh4ICsgcmFkaXVzWCA8PSB3aWR0aCkKKyAgICAg
ICAgICAgICAgICAgICAgZXh0cmVtYS5hcHBlbmQoY29sdW1uRXh0cmVtYSk7CisKKyAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjaGFyIGVudGlyZUV4dHJlbWEgPSBleHRyZW1hWzBdOworICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQga2VybmVsSW5kZXggPSAxOyBrZXJuZWxJbmRleCA8IGV4
dHJlbWEuc2l6ZSgpOyArK2tlcm5lbEluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgo
bV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9FUk9ERSAmJiBleHRyZW1hW2tlcm5lbElu
ZGV4XSA8PSBlbnRpcmVFeHRyZW1hKQorICAgICAgICAgICAgICAgICAgICAgICAgfHwgKG1fdHlw
ZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRElMQVRFICYmIGV4dHJlbWFba2VybmVsSW5kZXhd
ID49IGVudGlyZUV4dHJlbWEpKQorICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlRXh0cmVt
YSA9IGV4dHJlbWFba2VybmVsSW5kZXhdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBkc3RQaXhlbEFycmF5LT5zZXQoeSAqIGVmZmVjdFdpZHRoICsgNCAqIHggKyBjbHJDaGFu
bmVsLCBlbnRpcmVFeHRyZW1hKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30K
KworI2lmIEVOQUJMRShQQVJBTExFTF9KT0JTKQordm9pZCBGRU1vcnBob2xvZ3k6OnBsYXRmb3Jt
QXBwbHlXb3JrZXIoUGxhdGZvcm1BcHBseVBhcmFtZXRlcnMqIHBhcmFtKQoreworICAgIHBhcmFt
LT5maWx0ZXItPnBsYXRmb3JtQXBwbHlHZW5lcmljKHBhcmFtLT5wYWludGluZ0RhdGEsIHBhcmFt
LT5zdGFydFksIHBhcmFtLT5lbmRZKTsKK30KKyNlbmRpZgorCit2b2lkIEZFTW9ycGhvbG9neTo6
cGxhdGZvcm1BcHBseShQYWludGluZ0RhdGEqIHBhaW50aW5nRGF0YSwgY29uc3QgaW50IHJhZGl1
c1gsIGNvbnN0IGludCByYWRpdXNZKQoreworI2lmIEVOQUJMRShQQVJBTExFTF9KT0JTKQorICAg
IGludCBvcHRpbWFsVGhyZWFkTnVtYmVyID0gKHBhaW50aW5nRGF0YS0+d2lkdGggKiBwYWludGlu
Z0RhdGEtPmhlaWdodCkgLyBzX21pbmltYWxBcmVhOworICAgIGlmIChvcHRpbWFsVGhyZWFkTnVt
YmVyID4gMSkgeworICAgICAgICBQYXJhbGxlbEpvYnM8UGxhdGZvcm1BcHBseVBhcmFtZXRlcnM+
IHBhcmFsbGVsSm9icygmV2ViQ29yZTo6RkVNb3JwaG9sb2d5OjpwbGF0Zm9ybUFwcGx5V29ya2Vy
LCBvcHRpbWFsVGhyZWFkTnVtYmVyKTsKKyAgICAgICAgaW50IG51bU9mVGhyZWFkcyA9IHBhcmFs
bGVsSm9icy5udW1iZXJPZkpvYnMoKTsKKyAgICAgICAgaWYgKG51bU9mVGhyZWFkcyA+IDEpIHsK
KyAgICAgICAgICAgIGNvbnN0IGludCBkZWx0YVkgPSAxICsgcGFpbnRpbmdEYXRhLT5oZWlnaHQg
LyBudW1PZlRocmVhZHM7CisgICAgICAgICAgICBpbnQgY3VycmVudFkgPSAwOworICAgICAgICAg
ICAgZm9yIChpbnQgam9iID0gbnVtT2ZUaHJlYWRzIC0gMTsgam9iID49IDA7IC0tam9iKSB7Cisg
ICAgICAgICAgICAgICAgUGxhdGZvcm1BcHBseVBhcmFtZXRlcnMmIHBhcmFtID0gcGFyYWxsZWxK
b2JzLnBhcmFtZXRlcihqb2IpOworICAgICAgICAgICAgICAgIHBhcmFtLmZpbHRlciA9IHRoaXM7
CisgICAgICAgICAgICAgICAgcGFyYW0uc3RhcnRZID0gY3VycmVudFk7CisgICAgICAgICAgICAg
ICAgY3VycmVudFkgKz0gZGVsdGFZOworICAgICAgICAgICAgICAgIHBhcmFtLmVuZFkgPSAoam9i
KSA/IChjdXJyZW50WSkgOiAocGFpbnRpbmdEYXRhLT5oZWlnaHQpOworICAgICAgICAgICAgICAg
IHBhcmFtLnBhaW50aW5nRGF0YSA9IHBhaW50aW5nRGF0YTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHBhcmFsbGVsSm9icy5leGVjdXRlKCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgLy8gRmFsbGJhY2sgdG8gc2luZ2xlIHRocmVhZCBtb2RlbAorICAgIH0K
KyNlbmRpZgorICAgIHBsYXRmb3JtQXBwbHlHZW5lcmljKHBhaW50aW5nRGF0YSwgMCwgcGFpbnRp
bmdEYXRhLT5oZWlnaHQpOworfQorCisKIHZvaWQgRkVNb3JwaG9sb2d5OjphcHBseSgpCiB7CiAg
ICAgaWYgKGhhc1Jlc3VsdCgpKQpAQCAtMTIzLDU1ICsyMTgsMTggQEAgdm9pZCBGRU1vcnBob2xv
Z3k6OmFwcGx5KCkKIAogICAgIEludFJlY3QgZWZmZWN0RHJhd2luZ1JlY3QgPSByZXF1ZXN0ZWRS
ZWdpb25PZklucHV0SW1hZ2VEYXRhKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKTsKICAgICBSZWZQ
dHI8Qnl0ZUFycmF5PiBzcmNQaXhlbEFycmF5ID0gaW4tPmFzUHJlbXVsdGlwbGllZEltYWdlKGVm
ZmVjdERyYXdpbmdSZWN0KTsKLQotICAgIGludCBlZmZlY3RXaWR0aCA9IGVmZmVjdERyYXdpbmdS
ZWN0LndpZHRoKCkgKiA0OwogICAgIAogICAgIC8vIExpbWl0IHRoZSByYWRpdXMgc2l6ZSB0byBl
ZmZlY3QgZGltZW5zaW9ucwogICAgIHJhZGl1c1ggPSBtaW4oZWZmZWN0RHJhd2luZ1JlY3Qud2lk
dGgoKSAtIDEsIHJhZGl1c1gpOwogICAgIHJhZGl1c1kgPSBtaW4oZWZmZWN0RHJhd2luZ1JlY3Qu
aGVpZ2h0KCkgLSAxLCByYWRpdXNZKTsKICAgICAKLSAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4g
ZXh0cmVtYTsKLSAgICBmb3IgKGludCB5ID0gMDsgeSA8IGVmZmVjdERyYXdpbmdSZWN0LmhlaWdo
dCgpOyArK3kpIHsKLSAgICAgICAgaW50IHN0YXJ0WSA9IG1heCgwLCB5IC0gcmFkaXVzWSk7Ci0g
ICAgICAgIGludCBlbmRZID0gbWluKGVmZmVjdERyYXdpbmdSZWN0LmhlaWdodCgpIC0gMSwgeSAr
IHJhZGl1c1kpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGNoYW5uZWwgPSAwOyBjaGFubmVsIDwg
NDsgKytjaGFubmVsKSB7Ci0gICAgICAgICAgICAvLyBGaWxsIHRoZSBrZXJuZWwKLSAgICAgICAg
ICAgIGV4dHJlbWEuY2xlYXIoKTsKLSAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IHJh
ZGl1c1g7ICsraikgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29sdW1uRXh0cmVt
YSA9IHNyY1BpeGVsQXJyYXktPmdldChzdGFydFkgKiBlZmZlY3RXaWR0aCArIDQgKiBqICsgY2hh
bm5lbCk7Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0WTsgaSA8PSBlbmRZOyAr
K2kpIHsKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBwaXhlbCA9IHNyY1BpeGVs
QXJyYXktPmdldChpICogZWZmZWN0V2lkdGggKyA0ICogaiArIGNoYW5uZWwpOwotICAgICAgICAg
ICAgICAgICAgICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJPREUgJiYg
cGl4ZWwgPD0gY29sdW1uRXh0cmVtYSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgIChtX3R5
cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0RJTEFURSAmJiBwaXhlbCA+PSBjb2x1bW5FeHRy
ZW1hKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkV4dHJlbWEgPSBwaXhlbDsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZXh0cmVtYS5hcHBlbmQoY29sdW1uRXh0
cmVtYSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEtlcm5l
bCBpcyBmaWxsZWQsIGdldCBleHRyZW1hIG9mIG5leHQgY29sdW1uIAotICAgICAgICAgICAgZm9y
IChpbnQgeCA9IDA7IHggPCBlZmZlY3REcmF3aW5nUmVjdC53aWR0aCgpOyArK3gpIHsKLSAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBlbmRYID0gbWluKHggKyByYWRpdXNYLCBlZmZlY3REcmF3aW5n
UmVjdC53aWR0aCgpIC0gMSk7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb2x1bW5F
eHRyZW1hID0gc3JjUGl4ZWxBcnJheS0+Z2V0KHN0YXJ0WSAqIGVmZmVjdFdpZHRoICsgZW5kWCAq
IDQgKyBjaGFubmVsKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnRZOyBpIDw9
IGVuZFk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHBpeGVsID0g
c3JjUGl4ZWxBcnJheS0+Z2V0KGkgKiBlZmZlY3RXaWR0aCArIGVuZFggKiA0ICsgY2hhbm5lbCk7
Ci0gICAgICAgICAgICAgICAgICAgIGlmICgobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRP
Ul9FUk9ERSAmJiBwaXhlbCA8PSBjb2x1bW5FeHRyZW1hKSB8fAotICAgICAgICAgICAgICAgICAg
ICAgICAgKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRElMQVRFICYmIHBpeGVsID49
IGNvbHVtbkV4dHJlbWEpKQotICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRXh0cmVtYSA9
IHBpeGVsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoeCAtIHJhZGl1
c1ggPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgZXh0cmVtYS5yZW1vdmUoMCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHggKyByYWRpdXNYIDw9IGVmZmVjdERyYXdpbmdSZWN0LndpZHRoKCkpCi0g
ICAgICAgICAgICAgICAgICAgIGV4dHJlbWEuYXBwZW5kKGNvbHVtbkV4dHJlbWEpOwotICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNoYXIgZW50aXJlRXh0cmVtYSA9IGV4dHJlbWFbMF07Ci0gICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrZXJuZWxJbmRleCA9IDA7IGtlcm5lbEluZGV4IDwg
ZXh0cmVtYS5zaXplKCk7ICsra2VybmVsSW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0VST0RFICYmIGV4dHJlbWFba2VybmVs
SW5kZXhdIDw9IGVudGlyZUV4dHJlbWEpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAobV90
eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxBVEUgJiYgZXh0cmVtYVtrZXJuZWxJbmRl
eF0gPj0gZW50aXJlRXh0cmVtYSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBlbnRpcmVFeHRy
ZW1hID0gZXh0cmVtYVtrZXJuZWxJbmRleF07Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGRzdFBpeGVsQXJyYXktPnNldCh5ICogZWZmZWN0V2lkdGggKyA0ICogeCArIGNoYW5u
ZWwsIGVudGlyZUV4dHJlbWEpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAg
IFBhaW50aW5nRGF0YSBwYWludGluZ0RhdGE7CisgICAgcGFpbnRpbmdEYXRhLnNyY1BpeGVsQXJy
YXkgPSBzcmNQaXhlbEFycmF5LmdldCgpOworICAgIHBhaW50aW5nRGF0YS5kc3RQaXhlbEFycmF5
ID0gZHN0UGl4ZWxBcnJheTsKKyAgICBwYWludGluZ0RhdGEud2lkdGggPSBlZmZlY3REcmF3aW5n
UmVjdC53aWR0aCgpOworICAgIHBhaW50aW5nRGF0YS5oZWlnaHQgPSBlZmZlY3REcmF3aW5nUmVj
dC5oZWlnaHQoKTsKKworICAgIHBsYXRmb3JtQXBwbHkoJnBhaW50aW5nRGF0YSwgcmFkaXVzWCwg
cmFkaXVzWSk7CiB9CiAKIHZvaWQgRkVNb3JwaG9sb2d5OjpkdW1wKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCmlu
ZGV4IDc0YzNiNWEuLjkyNjc5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtNTMsNiArNTMsMjggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBUZXh0U3RyZWFtJiBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KFRleHRTdHJlYW0mLCBpbnQgaW5kZW50aW9uKSBjb25zdDsKIAorICAgIHN0cnVjdCBQYWludGlu
Z0RhdGEgeworICAgICAgICBCeXRlQXJyYXkqIHNyY1BpeGVsQXJyYXk7CisgICAgICAgIEJ5dGVB
cnJheSogZHN0UGl4ZWxBcnJheTsKKyAgICAgICAgaW50IHdpZHRoOworICAgICAgICBpbnQgaGVp
Z2h0OworICAgIH07CisKKyAgICAjaWYgRU5BQkxFKFBBUkFMTEVMX0pPQlMpCisgICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgc19taW5pbWFsQXJlYSA9ICgzMDAgKiAzMDApOyAvLyBFbXBpcmljYWwg
ZGF0YSBsaW1pdCBmb3IgcGFyYWxsZWwgam9icworCisgICAgICAgIHN0cnVjdCBQbGF0Zm9ybUFw
cGx5UGFyYW1ldGVycyB7CisgICAgICAgICAgICBGRU1vcnBob2xvZ3kqIGZpbHRlcjsKKyAgICAg
ICAgICAgIGludCBzdGFydFk7CisgICAgICAgICAgICBpbnQgZW5kWTsKKyAgICAgICAgICAgIFBh
aW50aW5nRGF0YSogcGFpbnRpbmdEYXRhOworICAgICAgICB9OworCisgICAgICAgIHN0YXRpYyBp
bmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5V29ya2VyKFBsYXRmb3JtQXBwbHlQYXJhbWV0ZXJzKik7
CisgICAgI2VuZGlmCisKKyAgICAgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseShQYWludGlu
Z0RhdGEqLCBjb25zdCBpbnQgcmFkaXVzWCwgY29uc3QgaW50IHJhZGl1c1kpOworICAgICAgICBp
bmxpbmUgdm9pZCBwbGF0Zm9ybUFwcGx5R2VuZXJpYyhQYWludGluZ0RhdGEqLCBjb25zdCBpbnQg
eVN0YXJ0LCBjb25zdCBpbnQgeUVuZCk7CiBwcml2YXRlOgogICAgIEZFTW9ycGhvbG9neShGaWx0
ZXIqLCBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlLCBmbG9hdCByYWRpdXNYLCBmbG9hdCByYWRpdXNZ
KTsKICAgICAKLS0gCjEuNy4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98477</attachid>
            <date>2011-06-24 03:48:25 -0700</date>
            <delta_ts>2011-06-29 00:32:08 -0700</delta_ts>
            <desc>Apply the ParallelJobs support to FEMorphology</desc>
            <filename>0001-Apply-the-ParallelJobs-support-to-FEMorphology.patch</filename>
            <type>text/plain</type>
            <size>11100</size>
            <attacher name="Andras Piroska">pandras</attacher>
            
              <data encoding="base64">RnJvbSBjYzNlMmM2YTlmMjY2ZDJkNTg1ZWE0YTUzNGNkYjg2MjAwMjE2ZDczIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UGlyb3NrYT0yMEFuZHI9QzM9QTFzPz0gPFBp
cm9za2EuQW5kcmFzQHN0dWQudS1zemVnZWQuaHU+CkRhdGU6IEZyaSwgMjQgSnVuIDIwMTEgMTI6
NDE6MjEgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBcHBseS10aGUtUGFyYWxsZWxKb2JzLXN1cHBv
cnQtdG8tRkVNb3JwaG9sb2d5CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxOSArKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5jcHAgICAgIHwgIDE0NiArKysrKysrKysrKysrKy0tLS0tLQogLi4u
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggICAgICAgfCAgIDIyICsr
KwogMyBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGQ0NGVkZDEuLjRiOGNmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxMS0wNi0xNSAgUGlyb3NrYSBBbmRyw6FzICA8UGlyb3NrYS5BbmRyYXNAc3R1ZC51LXN6
ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBcHBseSB0aGUgUGFyYWxsZWxKb2JzIHN1cHBvcnQgdG8gRkVNb3JwaG9sb2d5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA2NAorCisgICAgICAg
IFRoZSBGRU1vcnBob2xvZ3kgZmlsdGVyIG9mIFNWRyBjYW4gY29uc3VtZSBsb3RzIG9mIHJlc291
cmNlcyBpZiBpdCBpcworICAgICAgICBhcHBsaWVkIHRvIGEgbGFyZ2UgYXJlYS4gVGhlIGNvbXB1
dGF0aW9uIGNhbiBiZSBkaXN0cmlidXRlZCB0byBtdWx0aXBsZQorICAgICAgICBjb3JlcyBpZiB0
aGUgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzLgorICAgICAgICBUaGUgYXZlcmFnZSBwZXJmb3JtYW5j
ZSBwcm9ncmVzc2lvbiBpcyAyMC0yNSUgb24gZHVhbC1jb3JlIG1hY2hpbmVzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVNb3JwaG9sb2d5OjpwbGF0Zm9ybUFwcGx5R2VuZXJpYyk6CisgICAgICAgIChX
ZWJDb3JlOjpGRU1vcnBob2xvZ3k6OnBsYXRmb3JtQXBwbHlXb3JrZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6RkVNb3JwaG9sb2d5OjpwbGF0Zm9ybUFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZF
TW9ycGhvbG9neTo6YXBwbHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVNb3JwaG9sb2d5Lmg6CisKIDIwMTEtMDYtMDkgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xv
Z3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBo
b2xvZ3kuY3BwCmluZGV4IGFhMDE1NzAuLjM0MmRlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJUZXh0U3RyZWFtLmgiCiAKICNpbmNsdWRlIDx3dGYv
Qnl0ZUFycmF5Lmg+CisjaW5jbHVkZSA8d3RmL1BhcmFsbGVsSm9icy5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogdXNpbmcgc3RkOjptaW47CkBAIC0xMDAsNiArMTAxLDEwMCBAQCBib29s
IEZFTW9ycGhvbG9neTo6c2V0UmFkaXVzWShmbG9hdCByYWRpdXNZKQogICAgIHJldHVybiB0cnVl
OwogfQogCit2b2lkIEZFTW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseUdlbmVyaWMoUGFpbnRpbmdE
YXRhKiBwYWludGluZ0RhdGEsIGludCB5U3RhcnQsIGludCB5RW5kKQoreworICAgIEJ5dGVBcnJh
eSogc3JjUGl4ZWxBcnJheSA9IHBhaW50aW5nRGF0YS0+c3JjUGl4ZWxBcnJheTsKKyAgICBCeXRl
QXJyYXkqIGRzdFBpeGVsQXJyYXkgPSBwYWludGluZ0RhdGEtPmRzdFBpeGVsQXJyYXk7CisgICAg
Y29uc3QgaW50IHdpZHRoID0gcGFpbnRpbmdEYXRhLT53aWR0aDsKKyAgICBjb25zdCBpbnQgaGVp
Z2h0ID0gcGFpbnRpbmdEYXRhLT5oZWlnaHQ7CisgICAgY29uc3QgaW50IGVmZmVjdFdpZHRoICA9
IHdpZHRoICogNDsKKworICAgIGludCByYWRpdXNYID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcmYo
ZmlsdGVyKCktPmFwcGx5SG9yaXpvbnRhbFNjYWxlKG1fcmFkaXVzWCkpKTsKKyAgICBpbnQgcmFk
aXVzWSA9IHN0YXRpY19jYXN0PGludD4oZmxvb3JmKGZpbHRlcigpLT5hcHBseVZlcnRpY2FsU2Nh
bGUobV9yYWRpdXNZKSkpOworCisgICAgVmVjdG9yPHVuc2lnbmVkIGNoYXI+IGV4dHJlbWE7Cisg
ICAgZm9yIChpbnQgeSA9IHlTdGFydDsgeSA8IHlFbmQ7ICsreSkgeworICAgICAgICBpbnQgZXh0
cmVtYVN0YXJ0WSA9IG1heCgwLCB5IC0gcmFkaXVzWSk7CisgICAgICAgIGludCBleHRyZW1hRW5k
WSA9IG1pbihoZWlnaHQgLSAxLCB5ICsgcmFkaXVzWSk7CisgICAgICAgIGZvciAodW5zaWduZWQg
aW50IGNsckNoYW5uZWwgPSAwOyBjbHJDaGFubmVsIDwgNDsgKytjbHJDaGFubmVsKSB7CisgICAg
ICAgICAgICBleHRyZW1hLmNsZWFyKCk7CisgICAgICAgICAgICAvLyBDb21wdXRlIGV4dHJlbWFz
IGZvciBlYWNoIGNvbHVtbnMKKyAgICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDw9IHJhZGl1
c1g7ICsreCkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29sdW1uRXh0cmVtYSA9
IHNyY1BpeGVsQXJyYXktPmdldCh5U3RhcnQgKiBlZmZlY3RXaWR0aCAgKyA0ICogeCArIGNsckNo
YW5uZWwpOworICAgICAgICAgICAgICAgIGZvciAoaW50IGVZID0gZXh0cmVtYVN0YXJ0WSArIDE7
IGVZIDwgZXh0cmVtYUVuZFk7ICsrZVkpIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
Y2hhciBwaXhlbCA9IHNyY1BpeGVsQXJyYXktPmdldChlWSAqIGVmZmVjdFdpZHRoICArIDQgKiB4
ICsgY2xyQ2hhbm5lbCk7CisgICAgICAgICAgICAgICAgICAgIGlmICgobV90eXBlID09IEZFTU9S
UEhPTE9HWV9PUEVSQVRPUl9FUk9ERSAmJiBwaXhlbCA8PSBjb2x1bW5FeHRyZW1hKQorICAgICAg
ICAgICAgICAgICAgICAgICAgfHwgKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRElM
QVRFICYmIHBpeGVsID49IGNvbHVtbkV4dHJlbWEpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBjb2x1bW5FeHRyZW1hID0gcGl4ZWw7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBleHRyZW1hLmFwcGVuZChjb2x1bW5FeHRyZW1h
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gS2VybmVsIGlzIGZpbGxlZCwgZ2V0
IGV4dHJlbWEgb2YgbmV4dCBjb2x1bW4KKyAgICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwg
d2lkdGg7ICsreCkgeworICAgICAgICAgICAgICAgIGNvbnN0IGludCBlbmRYID0gbWluKHggKyBy
YWRpdXNYLCB3aWR0aCAtIDEpOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29sdW1u
RXh0cmVtYSA9IHNyY1BpeGVsQXJyYXktPmdldChleHRyZW1hU3RhcnRZICogZWZmZWN0V2lkdGgg
ICsgZW5kWCAqIDQgKyBjbHJDaGFubmVsKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBpID0g
ZXh0cmVtYVN0YXJ0WSArIDE7IGkgPD0gZXh0cmVtYUVuZFk7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjaGFyIHBpeGVsID0gc3JjUGl4ZWxBcnJheS0+Z2V0KGkgKiBlZmZl
Y3RXaWR0aCAgKyBlbmRYICogNCArIGNsckNoYW5uZWwpOworICAgICAgICAgICAgICAgICAgICBp
ZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJPREUgJiYgcGl4ZWwgPD0gY29s
dW1uRXh0cmVtYSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3R5cGUgPT0gRkVNT1JQ
SE9MT0dZX09QRVJBVE9SX0RJTEFURSAmJiBwaXhlbCA+PSBjb2x1bW5FeHRyZW1hKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbHVtbkV4dHJlbWEgPSBwaXhlbDsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBpZiAoeCAtIHJhZGl1c1ggPj0gMCkKKyAgICAgICAgICAg
ICAgICAgICAgZXh0cmVtYS5yZW1vdmUoMCk7CisgICAgICAgICAgICAgICAgaWYgKHggKyByYWRp
dXNYIDw9IHdpZHRoKQorICAgICAgICAgICAgICAgICAgICBleHRyZW1hLmFwcGVuZChjb2x1bW5F
eHRyZW1hKTsKKworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgZW50aXJlRXh0cmVtYSA9
IGV4dHJlbWFbMF07CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrZXJuZWxJbmRleCA9
IDE7IGtlcm5lbEluZGV4IDwgZXh0cmVtYS5zaXplKCk7ICsra2VybmVsSW5kZXgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0VST0RF
ICYmIGV4dHJlbWFba2VybmVsSW5kZXhdIDw9IGVudGlyZUV4dHJlbWEpCisgICAgICAgICAgICAg
ICAgICAgICAgICB8fCAobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxBVEUgJiYg
ZXh0cmVtYVtrZXJuZWxJbmRleF0gPj0gZW50aXJlRXh0cmVtYSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICBlbnRpcmVFeHRyZW1hID0gZXh0cmVtYVtrZXJuZWxJbmRleF07CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGRzdFBpeGVsQXJyYXktPnNldCh5ICogZWZmZWN0V2lk
dGggKyA0ICogeCArIGNsckNoYW5uZWwsIGVudGlyZUV4dHJlbWEpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgfQorfQorCisjaWYgRU5BQkxFKFBBUkFMTEVMX0pPQlMpCit2b2lkIEZF
TW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseVdvcmtlcihQbGF0Zm9ybUFwcGx5UGFyYW1ldGVycyog
cGFyYW0pCit7CisgICAgcGFyYW0tPmZpbHRlci0+cGxhdGZvcm1BcHBseUdlbmVyaWMocGFyYW0t
PnBhaW50aW5nRGF0YSwgcGFyYW0tPnN0YXJ0WSwgcGFyYW0tPmVuZFkpOworfQorI2VuZGlmCisK
K3ZvaWQgRkVNb3JwaG9sb2d5OjpwbGF0Zm9ybUFwcGx5KFBhaW50aW5nRGF0YSogcGFpbnRpbmdE
YXRhLCBjb25zdCBpbnQgcmFkaXVzWCwgY29uc3QgaW50IHJhZGl1c1kpCit7CisjaWYgRU5BQkxF
KFBBUkFMTEVMX0pPQlMpCisgICAgaW50IG9wdGltYWxUaHJlYWROdW1iZXIgPSAocGFpbnRpbmdE
YXRhLT53aWR0aCAqIHBhaW50aW5nRGF0YS0+aGVpZ2h0KSAvIHNfbWluaW1hbEFyZWE7CisgICAg
aWYgKG9wdGltYWxUaHJlYWROdW1iZXIgPiAxKSB7CisgICAgICAgIFBhcmFsbGVsSm9iczxQbGF0
Zm9ybUFwcGx5UGFyYW1ldGVycz4gcGFyYWxsZWxKb2JzKCZXZWJDb3JlOjpGRU1vcnBob2xvZ3k6
OnBsYXRmb3JtQXBwbHlXb3JrZXIsIG9wdGltYWxUaHJlYWROdW1iZXIpOworICAgICAgICBpbnQg
bnVtT2ZUaHJlYWRzID0gcGFyYWxsZWxKb2JzLm51bWJlck9mSm9icygpOworICAgICAgICBpZiAo
bnVtT2ZUaHJlYWRzID4gMSkgeworICAgICAgICAgICAgY29uc3QgaW50IGRlbHRhWSA9IDEgKyBw
YWludGluZ0RhdGEtPmhlaWdodCAvIG51bU9mVGhyZWFkczsKKyAgICAgICAgICAgIGludCBjdXJy
ZW50WSA9IDA7CisgICAgICAgICAgICBmb3IgKGludCBqb2IgPSBudW1PZlRocmVhZHMgLSAxOyBq
b2IgPj0gMDsgLS1qb2IpIHsKKyAgICAgICAgICAgICAgICBQbGF0Zm9ybUFwcGx5UGFyYW1ldGVy
cyYgcGFyYW0gPSBwYXJhbGxlbEpvYnMucGFyYW1ldGVyKGpvYik7CisgICAgICAgICAgICAgICAg
cGFyYW0uZmlsdGVyID0gdGhpczsKKyAgICAgICAgICAgICAgICBwYXJhbS5zdGFydFkgPSBjdXJy
ZW50WTsKKyAgICAgICAgICAgICAgICBjdXJyZW50WSArPSBkZWx0YVk7CisgICAgICAgICAgICAg
ICAgcGFyYW0uZW5kWSA9IChqb2IpID8gKGN1cnJlbnRZKSA6IChwYWludGluZ0RhdGEtPmhlaWdo
dCk7CisgICAgICAgICAgICAgICAgcGFyYW0ucGFpbnRpbmdEYXRhID0gcGFpbnRpbmdEYXRhOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFyYWxsZWxKb2JzLmV4ZWN1dGUoKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvLyBGYWxsYmFjayB0byBzaW5nbGUg
dGhyZWFkIG1vZGVsCisgICAgfQorI2VuZGlmCisgICAgcGxhdGZvcm1BcHBseUdlbmVyaWMocGFp
bnRpbmdEYXRhLCAwLCBwYWludGluZ0RhdGEtPmhlaWdodCk7Cit9CisKKwogdm9pZCBGRU1vcnBo
b2xvZ3k6OmFwcGx5KCkKIHsKICAgICBpZiAoaGFzUmVzdWx0KCkpCkBAIC0xMjMsNTUgKzIxOCwx
OCBAQCB2b2lkIEZFTW9ycGhvbG9neTo6YXBwbHkoKQogCiAgICAgSW50UmVjdCBlZmZlY3REcmF3
aW5nUmVjdCA9IHJlcXVlc3RlZFJlZ2lvbk9mSW5wdXRJbWFnZURhdGEoaW4tPmFic29sdXRlUGFp
bnRSZWN0KCkpOwogICAgIFJlZlB0cjxCeXRlQXJyYXk+IHNyY1BpeGVsQXJyYXkgPSBpbi0+YXNQ
cmVtdWx0aXBsaWVkSW1hZ2UoZWZmZWN0RHJhd2luZ1JlY3QpOwotCi0gICAgaW50IGVmZmVjdFdp
ZHRoID0gZWZmZWN0RHJhd2luZ1JlY3Qud2lkdGgoKSAqIDQ7CiAgICAgCiAgICAgLy8gTGltaXQg
dGhlIHJhZGl1cyBzaXplIHRvIGVmZmVjdCBkaW1lbnNpb25zCiAgICAgcmFkaXVzWCA9IG1pbihl
ZmZlY3REcmF3aW5nUmVjdC53aWR0aCgpIC0gMSwgcmFkaXVzWCk7CiAgICAgcmFkaXVzWSA9IG1p
bihlZmZlY3REcmF3aW5nUmVjdC5oZWlnaHQoKSAtIDEsIHJhZGl1c1kpOwogICAgIAotICAgIFZl
Y3Rvcjx1bnNpZ25lZCBjaGFyPiBleHRyZW1hOwotICAgIGZvciAoaW50IHkgPSAwOyB5IDwgZWZm
ZWN0RHJhd2luZ1JlY3QuaGVpZ2h0KCk7ICsreSkgewotICAgICAgICBpbnQgc3RhcnRZID0gbWF4
KDAsIHkgLSByYWRpdXNZKTsKLSAgICAgICAgaW50IGVuZFkgPSBtaW4oZWZmZWN0RHJhd2luZ1Jl
Y3QuaGVpZ2h0KCkgLSAxLCB5ICsgcmFkaXVzWSk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgY2hh
bm5lbCA9IDA7IGNoYW5uZWwgPCA0OyArK2NoYW5uZWwpIHsKLSAgICAgICAgICAgIC8vIEZpbGwg
dGhlIGtlcm5lbAotICAgICAgICAgICAgZXh0cmVtYS5jbGVhcigpOwotICAgICAgICAgICAgZm9y
IChpbnQgaiA9IDA7IGogPD0gcmFkaXVzWDsgKytqKSB7Ci0gICAgICAgICAgICAgICAgdW5zaWdu
ZWQgY2hhciBjb2x1bW5FeHRyZW1hID0gc3JjUGl4ZWxBcnJheS0+Z2V0KHN0YXJ0WSAqIGVmZmVj
dFdpZHRoICsgNCAqIGogKyBjaGFubmVsKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpID0g
c3RhcnRZOyBpIDw9IGVuZFk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBj
aGFyIHBpeGVsID0gc3JjUGl4ZWxBcnJheS0+Z2V0KGkgKiBlZmZlY3RXaWR0aCArIDQgKiBqICsg
Y2hhbm5lbCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgobV90eXBlID09IEZFTU9SUEhPTE9H
WV9PUEVSQVRPUl9FUk9ERSAmJiBwaXhlbCA8PSBjb2x1bW5FeHRyZW1hKSB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRElMQVRFICYm
IHBpeGVsID49IGNvbHVtbkV4dHJlbWEpKQotICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1u
RXh0cmVtYSA9IHBpeGVsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBleHRy
ZW1hLmFwcGVuZChjb2x1bW5FeHRyZW1hKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgLy8gS2VybmVsIGlzIGZpbGxlZCwgZ2V0IGV4dHJlbWEgb2YgbmV4dCBjb2x1
bW4gCi0gICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IGVmZmVjdERyYXdpbmdSZWN0Lndp
ZHRoKCk7ICsreCkgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGVuZFggPSBtaW4oeCArIHJh
ZGl1c1gsIGVmZmVjdERyYXdpbmdSZWN0LndpZHRoKCkgLSAxKTsKLSAgICAgICAgICAgICAgICB1
bnNpZ25lZCBjaGFyIGNvbHVtbkV4dHJlbWEgPSBzcmNQaXhlbEFycmF5LT5nZXQoc3RhcnRZICog
ZWZmZWN0V2lkdGggKyBlbmRYICogNCArIGNoYW5uZWwpOwotICAgICAgICAgICAgICAgIGZvciAo
aW50IGkgPSBzdGFydFk7IGkgPD0gZW5kWTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGNoYXIgcGl4ZWwgPSBzcmNQaXhlbEFycmF5LT5nZXQoaSAqIGVmZmVjdFdpZHRoICsg
ZW5kWCAqIDQgKyBjaGFubmVsKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKChtX3R5cGUgPT0g
RkVNT1JQSE9MT0dZX09QRVJBVE9SX0VST0RFICYmIHBpeGVsIDw9IGNvbHVtbkV4dHJlbWEpIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRP
Ul9ESUxBVEUgJiYgcGl4ZWwgPj0gY29sdW1uRXh0cmVtYSkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjb2x1bW5FeHRyZW1hID0gcGl4ZWw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGlmICh4IC0gcmFkaXVzWCA+PSAwKQotICAgICAgICAgICAgICAgICAgICBleHRyZW1h
LnJlbW92ZSgwKTsKLSAgICAgICAgICAgICAgICBpZiAoeCArIHJhZGl1c1ggPD0gZWZmZWN0RHJh
d2luZ1JlY3Qud2lkdGgoKSkKLSAgICAgICAgICAgICAgICAgICAgZXh0cmVtYS5hcHBlbmQoY29s
dW1uRXh0cmVtYSk7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBlbnRpcmVFeHRyZW1h
ID0gZXh0cmVtYVswXTsKLSAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGtlcm5lbEluZGV4
ID0gMDsga2VybmVsSW5kZXggPCBleHRyZW1hLnNpemUoKTsgKytrZXJuZWxJbmRleCkgewotICAg
ICAgICAgICAgICAgICAgICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJP
REUgJiYgZXh0cmVtYVtrZXJuZWxJbmRleF0gPD0gZW50aXJlRXh0cmVtYSkgfHwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0RJTEFURSAm
JiBleHRyZW1hW2tlcm5lbEluZGV4XSA+PSBlbnRpcmVFeHRyZW1hKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGVudGlyZUV4dHJlbWEgPSBleHRyZW1hW2tlcm5lbEluZGV4XTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZHN0UGl4ZWxBcnJheS0+c2V0KHkgKiBlZmZlY3RX
aWR0aCArIDQgKiB4ICsgY2hhbm5lbCwgZW50aXJlRXh0cmVtYSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICB9CisgICAgUGFpbnRpbmdEYXRhIHBhaW50aW5nRGF0YTsKKyAgICBwYWlu
dGluZ0RhdGEuc3JjUGl4ZWxBcnJheSA9IHNyY1BpeGVsQXJyYXkuZ2V0KCk7CisgICAgcGFpbnRp
bmdEYXRhLmRzdFBpeGVsQXJyYXkgPSBkc3RQaXhlbEFycmF5OworICAgIHBhaW50aW5nRGF0YS53
aWR0aCA9IGVmZmVjdERyYXdpbmdSZWN0LndpZHRoKCk7CisgICAgcGFpbnRpbmdEYXRhLmhlaWdo
dCA9IGVmZmVjdERyYXdpbmdSZWN0LmhlaWdodCgpOworCisgICAgcGxhdGZvcm1BcHBseSgmcGFp
bnRpbmdEYXRhLCByYWRpdXNYLCByYWRpdXNZKTsKIH0KIAogdm9pZCBGRU1vcnBob2xvZ3k6OmR1
bXAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1vcnBob2xvZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVNb3JwaG9sb2d5LmgKaW5kZXggNzRjM2I1YS4uOTI2Nzk0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5o
CkBAIC01Myw2ICs1MywyOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4
dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0Owog
CisgICAgc3RydWN0IFBhaW50aW5nRGF0YSB7CisgICAgICAgIEJ5dGVBcnJheSogc3JjUGl4ZWxB
cnJheTsKKyAgICAgICAgQnl0ZUFycmF5KiBkc3RQaXhlbEFycmF5OworICAgICAgICBpbnQgd2lk
dGg7CisgICAgICAgIGludCBoZWlnaHQ7CisgICAgfTsKKworICAgICNpZiBFTkFCTEUoUEFSQUxM
RUxfSk9CUykKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBzX21pbmltYWxBcmVhID0gKDMwMCAq
IDMwMCk7IC8vIEVtcGlyaWNhbCBkYXRhIGxpbWl0IGZvciBwYXJhbGxlbCBqb2JzCisKKyAgICAg
ICAgc3RydWN0IFBsYXRmb3JtQXBwbHlQYXJhbWV0ZXJzIHsKKyAgICAgICAgICAgIEZFTW9ycGhv
bG9neSogZmlsdGVyOworICAgICAgICAgICAgaW50IHN0YXJ0WTsKKyAgICAgICAgICAgIGludCBl
bmRZOworICAgICAgICAgICAgUGFpbnRpbmdEYXRhKiBwYWludGluZ0RhdGE7CisgICAgICAgIH07
CisKKyAgICAgICAgc3RhdGljIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlXb3JrZXIoUGxhdGZv
cm1BcHBseVBhcmFtZXRlcnMqKTsKKyAgICAjZW5kaWYKKworICAgICAgICBpbmxpbmUgdm9pZCBw
bGF0Zm9ybUFwcGx5KFBhaW50aW5nRGF0YSosIGNvbnN0IGludCByYWRpdXNYLCBjb25zdCBpbnQg
cmFkaXVzWSk7CisgICAgICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlHZW5lcmljKFBhaW50
aW5nRGF0YSosIGNvbnN0IGludCB5U3RhcnQsIGNvbnN0IGludCB5RW5kKTsKIHByaXZhdGU6CiAg
ICAgRkVNb3JwaG9sb2d5KEZpbHRlciosIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJh
ZGl1c1gsIGZsb2F0IHJhZGl1c1kpOwogICAgIAotLSAKMS43LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99048</attachid>
            <date>2011-06-29 00:32:08 -0700</date>
            <delta_ts>2011-06-29 23:21:44 -0700</delta_ts>
            <desc>Apply the ParallelJobs support to FEMorphology</desc>
            <filename>0001-Apply-the-ParallelJobs-support-to-FEMorphology.patch</filename>
            <type>text/plain</type>
            <size>11724</size>
            <attacher name="Andras Piroska">pandras</attacher>
            
              <data encoding="base64">RnJvbSAwMDM5NDI5YjE3ODkyZDhmMzU0MGM2NjgyN2FjZDM1NTk5YWRiMTkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UGlyb3NrYT0yMEFuZHI9QzM9QTFzPz0gPFBp
cm9za2EuQW5kcmFzQHN0dWQudS1zemVnZWQuaHU+CkRhdGU6IFdlZCwgMjkgSnVuIDIwMTEgMDk6
Mjc6MzYgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBcHBseS10aGUtUGFyYWxsZWxKb2JzLXN1cHBv
cnQtdG8tRkVNb3JwaG9sb2d5CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAyMCArKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5jcHAgICAgIHwgIDE1MiArKysrKysrKysrKysrLS0tLS0tLQogLi4u
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggICAgICAgfCAgIDI0ICsr
KwogMyBmaWxlcyBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGMwMzMxYWUuLjMyYTNlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxMS0wNi0yOCAgUGlyb3NrYSBBbmRyw6FzICA8UGlyb3NrYS5BbmRyYXNAc3R1ZC51LXN6
ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBcHBseSB0aGUgUGFyYWxsZWxKb2JzIHN1cHBvcnQgdG8gRkVNb3JwaG9sb2d5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA2NAorCisgICAgICAg
IFRoZSBGRU1vcnBob2xvZ3kgZmlsdGVyIG9mIFNWRyBjYW4gY29uc3VtZSBsb3RzIG9mIHJlc291
cmNlcyBpZiBpdCBpcworICAgICAgICBhcHBsaWVkIHRvIGEgbGFyZ2UgYXJlYS4gVGhlIGNvbXB1
dGF0aW9uIGNhbiBiZSBkaXN0cmlidXRlZCB0byBtdWx0aXBsZQorICAgICAgICBjb3JlcyBpZiB0
aGUgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzLgorICAgICAgICBUaGUgYXZlcmFnZSBwZXJmb3JtYW5j
ZSBwcm9ncmVzc2lvbiBpcyAyMC0yNSUgb24gZHVhbC1jb3JlIG1hY2hpbmVzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVNb3JwaG9sb2d5OjpwbGF0Zm9ybUFwcGx5R2VuZXJpYyk6IEFwcGx5IHRoZSBm
aWx0ZXIgYmV0d2VlbiB5U3RhcnQgYW5kIHlFbmQgaW50ZXJ2YWwKKyAgICAgICAgKFdlYkNvcmU6
OkZFTW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseVdvcmtlcik6IENhbGwgdGhlIGdlbmVyaWMgYXBw
bHkgZnJvbSBhIHBhcmFsbGVsIHdvcmtlcgorICAgICAgICAoV2ViQ29yZTo6RkVNb3JwaG9sb2d5
OjpwbGF0Zm9ybUFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6YXBwbHkp
OiBNb3ZlIHRoZSBmdW5jdGlvbmFsaXR5IGludG8gcGxhdGZvcm1BcHBseQorICAgICAgICAoV2Vi
Q29yZTo6RkVNb3JwaG9sb2d5OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKTogUmVtb3ZlIHdoaXRl
c3BhY2VzCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3ku
aDoKKwogMjAxMS0wNi0yNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcApp
bmRleCBhYTAxNTcwLi43NTMyNmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5o
PgorI2luY2x1ZGUgPHd0Zi9QYXJhbGxlbEpvYnMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIHVzaW5nIHN0ZDo6bWluOwpAQCAtMTAwLDYgKzEwMSw5OCBAQCBib29sIEZFTW9ycGhvbG9n
eTo6c2V0UmFkaXVzWShmbG9hdCByYWRpdXNZKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lk
IEZFTW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseUdlbmVyaWMoUGFpbnRpbmdEYXRhKiBwYWludGlu
Z0RhdGEsIGludCB5U3RhcnQsIGludCB5RW5kKQoreworICAgIEJ5dGVBcnJheSogc3JjUGl4ZWxB
cnJheSA9IHBhaW50aW5nRGF0YS0+c3JjUGl4ZWxBcnJheTsKKyAgICBCeXRlQXJyYXkqIGRzdFBp
eGVsQXJyYXkgPSBwYWludGluZ0RhdGEtPmRzdFBpeGVsQXJyYXk7CisgICAgY29uc3QgaW50IHdp
ZHRoID0gcGFpbnRpbmdEYXRhLT53aWR0aDsKKyAgICBjb25zdCBpbnQgaGVpZ2h0ID0gcGFpbnRp
bmdEYXRhLT5oZWlnaHQ7CisgICAgY29uc3QgaW50IGVmZmVjdFdpZHRoICA9IHdpZHRoICogNDsK
KyAgICBjb25zdCBpbnQgcmFkaXVzWCA9IHBhaW50aW5nRGF0YS0+cmFkaXVzWDsKKyAgICBjb25z
dCBpbnQgcmFkaXVzWSA9IHBhaW50aW5nRGF0YS0+cmFkaXVzWTsKKworICAgIFZlY3Rvcjx1bnNp
Z25lZCBjaGFyPiBleHRyZW1hOworICAgIGZvciAoaW50IHkgPSB5U3RhcnQ7IHkgPCB5RW5kOyAr
K3kpIHsKKyAgICAgICAgaW50IGV4dHJlbWFTdGFydFkgPSBtYXgoMCwgeSAtIHJhZGl1c1kpOwor
ICAgICAgICBpbnQgZXh0cmVtYUVuZFkgPSBtaW4oaGVpZ2h0IC0gMSwgeSArIHJhZGl1c1kpOwor
ICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBjbHJDaGFubmVsID0gMDsgY2xyQ2hhbm5lbCA8IDQ7
ICsrY2xyQ2hhbm5lbCkgeworICAgICAgICAgICAgZXh0cmVtYS5jbGVhcigpOworICAgICAgICAg
ICAgLy8gQ29tcHV0ZSBleHRyZW1hcyBmb3IgZWFjaCBjb2x1bW5zCisgICAgICAgICAgICBmb3Ig
KGludCB4ID0gMDsgeCA8PSByYWRpdXNYOyArK3gpIHsKKyAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBjaGFyIGNvbHVtbkV4dHJlbWEgPSBzcmNQaXhlbEFycmF5LT5nZXQoeVN0YXJ0ICogZWZmZWN0
V2lkdGggICsgNCAqIHggKyBjbHJDaGFubmVsKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBl
WSA9IGV4dHJlbWFTdGFydFkgKyAxOyBlWSA8IGV4dHJlbWFFbmRZOyArK2VZKSB7CisgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgcGl4ZWwgPSBzcmNQaXhlbEFycmF5LT5nZXQoZVkg
KiBlZmZlY3RXaWR0aCAgKyA0ICogeCArIGNsckNoYW5uZWwpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJPREUgJiYgcGl4ZWwgPD0g
Y29sdW1uRXh0cmVtYSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3R5cGUgPT0gRkVN
T1JQSE9MT0dZX09QRVJBVE9SX0RJTEFURSAmJiBwaXhlbCA+PSBjb2x1bW5FeHRyZW1hKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRXh0cmVtYSA9IHBpeGVsOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZXh0cmVt
YS5hcHBlbmQoY29sdW1uRXh0cmVtYSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8v
IEtlcm5lbCBpcyBmaWxsZWQsIGdldCBleHRyZW1hIG9mIG5leHQgY29sdW1uCisgICAgICAgICAg
ICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpIHsKKyAgICAgICAgICAgICAgICBjb25z
dCBpbnQgZW5kWCA9IG1pbih4ICsgcmFkaXVzWCwgd2lkdGggLSAxKTsKKyAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBjaGFyIGNvbHVtbkV4dHJlbWEgPSBzcmNQaXhlbEFycmF5LT5nZXQoZXh0cmVt
YVN0YXJ0WSAqIGVmZmVjdFdpZHRoICArIGVuZFggKiA0ICsgY2xyQ2hhbm5lbCk7CisgICAgICAg
ICAgICAgICAgZm9yIChpbnQgaSA9IGV4dHJlbWFTdGFydFkgKyAxOyBpIDw9IGV4dHJlbWFFbmRZ
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBwaXhlbCA9IHNyY1Bp
eGVsQXJyYXktPmdldChpICogZWZmZWN0V2lkdGggICsgZW5kWCAqIDQgKyBjbHJDaGFubmVsKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9S
X0VST0RFICYmIHBpeGVsIDw9IGNvbHVtbkV4dHJlbWEpCisgICAgICAgICAgICAgICAgICAgICAg
ICB8fCAobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxBVEUgJiYgcGl4ZWwgPj0g
Y29sdW1uRXh0cmVtYSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5FeHRyZW1hID0g
cGl4ZWw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh4IC0gcmFkaXVz
WCA+PSAwKQorICAgICAgICAgICAgICAgICAgICBleHRyZW1hLnJlbW92ZSgwKTsKKyAgICAgICAg
ICAgICAgICBpZiAoeCArIHJhZGl1c1ggPD0gd2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGV4
dHJlbWEuYXBwZW5kKGNvbHVtbkV4dHJlbWEpOworCisgICAgICAgICAgICAgICAgdW5zaWduZWQg
Y2hhciBlbnRpcmVFeHRyZW1hID0gZXh0cmVtYVswXTsKKyAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGtlcm5lbEluZGV4ID0gMTsga2VybmVsSW5kZXggPCBleHRyZW1hLnNpemUoKTsgKytr
ZXJuZWxJbmRleCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBI
T0xPR1lfT1BFUkFUT1JfRVJPREUgJiYgZXh0cmVtYVtrZXJuZWxJbmRleF0gPD0gZW50aXJlRXh0
cmVtYSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZ
X09QRVJBVE9SX0RJTEFURSAmJiBleHRyZW1hW2tlcm5lbEluZGV4XSA+PSBlbnRpcmVFeHRyZW1h
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudGlyZUV4dHJlbWEgPSBleHRyZW1hW2tlcm5l
bEluZGV4XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZHN0UGl4ZWxBcnJh
eS0+c2V0KHkgKiBlZmZlY3RXaWR0aCArIDQgKiB4ICsgY2xyQ2hhbm5lbCwgZW50aXJlRXh0cmVt
YSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKyNpZiBFTkFCTEUoUEFS
QUxMRUxfSk9CUykKK3ZvaWQgRkVNb3JwaG9sb2d5OjpwbGF0Zm9ybUFwcGx5V29ya2VyKFBsYXRm
b3JtQXBwbHlQYXJhbWV0ZXJzKiBwYXJhbSkKK3sKKyAgICBwYXJhbS0+ZmlsdGVyLT5wbGF0Zm9y
bUFwcGx5R2VuZXJpYyhwYXJhbS0+cGFpbnRpbmdEYXRhLCBwYXJhbS0+c3RhcnRZLCBwYXJhbS0+
ZW5kWSk7Cit9CisjZW5kaWYKKwordm9pZCBGRU1vcnBob2xvZ3k6OnBsYXRmb3JtQXBwbHkoUGFp
bnRpbmdEYXRhKiBwYWludGluZ0RhdGEpCit7CisjaWYgRU5BQkxFKFBBUkFMTEVMX0pPQlMpCisg
ICAgaW50IG9wdGltYWxUaHJlYWROdW1iZXIgPSAocGFpbnRpbmdEYXRhLT53aWR0aCAqIHBhaW50
aW5nRGF0YS0+aGVpZ2h0KSAvIHNfbWluaW1hbEFyZWE7CisgICAgaWYgKG9wdGltYWxUaHJlYWRO
dW1iZXIgPiAxKSB7CisgICAgICAgIFBhcmFsbGVsSm9iczxQbGF0Zm9ybUFwcGx5UGFyYW1ldGVy
cz4gcGFyYWxsZWxKb2JzKCZXZWJDb3JlOjpGRU1vcnBob2xvZ3k6OnBsYXRmb3JtQXBwbHlXb3Jr
ZXIsIG9wdGltYWxUaHJlYWROdW1iZXIpOworICAgICAgICBpbnQgbnVtT2ZUaHJlYWRzID0gcGFy
YWxsZWxKb2JzLm51bWJlck9mSm9icygpOworICAgICAgICBpZiAobnVtT2ZUaHJlYWRzID4gMSkg
eworICAgICAgICAgICAgY29uc3QgaW50IGRlbHRhWSA9IDEgKyBwYWludGluZ0RhdGEtPmhlaWdo
dCAvIG51bU9mVGhyZWFkczsKKyAgICAgICAgICAgIGludCBjdXJyZW50WSA9IDA7CisgICAgICAg
ICAgICBmb3IgKGludCBqb2IgPSBudW1PZlRocmVhZHMgLSAxOyBqb2IgPj0gMDsgLS1qb2IpIHsK
KyAgICAgICAgICAgICAgICBQbGF0Zm9ybUFwcGx5UGFyYW1ldGVycyYgcGFyYW0gPSBwYXJhbGxl
bEpvYnMucGFyYW1ldGVyKGpvYik7CisgICAgICAgICAgICAgICAgcGFyYW0uZmlsdGVyID0gdGhp
czsKKyAgICAgICAgICAgICAgICBwYXJhbS5zdGFydFkgPSBjdXJyZW50WTsKKyAgICAgICAgICAg
ICAgICBjdXJyZW50WSArPSBkZWx0YVk7CisgICAgICAgICAgICAgICAgcGFyYW0uZW5kWSA9IChq
b2IpID8gKGN1cnJlbnRZKSA6IChwYWludGluZ0RhdGEtPmhlaWdodCk7CisgICAgICAgICAgICAg
ICAgcGFyYW0ucGFpbnRpbmdEYXRhID0gcGFpbnRpbmdEYXRhOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgcGFyYWxsZWxKb2JzLmV4ZWN1dGUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorICAgICAgICAvLyBGYWxsYmFjayB0byBzaW5nbGUgdGhyZWFkIG1vZGVsCisgICAg
fQorI2VuZGlmCisgICAgcGxhdGZvcm1BcHBseUdlbmVyaWMocGFpbnRpbmdEYXRhLCAwLCBwYWlu
dGluZ0RhdGEtPmhlaWdodCk7Cit9CisKKwogdm9pZCBGRU1vcnBob2xvZ3k6OmFwcGx5KCkKIHsK
ICAgICBpZiAoaGFzUmVzdWx0KCkpCkBAIC0xMjQsNTQgKzIxNywxNSBAQCB2b2lkIEZFTW9ycGhv
bG9neTo6YXBwbHkoKQogICAgIEludFJlY3QgZWZmZWN0RHJhd2luZ1JlY3QgPSByZXF1ZXN0ZWRS
ZWdpb25PZklucHV0SW1hZ2VEYXRhKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKTsKICAgICBSZWZQ
dHI8Qnl0ZUFycmF5PiBzcmNQaXhlbEFycmF5ID0gaW4tPmFzUHJlbXVsdGlwbGllZEltYWdlKGVm
ZmVjdERyYXdpbmdSZWN0KTsKIAotICAgIGludCBlZmZlY3RXaWR0aCA9IGVmZmVjdERyYXdpbmdS
ZWN0LndpZHRoKCkgKiA0OwotICAgIAotICAgIC8vIExpbWl0IHRoZSByYWRpdXMgc2l6ZSB0byBl
ZmZlY3QgZGltZW5zaW9ucwotICAgIHJhZGl1c1ggPSBtaW4oZWZmZWN0RHJhd2luZ1JlY3Qud2lk
dGgoKSAtIDEsIHJhZGl1c1gpOwotICAgIHJhZGl1c1kgPSBtaW4oZWZmZWN0RHJhd2luZ1JlY3Qu
aGVpZ2h0KCkgLSAxLCByYWRpdXNZKTsKLSAgICAKLSAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4g
ZXh0cmVtYTsKLSAgICBmb3IgKGludCB5ID0gMDsgeSA8IGVmZmVjdERyYXdpbmdSZWN0LmhlaWdo
dCgpOyArK3kpIHsKLSAgICAgICAgaW50IHN0YXJ0WSA9IG1heCgwLCB5IC0gcmFkaXVzWSk7Ci0g
ICAgICAgIGludCBlbmRZID0gbWluKGVmZmVjdERyYXdpbmdSZWN0LmhlaWdodCgpIC0gMSwgeSAr
IHJhZGl1c1kpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGNoYW5uZWwgPSAwOyBjaGFubmVsIDwg
NDsgKytjaGFubmVsKSB7Ci0gICAgICAgICAgICAvLyBGaWxsIHRoZSBrZXJuZWwKLSAgICAgICAg
ICAgIGV4dHJlbWEuY2xlYXIoKTsKLSAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IHJh
ZGl1c1g7ICsraikgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29sdW1uRXh0cmVt
YSA9IHNyY1BpeGVsQXJyYXktPmdldChzdGFydFkgKiBlZmZlY3RXaWR0aCArIDQgKiBqICsgY2hh
bm5lbCk7Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0WTsgaSA8PSBlbmRZOyAr
K2kpIHsKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBwaXhlbCA9IHNyY1BpeGVs
QXJyYXktPmdldChpICogZWZmZWN0V2lkdGggKyA0ICogaiArIGNoYW5uZWwpOwotICAgICAgICAg
ICAgICAgICAgICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJPREUgJiYg
cGl4ZWwgPD0gY29sdW1uRXh0cmVtYSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgIChtX3R5
cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0RJTEFURSAmJiBwaXhlbCA+PSBjb2x1bW5FeHRy
ZW1hKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkV4dHJlbWEgPSBwaXhlbDsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZXh0cmVtYS5hcHBlbmQoY29sdW1uRXh0
cmVtYSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEtlcm5l
bCBpcyBmaWxsZWQsIGdldCBleHRyZW1hIG9mIG5leHQgY29sdW1uIAotICAgICAgICAgICAgZm9y
IChpbnQgeCA9IDA7IHggPCBlZmZlY3REcmF3aW5nUmVjdC53aWR0aCgpOyArK3gpIHsKLSAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBlbmRYID0gbWluKHggKyByYWRpdXNYLCBlZmZlY3REcmF3aW5n
UmVjdC53aWR0aCgpIC0gMSk7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb2x1bW5F
eHRyZW1hID0gc3JjUGl4ZWxBcnJheS0+Z2V0KHN0YXJ0WSAqIGVmZmVjdFdpZHRoICsgZW5kWCAq
IDQgKyBjaGFubmVsKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnRZOyBpIDw9
IGVuZFk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHBpeGVsID0g
c3JjUGl4ZWxBcnJheS0+Z2V0KGkgKiBlZmZlY3RXaWR0aCArIGVuZFggKiA0ICsgY2hhbm5lbCk7
Ci0gICAgICAgICAgICAgICAgICAgIGlmICgobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRP
Ul9FUk9ERSAmJiBwaXhlbCA8PSBjb2x1bW5FeHRyZW1hKSB8fAotICAgICAgICAgICAgICAgICAg
ICAgICAgKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRElMQVRFICYmIHBpeGVsID49
IGNvbHVtbkV4dHJlbWEpKQotICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRXh0cmVtYSA9
IHBpeGVsOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoeCAtIHJhZGl1
c1ggPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgZXh0cmVtYS5yZW1vdmUoMCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHggKyByYWRpdXNYIDw9IGVmZmVjdERyYXdpbmdSZWN0LndpZHRoKCkpCi0g
ICAgICAgICAgICAgICAgICAgIGV4dHJlbWEuYXBwZW5kKGNvbHVtbkV4dHJlbWEpOwotICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNoYXIgZW50aXJlRXh0cmVtYSA9IGV4dHJlbWFbMF07Ci0gICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBrZXJuZWxJbmRleCA9IDA7IGtlcm5lbEluZGV4IDwg
ZXh0cmVtYS5zaXplKCk7ICsra2VybmVsSW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0VST0RFICYmIGV4dHJlbWFba2VybmVs
SW5kZXhdIDw9IGVudGlyZUV4dHJlbWEpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAobV90
eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxBVEUgJiYgZXh0cmVtYVtrZXJuZWxJbmRl
eF0gPj0gZW50aXJlRXh0cmVtYSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBlbnRpcmVFeHRy
ZW1hID0gZXh0cmVtYVtrZXJuZWxJbmRleF07Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIGRzdFBpeGVsQXJyYXktPnNldCh5ICogZWZmZWN0V2lkdGggKyA0ICogeCArIGNoYW5u
ZWwsIGVudGlyZUV4dHJlbWEpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAg
IFBhaW50aW5nRGF0YSBwYWludGluZ0RhdGE7CisgICAgcGFpbnRpbmdEYXRhLnNyY1BpeGVsQXJy
YXkgPSBzcmNQaXhlbEFycmF5LmdldCgpOworICAgIHBhaW50aW5nRGF0YS5kc3RQaXhlbEFycmF5
ID0gZHN0UGl4ZWxBcnJheTsKKyAgICBwYWludGluZ0RhdGEud2lkdGggPSBlZmZlY3REcmF3aW5n
UmVjdC53aWR0aCgpOworICAgIHBhaW50aW5nRGF0YS5oZWlnaHQgPSBlZmZlY3REcmF3aW5nUmVj
dC5oZWlnaHQoKTsKKyAgICBwYWludGluZ0RhdGEucmFkaXVzWCA9IG1pbihlZmZlY3REcmF3aW5n
UmVjdC53aWR0aCgpIC0gMSwgcmFkaXVzWCk7CisgICAgcGFpbnRpbmdEYXRhLnJhZGl1c1kgPSBt
aW4oZWZmZWN0RHJhd2luZ1JlY3QuaGVpZ2h0KCkgLSAxLCByYWRpdXNZKTsKKworICAgIHBsYXRm
b3JtQXBwbHkoJnBhaW50aW5nRGF0YSk7CiB9CiAKIHZvaWQgRkVNb3JwaG9sb2d5OjpkdW1wKCkK
QEAgLTIwMCw3ICsyNTQsNyBAQCBUZXh0U3RyZWFtJiBGRU1vcnBob2xvZ3k6OmV4dGVybmFsUmVw
cmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpIGNvbgogICAgIHRzIDw8ICJb
ZmVNb3JwaG9sb2d5IjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24o
dHMpOwogICAgIHRzIDw8ICIgb3BlcmF0b3I9XCIiIDw8IG1vcnBob2xvZ3lPcGVyYXRvcigpIDw8
ICJcIiAiCi0gICAgICAgPDwgInJhZGl1cz1cIiIgPDwgcmFkaXVzWCgpIDw8ICIsICIgPDwgcmFk
aXVzWSgpIDw8ICJcIl1cbiI7ICAgIAorICAgICAgIDw8ICJyYWRpdXM9XCIiIDw8IHJhZGl1c1go
KSA8PCAiLCAiIDw8IHJhZGl1c1koKSA8PCAiXCJdXG4iOwogICAgIGlucHV0RWZmZWN0KDApLT5l
eHRlcm5hbFJlcHJlc2VudGF0aW9uKHRzLCBpbmRlbnQgKyAxKTsKICAgICByZXR1cm4gdHM7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TW9ycGhvbG9neS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RU1vcnBob2xvZ3kuaAppbmRleCA3NGMzYjVhLi44Yjg0NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAg
LTUzLDYgKzUzLDMwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJu
YWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKKyAg
ICBzdHJ1Y3QgUGFpbnRpbmdEYXRhIHsKKyAgICAgICAgQnl0ZUFycmF5KiBzcmNQaXhlbEFycmF5
OworICAgICAgICBCeXRlQXJyYXkqIGRzdFBpeGVsQXJyYXk7CisgICAgICAgIGludCB3aWR0aDsK
KyAgICAgICAgaW50IGhlaWdodDsKKyAgICAgICAgaW50IHJhZGl1c1g7CisgICAgICAgIGludCBy
YWRpdXNZOworICAgIH07CisKKyNpZiBFTkFCTEUoUEFSQUxMRUxfSk9CUykKKyAgICBzdGF0aWMg
Y29uc3QgaW50IHNfbWluaW1hbEFyZWEgPSAoMzAwICogMzAwKTsgLy8gRW1waXJpY2FsIGRhdGEg
bGltaXQgZm9yIHBhcmFsbGVsIGpvYnMKKworICAgIHN0cnVjdCBQbGF0Zm9ybUFwcGx5UGFyYW1l
dGVycyB7CisgICAgICAgIEZFTW9ycGhvbG9neSogZmlsdGVyOworICAgICAgICBpbnQgc3RhcnRZ
OworICAgICAgICBpbnQgZW5kWTsKKyAgICAgICAgUGFpbnRpbmdEYXRhKiBwYWludGluZ0RhdGE7
CisgICAgfTsKKworICAgIHN0YXRpYyB2b2lkIHBsYXRmb3JtQXBwbHlXb3JrZXIoUGxhdGZvcm1B
cHBseVBhcmFtZXRlcnMqKTsKKyNlbmRpZgorCisgICAgdm9pZCBwbGF0Zm9ybUFwcGx5KFBhaW50
aW5nRGF0YSopOworICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlHZW5lcmljKFBhaW50aW5n
RGF0YSosIGNvbnN0IGludCB5U3RhcnQsIGNvbnN0IGludCB5RW5kKTsKIHByaXZhdGU6CiAgICAg
RkVNb3JwaG9sb2d5KEZpbHRlciosIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1
c1gsIGZsb2F0IHJhZGl1c1kpOwogICAgIAotLSAKMS43LjAuNAoK
</data>
<flag name="review"
          id="93441"
          type_id="1"
          status="-"
          setter="krit"
    />
    <flag name="commit-queue"
          id="93442"
          type_id="3"
          status="-"
          setter="krit"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99242</attachid>
            <date>2011-06-29 23:21:44 -0700</date>
            <delta_ts>2011-06-30 04:54:55 -0700</delta_ts>
            <desc>Apply the ParallelJobs support to FEMorphology</desc>
            <filename>0001-Apply-the-ParallelJobs-support-to-FEMorphology.patch</filename>
            <type>text/plain</type>
            <size>11718</size>
            <attacher name="Andras Piroska">pandras</attacher>
            
              <data encoding="base64">RnJvbSA5MzdmNDg1Y2IyM2E5MjM1NTJjNzQxYTI4N2JkYjg5ZGUxYTRiYTRjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UGlyb3NrYT0yMEFuZHI9QzM9QTFzPz0gPFBp
cm9za2EuQW5kcmFzQHN0dWQudS1zemVnZWQuaHU+CkRhdGU6IFRodSwgMzAgSnVuIDIwMTEgMDg6
MDI6NTIgKzAyMDAKU3ViamVjdDogW1BBVENIXSBBcHBseS10aGUtUGFyYWxsZWxKb2JzLXN1cHBv
cnQtdG8tRkVNb3JwaG9sb2d5CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAyMCArKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTW9ycGhvbG9neS5jcHAgICAgIHwgIDE1MiArKysrKysrKysrKysrLS0tLS0tLQogLi4u
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggICAgICAgfCAgIDI0ICsr
KwogMyBmaWxlcyBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGMwMzMxYWUuLjMyYTNlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBA
QAorMjAxMS0wNi0yOCAgUGlyb3NrYSBBbmRyw6FzICA8UGlyb3NrYS5BbmRyYXNAc3R1ZC51LXN6
ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBcHBseSB0aGUgUGFyYWxsZWxKb2JzIHN1cHBvcnQgdG8gRkVNb3JwaG9sb2d5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA2NAorCisgICAgICAg
IFRoZSBGRU1vcnBob2xvZ3kgZmlsdGVyIG9mIFNWRyBjYW4gY29uc3VtZSBsb3RzIG9mIHJlc291
cmNlcyBpZiBpdCBpcworICAgICAgICBhcHBsaWVkIHRvIGEgbGFyZ2UgYXJlYS4gVGhlIGNvbXB1
dGF0aW9uIGNhbiBiZSBkaXN0cmlidXRlZCB0byBtdWx0aXBsZQorICAgICAgICBjb3JlcyBpZiB0
aGUgYXJjaGl0ZWN0dXJlIHN1cHBvcnRzLgorICAgICAgICBUaGUgYXZlcmFnZSBwZXJmb3JtYW5j
ZSBwcm9ncmVzc2lvbiBpcyAyMC0yNSUgb24gZHVhbC1jb3JlIG1hY2hpbmVzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RkVNb3JwaG9sb2d5OjpwbGF0Zm9ybUFwcGx5R2VuZXJpYyk6IEFwcGx5IHRoZSBm
aWx0ZXIgYmV0d2VlbiB5U3RhcnQgYW5kIHlFbmQgaW50ZXJ2YWwKKyAgICAgICAgKFdlYkNvcmU6
OkZFTW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseVdvcmtlcik6IENhbGwgdGhlIGdlbmVyaWMgYXBw
bHkgZnJvbSBhIHBhcmFsbGVsIHdvcmtlcgorICAgICAgICAoV2ViQ29yZTo6RkVNb3JwaG9sb2d5
OjpwbGF0Zm9ybUFwcGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZFTW9ycGhvbG9neTo6YXBwbHkp
OiBNb3ZlIHRoZSBmdW5jdGlvbmFsaXR5IGludG8gcGxhdGZvcm1BcHBseQorICAgICAgICAoV2Vi
Q29yZTo6RkVNb3JwaG9sb2d5OjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKTogUmVtb3ZlIHdoaXRl
c3BhY2VzCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3ku
aDoKKwogMjAxMS0wNi0yNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmNwcApp
bmRleCBhYTAxNTcwLi42ZjYzMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5o
PgorI2luY2x1ZGUgPHd0Zi9QYXJhbGxlbEpvYnMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIHVzaW5nIHN0ZDo6bWluOwpAQCAtMTAwLDYgKzEwMSw5OCBAQCBib29sIEZFTW9ycGhvbG9n
eTo6c2V0UmFkaXVzWShmbG9hdCByYWRpdXNZKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lk
IEZFTW9ycGhvbG9neTo6cGxhdGZvcm1BcHBseUdlbmVyaWMoUGFpbnRpbmdEYXRhKiBwYWludGlu
Z0RhdGEsIGludCB5U3RhcnQsIGludCB5RW5kKQoreworICAgIEJ5dGVBcnJheSogc3JjUGl4ZWxB
cnJheSA9IHBhaW50aW5nRGF0YS0+c3JjUGl4ZWxBcnJheTsKKyAgICBCeXRlQXJyYXkqIGRzdFBp
eGVsQXJyYXkgPSBwYWludGluZ0RhdGEtPmRzdFBpeGVsQXJyYXk7CisgICAgY29uc3QgaW50IHdp
ZHRoID0gcGFpbnRpbmdEYXRhLT53aWR0aDsKKyAgICBjb25zdCBpbnQgaGVpZ2h0ID0gcGFpbnRp
bmdEYXRhLT5oZWlnaHQ7CisgICAgY29uc3QgaW50IGVmZmVjdFdpZHRoICA9IHdpZHRoICogNDsK
KyAgICBjb25zdCBpbnQgcmFkaXVzWCA9IHBhaW50aW5nRGF0YS0+cmFkaXVzWDsKKyAgICBjb25z
dCBpbnQgcmFkaXVzWSA9IHBhaW50aW5nRGF0YS0+cmFkaXVzWTsKKworICAgIFZlY3Rvcjx1bnNp
Z25lZCBjaGFyPiBleHRyZW1hOworICAgIGZvciAoaW50IHkgPSB5U3RhcnQ7IHkgPCB5RW5kOyAr
K3kpIHsKKyAgICAgICAgaW50IGV4dHJlbWFTdGFydFkgPSBtYXgoMCwgeSAtIHJhZGl1c1kpOwor
ICAgICAgICBpbnQgZXh0cmVtYUVuZFkgPSBtaW4oaGVpZ2h0IC0gMSwgeSArIHJhZGl1c1kpOwor
ICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBjbHJDaGFubmVsID0gMDsgY2xyQ2hhbm5lbCA8IDQ7
ICsrY2xyQ2hhbm5lbCkgeworICAgICAgICAgICAgZXh0cmVtYS5jbGVhcigpOworICAgICAgICAg
ICAgLy8gQ29tcHV0ZSBleHRyZW1hcyBmb3IgZWFjaCBjb2x1bW5zCisgICAgICAgICAgICBmb3Ig
KGludCB4ID0gMDsgeCA8PSByYWRpdXNYOyArK3gpIHsKKyAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBjaGFyIGNvbHVtbkV4dHJlbWEgPSBzcmNQaXhlbEFycmF5LT5nZXQoeVN0YXJ0ICogZWZmZWN0
V2lkdGggICsgNCAqIHggKyBjbHJDaGFubmVsKTsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBl
WSA9IGV4dHJlbWFTdGFydFkgKyAxOyBlWSA8IGV4dHJlbWFFbmRZOyArK2VZKSB7CisgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgcGl4ZWwgPSBzcmNQaXhlbEFycmF5LT5nZXQoZVkg
KiBlZmZlY3RXaWR0aCAgKyA0ICogeCArIGNsckNoYW5uZWwpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJPREUgJiYgcGl4ZWwgPD0g
Y29sdW1uRXh0cmVtYSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3R5cGUgPT0gRkVN
T1JQSE9MT0dZX09QRVJBVE9SX0RJTEFURSAmJiBwaXhlbCA+PSBjb2x1bW5FeHRyZW1hKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRXh0cmVtYSA9IHBpeGVsOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZXh0cmVt
YS5hcHBlbmQoY29sdW1uRXh0cmVtYSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8v
IEtlcm5lbCBpcyBmaWxsZWQsIGdldCBleHRyZW1hIG9mIG5leHQgY29sdW1uCisgICAgICAgICAg
ICBmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyArK3gpIHsKKyAgICAgICAgICAgICAgICBjb25z
dCBpbnQgZW5kWCA9IG1pbih4ICsgcmFkaXVzWCwgd2lkdGggLSAxKTsKKyAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBjaGFyIGNvbHVtbkV4dHJlbWEgPSBzcmNQaXhlbEFycmF5LT5nZXQoZXh0cmVt
YVN0YXJ0WSAqIGVmZmVjdFdpZHRoICArIGVuZFggKiA0ICsgY2xyQ2hhbm5lbCk7CisgICAgICAg
ICAgICAgICAgZm9yIChpbnQgaSA9IGV4dHJlbWFTdGFydFkgKyAxOyBpIDw9IGV4dHJlbWFFbmRZ
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBwaXhlbCA9IHNyY1Bp
eGVsQXJyYXktPmdldChpICogZWZmZWN0V2lkdGggICsgZW5kWCAqIDQgKyBjbHJDaGFubmVsKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9S
X0VST0RFICYmIHBpeGVsIDw9IGNvbHVtbkV4dHJlbWEpCisgICAgICAgICAgICAgICAgICAgICAg
ICB8fCAobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxBVEUgJiYgcGl4ZWwgPj0g
Y29sdW1uRXh0cmVtYSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5FeHRyZW1hID0g
cGl4ZWw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh4IC0gcmFkaXVz
WCA+PSAwKQorICAgICAgICAgICAgICAgICAgICBleHRyZW1hLnJlbW92ZSgwKTsKKyAgICAgICAg
ICAgICAgICBpZiAoeCArIHJhZGl1c1ggPD0gd2lkdGgpCisgICAgICAgICAgICAgICAgICAgIGV4
dHJlbWEuYXBwZW5kKGNvbHVtbkV4dHJlbWEpOworCisgICAgICAgICAgICAgICAgdW5zaWduZWQg
Y2hhciBlbnRpcmVFeHRyZW1hID0gZXh0cmVtYVswXTsKKyAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGtlcm5lbEluZGV4ID0gMTsga2VybmVsSW5kZXggPCBleHRyZW1hLnNpemUoKTsgKytr
ZXJuZWxJbmRleCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBI
T0xPR1lfT1BFUkFUT1JfRVJPREUgJiYgZXh0cmVtYVtrZXJuZWxJbmRleF0gPD0gZW50aXJlRXh0
cmVtYSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHx8IChtX3R5cGUgPT0gRkVNT1JQSE9MT0dZ
X09QRVJBVE9SX0RJTEFURSAmJiBleHRyZW1hW2tlcm5lbEluZGV4XSA+PSBlbnRpcmVFeHRyZW1h
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudGlyZUV4dHJlbWEgPSBleHRyZW1hW2tlcm5l
bEluZGV4XTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZHN0UGl4ZWxBcnJh
eS0+c2V0KHkgKiBlZmZlY3RXaWR0aCArIDQgKiB4ICsgY2xyQ2hhbm5lbCwgZW50aXJlRXh0cmVt
YSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKyNpZiBFTkFCTEUoUEFS
QUxMRUxfSk9CUykKK3ZvaWQgRkVNb3JwaG9sb2d5OjpwbGF0Zm9ybUFwcGx5V29ya2VyKFBsYXRm
b3JtQXBwbHlQYXJhbWV0ZXJzKiBwYXJhbSkKK3sKKyAgICBwYXJhbS0+ZmlsdGVyLT5wbGF0Zm9y
bUFwcGx5R2VuZXJpYyhwYXJhbS0+cGFpbnRpbmdEYXRhLCBwYXJhbS0+c3RhcnRZLCBwYXJhbS0+
ZW5kWSk7Cit9CisjZW5kaWYKKwordm9pZCBGRU1vcnBob2xvZ3k6OnBsYXRmb3JtQXBwbHkoUGFp
bnRpbmdEYXRhKiBwYWludGluZ0RhdGEpCit7CisjaWYgRU5BQkxFKFBBUkFMTEVMX0pPQlMpCisg
ICAgaW50IG9wdGltYWxUaHJlYWROdW1iZXIgPSAocGFpbnRpbmdEYXRhLT53aWR0aCAqIHBhaW50
aW5nRGF0YS0+aGVpZ2h0KSAvIHNfbWluaW1hbEFyZWE7CisgICAgaWYgKG9wdGltYWxUaHJlYWRO
dW1iZXIgPiAxKSB7CisgICAgICAgIFBhcmFsbGVsSm9iczxQbGF0Zm9ybUFwcGx5UGFyYW1ldGVy
cz4gcGFyYWxsZWxKb2JzKCZXZWJDb3JlOjpGRU1vcnBob2xvZ3k6OnBsYXRmb3JtQXBwbHlXb3Jr
ZXIsIG9wdGltYWxUaHJlYWROdW1iZXIpOworICAgICAgICBpbnQgbnVtT2ZUaHJlYWRzID0gcGFy
YWxsZWxKb2JzLm51bWJlck9mSm9icygpOworICAgICAgICBpZiAobnVtT2ZUaHJlYWRzID4gMSkg
eworICAgICAgICAgICAgY29uc3QgaW50IGRlbHRhWSA9IDEgKyBwYWludGluZ0RhdGEtPmhlaWdo
dCAvIG51bU9mVGhyZWFkczsKKyAgICAgICAgICAgIGludCBjdXJyZW50WSA9IDA7CisgICAgICAg
ICAgICBmb3IgKGludCBqb2IgPSBudW1PZlRocmVhZHMgLSAxOyBqb2IgPj0gMDsgLS1qb2IpIHsK
KyAgICAgICAgICAgICAgICBQbGF0Zm9ybUFwcGx5UGFyYW1ldGVycyYgcGFyYW0gPSBwYXJhbGxl
bEpvYnMucGFyYW1ldGVyKGpvYik7CisgICAgICAgICAgICAgICAgcGFyYW0uZmlsdGVyID0gdGhp
czsKKyAgICAgICAgICAgICAgICBwYXJhbS5zdGFydFkgPSBjdXJyZW50WTsKKyAgICAgICAgICAg
ICAgICBjdXJyZW50WSArPSBkZWx0YVk7CisgICAgICAgICAgICAgICAgcGFyYW0uZW5kWSA9IGpv
YiA/IGN1cnJlbnRZIDogcGFpbnRpbmdEYXRhLT5oZWlnaHQ7CisgICAgICAgICAgICAgICAgcGFy
YW0ucGFpbnRpbmdEYXRhID0gcGFpbnRpbmdEYXRhOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgcGFyYWxsZWxKb2JzLmV4ZWN1dGUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgICAgICAvLyBGYWxsYmFjayB0byBzaW5nbGUgdGhyZWFkIG1vZGVsCisgICAgfQorI2Vu
ZGlmCisgICAgcGxhdGZvcm1BcHBseUdlbmVyaWMocGFpbnRpbmdEYXRhLCAwLCBwYWludGluZ0Rh
dGEtPmhlaWdodCk7Cit9CisKKwogdm9pZCBGRU1vcnBob2xvZ3k6OmFwcGx5KCkKIHsKICAgICBp
ZiAoaGFzUmVzdWx0KCkpCkBAIC0xMjQsNTQgKzIxNywxNSBAQCB2b2lkIEZFTW9ycGhvbG9neTo6
YXBwbHkoKQogICAgIEludFJlY3QgZWZmZWN0RHJhd2luZ1JlY3QgPSByZXF1ZXN0ZWRSZWdpb25P
ZklucHV0SW1hZ2VEYXRhKGluLT5hYnNvbHV0ZVBhaW50UmVjdCgpKTsKICAgICBSZWZQdHI8Qnl0
ZUFycmF5PiBzcmNQaXhlbEFycmF5ID0gaW4tPmFzUHJlbXVsdGlwbGllZEltYWdlKGVmZmVjdERy
YXdpbmdSZWN0KTsKIAotICAgIGludCBlZmZlY3RXaWR0aCA9IGVmZmVjdERyYXdpbmdSZWN0Lndp
ZHRoKCkgKiA0OwotICAgIAotICAgIC8vIExpbWl0IHRoZSByYWRpdXMgc2l6ZSB0byBlZmZlY3Qg
ZGltZW5zaW9ucwotICAgIHJhZGl1c1ggPSBtaW4oZWZmZWN0RHJhd2luZ1JlY3Qud2lkdGgoKSAt
IDEsIHJhZGl1c1gpOwotICAgIHJhZGl1c1kgPSBtaW4oZWZmZWN0RHJhd2luZ1JlY3QuaGVpZ2h0
KCkgLSAxLCByYWRpdXNZKTsKLSAgICAKLSAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gZXh0cmVt
YTsKLSAgICBmb3IgKGludCB5ID0gMDsgeSA8IGVmZmVjdERyYXdpbmdSZWN0LmhlaWdodCgpOyAr
K3kpIHsKLSAgICAgICAgaW50IHN0YXJ0WSA9IG1heCgwLCB5IC0gcmFkaXVzWSk7Ci0gICAgICAg
IGludCBlbmRZID0gbWluKGVmZmVjdERyYXdpbmdSZWN0LmhlaWdodCgpIC0gMSwgeSArIHJhZGl1
c1kpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGNoYW5uZWwgPSAwOyBjaGFubmVsIDwgNDsgKytj
aGFubmVsKSB7Ci0gICAgICAgICAgICAvLyBGaWxsIHRoZSBrZXJuZWwKLSAgICAgICAgICAgIGV4
dHJlbWEuY2xlYXIoKTsKLSAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IHJhZGl1c1g7
ICsraikgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29sdW1uRXh0cmVtYSA9IHNy
Y1BpeGVsQXJyYXktPmdldChzdGFydFkgKiBlZmZlY3RXaWR0aCArIDQgKiBqICsgY2hhbm5lbCk7
Ci0gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHN0YXJ0WTsgaSA8PSBlbmRZOyArK2kpIHsK
LSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBwaXhlbCA9IHNyY1BpeGVsQXJyYXkt
PmdldChpICogZWZmZWN0V2lkdGggKyA0ICogaiArIGNoYW5uZWwpOwotICAgICAgICAgICAgICAg
ICAgICBpZiAoKG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRVJPREUgJiYgcGl4ZWwg
PD0gY29sdW1uRXh0cmVtYSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgIChtX3R5cGUgPT0g
RkVNT1JQSE9MT0dZX09QRVJBVE9SX0RJTEFURSAmJiBwaXhlbCA+PSBjb2x1bW5FeHRyZW1hKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbkV4dHJlbWEgPSBwaXhlbDsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZXh0cmVtYS5hcHBlbmQoY29sdW1uRXh0cmVtYSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8vIEtlcm5lbCBpcyBm
aWxsZWQsIGdldCBleHRyZW1hIG9mIG5leHQgY29sdW1uIAotICAgICAgICAgICAgZm9yIChpbnQg
eCA9IDA7IHggPCBlZmZlY3REcmF3aW5nUmVjdC53aWR0aCgpOyArK3gpIHsKLSAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBlbmRYID0gbWluKHggKyByYWRpdXNYLCBlZmZlY3REcmF3aW5nUmVjdC53
aWR0aCgpIC0gMSk7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjb2x1bW5FeHRyZW1h
ID0gc3JjUGl4ZWxBcnJheS0+Z2V0KHN0YXJ0WSAqIGVmZmVjdFdpZHRoICsgZW5kWCAqIDQgKyBj
aGFubmVsKTsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gc3RhcnRZOyBpIDw9IGVuZFk7
ICsraSkgewotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHBpeGVsID0gc3JjUGl4
ZWxBcnJheS0+Z2V0KGkgKiBlZmZlY3RXaWR0aCArIGVuZFggKiA0ICsgY2hhbm5lbCk7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmICgobV90eXBlID09IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9FUk9E
RSAmJiBwaXhlbCA8PSBjb2x1bW5FeHRyZW1hKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAg
KG1fdHlwZSA9PSBGRU1PUlBIT0xPR1lfT1BFUkFUT1JfRElMQVRFICYmIHBpeGVsID49IGNvbHVt
bkV4dHJlbWEpKQotICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uRXh0cmVtYSA9IHBpeGVs
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoeCAtIHJhZGl1c1ggPj0g
MCkKLSAgICAgICAgICAgICAgICAgICAgZXh0cmVtYS5yZW1vdmUoMCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKHggKyByYWRpdXNYIDw9IGVmZmVjdERyYXdpbmdSZWN0LndpZHRoKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGV4dHJlbWEuYXBwZW5kKGNvbHVtbkV4dHJlbWEpOwotICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGNoYXIgZW50aXJlRXh0cmVtYSA9IGV4dHJlbWFbMF07Ci0gICAgICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBrZXJuZWxJbmRleCA9IDA7IGtlcm5lbEluZGV4IDwgZXh0cmVt
YS5zaXplKCk7ICsra2VybmVsSW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKChtX3R5
cGUgPT0gRkVNT1JQSE9MT0dZX09QRVJBVE9SX0VST0RFICYmIGV4dHJlbWFba2VybmVsSW5kZXhd
IDw9IGVudGlyZUV4dHJlbWEpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAobV90eXBlID09
IEZFTU9SUEhPTE9HWV9PUEVSQVRPUl9ESUxBVEUgJiYgZXh0cmVtYVtrZXJuZWxJbmRleF0gPj0g
ZW50aXJlRXh0cmVtYSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBlbnRpcmVFeHRyZW1hID0g
ZXh0cmVtYVtrZXJuZWxJbmRleF07Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IGRzdFBpeGVsQXJyYXktPnNldCh5ICogZWZmZWN0V2lkdGggKyA0ICogeCArIGNoYW5uZWwsIGVu
dGlyZUV4dHJlbWEpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIFBhaW50
aW5nRGF0YSBwYWludGluZ0RhdGE7CisgICAgcGFpbnRpbmdEYXRhLnNyY1BpeGVsQXJyYXkgPSBz
cmNQaXhlbEFycmF5LmdldCgpOworICAgIHBhaW50aW5nRGF0YS5kc3RQaXhlbEFycmF5ID0gZHN0
UGl4ZWxBcnJheTsKKyAgICBwYWludGluZ0RhdGEud2lkdGggPSBlZmZlY3REcmF3aW5nUmVjdC53
aWR0aCgpOworICAgIHBhaW50aW5nRGF0YS5oZWlnaHQgPSBlZmZlY3REcmF3aW5nUmVjdC5oZWln
aHQoKTsKKyAgICBwYWludGluZ0RhdGEucmFkaXVzWCA9IG1pbihlZmZlY3REcmF3aW5nUmVjdC53
aWR0aCgpIC0gMSwgcmFkaXVzWCk7CisgICAgcGFpbnRpbmdEYXRhLnJhZGl1c1kgPSBtaW4oZWZm
ZWN0RHJhd2luZ1JlY3QuaGVpZ2h0KCkgLSAxLCByYWRpdXNZKTsKKworICAgIHBsYXRmb3JtQXBw
bHkoJnBhaW50aW5nRGF0YSk7CiB9CiAKIHZvaWQgRkVNb3JwaG9sb2d5OjpkdW1wKCkKQEAgLTIw
MCw3ICsyNTQsNyBAQCBUZXh0U3RyZWFtJiBGRU1vcnBob2xvZ3k6OmV4dGVybmFsUmVwcmVzZW50
YXRpb24oVGV4dFN0cmVhbSYgdHMsIGludCBpbmRlbnQpIGNvbgogICAgIHRzIDw8ICJbZmVNb3Jw
aG9sb2d5IjsKICAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMpOwog
ICAgIHRzIDw8ICIgb3BlcmF0b3I9XCIiIDw8IG1vcnBob2xvZ3lPcGVyYXRvcigpIDw8ICJcIiAi
Ci0gICAgICAgPDwgInJhZGl1cz1cIiIgPDwgcmFkaXVzWCgpIDw8ICIsICIgPDwgcmFkaXVzWSgp
IDw8ICJcIl1cbiI7ICAgIAorICAgICAgIDw8ICJyYWRpdXM9XCIiIDw8IHJhZGl1c1goKSA8PCAi
LCAiIDw8IHJhZGl1c1koKSA8PCAiXCJdXG4iOwogICAgIGlucHV0RWZmZWN0KDApLT5leHRlcm5h
bFJlcHJlc2VudGF0aW9uKHRzLCBpbmRlbnQgKyAxKTsKICAgICByZXR1cm4gdHM7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhv
bG9neS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBo
b2xvZ3kuaAppbmRleCA3NGMzYjVhLi44Yjg0NmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTUzLDYg
KzUzLDMwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXBy
ZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKKyAgICBzdHJ1
Y3QgUGFpbnRpbmdEYXRhIHsKKyAgICAgICAgQnl0ZUFycmF5KiBzcmNQaXhlbEFycmF5OworICAg
ICAgICBCeXRlQXJyYXkqIGRzdFBpeGVsQXJyYXk7CisgICAgICAgIGludCB3aWR0aDsKKyAgICAg
ICAgaW50IGhlaWdodDsKKyAgICAgICAgaW50IHJhZGl1c1g7CisgICAgICAgIGludCByYWRpdXNZ
OworICAgIH07CisKKyNpZiBFTkFCTEUoUEFSQUxMRUxfSk9CUykKKyAgICBzdGF0aWMgY29uc3Qg
aW50IHNfbWluaW1hbEFyZWEgPSAoMzAwICogMzAwKTsgLy8gRW1waXJpY2FsIGRhdGEgbGltaXQg
Zm9yIHBhcmFsbGVsIGpvYnMKKworICAgIHN0cnVjdCBQbGF0Zm9ybUFwcGx5UGFyYW1ldGVycyB7
CisgICAgICAgIEZFTW9ycGhvbG9neSogZmlsdGVyOworICAgICAgICBpbnQgc3RhcnRZOworICAg
ICAgICBpbnQgZW5kWTsKKyAgICAgICAgUGFpbnRpbmdEYXRhKiBwYWludGluZ0RhdGE7CisgICAg
fTsKKworICAgIHN0YXRpYyB2b2lkIHBsYXRmb3JtQXBwbHlXb3JrZXIoUGxhdGZvcm1BcHBseVBh
cmFtZXRlcnMqKTsKKyNlbmRpZgorCisgICAgdm9pZCBwbGF0Zm9ybUFwcGx5KFBhaW50aW5nRGF0
YSopOworICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlHZW5lcmljKFBhaW50aW5nRGF0YSos
IGNvbnN0IGludCB5U3RhcnQsIGNvbnN0IGludCB5RW5kKTsKIHByaXZhdGU6CiAgICAgRkVNb3Jw
aG9sb2d5KEZpbHRlciosIE1vcnBob2xvZ3lPcGVyYXRvclR5cGUsIGZsb2F0IHJhZGl1c1gsIGZs
b2F0IHJhZGl1c1kpOwogICAgIAotLSAKMS43LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>99256</attachid>
            <date>2011-06-30 01:47:12 -0700</date>
            <delta_ts>2011-06-30 01:47:12 -0700</delta_ts>
            <desc>filterRes.svg result on Apple Mac 10.6</desc>
            <filename>filterRes-actual.png</filename>
            <type>image/png</type>
            <size>28477</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAAKXRFWHRjaGVja3N1bQAyYjkxOGFh
MTkxMjRjYzJmMjMwYTNkMzVlNTlhMzY3ZiC8SFEAAALuaUNDUElDQyBQcm9maWxlAAB4AYVUz2sT
QRT+Nm6p0CIIWmsOsniQIklZq2hF1Db9EWJrDNsftkWQZDNJ1m426+4mtaWI5OLRKt5F7aEH/4Ae
evBkL0qFWkUo3qsoYqEXLfHNbky2perAzn7z3jfvfW923wANctI09YAE5A3HUqIRaWx8Qmr8iACO
oglBNCVV2+xOJAZBg3P5e+fYeg+BW1bDe/t3snetmtK2mgeE/UDgR5rZKrDvF3EKWRICiDzfoSnH
dAjf49jy7I85Tnl4wbUPKz3EWSJ8QDUtzn9NuFPNJdNAg0g4lPVxUj6c14uU1x0HaW5mxsgQvU+Q
prvM7qtioZxO9g6QvZ30fk6z3j7CIcILGa0/RriNnvWM1T/iYeGk5sSGPRwYNfT4YBW3Gqn4NcIU
XxBNJ6JUcdkuDfGYrv1W8kqCcJA4ymRhgHNaSE/XTG74uocFfSbXE6/id1ZR4XmPE2fe1N3vRdoC
rzAOHQwaDJoNSFAQRQRhmLBQQIY8GjE0snI/I6sGG5N7MnUkart0YkSxQXs23D23UaTdPP4oInGU
Q7UIkvxB/iqvyU/lefnLXLDYVveUrZuauvLgO8XlmbkaHtfTyONzTV58ldR2k1dHlqx5erya7Bo/
7FeXMeaCNY/Ec7D78S1flcyXKYwUxeNV8+pLhHVaMTffn2x/Oz3iLs8utdZzrYmLN1abl2f9akj7
7qq8k+ZV+U9e9fH8Z83EY+IpMSZ2iuchiZfFLvGS2EurC+JgbccInZWGKdJtkfok1WBgmrz1L10/
W3i9Rn8M9VGUGczSVIn3f8IqZDSduQ5v+o/bx/wX5PeK558oAi9s4MiZum1Tce8QoWWlbnOuAhe/
0X3wtm5ro344/ARYPKsWrVI1nyC8ARx2h3oe6CmY05aWzTlShyyfk7rpymJSzFDbQ1JS1yXXZUsW
s5lVYul22JnTHW4coTlC98SnSmWT+q/xEbD9sFL5+axS2X5OGtaBl/pvwLz9RcB4i4kAACAASURB
VHgB7d1LqG3buh/0Medaa7/OuQ9JbiSFiAULidwb0LpgQSyJNeuiEiHRWmpCECQFsWBBSEG0bE2Q
gFi1qIgVRTE+wICaGC5eknvOfsyX37+18c3Z59xz7b3OPnut1Vabv37OmK2/Rh+t/dq5+7b/br2P
cXFXy8lCgMCnKfAnf3I63d6eTvk/4y6z/vXXc1/W+5XjV989Pi+tzvGbm1n2dvYdl6fbx2MfYv3i
Yn5K16O3+7Nfveq106mPpXz9+mH78nKup3z95nTq7ZyXV7Y///z7+3PsTZ3f56XMkvJ4/bl3/u1z
jvusEyBAgAABAkOg/r+zhQCBT1YgwSHBIksHkJT9yoD9uP/6+mE7x3pAf3U1r9Hb2er1LucZH/fv
cwP77IvD8VjWe7vX45D1ETwqbKRd99u1P0vOydL755a/BAgQIECAwM8oIID8jJguReCDC2QQ3a+3
BY3j/gSN43YqnPcnmKTs7bn2MCDv7Y9dJhj08kPrOdbHe73LDiA9A3IsM9ORpd+b9RyPTfa1UR9/
up3zLQQIECBAgMAPCgggP8jjIIHFBb473FLVt1ElYHz7zUPQ6P0pv6n9vZ3Bc79ynV7vQXWafnee
ERjr54DyMUl64J86HNcvn9yClWMJDgkUx4DR+7+qdvX+3L6V/SlzS1Vv9/Gjy/Ezf8jk6Xkf08xn
EyBAgACBxQQEkMU6RHUI/EYCx8FxryeAJGR00Mh2v/oWrN7Oh+V9T2dA+lqnQ0j5jSr2M5/8dEB/
3M76ZdWz96XMK21MiEg5zqn1lAkYva/b32XMsuS8Y3nvMXf7S4AAAQIECPx0AQHkp9t5J4GPL9BB
IgPkXs8gute7zPHsT9A4BpMeWOfWrF5PmWVs1+C9t+fej/f3aShITXrfZdWzt+/3VeBIAMkry3G9
A1cfy3u6nU/LvDeOfd1sWwgQIECAAIGfLCCA/GQ6bySwgMAxUGQ9A+WU+Ras3u5AkvJP/9EMIMdg
kgH3c7dgZX+/Fmjqs1VIKKjXXYLEef2+rH0XX3wxg0eO9a1VVY4v/ztsj3CS26/y7Vgpc70OHeV2
kVu5YpHr9Gel7H3PVs5OAgQIECBA4DkBAeQ5FfsIfCoCCRXHgJEBcYeQBJBsH4PI8fyc1+cfH07P
vl7ett7HP2aZMJDlGAqyfQwIHSbqnLu09xwaLjpcdIhIO+t1m/151XKRY1nOx0bZ28cy6xYCBAgQ
IEDgnQUEkHemciKBBQUSKI4BI4PnbOf3Pnp/lzn3179+PrAcH2bv0FHlXd7T279V8w8Pif821zln
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
UV61nlmQ8TB4nXNbz388PKA+r3Gbc+rYXX0rVb7V6m7cwlX3R90lROSV27dyv1TOqVAyfuAv+/r4
ubw/P9sWAgQIECBA4CULCCAvufe1/eUJVKAYASVFgkkFhYvLt4eCDiyZ75gTG8eZjPBlOxEm1+hj
KZ8ufSz7Hz6v9z4tn77bNgECBAgQILCPgACyT19qyUsUSKB4brkPGnV8rNdJVR6jQQ/6Ex96NqRn
QPJ7Hf2MyLgNa4SGedtVAkTutBozJ/XWvk4uM95zPjfn3b+OH5wTLQQIECBAgMCLFRBAXmzXa/gW
Aq/q9qe8kgiOZWY3zq+L7K+YcJfTXtWtUq9mZLi7vTuNW6zq9qmLN69Pr+r8cRvWTa3nVqsqT9e5
7SrBo86p27D61qvLutXqMufUvnEsx3Mr1k1d+2kmqrpltuUit2iNgw/BpKowgkzCzNNAM2u5RS9p
BAECBAgQIHAQEEAOGFYJfPICPfPRDbnfznC+ssEIJRn113B/TI6MP/eD/2MQyI8BjvMTPCpg1MMg
45XAcZcTf4alQ8bT8me4tEsQIECAAAECiwoIIIt2jGoReCeBDhjn2Y4ZLCpUvK7/084rS82A5AHx
06u8Xp8uMguSBFHTD5f1vpu6xkXtz21XY6bi4vWY2bis8vaq3pPAUe8fr1q/PT9QnkmXcctWvW+s
57PG8yT1niSKw9LHBY0DilUCBAgQIPBCBQSQF9rxmr2JQAeQY5kwktuuOoDcVLS4qFuwbmtOo/bd
3WRuI6Ei+yosXFyeLusWrBFMsv3qzbjdatyC9V2dNwJGQkW9er3ec//NWOdwcn+szsl6v+YtXLX5
ZMkZCSYWAgQIECBA4GUJCCAvq7+1djeBp8GjZ0IO7ewxfsr7W7Bq5H9ZX8s7wkVmNerYw+xE9s//
jBmRPOeR268STipYXCR8PHrWY+4fYaLqk/LhWnP9UB2rBAgQIECAwAsXEEBe+P8ANP8TF0gASejI
qL/DR/Zl9uP6euy/yHrNgJxuKzi8/m4GiQofIxokVNT+02efzbK2725e1W1WFUouaybkul5Vjuc/
bmu9HjS/uKtZlPMD6HMmpd6fB9DHU+7Tc3x9b2ZB8jG1zKBTvzlS2+dP7kPzBH8JECBAgACBFyMg
gLyYrtbQLQVqNiK3UI2A0ev5McDjLVg16r8bAaTmOXKrVT3/cXcOIPlmqtubCgpv3swyt1ONHxOs
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
CCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBA
lu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzT
l1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotU
kAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkB
AgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQI
ECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBA
gAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAAB
AgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQI
EFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCw
j4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkB
AWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLI
Pn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7
SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWW
ECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRA
gAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAAB
AgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQI
ECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBA
gACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAAB
AvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSW
FxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMg
gOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZ
votUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9f
agkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJB
AgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQI
ECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBA
gAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAAB
AgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQI
ECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBA
YHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+
AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUE
kOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD7
9KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8i
FSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pC
gAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAAB
AgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQI
ECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBA
gAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAAB
AgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI
7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFhe
QABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AA
sk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5
LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2p
JQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJ
ECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBA
gAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAAB
AgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQI
ECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBA
gMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB
5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsI
CCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBA
lu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzT
l1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotU
kAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkB
AgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQI
ECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBA
gAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAAB
AgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQI
EFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCw
j4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkB
AWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLI
Pn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7
SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWW
ECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRA
gAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAAB
AgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQI
ECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBA
gACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAAB
AvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSW
FxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMg
gOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZ
votUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9f
agkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJB
AgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQI
ECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBA
gAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAAB
AgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQI
ECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBA
YHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+
AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUE
kOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD7
9KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8i
FSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pC
gAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAAB
AgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQI
ECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBA
gAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAAB
AgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI
7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFhe
QABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AA
sk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5
LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2p
JQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJ
ECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBA
gAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAAB
AgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJEIhcP2QAAAuxSURBVCBAgAABAgQI7CMg
gOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZ
votUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9f
agkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJB
AgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQI
ECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBA
gAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAAB
AgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQI
ECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBA
YHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+
AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUE
kOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD7
9KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8i
FSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pC
gAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAAB
AgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQI
ECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBA
gAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAAB
AgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI
7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFhe
QABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AA
sk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5
LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2p
JQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJ
ECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBA
gAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAAB
AgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQI
ECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBA
gMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB
5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsI
CCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBA
lu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzT
l1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotU
kAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkB
AgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQI
ECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBA
gAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAAB
AgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQI
EFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCw
j4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkB
AWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLI
Pn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7
SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWW
ECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRA
gAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAAB
AgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQI
ECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBA
gACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAAB
AvsICCD79KWWECBAgAABAgQIEFheQABZvotUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSW
FxBAlu8iFSRAgAABAgQIECCwj4AAsk9fagkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMg
gOzTl1pCgAABAgQIECBAYHkBAWT5LlJBAgQIECBAgAABAvsICCD79KWWECBAgAABAgQIEFheQABZ
votUkAABAgQIECBAgMA+AgLIPn2pJQQIECBAgAABAgSWFxBAlu8iFSRAgAABAgQIECCwj4AAsk9f
agkBAgQIECBAgACB5QUEkOW7SAUJECBAgAABAgQI7CMggOzTl1pCgAABAgQIECBAYHkBAWT5LlJB
AgQIECBAgAABAvsI/P+1DGzQomsuVwAAAABJRU5ErkJggg==
</data>

          </attachment>
      

    </bug>

</bugzilla>