<?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>99525</bug_id>
          
          <creation_ts>2012-10-16 16:49:03 -0700</creation_ts>
          <short_desc>Spatial Navigation handling of space key in &lt;select&gt; appears to confuse listIndex and optionIndex</short_desc>
          <delta_ts>2014-02-14 05:27:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cshu</cc>
    
    <cc>joepeck</cc>
    
    <cc>kandalkar.abhijeet58</cc>
    
    <cc>ossy</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>743697</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-10-16 16:49:03 -0700</bug_when>
    <thetext>The default key event handler for HTMLSelectElement (HTMLSelectElement::listBoxDefaultEventHandler) attempts to handle the space key with spatial navigation like so:

    } else if (m_multiple &amp;&amp; keyCode == &apos; &apos; &amp;&amp; isSpatialNavigationEnabled(document()-&gt;frame())) {
        // Use space to toggle selection change.
        m_activeSelectionState = !m_activeSelectionState;
        updateSelectedState(listToOptionIndex(m_activeSelectionEndIndex), true /*multi*/, false /*shift*/);
        listBoxOnChange();
        event-&gt;setDefaultHandled();
    }

This would likely fail in a &lt;select multiple&gt; with &lt;optgroup&gt;s because

    • m_activeSelectionEndIndex is a listIndex
    • updateSelectedState expects a listIndex to be passed in
    • the handler above is converting the listIndex to an optionIndex! This would cause issues if there are optgroups

Proposed fix would be to just remove the listToOptionIndex conversion.

Test page would be something like this:

    &lt;select multiple&gt;
      &lt;optgroup&gt;&lt;option&gt;1&lt;/option&gt;&lt;option&gt;2&lt;/option&gt;&lt;/optgroup&gt;
      &lt;optgroup&gt;&lt;option&gt;3&lt;/option&gt;&lt;option&gt;4&lt;/option&gt;&lt;/optgroup&gt;
    &lt;/select&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743703</commentid>
    <comment_count>1</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-10-16 16:53:51 -0700</bug_when>
    <thetext>There is an existing spatial navigation and &lt;select&gt; test:
LayoutTests/fast/events/spatial-navigation/snav-multiple-select.html

Let me see if I can write a test for this (first time ever seeing spatial navigation code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743729</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-10-16 17:18:15 -0700</bug_when>
    <thetext>Apparently the spatial navigation (up / down) is affected by &lt;optgroup&gt;s?

In my basic test (using platform/mac DumpRenderTree) I wasn&apos;t able to cause an
issue with space key handling. In any case I think this sounds like it might be worth
investigation by someone more familiar with spatial navigation who can test it more
readily. I&apos;ll attached my untested patch if someone wants to continue it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743731</commentid>
    <comment_count>3</comment_count>
      <attachid>169063</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2012-10-16 17:19:29 -0700</bug_when>
    <thetext>Created attachment 169063
[PATCH] Untested Patch - Proposed Change

Attaching the untested patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867250</commentid>
    <comment_count>4</comment_count>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-04-01 11:40:05 -0700</bug_when>
    <thetext>Hi Joseph,
Can you please attach the demo html page with use case you were explaining ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867274</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-04-01 12:22:34 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Hi Joseph,
&gt; Can you please attach the demo html page with use case you were explaining ?

Everything is explained in the comments above. I could not create / test a page,
but comment #1 contains what I thought would be a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892729</commentid>
    <comment_count>6</comment_count>
      <attachid>202658</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-05-23 03:55:51 -0700</bug_when>
    <thetext>Created attachment 202658
Patch attached contain fix for bug and layout test to verify changes.(r150435)

Patch attached ensures that-
- User should be able to navigate &lt;select&gt; element with &lt;optgroup&gt; inside it.
- Multiple selection inside &lt;select&gt; element.
- Avoided crashes which used to happen when user click on first &lt;option&gt; element to select it after some random navigation.

Revision used : r150435</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907673</commentid>
    <comment_count>7</comment_count>
      <attachid>206469</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-07-11 08:46:05 -0700</bug_when>
    <thetext>Created attachment 206469
Updated patch-1

Please find updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908479</commentid>
    <comment_count>8</comment_count>
      <attachid>206469</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-07-15 11:58:49 -0700</bug_when>
    <thetext>Comment on attachment 206469
Updated patch-1

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

Thanks for taking a look. This looks good to me! Let me know if you need me to cq+

&gt; LayoutTests/fast/spatial-navigation/snav-multiple-select-optgroup.html:55
&gt; +      shouldBe(&quot;gFocusedDocument.getElementById(\&quot;start\&quot;).options[0].selected&quot;, &quot;false&quot;);
&gt; +      shouldBe(&quot;gFocusedDocument.getElementById(\&quot;start\&quot;).options[1].selected&quot;, &quot;false&quot;);
&gt; +      shouldBe(&quot;gFocusedDocument.getElementById(\&quot;start\&quot;).options[2].selected&quot;, &quot;false&quot;);
&gt; +      shouldBe(&quot;gFocusedDocument.getElementById(\&quot;start\&quot;).options[3].selected&quot;, &quot;false&quot;);

Seems like you could make a helper function that does this. You could then simplify the test and reduce the noise / boilerplate.

For example you could have something like:

    sendKeyAndCheckOptions(&quot;downArrow&quot;, false, false, false, false); // Move to 2nd item.
    sendKeyAndCheckOptions(&quot; &quot;,         false, true, false, false);  // Select 2nd item
    sendKeyAndCheckOptions(&quot;downArrow&quot;, false, true, false, false);  // Move to 4th item (3rd disabled)

Or, something like resultMap, where you have the event =&gt; results formatted nicely together.

But either way, what you have looks like it tests the right things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908482</commentid>
    <comment_count>9</comment_count>
      <attachid>206469</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-07-15 12:05:21 -0700</bug_when>
    <thetext>Comment on attachment 206469
Updated patch-1

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

&gt; Source/WebCore/ChangeLog:7
&gt; +        Moreover,code update current active index of Select Element so that confusion should not happen between listIndex and optionIndex.

Typo: Space after the comma.

Grammar: &quot;code update current active&quot;. Its unclear what you mean by this, and the entire sentence is unclear. You should update the sentence to explain what the code is doing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910268</commentid>
    <comment_count>10</comment_count>
      <attachid>207132</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-07-19 11:41:36 -0700</bug_when>
    <thetext>Created attachment 207132
Updated patch-2

Patch is updated as per your comments.
If you find changes appropriate please go for cq+.
Thanks :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910273</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-07-19 11:55:36 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=207132) [details]
&gt; Updated patch-2
&gt; 
&gt; Patch is updated as per your comments.
&gt; If you find changes appropriate please go for cq+.
&gt; Thanks :)

Note, you shouldn&apos;t set the reviewer as yourself on your own patches. The Commit Queue would likely reject that, especially if you aren&apos;t a reviewer. I&apos;ll take a look at the updated patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910276</commentid>
    <comment_count>12</comment_count>
      <attachid>207132</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-07-19 11:58:13 -0700</bug_when>
    <thetext>Comment on attachment 207132
Updated patch-2

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

Looks good. I can cq+ this one. Thanks.

&gt; LayoutTests/fast/spatial-navigation/snav-multiple-select-optgroup.html:49
&gt; +    function sendKeyAndCheckOptions(option0, option1, option2, option3)

Heh, this function doesn&apos;t actually &quot;sendKey&quot;, it just checks options.

&gt; Source/WebCore/ChangeLog:6
&gt; +        HTMLSelect Element inherently contains the logic to focus option node and thus, implementing an explicit logic to find the focus index is not required.

Grammar: &quot;implementing an explicit&quot; =&gt; &quot;implementing explicit&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910285</commentid>
    <comment_count>13</comment_count>
      <attachid>207132</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-19 12:19:50 -0700</bug_when>
    <thetext>Comment on attachment 207132
Updated patch-2

Clearing flags on attachment: 207132

