<?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>191816</bug_id>
          
          <creation_ts>2018-11-17 14:56:17 -0800</creation_ts>
          <short_desc>[css-scroll-snap] scroll-snap-align not honored on child with non-visible overflow</short_desc>
          <delta_ts>2019-02-04 07:40:29 -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>Layout and Rendering</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="jonjohnjohnson">hi</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fred.wang</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>sparhami</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1479978</commentid>
    <comment_count>0</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2018-11-17 14:56:17 -0800</bug_when>
    <thetext>cc wenson_hsieh@apple.com

Testcase -&gt; https://jsfiddle.net/jfmL13n6/

In the testcase, there is a grid of 4 scrollers. Each scroller scrolls horizontally, and *should have html/css that is spec compliant for snapping between two inner snapped positions. You can witness each scroll horizontally when using at least a trackpad, but only scrollers on the bottom half of the screen exhibit snapping. The bottom scrollers use an extra element between the snapport and the inner scrollers to declare the scroll-snap-align property. This is a remedy for the current bug, but *should not be needed. In the upper scrollers, the scroll-snap-align property is declared on the inner scrolling elements and no snapping is exhibited.

There is also a tangential issue with scroll-snap breaking scroll chaining from inner scrolling element that scroll in the same axis. This can be seen in the right side scrollers specifically, where all scrollers are horizontal.

Steps to reproduce:
1. Go to test case -&gt; https://jsfiddle.net/jfmL13n6/
2. Scroll element in the lower left horizontal and notice snapping behaves as expected.
3. Scroll element in the upper left horizontal and notice no snapping.
4. Notice inner scrollers of upper and lower left can be scrolled vertically. If `overflow-y:scroll` was removed from the inner scrollers, the upper left would begin to snap correctly.

Tangiential issue steps:
5. Scroll the upper right scroller horizontally, through the inner scrollers so that the scroll boundaries are reached and &quot;scroll chaining&quot; behavior allows for movement of what should be the outer snapport.
6. Scroll the lower right scroller horizontally, it doesn&apos;t allow for &quot;scroll chaining&quot; because the inner scroller is in the same axis as the outer snapport.

Tip. Scroll with your pointer above the red borders to ensure you are scrolling the outer snapports. Scroll on the striped areas when ensuring correct scroll chaining.

Expectations:
1. Scrollers on the top half of the screen should snap just like the scrollers on the bottom half.
2. Scroll chaining shouldn&apos;t be broken between same axis scrolling of snap and non-snap scrollers.

Relevant texts
https://drafts.csswg.org/css-scroll-snap-1/
https://drafts.csswg.org/css-overscroll-behavior-1/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479981</commentid>
    <comment_count>1</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2018-11-17 15:06:10 -0800</bug_when>
    <thetext>The bug was first discovered in this much less reduced test case, where &apos;.view&apos; both scrolls vertically and is attempting to create a snap position for it&apos;s immediate parents horizontal snapport by using a computed `scroll-snap-align: end`. https://jsbin.com/rutoceb/quiet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1479984</commentid>
    <comment_count>2</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2018-11-17 15:15:37 -0800</bug_when>
    <thetext>Also, it appears the original scroll-snap issue also happens in iOS safari. Though the tangential scroll chaining issue from the original test cases lower right scroller is not present on iOS, only showing when scrolling my trackpad in safari on macOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482152</commentid>
    <comment_count>3</comment_count>
    <who name="Sepand Parhami">sparhami</who>
    <bug_when>2018-11-27 15:06:08 -0800</bug_when>
    <thetext>Even if the child does not scroll, scroll-snap-align is not honored as long you have any overflow value other than visible.

Here is a page showing `overflow: hidden` prevents snapping.

https://jsfiddle.net/awq5u789/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482157</commentid>
    <comment_count>4</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2018-11-27 15:15:10 -0800</bug_when>
    <thetext>Thanks sparhami@google.com for the much more isolated case.

Have a feeling this is tied to the age old behavior of `overflow: hidden` being considered a &quot;scroll container&quot; even if its &quot;scrollport&quot; and &quot;scrollbox&quot; have same dimensions, not overflowing, and don&apos;t provide programatic or user scrollability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1482159</commentid>
    <comment_count>5</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2018-11-27 15:17:00 -0800</bug_when>
    <thetext>Yes, if I change the css line 27 in https://jsfiddle.net/awq5u789/ to `overflow: auto`, the bug is still present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1484597</commentid>
    <comment_count>6</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2018-12-03 16:19:12 -0800</bug_when>
    <thetext>wenson_hsieh@apple.com I recall you were working on rounding out scroll-snap, don&apos;t mean to bug, but willing to try n get your attention if this issue hasn&apos;t been pointed out anywhere else and needs to be changed from &quot;new&quot; to reproduced/observed in the tracker, so it may get assigned?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494623</commentid>
    <comment_count>7</comment_count>
      <attachid>359159</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-15 08:03:36 -0800</bug_when>
    <thetext>Created attachment 359159
Testcase

