<?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>52495</bug_id>
          
          <creation_ts>2011-01-14 16:36:36 -0800</creation_ts>
          <short_desc>Beef up PrintContext for WebKit2</short_desc>
          <delta_ts>2011-01-17 10:31:52 -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>Printing</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>hyatt</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>334724</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-14 16:36:36 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334762</commentid>
    <comment_count>1</comment_count>
      <attachid>79037</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-14 17:15:02 -0800</bug_when>
    <thetext>Created attachment 79037
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334782</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-01-14 17:44:13 -0800</bug_when>
    <thetext>Attachment 79037 did not build on qt:
Build output: http://queues.webkit.org/results/7533066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334785</commentid>
    <comment_count>3</comment_count>
      <attachid>79037</attachid>
    <who name="">mitz</who>
    <bug_when>2011-01-14 17:45:34 -0800</bug_when>
    <thetext>Comment on attachment 79037
proposed patch

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

&gt; Source/WebCore/ChangeLog:19
&gt; +        Round pahe height to an integer, because Mac code does that, and because page height is

Typo: pahe

&gt; Source/WebCore/page/PrintContext.cpp:35
&gt; +// print in IE and Camino. This lets them use fewer sheets than they

Camino, really?

&gt; Source/WebCore/page/PrintContext.cpp:38
&gt; +const float PrintingMinimumShrinkFactor = 1.25f;

Can you drop the f? Our current style is to use a lowercase p here. Not sure there’s a reason to say “printing” in this context.

&gt; Source/WebCore/page/PrintContext.cpp:44
&gt; +const float PrintingMaximumShrinkFactor = 2.0f;

Can you drop the .0f and use a lowercase P?

&gt; Source/WebCore/page/PrintContext.cpp:68
&gt; +void PrintContext::computePageRects(const FloatRect&amp; printRect, float headerHeight, float footerHeight, float userScaleFactor, float&amp; outPageHeight, bool allowHorizontalMultiPages)

I have no idea what a multi-page is. Perhaps allowHorizontalTiling or allowTilingHorizontally?

&gt; Source/WebCore/page/PrintContext.cpp:141
&gt; +        return 1.0f;

Is the .0f necessary?

&gt; Source/WebCore/page/PrintContext.cpp:145
&gt; +        return 1.0f;

Ditto

&gt; Source/WebCore/page/PrintContext.cpp:147
&gt; +    float maxShrinkToFitScaleFactor = 1.0f / PrintingMaximumShrinkFactor;

This .0f is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>335388</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-17 10:31:52 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/75955&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79037</attachid>
            <date>2011-01-14 17:15:02 -0800</date>
            <delta_ts>2011-01-14 17:45:33 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>PrintContext.txt</filename>
            <type>text/plain</type>
            <size>12082</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc1ODQwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMDEtMTQgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUyNDk1CisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLCBzbyBubyB0ZXN0cy4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnQgYWRkaXRpb25hbCBtZXRob2RzLCBh
