<?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>80145</bug_id>
          
          <creation_ts>2012-03-02 04:13:14 -0800</creation_ts>
          <short_desc>FileInputType doesn&apos;t support (save|restore)FormControlState</short_desc>
          <delta_ts>2012-03-09 01:02:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marja Hölttä">marja</reporter>
          <assigned_to name="Marja Hölttä">marja</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>jochen</cc>
    
    <cc>jonlee</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>569524</commentid>
    <comment_count>0</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-02 04:13:14 -0800</bug_when>
    <thetext>This prevents Chrome from saving and restoring selected files in an unsubmitted form.

InputType::saveFormControlState() calls HTMLInputElement::value() which calls FileInputType::getTypeSpecificValue(). This function returns a fake file path.

InputType::restoreFormControlState() calls HTMLInputElement::setValue() which doesn&apos;t allow setting the value, since FileInputType::canSetValue() returns false.

I&apos;ll attach a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569534</commentid>
    <comment_count>1</comment_count>
      <attachid>129874</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-02 04:21:12 -0800</bug_when>
    <thetext>Created attachment 129874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569542</commentid>
    <comment_count>2</comment_count>
      <attachid>129874</attachid>
    <who name="">jochen</who>
    <bug_when>2012-03-02 04:28:18 -0800</bug_when>
    <thetext>Comment on attachment 129874
Patch

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

&gt; Source/WebCore/ChangeLog:1
&gt; +2012-03-02  Marja HÃ¶lttÃ¤  &lt;marja@chromium.org&gt;

character encoding?

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

can you write a unit test for this, and explain in the changelog why this change is needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572701</commentid>
    <comment_count>3</comment_count>
      <attachid>130571</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 01:54:44 -0800</bug_when>
    <thetext>Created attachment 130571
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572707</commentid>
    <comment_count>4</comment_count>
      <attachid>130571</attachid>
    <who name="">jochen</who>
    <bug_when>2012-03-07 02:09:27 -0800</bug_when>
    <thetext>Comment on attachment 130571
Patch

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

&gt; Source/WebCore/html/FileInputType.cpp:104
&gt; +    result = String();

Can you change this so result is not touched, if you return false?

&gt; LayoutTests/ChangeLog:12
&gt; +        * platform/wk2/Skipped:

can you add a comment here why the test is skipped on wk2?

&gt; LayoutTests/http/tests/local/formdata/recover-file-input-in-unposted-form.html:37
&gt; +        eventSender.beginDragWithFiles([&quot;resources/test.txt&quot;]);

can you protect this by if (window.eventSender)?  And if window.layotuTestController is not defined, set the result div to &quot;Needs to be run with DumpRenderTree&quot; and don&apos;t try to execute the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572721</commentid>
    <comment_count>5</comment_count>
      <attachid>130577</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 02:29:48 -0800</bug_when>
    <thetext>Created attachment 130577
.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572726</commentid>
    <comment_count>6</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 02:34:27 -0800</bug_when>
    <thetext>Thanks for comments, the new patch addresses them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572727</commentid>
    <comment_count>7</comment_count>
      <attachid>130577</attachid>
    <who name="">jochen</who>
    <bug_when>2012-03-07 02:43:41 -0800</bug_when>
    <thetext>Comment on attachment 130577
.

LGTM with nits


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

&gt; Source/WebCore/html/FileInputType.cpp:112
&gt; +    return !m_fileList-&gt;isEmpty();

return true

&gt; LayoutTests/http/tests/local/formdata/recover-file-input-in-unposted-form.html:32
&gt; +    if (!window.layoutTestController)

since you exit early, I think you can skip the layoutTestController and eventSender tests below</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572735</commentid>
    <comment_count>8</comment_count>
      <attachid>130580</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 02:54:52 -0800</bug_when>
    <thetext>Created attachment 130580
.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572753</commentid>
    <comment_count>9</comment_count>
      <attachid>130580</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-07 03:22:32 -0800</bug_when>
    <thetext>Comment on attachment 130580
.

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

&gt; Source/WebCore/html/FileInputType.cpp:119
&gt; +    element()-&gt;setFiles(files);

HTMLInputElement::setFiles() is unnecessary.  filesChosen() can be called here.

