<?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>119468</bug_id>
          
          <creation_ts>2013-08-03 11:33:08 -0700</creation_ts>
          <short_desc>[Spatial Navigation] : should prefer focusable elements with absolute positioning over other elements if both elements visible area completely intersects each other.</short_desc>
          <delta_ts>2022-02-28 00:03:34 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></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>
          
          <blocked>56938</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Abhijeet Kandalkar">kandalkar.abhijeet58</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>cshu</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>enrica</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joepeck</cc>
    
    <cc>kandalkar.abhijeet58</cc>
    
    <cc>kling</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>914383</commentid>
    <comment_count>0</comment_count>
      <attachid>208068</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-08-03 11:33:08 -0700</bug_when>
    <thetext>Created attachment 208068
Test

Steps :
1. Open attached html page :snav-z-index.html in browser.
2. Press DOWN arrow key till you reach to last focusable element s5.

Actual Results :
User not able to select the elements s2, s3, s4 although they are focusable nodes and visible to user.

Expected Results:
User should able to select the elements s2, s3, s4 since they are focusable nodes and visible to user.

If two or more focusable nodes are completely intersecting each other so that only one of them is visible to user then preference should be given to
the node on top.In case of partial intersection, user should able to select select every node visible to him.


[NOTE] : Attached snav-z-index.htm file is modified version of layout test example https://svn.webkit.org/repository/webkit/trunk/LayoutTests/fast/spatial-navigation/snav-z-index.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914384</commentid>
    <comment_count>1</comment_count>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-08-03 11:37:51 -0700</bug_when>
    <thetext>Working on it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914443</commentid>
    <comment_count>2</comment_count>
      <attachid>208086</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-08-04 04:48:27 -0700</bug_when>
    <thetext>Created attachment 208086
Updated patch-1

Added changes to modify existing spatial navigation behavior in case of overlapping nodes.

Above patch also fixes the bug https://bugs.webkit.org/show_bug.cgi?id=56938
Needs to add seperate layouttest for 56938.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914445</commentid>
    <comment_count>3</comment_count>
      <attachid>208088</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-08-04 05:29:51 -0700</bug_when>
    <thetext>Created attachment 208088
Updated patch-2

Please find updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914446</commentid>
    <comment_count>4</comment_count>
      <attachid>208068</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-08-04 05:34:24 -0700</bug_when>
    <thetext>Comment on attachment 208068
Test

Please refer test page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914447</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-04 05:35:47 -0700</bug_when>
    <thetext>Attachment 208068 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;]&quot; exit_code: 1
Total errors found: 0 in 0 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914556</commentid>
    <comment_count>6</comment_count>
      <attachid>208088</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-08-05 05:53:00 -0700</bug_when>
    <thetext>Comment on attachment 208088
Updated patch-2

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

&gt; Source/WebCore/page/SpatialNavigation.cpp:272
&gt; +    bool pariallyIntersects = (curRect.intersects(targetRect) &amp;&amp; !curRect.contains(targetRect) &amp;&amp; !targetRect.contains(curRect));

&apos;Overlap&apos; reads better.

&gt; LayoutTests/fast/spatial-navigation/snav-z-index.html:90
&gt; +Spatial Navigation should prefer focusable elements with absolute positioning over other elements if both elements visible area completely intersects each other.

I would replace &apos;absolute positioning&apos; with higher z-index.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914557</commentid>
    <comment_count>7</comment_count>
      <attachid>208088</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-08-05 05:54:17 -0700</bug_when>
    <thetext>Comment on attachment 208088
Updated patch-2

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

