<?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>168549</bug_id>
          
          <creation_ts>2017-02-17 20:22:25 -0800</creation_ts>
          <short_desc>Web Inspector: Use Maps in FrameResourceManager instead of objects</short_desc>
          <delta_ts>2017-02-17 22:59:27 -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</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1278582</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-02-17 20:22:25 -0800</bug_when>
    <thetext>Also, instead of using `delete` operator use Map#delete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278583</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-02-17 20:22:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/30590110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278587</commentid>
    <comment_count>2</comment_count>
      <attachid>302042</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-02-17 20:42:06 -0800</bug_when>
    <thetext>Created attachment 302042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278592</commentid>
    <comment_count>3</comment_count>
      <attachid>302042</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-02-17 20:49:33 -0800</bug_when>
    <thetext>Comment on attachment 302042
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js:72
&gt;          var frames = [];
&gt; -        for (var key in this._frameIdentifierMap)
&gt; -            frames.push(this._frameIdentifierMap[key]);
&gt; +        for (let [key, value] of this._frameIdentifierMap)
&gt; +            frames.push(value);
&gt;  
&gt;          return frames;

How about just [...map.values()]

&gt; Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js:536
&gt; +        this._resourceRequestIdentifierMap = new Map;
&gt; +        this._frameIdentifierMap = new Map;

These could be .clear(), but I think new Map is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278597</commentid>
    <comment_count>4</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-02-17 22:19:16 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 302042 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302042&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js:72
&gt; &gt;          var frames = [];
&gt; &gt; -        for (var key in this._frameIdentifierMap)
&gt; &gt; -            frames.push(this._frameIdentifierMap[key]);
&gt; &gt; +        for (let [key, value] of this._frameIdentifierMap)
&gt; &gt; +            frames.push(value);
&gt; &gt;  
&gt; &gt;          return frames;
&gt; 
&gt; How about just [...map.values()]

This&apos;s so much more concise! I forgot that `...` can be used with any iterator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278598</commentid>
    <comment_count>5</comment_count>
      <attachid>302046</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2017-02-17 22:22:11 -0800</bug_when>
    <thetext>Created attachment 302046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278606</commentid>
    <comment_count>6</comment_count>
      <attachid>302046</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-17 22:59:24 -0800</bug_when>
    <thetext>Comment on attachment 302046
Patch

Clearing flags on attachment: 302046

Committed r212603: &lt;http://trac.webkit.org/changeset/212603&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278607</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-17 22:59:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302042</attachid>
            <date>2017-02-17 20:42:06 -0800</date>
            <delta_ts>2017-02-17 22:22:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>12326</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDlhZGYyM2YuLjljNGRlZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTAyLTE3ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVzZSBN
YXBzIGluIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGluc3RlYWQgb2Ygb2JqZWN0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NTQ5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMDU5MDExMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgTWFwIGZvciBfZnJhbWVJZGVudGlmaWVyTWFwIGFuZCBfcmVz
b3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvRnJhbWVSZXNvdXJjZU1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RnJhbWVSZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5nZXQgZnJhbWVzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuZnJhbWVG
b3JJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdl
ci5wcm90b3R5cGUuZnJhbWVEaWREZXRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1l
UmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5yZXNvdXJjZVJlcXVlc3RXaWxsQmVTZW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUubWFya1Jl
c291cmNlUmVxdWVzdEFzU2VydmVkRnJvbU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUucmVzb3VyY2VSZXF1ZXN0V2FzU2Vy
dmVkRnJvbU1lbW9yeUNhY2hlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNl
TWFuYWdlci5wcm90b3R5cGUucmVzb3VyY2VSZXF1ZXN0RGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUucmVzb3Vy
Y2VSZXF1ZXN0RGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lUmVz
b3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5yZXNvdXJjZVJlcXVlc3REaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUucmVz
b3VyY2VSZXF1ZXN0RGlkRmFpbExvYWRpbmcpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1l
UmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5fYWRkTmV3UmVzb3VyY2VUb0ZyYW1lT3JUYXJnZXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5f
cHJvY2Vzc01haW5GcmFtZVJlc291cmNlVHJlZVBheWxvYWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5fY3JlYXRlRnJhbWUpOgorCiAyMDE3
LTAyLTE3ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFJUTDogSW5zcGVjdG9yIHdpbmRvdyBzaG91bGQgZG9jayB0byB0aGUgbGVmdCB3aGVu
IHVzaW5nIFJUTCBsYXlvdXQgZGlyZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291cmNlTWFuYWdlci5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0ZyYW1lUmVz
b3VyY2VNYW5hZ2VyLmpzCmluZGV4IDdlZTU4NjQuLmVhM2U4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0ZyYW1lUmVzb3VyY2VN
YW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRy
b2xsZXJzL0ZyYW1lUmVzb3VyY2VNYW5hZ2VyLmpzCkBAIC00NSw5ICs0NSw5IEBAIFdlYkluc3Bl
Y3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4
dGVuZHMgV2ViSW5zcGVjCiAgICAgewogICAgICAgICB2YXIgb2xkTWFpbkZyYW1lID0gdGhpcy5f
bWFpbkZyYW1lOwogCi0gICAgICAgIHRoaXMuX2ZyYW1lSWRlbnRpZmllck1hcCA9IHt9OworICAg
ICAgICB0aGlzLl9mcmFtZUlkZW50aWZpZXJNYXAgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9t
YWluRnJhbWUgPSBudWxsOwotICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVy
TWFwID0ge307CisgICAgICAgIHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAgPSBu
ZXcgTWFwOwogICAgICAgICB0aGlzLl9vcnBoYW5lZFJlc291cmNlcyA9IG5ldyBNYXA7CiAKICAg
ICAgICAgaWYgKHRoaXMuX21haW5GcmFtZSAhPT0gb2xkTWFpbkZyYW1lKQpAQCAtNjYsMTUgKzY2
LDE1IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVz
b3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgZ2V0IGZyYW1lcygpCiAgICAgewog
ICAgICAgICB2YXIgZnJhbWVzID0gW107Ci0gICAgICAgIGZvciAodmFyIGtleSBpbiB0aGlzLl9m
cmFtZUlkZW50aWZpZXJNYXApCi0gICAgICAgICAgICBmcmFtZXMucHVzaCh0aGlzLl9mcmFtZUlk
ZW50aWZpZXJNYXBba2V5XSk7CisgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiB0aGlz
Ll9mcmFtZUlkZW50aWZpZXJNYXApCisgICAgICAgICAgICBmcmFtZXMucHVzaCh2YWx1ZSk7CiAK
ICAgICAgICAgcmV0dXJuIGZyYW1lczsKICAgICB9CiAKICAgICBmcmFtZUZvcklkZW50aWZpZXIo
ZnJhbWVJZCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9mcmFtZUlkZW50aWZpZXJNYXBb
ZnJhbWVJZF0gfHwgbnVsbDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lSWRlbnRpZmllck1h
cC5nZXQoZnJhbWVJZCkgfHwgbnVsbDsKICAgICB9CiAKICAgICBmcmFtZURpZE5hdmlnYXRlKGZy
YW1lUGF5bG9hZCkKQEAgLTE1NSw3ICsxNTUsNyBAQCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJj
ZU1hbmFnZXIgPSBjbGFzcyBGcmFtZVJlc291cmNlTWFuYWdlciBleHRlbmRzIFdlYkluc3BlYwog
ICAgICAgICBpZiAoZnJhbWUucGFyZW50RnJhbWUpCiAgICAgICAgICAgICBmcmFtZS5wYXJlbnRG
cmFtZS5yZW1vdmVDaGlsZEZyYW1lKGZyYW1lKTsKIAotICAgICAgICBkZWxldGUgdGhpcy5fZnJh
bWVJZGVudGlmaWVyTWFwW2ZyYW1lLmlkXTsKKyAgICAgICAgdGhpcy5fZnJhbWVJZGVudGlmaWVy
TWFwLmRlbGV0ZShmcmFtZS5pZCk7CiAKICAgICAgICAgdmFyIG9sZE1haW5GcmFtZSA9IHRoaXMu
X21haW5GcmFtZTsKIApAQCAtMTg2LDcgKzE4Niw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291
cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVj
CiAgICAgICAgIHZhciBvcmlnaW5hbFJlcXVlc3RXaWxsQmVTZW50VGltZXN0YW1wID0gdGltZXN0
YW1wOwogCiAgICAgICAgIHZhciBlbGFwc2VkVGltZSA9IFdlYkluc3BlY3Rvci50aW1lbGluZU1h
bmFnZXIuY29tcHV0ZUVsYXBzZWRUaW1lKHRpbWVzdGFtcCk7Ci0gICAgICAgIHZhciByZXNvdXJj
ZSA9IHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXBbcmVxdWVzdElkZW50aWZpZXJd
OworICAgICAgICBsZXQgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVy
TWFwLmdldChyZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgICAgIGlmIChyZXNvdXJjZSkgewogICAg
ICAgICAgICAgLy8gVGhpcyBpcyBhbiBleGlzdGluZyByZXF1ZXN0IHdoaWNoIGlzIGJlaW5nIHJl
ZGlyZWN0ZWQsIHVwZGF0ZSB0aGUgcmVzb3VyY2UuCiAgICAgICAgICAgICBjb25zb2xlLmFzc2Vy
dChyZWRpcmVjdFJlc3BvbnNlKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCBXZWJJbnNwZWN0b3IuRnJh
bWVSZXNvdXJjZU1hbmFnZXIgPSBjbGFzcyBGcmFtZVJlc291cmNlTWFuYWdlciBleHRlbmRzIFdl
Ykluc3BlYwogICAgICAgICByZXNvdXJjZSA9IHRoaXMuX2FkZE5ld1Jlc291cmNlVG9GcmFtZU9y
VGFyZ2V0KHJlcXVlc3RJZGVudGlmaWVyLCBmcmFtZUlkZW50aWZpZXIsIGxvYWRlcklkZW50aWZp
ZXIsIHJlcXVlc3QudXJsLCB0eXBlLCByZXF1ZXN0Lm1ldGhvZCwgcmVxdWVzdC5oZWFkZXJzLCBy
ZXF1ZXN0LnBvc3REYXRhLCBlbGFwc2VkVGltZSwgbnVsbCwgbnVsbCwgaW5pdGlhdG9yU291cmNl
Q29kZUxvY2F0aW9uLCBvcmlnaW5hbFJlcXVlc3RXaWxsQmVTZW50VGltZXN0YW1wLCB0YXJnZXRJ
ZCk7CiAKICAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSByZXNvdXJjZSB3aXRoIHRoZSByZXF1ZXN0
SWRlbnRpZmllciBzbyBpdCBjYW4gYmUgZm91bmQgaW4gZnV0dXJlIGxvYWRpbmcgZXZlbnRzLgot
ICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwW3JlcXVlc3RJZGVudGlm
aWVyXSA9IHJlc291cmNlOworICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVy
TWFwLnNldChyZXF1ZXN0SWRlbnRpZmllciwgcmVzb3VyY2UpOwogICAgIH0KIAogICAgIG1hcmtS
ZXNvdXJjZVJlcXVlc3RBc1NlcnZlZEZyb21NZW1vcnlDYWNoZShyZXF1ZXN0SWRlbnRpZmllcikK
QEAgLTIxMiw3ICsyMTIsNyBAQCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIgPSBj
bGFzcyBGcmFtZVJlc291cmNlTWFuYWdlciBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBpZiAo
dGhpcy5fd2FpdGluZ0Zvck1haW5GcmFtZVJlc291cmNlVHJlZVBheWxvYWQpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0
SWRlbnRpZmllck1hcFtyZXF1ZXN0SWRlbnRpZmllcl07CisgICAgICAgIGxldCByZXNvdXJjZSA9
IHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAuZ2V0KHJlcXVlc3RJZGVudGlmaWVy
KTsKIAogICAgICAgICAvLyBXZSBtaWdodCBub3QgaGF2ZSBhIHJlc291cmNlIGlmIHRoZSBpbnNw
ZWN0b3Igd2FzIG9wZW5lZCBkdXJpbmcgdGhlIHBhZ2UgbG9hZCAoYWZ0ZXIgcmVzb3VyY2VSZXF1
ZXN0V2lsbEJlU2VudCBpcyBjYWxsZWQpLgogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGFz
c2VydCBpbiB0aGlzIGNhc2Ugc2luY2Ugd2UgZG8gbGlrZWx5IGhhdmUgdGhlIHJlc291cmNlLCB2
aWEgUGFnZUFnZW50LmdldFJlc291cmNlVHJlZS4gVGhlIFJlc291cmNlCkBAIC0yMzEsNyArMjMx
LDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gY2xhc3MgRnJhbWVSZXNv
dXJjZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgaWYgKHRoaXMuX3dhaXRpbmdG
b3JNYWluRnJhbWVSZXNvdXJjZVRyZWVQYXlsb2FkKQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCEocmVxdWVzdElkZW50aWZpZXIgaW4gdGhpcy5fcmVzb3Vy
Y2VSZXF1ZXN0SWRlbnRpZmllck1hcCkpOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5f
cmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcC5oYXMocmVxdWVzdElkZW50aWZpZXIpKTsKIAog
ICAgICAgICB2YXIgZWxhcHNlZFRpbWUgPSBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5hZ2VyLmNv
bXB1dGVFbGFwc2VkVGltZSh0aW1lc3RhbXApOwogICAgICAgICB2YXIgaW5pdGlhdG9yU291cmNl
Q29kZUxvY2F0aW9uID0gdGhpcy5faW5pdGlhdG9yU291cmNlQ29kZUxvY2F0aW9uRnJvbVBheWxv
YWQoaW5pdGlhdG9yKTsKQEAgLTI1OSw3ICsyNTksNyBAQCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNv
dXJjZU1hbmFnZXIgPSBjbGFzcyBGcmFtZVJlc291cmNlTWFuYWdlciBleHRlbmRzIFdlYkluc3Bl
YwogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHZhciBlbGFwc2VkVGltZSA9IFdlYklu
c3BlY3Rvci50aW1lbGluZU1hbmFnZXIuY29tcHV0ZUVsYXBzZWRUaW1lKHRpbWVzdGFtcCk7Ci0g
ICAgICAgIHZhciByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXBb
cmVxdWVzdElkZW50aWZpZXJdOworICAgICAgICBsZXQgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJj
ZVJlcXVlc3RJZGVudGlmaWVyTWFwLmdldChyZXF1ZXN0SWRlbnRpZmllcik7CiAKICAgICAgICAg
Ly8gV2UgbWlnaHQgbm90IGhhdmUgYSByZXNvdXJjZSBpZiB0aGUgaW5zcGVjdG9yIHdhcyBvcGVu
ZWQgZHVyaW5nIHRoZSBwYWdlIGxvYWQgKGFmdGVyIHJlc291cmNlUmVxdWVzdFdpbGxCZVNlbnQg
aXMgY2FsbGVkKS4KICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBhc3NlcnQgaW4gdGhpcyBj
YXNlIHNpbmNlIHdlIGRvIGxpa2VseSBoYXZlIHRoZSByZXNvdXJjZSwgdmlhIFBhZ2VBZ2VudC5n
ZXRSZXNvdXJjZVRyZWUuIFRoZSBSZXNvdXJjZQpAQCAtMjczLDcgKzI3Myw3IEBAIFdlYkluc3Bl
Y3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4
dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICAvLyBBc3NvY2lhdGUgdGhlIHJlc291cmNlIHdp
dGggdGhlIHJlcXVlc3RJZGVudGlmaWVyIHNvIGl0IGNhbiBiZSBmb3VuZCBpbiBmdXR1cmUgbG9h
ZGluZyBldmVudHMuCiAgICAgICAgICAgICAvLyBhbmQgcm9sbCBpdCBiYWNrIHRvIGFuIHVuZmlu
aXNoZWQgc3RhdGUsIHdlIGtub3cgbm93IGl0IGlzIHN0aWxsIGxvYWRpbmcuCiAgICAgICAgICAg
ICBpZiAocmVzb3VyY2UpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJ
ZGVudGlmaWVyTWFwW3JlcXVlc3RJZGVudGlmaWVyXSA9IHJlc291cmNlOworICAgICAgICAgICAg
ICAgIHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAuc2V0KHJlcXVlc3RJZGVudGlm
aWVyLCByZXNvdXJjZSk7CiAgICAgICAgICAgICAgICAgcmVzb3VyY2UucmV2ZXJ0TWFya0FzRmlu
aXNoZWQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjg0LDcgKzI4NCw3IEBAIFdl
Ykluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5h
Z2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICByZXNvdXJjZSA9IHRoaXMuX2FkZE5l
d1Jlc291cmNlVG9GcmFtZU9yVGFyZ2V0KHJlcXVlc3RJZGVudGlmaWVyLCBmcmFtZUlkZW50aWZp
ZXIsIGxvYWRlcklkZW50aWZpZXIsIHJlc3BvbnNlLnVybCwgdHlwZSwgbnVsbCwgcmVzcG9uc2Uu
cmVxdWVzdEhlYWRlcnMsIG51bGwsIGVsYXBzZWRUaW1lLCBudWxsLCBudWxsLCBudWxsKTsKIAog
ICAgICAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSByZXNvdXJjZSB3aXRoIHRoZSByZXF1ZXN0SWRl
bnRpZmllciBzbyBpdCBjYW4gYmUgZm91bmQgaW4gZnV0dXJlIGxvYWRpbmcgZXZlbnRzLgotICAg
ICAgICAgICAgdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcFtyZXF1ZXN0SWRlbnRp
Zmllcl0gPSByZXNvdXJjZTsKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50
aWZpZXJNYXAuc2V0KHJlcXVlc3RJZGVudGlmaWVyLCByZXNvdXJjZSk7CiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAocmVzcG9uc2UuZnJvbURpc2tDYWNoZSkKQEAgLTMwMSw3ICszMDEsNyBAQCBX
ZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIgPSBjbGFzcyBGcmFtZVJlc291cmNlTWFu
YWdlciBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBpZiAodGhpcy5fd2FpdGluZ0Zvck1haW5G
cmFtZVJlc291cmNlVHJlZVBheWxvYWQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAg
dmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcFtyZXF1ZXN0
SWRlbnRpZmllcl07CisgICAgICAgIGxldCByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlUmVxdWVz
dElkZW50aWZpZXJNYXAuZ2V0KHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICAgICAgdmFyIGVsYXBz
ZWRUaW1lID0gV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5jb21wdXRlRWxhcHNlZFRpbWUo
dGltZXN0YW1wKTsKIAogICAgICAgICAvLyBXZSBtaWdodCBub3QgaGF2ZSBhIHJlc291cmNlIGlm
IHRoZSBpbnNwZWN0b3Igd2FzIG9wZW5lZCBkdXJpbmcgdGhlIHBhZ2UgbG9hZCAoYWZ0ZXIgcmVz
b3VyY2VSZXF1ZXN0V2lsbEJlU2VudCBpcyBjYWxsZWQpLgpAQCAtMzI2LDcgKzMyNiw3IEBAIFdl
Ykluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5h
Z2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAKICAgICAgICAgLy8gQnkgbm93IHdlIHNob3VsZCBhbHdh
eXMgaGF2ZSB0aGUgUmVzb3VyY2UuIEVpdGhlciBpdCB3YXMgZmV0Y2hlZCB3aGVuIHRoZSBpbnNw
ZWN0b3IgZmlyc3Qgb3BlbmVkIHdpdGgKICAgICAgICAgLy8gUGFnZUFnZW50LmdldFJlc291cmNl
VHJlZSwgb3IgaXQgd2FzIGEgY3VycmVudGx5IGxvYWRpbmcgcmVzb3VyY2UgdGhhdCB3ZSBsZWFy
bmVkIGFib3V0IGluIHJlc291cmNlUmVxdWVzdERpZFJlY2VpdmVSZXNwb25zZS4KLSAgICAgICAg
dmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcFtyZXF1ZXN0
SWRlbnRpZmllcl07CisgICAgICAgIGxldCByZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlUmVxdWVz
dElkZW50aWZpZXJNYXAuZ2V0KHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICAgICAgY29uc29sZS5h
c3NlcnQocmVzb3VyY2UpOwogICAgICAgICBpZiAoIXJlc291cmNlKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMzM3LDcgKzMzNyw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdl
ciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAg
IGlmIChzb3VyY2VNYXBVUkwpCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc291cmNlTWFwTWFu
YWdlci5kb3dubG9hZFNvdXJjZU1hcChzb3VyY2VNYXBVUkwsIHJlc291cmNlLnVybCwgcmVzb3Vy
Y2UpOwogCi0gICAgICAgIGRlbGV0ZSB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFw
W3JlcXVlc3RJZGVudGlmaWVyXTsKKyAgICAgICAgdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRp
Zmllck1hcC5kZWxldGUocmVxdWVzdElkZW50aWZpZXIpOwogICAgIH0KIAogICAgIHJlc291cmNl
UmVxdWVzdERpZEZhaWxMb2FkaW5nKHJlcXVlc3RJZGVudGlmaWVyLCBjYW5jZWxlZCwgdGltZXN0
YW1wKQpAQCAtMzUwLDcgKzM1MCw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdl
ciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAKICAgICAg
ICAgLy8gQnkgbm93IHdlIHNob3VsZCBhbHdheXMgaGF2ZSB0aGUgUmVzb3VyY2UuIEVpdGhlciBp
dCB3YXMgZmV0Y2hlZCB3aGVuIHRoZSBpbnNwZWN0b3IgZmlyc3Qgb3BlbmVkIHdpdGgKICAgICAg
ICAgLy8gUGFnZUFnZW50LmdldFJlc291cmNlVHJlZSwgb3IgaXQgd2FzIGEgY3VycmVudGx5IGxv
YWRpbmcgcmVzb3VyY2UgdGhhdCB3ZSBsZWFybmVkIGFib3V0IGluIHJlc291cmNlUmVxdWVzdERp
ZFJlY2VpdmVSZXNwb25zZS4KLSAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VS
ZXF1ZXN0SWRlbnRpZmllck1hcFtyZXF1ZXN0SWRlbnRpZmllcl07CisgICAgICAgIGxldCByZXNv
dXJjZSA9IHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAuZ2V0KHJlcXVlc3RJZGVu
dGlmaWVyKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQocmVzb3VyY2UpOwogICAgICAgICBpZiAo
IXJlc291cmNlKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzYxLDcgKzM2MSw3IEBAIFdlYklu
c3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2Vy
IGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIGlmIChyZXNvdXJjZSA9PT0gcmVzb3VyY2UucGFy
ZW50RnJhbWUucHJvdmlzaW9uYWxNYWluUmVzb3VyY2UpCiAgICAgICAgICAgICByZXNvdXJjZS5w
YXJlbnRGcmFtZS5jbGVhclByb3Zpc2lvbmFsTG9hZCgpOwogCi0gICAgICAgIGRlbGV0ZSB0aGlz
Ll9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwW3JlcXVlc3RJZGVudGlmaWVyXTsKKyAgICAg
ICAgdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcC5kZWxldGUocmVxdWVzdElkZW50
aWZpZXIpOwogICAgIH0KIAogICAgIGV4ZWN1dGlvbkNvbnRleHRDcmVhdGVkKGNvbnRleHRQYXls
b2FkKQpAQCAtNDI4LDcgKzQyOCw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdl
ciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAg
ICAgICBjb25zb2xlLmFzc2VydCghdGFyZ2V0SWQpOwogICAgICAgICAgICAgcmVzb3VyY2UgPSBu
ZXcgV2ViSW5zcGVjdG9yLlJlc291cmNlKHVybCwgbnVsbCwgdHlwZSwgbG9hZGVySWRlbnRpZmll
ciwgdGFyZ2V0SWQsIHJlcXVlc3RJZGVudGlmaWVyLCByZXF1ZXN0TWV0aG9kLCByZXF1ZXN0SGVh
ZGVycywgcmVxdWVzdERhdGEsIGVsYXBzZWRUaW1lLCBpbml0aWF0b3JTb3VyY2VDb2RlTG9jYXRp
b24sIG9yaWdpbmFsUmVxdWVzdFdpbGxCZVNlbnRUaW1lc3RhbXApOwogICAgICAgICAgICAgZnJh
bWUgPSBuZXcgV2ViSW5zcGVjdG9yLkZyYW1lKGZyYW1lSWRlbnRpZmllciwgZnJhbWVOYW1lLCBm
cmFtZVNlY3VyaXR5T3JpZ2luLCBsb2FkZXJJZGVudGlmaWVyLCByZXNvdXJjZSk7Ci0gICAgICAg
ICAgICB0aGlzLl9mcmFtZUlkZW50aWZpZXJNYXBbZnJhbWUuaWRdID0gZnJhbWU7CisgICAgICAg
ICAgICB0aGlzLl9mcmFtZUlkZW50aWZpZXJNYXAuc2V0KGZyYW1lLmlkLCBmcmFtZSk7CiAKICAg
ICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBtYWluIGZyYW1lLCBhc3N1bWUgdGhpcyBp
cyBpdC4gVGhpcyBjYW4gY2hhbmdlIGxhdGVyIGluCiAgICAgICAgICAgICAvLyBmcmFtZURpZE5h
dmlnYXRlIHdoZW4gdGhlIHBhcmVudCBmcmFtZSBpcyBrbm93bi4KQEAgLTUzMiw4ICs1MzIsOCBA
QCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIgPSBjbGFzcyBGcmFtZVJlc291cmNl
TWFuYWdlciBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBjb25zb2xlLmFzc2VydChtYWluRnJh
bWVQYXlsb2FkKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQobWFpbkZyYW1lUGF5bG9hZC5mcmFt
ZSk7CiAKLSAgICAgICAgdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcCA9IHt9Owot
ICAgICAgICB0aGlzLl9mcmFtZUlkZW50aWZpZXJNYXAgPSB7fTsKKyAgICAgICAgdGhpcy5fcmVz
b3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcCA9IG5ldyBNYXA7CisgICAgICAgIHRoaXMuX2ZyYW1l
SWRlbnRpZmllck1hcCA9IG5ldyBNYXA7CiAKICAgICAgICAgdmFyIG9sZE1haW5GcmFtZSA9IHRo
aXMuX21haW5GcmFtZTsKIApAQCAtNTUwLDcgKzU1MCw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJl
c291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5z
cGVjCiAgICAgICAgIHZhciBtYWluUmVzb3VyY2UgPSBuZXcgV2ViSW5zcGVjdG9yLlJlc291cmNl
KHBheWxvYWQudXJsIHx8ICJhYm91dDpibGFuayIsIHBheWxvYWQubWltZVR5cGUsIG51bGwsIHBh
eWxvYWQubG9hZGVySWQpOwogICAgICAgICB2YXIgZnJhbWUgPSBuZXcgV2ViSW5zcGVjdG9yLkZy
YW1lKHBheWxvYWQuaWQsIHBheWxvYWQubmFtZSwgcGF5bG9hZC5zZWN1cml0eU9yaWdpbiwgcGF5
bG9hZC5sb2FkZXJJZCwgbWFpblJlc291cmNlKTsKIAotICAgICAgICB0aGlzLl9mcmFtZUlkZW50
aWZpZXJNYXBbZnJhbWUuaWRdID0gZnJhbWU7CisgICAgICAgIHRoaXMuX2ZyYW1lSWRlbnRpZmll
ck1hcC5zZXQoZnJhbWUuaWQsIGZyYW1lKTsKIAogICAgICAgICBtYWluUmVzb3VyY2UubWFya0Fz
RmluaXNoZWQoKTsKIAo=
</data>
<flag name="review"
          id="323782"
          type_id="1"
          status="+"
          setter="joepeck"
    />
    <flag name="commit-queue"
          id="323783"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302046</attachid>
            <date>2017-02-17 22:22:11 -0800</date>
            <delta_ts>2017-02-17 22:59:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>12292</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDlhZGYyM2YuLjU1ZTZiZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTAyLTE3ICBOaWtpdGEgVmFzaWx5
ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVzZSBN
YXBzIGluIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGluc3RlYWQgb2Ygb2JqZWN0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NTQ5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zMDU5MDExMD4KKworICAgICAgICBSZXZpZXdlZCBieSBKb3NlcGggUGVj
b3Jhcm8uCisKKyAgICAgICAgVXNlIE1hcCBmb3IgX2ZyYW1lSWRlbnRpZmllck1hcCBhbmQgX3Jl
c291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0ZyYW1lUmVzb3VyY2VNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkZyYW1lUmVzb3VyY2VNYW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXplKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuZ2V0IGZyYW1lcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLmZyYW1l
Rm9ySWRlbnRpZmllcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFn
ZXIucHJvdG90eXBlLmZyYW1lRGlkRGV0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFt
ZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUucmVzb3VyY2VSZXF1ZXN0V2lsbEJlU2VudCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLm1hcmtS
ZXNvdXJjZVJlcXVlc3RBc1NlcnZlZEZyb21NZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLnJlc291cmNlUmVxdWVzdFdhc1Nl
cnZlZEZyb21NZW1vcnlDYWNoZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJj
ZU1hbmFnZXIucHJvdG90eXBlLnJlc291cmNlUmVxdWVzdERpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLnJlc291
cmNlUmVxdWVzdERpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJl
c291cmNlTWFuYWdlci5wcm90b3R5cGUucmVzb3VyY2VSZXF1ZXN0RGlkRmluaXNoTG9hZGluZyk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIucHJvdG90eXBlLnJl
c291cmNlUmVxdWVzdERpZEZhaWxMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFt
ZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuX2FkZE5ld1Jlc291cmNlVG9GcmFtZU9yVGFyZ2V0
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUu
X3Byb2Nlc3NNYWluRnJhbWVSZXNvdXJjZVRyZWVQYXlsb2FkKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5GcmFtZVJlc291cmNlTWFuYWdlci5wcm90b3R5cGUuX2NyZWF0ZUZyYW1lKToKKwogMjAx
Ny0wMi0xNyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBSVEw6IEluc3BlY3RvciB3aW5kb3cgc2hvdWxkIGRvY2sgdG8gdGhlIGxlZnQgd2hl
biB1c2luZyBSVEwgbGF5b3V0IGRpcmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRnJhbWVSZXNvdXJjZU1hbmFnZXIuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJl
c291cmNlTWFuYWdlci5qcwppbmRleCA3ZWU1ODY0Li4yZmEwYzkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9GcmFtZVJlc291cmNl
TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250
cm9sbGVycy9GcmFtZVJlc291cmNlTWFuYWdlci5qcwpAQCAtNDUsOSArNDUsOSBAQCBXZWJJbnNw
ZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIgPSBjbGFzcyBGcmFtZVJlc291cmNlTWFuYWdlciBl
eHRlbmRzIFdlYkluc3BlYwogICAgIHsKICAgICAgICAgdmFyIG9sZE1haW5GcmFtZSA9IHRoaXMu
X21haW5GcmFtZTsKIAotICAgICAgICB0aGlzLl9mcmFtZUlkZW50aWZpZXJNYXAgPSB7fTsKKyAg
ICAgICAgdGhpcy5fZnJhbWVJZGVudGlmaWVyTWFwID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5f
bWFpbkZyYW1lID0gbnVsbDsKLSAgICAgICAgdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmll
ck1hcCA9IHt9OworICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwID0g
bmV3IE1hcDsKICAgICAgICAgdGhpcy5fb3JwaGFuZWRSZXNvdXJjZXMgPSBuZXcgTWFwOwogCiAg
ICAgICAgIGlmICh0aGlzLl9tYWluRnJhbWUgIT09IG9sZE1haW5GcmFtZSkKQEAgLTY1LDE2ICs2
NSwxMiBAQCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1hbmFnZXIgPSBjbGFzcyBGcmFtZVJl
c291cmNlTWFuYWdlciBleHRlbmRzIFdlYkluc3BlYwogCiAgICAgZ2V0IGZyYW1lcygpCiAgICAg
ewotICAgICAgICB2YXIgZnJhbWVzID0gW107Ci0gICAgICAgIGZvciAodmFyIGtleSBpbiB0aGlz
Ll9mcmFtZUlkZW50aWZpZXJNYXApCi0gICAgICAgICAgICBmcmFtZXMucHVzaCh0aGlzLl9mcmFt
ZUlkZW50aWZpZXJNYXBba2V5XSk7Ci0KLSAgICAgICAgcmV0dXJuIGZyYW1lczsKKyAgICAgICAg
cmV0dXJuIFsuLi50aGlzLl9mcmFtZUlkZW50aWZpZXJNYXAudmFsdWVzKCldOwogICAgIH0KIAog
ICAgIGZyYW1lRm9ySWRlbnRpZmllcihmcmFtZUlkKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuX2ZyYW1lSWRlbnRpZmllck1hcFtmcmFtZUlkXSB8fCBudWxsOworICAgICAgICByZXR1cm4g
dGhpcy5fZnJhbWVJZGVudGlmaWVyTWFwLmdldChmcmFtZUlkKSB8fCBudWxsOwogICAgIH0KIAog
ICAgIGZyYW1lRGlkTmF2aWdhdGUoZnJhbWVQYXlsb2FkKQpAQCAtMTU1LDcgKzE1MSw3IEBAIFdl
Ykluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5h
Z2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIGlmIChmcmFtZS5wYXJlbnRGcmFtZSkKICAg
ICAgICAgICAgIGZyYW1lLnBhcmVudEZyYW1lLnJlbW92ZUNoaWxkRnJhbWUoZnJhbWUpOwogCi0g
ICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFtZUlkZW50aWZpZXJNYXBbZnJhbWUuaWRdOworICAgICAg
ICB0aGlzLl9mcmFtZUlkZW50aWZpZXJNYXAuZGVsZXRlKGZyYW1lLmlkKTsKIAogICAgICAgICB2
YXIgb2xkTWFpbkZyYW1lID0gdGhpcy5fbWFpbkZyYW1lOwogCkBAIC0xODYsNyArMTgyLDcgQEAg
V2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gY2xhc3MgRnJhbWVSZXNvdXJjZU1h
bmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgdmFyIG9yaWdpbmFsUmVxdWVzdFdpbGxC
ZVNlbnRUaW1lc3RhbXAgPSB0aW1lc3RhbXA7CiAKICAgICAgICAgdmFyIGVsYXBzZWRUaW1lID0g
V2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5jb21wdXRlRWxhcHNlZFRpbWUodGltZXN0YW1w
KTsKLSAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmll
ck1hcFtyZXF1ZXN0SWRlbnRpZmllcl07CisgICAgICAgIGxldCByZXNvdXJjZSA9IHRoaXMuX3Jl
c291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAuZ2V0KHJlcXVlc3RJZGVudGlmaWVyKTsKICAgICAg
ICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGFuIGV4aXN0aW5nIHJl
cXVlc3Qgd2hpY2ggaXMgYmVpbmcgcmVkaXJlY3RlZCwgdXBkYXRlIHRoZSByZXNvdXJjZS4KICAg
ICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtMjAxLDcgKzE5
Nyw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVz
b3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHJlc291cmNlID0gdGhpcy5f
YWRkTmV3UmVzb3VyY2VUb0ZyYW1lT3JUYXJnZXQocmVxdWVzdElkZW50aWZpZXIsIGZyYW1lSWRl
bnRpZmllciwgbG9hZGVySWRlbnRpZmllciwgcmVxdWVzdC51cmwsIHR5cGUsIHJlcXVlc3QubWV0
aG9kLCByZXF1ZXN0LmhlYWRlcnMsIHJlcXVlc3QucG9zdERhdGEsIGVsYXBzZWRUaW1lLCBudWxs
LCBudWxsLCBpbml0aWF0b3JTb3VyY2VDb2RlTG9jYXRpb24sIG9yaWdpbmFsUmVxdWVzdFdpbGxC
ZVNlbnRUaW1lc3RhbXAsIHRhcmdldElkKTsKIAogICAgICAgICAvLyBBc3NvY2lhdGUgdGhlIHJl
c291cmNlIHdpdGggdGhlIHJlcXVlc3RJZGVudGlmaWVyIHNvIGl0IGNhbiBiZSBmb3VuZCBpbiBm
dXR1cmUgbG9hZGluZyBldmVudHMuCi0gICAgICAgIHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50
aWZpZXJNYXBbcmVxdWVzdElkZW50aWZpZXJdID0gcmVzb3VyY2U7CisgICAgICAgIHRoaXMuX3Jl
c291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAuc2V0KHJlcXVlc3RJZGVudGlmaWVyLCByZXNvdXJj
ZSk7CiAgICAgfQogCiAgICAgbWFya1Jlc291cmNlUmVxdWVzdEFzU2VydmVkRnJvbU1lbW9yeUNh
Y2hlKHJlcXVlc3RJZGVudGlmaWVyKQpAQCAtMjEyLDcgKzIwOCw3IEBAIFdlYkluc3BlY3Rvci5G
cmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4dGVuZHMg
V2ViSW5zcGVjCiAgICAgICAgIGlmICh0aGlzLl93YWl0aW5nRm9yTWFpbkZyYW1lUmVzb3VyY2VU
cmVlUGF5bG9hZCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgcmVzb3VyY2Ug
PSB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwW3JlcXVlc3RJZGVudGlmaWVyXTsK
KyAgICAgICAgbGV0IHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1h
cC5nZXQocmVxdWVzdElkZW50aWZpZXIpOwogCiAgICAgICAgIC8vIFdlIG1pZ2h0IG5vdCBoYXZl
IGEgcmVzb3VyY2UgaWYgdGhlIGluc3BlY3RvciB3YXMgb3BlbmVkIGR1cmluZyB0aGUgcGFnZSBs
b2FkIChhZnRlciByZXNvdXJjZVJlcXVlc3RXaWxsQmVTZW50IGlzIGNhbGxlZCkuCiAgICAgICAg
IC8vIFdlIGRvbid0IHdhbnQgdG8gYXNzZXJ0IGluIHRoaXMgY2FzZSBzaW5jZSB3ZSBkbyBsaWtl
bHkgaGF2ZSB0aGUgcmVzb3VyY2UsIHZpYSBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VUcmVlLiBUaGUg
UmVzb3VyY2UKQEAgLTIzMSw3ICsyMjcsNyBAQCBXZWJJbnNwZWN0b3IuRnJhbWVSZXNvdXJjZU1h
bmFnZXIgPSBjbGFzcyBGcmFtZVJlc291cmNlTWFuYWdlciBleHRlbmRzIFdlYkluc3BlYwogICAg
ICAgICBpZiAodGhpcy5fd2FpdGluZ0Zvck1haW5GcmFtZVJlc291cmNlVHJlZVBheWxvYWQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgY29uc29sZS5hc3NlcnQoIShyZXF1ZXN0SWRl
bnRpZmllciBpbiB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwKSk7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwLmhhcyhy
ZXF1ZXN0SWRlbnRpZmllcikpOwogCiAgICAgICAgIHZhciBlbGFwc2VkVGltZSA9IFdlYkluc3Bl
Y3Rvci50aW1lbGluZU1hbmFnZXIuY29tcHV0ZUVsYXBzZWRUaW1lKHRpbWVzdGFtcCk7CiAgICAg
ICAgIHZhciBpbml0aWF0b3JTb3VyY2VDb2RlTG9jYXRpb24gPSB0aGlzLl9pbml0aWF0b3JTb3Vy
Y2VDb2RlTG9jYXRpb25Gcm9tUGF5bG9hZChpbml0aWF0b3IpOwpAQCAtMjU5LDcgKzI1NSw3IEBA
IFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VN
YW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAg
dmFyIGVsYXBzZWRUaW1lID0gV2ViSW5zcGVjdG9yLnRpbWVsaW5lTWFuYWdlci5jb21wdXRlRWxh
cHNlZFRpbWUodGltZXN0YW1wKTsKLSAgICAgICAgdmFyIHJlc291cmNlID0gdGhpcy5fcmVzb3Vy
Y2VSZXF1ZXN0SWRlbnRpZmllck1hcFtyZXF1ZXN0SWRlbnRpZmllcl07CisgICAgICAgIGxldCBy
ZXNvdXJjZSA9IHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXAuZ2V0KHJlcXVlc3RJ
ZGVudGlmaWVyKTsKIAogICAgICAgICAvLyBXZSBtaWdodCBub3QgaGF2ZSBhIHJlc291cmNlIGlm
IHRoZSBpbnNwZWN0b3Igd2FzIG9wZW5lZCBkdXJpbmcgdGhlIHBhZ2UgbG9hZCAoYWZ0ZXIgcmVz
b3VyY2VSZXF1ZXN0V2lsbEJlU2VudCBpcyBjYWxsZWQpLgogICAgICAgICAvLyBXZSBkb24ndCB3
YW50IHRvIGFzc2VydCBpbiB0aGlzIGNhc2Ugc2luY2Ugd2UgZG8gbGlrZWx5IGhhdmUgdGhlIHJl
c291cmNlLCB2aWEgUGFnZUFnZW50LmdldFJlc291cmNlVHJlZS4gVGhlIFJlc291cmNlCkBAIC0y
NzMsNyArMjY5LDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gY2xhc3Mg
RnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgIC8vIEFz
c29jaWF0ZSB0aGUgcmVzb3VyY2Ugd2l0aCB0aGUgcmVxdWVzdElkZW50aWZpZXIgc28gaXQgY2Fu
IGJlIGZvdW5kIGluIGZ1dHVyZSBsb2FkaW5nIGV2ZW50cy4KICAgICAgICAgICAgIC8vIGFuZCBy
b2xsIGl0IGJhY2sgdG8gYW4gdW5maW5pc2hlZCBzdGF0ZSwgd2Uga25vdyBub3cgaXQgaXMgc3Rp
bGwgbG9hZGluZy4KICAgICAgICAgICAgIGlmIChyZXNvdXJjZSkgewotICAgICAgICAgICAgICAg
IHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXBbcmVxdWVzdElkZW50aWZpZXJdID0g
cmVzb3VyY2U7CisgICAgICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmll
ck1hcC5zZXQocmVxdWVzdElkZW50aWZpZXIsIHJlc291cmNlKTsKICAgICAgICAgICAgICAgICBy
ZXNvdXJjZS5yZXZlcnRNYXJrQXNGaW5pc2hlZCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CkBAIC0yODQsNyArMjgwLDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0g
Y2xhc3MgRnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAg
IHJlc291cmNlID0gdGhpcy5fYWRkTmV3UmVzb3VyY2VUb0ZyYW1lT3JUYXJnZXQocmVxdWVzdElk
ZW50aWZpZXIsIGZyYW1lSWRlbnRpZmllciwgbG9hZGVySWRlbnRpZmllciwgcmVzcG9uc2UudXJs
LCB0eXBlLCBudWxsLCByZXNwb25zZS5yZXF1ZXN0SGVhZGVycywgbnVsbCwgZWxhcHNlZFRpbWUs
IG51bGwsIG51bGwsIG51bGwpOwogCiAgICAgICAgICAgICAvLyBBc3NvY2lhdGUgdGhlIHJlc291
cmNlIHdpdGggdGhlIHJlcXVlc3RJZGVudGlmaWVyIHNvIGl0IGNhbiBiZSBmb3VuZCBpbiBmdXR1
cmUgbG9hZGluZyBldmVudHMuCi0gICAgICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVu
dGlmaWVyTWFwW3JlcXVlc3RJZGVudGlmaWVyXSA9IHJlc291cmNlOworICAgICAgICAgICAgdGhp
cy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcC5zZXQocmVxdWVzdElkZW50aWZpZXIsIHJl
c291cmNlKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChyZXNwb25zZS5mcm9tRGlza0NhY2hl
KQpAQCAtMzAxLDcgKzI5Nyw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdlciA9
IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIGlm
ICh0aGlzLl93YWl0aW5nRm9yTWFpbkZyYW1lUmVzb3VyY2VUcmVlUGF5bG9hZCkKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZVJlcXVl
c3RJZGVudGlmaWVyTWFwW3JlcXVlc3RJZGVudGlmaWVyXTsKKyAgICAgICAgbGV0IHJlc291cmNl
ID0gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcC5nZXQocmVxdWVzdElkZW50aWZp
ZXIpOwogICAgICAgICB2YXIgZWxhcHNlZFRpbWUgPSBXZWJJbnNwZWN0b3IudGltZWxpbmVNYW5h
Z2VyLmNvbXB1dGVFbGFwc2VkVGltZSh0aW1lc3RhbXApOwogCiAgICAgICAgIC8vIFdlIG1pZ2h0
IG5vdCBoYXZlIGEgcmVzb3VyY2UgaWYgdGhlIGluc3BlY3RvciB3YXMgb3BlbmVkIGR1cmluZyB0
aGUgcGFnZSBsb2FkIChhZnRlciByZXNvdXJjZVJlcXVlc3RXaWxsQmVTZW50IGlzIGNhbGxlZCku
CkBAIC0zMjYsNyArMzIyLDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0g
Y2xhc3MgRnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKIAogICAgICAgICAv
LyBCeSBub3cgd2Ugc2hvdWxkIGFsd2F5cyBoYXZlIHRoZSBSZXNvdXJjZS4gRWl0aGVyIGl0IHdh
cyBmZXRjaGVkIHdoZW4gdGhlIGluc3BlY3RvciBmaXJzdCBvcGVuZWQgd2l0aAogICAgICAgICAv
LyBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VUcmVlLCBvciBpdCB3YXMgYSBjdXJyZW50bHkgbG9hZGlu
ZyByZXNvdXJjZSB0aGF0IHdlIGxlYXJuZWQgYWJvdXQgaW4gcmVzb3VyY2VSZXF1ZXN0RGlkUmVj
ZWl2ZVJlc3BvbnNlLgotICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZVJlcXVl
c3RJZGVudGlmaWVyTWFwW3JlcXVlc3RJZGVudGlmaWVyXTsKKyAgICAgICAgbGV0IHJlc291cmNl
ID0gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllck1hcC5nZXQocmVxdWVzdElkZW50aWZp
ZXIpOwogICAgICAgICBjb25zb2xlLmFzc2VydChyZXNvdXJjZSk7CiAgICAgICAgIGlmICghcmVz
b3VyY2UpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0zMzcsNyArMzMzLDcgQEAgV2ViSW5zcGVj
dG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gY2xhc3MgRnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0
ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgaWYgKHNvdXJjZU1hcFVSTCkKICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5zb3VyY2VNYXBNYW5hZ2VyLmRvd25sb2FkU291cmNlTWFwKHNvdXJjZU1hcFVS
TCwgcmVzb3VyY2UudXJsLCByZXNvdXJjZSk7CiAKLSAgICAgICAgZGVsZXRlIHRoaXMuX3Jlc291
cmNlUmVxdWVzdElkZW50aWZpZXJNYXBbcmVxdWVzdElkZW50aWZpZXJdOworICAgICAgICB0aGlz
Ll9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwLmRlbGV0ZShyZXF1ZXN0SWRlbnRpZmllcik7
CiAgICAgfQogCiAgICAgcmVzb3VyY2VSZXF1ZXN0RGlkRmFpbExvYWRpbmcocmVxdWVzdElkZW50
aWZpZXIsIGNhbmNlbGVkLCB0aW1lc3RhbXApCkBAIC0zNTAsNyArMzQ2LDcgQEAgV2ViSW5zcGVj
dG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gY2xhc3MgRnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0
ZW5kcyBXZWJJbnNwZWMKIAogICAgICAgICAvLyBCeSBub3cgd2Ugc2hvdWxkIGFsd2F5cyBoYXZl
IHRoZSBSZXNvdXJjZS4gRWl0aGVyIGl0IHdhcyBmZXRjaGVkIHdoZW4gdGhlIGluc3BlY3RvciBm
aXJzdCBvcGVuZWQgd2l0aAogICAgICAgICAvLyBQYWdlQWdlbnQuZ2V0UmVzb3VyY2VUcmVlLCBv
ciBpdCB3YXMgYSBjdXJyZW50bHkgbG9hZGluZyByZXNvdXJjZSB0aGF0IHdlIGxlYXJuZWQgYWJv
dXQgaW4gcmVzb3VyY2VSZXF1ZXN0RGlkUmVjZWl2ZVJlc3BvbnNlLgotICAgICAgICB2YXIgcmVz
b3VyY2UgPSB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwW3JlcXVlc3RJZGVudGlm
aWVyXTsKKyAgICAgICAgbGV0IHJlc291cmNlID0gdGhpcy5fcmVzb3VyY2VSZXF1ZXN0SWRlbnRp
Zmllck1hcC5nZXQocmVxdWVzdElkZW50aWZpZXIpOwogICAgICAgICBjb25zb2xlLmFzc2VydChy
ZXNvdXJjZSk7CiAgICAgICAgIGlmICghcmVzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm47CkBA
IC0zNjEsNyArMzU3LDcgQEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gY2xh
c3MgRnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgaWYgKHJl
c291cmNlID09PSByZXNvdXJjZS5wYXJlbnRGcmFtZS5wcm92aXNpb25hbE1haW5SZXNvdXJjZSkK
ICAgICAgICAgICAgIHJlc291cmNlLnBhcmVudEZyYW1lLmNsZWFyUHJvdmlzaW9uYWxMb2FkKCk7
CiAKLSAgICAgICAgZGVsZXRlIHRoaXMuX3Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJNYXBbcmVx
dWVzdElkZW50aWZpZXJdOworICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVy
TWFwLmRlbGV0ZShyZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgZXhlY3V0aW9uQ29u
dGV4dENyZWF0ZWQoY29udGV4dFBheWxvYWQpCkBAIC00MjgsNyArNDI0LDcgQEAgV2ViSW5zcGVj
dG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gY2xhc3MgRnJhbWVSZXNvdXJjZU1hbmFnZXIgZXh0
ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0YXJnZXRJZCk7CiAg
ICAgICAgICAgICByZXNvdXJjZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmVzb3VyY2UodXJsLCBudWxs
LCB0eXBlLCBsb2FkZXJJZGVudGlmaWVyLCB0YXJnZXRJZCwgcmVxdWVzdElkZW50aWZpZXIsIHJl
cXVlc3RNZXRob2QsIHJlcXVlc3RIZWFkZXJzLCByZXF1ZXN0RGF0YSwgZWxhcHNlZFRpbWUsIGlu
aXRpYXRvclNvdXJjZUNvZGVMb2NhdGlvbiwgb3JpZ2luYWxSZXF1ZXN0V2lsbEJlU2VudFRpbWVz
dGFtcCk7CiAgICAgICAgICAgICBmcmFtZSA9IG5ldyBXZWJJbnNwZWN0b3IuRnJhbWUoZnJhbWVJ
ZGVudGlmaWVyLCBmcmFtZU5hbWUsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIGxvYWRlcklkZW50aWZp
ZXIsIHJlc291cmNlKTsKLSAgICAgICAgICAgIHRoaXMuX2ZyYW1lSWRlbnRpZmllck1hcFtmcmFt
ZS5pZF0gPSBmcmFtZTsKKyAgICAgICAgICAgIHRoaXMuX2ZyYW1lSWRlbnRpZmllck1hcC5zZXQo
ZnJhbWUuaWQsIGZyYW1lKTsKIAogICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSBhIG1h
aW4gZnJhbWUsIGFzc3VtZSB0aGlzIGlzIGl0LiBUaGlzIGNhbiBjaGFuZ2UgbGF0ZXIgaW4KICAg
ICAgICAgICAgIC8vIGZyYW1lRGlkTmF2aWdhdGUgd2hlbiB0aGUgcGFyZW50IGZyYW1lIGlzIGtu
b3duLgpAQCAtNTMyLDggKzUyOCw4IEBAIFdlYkluc3BlY3Rvci5GcmFtZVJlc291cmNlTWFuYWdl
ciA9IGNsYXNzIEZyYW1lUmVzb3VyY2VNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KG1haW5GcmFtZVBheWxvYWQpOwogICAgICAgICBjb25zb2xlLmFzc2Vy
dChtYWluRnJhbWVQYXlsb2FkLmZyYW1lKTsKIAotICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVl
c3RJZGVudGlmaWVyTWFwID0ge307Ci0gICAgICAgIHRoaXMuX2ZyYW1lSWRlbnRpZmllck1hcCA9
IHt9OworICAgICAgICB0aGlzLl9yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyTWFwID0gbmV3IE1h
cDsKKyAgICAgICAgdGhpcy5fZnJhbWVJZGVudGlmaWVyTWFwID0gbmV3IE1hcDsKIAogICAgICAg
ICB2YXIgb2xkTWFpbkZyYW1lID0gdGhpcy5fbWFpbkZyYW1lOwogCkBAIC01NTAsNyArNTQ2LDcg
QEAgV2ViSW5zcGVjdG9yLkZyYW1lUmVzb3VyY2VNYW5hZ2VyID0gY2xhc3MgRnJhbWVSZXNvdXJj
ZU1hbmFnZXIgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgdmFyIG1haW5SZXNvdXJjZSA9IG5l
dyBXZWJJbnNwZWN0b3IuUmVzb3VyY2UocGF5bG9hZC51cmwgfHwgImFib3V0OmJsYW5rIiwgcGF5
bG9hZC5taW1lVHlwZSwgbnVsbCwgcGF5bG9hZC5sb2FkZXJJZCk7CiAgICAgICAgIHZhciBmcmFt
ZSA9IG5ldyBXZWJJbnNwZWN0b3IuRnJhbWUocGF5bG9hZC5pZCwgcGF5bG9hZC5uYW1lLCBwYXls
b2FkLnNlY3VyaXR5T3JpZ2luLCBwYXlsb2FkLmxvYWRlcklkLCBtYWluUmVzb3VyY2UpOwogCi0g
ICAgICAgIHRoaXMuX2ZyYW1lSWRlbnRpZmllck1hcFtmcmFtZS5pZF0gPSBmcmFtZTsKKyAgICAg
ICAgdGhpcy5fZnJhbWVJZGVudGlmaWVyTWFwLnNldChmcmFtZS5pZCwgZnJhbWUpOwogCiAgICAg
ICAgIG1haW5SZXNvdXJjZS5tYXJrQXNGaW5pc2hlZCgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>