<?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>78501</bug_id>
          
          <creation_ts>2012-02-13 08:48:32 -0800</creation_ts>
          <short_desc>Web Inspector: [refactoring] factor common timeline UI state into TimelinePresentationModel</short_desc>
          <delta_ts>2012-02-13 22:15:41 -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>Web Inspector (Deprecated)</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555299</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-13 08:48:32 -0800</bug_when>
    <thetext>Multiple components of Timeline panel depend on each other to manage common panel state, such as category filters, window selection and (possible) others.
This patch introduces TimelinePresentationModel to manage this state, so we can simplify dependencies a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555300</commentid>
    <comment_count>1</comment_count>
      <attachid>126779</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-13 08:49:23 -0800</bug_when>
    <thetext>Created attachment 126779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555305</commentid>
    <comment_count>2</comment_count>
      <attachid>126780</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-13 08:57:56 -0800</bug_when>
    <thetext>Created attachment 126780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555315</commentid>
    <comment_count>3</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-02-13 09:12:34 -0800</bug_when>
    <thetext>Committed r107576: &lt;http://trac.webkit.org/changeset/107576&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555952</commentid>
    <comment_count>4</comment_count>
      <attachid>126780</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-02-13 22:15:41 -0800</bug_when>
    <thetext>Comment on attachment 126780
Patch

Clearing r? from the patch that has landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126779</attachid>
            <date>2012-02-13 08:49:23 -0800</date>
            <delta_ts>2012-02-13 09:03:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78501-20120213204921.patch</filename>
            <type>text/plain</type>
            <size>24562</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ3ZGU1OTViOWRlMzMw
