<?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>159782</bug_id>
          
          <creation_ts>2016-07-14 14:23:17 -0700</creation_ts>
          <short_desc>Web Inspector: Rename CCTNode to CallingContextTreeNode</short_desc>
          <delta_ts>2016-07-18 14:13:57 -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>DoNotImportToRadar</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="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1211140</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-14 14:23:17 -0700</bug_when>
    <thetext>Rename CCTNode to CallingContextTreeNode and move to its own file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211141</commentid>
    <comment_count>1</comment_count>
      <attachid>283684</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-14 14:24:28 -0700</bug_when>
    <thetext>Created attachment 283684
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211211</commentid>
    <comment_count>2</comment_count>
      <attachid>283702</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-14 16:24:30 -0700</bug_when>
    <thetext>Created attachment 283702
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1211232</commentid>
    <comment_count>3</comment_count>
      <attachid>283702</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-14 16:39:01 -0700</bug_when>
    <thetext>Comment on attachment 283702
[PATCH] For Landing

Clearing flags on attachment: 283702

Committed r203254: &lt;http://trac.webkit.org/changeset/203254&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283684</attachid>
            <date>2016-07-14 14:24:28 -0700</date>
            <delta_ts>2016-07-14 14:39:31 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rename-1.patch</filename>
            <type>text/plain</type>
            <size>20644</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDYwY2YxY2MuLjkzNzU5N2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE2LTA3LTE0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVuYW1l