cyBJJ20gZ29pbmcgdG8gdXNlIG1vcmUgY29kZSBmcm9tIFByaW50Q29udGV4dC4KKworICAgICAg
ICAqIHBhZ2UvUHJpbnRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4
dDo6flByaW50Q29udGV4dCk6IE5vIG5lZWQgdG8gY2xlYXIgbV9wYWdlUmVjdHMsIHRoZSBvYmpl
Y3QgaXMgYmVpbmcKKyAgICAgICAgZGVzdHJveWVkIGFscmVhZHkuCisgICAgICAgIChXZWJDb3Jl
OjpQcmludENvbnRleHQ6OnBhZ2VDb3VudCk6IENoYW5nZWQgcGFnZSBjb3VudCBmcm9tIGludCB0
byBzaXplX3QuCisgICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OnBhZ2VSZWN0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpQcmludENvbnRleHQ6OmNvbXB1dGVQYWdlUmVjdHMpOiBQ
YXNzIGFsbG93SG9yaXpvbnRhbE11bHRpUGFnZXMgYXMgYW4gYXJndW1lbnQuCisgICAgICAgIFBy
aW50Q29udGV4dCBhbHJlYWR5IGhhcyBjb2RlIHRvIGNhbGN1bGF0ZSBzY2FsZSBmYWN0b3IsIHNv
IGl0IG1ha2VzIHNlbnNlIHRvIG1ha2UgbWV0aG9kcworICAgICAgICB0aGF0IGNvbnRhaW4gaXQg
dW5pdmVyc2FsIChhbGxvd0hvcml6b250YWxNdWx0aVBhZ2VzIGlzIGFsd2F5cyB0cnVlIGZvciBT
YWZhcmkpLgorICAgICAgICBSb3VuZCBwYWhlIGhlaWdodCB0byBhbiBpbnRlZ2VyLCBiZWNhdXNl
IE1hYyBjb2RlIGRvZXMgdGhhdCwgYW5kIGJlY2F1c2UgcGFnZSBoZWlnaHQgaXMKKyAgICAgICAg
dHJlYXRlZCBhcyBpbnRlZ2VyIGFsbW9zdCBldmVyeXdoZXJlIGVsc2UgaW4gY29kZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlByaW50Q29udGV4dDo6YmVnaW4pOiBBbGxvdyBjYWxsaW5nIHRoaXMgZnVu
Y3Rpb24gbXVsdGlwbGUgdGltZXMuIFRoZXJlIGlzIG5vIG5lZWQKKyAgICAgICAgdG8gcmV0dXJu
IHRvIHNjcmVlbiBtb2RlIGlmIGUuZy4gInByaW50IGJhY2tnb3VuZHMiIG9wdGlvbiBjaGFuZ2Vz
LgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRDb250ZXh0Ojpjb21wdXRlQXV0b21hdGljU2NhbGVG
YWN0b3IpOiBFeHBvc2Ugc2NhbGUgZmFjdG9yIGNvbXB1dGF0aW9uLCBzbworICAgICAgICB0aGF0
IGNsaWVudHMgZG9uJ3QgaGF2ZSB0byBjb3B5IGl0LgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRD
b250ZXh0OjpzcG9vbFJlY3QpOiBBZGQgYSB3YXkgdG8gc3Bvb2wgYSBwcmVjb21wdXRlZCByZWN0
IC0gaGFuZHkgaWYgYSByZXF1ZXN0CisgICAgICAgIGNvbWVzIGZyb20gY29kZSB0aGF0IGRvZXNu
J3QgaGF2ZSBwYWdlIG51bWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlByaW50Q29udGV4dDo6cGFn
ZU51bWJlckZvckVsZW1lbnQpOiBQYWdlIG51bWJlciBpbnQgLT4gc2l6ZV90LgorCisgICAgICAg
ICogcGFnZS9QcmludENvbnRleHQuaDogQWRkZWQgY29tbWVudHMgYW5kIEZJWE1Fcy4gUHJpbnRD
b250ZXh0IG5lZWRzIGNsZWFudXAsIGJ1dCB0aGF0CisgICAgICAgIGRlcGVuZHMgb24gZGVjaWRp
bmcgaG93IGl0IHJlYWxseSBuZWVkcyB0byB3b3JrIChlLmcuIHdoZXRoZXIgY29tcHV0ZVBhZ2VS
ZWN0cygpIHNob3VsZAorICAgICAgICBjYXVzZSByZWxheW91dCkuCisKIDIwMTEtMDEtMTQgIFRv
bnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
IGJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA3NTgyOCkKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMTEg
KzI2MSwxNyBAQCBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZTlzZXRDbGllbnRFUE5TCiBfX1pO
N1dlYkNvcmUxMlBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2Vi
Q29yZTEyUHJpbnRDb250ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBfX1pON1dl
YkNvcmUxMlByaW50Q29udGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNfOUZsb2F0
U2l6ZUUKK19fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTZjb21wdXRlUGFnZVJlY3RzRVJLTlNf
OUZsb2F0UmVjdEVmZmZSZmIKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTZpc1BhZ2VCb3hW
aXNpYmxlRVBOU181RnJhbWVFaQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHQyMHBhZ2VOdW1i
ZXJGb3JFbGVtZW50RVBOU183RWxlbWVudEVSS05TXzlGbG9hdFNpemVFCiBfX1pON1dlYkNvcmUx
MlByaW50Q29udGV4dDI2cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNFUE5TXzVGcmFtZUVpaWlp
aWlpCitfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDI3Y29tcHV0ZUF1dG9tYXRpY1NjYWxlRmFj
dG9yRWYKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MjdzcG9vbEFsbFBhZ2VzV2l0aEJvdW5k
YXJpZXNFUE5TXzVGcmFtZUVSTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU185RmxvYXRTaXplRQog
X19aTjdXZWJDb3JlMTJQcmludENvbnRleHQyOGNvbXB1dGVQYWdlUmVjdHNXaXRoUGFnZVNpemVF
UktOU185RmxvYXRTaXplRWIKK19fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0M2VuZEV2CitfX1pO
N1dlYkNvcmUxMlByaW50Q29udGV4dDViZWdpbkVmZgorX19aTjdXZWJDb3JlMTJQcmludENvbnRl
eHQ5c3Bvb2xQYWdlRVJOU18xNUdyYXBoaWNzQ29udGV4dEVpZgorX19aTjdXZWJDb3JlMTJQcmlu
dENvbnRleHQ5c3Bvb2xSZWN0RVJOU18xNUdyYXBoaWNzQ29udGV4dEVSS05TXzdJbnRSZWN0RQog
X19aTjdXZWJDb3JlMTJQcmludENvbnRleHRDMUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTJQ
cmludENvbnRleHREMUV2CiBfX1pON1dlYkNvcmUxMlJlbmRlck9iamVjdDE2cmVwYWludFJlY3Rh
bmdsZUVSS05TXzdJbnRSZWN0RWIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUHJpbnRDb250
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5j
cHAJKHJldmlzaW9uIDc1ODI4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMCArMjgsMjEgQEAKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KIAotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gQnkgaW1hZ2lu
ZyB0byBhIHdpZHRoIGEgbGl0dGxlIHdpZGVyIHRoYW4gdGhlIGF2YWlsYWJsZSBwaXhlbHMsCisv
LyB0aGluIHBhZ2VzIHdpbGwgYmUgc2NhbGVkIGRvd24gYSBsaXR0bGUsIG1hdGNoaW5nIHRoZSB3
YXkgdGhleQorLy8gcHJpbnQgaW4gSUUgYW5kIENhbWluby4gVGhpcyBsZXRzIHRoZW0gdXNlIGZl
d2VyIHNoZWV0cyB0aGFuIHRoZXkKKy8vIHdvdWxkIG90aGVyd2lzZSwgd2hpY2ggaXMgcHJlc3Vt
YWJseSB3aHkgb3RoZXIgYnJvd3NlcnMgZG8gdGhpcy4KKy8vIFdpZGUgcGFnZXMgd2lsbCBiZSBz
Y2FsZWQgZG93biBtb3JlIHRoYW4gdGhpcy4KK2NvbnN0IGZsb2F0IFByaW50aW5nTWluaW11bVNo
cmlua0ZhY3RvciA9IDEuMjVmOworCisvLyBUaGlzIG51bWJlciBkZXRlcm1pbmVzIGhvdyBzbWFs
bCB3ZSBhcmUgd2lsbGluZyB0byByZWR1Y2UgdGhlIHBhZ2UgY29udGVudAorLy8gaW4gb3JkZXIg
dG8gYWNjb21tb2RhdGUgdGhlIHdpZGVzdCBsaW5lLiBJZiB0aGUgcGFnZSB3b3VsZCBoYXZlIHRv
IGJlCisvLyByZWR1Y2VkIHNtYWxsZXIgdG8gbWFrZSB0aGUgd2lkZXN0IGxpbmUgZml0LCB3ZSBq
dXN0IGNsaXAgaW5zdGVhZCAodGhpcworLy8gYmVoYXZpb3IgbWF0Y2hlcyBNYWNJRSBhbmQgTW96
aWxsYSwgYXQgbGVhc3QpCitjb25zdCBmbG9hdCBQcmludGluZ01heGltdW1TaHJpbmtGYWN0b3Ig
PSAyLjBmOworCiBQcmludENvbnRleHQ6OlByaW50Q29udGV4dChGcmFtZSogZnJhbWUpCiAgICAg
OiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9pc1ByaW50aW5nKGZhbHNlKQpAQCAtNDIsMjAgKzUz
LDE5IEBAIFByaW50Q29udGV4dDo6flByaW50Q29udGV4dCgpCiB7CiAgICAgaWYgKG1faXNQcmlu
dGluZykKICAgICAgICAgZW5kKCk7Ci0gICAgbV9wYWdlUmVjdHMuY2xlYXIoKTsKIH0KIAotaW50
IFByaW50Q29udGV4dDo6cGFnZUNvdW50KCkgY29uc3QKK3NpemVfdCBQcmludENvbnRleHQ6OnBh
Z2VDb3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZVJlY3RzLnNpemUoKTsKIH0KIAot
Y29uc3QgSW50UmVjdCYgUHJpbnRDb250ZXh0OjpwYWdlUmVjdChpbnQgcGFnZU51bWJlcikgY29u
c3QKK2NvbnN0IEludFJlY3QmIFByaW50Q29udGV4dDo6cGFnZVJlY3Qoc2l6ZV90IHBhZ2VOdW1i
ZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZVJlY3RzW3BhZ2VOdW1iZXJdOwogfQogCi12
b2lkIFByaW50Q29udGV4dDo6Y29tcHV0ZVBhZ2VSZWN0cyhjb25zdCBGbG9hdFJlY3QmIHByaW50
UmVjdCwgZmxvYXQgaGVhZGVySGVpZ2h0LCBmbG9hdCBmb290ZXJIZWlnaHQsIGZsb2F0IHVzZXJT
Y2FsZUZhY3RvciwgZmxvYXQmIG91dFBhZ2VIZWlnaHQpCit2b2lkIFByaW50Q29udGV4dDo6Y29t
cHV0ZVBhZ2VSZWN0cyhjb25zdCBGbG9hdFJlY3QmIHByaW50UmVjdCwgZmxvYXQgaGVhZGVySGVp
Z2h0LCBmbG9hdCBmb290ZXJIZWlnaHQsIGZsb2F0IHVzZXJTY2FsZUZhY3RvciwgZmxvYXQmIG91
dFBhZ2VIZWlnaHQsIGJvb2wgYWxsb3dIb3Jpem9udGFsTXVsdGlQYWdlcykKIHsKICAgICBtX3Bh
Z2VSZWN0cy5jbGVhcigpOwogICAgIG91dFBhZ2VIZWlnaHQgPSAwOwpAQCAtNzMsNyArODMsNyBA
QCB2b2lkIFByaW50Q29udGV4dDo6Y29tcHV0ZVBhZ2VSZWN0cyhjb25zCiAgICAgZmxvYXQgcmF0
aW8gPSBwcmludFJlY3QuaGVpZ2h0KCkgLyBwcmludFJlY3Qud2lkdGgoKTsKIAogICAgIGZsb2F0
IHBhZ2VXaWR0aCAgPSB2aWV3LT5kb2NXaWR0aCgpOwotICAgIGZsb2F0IHBhZ2VIZWlnaHQgPSBw
YWdlV2lkdGggKiByYXRpbzsKKyAgICBmbG9hdCBwYWdlSGVpZ2h0ID0gZmxvb3JmKHBhZ2VXaWR0
aCAqIHJhdGlvKTsKICAgICBvdXRQYWdlSGVpZ2h0ID0gcGFnZUhlaWdodDsgLy8gdGhpcyBpcyB0
aGUgaGVpZ2h0IG9mIHRoZSBwYWdlIGFkanVzdGVkIGJ5IG1hcmdpbnMKICAgICBwYWdlSGVpZ2h0
IC09IGhlYWRlckhlaWdodCArIGZvb3RlckhlaWdodDsKIApAQCAtODIsNyArOTIsNyBAQCB2b2lk
IFByaW50Q29udGV4dDo6Y29tcHV0ZVBhZ2VSZWN0cyhjb25zCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBjb21wdXRlUGFnZVJlY3RzV2l0aFBhZ2VTaXplSW50ZXJuYWwoRmxvYXRTaXpl
KHBhZ2VXaWR0aCAvIHVzZXJTY2FsZUZhY3RvciwgcGFnZUhlaWdodCAvIHVzZXJTY2FsZUZhY3Rv
ciksIGZhbHNlKTsKKyAgICBjb21wdXRlUGFnZVJlY3RzV2l0aFBhZ2VTaXplSW50ZXJuYWwoRmxv
YXRTaXplKHBhZ2VXaWR0aCAvIHVzZXJTY2FsZUZhY3RvciwgcGFnZUhlaWdodCAvIHVzZXJTY2Fs
ZUZhY3RvciksIGFsbG93SG9yaXpvbnRhbE11bHRpUGFnZXMpOwogfQogCiB2b2lkIFByaW50Q29u
dGV4dDo6Y29tcHV0ZVBhZ2VSZWN0c1dpdGhQYWdlU2l6ZShjb25zdCBGbG9hdFNpemUmIHBhZ2VT
aXplSW5QaXhlbHMsIGJvb2wgYWxsb3dIb3Jpem9udGFsTXVsdGlQYWdlcykKQEAgLTExNSwzMCAr
MTI1LDMwIEBAIHZvaWQgUHJpbnRDb250ZXh0Ojpjb21wdXRlUGFnZVJlY3RzV2l0aFAKIAogdm9p
ZCBQcmludENvbnRleHQ6OmJlZ2luKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpCiB7Ci0gICAg
QVNTRVJUKCFtX2lzUHJpbnRpbmcpOworICAgIC8vIFRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxl
ZCBtdWx0aXBsZSB0aW1lcyB0byBhZGp1c3QgcHJpbnRpbmcgcGFyYW1ldGVycyB3aXRob3V0IGdv
aW5nIGJhY2sgdG8gc2NyZWVuIG1vZGUuCiAgICAgbV9pc1ByaW50aW5nID0gdHJ1ZTsKIAotICAg
IC8vIEJ5IGltYWdpbmcgdG8gYSB3aWR0aCBhIGxpdHRsZSB3aWRlciB0aGFuIHRoZSBhdmFpbGFi
bGUgcGl4ZWxzLAotICAgIC8vIHRoaW4gcGFnZXMgd2lsbCBiZSBzY2FsZWQgZG93biBhIGxpdHRs
ZSwgbWF0Y2hpbmcgdGhlIHdheSB0aGV5Ci0gICAgLy8gcHJpbnQgaW4gSUUgYW5kIENhbWluby4g
VGhpcyBsZXRzIHRoZW0gdXNlIGZld2VyIHNoZWV0cyB0aGFuIHRoZXkKLSAgICAvLyB3b3VsZCBv
dGhlcndpc2UsIHdoaWNoIGlzIHByZXN1bWFibHkgd2h5IG90aGVyIGJyb3dzZXJzIGRvIHRoaXMu
Ci0gICAgLy8gV2lkZSBwYWdlcyB3aWxsIGJlIHNjYWxlZCBkb3duIG1vcmUgdGhhbiB0aGlzLgot
ICAgIGNvbnN0IGZsb2F0IFByaW50aW5nTWluaW11bVNocmlua0ZhY3RvciA9IDEuMjVmOwotCi0g
ICAgLy8gVGhpcyBudW1iZXIgZGV0ZXJtaW5lcyBob3cgc21hbGwgd2UgYXJlIHdpbGxpbmcgdG8g
cmVkdWNlIHRoZSBwYWdlIGNvbnRlbnQKLSAgICAvLyBpbiBvcmRlciB0byBhY2NvbW1vZGF0ZSB0
aGUgd2lkZXN0IGxpbmUuIElmIHRoZSBwYWdlIHdvdWxkIGhhdmUgdG8gYmUKLSAgICAvLyByZWR1
Y2VkIHNtYWxsZXIgdG8gbWFrZSB0aGUgd2lkZXN0IGxpbmUgZml0LCB3ZSBqdXN0IGNsaXAgaW5z
dGVhZCAodGhpcwotICAgIC8vIGJlaGF2aW9yIG1hdGNoZXMgTWFjSUUgYW5kIE1vemlsbGEsIGF0
IGxlYXN0KQotICAgIGNvbnN0IGZsb2F0IFByaW50aW5nTWF4aW11bVNocmlua0ZhY3RvciA9IDIu
MGY7Ci0KICAgICBmbG9hdCBtaW5MYXlvdXRXaWR0aCA9IHdpZHRoICogUHJpbnRpbmdNaW5pbXVt
U2hyaW5rRmFjdG9yOwogICAgIGZsb2F0IG1pbkxheW91dEhlaWdodCA9IGhlaWdodCAqIFByaW50
aW5nTWluaW11bVNocmlua0ZhY3RvcjsKIAotICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgbW9kaWZ5
IHRoZSByZW5kZXJpbmcgb2YgdGhlIG9uLXNjcmVlbiBmcmFtZS4KLSAgICAvLyBDb3VsZCBsZWFk
IHRvIGZsaWNrZXIgZHVyaW5nIHByaW50aW5nLgorICAgIC8vIFRoaXMgY2hhbmdlcyBsYXlvdXQs
IHNvIGNhbGxlcnMgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGV5IGRvbid0IHBhaW50IHRvIHNj
cmVlbiB3aGlsZSBpbiBwcmludGluZyBtb2RlLgogICAgIG1fZnJhbWUtPnNldFByaW50aW5nKHRy
dWUsIEZsb2F0U2l6ZShtaW5MYXlvdXRXaWR0aCwgbWluTGF5b3V0SGVpZ2h0KSwgUHJpbnRpbmdN
YXhpbXVtU2hyaW5rRmFjdG9yIC8gUHJpbnRpbmdNaW5pbXVtU2hyaW5rRmFjdG9yLCBGcmFtZTo6
QWRqdXN0Vmlld1NpemUpOwogfQogCitmbG9hdCBQcmludENvbnRleHQ6OmNvbXB1dGVBdXRvbWF0
aWNTY2FsZUZhY3RvcihmbG9hdCBhdmFpbGFibGVQYXBlcldpZHRoKQoreworICAgIGlmICghbV9m
cmFtZS0+dmlldygpKQorICAgICAgICByZXR1cm4gMS4wZjsKKworICAgIGZsb2F0IHZpZXdXaWR0
aCA9IG1fZnJhbWUtPnZpZXcoKS0+Y29udGVudHNXaWR0aCgpOworICAgIGlmICh2aWV3V2lkdGgg
PCAxKQorICAgICAgICByZXR1cm4gMS4wZjsKKworICAgIGZsb2F0IG1heFNocmlua1RvRml0U2Nh
bGVGYWN0b3IgPSAxLjBmIC8gUHJpbnRpbmdNYXhpbXVtU2hyaW5rRmFjdG9yOworICAgIGZsb2F0
IHNocmlua1RvRml0U2NhbGVGYWN0b3IgPSBhdmFpbGFibGVQYXBlcldpZHRoIC8gdmlld1dpZHRo
OworICAgIHJldHVybiBtYXgobWF4U2hyaW5rVG9GaXRTY2FsZUZhY3Rvciwgc2hyaW5rVG9GaXRT
Y2FsZUZhY3Rvcik7Cit9CisKIHZvaWQgUHJpbnRDb250ZXh0OjpzcG9vbFBhZ2UoR3JhcGhpY3ND
b250ZXh0JiBjdHgsIGludCBwYWdlTnVtYmVyLCBmbG9hdCB3aWR0aCkKIHsKICAgICBJbnRSZWN0
IHBhZ2VSZWN0ID0gbV9wYWdlUmVjdHNbcGFnZU51bWJlcl07CkBAIC0xNTIsNiArMTYyLDE2IEBA
IHZvaWQgUHJpbnRDb250ZXh0OjpzcG9vbFBhZ2UoR3JhcGhpY3NDb24KICAgICBjdHgucmVzdG9y
ZSgpOwogfQogCit2b2lkIFByaW50Q29udGV4dDo6c3Bvb2xSZWN0KEdyYXBoaWNzQ29udGV4dCYg
Y3R4LCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIGN0eC5zYXZlKCk7CisgICAgY3R4LnNj
YWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgIGN0eC50cmFuc2xhdGUoMCwgLXJlY3QuaGVpZ2h0
KCkpOworICAgIGN0eC5jbGlwKHJlY3QpOworICAgIG1fZnJhbWUtPnZpZXcoKS0+cGFpbnRDb250
ZW50cygmY3R4LCByZWN0KTsKKyAgICBjdHgucmVzdG9yZSgpOworfQorCiB2b2lkIFByaW50Q29u
dGV4dDo6ZW5kKCkKIHsKICAgICBBU1NFUlQobV9pc1ByaW50aW5nKTsKQEAgLTE4OSw3ICsyMDks
NyBAQCBpbnQgUHJpbnRDb250ZXh0OjpwYWdlTnVtYmVyRm9yRWxlbWVudChFCiAKICAgICBpbnQg
dG9wID0gYm94LT5vZmZzZXRUb3AoKTsKICAgICBpbnQgbGVmdCA9IGJveC0+b2Zmc2V0TGVmdCgp
OwotICAgIGludCBwYWdlTnVtYmVyID0gMDsKKyAgICBzaXplX3QgcGFnZU51bWJlciA9IDA7CiAg
ICAgZm9yICg7IHBhZ2VOdW1iZXIgPCBwcmludENvbnRleHQucGFnZUNvdW50KCk7IHBhZ2VOdW1i
ZXIrKykgewogICAgICAgICBjb25zdCBJbnRSZWN0JiBwYWdlID0gcHJpbnRDb250ZXh0LnBhZ2VS
ZWN0KHBhZ2VOdW1iZXIpOwogICAgICAgICBpZiAocGFnZS54KCkgPD0gbGVmdCAmJiBsZWZ0IDwg
cGFnZS5yaWdodCgpICYmIHBhZ2UueSgpIDw9IHRvcCAmJiB0b3AgPCBwYWdlLmJvdHRvbSgpKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5oCShyZXZpc2lvbiA3NTgyOCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDIz
ICszOCwzOCBAQCBwdWJsaWM6CiAgICAgUHJpbnRDb250ZXh0KEZyYW1lKik7CiAgICAgflByaW50
Q29udGV4dCgpOwogCi0gICAgaW50IHBhZ2VDb3VudCgpIGNvbnN0OwotICAgIGNvbnN0IEludFJl
Y3QmIHBhZ2VSZWN0KGludCBwYWdlTnVtYmVyKSBjb25zdDsKLSAgICBjb25zdCBWZWN0b3I8SW50
UmVjdD4mIHBhZ2VSZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVJlY3RzOyB9CisgICAgRnJh
bWUqIGZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZTsgfQorCisgICAgLy8gQnJlYWsgdXAg
YSBwYWdlIGludG8gcmVjdHMgd2l0aG91dCByZWxheW91dC4KKyAgICAvLyBGSVhNRTogVGhpcyBt
ZWFucyB0aGF0IENTUyBwYWdlIGJyZWFrcyB3b24ndCBiZSBvbiBwYWdlIGJvdW5kYXJ5IGlmIHRo
ZSBzaXplIGlzIGRpZmZlcmVudCB0aGFuIHdoYXQgd2FzIHBhc3NlZCB0byBiZWdpbigpLiBUaGF0
J3MgcHJvYmFibHkgbm90IGFsd2F5cyBkZXNpcmFibGUuCisgICAgLy8gRklYTUU6IEhlYWRlciBh
bmQgZm9vdGVyIGhlaWdodCBzaG91bGQgYmUgYXBwbGllZCBiZWZvcmUgbGF5b3V0LCBub3QgYWZ0
ZXIuCisgICAgLy8gRklYTUU6IFRoZSBwcmludFJlY3QgYXJndW1lbnQgaXMgb25seSB1c2VkIHRv
IGRldGVybWluZSBwYWdlIGFzcGVjdCByYXRpbywgaXQgd291bGQgYmUgYmV0dGVyIHRvIHBhc3Mg
YSBGbG9hdFNpemUgd2l0aCBwYWdlIGRpbWVuc2lvbnMgaW5zdGVhZC4KKyAgICB2b2lkIGNvbXB1
dGVQYWdlUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBwcmludFJlY3QsIGZsb2F0IGhlYWRlckhlaWdo
dCwgZmxvYXQgZm9vdGVySGVpZ2h0LCBmbG9hdCB1c2VyU2NhbGVGYWN0b3IsIGZsb2F0JiBvdXRQ
YWdlSGVpZ2h0LCBib29sIGFsbG93SG9yaXpvbnRhbE11bHRpUGFnZXMgPSBmYWxzZSk7CiAKLSAg
ICB2b2lkIGNvbXB1dGVQYWdlUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBwcmludFJlY3QsIGZsb2F0
IGhlYWRlckhlaWdodCwgZmxvYXQgZm9vdGVySGVpZ2h0LCBmbG9hdCB1c2VyU2NhbGVGYWN0b3Is
IGZsb2F0JiBvdXRQYWdlSGVpZ2h0KTsKKyAgICAvLyBEZXByZWNhdGVkLiBQYWdlIHNpemUgY29t
cHV0YXRpb24gaXMgYWxyZWFkeSBpbiB0aGlzIGNsYXNzLCBjbGllbnRzIHNob3VsZG4ndCBiZSBj
b3B5aW5nIGl0LgogICAgIHZvaWQgY29tcHV0ZVBhZ2VSZWN0c1dpdGhQYWdlU2l6ZShjb25zdCBG
bG9hdFNpemUmIHBhZ2VTaXplSW5QaXhlbHMsIGJvb2wgYWxsb3dIb3Jpem9udGFsTXVsdGlQYWdl
cyk7CiAKLSAgICAvLyBUT0RPOiBlbGltaW5hdGUgd2lkdGggcGFyYW0KKyAgICAvLyBUaGVzZSBh
cmUgb25seSB2YWxpZCBhZnRlciBwYWdlIHJlY3RzIGFyZSBjb21wdXRlZC4KKyAgICBzaXplX3Qg
cGFnZUNvdW50KCkgY29uc3Q7CisgICAgY29uc3QgSW50UmVjdCYgcGFnZVJlY3Qoc2l6ZV90IHBh
Z2VOdW1iZXIpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFnZVJlY3RzKCkg
Y29uc3QgeyByZXR1cm4gbV9wYWdlUmVjdHM7IH0KKworICAgIGZsb2F0IGNvbXB1dGVBdXRvbWF0
aWNTY2FsZUZhY3RvcihmbG9hdCBhdmFpbGFibGVQYXBlcldpZHRoKTsKKworICAgIC8vIEVudGVy
IHByaW50IG1vZGUsIHVwZGF0aW5nIGxheW91dCBmb3IgbmV3IHBhZ2Ugc2l6ZS4KKyAgICAvLyBU
aGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gYXBwbHkgbmV3IHBy
aW50IG9wdGlvbnMgd2l0aG91dCBnb2luZyBiYWNrIHRvIHNjcmVlbiBtb2RlLgogICAgIHZvaWQg
YmVnaW4oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCA9IDApOwogCi0gICAgLy8gVE9ETzogZWxp
bWluYXRlIHdpZHRoIHBhcmFtCisgICAgLy8gRklYTUU6IGVsaW1pbmF0ZSB3aWR0aCBhcmd1bWVu
dC4KICAgICB2b2lkIHNwb29sUGFnZShHcmFwaGljc0NvbnRleHQmIGN0eCwgaW50IHBhZ2VOdW1i
ZXIsIGZsb2F0IHdpZHRoKTsKIAorICAgIHZvaWQgc3Bvb2xSZWN0KEdyYXBoaWNzQ29udGV4dCYg
Y3R4LCBjb25zdCBJbnRSZWN0Jik7CisKKyAgICAvLyBSZXR1cm4gdG8gc2NyZWVuIG1vZGUuCiAg
ICAgdm9pZCBlbmQoKTsKIAogICAgIC8vIFVzZWQgYnkgbGF5b3V0IHRlc3RzLgotICAgIHN0YXRp
YyBpbnQgcGFnZU51bWJlckZvckVsZW1lbnQoRWxlbWVudCosIGNvbnN0IEZsb2F0U2l6ZSYgcGFn
ZVNpemVJblBpeGVscyk7CisgICAgc3RhdGljIGludCBwYWdlTnVtYmVyRm9yRWxlbWVudChFbGVt
ZW50KiwgY29uc3QgRmxvYXRTaXplJiBwYWdlU2l6ZUluUGl4ZWxzKTsgLy8gUmV0dXJucyAtMSBp
ZiBwYWdlIGlzbid0IGZvdW5kLgogICAgIHN0YXRpYyBTdHJpbmcgcGFnZVByb3BlcnR5KEZyYW1l
KiBmcmFtZSwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBpbnQgcGFnZU51bWJlcik7CiAgICAg
c3RhdGljIGJvb2wgaXNQYWdlQm94VmlzaWJsZShGcmFtZSogZnJhbWUsIGludCBwYWdlTnVtYmVy
KTsKICAgICBzdGF0aWMgU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKEZyYW1lKiBm
cmFtZSwgaW50IHBhZ2VOdW1iZXIsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IG1hcmdpblRv
cCwgaW50IG1hcmdpblJpZ2h0LCBpbnQgbWFyZ2luQm90dG9tLCBpbnQgbWFyZ2luTGVmdCk7Cg==
</data>
<flag name="review"
          id="70424"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>