YTdjMjU3ZWRhYjc3NDM3ZGRmNDllNzZkZC4uYjY5ZGE0MDE4MDdiNTQxY2JlN2M5MjRhZmRhZDE4
MDRhOTY4M2E3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTEzICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW3JlZmFjdG9yaW5nXSBmYWN0b3IgY29tbW9uIHRpbWVsaW5lIFVJIHN0YXRlIGludG8gVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzg1MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fb25DYXRlZ29y
eVZpc2liaWxpdHlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3UGFuZS5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuc2lkZWJhclJlc2l6ZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fc2V0V2luZG93UG9zaXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5z
Y3JvbGxXaW5kb3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5l
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fY3JlYXRlVG9wUGFuZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZ2V0IHN0YXR1c0Jhckl0
ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQg
X3JlY29yZFN0eWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUuX2NyZWF0ZVN0YXR1c2JhckJ1dHRvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVUaW1lbGluZUNhdGVnb3J5U3RhdHVzQmFyQ2hl
Y2tib3gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9v
bkNhdGVnb3J5Q2hlY2tib3hDbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5zaWRlYmFyUmVzaXplZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZUJvdW5kYXJp
ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9zaG93
UG9wb3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUuZ2V0IGNhdGVnb3JpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmFkZENhdGVnb3J5KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5zZXRXaW5kb3dQb3NpdGlv
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUuc2V0Q2F0ZWdvcnlWaXNpYmlsaXR5KToKKwogMjAxMi0wMi0xMyAgQ2FpbyBNYXJjZWxv
IGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIE1vdmUgYXR0cmlidXRlIHN0b3JhZ2UgZnJvbSBOYW1lZE5vZGVNYXAgdG8gRWxlbWVudEF0
dHJpYnV0ZURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IDg3MThmMTllMDhiMGM1ODU2YmEz
Y2E4NTBjNTkyYTAzZDU4MmJiOTkuLjI5MWQ4NzA3YjdjZmE3MzUyMDJmMTM4MjlhMjFkMzgyODQ5
NzNkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVPdmVydmlld1BhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcwpAQCAtMzAsMTggKzMwLDEwIEBACiAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqLwot
V2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lID0gZnVuY3Rpb24oY2F0ZWdvcmllcykK
K1dlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSA9IGZ1bmN0aW9uKHByZXNlbnRhdGlv
bk1vZGVsKQogewotICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBjYXRlZ29yaWVzOwotCi0gICAgdGhp
cy5zdGF0dXNCYXJGaWx0ZXJzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAg
dGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFyLWl0ZW1zIjsKLSAg
ICBmb3IgKHZhciBjYXRlZ29yeU5hbWUgaW4gdGhpcy5fY2F0ZWdvcmllcykgewotICAgICAgICB2
YXIgY2F0ZWdvcnkgPSB0aGlzLl9jYXRlZ29yaWVzW2NhdGVnb3J5TmFtZV07Ci0gICAgICAgIHRo
aXMuc3RhdHVzQmFyRmlsdGVycy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVUaW1lbGluZUNhdGVn
b3J5U3RhdHVzQmFyQ2hlY2tib3goY2F0ZWdvcnksIHRoaXMuX29uQ2hlY2tib3hDbGlja2VkLmJp
bmQodGhpcywgY2F0ZWdvcnkpKSk7Ci0gICAgfQorICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVs
ID0gcHJlc2VudGF0aW9uTW9kZWw7CiAKICAgICB0aGlzLl9vdmVydmlld0dyaWQgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lR3JpZCgpOwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50
LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LWdyaWQiOwpAQCAtNTgsMTEgKzUwLDE0IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSA9IGZ1bmN0aW9uKGNhdGVnb3JpZXMpCiAKICAg
ICB0aGlzLl9jYXRlZ29yeUdyYXBocyA9IHt9OwogICAgIHZhciBpID0gMDsKLSAgICBmb3IgKHZh
ciBjYXRlZ29yeSBpbiB0aGlzLl9jYXRlZ29yaWVzKSB7Ci0gICAgICAgIHZhciBjYXRlZ29yeUdy
YXBoID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5R3JhcGgodGhpcy5fY2F0ZWdv
cmllc1tjYXRlZ29yeV0sIGkrKyAlIDIpOworICAgIHZhciBjYXRlZ29yaWVzID0gdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllczsKKyAgICBmb3IgKHZhciBjYXRlZ29yeSBpbiBjYXRl
Z29yaWVzKSB7CisgICAgICAgIHZhciBjYXRlZ29yeUdyYXBoID0gbmV3IFdlYkluc3BlY3Rvci5U
aW1lbGluZUNhdGVnb3J5R3JhcGgoY2F0ZWdvcmllc1tjYXRlZ29yeV0sIGkrKyAlIDIpOwogICAg
ICAgICB0aGlzLl9jYXRlZ29yeUdyYXBoc1tjYXRlZ29yeV0gPSBjYXRlZ29yeUdyYXBoOwogICAg
ICAgICB0aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50LmFwcGVuZENoaWxkKGNh
dGVnb3J5R3JhcGguZ3JhcGhFbGVtZW50KTsKICAgICB9CisgICAgdGhpcy5fcHJlc2VudGF0aW9u
TW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5FdmVudHMuQ2F0ZWdvcnlWaXNpYmlsaXR5Q2hhbmdlZCwgdGhpcy5fb25DYXRlZ29yeVZp
c2liaWxpdHlDaGFuZ2VkLCB0aGlzKTsKKwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5zZXRTY3Jv
bGxBbmREaXZpZGVyVG9wKDAsIDApOwogCiAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC0xMTEsMTMgKzEwNiwxMCBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRl
biIpOwogICAgIH0sCiAKLSAgICBfb25DaGVja2JveENsaWNrZWQ6IGZ1bmN0aW9uIChjYXRlZ29y
eSwgZXZlbnQpIHsKLSAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKQotICAgICAgICAg
ICAgY2F0ZWdvcnkuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNh
dGVnb3J5LmhpZGRlbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2NhdGVnb3J5R3JhcGhzW2NhdGVn
b3J5Lm5hbWVdLmRpbW1lZCA9ICFldmVudC50YXJnZXQuY2hlY2tlZDsKLSAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoImZpbHRlciBjaGFuZ2VkIik7CisgICAgX29uQ2F0ZWdv
cnlWaXNpYmlsaXR5Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIg
Y2F0ZWdvcnkgPSBldmVudC5kYXRhOworICAgICAgICB0aGlzLl9jYXRlZ29yeUdyYXBoc1tjYXRl
Z29yeS5uYW1lXS5kaW1tZWQgPSBjYXRlZ29yeS5oaWRkZW47CiAgICAgfSwKIAogICAgIF9mb3JB
bGxSZWNvcmRzOiBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhbGxiYWNrKQpAQCAtMTM1LDcgKzEy
Nyw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3Nob3dTaG9ydEV2ZW50cyA9IHNob3dTaG9ydEV2ZW50czsKICAgICAgICAg
Ly8gQ2xlYXIgc3VtbWFyeSBiYXJzLgogICAgICAgICB2YXIgdGltZWxpbmVzID0ge307Ci0gICAg
ICAgIGZvciAodmFyIGNhdGVnb3J5IGluIHRoaXMuX2NhdGVnb3JpZXMpIHsKKyAgICAgICAgZm9y
ICh2YXIgY2F0ZWdvcnkgaW4gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcykgewog
ICAgICAgICAgICAgdGltZWxpbmVzW2NhdGVnb3J5XSA9IFtdOwogICAgICAgICAgICAgdGhpcy5f
Y2F0ZWdvcnlHcmFwaHNbY2F0ZWdvcnldLmNsZWFyQ2h1bmtzKCk7CiAgICAgICAgIH0KQEAgLTE1
OCw3ICsxNTAsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9mb3JBbGxSZWNvcmRzKHJlY29yZHMsIG1hcmtQZXJjZW50YWdl
c0ZvclJlY29yZC5iaW5kKHRoaXMpKTsKIAogICAgICAgICAvLyBDb252ZXJ0IHNwYXJzZSBhcnJh
eXMgdG8gY29udGludW91cyBzZWdtZW50cywgcmVuZGVyIGdyYXBocyBmb3IgZWFjaC4KLSAgICAg
ICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gdGhpcy5fY2F0ZWdvcmllcykgeworICAgICAgICBmb3Ig
KHZhciBjYXRlZ29yeSBpbiB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKSB7CiAg
ICAgICAgICAgICB2YXIgdGltZWxpbmUgPSB0aW1lbGluZXNbY2F0ZWdvcnldOwogICAgICAgICAg
ICAgd2luZG93LnRpbWVsaW5lU2F2ZWQgPSB0aW1lbGluZTsKICAgICAgICAgICAgIHZhciBjaHVu
a1N0YXJ0ID0gLTE7CkBAIC0yMDYsOCArMTk4LDYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICBzaWRlYmFyUmVzaXplZDogZnVuY3Rpb24od2lk
dGgpCiAgICAgewogICAgICAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5zdHlsZS5sZWZ0
ID0gd2lkdGggKyAicHgiOwotICAgICAgICAvLyBNaW4gd2lkdGggPSA8bnVtYmVyIG9mIGJ1dHRv
bnMgb24gdGhlIGxlZnQ+ICogMzEKLSAgICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLnN0eWxl
LmxlZnQgPSBNYXRoLm1heCg3ICogMzEsIHdpZHRoKSArICJweCI7CiAgICAgfSwKIAogICAgIHJl
c2V0OiBmdW5jdGlvbigpCkBAIC0zMzksNyArMzI5LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9vdmVy
dmlld1dpbmRvd0VsZW1lbnQuc3R5bGUud2lkdGggPSAodGhpcy53aW5kb3dSaWdodCAtIHRoaXMu
d2luZG93TGVmdCkgKiAxMDAgKyAiJSI7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93Qm9y
ZGVyc0VsZW1lbnQuc3R5bGUucmlnaHQgPSAoMSAtIHRoaXMud2luZG93UmlnaHQgKyAyICogcnVs
ZXJBZGp1c3RtZW50KSAqIDEwMCArICIlIjsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoIndpbmRvdyBjaGFuZ2VkIik7CisgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1v
ZGVsLnNldFdpbmRvd1Bvc2l0aW9uKHRoaXMud2luZG93TGVmdCwgdGhpcy53aW5kb3dSaWdodCk7
CiAgICAgfSwKIAogICAgIF9lbmRXaW5kb3dEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCkBAIC0z
NTEsMzIgKzM0MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5
cGUgPSB7CiAgICAgewogICAgICAgICBpZiAodHlwZW9mIGV2ZW50LndoZWVsRGVsdGFYID09PSAi
bnVtYmVyIiAmJiBldmVudC53aGVlbERlbHRhWCAhPT0gMCkKICAgICAgICAgICAgIHRoaXMuX3dp
bmRvd0RyYWdnaW5nKGV2ZW50LnBhZ2VYICsgTWF0aC5yb3VuZChldmVudC53aGVlbERlbHRhWCAq
IFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5XaW5kb3dTY3JvbGxTcGVlZEZhY3Rv
ciksIHRoaXMuX2xlZnRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPdmVydmlld1BhbmUuUmVzaXplck9mZnNldCwgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50
Lm9mZnNldExlZnQgKyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuUmVzaXplck9m
ZnNldCwgZXZlbnQpOwotICAgIH0sCi0KLSAgICBfY3JlYXRlVGltZWxpbmVDYXRlZ29yeVN0YXR1
c0JhckNoZWNrYm94OiBmdW5jdGlvbihjYXRlZ29yeSwgb25DaGVja2JveENsaWNrZWQpCi0gICAg
ewotICAgICAgICB2YXIgbGFiZWxDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKLSAgICAgICAgbGFiZWxDb250YWluZXIuYWRkU3R5bGVDbGFzcygidGltZWxpbmUtY2F0
ZWdvcnktc3RhdHVzYmFyLWl0ZW0iKTsKLSAgICAgICAgbGFiZWxDb250YWluZXIuYWRkU3R5bGVD
bGFzcygidGltZWxpbmUtY2F0ZWdvcnktIiArIGNhdGVnb3J5Lm5hbWUpOwotICAgICAgICBsYWJl
bENvbnRhaW5lci5hZGRTdHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAgICB2
YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwotICAgICAgICB2YXIg
Y2hlY2tFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLSAgICAgICAg
Y2hlY2tFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwotICAgICAgICBjaGVja0VsZW1lbnQuY2xh
c3NOYW1lID0gInRpbWVsaW5lLWNhdGVnb3J5LWNoZWNrYm94IjsKLSAgICAgICAgY2hlY2tFbGVt
ZW50LmNoZWNrZWQgPSB0cnVlOwotICAgICAgICBjaGVja0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBvbkNoZWNrYm94Q2xpY2tlZCwgZmFsc2UpOwotICAgICAgICBsYWJlbC5hcHBl
bmRDaGlsZChjaGVja0VsZW1lbnQpOwotCi0gICAgICAgIHZhciB0eXBlRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgdHlwZUVsZW1lbnQuY2xhc3NOYW1l
ID0gInR5cGUiOwotICAgICAgICB0eXBlRWxlbWVudC50ZXh0Q29udGVudCA9IGNhdGVnb3J5LnRp
dGxlOwotICAgICAgICBsYWJlbC5hcHBlbmRDaGlsZCh0eXBlRWxlbWVudCk7Ci0KLSAgICAgICAg
bGFiZWxDb250YWluZXIuYXBwZW5kQ2hpbGQobGFiZWwpOwotICAgICAgICByZXR1cm4gbGFiZWxD
b250YWluZXI7CiAgICAgfQotCiB9CiAKIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFu
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwu
anMKaW5kZXggYjUwODU3NGQ4YzllN2NhNjA4ZWIwY2ZhOWMzYjE3YjFlM2I2NjlhYi4uMzkwY2Y1
NTNiZDk5ODI4Y2Y5OTg4YTVmZGZkOTY1NDAwNWYwZjM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMzcsNiArMzcs
MTMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5z
cGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInRpbWVsaW5lIik7CiAgICAgdGhpcy5yZWdpc3RlclJl
cXVpcmVkQ1NTKCJ0aW1lbGluZVBhbmVsLmNzcyIpOwogCisgICAgdGhpcy5fcHJlc2VudGF0aW9u
TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwoKTsKKyAg
ICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRDYXRlZ29yeShuZXcgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvYWRpbmci
KSwgInJnYig0NywxMDIsMjM2KSIpKTsKKyAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRD
YXRlZ29yeShuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInNjcmlwdGluZyIsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiU2NyaXB0aW5nIiksICJyZ2IoMTU3LDIzMSwxMTkpIikpOwor
ICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZENhdGVnb3J5KG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVDYXRlZ29yeSgicmVuZGVyaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZW5k
ZXJpbmciKSwgInJnYigxNjQsNjAsMjU1KSIpKTsKKyAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LkV2ZW50cy5XaW5kb3dDaGFuZ2VkLCB0aGlzLl9zY2hlZHVsZVJlZnJlc2guYmluZCh0aGlzLCBm
YWxzZSkpOworICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkNhdGVnb3J5VmlzaWJp
bGl0eUNoYW5nZWQsIHRoaXMuX3NjaGVkdWxlUmVmcmVzaC5iaW5kKHRoaXMsIHRydWUpKTsKKwog
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVUb3BQYW5lKCkpOwogICAg
IHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2NvbnRl
eHRNZW51LmJpbmQodGhpcyksIHRydWUpOwogICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9IDA7
CkBAIC0yMDMsOSArMjEwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0b3BQYW5lU2lkZWJhclRyZWUuYXBwZW5kQ2hpbGQobWVtb3J5T3ZlcnZp
ZXdJdGVtKTsKICAgICAgICAgbWVtb3J5T3ZlcnZpZXdJdGVtLm9uc2VsZWN0ID0gdGhpcy5fbWVt
b3J5T3ZlcnZpZXdJdGVtU2VsZWN0ZWQuYmluZCh0aGlzKTsKIAotICAgICAgICB0aGlzLl9vdmVy
dmlld1BhbmUgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKHRoaXMuY2F0
ZWdvcmllcyk7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3UGFuZS5hZGRFdmVudExpc3RlbmVyKCJ3
aW5kb3cgY2hhbmdlZCIsIHRoaXMuX3dpbmRvd0NoYW5nZWQsIHRoaXMpOwotICAgICAgICB0aGlz
Ll9vdmVydmlld1BhbmUuYWRkRXZlbnRMaXN0ZW5lcigiZmlsdGVyIGNoYW5nZWQiLCB0aGlzLl9y
ZWZyZXNoLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lID0gbmV3IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSh0aGlzLl9wcmVzZW50YXRpb25Nb2RlbCk7CiAgICAg
ICAgIHRvcFBhbmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3UGFuZS5lbGVtZW50
KTsKIAogICAgICAgICB2YXIgc2VwYXJhdG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwpAQCAtMjI5LDIyICsyMzQsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcmVzdWx0ID0gW3RoaXMudG9nZ2xlRmlsdGVy
QnV0dG9uLmVsZW1lbnQsIHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24uZWxlbWVudCwgdGhpcy5n
YXJiYWdlQ29sbGVjdEJ1dHRvbi5lbGVtZW50LCB0aGlzLmNsZWFyQnV0dG9uLmVsZW1lbnRdOwog
ICAgICAgICBpZiAodGhpcy5fbWVtb3J5U3RhdGlzdGljc0J1dHRvbikKICAgICAgICAgICAgIHJl
c3VsdC5wdXNoKHRoaXMuX21lbW9yeVN0YXRpc3RpY3NCdXR0b24uZWxlbWVudCk7Ci0gICAgICAg
IHJlc3VsdC5wdXNoKHRoaXMuX292ZXJ2aWV3UGFuZS5zdGF0dXNCYXJGaWx0ZXJzKTsKKyAgICAg
ICAgcmVzdWx0LnB1c2godGhpcy5zdGF0dXNCYXJGaWx0ZXJzKTsKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9LAogCi0gICAgZ2V0IGNhdGVnb3JpZXMoKQotICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLl9jYXRlZ29yaWVzKSB7Ci0gICAgICAgICAgICB0aGlzLl9jYXRlZ29yaWVzID0gewot
ICAgICAgICAgICAgICAgIGxvYWRpbmc6IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29y
eSgibG9hZGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZyIpLCAicmdiKDQ3LDEw
MiwyMzYpIiksCi0gICAgICAgICAgICAgICAgc2NyaXB0aW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQ2F0ZWdvcnkoInNjcmlwdGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2NyaXB0
aW5nIiksICJyZ2IoMTU3LDIzMSwxMTkpIiksCi0gICAgICAgICAgICAgICAgcmVuZGVyaW5nOiBu
ZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInJlbmRlcmluZyIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUmVuZGVyaW5nIiksICJyZ2IoMTY0LDYwLDI1NSkiKQotICAgICAgICAgICAg
fTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5fY2F0ZWdvcmllczsKLSAgICB9LAot
CiAgICAgZ2V0IGRlZmF1bHRGb2N1c2VkRWxlbWVudCgpCiAgICAgewogICAgICAgICByZXR1cm4g
dGhpcy5lbGVtZW50OwpAQCAtMjU0LDMxICsyNDcsMzMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRTdHls
ZXNBcnJheSkgewogICAgICAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQWdlbnQuUmVjb3JkVHlwZTsKKyAgICAgICAgICAgIHZhciBjYXRlZ29yaWVzID0gdGhp
cy5fcHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllczsKKwogICAgICAgICAgICAgdmFyIHJlY29y
ZFN0eWxlcyA9IHt9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkV2ZW50
RGlzcGF0Y2hdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFdmVudCIpLCBjYXRl
Z29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5
bGVzW3JlY29yZFR5cGVzLkxheW91dF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkxheW91dCIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnJlbmRlcmluZyB9OwotICAgICAg
ICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlY2FsY3VsYXRlU3R5bGVzXSA9IHsgdGl0
bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjYWxjdWxhdGUgU3R5bGUiKSwgY2F0ZWdvcnk6
IHRoaXMuY2F0ZWdvcmllcy5yZW5kZXJpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1ty
ZWNvcmRUeXBlcy5QYWludF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhaW50
IiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMucmVuZGVyaW5nIH07Ci0gICAgICAgICAgICBy
ZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUGFyc2VIVE1MXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUGFyc2UiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07
Ci0gICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGltZXJJbnN0YWxsXSA9IHsg
dGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5zdGFsbCBUaW1lciIpLCBjYXRlZ29yeTog
dGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3Jl
Y29yZFR5cGVzLlRpbWVyUmVtb3ZlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
UmVtb3ZlIFRpbWVyIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2NyaXB0aW5nIH07Ci0g
ICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGltZXJGaXJlXSA9IHsgdGl0bGU6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZXIgRmlyZWQiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0
ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBl
cy5YSFJSZWFkeVN0YXRlQ2hhbmdlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
WEhSIFJlYWR5IFN0YXRlIENoYW5nZSIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlw
dGluZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlhIUkxvYWRdID0g
eyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYSFIgTG9hZCIpLCBjYXRlZ29yeTogdGhp
cy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLkV2YWx1YXRlU2NyaXB0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RXZhbHVhdGUgU2NyaXB0IiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2NyaXB0aW5nIH07
Ci0gICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGltZVN0YW1wXSA9IHsgdGl0
bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RhbXAiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdv
cmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5S
ZXNvdXJjZVNlbmRSZXF1ZXN0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vu
ZCBSZXF1ZXN0IiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMubG9hZGluZyB9OwotICAgICAg
ICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlXSA9
IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjZWl2ZSBSZXNwb25zZSIpLCBjYXRl
Z29yeTogdGhpcy5jYXRlZ29yaWVzLmxvYWRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5SZXNvdXJjZUZpbmlzaF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkZpbmlzaCBMb2FkaW5nIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMubG9hZGlu
ZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkZ1bmN0aW9uQ2FsbF0g
PSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1bmN0aW9uIENhbGwiKSwgY2F0ZWdv
cnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5SZXNvdXJjZVJlY2VpdmVkRGF0YV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlJlY2VpdmUgRGF0YSIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLmxv
YWRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5HQ0V2ZW50XSA9
IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiR0MgRXZlbnQiKSwgY2F0ZWdvcnk6IHRo
aXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNv
cmRUeXBlcy5NYXJrRE9NQ29udGVudF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkRPTUNvbnRlbnQgZXZlbnQiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcg
fTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5NYXJrTG9hZF0gPSB7IHRp
dGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvYWQgZXZlbnQiKSwgY2F0ZWdvcnk6IHRoaXMu
Y2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRU
eXBlcy5TY2hlZHVsZVJlc291cmNlUmVxdWVzdF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNjaGVkdWxlIFJlcXVlc3QiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2Fk
aW5nIH07Ci0gICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVnaXN0ZXJBbmlt
YXRpb25GcmFtZUNhbGxiYWNrXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVn
aXN0ZXIgQW5pbWF0aW9uIENhbGxiYWNrIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2Ny
aXB0aW5nIH07Ci0gICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuQ2FuY2VsQW5p
bWF0aW9uRnJhbWVDYWxsYmFja10gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNh
bmNlbCBBbmltYXRpb24gQ2FsbGJhY2siKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3Jp
cHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5GaXJlQW5pbWF0
aW9uRnJhbWVFdmVudF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFuaW1hdGlv
biBGcmFtZSBFdmVudCIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9Owor
ICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkV2ZW50RGlzcGF0Y2hdID0geyB0
aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFdmVudCIpLCBjYXRlZ29yeTogY2F0ZWdvcmll
c1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5M
YXlvdXRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMYXlvdXQiKSwgY2F0ZWdv
cnk6IGNhdGVnb3JpZXNbInJlbmRlcmluZyJdIH07CisgICAgICAgICAgICByZWNvcmRTdHlsZXNb
cmVjb3JkVHlwZXMuUmVjYWxjdWxhdGVTdHlsZXNdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJSZWNhbGN1bGF0ZSBTdHlsZSIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicmVuZGVy
aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5QYWludF0gPSB7
IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhaW50IiksIGNhdGVnb3J5OiBjYXRlZ29y
aWVzWyJyZW5kZXJpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVz
LlBhcnNlSFRNTF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhcnNlIiksIGNh
dGVnb3J5OiBjYXRlZ29yaWVzWyJsb2FkaW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5UaW1lckluc3RhbGxdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJJbnN0YWxsIFRpbWVyIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9
OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlRpbWVyUmVtb3ZlXSA9IHsg
dGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVtb3ZlIFRpbWVyIiksIGNhdGVnb3J5OiBj
YXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLlRpbWVyRmlyZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRpbWVy
IEZpcmVkIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgICAgICAg
ICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlhIUlJlYWR5U3RhdGVDaGFuZ2VdID0geyB0aXRs
ZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYSFIgUmVhZHkgU3RhdGUgQ2hhbmdlIiksIGNhdGVn
b3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVz
W3JlY29yZFR5cGVzLlhIUkxvYWRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJY
SFIgTG9hZCIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAg
ICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5FdmFsdWF0ZVNjcmlwdF0gPSB7IHRpdGxlOiBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkV2YWx1YXRlIFNjcmlwdCIpLCBjYXRlZ29yeTogY2F0ZWdv
cmllc1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBl
cy5UaW1lU3RhbXBdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdGFtcCIpLCBj
YXRlZ29yeTogY2F0ZWdvcmllc1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0
eWxlc1tyZWNvcmRUeXBlcy5SZXNvdXJjZVNlbmRSZXF1ZXN0XSA9IHsgdGl0bGU6IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU2VuZCBSZXF1ZXN0IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJsb2Fk
aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5SZXNvdXJjZVJl
Y2VpdmVSZXNwb25zZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY2VpdmUg
UmVzcG9uc2UiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbImxvYWRpbmciXSB9OworICAgICAgICAg
ICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlc291cmNlRmluaXNoXSA9IHsgdGl0bGU6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRmluaXNoIExvYWRpbmciKSwgY2F0ZWdvcnk6IGNhdGVnb3Jp
ZXNbImxvYWRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkZ1
bmN0aW9uQ2FsbF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1bmN0aW9uIENh
bGwiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlwdGluZyJdIH07CisgICAgICAgICAgICBy
ZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVzb3VyY2VSZWNlaXZlZERhdGFdID0geyB0aXRsZTog
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZWNlaXZlIERhdGEiKSwgY2F0ZWdvcnk6IGNhdGVnb3Jp
ZXNbImxvYWRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkdD
RXZlbnRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHQyBFdmVudCIpLCBjYXRl
Z29yeTogY2F0ZWdvcmllc1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5NYXJrRE9NQ29udGVudF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkRPTUNvbnRlbnQgZXZlbnQiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlwdGlu
ZyJdIH07CisgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuTWFya0xvYWRdID0g
eyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkIGV2ZW50IiksIGNhdGVnb3J5OiBj
YXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLlNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiU2NoZWR1bGUgUmVxdWVzdCIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sibG9hZGlu
ZyJdIH07CisgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVnaXN0ZXJBbmlt
YXRpb25GcmFtZUNhbGxiYWNrXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVn
aXN0ZXIgQW5pbWF0aW9uIENhbGxiYWNrIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRp
bmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkNhbmNlbEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2tdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYW5j
ZWwgQW5pbWF0aW9uIENhbGxiYWNrIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmci
XSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkZpcmVBbmltYXRpb25G
cmFtZUV2ZW50XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQW5pbWF0aW9uIEZy
YW1lIEV2ZW50IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OwogICAgICAg
ICAgICAgdGhpcy5fcmVjb3JkU3R5bGVzQXJyYXkgPSByZWNvcmRTdHlsZXM7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZFN0eWxlc0FycmF5OwpAQCAtMzA1LDYgKzMwMCw0
MyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
dGhpcy5yZWNvcmRzQ291bnRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAg
ICAgICAgdGhpcy5yZWNvcmRzQ291bnRlci5jbGFzc05hbWUgPSAidGltZWxpbmUtcmVjb3Jkcy1j
b3VudGVyIjsKKworICAgICAgICB0aGlzLnN0YXR1c0JhckZpbHRlcnMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmNsYXNzTmFt
ZSA9ICJzdGF0dXMtYmFyLWl0ZW1zIjsKKyAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSB0aGlzLl9w
cmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzOworICAgICAgICBmb3IgKHZhciBjYXRlZ29yeU5h
bWUgaW4gY2F0ZWdvcmllcykgeworICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gY2F0ZWdvcmll
c1tjYXRlZ29yeU5hbWVdOworICAgICAgICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmFwcGVu
ZENoaWxkKHRoaXMuX2NyZWF0ZVRpbWVsaW5lQ2F0ZWdvcnlTdGF0dXNCYXJDaGVja2JveChjYXRl
Z29yeSwgdGhpcy5fb25DYXRlZ29yeUNoZWNrYm94Q2xpY2tlZC5iaW5kKHRoaXMsIGNhdGVnb3J5
KSkpOworICAgICAgICB9CisgICAgfSwKKworICAgIF9jcmVhdGVUaW1lbGluZUNhdGVnb3J5U3Rh
dHVzQmFyQ2hlY2tib3g6IGZ1bmN0aW9uKGNhdGVnb3J5LCBvbkNoZWNrYm94Q2xpY2tlZCkKKyAg
ICB7CisgICAgICAgIHZhciBsYWJlbENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgICAgICBsYWJlbENvbnRhaW5lci5hZGRTdHlsZUNsYXNzKCJ0aW1lbGluZS1j
YXRlZ29yeS1zdGF0dXNiYXItaXRlbSIpOworICAgICAgICBsYWJlbENvbnRhaW5lci5hZGRTdHls
ZUNsYXNzKCJ0aW1lbGluZS1jYXRlZ29yeS0iICsgY2F0ZWdvcnkubmFtZSk7CisgICAgICAgIGxh
YmVsQ29udGFpbmVyLmFkZFN0eWxlQ2xhc3MoInN0YXR1cy1iYXItaXRlbSIpOworCisgICAgICAg
IHZhciBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7CisgICAgICAgIHZh
ciBjaGVja0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgICAg
ICBjaGVja0VsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CisgICAgICAgIGNoZWNrRWxlbWVudC5j
bGFzc05hbWUgPSAidGltZWxpbmUtY2F0ZWdvcnktY2hlY2tib3giOworICAgICAgICBjaGVja0Vs
ZW1lbnQuY2hlY2tlZCA9IHRydWU7CisgICAgICAgIGNoZWNrRWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIG9uQ2hlY2tib3hDbGlja2VkLCBmYWxzZSk7CisgICAgICAgIGxhYmVsLmFw
cGVuZENoaWxkKGNoZWNrRWxlbWVudCk7CisKKyAgICAgICAgdmFyIHR5cGVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICB0eXBlRWxlbWVudC5jbGFzc05h
bWUgPSAidHlwZSI7CisgICAgICAgIHR5cGVFbGVtZW50LnRleHRDb250ZW50ID0gY2F0ZWdvcnku
dGl0bGU7CisgICAgICAgIGxhYmVsLmFwcGVuZENoaWxkKHR5cGVFbGVtZW50KTsKKworICAgICAg
ICBsYWJlbENvbnRhaW5lci5hcHBlbmRDaGlsZChsYWJlbCk7CisgICAgICAgIHJldHVybiBsYWJl
bENvbnRhaW5lcjsKKyAgICB9LAorCisgICAgX29uQ2F0ZWdvcnlDaGVja2JveENsaWNrZWQ6IGZ1
bmN0aW9uKGNhdGVnb3J5LCBldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLnNldENhdGVnb3J5VmlzaWJpbGl0eShjYXRlZ29yeSwgZXZlbnQudGFyZ2V0LmNoZWNr
ZWQpOwogICAgIH0sCiAKICAgICBfcmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKCkKQEAgLTU0
MCw3ICs1NzIsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5Db3VudDsgKytpKQogICAgICAgICAg
ICAgdGhpcy5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKGNoaWxkcmVuW2ldLCBmb3JtYXR0ZWRS
ZWNvcmQpOwogCi0gICAgICAgIGZvcm1hdHRlZFJlY29yZC5fY2FsY3VsYXRlQWdncmVnYXRlZFN0
YXRzKHRoaXMuY2F0ZWdvcmllcyk7CisgICAgICAgIGZvcm1hdHRlZFJlY29yZC5fY2FsY3VsYXRl
QWdncmVnYXRlZFN0YXRzKHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmNhdGVnb3JpZXMpOwogCiAg
ICAgICAgIGlmIChjb25uZWN0ZWRUb09sZFJlY29yZCkgewogICAgICAgICAgICAgcmVjb3JkID0g
Zm9ybWF0dGVkUmVjb3JkOwpAQCAtNTY5LDYgKzYwMSw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdG9wUGFuZVNpZGViYXJFbGVtZW50
LnN0eWxlLndpZHRoID0gd2lkdGggKyAicHgiOwogICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJl
c2goZmFsc2UpOwogICAgICAgICB0aGlzLl9vdmVydmlld1BhbmUuc2lkZWJhclJlc2l6ZWQod2lk
dGgpOworICAgICAgICAvLyBNaW4gd2lkdGggPSA8bnVtYmVyIG9mIGJ1dHRvbnMgb24gdGhlIGxl
ZnQ+ICogMzEKKyAgICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLnN0eWxlLmxlZnQgPSBNYXRo
Lm1heCg3ICogMzEsIHdpZHRoKSArICJweCI7CisKICAgICAgICAgaWYgKHRoaXMuX21lbW9yeVN0
YXRpc3RpY3MpCiAgICAgICAgICAgICB0aGlzLl9tZW1vcnlTdGF0aXN0aWNzLnNldFNpZGViYXJX
aWR0aCh3aWR0aCk7CiAgICAgfSwKQEAgLTYzOCwxMiArNjczLDYgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2go
dHJ1ZSk7CiAgICAgfSwKIAotICAgIF93aW5kb3dDaGFuZ2VkOiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICB0aGlzLl9jbG9zZVJlY29yZERldGFpbHMoKTsKLSAgICAgICAgdGhpcy5fc2NoZWR1
bGVSZWZyZXNoKGZhbHNlKTsKLSAgICB9LAotCiAgICAgX3NjaGVkdWxlUmVmcmVzaDogZnVuY3Rp
b24ocHJlc2VydmVCb3VuZGFyaWVzKQogICAgIHsKICAgICAgICAgdGhpcy5fY2xvc2VSZWNvcmRE
ZXRhaWxzKCk7CkBAIC02ODAsOCArNzA5LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogICAgIF91cGRhdGVCb3VuZGFyaWVzOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX2NhbGN1bGF0
b3Iud2luZG93TGVmdCA9IHRoaXMuX292ZXJ2aWV3UGFuZS53aW5kb3dMZWZ0OwotICAgICAgICB0
aGlzLl9jYWxjdWxhdG9yLndpbmRvd1JpZ2h0ID0gdGhpcy5fb3ZlcnZpZXdQYW5lLndpbmRvd1Jp
Z2h0OworICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLndpbmRvd0xlZnQgPSB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC53aW5kb3dMZWZ0OworICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLndpbmRvd1Jp
Z2h0ID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwud2luZG93UmlnaHQ7CiAKICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yb290UmVjb3JkLmNoaWxkcmVuLmxlbmd0aDsgKytpKQog
ICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRvci51cGRhdGVCb3VuZGFyaWVzKHRoaXMuX3Jvb3RS
ZWNvcmQuY2hpbGRyZW5baV0pOwpAQCAtODUwLDcgKzg3OSw3IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfc2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGFuY2hv
ciwgcG9wb3ZlcikKICAgICB7CiAgICAgICAgIHZhciByZWNvcmQgPSBhbmNob3Iucm93Ll9yZWNv
cmQ7Ci0gICAgICAgIHBvcG92ZXIuc2hvdyhyZWNvcmQuX2dlbmVyYXRlUG9wdXBDb250ZW50KHRo
aXMuX2NhbGN1bGF0b3IsIHRoaXMuY2F0ZWdvcmllcyksIGFuY2hvcik7CisgICAgICAgIHBvcG92
ZXIuc2hvdyhyZWNvcmQuX2dlbmVyYXRlUG9wdXBDb250ZW50KHRoaXMuX2NhbGN1bGF0b3IsIHRo
aXMuX3ByZXNlbnRhdGlvbk1vZGVsLmNhdGVnb3JpZXMpLCBhbmNob3IpOwogICAgIH0sCiAKICAg
ICBfY2xvc2VSZWNvcmREZXRhaWxzOiBmdW5jdGlvbigpCkBAIC0xNTI4LDMgKzE1NTcsNTcgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwucHJvdG90eXBlID0gewogfQogCiBXZWJJbnNwZWN0
b3IuVGltZWxpbmVNb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVj
dC5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5z
cGVjdG9yLk9iamVjdH0KKyAqLworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9k
ZWwgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fY2F0ZWdvcmllcyA9IHt9OworICAgIHRoaXMu
d2luZG93TGVmdCA9IDAuMDsKKyAgICB0aGlzLndpbmRvd1JpZ2h0ID0gMS4wOworfQorCitXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMgPSB7CisgICAgV2luZG93
Q2hhbmdlZDogIldpbmRvd0NoYW5nZWQiLAorICAgIENhdGVnb3J5VmlzaWJpbGl0eUNoYW5nZWQ6
ICJGaWx0ZXJDaGFuZ2VkIgorfQorCitXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGNhdGVnb3JpZXMoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX2NhdGVnb3JpZXM7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnl9IGNhdGVnb3J5CisgICAgICovCisgICAg
YWRkQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KQorICAgIHsKKyAgICAgICAgdGhpcy5fY2F0
ZWdvcmllc1tjYXRlZ29yeS5uYW1lXSA9IGNhdGVnb3J5OworICAgIH0sCisKKyAgICAvKioKKyAg
ICAgKiBAcGFyYW0ge251bWJlcn0gbGVmdAorICAgICAqIEBwYXJhbSB7bnVtYmVyfSByaWdodAor
ICAgICAqLworICAgIHNldFdpbmRvd1Bvc2l0aW9uOiBmdW5jdGlvbihsZWZ0LCByaWdodCkKKyAg
ICB7CisgICAgICAgIHRoaXMud2luZG93TGVmdCA9IGxlZnQ7CisgICAgICAgIHRoaXMud2luZG93
UmlnaHQgPSByaWdodDsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLldpbmRvd0NoYW5nZWQp
OworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVDYXRlZ29yeX0gY2F0ZWdvcnkKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZpc2libGUK
KyAgICAgKi8KKyAgICBzZXRDYXRlZ29yeVZpc2liaWxpdHk6IGZ1bmN0aW9uKGNhdGVnb3J5LCB2
aXNpYmxlKQorICAgIHsKKyAgICAgICAgY2F0ZWdvcnkuaGlkZGVuID0gIXZpc2libGU7CisgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5UaW1lbGluZVBy
ZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5DYXRlZ29yeVZpc2liaWxpdHlDaGFuZ2VkLCBjYXRlZ29y
eSk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5w
cm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7Cg==
</data>
<flag name="review"
          id="128701"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126780</attachid>
            <date>2012-02-13 08:57:56 -0800</date>
            <delta_ts>2012-02-13 22:15:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78501-20120213205754.patch</filename>
            <type>text/plain</type>
            <size>24574</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3NTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ3ZGU1OTViOWRlMzMw
