<?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>125548</bug_id>
          
          <creation_ts>2013-12-10 15:31:04 -0800</creation_ts>
          <short_desc>[CSS Shapes] Simplify the BoxShape implementation</short_desc>
          <delta_ts>2013-12-18 17:52:35 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Hans Muller">giles_joplin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>958542</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-12-10 15:31:04 -0800</bug_when>
    <thetext>This change is similar to https://bugs.webkit.org/show_bug.cgi?id=125536.

Instead of caching the FloatRoundedRects which represent the BoxShape&apos;s shape-padding and shape-margin boundaries, just compute them as needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958782</commentid>
    <comment_count>1</comment_count>
      <attachid>218974</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-12-11 10:20:11 -0800</bug_when>
    <thetext>Created attachment 218974
Patch

Reduce BoxShape&apos;s footprint by about 2/3rds. Instead of caching the FloatRoundedRects which represent a BoxShape&apos;s shape-padding and shape-margin boundaries, compute them as needed.

No new tests, this is just an internal refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960982</commentid>
    <comment_count>2</comment_count>
      <attachid>218974</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-12-18 10:21:15 -0800</bug_when>
    <thetext>Comment on attachment 218974
Patch

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

r=me

&gt; Source/WebCore/rendering/shapes/BoxShape.h:41
&gt; +        : Shape()

This line can be omitted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961191</commentid>
    <comment_count>3</comment_count>
      <attachid>219592</attachid>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2013-12-18 17:20:00 -0800</bug_when>
    <thetext>Created attachment 219592
Patch

Resync.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961201</commentid>
    <comment_count>4</comment_count>
      <attachid>219592</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-18 17:52:33 -0800</bug_when>
    <thetext>Comment on attachment 219592
Patch

Clearing flags on attachment: 219592

Committed r160814: &lt;http://trac.webkit.org/changeset/160814&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961202</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-18 17:52:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218974</attachid>
            <date>2013-12-11 10:20:11 -0800</date>
            <delta_ts>2013-12-18 17:20:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>9001</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YmJlZWZlLi4wNjA1ZGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTMtMTItMTEgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAg
ICAgW0NTUyBTaGFwZXNdIFNpbXBsaWZ5IHRoZSBCb3hTaGFwZSBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTQ4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVkdWNlIEJveFNo
YXBlJ3MgZm9vdHByaW50IGJ5IGFib3V0IDIvM3Jkcy4gSW5zdGVhZCBvZiBjYWNoaW5nIHRoZQor
ICAgICAgICBGbG9hdFJvdW5kZWRSZWN0cyB3aGljaCByZXByZXNlbnQgYSBCb3hTaGFwZSdzIHNo
YXBlLXBhZGRpbmcgYW5kIHNoYXBlLW1hcmdpbgorICAgICAgICBib3VuZGFyaWVzLCBjb21wdXRl
IHRoZW0gYXMgbmVlZGVkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBpcyBqdXN0IGFu
IGludGVybmFsIHJlZmFjdG9yaW5nLgorCisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9Cb3hT
aGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6c2hhcGVNYXJnaW5Mb2dpY2Fs
Qm91bmRpbmdCb3gpOiBOb3cganVzdCBjb21wdXRlcyB0aGUgYm91bmRpbmcgYm94IHJlY3QuCisg
ICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6c2hhcGVQYWRkaW5nTG9naWNhbEJvdW5kaW5nQm94
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6c2hhcGVNYXJnaW5Cb3VuZHMp
OiBSZW1vdmVkIHRoZSBjYWNoaW5nIGxvZ2ljLgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6
OnNoYXBlUGFkZGluZ0JvdW5kcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6
OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKTogVXNlIHRoZSBjb21wdXRlZCBtYXJnaW4gYm91bmRzLCBp
bnN0ZWFkIG9mIHRoZSBjYWNoZWQgb25lLgorICAgICAgICAoV2ViQ29yZTo6Qm94U2hhcGU6Omdl
dEluY2x1ZGVkSW50ZXJ2YWxzKTogRGl0dG8gKHBhZGRpbmcgYm91bmRzKS4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6
Qm94U2hhcGUpOiBTaW1wbGlmaWVkIHRoZSBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiByZW5kZXJp
bmcvc2hhcGVzL1NoYXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJveFNoYXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXBlOjpjcmVhdGVTaGFwZSk6CisKIDIwMTMtMTItMTEgIFRo
aWFnbyBkZSBCYXJyb3MgTGFjZXJkYSAgPHRoaWFnby5sYWNlcmRhQG9wZW5ib3NzYS5vcmc+CiAK
ICAgICAgICAgSW1wcm92aW5nIGNyZWF0ZU9mZmVyIGFuZCBjcmVhdGVBbnN3ZXIgTGF5b3V0VGVz
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKaW5kZXgg
MDExY2NjOS4uMjU0YjEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3No
YXBlcy9Cb3hTaGFwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9C
b3hTaGFwZS5jcHAKQEAgLTM0LDM2ICszNCw1NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUJveFNoYXBlOjpCb3hTaGFwZShjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMsIGZsb2F0
IHNoYXBlTWFyZ2luLCBmbG9hdCBzaGFwZVBhZGRpbmcpCi0gICAgOiBTaGFwZSgpCi0gICAgLCBt
X2JvdW5kcyhib3VuZHMpCi0gICAgLCBtX21hcmdpbkJvdW5kcyhib3VuZHMpCi0gICAgLCBtX3Bh
ZGRpbmdCb3VuZHMoYm91bmRzKQorTGF5b3V0UmVjdCBCb3hTaGFwZTo6c2hhcGVNYXJnaW5Mb2dp
Y2FsQm91bmRpbmdCb3goKSBjb25zdAogewotICAgIGlmIChzaGFwZU1hcmdpbiA+IDApIHsKLSAg
ICAgICAgbV9tYXJnaW5Cb3VuZHMuaW5mbGF0ZShzaGFwZU1hcmdpbik7Ci0gICAgICAgIG1fbWFy
Z2luQm91bmRzLmV4cGFuZFJhZGlpKHNoYXBlTWFyZ2luKTsKKyAgICBGbG9hdFJlY3QgbWFyZ2lu
Qm91bmRzKG1fYm91bmRzLnJlY3QoKSk7CisgICAgaWYgKHNoYXBlTWFyZ2luKCkgPiAwKQorICAg
ICAgICBtYXJnaW5Cb3VuZHMuaW5mbGF0ZShzaGFwZU1hcmdpbigpKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8TGF5b3V0UmVjdD4obWFyZ2luQm91bmRzKTsKK30KKworTGF5b3V0UmVjdCBCb3hT
aGFwZTo6c2hhcGVQYWRkaW5nTG9naWNhbEJvdW5kaW5nQm94KCkgY29uc3QKK3sKKyAgICBGbG9h
dFJlY3QgcGFkZGluZ0JvdW5kcyhtX2JvdW5kcy5yZWN0KCkpOworICAgIGlmIChzaGFwZVBhZGRp
bmcoKSA+IDApCisgICAgICAgIHBhZGRpbmdCb3VuZHMuaW5mbGF0ZSgtc2hhcGVQYWRkaW5nKCkp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0PihwYWRkaW5nQm91bmRzKTsKK30K
KworRmxvYXRSb3VuZGVkUmVjdCBCb3hTaGFwZTo6c2hhcGVNYXJnaW5Cb3VuZHMoKSBjb25zdAor
eworICAgIEZsb2F0Um91bmRlZFJlY3QgbWFyZ2luQm91bmRzKG1fYm91bmRzKTsKKyAgICBpZiAo
c2hhcGVNYXJnaW4oKSA+IDApIHsKKyAgICAgICAgbWFyZ2luQm91bmRzLmluZmxhdGUoc2hhcGVN
YXJnaW4oKSk7CisgICAgICAgIG1hcmdpbkJvdW5kcy5leHBhbmRSYWRpaShzaGFwZU1hcmdpbigp
KTsKICAgICB9Ci0gICAgaWYgKHNoYXBlUGFkZGluZyA+IDApIHsKLSAgICAgICAgbV9wYWRkaW5n
Qm91bmRzLmluZmxhdGUoLXNoYXBlUGFkZGluZyk7Ci0gICAgICAgIG1fcGFkZGluZ0JvdW5kcy5l
eHBhbmRSYWRpaSgtc2hhcGVQYWRkaW5nKTsKKyAgICByZXR1cm4gbWFyZ2luQm91bmRzOworfQor
CitGbG9hdFJvdW5kZWRSZWN0IEJveFNoYXBlOjpzaGFwZVBhZGRpbmdCb3VuZHMoKSBjb25zdAor
eworICAgIEZsb2F0Um91bmRlZFJlY3QgcGFkZGluZ0JvdW5kcyhtX2JvdW5kcyk7CisgICAgaWYg
KHNoYXBlUGFkZGluZygpID4gMCkgeworICAgICAgICBwYWRkaW5nQm91bmRzLmluZmxhdGUoLXNo
YXBlUGFkZGluZygpKTsKKyAgICAgICAgcGFkZGluZ0JvdW5kcy5leHBhbmRSYWRpaSgtc2hhcGVQ
YWRkaW5nKCkpOwogICAgIH0KKyAgICByZXR1cm4gcGFkZGluZ0JvdW5kczsKIH0KIAogdm9pZCBC
b3hTaGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21lbnRMaXN0JiByZXN1bHQpIGNvbnN0CiB7Ci0gICAg
aWYgKG1fbWFyZ2luQm91bmRzLmlzRW1wdHkoKSkKKyAgICBjb25zdCBGbG9hdFJvdW5kZWRSZWN0
JiBtYXJnaW5Cb3VuZHMgPSBzaGFwZU1hcmdpbkJvdW5kcygpOworICAgIGlmIChtYXJnaW5Cb3Vu
ZHMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBmbG9hdCB5MSA9IGxvZ2ljYWxU
b3A7CiAgICAgZmxvYXQgeTIgPSBsb2dpY2FsVG9wICsgbG9naWNhbEhlaWdodDsKLSAgICBjb25z
dCBGbG9hdFJlY3QmIHJlY3QgPSBtX21hcmdpbkJvdW5kcy5yZWN0KCk7CisgICAgY29uc3QgRmxv
YXRSZWN0JiByZWN0ID0gbWFyZ2luQm91bmRzLnJlY3QoKTsKIAogICAgIGlmICh5MiA8PSByZWN0
LnkoKSB8fCB5MSA+PSByZWN0Lm1heFkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFt
X21hcmdpbkJvdW5kcy5pc1JvdW5kZWQoKSkgewotICAgICAgICByZXN1bHQuYXBwZW5kKExpbmVT
ZWdtZW50KG1fbWFyZ2luQm91bmRzLnJlY3QoKS54KCksIG1fbWFyZ2luQm91bmRzLnJlY3QoKS5t
YXhYKCkpKTsKKyAgICBpZiAoIW1hcmdpbkJvdW5kcy5pc1JvdW5kZWQoKSkgeworICAgICAgICBy
ZXN1bHQuYXBwZW5kKExpbmVTZWdtZW50KG1hcmdpbkJvdW5kcy5yZWN0KCkueCgpLCBtYXJnaW5C
b3VuZHMucmVjdCgpLm1heFgoKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03Miwx
MiArOTMsMTIgQEAgdm9pZCBCb3hTaGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5p
dCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWkKICAgICBmbG9hdCBtaW5YSW50ZXJj
ZXB0OwogICAgIGZsb2F0IG1heFhJbnRlcmNlcHQ7CiAKLSAgICBpZiAobV9tYXJnaW5Cb3VuZHMu
eEludGVyY2VwdHNBdFkoeTEsIG1pblhJbnRlcmNlcHQsIG1heFhJbnRlcmNlcHQpKSB7CisgICAg
aWYgKG1hcmdpbkJvdW5kcy54SW50ZXJjZXB0c0F0WSh5MSwgbWluWEludGVyY2VwdCwgbWF4WElu
dGVyY2VwdCkpIHsKICAgICAgICAgeDEgPSBzdGQ6Om1pbjxmbG9hdD4oeDEsIG1pblhJbnRlcmNl
cHQpOwogICAgICAgICB4MiA9IHN0ZDo6bWF4PGZsb2F0Pih4MiwgbWF4WEludGVyY2VwdCk7CiAg
ICAgfQogCi0gICAgaWYgKG1fbWFyZ2luQm91bmRzLnhJbnRlcmNlcHRzQXRZKHkyLCBtaW5YSW50
ZXJjZXB0LCBtYXhYSW50ZXJjZXB0KSkgeworICAgIGlmIChtYXJnaW5Cb3VuZHMueEludGVyY2Vw
dHNBdFkoeTIsIG1pblhJbnRlcmNlcHQsIG1heFhJbnRlcmNlcHQpKSB7CiAgICAgICAgIHgxID0g
c3RkOjptaW48ZmxvYXQ+KHgxLCBtaW5YSW50ZXJjZXB0KTsKICAgICAgICAgeDIgPSBzdGQ6Om1h
eDxmbG9hdD4oeDIsIG1heFhJbnRlcmNlcHQpOwogICAgIH0KQEAgLTg4LDEwICsxMDksMTEgQEAg
dm9pZCBCb3hTaGFwZTo6Z2V0RXhjbHVkZWRJbnRlcnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9w
LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWkKIAogdm9pZCBCb3hTaGFwZTo6Z2V0SW5jbHVkZWRJbnRl
cnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNl
Z21lbnRMaXN0JiByZXN1bHQpIGNvbnN0CiB7Ci0gICAgaWYgKG1fcGFkZGluZ0JvdW5kcy5pc0Vt
cHR5KCkpCisgICAgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcGFkZGluZ0JvdW5kcyA9IHNoYXBl
UGFkZGluZ0JvdW5kcygpOworICAgIGlmIChwYWRkaW5nQm91bmRzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgY29uc3QgRmxvYXRSZWN0JiByZWN0ID0gbV9wYWRkaW5nQm91bmRz
LnJlY3QoKTsKKyAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3QgPSBwYWRkaW5nQm91bmRzLnJlY3Qo
KTsKICAgICBpZiAobG9naWNhbFRvcCA8IHJlY3QueSgpIHx8IGxvZ2ljYWxUb3AgKyBsb2dpY2Fs
SGVpZ2h0ID4gcmVjdC5tYXhZKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5oCmluZGV4IDZhZDhjNTUuLjIxYThiZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKQEAgLTM3LDEwICszNywx
NCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJveFNoYXBlIDogcHVibGljIFNoYXBl
IHsKIHB1YmxpYzoKLSAgICBCb3hTaGFwZShjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMs
IGZsb2F0IHNoYXBlTWFyZ2luLCBmbG9hdCBzaGFwZVBhZGRpbmcpOworICAgIEJveFNoYXBlKGNv
bnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcykKKyAgICAgICAgOiBTaGFwZSgpCisgICAgICAg
ICwgbV9ib3VuZHMoYm91bmRzKQorICAgIHsKKyAgICB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJl
Y3Qgc2hhcGVNYXJnaW5Mb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBzdGF0aWNfY2FzdDxMYXlvdXRSZWN0PihtX21hcmdpbkJvdW5kcy5yZWN0KCkpOyB9Ci0gICAg
dmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlUGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHN0YXRpY19jYXN0PExheW91dFJlY3Q+KG1fcGFkZGluZ0JvdW5k
cy5yZWN0KCkpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBlTWFyZ2luTG9naWNhbEJv
dW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNoYXBl
UGFkZGluZ0xvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBpc0VtcHR5KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9ib3VuZHMuaXNFbXB0eSgp
OyB9CiAgICAgdmlydHVhbCB2b2lkIGdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9n
aWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBTZWdtZW50TGlzdCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBnZXRJbmNsdWRlZEludGVydmFscyhMYXlvdXRVbml0
IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgU2VnbWVudExpc3QmKSBjb25z
dCBPVkVSUklERTsKQEAgLTQ5LDkgKzUzLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
YnVpbGRQYXRoKFBhdGgmKSBjb25zdCBPVkVSUklERTsKIAogcHJpdmF0ZToKKyAgICBGbG9hdFJv
dW5kZWRSZWN0IHNoYXBlTWFyZ2luQm91bmRzKCkgY29uc3Q7CisgICAgRmxvYXRSb3VuZGVkUmVj
dCBzaGFwZVBhZGRpbmdCb3VuZHMoKSBjb25zdDsKKwogICAgIEZsb2F0Um91bmRlZFJlY3QgbV9i
b3VuZHM7Ci0gICAgRmxvYXRSb3VuZGVkUmVjdCBtX21hcmdpbkJvdW5kczsKLSAgICBGbG9hdFJv
dW5kZWRSZWN0IG1fcGFkZGluZ0JvdW5kczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKaW5kZXggMzVkMjRlZC4u
YjE2MzFhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5jcHAKQEAg
LTQ2LDEwICs0NiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBQYXNzT3du
UHRyPFNoYXBlPiBjcmVhdGVCb3hTaGFwZShjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMs
IGZsb2F0IHNoYXBlTWFyZ2luLCBmbG9hdCBzaGFwZVBhZGRpbmcpCitzdGF0aWMgUGFzc093blB0
cjxTaGFwZT4gY3JlYXRlQm94U2hhcGUoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzKQog
ewogICAgIEFTU0VSVChib3VuZHMucmVjdCgpLndpZHRoKCkgPj0gMCAmJiBib3VuZHMucmVjdCgp
LmhlaWdodCgpID49IDApOwotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQm94U2hhcGUoYm91bmRz
LCBzaGFwZU1hcmdpbiwgc2hhcGVQYWRkaW5nKSk7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBC
b3hTaGFwZShib3VuZHMpKTsKIH0KIAogc3RhdGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVJl
Y3RhbmdsZVNoYXBlKGNvbnN0IEZsb2F0UmVjdCYgYm91bmRzLCBjb25zdCBGbG9hdFNpemUmIHJh
ZGlpKQpAQCAtMjQwLDEwICsyNDAsNyBAQCBQYXNzT3duUHRyPFNoYXBlPiBTaGFwZTo6Y3JlYXRl
U2hhcGUoY29uc3QgQmFzaWNTaGFwZSogYmFzaWNTaGFwZSwgY29uc3QgTGF5b3V0UwogICAgICAg
ICAgICAgcmVjdGFuZ2xlLT5ib3R0b21MZWZ0UmFkaXVzKCkuZmxvYXRTaXplKCksCiAgICAgICAg
ICAgICByZWN0YW5nbGUtPmJvdHRvbVJpZ2h0UmFkaXVzKCkuZmxvYXRTaXplKCkpOwogCi0gICAg
ICAgIGZsb2F0IHNoYXBlTWFyZ2luID0gZmxvYXRWYWx1ZUZvckxlbmd0aChtYXJnaW4sIDApOwot
ICAgICAgICBmbG9hdCBzaGFwZVBhZGRpbmcgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKHBhZGRpbmcs
IDApOwotCi0gICAgICAgIHNoYXBlID0gY3JlYXRlQm94U2hhcGUobG9naWNhbEJvdW5kcywgc2hh
cGVNYXJnaW4sIHNoYXBlUGFkZGluZyk7CisgICAgICAgIHNoYXBlID0gY3JlYXRlQm94U2hhcGUo
bG9naWNhbEJvdW5kcyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApAQCAtMzA1LDEzICszMDIs
MTEgQEAgUGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IFJvdW5kZWRS
ZWN0JiByb3VuZGVkUmVjdCwgV3JpdGluZ01vZGUKIHsKICAgICBGbG9hdFJlY3QgcmVjdCgwLCAw
LCByb3VuZGVkUmVjdC5yZWN0KCkud2lkdGgoKSwgcm91bmRlZFJlY3QucmVjdCgpLmhlaWdodCgp
KTsKICAgICBGbG9hdFJvdW5kZWRSZWN0IGJvdW5kcyhyZWN0LCByb3VuZGVkUmVjdC5yYWRpaSgp
LnRvcExlZnQoKSwgcm91bmRlZFJlY3QucmFkaWkoKS50b3BSaWdodCgpLCByb3VuZGVkUmVjdC5y
YWRpaSgpLmJvdHRvbUxlZnQoKSwgcm91bmRlZFJlY3QucmFkaWkoKS5ib3R0b21SaWdodCgpKTsK
LSAgICBmbG9hdCBzaGFwZU1hcmdpbiA9IGZsb2F0VmFsdWVGb3JMZW5ndGgobWFyZ2luLCAwKTsK
LSAgICBmbG9hdCBzaGFwZVBhZGRpbmcgPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKHBhZGRpbmcsIDAp
OwogCi0gICAgT3duUHRyPFNoYXBlPiBzaGFwZSA9IGNyZWF0ZUJveFNoYXBlKGJvdW5kcywgc2hh
cGVNYXJnaW4sIHNoYXBlUGFkZGluZyk7CisgICAgT3duUHRyPFNoYXBlPiBzaGFwZSA9IGNyZWF0
ZUJveFNoYXBlKGJvdW5kcyk7CiAgICAgc2hhcGUtPm1fd3JpdGluZ01vZGUgPSB3cml0aW5nTW9k
ZTsKLSAgICBzaGFwZS0+bV9tYXJnaW4gPSBzaGFwZU1hcmdpbjsKLSAgICBzaGFwZS0+bV9wYWRk
aW5nID0gc2hhcGVQYWRkaW5nOworICAgIHNoYXBlLT5tX21hcmdpbiA9IGZsb2F0VmFsdWVGb3JM
ZW5ndGgobWFyZ2luLCAwKTsKKyAgICBzaGFwZS0+bV9wYWRkaW5nID0gZmxvYXRWYWx1ZUZvckxl
bmd0aChwYWRkaW5nLCAwKTsKIAogICAgIHJldHVybiBzaGFwZS5yZWxlYXNlKCk7CiB9Cg==
</data>
<flag name="review"
          id="242612"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219592</attachid>
            <date>2013-12-18 17:20:00 -0800</date>
            <delta_ts>2013-12-18 17:52:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>10574</size>
            <attacher name="Hans Muller">giles_joplin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NzYyMGI3Li44ZTk1ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTMtMTItMTEgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CisKKyAgICAg
