<?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>175067</bug_id>
          
          <creation_ts>2017-08-02 04:31:21 -0700</creation_ts>
          <short_desc>[GTK] Spin buttons are drawn too large</short_desc>
          <delta_ts>2020-03-31 11:20:49 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.gnome.org/show_bug.cgi?id=785578</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=208129</see_also>
          <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>173572</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cadubentzen</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>hoboprimate</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>nekohayo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1334190</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-08-02 04:31:21 -0700</bug_when>
    <thetext>This bug is has been moved from https://bugzilla.gnome.org/show_bug.cgi?id=785578

Original report:

&quot;
This happened in the last few days, with an update to the site.

See screenshots comparing the result in epiphany and chrome, epiphany&apos;s number controls are too big hiding the result area.
&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334191</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-08-02 04:40:40 -0700</bug_when>
    <thetext>Here are some screen-shots showing how chrome and webkitgtk renders the generate random number table at https://www.random.org/

 * chrome: https://people.igalia.com/clopez/wkbug/175067/chrome.png
 * webkitgtk before applying fix for bug 173572 : https://people.igalia.com/clopez/wkbug/175067/webkitgtk_2.16.3.png
 * webkitgtk after applying fix for bug 173572 : https://people.igalia.com/clopez/wkbug/175067/webkitgtk_2.16.6.png


As you can see, after fix for bug 173572 the size of the input type was not big enough to draw the value and the spin-buttons at the same time, so the value of the input type was covered (In the Max: it shows 1 instead of 100.. the &quot;00&quot; are covered by the spin buttons)

After fix for bug 173572 the width of the input size choose by the web designer is overriden and grow to accommodate the spin-buttons without covering the input values). So now on &quot;Max&quot; you an see the &quot;100&quot; value correctly.

However, this causes the inputs to reflow vertically as the table where they are contained is not big enough to draw both the input and the Max/Min text in the same line.

And this ends causing that the value for the generated random number to fall below the visible area of that table.

