<?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>132533</bug_id>
          
          <creation_ts>2014-05-03 15:16:56 -0700</creation_ts>
          <short_desc>Pass around RenderStyle by const-reference inside SVGInlineTextBox.</short_desc>
          <delta_ts>2024-07-18 07:04:15 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>CONFIGURATION CHANGED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>ahmad.saleem792</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>krit</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1006394</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-05-03 15:16:56 -0700</bug_when>
    <thetext>Functions that immediately start by asserting that some Foo* argument is non-null are silly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006397</commentid>
    <comment_count>1</comment_count>
      <attachid>230766</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-05-03 15:19:51 -0700</bug_when>
    <thetext>Created attachment 230766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006412</commentid>
    <comment_count>2</comment_count>
      <attachid>230766</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-05-03 16:19:34 -0700</bug_when>
    <thetext>Comment on attachment 230766
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).

The reviewed by line should precede the description of the change log entry.

&gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:204
&gt; +    const RenderStyle* selectionStyle = &amp;style;

This local variables isn&apos;t used in a meaningful way in this function. I mean, we only assign a value(s) to it and never reference it. Shouldn&apos;t we be referencing this variable instead of |style| in SVGInlineTextBox::selectionRectForTextFragment() and GraphicsContext::fillRect() below?

&gt; Source/WebCore/rendering/svg/SVGInlineTextBox.cpp:273
&gt; +    const RenderStyle* selectionStyle = &amp;style;
&gt;      if (hasSelection) {
&gt;          selectionStyle = parentRenderer.getCachedPseudoStyle(SELECTION);
&gt;          if (selectionStyle) {

This is OK as-is. We should consider simplifying this code so as to remove an extraneous assignment to selectionStyle when parentRenderer.getCachedPseudoStyle(SELECTION) (on line 272) returns null. We can do this in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022096</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-07-12 23:22:18 -0700</bug_when>
    <thetext>Will you land this kling?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1900480</commentid>
    <comment_count>4</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2022-09-22 15:59:38 -0700</bug_when>
    <thetext>It seems that this r+ patch didn&apos;t landed.

Is this needed anymore? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2046998</commentid>
    <comment_count>5</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-07-18 07:04:15 -0700</bug_when>
    <thetext>It seems to be done - https://searchfox.org/wubkat/rev/7cf0e3722de99a6fc09380aae193381be6733ebb/Source/WebCore/rendering/svg/SVGInlineTextBox.h#78

Marking this as &apos;REOSLVED CONFIGURATION CHANGED&apos;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230766</attachid>
            <date>2014-05-03 15:19:51 -0700</date>
            <delta_ts>2014-05-03 16:19:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132533.diff</filename>
            <type>text/plain</type>
            <size>16667</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNzJmYTQyLi5mZmYwMTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzEg
QEAKIDIwMTQtMDUtMDMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIFBhc3MgYXJvdW5kIFJlbmRlclN0eWxlIGJ5IGNvbnN0LXJlZmVyZW5jZSBpbnNpZGUgU1ZH
SW5saW5lVGV4dEJveC4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzMjUzMz4KKwor
ICAgICAgICBDb252ZXJ0IFNWR0lubGluZVRleHRCb3ggZnVuY3Rpb25zIHRoYXQgdGFrZSBSZW5k
ZXJTdHlsZSogdG8gdGFrZSBjb25zdCBSZW5kZXJTdHlsZSYKKyAgICAgICAgaW5zdGVhZC4gUmVt
b3ZlIGEgYnVuY2ggb2YgdW5uZWNlc3NhcnkgYXNzZXJ0aW9ucyB0aGF0IGJlY2FtZSBidWlsZCBl
cnJvcnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHSW5saW5lRmxvd0JveDo6Y29tcHV0ZVRleHRNYXRjaE1hcmtlclJlY3RGb3JSZW5kZXJlcik6
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0lubGluZVRleHRCb3g6Om9mZnNldEZvclBvc2l0aW9uSW5GcmFnbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpzZWxlY3Rpb25SZWN0Rm9yVGV4
dEZyYWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lubGluZVRleHRCb3g6OmxvY2FsU2Vs
ZWN0aW9uUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludFNl
bGVjdGlvbkJhY2tncm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW5saW5lVGV4dEJveDo6
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW5saW5lVGV4dEJveDo6YWNxdWlyZVBhaW50
aW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW5saW5lVGV4dEJveDo6cHJlcGFy
ZUdyYXBoaWNzQ29udGV4dEZvclRleHRQYWludGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJ
bmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0lu
bGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbldpdGhTdHlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93cyk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvU1ZHSW5saW5lVGV4dEJveC5oOgorCisyMDE0LTA1LTAzICBBbmRyZWFzIEtsaW5nICA8YWts
aW5nQGFwcGxlLmNvbT4KKwogICAgICAgICBJbnZhbGlkYXRlIHNjcm9sbGJhcnMgd2hlbiBjdXN0
b20gc2Nyb2xsYmFyIHN0eWxlIGNoYW5nZXMgZHluYW1pY2FsbHkuCiAgICAgICAgIDxodHRwczov
L3dlYmtpdC5vcmcvYi8xMzI1Mjk+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR0lubGluZUZsb3dCb3guY3BwCmluZGV4IGQ5NjQwZjEuLjY3NzgyY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lRmxvd0JveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVGbG93Qm94LmNwcApAQCAt
MTE5LDcgKzExOSw3IEBAIHZvaWQgU1ZHSW5saW5lRmxvd0JveDo6Y29tcHV0ZVRleHRNYXRjaE1h
cmtlclJlY3RGb3JSZW5kZXJlcihSZW5kZXJTVkdJbmxpbmVUZXh0CiAgICAgICAgICAgICAgICAg
aWYgKCF0ZXh0Qm94LT5tYXBTdGFydEVuZFBvc2l0aW9uc0ludG9GcmFnbWVudENvb3JkaW5hdGVz
KGZyYWdtZW50LCBmcmFnbWVudFN0YXJ0UG9zaXRpb24sIGZyYWdtZW50RW5kUG9zaXRpb24pKQog
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgICAgIEZsb2F0UmVj
dCBmcmFnbWVudFJlY3QgPSB0ZXh0Qm94LT5zZWxlY3Rpb25SZWN0Rm9yVGV4dEZyYWdtZW50KGZy
YWdtZW50LCBmcmFnbWVudFN0YXJ0UG9zaXRpb24sIGZyYWdtZW50RW5kUG9zaXRpb24sICZzdHls
ZSk7CisgICAgICAgICAgICAgICAgRmxvYXRSZWN0IGZyYWdtZW50UmVjdCA9IHRleHRCb3gtPnNl
bGVjdGlvblJlY3RGb3JUZXh0RnJhZ21lbnQoZnJhZ21lbnQsIGZyYWdtZW50U3RhcnRQb3NpdGlv
biwgZnJhZ21lbnRFbmRQb3NpdGlvbiwgc3R5bGUpOwogICAgICAgICAgICAgICAgIGZyYWdtZW50
LmJ1aWxkRnJhZ21lbnRUcmFuc2Zvcm0oZnJhZ21lbnRUcmFuc2Zvcm0pOwogICAgICAgICAgICAg
ICAgIGlmICghZnJhZ21lbnRUcmFuc2Zvcm0uaXNJZGVudGl0eSgpKQogICAgICAgICAgICAgICAg
ICAgICBmcmFnbWVudFJlY3QgPSBmcmFnbWVudFRyYW5zZm9ybS5tYXBSZWN0KGZyYWdtZW50UmVj
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRl
eHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94
LmNwcAppbmRleCAzOTQ4ZWZjLi4xMzk2Y2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgaW50IFNW
R0lubGluZVRleHRCb3g6Om9mZnNldEZvclBvc2l0aW9uSW5GcmFnbWVudChjb25zdCBTVkdUZXh0
RnJhZ21lbnQmIGZyYWdtZW4KICAgIGZsb2F0IHNjYWxpbmdGYWN0b3IgPSByZW5kZXJlcigpLnNj
YWxpbmdGYWN0b3IoKTsKICAgICBBU1NFUlQoc2NhbGluZ0ZhY3Rvcik7CiAKLSAgICBUZXh0UnVu
IHRleHRSdW4gPSBjb25zdHJ1Y3RUZXh0UnVuKCZyZW5kZXJlcigpLnN0eWxlKCksIGZyYWdtZW50
KTsKKyAgICBUZXh0UnVuIHRleHRSdW4gPSBjb25zdHJ1Y3RUZXh0UnVuKHJlbmRlcmVyKCkuc3R5
bGUoKSwgZnJhZ21lbnQpOwogCiAgICAgLy8gRXZlbnR1YWxseSBoYW5kbGUgbGVuZ3RoQWRqdXN0
PSJzcGFjaW5nQW5kR2x5cGhzIi4KICAgICAvLyBGSVhNRTogSGFuZGxlIHZlcnRpY2FsIHRleHQu
CkBAIC0xMDcsMTAgKzEwNyw5IEBAIGZsb2F0IFNWR0lubGluZVRleHRCb3g6OnBvc2l0aW9uRm9y
T2Zmc2V0KGludCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotRmxvYXRSZWN0IFNWR0lubGlu
ZVRleHRCb3g6OnNlbGVjdGlvblJlY3RGb3JUZXh0RnJhZ21lbnQoY29uc3QgU1ZHVGV4dEZyYWdt
ZW50JiBmcmFnbWVudCwgaW50IHN0YXJ0UG9zaXRpb24sIGludCBlbmRQb3NpdGlvbiwgUmVuZGVy
U3R5bGUqIHN0eWxlKSBjb25zdAorRmxvYXRSZWN0IFNWR0lubGluZVRleHRCb3g6OnNlbGVjdGlv
blJlY3RGb3JUZXh0RnJhZ21lbnQoY29uc3QgU1ZHVGV4dEZyYWdtZW50JiBmcmFnbWVudCwgaW50
IHN0YXJ0UG9zaXRpb24sIGludCBlbmRQb3NpdGlvbiwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
KSBjb25zdAogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKHN0YXJ0UG9z
aXRpb24gPCBlbmRQb3NpdGlvbik7Ci0gICAgQVNTRVJUKHN0eWxlKTsKIAogICAgIEZvbnRDYWNo
ZVB1cmdlUHJldmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwogCkBAIC0xNTcsNyArMTU2
LDcgQEAgTGF5b3V0UmVjdCBTVkdJbmxpbmVUZXh0Qm94Ojpsb2NhbFNlbGVjdGlvblJlY3QoaW50
IHN0YXJ0UG9zaXRpb24sIGludCBlbmRQb3NpdGkKICAgICAgICAgaWYgKCFtYXBTdGFydEVuZFBv
c2l0aW9uc0ludG9GcmFnbWVudENvb3JkaW5hdGVzKGZyYWdtZW50LCBmcmFnbWVudFN0YXJ0UG9z
aXRpb24sIGZyYWdtZW50RW5kUG9zaXRpb24pKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgRmxvYXRSZWN0IGZyYWdtZW50UmVjdCA9IHNlbGVjdGlvblJlY3RGb3JUZXh0RnJhZ21l
bnQoZnJhZ21lbnQsIGZyYWdtZW50U3RhcnRQb3NpdGlvbiwgZnJhZ21lbnRFbmRQb3NpdGlvbiwg
JnN0eWxlKTsKKyAgICAgICAgRmxvYXRSZWN0IGZyYWdtZW50UmVjdCA9IHNlbGVjdGlvblJlY3RG
b3JUZXh0RnJhZ21lbnQoZnJhZ21lbnQsIGZyYWdtZW50U3RhcnRQb3NpdGlvbiwgZnJhZ21lbnRF
bmRQb3NpdGlvbiwgc3R5bGUpOwogICAgICAgICBmcmFnbWVudC5idWlsZEZyYWdtZW50VHJhbnNm
b3JtKGZyYWdtZW50VHJhbnNmb3JtKTsKICAgICAgICAgaWYgKCFmcmFnbWVudFRyYW5zZm9ybS5p
c0lkZW50aXR5KCkpCiAgICAgICAgICAgICBmcmFnbWVudFJlY3QgPSBmcmFnbWVudFRyYW5zZm9y
bS5tYXBSZWN0KGZyYWdtZW50UmVjdCk7CkBAIC0yMDAsOSArMTk5LDkgQEAgdm9pZCBTVkdJbmxp
bmVUZXh0Qm94OjpwYWludFNlbGVjdGlvbkJhY2tncm91bmQoUGFpbnRJbmZvJiBwYWludEluZm8p
CiAgICAgaWYgKCF0ZXh0U2hvdWxkQmVQYWludGVkKHJlbmRlcmVyKCkpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBSZW5kZXJTdHlsZSYgc3R5bGUgPSBwYXJlbnRSZW5kZXJlci5zdHlsZSgpOwor
ICAgIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSA9IHBhcmVudFJlbmRlcmVyLnN0eWxlKCk7CiAK
LSAgICBSZW5kZXJTdHlsZSogc2VsZWN0aW9uU3R5bGUgPSAmc3R5bGU7CisgICAgY29uc3QgUmVu
ZGVyU3R5bGUqIHNlbGVjdGlvblN0eWxlID0gJnN0eWxlOwogICAgIGlmIChoYXNTZWxlY3Rpb24p
IHsKICAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBwYXJlbnRSZW5kZXJlci5nZXRDYWNoZWRQc2V1
ZG9TdHlsZShTRUxFQ1RJT04pOwogICAgICAgICBpZiAoIXNlbGVjdGlvblN0eWxlKQpAQCAtMjMx
LDcgKzIzMCw3IEBAIHZvaWQgU1ZHSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb25CYWNrZ3Jv
dW5kKFBhaW50SW5mbyYgcGFpbnRJbmZvKQogICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQt
PmNvbmNhdENUTShmcmFnbWVudFRyYW5zZm9ybSk7CiAKICAgICAgICAgcGFpbnRJbmZvLmNvbnRl
eHQtPnNldEZpbGxDb2xvcihiYWNrZ3JvdW5kQ29sb3IsIHN0eWxlLmNvbG9yU3BhY2UoKSk7Ci0g
ICAgICAgIHBhaW50SW5mby5jb250ZXh0LT5maWxsUmVjdChzZWxlY3Rpb25SZWN0Rm9yVGV4dEZy
YWdtZW50KGZyYWdtZW50LCBmcmFnbWVudFN0YXJ0UG9zaXRpb24sIGZyYWdtZW50RW5kUG9zaXRp
b24sICZzdHlsZSksIGJhY2tncm91bmRDb2xvciwgc3R5bGUuY29sb3JTcGFjZSgpKTsKKyAgICAg
ICAgcGFpbnRJbmZvLmNvbnRleHQtPmZpbGxSZWN0KHNlbGVjdGlvblJlY3RGb3JUZXh0RnJhZ21l
bnQoZnJhZ21lbnQsIGZyYWdtZW50U3RhcnRQb3NpdGlvbiwgZnJhZ21lbnRFbmRQb3NpdGlvbiwg
c3R5bGUpLCBiYWNrZ3JvdW5kQ29sb3IsIHN0eWxlLmNvbG9yU3BhY2UoKSk7CiAKICAgICAgICAg
bV9wYWludGluZ1Jlc291cmNlTW9kZSA9IEFwcGx5VG9EZWZhdWx0TW9kZTsKICAgICB9CkBAIC0y
NjEsMTQgKzI2MCwxNCBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50KFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYsIExheW91dFVuaQogICAgIGlmICghdGV4dFNo
b3VsZEJlUGFpbnRlZChyZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVuZGVy
U3R5bGUmIHN0eWxlID0gcGFyZW50UmVuZGVyZXIuc3R5bGUoKTsKKyAgICBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUgPSBwYXJlbnRSZW5kZXJlci5zdHlsZSgpOwogCiAgICAgY29uc3QgU1ZHUmVu
ZGVyU3R5bGUmIHN2Z1N0eWxlID0gc3R5bGUuc3ZnU3R5bGUoKTsKIAogICAgIGJvb2wgaGFzRmls
bCA9IHN2Z1N0eWxlLmhhc0ZpbGwoKTsKICAgICBib29sIGhhc1Zpc2libGVTdHJva2UgPSBzdmdT
dHlsZS5oYXNWaXNpYmxlU3Ryb2tlKCk7CiAKLSAgICBSZW5kZXJTdHlsZSogc2VsZWN0aW9uU3R5
bGUgPSAmc3R5bGU7CisgICAgY29uc3QgUmVuZGVyU3R5bGUqIHNlbGVjdGlvblN0eWxlID0gJnN0
eWxlOwogICAgIGlmIChoYXNTZWxlY3Rpb24pIHsKICAgICAgICAgc2VsZWN0aW9uU3R5bGUgPSBw
YXJlbnRSZW5kZXJlci5nZXRDYWNoZWRQc2V1ZG9TdHlsZShTRUxFQ1RJT04pOwogICAgICAgICBp
ZiAoc2VsZWN0aW9uU3R5bGUpIHsKQEAgLTMxMiwxMyArMzExLDEzIEBAIHZvaWQgU1ZHSW5saW5l
VGV4dEJveDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50Jiwg
TGF5b3V0VW5pCiAgICAgICAgICAgICAgICAgaWYgKCFoYXNGaWxsKQogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBtX3BhaW50aW5nUmVzb3VyY2VNb2RlID0g
QXBwbHlUb0ZpbGxNb2RlIHwgQXBwbHlUb1RleHRNb2RlOwotICAgICAgICAgICAgICAgIHBhaW50
VGV4dChwYWludEluZm8uY29udGV4dCwgJnN0eWxlLCBzZWxlY3Rpb25TdHlsZSwgZnJhZ21lbnQs
IGhhc1NlbGVjdGlvbiwgcGFpbnRTZWxlY3RlZFRleHRPbmx5KTsKKyAgICAgICAgICAgICAgICBw
YWludFRleHQocGFpbnRJbmZvLmNvbnRleHQsIHN0eWxlLCAqc2VsZWN0aW9uU3R5bGUsIGZyYWdt
ZW50LCBoYXNTZWxlY3Rpb24sIHBhaW50U2VsZWN0ZWRUZXh0T25seSk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFBhaW50VHlwZVN0cm9rZToKICAgICAgICAgICAg
ICAgICBpZiAoIWhhc1Zpc2libGVTdHJva2UpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgIG1fcGFpbnRpbmdSZXNvdXJjZU1vZGUgPSBBcHBseVRvU3Ryb2tl
TW9kZSB8IEFwcGx5VG9UZXh0TW9kZTsKLSAgICAgICAgICAgICAgICBwYWludFRleHQocGFpbnRJ
bmZvLmNvbnRleHQsICZzdHlsZSwgc2VsZWN0aW9uU3R5bGUsIGZyYWdtZW50LCBoYXNTZWxlY3Rp
b24sIHBhaW50U2VsZWN0ZWRUZXh0T25seSk7CisgICAgICAgICAgICAgICAgcGFpbnRUZXh0KHBh
aW50SW5mby5jb250ZXh0LCBzdHlsZSwgKnNlbGVjdGlvblN0eWxlLCBmcmFnbWVudCwgaGFzU2Vs
ZWN0aW9uLCBwYWludFNlbGVjdGVkVGV4dE9ubHkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBQYWludFR5cGVNYXJrZXJzOgogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwpAQCAtMzM1LDE3ICszMzQsMTYgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludChQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmLCBMYXlvdXRVbmkKICAgICBB
U1NFUlQoIW1fcGFpbnRpbmdSZXNvdXJjZSk7CiB9CiAKLWJvb2wgU1ZHSW5saW5lVGV4dEJveDo6
YWNxdWlyZVBhaW50aW5nUmVzb3VyY2UoR3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgZmxvYXQg
c2NhbGluZ0ZhY3RvciwgUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyLCBSZW5kZXJTdHls
ZSogc3R5bGUpCitib29sIFNWR0lubGluZVRleHRCb3g6OmFjcXVpcmVQYWludGluZ1Jlc291cmNl
KEdyYXBoaWNzQ29udGV4dComIGNvbnRleHQsIGZsb2F0IHNjYWxpbmdGYWN0b3IsIFJlbmRlckJv
eE1vZGVsT2JqZWN0JiByZW5kZXJlciwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAg
IEFTU0VSVChzY2FsaW5nRmFjdG9yKTsKLSAgICBBU1NFUlQoc3R5bGUpOwogICAgIEFTU0VSVCht
X3BhaW50aW5nUmVzb3VyY2VNb2RlICE9IEFwcGx5VG9EZWZhdWx0TW9kZSk7CiAKICAgICBDb2xv
ciBmYWxsYmFja0NvbG9yOwogICAgIGlmIChtX3BhaW50aW5nUmVzb3VyY2VNb2RlICYgQXBwbHlU
b0ZpbGxNb2RlKQotICAgICAgICBtX3BhaW50aW5nUmVzb3VyY2UgPSBSZW5kZXJTVkdSZXNvdXJj
ZTo6ZmlsbFBhaW50aW5nUmVzb3VyY2UocmVuZGVyZXIsICpzdHlsZSwgZmFsbGJhY2tDb2xvcik7
CisgICAgICAgIG1fcGFpbnRpbmdSZXNvdXJjZSA9IFJlbmRlclNWR1Jlc291cmNlOjpmaWxsUGFp
bnRpbmdSZXNvdXJjZShyZW5kZXJlciwgc3R5bGUsIGZhbGxiYWNrQ29sb3IpOwogICAgIGVsc2Ug
aWYgKG1fcGFpbnRpbmdSZXNvdXJjZU1vZGUgJiBBcHBseVRvU3Ryb2tlTW9kZSkKLSAgICAgICAg
bV9wYWludGluZ1Jlc291cmNlID0gUmVuZGVyU1ZHUmVzb3VyY2U6OnN0cm9rZVBhaW50aW5nUmVz
b3VyY2UocmVuZGVyZXIsICpzdHlsZSwgZmFsbGJhY2tDb2xvcik7CisgICAgICAgIG1fcGFpbnRp
bmdSZXNvdXJjZSA9IFJlbmRlclNWR1Jlc291cmNlOjpzdHJva2VQYWludGluZ1Jlc291cmNlKHJl
bmRlcmVyLCBzdHlsZSwgZmFsbGJhY2tDb2xvcik7CiAgICAgZWxzZSB7CiAgICAgICAgIC8vIFdl
J3JlIGVpdGhlciBjYWxsZWQgZm9yIHN0cm9raW5nIG9yIGZpbGxpbmcuCiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzU0LDEzICszNTIsMTMgQEAgYm9vbCBTVkdJbmxpbmVUZXh0
Qm94OjphY3F1aXJlUGFpbnRpbmdSZXNvdXJjZShHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBm
bG9hdAogICAgIGlmICghbV9wYWludGluZ1Jlc291cmNlKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAoIW1fcGFpbnRpbmdSZXNvdXJjZS0+YXBwbHlSZXNvdXJjZShyZW5kZXJlciwg
KnN0eWxlLCBjb250ZXh0LCBtX3BhaW50aW5nUmVzb3VyY2VNb2RlKSkgeworICAgIGlmICghbV9w
YWludGluZ1Jlc291cmNlLT5hcHBseVJlc291cmNlKHJlbmRlcmVyLCBzdHlsZSwgY29udGV4dCwg
bV9wYWludGluZ1Jlc291cmNlTW9kZSkpIHsKICAgICAgICAgaWYgKGZhbGxiYWNrQ29sb3IuaXNW
YWxpZCgpKSB7CiAgICAgICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IqIGZhbGxi
YWNrUmVzb3VyY2UgPSBSZW5kZXJTVkdSZXNvdXJjZTo6c2hhcmVkU29saWRQYWludGluZ1Jlc291
cmNlKCk7CiAgICAgICAgICAgICBmYWxsYmFja1Jlc291cmNlLT5zZXRDb2xvcihmYWxsYmFja0Nv
bG9yKTsKIAogICAgICAgICAgICAgbV9wYWludGluZ1Jlc291cmNlID0gZmFsbGJhY2tSZXNvdXJj
ZTsKLSAgICAgICAgICAgIG1fcGFpbnRpbmdSZXNvdXJjZS0+YXBwbHlSZXNvdXJjZShyZW5kZXJl
ciwgKnN0eWxlLCBjb250ZXh0LCBtX3BhaW50aW5nUmVzb3VyY2VNb2RlKTsKKyAgICAgICAgICAg
IG1fcGFpbnRpbmdSZXNvdXJjZS0+YXBwbHlSZXNvdXJjZShyZW5kZXJlciwgc3R5bGUsIGNvbnRl
eHQsIG1fcGFpbnRpbmdSZXNvdXJjZU1vZGUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0zNzgs
NyArMzc2LDcgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpyZWxlYXNlUGFpbnRpbmdSZXNvdXJj
ZShHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBjb25zdAogICAgIG1fcGFpbnRpbmdSZXNvdXJj
ZSA9IG51bGxwdHI7CiB9CiAKLWJvb2wgU1ZHSW5saW5lVGV4dEJveDo6cHJlcGFyZUdyYXBoaWNz
Q29udGV4dEZvclRleHRQYWludGluZyhHcmFwaGljc0NvbnRleHQqJiBjb250ZXh0LCBmbG9hdCBz
Y2FsaW5nRmFjdG9yLCBUZXh0UnVuJiB0ZXh0UnVuLCBSZW5kZXJTdHlsZSogc3R5bGUpCitib29s
IFNWR0lubGluZVRleHRCb3g6OnByZXBhcmVHcmFwaGljc0NvbnRleHRGb3JUZXh0UGFpbnRpbmco
R3JhcGhpY3NDb250ZXh0KiYgY29udGV4dCwgZmxvYXQgc2NhbGluZ0ZhY3RvciwgVGV4dFJ1biYg
dGV4dFJ1biwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAgIGJvb2wgYWNxdWlyZWRS
ZXNvdXJjZSA9IGFjcXVpcmVQYWludGluZ1Jlc291cmNlKGNvbnRleHQsIHNjYWxpbmdGYWN0b3Is
IHBhcmVudCgpLT5yZW5kZXJlcigpLCBzdHlsZSk7CiAgICAgaWYgKCFhY3F1aXJlZFJlc291cmNl
KQpAQCAtNDA3LDE4ICs0MDUsMTYgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpyZXN0b3JlR3Jh
cGhpY3NDb250ZXh0QWZ0ZXJUZXh0UGFpbnRpbmcoR3JhcGhpY3NDb250ZXh0KiYKICNlbmRpZgog
fQogCi1UZXh0UnVuIFNWR0lubGluZVRleHRCb3g6OmNvbnN0cnVjdFRleHRSdW4oUmVuZGVyU3R5
bGUqIHN0eWxlLCBjb25zdCBTVkdUZXh0RnJhZ21lbnQmIGZyYWdtZW50KSBjb25zdAorVGV4dFJ1
biBTVkdJbmxpbmVUZXh0Qm94Ojpjb25zdHJ1Y3RUZXh0UnVuKGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgY29uc3QgU1ZHVGV4dEZyYWdtZW50JiBmcmFnbWVudCkgY29uc3QKIHsKLSAgICBBU1NF
UlQoc3R5bGUpOwotCiAgICAgVGV4dFJ1biBydW4oU3RyaW5nVmlldyhyZW5kZXJlcigpLnRleHQo
KSkuc3Vic3RyaW5nKGZyYWdtZW50LmNoYXJhY3Rlck9mZnNldCwgZnJhZ21lbnQubGVuZ3RoKQog
ICAgICAgICAgICAgICAgICwgMCAvKiB4UG9zLCBvbmx5IHJlbGV2YW50IHdpdGggYWxsb3dUYWJz
PXRydWUgKi8KICAgICAgICAgICAgICAgICAsIDAgLyogcGFkZGluZywgb25seSByZWxldmFudCBm
b3IganVzdGlmaWVkIHRleHQsIG5vdCByZWxldmFudCBmb3IgU1ZHICovCiAgICAgICAgICAgICAg
ICAgLCBUZXh0UnVuOjpBbGxvd1RyYWlsaW5nRXhwYW5zaW9uCiAgICAgICAgICAgICAgICAgLCBk
aXJlY3Rpb24oKQotICAgICAgICAgICAgICAgICwgZGlyT3ZlcnJpZGUoKSB8fCBzdHlsZS0+cnRs
T3JkZXJpbmcoKSA9PSBWaXN1YWxPcmRlciAvKiBkaXJlY3Rpb25hbE92ZXJyaWRlICovKTsKKyAg
ICAgICAgICAgICAgICAsIGRpck92ZXJyaWRlKCkgfHwgc3R5bGUucnRsT3JkZXJpbmcoKSA9PSBW
aXN1YWxPcmRlciAvKiBkaXJlY3Rpb25hbE92ZXJyaWRlICovKTsKIAotICAgIGlmIChzdHlsZS0+
Zm9udCgpLmlzU1ZHRm9udCgpKQorICAgIGlmIChzdHlsZS5mb250KCkuaXNTVkdGb250KCkpCiAg
ICAgICAgIHJ1bi5zZXRSZW5kZXJpbmdDb250ZXh0KFNWR1RleHRSdW5SZW5kZXJpbmdDb250ZXh0
OjpjcmVhdGUocmVuZGVyZXIoKSkpOwogCiAgICAgcnVuLmRpc2FibGVSb3VuZGluZ0hhY2tzKCk7
CkBAIC01NjAsMTcgKzU1NiwxNyBAQCB2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50RGVjb3Jh
dGlvbldpdGhTdHlsZShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFRleHREZQogICAgIFBhdGgg
cGF0aDsKICAgICBwYXRoLmFkZFJlY3QoRmxvYXRSZWN0KGRlY29yYXRpb25PcmlnaW4sIEZsb2F0
U2l6ZSh3aWR0aCwgdGhpY2tuZXNzKSkpOwogCi0gICAgaWYgKGFjcXVpcmVQYWludGluZ1Jlc291
cmNlKGNvbnRleHQsIHNjYWxpbmdGYWN0b3IsIGRlY29yYXRpb25SZW5kZXJlciwgJmRlY29yYXRp
b25TdHlsZSkpCisgICAgaWYgKGFjcXVpcmVQYWludGluZ1Jlc291cmNlKGNvbnRleHQsIHNjYWxp
bmdGYWN0b3IsIGRlY29yYXRpb25SZW5kZXJlciwgZGVjb3JhdGlvblN0eWxlKSkKICAgICAgICAg
cmVsZWFzZVBhaW50aW5nUmVzb3VyY2UoY29udGV4dCwgJnBhdGgpOwogfQogCi12b2lkIFNWR0lu
bGluZVRleHRCb3g6OnBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgUmVuZGVyU3R5bGUqIHN0eWxlLCBUZXh0UnVuJiB0ZXh0UnVuLCBjb25zdCBTVkdUZXh0RnJh
Z21lbnQmIGZyYWdtZW50LCBpbnQgc3RhcnRQb3NpdGlvbiwgaW50IGVuZFBvc2l0aW9uKQordm9p
ZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgVGV4dFJ1biYgdGV4dFJ1biwgY29u
c3QgU1ZHVGV4dEZyYWdtZW50JiBmcmFnbWVudCwgaW50IHN0YXJ0UG9zaXRpb24sIGludCBlbmRQ
b3NpdGlvbikKIHsKICAgICBmbG9hdCBzY2FsaW5nRmFjdG9yID0gcmVuZGVyZXIoKS5zY2FsaW5n
RmFjdG9yKCk7CiAgICAgQVNTRVJUKHNjYWxpbmdGYWN0b3IpOwogCiAgICAgY29uc3QgRm9udCYg
c2NhbGVkRm9udCA9IHJlbmRlcmVyKCkuc2NhbGVkRm9udCgpOwotICAgIGNvbnN0IFNoYWRvd0Rh
dGEqIHNoYWRvdyA9IHN0eWxlLT50ZXh0U2hhZG93KCk7CisgICAgY29uc3QgU2hhZG93RGF0YSog
c2hhZG93ID0gc3R5bGUudGV4dFNoYWRvdygpOwogCiAgICAgRmxvYXRQb2ludCB0ZXh0T3JpZ2lu
KGZyYWdtZW50LngsIGZyYWdtZW50LnkpOwogICAgIEZsb2F0U2l6ZSB0ZXh0U2l6ZShmcmFnbWVu
dC53aWR0aCwgZnJhZ21lbnQuaGVpZ2h0KTsKQEAgLTYxMywxMSArNjA5LDggQEAgdm9pZCBTVkdJ
bmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIFJlbmRlclN0eWwKICAgICB9IHdoaWxlIChzaGFkb3cpOwogfQogCi12b2lkIFNWR0lubGlu
ZVRleHRCb3g6OnBhaW50VGV4dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFJlbmRlclN0eWxl
KiBzdHlsZSwgUmVuZGVyU3R5bGUqIHNlbGVjdGlvblN0eWxlLCBjb25zdCBTVkdUZXh0RnJhZ21l
bnQmIGZyYWdtZW50LCBib29sIGhhc1NlbGVjdGlvbiwgYm9vbCBwYWludFNlbGVjdGVkVGV4dE9u
bHkpCit2b2lkIFNWR0lubGluZVRleHRCb3g6OnBhaW50VGV4dChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIHNlbGVj
dGlvblN0eWxlLCBjb25zdCBTVkdUZXh0RnJhZ21lbnQmIGZyYWdtZW50LCBib29sIGhhc1NlbGVj
dGlvbiwgYm9vbCBwYWludFNlbGVjdGVkVGV4dE9ubHkpCiB7Ci0gICAgQVNTRVJUKHN0eWxlKTsK
LSAgICBBU1NFUlQoc2VsZWN0aW9uU3R5bGUpOwotCiAgICAgaW50IHN0YXJ0UG9zaXRpb24gPSAw
OwogICAgIGludCBlbmRQb3NpdGlvbiA9IDA7CiAgICAgaWYgKGhhc1NlbGVjdGlvbikgewpAQCAt
NjM3LDE0ICs2MzAsMTQgQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHQoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBSZW5kZXJTdHlsZSogc3R5bGUsIFIKICAgICAgICAgcGFpbnRU
ZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgc3R5bGUsIHRleHRSdW4sIGZyYWdtZW50LCAwLCBzdGFy
dFBvc2l0aW9uKTsKIAogICAgIC8vIERyYXcgdGV4dCB1c2luZyBzZWxlY3Rpb24gc3R5bGUgZnJv
bSB0aGUgc3RhcnQgdG8gdGhlIGVuZCBwb3NpdGlvbiBvZiB0aGUgc2VsZWN0aW9uCi0gICAgaWYg
KHN0eWxlICE9IHNlbGVjdGlvblN0eWxlKQotICAgICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xp
ZW50U3R5bGVDaGFuZ2VkKHBhcmVudCgpLT5yZW5kZXJlcigpLCBTdHlsZURpZmZlcmVuY2VSZXBh
aW50LCAqc2VsZWN0aW9uU3R5bGUpOworICAgIGlmICgmc3R5bGUgIT0gJnNlbGVjdGlvblN0eWxl
KQorICAgICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50U3R5bGVDaGFuZ2VkKHBhcmVudCgp
LT5yZW5kZXJlcigpLCBTdHlsZURpZmZlcmVuY2VSZXBhaW50LCBzZWxlY3Rpb25TdHlsZSk7CiAK
ICAgICBUZXh0UnVuIHNlbGVjdGlvblRleHRSdW4gPSBjb25zdHJ1Y3RUZXh0UnVuKHNlbGVjdGlv
blN0eWxlLCBmcmFnbWVudCk7CiAgICAgcGFpbnRUZXh0V2l0aFNoYWRvd3MoY29udGV4dCwgc2Vs
ZWN0aW9uU3R5bGUsIHRleHRSdW4sIGZyYWdtZW50LCBzdGFydFBvc2l0aW9uLCBlbmRQb3NpdGlv
bik7CiAKICAgICBpZiAoc3R5bGUgIT0gc2VsZWN0aW9uU3R5bGUpCi0gICAgICAgIFNWR1Jlc291
cmNlc0NhY2hlOjpjbGllbnRTdHlsZUNoYW5nZWQocGFyZW50KCktPnJlbmRlcmVyKCksIFN0eWxl
RGlmZmVyZW5jZVJlcGFpbnQsICpzdHlsZSk7CisgICAgICAgIFNWR1Jlc291cmNlc0NhY2hlOjpj
bGllbnRTdHlsZUNoYW5nZWQocGFyZW50KCktPnJlbmRlcmVyKCksIFN0eWxlRGlmZmVyZW5jZVJl
cGFpbnQsIHN0eWxlKTsKIAogICAgIC8vIEV2ZW50dWFsbHkgZHJhdyB0ZXh0IHVzaW5nIHJlZ3Vs
YXIgc3R5bGUgZnJvbSB0aGUgZW5kIHBvc2l0aW9uIG9mIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGVu
ZCBvZiB0aGUgY3VycmVudCBjaHVuayBwYXJ0CiAgICAgaWYgKGVuZFBvc2l0aW9uIDwgc3RhdGlj
X2Nhc3Q8aW50PihmcmFnbWVudC5sZW5ndGgpICYmICFwYWludFNlbGVjdGVkVGV4dE9ubHkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5oCmluZGV4
IGYwODk0ZjAuLjdiOWEzYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHSW5saW5lVGV4dEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHSW5saW5lVGV4dEJveC5oCkBAIC02NCwyMyArNjQsMjMgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0U3RhcnRzTmV3VGV4dENodW5rKGJvb2wgbmV3VGV4dENodW5rKSB7IG1fc3RhcnRzTmV3VGV4
dENodW5rID0gbmV3VGV4dENodW5rOyB9CiAKICAgICBpbnQgb2Zmc2V0Rm9yUG9zaXRpb25JbkZy
YWdtZW50KGNvbnN0IFNWR1RleHRGcmFnbWVudCYsIGZsb2F0IHBvc2l0aW9uLCBib29sIGluY2x1
ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdDsKLSAgICBGbG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZvclRl
eHRGcmFnbWVudChjb25zdCBTVkdUZXh0RnJhZ21lbnQmLCBpbnQgZnJhZ21lbnRTdGFydFBvc2l0
aW9uLCBpbnQgZnJhZ21lbnRFbmRQb3NpdGlvbiwgUmVuZGVyU3R5bGUqKSBjb25zdDsKKyAgICBG
bG9hdFJlY3Qgc2VsZWN0aW9uUmVjdEZvclRleHRGcmFnbWVudChjb25zdCBTVkdUZXh0RnJhZ21l
bnQmLCBpbnQgZnJhZ21lbnRTdGFydFBvc2l0aW9uLCBpbnQgZnJhZ21lbnRFbmRQb3NpdGlvbiwg
Y29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNTVkdJbmxpbmVUZXh0Qm94KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0g
ICAgVGV4dFJ1biBjb25zdHJ1Y3RUZXh0UnVuKFJlbmRlclN0eWxlKiwgY29uc3QgU1ZHVGV4dEZy
YWdtZW50JikgY29uc3Q7CisgICAgVGV4dFJ1biBjb25zdHJ1Y3RUZXh0UnVuKGNvbnN0IFJlbmRl
clN0eWxlJiwgY29uc3QgU1ZHVGV4dEZyYWdtZW50JikgY29uc3Q7CiAKLSAgICBib29sIGFjcXVp
cmVQYWludGluZ1Jlc291cmNlKEdyYXBoaWNzQ29udGV4dComLCBmbG9hdCBzY2FsaW5nRmFjdG9y
LCBSZW5kZXJCb3hNb2RlbE9iamVjdCYsIFJlbmRlclN0eWxlKik7CisgICAgYm9vbCBhY3F1aXJl
UGFpbnRpbmdSZXNvdXJjZShHcmFwaGljc0NvbnRleHQqJiwgZmxvYXQgc2NhbGluZ0ZhY3Rvciwg
UmVuZGVyQm94TW9kZWxPYmplY3QmLCBjb25zdCBSZW5kZXJTdHlsZSYpOwogICAgIHZvaWQgcmVs
ZWFzZVBhaW50aW5nUmVzb3VyY2UoR3JhcGhpY3NDb250ZXh0KiYsIGNvbnN0IFBhdGgqKTsKIAot
ICAgIGJvb2wgcHJlcGFyZUdyYXBoaWNzQ29udGV4dEZvclRleHRQYWludGluZyhHcmFwaGljc0Nv
bnRleHQqJiwgZmxvYXQgc2NhbGluZ0ZhY3RvciwgVGV4dFJ1biYsIFJlbmRlclN0eWxlKik7Cisg
ICAgYm9vbCBwcmVwYXJlR3JhcGhpY3NDb250ZXh0Rm9yVGV4dFBhaW50aW5nKEdyYXBoaWNzQ29u
dGV4dComLCBmbG9hdCBzY2FsaW5nRmFjdG9yLCBUZXh0UnVuJiwgY29uc3QgUmVuZGVyU3R5bGUm
KTsKICAgICB2b2lkIHJlc3RvcmVHcmFwaGljc0NvbnRleHRBZnRlclRleHRQYWludGluZyhHcmFw
aGljc0NvbnRleHQqJiwgVGV4dFJ1biYpOwogCiAgICAgdm9pZCBwYWludERlY29yYXRpb24oR3Jh
cGhpY3NDb250ZXh0KiwgVGV4dERlY29yYXRpb24sIGNvbnN0IFNWR1RleHRGcmFnbWVudCYpOwog
ICAgIHZvaWQgcGFpbnREZWNvcmF0aW9uV2l0aFN0eWxlKEdyYXBoaWNzQ29udGV4dCosIFRleHRE
ZWNvcmF0aW9uLCBjb25zdCBTVkdUZXh0RnJhZ21lbnQmLCBSZW5kZXJCb3hNb2RlbE9iamVjdCYg
ZGVjb3JhdGlvblJlbmRlcmVyKTsKLSAgICB2b2lkIHBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBo
aWNzQ29udGV4dCosIFJlbmRlclN0eWxlKiwgVGV4dFJ1biYsIGNvbnN0IFNWR1RleHRGcmFnbWVu
dCYsIGludCBzdGFydFBvc2l0aW9uLCBpbnQgZW5kUG9zaXRpb24pOwotICAgIHZvaWQgcGFpbnRU
ZXh0KEdyYXBoaWNzQ29udGV4dCosIFJlbmRlclN0eWxlKiwgUmVuZGVyU3R5bGUqIHNlbGVjdGlv
blN0eWxlLCBjb25zdCBTVkdUZXh0RnJhZ21lbnQmLCBib29sIGhhc1NlbGVjdGlvbiwgYm9vbCBw
YWludFNlbGVjdGVkVGV4dE9ubHkpOworICAgIHZvaWQgcGFpbnRUZXh0V2l0aFNoYWRvd3MoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgUmVuZGVyU3R5bGUmLCBUZXh0UnVuJiwgY29uc3QgU1ZHVGV4
dEZyYWdtZW50JiwgaW50IHN0YXJ0UG9zaXRpb24sIGludCBlbmRQb3NpdGlvbik7CisgICAgdm9p
ZCBwYWludFRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBS
ZW5kZXJTdHlsZSYgc2VsZWN0aW9uU3R5bGUsIGNvbnN0IFNWR1RleHRGcmFnbWVudCYsIGJvb2wg
aGFzU2VsZWN0aW9uLCBib29sIHBhaW50U2VsZWN0ZWRUZXh0T25seSk7CiAKICAgICB2aXJ0dWFs
IGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0Jiwg
Y29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQ
b2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBs
aW5lQm90dG9tKSBvdmVycmlkZTsKIAo=
</data>
<flag name="review"
          id="255155"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>