<?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>16489</bug_id>
          
          <creation_ts>2007-12-17 15:08:54 -0800</creation_ts>
          <short_desc>WebKit does not support ElementTraversal specification</short_desc>
          <delta_ts>2019-02-06 09:04:11 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.w3.org/TR/ElementTraversal/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>15836</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>timur.mehrvarz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>64585</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-12-17 15:08:54 -0800</bug_when>
    <thetext>WebKit does not support ElementTraversal specification
http://www.w3.org/TR/ElementTraversal/

One of the WICD tests depends on this:
http://www.w3.org/2004/CDF/TestSuite/WICD_CDR_WP1/test-element-traversal.xhtml
http://www.w3.org/2004/CDF/TestSuite/WICD_CDR_WP1/wicdmobile.xhtml#mobile15</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81032</commentid>
    <comment_count>1</comment_count>
      <attachid>21260</attachid>
    <who name="Vincent Ricard">magic</who>
    <bug_when>2008-05-20 14:17:32 -0700</bug_when>
    <thetext>Created attachment 21260
Patch + testcases

Here is an implementation... review welcomed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81037</commentid>
    <comment_count>2</comment_count>
      <attachid>21260</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-05-20 14:34:38 -0700</bug_when>
    <thetext>Comment on attachment 21260
Patch + testcases

The implementation looks fine.

The test cases should be written as js test cases, following the form used by so many in fast/js (and other places).  you can use make-js-test-wrappers to generate the final .html files once you add your .js files.  (js test cases use our shouldBe functions, etc.)

Also, these new functions on Element should be const.

Otherwise it looks fine to me.

I would r+ this but, AFAIK you don&apos;t have commit bit (so any edits you make need to go through a posted patch).  So I&apos;d like to see a patch with cleaner test cases before r+ing.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81382</commentid>
    <comment_count>3</comment_count>
      <attachid>21327</attachid>
    <who name="Vincent Ricard">magic</who>
    <bug_when>2008-05-24 01:10:50 -0700</bug_when>
    <thetext>Created attachment 21327
Fixed patch

I made the methods &apos;const&apos;.
I rewrite the test cases to match the &quot;shouldBe&quot; way... hope i unserstood how description() should be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81398</commentid>
    <comment_count>4</comment_count>
      <attachid>21327</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-05-24 22:27:06 -0700</bug_when>
    <thetext>Comment on attachment 21327
Fixed patch

This looks great! It will be nice to have these.

+    Node *n = this-&gt;firstChild();

As mentioned in the coding style guide, the * should go next to the typename. So it should be &quot;Node* n&quot;, not &quot;Node *n&quot;.

+    while (n &amp;&amp; n-&gt;nodeType() != ELEMENT_NODE)

I think it would be better to use isElementNode() here instead of nodeType().

+unsigned long Element::childElementCount() const

The type &quot;unsigned long&quot; in IDL actually means a 32-bit unsigned integer. Thus in C++ the type should be &quot;unsigned&quot; (which is what we use for 32 bit), not &quot;unsigned long&quot; (which is what we use for 32 bit or 64 bit depending on the target architecture). Thus childElementCount should have a type of unsigned.

+    unsigned long count = 0L;

There&apos;s no good reason to use &quot;0L&quot; here instead of &quot;0&quot;. If you really wanted to make the constant have the right type, it would be &quot;0UL&quot;, but just plain &quot;0&quot; works fine.

I think it&apos;s unnecessary additional work to use firstElementChild and nextElementSIbling to implement childElementCount. It would be better to just iterate all the child nodes and do:

    count += n-&gt;isElementNode()

More efficient and still quite clear.

+successfullyParsed = true;
\ No newline at end of file

Please put newlines at the ends of these files.

+description(
+&quot;This test checks the implementation of the childElementCount attribute (ElementTraversal API).&quot;
++ &quot;&lt;div id=&apos;noChildren&apos;&gt;&lt;/div&gt;&quot;
++ &quot;&lt;div id=&apos;noElementChildren&apos;&gt;&lt;!-- comment but not an element --&gt;no elements here&lt;/div&gt;&quot;
++ &quot;&lt;div id=&apos;children&apos;&gt;&lt;p&gt;i&apos;m an element&lt;/p&gt;&lt;!-- comment --&gt;&lt;p&gt;i&apos;m an other element&lt;/p&gt;&lt;/div&gt;&quot;
+);

It is not normal practice to put the test content into the description. Instead, code to set up the test content should be separate. You could use clean DOM calls, or something more like innerHTML or document.write, but it should not be part of description.

These are not JavaScript tests, but rather DOM tests. So they should be somewhere in fast/dom, not in fast/js. The tests in fast/js in theory should all work in a standalone JavaScript engine and not rely on anything outside the core language.

I don&apos;t think all these tests need to be separate. I&apos;d suggest a single test with more test cases.

+shouldBe(&quot;null&quot;, &quot;document.getElementById(\&quot;noChildren\&quot;).firstElementChild&quot;);

These are backwards. The interesting expression should be on the left and the expected value on the right. This produces better output when you run the tests.

The patch needs to include the expected.txt files that are generated running the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81462</commentid>
    <comment_count>5</comment_count>
      <attachid>21338</attachid>
    <who name="Vincent Ricard">magic</who>
    <bug_when>2008-05-25 12:01:34 -0700</bug_when>
    <thetext>Created attachment 21338
New fixed patch

I hope all is fine now :-)
I fixed the type of &apos;count&apos;, the call to isElement(), the directory of the tests (merged in only one), and added the &apos;-expected.txt&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81464</commentid>
    <comment_count>6</comment_count>
      <attachid>21338</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-05-25 12:41:15 -0700</bug_when>
    <thetext>Comment on attachment 21338
New fixed patch

Are these functions supposed to be defined on Document objects, or just Element objects?

+    Node* n = this-&gt;firstChild();
+    Node* n = this-&gt;lastChild();
+    Node* n = this-&gt;previousSibling();
+    Node* n = this-&gt;nextSibling();
+    Node* n = this-&gt;firstChild();

No need for the explicit &quot;this-&gt;&quot; here.

+        * fast/js/ElementTraversal-childElementCount.html: Added.
+        * fast/js/ElementTraversal-firstElementChild.html: Added.
+        * fast/js/ElementTraversal-lastElementChild.html: Added.
+        * fast/js/ElementTraversal-nextElementSibling.html: Added.
+        * fast/js/ElementTraversal-previousElementSibling.html: Added.
+        * fast/js/resources/ElementTraversal-childElementCount.js: Added.
+        * fast/js/resources/ElementTraversal-firstElementChild.js: Added.
+        * fast/js/resources/ElementTraversal-lastElementChild.js: Added.
+        * fast/js/resources/ElementTraversal-nextElementSibling.js: Added.
+        * fast/js/resources/ElementTraversal-previousElementSibling.js: Added.

This is no longer the accurate list of files added.

r=me, but it would be better to fix the above issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82653</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-06-08 13:32:19 -0700</bug_when>
    <thetext>While landing this I removed the unneeded &quot;this-&gt;&quot;, fixed the change log entries. I also discovered another test case that depends on the precise number of properties in the Element class. Since we&apos;ve added new functions, the results of that test have changed, so I had to update it too.

Next time you submit a patch, please run the regression tests. If you ran them you would have seen this failure in fast/dom/domListEnumeration.html.

Committed revision 34452.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82698</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-06-08 18:15:43 -0700</bug_when>
    <thetext>Hum... even after this has landed, we don&apos;t pass the WICD core test on the subject:
http://www.w3.org/2004/CDF/TestSuite/WICD_CDR_WP1/test-element-traversal.xhtml

We hit a &quot;TypeError: null value&quot; on line 19 of:
http://www.w3.org/2004/CDF/TestSuite/WICD_CDR_WP1/test-element-traversal.svg

var childElement = element.firstElementChild;
while (childElement) {  // THIS IS WHERE WE HIT THE ERROR
TypeError: Null value
	counter0++;
	childElement = childElement.nextElementSibling;
}

Ah, looks like it&apos;s lack of xml:id support?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82724</commentid>
    <comment_count>9</comment_count>
    <who name="timur mehrvarz">timur.mehrvarz</who>
    <bug_when>2008-06-09 01:43:12 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Hum... even after this has landed, we don&apos;t pass the WICD core test on the
&gt; subject:
&gt; http://www.w3.org/2004/CDF/TestSuite/WICD_CDR_WP1/test-element-traversal.xhtml
&gt; 
&gt; Ah, looks like it&apos;s lack of xml:id support?

We&apos;ve removed xml:id from the testcase. It now passes fine.
Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503118</commentid>
    <comment_count>10</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:04:11 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21260</attachid>
            <date>2008-05-20 14:17:32 -0700</date>
            <delta_ts>2008-05-24 01:10:50 -0700</delta_ts>
            <desc>Patch + testcases</desc>
            <filename>16489.diff</filename>
            <type>text/plain</type>
            <size>15118</size>
            <attacher name="Vincent Ricard">magic</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMzk0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMDgtMDUtMjAgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNu
aW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDg5CisgICAgICAg
IFdlYktpdCBkb2VzIG5vdCBzdXBwb3J0IEVsZW1lbnRUcmF2ZXJzYWwgc3BlY2lmaWNhdGlvbgor
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0VsZW1lbnRUcmF2ZXJzYWxBUEkvY2hpbGRFbGVt
ZW50Q291bnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQ
SS9maXJzdEVsZW1lbnRDaGlsZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9FbGVtZW50
VHJhdmVyc2FsQVBJL2xhc3RFbGVtZW50Q2hpbGQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9k
b20vRWxlbWVudFRyYXZlcnNhbEFQSS9uZXh0RWxlbWVudFNpYmxpbmcuaHRtbAorICAgICAgICAg
ICAgICAgZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQSS9wcmV2aW91c0VsZW1lbnRTaWJsaW5n
Lmh0bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnQ6OmZpcnN0RWxlbWVudENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omxh
c3RFbGVtZW50Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cHJldmlvdXNFbGVt
ZW50U2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpuZXh0RWxlbWVudFNpYmxp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRFbGVtZW50Q291bnQpOgorICAg
ICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuaWRsOgorCiAyMDA4
LTA1LTIwICBBbGljZSBMaXUgIDxhbGljZS5saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEJyYWR5LgpJbmRleDogV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDMzOTM5KQorKysgV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNzIsNCArMTI3Miw0OCBAQCB2b2lk
IEVsZW1lbnQ6Om5vcm1hbGl6ZUF0dHJpYnV0ZXMoKQogICAgIH0KIH0KIAorLy8gRWxlbWVudFRy
YXZlcnNhbCBBUEkKK0VsZW1lbnQqIEVsZW1lbnQ6OmZpcnN0RWxlbWVudENoaWxkKCkKK3sKKyAg
ICBOb2RlICpuID0gdGhpcy0+Zmlyc3RDaGlsZCgpOworICAgIHdoaWxlIChuICYmIG4tPm5vZGVU
eXBlKCkgIT0gRUxFTUVOVF9OT0RFKQorICAgICAgICBuID0gbi0+bmV4dFNpYmxpbmcoKTsKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworfQorCitFbGVtZW50KiBFbGVtZW50
OjpsYXN0RWxlbWVudENoaWxkKCkKK3sKKyAgICBOb2RlICpuID0gdGhpcy0+bGFzdENoaWxkKCk7
CisgICAgd2hpbGUgKG4gJiYgbi0+bm9kZVR5cGUoKSAhPSBFTEVNRU5UX05PREUpCisgICAgICAg
IG4gPSBuLT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG4pOworfQorCitFbGVtZW50KiBFbGVtZW50OjpwcmV2aW91c0VsZW1lbnRTaWJsaW5nKCkK
K3sKKyAgICBOb2RlICpuID0gdGhpcy0+cHJldmlvdXNTaWJsaW5nKCk7CisgICAgd2hpbGUgKG4g
JiYgbi0+bm9kZVR5cGUoKSAhPSBFTEVNRU5UX05PREUpCisgICAgICAgIG4gPSBuLT5wcmV2aW91
c1NpYmxpbmcoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworfQorCitF
bGVtZW50KiBFbGVtZW50OjpuZXh0RWxlbWVudFNpYmxpbmcoKQoreworICAgIE5vZGUgKm4gPSB0
aGlzLT5uZXh0U2libGluZygpOworICAgIHdoaWxlIChuICYmIG4tPm5vZGVUeXBlKCkgIT0gRUxF
TUVOVF9OT0RFKQorICAgICAgICBuID0gbi0+bmV4dFNpYmxpbmcoKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG4pOworfQorCit1bnNpZ25lZCBsb25nIEVsZW1lbnQ6OmNoaWxk
RWxlbWVudENvdW50KCkKK3sKKyAgICB1bnNpZ25lZCBsb25nIGNvdW50ID0gMEw7CisgICAgRWxl
bWVudCogZWwgPSBmaXJzdEVsZW1lbnRDaGlsZCgpOworICAgIHdoaWxlIChlbCkgeworICAgICAg
ICArK2NvdW50OworICAgICAgICBlbCA9IGVsLT5uZXh0RWxlbWVudFNpYmxpbmcoKTsKKyAgICB9
CisgICAgcmV0dXJuIGNvdW50OworfQorCiB9CkluZGV4OiBXZWJDb3JlL2RvbS9FbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiAzMzkzOSkKKysr
IFdlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDYgKzE5MSwxMyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwogICAg
IHZpcnR1YWwgdm9pZCBiZWdpblBhcnNpbmdDaGlsZHJlbigpIHsgbV9wYXJzaW5nQ2hpbGRyZW5G
aW5pc2hlZCA9IGZhbHNlOyB9CiAKKyAgICAvLyBFbGVtZW50VHJhdmVyc2FsIEFQSQorICAgIEVs
ZW1lbnQqIGZpcnN0RWxlbWVudENoaWxkKCk7CisgICAgRWxlbWVudCogbGFzdEVsZW1lbnRDaGls
ZCgpOworICAgIEVsZW1lbnQqIHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKTsKKyAgICBFbGVtZW50
KiBuZXh0RWxlbWVudFNpYmxpbmcoKTsKKyAgICB1bnNpZ25lZCBsb25nIGNoaWxkRWxlbWVudENv
dW50KCk7CisKIHByaXZhdGU6CiAgICAgRWxlbWVudFJhcmVEYXRhKiByYXJlRGF0YSgpOwogICAg
IGNvbnN0IEVsZW1lbnRSYXJlRGF0YSogcmFyZURhdGEoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUv
ZG9tL0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCShy
ZXZpc2lvbiAzMzkzOSkKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTEsNiArMTExLDEzIEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgTm9kZUxpc3QgICAg
ICAgICAgICBxdWVyeVNlbGVjdG9yQWxsKGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAKKyAgICAgICAgLy8gRWxlbWVudFRyYXZlcnNhbCBBUEkKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIEVsZW1lbnQgZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBFbGVtZW50IGxhc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBFbGVtZW50IHByZXZpb3VzRWxlbWVudFNpYmxpbmc7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBFbGVtZW50IG5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgIGNoaWxkRWxlbWVudENvdW50OworCiAjaWYgZGVmaW5l
ZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykKICAgICAgICAgLy8gT2JqZWN0aXZlLUMgZXh0ZW5zaW9u
cwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlubmVyVGV4dDsKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDMzOTQyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMDUtMjAgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNA
bWFnaWNuaW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgdGVzdHMgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjQ4OQorICAgICAgICBXZWJLaXQgZG9lcyBub3Qgc3VwcG9ydCBFbGVtZW50VHJhdmVyc2Fs
IHNwZWNpZmljYXRpb24KKworICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnRUcmF2ZXJzYWxBUEk6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnRUcmF2ZXJzYWxBUEkvY2hpbGRFbGVt
ZW50Q291bnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRWxlbWVudFRyYXZlcnNh
bEFQSS9maXJzdEVsZW1lbnRDaGlsZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9F
bGVtZW50VHJhdmVyc2FsQVBJL2xhc3RFbGVtZW50Q2hpbGQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQSS9uZXh0RWxlbWVudFNpYmxpbmcuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQSS9wcmV2aW91c0Vs
ZW1lbnRTaWJsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDA4LTA1LTIwICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50VHJhdmVyc2FsQVBJL2NoaWxkRWxlbWVudENv
dW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudFRyYXZl
cnNhbEFQSS9jaGlsZEVsZW1lbnRDb3VudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQSS9jaGlsZEVsZW1lbnRDb3VudC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPgorICA8dGl0bGU+Y2hp
bGRFbGVtZW50Q291bnQgdGVzdCBjYXNlPC90aXRsZT4KKyAgPHN0eWxlPgorLnRlc3RfY29udGV4
dCB7CitkaXNwbGF5OiBub25lOworfQorICA8L3N0eWxlPgorICA8c2NyaXB0PgorZnVuY3Rpb24g
dGVzdE5vQ2hpbGRyZW4oKSB7CisgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im5vQ2hpbGRyZW4iKTsKKyAgICBpZiAoZWwuY2hpbGRFbGVtZW50Q291bnQgPT0gMCkgeworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0X25vQ2hpbGRyZW4iKS5pbm5lckhU
TUwgPSAiUEFTUyI7CisgICAgfQorfQorZnVuY3Rpb24gdGVzdE5vRWxlbWVudENoaWxkcmVuKCkg
eworICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub0VsZW1lbnRDaGlsZHJl
biIpOworICAgIGlmIChlbC5jaGlsZEVsZW1lbnRDb3VudCA9PSAwKSB7CisgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHRfbm9FbGVtZW50Q2hpbGRyZW4iKS5pbm5lckhUTUwg
PSAiUEFTUyI7CisgICAgfQorfQorZnVuY3Rpb24gdGVzdENoaWxkcmVuKCkgeworICAgIHZhciBl
bCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZHJlbiIpOworICAgIGlmIChlbC5jaGls
ZEVsZW1lbnRDb3VudCA9PSAyKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJy
ZXN1bHRfY2hpbGRyZW4iKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgfQorfQorCitmdW5jdGlv
biBpbXBsZW1lbnRzRWxlbWVudFRyYXZlcnNhbCgpIHsKKyAgICB2YXIgYXBpID0gZmFsc2U7Cisg
ICAgZm9yIChwIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkgeworICAgICAgICBpZiAocCA9
PSAiY2hpbGRFbGVtZW50Q291bnQiKSB7CisgICAgICAgICAgICBhcGkgPSB0cnVlOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGFwaTsKK30KKworZnVu
Y3Rpb24gbGF1bmNoVGVzdCgpIHsKKyAgICBpZiAoIWltcGxlbWVudHNFbGVtZW50VHJhdmVyc2Fs
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3ROb0NoaWxkcmVuKCk7CisgICAgdGVzdE5v
RWxlbWVudENoaWxkcmVuKCk7CisgICAgdGVzdENoaWxkcmVuKCk7Cit9CisgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJsYXVuY2hUZXN0KCk7Ij4KKzxkaXYgY2xhc3M9InRlc3Rf
Y29udGV4dCI+Cis8ZGl2IGlkPSJub0NoaWxkcmVuIj48L2Rpdj4KKzxkaXYgaWQ9Im5vRWxlbWVu
dENoaWxkcmVuIj4KKzwhLS0gY29tbWVudCBidXQgbm90IGFuIGVsZW1lbnQgLS0+CitubyBlbGVt
ZW50cyBoZXJlCis8L2Rpdj4KKzxkaXYgaWQ9ImNoaWxkcmVuIj4KKzxwPmknbSBhbiBlbGVtZW50
PC9wPgorPCEtLSBjb21tZW50IC0tPgorPHA+aSdtIGFuIG90aGVyIGVsZW1lbnQ8L3A+Cis8L2Rp
dj4KKzwvZGl2PgorPGRpdiBjbGFzcz0icmVzdWx0Ij4KKzxwIGlkPSJyZXN1bHRfbm9DaGlsZHJl
biI+RkFJTDwvcD4KKzxwIGlkPSJyZXN1bHRfbm9FbGVtZW50Q2hpbGRyZW4iPkZBSUw8L3A+Cis8
cCBpZD0icmVzdWx0X2NoaWxkcmVuIj5GQUlMPC9wPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50VHJhdmVyc2FsQVBJL2ZpcnN0RWxl
bWVudENoaWxkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVu
dFRyYXZlcnNhbEFQSS9maXJzdEVsZW1lbnRDaGlsZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQSS9maXJzdEVsZW1lbnRDaGlsZC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY5IEBACis8aHRtbD4KKzxoZWFkPgorICA8dGl0
bGU+Zmlyc3RFbGVtZW50Q2hpbGQgdGVzdCBjYXNlPC90aXRsZT4KKyAgPHN0eWxlPgorLnRlc3Rf
Y29udGV4dCB7CitkaXNwbGF5OiBub25lOworfQorICA8L3N0eWxlPgorICA8c2NyaXB0PgorZnVu
Y3Rpb24gdGVzdE5vQ2hpbGRyZW4oKSB7CisgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm5vQ2hpbGRyZW4iKTsKKyAgICBpZiAoZWwuZmlyc3RFbGVtZW50Q2hpbGQgPT0gbnVs
bCkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0X25vQ2hpbGRyZW4i
KS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgfQorfQorZnVuY3Rpb24gdGVzdE5vRWxlbWVudENo
aWxkcmVuKCkgeworICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub0VsZW1l
bnRDaGlsZHJlbiIpOworICAgIGlmIChlbC5maXJzdEVsZW1lbnRDaGlsZCA9PSBudWxsKSB7Cisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHRfbm9FbGVtZW50Q2hpbGRyZW4i
KS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgfQorfQorZnVuY3Rpb24gdGVzdENoaWxkcmVuKCkg
eworICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGlsZHJlbiIpOworICAg
IGlmIChlbC5maXJzdEVsZW1lbnRDaGlsZCAhPSBudWxsICYmIGVsLmZpcnN0RWxlbWVudENoaWxk
LmlkID09ICJmaXJzdCIpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3Vs
dF9jaGlsZHJlbiIpLmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGlt
cGxlbWVudHNFbGVtZW50VHJhdmVyc2FsKCkgeworICAgIHZhciBhcGkgPSBmYWxzZTsKKyAgICBm
b3IgKHAgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7CisgICAgICAgIGlmIChwID09ICJm
aXJzdEVsZW1lbnRDaGlsZCIpIHsKKyAgICAgICAgICAgIGFwaSA9IHRydWU7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gYXBpOworfQorCitmdW5jdGlv
biBsYXVuY2hUZXN0KCkgeworICAgIGlmICghaW1wbGVtZW50c0VsZW1lbnRUcmF2ZXJzYWwoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgdGVzdE5vQ2hpbGRyZW4oKTsKKyAgICB0ZXN0Tm9FbGVt
ZW50Q2hpbGRyZW4oKTsKKyAgICB0ZXN0Q2hpbGRyZW4oKTsKK30KKyAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9ImxhdW5jaFRlc3QoKTsiPgorPGRpdiBjbGFzcz0idGVzdF9jb250
ZXh0Ij4KKzxkaXYgaWQ9Im5vQ2hpbGRyZW4iPjwvZGl2PgorPGRpdiBpZD0ibm9FbGVtZW50Q2hp
bGRyZW4iPgorPCEtLSBjb21tZW50IGJ1dCBub3QgYW4gZWxlbWVudCAtLT4KK25vIGVsZW1lbnRz
IGhlcmUKKzwvZGl2PgorPGRpdiBpZD0iY2hpbGRyZW4iPgorPCEtLSBjb21tZW50IC0tPgorPHAg
aWQ9ImZpcnN0Ij5pJ20gdGhlIGZpcnN0IGVsZW1lbnQ8L3A+Cis8cD5pJ20gYW4gb3RoZXIgZWxl
bWVudDwvcD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJyZXN1bHQiPgorPHAgaWQ9InJl
c3VsdF9ub0NoaWxkcmVuIj5GQUlMPC9wPgorPHAgaWQ9InJlc3VsdF9ub0VsZW1lbnRDaGlsZHJl
biI+RkFJTDwvcD4KKzxwIGlkPSJyZXN1bHRfY2hpbGRyZW4iPkZBSUw8L3A+Cis8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnRUcmF2ZXJz
YWxBUEkvbGFzdEVsZW1lbnRDaGlsZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL0VsZW1lbnRUcmF2ZXJzYWxBUEkvbGFzdEVsZW1lbnRDaGlsZC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQSS9sYXN0RWxl
bWVudENoaWxkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjkgQEAKKzxodG1sPgorPGhl
YWQ+CisgIDx0aXRsZT5sYXN0RWxlbWVudENoaWxkIHRlc3QgY2FzZTwvdGl0bGU+CisgIDxzdHls
ZT4KKy50ZXN0X2NvbnRleHQgeworZGlzcGxheTogbm9uZTsKK30KKyAgPC9zdHlsZT4KKyAgPHNj
cmlwdD4KK2Z1bmN0aW9uIHRlc3ROb0NoaWxkcmVuKCkgeworICAgIHZhciBlbCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJub0NoaWxkcmVuIik7CisgICAgaWYgKGVsLmxhc3RFbGVtZW50Q2hp
bGQgPT0gbnVsbCkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0X25v
Q2hpbGRyZW4iKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgfQorfQorZnVuY3Rpb24gdGVzdE5v
RWxlbWVudENoaWxkcmVuKCkgeworICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJub0VsZW1lbnRDaGlsZHJlbiIpOworICAgIGlmIChlbC5sYXN0RWxlbWVudENoaWxkID09IG51
bGwpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdF9ub0VsZW1lbnRD
aGlsZHJlbiIpLmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICB9Cit9CitmdW5jdGlvbiB0ZXN0Q2hp
bGRyZW4oKSB7CisgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoaWxkcmVu
Iik7CisgICAgaWYgKGVsLmxhc3RFbGVtZW50Q2hpbGQgIT0gbnVsbCAmJiBlbC5sYXN0RWxlbWVu
dENoaWxkLmlkID09ICJsYXN0IikgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzdWx0X2NoaWxkcmVuIikuaW5uZXJIVE1MID0gIlBBU1MiOworICAgIH0KK30KKworZnVuY3Rp
b24gaW1wbGVtZW50c0VsZW1lbnRUcmF2ZXJzYWwoKSB7CisgICAgdmFyIGFwaSA9IGZhbHNlOwor
ICAgIGZvciAocCBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHsKKyAgICAgICAgaWYgKHAg
PT0gImxhc3RFbGVtZW50Q2hpbGQiKSB7CisgICAgICAgICAgICBhcGkgPSB0cnVlOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGFwaTsKK30KKworZnVu
Y3Rpb24gbGF1bmNoVGVzdCgpIHsKKyAgICBpZiAoIWltcGxlbWVudHNFbGVtZW50VHJhdmVyc2Fs
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3ROb0NoaWxkcmVuKCk7CisgICAgdGVzdE5v
RWxlbWVudENoaWxkcmVuKCk7CisgICAgdGVzdENoaWxkcmVuKCk7Cit9CisgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJsYXVuY2hUZXN0KCk7Ij4KKzxkaXYgY2xhc3M9InRlc3Rf
Y29udGV4dCI+Cis8ZGl2IGlkPSJub0NoaWxkcmVuIj48L2Rpdj4KKzxkaXYgaWQ9Im5vRWxlbWVu
dENoaWxkcmVuIj4KKzwhLS0gY29tbWVudCBidXQgbm90IGFuIGVsZW1lbnQgLS0+CitubyBlbGVt
ZW50cyBoZXJlCis8L2Rpdj4KKzxkaXYgaWQ9ImNoaWxkcmVuIj4KKzwhLS0gY29tbWVudCAtLT4K
KzxwPmknbSBhbiBvdGhlciBlbGVtZW50PC9wPgorPHAgaWQ9Imxhc3QiPmknbSB0aGUgbGFzdCBl
bGVtZW50PC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InJlc3VsdCI+Cis8cCBpZD0i
cmVzdWx0X25vQ2hpbGRyZW4iPkZBSUw8L3A+Cis8cCBpZD0icmVzdWx0X25vRWxlbWVudENoaWxk
cmVuIj5GQUlMPC9wPgorPHAgaWQ9InJlc3VsdF9jaGlsZHJlbiI+RkFJTDwvcD4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudFRyYXZl
cnNhbEFQSS9uZXh0RWxlbWVudFNpYmxpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9FbGVtZW50VHJhdmVyc2FsQVBJL25leHRFbGVtZW50U2libGluZy5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQSS9u
ZXh0RWxlbWVudFNpYmxpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorPGh0
bWw+Cis8aGVhZD4KKyAgPHRpdGxlPm5leHRFbGVtZW50U2libGluZyB0ZXN0IGNhc2U8L3RpdGxl
PgorICA8c3R5bGU+CisudGVzdF9jb250ZXh0IHsKK2Rpc3BsYXk6IG5vbmU7Cit9CisgIDwvc3R5
bGU+CisgIDxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0Tm9DaGlsZHJlbigpIHsKKyAgICB2YXIgZWwg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9DaGlsZHJlbiIpOworICAgIGlmIChlbC5uZXh0
RWxlbWVudFNpYmxpbmcgPT0gbnVsbCkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVzdWx0X25vQ2hpbGRyZW4iKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgfQorfQorZnVu
Y3Rpb24gdGVzdE5vRWxlbWVudENoaWxkcmVuKCkgeworICAgIHZhciBlbCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJub0VsZW1lbnRDaGlsZHJlbiIpOworICAgIGlmIChlbC5uZXh0RWxlbWVu
dFNpYmxpbmcgPT0gbnVsbCkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVz
dWx0X25vRWxlbWVudENoaWxkcmVuIikuaW5uZXJIVE1MID0gIlBBU1MiOworICAgIH0KK30KK2Z1
bmN0aW9uIHRlc3RDaGlsZHJlbigpIHsKKyAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZmlyc3RFbGVtZW50Iik7CisgICAgaWYgKGVsLm5leHRFbGVtZW50U2libGluZyAhPSBu
dWxsCisgICAgICAgICAgICAmJiBlbC5uZXh0RWxlbWVudFNpYmxpbmcuaWQgPT0gIm5leHQiCisg
ICAgICAgICAgICAmJiBlbC5uZXh0RWxlbWVudFNpYmxpbmcubmV4dEVsZW1lbnRTaWJsaW5nID09
IG51bGwpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdF9jaGlsZHJl
biIpLmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGltcGxlbWVudHNF
bGVtZW50VHJhdmVyc2FsKCkgeworICAgIHZhciBhcGkgPSBmYWxzZTsKKyAgICBmb3IgKHAgaW4g
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KSB7CisgICAgICAgIGlmIChwID09ICJuZXh0RWxlbWVu
dFNpYmxpbmciKSB7CisgICAgICAgICAgICBhcGkgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGFwaTsKK30KKworZnVuY3Rpb24gbGF1bmNo
VGVzdCgpIHsKKyAgICBpZiAoIWltcGxlbWVudHNFbGVtZW50VHJhdmVyc2FsKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIHRlc3ROb0NoaWxkcmVuKCk7CisgICAgdGVzdE5vRWxlbWVudENoaWxk
cmVuKCk7CisgICAgdGVzdENoaWxkcmVuKCk7Cit9CisgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJsYXVuY2hUZXN0KCk7Ij4KKzxkaXYgY2xhc3M9InRlc3RfY29udGV4dCI+Cis8
ZGl2PgorPGRpdiBpZD0ibm9DaGlsZHJlbiI+PC9kaXY+Cis8L2Rpdj4KKzxkaXY+Cis8ZGl2IGlk
PSJub0VsZW1lbnRDaGlsZHJlbiI+PC9kaXY+Cis8IS0tIGNvbW1lbnQgYnV0IG5vdCBhbiBlbGVt
ZW50IC0tPgorbm8gZWxlbWVudHMgaGVyZQorPC9kaXY+Cis8ZGl2IGlkPSJjaGlsZHJlbiI+Cis8
cCBpZD0iZmlyc3RFbGVtZW50Ij5pJ20gYW4gZWxlbWVudDwvcD4KKzwhLS0gY29tbWVudCAtLT4K
KzxwIGlkPSJuZXh0Ij5pJ20gdGhlIG5leHQgZWxlbWVudDwvcD4KKzwvZGl2PgorPC9kaXY+Cis8
ZGl2IGNsYXNzPSJyZXN1bHQiPgorPHAgaWQ9InJlc3VsdF9ub0NoaWxkcmVuIj5GQUlMPC9wPgor
PHAgaWQ9InJlc3VsdF9ub0VsZW1lbnRDaGlsZHJlbiI+RkFJTDwvcD4KKzxwIGlkPSJyZXN1bHRf
Y2hpbGRyZW4iPkZBSUw8L3A+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnRUcmF2ZXJzYWxBUEkvcHJldmlvdXNFbGVtZW50U2libGlu
Zy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnRUcmF2ZXJz
YWxBUEkvcHJldmlvdXNFbGVtZW50U2libGluZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vRWxlbWVudFRyYXZlcnNhbEFQSS9wcmV2aW91c0VsZW1lbnRTaWJsaW5n
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzQgQEAKKzxodG1sPgorPGhlYWQ+CisgIDx0
aXRsZT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIHRlc3QgY2FzZTwvdGl0bGU+CisgIDxzdHlsZT4K
Ky50ZXN0X2NvbnRleHQgeworZGlzcGxheTogbm9uZTsKK30KKyAgPC9zdHlsZT4KKyAgPHNjcmlw
dD4KK2Z1bmN0aW9uIHRlc3ROb0NoaWxkcmVuKCkgeworICAgIHZhciBlbCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJub0NoaWxkcmVuIik7CisgICAgaWYgKGVsLnByZXZpb3VzRWxlbWVudFNp
YmxpbmcgPT0gbnVsbCkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0
X25vQ2hpbGRyZW4iKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgfQorfQorZnVuY3Rpb24gdGVz
dE5vRWxlbWVudENoaWxkcmVuKCkgeworICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJub0VsZW1lbnRDaGlsZHJlbiIpOworICAgIGlmIChlbC5wcmV2aW91c0VsZW1lbnRTaWJs
aW5nID09IG51bGwpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdF9u
b0VsZW1lbnRDaGlsZHJlbiIpLmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICB9Cit9CitmdW5jdGlv
biB0ZXN0Q2hpbGRyZW4oKSB7CisgICAgdmFyIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Imxhc3RFbGVtZW50Iik7CisgICAgaWYgKGVsLnByZXZpb3VzRWxlbWVudFNpYmxpbmcgIT0gbnVs
bAorICAgICAgICAgICAgJiYgZWwucHJldmlvdXNFbGVtZW50U2libGluZy5pZCA9PSAicHJldmlv
dXMiCisgICAgICAgICAgICAmJiBlbC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnByZXZpb3VzRWxl
bWVudFNpYmxpbmcgPT0gbnVsbCkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzdWx0X2NoaWxkcmVuIikuaW5uZXJIVE1MID0gIlBBU1MiOworICAgIH0KK30KKworZnVuY3Rp
b24gaW1wbGVtZW50c0VsZW1lbnRUcmF2ZXJzYWwoKSB7CisgICAgdmFyIGFwaSA9IGZhbHNlOwor
ICAgIGZvciAocCBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpIHsKKyAgICAgICAgaWYgKHAg
PT0gInByZXZpb3VzRWxlbWVudFNpYmxpbmciKSB7CisgICAgICAgICAgICBhcGkgPSB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGFwaTsKK30K
KworZnVuY3Rpb24gbGF1bmNoVGVzdCgpIHsKKyAgICBpZiAoIWltcGxlbWVudHNFbGVtZW50VHJh
dmVyc2FsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3ROb0NoaWxkcmVuKCk7CisgICAg
dGVzdE5vRWxlbWVudENoaWxkcmVuKCk7CisgICAgdGVzdENoaWxkcmVuKCk7Cit9CisgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsYXVuY2hUZXN0KCk7Ij4KKzxkaXYgY2xhc3M9
InRlc3RfY29udGV4dCI+Cis8ZGl2PgorPGRpdiBpZD0ibm9DaGlsZHJlbiI+PC9kaXY+Cis8L2Rp
dj4KKzxkaXY+Cis8IS0tIGNvbW1lbnQgYnV0IG5vdCBhbiBlbGVtZW50IC0tPgorbm8gZWxlbWVu
dHMgaGVyZQorPGRpdiBpZD0ibm9FbGVtZW50Q2hpbGRyZW4iPjwvZGl2PgorPC9kaXY+Cis8ZGl2
IGlkPSJjaGlsZHJlbiI+Cis8cCBpZD0icHJldmlvdXMiPmknbSB0aGUgcHJldmlvdXMgZWxlbWVu
dDwvcD4KKzwhLS0gY29tbWVudCAtLT4KKzxwIGlkPSJsYXN0RWxlbWVudCI+aSdtIGFuIGVsZW1l
bnQ8L3A+Cis8L2Rpdj4KKzwvZGl2PgorPGRpdiBjbGFzcz0icmVzdWx0Ij4KKzxwIGlkPSJyZXN1
bHRfbm9DaGlsZHJlbiI+RkFJTDwvcD4KKzxwIGlkPSJyZXN1bHRfbm9FbGVtZW50Q2hpbGRyZW4i
PkZBSUw8L3A+Cis8cCBpZD0icmVzdWx0X2NoaWxkcmVuIj5GQUlMPC9wPgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="9290"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21327</attachid>
            <date>2008-05-24 01:10:50 -0700</date>
            <delta_ts>2008-05-25 12:01:34 -0700</delta_ts>
            <desc>Fixed patch</desc>
            <filename>16489.diff</filename>
            <type>text/plain</type>
            <size>14145</size>
            <attacher name="Vincent Ricard">magic</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDEwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDgtMDUtMjQgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNu
aW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDg5CisgICAgICAg
IFdlYktpdCBkb2VzIG5vdCBzdXBwb3J0IEVsZW1lbnRUcmF2ZXJzYWwgc3BlY2lmaWNhdGlvbgor
CisgICAgICAgIFRlc3RzOiBmYXN0L2pzL0VsZW1lbnRUcmF2ZXJzYWwtY2hpbGRFbGVtZW50Q291
bnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9qcy9FbGVtZW50VHJhdmVyc2FsLWZpcnN0RWxl
bWVudENoaWxkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvanMvRWxlbWVudFRyYXZlcnNhbC1s
YXN0RWxlbWVudENoaWxkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvanMvRWxlbWVudFRyYXZl
cnNhbC1uZXh0RWxlbWVudFNpYmxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9qcy9FbGVt
ZW50VHJhdmVyc2FsLXByZXZpb3VzRWxlbWVudFNpYmxpbmcuaHRtbAorCisgICAgICAgICogZG9t
L0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zmlyc3RFbGVtZW50Q2hp
bGQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6bGFzdEVsZW1lbnRDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpwcmV2aW91c0VsZW1lbnRTaWJsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6Om5leHRFbGVtZW50U2libGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpjaGlsZEVsZW1lbnRDb3VudCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoK
KyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6CisKIDIwMDgtMDUtMjMgIFRpbW90aHkgSGF0Y2hl
ciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGVzIGEgYnVnIHdoZXJlIGEgdGlt
ZXIgd291bGQga2VlcCBmaXJpbmcgYWZ0ZXIgdGhlIEluc3BlY3RvcgpJbmRleDogV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDM0MDg1KQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyNzcsNCArMTI3Nyw0OCBAQCB2b2lkIEVsZW1lbnQ6Om5vcm1hbGl6ZUF0dHJpYnV0ZXMo
KQogICAgIH0KIH0KIAorLy8gRWxlbWVudFRyYXZlcnNhbCBBUEkKK0VsZW1lbnQqIEVsZW1lbnQ6
OmZpcnN0RWxlbWVudENoaWxkKCkgY29uc3QKK3sKKyAgICBOb2RlICpuID0gdGhpcy0+Zmlyc3RD
aGlsZCgpOworICAgIHdoaWxlIChuICYmIG4tPm5vZGVUeXBlKCkgIT0gRUxFTUVOVF9OT0RFKQor
ICAgICAgICBuID0gbi0+bmV4dFNpYmxpbmcoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxl
bWVudCo+KG4pOworfQorCitFbGVtZW50KiBFbGVtZW50OjpsYXN0RWxlbWVudENoaWxkKCkgY29u
c3QKK3sKKyAgICBOb2RlICpuID0gdGhpcy0+bGFzdENoaWxkKCk7CisgICAgd2hpbGUgKG4gJiYg
bi0+bm9kZVR5cGUoKSAhPSBFTEVNRU5UX05PREUpCisgICAgICAgIG4gPSBuLT5wcmV2aW91c1Np
YmxpbmcoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworfQorCitFbGVt
ZW50KiBFbGVtZW50OjpwcmV2aW91c0VsZW1lbnRTaWJsaW5nKCkgY29uc3QKK3sKKyAgICBOb2Rl
ICpuID0gdGhpcy0+cHJldmlvdXNTaWJsaW5nKCk7CisgICAgd2hpbGUgKG4gJiYgbi0+bm9kZVR5
cGUoKSAhPSBFTEVNRU5UX05PREUpCisgICAgICAgIG4gPSBuLT5wcmV2aW91c1NpYmxpbmcoKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOworfQorCitFbGVtZW50KiBFbGVt
ZW50OjpuZXh0RWxlbWVudFNpYmxpbmcoKSBjb25zdAoreworICAgIE5vZGUgKm4gPSB0aGlzLT5u
ZXh0U2libGluZygpOworICAgIHdoaWxlIChuICYmIG4tPm5vZGVUeXBlKCkgIT0gRUxFTUVOVF9O
T0RFKQorICAgICAgICBuID0gbi0+bmV4dFNpYmxpbmcoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RWxlbWVudCo+KG4pOworfQorCit1bnNpZ25lZCBsb25nIEVsZW1lbnQ6OmNoaWxkRWxlbWVu
dENvdW50KCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBsb25nIGNvdW50ID0gMEw7CisgICAgRWxl
bWVudCogZWwgPSBmaXJzdEVsZW1lbnRDaGlsZCgpOworICAgIHdoaWxlIChlbCkgeworICAgICAg
ICArK2NvdW50OworICAgICAgICBlbCA9IGVsLT5uZXh0RWxlbWVudFNpYmxpbmcoKTsKKyAgICB9
CisgICAgcmV0dXJuIGNvdW50OworfQorCiB9CkluZGV4OiBXZWJDb3JlL2RvbS9FbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiAzNDA4NSkKKysr
IFdlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDYgKzE5MSwxMyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwogICAg
IHZpcnR1YWwgdm9pZCBiZWdpblBhcnNpbmdDaGlsZHJlbigpIHsgbV9wYXJzaW5nQ2hpbGRyZW5G
aW5pc2hlZCA9IGZhbHNlOyB9CiAKKyAgICAvLyBFbGVtZW50VHJhdmVyc2FsIEFQSQorICAgIEVs
ZW1lbnQqIGZpcnN0RWxlbWVudENoaWxkKCkgY29uc3Q7CisgICAgRWxlbWVudCogbGFzdEVsZW1l
bnRDaGlsZCgpIGNvbnN0OworICAgIEVsZW1lbnQqIHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKSBj
b25zdDsKKyAgICBFbGVtZW50KiBuZXh0RWxlbWVudFNpYmxpbmcoKSBjb25zdDsKKyAgICB1bnNp
Z25lZCBsb25nIGNoaWxkRWxlbWVudENvdW50KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgRWxl
bWVudFJhcmVEYXRhKiByYXJlRGF0YSgpOwogICAgIGNvbnN0IEVsZW1lbnRSYXJlRGF0YSogcmFy
ZURhdGEoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCShyZXZpc2lvbiAzNDA4NSkKKysrIFdlYkNvcmUv
ZG9tL0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDEzIEBAIG1vZHVs
ZSBjb3JlIHsKICAgICAgICAgTm9kZUxpc3QgICAgICAgICAgICBxdWVyeVNlbGVjdG9yQWxsKGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2VsZWN0b3Jz
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgLy8gRWxlbWVu
dFRyYXZlcnNhbCBBUEkKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgZmlyc3RF
bGVtZW50Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGxhc3RFbGVt
ZW50Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IHByZXZpb3VzRWxl
bWVudFNpYmxpbmc7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IG5leHRFbGVt
ZW50U2libGluZzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgIGNo
aWxkRWxlbWVudENvdW50OworCiAjaWYgZGVmaW5lZChMQU5HVUFHRV9PQkpFQ1RJVkVfQykKICAg
ICAgICAgLy8gT2JqZWN0aXZlLUMgZXh0ZW5zaW9ucwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGlubmVyVGV4dDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDM0MTA0KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgt
MDUtMjQgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNuaW5qYS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdGVzdCBjYXNlcyBmb3IgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDg5CisgICAgICAgIFdlYktp
dCBkb2VzIG5vdCBzdXBwb3J0IEVsZW1lbnRUcmF2ZXJzYWwgc3BlY2lmaWNhdGlvbgorCisgICAg
ICAgICogZmFzdC9qcy9FbGVtZW50VHJhdmVyc2FsLWNoaWxkRWxlbWVudENvdW50Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvanMvRWxlbWVudFRyYXZlcnNhbC1maXJzdEVsZW1lbnRDaGls
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL0VsZW1lbnRUcmF2ZXJzYWwtbGFzdEVs
ZW1lbnRDaGlsZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL0VsZW1lbnRUcmF2ZXJz
YWwtbmV4dEVsZW1lbnRTaWJsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvRWxl
bWVudFRyYXZlcnNhbC1wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvanMvcmVzb3VyY2VzL0VsZW1lbnRUcmF2ZXJzYWwtY2hpbGRFbGVtZW50Q291bnQu
anM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL0VsZW1lbnRUcmF2ZXJzYWwt
Zmlyc3RFbGVtZW50Q2hpbGQuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2Vz
L0VsZW1lbnRUcmF2ZXJzYWwtbGFzdEVsZW1lbnRDaGlsZC5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9qcy9yZXNvdXJjZXMvRWxlbWVudFRyYXZlcnNhbC1uZXh0RWxlbWVudFNpYmxpbmcuanM6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL0VsZW1lbnRUcmF2ZXJzYWwtcHJl
dmlvdXNFbGVtZW50U2libGluZy5qczogQWRkZWQuCisKIDIwMDgtMDUtMjMgIEp1c3RpbiBHYXJj
aWEgIDxqdXN0aW4uZ2FyY2lhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
bi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvRWxlbWVudFRyYXZlcnNhbC1jaGlsZEVsZW1l
bnRDb3VudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvRWxlbWVudFRy
YXZlcnNhbC1jaGlsZEVsZW1lbnRDb3VudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9qcy9FbGVtZW50VHJhdmVyc2FsLWNoaWxkRWxlbWVudENvdW50Lmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvRWxlbWVudFRyYXZlcnNhbC1jaGlsZEVsZW1lbnRDb3VudC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9qcy9FbGVtZW50VHJhdmVyc2FsLWZpcnN0RWxlbWVudENoaWxkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9FbGVtZW50VHJhdmVyc2FsLWZpcnN0RWxlbWVudENo
aWxkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL0VsZW1lbnRUcmF2
ZXJzYWwtZmlyc3RFbGVtZW50Q2hpbGQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9FbGVtZW50VHJhdmVyc2Fs
LWZpcnN0RWxlbWVudENoaWxkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL0VsZW1lbnRUcmF2ZXJz
YWwtbGFzdEVsZW1lbnRDaGlsZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
anMvRWxlbWVudFRyYXZlcnNhbC1sYXN0RWxlbWVudENoaWxkLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2pzL0VsZW1lbnRUcmF2ZXJzYWwtbGFzdEVsZW1lbnRDaGlsZC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMg
Ii0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL0VsZW1lbnRUcmF2ZXJzYWwtbGFzdEVsZW1lbnRDaGlsZC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9qcy9FbGVtZW50VHJhdmVyc2FsLW5leHRFbGVtZW50U2libGluZy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvRWxlbWVudFRyYXZlcnNhbC1uZXh0
RWxlbWVudFNpYmxpbmcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMv
RWxlbWVudFRyYXZlcnNhbC1uZXh0RWxlbWVudFNpYmxpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9FbGVt
ZW50VHJhdmVyc2FsLW5leHRFbGVtZW50U2libGluZy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9F
bGVtZW50VHJhdmVyc2FsLXByZXZpb3VzRWxlbWVudFNpYmxpbmcuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2pzL0VsZW1lbnRUcmF2ZXJzYWwtcHJldmlvdXNFbGVtZW50U2li
bGluZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9FbGVtZW50VHJh
dmVyc2FsLXByZXZpb3VzRWxlbWVudFNpYmxpbmcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9FbGVtZW50VHJh
dmVyc2FsLXByZXZpb3VzRWxlbWVudFNpYmxpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVz
b3VyY2VzL0VsZW1lbnRUcmF2ZXJzYWwtY2hpbGRFbGVtZW50Q291bnQuanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvRWxlbWVudFRyYXZlcnNhbC1jaGlsZEVs
ZW1lbnRDb3VudC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3Vy
Y2VzL0VsZW1lbnRUcmF2ZXJzYWwtY2hpbGRFbGVtZW50Q291bnQuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTQgQEAKK2Rlc2NyaXB0aW9uKAorIlRoaXMgdGVzdCBjaGVja3MgdGhlIGltcGxl
bWVudGF0aW9uIG9mIHRoZSBjaGlsZEVsZW1lbnRDb3VudCBhdHRyaWJ1dGUgKEVsZW1lbnRUcmF2
ZXJzYWwgQVBJKS4iCisrICI8ZGl2IGlkPSdub0NoaWxkcmVuJz48L2Rpdj4iCisrICI8ZGl2IGlk
PSdub0VsZW1lbnRDaGlsZHJlbic+PCEtLSBjb21tZW50IGJ1dCBub3QgYW4gZWxlbWVudCAtLT5u
byBlbGVtZW50cyBoZXJlPC9kaXY+IgorKyAiPGRpdiBpZD0nY2hpbGRyZW4nPjxwPmknbSBhbiBl
bGVtZW50PC9wPjwhLS0gY29tbWVudCAtLT48cD5pJ20gYW4gb3RoZXIgZWxlbWVudDwvcD48L2Rp
dj4iCispOworCitzaG91bGRCZSgiMCIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm5vQ2hp
bGRyZW5cIikuY2hpbGRFbGVtZW50Q291bnQiKTsKKworc2hvdWxkQmUoIjAiLCAiZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoXCJub0VsZW1lbnRDaGlsZHJlblwiKS5jaGlsZEVsZW1lbnRDb3VudCIp
OworCitzaG91bGRCZSgiMiIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNoaWxkcmVuXCIp
LmNoaWxkRWxlbWVudENvdW50Iik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJj
ZXMvRWxlbWVudFRyYXZlcnNhbC1maXJzdEVsZW1lbnRDaGlsZC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9FbGVtZW50VHJhdmVyc2FsLWZpcnN0RWxlbWVu
dENoaWxkLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMv
RWxlbWVudFRyYXZlcnNhbC1maXJzdEVsZW1lbnRDaGlsZC5qcwkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxNCBAQAorZGVzY3JpcHRpb24oCisiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgaW1wbGVtZW50
YXRpb24gb2YgdGhlIGZpcnN0RWxlbWVudENoaWxkIGF0dHJpYnV0ZSAoRWxlbWVudFRyYXZlcnNh
bCBBUEkpLiIKKysgIjxkaXYgaWQ9J25vQ2hpbGRyZW4nPjwvZGl2PiIKKysgIjxkaXYgaWQ9J25v
RWxlbWVudENoaWxkcmVuJz48IS0tIGNvbW1lbnQgYnV0IG5vdCBhbiBlbGVtZW50IC0tPm5vIGVs
ZW1lbnRzIGhlcmU8L2Rpdj4iCisrICI8ZGl2IGlkPSdjaGlsZHJlbic+PCEtLSBjb21tZW50IC0t
PjxwIGlkPSdmaXJzdCc+aSdtIHRoZSBsYXN0IGVsZW1lbnQ8L3A+PHA+aSdtIGFuIG90aGVyIGVs
ZW1lbnQ8L3A+PC9kaXY+IgorKTsKKworc2hvdWxkQmUoIm51bGwiLCAiZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoXCJub0NoaWxkcmVuXCIpLmZpcnN0RWxlbWVudENoaWxkIik7CisKK3Nob3VsZEJl
KCJudWxsIiwgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwibm9FbGVtZW50Q2hpbGRyZW5cIiku
Zmlyc3RFbGVtZW50Q2hpbGQiKTsKKworc2hvdWxkQmUoIidmaXJzdCciLCAiZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoXCJjaGlsZHJlblwiKS5maXJzdEVsZW1lbnRDaGlsZC5pZCIpOworCitzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL0VsZW1lbnRUcmF2ZXJzYWwtbGFzdEVsZW1l
bnRDaGlsZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9F
bGVtZW50VHJhdmVyc2FsLWxhc3RFbGVtZW50Q2hpbGQuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9FbGVtZW50VHJhdmVyc2FsLWxhc3RFbGVtZW50Q2hp
bGQuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKK2Rlc2NyaXB0aW9uKAorIlRoaXMg
dGVzdCBjaGVja3MgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBsYXN0RWxlbWVudENoaWxkIGF0
dHJpYnV0ZSAoRWxlbWVudFRyYXZlcnNhbCBBUEkpLiIKKysgIjxkaXYgaWQ9J25vQ2hpbGRyZW4n
PjwvZGl2PiIKKysgIjxkaXYgaWQ9J25vRWxlbWVudENoaWxkcmVuJz48IS0tIGNvbW1lbnQgYnV0
IG5vdCBhbiBlbGVtZW50IC0tPm5vIGVsZW1lbnRzIGhlcmU8L2Rpdj4iCisrICI8ZGl2IGlkPSdj
aGlsZHJlbic+PCEtLSBjb21tZW50IC0tPjxwPmknbSBhbiBvdGhlciBlbGVtZW50PC9wPjxwIGlk
PSdsYXN0Jz5pJ20gdGhlIGxhc3QgZWxlbWVudDwvcD48L2Rpdj4iCispOworCitzaG91bGRCZSgi
bnVsbCIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIm5vQ2hpbGRyZW5cIikubGFzdEVsZW1l
bnRDaGlsZCIpOworCitzaG91bGRCZSgibnVsbCIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChc
Im5vRWxlbWVudENoaWxkcmVuXCIpLmxhc3RFbGVtZW50Q2hpbGQiKTsKKworc2hvdWxkQmUoIids
YXN0JyIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNoaWxkcmVuXCIpLmxhc3RFbGVtZW50
Q2hpbGQuaWQiKTsKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9FbGVtZW50
VHJhdmVyc2FsLW5leHRFbGVtZW50U2libGluZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL3Jlc291cmNlcy9FbGVtZW50VHJhdmVyc2FsLW5leHRFbGVtZW50U2libGluZy5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL0VsZW1lbnRU
cmF2ZXJzYWwtbmV4dEVsZW1lbnRTaWJsaW5nLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2
IEBACitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3QgY2hlY2tzIHRoZSBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgbmV4dEVsZW1lbnRTaWJsaW5nIGF0dHJpYnV0ZSAoRWxlbWVudFRyYXZlcnNhbCBBUEkp
LiIKKysgIjxkaXY+PGRpdiBpZD0nbm9DaGlsZHJlbic+PC9kaXY+PC9kaXY+IgorKyAiPGRpdj48
ZGl2IGlkPSdub0VsZW1lbnRDaGlsZHJlbic+PC9kaXY+PCEtLSBjb21tZW50IGJ1dCBub3QgYW4g
ZWxlbWVudCAtLT5ubyBlbGVtZW50cyBoZXJlPC9kaXY+IgorKyAiPGRpdiBpZD0nY2hpbGRyZW4n
PjxwIGlkPSdmaXJzdEVsZW1lbnQnPmknbSBhbiBlbGVtZW50PC9wPjwhLS0gY29tbWVudCAtLT48
cCBpZD0nbmV4dCc+aSdtIHRoZSBuZXh0IGVsZW1lbnQ8L3A+PC9kaXY+IgorKTsKKworc2hvdWxk
QmUoIm51bGwiLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJub0NoaWxkcmVuXCIpLm5leHRF
bGVtZW50U2libGluZyIpOworCitzaG91bGRCZSgibnVsbCIsICJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChcIm5vRWxlbWVudENoaWxkcmVuXCIpLm5leHRFbGVtZW50U2libGluZyIpOworCitzaG91
bGRCZSgiJ25leHQnIiwgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiZmlyc3RFbGVtZW50XCIp
Lm5leHRFbGVtZW50U2libGluZy5pZCIpOworCitzaG91bGRCZSgibnVsbCIsICJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChcImZpcnN0RWxlbWVudFwiKS5uZXh0RWxlbWVudFNpYmxpbmcubmV4dEVs
ZW1lbnRTaWJsaW5nIik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvRWxl
bWVudFRyYXZlcnNhbC1wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL0VsZW1lbnRUcmF2ZXJzYWwtcHJldmlvdXNFbGVt
ZW50U2libGluZy5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvcmVzb3Vy
Y2VzL0VsZW1lbnRUcmF2ZXJzYWwtcHJldmlvdXNFbGVtZW50U2libGluZy5qcwkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRpb24oCisiVGhpcyB0ZXN0IGNoZWNrcyB0aGUg
aW1wbGVtZW50YXRpb24gb2YgdGhlIHByZXZpb3VzRWxlbWVudFNpYmxpbmcgYXR0cmlidXRlIChF
bGVtZW50VHJhdmVyc2FsIEFQSSkuIgorKyAiPGRpdj48ZGl2IGlkPSdub0NoaWxkcmVuJz48L2Rp
dj48L2Rpdj4iCisrICI8ZGl2PjwhLS0gY29tbWVudCBidXQgbm90IGFuIGVsZW1lbnQgLS0+bm8g
ZWxlbWVudHMgaGVyZTxkaXYgaWQ9J25vRWxlbWVudENoaWxkcmVuJz48L2Rpdj48L2Rpdj4iCisr
ICI8ZGl2IGlkPSdjaGlsZHJlbic+PHAgaWQ9J3ByZXZpb3VzJz5pJ20gdGhlIHByZXZpb3VzIGVs
ZW1lbnQ8L3A+PCEtLSBjb21tZW50IC0tPjxwIGlkPSdsYXN0RWxlbWVudCc+aSdtIGFuIGVsZW1l
bnQ8L3A+PC9kaXY+IgorKTsKKworc2hvdWxkQmUoIm51bGwiLCAiZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoXCJub0NoaWxkcmVuXCIpLnByZXZpb3VzRWxlbWVudFNpYmxpbmciKTsKKworc2hvdWxk
QmUoIm51bGwiLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJub0VsZW1lbnRDaGlsZHJlblwi
KS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIik7CisKK3Nob3VsZEJlKCIncHJldmlvdXMnIiwgImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwibGFzdEVsZW1lbnRcIikucHJldmlvdXNFbGVtZW50U2li
bGluZy5pZCIpOworCitzaG91bGRCZSgibnVsbCIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZChc
Imxhc3RFbGVtZW50XCIpLnByZXZpb3VzRWxlbWVudFNpYmxpbmcucHJldmlvdXNFbGVtZW50U2li
bGluZyIpOworCitzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUK
</data>
<flag name="review"
          id="9314"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21338</attachid>
            <date>2008-05-25 12:01:34 -0700</date>
            <delta_ts>2008-05-25 12:41:15 -0700</delta_ts>
            <desc>New fixed patch</desc>
            <filename>16489.diff</filename>
            <type>text/plain</type>
            <size>9366</size>
            <attacher name="Vincent Ricard">magic</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNDEwNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDgtMDUtMjQgIFZpbmNlbnQgUmljYXJkICA8bWFnaWNAbWFnaWNu
