<?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>79886</bug_id>
          
          <creation_ts>2012-02-29 00:52:59 -0800</creation_ts>
          <short_desc>ShadowRoot should have activeElement</short_desc>
          <delta_ts>2012-03-09 12:53:55 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>80721</dependson>
          <blocked>63601</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>hayato</cc>
    
    <cc>kaustubh.ra</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>567475</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-29 00:52:59 -0800</bug_when>
    <thetext>http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-shadow-root-active-element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567579</commentid>
    <comment_count>1</comment_count>
      <attachid>129438</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-29 07:06:35 -0800</bug_when>
    <thetext>Created attachment 129438
Patch

Hi Morrita, I have implemented activeElement attribute for the ShadowRoot. Please check the attached patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568512</commentid>
    <comment_count>2</comment_count>
      <attachid>129438</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-01 03:13:03 -0800</bug_when>
    <thetext>Comment on attachment 129438
Patch

Thanks for taking this. But it&apos;s apparently too naive.
Please see HTMLDocument::activeElement() and consider sharing the logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569487</commentid>
    <comment_count>3</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-03-02 03:02:18 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 129438 [details])
&gt; Thanks for taking this. But it&apos;s apparently too naive.
&gt; Please see HTMLDocument::activeElement() and consider sharing the logic.

Hi Morrita, thanks for the review. I was thinking to move this HTMLDocument::activeElement to Document and share it between both HTMLDocument &amp; ShadowRoot. But I saw there is specific fix being done in HTMLDocument::activeElement to make sure that document.activeElement won&apos;t be an element in shadow root. So if we want to share the logic, we might need to revert the logic. 
In my patch, I was assuming shadowRoot.activeElement will return active element only from the current shadowDOM tree as specified in the spec. The spec says &quot;To maintain upper-boundary encapsulation, the value of the Document object&apos;s focus API property activeElement must be adjusted. To prevent loss of information when adjusting this value, each shadow root must also have an activeElement property to store the value of the focused element in the shadow DOM subtree.&quot; 

So the document.activeElement will return shadowHost as expected but shadowRoot.activeElement will return &quot;div1&quot; (where div1 is focused and is child of shadowRoot)

Please correct me if wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570502</commentid>
    <comment_count>4</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-05 01:21:40 -0800</bug_when>
    <thetext>The point is that It must be avoided to traverse all nodes to find a focusedNode. That takes O(N).
We can find a shadowRoot.activeElement in O(nest level of TreeScope), I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570508</commentid>
    <comment_count>5</comment_count>
      <attachid>130076</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-03-05 01:26:15 -0800</bug_when>
    <thetext>Created attachment 130076
Updated Patch

I have updated the patch and test case according as per our communication over IRC. Please review. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570523</commentid>
    <comment_count>6</comment_count>
      <attachid>130076</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-05 01:51:49 -0800</bug_when>
    <thetext>Comment on attachment 130076
Updated Patch

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

