<?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>209849</bug_id>
          
          <creation_ts>2020-04-01 02:41:39 -0700</creation_ts>
          <short_desc>CanvasRenderingContext2D.drawImage should ignore the EXIF orientation if the image-orientation is none</short_desc>
          <delta_ts>2020-04-10 17:57:44 -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>Canvas</component>
          <version>Safari 13</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210364</see_also>
          <bug_file_loc>https://codesandbox.io/s/safari-canvas-exif-bug-m3u2w</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="Renaud Chaput">renchap</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>emilio</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1636435</commentid>
    <comment_count>0</comment_count>
    <who name="Renaud Chaput">renchap</who>
    <bug_when>2020-04-01 02:41:39 -0700</bug_when>
    <thetext>When you draw an image with EXIF orientation tags on a Canvas, the image is always drawn according to the EXIF orientation tags, even with `imageOrientation=&quot;none&quot;`.

Reproduction URL: https://codesandbox.io/s/safari-canvas-exif-bug-m3u2w

Expected : both images are displayed upside-down (EXIF rotation 3, image-orientation disabled).
On Safari 13.1 (and TP), the bottom image (canvas) is not upside-down, as EXIF orientation was taken into account

Other browsers (and Safari before 13.1?) do not show this behaviour even if they support image-orientation: from-image.

A test should also be added to ensure the image is drawn upside down when not adding the &lt;img&gt; element to the DOM (comment line 6) to get the same behaviour as other browsers.


I suspect it comes from https://trac.webkit.org/changeset/254841/webkit/ so I cc-ed Said.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636577</commentid>
    <comment_count>1</comment_count>
      <attachid>395189</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-01 11:18:29 -0700</bug_when>
    <thetext>Created attachment 395189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636631</commentid>
    <comment_count>2</comment_count>
      <attachid>395189</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-01 13:35:03 -0700</bug_when>
    <thetext>Comment on attachment 395189
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1467
&gt; +    ImageOrientation imageOrientation = ImageOrientation::FromImage;

Seems like in the context of this function we don’t have to keep repeating the word image so much. I would have written:

    auto orientation = ImageOrientation::FromImage;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636738</commentid>
    <comment_count>3</comment_count>
      <attachid>395189</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-01 16:41:55 -0700</bug_when>
    <thetext>Comment on attachment 395189
Patch

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

&gt; LayoutTests/ChangeLog:9
&gt; +        * fast/images/image-orientation-none-canvas-expected.html: Added.
&gt; +        * fast/images/image-orientation-none-canvas.html: Added.

Can these be web platform tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636740</commentid>
    <comment_count>4</comment_count>
      <attachid>395226</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-01 16:54:02 -0700</bug_when>
    <thetext>Created attachment 395226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636823</commentid>
    <comment_count>5</comment_count>
      <attachid>395247</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-02 00:58:05 -0700</bug_when>
    <thetext>Created attachment 395247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636984</commentid>
    <comment_count>6</comment_count>
      <attachid>395189</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-02 11:53:40 -0700</bug_when>
    <thetext>Comment on attachment 395189
Patch

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

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1467
&gt;&gt; +    ImageOrientation imageOrientation = ImageOrientation::FromImage;
&gt; 
&gt; Seems like in the context of this function we don’t have to keep repeating the word image so much. I would have written:
&gt; 
&gt;     auto orientation = ImageOrientation::FromImage;

Fixed.

&gt;&gt; LayoutTests/ChangeLog:9
&gt;&gt; +        * fast/images/image-orientation-none-canvas.html: Added.
&gt; 
&gt; Can these be web platform tests?

https://github.com/web-platform-tests/wpt/pull/22663/commits/06baf13e9911b89d5571548fb0c940794045380b</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637022</commentid>
    <comment_count>7</comment_count>
      <attachid>395290</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-02 13:11:00 -0700</bug_when>
    <thetext>Created attachment 395290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637026</commentid>
    <comment_count>8</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-02 13:20:55 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #7)
&gt; Created attachment 395290 [details]
&gt; Patch

I made a change which deserves a second review.

The HTMLImageElement.width and HTMLImageElement.height were respecting the image-orientation only if the HTMLImageElement is visible. If there is no renderer we were falling back to ImageOrientation::FromImage. I think we should fallback to the computedStyle to get the image orientation. 

I found this problem while writing the test and I did look carefully to see the real problem. Instead I wrote code like this:

    canvas.width = Math.max(image.width, image.height);
    canvas.height = Math.min(image.width, image.height);

This code was hiding the problem. As long as the CSS image-orientation: none is specified, the image should not look at its EXIF image orientation when calculating the size. So the above code was rewritten in this patch like this:

    canvas.width = image.width;
    canvas.height = image.height;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638031</commentid>
    <comment_count>9</comment_count>
      <attachid>395545</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-05 22:34:08 -0700</bug_when>
    <thetext>Created attachment 395545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638048</commentid>
    <comment_count>10</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-06 00:58:54 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #9)
&gt; Created attachment 395545 [details]
&gt; Patch

