<?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>14609</bug_id>
          
          <creation_ts>2007-07-13 10:54:27 -0700</creation_ts>
          <short_desc>gdk painting changes</short_desc>
          <delta_ts>2007-07-16 13:41:48 -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>New Bugs</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.4</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="Holger Freyther">zecke</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>4880</commentid>
    <comment_count>0</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-07-13 10:54:27 -0700</bug_when>
    <thetext>Various gdk painting changes spanning across multiple files including fixes for PlatformScrollbar, not using a GdkPixmap for drawing the themes because GraphicsContext will store the used native GdkWindow to draw on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4881</commentid>
    <comment_count>1</comment_count>
      <attachid>15502</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-07-13 10:58:09 -0700</bug_when>
    <thetext>Created attachment 15502
Painting Chnages

Fix drawing of PlatformScrollbar, fix ownership of it, do not tripple buffer RenderThemeGdk, this should fix drawing rounded buttons as well. Lazily get the gdkDrawable as it might not be created at the time Widget::setGtkWidget is getting called. The drawable will exist when doing painting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4679</commentid>
    <comment_count>2</comment_count>
      <attachid>15502</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-07-15 15:50:19 -0700</bug_when>
    <thetext>Comment on attachment 15502
Painting Chnages

 Hi Holger,

even though I&apos;m not a gdk/gtk expert this looks like a nice patch.

I&apos;m not sure wheter you are adhering to the style guide in the gdk port, if yes, tiny remark:

+struct FrameGdkExposeData{
+    GtkContainer *container;
+    GdkEventExpose *expose;
+};

