<?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>22805</bug_id>
          
          <creation_ts>2008-12-10 23:14:21 -0800</creation_ts>
          <short_desc>Implement image/URL dragging for Windows Cairo backend</short_desc>
          <delta_ts>2008-12-12 22:32:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>102210</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2008-12-10 23:14:21 -0800</bug_when>
    <thetext>The DragImageCairoWin.cpp was basically a stub that didn&apos;t do anything.  The attached patch provides an implementation of the corresponding CG code in terms of the Cairo API.  This allows URL drag images to appear, as well as enabling the dragging of images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102211</commentid>
    <comment_count>1</comment_count>
      <attachid>25942</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2008-12-10 23:33:58 -0800</bug_when>
    <thetext>Created attachment 25942
Patch implementing Windows Cairo image drag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102212</commentid>
    <comment_count>2</comment_count>
      <attachid>25942</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-12-10 23:41:43 -0800</bug_when>
    <thetext>Comment on attachment 25942
Patch implementing Windows Cairo image drag.

Do we have a typedef that encapsulates CGContextRef and struct _cairo* ?

If we do we can remove the icky ifdefs in WebDragClient.cpp, but i think it would be much better if we could get this code to  work in terms of GraphicsContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102248</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2008-12-11 10:29:06 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 25942 [review])
&gt; Do we have a typedef that encapsulates CGContextRef and struct _cairo* ?
&gt; 
&gt; If we do we can remove the icky ifdefs in WebDragClient.cpp, but i think it
&gt; would be much better if we could get this code to  work in terms of
&gt; GraphicsContext

There are large regions of WebKit/win that are coded in terms of CoreGraphics primitives, that are just as applicable to the Cairo back-end.

I would *love* to revise these to use GraphicsContext instead -- but will that be acceptable to the Apple side of things?

This is maybe a question for Darin... 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102321</commentid>
    <comment_count>4</comment_count>
      <attachid>25974</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2008-12-11 22:15:16 -0800</bug_when>
    <thetext>Created attachment 25974
Use GraphicContext types, rather than CG-specific calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102322</commentid>
    <comment_count>5</comment_count>
      <attachid>25974</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-12-11 22:22:52 -0800</bug_when>
    <thetext>Comment on attachment 25974
Use GraphicContext types, rather than CG-specific calls.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102423</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2008-12-12 22:32:46 -0800</bug_when>
    <thetext>Committed revision 39270.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25942</attachid>
            <date>2008-12-10 23:33:58 -0800</date>
            <delta_ts>2008-12-11 22:15:16 -0800</delta_ts>
            <desc>Patch implementing Windows Cairo image drag.</desc>
            <filename>drag-image.patch</filename>
            <type>text/plain</type>
            <size>8907</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTE5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDgtMTItMTAgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UHJvdmlkZXMgaW1wbGVtZW50YXRpb24gb2YgaW1hZ2UgZHJhZ2dpbmcgbG9naWMgZm9yIFdpbmRv