ICAgW0NTUyBTaGFwZXNdIFNpbXBsaWZ5IHRoZSBCb3hTaGFwZSBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1NTQ4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICBSZWR1Y2UgQm94U2hh
cGUncyBmb290cHJpbnQgYnkgYWJvdXQgMi8zcmRzLiBJbnN0ZWFkIG9mIGNhY2hpbmcgdGhlCisg
ICAgICAgIEZsb2F0Um91bmRlZFJlY3RzIHdoaWNoIHJlcHJlc2VudCBhIEJveFNoYXBlJ3Mgc2hh
cGUtcGFkZGluZyBhbmQgc2hhcGUtbWFyZ2luCisgICAgICAgIGJvdW5kYXJpZXMsIGNvbXB1dGUg
dGhlbSBhcyBuZWVkZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGp1c3QgYW4g
aW50ZXJuYWwgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL0JveFNo
YXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpzaGFwZU1hcmdpbkxvZ2ljYWxC
b3VuZGluZ0JveCk6IE5vdyBqdXN0IGNvbXB1dGVzIHRoZSBib3VuZGluZyBib3ggcmVjdC4KKyAg
ICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpzaGFwZVBhZGRpbmdMb2dpY2FsQm91bmRpbmdCb3gp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpzaGFwZU1hcmdpbkJvdW5kcyk6
IFJlbW92ZWQgdGhlIGNhY2hpbmcgbG9naWMuCisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6
c2hhcGVQYWRkaW5nQm91bmRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6
Z2V0RXhjbHVkZWRJbnRlcnZhbHMpOiBVc2UgdGhlIGNvbXB1dGVkIG1hcmdpbiBib3VuZHMsIGlu
c3RlYWQgb2YgdGhlIGNhY2hlZCBvbmUuCisgICAgICAgIChXZWJDb3JlOjpCb3hTaGFwZTo6Z2V0
SW5jbHVkZWRJbnRlcnZhbHMpOiBEaXR0byAocGFkZGluZyBib3VuZHMpLgorICAgICAgICAqIHJl
bmRlcmluZy9zaGFwZXMvQm94U2hhcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkJveFNoYXBlOjpC
b3hTaGFwZSk6IFNpbXBsaWZpZWQgdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAqIHJlbmRlcmlu
Zy9zaGFwZXMvU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQm94U2hhcGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcGU6OmNyZWF0ZVNoYXBlKToKKwogMjAxMy0xMi0xOCAgSGFu
cyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFNoYXBlc10gU2lt
cGxpZnkgUmVjdGFuZ2xlU2hhcGUgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKaW5kZXggNjY5ZjYxYS4uNmNmNGQ3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9Cb3hTaGFwZS5jcHAKQEAgLTM0LDM2ICsz
NCw1NCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUJveFNoYXBlOjpCb3hTaGFwZShjb25z
dCBGbG9hdFJvdW5kZWRSZWN0JiBib3VuZHMsIGZsb2F0IHNoYXBlTWFyZ2luLCBmbG9hdCBzaGFw
ZVBhZGRpbmcpCi0gICAgOiBTaGFwZSgpCi0gICAgLCBtX2JvdW5kcyhib3VuZHMpCi0gICAgLCBt
X21hcmdpbkJvdW5kcyhib3VuZHMpCi0gICAgLCBtX3BhZGRpbmdCb3VuZHMoYm91bmRzKQorTGF5
b3V0UmVjdCBCb3hTaGFwZTo6c2hhcGVNYXJnaW5Mb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdAog
ewotICAgIGlmIChzaGFwZU1hcmdpbiA+IDApIHsKLSAgICAgICAgbV9tYXJnaW5Cb3VuZHMuaW5m
bGF0ZShzaGFwZU1hcmdpbik7Ci0gICAgICAgIG1fbWFyZ2luQm91bmRzLmV4cGFuZFJhZGlpKHNo
YXBlTWFyZ2luKTsKKyAgICBGbG9hdFJlY3QgbWFyZ2luQm91bmRzKG1fYm91bmRzLnJlY3QoKSk7
CisgICAgaWYgKHNoYXBlTWFyZ2luKCkgPiAwKQorICAgICAgICBtYXJnaW5Cb3VuZHMuaW5mbGF0
ZShzaGFwZU1hcmdpbigpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TGF5b3V0UmVjdD4obWFy
Z2luQm91bmRzKTsKK30KKworTGF5b3V0UmVjdCBCb3hTaGFwZTo6c2hhcGVQYWRkaW5nTG9naWNh
bEJvdW5kaW5nQm94KCkgY29uc3QKK3sKKyAgICBGbG9hdFJlY3QgcGFkZGluZ0JvdW5kcyhtX2Jv
dW5kcy5yZWN0KCkpOworICAgIGlmIChzaGFwZVBhZGRpbmcoKSA+IDApCisgICAgICAgIHBhZGRp
bmdCb3VuZHMuaW5mbGF0ZSgtc2hhcGVQYWRkaW5nKCkpOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxMYXlvdXRSZWN0PihwYWRkaW5nQm91bmRzKTsKK30KKworRmxvYXRSb3VuZGVkUmVjdCBCb3hT
aGFwZTo6c2hhcGVNYXJnaW5Cb3VuZHMoKSBjb25zdAoreworICAgIEZsb2F0Um91bmRlZFJlY3Qg
bWFyZ2luQm91bmRzKG1fYm91bmRzKTsKKyAgICBpZiAoc2hhcGVNYXJnaW4oKSA+IDApIHsKKyAg
ICAgICAgbWFyZ2luQm91bmRzLmluZmxhdGUoc2hhcGVNYXJnaW4oKSk7CisgICAgICAgIG1hcmdp
bkJvdW5kcy5leHBhbmRSYWRpaShzaGFwZU1hcmdpbigpKTsKICAgICB9Ci0gICAgaWYgKHNoYXBl
UGFkZGluZyA+IDApIHsKLSAgICAgICAgbV9wYWRkaW5nQm91bmRzLmluZmxhdGUoLXNoYXBlUGFk
ZGluZyk7Ci0gICAgICAgIG1fcGFkZGluZ0JvdW5kcy5leHBhbmRSYWRpaSgtc2hhcGVQYWRkaW5n
KTsKKyAgICByZXR1cm4gbWFyZ2luQm91bmRzOworfQorCitGbG9hdFJvdW5kZWRSZWN0IEJveFNo
YXBlOjpzaGFwZVBhZGRpbmdCb3VuZHMoKSBjb25zdAoreworICAgIEZsb2F0Um91bmRlZFJlY3Qg
cGFkZGluZ0JvdW5kcyhtX2JvdW5kcyk7CisgICAgaWYgKHNoYXBlUGFkZGluZygpID4gMCkgewor
ICAgICAgICBwYWRkaW5nQm91bmRzLmluZmxhdGUoLXNoYXBlUGFkZGluZygpKTsKKyAgICAgICAg
cGFkZGluZ0JvdW5kcy5leHBhbmRSYWRpaSgtc2hhcGVQYWRkaW5nKCkpOwogICAgIH0KKyAgICBy
ZXR1cm4gcGFkZGluZ0JvdW5kczsKIH0KIAogdm9pZCBCb3hTaGFwZTo6Z2V0RXhjbHVkZWRJbnRl
cnZhbHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNl
Z21lbnRMaXN0JiByZXN1bHQpIGNvbnN0CiB7Ci0gICAgaWYgKG1fbWFyZ2luQm91bmRzLmlzRW1w
dHkoKSkKKyAgICBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiBtYXJnaW5Cb3VuZHMgPSBzaGFwZU1h
cmdpbkJvdW5kcygpOworICAgIGlmIChtYXJnaW5Cb3VuZHMuaXNFbXB0eSgpIHx8ICFsaW5lT3Zl
cmxhcHNTaGFwZU1hcmdpbkJvdW5kcyhsb2dpY2FsVG9wLCBsb2dpY2FsSGVpZ2h0KSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgZmxvYXQgeTEgPSBsb2dpY2FsVG9wOwogICAgIGZsb2F0IHkyID0g
bG9naWNhbFRvcCArIGxvZ2ljYWxIZWlnaHQ7Ci0gICAgY29uc3QgRmxvYXRSZWN0JiByZWN0ID0g
bV9tYXJnaW5Cb3VuZHMucmVjdCgpOworICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCA9IG1hcmdp
bkJvdW5kcy5yZWN0KCk7CiAKLSAgICBpZiAoeTIgPD0gcmVjdC55KCkgfHwgeTEgPj0gcmVjdC5t
YXhZKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghbV9tYXJnaW5Cb3VuZHMuaXNSb3Vu
ZGVkKCkpIHsKLSAgICAgICAgcmVzdWx0LmFwcGVuZChMaW5lU2VnbWVudChtX21hcmdpbkJvdW5k
cy5yZWN0KCkueCgpLCBtX21hcmdpbkJvdW5kcy5yZWN0KCkubWF4WCgpKSk7CisgICAgaWYgKCFt
YXJnaW5Cb3VuZHMuaXNSb3VuZGVkKCkpIHsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChMaW5lU2Vn
bWVudChyZWN0LngoKSwgcmVjdC5tYXhYKCkpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNzIsMTIgKzkwLDEyIEBAIHZvaWQgQm94U2hhcGU6OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExh
eW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpCiAgICAgZmxvYXQgbWlu
WEludGVyY2VwdDsKICAgICBmbG9hdCBtYXhYSW50ZXJjZXB0OwogCi0gICAgaWYgKG1fbWFyZ2lu
Qm91bmRzLnhJbnRlcmNlcHRzQXRZKHkxLCBtaW5YSW50ZXJjZXB0LCBtYXhYSW50ZXJjZXB0KSkg
eworICAgIGlmIChtYXJnaW5Cb3VuZHMueEludGVyY2VwdHNBdFkoeTEsIG1pblhJbnRlcmNlcHQs
IG1heFhJbnRlcmNlcHQpKSB7CiAgICAgICAgIHgxID0gc3RkOjptaW48ZmxvYXQ+KHgxLCBtaW5Y
SW50ZXJjZXB0KTsKICAgICAgICAgeDIgPSBzdGQ6Om1heDxmbG9hdD4oeDIsIG1heFhJbnRlcmNl
cHQpOwogICAgIH0KIAotICAgIGlmIChtX21hcmdpbkJvdW5kcy54SW50ZXJjZXB0c0F0WSh5Miwg
bWluWEludGVyY2VwdCwgbWF4WEludGVyY2VwdCkpIHsKKyAgICBpZiAobWFyZ2luQm91bmRzLnhJ
bnRlcmNlcHRzQXRZKHkyLCBtaW5YSW50ZXJjZXB0LCBtYXhYSW50ZXJjZXB0KSkgewogICAgICAg
ICB4MSA9IHN0ZDo6bWluPGZsb2F0Pih4MSwgbWluWEludGVyY2VwdCk7CiAgICAgICAgIHgyID0g
c3RkOjptYXg8ZmxvYXQ+KHgyLCBtYXhYSW50ZXJjZXB0KTsKICAgICB9CkBAIC04OCwxOCArMTA2
LDE5IEBAIHZvaWQgQm94U2hhcGU6OmdldEV4Y2x1ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9n
aWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpCiAKIHZvaWQgQm94U2hhcGU6OmdldEluY2x1
ZGVkSW50ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0LCBTZWdtZW50TGlzdCYgcmVzdWx0KSBjb25zdAogewotICAgIGlmIChtX3BhZGRpbmdCb3Vu
ZHMuaXNFbXB0eSgpKQorICAgIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHBhZGRpbmdCb3VuZHMg
PSBzaGFwZVBhZGRpbmdCb3VuZHMoKTsKKyAgICBpZiAocGFkZGluZ0JvdW5kcy5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybjsKIAorICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCA9IHBhZGRpbmdC
b3VuZHMucmVjdCgpOwogICAgIGZsb2F0IHkxID0gbG9naWNhbFRvcDsKICAgICBmbG9hdCB5MiA9
IGxvZ2ljYWxUb3AgKyBsb2dpY2FsSGVpZ2h0OwotICAgIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCA9
IG1fcGFkZGluZ0JvdW5kcy5yZWN0KCk7CiAKICAgICBpZiAoeTEgPCByZWN0LnkoKSB8fCB5MiA+
IHJlY3QubWF4WSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fcGFkZGluZ0JvdW5k
cy5pc1JvdW5kZWQoKSkgewotICAgICAgICByZXN1bHQuYXBwZW5kKExpbmVTZWdtZW50KG1fcGFk
ZGluZ0JvdW5kcy5yZWN0KCkueCgpLCBtX3BhZGRpbmdCb3VuZHMucmVjdCgpLm1heFgoKSkpOwor
ICAgIGlmICghcGFkZGluZ0JvdW5kcy5pc1JvdW5kZWQoKSkgeworICAgICAgICByZXN1bHQuYXBw
ZW5kKExpbmVTZWdtZW50KHJlY3QueCgpLCByZWN0Lm1heFgoKSkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xMDgsMTIgKzEyNywxMiBAQCB2b2lkIEJveFNoYXBlOjpnZXRJbmNsdWRl
ZEludGVydmFscyhMYXlvdXRVbml0IGxvZ2ljYWxUb3AsIExheW91dFVuaXQgbG9naWNhbEhlaQog
ICAgIGZsb2F0IG1pblhJbnRlcmNlcHQ7CiAgICAgZmxvYXQgbWF4WEludGVyY2VwdDsKIAotICAg
IGlmIChtX3BhZGRpbmdCb3VuZHMueEludGVyY2VwdHNBdFkoeTEsIG1pblhJbnRlcmNlcHQsIG1h
eFhJbnRlcmNlcHQpKSB7CisgICAgaWYgKHBhZGRpbmdCb3VuZHMueEludGVyY2VwdHNBdFkoeTEs
IG1pblhJbnRlcmNlcHQsIG1heFhJbnRlcmNlcHQpKSB7CiAgICAgICAgIHgxID0gc3RkOjptYXg8
ZmxvYXQ+KHgxLCBtaW5YSW50ZXJjZXB0KTsKICAgICAgICAgeDIgPSBzdGQ6Om1pbjxmbG9hdD4o
eDIsIG1heFhJbnRlcmNlcHQpOwogICAgIH0KIAotICAgIGlmIChtX3BhZGRpbmdCb3VuZHMueElu
dGVyY2VwdHNBdFkoeTIsIG1pblhJbnRlcmNlcHQsIG1heFhJbnRlcmNlcHQpKSB7CisgICAgaWYg
KHBhZGRpbmdCb3VuZHMueEludGVyY2VwdHNBdFkoeTIsIG1pblhJbnRlcmNlcHQsIG1heFhJbnRl
cmNlcHQpKSB7CiAgICAgICAgIHgxID0gc3RkOjptYXg8ZmxvYXQ+KHgxLCBtaW5YSW50ZXJjZXB0
KTsKICAgICAgICAgeDIgPSBzdGQ6Om1pbjxmbG9hdD4oeDIsIG1heFhJbnRlcmNlcHQpOwogICAg
IH0KQEAgLTEzNyw4ICsxNTYsMTAgQEAgc3RhdGljIHZvaWQgYWRkUm91bmRlZFJlY3QoUGF0aCYg
cGF0aCwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFJvdW5kZWQKIHZvaWQgQm94
U2hhcGU6OmJ1aWxkRGlzcGxheVBhdGhzKERpc3BsYXlQYXRocyYgcGF0aHMpIGNvbnN0CiB7CiAg
ICAgYWRkUm91bmRlZFJlY3QocGF0aHMuc2hhcGUsIG1fYm91bmRzLnJlY3QoKSwgbV9ib3VuZHMu
cmFkaWkoKSk7Ci0gICAgaWYgKHNoYXBlTWFyZ2luKCkpCi0gICAgICAgIGFkZFJvdW5kZWRSZWN0
KHBhdGhzLm1hcmdpblNoYXBlLCBtX21hcmdpbkJvdW5kcy5yZWN0KCksIG1fbWFyZ2luQm91bmRz
LnJhZGlpKCkpOworICAgIGlmIChzaGFwZU1hcmdpbigpKSB7CisgICAgICAgIGNvbnN0IEZsb2F0
Um91bmRlZFJlY3QmIG1hcmdpbkJvdW5kcyA9IHNoYXBlTWFyZ2luQm91bmRzKCk7CisgICAgICAg
IGFkZFJvdW5kZWRSZWN0KHBhdGhzLm1hcmdpblNoYXBlLCBtYXJnaW5Cb3VuZHMucmVjdCgpLCBt
YXJnaW5Cb3VuZHMucmFkaWkoKSk7CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL0JveFNoYXBlLmgKaW5kZXggNzUxNTZh
Ny4uOTU3NDY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9C
b3hTaGFwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvQm94U2hhcGUu
aApAQCAtMzcsMTAgKzM3LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQm94U2hh
cGUgOiBwdWJsaWMgU2hhcGUgewogcHVibGljOgotICAgIEJveFNoYXBlKGNvbnN0IEZsb2F0Um91
bmRlZFJlY3QmIGJvdW5kcywgZmxvYXQgc2hhcGVNYXJnaW4sIGZsb2F0IHNoYXBlUGFkZGluZyk7
CisgICAgQm94U2hhcGUoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzKQorICAgICAgICA6
IFNoYXBlKCkKKyAgICAgICAgLCBtX2JvdW5kcyhib3VuZHMpCisgICAgeworICAgIH0KIAotICAg
IHZpcnR1YWwgTGF5b3V0UmVjdCBzaGFwZU1hcmdpbkxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHN0YXRpY19jYXN0PExheW91dFJlY3Q+KG1fbWFyZ2luQm91bmRz
LnJlY3QoKSk7IH0KLSAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2hhcGVQYWRkaW5nTG9naWNhbEJv
dW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGF5b3V0UmVj
dD4obV9wYWRkaW5nQm91bmRzLnJlY3QoKSk7IH0KKyAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2hh
cGVNYXJnaW5Mb2dpY2FsQm91bmRpbmdCb3goKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IExheW91dFJlY3Qgc2hhcGVQYWRkaW5nTG9naWNhbEJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHkoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X2JvdW5kcy5pc0VtcHR5KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0RXhjbHVkZWRJbnRlcnZh
bHMoTGF5b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIFNlZ21l
bnRMaXN0JikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGdldEluY2x1ZGVkSW50
ZXJ2YWxzKExheW91dFVuaXQgbG9naWNhbFRvcCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBT
ZWdtZW50TGlzdCYpIGNvbnN0IE9WRVJSSURFOwpAQCAtNDksOSArNTMsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBidWlsZERpc3BsYXlQYXRocyhEaXNwbGF5UGF0aHMmKSBjb25zdCBP
VkVSUklERTsKIAogcHJpdmF0ZToKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHNoYXBlTWFyZ2luQm91
bmRzKCkgY29uc3Q7CisgICAgRmxvYXRSb3VuZGVkUmVjdCBzaGFwZVBhZGRpbmdCb3VuZHMoKSBj
b25zdDsKKwogICAgIEZsb2F0Um91bmRlZFJlY3QgbV9ib3VuZHM7Ci0gICAgRmxvYXRSb3VuZGVk
UmVjdCBtX21hcmdpbkJvdW5kczsKLSAgICBGbG9hdFJvdW5kZWRSZWN0IG1fcGFkZGluZ0JvdW5k
czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3NoYXBlcy9TaGFwZS5jcHAKaW5kZXggMzM0NTYyNmEuLjJhNzg5NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwCkBAIC00NiwxMCArNDYsMTAgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgUGFzc093blB0cjxTaGFwZT4gY3JlYXRlQm94U2hh
cGUoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgYm91bmRzLCBmbG9hdCBzaGFwZU1hcmdpbiwgZmxv
YXQgc2hhcGVQYWRkaW5nKQorc3RhdGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZUJveFNoYXBl
KGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIGJvdW5kcykKIHsKICAgICBBU1NFUlQoYm91bmRzLnJl
Y3QoKS53aWR0aCgpID49IDAgJiYgYm91bmRzLnJlY3QoKS5oZWlnaHQoKSA+PSAwKTsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IEJveFNoYXBlKGJvdW5kcywgc2hhcGVNYXJnaW4sIHNoYXBlUGFk
ZGluZykpOworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQm94U2hhcGUoYm91bmRzKSk7CiB9CiAK
IHN0YXRpYyBQYXNzT3duUHRyPFNoYXBlPiBjcmVhdGVSZWN0YW5nbGVTaGFwZShjb25zdCBGbG9h
dFJlY3QmIGJvdW5kcywgY29uc3QgRmxvYXRTaXplJiByYWRpaSkKQEAgLTI0MCwxMCArMjQwLDcg
QEAgUGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZVNoYXBlKGNvbnN0IEJhc2ljU2hhcGUq
IGJhc2ljU2hhcGUsIGNvbnN0IExheW91dFMKICAgICAgICAgICAgIHJlY3RhbmdsZS0+Ym90dG9t
TGVmdFJhZGl1cygpLmZsb2F0U2l6ZSgpLAogICAgICAgICAgICAgcmVjdGFuZ2xlLT5ib3R0b21S
aWdodFJhZGl1cygpLmZsb2F0U2l6ZSgpKTsKIAotICAgICAgICBmbG9hdCBzaGFwZU1hcmdpbiA9
IGZsb2F0VmFsdWVGb3JMZW5ndGgobWFyZ2luLCAwKTsKLSAgICAgICAgZmxvYXQgc2hhcGVQYWRk
aW5nID0gZmxvYXRWYWx1ZUZvckxlbmd0aChwYWRkaW5nLCAwKTsKLQotICAgICAgICBzaGFwZSA9
IGNyZWF0ZUJveFNoYXBlKGxvZ2ljYWxCb3VuZHMsIHNoYXBlTWFyZ2luLCBzaGFwZVBhZGRpbmcp
OworICAgICAgICBzaGFwZSA9IGNyZWF0ZUJveFNoYXBlKGxvZ2ljYWxCb3VuZHMpOwogICAgICAg
ICBicmVhazsKICAgICB9CiAKQEAgLTMwNSwxMyArMzAyLDExIEBAIFBhc3NPd25QdHI8U2hhcGU+
IFNoYXBlOjpjcmVhdGVTaGFwZShjb25zdCBSb3VuZGVkUmVjdCYgcm91bmRlZFJlY3QsIFdyaXRp
bmdNb2RlCiB7CiAgICAgRmxvYXRSZWN0IHJlY3QoMCwgMCwgcm91bmRlZFJlY3QucmVjdCgpLndp
ZHRoKCksIHJvdW5kZWRSZWN0LnJlY3QoKS5oZWlnaHQoKSk7CiAgICAgRmxvYXRSb3VuZGVkUmVj
dCBib3VuZHMocmVjdCwgcm91bmRlZFJlY3QucmFkaWkoKS50b3BMZWZ0KCksIHJvdW5kZWRSZWN0
LnJhZGlpKCkudG9wUmlnaHQoKSwgcm91bmRlZFJlY3QucmFkaWkoKS5ib3R0b21MZWZ0KCksIHJv
dW5kZWRSZWN0LnJhZGlpKCkuYm90dG9tUmlnaHQoKSk7Ci0gICAgZmxvYXQgc2hhcGVNYXJnaW4g
PSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1hcmdpbiwgMCk7Ci0gICAgZmxvYXQgc2hhcGVQYWRkaW5n
ID0gZmxvYXRWYWx1ZUZvckxlbmd0aChwYWRkaW5nLCAwKTsKIAotICAgIE93blB0cjxTaGFwZT4g
c2hhcGUgPSBjcmVhdGVCb3hTaGFwZShib3VuZHMsIHNoYXBlTWFyZ2luLCBzaGFwZVBhZGRpbmcp
OworICAgIE93blB0cjxTaGFwZT4gc2hhcGUgPSBjcmVhdGVCb3hTaGFwZShib3VuZHMpOwogICAg
IHNoYXBlLT5tX3dyaXRpbmdNb2RlID0gd3JpdGluZ01vZGU7Ci0gICAgc2hhcGUtPm1fbWFyZ2lu
ID0gc2hhcGVNYXJnaW47Ci0gICAgc2hhcGUtPm1fcGFkZGluZyA9IHNoYXBlUGFkZGluZzsKKyAg
ICBzaGFwZS0+bV9tYXJnaW4gPSBmbG9hdFZhbHVlRm9yTGVuZ3RoKG1hcmdpbiwgMCk7CisgICAg
c2hhcGUtPm1fcGFkZGluZyA9IGZsb2F0VmFsdWVGb3JMZW5ndGgocGFkZGluZywgMCk7CiAKICAg
ICByZXR1cm4gc2hhcGUucmVsZWFzZSgpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>