<?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>49312</bug_id>
          
          <creation_ts>2010-11-10 02:22:52 -0800</creation_ts>
          <short_desc>Web Inspector: Move CSSStyleDeclaration from DOMAgent.js into CSSStyleModel.js</short_desc>
          <delta_ts>2010-11-10 08:14:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>48834</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Alexander Pavlov (apavlov)">apavlov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>307266</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-10 02:22:52 -0800</bug_when>
    <thetext>This is needed to make the bug 48834 patch less intrusive as it involves multiple changes to CSSStyleDeclaration and related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307273</commentid>
    <comment_count>1</comment_count>
      <attachid>73477</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-10 02:56:41 -0800</bug_when>
    <thetext>Created attachment 73477
[PATCH] Suggested solution</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307359</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-11-10 08:14:30 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
        M       WebCore/ChangeLog
        M       WebCore/inspector/front-end/CSSStyleModel.js
        M       WebCore/inspector/front-end/DOMAgent.js
Committed r71740</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73477</attachid>
            <date>2010-11-10 02:56:41 -0800</date>
            <delta_ts>2010-11-10 07:40:56 -0800</delta_ts>
            <desc>[PATCH] Suggested solution</desc>
            <filename>movecss.patch</filename>
            <type>text/plain</type>
            <size>21707</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">Y29tbWl0IDgyNGRhZDc3YTFhYTY2YTM1YzY0OTljM2U1Mjk5YWNhMzNkN2YxMDgKQXV0aG9yOiBB