&gt; LayoutTests/http/tests/local/formdata/recover-file-input-in-unposted-form.html:52
&gt; +        var xhr = new XMLHttpRequest();
&gt; +        xhr.open(&quot;POST&quot;, &quot;http://127.0.0.1:8000/xmlhttprequest/resources/multipart-post-echo.php&quot;, false);
&gt; +        xhr.send(new FormData(document.getElementById(&quot;form&quot;)));
&gt; +        var expectedResponse = &quot;posted-text=text to be posted&amp;posted-file=test.txt:text/plain:Hello&quot;;
&gt; +        if (xhr.responseText = expectedResponse)

Why do you need to submit the form? Checking the value of file-input isn&apos;t enough?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572761</commentid>
    <comment_count>10</comment_count>
      <attachid>130580</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 03:38:43 -0800</bug_when>
    <thetext>Comment on attachment 130580
.

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

&gt;&gt; Source/WebCore/html/FileInputType.cpp:119
&gt;&gt; +    element()-&gt;setFiles(files);
&gt; 
&gt; HTMLInputElement::setFiles() is unnecessary.  filesChosen() can be called here.

This function is const and filesChosen is not.

Other InputTypes, e.g., BaseCheckableInputType circumvent this by calling a setter in HTMLElement, and I followed that pattern.

Should I instead have made InputType::restoreFormControlState non-const?

&gt;&gt; LayoutTests/http/tests/local/formdata/recover-file-input-in-unposted-form.html:52
&gt;&gt; +        if (xhr.responseText = expectedResponse)
&gt; 
&gt; Why do you need to submit the form? Checking the value of file-input isn&apos;t enough?

The value is obscured by FileInputType::getTypeSpecificValue(). I want to ensure in the test that we store and restore the real value, not this fake value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572765</commentid>
    <comment_count>11</comment_count>
      <attachid>130580</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-07 03:46:42 -0800</bug_when>
    <thetext>Comment on attachment 130580
.

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

&gt;&gt;&gt; Source/WebCore/html/FileInputType.cpp:119
&gt;&gt;&gt; +    element()-&gt;setFiles(files);
&gt;&gt; 
&gt;&gt; HTMLInputElement::setFiles() is unnecessary.  filesChosen() can be called here.
&gt; 
&gt; This function is const and filesChosen is not.
&gt; 
&gt; Other InputTypes, e.g., BaseCheckableInputType circumvent this by calling a setter in HTMLElement, and I followed that pattern.
&gt; 
&gt; Should I instead have made InputType::restoreFormControlState non-const?

Ah, I see.

It&apos;s ok to make this non-const.  &apos;restore&apos; should be non-const  essentially.

&gt;&gt;&gt; LayoutTests/http/tests/local/formdata/recover-file-input-in-unposted-form.html:52
&gt;&gt;&gt; +        if (xhr.responseText = expectedResponse)
&gt;&gt; 
&gt;&gt; Why do you need to submit the form? Checking the value of file-input isn&apos;t enough?
&gt; 
&gt; The value is obscured by FileInputType::getTypeSpecificValue(). I want to ensure in the test that we store and restore the real value, not this fake value.

It&apos;s fake, but you can confirm the basename, can&apos;t you?  Also, we have HTMLInputElement::files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572772</commentid>
    <comment_count>12</comment_count>
      <attachid>130593</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 03:58:46 -0800</bug_when>
    <thetext>Created attachment 130593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572782</commentid>
    <comment_count>13</comment_count>
      <attachid>130596</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 04:13:46 -0800</bug_when>
    <thetext>Created attachment 130596
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572784</commentid>
    <comment_count>14</comment_count>
      <attachid>130597</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 04:20:13 -0800</bug_when>
    <thetext>Created attachment 130597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572794</commentid>
    <comment_count>15</comment_count>
      <attachid>130599</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 04:48:56 -0800</bug_when>
    <thetext>Created attachment 130599
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572796</commentid>
    <comment_count>16</comment_count>
      <attachid>130600</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 04:51:55 -0800</bug_when>
    <thetext>Created attachment 130600
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572798</commentid>
    <comment_count>17</comment_count>
      <attachid>130580</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-07 04:53:03 -0800</bug_when>
    <thetext>Comment on attachment 130580
.

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

&gt;&gt;&gt;&gt; Source/WebCore/html/FileInputType.cpp:119
&gt;&gt;&gt;&gt; +    element()-&gt;setFiles(files);
&gt;&gt;&gt; 
&gt;&gt;&gt; HTMLInputElement::setFiles() is unnecessary.  filesChosen() can be called here.
&gt;&gt; 
&gt;&gt; This function is const and filesChosen is not.
&gt;&gt; 
&gt;&gt; Other InputTypes, e.g., BaseCheckableInputType circumvent this by calling a setter in HTMLElement, and I followed that pattern.
&gt;&gt; 
&gt;&gt; Should I instead have made InputType::restoreFormControlState non-const?
&gt; 
&gt; Ah, I see.
&gt; 
&gt; It&apos;s ok to make this non-const.  &apos;restore&apos; should be non-const  essentially.

Ok, I made it non-const.

&gt;&gt;&gt;&gt; LayoutTests/http/tests/local/formdata/recover-file-input-in-unposted-form.html:52
&gt;&gt;&gt;&gt; +        if (xhr.responseText = expectedResponse)
&gt;&gt;&gt; 
&gt;&gt;&gt; Why do you need to submit the form? Checking the value of file-input isn&apos;t enough?
&gt;&gt; 
&gt;&gt; The value is obscured by FileInputType::getTypeSpecificValue(). I want to ensure in the test that we store and restore the real value, not this fake value.
&gt; 
&gt; It&apos;s fake, but you can confirm the basename, can&apos;t you?  Also, we have HTMLInputElement::files.

Ok, I changed this so that it reads the file contents via the File object retrieved from HTMLInputElement::files, and moved the test to fast/forms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572891</commentid>
    <comment_count>18</comment_count>
      <attachid>130600</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-07 08:12:04 -0800</bug_when>
    <thetext>Comment on attachment 130600
Patch.

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

&gt; Source/WebCore/ChangeLog:1
&gt; +2012-03-07  Marja HÃ¶lttÃ¤  &lt;marja@google.com&gt;

Looks like the encoding got messed up again.

&gt; Source/WebCore/html/FileInputType.cpp:110
&gt; +        result.append(&apos;\0&apos;);

Are we sure this works for multiple files? Can we add a test, or extend the current one, with a multiple file input?

&gt; LayoutTests/ChangeLog:10
&gt; +        * fast/forms/recover-file-input-in-unposted-form-expected.txt: Added.

I think we&apos;ve been moving toward using the subdirectories for each individual input type, so it really should be in fast/forms/file.

&gt; LayoutTests/fast/forms/recover-file-input-in-unposted-form.html:53
&gt; +            if (fileString == &quot;Hello&quot; &amp;&amp; document.getElementById(&apos;text-input&apos;).value == &quot;text to be posted&quot;)

The test ought to be using shouldBe(). (checkout file-input-change-event.html for an example)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572921</commentid>
    <comment_count>19</comment_count>
      <attachid>130571</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-03-07 08:49:05 -0800</bug_when>
    <thetext>Comment on attachment 130571
Patch

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

Did someone check that this works in IE and Firefox?

&gt;&gt; LayoutTests/http/tests/local/formdata/recover-file-input-in-unposted-form.html:37
&gt;&gt; +        eventSender.beginDragWithFiles([&quot;resources/test.txt&quot;]);
&gt; 
&gt; can you protect this by if (window.eventSender)?  And if window.layotuTestController is not defined, set the result div to &quot;Needs to be run with DumpRenderTree&quot; and don&apos;t try to execute the test

It&apos;s best to make tests that can be run manually, and it&apos;s also easy to achieve here. Just tell the tester to select any file manually, and what to expect for PASS/FAIL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573730</commentid>
    <comment_count>20</comment_count>
      <attachid>130797</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-08 02:28:17 -0800</bug_when>
    <thetext>Created attachment 130797
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573731</commentid>
    <comment_count>21</comment_count>
      <attachid>130600</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-08 02:31:28 -0800</bug_when>
    <thetext>Comment on attachment 130600
Patch.

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

&gt;&gt; Source/WebCore/ChangeLog:1
&gt;&gt; +2012-03-07  Marja HÃ¶lttÃ¤  &lt;marja@google.com&gt;
&gt; 
&gt; Looks like the encoding got messed up again.

Afaics this is only a problem in the diff viewer, not a problem in the file itself. The file is (valid) UTF-8.

&gt;&gt; Source/WebCore/html/FileInputType.cpp:110
&gt;&gt; +        result.append(&apos;\0&apos;);
&gt; 
&gt; Are we sure this works for multiple files? Can we add a test, or extend the current one, with a multiple file input?

I extended the test to test also multiple file inputs.

&gt;&gt; LayoutTests/ChangeLog:10
&gt;&gt; +        * fast/forms/recover-file-input-in-unposted-form-expected.txt: Added.
&gt; 
&gt; I think we&apos;ve been moving toward using the subdirectories for each individual input type, so it really should be in fast/forms/file.

Done.

&gt;&gt; LayoutTests/fast/forms/recover-file-input-in-unposted-form.html:53
&gt;&gt; +            if (fileString == &quot;Hello&quot; &amp;&amp; document.getElementById(&apos;text-input&apos;).value == &quot;text to be posted&quot;)
&gt; 
&gt; The test ought to be using shouldBe(). (checkout file-input-change-event.html for an example)

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573735</commentid>
    <comment_count>22</comment_count>
      <attachid>130571</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-08 02:37:26 -0800</bug_when>
    <thetext>Comment on attachment 130571
Patch

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

&gt;&gt; Source/WebCore/html/FileInputType.cpp:104
&gt;&gt; +    result = String();
&gt; 
&gt; Can you change this so result is not touched, if you return false?

Done.

&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt; +        * platform/wk2/Skipped:
&gt; 
&gt; can you add a comment here why the test is skipped on wk2?

Done.

&gt;&gt;&gt; LayoutTests/http/tests/local/formdata/recover-file-input-in-unposted-form.html:37
&gt;&gt;&gt; +        eventSender.beginDragWithFiles([&quot;resources/test.txt&quot;]);
&gt;&gt; 
&gt;&gt; can you protect this by if (window.eventSender)?  And if window.layotuTestController is not defined, set the result div to &quot;Needs to be run with DumpRenderTree&quot; and don&apos;t try to execute the test
&gt; 
&gt; It&apos;s best to make tests that can be run manually, and it&apos;s also easy to achieve here. Just tell the tester to select any file manually, and what to expect for PASS/FAIL.

Made the test manually runnable + added instructions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573736</commentid>
    <comment_count>23</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2012-03-08 02:39:26 -0800</bug_when>
    <thetext>(In reply to comment #19) 
&gt; Did someone check that this works in IE and Firefox?

Works in Firefox, doesn&apos;t work in IE 9 (it recovers the text fields but not the file inputs).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574216</commentid>
    <comment_count>24</comment_count>
      <attachid>130797</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-08 14:30:31 -0800</bug_when>
    <thetext>Comment on attachment 130797
Patch.

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574712</commentid>
    <comment_count>25</comment_count>
      <attachid>130797</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 01:01:58 -0800</bug_when>
    <thetext>Comment on attachment 130797
Patch.

Clearing flags on attachment: 130797

Committed r110275: &lt;http://trac.webkit.org/changeset/110275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574713</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 01:02:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129874</attachid>
            <date>2012-03-02 04:21:12 -0800</date>
            <delta_ts>2012-03-07 01:54:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80145-20120302132110.patch</filename>
            <type>text/plain</type>
            <size>6147</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uNmU1ZDY4Y2RlZGE2YTUyZDNhMjQ4YTZlNzY5OWYz
ODFiYTY5NDE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTAyICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaWxlSW5wdXRUeXBl
OiBzdXBwb3J0IChzYXZlfHJlc3RvcmUpRm9ybUNvbnRyb2xTdGF0ZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMTQ1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyk6CisgICAgICAgICog
aHRtbC9GaWxlSW5wdXRUeXBlLmg6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKToKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6c2V0RmlsZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAg
KiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldEZp
bGVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6Cisg
ICAgICAgIChJbnB1dFR5cGUpOgorCiAyMDEyLTAzLTAyICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIEZpeCBlcnJvcnMgaW4gTGF5ZXJSZW5k
ZXJlckNocm9taXVtIGNsZWFudXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmlu
ZGV4IDc0YjFkN2ZhMmRkOTZhOTAzYWNiOGY0YjgyODkzNDFiOGRiOTI4MzguLmJiMzk1NjhlZTg5
NjgxZDY5ODY0YWMwNmI4OTU0MmY2MDYxOGNhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcApAQCAtOTksNiArOTksMjYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGaWxlSW5w
dXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogICAgIHJldHVybiBJbnB1dFR5cGVOYW1l
czo6ZmlsZSgpOwogfQogCitib29sIEZpbGVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRl
KFN0cmluZyYgcmVzdWx0KSBjb25zdAoreworICAgIHJlc3VsdCA9IFN0cmluZygpOworICAgIGlm
IChtX2ZpbGVMaXN0LT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB1bnNp
Z25lZCBudW1GaWxlcyA9IG1fZmlsZUxpc3QtPmxlbmd0aCgpOworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBudW1GaWxlczsgKytpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9maWxl
TGlzdC0+aXRlbShpKS0+cGF0aCgpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnXDAnKTsKKyAg
ICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgRmlsZUlucHV0VHlwZTo6cmVzdG9yZUZv
cm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkgY29uc3QKK3sKKyAgICBWZWN0b3I8
U3RyaW5nPiBmaWxlczsKKyAgICBzdGF0ZS5zcGxpdCgnXDAnLCBmaWxlcyk7CisgICAgZWxlbWVu
dCgpLT5zZXRGaWxlcyhmaWxlcyk7Cit9CisKIGJvb2wgRmlsZUlucHV0VHlwZTo6YXBwZW5kRm9y
bURhdGEoRm9ybURhdGFMaXN0JiBlbmNvZGluZywgYm9vbCBtdWx0aXBhcnQpIGNvbnN0CiB7CiAg
ICAgRmlsZUxpc3QqIGZpbGVMaXN0ID0gZWxlbWVudCgpLT5maWxlcygpOwpAQCAtMTg3LDYgKzIw
NywxMSBAQCBGaWxlTGlzdCogRmlsZUlucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiBtX2Zp
bGVMaXN0LmdldCgpOwogfQogCit2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXRocykKK3sKKyAgICBmaWxlc0Nob3NlbihwYXRocyk7Cit9CisKIGJv
b2wgRmlsZUlucHV0VHlwZTo6Y2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAg
ICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgd2UgZG9uJ3QgYWxsb3cgc2V0dGluZyB0aGUgZmls
ZW5hbWUsIGJ1dCB3ZSBkbyBhbGxvdyBjbGVhcmluZyBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmgKaW5kZXggYzI2ZTFmZTA5MjZmNWEyYjZkNTMzYTM3OWY0MDhjNDNiMDNlMTI2MS4u
ZTc1ZGRjMjAwODQzMWMyNmM0ZDA1MTc0NmFkMTBkYzQ4NTFmZWIxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0
JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhj
b25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1p
c3NpbmdUZXh0KCkgY29uc3QgT1ZFUlJJREU7CkBAIC01Niw2ICs1OCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGNhbkNoYW5nZUZyb21Bbm90aGVyVHlwZSgpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHNldEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBPVkVSUklERTsgLy8gQ2hlY2tlZCBmaXJz
dCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4KICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKaW5kZXggMGUxZjlkZjIwMGRkNThmODFjZTM5ODhmY2M2NzhmM2NmNDMy
YTcyNi4uMDg2YTM0ZTgzYjgzZDhhNWM5YjJkNWQ0YWVlMDRhNzI5OTQyYzI0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMzM2LDYgKzEzMzYsMTEgQEAg
RmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICByZXR1cm4gbV9pbnB1dFR5
cGUtPmZpbGVzKCk7CiB9CiAKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhdGhzKQoreworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhwYXRo
cyk7Cit9CisKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQogewogICAgIG1faW5wdXRUeXBlLT5yZWNlaXZl
RHJvcHBlZEZpbGVzKGZpbGVuYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCmluZGV4IDRlMTIxNzMwZWQ2NjNmNzZhYmQ0MDY2MjkxOWY3MzE3NWNiNWQ2ZTMuLjE0MmMw
ZWQxMTA4MjIxYmI4NWI0ZmJlY2MwN2Y5MzhlYjljNzE1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCkBAIC0yMDUsNiArMjA1LDggQEAgcHVibGljOgogICAgIHZvaWQg
c2V0QXV0b2ZpbGxlZChib29sID0gdHJ1ZSk7CiAKICAgICBGaWxlTGlzdCogZmlsZXMoKTsKKyAg
ICB2b2lkIHNldEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKICAgICB2b2lkIHJlY2Vp
dmVEcm9wcGVkRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICBJY29uKiBpY29uKCkg
Y29uc3Q7CiAgICAgLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGZvciByZW5kZXJpbmcgdGhl
IGlucHV0IGFjdGl2ZSBkdXJpbmcgYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGYy
YzFjNWFjNWYzNzVlZTRkYjAyNzBiMzRmYTdlMzkzZjZjZGIxMDUuLjU5MDk4MTNkY2FiMDAwZTE4
OGVhMDgwODUwYmIwYzM1Yzc0M2Q2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAg
LTUxMCw2ICs1MTAsMTAgQEAgRmlsZUxpc3QqIElucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVy
biAwOwogfQogCit2b2lkIElucHV0VHlwZTo6c2V0RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
KQoreworfQorCiBib29sIElucHV0VHlwZTo6Z2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikK
IHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA2YjBmOWMx
NWFmMmRmODIzZDg1NTJkMjU4Yjk5NGI3YmQxYTBjNjQzLi45YTU1ZjE4MmY3NGY2ZGU0Y2UxYzcx
YjVjOTk2ZjI5MTQzZDU2MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTIxOSw2ICsy
MTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxNb3ZlVG9OZXdPd25lckRvY3Vt
ZW50KCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZSgpOwog
ICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVEcm9wcGVk
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICB2aXJ0dWFsIEljb24qIGljb24oKSBj
b25zdDsKICAgICAvLyBTaG91bGQgcmV0dXJuIHRydWUgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcmVu
ZGVyZXIgZm9yIGEgdHlwZSBjYW4gZGlzcGxheSBhIHN1Z2dlc3RlZCB2YWx1ZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130571</attachid>
            <date>2012-03-07 01:54:44 -0800</date>
            <delta_ts>2012-03-08 02:37:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80145-20120307105442.patch</filename>
            <type>text/plain</type>
            <size>11626</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uYjU5NzYxYWUyZjFjZDBiMzdlY2I2MDMyNjYyMTg1
NWIwOWVmMTc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA3ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBzYXZpbmcg
YW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxvYWQgZWxlbWVudHMgaW4gdW5zdWJt
aXR0ZWQgZm9ybXMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9y
ZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCisKKyAgICAgICAgKiBodG1s
L0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6c2F2
ZUZvcm1Db250cm9sU3RhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmg6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0Rmls
ZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldEZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5
cGUpOgorCiAyMDEyLTAzLTAyICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIEZpeCBlcnJvcnMgaW4gTGF5ZXJSZW5kZXJlckNocm9taXVtIGNs
ZWFudXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDc0YjFkN2ZhMmRk
OTZhOTAzYWNiOGY0YjgyODkzNDFiOGRiOTI4MzguLmY0YTYzOGQyYTdiZTkwOWVjMWE5ZDNlNTgx
MWRiNzM1ZWI1MDhmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAt
OTksNiArOTksMjQgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGaWxlSW5wdXRUeXBlOjpmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdAogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6ZmlsZSgpOwogfQog
Citib29sIEZpbGVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0
KSBjb25zdAoreworICAgIHJlc3VsdCA9IFN0cmluZygpOworICAgIHVuc2lnbmVkIG51bUZpbGVz
ID0gbV9maWxlTGlzdC0+bGVuZ3RoKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51
bUZpbGVzOyArK2kpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChtX2ZpbGVMaXN0LT5pdGVtKGkp
LT5wYXRoKCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKCdcMCcpOworICAgIH0KKyAgICByZXR1
cm4gIW1fZmlsZUxpc3QtPmlzRW1wdHkoKTsKK30KKwordm9pZCBGaWxlSW5wdXRUeXBlOjpyZXN0
b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKSBjb25zdAoreworICAgIFZl
Y3RvcjxTdHJpbmc+IGZpbGVzOworICAgIHN0YXRlLnNwbGl0KCdcMCcsIGZpbGVzKTsKKyAgICBl
bGVtZW50KCktPnNldEZpbGVzKGZpbGVzKTsKK30KKwogYm9vbCBGaWxlSW5wdXRUeXBlOjphcHBl
bmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sIG11bHRpcGFydCkgY29uc3QK
IHsKICAgICBGaWxlTGlzdCogZmlsZUxpc3QgPSBlbGVtZW50KCktPmZpbGVzKCk7CkBAIC0xODcs
NiArMjA1LDExIEBAIEZpbGVMaXN0KiBGaWxlSW5wdXRUeXBlOjpmaWxlcygpCiAgICAgcmV0dXJu
IG1fZmlsZUxpc3QuZ2V0KCk7CiB9CiAKK3ZvaWQgRmlsZUlucHV0VHlwZTo6c2V0RmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQoreworICAgIGZpbGVzQ2hvc2VuKHBhdGhzKTsKK30K
KwogYm9vbCBGaWxlSW5wdXRUeXBlOjpjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQog
ewogICAgIC8vIEZvciBzZWN1cml0eSByZWFzb25zLCB3ZSBkb24ndCBhbGxvdyBzZXR0aW5nIHRo
ZSBmaWxlbmFtZSwgYnV0IHdlIGRvIGFsbG93IGNsZWFyaW5nIGl0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuaAppbmRleCBjMjZlMWZlMDkyNmY1YTJiNmQ1MzNhMzc5ZjQwOGM0M2IwM2Ux
MjYxLi5lNzVkZGMyMDA4NDMxYzI2YzRkMDUxNzQ2YWQxMGRjNDg1MWZlYjFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtNDgsNiArNDgsOCBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIEZpbGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCopOwogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0
YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNz
aW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHZh
bHVlTWlzc2luZ1RleHQoKSBjb25zdCBPVkVSUklERTsKQEAgLTU2LDYgKzU4LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuQ2hhbmdlRnJvbUFub3RoZXJUeXBlKCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgY2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIE9WRVJSSURFOyAvLyBDaGVja2Vk
IGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdl
ZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAwZTFmOWRmMjAwZGQ1OGY4MWNlMzk4OGZjYzY3OGYz
Y2Y0MzJhNzI2Li4wODZhMzRlODNiODNkOGE1YzliMmQ1ZDRhZWUwNGE3Mjk5NDJjMjRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTEzMzYsNiArMTMzNiwx
MSBAQCBGaWxlTGlzdCogSFRNTElucHV0RWxlbWVudDo6ZmlsZXMoKQogICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+ZmlsZXMoKTsKIH0KIAordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCit7CisgICAgbV9pbnB1dFR5cGUtPnNldEZpbGVz
KHBhdGhzKTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpyZWNlaXZlRHJvcHBlZEZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCiB7CiAgICAgbV9pbnB1dFR5cGUtPnJl
Y2VpdmVEcm9wcGVkRmlsZXMoZmlsZW5hbWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKaW5kZXggNGUxMjE3MzBlZDY2M2Y3NmFiZDQwNjYyOTE5ZjczMTc1Y2I1ZDZlMy4u
MTQyYzBlZDExMDgyMjFiYjg1YjRmYmVjYzA3ZjkzOGViOWM3MTVlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIwNSw2ICsyMDUsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRBdXRvZmlsbGVkKGJvb2wgPSB0cnVlKTsKIAogICAgIEZpbGVMaXN0KiBmaWxlcygp
OworICAgIHZvaWQgc2V0RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKKwogICAgIHZvaWQg
cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogICAgIEljb24qIGlj
b24oKSBjb25zdDsKICAgICAvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIHVzZWQgZm9yIHJlbmRlcmlu
ZyB0aGUgaW5wdXQgYWN0aXZlIGR1cmluZyBhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5k
ZXggZjJjMWM1YWM1ZjM3NWVlNGRiMDI3MGIzNGZhN2UzOTNmNmNkYjEwNS4uNTkwOTgxM2RjYWIw
MDBlMTg4ZWEwODA4NTBiYjBjMzVjNzQzZDYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cApAQCAtNTEwLDYgKzUxMCwxMCBAQCBGaWxlTGlzdCogSW5wdXRUeXBlOjpmaWxlcygpCiAgICAg
cmV0dXJuIDA7CiB9CiAKK3ZvaWQgSW5wdXRUeXBlOjpzZXRGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpCit7Cit9CisKIGJvb2wgSW5wdXRUeXBlOjpnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJp
bmcmKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDZi
MGY5YzE1YWYyZGY4MjNkODU1MmQyNThiOTk0YjdiZDFhMGM2NDMuLjlhNTVmMTgyZjc0ZjZkZTRj
ZTFjNzFiNWM5OTZmMjkxNDNkNTYxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMjE5
LDYgKzIxOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbE1vdmVUb05ld093bmVy
RG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEFsaWduQXR0cmlidXRl
KCk7CiAgICAgdmlydHVhbCBGaWxlTGlzdCogZmlsZXMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2ZURy
b3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogICAgIHZpcnR1YWwgSWNvbiogaWNv
bigpIGNvbnN0OwogICAgIC8vIFNob3VsZCByZXR1cm4gdHJ1ZSBpZiB0aGUgY29ycmVzcG9uZGlu
ZyByZW5kZXJlciBmb3IgYSB0eXBlIGNhbiBkaXNwbGF5IGEgc3VnZ2VzdGVkIHZhbHVlLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDMwOGJkZWJlYWU5NGEwMjMzNWFmMjdkMWFiYjM2MGZhZDI5NTE5ODYuLjU2NzM5MTc2OWNj
M2Y0NzAwYWJkOGIyN2M2MjYzMDliZDM3NTNkMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0wMy0wNyAgTWFyamEgSMO2bHR0w6QgIDxtYXJqYUBnb29nbGUuY29tPgorCisgICAgICAgIEZp
bGVJbnB1dFR5cGUgZG9lc24ndCBzdXBwb3J0IChzYXZlfHJlc3RvcmUpRm9ybUNvbnRyb2xTdGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxNDUK
KworICAgICAgICBUZXN0cyBmb3Igc2F2aW5nIGFuZCByZXN0b3JpbmcgdGhlIHN0YXRlIG9mIGZp
bGUgdXBsb2FkIGVsZW1lbnRzIGluIHVuc3VibWl0dGVkIGZvcm1zLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9mb3Jt
ZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlu
cHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2sy
L1NraXBwZWQ6CisKIDIwMTItMDMtMDIgIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICByZWZsZWN0aW9uIGNvbXB1dGVkIHN0eWxlIHRlc3QgZm9yIENT
UzMgY2FsYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0
YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11
bnBvc3RlZC1mb3JtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmUzMzU4YmI1Yjk3Mzk1ZmU1
MzE5YmZkMjg1ZTg2OWJkZGY4Zjg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9y
bS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEg
ZmlsZSBjaG9vc2VyIGlzIHJlY292ZXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQgbmF2aWdh
dGluZyBiYWNrLgorUEFTUworICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0
LWluLXVucG9zdGVkLWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWE5OGNmMmViYjBjYWY2OTY3MzZm
YTZhMjhiNTVkZjEzMDE2N2JkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5o
dG1sCkBAIC0wLDAgKzEsNjcgQEAKKzxodG1sPgorPGhlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3Qo
KSI+CitUZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEgZmlsZSBjaG9vc2VyIGlzIHJlY292ZXJlZCB3
aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQgbmF2aWdhdGluZyBiYWNrLjwvcD4KKzxkaXYgaWQ9InJl
c3VsdCI+RkFJTDogU2NyaXB0IGRpZCBub3QgcnVuPC9kaXY+CisKKzxmb3JtIGlkPSJmb3JtIiBt
ZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgorPGlucHV0IGlkPSJ0
ZXh0LWlucHV0IiB0eXBlPSJ0ZXh0IiBuYW1lPSJwb3N0ZWQtdGV4dCI+Cis8aW5wdXQgaWQ9ImZp
bGUtaW5wdXQiIHR5cGU9ImZpbGUiIG5hbWU9InBvc3RlZC1maWxlIj4KKzxpbnB1dCBpZD0ibXlz
dWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0iU3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KKzwvZm9y
bT4KKworPHNjcmlwdD4KKy8vIFN0cnVjdHVyZSBvZiB0aGUgdGVzdDoKKy8vIFN0YXJ0IG9mIHRo
ZSB0ZXN0IChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIiIpCisvLyAtIEZpbGwgb3V0IGEg
Zm9ybS4KKy8vIC0gTmF2aWdhdGUgdG8gYSBkaWZmZXJlbnQgbG9jYXRpb24uCisvLyBPbiB0aGUg
ZGlmZmVyZW50IHBhZ2UgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiP2RpZmZlcmVudHBh
Z2UiKQorLy8gLSBOYXZpZ2F0ZSBiYWNrLgorLy8gQmFjayBvbiB0aGUgb3JpZ2luYWwgcGFnZSAo
ZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICIiICYmIHdpbmRvdy5uYW1lID09ICJ3ZW50YmFj
ayIpCisvLyAtIFBvc3QgdGhlIGZvcm0uCisvLyAtIENoZWNrIHRoZSBwb3N0ZWQgZGF0YS4KKwor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7Cit9CisKKy8vIERpc2FibGUgYi9mIGNhY2hlIChub3QgbmVjZXNzYXJ5IGluIERSVCBzaW5j
ZSB0aGUgYi9mIGNhY2hlIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQpLgoraWYgKCF3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgd2luZG93Lm9udW5sb2FkID0gZnVuY3Rpb24oKSB7fQor
CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0g
IiIgJiYgd2luZG93Lm5hbWUgPT0gIiIpIHsKKyAgICAgICAgLy8gU3RhcnQgb2YgdGhlIHRlc3Qu
IFNldCB0aGUgdmFsdWVzIHRvIHRoZSBpbnB1dCBlbGVtZW50cy4KKyAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRleHQtaW5wdXQiKS52YWx1ZSA9ICJ0ZXh0IHRvIGJlIHBvc3RlZCI7
CisgICAgICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbInJlc291cmNlcy90ZXN0
LnR4dCJdKTsKKyAgICAgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImZpbGUtaW5wdXQiKSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAo
KTsKKyAgICAgICAgLy8gTmF2aWdhdGUgYXdheTsgZG8gaXQgd2l0aCBhIHRpbWVvdXQgc28gdGhh
dCBpdCB3aWxsIGNyZWF0ZSBhIGhpc3RvcnkgZW50cnkuCisgICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7ZG9jdW1lbnQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbiArICI/ZGlmZmVy
ZW50cGFnZSI7fSwgMCk7CisgICAgfSBlbHNlIGlmIChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2gg
PT0gIj9kaWZmZXJlbnRwYWdlIikgeworICAgICAgICAvLyBXZSBoYXZlIG5hdmlnYXRlZCB0byBh
IGRpZmZlcmVudCBwYWdlLiBOb3cgbmF2aWdhdGUgYmFjay4KKyAgICAgICAgd2luZG93Lm5hbWUg
PSAid2VudGJhY2siOworICAgICAgICBoaXN0b3J5LmJhY2soKTsKKyAgICB9IGVsc2UgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAid2VudGJhY2si
KSB7CisgICAgICAgIC8vIFdlIGhhdmUgbmF2aWdhdGVkIGJhY2suIE5vdyBzdWJtaXQgdGhlIGZv
cm0uCisgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgeGhy
Lm9wZW4oIlBPU1QiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9tdWx0aXBhcnQtcG9zdC1lY2hvLnBocCIsIGZhbHNlKTsKKyAgICAgICAgeGhyLnNlbmQo
bmV3IEZvcm1EYXRhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb3JtIikpKTsKKyAgICAgICAg
dmFyIGV4cGVjdGVkUmVzcG9uc2UgPSAicG9zdGVkLXRleHQ9dGV4dCB0byBiZSBwb3N0ZWQmcG9z
dGVkLWZpbGU9dGVzdC50eHQ6dGV4dC9wbGFpbjpIZWxsbyI7CisgICAgICAgIGlmICh4aHIucmVz
cG9uc2VUZXh0ID0gZXhwZWN0ZWRSZXNwb25zZSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAnUEFTUyc7CisKKyAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVy
T2ZFbGVtZW50KGVsZW1lbnQpIHsKKyAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVm
dCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5v
ZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oY2VudGVyWCwgY2VudGVyWSk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggODViYjNiYTNiNDk4NjkxYmI5ZTBiNDc2
ZmQ5NmVjOTUyYTU2ZjVkMC4uMDc1ODE1YmE4Nzg1OTRmNmQ5ODUyMmRiYjgyMzA3YmRmNzVkMzFj
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTEzNjQsNiArMTM2NCw3IEBAIGZhc3Qv
Zm9ybXMvZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2Zp
bGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9z
ZW5kLWRyYWdnZWQtZmlsZS5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL2Zvcm0tZGF0
YS13aXRoLXVua25vd24tZmlsZS1leHRlbnNpb24uaHRtbAoraHR0cC90ZXN0cy9sb2NhbC9mb3Jt
ZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCiBodHRwL3Rlc3Rz
L2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLWNvbnN0cnVjdGVkLWZyb20tZm9ybS5odG1s
CiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLXdpdGgtc2xpY2VkLWZp
bGUuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130577</attachid>
            <date>2012-03-07 02:29:48 -0800</date>
            <delta_ts>2012-03-07 02:54:47 -0800</delta_ts>
            <desc>.</desc>
            <filename>bug-80145-20120307112947.patch</filename>
            <type>text/plain</type>
            <size>11791</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uYjU5NzYxYWUyZjFjZDBiMzdlY2I2MDMyNjYyMTg1
NWIwOWVmMTc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA3ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBzYXZpbmcg
YW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxvYWQgZWxlbWVudHMgaW4gdW5zdWJt
aXR0ZWQgZm9ybXMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9y
ZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCisKKyAgICAgICAgKiBodG1s
L0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6c2F2
ZUZvcm1Db250cm9sU3RhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmg6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0Rmls
ZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldEZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5
cGUpOgorCiAyMDEyLTAzLTAyICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIEZpeCBlcnJvcnMgaW4gTGF5ZXJSZW5kZXJlckNocm9taXVtIGNs
ZWFudXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDc0YjFkN2ZhMmRk
OTZhOTAzYWNiOGY0YjgyODkzNDFiOGRiOTI4MzguLmM1YjJlNDhmZTFjZTgyMGZjYzFiZjIyMWM3
Mzg1NjdkMTQzMmRlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAt
OTksNiArOTksMjYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGaWxlSW5wdXRUeXBlOjpmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdAogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6ZmlsZSgpOwogfQog
Citib29sIEZpbGVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0
KSBjb25zdAoreworICAgIGlmIChtX2ZpbGVMaXN0LT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXN1bHQgPSBTdHJpbmcoKTsKKyAgICB1bnNpZ25lZCBudW1GaWxlcyA9
IG1fZmlsZUxpc3QtPmxlbmd0aCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1G
aWxlczsgKytpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+
cGF0aCgpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnXDAnKTsKKyAgICB9CisgICAgcmV0dXJu
ICFtX2ZpbGVMaXN0LT5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgRmlsZUlucHV0VHlwZTo6cmVzdG9y
ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkgY29uc3QKK3sKKyAgICBWZWN0
b3I8U3RyaW5nPiBmaWxlczsKKyAgICBzdGF0ZS5zcGxpdCgnXDAnLCBmaWxlcyk7CisgICAgZWxl
bWVudCgpLT5zZXRGaWxlcyhmaWxlcyk7Cit9CisKIGJvb2wgRmlsZUlucHV0VHlwZTo6YXBwZW5k
Rm9ybURhdGEoRm9ybURhdGFMaXN0JiBlbmNvZGluZywgYm9vbCBtdWx0aXBhcnQpIGNvbnN0CiB7
CiAgICAgRmlsZUxpc3QqIGZpbGVMaXN0ID0gZWxlbWVudCgpLT5maWxlcygpOwpAQCAtMTg3LDYg
KzIwNywxMSBAQCBGaWxlTGlzdCogRmlsZUlucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiBt
X2ZpbGVMaXN0LmdldCgpOwogfQogCit2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKK3sKKyAgICBmaWxlc0Nob3NlbihwYXRocyk7Cit9CisK
IGJvb2wgRmlsZUlucHV0VHlwZTo6Y2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucywgd2UgZG9uJ3QgYWxsb3cgc2V0dGluZyB0aGUg
ZmlsZW5hbWUsIGJ1dCB3ZSBkbyBhbGxvdyBjbGVhcmluZyBpdC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKaW5kZXggYzI2ZTFmZTA5MjZmNWEyYjZkNTMzYTM3OWY0MDhjNDNiMDNlMTI2
MS4uZTc1ZGRjMjAwODQzMWMyNmM0ZDA1MTc0NmFkMTBkYzQ4NTFmZWIxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFM
aXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2lu
Zyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1
ZU1pc3NpbmdUZXh0KCkgY29uc3QgT1ZFUlJJREU7CkBAIC01Niw2ICs1OCw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIGNhbkNoYW5nZUZyb21Bbm90aGVyVHlwZSgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHNldEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKSBPVkVSUklERTsgLy8gQ2hlY2tlZCBm
aXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQs
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKaW5kZXggMGUxZjlkZjIwMGRkNThmODFjZTM5ODhmY2M2NzhmM2Nm
NDMyYTcyNi4uMDg2YTM0ZTgzYjgzZDhhNWM5YjJkNWQ0YWVlMDRhNzI5OTQyYzI0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMzM2LDYgKzEzMzYsMTEg
QEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICByZXR1cm4gbV9pbnB1
dFR5cGUtPmZpbGVzKCk7CiB9CiAKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMoY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQoreworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhw
YXRocyk7Cit9CisKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVjZWl2ZURyb3BwZWRGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQogewogICAgIG1faW5wdXRUeXBlLT5yZWNl
aXZlRHJvcHBlZEZpbGVzKGZpbGVuYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oCmluZGV4IDRlMTIxNzMwZWQ2NjNmNzZhYmQ0MDY2MjkxOWY3MzE3NWNiNWQ2ZTMuLjE0
MmMwZWQxMTA4MjIxYmI4NWI0ZmJlY2MwN2Y5MzhlYjljNzE1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMDUsNiArMjA1LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0QXV0b2ZpbGxlZChib29sID0gdHJ1ZSk7CiAKICAgICBGaWxlTGlzdCogZmlsZXMoKTsK
KyAgICB2b2lkIHNldEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKICAgICB2b2lkIHJl
Y2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICBJY29uKiBpY29u
KCkgY29uc3Q7CiAgICAgLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGZvciByZW5kZXJpbmcg
dGhlIGlucHV0IGFjdGl2ZSBkdXJpbmcgYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4
IGYyYzFjNWFjNWYzNzVlZTRkYjAyNzBiMzRmYTdlMzkzZjZjZGIxMDUuLjU5MDk4MTNkY2FiMDAw
ZTE4OGVhMDgwODUwYmIwYzM1Yzc0M2Q2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
QEAgLTUxMCw2ICs1MTAsMTAgQEAgRmlsZUxpc3QqIElucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJl
dHVybiAwOwogfQogCit2b2lkIElucHV0VHlwZTo6c2V0RmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKQoreworfQorCiBib29sIElucHV0VHlwZTo6Z2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5n
JikKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA2YjBm
OWMxNWFmMmRmODIzZDg1NTJkMjU4Yjk5NGI3YmQxYTBjNjQzLi45YTU1ZjE4MmY3NGY2ZGU0Y2Ux
YzcxYjVjOTk2ZjI5MTQzZDU2MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTIxOSw2
ICsyMTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxNb3ZlVG9OZXdPd25lckRv
Y3VtZW50KCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZSgp
OwogICAgIHZpcnR1YWwgRmlsZUxpc3QqIGZpbGVzKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVEcm9w
cGVkRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICB2aXJ0dWFsIEljb24qIGljb24o
KSBjb25zdDsKICAgICAvLyBTaG91bGQgcmV0dXJuIHRydWUgaWYgdGhlIGNvcnJlc3BvbmRpbmcg
cmVuZGVyZXIgZm9yIGEgdHlwZSBjYW4gZGlzcGxheSBhIHN1Z2dlc3RlZCB2YWx1ZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAzMDhiZGViZWFlOTRhMDIzMzVhZjI3ZDFhYmIzNjBmYWQyOTUxOTg2Li43NmYyNjI5ODFmNTI2
Njk1NDE2Njk4MjkwZDhkMjljNDdjOTc0YjI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTIt
MDMtMDcgIE1hcmphIEjDtmx0dMOkICA8bWFyamFAZ29vZ2xlLmNvbT4KKworICAgICAgICBGaWxl
SW5wdXRUeXBlIGRvZXNuJ3Qgc3VwcG9ydCAoc2F2ZXxyZXN0b3JlKUZvcm1Db250cm9sU3RhdGUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMTQ1CisK
KyAgICAgICAgVGVzdHMgZm9yIHNhdmluZyBhbmQgcmVzdG9yaW5nIHRoZSBzdGF0ZSBvZiBmaWxl
IHVwbG9hZCBlbGVtZW50cyBpbiB1bnN1Ym1pdHRlZCBmb3Jtcy4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRh
dGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1
dC1pbi11bnBvc3RlZC1mb3JtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9T
a2lwcGVkOiBUaGUgYWRkZWQgdGVzdHMgbmVlZHMgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZp
bGVzCisKIDIwMTItMDMtMDIgIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICByZWZsZWN0aW9uIGNvbXB1dGVkIHN0eWxlIHRlc3QgZm9yIENTUzMgY2Fs
YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNv
dmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3Rl
ZC1mb3JtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmUzMzU4YmI1Yjk3Mzk1ZmU1MzE5YmZk
Mjg1ZTg2OWJkZGY4Zjg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEgZmlsZSBj
aG9vc2VyIGlzIHJlY292ZXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQgbmF2aWdhdGluZyBi
YWNrLgorUEFTUworICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
Zm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVu
cG9zdGVkLWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTE0OGU5MGI0YWY3YjA0YTRlZTMzNjBmZmUy
OWJkODViNmEwYmVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9s
b2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCkBA
IC0wLDAgKzEsNjkgQEAKKzxodG1sPgorPGhlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CitU
ZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEgZmlsZSBjaG9vc2VyIGlzIHJlY292ZXJlZCB3aGVuIG5h
dmlnYXRpbmcgYXdheSBhbmQgbmF2aWdhdGluZyBiYWNrLjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+
RkFJTDogU2NyaXB0IGRpZCBub3QgcnVuPC9kaXY+CisKKzxmb3JtIGlkPSJmb3JtIiBtZXRob2Q9
InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgorPGlucHV0IGlkPSJ0ZXh0LWlu
cHV0IiB0eXBlPSJ0ZXh0IiBuYW1lPSJwb3N0ZWQtdGV4dCI+Cis8aW5wdXQgaWQ9ImZpbGUtaW5w
dXQiIHR5cGU9ImZpbGUiIG5hbWU9InBvc3RlZC1maWxlIj4KKzxpbnB1dCBpZD0ibXlzdWJtaXQi
IHR5cGU9InN1Ym1pdCIgbmFtZT0iU3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KKzwvZm9ybT4KKwor
PHNjcmlwdD4KKy8vIFN0cnVjdHVyZSBvZiB0aGUgdGVzdDoKKy8vIFN0YXJ0IG9mIHRoZSB0ZXN0
IChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIiIpCisvLyAtIEZpbGwgb3V0IGEgZm9ybS4K
Ky8vIC0gTmF2aWdhdGUgdG8gYSBkaWZmZXJlbnQgbG9jYXRpb24uCisvLyBPbiB0aGUgZGlmZmVy
ZW50IHBhZ2UgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiP2RpZmZlcmVudHBhZ2UiKQor
Ly8gLSBOYXZpZ2F0ZSBiYWNrLgorLy8gQmFjayBvbiB0aGUgb3JpZ2luYWwgcGFnZSAoZG9jdW1l
bnQubG9jYXRpb24uc2VhcmNoID09ICIiICYmIHdpbmRvdy5uYW1lID09ICJ3ZW50YmFjayIpCisv
LyAtIFBvc3QgdGhlIGZvcm0uCisvLyAtIENoZWNrIHRoZSBwb3N0ZWQgZGF0YS4KKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9
IGVsc2UgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwg
PSAiRkFJTDogTmVlZHMgdG8gYmUgcnVuIHdpdGggRHVtcFJlbmRlclRyZWUiOworfQorCitmdW5j
dGlvbiB0ZXN0KCkgeworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3
aW5kb3cubmFtZSA9PSAiIikgeworICAgICAgICAvLyBTdGFydCBvZiB0aGUgdGVzdC4gU2V0IHRo
ZSB2YWx1ZXMgdG8gdGhlIGlucHV0IGVsZW1lbnRzLgorICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGV4dC1pbnB1dCIpLnZhbHVlID0gInRleHQgdG8gYmUgcG9zdGVkIjsKKyAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgZXZlbnRTZW5kZXIuYmVn
aW5EcmFnV2l0aEZpbGVzKFsicmVzb3VyY2VzL3Rlc3QudHh0Il0pOworICAgICAgICAgICAgbW92
ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtaW5w
dXQiKSk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgIH0KKyAg
ICAgICAgLy8gTmF2aWdhdGUgYXdheTsgZG8gaXQgd2l0aCBhIHRpbWVvdXQgc28gdGhhdCBpdCB3
aWxsIGNyZWF0ZSBhIGhpc3RvcnkgZW50cnkuCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7ZG9jdW1lbnQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbiArICI/ZGlmZmVyZW50cGFn
ZSI7fSwgMCk7CisgICAgfSBlbHNlIGlmIChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIj9k
aWZmZXJlbnRwYWdlIikgeworICAgICAgICAvLyBXZSBoYXZlIG5hdmlnYXRlZCB0byBhIGRpZmZl
cmVudCBwYWdlLiBOb3cgbmF2aWdhdGUgYmFjay4KKyAgICAgICAgd2luZG93Lm5hbWUgPSAid2Vu
dGJhY2siOworICAgICAgICBoaXN0b3J5LmJhY2soKTsKKyAgICB9IGVsc2UgaWYgKGRvY3VtZW50
LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAid2VudGJhY2siKSB7Cisg
ICAgICAgIC8vIFdlIGhhdmUgbmF2aWdhdGVkIGJhY2suIE5vdyBzdWJtaXQgdGhlIGZvcm0uCisg
ICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgeGhyLm9wZW4o
IlBPU1QiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9t
dWx0aXBhcnQtcG9zdC1lY2hvLnBocCIsIGZhbHNlKTsKKyAgICAgICAgeGhyLnNlbmQobmV3IEZv
cm1EYXRhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb3JtIikpKTsKKyAgICAgICAgdmFyIGV4
cGVjdGVkUmVzcG9uc2UgPSAicG9zdGVkLXRleHQ9dGV4dCB0byBiZSBwb3N0ZWQmcG9zdGVkLWZp
bGU9dGVzdC50eHQ6dGV4dC9wbGFpbjpIZWxsbyI7CisgICAgICAgIGlmICh4aHIucmVzcG9uc2VU
ZXh0ID0gZXhwZWN0ZWRSZXNwb25zZSkKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiUEFTUyI7CisKKyAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVt
ZW50KGVsZW1lbnQpIHsKKyAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVs
ZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRU
b3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oY2VudGVyWCwgY2VudGVyWSk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggODViYjNiYTNiNDk4NjkxYmI5ZTBiNDc2ZmQ5NmVj
OTUyYTU2ZjVkMC4uMDc1ODE1YmE4Nzg1OTRmNmQ5ODUyMmRiYjgyMzA3YmRmNzVkMzFjNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTEzNjQsNiArMTM2NCw3IEBAIGZhc3QvZm9ybXMv
ZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkv
ZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9zZW5kLWRy
YWdnZWQtZmlsZS5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL2Zvcm0tZGF0YS13aXRo
LXVua25vd24tZmlsZS1leHRlbnNpb24uaHRtbAoraHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9y
ZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCiBodHRwL3Rlc3RzL2xvY2Fs
L2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLWNvbnN0cnVjdGVkLWZyb20tZm9ybS5odG1sCiBodHRw
L3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLXdpdGgtc2xpY2VkLWZpbGUuaHRt
bAogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130580</attachid>
            <date>2012-03-07 02:54:52 -0800</date>
            <delta_ts>2012-03-07 04:53:03 -0800</delta_ts>
            <desc>.</desc>
            <filename>bug-80145-20120307115451.patch</filename>
            <type>text/plain</type>
            <size>11667</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uYjU5NzYxYWUyZjFjZDBiMzdlY2I2MDMyNjYyMTg1
NWIwOWVmMTc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA3ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBzYXZpbmcg
YW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxvYWQgZWxlbWVudHMgaW4gdW5zdWJt
aXR0ZWQgZm9ybXMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9y
ZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCisKKyAgICAgICAgKiBodG1s
L0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6c2F2
ZUZvcm1Db250cm9sU3RhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmg6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0Rmls
ZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldEZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5
cGUpOgorCiAyMDEyLTAzLTAyICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIEZpeCBlcnJvcnMgaW4gTGF5ZXJSZW5kZXJlckNocm9taXVtIGNs
ZWFudXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDc0YjFkN2ZhMmRk
OTZhOTAzYWNiOGY0YjgyODkzNDFiOGRiOTI4MzguLmMyZDg2ZGNhMjA4MWI0ZGViMDE1NjE3NzQy
ZGZlMDFhNDE2NmQyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAt
OTksNiArOTksMjYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGaWxlSW5wdXRUeXBlOjpmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdAogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6ZmlsZSgpOwogfQog
Citib29sIEZpbGVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0
KSBjb25zdAoreworICAgIGlmIChtX2ZpbGVMaXN0LT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXN1bHQgPSBTdHJpbmcoKTsKKyAgICB1bnNpZ25lZCBudW1GaWxlcyA9
IG1fZmlsZUxpc3QtPmxlbmd0aCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1G
aWxlczsgKytpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+
cGF0aCgpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnXDAnKTsKKyAgICB9CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK3ZvaWQgRmlsZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUo
Y29uc3QgU3RyaW5nJiBzdGF0ZSkgY29uc3QKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBmaWxlczsK
KyAgICBzdGF0ZS5zcGxpdCgnXDAnLCBmaWxlcyk7CisgICAgZWxlbWVudCgpLT5zZXRGaWxlcyhm
aWxlcyk7Cit9CisKIGJvb2wgRmlsZUlucHV0VHlwZTo6YXBwZW5kRm9ybURhdGEoRm9ybURhdGFM
aXN0JiBlbmNvZGluZywgYm9vbCBtdWx0aXBhcnQpIGNvbnN0CiB7CiAgICAgRmlsZUxpc3QqIGZp
bGVMaXN0ID0gZWxlbWVudCgpLT5maWxlcygpOwpAQCAtMTg3LDYgKzIwNywxMSBAQCBGaWxlTGlz
dCogRmlsZUlucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiBtX2ZpbGVMaXN0LmdldCgpOwog
fQogCit2b2lkIEZpbGVJbnB1dFR5cGU6OnNldEZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXRocykKK3sKKyAgICBmaWxlc0Nob3NlbihwYXRocyk7Cit9CisKIGJvb2wgRmlsZUlucHV0VHlw
ZTo6Y2FuU2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKICAgICAvLyBGb3Igc2VjdXJp
dHkgcmVhc29ucywgd2UgZG9uJ3QgYWxsb3cgc2V0dGluZyB0aGUgZmlsZW5hbWUsIGJ1dCB3ZSBk
byBhbGxvdyBjbGVhcmluZyBpdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmls
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXgg
YzI2ZTFmZTA5MjZmNWEyYjZkNTMzYTM3OWY0MDhjNDNiMDNlMTI2MS4uZTc1ZGRjMjAwODQzMWMy
NmM0ZDA1MTc0NmFkMTBkYzQ4NTFmZWIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGaWxlSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNhdmVGb3Jt
Q29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBy
ZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29u
c3QgT1ZFUlJJREU7CkBAIC01Niw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29s
IGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNh
bkNoYW5nZUZyb21Bbm90aGVyVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRmls
ZUxpc3QqIGZpbGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNhblNldFZhbHVl
KGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBnZXRUeXBlU3BlY2lm
aWNWYWx1ZShTdHJpbmcmKSBPVkVSUklERTsgLy8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVy
bmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4KICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVo
YXZpb3IpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
aW5kZXggMGUxZjlkZjIwMGRkNThmODFjZTM5ODhmY2M2NzhmM2NmNDMyYTcyNi4uMDg2YTM0ZTgz
YjgzZDhhNWM5YjJkNWQ0YWVlMDRhNzI5OTQyYzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMzM2LDYgKzEzMzYsMTEgQEAgRmlsZUxpc3QqIEhUTUxJ
bnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmZpbGVzKCk7CiB9
CiAKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhdGhzKQoreworICAgIG1faW5wdXRUeXBlLT5zZXRGaWxlcyhwYXRocyk7Cit9CisKIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6cmVjZWl2ZURyb3BwZWRGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgZmlsZW5hbWVzKQogewogICAgIG1faW5wdXRUeXBlLT5yZWNlaXZlRHJvcHBlZEZpbGVzKGZp
bGVuYW1lcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDRlMTIx
NzMwZWQ2NjNmNzZhYmQ0MDY2MjkxOWY3MzE3NWNiNWQ2ZTMuLjE0MmMwZWQxMTA4MjIxYmI4NWI0
ZmJlY2MwN2Y5MzhlYjljNzE1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0yMDUsNiArMjA1LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXV0b2ZpbGxlZChi
b29sID0gdHJ1ZSk7CiAKICAgICBGaWxlTGlzdCogZmlsZXMoKTsKKyAgICB2b2lkIHNldEZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKICAgICB2b2lkIHJlY2VpdmVEcm9wcGVkRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICBJY29uKiBpY29uKCkgY29uc3Q7CiAgICAgLy8g
VGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGZvciByZW5kZXJpbmcgdGhlIGlucHV0IGFjdGl2ZSBk
dXJpbmcgYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGYyYzFjNWFjNWYzNzVlZTRk
YjAyNzBiMzRmYTdlMzkzZjZjZGIxMDUuLjU5MDk4MTNkY2FiMDAwZTE4OGVhMDgwODUwYmIwYzM1
Yzc0M2Q2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTUxMCw2ICs1MTAsMTAg
QEAgRmlsZUxpc3QqIElucHV0VHlwZTo6ZmlsZXMoKQogICAgIHJldHVybiAwOwogfQogCit2b2lk
IElucHV0VHlwZTo6c2V0RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQoreworfQorCiBib29s
IElucHV0VHlwZTo6Z2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJikKIHsKICAgICByZXR1cm4g
ZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA2YjBmOWMxNWFmMmRmODIzZDg1NTJk
MjU4Yjk5NGI3YmQxYTBjNjQzLi45YTU1ZjE4MmY3NGY2ZGU0Y2UxYzcxYjVjOTk2ZjI5MTQzZDU2
MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTIxOSw2ICsyMTksNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxNb3ZlVG9OZXdPd25lckRvY3VtZW50KCk7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZFJlc3BlY3RBbGlnbkF0dHJpYnV0ZSgpOwogICAgIHZpcnR1YWwgRmls
ZUxpc3QqIGZpbGVzKCk7CisgICAgdmlydHVhbCB2b2lkIHNldEZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVEcm9wcGVkRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mKTsKICAgICB2aXJ0dWFsIEljb24qIGljb24oKSBjb25zdDsKICAgICAvLyBT
aG91bGQgcmV0dXJuIHRydWUgaWYgdGhlIGNvcnJlc3BvbmRpbmcgcmVuZGVyZXIgZm9yIGEgdHlw
ZSBjYW4gZGlzcGxheSBhIHN1Z2dlc3RlZCB2YWx1ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMDhiZGViZWFlOTRhMDIz
MzVhZjI3ZDFhYmIzNjBmYWQyOTUxOTg2Li43NmYyNjI5ODFmNTI2Njk1NDE2Njk4MjkwZDhkMjlj
NDdjOTc0YjI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMDcgIE1hcmphIEjDtmx0
dMOkICA8bWFyamFAZ29vZ2xlLmNvbT4KKworICAgICAgICBGaWxlSW5wdXRUeXBlIGRvZXNuJ3Qg
c3VwcG9ydCAoc2F2ZXxyZXN0b3JlKUZvcm1Db250cm9sU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMTQ1CisKKyAgICAgICAgVGVzdHMgZm9y
IHNhdmluZyBhbmQgcmVzdG9yaW5nIHRoZSBzdGF0ZSBvZiBmaWxlIHVwbG9hZCBlbGVtZW50cyBp
biB1bnN1Ym1pdHRlZCBmb3Jtcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlu
cHV0LWluLXVucG9zdGVkLWZvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3Jt
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOiBUaGUgYWRkZWQg
dGVzdHMgbmVlZHMgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzCisKIDIwMTItMDMtMDIg
IE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICByZWZs
ZWN0aW9uIGNvbXB1dGVkIHN0eWxlIHRlc3QgZm9yIENTUzMgY2FsYwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4t
dW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2Fs
L2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZmUzMzU4YmI1Yjk3Mzk1ZmU1MzE5YmZkMjg1ZTg2OWJkZGY4Zjg4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9y
ZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACitUZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEgZmlsZSBjaG9vc2VyIGlzIHJlY292ZXJl
ZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQgbmF2aWdhdGluZyBiYWNrLgorUEFTUworICAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1m
aWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NDllNjk1MDFkZWI5ZTBmZGIzMDFmYmMxYmQ4Zjg4ZGZlZGYwYmMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNv
dmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CitUZXN0IHRoYXQgdGhlIHN0YXRl
IG9mIGEgZmlsZSBjaG9vc2VyIGlzIHJlY292ZXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQg
bmF2aWdhdGluZyBiYWNrLjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJTDogU2NyaXB0IGRpZCBu
b3QgcnVuPC9kaXY+CisKKzxmb3JtIGlkPSJmb3JtIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11
bHRpcGFydC9mb3JtLWRhdGEiPgorPGlucHV0IGlkPSJ0ZXh0LWlucHV0IiB0eXBlPSJ0ZXh0IiBu
YW1lPSJwb3N0ZWQtdGV4dCI+Cis8aW5wdXQgaWQ9ImZpbGUtaW5wdXQiIHR5cGU9ImZpbGUiIG5h
bWU9InBvc3RlZC1maWxlIj4KKzxpbnB1dCBpZD0ibXlzdWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFt
ZT0iU3VibWl0IiB2YWx1ZT0iU3VibWl0Ij4KKzwvZm9ybT4KKworPHNjcmlwdD4KKy8vIFN0cnVj
dHVyZSBvZiB0aGUgdGVzdDoKKy8vIFN0YXJ0IG9mIHRoZSB0ZXN0IChkb2N1bWVudC5sb2NhdGlv
bi5zZWFyY2ggPT0gIiIpCisvLyAtIEZpbGwgb3V0IGEgZm9ybS4KKy8vIC0gTmF2aWdhdGUgdG8g
YSBkaWZmZXJlbnQgbG9jYXRpb24uCisvLyBPbiB0aGUgZGlmZmVyZW50IHBhZ2UgKGRvY3VtZW50
LmxvY2F0aW9uLnNlYXJjaCA9PSAiP2RpZmZlcmVudHBhZ2UiKQorLy8gLSBOYXZpZ2F0ZSBiYWNr
LgorLy8gQmFjayBvbiB0aGUgb3JpZ2luYWwgcGFnZSAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNo
ID09ICIiICYmIHdpbmRvdy5uYW1lID09ICJ3ZW50YmFjayIpCisvLyAtIFBvc3QgdGhlIGZvcm0u
CisvLyAtIENoZWNrIHRoZSBwb3N0ZWQgZGF0YS4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9IGVsc2UgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiRkFJTDogTmVlZHMgdG8g
YmUgcnVuIHdpdGggRHVtcFJlbmRlclRyZWUiOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICAg
IGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAiIikg
eworICAgICAgICAvLyBTdGFydCBvZiB0aGUgdGVzdC4gU2V0IHRoZSB2YWx1ZXMgdG8gdGhlIGlu
cHV0IGVsZW1lbnRzLgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dC1pbnB1
dCIpLnZhbHVlID0gInRleHQgdG8gYmUgcG9zdGVkIjsKKyAgICAgICAgZXZlbnRTZW5kZXIuYmVn
aW5EcmFnV2l0aEZpbGVzKFsicmVzb3VyY2VzL3Rlc3QudHh0Il0pOworICAgICAgICBtb3ZlTW91
c2VUb0NlbnRlck9mRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1pbnB1dCIp
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAvLyBOYXZpZ2F0ZSBh
d2F5OyBkbyBpdCB3aXRoIGEgdGltZW91dCBzbyB0aGF0IGl0IHdpbGwgY3JlYXRlIGEgaGlzdG9y
eSBlbnRyeS4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtkb2N1bWVudC5sb2NhdGlv
biA9IGRvY3VtZW50LmxvY2F0aW9uICsgIj9kaWZmZXJlbnRwYWdlIjt9LCAwKTsKKyAgICB9IGVs
c2UgaWYgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiP2RpZmZlcmVudHBhZ2UiKSB7Cisg
ICAgICAgIC8vIFdlIGhhdmUgbmF2aWdhdGVkIHRvIGEgZGlmZmVyZW50IHBhZ2UuIE5vdyBuYXZp
Z2F0ZSBiYWNrLgorICAgICAgICB3aW5kb3cubmFtZSA9ICJ3ZW50YmFjayI7CisgICAgICAgIGhp
c3RvcnkuYmFjaygpOworICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09
ICIiICYmIHdpbmRvdy5uYW1lID09ICJ3ZW50YmFjayIpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSBu
YXZpZ2F0ZWQgYmFjay4gTm93IHN1Ym1pdCB0aGUgZm9ybS4KKyAgICAgICAgdmFyIHhociA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub3BlbigiUE9TVCIsICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL211bHRpcGFydC1wb3N0LWVjaG8u
cGhwIiwgZmFsc2UpOworICAgICAgICB4aHIuc2VuZChuZXcgRm9ybURhdGEoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImZvcm0iKSkpOworICAgICAgICB2YXIgZXhwZWN0ZWRSZXNwb25zZSA9ICJw
b3N0ZWQtdGV4dD10ZXh0IHRvIGJlIHBvc3RlZCZwb3N0ZWQtZmlsZT10ZXN0LnR4dDp0ZXh0L3Bs
YWluOkhlbGxvIjsKKyAgICAgICAgaWYgKHhoci5yZXNwb25zZVRleHQgPSBleHBlY3RlZFJlc3Bv
bnNlKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVy
SFRNTCA9ICJQQVNTIjsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgIH0KK30KKworZnVuY3Rpb24gbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZWxlbWVu
dCkgeworICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDI7CisgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjZW50ZXJY
LCBjZW50ZXJZKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvU2tpcHBlZAppbmRleCA4NWJiM2JhM2I0OTg2OTFiYjllMGI0NzZmZDk2ZWM5NTJhNTZmNWQw
Li4wNzU4MTViYTg3ODU5NGY2ZDk4NTIyZGJiODIzMDdiZGY3NWQzMWM2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvU2tpcHBlZApAQCAtMTM2NCw2ICsxMzY0LDcgQEAgZmFzdC9mb3Jtcy9maWxlL2lucHV0
LWZpbGUtcmUtcmVuZGVyLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3Qt
bW9kaWZpZWQuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9maWxlYXBpL3NlbmQtZHJhZ2dlZC1maWxl
Lmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvZm9ybS1kYXRhLXdpdGgtdW5rbm93bi1m
aWxlLWV4dGVuc2lvbi5odG1sCitodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmls
ZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEv
c2VuZC1mb3JtLWRhdGEtY29uc3RydWN0ZWQtZnJvbS1mb3JtLmh0bWwKIGh0dHAvdGVzdHMvbG9j
YWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEtd2l0aC1zbGljZWQtZmlsZS5odG1sCiBodHRwL3Rl
c3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130593</attachid>
            <date>2012-03-07 03:58:46 -0800</date>
            <delta_ts>2012-03-07 04:13:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80145-20120307125844.patch</filename>
            <type>text/plain</type>
            <size>14417</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uYjU5NzYxYWUyZjFjZDBiMzdlY2I2MDMyNjYyMTg1
NWIwOWVmMTc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA3ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBzYXZpbmcg
YW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxvYWQgZWxlbWVudHMgaW4gdW5zdWJt
aXR0ZWQgZm9ybXMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9y
ZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCisKKyAgICAgICAgKiBodG1s
L0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6c2F2
ZUZvcm1Db250cm9sU3RhdGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRGaWxlcyk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRU
eXBlLmg6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0Rmls
ZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
Lmg6CisgICAgICAgIChIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0lucHV0VHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldEZpbGVzKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5
cGUpOgorCiAyMDEyLTAzLTAyICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbY2hyb21pdW1dIEZpeCBlcnJvcnMgaW4gTGF5ZXJSZW5kZXJlckNocm9taXVtIGNs
ZWFudXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3Bw
CmluZGV4IDk2ZGYzZjJmNTA2ZTU0ZTU0MzFmZTU1NjFlMzIyZDBjYWI1OTk2OWMuLmY1NzhhY2Jl
N2Q3Y2FjZmQyNTQ3ZmI1NmI0NmJmYTZjNDY4N2MzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcApAQCAtNDgsNyArNDgsNyBAQCBib29sIEJh
c2VDaGVja2FibGVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEJhc2VDaGVja2FibGVJbnB1dFR5
cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYgc3RhdGUpIGNvbnN0Cit2
b2lkIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0
IFN0cmluZyYgc3RhdGUpCiB7CiAgICAgZWxlbWVudCgpLT5zZXRDaGVja2VkKHN0YXRlID09ICJv
biIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaApp
bmRleCA0MjExYWQ1MjFiNWRkMDc4Y2I4MDcyMDQwNjZkZDIxZmVjZDFmMGY2Li44NjBkNmZkOTAz
Njg4ZmUxMmVmOGMxMzM1Zjk4MmQ4ZjM3NGE5OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaApAQCAtNDMsNyArNDMsNyBAQCBwcm90ZWN0ZWQ6CiAK
IHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYp
IGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9y
ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlwcmVzc0V2ZW50KEtleWJvYXJkRXZlbnQqKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdCBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDc0YjFkN2ZhMmRkOTZh
OTAzYWNiOGY0YjgyODkzNDFiOGRiOTI4MzguLjljYjM5YjY2N2Q5NzQxZmZiYWE2MGY0MjcxMDEz
OWE4N2Y5YjA2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcApAQCAtOTks
NiArOTksMjYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGaWxlSW5wdXRUeXBlOjpmb3JtQ29udHJv
bFR5cGUoKSBjb25zdAogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6ZmlsZSgpOwogfQogCiti
b29sIEZpbGVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBj
b25zdAoreworICAgIGlmIChtX2ZpbGVMaXN0LT5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXN1bHQgPSBTdHJpbmcoKTsKKyAgICB1bnNpZ25lZCBudW1GaWxlcyA9IG1f
ZmlsZUxpc3QtPmxlbmd0aCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1GaWxl
czsgKytpKSB7CisgICAgICAgIHJlc3VsdC5hcHBlbmQobV9maWxlTGlzdC0+aXRlbShpKS0+cGF0
aCgpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgnXDAnKTsKKyAgICB9CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgRmlsZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29u
c3QgU3RyaW5nJiBzdGF0ZSkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiBmaWxlczsKKyAgICBzdGF0
ZS5zcGxpdCgnXDAnLCBmaWxlcyk7CisgICAgZmlsZXNDaG9zZW4oZmlsZXMpOworfQorCiBib29s
IEZpbGVJbnB1dFR5cGU6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2RpbmcsIGJv
b2wgbXVsdGlwYXJ0KSBjb25zdAogewogICAgIEZpbGVMaXN0KiBmaWxlTGlzdCA9IGVsZW1lbnQo
KS0+ZmlsZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggYzI2ZTFmZTA5
MjZmNWEyYjZkNTMzYTM3OWY0MDhjNDNiMDNlMTI2MS4uMDBkMzYyYmRhOTA1ODg1NzM3NmFlMTVk
NWMyOWM4YjZhMjc5Y2M3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTQ4
LDYgKzQ4LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBGaWxlSW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0
YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9y
bUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3QgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDRlMTIxNzMwZWQ2NjNmNzZh
YmQ0MDY2MjkxOWY3MzE3NWNiNWQ2ZTMuLmMxMTllNGZiY2U3OTE0MWViZjM0OGFiYjZhMmE0OTZj
ODU5MDdkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yMDUs
NiArMjA1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXV0b2ZpbGxlZChib29sID0gdHJ1ZSk7
CiAKICAgICBGaWxlTGlzdCogZmlsZXMoKTsKKwogICAgIHZvaWQgcmVjZWl2ZURyb3BwZWRGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogICAgIEljb24qIGljb24oKSBjb25zdDsKICAgICAv
LyBUaGVzZSBmdW5jdGlvbnMgYXJlIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgaW5wdXQgYWN0aXZl
IGR1cmluZyBhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKaW5kZXggOTUx
YjZkODI2NDRhYTZjMGEzOWJmYjRmOWQ0ZTg1NjEwN2Q4ZjVkOS4uNGVmYjhkNjBmOGZkNTVlMGFm
NDZhZmIyYzc2OGUzNGIyZDQyMzY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
aWRkZW5JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmNwcApAQCAtNTcsNyArNTcsNyBAQCBib29sIEhpZGRlbklucHV0VHlwZTo6c2F2ZUZvcm1D
b250cm9sU3RhdGUoU3RyaW5nJiByZXN1bHQpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgSGlkZGVuSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJp
bmcmIHN0cmluZykgY29uc3QKK3ZvaWQgSGlkZGVuSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRy
b2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBlbGVtZW50KCktPnNldEF0dHJp
YnV0ZSh2YWx1ZUF0dHIsIHN0cmluZyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hpZGRlbklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5
cGUuaAppbmRleCA5ZTg5ODJjNTQzNjE2YTFjMDMxZmViMjQzNjQ4NDRmNTE3NmUzZTU5Li40MGFm
N2Q3NWZhNzhmYzI4NGJiMzZhY2JiYjg3Njk5YzcwM2E0MmJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SGlkZGVuSW5wdXRUeXBlLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICBIaWRkZW5J
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkg
eyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJp
bmcmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJl
c3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSop
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBz
ZW5kTW91c2VFdmVudHMpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4
IGYyYzFjNWFjNWYzNzVlZTRkYjAyNzBiMzRmYTdlMzkzZjZjZGIxMDUuLjEzNjYzODI5MjVhNjNj
NDRlNGU1MzM2YjI2NzA3YjJlOWRlMGQwYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
QEAgLTE2MCw3ICsxNjAsNyBAQCBib29sIElucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUo
U3RyaW5nJiByZXN1bHQpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSW5wdXRU
eXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKSBjb25zdAor
dm9pZCBJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYgc3Rh
dGUpCiB7CiAgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuaAppbmRleCA2YjBmOWMxNWFmMmRmODIzZDg1NTJkMjU4Yjk5NGI3YmQxYTBjNjQzLi4w
NGI1ODBjYjg0ZjRjNzA0NGMxMDQ4Yzc2NmQ3NzcyODBmOGYzMGFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gRm9ybSB2YWx1ZSBm
dW5jdGlvbnMKIAogICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcm
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3Qg
U3RyaW5nJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRl
KGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBpc0Zvcm1EYXRhQXBwZW5kYWJsZSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBi
b29sIG11bHRpcGFydCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGFzc3dvcmRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0
VHlwZS5jcHAKaW5kZXggYzExZDNjNjNkYzRjNTc5NmE2ZDQxNmFkNjM2YTI5OWQ4OTk4NmM4NS4u
ODhiYjg0MmI2MzE0YTI1MGZjNDljMGI4M2JiM2RkMjU5YTBiMjdjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgYm9vbCBQYXNz
d29yZElucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUGFzc3dvcmRJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNvbnN0Cit2b2lkIFBhc3N3b3JkSW5wdXRUeXBlOjpy
ZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKQogewogICAgIC8vIFNob3VsZCBu
ZXZlciBzYXZlL3Jlc3RvcmUgcGFzc3dvcmQgZmllbGRzLgogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCmluZGV4IDEwNjgwYWNi
MmVjMTg5ODkwOWE1Y2Y4NjEzMmNlNzM3MGE1Y2ExZjkuLjUyNjdkZGU2MzYzYmU4ZjEzODI0YjBl
YThlZTRmNDlkNmUwMTllNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dv
cmRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBl
LmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJpdmF0ZToKICAgICBQYXNzd29yZElucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikg
Y29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRl
KGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkUmVzZXRPbkRvY3VtZW50QWN0aXZhdGlvbigpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMw
OGJkZWJlYWU5NGEwMjMzNWFmMjdkMWFiYjM2MGZhZDI5NTE5ODYuLjc2ZjI2Mjk4MWY1MjY2OTU0
MTY2OTgyOTBkOGQyOWM0N2M5NzRiMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMy0w
NyAgTWFyamEgSMO2bHR0w6QgIDxtYXJqYUBnb29nbGUuY29tPgorCisgICAgICAgIEZpbGVJbnB1
dFR5cGUgZG9lc24ndCBzdXBwb3J0IChzYXZlfHJlc3RvcmUpRm9ybUNvbnRyb2xTdGF0ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAxNDUKKworICAg
ICAgICBUZXN0cyBmb3Igc2F2aW5nIGFuZCByZXN0b3JpbmcgdGhlIHN0YXRlIG9mIGZpbGUgdXBs
b2FkIGVsZW1lbnRzIGluIHVuc3VibWl0dGVkIGZvcm1zLgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9y
ZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWlu
LXVucG9zdGVkLWZvcm0uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2syL1NraXBw
ZWQ6IFRoZSBhZGRlZCB0ZXN0cyBuZWVkcyBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMK
KwogMjAxMi0wMy0wMiAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIHJlZmxlY3Rpb24gY29tcHV0ZWQgc3R5bGUgdGVzdCBmb3IgQ1NTMyBjYWxjCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXIt
ZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZv
cm0tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmZTMzNThiYjViOTczOTVmZTUzMTliZmQyODVl
ODY5YmRkZjhmODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3QgdGhhdCB0aGUgc3RhdGUgb2YgYSBmaWxlIGNob29z
ZXIgaXMgcmVjb3ZlcmVkIHdoZW4gbmF2aWdhdGluZyBhd2F5IGFuZCBuYXZpZ2F0aW5nIGJhY2su
CitQQVNTCisgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3Jt
ZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0
ZWQtZm9ybS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0OWU2OTUwMWRlYjllMGZkYjMwMWZiYzFiZDhmODhk
ZmVkZjBiYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2Fs
L2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLmh0bWwKQEAgLTAs
MCArMSw2NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KK1Rlc3Qg
dGhhdCB0aGUgc3RhdGUgb2YgYSBmaWxlIGNob29zZXIgaXMgcmVjb3ZlcmVkIHdoZW4gbmF2aWdh
dGluZyBhd2F5IGFuZCBuYXZpZ2F0aW5nIGJhY2suPC9wPgorPGRpdiBpZD0icmVzdWx0Ij5GQUlM
OiBTY3JpcHQgZGlkIG5vdCBydW48L2Rpdj4KKworPGZvcm0gaWQ9ImZvcm0iIG1ldGhvZD0icG9z
dCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+Cis8aW5wdXQgaWQ9InRleHQtaW5wdXQi
IHR5cGU9InRleHQiIG5hbWU9InBvc3RlZC10ZXh0Ij4KKzxpbnB1dCBpZD0iZmlsZS1pbnB1dCIg
dHlwZT0iZmlsZSIgbmFtZT0icG9zdGVkLWZpbGUiPgorPGlucHV0IGlkPSJteXN1Ym1pdCIgdHlw
ZT0ic3VibWl0IiBuYW1lPSJTdWJtaXQiIHZhbHVlPSJTdWJtaXQiPgorPC9mb3JtPgorCis8c2Ny
aXB0PgorLy8gU3RydWN0dXJlIG9mIHRoZSB0ZXN0OgorLy8gU3RhcnQgb2YgdGhlIHRlc3QgKGRv
Y3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIikKKy8vIC0gRmlsbCBvdXQgYSBmb3JtLgorLy8g
LSBOYXZpZ2F0ZSB0byBhIGRpZmZlcmVudCBsb2NhdGlvbi4KKy8vIE9uIHRoZSBkaWZmZXJlbnQg
cGFnZSAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICI/ZGlmZmVyZW50cGFnZSIpCisvLyAt
IE5hdmlnYXRlIGJhY2suCisvLyBCYWNrIG9uIHRoZSBvcmlnaW5hbCBwYWdlIChkb2N1bWVudC5s
b2NhdGlvbi5zZWFyY2ggPT0gIiIgJiYgd2luZG93Lm5hbWUgPT0gIndlbnRiYWNrIikKKy8vIC0g
UG9zdCB0aGUgZm9ybS4KKy8vIC0gQ2hlY2sgdGhlIHBvc3RlZCBkYXRhLgorCitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30gZWxz
ZSB7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJG
QUlMOiBOZWVkcyB0byBiZSBydW4gd2l0aCBEdW1wUmVuZGVyVHJlZSI7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAg
IHJldHVybjsKKyAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICIiICYmIHdpbmRv
dy5uYW1lID09ICIiKSB7CisgICAgICAgIC8vIFN0YXJ0IG9mIHRoZSB0ZXN0LiBTZXQgdGhlIHZh
bHVlcyB0byB0aGUgaW5wdXQgZWxlbWVudHMuCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXh0LWlucHV0IikudmFsdWUgPSAidGV4dCB0byBiZSBwb3N0ZWQiOworICAgICAgICBl
dmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWyJyZXNvdXJjZXMvdGVzdC50eHQiXSk7Cisg
ICAgICAgIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJmaWxlLWlucHV0IikpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAg
IC8vIE5hdmlnYXRlIGF3YXk7IGRvIGl0IHdpdGggYSB0aW1lb3V0IHNvIHRoYXQgaXQgd2lsbCBj
cmVhdGUgYSBoaXN0b3J5IGVudHJ5LgorICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge2Rv
Y3VtZW50LmxvY2F0aW9uID0gZG9jdW1lbnQubG9jYXRpb24gKyAiP2RpZmZlcmVudHBhZ2UiO30s
IDApOworICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICI/ZGlmZmVy
ZW50cGFnZSIpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSBuYXZpZ2F0ZWQgdG8gYSBkaWZmZXJlbnQg
cGFnZS4gTm93IG5hdmlnYXRlIGJhY2suCisgICAgICAgIHdpbmRvdy5uYW1lID0gIndlbnRiYWNr
IjsKKyAgICAgICAgaGlzdG9yeS5iYWNrKCk7CisgICAgfSBlbHNlIGlmIChkb2N1bWVudC5sb2Nh
dGlvbi5zZWFyY2ggPT0gIiIgJiYgd2luZG93Lm5hbWUgPT0gIndlbnRiYWNrIikgeworICAgICAg
ICAvLyBXZSBoYXZlIG5hdmlnYXRlZCBiYWNrLiBOb3cgc3VibWl0IHRoZSBmb3JtLgorICAgICAg
ICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIHhoci5vcGVuKCJQT1NU
IiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvbXVsdGlw
YXJ0LXBvc3QtZWNoby5waHAiLCBmYWxzZSk7CisgICAgICAgIHhoci5zZW5kKG5ldyBGb3JtRGF0
YShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybSIpKSk7CisgICAgICAgIHZhciBleHBlY3Rl
ZFJlc3BvbnNlID0gInBvc3RlZC10ZXh0PXRleHQgdG8gYmUgcG9zdGVkJnBvc3RlZC1maWxlPXRl
c3QudHh0OnRleHQvcGxhaW46SGVsbG8iOworICAgICAgICBpZiAoeGhyLnJlc3BvbnNlVGV4dCA9
IGV4cGVjdGVkUmVzcG9uc2UpCisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzdWx0IikuaW5uZXJIVE1MID0gIlBBU1MiOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBtb3ZlTW91c2VUb0NlbnRlck9m
RWxlbWVudChlbGVtZW50KSB7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQg
KyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zm
c2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKGNlbnRlclgsIGNlbnRlclkpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCmluZGV4IDg1YmIzYmEzYjQ5ODY5MWJiOWUwYjQ3NmZk
OTZlYzk1MmE1NmY1ZDAuLjA3NTgxNWJhODc4NTk0ZjZkOTg1MjJkYmI4MjMwN2JkZjc1ZDMxYzYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCkBAIC0xMzY0LDYgKzEzNjQsNyBAQCBmYXN0L2Zv
cm1zL2ZpbGUvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9maWxl
YXBpL2ZpbGUtbGFzdC1tb2RpZmllZC5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2Vu
ZC1kcmFnZ2VkLWZpbGUuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9mb3JtLWRhdGEt
d2l0aC11bmtub3duLWZpbGUtZXh0ZW5zaW9uLmh0bWwKK2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRh
dGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbAogaHR0cC90ZXN0cy9s
b2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25zdHJ1Y3RlZC1mcm9tLWZvcm0uaHRtbAog
aHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS13aXRoLXNsaWNlZC1maWxl
Lmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130596</attachid>
            <date>2012-03-07 04:13:46 -0800</date>
            <delta_ts>2012-03-07 04:19:59 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-80145-20120307131344.patch</filename>
            <type>text/plain</type>
            <size>14092</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uOWI1M2QwZmI3MjQ4OTM0NWE1NmI0OTYzYWU2MTMw
NmVkODJjOTNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAzLTA3ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbG9j
YWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbAorCisg
ICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKToKKyAg
ICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEJhc2VDaGVj
a2FibGVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnJlc3RvcmVG
b3JtQ29udHJvbFN0YXRlKToKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKyAgICAg
ICAgKEZpbGVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhpZGRlbklucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUpOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAgIChIaWRkZW5J
bnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOgorICAgICAgICAqIGh0bWwv
SW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvUGFzc3dv
cmRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OnJl
c3RvcmVGb3JtQ29udHJvbFN0YXRlKToKKyAgICAgICAgKiBodG1sL1Bhc3N3b3JkSW5wdXRUeXBl
Lmg6CisgICAgICAgIChQYXNzd29yZElucHV0VHlwZSk6CisKIDIwMTItMDMtMDIgIEtlbm5ldGgg
UnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRml4IGVycm9y
cyBpbiBMYXllclJlbmRlcmVyQ2hyb21pdW0gY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKaW5kZXggOTZkZjNmMmY1MDZlNTRlNTQzMWZl
NTU2MWUzMjJkMGNhYjU5OTY5Yy4uZjU3OGFjYmU3ZDdjYWNmZDI1NDdmYjU2YjQ2YmZhNmM0Njg3
YzM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
Y3BwCkBAIC00OCw3ICs0OCw3IEBAIGJvb2wgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2F2ZUZv
cm1Db250cm9sU3RhdGUoU3RyaW5nJiByZXN1bHQpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUo
Y29uc3QgU3RyaW5nJiBzdGF0ZSkgY29uc3QKK3ZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKIHsKICAgICBlbGVt
ZW50KCktPnNldENoZWNrZWQoc3RhdGUgPT0gIm9uIik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oCmluZGV4IDQyMTFhZDUyMWI1ZGQwNzhjYjgwNzIw
NDA2NmRkMjFmZWNkMWYwZjYuLjg2MGQ2ZmQ5MDM2ODhmZTEyZWY4YzEzMzVmOTgyZDhmMzc0YTk4
ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oCkBA
IC00Myw3ICs0Myw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
c2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJp
bmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFM
aXN0JiwgYm9vbCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleXBy
ZXNzRXZlbnQoS2V5Ym9hcmRFdmVudCopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBjYW5T
ZXRTdHJpbmdWYWx1ZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAKaW5kZXggNzRiMWQ3ZmEyZGQ5NmE5MDNhY2I4ZjRiODI4OTM0MWI4ZGI5MjgzOC4u
OWNiMzliNjY3ZDk3NDFmZmJhYTYwZjQyNzEwMTM5YTg3ZjliMDZiZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC05OSw2ICs5OSwyNiBAQCBjb25zdCBBdG9taWNTdHJp
bmcmIEZpbGVJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIElu
cHV0VHlwZU5hbWVzOjpmaWxlKCk7CiB9CiAKK2Jvb2wgRmlsZUlucHV0VHlwZTo6c2F2ZUZvcm1D
b250cm9sU3RhdGUoU3RyaW5nJiByZXN1bHQpIGNvbnN0Cit7CisgICAgaWYgKG1fZmlsZUxpc3Qt
PmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJlc3VsdCA9IFN0cmluZygp
OworICAgIHVuc2lnbmVkIG51bUZpbGVzID0gbV9maWxlTGlzdC0+bGVuZ3RoKCk7CisgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUZpbGVzOyArK2kpIHsKKyAgICAgICAgcmVzdWx0LmFw
cGVuZChtX2ZpbGVMaXN0LT5pdGVtKGkpLT5wYXRoKCkpOworICAgICAgICByZXN1bHQuYXBwZW5k
KCdcMCcpOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBGaWxlSW5wdXRUeXBl
OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQoreworICAgIFZl
Y3RvcjxTdHJpbmc+IGZpbGVzOworICAgIHN0YXRlLnNwbGl0KCdcMCcsIGZpbGVzKTsKKyAgICBm
aWxlc0Nob3NlbihmaWxlcyk7Cit9CisKIGJvb2wgRmlsZUlucHV0VHlwZTo6YXBwZW5kRm9ybURh
dGEoRm9ybURhdGFMaXN0JiBlbmNvZGluZywgYm9vbCBtdWx0aXBhcnQpIGNvbnN0CiB7CiAgICAg
RmlsZUxpc3QqIGZpbGVMaXN0ID0gZWxlbWVudCgpLT5maWxlcygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zp
bGVJbnB1dFR5cGUuaAppbmRleCBjMjZlMWZlMDkyNmY1YTJiNmQ1MzNhMzc5ZjQwOGM0M2IwM2Ux
MjYxLi4wMGQzNjJiZGE5MDU4ODU3Mzc2YWUxNWQ1YzI5YzhiNmEyNzljYzc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApAQCAtNDgsNiArNDgsOCBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIEZpbGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCopOwogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3Qm
LCBib29sKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKGNv
bnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlTWlz
c2luZ1RleHQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSGlkZGVuSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRU
eXBlLmNwcAppbmRleCA5NTFiNmQ4MjY0NGFhNmMwYTM5YmZiNGY5ZDRlODU2MTA3ZDhmNWQ5Li40
ZWZiOGQ2MGY4ZmQ1NWUwYWY0NmFmYjJjNzY4ZTM0YjJkNDIzNjgwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgSGlkZGVuSW5w
dXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIaWRkZW5JbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJv
bFN0YXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKSBjb25zdAordm9pZCBIaWRkZW5JbnB1dFR5cGU6
OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIGVs
ZW1lbnQoKS0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgc3RyaW5nKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hpZGRlbklucHV0VHlwZS5oCmluZGV4IDllODk4MmM1NDM2MTZhMWMwMzFmZWIyNDM2NDg0
NGY1MTc2ZTNlNTkuLjQwYWY3ZDc1ZmE3OGZjMjg0YmIzNmFjYmJiODc2OTljNzAzYTQyYmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaApAQCAtNDMsNyArNDMsNyBAQCBwcml2
YXRlOgogICAgIEhpZGRlbklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IElu
cHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNhdmVGb3Jt
Q29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBy
ZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKaW5kZXggZjJjMWM1YWM1ZjM3NWVlNGRiMDI3MGIzNGZhN2UzOTNmNmNkYjEw
NS4uMTM2NjM4MjkyNWE2M2M0NGU0ZTUzMzZiMjY3MDdiMmU5ZGUwZDBjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcApAQCAtMTYwLDcgKzE2MCw3IEBAIGJvb2wgSW5wdXRUeXBlOjpzYXZl
Rm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmlu
ZyYgc3RhdGUpIGNvbnN0Cit2b2lkIElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUo
Y29uc3QgU3RyaW5nJiBzdGF0ZSkKIHsKICAgICBlbGVtZW50KCktPnNldFZhbHVlKHN0YXRlKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDZiMGY5YzE1YWYyZGY4MjNkODU1MmQyNThi
OTk0YjdiZDFhMGM2NDMuLjA0YjU4MGNiODRmNGM3MDQ0YzEwNDhjNzY2ZDc3NzI4MGY4ZjMwYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICAg
ICAvLyBGb3JtIHZhbHVlIGZ1bmN0aW9ucwogCiAgICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29u
dHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNv
bnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9y
ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGlzRm9y
bURhdGFBcHBlbmRhYmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRh
KEZvcm1EYXRhTGlzdCYsIGJvb2wgbXVsdGlwYXJ0KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcAppbmRleCBjMTFkM2M2M2RjNGM1Nzk2YTZkNDE2YWQ2
MzZhMjk5ZDg5OTg2Yzg1Li44OGJiODQyYjYzMTRhMjUwZmM0OWMwYjgzYmIzZGQyNTlhMGIyN2Mx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcApAQCAtNTQsNyAr
NTQsNyBAQCBib29sIFBhc3N3b3JkSW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJp
bmcmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBQYXNzd29yZElucHV0VHlw
ZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJikgY29uc3QKK3ZvaWQgUGFz
c3dvcmRJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpCiB7
CiAgICAgLy8gU2hvdWxkIG5ldmVyIHNhdmUvcmVzdG9yZSBwYXNzd29yZCBmaWVsZHMuCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bh
c3N3b3JkSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBl
LmgKaW5kZXggMTA2ODBhY2IyZWMxODk4OTA5YTVjZjg2MTMyY2U3MzcwYTVjYTFmOS4uNTI2N2Rk
ZTYzNjNiZThmMTM4MjRiMGVhOGVlNGY0OWQ2ZTAxOWU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGFzc3dvcmRJbnB1dFR5cGUuaApAQCAtNDMsNyArNDMsNyBAQCBwcml2YXRlOgogICAgIFBhc3N3
b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5
cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250
cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRy
b2xTdGF0ZShTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9y
ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNldE9uRG9jdW1lbnRBY3RpdmF0aW9uKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMzA4YmRlYmVhZTk0YTAyMzM1YWYyN2QxYWJiMzYwZmFkMjk1MTk4Ni4u
MzMyOTgyOGQ1OWY0ODc1ZmM5MTEwOTk4ZjNlYTU4MjlhNGVmZDE0ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEyLTAzLTA3ICBNYXJqYSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisK
KyAgICAgICAgRmlsZUlucHV0VHlwZSBkb2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3Jt
Q29udHJvbFN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDE0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzIGZvciBzYXZpbmcgYW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxv
YWQgZWxlbWVudHMgaW4gdW5zdWJtaXR0ZWQgZm9ybXMuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNv
dmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS93azIvU2tpcHBlZDogVGhlIGFkZGVkIHRlc3QgbmVlZHMgZXZlbnRTZW5kZXIuYmVn
aW5EcmFnV2l0aEZpbGVzLgorCiAyMDEyLTAzLTAyICBNaWtlIExhd3RoZXIgIDxtaWtlbGF3dGhl
ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgcmVmbGVjdGlvbiBjb21wdXRlZCBzdHlsZSB0ZXN0
IGZvciBDU1MzIGNhbGMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
Zm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5w
dXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZlMzM1OGJiNWI5
NzM5NWZlNTMxOWJmZDI4NWU4NjliZGRmOGY4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9z
dGVkLWZvcm0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdCB0aGF0IHRoZSBzdGF0
ZSBvZiBhIGZpbGUgY2hvb3NlciBpcyByZWNvdmVyZWQgd2hlbiBuYXZpZ2F0aW5nIGF3YXkgYW5k
IG5hdmlnYXRpbmcgYmFjay4KK1BBU1MKKyAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3Jt
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmls
ZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ5ZTY5NTAxZGViOWUw
ZmRiMzAxZmJjMWJkOGY4OGRmZWRmMGJjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVk
LWZvcm0uaHRtbApAQCAtMCwwICsxLDY1IEBACis8aHRtbD4KKzxoZWFkPgorPGJvZHkgb25sb2Fk
PSJ0ZXN0KCkiPgorVGVzdCB0aGF0IHRoZSBzdGF0ZSBvZiBhIGZpbGUgY2hvb3NlciBpcyByZWNv
dmVyZWQgd2hlbiBuYXZpZ2F0aW5nIGF3YXkgYW5kIG5hdmlnYXRpbmcgYmFjay48L3A+Cis8ZGl2
IGlkPSJyZXN1bHQiPkZBSUw6IFNjcmlwdCBkaWQgbm90IHJ1bjwvZGl2PgorCis8Zm9ybSBpZD0i
Zm9ybSIgbWV0aG9kPSJwb3N0IiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj4KKzxpbnB1
dCBpZD0idGV4dC1pbnB1dCIgdHlwZT0idGV4dCIgbmFtZT0icG9zdGVkLXRleHQiPgorPGlucHV0
IGlkPSJmaWxlLWlucHV0IiB0eXBlPSJmaWxlIiBuYW1lPSJwb3N0ZWQtZmlsZSI+Cis8aW5wdXQg
aWQ9Im15c3VibWl0IiB0eXBlPSJzdWJtaXQiIG5hbWU9IlN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCI+
Cis8L2Zvcm0+CisKKzxzY3JpcHQ+CisvLyBTdHJ1Y3R1cmUgb2YgdGhlIHRlc3Q6CisvLyBTdGFy
dCBvZiB0aGUgdGVzdCAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICIiKQorLy8gLSBGaWxs
IG91dCBhIGZvcm0uCisvLyAtIE5hdmlnYXRlIHRvIGEgZGlmZmVyZW50IGxvY2F0aW9uLgorLy8g
T24gdGhlIGRpZmZlcmVudCBwYWdlIChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIj9kaWZm
ZXJlbnRwYWdlIikKKy8vIC0gTmF2aWdhdGUgYmFjay4KKy8vIEJhY2sgb24gdGhlIG9yaWdpbmFs
IHBhZ2UgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAi
d2VudGJhY2siKQorLy8gLSBQb3N0IHRoZSBmb3JtLgorLy8gLSBDaGVjayB0aGUgcG9zdGVkIGRh
dGEuCisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworfSBlbHNlIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0
IikuaW5uZXJIVE1MID0gIkZBSUw6IE5lZWRzIHRvIGJlIHJ1biB3aXRoIER1bXBSZW5kZXJUcmVl
IjsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5zZWFy
Y2ggPT0gIiIgJiYgd2luZG93Lm5hbWUgPT0gIiIpIHsKKyAgICAgICAgLy8gU3RhcnQgb2YgdGhl
IHRlc3QuIFNldCB0aGUgdmFsdWVzIHRvIHRoZSBpbnB1dCBlbGVtZW50cy4KKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQtaW5wdXQiKS52YWx1ZSA9ICJ0ZXh0IHRvIGJlIHBv
c3RlZCI7CisgICAgICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbInJlc291cmNl
cy90ZXN0LnR4dCJdKTsKKyAgICAgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtaW5wdXQiKSk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKKyAgICAgICAgLy8gTmF2aWdhdGUgYXdheTsgZG8gaXQgd2l0aCBhIHRpbWVvdXQg
c28gdGhhdCBpdCB3aWxsIGNyZWF0ZSBhIGhpc3RvcnkgZW50cnkuCisgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7ZG9jdW1lbnQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbiArICI/
ZGlmZmVyZW50cGFnZSI7fSwgMCk7CisgICAgfSBlbHNlIGlmIChkb2N1bWVudC5sb2NhdGlvbi5z
ZWFyY2ggPT0gIj9kaWZmZXJlbnRwYWdlIikgeworICAgICAgICAvLyBXZSBoYXZlIG5hdmlnYXRl
ZCB0byBhIGRpZmZlcmVudCBwYWdlLiBOb3cgbmF2aWdhdGUgYmFjay4KKyAgICAgICAgd2luZG93
Lm5hbWUgPSAid2VudGJhY2siOworICAgICAgICBoaXN0b3J5LmJhY2soKTsKKyAgICB9IGVsc2Ug
aWYgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAid2Vu
dGJhY2siKSB7CisgICAgICAgIC8vIFdlIGhhdmUgbmF2aWdhdGVkIGJhY2suIE5vdyBzdWJtaXQg
dGhlIGZvcm0uCisgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAg
ICAgeGhyLm9wZW4oIlBPU1QiLCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9tdWx0aXBhcnQtcG9zdC1lY2hvLnBocCIsIGZhbHNlKTsKKyAgICAgICAgeGhy
LnNlbmQobmV3IEZvcm1EYXRhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb3JtIikpKTsKKyAg
ICAgICAgdmFyIGV4cGVjdGVkUmVzcG9uc2UgPSAicG9zdGVkLXRleHQ9dGV4dCB0byBiZSBwb3N0
ZWQmcG9zdGVkLWZpbGU9dGVzdC50eHQ6dGV4dC9wbGFpbjpIZWxsbyI7CisgICAgICAgIGlmICh4
aHIucmVzcG9uc2VUZXh0ID0gZXhwZWN0ZWRSZXNwb25zZSkKKyAgICAgICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG1v
dmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGVsZW1lbnQpIHsKKyAgICB2YXIgY2VudGVyWCA9IGVs
ZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50
ZXJZID0gZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oY2VudGVyWCwgY2VudGVyWSk7Cit9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggODViYjNiYTNi
NDk4NjkxYmI5ZTBiNDc2ZmQ5NmVjOTUyYTU2ZjVkMC4uMDc1ODE1YmE4Nzg1OTRmNmQ5ODUyMmRi
YjgyMzA3YmRmNzVkMzFjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTEzNjQsNiAr
MTM2NCw3IEBAIGZhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sCiBodHRw
L3Rlc3RzL2xvY2FsL2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwKIGh0dHAvdGVzdHMv
bG9jYWwvZmlsZWFwaS9zZW5kLWRyYWdnZWQtZmlsZS5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2Zv
cm1kYXRhL2Zvcm0tZGF0YS13aXRoLXVua25vd24tZmlsZS1leHRlbnNpb24uaHRtbAoraHR0cC90
ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5o
dG1sCiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLWNvbnN0cnVjdGVk
LWZyb20tZm9ybS5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRh
LXdpdGgtc2xpY2VkLWZpbGUuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZv
cm0tZGF0YS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130597</attachid>
            <date>2012-03-07 04:20:13 -0800</date>
            <delta_ts>2012-03-07 04:48:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80145-20120307132011.patch</filename>
            <type>text/plain</type>
            <size>14451</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uZGQwMTY3YzM5ZWUzMGUzMjRjNTM0ZWYzMDg2Njk1
ZjE3MmFlOTRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTA3ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBzYXZpbmcg
YW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxvYWQgZWxlbWVudHMgaW4KKyAgICAg
ICAgdW5zdWJtaXR0ZWQgZm9ybXMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9sb2NhbC9m
b3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCisKKyAgICAg
ICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOiBub24tY29u
c3QKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEJh
c2VDaGVja2FibGVJbnB1dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBzYXZlIGNob3NlbiBmaWxlcworICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZSk6IHJlc3RvcmUgY2hvc2VuIGZpbGVzCisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmg6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKTogcmVzdG9yZUZvcm1Db250
cm9sU3RhdGUgbm9uLWNvbnN0CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZSk6IG5vbi1jb25zdAorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAg
IChIaWRkZW5JbnB1dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKyAg
ICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6
OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogbm9uLWNvbnN0CisgICAgICAgICogaHRtbC9JbnB1
dFR5cGUuaDoKKyAgICAgICAgKElucHV0VHlwZSk6IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlIG5v
bi1jb25zdAorICAgICAgICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogbm9u
LWNvbnN0CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5oOgorICAgICAgICAoUGFz
c3dvcmRJbnB1dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKwogMjAx
Mi0wMy0wMiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2No
cm9taXVtXSBGaXggZXJyb3JzIGluIExheWVyUmVuZGVyZXJDaHJvbWl1bSBjbGVhbnVwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCA5NmRm
M2YyZjUwNmU1NGU1NDMxZmU1NTYxZTMyMmQwY2FiNTk5NjljLi5mNTc4YWNiZTdkN2NhY2ZkMjU0
N2ZiNTZiNDZiZmE2YzQ2ODdjMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgYm9vbCBCYXNlQ2hlY2thYmxl
SW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKSBjb25zdAordm9pZCBCYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0
YXRlKQogewogICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZChzdGF0ZSA9PSAib24iKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggNDIxMWFk
NTIxYjVkZDA3OGNiODA3MjA0MDY2ZGQyMWZlY2QxZjBmNi4uODYwZDZmZDkwMzY4OGZlMTJlZjhj
MTMzNWY5ODJkOGYzNzRhOThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2th
YmxlSW5wdXRUeXBlLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3Ry
aW5nJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJv
bFN0YXRlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRG
b3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCA3NGIxZDdmYTJkZDk2YTkwM2FjYjhmNGI4
Mjg5MzQxYjhkYjkyODM4Li45Y2IzOWI2NjdkOTc0MWZmYmFhNjBmNDI3MTAxMzlhODdmOWIwNmJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTk5LDYgKzk5LDI2IEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgRmlsZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmZpbGUoKTsKIH0KIAorYm9vbCBGaWxlSW5w
dXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKK3sKKyAg
ICBpZiAobV9maWxlTGlzdC0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmVzdWx0ID0gU3RyaW5nKCk7CisgICAgdW5zaWduZWQgbnVtRmlsZXMgPSBtX2ZpbGVMaXN0LT5s
ZW5ndGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkgewor
ICAgICAgICByZXN1bHQuYXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ1wwJyk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIEZpbGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYg
c3RhdGUpCit7CisgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7CisgICAgc3RhdGUuc3BsaXQoJ1ww
JywgZmlsZXMpOworICAgIGZpbGVzQ2hvc2VuKGZpbGVzKTsKK30KKwogYm9vbCBGaWxlSW5wdXRU
eXBlOjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sIG11bHRpcGFy
dCkgY29uc3QKIHsKICAgICBGaWxlTGlzdCogZmlsZUxpc3QgPSBlbGVtZW50KCktPmZpbGVzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IGMyNmUxZmUwOTI2ZjVhMmI2ZDUz
M2EzNzlmNDA4YzQzYjAzZTEyNjEuLjAwZDM2MmJkYTkwNTg4NTczNzZhZTE1ZDVjMjljOGI2YTI3
OWNjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC00OCw2ICs0OCw4IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcm
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1E
YXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IDk1MWI2ZDgyNjQ0YWE2YzBhMzliZmI0Zjlk
NGU4NTYxMDdkOGY1ZDkuLjRlZmI4ZDYwZjhmZDU1ZTBhZjQ2YWZiMmM3NjhlMzRiMmQ0MjM2ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTU3LDcgKzU3LDcg
QEAgYm9vbCBIaWRkZW5JbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVz
dWx0KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEhpZGRlbklucHV0VHlwZTo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0Cit2b2lk
IEhpZGRlbklucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7CiAgICAgZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBzdHJpbmcp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggOWU4OTgyYzU0MzYx
NmExYzAzMWZlYjI0MzY0ODQ0ZjUxNzZlM2U1OS4uNDBhZjdkNzVmYTc4ZmMyODRiYjM2YWNiYmI4
NzY5OWM3MDNhNDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC00
Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShj
b25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWYWxpZGF0
aW9uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBmMmMxYzVhYzVmMzc1ZWU0ZGIwMjcw
YjM0ZmE3ZTM5M2Y2Y2RiMTA1Li4xMzY2MzgyOTI1YTYzYzQ0ZTRlNTMzNmIyNjcwN2IyZTlkZTBk
MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgYm9v
bCBJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkgY29uc3QKK3ZvaWQgSW5wdXRUeXBlOjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewogICAgIGVsZW1lbnQoKS0+
c2V0VmFsdWUoc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNmIwZjljMTVh
ZjJkZjgyM2Q4NTUyZDI1OGI5OTRiN2JkMWEwYzY0My4uMDRiNTgwY2I4NGY0YzcwNDRjMTA0OGM3
NjZkNzc3MjgwZjhmMzBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xMTUsNyArMTE1
LDcgQEAgcHVibGljOgogICAgIC8vIEZvcm0gdmFsdWUgZnVuY3Rpb25zCiAKICAgICB2aXJ0dWFs
IGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3Q7Ci0gICAgdmlydHVhbCB2
b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNGb3JtRGF0YUFwcGVuZGFibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCBtdWx0aXBhcnQpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmluZGV4IGMxMWQzYzYz
ZGM0YzU3OTZhNmQ0MTZhZDYzNmEyOTlkODk5ODZjODUuLjg4YmI4NDJiNjMxNGEyNTBmYzQ5YzBi
ODNiYjNkZDI1OWEwYjI3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dv
cmRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5
cGUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgUGFzc3dvcmRJbnB1dFR5cGU6OnNhdmVGb3Jt
Q29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IFBhc3N3b3JkSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcm
KSBjb25zdAordm9pZCBQYXNzd29yZElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUo
Y29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBTaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3
b3JkIGZpZWxkcy4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGFzc3dvcmRJbnB1dFR5cGUuaAppbmRleCAxMDY4MGFjYjJlYzE4OTg5MDlhNWNmODYxMzJjZTcz
NzBhNWNhMWY5Li41MjY3ZGRlNjM2M2JlOGYxMzgyNGIwZWE4ZWU0ZjQ5ZDZlMDE5ZTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCkBAIC00Myw3ICs0Myw3IEBAIHBy
aXZhdGU6CiAgICAgUGFzc3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkg
OiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3Qg
U3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9k
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc2V0T25Eb2N1bWVu
dEFjdGl2YXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExp
c3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMDhiZGViZWFlOTRhMDIzMzVhZjI3ZDFh
YmIzNjBmYWQyOTUxOTg2Li4zMzI5ODI4ZDU5ZjQ4NzVmYzkxMTA5OThmM2VhNTgyOWE0ZWZkMTRm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMDcgIE1hcmphIEjDtmx0dMOkICA8bWFy
amFAZ29vZ2xlLmNvbT4KKworICAgICAgICBGaWxlSW5wdXRUeXBlIGRvZXNuJ3Qgc3VwcG9ydCAo
c2F2ZXxyZXN0b3JlKUZvcm1Db250cm9sU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIHNhdmluZyBhbmQgcmVzdG9yaW5nIHRoZSBz
dGF0ZSBvZiBmaWxlIHVwbG9hZCBlbGVtZW50cyBpbiB1bnN1Ym1pdHRlZCBmb3Jtcy4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVu
cG9zdGVkLWZvcm0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2xv
Y2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOiBUaGUgYWRkZWQgdGVzdCBuZWVk
cyBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMuCisKIDIwMTItMDMtMDIgIE1pa2UgTGF3
dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICByZWZsZWN0aW9uIGNv
bXB1dGVkIHN0eWxlIHRlc3QgZm9yIENTUzMgY2FsYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQt
Zm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRh
L3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZmUzMzU4YmI1Yjk3Mzk1ZmU1MzE5YmZkMjg1ZTg2OWJkZGY4Zjg4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZp
bGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitU
ZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEgZmlsZSBjaG9vc2VyIGlzIHJlY292ZXJlZCB3aGVuIG5h
dmlnYXRpbmcgYXdheSBhbmQgbmF2aWdhdGluZyBiYWNrLgorUEFTUworICAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVjb3Zlci1maWxlLWlucHV0
LWluLXVucG9zdGVkLWZvcm0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9y
bWRhdGEvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NDllNjk1MDFkZWI5ZTBmZGIzMDFmYmMxYmQ4Zjg4ZGZlZGYwYmMxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZWNvdmVyLWZpbGUt
aW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzxodG1sPgorPGhl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CitUZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEgZmls
ZSBjaG9vc2VyIGlzIHJlY292ZXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQgbmF2aWdhdGlu
ZyBiYWNrLjwvcD4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJTDogU2NyaXB0IGRpZCBub3QgcnVuPC9k
aXY+CisKKzxmb3JtIGlkPSJmb3JtIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Im11bHRpcGFydC9m
b3JtLWRhdGEiPgorPGlucHV0IGlkPSJ0ZXh0LWlucHV0IiB0eXBlPSJ0ZXh0IiBuYW1lPSJwb3N0
ZWQtdGV4dCI+Cis8aW5wdXQgaWQ9ImZpbGUtaW5wdXQiIHR5cGU9ImZpbGUiIG5hbWU9InBvc3Rl
ZC1maWxlIj4KKzxpbnB1dCBpZD0ibXlzdWJtaXQiIHR5cGU9InN1Ym1pdCIgbmFtZT0iU3VibWl0
IiB2YWx1ZT0iU3VibWl0Ij4KKzwvZm9ybT4KKworPHNjcmlwdD4KKy8vIFN0cnVjdHVyZSBvZiB0
aGUgdGVzdDoKKy8vIFN0YXJ0IG9mIHRoZSB0ZXN0IChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2gg
PT0gIiIpCisvLyAtIEZpbGwgb3V0IGEgZm9ybS4KKy8vIC0gTmF2aWdhdGUgdG8gYSBkaWZmZXJl
bnQgbG9jYXRpb24uCisvLyBPbiB0aGUgZGlmZmVyZW50IHBhZ2UgKGRvY3VtZW50LmxvY2F0aW9u
LnNlYXJjaCA9PSAiP2RpZmZlcmVudHBhZ2UiKQorLy8gLSBOYXZpZ2F0ZSBiYWNrLgorLy8gQmFj
ayBvbiB0aGUgb3JpZ2luYWwgcGFnZSAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICIiICYm
IHdpbmRvdy5uYW1lID09ICJ3ZW50YmFjayIpCisvLyAtIFBvc3QgdGhlIGZvcm0uCisvLyAtIENo
ZWNrIHRoZSBwb3N0ZWQgZGF0YS4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9IGVsc2UgeworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiRkFJTDogTmVlZHMgdG8gYmUgcnVuIHdp
dGggRHVtcFJlbmRlclRyZWUiOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICghd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGRvY3Vt
ZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAiIikgeworICAgICAg
ICAvLyBTdGFydCBvZiB0aGUgdGVzdC4gU2V0IHRoZSB2YWx1ZXMgdG8gdGhlIGlucHV0IGVsZW1l
bnRzLgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dC1pbnB1dCIpLnZhbHVl
ID0gInRleHQgdG8gYmUgcG9zdGVkIjsKKyAgICAgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0
aEZpbGVzKFsicmVzb3VyY2VzL3Rlc3QudHh0Il0pOworICAgICAgICBtb3ZlTW91c2VUb0NlbnRl
ck9mRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1pbnB1dCIpKTsKKyAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAvLyBOYXZpZ2F0ZSBhd2F5OyBkbyBp
dCB3aXRoIGEgdGltZW91dCBzbyB0aGF0IGl0IHdpbGwgY3JlYXRlIGEgaGlzdG9yeSBlbnRyeS4K
KyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtkb2N1bWVudC5sb2NhdGlvbiA9IGRvY3Vt
ZW50LmxvY2F0aW9uICsgIj9kaWZmZXJlbnRwYWdlIjt9LCAwKTsKKyAgICB9IGVsc2UgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiP2RpZmZlcmVudHBhZ2UiKSB7CisgICAgICAgIC8v
IFdlIGhhdmUgbmF2aWdhdGVkIHRvIGEgZGlmZmVyZW50IHBhZ2UuIE5vdyBuYXZpZ2F0ZSBiYWNr
LgorICAgICAgICB3aW5kb3cubmFtZSA9ICJ3ZW50YmFjayI7CisgICAgICAgIGhpc3RvcnkuYmFj
aygpOworICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICIiICYmIHdp
bmRvdy5uYW1lID09ICJ3ZW50YmFjayIpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSBuYXZpZ2F0ZWQg
YmFjay4gTm93IHN1Ym1pdCB0aGUgZm9ybS4KKyAgICAgICAgdmFyIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgICAgICB4aHIub3BlbigiUE9TVCIsICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL211bHRpcGFydC1wb3N0LWVjaG8ucGhwIiwgZmFs
c2UpOworICAgICAgICB4aHIuc2VuZChuZXcgRm9ybURhdGEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImZvcm0iKSkpOworICAgICAgICB2YXIgZXhwZWN0ZWRSZXNwb25zZSA9ICJwb3N0ZWQtdGV4
dD10ZXh0IHRvIGJlIHBvc3RlZCZwb3N0ZWQtZmlsZT10ZXN0LnR4dDp0ZXh0L3BsYWluOkhlbGxv
IjsKKyAgICAgICAgaWYgKHhoci5yZXNwb25zZVRleHQgPSBleHBlY3RlZFJlc3BvbnNlKQorICAg
ICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCA9ICJQ
QVNTIjsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIH0K
K30KKworZnVuY3Rpb24gbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZWxlbWVudCkgeworICAg
IHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAv
IDI7CisgICAgdmFyIGNlbnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0
SGVpZ2h0IC8gMjsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhjZW50ZXJYLCBjZW50ZXJZ
KTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBl
ZAppbmRleCA4NWJiM2JhM2I0OTg2OTFiYjllMGI0NzZmZDk2ZWM5NTJhNTZmNWQwLi4wNzU4MTVi
YTg3ODU5NGY2ZDk4NTIyZGJiODIzMDdiZGY3NWQzMWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tp
cHBlZApAQCAtMTM2NCw2ICsxMzY0LDcgQEAgZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtcmUt
cmVuZGVyLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQu
aHRtbAogaHR0cC90ZXN0cy9sb2NhbC9maWxlYXBpL3NlbmQtZHJhZ2dlZC1maWxlLmh0bWwKIGh0
dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvZm9ybS1kYXRhLXdpdGgtdW5rbm93bi1maWxlLWV4dGVu
c2lvbi5odG1sCitodHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3JlY292ZXItZmlsZS1pbnB1dC1p
bi11bnBvc3RlZC1mb3JtLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3Jt
LWRhdGEtY29uc3RydWN0ZWQtZnJvbS1mb3JtLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRh
dGEvc2VuZC1mb3JtLWRhdGEtd2l0aC1zbGljZWQtZmlsZS5odG1sCiBodHRwL3Rlc3RzL2xvY2Fs
L2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130599</attachid>
            <date>2012-03-07 04:48:56 -0800</date>
            <delta_ts>2012-03-07 04:51:47 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-80145-20120307134854.patch</filename>
            <type>text/plain</type>
            <size>14662</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uZGQwMTY3YzM5ZWUzMGUzMjRjNTM0ZWYzMDg2Njk1
ZjE3MmFlOTRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTA3ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBzYXZpbmcg
YW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxvYWQgZWxlbWVudHMgaW4KKyAgICAg
ICAgdW5zdWJtaXR0ZWQgZm9ybXMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9sb2NhbC9m
b3JtZGF0YS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCisKKyAgICAg
ICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOiBub24tY29u
c3QKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEJh
c2VDaGVja2FibGVJbnB1dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZUlucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBzYXZlIGNob3NlbiBmaWxlcworICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZSk6IHJlc3RvcmUgY2hvc2VuIGZpbGVzCisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmg6CisgICAgICAgIChGaWxlSW5wdXRUeXBlKTogcmVzdG9yZUZvcm1Db250
cm9sU3RhdGUgbm9uLWNvbnN0CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZSk6IG5vbi1jb25zdAorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAg
IChIaWRkZW5JbnB1dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKyAg
ICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6
OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogbm9uLWNvbnN0CisgICAgICAgICogaHRtbC9JbnB1
dFR5cGUuaDoKKyAgICAgICAgKElucHV0VHlwZSk6IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlIG5v
bi1jb25zdAorICAgICAgICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogbm9u
LWNvbnN0CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5oOgorICAgICAgICAoUGFz
c3dvcmRJbnB1dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKwogMjAx
Mi0wMy0wMiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2No
cm9taXVtXSBGaXggZXJyb3JzIGluIExheWVyUmVuZGVyZXJDaHJvbWl1bSBjbGVhbnVwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCA5NmRm
M2YyZjUwNmU1NGU1NDMxZmU1NTYxZTMyMmQwY2FiNTk5NjljLi5mNTc4YWNiZTdkN2NhY2ZkMjU0
N2ZiNTZiNDZiZmE2YzQ2ODdjMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VDaGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgYm9vbCBCYXNlQ2hlY2thYmxl
SW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKSBjb25zdAordm9pZCBCYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0
YXRlKQogewogICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZChzdGF0ZSA9PSAib24iKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggNDIxMWFk
NTIxYjVkZDA3OGNiODA3MjA0MDY2ZGQyMWZlY2QxZjBmNi4uODYwZDZmZDkwMzY4OGZlMTJlZjhj
MTMzNWY5ODJkOGYzNzRhOThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
Q2hlY2thYmxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2th
YmxlSW5wdXRUeXBlLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3Ry
aW5nJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJv
bFN0YXRlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRG
b3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCA3NGIxZDdmYTJkZDk2YTkwM2FjYjhmNGI4
Mjg5MzQxYjhkYjkyODM4Li45Y2IzOWI2NjdkOTc0MWZmYmFhNjBmNDI3MTAxMzlhODdmOWIwNmJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTk5LDYgKzk5LDI2IEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgRmlsZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmZpbGUoKTsKIH0KIAorYm9vbCBGaWxlSW5w
dXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKK3sKKyAg
ICBpZiAobV9maWxlTGlzdC0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmVzdWx0ID0gU3RyaW5nKCk7CisgICAgdW5zaWduZWQgbnVtRmlsZXMgPSBtX2ZpbGVMaXN0LT5s
ZW5ndGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkgewor
ICAgICAgICByZXN1bHQuYXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoJ1wwJyk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIEZpbGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYg
c3RhdGUpCit7CisgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7CisgICAgc3RhdGUuc3BsaXQoJ1ww
JywgZmlsZXMpOworICAgIGZpbGVzQ2hvc2VuKGZpbGVzKTsKK30KKwogYm9vbCBGaWxlSW5wdXRU
eXBlOjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sIG11bHRpcGFy
dCkgY29uc3QKIHsKICAgICBGaWxlTGlzdCogZmlsZUxpc3QgPSBlbGVtZW50KCktPmZpbGVzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IGMyNmUxZmUwOTI2ZjVhMmI2ZDUz
M2EzNzlmNDA4YzQzYjAzZTEyNjEuLjAwZDM2MmJkYTkwNTg4NTczNzZhZTE1ZDVjMjljOGI2YTI3
OWNjNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC00OCw2ICs0OCw4IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcm
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUoY29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1E
YXRhKEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCB2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IDk1MWI2ZDgyNjQ0YWE2YzBhMzliZmI0Zjlk
NGU4NTYxMDdkOGY1ZDkuLjRlZmI4ZDYwZjhmZDU1ZTBhZjQ2YWZiMmM3NjhlMzRiMmQ0MjM2ODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTU3LDcgKzU3LDcg
QEAgYm9vbCBIaWRkZW5JbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVz
dWx0KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEhpZGRlbklucHV0VHlwZTo6
cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0Cit2b2lk
IEhpZGRlbklucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCiB7CiAgICAgZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBzdHJpbmcp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggOWU4OTgyYzU0MzYx
NmExYzAzMWZlYjI0MzY0ODQ0ZjUxNzZlM2U1OS4uNDBhZjdkNzVmYTc4ZmMyODRiYjM2YWNiYmI4
NzY5OWM3MDNhNDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC00
Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3Qg
QXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShj
b25zdCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWYWxpZGF0
aW9uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJl
bmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklE
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBmMmMxYzVhYzVmMzc1ZWU0ZGIwMjcw
YjM0ZmE3ZTM5M2Y2Y2RiMTA1Li4xMzY2MzgyOTI1YTYzYzQ0ZTRlNTMzNmIyNjcwN2IyZTlkZTBk
MGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgYm9v
bCBJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkgY29uc3QKK3ZvaWQgSW5wdXRUeXBlOjpyZXN0b3Jl
Rm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewogICAgIGVsZW1lbnQoKS0+
c2V0VmFsdWUoc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNmIwZjljMTVh
ZjJkZjgyM2Q4NTUyZDI1OGI5OTRiN2JkMWEwYzY0My4uMDRiNTgwY2I4NGY0YzcwNDRjMTA0OGM3
NjZkNzc3MjgwZjhmMzBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xMTUsNyArMTE1
LDcgQEAgcHVibGljOgogICAgIC8vIEZvcm0gdmFsdWUgZnVuY3Rpb25zCiAKICAgICB2aXJ0dWFs
IGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3Q7Ci0gICAgdmlydHVhbCB2
b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKTsKICAgICB2
aXJ0dWFsIGJvb2wgaXNGb3JtRGF0YUFwcGVuZGFibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCBtdWx0aXBhcnQpIGNvbnN0Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmluZGV4IGMxMWQzYzYz
ZGM0YzU3OTZhNmQ0MTZhZDYzNmEyOTlkODk5ODZjODUuLjg4YmI4NDJiNjMxNGEyNTBmYzQ5YzBi
ODNiYjNkZDI1OWEwYjI3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dv
cmRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5
cGUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgUGFzc3dvcmRJbnB1dFR5cGU6OnNhdmVGb3Jt
Q29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IFBhc3N3b3JkSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcm
KSBjb25zdAordm9pZCBQYXNzd29yZElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUo
Y29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBTaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3
b3JkIGZpZWxkcy4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGFzc3dvcmRJbnB1dFR5cGUuaAppbmRleCAxMDY4MGFjYjJlYzE4OTg5MDlhNWNmODYxMzJjZTcz
NzBhNWNhMWY5Li41MjY3ZGRlNjM2M2JlOGYxMzgyNGIwZWE4ZWU0ZjQ5ZDZlMDE5ZTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCkBAIC00Myw3ICs0Myw3IEBAIHBy
aXZhdGU6CiAgICAgUGFzc3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkg
OiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBi
b29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3Qg
U3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9k
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc2V0T25Eb2N1bWVu
dEFjdGl2YXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExp
c3RBdHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMDhiZGViZWFlOTRhMDIzMzVhZjI3ZDFh
YmIzNjBmYWQyOTUxOTg2Li44MDQ2NmM4YThkZDQyNWFlNjU4YzVjNmE3Y2YwZTlkOTFkODM0ODk5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMDcgIE1hcmphIEjDtmx0dMOkICA8bWFy
amFAZ29vZ2xlLmNvbT4KKworICAgICAgICBGaWxlSW5wdXRUeXBlIGRvZXNuJ3Qgc3VwcG9ydCAo
c2F2ZXxyZXN0b3JlKUZvcm1Db250cm9sU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIHNhdmluZyBhbmQgcmVzdG9yaW5nIHRoZSBz
dGF0ZSBvZiBmaWxlIHVwbG9hZCBlbGVtZW50cyBpbiB1bnN1Ym1pdHRlZCBmb3Jtcy4KKworICAg
ICAgICAqIGZhc3QvZm9ybXMvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3JlY292ZXItZmlsZS1pbnB1
dC1pbi11bnBvc3RlZC1mb3JtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9T
a2lwcGVkOiBUaGUgYWRkZWQgdGVzdCBuZWVkcyBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmls
ZXMuCisKIDIwMTItMDMtMDIgIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICByZWZsZWN0aW9uIGNvbXB1dGVkIHN0eWxlIHRlc3QgZm9yIENTUzMgY2Fs
YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZWNvdmVyLWZpbGUtaW5wdXQt
aW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jl
Y292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jZGI1MWI5OTBkNzVmYmExZGU2MzVlYzljM2EwMTFjYWU1ZTdiYzI0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0
ZWQtZm9ybS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0IHRoYXQgdGhlIHN0YXRl
IG9mIGEgZmlsZSBjaG9vc2VyIGlzIHJlY292ZXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQg
bmF2aWdhdGluZyBiYWNrLgorUEFTUworIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ4OTNmMWY0YTZiY2Y2YzdjNGJlZDU2NDUzMWE3ZjgzMTQ5ZmY0YjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlY292ZXItZmlsZS1pbnB1dC1p
bi11bnBvc3RlZC1mb3JtLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxi
b2R5IG9ubG9hZD0idGVzdCgpIj4KK1Rlc3QgdGhhdCB0aGUgc3RhdGUgb2YgYSBmaWxlIGNob29z
ZXIgaXMgcmVjb3ZlcmVkIHdoZW4gbmF2aWdhdGluZyBhd2F5IGFuZCBuYXZpZ2F0aW5nIGJhY2su
PC9wPgorPGRpdiBpZD0icmVzdWx0Ij5GQUlMOiBTY3JpcHQgZGlkIG5vdCBydW48L2Rpdj4KKwor
PGZvcm0gaWQ9ImZvcm0iIG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0
YSI+Cis8aW5wdXQgaWQ9InRleHQtaW5wdXQiIHR5cGU9InRleHQiIG5hbWU9InBvc3RlZC10ZXh0
Ij4KKzxpbnB1dCBpZD0iZmlsZS1pbnB1dCIgdHlwZT0iZmlsZSIgbmFtZT0icG9zdGVkLWZpbGUi
PgorPC9mb3JtPgorCis8c2NyaXB0PgorLy8gU3RydWN0dXJlIG9mIHRoZSB0ZXN0OgorLy8gU3Rh
cnQgb2YgdGhlIHRlc3QgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIikKKy8vIC0gRmls
bCBvdXQgYSBmb3JtLgorLy8gLSBOYXZpZ2F0ZSB0byBhIGRpZmZlcmVudCBsb2NhdGlvbi4KKy8v
IE9uIHRoZSBkaWZmZXJlbnQgcGFnZSAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICI/ZGlm
ZmVyZW50cGFnZSIpCisvLyAtIE5hdmlnYXRlIGJhY2suCisvLyBCYWNrIG9uIHRoZSBvcmlnaW5h
bCBwYWdlIChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIiIgJiYgd2luZG93Lm5hbWUgPT0g
IndlbnRiYWNrIikKKy8vIC0gQ2hlY2sgdGhlIGZvcm0gZGF0YS4KKworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9IGVsc2Ugewor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiRkFJTDog
TmVlZHMgdG8gYmUgcnVuIHdpdGggRHVtcFJlbmRlclRyZWUiOworfQorCitmdW5jdGlvbiB0ZXN0
KCkgeworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1
cm47CisgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFt
ZSA9PSAiIikgeworICAgICAgICAvLyBTdGFydCBvZiB0aGUgdGVzdC4gU2V0IHRoZSB2YWx1ZXMg
dG8gdGhlIGlucHV0IGVsZW1lbnRzLgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGV4dC1pbnB1dCIpLnZhbHVlID0gInRleHQgdG8gYmUgcG9zdGVkIjsKKyAgICAgICAgZXZlbnRT
ZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzKFsicmVzb3VyY2VzL3Rlc3QudHh0Il0pOworICAgICAg
ICBtb3ZlTW91c2VUb0NlbnRlck9mRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmls
ZS1pbnB1dCIpKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAvLyBO
YXZpZ2F0ZSBhd2F5OyBkbyBpdCB3aXRoIGEgdGltZW91dCBzbyB0aGF0IGl0IHdpbGwgY3JlYXRl
IGEgaGlzdG9yeSBlbnRyeS4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtkb2N1bWVu
dC5sb2NhdGlvbiA9IGRvY3VtZW50LmxvY2F0aW9uICsgIj9kaWZmZXJlbnRwYWdlIjt9LCAwKTsK
KyAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiP2RpZmZlcmVudHBh
Z2UiKSB7CisgICAgICAgIC8vIFdlIGhhdmUgbmF2aWdhdGVkIHRvIGEgZGlmZmVyZW50IHBhZ2Uu
IE5vdyBuYXZpZ2F0ZSBiYWNrLgorICAgICAgICB3aW5kb3cubmFtZSA9ICJ3ZW50YmFjayI7Cisg
ICAgICAgIGhpc3RvcnkuYmFjaygpOworICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24u
c2VhcmNoID09ICIiICYmIHdpbmRvdy5uYW1lID09ICJ3ZW50YmFjayIpIHsKKyAgICAgICAgLy8g
V2UgaGF2ZSBuYXZpZ2F0ZWQgYmFjay4gTm93IGNoZWNrIHRoZSBmb3JtIHZhbHVlcy4gVGhlIHJl
YWwgZmlsZQorICAgICAgICAvLyBwYXRocyBjYW5ub3QgYmUgcmVhZCBmcm9tIHRoZSBmaWxlIGNo
b29zZXIgZWxlbWVudCwgYnV0IHdlIGNhbiB2ZXJpZnkKKyAgICAgICAgLy8gdGhhdCB0aGUgcGF0
aCB3YXMgcmVzdG9yZWQgcHJvcGVybHkgYnkgcmVhZGluZyB0aGUgZmlsZS4KKyAgICAgICAgdmFy
IGZpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmlsZS1pbnB1dCcpLmZpbGVzWzBdOwor
ICAgICAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgcmVhZGVyLnJl
YWRBc1RleHQoZmlsZSwgIlVURi04Iik7CisgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlv
bihldnQpIHsKKyAgICAgICAgICAgIHZhciBmaWxlU3RyaW5nID0gZXZ0LnRhcmdldC5yZXN1bHQ7
CisgICAgICAgICAgICBpZiAoZmlsZVN0cmluZyA9PSAiSGVsbG8iICYmIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXh0LWlucHV0JykudmFsdWUgPT0gInRleHQgdG8gYmUgcG9zdGVkIikKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1M
ID0gIlBBU1MiOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiBtb3ZlTW91c2VUb0NlbnRlck9mRWxl
bWVudChlbGVtZW50KSB7CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBl
bGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0
VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKGNlbnRlclgsIGNlbnRlclkpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXN0LnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3Rlc3QudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhYjJm
OGE0MzIzYWJhZmIxMGFiYjY4NjU3ZDlkMzlmMWE3NzUwNTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXN0LnR4dApAQCAtMCwwICsxIEBACitI
ZWxsbwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQK
aW5kZXggODViYjNiYTNiNDk4NjkxYmI5ZTBiNDc2ZmQ5NmVjOTUyYTU2ZjVkMC4uOTMxZjYzZTZh
MTIwNTRmZjEwYzMxYWVkNjhkYTA5ZWY2ZDJlZjY0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBw
ZWQKQEAgLTEzNjEsNiArMTM2MSw3IEBAIGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LWNoYW5n
ZS1ldmVudC5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1pbnB1dC1yZXNldC5odG1sCiBmYXN0
L2Zvcm1zL2ZpbGUvZ2V0LWZpbGUtdXBsb2FkLmh0bWwKIGZhc3QvZm9ybXMvZmlsZS9pbnB1dC1m
aWxlLXJlLXJlbmRlci5odG1sCitmYXN0L2Zvcm1zL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBv
c3RlZC1mb3JtLmh0bWwKIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZp
ZWQuaHRtbAogaHR0cC90ZXN0cy9sb2NhbC9maWxlYXBpL3NlbmQtZHJhZ2dlZC1maWxlLmh0bWwK
IGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvZm9ybS1kYXRhLXdpdGgtdW5rbm93bi1maWxlLWV4
dGVuc2lvbi5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130600</attachid>
            <date>2012-03-07 04:51:55 -0800</date>
            <delta_ts>2012-03-08 02:31:28 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-80145-20120307135153.patch</filename>
            <type>text/plain</type>
            <size>14647</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uMDUwYzI1NTEwYjc0OTg5YzAyYTg4MDc0NGIzOWJm
MjFmNjNlMmU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTA3ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBzYXZpbmcg
YW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxvYWQgZWxlbWVudHMgaW4KKyAgICAg
ICAgdW5zdWJtaXR0ZWQgZm9ybXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9yZWNvdmVy
LWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCisKKyAgICAgICAgKiBodG1sL0Jhc2VD
aGVja2FibGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlu
cHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOiBub24tY29uc3QKKyAgICAgICAgKiBo
dG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKEJhc2VDaGVja2FibGVJbnB1
dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKyAgICAgICAgKiBodG1s
L0ZpbGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6c2F2
ZUZvcm1Db250cm9sU3RhdGUpOiBzYXZlIGNob3NlbiBmaWxlcworICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZSk6IHJlc3RvcmUgY2hvc2VuIGZpbGVzCisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmg6
CisgICAgICAgIChGaWxlSW5wdXRUeXBlKTogcmVzdG9yZUZvcm1Db250cm9sU3RhdGUgbm9uLWNv
bnN0CisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SGlkZGVuSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6IG5vbi1jb25zdAor
ICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAgIChIaWRkZW5JbnB1dFR5
cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKyAgICAgICAgKiBodG1sL0lu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKTogbm9uLWNvbnN0CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAg
ICAgKElucHV0VHlwZSk6IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlIG5vbi1jb25zdAorICAgICAg
ICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzc3dv
cmRJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogbm9uLWNvbnN0CisgICAgICAg
ICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5oOgorICAgICAgICAoUGFzc3dvcmRJbnB1dFR5cGUp
OiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKwogMjAxMi0wMy0wMiAgS2VubmV0
aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBGaXggZXJy
b3JzIGluIExheWVyUmVuZGVyZXJDaHJvbWl1bSBjbGVhbnVwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCA5NmRmM2YyZjUwNmU1NGU1NDMx
ZmU1NTYxZTMyMmQwY2FiNTk5NjljLi5mNTc4YWNiZTdkN2NhY2ZkMjU0N2ZiNTZiNDZiZmE2YzQ2
ODdjMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlw
ZS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgYm9vbCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpzYXZl
Rm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotdm9pZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBTdHJpbmcmIHN0YXRlKSBjb25zdAordm9pZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBl
OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewogICAgIGVs
ZW1lbnQoKS0+c2V0Q2hlY2tlZChzdGF0ZSA9PSAib24iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggNDIxMWFkNTIxYjVkZDA3OGNiODA3
MjA0MDY2ZGQyMWZlY2QxZjBmNi4uODYwZDZmZDkwMzY4OGZlMTJlZjhjMTMzNWY5ODJkOGYzNzRh
OThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgK
QEAgLTQzLDcgKzQzLDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0
cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0
YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5
cHJlc3NFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNh
blNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcAppbmRleCA3NGIxZDdmYTJkZDk2YTkwM2FjYjhmNGI4Mjg5MzQxYjhkYjkyODM4
Li45Y2IzOWI2NjdkOTc0MWZmYmFhNjBmNDI3MTAxMzlhODdmOWIwNmJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTk5LDYgKzk5LDI2IEBAIGNvbnN0IEF0b21pY1N0
cmluZyYgRmlsZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKICAgICByZXR1cm4g
SW5wdXRUeXBlTmFtZXM6OmZpbGUoKTsKIH0KIAorYm9vbCBGaWxlSW5wdXRUeXBlOjpzYXZlRm9y
bUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKK3sKKyAgICBpZiAobV9maWxlTGlz
dC0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0ID0gU3RyaW5n
KCk7CisgICAgdW5zaWduZWQgbnVtRmlsZXMgPSBtX2ZpbGVMaXN0LT5sZW5ndGgoKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkgeworICAgICAgICByZXN1bHQu
YXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CisgICAgICAgIHJlc3VsdC5hcHBl
bmQoJ1wwJyk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEZpbGVJbnB1dFR5
cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYgc3RhdGUpCit7CisgICAg
VmVjdG9yPFN0cmluZz4gZmlsZXM7CisgICAgc3RhdGUuc3BsaXQoJ1wwJywgZmlsZXMpOworICAg
IGZpbGVzQ2hvc2VuKGZpbGVzKTsKK30KKwogYm9vbCBGaWxlSW5wdXRUeXBlOjphcHBlbmRGb3Jt
RGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sIG11bHRpcGFydCkgY29uc3QKIHsKICAg
ICBGaWxlTGlzdCogZmlsZUxpc3QgPSBlbGVtZW50KCktPmZpbGVzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmlsZUlucHV0VHlwZS5oCmluZGV4IGMyNmUxZmUwOTI2ZjVhMmI2ZDUzM2EzNzlmNDA4YzQzYjAz
ZTEyNjEuLjAwZDM2MmJkYTkwNTg4NTczNzZhZTE1ZDVjMjljOGI2YTI3OWNjNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgRmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5n
JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3Npbmco
Y29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVN
aXNzaW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1
dFR5cGUuY3BwCmluZGV4IDk1MWI2ZDgyNjQ0YWE2YzBhMzliZmI0ZjlkNGU4NTYxMDdkOGY1ZDku
LjRlZmI4ZDYwZjhmZDU1ZTBhZjQ2YWZiMmM3NjhlMzRiMmQ0MjM2ODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBIaWRkZW5J
bnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIEhpZGRlbklucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0Cit2b2lkIEhpZGRlbklucHV0VHlw
ZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAgICAg
ZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBzdHJpbmcpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggOWU4OTgyYzU0MzYxNmExYzAzMWZlYjI0MzY0
ODQ0ZjUxNzZlM2U1OS4uNDBhZjdkNzVmYTc4ZmMyODRiYjM2YWNiYmI4NzY5OWM3MDNhNDJiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC00Myw3ICs0Myw3IEBAIHBy
aXZhdGU6CiAgICAgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDog
SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBm
b3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2F2ZUZv
cm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWYWxpZGF0aW9uKCkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWNj
ZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcAppbmRleCBmMmMxYzVhYzVmMzc1ZWU0ZGIwMjcwYjM0ZmE3ZTM5M2Y2Y2Ri
MTA1Li4xMzY2MzgyOTI1YTYzYzQ0ZTRlNTMzNmIyNjcwN2IyZTlkZTBkMGM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgYm9vbCBJbnB1dFR5cGU6OnNh
dmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25zdAogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3Ry
aW5nJiBzdGF0ZSkgY29uc3QKK3ZvaWQgSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewogICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc3RhdGUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNmIwZjljMTVhZjJkZjgyM2Q4NTUyZDI1
OGI5OTRiN2JkMWEwYzY0My4uMDRiNTgwY2I4NGY0YzcwNDRjMTA0OGM3NjZkNzc3MjgwZjhmMzBh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xMTUsNyArMTE1LDcgQEAgcHVibGljOgog
ICAgIC8vIEZvcm0gdmFsdWUgZnVuY3Rpb25zCiAKICAgICB2aXJ0dWFsIGJvb2wgc2F2ZUZvcm1D
b250cm9sU3RhdGUoU3RyaW5nJikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCByZXN0
b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNG
b3JtRGF0YUFwcGVuZGFibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURh
dGEoRm9ybURhdGFMaXN0JiwgYm9vbCBtdWx0aXBhcnQpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmluZGV4IGMxMWQzYzYzZGM0YzU3OTZhNmQ0MTZh
ZDYzNmEyOTlkODk5ODZjODUuLjg4YmI4NDJiNjMxNGEyNTBmYzQ5YzBiODNiYjNkZDI1OWEwYjI3
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCkBAIC01NCw3
ICs1NCw3IEBAIGJvb2wgUGFzc3dvcmRJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0
cmluZyYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFBhc3N3b3JkSW5wdXRU
eXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25zdAordm9pZCBQ
YXNzd29yZElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJikK
IHsKICAgICAvLyBTaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3JkIGZpZWxkcy4KICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UGFzc3dvcmRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5
cGUuaAppbmRleCAxMDY4MGFjYjJlYzE4OTg5MDlhNWNmODYxMzJjZTczNzBhNWNhMWY5Li41MjY3
ZGRlNjM2M2JlOGYxMzgyNGIwZWE4ZWU0ZjQ5ZDZlMDE5ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9QYXNzd29yZElucHV0VHlwZS5oCkBAIC00Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgUGFz
c3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNlVGV4dElucHV0
VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29u
dHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN0
b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKSBP
VkVSUklERTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAzMDhiZGViZWFlOTRhMDIzMzVhZjI3ZDFhYmIzNjBmYWQyOTUxOTg2
Li44MDQ2NmM4YThkZDQyNWFlNjU4YzVjNmE3Y2YwZTlkOTFkODM0ODk5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTItMDMtMDcgIE1hcmphIEjDtmx0dMOkICA8bWFyamFAZ29vZ2xlLmNvbT4K
KworICAgICAgICBGaWxlSW5wdXRUeXBlIGRvZXNuJ3Qgc3VwcG9ydCAoc2F2ZXxyZXN0b3JlKUZv
cm1Db250cm9sU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgwMTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHMgZm9yIHNhdmluZyBhbmQgcmVzdG9yaW5nIHRoZSBzdGF0ZSBvZiBmaWxlIHVw
bG9hZCBlbGVtZW50cyBpbiB1bnN1Ym1pdHRlZCBmb3Jtcy4KKworICAgICAgICAqIGZhc3QvZm9y
bXMvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1m
b3JtLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOiBUaGUgYWRk
ZWQgdGVzdCBuZWVkcyBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMuCisKIDIwMTItMDMt
MDIgIE1pa2UgTGF3dGhlciAgPG1pa2VsYXd0aGVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBy
ZWZsZWN0aW9uIGNvbXB1dGVkIHN0eWxlIHRlc3QgZm9yIENTUzMgY2FsYwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9y
bS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlY292ZXItZmlsZS1pbnB1
dC1pbi11bnBvc3RlZC1mb3JtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGI1MWI5OTBkNzVm
YmExZGU2MzVlYzljM2EwMTFjYWU1ZTdiYzI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEgZmlsZSBjaG9v
c2VyIGlzIHJlY292ZXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQgbmF2aWdhdGluZyBiYWNr
LgorUEFTUworIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZWNvdmVyLWZp
bGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
ZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4OTNm
MWY0YTZiY2Y2YzdjNGJlZDU2NDUzMWE3ZjgzMTQ5ZmY0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3Jt
Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPGh0bWw+Cis8aGVhZD4KKzxib2R5IG9ubG9hZD0idGVz
dCgpIj4KK1Rlc3QgdGhhdCB0aGUgc3RhdGUgb2YgYSBmaWxlIGNob29zZXIgaXMgcmVjb3ZlcmVk
IHdoZW4gbmF2aWdhdGluZyBhd2F5IGFuZCBuYXZpZ2F0aW5nIGJhY2suPC9wPgorPGRpdiBpZD0i
cmVzdWx0Ij5GQUlMOiBTY3JpcHQgZGlkIG5vdCBydW48L2Rpdj4KKworPGZvcm0gaWQ9ImZvcm0i
IG1ldGhvZD0icG9zdCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+Cis8aW5wdXQgaWQ9
InRleHQtaW5wdXQiIHR5cGU9InRleHQiIG5hbWU9InBvc3RlZC10ZXh0Ij4KKzxpbnB1dCBpZD0i
ZmlsZS1pbnB1dCIgdHlwZT0iZmlsZSIgbmFtZT0icG9zdGVkLWZpbGUiPgorPC9mb3JtPgorCis8
c2NyaXB0PgorLy8gU3RydWN0dXJlIG9mIHRoZSB0ZXN0OgorLy8gU3RhcnQgb2YgdGhlIHRlc3Qg
KGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIikKKy8vIC0gRmlsbCBvdXQgYSBmb3JtLgor
Ly8gLSBOYXZpZ2F0ZSB0byBhIGRpZmZlcmVudCBsb2NhdGlvbi4KKy8vIE9uIHRoZSBkaWZmZXJl
bnQgcGFnZSAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICI/ZGlmZmVyZW50cGFnZSIpCisv
LyAtIE5hdmlnYXRlIGJhY2suCisvLyBCYWNrIG9uIHRoZSBvcmlnaW5hbCBwYWdlIChkb2N1bWVu
dC5sb2NhdGlvbi5zZWFyY2ggPT0gIiIgJiYgd2luZG93Lm5hbWUgPT0gIndlbnRiYWNrIikKKy8v
IC0gQ2hlY2sgdGhlIGZvcm0gZGF0YS4KKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9IGVsc2UgeworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwgPSAiRkFJTDogTmVlZHMgdG8gYmUgcnVu
IHdpdGggRHVtcFJlbmRlclRyZWUiOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICgh
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAiIikgeworICAg
ICAgICAvLyBTdGFydCBvZiB0aGUgdGVzdC4gU2V0IHRoZSB2YWx1ZXMgdG8gdGhlIGlucHV0IGVs
ZW1lbnRzLgorICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dC1pbnB1dCIpLnZh
bHVlID0gInRleHQgdG8gYmUgcG9zdGVkIjsKKyAgICAgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFn
V2l0aEZpbGVzKFsicmVzb3VyY2VzL3Rlc3QudHh0Il0pOworICAgICAgICBtb3ZlTW91c2VUb0Nl
bnRlck9mRWxlbWVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1pbnB1dCIpKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAvLyBOYXZpZ2F0ZSBhd2F5OyBk
byBpdCB3aXRoIGEgdGltZW91dCBzbyB0aGF0IGl0IHdpbGwgY3JlYXRlIGEgaGlzdG9yeSBlbnRy
eS4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtkb2N1bWVudC5sb2NhdGlvbiA9IGRv
Y3VtZW50LmxvY2F0aW9uICsgIj9kaWZmZXJlbnRwYWdlIjt9LCAwKTsKKyAgICB9IGVsc2UgaWYg
KGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaCA9PSAiP2RpZmZlcmVudHBhZ2UiKSB7CisgICAgICAg
IC8vIFdlIGhhdmUgbmF2aWdhdGVkIHRvIGEgZGlmZmVyZW50IHBhZ2UuIE5vdyBuYXZpZ2F0ZSBi
YWNrLgorICAgICAgICB3aW5kb3cubmFtZSA9ICJ3ZW50YmFjayI7CisgICAgICAgIGhpc3Rvcnku
YmFjaygpOworICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICIiICYm
IHdpbmRvdy5uYW1lID09ICJ3ZW50YmFjayIpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSBuYXZpZ2F0
ZWQgYmFjay4gTm93IGNoZWNrIHRoZSBmb3JtIHZhbHVlcy4gVGhlIHJlYWwgZmlsZQorICAgICAg
ICAvLyBwYXRocyBjYW5ub3QgYmUgcmVhZCBmcm9tIHRoZSBmaWxlIGNob29zZXIgZWxlbWVudCwg
YnV0IHdlIGNhbiB2ZXJpZnkKKyAgICAgICAgLy8gdGhhdCB0aGUgcGF0aCB3YXMgcmVzdG9yZWQg
cHJvcGVybHkgYnkgcmVhZGluZyB0aGUgZmlsZS4KKyAgICAgICAgdmFyIGZpbGUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZmlsZS1pbnB1dCcpLmZpbGVzWzBdOworICAgICAgICB2YXIgcmVh
ZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSwg
IlVURi04Iik7CisgICAgICAgIHJlYWRlci5vbmxvYWQgPSBmdW5jdGlvbihldnQpIHsKKyAgICAg
ICAgICAgIHZhciBmaWxlU3RyaW5nID0gZXZ0LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBp
ZiAoZmlsZVN0cmluZyA9PSAiSGVsbG8iICYmIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0
LWlucHV0JykudmFsdWUgPT0gInRleHQgdG8gYmUgcG9zdGVkIikKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MID0gIlBBU1MiOworICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9Cisg
ICAgfQorfQorCitmdW5jdGlvbiBtb3ZlTW91c2VUb0NlbnRlck9mRWxlbWVudChlbGVtZW50KSB7
CisgICAgdmFyIGNlbnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdp
ZHRoIC8gMjsKKyAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5v
ZmZzZXRIZWlnaHQgLyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNlbnRlclgsIGNl
bnRlclkpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXN0LnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvcmVzb3VyY2VzL3Rlc3QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhYjJmOGE0MzIzYWJhZmIxMGFi
YjY4NjU3ZDlkMzlmMWE3NzUwNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3Jlc291cmNlcy90ZXN0LnR4dApAQCAtMCwwICsxIEBACitIZWxsbwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKaW5kZXggODViYjNiYTNi
NDk4NjkxYmI5ZTBiNDc2ZmQ5NmVjOTUyYTU2ZjVkMC4uOTMxZjYzZTZhMTIwNTRmZjEwYzMxYWVk
NjhkYTA5ZWY2ZDJlZjY0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQKQEAgLTEzNjEsNiAr
MTM2MSw3IEBAIGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LWNoYW5nZS1ldmVudC5odG1sCiBm
YXN0L2Zvcm1zL2ZpbGUvZmlsZS1pbnB1dC1yZXNldC5odG1sCiBmYXN0L2Zvcm1zL2ZpbGUvZ2V0
LWZpbGUtdXBsb2FkLmh0bWwKIGZhc3QvZm9ybXMvZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5o
dG1sCitmYXN0L2Zvcm1zL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLmh0bWwK
IGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQuaHRtbAogaHR0cC90
ZXN0cy9sb2NhbC9maWxlYXBpL3NlbmQtZHJhZ2dlZC1maWxlLmh0bWwKIGh0dHAvdGVzdHMvbG9j
YWwvZm9ybWRhdGEvZm9ybS1kYXRhLXdpdGgtdW5rbm93bi1maWxlLWV4dGVuc2lvbi5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130797</attachid>
            <date>2012-03-08 02:28:17 -0800</date>
            <delta_ts>2012-03-09 01:01:58 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>bug-80145-20120308112815.patch</filename>
            <type>text/plain</type>
            <size>16709</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNjJkMzM4NDcwMDA4
NWJlNjdlYmQ4ZTdjOTRiZjllMjc3NWQzYy4uODdkZWJkMmUyODA1Njg1NDI4NjdjNGM2M2ZjY2Rh
ODNkM2QwNDNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTA4ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGdvb2dsZS5jb20+CisKKyAgICAgICAgRmlsZUlucHV0VHlwZSBk
b2Vzbid0IHN1cHBvcnQgKHNhdmV8cmVzdG9yZSlGb3JtQ29udHJvbFN0YXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDE0NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBzYXZpbmcg
YW5kIHJlc3RvcmluZyB0aGUgc3RhdGUgb2YgZmlsZSB1cGxvYWQgZWxlbWVudHMgaW4KKyAgICAg
ICAgdW5zdWJtaXR0ZWQgZm9ybXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9maWxlL3Jl
Y292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3RlZC1mb3JtLmh0bWwKKworICAgICAgICAqIGh0bWwv
QmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2hlY2th
YmxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6IG5vbi1jb25zdAorICAgICAg
ICAqIGh0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oOgorICAgICAgICAoQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZSk6IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlIG5vbi1jb25zdAorICAgICAgICAq
IGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBl
OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSk6IHNhdmUgY2hvc2VuIGZpbGVzCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJv
bFN0YXRlKTogcmVzdG9yZSBjaG9zZW4gZmlsZXMKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5
cGUuaDoKKyAgICAgICAgKEZpbGVJbnB1dFR5cGUpOiBvdmVyd3JpdGUgKHNhdmV8cmVzdG9yZSlG
b3JtQ29udHJvbFN0YXRlCisgICAgICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SGlkZGVuSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6
IG5vbi1jb25zdAorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6CisgICAgICAgIChI
aWRkZW5JbnB1dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKyAgICAg
ICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnJl
c3RvcmVGb3JtQ29udHJvbFN0YXRlKTogbm9uLWNvbnN0CisgICAgICAgICogaHRtbC9JbnB1dFR5
cGUuaDoKKyAgICAgICAgKElucHV0VHlwZSk6IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlIG5vbi1j
b25zdAorICAgICAgICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzc3dvcmRJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogbm9uLWNv
bnN0CisgICAgICAgICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5oOgorICAgICAgICAoUGFzc3dv
cmRJbnB1dFR5cGUpOiByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSBub24tY29uc3QKKwogMjAxMi0w
My0wMiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBGaXggZXJyb3JzIGluIExheWVyUmVuZGVyZXJDaHJvbWl1bSBjbGVhbnVwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCA5NmRmM2Yy
ZjUwNmU1NGU1NDMxZmU1NTYxZTMyMmQwY2FiNTk5NjljLi5mNTc4YWNiZTdkN2NhY2ZkMjU0N2Zi
NTZiNDZiZmE2YzQ2ODdjMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VD
aGVja2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNr
YWJsZUlucHV0VHlwZS5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgYm9vbCBCYXNlQ2hlY2thYmxlSW5w
dXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpyZXN0b3JlRm9y
bUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKSBjb25zdAordm9pZCBCYXNlQ2hlY2th
YmxlSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRl
KQogewogICAgIGVsZW1lbnQoKS0+c2V0Q2hlY2tlZChzdGF0ZSA9PSAib24iKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmgKaW5kZXggNDIxMWFkNTIx
YjVkZDA3OGNiODA3MjA0MDY2ZGQyMWZlY2QxZjBmNi4uODYwZDZmZDkwMzY4OGZlMTJlZjhjMTMz
NWY5ODJkOGYzNzRhOThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hl
Y2thYmxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxl
SW5wdXRUeXBlLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5n
JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0
YXRlKGNvbnN0IFN0cmluZyYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBhcHBlbmRGb3Jt
RGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCA3NGIxZDdmYTJkZDk2YTkwM2FjYjhmNGI4Mjg5
MzQxYjhkYjkyODM4Li45Y2IzOWI2NjdkOTc0MWZmYmFhNjBmNDI3MTAxMzlhODdmOWIwNmJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTk5LDYgKzk5LDI2IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgRmlsZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QK
ICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmZpbGUoKTsKIH0KIAorYm9vbCBGaWxlSW5wdXRU
eXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKK3sKKyAgICBp
ZiAobV9maWxlTGlzdC0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVz
dWx0ID0gU3RyaW5nKCk7CisgICAgdW5zaWduZWQgbnVtRmlsZXMgPSBtX2ZpbGVMaXN0LT5sZW5n
dGgoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtRmlsZXM7ICsraSkgeworICAg
ICAgICByZXN1bHQuYXBwZW5kKG1fZmlsZUxpc3QtPml0ZW0oaSktPnBhdGgoKSk7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQoJ1wwJyk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCit2b2lk
IEZpbGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYgc3Rh
dGUpCit7CisgICAgVmVjdG9yPFN0cmluZz4gZmlsZXM7CisgICAgc3RhdGUuc3BsaXQoJ1wwJywg
ZmlsZXMpOworICAgIGZpbGVzQ2hvc2VuKGZpbGVzKTsKK30KKwogYm9vbCBGaWxlSW5wdXRUeXBl
OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sIG11bHRpcGFydCkg
Y29uc3QKIHsKICAgICBGaWxlTGlzdCogZmlsZUxpc3QgPSBlbGVtZW50KCktPmZpbGVzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IGMyNmUxZmUwOTI2ZjVhMmI2ZDUzM2Ez
NzlmNDA4YzQzYjAzZTEyNjEuLjAwZDM2MmJkYTkwNTg4NTczNzZhZTE1ZDVjMjljOGI2YTI3OWNj
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC00OCw2ICs0OCw4IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgRmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUo
Y29uc3QgU3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGFwcGVuZEZvcm1EYXRh
KEZvcm1EYXRhTGlzdCYsIGJvb2wpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB2
YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBT
dHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IaWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IDk1MWI2ZDgyNjQ0YWE2YzBhMzliZmI0ZjlkNGU4
NTYxMDdkOGY1ZDkuLjRlZmI4ZDYwZjhmZDU1ZTBhZjQ2YWZiMmM3NjhlMzRiMmQ0MjM2ODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAg
Ym9vbCBIaWRkZW5JbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEhpZGRlbklucHV0VHlwZTo6cmVz
dG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNvbnN0Cit2b2lkIEhp
ZGRlbklucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCiB7CiAgICAgZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBzdHJpbmcpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggOWU4OTgyYzU0MzYxNmEx
YzAzMWZlYjI0MzY0ODQ0ZjUxNzZlM2U1OS4uNDBhZjdkNzVmYTc4ZmMyODRiYjM2YWNiYmI4NzY5
OWM3MDNhNDJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC00Myw3
ICs0Myw3IEBAIHByaXZhdGU6CiAgICAgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25z
dCBTdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWYWxpZGF0aW9u
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRl
cmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCBmMmMxYzVhYzVmMzc1ZWU0ZGIwMjcwYjM0
ZmE3ZTM5M2Y2Y2RiMTA1Li4xMzY2MzgyOTI1YTYzYzQ0ZTRlNTMzNmIyNjcwN2IyZTlkZTBkMGM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBAIC0xNjAsNyArMTYwLDcgQEAgYm9vbCBJ
bnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkgY29uc3QKK3ZvaWQgSW5wdXRUeXBlOjpyZXN0b3JlRm9y
bUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQogewogICAgIGVsZW1lbnQoKS0+c2V0
VmFsdWUoc3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNmIwZjljMTVhZjJk
ZjgyM2Q4NTUyZDI1OGI5OTRiN2JkMWEwYzY0My4uMDRiNTgwY2I4NGY0YzcwNDRjMTA0OGM3NjZk
Nzc3MjgwZjhmMzBhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xMTUsNyArMTE1LDcg
QEAgcHVibGljOgogICAgIC8vIEZvcm0gdmFsdWUgZnVuY3Rpb25zCiAKICAgICB2aXJ0dWFsIGJv
b2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lk
IHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZpcnR1
YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0
dWFsIGJvb2wgaXNGb3JtRGF0YUFwcGVuZGFibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wg
YXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCBtdWx0aXBhcnQpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwCmluZGV4IGMxMWQzYzYzZGM0
YzU3OTZhNmQ0MTZhZDYzNmEyOTlkODk5ODZjODUuLjg4YmI4NDJiNjMxNGEyNTBmYzQ5YzBiODNi
YjNkZDI1OWEwYjI3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUu
Y3BwCkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgUGFzc3dvcmRJbnB1dFR5cGU6OnNhdmVGb3JtQ29u
dHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFBh
c3N3b3JkSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBj
b25zdAordm9pZCBQYXNzd29yZElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29u
c3QgU3RyaW5nJikKIHsKICAgICAvLyBTaG91bGQgbmV2ZXIgc2F2ZS9yZXN0b3JlIHBhc3N3b3Jk
IGZpZWxkcy4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFz
c3dvcmRJbnB1dFR5cGUuaAppbmRleCAxMDY4MGFjYjJlYzE4OTg5MDlhNWNmODYxMzJjZTczNzBh
NWNhMWY5Li41MjY3ZGRlNjM2M2JlOGYxMzgyNGIwZWE4ZWU0ZjQ5ZDZlMDE5ZTc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCkBAIC00Myw3ICs0Myw3IEBAIHByaXZh
dGU6CiAgICAgUGFzc3dvcmRJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBC
YXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1
YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3Ry
aW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc2V0T25Eb2N1bWVudEFj
dGl2YXRpb24oKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RB
dHRyaWJ1dGUoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMDhiZGViZWFlOTRhMDIzMzVhZjI3ZDFhYmIz
NjBmYWQyOTUxOTg2Li4xMGY2YjdmOTllYWUyOWFhZjgzYWY2MDlkMjFiZTA4ZWViZGJjYzE5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDMtMDggIE1hcmphIEjDtmx0dMOkICA8bWFyamFA
Z29vZ2xlLmNvbT4KKworICAgICAgICBGaWxlSW5wdXRUeXBlIGRvZXNuJ3Qgc3VwcG9ydCAoc2F2
ZXxyZXN0b3JlKUZvcm1Db250cm9sU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMTQ1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIHNhdmluZyBhbmQgcmVzdG9yaW5nIHRoZSBzdGF0
ZSBvZiBmaWxlIHVwbG9hZCBlbGVtZW50cyBpbiB1bnN1Ym1pdHRlZCBmb3Jtcy4KKworICAgICAg
ICAqIGZhc3QvZm9ybXMvZmlsZS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvZmlsZS9yZWNvdmVyLWZp
bGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS93azIvU2tpcHBlZDogVGhlIGFkZGVkIHRlc3QgbmVlZHMgZXZlbnRTZW5kZXIuYmVnaW5EcmFn
V2l0aEZpbGVzLgorCiAyMDEyLTAzLTAyICBNaWtlIExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgcmVmbGVjdGlvbiBjb21wdXRlZCBzdHlsZSB0ZXN0IGZvciBD
U1MzIGNhbGMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvZmlsZS9yZWNvdmVy
LWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQtZm9ybS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2ZpbGUvcmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY4NTA1NWI0YmQ3NjljODgxZmU5ZGM4ZTMwNTQyZDYzYzFhYTZi
ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvcmVjb3Zl
ci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkg
QEAKKyAgCitUbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5OgorRW50ZXIgc29tZXRoaW5nIHRvIHRo
ZSB0ZXh0IGZpZWxkIGFuZCBjaG9vc2UgZmlsZXMgd2l0aCB0aGUgZmlsZXMgY2hvb3NlcnMuCitD
bGljayBoZXJlIHRvIG5hdmlnYXRlIGF3YXkgZnJvbSB0aGUgcGFnZS4KK0NsaWNrIGhlcmUgdG8g
bmF2aWdhdGUgYmFjayB0byB0aGUgcGFnZS4KK0NoZWNrIHRoYXQgdGhlIHN0YXRlIG9mIHRoZSBm
b3JtIHdhcyByZXN0b3JlZC4KK1Rlc3QgdGhhdCB0aGUgc3RhdGUgb2YgYSBmaWxlIGNob29zZXIg
aXMgcmVjb3ZlcmVkIHdoZW4gbmF2aWdhdGluZyBhd2F5IGFuZCBuYXZpZ2F0aW5nIGJhY2suCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXh0LWlucHV0JykudmFsdWUgaXMgInRleHQgdG8gYmUgcG9zdGVkIgorUEFTUyBkb2N1
bWVudC5yZWFkRmlsZUNvbnRlbnRzIGlzICJIZWxsbyIKK1BBU1MgZG9jdW1lbnQucmVhZEZpbGVD
b250ZW50cyBpcyAiSGVsbG8iCitQQVNTIGRvY3VtZW50LnJlYWRGaWxlQ29udGVudHMgaXMgIkFu
b3RoZXIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL3JlY292ZXItZmlsZS1p
bnB1dC1pbi11bnBvc3RlZC1mb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUv
cmVjb3Zlci1maWxlLWlucHV0LWluLXVucG9zdGVkLWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmU4
NTQ2MTVlMmJhZTM1NDk4MTM3ZmUzZDNmODk1ZWE4MTBjNDk5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL3JlY292ZXItZmlsZS1pbnB1dC1pbi11bnBvc3Rl
ZC1mb3JtLmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxmb3JtIGlkPSJmb3JtIiBtZXRob2Q9InBvc3QiIGVu
Y3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiPgorPGlucHV0IGlkPSJ0ZXh0LWlucHV0IiB0eXBl
PSJ0ZXh0IiBuYW1lPSJwb3N0ZWQtdGV4dCI+Cis8aW5wdXQgaWQ9ImZpbGUtaW5wdXQiIHR5cGU9
ImZpbGUiIG5hbWU9InBvc3RlZC1maWxlIj4KKzxpbnB1dCBpZD0ibXVsdGlwbGUtZmlsZS1pbnB1
dCIgdHlwZT0iZmlsZSIgbXVsdGlwbGU9Im11bHRpcGxlIiBuYW1lPSJwb3N0ZWQtZmlsZXMiPgor
PC9mb3JtPgorPGRpdiBpZD0ibWFudWFsLWluc3RydWN0aW9ucyI+CitUbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5OgorPHVsPgorPGxpPkVudGVyIHNvbWV0aGluZyB0byB0aGUgdGV4dCBmaWVsZCBh
bmQgY2hvb3NlIGZpbGVzIHdpdGggdGhlIGZpbGVzIGNob29zZXJzLgorPGxpPkNsaWNrIDx1Pjxh
IG9uY2xpY2s9Im5hdmlnYXRlQXdheSgpIj5oZXJlPC9hPjwvdT4gdG8gbmF2aWdhdGUgYXdheSBm
cm9tIHRoZSBwYWdlLgorPGxpPkNsaWNrIDx1PjxhIG9uY2xpY2s9Im5hdmlnYXRlQmFjaygpIj5o
ZXJlPC9hPjwvdT4gdG8gbmF2aWdhdGUgYmFjayB0byB0aGUgcGFnZS4KKzxsaT5DaGVjayB0aGF0
IHRoZSBzdGF0ZSBvZiB0aGUgZm9ybSB3YXMgcmVzdG9yZWQuCis8L3VsPgorPC9kaXY+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQgdGhlIHN0YXRlIG9mIGEgZmlsZSBjaG9vc2VyIGlz
IHJlY292ZXJlZCB3aGVuIG5hdmlnYXRpbmcgYXdheSBhbmQgbmF2aWdhdGluZyBiYWNrLiIpOwor
CisvLyBTdHJ1Y3R1cmUgb2YgdGhlIHRlc3Q6CisvLyBTdGFydCBvZiB0aGUgdGVzdCAoZG9jdW1l
bnQubG9jYXRpb24uc2VhcmNoID09ICIiKQorLy8gLSBGaWxsIG91dCBhIGZvcm0uCisvLyAtIE5h
dmlnYXRlIHRvIGEgZGlmZmVyZW50IGxvY2F0aW9uLgorLy8gT24gdGhlIGRpZmZlcmVudCBwYWdl
IChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIj9kaWZmZXJlbnRwYWdlIikKKy8vIC0gTmF2
aWdhdGUgYmFjay4KKy8vIEJhY2sgb24gdGhlIG9yaWdpbmFsIHBhZ2UgKGRvY3VtZW50LmxvY2F0
aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAid2VudGJhY2siKQorLy8gLSBDaGVj
ayB0aGUgZm9ybSBkYXRhLgorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICghd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisgICAgaWYgKGRvY3VtZW50Lmxv
Y2F0aW9uLnNlYXJjaCA9PSAiIiAmJiB3aW5kb3cubmFtZSA9PSAiIikgeworICAgICAgICAvLyBT
dGFydCBvZiB0aGUgdGVzdC4gU2V0IHRoZSB2YWx1ZXMgdG8gdGhlIGlucHV0IGVsZW1lbnRzLgor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dC1pbnB1dCIpLnZhbHVlID0gInRl
eHQgdG8gYmUgcG9zdGVkIjsKKyAgICAgICAgZHJhZ0ZpbGVzT250b0lucHV0KGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJmaWxlLWlucHV0IiksIFsiLi4vcmVzb3VyY2VzL3Rlc3QudHh0Il0pOwor
ICAgICAgICBkcmFnRmlsZXNPbnRvSW5wdXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRp
cGxlLWZpbGUtaW5wdXQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiLi4vcmVzb3Vy
Y2VzL3Rlc3QudHh0IiwgIi4uL3Jlc291cmNlcy90ZXN0Mi50eHQiXSk7CisgICAgICAgIG5hdmln
YXRlQXdheSgpOworICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICI/
ZGlmZmVyZW50cGFnZSIpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSBuYXZpZ2F0ZWQgdG8gYSBkaWZm
ZXJlbnQgcGFnZS4gTm93IG5hdmlnYXRlIGJhY2suCisgICAgICAgIG5hdmlnYXRlQmFjaygpOwor
ICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICIiICYmIHdpbmRvdy5u
YW1lID09ICJ3ZW50YmFjayIpIHsKKyAgICAgICAgLy8gV2UgaGF2ZSBuYXZpZ2F0ZWQgYmFjay4g
Tm93IGNoZWNrIHRoZSBmb3JtIHZhbHVlcy4KKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dC1pbnB1dCcpLnZhbHVlIiwgInRleHQgdG8g
YmUgcG9zdGVkIik7CisKKyAgICAgICAgLy8gVGhlIHJlYWwgZmlsZSBwYXRocyBjYW5ub3QgYmUg
cmVhZCBmcm9tIHRoZSBmaWxlIGNob29zZXIgZWxlbWVudCwgYnV0CisgICAgICAgIC8vIHdlIGNh
biB2ZXJpZnkgdGhhdCB0aGUgcGF0aCB3YXMgcmVzdG9yZWQgcHJvcGVybHkgYnkgcmVhZGluZyB0
aGUKKyAgICAgICAgLy8gZmlsZS4KKyAgICAgICAgZXhwZWN0RmlsZUNvbnRlbnRzKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJmaWxlLWlucHV0IikuZmlsZXNbMF0sICJIZWxsbyIpOworICAgICAg
ICBleHBlY3RGaWxlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm11bHRpcGxlLWZp
bGUtaW5wdXQiKS5maWxlc1swXSwgIkhlbGxvIik7CisgICAgICAgIGV4cGVjdEZpbGVDb250ZW50
cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXVsdGlwbGUtZmlsZS1pbnB1dCIpLmZpbGVzWzFd
LCAiQW5vdGhlciIpOworICAgIH0KK30KKworZnVuY3Rpb24gbmF2aWdhdGVBd2F5KCkgeworICAg
IC8vIE5hdmlnYXRlIGF3YXk7IGRvIGl0IHdpdGggYSB0aW1lb3V0IHNvIHRoYXQgaXQgd2lsbCBj
cmVhdGUgYSBoaXN0b3J5IGVudHJ5LgorICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7ZG9jdW1l
bnQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbiArICI/ZGlmZmVyZW50cGFnZSI7fSwgMCk7
Cit9CisKK2Z1bmN0aW9uIG5hdmlnYXRlQmFjaygpIHsKKyAgICB3aW5kb3cubmFtZSA9ICJ3ZW50
YmFjayI7CisgICAgaGlzdG9yeS5iYWNrKCk7Cit9CisKK3ZhciBmaWxlc1JlYWQgPSAwOworCitm
dW5jdGlvbiBjaGVja0ZpbGVDb250ZW50cyhleHBlY3RlZCwgZXZ0KSB7CisgICAgZG9jdW1lbnQu
cmVhZEZpbGVDb250ZW50cyA9IGV2dC50YXJnZXQucmVzdWx0OworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygiZG9jdW1lbnQucmVhZEZpbGVDb250ZW50cyIsIGV4cGVjdGVkKTsKKyAgICArK2Zp
bGVzUmVhZDsKKyAgICBpZiAoZmlsZXNSZWFkID09IDMpIHsKKyAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgfQorfQorCitmdW5jdGlvbiBleHBlY3RGaWxlQ29udGVudHMoZmlsZSwgY29udGVu
dHMpIHsKKyAgICB2YXIgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKKyAgICByZWFkZXIucmVh
ZEFzVGV4dChmaWxlLCAiVVRGLTgiKTsKKyAgICByZWFkZXIub25sb2FkID0gY2hlY2tGaWxlQ29u
dGVudHMuYmluZCh1bmRlZmluZWQsIGNvbnRlbnRzKTsKK30KKworZnVuY3Rpb24gbW92ZU1vdXNl
VG9DZW50ZXJPZkVsZW1lbnQoZWxlbWVudCkgeworICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5v
ZmZzZXRMZWZ0ICsgZWxlbWVudC5vZmZzZXRXaWR0aCAvIDI7CisgICAgdmFyIGNlbnRlclkgPSBl
bGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyhjZW50ZXJYLCBjZW50ZXJZKTsKK30KKworZnVuY3Rpb24gZHJhZ0Zp
bGVzT250b0lucHV0KGlucHV0LCBmaWxlcykgeworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dp
dGhGaWxlcyhmaWxlcyk7CisgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoaW5wdXQpOwor
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdGVzdC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXN0LnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41YWIyZjhhNDMyM2FiYWZiMTBhYmI2ODY1N2Q5ZDM5ZjFhNzc1MDU3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdGVzdC50eHQKQEAgLTAsMCAr
MSBAQAorSGVsbG8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy90ZXN0Mi50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3Jlc291cmNlcy90ZXN0Mi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVjY2Y0MGQ4YjM4MmNjZDhj
NWY2NjY2NmNjMzc5ZDZmMGVlNzk0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVzb3VyY2VzL3Rlc3QyLnR4dApAQCAtMCwwICsxIEBACitBbm90aGVyClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAppbmRleCA4NWJi
M2JhM2I0OTg2OTFiYjllMGI0NzZmZDk2ZWM5NTJhNTZmNWQwLi5lMzM5ZDFiMzAzNTJjN2I2ZjZl
MDA3MDVmYjc5Mzc4ZmQwYzc5YmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZApAQCAtMTM2
MSw2ICsxMzYxLDcgQEAgZmFzdC9mb3Jtcy9maWxlL2ZpbGUtaW5wdXQtY2hhbmdlLWV2ZW50Lmh0
bWwKIGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LXJlc2V0Lmh0bWwKIGZhc3QvZm9ybXMvZmls
ZS9nZXQtZmlsZS11cGxvYWQuaHRtbAogZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtcmUtcmVu
ZGVyLmh0bWwKK2Zhc3QvZm9ybXMvZmlsZS9yZWNvdmVyLWZpbGUtaW5wdXQtaW4tdW5wb3N0ZWQt
Zm9ybS5odG1sCiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0
bWwKIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9zZW5kLWRyYWdnZWQtZmlsZS5odG1sCiBodHRw
L3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL2Zvcm0tZGF0YS13aXRoLXVua25vd24tZmlsZS1leHRlbnNp
b24uaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>