A reduced testcase (not using flexbox, although I don&apos;t think that really matters).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494626</commentid>
    <comment_count>8</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-15 08:14:46 -0800</bug_when>
    <thetext>(In reply to jonjohnjohnson from comment #0)
&gt; Tangiential issue steps:
&gt; 5. Scroll the upper right scroller horizontally, through the inner scrollers
&gt; so that the scroll boundaries are reached and &quot;scroll chaining&quot; behavior
&gt; allows for movement of what should be the outer snapport.
&gt; 6. Scroll the lower right scroller horizontally, it doesn&apos;t allow for
&gt; &quot;scroll chaining&quot; because the inner scroller is in the same axis as the
&gt; outer snapport.

I was not able to reproduce these issues with iPad / iOS 12.1 beta 4 (maybe I didn&apos;t understand them). Anyway, they should probably be moved into a separate bug entry.

I changed the bug title to reflect comment 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494629</commentid>
    <comment_count>9</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2019-01-15 08:22:08 -0800</bug_when>
    <thetext>Regarding the title, &quot;non-visible overflow&quot; works to reference this in webkit, but across vendors things have been not as simple with the resolution for the `clip` https://drafts.csswg.org/css-overflow-3/#valdef-overflow-clip value not enabling the element to be a scroll container, like the visible value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494633</commentid>
    <comment_count>10</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2019-01-15 08:25:10 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #8)
&gt; I was not able to reproduce these issues with iPad / iOS 12.1 beta 4 (maybe
&gt; I didn&apos;t understand them). Anyway, they should probably be moved into a
&gt; separate bug entry.

I&apos;ll file it separately, but the bug isn&apos;t in iOS safari, only a desktop safari bug. Try those exact steps in latest STP to see the prevention of scroll chaining from the inner scroller because the outer scroller is a snapport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1494705</commentid>
    <comment_count>11</comment_count>
    <who name="jonjohnjohnson">hi</who>
    <bug_when>2019-01-15 10:38:03 -0800</bug_when>
    <thetext>I think the tangential bug spotted here is also the root of this other issue? 

https://bugs.webkit.org/show_bug.cgi?id=192344

Can you confirm for me if it&apos;s the case???</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500010</commentid>
    <comment_count>12</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-30 08:20:59 -0800</bug_when>
    <thetext>OK, I finally got a chance to look into this this afternoon.

I see that the scroll snap offsets are not created for children with overflow != visible. Checking what&apos;s happening in updateScrollSnapOffsetForScrollableArea, the following seems dubious:

for (auto* child : scrollContainer-&gt;view().boxesWithScrollSnapPositions()) {
    if (child-&gt;findEnclosingScrollableContainer() != scrollContainer)
       continue;

For a child that is overflow scrollable, child-&gt;findEnclosingScrollableContainer() returns the child itself and hence the child is skipped in the for loop. I suspect findEnclosingScrollableContainer() is supposed to check only strict ancestors and not return the child itself. A quick one-line change makes the testcase behaves as expected. I will try to check more and upload a patch for review later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500533</commentid>
    <comment_count>13</comment_count>
      <attachid>360715</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-31 03:42:09 -0800</bug_when>
    <thetext>Created attachment 360715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500616</commentid>
    <comment_count>14</comment_count>
      <attachid>360715</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-31 09:50:23 -0800</bug_when>
    <thetext>Comment on attachment 360715
Patch

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

&gt; Source/WebCore/rendering/RenderLayerModelObject.cpp:222
&gt; +        const RenderBox* scrollSnapBox = enclosingScrollableContainerForSnapping();

Nit - auto*?

&gt; Source/WebCore/rendering/RenderObject.cpp:443
&gt; +    auto* renderBox = &amp;enclosingBox();

Nit - auto&amp; renderBox = enclosingBox();, and use . instead of -&gt;?

&gt; Source/WebCore/rendering/RenderObject.cpp:447
&gt; +            return renderBox-&gt;parentBox()-&gt;findEnclosingScrollableContainer();

Is it guaranteed that renderBox.parentBox() exists?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500618</commentid>
    <comment_count>15</comment_count>
      <attachid>360715</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-31 10:04:23 -0800</bug_when>
    <thetext>Comment on attachment 360715
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderObject.cpp:447
&gt;&gt; +            return renderBox-&gt;parentBox()-&gt;findEnclosingScrollableContainer();
&gt; 
&gt; Is it guaranteed that renderBox.parentBox() exists?

I expected that it is true otherwise we won&apos;t be looking for the scrollable container for snapping (renderBox == this in this if clause). Maybe I can add an ASSERT to be sure? Or should I test parentBox()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500626</commentid>
    <comment_count>16</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-01-31 10:16:54 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #15)
&gt; Comment on attachment 360715 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=360715&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RenderObject.cpp:447
&gt; &gt;&gt; +            return renderBox-&gt;parentBox()-&gt;findEnclosingScrollableContainer();
&gt; &gt; 
&gt; &gt; Is it guaranteed that renderBox.parentBox() exists?
&gt; 
&gt; I expected that it is true otherwise we won&apos;t be looking for the scrollable
&gt; container for snapping (renderBox == this in this if clause). Maybe I can
&gt; add an ASSERT to be sure? Or should I test parentBox()?

Ah, I see. In this case, an assertion would be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1500686</commentid>
    <comment_count>17</comment_count>
      <attachid>360748</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-01-31 11:56:09 -0800</bug_when>
    <thetext>Created attachment 360748
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501011</commentid>
    <comment_count>18</comment_count>
      <attachid>360715</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-01-31 23:04:02 -0800</bug_when>
    <thetext>Comment on attachment 360715
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderObject.cpp:447
&gt;&gt;&gt;&gt; +            return renderBox-&gt;parentBox()-&gt;findEnclosingScrollableContainer();
&gt;&gt;&gt; 
&gt;&gt;&gt; Is it guaranteed that renderBox.parentBox() exists?
&gt;&gt; 
&gt;&gt; I expected that it is true otherwise we won&apos;t be looking for the scrollable container for snapping (renderBox == this in this if clause). Maybe I can add an ASSERT to be sure? Or should I test parentBox()?
&gt; 
&gt; Ah, I see. In this case, an assertion would be nice.

There&apos;s non point ASSERTing; this is going to crash anyway.

It&apos;s a bit odd that this is on RenderObject. Do we expect this to apply to all renderers (RenderText, SVG things)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501041</commentid>
    <comment_count>19</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-01 00:15:54 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #18)
&gt; There&apos;s non point ASSERTing; this is going to crash anyway.
&gt; 

OK, I think I should return nullprt if there is no parent box then.

&gt; It&apos;s a bit odd that this is on RenderObject. Do we expect this to apply to
&gt; all renderers (RenderText, SVG things)?

I guess Wenson can better reply to this but currently RenderView::boxesWithScrollSnapPositions() and similar register/unregister functions work with RenderBoxes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501804</commentid>
    <comment_count>20</comment_count>
      <attachid>361053</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2019-02-04 07:00:05 -0800</bug_when>
    <thetext>Created attachment 361053
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501816</commentid>
    <comment_count>21</comment_count>
      <attachid>361053</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-04 07:39:53 -0800</bug_when>
    <thetext>Comment on attachment 361053
Patch for landing

Clearing flags on attachment: 361053

Committed r240921: &lt;https://trac.webkit.org/changeset/240921&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501817</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-04 07:39:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1501818</commentid>
    <comment_count>23</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-04 07:40:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/47785869&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>359159</attachid>
            <date>2019-01-15 08:03:36 -0800</date>
            <delta_ts>2019-01-15 08:03:36 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>scroll-snap-overflow.html</filename>
            <type>text/html</type>
            <size>895</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPlNjcm9sbCBzbmFwIG92
ZXJmbG93PC90aXRsZT4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+CiAgICA8bWV0YSBuYW1l
PSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIj4KICAgIDxzdHlsZT4KICAg
IC5jb250YWluZXIgewogICAgICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICAgICAgd2lkdGg6IDIw
MHB4OwogICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgYmFja2dyb3VuZDogbGlnaHRncmVl
bjsKICAgICAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7CiAgICAgICAgc2Ny
b2xsLXNuYXAtdHlwZTogeSBtYW5kYXRvcnk7CiAgICB9CiAgICAuY29udGFpbmVyID4gZGl2IHsK
ICAgICAgICB3aWR0aDogMTAwcHg7CiAgICAgICAgaGVpZ2h0OiAxMDBweDsKICAgICAgICBtYXJn
aW46IDUwcHg7CiAgICAgICAgYmFja2dyb3VuZDogYmx1ZTsKICAgICAgICBzY3JvbGwtc25hcC1h
bGlnbjogc3RhcnQ7CiAgICB9CiAgICBkaXYuc2Nyb2xsYWJsZUNoaWxkIHsKICAgICAgICBvdmVy
ZmxvdzogaGlkZGVuOwogICAgICAgIGJhY2tncm91bmQ6IHJlZDsKICAgIH0KICAgIDwvc3R5bGU+
CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+SXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHNjcm9s
bCB0aGUgZm9sbG93aW5nIGNvbnRhaW5lciB2ZXJ0aWNhbGx5IHNvIHRoYXQgaXQgc25hcHMgdG8g
dGhlIHJlZCBjaGlsZDo8L3A+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgICA8ZGl2
PjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxhYmxlQ2hpbGQiPjwvZGl2PgogICAgICA8
ZGl2PjwvZGl2PgogICAgPC9kaXY+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360715</attachid>
            <date>2019-01-31 03:42:09 -0800</date>
            <delta_ts>2019-01-31 11:56:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191816-20190131124207.patch</filename>
            <type>text/plain</type>
            <size>9331</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIwYzMxZjQ2YTNkZjI3
MTg4MjYxZTUzNjNjZGFhZDM2NDhhYzIwNS4uZWM3Y2RiNjNhOGQzNmIwNTA1MDg2NGVjZGJiOTdj
MmFhNzEyNDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTAxLTMxICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9sbC1zbmFw
XSBzY3JvbGwtc25hcC1hbGlnbiBub3QgaG9ub3JlZCBvbiBjaGlsZCB3aXRoIG5vbi12aXNpYmxl
IG92ZXJmbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTE4MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnIHRoYXQgcHJldmVudHMgY2hpbGRyZW4gb2YgYSBzY3Jv
bGwgY29udGFpbmVyIHRvIGNyZWF0ZSBzbmFwIHBvc2l0aW9ucworICAgICAgICB3aGVuIHRoZXkg
aGF2ZSBub24tdmlzaWJsZSBvdmVyZmxvdy4gVGhpcyBoYXBwZW5zIGJlY2F1c2UgZm9yIHN1Y2gg
YSBjaGlsZCwgdGhlIGZ1bmN0aW9uCisgICAgICAgIFJlbmRlckJveDo6ZmluZEVuY2xvc2luZ1Nj
cm9sbGFibGVDb250YWluZXIoKSB3aWxsIHJldHVybiB0aGUgY2hpbGQgaXRzZWxmIHJhdGhlciB0
aGFuIHRoZQorICAgICAgICBzY3JvbGwgY29udGFpbmVyLiBUbyBhZGRyZXNzIHRoYXQgaXNzdWUs
IHdlIGludHJvZHVjZSBhIG5ldworICAgICAgICBSZW5kZXJPYmplY3Q6OmVuY2xvc2luZ1Njcm9s
bGFibGVDb250YWluZXJGb3JTbmFwcGluZygpIGhlbHBlciBmdW5jdGlvbiB0aGF0IGVuc3VyZXMg
dGhhdAorICAgICAgICBhIHJlYWwgUmVuZGVyQm94IGFuY2VzdG9yIGlzIHJldHVybmVkLgorCisg
ICAgICAgIFRlc3Q6IGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2hpbGRyZW4td2l0aC1v
dmVyZmxvdy5odG1sCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9m
ZnNldHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxh
YmxlQXJlYSk6IFVzZSBlbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyRm9yU25hcHBpbmcoKQor
ICAgICAgICBzbyB0aGF0IHdlIGRvbid0IHNraXAgY2hpbGRyZW4gd2l0aCBub24tdmlzaWJsZSBv
dmVyZmxvdy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5n
ZSk6IERpdHRvLiBUaGUgbmV3IGZ1bmN0aW9uIGNhbGxzCisgICAgICAgIGVuY2xvc2luZ0JveCgp
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjplbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyRm9yU25hcHBpbmcg
Y29uc3QpOiBSZXR1cm4KKyAgICAgICAgdGhlIHNjcm9sbGFibGUgY29udGFpbmVyIG9mIHRoZSBl
bmNsb3NpbmcgYm94LiBJZiBpdCBpcyBhY3R1YWxseSB0aGUgcmVuZGVyIG9iamVjdCBpdHNlbGYK
KyAgICAgICAgdGhlbiBzdGFydCB0aGUgc2VhcmNoIGZyb20gdGhlIHBhcmVudCBib3ggaW5zdGVh
ZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6IERlY2xhcmUgZW5jbG9zaW5n
U2Nyb2xsYWJsZUNvbnRhaW5lckZvclNuYXBwaW5nKCkuIAorCiAyMDE5LTAxLTI5ICBSb2IgQnVp
cyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWxpZ24gd2l0aCBGZXRjaCBvbiBkYXRh
OiBVUkxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Ny
b2xsU25hcE9mZnNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Nj
cm9sbFNuYXBPZmZzZXRzLmNwcAppbmRleCAwMjA3NTM4NDdhMGQ4NDE3MTkzMGUyZTZmM2U1ZTRk
OWQ0OGM3YWYzLi44YzE0Y2NjOWQxZDc3NGRjYTE3MDAwN2VjMGY5MDgzYWE3NzNhOGRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNl
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFw
T2Zmc2V0cy5jcHAKQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lkIHVwZGF0ZVNuYXBPZmZzZXRzRm9y
U2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBIVE1MRWxlbQog
ICAgIExPRyhTY3JvbGxpbmcsICJDb21wdXRpbmcgc2Nyb2xsIHNuYXAgb2Zmc2V0cyBpbiBzbmFw
IHBvcnQ6ICVzIiwgc25hcFBvcnRPckFyZWFUb1N0cmluZyhzY3JvbGxTbmFwUG9ydCkudXRmOCgp
LmRhdGEoKSk7CiAjZW5kaWYKICAgICBmb3IgKGF1dG8qIGNoaWxkIDogc2Nyb2xsQ29udGFpbmVy
LT52aWV3KCkuYm94ZXNXaXRoU2Nyb2xsU25hcFBvc2l0aW9ucygpKSB7Ci0gICAgICAgIGlmIChj
aGlsZC0+ZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXIoKSAhPSBzY3JvbGxDb250YWlu
ZXIpCisgICAgICAgIGlmIChjaGlsZC0+ZW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lckZvclNu
YXBwaW5nKCkgIT0gc2Nyb2xsQ29udGFpbmVyKQogICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgY2hpbGQgZWxlbWVudCdzIHNuYXAgYXJlYSwgd2hl
cmUgdGhlIHRvcCBsZWZ0IG9mIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyJ3MgYm9yZGVyIGJveCBp
cyB0aGUgb3JpZ2luLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IDA2ZmNjZGU4Nzc5MTZmOTYyMDM3NjViYThlNjljZjhk
YzIwYjc2ZGEuLjc2Y2ZmYzM1MGUyZDllY2YyZWY4ZDI1NTVkN2Y1ZTBjZjk0Y2YyM2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5j
cHAKQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdAogICAgICAgICB9
CiAgICAgfQogICAgIGlmIChvbGRTdHlsZSAmJiBvbGRTdHlsZS0+c2Nyb2xsU25hcEFyZWEoKSAh
PSBuZXdTdHlsZS5zY3JvbGxTbmFwQXJlYSgpKSB7Ci0gICAgICAgIGNvbnN0IFJlbmRlckJveCog
c2Nyb2xsU25hcEJveCA9IGVuY2xvc2luZ0JveCgpLmZpbmRFbmNsb3NpbmdTY3JvbGxhYmxlQ29u
dGFpbmVyKCk7CisgICAgICAgIGNvbnN0IFJlbmRlckJveCogc2Nyb2xsU25hcEJveCA9IGVuY2xv
c2luZ1Njcm9sbGFibGVDb250YWluZXJGb3JTbmFwcGluZygpOwogICAgICAgICBpZiAoc2Nyb2xs
U25hcEJveCAmJiBzY3JvbGxTbmFwQm94LT5sYXllcigpKSB7CiAgICAgICAgICAgICBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUgPSBzY3JvbGxTbmFwQm94LT5zdHlsZSgpOwogICAgICAgICAgICAg
aWYgKHN0eWxlLnNjcm9sbFNuYXBUeXBlKCkuc3RyaWN0bmVzcyAhPSBTY3JvbGxTbmFwU3RyaWN0
bmVzczo6Tm9uZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApp
bmRleCA2NzYwMTdjNGM2Yzc3YTA3YjIyNzM5ZjBkNTY3MzE1ZjI3NmJlMDY0Li45OTIwYWIzODdi
MmFmOTA4NWIwMWQ2ZWY2ZGYzNTc3ODBlOTU2YmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtNDM4LDYgKzQzOCwxOCBAQCBSZW5kZXJCb3hNb2RlbE9i
amVjdCYgUmVuZGVyT2JqZWN0OjplbmNsb3NpbmdCb3hNb2RlbE9iamVjdCgpIGNvbnN0CiAgICAg
cmV0dXJuICpsaW5lYWdlT2ZUeXBlPFJlbmRlckJveE1vZGVsT2JqZWN0Pihjb25zdF9jYXN0PFJl
bmRlck9iamVjdCY+KCp0aGlzKSkuZmlyc3QoKTsKIH0KIAorY29uc3QgUmVuZGVyQm94KiBSZW5k
ZXJPYmplY3Q6OmVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXJGb3JTbmFwcGluZygpIGNvbnN0
Cit7CisgICAgYXV0byogcmVuZGVyQm94ID0gJmVuY2xvc2luZ0JveCgpOworICAgIGlmIChhdXRv
KiBzY3JvbGxhYmxlQ29udGFpbmVyID0gcmVuZGVyQm94LT5maW5kRW5jbG9zaW5nU2Nyb2xsYWJs
ZUNvbnRhaW5lcigpKSB7CisgICAgICAgIC8vIFRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciBmb3Ig
c25hcHBpbmcgY2Fubm90IGJlIHRoZSBub2RlIGl0c2VsZi4KKyAgICAgICAgaWYgKHNjcm9sbGFi
bGVDb250YWluZXIgPT0gdGhpcykKKyAgICAgICAgICAgIHJldHVybiByZW5kZXJCb3gtPnBhcmVu
dEJveCgpLT5maW5kRW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lcigpOworICAgICAgICByZXR1
cm4gc2Nyb2xsYWJsZUNvbnRhaW5lcjsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
IFJlbmRlckJsb2NrKiBSZW5kZXJPYmplY3Q6OmZpcnN0TGluZUJsb2NrKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApp
bmRleCA5N2NjMGZhZjljNjJjZTg3ZDBjMzhlM2NjNzI4ZDU3ODA0OTlhMzhlLi5kMDhjMWRiMGEy
ZTJmNjE5MzYyMGYzYTc1Mjk0N2U0Yjk4MTUyYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCkBAIC0xNjUsNiArMTY1LDcgQEAgcHVibGljOgogICAgIC8vIENvbnZl
bmllbmNlIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRvIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBib3gg
b2YgYSBSZW5kZXJPYmplY3QuCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVuZGVyQm94JiBlbmNsb3Np
bmdCb3goKSBjb25zdDsKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCYgZW5jbG9zaW5nQm94TW9k
ZWxPYmplY3QoKSBjb25zdDsKKyAgICBjb25zdCBSZW5kZXJCb3gqIGVuY2xvc2luZ1Njcm9sbGFi
bGVDb250YWluZXJGb3JTbmFwcGluZygpIGNvbnN0OwogCiAgICAgLy8gRnVuY3Rpb24gdG8gcmV0
dXJuIG91ciBlbmNsb3NpbmcgZmxvdyB0aHJlYWQgaWYgd2UgYXJlIGNvbnRhaW5lZCBpbnNpZGUg
b25lLiBUaGlzCiAgICAgLy8gZnVuY3Rpb24gZm9sbG93cyB0aGUgY29udGFpbmluZyBibG9jayBj
aGFpbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBmMmVmOGJhNjhlNjU4MDBhMWQzM2YwZDhiYWY1NDlhNzFiMTc1NDg5Li4z
ZWY2YzFhM2VjN2I3YjU2Mjc1MTYxMDc1ZWQ3OWIyNWJmNTVmODk4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTktMDEtMzEgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtjc3Mtc2Nyb2xsLXNuYXBdIHNjcm9sbC1zbmFwLWFsaWduIG5vdCBob25vcmVkIG9u
IGNoaWxkIHdpdGggbm9uLXZpc2libGUgb3ZlcmZsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5IHRoYXQgY2hpbGRy
ZW4gd2l0aCBub24tdmlzaWJsZSBvdmVyZmxvdyBjcmVhdGUgc25hcCBvZmZzZXRzLgorCisgICAg
ICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1jaGlsZHJlbi13aXRoLW92ZXJmbG93
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1jaGlsZHJlbi13aXRoLW92ZXJmbG93Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTAxLTMwICBa
YW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IFdQRSBnYXJkZW5pbmcuIE1hbmFnZSBmYWlsdXJlcyBpbiB0aGUgaW1wb3J0ZWQgV1BUIHRlc3Rz
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1j
aGlsZHJlbi13aXRoLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2hpbGRyZW4td2l0aC1vdmVyZmxvdy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2ZjYjVjMGQ2M2EyMzZmNzlmZjMxYmNjM2VmODkzMGUwY2NlY2E1NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAt
Y2hpbGRyZW4td2l0aC1vdmVyZmxvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitTY3Jv
bGwtc25hcCBvZmZzZXRzIGFyZTogdmVydGljYWwgPSB7IDAsIDcyMCwgMTQ0MCwgMjE2MCwgMjg4
MCwgMzYwMCB9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtY2hpbGRyZW4td2l0aC1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1jaGlsZHJlbi13aXRoLW92ZXJmbG93Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2FmMDA3OTM5YzA1ZTViN2ZhZWI4ODFkOTVjNDIyNzE0YWVjMGNlOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2hpbGRy
ZW4td2l0aC1vdmVyZmxvdy5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgICNjb250YWluZXIgeworICAgICAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDQwMHB4OworICAg
ICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICAg
IGxlZnQ6IDA7CisgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB5IG1hbmRhdG9yeTsKKyAg
ICAgICAgICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgICAgICAgICAgIG92ZXJmbG93LXk6IHNj
cm9sbDsKKyAgICAgICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKKyAg
ICAgICAgICAgIGJvcmRlcjogMXB4IGJsYWNrIGRhc2hlZDsKKyAgICAgICAgICAgIG9wYWNpdHk6
IDAuNzU7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFOworICAgICAgICB9CisK
KyAgICAgICAgLmNoaWxkIHsKKyAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAg
IGhlaWdodDogNDAwcHg7CisgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogZW5kOworICAg
ICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMDsKKyAgICAg
ICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICBsZXQgd3JpdGUgPSBzID0+IG91
dHB1dC5pbm5lckhUTUwgKz0gcyArICI8YnI+IjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1bigpCisgICAgeworICAg
ICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICB3cml0ZShgVG8gbWFudWFsbHkgdGVzdCwgdmVyaWZ5IHRoYXQgc2Nyb2xsaW5nIGlu
IHRoZSBjb250YWluZXIgc25hcHMgc3VjaCB0aGF0IHRoZSBib3R0b20gdGlwIG9mIGVhY2gKKyAg
ICAgICAgICAgICAgICBjb2xvcmVkIGJveCBhbGlnbnMgd2l0aCB0aGUgYm90dG9tIG9mIHRoZSBz
Y3JvbGxpbmcgY29udGFpbmVyLmApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgd3JpdGUoIlNjcm9sbC1z
bmFwIG9mZnNldHMgYXJlOiAiICsgaW50ZXJuYWxzLnNjcm9sbFNuYXBPZmZzZXRzKGNvbnRhaW5l
cikpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDAp
OworICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD1ydW4oKT4KKyAg
ICA8ZGl2IGlkPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjaGlsZCIgc3R5bGU9
ImJhY2tncm91bmQtY29sb3I6IHJlZDsgICAgIHRvcDogMHB4OyBvdmVyZmxvdzogdmlzaWJsZTsi
PjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjaGlsZCIgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6IGdyZWVuOyAgIHRvcDogNzIwcHg7ICBvdmVyZmxvdzogaGlkZGVuOyI+PC9kaXY+CisgICAg
ICAgIDxkaXYgY2xhc3M9ImNoaWxkIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgICAg
dG9wOiAxNDQwcHg7IG92ZXJmbG93OiBzY3JvbGw7Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0iY2hpbGQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyAgICB0b3A6IDIxNjBweDsg
b3ZlcmZsb3c6IGF1dG87Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQiIHN0eWxl
PSJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7ICB0b3A6IDI4ODBweDsgb3ZlcmZsb3c6IG92ZXJs
YXk7Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQiIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOiBmdWNoc2lhOyB0b3A6IDM2MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360748</attachid>
            <date>2019-01-31 11:56:09 -0800</date>
            <delta_ts>2019-02-04 06:59:56 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191816-20190131205607.patch</filename>
            <type>text/plain</type>
            <size>9379</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODE3ZmFhZDA4MGRhNzc4
YWMxNWVjNzE4OGQxZjY5ZTI4YTA5NjRkYy4uODMzMjQwNTk4MjgyNGExZmEyYjkwZTQ1NzY5OTQz
Njk2YmE0NWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTAxLTMxICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9sbC1zbmFw
XSBzY3JvbGwtc25hcC1hbGlnbiBub3QgaG9ub3JlZCBvbiBjaGlsZCB3aXRoIG5vbi12aXNpYmxl
IG92ZXJmbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTE4MTYKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyB0aGF0IHByZXZlbnRzIGNoaWxkcmVuIG9mIGEgc2Nyb2xs
IGNvbnRhaW5lciB0byBjcmVhdGUgc25hcCBwb3NpdGlvbnMKKyAgICAgICAgd2hlbiB0aGV5IGhh
dmUgbm9uLXZpc2libGUgb3ZlcmZsb3cuIFRoaXMgaGFwcGVucyBiZWNhdXNlIGZvciBzdWNoIGEg
Y2hpbGQsIHRoZSBmdW5jdGlvbgorICAgICAgICBSZW5kZXJCb3g6OmZpbmRFbmNsb3NpbmdTY3Jv
bGxhYmxlQ29udGFpbmVyKCkgd2lsbCByZXR1cm4gdGhlIGNoaWxkIGl0c2VsZiByYXRoZXIgdGhh
biB0aGUKKyAgICAgICAgc2Nyb2xsIGNvbnRhaW5lci4gVG8gYWRkcmVzcyB0aGF0IGlzc3VlLCB3
ZSBpbnRyb2R1Y2UgYSBuZXcKKyAgICAgICAgUmVuZGVyT2JqZWN0OjplbmNsb3NpbmdTY3JvbGxh
YmxlQ29udGFpbmVyRm9yU25hcHBpbmcoKSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBlbnN1cmVzIHRo
YXQKKyAgICAgICAgYSByZWFsIFJlbmRlckJveCBhbmNlc3RvciBpcyByZXR1cm5lZC4KKworICAg
ICAgICBUZXN0OiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWNoaWxkcmVuLXdpdGgtb3Zl
cmZsb3cuaHRtbAorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZz
ZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJs
ZUFyZWEpOiBVc2UgZW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lckZvclNuYXBwaW5nKCkKKyAg
ICAgICAgc28gdGhhdCB3ZSBkb24ndCBza2lwIGNoaWxkcmVuIHdpdGggbm9uLXZpc2libGUgb3Zl
cmZsb3cuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2Up
OiBEaXR0by4gVGhlIG5ldyBmdW5jdGlvbiBjYWxscworICAgICAgICBlbmNsb3NpbmdCb3goKS4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lckZvclNuYXBwaW5nIGNv
bnN0KTogUmV0dXJuCisgICAgICAgIHRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciBvZiB0aGUgZW5j
bG9zaW5nIGJveC4gSWYgaXQgaXMgYWN0dWFsbHkgdGhlIHJlbmRlciBvYmplY3QgaXRzZWxmCisg
ICAgICAgIHRoZW4gc3RhcnQgdGhlIHNlYXJjaCBmcm9tIHRoZSBwYXJlbnQgYm94IGluc3RlYWQu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOiBEZWNsYXJlIGVuY2xvc2luZ1Nj
cm9sbGFibGVDb250YWluZXJGb3JTbmFwcGluZygpLiAKKwogMjAxOS0wMS0zMSAgS2VpdGggUm9s
bGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgR0NHYW1lcGFkIGlzIGRlcHJlY2F0
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxT
bmFwT2Zmc2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xs
U25hcE9mZnNldHMuY3BwCmluZGV4IDAyMDc1Mzg0N2EwZDg0MTcxOTMwZTJlNmYzZTVlNGQ5ZDQ4
YzdhZjMuLjhjMTRjY2M5ZDFkNzc0ZGNhMTcwMDA3ZWMwZjkwODNhYTc3M2E4ZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZz
ZXRzLmNwcApAQCAtMjIzLDcgKzIyMyw3IEBAIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3Jv
bGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIEhUTUxFbGVtCiAgICAg
TE9HKFNjcm9sbGluZywgIkNvbXB1dGluZyBzY3JvbGwgc25hcCBvZmZzZXRzIGluIHNuYXAgcG9y
dDogJXMiLCBzbmFwUG9ydE9yQXJlYVRvU3RyaW5nKHNjcm9sbFNuYXBQb3J0KS51dGY4KCkuZGF0
YSgpKTsKICNlbmRpZgogICAgIGZvciAoYXV0byogY2hpbGQgOiBzY3JvbGxDb250YWluZXItPnZp
ZXcoKS5ib3hlc1dpdGhTY3JvbGxTbmFwUG9zaXRpb25zKCkpIHsKLSAgICAgICAgaWYgKGNoaWxk
LT5maW5kRW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lcigpICE9IHNjcm9sbENvbnRhaW5lcikK
KyAgICAgICAgaWYgKGNoaWxkLT5lbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyRm9yU25hcHBp
bmcoKSAhPSBzY3JvbGxDb250YWluZXIpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg
ICAvLyBUaGUgYm91bmRzIG9mIHRoZSBjaGlsZCBlbGVtZW50J3Mgc25hcCBhcmVhLCB3aGVyZSB0
aGUgdG9wIGxlZnQgb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIncyBib3JkZXIgYm94IGlzIHRo
ZSBvcmlnaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdC5jcHAKaW5kZXggMDZmY2NkZTg3NzkxNmY5NjIwMzc2NWJhOGU2OWNmOGRjMjBi
NzZkYS4uMGNlMGJiNDhiZGU4NmJmZTcxOTY1M2JmZTc3MTZkMWNmMDgxOWQ1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApA
QCAtMjE5LDcgKzIxOSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAgICAgICAgIH0KICAg
ICB9CiAgICAgaWYgKG9sZFN0eWxlICYmIG9sZFN0eWxlLT5zY3JvbGxTbmFwQXJlYSgpICE9IG5l
d1N0eWxlLnNjcm9sbFNuYXBBcmVhKCkpIHsKLSAgICAgICAgY29uc3QgUmVuZGVyQm94KiBzY3Jv
bGxTbmFwQm94ID0gZW5jbG9zaW5nQm94KCkuZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWlu
ZXIoKTsKKyAgICAgICAgYXV0byogc2Nyb2xsU25hcEJveCA9IGVuY2xvc2luZ1Njcm9sbGFibGVD
b250YWluZXJGb3JTbmFwcGluZygpOwogICAgICAgICBpZiAoc2Nyb2xsU25hcEJveCAmJiBzY3Jv
bGxTbmFwQm94LT5sYXllcigpKSB7CiAgICAgICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUgPSBzY3JvbGxTbmFwQm94LT5zdHlsZSgpOwogICAgICAgICAgICAgaWYgKHN0eWxlLnNjcm9s
bFNuYXBUeXBlKCkuc3RyaWN0bmVzcyAhPSBTY3JvbGxTbmFwU3RyaWN0bmVzczo6Tm9uZSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA2NzYwMTdjNGM2
Yzc3YTA3YjIyNzM5ZjBkNTY3MzE1ZjI3NmJlMDY0Li5kZjRmNzM3OGRhOWI5OGEwNmYxNTAxYjZm
MmY5MTc4N2ZlNjY4NGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcApAQCAtNDM4LDYgKzQzOCwyMCBAQCBSZW5kZXJCb3hNb2RlbE9iamVjdCYgUmVuZGVyT2Jq
ZWN0OjplbmNsb3NpbmdCb3hNb2RlbE9iamVjdCgpIGNvbnN0CiAgICAgcmV0dXJuICpsaW5lYWdl
T2ZUeXBlPFJlbmRlckJveE1vZGVsT2JqZWN0Pihjb25zdF9jYXN0PFJlbmRlck9iamVjdCY+KCp0
aGlzKSkuZmlyc3QoKTsKIH0KIAorY29uc3QgUmVuZGVyQm94KiBSZW5kZXJPYmplY3Q6OmVuY2xv
c2luZ1Njcm9sbGFibGVDb250YWluZXJGb3JTbmFwcGluZygpIGNvbnN0Cit7CisgICAgYXV0byYg
cmVuZGVyQm94ID0gZW5jbG9zaW5nQm94KCk7CisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVDb250
YWluZXIgPSByZW5kZXJCb3guZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXIoKSkgewor
ICAgICAgICAvLyBUaGUgc2Nyb2xsYWJsZSBjb250YWluZXIgZm9yIHNuYXBwaW5nIGNhbm5vdCBi
ZSB0aGUgbm9kZSBpdHNlbGYuCisgICAgICAgIGlmIChzY3JvbGxhYmxlQ29udGFpbmVyID09IHRo
aXMpIHsKKyAgICAgICAgICAgIEFTU0VSVChyZW5kZXJCb3gucGFyZW50Qm94KCkpOworICAgICAg
ICAgICAgcmV0dXJuIHJlbmRlckJveC5wYXJlbnRCb3goKS0+ZmluZEVuY2xvc2luZ1Njcm9sbGFi
bGVDb250YWluZXIoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUNvbnRh
aW5lcjsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIFJlbmRlckJsb2NrKiBSZW5k
ZXJPYmplY3Q6OmZpcnN0TGluZUJsb2NrKCkgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA5N2NjMGZhZjljNjJj
ZTg3ZDBjMzhlM2NjNzI4ZDU3ODA0OTlhMzhlLi5kMDhjMWRiMGEyZTJmNjE5MzYyMGYzYTc1Mjk0
N2U0Yjk4MTUyYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBA
IC0xNjUsNiArMTY1LDcgQEAgcHVibGljOgogICAgIC8vIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZv
ciBnZXR0aW5nIHRvIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBib3ggb2YgYSBSZW5kZXJPYmplY3Qu
CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVuZGVyQm94JiBlbmNsb3NpbmdCb3goKSBjb25zdDsKICAg
ICBSZW5kZXJCb3hNb2RlbE9iamVjdCYgZW5jbG9zaW5nQm94TW9kZWxPYmplY3QoKSBjb25zdDsK
KyAgICBjb25zdCBSZW5kZXJCb3gqIGVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXJGb3JTbmFw
cGluZygpIGNvbnN0OwogCiAgICAgLy8gRnVuY3Rpb24gdG8gcmV0dXJuIG91ciBlbmNsb3Npbmcg
ZmxvdyB0aHJlYWQgaWYgd2UgYXJlIGNvbnRhaW5lZCBpbnNpZGUgb25lLiBUaGlzCiAgICAgLy8g
ZnVuY3Rpb24gZm9sbG93cyB0aGUgY29udGFpbmluZyBibG9jayBjaGFpbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMGJl
ODg2NWUyMjIxODk1MWIyYjcxOGQ4NDE5YzZiMGUyMzUxZmIwLi42NzFlMGQ5Nzc3YTU4MWQ4MGRk
Y2Q5M2ZjNmJmOWQyODMwNDgzYTlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDEtMzEg
IEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3Mtc2Nyb2xs
LXNuYXBdIHNjcm9sbC1zbmFwLWFsaWduIG5vdCBob25vcmVkIG9uIGNoaWxkIHdpdGggbm9uLXZp
c2libGUgb3ZlcmZsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5MTgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAg
ICAgICBBZGQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IGNoaWxkcmVuIHdpdGggbm9uLXZpc2libGUg
b3ZlcmZsb3cgY3JlYXRlIHNuYXAgb2Zmc2V0cy4KKworICAgICAgICAqIGNzczMvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtY2hpbGRyZW4td2l0aC1vdmVyZmxvdy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2hpbGRyZW4td2l0aC1v
dmVyZmxvdy5odG1sOiBBZGRlZC4KKwogMjAxOS0wMS0zMSAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIFVzZSB0aGUgdXNlZCBtYXJnaW4gdmFsdWVzIGlu
IG91dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5IGNvbnNpc3RlbnRseQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1jaGlsZHJlbi13
aXRoLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtY2hpbGRyZW4td2l0aC1vdmVyZmxvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2ZjYjVjMGQ2M2EyMzZmNzlmZjMxYmNjM2VmODkzMGUwY2NlY2E1NAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2hpbGRyZW4t
d2l0aC1vdmVyZmxvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitTY3JvbGwtc25hcCBv
ZmZzZXRzIGFyZTogdmVydGljYWwgPSB7IDAsIDcyMCwgMTQ0MCwgMjE2MCwgMjg4MCwgMzYwMCB9
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAt
Y2hpbGRyZW4td2l0aC1vdmVyZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1jaGlsZHJlbi13aXRoLW92ZXJmbG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Fm
MDA3OTM5YzA1ZTViN2ZhZWI4ODFkOTVjNDIyNzE0YWVjMGNlOQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2hpbGRyZW4td2l0aC1v
dmVyZmxvdy5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgICNjb250YWluZXIgeworICAgICAgICAgICAgcG9z
aXRpb246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDQwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICAgIGxlZnQ6IDA7
CisgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB5IG1hbmRhdG9yeTsKKyAgICAgICAgICAg
IG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgICAgICAgICAgIG92ZXJmbG93LXk6IHNjcm9sbDsKKyAg
ICAgICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsKKyAgICAgICAgICAg
IGJvcmRlcjogMXB4IGJsYWNrIGRhc2hlZDsKKyAgICAgICAgICAgIG9wYWNpdHk6IDAuNzU7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFOworICAgICAgICB9CisKKyAgICAgICAg
LmNoaWxkIHsKKyAgICAgICAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgICAgICAgIGhlaWdodDog
NDAwcHg7CisgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogZW5kOworICAgICAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICAgICAgbGVmdDogMDsKKyAgICAgICAgfQorICAg
IDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICBsZXQgd3JpdGUgPSBzID0+IG91dHB1dC5pbm5l
ckhUTUwgKz0gcyArICI8YnI+IjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1bigpCisgICAgeworICAgICAgICBpZiAo
IXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB3
cml0ZShgVG8gbWFudWFsbHkgdGVzdCwgdmVyaWZ5IHRoYXQgc2Nyb2xsaW5nIGluIHRoZSBjb250
YWluZXIgc25hcHMgc3VjaCB0aGF0IHRoZSBib3R0b20gdGlwIG9mIGVhY2gKKyAgICAgICAgICAg
ICAgICBjb2xvcmVkIGJveCBhbGlnbnMgd2l0aCB0aGUgYm90dG9tIG9mIHRoZSBzY3JvbGxpbmcg
Y29udGFpbmVyLmApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
IHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgd3JpdGUoIlNjcm9sbC1zbmFwIG9mZnNl
dHMgYXJlOiAiICsgaW50ZXJuYWxzLnNjcm9sbFNuYXBPZmZzZXRzKGNvbnRhaW5lcikpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sIDApOworICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD1ydW4oKT4KKyAgICA8ZGl2IGlk
PSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjaGlsZCIgc3R5bGU9ImJhY2tncm91
bmQtY29sb3I6IHJlZDsgICAgIHRvcDogMHB4OyBvdmVyZmxvdzogdmlzaWJsZTsiPjwvZGl2Pgor
ICAgICAgICA8ZGl2IGNsYXNzPSJjaGlsZCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVu
OyAgIHRvcDogNzIwcHg7ICBvdmVyZmxvdzogaGlkZGVuOyI+PC9kaXY+CisgICAgICAgIDxkaXYg
Y2xhc3M9ImNoaWxkIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsgICAgdG9wOiAxNDQw
cHg7IG92ZXJmbG93OiBzY3JvbGw7Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQi
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyAgICB0b3A6IDIxNjBweDsgb3ZlcmZsb3c6
IGF1dG87Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiB5ZWxsb3c7ICB0b3A6IDI4ODBweDsgb3ZlcmZsb3c6IG92ZXJsYXk7Ij48L2Rp
dj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBm
dWNoc2lhOyB0b3A6IDM2MDBweDsiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgaWQ9Im91
dHB1dCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361053</attachid>
            <date>2019-02-04 07:00:05 -0800</date>
            <delta_ts>2019-02-04 07:39:53 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-191816-20190204160003.patch</filename>
            <type>text/plain</type>
            <size>9402</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzgwMGE2NDJiODM5MWU0
Nzg5YjE3YjhhY2M4MDQxOGEzMjg5ZmQwNi4uZmU5ZDhhMmQyMTEwM2VkMWUwMzUxNDYxOGVmMDIy
NzRkYTZkY2FiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTAyLTA0ICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9sbC1zbmFw
XSBzY3JvbGwtc25hcC1hbGlnbiBub3QgaG9ub3JlZCBvbiBjaGlsZCB3aXRoIG5vbi12aXNpYmxl
IG92ZXJmbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTE4MTYKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAg
VGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyB0aGF0IHByZXZlbnRzIGNoaWxkcmVuIG9mIGEgc2Nyb2xs
IGNvbnRhaW5lciB0byBjcmVhdGUgc25hcCBwb3NpdGlvbnMKKyAgICAgICAgd2hlbiB0aGV5IGhh
dmUgbm9uLXZpc2libGUgb3ZlcmZsb3cuIFRoaXMgaGFwcGVucyBiZWNhdXNlIGZvciBzdWNoIGEg
Y2hpbGQsIHRoZSBmdW5jdGlvbgorICAgICAgICBSZW5kZXJCb3g6OmZpbmRFbmNsb3NpbmdTY3Jv
bGxhYmxlQ29udGFpbmVyKCkgd2lsbCByZXR1cm4gdGhlIGNoaWxkIGl0c2VsZiByYXRoZXIgdGhh
biB0aGUKKyAgICAgICAgc2Nyb2xsIGNvbnRhaW5lci4gVG8gYWRkcmVzcyB0aGF0IGlzc3VlLCB3
ZSBpbnRyb2R1Y2UgYSBuZXcKKyAgICAgICAgUmVuZGVyT2JqZWN0OjplbmNsb3NpbmdTY3JvbGxh
YmxlQ29udGFpbmVyRm9yU25hcHBpbmcoKSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBlbnN1cmVzIHRo
YXQKKyAgICAgICAgYSByZWFsIFJlbmRlckJveCBhbmNlc3RvciBpcyByZXR1cm5lZC4KKworICAg
ICAgICBUZXN0OiBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWNoaWxkcmVuLXdpdGgtb3Zl
cmZsb3cuaHRtbAorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZz
ZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJs
ZUFyZWEpOiBVc2UgZW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lckZvclNuYXBwaW5nKCkKKyAg
ICAgICAgc28gdGhhdCB3ZSBkb24ndCBza2lwIGNoaWxkcmVuIHdpdGggbm9uLXZpc2libGUgb3Zl
cmZsb3cuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2Up
OiBEaXR0by4gVGhlIG5ldyBmdW5jdGlvbiBjYWxscworICAgICAgICBlbmNsb3NpbmdCb3goKS4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lckZvclNuYXBwaW5nIGNv
bnN0KTogUmV0dXJuCisgICAgICAgIHRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciBvZiB0aGUgZW5j
bG9zaW5nIGJveC4gSWYgaXQgaXMgYWN0dWFsbHkgdGhlIHJlbmRlciBvYmplY3QgaXRzZWxmCisg
ICAgICAgIHRoZW4gc3RhcnQgdGhlIHNlYXJjaCBmcm9tIHRoZSBwYXJlbnQgYm94IGluc3RlYWQu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOiBEZWNsYXJlIGVuY2xvc2luZ1Nj
cm9sbGFibGVDb250YWluZXJGb3JTbmFwcGluZygpLiAKKwogMjAxOS0wMi0wNCAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEdyYXBoaWNzTGF5ZXIg
YW5kIFBsYXRmb3JtQ0FMYXllciBzY3JvbGxpbmcgbGF5ZXIgdHlwZSBlbnVtIHZhbHVlcyB0byBi
ZSBsZXNzIGFtYmlndW91cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAKaW5kZXggNjAzNzliNTgyZGQ3MzcxNGU3NmZm
ODZlM2RhMWZmZmQ4MGI5NzQ1MC4uNTkzMzI4NzQ0NGY1NzVmOGQ4OWJlMGZhZjNkZWI0ZDIwODI3
ZjRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXhpc1Njcm9s
bFNuYXBPZmZzZXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlz
U2Nyb2xsU25hcE9mZnNldHMuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgdm9pZCB1cGRhdGVTbmFw
T2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwg
SFRNTEVsZW0KICAgICBMT0coU2Nyb2xsaW5nLCAiQ29tcHV0aW5nIHNjcm9sbCBzbmFwIG9mZnNl
dHMgaW4gc25hcCBwb3J0OiAlcyIsIHNuYXBQb3J0T3JBcmVhVG9TdHJpbmcoc2Nyb2xsU25hcFBv
cnQpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgZm9yIChhdXRvKiBjaGlsZCA6IHNjcm9s
bENvbnRhaW5lci0+dmlldygpLmJveGVzV2l0aFNjcm9sbFNuYXBQb3NpdGlvbnMoKSkgewotICAg
ICAgICBpZiAoY2hpbGQtPmZpbmRFbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyKCkgIT0gc2Ny
b2xsQ29udGFpbmVyKQorICAgICAgICBpZiAoY2hpbGQtPmVuY2xvc2luZ1Njcm9sbGFibGVDb250
YWluZXJGb3JTbmFwcGluZygpICE9IHNjcm9sbENvbnRhaW5lcikKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIC8vIFRoZSBib3VuZHMgb2YgdGhlIGNoaWxkIGVsZW1lbnQncyBzbmFw
IGFyZWEsIHdoZXJlIHRoZSB0b3AgbGVmdCBvZiB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lcidzIGJv
cmRlciBib3ggaXMgdGhlIG9yaWdpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAppbmRleCAwNmZjY2RlODc3OTE2Zjk2MjAzNzY1
YmE4ZTY5Y2Y4ZGMyMGI3NmRhLi4wY2UwYmI0OGJkZTg2YmZlNzE5NjUzYmZlNzcxNmQxY2YwODE5
ZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9k
ZWxPYmplY3QuY3BwCkBAIC0yMTksNyArMjE5LDcgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3QK
ICAgICAgICAgfQogICAgIH0KICAgICBpZiAob2xkU3R5bGUgJiYgb2xkU3R5bGUtPnNjcm9sbFNu
YXBBcmVhKCkgIT0gbmV3U3R5bGUuc2Nyb2xsU25hcEFyZWEoKSkgewotICAgICAgICBjb25zdCBS
ZW5kZXJCb3gqIHNjcm9sbFNuYXBCb3ggPSBlbmNsb3NpbmdCb3goKS5maW5kRW5jbG9zaW5nU2Ny
b2xsYWJsZUNvbnRhaW5lcigpOworICAgICAgICBhdXRvKiBzY3JvbGxTbmFwQm94ID0gZW5jbG9z
aW5nU2Nyb2xsYWJsZUNvbnRhaW5lckZvclNuYXBwaW5nKCk7CiAgICAgICAgIGlmIChzY3JvbGxT
bmFwQm94ICYmIHNjcm9sbFNuYXBCb3gtPmxheWVyKCkpIHsKICAgICAgICAgICAgIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSA9IHNjcm9sbFNuYXBCb3gtPnN0eWxlKCk7CiAgICAgICAgICAgICBp
ZiAoc3R5bGUuc2Nyb2xsU25hcFR5cGUoKS5zdHJpY3RuZXNzICE9IFNjcm9sbFNuYXBTdHJpY3Ru
ZXNzOjpOb25lKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmlu
ZGV4IDY3NjAxN2M0YzZjNzdhMDdiMjI3MzlmMGQ1NjczMTVmMjc2YmUwNjQuLjUxY2M0NThhYWJm
ZWU2ZjlhOGFlZmEyYmQ0OGFkYTVhOGExNjJhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCkBAIC00MzgsNiArNDM4LDE5IEBAIFJlbmRlckJveE1vZGVsT2Jq
ZWN0JiBSZW5kZXJPYmplY3Q6OmVuY2xvc2luZ0JveE1vZGVsT2JqZWN0KCkgY29uc3QKICAgICBy
ZXR1cm4gKmxpbmVhZ2VPZlR5cGU8UmVuZGVyQm94TW9kZWxPYmplY3Q+KGNvbnN0X2Nhc3Q8UmVu
ZGVyT2JqZWN0Jj4oKnRoaXMpKS5maXJzdCgpOwogfQogCitjb25zdCBSZW5kZXJCb3gqIFJlbmRl
ck9iamVjdDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUNvbnRhaW5lckZvclNuYXBwaW5nKCkgY29uc3QK
K3sKKyAgICBhdXRvJiByZW5kZXJCb3ggPSBlbmNsb3NpbmdCb3goKTsKKyAgICBpZiAoYXV0byog
c2Nyb2xsYWJsZUNvbnRhaW5lciA9IHJlbmRlckJveC5maW5kRW5jbG9zaW5nU2Nyb2xsYWJsZUNv
bnRhaW5lcigpKSB7CisgICAgICAgIC8vIFRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciBmb3Igc25h
cHBpbmcgY2Fubm90IGJlIHRoZSBub2RlIGl0c2VsZi4KKyAgICAgICAgaWYgKHNjcm9sbGFibGVD
b250YWluZXIgIT0gdGhpcykKKyAgICAgICAgICAgIHJldHVybiBzY3JvbGxhYmxlQ29udGFpbmVy
OworICAgICAgICBpZiAocmVuZGVyQm94LnBhcmVudEJveCgpKQorICAgICAgICAgICAgcmV0dXJu
IHJlbmRlckJveC5wYXJlbnRCb3goKS0+ZmluZEVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXIo
KTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIFJlbmRlckJsb2NrKiBSZW5kZXJP
YmplY3Q6OmZpcnN0TGluZUJsb2NrKCkgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA5N2NjMGZhZjljNjJjZTg3
ZDBjMzhlM2NjNzI4ZDU3ODA0OTlhMzhlLi5kMDhjMWRiMGEyZTJmNjE5MzYyMGYzYTc1Mjk0N2U0
Yjk4MTUyYTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC0x
NjUsNiArMTY1LDcgQEAgcHVibGljOgogICAgIC8vIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBn
ZXR0aW5nIHRvIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBib3ggb2YgYSBSZW5kZXJPYmplY3QuCiAg
ICAgV0VCQ09SRV9FWFBPUlQgUmVuZGVyQm94JiBlbmNsb3NpbmdCb3goKSBjb25zdDsKICAgICBS
ZW5kZXJCb3hNb2RlbE9iamVjdCYgZW5jbG9zaW5nQm94TW9kZWxPYmplY3QoKSBjb25zdDsKKyAg
ICBjb25zdCBSZW5kZXJCb3gqIGVuY2xvc2luZ1Njcm9sbGFibGVDb250YWluZXJGb3JTbmFwcGlu
ZygpIGNvbnN0OwogCiAgICAgLy8gRnVuY3Rpb24gdG8gcmV0dXJuIG91ciBlbmNsb3NpbmcgZmxv
dyB0aHJlYWQgaWYgd2UgYXJlIGNvbnRhaW5lZCBpbnNpZGUgb25lLiBUaGlzCiAgICAgLy8gZnVu
Y3Rpb24gZm9sbG93cyB0aGUgY29udGFpbmluZyBibG9jayBjaGFpbi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NmM3ZWUw
ODBlZDRiMDExZjlkZmRlOTg5ZjJmN2U4ZDBjMGM4NmY0Li5jNDhjYmQ1MWExZmY3ODY4ZmM4NTAw
YTJhZTE0MzgzNjliZTJjZmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDItMDQgIEZy
ZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjc3Mtc2Nyb2xsLXNu
YXBdIHNjcm9sbC1zbmFwLWFsaWduIG5vdCBob25vcmVkIG9uIGNoaWxkIHdpdGggbm9uLXZpc2li
bGUgb3ZlcmZsb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MTgxNgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAg
ICBBZGQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IGNoaWxkcmVuIHdpdGggbm9uLXZpc2libGUgb3Zl
cmZsb3cgY3JlYXRlIHNuYXAgb2Zmc2V0cy4KKworICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtY2hpbGRyZW4td2l0aC1vdmVyZmxvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2hpbGRyZW4td2l0aC1vdmVy
Zmxvdy5odG1sOiBBZGRlZC4KKwogMjAxOS0wMi0wMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVGlsZXMgbm90IGNyZWF0ZWQgaW4gbGFyZ2Ugc2Ny
b2xsYWJsZSBpZnJhbWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFw
L3Njcm9sbC1zbmFwLWNoaWxkcmVuLXdpdGgtb3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1jaGlsZHJlbi13aXRoLW92ZXJmbG93
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmNiNWMwZDYzYTIzNmY3OWZmMzFiY2MzZWY4OTMw
ZTBjY2VjYTU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1jaGlsZHJlbi13aXRoLW92ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIgQEAKK1Njcm9sbC1zbmFwIG9mZnNldHMgYXJlOiB2ZXJ0aWNhbCA9IHsgMCwgNzIwLCAx
NDQwLCAyMTYwLCAyODgwLCAzNjAwIH0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1jaGlsZHJlbi13aXRoLW92ZXJmbG93Lmh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWNoaWxkcmVuLXdpdGgtb3ZlcmZs
b3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43YWYwMDc5MzljMDVlNWI3ZmFlYjg4MWQ5NWM0MjI3MTRhZWMw
Y2U5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1jaGlsZHJlbi13aXRoLW92ZXJmbG93Lmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgI2NvbnRh
aW5lciB7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICB3aWR0
aDogNDAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OworICAgICAgICAgICAgdG9wOiAw
OworICAgICAgICAgICAgbGVmdDogMDsKKyAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkg
bWFuZGF0b3J5OworICAgICAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuOworICAgICAgICAgICAg
b3ZlcmZsb3cteTogc2Nyb2xsOworICAgICAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxp
bmc6IHRvdWNoOworICAgICAgICAgICAgYm9yZGVyOiAxcHggYmxhY2sgZGFzaGVkOworICAgICAg
ICAgICAgb3BhY2l0eTogMC43NTsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUU7
CisgICAgICAgIH0KKworICAgICAgICAuY2hpbGQgeworICAgICAgICAgICAgd2lkdGg6IDQwMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFs
aWduOiBlbmQ7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgICAgICBs
ZWZ0OiAwOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgIGxldCB3
cml0ZSA9IHMgPT4gb3V0cHV0LmlubmVySFRNTCArPSBzICsgIjxicj4iOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVu
KCkKKyAgICB7CisgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIHdyaXRlKGBUbyBtYW51YWxseSB0ZXN0LCB2ZXJpZnkgdGhh
dCBzY3JvbGxpbmcgaW4gdGhlIGNvbnRhaW5lciBzbmFwcyBzdWNoIHRoYXQgdGhlIGJvdHRvbSB0
aXAgb2YgZWFjaAorICAgICAgICAgICAgICAgIGNvbG9yZWQgYm94IGFsaWducyB3aXRoIHRoZSBi
b3R0b20gb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIuYCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CisgICAgICAgICAgICB3
cml0ZSgiU2Nyb2xsLXNuYXAgb2Zmc2V0cyBhcmU6ICIgKyBpbnRlcm5hbHMuc2Nyb2xsU25hcE9m
ZnNldHMoY29udGFpbmVyKSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfSwgMCk7CisgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPXJ1bigpPgorICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImNoaWxkIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVkOyAgICAgdG9wOiAwcHg7IG92ZXJm
bG93OiB2aXNpYmxlOyI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9ImNoaWxkIiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47ICAgdG9wOiA3MjBweDsgIG92ZXJmbG93OiBoaWRkZW47
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY2hpbGQiIHN0eWxlPSJiYWNrZ3JvdW5kLWNv
bG9yOiBibHVlOyAgICB0b3A6IDE0NDBweDsgb3ZlcmZsb3c6IHNjcm9sbDsiPjwvZGl2PgorICAg
ICAgICA8ZGl2IGNsYXNzPSJjaGlsZCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGFxdWE7ICAg
IHRvcDogMjE2MHB4OyBvdmVyZmxvdzogYXV0bzsiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNz
PSJjaGlsZCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHllbGxvdzsgIHRvcDogMjg4MHB4OyBv
dmVyZmxvdzogb3ZlcmxheTsiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJjaGlsZCIgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWE7IHRvcDogMzYwMHB4OyI+PC9kaXY+CisgICAg
PC9kaXY+CisgICAgPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>