&gt; Source/WebCore/dom/TreeScope.cpp:177
&gt; +    while (node-&gt;treeScope() != document) {

This looks wrong for me. This loop should be:

  while (node-&gt;treeScope() != this)

isn&apos;t it?
In your patch, shadowRoot.activeElement returns the same node of document.activeElement().

&gt; LayoutTests/fast/dom/shadow/shadow-root-activeElement.html:42
&gt; +shouldBe(&quot;shadowRoot.activeElement&quot;, &quot;shadowHost&quot;);

I am afraid you misunderstand the spec. In this case, shadowRoot.activeElement should be &apos;p1&apos;, not shadowHost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570526</commentid>
    <comment_count>7</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-03-05 01:54:52 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I am afraid you misunderstand the spec. In this case, shadowRoot.activeElement should be &apos;p1&apos;, not shadowHost.

yes, seems so. My earlier patch was targeting for the same. But I guess i got confused in the wordings of the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571128</commentid>
    <comment_count>8</comment_count>
      <attachid>130076</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-05 16:06:31 -0800</bug_when>
    <thetext>Comment on attachment 130076
Updated Patch

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

&gt; Source/WebCore/dom/TreeScope.cpp:167
&gt; +Element* TreeScope::getActiveElement()

Please don&apos;t prefix this function&apos;s name by &quot;get&quot;. The prefix &quot;get&quot; should be used for only functions that return values via out arguments.

&gt; Source/WebCore/dom/TreeScope.cpp:178
&gt; +        node = node-&gt;parentOrHostNode();

This is very inefficient way to walking up the tree. You should be able to skip all nodes between two tree scopes.
e.g.
Node* treeScope;
for (; node; node = treeScope-&gt;shadowHost()) {
    treeScope = node-&gt;treeScope();
    if (treeScope == this)
        return node;
}

&gt; Source/WebCore/dom/TreeScope.cpp:183
&gt; +    return document-&gt;body();

I don&apos;t think we should always be returning body element here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572840</commentid>
    <comment_count>9</comment_count>
      <attachid>130610</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-03-07 06:24:48 -0800</bug_when>
    <thetext>Created attachment 130610
Updated Patch

Updated patch and test case as per comments. Please review once. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572842</commentid>
    <comment_count>10</comment_count>
      <attachid>130612</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-03-07 06:28:24 -0800</bug_when>
    <thetext>Created attachment 130612
Updated Patch

Updated patch with optimization of walking up the tree and fixed test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573636</commentid>
    <comment_count>11</comment_count>
      <attachid>130612</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-07 22:52:35 -0800</bug_when>
    <thetext>Comment on attachment 130612
Updated Patch

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

&gt; Source/WebCore/dom/ShadowRoot.cpp:162
&gt; +    if (this-&gt;document()-&gt;isHTMLDocument())

Why do we need this-&gt;?

&gt; Source/WebCore/dom/TreeScope.cpp:177
&gt; +    Node* treeScope = node-&gt;treeScope()-&gt;rootNode();

Why are you calling the root node a tree scope? That makes very little sense. r- because of this.

&gt; Source/WebCore/dom/TreeScope.cpp:178
&gt; +    while (treeScope != this-&gt;rootNode()) {

Why do we need this-&gt;?  Also, you can just use m_rootNode instead.

&gt; Source/WebCore/dom/TreeScope.cpp:181
&gt; +        if (treeScope == document)
&gt; +            break;

You can merge this condition with treeScope != this-&gt;rootNode().

&gt; LayoutTests/fast/dom/shadow/shadow-root-activeElement-expected.txt:9
&gt; +p1 is focused

Please don&apos;t use two-letter variables like p1. You should give a descriptive name (e.g. firstElementInShadowDOM).

&gt; LayoutTests/fast/dom/shadow/shadow-root-activeElement.html:20
&gt; +shadowRoot = new WebKitShadowRoot(shadowHost);

We definitely need a test case where we have a shadow DOM inside another shadow DOM.

&gt; LayoutTests/fast/dom/shadow/shadow-root-activeElement.html:32
&gt; +debug(&quot;Check if activeElement attribute is defined&quot;);

This debug output isn&apos;t useful at all. It repeats what the code says.

&gt; LayoutTests/fast/dom/shadow/shadow-root-activeElement.html:37
&gt; +debug(&quot;p1 is focused&quot;);
&gt; +p1.focus();
&gt; +shouldBe(&quot;shadowRoot.activeElement&quot;, &quot;p1&quot;);

Instead of saying that p1 is focused, it&apos;s much more clear to just do:
shouldBe(&quot;p1.focus();shadowRoot.activeElement&quot;, &quot;p1&quot;);

(of course, after giving p1 a more descriptive name).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>573756</commentid>
    <comment_count>12</comment_count>
      <attachid>130803</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-03-08 03:43:42 -0800</bug_when>
    <thetext>Created attachment 130803
Updated Patch

Update patch as per comments. Added test cases of nested ShadowDOM tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574664</commentid>
    <comment_count>13</comment_count>
      <attachid>130803</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-08 23:32:00 -0800</bug_when>
    <thetext>Comment on attachment 130803
Updated Patch

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

&gt; Source/WebCore/dom/ShadowRoot.cpp:165
&gt; +Element* ShadowRoot::activeElement() const
&gt; +{
&gt; +    if (document()-&gt;isHTMLDocument())
&gt; +        return treeScope()-&gt;activeElement();
&gt; +    return 0;
&gt; +}

I think it&apos;ll be better to make this function inline so that we don&apos;t introduce a new function call in Document::activeElement.

&gt; Source/WebCore/dom/TreeScope.cpp:179
&gt; +    // If treeScope becomes document, document-&gt;shadowHost() fails. As toElement(0) throws ASSERT.

I think this comment is more confusing than helpful. Please remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574667</commentid>
    <comment_count>14</comment_count>
      <attachid>130803</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-08 23:34:14 -0800</bug_when>
    <thetext>Comment on attachment 130803
Updated Patch

Ugh... I meant cq-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574686</commentid>
    <comment_count>15</comment_count>
      <attachid>130995</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-03-09 00:03:29 -0800</bug_when>
    <thetext>Created attachment 130995
Fixed Nits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575031</commentid>
    <comment_count>16</comment_count>
      <attachid>130995</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 11:38:36 -0800</bug_when>
    <thetext>Comment on attachment 130995
Fixed Nits

Clearing flags on attachment: 130995

Committed r110310: &lt;http://trac.webkit.org/changeset/110310&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575032</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 11:38:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575092</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 12:44:40 -0800</bug_when>
    <thetext>ASSERTION FAILED: node-&gt;document() == this
third_party/WebKit/Source/WebCore/dom/TreeScope.cpp(176) : WebCore::Element* WebCore::TreeScope::activeElement()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575108</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-09 12:53:55 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; ASSERTION FAILED: node-&gt;document() == this
&gt; third_party/WebKit/Source/WebCore/dom/TreeScope.cpp(176) : WebCore::Element* WebCore::TreeScope::activeElement()

Oops, sorry about missing that in the review :(

Fixed in http://trac.webkit.org/changeset/110321.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129438</attachid>
            <date>2012-02-29 07:06:35 -0800</date>
            <delta_ts>2012-03-05 01:26:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>79886.patch</filename>
            <type>text/plain</type>
            <size>9546</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTIwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTI5ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3Qgc2hvdWxkIGltcGxlbWVudCBhY3RpdmVFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGl2ZUVsZW1lbnQgYXR0
cmlidXRlIGZvciBTaGFkb3dSb290IHRvIHJldHVybiB0aGUKKyAgICAgICAgY3VycmVudGx5IGZv
Y3VzZWQgZWxlbWVudCBpbiB0aGUgc2hhZG93IERPTSBzdWJ0cmVlLgorCisgICAgICAgIFRlc3Q6
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKKworICAgICAg
ICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmFj
dGl2ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmlk
bDoKKwogMjAxMi0wMi0yOCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIERPTSBjb3VudGVyIGdyYXBocyBvdXQgb2Yg
ZXhwZXJpbWVudGFsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCShyZXZpc2lvbiAx
MDkyMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0Miw2ICsxNDIsMTYgQEAgUGFzc1JlZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9u
ZU5vZGUoYgogICAgIHJldHVybiAwOwogfQogCitFbGVtZW50KiBTaGFkb3dSb290OjphY3RpdmVF
bGVtZW50KCkgY29uc3QKK3sKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSBmaXJzdENoaWxkKCk7IG5v
ZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHRoaXMpKSB7CisgICAgICAgIGlmIChu
b2RlLT5mb2N1c2VkKCkgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsK
K30KKwogYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNv
bnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJ
KHJldmlzaW9uIDEwOTIwMykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJKHdv
cmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDggQEAgcHVibGljOgogICAgIEVsZW1lbnQqIGhvc3Qo
KSBjb25zdCB7IHJldHVybiBzaGFkb3dIb3N0KCk7IH0KICAgICBTaGFkb3dUcmVlKiB0cmVlKCkg
Y29uc3Q7CiAKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCkgY29uc3Q7CisKICAgICBTaGFk
b3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIHByZXYoKTsgfQogICAg
IFNoYWRvd1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG5leHQoKTsgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCShyZXZpc2lvbiAxMDkyMDMpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYg
KzMzLDggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlv
bgogICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRWxlbWVudCBob3N0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxl
bWVudCBhY3RpdmVFbGVtZW50OworCiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWQoaW4g
W09wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gRE9NU3RyaW5nIGVsZW1lbnRJZCk7CiAgICAg
ICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUoaW4gW09wdGlvbmFsPURlZmF1bHRJ
c1VuZGVmaW5lZF0gRE9NU3RyaW5nIGNsYXNzTmFtZSk7CiAgICAgICAgIE5vZGVMaXN0IGdldEVs
ZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIERPTVN0cmlu
ZyB0YWdOYW1lKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTIwNykKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAyLTI5ICBLYXVz
dHViaCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRv
d1Jvb3Qgc2hvdWxkIGltcGxlbWVudCBhY3RpdmVFbGVtZW50LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4ODYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2UgZm9yIGFjdGl2ZUVs
ZW1lbnQgYXR0cmlidXRlIG9mIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBBZGRlZCB0ZXN0IGNhc2UgaW4gU2tp
cHBlZCBhcyBTaGFkb3dSb290IGlzIHN1cHBvcnRlZCBieSBDaHJvbWl1bSBvbmx5LgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9T
a2lwcGVkOiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkOiBkaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBlZDogZGl0dG8uCisKIDIwMTItMDItMjkg
IENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVu
cmV2aWV3ZWQgZ2FyZGVuaW5nLCBza2lwIG1vcmUgZmFpbGluZyB0ZXN0cy4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtYWN0aXZlRWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKK1RoaXMgdGVzdHMgdGhlIGFjdGl2ZUVsZW1l
bnQgcHJvcGVydHkgb2YgYSBTaGFkb3dSb290LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworCitDaGVjayBpZiBhY3RpdmVFbGVtZW50IGF0dHJpYnV0ZSBpcyBkZWZpbmVkCitQQVNT
IHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCBpcyBkZWZpbmVkLgorZGl2MSBpcyBmb2N1c2VkCitQ
QVNTIHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudC5pZCBpcyAnZGl2MScKK2RpdjIgaXMgZm9jdXNl
ZAorUEFTUyBzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQuaWQgaXMgJ2RpdjInCitXaGVuIGZvdWNl
ZCBlbGVtZW50IGlzIGJsdXJyZWQgdGhlIGZvdWNzIGFjdGl2ZUVsZW1lbnQgc2hvdWxkIHJldHVy
biBudWxsCitQQVNTIHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCBpcyBudWxsCitvdXRlciBkaXYg
ZWxlbWVudCBmb2N1c2VkIHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCBzaG91bGQgc3RpbGwgcmV0
dXJuIG51bGwKK1BBU1Mgc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IGlzIG51bGwKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVF
bGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYx
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0iY29uc29sZSI+Cis8L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGUgYWN0aXZlRWxlbWVudCBwcm9wZXJ0eSBvZiBhIFNoYWRvd1Jvb3QuIik7CisKK2lm
ICghd2luZG93LmludGVybmFscykKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJ1bnMgb24gRFJUIG9u
bHknKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworc2hhZG93SG9zdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzaGFkb3dIb3N0KTsK
K3NoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChzaGFkb3dIb3N0KTsKKwordmFyIG91
dGVyRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CitvdXRlckRpdi5zZXRBdHRy
aWJ1dGUoImlkIiwgIm91dGVyRGl2Iik7CitvdXRlckRpdi50YWJJbmRleCA9ICIwIjsKK2RvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQob3V0ZXJEaXYpOworCit2YXIgZGl2MSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOworZGl2MS5zZXRBdHRyaWJ1dGUoImlkIiwgImRpdjEiKTsKK2Rp
djEudGFiSW5kZXggPSAiMSI7CitzaGFkb3dSb290LmFwcGVuZENoaWxkKGRpdjEpOworCit2YXIg
ZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZGl2Mi5zZXRBdHRyaWJ1dGUo
ImlkIiwgImRpdjIiKTsKK2RpdjIudGFiSW5kZXggPSAiMiI7CitzaGFkb3dSb290LmFwcGVuZENo
aWxkKGRpdjIpOworCitkZWJ1ZygiQ2hlY2sgaWYgYWN0aXZlRWxlbWVudCBhdHRyaWJ1dGUgaXMg
ZGVmaW5lZCIpOworc2hvdWxkQmVEZWZpbmVkKCJzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQiKTsK
KworZGVidWcoImRpdjEgaXMgZm9jdXNlZCIpOworZGl2MS5mb2N1cygpOworc2hvdWxkQmUoInNo
YWRvd1Jvb3QuYWN0aXZlRWxlbWVudC5pZCIsICInZGl2MSciKTsKKworZGVidWcoImRpdjIgaXMg
Zm9jdXNlZCIpOworZGl2Mi5mb2N1cygpOworc2hvdWxkQmUoInNoYWRvd1Jvb3QuYWN0aXZlRWxl
bWVudC5pZCIsICInZGl2MiciKTsKKworZGVidWcoIldoZW4gZm91Y2VkIGVsZW1lbnQgaXMgYmx1
cnJlZCB0aGUgZm91Y3MgYWN0aXZlRWxlbWVudCBzaG91bGQgcmV0dXJuIG51bGwiKTsKK2RpdjIu
Ymx1cigpOworc2hvdWxkQmUoInNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIsICJudWxsIik7CisK
K2RlYnVnKCJvdXRlciBkaXYgZWxlbWVudCBmb2N1c2VkIHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVu
dCBzaG91bGQgc3RpbGwgcmV0dXJuIG51bGwiKTsKK291dGVyRGl2LmZvY3VzKCk7CitzaG91bGRC
ZSgic2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IiwgIm51bGwiKTsKKworfQordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lvbiAxMDkyMDMpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNDI4LDYgKzQyOCw3IEBA
IGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS0KIGZhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUuaHRtbAogZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2Fi
bGUuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1uZXcuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy11bC1saS5odG1s
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDEwOTIwMykKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw2ICsxNjks
NyBAQCBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy5oCiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlz
YWJsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LW9uLWltYWdlLmh0bWwKK2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3
Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdWwtbGkuaHRtbApJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQJKHJldmlzaW9uIDEwOTIwMykKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNDU0LDYgKzE0NTQsNyBAQCBmYXN0L2Rv
bS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtCiBmYXN0L2RvbS9zaGFkb3cvY29udGVu
dC1lbGVtZW50LW91dHNpZGUtc2hhZG93LXN0eWxlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwK
K2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKIGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtbmV3Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctdWwtbGkuaHRtbApJbmRleDog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCShyZXZpc2lvbiAxMDkyMDMpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTY4LDYgKzE5NjgsNyBAQCBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LWFwaS5odG1s
CiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtc2hhZG93Lmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1kaXNhYmxlLmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVt
ZW50Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9tdWx0aXBs
ZS1zaGFkb3dyb290Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVk
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCShyZXZpc2lv
biAxMDkyMDMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkod29ya2luZyBj
b3B5KQpAQCAtMTA2OCw2ICsxMDY4LDcgQEAgZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVu
dC1vdXRzaWRlLQogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRv
dy1zdHlsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0
YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCiBmYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXVsLWxpLmh0bWwK
</data>
<flag name="review"
          id="132152"
          type_id="1"
          status="-"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="132153"
          type_id="3"
          status="-"
          setter="morrita"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130076</attachid>
            <date>2012-03-05 01:26:15 -0800</date>
            <delta_ts>2012-03-07 06:24:48 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>79886.patch</filename>
            <type>text/plain</type>
            <size>13363</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTcyNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA1ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3Qgc2hvdWxkIGltcGxlbWVudCBhY3RpdmVFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGl2ZUVsZW1lbnQgYXR0
cmlidXRlIGZvciBTaGFkb3dSb290IHRvIHJldHVybiB0aGUKKyAgICAgICAgY3VycmVudGx5IGZv
Y3VzZWQgaG9zdCBlbGVtZW50IGluIHRoZSBzaGFkb3cgRE9NIHN1YnRyZWUuCisKKyAgICAgICAg
VGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAorCisg
ICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dDo6YWN0aXZlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHJlZVNjb3BlOjphZG9wdElmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Zm9jdXNlZEZyYW1lT3duZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRy
ZWVTY29wZTo6Z2V0QWN0aXZlRWxlbWVudCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5oOgor
ICAgICAgICAoVHJlZVNjb3BlKToKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6YWN0aXZl
RWxlbWVudCk6CisKIDIwMTItMDMtMDIgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBBZGQgaW5zdHJ1bWVudGF0aW9uIGZvciBmcmFtZSBzdGFydC9lbmQg
b24gdGltZWxpbmUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCShyZXZpc2lvbiAx
MDk3MjQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1Nyw2ICsxNTcsMTQgQEAgdm9pZCBTaGFkb3dSb290OjpzZXRJbm5lckhUTUwoY29u
c3QgU3RyaQogICAgICAgICByZXBsYWNlQ2hpbGRyZW5XaXRoRnJhZ21lbnQodGhpcywgZnJhZ21l
bnQucmVsZWFzZSgpLCBlYyk7CiB9CiAKK0VsZW1lbnQqIFNoYWRvd1Jvb3Q6OmFjdGl2ZUVsZW1l
bnQoKSBjb25zdAoreworICAgIGlmICh0aGlzLT5kb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgp
KQorICAgICAgICByZXR1cm4gdGhpcy0+dHJlZVNjb3BlKCktPmdldEFjdGl2ZUVsZW1lbnQoKTsK
KworICAgIHJldHVybiAwOworfQorCiBib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQo
Tm9kZVR5cGUgdHlwZSkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaAkocmV2aXNpb24gMTA5NzI0KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsOCBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIGlubmVySFRNTCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SW5uZXJIVE1MKGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIEVsZW1lbnQqIGFjdGl2ZUVsZW1lbnQo
KSBjb25zdDsKKwogICAgIFNoYWRvd1Jvb3QqIHlvdW5nZXJTaGFkb3dSb290KCkgY29uc3QgeyBy
ZXR1cm4gcHJldigpOyB9CiAgICAgU2hhZG93Um9vdCogb2xkZXJTaGFkb3dSb290KCkgY29uc3Qg
eyByZXR1cm4gbmV4dCgpOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwJKHJl
dmlzaW9uIDEwOTcyNCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIENvbnN0
cnVjdG9yUmFpc2VzRXhjZXB0aW9uCiAgICAgXSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVu
dCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGhvc3Q7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBFbGVtZW50IGFjdGl2ZUVsZW1lbnQ7CiAKICAgICAgICAgYXR0cmli
dXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01TdHJpbmcgaW5uZXJIVE1MCiAgICAgICAg
ICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlLmNwcAkocmV2aXNpb24gMTA5NzI0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDkgKzI5LDEzIEBACiAjaW5jbHVkZSAiQ29udGFp
bmVyTm9kZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgor
I2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTWFwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgor
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmgiCiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgpAQCAtMTUxLDUgKzE1NSwzMyBAQCB2b2lkIFRyZWVTY29wZTo6YWRvcHRJZk5lZWRlZChOb2Rl
KiBub2RlCiAgICAgICAgIGFkb3B0ZXIuZXhlY3V0ZSgpOwogfQogCitzdGF0aWMgTm9kZSogZm9j
dXNlZEZyYW1lT3duZXJFbGVtZW50KEZyYW1lKiBmb2N1c2VkRnJhbWUsIEZyYW1lKiBjdXJyZW50
RnJhbWUpCit7CisgICAgZm9yICg7IGZvY3VzZWRGcmFtZTsgZm9jdXNlZEZyYW1lID0gZm9jdXNl
ZEZyYW1lLT50cmVlKCktPnBhcmVudCgpKSB7CisgICAgICAgIGlmIChmb2N1c2VkRnJhbWUtPnRy
ZWUoKS0+cGFyZW50KCkgPT0gY3VycmVudEZyYW1lKQorICAgICAgICAgICAgcmV0dXJuIGZvY3Vz
ZWRGcmFtZS0+b3duZXJFbGVtZW50KCk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitFbGVt
ZW50KiBUcmVlU2NvcGU6OmdldEFjdGl2ZUVsZW1lbnQoKQoreworICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHJvb3ROb2RlKCktPmRvY3VtZW50KCk7CisgICAgTm9kZSogbm9kZSA9IGRvY3VtZW50
LT5mb2N1c2VkTm9kZSgpOworICAgIGlmICghbm9kZSAmJiBkb2N1bWVudC0+cGFnZSgpKQorICAg
ICAgICBub2RlID0gZm9jdXNlZEZyYW1lT3duZXJFbGVtZW50KGRvY3VtZW50LT5wYWdlKCktPmZv
Y3VzQ29udHJvbGxlcigpLT5mb2N1c2VkRnJhbWUoKSwgZG9jdW1lbnQtPmZyYW1lKCkpOworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5ib2R5KCk7CisKKyAgICBBU1NF
UlQobm9kZS0+ZG9jdW1lbnQoKSA9PSBkb2N1bWVudCk7CisgICAgd2hpbGUgKG5vZGUtPnRyZWVT
Y29wZSgpICE9IGRvY3VtZW50KSB7CisgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhvc3RO
b2RlKCk7CisgICAgICAgIEFTU0VSVChub2RlKTsKKyAgICB9CisgICAgaWYgKG5vZGUtPmlzRWxl
bWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChub2RlKTsKKyAgICByZXR1cm4g
ZG9jdW1lbnQtPmJvZHkoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5oCShyZXZpc2lvbiAxMDk3MjQpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgog
ICAgIFRyZWVTY29wZSogcGFyZW50VHJlZVNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnRU
cmVlU2NvcGU7IH0KICAgICB2b2lkIHNldFBhcmVudFRyZWVTY29wZShUcmVlU2NvcGUqKTsKIAor
ICAgIEVsZW1lbnQqIGdldEFjdGl2ZUVsZW1lbnQoKTsKICAgICBFbGVtZW50KiBnZXRFbGVtZW50
QnlJZChjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKICAgICBib29sIGhhc0VsZW1lbnRXaXRo
SWQoQXRvbWljU3RyaW5nSW1wbCogaWQpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNNdWx0aXBs
ZUVsZW1lbnRzV2l0aElkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0OwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24gMTA5NzI0KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2
OCw2IEBACiAjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTEJv
ZHlFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCi0jaW5jbHVkZSAi
SFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgpAQCAtMTM2
LDMwICsxMzUsOSBAQCB2b2lkIEhUTUxEb2N1bWVudDo6c2V0RGVzaWduTW9kZShjb25zdCBTCiAg
ICAgRG9jdW1lbnQ6OnNldERlc2lnbk1vZGUobW9kZSk7CiB9CiAKLXN0YXRpYyBOb2RlKiBmb2N1
c2VkRnJhbWVPd25lckVsZW1lbnQoRnJhbWUqIGZvY3VzZWRGcmFtZSwgRnJhbWUqIGN1cnJlbnRG
cmFtZSkKLXsKLSAgICBmb3IgKDsgZm9jdXNlZEZyYW1lOyBmb2N1c2VkRnJhbWUgPSBmb2N1c2Vk
RnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGZvY3VzZWRGcmFtZS0+dHJl
ZSgpLT5wYXJlbnQoKSA9PSBjdXJyZW50RnJhbWUpCi0gICAgICAgICAgICByZXR1cm4gZm9jdXNl
ZEZyYW1lLT5vd25lckVsZW1lbnQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIEVsZW1l
bnQqIEhUTUxEb2N1bWVudDo6YWN0aXZlRWxlbWVudCgpCiB7Ci0gICAgTm9kZSogbm9kZSA9IGZv
Y3VzZWROb2RlKCk7Ci0gICAgaWYgKCFub2RlICYmIHBhZ2UoKSkKLSAgICAgICAgbm9kZSA9IGZv
Y3VzZWRGcmFtZU93bmVyRWxlbWVudChwYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2Vk
RnJhbWUoKSwgZnJhbWUoKSk7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm4gYm9keSgp
OwotICAgIEFTU0VSVChub2RlLT5kb2N1bWVudCgpID09IHRoaXMpOwotICAgIHdoaWxlIChub2Rl
LT50cmVlU2NvcGUoKSAhPSB0aGlzKSB7Ci0gICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhv
c3ROb2RlKCk7Ci0gICAgICAgIEFTU0VSVChub2RlKTsKLSAgICB9Ci0gICAgaWYgKG5vZGUtPmlz
RWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJuIHRvRWxlbWVudChub2RlKTsKLSAgICByZXR1
cm4gYm9keSgpOworICAgIHJldHVybiB0aGlzLT5nZXRBY3RpdmVFbGVtZW50KCk7CiB9CiAKIGJv
b2wgSFRNTERvY3VtZW50OjpoYXNGb2N1cygpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDk3MjUpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAor
MjAxMi0wMy0wNSAgS2F1c3R1YmggQXRyYXdhbGthciAgPGthdXN0dWJoQG1vdG9yb2xhLmNvbT4K
KworICAgICAgICBTaGFkb3dSb290IHNob3VsZCBpbXBsZW1lbnQgYWN0aXZlRWxlbWVudC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5ODg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHRo
ZSBhY3RpdmVFbGVtZW50IGF0dHJpYnV0ZSBmb3IgU2hhZG93Um9vdCB0byByZXR1cm4gdGhlCisg
ICAgICAgIGN1cnJlbnRseSBmb2N1c2VkIGhvc3QgZWxlbWVudCBpbiB0aGUgc2hhZG93IERPTSBz
dWJ0cmVlLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVs
ZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvU2tpcHBlZDogQWRkZWQgdGVzdCBjYXNlIGluIFNraXBwZWQgYXMgU2hhZG93Um9vdCBpcyBz
dXBwb3J0ZWQgYnkgQ2hyb21pdW0gb25seS4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDogZGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZDogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
d2syL1NraXBwZWQ6IGRpdHRvLgorCiAyMDEyLTAzLTA1ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxv
c3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcsIHNraXAgYSBu
ZXcgZmFpbGluZyB0ZXN0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWFjdGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9v
dC1hY3RpdmVFbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMCBA
QAorVGhpcyB0ZXN0cyB0aGUgYWN0aXZlRWxlbWVudCBwcm9wZXJ0eSBvZiBhIFNoYWRvd1Jvb3Qu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0NoZWNrIGlmIGFjdGl2ZUVsZW1l
bnQgYXR0cmlidXRlIGlzIGRlZmluZWQKK1BBU1Mgc2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IGlz
IGRlZmluZWQuCitwMSBpcyBmb2N1c2VkCitQQVNTIHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCBp
cyBzaGFkb3dIb3N0CitwMiBpcyBmb2N1c2VkCitQQVNTIHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVu
dCBpcyBzaGFkb3dIb3N0CitXaGVuIGZvdWNlZCBlbGVtZW50IGlzIGJsdXJyZWQgdGhlIGZvdWNz
IGFjdGl2ZUVsZW1lbnQgc2hvdWxkIHJldHVybiBCb2R5CitQQVNTIHNoYWRvd1Jvb3QuYWN0aXZl
RWxlbWVudCBpcyBkb2N1bWVudC5ib2R5CitvdXRlciBkaXYgZWxlbWVudCBmb2N1c2VkIHNoYWRv
d1Jvb3QuYWN0aXZlRWxlbWVudCBzaG91bGQgcmV0dXJuIG91dGVyRGl2CitQQVNTIHNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudCBpcyBvdXRlckRpdgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVF
bGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj4K
KzwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBhY3RpdmVFbGVt
ZW50IHByb3BlcnR5IG9mIGEgU2hhZG93Um9vdC4iKTsKKworaWYgKCF3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGRlYnVnKCdUaGlzIHRlc3QgcnVucyBvbiBEUlQgb25seScpOworCitpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworCitzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpOworc2hhZG93Um9vdCA9IG5ldyBX
ZWJLaXRTaGFkb3dSb290KHNoYWRvd0hvc3QpOworCit2YXIgb3V0ZXJEaXYgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJkaXYiKTsKK291dGVyRGl2LnNldEF0dHJpYnV0ZSgiaWQiLCAib3V0ZXJE
aXYiKTsKK291dGVyRGl2LnRhYkluZGV4ID0gIjAiOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChvdXRlckRpdik7CisKK3ZhciBwMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKK3Ax
LnNldEF0dHJpYnV0ZSgiaWQiLCAicDEiKTsKK3AxLnRhYkluZGV4ID0gIjEiOworc2hhZG93Um9v
dC5hcHBlbmRDaGlsZChwMSk7CisKK3ZhciBwMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAi
KTsKK3AyLnNldEF0dHJpYnV0ZSgiaWQiLCAicDIiKTsKK3AyLnRhYkluZGV4ID0gIjIiOworc2hh
ZG93Um9vdC5hcHBlbmRDaGlsZChwMik7CisKK2RlYnVnKCJDaGVjayBpZiBhY3RpdmVFbGVtZW50
IGF0dHJpYnV0ZSBpcyBkZWZpbmVkIik7CitzaG91bGRCZURlZmluZWQoInNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCIpOworCitkZWJ1ZygicDEgaXMgZm9jdXNlZCIpOworcDEuZm9jdXMoKTsKK3No
b3VsZEJlKCJzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQiLCAic2hhZG93SG9zdCIpOworCitkZWJ1
ZygicDIgaXMgZm9jdXNlZCIpOworcDIuZm9jdXMoKTsKK3Nob3VsZEJlKCJzaGFkb3dSb290LmFj
dGl2ZUVsZW1lbnQiLCAic2hhZG93SG9zdCIpOworCitkZWJ1ZygiV2hlbiBmb3VjZWQgZWxlbWVu
dCBpcyBibHVycmVkIHRoZSBmb3VjcyBhY3RpdmVFbGVtZW50IHNob3VsZCByZXR1cm4gQm9keSIp
OworcDIuYmx1cigpOworc2hvdWxkQmUoInNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIsICJkb2N1
bWVudC5ib2R5Iik7CisKK2RlYnVnKCJvdXRlciBkaXYgZWxlbWVudCBmb2N1c2VkIHNoYWRvd1Jv
b3QuYWN0aXZlRWxlbWVudCBzaG91bGQgcmV0dXJuIG91dGVyRGl2Iik7CitvdXRlckRpdi5mb2N1
cygpOworc2hvdWxkQmUoInNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIsICJvdXRlckRpdiIpOwor
Cit9Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDEwOTcy
NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBA
IC00MzEsNiArNDMxLDcgQEAgZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRl
LQogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1zdHlsZS5o
dG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0
aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRt
bAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAko
cmV2aXNpb24gMTA5NzI0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29y
a2luZyBjb3B5KQpAQCAtMTY5LDYgKzE2OSw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91
bmRhcnktZXZlbnRzLmgKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGkuaHRtbAog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctb24taW1hZ2UuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1l
bnQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LW5ldy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBl
ZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNp
b24gMTA5NzI0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHdvcmtpbmcg
Y29weSkKQEAgLTE0NTcsNiArMTQ1Nyw3IEBAIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtb3V0c2lkZS0KIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFk
b3ctc3R5bGUuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0
dGFjaGVkLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL1NraXBwZWQJKHJldmlzaW9uIDEwOTcyNCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE5NzEsNiArMTk3MSw3
IEBAIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3cuaHRtbAogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUu
aHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5l
dy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkocmV2aXNpb24gMTA5NzI0KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEw
NjgsNiArMTA2OCw3IEBAIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS0K
IGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUuaHRt
bAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFk
b3cvc2hhZG93LWRpc2FibGUuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2
ZUVsZW1lbnQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwK
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LW5ldy5odG1sCg==
</data>
<flag name="review"
          id="132973"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130610</attachid>
            <date>2012-03-07 06:24:48 -0800</date>
            <delta_ts>2012-03-07 06:28:24 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>79886.patch</filename>
            <type>text/plain</type>
            <size>13243</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDA1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA3ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3Qgc2hvdWxkIGltcGxlbWVudCBhY3RpdmVFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGl2ZUVsZW1lbnQgYXR0
cmlidXRlIGZvciBTaGFkb3dSb290IHRvIHJldHVybiB0aGUKKyAgICAgICAgY3VycmVudGx5IGZv
Y3VzZWQgZWxlbWVudCBpbiB0aGUgc2hhZG93IERPTSBzdWJ0cmVlLgorCisgICAgICAgIFRlc3Q6
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKKworICAgICAg
ICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmFj
dGl2ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmlk
bDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZTo6YWRvcHRJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OmZvY3VzZWRGcmFtZU93bmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2Nv
cGU6OmFjdGl2ZUVsZW1lbnQpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAg
KFRyZWVTY29wZSk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmFjdGl2ZUVsZW1lbnQp
OgorCiAyMDEyLTAzLTA3ICBBcnVuIFBhdG9sZSAgPGJtZjgzNEBtb3Rvcm9sYS5jb20+CiAKICAg
ICAgICAgSFRNTFRyYWNrRWxlbWVudC5pZGwgZG9lc24ndCBoYXZlIGRlZmF1bHQgYXR0cmlidXRl
LgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAkocmV2aXNpb24gMTEwMDM1KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcs
NiArMTU3LDE0IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmkKICAg
ICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2Uo
KSwgZWMpOwogfQogCitFbGVtZW50KiBTaGFkb3dSb290OjphY3RpdmVFbGVtZW50KCkgY29uc3QK
K3sKKyAgICBpZiAodGhpcy0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkKKyAgICAgICAg
cmV0dXJuIHRoaXMtPnRyZWVTY29wZSgpLT5hY3RpdmVFbGVtZW50KCk7CisKKyAgICByZXR1cm4g
MDsKK30KKwogYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUp
IGNvbnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgJKHJldmlzaW9uIDExMDAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDggQEAgcHVibGljOgogICAgIFN0cmluZyBpbm5l
ckhUTUwoKSBjb25zdDsKICAgICB2b2lkIHNldElubmVySFRNTChjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJik7CiAKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCkgY29uc3Q7CisKICAg
ICBTaGFkb3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIHByZXYoKTsg
fQogICAgIFNoYWRvd1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG5leHQo
KTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCShyZXZpc2lvbiAxMTAwMzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4
Y2VwdGlvbgogICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBob3N0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRWxlbWVudCBhY3RpdmVFbGVtZW50OwogCiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAogICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAJKHJldmlz
aW9uIDExMDAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw5ICsyOSwxMyBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGb2N1
c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlQWRvcHRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTE1MSw1ICsx
NTUsMzggQEAgdm9pZCBUcmVlU2NvcGU6OmFkb3B0SWZOZWVkZWQoTm9kZSogbm9kZQogICAgICAg
ICBhZG9wdGVyLmV4ZWN1dGUoKTsKIH0KIAorc3RhdGljIE5vZGUqIGZvY3VzZWRGcmFtZU93bmVy
RWxlbWVudChGcmFtZSogZm9jdXNlZEZyYW1lLCBGcmFtZSogY3VycmVudEZyYW1lKQoreworICAg
IGZvciAoOyBmb2N1c2VkRnJhbWU7IGZvY3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZS0+dHJlZSgp
LT5wYXJlbnQoKSkgeworICAgICAgICBpZiAoZm9jdXNlZEZyYW1lLT50cmVlKCktPnBhcmVudCgp
ID09IGN1cnJlbnRGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiBmb2N1c2VkRnJhbWUtPm93bmVy
RWxlbWVudCgpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworRWxlbWVudCogVHJlZVNjb3Bl
OjphY3RpdmVFbGVtZW50KCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByb290Tm9kZSgp
LT5kb2N1bWVudCgpOworICAgIE5vZGUqIG5vZGUgPSBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKTsK
KyAgICBpZiAoIW5vZGUgJiYgZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgbm9kZSA9IGZvY3Vz
ZWRGcmFtZU93bmVyRWxlbWVudChkb2N1bWVudC0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+
Zm9jdXNlZEZyYW1lKCksIGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybiBkb2N1bWVudC0+Ym9keSgpOworCisgICAgQVNTRVJUKG5vZGUtPmRvY3VtZW50
KCkgPT0gdGhpcyk7CisgICAgTm9kZSogdHJlZVNjb3BlID0gbm9kZS0+dHJlZVNjb3BlKCktPnJv
b3ROb2RlKCk7CisgICAgd2hpbGUgKHRyZWVTY29wZSAhPSB0aGlzLT5yb290Tm9kZSgpKSB7Cisg
ICAgICAgIC8vIElmIHRyZWVTY29wZSBiZWNvbWVzIGRvY3VtZW50LCBkb2N1bWVudC0+c2hhZG93
SG9zdCgpIGZhaWxzLiBBcyB0b0VsZW1lbnQoMCkgdGhyb3dzIEFTU0VSVC4KKyAgICAgICAgaWYg
KHRyZWVTY29wZSA9PSBkb2N1bWVudCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBub2Rl
ID0gdHJlZVNjb3BlLT5zaGFkb3dIb3N0KCk7CisgICAgICAgIHRyZWVTY29wZSA9IG5vZGUtPnRy
ZWVTY29wZSgpLT5yb290Tm9kZSgpOworICAgIH0KKworICAgIGlmIChub2RlLT5pc0VsZW1lbnRO
b2RlKCkpCisgICAgICAgIHJldHVybiB0b0VsZW1lbnQobm9kZSk7CisgICAgcmV0dXJuIDA7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAko
cmV2aXNpb24gMTEwMDM1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBUcmVlU2NvcGUqIHBhcmVu
dFRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50VHJlZVNjb3BlOyB9CiAgICAgdm9p
ZCBzZXRQYXJlbnRUcmVlU2NvcGUoVHJlZVNjb3BlKik7CiAKKyAgICBFbGVtZW50KiBhY3RpdmVF
bGVtZW50KCk7CiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWQoY29uc3QgQXRvbWljU3RyaW5n
JikgY29uc3Q7CiAgICAgYm9vbCBoYXNFbGVtZW50V2l0aElkKEF0b21pY1N0cmluZ0ltcGwqIGlk
KSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zTXVsdGlwbGVFbGVtZW50c1dpdGhJZChjb25zdCBB
dG9taWNTdHJpbmcmIGlkKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5jcHAJKHJldmlzaW9uIDExMDAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDMwICsxMzYsOSBAQCB2b2lkIEhUTUxEb2N1
bWVudDo6c2V0RGVzaWduTW9kZShjb25zdCBTCiAgICAgRG9jdW1lbnQ6OnNldERlc2lnbk1vZGUo
bW9kZSk7CiB9CiAKLXN0YXRpYyBOb2RlKiBmb2N1c2VkRnJhbWVPd25lckVsZW1lbnQoRnJhbWUq
IGZvY3VzZWRGcmFtZSwgRnJhbWUqIGN1cnJlbnRGcmFtZSkKLXsKLSAgICBmb3IgKDsgZm9jdXNl
ZEZyYW1lOyBmb2N1c2VkRnJhbWUgPSBmb2N1c2VkRnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsK
LSAgICAgICAgaWYgKGZvY3VzZWRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSA9PSBjdXJyZW50RnJh
bWUpCi0gICAgICAgICAgICByZXR1cm4gZm9jdXNlZEZyYW1lLT5vd25lckVsZW1lbnQoKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIEVsZW1lbnQqIEhUTUxEb2N1bWVudDo6YWN0aXZlRWxl
bWVudCgpCiB7Ci0gICAgTm9kZSogbm9kZSA9IGZvY3VzZWROb2RlKCk7Ci0gICAgaWYgKCFub2Rl
ICYmIHBhZ2UoKSkKLSAgICAgICAgbm9kZSA9IGZvY3VzZWRGcmFtZU93bmVyRWxlbWVudChwYWdl
KCktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkRnJhbWUoKSwgZnJhbWUoKSk7Ci0gICAgaWYg
KCFub2RlKQotICAgICAgICByZXR1cm4gYm9keSgpOwotICAgIEFTU0VSVChub2RlLT5kb2N1bWVu
dCgpID09IHRoaXMpOwotICAgIHdoaWxlIChub2RlLT50cmVlU2NvcGUoKSAhPSB0aGlzKSB7Ci0g
ICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhvc3ROb2RlKCk7Ci0gICAgICAgIEFTU0VSVChu
b2RlKTsKLSAgICB9Ci0gICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0
dXJuIHRvRWxlbWVudChub2RlKTsKLSAgICByZXR1cm4gYm9keSgpOworICAgIHJldHVybiB0aGlz
LT50cmVlU2NvcGUoKS0+YWN0aXZlRWxlbWVudCgpOwogfQogCiBib29sIEhUTUxEb2N1bWVudDo6
aGFzRm9jdXMoKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMDUyKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDMtMDcgIEthdXN0
dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgU2hhZG93
Um9vdCBzaG91bGQgaW1wbGVtZW50IGFjdGl2ZUVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTg4NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZSBmb3IgYWN0aXZlRWxl
bWVudCBhdHRyaWJ1dGUgb2YgU2hhZG93Um9vdC4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6IEFkZGVkIHRlc3QgY2FzZSBpbiBTa2lw
cGVkIGFzIFNoYWRvd1Jvb3QgaXMgc3VwcG9ydGVkIGJ5IENocm9taXVtIG9ubHkuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luL1Nr
aXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQ6IGRpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOiBkaXR0by4KKwogMjAxMi0wMy0wNyAg
QXJ1biBQYXRvbGUgIDxibWY4MzRAbW90b3JvbGEuY29tPgogCiAgICAgICAgIEhUTUxUcmFja0Vs
ZW1lbnQuaWRsIGRvZXNuJ3QgaGF2ZSBkZWZhdWx0IGF0dHJpYnV0ZS4gCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LWFjdGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACitUaGlzIHRlc3RzIHRoZSBhY3RpdmVFbGVtZW50
IHByb3BlcnR5IG9mIGEgU2hhZG93Um9vdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKKworQ2hlY2sgaWYgYWN0aXZlRWxlbWVudCBhdHRyaWJ1dGUgaXMgZGVmaW5lZAorUEFTUyBz
aGFkb3dSb290LmFjdGl2ZUVsZW1lbnQgaXMgZGVmaW5lZC4KK3AxIGlzIGZvY3VzZWQKK1BBU1Mg
c2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IGlzIHAxCitwMiBpcyBmb2N1c2VkCitQQVNTIHNoYWRv
d1Jvb3QuYWN0aXZlRWxlbWVudCBpcyBwMgorV2hlbiBmb3VjZWQgZWxlbWVudCBpcyBibHVycmVk
IHRoZSBmb3VjcyBhY3RpdmVFbGVtZW50IHNob3VsZCByZXR1cm4gQm9keQorUEFTUyBzaGFkb3dS
b290LmFjdGl2ZUVsZW1lbnQgaXMgZG9jdW1lbnQuYm9keQorb3V0ZXIgZGl2IGVsZW1lbnQgZm9j
dXNlZCBzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQgc2hvdWxkIHJldHVybiBvdXRlckRpdgorUEFT
UyBzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQgaXMgb3V0ZXJEaXYKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtYWN0aXZlRWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0i
Y29uc29sZSI+Cis8L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUg
YWN0aXZlRWxlbWVudCBwcm9wZXJ0eSBvZiBhIFNoYWRvd1Jvb3QuIik7CisKK2lmICghd2luZG93
LmludGVybmFscykKKyAgICBkZWJ1ZygnVGhpcyB0ZXN0IHJ1bnMgb24gRFJUIG9ubHknKTsKKwor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworc2hhZG93SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzaGFkb3dIb3N0KTsKK3NoYWRvd1Jv
b3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChzaGFkb3dIb3N0KTsKKwordmFyIG91dGVyRGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CitvdXRlckRpdi5zZXRBdHRyaWJ1dGUoImlk
IiwgIm91dGVyRGl2Iik7CitvdXRlckRpdi50YWJJbmRleCA9ICIxIjsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQob3V0ZXJEaXYpOworCit2YXIgcDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJwIik7CitwMS5zZXRBdHRyaWJ1dGUoImlkIiwgInAxIik7CitwMS50YWJJbmRleCA9ICIyIjsK
K3NoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQocDEpOworCit2YXIgcDIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJwIik7CitwMi5zZXRBdHRyaWJ1dGUoImlkIiwgInAyIik7CitwMi50YWJJbmRleCA9
ICIzIjsKK3NoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQocDIpOworCitkZWJ1ZygiQ2hlY2sgaWYgYWN0
aXZlRWxlbWVudCBhdHRyaWJ1dGUgaXMgZGVmaW5lZCIpOworc2hvdWxkQmVEZWZpbmVkKCJzaGFk
b3dSb290LmFjdGl2ZUVsZW1lbnQiKTsKKworZGVidWcoInAxIGlzIGZvY3VzZWQiKTsKK3AxLmZv
Y3VzKCk7CitzaG91bGRCZSgic2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IiwgInAxIik7CisKK2Rl
YnVnKCJwMiBpcyBmb2N1c2VkIik7CitwMi5mb2N1cygpOworc2hvdWxkQmUoInNoYWRvd1Jvb3Qu
YWN0aXZlRWxlbWVudCIsICJwMiIpOworCitkZWJ1ZygiV2hlbiBmb3VjZWQgZWxlbWVudCBpcyBi
bHVycmVkIHRoZSBmb3VjcyBhY3RpdmVFbGVtZW50IHNob3VsZCByZXR1cm4gQm9keSIpOworcDIu
Ymx1cigpOworc2hvdWxkQmUoInNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIsICJkb2N1bWVudC5i
b2R5Iik7CisKK2RlYnVnKCJvdXRlciBkaXYgZWxlbWVudCBmb2N1c2VkIHNoYWRvd1Jvb3QuYWN0
aXZlRWxlbWVudCBzaG91bGQgcmV0dXJuIG91dGVyRGl2Iik7CitvdXRlckRpdi5mb2N1cygpOwor
c2hvdWxkQmUoInNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIsICJvdXRlckRpdiIpOworCit9Cit2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDExMDAzNSkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC00MzEs
NiArNDMxLDcgQEAgZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLQogZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1zdHlsZS5odG1sCiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9z
aGFkb3ctZGlzYWJsZS5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxl
bWVudC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtbmV3Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkocmV2aXNp
b24gMTEwMDM1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBj
b3B5KQpAQCAtMTcwLDYgKzE3MCw3IEBAIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnkt
ZXZlbnRzLmgKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1hcGkuaHRtbAogZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctb24t
aW1hZ2UuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRt
bAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LW5ldy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNpb24gMTEw
MDM1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQJKHdvcmtpbmcgY29weSkK
QEAgLTE0NTcsNiArMTQ1Nyw3IEBAIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0
c2lkZS0KIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5
bGUuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LWFjdGl2ZUVsZW1lbnQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVk
Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW5jYWlyby9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bmNhaXJvL1NraXBwZWQJKHJldmlzaW9uIDExMDAzNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE5NzEsNiArMTk3MSw3IEBAIGZh
c3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9j
b250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3cuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAor
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAogZmFzdC9kb20v
c2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
cm9vdC1pbm5lckhUTUwuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1s
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkocmV2aXNpb24gMTEwMDM1KQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTEwNjgsNiAr
MTA2OCw3IEBAIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS0KIGZhc3Qv
ZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUuaHRtbAogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRpc2FibGUuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1l
bnQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LW5ldy5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130612</attachid>
            <date>2012-03-07 06:28:24 -0800</date>
            <delta_ts>2012-03-08 03:43:42 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>79886.patch</filename>
            <type>text/plain</type>
            <size>12813</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDA1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA3ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3Qgc2hvdWxkIGltcGxlbWVudCBhY3RpdmVFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGl2ZUVsZW1lbnQgYXR0
cmlidXRlIGZvciBTaGFkb3dSb290IHRvIHJldHVybiB0aGUKKyAgICAgICAgY3VycmVudGx5IGZv
Y3VzZWQgZWxlbWVudCBpbiB0aGUgc2hhZG93IERPTSBzdWJ0cmVlLgorCisgICAgICAgIFRlc3Q6
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKKworICAgICAg
ICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmFj
dGl2ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmlk
bDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZTo6YWRvcHRJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OmZvY3VzZWRGcmFtZU93bmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2Nv
cGU6OmFjdGl2ZUVsZW1lbnQpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAg
KFRyZWVTY29wZSk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmFjdGl2ZUVsZW1lbnQp
OgorCiAyMDEyLTAzLTA3ICBBcnVuIFBhdG9sZSAgPGJtZjgzNEBtb3Rvcm9sYS5jb20+CiAKICAg
ICAgICAgSFRNTFRyYWNrRWxlbWVudC5pZGwgZG9lc24ndCBoYXZlIGRlZmF1bHQgYXR0cmlidXRl
LgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAkocmV2aXNpb24gMTEwMDM1KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcs
NiArMTU3LDE0IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmkKICAg
ICAgICAgcmVwbGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2Uo
KSwgZWMpOwogfQogCitFbGVtZW50KiBTaGFkb3dSb290OjphY3RpdmVFbGVtZW50KCkgY29uc3QK
K3sKKyAgICBpZiAodGhpcy0+ZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkKKyAgICAgICAg
cmV0dXJuIHRoaXMtPnRyZWVTY29wZSgpLT5hY3RpdmVFbGVtZW50KCk7CisKKyAgICByZXR1cm4g
MDsKK30KKwogYm9vbCBTaGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUp
IGNvbnN0CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgJKHJldmlzaW9uIDExMDAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDggQEAgcHVibGljOgogICAgIFN0cmluZyBpbm5l
ckhUTUwoKSBjb25zdDsKICAgICB2b2lkIHNldElubmVySFRNTChjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJik7CiAKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCkgY29uc3Q7CisKICAg
ICBTaGFkb3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIHByZXYoKTsg
fQogICAgIFNoYWRvd1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG5leHQo
KTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCShyZXZpc2lvbiAxMTAwMzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDYgKzMzLDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4
Y2VwdGlvbgogICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgewogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBob3N0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRWxlbWVudCBhY3RpdmVFbGVtZW50OwogCiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGlubmVySFRNTAogICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAJKHJldmlz
aW9uIDExMDAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw5ICsyOSwxMyBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGb2N1
c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlQWRvcHRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTE1MSw1ICsx
NTUsMzggQEAgdm9pZCBUcmVlU2NvcGU6OmFkb3B0SWZOZWVkZWQoTm9kZSogbm9kZQogICAgICAg
ICBhZG9wdGVyLmV4ZWN1dGUoKTsKIH0KIAorc3RhdGljIE5vZGUqIGZvY3VzZWRGcmFtZU93bmVy
RWxlbWVudChGcmFtZSogZm9jdXNlZEZyYW1lLCBGcmFtZSogY3VycmVudEZyYW1lKQoreworICAg
IGZvciAoOyBmb2N1c2VkRnJhbWU7IGZvY3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZS0+dHJlZSgp
LT5wYXJlbnQoKSkgeworICAgICAgICBpZiAoZm9jdXNlZEZyYW1lLT50cmVlKCktPnBhcmVudCgp
ID09IGN1cnJlbnRGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiBmb2N1c2VkRnJhbWUtPm93bmVy
RWxlbWVudCgpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworRWxlbWVudCogVHJlZVNjb3Bl
OjphY3RpdmVFbGVtZW50KCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByb290Tm9kZSgp
LT5kb2N1bWVudCgpOworICAgIE5vZGUqIG5vZGUgPSBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKTsK
KyAgICBpZiAoIW5vZGUgJiYgZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgbm9kZSA9IGZvY3Vz
ZWRGcmFtZU93bmVyRWxlbWVudChkb2N1bWVudC0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+
Zm9jdXNlZEZyYW1lKCksIGRvY3VtZW50LT5mcmFtZSgpKTsKKyAgICBpZiAoIW5vZGUpCisgICAg
ICAgIHJldHVybiBkb2N1bWVudC0+Ym9keSgpOworCisgICAgQVNTRVJUKG5vZGUtPmRvY3VtZW50
KCkgPT0gdGhpcyk7CisgICAgTm9kZSogdHJlZVNjb3BlID0gbm9kZS0+dHJlZVNjb3BlKCktPnJv
b3ROb2RlKCk7CisgICAgd2hpbGUgKHRyZWVTY29wZSAhPSB0aGlzLT5yb290Tm9kZSgpKSB7Cisg
ICAgICAgIC8vIElmIHRyZWVTY29wZSBiZWNvbWVzIGRvY3VtZW50LCBkb2N1bWVudC0+c2hhZG93
SG9zdCgpIGZhaWxzLiBBcyB0b0VsZW1lbnQoMCkgdGhyb3dzIEFTU0VSVC4KKyAgICAgICAgaWYg
KHRyZWVTY29wZSA9PSBkb2N1bWVudCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBub2Rl
ID0gdHJlZVNjb3BlLT5zaGFkb3dIb3N0KCk7CisgICAgICAgIHRyZWVTY29wZSA9IG5vZGUtPnRy
ZWVTY29wZSgpLT5yb290Tm9kZSgpOworICAgIH0KKworICAgIGlmIChub2RlLT5pc0VsZW1lbnRO
b2RlKCkpCisgICAgICAgIHJldHVybiB0b0VsZW1lbnQobm9kZSk7CisgICAgcmV0dXJuIDA7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAko
cmV2aXNpb24gMTEwMDM1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBUcmVlU2NvcGUqIHBhcmVu
dFRyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50VHJlZVNjb3BlOyB9CiAgICAgdm9p
ZCBzZXRQYXJlbnRUcmVlU2NvcGUoVHJlZVNjb3BlKik7CiAKKyAgICBFbGVtZW50KiBhY3RpdmVF
bGVtZW50KCk7CiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWQoY29uc3QgQXRvbWljU3RyaW5n
JikgY29uc3Q7CiAgICAgYm9vbCBoYXNFbGVtZW50V2l0aElkKEF0b21pY1N0cmluZ0ltcGwqIGlk
KSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zTXVsdGlwbGVFbGVtZW50c1dpdGhJZChjb25zdCBB
dG9taWNTdHJpbmcmIGlkKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVu
dC5jcHAJKHJldmlzaW9uIDExMDAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDMwICsxMzYsOSBAQCB2b2lkIEhUTUxEb2N1
bWVudDo6c2V0RGVzaWduTW9kZShjb25zdCBTCiAgICAgRG9jdW1lbnQ6OnNldERlc2lnbk1vZGUo
bW9kZSk7CiB9CiAKLXN0YXRpYyBOb2RlKiBmb2N1c2VkRnJhbWVPd25lckVsZW1lbnQoRnJhbWUq
IGZvY3VzZWRGcmFtZSwgRnJhbWUqIGN1cnJlbnRGcmFtZSkKLXsKLSAgICBmb3IgKDsgZm9jdXNl
ZEZyYW1lOyBmb2N1c2VkRnJhbWUgPSBmb2N1c2VkRnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsK
LSAgICAgICAgaWYgKGZvY3VzZWRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSA9PSBjdXJyZW50RnJh
bWUpCi0gICAgICAgICAgICByZXR1cm4gZm9jdXNlZEZyYW1lLT5vd25lckVsZW1lbnQoKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIEVsZW1lbnQqIEhUTUxEb2N1bWVudDo6YWN0aXZlRWxl
bWVudCgpCiB7Ci0gICAgTm9kZSogbm9kZSA9IGZvY3VzZWROb2RlKCk7Ci0gICAgaWYgKCFub2Rl
ICYmIHBhZ2UoKSkKLSAgICAgICAgbm9kZSA9IGZvY3VzZWRGcmFtZU93bmVyRWxlbWVudChwYWdl
KCktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkRnJhbWUoKSwgZnJhbWUoKSk7Ci0gICAgaWYg
KCFub2RlKQotICAgICAgICByZXR1cm4gYm9keSgpOwotICAgIEFTU0VSVChub2RlLT5kb2N1bWVu
dCgpID09IHRoaXMpOwotICAgIHdoaWxlIChub2RlLT50cmVlU2NvcGUoKSAhPSB0aGlzKSB7Ci0g
ICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnRPckhvc3ROb2RlKCk7Ci0gICAgICAgIEFTU0VSVChu
b2RlKTsKLSAgICB9Ci0gICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0
dXJuIHRvRWxlbWVudChub2RlKTsKLSAgICByZXR1cm4gYm9keSgpOworICAgIHJldHVybiB0aGlz
LT50cmVlU2NvcGUoKS0+YWN0aXZlRWxlbWVudCgpOwogfQogCiBib29sIEhUTUxEb2N1bWVudDo6
aGFzRm9jdXMoKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMDUyKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDMtMDcgIEthdXN0
dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgU2hhZG93
Um9vdCBzaG91bGQgaW1wbGVtZW50IGFjdGl2ZUVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTg4NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZSBmb3IgYWN0aXZlRWxl
bWVudCBhdHRyaWJ1dGUgb2YgU2hhZG93Um9vdC4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6IEFkZGVkIHRlc3QgY2FzZSBpbiBTa2lw
cGVkIGFzIFNoYWRvd1Jvb3QgaXMgc3VwcG9ydGVkIGJ5IENocm9taXVtIG9ubHkuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDogZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luL1Nr
aXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQ6IGRpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL3drMi9Ta2lwcGVkOiBkaXR0by4KKwogMjAxMi0wMy0wNyAg
QXJ1biBQYXRvbGUgIDxibWY4MzRAbW90b3JvbGEuY29tPgogCiAgICAgICAgIEhUTUxUcmFja0Vs
ZW1lbnQuaWRsIGRvZXNuJ3QgaGF2ZSBkZWZhdWx0IGF0dHJpYnV0ZS4gCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LWFjdGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3RzIHRoZSBhY3RpdmVFbGVtZW50
IHByb3BlcnR5IG9mIGEgU2hhZG93Um9vdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKKworQ2hlY2sgaWYgYWN0aXZlRWxlbWVudCBhdHRyaWJ1dGUgaXMgZGVmaW5lZAorUEFTUyBz
aGFkb3dSb290LmFjdGl2ZUVsZW1lbnQgaXMgZGVmaW5lZC4KK3AxIGlzIGZvY3VzZWQKK1BBU1Mg
c2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IGlzIHAxCitwMiBpcyBmb2N1c2VkCitQQVNTIHNoYWRv
d1Jvb3QuYWN0aXZlRWxlbWVudCBpcyBwMgorV2hlbiBmb3VjZWQgZWxlbWVudCBpcyBibHVycmVk
IHRoZSBmb3VjcyBhY3RpdmVFbGVtZW50IHNob3VsZCByZXR1cm4gQm9keQorUEFTUyBzaGFkb3dS
b290LmFjdGl2ZUVsZW1lbnQgaXMgZG9jdW1lbnQuYm9keQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1h
Y3RpdmVFbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25z
b2xlIj4KKzwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoZSBhY3Rp
dmVFbGVtZW50IHByb3BlcnR5IG9mIGEgU2hhZG93Um9vdC4iKTsKKworaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGRlYnVnKCdUaGlzIHRlc3QgcnVucyBvbiBEUlQgb25seScpOworCitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworCitzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpOworc2hhZG93Um9vdCA9
IG5ldyBXZWJLaXRTaGFkb3dSb290KHNoYWRvd0hvc3QpOworCit2YXIgcDEgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJwIik7CitwMS5zZXRBdHRyaWJ1dGUoImlkIiwgInAxIik7CitwMS50YWJJ
bmRleCA9ICIyIjsKK3NoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQocDEpOworCit2YXIgcDIgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CitwMi5zZXRBdHRyaWJ1dGUoImlkIiwgInAyIik7Citw
Mi50YWJJbmRleCA9ICIzIjsKK3NoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQocDIpOworCitkZWJ1Zygi
Q2hlY2sgaWYgYWN0aXZlRWxlbWVudCBhdHRyaWJ1dGUgaXMgZGVmaW5lZCIpOworc2hvdWxkQmVE
ZWZpbmVkKCJzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQiKTsKKworZGVidWcoInAxIGlzIGZvY3Vz
ZWQiKTsKK3AxLmZvY3VzKCk7CitzaG91bGRCZSgic2hhZG93Um9vdC5hY3RpdmVFbGVtZW50Iiwg
InAxIik7CisKK2RlYnVnKCJwMiBpcyBmb2N1c2VkIik7CitwMi5mb2N1cygpOworc2hvdWxkQmUo
InNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIsICJwMiIpOworCitkZWJ1ZygiV2hlbiBmb3VjZWQg
ZWxlbWVudCBpcyBibHVycmVkIHRoZSBmb3VjcyBhY3RpdmVFbGVtZW50IHNob3VsZCByZXR1cm4g
Qm9keSIpOworcDIuYmx1cigpOworc2hvdWxkQmUoInNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIs
ICJkb2N1bWVudC5ib2R5Iik7CisKK30KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAkocmV2aXNpb24gMTEwMDM1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQJKHdvcmtpbmcgY29weSkKQEAgLTQzMSw2ICs0MzEsNyBAQCBmYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1lbGVtZW50LW91dHNpZGUtCiBmYXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91
dHNpZGUtc2hhZG93LXN0eWxlLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1qcy1h
cGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKK2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtaW5uZXJI
VE1MLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1uZXcuaHRtbApJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiAxMTAwMzUpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDcgQEAgZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaAogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1vbi1pbWFnZS5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3Qt
YXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1s
CiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9Ta2lwcGVkCShyZXZpc2lvbiAxMTAwMzUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTQ1Nyw2ICsxNDU3LDcgQEAgZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLQogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
ZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1zdHlsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCitm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAkocmV2aXNpb24gMTEwMDM1
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAkod29ya2luZyBjb3B5
KQpAQCAtMTk3MSw2ICsxOTcxLDcgQEAgZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1h
cGkuaHRtbAogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy5o
dG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0
aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRt
bAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVk
CShyZXZpc2lvbiAxMTAwMzUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtMTA2OCw2ICsxMDY4LDcgQEAgZmFzdC9kb20vc2hhZG93L2NvbnRl
bnQtZWxlbWVudC1vdXRzaWRlLQogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRz
aWRlLXNoYWRvdy1zdHlsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBp
Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCitmYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRN
TC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwK
</data>
<flag name="review"
          id="133669"
          type_id="1"
          status="-"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="133670"
          type_id="3"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130803</attachid>
            <date>2012-03-08 03:43:42 -0800</date>
            <delta_ts>2012-03-09 00:03:29 -0800</delta_ts>
            <desc>Updated Patch</desc>
            <filename>79886_2.patch</filename>
            <type>text/plain</type>
            <size>14119</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDE2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA4ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3Qgc2hvdWxkIGltcGxlbWVudCBhY3RpdmVFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGl2ZUVsZW1lbnQgYXR0
cmlidXRlIGZvciBTaGFkb3dSb290IHRvIHJldHVybiB0aGUKKyAgICAgICAgY3VycmVudGx5IGZv
Y3VzZWQgZWxlbWVudCBpbiB0aGUgc2hhZG93IERPTSBzdWJ0cmVlLgorCisgICAgICAgIFRlc3Q6
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKKworICAgICAg
ICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmFj
dGl2ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmlk
bDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZTo6YWRvcHRJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OmZvY3VzZWRGcmFtZU93bmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2Nv
cGU6OmFjdGl2ZUVsZW1lbnQpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAg
KFRyZWVTY29wZSk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmFjdGl2ZUVsZW1lbnQp
OgorCiAyMDEyLTAzLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4K
IAogICAgICAgICA8c2hhZG93PiBzaG91bGQgYmUgcmVuZGVyZWQgY29ycmVjdGx5LgpJbmRleDog
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAkocmV2aXNpb24gMTEwMTQ0KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcsNiArMTU3LDEz
IEBAIHZvaWQgU2hhZG93Um9vdDo6c2V0SW5uZXJIVE1MKGNvbnN0IFN0cmkKICAgICAgICAgcmVw
bGFjZUNoaWxkcmVuV2l0aEZyYWdtZW50KHRoaXMsIGZyYWdtZW50LnJlbGVhc2UoKSwgZWMpOwog
fQogCitFbGVtZW50KiBTaGFkb3dSb290OjphY3RpdmVFbGVtZW50KCkgY29uc3QKK3sKKyAgICBp
ZiAoZG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIHRyZWVTY29w
ZSgpLT5hY3RpdmVFbGVtZW50KCk7CisgICAgcmV0dXJuIDA7Cit9CisKIGJvb2wgU2hhZG93Um9v
dDo6Y2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogewogICAgIHN3aXRjaCAo
dHlwZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCShyZXZpc2lvbiAxMTAxNDQpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2
ICs3Myw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgaW5uZXJIVE1MKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRJbm5lckhUTUwoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgRWxl
bWVudCogYWN0aXZlRWxlbWVudCgpIGNvbnN0OworCiAgICAgU2hhZG93Um9vdCogeW91bmdlclNo
YWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBwcmV2KCk7IH0KICAgICBTaGFkb3dSb290KiBvbGRl
clNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBuZXh0KCk7IH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmlkbAkocmV2aXNpb24gMTEwMTQ0KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBAIG1vZHVsZSBj
b3JlIHsKICAgICAgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24KICAgICBdIFNoYWRvd1Jv
b3QgOiBEb2N1bWVudEZyYWdtZW50IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1l
bnQgaG9zdDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgYWN0aXZlRWxlbWVu
dDsKIAogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBpbm5lckhUTUwKICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCShyZXZpc2lvbiAxMTAxNDQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksMTMg
QEAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlRyZWVTY29w
ZUFkb3B0ZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xNTEsNSArMTU1LDM3IEBAIHZvaWQgVHJlZVNjb3Bl
OjphZG9wdElmTmVlZGVkKE5vZGUqIG5vZGUKICAgICAgICAgYWRvcHRlci5leGVjdXRlKCk7CiB9
CiAKK3N0YXRpYyBOb2RlKiBmb2N1c2VkRnJhbWVPd25lckVsZW1lbnQoRnJhbWUqIGZvY3VzZWRG
cmFtZSwgRnJhbWUqIGN1cnJlbnRGcmFtZSkKK3sKKyAgICBmb3IgKDsgZm9jdXNlZEZyYW1lOyBm
b2N1c2VkRnJhbWUgPSBmb2N1c2VkRnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsKKyAgICAgICAg
aWYgKGZvY3VzZWRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSA9PSBjdXJyZW50RnJhbWUpCisgICAg
ICAgICAgICByZXR1cm4gZm9jdXNlZEZyYW1lLT5vd25lckVsZW1lbnQoKTsKKyAgICB9CisgICAg
cmV0dXJuIDA7Cit9CisKK0VsZW1lbnQqIFRyZWVTY29wZTo6YWN0aXZlRWxlbWVudCgpCit7Cisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcm9vdE5vZGUoKS0+ZG9jdW1lbnQoKTsKKyAgICBOb2Rl
KiBub2RlID0gZG9jdW1lbnQtPmZvY3VzZWROb2RlKCk7CisgICAgaWYgKCFub2RlICYmIGRvY3Vt
ZW50LT5wYWdlKCkpCisgICAgICAgIG5vZGUgPSBmb2N1c2VkRnJhbWVPd25lckVsZW1lbnQoZG9j
dW1lbnQtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRGcmFtZSgpLCBkb2N1bWVu
dC0+ZnJhbWUoKSk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gZG9jdW1lbnQtPmJv
ZHkoKTsKKworICAgIEFTU0VSVChub2RlLT5kb2N1bWVudCgpID09IHRoaXMpOworICAgIFRyZWVT
Y29wZSogdHJlZVNjb3BlID0gbm9kZS0+dHJlZVNjb3BlKCk7CisKKyAgICAvLyBJZiB0cmVlU2Nv
cGUgYmVjb21lcyBkb2N1bWVudCwgZG9jdW1lbnQtPnNoYWRvd0hvc3QoKSBmYWlscy4gQXMgdG9F
bGVtZW50KDApIHRocm93cyBBU1NFUlQuCisgICAgd2hpbGUgKHRyZWVTY29wZSAhPSB0aGlzICYm
IHRyZWVTY29wZSAhPSBkb2N1bWVudCkgeworICAgICAgICBub2RlID0gdHJlZVNjb3BlLT5yb290
Tm9kZSgpLT5zaGFkb3dIb3N0KCk7CisgICAgICAgIHRyZWVTY29wZSA9IG5vZGUtPnRyZWVTY29w
ZSgpOworICAgIH0KKworICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJl
dHVybiB0b0VsZW1lbnQobm9kZSk7CisgICAgcmV0dXJuIDA7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAkocmV2aXNpb24gMTEwMTQ0KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2
ICs0Nyw3IEBAIHB1YmxpYzoKICAgICBUcmVlU2NvcGUqIHBhcmVudFRyZWVTY29wZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFyZW50VHJlZVNjb3BlOyB9CiAgICAgdm9pZCBzZXRQYXJlbnRUcmVlU2Nv
cGUoVHJlZVNjb3BlKik7CiAKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCk7CiAgICAgRWxl
bWVudCogZ2V0RWxlbWVudEJ5SWQoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CiAgICAgYm9v
bCBoYXNFbGVtZW50V2l0aElkKEF0b21pY1N0cmluZ0ltcGwqIGlkKSBjb25zdDsKICAgICBib29s
IGNvbnRhaW5zTXVsdGlwbGVFbGVtZW50c1dpdGhJZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKSBj
b25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAJKHJldmlzaW9uIDEx
MDE0NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTM2LDMwICsxMzYsOSBAQCB2b2lkIEhUTUxEb2N1bWVudDo6c2V0RGVzaWduTW9k
ZShjb25zdCBTCiAgICAgRG9jdW1lbnQ6OnNldERlc2lnbk1vZGUobW9kZSk7CiB9CiAKLXN0YXRp
YyBOb2RlKiBmb2N1c2VkRnJhbWVPd25lckVsZW1lbnQoRnJhbWUqIGZvY3VzZWRGcmFtZSwgRnJh
bWUqIGN1cnJlbnRGcmFtZSkKLXsKLSAgICBmb3IgKDsgZm9jdXNlZEZyYW1lOyBmb2N1c2VkRnJh
bWUgPSBmb2N1c2VkRnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsKLSAgICAgICAgaWYgKGZvY3Vz
ZWRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSA9PSBjdXJyZW50RnJhbWUpCi0gICAgICAgICAgICBy
ZXR1cm4gZm9jdXNlZEZyYW1lLT5vd25lckVsZW1lbnQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KIEVsZW1lbnQqIEhUTUxEb2N1bWVudDo6YWN0aXZlRWxlbWVudCgpCiB7Ci0gICAgTm9k
ZSogbm9kZSA9IGZvY3VzZWROb2RlKCk7Ci0gICAgaWYgKCFub2RlICYmIHBhZ2UoKSkKLSAgICAg
ICAgbm9kZSA9IGZvY3VzZWRGcmFtZU93bmVyRWxlbWVudChwYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpLT5mb2N1c2VkRnJhbWUoKSwgZnJhbWUoKSk7Ci0gICAgaWYgKCFub2RlKQotICAgICAgICBy
ZXR1cm4gYm9keSgpOwotICAgIEFTU0VSVChub2RlLT5kb2N1bWVudCgpID09IHRoaXMpOwotICAg
IHdoaWxlIChub2RlLT50cmVlU2NvcGUoKSAhPSB0aGlzKSB7Ci0gICAgICAgIG5vZGUgPSBub2Rl
LT5wYXJlbnRPckhvc3ROb2RlKCk7Ci0gICAgICAgIEFTU0VSVChub2RlKTsKLSAgICB9Ci0gICAg
aWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgcmV0dXJuIHRvRWxlbWVudChub2Rl
KTsKLSAgICByZXR1cm4gYm9keSgpOworICAgIHJldHVybiB0cmVlU2NvcGUoKS0+YWN0aXZlRWxl
bWVudCgpOwogfQogCiBib29sIEhUTUxEb2N1bWVudDo6aGFzRm9jdXMoKQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTEwMTYxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTItMDMtMDggIEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHVi
aEBtb3Rvcm9sYS5jb20+CisKKyAgICAgICAgU2hhZG93Um9vdCBzaG91bGQgaW1wbGVtZW50IGFj
dGl2ZUVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIHRlc3QgY2FzZSBmb3IgYWN0aXZlRWxlbWVudCBhdHRyaWJ1dGUgb2YgU2hhZG93
Um9vdC4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVt
ZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L1NraXBwZWQ6IEFkZGVkIHRlc3QgY2FzZSBpbiBTa2lwcGVkIGFzIFNoYWRvd1Jvb3QgaXMgc3Vw
cG9ydGVkIGJ5IENocm9taXVtIG9ubHkuCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDog
ZGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IGRpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dr
Mi9Ta2lwcGVkOiBkaXR0by4KKwogMjAxMi0wMy0wOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgPHNoYWRvdz4gc2hvdWxkIGJlIHJlbmRlcmVkIGNv
cnJlY3RseS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1h
Y3RpdmVFbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZl
RWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMg
dGVzdHMgdGhlIGFjdGl2ZUVsZW1lbnQgcHJvcGVydHkgb2YgYSBTaGFkb3dSb290LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitQQVNTIHNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVu
dCBpcyBkZWZpbmVkLgorUEFTUyBzaGFkb3dSb290SW5zaWRlLmFjdGl2ZUVsZW1lbnQgaXMgZGVm
aW5lZC4KK1BBU1MgZmlyc3RDaGlsZEluVHJlZU9uZS5mb2N1cygpO3NoYWRvd1Jvb3QuYWN0aXZl
RWxlbWVudCBpcyBmaXJzdENoaWxkSW5UcmVlT25lCitQQVNTIHNlY29uZENoaWxkSW5UcmVlT25l
LmZvY3VzKCk7c2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IGlzIHNlY29uZENoaWxkSW5UcmVlT25l
CitQQVNTIHNlY29uZENoaWxkSW5UcmVlT25lLmJsdXIoKTtzaGFkb3dSb290LmFjdGl2ZUVsZW1l
bnQgaXMgZG9jdW1lbnQuYm9keQorUEFTUyBmaXJzdENoaWxkSW5UcmVlVHdvLmZvY3VzKCk7c2hh
ZG93Um9vdEluc2lkZS5hY3RpdmVFbGVtZW50IGlzIGZpcnN0Q2hpbGRJblRyZWVUd28KK1BBU1Mg
c2Vjb25kQ2hpbGRJblRyZWVUd28uZm9jdXMoKTtzaGFkb3dSb290SW5zaWRlLmFjdGl2ZUVsZW1l
bnQgaXMgc2Vjb25kQ2hpbGRJblRyZWVUd28KK1BBU1Mgc2Vjb25kQ2hpbGRJblRyZWVUd28uYmx1
cigpO3NoYWRvd1Jvb3RJbnNpZGUuYWN0aXZlRWxlbWVudCBpcyBkb2N1bWVudC5ib2R5CitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0
aXZlRWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw2NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImNvbnNvbGUiPgorPC9kaXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRo
aXMgdGVzdHMgdGhlIGFjdGl2ZUVsZW1lbnQgcHJvcGVydHkgb2YgYSBTaGFkb3dSb290LiIpOwor
CitpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgZGVidWcoJ1RoaXMgdGVzdCBydW5zIG9uIERS
VCBvbmx5Jyk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKworLy8gRmlyc3QgU2hvZG93SG9zdAor
c2hhZG93SG9zdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChzaGFkb3dIb3N0KTsKK3NoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93
Um9vdChzaGFkb3dIb3N0KTsKKworLy8gU2Vjb25kIFNoYWRvd0hvc3QKK3NoYWRvd0hvc3RJbnNp
ZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK3NoYWRvd1Jvb3QuYXBwZW5kQ2hp
bGQoc2hhZG93SG9zdEluc2lkZSk7CitzaGFkb3dSb290SW5zaWRlID0gbmV3IFdlYktpdFNoYWRv
d1Jvb3Qoc2hhZG93SG9zdEluc2lkZSk7CisKKy8vIEFkZCB0d28gY2hpbGRyZW4gaW5zaWRlIGZp
cnN0IFNoYWRvdyBob3N0Cit2YXIgZmlyc3RDaGlsZEluVHJlZU9uZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInAiKTsKK2ZpcnN0Q2hpbGRJblRyZWVPbmUuc2V0QXR0cmlidXRlKCJpZCIsICJm
aXJzdENoaWxkSW5UcmVlT25lIik7CitmaXJzdENoaWxkSW5UcmVlT25lLnRhYkluZGV4ID0gIjEi
Oworc2hhZG93Um9vdC5hcHBlbmRDaGlsZChmaXJzdENoaWxkSW5UcmVlT25lKTsKKwordmFyIHNl
Y29uZENoaWxkSW5UcmVlT25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworc2Vjb25k
Q2hpbGRJblRyZWVPbmUuc2V0QXR0cmlidXRlKCJpZCIsICJzZWNvbmRDaGlsZEluVHJlZU9uZSIp
Oworc2Vjb25kQ2hpbGRJblRyZWVPbmUudGFiSW5kZXggPSAiMiI7CitzaGFkb3dSb290LmFwcGVu
ZENoaWxkKHNlY29uZENoaWxkSW5UcmVlT25lKTsKKworLy8gQWRkIHR3byBjaGlsZHJlbiBpbnNp
ZGUgc2Vjb25kIHNoYWRvdyBob3N0Cit2YXIgZmlyc3RDaGlsZEluVHJlZVR3byA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInAiKTsKK2ZpcnN0Q2hpbGRJblRyZWVUd28uc2V0QXR0cmlidXRlKCJp
ZCIsICJmaXJzdENoaWxkSW5UcmVlVHdvIik7CitmaXJzdENoaWxkSW5UcmVlVHdvLnRhYkluZGV4
ID0gIjMiOworc2hhZG93Um9vdEluc2lkZS5hcHBlbmRDaGlsZChmaXJzdENoaWxkSW5UcmVlVHdv
KTsKKwordmFyIHNlY29uZENoaWxkSW5UcmVlVHdvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
cCIpOworc2Vjb25kQ2hpbGRJblRyZWVUd28uc2V0QXR0cmlidXRlKCJpZCIsICJzZWNvbmRDaGls
ZEluVHJlZVR3byIpOworc2Vjb25kQ2hpbGRJblRyZWVUd28udGFiSW5kZXggPSAiNCI7CitzaGFk
b3dSb290SW5zaWRlLmFwcGVuZENoaWxkKHNlY29uZENoaWxkSW5UcmVlVHdvKTsKKworc2hvdWxk
QmVEZWZpbmVkKCJzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQiKTsKK3Nob3VsZEJlRGVmaW5lZCgi
c2hhZG93Um9vdEluc2lkZS5hY3RpdmVFbGVtZW50Iik7CitzaG91bGRCZSgiZmlyc3RDaGlsZElu
VHJlZU9uZS5mb2N1cygpO3NoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIsICJmaXJzdENoaWxkSW5U
cmVlT25lIik7CitzaG91bGRCZSgic2Vjb25kQ2hpbGRJblRyZWVPbmUuZm9jdXMoKTtzaGFkb3dS
b290LmFjdGl2ZUVsZW1lbnQiLCAic2Vjb25kQ2hpbGRJblRyZWVPbmUiKTsKK3Nob3VsZEJlKCJz
ZWNvbmRDaGlsZEluVHJlZU9uZS5ibHVyKCk7c2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IiwgImRv
Y3VtZW50LmJvZHkiKTsKK3Nob3VsZEJlKCJmaXJzdENoaWxkSW5UcmVlVHdvLmZvY3VzKCk7c2hh
ZG93Um9vdEluc2lkZS5hY3RpdmVFbGVtZW50IiwgImZpcnN0Q2hpbGRJblRyZWVUd28iKTsKK3No
b3VsZEJlKCJzZWNvbmRDaGlsZEluVHJlZVR3by5mb2N1cygpO3NoYWRvd1Jvb3RJbnNpZGUuYWN0
aXZlRWxlbWVudCIsICJzZWNvbmRDaGlsZEluVHJlZVR3byIpOworc2hvdWxkQmUoInNlY29uZENo
aWxkSW5UcmVlVHdvLmJsdXIoKTtzaGFkb3dSb290SW5zaWRlLmFjdGl2ZUVsZW1lbnQiLCAiZG9j
dW1lbnQuYm9keSIpOworCit9Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJ
KHJldmlzaW9uIDExMDE0NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3
b3JraW5nIGNvcHkpCkBAIC00MzEsNiArNDMxLDcgQEAgZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
ZWxlbWVudC1vdXRzaWRlLQogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRl
LXNoYWRvdy1zdHlsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0
bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCitmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtYXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5o
dG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vcXQvU2tpcHBlZAkocmV2aXNpb24gMTEwMTQ0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCw3IEBAIGZhc3QvZG9tL3No
YWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmgKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9v
dC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxlLmh0bWwKIGZhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctb24taW1hZ2UuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWFjdGl2ZUVsZW1lbnQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFj
aGVkLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
U2tpcHBlZAkocmV2aXNpb24gMTEwMTQ0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE0NTcsNiArMTQ1Nyw3IEBAIGZhc3QvZG9tL3NoYWRv
dy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS0KIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1l
bnQtb3V0c2lkZS1zaGFkb3ctc3R5bGUuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAorZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1p
bm5lckhUTUwuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQJKHJldmlzaW9uIDExMDE0NCkKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAg
LTE5NzEsNiArMTk3MSw3IEBAIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtYXBpLmh0
bWwKIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1zaGFkb3cuaHRtbAog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWRpc2FibGUuaHRtbAorZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVs
ZW1lbnQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWF0dGFjaGVkLmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRtbAogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1yb290LW5ldy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tp
cHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAkocmV2
aXNpb24gMTEwMTQ0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdvcmtp
bmcgY29weSkKQEAgLTEwNjgsNiArMTA2OCw3IEBAIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVs
ZW1lbnQtb3V0c2lkZS0KIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LWVsZW1lbnQtb3V0c2lkZS1z
aGFkb3ctc3R5bGUuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1s
CiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWRpc2FibGUuaHRtbAorZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWFjdGl2ZUVsZW1lbnQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290
LWF0dGFjaGVkLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1pbm5lckhUTUwuaHRt
bAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LW5ldy5odG1sCg==
</data>
<flag name="review"
          id="133916"
          type_id="1"
          status="+"
          setter="rniwa"
    />
    <flag name="commit-queue"
          id="133917"
          type_id="3"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130995</attachid>
            <date>2012-03-09 00:03:29 -0800</date>
            <delta_ts>2012-03-09 11:38:36 -0800</delta_ts>
            <desc>Fixed Nits</desc>
            <filename>79886_3.patch</filename>
            <type>text/plain</type>
            <size>14028</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDI3MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAzLTA5ICBLYXVzdHVi
aCBBdHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jv
b3Qgc2hvdWxkIGltcGxlbWVudCBhY3RpdmVFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIGFjdGl2ZUVsZW1lbnQgYXR0
cmlidXRlIGZvciBTaGFkb3dSb290IHRvIHJldHVybiB0aGUKKyAgICAgICAgY3VycmVudGx5IGZv
Y3VzZWQgZWxlbWVudCBpbiB0aGUgc2hhZG93IERPTSBzdWJ0cmVlLgorCisgICAgICAgIFRlc3Q6
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKKworICAgICAg
ICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmFj
dGl2ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290Lmlk
bDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZTo6YWRvcHRJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OmZvY3VzZWRGcmFtZU93bmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2Nv
cGU6OmFjdGl2ZUVsZW1lbnQpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAg
KFRyZWVTY29wZSk6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmFjdGl2ZUVsZW1lbnQp
OgorCiAyMDEyLTAzLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgog
CiAgICAgICAgIEJhc2UgdGhlIGFjY2VzcyB0byBDU1NTdHlsZURlY2xhcmF0aW9uIG9uIHRoZSBD
U1NQcm9wZXJ0eUlEIGluc3RlYWQgb2YgdGhlIFByb3BlcnR5TmFtZQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5oCShyZXZpc2lvbiAxMTAyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaWZuZGVmIFNoYWRv
d1Jvb3RfaAogI2RlZmluZSBTaGFkb3dSb290X2gKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
ICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKQEAgLTczLDYgKzc0LDggQEAgcHVibGljOgogICAgIFN0
cmluZyBpbm5lckhUTUwoKSBjb25zdDsKICAgICB2b2lkIHNldElubmVySFRNTChjb25zdCBTdHJp
bmcmLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICBFbGVtZW50KiBhY3RpdmVFbGVtZW50KCkgY29u
c3Q7CisKICAgICBTaGFkb3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJu
IHByZXYoKTsgfQogICAgIFNoYWRvd1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0
dXJuIG5leHQoKTsgfQogCkBAIC0xMTcsNiArMTIwLDEzIEBAIGlubGluZSBib29sIFNoYWRvd1Jv
b3Q6OmlzVXNlZEZvclJlbmRlcmkKICAgICByZXR1cm4gaXNZb3VuZ2VzdCgpIHx8IGFzc2lnbmVk
VG8oKTsKIH0KIAoraW5saW5lIEVsZW1lbnQqIFNoYWRvd1Jvb3Q6OmFjdGl2ZUVsZW1lbnQoKSBj
b25zdAoreworICAgIGlmIChkb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKQorICAgICAgICBy
ZXR1cm4gdHJlZVNjb3BlKCktPmFjdGl2ZUVsZW1lbnQoKTsKKyAgICByZXR1cm4gMDsKK30KKwog
aW5saW5lIGNvbnN0IFNoYWRvd1Jvb3QqIHRvU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2RlKQog
ewogICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuaWRsCShyZXZpc2lvbiAxMTAyNzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAgbW9k
dWxlIGNvcmUgewogICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgogICAgIF0gU2hh
ZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RWxlbWVudCBob3N0OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRWxlbWVudCBhY3RpdmVF
bGVtZW50OwogCiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9N
U3RyaW5nIGlubmVySFRNTAogICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAJKHJldmlzaW9uIDExMDI3MikKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsy
OSwxMyBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiVHJl
ZVNjb3BlQWRvcHRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTE1MSw1ICsxNTUsMzYgQEAgdm9pZCBUcmVl
U2NvcGU6OmFkb3B0SWZOZWVkZWQoTm9kZSogbm9kZQogICAgICAgICBhZG9wdGVyLmV4ZWN1dGUo
KTsKIH0KIAorc3RhdGljIE5vZGUqIGZvY3VzZWRGcmFtZU93bmVyRWxlbWVudChGcmFtZSogZm9j
dXNlZEZyYW1lLCBGcmFtZSogY3VycmVudEZyYW1lKQoreworICAgIGZvciAoOyBmb2N1c2VkRnJh
bWU7IGZvY3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkgeworICAg
ICAgICBpZiAoZm9jdXNlZEZyYW1lLT50cmVlKCktPnBhcmVudCgpID09IGN1cnJlbnRGcmFtZSkK
KyAgICAgICAgICAgIHJldHVybiBmb2N1c2VkRnJhbWUtPm93bmVyRWxlbWVudCgpOworICAgIH0K
KyAgICByZXR1cm4gMDsKK30KKworRWxlbWVudCogVHJlZVNjb3BlOjphY3RpdmVFbGVtZW50KCkK
K3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByb290Tm9kZSgpLT5kb2N1bWVudCgpOworICAg
IE5vZGUqIG5vZGUgPSBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKTsKKyAgICBpZiAoIW5vZGUgJiYg
ZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgbm9kZSA9IGZvY3VzZWRGcmFtZU93bmVyRWxlbWVu
dChkb2N1bWVudC0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZEZyYW1lKCksIGRv
Y3VtZW50LT5mcmFtZSgpKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBkb2N1bWVu
dC0+Ym9keSgpOworCisgICAgQVNTRVJUKG5vZGUtPmRvY3VtZW50KCkgPT0gdGhpcyk7CisgICAg
VHJlZVNjb3BlKiB0cmVlU2NvcGUgPSBub2RlLT50cmVlU2NvcGUoKTsKKworICAgIHdoaWxlICh0
cmVlU2NvcGUgIT0gdGhpcyAmJiB0cmVlU2NvcGUgIT0gZG9jdW1lbnQpIHsKKyAgICAgICAgbm9k
ZSA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+c2hhZG93SG9zdCgpOworICAgICAgICB0cmVlU2Nv
cGUgPSBub2RlLT50cmVlU2NvcGUoKTsKKyAgICB9CisKKyAgICBpZiAobm9kZS0+aXNFbGVtZW50
Tm9kZSgpKQorICAgICAgICByZXR1cm4gdG9FbGVtZW50KG5vZGUpOworICAgIHJldHVybiAwOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgJ
KHJldmlzaW9uIDExMDI3MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAkod29y
a2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgVHJlZVNjb3BlKiBwYXJl
bnRUcmVlU2NvcGUoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudFRyZWVTY29wZTsgfQogICAgIHZv
aWQgc2V0UGFyZW50VHJlZVNjb3BlKFRyZWVTY29wZSopOwogCisgICAgRWxlbWVudCogYWN0aXZl
RWxlbWVudCgpOwogICAgIEVsZW1lbnQqIGdldEVsZW1lbnRCeUlkKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIGNvbnN0OwogICAgIGJvb2wgaGFzRWxlbWVudFdpdGhJZChBdG9taWNTdHJpbmdJbXBsKiBp
ZCkgY29uc3Q7CiAgICAgYm9vbCBjb250YWluc011bHRpcGxlRWxlbWVudHNXaXRoSWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
b2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1l
bnQuY3BwCShyZXZpc2lvbiAxMTAyNzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNiwzMCArMTM2LDkgQEAgdm9pZCBIVE1MRG9j
dW1lbnQ6OnNldERlc2lnbk1vZGUoY29uc3QgUwogICAgIERvY3VtZW50OjpzZXREZXNpZ25Nb2Rl
KG1vZGUpOwogfQogCi1zdGF0aWMgTm9kZSogZm9jdXNlZEZyYW1lT3duZXJFbGVtZW50KEZyYW1l
KiBmb2N1c2VkRnJhbWUsIEZyYW1lKiBjdXJyZW50RnJhbWUpCi17Ci0gICAgZm9yICg7IGZvY3Vz
ZWRGcmFtZTsgZm9jdXNlZEZyYW1lID0gZm9jdXNlZEZyYW1lLT50cmVlKCktPnBhcmVudCgpKSB7
Ci0gICAgICAgIGlmIChmb2N1c2VkRnJhbWUtPnRyZWUoKS0+cGFyZW50KCkgPT0gY3VycmVudEZy
YW1lKQotICAgICAgICAgICAgcmV0dXJuIGZvY3VzZWRGcmFtZS0+b3duZXJFbGVtZW50KCk7Ci0g
ICAgfQotICAgIHJldHVybiAwOwotfQotCiBFbGVtZW50KiBIVE1MRG9jdW1lbnQ6OmFjdGl2ZUVs
ZW1lbnQoKQogewotICAgIE5vZGUqIG5vZGUgPSBmb2N1c2VkTm9kZSgpOwotICAgIGlmICghbm9k
ZSAmJiBwYWdlKCkpCi0gICAgICAgIG5vZGUgPSBmb2N1c2VkRnJhbWVPd25lckVsZW1lbnQocGFn
ZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZEZyYW1lKCksIGZyYW1lKCkpOwotICAgIGlm
ICghbm9kZSkKLSAgICAgICAgcmV0dXJuIGJvZHkoKTsKLSAgICBBU1NFUlQobm9kZS0+ZG9jdW1l
bnQoKSA9PSB0aGlzKTsKLSAgICB3aGlsZSAobm9kZS0+dHJlZVNjb3BlKCkgIT0gdGhpcykgewot
ICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpOwotICAgICAgICBBU1NFUlQo
bm9kZSk7Ci0gICAgfQotICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgIHJl
dHVybiB0b0VsZW1lbnQobm9kZSk7Ci0gICAgcmV0dXJuIGJvZHkoKTsKKyAgICByZXR1cm4gdHJl
ZVNjb3BlKCktPmFjdGl2ZUVsZW1lbnQoKTsKIH0KIAogYm9vbCBIVE1MRG9jdW1lbnQ6Omhhc0Zv
Y3VzKCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDI3MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAzLTA5ICBLYXVzdHViaCBB
dHJhd2Fsa2FyICA8a2F1c3R1YmhAbW90b3JvbGEuY29tPgorCisgICAgICAgIFNoYWRvd1Jvb3Qg
c2hvdWxkIGltcGxlbWVudCBhY3RpdmVFbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2UgZm9yIGFjdGl2ZUVsZW1lbnQg
YXR0cmlidXRlIG9mIFNoYWRvd1Jvb3QuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtYWN0aXZlRWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBBZGRlZCB0ZXN0IGNhc2UgaW4gU2tpcHBlZCBh
cyBTaGFkb3dSb290IGlzIHN1cHBvcnRlZCBieSBDaHJvbWl1bSBvbmx5LgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NraXBwZWQ6IGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVk
OiBkaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkOiBkaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBlZDogZGl0dG8uCisKIDIwMTItMDMtMDggIFRvbnkg
Q2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBtYXJnaW5zIG9uIGZsZXgtYWxp
Z246IGJhc2VsaW5lIGFyZSBkb3VibGUgY291bnRlZApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LWFjdGl2ZUVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVt
ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0cyB0aGUgYWN0aXZlRWxlbWVudCBwcm9wZXJ0eSBv
ZiBhIFNoYWRvd1Jvb3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK1BBU1Mg
c2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IGlzIGRlZmluZWQuCitQQVNTIHNoYWRvd1Jvb3RJbnNp
ZGUuYWN0aXZlRWxlbWVudCBpcyBkZWZpbmVkLgorUEFTUyBmaXJzdENoaWxkSW5UcmVlT25lLmZv
Y3VzKCk7c2hhZG93Um9vdC5hY3RpdmVFbGVtZW50IGlzIGZpcnN0Q2hpbGRJblRyZWVPbmUKK1BB
U1Mgc2Vjb25kQ2hpbGRJblRyZWVPbmUuZm9jdXMoKTtzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQg
aXMgc2Vjb25kQ2hpbGRJblRyZWVPbmUKK1BBU1Mgc2Vjb25kQ2hpbGRJblRyZWVPbmUuYmx1cigp
O3NoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCBpcyBkb2N1bWVudC5ib2R5CitQQVNTIGZpcnN0Q2hp
bGRJblRyZWVUd28uZm9jdXMoKTtzaGFkb3dSb290SW5zaWRlLmFjdGl2ZUVsZW1lbnQgaXMgZmly
c3RDaGlsZEluVHJlZVR3bworUEFTUyBzZWNvbmRDaGlsZEluVHJlZVR3by5mb2N1cygpO3NoYWRv
d1Jvb3RJbnNpZGUuYWN0aXZlRWxlbWVudCBpcyBzZWNvbmRDaGlsZEluVHJlZVR3bworUEFTUyBz
ZWNvbmRDaGlsZEluVHJlZVR3by5ibHVyKCk7c2hhZG93Um9vdEluc2lkZS5hY3RpdmVFbGVtZW50
IGlzIGRvY3VtZW50LmJvZHkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJv
b3QtYWN0aXZlRWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+Cis8L2Rpdj4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGUgYWN0aXZlRWxlbWVudCBwcm9wZXJ0
eSBvZiBhIFNoYWRvd1Jvb3QuIik7CisKK2lmICghd2luZG93LmludGVybmFscykKKyAgICBkZWJ1
ZygnVGhpcyB0ZXN0IHJ1bnMgb24gRFJUIG9ubHknKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKwor
CisvLyBGaXJzdCBTaG9kb3dIb3N0CitzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpOworc2hhZG93
Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KHNoYWRvd0hvc3QpOworCisvLyBTZWNvbmQgU2hh
ZG93SG9zdAorc2hhZG93SG9zdEluc2lkZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
Oworc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzaGFkb3dIb3N0SW5zaWRlKTsKK3NoYWRvd1Jvb3RJ
bnNpZGUgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChzaGFkb3dIb3N0SW5zaWRlKTsKKworLy8gQWRk
IHR3byBjaGlsZHJlbiBpbnNpZGUgZmlyc3QgU2hhZG93IGhvc3QKK3ZhciBmaXJzdENoaWxkSW5U
cmVlT25lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworZmlyc3RDaGlsZEluVHJlZU9u
ZS5zZXRBdHRyaWJ1dGUoImlkIiwgImZpcnN0Q2hpbGRJblRyZWVPbmUiKTsKK2ZpcnN0Q2hpbGRJ
blRyZWVPbmUudGFiSW5kZXggPSAiMSI7CitzaGFkb3dSb290LmFwcGVuZENoaWxkKGZpcnN0Q2hp
bGRJblRyZWVPbmUpOworCit2YXIgc2Vjb25kQ2hpbGRJblRyZWVPbmUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJwIik7CitzZWNvbmRDaGlsZEluVHJlZU9uZS5zZXRBdHRyaWJ1dGUoImlkIiwg
InNlY29uZENoaWxkSW5UcmVlT25lIik7CitzZWNvbmRDaGlsZEluVHJlZU9uZS50YWJJbmRleCA9
ICIyIjsKK3NoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoc2Vjb25kQ2hpbGRJblRyZWVPbmUpOworCisv
LyBBZGQgdHdvIGNoaWxkcmVuIGluc2lkZSBzZWNvbmQgc2hhZG93IGhvc3QKK3ZhciBmaXJzdENo
aWxkSW5UcmVlVHdvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOworZmlyc3RDaGlsZElu
VHJlZVR3by5zZXRBdHRyaWJ1dGUoImlkIiwgImZpcnN0Q2hpbGRJblRyZWVUd28iKTsKK2ZpcnN0
Q2hpbGRJblRyZWVUd28udGFiSW5kZXggPSAiMyI7CitzaGFkb3dSb290SW5zaWRlLmFwcGVuZENo
aWxkKGZpcnN0Q2hpbGRJblRyZWVUd28pOworCit2YXIgc2Vjb25kQ2hpbGRJblRyZWVUd28gPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7CitzZWNvbmRDaGlsZEluVHJlZVR3by5zZXRBdHRy
aWJ1dGUoImlkIiwgInNlY29uZENoaWxkSW5UcmVlVHdvIik7CitzZWNvbmRDaGlsZEluVHJlZVR3
by50YWJJbmRleCA9ICI0IjsKK3NoYWRvd1Jvb3RJbnNpZGUuYXBwZW5kQ2hpbGQoc2Vjb25kQ2hp
bGRJblRyZWVUd28pOworCitzaG91bGRCZURlZmluZWQoInNoYWRvd1Jvb3QuYWN0aXZlRWxlbWVu
dCIpOworc2hvdWxkQmVEZWZpbmVkKCJzaGFkb3dSb290SW5zaWRlLmFjdGl2ZUVsZW1lbnQiKTsK
K3Nob3VsZEJlKCJmaXJzdENoaWxkSW5UcmVlT25lLmZvY3VzKCk7c2hhZG93Um9vdC5hY3RpdmVF
bGVtZW50IiwgImZpcnN0Q2hpbGRJblRyZWVPbmUiKTsKK3Nob3VsZEJlKCJzZWNvbmRDaGlsZElu
VHJlZU9uZS5mb2N1cygpO3NoYWRvd1Jvb3QuYWN0aXZlRWxlbWVudCIsICJzZWNvbmRDaGlsZElu
VHJlZU9uZSIpOworc2hvdWxkQmUoInNlY29uZENoaWxkSW5UcmVlT25lLmJsdXIoKTtzaGFkb3dS
b290LmFjdGl2ZUVsZW1lbnQiLCAiZG9jdW1lbnQuYm9keSIpOworc2hvdWxkQmUoImZpcnN0Q2hp
bGRJblRyZWVUd28uZm9jdXMoKTtzaGFkb3dSb290SW5zaWRlLmFjdGl2ZUVsZW1lbnQiLCAiZmly
c3RDaGlsZEluVHJlZVR3byIpOworc2hvdWxkQmUoInNlY29uZENoaWxkSW5UcmVlVHdvLmZvY3Vz
KCk7c2hhZG93Um9vdEluc2lkZS5hY3RpdmVFbGVtZW50IiwgInNlY29uZENoaWxkSW5UcmVlVHdv
Iik7CitzaG91bGRCZSgic2Vjb25kQ2hpbGRJblRyZWVUd28uYmx1cigpO3NoYWRvd1Jvb3RJbnNp
ZGUuYWN0aXZlRWxlbWVudCIsICJkb2N1bWVudC5ib2R5Iik7CisKK30KK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gMTEwMjcyKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTQzMSw2ICs0MzEsNyBAQCBm
YXN0L2RvbS9zaGFkb3cvY29udGVudC1lbGVtZW50LW91dHNpZGUtCiBmYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1lbGVtZW50LW91dHNpZGUtc2hhZG93LXN0eWxlLmh0bWwKIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctcm9vdC1qcy1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1kaXNhYmxl
Lmh0bWwKK2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hY3RpdmVFbGVtZW50Lmh0bWwKIGZh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1hdHRhY2hlZC5odG1sCiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtaW5uZXJIVE1MLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcm9vdC1u
ZXcuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiAxMTAyNzIpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAs
NiArMTcwLDcgQEAgZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaAogZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1yb290LWpzLWFwaS5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWRpc2FibGUuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1vbi1pbWFnZS5odG1sCitm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9z
aGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1y
b290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCShyZXZpc2lvbiAxMTAxNDQpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTQ1Nyw2ICsx
NDU3LDcgQEAgZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLQogZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1zdHlsZS5odG1sCiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctZGlzYWJsZS5odG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVu
dC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LXJvb3QtbmV3Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Nr
aXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBl
ZAkocmV2aXNpb24gMTEwMjcyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tp
cHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTk3MSw2ICsxOTcxLDcgQEAgZmFzdC9kb20vc2hhZG93
L2NvbnRlbnQtZWxlbWVudC1hcGkuaHRtbAogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVu
dC1vdXRzaWRlLXNoYWRvdy5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtanMtYXBp
Lmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5odG1sCitmYXN0L2RvbS9zaGFk
b3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1yb290LWlubmVySFRN
TC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3Lmh0bWwKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL3drMi9Ta2lwcGVkCShyZXZpc2lvbiAxMTAxNDQpCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTA2OCw2ICsxMDY4LDcgQEAgZmFz
dC9kb20vc2hhZG93L2NvbnRlbnQtZWxlbWVudC1vdXRzaWRlLQogZmFzdC9kb20vc2hhZG93L2Nv
bnRlbnQtZWxlbWVudC1vdXRzaWRlLXNoYWRvdy1zdHlsZS5odG1sCiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXJvb3QtanMtYXBpLmh0bWwKIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctZGlzYWJsZS5o
dG1sCitmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYWN0aXZlRWxlbWVudC5odG1sCiBmYXN0
L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtYXR0YWNoZWQuaHRtbAogZmFzdC9kb20vc2hhZG93L3No
YWRvdy1yb290LWlubmVySFRNTC5odG1sCiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXJvb3QtbmV3
Lmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>