&gt; Source/WebCore/page/FocusController.cpp:737
&gt; +        if (candidate.rect.contains(closest.rect) || closest.rect.contains(candidate.rect)) {

could you explain this new &apos;if&apos;?

&gt; Source/WebCore/page/SpatialNavigation.cpp:275
&gt; +        return pariallyIntersects ? (targetRect.x() &lt; curRect.x()): (targetRect.maxX() &lt;= curRect.x());

could you explain these new conditions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>914568</commentid>
    <comment_count>8</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-08-05 06:28:45 -0700</bug_when>
    <thetext>If this patch fixes problems in test cases of bug 56938, tests here could be much improved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917950</commentid>
    <comment_count>9</comment_count>
      <attachid>208088</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2013-08-16 07:25:25 -0700</bug_when>
    <thetext>Comment on attachment 208088
Updated patch-2

unanswered questions. r-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>933465</commentid>
    <comment_count>10</comment_count>
      <attachid>212699</attachid>
    <who name="Abhijeet Kandalkar">kandalkar.abhijeet58</who>
    <bug_when>2013-09-26 06:23:48 -0700</bug_when>
    <thetext>Created attachment 212699
Updated patch-3


&gt; &gt; Source/WebCore/page/FocusController.cpp:737
&gt; &gt; +        if (candidate.rect.contains(closest.rect) || closest.rect.contains(candidate.rect)) {
&gt; 
&gt; could you explain this new &apos;if&apos;?
 
    To check whether candidate and closest completely intersect each other.

&gt; &gt; Source/WebCore/page/SpatialNavigation.cpp:275
&gt; &gt; +        return pariallyIntersects ? (targetRect.x() &lt; curRect.x()): (targetRect.maxX() &lt;= curRect.x());
&gt; 
&gt; could you explain these new conditions?

      /* Determine if curRect and targetRect overlap each other */
      bool overlap = (curRect.intersects(targetRect) &amp;&amp; !curRect.contains(targetRect) &amp;&amp; !targetRect.contains(curRect)); 


     /* Previously node is considered as best candidate only if its bounding rect is exactly below/up/left/right with respect to current node and that’s why  overlapping nodes          were neglected. Current logic checks for overlap and returns proper candidate node .*/

     return overlap ? (targetRect.x() &lt; curRect.x()): (targetRect.maxX() &lt;= curRect.x()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196176</commentid>
    <comment_count>11</comment_count>
      <attachid>212699</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-24 22:03:08 -0700</bug_when>
    <thetext>Comment on attachment 212699
Updated patch-3

Assuming that patches for review since 2013 are stale, r-</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>208068</attachid>
            <date>2013-08-03 11:33:08 -0700</date>
            <delta_ts>2016-05-24 22:04:20 -0700</delta_ts>
            <desc>Test</desc>
            <filename>snav-z-index.html</filename>
            <type>text/html</type>
            <size>2057</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgPGhlYWQ+CiAgICA8c3R5bGU+CiAgICBkaXYuc2ltcGxlIHsgYm9yZGVyOiAzcHgg
c29saWQgcmVkOyB3aWR0aDoxNjA7IGhlaWdodDo2MH0KICAgIGRpdi5zaW1wbGU6Zm9jdXMgeyBi
b3JkZXI6IDNweCBzb2xpZCBncmF5O2JhY2tncm91bmQtY29sb3I6IzAwZmYwMDt9CiAgICBkaXYu
cG9zaXRpb25lZCB7IGJvcmRlcjogM3B4IHNvbGlkIGJsdWU7IHdpZHRoOjE2MDsgaGVpZ2h0OjYw
fQogICAgZGl2LnBvc2l0aW9uZWQ6Zm9jdXN7IGJvcmRlcjogM3B4IHNvbGlkIGdyYXk7YmFja2dy
b3VuZC1jb2xvcjpyZ2IoMjU1LDAsMjU1KTt9CiAgICAjcG9wdXAge3Bvc2l0aW9uOiBhYnNvbHV0
ZTsgdG9wOjEyMDsgbGVmdDoyNDA7IGJvcmRlcjogOHB4IHNvbGlkIGJsYWNrOyB6LWluZGV4OjEw
MDB9CiAgICA8L3N0eWxlPgogIDwvaGVhZD4KPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJwYWRkaW5nOjIwcHgiPgo8ZGl2
IGlkPSJwb3B1cCI+Cjx0YWJsZT48dHI+PHRkPgo8ZGl2IHRhYmluZGV4PSIxIiBpZD0icDExIiBj
bGFzcz0icG9zaXRpb25lZCI+PC9kaXY+CjxkaXYgdGFiaW5kZXg9IjIiIGlkPSJwMTIiIGNsYXNz
PSJwb3NpdGlvbmVkIj48L2Rpdj4KPC90ZD48dGQ+CjxkaXYgdGFiaW5kZXg9IjEiIGlkPSJwMjEi
IGNsYXNzPSJwb3NpdGlvbmVkIj48L2Rpdj4KPGRpdiB0YWJpbmRleD0iMiIgaWQ9InAyMiIgY2xh
c3M9InBvc2l0aW9uZWQiPjwvZGl2Pgo8L3RkPjwvdHI+PC90YWJsZT4KPC9kaXY+Cgo8dGFibGU+
Cjx0cj48dGQgd2lkdGg9IjE2MHB4Ij4KPCEtLQo8ZGl2IHRhYmluZGV4PSIxIiBpZD0iczExIiBj
bGFzcz0ic2ltcGxlIj48aW1nIHNyYz0icmVzb3VyY2VzL2dyZWVuLnBuZyIgd2lkdGg9MTYwcHgg
aGVpZ2h0PTYwcHg+PC9kaXY+CjxkaXYgdGFiaW5kZXg9IjIiIGlkPSJzMTIiIGNsYXNzPSJzaW1w
bGUiPjxpbWcgc3JjPSJyZXNvdXJjZXMvZ3JlZW4ucG5nIiB3aWR0aD0xNjBweCBoZWlnaHQ9NjBw
eD48L2Rpdj4KPGRpdiB0YWJpbmRleD0iMyIgaWQ9InMxMyIgY2xhc3M9InNpbXBsZSI+PGltZyBz
cmM9InJlc291cmNlcy9ncmVlbi5wbmciIHdpZHRoPTE2MHB4IGhlaWdodD02MHB4PjwvZGl2Pgo8
ZGl2IHRhYmluZGV4PSI0IiBpZD0iczE0IiBjbGFzcz0ic2ltcGxlIj48aW1nIHNyYz0icmVzb3Vy
Y2VzL2dyZWVuLnBuZyIgd2lkdGg9MTYwcHggaGVpZ2h0PTYwcHg+PC9kaXY+CjxkaXYgdGFiaW5k
ZXg9IjUiIGlkPSJzMTUiIGNsYXNzPSJzaW1wbGUiPjxpbWcgc3JjPSJyZXNvdXJjZXMvZ3JlZW4u
cG5nIiB3aWR0aD0xNjBweCBoZWlnaHQ9NjBweD48L2Rpdj4KLS0+CjwvdGQ+PHRkPgo8ZGl2IHRh
YmluZGV4PSIxIiBpZD0ic3RhcnQiIGNsYXNzPSJzaW1wbGUiPjxjZW50ZXI+czE8L2NlbnRlcj48
L2Rpdj4KPGRpdiB0YWJpbmRleD0iMiIgaWQ9InMyMiIgY2xhc3M9InNpbXBsZSI+PGNlbnRlcj5z
MjwvY2VudGVyPjwvZGl2Pgo8ZGl2IHRhYmluZGV4PSIzIiBpZD0iczIzIiBjbGFzcz0ic2ltcGxl
Ij48Y2VudGVyPnMzPC9jZW50ZXI+PC9kaXY+CjxkaXYgdGFiaW5kZXg9IjQiIGlkPSJzMjQiIGNs
YXNzPSJzaW1wbGUiPjxjZW50ZXI+czQ8L2NlbnRlcj48L2Rpdj4KPGRpdiB0YWJpbmRleD0iNSIg
aWQ9InMyNSIgY2xhc3M9InNpbXBsZSI+PGNlbnRlcj5zNTwvY2VudGVyPjwvZGl2Pgo8L3RkPjwv
dHI+PC90YWJsZT4KPGI+QWN0dWFsIDwvYj4gOiBUaGlzIHRlc3QgaXMgdGVzdGluZyB0aGF0IHdl
IHByZWZlciBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvdmVy
IG90aGVyIGVsZW1lbnRzLihub3QgYWJsZSB0byBzZWxlY3QgczIsIHMzLCBzNCkKPGJyPgo8Yj5F
eHBlY3RlZDwvYj4gOiBXZSBzaG91bGQgcHJlZmVyIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGFi
c29sdXRlIHBvc2l0aW9uaW5nIG92ZXIgb3RoZXIgZWxlbWVudHMgaWYgYm90aCBlbGVtZW50cyB2
aXNpYmxlIGFyZWEgY29tcGxldGVseSBpbnRlcnNlY3RzIGVhY2ggb3RoZXIuCjwvYm9keT4KPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208086</attachid>
            <date>2013-08-04 04:48:27 -0700</date>
            <delta_ts>2013-08-04 05:29:51 -0700</delta_ts>
            <desc>Updated patch-1</desc>
            <filename>119468.diff</filename>
            <type>text/plain</type>
            <size>9834</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzY5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTA4LTA0ICBBYmhpamVl
dCBLYW5kYWxrYXIgIDxhYmhpamVldC5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFNwYXRpYWwg
TmF2aWdhdGlvbiBzaG91bGQgcHJlZmVyIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGFic29sdXRl
IHBvc2l0aW9uaW5nIG92ZXIgb3RoZXIgZWxlbWVudHMgaWYgYm90aCBlbGVtZW50cyB2aXNpYmxl
IGFyZWEgY29tcGxldGVseSBpbnRlcnNlY3RzIGVhY2ggb3RoZXIuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0NjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0d28gb3IgbW9yZSBmb2N1c2FibGUg
bm9kZXMgYXJlIGNvbXBsZXRlbHkgaW50ZXJzZWN0aW5nIGVhY2ggb3RoZXIgc28gdGhhdCBvbmx5
IG9uZSBvZiB0aGVtIGlzIHZpc2libGUgdG8gdXNlciB0aGVuIHByZWZlcmVuY2Ugc2hvdWxkIGJl
IGdpdmVuIHRoZSBub2RlIG9uIHRvcC4KKyAgICAgICAgSW4gY2FzZSBvZiBwYXJ0aWFsIGludGVy
c2VjdGlvbiBhbW9uZyB0aGUgbm9kZXMsIHVzZXIgc2hvdWxkIGFibGUgdG8gc2VsZWN0IGV2ZXJ5
IG5vZGUgdmlzaWJsZSB0byBoaW0uCisKKyAgICAgICAgTW9kaWZpZWQgdGhlIGV4aXN0aW5nIHRl
c3RjYXNlLgorCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dXBkYXRlRm9jdXNDYW5kaWRhdGVJZk5lZWRlZCk6CisgICAgICAgICogcGFnZS9T
cGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1JlY3RJbkRpcmVjdGlv
bik6CisKIDIwMTMtMDgtMDQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtNYWNdIERpc2FibGUgc2NyZWVuIGZvbnQgc3Vic3RpdHV0aW9uIGF0IFdlYkNvcmUt
bGV2ZWwgaW4gT1MgWCAxMC45KwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAkocmV2aXNpb24gMTUzNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzMsMTYgKzczMywyNCBAQAogCiAgICAg
TGF5b3V0UmVjdCBpbnRlcnNlY3Rpb25SZWN0ID0gaW50ZXJzZWN0aW9uKGNhbmRpZGF0ZS5yZWN0
LCBjbG9zZXN0LnJlY3QpOwogICAgIGlmICghaW50ZXJzZWN0aW9uUmVjdC5pc0VtcHR5KCkgJiYg
IWFyZUVsZW1lbnRzT25TYW1lTGluZShjbG9zZXN0LCBjYW5kaWRhdGUpKSB7Ci0gICAgICAgIC8v
IElmIDIgbm9kZXMgYXJlIGludGVyc2VjdGluZywgZG8gaGl0IHRlc3QgdG8gZmluZCB3aGljaCBu
b2RlIGluIG9uIHRvcC4KLSAgICAgICAgTGF5b3V0VW5pdCB4ID0gaW50ZXJzZWN0aW9uUmVjdC54
KCkgKyBpbnRlcnNlY3Rpb25SZWN0LndpZHRoKCkgLyAyOwotICAgICAgICBMYXlvdXRVbml0IHkg
PSBpbnRlcnNlY3Rpb25SZWN0LnkoKSArIGludGVyc2VjdGlvblJlY3QuaGVpZ2h0KCkgLyAyOwot
ICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGNhbmRpZGF0ZS52aXNpYmxlTm9kZS0+ZG9j
dW1lbnQoKS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhpdFRlc3RSZXN1
bHRBdFBvaW50KEludFBvaW50KHgsIHkpLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRU
ZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0
VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCk7Ci0gICAgICAgIGlmIChjYW5kaWRh
dGUudmlzaWJsZU5vZGUtPmNvbnRhaW5zKHJlc3VsdC5pbm5lck5vZGUoKSkpIHsKLSAgICAgICAg
ICAgIGNsb3Nlc3QgPSBjYW5kaWRhdGU7Ci0gICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKGNhbmRpZGF0ZS5yZWN0LmNvbnRhaW5zKGNsb3Nlc3QucmVjdCkgfHwgY2xvc2VzdC5yZWN0
LmNvbnRhaW5zKGNhbmRpZGF0ZS5yZWN0KSkgeworICAgICAgICAgICAgLy8gSWYgMiBub2RlcyBh
cmUgaW50ZXJzZWN0aW5nIGNvbXBsZXRlbGx5LCBkbyBoaXQgdGVzdCB0byBmaW5kIHdoaWNoIG5v
ZGUgaW4gb24gdG9wLgorICAgICAgICAgICAgTGF5b3V0VW5pdCB4ID0gaW50ZXJzZWN0aW9uUmVj
dC54KCkgKyBpbnRlcnNlY3Rpb25SZWN0LndpZHRoKCkgLyAyOworICAgICAgICAgICAgTGF5b3V0
VW5pdCB5ID0gaW50ZXJzZWN0aW9uUmVjdC55KCkgKyBpbnRlcnNlY3Rpb25SZWN0LmhlaWdodCgp
IC8gMjsKKyAgICAgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gY2FuZGlkYXRlLnZpc2li
bGVOb2RlLT5kb2N1bWVudCgpLT5wYWdlKCktPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+
aGl0VGVzdFJlc3VsdEF0UG9pbnQoSW50UG9pbnQoeCwgeSksIEhpdFRlc3RSZXF1ZXN0OjpSZWFk
T25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xp
cHBpbmcgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dDb250ZW50KTsKKyAgICAgICAg
ICAgIGlmIChjYW5kaWRhdGUudmlzaWJsZU5vZGUtPmNvbnRhaW5zKHJlc3VsdC5pbm5lck5vZGUo
KSkpIHsKKyAgICAgICAgICAgICAgICBjbG9zZXN0ID0gY2FuZGlkYXRlOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNsb3Nlc3Qudmlz
aWJsZU5vZGUtPmNvbnRhaW5zKHJlc3VsdC5pbm5lck5vZGUoKSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBJZiAyIG5vZGVzIGFy
ZSBpbnRlcnNlY3RpbmcgcGFydGlhbGx5LgogICAgICAgICB9Ci0gICAgICAgIGlmIChjbG9zZXN0
LnZpc2libGVOb2RlLT5jb250YWlucyhyZXN1bHQuaW5uZXJOb2RlKCkpKQotICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmIChjYW5kaWRhdGUuYWxpZ25tZW50ID09IGNsb3Nlc3Qu
YWxpZ25tZW50KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9u
LmNwcAkocmV2aXNpb24gMTUzNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2
aWdhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OSwxNSArMjY5LDE2IEBACiAKIHN0YXRp
YyBib29sIGlzUmVjdEluRGlyZWN0aW9uKEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3Qg
TGF5b3V0UmVjdCYgY3VyUmVjdCwgY29uc3QgTGF5b3V0UmVjdCYgdGFyZ2V0UmVjdCkKIHsKKyAg
ICBib29sIHBhcmlhbGx5SW50ZXJzZWN0cyA9IChjdXJSZWN0LmludGVyc2VjdHModGFyZ2V0UmVj
dCkgJiYgIWN1clJlY3QuY29udGFpbnModGFyZ2V0UmVjdCkgJiYgIXRhcmdldFJlY3QuY29udGFp
bnMoY3VyUmVjdCkpOwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBGb2N1c0Rp
cmVjdGlvbkxlZnQ6Ci0gICAgICAgIHJldHVybiB0YXJnZXRSZWN0Lm1heFgoKSA8PSBjdXJSZWN0
LngoKTsKKyAgICAgICAgcmV0dXJuIHBhcmlhbGx5SW50ZXJzZWN0cyA/ICh0YXJnZXRSZWN0Lngo
KSA8IGN1clJlY3QueCgpKTogKHRhcmdldFJlY3QubWF4WCgpIDw9IGN1clJlY3QueCgpKTsKICAg
ICBjYXNlIEZvY3VzRGlyZWN0aW9uUmlnaHQ6Ci0gICAgICAgIHJldHVybiB0YXJnZXRSZWN0Lngo
KSA+PSBjdXJSZWN0Lm1heFgoKTsKKyAgICAgICAgcmV0dXJuIHBhcmlhbGx5SW50ZXJzZWN0cyA/
ICh0YXJnZXRSZWN0LngoKSA+IGN1clJlY3QueCgpKSA6ICh0YXJnZXRSZWN0LngoKSA+PSBjdXJS
ZWN0Lm1heFgoKSk7CiAgICAgY2FzZSBGb2N1c0RpcmVjdGlvblVwOgotICAgICAgICByZXR1cm4g
dGFyZ2V0UmVjdC5tYXhZKCkgPD0gY3VyUmVjdC55KCk7CisgICAgICAgIHJldHVybiBwYXJpYWxs
eUludGVyc2VjdHMgPyAodGFyZ2V0UmVjdC55KCkgPCBjdXJSZWN0LnkoKSkgOiAodGFyZ2V0UmVj
dC5tYXhZKCkgPD0gY3VyUmVjdC55KCkpOwogICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Eb3duOgot
ICAgICAgICByZXR1cm4gdGFyZ2V0UmVjdC55KCkgPj0gY3VyUmVjdC5tYXhZKCk7CisgICAgICAg
IHJldHVybiBwYXJpYWxseUludGVyc2VjdHMgPyAodGFyZ2V0UmVjdC55KCkgPiBjdXJSZWN0Lnko
KSkgOiAodGFyZ2V0UmVjdC55KCkgPj0gY3VyUmVjdC5tYXhZKCkpOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXotaW5kZXgtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9u
L3NuYXYtei1pbmRleC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE1MzY5NikKKysrIExheW91dFRl
c3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtei1pbmRleC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEyLDEzICsxMiwyMiBAQAogCiAKIAorUEFTUyBnRm9jdXNlZERvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzMjIiCiBQQVNTIGdGb2N1
c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInAxMSIKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
czIzIgogUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICJwMTIiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgInMyNCIKIFBBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiczI1IgotUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJwMTIiCitQQVNTIGdGb2N1c2VkRG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInMyNCIKK1BBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiczE0IgogUEFT
UyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJz
MTMiCi1QQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgInMxMiIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAiczIzIgogUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICJwMTEiCiBQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInAyMSIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAicDIyIgorUEFTUyBnRm9jdXNl
ZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJwMTIiCitQQVNT
IGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInMy
MyIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAicDExIgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICJzMjIiCiBQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgInN0YXJ0IgotVGhpcyB0ZXN0IGlzIHRlc3RpbmcgdGhhdCB3
ZSBwcmVmZXIgZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggYWJzb2x1dGUgcG9zaXRpb25pbmcgb3Zl
ciBvdGhlciBlbGVtZW50cy4KK1NwYXRpYWwgTmF2aWdhdGlvbiBzaG91bGQgcHJlZmVyIGZvY3Vz
YWJsZSBlbGVtZW50cyB3aXRoIGFic29sdXRlIHBvc2l0aW9uaW5nIG92ZXIgb3RoZXIgZWxlbWVu
dHMgaWYgYm90aCBlbGVtZW50cyB2aXNpYmxlIGFyZWEgY29tcGxldGVseSBpbnRlcnNlY3RzIGVh
Y2ggb3RoZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2
LXotaW5kZXguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2
aWdhdGlvbi9zbmF2LXotaW5kZXguaHRtbAkocmV2aXNpb24gMTUzNjk2KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi16LWluZGV4Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTUsMTQgKzUsMjMgQEAKICAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2phdmFz
Y3JpcHQiPgogCiAgICAgdmFyIHJlc3VsdE1hcCA9IFsKKyAgICAgIFsiRG93biIsICJzMjIiXSwK
ICAgICAgIFsiRG93biIsICJwMTEiXSwKKyAgICAgIFsiRG93biIsICJzMjMiXSwKICAgICAgIFsi
RG93biIsICJwMTIiXSwKKyAgICAgIFsiRG93biIsICJzMjQiXSwKICAgICAgIFsiRG93biIsICJz
MjUiXSwKLSAgICAgIFsiVXAiLCAicDEyIl0sCi0gICAgICBbIkxlZnQiLCAiczEzIl0sCi0gICAg
ICBbIlVwIiwgInMxMiJdLAorICAgICAgWyJVcCIsICJzMjQiXSwKKyAgICAgIFsiTGVmdCIsICJz
MTQiXSwKKyAgICAgIFsiVXAiLCAiczEzIl0sCisgICAgICBbIlJpZ2h0IiwgInMyMyJdLAogICAg
ICAgWyJSaWdodCIsICJwMTEiXSwKICAgICAgIFsiUmlnaHQiLCAicDIxIl0sCisgICAgICBbIkRv
d24iLCAicDIyIl0sCisgICAgICBbIkxlZnQiLCAicDEyIl0sCisgICAgICBbIkxlZnQiLCAiczIz
Il0sCisgICAgICBbIlVwIiwgInAxMSJdLAorICAgICAgWyJVcCIsICJzMjIiXSwKICAgICAgIFsi
VXAiLCAic3RhcnQiXSwKICAgICAgIFsiRE9ORSIsICJET05FIl0KICAgICBdOwpAQCAtNDcsNiAr
NTYsNyBAQAogICAgIGRpdi5wb3NpdGlvbmVkIHsgYm9yZGVyOiAzcHggc29saWQgYmx1ZTt9CiAg
ICAgZGl2LnBvc2l0aW9uZWQ6Zm9jdXN7IGJvcmRlcjogM3B4IHNvbGlkIGdyYXk7fQogICAgICNw
b3B1cCB7cG9zaXRpb246IGFic29sdXRlOyB0b3A6MTIwOyBsZWZ0OjI0MDsgYm9yZGVyOiA4cHgg
c29saWQgYmxhY2s7IHotaW5kZXg6MTAwMH0KKyAgICBkaXYuaGlkZGVuIHtkaXNwbGF5OiBibG9j
azsgaGVpZ2h0IDogNTBweDsgd2lkdGggOiA1MHB4OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRl
ci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojZmYwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMGZm
MDA7fQogICAgIDwvc3R5bGU+CiAgIDwvaGVhZD4KIDxib2R5IGlkPSJzb21lLWNvbnRlbnQiIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0icGFkZGluZzoyMHB4Ij4K
QEAgLTYwLDYgKzcwLDggQEAKIDwvdGQ+PC90cj48L3RhYmxlPgogPC9kaXY+CiAKKzxkaXYgdGFi
aW5kZXg9IjEiIGlkPSJoMTEiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTQwcHg7bGVm
dDoyOTVweCIgY2xhc3M9ImhpZGRlbiI+PGltZyBzcmM9InJlc291cmNlcy9ncmVlbi5wbmciIHdp
ZHRoPSI1MHB4IiBoZWlnaHQ9IjUwcHgiPjwvZGl2PgorCiA8dGFibGU+CiA8dHI+PHRkPgogPGRp
diB0YWJpbmRleD0iMSIgaWQ9InMxMSIgY2xhc3M9InNpbXBsZSI+PGltZyBzcmM9InJlc291cmNl
cy9ncmVlbi5wbmciIHdpZHRoPTE2MHB4IGhlaWdodD02MHB4PjwvZGl2PgpAQCAtNzUsNiArODcs
NiBAQAogPGRpdiB0YWJpbmRleD0iNSIgaWQ9InMyNSIgY2xhc3M9InNpbXBsZSI+PGltZyBzcmM9
InJlc291cmNlcy9ncmVlbi5wbmciIHdpZHRoPTE2MHB4IGhlaWdodD02MHB4PjwvZGl2PgogPC90
ZD48L3RyPjwvdGFibGU+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLVRoaXMgdGVzdCBpcyB0
ZXN0aW5nIHRoYXQgd2UgcHJlZmVyIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGFic29sdXRlIHBv
c2l0aW9uaW5nIG92ZXIgb3RoZXIgZWxlbWVudHMuCitTcGF0aWFsIE5hdmlnYXRpb24gc2hvdWxk
IHByZWZlciBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvdmVy
IG90aGVyIGVsZW1lbnRzIGlmIGJvdGggZWxlbWVudHMgdmlzaWJsZSBhcmVhIGNvbXBsZXRlbHkg
aW50ZXJzZWN0cyBlYWNoIG90aGVyLgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTUzNjk2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTMtMDgtMDQgIEFiaGlqZWV0IEthbmRhbGthciAgPGFiaGlqZWV0LmtA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIHNob3VsZCBwcmVmZXIg
Zm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggYWJzb2x1dGUgcG9zaXRpb25pbmcgb3ZlciBvdGhlciBl
bGVtZW50cyBpZiBib3RoIGVsZW1lbnRzIHZpc2libGUgYXJlYSBjb21wbGV0ZWx5IGludGVyc2Vj
dHMgZWFjaCBvdGhlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExOTQ2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIElmIHR3byBvciBtb3JlIGZvY3VzYWJsZSBub2RlcyBhcmUgY29tcGxldGVseSBpbnRl
cnNlY3RpbmcgZWFjaCBvdGhlciBzbyB0aGF0IG9ubHkgb25lIG9mIHRoZW0gaXMgdmlzaWJsZSB0
byB1c2VyIHRoZW4gcHJlZmVyZW5jZSBzaG91bGQgYmUgZ2l2ZW4gdGhlIG5vZGUgb24gdG9wLgor
ICAgICAgICBJbiBjYXNlIG9mIHBhcnRpYWwgaW50ZXJzZWN0aW9uIGFtb25nIHRoZSBub2Rlcywg
dXNlciBzaG91bGQgYWJsZSB0byBzZWxlY3QgZXZlcnkgbm9kZSB2aXNpYmxlIHRvIGhpbS4KKyAg
ICAgICAgTW9kaWZpZWQgdGhlIGV4aXN0aW5nIHRlc3RjYXNlIHRvIHRlc3QgYWJvdmUgbWVudGlv
bmVkIGJlaGF2aW9yLgorCisgICAgICAgICogZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi16
LWluZGV4LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LXotaW5kZXguaHRtbDoKKwogMjAxMy0wOC0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29w
LXBvaW50cy5odG1sIGFsd2F5cyB0aW1lcyBvdXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208088</attachid>
            <date>2013-08-04 05:29:51 -0700</date>
            <delta_ts>2013-09-26 06:23:48 -0700</delta_ts>
            <desc>Updated patch-2</desc>
            <filename>119468_u1.diff</filename>
            <type>text/plain</type>
            <size>9764</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzY5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTA4LTA0ICBBYmhpamVl
dCBLYW5kYWxrYXIgIDxhYmhpamVldC5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFNwYXRpYWwg
TmF2aWdhdGlvbiBzaG91bGQgcHJlZmVyIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGFic29sdXRl
IHBvc2l0aW9uaW5nIG92ZXIgb3RoZXIgZWxlbWVudHMgaWYgYm90aCBlbGVtZW50cyB2aXNpYmxl
IGFyZWEgY29tcGxldGVseSBpbnRlcnNlY3RzIGVhY2ggb3RoZXIuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0NjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0d28gb3IgbW9yZSBmb2N1c2FibGUg
bm9kZXMgYXJlIGNvbXBsZXRlbHkgaW50ZXJzZWN0aW5nIGVhY2ggb3RoZXIgc28gdGhhdCBvbmx5
IG9uZSBvZiB0aGVtIGlzIHZpc2libGUgdG8gdXNlciB0aGVuIHByZWZlcmVuY2Ugc2hvdWxkIGJl
IGdpdmVuIHRoZSBub2RlIG9uIHRvcC4KKyAgICAgICAgSW4gY2FzZSBvZiBwYXJ0aWFsIGludGVy
c2VjdGlvbiBhbW9uZyB0aGUgbm9kZXMsIHVzZXIgc2hvdWxkIGFibGUgdG8gc2VsZWN0IGV2ZXJ5
IG5vZGUgdmlzaWJsZSB0byBoaW0uCisKKyAgICAgICAgTW9kaWZpZWQgdGhlIGV4aXN0aW5nIHRl
c3RjYXNlLgorCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dXBkYXRlRm9jdXNDYW5kaWRhdGVJZk5lZWRlZCk6CisgICAgICAgICogcGFnZS9T
cGF0aWFsTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1JlY3RJbkRpcmVjdGlv
bik6CisKIDIwMTMtMDgtMDQgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtNYWNdIERpc2FibGUgc2NyZWVuIGZvbnQgc3Vic3RpdHV0aW9uIGF0IFdlYkNvcmUt
bGV2ZWwgaW4gT1MgWCAxMC45KwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAkocmV2aXNpb24gMTUzNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzMsMTYgKzczMywyMSBAQAogCiAgICAg
TGF5b3V0UmVjdCBpbnRlcnNlY3Rpb25SZWN0ID0gaW50ZXJzZWN0aW9uKGNhbmRpZGF0ZS5yZWN0
LCBjbG9zZXN0LnJlY3QpOwogICAgIGlmICghaW50ZXJzZWN0aW9uUmVjdC5pc0VtcHR5KCkgJiYg
IWFyZUVsZW1lbnRzT25TYW1lTGluZShjbG9zZXN0LCBjYW5kaWRhdGUpKSB7Ci0gICAgICAgIC8v
IElmIDIgbm9kZXMgYXJlIGludGVyc2VjdGluZywgZG8gaGl0IHRlc3QgdG8gZmluZCB3aGljaCBu
b2RlIGluIG9uIHRvcC4KLSAgICAgICAgTGF5b3V0VW5pdCB4ID0gaW50ZXJzZWN0aW9uUmVjdC54
KCkgKyBpbnRlcnNlY3Rpb25SZWN0LndpZHRoKCkgLyAyOwotICAgICAgICBMYXlvdXRVbml0IHkg
PSBpbnRlcnNlY3Rpb25SZWN0LnkoKSArIGludGVyc2VjdGlvblJlY3QuaGVpZ2h0KCkgLyAyOwot
ICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGNhbmRpZGF0ZS52aXNpYmxlTm9kZS0+ZG9j
dW1lbnQoKS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhpdFRlc3RSZXN1
bHRBdFBvaW50KEludFBvaW50KHgsIHkpLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRU
ZXN0UmVxdWVzdDo6QWN0aXZlIHwgSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgSGl0
VGVzdFJlcXVlc3Q6OkRpc2FsbG93U2hhZG93Q29udGVudCk7Ci0gICAgICAgIGlmIChjYW5kaWRh
dGUudmlzaWJsZU5vZGUtPmNvbnRhaW5zKHJlc3VsdC5pbm5lck5vZGUoKSkpIHsKLSAgICAgICAg
ICAgIGNsb3Nlc3QgPSBjYW5kaWRhdGU7Ci0gICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKGNhbmRpZGF0ZS5yZWN0LmNvbnRhaW5zKGNsb3Nlc3QucmVjdCkgfHwgY2xvc2VzdC5yZWN0
LmNvbnRhaW5zKGNhbmRpZGF0ZS5yZWN0KSkgeworICAgICAgICAgICAgLy8gSWYgMiBub2RlcyBh
cmUgaW50ZXJzZWN0aW5nIGNvbXBsZXRlbGx5LCBkbyBoaXQgdGVzdCB0byBmaW5kIHdoaWNoIG5v
ZGUgaW4gb24gdG9wLgorICAgICAgICAgICAgTGF5b3V0VW5pdCB4ID0gaW50ZXJzZWN0aW9uUmVj
dC54KCkgKyBpbnRlcnNlY3Rpb25SZWN0LndpZHRoKCkgLyAyOworICAgICAgICAgICAgTGF5b3V0
VW5pdCB5ID0gaW50ZXJzZWN0aW9uUmVjdC55KCkgKyBpbnRlcnNlY3Rpb25SZWN0LmhlaWdodCgp
IC8gMjsKKyAgICAgICAgICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0gY2FuZGlkYXRlLnZpc2li
bGVOb2RlLT5kb2N1bWVudCgpLT5wYWdlKCktPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+
aGl0VGVzdFJlc3VsdEF0UG9pbnQoSW50UG9pbnQoeCwgeSksIEhpdFRlc3RSZXF1ZXN0OjpSZWFk
T25seSB8IEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xp
cHBpbmcgfCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dTaGFkb3dDb250ZW50KTsKKyAgICAgICAg
ICAgIGlmIChjYW5kaWRhdGUudmlzaWJsZU5vZGUtPmNvbnRhaW5zKHJlc3VsdC5pbm5lck5vZGUo
KSkpIHsKKyAgICAgICAgICAgICAgICBjbG9zZXN0ID0gY2FuZGlkYXRlOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNsb3Nlc3Qudmlz
aWJsZU5vZGUtPmNvbnRhaW5zKHJlc3VsdC5pbm5lck5vZGUoKSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCiAgICAgICAgIH0KLSAgICAgICAgaWYgKGNsb3Nlc3QudmlzaWJsZU5vZGUtPmNv
bnRhaW5zKHJlc3VsdC5pbm5lck5vZGUoKSkpCi0gICAgICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgaWYgKGNhbmRpZGF0ZS5hbGlnbm1lbnQgPT0gY2xvc2VzdC5hbGlnbm1lbnQpIHsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCShyZXZpc2lvbiAx
NTM2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjY5LDE1ICsyNjksMTYgQEAKIAogc3RhdGljIGJvb2wgaXNSZWN0SW5E
aXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBMYXlvdXRSZWN0JiBjdXJS
ZWN0LCBjb25zdCBMYXlvdXRSZWN0JiB0YXJnZXRSZWN0KQogeworICAgIGJvb2wgcGFyaWFsbHlJ
bnRlcnNlY3RzID0gKGN1clJlY3QuaW50ZXJzZWN0cyh0YXJnZXRSZWN0KSAmJiAhY3VyUmVjdC5j
b250YWlucyh0YXJnZXRSZWN0KSAmJiAhdGFyZ2V0UmVjdC5jb250YWlucyhjdXJSZWN0KSk7CiAg
ICAgc3dpdGNoIChkaXJlY3Rpb24pIHsKICAgICBjYXNlIEZvY3VzRGlyZWN0aW9uTGVmdDoKLSAg
ICAgICAgcmV0dXJuIHRhcmdldFJlY3QubWF4WCgpIDw9IGN1clJlY3QueCgpOworICAgICAgICBy
ZXR1cm4gcGFyaWFsbHlJbnRlcnNlY3RzID8gKHRhcmdldFJlY3QueCgpIDwgY3VyUmVjdC54KCkp
OiAodGFyZ2V0UmVjdC5tYXhYKCkgPD0gY3VyUmVjdC54KCkpOwogICAgIGNhc2UgRm9jdXNEaXJl
Y3Rpb25SaWdodDoKLSAgICAgICAgcmV0dXJuIHRhcmdldFJlY3QueCgpID49IGN1clJlY3QubWF4
WCgpOworICAgICAgICByZXR1cm4gcGFyaWFsbHlJbnRlcnNlY3RzID8gKHRhcmdldFJlY3QueCgp
ID4gY3VyUmVjdC54KCkpIDogKHRhcmdldFJlY3QueCgpID49IGN1clJlY3QubWF4WCgpKTsKICAg
ICBjYXNlIEZvY3VzRGlyZWN0aW9uVXA6Ci0gICAgICAgIHJldHVybiB0YXJnZXRSZWN0Lm1heFko
KSA8PSBjdXJSZWN0LnkoKTsKKyAgICAgICAgcmV0dXJuIHBhcmlhbGx5SW50ZXJzZWN0cyA/ICh0
YXJnZXRSZWN0LnkoKSA8IGN1clJlY3QueSgpKSA6ICh0YXJnZXRSZWN0Lm1heFkoKSA8PSBjdXJS
ZWN0LnkoKSk7CiAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkRvd246Ci0gICAgICAgIHJldHVybiB0
YXJnZXRSZWN0LnkoKSA+PSBjdXJSZWN0Lm1heFkoKTsKKyAgICAgICAgcmV0dXJuIHBhcmlhbGx5
SW50ZXJzZWN0cyA/ICh0YXJnZXRSZWN0LnkoKSA+IGN1clJlY3QueSgpKSA6ICh0YXJnZXRSZWN0
LnkoKSA+PSBjdXJSZWN0Lm1heFkoKSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtei1pbmRleC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi16LWluZGV4LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMTUzNjk2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFs
LW5hdmlnYXRpb24vc25hdi16LWluZGV4LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTIsMTMgKzEyLDIyIEBACiAKIAogCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVu
dC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInMyMiIKIFBBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3Rp
dmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAicDExIgorUEFTUyBnRm9jdXNlZERvY3Vt
ZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzMjMiCiBQQVNTIGdGb2N1
c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInAxMiIKK1BB
U1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAi
czI0IgogUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICJzMjUiCi1QQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRy
aWJ1dGUoImlkIikgaXMgInAxMiIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50
LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiczI0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2
ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzMTQiCiBQQVNTIGdGb2N1c2VkRG9jdW1l
bnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInMxMyIKLVBBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiczEyIgorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJz
MjMiCiBQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlk
IikgaXMgInAxMSIKIFBBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKSBpcyAicDIxIgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQu
Z2V0QXR0cmlidXRlKCJpZCIpIGlzICJwMjIiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZl
RWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInAxMiIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVu
dC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiczIzIgorUEFTUyBnRm9jdXNl
ZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJwMTEiCitQQVNT
IGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInMy
MiIKIFBBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQi
KSBpcyAic3RhcnQiCi1UaGlzIHRlc3QgaXMgdGVzdGluZyB0aGF0IHdlIHByZWZlciBmb2N1c2Fi
bGUgZWxlbWVudHMgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvdmVyIG90aGVyIGVsZW1lbnRz
LgorU3BhdGlhbCBOYXZpZ2F0aW9uIHNob3VsZCBwcmVmZXIgZm9jdXNhYmxlIGVsZW1lbnRzIHdp
dGggYWJzb2x1dGUgcG9zaXRpb25pbmcgb3ZlciBvdGhlciBlbGVtZW50cyBpZiBib3RoIGVsZW1l
bnRzIHZpc2libGUgYXJlYSBjb21wbGV0ZWx5IGludGVyc2VjdHMgZWFjaCBvdGhlci4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtei1pbmRleC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtei1p
bmRleC5odG1sCShyZXZpc2lvbiAxNTM2OTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwt
bmF2aWdhdGlvbi9zbmF2LXotaW5kZXguaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSwxNCArNSwy
MyBAQAogICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CiAKICAgICB2
YXIgcmVzdWx0TWFwID0gWworICAgICAgWyJEb3duIiwgInMyMiJdLAogICAgICAgWyJEb3duIiwg
InAxMSJdLAorICAgICAgWyJEb3duIiwgInMyMyJdLAogICAgICAgWyJEb3duIiwgInAxMiJdLAor
ICAgICAgWyJEb3duIiwgInMyNCJdLAogICAgICAgWyJEb3duIiwgInMyNSJdLAotICAgICAgWyJV
cCIsICJwMTIiXSwKLSAgICAgIFsiTGVmdCIsICJzMTMiXSwKLSAgICAgIFsiVXAiLCAiczEyIl0s
CisgICAgICBbIlVwIiwgInMyNCJdLAorICAgICAgWyJMZWZ0IiwgInMxNCJdLAorICAgICAgWyJV
cCIsICJzMTMiXSwKKyAgICAgIFsiUmlnaHQiLCAiczIzIl0sCiAgICAgICBbIlJpZ2h0IiwgInAx
MSJdLAogICAgICAgWyJSaWdodCIsICJwMjEiXSwKKyAgICAgIFsiRG93biIsICJwMjIiXSwKKyAg
ICAgIFsiTGVmdCIsICJwMTIiXSwKKyAgICAgIFsiTGVmdCIsICJzMjMiXSwKKyAgICAgIFsiVXAi
LCAicDExIl0sCisgICAgICBbIlVwIiwgInMyMiJdLAogICAgICAgWyJVcCIsICJzdGFydCJdLAog
ICAgICAgWyJET05FIiwgIkRPTkUiXQogICAgIF07CkBAIC00Nyw2ICs1Niw3IEBACiAgICAgZGl2
LnBvc2l0aW9uZWQgeyBib3JkZXI6IDNweCBzb2xpZCBibHVlO30KICAgICBkaXYucG9zaXRpb25l
ZDpmb2N1c3sgYm9yZGVyOiAzcHggc29saWQgZ3JheTt9CiAgICAgI3BvcHVwIHtwb3NpdGlvbjog
YWJzb2x1dGU7IHRvcDoxMjA7IGxlZnQ6MjQwOyBib3JkZXI6IDhweCBzb2xpZCBibGFjazsgei1p
bmRleDoxMDAwfQorICAgIGRpdi5oaWRkZW4ge2Rpc3BsYXk6IGJsb2NrOyBoZWlnaHQgOiA1MHB4
OyB3aWR0aCA6IDUwcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXdpZHRoOjFweDsgYm9y
ZGVyLWNvbG9yOiNmZjAwMDA7IGJhY2tncm91bmQtY29sb3I6IzAwZmYwMDt9CiAgICAgPC9zdHls
ZT4KICAgPC9oZWFkPgogPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJwYWRkaW5nOjIwcHgiPgpAQCAtNjAsNiArNzAsOCBA
QAogPC90ZD48L3RyPjwvdGFibGU+CiA8L2Rpdj4KIAorPGRpdiB0YWJpbmRleD0iMSIgaWQ9Imgx
MSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDoxNDBweDtsZWZ0OjI5NXB4IiBjbGFzcz0i
aGlkZGVuIj48aW1nIHNyYz0icmVzb3VyY2VzL2dyZWVuLnBuZyIgd2lkdGg9IjUwcHgiIGhlaWdo
dD0iNTBweCI+PC9kaXY+CisKIDx0YWJsZT4KIDx0cj48dGQ+CiA8ZGl2IHRhYmluZGV4PSIxIiBp
ZD0iczExIiBjbGFzcz0ic2ltcGxlIj48aW1nIHNyYz0icmVzb3VyY2VzL2dyZWVuLnBuZyIgd2lk
dGg9MTYwcHggaGVpZ2h0PTYwcHg+PC9kaXY+CkBAIC03NSw2ICs4Nyw2IEBACiA8ZGl2IHRhYmlu
ZGV4PSI1IiBpZD0iczI1IiBjbGFzcz0ic2ltcGxlIj48aW1nIHNyYz0icmVzb3VyY2VzL2dyZWVu
LnBuZyIgd2lkdGg9MTYwcHggaGVpZ2h0PTYwcHg+PC9kaXY+CiA8L3RkPjwvdHI+PC90YWJsZT4K
IDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotVGhpcyB0ZXN0IGlzIHRlc3RpbmcgdGhhdCB3ZSBw
cmVmZXIgZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggYWJzb2x1dGUgcG9zaXRpb25pbmcgb3ZlciBv
dGhlciBlbGVtZW50cy4KK1NwYXRpYWwgTmF2aWdhdGlvbiBzaG91bGQgcHJlZmVyIGZvY3VzYWJs
ZSBlbGVtZW50cyB3aXRoIGFic29sdXRlIHBvc2l0aW9uaW5nIG92ZXIgb3RoZXIgZWxlbWVudHMg
aWYgYm90aCBlbGVtZW50cyB2aXNpYmxlIGFyZWEgY29tcGxldGVseSBpbnRlcnNlY3RzIGVhY2gg
b3RoZXIuCiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTM2OTYpCisrKyBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAx
My0wOC0wNCAgQWJoaWplZXQgS2FuZGFsa2FyICA8YWJoaWplZXQua0BzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBTcGF0aWFsIE5hdmlnYXRpb24gc2hvdWxkIHByZWZlciBmb2N1c2FibGUgZWxlbWVu
dHMgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvdmVyIG90aGVyIGVsZW1lbnRzIGlmIGJvdGgg
ZWxlbWVudHMgdmlzaWJsZSBhcmVhIGNvbXBsZXRlbHkgaW50ZXJzZWN0cyBlYWNoIG90aGVyLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDY4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdHdvIG9y
IG1vcmUgZm9jdXNhYmxlIG5vZGVzIGFyZSBjb21wbGV0ZWx5IGludGVyc2VjdGluZyBlYWNoIG90
aGVyIHNvIHRoYXQgb25seSBvbmUgb2YgdGhlbSBpcyB2aXNpYmxlIHRvIHVzZXIgdGhlbiBwcmVm
ZXJlbmNlIHNob3VsZCBiZSBnaXZlbiB0aGUgbm9kZSBvbiB0b3AuCisgICAgICAgIEluIGNhc2Ug
b2YgcGFydGlhbCBpbnRlcnNlY3Rpb24gYW1vbmcgdGhlIG5vZGVzLCB1c2VyIHNob3VsZCBhYmxl
IHRvIHNlbGVjdCBldmVyeSBub2RlIHZpc2libGUgdG8gaGltLgorICAgICAgICBNb2RpZmllZCB0
aGUgZXhpc3RpbmcgbGF5b3V0LXRlc3QgdG8gdGVzdCBhYm92ZSBtZW50aW9uZWQgYmVoYXZpb3Iu
CisKKyAgICAgICAgKiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LXotaW5kZXgtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtei1pbmRleC5o
dG1sOgorCiAyMDEzLTA4LTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWxvb3AtcG9pbnRzLmh0bWwg
YWx3YXlzIHRpbWVzIG91dAo=
</data>
<flag name="review"
          id="229959"
          type_id="1"
          status="-"
          setter="tonikitoo"
    />
    <flag name="commit-queue"
          id="229960"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212699</attachid>
            <date>2013-09-26 06:23:48 -0700</date>
            <delta_ts>2022-02-28 00:03:34 -0800</delta_ts>
            <desc>Updated patch-3</desc>
            <filename>patch3.diff</filename>
            <type>text/plain</type>
            <size>18170</size>
            <attacher name="Abhijeet Kandalkar">kandalkar.abhijeet58</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtei1pbmRleC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmln
YXRpb24vc25hdi16LWluZGV4LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTU2NDU2KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi16LWluZGV4LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMTIsMTMgKzEyLDIyIEBACiAKIAogCitQQVNTIGdGb2N1c2Vk
RG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInMyMiIKIFBBU1Mg
Z0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAicDEx
IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICJzMjMiCiBQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1
dGUoImlkIikgaXMgInAxMiIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50Lmdl
dEF0dHJpYnV0ZSgiaWQiKSBpcyAiczI0IgogUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVs
ZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzMjUiCi1QQVNTIGdGb2N1c2VkRG9jdW1lbnQu
YWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInAxMiIKK1BBU1MgZ0ZvY3VzZWRE
b2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiczI0IgorUEFTUyBn
Rm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzMTQi
CiBQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikg
aXMgInMxMyIKLVBBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAiczEyIgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICJzMjMiCiBQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxl
bWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInAxMSIKIFBBU1MgZ0ZvY3VzZWREb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAicDIxIgotUEFTUyBnRm9jdXNlZERv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJzdGFydCIKLVRoaXMg
dGVzdCBpcyB0ZXN0aW5nIHRoYXQgd2UgcHJlZmVyIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGFi
c29sdXRlIHBvc2l0aW9uaW5nIG92ZXIgb3RoZXIgZWxlbWVudHMuCitQQVNTIGdGb2N1c2VkRG9j
dW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgInAyMiIKK1BBU1MgZ0Zv
Y3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAicDEyIgor
UEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlz
ICJzMjQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUo
ImlkIikgaXMgInAxMiIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0
dHJpYnV0ZSgiaWQiKSBpcyAiczIzIgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJwMTEiCitTcGF0aWFsIE5hdmlnYXRpb24gc2hvdWxk
IHByZWZlciBmb2N1c2FibGUgZWxlbWVudHMgd2l0aCBoaWdoZXIgei1pbmRleCBvdmVyIG90aGVy
IGVsZW1lbnRzIGlmIGJvdGggZWxlbWVudCdzIHZpc2libGUgYXJlYSBjb21wbGV0ZWx5IGludGVy
c2VjdCBlYWNoIG90aGVyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi16LWluZGV4Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi16LWluZGV4Lmh0bWwJKHJldmlzaW9uIDE1NjQ1NikKKysrIExh
eW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtei1pbmRleC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC01LDE1ICs1LDI0IEBACiAgICAgPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlv
bi9qYXZhc2NyaXB0Ij4KIAogICAgIHZhciByZXN1bHRNYXAgPSBbCisgICAgICBbIkRvd24iLCAi
czIyIl0sCiAgICAgICBbIkRvd24iLCAicDExIl0sCisgICAgICBbIkRvd24iLCAiczIzIl0sCiAg
ICAgICBbIkRvd24iLCAicDEyIl0sCisgICAgICBbIkRvd24iLCAiczI0Il0sCiAgICAgICBbIkRv
d24iLCAiczI1Il0sCi0gICAgICBbIlVwIiwgInAxMiJdLAotICAgICAgWyJMZWZ0IiwgInMxMyJd
LAotICAgICAgWyJVcCIsICJzMTIiXSwKKyAgICAgIFsiVXAiLCAiczI0Il0sCisgICAgICBbIkxl
ZnQiLCAiczE0Il0sCisgICAgICBbIlVwIiwgInMxMyJdLAorICAgICAgWyJSaWdodCIsICJzMjMi
XSwKICAgICAgIFsiUmlnaHQiLCAicDExIl0sCiAgICAgICBbIlJpZ2h0IiwgInAyMSJdLAotICAg
ICAgWyJVcCIsICJzdGFydCJdLAorICAgICAgWyJEb3duIiwgInAyMiJdLAorICAgICAgWyJMZWZ0
IiwgInAxMiJdLAorICAgICAgWyJMZWZ0IiwgInMyNCJdLAorICAgICAgWyJVcCIsICJwMTIiXSwK
KyAgICAgIFsiVXAiLCAiczIzIl0sCisgICAgICBbIlVwIiwgInAxMSJdLAogICAgICAgWyJET05F
IiwgIkRPTkUiXQogICAgIF07CiAKQEAgLTc1LDYgKzg0LDYgQEAKIDxkaXYgdGFiaW5kZXg9IjUi
IGlkPSJzMjUiIGNsYXNzPSJzaW1wbGUiPjxpbWcgc3JjPSJyZXNvdXJjZXMvZ3JlZW4ucG5nIiB3
aWR0aD0xNjBweCBoZWlnaHQ9NjBweD48L2Rpdj4KIDwvdGQ+PC90cj48L3RhYmxlPgogPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci1UaGlzIHRlc3QgaXMgdGVzdGluZyB0aGF0IHdlIHByZWZlciBm
b2N1c2FibGUgZWxlbWVudHMgd2l0aCBhYnNvbHV0ZSBwb3NpdGlvbmluZyBvdmVyIG90aGVyIGVs
ZW1lbnRzLgorU3BhdGlhbCBOYXZpZ2F0aW9uIHNob3VsZCBwcmVmZXIgZm9jdXNhYmxlIGVsZW1l
bnRzIHdpdGggaGlnaGVyIHotaW5kZXggb3ZlciBvdGhlciBlbGVtZW50cyBpZiBib3RoIGVsZW1l
bnQncyB2aXNpYmxlIGFyZWEgY29tcGxldGVseSBpbnRlcnNlY3QgZWFjaCBvdGhlci4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3Nu
YXYtb3ZlcmxhcHBpbmctbm9kZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtb3ZlcmxhcHBpbmctbm9kZXMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRp
b24vc25hdi1vdmVybGFwcGluZy1ub2Rlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDIgQEAKKzEKKzIKKzMKKzQKKzExCisxMgorMTMKKzE0CitMCitNMQorTTIKK1IKK0gK
KworCisxLDIsMyw0IGFyZSBvdmVybGFwcGluZyAKK2VhY2ggb3RoZXIuIEggaXMgY29tcGxldGVs
eSAKK292ZXJsYXBwZWQgYnkgNAorCisxMSwxMiwxMywxNCBhcmUgbm90IG92ZXJsYXBwaW5nIAor
ZWFjaCBvdGhlci4gU2ltaWxhcmx5LAorTCwgTTEsIE0yLCBSIGFyZSBub3Qgb3ZlcmxhcHBpbmcg
ZWFjaCBvdGhlcgorCisKKworUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0
QXR0cmlidXRlKCJpZCIpIGlzICIyIgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJtaWRkbGUxIgorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFTUyBnRm9jdXNlZERv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICI0IgorUEFTUyBnRm9j
dXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICIzIgorUEFT
UyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJs
ZWZ0IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJp
ZCIpIGlzICIzIgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmli
dXRlKCJpZCIpIGlzICJtaWRkbGUxIgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1l
bnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJtaWRkbGUyIgorUEFTUyBnRm9jdXNlZERvY3VtZW50
LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpIGlzICJyaWdodCIKK1BBU1MgZ0ZvY3Vz
ZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgiaWQiKSBpcyAiMTMiCitQQVNT
IGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjE0
IgorUEFTUyBnRm9jdXNlZERvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIp
IGlzICIxMyIKK1BBU1MgZ0ZvY3VzZWREb2N1bWVudC5hY3RpdmVFbGVtZW50LmdldEF0dHJpYnV0
ZSgiaWQiKSBpcyAicmlnaHQiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0aXZlRWxlbWVudC5n
ZXRBdHRyaWJ1dGUoImlkIikgaXMgIm1pZGRsZTIiCitQQVNTIGdGb2N1c2VkRG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikgaXMgIjExIgorCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW92ZXJsYXBwaW5nLW5vZGVzLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1vdmVy
bGFwcGluZy1ub2Rlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zcGF0
aWFsLW5hdmlnYXRpb24vc25hdi1vdmVybGFwcGluZy1ub2Rlcy5odG1sCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDExNCBAQAorPCEtLQorICAgIFRoaXMgdGVzdCBlbnN1cmVzIHRoZSBjb3JyZWN0
bmVzcyBvZiBTcGF0aWFsIE5hdmlnYXRpb24gKFNOYXYpIGFsZ29yaXRobSB3aGVuIGJvdW5kaW5n
cmVjdCBvZiBhbiBlbGVtZW50IG92ZXJsYXBwZWQgd2l0aCBvdGhlciBlbGVtZW50LgorCisgICAg
KiBQcmUtY29uZGl0aW9uczoKKyAgICAxKSBUZXN0UnVubmVyIHN1cHBvcnQgZm9yIFNOYXYgZW5h
YmxlL2Rpc2FibGUuCisKKyAgICAqIE5hdmlnYXRpb24gc3RlcHM6CisgICAgMSkgTG9hZHMgdGhp
cyBwYWdlLCBmb2N1cyBnb2VzIHRvICJzdGFydCIgYXV0b21hdGljYWxseS4KKyAgICAyKSBGb2N1
cyBtb3ZlcyBhd2F5IGluIDQgZGlmZmVyZW50IGRpcmVjdGlvbnMgdG8gbmVpZ2hib3Igbm9kZXMg
YW5kIGFzIHBlciByZXN1bHRNYXAgdmFsdWVzLgorICAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9zcGF0aWFsLW5hdmlnYXRpb24tdXRpbHMuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vamF2YXNjcmlwdCI+CisKKyAg
ICB2YXIgcmVzdWx0TWFwID0gWworICAgICAgWyJEb3duIiwgIjIiXSwKKyAgICAgIFsiRG93biIs
ICJtaWRkbGUxIl0sCisgICAgICBbIkRvd24iLCAiMyJdLAorICAgICAgWyJEb3duIiwgIjQiXSwK
KyAgICAgIFsiVXAiLCAiMyJdLAorICAgICAgWyJMZWZ0IiwgImxlZnQiXSwKKyAgICAgIFsiUmln
aHQiLCAiMyJdLAorICAgICAgWyJSaWdodCIsICJtaWRkbGUxIl0sCisgICAgICBbIlJpZ2h0Iiwg
Im1pZGRsZTIiXSwKKyAgICAgIFsiUmlnaHQiLCAicmlnaHQiXSwKKyAgICAgIFsiUmlnaHQiLCAi
MTMiXSwKKyAgICAgIFsiRG93biIsICIxNCJdLAorICAgICAgWyJVcCIsICIxMyJdLAorICAgICAg
WyJVcCIsICJyaWdodCJdLAorICAgICAgWyJMZWZ0IiwgIm1pZGRsZTIiXSwKKyAgICAgIFsiVXAi
LCAiMTEiXSwKKyAgICAgIFsiRE9ORSIsICJET05FIl0KKyAgICBdOworCisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVyLnNldFNwYXRpYWxOYXZpZ2F0aW9uRW5h
YmxlZCh0cnVlKTsKKyAgICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRU
YWJUb0xpbmtzUHJlZmVyZW5jZUtleSIsIDEpOworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgeworICAgICAgLy8g
c3RhcnRpbmcgdGhlIHRlc3QgaXRzZWxmOiBnZXQgdG8gYSBrbm93biBwbGFjZS4KKyAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGFydCIpLmZvY3VzKCk7CisKKyAgICAgIGluaXRUZXN0
KHJlc3VsdE1hcCwgdGVzdENvbXBsZXRlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdENv
bXBsZXRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gcnVu
VGVzdDsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgLmVsZW1MZWZ0IHsKKyAgICBk
aXNwbGF5OiBibG9jazsKKyAgICBoZWlnaHQgOiA1MHB4OworICAgIHdpZHRoIDogNTBweDsKKyAg
ICBib3JkZXItc3R5bGU6c29saWQ7CisgICAgYm9yZGVyLXdpZHRoOjFweDsKKyAgICB9CisKKyAg
ICAuZWxlbVJpZ2h0IHsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBoZWlnaHQgOiA0MHB4Owor
ICAgIHdpZHRoIDogNTBweDsKKyAgICBib3JkZXItc3R5bGU6c29saWQ7CisgICAgYm9yZGVyLXdp
ZHRoOjFweDsKKyAgICB9CisKKyAgICAuaGlkZGVuRWxlbSB7CisgICAgZGlzcGxheTogYmxvY2s7
CisgICAgaGVpZ2h0IDogMzBweDsKKyAgICB3aWR0aCA6IDMwcHg7CisgICAgYm9yZGVyLXN0eWxl
OnNvbGlkOworICAgIGJvcmRlci13aWR0aDoxcHg7CisgICAgYm9yZGVyLWNvbG9yOiNmZjAwMDA7
CisgICAgfQorCisgICAgYS5lbGVtTGVmdDpmb2N1cyB7IGJvcmRlcjogM3B4IHNvbGlkIGdyYXk7
YmFja2dyb3VuZC1jb2xvcjojMDBmZjAwO30KKyAgICBhLmVsZW1SaWdodDpmb2N1cyB7IGJvcmRl
cjogM3B4IHNvbGlkIGdyYXk7YmFja2dyb3VuZC1jb2xvcjojMDBmZjAwO30KKyAgICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHkgaWQ9InNvbWUtY29udGVudCIgeG1sbnM9Imh0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWwiIHN0eWxlPSJwYWRkaW5nOjIwcHgiPgorCisgICAgPGRpdiBzdHlsZT0i
cG9zaXRpb246YWJzb2x1dGU7dG9wOjBweDtsZWZ0OjUwcHgiID48YSBpZCA9InN0YXJ0IiBocmVm
PSIjIiBjbGFzcz0iZWxlbUxlZnQiPjE8L2E+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRp
b246YWJzb2x1dGU7dG9wOjQ4cHg7bGVmdDo1MHB4IiA+PGEgaWQgPSIyIiBocmVmPSIjIiBjbGFz
cz0iZWxlbUxlZnQiPjI8L2E+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1
dGU7dG9wOjk2cHg7bGVmdDo1MHB4IiA+PGEgaWQgPSIzIiBocmVmPSIjIiBjbGFzcz0iZWxlbUxl
ZnQiPjM8L2E+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjE0
NHB4O2xlZnQ6NTBweDt6LWluZGV4OjEwMCIgPjxhIGlkPSI0IiBocmVmPSIjIiBjbGFzcz0iZWxl
bUxlZnQiPjQ8L2E+PC9kaXY+ICAKKworICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRl
O3RvcDowcHg7bGVmdDoyMDVweCIgPjxhIGlkID0iMTEiIGhyZWY9IiMiIGNsYXNzPSJlbGVtUmln
aHQiPjExPC9hPjwvZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDo1
MHB4O2xlZnQ6MjA1cHgiID48YSBpZCA9IjEyIiBocmVmPSIjIiBjbGFzcz0iZWxlbVJpZ2h0Ij4x
MjwvYT48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwcHg7
bGVmdDoyMDVweCIgPjxhIGlkID0iMTMiIGhyZWY9IiMiIGNsYXNzPSJlbGVtUmlnaHQiPjEzPC9h
PjwvZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDoxNTBweDtsZWZ0
OjIwNXB4O3otaW5kZXg6MTAxIiA+PGEgaWQ9IjE0IiBocmVmPSIjIiBjbGFzcz0iZWxlbVJpZ2h0
Ij4xNDwvYT48L2Rpdj4gCisKKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6
NzJweDtsZWZ0OjIwcHgiID48YSBpZCA9ImxlZnQiIGhyZWY9IiMiIGNsYXNzPSJlbGVtTGVmdCI+
TDwvYT48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NzJweDts
ZWZ0Ojc3cHgiID48YSBpZCA9Im1pZGRsZTEiIGhyZWY9IiMiIGNsYXNzPSJlbGVtTGVmdCI+TTE8
L2E+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjcycHg7bGVm
dDoxMzJweCIgPjxhIGlkID0ibWlkZGxlMiIgaHJlZj0iIyIgY2xhc3M9ImVsZW1MZWZ0Ij5NMjwv
YT48L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NzJweDtsZWZ0
OjE5MHB4IiA+PGEgaWQgPSJyaWdodCIgaHJlZj0iIyIgY2xhc3M9ImVsZW1MZWZ0Ij5SPC9hPjwv
ZGl2PgorICAgIDxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDoxNTVweDtsZWZ0OjYw
cHgiID48YSBpZCA9ImhpZGRlbiIgaHJlZj0iIyIgY2xhc3M9ImhpZGRlbkVsZW0iPjxjZW50ZXI+
SDwvY2VudGVyPjwvYT48L2Rpdj4gCQorCisgICAgPGJyPjxicj4KKyAgICA8ZGl2IHN0eWxlPSJw
b3NpdGlvbjphYnNvbHV0ZTt0b3A6MjAwcHg7bGVmdDo1cHgiID48cD4xLDIsMyw0IGFyZSBvdmVy
bGFwcGluZyA8YnI+ZWFjaCBvdGhlci4gSCBpcyBjb21wbGV0ZWx5IDxicj5vdmVybGFwcGVkIGJ5
IDQ8L3A+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7dG9wOjIwMHB4
O2xlZnQ6MjA1cHgiPjxwPjExLDEyLDEzLDE0IGFyZSBub3Qgb3ZlcmxhcHBpbmcgPGJyPmVhY2gg
b3RoZXIuIFNpbWlsYXJseSw8YnI+TCwgTTEsIE0yLCBSIGFyZSBub3Qgb3ZlcmxhcHBpbmcgZWFj
aCBvdGhlcjwvcD48L2Rpdj4KKyAgICA8YnI+PGJyPgorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTU2NDU2KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMt
MDktMjYgIEFiaGlqZWV0IEthbmRhbGthciAgPGFiaGlqZWV0LmtAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgU3BhdGlhbCBOYXZpZ2F0aW9uIHNob3VsZCBwcmVmZXIgZm9jdXNhYmxlIGVsZW1lbnRz
IHdpdGggYWJzb2x1dGUgcG9zaXRpb25pbmcgb3ZlciBvdGhlciBlbGVtZW50cyBpZiBib3RoIGVs
ZW1lbnRzIHZpc2libGUgYXJlYSBjb21wbGV0ZWx5IGludGVyc2VjdHMgZWFjaCBvdGhlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTQ2OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHR3byBvciBt
b3JlIGZvY3VzYWJsZSBub2RlcyBhcmUgY29tcGxldGVseSBpbnRlcnNlY3RpbmcgZWFjaCBvdGhl
ciBzbyB0aGF0IG9ubHkgb25lIG9mIHRoZW0gaXMgdmlzaWJsZSB0byB1c2VyIHRoZW4gcHJlZmVy
ZW5jZSBzaG91bGQgYmUgZ2l2ZW4gdGhlIG5vZGUgb24gdG9wLgorICAgICAgICBJbiBjYXNlIG9m
IHBhcnRpYWwgaW50ZXJzZWN0aW9uIGFtb25nIHRoZSBub2RlcywgdXNlciBzaG91bGQgYWJsZSB0
byBzZWxlY3QgZXZlcnkgbm9kZSB2aXNpYmxlIHRvIGhpbS4KKyAgICAgICAgQWRkZWQgbGF5b3V0
LXRlc3QgdG8gdGVzdCBhYm92ZSBtZW50aW9uZWQgYmVoYXZpb3IuCisKKyAgICAgICAgKiBmYXN0
L3NwYXRpYWwtbmF2aWdhdGlvbi9zbmF2LW92ZXJsYXBwaW5nLW5vZGVzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1vdmVybGFwcGlu
Zy1ub2Rlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3NwYXRpYWwtbmF2aWdhdGlvbi9z
bmF2LXotaW5kZXgtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtei1pbmRleC5odG1sOgorCiAyMDEzLTA5LTI2ICBNYXJpbyBTYW5jaGV6IFByYWRh
ICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTQ0ODMx
LXIxNDQ4NDYpOkNyYXNoZXMgaW4gYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi13aXRoLWVsZW1l
bnRzLmh0bWwsIGFjY2Vzc2liaWxpdHkvdGFibGUtd2l0aC1oaWRkZW4taGVhZC1zZWN0aW9uLmh0
bWwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NjQ1NikKKysrIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA5LTI2ICBBYmhp
amVldCBLYW5kYWxrYXIgIDxhYmhpamVldC5rQHNhbXN1bmcuY29tPgorCisgICAgICAgIFNwYXRp
YWwgTmF2aWdhdGlvbiBzaG91bGQgcHJlZmVyIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGFic29s
dXRlIHBvc2l0aW9uaW5nIG92ZXIgb3RoZXIgZWxlbWVudHMgaWYgYm90aCBlbGVtZW50cyB2aXNp
YmxlIGFyZWEgY29tcGxldGVseSBpbnRlcnNlY3RzIGVhY2ggb3RoZXIuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTk0NjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0d28gb3IgbW9yZSBmb2N1c2Fi
bGUgbm9kZXMgYXJlIGNvbXBsZXRlbHkgaW50ZXJzZWN0aW5nIGVhY2ggb3RoZXIgc28gdGhhdCBv
bmx5IG9uZSBvZiB0aGVtIGlzIHZpc2libGUgdG8gdXNlciB0aGVuIHByZWZlcmVuY2Ugc2hvdWxk
IGJlIGdpdmVuIHRoZSBub2RlIG9uIHRvcC4KKyAgICAgICAgSW4gY2FzZSBvZiBwYXJ0aWFsIGlu
dGVyc2VjdGlvbiBhbW9uZyB0aGUgbm9kZXMsIHVzZXIgc2hvdWxkIGFibGUgdG8gc2VsZWN0IGV2
ZXJ5IG5vZGUgdmlzaWJsZSB0byBoaW0uCisKKyAgICAgICAgVGVzdDogZmFzdC9zcGF0aWFsLW5h
dmlnYXRpb24vc25hdi1vdmVybGFwcGluZy1ub2Rlcy5odG1sCisKKyAgICAgICAgKiBwYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVGb2N1c0NhbmRpZGF0
ZUlmTmVlZGVkKToKKyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvY3VzQ2FuZGlkYXRlOjpGb2N1c0NhbmRpZGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjppc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpp
c1JlY3RJbkRpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpkaXN0YW5jZURhdGFGb3JOb2Rl
KToKKyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpGb2N1c0NhbmRpZGF0ZTo6Rm9jdXNDYW5kaWRhdGUpOgorCiAyMDEzLTA5LTI2ICBNaWhhaSBN
YWVyZWFuICA8bW1hZXJlYW5AYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgUmVnaW9uc10gVGhl
IGxheWVycyBmcm9tIHRoZSBmbG93IHRocmVhZCBzaG91bGQgYmUgY29sbGVjdGVkIHVuZGVyIHRo
ZSByZWdpb25zJyBsYXllcnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZp
Z2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdh
dGlvbi5oCShyZXZpc2lvbiAxNTY0NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxO
YXZpZ2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw2ICsxMDYsNyBAQAogICAgICAgICAs
IGFsaWdubWVudChOb25lKQogICAgICAgICAsIGlzT2Zmc2NyZWVuKHRydWUpCiAgICAgICAgICwg
aXNPZmZzY3JlZW5BZnRlclNjcm9sbGluZyh0cnVlKQorICAgICAgICAsIG92ZXJsYXBwZWRBcmVh
KDApCiAgICAgewogICAgIH0KIApAQCAtMTI3LDYgKzEyOCw3IEBACiAgICAgTGF5b3V0UmVjdCBy
ZWN0OwogICAgIGJvb2wgaXNPZmZzY3JlZW47CiAgICAgYm9vbCBpc09mZnNjcmVlbkFmdGVyU2Ny
b2xsaW5nOworICAgIExheW91dFVuaXQgb3ZlcmxhcHBlZEFyZWE7CiB9OwogCiBib29sIGhhc09m
ZnNjcmVlblJlY3QoTm9kZSosIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiA9IEZvY3VzRGlyZWN0
aW9uTm9uZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiAxNTY0NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcyNiwxOCArNzI2LDMxIEBACiAKICAgICBMYXlvdXRSZWN0
IGludGVyc2VjdGlvblJlY3QgPSBpbnRlcnNlY3Rpb24oY2FuZGlkYXRlLnJlY3QsIGNsb3Nlc3Qu
cmVjdCk7CiAgICAgaWYgKCFpbnRlcnNlY3Rpb25SZWN0LmlzRW1wdHkoKSAmJiAhYXJlRWxlbWVu
dHNPblNhbWVMaW5lKGNsb3Nlc3QsIGNhbmRpZGF0ZSkpIHsKLSAgICAgICAgLy8gSWYgMiBub2Rl
cyBhcmUgaW50ZXJzZWN0aW5nLCBkbyBoaXQgdGVzdCB0byBmaW5kIHdoaWNoIG5vZGUgaW4gb24g
dG9wLgotICAgICAgICBMYXlvdXRVbml0IHggPSBpbnRlcnNlY3Rpb25SZWN0LngoKSArIGludGVy
c2VjdGlvblJlY3Qud2lkdGgoKSAvIDI7Ci0gICAgICAgIExheW91dFVuaXQgeSA9IGludGVyc2Vj
dGlvblJlY3QueSgpICsgaW50ZXJzZWN0aW9uUmVjdC5oZWlnaHQoKSAvIDI7Ci0gICAgICAgIEhp
dFRlc3RSZXN1bHQgcmVzdWx0ID0gY2FuZGlkYXRlLnZpc2libGVOb2RlLT5kb2N1bWVudCgpLnBh
Z2UoKS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQoSW50
UG9pbnQoeCwgeSksIEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IEhpdFRlc3RSZXF1ZXN0OjpB
Y3RpdmUgfCBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmcgfCBIaXRUZXN0UmVxdWVzdDo6
RGlzYWxsb3dTaGFkb3dDb250ZW50KTsKLSAgICAgICAgaWYgKGNhbmRpZGF0ZS52aXNpYmxlTm9k
ZS0+Y29udGFpbnMocmVzdWx0LmlubmVyTm9kZSgpKSkgewotICAgICAgICAgICAgY2xvc2VzdCA9
IGNhbmRpZGF0ZTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZS5y
ZWN0LmNvbnRhaW5zKGNsb3Nlc3QucmVjdCkgfHwgY2xvc2VzdC5yZWN0LmNvbnRhaW5zKGNhbmRp
ZGF0ZS5yZWN0KSkgeworICAgICAgICAgICAgLy8gSWYgMiBub2RlcyBhcmUgY29tcGxldGVseSBp
bnRlcnNlY3RpbmcsIGRvIGhpdCB0ZXN0IHRvIGZpbmQgd2hpY2ggbm9kZSBpbiBvbiB0b3AuCisg
ICAgICAgICAgICBMYXlvdXRVbml0IHggPSBpbnRlcnNlY3Rpb25SZWN0LngoKSArIGludGVyc2Vj
dGlvblJlY3Qud2lkdGgoKSAvIDI7CisgICAgICAgICAgICBMYXlvdXRVbml0IHkgPSBpbnRlcnNl
Y3Rpb25SZWN0LnkoKSArIGludGVyc2VjdGlvblJlY3QuaGVpZ2h0KCkgLyAyOworICAgICAgICAg
ICAgSGl0VGVzdFJlc3VsdCByZXN1bHQgPSBjYW5kaWRhdGUudmlzaWJsZU5vZGUtPmRvY3VtZW50
KCkucGFnZSgpLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2lu
dChJbnRQb2ludCh4LCB5KSwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVl
c3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8IEhpdFRlc3RSZXF1
ZXN0OjpEaXNhbGxvd1NoYWRvd0NvbnRlbnQpOworICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZS52
aXNpYmxlTm9kZS0+Y29udGFpbnMocmVzdWx0LmlubmVyTm9kZSgpKSkgeworICAgICAgICAgICAg
ICAgIGNsb3Nlc3QgPSBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2xvc2VzdC52aXNpYmxlTm9kZS0+Y29udGFpbnMo
cmVzdWx0LmlubmVyTm9kZSgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgaWYgKGNsb3Nlc3QudmlzaWJsZU5vZGUtPmNvbnRhaW5zKHJlc3VsdC5pbm5lck5v
ZGUoKSkpCi0gICAgICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGNhbmRpZGF0ZS5v
dmVybGFwcGVkQXJlYSA+IGNsb3Nlc3Qub3ZlcmxhcHBlZEFyZWEpIHsKKyAgICAgICAgY2xvc2Vz
dCA9IGNhbmRpZGF0ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEluIGNhc2Ug
b2Ygb3ZlcmxhcCwgY2xvc2VzdCBpcyBjaG9zZW4gb24gdGhlIGJhc2ljIG9mIG92ZXJsYXBwZWQg
YXJlYS4gSWYgc3VjaCBhIGNsb3Nlc3QgaXMgYWxyZWFkeSBjaG9zZW4sIHRoZW4gY2xvc2VzdC5v
dmVybGFwcGVkQXJlYSA+IDAuCisgICAgLy8gU28sIG5lZ2xlY3QgYWxpZ25tZW50IGlmIHdlIGhh
dmUgYWxyZWFkeSBjaG9zZW4gY2xvc2VzdCBub2RlLgorICAgIGlmIChjbG9zZXN0Lm92ZXJsYXBw
ZWRBcmVhKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoY2FuZGlkYXRlLmFsaWdubWVudCA9
PSBjbG9zZXN0LmFsaWdubWVudCkgewogICAgICAgICBpZiAoY2FuZGlkYXRlLmRpc3RhbmNlIDwg
Y2xvc2VzdC5kaXN0YW5jZSkKICAgICAgICAgICAgIGNsb3Nlc3QgPSBjYW5kaWRhdGU7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAkocmV2aXNpb24gMTU2
NDU2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTYzLDYgKzYzLDcgQEAKICAgICAsIGFsaWdubWVudChOb25lKQogICAgICwg
aXNPZmZzY3JlZW4odHJ1ZSkKICAgICAsIGlzT2Zmc2NyZWVuQWZ0ZXJTY3JvbGxpbmcodHJ1ZSkK
KyAgICAsIG92ZXJsYXBwZWRBcmVhKDApCiB7CiAgICAgQVNTRVJUKG5vZGUpOwogICAgIEFTU0VS
VChub2RlLT5pc0VsZW1lbnROb2RlKCkpOwpAQCAtMjY5LDE1ICsyNzAsMTYgQEAKIAogc3RhdGlj
IGJvb2wgaXNSZWN0SW5EaXJlY3Rpb24oRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBM
YXlvdXRSZWN0JiBjdXJSZWN0LCBjb25zdCBMYXlvdXRSZWN0JiB0YXJnZXRSZWN0KQogeworICAg
IGJvb2wgb3ZlcmxhcCA9IChjdXJSZWN0LmludGVyc2VjdHModGFyZ2V0UmVjdCkgJiYgIWN1clJl
Y3QuY29udGFpbnModGFyZ2V0UmVjdCkgJiYgIXRhcmdldFJlY3QuY29udGFpbnMoY3VyUmVjdCkp
OwogICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7CiAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbkxlZnQ6
Ci0gICAgICAgIHJldHVybiB0YXJnZXRSZWN0Lm1heFgoKSA8PSBjdXJSZWN0LngoKTsKKyAgICAg
ICAgcmV0dXJuIG92ZXJsYXAgPyAodGFyZ2V0UmVjdC54KCkgPCBjdXJSZWN0LngoKSk6ICh0YXJn
ZXRSZWN0Lm1heFgoKSA8PSBjdXJSZWN0LngoKSk7CiAgICAgY2FzZSBGb2N1c0RpcmVjdGlvblJp
Z2h0OgotICAgICAgICByZXR1cm4gdGFyZ2V0UmVjdC54KCkgPj0gY3VyUmVjdC5tYXhYKCk7Cisg
ICAgICAgIHJldHVybiBvdmVybGFwID8gKHRhcmdldFJlY3QueCgpID4gY3VyUmVjdC54KCkpIDog
KHRhcmdldFJlY3QueCgpID49IGN1clJlY3QubWF4WCgpKTsKICAgICBjYXNlIEZvY3VzRGlyZWN0
aW9uVXA6Ci0gICAgICAgIHJldHVybiB0YXJnZXRSZWN0Lm1heFkoKSA8PSBjdXJSZWN0LnkoKTsK
KyAgICAgICAgcmV0dXJuIG92ZXJsYXAgPyAodGFyZ2V0UmVjdC55KCkgPCBjdXJSZWN0LnkoKSkg
OiAodGFyZ2V0UmVjdC5tYXhZKCkgPD0gY3VyUmVjdC55KCkpOwogICAgIGNhc2UgRm9jdXNEaXJl
Y3Rpb25Eb3duOgotICAgICAgICByZXR1cm4gdGFyZ2V0UmVjdC55KCkgPj0gY3VyUmVjdC5tYXhZ
KCk7CisgICAgICAgIHJldHVybiBvdmVybGFwID8gKHRhcmdldFJlY3QueSgpID4gY3VyUmVjdC55
KCkpIDogKHRhcmdldFJlY3QueSgpID49IGN1clJlY3QubWF4WSgpKTsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
NjQ0LDYgKzY0NiwyMCBAQAogCiB2b2lkIGRpc3RhbmNlRGF0YUZvck5vZGUoRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBjb25zdCBGb2N1c0NhbmRpZGF0ZSYgY3VycmVudCwgRm9jdXNDYW5kaWRh
dGUmIGNhbmRpZGF0ZSkKIHsKKyAgICAvLyBJZiBjdXJyZW50IG5vZGUgaXMgYSBjaGlsZCBvZiBj
YW5kaWRhdGUgaWZyYW1lIGVsZW1lbnQgdGhlbiBuZWdsZWN0IGNhbmRpZGF0ZSBpZnJhbWUgZWxl
bWVudC4KKyAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIGZyYW1lRWxlbWVudCA9IGZyYW1lT3du
ZXJFbGVtZW50KGNhbmRpZGF0ZSk7CisgICAgaWYgKGZyYW1lRWxlbWVudCAmJiBjdXJyZW50LnZp
c2libGVOb2RlICYmIGZyYW1lRWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlmcmFtZVRh
ZykgJiYgZnJhbWVFbGVtZW50ID09IGN1cnJlbnQudmlzaWJsZU5vZGUtPmRvY3VtZW50KCkuZnJh
bWUoKS0+b3duZXJFbGVtZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEFzIFNwYXRp
YWwgTmF2aWdhdGlvbiBjaGFuZ2VzIGN1cnJlbnQgbm9kZSByZWN0IHdpdGggaXRzIGNvbnRhaW5l
ciByZWN0LgorICAgIC8vIFNvLCBmb3IgYWNjdXJhdGUgY2FsY3VsYXRpb25zIG9mIG92ZXJsYXBw
ZWQgYXJlYSBhY3R1YWwgYm91bmRpbmcgYm94IG9mIGN1cnJlbnQgbm9kZSBpcyBuZWVkZWQuCisg
ICAgTGF5b3V0UmVjdCBhY3R1YWxDdXJyUmVjdCA9IGN1cnJlbnQudmlzaWJsZU5vZGUgPyBub2Rl
UmVjdEluQWJzb2x1dGVDb29yZGluYXRlcyhjdXJyZW50LnZpc2libGVOb2RlKSA6IGN1cnJlbnQu
cmVjdDsKKworICAgIExheW91dFJlY3Qgb3ZlcmxheSA9IGludGVyc2VjdGlvbihjYW5kaWRhdGUu
cmVjdCwgYWN0dWFsQ3VyclJlY3QpOworICAgIGlmICghb3ZlcmxheS5pc0VtcHR5KCkpCisgICAg
ICAgIGNhbmRpZGF0ZS5vdmVybGFwcGVkQXJlYSA9IG92ZXJsYXkuaGVpZ2h0KCkgKiBvdmVybGF5
LndpZHRoKCk7CisKKwogICAgIGlmIChhcmVFbGVtZW50c09uU2FtZUxpbmUoY3VycmVudCwgY2Fu
ZGlkYXRlKSkgewogICAgICAgICBpZiAoKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlvblVwICYm
IGN1cnJlbnQucmVjdC55KCkgPiBjYW5kaWRhdGUucmVjdC55KCkpIHx8IChkaXJlY3Rpb24gPT0g
Rm9jdXNEaXJlY3Rpb25Eb3duICYmIGNhbmRpZGF0ZS5yZWN0LnkoKSA+IGN1cnJlbnQucmVjdC55
KCkpKSB7CiAgICAgICAgICAgICBjYW5kaWRhdGUuZGlzdGFuY2UgPSAwOwo=
</data>
<flag name="review"
          id="234944"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>