<?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>33431</bug_id>
          
          <creation_ts>2010-01-09 14:54:20 -0800</creation_ts>
          <short_desc>Web Inspector: Introduce support for flexible line height in the text editor.</short_desc>
          <delta_ts>2010-01-10 11:15:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>179052</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-09 14:54:20 -0800</bug_when>
    <thetext>This is required for displaying error / warning bubbles inline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179056</commentid>
    <comment_count>1</comment_count>
      <attachid>46223</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-09 14:59:35 -0800</bug_when>
    <thetext>Created attachment 46223
[PATCH] Proposed change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179156</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-01-10 11:15:46 -0800</bug_when>
    <thetext>Variation of this was landed (needed to cache line offsets of better performance).

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/front-end/TextEditor.js
Committed r53052</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46223</attachid>
            <date>2010-01-09 14:59:35 -0800</date>
            <delta_ts>2010-01-09 15:20:51 -0800</delta_ts>
            <desc>[PATCH] Proposed change</desc>
            <filename>flexible_line_height</filename>
            <type>text/plain</type>
            <size>18852</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDY3MWViMC4uODI3MzIwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzNiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEludHJvZHVjZSBzdXBwb3J0
IGZvciBmbGV4aWJsZSBsaW5lIGhlaWdodCBpbiB0aGUgdGV4dCBlZGl0b3IuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzNDMxCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5
cGUuX29mZnNldFRvTGluZU51bWJlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ci5wcm90b3R5cGUuX2xpbmVOdW1iZXJUb09mZnNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvci5wcm90b3R5cGUuX2xpbmVIZWlnaHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3IucHJvdG90eXBlLnJldmVhbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvci5wcm90b3R5cGUuX3NlbGVjdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl91cGRhdGVTaXplKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fcGFpbnRMaW5lcyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuX3BhaW50TGluZXNDb250aW51YXRpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9wYWludExpbmVOdW1iZXJz
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fcGFpbnRDdXJy
ZW50TGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuX3Nj
cm9sbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUuX3JlcGFp
bnRPblNjcm9sbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUu
X2NhcmV0Rm9yTW91c2VFdmVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5w
cm90b3R5cGUuX2hhbmRsZU5hdmlnYXRpb25LZXkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3IucHJvdG90eXBlLl91cGRhdGVDdXJzb3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3IucHJvdG90eXBlLl9pbnZhbGlkYXRlSGlnaGxpZ2h0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5fcGFpbnRTZWxlY3Rpb24pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLl9pbml0Rm9udCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVGV4dEN1cnNvci5wcm90b3R5cGUuc2V0VGV4dExpbmVIZWlnaHQpOgor
CisyMDEwLTAxLTA5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IERvIG5vdCByZXBhaW50IGxpbmUgbnVtYmVycyB3aGlsZSBlZGl0aW5nIHdpdGhpbiBsaW5l
LgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzQy
NwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanMg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcwppbmRleCBkYzU5ZjI1
Li43ZmY5NGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVk
aXRvci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qcwpA
QCAtODksNyArODksNiBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvciA9IGZ1bmN0aW9uKHBsYXRm
b3JtKQogICAgIC8vIERlYnVnZ2luZyBmbGFncywgYWxsb3cgZGlzYWJsaW5nIC8gZW5hYmxpbmcg
aGlnaGxpZ2h0cyBhbmQgdHJhY2sgcmVwYWludHMuCiAgICAgdGhpcy5faGlnaGxpZ2h0aW5nRW5h
YmxlZCA9IHRydWU7CiAgICAgdGhpcy5fZGVidWdNb2RlID0gZmFsc2U7Ci0gICAgdGhpcy5fbGlu
ZUFsaWdubWVudE9mZnNldCA9IDA7CiAKICAgICB0aGlzLl90ZXh0V2lkdGggPSAwOwogICAgIHRo
aXMuX2xvbmdlc3RMaW5lTnVtYmVyID0gMDsKQEAgLTExMSwyNiArMTEwLDQyIEBAIFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc2V0U2VsZWN0aW9u
RW5kKGVuZExpbmUsIGVuZENvbHVtbik7CiAgICAgfSwKIAorICAgIF9vZmZzZXRUb0xpbmVOdW1i
ZXI6IGZ1bmN0aW9uKG9mZnNldCkKKyAgICB7CisgICAgICAgIHZhciBsaW5lc0NvdW50ID0gdGhp
cy5fdGV4dE1vZGVsLmxpbmVzQ291bnQ7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBvZmZzZXQg
PiAwICYmIGkgPCBsaW5lc0NvdW50OyArK2kpCisgICAgICAgICAgICBvZmZzZXQgLT0gdGhpcy5f
bGluZUhlaWdodChpKTsKKyAgICAgICAgcmV0dXJuIGk7CisgICAgfSwKKworICAgIF9saW5lTnVt
YmVyVG9PZmZzZXQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCisgICAgeworICAgICAgICB2YXIgb2Zm
c2V0ID0gMDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaW5lTnVtYmVyOyArK2kpCisg
ICAgICAgICAgICBvZmZzZXQgKz0gdGhpcy5fbGluZUhlaWdodChpKTsKKyAgICAgICAgcmV0dXJu
IG9mZnNldDsKKyAgICB9LAorCisgICAgX2xpbmVIZWlnaHQ6IGZ1bmN0aW9uKGxpbmVOdW1iZXIp
CisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fZGVidWdNb2RlID8gdGhpcy5fdGV4dExpbmVI
ZWlnaHQgKiAoMSArIGxpbmVOdW1iZXIgJSAzKSA6IHRoaXMuX3RleHRMaW5lSGVpZ2h0OworICAg
IH0sCisKICAgICByZXZlYWw6IGZ1bmN0aW9uKGxpbmUsIGNvbHVtbikgewotICAgICAgICB2YXIg
Zmlyc3RMaW5lID0gdGhpcy5fc2Nyb2xsVG9wIC8gdGhpcy5fbGluZUhlaWdodDsKLSAgICAgICAg
dmFyIHZpc2libGVMaW5lcyA9IHRoaXMuX2NhbnZhcy5oZWlnaHQgLyB0aGlzLl9saW5lSGVpZ2h0
OwotICAgICAgICB2YXIgbWluVG9wID0gKGxpbmUgLSB2aXNpYmxlTGluZXMgKyAxKSAqIHRoaXMu
X2xpbmVIZWlnaHQ7Ci0gICAgICAgIHZhciBtYXhUb3AgPSBsaW5lICogdGhpcy5fbGluZUhlaWdo
dDsKLSAgICAgICAgaWYgKHRoaXMuX3Njcm9sbFRvcCA8IG1pblRvcCkgewotICAgICAgICAgICAg
dGhpcy5fbGluZUFsaWdubWVudE9mZnNldCA9IHRoaXMuX2NhbnZhcy5oZWlnaHQgJSB0aGlzLl9s
aW5lSGVpZ2h0OwotICAgICAgICAgICAgdGhpcy5fY29udGFpbmVyLnNjcm9sbFRvcCA9IG1pblRv
cDsKLSAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9zY3JvbGxUb3AgPiBtYXhUb3ApIHsKLSAgICAg
ICAgICAgIHRoaXMuX2xpbmVBbGlnbm1lbnRPZmZzZXQgPSAwOwotICAgICAgICAgICAgdGhpcy5f
Y29udGFpbmVyLnNjcm9sbFRvcCA9IG1heFRvcDsKLSAgICAgICAgfQorICAgICAgICB2YXIgbWF4
U2Nyb2xsVG9wID0gdGhpcy5fbGluZU51bWJlclRvT2Zmc2V0KGxpbmUpOworICAgICAgICB2YXIg
bWluU2Nyb2xsVG9wID0gbWF4U2Nyb2xsVG9wICsgdGhpcy5fbGluZUhlaWdodChsaW5lKSAtIHRo
aXMuX2NhbnZhcy5oZWlnaHQ7CisgICAgICAgIGlmICh0aGlzLl9zY3JvbGxUb3AgPiBtYXhTY3Jv
bGxUb3ApCisgICAgICAgICAgICB0aGlzLl9jb250YWluZXIuc2Nyb2xsVG9wID0gbWF4U2Nyb2xs
VG9wOworICAgICAgICBlbHNlIGlmICh0aGlzLl9zY3JvbGxUb3AgPCBtaW5TY3JvbGxUb3ApCisg
ICAgICAgICAgICB0aGlzLl9jb250YWluZXIuc2Nyb2xsVG9wID0gbWluU2Nyb2xsVG9wOwogCiAg
ICAgICAgIHZhciBmaXJzdENvbHVtbiA9IHRoaXMuX2NvbHVtbkZvck9mZnNldChsaW5lLCB0aGlz
Ll9zY3JvbGxMZWZ0KTsKLSAgICAgICAgdmFyIG1heExlZnQgPSB0aGlzLl9jb2x1bW5Ub09mZnNl
dChsaW5lLCBjb2x1bW4pOwotICAgICAgICB2YXIgbWluTGVmdCA9IG1heExlZnQgLSB0aGlzLl9j
b250YWluZXIuY2xpZW50V2lkdGggKyB0aGlzLl9saW5lTnVtYmVyT2Zmc2V0OwotICAgICAgICBp
ZiAodGhpcy5fc2Nyb2xsTGVmdCA8IG1pbkxlZnQpCi0gICAgICAgICAgICB0aGlzLl9jb250YWlu
ZXIuc2Nyb2xsTGVmdCA9IG1pbkxlZnQgKyAxMDA7Ci0gICAgICAgIGlmICh0aGlzLl9zY3JvbGxM
ZWZ0ID4gbWF4TGVmdCkKLSAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5zY3JvbGxMZWZ0ID0g
bWF4TGVmdDsKKyAgICAgICAgdmFyIG1heFNjcm9sbExlZnQgPSB0aGlzLl9jb2x1bW5Ub09mZnNl
dChsaW5lLCBjb2x1bW4pOworICAgICAgICB2YXIgbWluU2Nyb2xsTGVmdCA9IG1heFNjcm9sbExl
ZnQgLSB0aGlzLl9jb250YWluZXIuY2xpZW50V2lkdGggKyB0aGlzLl9saW5lTnVtYmVyT2Zmc2V0
OworICAgICAgICBpZiAodGhpcy5fc2Nyb2xsTGVmdCA8IG1pblNjcm9sbExlZnQpCisgICAgICAg
ICAgICB0aGlzLl9jb250YWluZXIuc2Nyb2xsTGVmdCA9IG1pblNjcm9sbExlZnQgKyAxMDA7Cisg
ICAgICAgIGlmICh0aGlzLl9zY3JvbGxMZWZ0ID4gbWF4U2Nyb2xsTGVmdCkKKyAgICAgICAgICAg
IHRoaXMuX2NvbnRhaW5lci5zY3JvbGxMZWZ0ID0gbWF4U2Nyb2xsTGVmdDsKICAgICB9LAogCiAg
ICAgLy8gV2ViSW5zcGVjdG9yLlRleHRNb2RlbCBsaXN0ZW5lcgpAQCAtMTU2LDYgKzE3MSw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIC8vIE5v
dGhpbmcgdG8gcmVwYWludC4KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCiAgICAg
ICAgIHRoaXMuX2ludmFsaWRhdGVMaW5lcyhvbGRSYW5nZS5zdGFydExpbmUsIG9sZFJhbmdlLmVu
ZExpbmUgKyAxKTsKICAgICAgICAgdGhpcy5faW52YWxpZGF0ZUxpbmVzKG5ld1JhbmdlLnN0YXJ0
TGluZSwgbmV3UmFuZ2UuZW5kTGluZSArIDEpOwogICAgICAgICB0aGlzLl9wYWludCgpOwpAQCAt
MTkwLDcgKzIwNiw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgfQogCiAgICAgICAgIHRoaXMuX3NoZWV0LnN0eWxlLndpZHRoID0gdGhpcy5fdGV4dFdp
ZHRoICsgdGhpcy5fbGluZU51bWJlck9mZnNldCArICJweCI7Ci0gICAgICAgIHRoaXMuX3NoZWV0
LnN0eWxlLmhlaWdodCA9IHRoaXMuX2xpbmVIZWlnaHQgKiB0aGlzLl90ZXh0TW9kZWwubGluZXND
b3VudCArICJweCI7CisgICAgICAgIHRoaXMuX3NoZWV0LnN0eWxlLmhlaWdodCA9IHRoaXMuX2xp
bmVOdW1iZXJUb09mZnNldCh0aGlzLl90ZXh0TW9kZWwubGluZXNDb3VudCkgKyAicHgiOwogCiAg
ICAgICAgIGlmICh0aGlzLl9jYW52YXMud2lkdGggIT09IHRoaXMuX2NvbnRhaW5lci5jbGllbnRX
aWR0aCB8fCB0aGlzLl9jYW52YXMuaGVpZ2h0ICE9PSB0aGlzLl9jb250YWluZXIuY2xpZW50SGVp
Z2h0IHx8IG5ld0xpbmVOdW1iZXJEaWdpdHMgIT09IHRoaXMuX2xpbmVOdW1iZXJEaWdpdHMpIHsK
ICAgICAgICAgICAgIHRoaXMuX2NhbnZhcy53aWR0aCA9IHRoaXMuX2NvbnRhaW5lci5jbGllbnRX
aWR0aDsKQEAgLTIzOSwxNyArMjU1LDE4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3Rv
dHlwZSA9IHsKICAgICB7CiAgICAgICAgIHRoaXMuX2N0eC5mb250ID0gdGhpcy5fZm9udDsKICAg
ICAgICAgdGhpcy5fY3R4LnRleHRCYXNlbGluZSA9ICJib3R0b20iOwotCi0gICAgICAgIGZpcnN0
TGluZSA9IE1hdGgubWF4KGZpcnN0TGluZSwgTWF0aC5mbG9vcih0aGlzLl9zY3JvbGxUb3AgLyB0
aGlzLl9saW5lSGVpZ2h0KSAtIDEpOwotICAgICAgICBsYXN0TGluZSA9IE1hdGgubWluKGxhc3RM
aW5lLCBNYXRoLmNlaWwoKHRoaXMuX3Njcm9sbFRvcCArIHRoaXMuX2NhbnZhcy5oZWlnaHQpIC8g
dGhpcy5fbGluZUhlaWdodCkgKyAxKTsKKyAgICAgICAgCisgICAgICAgIGZpcnN0TGluZSA9IE1h
dGgubWF4KGZpcnN0TGluZSwgdGhpcy5fb2Zmc2V0VG9MaW5lTnVtYmVyKHRoaXMuX3Njcm9sbFRv
cCkgLSAxKTsKKyAgICAgICAgbGFzdExpbmUgPSBNYXRoLm1pbihsYXN0TGluZSwgdGhpcy5fb2Zm
c2V0VG9MaW5lTnVtYmVyKHRoaXMuX3Njcm9sbFRvcCArIHRoaXMuX2NhbnZhcy5oZWlnaHQpICsg
MSk7CiAgICAgICAgIGlmIChmaXJzdExpbmUgPiBsYXN0TGluZSkKICAgICAgICAgICAgIHJldHVy
bjsKIAogICAgICAgICBpZiAodGhpcy5fZGVidWdNb2RlKSB7CiAgICAgICAgICAgICBXZWJJbnNw
ZWN0b3IubG9nKCJSZXBhaW50ICVkOiVkIiwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiAgICAgICAg
ICAgICB0aGlzLl9jdHguZmlsbFN0eWxlID0gInJnYigyNTUsMjU1LDApIjsKLSAgICAgICAgICAg
IHZhciBoZWlnaHQgPSAobGFzdExpbmUgLSBmaXJzdExpbmUpICogdGhpcy5fbGluZUhlaWdodDsK
LSAgICAgICAgICAgIHRoaXMuX2N0eC5maWxsUmVjdCh0aGlzLl9saW5lTnVtYmVyT2Zmc2V0IC0g
MSwgdGhpcy5fbGluZUhlaWdodCAqIGZpcnN0TGluZSAtIHRoaXMuX3Njcm9sbFRvcCwgdGhpcy5f
Y2FudmFzLndpZHRoIC0gdGhpcy5fbGluZU51bWJlck9mZnNldCArIDEsIGhlaWdodCk7CisgICAg
ICAgICAgICB2YXIgZnJvbU9mZnNldCA9IHRoaXMuX2xpbmVOdW1iZXJUb09mZnNldChmaXJzdExp
bmUpOworICAgICAgICAgICAgdmFyIHRvT2Zmc2V0ID0gdGhpcy5fbGluZU51bWJlclRvT2Zmc2V0
KGxhc3RMaW5lKTsKKyAgICAgICAgICAgIHRoaXMuX2N0eC5maWxsUmVjdCh0aGlzLl9saW5lTnVt
YmVyT2Zmc2V0IC0gMSwgZnJvbU9mZnNldCAtIHRoaXMuX3Njcm9sbFRvcCwgdGhpcy5fY2FudmFz
LndpZHRoIC0gdGhpcy5fbGluZU51bWJlck9mZnNldCArIDEsIHRvT2Zmc2V0IC0gZnJvbU9mZnNl
dCk7CiAgICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMuX3BhaW50TGluZXNDb250aW51YXRpb24u
YmluZCh0aGlzLCBmaXJzdExpbmUsIGxhc3RMaW5lKSwgMTAwKTsKICAgICAgICAgfSBlbHNlCiAg
ICAgICAgICAgICB0aGlzLl9wYWludExpbmVzQ29udGludWF0aW9uKGZpcnN0TGluZSwgbGFzdExp
bmUpOwpAQCAtMjYzLDExICsyODAsMTIgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90
eXBlID0gewogICAgICAgICB0aGlzLl9jdHguY2xpcCgpOwogCiAgICAgICAgIC8vIEZpcnN0IGNs
ZWFyIHRoZSByZWdpb24sIHRoZW4gdXBkYXRlIGxhc3QgbGluZSB0byBmaXQgbW9kZWwgKHRoaXMg
Y2xlYXJzIHJlbW92ZWQgbGluZXMgZnJvbSB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCkuCi0gICAg
ICAgIHZhciBoZWlnaHQgPSAobGFzdExpbmUgLSBmaXJzdExpbmUpICogdGhpcy5fbGluZUhlaWdo
dDsKKyAgICAgICAgdmFyIGZyb21PZmZzZXQgPSB0aGlzLl9saW5lTnVtYmVyVG9PZmZzZXQoZmly
c3RMaW5lKTsKKyAgICAgICAgdmFyIHRvT2Zmc2V0ID0gbGFzdExpbmUgPCB0aGlzLl90ZXh0TW9k
ZWwubGluZXNDb3VudCA/IHRoaXMuX2xpbmVOdW1iZXJUb09mZnNldChsYXN0TGluZSkgOiB0aGlz
Ll9jYW52YXMuaGVpZ2h0ICsgdGhpcy5fc2Nyb2xsVG9wOwogICAgICAgICAvLyBEbyBub3QgY2xl
YXIgcmVnaW9uIHdoZW4gcGFpbnRDdXJyZW50TGluZSBpcyBsaWtlbHkgdG8gZG8gYWxsIHRoZSBu
ZWNlc3Nhcnkgd29yay4KICAgICAgICAgaWYgKGZpcnN0TGluZSArIDEgIT0gbGFzdExpbmUgfHwg
dGhpcy5fc2VsZWN0aW9uLmVuZExpbmUgIT0gZmlyc3RMaW5lKSB7CiAgICAgICAgICAgICB0aGlz
Ll9jdHguZmlsbFN0eWxlID0gInJnYigyNTUsMjU1LDI1NSkiOwotICAgICAgICAgICAgdGhpcy5f
Y3R4LmZpbGxSZWN0KDAsIHRoaXMuX2xpbmVIZWlnaHQgKiBmaXJzdExpbmUgLSB0aGlzLl9zY3Jv
bGxUb3AsIHRoaXMuX2NhbnZhcy53aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgICAgIHRoaXMuX2N0
eC5maWxsUmVjdCgwLCBmcm9tT2Zmc2V0IC0gdGhpcy5fc2Nyb2xsVG9wLCB0aGlzLl9jYW52YXMu
d2lkdGgsIHRvT2Zmc2V0IC0gZnJvbU9mZnNldCk7CiAgICAgICAgIH0KICAgICAgICAgbGFzdExp
bmUgPSBNYXRoLm1pbihsYXN0TGluZSwgdGhpcy5fdGV4dE1vZGVsLmxpbmVzQ291bnQpOwogCkBA
IC0yODEsOCArMjk5LDEwIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsK
IAogICAgICAgICBmb3IgKHZhciBpID0gZmlyc3RMaW5lOyBpIDwgbGFzdExpbmU7ICsraSkgewog
ICAgICAgICAgICAgdmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShpKTsKKyAgICAgICAg
ICAgIHZhciBsaW5lT2Zmc2V0ID0gdGhpcy5fbGluZU51bWJlclRvT2Zmc2V0KGkpICsgdGhpcy5f
dGV4dExpbmVIZWlnaHQgLSB0aGlzLl9zY3JvbGxUb3A7CisKICAgICAgICAgICAgIGlmICghdGhp
cy5faGlnaGxpZ2h0aW5nRW5hYmxlZCkgewotICAgICAgICAgICAgICAgIHRoaXMuX2N0eC5maWxs
VGV4dChsaW5lLCB0aGlzLl9saW5lTnVtYmVyT2Zmc2V0IC0gdGhpcy5fc2Nyb2xsTGVmdCwgdGhp
cy5fbGluZUhlaWdodCAqIChpICsgMSkgLSB0aGlzLl9zY3JvbGxUb3ApOworICAgICAgICAgICAg
ICAgIHRoaXMuX2N0eC5maWxsVGV4dChsaW5lLCB0aGlzLl9saW5lTnVtYmVyT2Zmc2V0IC0gdGhp
cy5fc2Nyb2xsTGVmdCwgbGluZU9mZnNldCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICB9CiAKQEAgLTI5NywxNyArMzE3LDE3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRp
dG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICBpZiAocGxhaW5UZXh0U3RhcnQgIT09IC0xKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB0aGlzLl9jdHguZmlsbFN0eWxlID0gInJnYigwLDAsMCkiOwotICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fY3R4LmZpbGxUZXh0KGxpbmUuc3Vic3RyaW5nKHBsYWluVGV4dFN0YXJ0
LCBqKSwgdGhpcy5fbGluZU51bWJlck9mZnNldCAtIHRoaXMuX3Njcm9sbExlZnQgKyB0aGlzLl9j
b2x1bW5Ub09mZnNldChpLCBwbGFpblRleHRTdGFydCksIHRoaXMuX2xpbmVIZWlnaHQgKiAoaSAr
IDEpIC0gdGhpcy5fc2Nyb2xsVG9wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2N0
eC5maWxsVGV4dChsaW5lLnN1YnN0cmluZyhwbGFpblRleHRTdGFydCwgaiksIHRoaXMuX2xpbmVO
dW1iZXJPZmZzZXQgLSB0aGlzLl9zY3JvbGxMZWZ0ICsgdGhpcy5fY29sdW1uVG9PZmZzZXQoaSwg
cGxhaW5UZXh0U3RhcnQpLCBsaW5lT2Zmc2V0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHBs
YWluVGV4dFN0YXJ0ID0gLTE7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgdGhpcy5fY3R4LmZpbGxTdHlsZSA9IGF0dHJpYnV0ZS5zdHlsZTsKLSAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fY3R4LmZpbGxUZXh0KGxpbmUuc3Vic3RyaW5nKGosIGogKyBhdHRyaWJ1
dGUubGVuZ3RoKSwgdGhpcy5fbGluZU51bWJlck9mZnNldCAtIHRoaXMuX3Njcm9sbExlZnQgKyB0
aGlzLl9jb2x1bW5Ub09mZnNldChpLCBqKSwgdGhpcy5fbGluZUhlaWdodCAqIChpICsgMSkgLSB0
aGlzLl9zY3JvbGxUb3ApOworICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdHguZmlsbFRleHQo
bGluZS5zdWJzdHJpbmcoaiwgaiArIGF0dHJpYnV0ZS5sZW5ndGgpLCB0aGlzLl9saW5lTnVtYmVy
T2Zmc2V0IC0gdGhpcy5fc2Nyb2xsTGVmdCArIHRoaXMuX2NvbHVtblRvT2Zmc2V0KGksIGopLCBs
aW5lT2Zmc2V0KTsKICAgICAgICAgICAgICAgICAgICAgaiArPSBhdHRyaWJ1dGUubGVuZ3RoOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChwbGFpblRl
eHRTdGFydCAhPT0gLTEpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9jdHguZmlsbFN0eWxlID0g
InJnYigwLDAsMCkiOwotICAgICAgICAgICAgICAgIHRoaXMuX2N0eC5maWxsVGV4dChsaW5lLnN1
YnN0cmluZyhwbGFpblRleHRTdGFydCwgbGluZS5sZW5ndGgpLCB0aGlzLl9saW5lTnVtYmVyT2Zm
c2V0IC0gdGhpcy5fc2Nyb2xsTGVmdCArIHRoaXMuX2NvbHVtblRvT2Zmc2V0KGksIHBsYWluVGV4
dFN0YXJ0KSwgdGhpcy5fbGluZUhlaWdodCAqIChpICsgMSkgLSB0aGlzLl9zY3JvbGxUb3ApOwor
ICAgICAgICAgICAgICAgIHRoaXMuX2N0eC5maWxsVGV4dChsaW5lLnN1YnN0cmluZyhwbGFpblRl
eHRTdGFydCwgbGluZS5sZW5ndGgpLCB0aGlzLl9saW5lTnVtYmVyT2Zmc2V0IC0gdGhpcy5fc2Ny
b2xsTGVmdCArIHRoaXMuX2NvbHVtblRvT2Zmc2V0KGksIHBsYWluVGV4dFN0YXJ0KSwgbGluZU9m
ZnNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5fY3R4LnJlc3Rv
cmUoKTsKQEAgLTMxOSw0NCArMzM5LDI4IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgdGhpcy5fY3R4LnRleHRCYXNlbGluZSA9ICJib3R0b20iOwogCiAg
ICAgICAgIHRoaXMuX2N0eC5maWxsU3R5bGUgPSAicmdiKDI1NSwyNTUsMjU1KSI7Ci0gICAgICAg
IHRoaXMuX2N0eC5maWxsUmVjdCgwLCAwLCB0aGlzLl9saW5lTnVtYmVyT2Zmc2V0IC0gMywgdGhp
cy5fY2FudmFzLmhlaWdodCk7CisgICAgICAgIHRoaXMuX2N0eC5maWxsUmVjdCgwLCAwLCB0aGlz
Ll9saW5lTnVtYmVyT2Zmc2V0IC0gMiwgdGhpcy5fY2FudmFzLmhlaWdodCk7CiAKICAgICAgICAg
dGhpcy5fY3R4LmZpbGxTdHlsZSA9ICJyZ2IoMjM1LDIzNSwyMzUpIjsKICAgICAgICAgdGhpcy5f
Y3R4LmZpbGxSZWN0KHRoaXMuX2xpbmVOdW1iZXJPZmZzZXQgLSAyLCAwLCAxLCB0aGlzLl9jYW52
YXMuaGVpZ2h0KTsKIAotICAgICAgICB2YXIgZmlyc3RMaW5lID0gTWF0aC5taW4odGhpcy5fdGV4
dE1vZGVsLmxpbmVzQ291bnQsIE1hdGguZmxvb3IodGhpcy5fc2Nyb2xsVG9wIC8gdGhpcy5fbGlu
ZUhlaWdodCkgLSAxKTsKLSAgICAgICAgdmFyIGxhc3RMaW5lID0gTWF0aC5taW4odGhpcy5fdGV4
dE1vZGVsLmxpbmVzQ291bnQsIE1hdGguY2VpbCgodGhpcy5fc2Nyb2xsVG9wICsgdGhpcy5fY2Fu
dmFzLmhlaWdodCkgLyB0aGlzLl9saW5lSGVpZ2h0KSArIDEpOworICAgICAgICB2YXIgZmlyc3RM
aW5lID0gTWF0aC5tYXgoMCwgdGhpcy5fb2Zmc2V0VG9MaW5lTnVtYmVyKHRoaXMuX3Njcm9sbFRv
cCkgLSAxKTsKKyAgICAgICAgdmFyIGxhc3RMaW5lID0gTWF0aC5taW4odGhpcy5fdGV4dE1vZGVs
LmxpbmVzQ291bnQsIHRoaXMuX29mZnNldFRvTGluZU51bWJlcih0aGlzLl9zY3JvbGxUb3AgKyB0
aGlzLl9jYW52YXMuaGVpZ2h0KSArIDEpOwogCiAgICAgICAgIHRoaXMuX2N0eC5maWxsU3R5bGUg
PSAicmdiKDE1NSwxNTUsMTU1KSI7CiAgICAgICAgIGZvciAodmFyIGkgPSBmaXJzdExpbmU7IGkg
PCBsYXN0TGluZTsgKytpKQotICAgICAgICAgICB0aGlzLl9jdHguZmlsbFRleHQoaSArIDEsICh0
aGlzLl9saW5lTnVtYmVyRGlnaXRzIC0gdGhpcy5fZGVjaW1hbERpZ2l0cyhpICsgMSkgKyAxKSAq
IHRoaXMuX2RpZ2l0V2lkdGgsIHRoaXMuX2xpbmVIZWlnaHQgKiAoaSArIDEpIC0gdGhpcy5fc2Ny
b2xsVG9wKTsKKyAgICAgICAgICAgdGhpcy5fY3R4LmZpbGxUZXh0KGkgKyAxLCAodGhpcy5fbGlu
ZU51bWJlckRpZ2l0cyAtIHRoaXMuX2RlY2ltYWxEaWdpdHMoaSArIDEpICsgMSkgKiB0aGlzLl9k
aWdpdFdpZHRoLCB0aGlzLl9saW5lTnVtYmVyVG9PZmZzZXQoaSkgKyB0aGlzLl90ZXh0TGluZUhl
aWdodCAtIHRoaXMuX3Njcm9sbFRvcCk7CiAgICAgfSwKIAogICAgIF9wYWludEN1cnJlbnRMaW5l
OiBmdW5jdGlvbihsaW5lKQogICAgIHsKICAgICAgICAgdGhpcy5fY3R4LmZpbGxTdHlsZSA9ICJy
Z2IoMjMyLCAyNDIsIDI1NCkiOwotICAgICAgICB0aGlzLl9jdHguZmlsbFJlY3QoMCwgdGhpcy5f
bGluZUhlaWdodCAqIGxpbmUgLSB0aGlzLl9zY3JvbGxUb3AsIHRoaXMuX2NhbnZhcy53aWR0aCwg
dGhpcy5fbGluZUhlaWdodCk7CisgICAgICAgIHRoaXMuX2N0eC5maWxsUmVjdCgwLCB0aGlzLl9s
aW5lTnVtYmVyVG9PZmZzZXQobGluZSkgLSB0aGlzLl9zY3JvbGxUb3AsIHRoaXMuX2NhbnZhcy53
aWR0aCwgdGhpcy5fbGluZUhlaWdodChsaW5lKSk7CiAgICAgICAgIHRoaXMuX2N0eC5maWxsU3R5
bGUgPSAicmdiKDAsIDAsIDApIjsKICAgICB9LAogCiAgICAgX3Njcm9sbDogZnVuY3Rpb24oZSkK
ICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9tdXRlU2Nyb2xsKQotICAgICAgICAgICAgcmV0dXJu
OwotCi0gICAgICAgIGlmICh0aGlzLl9jb250YWluZXIuc2Nyb2xsVG9wID09PSAwKQotICAgICAg
ICAgICAgdGhpcy5fbGluZUFsaWdubWVudE9mZnNldCA9IDA7Ci0gICAgICAgIGVsc2UgaWYgKHRo
aXMuX2NvbnRhaW5lci5zY3JvbGxUb3AgKyB0aGlzLl9jb250YWluZXIuY2xpZW50SGVpZ2h0ID09
PSB0aGlzLl90ZXh0TW9kZWwubGluZXNDb3VudCAqIHRoaXMuX2xpbmVIZWlnaHQpCi0gICAgICAg
ICAgICB0aGlzLl9saW5lQWxpZ25tZW50T2Zmc2V0ID0gdGhpcy5fY29udGFpbmVyLnNjcm9sbFRv
cCAlIHRoaXMuX2xpbmVIZWlnaHQ7Ci0KLSAgICAgICAgLy8gRW5mb3JjZSBsaW5lIGFsaWdubWVu
dC4KLSAgICAgICAgaWYgKHRoaXMuX2NvbnRhaW5lci5zY3JvbGxUb3AgJSB0aGlzLl9saW5lSGVp
Z2h0ICE9PSB0aGlzLl9saW5lQWxpZ25tZW50T2Zmc2V0KSB7Ci0gICAgICAgICAgICB2YXIgbGlu
ZXNPZmZzZXQgPSBNYXRoLmZsb29yKHRoaXMuX2NvbnRhaW5lci5zY3JvbGxUb3AgLyB0aGlzLl9s
aW5lSGVpZ2h0KTsKLSAgICAgICAgICAgIHRoaXMuX211dGVTY3JvbGwgPSB0cnVlOwotICAgICAg
ICAgICAgdGhpcy5fY29udGFpbmVyLnNjcm9sbFRvcCA9IGxpbmVzT2Zmc2V0ICogdGhpcy5fbGlu
ZUhlaWdodCArIHRoaXMuX2xpbmVBbGlnbm1lbnRPZmZzZXQ7Ci0gICAgICAgICAgICBkZWxldGUg
dGhpcy5fbXV0ZVNjcm9sbDsKLSAgICAgICAgfQotCiAgICAgICAgIC8vIEhpZGUgZGl2LWJhc2Vk
IGN1cnNvciBmaXJzdC4KICAgICAgICAgdGhpcy5fY3Vyc29yLl9jdXJzb3JFbGVtZW50LnN0eWxl
LmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgIHNldFRpbWVvdXQodGhpcy5fcmVwYWludE9uU2Ny
b2xsLmJpbmQodGhpcyksIDApOwpAQCAtMzY0LDcgKzM2OCw2IEBAIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yLnByb3RvdHlwZSA9IHsKIAogICAgIF9yZXBhaW50T25TY3JvbGw6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIHZhciBsaW5lc09mZnNldCA9IE1hdGguZmxvb3IodGhpcy5fY29udGFp
bmVyLnNjcm9sbFRvcCAvIHRoaXMuX2xpbmVIZWlnaHQpOwogICAgICAgICBpZiAodGhpcy5fc2Ny
b2xsVG9wICE9PSB0aGlzLl9jb250YWluZXIuc2Nyb2xsVG9wIHx8IHRoaXMuX3Njcm9sbExlZnQg
IT09IHRoaXMuX2NvbnRhaW5lci5zY3JvbGxMZWZ0KSB7CiAgICAgICAgICAgICB0aGlzLl9zY3Jv
bGxUb3AgPSB0aGlzLl9jb250YWluZXIuc2Nyb2xsVG9wOwogICAgICAgICAgICAgdGhpcy5fc2Ny
b2xsTGVmdCA9IHRoaXMuX2NvbnRhaW5lci5zY3JvbGxMZWZ0OwpAQCAtNDEwLDcgKzQxMyw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKIAogICAgIF9jYXJldEZvck1v
dXNlRXZlbnQ6IGZ1bmN0aW9uKGUpCiAgICAgewotICAgICAgICB2YXIgbGluZU51bWJlciA9IE1h
dGguZmxvb3IoKGUueSArIHRoaXMuX3Njcm9sbFRvcCAtIDQpIC8gdGhpcy5fbGluZUhlaWdodCk7
CisgICAgICAgIHZhciBsaW5lTnVtYmVyID0gTWF0aC5tYXgoMCwgdGhpcy5fb2Zmc2V0VG9MaW5l
TnVtYmVyKGUueSArIHRoaXMuX3Njcm9sbFRvcCkgLSAxKTsKICAgICAgICAgdmFyIGxpbmUgPSB0
aGlzLl90ZXh0TW9kZWwubGluZShsaW5lTnVtYmVyKTsKICAgICAgICAgdmFyIG9mZnNldCA9IGUu
eCArIHRoaXMuX3Njcm9sbExlZnQgLSB0aGlzLl9saW5lTnVtYmVyT2Zmc2V0IC0gdGhpcy5fZGln
aXRXaWR0aDsKICAgICAgICAgcmV0dXJuIHsgbGluZTogbGluZU51bWJlciwgY29sdW1uOiB0aGlz
Ll9jb2x1bW5Gb3JPZmZzZXQobGluZU51bWJlciwgb2Zmc2V0KSB9OwpAQCAtNDg0LDEwICs0ODcs
MTQgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICAgICAg
ICAgIGlmIChlLm1ldGFLZXkpCiAgICAgICAgICAgICAgICAgICAgIGFycm93QWN0aW9uLmNhbGwo
dGhpcywgMCwgMCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZS5jdHJsS2V5KQot
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250YWluZXIuc2Nyb2xsVG9wIC09IHRoaXMuX2xp
bmVIZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5zY3JvbGxUb3Ag
LT0gdGhpcy5fbGluZUhlaWdodChjYXJldExpbmUpOwogICAgICAgICAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICB2YXIganVtcCA9IGUua2V5Q29kZSA9PT0ga2V5Q29kZXMuVXAg
PyAxIDogTWF0aC5mbG9vcih0aGlzLl9jYW52YXMuaGVpZ2h0IC8gdGhpcy5fbGluZUhlaWdodCk7
Ci0gICAgICAgICAgICAgICAgICAgIGFycm93QWN0aW9uLmNhbGwodGhpcywgY2FyZXRMaW5lIC0g
anVtcCwgdGhpcy5fZGVzaXJlZENhcmV0Q29sdW1uLCB0cnVlKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGUua2V5Q29kZSA9PT0ga2V5Q29kZXMuVXApCisgICAgICAgICAgICAgICAgICAgICAg
ICBhcnJvd0FjdGlvbi5jYWxsKHRoaXMsIGNhcmV0TGluZSAtIDEsIHRoaXMuX2Rlc2lyZWRDYXJl
dENvbHVtbiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAgICAgdmFyIG9mZnNldCA9IE1hdGgubWF4KDAsIHRoaXMuX2xpbmVOdW1iZXJUb09m
ZnNldChjYXJldExpbmUpIC0gdGhpcy5fY2FudmFzLmhlaWdodCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhcnJvd0FjdGlvbi5jYWxsKHRoaXMsIHRoaXMuX29mZnNldFRvTGluZU51bWJlcihv
ZmZzZXQpLCB0aGlzLl9kZXNpcmVkQ2FyZXRDb2x1bW4sIHRydWUpOworICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgY2FzZSBrZXlDb2Rlcy5Eb3duOgpAQCAtNDk1LDEwICs1MDIsMTQgQEAgV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGlmIChlLm1ldGFL
ZXkpCiAgICAgICAgICAgICAgICAgICAgIGFycm93QWN0aW9uLmNhbGwodGhpcywgdGhpcy5fdGV4
dE1vZGVsLmxpbmVzQ291bnQgLSAxLCB0aGlzLl90ZXh0TW9kZWwubGluZUxlbmd0aCh0aGlzLl90
ZXh0TW9kZWwubGluZXNDb3VudCAtIDEpLCB0cnVlKTsKICAgICAgICAgICAgICAgICBlbHNlIGlm
IChlLmN0cmxLZXkpCi0gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRhaW5lci5zY3JvbGxU
b3AgKz0gdGhpcy5fbGluZUhlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGFp
bmVyLnNjcm9sbFRvcCArPSB0aGlzLl9saW5lSGVpZ2h0KGNhcmV0TGluZSk7CiAgICAgICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBqdW1wID0gZS5rZXlDb2RlID09
PSBrZXlDb2Rlcy5Eb3duID8gMSA6IE1hdGguZmxvb3IodGhpcy5fY2FudmFzLmhlaWdodCAvIHRo
aXMuX2xpbmVIZWlnaHQpOwotICAgICAgICAgICAgICAgICAgICBhcnJvd0FjdGlvbi5jYWxsKHRo
aXMsIGNhcmV0TGluZSArIGp1bXAsIHRoaXMuX2Rlc2lyZWRDYXJldENvbHVtbiwgdHJ1ZSk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChlLmtleUNvZGUgPT09IGtleUNvZGVzLkRvd24pCisgICAg
ICAgICAgICAgICAgICAgICAgICBhcnJvd0FjdGlvbi5jYWxsKHRoaXMsIGNhcmV0TGluZSArIDEs
IHRoaXMuX2Rlc2lyZWRDYXJldENvbHVtbiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG9mZnNldCA9IHRoaXMuX2xpbmVOdW1i
ZXJUb09mZnNldChjYXJldExpbmUpICsgdGhpcy5fY2FudmFzLmhlaWdodDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFycm93QWN0aW9uLmNhbGwodGhpcywgdGhpcy5fb2Zmc2V0VG9MaW5lTnVt
YmVyKG9mZnNldCksIHRoaXMuX2Rlc2lyZWRDYXJldENvbHVtbiwgdHJ1ZSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIGtleUNvZGVzLkxlZnQ6CkBAIC01NzQsNyArNTg1LDcgQEAgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5fY29sdW1uVG9PZmZzZXQobGluZSwgY29sdW1uKTsKICAg
ICAgICAgaWYgKG9mZnNldCA+PSB0aGlzLl9jb250YWluZXIuc2Nyb2xsTGVmdCkKLSAgICAgICAg
ICAgIHRoaXMuX2N1cnNvci5zZXRMb2NhdGlvbih0aGlzLl9saW5lTnVtYmVyT2Zmc2V0ICsgb2Zm
c2V0IC0gMSwgbGluZSAqIHRoaXMuX2xpbmVIZWlnaHQpOworICAgICAgICAgICAgdGhpcy5fY3Vy
c29yLnNldExvY2F0aW9uKHRoaXMuX2xpbmVOdW1iZXJPZmZzZXQgKyBvZmZzZXQgLSAxLCB0aGlz
Ll9saW5lTnVtYmVyVG9PZmZzZXQobGluZSkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0
aGlzLl9jdXJzb3Iuc2V0TG9jYXRpb24oMCwgMCk7CiAgICAgfSwKQEAgLTU5MSw4ICs2MDIsOCBA
QCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBp
ZiAoIXRoaXMuX2hpZ2hsaWdodGluZ0VuYWJsZWQpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIHZhciBmaXJzdFZpc2libGVMaW5lID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcih0aGlzLl9z
Y3JvbGxUb3AgLyB0aGlzLl9saW5lSGVpZ2h0KSAtIDEpOwotICAgICAgICB2YXIgbGFzdFZpc2li
bGVMaW5lID0gTWF0aC5taW4odGhpcy5fdGV4dE1vZGVsLmxpbmVzQ291bnQsIE1hdGguY2VpbChm
aXJzdFZpc2libGVMaW5lICsgdGhpcy5fY2FudmFzLmhlaWdodCAvIHRoaXMuX2xpbmVIZWlnaHQg
KyAxKSk7CisgICAgICAgIHZhciBmaXJzdFZpc2libGVMaW5lID0gTWF0aC5tYXgoMCwgdGhpcy5f
b2Zmc2V0VG9MaW5lTnVtYmVyKHRoaXMuX3Njcm9sbFRvcCkgLSAxKTsKKyAgICAgICAgdmFyIGxh
c3RWaXNpYmxlTGluZSA9IE1hdGgubWluKHRoaXMuX3RleHRNb2RlbC5saW5lc0NvdW50LCB0aGlz
Ll9vZmZzZXRUb0xpbmVOdW1iZXIodGhpcy5fc2Nyb2xsVG9wICsgdGhpcy5fY2FudmFzLmhlaWdo
dCkgKyAxKTsKIAogICAgICAgICB2YXIgZGFtYWdlID0gdGhpcy5faGlnaGxpZ2h0ZXIuaGlnaGxp
Z2h0KHN0YXJ0TGluZSwgbGFzdFZpc2libGVMaW5lKTsKICAgICAgICAgZm9yICh2YXIgbGluZSBp
biBkYW1hZ2UpCkBAIC02MjUsNyArNjM2LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJv
dG90eXBlID0gewogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdG8gPSB0aGlz
Ll9jYW52YXMud2lkdGg7CiAKLSAgICAgICAgICAgIHRoaXMuX2N0eC5maWxsUmVjdChmcm9tLCB0
aGlzLl9saW5lSGVpZ2h0ICogaSAtIHRoaXMuX3Njcm9sbFRvcCwgdG8gLSBmcm9tLCB0aGlzLl9s
aW5lSGVpZ2h0KTsKKyAgICAgICAgICAgIHRoaXMuX2N0eC5maWxsUmVjdChmcm9tLCB0aGlzLl9s
aW5lTnVtYmVyVG9PZmZzZXQoaSkgLSB0aGlzLl9zY3JvbGxUb3AsIHRvIC0gZnJvbSwgdGhpcy5f
dGV4dExpbmVIZWlnaHQpOwogICAgICAgICB9CiAgICAgICAgIHRoaXMuX2N0eC5maWxsU3R5bGUg
PSAicmdiKDAsIDAsIDApIjsKICAgICB9LApAQCAtNzIyLDggKzczMyw4IEBAIFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fY3R4LmZvbnQgPSB0aGlz
Ll9mb250OwogICAgICAgICB0aGlzLl9kaWdpdFdpZHRoID0gdGhpcy5fY3R4Lm1lYXN1cmVUZXh0
KCIwIikud2lkdGg7CiAKLSAgICAgICAgdGhpcy5fbGluZUhlaWdodCA9IE1hdGguZmxvb3IodGhp
cy5fZm9udFNpemUgKiAxLjQpOwotICAgICAgICB0aGlzLl9jdXJzb3Iuc2V0TGluZUhlaWdodCh0
aGlzLl9saW5lSGVpZ2h0KTsKKyAgICAgICAgdGhpcy5fdGV4dExpbmVIZWlnaHQgPSBNYXRoLmZs
b29yKHRoaXMuX2ZvbnRTaXplICogMS40KTsKKyAgICAgICAgdGhpcy5fY3Vyc29yLnNldFRleHRM
aW5lSGVpZ2h0KHRoaXMuX3RleHRMaW5lSGVpZ2h0KTsKICAgICB9LAogCiAgICAgX3JlZ2lzdGVy
U2hvcnRjdXRzOiBmdW5jdGlvbigpCkBAIC05MTMsOSArOTI0LDkgQEAgV2ViSW5zcGVjdG9yLlRl
eHRDdXJzb3IucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9wYWludCh0cnVlKTsKICAgICB9
LAogCi0gICAgc2V0TGluZUhlaWdodDogZnVuY3Rpb24obGluZUhlaWdodCkKKyAgICBzZXRUZXh0
TGluZUhlaWdodDogZnVuY3Rpb24odGV4dExpbmVIZWlnaHQpCiAgICAgewotICAgICAgICB0aGlz
Ll9jdXJzb3JFbGVtZW50LnN0eWxlLmhlaWdodCA9IGxpbmVIZWlnaHQgKyAicHgiOworICAgICAg
ICB0aGlzLl9jdXJzb3JFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRleHRMaW5lSGVpZ2h0ICsgInB4
IjsKICAgICB9LAogCiAgICAgX3BhaW50OiBmdW5jdGlvbihmb3JjZSkK
</data>
<flag name="review"
          id="28452"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>