I will address the issue of hidden image size in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638049</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-06 01:03:22 -0700</bug_when>
    <thetext>Committed r259567: &lt;https://trac.webkit.org/changeset/259567&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395545.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638050</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-06 01:04:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/61333665&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638057</commentid>
    <comment_count>13</comment_count>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2020-04-06 02:06:44 -0700</bug_when>
    <thetext>Shouldn&apos;t this update style first? How does this deal with changing .style.imageOrientation, then calling drawImage?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638163</commentid>
    <comment_count>14</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-04-06 10:37:50 -0700</bug_when>
    <thetext>(In reply to Emilio Cobos Álvarez (:emilio) from comment #13)
&gt; Shouldn&apos;t this update style first? How does this deal with changing
&gt; .style.imageOrientation, then calling drawImage?

Are you referring to the layout test in the patch? Or are you talking about the change I did in CanvasRenderingContext2DBase::drawImage() where I get the imageOrientation from the computedStyle?

Please click &quot;Review Patch&quot; in the attachment above, click the line which is related to your question, add your comment and then click &quot;Publish&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638236</commentid>
    <comment_count>15</comment_count>
      <attachid>395545</attachid>
    <who name="Emilio Cobos Álvarez (:emilio)">emilio</who>
    <bug_when>2020-04-06 12:25:40 -0700</bug_when>
    <thetext>Comment on attachment 395545
Patch

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

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:1469
&gt; +        orientation = computedStyle-&gt;imageOrientation();

I mean this line, yeah. computedStyle() may return an outdated style, unless you call document.updateStyleIfNeeded(). See similar computedStyle() callers in CanvasRenderingContext2D.cpp</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395189</attachid>
            <date>2020-04-01 11:18:29 -0700</date>
            <delta_ts>2020-04-01 16:54:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209849-20200401111828.patch</filename>
            <type>text/plain</type>
            <size>12659</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTM1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSBzaG91bGQgaWdub3JlIHRoZSBFWElGIG9yaWVudGF0
aW9uIGlmIHRoZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBub25lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkcmF3SW1hZ2UoKSB3aWxsIGdldCB0aGUgaW1h
Z2Utb3JpZW50YXRpb24gb2YgdGhlIEhUTUxJbWFnZUVsZW1lbnQgZnJvbQorICAgICAgICBpdHMg
Y29tcHV0ZWQgc3R5bGUuIFRoaXMgd2lsbCBiZSBwYXNzZWQgdG8gR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoKQorICAgICAgICBpbiB0aGUgSW1hZ2VQYWludGluZ09wdGlvbnMuIFByZXZpb3Vz
bHkgd2Ugd2VyZSBwYXNzaW5nIEZyb21JbWFnZSBhbHdheXMuCisKKyAgICAgICAgVGVzdDogZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAorCisgICAgICAgICog
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaDoKKwogMjAyMC0w
NC0wMSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCB1
c2UgcmF3IHBvaW50ZXJzIGluIFNoYWRvd1Jvb3QuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNw
cAkocmV2aXNpb24gMjU5MzUzKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NjQsNyArMTQ2
NCwxMSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0CiAgICAgICAg
IHJldHVybiB7IH07CiAgICAgRmxvYXRSZWN0IGltYWdlUmVjdCA9IEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIHNpemUoaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVUeXBlOjpCZWZvcmVEZXZpY2VQaXhl
bFJhdGlvKSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGRyYXdJbWFnZShpbWFnZUVsZW1lbnQuZG9j
dW1lbnQoKSwgaW1hZ2VFbGVtZW50LmNhY2hlZEltYWdlKCksIGltYWdlRWxlbWVudC5yZW5kZXJl
cigpLCBpbWFnZVJlY3QsIHNyY1JlY3QsIGRzdFJlY3QsIG9wLCBibGVuZE1vZGUpOworICAgIElt
YWdlT3JpZW50YXRpb24gaW1hZ2VPcmllbnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21J
bWFnZTsKKyAgICBpZiAoYXV0byogY29tcHV0ZWRTdHlsZSA9IGltYWdlRWxlbWVudC5jb21wdXRl
ZFN0eWxlKCkpCisgICAgICAgIGltYWdlT3JpZW50YXRpb24gPSBjb21wdXRlZFN0eWxlLT5pbWFn
ZU9yaWVudGF0aW9uKCk7CisKKyAgICBhdXRvIHJlc3VsdCA9IGRyYXdJbWFnZShpbWFnZUVsZW1l
bnQuZG9jdW1lbnQoKSwgaW1hZ2VFbGVtZW50LmNhY2hlZEltYWdlKCksIGltYWdlRWxlbWVudC5y
ZW5kZXJlcigpLCBpbWFnZVJlY3QsIHNyY1JlY3QsIGRzdFJlY3QsIG9wLCBibGVuZE1vZGUsIGlt
YWdlT3JpZW50YXRpb24pOwogCiAgICAgaWYgKCFyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAg
ICAgIGNoZWNrT3JpZ2luKCZpbWFnZUVsZW1lbnQpOwpAQCAtMTQ4Nyw3ICsxNDkxLDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogfQogI2VuZGlmCiAKLUV4Y2Vw
dGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OmRyYXdJbWFnZShEb2N1
bWVudCYgZG9jdW1lbnQsIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgY29uc3QgRmxvYXRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBDb21wb3NpdGVPcGVy
YXRvciYgb3AsIGNvbnN0IEJsZW5kTW9kZSYgYmxlbmRNb2RlKQorRXhjZXB0aW9uT3I8dm9pZD4g
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKERvY3VtZW50JiBkb2N1bWVu
dCwgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlLCBjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVy
LCBjb25zdCBGbG9hdFJlY3QmIGltYWdlUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IENvbXBvc2l0ZU9wZXJhdG9yJiBvcCwgY29u
c3QgQmxlbmRNb2RlJiBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24gaW1hZ2VPcmllbnRhdGlv
bikKIHsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoZHN0UmVjdC54KCkpIHx8ICFzdGQ6OmlzZmlu
aXRlKGRzdFJlY3QueSgpKSB8fCAhc3RkOjppc2Zpbml0ZShkc3RSZWN0LndpZHRoKCkpIHx8ICFz
dGQ6OmlzZmluaXRlKGRzdFJlY3QuaGVpZ2h0KCkpCiAgICAgICAgIHx8ICFzdGQ6OmlzZmluaXRl
KHNyY1JlY3QueCgpKSB8fCAhc3RkOjppc2Zpbml0ZShzcmNSZWN0LnkoKSkgfHwgIXN0ZDo6aXNm
aW5pdGUoc3JjUmVjdC53aWR0aCgpKSB8fCAhc3RkOjppc2Zpbml0ZShzcmNSZWN0LmhlaWdodCgp
KSkKQEAgLTE1NDMsNyArMTU0Nyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQKICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFnZSkudXBkYXRlRnJv
bVNldHRpbmdzKGRvY3VtZW50LnNldHRpbmdzKCkpOwogICAgIH0KIAotICAgIEltYWdlUGFpbnRp
bmdPcHRpb25zIG9wdGlvbnMgPSB7IG9wLCBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb246OkZy
b21JbWFnZSB9OworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMgPSB7IG9wLCBibGVu
ZE1vZGUsIGltYWdlT3JpZW50YXRpb24gfTsKIAogICAgIGlmIChyZWN0Q29udGFpbnNDYW52YXMo
bm9ybWFsaXplZERzdFJlY3QpKSB7CiAgICAgICAgIGMtPmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1h
bGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwgb3B0aW9ucyk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5oCShyZXZpc2lvbiAyNTkzNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw3
ICszMzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZHJhd0ltYWdlKEhU
TUxJbWFnZUVsZW1lbnQmLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgZHN0UmVjdCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZHJhd0ltYWdlKEhUTUxJbWFnZUVs
ZW1lbnQmLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVj
dCwgY29uc3QgQ29tcG9zaXRlT3BlcmF0b3ImLCBjb25zdCBCbGVuZE1vZGUmKTsKICAgICBFeGNl
cHRpb25Pcjx2b2lkPiBkcmF3SW1hZ2UoQ2FudmFzQmFzZSYsIGNvbnN0IEZsb2F0UmVjdCYgc3Jj
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0KTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBk
cmF3SW1hZ2UoRG9jdW1lbnQmLCBDYWNoZWRJbWFnZSosIGNvbnN0IFJlbmRlck9iamVjdCosIGNv
bnN0IEZsb2F0UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgQ29tcG9zaXRlT3BlcmF0b3ImLCBjb25zdCBCbGVu
ZE1vZGUmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3SW1hZ2UoRG9jdW1lbnQmLCBDYWNo
ZWRJbWFnZSosIGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IEZsb2F0UmVjdCYgaW1hZ2VSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29u
c3QgQ29tcG9zaXRlT3BlcmF0b3ImLCBjb25zdCBCbGVuZE1vZGUmLCBJbWFnZU9yaWVudGF0aW9u
ID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKTsKICNpZiBFTkFCTEUoVklERU8pCiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gZHJhd0ltYWdlKEhUTUxWaWRlb0VsZW1lbnQmLCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCk7CiAjZW5kaWYKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI1OTM1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNh
Ym91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmRyYXdJbWFnZSBzaG91bGQgaWdub3JlIHRoZSBFWElGIG9yaWVudGF0aW9uIGlmIHRoZSBpbWFn
ZS1vcmllbnRhdGlvbiBpcyBub25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDk4NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFz
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLW5vbmUtY2FudmFzLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA0LTAxICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZl
cnRpbmcgcjI1OTMyOC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVu
dGF0aW9uLW5vbmUtY2FudmFzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMtZXhwZWN0ZWQuaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRh
dGlvbi1ub25lLWNhbnZhcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
ODIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAg
ICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsg
CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAor
ICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7
CisgICAgICAgIHdpZHRoOiAxMDJweDsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAg
ICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAx
MDJweDsKKyAgICB9CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7
CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5kcmF3SW1hZ2UoKSBzaG91bGQgaWdub3JlIHRoZSBpbWFnZSdzIEVYSUYgb3JpZW50YXRpb24g
aWYgaXRzIHN0eWxlIGltYWdlLW9yaWVudGF0aW9uIGlzIHNldCB0byAibm9uZSIuPC9iPgorICAg
IDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWcxIiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Ob3JtYWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9Imlt
ZzIiIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0
aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZk
ZWc7CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc0IiBzcmM9InJl
c291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGltZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0x
LXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IEND
VyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlt
ZyBpZD0iaW1nNiIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRp
Y2FsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQg
OTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAg
ICAgICAgPGltZyBpZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVs
LmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisg
ICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3M9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nOSIgc3Jj
PSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1j
YW52YXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1ub25lLWNhbnZhcy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFzLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRp
di5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1h
cmdpbi1yaWdodDogMjBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBk
aXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdpZHRoOiAxMDJweDsKKyAgICAgICAgaGVpZ2h0OiA1
MnB4OworICAgIH0KKyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVy
OiAxcHggc29saWQgYmxhY2s7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0
OiA1MHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuZHJhd0ltYWdlKCkgc2hvdWxkIGlnbm9yZSB0aGUgaW1hZ2UncyBFWElGIG9yaWVu
dGF0aW9uIGlmIGl0cyBzdHlsZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBzZXQgdG8gIm5vbmUiLjwv
Yj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzID0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJj
YW52YXMxIj48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3JtYWwKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMiI+PC9jYW52
YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFz
cyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyI+PC9jYW52
YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM0Ij48L2NhbnZhcz4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rp
dj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYg
Y2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM1Ij48L2Nh
bnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFu
ZCBmbGlwcGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxjYW52
YXMgaWQ9ImNhbnZhczYiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJv
dGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcyA9InZlcnRpY2FsIj4KKyAgICAgICAgICAgIDxjYW52YXMg
aWQ9ImNhbnZhczciPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0
ZWQgOTAmZGVnOyBDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+Cisg
ICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM4Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAgICA8L2Rpdj4KKyAgICA8YnI+Cisg
ICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9u
dGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczkiPjwvY2FudmFzPgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPGJyPlVuZGVmaW5lZCAoaW52YWxpZCB2YWx1ZSkKKyAgICA8L2Rp
dj4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgd2luZG93
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIG5hbWVzID0gWworICAgICAg
ICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyIsICBpZCA6ICJjYW52YXMxIiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNv
dXJjZXMvZXhpZi1vcmllbnRhdGlvbi0yLXVyLmpwZyIsICBpZCA6ICJjYW52YXMyIiB9LAorICAg
ICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0zLWxy
LmpwZyIsICBpZCA6ICJjYW52YXMzIiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJy
ZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi00LWxvbC5qcGciLCBpZCA6ICJjYW52YXM0IiB9LAor
ICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi01
LWx1LmpwZyIsICBpZCA6ICJjYW52YXM1IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6
ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi02LXJ1LmpwZyIsICBpZCA6ICJjYW52YXM2IiB9
LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlv
bi03LXJsLmpwZyIsICBpZCA6ICJjYW52YXM3IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3Vy
Y2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGciLCBpZCA6ICJjYW52YXM4
IiB9LAorICAgICAgICAgICAgICAgIHsgcmVzb3VyY2U6ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi05LXUuanBnIiwgICBpZCA6ICJjYW52YXM5IiB9CisgICAgICAgICAgICBdOworCisgICAg
ICAgICAgICB2YXIgZHJhd0NvdW50ID0gMDsKKworICAgICAgICAgICAgbmFtZXMuZm9yRWFjaChm
dW5jdGlvbihuYW1lKSB7CisgICAgICAgICAgICAgICAgdmFyIGltYWdlID0gbmV3IEltYWdlOwor
ICAgICAgICAgICAgICAgIGltYWdlLnN0eWxlLmltYWdlT3JpZW50YXRpb24gPSAibm9uZSI7Cisg
ICAgICAgICAgICAgICAgaW1hZ2Uuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAgICAgICAg
ICAgICBpbWFnZS5zcmMgPSBuYW1lLnJlc291cmNlOworICAgICAgICAgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoaW1hZ2UpOworICAgICAgICAgICAgICAgIGltYWdlLmRlY29kZSgp
LnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgY2FudmFzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQobmFtZS5pZCk7CisgICAgICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0
aCA9IE1hdGgubWF4KGltYWdlLndpZHRoLCBpbWFnZS5oZWlnaHQpOworICAgICAgICAgICAgICAg
ICAgICBjYW52YXMuaGVpZ2h0ID0gTWF0aC5taW4oaW1hZ2Uud2lkdGgsIGltYWdlLmhlaWdodCk7
CisgICAgICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoIjJk
Iik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBj
YW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBpZiAoKytk
cmF3Q291bnQgPT0gbmFtZXMubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93LnRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9i
b2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395226</attachid>
            <date>2020-04-01 16:54:02 -0700</date>
            <delta_ts>2020-04-02 00:58:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209849-20200401165400.patch</filename>
            <type>text/plain</type>
            <size>12741</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTM1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSBzaG91bGQgaWdub3JlIHRoZSBFWElGIG9yaWVudGF0
aW9uIGlmIHRoZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBub25lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBkcmF3SW1hZ2UoKSB3aWxsIGdldCB0aGUgaW1hZ2Ut
b3JpZW50YXRpb24gb2YgdGhlIEhUTUxJbWFnZUVsZW1lbnQgZnJvbQorICAgICAgICBpdHMgY29t
cHV0ZWQgc3R5bGUuIFRoaXMgd2lsbCBiZSBwYXNzZWQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2UoKQorICAgICAgICBpbiB0aGUgSW1hZ2VQYWludGluZ09wdGlvbnMuIFByZXZpb3VzbHkg
d2Ugd2VyZSBwYXNzaW5nIEZyb21JbWFnZSBhbHdheXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAorCisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaDoKKwogMjAyMC0wNC0w
MSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCB1c2Ug
cmF3IHBvaW50ZXJzIGluIFNoYWRvd1Jvb3QuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAko
cmV2aXNpb24gMjU5MzU0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NjQsNyArMTQ2NCwx
MSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0CiAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgRmxvYXRSZWN0IGltYWdlUmVjdCA9IEZsb2F0UmVjdChGbG9hdFBvaW50
KCksIHNpemUoaW1hZ2VFbGVtZW50LCBJbWFnZVNpemVUeXBlOjpCZWZvcmVEZXZpY2VQaXhlbFJh
dGlvKSk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IGRyYXdJbWFnZShpbWFnZUVsZW1lbnQuZG9jdW1l
bnQoKSwgaW1hZ2VFbGVtZW50LmNhY2hlZEltYWdlKCksIGltYWdlRWxlbWVudC5yZW5kZXJlcigp
LCBpbWFnZVJlY3QsIHNyY1JlY3QsIGRzdFJlY3QsIG9wLCBibGVuZE1vZGUpOworICAgIGF1dG8g
b3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2U7CisgICAgaWYgKGF1dG8q
IGNvbXB1dGVkU3R5bGUgPSBpbWFnZUVsZW1lbnQuY29tcHV0ZWRTdHlsZSgpKQorICAgICAgICBv
cmllbnRhdGlvbiA9IGNvbXB1dGVkU3R5bGUtPmltYWdlT3JpZW50YXRpb24oKTsKKworICAgIGF1
dG8gcmVzdWx0ID0gZHJhd0ltYWdlKGltYWdlRWxlbWVudC5kb2N1bWVudCgpLCBpbWFnZUVsZW1l
bnQuY2FjaGVkSW1hZ2UoKSwgaW1hZ2VFbGVtZW50LnJlbmRlcmVyKCksIGltYWdlUmVjdCwgc3Jj
UmVjdCwgZHN0UmVjdCwgb3AsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24pOwogCiAgICAgaWYgKCFy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIGNoZWNrT3JpZ2luKCZpbWFnZUVsZW1lbnQp
OwpAQCAtMTQ4Nyw3ICsxNDkxLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dAogfQogI2VuZGlmCiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyREJhc2U6OmRyYXdJbWFnZShEb2N1bWVudCYgZG9jdW1lbnQsIENhY2hlZEltYWdlKiBj
YWNoZWRJbWFnZSwgY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgRmxvYXRSZWN0
JiBpbWFnZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBk
c3RSZWN0LCBjb25zdCBDb21wb3NpdGVPcGVyYXRvciYgb3AsIGNvbnN0IEJsZW5kTW9kZSYgYmxl
bmRNb2RlKQorRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6
ZHJhd0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlLCBj
b25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFJlY3QmIGltYWdlUmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IENvbXBvc2l0ZU9wZXJhdG9yJiBvcCwgY29uc3QgQmxlbmRNb2RlJiBibGVuZE1vZGUsIEltYWdl
T3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKGRzdFJl
Y3QueCgpKSB8fCAhc3RkOjppc2Zpbml0ZShkc3RSZWN0LnkoKSkgfHwgIXN0ZDo6aXNmaW5pdGUo
ZHN0UmVjdC53aWR0aCgpKSB8fCAhc3RkOjppc2Zpbml0ZShkc3RSZWN0LmhlaWdodCgpKQogICAg
ICAgICB8fCAhc3RkOjppc2Zpbml0ZShzcmNSZWN0LngoKSkgfHwgIXN0ZDo6aXNmaW5pdGUoc3Jj
UmVjdC55KCkpIHx8ICFzdGQ6OmlzZmluaXRlKHNyY1JlY3Qud2lkdGgoKSkgfHwgIXN0ZDo6aXNm
aW5pdGUoc3JjUmVjdC5oZWlnaHQoKSkpCkBAIC0xNTQzLDcgKzE1NDcsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0CiAgICAgICAgIGRvd25jYXN0PEJpdG1hcElt
YWdlPigqaW1hZ2UpLnVwZGF0ZUZyb21TZXR0aW5ncyhkb2N1bWVudC5zZXR0aW5ncygpKTsKICAg
ICB9CiAKLSAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0geyBvcCwgYmxlbmRNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UgfTsKKyAgICBJbWFnZVBhaW50aW5nT3B0aW9u
cyBvcHRpb25zID0geyBvcCwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiB9OwogCiAgICAgaWYgKHJl
Y3RDb250YWluc0NhbnZhcyhub3JtYWxpemVkRHN0UmVjdCkpIHsKICAgICAgICAgYy0+ZHJhd0lt
YWdlKCppbWFnZSwgbm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcHRpb25z
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgJKHJldmlzaW9uIDI1OTM1NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMzLDcgKzMzMyw3IEBAIHByb3RlY3RlZDoKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBkcmF3SW1hZ2UoSFRNTEltYWdlRWxlbWVudCYsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3
SW1hZ2UoSFRNTEltYWdlRWxlbWVudCYsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBDb21wb3NpdGVPcGVyYXRvciYsIGNvbnN0IEJsZW5k
TW9kZSYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJbWFnZShDYW52YXNCYXNlJiwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QpOwotICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJbWFnZShEb2N1bWVudCYsIENhY2hlZEltYWdlKiwgY29uc3Qg
UmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBDb21wb3NpdGVPcGVy
YXRvciYsIGNvbnN0IEJsZW5kTW9kZSYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJbWFn
ZShEb2N1bWVudCYsIENhY2hlZEltYWdlKiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgRmxv
YXRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBkc3RSZWN0LCBjb25zdCBDb21wb3NpdGVPcGVyYXRvciYsIGNvbnN0IEJsZW5kTW9kZSYs
IEltYWdlT3JpZW50YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpOwogI2lmIEVO
QUJMRShWSURFTykKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3SW1hZ2UoSFRNTFZpZGVvRWxl
bWVudCYsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
KTsKICNlbmRpZgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU5MzU0KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDQtMDEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuZHJhd0ltYWdlIHNob3VsZCBpZ25vcmUgdGhlIEVYSUYgb3JpZW50
YXRpb24gaWYgdGhlIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vbmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTg0OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRp
b24tbm9uZS1jYW52YXMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQt
MDEgIEphc29uIExhd3JlbmNlICA8bGF3cmVuY2UuakBhcHBsZS5jb20+CiAKICAgICAgICAgWyBN
b2phdmUgd2sxIFJlbGVhc2UgXSBwbGF0Zm9ybS9tYWMvbWVkaWEvbWVkaWEtc291cmNlL3ZpZGVv
cGxheWJhY2txdWFsaXR5LWRlY29tcHJlc3Npb25zZXNzaW9uLmh0bWwgaXMgZmxha3kgZmFpbGlu
Zy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUt
Y2FudmFzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1ub25lLWNh
bnZhcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIgeworICAgICAgICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDogMjBweDsgCisgICAgICAgIG1h
cmdpbi1ib3R0b206IDEwcHg7IAorICAgICAgICB3aWR0aDogMTAwcHg7IAorICAgICAgICB2ZXJ0
aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRhbCB7CisgICAgICAgIHdp
ZHRoOiAxMDJweDsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBkaXYudmVydGlj
YWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0OiAxMDJweDsKKyAgICB9
CisgICAgaW1nIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgfQorPC9z
dHlsZT4KKzxib2R5PgorICAgIDxiPkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5kcmF3SW1hZ2Uo
KSBzaG91bGQgaWdub3JlIHRoZSBpbWFnZSdzIEVYSUYgb3JpZW50YXRpb24gaWYgaXRzIHN0eWxl
IGltYWdlLW9yaWVudGF0aW9uIGlzIHNldCB0byAibm9uZSIuPC9iPgorICAgIDxicj4KKyAgICA8
YnI+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWcxIiBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Ob3Jt
YWwKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxpbWcgaWQ9ImltZzIiIHNyYz0icmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbCI+CisgICAgICAgICAg
ICA8aW1nIGlkPSJpbWczIiBzcmM9InJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTEtdWwuanBn
Ij4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iaG9y
aXpvbnRhbCI+CisgICAgICAgICAgICA8aW1nIGlkPSJpbWc0IiBzcmM9InJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTEtdWwuanBnIj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5GbGlw
cGVkIHZlcnRpY2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGlt
ZyBpZD0iaW1nNSIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBl
ZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAg
ICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nNiIg
c3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVworICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InZlcnRpY2FsIj4KKyAgICAg
ICAgICAgIDxpbWcgaWQ9ImltZzciIHNyYz0icmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11
bC5qcGciPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVyBh
bmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0idmVydGljYWwiPgorICAgICAgICAgICAgPGltZyBp
ZD0iaW1nOCIgc3JjPSJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9
Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGltZyBpZD0iaW1nOSIgc3JjPSJyZXNvdXJjZXMv
ZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpwZyI+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
VW5kZWZpbmVkIChpbnZhbGlkIHZhbHVlKQorICAgIDwvZGl2PgorPC9ib2R5PgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1u
b25lLWNhbnZhcy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorICAgIGRpdi5jb250YWluZXIg
eworICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIG1hcmdpbi1yaWdodDog
MjBweDsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDsKKyAgICAgICAgd2lkdGg6IDEwMHB4
OworICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOworICAgIH0KKyAgICBkaXYuaG9yaXpvbnRh
bCB7CisgICAgICAgIHdpZHRoOiAxMDJweDsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0K
KyAgICBkaXYudmVydGljYWwgeworICAgICAgICB3aWR0aDogNTJweDsKKyAgICAgICAgaGVpZ2h0
OiAxMDJweDsKKyAgICB9CisgICAgY2FudmFzIHsKKyAgICAgICAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAg
ICAgICBpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+
CisgICAgPGI+Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSgpIHNob3VsZCBpZ25v
cmUgdGhlIGltYWdlJ3MgRVhJRiBvcmllbnRhdGlvbiBpZiBpdHMgc3R5bGUgaW1hZ2Utb3JpZW50
YXRpb24gaXMgc2V0IHRvICJub25lIi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2
IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgor
ICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2
PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxj
YW52YXMgaWQ9ImNhbnZhczIiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRh
aW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxj
YW52YXMgaWQ9ImNhbnZhczMiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJy
PlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZh
cyBpZD0iY2FudmFzNCI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Rmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJj
b250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAgICAgICAgICAg
PGNhbnZhcyBpZD0iY2FudmFzNSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0
aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM2Ij48L2NhbnZhcz4KKyAgICAg
ICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNh
bCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM3Ij48L2NhbnZhcz4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGlj
YWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8
ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzOCI+
PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENX
CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzID0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJj
YW52YXM5Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQg
KGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIHZhciBuYW1lcyA9IFsKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2Vz
L2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGciLCAgaWQgOiAiY2FudmFzMSIgfSwKKyAgICAgICAg
ICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGci
LCAgaWQgOiAiY2FudmFzMiIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5qcGciLCAgaWQgOiAiY2FudmFzMyIgfSwKKyAgICAg
ICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wu
anBnIiwgaWQgOiAiY2FudmFzNCIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1sdS5qcGciLCAgaWQgOiAiY2FudmFzNSIgfSwKKyAg
ICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1y
dS5qcGciLCAgaWQgOiAiY2FudmFzNiIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAi
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNy1ybC5qcGciLCAgaWQgOiAiY2FudmFzNyIgfSwK
KyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
OC1sbG8uanBnIiwgaWQgOiAiY2FudmFzOCIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNl
OiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOS11LmpwZyIsICAgaWQgOiAiY2FudmFzOSIg
fQorICAgICAgICAgICAgXTsKKworICAgICAgICAgICAgdmFyIGRyYXdDb3VudCA9IDA7CisKKyAg
ICAgICAgICAgIG5hbWVzLmZvckVhY2goZnVuY3Rpb24obmFtZSkgeworICAgICAgICAgICAgICAg
IHZhciBpbWFnZSA9IG5ldyBJbWFnZTsKKyAgICAgICAgICAgICAgICBpbWFnZS5zdHlsZS5pbWFn
ZU9yaWVudGF0aW9uID0gIm5vbmUiOworICAgICAgICAgICAgICAgIGltYWdlLnN0eWxlLmRpc3Bs
YXkgPSAibm9uZSI7CisgICAgICAgICAgICAgICAgaW1hZ2Uuc3JjID0gbmFtZS5yZXNvdXJjZTsK
KyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsKKyAgICAg
ICAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5hbWUuaWQpOworICAgICAg
ICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBNYXRoLm1heChpbWFnZS53aWR0aCwgaW1hZ2Uu
aGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IE1hdGgubWluKGlt
YWdlLndpZHRoLCBpbWFnZS5oZWlnaHQpOworICAgICAgICAgICAgICAgICAgICBsZXQgY29udGV4
dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgICAgICAgICAgICAgICAgICBjb250ZXh0
LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCsrZHJhd0NvdW50ID09IG5hbWVzLmxlbmd0aCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395247</attachid>
            <date>2020-04-02 00:58:05 -0700</date>
            <delta_ts>2020-04-02 13:10:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209849-20200402005804.patch</filename>
            <type>text/plain</type>
            <size>13284</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTM3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTAxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSBzaG91bGQgaWdub3JlIHRoZSBFWElGIG9yaWVudGF0
aW9uIGlmIHRoZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBub25lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBkcmF3SW1hZ2UoKSB3aWxsIGdldCB0aGUgaW1hZ2Ut
b3JpZW50YXRpb24gb2YgdGhlIEhUTUxJbWFnZUVsZW1lbnQgZnJvbQorICAgICAgICBpdHMgY29t
cHV0ZWQgc3R5bGUuIFRoaXMgd2lsbCBiZSBwYXNzZWQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2UoKQorICAgICAgICBpbiB0aGUgSW1hZ2VQYWludGluZ09wdGlvbnMuIFByZXZpb3VzbHkg
d2Ugd2VyZSBwYXNzaW5nIEZyb21JbWFnZSBhbHdheXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAorCisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaDoKKwogMjAyMC0wNC0w
MSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBDcmFzaCBpbiBX
ZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6Omluc2VydApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZS5jcHAJKHJldmlzaW9uIDI1OTM3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDY0LDcg
KzE0NjQsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogICAg
ICAgICByZXR1cm4geyB9OwogICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QgPSBGbG9hdFJlY3QoRmxv
YXRQb2ludCgpLCBzaXplKGltYWdlRWxlbWVudCwgSW1hZ2VTaXplVHlwZTo6QmVmb3JlRGV2aWNl
UGl4ZWxSYXRpbykpOwogCi0gICAgYXV0byByZXN1bHQgPSBkcmF3SW1hZ2UoaW1hZ2VFbGVtZW50
LmRvY3VtZW50KCksIGltYWdlRWxlbWVudC5jYWNoZWRJbWFnZSgpLCBpbWFnZUVsZW1lbnQucmVu
ZGVyZXIoKSwgaW1hZ2VSZWN0LCBzcmNSZWN0LCBkc3RSZWN0LCBvcCwgYmxlbmRNb2RlKTsKKyAg
ICBhdXRvIG9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlOworICAgIGlm
IChhdXRvKiBjb21wdXRlZFN0eWxlID0gaW1hZ2VFbGVtZW50LmNvbXB1dGVkU3R5bGUoKSkKKyAg
ICAgICAgb3JpZW50YXRpb24gPSBjb21wdXRlZFN0eWxlLT5pbWFnZU9yaWVudGF0aW9uKCk7CisK
KyAgICBhdXRvIHJlc3VsdCA9IGRyYXdJbWFnZShpbWFnZUVsZW1lbnQuZG9jdW1lbnQoKSwgaW1h
Z2VFbGVtZW50LmNhY2hlZEltYWdlKCksIGltYWdlRWxlbWVudC5yZW5kZXJlcigpLCBpbWFnZVJl
Y3QsIHNyY1JlY3QsIGRzdFJlY3QsIG9wLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uKTsKIAogICAg
IGlmICghcmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICBjaGVja09yaWdpbigmaW1hZ2VF
bGVtZW50KTsKQEAgLTE0ODcsNyArMTQ5MSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQKIH0KICNlbmRpZgogCi1FeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UoRG9jdW1lbnQmIGRvY3VtZW50LCBDYWNoZWRJ
bWFnZSogY2FjaGVkSW1hZ2UsIGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEZs
b2F0UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgZHN0UmVjdCwgY29uc3QgQ29tcG9zaXRlT3BlcmF0b3ImIG9wLCBjb25zdCBCbGVuZE1v
ZGUmIGJsZW5kTW9kZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2U6OmRyYXdJbWFnZShEb2N1bWVudCYgZG9jdW1lbnQsIENhY2hlZEltYWdlKiBjYWNoZWRJ
bWFnZSwgY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgRmxvYXRSZWN0JiBpbWFn
ZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBDb21wb3NpdGVPcGVyYXRvciYgb3AsIGNvbnN0IEJsZW5kTW9kZSYgYmxlbmRNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogewogICAgIGlmICghc3RkOjppc2Zpbml0
ZShkc3RSZWN0LngoKSkgfHwgIXN0ZDo6aXNmaW5pdGUoZHN0UmVjdC55KCkpIHx8ICFzdGQ6Omlz
ZmluaXRlKGRzdFJlY3Qud2lkdGgoKSkgfHwgIXN0ZDo6aXNmaW5pdGUoZHN0UmVjdC5oZWlnaHQo
KSkKICAgICAgICAgfHwgIXN0ZDo6aXNmaW5pdGUoc3JjUmVjdC54KCkpIHx8ICFzdGQ6OmlzZmlu
aXRlKHNyY1JlY3QueSgpKSB8fCAhc3RkOjppc2Zpbml0ZShzcmNSZWN0LndpZHRoKCkpIHx8ICFz
dGQ6OmlzZmluaXRlKHNyY1JlY3QuaGVpZ2h0KCkpKQpAQCAtMTU0Myw3ICsxNTQ3LDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogICAgICAgICBkb3duY2FzdDxC
aXRtYXBJbWFnZT4oKmltYWdlKS51cGRhdGVGcm9tU2V0dGluZ3MoZG9jdW1lbnQuc2V0dGluZ3Mo
KSk7CiAgICAgfQogCi0gICAgSW1hZ2VQYWludGluZ09wdGlvbnMgb3B0aW9ucyA9IHsgb3AsIGJs
ZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlIH07CisgICAgSW1hZ2VQYWludGlu
Z09wdGlvbnMgb3B0aW9ucyA9IHsgb3AsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24gfTsKIAogICAg
IGlmIChyZWN0Q29udGFpbnNDYW52YXMobm9ybWFsaXplZERzdFJlY3QpKSB7CiAgICAgICAgIGMt
PmRyYXdJbWFnZSgqaW1hZ2UsIG5vcm1hbGl6ZWREc3RSZWN0LCBub3JtYWxpemVkU3JjUmVjdCwg
b3B0aW9ucyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCShyZXZpc2lvbiAyNTkzNzgpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzMyw3ICszMzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gZHJhd0ltYWdlKEhUTUxJbWFnZUVsZW1lbnQmLCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCk7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gZHJhd0ltYWdlKEhUTUxJbWFnZUVsZW1lbnQmLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgQ29tcG9zaXRlT3BlcmF0b3ImLCBjb25z
dCBCbGVuZE1vZGUmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3SW1hZ2UoQ2FudmFzQmFz
ZSYsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0KTsK
LSAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3SW1hZ2UoRG9jdW1lbnQmLCBDYWNoZWRJbWFnZSos
IGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IEZsb2F0UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgQ29tcG9z
aXRlT3BlcmF0b3ImLCBjb25zdCBCbGVuZE1vZGUmKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBk
cmF3SW1hZ2UoRG9jdW1lbnQmLCBDYWNoZWRJbWFnZSosIGNvbnN0IFJlbmRlck9iamVjdCosIGNv
bnN0IEZsb2F0UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgQ29tcG9zaXRlT3BlcmF0b3ImLCBjb25zdCBCbGVu
ZE1vZGUmLCBJbWFnZU9yaWVudGF0aW9uID0gSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKTsK
ICNpZiBFTkFCTEUoVklERU8pCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZHJhd0ltYWdlKEhUTUxW
aWRlb0VsZW1lbnQmLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
ZHN0UmVjdCk7CiAjZW5kaWYKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTM3OCkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTAx
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSBzaG91bGQgaWdub3JlIHRoZSBFWElG
IG9yaWVudGF0aW9uIGlmIHRoZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBub25lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9y
aWVudGF0aW9uLW5vbmUtY2FudmFzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFzLmh0bWw6IEFkZGVkLgorCiAy
MDIwLTA0LTAxICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIHN2Zy9hcy1iYWNrZ3JvdW5kLWltYWdlL3RpbGVkLWJhY2tncm91bmQtaW1hZ2UuaHRt
bCBpcyBhIGZsYWt5IGltYWdlIGZhaWx1cmUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2Vz
L2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMt
ZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9p
bWFnZS1vcmllbnRhdGlvbi1ub25lLWNhbnZhcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTA0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29u
dGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4t
cmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRo
OiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2Lmhv
cml6b250YWwgeworICAgICAgICB3aWR0aDogMTAycHg7CisgICAgICAgIGhlaWdodDogNTJweDsK
KyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAgICAg
IGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGNhbnZhcyB7CisgICAgICAgIGJvcmRlcjogMXB4
IHNvbGlkIGJsYWNrOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogNTBw
eDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+Q2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmRyYXdJbWFnZSgpIHNob3VsZCBpZ25vcmUgdGhlIGltYWdlJ3MgRVhJRiBvcmllbnRhdGlv
biBpZiBpdHMgc3R5bGUgaW1hZ2Utb3JpZW50YXRpb24gaXMgc2V0IHRvICJub25lIi48L2I+Cisg
ICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFz
MSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJo
b3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiPjwvY2FudmFzPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJo
b3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczMiPjwvY2FudmFzPgor
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6
b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzNCI+PC9jYW52YXM+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
ID0idmVydGljYWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzNSI+PC9jYW52YXM+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQgZmxp
cHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlk
PSJjYW52YXM2Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+Cisg
ICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJj
YW52YXM3Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkw
JmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xh
c3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAgICAg
ICAgICAgPGNhbnZhcyBpZD0iY2FudmFzOCI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxk
aXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iaG9yaXpvbnRhbCI+
CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM5Ij48L2NhbnZhcz4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZTsKKyAg
ICAgICAgICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRhdGlvbi0xLXVsLmpw
ZyI7CisgICAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
ICAgICBsZXQgY2FudmFzZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJjYW52YXMiKTsK
KyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNhbnZhcyBvZiBjYW52YXNlcykgeworICAgICAg
ICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aDsKKyAgICAgICAgICAgICAg
ICAgICAgY2FudmFzLmhlaWdodCA9IGltYWdlLmhlaWdodDsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhl
aWdodCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2Fu
dmFzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1ub25lLWNhbnZhcy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYu
Y29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJn
aW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2
Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAycHg7CisgICAgICAgIGhlaWdodDogNTJw
eDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUycHg7CisgICAg
ICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGNhbnZhcyB7CisgICAgICAgIGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDog
NTBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+Q2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmRyYXdJbWFnZSgpIHNob3VsZCBpZ25vcmUgdGhlIGltYWdlJ3MgRVhJRiBvcmllbnRh
dGlvbiBpZiBpdHMgc3R5bGUgaW1hZ2Utb3JpZW50YXRpb24gaXMgc2V0IHRvICJub25lIi48L2I+
CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2Fu
dmFzMSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3Mg
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiPjwvY2FudmFz
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3Mg
PSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczMiPjwvY2FudmFz
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhv
cml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzNCI+PC9jYW52YXM+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+
CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNs
YXNzID0idmVydGljYWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzNSI+PC9jYW52
YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENDVyBhbmQg
ZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFz
IGlkPSJjYW52YXM2Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3Rh
dGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+
CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlk
PSJjYW52YXM3Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVk
IDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAg
ICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzOCI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAgPGJyPgorICAg
IDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iaG9yaXpvbnRh
bCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM5Ij48L2NhbnZhcz4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisgICAgPC9kaXY+
CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHdpbmRvdy5v
bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBuYW1lcyA9IFsKKyAgICAgICAg
ICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMS11bC5qcGci
LCAgaWQgOiAiY2FudmFzMSIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3Vy
Y2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciLCAgaWQgOiAiY2FudmFzMiIgfSwKKyAgICAg
ICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMy1sci5q
cGciLCAgaWQgOiAiY2FudmFzMyIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVz
b3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIiwgaWQgOiAiY2FudmFzNCIgfSwKKyAg
ICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNS1s
dS5qcGciLCAgaWQgOiAiY2FudmFzNSIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAi
cmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciLCAgaWQgOiAiY2FudmFzNiIgfSwK
KyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24t
Ny1ybC5qcGciLCAgaWQgOiAiY2FudmFzNyIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNl
OiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIiwgaWQgOiAiY2FudmFzOCIg
fSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tOS11LmpwZyIsICAgaWQgOiAiY2FudmFzOSIgfQorICAgICAgICAgICAgXTsKKworICAgICAg
ICAgICAgdmFyIGRyYXdDb3VudCA9IDA7CisKKyAgICAgICAgICAgIG5hbWVzLmZvckVhY2goZnVu
Y3Rpb24obmFtZSkgeworICAgICAgICAgICAgICAgIHZhciBpbWFnZSA9IG5ldyBJbWFnZTsKKyAg
ICAgICAgICAgICAgICBpbWFnZS5zdHlsZS5pbWFnZU9yaWVudGF0aW9uID0gIm5vbmUiOworICAg
ICAgICAgICAgICAgIGltYWdlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICAgICAg
ICAgaW1hZ2Uuc3JjID0gbmFtZS5yZXNvdXJjZTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGltYWdlKTsKKyAgICAgICAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50
aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhcyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKG5hbWUuaWQpOworICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGgg
PSBNYXRoLm1heChpbWFnZS53aWR0aCwgaW1hZ2UuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAg
ICAgY2FudmFzLmhlaWdodCA9IE1hdGgubWluKGltYWdlLndpZHRoLCBpbWFnZS5oZWlnaHQpOwor
ICAgICAgICAgICAgICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIp
OworICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCsrZHJh
d0NvdW50ID09IG5hbWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9k
eT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395290</attachid>
            <date>2020-04-02 13:11:00 -0700</date>
            <delta_ts>2020-04-05 22:34:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209849-20200402131058.patch</filename>
            <type>text/plain</type>
            <size>19975</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTQwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA0LTAyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSBzaG91bGQgaWdub3JlIHRoZSBFWElGIG9yaWVudGF0
aW9uIGlmIHRoZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBub25lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBkcmF3SW1hZ2UoKSB3aWxsIGdldCB0aGUgaW1h
Z2Utb3JpZW50YXRpb24gb2YgdGhlIEhUTUxJbWFnZUVsZW1lbnQgZnJvbQorICAgICAgICBpdHMg
Y29tcHV0ZWQgc3R5bGUuIFRoaXMgd2lsbCBiZSBwYXNzZWQgdG8gR3JhcGhpY3NDb250ZXh0Ojpk
cmF3SW1hZ2UoKQorICAgICAgICBpbiB0aGUgSW1hZ2VQYWludGluZ09wdGlvbnMuIFByZXZpb3Vz
bHkgd2Ugd2VyZSBwYXNzaW5nIEZyb21JbWFnZSBhbHdheXMuCisKKyAgICAgICAgVGVzdDogZmFz
dC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAorCisgICAgICAgICog
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVs
ZW1lbnQ6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdo
dCk6CisgICAgICAgIFdlIG5lZWQgdG8gZ2V0IHRoZSBpbWFnZS1vcmllbnRhdGlvbiBmcm9tIHRo
ZSBjb21wdXRlZFN0eWxlKCkgaWYgdGhlCisgICAgICAgIGltYWdlIGVsZW1lbnQgaGFzIG5vIHJl
bmRlcmVyLgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNl
OjpkcmF3SW1hZ2UpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuaDoKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzY2FsZUltYWdlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpjbGFt
cGVkSW1hZ2VTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZEltYWdlOjp1bmNsYW1wZWRJ
bWFnZVNpemVGb3JSZW5kZXJlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRJbWFn
ZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
SW1hZ2U6OmltYWdlU2l6ZSBjb25zdCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmg6CisgICAgICAgIENyZWF0ZSBhIG5ldyBmdW5jdGlvbiBhbmQgbmFtZSBpdCBpbWFnZVNp
emUoKSB3aGljaCBpcyBjYWxsZWQgd2hlbiB0aGUKKyAgICAgICAgaW1hZ2UgZWxlbWVudCBoYXMg
bm8gcmVuZGVyZXIuIFRoaXMgZnVuY3Rpb24gd2lsbCB0YWtlIGFuIE9tYWdlT3JpZW50YXRpb24K
KyAgICAgICAgYXJndW1lbnQgaW5zdGVhZCBvZiBhIHJlbmRlcmVyLgorCiAyMDIwLTA0LTAyICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIG51
bGwgZGVyZWYgYWZ0ZXIgaW5zZXJ0aW5nIGEgdGV4dCBmaWVsZCB3aXRoIGEgbGlzdCBhdHRyaWJ1
dGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNp
b24gMjU5Mzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTA1LDggKzUwNSwxMCBAQCB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVt
ZW50Ojp3aWR0aChib29sIGlnCiAgICAgICAgICAgICByZXR1cm4gb3B0aW9uYWxXaWR0aC52YWx1
ZSgpOwogCiAgICAgICAgIC8vIGlmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBpdHMgd2lk
dGgKLSAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpCi0gICAgICAgICAgICByZXR1
cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIocmVuZGVyZXIo
KSwgMS4wZikud2lkdGgoKS50b1Vuc2lnbmVkKCk7CisgICAgICAgIGlmIChtX2ltYWdlTG9hZGVy
LT5pbWFnZSgpKSB7CisgICAgICAgICAgICBhdXRvIG9yaWVudGF0aW9uID0gY29tcHV0ZWRTdHls
ZSgpID8gY29tcHV0ZWRTdHlsZSgpLT5pbWFnZU9yaWVudGF0aW9uKCkgOiBJbWFnZU9yaWVudGF0
aW9uKEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSk7CisgICAgICAgICAgICByZXR1cm4gbV9p
bWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXplKG9yaWVudGF0aW9uLCAxLjBmKS53aWR0aCgp
LnRvVW5zaWduZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMpCkBAIC01MzAsOCArNTMyLDEwIEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1l
bnQ6OmhlaWdodChib29sIGkKICAgICAgICAgICAgIHJldHVybiBvcHRpb25hbEhlaWdodC52YWx1
ZSgpOwogCiAgICAgICAgIC8vIGlmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBpdHMgaGVp
Z2h0Ci0gICAgICAgIGlmIChtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKQotICAgICAgICAgICAgcmV0
dXJuIG1faW1hZ2VMb2FkZXItPmltYWdlKCktPmltYWdlU2l6ZUZvclJlbmRlcmVyKHJlbmRlcmVy
KCksIDEuMGYpLmhlaWdodCgpLnRvVW5zaWduZWQoKTsKKyAgICAgICAgaWYgKG1faW1hZ2VMb2Fk
ZXItPmltYWdlKCkpIHsKKyAgICAgICAgICAgIGF1dG8gb3JpZW50YXRpb24gPSBjb21wdXRlZFN0
eWxlKCkgPyBjb21wdXRlZFN0eWxlKCktPmltYWdlT3JpZW50YXRpb24oKSA6IEltYWdlT3JpZW50
YXRpb24oSW1hZ2VPcmllbnRhdGlvbjo6RnJvbUltYWdlKTsKKyAgICAgICAgICAgIHJldHVybiBt
X2ltYWdlTG9hZGVyLT5pbWFnZSgpLT5pbWFnZVNpemUob3JpZW50YXRpb24sIDEuMGYpLmhlaWdo
dCgpLnRvVW5zaWduZWQoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmNwcAkocmV2aXNpb24gMjU5
Mzc4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NjQsNyArMTQ2NCwxMSBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0CiAgICAgICAgIHJldHVybiB7IH07CiAg
ICAgRmxvYXRSZWN0IGltYWdlUmVjdCA9IEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNpemUoaW1h
Z2VFbGVtZW50LCBJbWFnZVNpemVUeXBlOjpCZWZvcmVEZXZpY2VQaXhlbFJhdGlvKSk7CiAKLSAg
ICBhdXRvIHJlc3VsdCA9IGRyYXdJbWFnZShpbWFnZUVsZW1lbnQuZG9jdW1lbnQoKSwgaW1hZ2VF
bGVtZW50LmNhY2hlZEltYWdlKCksIGltYWdlRWxlbWVudC5yZW5kZXJlcigpLCBpbWFnZVJlY3Qs
IHNyY1JlY3QsIGRzdFJlY3QsIG9wLCBibGVuZE1vZGUpOworICAgIGF1dG8gb3JpZW50YXRpb24g
PSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2U7CisgICAgaWYgKGF1dG8qIGNvbXB1dGVkU3R5
bGUgPSBpbWFnZUVsZW1lbnQuY29tcHV0ZWRTdHlsZSgpKQorICAgICAgICBvcmllbnRhdGlvbiA9
IGNvbXB1dGVkU3R5bGUtPmltYWdlT3JpZW50YXRpb24oKTsKKworICAgIGF1dG8gcmVzdWx0ID0g
ZHJhd0ltYWdlKGltYWdlRWxlbWVudC5kb2N1bWVudCgpLCBpbWFnZUVsZW1lbnQuY2FjaGVkSW1h
Z2UoKSwgaW1hZ2VFbGVtZW50LnJlbmRlcmVyKCksIGltYWdlUmVjdCwgc3JjUmVjdCwgZHN0UmVj
dCwgb3AsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24pOwogCiAgICAgaWYgKCFyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCiAgICAgICAgIGNoZWNrT3JpZ2luKCZpbWFnZUVsZW1lbnQpOwpAQCAtMTQ4Nyw3
ICsxNDkxLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dAogfQog
I2VuZGlmCiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6
OmRyYXdJbWFnZShEb2N1bWVudCYgZG9jdW1lbnQsIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSwg
Y29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgRmxvYXRSZWN0JiBpbWFnZVJlY3Qs
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25z
dCBDb21wb3NpdGVPcGVyYXRvciYgb3AsIGNvbnN0IEJsZW5kTW9kZSYgYmxlbmRNb2RlKQorRXhj
ZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6ZHJhd0ltYWdlKERv
Y3VtZW50JiBkb2N1bWVudCwgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlLCBjb25zdCBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFJlY3QmIGltYWdlUmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IENvbXBvc2l0ZU9w
ZXJhdG9yJiBvcCwgY29uc3QgQmxlbmRNb2RlJiBibGVuZE1vZGUsIEltYWdlT3JpZW50YXRpb24g
b3JpZW50YXRpb24pCiB7CiAgICAgaWYgKCFzdGQ6OmlzZmluaXRlKGRzdFJlY3QueCgpKSB8fCAh
c3RkOjppc2Zpbml0ZShkc3RSZWN0LnkoKSkgfHwgIXN0ZDo6aXNmaW5pdGUoZHN0UmVjdC53aWR0
aCgpKSB8fCAhc3RkOjppc2Zpbml0ZShkc3RSZWN0LmhlaWdodCgpKQogICAgICAgICB8fCAhc3Rk
Ojppc2Zpbml0ZShzcmNSZWN0LngoKSkgfHwgIXN0ZDo6aXNmaW5pdGUoc3JjUmVjdC55KCkpIHx8
ICFzdGQ6OmlzZmluaXRlKHNyY1JlY3Qud2lkdGgoKSkgfHwgIXN0ZDo6aXNmaW5pdGUoc3JjUmVj
dC5oZWlnaHQoKSkpCkBAIC0xNTQzLDcgKzE1NDcsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52
YXNSZW5kZXJpbmdDb250ZXh0CiAgICAgICAgIGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2Up
LnVwZGF0ZUZyb21TZXR0aW5ncyhkb2N1bWVudC5zZXR0aW5ncygpKTsKICAgICB9CiAKLSAgICBJ
bWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0geyBvcCwgYmxlbmRNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uOjpGcm9tSW1hZ2UgfTsKKyAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBvcHRpb25zID0g
eyBvcCwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiB9OwogCiAgICAgaWYgKHJlY3RDb250YWluc0Nh
bnZhcyhub3JtYWxpemVkRHN0UmVjdCkpIHsKICAgICAgICAgYy0+ZHJhd0ltYWdlKCppbWFnZSwg
bm9ybWFsaXplZERzdFJlY3QsIG5vcm1hbGl6ZWRTcmNSZWN0LCBvcHRpb25zKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmgJKHJldmlzaW9uIDI1OTM3OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMzLDcgKzMzMyw3IEBAIHByb3RlY3RlZDoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3SW1h
Z2UoSFRNTEltYWdlRWxlbWVudCYsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3SW1hZ2UoSFRNTElt
YWdlRWxlbWVudCYsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBk
c3RSZWN0LCBjb25zdCBDb21wb3NpdGVPcGVyYXRvciYsIGNvbnN0IEJsZW5kTW9kZSYpOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJbWFnZShDYW52YXNCYXNlJiwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QpOwotICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IGRyYXdJbWFnZShEb2N1bWVudCYsIENhY2hlZEltYWdlKiwgY29uc3QgUmVuZGVyT2JqZWN0
KiwgY29uc3QgRmxvYXRSZWN0JiBpbWFnZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBDb21wb3NpdGVPcGVyYXRvciYsIGNvbnN0
IEJsZW5kTW9kZSYpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJbWFnZShEb2N1bWVudCYs
IENhY2hlZEltYWdlKiwgY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0JiBpbWFn
ZVJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0
LCBjb25zdCBDb21wb3NpdGVPcGVyYXRvciYsIGNvbnN0IEJsZW5kTW9kZSYsIEltYWdlT3JpZW50
YXRpb24gPSBJbWFnZU9yaWVudGF0aW9uOjpGcm9tSW1hZ2UpOwogI2lmIEVOQUJMRShWSURFTykK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBkcmF3SW1hZ2UoSFRNTFZpZGVvRWxlbWVudCYsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0KTsKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCShyZXZp
c2lvbiAyNTkzNzgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsNiArMjg2LDI3IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6
OnNldENvbnRhaW5lckNvbnRleHRGb3IKICAgICBtX3N2Z0ltYWdlQ2FjaGUtPnNldENvbnRhaW5l
ckNvbnRleHRGb3JDbGllbnQoY2xpZW50LCBjb250YWluZXJTaXplLCBjb250YWluZXJab29tLCBp
bWFnZVVSTCk7CiB9CiAKK3N0YXRpYyB2b2lkIHNjYWxlSW1hZ2VTaXplKGNvbnN0IEltYWdlKiBp
bWFnZSwgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplLCBmbG9hdCBtdWx0aXBsaWVyKQoreworICAgIGlm
ICghaW1hZ2UgfHwgaW1hZ2VTaXplLmlzRW1wdHkoKSB8fCBtdWx0aXBsaWVyID09IDEuMGYpCisg
ICAgICAgIHJldHVybjsKKworICAgIGZsb2F0IHdpZHRoU2NhbGUgPSBpbWFnZS0+aGFzUmVsYXRp
dmVXaWR0aCgpID8gMS4wZiA6IG11bHRpcGxpZXI7CisgICAgZmxvYXQgaGVpZ2h0U2NhbGUgPSBp
bWFnZS0+aGFzUmVsYXRpdmVIZWlnaHQoKSA/IDEuMGYgOiBtdWx0aXBsaWVyOworICAgIGltYWdl
U2l6ZS5zY2FsZSh3aWR0aFNjYWxlLCBoZWlnaHRTY2FsZSk7Cit9CisKK3N0YXRpYyB2b2lkIGNs
YW1wZWRJbWFnZVNpemUoTGF5b3V0U2l6ZSYgaW1hZ2VTaXplLCBmbG9hdCBtdWx0aXBsaWVyKQor
eworICAgIGlmIChpbWFnZVNpemUuaXNFbXB0eSgpIHx8IG11bHRpcGxpZXIgPT0gMS4wZikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgLy8gRG9uJ3QgbGV0IGltYWdlcyB0aGF0IGhhdmUgYSB3aWR0
aC9oZWlnaHQgPj0gMSBzaHJpbmsgYmVsb3cgMSB3aGVuIHpvb21lZC4KKyAgICBMYXlvdXRTaXpl
IG1pbmltdW1TaXplKGltYWdlU2l6ZS53aWR0aCgpID4gMCA/IDEgOiAwLCBpbWFnZVNpemUuaGVp
Z2h0KCkgPiAwID8gMSA6IDApOworICAgIGltYWdlU2l6ZS5jbGFtcFRvTWluaW11bVNpemUobWlu
aW11bVNpemUpOworICAgIEFTU0VSVChtdWx0aXBsaWVyICE9IDEuMGYgfHwgKGltYWdlU2l6ZS53
aWR0aCgpLmZyYWN0aW9uKCkgPT0gMC4wZiAmJiBpbWFnZVNpemUuaGVpZ2h0KCkuZnJhY3Rpb24o
KSA9PSAwLjBmKSk7Cit9CisKIEZsb2F0U2l6ZSBDYWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVu
ZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIFNpemVUeXBlIHNpemVUeXBlKSBj
b25zdAogewogICAgIGlmICghbV9pbWFnZSkKQEAgLTI5NywzMCArMzE4LDMzIEBAIEZsb2F0U2l6
ZSBDYWNoZWRJbWFnZTo6aW1hZ2VTaXplRm9yUmVuZGUKICAgICByZXR1cm4gbV9pbWFnZS0+c2l6
ZShyZW5kZXJlciA/IHJlbmRlcmVyLT5pbWFnZU9yaWVudGF0aW9uKCkgOiBJbWFnZU9yaWVudGF0
aW9uKEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSkpOwogfQogCi0KIExheW91dFNpemUgQ2Fj
aGVkSW1hZ2U6OnVuY2xhbXBlZEltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1l
bnQqIHJlbmRlcmVyLCBmbG9hdCBtdWx0aXBsaWVyLCBTaXplVHlwZSBzaXplVHlwZSkgY29uc3QK
IHsKLSAgICBMYXlvdXRTaXplIGltYWdlU2l6ZSA9IExheW91dFNpemUoaW1hZ2VTaXplRm9yUmVu
ZGVyZXIocmVuZGVyZXIsIHNpemVUeXBlKSk7Ci0gICAgaWYgKGltYWdlU2l6ZS5pc0VtcHR5KCkg
fHwgbXVsdGlwbGllciA9PSAxLjBmKQotICAgICAgICByZXR1cm4gaW1hZ2VTaXplOwotCi0gICAg
ZmxvYXQgd2lkdGhTY2FsZSA9IG1faW1hZ2UtPmhhc1JlbGF0aXZlV2lkdGgoKSA/IDEuMGYgOiBt
dWx0aXBsaWVyOwotICAgIGZsb2F0IGhlaWdodFNjYWxlID0gbV9pbWFnZS0+aGFzUmVsYXRpdmVI
ZWlnaHQoKSA/IDEuMGYgOiBtdWx0aXBsaWVyOwotICAgIGltYWdlU2l6ZS5zY2FsZSh3aWR0aFNj
YWxlLCBoZWlnaHRTY2FsZSk7Ci0gICAgcmV0dXJuIGltYWdlU2l6ZTsgICAgCisgICAgYXV0byBp
bWFnZVNpemUgPSBMYXlvdXRTaXplKGltYWdlU2l6ZUZvclJlbmRlcmVyKHJlbmRlcmVyLCBzaXpl
VHlwZSkpOworICAgIHNjYWxlSW1hZ2VTaXplKG1faW1hZ2UuZ2V0KCksIGltYWdlU2l6ZSwgbXVs
dGlwbGllcik7CisgICAgcmV0dXJuIGltYWdlU2l6ZTsKIH0KIAogTGF5b3V0U2l6ZSBDYWNoZWRJ
bWFnZTo6aW1hZ2VTaXplRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIs
IGZsb2F0IG11bHRpcGxpZXIsIFNpemVUeXBlIHNpemVUeXBlKSBjb25zdAogewogICAgIGF1dG8g
aW1hZ2VTaXplID0gdW5jbGFtcGVkSW1hZ2VTaXplRm9yUmVuZGVyZXIocmVuZGVyZXIsIG11bHRp
cGxpZXIsIHNpemVUeXBlKTsKLSAgICBpZiAoaW1hZ2VTaXplLmlzRW1wdHkoKSB8fCBtdWx0aXBs
aWVyID09IDEuMGYpCi0gICAgICAgIHJldHVybiBpbWFnZVNpemU7CisgICAgY2xhbXBlZEltYWdl
U2l6ZShpbWFnZVNpemUsIG11bHRpcGxpZXIpOworICAgIHJldHVybiBpbWFnZVNpemU7Cit9CiAK
LSAgICAvLyBEb24ndCBsZXQgaW1hZ2VzIHRoYXQgaGF2ZSBhIHdpZHRoL2hlaWdodCA+PSAxIHNo
cmluayBiZWxvdyAxIHdoZW4gem9vbWVkLgotICAgIExheW91dFNpemUgbWluaW11bVNpemUoaW1h
Z2VTaXplLndpZHRoKCkgPiAwID8gMSA6IDAsIGltYWdlU2l6ZS5oZWlnaHQoKSA+IDAgPyAxIDog
MCk7Ci0gICAgaW1hZ2VTaXplLmNsYW1wVG9NaW5pbXVtU2l6ZShtaW5pbXVtU2l6ZSk7CitMYXlv
dXRTaXplIENhY2hlZEltYWdlOjppbWFnZVNpemUoSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlv
biwgZmxvYXQgbXVsdGlwbGllciwgU2l6ZVR5cGUgc2l6ZVR5cGUpIGNvbnN0Cit7CisgICAgaWYg
KCFtX2ltYWdlKQorICAgICAgICByZXR1cm4geyB9OwogCi0gICAgQVNTRVJUKG11bHRpcGxpZXIg
IT0gMS4wZiB8fCAoaW1hZ2VTaXplLndpZHRoKCkuZnJhY3Rpb24oKSA9PSAwLjBmICYmIGltYWdl
U2l6ZS5oZWlnaHQoKS5mcmFjdGlvbigpID09IDAuMGYpKTsKKyAgICBMYXlvdXRTaXplIGltYWdl
U2l6ZTsKKyAgICBpZiAoaXM8U1ZHSW1hZ2U+KCptX2ltYWdlKSAmJiBzaXplVHlwZSA9PSBVc2Vk
U2l6ZSkKKyAgICAgICAgaW1hZ2VTaXplID0gTGF5b3V0U2l6ZShtX3N2Z0ltYWdlQ2FjaGUtPmlt
YWdlU2l6ZUZvclJlbmRlcmVyKG51bGxwdHIpKTsKKyAgICBlbHNlCisgICAgICAgIGltYWdlU2l6
ZSA9IExheW91dFNpemUobV9pbWFnZS0+c2l6ZShvcmllbnRhdGlvbikpOworICAgIAorICAgIHNj
YWxlSW1hZ2VTaXplKG1faW1hZ2UuZ2V0KCksIGltYWdlU2l6ZSwgbXVsdGlwbGllcik7CisgICAg
Y2xhbXBlZEltYWdlU2l6ZShpbWFnZVNpemUsIG11bHRpcGxpZXIpOwogICAgIHJldHVybiBpbWFn
ZVNpemU7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5oCShyZXZpc2lvbiAyNTkzNzgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAg
Ly8gVGhpcyBtZXRob2QgdGFrZXMgYSB6b29tIG11bHRpcGxpZXIgdGhhdCBjYW4gYmUgdXNlZCB0
byBpbmNyZWFzZSB0aGUgbmF0dXJhbCBzaXplIG9mIHRoZSBpbWFnZSBieSB0aGUgem9vbS4KICAg
ICBMYXlvdXRTaXplIGltYWdlU2l6ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckVsZW1lbnQqLCBm
bG9hdCBtdWx0aXBsaWVyLCBTaXplVHlwZSA9IFVzZWRTaXplKSBjb25zdDsgLy8gcmV0dXJucyB0
aGUgc2l6ZSBvZiB0aGUgY29tcGxldGUgaW1hZ2UuCiAgICAgTGF5b3V0U2l6ZSB1bmNsYW1wZWRJ
bWFnZVNpemVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgZmxvYXQg
bXVsdGlwbGllciwgU2l6ZVR5cGUgPSBVc2VkU2l6ZSkgY29uc3Q7CisgICAgTGF5b3V0U2l6ZSBp
bWFnZVNpemUoSW1hZ2VPcmllbnRhdGlvbiwgZmxvYXQgbXVsdGlwbGllciwgU2l6ZVR5cGUgPSBV
c2VkU2l6ZSkgY29uc3Q7CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljRGltZW5zaW9ucyhMZW5n
dGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbnNpY0hlaWdodCwgRmxvYXRTaXplJiBp
bnRyaW5zaWNSYXRpbyk7CiAKICAgICBib29sIGlzTWFudWFsbHlDYWNoZWQoKSBjb25zdCB7IHJl
dHVybiBtX2lzTWFudWFsbHlDYWNoZWQ7IH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTM3OCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisy
MDIwLTA0LTAyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSBzaG91bGQgaWdub3Jl
IHRoZSBFWElGIG9yaWVudGF0aW9uIGlmIHRoZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBub25lCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvaW1h
Z2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFzLmh0bWw6
IEFkZGVkLgorCiAyMDIwLTA0LTAxICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtpT1NdIHN2Zy9hcy1iYWNrZ3JvdW5kLWltYWdlL3RpbGVkLWJhY2tncm91
bmQtaW1hZ2UuaHRtbCBpcyBhIGZsYWt5IGltYWdlIGZhaWx1cmUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFzLWV4cGVjdGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3JpZW50YXRpb24t
bm9uZS1jYW52YXMtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1ub25lLWNhbnZhcy1leHBlY3RlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4K
KyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAg
ICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7Cisg
ICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgICB9
CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAycHg7CisgICAgICAgIGhl
aWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6IDUy
cHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGNhbnZhcyB7CisgICAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAg
IGhlaWdodDogNTBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+Q2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSgpIHNob3VsZCBpZ25vcmUgdGhlIGltYWdlJ3MgRVhJ
RiBvcmllbnRhdGlvbiBpZiBpdHMgc3R5bGUgaW1hZ2Utb3JpZW50YXRpb24gaXMgc2V0IHRvICJu
b25lIi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZh
cyBpZD0iY2FudmFzMSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9y
bWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIi
PjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRh
bGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxk
aXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczMi
PjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRlZzsK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzNCI+PC9j
YW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5Cisg
ICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAg
ICA8ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFz
NSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7
IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAg
ICA8Y2FudmFzIGlkPSJjYW52YXM2Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNv
bnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAgICA8
Y2FudmFzIGlkPSJjYW52YXM3Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxi
cj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0idmVydGlj
YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzOCI+PC9jYW52YXM+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+CisgICAg
PGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0i
aG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM5Ij48L2NhbnZhcz4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUpCisg
ICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAg
IHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBpbWFnZSA9IG5l
dyBJbWFnZTsKKyAgICAgICAgICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvZXhpZi1vcmllbnRh
dGlvbi0xLXVsLmpwZyI7CisgICAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJjYW52YXMiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNhbnZhcyBvZiBjYW52YXNl
cykgeworICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBpbWFnZS53aWR0aDsKKyAg
ICAgICAgICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IGltYWdlLmhlaWdodDsKKyAgICAgICAg
ICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAg
ICAgICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGNhbnZhcy53aWR0
aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0
aW9uLW5vbmUtY2FudmFzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1ub25lLWNhbnZhcy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHls
ZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwor
ICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7
CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAg
ICB9CisgICAgZGl2Lmhvcml6b250YWwgeworICAgICAgICB3aWR0aDogMTAycHg7CisgICAgICAg
IGhlaWdodDogNTJweDsKKyAgICB9CisgICAgZGl2LnZlcnRpY2FsIHsKKyAgICAgICAgd2lkdGg6
IDUycHg7CisgICAgICAgIGhlaWdodDogMTAycHg7CisgICAgfQorICAgIGNhbnZhcyB7CisgICAg
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAg
ICAgIGhlaWdodDogNTBweDsKKyAgICB9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGI+Q2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSgpIHNob3VsZCBpZ25vcmUgdGhlIGltYWdlJ3Mg
RVhJRiBvcmllbnRhdGlvbiBpZiBpdHMgc3R5bGUgaW1hZ2Utb3JpZW50YXRpb24gaXMgc2V0IHRv
ICJub25lIi48L2I+CisgICAgPGJyPgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFp
bmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNh
bnZhcyBpZD0iY2FudmFzMSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+
Tm9ybWFsCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZh
czIiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpv
bnRhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3MgPSJob3Jpem9udGFsIj4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZh
czMiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgMTgwJmRl
ZzsKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcyA9Imhvcml6b250YWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzNCI+
PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5
CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzID0idmVydGljYWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2Fu
dmFzNSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZk
ZWc7IENDVyBhbmQgZmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAg
ICAgICA8Y2FudmFzIGlkPSJjYW52YXM2Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAg
ICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9
ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJ2ZXJ0aWNhbCI+CisgICAgICAgICAg
ICA8Y2FudmFzIGlkPSJjYW52YXM3Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0idmVy
dGljYWwiPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzOCI+PC9jYW52YXM+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXCisgICAgPC9kaXY+Cisg
ICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
ID0iaG9yaXpvbnRhbCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM5Ij48L2NhbnZh
cz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUp
CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBuYW1lcyA9
IFsKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRp
b24tMS11bC5qcGciLCAgaWQgOiAiY2FudmFzMSIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291
cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tMi11ci5qcGciLCAgaWQgOiAiY2FudmFz
MiIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50
YXRpb24tMy1sci5qcGciLCAgaWQgOiAiY2FudmFzMyIgfSwKKyAgICAgICAgICAgICAgICB7IHJl
c291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNC1sb2wuanBnIiwgaWQgOiAiY2Fu
dmFzNCIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3Jp
ZW50YXRpb24tNS1sdS5qcGciLCAgaWQgOiAiY2FudmFzNSIgfSwKKyAgICAgICAgICAgICAgICB7
IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tNi1ydS5qcGciLCAgaWQgOiAi
Y2FudmFzNiIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYt
b3JpZW50YXRpb24tNy1ybC5qcGciLCAgaWQgOiAiY2FudmFzNyIgfSwKKyAgICAgICAgICAgICAg
ICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIiwgaWQg
OiAiY2FudmFzOCIgfSwKKyAgICAgICAgICAgICAgICB7IHJlc291cmNlOiAicmVzb3VyY2VzL2V4
aWYtb3JpZW50YXRpb24tOS11LmpwZyIsICAgaWQgOiAiY2FudmFzOSIgfQorICAgICAgICAgICAg
XTsKKworICAgICAgICAgICAgdmFyIGRyYXdDb3VudCA9IDA7CisKKyAgICAgICAgICAgIG5hbWVz
LmZvckVhY2goZnVuY3Rpb24obmFtZSkgeworICAgICAgICAgICAgICAgIHZhciBpbWFnZSA9IG5l
dyBJbWFnZTsKKyAgICAgICAgICAgICAgICBpbWFnZS5zdHlsZS5pbWFnZU9yaWVudGF0aW9uID0g
Im5vbmUiOworICAgICAgICAgICAgICAgIGltYWdlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Cisg
ICAgICAgICAgICAgICAgaW1hZ2Uuc3JjID0gbmFtZS5yZXNvdXJjZTsKKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltYWdlKTsKKyAgICAgICAgICAgICAgICBpbWFn
ZS5kZWNvZGUoKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNhbnZhcyA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5hbWUuaWQpOworICAgICAgICAgICAgICAgICAgICBj
YW52YXMud2lkdGggPSBpbWFnZS53aWR0aDsKKyAgICAgICAgICAgICAgICAgICAgY2FudmFzLmhl
aWdodCA9IGltYWdlLmhlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnRleHQgPSBj
YW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3
SW1hZ2UoaW1hZ2UsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmICgrK2RyYXdDb3VudCA9PSBuYW1lcy5sZW5ndGgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395545</attachid>
            <date>2020-04-05 22:34:08 -0700</date>
            <delta_ts>2020-04-06 01:03:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209849-20200405223406.patch</filename>
            <type>text/plain</type>
            <size>13047</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1OTU2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA0LTA1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmRyYXdJbWFnZSBzaG91bGQgaWdub3JlIHRoZSBFWElGIG9yaWVudGF0
aW9uIGlmIHRoZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBub25lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBkcmF3SW1hZ2UoKSB3aWxsIGdldCB0aGUgaW1hZ2Ut
b3JpZW50YXRpb24gb2YgdGhlIEhUTUxJbWFnZUVsZW1lbnQgZnJvbQorICAgICAgICBpdHMgY29t
cHV0ZWQgc3R5bGUuIFRoaXMgd2lsbCBiZSBwYXNzZWQgdG8gR3JhcGhpY3NDb250ZXh0OjpkcmF3
SW1hZ2UoKQorICAgICAgICBpbiB0aGUgSW1hZ2VQYWludGluZ09wdGlvbnMuIFByZXZpb3VzbHkg
d2Ugd2VyZSBwYXNzaW5nIEZyb21JbWFnZSBhbHdheXMuCisKKyAgICAgICAgVGVzdDogZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAorCisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2UpOgorICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaDoKKwogMjAyMC0wNC0w
NSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBD
b21wdXRlZCBzdHlsZSBmb3IgIm91dGxpbmUtb2Zmc2V0IiBpcyB3cm9uZyB3aGVuICJvdXRsaW5l
LXN0eWxlIiBpcyAibm9uZSIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwCShyZXZpc2lvbiAy
NTk1NjApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250
ZXh0MkRCYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2NCw3ICsxNDY0LDExIEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQKICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2l6ZShp
bWFnZUVsZW1lbnQsIEltYWdlU2l6ZVR5cGU6OkJlZm9yZURldmljZVBpeGVsUmF0aW8pKTsKIAot
ICAgIGF1dG8gcmVzdWx0ID0gZHJhd0ltYWdlKGltYWdlRWxlbWVudC5kb2N1bWVudCgpLCBpbWFn
ZUVsZW1lbnQuY2FjaGVkSW1hZ2UoKSwgaW1hZ2VFbGVtZW50LnJlbmRlcmVyKCksIGltYWdlUmVj
dCwgc3JjUmVjdCwgZHN0UmVjdCwgb3AsIGJsZW5kTW9kZSk7CisgICAgYXV0byBvcmllbnRhdGlv
biA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZTsKKyAgICBpZiAoYXV0byogY29tcHV0ZWRT
dHlsZSA9IGltYWdlRWxlbWVudC5jb21wdXRlZFN0eWxlKCkpCisgICAgICAgIG9yaWVudGF0aW9u
ID0gY29tcHV0ZWRTdHlsZS0+aW1hZ2VPcmllbnRhdGlvbigpOworCisgICAgYXV0byByZXN1bHQg
PSBkcmF3SW1hZ2UoaW1hZ2VFbGVtZW50LmRvY3VtZW50KCksIGltYWdlRWxlbWVudC5jYWNoZWRJ
bWFnZSgpLCBpbWFnZUVsZW1lbnQucmVuZGVyZXIoKSwgaW1hZ2VSZWN0LCBzcmNSZWN0LCBkc3RS
ZWN0LCBvcCwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbik7CiAKICAgICBpZiAoIXJlc3VsdC5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgY2hlY2tPcmlnaW4oJmltYWdlRWxlbWVudCk7CkBAIC0xNDg3
LDcgKzE0OTEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0CiB9
CiAjZW5kaWYKIAotRXhjZXB0aW9uT3I8dm9pZD4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZTo6ZHJhd0ltYWdlKERvY3VtZW50JiBkb2N1bWVudCwgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdl
LCBjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBGbG9hdFJlY3QmIGltYWdlUmVj
dCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNv
bnN0IENvbXBvc2l0ZU9wZXJhdG9yJiBvcCwgY29uc3QgQmxlbmRNb2RlJiBibGVuZE1vZGUpCitF
eGNlcHRpb25Pcjx2b2lkPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpkcmF3SW1hZ2Uo
RG9jdW1lbnQmIGRvY3VtZW50LCBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2UsIGNvbnN0IFJlbmRl
ck9iamVjdCogcmVuZGVyZXIsIGNvbnN0IEZsb2F0UmVjdCYgaW1hZ2VSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgQ29tcG9zaXRl
T3BlcmF0b3ImIG9wLCBjb25zdCBCbGVuZE1vZGUmIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlv
biBvcmllbnRhdGlvbikKIHsKICAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoZHN0UmVjdC54KCkpIHx8
ICFzdGQ6OmlzZmluaXRlKGRzdFJlY3QueSgpKSB8fCAhc3RkOjppc2Zpbml0ZShkc3RSZWN0Lndp
ZHRoKCkpIHx8ICFzdGQ6OmlzZmluaXRlKGRzdFJlY3QuaGVpZ2h0KCkpCiAgICAgICAgIHx8ICFz
dGQ6OmlzZmluaXRlKHNyY1JlY3QueCgpKSB8fCAhc3RkOjppc2Zpbml0ZShzcmNSZWN0LnkoKSkg
fHwgIXN0ZDo6aXNmaW5pdGUoc3JjUmVjdC53aWR0aCgpKSB8fCAhc3RkOjppc2Zpbml0ZShzcmNS
ZWN0LmhlaWdodCgpKSkKQEAgLTE1NDMsNyArMTU0Nyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IENh
bnZhc1JlbmRlcmluZ0NvbnRleHQKICAgICAgICAgZG93bmNhc3Q8Qml0bWFwSW1hZ2U+KCppbWFn
ZSkudXBkYXRlRnJvbVNldHRpbmdzKGRvY3VtZW50LnNldHRpbmdzKCkpOwogICAgIH0KIAotICAg
IEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMgPSB7IG9wLCBibGVuZE1vZGUsIEltYWdlT3Jp
ZW50YXRpb246OkZyb21JbWFnZSB9OworICAgIEltYWdlUGFpbnRpbmdPcHRpb25zIG9wdGlvbnMg
PSB7IG9wLCBibGVuZE1vZGUsIG9yaWVudGF0aW9uIH07CiAKICAgICBpZiAocmVjdENvbnRhaW5z
Q2FudmFzKG5vcm1hbGl6ZWREc3RSZWN0KSkgewogICAgICAgICBjLT5kcmF3SW1hZ2UoKmltYWdl
LCBub3JtYWxpemVkRHN0UmVjdCwgbm9ybWFsaXplZFNyY1JlY3QsIG9wdGlvbnMpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuaAkocmV2aXNpb24gMjU5NTYwKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMzMsNyArMzMzLDcgQEAgcHJvdGVjdGVkOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJ
bWFnZShIVE1MSW1hZ2VFbGVtZW50JiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIGRzdFJlY3QpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJbWFnZShIVE1M
SW1hZ2VFbGVtZW50JiwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IGRzdFJlY3QsIGNvbnN0IENvbXBvc2l0ZU9wZXJhdG9yJiwgY29uc3QgQmxlbmRNb2RlJik7CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gZHJhd0ltYWdlKENhbnZhc0Jhc2UmLCBjb25zdCBGbG9hdFJl
Y3QmIHNyY1JlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCk7Ci0gICAgRXhjZXB0aW9uT3I8
dm9pZD4gZHJhd0ltYWdlKERvY3VtZW50JiwgQ2FjaGVkSW1hZ2UqLCBjb25zdCBSZW5kZXJPYmpl
Y3QqLCBjb25zdCBGbG9hdFJlY3QmIGltYWdlUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0
LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IENvbXBvc2l0ZU9wZXJhdG9yJiwgY29u
c3QgQmxlbmRNb2RlJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gZHJhd0ltYWdlKERvY3VtZW50
JiwgQ2FjaGVkSW1hZ2UqLCBjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBGbG9hdFJlY3QmIGlt
YWdlUmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJl
Y3QsIGNvbnN0IENvbXBvc2l0ZU9wZXJhdG9yJiwgY29uc3QgQmxlbmRNb2RlJiwgSW1hZ2VPcmll
bnRhdGlvbiA9IEltYWdlT3JpZW50YXRpb246OkZyb21JbWFnZSk7CiAjaWYgRU5BQkxFKFZJREVP
KQogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRyYXdJbWFnZShIVE1MVmlkZW9FbGVtZW50JiwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QpOwogI2VuZGlm
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNTk1NjApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNC0wNSAgU2FpZCBBYm91LUhhbGxh
d2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5kcmF3SW1hZ2Ugc2hvdWxkIGlnbm9yZSB0aGUgRVhJRiBvcmllbnRhdGlvbiBpZiB0
aGUgaW1hZ2Utb3JpZW50YXRpb24gaXMgbm9uZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5ODQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1ub25lLWNh
bnZhcy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1v
cmllbnRhdGlvbi1ub25lLWNhbnZhcy5odG1sOiBBZGRlZC4KKwogMjAyMC0wNC0wNSAgQWxleGV5
IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgT2N0YWwgZXNjYXBl
cyBzaG91bGQgYmUgbWF4IDMgZGlnaXRzIGFuZCBzeW50YXggZXJyb3JzIGluIFVuaWNvZGUgcGF0
dGVybnMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5v
bmUtY2FudmFzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2Utb3JpZW50YXRpb24tbm9uZS1jYW52YXMtZXhwZWN0ZWQuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1ub25l
LWNhbnZhcy1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKyAgICBkaXYuY29udGFpbmVyIHsKKyAgICAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOworICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAg
IG1hcmdpbi1ib3R0b206IDEwcHg7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgdmVy
dGljYWwtYWxpZ246IHRvcDsKKyAgICB9CisgICAgZGl2LmJveCB7CisgICAgICAgIHdpZHRoOiAx
MDJweDsKKyAgICAgICAgaGVpZ2h0OiA1MnB4OworICAgIH0KKyAgICBjYW52YXMgeworICAgICAg
ICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
ICBoZWlnaHQ6IDUwcHg7CisgICAgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxiPkNhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5kcmF3SW1hZ2UoKSBzaG91bGQgaWdub3JlIHRoZSBpbWFnZSdzIEVY
SUYgb3JpZW50YXRpb24gaWYgaXRzIHN0eWxlIGltYWdlLW9yaWVudGF0aW9uIGlzIHNldCB0byAi
bm9uZSIuPC9iPgorICAgIDxicj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5l
ciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJib3giPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0i
Y2FudmFzMSI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+Tm9ybWFsCisg
ICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xh
c3MgPSJib3giPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMiI+PC9jYW52YXM+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+RmxpcHBlZCBob3Jpem9udGFsbHkKKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9ImJv
eCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXMzIj48L2NhbnZhcz4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDE4MCZkZWc7CisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJib3giPgorICAgICAg
ICAgICAgPGNhbnZhcyBpZD0iY2FudmFzNCI+PC9jYW52YXM+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8YnI+RmxpcHBlZCB2ZXJ0aWNhbGx5CisgICAgPC9kaXY+CisgICAgPGJyPgorICAgIDxk
aXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iYm94Ij4KKyAgICAg
ICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczUiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxseQorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
ID0iYm94Ij4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczYiPjwvY2FudmFzPgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDQ1cKKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9ImJveCI+
CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM3Ij48L2NhbnZhcz4KKyAgICAgICAgPC9k
aXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cgYW5kIGZsaXBwZWQgdmVydGljYWxs
eQorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzID0iYm94Ij4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczgiPjwvY2FudmFz
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPlJvdGF0ZWQgOTAmZGVnOyBDVworICAgIDwv
ZGl2PgorICAgIDxicj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRp
diBjbGFzcyA9ImJveCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM5Ij48L2NhbnZh
cz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5VbmRlZmluZWQgKGludmFsaWQgdmFsdWUp
CisgICAgPC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciBpbWFnZSA9
IG5ldyBJbWFnZTsKKyAgICAgICAgICAgIGltYWdlLnNyYyA9ICJyZXNvdXJjZXMvZXhpZi1vcmll
bnRhdGlvbi0xLXVsLmpwZyI7CisgICAgICAgICAgICBpbWFnZS5kZWNvZGUoKS50aGVuKCgpID0+
IHsKKyAgICAgICAgICAgICAgICBsZXQgY2FudmFzZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCJjYW52YXMiKTsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNhbnZhcyBvZiBjYW52
YXNlcykgeworICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSBjYW52YXMub2Zmc2V0
V2lkdGggLSAyOworICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gY2FudmFzLm9m
ZnNldEhlaWdodCAtIDI7CisgICAgICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gY2FudmFz
LmdldENvbnRleHQoIjJkIik7CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdl
KGltYWdlLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2ltYWdlcy9pbWFnZS1vcmllbnRhdGlvbi1ub25lLWNhbnZhcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLW9yaWVudGF0aW9uLW5vbmUtY2FudmFz
Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Utb3Jp
ZW50YXRpb24tbm9uZS1jYW52YXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExOSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisgICAgZGl2LmNvbnRhaW5lciB7CisgICAgICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworICAg
ICAgICBtYXJnaW4tYm90dG9tOiAxMHB4OworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAg
IHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgfQorICAgIGRpdi5ib3ggeworICAgICAgICB3aWR0
aDogMTAycHg7CisgICAgICAgIGhlaWdodDogNTJweDsKKyAgICB9CisgICAgY2FudmFzIHsKKyAg
ICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgaGVpZ2h0OiA1MHB4OworICAgIH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8Yj5DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuZHJhd0ltYWdlKCkgc2hvdWxkIGlnbm9yZSB0aGUgaW1hZ2Un
cyBFWElGIG9yaWVudGF0aW9uIGlmIGl0cyBzdHlsZSBpbWFnZS1vcmllbnRhdGlvbiBpcyBzZXQg
dG8gIm5vbmUiLjwvYj4KKyAgICA8YnI+CisgICAgPGJyPgorICAgIDxkaXYgY2xhc3MgPSJjb250
YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iYm94Ij4KKyAgICAgICAgICAgIDxjYW52YXMg
aWQ9ImNhbnZhczEiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPk5vcm1h
bAorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzID0iYm94Ij4KKyAgICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczIiPjwvY2FudmFz
PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPGJyPkZsaXBwZWQgaG9yaXpvbnRhbGx5CisgICAg
PC9kaXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3Mg
PSJib3giPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzMyI+PC9jYW52YXM+CisgICAg
ICAgIDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCAxODAmZGVnOworICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3MgPSJjb250YWluZXIiPgorICAgICAgICA8ZGl2IGNsYXNzID0iYm94Ij4KKyAg
ICAgICAgICAgIDxjYW52YXMgaWQ9ImNhbnZhczQiPjwvY2FudmFzPgorICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPGJyPkZsaXBwZWQgdmVydGljYWxseQorICAgIDwvZGl2PgorICAgIDxicj4KKyAg
ICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcyA9ImJveCI+Cisg
ICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM1Ij48L2NhbnZhcz4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXIGFuZCBmbGlwcGVkIHZlcnRpY2FsbHkK
KyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcyA9ImJveCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM2Ij48L2NhbnZhcz4K
KyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ0NXCisgICAgPC9k
aXY+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3MgPSJi
b3giPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzNyI+PC9jYW52YXM+CisgICAgICAg
IDwvZGl2PgorICAgICAgICA8YnI+Um90YXRlZCA5MCZkZWc7IENXIGFuZCBmbGlwcGVkIHZlcnRp
Y2FsbHkKKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzID0iY29udGFpbmVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcyA9ImJveCI+CisgICAgICAgICAgICA8Y2FudmFzIGlkPSJjYW52YXM4Ij48L2Nh
bnZhcz4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxicj5Sb3RhdGVkIDkwJmRlZzsgQ1cKKyAg
ICA8L2Rpdj4KKyAgICA8YnI+CisgICAgPGRpdiBjbGFzcyA9ImNvbnRhaW5lciI+CisgICAgICAg
IDxkaXYgY2xhc3MgPSJib3giPgorICAgICAgICAgICAgPGNhbnZhcyBpZD0iY2FudmFzOSI+PC9j
YW52YXM+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8YnI+VW5kZWZpbmVkIChpbnZhbGlkIHZh
bHVlKQorICAgIDwvZGl2PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKwor
ICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgbmFt
ZXMgPSBbCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVu
dGF0aW9uLTEtdWwuanBnIiwgIGlkIDogImNhbnZhczEiIH0sCisgICAgICAgICAgICAgICAgeyBy
ZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTItdXIuanBnIiwgIGlkIDogImNh
bnZhczIiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9y
aWVudGF0aW9uLTMtbHIuanBnIiwgIGlkIDogImNhbnZhczMiIH0sCisgICAgICAgICAgICAgICAg
eyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTQtbG9sLmpwZyIsIGlkIDog
ImNhbnZhczQiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlm
LW9yaWVudGF0aW9uLTUtbHUuanBnIiwgIGlkIDogImNhbnZhczUiIH0sCisgICAgICAgICAgICAg
ICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTYtcnUuanBnIiwgIGlk
IDogImNhbnZhczYiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9l
eGlmLW9yaWVudGF0aW9uLTctcmwuanBnIiwgIGlkIDogImNhbnZhczciIH0sCisgICAgICAgICAg
ICAgICAgeyByZXNvdXJjZTogInJlc291cmNlcy9leGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyIs
IGlkIDogImNhbnZhczgiIH0sCisgICAgICAgICAgICAgICAgeyByZXNvdXJjZTogInJlc291cmNl
cy9leGlmLW9yaWVudGF0aW9uLTktdS5qcGciLCAgIGlkIDogImNhbnZhczkiIH0KKyAgICAgICAg
ICAgIF07CisKKyAgICAgICAgICAgIHZhciBkcmF3Q291bnQgPSAwOworCisgICAgICAgICAgICBu
YW1lcy5mb3JFYWNoKGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgICAgICAgICAgICB2YXIgaW1hZ2Ug
PSBuZXcgSW1hZ2U7CisgICAgICAgICAgICAgICAgaW1hZ2Uuc3R5bGUuaW1hZ2VPcmllbnRhdGlv
biA9ICJub25lIjsKKyAgICAgICAgICAgICAgICBpbWFnZS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUi
OworICAgICAgICAgICAgICAgIGltYWdlLnNyYyA9IG5hbWUucmVzb3VyY2U7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWFnZSk7CisgICAgICAgICAgICAgICAg
aW1hZ2UuZGVjb2RlKCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCBjYW52
YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChuYW1lLmlkKTsKKyAgICAgICAgICAgICAgICAg
ICAgY2FudmFzLndpZHRoID0gY2FudmFzLm9mZnNldFdpZHRoIC0gMjsKKyAgICAgICAgICAgICAg
ICAgICAgY2FudmFzLmhlaWdodCA9IGNhbnZhcy5vZmZzZXRIZWlnaHQgLSAyOworICAgICAgICAg
ICAgICAgICAgICBsZXQgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIpOworICAgICAg
ICAgICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgY2FudmFzLndpZHRo
LCBjYW52YXMuaGVpZ2h0KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCsrZHJhd0NvdW50ID09
IG5hbWVzLmxlbmd0aCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>