bGV4YW5kZXIgUGF2bG92IDxhcGF2bG92QGNocm9taXVtLm9yZz4KRGF0ZTogICBXZWQgTm92IDEw
IDEzOjQ0OjQ0IDIwMTAgKzAzMDAKCiAgICBNb3ZlIENTUyBjbGFzc2VzIGludG8gQ1NTU3R5bGVN
b2RlbC5qcwoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggY2YyN2E5Yy4uZWRlYmU4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMC0xMS0xMCAgQWxl
eGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgQ1NTIGNsYXNzZXMgaW50byBDU1NT
dHlsZU1vZGVsLmpzCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTW92ZSBDU1NTdHlsZURlY2xh
cmF0aW9uIGZyb20gRE9NQWdlbnQuanMgaW50byBDU1NTdHlsZU1vZGVsLmpzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTMxMgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgYXMgaXQncyBqdXN0IGNvZGUgbW90aW9uLgorCisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGVjbGFyYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFy
YXRpb24ucGFyc2VQYXlsb2FkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xh
cmF0aW9uLnByb3RvdHlwZS5nZXQgYWxsUHJvcGVydGllcyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuZ2V0TGl2ZVByb3BlcnR5KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5nZXRQcm9wZXJ0
eVZhbHVlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3Rv
dHlwZS5nZXRQcm9wZXJ0eVByaW9yaXR5KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHls
ZURlY2xhcmF0aW9uLnByb3RvdHlwZS5nZXRQcm9wZXJ0eVNob3J0aGFuZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuaXNQcm9wZXJ0eUltcGxp
Y2l0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlw
ZS5zdHlsZVRleHRXaXRoU2hvcnRoYW5kcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUuZ2V0TG9uZ2hhbmRQcm9wZXJ0aWVzKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5nZXRTaG9ydGhhbmRW
YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5
cGUuZ2V0U2hvcnRoYW5kUHJpb3JpdHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
RGVjbGFyYXRpb24ucHJvdG90eXBlLmFwcGVuZFByb3BlcnR5KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5wcm9wZXJ0eUF0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NSdWxlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NSdWxlLnBh
cnNlUGF5bG9hZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90b3R5cGUuZ2V0
IGlzVXNlckFnZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NSdWxlLnByb3RvdHlwZS5n
ZXQgaXNVc2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NSdWxlLnByb3RvdHlwZS5nZXQg
aXNWaWFJbnNwZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1J1bGUucHJvdG90eXBl
LmdldCBpc1JlZ3VsYXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wYXJzZVBheWxvYWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgcHJvcGVydHlUZXh0KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuZ2V0IGlzTGl2ZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBhY3RpdmUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgc3R5bGVCYXNl
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBpbmFj
dGl2ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBk
aXNhYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNl
dFRleHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5zZXRW
YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldERp
c2FibGVkLmNhbGxiYWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90
b3R5cGUuc2V0RGlzYWJsZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdl
bnQuanM6CisKIDIwMTAtMTEtMTAgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBBZGRpbmcgYSBtYW51YWwgdGVzdCB3aGljaCBJIGZvcmdvdCB0byBh
ZGQgaW4gcjcxNjE4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NT
U1N0eWxlTW9kZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2Rl
bC5qcwppbmRleCA1NDJhM2IzLi4wYTdkYWJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ1NTU3R5bGVNb2RlbC5qcwpAQCAtMTQ3LDMgKzE0NywyOTMgQEAgV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnNl
dFN0eWxlVGV4dChzdHlsZUlkLCBjc3NUZXh0KTsKICAgICB9CiB9CisKK1dlYkluc3BlY3Rvci5D
U1NTdHlsZURlY2xhcmF0aW9uID0gZnVuY3Rpb24ocGF5bG9hZCkKK3sKKyAgICB0aGlzLmlkID0g
cGF5bG9hZC5zdHlsZUlkOworICAgIHRoaXMucHJvcGVydGllcyA9IHBheWxvYWQucHJvcGVydGll
czsKKyAgICB0aGlzLl9zaG9ydGhhbmRWYWx1ZXMgPSBwYXlsb2FkLnNob3J0aGFuZFZhbHVlczsK
KyAgICB0aGlzLl9saXZlUHJvcGVydHlNYXAgPSB7fTsgLy8gTElWRSBwcm9wZXJ0aWVzIChzb3Vy
Y2UtYmFzZWQgb3Igc3R5bGUtYmFzZWQpIDogeyBuYW1lIC0+IENTU1Byb3BlcnR5IH0KKyAgICB0
aGlzLl9hbGxQcm9wZXJ0aWVzID0gW107IC8vIEFMTCBwcm9wZXJ0aWVzOiBbIENTU1Byb3BlcnR5
IF0KKyAgICB0aGlzLl9sb25naGFuZFByb3BlcnRpZXMgPSB7fTsgLy8gc2hvcnRoYW5kTmFtZSAt
PiBbIENTU1Byb3BlcnR5IF0KKyAgICB0aGlzLl9fZGlzYWJsZWRQcm9wZXJ0aWVzID0ge307IC8v
IERJU0FCTEVEIHByb3BlcnRpZXM6IHsgaW5kZXggLT4gQ1NTUHJvcGVydHkgfQorICAgIHZhciBw
YXlsb2FkUHJvcGVydHlDb3VudCA9IHBheWxvYWQuY3NzUHJvcGVydGllcy5sZW5ndGg7CisKKyAg
ICB2YXIgcHJvcGVydHlJbmRleCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXlsb2Fk
UHJvcGVydHlDb3VudDsgKytpKSB7CisgICAgICAgIHZhciBwcm9wZXJ0eSA9IG5ldyBXZWJJbnNw
ZWN0b3IuQ1NTUHJvcGVydHkucGFyc2VQYXlsb2FkKHRoaXMsIGksIHBheWxvYWQuY3NzUHJvcGVy
dGllc1tpXSk7CisgICAgICAgIHRoaXMuX2FsbFByb3BlcnRpZXMucHVzaChwcm9wZXJ0eSk7Cisg
ICAgICAgIGlmIChwcm9wZXJ0eS5kaXNhYmxlZCkKKyAgICAgICAgICAgIHRoaXMuX19kaXNhYmxl
ZFByb3BlcnRpZXNbaV0gPSBwcm9wZXJ0eTsKKyAgICAgICAgaWYgKCFwcm9wZXJ0eS5hY3RpdmUg
JiYgIXByb3BlcnR5LnN0eWxlQmFzZWQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
dmFyIG5hbWUgPSBwcm9wZXJ0eS5uYW1lOworICAgICAgICB0aGlzW3Byb3BlcnR5SW5kZXhdID0g
bmFtZTsKKyAgICAgICAgdGhpcy5fbGl2ZVByb3BlcnR5TWFwW25hbWVdID0gcHJvcGVydHk7CisK
KyAgICAgICAgLy8gSW5kZXggbG9uZ2hhbmQgcHJvcGVydGllcy4KKyAgICAgICAgaWYgKHByb3Bl
cnR5LnNob3J0aGFuZCkgeyAvLyBvbmx5IGZvciBwYXJzZWQKKyAgICAgICAgICAgIHZhciBsb25n
aGFuZHMgPSB0aGlzLl9sb25naGFuZFByb3BlcnRpZXNbcHJvcGVydHkuc2hvcnRoYW5kXTsKKyAg
ICAgICAgICAgIGlmICghbG9uZ2hhbmRzKSB7CisgICAgICAgICAgICAgICAgbG9uZ2hhbmRzID0g
W107CisgICAgICAgICAgICAgICAgdGhpcy5fbG9uZ2hhbmRQcm9wZXJ0aWVzW3Byb3BlcnR5LnNo
b3J0aGFuZF0gPSBsb25naGFuZHM7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBsb25naGFu
ZHMucHVzaChwcm9wZXJ0eSk7CisgICAgICAgIH0KKyAgICAgICAgKytwcm9wZXJ0eUluZGV4Owor
ICAgIH0KKyAgICB0aGlzLmxlbmd0aCA9IHByb3BlcnR5SW5kZXg7Cit9CisKK1dlYkluc3BlY3Rv
ci5DU1NTdHlsZURlY2xhcmF0aW9uLnBhcnNlUGF5bG9hZCA9IGZ1bmN0aW9uKHBheWxvYWQpCit7
CisgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbihwYXlsb2Fk
KTsKK30KKworV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlID0gewor
ICAgIGdldCBhbGxQcm9wZXJ0aWVzKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9hbGxQ
cm9wZXJ0aWVzOworICAgIH0sCisKKyAgICBnZXRMaXZlUHJvcGVydHk6IGZ1bmN0aW9uKG5hbWUp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fbGl2ZVByb3BlcnR5TWFwW25hbWVdOworICAg
IH0sCisKKyAgICBnZXRQcm9wZXJ0eVZhbHVlOiBmdW5jdGlvbihuYW1lKQorICAgIHsKKyAgICAg
ICAgdmFyIHByb3BlcnR5ID0gdGhpcy5fbGl2ZVByb3BlcnR5TWFwW25hbWVdOworICAgICAgICBy
ZXR1cm4gcHJvcGVydHkgPyBwcm9wZXJ0eS52YWx1ZSA6ICIiOworICAgIH0sCisKKyAgICBnZXRQ
cm9wZXJ0eVByaW9yaXR5OiBmdW5jdGlvbihuYW1lKQorICAgIHsKKyAgICAgICAgdmFyIHByb3Bl
cnR5ID0gdGhpcy5fbGl2ZVByb3BlcnR5TWFwW25hbWVdOworICAgICAgICByZXR1cm4gcHJvcGVy
dHkgPyBwcm9wZXJ0eS5wcmlvcml0eSA6ICIiOworICAgIH0sCisKKyAgICBnZXRQcm9wZXJ0eVNo
b3J0aGFuZDogZnVuY3Rpb24obmFtZSkKKyAgICB7CisgICAgICAgIHZhciBwcm9wZXJ0eSA9IHRo
aXMuX2xpdmVQcm9wZXJ0eU1hcFtuYW1lXTsKKyAgICAgICAgcmV0dXJuIHByb3BlcnR5ID8gcHJv
cGVydHkuc2hvcnRoYW5kIDogIiI7CisgICAgfSwKKworICAgIGlzUHJvcGVydHlJbXBsaWNpdDog
ZnVuY3Rpb24obmFtZSkKKyAgICB7CisgICAgICAgIHZhciBwcm9wZXJ0eSA9IHRoaXMuX2xpdmVQ
cm9wZXJ0eU1hcFtuYW1lXTsKKyAgICAgICAgcmV0dXJuIHByb3BlcnR5ID8gcHJvcGVydHkuaW1w
bGljaXQgOiAiIjsKKyAgICB9LAorCisgICAgc3R5bGVUZXh0V2l0aFNob3J0aGFuZHM6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBjc3NUZXh0ID0gIiI7CisgICAgICAgIHZhciBmb3Vu
ZFByb3BlcnRpZXMgPSB7fTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0
aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgaW5kaXZpZHVhbFByb3BlcnR5ID0gdGhpc1tpXTsK
KyAgICAgICAgICAgIHZhciBzaG9ydGhhbmRQcm9wZXJ0eSA9IHRoaXMuZ2V0UHJvcGVydHlTaG9y
dGhhbmQoaW5kaXZpZHVhbFByb3BlcnR5KTsKKyAgICAgICAgICAgIHZhciBwcm9wZXJ0eU5hbWUg
PSAoc2hvcnRoYW5kUHJvcGVydHkgfHwgaW5kaXZpZHVhbFByb3BlcnR5KTsKKworICAgICAgICAg
ICAgaWYgKHByb3BlcnR5TmFtZSBpbiBmb3VuZFByb3BlcnRpZXMpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgIGlmIChzaG9ydGhhbmRQcm9wZXJ0eSkgeworICAgICAg
ICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0U2hvcnRoYW5kVmFsdWUoc2hvcnRoYW5kUHJv
cGVydHkpOworICAgICAgICAgICAgICAgIHZhciBwcmlvcml0eSA9IHRoaXMuZ2V0U2hvcnRoYW5k
UHJpb3JpdHkoc2hvcnRoYW5kUHJvcGVydHkpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmdldFByb3BlcnR5VmFsdWUoaW5kaXZpZHVhbFBy
b3BlcnR5KTsKKyAgICAgICAgICAgICAgICB2YXIgcHJpb3JpdHkgPSB0aGlzLmdldFByb3BlcnR5
UHJpb3JpdHkoaW5kaXZpZHVhbFByb3BlcnR5KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgZm91bmRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0gPSB0cnVlOworCisgICAgICAgICAgICBj
c3NUZXh0ICs9IHByb3BlcnR5TmFtZSArICI6ICIgKyB2YWx1ZTsKKyAgICAgICAgICAgIGlmIChw
cmlvcml0eSkKKyAgICAgICAgICAgICAgICBjc3NUZXh0ICs9ICIgISIgKyBwcmlvcml0eTsKKyAg
ICAgICAgICAgIGNzc1RleHQgKz0gIjsgIjsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBj
c3NUZXh0OworICAgIH0sCisKKyAgICBnZXRMb25naGFuZFByb3BlcnRpZXM6IGZ1bmN0aW9uKG5h
bWUpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fbG9uZ2hhbmRQcm9wZXJ0aWVzW25hbWVd
IHx8IFtdOworICAgIH0sCisKKyAgICBnZXRTaG9ydGhhbmRWYWx1ZTogZnVuY3Rpb24oc2hvcnRo
YW5kUHJvcGVydHkpCisgICAgeworICAgICAgICB2YXIgcHJvcGVydHkgPSB0aGlzLmdldExpdmVQ
cm9wZXJ0eShzaG9ydGhhbmRQcm9wZXJ0eSk7CisgICAgICAgIHJldHVybiBwcm9wZXJ0eSA/IHBy
b3BlcnR5LnZhbHVlIDogdGhpcy5fc2hvcnRoYW5kVmFsdWVzW3Nob3J0aGFuZFByb3BlcnR5XTsK
KyAgICB9LAorCisgICAgZ2V0U2hvcnRoYW5kUHJpb3JpdHk6IGZ1bmN0aW9uKHNob3J0aGFuZFBy
b3BlcnR5KQorICAgIHsKKyAgICAgICAgdmFyIHByaW9yaXR5ID0gdGhpcy5nZXRQcm9wZXJ0eVBy
aW9yaXR5KHNob3J0aGFuZFByb3BlcnR5KTsKKyAgICAgICAgaWYgKHByaW9yaXR5KQorICAgICAg
ICAgICAgcmV0dXJuIHByaW9yaXR5OworCisgICAgICAgIHZhciBsb25naGFuZHMgPSB0aGlzLl9s
b25naGFuZFByb3BlcnRpZXNbc2hvcnRoYW5kUHJvcGVydHldOworICAgICAgICByZXR1cm4gbG9u
Z2hhbmRzID8gdGhpcy5nZXRQcm9wZXJ0eVByaW9yaXR5KGxvbmdoYW5kc1swXSkgOiBudWxsOwor
ICAgIH0sCisKKyAgICBhcHBlbmRQcm9wZXJ0eTogZnVuY3Rpb24ocHJvcGVydHlOYW1lLCBwcm9w
ZXJ0eVZhbHVlLCB1c2VyQ2FsbGJhY2spCisgICAgeworICAgICAgICBmdW5jdGlvbiBzZXRQcm9w
ZXJ0eUNhbGxiYWNrKHVzZXJDYWxsYmFjaywgc3VjY2Vzcywgc3R5bGVQYXlsb2FkKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICAgICAgdXNlckNhbGxi
YWNrKG51bGwpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHVzZXJDYWxsYmFj
ayhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQoc3R5bGVQYXls
b2FkKSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBGSVhNRShhcGF2bG92KTogdGhpcyBzaG91
bGQgYmUgbWlncmF0ZWQgdG8gdGhlIG5ldyBJbnNwZWN0b3JDU1NBZ2VudCBBUEkgb25jZSBpdCBp
cyBlbmFibGVkLgorICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmFwcGx5U3R5bGVUZXh0KHRoaXMu
aWQsIHByb3BlcnR5TmFtZSArICI6ICIgKyBwcm9wZXJ0eVZhbHVlICsgIjsiLCBwcm9wZXJ0eU5h
bWUsIHNldFByb3BlcnR5Q2FsbGJhY2suYmluZCh0aGlzLCB1c2VyQ2FsbGJhY2spKTsKKyAgICB9
LAorCisgICAgcHJvcGVydHlBdDogZnVuY3Rpb24oaW5kZXgpCisgICAgeworICAgICAgICByZXR1
cm4gKGluZGV4IDwgdGhpcy5hbGxQcm9wZXJ0aWVzLmxlbmd0aCkgPyB0aGlzLmFsbFByb3BlcnRp
ZXNbaW5kZXhdIDogbnVsbDsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5DU1NSdWxlID0gZnVu
Y3Rpb24ocGF5bG9hZCkKK3sKKyAgICB0aGlzLmlkID0gcGF5bG9hZC5ydWxlSWQ7CisgICAgdGhp
cy5zZWxlY3RvclRleHQgPSBwYXlsb2FkLnNlbGVjdG9yVGV4dDsKKyAgICB0aGlzLnNvdXJjZUxp
bmUgPSBwYXlsb2FkLnNvdXJjZUxpbmU7CisgICAgdGhpcy5zb3VyY2VVUkwgPSBwYXlsb2FkLnNv
dXJjZVVSTDsKKyAgICB0aGlzLm9yaWdpbiA9IHBheWxvYWQub3JpZ2luOworICAgIHRoaXMuc3R5
bGUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQocGF5bG9h
ZC5zdHlsZSk7CisgICAgdGhpcy5zdHlsZS5wYXJlbnRSdWxlID0gdGhpczsKK30KKworV2ViSW5z
cGVjdG9yLkNTU1J1bGUucGFyc2VQYXlsb2FkID0gZnVuY3Rpb24ocGF5bG9hZCkKK3sKKyAgICBy
ZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5DU1NSdWxlKHBheWxvYWQpOworfQorCitXZWJJbnNwZWN0
b3IuQ1NTUnVsZS5wcm90b3R5cGUgPSB7CisgICAgZ2V0IGlzVXNlckFnZW50KCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLm9yaWdpbiA9PT0gInVzZXItYWdlbnQiOworICAgIH0sCisKKyAg
ICBnZXQgaXNVc2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLm9yaWdpbiA9PT0gInVz
ZXIiOworICAgIH0sCisKKyAgICBnZXQgaXNWaWFJbnNwZWN0b3IoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMub3JpZ2luID09PSAiaW5zcGVjdG9yIjsKKyAgICB9LAorCisgICAgZ2V0IGlz
UmVndWxhcigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5vcmlnaW4gPT09ICIiOworICAg
IH0KK30KKworV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5ID0gZnVuY3Rpb24ob3duZXJTdHlsZSwg
aW5kZXgsIG5hbWUsIHZhbHVlLCBwcmlvcml0eSwgc3RhdHVzLCBwYXJzZWRPaywgaW1wbGljaXQs
IHNob3J0aGFuZCwgdGV4dCkKK3sKKyAgICB0aGlzLm93bmVyU3R5bGUgPSBvd25lclN0eWxlOwor
ICAgIHRoaXMuaW5kZXggPSBpbmRleDsKKyAgICB0aGlzLm5hbWUgPSBuYW1lOworICAgIHRoaXMu
dmFsdWUgPSB2YWx1ZTsKKyAgICB0aGlzLnByaW9yaXR5ID0gcHJpb3JpdHk7CisgICAgdGhpcy5z
dGF0dXMgPSBzdGF0dXM7CisgICAgdGhpcy5wYXJzZWRPayA9IHBhcnNlZE9rOworICAgIHRoaXMu
aW1wbGljaXQgPSBpbXBsaWNpdDsKKyAgICB0aGlzLnNob3J0aGFuZCA9IHNob3J0aGFuZDsKKyAg
ICB0aGlzLnRleHQgPSB0ZXh0OworfQorCitXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucGFyc2VQ
YXlsb2FkID0gZnVuY3Rpb24ob3duZXJTdHlsZSwgaW5kZXgsIHBheWxvYWQpCit7CisgICAgdmFy
IHJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkoCisgICAgICAgIG93bmVyU3R5
bGUsIGluZGV4LCBwYXlsb2FkLm5hbWUsIHBheWxvYWQudmFsdWUsIHBheWxvYWQucHJpb3JpdHks
IHBheWxvYWQuc3RhdHVzLCBwYXlsb2FkLnBhcnNlZE9rLCBwYXlsb2FkLmltcGxpY2l0LCBwYXls
b2FkLnNob3J0aGFuZE5hbWUsIHBheWxvYWQudGV4dCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKKyAgICBnZXQgcHJvcGVy
dHlUZXh0KCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLnRleHQgIT09IHVuZGVmaW5lZCkKKyAg
ICAgICAgICAgIHJldHVybiB0aGlzLnRleHQ7CisKKyAgICAgICAgcmV0dXJuIHRoaXMubmFtZSAr
ICI6ICIgKyB0aGlzLnZhbHVlICsgKHRoaXMucHJpb3JpdHkgPyAiICEiICsgdGhpcy5wcmlvcml0
eSA6ICIiKSArICI7IjsKKyAgICB9LAorCisgICAgZ2V0IGlzTGl2ZSgpCisgICAgeworICAgICAg
ICByZXR1cm4gdGhpcy5hY3RpdmUgfHwgdGhpcy5zdHlsZUJhc2VkOworICAgIH0sCisKKyAgICBn
ZXQgYWN0aXZlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gImFjdGl2
ZSI7CisgICAgfSwKKworICAgIGdldCBzdHlsZUJhc2VkKCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLnN0YXR1cyA9PT0gInN0eWxlIjsKKyAgICB9LAorCisgICAgZ2V0IGluYWN0aXZlKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gImluYWN0aXZlIjsKKyAgICB9
LAorCisgICAgZ2V0IGRpc2FibGVkKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnN0YXR1
cyA9PT0gImRpc2FibGVkIjsKKyAgICB9LAorCisgICAgLy8gUmVwbGFjZXMgInByb3BlcnR5TmFt
ZTogcHJvcGVydHlWYWx1ZSBbIWltcG9ydGFudF07IiBpbiB0aGUgc3R5bGVzaGVldCBieSBhbiBh
cmJpdHJhcnkgcHJvcGVydHlUZXh0LgorICAgIHNldFRleHQ6IGZ1bmN0aW9uKHByb3BlcnR5VGV4
dCwgdXNlckNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2sodXNlckNh
bGxiYWNrLCBzdWNjZXNzLCBzdHlsZVBheWxvYWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlm
ICghdXNlckNhbGxiYWNrKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGlm
ICghc3VjY2VzcykKKyAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CisgICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQoc3R5bGVQYXlsb2FkKTsKKyAgICAgICAgICAg
ICAgICB1c2VyQ2FsbGJhY2soc3R5bGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgaWYgKCF0aGlzLm93bmVyU3R5bGUpCisgICAgICAgICAgICB0aHJvdyAiTm8gb3duZXJT
dHlsZSBmb3IgcHJvcGVydHkiOworICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLmFwcGx5U3R5bGVU
ZXh0KHRoaXMub3duZXJTdHlsZS5pZCwgcHJvcGVydHlUZXh0LCB0aGlzLm5hbWUsIGNhbGxiYWNr
LmJpbmQodGhpcywgdXNlckNhbGxiYWNrKSk7CisgICAgfSwKKworICAgIHNldFZhbHVlOiBmdW5j
dGlvbihuZXdWYWx1ZSwgdXNlckNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgdmFyIHRleHQgPSB0
aGlzLm5hbWUgKyAiOiAiICsgbmV3VmFsdWUgKyAodGhpcy5wcmlvcml0eSA/ICIgISIgKyB0aGlz
LnByaW9yaXR5IDogIiIpICsgIjsiCisgICAgICAgIHRoaXMuc2V0VGV4dCh0ZXh0LCB1c2VyQ2Fs
bGJhY2spOworICAgIH0sCisKKyAgICBzZXREaXNhYmxlZDogZnVuY3Rpb24oZGlzYWJsZWQsIHVz
ZXJDYWxsYmFjaykKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5vd25lclN0eWxlICYmIHVzZXJD
YWxsYmFjaykKKyAgICAgICAgICAgIHVzZXJDYWxsYmFjayhudWxsKTsKKyAgICAgICAgaWYgKGRp
c2FibGVkID09PSB0aGlzLmRpc2FibGVkICYmIHVzZXJDYWxsYmFjaykKKyAgICAgICAgICAgIHVz
ZXJDYWxsYmFjayh0aGlzLm93bmVyU3R5bGUpOworCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNr
KHVzZXJDYWxsYmFjaywgc3R5bGVQYXlsb2FkKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
IXVzZXJDYWxsYmFjaykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAo
IXN0eWxlUGF5bG9hZCkKKyAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2sobnVsbCk7CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQoc3R5bGVQYXlsb2FkKTsKKyAgICAgICAg
ICAgICAgICB1c2VyQ2FsbGJhY2soc3R5bGUpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQudG9nZ2xlU3R5bGVFbmFibGVkKHRoaXMub3duZXJTdHls
ZS5pZCwgdGhpcy5uYW1lLCBkaXNhYmxlZCwgY2FsbGJhY2suYmluZCh0aGlzLCB1c2VyQ2FsbGJh
Y2spKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RE9NQWdlbnQuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKaW5k
ZXggNDcwZTc3NS4uMzdiZjU0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2Vu
dC5qcwpAQCAtNTI0LDI5NiArNTI0LDYgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJzLmdl
dEV2ZW50TGlzdGVuZXJzRm9yTm9kZUFzeW5jID0gZnVuY3Rpb24obm9kZSwgY2FsbGIKICAgICBJ
bnNwZWN0b3JCYWNrZW5kLmdldEV2ZW50TGlzdGVuZXJzRm9yTm9kZShub2RlLmlkLCBjYWxsYmFj
ayk7CiB9CiAKLVdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uID0gZnVuY3Rpb24ocGF5
bG9hZCkKLXsKLSAgICB0aGlzLmlkID0gcGF5bG9hZC5zdHlsZUlkOwotICAgIHRoaXMucHJvcGVy
dGllcyA9IHBheWxvYWQucHJvcGVydGllczsKLSAgICB0aGlzLl9zaG9ydGhhbmRWYWx1ZXMgPSBw
YXlsb2FkLnNob3J0aGFuZFZhbHVlczsKLSAgICB0aGlzLl9saXZlUHJvcGVydHlNYXAgPSB7fTsg
Ly8gTElWRSBwcm9wZXJ0aWVzIChzb3VyY2UtYmFzZWQgb3Igc3R5bGUtYmFzZWQpIDogeyBuYW1l
IC0+IENTU1Byb3BlcnR5IH0KLSAgICB0aGlzLl9hbGxQcm9wZXJ0aWVzID0gW107IC8vIEFMTCBw
cm9wZXJ0aWVzOiBbIENTU1Byb3BlcnR5IF0KLSAgICB0aGlzLl9sb25naGFuZFByb3BlcnRpZXMg
PSB7fTsgLy8gc2hvcnRoYW5kTmFtZSAtPiBbIENTU1Byb3BlcnR5IF0KLSAgICB0aGlzLl9fZGlz
YWJsZWRQcm9wZXJ0aWVzID0ge307IC8vIERJU0FCTEVEIHByb3BlcnRpZXM6IHsgaW5kZXggLT4g
Q1NTUHJvcGVydHkgfQotICAgIHZhciBwYXlsb2FkUHJvcGVydHlDb3VudCA9IHBheWxvYWQuY3Nz
UHJvcGVydGllcy5sZW5ndGg7Ci0KLSAgICB2YXIgcHJvcGVydHlJbmRleCA9IDA7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBwYXlsb2FkUHJvcGVydHlDb3VudDsgKytpKSB7Ci0gICAgICAgIHZh
ciBwcm9wZXJ0eSA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucGFyc2VQYXlsb2FkKHRo
aXMsIGksIHBheWxvYWQuY3NzUHJvcGVydGllc1tpXSk7Ci0gICAgICAgIHRoaXMuX2FsbFByb3Bl
cnRpZXMucHVzaChwcm9wZXJ0eSk7Ci0gICAgICAgIGlmIChwcm9wZXJ0eS5kaXNhYmxlZCkKLSAg
ICAgICAgICAgIHRoaXMuX19kaXNhYmxlZFByb3BlcnRpZXNbaV0gPSBwcm9wZXJ0eTsKLSAgICAg
ICAgaWYgKCFwcm9wZXJ0eS5hY3RpdmUgJiYgIXByb3BlcnR5LnN0eWxlQmFzZWQpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgdmFyIG5hbWUgPSBwcm9wZXJ0eS5uYW1lOwotICAgICAg
ICB0aGlzW3Byb3BlcnR5SW5kZXhdID0gbmFtZTsKLSAgICAgICAgdGhpcy5fbGl2ZVByb3BlcnR5
TWFwW25hbWVdID0gcHJvcGVydHk7Ci0KLSAgICAgICAgLy8gSW5kZXggbG9uZ2hhbmQgcHJvcGVy
dGllcy4KLSAgICAgICAgaWYgKHByb3BlcnR5LnNob3J0aGFuZCkgeyAvLyBvbmx5IGZvciBwYXJz
ZWQKLSAgICAgICAgICAgIHZhciBsb25naGFuZHMgPSB0aGlzLl9sb25naGFuZFByb3BlcnRpZXNb
cHJvcGVydHkuc2hvcnRoYW5kXTsKLSAgICAgICAgICAgIGlmICghbG9uZ2hhbmRzKSB7Ci0gICAg
ICAgICAgICAgICAgbG9uZ2hhbmRzID0gW107Ci0gICAgICAgICAgICAgICAgdGhpcy5fbG9uZ2hh
bmRQcm9wZXJ0aWVzW3Byb3BlcnR5LnNob3J0aGFuZF0gPSBsb25naGFuZHM7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBsb25naGFuZHMucHVzaChwcm9wZXJ0eSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgKytwcm9wZXJ0eUluZGV4OwotICAgIH0KLSAgICB0aGlzLmxlbmd0aCA9IHByb3BlcnR5
SW5kZXg7Ci19Ci0KLVdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnBhcnNlUGF5bG9h
ZCA9IGZ1bmN0aW9uKHBheWxvYWQpCi17Ci0gICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuQ1NT
U3R5bGVEZWNsYXJhdGlvbihwYXlsb2FkKTsKLX0KLQotV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVj
bGFyYXRpb24ucHJvdG90eXBlID0gewotICAgIGdldCBhbGxQcm9wZXJ0aWVzKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9hbGxQcm9wZXJ0aWVzOwotICAgIH0sCi0KLSAgICBnZXRMaXZl
UHJvcGVydHk6IGZ1bmN0aW9uKG5hbWUpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbGl2
ZVByb3BlcnR5TWFwW25hbWVdOwotICAgIH0sCi0KLSAgICBnZXRQcm9wZXJ0eVZhbHVlOiBmdW5j
dGlvbihuYW1lKQotICAgIHsKLSAgICAgICAgdmFyIHByb3BlcnR5ID0gdGhpcy5fbGl2ZVByb3Bl
cnR5TWFwW25hbWVdOwotICAgICAgICByZXR1cm4gcHJvcGVydHkgPyBwcm9wZXJ0eS52YWx1ZSA6
ICIiOwotICAgIH0sCi0KLSAgICBnZXRQcm9wZXJ0eVByaW9yaXR5OiBmdW5jdGlvbihuYW1lKQot
ICAgIHsKLSAgICAgICAgdmFyIHByb3BlcnR5ID0gdGhpcy5fbGl2ZVByb3BlcnR5TWFwW25hbWVd
OwotICAgICAgICByZXR1cm4gcHJvcGVydHkgPyBwcm9wZXJ0eS5wcmlvcml0eSA6ICIiOwotICAg
IH0sCi0KLSAgICBnZXRQcm9wZXJ0eVNob3J0aGFuZDogZnVuY3Rpb24obmFtZSkKLSAgICB7Ci0g
ICAgICAgIHZhciBwcm9wZXJ0eSA9IHRoaXMuX2xpdmVQcm9wZXJ0eU1hcFtuYW1lXTsKLSAgICAg
ICAgcmV0dXJuIHByb3BlcnR5ID8gcHJvcGVydHkuc2hvcnRoYW5kIDogIiI7Ci0gICAgfSwKLQot
ICAgIGlzUHJvcGVydHlJbXBsaWNpdDogZnVuY3Rpb24obmFtZSkKLSAgICB7Ci0gICAgICAgIHZh
ciBwcm9wZXJ0eSA9IHRoaXMuX2xpdmVQcm9wZXJ0eU1hcFtuYW1lXTsKLSAgICAgICAgcmV0dXJu
IHByb3BlcnR5ID8gcHJvcGVydHkuaW1wbGljaXQgOiAiIjsKLSAgICB9LAotCi0gICAgc3R5bGVU
ZXh0V2l0aFNob3J0aGFuZHM6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHZhciBjc3NUZXh0
ID0gIiI7Ci0gICAgICAgIHZhciBmb3VuZFByb3BlcnRpZXMgPSB7fTsKLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB0aGlzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgaW5kaXZp
ZHVhbFByb3BlcnR5ID0gdGhpc1tpXTsKLSAgICAgICAgICAgIHZhciBzaG9ydGhhbmRQcm9wZXJ0
eSA9IHRoaXMuZ2V0UHJvcGVydHlTaG9ydGhhbmQoaW5kaXZpZHVhbFByb3BlcnR5KTsKLSAgICAg
ICAgICAgIHZhciBwcm9wZXJ0eU5hbWUgPSAoc2hvcnRoYW5kUHJvcGVydHkgfHwgaW5kaXZpZHVh
bFByb3BlcnR5KTsKLQotICAgICAgICAgICAgaWYgKHByb3BlcnR5TmFtZSBpbiBmb3VuZFByb3Bl
cnRpZXMpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgIGlmIChzaG9y
dGhhbmRQcm9wZXJ0eSkgewotICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0U2hv
cnRoYW5kVmFsdWUoc2hvcnRoYW5kUHJvcGVydHkpOwotICAgICAgICAgICAgICAgIHZhciBwcmlv
cml0eSA9IHRoaXMuZ2V0U2hvcnRoYW5kUHJpb3JpdHkoc2hvcnRoYW5kUHJvcGVydHkpOwotICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSB0aGlzLmdldFBy
b3BlcnR5VmFsdWUoaW5kaXZpZHVhbFByb3BlcnR5KTsKLSAgICAgICAgICAgICAgICB2YXIgcHJp
b3JpdHkgPSB0aGlzLmdldFByb3BlcnR5UHJpb3JpdHkoaW5kaXZpZHVhbFByb3BlcnR5KTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgZm91bmRQcm9wZXJ0aWVzW3Byb3BlcnR5TmFtZV0g
PSB0cnVlOwotCi0gICAgICAgICAgICBjc3NUZXh0ICs9IHByb3BlcnR5TmFtZSArICI6ICIgKyB2
YWx1ZTsKLSAgICAgICAgICAgIGlmIChwcmlvcml0eSkKLSAgICAgICAgICAgICAgICBjc3NUZXh0
ICs9ICIgISIgKyBwcmlvcml0eTsKLSAgICAgICAgICAgIGNzc1RleHQgKz0gIjsgIjsKLSAgICAg
ICAgfQotCi0gICAgICAgIHJldHVybiBjc3NUZXh0OwotICAgIH0sCi0KLSAgICBnZXRMb25naGFu
ZFByb3BlcnRpZXM6IGZ1bmN0aW9uKG5hbWUpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5f
bG9uZ2hhbmRQcm9wZXJ0aWVzW25hbWVdIHx8IFtdOwotICAgIH0sCi0KLSAgICBnZXRTaG9ydGhh
bmRWYWx1ZTogZnVuY3Rpb24oc2hvcnRoYW5kUHJvcGVydHkpCi0gICAgewotICAgICAgICB2YXIg
cHJvcGVydHkgPSB0aGlzLmdldExpdmVQcm9wZXJ0eShzaG9ydGhhbmRQcm9wZXJ0eSk7Ci0gICAg
ICAgIHJldHVybiBwcm9wZXJ0eSA/IHByb3BlcnR5LnZhbHVlIDogdGhpcy5fc2hvcnRoYW5kVmFs
dWVzW3Nob3J0aGFuZFByb3BlcnR5XTsKLSAgICB9LAotCi0gICAgZ2V0U2hvcnRoYW5kUHJpb3Jp
dHk6IGZ1bmN0aW9uKHNob3J0aGFuZFByb3BlcnR5KQotICAgIHsKLSAgICAgICAgdmFyIHByaW9y
aXR5ID0gdGhpcy5nZXRQcm9wZXJ0eVByaW9yaXR5KHNob3J0aGFuZFByb3BlcnR5KTsKLSAgICAg
ICAgaWYgKHByaW9yaXR5KQotICAgICAgICAgICAgcmV0dXJuIHByaW9yaXR5OwotCi0gICAgICAg
IHZhciBsb25naGFuZHMgPSB0aGlzLl9sb25naGFuZFByb3BlcnRpZXNbc2hvcnRoYW5kUHJvcGVy
dHldOwotICAgICAgICByZXR1cm4gbG9uZ2hhbmRzID8gdGhpcy5nZXRQcm9wZXJ0eVByaW9yaXR5
KGxvbmdoYW5kc1swXSkgOiBudWxsOwotICAgIH0sCi0KLSAgICBhcHBlbmRQcm9wZXJ0eTogZnVu
Y3Rpb24ocHJvcGVydHlOYW1lLCBwcm9wZXJ0eVZhbHVlLCB1c2VyQ2FsbGJhY2spCi0gICAgewot
ICAgICAgICBmdW5jdGlvbiBzZXRQcm9wZXJ0eUNhbGxiYWNrKHVzZXJDYWxsYmFjaywgc3VjY2Vz
cywgc3R5bGVQYXlsb2FkKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0g
ICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG51bGwpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHVzZXJDYWxsYmFjayhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
bi5wYXJzZVBheWxvYWQoc3R5bGVQYXlsb2FkKSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBG
SVhNRShhcGF2bG92KTogdGhpcyBzaG91bGQgYmUgbWlncmF0ZWQgdG8gdGhlIG5ldyBJbnNwZWN0
b3JDU1NBZ2VudCBBUEkgb25jZSBpdCBpcyBlbmFibGVkLgotICAgICAgICBJbnNwZWN0b3JCYWNr
ZW5kLmFwcGx5U3R5bGVUZXh0KHRoaXMuaWQsIHByb3BlcnR5TmFtZSArICI6ICIgKyBwcm9wZXJ0
eVZhbHVlICsgIjsiLCBwcm9wZXJ0eU5hbWUsIHNldFByb3BlcnR5Q2FsbGJhY2suYmluZCh0aGlz
LCB1c2VyQ2FsbGJhY2spKTsKLSAgICB9LAotCi0gICAgcHJvcGVydHlBdDogZnVuY3Rpb24oaW5k
ZXgpCi0gICAgewotICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5hbGxQcm9wZXJ0aWVzLmxl
bmd0aCkgPyB0aGlzLmFsbFByb3BlcnRpZXNbaW5kZXhdIDogbnVsbDsKLSAgICB9Ci19Ci0KLVdl
Ykluc3BlY3Rvci5DU1NSdWxlID0gZnVuY3Rpb24ocGF5bG9hZCkKLXsKLSAgICB0aGlzLmlkID0g
cGF5bG9hZC5ydWxlSWQ7Ci0gICAgdGhpcy5zZWxlY3RvclRleHQgPSBwYXlsb2FkLnNlbGVjdG9y
VGV4dDsKLSAgICB0aGlzLnNvdXJjZUxpbmUgPSBwYXlsb2FkLnNvdXJjZUxpbmU7Ci0gICAgdGhp
cy5zb3VyY2VVUkwgPSBwYXlsb2FkLnNvdXJjZVVSTDsKLSAgICB0aGlzLm9yaWdpbiA9IHBheWxv
YWQub3JpZ2luOwotICAgIHRoaXMuc3R5bGUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJh
dGlvbi5wYXJzZVBheWxvYWQocGF5bG9hZC5zdHlsZSk7Ci0gICAgdGhpcy5zdHlsZS5wYXJlbnRS
dWxlID0gdGhpczsKLX0KLQotV2ViSW5zcGVjdG9yLkNTU1J1bGUucGFyc2VQYXlsb2FkID0gZnVu
Y3Rpb24ocGF5bG9hZCkKLXsKLSAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5DU1NSdWxlKHBh
eWxvYWQpOwotfQotCi1XZWJJbnNwZWN0b3IuQ1NTUnVsZS5wcm90b3R5cGUgPSB7Ci0gICAgZ2V0
IGlzVXNlckFnZW50KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm9yaWdpbiA9PT0gInVz
ZXItYWdlbnQiOwotICAgIH0sCi0KLSAgICBnZXQgaXNVc2VyKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLm9yaWdpbiA9PT0gInVzZXIiOwotICAgIH0sCi0KLSAgICBnZXQgaXNWaWFJbnNw
ZWN0b3IoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMub3JpZ2luID09PSAiaW5zcGVjdG9y
IjsKLSAgICB9LAotCi0gICAgZ2V0IGlzUmVndWxhcigpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5vcmlnaW4gPT09ICIiOwotICAgIH0KLX0KLQotV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5
ID0gZnVuY3Rpb24ob3duZXJTdHlsZSwgaW5kZXgsIG5hbWUsIHZhbHVlLCBwcmlvcml0eSwgc3Rh
dHVzLCBwYXJzZWRPaywgaW1wbGljaXQsIHNob3J0aGFuZCwgdGV4dCkKLXsKLSAgICB0aGlzLm93
bmVyU3R5bGUgPSBvd25lclN0eWxlOwotICAgIHRoaXMuaW5kZXggPSBpbmRleDsKLSAgICB0aGlz
Lm5hbWUgPSBuYW1lOwotICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKLSAgICB0aGlzLnByaW9yaXR5
ID0gcHJpb3JpdHk7Ci0gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7Ci0gICAgdGhpcy5wYXJzZWRP
ayA9IHBhcnNlZE9rOwotICAgIHRoaXMuaW1wbGljaXQgPSBpbXBsaWNpdDsKLSAgICB0aGlzLnNo
b3J0aGFuZCA9IHNob3J0aGFuZDsKLSAgICB0aGlzLnRleHQgPSB0ZXh0OwotfQotCi1XZWJJbnNw
ZWN0b3IuQ1NTUHJvcGVydHkucGFyc2VQYXlsb2FkID0gZnVuY3Rpb24ob3duZXJTdHlsZSwgaW5k
ZXgsIHBheWxvYWQpCi17Ci0gICAgdmFyIHJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuQ1NTUHJv
cGVydHkoCi0gICAgICAgIG93bmVyU3R5bGUsIGluZGV4LCBwYXlsb2FkLm5hbWUsIHBheWxvYWQu
dmFsdWUsIHBheWxvYWQucHJpb3JpdHksIHBheWxvYWQuc3RhdHVzLCBwYXlsb2FkLnBhcnNlZE9r
LCBwYXlsb2FkLmltcGxpY2l0LCBwYXlsb2FkLnNob3J0aGFuZE5hbWUsIHBheWxvYWQudGV4dCk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3Rv
dHlwZSA9IHsKLSAgICBnZXQgcHJvcGVydHlUZXh0KCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlz
LnRleHQgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnRleHQ7Ci0KLSAg
ICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI6ICIgKyB0aGlzLnZhbHVlICsgKHRoaXMucHJpb3Jp
dHkgPyAiICEiICsgdGhpcy5wcmlvcml0eSA6ICIiKSArICI7IjsKLSAgICB9LAotCi0gICAgZ2V0
IGlzTGl2ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmUgfHwgdGhpcy5zdHls
ZUJhc2VkOwotICAgIH0sCi0KLSAgICBnZXQgYWN0aXZlKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLnN0YXR1cyA9PT0gImFjdGl2ZSI7Ci0gICAgfSwKLQotICAgIGdldCBzdHlsZUJhc2Vk
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gInN0eWxlIjsKLSAgICB9
LAotCi0gICAgZ2V0IGluYWN0aXZlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnN0YXR1
cyA9PT0gImluYWN0aXZlIjsKLSAgICB9LAotCi0gICAgZ2V0IGRpc2FibGVkKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gImRpc2FibGVkIjsKLSAgICB9LAotCi0gICAg
Ly8gUmVwbGFjZXMgInByb3BlcnR5TmFtZTogcHJvcGVydHlWYWx1ZSBbIWltcG9ydGFudF07IiBp
biB0aGUgc3R5bGVzaGVldCBieSBhbiBhcmJpdHJhcnkgcHJvcGVydHlUZXh0LgotICAgIHNldFRl
eHQ6IGZ1bmN0aW9uKHByb3BlcnR5VGV4dCwgdXNlckNhbGxiYWNrKQotICAgIHsKLSAgICAgICAg
ZnVuY3Rpb24gY2FsbGJhY2sodXNlckNhbGxiYWNrLCBzdWNjZXNzLCBzdHlsZVBheWxvYWQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGlmICghdXNlckNhbGxiYWNrKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICB1c2Vy
Q2FsbGJhY2sobnVsbCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICB2YXIg
c3R5bGUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQoc3R5
bGVQYXlsb2FkKTsKLSAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2soc3R5bGUpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCF0aGlzLm93bmVyU3R5bGUpCi0gICAg
ICAgICAgICB0aHJvdyAiTm8gb3duZXJTdHlsZSBmb3IgcHJvcGVydHkiOwotICAgICAgICBJbnNw
ZWN0b3JCYWNrZW5kLmFwcGx5U3R5bGVUZXh0KHRoaXMub3duZXJTdHlsZS5pZCwgcHJvcGVydHlU
ZXh0LCB0aGlzLm5hbWUsIGNhbGxiYWNrLmJpbmQodGhpcywgdXNlckNhbGxiYWNrKSk7Ci0gICAg
fSwKLQotICAgIHNldFZhbHVlOiBmdW5jdGlvbihuZXdWYWx1ZSwgdXNlckNhbGxiYWNrKQotICAg
IHsKLSAgICAgICAgdmFyIHRleHQgPSB0aGlzLm5hbWUgKyAiOiAiICsgbmV3VmFsdWUgKyAodGhp
cy5wcmlvcml0eSA/ICIgISIgKyB0aGlzLnByaW9yaXR5IDogIiIpICsgIjsiCi0gICAgICAgIHRo
aXMuc2V0VGV4dCh0ZXh0LCB1c2VyQ2FsbGJhY2spOwotICAgIH0sCi0KLSAgICBzZXREaXNhYmxl
ZDogZnVuY3Rpb24oZGlzYWJsZWQsIHVzZXJDYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGlmICgh
dGhpcy5vd25lclN0eWxlICYmIHVzZXJDYWxsYmFjaykKLSAgICAgICAgICAgIHVzZXJDYWxsYmFj
ayhudWxsKTsKLSAgICAgICAgaWYgKGRpc2FibGVkID09PSB0aGlzLmRpc2FibGVkICYmIHVzZXJD
YWxsYmFjaykKLSAgICAgICAgICAgIHVzZXJDYWxsYmFjayh0aGlzLm93bmVyU3R5bGUpOwotCi0g
ICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHVzZXJDYWxsYmFjaywgc3R5bGVQYXlsb2FkKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpZiAoIXVzZXJDYWxsYmFjaykKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICBpZiAoIXN0eWxlUGF5bG9hZCkKLSAgICAgICAgICAgICAgICB1
c2VyQ2FsbGJhY2sobnVsbCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICB2
YXIgc3R5bGUgPSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wYXJzZVBheWxvYWQo
c3R5bGVQYXlsb2FkKTsKLSAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2soc3R5bGUpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIEluc3BlY3RvckJhY2tlbmQudG9nZ2xlU3R5
bGVFbmFibGVkKHRoaXMub3duZXJTdHlsZS5pZCwgdGhpcy5uYW1lLCBkaXNhYmxlZCwgY2FsbGJh
Y2suYmluZCh0aGlzLCB1c2VyQ2FsbGJhY2spKTsKLSAgICB9Ci19Ci0KIFdlYkluc3BlY3Rvci5h
dHRyaWJ1dGVzVXBkYXRlZCA9IGZ1bmN0aW9uKCkKIHsKICAgICB0aGlzLmRvbUFnZW50Ll9hdHRy
aWJ1dGVzVXBkYXRlZC5hcHBseSh0aGlzLmRvbUFnZW50LCBhcmd1bWVudHMpOwo=
</data>
<flag name="review"
          id="63923"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>