d3MgQ2Fpcm8KKyAgICAgICAgYmFjay1lbmQuCisKKyAgICAgICAgU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgwNQorCisgICAgICAgICogcGxhdGZvcm0vd2lu
L0RyYWdJbWFnZUNhaXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFsbG9jSW1hZ2UpOiBO
ZXcgaW1wbGVtZW50YXRpb24gdG8gYWxsb2NhdGUgYSBDYWlybyBzdXJmYWNlCisgICAgICAgIG9m
IGEgc3BlY2lmaWVkIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDYWlyb0NvbnRleHRG
cm9tQml0bWFwKTogTmV3IGltcGxlbWVudGF0aW9uIHRvCisgICAgICAgIGNyZWF0ZSBhIENhaXJv
IHN1cmZhY2UgZnJvbSBhIFdpbmRvd3MgQklUTUFQLgorICAgICAgICAoV2ViQ29yZTo6c2NhbGVE
cmFnSW1hZ2UpOiBSZXBsYWNlIHN0dWIgd2l0aCBpbXBsZW1lbnRhdGlvbiB0byBhY3R1YWxseQor
ICAgICAgICBjcmVhdGUgYSBzY2FsZWQgaW1hZ2UuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVE
cmFnSW1hZ2VGcm9tSW1hZ2UpOiBSZXBsYWNlIHN0dWIgd2l0aCBpbXBsZW1lbnRhdGlvbgorICAg
ICAgICB0byBhY3R1YWxseSBjcmVhdGUgYW4gaW1hZ2UuCisKIDIwMDgtMTItMTAgIE5pa29sYXMg
WmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwgYW5kIEdlb3JnZSBTdGFpa29zLgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ2Fpcm9XaW4uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNhaXJvV2luLmNwcAkocmV2aXNpb24gMzkxOTcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDI1ICsyOSwxNjUgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCi0jaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZXRhaW5QdHIuaCIKIAorI2luY2x1ZGUgPGNh
aXJvLXdpbjMyLmg+CisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fp
cm8uaCIKKwogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAorZXh0ZXJuICJDIiB7Cit0eXBlZGVmIHN0
cnVjdCBfY2Fpcm8qIENhaXJvQ29udGV4dFJlZjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitIQklUTUFQIGFsbG9jSW1hZ2UoSERDIGRjLCBJbnRTaXplIHNpemUsIENhaXJvQ29udGV4dFJl
ZiogdGFyZ2V0UmVmKQoreworICAgIEJJVE1BUElORk8gYm1wSW5mbyA9IHswfTsKKyAgICBibXBJ
bmZvLmJtaUhlYWRlci5iaVNpemUgPSBzaXplb2YoQklUTUFQSU5GT0hFQURFUik7CisgICAgYm1w
SW5mby5ibWlIZWFkZXIuYmlXaWR0aCA9IHNpemUud2lkdGgoKTsKKyAgICBibXBJbmZvLmJtaUhl
YWRlci5iaUhlaWdodCA9IHNpemUuaGVpZ2h0KCk7IC8vIE11c3QgYmUgcG9zaXRpdmUhCisgICAg
Ym1wSW5mby5ibWlIZWFkZXIuYmlQbGFuZXMgPSAxOworICAgIGJtcEluZm8uYm1pSGVhZGVyLmJp
Qml0Q291bnQgPSAzMjsKKyAgICBibXBJbmZvLmJtaUhlYWRlci5iaUNvbXByZXNzaW9uID0gQklf
UkdCOworICAgIGJtcEluZm8uYm1pSGVhZGVyLmJpQ2xyVXNlZCA9IDA7CS8vIHVudXNlZAorICAg
IGJtcEluZm8uYm1pSGVhZGVyLmJpQ2xySW1wb3J0YW50ID0gMDsKKworICAgIExQVk9JRCBiaXRz
OworICAgIEhCSVRNQVAgaGJtcCA9IENyZWF0ZURJQlNlY3Rpb24oZGMsICZibXBJbmZvLCBESUJf
UkdCX0NPTE9SUywgJmJpdHMsIDAsIDApOworCisgICAgLy8gQXQgdGhpcyBwb2ludCwgd2UgaGF2
ZSBhIENhaXJvIHN1cmZhY2UgdGhhdCBwb2ludHMgdG8gYSBXaW5kb3dzIERJQi4gIFRoZSBESUIg
aW50ZXJwcmV0cworICAgIC8vIHdpdGggdGhlIG9wcG9zaXRlIG1lYW5pbmcgb2YgcG9zaXRpdmUg
WSBheGlzLCBzbyBldmVyeXRoaW5nIHdlIGRyYXcgaW50byB0aGlzIGNhaXJvCisgICAgLy8gY29u
dGV4dCBpcyBnb2luZyB0byBiZSB1cHNpZGUgZG93bi4KKyAgICBpZiAoIXRhcmdldFJlZikKKyAg
ICAgICAgcmV0dXJuIGhibXA7CisKKyAgICBjYWlyb19zdXJmYWNlX3QqIGJpdG1hcENvbnRleHQg
PSBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YSgodW5zaWduZWQgY2hhciopYml0
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FJUk9f
Rk9STUFUX0FSR0IzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm1wSW5mby5ibWlIZWFkZXIuYmlXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm1wSW5mby5ibWlIZWFkZXIuYmlIZWlnaHQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJtcEluZm8uYm1pSGVh
ZGVyLmJpV2lkdGggKiA0KTsKKworICAgIGlmICghYml0bWFwQ29udGV4dCkgeworICAgICAgICBE
ZWxldGVPYmplY3QoaGJtcCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgICp0YXJn
ZXRSZWYgPSBjYWlyb19jcmVhdGUgKGJpdG1hcENvbnRleHQpOworICAgIGNhaXJvX3N1cmZhY2Vf
ZGVzdHJveSAoYml0bWFwQ29udGV4dCk7CisKKyAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZl
IGEgQ2Fpcm8gc3VyZmFjZSB0aGF0IHBvaW50cyB0byBhIFdpbmRvd3MgRElCLiAgVGhlIERJQiBp
bnRlcnByZXRzCisgICAgLy8gd2l0aCB0aGUgb3Bwb3NpdGUgbWVhbmluZyBvZiBwb3NpdGl2ZSBZ
IGF4aXMsIHNvIGV2ZXJ5dGhpbmcgd2UgZHJhdyBpbnRvIHRoaXMgY2Fpcm8KKyAgICAvLyBjb250
ZXh0IGlzIGdvaW5nIHRvIGJlIHVwc2lkZSBkb3duLgorICAgIC8vCisgICAgLy8gU28sIHdlIG11
c3QgaW52ZXJ0IHRoZSBDVE0gZm9yIHRoZSBjb250ZXh0IHNvIHRoYXQgZHJhd2luZyBjb21tYW5k
cyB3aWxsIGJlIGZsaXBwZWQKKyAgICAvLyBiZWZvcmUgdGhleSBnZXQgd3JpdHRlbiB0byB0aGUg
aW50ZXJuYWwgYnVmZmVyLgorICAgIGNhaXJvX21hdHJpeF90IG1hdHJpeDsKKyAgICBjYWlyb19t
YXRyaXhfaW5pdCgmbWF0cml4LCAxLjAsIDAuMCwgMC4wLCAtMS4wLCAwLjAsIHNpemUuaGVpZ2h0
KCkpOworICAgIGNhaXJvX3NldF9tYXRyaXgoKnRhcmdldFJlZiwgJm1hdHJpeCk7CisKKyAgICBy
ZXR1cm4gaGJtcDsKK30KKworc3RhdGljIGNhaXJvX3N1cmZhY2VfdCogY3JlYXRlQ2Fpcm9Db250
ZXh0RnJvbUJpdG1hcChIQklUTUFQIGJpdG1hcCkKK3sKKyAgICBCSVRNQVAgaW5mbzsKKyAgICBH
ZXRPYmplY3QoYml0bWFwLCBzaXplb2YoaW5mbyksICZpbmZvKTsKKyAgICBBU1NFUlQoaW5mby5i
bUJpdHNQaXhlbCA9PSAzMik7CisKKyAgICAvLyBBdCB0aGlzIHBvaW50LCB3ZSBoYXZlIGEgQ2Fp
cm8gc3VyZmFjZSB0aGF0IHBvaW50cyB0byBhIFdpbmRvd3MgQklUTUFQLiAgVGhlIEJJVE1BUAor
ICAgIC8vIGhhcyB0aGUgb3Bwb3NpdGUgbWVhbmluZyBvZiBwb3NpdGl2ZSBZIGF4aXMsIHNvIGV2
ZXJ5dGhpbmcgd2UgZHJhdyBpbnRvIHRoaXMgY2Fpcm8KKyAgICAvLyBjb250ZXh0IGlzIGdvaW5n
IHRvIGJlIHVwc2lkZSBkb3duLgorICAgIHJldHVybiBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0
ZV9mb3JfZGF0YSgodW5zaWduZWQgY2hhciopaW5mby5ibUJpdHMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBSVJPX0ZPUk1BVF9BUkdCMzIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8uYm1XaWR0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5ibUhl
aWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5m
by5ibVdpZHRoQnl0ZXMpOworfQorCiBEcmFnSW1hZ2VSZWYgc2NhbGVEcmFnSW1hZ2UoRHJhZ0lt
YWdlUmVmIGltYWdlLCBGbG9hdFNpemUgc2NhbGUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICAvLyBGSVhNRTogZHVlIHRvIHRoZSB3YXkgZHJhZyBpbWFnZXMgYXJlIGRvbmUgb24gd2lu
ZG93cyB3ZSBuZWVkIAorICAgIC8vIHRvIHByZXByb2Nlc3MgdGhlIGFscGhhIGNoYW5uZWwgPHJk
YXI6Ly9wcm9ibGVtLzUwMTU5NDY+CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBJbnRTaXplIHNyY1NpemUgPSBkcmFnSW1hZ2VTaXplKGltYWdlKTsKKyAgICBJbnRT
aXplIGRzdFNpemUoc3RhdGljX2Nhc3Q8aW50PihzcmNTaXplLndpZHRoKCkgKiBzY2FsZS53aWR0
aCgpKSwgc3RhdGljX2Nhc3Q8aW50PihzcmNTaXplLmhlaWdodCgpICogc2NhbGUuaGVpZ2h0KCkp
KTsKKworICAgIEhCSVRNQVAgaGJtcCA9IDA7CisgICAgSERDIGRjID0gR2V0REMoMCk7CisgICAg
SERDIGRzdERDID0gQ3JlYXRlQ29tcGF0aWJsZURDKGRjKTsKKworICAgIGlmICghZHN0REMpCisg
ICAgICAgIGdvdG8gZXhpdDsKKworICAgIENhaXJvQ29udGV4dFJlZiB0YXJnZXRDb250ZXh0Owor
ICAgIGhibXAgPSBhbGxvY0ltYWdlKGRzdERDLCBkc3RTaXplLCAmdGFyZ2V0Q29udGV4dCk7Cisg
ICAgaWYgKCFoYm1wKQorICAgICAgICBnb3RvIGV4aXQ7CisKKyAgICBjYWlyb19zdXJmYWNlX3Qq
IHNyY0ltYWdlID0gY3JlYXRlQ2Fpcm9Db250ZXh0RnJvbUJpdG1hcChpbWFnZSk7CisKKyAgICAv
LyBTY2FsZSB0aGUgdGFyZ2V0IHN1cmZhY2UgdG8gdGhlIG5ldyBpbWFnZSBzaXplLCBhbmQgZmxp
cCBpdAorICAgIC8vIHNvIHRoYXQgd2hlbiB3ZSBzZXQgdGhlIHNyY0ltYWdlIGFzIHRoZSBzdXJm
YWNlIGl0IHdpbGwgZHJhdworICAgIC8vIHJpZ2h0LXNpZGUtdXAuCisgICAgY2Fpcm9fdHJhbnNs
YXRlKHRhcmdldENvbnRleHQsIDAsIGRzdFNpemUuaGVpZ2h0KCkpOworICAgIGNhaXJvX3NjYWxl
KHRhcmdldENvbnRleHQsIHNjYWxlLndpZHRoKCksIC1zY2FsZS5oZWlnaHQoKSk7CisgICAgY2Fp
cm9fc2V0X3NvdXJjZV9zdXJmYWNlICh0YXJnZXRDb250ZXh0LCBzcmNJbWFnZSwgMC4wLCAwLjAp
OworCisgICAgLy8gTm93IHdlIGNhbiBwYWludCBhbmQgZ2V0IHRoZSBjb3JyZWN0IHJlc3VsdAor
ICAgIGNhaXJvX3BhaW50KHRhcmdldENvbnRleHQpOwogCi0gICAgcmV0dXJuIGltYWdlOworICAg
IGNhaXJvX3N1cmZhY2VfZGVzdHJveSAoc3JjSW1hZ2UpOworICAgIGNhaXJvX2Rlc3Ryb3kodGFy
Z2V0Q29udGV4dCk7CisgICAgOjpEZWxldGVPYmplY3QoaW1hZ2UpOworICAgIGltYWdlID0gMDsK
KworZXhpdDoKKyAgICBpZiAoIWhibXApCisgICAgICAgIGhibXAgPSBpbWFnZTsKKyAgICBpZiAo
ZHN0REMpCisgICAgICAgIERlbGV0ZURDKGRzdERDKTsKKyAgICBSZWxlYXNlREMoMCwgZGMpOwor
ICAgIHJldHVybiBoYm1wOwogfQogICAgIAogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZy
b21JbWFnZShJbWFnZSogaW1nKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgSEJJVE1B
UCBoYm1wID0gMDsKKyAgICBIREMgZGMgPSBHZXREQygwKTsKKyAgICBIREMgd29ya2luZ0RDID0g
Q3JlYXRlQ29tcGF0aWJsZURDKGRjKTsKKyAgICBpZiAoIXdvcmtpbmdEQykKKyAgICAgICAgZ290
byBleGl0OworCisgICAgQ2Fpcm9Db250ZXh0UmVmIGRyYXdDb250ZXh0ID0gMDsKKyAgICBoYm1w
ID0gYWxsb2NJbWFnZSh3b3JraW5nREMsIGltZy0+c2l6ZSgpLCAmZHJhd0NvbnRleHQpOworICAg
IGlmICghaGJtcCkKKyAgICAgICAgZ290byBleGl0OworCisgICAgaWYgKCFkcmF3Q29udGV4dCkg
eworICAgICAgICA6OkRlbGV0ZU9iamVjdChoYm1wKTsKKyAgICAgICAgaGJtcCA9IDA7CisgICAg
fQorCisgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2IgKGRyYXdDb250ZXh0LCAxLjAsIDAuMCwgMS4w
KTsKKyAgICBjYWlyb19maWxsX3ByZXNlcnZlIChkcmF3Q29udGV4dCk7CisKKyAgICBjYWlyb19z
dXJmYWNlX3QqIHNyY0ltYWdlID0gaW1nLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwor
CisgICAgLy8gRHJhdyB0aGUgaW1hZ2UuCisgICAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlKGRy
YXdDb250ZXh0LCBzcmNJbWFnZSwgMC4wLCAwLjApOworICAgIGNhaXJvX3BhaW50KGRyYXdDb250
ZXh0KTsKKworICAgIGNhaXJvX2Rlc3Ryb3kgKGRyYXdDb250ZXh0KTsKIAotICAgIHJldHVybiAw
OworZXhpdDoKKyAgICBpZiAod29ya2luZ0RDKQorICAgICAgICBEZWxldGVEQyh3b3JraW5nREMp
OworICAgIFJlbGVhc2VEQygwLCBkYyk7CisgICAgcmV0dXJuIGhibXA7CiB9CiAgICAgCiB9Cklu
ZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5n
ZUxvZwkocmV2aXNpb24gMzkxOTgpCisrKyBXZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDA4LTEyLTEwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdo
YW1AZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgwNUEKKwor
ICAgICAgICBQcm92aWRlIGltcGxlbWVudGF0aW9uIG9mIGltYWdlIGRyYWcgZm9yIFdpbmRvd3Mg
Q2Fpcm8gYmFjay1lbmQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkRyYWdDbGllbnQ6OmNyZWF0ZURyYWdJbWFnZUZvckxpbmspOiAg
UHJvdmlkZSBhbHRlcm5hdGUgQ2Fpcm8KKyAgICAgICAgaW1wbGVtZW50YXRpb24gYXMgI2VsaWYg
UExBVEZPUk0oQ0FJUk8pLgorCiAyMDA4LTEyLTA5ICBCcmV0dCBXaWxzb24gIDxicmV0dHdAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCkluZGV4OiBXZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAJKHJldmlzaW9uIDM5MTk3
KQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xpZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNyArMzAsOSBAQAogI2luY2x1ZGUgIldlYlZpZXcuaCIKIAogI2luY2x1
ZGUgPHNobG9iai5oPgorI2lmIFBMQVRGT1JNKENHKQogI2luY2x1ZGUgPENvcmVHcmFwaGljcy9D
b3JlR3JhcGhpY3MuaD4KKyNlbmRpZgogCiAjcHJhZ21hIHdhcm5pbmcocHVzaCwgMCkgCiAjaW5j
bHVkZSA8V2ViQ29yZS9DbGlwYm9hcmRXaW4uaD4KQEAgLTQ2LDcgKzQ4LDExIEBACiAjcHJhZ21h
IHdhcm5pbmcocG9wKSAKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworI2lmIFBMQVRGT1JNKENHKQog
ICAgIEhCSVRNQVAgYWxsb2NJbWFnZShIREMgZGMsIEludFNpemUgc2l6ZSwgQ0dDb250ZXh0UmVm
ICp0YXJnZXRSZWYpOworI2VsaWYgUExBVEZPUk0oQ0FJUk8pCisgICAgSEJJVE1BUCBhbGxvY0lt
YWdlKEhEQyBkYywgSW50U2l6ZSBzaXplLCBzdHJ1Y3QgX2NhaXJvKiogdGFyZ2V0UmVmKTsKKyNl
bmRpZgogfQogCiAKQEAgLTIyMyw3ICsyMjksMTEgQEAgRHJhZ0ltYWdlUmVmIFdlYkRyYWdDbGll
bnQ6OmNyZWF0ZURyYWdJbQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKKyNpZiBQTEFURk9S
TShDRykKICAgICBDR0NvbnRleHRSZWYgY29udGV4dFJlZjsKKyNlbGlmIFBMQVRGT1JNKENBSVJP
KQorICAgIHN0cnVjdCBfY2Fpcm8qIGNvbnRleHRSZWY7CisjZW5kaWYKICAgICBpbWFnZSA9IGFs
bG9jSW1hZ2Uod29ya2luZ0RDLCBpbWFnZVNpemUsICZjb250ZXh0UmVmKTsKICAgICBpZiAoIWlt
YWdlKSB7CiAgICAgICAgIERlbGV0ZURDKHdvcmtpbmdEQyk7CkBAIC0yNTcsNyArMjY3LDEyIEBA
IERyYWdJbWFnZVJlZiBXZWJEcmFnQ2xpZW50OjpjcmVhdGVEcmFnSW0KICAgICBJbnRQb2ludCB0
ZXh0UG9zKERSQUdfTEFCRUxfQk9SREVSX1gsIERSQUdfTEFCRUxfQk9SREVSX1kgKyBsYWJlbEZv
bnQucGl4ZWxTaXplKCkpOwogICAgIFdlYkNvcmVEcmF3RG91YmxlZFRleHRBdFBvaW50KGNvbnRl
eHQsIGxhYmVsLCB0ZXh0UG9zLCBsYWJlbEZvbnQsIHRvcENvbG9yLCBib3R0b21Db2xvcik7CiAK
KyNpZiBQTEFURk9STShDRykKICAgICBDR0NvbnRleHRSZWxlYXNlKGNvbnRleHRSZWYpOworI2Vs
aWYgUExBVEZPUk0oQ0FJUk8pCisgICAgY2Fpcm9fZGVzdHJveShjb250ZXh0UmVmKTsKKyNlbmRp
ZgorCiAgICAgRGVsZXRlREMod29ya2luZ0RDKTsKICAgICBSZWxlYXNlREMoMCwgZGMpOwogICAg
IHJldHVybiBpbWFnZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25974</attachid>
            <date>2008-12-11 22:15:16 -0800</date>
            <delta_ts>2008-12-11 22:22:52 -0800</delta_ts>
            <desc>Use GraphicContext types, rather than CG-specific calls.</desc>
            <filename>cairo-drag.patch</filename>
            <type>text/plain</type>
            <size>9688</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTIyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDgtMTItMTEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBnbWFp
bC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjgwNQorCisg
ICAgICAgIFByb3ZpZGVzIGltcGxlbWVudGF0aW9uIG9mIGltYWdlIGRyYWdnaW5nIGxvZ2ljIGZv
ciBXaW5kb3dzIENhaXJvCisgICAgICAgIGJhY2stZW5kLgorCisgICAgICAgICogcGxhdGZvcm0v
d2luL0RyYWdJbWFnZUNHV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRlYWxsb2NDb250ZXh0
KTogQWRkIGEgZ2VuZXJpYyBDR0NvbnRleHRSZWYgZGVzdHJ1Y3Rvci4KKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vRHJhZ0ltYWdlQ2Fpcm9XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGVhbGxv
Y0NvbnRleHQpOiBBZGQgYSBnZW5lcmljIGNhaXJvXyogZGVzdHJ1Y3Rvci4gCisgICAgICAgIChX
ZWJDb3JlOjphbGxvY0ltYWdlKTogIE5ldyBpbXBsZW1lbnRhdGlvbiB0byBhbGxvY2F0ZSBhIENh
aXJvCisgICAgICAgIHN1cmZhY2Ugb2YgYSBzcGVjaWZpZWQgc2l6ZS4KKyAgICAgICAgKFdlYkNv
cmU6OmNyZWF0ZUNhaXJvQ29udGV4dEZyb21CaXRtYXApOiBOZXcgaW1wbGVtZW50YXRpb24gdG8K
KyAgICAgICAgY3JlYXRlIGEgQ2Fpcm8gc3VyZmFjZSBmcm9tIGEgV2luZG93cyBCSVRNQVAuCisg
ICAgICAgIChXZWJDb3JlOjpzY2FsZURyYWdJbWFnZSk6IFJlcGxhY2Ugc3R1YiB3aXRoIGltcGxl
bWVudGF0aW9uIHRvCisgICAgICAgIGFjdHVhbGx5IGNyZWF0ZSBhIHNjYWxlZCBpbWFnZS4KKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZSk6IFJlcGxhY2Ugc3R1YiB3
aXRoIGltcGxlbWVudGF0aW9uCisgICAgICAgIHRvIGFjdHVhbGx5IGNyZWF0ZSBhbiBpbWFnZS4K
KwogMjAwOC0xMi0xMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bmlrb2xhcy56aW1tZXJtYW5uQHRv
cmNobW9iaWxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIb2xnZXIgRnJleXRoZXIuCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDR1dpbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ0dXaW4uY3BwCShyZXZpc2lvbiAzOTIx
MykKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNHV2luLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzcsNiArMzcsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2b2lkIGRl
YWxsb2NDb250ZXh0KENHQ29udGV4dFJlZiB0YXJnZXQpCit7CisgICAgQ0dDb250ZXh0UmVsZWFz
ZSh0YXJnZXQpOworfQorCiBIQklUTUFQIGFsbG9jSW1hZ2UoSERDIGRjLCBJbnRTaXplIHNpemUs
IENHQ29udGV4dFJlZiAqdGFyZ2V0UmVmKQogewogICAgIEhCSVRNQVAgaGJtcDsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZUNhaXJvV2luLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VDYWlyb1dpbi5jcHAJKHJldmlzaW9uIDM5MjEz
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlQ2Fpcm9XaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwyNSArMjksMTcwIEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUmV0YWluUHRyLmgiCiAKKyNpbmNsdWRlIDxj
YWlyby13aW4zMi5oPgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNh
aXJvLmgiCisKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAKK2V4dGVybiAiQyIgewordHlwZWRlZiBz
dHJ1Y3QgX2NhaXJvKiBDYWlyb0NvbnRleHRSZWY7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAordm9pZCBkZWFsbG9jQ29udGV4dChDYWlyb0NvbnRleHRSZWYgdGFyZ2V0KQoreworICAgIGNh
aXJvX2Rlc3Ryb3kodGFyZ2V0KTsKK30KKworSEJJVE1BUCBhbGxvY0ltYWdlKEhEQyBkYywgSW50
U2l6ZSBzaXplLCBDYWlyb0NvbnRleHRSZWYqIHRhcmdldFJlZikKK3sKKyAgICBCSVRNQVBJTkZP
IGJtcEluZm8gPSB7MH07CisgICAgYm1wSW5mby5ibWlIZWFkZXIuYmlTaXplID0gc2l6ZW9mKEJJ
VE1BUElORk9IRUFERVIpOworICAgIGJtcEluZm8uYm1pSGVhZGVyLmJpV2lkdGggPSBzaXplLndp
ZHRoKCk7CisgICAgYm1wSW5mby5ibWlIZWFkZXIuYmlIZWlnaHQgPSBzaXplLmhlaWdodCgpOyAv
LyBNdXN0IGJlIHBvc2l0aXZlIQorICAgIGJtcEluZm8uYm1pSGVhZGVyLmJpUGxhbmVzID0gMTsK
KyAgICBibXBJbmZvLmJtaUhlYWRlci5iaUJpdENvdW50ID0gMzI7CisgICAgYm1wSW5mby5ibWlI
ZWFkZXIuYmlDb21wcmVzc2lvbiA9IEJJX1JHQjsKKyAgICBibXBJbmZvLmJtaUhlYWRlci5iaUNs
clVzZWQgPSAwOwkvLyB1bnVzZWQKKyAgICBibXBJbmZvLmJtaUhlYWRlci5iaUNsckltcG9ydGFu
dCA9IDA7CisKKyAgICBMUFZPSUQgYml0czsKKyAgICBIQklUTUFQIGhibXAgPSBDcmVhdGVESUJT
ZWN0aW9uKGRjLCAmYm1wSW5mbywgRElCX1JHQl9DT0xPUlMsICZiaXRzLCAwLCAwKTsKKworICAg
IC8vIEF0IHRoaXMgcG9pbnQsIHdlIGhhdmUgYSBDYWlybyBzdXJmYWNlIHRoYXQgcG9pbnRzIHRv
IGEgV2luZG93cyBESUIuICBUaGUgRElCIGludGVycHJldHMKKyAgICAvLyB3aXRoIHRoZSBvcHBv
c2l0ZSBtZWFuaW5nIG9mIHBvc2l0aXZlIFkgYXhpcywgc28gZXZlcnl0aGluZyB3ZSBkcmF3IGlu
dG8gdGhpcyBjYWlybworICAgIC8vIGNvbnRleHQgaXMgZ29pbmcgdG8gYmUgdXBzaWRlIGRvd24u
CisgICAgaWYgKCF0YXJnZXRSZWYpCisgICAgICAgIHJldHVybiBoYm1wOworCisgICAgY2Fpcm9f
c3VyZmFjZV90KiBiaXRtYXBDb250ZXh0ID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9y
X2RhdGEoKHVuc2lnbmVkIGNoYXIqKWJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENBSVJPX0ZPUk1BVF9BUkdCMzIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJtcEluZm8uYm1pSGVhZGVyLmJpV2lkdGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJtcEluZm8u
Ym1pSGVhZGVyLmJpSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBibXBJbmZvLmJtaUhlYWRlci5iaVdpZHRoICogNCk7CisKKyAgICBpZiAoIWJp
dG1hcENvbnRleHQpIHsKKyAgICAgICAgRGVsZXRlT2JqZWN0KGhibXApOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisKKyAgICAqdGFyZ2V0UmVmID0gY2Fpcm9fY3JlYXRlIChiaXRtYXBDb250
ZXh0KTsKKyAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kgKGJpdG1hcENvbnRleHQpOworCisgICAg
Ly8gQXQgdGhpcyBwb2ludCwgd2UgaGF2ZSBhIENhaXJvIHN1cmZhY2UgdGhhdCBwb2ludHMgdG8g
YSBXaW5kb3dzIERJQi4gIFRoZSBESUIgaW50ZXJwcmV0cworICAgIC8vIHdpdGggdGhlIG9wcG9z
aXRlIG1lYW5pbmcgb2YgcG9zaXRpdmUgWSBheGlzLCBzbyBldmVyeXRoaW5nIHdlIGRyYXcgaW50
byB0aGlzIGNhaXJvCisgICAgLy8gY29udGV4dCBpcyBnb2luZyB0byBiZSB1cHNpZGUgZG93bi4K
KyAgICAvLworICAgIC8vIFNvLCB3ZSBtdXN0IGludmVydCB0aGUgQ1RNIGZvciB0aGUgY29udGV4
dCBzbyB0aGF0IGRyYXdpbmcgY29tbWFuZHMgd2lsbCBiZSBmbGlwcGVkCisgICAgLy8gYmVmb3Jl
IHRoZXkgZ2V0IHdyaXR0ZW4gdG8gdGhlIGludGVybmFsIGJ1ZmZlci4KKyAgICBjYWlyb19tYXRy
aXhfdCBtYXRyaXg7CisgICAgY2Fpcm9fbWF0cml4X2luaXQoJm1hdHJpeCwgMS4wLCAwLjAsIDAu
MCwgLTEuMCwgMC4wLCBzaXplLmhlaWdodCgpKTsKKyAgICBjYWlyb19zZXRfbWF0cml4KCp0YXJn
ZXRSZWYsICZtYXRyaXgpOworCisgICAgcmV0dXJuIGhibXA7Cit9CisKK3N0YXRpYyBjYWlyb19z
dXJmYWNlX3QqIGNyZWF0ZUNhaXJvQ29udGV4dEZyb21CaXRtYXAoSEJJVE1BUCBiaXRtYXApCit7
CisgICAgQklUTUFQIGluZm87CisgICAgR2V0T2JqZWN0KGJpdG1hcCwgc2l6ZW9mKGluZm8pLCAm
aW5mbyk7CisgICAgQVNTRVJUKGluZm8uYm1CaXRzUGl4ZWwgPT0gMzIpOworCisgICAgLy8gQXQg
dGhpcyBwb2ludCwgd2UgaGF2ZSBhIENhaXJvIHN1cmZhY2UgdGhhdCBwb2ludHMgdG8gYSBXaW5k
b3dzIEJJVE1BUC4gIFRoZSBCSVRNQVAKKyAgICAvLyBoYXMgdGhlIG9wcG9zaXRlIG1lYW5pbmcg
b2YgcG9zaXRpdmUgWSBheGlzLCBzbyBldmVyeXRoaW5nIHdlIGRyYXcgaW50byB0aGlzIGNhaXJv
CisgICAgLy8gY29udGV4dCBpcyBnb2luZyB0byBiZSB1cHNpZGUgZG93bi4KKyAgICByZXR1cm4g
Y2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoKHVuc2lnbmVkIGNoYXIqKWluZm8u
Ym1CaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
QUlST19GT1JNQVRfQVJHQjMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbmZvLmJtV2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluZm8uYm1IZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluZm8uYm1XaWR0aEJ5dGVzKTsKK30KKwogRHJhZ0ltYWdl
UmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiBpbWFnZSwgRmxvYXRTaXplIHNjYWxlKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8gRklYTUU6IGR1ZSB0byB0aGUgd2F5IGRy
YWcgaW1hZ2VzIGFyZSBkb25lIG9uIHdpbmRvd3Mgd2UgbmVlZCAKKyAgICAvLyB0byBwcmVwcm9j
ZXNzIHRoZSBhbHBoYSBjaGFubmVsIDxyZGFyOi8vcHJvYmxlbS81MDE1OTQ2PgorICAgIGlmICgh
aW1hZ2UpCisgICAgICAgIHJldHVybiAwOworCisgICAgSW50U2l6ZSBzcmNTaXplID0gZHJhZ0lt
YWdlU2l6ZShpbWFnZSk7CisgICAgSW50U2l6ZSBkc3RTaXplKHN0YXRpY19jYXN0PGludD4oc3Jj
U2l6ZS53aWR0aCgpICogc2NhbGUud2lkdGgoKSksIHN0YXRpY19jYXN0PGludD4oc3JjU2l6ZS5o
ZWlnaHQoKSAqIHNjYWxlLmhlaWdodCgpKSk7CisKKyAgICBIQklUTUFQIGhibXAgPSAwOworICAg
IEhEQyBkYyA9IEdldERDKDApOworICAgIEhEQyBkc3REQyA9IENyZWF0ZUNvbXBhdGlibGVEQyhk
Yyk7CisKKyAgICBpZiAoIWRzdERDKQorICAgICAgICBnb3RvIGV4aXQ7CisKKyAgICBDYWlyb0Nv
bnRleHRSZWYgdGFyZ2V0Q29udGV4dDsKKyAgICBoYm1wID0gYWxsb2NJbWFnZShkc3REQywgZHN0
U2l6ZSwgJnRhcmdldENvbnRleHQpOworICAgIGlmICghaGJtcCkKKyAgICAgICAgZ290byBleGl0
OworCisgICAgY2Fpcm9fc3VyZmFjZV90KiBzcmNJbWFnZSA9IGNyZWF0ZUNhaXJvQ29udGV4dEZy
b21CaXRtYXAoaW1hZ2UpOworCisgICAgLy8gU2NhbGUgdGhlIHRhcmdldCBzdXJmYWNlIHRvIHRo
ZSBuZXcgaW1hZ2Ugc2l6ZSwgYW5kIGZsaXAgaXQKKyAgICAvLyBzbyB0aGF0IHdoZW4gd2Ugc2V0
IHRoZSBzcmNJbWFnZSBhcyB0aGUgc3VyZmFjZSBpdCB3aWxsIGRyYXcKKyAgICAvLyByaWdodC1z
aWRlLXVwLgorICAgIGNhaXJvX3RyYW5zbGF0ZSh0YXJnZXRDb250ZXh0LCAwLCBkc3RTaXplLmhl
aWdodCgpKTsKKyAgICBjYWlyb19zY2FsZSh0YXJnZXRDb250ZXh0LCBzY2FsZS53aWR0aCgpLCAt
c2NhbGUuaGVpZ2h0KCkpOworICAgIGNhaXJvX3NldF9zb3VyY2Vfc3VyZmFjZSAodGFyZ2V0Q29u
dGV4dCwgc3JjSW1hZ2UsIDAuMCwgMC4wKTsKIAotICAgIHJldHVybiBpbWFnZTsKKyAgICAvLyBO
b3cgd2UgY2FuIHBhaW50IGFuZCBnZXQgdGhlIGNvcnJlY3QgcmVzdWx0CisgICAgY2Fpcm9fcGFp
bnQodGFyZ2V0Q29udGV4dCk7CisKKyAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kgKHNyY0ltYWdl
KTsKKyAgICBjYWlyb19kZXN0cm95KHRhcmdldENvbnRleHQpOworICAgIDo6RGVsZXRlT2JqZWN0
KGltYWdlKTsKKyAgICBpbWFnZSA9IDA7CisKK2V4aXQ6CisgICAgaWYgKCFoYm1wKQorICAgICAg
ICBoYm1wID0gaW1hZ2U7CisgICAgaWYgKGRzdERDKQorICAgICAgICBEZWxldGVEQyhkc3REQyk7
CisgICAgUmVsZWFzZURDKDAsIGRjKTsKKyAgICByZXR1cm4gaGJtcDsKIH0KICAgICAKIERyYWdJ
bWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqIGltZykKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIEhCSVRNQVAgaGJtcCA9IDA7CisgICAgSERDIGRjID0gR2V0REMo
MCk7CisgICAgSERDIHdvcmtpbmdEQyA9IENyZWF0ZUNvbXBhdGlibGVEQyhkYyk7CisgICAgaWYg
KCF3b3JraW5nREMpCisgICAgICAgIGdvdG8gZXhpdDsKKworICAgIENhaXJvQ29udGV4dFJlZiBk
cmF3Q29udGV4dCA9IDA7CisgICAgaGJtcCA9IGFsbG9jSW1hZ2Uod29ya2luZ0RDLCBpbWctPnNp
emUoKSwgJmRyYXdDb250ZXh0KTsKKyAgICBpZiAoIWhibXApCisgICAgICAgIGdvdG8gZXhpdDsK
KworICAgIGlmICghZHJhd0NvbnRleHQpIHsKKyAgICAgICAgOjpEZWxldGVPYmplY3QoaGJtcCk7
CisgICAgICAgIGhibXAgPSAwOworICAgIH0KKworICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiIChk
cmF3Q29udGV4dCwgMS4wLCAwLjAsIDEuMCk7CisgICAgY2Fpcm9fZmlsbF9wcmVzZXJ2ZSAoZHJh
d0NvbnRleHQpOworCisgICAgY2Fpcm9fc3VyZmFjZV90KiBzcmNJbWFnZSA9IGltZy0+bmF0aXZl
SW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKworICAgIC8vIERyYXcgdGhlIGltYWdlLgorICAgIGNh
aXJvX3NldF9zb3VyY2Vfc3VyZmFjZShkcmF3Q29udGV4dCwgc3JjSW1hZ2UsIDAuMCwgMC4wKTsK
KyAgICBjYWlyb19wYWludChkcmF3Q29udGV4dCk7CisKKyAgICBjYWlyb19kZXN0cm95IChkcmF3
Q29udGV4dCk7CiAKLSAgICByZXR1cm4gMDsKK2V4aXQ6CisgICAgaWYgKHdvcmtpbmdEQykKKyAg
ICAgICAgRGVsZXRlREMod29ya2luZ0RDKTsKKyAgICBSZWxlYXNlREMoMCwgZGMpOworICAgIHJl
dHVybiBoYm1wOwogfQogICAgIAogfQpJbmRleDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5MjI2KQorKysgV2ViS2l0
L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAwOC0xMi0x
MSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlczogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODA1CisKKyAgICAgICAgUHJvdmlkZXMgaW1wbGVtZW50
YXRpb24gb2YgaW1hZ2UgZHJhZyBmb3IgV2luZG93cyBDYWlybyBiYWNrLWVuZC4KKyAgICAgICAg
U3dpdGNoIHRvIGdlbmVyaWMgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQgZGF0YSB0eXBlLCByYXRo
ZXIgdGhhbgorICAgICAgICBzcGVjaWZpYyB1c2Ugb2YgQ29yZUdyYXBoaWNzIHR5cGVzLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHA6CisgICAgICAgIChXZWJE
cmFnQ2xpZW50OjpjcmVhdGVEcmFnSW1hZ2VGb3JMaW5rKTogUmV2aXNlIGNhbGxzIHRvIHVzZSBt
b3JlCisgICAgICAgIGdlbmVyaWMgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQgZGF0YSB0eXBlcyBh
bmQgY2FsbHMgZm9yIGJldHRlcgorICAgICAgICBwb3J0YWJpbGl0eS4KKwogMjAwOC0xMi0xMCAg
R2xlbm4gV2lsc29uICA8Z3dpbHNvbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGll
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0Ns
aWVudC5jcHAJKHJldmlzaW9uIDM5MjEzKQorKysgV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJEcmFnQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIldlYlZpZXcuaCIKIAogI2luY2x1ZGUgPHNobG9iai5oPgotI2luY2x1ZGUgPENvcmVHcmFw
aGljcy9Db3JlR3JhcGhpY3MuaD4KIAogI3ByYWdtYSB3YXJuaW5nKHB1c2gsIDApIAogI2luY2x1
ZGUgPFdlYkNvcmUvQ2xpcGJvYXJkV2luLmg+CkBAIC00Niw3ICs0NSw4IEBACiAjcHJhZ21hIHdh
cm5pbmcocG9wKSAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIEhCSVRNQVAgYWxsb2NJbWFn
ZShIREMgZGMsIEludFNpemUgc2l6ZSwgQ0dDb250ZXh0UmVmICp0YXJnZXRSZWYpOworICAgIEhC
SVRNQVAgYWxsb2NJbWFnZShIREMgZGMsIEludFNpemUgc2l6ZSwgUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQqKiB0YXJnZXRSZWYpOworICAgIHZvaWQgZGVhbGxvY0NvbnRleHQoUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQqIHRhcmdldCk7CiB9CiAKIApAQCAtMjIzLDcgKzIyMyw3IEBAIERyYWdJbWFn
ZVJlZiBXZWJEcmFnQ2xpZW50OjpjcmVhdGVEcmFnSW0KICAgICAgICAgcmV0dXJuIDA7CiAgICAg
fQogCi0gICAgQ0dDb250ZXh0UmVmIGNvbnRleHRSZWY7CisgICAgUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQqIGNvbnRleHRSZWY7CiAgICAgaW1hZ2UgPSBhbGxvY0ltYWdlKHdvcmtpbmdEQywgaW1h
Z2VTaXplLCAmY29udGV4dFJlZik7CiAgICAgaWYgKCFpbWFnZSkgewogICAgICAgICBEZWxldGVE
Qyh3b3JraW5nREMpOwpAQCAtMjU3LDcgKzI1Nyw3IEBAIERyYWdJbWFnZVJlZiBXZWJEcmFnQ2xp
ZW50OjpjcmVhdGVEcmFnSW0KICAgICBJbnRQb2ludCB0ZXh0UG9zKERSQUdfTEFCRUxfQk9SREVS
X1gsIERSQUdfTEFCRUxfQk9SREVSX1kgKyBsYWJlbEZvbnQucGl4ZWxTaXplKCkpOwogICAgIFdl
YkNvcmVEcmF3RG91YmxlZFRleHRBdFBvaW50KGNvbnRleHQsIGxhYmVsLCB0ZXh0UG9zLCBsYWJl
bEZvbnQsIHRvcENvbG9yLCBib3R0b21Db2xvcik7CiAKLSAgICBDR0NvbnRleHRSZWxlYXNlKGNv
bnRleHRSZWYpOworICAgIGRlYWxsb2NDb250ZXh0KGNvbnRleHRSZWYpOwogICAgIERlbGV0ZURD
KHdvcmtpbmdEQyk7CiAgICAgUmVsZWFzZURDKDAsIGRjKTsKICAgICByZXR1cm4gaW1hZ2U7Cg==
</data>
<flag name="review"
          id="12215"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>