IENDVE5vZGUgdG8gQ2FsbGluZ0NvbnRleHRUcmVlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5n
Q29udGV4dFRyZWUuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0Nv
bnRleHRUcmVlTm9kZS5qczoKKyAgICAgICAgRXh0cmEgdG8gaXRzIG93biBmaWxlIGFuZCByZW5h
bWUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4uaHRtbDoKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3RTdHViLmh0
bWw6CisgICAgICAgIEluY2x1ZGUgdGhlIG5ldyBmaWxlLgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWROb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlByb2ZpbGVEYXRhR3JpZE5vZGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvUHJv
ZmlsZURhdGFHcmlkVHJlZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdy
aWRUcmVlLnByb3RvdHlwZS5fdXBkYXRlQ3VycmVudEZvY3VzRGV0YWlscyk6CisgICAgICAgIFJl
bmFtZSBzaG9ydGhhbmQgImNjdG5vZGUiLgorCisyMDE2LTA3LTE0ICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogTWFpbnRhaW4g
c2VsZWN0ZWQgZnVuY3Rpb24gd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiBkaWZmZXJlbnQgcHJvZmls
ZSByZXByZXNlbnRhdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1OTc3OAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjczNTU5MTM+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggNThmZGNj
Yy4uNTI1Y2YxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01h
aW4uaHRtbApAQCAtMjgzLDYgKzI4Myw3IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9CcmFu
Y2guanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJlYWtwb2ludC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9k
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DU1NDb21wbGV0aW9ucy5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DU1NLZXl3b3JkQ29tcGxldGlv
bnMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTTWVkaWEuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMKaW5kZXggYmM1ZjFmNy4uNjIz
NDhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzCkBAIC00MSw3ICs0MSw3IEBA
IFdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWUgPSBjbGFzcyBDYWxsaW5nQ29udGV4dFRy
ZWUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAKICAgICByZXNldCgpCiAgICAgewotICAgICAgICB0
aGlzLl9yb290ID0gbmV3IFdlYkluc3BlY3Rvci5DQ1ROb2RlKC0xLCAtMSwgLTEsICI8cm9vdD4i
LCBudWxsKTsKKyAgICAgICAgdGhpcy5fcm9vdCA9IG5ldyBXZWJJbnNwZWN0b3IuQ2FsbGluZ0Nv
bnRleHRUcmVlTm9kZSgtMSwgLTEsIC0xLCAiPHJvb3Q+IiwgbnVsbCk7CiAgICAgICAgIHRoaXMu
X3RvdGFsTnVtYmVyT2ZTYW1wbGVzID0gMDsKICAgICB9CiAKQEAgLTE2OCwyMjYgKzE2OCw2IEBA
IFdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWUgPSBjbGFzcyBDYWxsaW5nQ29udGV4dFRy
ZWUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuCiAgICAgfQogfTsKIAotV2ViSW5zcGVjdG9yLkNDVE5v
ZGUgPSBjbGFzcyBDQ1ROb2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAotewotICAgIGNv
bnN0cnVjdG9yKHNvdXJjZUlELCBsaW5lLCBjb2x1bW4sIG5hbWUsIHVybCwgaGFzaCkKLSAgICB7
Ci0gICAgICAgIHN1cGVyKCk7Ci0KLSAgICAgICAgdGhpcy5fY2hpbGRyZW4gPSB7fTsKLSAgICAg
ICAgdGhpcy5fc291cmNlSUQgPSBzb3VyY2VJRDsKLSAgICAgICAgdGhpcy5fbGluZSA9IGxpbmU7
Ci0gICAgICAgIHRoaXMuX2NvbHVtbiA9IGNvbHVtbjsKLSAgICAgICAgdGhpcy5fbmFtZSA9IG5h
bWU7Ci0gICAgICAgIHRoaXMuX3VybCA9IHVybDsKLSAgICAgICAgdGhpcy5fdWlkID0gV2ViSW5z
cGVjdG9yLkNDVE5vZGUuX191aWQrKzsKLQotICAgICAgICB0aGlzLl90aW1lc3RhbXBzID0gW107
Ci0gICAgICAgIHRoaXMuX2R1cmF0aW9ucyA9IFtdOwotICAgICAgICB0aGlzLl9sZWFmVGltZXN0
YW1wcyA9IFtdOwotICAgICAgICB0aGlzLl9sZWFmRHVyYXRpb25zID0gW107Ci0gICAgICAgIHRo
aXMuX2V4cHJlc3Npb25Mb2NhdGlvbnMgPSB7fTsgLy8gS2V5cyBhcmUgImxpbmU6Y29sdW1uIiBz
dHJpbmdzLiBWYWx1ZXMgYXJlIGFycmF5cyBvZiB0aW1lc3RhbXBzIGluIHNvcnRlZCBvcmRlci4K
LQotICAgICAgICB0aGlzLl9oYXNoID0gaGFzaCB8fCBXZWJJbnNwZWN0b3IuQ0NUTm9kZS5faGFz
aCh0aGlzKTsKLSAgICB9Ci0KLSAgICAvLyBTdGF0aWMgYW5kIFByaXZhdGUKLQotICAgIHN0YXRp
YyBfaGFzaChzdGFja0ZyYW1lKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0YWNrRnJhbWUubmFt
ZSArICI6IiArIHN0YWNrRnJhbWUuc291cmNlSUQgKyAiOiIgKyBzdGFja0ZyYW1lLmxpbmUgKyAi
OiIgKyBzdGFja0ZyYW1lLmNvbHVtbjsKLSAgICB9Ci0KLSAgICAvLyBQdWJsaWMKLQotICAgIGdl
dCBzb3VyY2VJRCgpIHsgcmV0dXJuIHRoaXMuX3NvdXJjZUlEOyB9Ci0gICAgZ2V0IGxpbmUoKSB7
IHJldHVybiB0aGlzLl9saW5lOyB9Ci0gICAgZ2V0IGNvbHVtbigpIHsgcmV0dXJuIHRoaXMuX2Nv
bHVtbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB1
aWQoKSB7IHJldHVybiB0aGlzLl91aWQ7IH0KLSAgICBnZXQgdXJsKCkgeyByZXR1cm4gdGhpcy5f
dXJsOyB9Ci0gICAgZ2V0IGhhc2goKSB7IHJldHVybiB0aGlzLl9oYXNoOyB9Ci0KLSAgICBoYXND
aGlsZHJlbkluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkKLSAgICB7Ci0gICAgICAgIGZv
ciAobGV0IHByb3BlcnR5TmFtZSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0aGlzLl9j
aGlsZHJlbikpIHsKLSAgICAgICAgICAgIGxldCBjaGlsZCA9IHRoaXMuX2NoaWxkcmVuW3Byb3Bl
cnR5TmFtZV07Ci0gICAgICAgICAgICBpZiAoY2hpbGQuaGFzU3RhY2tUcmFjZUluVGltZVJhbmdl
KHN0YXJ0VGltZSwgZW5kVGltZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAKLSAgICBoYXNTdGFja1Ry
YWNlSW5UaW1lUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lKQotICAgIHsKLSAgICAgICAgY29uc29s
ZS5hc3NlcnQoc3RhcnRUaW1lIDw9IGVuZFRpbWUpOwotICAgICAgICBpZiAoc3RhcnRUaW1lID4g
ZW5kVGltZSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBsZXQgdGltZXN0
YW1wcyA9IHRoaXMuX3RpbWVzdGFtcHM7Ci0gICAgICAgIGxldCBsZW5ndGggPSB0aW1lc3RhbXBz
Lmxlbmd0aDsKLSAgICAgICAgaWYgKCFsZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICAgICAgbGV0IGluZGV4ID0gdGltZXN0YW1wcy5sb3dlckJvdW5kKHN0YXJ0VGltZSk7
Ci0gICAgICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBjb25zb2xlLmFzc2VydChzdGFydFRpbWUgPD0gdGltZXN0YW1wc1tpbmRleF0p
OwotCi0gICAgICAgIGxldCBoYXNUaW1lc3RhbXBJblJhbmdlID0gdGltZXN0YW1wc1tpbmRleF0g
PD0gZW5kVGltZTsKLSAgICAgICAgcmV0dXJuIGhhc1RpbWVzdGFtcEluUmFuZ2U7Ci0gICAgfQot
Ci0gICAgZmlsdGVyZWRUaW1lc3RhbXBzQW5kRHVyYXRpb24oc3RhcnRUaW1lLCBlbmRUaW1lKQot
ICAgIHsKLSAgICAgICAgbGV0IGxvd2VySW5kZXggPSB0aGlzLl90aW1lc3RhbXBzLmxvd2VyQm91
bmQoc3RhcnRUaW1lKTsKLSAgICAgICAgbGV0IHVwcGVySW5kZXggPSB0aGlzLl90aW1lc3RhbXBz
LnVwcGVyQm91bmQoZW5kVGltZSk7Ci0KLSAgICAgICAgbGV0IHRvdGFsRHVyYXRpb24gPSAwOwot
ICAgICAgICBmb3IgKGxldCBpID0gbG93ZXJJbmRleDsgaSA8IHVwcGVySW5kZXg7ICsraSkKLSAg
ICAgICAgICAgIHRvdGFsRHVyYXRpb24gKz0gdGhpcy5fZHVyYXRpb25zW2ldOwotCi0gICAgICAg
IHJldHVybiB7Ci0gICAgICAgICAgICB0aW1lc3RhbXBzOiB0aGlzLl90aW1lc3RhbXBzLnNsaWNl
KGxvd2VySW5kZXgsIHVwcGVySW5kZXgpLAotICAgICAgICAgICAgZHVyYXRpb246IHRvdGFsRHVy
YXRpb24sCi0gICAgICAgIH07Ci0gICAgfQotCi0gICAgZmlsdGVyZWRMZWFmVGltZXN0YW1wc0Fu
ZER1cmF0aW9uKHN0YXJ0VGltZSwgZW5kVGltZSkKLSAgICB7Ci0gICAgICAgIGxldCBsb3dlcklu
ZGV4ID0gdGhpcy5fbGVhZlRpbWVzdGFtcHMubG93ZXJCb3VuZChzdGFydFRpbWUpOwotICAgICAg
ICBsZXQgdXBwZXJJbmRleCA9IHRoaXMuX2xlYWZUaW1lc3RhbXBzLnVwcGVyQm91bmQoZW5kVGlt
ZSk7Ci0KLSAgICAgICAgbGV0IHRvdGFsRHVyYXRpb24gPSAwOwotICAgICAgICBmb3IgKGxldCBp
ID0gbG93ZXJJbmRleDsgaSA8IHVwcGVySW5kZXg7ICsraSkKLSAgICAgICAgICAgIHRvdGFsRHVy
YXRpb24gKz0gdGhpcy5fbGVhZkR1cmF0aW9uc1tpXTsKLQotICAgICAgICByZXR1cm4gewotICAg
ICAgICAgICAgbGVhZlRpbWVzdGFtcHM6IHRoaXMuX2xlYWZUaW1lc3RhbXBzLnNsaWNlKGxvd2Vy
SW5kZXgsIHVwcGVySW5kZXgpLAotICAgICAgICAgICAgbGVhZkR1cmF0aW9uOiB0b3RhbER1cmF0
aW9uLAotICAgICAgICB9OwotICAgIH0KLQotICAgIGhhc0NoaWxkcmVuKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiAhaXNFbXB0eU9iamVjdCh0aGlzLl9jaGlsZHJlbik7Ci0gICAgfQotCi0gICAg
ZmluZE9yTWFrZUNoaWxkKHN0YWNrRnJhbWUpCi0gICAgewotICAgICAgICBsZXQgaGFzaCA9IFdl
Ykluc3BlY3Rvci5DQ1ROb2RlLl9oYXNoKHN0YWNrRnJhbWUpOwotICAgICAgICBsZXQgbm9kZSA9
IHRoaXMuX2NoaWxkcmVuW2hhc2hdOwotICAgICAgICBpZiAobm9kZSkKLSAgICAgICAgICAgIHJl
dHVybiBub2RlOwotICAgICAgICBub2RlID0gbmV3IFdlYkluc3BlY3Rvci5DQ1ROb2RlKHN0YWNr
RnJhbWUuc291cmNlSUQsIHN0YWNrRnJhbWUubGluZSwgc3RhY2tGcmFtZS5jb2x1bW4sIHN0YWNr
RnJhbWUubmFtZSwgc3RhY2tGcmFtZS51cmwsIGhhc2gpOwotICAgICAgICB0aGlzLl9jaGlsZHJl
bltoYXNoXSA9IG5vZGU7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLQotICAgIGFkZFRp
bWVzdGFtcEFuZEV4cHJlc3Npb25Mb2NhdGlvbih0aW1lc3RhbXAsIGR1cmF0aW9uLCBleHByZXNz
aW9uTG9jYXRpb24sIGxlYWYpCi0gICAgewotICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5f
dGltZXN0YW1wcy5sZW5ndGggfHwgdGhpcy5fdGltZXN0YW1wcy5sYXN0VmFsdWUgPD0gdGltZXN0
YW1wLCAiRXhwZWN0ZWQgdGltZXN0YW1wcyB0byBiZSBhZGRlZCBpbiBzb3J0ZWQsIGluY3JlYXNp
bmcsIG9yZGVyLiIpOwotICAgICAgICB0aGlzLl90aW1lc3RhbXBzLnB1c2godGltZXN0YW1wKTsK
LSAgICAgICAgdGhpcy5fZHVyYXRpb25zLnB1c2goZHVyYXRpb24pOwotCi0gICAgICAgIGlmIChs
ZWFmKSB7Ci0gICAgICAgICAgICB0aGlzLl9sZWFmVGltZXN0YW1wcy5wdXNoKHRpbWVzdGFtcCk7
Ci0gICAgICAgICAgICB0aGlzLl9sZWFmRHVyYXRpb25zLnB1c2goZHVyYXRpb24pOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKCFleHByZXNzaW9uTG9jYXRpb24pCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgbGV0IHtsaW5lLCBjb2x1bW59ID0gZXhwcmVzc2lvbkxvY2F0aW9uOyAg
ICAKLSAgICAgICAgbGV0IGhhc2hDb25zID0gbGluZSArICI6IiArIGNvbHVtbjsKLSAgICAgICAg
bGV0IHRpbWVzdGFtcHMgPSB0aGlzLl9leHByZXNzaW9uTG9jYXRpb25zW2hhc2hDb25zXTsKLSAg
ICAgICAgaWYgKCF0aW1lc3RhbXBzKSB7Ci0gICAgICAgICAgICB0aW1lc3RhbXBzID0gW107Ci0g
ICAgICAgICAgICB0aGlzLl9leHByZXNzaW9uTG9jYXRpb25zW2hhc2hDb25zXSA9IHRpbWVzdGFt
cHM7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRpbWVzdGFtcHMubGVuZ3Ro
IHx8IHRpbWVzdGFtcHMubGFzdFZhbHVlIDw9IHRpbWVzdGFtcCwgIkV4cGVjdGVkIHRpbWVzdGFt
cHMgdG8gYmUgYWRkZWQgaW4gc29ydGVkLCBpbmNyZWFzaW5nLCBvcmRlci4iKTsKLSAgICAgICAg
dGltZXN0YW1wcy5wdXNoKHRpbWVzdGFtcCk7Ci0gICAgfQotCi0gICAgZm9yRWFjaENoaWxkKGNh
bGxiYWNrKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgcHJvcGVydHlOYW1lIG9mIE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMuX2NoaWxkcmVuKSkKLSAgICAgICAgICAgIGNhbGxiYWNr
KHRoaXMuX2NoaWxkcmVuW3Byb3BlcnR5TmFtZV0pOwotICAgIH0KLQotICAgIGZvckVhY2hOb2Rl
KGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgY2FsbGJhY2sodGhpcyk7Ci0gICAgICAgIHRoaXMu
Zm9yRWFjaENoaWxkKGZ1bmN0aW9uKGNoaWxkKSB7Ci0gICAgICAgICAgICBjaGlsZC5mb3JFYWNo
Tm9kZShjYWxsYmFjayk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGVxdWFscyhvdGhlcikK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9oYXNoID09PSBvdGhlci5oYXNoOwotICAgIH0K
LQotICAgIHRvQ1BVUHJvZmlsZU5vZGUobnVtU2FtcGxlcywgc3RhcnRUaW1lLCBlbmRUaW1lKQot
ICAgIHsKLSAgICAgICAgbGV0IGNoaWxkcmVuID0gW107Ci0gICAgICAgIHRoaXMuZm9yRWFjaENo
aWxkKChjaGlsZCkgPT4gewotICAgICAgICAgICAgaWYgKGNoaWxkLmhhc1N0YWNrVHJhY2VJblRp
bWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpKQotICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1
c2goY2hpbGQudG9DUFVQcm9maWxlTm9kZShudW1TYW1wbGVzLCBzdGFydFRpbWUsIGVuZFRpbWUp
KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIGxldCBjcHVQcm9maWxlTm9kZSA9IHsKLSAgICAgICAg
ICAgIGlkOiB0aGlzLl91aWQsCi0gICAgICAgICAgICBmdW5jdGlvbk5hbWU6IHRoaXMuX25hbWUs
Ci0gICAgICAgICAgICB1cmw6IHRoaXMuX3VybCwKLSAgICAgICAgICAgIGxpbmVOdW1iZXI6IHRo
aXMuX2xpbmUsCi0gICAgICAgICAgICBjb2x1bW5OdW1iZXI6IHRoaXMuX2NvbHVtbiwKLSAgICAg
ICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbgotICAgICAgICB9OwotCi0gICAgICAgIGxldCB0aW1l
c3RhbXBzID0gW107Ci0gICAgICAgIGxldCBmcmFtZVN0YXJ0VGltZSA9IE51bWJlci5NQVhfVkFM
VUU7Ci0gICAgICAgIGxldCBmcmFtZUVuZFRpbWUgPSBOdW1iZXIuTUlOX1ZBTFVFOwotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3RpbWVzdGFtcHMubGVuZ3RoOyBpKyspIHsKLSAg
ICAgICAgICAgIGxldCB0aW1lc3RhbXAgPSB0aGlzLl90aW1lc3RhbXBzW2ldOwotICAgICAgICAg
ICAgaWYgKHN0YXJ0VGltZSA8PSB0aW1lc3RhbXAgJiYgdGltZXN0YW1wIDw9IGVuZFRpbWUpIHsK
LSAgICAgICAgICAgICAgICB0aW1lc3RhbXBzLnB1c2godGltZXN0YW1wKTsKLSAgICAgICAgICAg
ICAgICBmcmFtZVN0YXJ0VGltZSA9IE1hdGgubWluKGZyYW1lU3RhcnRUaW1lLCB0aW1lc3RhbXAp
OwotICAgICAgICAgICAgICAgIGZyYW1lRW5kVGltZSA9IE1hdGgubWF4KGZyYW1lRW5kVGltZSwg
dGltZXN0YW1wKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGNwdVByb2Zp
bGVOb2RlLmNhbGxJbmZvID0gewotICAgICAgICAgICAgY2FsbENvdW50OiB0aW1lc3RhbXBzLmxl
bmd0aCwgLy8gVG90YWxseSBub3QgY2FsbENvdW50LCBidXQgb2ggd2VsbCwgdGhpcyBtYWtlcyBs
aWZlIGVhc2llciBiZWNhdXNlIG9mIGZpZWxkIG5hbWVzLgotICAgICAgICAgICAgc3RhcnRUaW1l
OiBmcmFtZVN0YXJ0VGltZSwKLSAgICAgICAgICAgIGVuZFRpbWU6IGZyYW1lRW5kVGltZSwKLSAg
ICAgICAgICAgIHRvdGFsVGltZTogKHRpbWVzdGFtcHMubGVuZ3RoIC8gbnVtU2FtcGxlcykgKiAo
ZW5kVGltZSAtIHN0YXJ0VGltZSkKLSAgICAgICAgfTsKLQotICAgICAgICByZXR1cm4gY3B1UHJv
ZmlsZU5vZGU7Ci0gICAgfQotCi0gICAgLy8gVGVzdGluZy4KLQotICAgIF9fdGVzdF9idWlsZExl
YWZMaW5rZWRMaXN0cyhwYXJlbnQsIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIGxldCBsaW5rZWRM
aXN0Tm9kZSA9IHsKLSAgICAgICAgICAgIG5hbWU6IHRoaXMuX25hbWUsCi0gICAgICAgICAgICB1
cmw6IHRoaXMuX3VybCwKLSAgICAgICAgICAgIHBhcmVudDogcGFyZW50Ci0gICAgICAgIH07Ci0g
ICAgICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKCkpIHsKLSAgICAgICAgICAgIHRoaXMuZm9yRWFj
aENoaWxkKChjaGlsZCkgPT4gewotICAgICAgICAgICAgICAgIGNoaWxkLl9fdGVzdF9idWlsZExl
YWZMaW5rZWRMaXN0cyhsaW5rZWRMaXN0Tm9kZSwgcmVzdWx0KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gV2UncmUgYSBsZWFmLgotICAgICAgICAg
ICAgcmVzdWx0LnB1c2gobGlua2VkTGlzdE5vZGUpOwotICAgICAgICB9Ci0gICAgfQotfTsKLQot
V2ViSW5zcGVjdG9yLkNDVE5vZGUuX191aWQgPSAwOwotCiBXZWJJbnNwZWN0b3IuQ2FsbGluZ0Nv
bnRleHRUcmVlLlR5cGUgPSB7CiAgICAgVG9wRG93bjogU3ltYm9sKCJUb3BEb3duIiksCiAgICAg
Qm90dG9tVXA6IFN5bWJvbCgiQm90dG9tVXAiKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVl
Tm9kZS5qcwpzaW1pbGFyaXR5IGluZGV4IDU3JQpjb3B5IGZyb20gU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcwpjb3B5IHRvIFNv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRy
ZWVOb2RlLmpzCmluZGV4IGJjNWYxZjcuLjUyYTcxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdDb250
ZXh0VHJlZU5vZGUuanMKQEAgLTIzLDE1MiArMjMsNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLVdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWUgPSBj
bGFzcyBDYWxsaW5nQ29udGV4dFRyZWUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0Ci17Ci0g
ICAgY29uc3RydWN0b3IodHlwZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0KLSAgICAgICAg
dGhpcy5fdHlwZSA9IHR5cGUgfHwgV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZS5UeXBl
LlRvcERvd247Ci0KLSAgICAgICAgdGhpcy5yZXNldCgpOwotICAgIH0KLQotICAgIC8vIFB1Ymxp
YwotCi0gICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9Ci0gICAgZ2V0IHRvdGFs
TnVtYmVyT2ZTYW1wbGVzKCkgeyByZXR1cm4gdGhpcy5fdG90YWxOdW1iZXJPZlNhbXBsZXM7IH0K
LQotICAgIHJlc2V0KCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jvb3QgPSBuZXcgV2ViSW5zcGVj
dG9yLkNDVE5vZGUoLTEsIC0xLCAtMSwgIjxyb290PiIsIG51bGwpOwotICAgICAgICB0aGlzLl90
b3RhbE51bWJlck9mU2FtcGxlcyA9IDA7Ci0gICAgfQotCi0gICAgdG90YWxEdXJhdGlvbkluVGlt
ZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9y
b290LmZpbHRlcmVkVGltZXN0YW1wc0FuZER1cmF0aW9uKHN0YXJ0VGltZSwgZW5kVGltZSkuZHVy
YXRpb247Ci0gICAgfQotCi0gICAgdXBkYXRlVHJlZVdpdGhTdGFja1RyYWNlKHt0aW1lc3RhbXAs
IHN0YWNrRnJhbWVzfSwgZHVyYXRpb24pCi0gICAgewotICAgICAgICB0aGlzLl90b3RhbE51bWJl
ck9mU2FtcGxlcysrOwotCi0gICAgICAgIGxldCBub2RlID0gdGhpcy5fcm9vdDsKLSAgICAgICAg
bm9kZS5hZGRUaW1lc3RhbXBBbmRFeHByZXNzaW9uTG9jYXRpb24odGltZXN0YW1wLCBkdXJhdGlv
biwgbnVsbCk7Ci0KLSAgICAgICAgc3dpdGNoICh0aGlzLl90eXBlKSB7Ci0gICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZS5UeXBlLlRvcERvd246Ci0gICAgICAgICAg
ICBmb3IgKGxldCBpID0gc3RhY2tGcmFtZXMubGVuZ3RoOyBpLS07ICkgewotICAgICAgICAgICAg
ICAgIGxldCBzdGFja0ZyYW1lID0gc3RhY2tGcmFtZXNbaV07Ci0gICAgICAgICAgICAgICAgbm9k
ZSA9IG5vZGUuZmluZE9yTWFrZUNoaWxkKHN0YWNrRnJhbWUpOwotICAgICAgICAgICAgICAgIG5v
ZGUuYWRkVGltZXN0YW1wQW5kRXhwcmVzc2lvbkxvY2F0aW9uKHRpbWVzdGFtcCwgZHVyYXRpb24s
IHN0YWNrRnJhbWUuZXhwcmVzc2lvbkxvY2F0aW9uIHx8IG51bGwsIGkgPT09IDApOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNh
bGxpbmdDb250ZXh0VHJlZS5UeXBlLkJvdHRvbVVwOgotICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCBzdGFja0ZyYW1lcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGxldCBz
dGFja0ZyYW1lID0gc3RhY2tGcmFtZXNbaV07Ci0gICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUu
ZmluZE9yTWFrZUNoaWxkKHN0YWNrRnJhbWUpOwotICAgICAgICAgICAgICAgIG5vZGUuYWRkVGlt
ZXN0YW1wQW5kRXhwcmVzc2lvbkxvY2F0aW9uKHRpbWVzdGFtcCwgZHVyYXRpb24sIHN0YWNrRnJh
bWUuZXhwcmVzc2lvbkxvY2F0aW9uIHx8IG51bGwsIGkgPT09IDApOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250
ZXh0VHJlZS5UeXBlLlRvcEZ1bmN0aW9uc1RvcERvd246Ci0gICAgICAgICAgICBmb3IgKGxldCBp
ID0gc3RhY2tGcmFtZXMubGVuZ3RoOyBpLS07ICkgewotICAgICAgICAgICAgICAgIG5vZGUgPSB0
aGlzLl9yb290OwotICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBpICsgMTsgai0tOyApIHsK
LSAgICAgICAgICAgICAgICAgICAgbGV0IHN0YWNrRnJhbWUgPSBzdGFja0ZyYW1lc1tqXTsKLSAg
ICAgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUuZmluZE9yTWFrZUNoaWxkKHN0YWNrRnJhbWUp
OwotICAgICAgICAgICAgICAgICAgICBub2RlLmFkZFRpbWVzdGFtcEFuZEV4cHJlc3Npb25Mb2Nh
dGlvbih0aW1lc3RhbXAsIGR1cmF0aW9uLCBzdGFja0ZyYW1lLmV4cHJlc3Npb25Mb2NhdGlvbiB8
fCBudWxsLCBqID09PSAwKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRU
cmVlLlR5cGUuVG9wRnVuY3Rpb25zQm90dG9tVXA6Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IHN0YWNrRnJhbWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgbm9kZSA9
IHRoaXMuX3Jvb3Q7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IGk7IGogPCBzdGFja0Zy
YW1lcy5sZW5ndGg7IGorKykgewotICAgICAgICAgICAgICAgICAgICBsZXQgc3RhY2tGcmFtZSA9
IHN0YWNrRnJhbWVzW2pdOwotICAgICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5maW5kT3JN
YWtlQ2hpbGQoc3RhY2tGcmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUuYWRkVGltZXN0
YW1wQW5kRXhwcmVzc2lvbkxvY2F0aW9uKHRpbWVzdGFtcCwgZHVyYXRpb24sIHN0YWNrRnJhbWUu
ZXhwcmVzc2lvbkxvY2F0aW9uIHx8IG51bGwsIGogPT09IDApOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQoZmFsc2UsICJUaGlzIHNob3VsZCBub3QgYmUgcmVhY2hl
ZC4iKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdG9DUFVQ
cm9maWxlUGF5bG9hZChzdGFydFRpbWUsIGVuZFRpbWUpCi0gICAgewotICAgICAgICBsZXQgY3B1
UHJvZmlsZSA9IHt9OwotICAgICAgICBsZXQgcm9vdHMgPSBbXTsKLSAgICAgICAgbGV0IG51bVNh
bXBsZXNJblRpbWVSYW5nZSA9IHRoaXMuX3Jvb3QuZmlsdGVyZWRUaW1lc3RhbXBzQW5kRHVyYXRp
b24oc3RhcnRUaW1lLCBlbmRUaW1lKS50aW1lc3RhbXBzLmxlbmd0aDsKLQotICAgICAgICB0aGlz
Ll9yb290LmZvckVhY2hDaGlsZCgoY2hpbGQpID0+IHsKLSAgICAgICAgICAgIGlmIChjaGlsZC5o
YXNTdGFja1RyYWNlSW5UaW1lUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lKSkKLSAgICAgICAgICAg
ICAgICByb290cy5wdXNoKGNoaWxkLnRvQ1BVUHJvZmlsZU5vZGUobnVtU2FtcGxlc0luVGltZVJh
bmdlLCBzdGFydFRpbWUsIGVuZFRpbWUpKTsgCi0gICAgICAgIH0pOwotCi0gICAgICAgIGNwdVBy
b2ZpbGUucm9vdE5vZGVzID0gcm9vdHM7Ci0gICAgICAgIHJldHVybiBjcHVQcm9maWxlOwotICAg
IH0KLQotICAgIGZvckVhY2hDaGlsZChjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jv
b3QuZm9yRWFjaENoaWxkKGNhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICBmb3JFYWNoTm9kZShjYWxs
YmFjaykKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jvb3QuZm9yRWFjaE5vZGUoY2FsbGJhY2spOwot
ICAgIH0KLQotICAgIC8vIFRlc3RpbmcuCi0KLSAgICBzdGF0aWMgX190ZXN0X21ha2VUcmVlRnJv
bVByb3RvY29sTWVzc2FnZU9iamVjdChtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgbGV0
IHRyZWUgPSBuZXcgV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZTsKLSAgICAgICAgbGV0
IHN0YWNrVHJhY2VzID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc2FtcGxlcy5zdGFja1RyYWNlczsK
LSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGFja1RyYWNlcy5sZW5ndGg7IGkrKykKLSAg
ICAgICAgICAgIHRyZWUudXBkYXRlVHJlZVdpdGhTdGFja1RyYWNlKHN0YWNrVHJhY2VzW2ldKTsK
LSAgICAgICAgcmV0dXJuIHRyZWU7Ci0gICAgfQotCi0gICAgX190ZXN0X21hdGNoZXNTdGFja1Ry
YWNlKHN0YWNrVHJhY2UpCi0gICAgewotICAgICAgICAvLyBTdGFja1RyYWNlIHNob3VsZCBoYXZl
IHRvcCBmcmFtZSBmaXJzdCBpbiB0aGUgYXJyYXkgYW5kIGJvdHRvbSBmcmFtZSBsYXN0LgotICAg
ICAgICAvLyBXZSBkb24ndCBsb29rIGZvciBhIG1hdGNoIHRoYXQgdHJhY2VzIGRvd24gdGhlIHRy
ZWUgZnJvbSB0aGUgcm9vdDsgaW5zdGVhZCwKLSAgICAgICAgLy8gd2UgbWF0Y2ggYnkgbG9va2lu
ZyBhdCBhbGwgdGhlIGxlYWZzLCBhbmQgbWF0Y2hpbmcgd2hpbGUgd2Fsa2luZyB1cCB0aGUgdHJl
ZQotICAgICAgICAvLyB0b3dhcmRzIHRoZSByb290LiBJZiB3ZSBzdWNjZXNzZnVsbHkgbWFrZSB0
aGUgd2Fsaywgd2UndmUgZ290IGEgbWF0Y2ggdGhhdAotICAgICAgICAvLyBzdWZmaWNlcyBmb3Ig
YSBwYXJ0aWN1bGFyIHRlc3QuIEEgc3VjY2Vzc2Z1bCBtYXRjaCBkb2Vzbid0IG1lYW4gd2UgYWN0
dWFsbHkKLSAgICAgICAgLy8gd2FsayBhbGwgdGhlIHdheSB1cCB0byB0aGUgcm9vdDsgaXQganVz
dCBtZWFucyB3ZSBkaWRuJ3QgZmFpbCB3aGlsZSB3YWxraW5nCi0gICAgICAgIC8vIGluIHRoZSBk
aXJlY3Rpb24gb2YgdGhlIHJvb3QuCi0gICAgICAgIGxldCBsZWF2ZXMgPSB0aGlzLl9fdGVzdF9i
dWlsZExlYWZMaW5rZWRMaXN0cygpOwotCi0gICAgICAgIG91dGVyOgotICAgICAgICBmb3IgKGxl
dCBub2RlIG9mIGxlYXZlcykgewotICAgICAgICAgICAgZm9yIChsZXQgc3RhY2tOb2RlIG9mIHN0
YWNrVHJhY2UpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBwcm9wZXJ0eU5hbWUgb2YgT2Jq
ZWN0LmdldE93blByb3BlcnR5TmFtZXMoc3RhY2tOb2RlKSkgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoc3RhY2tOb2RlW3Byb3BlcnR5TmFtZV0gIT09IG5vZGVbcHJvcGVydHlOYW1lXSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIG91dGVyOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotCi0gICAgX190ZXN0X2J1aWxkTGVhZkxpbmtlZExpc3RzKCkKLSAgICB7Ci0gICAgICAg
IGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgbGV0IHBhcmVudCA9IG51bGw7Ci0gICAgICAgIHRo
aXMuX3Jvb3QuX190ZXN0X2J1aWxkTGVhZkxpbmtlZExpc3RzKHBhcmVudCwgcmVzdWx0KTsKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci19OwotCi1XZWJJbnNwZWN0b3IuQ0NUTm9kZSA9
IGNsYXNzIENDVE5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CitXZWJJbnNwZWN0b3Iu
Q2FsbGluZ0NvbnRleHRUcmVlTm9kZSA9IGNsYXNzIENhbGxpbmdDb250ZXh0VHJlZU5vZGUgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiB7CiAgICAgY29uc3RydWN0b3Ioc291cmNlSUQsIGxp
bmUsIGNvbHVtbiwgbmFtZSwgdXJsLCBoYXNoKQogICAgIHsKQEAgLTE4MCw3ICszNSw3IEBAIFdl
Ykluc3BlY3Rvci5DQ1ROb2RlID0gY2xhc3MgQ0NUTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKICAgICAgICAgdGhpcy5fY29sdW1uID0gY29sdW1uOwogICAgICAgICB0aGlzLl9uYW1l
ID0gbmFtZTsKICAgICAgICAgdGhpcy5fdXJsID0gdXJsOwotICAgICAgICB0aGlzLl91aWQgPSBX
ZWJJbnNwZWN0b3IuQ0NUTm9kZS5fX3VpZCsrOworICAgICAgICB0aGlzLl91aWQgPSBXZWJJbnNw
ZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5fX3VpZCsrOwogCiAgICAgICAgIHRoaXMuX3Rp
bWVzdGFtcHMgPSBbXTsKICAgICAgICAgdGhpcy5fZHVyYXRpb25zID0gW107CkBAIC0xODgsNyAr
NDMsNyBAQCBXZWJJbnNwZWN0b3IuQ0NUTm9kZSA9IGNsYXNzIENDVE5vZGUgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHRoaXMuX2xlYWZEdXJhdGlvbnMgPSBbXTsKICAgICAg
ICAgdGhpcy5fZXhwcmVzc2lvbkxvY2F0aW9ucyA9IHt9OyAvLyBLZXlzIGFyZSAibGluZTpjb2x1
bW4iIHN0cmluZ3MuIFZhbHVlcyBhcmUgYXJyYXlzIG9mIHRpbWVzdGFtcHMgaW4gc29ydGVkIG9y
ZGVyLgogCi0gICAgICAgIHRoaXMuX2hhc2ggPSBoYXNoIHx8IFdlYkluc3BlY3Rvci5DQ1ROb2Rl
Ll9oYXNoKHRoaXMpOworICAgICAgICB0aGlzLl9oYXNoID0gaGFzaCB8fCBXZWJJbnNwZWN0b3Iu
Q2FsbGluZ0NvbnRleHRUcmVlTm9kZS5faGFzaCh0aGlzKTsKICAgICB9CiAKICAgICAvLyBTdGF0
aWMgYW5kIFByaXZhdGUKQEAgLTI3NSwxMSArMTMwLDExIEBAIFdlYkluc3BlY3Rvci5DQ1ROb2Rl
ID0gY2xhc3MgQ0NUTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIAogICAgIGZpbmRP
ck1ha2VDaGlsZChzdGFja0ZyYW1lKQogICAgIHsKLSAgICAgICAgbGV0IGhhc2ggPSBXZWJJbnNw
ZWN0b3IuQ0NUTm9kZS5faGFzaChzdGFja0ZyYW1lKTsKKyAgICAgICAgbGV0IGhhc2ggPSBXZWJJ
bnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5faGFzaChzdGFja0ZyYW1lKTsKICAgICAg
ICAgbGV0IG5vZGUgPSB0aGlzLl9jaGlsZHJlbltoYXNoXTsKICAgICAgICAgaWYgKG5vZGUpCiAg
ICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgbm9kZSA9IG5ldyBXZWJJbnNwZWN0b3Iu
Q0NUTm9kZShzdGFja0ZyYW1lLnNvdXJjZUlELCBzdGFja0ZyYW1lLmxpbmUsIHN0YWNrRnJhbWUu
Y29sdW1uLCBzdGFja0ZyYW1lLm5hbWUsIHN0YWNrRnJhbWUudXJsLCBoYXNoKTsKKyAgICAgICAg
bm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlTm9kZShzdGFja0ZyYW1l
LnNvdXJjZUlELCBzdGFja0ZyYW1lLmxpbmUsIHN0YWNrRnJhbWUuY29sdW1uLCBzdGFja0ZyYW1l
Lm5hbWUsIHN0YWNrRnJhbWUudXJsLCBoYXNoKTsKICAgICAgICAgdGhpcy5fY2hpbGRyZW5baGFz
aF0gPSBub2RlOwogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CkBAIC0zODYsMTEgKzI0MSw0
IEBAIFdlYkluc3BlY3Rvci5DQ1ROb2RlID0gY2xhc3MgQ0NUTm9kZSBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYmplY3QKICAgICB9CiB9OwogCi1XZWJJbnNwZWN0b3IuQ0NUTm9kZS5fX3VpZCA9IDA7
Ci0KLVdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWUuVHlwZSA9IHsKLSAgICBUb3BEb3du
OiBTeW1ib2woIlRvcERvd24iKSwKLSAgICBCb3R0b21VcDogU3ltYm9sKCJCb3R0b21VcCIpLAot
ICAgIFRvcEZ1bmN0aW9uc1RvcERvd246IFN5bWJvbCgiVG9wRnVuY3Rpb25zVG9wRG93biIpLAot
ICAgIFRvcEZ1bmN0aW9uc0JvdHRvbVVwOiBTeW1ib2woIlRvcEZ1bmN0aW9uc0JvdHRvbVVwIiks
Ci19OworV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZU5vZGUuX191aWQgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCmluZGV4IDhhZDIx
NWEuLjY4NDU4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3QuaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0Lmh0bWwKQEAgLTk3LDYgKzk3LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NTU1N0
eWxlU2hlZXQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbEZyYW1l
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJl
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRy
ZWVOb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbGxlY3Rpb25F
bnRyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9uRW50
cnlQcmV2aWV3LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NvbG9yLmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1Rlc3RTdHViLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0U3R1Yi5odG1sCmluZGV4IGE3Mzg4MWYuLmZkZjEzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3RTdHViLmh0bWwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdFN0dWIuaHRtbApAQCAtMzYsNiArMzYsNyBA
QCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL1V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CiAKICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWVOb2RlLmpzIj48
L3NjcmlwdD4KIAogICAgIDxzY3JpcHQgc3JjPSJUZXN0L1Rlc3RTdWl0ZS5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IlRlc3QvVGVzdEhhcm5lc3MuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZURh
dGFHcmlkTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Byb2ZpbGVEYXRhR3JpZE5vZGUuanMKaW5kZXggMjVmMTYxZi4uMmYwYTQxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZURhdGFH
cmlkTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Qcm9maWxlRGF0YUdyaWROb2RlLmpzCkBAIC0yNSwxMSArMjUsMTEgQEAKIAogV2ViSW5zcGVj
dG9yLlByb2ZpbGVEYXRhR3JpZE5vZGUgPSBjbGFzcyBQcm9maWxlRGF0YUdyaWROb2RlIGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLkRhdGFHcmlkTm9kZQogewotICAgIGNvbnN0cnVjdG9yKGNjdE5vZGUs
IHRyZWUpCisgICAgY29uc3RydWN0b3IoY2FsbGluZ0NvbnRleHRUcmVlTm9kZSwgdHJlZSkKICAg
ICB7Ci0gICAgICAgIHN1cGVyKGNjdE5vZGUsIGZhbHNlKTsKKyAgICAgICAgc3VwZXIoY2FsbGlu
Z0NvbnRleHRUcmVlTm9kZSwgZmFsc2UpOwogCi0gICAgICAgIHRoaXMuX25vZGUgPSBjY3ROb2Rl
OworICAgICAgICB0aGlzLl9ub2RlID0gY2FsbGluZ0NvbnRleHRUcmVlTm9kZTsKICAgICAgICAg
dGhpcy5fdHJlZSA9IHRyZWU7CiAKICAgICAgICAgdGhpcy5fY2hpbGRyZW5Ub0NoYXJnZVRvU2Vs
ZiA9IG5ldyBTZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUHJvZmlsZURhdGFHcmlkVHJlZS5qcwppbmRleCBkY2ZkMmM5
Li5kNDhhOWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVEYXRhR3JpZFRyZWUuanMKQEAgLTIzOSw4ICsy
MzksNyBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkVHJlZSA9IGNsYXNzIFByb2ZpbGVE
YXRhR3JpZFRyZWUgZXh0ZW5kcyBXZWJJbnNwZWN0bwogCiAgICAgX3VwZGF0ZUN1cnJlbnRGb2N1
c0RldGFpbHMoZm9jdXNEYXRhR3JpZE5vZGUpCiAgICAgewotICAgICAgICBsZXQgY2N0Tm9kZSA9
IGZvY3VzRGF0YUdyaWROb2RlLmNhbGxpbmdDb250ZXh0VHJlZU5vZGU7Ci0gICAgICAgIGxldCB7
dGltZXN0YW1wcywgZHVyYXRpb259ID0gY2N0Tm9kZS5maWx0ZXJlZFRpbWVzdGFtcHNBbmREdXJh
dGlvbih0aGlzLl9zdGFydFRpbWUsIHRoaXMuX2VuZFRpbWUpOworICAgICAgICBsZXQge3RpbWVz
dGFtcHMsIGR1cmF0aW9ufSA9IGZvY3VzRGF0YUdyaWROb2RlLmNhbGxpbmdDb250ZXh0VHJlZU5v
ZGUuZmlsdGVyZWRUaW1lc3RhbXBzQW5kRHVyYXRpb24odGhpcy5fc3RhcnRUaW1lLCB0aGlzLl9l
bmRUaW1lKTsKIAogICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNTdGFydFRpbWUgPSB0aW1lc3Rh
bXBzWzBdOwogICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNFbmRUaW1lID0gdGltZXN0YW1wcy5s
YXN0VmFsdWU7Cg==
</data>
<flag name="review"
          id="307353"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283702</attachid>
            <date>2016-07-14 16:24:30 -0700</date>
            <delta_ts>2016-07-14 16:39:01 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>for-landing.patch</filename>
            <type>text/plain</type>
            <size>20645</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDYwY2YxY2MuLjdhNGNjNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE2LTA3LTE0ICBKb3NlcGggUGVjb3Jh