aW5qYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDg5CisgICAgICAg
IFdlYktpdCBkb2VzIG5vdCBzdXBwb3J0IEVsZW1lbnRUcmF2ZXJzYWwgc3BlY2lmaWNhdGlvbgor
CisgICAgICAgIFRlc3RzOiBmYXN0L2pzL0VsZW1lbnRUcmF2ZXJzYWwtY2hpbGRFbGVtZW50Q291
bnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9qcy9FbGVtZW50VHJhdmVyc2FsLWZpcnN0RWxl
bWVudENoaWxkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvanMvRWxlbWVudFRyYXZlcnNhbC1s
YXN0RWxlbWVudENoaWxkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvanMvRWxlbWVudFRyYXZl
cnNhbC1uZXh0RWxlbWVudFNpYmxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9qcy9FbGVt
ZW50VHJhdmVyc2FsLXByZXZpb3VzRWxlbWVudFNpYmxpbmcuaHRtbAorCisgICAgICAgICogZG9t
L0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zmlyc3RFbGVtZW50Q2hp
bGQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6bGFzdEVsZW1lbnRDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpwcmV2aW91c0VsZW1lbnRTaWJsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkVsZW1lbnQ6Om5leHRFbGVtZW50U2libGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpjaGlsZEVsZW1lbnRDb3VudCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoK
KyAgICAgICAgKiBkb20vRWxlbWVudC5pZGw6CisKIDIwMDgtMDUtMjMgIFRpbW90aHkgSGF0Y2hl
ciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeGVzIGEgYnVnIHdoZXJlIGEgdGlt
ZXIgd291bGQga2VlcCBmaXJpbmcgYWZ0ZXIgdGhlIEluc3BlY3RvcgpJbmRleDogV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDM0MDg1KQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyNzcsNCArMTI3Nyw0OCBAQCB2b2lkIEVsZW1lbnQ6Om5vcm1hbGl6ZUF0dHJpYnV0ZXMo
KQogICAgIH0KIH0KIAorLy8gRWxlbWVudFRyYXZlcnNhbCBBUEkKK0VsZW1lbnQqIEVsZW1lbnQ6
OmZpcnN0RWxlbWVudENoaWxkKCkgY29uc3QKK3sKKyAgICBOb2RlKiBuID0gdGhpcy0+Zmlyc3RD
aGlsZCgpOworICAgIHdoaWxlIChuICYmICFuLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIG4g
PSBuLT5uZXh0U2libGluZygpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obik7
Cit9CisKK0VsZW1lbnQqIEVsZW1lbnQ6Omxhc3RFbGVtZW50Q2hpbGQoKSBjb25zdAoreworICAg
IE5vZGUqIG4gPSB0aGlzLT5sYXN0Q2hpbGQoKTsKKyAgICB3aGlsZSAobiAmJiAhbi0+aXNFbGVt
ZW50Tm9kZSgpKQorICAgICAgICBuID0gbi0+cHJldmlvdXNTaWJsaW5nKCk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsKK30KKworRWxlbWVudCogRWxlbWVudDo6cHJldmlv
dXNFbGVtZW50U2libGluZygpIGNvbnN0Cit7CisgICAgTm9kZSogbiA9IHRoaXMtPnByZXZpb3Vz
U2libGluZygpOworICAgIHdoaWxlIChuICYmICFuLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAg
IG4gPSBuLT5wcmV2aW91c1NpYmxpbmcoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG4pOworfQorCitFbGVtZW50KiBFbGVtZW50OjpuZXh0RWxlbWVudFNpYmxpbmcoKSBjb25z
dAoreworICAgIE5vZGUqIG4gPSB0aGlzLT5uZXh0U2libGluZygpOworICAgIHdoaWxlIChuICYm
ICFuLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIG4gPSBuLT5uZXh0U2libGluZygpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obik7Cit9CisKK3Vuc2lnbmVkIEVsZW1lbnQ6
OmNoaWxkRWxlbWVudENvdW50KCkgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBjb3VudCA9IDA7Cisg
ICAgTm9kZSogbiA9IHRoaXMtPmZpcnN0Q2hpbGQoKTsKKyAgICB3aGlsZSAobikgeworICAgICAg
ICBjb3VudCArPSBuLT5pc0VsZW1lbnROb2RlKCk7CisgICAgICAgIG4gPSBuLT5uZXh0U2libGlu
ZygpOworICAgIH0KKyAgICByZXR1cm4gY291bnQ7Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUvZG9t
L0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FbGVtZW50LmgJKHJldmlzaW9u
IDM0MDg1KQorKysgV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEs
NiArMTkxLDEzIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxk
cmVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luUGFyc2luZ0NoaWxkcmVuKCkgeyBtX3BhcnNp
bmdDaGlsZHJlbkZpbmlzaGVkID0gZmFsc2U7IH0KIAorICAgIC8vIEVsZW1lbnRUcmF2ZXJzYWwg
QVBJCisgICAgRWxlbWVudCogZmlyc3RFbGVtZW50Q2hpbGQoKSBjb25zdDsKKyAgICBFbGVtZW50
KiBsYXN0RWxlbWVudENoaWxkKCkgY29uc3Q7CisgICAgRWxlbWVudCogcHJldmlvdXNFbGVtZW50
U2libGluZygpIGNvbnN0OworICAgIEVsZW1lbnQqIG5leHRFbGVtZW50U2libGluZygpIGNvbnN0
OworICAgIHVuc2lnbmVkIGNoaWxkRWxlbWVudENvdW50KCkgY29uc3Q7CisKIHByaXZhdGU6CiAg
ICAgRWxlbWVudFJhcmVEYXRhKiByYXJlRGF0YSgpOwogICAgIGNvbnN0IEVsZW1lbnRSYXJlRGF0
YSogcmFyZURhdGEoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZG9tL0VsZW1lbnQuaWRsCShyZXZpc2lvbiAzNDA4NSkKKysrIFdl
YkNvcmUvZG9tL0VsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDEzIEBA
IG1vZHVsZSBjb3JlIHsKICAgICAgICAgTm9kZUxpc3QgICAgICAgICAgICBxdWVyeVNlbGVjdG9y
QWxsKGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc2Vs
ZWN0b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgLy8g
RWxlbWVudFRyYXZlcnNhbCBBUEkKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQg
Zmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGxh
c3RFbGVtZW50Q2hpbGQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IHByZXZp
b3VzRWxlbWVudFNpYmxpbmc7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IG5l
eHRFbGVtZW50U2libGluZzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgY2hpbGRFbGVtZW50Q291bnQ7CisKICNpZiBkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9D
KQogICAgICAgICAvLyBPYmplY3RpdmUtQyBleHRlbnNpb25zCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgaW5uZXJUZXh0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzQxMDQpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAor
MjAwOC0wNS0yNCAgVmluY2VudCBSaWNhcmQgIDxtYWdpY0BtYWdpY25pbmphLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXN0IGNhc2VzIGZv
ciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0ODkKKyAgICAgICAg
V2ViS2l0IGRvZXMgbm90IHN1cHBvcnQgRWxlbWVudFRyYXZlcnNhbCBzcGVjaWZpY2F0aW9uCisK
KyAgICAgICAgKiBmYXN0L2pzL0VsZW1lbnRUcmF2ZXJzYWwtY2hpbGRFbGVtZW50Q291bnQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9FbGVtZW50VHJhdmVyc2FsLWZpcnN0RWxlbWVu
dENoaWxkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvRWxlbWVudFRyYXZlcnNhbC1s
YXN0RWxlbWVudENoaWxkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvRWxlbWVudFRy
YXZlcnNhbC1uZXh0RWxlbWVudFNpYmxpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9q
cy9FbGVtZW50VHJhdmVyc2FsLXByZXZpb3VzRWxlbWVudFNpYmxpbmcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvRWxlbWVudFRyYXZlcnNhbC1jaGlsZEVsZW1lbnRD
b3VudC5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvRWxlbWVudFRyYXZl
cnNhbC1maXJzdEVsZW1lbnRDaGlsZC5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9yZXNv
dXJjZXMvRWxlbWVudFRyYXZlcnNhbC1sYXN0RWxlbWVudENoaWxkLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2pzL3Jlc291cmNlcy9FbGVtZW50VHJhdmVyc2FsLW5leHRFbGVtZW50U2libGlu
Zy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvRWxlbWVudFRyYXZlcnNh
bC1wcmV2aW91c0VsZW1lbnRTaWJsaW5nLmpzOiBBZGRlZC4KKwogMjAwOC0wNS0yMyAgSnVzdGlu
IEdhcmNpYSAgPGp1c3Rpbi5nYXJjaWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9lbGVtZW50LXRyYXZl
cnNhbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxl
bWVudC9lbGVtZW50LXRyYXZlcnNhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L2VsZW1lbnQtdHJhdmVyc2FsLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgaW1wbGVt
ZW50YXRpb24gb2YgdGhlIEVsZW1lbnRUcmF2ZXJzYWwgQVBJLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworVGVzdCB3aXRoIG5vIGNoaWxkcmVuCitQQVNTIG5vQ2hpbGRyZW4uZmly
c3RFbGVtZW50Q2hpbGQgaXMgbnVsbAorUEFTUyBub0NoaWxkcmVuLmxhc3RFbGVtZW50Q2hpbGQg
aXMgbnVsbAorUEFTUyBub0NoaWxkcmVuLnByZXZpb3VzRWxlbWVudFNpYmxpbmcgaXMgbnVsbAor
UEFTUyBub0NoaWxkcmVuLm5leHRFbGVtZW50U2libGluZyBpcyBudWxsCitQQVNTIG5vQ2hpbGRy
ZW4uY2hpbGRFbGVtZW50Q291bnQgaXMgMAorVGVzdCB3aXRoIG5vIGVsZW1lbnQgY2hpbGRyZW4K
K1BBU1Mgbm9FbGVtZW50Q2hpbGRyZW4uZmlyc3RFbGVtZW50Q2hpbGQgaXMgbnVsbAorUEFTUyBu
b0VsZW1lbnRDaGlsZHJlbi5sYXN0RWxlbWVudENoaWxkIGlzIG51bGwKK1BBU1Mgbm9FbGVtZW50
Q2hpbGRyZW4ucHJldmlvdXNFbGVtZW50U2libGluZyBpcyBudWxsCitQQVNTIG5vRWxlbWVudENo
aWxkcmVuLm5leHRFbGVtZW50U2libGluZyBpcyBudWxsCitQQVNTIG5vRWxlbWVudENoaWxkcmVu
LmNoaWxkRWxlbWVudENvdW50IGlzIDAKK1Rlc3Qgd2l0aCBlbGVtZW50cworUEFTUyBjaGlsZHJl
bi5maXJzdEVsZW1lbnRDaGlsZCBpcyBmaXJzdAorUEFTUyBjaGlsZHJlbi5sYXN0RWxlbWVudENo
aWxkIGlzIGxhc3QKK1BBU1MgZmlyc3QubmV4dEVsZW1lbnRTaWJsaW5nIGlzIGxhc3QKK1BBU1Mg
Zmlyc3QubmV4dEVsZW1lbnRTaWJsaW5nLm5leHRFbGVtZW50U2libGluZyBpcyBudWxsCitQQVNT
IGxhc3QucHJldmlvdXNFbGVtZW50U2libGluZyBpcyBmaXJzdAorUEFTUyBsYXN0LnByZXZpb3Vz
RWxlbWVudFNpYmxpbmcucHJldmlvdXNFbGVtZW50U2libGluZyBpcyBudWxsCitQQVNTIGNoaWxk
cmVuLmNoaWxkRWxlbWVudENvdW50IGlzIDIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50
L2VsZW1lbnQtdHJhdmVyc2FsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vRWxlbWVudC9lbGVtZW50LXRyYXZlcnNhbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vRWxlbWVudC9lbGVtZW50LXRyYXZlcnNhbC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2VsZW1lbnQtdHJhdmVyc2FsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvcmVzb3Vy
Y2VzL2VsZW1lbnQtdHJhdmVyc2FsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0VsZW1lbnQvcmVzb3VyY2VzL2VsZW1lbnQtdHJhdmVyc2FsLmpzCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9yZXNvdXJjZXMvZWxlbWVudC10cmF2ZXJz
YWwuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgY2hlY2tzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRWxlbWVudFRyYXZlcnNhbCBBUEku
Iik7CisKK2RlYnVnKCdUZXN0IHdpdGggbm8gY2hpbGRyZW4nKTsKK3ZhciBub0NoaWxkcmVuID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisKK3Nob3VsZEJlKCJub0NoaWxkcmVuLmZp
cnN0RWxlbWVudENoaWxkIiwgIm51bGwiKTsKK3Nob3VsZEJlKCJub0NoaWxkcmVuLmxhc3RFbGVt
ZW50Q2hpbGQiLCAibnVsbCIpOworc2hvdWxkQmUoIm5vQ2hpbGRyZW4ucHJldmlvdXNFbGVtZW50
U2libGluZyIsICJudWxsIik7CitzaG91bGRCZSgibm9DaGlsZHJlbi5uZXh0RWxlbWVudFNpYmxp
bmciLCAibnVsbCIpOworc2hvdWxkQmUoIm5vQ2hpbGRyZW4uY2hpbGRFbGVtZW50Q291bnQiLCAi
MCIpOworCitkZWJ1ZygnVGVzdCB3aXRoIG5vIGVsZW1lbnQgY2hpbGRyZW4nKTsKK3ZhciBub0Vs
ZW1lbnRDaGlsZHJlbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworbm9FbGVtZW50
Q2hpbGRyZW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiY29tbWVudCBidXQg
bm90IGFuIGVsZW1lbnQiKSk7Citub0VsZW1lbnRDaGlsZHJlbi5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgibm8gZWxlbWVudHMgaGVyZSIpKTsKKworc2hvdWxkQmUoIm5vRWxl
bWVudENoaWxkcmVuLmZpcnN0RWxlbWVudENoaWxkIiwgIm51bGwiKTsKK3Nob3VsZEJlKCJub0Vs
ZW1lbnRDaGlsZHJlbi5sYXN0RWxlbWVudENoaWxkIiwgIm51bGwiKTsKK3Nob3VsZEJlKCJub0Vs
ZW1lbnRDaGlsZHJlbi5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIiwgIm51bGwiKTsKK3Nob3VsZEJl
KCJub0VsZW1lbnRDaGlsZHJlbi5uZXh0RWxlbWVudFNpYmxpbmciLCAibnVsbCIpOworc2hvdWxk
QmUoIm5vRWxlbWVudENoaWxkcmVuLmNoaWxkRWxlbWVudENvdW50IiwgIjAiKTsKKworZGVidWco
J1Rlc3Qgd2l0aCBlbGVtZW50cycpOwordmFyIGNoaWxkcmVuID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CitjaGlsZHJlbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVDb21tZW50
KCJmaXJzdCBjb21tZW50IikpOwordmFyIGZpcnN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
cCcpOworY2hpbGRyZW4uYXBwZW5kQ2hpbGQoZmlyc3QpOworY2hpbGRyZW4uYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiYSBjb21tZW50IikpOwordmFyIGxhc3QgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdwJyk7CitjaGlsZHJlbi5hcHBlbmRDaGlsZChsYXN0KTsKK2NoaWxk
cmVuLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoImxhc3QgY29tbWVudCIpKTsK
Kworc2hvdWxkQmUoImNoaWxkcmVuLmZpcnN0RWxlbWVudENoaWxkIiwgImZpcnN0Iik7CitzaG91
bGRCZSgiY2hpbGRyZW4ubGFzdEVsZW1lbnRDaGlsZCIsICJsYXN0Iik7CitzaG91bGRCZSgiZmly
c3QubmV4dEVsZW1lbnRTaWJsaW5nIiwgImxhc3QiKTsKK3Nob3VsZEJlKCJmaXJzdC5uZXh0RWxl
bWVudFNpYmxpbmcubmV4dEVsZW1lbnRTaWJsaW5nIiwgIm51bGwiKTsKK3Nob3VsZEJlKCJsYXN0
LnByZXZpb3VzRWxlbWVudFNpYmxpbmciLCAiZmlyc3QiKTsKK3Nob3VsZEJlKCJsYXN0LnByZXZp
b3VzRWxlbWVudFNpYmxpbmcucHJldmlvdXNFbGVtZW50U2libGluZyIsICJudWxsIik7CitzaG91
bGRCZSgiY2hpbGRyZW4uY2hpbGRFbGVtZW50Q291bnQiLCAiMiIpOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="9320"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>