missing space after {, stars should be moved.

+
+static void
+frame_gdk_expose_child(GtkWidget *widget, gpointer _data)
+{

Don&apos;t use two lines here.
Other than style remarks, all fine, r=me.

Greetings,
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4680</commentid>
    <comment_count>3</comment_count>
      <attachid>15502</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2007-07-15 15:50:30 -0700</bug_when>
    <thetext>Comment on attachment 15502
Painting Chnages

 Hi Holger,

even though I&apos;m not a gdk/gtk expert this looks like a nice patch.

I&apos;m not sure wheter you are adhering to the style guide in the gdk port, if yes, tiny remark:

+struct FrameGdkExposeData{
+    GtkContainer *container;
+    GdkEventExpose *expose;
+};

missing space after {, stars should be moved.

+
+static void
+frame_gdk_expose_child(GtkWidget *widget, gpointer _data)
+{

Don&apos;t use two lines here.
Other than style remarks, all fine, r=me.

Greetings,
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4657</commentid>
    <comment_count>4</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-07-15 22:57:03 -0700</bug_when>
    <thetext>We do adhere the CodingStyle (well besides webkitgtklayout.c as in another patch). So please let me fix that before landing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>4578</commentid>
    <comment_count>5</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2007-07-16 13:41:48 -0700</bug_when>
    <thetext>Landed in r24322.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15502</attachid>
            <date>2007-07-13 10:58:09 -0700</date>
            <delta_ts>2007-07-15 15:50:19 -0700</delta_ts>
            <desc>Painting Chnages</desc>
            <filename>gdk-painting-changes-r0.patch</filename>
            <type>text/plain</type>
            <size>18508</size>
            <attacher name="Holger Freyther">zecke</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDI2MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMDctMDctMTMgIEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyICA8
emVja2VAc2VsZmlzaC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRnJhbWVWaWV3LCBQbGF0Zm9ybVNjcm9sbGJhciBhbmQgY2hhbmdlcyB0byB0
aGUgd2F5IHdlIGRyYXcKKworICAgICAgICBGaXggdGhlIGxpZmV0aW1lIG9mIFBsYXRmb3JtU2Ny
b2xsYmFyLCB1c2UgYSBkZWZhdWx0IHdpZHRoIGFuZAorICAgICAgICBoZWlnaHQgYW5kIGZpeCBk
cmF3aW5nIG9mIHRoZSBQbGF0Zm9ybVNjcm9sbGJhciBhbmQgb3RoZXIgd2lkZ2V0cworICAgICAg
ICB0aGUgZm9sbG93aW5nIHdheTogRnJhbWVHZGsgaGFuZGxlcyB0aGUgZXhwb3NlIGV2ZW50cyBv
ZiB0aGUgRnJhbWUKKyAgICAgICAgYW5kIHdpbGwgbWFrZSB0aGUgZnJhbWUgcmVkcmF3IGFuZCBu
b3cgaXQgd2lsbCBkcmF3IHRoZSBjaGlsZHJlbnQgb2YKKyAgICAgICAgdGhlIEZyYW1lVmlldyBh
cyB3ZWxsLiBUaGlzIGFwcHJvYWNoIGhhcyB0aGUgaXNzdWUgb2YgaG9ub3JpbmcgdGhlCisgICAg
ICAgIHotb3JkZXIgb2YgZWxlbWVudHMgaW5zaWRlIHRoZSBSZW5kZXJUcmVlLiBIb25vcmluZyB0
aGUgei1vcmRlciB3aWxsCisgICAgICAgIGJlIGEgYml0IG1vcmUgd29yaworCisgICAgICAgIFdp
ZGdldCBjYW4gbm93IGhhbmRsZSBXaWRnZXQ6OnNldEd0a1dpZGdldCBjYWxsIHdoZXJlIHRoZSBH
dGtXaWRnZXQKKyAgICAgICAgaGFzIG5vdCB5ZXQgYSBHZGtXaW5kb3cgYWxsb2NhdGVkLiBXZSB3
aWxsIGxhemlseSBzZXQgdGhlIEdka0RyYXdhYmxlLgorCisgICAgICAgIEluIHByZXBhcmF0aW9u
IG9mIGhvbm9yaW5nIHRoZSB6LW9yZGVyIG9mIHRoZSBSZW5kZXJUcmVlIGZvciBSZW5kZXJXaWRn
ZXRzCisgICAgICAgIGl0IGlzIHN0YXJ0ZWQgdG8gc3RvcmUgbmF0aXZlIG9iamVjdHMgaW5zaWRl
IHRoZSBHcmFwaGljc0NvbnRleHQuIERvaW5nIHRoaXMKKyAgICAgICAgbmljZWx5IGVsaW1pbmF0
ZXMgdGhlIG5lZWQgb2YgUmVuZGVyVGhlbWVHZGsgdG8gZG8gYW55IGRyYXdpbmcgdG8gYSB0ZW1w
b3JhcnkKKyAgICAgICAgR2RrUGl4bWFwLiBUaGlzIHNob3VsZCBmaXggdGhlbWVzIHdpdGggcm91
bmRlZCBidXR0b25zLgorCisgICAgICAgIFNjcm9sbFZpZXcgaW1wbGVtZW50IGFkZC0gYW5kIHJl
bW92ZUNoaWxkIHRvIGdldCBhIHdvcmtpbmcgUGxhdGZvcm1TY3JvbGxiYXIKKworCisgICAgICAg
ICogcGxhdGZvcm0vV2lkZ2V0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNw
cDoKKyAgICAgICAgKGZyYW1lX2dka19leHBvc2VfY2hpbGQpOiBXaWxsIHNlbmQgdGhlIGV4cG9z
ZSB0byBhbGwgY2hpbGRyZW4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lR2RrOjpoYW5kbGVHZGtF
dmVudCk6IFBhaW50aW5nIGNoYW5nZXMsIG1vdmUgdG8gbW91c2VNb3ZlZAorICAgICAgICAqIHBs
YXRmb3JtL2dkay9QbGF0Zm9ybVNjcmVlbkdkay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3Jl
ZW5EZXB0aCk6IGdka0RyYXdhYmxlCisgICAgICAgICogcGxhdGZvcm0vZ2RrL1BsYXRmb3JtU2Ny
b2xsQmFyR2RrLmNwcDoKKyAgICAgICAgKFBsYXRmb3JtU2Nyb2xsYmFyOjpQbGF0Zm9ybVNjcm9s
bGJhcik6IEZpeCBvd25lcnNoaXAKKyAgICAgICAgKFBsYXRmb3JtU2Nyb2xsYmFyOjp+UGxhdGZv
cm1TY3JvbGxiYXIpOiBGaXggb3duZXJzaGlwCisgICAgICAgIChQbGF0Zm9ybVNjcm9sbGJhcjo6
cGFpbnQpOiBXaWRnZXQ6OnBhaW50IHdpbGwgZG8gdGhlIHJpZ2h0IHRoaW5nIHNvb24KKyAgICAg
ICAgKiBwbGF0Zm9ybS9nZGsvUmVuZGVyVGhlbWVHZGsuY3BwOiBObyBuZWVkIGZvciB1c2luZyBh
IEdka1BpeG1hcCwgZHJhdyBkaXJlY3RseQorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVH
ZGs6OnBhaW50Q2hlY2tib3gpOiBObyBuZWVkIGZvciB1c2luZyBhIEdka1BpeG1hcCwgZHJhdyBk
aXJlY3RseQorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHZGs6OnBhaW50UmFkaW8pOiBO
byBuZWVkIGZvciB1c2luZyBhIEdka1BpeG1hcCwgZHJhdyBkaXJlY3RseQorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVHZGs6OnBhaW50QnV0dG9uKTogTm8gbmVlZCBmb3IgdXNpbmcgYSBH
ZGtQaXhtYXAsIGRyYXcgZGlyZWN0bHkKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvUmVuZGVyVGhl
bWVHZGsuaDogcmVtb3ZlIHRoZSBjb3B5Q29udGV4dCBjYWxsCisgICAgICAgICogcGxhdGZvcm0v
Z2RrL1Njcm9sbFZpZXdHZGsuY3BwOiBnZGtEcmF3YWJsZQorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsVmlldzo6dXBkYXRlVmlldyk6IGdka0RyYXdhYmxlCisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxWaWV3Ojp1cGRhdGUpOiBjbGVhciB0aGUgYXJlYSB0byBmaXggcmVwYWludGluZyBpc3N1ZXMK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNldEd0a1dpZGdldCk6IGdka0RyYXdhYmxl
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjphZGRDaGlsZCk6IGltcGxlbWVudAorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVtb3ZlQ2hpbGQpOiBpbXBsZW1lbnQKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcDogTm90IG5lZWRlZCBoZWFk
ZXIgcmVtb3ZlZAorICAgICAgICAqIHBsYXRmb3JtL2dkay9XaWRnZXRHZGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2lkZ2V0OjpnZGtEcmF3YWJsZSk6IFJlbmFtZWQgZnJvbSBkcmF3YWJsZQor
ICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0OjpzZXRHdGtXaWRnZXQpOiB1c2UgZ2RrRHJhd2FibGUK
KyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6c2V0Q3Vyc29yKTogZ2RrRHJhd2FibGUKKyAgICAg
ICAgKFdlYkNvcmU6OldpZGdldDo6c2hvdyk6IGdka0RyYXdhYmxlCisgICAgICAgIChXZWJDb3Jl
OjpXaWRnZXQ6OmhpZGUpOiBnZGtEcmF3YWJsZQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5oOiBBbGxvdyB0byBzZXQgdGhlIEdka0RyYXdhYmxlLCBlLmcuIHVz
ZWQgaW5zaWRlIGEgZXhwb3NlIGV2ZW50CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlOjpHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzZXRHZGtEcmF3YWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6Omdka0RyYXdhYmxlKToKIDIwMDctMDctMTMg
IE1pdHogUGV0dGVsICA8bWl0ekB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
dmUgSHlhdHQuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgJKHJldmlzaW9uIDI0MjYxKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9XaWRnZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDcgKzEzOCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShHREspCiAgICAgICAgIFdpZGdldChHdGtXaWRn
ZXQqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldEd0a1dpZGdldChHdGtXaWRnZXQqKTsKLSAg
ICAgICAgR2RrRHJhd2FibGUqIGRyYXdhYmxlKCkgY29uc3Q7CisgICAgICAgIEdka0RyYXdhYmxl
KiBnZGtEcmF3YWJsZSgpIGNvbnN0OwogICAgICAgICBHdGtXaWRnZXQqIGd0a1dpZGdldCgpIGNv
bnN0OwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5jcHAJKHJldmlzaW9u
IDI0MjYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBN
aWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxAZ21haWwuY29tIAorICogQ29weXJpZ2h0IChDKSAyMDA3
IEhvbGdlciBIYW5zIFBldGVyIEZyZXl0aGVyCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dApAQCAtNzAsNiArNzEsMTkgQEAgVmVjdG9yPGNoYXI+IGxvYWRSZXNvdXJj
ZUludG9BcnJheShjb25zdAogICAgIHJldHVybiByZXNvdXJjZTsKIH0KIAorc3RydWN0IEZyYW1l
R2RrRXhwb3NlRGF0YXsKKyAgICBHdGtDb250YWluZXIgKmNvbnRhaW5lcjsKKyAgICBHZGtFdmVu
dEV4cG9zZSAqZXhwb3NlOworfTsKKworc3RhdGljIHZvaWQKK2ZyYW1lX2dka19leHBvc2VfY2hp
bGQoR3RrV2lkZ2V0ICp3aWRnZXQsIGdwb2ludGVyIF9kYXRhKQoreworICAgIEZyYW1lR2RrRXhw
b3NlRGF0YSogZGF0YSA9IChGcmFtZUdka0V4cG9zZURhdGEqKV9kYXRhOworICAgIGludCB3aWR0
aCwgaGVpZ2h0OworICAgIGd0a19jb250YWluZXJfcHJvcGFnYXRlX2V4cG9zZShkYXRhLT5jb250
YWluZXIsIHdpZGdldCwgZGF0YS0+ZXhwb3NlKTsKK30gCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogRnJhbWVHZGs6OkZyYW1lR2RrKFBhZ2UqIHBhZ2UsIEhUTUxGcmFtZU93bmVyRWxlbWVudCog
b3duZXJFbGVtZW50LCBGcmFtZUxvYWRlckNsaWVudEdkayogZnJhbWVMb2FkZXIpCkBAIC0xNDAs
NiArMTU0LDcgQEAgdm9pZCBGcmFtZUdkazo6aGFuZGxlR2RrRXZlbnQoR2RrRXZlbnQqIAogICAg
ICAgICAgICAgZ2RrX3dpbmRvd19iZWdpbl9wYWludF9yZWdpb24oZXZlbnQtPmFueS53aW5kb3cs
IGV2ZW50LT5leHBvc2UucmVnaW9uKTsKICAgICAgICAgICAgIGNhaXJvX3QqIGNyID0gZ2RrX2Nh
aXJvX2NyZWF0ZShldmVudC0+YW55LndpbmRvdyk7CiAgICAgICAgICAgICBHcmFwaGljc0NvbnRl
eHQgY3R4KGNyKTsKKyAgICAgICAgICAgIGN0eC5zZXRHZGtEcmF3YWJsZShldmVudC0+YW55Lndp
bmRvdyk7CiAgICAgICAgICAgICBpZiAocmVuZGVyZXIoKSkgewogICAgICAgICAgICAgICAgIGlm
ICh2aWV3KCktPm5lZWRzTGF5b3V0KCkpCiAgICAgICAgICAgICAgICAgICAgIHZpZXcoKS0+bGF5
b3V0KCk7CkBAIC0xNDcsNyArMTYyLDE0IEBAIHZvaWQgRnJhbWVHZGs6OmhhbmRsZUdka0V2ZW50
KEdka0V2ZW50KiAKICAgICAgICAgICAgICAgICBwYWludCgmY3R4LCByZWN0KTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGNhaXJvX2Rlc3Ryb3koY3IpOworCisgICAgICAgICAgICAvKgor
ICAgICAgICAgICAgICogTWFrZSBzdXJlIGNoaWxkcmVuIG9mIHRoZSB2aWV3IGdldCByZWRyYXdu
CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIEZyYW1lR2RrRXhwb3NlRGF0YSBkYXRhID0g
eyBHVEtfQ09OVEFJTkVSKHZpZXcoKS0+Z3RrV2lkZ2V0KCkpLCAmZXZlbnQtPmV4cG9zZSB9Owor
ICAgICAgICAgICAgZ3RrX2NvbnRhaW5lcl9mb3JhbGwoR1RLX0NPTlRBSU5FUih2aWV3KCktPmd0
a1dpZGdldCgpKSwgZnJhbWVfZ2RrX2V4cG9zZV9jaGlsZCwgJmRhdGEpOwogICAgICAgICAgICAg
Z2RrX3dpbmRvd19lbmRfcGFpbnQoZXZlbnQtPmFueS53aW5kb3cpOworICAgICAgICAgICAgCiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0xOTAsNyArMjEyLDcgQEAgdm9pZCBG
cmFtZUdkazo6aGFuZGxlR2RrRXZlbnQoR2RrRXZlbnQqIAogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBHREtfTU9USU9OX05PVElGWToKLSAgICAgICAgICAgIGV2
ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZU1vdmVFdmVudChQbGF0Zm9ybU1vdXNlRXZlbnQoZXZl
bnQpKTsKKyAgICAgICAgICAgIGV2ZW50SGFuZGxlcigpLT5tb3VzZU1vdmVkKFBsYXRmb3JtTW91
c2VFdmVudChldmVudCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR0RLX0JV
VFRPTl9QUkVTUzoKICAgICAgICAgY2FzZSBHREtfMkJVVFRPTl9QUkVTUzoKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ2RrL1BsYXRmb3JtU2NyZWVuR2RrLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dkay9QbGF0Zm9ybVNjcmVlbkdkay5jcHAJKHJldmlzaW9uIDI0MjYxKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUGxhdGZvcm1TY3JlZW5HZGsuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCwxMCArMzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBpbnQgc2NyZWVu
RGVwdGgoV2lkZ2V0KiB3aWRnZXQpIAogewotICAgIEFTU0VSVCh3aWRnZXQtPmRyYXdhYmxlKCkp
OworICAgIEFTU0VSVCh3aWRnZXQtPmdka0RyYXdhYmxlKCkpOwogCiAgICAgZ2ludCBkdW1teSwg
ZGVwdGg7Ci0gICAgZ2RrX3dpbmRvd19nZXRfZ2VvbWV0cnkod2lkZ2V0LT5kcmF3YWJsZSgpLCAm
ZHVtbXksICZkdW1teSwgJmR1bW15LCAmZHVtbXksICZkZXB0aCk7CisgICAgZ2RrX3dpbmRvd19n
ZXRfZ2VvbWV0cnkod2lkZ2V0LT5nZGtEcmF3YWJsZSgpLCAmZHVtbXksICZkdW1teSwgJmR1bW15
LCAmZHVtbXksICZkZXB0aCk7CiAgICAgcmV0dXJuIGRlcHRoOwogfQogCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL2dkay9QbGF0Zm9ybVNjcm9sbEJhckdkay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9nZGsvUGxhdGZvcm1TY3JvbGxCYXJHZGsuY3BwCShyZXZpc2lvbiAyNDI2
MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1BsYXRmb3JtU2Nyb2xsQmFyR2RrLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsOSArMjcsMTIgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtU2Nyb2xsQmFyLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlIDxndGsvZ3RrLmg+CisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KICNpbmNsdWRlIDxz
dGRpby5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTQxLDE0ICs0NCwyNyBAQCBQ
bGF0Zm9ybVNjcm9sbGJhcjo6UGxhdGZvcm1TY3JvbGxiYXIoU2NyCiAgICAgR3RrU2Nyb2xsYmFy
KiBzY3JvbGxCYXIgPSBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyID8KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TQ1JPTExCQVIoOjpndGtfaHNjcm9sbGJhcl9u
ZXcoTlVMTCkpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUS19TQ1JPTExCQVIo
OjpndGtfdnNjcm9sbGJhcl9uZXcoTlVMTCkpOworICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lE
R0VUKHNjcm9sbEJhcikpOwogICAgIHNldEd0a1dpZGdldChHVEtfV0lER0VUKHNjcm9sbEJhcikp
OworCisgICAgLyoKKyAgICAgKiBhc3NpZ24gYSBzYW5lIGRlZmF1bHQgd2lkdGggYW5kIGhlaWdo
dCB0byB0aGUgU2Nyb2xsQmFyLCBvdGhlcndpc2UKKyAgICAgKiB3ZSB3aWxsIGVuZCB1cCB3aXRo
IGEgMCB3aWR0aCBzY3JvbGxiYXIuCisgICAgICovCisgICAgcmVzaXplKFBsYXRmb3JtU2Nyb2xs
YmFyOjpob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0KCksCisgICAgICAgICAgIFBsYXRmb3JtU2Ny
b2xsYmFyOjp2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKCkpOyAgICAKKworICAgIGdfb2JqZWN0X3Jl
ZihHX09CSkVDVChzY3JvbGxCYXIpKTsKKyAgICBndGtfb2JqZWN0X3NpbmsoR1RLX09CSkVDVChz
Y3JvbGxCYXIpKTsKIH0KKwogUGxhdGZvcm1TY3JvbGxiYXI6On5QbGF0Zm9ybVNjcm9sbGJhcigp
CiB7CiAgICAgLyoKICAgICAgKiB0aGUgV2lkZ2V0IGRvZXMgbm90IHRha2Ugb3ZlciBvd25lcnNo
aXAuCiAgICAgICovCi0gICAgZ3RrX29iamVjdF91bnJlZihHVEtfT0JKRUNUKGd0a1dpZGdldCgp
KSk7CisgICAgZ3RrX3dpZGdldF9kZXN0cm95KGd0a1dpZGdldCgpKTsKKyAgICBnX29iamVjdF91
bnJlZihHX09CSkVDVChndGtXaWRnZXQoKSkpOwogfQogCiBpbnQgUGxhdGZvcm1TY3JvbGxiYXI6
OndpZHRoKCkgY29uc3QKQEAgLTY2LDkgKzgyLDkgQEAgdm9pZCBQbGF0Zm9ybVNjcm9sbGJhcjo6
c2V0RW5hYmxlZChib29sIAogICAgIFdpZGdldDo6c2V0RW5hYmxlZChlbmFibGVkKTsKIH0KIAot
dm9pZCBQbGF0Zm9ybVNjcm9sbGJhcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50
UmVjdCYpCit2b2lkIFBsYXRmb3JtU2Nyb2xsYmFyOjpwYWludChHcmFwaGljc0NvbnRleHQqIGdy
YXBoaWNzQ29udGV4dCwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCkKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIFdpZGdldDo6cGFpbnQoZ3JhcGhpY3NDb250ZXh0LCBkYW1hZ2VSZWN0
KTsKIH0KIAogdm9pZCBQbGF0Zm9ybVNjcm9sbGJhcjo6dXBkYXRlVGh1bWJQb3NpdGlvbigpCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9SZW5kZXJUaGVtZUdkay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUmVuZGVyVGhlbWVHZGsuY3BwCShyZXZpc2lvbiAyNDI2
MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1JlbmRlclRoZW1lR2RrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTg3LDEyICsxODcsMTAgQEAgYm9vbCBSZW5kZXJUaGVtZUdkazo6cGFpbnRDaGVj
a2JveChSZW5kZQogewogICAgIC8vIEZJWE1FOiBpcyBpdCB0aGUgcmlnaHQgdGhpbmcgdG8gZG8/
CiAgICAgR3RrV2lkZ2V0ICpjaGVja2JveCA9IGd0a0NoZWNrYm94KCk7Ci0gICAgR2RrUGl4bWFw
ICpwaXhtYXAgPSBnZGtfcGl4bWFwX25ldyhHREtfRFJBV0FCTEUoY2hlY2tib3gtPndpbmRvdyks
IHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSwgLTEpOwotICAgIGd0a19wYWludF9ib3goY2hl
Y2tib3gtPnN0eWxlLCBHREtfRFJBV0FCTEUocGl4bWFwKSwKKyAgICBndGtfcGFpbnRfYm94KGNo
ZWNrYm94LT5zdHlsZSwgaS5jb250ZXh0LT5nZGtEcmF3YWJsZSgpLAogICAgICAgICAgICAgICAg
ICAgR1RLX1NUQVRFX05PUk1BTCwgR1RLX1NIQURPV19PVVQsCiAgICAgICAgICAgICAgICAgICBO
VUxMLCBjaGVja2JveCwgImNoZWNrYnV0dG9uIiwKLSAgICAgICAgICAgICAgICAgIDAsIDAsIHJl
Y3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7Ci0gICAgY29weVRvQ29udGV4dChwaXhtYXAsIGku
Y29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIHJlY3QpOworICAgICAgICAgICAgICAgICAgcmVj
dC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwogCiAgICAgcmV0
dXJuIGZhbHNlOwogfQpAQCAtMjIxLDEyICsyMTksMTAgQEAgYm9vbCBSZW5kZXJUaGVtZUdkazo6
cGFpbnRSYWRpbyhSZW5kZXJPYgogeyAKICAgICAvLyBGSVhNRTogaXMgaXQgdGhlIHJpZ2h0IHRo
aW5nIHRvIGRvPwogICAgIEd0a1dpZGdldCAqcmFkaW8gPSBndGtSYWRpb0J1dHRvbigpOwotICAg
IEdka1BpeG1hcCAqcGl4bWFwID0gZ2RrX3BpeG1hcF9uZXcoR0RLX0RSQVdBQkxFKHJhZGlvLT53
aW5kb3cpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCksIC0xKTsKLSAgICBndGtfcGFpbnRf
Ym94KHJhZGlvLT5zdHlsZSwgR0RLX0RSQVdBQkxFKHBpeG1hcCksCisgICAgZ3RrX3BhaW50X2Jv
eChyYWRpby0+c3R5bGUsIGkuY29udGV4dC0+Z2RrRHJhd2FibGUoKSwKICAgICAgICAgICAgICAg
ICAgIEdUS19TVEFURV9OT1JNQUwsIEdUS19TSEFET1dfT1VULAogICAgICAgICAgICAgICAgICAg
TlVMTCwgcmFkaW8sICJyYWRpb2J1dHRvbiIsCi0gICAgICAgICAgICAgICAgICAwLCAwLCByZWN0
LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpOwotICAgIGNvcHlUb0NvbnRleHQocGl4bWFwLCBpLmNv
bnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLCByZWN0KTsKKyAgICAgICAgICAgICAgICAgIHJlY3Qu
eCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKIAogICAgIHJldHVy
biBmYWxzZTsKIH0KQEAgLTIzNSwxMiArMjMxLDEwIEBAIGJvb2wgUmVuZGVyVGhlbWVHZGs6OnBh
aW50QnV0dG9uKFJlbmRlck8KIHsgCiAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgdGhlbWUtYXdh
cmUgZHJhd2luZy4gVGhpcyBzaG91bGQgaG9ub3IgdGhlIHN0YXRlIGFzIHdlbGwKICAgICBHdGtX
aWRnZXQgKmJ1dHRvbiA9IGd0a0J1dHRvbigpOwotICAgIEdka1BpeG1hcCAqcGl4bWFwID0gZ2Rr
X3BpeG1hcF9uZXcoR0RLX0RSQVdBQkxFKGJ1dHRvbi0+d2luZG93KSwgcmVjdC53aWR0aCgpLCBy
ZWN0LmhlaWdodCgpLCAtMSk7Ci0gICAgZ3RrX3BhaW50X2JveChidXR0b24tPnN0eWxlLCBHREtf
RFJBV0FCTEUocGl4bWFwKSwKKyAgICBndGtfcGFpbnRfYm94KGJ1dHRvbi0+c3R5bGUsIGkuY29u
dGV4dC0+Z2RrRHJhd2FibGUoKSwKICAgICAgICAgICAgICAgICAgIEdUS19TVEFURV9OT1JNQUws
IEdUS19TSEFET1dfT1VULAogICAgICAgICAgICAgICAgICAgTlVMTCwgYnV0dG9uLCAiYnV0dG9u
IiwKLSAgICAgICAgICAgICAgICAgIDAsIDAsIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7
Ci0gICAgY29weVRvQ29udGV4dChwaXhtYXAsIGkuY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCks
IHJlY3QpOworICAgICAgICAgICAgICAgICAgcmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRo
KCksIHJlY3QuaGVpZ2h0KCkpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMjY5LDE4ICsy
NjMsNiBAQCB2b2lkIFJlbmRlclRoZW1lR2RrOjpzeXN0ZW1Gb250KGludCBwcm9wCiB7CiB9CiAK
LS8qCi0gKiBjb3B5IHRoZSBzcmMgc3VyZmFjZSB0byB0aGUgY3VycmVudCBjb250ZXh0IGF0IHBv
c2l0aW9uIChyZWN0LngscmVjdC55KSBhbmQgaW52YWxpZGF0ZQotICogR2RrUGl4bWFwCi0gKi8K
LXZvaWQgUmVuZGVyVGhlbWVHZGs6OmNvcHlUb0NvbnRleHQoR2RrUGl4bWFwICpzcmMsIGNhaXJv
X3QqIGNyLCBjb25zdCBJbnRSZWN0JiByZWN0KQotewotICAgIGdka19jYWlyb19zZXRfc291cmNl
X3BpeG1hcChjciwgc3JjLCByZWN0LngoKSwgcmVjdC55KCkpOwotICAgIGNhaXJvX3NldF9vcGVy
YXRvcihjciwgQ0FJUk9fT1BFUkFUT1JfT1ZFUik7Ci0gICAgY2Fpcm9fcGFpbnQoY3IpOwotICAg
IGdfb2JqZWN0X3VucmVmKHNyYyk7Ci19Ci0KIEd0a1dpZGdldCogUmVuZGVyVGhlbWVHZGs6Omd0
a0J1dHRvbigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2d0a0J1dHRvbikgewpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9nZGsvUmVuZGVyVGhlbWVHZGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dkay9SZW5kZXJUaGVtZUdkay5oCShyZXZpc2lvbiAyNDI2MSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ2RrL1JlbmRlclRoZW1lR2RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDggKzkw
LDYgQEAgcHJpdmF0ZToKICAgICAgKi8KICAgICBHdGtXaWRnZXQqIGd0a1dpbmRvd0NvbnRhaW5l
cigpIGNvbnN0OwogCi0gICAgdm9pZCBjb3B5VG9Db250ZXh0KEdka1BpeG1hcCAqc3JjLCBQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKLQogcHJpdmF0ZToKICAgICBt
dXRhYmxlIEd0a1dpZGdldCAqbV9ndGtCdXR0b247CiAgICAgbXV0YWJsZSBHdGtXaWRnZXQgKm1f
Z3RrQ2hlY2tib3g7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9TY3JvbGxWaWV3R2RrLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9TY3JvbGxWaWV3R2RrLmNwcAko
cmV2aXNpb24gMjQyNjEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9TY3JvbGxWaWV3R2RrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODEsNyArODEsNyBAQCBTY3JvbGxWaWV3Ojp+U2Nyb2xsVmll
dygpCiB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVj
dCwgYm9vbCBub3cpCiB7CiAgICAgR2RrUmVjdGFuZ2xlIHJlY3QgPSB7IHVwZGF0ZVJlY3QueCgp
LCB1cGRhdGVSZWN0LnkoKSwgdXBkYXRlUmVjdC53aWR0aCgpLCB1cGRhdGVSZWN0LmhlaWdodCgp
IH07Ci0gICAgR2RrRHJhd2FibGUqIGdka2RyYXdhYmxlID0gV2lkZ2V0OjpkcmF3YWJsZSgpOwor
ICAgIEdka0RyYXdhYmxlKiBnZGtkcmF3YWJsZSA9IFdpZGdldDo6Z2RrRHJhd2FibGUoKTsKICAg
ICBpZiAoR0RLX0lTX1dJTkRPVyhnZGtkcmF3YWJsZSkpIHsKICAgICAgICAgR2RrV2luZG93KiB3
aW5kb3cgPSBHREtfV0lORE9XKGdka2RyYXdhYmxlKTsKICAgICAgICAgZ2RrX3dpbmRvd19pbnZh
bGlkYXRlX3JlY3Qod2luZG93LCAmcmVjdCwgdHJ1ZSk7CkBAIC05Nyw3ICs5Nyw4IEBAIHZvaWQg
U2Nyb2xsVmlldzo6dXBkYXRlQ29udGVudHMoY29uc3QgSW4KIAogdm9pZCBTY3JvbGxWaWV3Ojp1
cGRhdGUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQVNTRVJUKGd0a1dpZGdldCgp
KTsKKyAgICBndGtfd2lkZ2V0X3F1ZXVlX2RyYXcoZ3RrV2lkZ2V0KCkpOwogfQogCiBpbnQgU2Ny
b2xsVmlldzo6dmlzaWJsZVdpZHRoKCkgY29uc3QKQEAgLTI1NCwyMCArMjU1LDI2IEBAIHZvaWQg
U2Nyb2xsVmlldzo6c2V0R3RrV2lkZ2V0KEd0a0xheW91dCoKICAgICBtX2RhdGEtPnZlcnRpY2Fs
QWRqdXN0bWVudCA9IGd0a19sYXlvdXRfZ2V0X3ZhZGp1c3RtZW50KGxheW91dCk7CiAKICAgICBX
aWRnZXQ6OnNldEd0a1dpZGdldChHVEtfV0lER0VUKGxheW91dCkpOwotICAgIGlmICghR0RLX0lT
X1dJTkRPVyhkcmF3YWJsZSgpKSkgeworICAgIGlmICghR0RLX0lTX1dJTkRPVyhnZGtEcmF3YWJs
ZSgpKSkgewogICAgICAgICBMT0dfRVJST1IoImltYWdlIHNjcm9sbHZpZXcgbm90IHN1cHBvcnRl
ZCIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogfQogCi12b2lkIFNjcm9sbFZpZXc6OmFkZENo
aWxkKFdpZGdldCopCit2b2lkIFNjcm9sbFZpZXc6OmFkZENoaWxkKFdpZGdldCogdykKIHsgCi0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBBU1NFUlQody0+Z3RrV2lkZ2V0KCkpOworICAgIEFT
U0VSVChtX2RhdGEtPmxheW91dCk7CisKKyAgICBndGtfbGF5b3V0X3B1dChtX2RhdGEtPmxheW91
dCwgdy0+Z3RrV2lkZ2V0KCksIDAsIDApOwogfQogCi12b2lkIFNjcm9sbFZpZXc6OnJlbW92ZUNo
aWxkKFdpZGdldCopCit2b2lkIFNjcm9sbFZpZXc6OnJlbW92ZUNoaWxkKFdpZGdldCogdykKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIEFTU0VSVCh3LT5ndGtXaWRnZXQoKSk7CisgICAg
QVNTRVJUKG1fZGF0YS0+bGF5b3V0KTsKKworICAgIGd0a19jb250YWluZXJfcmVtb3ZlKEdUS19D
T05UQUlORVIobV9kYXRhLT5sYXlvdXQpLCB3LT5ndGtXaWRnZXQoKSk7CiB9CiAKIHZvaWQgU2Ny
b2xsVmlldzo6c2Nyb2xsUmVjdEludG9WaWV3UmVjdXJzaXZlbHkoY29uc3QgSW50UmVjdCYpCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHJldmlz
aW9uIDI0MjYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVu
dGVkLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VF
dmVudC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU2Nyb2xsQmFyLmgiCiAjaW5jbHVkZSAiUGx1Z0lu
SW5mb1N0b3JlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9XaWRnZXRHZGsuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1dpZGdldEdkay5jcHAJKHJldmlzaW9u
IDI0MjYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvV2lkZ2V0R2RrLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29t
cHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
TWljaGFlbCBFbW1lbCBtaWtlLmVtbWVsQGdtYWlsLmNvbSAKKyAqIENvcHlyaWdodCAoQykgMjAw
NyBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlcgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTYzLDggKzY0LDEwIEBAIFdpZGdldDo6V2lkZ2V0KEd0a1dpZGdl
dCogd2lkZ2V0KQogICAgIHNldEd0a1dpZGdldCh3aWRnZXQpOwogfQogCi1HZGtEcmF3YWJsZSog
V2lkZ2V0OjpkcmF3YWJsZSgpIGNvbnN0CitHZGtEcmF3YWJsZSogV2lkZ2V0OjpnZGtEcmF3YWJs
ZSgpIGNvbnN0CiB7CisgICAgaWYgKCFkYXRhLT5kcmF3YWJsZSAmJiBkYXRhLT53aWRnZXQpCisg
ICAgICAgIGRhdGEtPmRyYXdhYmxlID0gR1RLX0lTX0xBWU9VVChkYXRhLT53aWRnZXQpID8gR1RL
X0xBWU9VVChkYXRhLT53aWRnZXQpLT5iaW5fd2luZG93IDogZGF0YS0+d2lkZ2V0LT53aW5kb3c7
CiAgICAgcmV0dXJuIGRhdGEtPmRyYXdhYmxlOwogfQogCkBAIC03NSw3ICs3OCw3IEBAIEd0a1dp
ZGdldCogV2lkZ2V0OjpndGtXaWRnZXQoKSBjb25zdAogCiB2b2lkIFdpZGdldDo6c2V0R3RrV2lk
Z2V0KEd0a1dpZGdldCogd2lkZ2V0KQogewotICAgIGRhdGEtPmRyYXdhYmxlID0gR1RLX0lTX0xB
WU9VVCh3aWRnZXQpID8gR1RLX0xBWU9VVCh3aWRnZXQpLT5iaW5fd2luZG93IDogd2lkZ2V0LT53
aW5kb3c7CisgICAgZGF0YS0+ZHJhd2FibGUgPSAwOwogICAgIGRhdGEtPndpZGdldCA9IHdpZGdl
dDsKIH0KIApAQCAtMTEzLDcgKzExNiw3IEBAIHZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29uc3Qg
Q3Vyc29yJiBjdXIKICAgICBpZiAoIXBjdXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdka0Ry
YXdhYmxlKiBkcmF3YWJsZSA9IGRhdGEtPmRyYXdhYmxlOworICAgIEdka0RyYXdhYmxlKiBkcmF3
YWJsZSA9IGdka0RyYXdhYmxlKCk7CiAgICAgaWYgKCFkcmF3YWJsZSB8fCAhR0RLX0lTX1dJTkRP
VyhkcmF3YWJsZSkpCiAgICAgICAgIHJldHVybjsKICAgICBHZGtXaW5kb3cqIHdpbmRvdyA9IEdE
S19XSU5ET1coZHJhd2FibGUpOwpAQCAtMTIzLDcgKzEyNiw3IEBAIHZvaWQgV2lkZ2V0OjpzZXRD
dXJzb3IoY29uc3QgQ3Vyc29yJiBjdXIKIAogdm9pZCBXaWRnZXQ6OnNob3coKQogewotICAgIEdk
a0RyYXdhYmxlKiBkcmF3YWJsZSA9IGRhdGEtPmRyYXdhYmxlOworICAgIEdka0RyYXdhYmxlKiBk
cmF3YWJsZSA9IGdka0RyYXdhYmxlKCk7CiAgICAgaWYgKCFkcmF3YWJsZSB8fCAhR0RLX0lTX1dJ
TkRPVyhkcmF3YWJsZSkpCiAgICAgICAgIHJldHVybjsKICAgICBHZGtXaW5kb3cqIHdpbmRvdyA9
IEdES19XSU5ET1coZHJhd2FibGUpOwpAQCAtMTMyLDcgKzEzNSw3IEBAIHZvaWQgV2lkZ2V0Ojpz
aG93KCkKIAogdm9pZCBXaWRnZXQ6OmhpZGUoKQogewotICAgIEdka0RyYXdhYmxlKiBkcmF3YWJs
ZSA9IGRhdGEtPmRyYXdhYmxlOworICAgIEdka0RyYXdhYmxlKiBkcmF3YWJsZSA9IGdka0RyYXdh
YmxlKCk7CiAgICAgaWYgKCFkcmF3YWJsZSB8fCAhR0RLX0lTX1dJTkRPVyhkcmF3YWJsZSkpCiAg
ICAgICAgIHJldHVybjsKICAgICBHZGtXaW5kb3cqIHdpbmRvdyA9IEdES19XSU5ET1coZHJhd2Fi
bGUpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5o
CShyZXZpc2lvbiAyNDI2MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDEwIEBAIHR5cGVkZWYgUVBhaW50
ZXIgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQKIHR5cGVkZWYgdm9pZCBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oR0RLKQordHlwZWRlZiBzdHJ1Y3QgX0dk
a0RyYXdhYmxlIEdka0RyYXdhYmxlOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiB0eXBl
ZGVmIHN0cnVjdCBIRENfXyogSERDOwogI2VuZGlmCkBAIC0yMDIsNiArMjA2LDExIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgUGxhdGZvcm1QYXRoKiBjdXJyZW50UGF0aCgpOwogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShHREspCisgICAgICAgIHZvaWQgc2V0R2RrRHJhd2FibGUoR2Rr
RHJhd2FibGUqKTsKKyAgICAgICAgR2RrRHJhd2FibGUgKmdka0RyYXdhYmxlKCkgY29uc3Q7Cisj
ZW5kaWYKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2F2ZVBsYXRmb3JtU3RhdGUoKTsK
ICAgICAgICAgdm9pZCByZXN0b3JlUGxhdGZvcm1TdGF0ZSgpOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHAJKHJldmlzaW9uIDI0MjYxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRDYWlyby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDEwIEBA
CiAjaW5jbHVkZSA8Y2Fpcm8td2luMzIuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oR0RLKQor
I2luY2x1ZGUgPGdkay9nZGsuaD4KKyNlbmRpZgorCiAKICNpZm5kZWYgTV9QSQogI2RlZmluZSBN
X1BJIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYKQEAgLTU5LDYgKzYzLDEwIEBAIHB1YmxpYzoKIAog
ICAgIGNhaXJvX3QqIGNyOwogICAgIFZlY3RvcjxmbG9hdD4gbGF5ZXJzOworCisjaWYgUExBVEZP
Uk0oR0RLKQorICAgIEdka0RyYXdhYmxlICpkcmF3YWJsZTsKKyNlbmRpZgogfTsKIAogc3RhdGlj
IGlubGluZSB2b2lkIHNldENvbG9yKGNhaXJvX3QqIGNyLCBjb25zdCBDb2xvciYgY29sKQpAQCAt
NzksNiArODcsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZmlsbFJlY3RTb3VyY2VPdmVyKGNhCiAK
IEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlKCkKICAgICA6ICBjcigwKQorI2lmIFBMQVRGT1JNKEdESykKKyAgICAsIGRyYXdhYmxl
KDApCisjZW5kaWYKIHsKIH0KIApAQCAtNzg2LDYgKzc5NywxOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZmlsbFJvdW5kZWRSZWN0KGNvCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAorI2lm
IFBMQVRGT1JNKEdESykKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRHZGtEcmF3YWJsZShHZGtE
cmF3YWJsZSogZHJhd2FibGUpCit7CisgICAgbV9kYXRhLT5kcmF3YWJsZSA9IGRyYXdhYmxlOwor
fQorCitHZGtEcmF3YWJsZSogR3JhcGhpY3NDb250ZXh0OjpnZGtEcmF3YWJsZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fZGF0YS0+ZHJhd2FibGU7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ0FJUk8pCg==
</data>
<flag name="review"
          id="6443"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>