Note that this was already happening before (as you can see the value on https://people.igalia.com/clopez/wkbug/175067/webkitgtk_2.16.3.png is not draw 100% correctly, its cut at the half). But now is exaggerated more so its not even appearing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334194</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-08-02 04:52:14 -0700</bug_when>
    <thetext>And the thing is that I don&apos;t know how we can fix this.

I already felt that overriding the size of the input numbers that was choose by the web designer was maybe going to cause some issues on some sites when I proposed that solution, but I don&apos;t know how to fix this issue without doing that.

The only sane thing I thing we can do is to go back to the spin buttons that we had some years ago:

Now we have this: https://trac.webkit.org/export/217674/webkit/trunk/LayoutTests/platform/gtk/fast/forms/number/number-appearance-spinbutton-layer-expected.png

Before we had this: https://trac.webkit.org/export/148821/webkit/trunk/LayoutTests/platform/gtk/fast/forms/number/number-appearance-spinbutton-layer-expected.png


Web designers are going to keep testing their sites only with chrome/firefox/safari, and all of this browsers have small spinbuttons likes the ones we had before. Either we go back to small spinbuttons or we will breaking some sites like this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1334231</commentid>
    <comment_count>3</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2017-08-02 08:55:08 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #2)
&gt; And the thing is that I don&apos;t know how we can fix this.
&gt; 
&gt; I already felt that overriding the size of the input numbers that was choose
&gt; by the web designer was maybe going to cause some issues on some sites when
&gt; I proposed that solution, but I don&apos;t know how to fix this issue without
&gt; doing that.
&gt; 
&gt; The only sane thing I thing we can do is to go back to the spin buttons that
&gt; we had some years ago:
&gt; 
&gt; Now we have this:
&gt; https://trac.webkit.org/export/217674/webkit/trunk/LayoutTests/platform/gtk/
&gt; fast/forms/number/number-appearance-spinbutton-layer-expected.png
&gt; 
&gt; Before we had this:
&gt; https://trac.webkit.org/export/148821/webkit/trunk/LayoutTests/platform/gtk/
&gt; fast/forms/number/number-appearance-spinbutton-layer-expected.png
&gt; 
&gt; 
&gt; Web designers are going to keep testing their sites only with
&gt; chrome/firefox/safari, and all of this browsers have small spinbuttons likes
&gt; the ones we had before. Either we go back to small spinbuttons or we will
&gt; breaking some sites like this one.

Would it be an acceptable tradeoff to use the current (new, bigger buttons)
version when the size of the field is wider than a certain threshold, and
use the other version (old, narrow buttons) for the narrow inputs? I am aware
that doing it that way makes us maintain two different ways for rendering the
inputs, but at least it wouldn&apos;t break any website, while still trying to
provide the version with the easier-to-hit button when possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335835</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-06 15:41:26 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #3)
&gt; Would it be an acceptable tradeoff to use the current (new, bigger buttons)
&gt; version when the size of the field is wider than a certain threshold, and
&gt; use the other version (old, narrow buttons) for the narrow inputs? I am aware
&gt; that doing it that way makes us maintain two different ways for rendering the
&gt; inputs, but at least it wouldn&apos;t break any website, while still trying to
&gt; provide the version with the easier-to-hit button when possible.

That sounds like an OK option. Clearly, using extra space is not OK.

Alternatively, could we scale down the nice GTK+ spinbuttons to fit in the available space?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1433330</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-06-15 07:31:07 -0700</bug_when>
    <thetext>*** Bug 183030 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436720</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Bentzen">cadubentzen</who>
    <bug_when>2018-06-26 16:37:01 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #4)
&gt; (In reply to Adrian Perez from comment #3)
&gt; &gt; Would it be an acceptable tradeoff to use the current (new, bigger buttons)
&gt; &gt; version when the size of the field is wider than a certain threshold, and
&gt; &gt; use the other version (old, narrow buttons) for the narrow inputs? I am aware
&gt; &gt; that doing it that way makes us maintain two different ways for rendering the
&gt; &gt; inputs, but at least it wouldn&apos;t break any website, while still trying to
&gt; &gt; provide the version with the easier-to-hit button when possible.
&gt; 
&gt; That sounds like an OK option. Clearly, using extra space is not OK.

I&apos;ll try to go for this option.

&gt; 
&gt; Alternatively, could we scale down the nice GTK+ spinbuttons to fit in the
&gt; available space?

I think the horizontal square buttons make it difficult to fit nicely in tiny spacing...

Also a lot of refactoring would be need to this based on the way it&apos;s currently being drawn. The most simple way would be Adrian&apos;s suggestions I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1436722</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Bentzen">cadubentzen</who>
    <bug_when>2018-06-26 16:39:22 -0700</bug_when>
    <thetext>&gt; The most simple way would be Adrian&apos;s suggestions I
&gt; think.

simplest*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446716</commentid>
    <comment_count>8</comment_count>
      <attachid>346225</attachid>
    <who name="Carlos Bentzen">cadubentzen</who>
    <bug_when>2018-07-31 16:49:48 -0700</bug_when>
    <thetext>Created attachment 346225
Spin buttons

I went through a more conservative approach and ported the old GTK spin button to the RenderTheme{Widget,Gadget} code and made it the only option. The result is as attached here.

WDYT?

If you think we should proceed to returning to this design, I will update test expectations were needed to submit the patch for review. Below I&apos;ll send the WIP patch for the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446717</commentid>
    <comment_count>9</comment_count>
      <attachid>346226</attachid>
    <who name="Carlos Bentzen">cadubentzen</who>
    <bug_when>2018-07-31 16:52:13 -0700</bug_when>
    <thetext>Created attachment 346226
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447929</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-08-04 11:57:55 -0700</bug_when>
    <thetext>Carlos Garcia, what do you think?

It looks like the arrow buttons are too small when the entry is larger. And even at the smallest size, they appear to be misaligned horizontally, right? I would expect the arrows to be aligned with the edge of the entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448065</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-06 00:54:54 -0700</bug_when>
    <thetext>The point of our theming code is to be consistent with the rest of the platform (being GNOME the platform in this case). So, I don&apos;t think we should render the spin buttons differently, but I agree they don&apos;t work in case of small fields that are simply not allowed in the GTK+ world. So, I think we should either skip the theming when the size of the control is smaller than the minimum GTK+ spin button size for the current theme, or render a different style only when the control size is too small. It could happen that a website with spin buttons of different sizes look inconsistent, though, but I guess that&apos;s unlikely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448101</commentid>
    <comment_count>12</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2018-08-06 05:06:25 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #11)
&gt; The point of our theming code is to be consistent with the rest of the
&gt; platform (being GNOME the platform in this case). So, I don&apos;t think we
&gt; should render the spin buttons differently, but I agree they don&apos;t work in
&gt; case of small fields that are simply not allowed in the GTK+ world. So, I
&gt; think we should either skip the theming when the size of the control is
&gt; smaller than the minimum GTK+ spin button size for the current theme, or
&gt; render a different style only when the control size is too small. It could
&gt; happen that a website with spin buttons of different sizes look
&gt; inconsistent, though, but I guess that&apos;s unlikely.

I agree with Carlos here. Either there is space for the buttons and they
get painted in the same way as GTK+ does, and skip them if the entry is
too small. I would rather have the spin button entry degrade to a normal
entry than having a custom widget that does not correspond to anything
available in GTK+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608851</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-01-20 13:48:33 -0800</bug_when>
    <thetext>I hit this today trying to configure a meeting reminder on Google Calendar.

And then again after downloading Ubuntu to test something. This example doesn&apos;t require any login: https://ubuntu.com/download/desktop/thank-you</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636068</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-03-31 09:54:12 -0700</bug_when>
    <thetext>This is fixed in trunk. The new spin buttons seem way too small tbh, but that&apos;s the opposite of the problem reported here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636102</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-03-31 10:32:30 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; This is fixed in trunk. The new spin buttons seem way too small tbh, but
&gt; that&apos;s the opposite of the problem reported here.

It was 257299 right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636104</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-03-31 10:33:05 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #15)
&gt; (In reply to Michael Catanzaro from comment #14)
&gt; &gt; This is fixed in trunk. The new spin buttons seem way too small tbh, but
&gt; &gt; that&apos;s the opposite of the problem reported here.
&gt; 
&gt; It was 257299 right?

r257299


r257299</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636149</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-03-31 11:20:49 -0700</bug_when>
    <thetext>Yes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>346225</attachid>
            <date>2018-07-31 16:49:48 -0700</date>
            <delta_ts>2018-07-31 16:49:48 -0700</delta_ts>
            <desc>Spin buttons</desc>
            <filename>spinbuttons.png</filename>
            <type>image/png</type>
            <size>5896</size>
            <attacher name="Carlos Bentzen">cadubentzen</attacher>
            
              <data encoding="base64">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
Eane/wN5YuXZyPUUhAAAAABJRU5ErkJggg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346226</attachid>
            <date>2018-07-31 16:52:13 -0700</date>
            <delta_ts>2018-07-31 16:52:13 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>WIP</filename>
            <type>text/plain</type>
            <size>13616</size>
            <attacher name="Carlos Bentzen">cadubentzen</attacher>
            
              <data encoding="base64">Y29tbWl0IDNjMmI0OTZhNTY0ZjgzODQ1ZDk2YTFmZDhkNzExNTRhMTU5MzM2ZjYKQXV0aG9yOiBD
YXJsb3MgRWR1YXJkbyBSYW1hbGhvIDxjYWR1YmVudHplbkBnbWFpbC5jb20+CkRhdGU6ICAgVHVl
IEp1bCAxNyAyMjo0MzoyMyAyMDE4IC0wMzAwCgogICAgV0lQCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR2FkZ2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUdhZGdldC5jcHAKaW5kZXggNmEyOTAzYjg3NTEu
LjE4ZDA4NjVjMjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVu
ZGVyVGhlbWVHYWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5k
ZXJUaGVtZUdhZGdldC5jcHAKQEAgLTQ5LDYgKzQ5LDggQEAgc3RkOjp1bmlxdWVfcHRyPFJlbmRl
clRoZW1lR2FkZ2V0PiBSZW5kZXJUaGVtZUdhZGdldDo6Y3JlYXRlKGNvbnN0IFJlbmRlclRoZW1l
R2EKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVuZGVyVGhlbWVJY29uR2FkZ2V0
PihpbmZvLCBwYXJlbnQsIHNpYmxpbmdzLCBwb3NpdGlvbik7CiAgICAgY2FzZSBSZW5kZXJUaGVt
ZUdhZGdldDo6VHlwZTo6U2Nyb2xsYmFyOgogICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxSZW5kZXJUaGVtZVNjcm9sbGJhckdhZGdldD4oaW5mbywgcGFyZW50LCBzaWJsaW5ncywgcG9z
aXRpb24pOworICAgIGNhc2UgUmVuZGVyVGhlbWVHYWRnZXQ6OlR5cGU6OlNwaW5CdXR0b246Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJlbmRlclRoZW1lU3BpbkJ1dHRvbkdhZGdl
dD4oaW5mbywgcGFyZW50LCBzaWJsaW5ncywgcG9zaXRpb24pOwogICAgIH0KIAogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzg2LDYgKzM4OCw2NyBAQCB2b2lkIFJlbmRlclRoZW1lU2Ny
b2xsYmFyR2FkZ2V0OjpyZW5kZXJTdGVwcGVyKGNhaXJvX3QqIGNyLCBjb25zdCBGbG9hdFJlY3Qm
IHBhaQogICAgICAgICBjb250ZW50c1JlY3QueSgpICsgKGNvbnRlbnRzUmVjdC5oZWlnaHQoKSAt
IHN0ZXBwZXJTaXplKSAvIDIsIHN0ZXBwZXJTaXplKTsKIH0KIAorUmVuZGVyVGhlbWVTcGluQnV0
dG9uR2FkZ2V0OjpSZW5kZXJUaGVtZVNwaW5CdXR0b25HYWRnZXQoY29uc3QgUmVuZGVyVGhlbWVH
YWRnZXQ6OkluZm8mIGluZm8sIFJlbmRlclRoZW1lR2FkZ2V0KiBwYXJlbnQsIGNvbnN0IFZlY3Rv
cjxSZW5kZXJUaGVtZUdhZGdldDo6SW5mbz4gc2libGluZ3MsIHVuc2lnbmVkIHBvc2l0aW9uKQor
ICAgIDogUmVuZGVyVGhlbWVHYWRnZXQoaW5mbywgcGFyZW50LCBzaWJsaW5ncywgcG9zaXRpb24p
Cit7Cit9CisKK0ludFNpemUgUmVuZGVyVGhlbWVTcGluQnV0dG9uR2FkZ2V0OjptaW5pbXVtU2l6
ZSgpIGNvbnN0Cit7CisgICAgLy8gV2UgYWxsb3cgc3BpbiBidXR0b25zIHNtYWxsZXIgdGhhbiB0
aGUgbWluIHNpemUgc2V0IG9uIHRoZW1lcy4KKyAgICByZXR1cm4gSW50U2l6ZSgpOworfQorCiti
b29sIFJlbmRlclRoZW1lU3BpbkJ1dHRvbkdhZGdldDo6cmVuZGVyKGNhaXJvX3QqIGNyLCBjb25z
dCBGbG9hdFJlY3QmIHBhaW50UmVjdCwgRmxvYXRSZWN0KikKK3sKKyAgICBBU1NFUlQobV9hcnJv
d1R5cGUgPT0gR1RLX0FSUk9XX1VQIHx8IG1fYXJyb3dUeXBlID09IEdUS19BUlJPV19ET1dOKTsK
KworICAgIEd0a1RleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gZ3RrX3N0eWxlX2NvbnRleHRfZ2V0
X2RpcmVjdGlvbihtX2NvbnRleHQuZ2V0KCkpOworCisgICAgLy8gUGFpbnQgYnV0dG9uLgorICAg
IEZsb2F0UmVjdCBidXR0b25SZWN0KHBhaW50UmVjdCk7CisgICAgZ3VpbnQganVuY3Rpb24gPSBn
dGtfc3R5bGVfY29udGV4dF9nZXRfanVuY3Rpb25fc2lkZXMobV9jb250ZXh0LmdldCgpKTsKKyAg
ICBpZiAobV9hcnJvd1R5cGUgPT0gR1RLX0FSUk9XX1VQKQorICAgICAgICBqdW5jdGlvbiB8PSBH
VEtfSlVOQ1RJT05fQk9UVE9NOworICAgIGVsc2UgeworICAgICAgICBqdW5jdGlvbiB8PSBHVEtf
SlVOQ1RJT05fVE9QOworICAgICAgICBidXR0b25SZWN0Lm1vdmUoMCwgcGFpbnRSZWN0LmhlaWdo
dCgpIC8gMik7CisgICAgfQorICAgIGJ1dHRvblJlY3Quc2V0SGVpZ2h0KHBhaW50UmVjdC5oZWln
aHQoKSAvIDIpOworICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9qdW5jdGlvbl9zaWRlcyhtX2Nv
bnRleHQuZ2V0KCksIHN0YXRpY19jYXN0PEd0a0p1bmN0aW9uU2lkZXM+KGp1bmN0aW9uKSk7CisK
KyAgICBSZW5kZXJUaGVtZUdhZGdldDo6cmVuZGVyKGNyLCBidXR0b25SZWN0LCBudWxscHRyKTsK
KworICAgIC8vIFBhaW50IGFycm93IGNlbnRlcmVkIGluc2lkZSBidXR0b24uCisgICAgLy8gVGhp
cyBjb2RlIGlzIGJhc2VkIG9uIGd0a3NwaW5idXR0b24uYyBjb2RlLgorICAgIEZsb2F0UmVjdCBh
cnJvd1JlY3Q7CisgICAgZ2RvdWJsZSBhbmdsZTsKKyAgICBpZiAobV9hcnJvd1R5cGUgPT0gR1RL
X0FSUk9XX1VQKSB7CisgICAgICAgIGFuZ2xlID0gMDsKKyAgICAgICAgYXJyb3dSZWN0LnNldFko
cGFpbnRSZWN0LnkoKSk7CisgICAgICAgIGFycm93UmVjdC5zZXRIZWlnaHQocGFpbnRSZWN0Lmhl
aWdodCgpIC8gMiAtIDIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGFuZ2xlID0gR19QSTsKKyAg
ICAgICAgYXJyb3dSZWN0LnNldFkocGFpbnRSZWN0LnkoKSArIGJ1dHRvblJlY3QueSgpKTsKKyAg
ICAgICAgYXJyb3dSZWN0LnNldEhlaWdodChwYWludFJlY3QuaGVpZ2h0KCkgLSBhcnJvd1JlY3Qu
eSgpIC0gMik7CisgICAgfQorICAgIGFycm93UmVjdC5zZXRXaWR0aChwYWludFJlY3Qud2lkdGgo
KSAtIDMpOworICAgIGlmIChkaXJlY3Rpb24gPT0gR1RLX1RFWFRfRElSX0xUUikKKyAgICAgICAg
YXJyb3dSZWN0LnNldFgocGFpbnRSZWN0LngoKSArIDEpOworICAgIGVsc2UKKyAgICAgICAgYXJy
b3dSZWN0LnNldFgocGFpbnRSZWN0LngoKSArIDIpOworCisgICAgZ2ludCB3aWR0aCA9IGFycm93
UmVjdC53aWR0aCgpIC8gMjsKKyAgICB3aWR0aCAtPSB3aWR0aCAlIDIgLSAxOyAvLyBGb3JjZSBv
ZGQuCisgICAgZ2ludCBoZWlnaHQgPSAod2lkdGggKyAxKSAvIDI7CisKKyAgICBhcnJvd1JlY3Qu
bW92ZSgoYXJyb3dSZWN0LndpZHRoKCkgLSB3aWR0aCkgLyAyLCAoYXJyb3dSZWN0LmhlaWdodCgp
IC0gaGVpZ2h0KSAvIDIpOworCisgICAgZ3RrX3JlbmRlcl9hcnJvdyhtX2NvbnRleHQuZ2V0KCks
IGNyLCBhbmdsZSwgYXJyb3dSZWN0LngoKSwgYXJyb3dSZWN0LnkoKSwgd2lkdGgpOworCisgICAg
cmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEdU
S19DSEVDS19WRVJTSU9OKDMsIDIwLCAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1JlbmRlclRoZW1lR2FkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVHYWRnZXQuaAppbmRleCBjNDZmMTU2MDY1Mi4uM2JiMzI2OGQ3OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUdhZGdldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUdhZGdldC5oCkBA
IC01MCw3ICs1MCw4IEBAIHB1YmxpYzoKICAgICAgICAgUmFkaW8sCiAgICAgICAgIEFycm93LAog
ICAgICAgICBJY29uLAotICAgICAgICBTY3JvbGxiYXIKKyAgICAgICAgU2Nyb2xsYmFyLAorICAg
ICAgICBTcGluQnV0dG9uCiAgICAgfTsKIAogICAgIHN0cnVjdCBJbmZvIHsKQEAgLTE2OSw2ICsx
NzAsMjAgQEAgcHJpdmF0ZToKICAgICBPcHRpb25TZXQ8U3RlcHBlcnM+IG1fc3RlcHBlcnM7CiB9
OwogCitjbGFzcyBSZW5kZXJUaGVtZVNwaW5CdXR0b25HYWRnZXQgZmluYWwgOiBwdWJsaWMgUmVu
ZGVyVGhlbWVHYWRnZXQgeworcHVibGljOgorICAgIFJlbmRlclRoZW1lU3BpbkJ1dHRvbkdhZGdl
dChjb25zdCBJbmZvJiwgUmVuZGVyVGhlbWVHYWRnZXQqIHBhcmVudCwgY29uc3QgVmVjdG9yPFJl
bmRlclRoZW1lR2FkZ2V0OjpJbmZvPiBzaWJsaW5ncywgdW5zaWduZWQgcG9zaXRpb24pOworCisg
ICAgSW50U2l6ZSBtaW5pbXVtU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworCisgICAgYm9vbCByZW5k
ZXIoY2Fpcm9fdCosIGNvbnN0IEZsb2F0UmVjdCYsIEZsb2F0UmVjdCogPSBudWxscHRyKSBvdmVy
cmlkZTsKKworICAgIHZvaWQgc2V0QXJyb3dUeXBlKEd0a0Fycm93VHlwZSBhcnJvd1R5cGUpIHsg
bV9hcnJvd1R5cGUgPSBhcnJvd1R5cGU7IH0KKworcHJpdmF0ZToKKyAgICBHdGtBcnJvd1R5cGUg
bV9hcnJvd1R5cGUgeyBHVEtfQVJST1dfVVAgfTsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEdUS19DSEVDS19WRVJTSU9OKDMsIDIwLCAwKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lV2lkZ2V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZVdpZGdldC5jcHAKaW5kZXggODhmNzA4
ZTdmNDIuLjU4OTAyMTJlNzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvUmVuZGVyVGhlbWVXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZVdpZGdldC5jcHAKQEAgLTIzMSwyNCArMjMxLDExIEBAIFJlbmRlclRoZW1l
U2VhcmNoRW50cnk6OlJlbmRlclRoZW1lU2VhcmNoRW50cnkoKQogCiBSZW5kZXJUaGVtZVNwaW5C
dXR0b246OlJlbmRlclRoZW1lU3BpbkJ1dHRvbigpCiB7Ci0gICAgUmVuZGVyVGhlbWVHYWRnZXQ6
OkluZm8gaW5mbyA9IHsgUmVuZGVyVGhlbWVHYWRnZXQ6OlR5cGU6OkdlbmVyaWMsICJzcGluYnV0
dG9uIiwgeyAiaG9yaXpvbnRhbCIgfSB9OwotICAgIG1fc3BpbkJ1dHRvbiA9IFJlbmRlclRoZW1l
R2FkZ2V0OjpjcmVhdGUoaW5mbyk7Ci0gICAgaW5mby50eXBlID0gUmVuZGVyVGhlbWVHYWRnZXQ6
OlR5cGU6OlRleHRGaWVsZDsKLSAgICBpbmZvLm5hbWUgPSAiZW50cnkiOwotICAgIGluZm8uY2xh
c3NMaXN0LmNsZWFyKCk7Ci0gICAgbV9lbnRyeSA9IFJlbmRlclRoZW1lR2FkZ2V0OjpjcmVhdGUo
aW5mbywgbV9zcGluQnV0dG9uLmdldCgpKTsKLSAgICBpbmZvLnR5cGUgPSBSZW5kZXJUaGVtZUdh
ZGdldDo6VHlwZTo6SWNvbjsKLSAgICBpbmZvLm5hbWUgPSAiYnV0dG9uIjsKLSAgICBpbmZvLmNs
YXNzTGlzdC5hcHBlbmQoInVwIik7Ci0gICAgbV91cCA9IFJlbmRlclRoZW1lR2FkZ2V0OjpjcmVh
dGUoaW5mbywgbV9zcGluQnV0dG9uLmdldCgpKTsKLSAgICBhdXRvKiB1cEljb24gPSBzdGF0aWNf
Y2FzdDxSZW5kZXJUaGVtZUljb25HYWRnZXQqPihtX3VwLmdldCgpKTsKLSAgICB1cEljb24tPnNl
dEljb25TaXplKFJlbmRlclRoZW1lSWNvbkdhZGdldDo6SWNvblNpemVHdGs6Ok1lbnUpOwotICAg
IHVwSWNvbi0+c2V0SWNvbk5hbWUoImxpc3QtYWRkLXN5bWJvbGljIik7Ci0gICAgaW5mby5jbGFz
c0xpc3RbMF0gPSAiZG93biI7Ci0gICAgbV9kb3duID0gUmVuZGVyVGhlbWVHYWRnZXQ6OmNyZWF0
ZShpbmZvLCBtX3NwaW5CdXR0b24uZ2V0KCkpOwotICAgIGF1dG8qIGRvd25JY29uID0gc3RhdGlj
X2Nhc3Q8UmVuZGVyVGhlbWVJY29uR2FkZ2V0Kj4obV9kb3duLmdldCgpKTsKLSAgICBkb3duSWNv
bi0+c2V0SWNvblNpemUoUmVuZGVyVGhlbWVJY29uR2FkZ2V0OjpJY29uU2l6ZUd0azo6TWVudSk7
Ci0gICAgZG93bkljb24tPnNldEljb25OYW1lKCJsaXN0LXJlbW92ZS1zeW1ib2xpYyIpOworICAg
IFJlbmRlclRoZW1lR2FkZ2V0OjpJbmZvIGluZm8gPSB7IFJlbmRlclRoZW1lR2FkZ2V0OjpUeXBl
OjpTcGluQnV0dG9uLCAic3BpbmJ1dHRvbiIsIHsgInNwaW5idXR0b24iLCAiYnV0dG9uIiB9IH07
CisgICAgbV91cCA9IFJlbmRlclRoZW1lR2FkZ2V0OjpjcmVhdGUoaW5mbywgbV9lbnRyeS5nZXQo
KSk7CisgICAgc3RhdGljX2Nhc3Q8UmVuZGVyVGhlbWVTcGluQnV0dG9uR2FkZ2V0Kj4obV91cC5n
ZXQoKSktPnNldEFycm93VHlwZShHVEtfQVJST1dfVVApOworICAgIG1fZG93biA9IFJlbmRlclRo
ZW1lR2FkZ2V0OjpjcmVhdGUoaW5mbywgbV9lbnRyeS5nZXQoKSk7CisgICAgc3RhdGljX2Nhc3Q8
UmVuZGVyVGhlbWVTcGluQnV0dG9uR2FkZ2V0Kj4obV9kb3duLmdldCgpKS0+c2V0QXJyb3dUeXBl
KEdUS19BUlJPV19ET1dOKTsKIH0KIAogUmVuZGVyVGhlbWVTbGlkZXI6OlJlbmRlclRoZW1lU2xp
ZGVyKEd0a09yaWVudGF0aW9uIG9yaWVudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUmVuZGVyVGhlbWVXaWRnZXQuaAppbmRleCA1ZGFhYjBkNzg0MC4uNzRjMjVhMDRj
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZVdp
ZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZVdpZGdl
dC5oCkBAIC0xNTksMTkgKzE1OSwxNSBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW5kZXJUaGVtZUdhZGdldD4gbV9yaWdodEljb247CiB9OwogCi1jbGFzcyBSZW5kZXJUaGVtZVNw
aW5CdXR0b24gZmluYWwgOiBwdWJsaWMgUmVuZGVyVGhlbWVXaWRnZXQgeworY2xhc3MgUmVuZGVy
VGhlbWVTcGluQnV0dG9uIGZpbmFsIDogcHVibGljIFJlbmRlclRoZW1lRW50cnkgewogcHVibGlj
OgogICAgIFJlbmRlclRoZW1lU3BpbkJ1dHRvbigpOwogICAgIH5SZW5kZXJUaGVtZVNwaW5CdXR0
b24oKSA9IGRlZmF1bHQ7CiAKLSAgICBSZW5kZXJUaGVtZUdhZGdldCYgc3BpbkJ1dHRvbigpIGNv
bnN0IHsgcmV0dXJuICptX3NwaW5CdXR0b247IH0KLSAgICBSZW5kZXJUaGVtZUdhZGdldCYgZW50
cnkoKSBjb25zdCB7IHJldHVybiAqbV9lbnRyeTsgfQogICAgIFJlbmRlclRoZW1lR2FkZ2V0JiB1
cCgpIGNvbnN0IHsgcmV0dXJuICptX3VwOyB9CiAgICAgUmVuZGVyVGhlbWVHYWRnZXQmIGRvd24o
KSBjb25zdCB7IHJldHVybiAqbV9kb3duOyB9CiAKIHByaXZhdGU6Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPFJlbmRlclRoZW1lR2FkZ2V0PiBtX3NwaW5CdXR0b247Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PFJlbmRlclRoZW1lR2FkZ2V0PiBtX2VudHJ5OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJU
aGVtZUdhZGdldD4gbV91cDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyVGhlbWVHYWRnZXQ+
IG1fZG93bjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNw
cAppbmRleCA4ZThmZTEwZjU4ZS4uZjY4YjhhZTBiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcApAQCAtOTM1LDUzICs5MzUsMTUgQEAgYm9vbCBSZW5k
ZXJUaGVtZUd0azo6aXNDb250cm9sU3R5bGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29u
c3QgQm9yZGVyRGF0YSYKIAogI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDIwLCAwKQogCi1zdGF0
aWMgSW50U2l6ZSBzcGluQnV0dG9uU2l6ZSgpCi17Ci0gICAgYXV0byYgc3BpbkJ1dHRvbldpZGdl
dCA9IHN0YXRpY19jYXN0PFJlbmRlclRoZW1lU3BpbkJ1dHRvbiY+KFJlbmRlclRoZW1lV2lkZ2V0
OjpnZXRPckNyZWF0ZShSZW5kZXJUaGVtZVdpZGdldDo6VHlwZTo6U3BpbkJ1dHRvbikpOwotICAg
IHNwaW5CdXR0b25XaWRnZXQuc3BpbkJ1dHRvbigpLnNldFN0YXRlKEdUS19TVEFURV9GTEFHX05P
Uk1BTCk7Ci0gICAgc3BpbkJ1dHRvbldpZGdldC5lbnRyeSgpLnNldFN0YXRlKEdUS19TVEFURV9G
TEFHX05PUk1BTCk7Ci0gICAgc3BpbkJ1dHRvbldpZGdldC51cCgpLnNldFN0YXRlKEdUS19TVEFU
RV9GTEFHX05PUk1BTCk7Ci0gICAgc3BpbkJ1dHRvbldpZGdldC5kb3duKCkuc2V0U3RhdGUoR1RL
X1NUQVRFX0ZMQUdfTk9STUFMKTsKLQotICAgIEludFNpemUgcHJlZmVycmVkU2l6ZSA9IHNwaW5C
dXR0b25XaWRnZXQuc3BpbkJ1dHRvbigpLnByZWZlcnJlZFNpemUoKTsKLSAgICBwcmVmZXJyZWRT
aXplID0gcHJlZmVycmVkU2l6ZS5leHBhbmRlZFRvKHNwaW5CdXR0b25XaWRnZXQuZW50cnkoKS5w
cmVmZXJyZWRTaXplKCkpOwotICAgIEludFNpemUgdXBQcmVmZXJyZWRTaXplID0gcHJlZmVycmVk
U2l6ZS5leHBhbmRlZFRvKHNwaW5CdXR0b25XaWRnZXQudXAoKS5wcmVmZXJyZWRTaXplKCkpOwot
ICAgIEludFNpemUgZG93blByZWZlcnJlZFNpemUgPSBwcmVmZXJyZWRTaXplLmV4cGFuZGVkVG8o
c3BpbkJ1dHRvbldpZGdldC5kb3duKCkucHJlZmVycmVkU2l6ZSgpKTsKLQotICAgIHJldHVybiBJ
bnRTaXplKHVwUHJlZmVycmVkU2l6ZS53aWR0aCgpICsgZG93blByZWZlcnJlZFNpemUud2lkdGgo
KSwgc3RkOjptYXgodXBQcmVmZXJyZWRTaXplLmhlaWdodCgpLCBkb3duUHJlZmVycmVkU2l6ZS5o
ZWlnaHQoKSkpOwotfQotCi0KLXZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdFRleHRGaWVsZFN0
eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQpIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RUZXh0RmllbGRTdHlsZShT
dHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBjb25zdCBFbGVtZW50KikgY29uc3QKIHsKLSAg
ICBpZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpIHx8ICFzaG91bGRIYXZlU3BpbkJ1
dHRvbihkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBzdHlsZS5zZXRNaW5IZWlnaHQoTGVuZ3RoKHNwaW5CdXR0b25TaXplKCkuaGVp
Z2h0KCksIEZpeGVkKSk7Ci0KLSAgICAvLyBUaGUgZGVmYXVsdCB0aGVtZSBmb3IgdGhlIEdUSysg
cG9ydCB1c2VzIHZlcnkgd2lkZSBzcGluIGJ1dHRvbnMgKDY2cHgpIGNvbXBhcmVkIHRvIHdoYXQg
b3RoZXIKLSAgICAvLyBicm93c2VycyB1c2UgKH4xMyBweCkuIEFuZCB1bmZvcnR1bmF0ZWx5LCBt
b3N0IG9mIHRoZSB3ZWIgZGV2ZWxvcGVycyB3b24ndCB0ZXN0IGhvdyB0aGVpciBzaXRlCi0gICAg
Ly8gcmVuZGVycyBvbiBXZWJLaXRHVEsrLiBUbyBlbnN1cmUgdGhhdCBzcGluIGJ1dHRvbnMgZG9u
J3QgZW5kIHVwIGNvdmVyaW5nIHRoZSB2YWx1ZXMgb2YgdGhlIGlucHV0Ci0gICAgLy8gZmllbGQs
IHdlIG92ZXJyaWRlIHRoZSB3aWR0aCBvZiB0aGUgaW5wdXQgZWxlbWVudCBhbmQgYWx3YXlzIGlu
Y3JlbWVudCBpdCB3aXRoIHRoZSB3aWR0aCBuZWVkZWQKLSAgICAvLyBmb3IgdGhlIHNwaW5idXR0
b24gKHdoZW4gZHJhd2luZyB0aGUgc3BpbmJ1dHRvbikuCi0gICAgaW50IG1pbmltdW1XaWR0aCA9
IHN0eWxlLndpZHRoKCkuaW50VmFsdWUoKSArIHNwaW5CdXR0b25TaXplKCkud2lkdGgoKTsKLSAg
ICBzdHlsZS5zZXRNaW5XaWR0aChMZW5ndGgobWluaW11bVdpZHRoLCBGaXhlZCkpOwogfQogCiBi
b29sIFJlbmRlclRoZW1lR3RrOjpwYWludFRleHRGaWVsZChjb25zdCBSZW5kZXJPYmplY3QmIHJl
bmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkKIHsKLSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4ocmVuZGVyT2JqZWN0Lm5vZGUo
KSkgJiYgc2hvdWxkSGF2ZVNwaW5CdXR0b24oZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKnJl
bmRlck9iamVjdC5ub2RlKCkpKSkgewotICAgICAgICBhdXRvJiBzcGluQnV0dG9uV2lkZ2V0ID0g
c3RhdGljX2Nhc3Q8UmVuZGVyVGhlbWVTcGluQnV0dG9uJj4oUmVuZGVyVGhlbWVXaWRnZXQ6Omdl
dE9yQ3JlYXRlKFJlbmRlclRoZW1lV2lkZ2V0OjpUeXBlOjpTcGluQnV0dG9uKSk7Ci0gICAgICAg
IGF1dG8gc3BpbkJ1dHRvblN0YXRlID0gdGhlbWVQYXJ0U3RhdGVGbGFncygqdGhpcywgRW50cnks
IHJlbmRlck9iamVjdCk7Ci0gICAgICAgIHNwaW5CdXR0b25XaWRnZXQuc3BpbkJ1dHRvbigpLnNl
dFN0YXRlKHNwaW5CdXR0b25TdGF0ZSk7Ci0gICAgICAgIHNwaW5CdXR0b25XaWRnZXQuZW50cnko
KS5zZXRTdGF0ZShzcGluQnV0dG9uU3RhdGUpOwotICAgICAgICBzcGluQnV0dG9uV2lkZ2V0LnNw
aW5CdXR0b24oKS5yZW5kZXIocGFpbnRJbmZvLmNvbnRleHQoKS5wbGF0Zm9ybUNvbnRleHQoKS0+
Y3IoKSwgcmVjdCk7Ci0gICAgICAgIHNwaW5CdXR0b25XaWRnZXQuZW50cnkoKS5yZW5kZXIocGFp
bnRJbmZvLmNvbnRleHQoKS5wbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKSwgcmVjdCk7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgYXV0byYgZW50cnlXaWRnZXQgPSBzdGF0aWNfY2FzdDxSZW5kZXJUaGVt
ZUVudHJ5Jj4oUmVuZGVyVGhlbWVXaWRnZXQ6OmdldE9yQ3JlYXRlKFJlbmRlclRoZW1lV2lkZ2V0
OjpUeXBlOjpFbnRyeSkpOwotICAgICAgICBlbnRyeVdpZGdldC5lbnRyeSgpLnNldFN0YXRlKHRo
ZW1lUGFydFN0YXRlRmxhZ3MoKnRoaXMsIEVudHJ5LCByZW5kZXJPYmplY3QpKTsKLSAgICAgICAg
ZW50cnlXaWRnZXQuZW50cnkoKS5yZW5kZXIocGFpbnRJbmZvLmNvbnRleHQoKS5wbGF0Zm9ybUNv
bnRleHQoKS0+Y3IoKSwgcmVjdCk7Ci0gICAgfQorICAgIGF1dG8mIGVudHJ5V2lkZ2V0ID0gc3Rh
dGljX2Nhc3Q8UmVuZGVyVGhlbWVFbnRyeSY+KFJlbmRlclRoZW1lV2lkZ2V0OjpnZXRPckNyZWF0
ZShSZW5kZXJUaGVtZVdpZGdldDo6VHlwZTo6RW50cnkpKTsKKyAgICBlbnRyeVdpZGdldC5lbnRy
eSgpLnNldFN0YXRlKHRoZW1lUGFydFN0YXRlRmxhZ3MoKnRoaXMsIEVudHJ5LCByZW5kZXJPYmpl
Y3QpKTsKKyAgICBlbnRyeVdpZGdldC5lbnRyeSgpLnJlbmRlcihwYWludEluZm8uY29udGV4dCgp
LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCByZWN0KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAj
ZWxzZQpAQCAtMTUyMiwzOSArMTQ4NCwzMiBAQCBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludFBy
b2dyZXNzQmFyKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYQogI2Vu
ZGlmIC8vIEdUS19DSEVDS19WRVJTSU9OKDMsIDIwLCAwKQogCiAjaWYgR1RLX0NIRUNLX1ZFUlNJ
T04oMywgMjAsIDApCi1SZW5kZXJUaGVtZTo6SW5uZXJTcGluQnV0dG9uTGF5b3V0IFJlbmRlclRo
ZW1lR3RrOjppbm5lclNwaW5CdXR0b25MYXlvdXQoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJP
YmplY3QpIGNvbnN0CitSZW5kZXJUaGVtZTo6SW5uZXJTcGluQnV0dG9uTGF5b3V0IFJlbmRlclRo
ZW1lR3RrOjppbm5lclNwaW5CdXR0b25MYXlvdXQoY29uc3QgUmVuZGVyT2JqZWN0JikgY29uc3QK
IHsKLSAgICByZXR1cm4gcmVuZGVyT2JqZWN0LnN0eWxlKCkuZGlyZWN0aW9uKCkgPT0gUlRMID8g
SW5uZXJTcGluQnV0dG9uTGF5b3V0OjpIb3Jpem9udGFsVXBMZWZ0IDogSW5uZXJTcGluQnV0dG9u
TGF5b3V0OjpIb3Jpem9udGFsVXBSaWdodDsKKyAgICByZXR1cm4gSW5uZXJTcGluQnV0dG9uTGF5
b3V0OjpWZXJ0aWNhbDsKIH0KIAorc3RhdGljIGNvbnN0IGludCBzcGluQnV0dG9uQXJyb3dTaXpl
ID0gMTI7CisKIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdElubmVyU3BpbkJ1dHRvblN0eWxl
KFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IEVsZW1lbnQqKSBjb25z
dAogewotICAgIHN0eWxlLnNldFdpZHRoKExlbmd0aChzcGluQnV0dG9uU2l6ZSgpLndpZHRoKCks
IEZpeGVkKSk7Ci0gICAgc3R5bGUuc2V0SGVpZ2h0KExlbmd0aChzcGluQnV0dG9uU2l6ZSgpLmhl
aWdodCgpLCBGaXhlZCkpOworICAgIHN0eWxlLnNldFdpZHRoKExlbmd0aChzcGluQnV0dG9uQXJy
b3dTaXplLCBGaXhlZCkpOworICAgIHN0eWxlLnNldE1pbldpZHRoKExlbmd0aChzcGluQnV0dG9u
QXJyb3dTaXplLCBGaXhlZCkpOworCisgICAgc3R5bGUuc2V0TWF4SGVpZ2h0KExlbmd0aCgyICog
c3BpbkJ1dHRvbkFycm93U2l6ZSwgRml4ZWQpKTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6
cGFpbnRJbm5lclNwaW5CdXR0b24oY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGF1
dG8mIHNwaW5CdXR0b25XaWRnZXQgPSBzdGF0aWNfY2FzdDxSZW5kZXJUaGVtZVNwaW5CdXR0b24m
PihSZW5kZXJUaGVtZVdpZGdldDo6Z2V0T3JDcmVhdGUoUmVuZGVyVGhlbWVXaWRnZXQ6OlR5cGU6
OlNwaW5CdXR0b24pKTsKLSAgICBhdXRvIHNwaW5CdXR0b25TdGF0ZSA9IHRoZW1lUGFydFN0YXRl
RmxhZ3MoKnRoaXMsIFNwaW5CdXR0b24sIHJlbmRlck9iamVjdCk7Ci0gICAgc3BpbkJ1dHRvbldp
ZGdldC5zcGluQnV0dG9uKCkuc2V0U3RhdGUoc3BpbkJ1dHRvblN0YXRlKTsKLSAgICBzcGluQnV0
dG9uV2lkZ2V0LmVudHJ5KCkuc2V0U3RhdGUoc3BpbkJ1dHRvblN0YXRlKTsKICAgICBhdXRvJiB1
cCA9IHNwaW5CdXR0b25XaWRnZXQudXAoKTsKLSAgICB1cC5zZXRTdGF0ZSh0aGVtZVBhcnRTdGF0
ZUZsYWdzKCp0aGlzLCBTcGluQnV0dG9uVXBCdXR0b24sIHJlbmRlck9iamVjdCkpOwogICAgIGF1
dG8mIGRvd24gPSBzcGluQnV0dG9uV2lkZ2V0LmRvd24oKTsKKworICAgIHVwLnNldFN0YXRlKHRo
ZW1lUGFydFN0YXRlRmxhZ3MoKnRoaXMsIFNwaW5CdXR0b25VcEJ1dHRvbiwgcmVuZGVyT2JqZWN0
KSk7CiAgICAgZG93bi5zZXRTdGF0ZSh0aGVtZVBhcnRTdGF0ZUZsYWdzKCp0aGlzLCBTcGluQnV0
dG9uRG93bkJ1dHRvbiwgcmVuZGVyT2JqZWN0KSk7CiAKLSAgICBJbnRSZWN0IGljb25SZWN0ID0g
cmVjdDsKLSAgICBpY29uUmVjdC5zZXRXaWR0aChpY29uUmVjdC53aWR0aCgpIC8gMik7Ci0gICAg
aWYgKHJlbmRlck9iamVjdC5zdHlsZSgpLmRpcmVjdGlvbigpID09IFJUTCkKLSAgICAgICAgdXAu
cmVuZGVyKHBhaW50SW5mby5jb250ZXh0KCkucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGljb25S
ZWN0KTsKLSAgICBlbHNlCi0gICAgICAgIGRvd24ucmVuZGVyKHBhaW50SW5mby5jb250ZXh0KCku
cGxhdGZvcm1Db250ZXh0KCktPmNyKCksIGljb25SZWN0KTsKLSAgICBpY29uUmVjdC5tb3ZlKGlj
b25SZWN0LndpZHRoKCksIDApOwotICAgIGlmIChyZW5kZXJPYmplY3Quc3R5bGUoKS5kaXJlY3Rp
b24oKSA9PSBSVEwpCi0gICAgICAgIGRvd24ucmVuZGVyKHBhaW50SW5mby5jb250ZXh0KCkucGxh
dGZvcm1Db250ZXh0KCktPmNyKCksIGljb25SZWN0KTsKLSAgICBlbHNlCi0gICAgICAgIHVwLnJl
bmRlcihwYWludEluZm8uY29udGV4dCgpLnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBpY29uUmVj
dCk7CisgICAgdXAucmVuZGVyKHBhaW50SW5mby5jb250ZXh0KCkucGxhdGZvcm1Db250ZXh0KCkt
PmNyKCksIHJlY3QpOworICAgIGRvd24ucmVuZGVyKHBhaW50SW5mby5jb250ZXh0KCkucGxhdGZv
cm1Db250ZXh0KCktPmNyKCksIHJlY3QpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>