Committed r152919: &lt;http://trac.webkit.org/changeset/152919&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980248</commentid>
    <comment_count>14</comment_count>
      <attachid>206469</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-02-13 04:11:22 -0800</bug_when>
    <thetext>Comment on attachment 206469
Updated patch-1

Cleared Joseph Pecoraro&apos;s review+ from obsolete attachment 206469 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980387</commentid>
    <comment_count>15</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-02-13 12:13:48 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 206469 [details])
&gt; Cleared Joseph Pecoraro&apos;s review+ from obsolete attachment 206469 [details] so that this bug does not appear in http://webkit.org/pending-commit.

I think you may have been able to keep the review+ marker, and instead move the bug to resolved / fixed. I personally find the r/cq flag useful documentation and easy to see at a glance what happened. I dislike when they are removed, that means I might have to read through all the comments to see what happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980764</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-02-14 05:27:23 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (From update of attachment 206469 [details] [details])
&gt; &gt; Cleared Joseph Pecoraro&apos;s review+ from obsolete attachment 206469 [details] [details] so that this bug does not appear in http://webkit.org/pending-commit.
&gt; 
&gt; I think you may have been able to keep the review+ marker, and instead move the bug to resolved / fixed. I personally find the r/cq flag useful documentation and easy to see at a glance what happened. I dislike when they are removed, that means I might have to read through all the comments to see what happened.

You can always check the history of the flags, for example: https://bugs.webkit.org/show_activity.cgi?id=99525

Tools/Scripts/webit-patch tool always remove flags when you (or commit queue)
land a patch. And it removes flags and obsolete old attachments if you upload
a new patch to a bug. The reason is not to have obsolete and/or already landed
patches in http://webkit.org/pending-commit and http://webkit.org/pending-review

webkit-patch has two commands to maintain these flags, I just ran them:
 - clean-pending-commit        Clear r+ on obsolete patches so they do not appear in the pending-commit list.
 - clean-review-queue          Clear r? on obsolete patches so they do not appear in the pending-review list.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>169063</attachid>
            <date>2012-10-16 17:19:29 -0700</date>
            <delta_ts>2012-10-16 17:19:29 -0700</delta_ts>
            <desc>[PATCH] Untested Patch - Proposed Change</desc>
            <filename>untested.patch</filename>
            <type>application/octet-stream</type>
            <size>823</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggOTM2YjFkMS4u
ZWM3MTI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAg
LTE0MjQsNyArMTQyNCw3IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgfSBlbHNlIGlmIChtX211bHRpcGxl
ICYmIGtleUNvZGUgPT0gJyAnICYmIGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGRvY3VtZW50
KCktPmZyYW1lKCkpKSB7CiAgICAgICAgICAgICAvLyBVc2Ugc3BhY2UgdG8gdG9nZ2xlIHNlbGVj
dGlvbiBjaGFuZ2UuCiAgICAgICAgICAgICBtX2FjdGl2ZVNlbGVjdGlvblN0YXRlID0gIW1fYWN0
aXZlU2VsZWN0aW9uU3RhdGU7Ci0gICAgICAgICAgICB1cGRhdGVTZWxlY3RlZFN0YXRlKGxpc3RU
b09wdGlvbkluZGV4KG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgpLCB0cnVlIC8qbXVsdGkqLywg
ZmFsc2UgLypzaGlmdCovKTsKKyAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGVkU3RhdGUobV9hY3Rp
dmVTZWxlY3Rpb25FbmRJbmRleCwgdHJ1ZSAvKm11bHRpKi8sIGZhbHNlIC8qc2hpZnQqLyk7CiAg
ICAgICAgICAgICBsaXN0Qm94T25DaGFuZ2UoKTsKICAgICAgICAgICAgIGV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOwogICAgICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202658</attachid>
            <date>2013-05-23 03:55:51 -0700</date>
            <delta_ts>2013-07-11 08:46:05 -0700</delta_ts>
            <desc>Patch attached contain fix for bug and layout test to verify changes.(r150435)</desc>
            <filename>99525.diff</filename>
            <type>text/plain</type>
            <size>15594</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUt
c2VsZWN0LW9wdGdyb3VwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW11bHRpcGxlLXNlbGVjdC1vcHRncm91cC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LW11bHRpcGxlLXNlbGVjdC1vcHRncm91cC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTMgQEAKKzIJCis0CQk2Cis4CQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQ
QVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
InN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICI4IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNl
ZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBn
Rm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFy
dCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiNiIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzBdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1sxXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1swXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2Vs
ZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Rh
cnQiKS5vcHRpb25zWzNdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1swXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMV0uc2Vs
ZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNT
IGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1swXS5zZWxl
Y3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mg
Z0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNlbGVj
dGVkIGlzIHRydWUKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQi
KS5vcHRpb25zWzBdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1sxXS5zZWxlY3RlZCBpcyB0cnVlCitQQVNTIGdG
b2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1syXS5zZWxlY3Rl
ZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIp
Lm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0Zv
Y3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNlbGVjdGVk
IGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iiku
b3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9j
dXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQg
aXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5v
cHRpb25zWzFdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9j
dXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQg
aXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9w
dGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNlbGVjdGVkIGlzIHRydWUKK1BBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzJdLnNlbGVjdGVkIGlz
IGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0
aW9uc1szXS5zZWxlY3RlZCBpcyB0cnVlCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUtc2VsZWN0LW9wdGdyb3VwLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1tdWx0aXBsZS1z
ZWxlY3Qtb3B0Z3JvdXAuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUtc2VsZWN0LW9wdGdyb3VwLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTM2IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBjb3JyZWN0bmVzcyBvZiBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29y
aXRobSBvdmVyIG11bHRpcGxlIHNlbGVjdCBlbGVtZW50LgorCisgICAgKiBQcmUtY29uZGl0aW9u
czoKKyAgICAxKSBEUlQgc3VwcG9ydCBmb3IgU05hdiBlbmFibGUvZGlzYWJsZS4KKworICAgICog
TmF2aWdhdGlvbiBzdGVwczoKKyAgICAxKSBMb2FkcyB0aGlzIHBhZ2UsIGZvY3VzIGdvZXMgdG8g
InN0YXJ0IiBhdXRvbWF0aWNhbGx5LgorICAgIDIpIEZvY3VzIG1vdmVzIGF3YXkgZnJvbSBzZWxl
Y3QgaW4gNCBkaWZmZXJlbnQgZGlyZWN0aW9ucyB0byBuZWlnaGJvciBub2RlcyBhbmQgYmFjay4K
KyAgLS0+CisgIDxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc3BhdGlhbC1u
YXZpZ2F0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0
aW9uL2phdmFzY3JpcHQiPgorCisgICAgdmFyIHJlc3VsdE1hcCA9IFsKKyAgICAgIFsiRG93biIs
ICJzdGFydCJdLAorICAgICAgWyJEb3duIiwgInN0YXJ0Il0sCisgICAgICBbIkRvd24iLCAic3Rh
cnQiXSwKKyAgICAgIFsiRG93biIsICI4Il0sCisgICAgICBbIlVwIiwgInN0YXJ0Il0sCisgICAg
ICBbIlVwIiwgInN0YXJ0Il0sCisgICAgICBbIlVwIiwgInN0YXJ0Il0sCisgICAgICBbIlVwIiwg
IjIiXSwKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyJSaWdodCIsICI2Il0sCisg
ICAgICBbIkxlZnQiLCAic3RhcnQiXSwKKyAgICAgIFsiTGVmdCIsICI0Il0sCisgICAgICBbIlJp
Z2h0IiwgInN0YXJ0Il0sCisgICAgICBbIkRPTkUiLCAiRE9ORSJdCisgICAgXTsKKworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICB0ZXN0UnVubmVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAg
IHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRUYWJUb0xpbmtzUHJlZmVyZW5j
ZUtleSIsIDEpOworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8gc3RhcnRpbmcgdGhlIHRlc3Qg
aXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIGluaXRUZXN0KHJlc3VsdE1hcCwgYWRkaXRp
b25hbFRlc3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGFkZGl0aW9uYWxUZXN0KCkKKyAgICB7
CisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOyAgICAgICAg
IC8vbW92ZSB0byAxc3QgaXRlbQorICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25zWzBdLnNlbGVjdGVkIiwgImZhbHNlIik7Cisg
ICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIp
Lm9wdGlvbnNbMV0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNl
ZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1syXS5zZWxlY3RlZCIs
ICJmYWxzZSIpOworICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoXCJzdGFydFwiKS5vcHRpb25zWzNdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBldmVu
dFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsgICAgICAgICAgICAgICAgIC8vbW92ZSB0byAy
bmQgaXRlbQorICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
XCJzdGFydFwiKS5vcHRpb25zWzBdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRC
ZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMV0u
c2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1syXS5zZWxlY3RlZCIsICJmYWxzZSIpOwor
ICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwi
KS5vcHRpb25zWzNdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBldmVudFNlbmRlci5rZXlE
b3duKCIgIik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vc2VsZWN0IDJuZCBpdGVtCisgICAg
ICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9w
dGlvbnNbMF0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1sxXS5zZWxlY3RlZCIsICJ0
cnVlIik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChc
InN0YXJ0XCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJl
KCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1szXS5z
ZWxlY3RlZCIsICJmYWxzZSIpOworICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93
Iik7ICAgICAgICAgICAgICAgICAvL21vdmUgdG8gNHRoIGl0ZW0gKDNyZCBpdGVtIGlzIGRpc2Fi
bGVkKSAKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwi
c3RhcnRcIikub3B0aW9uc1swXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAgICAgc2hvdWxkQmUo
ImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25zWzFdLnNl
bGVjdGVkIiwgInRydWUiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1syXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAg
ICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5v
cHRpb25zWzNdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3du
KCIgIik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vc2VsZWN0IDR0aCBpdGVtCisgICAgICBz
aG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlv
bnNbMF0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1sxXS5zZWxlY3RlZCIsICJ0cnVl
Iik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0
YXJ0XCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJn
Rm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1szXS5zZWxl
Y3RlZCIsICJ0cnVlIik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7ICAg
ICAgICAgICAgICAgICAgIC8vbW92ZSBiYWNrIHRvIDJuZCBpdGVtCisgICAgICBzaG91bGRCZSgi
Z0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMF0uc2Vs
ZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1sxXS5zZWxlY3RlZCIsICJ0cnVlIik7CisgICAg
ICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9w
dGlvbnNbMl0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1szXS5zZWxlY3RlZCIsICJ0
cnVlIik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3duKCIgIik7ICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vZGVzZWxlY3QgMm5kIGl0ZW0KKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1swXS5zZWxlY3RlZCIsICJmYWxz
ZSIpOworICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJz
dGFydFwiKS5vcHRpb25zWzFdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRCZSgi
Z0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMl0uc2Vs
ZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1szXS5zZWxlY3RlZCIsICJ0cnVlIik7CisgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7ICAgICAgICAgICAgICAgICAgIC8vbW92
ZSBiYWNrIHRvIDFzdCBpdGVtCisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRF
bGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAg
ICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIiku
b3B0aW9uc1sxXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAgICAgc2hvdWxkQmUoImdGb2N1c2Vk
RG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25zWzJdLnNlbGVjdGVkIiwg
ImZhbHNlIik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChcInN0YXJ0XCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQiLCAidHJ1ZSIpOworICAgICAgZXZlbnRT
ZW5kZXIua2V5RG93bigiZG93bkFycm93IiwgWyJzaGlmdEtleSJdKTsgICAvL3NoaWZ0LWRvd24g
dG8gMm5kIGl0ZW0KKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRC
eUlkKFwic3RhcnRcIikub3B0aW9uc1swXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAgICAgc2hv
dWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25z
WzFdLnNlbGVjdGVkIiwgInRydWUiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1syXS5zZWxlY3RlZCIsICJmYWxzZSIp
OworICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFy
dFwiKS5vcHRpb25zWzNdLnNlbGVjdGVkIiwgInRydWUiKTsKKworICAgICAgdGVzdENvbXBsZXRl
ZCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorICAgIHsKKyAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgfQorCisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKKyAgICA8L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0ianMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPgorICAgIDx0YWJsZSBzdHlsZT0idGV4dC1hbGlnbjogbGVmdDsg
d2lkdGg6IDEwMCU7IG1hcmdpbi1sZWZ0OiBhdXRvOyBtYXJnaW4tcmlnaHQ6IGF1dG87IiBib3Jk
ZXI9IjEiIGNlbGxwYWRkaW5nPSIyIiBjZWxsc3BhY2luZz0iMSI+CisgICAgICA8dGJvZHk+Cisg
ICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1h
bGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iMiIgaHJlZj0iYSI+MjwvYT48
L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGln
bjogY2VudGVyOyI+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAg
IDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEg
aWQ9IjQiIGhyZWY9ImEiPjQ8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2Fs
LWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPgorCQkgIDxzZWxlY3QgaWQ9InN0YXJ0
IiBtdWx0aXBsZT48b3B0Z3JvdXAgbGFiZWw9Im8xIj48b3B0aW9uPjE8L29wdGlvbj48L29wdGdy
b3VwPjxvcHRncm91cCBsYWJlbD0ibzIiPjxvcHRpb24+Mjwvb3B0aW9uPjwvb3B0Z3JvdXA+PG9w
dGdyb3VwIGxhYmVsPSJvMyI+PG9wdGlvbiBkaXNhYmxlZD4zPC9vcHRpb24+PC9vcHRncm91cD48
b3B0Z3JvdXAgbGFiZWw9Im80Ij48b3B0aW9uPjQ8L29wdGlvbj48L29wdGdyb3VwPgorCQkgIDwv
c2VsZWN0PjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0
ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNiIgaHJlZj0iYSI+NjwvYT48L3RkPgorICAgICAg
ICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln
bjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0i
dmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjgiIGhyZWY9
ImEiPjg8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7
IHRleHQtYWxpZ246IGNlbnRlcjsiPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3Rib2R5
PgorICAgIDwvdGFibGU+CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDwvYm9keT4K
KzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwNDM1KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDUtMjEgIEFiaGlq
ZWV0IEthbmRhbGthciAgPGFiaGlqZWV0LmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BhdGlh
bCBOYXZpZ2F0aW9uIGhhbmRsaW5nIG9mIHNwYWNlIGtleSBpbiA8c2VsZWN0PiBhcHBlYXJzIHRv
IGNvbmZ1c2UgbGlzdEluZGV4IGFuZCBvcHRpb25JbmRleC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NTI1CisKKyAgICAgICAgSFRNTFNlbGVjdCBF
bGVtZW50IGluaGVyZW50bHkgY29udGFpbnMgdGhlIGxvZ2ljIHRvIGZvY3VzIG9wdGlvbiBub2Rl
IGFuZCB0aHVzLCBpbXBsZW1lbnRpbmcgYW4gZXhwbGljaXQgbG9naWMgdG8gZmluZCB0aGUgZm9j
dXMgaW5kZXggaXMgbm90IHJlcXVpcmVkLgorICAgICAgICBNb3Jlb3Zlcixjb2RlIHVwZGF0ZSBj
dXJyZW50IGFjdGl2ZSBpbmRleCBvZiBTZWxlY3QgRWxlbWVudCBzbyB0aGF0IGNvbmZ1c2lvbiBz
aG91bGQgbm90IGhhcHBlbiBiZXR3ZWVuIGxpc3RJbmRleCBhbmQgb3B0aW9uSW5kZXguCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3NwYXRp
YWwtbmF2aWdhdGlvbi9zbmF2LW11bHRpcGxlLXNlbGVjdC1vcHRncm91cC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUt
c2VsZWN0LW9wdGdyb3VwLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA1LTIxICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtNYWNdIHN2Zy9iYXRpay9wYWludHMvcGF0
dGVyblJlZ2lvbnMtcG9zaXRpb25lZC1vYmplY3RzLnN2ZyBpcyBmbGFreQpJbmRleDogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTUwNDM1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMDUtMjEgIEFiaGlqZWV0IEthbmRhbGthciAg
PGFiaGlqZWV0LmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIGhh
bmRsaW5nIG9mIHNwYWNlIGtleSBpbiA8c2VsZWN0PiBhcHBlYXJzIHRvIGNvbmZ1c2UgbGlzdElu
ZGV4IGFuZCBvcHRpb25JbmRleC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5NTI1CisKKyAgICAgICAgQWRkZWQgdGVzdGNhc2UgdG8gdGVzdCBzdXBw
b3J0IG9mIG9wdGlvbiBncm91cCB3aXRoaW4gSFRNTFNlbGVjdCBlbGVtZW50LgorCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1tdWx0aXBsZS1zZWxlY3Qtb3B0Z3JvdXAuaHRtbAorCisgICAg
ICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2VsZWN0RWxlbWVudDo6bGlzdEJveERlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAqIHBh
Z2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2FuU2Nyb2xsSW5E
aXJlY3Rpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmFkZEZvY3VzUmluZ1JlY3RzKToKKwogMjAxMy0w
NS0yMSAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0dT
dHJlYW1lcl0gY2xlYW51cCBkdXJhdGlvbiBxdWVyeQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAJKHJldmlzaW9uIDE0OTc5MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTAsNiAr
NDUwLDEwIEBACiBib29sIGNhblNjcm9sbEluRGlyZWN0aW9uKGNvbnN0IE5vZGUqIGNvbnRhaW5l
ciwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogewogICAgIEFTU0VSVChjb250YWluZXIpOwor
CisgICAgaWYgKGNvbnRhaW5lci0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmIChjb250YWluZXItPmlzRG9jdW1lbnROb2Rl
KCkpCiAgICAgICAgIHJldHVybiBjYW5TY3JvbGxJbkRpcmVjdGlvbih0b0RvY3VtZW50KGNvbnRh
aW5lciktPmZyYW1lKCksIGRpcmVjdGlvbik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNDk3OTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ0NSw3ICsx
NDQ1LDEwIEBACiAgICAgICAgIH0gZWxzZSBpZiAobV9tdWx0aXBsZSAmJiBrZXlDb2RlID09ICcg
JyAmJiBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChkb2N1bWVudCgpLT5mcmFtZSgpKSkgewog
ICAgICAgICAgICAgLy8gVXNlIHNwYWNlIHRvIHRvZ2dsZSBzZWxlY3Rpb24gY2hhbmdlLgogICAg
ICAgICAgICAgbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZSA9ICFtX2FjdGl2ZVNlbGVjdGlvblN0YXRl
OwotICAgICAgICAgICAgdXBkYXRlU2VsZWN0ZWRTdGF0ZShsaXN0VG9PcHRpb25JbmRleChtX2Fj
dGl2ZVNlbGVjdGlvbkVuZEluZGV4KSwgdHJ1ZSAvKm11bHRpKi8sIGZhbHNlIC8qc2hpZnQqLyk7
CisgICAgICAgICAgICBBU1NFUlQobV9hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCA+PSAwCisgICAg
ICAgICAgICAgICAgJiYgbV9hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCA8IHN0YXRpY19jYXN0PGlu
dD4obGlzdEl0ZW1zLnNpemUoKSkKKyAgICAgICAgICAgICAgICAmJiBsaXN0SXRlbXNbbV9hY3Rp
dmVTZWxlY3Rpb25FbmRJbmRleF0tPmhhc1RhZ05hbWUob3B0aW9uVGFnKSk7CisgICAgICAgICAg
ICB1cGRhdGVTZWxlY3RlZFN0YXRlKG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgsIHRydWUgLypt
dWx0aSovLCBmYWxzZSAvKnNoaWZ0Ki8pOwogICAgICAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7
CiAgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAkocmV2aXNpb24g
MTQ5NzkwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNDgsNiArMzQ4LDcgQEAKICAgICBmb3IgKGludCBpID0gMDsgaSA8
IHNpemU7ICsraSkgewogICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGxpc3RJdGVtc1tp
XTsKICAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSAmJiAhZWxlbWVu
dC0+aXNEaXNhYmxlZEZvcm1Db250cm9sKCkpIHsKKyAgICAgICAgICAgIHNlbGVjdC0+c2V0QWN0
aXZlU2VsZWN0aW9uRW5kSW5kZXgoaSk7CiAgICAgICAgICAgICByZWN0cy5hcHBlbmQocGl4ZWxT
bmFwcGVkSW50UmVjdChpdGVtQm91bmRpbmdCb3hSZWN0KGFkZGl0aW9uYWxPZmZzZXQsIGkpKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206469</attachid>
            <date>2013-07-11 08:46:05 -0700</date>
            <delta_ts>2014-02-13 04:11:22 -0800</delta_ts>
            <desc>Updated patch-1</desc>
            <filename>99525.diff</filename>
            <type>text/plain</type>
            <size>15641</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUt
c2VsZWN0LW9wdGdyb3VwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW11bHRpcGxlLXNlbGVjdC1vcHRncm91cC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LW11bHRpcGxlLXNlbGVjdC1vcHRncm91cC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTMgQEAKKzIJCis0CQk2Cis4CQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQ
QVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
InN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICI4IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNl
ZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBn
Rm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFy
dCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiNiIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzBdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1sxXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1swXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2Vs
ZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Rh
cnQiKS5vcHRpb25zWzNdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1swXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMV0uc2Vs
ZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNT
IGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1swXS5zZWxl
Y3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mg
Z0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNlbGVj
dGVkIGlzIHRydWUKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQi
KS5vcHRpb25zWzBdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1sxXS5zZWxlY3RlZCBpcyB0cnVlCitQQVNTIGdG
b2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1syXS5zZWxlY3Rl
ZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIp
Lm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0Zv
Y3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNlbGVjdGVk
IGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iiku
b3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9j
dXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQg
aXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5v
cHRpb25zWzFdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9j
dXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQg
aXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9w
dGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNlbGVjdGVkIGlzIHRydWUKK1BBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzJdLnNlbGVjdGVkIGlz
IGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0
aW9uc1szXS5zZWxlY3RlZCBpcyB0cnVlCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUtc2VsZWN0LW9wdGdyb3VwLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1tdWx0aXBsZS1z
ZWxlY3Qtb3B0Z3JvdXAuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUtc2VsZWN0LW9wdGdyb3VwLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTM2IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBjb3JyZWN0bmVzcyBvZiBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29y
aXRobSBvdmVyIG11bHRpcGxlIHNlbGVjdCBlbGVtZW50LgorCisgICAgKiBQcmUtY29uZGl0aW9u
czoKKyAgICAxKSBUZXN0UnVubmVyIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisK
KyAgICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBn
b2VzIHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhd2F5IGZy
b20gc2VsZWN0IGluIDQgZGlmZmVyZW50IGRpcmVjdGlvbnMgdG8gbmVpZ2hib3Igbm9kZXMgYW5k
IGJhY2suCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Nw
YXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciByZXN1bHRNYXAgPSBbCisgICAgICBb
IkRvd24iLCAic3RhcnQiXSwKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyJEb3du
IiwgInN0YXJ0Il0sCisgICAgICBbIkRvd24iLCAiOCJdLAorICAgICAgWyJVcCIsICJzdGFydCJd
LAorICAgICAgWyJVcCIsICJzdGFydCJdLAorICAgICAgWyJVcCIsICJzdGFydCJdLAorICAgICAg
WyJVcCIsICIyIl0sCisgICAgICBbIkRvd24iLCAic3RhcnQiXSwKKyAgICAgIFsiUmlnaHQiLCAi
NiJdLAorICAgICAgWyJMZWZ0IiwgInN0YXJ0Il0sCisgICAgICBbIkxlZnQiLCAiNCJdLAorICAg
ICAgWyJSaWdodCIsICJzdGFydCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgICAgdGVzdFJ1bm5lci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7
CisgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1By
ZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICBpbml0VGVzdChyZXN1bHRNYXAs
IGFkZGl0aW9uYWxUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBhZGRpdGlvbmFsVGVzdCgp
CisgICAgeworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0IikuZm9jdXMoKTsg
ICAgICAgICAvL21vdmUgdG8gMXN0IGl0ZW0KKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1swXS5zZWxlY3RlZCIsICJmYWxz
ZSIpOworICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJz
dGFydFwiKS5vcHRpb25zWzFdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRCZSgi
Z0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMl0uc2Vs
ZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1szXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7ICAgICAgICAgICAgICAgICAvL21v
dmUgdG8gMm5kIGl0ZW0KKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1l
bnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1swXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAgICAg
c2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRp
b25zWzFdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1
bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQiLCAiZmFs
c2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwi
c3RhcnRcIikub3B0aW9uc1szXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAgICAgZXZlbnRTZW5k
ZXIua2V5RG93bigiICIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvL3NlbGVjdCAybmQgaXRl
bQorICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFy
dFwiKS5vcHRpb25zWzBdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRCZSgiZ0Zv
Y3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMV0uc2VsZWN0
ZWQiLCAidHJ1ZSIpOworICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoXCJzdGFydFwiKS5vcHRpb25zWzJdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBz
aG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlv
bnNbM10uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRv
d25BcnJvdyIpOyAgICAgICAgICAgICAgICAgLy9tb3ZlIHRvIDR0aCBpdGVtICgzcmQgaXRlbSBp
cyBkaXNhYmxlZCkgCisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50
QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNo
b3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9u
c1sxXS5zZWxlY3RlZCIsICJ0cnVlIik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQiLCAiZmFsc2Ui
KTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3Rh
cnRcIikub3B0aW9uc1szXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiICIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvL3NlbGVjdCA0dGggaXRlbQor
ICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwi
KS5vcHRpb25zWzBdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3Vz
ZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQi
LCAidHJ1ZSIpOworICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoXCJzdGFydFwiKS5vcHRpb25zWzJdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91
bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNb
M10uc2VsZWN0ZWQiLCAidHJ1ZSIpOworICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJv
dyIpOyAgICAgICAgICAgICAgICAgICAvL21vdmUgYmFjayB0byAybmQgaXRlbQorICAgICAgc2hv
dWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25z
WzBdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQiLCAidHJ1ZSIp
OworICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFy
dFwiKS5vcHRpb25zWzJdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRCZSgiZ0Zv
Y3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbM10uc2VsZWN0
ZWQiLCAidHJ1ZSIpOworICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiICIpOyAgICAgICAgICAg
ICAgICAgICAgICAgICAvL2Rlc2VsZWN0IDJuZCBpdGVtCisgICAgICBzaG91bGRCZSgiZ0ZvY3Vz
ZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQi
LCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRC
eUlkKFwic3RhcnRcIikub3B0aW9uc1sxXS5zZWxlY3RlZCIsICJmYWxzZSIpOworICAgICAgc2hv
dWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25z
WzJdLnNlbGVjdGVkIiwgImZhbHNlIik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQiLCAidHJ1ZSIp
OworICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOyAgICAgICAgICAgICAgICAg
ICAvL21vdmUgYmFjayB0byAxc3QgaXRlbQorICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25zWzBdLnNlbGVjdGVkIiwgImZhbHNl
Iik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0
YXJ0XCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJn
Rm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIikub3B0aW9uc1syXS5zZWxl
Y3RlZCIsICJmYWxzZSIpOworICAgICAgc2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25zWzNdLnNlbGVjdGVkIiwgInRydWUiKTsKKyAgICAg
IGV2ZW50U2VuZGVyLmtleURvd24oImRvd25BcnJvdyIsIFsic2hpZnRLZXkiXSk7ICAgLy9zaGlm
dC1kb3duIHRvIDJuZCBpdGVtCisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1bWVudC5nZXRF
bGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQiLCAiZmFsc2UiKTsKKyAg
ICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic3RhcnRcIiku
b3B0aW9uc1sxXS5zZWxlY3RlZCIsICJ0cnVlIik7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWRE
b2N1bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQiLCAi
ZmFsc2UiKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlk
KFwic3RhcnRcIikub3B0aW9uc1szXS5zZWxlY3RlZCIsICJ0cnVlIik7CisKKyAgICAgIHRlc3RD
b21wbGV0ZWQoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICB7
CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCisgICAgPC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9ImpzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKyAgICA8dGFibGUgc3R5bGU9InRleHQtYWxpZ246
IGxlZnQ7IHdpZHRoOiAxMDAlOyBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRv
OyIgYm9yZGVyPSIxIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjEiPgorICAgICAgPHRi
b2R5PgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjog
dG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVy
dGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjIiIGhyZWY9ImEi
PjI8L2E+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRl
eHQtYWxpZ246IGNlbnRlcjsiPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAg
ICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRl
cjsiPjxhIGlkPSI0IiBocmVmPSJhIj40PC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KKwkJICA8c2VsZWN0IGlk
PSJzdGFydCIgbXVsdGlwbGU+PG9wdGdyb3VwIGxhYmVsPSJvMSI+PG9wdGlvbj4xPC9vcHRpb24+
PC9vcHRncm91cD48b3B0Z3JvdXAgbGFiZWw9Im8yIj48b3B0aW9uPjI8L29wdGlvbj48L29wdGdy
b3VwPjxvcHRncm91cCBsYWJlbD0ibzMiPjxvcHRpb24gZGlzYWJsZWQ+Mzwvb3B0aW9uPjwvb3B0
Z3JvdXA+PG9wdGdyb3VwIGxhYmVsPSJvNCI+PG9wdGlvbj40PC9vcHRpb24+PC9vcHRncm91cD4K
KwkJICA8L3NlbGVjdD48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246
IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaWQ9IjYiIGhyZWY9ImEiPjY8L2E+PC90ZD4K
KyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGlj
YWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+PC90ZD4KKyAgICAgICAgICA8dGQg
c3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSI4
IiBocmVmPSJhIj44PC9hPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGln
bjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48L3RkPgorICAgICAgICA8L3RyPgorICAgICAg
PC90Ym9keT4KKyAgICA8L3RhYmxlPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8
L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjU2NykKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA3LTEx
ICBBYmhpamVldCBLYW5kYWxrYXIgIDxhYmhpamVldC5rQHNhbXN1bmcuY29tPgorCisgICAgICAg
IFNwYXRpYWwgTmF2aWdhdGlvbiBoYW5kbGluZyBvZiBzcGFjZSBrZXkgaW4gPHNlbGVjdD4gYXBw
ZWFycyB0byBjb25mdXNlIGxpc3RJbmRleCBhbmQgb3B0aW9uSW5kZXguCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTUyNQorCisgICAgICAgIEFkZGVk
IHRlc3RjYXNlIHRvIHRlc3Qgc3VwcG9ydCBvZiBvcHRpb24gZ3JvdXAgd2l0aGluIEhUTUxTZWxl
Y3QgZWxlbWVudC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUtc2VsZWN0LW9wdGdy
b3VwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi1tdWx0aXBsZS1zZWxlY3Qtb3B0Z3JvdXAuaHRtbDogQWRkZWQuCisKIDIwMTMtMDct
MTEgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBbR1RLXSBVbnJldmlld2VkIGdhcmRlbmluZy4gQWRkZWQgY3Jhc2ggZXhwZWN0YXRpb25z
IGluIGRlYnVnIGJ1aWxkcyBhZnRlciByMTUyNTM3CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
NTI1NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMiBAQAorMjAxMy0wNy0xMSAgQWJoaWplZXQgS2FuZGFsa2FyICA8YWJoaWplZXQua0Bz
YW1zdW5nLmNvbT4KKworICAgICAgICBTcGF0aWFsIE5hdmlnYXRpb24gaGFuZGxpbmcgb2Ygc3Bh
Y2Uga2V5IGluIDxzZWxlY3Q+IGFwcGVhcnMgdG8gY29uZnVzZSBsaXN0SW5kZXggYW5kIG9wdGlv
bkluZGV4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTk1MjUKKworICAgICAgICBIVE1MU2VsZWN0IEVsZW1lbnQgaW5oZXJlbnRseSBjb250YWlucyB0
aGUgbG9naWMgdG8gZm9jdXMgb3B0aW9uIG5vZGUgYW5kIHRodXMsIGltcGxlbWVudGluZyBhbiBl
eHBsaWNpdCBsb2dpYyB0byBmaW5kIHRoZSBmb2N1cyBpbmRleCBpcyBub3QgcmVxdWlyZWQuCisg
ICAgICAgIE1vcmVvdmVyLGNvZGUgdXBkYXRlIGN1cnJlbnQgYWN0aXZlIGluZGV4IG9mIFNlbGVj
dCBFbGVtZW50IHNvIHRoYXQgY29uZnVzaW9uIHNob3VsZCBub3QgaGFwcGVuIGJldHdlZW4gbGlz
dEluZGV4IGFuZCBvcHRpb25JbmRleC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW11bHRp
cGxlLXNlbGVjdC1vcHRncm91cC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVm
YXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICogcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjYW5TY3JvbGxJbkRpcmVjdGlvbik6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJv
eDo6YWRkRm9jdXNSaW5nUmVjdHMpOgorCiAyMDEzLTA3LTExICBLYW5naWwgSGFuICA8a2FuZ2ls
LmhhbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgaXNIVE1MVGl0bGVFbGVtZW50
IGFuZCB0b0hUTUxUaXRsZUVsZW1lbnQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlh
bE5hdmlnYXRpb24uY3BwCShyZXZpc2lvbiAxNTI1NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ4LDYgKzQ0OCwxMCBA
QAogYm9vbCBjYW5TY3JvbGxJbkRpcmVjdGlvbihjb25zdCBOb2RlKiBjb250YWluZXIsIEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQoY29udGFpbmVyKTsKKworICAgIGlm
IChjb250YWluZXItPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKICAgICBpZiAoY29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQogICAg
ICAgICByZXR1cm4gY2FuU2Nyb2xsSW5EaXJlY3Rpb24odG9Eb2N1bWVudChjb250YWluZXIpLT5m
cmFtZSgpLCBkaXJlY3Rpb24pOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTUyNTY3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NTAsNyArMTQ1MCwxMCBA
QAogICAgICAgICB9IGVsc2UgaWYgKG1fbXVsdGlwbGUgJiYga2V5Q29kZSA9PSAnICcgJiYgaXNT
cGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZG9jdW1lbnQoKS0+ZnJhbWUoKSkpIHsKICAgICAgICAg
ICAgIC8vIFVzZSBzcGFjZSB0byB0b2dnbGUgc2VsZWN0aW9uIGNoYW5nZS4KICAgICAgICAgICAg
IG1fYWN0aXZlU2VsZWN0aW9uU3RhdGUgPSAhbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZTsKLSAgICAg
ICAgICAgIHVwZGF0ZVNlbGVjdGVkU3RhdGUobGlzdFRvT3B0aW9uSW5kZXgobV9hY3RpdmVTZWxl
Y3Rpb25FbmRJbmRleCksIHRydWUgLyptdWx0aSovLCBmYWxzZSAvKnNoaWZ0Ki8pOworICAgICAg
ICAgICAgQVNTRVJUKG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXggPj0gMAorICAgICAgICAgICAg
ICAgICYmIG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXggPCBzdGF0aWNfY2FzdDxpbnQ+KGxpc3RJ
dGVtcy5zaXplKCkpCisgICAgICAgICAgICAgICAgJiYgbGlzdEl0ZW1zW21fYWN0aXZlU2VsZWN0
aW9uRW5kSW5kZXhdLT5oYXNUYWdOYW1lKG9wdGlvblRhZykpOworICAgICAgICAgICAgdXBkYXRl
U2VsZWN0ZWRTdGF0ZShtX2FjdGl2ZVNlbGVjdGlvbkVuZEluZGV4LCB0cnVlIC8qbXVsdGkqLywg
ZmFsc2UgLypzaGlmdCovKTsKICAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwogICAgICAg
ICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAJKHJldmlzaW9uIDE1MjU2NykK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQ4LDYgKzM0OCw3IEBACiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyAr
K2kpIHsKICAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBsaXN0SXRlbXNbaV07CiAgICAg
ICAgIGlmIChpc0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpICYmICFlbGVtZW50LT5pc0Rpc2Fi
bGVkRm9ybUNvbnRyb2woKSkgeworICAgICAgICAgICAgc2VsZWN0LT5zZXRBY3RpdmVTZWxlY3Rp
b25FbmRJbmRleChpKTsKICAgICAgICAgICAgIHJlY3RzLmFwcGVuZChwaXhlbFNuYXBwZWRJbnRS
ZWN0KGl0ZW1Cb3VuZGluZ0JveFJlY3QoYWRkaXRpb25hbE9mZnNldCwgaSkpKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207132</attachid>
            <date>2013-07-19 11:41:36 -0700</date>
            <delta_ts>2013-07-19 12:19:50 -0700</delta_ts>
            <desc>Updated patch-2</desc>
            <filename>Updated-2.diff</filename>
            <type>text/plain</type>
            <size>13250</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUt
c2VsZWN0LW9wdGdyb3VwLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW11bHRpcGxlLXNlbGVjdC1vcHRncm91cC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LW11bHRpcGxlLXNlbGVjdC1vcHRncm91cC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTMgQEAKKzIJCis0CQk2Cis4CQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQ
QVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMg
InN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRl
KCJpZCIpIGlzICI4IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0
cmlidXRlKCJpZCIpIGlzICJzdGFydCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVt
ZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNl
ZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBn
Rm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFy
dCIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAiNiIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAic3RhcnQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIjQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzBdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1sxXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNl
bGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0
YXJ0Iikub3B0aW9uc1swXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2Vs
ZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3Rh
cnQiKS5vcHRpb25zWzNdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1swXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMV0uc2Vs
ZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNT
IGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1swXS5zZWxl
Y3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFy
dCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMl0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1Mg
Z0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzNdLnNlbGVj
dGVkIGlzIHRydWUKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQi
KS5vcHRpb25zWzBdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1sxXS5zZWxlY3RlZCBpcyB0cnVlCitQQVNTIGdG
b2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1syXS5zZWxlY3Rl
ZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIp
Lm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0Zv
Y3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNlbGVjdGVk
IGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iiku
b3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQgaXMgdHJ1ZQorUEFTUyBnRm9j
dXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbMF0uc2VsZWN0ZWQg
aXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5v
cHRpb25zWzFdLnNlbGVjdGVkIGlzIGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN0YXJ0Iikub3B0aW9uc1syXS5zZWxlY3RlZCBpcyBmYWxzZQorUEFTUyBnRm9j
dXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9wdGlvbnNbM10uc2VsZWN0ZWQg
aXMgdHJ1ZQorUEFTUyBnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLm9w
dGlvbnNbMF0uc2VsZWN0ZWQgaXMgZmFsc2UKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzFdLnNlbGVjdGVkIGlzIHRydWUKK1BBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhcnQiKS5vcHRpb25zWzJdLnNlbGVjdGVkIGlz
IGZhbHNlCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXJ0Iikub3B0
aW9uc1szXS5zZWxlY3RlZCBpcyB0cnVlCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlh
bC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUtc2VsZWN0LW9wdGdyb3VwLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1tdWx0aXBsZS1z
ZWxlY3Qtb3B0Z3JvdXAuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3Bh
dGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUtc2VsZWN0LW9wdGdyb3VwLmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTE3IEBACis8aHRtbD4KKyAgPCEtLQorICAgIFRoaXMgdGVzdCBl
bnN1cmVzIHRoZSBjb3JyZWN0bmVzcyBvZiBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29y
aXRobSBvdmVyIG11bHRpcGxlIHNlbGVjdCBlbGVtZW50LgorCisgICAgKiBQcmUtY29uZGl0aW9u
czoKKyAgICAxKSBUZXN0UnVubmVyIHN1cHBvcnQgZm9yIFNOYXYgZW5hYmxlL2Rpc2FibGUuCisK
KyAgICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhpcyBwYWdlLCBmb2N1cyBn
b2VzIHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1cyBtb3ZlcyBhd2F5IGZy
b20gc2VsZWN0IGluIDQgZGlmZmVyZW50IGRpcmVjdGlvbnMgdG8gbmVpZ2hib3Igbm9kZXMgYW5k
IGJhY2suCisgIC0tPgorICA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Nw
YXRpYWwtbmF2aWdhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJh
cHBsaWNhdGlvbi9qYXZhc2NyaXB0Ij4KKworICAgIHZhciByZXN1bHRNYXAgPSBbCisgICAgICBb
IkRvd24iLCAic3RhcnQiXSwKKyAgICAgIFsiRG93biIsICJzdGFydCJdLAorICAgICAgWyJEb3du
IiwgInN0YXJ0Il0sCisgICAgICBbIkRvd24iLCAiOCJdLAorICAgICAgWyJVcCIsICJzdGFydCJd
LAorICAgICAgWyJVcCIsICJzdGFydCJdLAorICAgICAgWyJVcCIsICJzdGFydCJdLAorICAgICAg
WyJVcCIsICIyIl0sCisgICAgICBbIkRvd24iLCAic3RhcnQiXSwKKyAgICAgIFsiUmlnaHQiLCAi
NiJdLAorICAgICAgWyJMZWZ0IiwgInN0YXJ0Il0sCisgICAgICBbIkxlZnQiLCAiNCJdLAorICAg
ICAgWyJSaWdodCIsICJzdGFydCJdLAorICAgICAgWyJET05FIiwgIkRPTkUiXQorICAgIF07CisK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgICAgdGVzdFJ1bm5lci5zZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQodHJ1ZSk7
CisgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VGFiVG9MaW5rc1By
ZWZlcmVuY2VLZXkiLCAxKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIHsKKyAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOworCisgICAgICBpbml0VGVzdChyZXN1bHRNYXAs
IGFkZGl0aW9uYWxUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBzZW5kS2V5QW5kQ2hlY2tP
cHRpb25zKG9wdGlvbjAsIG9wdGlvbjEsIG9wdGlvbjIsIG9wdGlvbjMpCisgICAgeworICAgICAg
c2hvdWxkQmUoImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRp
b25zWzBdLnNlbGVjdGVkIiwgb3B0aW9uMCk7CisgICAgICBzaG91bGRCZSgiZ0ZvY3VzZWREb2N1
bWVudC5nZXRFbGVtZW50QnlJZChcInN0YXJ0XCIpLm9wdGlvbnNbMV0uc2VsZWN0ZWQiLCBvcHRp
b24xKTsKKyAgICAgIHNob3VsZEJlKCJnRm9jdXNlZERvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwi
c3RhcnRcIikub3B0aW9uc1syXS5zZWxlY3RlZCIsIG9wdGlvbjIpOworICAgICAgc2hvdWxkQmUo
ImdGb2N1c2VkRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzdGFydFwiKS5vcHRpb25zWzNdLnNl
bGVjdGVkIiwgb3B0aW9uMyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYWRkaXRpb25hbFRlc3Qo
KQorICAgIHsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7
ICAgICAgICAgLy9tb3ZlIHRvIDFzdCBpdGVtCisgICAgICBzZW5kS2V5QW5kQ2hlY2tPcHRpb25z
KCJmYWxzZSIsICJmYWxzZSIsICJmYWxzZSIsICJmYWxzZSIpOworICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiZG93bkFycm93Iik7ICAgICAgICAgICAgICAgICAvL21vdmUgdG8gMm5kIGl0ZW0K
KyAgICAgIHNlbmRLZXlBbmRDaGVja09wdGlvbnMoImZhbHNlIiwgImZhbHNlIiwgImZhbHNlIiwg
ImZhbHNlIik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3duKCIgIik7ICAgICAgICAgICAgICAg
ICAgICAgICAgIC8vbm90aGluZyBzaG91bGQgY2hhbmdlCisgICAgICBzZW5kS2V5QW5kQ2hlY2tP
cHRpb25zKCJmYWxzZSIsICJ0cnVlIiwgImZhbHNlIiwgImZhbHNlIik7CisgICAgICBldmVudFNl
bmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsgICAgICAgICAgICAgICAgIC8vbW92ZSB0byA0dGgg
aXRlbSAoM3JkIGl0ZW0gaXMgZGlzYWJsZWQpIAorICAgICAgc2VuZEtleUFuZENoZWNrT3B0aW9u
cygiZmFsc2UiLCAidHJ1ZSIsICJmYWxzZSIsICJmYWxzZSIpOworICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiICIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvL25vdGhpbmcgc2hvdWxkIGNo
YW5nZQorICAgICAgc2VuZEtleUFuZENoZWNrT3B0aW9ucygiZmFsc2UiLCAidHJ1ZSIsICJmYWxz
ZSIsICJ0cnVlIik7CisgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7ICAgICAg
ICAgICAgICAgICAgIC8vbW92ZSBiYWNrIHRvIDJuZCBpdGVtCisgICAgICBzZW5kS2V5QW5kQ2hl
Y2tPcHRpb25zKCJmYWxzZSIsICJ0cnVlIiwgImZhbHNlIiwgInRydWUiKTsKKyAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oIiAiKTsgICAgICAgICAgICAgICAgICAgICAgICAgLy9ub3Rpbmcgc2hv
dWxkIGNoYW5nZQorICAgICAgc2VuZEtleUFuZENoZWNrT3B0aW9ucygiZmFsc2UiLCAiZmFsc2Ui
LCAiZmFsc2UiLCAidHJ1ZSIpOworICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIp
OyAgICAgICAgICAgICAgICAgICAvL21vdmUgYmFjayB0byAxc3QgaXRlbQorICAgICAgc2VuZEtl
eUFuZENoZWNrT3B0aW9ucygiZmFsc2UiLCAiZmFsc2UiLCAiZmFsc2UiLCAidHJ1ZSIpOworICAg
ICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93IiwgWyJzaGlmdEtleSJdKTsgICAvL3No
aWZ0LWRvd24gdG8gMm5kIGl0ZW0KKyAgICAgIHNlbmRLZXlBbmRDaGVja09wdGlvbnMoImZhbHNl
IiwgInRydWUiLCAiZmFsc2UiLCAidHJ1ZSIpOworCisgICAgICB0ZXN0Q29tcGxldGVkKCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9
CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworICAgIDwvc2NyaXB0PgorICAgIDxz
Y3JpcHQgc3JjPSJqcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgPC9o
ZWFkPgorICA8Ym9keSBpZD0ic29tZS1jb250ZW50IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCI+CisgICAgPHRhYmxlIHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDog
MTAwJTsgbWFyZ2luLWxlZnQ6IGF1dG87IG1hcmdpbi1yaWdodDogYXV0bzsiIGJvcmRlcj0iMSIg
Y2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIxIj4KKyAgICAgIDx0Ym9keT4KKyAgICAgICAg
PHRyPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGln
bjogY2VudGVyOyI+PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0
b3A7IHRleHQtYWxpZ246IGNlbnRlcjsiPjxhIGlkPSIyIiBocmVmPSJhIj4yPC9hPjwvdGQ+Cisg
ICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50
ZXI7Ij48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIHN0
eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iNCIg
aHJlZj0iYSI+NDwvYT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246
IHRvcDsgdGV4dC1hbGlnbjogY2VudGVyOyI+CisJCSAgPHNlbGVjdCBpZD0ic3RhcnQiIG11bHRp
cGxlPjxvcHRncm91cCBsYWJlbD0ibzEiPjxvcHRpb24+MTwvb3B0aW9uPjwvb3B0Z3JvdXA+PG9w
dGdyb3VwIGxhYmVsPSJvMiI+PG9wdGlvbj4yPC9vcHRpb24+PC9vcHRncm91cD48b3B0Z3JvdXAg
bGFiZWw9Im8zIj48b3B0aW9uIGRpc2FibGVkPjM8L29wdGlvbj48L29wdGdyb3VwPjxvcHRncm91
cCBsYWJlbD0ibzQiPjxvcHRpb24+NDwvb3B0aW9uPjwvb3B0Z3JvdXA+CisJCSAgPC9zZWxlY3Q+
PC90ZD4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxp
Z246IGNlbnRlcjsiPjxhIGlkPSI2IiBocmVmPSJhIj42PC9hPjwvdGQ+CisgICAgICAgIDwvdHI+
CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7
IHRleHQtYWxpZ246IGNlbnRlcjsiPjwvdGQ+CisgICAgICAgICAgPHRkIHN0eWxlPSJ2ZXJ0aWNh
bC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij48YSBpZD0iOCIgaHJlZj0iYSI+ODwv
YT48L3RkPgorICAgICAgICAgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1h
bGlnbjogY2VudGVyOyI+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGJvZHk+CisgICAg
PC90YWJsZT4KKyAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPC9ib2R5PgorPC9odG1s
PgorCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTI5MDgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wNy0xOSAgQWJoaWplZXQgS2Fu
ZGFsa2FyICA8YWJoaWplZXQua0BzYW1zdW5nLmNvbT4KKworICAgICAgICBTcGF0aWFsIE5hdmln
YXRpb24gaGFuZGxpbmcgb2Ygc3BhY2Uga2V5IGluIDxzZWxlY3Q+IGFwcGVhcnMgdG8gY29uZnVz
ZSBsaXN0SW5kZXggYW5kIG9wdGlvbkluZGV4LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk1MjUKKworICAgICAgICBBZGRlZCB0ZXN0Y2FzZSB0byB0
ZXN0IHN1cHBvcnQgb2Ygb3B0aW9uIGdyb3VwIHdpdGhpbiBIVE1MU2VsZWN0IGVsZW1lbnQuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3Nw
YXRpYWwtbmF2aWdhdGlvbi9zbmF2LW11bHRpcGxlLXNlbGVjdC1vcHRncm91cC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlw
bGUtc2VsZWN0LW9wdGdyb3VwLmh0bWw6IEFkZGVkLgorCiAyMDEzLTA3LTE5ICBSYWR1IFN0YXZp
bGEgIDxzdGF2aWxhQGFkb2JlLmNvbT4KIAogICAgICAgICBIb3ZlciBkb2Vzbid0IHdvcmsgZm9y
IGJsb2NrIGVsZW1lbnRzIGluc2lkZSBhIGhyZWYgZWxlbWVudApJbmRleDogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2
aXNpb24gMTUyOTA4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDctMTkgIEFiaGlqZWV0IEthbmRhbGthciAgPGFiaGlq
ZWV0LmtAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIGhhbmRsaW5n
IG9mIHNwYWNlIGtleSBpbiA8c2VsZWN0PiBhcHBlYXJzIHRvIGNvbmZ1c2UgbGlzdEluZGV4IGFu
ZCBvcHRpb25JbmRleC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5NTI1CisKKyAgICAgICAgSFRNTFNlbGVjdCBFbGVtZW50IGluaGVyZW50bHkgY29u
dGFpbnMgdGhlIGxvZ2ljIHRvIGZvY3VzIG9wdGlvbiBub2RlIGFuZCB0aHVzLCBpbXBsZW1lbnRp
bmcgYW4gZXhwbGljaXQgbG9naWMgdG8gZmluZCB0aGUgZm9jdXMgaW5kZXggaXMgbm90IHJlcXVp
cmVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3Q6IGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtbXVsdGlwbGUtc2VsZWN0LW9wdGdyb3Vw
Lmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRIYW5kbGVyKToK
KyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNhblNjcm9sbEluRGlyZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94OjphZGRGb2N1c1JpbmdSZWN0
cyk6CisKIDIwMTMtMDctMTkgIHBlYXZvQG91dGxvb2suY29tICA8cGVhdm9Ab3V0bG9vay5jb20+
CiAKICAgICAgICAgW0N1cmxdIEh0dHAgcmVzcG9uc2UgY29kZSA0MDEgKEF1dGhlbnRpY2F0aW9u
IHJlcXVpcmVkKSBpcyBub3QgaGFuZGxlZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwCShyZXZpc2lvbiAxNTI5MDIpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ4LDYgKzQ0OCwx
MCBAQAogYm9vbCBjYW5TY3JvbGxJbkRpcmVjdGlvbihjb25zdCBOb2RlKiBjb250YWluZXIsIEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQoY29udGFpbmVyKTsKKworICAg
IGlmIChjb250YWluZXItPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpzZWxlY3RUYWcpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoY29udGFpbmVyLT5pc0RvY3VtZW50Tm9kZSgpKQog
ICAgICAgICByZXR1cm4gY2FuU2Nyb2xsSW5EaXJlY3Rpb24odG9Eb2N1bWVudChjb250YWluZXIp
LT5mcmFtZSgpLCBkaXJlY3Rpb24pOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTUyOTAyKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NTIsNyArMTQ1Miwx
MCBAQAogICAgICAgICB9IGVsc2UgaWYgKG1fbXVsdGlwbGUgJiYga2V5Q29kZSA9PSAnICcgJiYg
aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZG9jdW1lbnQoKS0+ZnJhbWUoKSkpIHsKICAgICAg
ICAgICAgIC8vIFVzZSBzcGFjZSB0byB0b2dnbGUgc2VsZWN0aW9uIGNoYW5nZS4KICAgICAgICAg
ICAgIG1fYWN0aXZlU2VsZWN0aW9uU3RhdGUgPSAhbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZTsKLSAg
ICAgICAgICAgIHVwZGF0ZVNlbGVjdGVkU3RhdGUobGlzdFRvT3B0aW9uSW5kZXgobV9hY3RpdmVT
ZWxlY3Rpb25FbmRJbmRleCksIHRydWUgLyptdWx0aSovLCBmYWxzZSAvKnNoaWZ0Ki8pOworICAg
ICAgICAgICAgQVNTRVJUKG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXggPj0gMAorICAgICAgICAg
ICAgICAgICYmIG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXggPCBzdGF0aWNfY2FzdDxpbnQ+KGxp
c3RJdGVtcy5zaXplKCkpCisgICAgICAgICAgICAgICAgJiYgbGlzdEl0ZW1zW21fYWN0aXZlU2Vs
ZWN0aW9uRW5kSW5kZXhdLT5oYXNUYWdOYW1lKG9wdGlvblRhZykpOworICAgICAgICAgICAgdXBk
YXRlU2VsZWN0ZWRTdGF0ZShtX2FjdGl2ZVNlbGVjdGlvbkVuZEluZGV4LCB0cnVlIC8qbXVsdGkq
LywgZmFsc2UgLypzaGlmdCovKTsKICAgICAgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwogICAg
ICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAJKHJldmlzaW9uIDE1Mjkw
MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQ4LDYgKzM0OCw3IEBACiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXpl
OyArK2kpIHsKICAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBsaXN0SXRlbXNbaV07CiAg
ICAgICAgIGlmIChpc0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpICYmICFlbGVtZW50LT5pc0Rp
c2FibGVkRm9ybUNvbnRyb2woKSkgeworICAgICAgICAgICAgc2VsZWN0LT5zZXRBY3RpdmVTZWxl
Y3Rpb25FbmRJbmRleChpKTsKICAgICAgICAgICAgIHJlY3RzLmFwcGVuZChwaXhlbFNuYXBwZWRJ
bnRSZWN0KGl0ZW1Cb3VuZGluZ0JveFJlY3QoYWRkaXRpb25hbE9mZnNldCwgaSkpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>