<?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>78824</bug_id>
          
          <creation_ts>2012-02-16 09:09:44 -0800</creation_ts>
          <short_desc>[Qt][WK2] Allow partial updates</short_desc>
          <delta_ts>2012-02-17 03:09:28 -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>Layout and Rendering</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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>558253</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-16 09:09:44 -0800</bug_when>
    <thetext>Currently our updates include complete tiles, even when only a small part of the tile is updated. this creates unnecessary large uploads.
Since the original reason to do things this way is gone, we should only create buffers when we need them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558975</commentid>
    <comment_count>1</comment_count>
      <attachid>127538</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-16 23:57:28 -0800</bug_when>
    <thetext>Created attachment 127538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558979</commentid>
    <comment_count>2</comment_count>
      <attachid>127538</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-17 00:03:12 -0800</bug_when>
    <thetext>Comment on attachment 127538
Patch

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

Good morning ;)

&gt; Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp:510
&gt; +    ASSERT(!updateInfo.updateRects.isEmpty());

Would it perhaps make sense to ASSERT on size() == 1 instead of !isEmpty()? After all it looks like you&apos;re dealing with only one rect anyway?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559019</commentid>
    <comment_count>3</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-17 01:00:56 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit2/UIProcess/qt/LayerTreeHostProxyQt.cpp:510
&gt; &gt; +    ASSERT(!updateInfo.updateRects.isEmpty());
&gt; 
&gt; Would it perhaps make sense to ASSERT on size() == 1 instead of !isEmpty()? After all it looks like you&apos;re dealing with only one rect anyway?

Sure, why not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559035</commentid>
    <comment_count>4</comment_count>
      <attachid>127538</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2012-02-17 01:39:10 -0800</bug_when>
    <thetext>Comment on attachment 127538
Patch

r=me with the ASSERT suggestion :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559050</commentid>
    <comment_count>5</comment_count>
      <attachid>127552</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-17 02:02:53 -0800</bug_when>
    <thetext>Created attachment 127552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559085</commentid>
    <comment_count>6</comment_count>
      <attachid>127552</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 03:09:24 -0800</bug_when>
    <thetext>Comment on attachment 127552
Patch

Clearing flags on attachment: 127552

Committed r108055: &lt;http://trac.webkit.org/changeset/108055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559086</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 03:09:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127538</attachid>
            <date>2012-02-16 23:57:28 -0800</date>
            <delta_ts>2012-02-17 02:02:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>10110</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZjRmNzViLi5mYjUzZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQg
QEAKIDIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KIAorICAgICAgICBbUXRdW1dLMl0gQWxsb3cgcGFydGlhbCB1cGRhdGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyNAorCisgICAgICAgIEJp
dG1hcFRleHR1cmVHTCBzaG91bGQgbm90IHplcm8tZmlsbCB0aGUgdGV4dHVyZXMgd2hlbiByZXNl
dHRpbmcuCisgICAgICAgIFRoaXMgd2FzIG5lZWRlZCBpbiB0aGUgcHJldmlvdXMgYnVmZmVyIG1h
bmFnZW1lbnQgc3lzdGVtLCB3aGVyZSB0ZXh0dXJlIHdlcmUgbm90IGNvbXBsZXRlbHkKKyAgICAg
ICAgZmlsbGVkIGJ5IHRoZSBiYWNraW5nIHN0b3JlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyBiZWhhdmlvci4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoQml0
bWFwVGV4dHVyZUdMKToKKyAgICAgICAgKFdlYkNvcmU6OnRleFN1YkltYWdlMkRSZXNvdXJjZVNh
ZmUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
R0w6OnJlc2V0KToKKworMjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRo
YWxAbm9raWEuY29tPgorCiAgICAgICAgIFtUZXhtYXBdIEltcHJvdmUgdGhlIHdheSB3ZSBkZWFs
IHdpdGggQkdSQSBleHRlbnNpb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc4ODIyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggZTk5MWJmNy4u
NmFkZGVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTU3OSwxOSArNTc5LDYgQEAgY29u
c3QgY2hhciogVGV4dHVyZU1hcHBlckdMOjp0eXBlKCkgY29uc3QKICAgICByZXR1cm4gIk9wZW5H
TCI7CiB9CiAKLS8vIFRoaXMgZnVuY3Rpb24gaXMgc2ltaWxhciB3aXRoIEdyYXBoaWNzQ29udGV4
dDNEOjp0ZXhJbWFnZTJEUmVzb3VyY2VTYWZlLgotc3RhdGljIHZvaWQgdGV4SW1hZ2UyRFJlc291
cmNlU2FmZShzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpCi17Ci0gICAgY29uc3QgaW50IHBp
eGVsU2l6ZSA9IDQ7IC8vIFJHQkEKLSAgICBPd25BcnJheVB0cjx1bnNpZ25lZCBjaGFyPiB6ZXJv
OwotICAgIGlmICh3aWR0aCAmJiBoZWlnaHQpIHsKLSAgICAgICAgdW5zaWduZWQgaW50IHNpemUg
PSB3aWR0aCAqIGhlaWdodCAqIHBpeGVsU2l6ZTsKLSAgICAgICAgemVybyA9IGFkb3B0QXJyYXlQ
dHIobmV3IHVuc2lnbmVkIGNoYXJbc2l6ZV0pOwotICAgICAgICBtZW1zZXQoemVyby5nZXQoKSwg
MCwgc2l6ZSk7Ci0gICAgfQotICAgIEdMX0NNRChnbFRleEltYWdlMkQoR0xfVEVYVFVSRV8yRCwg
MCwgR0xfUkdCQSwgd2lkdGgsIGhlaWdodCwgMCwgR0xfUkdCQSwgR0xfVU5TSUdORURfQllURSwg
emVyby5nZXQoKSkpCi19Ci0KIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpyZXNldChjb25zdCBJbnRT
aXplJiBuZXdTaXplLCBib29sIG9wYXF1ZSkKIHsKICAgICBCaXRtYXBUZXh0dXJlOjpyZXNldChu
ZXdTaXplLCBvcGFxdWUpOwpAQCAtNjA5LDcgKzU5Niw3IEBAIHZvaWQgQml0bWFwVGV4dHVyZUdM
OjpyZXNldChjb25zdCBJbnRTaXplJiBuZXdTaXplLCBib29sIG9wYXF1ZSkKICAgICAgICAgR0xf
Q01EKGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIs
IEdMX0xJTkVBUikpCiAgICAgICAgIEdMX0NNRChnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8y
RCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpKQogICAgICAgICBHTF9DTUQo
Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFN
UF9UT19FREdFKSkKLSAgICAgICAgdGV4SW1hZ2UyRFJlc291cmNlU2FmZShtX3RleHR1cmVTaXpl
LndpZHRoKCksIG1fdGV4dHVyZVNpemUuaGVpZ2h0KCkpOworICAgICAgICBHTF9DTUQoZ2xUZXhJ
bWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIEdMX1JHQkEsIG1fdGV4dHVyZVNpemUud2lkdGgoKSwg
bV90ZXh0dXJlU2l6ZS5oZWlnaHQoKSwgMCwgR0xfUkdCQSwgR0xfVU5TSUdORURfQllURSwgMCkp
CiAgICAgfQogICAgIG1fYWN0dWFsU2l6ZSA9IG5ld1NpemU7CiAgICAgbV9yZWxhdGl2ZVNpemUg
PSBGbG9hdFNpemUoZmxvYXQobmV3U2l6ZS53aWR0aCgpKSAvIG1fdGV4dHVyZVNpemUud2lkdGgo
KSwgZmxvYXQobmV3U2l6ZS5oZWlnaHQoKSkgLyBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBlM2UzNWM2Li43ZjIyN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAK
IDIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4K
IAorICAgICAgICBbUXRdW1dLMl0gQWxsb3cgcGFydGlhbCB1cGRhdGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyNAorCisgICAgICAgIEluc3Rl
YWQgb2YgdXNpbmcgVXBkYXRlSW5mbyB0byBmaWxsIHRoZSBlbnRpcmUgdGlsZSdzIHRleHR1cmUs
IHdlIHVzZSBpdCBhcyBhIHBhdGNoIHRoYXQKKyAgICAgICAgY29udGFpbnMgb25seSB0aGUgZGly
dHkgcmVjdGFuZ2xlIG9mIHRoZSBjdXJyZW50IHBhaW50LiBUaGlzIHJlcXVpcmVzIGEgbG90IGxl
c3MgbWVtb3J5CisgICAgICAgIGZvciBzbWFsbCB1cGRhdGVzLCBmb3IgZXhhbXBsZSB3aGVuIHR5
cGluZyBhIHRleHQgaW4gYW4gaW5wdXQgZmllbGQuCisgICAgICAgIFRoaXMgc2hvd3MgYSBzaWdu
aWZpY2FudCByZWR1Y3Rpb24gaW4gb3ZlcmhlYWQgd2hlbiB0ZXN0aW5nIG9uIE1hYyB3aXRoIElu
c3RydW1lbnRzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpzd2FwQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyQmFja2luZ1N0b3JlVGlsZTo6c2V0QmFja0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpMYXllckJhY2tpbmdTdG9yZTo6dXBkYXRlVGlsZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChMYXllckJh
Y2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJv
eHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVGls
ZUZvckxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3Rv
cmVSZW1vdGVUaWxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGlsZWRCYWNraW5nU3RvcmVSZW1v
dGVUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKToKKworMjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFs
ICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgorCiAgICAgICAgIFtUZXhtYXBdIEltcHJvdmUg
dGhlIHdheSB3ZSBkZWFsIHdpdGggQkdSQSBleHRlbnNpb24KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODIyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvTGF5ZXJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGFhNjRhZDIuLjFiYTNl
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0
b3JlLmNwcApAQCAtMzQsMjAgKzM0LDM1IEBAIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpz
d2FwQnVmZmVycyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQogICAgIGlm
ICghbV9iYWNrQnVmZmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgdGFyZ2V0
UmVjdCA9IG1fdGFyZ2V0UmVjdDsKKyAgICBGbG9hdFJlY3QgdGFyZ2V0UmVjdChtX3RhcmdldFJl
Y3QpOwogICAgIHRhcmdldFJlY3Quc2NhbGUoMS4gLyBtX3NjYWxlKTsKLSAgICBzZXRSZWN0KHRh
cmdldFJlY3QpOworICAgIGJvb2wgc2hvdWxkUmVzZXQgPSBmYWxzZTsKKyAgICBpZiAodGFyZ2V0
UmVjdCAhPSByZWN0KCkpIHsKKyAgICAgICAgc2V0UmVjdCh0YXJnZXRSZWN0KTsKKyAgICAgICAg
c2hvdWxkUmVzZXQgPSB0cnVlOworICAgIH0KICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4
dHVyZSA9IHRoaXMtPnRleHR1cmUoKTsKICAgICBpZiAoIXRleHR1cmUpIHsKICAgICAgICAgdGV4
dHVyZSA9IHRleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUoKTsKICAgICAgICAgc2V0VGV4dHVy
ZSh0ZXh0dXJlLmdldCgpKTsKKyAgICAgICAgc2hvdWxkUmVzZXQgPSB0cnVlOwogICAgIH0KIAot
ICAgIHRleHR1cmUtPnJlc2V0KGVuY2xvc2luZ0ludFJlY3QobV9zb3VyY2VSZWN0KS5zaXplKCks
IGZhbHNlKTsKLSAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhtX2JhY2tCdWZmZXItPmNyZWF0
ZVFJbWFnZSgpLmNvbnN0Qml0cygpLCBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fYmFja0J1
ZmZlci0+c2l6ZSgpKSk7CisgICAgLy8gRklYTUU6IGNyZWF0ZSBhbiBvcGFxdWUgdGV4dHVyZSB3
aGVuIHRoZSBiaXRtYXAgaXMgb3BhcXVlLgorICAgIGlmIChzaG91bGRSZXNldCkKKyAgICAgICAg
dGV4dHVyZS0+cmVzZXQobV9zb3VyY2VSZWN0LnNpemUoKSwgZmFsc2UgLyogb3BhcXVlICovKTsK
KworICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1fYmFja0J1ZmZlci0+Y3JlYXRlUUltYWdl
KCkuY29uc3RCaXRzKCksIG1fc291cmNlUmVjdCk7CiAgICAgbV9iYWNrQnVmZmVyLmNsZWFyKCk7
CiB9CiAKK3ZvaWQgTGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpzZXRCYWNrQnVmZmVyKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJj
ZVJlY3QsIFNoYXJlYWJsZUJpdG1hcCogYnVmZmVyKQoreworICAgIG1fc291cmNlUmVjdCA9IHNv
dXJjZVJlY3Q7CisgICAgbV90YXJnZXRSZWN0ID0gdGFyZ2V0UmVjdDsKKyAgICBtX2JhY2tCdWZm
ZXIgPSBidWZmZXI7Cit9CisKIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmU6OmNyZWF0ZVRpbGUoaW50
IGlkLCBmbG9hdCBzY2FsZSkKIHsKICAgICBtX3RpbGVzLmFkZChpZCwgTGF5ZXJCYWNraW5nU3Rv
cmVUaWxlKHNjYWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
TGF5ZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllckJh
Y2tpbmdTdG9yZS5oCmluZGV4IDgwM2E4ZDMuLmU2MmZjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5oCkBAIC0zNywxNyArMzcsMTIgQEAg
cHVibGljOgogCiAgICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2Fs
ZTsgfQogICAgIHZvaWQgc3dhcEJ1ZmZlcnMoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciopOwotICAg
IHZvaWQgc2V0QmFja0J1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2UsIFNoYXJlYWJsZUJpdG1hcCogYnVmZmVyKQot
ICAgIHsKLSAgICAgICAgbV90YXJnZXRSZWN0ID0gdGFyZ2V0OwotICAgICAgICBtX3NvdXJjZVJl
Y3QgPSBzb3VyY2U7Ci0gICAgICAgIG1fYmFja0J1ZmZlciA9IGJ1ZmZlcjsKLSAgICB9CisgICAg
dm9pZCBzZXRCYWNrQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgU2hhcmVhYmxlQml0bWFwKiBidWZmZXIpOwogCiBwcml2YXRlOgogICAgIFJl
ZlB0cjxTaGFyZWFibGVCaXRtYXA+IG1fYmFja0J1ZmZlcjsKLSAgICBXZWJDb3JlOjpGbG9hdFJl
Y3QgbV9zb3VyY2VSZWN0OwotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX3RhcmdldFJlY3Q7Cisg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX3NvdXJjZVJlY3Q7CisgICAgV2ViQ29yZTo6SW50UmVjdCBt
X3RhcmdldFJlY3Q7CiAgICAgZmxvYXQgbV9zY2FsZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCmluZGV4IDZlNmFh
NmEuLmMzOGQxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXll
clRyZWVIb3N0UHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xh
eWVyVHJlZUhvc3RQcm94eVF0LmNwcApAQCAtNTA3LDcgKzUwNyw4IEBAIHZvaWQgTGF5ZXJUcmVl
SG9zdFByb3h5Ojp1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQsIGNv
bnN0IFdlYktpCiAgICAgZGF0YS5sYXllcklEID0gbGF5ZXJJRDsKICAgICBkYXRhLnJlbW90ZVRp
bGVJRCA9IHRpbGVJRDsKICAgICBkYXRhLmJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRl
KHVwZGF0ZUluZm8uYml0bWFwSGFuZGxlKTsKLSAgICBkYXRhLnNvdXJjZVJlY3QgPSBJbnRSZWN0
KEludFBvaW50Ojp6ZXJvKCksIHVwZGF0ZUluZm8udXBkYXRlUmVjdEJvdW5kcy5zaXplKCkpOwor
ICAgIEFTU0VSVCghdXBkYXRlSW5mby51cGRhdGVSZWN0cy5pc0VtcHR5KCkpOworICAgIGRhdGEu
c291cmNlUmVjdCA9IHVwZGF0ZUluZm8udXBkYXRlUmVjdHMuZmlyc3QoKTsKICAgICBkYXRhLnRh
cmdldFJlY3QgPSB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RCb3VuZHM7CiAgICAgcHVzaFVwZGF0ZVRv
UXVldWUoVXBkYXRlVGlsZU1lc3NhZ2U6OmNyZWF0ZShkYXRhKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVU
aWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdT
dG9yZVJlbW90ZVRpbGUuY3BwCmluZGV4IGRkMDNhMGUuLmVlMTE2YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRp
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tp
bmdTdG9yZVJlbW90ZVRpbGUuY3BwCkBAIC03MiwyNCArNzIsMTcgQEAgVmVjdG9yPEludFJlY3Q+
IFRpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZTo6dXBkYXRlQmFja0J1ZmZlcigpCiAgICAgaWYg
KCFpc0RpcnR5KCkpCiAgICAgICAgIHJldHVybiBWZWN0b3I8SW50UmVjdD4oKTsKIAotICAgIC8v
IEZJWE1FOiBPbmx5IHVzZSBhIGxvY2FsIGJ1ZmZlciB3aGVuIHdlIGtub3cgdGhlIHRpbGUgaXMg
YW5pbWF0ZWQgKGFmdGVyIHRoZSBmaXJzdCBpbnZhbGlkYXRlKQotICAgIC8vIGFuZCBkZXN0cm95
IGl0IGFmdGVyIGEgZmV3IHNlY29uZHMgb2YgaW5hY3Rpdml0eS4gV2UgY2FuIHJlbmRlciBkaXJl
Y3RseSB0byBzaGFyZWQKLSAgICAvLyBtZW1vcnkgaW4gb3RoZXIgY2FzZXMuCi0gICAgaWYgKCFt
X2xvY2FsQnVmZmVyIHx8IG1fbG9jYWxCdWZmZXItPnNpemUoKSAhPSBtX3JlY3Quc2l6ZSgpKSB7
Ci0gICAgICAgIG1fbG9jYWxCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKG1fcmVjdC5zaXpl
KCkpOwotICAgICAgICBtX2xvY2FsQnVmZmVyLT5jb250ZXh0KCktPnRyYW5zbGF0ZSgtbV9yZWN0
LngoKSwgLW1fcmVjdC55KCkpOwotICAgICAgICBtX2xvY2FsQnVmZmVyLT5jb250ZXh0KCktPnNj
YWxlKEZsb2F0U2l6ZShtX3RpbGVkQmFja2luZ1N0b3JlLT5jb250ZW50c1NjYWxlKCksIG1fdGls
ZWRCYWNraW5nU3RvcmUtPmNvbnRlbnRzU2NhbGUoKSkpOwotICAgIH0KLSAgICAvLyBUaGlzIGFz
c3VtZXMgdGhhdCB0aGUgR3JhcGhpY3NDb250ZXh0IG9uIHRoZSBJbWFnZUJ1ZmZlciBhY3RzIHN5
bmNocm9ub3VzbHkKLSAgICAvLyBmb3IgdXMgdG8gYmUgYWJsZSB0byBkcmF3IHRoaXMgYnVmZmVy
IG9uIHRoZSBTaGFyZWFibGVCaXRtYXAgcmlnaHQgYWZ0ZXIuCi0gICAgbV90aWxlZEJhY2tpbmdT
dG9yZS0+Y2xpZW50KCktPnRpbGVkQmFja2luZ1N0b3JlUGFpbnQobV9sb2NhbEJ1ZmZlci0+Y29u
dGV4dCgpLCBtX3RpbGVkQmFja2luZ1N0b3JlLT5tYXBUb0NvbnRlbnRzKG1fZGlydHlSZWN0KSk7
Ci0KLSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6
OmNyZWF0ZVNoYXJlYWJsZShtX3JlY3Quc2l6ZSgpLCBtX3RpbGVkQmFja2luZ1N0b3JlLT5zdXBw
b3J0c0FscGhhKCkgPyBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEgOiAwKTsKKyAgICBS
ZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZVNo
YXJlYWJsZShtX2RpcnR5UmVjdC5zaXplKCksIG1fdGlsZWRCYWNraW5nU3RvcmUtPnN1cHBvcnRz
QWxwaGEoKSA/IFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSA6IDApOwogICAgIE93blB0
cjxHcmFwaGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4dChiaXRtYXAtPmNyZWF0ZUdyYXBoaWNz
Q29udGV4dCgpKTsKLSAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihtX2xvY2Fs
QnVmZmVyLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgwLCAwKSk7CisgICAg
Z3JhcGhpY3NDb250ZXh0LT50cmFuc2xhdGUoLW1fZGlydHlSZWN0LngoKSwgLW1fZGlydHlSZWN0
LnkoKSk7CisgICAgZ3JhcGhpY3NDb250ZXh0LT5zY2FsZShGbG9hdFNpemUobV90aWxlZEJhY2tp
bmdTdG9yZS0+Y29udGVudHNTY2FsZSgpLCBtX3RpbGVkQmFja2luZ1N0b3JlLT5jb250ZW50c1Nj
YWxlKCkpKTsKKyAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5jbGllbnQoKS0+dGlsZWRCYWNraW5n
U3RvcmVQYWludChncmFwaGljc0NvbnRleHQuZ2V0KCksIG1fdGlsZWRCYWNraW5nU3RvcmUtPm1h
cFRvQ29udGVudHMobV9kaXJ0eVJlY3QpKTsKIAogICAgIFVwZGF0ZUluZm8gdXBkYXRlSW5mbzsK
ICAgICB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RCb3VuZHMgPSBtX3JlY3Q7CisgICAgSW50UmVjdCB1
cGRhdGVSZWN0ID0gbV9kaXJ0eVJlY3Q7CisgICAgdXBkYXRlUmVjdC5tb3ZlKC1tX3JlY3QueCgp
LCAtbV9yZWN0LnkoKSk7CisgICAgdXBkYXRlSW5mby51cGRhdGVSZWN0cy5hcHBlbmQodXBkYXRl
UmVjdCk7CiAgICAgdXBkYXRlSW5mby51cGRhdGVTY2FsZUZhY3RvciA9IG1fdGlsZWRCYWNraW5n
U3RvcmUtPmNvbnRlbnRzU2NhbGUoKTsKICAgICBiaXRtYXAtPmNyZWF0ZUhhbmRsZSh1cGRhdGVJ
bmZvLmJpdG1hcEhhbmRsZSk7CiAK
</data>
<flag name="review"
          id="129693"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127552</attachid>
            <date>2012-02-17 02:02:53 -0800</date>
            <delta_ts>2012-02-17 03:09:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>10111</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjZjRmNzViLi5mYjUzZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQg
QEAKIDIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KIAorICAgICAgICBbUXRdW1dLMl0gQWxsb3cgcGFydGlhbCB1cGRhdGVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyNAorCisgICAgICAgIEJp
dG1hcFRleHR1cmVHTCBzaG91bGQgbm90IHplcm8tZmlsbCB0aGUgdGV4dHVyZXMgd2hlbiByZXNl
dHRpbmcuCisgICAgICAgIFRoaXMgd2FzIG5lZWRlZCBpbiB0aGUgcHJldmlvdXMgYnVmZmVyIG1h
bmFnZW1lbnQgc3lzdGVtLCB3aGVyZSB0ZXh0dXJlIHdlcmUgbm90IGNvbXBsZXRlbHkKKyAgICAg
ICAgZmlsbGVkIGJ5IHRoZSBiYWNraW5nIHN0b3JlLgorCisgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEhhdXNtYW5uLgorCisgICAgICAgIE5vIG5ldyBiZWhhdmlvci4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoQml0
bWFwVGV4dHVyZUdMKToKKyAgICAgICAgKFdlYkNvcmU6OnRleFN1YkltYWdlMkRSZXNvdXJjZVNh
ZmUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJl
R0w6OnJlc2V0KToKKworMjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRo
YWxAbm9raWEuY29tPgorCiAgICAgICAgIFtUZXhtYXBdIEltcHJvdmUgdGhlIHdheSB3ZSBkZWFs
IHdpdGggQkdSQSBleHRlbnNpb24KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc4ODIyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggZTk5MWJmNy4u
NmFkZGVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTU3OSwxOSArNTc5LDYgQEAgY29u
c3QgY2hhciogVGV4dHVyZU1hcHBlckdMOjp0eXBlKCkgY29uc3QKICAgICByZXR1cm4gIk9wZW5H
TCI7CiB9CiAKLS8vIFRoaXMgZnVuY3Rpb24gaXMgc2ltaWxhciB3aXRoIEdyYXBoaWNzQ29udGV4
dDNEOjp0ZXhJbWFnZTJEUmVzb3VyY2VTYWZlLgotc3RhdGljIHZvaWQgdGV4SW1hZ2UyRFJlc291
cmNlU2FmZShzaXplX3Qgd2lkdGgsIHNpemVfdCBoZWlnaHQpCi17Ci0gICAgY29uc3QgaW50IHBp
eGVsU2l6ZSA9IDQ7IC8vIFJHQkEKLSAgICBPd25BcnJheVB0cjx1bnNpZ25lZCBjaGFyPiB6ZXJv
OwotICAgIGlmICh3aWR0aCAmJiBoZWlnaHQpIHsKLSAgICAgICAgdW5zaWduZWQgaW50IHNpemUg
PSB3aWR0aCAqIGhlaWdodCAqIHBpeGVsU2l6ZTsKLSAgICAgICAgemVybyA9IGFkb3B0QXJyYXlQ
dHIobmV3IHVuc2lnbmVkIGNoYXJbc2l6ZV0pOwotICAgICAgICBtZW1zZXQoemVyby5nZXQoKSwg
MCwgc2l6ZSk7Ci0gICAgfQotICAgIEdMX0NNRChnbFRleEltYWdlMkQoR0xfVEVYVFVSRV8yRCwg
MCwgR0xfUkdCQSwgd2lkdGgsIGhlaWdodCwgMCwgR0xfUkdCQSwgR0xfVU5TSUdORURfQllURSwg
emVyby5nZXQoKSkpCi19Ci0KIHZvaWQgQml0bWFwVGV4dHVyZUdMOjpyZXNldChjb25zdCBJbnRT
aXplJiBuZXdTaXplLCBib29sIG9wYXF1ZSkKIHsKICAgICBCaXRtYXBUZXh0dXJlOjpyZXNldChu
ZXdTaXplLCBvcGFxdWUpOwpAQCAtNjA5LDcgKzU5Niw3IEBAIHZvaWQgQml0bWFwVGV4dHVyZUdM
OjpyZXNldChjb25zdCBJbnRTaXplJiBuZXdTaXplLCBib29sIG9wYXF1ZSkKICAgICAgICAgR0xf
Q01EKGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIs
IEdMX0xJTkVBUikpCiAgICAgICAgIEdMX0NNRChnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8y
RCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpKQogICAgICAgICBHTF9DTUQo
Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9ULCBHTF9DTEFN
UF9UT19FREdFKSkKLSAgICAgICAgdGV4SW1hZ2UyRFJlc291cmNlU2FmZShtX3RleHR1cmVTaXpl
LndpZHRoKCksIG1fdGV4dHVyZVNpemUuaGVpZ2h0KCkpOworICAgICAgICBHTF9DTUQoZ2xUZXhJ
bWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIEdMX1JHQkEsIG1fdGV4dHVyZVNpemUud2lkdGgoKSwg
bV90ZXh0dXJlU2l6ZS5oZWlnaHQoKSwgMCwgR0xfUkdCQSwgR0xfVU5TSUdORURfQllURSwgMCkp
CiAgICAgfQogICAgIG1fYWN0dWFsU2l6ZSA9IG5ld1NpemU7CiAgICAgbV9yZWxhdGl2ZVNpemUg
PSBGbG9hdFNpemUoZmxvYXQobmV3U2l6ZS53aWR0aCgpKSAvIG1fdGV4dHVyZVNpemUud2lkdGgo
KSwgZmxvYXQobmV3U2l6ZS5oZWlnaHQoKSkgLyBtX3RleHR1cmVTaXplLmhlaWdodCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBlM2UzNWM2Li43ZjIyN2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAK
IDIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4K
IAorICAgICAgICBbUXRdW1dLMl0gQWxsb3cgcGFydGlhbCB1cGRhdGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyNAorCisgICAgICAgIEluc3Rl
YWQgb2YgdXNpbmcgVXBkYXRlSW5mbyB0byBmaWxsIHRoZSBlbnRpcmUgdGlsZSdzIHRleHR1cmUs
IHdlIHVzZSBpdCBhcyBhIHBhdGNoIHRoYXQKKyAgICAgICAgY29udGFpbnMgb25seSB0aGUgZGly
dHkgcmVjdGFuZ2xlIG9mIHRoZSBjdXJyZW50IHBhaW50LiBUaGlzIHJlcXVpcmVzIGEgbG90IGxl
c3MgbWVtb3J5CisgICAgICAgIGZvciBzbWFsbCB1cGRhdGVzLCBmb3IgZXhhbXBsZSB3aGVuIHR5
cGluZyBhIHRleHQgaW4gYW4gaW5wdXQgZmllbGQuCisgICAgICAgIFRoaXMgc2hvd3MgYSBzaWdu
aWZpY2FudCByZWR1Y3Rpb24gaW4gb3ZlcmhlYWQgd2hlbiB0ZXN0aW5nIG9uIE1hYyB3aXRoIElu
c3RydW1lbnRzLgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgorCisgICAg
ICAgICogVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpzd2FwQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyQmFja2luZ1N0b3JlVGlsZTo6c2V0QmFja0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpMYXllckJhY2tpbmdTdG9yZTo6dXBkYXRlVGlsZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChMYXllckJh
Y2tpbmdTdG9yZVRpbGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJv
eHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlVGls
ZUZvckxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3Rv
cmVSZW1vdGVUaWxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGlsZWRCYWNraW5nU3RvcmVSZW1v
dGVUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKToKKworMjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFs
ICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgorCiAgICAgICAgIFtUZXhtYXBdIEltcHJvdmUg
dGhlIHdheSB3ZSBkZWFsIHdpdGggQkdSQSBleHRlbnNpb24KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODIyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvTGF5ZXJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGFhNjRhZDIuLjFiYTNl
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0
b3JlLmNwcApAQCAtMzQsMjAgKzM0LDM1IEBAIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpz
d2FwQnVmZmVycyhXZWJDb3JlOjpUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQogICAgIGlm
ICghbV9iYWNrQnVmZmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFJlY3QgdGFyZ2V0
UmVjdCA9IG1fdGFyZ2V0UmVjdDsKKyAgICBGbG9hdFJlY3QgdGFyZ2V0UmVjdChtX3RhcmdldFJl
Y3QpOwogICAgIHRhcmdldFJlY3Quc2NhbGUoMS4gLyBtX3NjYWxlKTsKLSAgICBzZXRSZWN0KHRh
cmdldFJlY3QpOworICAgIGJvb2wgc2hvdWxkUmVzZXQgPSBmYWxzZTsKKyAgICBpZiAodGFyZ2V0
UmVjdCAhPSByZWN0KCkpIHsKKyAgICAgICAgc2V0UmVjdCh0YXJnZXRSZWN0KTsKKyAgICAgICAg
c2hvdWxkUmVzZXQgPSB0cnVlOworICAgIH0KICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4
dHVyZSA9IHRoaXMtPnRleHR1cmUoKTsKICAgICBpZiAoIXRleHR1cmUpIHsKICAgICAgICAgdGV4
dHVyZSA9IHRleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUoKTsKICAgICAgICAgc2V0VGV4dHVy
ZSh0ZXh0dXJlLmdldCgpKTsKKyAgICAgICAgc2hvdWxkUmVzZXQgPSB0cnVlOwogICAgIH0KIAot
ICAgIHRleHR1cmUtPnJlc2V0KGVuY2xvc2luZ0ludFJlY3QobV9zb3VyY2VSZWN0KS5zaXplKCks
IGZhbHNlKTsKLSAgICB0ZXh0dXJlLT51cGRhdGVDb250ZW50cyhtX2JhY2tCdWZmZXItPmNyZWF0
ZVFJbWFnZSgpLmNvbnN0Qml0cygpLCBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIG1fYmFja0J1
ZmZlci0+c2l6ZSgpKSk7CisgICAgLy8gRklYTUU6IGNyZWF0ZSBhbiBvcGFxdWUgdGV4dHVyZSB3
aGVuIHRoZSBiaXRtYXAgaXMgb3BhcXVlLgorICAgIGlmIChzaG91bGRSZXNldCkKKyAgICAgICAg
dGV4dHVyZS0+cmVzZXQobV9zb3VyY2VSZWN0LnNpemUoKSwgZmFsc2UgLyogb3BhcXVlICovKTsK
KworICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1fYmFja0J1ZmZlci0+Y3JlYXRlUUltYWdl
KCkuY29uc3RCaXRzKCksIG1fc291cmNlUmVjdCk7CiAgICAgbV9iYWNrQnVmZmVyLmNsZWFyKCk7
CiB9CiAKK3ZvaWQgTGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpzZXRCYWNrQnVmZmVyKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNvdXJj
ZVJlY3QsIFNoYXJlYWJsZUJpdG1hcCogYnVmZmVyKQoreworICAgIG1fc291cmNlUmVjdCA9IHNv
dXJjZVJlY3Q7CisgICAgbV90YXJnZXRSZWN0ID0gdGFyZ2V0UmVjdDsKKyAgICBtX2JhY2tCdWZm
ZXIgPSBidWZmZXI7Cit9CisKIHZvaWQgTGF5ZXJCYWNraW5nU3RvcmU6OmNyZWF0ZVRpbGUoaW50
IGlkLCBmbG9hdCBzY2FsZSkKIHsKICAgICBtX3RpbGVzLmFkZChpZCwgTGF5ZXJCYWNraW5nU3Rv
cmVUaWxlKHNjYWxlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
TGF5ZXJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllckJh
Y2tpbmdTdG9yZS5oCmluZGV4IDgwM2E4ZDMuLmU2MmZjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9MYXllckJhY2tpbmdTdG9yZS5oCkBAIC0zNywxNyArMzcsMTIgQEAg
cHVibGljOgogCiAgICAgaW5saW5lIGZsb2F0IHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2Fs
ZTsgfQogICAgIHZvaWQgc3dhcEJ1ZmZlcnMoV2ViQ29yZTo6VGV4dHVyZU1hcHBlciopOwotICAg
IHZvaWQgc2V0QmFja0J1ZmZlcihjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzb3VyY2UsIFNoYXJlYWJsZUJpdG1hcCogYnVmZmVyKQot
ICAgIHsKLSAgICAgICAgbV90YXJnZXRSZWN0ID0gdGFyZ2V0OwotICAgICAgICBtX3NvdXJjZVJl
Y3QgPSBzb3VyY2U7Ci0gICAgICAgIG1fYmFja0J1ZmZlciA9IGJ1ZmZlcjsKLSAgICB9CisgICAg
dm9pZCBzZXRCYWNrQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgU2hhcmVhYmxlQml0bWFwKiBidWZmZXIpOwogCiBwcml2YXRlOgogICAgIFJl
ZlB0cjxTaGFyZWFibGVCaXRtYXA+IG1fYmFja0J1ZmZlcjsKLSAgICBXZWJDb3JlOjpGbG9hdFJl
Y3QgbV9zb3VyY2VSZWN0OwotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBtX3RhcmdldFJlY3Q7Cisg
ICAgV2ViQ29yZTo6SW50UmVjdCBtX3NvdXJjZVJlY3Q7CisgICAgV2ViQ29yZTo6SW50UmVjdCBt
X3RhcmdldFJlY3Q7CiAgICAgZmxvYXQgbV9zY2FsZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCmluZGV4IDZlNmFh
NmEuLmMzOGQxNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXll
clRyZWVIb3N0UHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xh
eWVyVHJlZUhvc3RQcm94eVF0LmNwcApAQCAtNTA3LDcgKzUwNyw4IEBAIHZvaWQgTGF5ZXJUcmVl
SG9zdFByb3h5Ojp1cGRhdGVUaWxlRm9yTGF5ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQsIGNv
bnN0IFdlYktpCiAgICAgZGF0YS5sYXllcklEID0gbGF5ZXJJRDsKICAgICBkYXRhLnJlbW90ZVRp
bGVJRCA9IHRpbGVJRDsKICAgICBkYXRhLmJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRl
KHVwZGF0ZUluZm8uYml0bWFwSGFuZGxlKTsKLSAgICBkYXRhLnNvdXJjZVJlY3QgPSBJbnRSZWN0
KEludFBvaW50Ojp6ZXJvKCksIHVwZGF0ZUluZm8udXBkYXRlUmVjdEJvdW5kcy5zaXplKCkpOwor
ICAgIEFTU0VSVCh1cGRhdGVJbmZvLnVwZGF0ZVJlY3RzLnNpemUoKSA9PSAxKTsKKyAgICBkYXRh
LnNvdXJjZVJlY3QgPSB1cGRhdGVJbmZvLnVwZGF0ZVJlY3RzLmZpcnN0KCk7CiAgICAgZGF0YS50
YXJnZXRSZWN0ID0gdXBkYXRlSW5mby51cGRhdGVSZWN0Qm91bmRzOwogICAgIHB1c2hVcGRhdGVU
b1F1ZXVlKFVwZGF0ZVRpbGVNZXNzYWdlOjpjcmVhdGUoZGF0YSkpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3Rl
VGlsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5n
U3RvcmVSZW1vdGVUaWxlLmNwcAppbmRleCBkZDAzYTBlLi5lZTExNmMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVU
aWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNr
aW5nU3RvcmVSZW1vdGVUaWxlLmNwcApAQCAtNzIsMjQgKzcyLDE3IEBAIFZlY3RvcjxJbnRSZWN0
PiBUaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIoKQogICAgIGlm
ICghaXNEaXJ0eSgpKQogICAgICAgICByZXR1cm4gVmVjdG9yPEludFJlY3Q+KCk7CiAKLSAgICAv
LyBGSVhNRTogT25seSB1c2UgYSBsb2NhbCBidWZmZXIgd2hlbiB3ZSBrbm93IHRoZSB0aWxlIGlz
IGFuaW1hdGVkIChhZnRlciB0aGUgZmlyc3QgaW52YWxpZGF0ZSkKLSAgICAvLyBhbmQgZGVzdHJv
eSBpdCBhZnRlciBhIGZldyBzZWNvbmRzIG9mIGluYWN0aXZpdHkuIFdlIGNhbiByZW5kZXIgZGly
ZWN0bHkgdG8gc2hhcmVkCi0gICAgLy8gbWVtb3J5IGluIG90aGVyIGNhc2VzLgotICAgIGlmICgh
bV9sb2NhbEJ1ZmZlciB8fCBtX2xvY2FsQnVmZmVyLT5zaXplKCkgIT0gbV9yZWN0LnNpemUoKSkg
ewotICAgICAgICBtX2xvY2FsQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShtX3JlY3Quc2l6
ZSgpKTsKLSAgICAgICAgbV9sb2NhbEJ1ZmZlci0+Y29udGV4dCgpLT50cmFuc2xhdGUoLW1fcmVj
dC54KCksIC1tX3JlY3QueSgpKTsKLSAgICAgICAgbV9sb2NhbEJ1ZmZlci0+Y29udGV4dCgpLT5z
Y2FsZShGbG9hdFNpemUobV90aWxlZEJhY2tpbmdTdG9yZS0+Y29udGVudHNTY2FsZSgpLCBtX3Rp
bGVkQmFja2luZ1N0b3JlLT5jb250ZW50c1NjYWxlKCkpKTsKLSAgICB9Ci0gICAgLy8gVGhpcyBh
c3N1bWVzIHRoYXQgdGhlIEdyYXBoaWNzQ29udGV4dCBvbiB0aGUgSW1hZ2VCdWZmZXIgYWN0cyBz
eW5jaHJvbm91c2x5Ci0gICAgLy8gZm9yIHVzIHRvIGJlIGFibGUgdG8gZHJhdyB0aGlzIGJ1ZmZl
ciBvbiB0aGUgU2hhcmVhYmxlQml0bWFwIHJpZ2h0IGFmdGVyLgotICAgIG1fdGlsZWRCYWNraW5n
U3RvcmUtPmNsaWVudCgpLT50aWxlZEJhY2tpbmdTdG9yZVBhaW50KG1fbG9jYWxCdWZmZXItPmNv
bnRleHQoKSwgbV90aWxlZEJhY2tpbmdTdG9yZS0+bWFwVG9Db250ZW50cyhtX2RpcnR5UmVjdCkp
OwotCi0gICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFw
OjpjcmVhdGVTaGFyZWFibGUobV9yZWN0LnNpemUoKSwgbV90aWxlZEJhY2tpbmdTdG9yZS0+c3Vw
cG9ydHNBbHBoYSgpID8gU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhIDogMCk7CisgICAg
UmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVT
aGFyZWFibGUobV9kaXJ0eVJlY3Quc2l6ZSgpLCBtX3RpbGVkQmFja2luZ1N0b3JlLT5zdXBwb3J0
c0FscGhhKCkgPyBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEgOiAwKTsKICAgICBPd25Q
dHI8R3JhcGhpY3NDb250ZXh0PiBncmFwaGljc0NvbnRleHQoYml0bWFwLT5jcmVhdGVHcmFwaGlj
c0NvbnRleHQoKSk7Ci0gICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIobV9sb2Nh
bEJ1ZmZlci5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgSW50UG9pbnQoMCwgMCkpOworICAg
IGdyYXBoaWNzQ29udGV4dC0+dHJhbnNsYXRlKC1tX2RpcnR5UmVjdC54KCksIC1tX2RpcnR5UmVj
dC55KCkpOworICAgIGdyYXBoaWNzQ29udGV4dC0+c2NhbGUoRmxvYXRTaXplKG1fdGlsZWRCYWNr
aW5nU3RvcmUtPmNvbnRlbnRzU2NhbGUoKSwgbV90aWxlZEJhY2tpbmdTdG9yZS0+Y29udGVudHNT
Y2FsZSgpKSk7CisgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+Y2xpZW50KCktPnRpbGVkQmFja2lu
Z1N0b3JlUGFpbnQoZ3JhcGhpY3NDb250ZXh0LmdldCgpLCBtX3RpbGVkQmFja2luZ1N0b3JlLT5t
YXBUb0NvbnRlbnRzKG1fZGlydHlSZWN0KSk7CiAKICAgICBVcGRhdGVJbmZvIHVwZGF0ZUluZm87
CiAgICAgdXBkYXRlSW5mby51cGRhdGVSZWN0Qm91bmRzID0gbV9yZWN0OworICAgIEludFJlY3Qg
dXBkYXRlUmVjdCA9IG1fZGlydHlSZWN0OworICAgIHVwZGF0ZVJlY3QubW92ZSgtbV9yZWN0Lngo
KSwgLW1fcmVjdC55KCkpOworICAgIHVwZGF0ZUluZm8udXBkYXRlUmVjdHMuYXBwZW5kKHVwZGF0
ZVJlY3QpOwogICAgIHVwZGF0ZUluZm8udXBkYXRlU2NhbGVGYWN0b3IgPSBtX3RpbGVkQmFja2lu
Z1N0b3JlLT5jb250ZW50c1NjYWxlKCk7CiAgICAgYml0bWFwLT5jcmVhdGVIYW5kbGUodXBkYXRl
SW5mby5iaXRtYXBIYW5kbGUpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>