cm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogUmVuYW1l
IENDVE5vZGUgdG8gQ2FsbGluZ0NvbnRleHRUcmVlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NzgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGlu
Z0NvbnRleHRUcmVlLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdD
b250ZXh0VHJlZU5vZGUuanM6CisgICAgICAgIEV4dHJhIHRvIGl0cyBvd24gZmlsZSBhbmQgcmVu
YW1lLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNl
ckludGVyZmFjZS9UZXN0Lmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFjZS9UZXN0U3R1Yi5o
dG1sOgorICAgICAgICBJbmNsdWRlIHRoZSBuZXcgZmlsZS4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvUHJvZmlsZURhdGFHcmlkTm9kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Qcm9maWxlRGF0YUdyaWROb2RlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1By
b2ZpbGVEYXRhR3JpZFRyZWUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFH
cmlkVHJlZS5wcm90b3R5cGUuX3VwZGF0ZUN1cnJlbnRGb2N1c0RldGFpbHMpOgorICAgICAgICBS
ZW5hbWUgc2hvcnRoYW5kICJjY3Rub2RlIi4KKworMjAxNi0wNy0xNCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1haW50YWlu
IHNlbGVjdGVkIGZ1bmN0aW9uIHdoZW4gc3dpdGNoaW5nIGJldHdlZW4gZGlmZmVyZW50IHByb2Zp
bGUgcmVwcmVzZW50YXRpb25zCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTk3NzgKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3MzU1OTEzPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IDU4ZmRj
Y2MuLjUyNWNmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
YWluLmh0bWwKQEAgLTI4Myw2ICsyODMsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQnJh
bmNoLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0JyZWFrcG9pbnQuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZU5v
ZGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTQ29tcGxldGlvbnMu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ1NTS2V5d29yZENvbXBsZXRp
b25zLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NTU01lZGlhLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzCmluZGV4IGJjNWYxZjcuLjYy
MzQ4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJlZS5qcwpAQCAtNDEsNyArNDEsNyBA
QCBXZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlID0gY2xhc3MgQ2FsbGluZ0NvbnRleHRU
cmVlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogCiAgICAgcmVzZXQoKQogICAgIHsKLSAgICAgICAg
dGhpcy5fcm9vdCA9IG5ldyBXZWJJbnNwZWN0b3IuQ0NUTm9kZSgtMSwgLTEsIC0xLCAiPHJvb3Q+
IiwgbnVsbCk7CisgICAgICAgIHRoaXMuX3Jvb3QgPSBuZXcgV2ViSW5zcGVjdG9yLkNhbGxpbmdD
b250ZXh0VHJlZU5vZGUoLTEsIC0xLCAtMSwgIjxyb290PiIsIG51bGwpOwogICAgICAgICB0aGlz
Ll90b3RhbE51bWJlck9mU2FtcGxlcyA9IDA7CiAgICAgfQogCkBAIC0xNjgsMjI2ICsxNjgsNiBA
QCBXZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlID0gY2xhc3MgQ2FsbGluZ0NvbnRleHRU
cmVlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLgogICAgIH0KIH07CiAKLVdlYkluc3BlY3Rvci5DQ1RO
b2RlID0gY2xhc3MgQ0NUTm9kZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKLXsKLSAgICBj
b25zdHJ1Y3Rvcihzb3VyY2VJRCwgbGluZSwgY29sdW1uLCBuYW1lLCB1cmwsIGhhc2gpCi0gICAg
ewotICAgICAgICBzdXBlcigpOwotCi0gICAgICAgIHRoaXMuX2NoaWxkcmVuID0ge307Ci0gICAg
ICAgIHRoaXMuX3NvdXJjZUlEID0gc291cmNlSUQ7Ci0gICAgICAgIHRoaXMuX2xpbmUgPSBsaW5l
OwotICAgICAgICB0aGlzLl9jb2x1bW4gPSBjb2x1bW47Ci0gICAgICAgIHRoaXMuX25hbWUgPSBu
YW1lOwotICAgICAgICB0aGlzLl91cmwgPSB1cmw7Ci0gICAgICAgIHRoaXMuX3VpZCA9IFdlYklu
c3BlY3Rvci5DQ1ROb2RlLl9fdWlkKys7Ci0KLSAgICAgICAgdGhpcy5fdGltZXN0YW1wcyA9IFtd
OwotICAgICAgICB0aGlzLl9kdXJhdGlvbnMgPSBbXTsKLSAgICAgICAgdGhpcy5fbGVhZlRpbWVz
dGFtcHMgPSBbXTsKLSAgICAgICAgdGhpcy5fbGVhZkR1cmF0aW9ucyA9IFtdOwotICAgICAgICB0
aGlzLl9leHByZXNzaW9uTG9jYXRpb25zID0ge307IC8vIEtleXMgYXJlICJsaW5lOmNvbHVtbiIg
c3RyaW5ncy4gVmFsdWVzIGFyZSBhcnJheXMgb2YgdGltZXN0YW1wcyBpbiBzb3J0ZWQgb3JkZXIu
Ci0KLSAgICAgICAgdGhpcy5faGFzaCA9IGhhc2ggfHwgV2ViSW5zcGVjdG9yLkNDVE5vZGUuX2hh
c2godGhpcyk7Ci0gICAgfQotCi0gICAgLy8gU3RhdGljIGFuZCBQcml2YXRlCi0KLSAgICBzdGF0
aWMgX2hhc2goc3RhY2tGcmFtZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGFja0ZyYW1lLm5h
bWUgKyAiOiIgKyBzdGFja0ZyYW1lLnNvdXJjZUlEICsgIjoiICsgc3RhY2tGcmFtZS5saW5lICsg
IjoiICsgc3RhY2tGcmFtZS5jb2x1bW47Ci0gICAgfQotCi0gICAgLy8gUHVibGljCi0KLSAgICBn
ZXQgc291cmNlSUQoKSB7IHJldHVybiB0aGlzLl9zb3VyY2VJRDsgfQotICAgIGdldCBsaW5lKCkg
eyByZXR1cm4gdGhpcy5fbGluZTsgfQotICAgIGdldCBjb2x1bW4oKSB7IHJldHVybiB0aGlzLl9j
b2x1bW47IH0KLSAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQg
dWlkKCkgeyByZXR1cm4gdGhpcy5fdWlkOyB9Ci0gICAgZ2V0IHVybCgpIHsgcmV0dXJuIHRoaXMu
X3VybDsgfQotICAgIGdldCBoYXNoKCkgeyByZXR1cm4gdGhpcy5faGFzaDsgfQotCi0gICAgaGFz
Q2hpbGRyZW5JblRpbWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpCi0gICAgewotICAgICAgICBm
b3IgKGxldCBwcm9wZXJ0eU5hbWUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcy5f
Y2hpbGRyZW4pKSB7Ci0gICAgICAgICAgICBsZXQgY2hpbGQgPSB0aGlzLl9jaGlsZHJlbltwcm9w
ZXJ0eU5hbWVdOwotICAgICAgICAgICAgaWYgKGNoaWxkLmhhc1N0YWNrVHJhY2VJblRpbWVSYW5n
ZShzdGFydFRpbWUsIGVuZFRpbWUpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgaGFzU3RhY2tU
cmFjZUluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkKLSAgICB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHN0YXJ0VGltZSA8PSBlbmRUaW1lKTsKLSAgICAgICAgaWYgKHN0YXJ0VGltZSA+
IGVuZFRpbWUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgbGV0IHRpbWVz
dGFtcHMgPSB0aGlzLl90aW1lc3RhbXBzOwotICAgICAgICBsZXQgbGVuZ3RoID0gdGltZXN0YW1w
cy5sZW5ndGg7Ci0gICAgICAgIGlmICghbGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgICAgIGxldCBpbmRleCA9IHRpbWVzdGFtcHMubG93ZXJCb3VuZChzdGFydFRpbWUp
OwotICAgICAgICBpZiAoaW5kZXggPT09IGxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoc3RhcnRUaW1lIDw9IHRpbWVzdGFtcHNbaW5kZXhd
KTsKLQotICAgICAgICBsZXQgaGFzVGltZXN0YW1wSW5SYW5nZSA9IHRpbWVzdGFtcHNbaW5kZXhd
IDw9IGVuZFRpbWU7Ci0gICAgICAgIHJldHVybiBoYXNUaW1lc3RhbXBJblJhbmdlOwotICAgIH0K
LQotICAgIGZpbHRlcmVkVGltZXN0YW1wc0FuZER1cmF0aW9uKHN0YXJ0VGltZSwgZW5kVGltZSkK
LSAgICB7Ci0gICAgICAgIGxldCBsb3dlckluZGV4ID0gdGhpcy5fdGltZXN0YW1wcy5sb3dlckJv
dW5kKHN0YXJ0VGltZSk7Ci0gICAgICAgIGxldCB1cHBlckluZGV4ID0gdGhpcy5fdGltZXN0YW1w
cy51cHBlckJvdW5kKGVuZFRpbWUpOwotCi0gICAgICAgIGxldCB0b3RhbER1cmF0aW9uID0gMDsK
LSAgICAgICAgZm9yIChsZXQgaSA9IGxvd2VySW5kZXg7IGkgPCB1cHBlckluZGV4OyArK2kpCi0g
ICAgICAgICAgICB0b3RhbER1cmF0aW9uICs9IHRoaXMuX2R1cmF0aW9uc1tpXTsKLQotICAgICAg
ICByZXR1cm4gewotICAgICAgICAgICAgdGltZXN0YW1wczogdGhpcy5fdGltZXN0YW1wcy5zbGlj
ZShsb3dlckluZGV4LCB1cHBlckluZGV4KSwKLSAgICAgICAgICAgIGR1cmF0aW9uOiB0b3RhbER1
cmF0aW9uLAotICAgICAgICB9OwotICAgIH0KLQotICAgIGZpbHRlcmVkTGVhZlRpbWVzdGFtcHNB
bmREdXJhdGlvbihzdGFydFRpbWUsIGVuZFRpbWUpCi0gICAgewotICAgICAgICBsZXQgbG93ZXJJ
bmRleCA9IHRoaXMuX2xlYWZUaW1lc3RhbXBzLmxvd2VyQm91bmQoc3RhcnRUaW1lKTsKLSAgICAg
ICAgbGV0IHVwcGVySW5kZXggPSB0aGlzLl9sZWFmVGltZXN0YW1wcy51cHBlckJvdW5kKGVuZFRp
bWUpOwotCi0gICAgICAgIGxldCB0b3RhbER1cmF0aW9uID0gMDsKLSAgICAgICAgZm9yIChsZXQg
aSA9IGxvd2VySW5kZXg7IGkgPCB1cHBlckluZGV4OyArK2kpCi0gICAgICAgICAgICB0b3RhbER1
cmF0aW9uICs9IHRoaXMuX2xlYWZEdXJhdGlvbnNbaV07Ci0KLSAgICAgICAgcmV0dXJuIHsKLSAg
ICAgICAgICAgIGxlYWZUaW1lc3RhbXBzOiB0aGlzLl9sZWFmVGltZXN0YW1wcy5zbGljZShsb3dl
ckluZGV4LCB1cHBlckluZGV4KSwKLSAgICAgICAgICAgIGxlYWZEdXJhdGlvbjogdG90YWxEdXJh
dGlvbiwKLSAgICAgICAgfTsKLSAgICB9Ci0KLSAgICBoYXNDaGlsZHJlbigpCi0gICAgewotICAg
ICAgICByZXR1cm4gIWlzRW1wdHlPYmplY3QodGhpcy5fY2hpbGRyZW4pOwotICAgIH0KLQotICAg
IGZpbmRPck1ha2VDaGlsZChzdGFja0ZyYW1lKQotICAgIHsKLSAgICAgICAgbGV0IGhhc2ggPSBX
ZWJJbnNwZWN0b3IuQ0NUTm9kZS5faGFzaChzdGFja0ZyYW1lKTsKLSAgICAgICAgbGV0IG5vZGUg
PSB0aGlzLl9jaGlsZHJlbltoYXNoXTsKLSAgICAgICAgaWYgKG5vZGUpCi0gICAgICAgICAgICBy
ZXR1cm4gbm9kZTsKLSAgICAgICAgbm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuQ0NUTm9kZShzdGFj
a0ZyYW1lLnNvdXJjZUlELCBzdGFja0ZyYW1lLmxpbmUsIHN0YWNrRnJhbWUuY29sdW1uLCBzdGFj
a0ZyYW1lLm5hbWUsIHN0YWNrRnJhbWUudXJsLCBoYXNoKTsKLSAgICAgICAgdGhpcy5fY2hpbGRy
ZW5baGFzaF0gPSBub2RlOwotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9Ci0KLSAgICBhZGRU
aW1lc3RhbXBBbmRFeHByZXNzaW9uTG9jYXRpb24odGltZXN0YW1wLCBkdXJhdGlvbiwgZXhwcmVz
c2lvbkxvY2F0aW9uLCBsZWFmKQotICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMu
X3RpbWVzdGFtcHMubGVuZ3RoIHx8IHRoaXMuX3RpbWVzdGFtcHMubGFzdFZhbHVlIDw9IHRpbWVz
dGFtcCwgIkV4cGVjdGVkIHRpbWVzdGFtcHMgdG8gYmUgYWRkZWQgaW4gc29ydGVkLCBpbmNyZWFz
aW5nLCBvcmRlci4iKTsKLSAgICAgICAgdGhpcy5fdGltZXN0YW1wcy5wdXNoKHRpbWVzdGFtcCk7
Ci0gICAgICAgIHRoaXMuX2R1cmF0aW9ucy5wdXNoKGR1cmF0aW9uKTsKLQotICAgICAgICBpZiAo
bGVhZikgewotICAgICAgICAgICAgdGhpcy5fbGVhZlRpbWVzdGFtcHMucHVzaCh0aW1lc3RhbXAp
OwotICAgICAgICAgICAgdGhpcy5fbGVhZkR1cmF0aW9ucy5wdXNoKGR1cmF0aW9uKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICghZXhwcmVzc2lvbkxvY2F0aW9uKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGxldCB7bGluZSwgY29sdW1ufSA9IGV4cHJlc3Npb25Mb2NhdGlvbjsg
ICAgCi0gICAgICAgIGxldCBoYXNoQ29ucyA9IGxpbmUgKyAiOiIgKyBjb2x1bW47Ci0gICAgICAg
IGxldCB0aW1lc3RhbXBzID0gdGhpcy5fZXhwcmVzc2lvbkxvY2F0aW9uc1toYXNoQ29uc107Ci0g
ICAgICAgIGlmICghdGltZXN0YW1wcykgewotICAgICAgICAgICAgdGltZXN0YW1wcyA9IFtdOwot
ICAgICAgICAgICAgdGhpcy5fZXhwcmVzc2lvbkxvY2F0aW9uc1toYXNoQ29uc10gPSB0aW1lc3Rh
bXBzOwotICAgICAgICB9Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aW1lc3RhbXBzLmxlbmd0
aCB8fCB0aW1lc3RhbXBzLmxhc3RWYWx1ZSA8PSB0aW1lc3RhbXAsICJFeHBlY3RlZCB0aW1lc3Rh
bXBzIHRvIGJlIGFkZGVkIGluIHNvcnRlZCwgaW5jcmVhc2luZywgb3JkZXIuIik7Ci0gICAgICAg
IHRpbWVzdGFtcHMucHVzaCh0aW1lc3RhbXApOwotICAgIH0KLQotICAgIGZvckVhY2hDaGlsZChj
YWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IHByb3BlcnR5TmFtZSBvZiBPYmplY3Qu
Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzLl9jaGlsZHJlbikpCi0gICAgICAgICAgICBjYWxsYmFj
ayh0aGlzLl9jaGlsZHJlbltwcm9wZXJ0eU5hbWVdKTsKLSAgICB9Ci0KLSAgICBmb3JFYWNoTm9k
ZShjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGNhbGxiYWNrKHRoaXMpOwotICAgICAgICB0aGlz
LmZvckVhY2hDaGlsZChmdW5jdGlvbihjaGlsZCkgewotICAgICAgICAgICAgY2hpbGQuZm9yRWFj
aE5vZGUoY2FsbGJhY2spOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBlcXVhbHMob3RoZXIp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5faGFzaCA9PT0gb3RoZXIuaGFzaDsKLSAgICB9
Ci0KLSAgICB0b0NQVVByb2ZpbGVOb2RlKG51bVNhbXBsZXMsIHN0YXJ0VGltZSwgZW5kVGltZSkK
LSAgICB7Ci0gICAgICAgIGxldCBjaGlsZHJlbiA9IFtdOwotICAgICAgICB0aGlzLmZvckVhY2hD
aGlsZCgoY2hpbGQpID0+IHsKLSAgICAgICAgICAgIGlmIChjaGlsZC5oYXNTdGFja1RyYWNlSW5U
aW1lUmFuZ2Uoc3RhcnRUaW1lLCBlbmRUaW1lKSkKLSAgICAgICAgICAgICAgICBjaGlsZHJlbi5w
dXNoKGNoaWxkLnRvQ1BVUHJvZmlsZU5vZGUobnVtU2FtcGxlcywgc3RhcnRUaW1lLCBlbmRUaW1l
KSk7Ci0gICAgICAgIH0pOwotICAgICAgICBsZXQgY3B1UHJvZmlsZU5vZGUgPSB7Ci0gICAgICAg
ICAgICBpZDogdGhpcy5fdWlkLAotICAgICAgICAgICAgZnVuY3Rpb25OYW1lOiB0aGlzLl9uYW1l
LAotICAgICAgICAgICAgdXJsOiB0aGlzLl91cmwsCi0gICAgICAgICAgICBsaW5lTnVtYmVyOiB0
aGlzLl9saW5lLAotICAgICAgICAgICAgY29sdW1uTnVtYmVyOiB0aGlzLl9jb2x1bW4sCi0gICAg
ICAgICAgICBjaGlsZHJlbjogY2hpbGRyZW4KLSAgICAgICAgfTsKLQotICAgICAgICBsZXQgdGlt
ZXN0YW1wcyA9IFtdOwotICAgICAgICBsZXQgZnJhbWVTdGFydFRpbWUgPSBOdW1iZXIuTUFYX1ZB
TFVFOwotICAgICAgICBsZXQgZnJhbWVFbmRUaW1lID0gTnVtYmVyLk1JTl9WQUxVRTsKLSAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl90aW1lc3RhbXBzLmxlbmd0aDsgaSsrKSB7Ci0g
ICAgICAgICAgICBsZXQgdGltZXN0YW1wID0gdGhpcy5fdGltZXN0YW1wc1tpXTsKLSAgICAgICAg
ICAgIGlmIChzdGFydFRpbWUgPD0gdGltZXN0YW1wICYmIHRpbWVzdGFtcCA8PSBlbmRUaW1lKSB7
Ci0gICAgICAgICAgICAgICAgdGltZXN0YW1wcy5wdXNoKHRpbWVzdGFtcCk7Ci0gICAgICAgICAg
ICAgICAgZnJhbWVTdGFydFRpbWUgPSBNYXRoLm1pbihmcmFtZVN0YXJ0VGltZSwgdGltZXN0YW1w
KTsKLSAgICAgICAgICAgICAgICBmcmFtZUVuZFRpbWUgPSBNYXRoLm1heChmcmFtZUVuZFRpbWUs
IHRpbWVzdGFtcCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBjcHVQcm9m
aWxlTm9kZS5jYWxsSW5mbyA9IHsKLSAgICAgICAgICAgIGNhbGxDb3VudDogdGltZXN0YW1wcy5s
ZW5ndGgsIC8vIFRvdGFsbHkgbm90IGNhbGxDb3VudCwgYnV0IG9oIHdlbGwsIHRoaXMgbWFrZXMg
bGlmZSBlYXNpZXIgYmVjYXVzZSBvZiBmaWVsZCBuYW1lcy4KLSAgICAgICAgICAgIHN0YXJ0VGlt
ZTogZnJhbWVTdGFydFRpbWUsCi0gICAgICAgICAgICBlbmRUaW1lOiBmcmFtZUVuZFRpbWUsCi0g
ICAgICAgICAgICB0b3RhbFRpbWU6ICh0aW1lc3RhbXBzLmxlbmd0aCAvIG51bVNhbXBsZXMpICog
KGVuZFRpbWUgLSBzdGFydFRpbWUpCi0gICAgICAgIH07Ci0KLSAgICAgICAgcmV0dXJuIGNwdVBy
b2ZpbGVOb2RlOwotICAgIH0KLQotICAgIC8vIFRlc3RpbmcuCi0KLSAgICBfX3Rlc3RfYnVpbGRM
ZWFmTGlua2VkTGlzdHMocGFyZW50LCByZXN1bHQpCi0gICAgewotICAgICAgICBsZXQgbGlua2Vk
TGlzdE5vZGUgPSB7Ci0gICAgICAgICAgICBuYW1lOiB0aGlzLl9uYW1lLAotICAgICAgICAgICAg
dXJsOiB0aGlzLl91cmwsCi0gICAgICAgICAgICBwYXJlbnQ6IHBhcmVudAotICAgICAgICB9Owot
ICAgICAgICBpZiAodGhpcy5oYXNDaGlsZHJlbigpKSB7Ci0gICAgICAgICAgICB0aGlzLmZvckVh
Y2hDaGlsZCgoY2hpbGQpID0+IHsKLSAgICAgICAgICAgICAgICBjaGlsZC5fX3Rlc3RfYnVpbGRM
ZWFmTGlua2VkTGlzdHMobGlua2VkTGlzdE5vZGUsIHJlc3VsdCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFdlJ3JlIGEgbGVhZi4KLSAgICAgICAg
ICAgIHJlc3VsdC5wdXNoKGxpbmtlZExpc3ROb2RlKTsKLSAgICAgICAgfQotICAgIH0KLX07Ci0K
LVdlYkluc3BlY3Rvci5DQ1ROb2RlLl9fdWlkID0gMDsKLQogV2ViSW5zcGVjdG9yLkNhbGxpbmdD
b250ZXh0VHJlZS5UeXBlID0gewogICAgIFRvcERvd246IFN5bWJvbCgiVG9wRG93biIpLAogICAg
IEJvdHRvbVVwOiBTeW1ib2woIkJvdHRvbVVwIiksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NhbGxpbmdDb250ZXh0VHJl
ZU5vZGUuanMKc2ltaWxhcml0eSBpbmRleCA1NyUKY29weSBmcm9tIFNvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMKY29weSB0byBT
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRU
cmVlTm9kZS5qcwppbmRleCBiYzVmMWY3Li41MmE3MTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DYWxsaW5nQ29u
dGV4dFRyZWVOb2RlLmpzCkBAIC0yMywxNTIgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlID0g
Y2xhc3MgQ2FsbGluZ0NvbnRleHRUcmVlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAotewot
ICAgIGNvbnN0cnVjdG9yKHR5cGUpCi0gICAgewotICAgICAgICBzdXBlcigpOwotCi0gICAgICAg
IHRoaXMuX3R5cGUgPSB0eXBlIHx8IFdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWUuVHlw
ZS5Ub3BEb3duOwotCi0gICAgICAgIHRoaXMucmVzZXQoKTsKLSAgICB9Ci0KLSAgICAvLyBQdWJs
aWMKLQotICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQotICAgIGdldCB0b3Rh
bE51bWJlck9mU2FtcGxlcygpIHsgcmV0dXJuIHRoaXMuX3RvdGFsTnVtYmVyT2ZTYW1wbGVzOyB9
Ci0KLSAgICByZXNldCgpCi0gICAgewotICAgICAgICB0aGlzLl9yb290ID0gbmV3IFdlYkluc3Bl
Y3Rvci5DQ1ROb2RlKC0xLCAtMSwgLTEsICI8cm9vdD4iLCBudWxsKTsKLSAgICAgICAgdGhpcy5f
dG90YWxOdW1iZXJPZlNhbXBsZXMgPSAwOwotICAgIH0KLQotICAgIHRvdGFsRHVyYXRpb25JblRp
bWVSYW5nZShzdGFydFRpbWUsIGVuZFRpbWUpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5f
cm9vdC5maWx0ZXJlZFRpbWVzdGFtcHNBbmREdXJhdGlvbihzdGFydFRpbWUsIGVuZFRpbWUpLmR1
cmF0aW9uOwotICAgIH0KLQotICAgIHVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZSh7dGltZXN0YW1w
LCBzdGFja0ZyYW1lc30sIGR1cmF0aW9uKQotICAgIHsKLSAgICAgICAgdGhpcy5fdG90YWxOdW1i
ZXJPZlNhbXBsZXMrKzsKLQotICAgICAgICBsZXQgbm9kZSA9IHRoaXMuX3Jvb3Q7Ci0gICAgICAg
IG5vZGUuYWRkVGltZXN0YW1wQW5kRXhwcmVzc2lvbkxvY2F0aW9uKHRpbWVzdGFtcCwgZHVyYXRp
b24sIG51bGwpOwotCi0gICAgICAgIHN3aXRjaCAodGhpcy5fdHlwZSkgewotICAgICAgICBjYXNl
IFdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWUuVHlwZS5Ub3BEb3duOgotICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IHN0YWNrRnJhbWVzLmxlbmd0aDsgaS0tOyApIHsKLSAgICAgICAgICAg
ICAgICBsZXQgc3RhY2tGcmFtZSA9IHN0YWNrRnJhbWVzW2ldOwotICAgICAgICAgICAgICAgIG5v
ZGUgPSBub2RlLmZpbmRPck1ha2VDaGlsZChzdGFja0ZyYW1lKTsKLSAgICAgICAgICAgICAgICBu
b2RlLmFkZFRpbWVzdGFtcEFuZEV4cHJlc3Npb25Mb2NhdGlvbih0aW1lc3RhbXAsIGR1cmF0aW9u
LCBzdGFja0ZyYW1lLmV4cHJlc3Npb25Mb2NhdGlvbiB8fCBudWxsLCBpID09PSAwKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5D
YWxsaW5nQ29udGV4dFRyZWUuVHlwZS5Cb3R0b21VcDoKLSAgICAgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgc3RhY2tGcmFtZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBsZXQg
c3RhY2tGcmFtZSA9IHN0YWNrRnJhbWVzW2ldOwotICAgICAgICAgICAgICAgIG5vZGUgPSBub2Rl
LmZpbmRPck1ha2VDaGlsZChzdGFja0ZyYW1lKTsKLSAgICAgICAgICAgICAgICBub2RlLmFkZFRp
bWVzdGFtcEFuZEV4cHJlc3Npb25Mb2NhdGlvbih0aW1lc3RhbXAsIGR1cmF0aW9uLCBzdGFja0Zy
YW1lLmV4cHJlc3Npb25Mb2NhdGlvbiB8fCBudWxsLCBpID09PSAwKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5DYWxsaW5nQ29u
dGV4dFRyZWUuVHlwZS5Ub3BGdW5jdGlvbnNUb3BEb3duOgotICAgICAgICAgICAgZm9yIChsZXQg
aSA9IHN0YWNrRnJhbWVzLmxlbmd0aDsgaS0tOyApIHsKLSAgICAgICAgICAgICAgICBub2RlID0g
dGhpcy5fcm9vdDsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGotLTsgKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGxldCBzdGFja0ZyYW1lID0gc3RhY2tGcmFtZXNbal07Ci0g
ICAgICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLmZpbmRPck1ha2VDaGlsZChzdGFja0ZyYW1l
KTsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5hZGRUaW1lc3RhbXBBbmRFeHByZXNzaW9uTG9j
YXRpb24odGltZXN0YW1wLCBkdXJhdGlvbiwgc3RhY2tGcmFtZS5leHByZXNzaW9uTG9jYXRpb24g
fHwgbnVsbCwgaiA9PT0gMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0
VHJlZS5UeXBlLlRvcEZ1bmN0aW9uc0JvdHRvbVVwOgotICAgICAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCBzdGFja0ZyYW1lcy5sZW5ndGg7IGkrKykgewotICAgICAgICAgICAgICAgIG5vZGUg
PSB0aGlzLl9yb290OwotICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSBpOyBqIDwgc3RhY2tG
cmFtZXMubGVuZ3RoOyBqKyspIHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IHN0YWNrRnJhbWUg
PSBzdGFja0ZyYW1lc1tqXTsKLSAgICAgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUuZmluZE9y
TWFrZUNoaWxkKHN0YWNrRnJhbWUpOwotICAgICAgICAgICAgICAgICAgICBub2RlLmFkZFRpbWVz
dGFtcEFuZEV4cHJlc3Npb25Mb2NhdGlvbih0aW1lc3RhbXAsIGR1cmF0aW9uLCBzdGFja0ZyYW1l
LmV4cHJlc3Npb25Mb2NhdGlvbiB8fCBudWxsLCBqID09PSAwKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiVGhpcyBzaG91bGQgbm90IGJlIHJlYWNo
ZWQuIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHRvQ1BV
UHJvZmlsZVBheWxvYWQoc3RhcnRUaW1lLCBlbmRUaW1lKQotICAgIHsKLSAgICAgICAgbGV0IGNw
dVByb2ZpbGUgPSB7fTsKLSAgICAgICAgbGV0IHJvb3RzID0gW107Ci0gICAgICAgIGxldCBudW1T
YW1wbGVzSW5UaW1lUmFuZ2UgPSB0aGlzLl9yb290LmZpbHRlcmVkVGltZXN0YW1wc0FuZER1cmF0
aW9uKHN0YXJ0VGltZSwgZW5kVGltZSkudGltZXN0YW1wcy5sZW5ndGg7Ci0KLSAgICAgICAgdGhp
cy5fcm9vdC5mb3JFYWNoQ2hpbGQoKGNoaWxkKSA9PiB7Ci0gICAgICAgICAgICBpZiAoY2hpbGQu
aGFzU3RhY2tUcmFjZUluVGltZVJhbmdlKHN0YXJ0VGltZSwgZW5kVGltZSkpCi0gICAgICAgICAg
ICAgICAgcm9vdHMucHVzaChjaGlsZC50b0NQVVByb2ZpbGVOb2RlKG51bVNhbXBsZXNJblRpbWVS
YW5nZSwgc3RhcnRUaW1lLCBlbmRUaW1lKSk7IAotICAgICAgICB9KTsKLQotICAgICAgICBjcHVQ
cm9maWxlLnJvb3ROb2RlcyA9IHJvb3RzOwotICAgICAgICByZXR1cm4gY3B1UHJvZmlsZTsKLSAg
ICB9Ci0KLSAgICBmb3JFYWNoQ2hpbGQoY2FsbGJhY2spCi0gICAgewotICAgICAgICB0aGlzLl9y
b290LmZvckVhY2hDaGlsZChjYWxsYmFjayk7Ci0gICAgfQotCi0gICAgZm9yRWFjaE5vZGUoY2Fs
bGJhY2spCi0gICAgewotICAgICAgICB0aGlzLl9yb290LmZvckVhY2hOb2RlKGNhbGxiYWNrKTsK
LSAgICB9Ci0KLSAgICAvLyBUZXN0aW5nLgotCi0gICAgc3RhdGljIF9fdGVzdF9tYWtlVHJlZUZy
b21Qcm90b2NvbE1lc3NhZ2VPYmplY3QobWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGxl
dCB0cmVlID0gbmV3IFdlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWU7Ci0gICAgICAgIGxl
dCBzdGFja1RyYWNlcyA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNhbXBsZXMuc3RhY2tUcmFjZXM7
Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhY2tUcmFjZXMubGVuZ3RoOyBpKyspCi0g
ICAgICAgICAgICB0cmVlLnVwZGF0ZVRyZWVXaXRoU3RhY2tUcmFjZShzdGFja1RyYWNlc1tpXSk7
Ci0gICAgICAgIHJldHVybiB0cmVlOwotICAgIH0KLQotICAgIF9fdGVzdF9tYXRjaGVzU3RhY2tU
cmFjZShzdGFja1RyYWNlKQotICAgIHsKLSAgICAgICAgLy8gU3RhY2tUcmFjZSBzaG91bGQgaGF2
ZSB0b3AgZnJhbWUgZmlyc3QgaW4gdGhlIGFycmF5IGFuZCBib3R0b20gZnJhbWUgbGFzdC4KLSAg
ICAgICAgLy8gV2UgZG9uJ3QgbG9vayBmb3IgYSBtYXRjaCB0aGF0IHRyYWNlcyBkb3duIHRoZSB0
cmVlIGZyb20gdGhlIHJvb3Q7IGluc3RlYWQsCi0gICAgICAgIC8vIHdlIG1hdGNoIGJ5IGxvb2tp
bmcgYXQgYWxsIHRoZSBsZWFmcywgYW5kIG1hdGNoaW5nIHdoaWxlIHdhbGtpbmcgdXAgdGhlIHRy
ZWUKLSAgICAgICAgLy8gdG93YXJkcyB0aGUgcm9vdC4gSWYgd2Ugc3VjY2Vzc2Z1bGx5IG1ha2Ug
dGhlIHdhbGssIHdlJ3ZlIGdvdCBhIG1hdGNoIHRoYXQKLSAgICAgICAgLy8gc3VmZmljZXMgZm9y
IGEgcGFydGljdWxhciB0ZXN0LiBBIHN1Y2Nlc3NmdWwgbWF0Y2ggZG9lc24ndCBtZWFuIHdlIGFj
dHVhbGx5Ci0gICAgICAgIC8vIHdhbGsgYWxsIHRoZSB3YXkgdXAgdG8gdGhlIHJvb3Q7IGl0IGp1
c3QgbWVhbnMgd2UgZGlkbid0IGZhaWwgd2hpbGUgd2Fsa2luZwotICAgICAgICAvLyBpbiB0aGUg
ZGlyZWN0aW9uIG9mIHRoZSByb290LgotICAgICAgICBsZXQgbGVhdmVzID0gdGhpcy5fX3Rlc3Rf
YnVpbGRMZWFmTGlua2VkTGlzdHMoKTsKLQotICAgICAgICBvdXRlcjoKLSAgICAgICAgZm9yIChs
ZXQgbm9kZSBvZiBsZWF2ZXMpIHsKLSAgICAgICAgICAgIGZvciAobGV0IHN0YWNrTm9kZSBvZiBz
dGFja1RyYWNlKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgcHJvcGVydHlOYW1lIG9mIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHN0YWNrTm9kZSkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKHN0YWNrTm9kZVtwcm9wZXJ0eU5hbWVdICE9PSBub2RlW3Byb3BlcnR5TmFtZV0pCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBvdXRlcjsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50OwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLQotICAgIF9fdGVzdF9idWlsZExlYWZMaW5rZWRMaXN0cygpCi0gICAgewotICAgICAg
ICBsZXQgcmVzdWx0ID0gW107Ci0gICAgICAgIGxldCBwYXJlbnQgPSBudWxsOwotICAgICAgICB0
aGlzLl9yb290Ll9fdGVzdF9idWlsZExlYWZMaW5rZWRMaXN0cyhwYXJlbnQsIHJlc3VsdCk7Ci0g
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotfTsKLQotV2ViSW5zcGVjdG9yLkNDVE5vZGUg
PSBjbGFzcyBDQ1ROb2RlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAorV2ViSW5zcGVjdG9y
LkNhbGxpbmdDb250ZXh0VHJlZU5vZGUgPSBjbGFzcyBDYWxsaW5nQ29udGV4dFRyZWVOb2RlIGV4
dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogewogICAgIGNvbnN0cnVjdG9yKHNvdXJjZUlELCBs
aW5lLCBjb2x1bW4sIG5hbWUsIHVybCwgaGFzaCkKICAgICB7CkBAIC0xODAsNyArMzUsNyBAQCBX
ZWJJbnNwZWN0b3IuQ0NUTm9kZSA9IGNsYXNzIENDVE5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgIHRoaXMuX2NvbHVtbiA9IGNvbHVtbjsKICAgICAgICAgdGhpcy5fbmFt
ZSA9IG5hbWU7CiAgICAgICAgIHRoaXMuX3VybCA9IHVybDsKLSAgICAgICAgdGhpcy5fdWlkID0g
V2ViSW5zcGVjdG9yLkNDVE5vZGUuX191aWQrKzsKKyAgICAgICAgdGhpcy5fdWlkID0gV2ViSW5z
cGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZU5vZGUuX191aWQrKzsKIAogICAgICAgICB0aGlzLl90
aW1lc3RhbXBzID0gW107CiAgICAgICAgIHRoaXMuX2R1cmF0aW9ucyA9IFtdOwpAQCAtMTg4LDcg
KzQzLDcgQEAgV2ViSW5zcGVjdG9yLkNDVE5vZGUgPSBjbGFzcyBDQ1ROb2RlIGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLk9iamVjdAogICAgICAgICB0aGlzLl9sZWFmRHVyYXRpb25zID0gW107CiAgICAg
ICAgIHRoaXMuX2V4cHJlc3Npb25Mb2NhdGlvbnMgPSB7fTsgLy8gS2V5cyBhcmUgImxpbmU6Y29s
dW1uIiBzdHJpbmdzLiBWYWx1ZXMgYXJlIGFycmF5cyBvZiB0aW1lc3RhbXBzIGluIHNvcnRlZCBv
cmRlci4KIAotICAgICAgICB0aGlzLl9oYXNoID0gaGFzaCB8fCBXZWJJbnNwZWN0b3IuQ0NUTm9k
ZS5faGFzaCh0aGlzKTsKKyAgICAgICAgdGhpcy5faGFzaCA9IGhhc2ggfHwgV2ViSW5zcGVjdG9y
LkNhbGxpbmdDb250ZXh0VHJlZU5vZGUuX2hhc2godGhpcyk7CiAgICAgfQogCiAgICAgLy8gU3Rh
dGljIGFuZCBQcml2YXRlCkBAIC0yNzUsMTEgKzEzMCwxMSBAQCBXZWJJbnNwZWN0b3IuQ0NUTm9k
ZSA9IGNsYXNzIENDVE5vZGUgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICBmaW5k
T3JNYWtlQ2hpbGQoc3RhY2tGcmFtZSkKICAgICB7Ci0gICAgICAgIGxldCBoYXNoID0gV2ViSW5z
cGVjdG9yLkNDVE5vZGUuX2hhc2goc3RhY2tGcmFtZSk7CisgICAgICAgIGxldCBoYXNoID0gV2Vi
SW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZU5vZGUuX2hhc2goc3RhY2tGcmFtZSk7CiAgICAg
ICAgIGxldCBub2RlID0gdGhpcy5fY2hpbGRyZW5baGFzaF07CiAgICAgICAgIGlmIChub2RlKQog
ICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9y
LkNDVE5vZGUoc3RhY2tGcmFtZS5zb3VyY2VJRCwgc3RhY2tGcmFtZS5saW5lLCBzdGFja0ZyYW1l
LmNvbHVtbiwgc3RhY2tGcmFtZS5uYW1lLCBzdGFja0ZyYW1lLnVybCwgaGFzaCk7CisgICAgICAg
IG5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZU5vZGUoc3RhY2tGcmFt
ZS5zb3VyY2VJRCwgc3RhY2tGcmFtZS5saW5lLCBzdGFja0ZyYW1lLmNvbHVtbiwgc3RhY2tGcmFt
ZS5uYW1lLCBzdGFja0ZyYW1lLnVybCwgaGFzaCk7CiAgICAgICAgIHRoaXMuX2NoaWxkcmVuW2hh
c2hdID0gbm9kZTsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQpAQCAtMzg2LDExICsyNDEs
NCBAQCBXZWJJbnNwZWN0b3IuQ0NUTm9kZSA9IGNsYXNzIENDVE5vZGUgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0CiAgICAgfQogfTsKIAotV2ViSW5zcGVjdG9yLkNDVE5vZGUuX191aWQgPSAw
OwotCi1XZWJJbnNwZWN0b3IuQ2FsbGluZ0NvbnRleHRUcmVlLlR5cGUgPSB7Ci0gICAgVG9wRG93
bjogU3ltYm9sKCJUb3BEb3duIiksCi0gICAgQm90dG9tVXA6IFN5bWJvbCgiQm90dG9tVXAiKSwK
LSAgICBUb3BGdW5jdGlvbnNUb3BEb3duOiBTeW1ib2woIlRvcEZ1bmN0aW9uc1RvcERvd24iKSwK
LSAgICBUb3BGdW5jdGlvbnNCb3R0b21VcDogU3ltYm9sKCJUb3BGdW5jdGlvbnNCb3R0b21VcCIp
LAotfTsKK1dlYkluc3BlY3Rvci5DYWxsaW5nQ29udGV4dFRyZWVOb2RlLl9fdWlkID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbAppbmRleCA4YWQy
MTVhLi42ODQ1OGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
VGVzdC5odG1sCkBAIC05Nyw2ICs5Nyw3IEBACiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DU1NT
dHlsZVNoZWV0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTW9kZWxzL0NhbGxGcmFt
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRy
ZWUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRU
cmVlTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xsZWN0aW9u
RW50cnkuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ29sbGVjdGlvbkVu
dHJ5UHJldmlldy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9Db2xvci5q
cyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9UZXN0U3R1Yi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
VGVzdFN0dWIuaHRtbAppbmRleCBhNzM4ODFmLi5mZGYxMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0U3R1Yi5odG1sCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3RTdHViLmh0bWwKQEAgLTM2LDYgKzM2LDcg
QEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9VdGlsaXRpZXMuanMiPjwvc2NyaXB0
PgogCiAgICAgPHNjcmlwdCBzcmM9Ik1vZGVscy9DYWxsaW5nQ29udGV4dFRyZWUuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQgc3JjPSJNb2RlbHMvQ2FsbGluZ0NvbnRleHRUcmVlTm9kZS5qcyI+
PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iVGVzdC9UZXN0U3VpdGUuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJUZXN0L1Rlc3RIYXJuZXNzLmpzIj48L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVE
YXRhR3JpZE5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Qcm9maWxlRGF0YUdyaWROb2RlLmpzCmluZGV4IDI1ZjE2MWYuLjJmMGE0MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVEYXRh
R3JpZE5vZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUHJvZmlsZURhdGFHcmlkTm9kZS5qcwpAQCAtMjUsMTEgKzI1LDExIEBACiAKIFdlYkluc3Bl
Y3Rvci5Qcm9maWxlRGF0YUdyaWROb2RlID0gY2xhc3MgUHJvZmlsZURhdGFHcmlkTm9kZSBleHRl
bmRzIFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUKIHsKLSAgICBjb25zdHJ1Y3RvcihjY3ROb2Rl
LCB0cmVlKQorICAgIGNvbnN0cnVjdG9yKGNhbGxpbmdDb250ZXh0VHJlZU5vZGUsIHRyZWUpCiAg
ICAgewotICAgICAgICBzdXBlcihjY3ROb2RlLCBmYWxzZSk7CisgICAgICAgIHN1cGVyKGNhbGxp
bmdDb250ZXh0VHJlZU5vZGUsIGZhbHNlKTsKIAotICAgICAgICB0aGlzLl9ub2RlID0gY2N0Tm9k
ZTsKKyAgICAgICAgdGhpcy5fbm9kZSA9IGNhbGxpbmdDb250ZXh0VHJlZU5vZGU7CiAgICAgICAg
IHRoaXMuX3RyZWUgPSB0cmVlOwogCiAgICAgICAgIHRoaXMuX2NoaWxkcmVuVG9DaGFyZ2VUb1Nl
bGYgPSBuZXcgU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUHJvZmlsZURhdGFHcmlkVHJlZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Byb2ZpbGVEYXRhR3JpZFRyZWUuanMKaW5kZXggZGNmZDJj
OS4uZDQ4YTlhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUHJvZmlsZURhdGFHcmlkVHJlZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCkBAIC0yMzksOCAr
MjM5LDcgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVEYXRhR3JpZFRyZWUgPSBjbGFzcyBQcm9maWxl
RGF0YUdyaWRUcmVlIGV4dGVuZHMgV2ViSW5zcGVjdG8KIAogICAgIF91cGRhdGVDdXJyZW50Rm9j
dXNEZXRhaWxzKGZvY3VzRGF0YUdyaWROb2RlKQogICAgIHsKLSAgICAgICAgbGV0IGNjdE5vZGUg
PSBmb2N1c0RhdGFHcmlkTm9kZS5jYWxsaW5nQ29udGV4dFRyZWVOb2RlOwotICAgICAgICBsZXQg
e3RpbWVzdGFtcHMsIGR1cmF0aW9ufSA9IGNjdE5vZGUuZmlsdGVyZWRUaW1lc3RhbXBzQW5kRHVy
YXRpb24odGhpcy5fc3RhcnRUaW1lLCB0aGlzLl9lbmRUaW1lKTsKKyAgICAgICAgbGV0IHt0aW1l
c3RhbXBzLCBkdXJhdGlvbn0gPSBmb2N1c0RhdGFHcmlkTm9kZS5jYWxsaW5nQ29udGV4dFRyZWVO
b2RlLmZpbHRlcmVkVGltZXN0YW1wc0FuZER1cmF0aW9uKHRoaXMuX3N0YXJ0VGltZSwgdGhpcy5f
ZW5kVGltZSk7CiAKICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzU3RhcnRUaW1lID0gdGltZXN0
YW1wc1swXTsKICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzRW5kVGltZSA9IHRpbWVzdGFtcHMu
bGFzdFZhbHVlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>