<?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>157581</bug_id>
          
          <creation_ts>2016-05-11 13:22:30 -0700</creation_ts>
          <short_desc>Web Inspector: Script ProfileViews should be searchable</short_desc>
          <delta_ts>2016-05-13 12:00:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</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="Matt Baker">mattbaker</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1192053</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-11 13:22:30 -0700</bug_when>
    <thetext>* SUMMARY
Script ProfileViews should be filterable

Should be able to search for a particular function in a ProfileView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192054</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-11 13:23:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/26228530&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192056</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-11 13:25:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/26228605&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192580</commentid>
    <comment_count>3</comment_count>
      <attachid>278800</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-05-12 19:17:54 -0700</bug_when>
    <thetext>Created attachment 278800
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192652</commentid>
    <comment_count>4</comment_count>
      <attachid>278800</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-12 22:25:30 -0700</bug_when>
    <thetext>Comment on attachment 278800
[Patch] Proposed Fix

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

This looks good to me! We should stress test the performance of this briefly to ensure there are no unexpected side effects.

&gt; Source/WebInspectorUI/UserInterface/Views/ScriptProfileTimelineView.js:139
&gt; +            this.removeSubview(this._profileView);

This should probably removeEventListener to match the add below.

&gt; Source/WebInspectorUI/UserInterface/Views/TimelineView.js:310
&gt; +            if (!(node instanceof WebInspector.TimelineDataGridNode))
&gt; +                return;

Nit: style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192678</commentid>
    <comment_count>5</comment_count>
      <attachid>278821</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-05-13 00:12:01 -0700</bug_when>
    <thetext>Created attachment 278821
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192680</commentid>
    <comment_count>6</comment_count>
      <attachid>278821</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-05-13 00:15:24 -0700</bug_when>
    <thetext>Comment on attachment 278821
[Patch] Proposed Fix

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

&gt; Source/WebInspectorUI/UserInterface/Views/ScriptClusterTimelineView.js:75
&gt; +    selectRecord(record) { _contentViewContainer.currentContentView.selectRecord(record); }

Missing &quot;this.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192681</commentid>
    <comment_count>7</comment_count>
      <attachid>278822</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-05-13 00:19:42 -0700</bug_when>
    <thetext>Created attachment 278822
[Patch] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192682</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-05-13 00:25:17 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 278800 [details]
&gt; [Patch] Proposed Fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=278800&amp;action=review
&gt; 
&gt; This looks good to me! We should stress test the performance of this briefly
&gt; to ensure there are no unexpected side effects.

I did a few quick recordings comprised of multiple page navigations each (wired.com -&gt; arstechnica.com -&gt; cnn.com -&gt; etc...), which resulted in &gt; 45s of data and grids with &gt; 50k records. Filtering the JavaScript &amp; Events grids (details and call trees) had a noticeable delay of around 0.5-1s while typing.

My testing was far from rigorous, but indicates the perf impact is definitely acceptable for a first pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192683</commentid>
    <comment_count>9</comment_count>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-05-13 00:26:26 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #4)
&gt; &gt; Comment on attachment 278800 [details]
&gt; &gt; [Patch] Proposed Fix
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=278800&amp;action=review
&gt; &gt; 
&gt; &gt; This looks good to me! We should stress test the performance of this briefly
&gt; &gt; to ensure there are no unexpected side effects.
&gt; 
&gt; I did a few quick recordings comprised of multiple page navigations each
&gt; (wired.com -&gt; arstechnica.com -&gt; cnn.com -&gt; etc...), which resulted in &gt; 45s
&gt; of data and grids with &gt; 50k records. Filtering the JavaScript &amp; Events
&gt; grids (details and call trees) had a noticeable delay of around 0.5-1s while

Events and Call Trees</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192818</commentid>
    <comment_count>10</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 11:31:42 -0700</bug_when>
    <thetext>Yeah, I just played with the patch. Performance is great for my basic tests so far, I think this would be really great to land now and improve later if we encounter issues!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192820</commentid>
    <comment_count>11</comment_count>
      <attachid>278822</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 11:36:44 -0700</bug_when>
    <thetext>Comment on attachment 278822
[Patch] Proposed Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192827</commentid>
    <comment_count>12</comment_count>
      <attachid>278822</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-13 12:00:43 -0700</bug_when>
    <thetext>Comment on attachment 278822
[Patch] Proposed Fix

Clearing flags on attachment: 278822

Committed r200873: &lt;http://trac.webkit.org/changeset/200873&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192828</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-13 12:00:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278800</attachid>
            <date>2016-05-12 19:17:54 -0700</date>
            <delta_ts>2016-05-13 00:11:58 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-157581-20160512191845.patch</filename>
            <type>text/plain</type>
            <size>16275</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwODA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBk
MjZiYmQ3ZDVlYzNhNjJjMGJlZDUyYTNkYjNlMDcxZTQwMTA2Y2FiLi5lYTFiYTdlNTM0NDY3Mzgz
NGFkYmE3M2Y1MjhhYTI0YjMzYzQzMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxNi0wNS0xMiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2NyaXB0IFByb2ZpbGVWaWV3cyBzaG91bGQgYmUg
c2VhcmNoYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU3NTgxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjIyODUzMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBl
LmdldCBmaWx0ZXJUZXh0KToKKyAgICAgICAgTWFrZSBmaWx0ZXJUZXh0IHJlYWRhYmxlLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWROb2RlLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLmdldCBjYWxs
aW5nQ29udGV4dFRyZWVOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdy
aWROb2RlLnByb3RvdHlwZS5maWx0ZXJhYmxlRGF0YUZvckNvbHVtbik6CisgICAgICAgIEFkZCBm
aWx0ZXJhYmxlIGRhdGEgZm9yIHRoZSAiZnVuY3Rpb24iIGNvbHVtbi4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZS5fdXBkYXRlQ2hpbGRyZW5Gb3JN
b2RpZmllcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJv
dG90eXBlLmdldCBub2RlKTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCBjYWxsaW5nQ29udGV4
dFRyZWVOb2RlIHRvIGJlIGxlc3MgYW1iaWd1b3VzLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBy
b2ZpbGVEYXRhR3JpZFRyZWUucHJvdG90eXBlLl91cGRhdGVDdXJyZW50Rm9jdXNEZXRhaWxzKToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUHJvZmlsZVZpZXcucHJvdG90eXBlLmdldCBkYXRhR3JpZCk6CisgICAg
ICAgIEV4cG9zZSBkYXRhIGdyaWQgZm9yIHVzZSBpbiBwYXJlbnQgdmlldy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0Q2x1c3RlclRpbWVsaW5lVmlldy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRDbHVzdGVyVGltZWxpbmVWaWV3LnByb3RvdHlwZS5zZWxl
Y3RSZWNvcmQpOgorICAgICAgICBEcml2ZS1ieSBmaXg6IGZvcndhcmQgcHJvcGVydHkgdG8gY3Vy
cmVudCBjaGlsZCBUaW1lbGluZVZpZXcuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1NjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0UHJvZmlsZVRpbWVsaW5lVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0UHJv
ZmlsZVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Njb3BlQmFyU2VsZWN0aW9uRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb3RvdHlw
ZS5fc2hvd1Byb2ZpbGVWaWV3Rm9yT3JpZW50YXRpb24pOgorICAgICAgICBIZWxwZXIgZnVuY3Rp
b24gdG8gc3dpdGNoIHByb2ZpbGUgdmlld3MuIFBlcnNpc3QgZmlsdGVyIHRleHQgd2hlbgorICAg
ICAgICBzd2l0Y2hpbmcgdG8gdGhlIG5ldyBwcm9maWxlIHZpZXcuCisKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb3RvdHlwZS5nZXQgc2hvd3NGaWx0
ZXJCYXIpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgRklYTUUgYW5kIHNob3cgZmlsdGVyIGJh
ci4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldy5wcm90b3R5cGUuc2V0dXBEYXRhR3JpZCk6
CisgICAgICAgIFN1cHBvcnQgc3dpdGNoaW5nIHRvIGEgbmV3IGRhdGEgZ3JpZC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcucHJvdG90eXBlLmRhdGFHcmlkTWF0Y2hOb2RlQWdh
aW5zdEN1c3RvbUZpbHRlcnMpOgorICAgICAgICBIb29raW5nIHVwIGZpbHRlcmluZyBjYXVzZXMg
ZGF0YSBncmlkIG5vZGVzIHRvIGJlIGZpbHRlcmVkIGJhc2VkIG9uIHRoZQorICAgICAgICBydWxl
ciBzZWxlY3Rpb24uIEFsdGhvdWdoIFNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgcGVyZm9ybXMg
aXRzIG93bgorICAgICAgICB0aW1lLWJhc2VkIGZpbHRlcmluZywgdGhpcyBpcyBuZWNlc3Nhcnkg
dG8gcHJldmVudCBhbiBhc3NlcnQuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVZp
ZXcucHJvdG90eXBlLl90aW1lbGluZURhdGFHcmlkU2VsZWN0ZWROb2RlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3LnByb3RvdHlwZS5fdGltZWxpbmVEYXRhR3Jp
ZE5vZGVXYXNGaWx0ZXJlZCk6CisgICAgICAgIENvbnZlcnRlZCBhcnJvdyBmdW5jdGlvbnMgdG8g
bWVtYmVyIGZ1bmN0aW9ucyB0byBhbGxvdyB1bnJlZ2lzdGVyaW5nCisgICAgICAgIGV2ZW50IGxp
c3RlbmVycyBvbiBvdXRnb2luZyBkYXRhIGdyaWQgd2hlbiBzd2FwcGluZyBncmlkcy4KKwogMjAx
Ni0wNS0xMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT046IFdlYiBJbnNwZWN0b3I6IEZhaWxzIHRvIGxvYWQgc291cmNlTWFwcGluZ1VS
TCB3aXRoIHJlbGF0aXZlIFVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwppbmRleCA0MjA1NDkyZGYzYWExOGIxYmE5NDBm
MWE0Yzg0ZDkwM2I4MThlYTc1Li5jYTRiOTYxNTdiMjJkMTZlYzcyMTJmMDc4ZTFiZjQzYTAwZGZi
YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EYXRhR3JpZC5qcwpAQCAtMjc4LDYgKzI3OCw4IEBAIFdlYkluc3BlY3Rvci5EYXRhR3Jp
ZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcKICAgICAgICAgdGhp
cy5fdXBkYXRlU2Nyb2xsTGlzdGVuZXJzKCk7CiAgICAgfQogCisgICAgZ2V0IGZpbHRlclRleHQo
KSB7IHJldHVybiB0aGlzLl9maWx0ZXJUZXh0OyB9CisKICAgICBzZXQgZmlsdGVyVGV4dCh4KQog
ICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2ZpbHRlclRleHQgPT09IHgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRO
b2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmls
ZURhdGFHcmlkTm9kZS5qcwppbmRleCBmODM5MzMyYjQ0MTc5MDdlZTdkMzdmYzlmYTVlY2JlM2Zm
YTkzZDAyLi4yNWYxNjFmMmEwZWZkMDM1ZDdhMmNlZmIxYzY1OGM5NDNkOGFhZjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlRGF0
YUdyaWROb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Byb2ZpbGVEYXRhR3JpZE5vZGUuanMKQEAgLTQ2LDcgKzQ2LDcgQEAgV2ViSW5zcGVjdG9y
LlByb2ZpbGVEYXRhR3JpZE5vZGUgPSBjbGFzcyBQcm9maWxlRGF0YUdyaWROb2RlIGV4dGVuZHMg
V2ViSW5zcGVjdG8KIAogICAgIC8vIFB1YmxpYwogCi0gICAgZ2V0IG5vZGUoKSB7IHJldHVybiB0
aGlzLl9ub2RlOyB9CisgICAgZ2V0IGNhbGxpbmdDb250ZXh0VHJlZU5vZGUoKSB7IHJldHVybiB0
aGlzLl9ub2RlOyB9CiAKICAgICBkaXNwbGF5TmFtZSgpCiAgICAgewpAQCAtMTI0LDYgKzEyNCwy
MSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZSA9IGNsYXNzIFByb2ZpbGVEYXRh
R3JpZE5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRT
ZXBhcmF0b3IoKTsKICAgICB9CiAKKyAgICAvLyBQcm90ZWN0ZWQKKworICAgIGZpbHRlcmFibGVE
YXRhRm9yQ29sdW1uKGNvbHVtbklkZW50aWZpZXIpCisgICAgeworICAgICAgICBpZiAoY29sdW1u
SWRlbnRpZmllciA9PT0gImZ1bmN0aW9uIikgeworICAgICAgICAgICAgbGV0IGZpbHRlcmFibGVE
YXRhID0gW3RoaXMuZGlzcGxheU5hbWUoKV07CisgICAgICAgICAgICBsZXQgc2NyaXB0ID0gV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zY3JpcHRGb3JJZGVudGlmaWVyKHRoaXMuX25vZGUu
c291cmNlSUQpOworICAgICAgICAgICAgaWYgKHNjcmlwdCAmJiBzY3JpcHQudXJsICYmIHRoaXMu
X25vZGUubGluZSA+PSAwICYmIHRoaXMuX25vZGUuY29sdW1uID49IDApCisgICAgICAgICAgICAg
ICAgZmlsdGVyYWJsZURhdGEucHVzaChzY3JpcHQudXJsKTsKKyAgICAgICAgICAgIHJldHVybiBm
aWx0ZXJhYmxlRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdXBlci5maWx0ZXJh
YmxlRGF0YUZvckNvbHVtbihjb2x1bW5JZGVudGlmaWVyKTsKKyAgICB9CisKICAgICAvLyBQcml2
YXRlCiAKICAgICBfdXBkYXRlQ2hpbGRyZW5Gb3JNb2RpZmllcnMoKQpAQCAtMTc0LDcgKzE4OSw3
IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlID0gY2xhc3MgUHJvZmlsZURhdGFH
cmlkTm9kZSBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAgICAgIC8vIFJlbW92ZSBjaGlsZCBkYXRh
IGdyaWQgbm9kZXMgdGhhdCBoYXZlIGJlZW4gY2hhcmdlZCB0byB1cy4KICAgICAgICAgaWYgKCF0
aGlzLnNob3VsZFJlZnJlc2hDaGlsZHJlbiAmJiB0aGlzLl9jaGlsZHJlblRvQ2hhcmdlVG9TZWxm
LnNpemUpIHsKICAgICAgICAgICAgIGZvciAobGV0IGNoaWxkRGF0YUdyaWROb2RlIG9mIHRoaXMu
Y2hpbGRyZW4pIHsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2hpbGRyZW5Ub0NoYXJnZVRv
U2VsZi5oYXMoY2hpbGREYXRhR3JpZE5vZGUubm9kZSkpCisgICAgICAgICAgICAgICAgaWYgKHRo
aXMuX2NoaWxkcmVuVG9DaGFyZ2VUb1NlbGYuaGFzKGNoaWxkRGF0YUdyaWROb2RlLmNhbGxpbmdD
b250ZXh0VHJlZU5vZGUpKQogICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkKGNo
aWxkRGF0YUdyaWROb2RlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZURhdGFHcmlk
VHJlZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2Zp
bGVEYXRhR3JpZFRyZWUuanMKaW5kZXggMDBiYzBjMjkxNDVjMTM2YmQ5M2U2Njc2ZGYwODIwZDJm
YzE0MmEwOS4uZGNmZDJjOWFmMGY0NjMwZWViM2ZkODk0MDkyZDc4MjZhNjE2MGU3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZURh
dGFHcmlkVHJlZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCkBAIC0yMzksNyArMjM5LDcgQEAgV2ViSW5zcGVj
dG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUgPSBjbGFzcyBQcm9maWxlRGF0YUdyaWRUcmVlIGV4dGVu
ZHMgV2ViSW5zcGVjdG8KIAogICAgIF91cGRhdGVDdXJyZW50Rm9jdXNEZXRhaWxzKGZvY3VzRGF0
YUdyaWROb2RlKQogICAgIHsKLSAgICAgICAgbGV0IGNjdE5vZGUgPSBmb2N1c0RhdGFHcmlkTm9k
ZS5ub2RlOworICAgICAgICBsZXQgY2N0Tm9kZSA9IGZvY3VzRGF0YUdyaWROb2RlLmNhbGxpbmdD
b250ZXh0VHJlZU5vZGU7CiAgICAgICAgIGxldCB7dGltZXN0YW1wcywgZHVyYXRpb259ID0gY2N0
Tm9kZS5maWx0ZXJlZFRpbWVzdGFtcHNBbmREdXJhdGlvbih0aGlzLl9zdGFydFRpbWUsIHRoaXMu
X2VuZFRpbWUpOwogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c1N0YXJ0VGltZSA9IHRpbWVz
dGFtcHNbMF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Qcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmpzCmluZGV4IGY0MDg5M2I5MzJiNTEzNjkwM2E2MDljMjdm
Y2Q0YjllYTExMmU1Y2QuLjY0YmI3ZTMwN2VkZTZkYTUwZjlmM2M3YzUxNGY5NGJjMjU4ODgzNjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1By
b2ZpbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Byb2ZpbGVWaWV3LmpzCkBAIC03Niw2ICs3Niw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxl
VmlldyA9IGNsYXNzIFByb2ZpbGVWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3
CiAgICAgZ2V0IGNhbGxpbmdDb250ZXh0VHJlZSgpIHsgcmV0dXJuIHRoaXMuX2NhbGxpbmdDb250
ZXh0VHJlZTsgfQogICAgIGdldCBzdGFydFRpbWUoKSB7IHJldHVybiB0aGlzLl9zdGFydFRpbWU7
IH0KICAgICBnZXQgZW5kVGltZSgpIHsgcmV0dXJuIHRoaXMuX2VuZFRpbWU7IH0KKyAgICBnZXQg
ZGF0YUdyaWQoKSB7IHJldHVybiB0aGlzLl9kYXRhR3JpZDsgfQogCiAgICAgc2V0U3RhcnRBbmRF
bmRUaW1lKHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRDbHVzdGVyVGltZWxpbmVWaWV3
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0Q2x1
c3RlclRpbWVsaW5lVmlldy5qcwppbmRleCBjY2UxYTQ5ZjFmMTU4Mjk4OWI4M2EwNDY4ZDM0OGZl
OTA1MmRlZGVjLi40Y2Y2NzEyMDFlMTRhYWE4ZTQ1ZDA5Y2YxODhhYWJjNGVmY2Q0OTQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRD
bHVzdGVyVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1NjcmlwdENsdXN0ZXJUaW1lbGluZVZpZXcuanMKQEAgLTcxLDYgKzcxLDgg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdENsdXN0ZXJUaW1lbGluZVZpZXcgPSBjbGFzcyBTY3JpcHRD
bHVzdGVyVGltZWxpbmVWaWV3IGV4dGVuZHMKICAgICBzZXQgZW5kVGltZSh4KSB7IHRoaXMuX2Nv
bnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy5lbmRUaW1lID0geDsgfQogICAg
IGdldCBjdXJyZW50VGltZSgpIHsgcmV0dXJuIHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1
cnJlbnRDb250ZW50Vmlldy5jdXJyZW50VGltZTsgfQogICAgIHNldCBjdXJyZW50VGltZSh4KSB7
IHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy5jdXJyZW50VGlt
ZSA9IHg7IH0KKworICAgIHNlbGVjdFJlY29yZChyZWNvcmQpIHsgX2NvbnRlbnRWaWV3Q29udGFp
bmVyLmN1cnJlbnRDb250ZW50Vmlldy5zZWxlY3RSZWNvcmQocmVjb3JkKTsgfQogICAgIHVwZGF0
ZUZpbHRlcihmaWx0ZXJzKSB7IHJldHVybiB0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci5jdXJy
ZW50Q29udGVudFZpZXcudXBkYXRlRmlsdGVyKGZpbHRlcnMpOyB9CiAgICAgZmlsdGVyRGlkQ2hh
bmdlKCkgeyByZXR1cm4gdGhpcy5fY29udGVudFZpZXdDb250YWluZXIuY3VycmVudENvbnRlbnRW
aWV3LmZpbHRlckRpZENoYW5nZSgpOyB9CiAgICAgbWF0Y2hEYXRhR3JpZE5vZGVBZ2FpbnN0Q3Vz
dG9tRmlsdGVycyhub2RlKSB7IHJldHVybiB0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5lci5jdXJy
ZW50Q29udGVudFZpZXcubWF0Y2hEYXRhR3JpZE5vZGVBZ2FpbnN0Q3VzdG9tRmlsdGVycyhub2Rl
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcuanMKaW5kZXggMTU0
MDUxMGYzOGExYmI0ZTQyMmRhODBjNDE3MDU0YjE5NDU3ZDU4Yi4uMTMyNTk4YTZiNjI5NWVjZWE1
NDA0YWM3MzkwZmIwNzgzMzk3MDk0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRQcm9maWxlVGlt
ZWxpbmVWaWV3LmpzCkBAIC00MiwxMCArNDIsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmls
ZVRpbWVsaW5lVmlldyA9IGNsYXNzIFNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgZXh0ZW5kcwog
ICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb2Zp
bGVPcmllbnRhdGlvblNldHRpbmcpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuU2NyaXB0UHJv
ZmlsZVRpbWVsaW5lVmlldy5wcm9maWxlT3JpZW50YXRpb25TZXR0aW5nID0gbmV3IFdlYkluc3Bl
Y3Rvci5TZXR0aW5nKCJzY3JpcHQtcHJvZmlsZS10aW1lbGluZS12aWV3LXByb2ZpbGUtb3JpZW50
YXRpb24tc2V0dGluZyIsIFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LlBy
b2ZpbGVPcmllbnRhdGlvbi5Ub3BEb3duKTsKIAotICAgICAgICBsZXQgY2FsbGluZ0NvbnRleHRU
cmVlID0gdGhpcy5fY2FsbGluZ0NvbnRleHRUcmVlRm9yT3JpZW50YXRpb24oV2ViSW5zcGVjdG9y
LlNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcucHJvZmlsZU9yaWVudGF0aW9uU2V0dGluZy52YWx1
ZSk7Ci0gICAgICAgIHRoaXMuX3Byb2ZpbGVWaWV3ID0gbmV3IFdlYkluc3BlY3Rvci5Qcm9maWxl
VmlldyhjYWxsaW5nQ29udGV4dFRyZWUpOwotICAgICAgICB0aGlzLl9wcm9maWxlVmlldy5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rpb25QYXRo
Q29tcG9uZW50c0RpZENoYW5nZSwgdGhpcy5fcHJvZmlsZVZpZXdTZWxlY3Rpb25QYXRoQ29tcG9u
ZW50c0RpZENoYW5nZSwgdGhpcyk7Ci0gICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9wcm9m
aWxlVmlldyk7CisgICAgICAgIHRoaXMuX3Nob3dQcm9maWxlVmlld0Zvck9yaWVudGF0aW9uKFdl
Ykluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb2ZpbGVPcmllbnRhdGlvblNl
dHRpbmcudmFsdWUpOwogCiAgICAgICAgIGxldCBzY29wZUJhckl0ZW1zID0gWwogICAgICAgICAg
ICAgbmV3IFdlYkluc3BlY3Rvci5TY29wZUJhckl0ZW0oV2ViSW5zcGVjdG9yLlNjcmlwdFByb2Zp
bGVUaW1lbGluZVZpZXcuUHJvZmlsZU9yaWVudGF0aW9uLlRvcERvd24sIFdlYkluc3BlY3Rvci5V
SVN0cmluZygiVG9wIERvd24iKSwgdHJ1ZSksCkBAIC02MSwxNyArNTgsMTIgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgPSBjbGFzcyBTY3JpcHRQcm9maWxlVGltZWxp
bmVWaWV3IGV4dGVuZHMKICAgICAgICAgdGhpcy5fdXBkYXRlQ2xlYXJGb2N1c05vZGVzQnV0dG9u
SXRlbSgpOwogCiAgICAgICAgIHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlRpbWVsaW5lLkV2ZW50LlJlZnJlc2hlZCwgdGhpcy5fc2NyaXB0VGltZWxpbmVSZWNvcmRSZWZy
ZXNoZWQsIHRoaXMpOwotCi0gICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IGZpbHRlcmluZyB0aGUg
UHJvZmlsZVZpZXcuCiAgICAgfQogCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgc2hvd3NMaXZl
UmVjb3JkaW5nRGF0YSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE1NzU4MT4gV2ViIEluc3BlY3RvcjogU2NyaXB0IFByb2ZpbGVWaWV3
cyBzaG91bGQgYmUgc2VhcmNoYWJsZQotICAgIGdldCBzaG93c0ZpbHRlckJhcigpIHsgcmV0dXJu
IGZhbHNlOyB9Ci0KICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGNsb3NlZCgpCkBAIC0xMzAsMjIg
KzEyMiwzMyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldyA9IGNsYXNz
IFNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgZXh0ZW5kcwogICAgIHsKICAgICAgICAgbGV0IGN1
cnJlbnRPcmllbnRhdGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3
LnByb2ZpbGVPcmllbnRhdGlvblNldHRpbmcudmFsdWU7CiAgICAgICAgIGxldCBuZXdPcmllbnRh
dGlvbiA9IHRoaXMuX3Byb2ZpbGVPcmllbnRhdGlvblNjb3BlQmFyLnNlbGVjdGVkSXRlbXNbMF0u
aWQ7Ci0gICAgICAgIGxldCBjYWxsaW5nQ29udGV4dFRyZWUgPSB0aGlzLl9jYWxsaW5nQ29udGV4
dFRyZWVGb3JPcmllbnRhdGlvbihuZXdPcmllbnRhdGlvbik7CiAKICAgICAgICAgV2ViSW5zcGVj
dG9yLlNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcucHJvZmlsZU9yaWVudGF0aW9uU2V0dGluZy52
YWx1ZSA9IG5ld09yaWVudGF0aW9uOworICAgICAgICB0aGlzLl9zaG93UHJvZmlsZVZpZXdGb3JP
cmllbnRhdGlvbihuZXdPcmllbnRhdGlvbik7CiAKLSAgICAgICAgdGhpcy5yZW1vdmVTdWJ2aWV3
KHRoaXMuX3Byb2ZpbGVWaWV3KTsKLSAgICAgICAgdGhpcy5fcHJvZmlsZVZpZXcucmVtb3ZlRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENv
bXBvbmVudHNEaWRDaGFuZ2UsIHRoaXMuX3Byb2ZpbGVWaWV3U2VsZWN0aW9uUGF0aENvbXBvbmVu
dHNEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVy
cyhXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVudHNE
aWRDaGFuZ2UpOwogCi0gICAgICAgIHRoaXMuX3Byb2ZpbGVWaWV3ID0gbmV3IFdlYkluc3BlY3Rv
ci5Qcm9maWxlVmlldyhjYWxsaW5nQ29udGV4dFRyZWUpOworICAgICAgICB0aGlzLl9mb3JjZU5l
eHRMYXlvdXQgPSB0cnVlOworICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7CisgICAgfQogCisg
ICAgX3Nob3dQcm9maWxlVmlld0Zvck9yaWVudGF0aW9uKG9yaWVudGF0aW9uKQorICAgIHsKKyAg
ICAgICAgbGV0IGZpbHRlclRleHQ7CisgICAgICAgIGlmICh0aGlzLl9wcm9maWxlVmlldykgewor
ICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJ2aWV3KHRoaXMuX3Byb2ZpbGVWaWV3KTsKKyAgICAg
ICAgICAgIGZpbHRlclRleHQgPSB0aGlzLl9wcm9maWxlVmlldy5kYXRhR3JpZC5maWx0ZXJUZXh0
OworICAgICAgICB9CisKKyAgICAgICAgbGV0IGNhbGxpbmdDb250ZXh0VHJlZSA9IHRoaXMuX2Nh
bGxpbmdDb250ZXh0VHJlZUZvck9yaWVudGF0aW9uKG9yaWVudGF0aW9uKTsKKyAgICAgICAgdGhp
cy5fcHJvZmlsZVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVWaWV3KGNhbGxpbmdDb250
ZXh0VHJlZSk7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGlvblBhdGhDb21wb25lbnRzRGlkQ2hh
bmdlLCB0aGlzLl9wcm9maWxlVmlld1NlbGVjdGlvblBhdGhDb21wb25lbnRzRGlkQ2hhbmdlLCB0
aGlzKTsKLSAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX3Byb2ZpbGVWaWV3KTsKIAotICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ29udGVudFZp
ZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFuZ2UpOworICAgICAgICB0aGlz
LmFkZFN1YnZpZXcodGhpcy5fcHJvZmlsZVZpZXcpOworICAgICAgICB0aGlzLnNldHVwRGF0YUdy
aWQodGhpcy5fcHJvZmlsZVZpZXcuZGF0YUdyaWQpOwogCi0gICAgICAgIHRoaXMuX2ZvcmNlTmV4
dExheW91dCA9IHRydWU7Ci0gICAgICAgIHRoaXMubmVlZHNMYXlvdXQoKTsKKyAgICAgICAgaWYg
KGZpbHRlclRleHQpCisgICAgICAgICAgICB0aGlzLl9wcm9maWxlVmlldy5kYXRhR3JpZC5maWx0
ZXJUZXh0ID0gZmlsdGVyVGV4dDsKICAgICB9CiAKICAgICBfdXBkYXRlQ2xlYXJGb2N1c05vZGVz
QnV0dG9uSXRlbSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9UaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZVZpZXcuanMKaW5kZXggNjI4Yzc0M2NhNmY4Y2ZjMDY1ZWUy
ZjdkN2NhMTc1YTUxZjlmMzAyMS4uZjU5ODEwN2VmYjBlYmQzM2Q2NDZmN2UzNDVjYjhjMGM2M2M4
ZTQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1RpbWVsaW5lVmlldy5qcwpAQCAtMTU4LDI1ICsxNTgsMTggQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lVmlldyA9IGNsYXNzIFRpbWVsaW5lVmlldyBleHRlbmRzIFdlYkluc3BlY3Rv
ci5Db250ZW50VmlldwogCiAgICAgc2V0dXBEYXRhR3JpZChkYXRhR3JpZCkKICAgICB7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl90aW1lbGluZURhdGFHcmlkKTsKKyAgICAgICAgaWYg
KHRoaXMuX3RpbWVsaW5lRGF0YUdyaWQpIHsKKyAgICAgICAgICAgIHRoaXMuX3RpbWVsaW5lRGF0
YUdyaWQuZmlsdGVyRGVsZWdhdGUgPSBudWxsOworICAgICAgICAgICAgdGhpcy5fdGltZWxpbmVE
YXRhR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5T
ZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzLl90aW1lbGluZURhdGFHcmlkU2VsZWN0ZWROb2RlQ2hh
bmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLnJlbW92ZUV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50Lk5vZGVXYXNGaWx0ZXJlZCwg
dGhpcy5fdGltZWxpbmVEYXRhR3JpZE5vZGVXYXNGaWx0ZXJlZCwgdGhpcyk7CisgICAgICAgICAg
ICB0aGlzLl90aW1lbGluZURhdGFHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkRhdGFHcmlkLkV2ZW50LkZpbHRlckRpZENoYW5nZSwgdGhpcy5maWx0ZXJEaWRDaGFuZ2UsIHRo
aXMpOworICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fdGltZWxpbmVEYXRhR3JpZCA9IGRhdGFH
cmlkOwogICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmZpbHRlckRlbGVnYXRlID0gdGhp
czsKLSAgICAgICAgdGhpcy5fdGltZWxpbmVEYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EYXRhR3JpZC5FdmVudC5TZWxlY3RlZE5vZGVDaGFuZ2VkLCAoKSA9PiB7Ci0gICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ29udGVu
dFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFuZ2UpOwotICAgICAgICB9
KTsKLQotICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50Lk5vZGVXYXNGaWx0ZXJlZCwgKGV2ZW50KSA9PiB7Ci0g
ICAgICAgICAgICBsZXQgbm9kZSA9IGV2ZW50LmRhdGEubm9kZTsKLSAgICAgICAgICAgIGlmICgh
KG5vZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRhR3JpZE5vZGUpKQotICAg
ICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldy5FdmVudC5SZWNvcmRXYXNGaWx0ZXJl
ZCwge3JlY29yZDogbm9kZS5yZWNvcmQsIGZpbHRlcmVkOiBub2RlLmhpZGRlbn0pOwotICAgICAg
ICB9KTsKLQotICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LkZpbHRlckRpZENoYW5nZSwgKGV2ZW50KSA9PiB7
Ci0gICAgICAgICAgICB0aGlzLmZpbHRlckRpZENoYW5nZSgpOwotICAgICAgICB9KTsKKyAgICAg
ICAgdGhpcy5fdGltZWxpbmVEYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
YXRhR3JpZC5FdmVudC5TZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzLl90aW1lbGluZURhdGFHcmlk
U2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX3RpbWVsaW5lRGF0YUdy
aWQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuTm9kZVdhc0Zp
bHRlcmVkLCB0aGlzLl90aW1lbGluZURhdGFHcmlkTm9kZVdhc0ZpbHRlcmVkLCB0aGlzKTsKKyAg
ICAgICAgdGhpcy5fdGltZWxpbmVEYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EYXRhR3JpZC5FdmVudC5GaWx0ZXJEaWRDaGFuZ2UsIHRoaXMuZmlsdGVyRGlkQ2hhbmdlLCB0
aGlzKTsKICAgICB9CiAKICAgICBzZWxlY3RSZWNvcmQocmVjb3JkKQpAQCAtMjg0LDYgKzI3Nyw5
IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcgPSBjbGFzcyBUaW1lbGluZVZpZXcgZXh0ZW5k
cyBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcKICAgICAgICAgICAgIHJldHVybiBjaGVja1RpbWVC
b3VuZHMocmVjb3JkLnN0YXJ0VGltZSwgcmVjb3JkLmVuZFRpbWUpOwogICAgICAgICB9CiAKKyAg
ICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9k
ZSkKKyAgICAgICAgICAgIHJldHVybiBub2RlLmNhbGxpbmdDb250ZXh0VHJlZU5vZGUuaGFzU3Rh
Y2tUcmFjZUluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSk7CisKICAgICAgICAgY29uc29s
ZS5lcnJvcigiVW5rbm93biBEYXRhR3JpZE5vZGUsIGNhbid0IGZpbHRlciBieSB0aW1lLiIpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0zMDIsNiArMjk4LDIwIEBAIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVZpZXcgPSBjbGFzcyBUaW1lbGluZVZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0
b3IuQ29udGVudFZpZXcKIAogICAgIC8vIFByaXZhdGUKIAorICAgIF90aW1lbGluZURhdGFHcmlk
U2VsZWN0ZWROb2RlQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rpb25Q
YXRoQ29tcG9uZW50c0RpZENoYW5nZSk7CisgICAgfQorCisgICAgX3RpbWVsaW5lRGF0YUdyaWRO
b2RlV2FzRmlsdGVyZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgbm9kZSA9IGV2ZW50LmRh
dGEubm9kZTsKKyAgICAgICAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVEYXRhR3JpZE5vZGUpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3
LkV2ZW50LlJlY29yZFdhc0ZpbHRlcmVkLCB7cmVjb3JkOiBub2RlLnJlY29yZCwgZmlsdGVyZWQ6
IG5vZGUuaGlkZGVufSk7CisgICAgfQorCiAgICAgX3RpbWVzRGlkQ2hhbmdlKCkKICAgICB7CiAg
ICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5pc0NhcHR1cmluZygpIHx8
IHRoaXMuc2hvd3NMaXZlUmVjb3JkaW5nRGF0YSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278821</attachid>
            <date>2016-05-13 00:12:01 -0700</date>
            <delta_ts>2016-05-13 00:19:38 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-157581-20160513001252.patch</filename>
            <type>text/plain</type>
            <size>16453</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBk
YmIxYmE3OWZjOGZjOGZkYTljYzgxMDRlYWJkMGZkYmRmMDQ5ZTI4Li4zMGUwZTU0YTM5MzE0MWQ2
MWI4NjA1NjNiZDA0MWNmMjUyMzY5YTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxNi0wNS0xMyAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2NyaXB0IFByb2ZpbGVWaWV3cyBzaG91bGQgYmUg
c2VhcmNoYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU3NTgxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjIyODUzMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBl
LmdldCBmaWx0ZXJUZXh0KToKKyAgICAgICAgTWFrZSBmaWx0ZXJUZXh0IHJlYWRhYmxlLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWROb2RlLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLmdldCBjYWxs
aW5nQ29udGV4dFRyZWVOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdy
aWROb2RlLnByb3RvdHlwZS5maWx0ZXJhYmxlRGF0YUZvckNvbHVtbik6CisgICAgICAgIEFkZCBm
aWx0ZXJhYmxlIGRhdGEgZm9yIHRoZSAiZnVuY3Rpb24iIGNvbHVtbi4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZS5fdXBkYXRlQ2hpbGRyZW5Gb3JN
b2RpZmllcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJv
dG90eXBlLmdldCBub2RlKTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCBjYWxsaW5nQ29udGV4
dFRyZWVOb2RlIHRvIGJlIGxlc3MgYW1iaWd1b3VzLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBy
b2ZpbGVEYXRhR3JpZFRyZWUucHJvdG90eXBlLl91cGRhdGVDdXJyZW50Rm9jdXNEZXRhaWxzKToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUHJvZmlsZVZpZXcucHJvdG90eXBlLmdldCBkYXRhR3JpZCk6CisgICAg
ICAgIEV4cG9zZSBkYXRhIGdyaWQgZm9yIHVzZSBpbiBwYXJlbnQgdmlldy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0Q2x1c3RlclRpbWVsaW5lVmlldy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRDbHVzdGVyVGltZWxpbmVWaWV3LnByb3RvdHlwZS5zZWxl
Y3RSZWNvcmQpOgorICAgICAgICBEcml2ZS1ieSBmaXg6IGZvcndhcmQgcHJvcGVydHkgdG8gY3Vy
cmVudCBjaGlsZCBUaW1lbGluZVZpZXcuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1NjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0UHJvZmlsZVRpbWVsaW5lVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0UHJv
ZmlsZVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Njb3BlQmFyU2VsZWN0aW9uRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb3RvdHlw
ZS5fc2hvd1Byb2ZpbGVWaWV3Rm9yT3JpZW50YXRpb24pOgorICAgICAgICBIZWxwZXIgZnVuY3Rp
b24gdG8gc3dpdGNoIHByb2ZpbGUgdmlld3MuIFBlcnNpc3QgZmlsdGVyIHRleHQgd2hlbgorICAg
ICAgICBzd2l0Y2hpbmcgdG8gdGhlIG5ldyBwcm9maWxlIHZpZXcuCisKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb3RvdHlwZS5nZXQgc2hvd3NGaWx0
ZXJCYXIpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgRklYTUUgYW5kIHNob3cgZmlsdGVyIGJh
ci4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldy5wcm90b3R5cGUuc2V0dXBEYXRhR3JpZCk6
CisgICAgICAgIFN1cHBvcnQgc3dpdGNoaW5nIHRvIGEgbmV3IGRhdGEgZ3JpZC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcucHJvdG90eXBlLmRhdGFHcmlkTWF0Y2hOb2RlQWdh
aW5zdEN1c3RvbUZpbHRlcnMpOgorICAgICAgICBIb29raW5nIHVwIGZpbHRlcmluZyBjYXVzZXMg
ZGF0YSBncmlkIG5vZGVzIHRvIGJlIGZpbHRlcmVkIGJhc2VkIG9uIHRoZQorICAgICAgICBydWxl
ciBzZWxlY3Rpb24uIEFsdGhvdWdoIFNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgcGVyZm9ybXMg
aXRzIG93bgorICAgICAgICB0aW1lLWJhc2VkIGZpbHRlcmluZywgdGhpcyBpcyBuZWNlc3Nhcnkg
dG8gcHJldmVudCBhbiBhc3NlcnQuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVZp
ZXcucHJvdG90eXBlLl90aW1lbGluZURhdGFHcmlkU2VsZWN0ZWROb2RlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3LnByb3RvdHlwZS5fdGltZWxpbmVEYXRhR3Jp
ZE5vZGVXYXNGaWx0ZXJlZCk6CisgICAgICAgIENvbnZlcnRlZCBhcnJvdyBmdW5jdGlvbnMgdG8g
bWVtYmVyIGZ1bmN0aW9ucyB0byBhbGxvdyB1bnJlZ2lzdGVyaW5nCisgICAgICAgIGV2ZW50IGxp
c3RlbmVycyBvbiBvdXRnb2luZyBkYXRhIGdyaWQgd2hlbiBzd2FwcGluZyBncmlkcy4KKwogMjAx
Ni0wNS0xMiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogUmVtb3ZlICJFeHRyYSBTY3JpcHRzIiBmb2xkZXIgZnJvbSBSZXNvdXJjZXMg
c2lkZWJhciBpZiBhbGwgY2hpbGRyZW4gcmVtb3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwppbmRleCA0MjA1NDkyZGYz
YWExOGIxYmE5NDBmMWE0Yzg0ZDkwM2I4MThlYTc1Li5jYTRiOTYxNTdiMjJkMTZlYzcyMTJmMDc4
ZTFiZjQzYTAwZGZiYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwpAQCAtMjc4LDYgKzI3OCw4IEBAIFdlYkluc3Bl
Y3Rvci5EYXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcK
ICAgICAgICAgdGhpcy5fdXBkYXRlU2Nyb2xsTGlzdGVuZXJzKCk7CiAgICAgfQogCisgICAgZ2V0
IGZpbHRlclRleHQoKSB7IHJldHVybiB0aGlzLl9maWx0ZXJUZXh0OyB9CisKICAgICBzZXQgZmls
dGVyVGV4dCh4KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2ZpbHRlclRleHQgPT09IHgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9m
aWxlRGF0YUdyaWROb2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUHJvZmlsZURhdGFHcmlkTm9kZS5qcwppbmRleCBmODM5MzMyYjQ0MTc5MDdlZTdkMzdm
YzlmYTVlY2JlM2ZmYTkzZDAyLi4yNWYxNjFmMmEwZWZkMDM1ZDdhMmNlZmIxYzY1OGM5NDNkOGFh
ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Qcm9maWxlRGF0YUdyaWROb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVEYXRhR3JpZE5vZGUuanMKQEAgLTQ2LDcgKzQ2LDcgQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUgPSBjbGFzcyBQcm9maWxlRGF0YUdyaWRO
b2RlIGV4dGVuZHMgV2ViSW5zcGVjdG8KIAogICAgIC8vIFB1YmxpYwogCi0gICAgZ2V0IG5vZGUo
KSB7IHJldHVybiB0aGlzLl9ub2RlOyB9CisgICAgZ2V0IGNhbGxpbmdDb250ZXh0VHJlZU5vZGUo
KSB7IHJldHVybiB0aGlzLl9ub2RlOyB9CiAKICAgICBkaXNwbGF5TmFtZSgpCiAgICAgewpAQCAt
MTI0LDYgKzEyNCwyMSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZSA9IGNsYXNz
IFByb2ZpbGVEYXRhR3JpZE5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKICAgICB9CiAKKyAgICAvLyBQcm90ZWN0ZWQKKworICAg
IGZpbHRlcmFibGVEYXRhRm9yQ29sdW1uKGNvbHVtbklkZW50aWZpZXIpCisgICAgeworICAgICAg
ICBpZiAoY29sdW1uSWRlbnRpZmllciA9PT0gImZ1bmN0aW9uIikgeworICAgICAgICAgICAgbGV0
IGZpbHRlcmFibGVEYXRhID0gW3RoaXMuZGlzcGxheU5hbWUoKV07CisgICAgICAgICAgICBsZXQg
c2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zY3JpcHRGb3JJZGVudGlmaWVy
KHRoaXMuX25vZGUuc291cmNlSUQpOworICAgICAgICAgICAgaWYgKHNjcmlwdCAmJiBzY3JpcHQu
dXJsICYmIHRoaXMuX25vZGUubGluZSA+PSAwICYmIHRoaXMuX25vZGUuY29sdW1uID49IDApCisg
ICAgICAgICAgICAgICAgZmlsdGVyYWJsZURhdGEucHVzaChzY3JpcHQudXJsKTsKKyAgICAgICAg
ICAgIHJldHVybiBmaWx0ZXJhYmxlRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBz
dXBlci5maWx0ZXJhYmxlRGF0YUZvckNvbHVtbihjb2x1bW5JZGVudGlmaWVyKTsKKyAgICB9CisK
ICAgICAvLyBQcml2YXRlCiAKICAgICBfdXBkYXRlQ2hpbGRyZW5Gb3JNb2RpZmllcnMoKQpAQCAt
MTc0LDcgKzE4OSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlID0gY2xhc3Mg
UHJvZmlsZURhdGFHcmlkTm9kZSBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAgICAgIC8vIFJlbW92
ZSBjaGlsZCBkYXRhIGdyaWQgbm9kZXMgdGhhdCBoYXZlIGJlZW4gY2hhcmdlZCB0byB1cy4KICAg
ICAgICAgaWYgKCF0aGlzLnNob3VsZFJlZnJlc2hDaGlsZHJlbiAmJiB0aGlzLl9jaGlsZHJlblRv
Q2hhcmdlVG9TZWxmLnNpemUpIHsKICAgICAgICAgICAgIGZvciAobGV0IGNoaWxkRGF0YUdyaWRO
b2RlIG9mIHRoaXMuY2hpbGRyZW4pIHsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2hpbGRy
ZW5Ub0NoYXJnZVRvU2VsZi5oYXMoY2hpbGREYXRhR3JpZE5vZGUubm9kZSkpCisgICAgICAgICAg
ICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuVG9DaGFyZ2VUb1NlbGYuaGFzKGNoaWxkRGF0YUdyaWRO
b2RlLmNhbGxpbmdDb250ZXh0VHJlZU5vZGUpKQogICAgICAgICAgICAgICAgICAgICB0aGlzLnJl
bW92ZUNoaWxkKGNoaWxkRGF0YUdyaWROb2RlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJv
ZmlsZURhdGFHcmlkVHJlZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Byb2ZpbGVEYXRhR3JpZFRyZWUuanMKaW5kZXggMDBiYzBjMjkxNDVjMTM2YmQ5M2U2
Njc2ZGYwODIwZDJmYzE0MmEwOS4uZGNmZDJjOWFmMGY0NjMwZWViM2ZkODk0MDkyZDc4MjZhNjE2
MGU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUHJvZmlsZURhdGFHcmlkVHJlZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCkBAIC0yMzksNyArMjM5LDcg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUgPSBjbGFzcyBQcm9maWxlRGF0YUdy
aWRUcmVlIGV4dGVuZHMgV2ViSW5zcGVjdG8KIAogICAgIF91cGRhdGVDdXJyZW50Rm9jdXNEZXRh
aWxzKGZvY3VzRGF0YUdyaWROb2RlKQogICAgIHsKLSAgICAgICAgbGV0IGNjdE5vZGUgPSBmb2N1
c0RhdGFHcmlkTm9kZS5ub2RlOworICAgICAgICBsZXQgY2N0Tm9kZSA9IGZvY3VzRGF0YUdyaWRO
b2RlLmNhbGxpbmdDb250ZXh0VHJlZU5vZGU7CiAgICAgICAgIGxldCB7dGltZXN0YW1wcywgZHVy
YXRpb259ID0gY2N0Tm9kZS5maWx0ZXJlZFRpbWVzdGFtcHNBbmREdXJhdGlvbih0aGlzLl9zdGFy
dFRpbWUsIHRoaXMuX2VuZFRpbWUpOwogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c1N0YXJ0
VGltZSA9IHRpbWVzdGFtcHNbMF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmpzCmluZGV4IGY0MDg5M2I5MzJiNTEz
NjkwM2E2MDljMjdmY2Q0YjllYTExMmU1Y2QuLjY0YmI3ZTMwN2VkZTZkYTUwZjlmM2M3YzUxNGY5
NGJjMjU4ODgzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmpzCkBAIC03Niw2ICs3Niw3IEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlVmlldyA9IGNsYXNzIFByb2ZpbGVWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9y
LkNvbnRlbnRWaWV3CiAgICAgZ2V0IGNhbGxpbmdDb250ZXh0VHJlZSgpIHsgcmV0dXJuIHRoaXMu
X2NhbGxpbmdDb250ZXh0VHJlZTsgfQogICAgIGdldCBzdGFydFRpbWUoKSB7IHJldHVybiB0aGlz
Ll9zdGFydFRpbWU7IH0KICAgICBnZXQgZW5kVGltZSgpIHsgcmV0dXJuIHRoaXMuX2VuZFRpbWU7
IH0KKyAgICBnZXQgZGF0YUdyaWQoKSB7IHJldHVybiB0aGlzLl9kYXRhR3JpZDsgfQogCiAgICAg
c2V0U3RhcnRBbmRFbmRUaW1lKHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRDbHVzdGVy
VGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU2NyaXB0Q2x1c3RlclRpbWVsaW5lVmlldy5qcwppbmRleCBjY2UxYTQ5ZjFmMTU4Mjk4OWI4
M2EwNDY4ZDM0OGZlOTA1MmRlZGVjLi40Y2Y2NzEyMDFlMTRhYWE4ZTQ1ZDA5Y2YxODhhYWJjNGVm
Y2Q0OTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TY3JpcHRDbHVzdGVyVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdENsdXN0ZXJUaW1lbGluZVZpZXcuanMKQEAg
LTcxLDYgKzcxLDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdENsdXN0ZXJUaW1lbGluZVZpZXcgPSBj
bGFzcyBTY3JpcHRDbHVzdGVyVGltZWxpbmVWaWV3IGV4dGVuZHMKICAgICBzZXQgZW5kVGltZSh4
KSB7IHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy5lbmRUaW1l
ID0geDsgfQogICAgIGdldCBjdXJyZW50VGltZSgpIHsgcmV0dXJuIHRoaXMuX2NvbnRlbnRWaWV3
Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy5jdXJyZW50VGltZTsgfQogICAgIHNldCBjdXJy
ZW50VGltZSh4KSB7IHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmll
dy5jdXJyZW50VGltZSA9IHg7IH0KKworICAgIHNlbGVjdFJlY29yZChyZWNvcmQpIHsgX2NvbnRl
bnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy5zZWxlY3RSZWNvcmQocmVjb3JkKTsg
fQogICAgIHVwZGF0ZUZpbHRlcihmaWx0ZXJzKSB7IHJldHVybiB0aGlzLl9jb250ZW50Vmlld0Nv
bnRhaW5lci5jdXJyZW50Q29udGVudFZpZXcudXBkYXRlRmlsdGVyKGZpbHRlcnMpOyB9CiAgICAg
ZmlsdGVyRGlkQ2hhbmdlKCkgeyByZXR1cm4gdGhpcy5fY29udGVudFZpZXdDb250YWluZXIuY3Vy
cmVudENvbnRlbnRWaWV3LmZpbHRlckRpZENoYW5nZSgpOyB9CiAgICAgbWF0Y2hEYXRhR3JpZE5v
ZGVBZ2FpbnN0Q3VzdG9tRmlsdGVycyhub2RlKSB7IHJldHVybiB0aGlzLl9jb250ZW50Vmlld0Nv
bnRhaW5lci5jdXJyZW50Q29udGVudFZpZXcubWF0Y2hEYXRhR3JpZE5vZGVBZ2FpbnN0Q3VzdG9t
RmlsdGVycyhub2RlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcu
anMKaW5kZXggMTU0MDUxMGYzOGExYmI0ZTQyMmRhODBjNDE3MDU0YjE5NDU3ZDU4Yi4uNmQ1OWU5
NDM2YzgxZTk4YTFiY2I4NDk5MTk5NWMzODkyMDlhYjI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmll
dy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3Jp
cHRQcm9maWxlVGltZWxpbmVWaWV3LmpzCkBAIC00MiwxMCArNDIsNyBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldyA9IGNsYXNzIFNjcmlwdFByb2ZpbGVUaW1lbGluZVZp
ZXcgZXh0ZW5kcwogICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxp
bmVWaWV3LnByb2ZpbGVPcmllbnRhdGlvblNldHRpbmcpCiAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldy5wcm9maWxlT3JpZW50YXRpb25TZXR0aW5nID0g
bmV3IFdlYkluc3BlY3Rvci5TZXR0aW5nKCJzY3JpcHQtcHJvZmlsZS10aW1lbGluZS12aWV3LXBy
b2ZpbGUtb3JpZW50YXRpb24tc2V0dGluZyIsIFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGlt
ZWxpbmVWaWV3LlByb2ZpbGVPcmllbnRhdGlvbi5Ub3BEb3duKTsKIAotICAgICAgICBsZXQgY2Fs
bGluZ0NvbnRleHRUcmVlID0gdGhpcy5fY2FsbGluZ0NvbnRleHRUcmVlRm9yT3JpZW50YXRpb24o
V2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcucHJvZmlsZU9yaWVudGF0aW9u
U2V0dGluZy52YWx1ZSk7Ci0gICAgICAgIHRoaXMuX3Byb2ZpbGVWaWV3ID0gbmV3IFdlYkluc3Bl
Y3Rvci5Qcm9maWxlVmlldyhjYWxsaW5nQ29udGV4dFRyZWUpOwotICAgICAgICB0aGlzLl9wcm9m
aWxlVmlldy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5T
ZWxlY3Rpb25QYXRoQ29tcG9uZW50c0RpZENoYW5nZSwgdGhpcy5fcHJvZmlsZVZpZXdTZWxlY3Rp
b25QYXRoQ29tcG9uZW50c0RpZENoYW5nZSwgdGhpcyk7Ci0gICAgICAgIHRoaXMuYWRkU3Vidmll
dyh0aGlzLl9wcm9maWxlVmlldyk7CisgICAgICAgIHRoaXMuX3Nob3dQcm9maWxlVmlld0Zvck9y
aWVudGF0aW9uKFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb2ZpbGVP
cmllbnRhdGlvblNldHRpbmcudmFsdWUpOwogCiAgICAgICAgIGxldCBzY29wZUJhckl0ZW1zID0g
WwogICAgICAgICAgICAgbmV3IFdlYkluc3BlY3Rvci5TY29wZUJhckl0ZW0oV2ViSW5zcGVjdG9y
LlNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcuUHJvZmlsZU9yaWVudGF0aW9uLlRvcERvd24sIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiVG9wIERvd24iKSwgdHJ1ZSksCkBAIC02MSwxNyArNTgsMTIg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgPSBjbGFzcyBTY3JpcHRQ
cm9maWxlVGltZWxpbmVWaWV3IGV4dGVuZHMKICAgICAgICAgdGhpcy5fdXBkYXRlQ2xlYXJGb2N1
c05vZGVzQnV0dG9uSXRlbSgpOwogCiAgICAgICAgIHRpbWVsaW5lLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lLkV2ZW50LlJlZnJlc2hlZCwgdGhpcy5fc2NyaXB0VGltZWxp
bmVSZWNvcmRSZWZyZXNoZWQsIHRoaXMpOwotCi0gICAgICAgIC8vIEZJWE1FOiBTdXBwb3J0IGZp
bHRlcmluZyB0aGUgUHJvZmlsZVZpZXcuCiAgICAgfQogCiAgICAgLy8gUHVibGljCiAKICAgICBn
ZXQgc2hvd3NMaXZlUmVjb3JkaW5nRGF0YSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICAvLyBG
SVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1NzU4MT4gV2ViIEluc3BlY3RvcjogU2NyaXB0
IFByb2ZpbGVWaWV3cyBzaG91bGQgYmUgc2VhcmNoYWJsZQotICAgIGdldCBzaG93c0ZpbHRlckJh
cigpIHsgcmV0dXJuIGZhbHNlOyB9Ci0KICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGNsb3NlZCgp
CkBAIC0xMzAsMjIgKzEyMiwzNCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZVRpbWVsaW5l
VmlldyA9IGNsYXNzIFNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgZXh0ZW5kcwogICAgIHsKICAg
ICAgICAgbGV0IGN1cnJlbnRPcmllbnRhdGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxl
VGltZWxpbmVWaWV3LnByb2ZpbGVPcmllbnRhdGlvblNldHRpbmcudmFsdWU7CiAgICAgICAgIGxl
dCBuZXdPcmllbnRhdGlvbiA9IHRoaXMuX3Byb2ZpbGVPcmllbnRhdGlvblNjb3BlQmFyLnNlbGVj
dGVkSXRlbXNbMF0uaWQ7Ci0gICAgICAgIGxldCBjYWxsaW5nQ29udGV4dFRyZWUgPSB0aGlzLl9j
YWxsaW5nQ29udGV4dFRyZWVGb3JPcmllbnRhdGlvbihuZXdPcmllbnRhdGlvbik7CiAKICAgICAg
ICAgV2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcucHJvZmlsZU9yaWVudGF0
aW9uU2V0dGluZy52YWx1ZSA9IG5ld09yaWVudGF0aW9uOworICAgICAgICB0aGlzLl9zaG93UHJv
ZmlsZVZpZXdGb3JPcmllbnRhdGlvbihuZXdPcmllbnRhdGlvbik7CiAKLSAgICAgICAgdGhpcy5y
ZW1vdmVTdWJ2aWV3KHRoaXMuX3Byb2ZpbGVWaWV3KTsKLSAgICAgICAgdGhpcy5fcHJvZmlsZVZp
ZXcucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2Vs
ZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFuZ2UsIHRoaXMuX3Byb2ZpbGVWaWV3U2VsZWN0aW9u
UGF0aENvbXBvbmVudHNEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0
aENvbXBvbmVudHNEaWRDaGFuZ2UpOwogCi0gICAgICAgIHRoaXMuX3Byb2ZpbGVWaWV3ID0gbmV3
IFdlYkluc3BlY3Rvci5Qcm9maWxlVmlldyhjYWxsaW5nQ29udGV4dFRyZWUpOworICAgICAgICB0
aGlzLl9mb3JjZU5leHRMYXlvdXQgPSB0cnVlOworICAgICAgICB0aGlzLm5lZWRzTGF5b3V0KCk7
CisgICAgfQogCisgICAgX3Nob3dQcm9maWxlVmlld0Zvck9yaWVudGF0aW9uKG9yaWVudGF0aW9u
KQorICAgIHsKKyAgICAgICAgbGV0IGZpbHRlclRleHQ7CisgICAgICAgIGlmICh0aGlzLl9wcm9m
aWxlVmlldykgeworICAgICAgICAgICAgdGhpcy5fcHJvZmlsZVZpZXcucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVu
dHNEaWRDaGFuZ2UsIHRoaXMuX3Byb2ZpbGVWaWV3U2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRD
aGFuZ2UsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5yZW1vdmVTdWJ2aWV3KHRoaXMuX3Byb2Zp
bGVWaWV3KTsKKyAgICAgICAgICAgIGZpbHRlclRleHQgPSB0aGlzLl9wcm9maWxlVmlldy5kYXRh
R3JpZC5maWx0ZXJUZXh0OworICAgICAgICB9CisKKyAgICAgICAgbGV0IGNhbGxpbmdDb250ZXh0
VHJlZSA9IHRoaXMuX2NhbGxpbmdDb250ZXh0VHJlZUZvck9yaWVudGF0aW9uKG9yaWVudGF0aW9u
KTsKKyAgICAgICAgdGhpcy5fcHJvZmlsZVZpZXcgPSBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVW
aWV3KGNhbGxpbmdDb250ZXh0VHJlZSk7CiAgICAgICAgIHRoaXMuX3Byb2ZpbGVWaWV3LmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGlvblBhdGhD
b21wb25lbnRzRGlkQ2hhbmdlLCB0aGlzLl9wcm9maWxlVmlld1NlbGVjdGlvblBhdGhDb21wb25l
bnRzRGlkQ2hhbmdlLCB0aGlzKTsKLSAgICAgICAgdGhpcy5hZGRTdWJ2aWV3KHRoaXMuX3Byb2Zp
bGVWaWV3KTsKIAotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNw
ZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFuZ2Up
OworICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5fcHJvZmlsZVZpZXcpOworICAgICAgICB0
aGlzLnNldHVwRGF0YUdyaWQodGhpcy5fcHJvZmlsZVZpZXcuZGF0YUdyaWQpOwogCi0gICAgICAg
IHRoaXMuX2ZvcmNlTmV4dExheW91dCA9IHRydWU7Ci0gICAgICAgIHRoaXMubmVlZHNMYXlvdXQo
KTsKKyAgICAgICAgaWYgKGZpbHRlclRleHQpCisgICAgICAgICAgICB0aGlzLl9wcm9maWxlVmll
dy5kYXRhR3JpZC5maWx0ZXJUZXh0ID0gZmlsdGVyVGV4dDsKICAgICB9CiAKICAgICBfdXBkYXRl
Q2xlYXJGb2N1c05vZGVzQnV0dG9uSXRlbSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVZpZXcuanMKaW5kZXggNjI4Yzc0
M2NhNmY4Y2ZjMDY1ZWUyZjdkN2NhMTc1YTUxZjlmMzAyMS4uNTZkYzcwMTQ1ODc2ZjZkYjkzMTIz
ZTZkN2Y2N2MyNDVmZWNkNjc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVmlldy5qcwpAQCAtMTU4LDI1ICsxNTgs
MTggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldyA9IGNsYXNzIFRpbWVsaW5lVmlldyBleHRl
bmRzIFdlYkluc3BlY3Rvci5Db250ZW50VmlldwogCiAgICAgc2V0dXBEYXRhR3JpZChkYXRhR3Jp
ZCkKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl90aW1lbGluZURhdGFHcmlk
KTsKKyAgICAgICAgaWYgKHRoaXMuX3RpbWVsaW5lRGF0YUdyaWQpIHsKKyAgICAgICAgICAgIHRo
aXMuX3RpbWVsaW5lRGF0YUdyaWQuZmlsdGVyRGVsZWdhdGUgPSBudWxsOworICAgICAgICAgICAg
dGhpcy5fdGltZWxpbmVEYXRhR3JpZC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
YXRhR3JpZC5FdmVudC5TZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzLl90aW1lbGluZURhdGFHcmlk
U2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLl90aW1lbGluZURh
dGFHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50Lk5v
ZGVXYXNGaWx0ZXJlZCwgdGhpcy5fdGltZWxpbmVEYXRhR3JpZE5vZGVXYXNGaWx0ZXJlZCwgdGhp
cyk7CisgICAgICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LkZpbHRlckRpZENoYW5nZSwgdGhpcy5maWx0
ZXJEaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fdGltZWxpbmVE
YXRhR3JpZCA9IGRhdGFHcmlkOwogICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmZpbHRl
ckRlbGVnYXRlID0gdGhpczsKLSAgICAgICAgdGhpcy5fdGltZWxpbmVEYXRhR3JpZC5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5TZWxlY3RlZE5vZGVDaGFuZ2Vk
LCAoKSA9PiB7Ci0gICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9uUGF0aENvbXBvbmVudHNEaWRDaGFu
Z2UpOwotICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50Lk5vZGVXYXNGaWx0ZXJlZCwg
KGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICBsZXQgbm9kZSA9IGV2ZW50LmRhdGEubm9kZTsKLSAg
ICAgICAgICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuVGltZWxpbmVEYXRh
R3JpZE5vZGUpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldy5FdmVudC5S
ZWNvcmRXYXNGaWx0ZXJlZCwge3JlY29yZDogbm9kZS5yZWNvcmQsIGZpbHRlcmVkOiBub2RlLmhp
ZGRlbn0pOwotICAgICAgICB9KTsKLQotICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LkZpbHRlckRpZENoYW5n
ZSwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICB0aGlzLmZpbHRlckRpZENoYW5nZSgpOwotICAg
ICAgICB9KTsKKyAgICAgICAgdGhpcy5fdGltZWxpbmVEYXRhR3JpZC5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5TZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzLl90
aW1lbGluZURhdGFHcmlkU2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMu
X3RpbWVsaW5lRGF0YUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQu
RXZlbnQuTm9kZVdhc0ZpbHRlcmVkLCB0aGlzLl90aW1lbGluZURhdGFHcmlkTm9kZVdhc0ZpbHRl
cmVkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fdGltZWxpbmVEYXRhR3JpZC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5GaWx0ZXJEaWRDaGFuZ2UsIHRoaXMuZmls
dGVyRGlkQ2hhbmdlLCB0aGlzKTsKICAgICB9CiAKICAgICBzZWxlY3RSZWNvcmQocmVjb3JkKQpA
QCAtMjg0LDYgKzI3Nyw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcgPSBjbGFzcyBUaW1l
bGluZVZpZXcgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcKICAgICAgICAgICAgIHJl
dHVybiBjaGVja1RpbWVCb3VuZHMocmVjb3JkLnN0YXJ0VGltZSwgcmVjb3JkLmVuZFRpbWUpOwog
ICAgICAgICB9CiAKKyAgICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUHJv
ZmlsZURhdGFHcmlkTm9kZSkKKyAgICAgICAgICAgIHJldHVybiBub2RlLmNhbGxpbmdDb250ZXh0
VHJlZU5vZGUuaGFzU3RhY2tUcmFjZUluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSk7CisK
ICAgICAgICAgY29uc29sZS5lcnJvcigiVW5rbm93biBEYXRhR3JpZE5vZGUsIGNhbid0IGZpbHRl
ciBieSB0aW1lLiIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0zMDIsNiArMjk4
LDIwIEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcgPSBjbGFzcyBUaW1lbGluZVZpZXcgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcKIAogICAgIC8vIFByaXZhdGUKIAorICAgIF90
aW1lbGluZURhdGFHcmlkU2VsZWN0ZWROb2RlQ2hhbmdlZChldmVudCkKKyAgICB7CisgICAgICAg
IHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5F
dmVudC5TZWxlY3Rpb25QYXRoQ29tcG9uZW50c0RpZENoYW5nZSk7CisgICAgfQorCisgICAgX3Rp
bWVsaW5lRGF0YUdyaWROb2RlV2FzRmlsdGVyZWQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQg
bm9kZSA9IGV2ZW50LmRhdGEubm9kZTsKKyAgICAgICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5UaW1lbGluZURhdGFHcmlkTm9kZSkpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVs
aW5lVmlldy5FdmVudC5SZWNvcmRXYXNGaWx0ZXJlZCwge3JlY29yZDogbm9kZS5yZWNvcmQsIGZp
bHRlcmVkOiBub2RlLmhpZGRlbn0pOworICAgIH0KKwogICAgIF90aW1lc0RpZENoYW5nZSgpCiAg
ICAgewogICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuaXNDYXB0dXJp
bmcoKSB8fCB0aGlzLnNob3dzTGl2ZVJlY29yZGluZ0RhdGEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278822</attachid>
            <date>2016-05-13 00:19:42 -0700</date>
            <delta_ts>2016-05-13 12:00:43 -0700</delta_ts>
            <desc>[Patch] Proposed Fix</desc>
            <filename>bug-157581-20160513002033.patch</filename>
            <type>text/plain</type>
            <size>16458</size>
            <attacher name="Matt Baker">mattbaker</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBk
YmIxYmE3OWZjOGZjOGZkYTljYzgxMDRlYWJkMGZkYmRmMDQ5ZTI4Li4zMGUwZTU0YTM5MzE0MWQ2
MWI4NjA1NjNiZDA0MWNmMjUyMzY5YTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxNi0wNS0xMyAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2NyaXB0IFByb2ZpbGVWaWV3cyBzaG91bGQgYmUg
c2VhcmNoYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU3NTgxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yNjIyODUzMD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvRGF0YUdyaWQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBl
LmdldCBmaWx0ZXJUZXh0KToKKyAgICAgICAgTWFrZSBmaWx0ZXJUZXh0IHJlYWRhYmxlLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWROb2RlLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJvdG90eXBlLmdldCBjYWxs
aW5nQ29udGV4dFRyZWVOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdy
aWROb2RlLnByb3RvdHlwZS5maWx0ZXJhYmxlRGF0YUZvckNvbHVtbik6CisgICAgICAgIEFkZCBm
aWx0ZXJhYmxlIGRhdGEgZm9yIHRoZSAiZnVuY3Rpb24iIGNvbHVtbi4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlLnByb3RvdHlwZS5fdXBkYXRlQ2hpbGRyZW5Gb3JN
b2RpZmllcnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUucHJv
dG90eXBlLmdldCBub2RlKTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCBjYWxsaW5nQ29udGV4
dFRyZWVOb2RlIHRvIGJlIGxlc3MgYW1iaWd1b3VzLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBy
b2ZpbGVEYXRhR3JpZFRyZWUucHJvdG90eXBlLl91cGRhdGVDdXJyZW50Rm9jdXNEZXRhaWxzKToK
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuUHJvZmlsZVZpZXcucHJvdG90eXBlLmdldCBkYXRhR3JpZCk6CisgICAg
ICAgIEV4cG9zZSBkYXRhIGdyaWQgZm9yIHVzZSBpbiBwYXJlbnQgdmlldy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0Q2x1c3RlclRpbWVsaW5lVmlldy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRDbHVzdGVyVGltZWxpbmVWaWV3LnByb3RvdHlwZS5zZWxl
Y3RSZWNvcmQpOgorICAgICAgICBEcml2ZS1ieSBmaXg6IGZvcndhcmQgcHJvcGVydHkgdG8gY3Vy
cmVudCBjaGlsZCBUaW1lbGluZVZpZXcuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L1NjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0UHJvZmlsZVRpbWVsaW5lVmlldyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0UHJv
ZmlsZVRpbWVsaW5lVmlldy5wcm90b3R5cGUuX3Njb3BlQmFyU2VsZWN0aW9uRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb3RvdHlw
ZS5fc2hvd1Byb2ZpbGVWaWV3Rm9yT3JpZW50YXRpb24pOgorICAgICAgICBIZWxwZXIgZnVuY3Rp
b24gdG8gc3dpdGNoIHByb2ZpbGUgdmlld3MuIFBlcnNpc3QgZmlsdGVyIHRleHQgd2hlbgorICAg
ICAgICBzd2l0Y2hpbmcgdG8gdGhlIG5ldyBwcm9maWxlIHZpZXcuCisKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb3RvdHlwZS5nZXQgc2hvd3NGaWx0
ZXJCYXIpOiBEZWxldGVkLgorICAgICAgICBSZW1vdmUgRklYTUUgYW5kIHNob3cgZmlsdGVyIGJh
ci4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldy5wcm90b3R5cGUuc2V0dXBEYXRhR3JpZCk6
CisgICAgICAgIFN1cHBvcnQgc3dpdGNoaW5nIHRvIGEgbmV3IGRhdGEgZ3JpZC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVZpZXcucHJvdG90eXBlLmRhdGFHcmlkTWF0Y2hOb2RlQWdh
aW5zdEN1c3RvbUZpbHRlcnMpOgorICAgICAgICBIb29raW5nIHVwIGZpbHRlcmluZyBjYXVzZXMg
ZGF0YSBncmlkIG5vZGVzIHRvIGJlIGZpbHRlcmVkIGJhc2VkIG9uIHRoZQorICAgICAgICBydWxl
ciBzZWxlY3Rpb24uIEFsdGhvdWdoIFNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgcGVyZm9ybXMg
aXRzIG93bgorICAgICAgICB0aW1lLWJhc2VkIGZpbHRlcmluZywgdGhpcyBpcyBuZWNlc3Nhcnkg
dG8gcHJldmVudCBhbiBhc3NlcnQuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVZp
ZXcucHJvdG90eXBlLl90aW1lbGluZURhdGFHcmlkU2VsZWN0ZWROb2RlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3LnByb3RvdHlwZS5fdGltZWxpbmVEYXRhR3Jp
ZE5vZGVXYXNGaWx0ZXJlZCk6CisgICAgICAgIENvbnZlcnRlZCBhcnJvdyBmdW5jdGlvbnMgdG8g
bWVtYmVyIGZ1bmN0aW9ucyB0byBhbGxvdyB1bnJlZ2lzdGVyaW5nCisgICAgICAgIGV2ZW50IGxp
c3RlbmVycyBvbiBvdXRnb2luZyBkYXRhIGdyaWQgd2hlbiBzd2FwcGluZyBncmlkcy4KKwogMjAx
Ni0wNS0xMiAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogUmVtb3ZlICJFeHRyYSBTY3JpcHRzIiBmb2xkZXIgZnJvbSBSZXNvdXJjZXMg
c2lkZWJhciBpZiBhbGwgY2hpbGRyZW4gcmVtb3ZlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwppbmRleCA0MjA1NDkyZGYz
YWExOGIxYmE5NDBmMWE0Yzg0ZDkwM2I4MThlYTc1Li5jYTRiOTYxNTdiMjJkMTZlYzcyMTJmMDc4
ZTFiZjQzYTAwZGZiYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwpAQCAtMjc4LDYgKzI3OCw4IEBAIFdlYkluc3Bl
Y3Rvci5EYXRhR3JpZCA9IGNsYXNzIERhdGFHcmlkIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlZpZXcK
ICAgICAgICAgdGhpcy5fdXBkYXRlU2Nyb2xsTGlzdGVuZXJzKCk7CiAgICAgfQogCisgICAgZ2V0
IGZpbHRlclRleHQoKSB7IHJldHVybiB0aGlzLl9maWx0ZXJUZXh0OyB9CisKICAgICBzZXQgZmls
dGVyVGV4dCh4KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX2ZpbHRlclRleHQgPT09IHgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9m
aWxlRGF0YUdyaWROb2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUHJvZmlsZURhdGFHcmlkTm9kZS5qcwppbmRleCBmODM5MzMyYjQ0MTc5MDdlZTdkMzdm
YzlmYTVlY2JlM2ZmYTkzZDAyLi4yNWYxNjFmMmEwZWZkMDM1ZDdhMmNlZmIxYzY1OGM5NDNkOGFh
ZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Qcm9maWxlRGF0YUdyaWROb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVEYXRhR3JpZE5vZGUuanMKQEAgLTQ2LDcgKzQ2LDcgQEAg
V2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUgPSBjbGFzcyBQcm9maWxlRGF0YUdyaWRO
b2RlIGV4dGVuZHMgV2ViSW5zcGVjdG8KIAogICAgIC8vIFB1YmxpYwogCi0gICAgZ2V0IG5vZGUo
KSB7IHJldHVybiB0aGlzLl9ub2RlOyB9CisgICAgZ2V0IGNhbGxpbmdDb250ZXh0VHJlZU5vZGUo
KSB7IHJldHVybiB0aGlzLl9ub2RlOyB9CiAKICAgICBkaXNwbGF5TmFtZSgpCiAgICAgewpAQCAt
MTI0LDYgKzEyNCwyMSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZSA9IGNsYXNz
IFByb2ZpbGVEYXRhR3JpZE5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKICAgICB9CiAKKyAgICAvLyBQcm90ZWN0ZWQKKworICAg
IGZpbHRlcmFibGVEYXRhRm9yQ29sdW1uKGNvbHVtbklkZW50aWZpZXIpCisgICAgeworICAgICAg
ICBpZiAoY29sdW1uSWRlbnRpZmllciA9PT0gImZ1bmN0aW9uIikgeworICAgICAgICAgICAgbGV0
IGZpbHRlcmFibGVEYXRhID0gW3RoaXMuZGlzcGxheU5hbWUoKV07CisgICAgICAgICAgICBsZXQg
c2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zY3JpcHRGb3JJZGVudGlmaWVy
KHRoaXMuX25vZGUuc291cmNlSUQpOworICAgICAgICAgICAgaWYgKHNjcmlwdCAmJiBzY3JpcHQu
dXJsICYmIHRoaXMuX25vZGUubGluZSA+PSAwICYmIHRoaXMuX25vZGUuY29sdW1uID49IDApCisg
ICAgICAgICAgICAgICAgZmlsdGVyYWJsZURhdGEucHVzaChzY3JpcHQudXJsKTsKKyAgICAgICAg
ICAgIHJldHVybiBmaWx0ZXJhYmxlRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBz
dXBlci5maWx0ZXJhYmxlRGF0YUZvckNvbHVtbihjb2x1bW5JZGVudGlmaWVyKTsKKyAgICB9CisK
ICAgICAvLyBQcml2YXRlCiAKICAgICBfdXBkYXRlQ2hpbGRyZW5Gb3JNb2RpZmllcnMoKQpAQCAt
MTc0LDcgKzE4OSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlID0gY2xhc3Mg
UHJvZmlsZURhdGFHcmlkTm9kZSBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAgICAgIC8vIFJlbW92
ZSBjaGlsZCBkYXRhIGdyaWQgbm9kZXMgdGhhdCBoYXZlIGJlZW4gY2hhcmdlZCB0byB1cy4KICAg
ICAgICAgaWYgKCF0aGlzLnNob3VsZFJlZnJlc2hDaGlsZHJlbiAmJiB0aGlzLl9jaGlsZHJlblRv
Q2hhcmdlVG9TZWxmLnNpemUpIHsKICAgICAgICAgICAgIGZvciAobGV0IGNoaWxkRGF0YUdyaWRO
b2RlIG9mIHRoaXMuY2hpbGRyZW4pIHsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5fY2hpbGRy
ZW5Ub0NoYXJnZVRvU2VsZi5oYXMoY2hpbGREYXRhR3JpZE5vZGUubm9kZSkpCisgICAgICAgICAg
ICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuVG9DaGFyZ2VUb1NlbGYuaGFzKGNoaWxkRGF0YUdyaWRO
b2RlLmNhbGxpbmdDb250ZXh0VHJlZU5vZGUpKQogICAgICAgICAgICAgICAgICAgICB0aGlzLnJl
bW92ZUNoaWxkKGNoaWxkRGF0YUdyaWROb2RlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJv
ZmlsZURhdGFHcmlkVHJlZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Byb2ZpbGVEYXRhR3JpZFRyZWUuanMKaW5kZXggMDBiYzBjMjkxNDVjMTM2YmQ5M2U2
Njc2ZGYwODIwZDJmYzE0MmEwOS4uZGNmZDJjOWFmMGY0NjMwZWViM2ZkODk0MDkyZDc4MjZhNjE2
MGU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUHJvZmlsZURhdGFHcmlkVHJlZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCkBAIC0yMzksNyArMjM5LDcg
QEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUgPSBjbGFzcyBQcm9maWxlRGF0YUdy
aWRUcmVlIGV4dGVuZHMgV2ViSW5zcGVjdG8KIAogICAgIF91cGRhdGVDdXJyZW50Rm9jdXNEZXRh
aWxzKGZvY3VzRGF0YUdyaWROb2RlKQogICAgIHsKLSAgICAgICAgbGV0IGNjdE5vZGUgPSBmb2N1
c0RhdGFHcmlkTm9kZS5ub2RlOworICAgICAgICBsZXQgY2N0Tm9kZSA9IGZvY3VzRGF0YUdyaWRO
b2RlLmNhbGxpbmdDb250ZXh0VHJlZU5vZGU7CiAgICAgICAgIGxldCB7dGltZXN0YW1wcywgZHVy
YXRpb259ID0gY2N0Tm9kZS5maWx0ZXJlZFRpbWVzdGFtcHNBbmREdXJhdGlvbih0aGlzLl9zdGFy
dFRpbWUsIHRoaXMuX2VuZFRpbWUpOwogCiAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c1N0YXJ0
VGltZSA9IHRpbWVzdGFtcHNbMF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmpzCmluZGV4IGY0MDg5M2I5MzJiNTEz
NjkwM2E2MDljMjdmY2Q0YjllYTExMmU1Y2QuLjY0YmI3ZTMwN2VkZTZkYTUwZjlmM2M3YzUxNGY5
NGJjMjU4ODgzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVWaWV3LmpzCkBAIC03Niw2ICs3Niw3IEBAIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlVmlldyA9IGNsYXNzIFByb2ZpbGVWaWV3IGV4dGVuZHMgV2ViSW5zcGVjdG9y
LkNvbnRlbnRWaWV3CiAgICAgZ2V0IGNhbGxpbmdDb250ZXh0VHJlZSgpIHsgcmV0dXJuIHRoaXMu
X2NhbGxpbmdDb250ZXh0VHJlZTsgfQogICAgIGdldCBzdGFydFRpbWUoKSB7IHJldHVybiB0aGlz
Ll9zdGFydFRpbWU7IH0KICAgICBnZXQgZW5kVGltZSgpIHsgcmV0dXJuIHRoaXMuX2VuZFRpbWU7
IH0KKyAgICBnZXQgZGF0YUdyaWQoKSB7IHJldHVybiB0aGlzLl9kYXRhR3JpZDsgfQogCiAgICAg
c2V0U3RhcnRBbmRFbmRUaW1lKHN0YXJ0VGltZSwgZW5kVGltZSkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRDbHVzdGVy
VGltZWxpbmVWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvU2NyaXB0Q2x1c3RlclRpbWVsaW5lVmlldy5qcwppbmRleCBjY2UxYTQ5ZjFmMTU4Mjk4OWI4
M2EwNDY4ZDM0OGZlOTA1MmRlZGVjLi5lZjJhZTMwYjQ2MTg0YzBiYzBiYWVmOGM5ZjYwYjM1ZTdl
OTlkYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9TY3JpcHRDbHVzdGVyVGltZWxpbmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdENsdXN0ZXJUaW1lbGluZVZpZXcuanMKQEAg
LTcxLDYgKzcxLDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdENsdXN0ZXJUaW1lbGluZVZpZXcgPSBj
bGFzcyBTY3JpcHRDbHVzdGVyVGltZWxpbmVWaWV3IGV4dGVuZHMKICAgICBzZXQgZW5kVGltZSh4
KSB7IHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy5lbmRUaW1l
ID0geDsgfQogICAgIGdldCBjdXJyZW50VGltZSgpIHsgcmV0dXJuIHRoaXMuX2NvbnRlbnRWaWV3
Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy5jdXJyZW50VGltZTsgfQogICAgIHNldCBjdXJy
ZW50VGltZSh4KSB7IHRoaXMuX2NvbnRlbnRWaWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmll
dy5jdXJyZW50VGltZSA9IHg7IH0KKworICAgIHNlbGVjdFJlY29yZChyZWNvcmQpIHsgdGhpcy5f
Y29udGVudFZpZXdDb250YWluZXIuY3VycmVudENvbnRlbnRWaWV3LnNlbGVjdFJlY29yZChyZWNv
cmQpOyB9CiAgICAgdXBkYXRlRmlsdGVyKGZpbHRlcnMpIHsgcmV0dXJuIHRoaXMuX2NvbnRlbnRW
aWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy51cGRhdGVGaWx0ZXIoZmlsdGVycyk7IH0K
ICAgICBmaWx0ZXJEaWRDaGFuZ2UoKSB7IHJldHVybiB0aGlzLl9jb250ZW50Vmlld0NvbnRhaW5l
ci5jdXJyZW50Q29udGVudFZpZXcuZmlsdGVyRGlkQ2hhbmdlKCk7IH0KICAgICBtYXRjaERhdGFH
cmlkTm9kZUFnYWluc3RDdXN0b21GaWx0ZXJzKG5vZGUpIHsgcmV0dXJuIHRoaXMuX2NvbnRlbnRW
aWV3Q29udGFpbmVyLmN1cnJlbnRDb250ZW50Vmlldy5tYXRjaERhdGFHcmlkTm9kZUFnYWluc3RD
dXN0b21GaWx0ZXJzKG5vZGUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0UHJvZmlsZVRpbWVsaW5l
Vmlldy5qcwppbmRleCAxNTQwNTEwZjM4YTFiYjRlNDIyZGE4MGM0MTcwNTRiMTk0NTdkNThiLi42
ZDU5ZTk0MzZjODFlOThhMWJjYjg0OTkxOTk1YzM4OTIwOWFiMjdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRQcm9maWxlVGltZWxp
bmVWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcuanMKQEAgLTQyLDEwICs0Miw3IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3ID0gY2xhc3MgU2NyaXB0UHJvZmlsZVRpbWVs
aW5lVmlldyBleHRlbmRzCiAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVU
aW1lbGluZVZpZXcucHJvZmlsZU9yaWVudGF0aW9uU2V0dGluZykKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5TY3JpcHRQcm9maWxlVGltZWxpbmVWaWV3LnByb2ZpbGVPcmllbnRhdGlvblNldHRp
bmcgPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRpbmcoInNjcmlwdC1wcm9maWxlLXRpbWVsaW5lLXZp
ZXctcHJvZmlsZS1vcmllbnRhdGlvbi1zZXR0aW5nIiwgV2ViSW5zcGVjdG9yLlNjcmlwdFByb2Zp
bGVUaW1lbGluZVZpZXcuUHJvZmlsZU9yaWVudGF0aW9uLlRvcERvd24pOwogCi0gICAgICAgIGxl
dCBjYWxsaW5nQ29udGV4dFRyZWUgPSB0aGlzLl9jYWxsaW5nQ29udGV4dFRyZWVGb3JPcmllbnRh
dGlvbihXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldy5wcm9maWxlT3JpZW50
YXRpb25TZXR0aW5nLnZhbHVlKTsKLSAgICAgICAgdGhpcy5fcHJvZmlsZVZpZXcgPSBuZXcgV2Vi
SW5zcGVjdG9yLlByb2ZpbGVWaWV3KGNhbGxpbmdDb250ZXh0VHJlZSk7Ci0gICAgICAgIHRoaXMu
X3Byb2ZpbGVWaWV3LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3LkV2
ZW50LlNlbGVjdGlvblBhdGhDb21wb25lbnRzRGlkQ2hhbmdlLCB0aGlzLl9wcm9maWxlVmlld1Nl
bGVjdGlvblBhdGhDb21wb25lbnRzRGlkQ2hhbmdlLCB0aGlzKTsKLSAgICAgICAgdGhpcy5hZGRT
dWJ2aWV3KHRoaXMuX3Byb2ZpbGVWaWV3KTsKKyAgICAgICAgdGhpcy5fc2hvd1Byb2ZpbGVWaWV3
Rm9yT3JpZW50YXRpb24oV2ViSW5zcGVjdG9yLlNjcmlwdFByb2ZpbGVUaW1lbGluZVZpZXcucHJv
ZmlsZU9yaWVudGF0aW9uU2V0dGluZy52YWx1ZSk7CiAKICAgICAgICAgbGV0IHNjb3BlQmFySXRl
bXMgPSBbCiAgICAgICAgICAgICBuZXcgV2ViSW5zcGVjdG9yLlNjb3BlQmFySXRlbShXZWJJbnNw
ZWN0b3IuU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldy5Qcm9maWxlT3JpZW50YXRpb24uVG9wRG93
biwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUb3AgRG93biIpLCB0cnVlKSwKQEAgLTYxLDE3ICs1
OCwxMiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldyA9IGNsYXNzIFNj
cmlwdFByb2ZpbGVUaW1lbGluZVZpZXcgZXh0ZW5kcwogICAgICAgICB0aGlzLl91cGRhdGVDbGVh
ckZvY3VzTm9kZXNCdXR0b25JdGVtKCk7CiAKICAgICAgICAgdGltZWxpbmUuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmUuRXZlbnQuUmVmcmVzaGVkLCB0aGlzLl9zY3JpcHRU
aW1lbGluZVJlY29yZFJlZnJlc2hlZCwgdGhpcyk7Ci0KLSAgICAgICAgLy8gRklYTUU6IFN1cHBv
cnQgZmlsdGVyaW5nIHRoZSBQcm9maWxlVmlldy4KICAgICB9CiAKICAgICAvLyBQdWJsaWMKIAog
ICAgIGdldCBzaG93c0xpdmVSZWNvcmRpbmdEYXRhKCkgeyByZXR1cm4gZmFsc2U7IH0KIAotICAg
IC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTU3NTgxPiBXZWIgSW5zcGVjdG9yOiBT
Y3JpcHQgUHJvZmlsZVZpZXdzIHNob3VsZCBiZSBzZWFyY2hhYmxlCi0gICAgZ2V0IHNob3dzRmls
dGVyQmFyKCkgeyByZXR1cm4gZmFsc2U7IH0KLQogICAgIC8vIFByb3RlY3RlZAogCiAgICAgY2xv
c2VkKCkKQEAgLTEzMCwyMiArMTIyLDM0IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRQcm9maWxlVGlt
ZWxpbmVWaWV3ID0gY2xhc3MgU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldyBleHRlbmRzCiAgICAg
ewogICAgICAgICBsZXQgY3VycmVudE9yaWVudGF0aW9uID0gV2ViSW5zcGVjdG9yLlNjcmlwdFBy
b2ZpbGVUaW1lbGluZVZpZXcucHJvZmlsZU9yaWVudGF0aW9uU2V0dGluZy52YWx1ZTsKICAgICAg
ICAgbGV0IG5ld09yaWVudGF0aW9uID0gdGhpcy5fcHJvZmlsZU9yaWVudGF0aW9uU2NvcGVCYXIu
c2VsZWN0ZWRJdGVtc1swXS5pZDsKLSAgICAgICAgbGV0IGNhbGxpbmdDb250ZXh0VHJlZSA9IHRo
aXMuX2NhbGxpbmdDb250ZXh0VHJlZUZvck9yaWVudGF0aW9uKG5ld09yaWVudGF0aW9uKTsKIAog
ICAgICAgICBXZWJJbnNwZWN0b3IuU2NyaXB0UHJvZmlsZVRpbWVsaW5lVmlldy5wcm9maWxlT3Jp
ZW50YXRpb25TZXR0aW5nLnZhbHVlID0gbmV3T3JpZW50YXRpb247CisgICAgICAgIHRoaXMuX3No
b3dQcm9maWxlVmlld0Zvck9yaWVudGF0aW9uKG5ld09yaWVudGF0aW9uKTsKIAotICAgICAgICB0
aGlzLnJlbW92ZVN1YnZpZXcodGhpcy5fcHJvZmlsZVZpZXcpOwotICAgICAgICB0aGlzLl9wcm9m
aWxlVmlldy5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVu
dC5TZWxlY3Rpb25QYXRoQ29tcG9uZW50c0RpZENoYW5nZSwgdGhpcy5fcHJvZmlsZVZpZXdTZWxl
Y3Rpb25QYXRoQ29tcG9uZW50c0RpZENoYW5nZSwgdGhpcyk7CisgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rp
b25QYXRoQ29tcG9uZW50c0RpZENoYW5nZSk7CiAKLSAgICAgICAgdGhpcy5fcHJvZmlsZVZpZXcg
PSBuZXcgV2ViSW5zcGVjdG9yLlByb2ZpbGVWaWV3KGNhbGxpbmdDb250ZXh0VHJlZSk7CisgICAg
ICAgIHRoaXMuX2ZvcmNlTmV4dExheW91dCA9IHRydWU7CisgICAgICAgIHRoaXMubmVlZHNMYXlv
dXQoKTsKKyAgICB9CiAKKyAgICBfc2hvd1Byb2ZpbGVWaWV3Rm9yT3JpZW50YXRpb24ob3JpZW50
YXRpb24pCisgICAgeworICAgICAgICBsZXQgZmlsdGVyVGV4dDsKKyAgICAgICAgaWYgKHRoaXMu
X3Byb2ZpbGVWaWV3KSB7CisgICAgICAgICAgICB0aGlzLl9wcm9maWxlVmlldy5yZW1vdmVFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rpb25QYXRoQ29t
cG9uZW50c0RpZENoYW5nZSwgdGhpcy5fcHJvZmlsZVZpZXdTZWxlY3Rpb25QYXRoQ29tcG9uZW50
c0RpZENoYW5nZSwgdGhpcyk7CisgICAgICAgICAgICB0aGlzLnJlbW92ZVN1YnZpZXcodGhpcy5f
cHJvZmlsZVZpZXcpOworICAgICAgICAgICAgZmlsdGVyVGV4dCA9IHRoaXMuX3Byb2ZpbGVWaWV3
LmRhdGFHcmlkLmZpbHRlclRleHQ7CisgICAgICAgIH0KKworICAgICAgICBsZXQgY2FsbGluZ0Nv
bnRleHRUcmVlID0gdGhpcy5fY2FsbGluZ0NvbnRleHRUcmVlRm9yT3JpZW50YXRpb24ob3JpZW50
YXRpb24pOworICAgICAgICB0aGlzLl9wcm9maWxlVmlldyA9IG5ldyBXZWJJbnNwZWN0b3IuUHJv
ZmlsZVZpZXcoY2FsbGluZ0NvbnRleHRUcmVlKTsKICAgICAgICAgdGhpcy5fcHJvZmlsZVZpZXcu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29udGVudFZpZXcuRXZlbnQuU2VsZWN0aW9u
UGF0aENvbXBvbmVudHNEaWRDaGFuZ2UsIHRoaXMuX3Byb2ZpbGVWaWV3U2VsZWN0aW9uUGF0aENv
bXBvbmVudHNEaWRDaGFuZ2UsIHRoaXMpOwotICAgICAgICB0aGlzLmFkZFN1YnZpZXcodGhpcy5f
cHJvZmlsZVZpZXcpOwogCi0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rpb25QYXRoQ29tcG9uZW50c0RpZENo
YW5nZSk7CisgICAgICAgIHRoaXMuYWRkU3Vidmlldyh0aGlzLl9wcm9maWxlVmlldyk7CisgICAg
ICAgIHRoaXMuc2V0dXBEYXRhR3JpZCh0aGlzLl9wcm9maWxlVmlldy5kYXRhR3JpZCk7CiAKLSAg
ICAgICAgdGhpcy5fZm9yY2VOZXh0TGF5b3V0ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5uZWVkc0xh
eW91dCgpOworICAgICAgICBpZiAoZmlsdGVyVGV4dCkKKyAgICAgICAgICAgIHRoaXMuX3Byb2Zp
bGVWaWV3LmRhdGFHcmlkLmZpbHRlclRleHQgPSBmaWx0ZXJUZXh0OwogICAgIH0KIAogICAgIF91
cGRhdGVDbGVhckZvY3VzTm9kZXNCdXR0b25JdGVtKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVmlldy5qcwppbmRleCA2
MjhjNzQzY2E2ZjhjZmMwNjVlZTJmN2Q3Y2ExNzVhNTFmOWYzMDIxLi41NmRjNzAxNDU4NzZmNmRi
OTMxMjNlNmQ3ZjY3YzI0NWZlY2Q2Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVWaWV3LmpzCkBAIC0xNTgsMjUg
KzE1OCwxOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3ID0gY2xhc3MgVGltZWxpbmVWaWV3
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkNvbnRlbnRWaWV3CiAKICAgICBzZXR1cERhdGFHcmlkKGRh
dGFHcmlkKQogICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3RpbWVsaW5lRGF0
YUdyaWQpOworICAgICAgICBpZiAodGhpcy5fdGltZWxpbmVEYXRhR3JpZCkgeworICAgICAgICAg
ICAgdGhpcy5fdGltZWxpbmVEYXRhR3JpZC5maWx0ZXJEZWxlZ2F0ZSA9IG51bGw7CisgICAgICAg
ICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRhdGFHcmlkLkV2ZW50LlNlbGVjdGVkTm9kZUNoYW5nZWQsIHRoaXMuX3RpbWVsaW5lRGF0
YUdyaWRTZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX3RpbWVs
aW5lRGF0YUdyaWQucmVtb3ZlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZl
bnQuTm9kZVdhc0ZpbHRlcmVkLCB0aGlzLl90aW1lbGluZURhdGFHcmlkTm9kZVdhc0ZpbHRlcmVk
LCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX3RpbWVsaW5lRGF0YUdyaWQucmVtb3ZlRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuRmlsdGVyRGlkQ2hhbmdlLCB0aGlz
LmZpbHRlckRpZENoYW5nZSwgdGhpcyk7CisgICAgICAgIH0KIAogICAgICAgICB0aGlzLl90aW1l
bGluZURhdGFHcmlkID0gZGF0YUdyaWQ7CiAgICAgICAgIHRoaXMuX3RpbWVsaW5lRGF0YUdyaWQu
ZmlsdGVyRGVsZWdhdGUgPSB0aGlzOwotICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNlbGVjdGVkTm9kZUNo
YW5nZWQsICgpID0+IHsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5Db250ZW50Vmlldy5FdmVudC5TZWxlY3Rpb25QYXRoQ29tcG9uZW50c0Rp
ZENoYW5nZSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX3RpbWVsaW5lRGF0YUdyaWQu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuTm9kZVdhc0ZpbHRl
cmVkLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIGxldCBub2RlID0gZXZlbnQuZGF0YS5ub2Rl
OwotICAgICAgICAgICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZURhdGFHcmlkTm9kZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuVGltZWxpbmVWaWV3LkV2
ZW50LlJlY29yZFdhc0ZpbHRlcmVkLCB7cmVjb3JkOiBub2RlLnJlY29yZCwgZmlsdGVyZWQ6IG5v
ZGUuaGlkZGVufSk7Ci0gICAgICAgIH0pOwotCi0gICAgICAgIHRoaXMuX3RpbWVsaW5lRGF0YUdy
aWQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuRmlsdGVyRGlk
Q2hhbmdlLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAgIHRoaXMuZmlsdGVyRGlkQ2hhbmdlKCk7
Ci0gICAgICAgIH0pOworICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmFkZEV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNlbGVjdGVkTm9kZUNoYW5nZWQsIHRo
aXMuX3RpbWVsaW5lRGF0YUdyaWRTZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAg
dGhpcy5fdGltZWxpbmVEYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5FdmVudC5Ob2RlV2FzRmlsdGVyZWQsIHRoaXMuX3RpbWVsaW5lRGF0YUdyaWROb2RlV2Fz
RmlsdGVyZWQsIHRoaXMpOworICAgICAgICB0aGlzLl90aW1lbGluZURhdGFHcmlkLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LkZpbHRlckRpZENoYW5nZSwgdGhp
cy5maWx0ZXJEaWRDaGFuZ2UsIHRoaXMpOwogICAgIH0KIAogICAgIHNlbGVjdFJlY29yZChyZWNv
cmQpCkBAIC0yODQsNiArMjc3LDkgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldyA9IGNsYXNz
IFRpbWVsaW5lVmlldyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VmlldwogICAgICAgICAg
ICAgcmV0dXJuIGNoZWNrVGltZUJvdW5kcyhyZWNvcmQuc3RhcnRUaW1lLCByZWNvcmQuZW5kVGlt
ZSk7CiAgICAgICAgIH0KIAorICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rv
ci5Qcm9maWxlRGF0YUdyaWROb2RlKQorICAgICAgICAgICAgcmV0dXJuIG5vZGUuY2FsbGluZ0Nv
bnRleHRUcmVlTm9kZS5oYXNTdGFja1RyYWNlSW5UaW1lUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1l
KTsKKwogICAgICAgICBjb25zb2xlLmVycm9yKCJVbmtub3duIERhdGFHcmlkTm9kZSwgY2FuJ3Qg
ZmlsdGVyIGJ5IHRpbWUuIik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTMwMiw2
ICsyOTgsMjAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lVmlldyA9IGNsYXNzIFRpbWVsaW5lVmll
dyBleHRlbmRzIFdlYkluc3BlY3Rvci5Db250ZW50VmlldwogCiAgICAgLy8gUHJpdmF0ZQogCisg
ICAgX3RpbWVsaW5lRGF0YUdyaWRTZWxlY3RlZE5vZGVDaGFuZ2VkKGV2ZW50KQorICAgIHsKKyAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNvbnRlbnRW
aWV3LkV2ZW50LlNlbGVjdGlvblBhdGhDb21wb25lbnRzRGlkQ2hhbmdlKTsKKyAgICB9CisKKyAg
ICBfdGltZWxpbmVEYXRhR3JpZE5vZGVXYXNGaWx0ZXJlZChldmVudCkKKyAgICB7CisgICAgICAg
IGxldCBub2RlID0gZXZlbnQuZGF0YS5ub2RlOworICAgICAgICBpZiAoIShub2RlIGluc3RhbmNl
b2YgV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0YUdyaWROb2RlKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3Iu
VGltZWxpbmVWaWV3LkV2ZW50LlJlY29yZFdhc0ZpbHRlcmVkLCB7cmVjb3JkOiBub2RlLnJlY29y
ZCwgZmlsdGVyZWQ6IG5vZGUuaGlkZGVufSk7CisgICAgfQorCiAgICAgX3RpbWVzRGlkQ2hhbmdl
KCkKICAgICB7CiAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5pc0Nh
cHR1cmluZygpIHx8IHRoaXMuc2hvd3NMaXZlUmVjb3JkaW5nRGF0YSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>