YTdjMjU3ZWRhYjc3NDM3ZGRmNDllNzZkZC4uYjY5ZGE0MDE4MDdiNTQxY2JlN2M5MjRhZmRhZDE4
MDRhOTY4M2E3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAyLTEzICBBbmRy
ZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogW3JlZmFjdG9yaW5nXSBmYWN0b3IgY29tbW9uIHRpbWVsaW5lIFVJIHN0YXRlIGludG8gVGlt
ZWxpbmVQcmVzZW50YXRpb25Nb2RlbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Nzg1MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVPdmVydmlld1BhbmUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fb25DYXRlZ29y
eVZpc2liaWxpdHlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2
aWV3UGFuZS5wcm90b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUuc2lkZWJhclJlc2l6ZWQpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5fc2V0V2luZG93UG9zaXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lLnByb3RvdHlwZS5z
Y3JvbGxXaW5kb3cpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5l
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5fY3JlYXRlVG9wUGFuZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuZ2V0IHN0YXR1c0Jhckl0
ZW1zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5nZXQg
X3JlY29yZFN0eWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90
b3R5cGUuX2NyZWF0ZVN0YXR1c2JhckJ1dHRvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwucHJvdG90eXBlLl9jcmVhdGVUaW1lbGluZUNhdGVnb3J5U3RhdHVzQmFyQ2hl
Y2tib3gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9v
bkNhdGVnb3J5Q2hlY2tib3hDbGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZS5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZS5zaWRlYmFyUmVzaXplZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZUJvdW5kYXJp
ZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9zaG93
UG9wb3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUuZ2V0IGNhdGVnb3JpZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmFkZENhdGVnb3J5KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5zZXRXaW5kb3dQb3NpdGlv
bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUuc2V0Q2F0ZWdvcnlWaXNpYmlsaXR5KToKKwogMjAxMi0wMi0xMyAgQ2FpbyBNYXJjZWxv
IGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAg
ICAgIE1vdmUgYXR0cmlidXRlIHN0b3JhZ2UgZnJvbSBOYW1lZE5vZGVNYXAgdG8gRWxlbWVudEF0
dHJpYnV0ZURhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGltZWxpbmVPdmVydmlld1BhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lT3ZlcnZpZXdQYW5lLmpzCmluZGV4IDg3MThmMTllMDhiMGM1ODU2YmEz
Y2E4NTBjNTkyYTAzZDU4MmJiOTkuLjI5MWQ4NzA3YjdjZmE3MzUyMDJmMTM4MjlhMjFkMzgyODQ5
NzNkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGlt
ZWxpbmVPdmVydmlld1BhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZU92ZXJ2aWV3UGFuZS5qcwpAQCAtMzAsMTggKzMwLDEwIEBACiAKIC8qKgog
ICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqLwot
V2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lID0gZnVuY3Rpb24oY2F0ZWdvcmllcykK
K1dlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSA9IGZ1bmN0aW9uKHByZXNlbnRhdGlv
bk1vZGVsKQogewotICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBjYXRlZ29yaWVzOwotCi0gICAgdGhp
cy5zdGF0dXNCYXJGaWx0ZXJzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAg
dGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFyLWl0ZW1zIjsKLSAg
ICBmb3IgKHZhciBjYXRlZ29yeU5hbWUgaW4gdGhpcy5fY2F0ZWdvcmllcykgewotICAgICAgICB2
YXIgY2F0ZWdvcnkgPSB0aGlzLl9jYXRlZ29yaWVzW2NhdGVnb3J5TmFtZV07Ci0gICAgICAgIHRo
aXMuc3RhdHVzQmFyRmlsdGVycy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVUaW1lbGluZUNhdGVn
b3J5U3RhdHVzQmFyQ2hlY2tib3goY2F0ZWdvcnksIHRoaXMuX29uQ2hlY2tib3hDbGlja2VkLmJp
bmQodGhpcywgY2F0ZWdvcnkpKSk7Ci0gICAgfQorICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVs
ID0gcHJlc2VudGF0aW9uTW9kZWw7CiAKICAgICB0aGlzLl9vdmVydmlld0dyaWQgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lR3JpZCgpOwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5lbGVtZW50
LmlkID0gInRpbWVsaW5lLW92ZXJ2aWV3LWdyaWQiOwpAQCAtNTgsMTEgKzUwLDE0IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSA9IGZ1bmN0aW9uKGNhdGVnb3JpZXMpCiAKICAg
ICB0aGlzLl9jYXRlZ29yeUdyYXBocyA9IHt9OwogICAgIHZhciBpID0gMDsKLSAgICBmb3IgKHZh
ciBjYXRlZ29yeSBpbiB0aGlzLl9jYXRlZ29yaWVzKSB7Ci0gICAgICAgIHZhciBjYXRlZ29yeUdy
YXBoID0gbmV3IFdlYkluc3BlY3Rvci5UaW1lbGluZUNhdGVnb3J5R3JhcGgodGhpcy5fY2F0ZWdv
cmllc1tjYXRlZ29yeV0sIGkrKyAlIDIpOworICAgIHZhciBjYXRlZ29yaWVzID0gdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllczsKKyAgICBmb3IgKHZhciBjYXRlZ29yeSBpbiBjYXRl
Z29yaWVzKSB7CisgICAgICAgIHZhciBjYXRlZ29yeUdyYXBoID0gbmV3IFdlYkluc3BlY3Rvci5U
aW1lbGluZUNhdGVnb3J5R3JhcGgoY2F0ZWdvcmllc1tjYXRlZ29yeV0sIGkrKyAlIDIpOwogICAg
ICAgICB0aGlzLl9jYXRlZ29yeUdyYXBoc1tjYXRlZ29yeV0gPSBjYXRlZ29yeUdyYXBoOwogICAg
ICAgICB0aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50LmFwcGVuZENoaWxkKGNh
dGVnb3J5R3JhcGguZ3JhcGhFbGVtZW50KTsKICAgICB9CisgICAgdGhpcy5fcHJlc2VudGF0aW9u
TW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25N
b2RlbC5FdmVudHMuQ2F0ZWdvcnlWaXNpYmlsaXR5Q2hhbmdlZCwgdGhpcy5fb25DYXRlZ29yeVZp
c2liaWxpdHlDaGFuZ2VkLCB0aGlzKTsKKwogICAgIHRoaXMuX292ZXJ2aWV3R3JpZC5zZXRTY3Jv
bGxBbmREaXZpZGVyVG9wKDAsIDApOwogCiAgICAgdGhpcy5fb3ZlcnZpZXdXaW5kb3dFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC0xMTEsMTMgKzEwNiwxMCBAQCBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl9vdmVydmlld0dyaWQuaXRlbXNHcmFwaHNFbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRl
biIpOwogICAgIH0sCiAKLSAgICBfb25DaGVja2JveENsaWNrZWQ6IGZ1bmN0aW9uIChjYXRlZ29y
eSwgZXZlbnQpIHsKLSAgICAgICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKQotICAgICAgICAg
ICAgY2F0ZWdvcnkuaGlkZGVuID0gZmFsc2U7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNh
dGVnb3J5LmhpZGRlbiA9IHRydWU7Ci0gICAgICAgIHRoaXMuX2NhdGVnb3J5R3JhcGhzW2NhdGVn
b3J5Lm5hbWVdLmRpbW1lZCA9ICFldmVudC50YXJnZXQuY2hlY2tlZDsKLSAgICAgICAgdGhpcy5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoImZpbHRlciBjaGFuZ2VkIik7CisgICAgX29uQ2F0ZWdv
cnlWaXNpYmlsaXR5Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB2YXIg
Y2F0ZWdvcnkgPSBldmVudC5kYXRhOworICAgICAgICB0aGlzLl9jYXRlZ29yeUdyYXBoc1tjYXRl
Z29yeS5uYW1lXS5kaW1tZWQgPSBjYXRlZ29yeS5oaWRkZW47CiAgICAgfSwKIAogICAgIF9mb3JB
bGxSZWNvcmRzOiBmdW5jdGlvbihyZWNvcmRzQXJyYXksIGNhbGxiYWNrKQpAQCAtMTM1LDcgKzEy
Nyw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMuX3Nob3dTaG9ydEV2ZW50cyA9IHNob3dTaG9ydEV2ZW50czsKICAgICAgICAg
Ly8gQ2xlYXIgc3VtbWFyeSBiYXJzLgogICAgICAgICB2YXIgdGltZWxpbmVzID0ge307Ci0gICAg
ICAgIGZvciAodmFyIGNhdGVnb3J5IGluIHRoaXMuX2NhdGVnb3JpZXMpIHsKKyAgICAgICAgZm9y
ICh2YXIgY2F0ZWdvcnkgaW4gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllcykgewog
ICAgICAgICAgICAgdGltZWxpbmVzW2NhdGVnb3J5XSA9IFtdOwogICAgICAgICAgICAgdGhpcy5f
Y2F0ZWdvcnlHcmFwaHNbY2F0ZWdvcnldLmNsZWFyQ2h1bmtzKCk7CiAgICAgICAgIH0KQEAgLTE1
OCw3ICsxNTAsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9mb3JBbGxSZWNvcmRzKHJlY29yZHMsIG1hcmtQZXJjZW50YWdl
c0ZvclJlY29yZC5iaW5kKHRoaXMpKTsKIAogICAgICAgICAvLyBDb252ZXJ0IHNwYXJzZSBhcnJh
eXMgdG8gY29udGludW91cyBzZWdtZW50cywgcmVuZGVyIGdyYXBocyBmb3IgZWFjaC4KLSAgICAg
ICAgZm9yICh2YXIgY2F0ZWdvcnkgaW4gdGhpcy5fY2F0ZWdvcmllcykgeworICAgICAgICBmb3Ig
KHZhciBjYXRlZ29yeSBpbiB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzKSB7CiAg
ICAgICAgICAgICB2YXIgdGltZWxpbmUgPSB0aW1lbGluZXNbY2F0ZWdvcnldOwogICAgICAgICAg
ICAgd2luZG93LnRpbWVsaW5lU2F2ZWQgPSB0aW1lbGluZTsKICAgICAgICAgICAgIHZhciBjaHVu
a1N0YXJ0ID0gLTE7CkBAIC0yMDYsOCArMTk4LDYgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3Zl
cnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICBzaWRlYmFyUmVzaXplZDogZnVuY3Rpb24od2lk
dGgpCiAgICAgewogICAgICAgICB0aGlzLl9vdmVydmlld0dyaWQuZWxlbWVudC5zdHlsZS5sZWZ0
ID0gd2lkdGggKyAicHgiOwotICAgICAgICAvLyBNaW4gd2lkdGggPSA8bnVtYmVyIG9mIGJ1dHRv
bnMgb24gdGhlIGxlZnQ+ICogMzEKLSAgICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLnN0eWxl
LmxlZnQgPSBNYXRoLm1heCg3ICogMzEsIHdpZHRoKSArICJweCI7CiAgICAgfSwKIAogICAgIHJl
c2V0OiBmdW5jdGlvbigpCkBAIC0zMzksNyArMzI5LDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
T3ZlcnZpZXdQYW5lLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9vdmVy
dmlld1dpbmRvd0VsZW1lbnQuc3R5bGUud2lkdGggPSAodGhpcy53aW5kb3dSaWdodCAtIHRoaXMu
d2luZG93TGVmdCkgKiAxMDAgKyAiJSI7CiAgICAgICAgIHRoaXMuX292ZXJ2aWV3V2luZG93Qm9y
ZGVyc0VsZW1lbnQuc3R5bGUucmlnaHQgPSAoMSAtIHRoaXMud2luZG93UmlnaHQgKyAyICogcnVs
ZXJBZGp1c3RtZW50KSAqIDEwMCArICIlIjsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoIndpbmRvdyBjaGFuZ2VkIik7CisgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1v
ZGVsLnNldFdpbmRvd1Bvc2l0aW9uKHRoaXMud2luZG93TGVmdCwgdGhpcy53aW5kb3dSaWdodCk7
CiAgICAgfSwKIAogICAgIF9lbmRXaW5kb3dEcmFnZ2luZzogZnVuY3Rpb24oZXZlbnQpCkBAIC0z
NTEsMzIgKzM0MSw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5wcm90b3R5
cGUgPSB7CiAgICAgewogICAgICAgICBpZiAodHlwZW9mIGV2ZW50LndoZWVsRGVsdGFYID09PSAi
bnVtYmVyIiAmJiBldmVudC53aGVlbERlbHRhWCAhPT0gMCkKICAgICAgICAgICAgIHRoaXMuX3dp
bmRvd0RyYWdnaW5nKGV2ZW50LnBhZ2VYICsgTWF0aC5yb3VuZChldmVudC53aGVlbERlbHRhWCAq
IFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZS5XaW5kb3dTY3JvbGxTcGVlZEZhY3Rv
ciksIHRoaXMuX2xlZnRSZXNpemVFbGVtZW50Lm9mZnNldExlZnQgKyBXZWJJbnNwZWN0b3IuVGlt
ZWxpbmVPdmVydmlld1BhbmUuUmVzaXplck9mZnNldCwgdGhpcy5fcmlnaHRSZXNpemVFbGVtZW50
Lm9mZnNldExlZnQgKyBXZWJJbnNwZWN0b3IuVGltZWxpbmVPdmVydmlld1BhbmUuUmVzaXplck9m
ZnNldCwgZXZlbnQpOwotICAgIH0sCi0KLSAgICBfY3JlYXRlVGltZWxpbmVDYXRlZ29yeVN0YXR1
c0JhckNoZWNrYm94OiBmdW5jdGlvbihjYXRlZ29yeSwgb25DaGVja2JveENsaWNrZWQpCi0gICAg
ewotICAgICAgICB2YXIgbGFiZWxDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKLSAgICAgICAgbGFiZWxDb250YWluZXIuYWRkU3R5bGVDbGFzcygidGltZWxpbmUtY2F0
ZWdvcnktc3RhdHVzYmFyLWl0ZW0iKTsKLSAgICAgICAgbGFiZWxDb250YWluZXIuYWRkU3R5bGVD
bGFzcygidGltZWxpbmUtY2F0ZWdvcnktIiArIGNhdGVnb3J5Lm5hbWUpOwotICAgICAgICBsYWJl
bENvbnRhaW5lci5hZGRTdHlsZUNsYXNzKCJzdGF0dXMtYmFyLWl0ZW0iKTsKLQotICAgICAgICB2
YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwotICAgICAgICB2YXIg
Y2hlY2tFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKLSAgICAgICAg
Y2hlY2tFbGVtZW50LnR5cGUgPSAiY2hlY2tib3giOwotICAgICAgICBjaGVja0VsZW1lbnQuY2xh
c3NOYW1lID0gInRpbWVsaW5lLWNhdGVnb3J5LWNoZWNrYm94IjsKLSAgICAgICAgY2hlY2tFbGVt
ZW50LmNoZWNrZWQgPSB0cnVlOwotICAgICAgICBjaGVja0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBvbkNoZWNrYm94Q2xpY2tlZCwgZmFsc2UpOwotICAgICAgICBsYWJlbC5hcHBl
bmRDaGlsZChjaGVja0VsZW1lbnQpOwotCi0gICAgICAgIHZhciB0eXBlRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgdHlwZUVsZW1lbnQuY2xhc3NOYW1l
ID0gInR5cGUiOwotICAgICAgICB0eXBlRWxlbWVudC50ZXh0Q29udGVudCA9IGNhdGVnb3J5LnRp
dGxlOwotICAgICAgICBsYWJlbC5hcHBlbmRDaGlsZCh0eXBlRWxlbWVudCk7Ci0KLSAgICAgICAg
bGFiZWxDb250YWluZXIuYXBwZW5kQ2hpbGQobGFiZWwpOwotICAgICAgICByZXR1cm4gbGFiZWxD
b250YWluZXI7CiAgICAgfQotCiB9CiAKIFdlYkluc3BlY3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFu
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFu
ZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwu
anMKaW5kZXggYjUwODU3NGQ4YzllN2NhNjA4ZWIwY2ZhOWMzYjE3YjFlM2I2NjlhYi4uNmMxM2Fk
NDIxY2ZiNzljYzU3ZDAwNTU4YzFhMjU5YmY3OWFjYTZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtMzcsNiArMzcs
MTMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5z
cGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInRpbWVsaW5lIik7CiAgICAgdGhpcy5yZWdpc3RlclJl
cXVpcmVkQ1NTKCJ0aW1lbGluZVBhbmVsLmNzcyIpOwogCisgICAgdGhpcy5fcHJlc2VudGF0aW9u
TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwoKTsKKyAg
ICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRDYXRlZ29yeShuZXcgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQ2F0ZWdvcnkoImxvYWRpbmciLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvYWRpbmci
KSwgInJnYig0NywxMDIsMjM2KSIpKTsKKyAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRD
YXRlZ29yeShuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInNjcmlwdGluZyIsIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiU2NyaXB0aW5nIiksICJyZ2IoMTU3LDIzMSwxMTkpIikpOwor
ICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZENhdGVnb3J5KG5ldyBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVDYXRlZ29yeSgicmVuZGVyaW5nIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZW5k
ZXJpbmciKSwgInJnYigxNjQsNjAsMjU1KSIpKTsKKyAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LkV2ZW50cy5XaW5kb3dDaGFuZ2VkLCB0aGlzLl9zY2hlZHVsZVJlZnJlc2guYmluZCh0aGlzLCBm
YWxzZSkpOworICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkNhdGVnb3J5VmlzaWJp
bGl0eUNoYW5nZWQsIHRoaXMuX3NjaGVkdWxlUmVmcmVzaC5iaW5kKHRoaXMsIHRydWUpKTsKKwog
ICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVUb3BQYW5lKCkpOwogICAg
IHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2NvbnRl
eHRNZW51LmJpbmQodGhpcyksIHRydWUpOwogICAgIHRoaXMuZWxlbWVudC50YWJJbmRleCA9IDA7
CkBAIC0yMDMsOSArMjEwLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0b3BQYW5lU2lkZWJhclRyZWUuYXBwZW5kQ2hpbGQobWVtb3J5T3ZlcnZp
ZXdJdGVtKTsKICAgICAgICAgbWVtb3J5T3ZlcnZpZXdJdGVtLm9uc2VsZWN0ID0gdGhpcy5fbWVt
b3J5T3ZlcnZpZXdJdGVtU2VsZWN0ZWQuYmluZCh0aGlzKTsKIAotICAgICAgICB0aGlzLl9vdmVy
dmlld1BhbmUgPSBuZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lT3ZlcnZpZXdQYW5lKHRoaXMuY2F0
ZWdvcmllcyk7Ci0gICAgICAgIHRoaXMuX292ZXJ2aWV3UGFuZS5hZGRFdmVudExpc3RlbmVyKCJ3
aW5kb3cgY2hhbmdlZCIsIHRoaXMuX3dpbmRvd0NoYW5nZWQsIHRoaXMpOwotICAgICAgICB0aGlz
Ll9vdmVydmlld1BhbmUuYWRkRXZlbnRMaXN0ZW5lcigiZmlsdGVyIGNoYW5nZWQiLCB0aGlzLl9y
ZWZyZXNoLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fb3ZlcnZpZXdQYW5lID0gbmV3IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZU92ZXJ2aWV3UGFuZSh0aGlzLl9wcmVzZW50YXRpb25Nb2RlbCk7CiAgICAg
ICAgIHRvcFBhbmVFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX292ZXJ2aWV3UGFuZS5lbGVtZW50
KTsKIAogICAgICAgICB2YXIgc2VwYXJhdG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwpAQCAtMjI5LDIyICsyMzQsMTAgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcmVzdWx0ID0gW3RoaXMudG9nZ2xlRmlsdGVy
QnV0dG9uLmVsZW1lbnQsIHRoaXMudG9nZ2xlVGltZWxpbmVCdXR0b24uZWxlbWVudCwgdGhpcy5n
YXJiYWdlQ29sbGVjdEJ1dHRvbi5lbGVtZW50LCB0aGlzLmNsZWFyQnV0dG9uLmVsZW1lbnRdOwog
ICAgICAgICBpZiAodGhpcy5fbWVtb3J5U3RhdGlzdGljc0J1dHRvbikKICAgICAgICAgICAgIHJl
c3VsdC5wdXNoKHRoaXMuX21lbW9yeVN0YXRpc3RpY3NCdXR0b24uZWxlbWVudCk7Ci0gICAgICAg
IHJlc3VsdC5wdXNoKHRoaXMuX292ZXJ2aWV3UGFuZS5zdGF0dXNCYXJGaWx0ZXJzKTsKKyAgICAg
ICAgcmVzdWx0LnB1c2godGhpcy5zdGF0dXNCYXJGaWx0ZXJzKTsKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9LAogCi0gICAgZ2V0IGNhdGVnb3JpZXMoKQotICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLl9jYXRlZ29yaWVzKSB7Ci0gICAgICAgICAgICB0aGlzLl9jYXRlZ29yaWVzID0gewot
ICAgICAgICAgICAgICAgIGxvYWRpbmc6IG5ldyBXZWJJbnNwZWN0b3IuVGltZWxpbmVDYXRlZ29y
eSgibG9hZGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiTG9hZGluZyIpLCAicmdiKDQ3LDEw
MiwyMzYpIiksCi0gICAgICAgICAgICAgICAgc2NyaXB0aW5nOiBuZXcgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQ2F0ZWdvcnkoInNjcmlwdGluZyIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2NyaXB0
aW5nIiksICJyZ2IoMTU3LDIzMSwxMTkpIiksCi0gICAgICAgICAgICAgICAgcmVuZGVyaW5nOiBu
ZXcgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnkoInJlbmRlcmluZyIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUmVuZGVyaW5nIiksICJyZ2IoMTY0LDYwLDI1NSkiKQotICAgICAgICAgICAg
fTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdGhpcy5fY2F0ZWdvcmllczsKLSAgICB9LAot
CiAgICAgZ2V0IGRlZmF1bHRGb2N1c2VkRWxlbWVudCgpCiAgICAgewogICAgICAgICByZXR1cm4g
dGhpcy5lbGVtZW50OwpAQCAtMjU0LDMxICsyNDcsMzMgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5l
UGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRTdHls
ZXNBcnJheSkgewogICAgICAgICAgICAgdmFyIHJlY29yZFR5cGVzID0gV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQWdlbnQuUmVjb3JkVHlwZTsKKyAgICAgICAgICAgIHZhciBjYXRlZ29yaWVzID0gdGhp
cy5fcHJlc2VudGF0aW9uTW9kZWwuY2F0ZWdvcmllczsKKwogICAgICAgICAgICAgdmFyIHJlY29y
ZFN0eWxlcyA9IHt9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkV2ZW50
RGlzcGF0Y2hdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFdmVudCIpLCBjYXRl
Z29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5
bGVzW3JlY29yZFR5cGVzLkxheW91dF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkxheW91dCIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnJlbmRlcmluZyB9OwotICAgICAg
ICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlY2FsY3VsYXRlU3R5bGVzXSA9IHsgdGl0
bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjYWxjdWxhdGUgU3R5bGUiKSwgY2F0ZWdvcnk6
IHRoaXMuY2F0ZWdvcmllcy5yZW5kZXJpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1ty
ZWNvcmRUeXBlcy5QYWludF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhaW50
IiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMucmVuZGVyaW5nIH07Ci0gICAgICAgICAgICBy
ZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUGFyc2VIVE1MXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiUGFyc2UiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2FkaW5nIH07
Ci0gICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGltZXJJbnN0YWxsXSA9IHsg
dGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiSW5zdGFsbCBUaW1lciIpLCBjYXRlZ29yeTog
dGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3Jl
Y29yZFR5cGVzLlRpbWVyUmVtb3ZlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
UmVtb3ZlIFRpbWVyIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2NyaXB0aW5nIH07Ci0g
ICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGltZXJGaXJlXSA9IHsgdGl0bGU6
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGltZXIgRmlyZWQiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0
ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBl
cy5YSFJSZWFkeVN0YXRlQ2hhbmdlXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
WEhSIFJlYWR5IFN0YXRlIENoYW5nZSIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlw
dGluZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlhIUkxvYWRdID0g
eyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYSFIgTG9hZCIpLCBjYXRlZ29yeTogdGhp
cy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLkV2YWx1YXRlU2NyaXB0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RXZhbHVhdGUgU2NyaXB0IiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2NyaXB0aW5nIH07
Ci0gICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuVGltZVN0YW1wXSA9IHsgdGl0
bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RhbXAiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdv
cmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5S
ZXNvdXJjZVNlbmRSZXF1ZXN0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vu
ZCBSZXF1ZXN0IiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMubG9hZGluZyB9OwotICAgICAg
ICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlc291cmNlUmVjZWl2ZVJlc3BvbnNlXSA9
IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVjZWl2ZSBSZXNwb25zZSIpLCBjYXRl
Z29yeTogdGhpcy5jYXRlZ29yaWVzLmxvYWRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5SZXNvdXJjZUZpbmlzaF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkZpbmlzaCBMb2FkaW5nIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMubG9hZGlu
ZyB9OwotICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkZ1bmN0aW9uQ2FsbF0g
PSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1bmN0aW9uIENhbGwiKSwgY2F0ZWdv
cnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5SZXNvdXJjZVJlY2VpdmVkRGF0YV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlJlY2VpdmUgRGF0YSIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLmxv
YWRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5HQ0V2ZW50XSA9
IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiR0MgRXZlbnQiKSwgY2F0ZWdvcnk6IHRo
aXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNv
cmRUeXBlcy5NYXJrRE9NQ29udGVudF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkRPTUNvbnRlbnQgZXZlbnQiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3JpcHRpbmcg
fTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5NYXJrTG9hZF0gPSB7IHRp
dGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxvYWQgZXZlbnQiKSwgY2F0ZWdvcnk6IHRoaXMu
Y2F0ZWdvcmllcy5zY3JpcHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRU
eXBlcy5TY2hlZHVsZVJlc291cmNlUmVxdWVzdF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNjaGVkdWxlIFJlcXVlc3QiKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5sb2Fk
aW5nIH07Ci0gICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVnaXN0ZXJBbmlt
YXRpb25GcmFtZUNhbGxiYWNrXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVn
aXN0ZXIgQW5pbWF0aW9uIENhbGxiYWNrIiksIGNhdGVnb3J5OiB0aGlzLmNhdGVnb3JpZXMuc2Ny
aXB0aW5nIH07Ci0gICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuQ2FuY2VsQW5p
bWF0aW9uRnJhbWVDYWxsYmFja10gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNh
bmNlbCBBbmltYXRpb24gQ2FsbGJhY2siKSwgY2F0ZWdvcnk6IHRoaXMuY2F0ZWdvcmllcy5zY3Jp
cHRpbmcgfTsKLSAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5GaXJlQW5pbWF0
aW9uRnJhbWVFdmVudF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkFuaW1hdGlv
biBGcmFtZSBFdmVudCIpLCBjYXRlZ29yeTogdGhpcy5jYXRlZ29yaWVzLnNjcmlwdGluZyB9Owor
ICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkV2ZW50RGlzcGF0Y2hdID0geyB0
aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFdmVudCIpLCBjYXRlZ29yeTogY2F0ZWdvcmll
c1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5M
YXlvdXRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMYXlvdXQiKSwgY2F0ZWdv
cnk6IGNhdGVnb3JpZXNbInJlbmRlcmluZyJdIH07CisgICAgICAgICAgICByZWNvcmRTdHlsZXNb
cmVjb3JkVHlwZXMuUmVjYWxjdWxhdGVTdHlsZXNdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJSZWNhbGN1bGF0ZSBTdHlsZSIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sicmVuZGVy
aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5QYWludF0gPSB7
IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhaW50IiksIGNhdGVnb3J5OiBjYXRlZ29y
aWVzWyJyZW5kZXJpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVz
LlBhcnNlSFRNTF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhcnNlIiksIGNh
dGVnb3J5OiBjYXRlZ29yaWVzWyJsb2FkaW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5UaW1lckluc3RhbGxdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJJbnN0YWxsIFRpbWVyIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9
OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlRpbWVyUmVtb3ZlXSA9IHsg
dGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVtb3ZlIFRpbWVyIiksIGNhdGVnb3J5OiBj
YXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLlRpbWVyRmlyZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRpbWVy
IEZpcmVkIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgICAgICAg
ICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlhIUlJlYWR5U3RhdGVDaGFuZ2VdID0geyB0aXRs
ZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJYSFIgUmVhZHkgU3RhdGUgQ2hhbmdlIiksIGNhdGVn
b3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVz
W3JlY29yZFR5cGVzLlhIUkxvYWRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJY
SFIgTG9hZCIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAg
ICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5FdmFsdWF0ZVNjcmlwdF0gPSB7IHRpdGxlOiBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkV2YWx1YXRlIFNjcmlwdCIpLCBjYXRlZ29yeTogY2F0ZWdv
cmllc1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBl
cy5UaW1lU3RhbXBdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTdGFtcCIpLCBj
YXRlZ29yeTogY2F0ZWdvcmllc1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0
eWxlc1tyZWNvcmRUeXBlcy5SZXNvdXJjZVNlbmRSZXF1ZXN0XSA9IHsgdGl0bGU6IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU2VuZCBSZXF1ZXN0IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJsb2Fk
aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxlc1tyZWNvcmRUeXBlcy5SZXNvdXJjZVJl
Y2VpdmVSZXNwb25zZV0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlJlY2VpdmUg
UmVzcG9uc2UiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbImxvYWRpbmciXSB9OworICAgICAgICAg
ICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLlJlc291cmNlRmluaXNoXSA9IHsgdGl0bGU6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiRmluaXNoIExvYWRpbmciKSwgY2F0ZWdvcnk6IGNhdGVnb3Jp
ZXNbImxvYWRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkZ1
bmN0aW9uQ2FsbF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZ1bmN0aW9uIENh
bGwiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlwdGluZyJdIH07CisgICAgICAgICAgICBy
ZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVzb3VyY2VSZWNlaXZlZERhdGFdID0geyB0aXRsZTog
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZWNlaXZlIERhdGEiKSwgY2F0ZWdvcnk6IGNhdGVnb3Jp
ZXNbImxvYWRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkdD
RXZlbnRdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJHQyBFdmVudCIpLCBjYXRl
Z29yeTogY2F0ZWdvcmllc1sic2NyaXB0aW5nIl0gfTsKKyAgICAgICAgICAgIHJlY29yZFN0eWxl
c1tyZWNvcmRUeXBlcy5NYXJrRE9NQ29udGVudF0gPSB7IHRpdGxlOiBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIkRPTUNvbnRlbnQgZXZlbnQiKSwgY2F0ZWdvcnk6IGNhdGVnb3JpZXNbInNjcmlwdGlu
ZyJdIH07CisgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuTWFya0xvYWRdID0g
eyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMb2FkIGV2ZW50IiksIGNhdGVnb3J5OiBj
YXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29y
ZFR5cGVzLlNjaGVkdWxlUmVzb3VyY2VSZXF1ZXN0XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiU2NoZWR1bGUgUmVxdWVzdCIpLCBjYXRlZ29yeTogY2F0ZWdvcmllc1sibG9hZGlu
ZyJdIH07CisgICAgICAgICAgICByZWNvcmRTdHlsZXNbcmVjb3JkVHlwZXMuUmVnaXN0ZXJBbmlt
YXRpb25GcmFtZUNhbGxiYWNrXSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUmVn
aXN0ZXIgQW5pbWF0aW9uIENhbGxiYWNrIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRp
bmciXSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkNhbmNlbEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2tdID0geyB0aXRsZTogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDYW5j
ZWwgQW5pbWF0aW9uIENhbGxiYWNrIiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmci
XSB9OworICAgICAgICAgICAgcmVjb3JkU3R5bGVzW3JlY29yZFR5cGVzLkZpcmVBbmltYXRpb25G
cmFtZUV2ZW50XSA9IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQW5pbWF0aW9uIEZy
YW1lIEV2ZW50IiksIGNhdGVnb3J5OiBjYXRlZ29yaWVzWyJzY3JpcHRpbmciXSB9OwogICAgICAg
ICAgICAgdGhpcy5fcmVjb3JkU3R5bGVzQXJyYXkgPSByZWNvcmRTdHlsZXM7CiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZFN0eWxlc0FycmF5OwpAQCAtMzA1LDYgKzMwMCw0
MyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
dGhpcy5yZWNvcmRzQ291bnRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAg
ICAgICAgdGhpcy5yZWNvcmRzQ291bnRlci5jbGFzc05hbWUgPSAidGltZWxpbmUtcmVjb3Jkcy1j
b3VudGVyIjsKKworICAgICAgICB0aGlzLnN0YXR1c0JhckZpbHRlcnMgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJkaXYiKTsKKyAgICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmNsYXNzTmFt
ZSA9ICJzdGF0dXMtYmFyLWl0ZW1zIjsKKyAgICAgICAgdmFyIGNhdGVnb3JpZXMgPSB0aGlzLl9w
cmVzZW50YXRpb25Nb2RlbC5jYXRlZ29yaWVzOworICAgICAgICBmb3IgKHZhciBjYXRlZ29yeU5h
bWUgaW4gY2F0ZWdvcmllcykgeworICAgICAgICAgICAgdmFyIGNhdGVnb3J5ID0gY2F0ZWdvcmll
c1tjYXRlZ29yeU5hbWVdOworICAgICAgICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLmFwcGVu
ZENoaWxkKHRoaXMuX2NyZWF0ZVRpbWVsaW5lQ2F0ZWdvcnlTdGF0dXNCYXJDaGVja2JveChjYXRl
Z29yeSwgdGhpcy5fb25DYXRlZ29yeUNoZWNrYm94Q2xpY2tlZC5iaW5kKHRoaXMsIGNhdGVnb3J5
KSkpOworICAgICAgICB9CisgICAgfSwKKworICAgIF9jcmVhdGVUaW1lbGluZUNhdGVnb3J5U3Rh
dHVzQmFyQ2hlY2tib3g6IGZ1bmN0aW9uKGNhdGVnb3J5LCBvbkNoZWNrYm94Q2xpY2tlZCkKKyAg
ICB7CisgICAgICAgIHZhciBsYWJlbENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgICAgICBsYWJlbENvbnRhaW5lci5hZGRTdHlsZUNsYXNzKCJ0aW1lbGluZS1j
YXRlZ29yeS1zdGF0dXNiYXItaXRlbSIpOworICAgICAgICBsYWJlbENvbnRhaW5lci5hZGRTdHls
ZUNsYXNzKCJ0aW1lbGluZS1jYXRlZ29yeS0iICsgY2F0ZWdvcnkubmFtZSk7CisgICAgICAgIGxh
YmVsQ29udGFpbmVyLmFkZFN0eWxlQ2xhc3MoInN0YXR1cy1iYXItaXRlbSIpOworCisgICAgICAg
IHZhciBsYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxhYmVsIik7CisgICAgICAgIHZh
ciBjaGVja0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworICAgICAg
ICBjaGVja0VsZW1lbnQudHlwZSA9ICJjaGVja2JveCI7CisgICAgICAgIGNoZWNrRWxlbWVudC5j
bGFzc05hbWUgPSAidGltZWxpbmUtY2F0ZWdvcnktY2hlY2tib3giOworICAgICAgICBjaGVja0Vs
ZW1lbnQuY2hlY2tlZCA9IHRydWU7CisgICAgICAgIGNoZWNrRWxlbWVudC5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIG9uQ2hlY2tib3hDbGlja2VkLCBmYWxzZSk7CisgICAgICAgIGxhYmVsLmFw
cGVuZENoaWxkKGNoZWNrRWxlbWVudCk7CisKKyAgICAgICAgdmFyIHR5cGVFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICB0eXBlRWxlbWVudC5jbGFzc05h
bWUgPSAidHlwZSI7CisgICAgICAgIHR5cGVFbGVtZW50LnRleHRDb250ZW50ID0gY2F0ZWdvcnku
dGl0bGU7CisgICAgICAgIGxhYmVsLmFwcGVuZENoaWxkKHR5cGVFbGVtZW50KTsKKworICAgICAg
ICBsYWJlbENvbnRhaW5lci5hcHBlbmRDaGlsZChsYWJlbCk7CisgICAgICAgIHJldHVybiBsYWJl
bENvbnRhaW5lcjsKKyAgICB9LAorCisgICAgX29uQ2F0ZWdvcnlDaGVja2JveENsaWNrZWQ6IGZ1
bmN0aW9uKGNhdGVnb3J5LCBldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLnNldENhdGVnb3J5VmlzaWJpbGl0eShjYXRlZ29yeSwgZXZlbnQudGFyZ2V0LmNoZWNr
ZWQpOwogICAgIH0sCiAKICAgICBfcmVnaXN0ZXJTaG9ydGN1dHM6IGZ1bmN0aW9uKCkKQEAgLTU0
MCw3ICs1NzIsNyBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW5Db3VudDsgKytpKQogICAgICAgICAg
ICAgdGhpcy5faW5uZXJBZGRSZWNvcmRUb1RpbWVsaW5lKGNoaWxkcmVuW2ldLCBmb3JtYXR0ZWRS
ZWNvcmQpOwogCi0gICAgICAgIGZvcm1hdHRlZFJlY29yZC5fY2FsY3VsYXRlQWdncmVnYXRlZFN0
YXRzKHRoaXMuY2F0ZWdvcmllcyk7CisgICAgICAgIGZvcm1hdHRlZFJlY29yZC5fY2FsY3VsYXRl
QWdncmVnYXRlZFN0YXRzKHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmNhdGVnb3JpZXMpOwogCiAg
ICAgICAgIGlmIChjb25uZWN0ZWRUb09sZFJlY29yZCkgewogICAgICAgICAgICAgcmVjb3JkID0g
Zm9ybWF0dGVkUmVjb3JkOwpAQCAtNTY5LDYgKzYwMSw5IEBAIFdlYkluc3BlY3Rvci5UaW1lbGlu
ZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdG9wUGFuZVNpZGViYXJFbGVtZW50
LnN0eWxlLndpZHRoID0gd2lkdGggKyAicHgiOwogICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJl
c2goZmFsc2UpOwogICAgICAgICB0aGlzLl9vdmVydmlld1BhbmUuc2lkZWJhclJlc2l6ZWQod2lk
dGgpOworICAgICAgICAvLyBNaW4gd2lkdGggPSA8bnVtYmVyIG9mIGJ1dHRvbnMgb24gdGhlIGxl
ZnQ+ICogMzEKKyAgICAgICAgdGhpcy5zdGF0dXNCYXJGaWx0ZXJzLnN0eWxlLmxlZnQgPSBNYXRo
Lm1heCg3ICogMzEsIHdpZHRoKSArICJweCI7CisKICAgICAgICAgaWYgKHRoaXMuX21lbW9yeVN0
YXRpc3RpY3MpCiAgICAgICAgICAgICB0aGlzLl9tZW1vcnlTdGF0aXN0aWNzLnNldFNpZGViYXJX
aWR0aCh3aWR0aCk7CiAgICAgfSwKQEAgLTYzOCwxMiArNjczLDYgQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zY2hlZHVsZVJlZnJlc2go
dHJ1ZSk7CiAgICAgfSwKIAotICAgIF93aW5kb3dDaGFuZ2VkOiBmdW5jdGlvbigpCi0gICAgewot
ICAgICAgICB0aGlzLl9jbG9zZVJlY29yZERldGFpbHMoKTsKLSAgICAgICAgdGhpcy5fc2NoZWR1
bGVSZWZyZXNoKGZhbHNlKTsKLSAgICB9LAotCiAgICAgX3NjaGVkdWxlUmVmcmVzaDogZnVuY3Rp
b24ocHJlc2VydmVCb3VuZGFyaWVzKQogICAgIHsKICAgICAgICAgdGhpcy5fY2xvc2VSZWNvcmRE
ZXRhaWxzKCk7CkBAIC02ODAsOCArNzA5LDggQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
cHJvdG90eXBlID0gewogICAgIF91cGRhdGVCb3VuZGFyaWVzOiBmdW5jdGlvbigpCiAgICAgewog
ICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLnJlc2V0KCk7Ci0gICAgICAgIHRoaXMuX2NhbGN1bGF0
b3Iud2luZG93TGVmdCA9IHRoaXMuX292ZXJ2aWV3UGFuZS53aW5kb3dMZWZ0OwotICAgICAgICB0
aGlzLl9jYWxjdWxhdG9yLndpbmRvd1JpZ2h0ID0gdGhpcy5fb3ZlcnZpZXdQYW5lLndpbmRvd1Jp
Z2h0OworICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLndpbmRvd0xlZnQgPSB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC53aW5kb3dMZWZ0OworICAgICAgICB0aGlzLl9jYWxjdWxhdG9yLndpbmRvd1Jp
Z2h0ID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwud2luZG93UmlnaHQ7CiAKICAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yb290UmVjb3JkLmNoaWxkcmVuLmxlbmd0aDsgKytpKQog
ICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRvci51cGRhdGVCb3VuZGFyaWVzKHRoaXMuX3Jvb3RS
ZWNvcmQuY2hpbGRyZW5baV0pOwpAQCAtODUwLDcgKzg3OSw3IEBAIFdlYkluc3BlY3Rvci5UaW1l
bGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfc2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGFuY2hv
ciwgcG9wb3ZlcikKICAgICB7CiAgICAgICAgIHZhciByZWNvcmQgPSBhbmNob3Iucm93Ll9yZWNv
cmQ7Ci0gICAgICAgIHBvcG92ZXIuc2hvdyhyZWNvcmQuX2dlbmVyYXRlUG9wdXBDb250ZW50KHRo
aXMuX2NhbGN1bGF0b3IsIHRoaXMuY2F0ZWdvcmllcyksIGFuY2hvcik7CisgICAgICAgIHBvcG92
ZXIuc2hvdyhyZWNvcmQuX2dlbmVyYXRlUG9wdXBDb250ZW50KHRoaXMuX2NhbGN1bGF0b3IsIHRo
aXMuX3ByZXNlbnRhdGlvbk1vZGVsLmNhdGVnb3JpZXMpLCBhbmNob3IpOwogICAgIH0sCiAKICAg
ICBfY2xvc2VSZWNvcmREZXRhaWxzOiBmdW5jdGlvbigpCkBAIC0xNTI4LDMgKzE1NTcsNTcgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lTW9kZWwucHJvdG90eXBlID0gewogfQogCiBXZWJJbnNwZWN0
b3IuVGltZWxpbmVNb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVj
dC5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5z
cGVjdG9yLk9iamVjdH0KKyAqLworV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9k
ZWwgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fY2F0ZWdvcmllcyA9IHt9OworICAgIHRoaXMu
d2luZG93TGVmdCA9IDAuMDsKKyAgICB0aGlzLndpbmRvd1JpZ2h0ID0gMS4wOworfQorCitXZWJJ
bnNwZWN0b3IuVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMgPSB7CisgICAgV2luZG93
Q2hhbmdlZDogIldpbmRvd0NoYW5nZWQiLAorICAgIENhdGVnb3J5VmlzaWJpbGl0eUNoYW5nZWQ6
ICJDYXRlZ29yeVZpc2liaWxpdHlDaGFuZ2VkIgorfQorCitXZWJJbnNwZWN0b3IuVGltZWxpbmVQ
cmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGNhdGVnb3JpZXMoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXM7CisgICAgfSwKKworICAgIC8qKgor
ICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRpbWVsaW5lQ2F0ZWdvcnl9IGNhdGVnb3J5Cisg
ICAgICovCisgICAgYWRkQ2F0ZWdvcnk6IGZ1bmN0aW9uKGNhdGVnb3J5KQorICAgIHsKKyAgICAg
ICAgdGhpcy5fY2F0ZWdvcmllc1tjYXRlZ29yeS5uYW1lXSA9IGNhdGVnb3J5OworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGVmdAorICAgICAqIEBwYXJhbSB7bnVt
YmVyfSByaWdodAorICAgICAqLworICAgIHNldFdpbmRvd1Bvc2l0aW9uOiBmdW5jdGlvbihsZWZ0
LCByaWdodCkKKyAgICB7CisgICAgICAgIHRoaXMud2luZG93TGVmdCA9IGxlZnQ7CisgICAgICAg
IHRoaXMud2luZG93UmlnaHQgPSByaWdodDsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9M
aXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLldp
bmRvd0NoYW5nZWQpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuVGltZWxpbmVDYXRlZ29yeX0gY2F0ZWdvcnkKKyAgICAgKiBAcGFyYW0ge2Jvb2xl
YW59IHZpc2libGUKKyAgICAgKi8KKyAgICBzZXRDYXRlZ29yeVZpc2liaWxpdHk6IGZ1bmN0aW9u
KGNhdGVnb3J5LCB2aXNpYmxlKQorICAgIHsKKyAgICAgICAgY2F0ZWdvcnkuaGlkZGVuID0gIXZp
c2libGU7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5DYXRlZ29yeVZpc2liaWxpdHlDaGFu
Z2VkLCBjYXRlZ29yeSk7CisgICAgfQorfQorCitXZWJJbnNwZWN0b3IuVGltZWxpbmVQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90
b3R5cGU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>