<?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>82549</bug_id>
          
          <creation_ts>2012-03-28 16:34:20 -0700</creation_ts>
          <short_desc>Change WebKit/WebKit2 platform code to use pixel snapped values</short_desc>
          <delta_ts>2012-03-30 17:58:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>
          
          <blocked>60318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>andersca</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>leviw</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>590584</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-03-28 16:34:20 -0700</bug_when>
    <thetext>Change WebKit and WebKit2 platform code to use rounded locations and pixel snapped rects and sizes. This avoids having to expose the fractional layout types to the platform code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590599</commentid>
    <comment_count>1</comment_count>
      <attachid>134444</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-03-28 16:48:06 -0700</bug_when>
    <thetext>Created attachment 134444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590622</commentid>
    <comment_count>2</comment_count>
      <attachid>134444</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-28 17:06:55 -0700</bug_when>
    <thetext>Comment on attachment 134444
Patch

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

&gt; Source/WebCore/dom/Node.h:380
&gt;      LayoutRect renderRect(bool* isReplaced);
&gt; +    IntRect pixelSnappedRenderRect(bool* isReplaced) { return pixelSnappedIntRect(renderRect(isReplaced)); }

Wouldn&apos;t this be easier to call renderRect().pixelSnapped() in the caller instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590630</commentid>
    <comment_count>3</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-03-28 17:10:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 134444 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134444&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Node.h:380
&gt; &gt;      LayoutRect renderRect(bool* isReplaced);
&gt; &gt; +    IntRect pixelSnappedRenderRect(bool* isReplaced) { return pixelSnappedIntRect(renderRect(isReplaced)); }
&gt; 
&gt; Wouldn&apos;t this be easier to call renderRect().pixelSnapped() in the caller instead?

It would but that would break the encapsulation and expose LayoutRects to the WebKit platform code, something we have been trying to avoid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592651</commentid>
    <comment_count>4</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-03-30 16:48:08 -0700</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592653</commentid>
    <comment_count>5</comment_count>
      <attachid>134444</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-30 16:51:21 -0700</bug_when>
    <thetext>Comment on attachment 134444
Patch

Thank you for the ping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592657</commentid>
    <comment_count>6</comment_count>
      <attachid>134444</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-03-30 16:54:41 -0700</bug_when>
    <thetext>Comment on attachment 134444
Patch

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592697</commentid>
    <comment_count>7</comment_count>
      <attachid>134444</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-30 17:58:05 -0700</bug_when>
    <thetext>Comment on attachment 134444
Patch

Clearing flags on attachment: 134444

Committed r112758: &lt;http://trac.webkit.org/changeset/112758&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592698</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-30 17:58:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134444</attachid>
            <date>2012-03-28 16:48:06 -0700</date>
            <delta_ts>2012-03-30 17:58:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82549-20120328164805.patch</filename>
            <type>text/plain</type>
            <size>13731</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMjQ3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTI4ICBFbWlsIEEg
RWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgV2ViS2l0L1dlYktp
dDIgcGxhdGZvcm0gY29kZSB0byB1c2UgcGl4ZWwgc25hcHBlZCB2YWx1ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyNTQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIFdlYktpdCBhbmQgV2Vi
S2l0MiBwbGF0Zm9ybSBjb2RlIHRvIHVzZSByb3VuZGVkIGxvY2F0aW9ucyBhbmQKKyAgICAgICAg
cGl4ZWwgc25hcHBlZCByZWN0cyBhbmQgc2l6ZXMuIFRoaXMgbGFyZ2VseSBhdm9pZHMgaGF2aW5n
IHRvIGV4cG9zZSB0aGUKKyAgICAgICAgZnJhY3Rpb25hbCBsYXlvdXQgdHlwZXMgdG8gdGhlIHBs
YXRmb3JtIGNvZGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2UgaW4gZnVuY3Rp
b25hbGl0eS4KKworICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
OjpwaXhlbFNuYXBwZWRSZW5kZXJSZWN0KToKKyAgICAgICAgQWRkIHBpeGVsIHNuYXBwZWQgdmVy
c2lvbiBvZiByZW5kZXJSZWN0CisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6cGl4ZWxTbmFwcGVkRnJhbWVSZWN0
KToKKyAgICAgICAgQWRkIHBpeGVsIHNuYXBwZWQgdmVyc2lvbiBvZiBmcmFtZVJlY3QKKwogMjAx
Mi0wMy0yOCAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgWWFycjogaWYgd2UncmUgbm90IHVzaW5nIHRoZSBvdXRwdXQgYXJyYXksIGRvbid0IHBv
cHVsYXRlIGl0IQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiAxMTIzMjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNzcsNiArMzc3LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBnZXRSZWN0KCkgY29uc3Q7CiAgICAgSW50UmVj
dCBnZXRQaXhlbFNuYXBwZWRSZWN0KCkgY29uc3QgeyByZXR1cm4gcGl4ZWxTbmFwcGVkSW50UmVj
dChnZXRSZWN0KCkpOyB9CiAgICAgTGF5b3V0UmVjdCByZW5kZXJSZWN0KGJvb2wqIGlzUmVwbGFj
ZWQpOworICAgIEludFJlY3QgcGl4ZWxTbmFwcGVkUmVuZGVyUmVjdChib29sKiBpc1JlcGxhY2Vk
KSB7IHJldHVybiBwaXhlbFNuYXBwZWRJbnRSZWN0KHJlbmRlclJlY3QoaXNSZXBsYWNlZCkpOyB9
CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIG5vZGUgaGFzIGEgbm9uLWVtcHR5IGJvdW5k
aW5nIGJveCBpbiBsYXlvdXQuCiAgICAgLy8gVGhpcyBkb2VzIG5vdCAxMDAlIGd1YXJhbnRlZSB0
aGUgdXNlciBjYW4gc2VlIGl0LCBidXQgaXMgcHJldHR5IGNsb3NlLgpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2aXNpb24gMTEyMzI5KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiArMTMwLDcg
QEAgcHVibGljOgogICAgIHZvaWQgbW92ZShMYXlvdXRVbml0IGR4LCBMYXlvdXRVbml0IGR5KSB7
IG1fZnJhbWVSZWN0Lm1vdmUoZHgsIGR5KTsgfQogCiAgICAgTGF5b3V0UmVjdCBmcmFtZVJlY3Qo
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lUmVjdDsgfQorICAgIEludFJlY3QgcGl4ZWxTbmFwcGVk
RnJhbWVSZWN0KCkgY29uc3QgeyByZXR1cm4gcGl4ZWxTbmFwcGVkSW50UmVjdChtX2ZyYW1lUmVj
dCk7IH0KICAgICB2b2lkIHNldEZyYW1lUmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KSB7IG1f
ZnJhbWVSZWN0ID0gcmVjdDsgfQogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBiZSByZXR1
cm5pbmcgdGhpcyBhcyBhIExheW91dFJlY3QsIHNpbmNlIGl0IGxvc2VzIGl0cyBwb3NpdGlvbiBh
bmQgd29uJ3QgcHJvcGVybHkgcGl4ZWwgc25hcC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEx
MjQ3MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDEyLTAzLTI4ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4K
KworICAgICAgICBDaGFuZ2UgV2ViS2l0L1dlYktpdDIgcGxhdGZvcm0gY29kZSB0byB1c2UgcGl4
ZWwgc25hcHBlZCB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgyNTQ5CisKKyAgICAgICAgQ2hhbmdlIFdlYktpdCBhbmQgV2ViS2l0MiBwbGF0
Zm9ybSBjb2RlIHRvIHVzZSByb3VuZGVkIGxvY2F0aW9ucyBhbmQKKyAgICAgICAgcGl4ZWwgc25h
cHBlZCByZWN0cyBhbmQgc2l6ZXMuIFRoaXMgbGFyZ2VseSBhdm9pZHMgaGF2aW5nIHRvIGV4cG9z
ZSB0aGUKKyAgICAgICAgZnJhY3Rpb25hbCBsYXlvdXQgdHlwZXMgdG8gdGhlIHBsYXRmb3JtIGNv
ZGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
aGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVuZGVyT2Jq
ZWN0OjpXZWJSZW5kZXJPYmplY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUG9wdXBN
ZW51UHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eVdpbjo6
Y2FsY3VsYXRlUG9zaXRpb25BbmRTaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OnJlbmRlclJlY3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpC
dWlsdEluUERGVmlldzo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludCk6CisKIDIwMTItMDMtMjggIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXNzaXZlIGxhZyBvcGVuaW5nIGEg
bGluayBpbiBhIG5ldyBiYWNrZ3JvdW5kIHRhYgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlJlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDExMjMyOSkKKysrIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3
IEBAIFdlYlJlbmRlck9iamVjdDo6V2ViUmVuZGVyT2JqZWN0KFJlbmRlck8KICAgICBtX2Fic29s
dXRlUG9zaXRpb24gPSBmbG9vcmVkSW50UG9pbnQocmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZShG
bG9hdFBvaW50KCkpKTsKIAogICAgIGlmIChyZW5kZXJlci0+aXNCb3goKSkKLSAgICAgICAgbV9m
cmFtZVJlY3QgPSB0b1JlbmRlckJveChyZW5kZXJlciktPmZyYW1lUmVjdCgpOworICAgICAgICBt
X2ZyYW1lUmVjdCA9IHRvUmVuZGVyQm94KHJlbmRlcmVyKS0+cGl4ZWxTbmFwcGVkRnJhbWVSZWN0
KCk7CiAgICAgZWxzZSBpZiAocmVuZGVyZXItPmlzVGV4dCgpKSB7CiAgICAgICAgIG1fZnJhbWVS
ZWN0ID0gdG9SZW5kZXJUZXh0KHJlbmRlcmVyKS0+bGluZXNCb3VuZGluZ0JveCgpOwogICAgICAg
ICBtX2ZyYW1lUmVjdC5zZXRYKHRvUmVuZGVyVGV4dChyZW5kZXJlciktPmZpcnN0UnVuWCgpKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBN
ZW51UHJveHlXaW4uY3BwCShyZXZpc2lvbiAxMTIzMjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAx
LDcgKzQwMSw3IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlXaW46OmNhbGN1bGF0ZVBvc2kKICAg
ICBNT05JVE9SSU5GT0VYIG1vbml0b3JJbmZvOwogICAgIG1vbml0b3JJbmZvLmNiU2l6ZSA9IHNp
emVvZihNT05JVE9SSU5GT0VYKTsKICAgICA6OkdldE1vbml0b3JJbmZvKG1vbml0b3IsICZtb25p
dG9ySW5mbyk7Ci0gICAgRmxvYXRSZWN0IHNjcmVlbiA9IG1vbml0b3JJbmZvLnJjV29yazsKKyAg
ICBGbG9hdFJlY3Qgc2NyZWVuID0gc3RhdGljX2Nhc3Q8SW50UmVjdD4obW9uaXRvckluZm8ucmNX
b3JrKTsKIAogICAgIC8vIENoZWNrIHRoYXQgd2UgZG9uJ3QgZ28gb2ZmIHRoZSBzY3JlZW4gdmVy
dGljYWxseQogICAgIGlmIChwb3B1cFJlY3QubWF4WSgpID4gc2NyZWVuLmhlaWdodCgpKSB7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAJKHJl
dmlzaW9uIDExMjMyOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
NCw3ICsxMTQsNyBAQCBJbnRSZWN0IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6ZWxlbWVuCiAg
ICAgCiBJbnRSZWN0IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6cmVuZGVyUmVjdChib29sKiBp
c1JlcGxhY2VkKSBjb25zdAogewotICAgIHJldHVybiBtX25vZGUuZ2V0KCktPnJlbmRlclJlY3Qo
aXNSZXBsYWNlZCk7CisgICAgcmV0dXJuIG1fbm9kZS5nZXQoKS0+cGl4ZWxTbmFwcGVkUmVuZGVy
UmVjdChpc1JlcGxhY2VkKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OnNl
dEhUTUxJbnB1dEVsZW1lbnRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJiB2YWx1ZSkKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVpbHRJblBERlZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvQnVp
bHRJblBERlZpZXcuY3BwCShyZXZpc2lvbiAxMTIzMjkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL0J1aWx0SW5QREZWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzA2LDcgKzcwNiw3IEBAIGJvb2wgQnVpbHRJblBERlZpZXc6OmlzQWN0aXZlKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQnVpbHRJblBERlZpZXc6OmludmFsaWRhdGVTY3Jv
bGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQor
dm9pZCBCdWlsdEluUERGVmlldzo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgSW50UmVjdCBkaXJ0eVJlY3Qg
PSByZWN0OwogICAgIGRpcnR5UmVjdC5tb3ZlQnkoc2Nyb2xsYmFyLT5sb2NhdGlvbigpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBh
Z2VNYWMubW0JKHJldmlzaW9uIDExMjMyOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzU4LDcgKzM1OCw3
IEBAIHZvaWQgV2ViUGFnZTo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludChJbnQKICAgICBIaXRUZXN0
UmVzdWx0IHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGl0VGVzdFJlc3VsdEF0UG9p
bnQocG9pbnQsIGZhbHNlKTsKICAgICBmcmFtZSA9IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUo
KSA/IHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIAotICAg
IFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBmcmFtZS0+cmFuZ2VGb3JQb2ludChyZXN1bHQucG9pbnQo
KSk7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IGZyYW1lLT5yYW5nZUZvclBvaW50KHJlc3Vs
dC5yb3VuZGVkUG9pbnQoKSk7CiAgICAgaWYgKCFyYW5nZSkKICAgICAgICAgcmV0dXJuOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gMTEyNDcwKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBA
QAorMjAxMi0wMy0yOCAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQ2hhbmdlIFdlYktpdC9XZWJLaXQyIHBsYXRmb3JtIGNvZGUgdG8gdXNlIHBpeGVsIHNuYXBw
ZWQgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MjU0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogc3JjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojpib3VuZGluZ0JveFJlY3QpOgorICAgICAgICBVc2UgcGl4ZWxT
bmFwcGVkQm91bmRpbmdCb3hSZWN0IGluc3RlYWQgb2YgYm91bmRpbmdCb3hSZWN0IHdoaWNoIHJl
dHVybnMKKyAgICAgICAgYSBMYXlvdXRSZWN0LgorICAgICAgICAKKyAgICAgICAgKiBzcmMvV2Vi
RnJhbWVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpjaGFyYWN0ZXJJ
bmRleEZvclBvaW50KToKKyAgICAgICAgVXNlIHJvdW5kZWRQb2ludCBpbnN0ZWFkIG9mIHBvaW50
IGZvciBoaXQgdGVzdGluZyBhcyByYW5nZXMgdXNlIHNjcmVlbgorICAgICAgICBjb3JkaW5hdGVz
IHdoaWNoIGFyZSByZXByZXNlbnRlZCB3aXRoIHBpeGVsIGFjY3VyYWN5LgorCiAyMDEyLTAzLTI4
ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGwgY2hy
b21pdW0gZnJvbSAxMjkzMDAgdG8gMTI5NTA5LgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAJKHJldmlzaW9uIDEx
MjMyOSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTMsNyArNDkzLDcgQEAgV2ViUmVjdCBXZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0Ojpib3VuZGluZwogICAgICAgICByZXR1cm4gV2ViUmVjdCgpOwogCiAg
ICAgbV9wcml2YXRlLT51cGRhdGVCYWNraW5nU3RvcmUoKTsKLSAgICByZXR1cm4gbV9wcml2YXRl
LT5ib3VuZGluZ0JveFJlY3QoKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5waXhlbFNuYXBwZWRC
b3VuZGluZ0JveFJlY3QoKTsKIH0KIAogZG91YmxlIFdlYkFjY2Vzc2liaWxpdHlPYmplY3Q6OmVz
dGltYXRlZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHJldmlzaW9uIDExMjMyOSkKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
ODksNyArMTE4OSw3IEBAIHNpemVfdCBXZWJGcmFtZUltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG8K
IAogICAgIEludFBvaW50IHBvaW50ID0gZnJhbWUoKS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRz
KHdlYlBvaW50KTsKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCA9IGZyYW1lKCktPmV2ZW50SGFu
ZGxlcigpLT5oaXRUZXN0UmVzdWx0QXRQb2ludChwb2ludCwgZmFsc2UpOwotICAgIFJlZlB0cjxS
YW5nZT4gcmFuZ2UgPSBmcmFtZSgpLT5yYW5nZUZvclBvaW50KHJlc3VsdC5wb2ludCgpKTsKKyAg
ICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gZnJhbWUoKS0+cmFuZ2VGb3JQb2ludChyZXN1bHQucm91
bmRlZFBvaW50KCkpOwogICAgIGlmICghcmFuZ2UpCiAgICAgICAgIHJldHVybiBub3RGb3VuZDsK
IApJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMTEyNDcwKQorKysgU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDMt
MjggIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENoYW5nZSBX
ZWJLaXQvV2ViS2l0MiBwbGF0Zm9ybSBjb2RlIHRvIHVzZSBwaXhlbCBzbmFwcGVkIHZhbHVlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI1NDkKKwor
ICAgICAgICBDaGFuZ2UgV2ViS2l0IGFuZCBXZWJLaXQyIHBsYXRmb3JtIGNvZGUgdG8gdXNlIHJv
dW5kZWQgbG9jYXRpb25zIGFuZAorICAgICAgICBwaXhlbCBzbmFwcGVkIHJlY3RzIGFuZCBzaXpl
cy4gVGhpcyBsYXJnZWx5IGF2b2lkcyBoYXZpbmcgdG8gZXhwb3NlIHRoZQorICAgICAgICBmcmFj
dGlvbmFsIGxheW91dCB0eXBlcyB0byB0aGUgcGxhdGZvcm0gY29kZS4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERPTS9XZWJET01PcGVyYXRpb25z
Lm1tOgorICAgICAgICAoLVtET01Ob2RlIF9yZW5kZXJSZWN0Ol0pOgorCiAyMDEyLTAzLTI4ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgPGh0dHA6Ly93
ZWJraXQub3JnL2IvODI0MTk+IFdlYiBJbnNwZWN0b3I6IENyZWF0ZSAtW0RPTU5vZGUgaW5zcGVj
dF0gZnJvbSBJREwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25z
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25z
Lm1tCShyZXZpc2lvbiAxMTIzMjkpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9ET00vV2ViRE9NT3Bl
cmF0aW9ucy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTMxLDcgKzEzMSw3IEBAIC0gKE5TU3RyaW5n
ICopbWFya3VwU3RyaW5nCiAKIC0gKE5TUmVjdClfcmVuZGVyUmVjdDooYm9vbCAqKWlzUmVwbGFj
ZWQKIHsKLSAgICByZXR1cm4gTlNSZWN0KGNvcmUoc2VsZiktPnJlbmRlclJlY3QoaXNSZXBsYWNl
ZCkpOworICAgIHJldHVybiBOU1JlY3QoY29yZShzZWxmKS0+cGl4ZWxTbmFwcGVkUmVuZGVyUmVj
dChpc1JlcGxhY2VkKSk7CiB9CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAx
MTI0NzApCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI2IEBACisyMDEyLTAzLTI4ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBDaGFuZ2UgV2ViS2l0L1dlYktpdDIgcGxhdGZvcm0gY29kZSB0byB1c2Ug
cGl4ZWwgc25hcHBlZCB2YWx1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgyNTQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBBcGkvcXdlYmVsZW1lbnQuY3BwOgorICAgICAgICAoUVdlYkVsZW1lbnQ6
Omdlb21ldHJ5KToKKyAgICAgICAgUmVwbGFjZSBnZXRSZWN0IHdpdGggZ2V0UGl4ZWxTbmFwcGVk
UmVjdCB0byBhdm9pZCBoYXZpbmcgdG8gZXhwb3NlCisgICAgICAgIHN1YnBpeGVsIHR5cGVzIHRv
IHRoZSBwbGF0Zm9ybSBsYXllci4KKyAgICAgICAgCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNw
cDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6VG91Y2hBZGp1c3Rlcjo6ZmluZENhbmRpZGF0
ZVBvaW50Rm9yVG91Y2gpOgorICAgICAgICBVc2UgcGl4ZWwgc25hcHBlZCBlbGVtZW50IHJlY3Qg
d2hlbiBjb21wYXJpbmcgd2l0aCB0aGUgdG91Y2ggcmVjdCBhcyB0aGUKKyAgICAgICAgdG91Y2gg
cmVjdCB1c2Ugc2NyZWVuIGNvcmRpbmF0ZXMgd2hpY2ggYXJlIHJlcHJlc2VudGVkIHdpdGggcGl4
ZWwKKyAgICAgICAgYWNjdXJhY3kuCisgICAgICAgIAorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFF0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6c2Ny
b2xsUmVjdEludG9WaWV3KToKKyAgICAgICAgQ2hhbmdlIHNjcm9sbFJlY3RJbnRvVmlldyB0byB0
YWtlIGEgTGF5b3V0UmVjdCB0byBtYXRjaCBiYXNlIGNsYXNzCisgICAgICAgIGludGVyZmFjZS4K
KwogMjAxMi0wMy0yMCAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
TW92ZSB3dGYvUGxhdGZvcm0uaCBmcm9tIEphdmFTY3JpcHRDb3JlIHRvIFNvdXJjZS9XVEYvd3Rm
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYmVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMTIzMjkp
CisrKyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2ViZWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU1Miw3ICs1NTIsNyBAQCBRUmVjdCBRV2ViRWxlbWVudDo6Z2VvbWV0cnkoKSBjb25zdAog
ewogICAgIGlmICghbV9lbGVtZW50KQogICAgICAgICByZXR1cm4gUVJlY3QoKTsKLSAgICByZXR1
cm4gbV9lbGVtZW50LT5nZXRSZWN0KCk7CisgICAgcmV0dXJuIG1fZWxlbWVudC0+Z2V0UGl4ZWxT
bmFwcGVkUmVjdCgpOwogfQogCiAvKiEKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJ
KHJldmlzaW9uIDExMjMyOSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTU4OCw3ICsxNTg4LDcgQEAgSW50UG9pbnQgUVdlYlBhZ2VQcml2
YXRlOjpUb3VjaEFkanVzdGVyOgogICAgICAgICBpZiAoIWN1cnJlbnRFbGVtZW50IHx8ICghaXND
bGlja2FibGVFbGVtZW50KGN1cnJlbnRFbGVtZW50LCAwKSAmJiAhaXNWYWxpZEZyYW1lT3duZXIo
Y3VycmVudEVsZW1lbnQpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIEludFJl
Y3QgY3VycmVudEVsZW1lbnRCb3VuZGluZ1JlY3QgPSBjdXJyZW50RWxlbWVudC0+Z2V0UmVjdCgp
OworICAgICAgICBJbnRSZWN0IGN1cnJlbnRFbGVtZW50Qm91bmRpbmdSZWN0ID0gY3VycmVudEVs
ZW1lbnQtPmdldFBpeGVsU25hcHBlZFJlY3QoKTsKICAgICAgICAgY3VycmVudEVsZW1lbnRCb3Vu
ZGluZ1JlY3QuaW50ZXJzZWN0KHRvdWNoUmVjdCk7CiAKICAgICAgICAgaWYgKGN1cnJlbnRFbGVt
ZW50Qm91bmRpbmdSZWN0LmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHJldmlzaW9uIDExMjMyOSkKKysrIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTcxLDcgKzE3MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vy
c29yKGNvbnN0IEN1cnNvciYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRp
bE1vdXNlTW92ZXMoYm9vbCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9W
aWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVj
dEludG9WaWV3KGNvbnN0IExheW91dFJlY3QpIGNvbnN0IHsgfQogCiAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgdmlydHVhbCBib29s
IHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>