<?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>211506</bug_id>
          
          <creation_ts>2020-05-06 05:51:05 -0700</creation_ts>
          <short_desc>[WebXR] Implement WebGLRenderingContextBase::makeXRCompatible()</short_desc>
          <delta_ts>2020-05-14 00:46:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>208988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rniwa</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1649556</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-06 05:51:05 -0700</bug_when>
    <thetext>[WebXR] Implement WebGLRenderingContextBase::makeXRCompatible()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649624</commentid>
    <comment_count>1</comment_count>
      <attachid>398619</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-06 08:29:36 -0700</bug_when>
    <thetext>Created attachment 398619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649652</commentid>
    <comment_count>2</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-06 09:24:04 -0700</bug_when>
    <thetext>Amazingly the generated JSWebGLRenderingContext.cpp does not have the ENABLE(WEBXR) for the makeXRCompatible() call. I&apos;ll research a bit but it looks like a code generation bug...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649682</commentid>
    <comment_count>3</comment_count>
      <attachid>398619</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-06 10:15:53 -0700</bug_when>
    <thetext>Comment on attachment 398619
Patch

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

&gt; Source/WebCore/Modules/webxr/WebXRSystem.h:34
&gt; +#include &quot;WebGLContextAttributes.h&quot;

Can we forward declare instead of adding this include?

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:3487
&gt; +    auto rejectPromiseWithInvalidStateError = [&amp;] () {

You can use ScopeExit instead to return without even calling the lambda.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.idl:606
&gt; +    [NewObject, Conditional=WEBXR] Promise&lt;void&gt; makeXRCompatible();

This should work, maybe put Conditional first in the list as this is what we usually do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649720</commentid>
    <comment_count>4</comment_count>
      <attachid>398619</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-06 11:38:39 -0700</bug_when>
    <thetext>Comment on attachment 398619
Patch

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

&gt;&gt; Source/WebCore/Modules/webxr/WebXRSystem.h:34
&gt;&gt; +#include &quot;WebGLContextAttributes.h&quot;
&gt; 
&gt; Can we forward declare instead of adding this include?

Ah it&apos;s a rvalue, then I guess we can do it indeed.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:3487
&gt;&gt; +    auto rejectPromiseWithInvalidStateError = [&amp;] () {
&gt; 
&gt; You can use ScopeExit instead to return without even calling the lambda.

I&apos;ll change it.

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.idl:606
&gt;&gt; +    [NewObject, Conditional=WEBXR] Promise&lt;void&gt; makeXRCompatible();
&gt; 
&gt; This should work, maybe put Conditional first in the list as this is what we usually do.

Yeah, I&apos;ve already tried that. I&apos;ve also tried with other interfaces that are also inherited just in case and everything works as expected. But it seems that nothing works in this particular file...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650067</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-07 06:37:44 -0700</bug_when>
    <thetext>It seems like it&apos;s a bug in the code generator. See https://bugs.webkit.org/show_bug.cgi?id=211528</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650073</commentid>
    <comment_count>6</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-07 06:46:54 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #4)
&gt; Comment on attachment 398619 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=398619&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/Modules/webxr/WebXRSystem.h:34
&gt; &gt;&gt; +#include &quot;WebGLContextAttributes.h&quot;
&gt; &gt; 
&gt; &gt; Can we forward declare instead of adding this include?
&gt; 
&gt; Ah it&apos;s a rvalue, then I guess we can do it indeed.

Now that I remember, I used include because that header defines an using for the struct, so unless we want to use the name defined in platform/ we should use the include instead of forward declaring it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650228</commentid>
    <comment_count>7</comment_count>
      <attachid>398765</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-07 11:10:04 -0700</bug_when>
    <thetext>Created attachment 398765
Patch

Use ScopeExit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651007</commentid>
    <comment_count>8</comment_count>
      <attachid>398765</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-09 17:09:47 -0700</bug_when>
    <thetext>Comment on attachment 398765
Patch

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:3526
&gt; +    if (m_isXRCompatible)
&gt; +        promise.resolve();
&gt; +
&gt; +    // If context was created on a compatible graphics adapter for the immersive XR device
&gt; +    //  Set contextâs XR compatible boolean to true and resolve promise.
&gt; +    // Otherwise: Queue a task on the WebGL task source to perform the following steps:
&gt; +    // TODO: add a way to verify that we&apos;re using a compatible graphics adapter.
&gt; +    m_isXRCompatible = true;
&gt; +    promise.resolve();

This looks strange. Is it correct to resolve the promise twice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651088</commentid>
    <comment_count>9</comment_count>
      <attachid>398765</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-10 09:29:05 -0700</bug_when>
    <thetext>Comment on attachment 398765
Patch

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

&gt;&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:3526
&gt;&gt; +    promise.resolve();
&gt; 
&gt; This looks strange. Is it correct to resolve the promise twice?

Oh, I somehow skipped an early return in the previous if block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651239</commentid>
    <comment_count>10</comment_count>
      <attachid>399011</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-11 04:28:07 -0700</bug_when>
    <thetext>Created attachment 399011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651685</commentid>
    <comment_count>11</comment_count>
      <attachid>399011</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-12 04:37:33 -0700</bug_when>
    <thetext>Comment on attachment 399011
Patch

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

&gt; Source/WebCore/Modules/webxr/WebXRSystem.h:50
&gt; +    friend WebGLRenderingContextBase* HTMLCanvasElement::createContextWebGL(const String&amp;, WebGLContextAttributes&amp;&amp;);

Can we do without these two?
It seems we need to add a getter and make public one method.

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:430
&gt; +            Navigator&amp; navigator = window-&gt;navigator();

auto or inline the call.

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:431
&gt; +            NavigatorWebXR::from(navigator).xr(*canvasBaseScriptExecutionContext(), navigator).ensureImmersiveXRDeviceIsSelected();

We could also use scriptExecutionContext() which is shorter.
But can we try to not passing the scriptExecutionContext at all and use the one of the navigator?

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:443
&gt; +        // as this is handled automatically inside WebGLRenderingContextBase constructor.

Should we add an ASSERT instead of this comment?

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:119
&gt; +#if ENABLE(WEBXR)

Not needed.

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:3517
&gt; +    if (!xrSystem.m_activeImmersiveDevice)

A getter would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651718</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-12 07:05:13 -0700</bug_when>
    <thetext>Gentle ping for reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652153</commentid>
    <comment_count>13</comment_count>
      <attachid>399249</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-13 01:36:25 -0700</bug_when>
    <thetext>Created attachment 399249
Patch

Applied suggested changes. Also simplified the usage of NavigatorWebXR</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652539</commentid>
    <comment_count>14</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-05-14 00:45:24 -0700</bug_when>
    <thetext>Committed r261679: &lt;https://trac.webkit.org/changeset/261679&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652540</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-14 00:46:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/63218353&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398619</attachid>
            <date>2020-05-06 08:29:36 -0700</date>
            <delta_ts>2020-05-07 11:09:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211506-20200506172933.patch</filename>
            <type>text/plain</type>
            <size>11782</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4NmFjMzYwZDg5NDFh
YjYwMWMyNzVjNTEyMDg3NzFhMWViYzg5Yi4uOGNmM2Q0MGRjN2Y3OGNhMGE3Y2Q5NWQwZTY1ODZl
Y2MxZjAxMTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA1LTA2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SW1wbGVtZW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1ha2VYUkNvbXBhdGlibGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNTA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFdlYlhS
IHNwZWMgZGVmaW5lcyBhIHdheSB0byBtYXJrIGEgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGFzCisg
ICAgICAgIGNvbXBhdGlibGUgd2l0aCBXZWJYUi4gVGhpcyBjYW4gYmUgbWFkZSBhdCBjcmVhdGlv
biB0aW1lIChieSBzZXR0aW5nIHRoZQorICAgICAgICB4ckNvbXBhdGlibGUpIGF0dHJpYnV0ZSBv
ciBieSBjYWxsaW5nIG1ha2VYUkNvbXBhdGlibGUoKS4KKworICAgICAgICBUaGVyZSBhcmUgc2V2
ZXJhbCB3ZWItcGxhdGZvcm0tdGVzdHMgdGVzdGluZy91c2luZyB0aGlzIGZlYXR1cmUsIGhvd2V2
ZXIgd2UKKyAgICAgICAgY2Fubm90IGVuYWJsZSB0aGVtIHJpZ2h0IG5vdyBhcyB3ZSBuZWVkIHNv
bWUgb3RoZXIgZmVhdHVyZXMgdG8gYmUgaW1wbGVtZW50ZWQKKyAgICAgICAgZmlyc3QuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmg6IEFkZGVkIG1ha2VYUkNvbXBhdGli
bGUgYXMgZnJpZW5kIG1ldGhvZC4KKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2Vi
R0wpOiBjYWxsCisgICAgICAgIGVuc3VyZUltbWVyc2l2ZVhSRGV2aWNlSXNTZWxlY3RlZCgpIGlz
IHhyQ29tcGF0aWJsZSBpcyBzZXQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
QXR0cmlidXRlcy5pZGw6IEFkZGVkIHhyQ29tcGF0aWJsZS4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UpOgorICAgICAg
ICBJbml0aWFsaXplIG1faXNYUkNvbXBhdGlibGUuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjptYWtlWFJDb21wYXRpYmxlKTogSW1wbGVtZW50ZWQuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOiBEZWZpbmVkIG1h
a2VYUkNvbXBhdGlibGUoKS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmlkbDogQWRkZWQgbWFrZVhSQ29tcGF0aWJsZSgpLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oOiBBZGRlZCB4ckNvbXBh
dGlibGUuCisKIDIwMjAtMDQtMjkgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBJbXBsZW1lbnQgaXNTZXNzaW9uU3VwcG9ydGVkKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaAppbmRleCBkODI0N2U3
MDY2NGZlNmM2NzNjMmU5MmYzNmY3YjRiMTA1ZjI1MzU5Li41NTc5YWMzMTRkNDA4NTNjNDhhNWRl
Y2E4MzMzNDU3ZjQwMDJlOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UlN5c3RlbS5oCkBAIC0yOSw3ICsyOSwxMCBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0
LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiV2ViR0xD
b250ZXh0QXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
aCIKICNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00Myw2ICs0Niw4IEBAIHN0cnVjdCBY
UlNlc3Npb25Jbml0OwogCiBjbGFzcyBXZWJYUlN5c3RlbSBmaW5hbCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFdlYlhSU3lzdGVtPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1Ymxp
YyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJYUlN5c3RlbT4gewog
ICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViWFJTeXN0ZW0pOworICAgIGZyaWVuZCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1ha2VYUkNvbXBhdGlibGUoTWFrZVhSQ29tcGF0
aWJsZVByb21pc2UmJik7CisgICAgZnJpZW5kIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0woY29uc3QgU3RyaW5nJiwgV2ViR0xD
b250ZXh0QXR0cmlidXRlcyYmKTsKIHB1YmxpYzoKICAgICB1c2luZyBJc1Nlc3Npb25TdXBwb3J0
ZWRQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+OwogICAgIHVzaW5nIFJl
cXVlc3RTZXNzaW9uUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8V2Vi
WFJTZXNzaW9uPj47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmlu
ZGV4IDBkYjUyNjhhZGVkZTBiZGYxMDU0MDE0ZTQ5MTdiNDM5YjgyOGUwZjMuLjkwNjU5YzM1Zjlk
ZTlhYjBhMmE0NWY0YjE0Zjc1Y2M4NGM2ZjRjMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCkBAIC04MCw2ICs4MCwxMyBAQAogI2luY2x1ZGUgIkdQVUNhbnZh
c0NvbnRleHQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQlhSKQorI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2luY2x1ZGUgIk5hdmlnYXRvcldlYlhS
LmgiCisjaW5jbHVkZSAiV2ViWFJTeXN0ZW0uaCIKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAjaW5jbHVkZSAiTWVkaWFTYW1wbGVBVkZPYmpDLmgiCiAjaW5jbHVkZSA8cGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmg+CkBAIC00MTYsMTAgKzQyMywyNCBAQCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdMKGNvbnN0IFN0
cmluZyYgdAogICAgIGlmICghc2hvdWxkRW5hYmxlV2ViR0woZG9jdW1lbnQoKS5zZXR0aW5ncygp
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgLy8g
aHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jeHItY29tcGF0aWJsZQorICAg
IGlmIChhdHRycy54ckNvbXBhdGlibGUpIHsKKyAgICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRv
Y3VtZW50KCkuZG9tV2luZG93KCkpIHsKKyAgICAgICAgICAgIE5hdmlnYXRvciYgbmF2aWdhdG9y
ID0gd2luZG93LT5uYXZpZ2F0b3IoKTsKKyAgICAgICAgICAgIE5hdmlnYXRvcldlYlhSOjpmcm9t
KG5hdmlnYXRvcikueHIoKmNhbnZhc0Jhc2VTY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG5hdmln
YXRvcikuZW5zdXJlSW1tZXJzaXZlWFJEZXZpY2VJc1NlbGVjdGVkKCk7CisgICAgICAgIH0KKyAg
ICB9CisjZW5kaWYKKworICAgIC8vIFRPRE8oV0VCWFIpOiBlbnN1cmUgdGhlIGNvbnRleHQgaXMg
Y3JlYXRlZCBpbiBhIGNvbXBhdGlibGUgZ3JhcGhpY3MKKyAgICAvLyBhZGFwdGVyIHdoZW4gdGhl
cmUgaXMgYW4gYWN0aXZlIGltbWVyc2l2ZSBkZXZpY2UuCiAgICAgbV9jb250ZXh0ID0gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0aGlzLCBhdHRycywgdHlwZSk7CiAgICAgaWYg
KG1fY29udGV4dCkgewogICAgICAgICAvLyBOZWVkIHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVy
IGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3JlYXRlZCBmb3IgdGhlIENhbnZhcy4KICAgICAg
ICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpOworICAgICAgICAvLyBObyBu
ZWVkIHRvIG1hcmsgdGhlIGNvbnRleHQgYXMgeHJDb21wYXRpYmxlIGZvciBXZWJYUiBpZiBhdHRy
cy54ckNvbXBhdGlibGUsCisgICAgICAgIC8vIGFzIHRoaXMgaXMgaGFuZGxlZCBhdXRvbWF0aWNh
bGx5IGluc2lkZSBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlIGNvbnN0cnVjdG9yLgogICAgIH0K
IAogICAgIHJldHVybiBkb3duY2FzdDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPihtX2NvbnRl
eHQuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xD
b250ZXh0QXR0cmlidXRlcy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmlkbAppbmRleCAzYmU1YWM1OTkwYjJlMTFiZDBhMjk0ODA4MGY3MTc5
ZTdkMDEzMWM5Li4zOTAyYmFlYmZkZjNmOGRiMmMxZWU3ODY1MDY3NTE0NGZiOWY5MGViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmlkbApAQCAtNDUsNCArNDUsNSBAQCBlbnVtIFdlYkdMUG93ZXJQcmVmZXJlbmNlIHsKICAg
ICBHTGJvb2xlYW4gcHJlc2VydmVEcmF3aW5nQnVmZmVyID0gZmFsc2U7CiAgICAgV2ViR0xQb3dl
clByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlID0gImRlZmF1bHQiOwogICAgIEdMYm9vbGVhbiBm
YWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0ID0gZmFsc2U7CisgICAgW0NvbmRpdGlvbmFsPVdF
QlhSXSBib29sZWFuIHhyQ29tcGF0aWJsZSA9IGZhbHNlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5k
ZXggMjA3ZjZiMWE5YTVjZmJhYWQ1NmYxMzMzOGY2ZTgyYjdiYmY4NmY1MS4uMWMxNTc0OGM2M2Y5
ZWIwYzI3NjdlYWExOWE3ODhlODUyMjIyNzc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKQEAgLTExNSw2
ICsxMTUsMTEgQEAKICNpbmNsdWRlICJPZmZzY3JlZW5DYW52YXMuaCIKICNlbmRpZgogCisjaWYg
RU5BQkxFKFdFQlhSKQorI2luY2x1ZGUgIk5hdmlnYXRvcldlYlhSLmgiCisjaW5jbHVkZSAiV2Vi
WFJTeXN0ZW0uaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKTsKQEAgLTczNyw2ICs3
NDIsOSBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlKENhbnZhc0Jhc2UmIGNhbnZhcywgV2ViR0xDbwogICAgICwgbV9udW1HTEVycm9yc1RvQ29u
c29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRp
bmdQb2xpY3lSZXNvbHV0aW9uKHRydWUpCiAgICAgLCBtX2NoZWNrRm9yQ29udGV4dExvc3NIYW5k
bGluZ1RpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tGb3JDb250
ZXh0TG9zc0hhbmRsaW5nKQorI2lmIEVOQUJMRShXRUJYUikKKyAgICAsIG1faXNYUkNvbXBhdGli
bGUoYXR0cmlidXRlcy54ckNvbXBhdGlibGUpCisjZW5kaWYKIHsKICAgICBtX3Jlc3RvcmVUaW1l
ci5zdXNwZW5kSWZOZWVkZWQoKTsKIApAQCAtNzUyLDYgKzc2MCw5IEBAIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFz
LCBSZWY8R3JhCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKICAgICAsIG1fbnVtR0xF
cnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAs
IG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpjaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmcpCisjaWYgRU5BQkxFKFdF
QlhSKQorICAgICwgbV9pc1hSQ29tcGF0aWJsZShhdHRyaWJ1dGVzLnhyQ29tcGF0aWJsZSkKKyNl
bmRpZgogewogICAgIG1fcmVzdG9yZVRpbWVyLnN1c3BlbmRJZk5lZWRlZCgpOwogCkBAIC0zNDY5
LDYgKzM0ODAsNjAgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpsaW5rUHJvZ3Jh
bVdpdGhvdXRJbnZhbGlkYXRpbmdBdHRyaWJMb2NhdGlvbnMoV2UKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorI2lmIEVOQUJMRShXRUJYUikKKy8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIu
aW8vd2VieHIvI2RvbS13ZWJnbHJlbmRlcmluZ2NvbnRleHRiYXNlLW1ha2V4cmNvbXBhdGlibGUK
K3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWFrZVhSQ29tcGF0aWJsZShNYWtlWFJD
b21wYXRpYmxlUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgYXV0byByZWplY3RQcm9taXNlV2l0
aEludmFsaWRTdGF0ZUVycm9yID0gWyZdICgpIHsKKyAgICAgICAgbV9pc1hSQ29tcGF0aWJsZSA9
IGZhbHNlOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9KTsKKyAgICB9OworCisgICAgLy8gVGhlc2UgdHdvIGNoZWNrcyBhcmUgbm90IHBhcnQg
b2YgdGhlIHNwZWMuCisgICAgYXV0byBjYW52YXMgPSBodG1sQ2FudmFzKCk7CisgICAgaWYgKCFj
YW52YXMpIHsKKyAgICAgICAgcmVqZWN0UHJvbWlzZVdpdGhJbnZhbGlkU3RhdGVFcnJvcigpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byogd2luZG93ID0gY2FudmFzLT5kb2N1
bWVudCgpLmRvbVdpbmRvdygpOworICAgIGlmICghd2luZG93KSB7CisgICAgICAgIHJlamVjdFBy
b21pc2VXaXRoSW52YWxpZFN0YXRlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEgbmV3IFByb21pc2UuCisgICAgLy8gMi4gTGV0IGNv
bnRleHQgYmUgdGhlIHRhcmdldCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlIG9iamVjdC4KKyAg
ICAvLyAzLiBFbnN1cmUgYW4gaW1tZXJzaXZlIFhSIGRldmljZSBpcyBzZWxlY3RlZC4KKyAgICBO
YXZpZ2F0b3ImIG5hdmlnYXRvciA9IHdpbmRvdy0+bmF2aWdhdG9yKCk7CisgICAgV2ViWFJTeXN0
ZW0mIHhyU3lzdGVtID0gTmF2aWdhdG9yV2ViWFI6OmZyb20obmF2aWdhdG9yKS54cigqc3RhdGlj
X2Nhc3Q8Q2FudmFzQmFzZSo+KGNhbnZhcyktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbmF2
aWdhdG9yKTsKKyAgICB4clN5c3RlbS5lbnN1cmVJbW1lcnNpdmVYUkRldmljZUlzU2VsZWN0ZWQo
KTsKKworICAgIC8vIDQuIFNldCBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gYXMg
Zm9sbG93czoKKyAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKSB7CisgICAgICAgIHJl
amVjdFByb21pc2VXaXRoSW52YWxpZFN0YXRlRXJyb3IoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIElmIHRoZSBpbW1lcnNpdmUgWFIgZGV2aWNlIGlzIG51bGwKKyAgICAvLyAg
ICBTZXQgY29udGV4dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIHRvIGZhbHNlIGFuZCByZWpl
Y3QgcHJvbWlzZSB3aXRoIGFuIEludmFsaWRTdGF0ZUVycm9yLgorICAgIGlmICgheHJTeXN0ZW0u
bV9hY3RpdmVJbW1lcnNpdmVEZXZpY2UpIHsKKyAgICAgICAgcmVqZWN0UHJvbWlzZVdpdGhJbnZh
bGlkU3RhdGVFcnJvcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1faXNY
UkNvbXBhdGlibGUpCisgICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworCisgICAgLy8gSWYgY29u
dGV4dCB3YXMgY3JlYXRlZCBvbiBhIGNvbXBhdGlibGUgZ3JhcGhpY3MgYWRhcHRlciBmb3IgdGhl
IGltbWVyc2l2ZSBYUiBkZXZpY2UKKyAgICAvLyAgU2V0IGNvbnRleHTigJlzIFhSIGNvbXBhdGli
bGUgYm9vbGVhbiB0byB0cnVlIGFuZCByZXNvbHZlIHByb21pc2UuCisgICAgLy8gT3RoZXJ3aXNl
OiBRdWV1ZSBhIHRhc2sgb24gdGhlIFdlYkdMIHRhc2sgc291cmNlIHRvIHBlcmZvcm0gdGhlIGZv
bGxvd2luZyBzdGVwczoKKyAgICAvLyBUT0RPOiBhZGQgYSB3YXkgdG8gdmVyaWZ5IHRoYXQgd2Un
cmUgdXNpbmcgYSBjb21wYXRpYmxlIGdyYXBoaWNzIGFkYXB0ZXIuCisgICAgbV9pc1hSQ29tcGF0
aWJsZSA9IHRydWU7CisgICAgcHJvbWlzZS5yZXNvbHZlKCk7Cit9CisjZW5kaWYKKwogdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwaXhlbFN0b3JlaShHQ0dMZW51bSBwbmFtZSwgR0NH
TGludCBwYXJhbSkKIHsKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oCmluZGV4IGQ2NDViOWM5NmYwNGM2M2QyZDkxY2ZjMjAwYmRjM2EwZGRiOGY2YzMuLmYyMzBj
MDliNTQ3OTk4M2NlOWE2YWJjZTBlNTVhYTY1MzI5YjVhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTUy
LDYgKzUyLDEwIEBACiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdC5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoV0VCWFIpCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFOR0xFSW5zdGFuY2VkQXJy
YXlzOwpAQCAtMjMwLDYgKzIzNCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBsaW5rUHJvZ3JhbShX
ZWJHTFByb2dyYW0qKTsKICAgICBib29sIGxpbmtQcm9ncmFtV2l0aG91dEludmFsaWRhdGluZ0F0
dHJpYkxvY2F0aW9ucyhXZWJHTFByb2dyYW0qKTsKICAgICB2aXJ0dWFsIHZvaWQgcGl4ZWxTdG9y
ZWkoR0NHTGVudW0gcG5hbWUsIEdDR0xpbnQgcGFyYW0pOworI2lmIEVOQUJMRShXRUJYUikKKyAg
ICB1c2luZyBNYWtlWFJDb21wYXRpYmxlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PjsKKyAgICB2b2lkIG1ha2VYUkNvbXBhdGlibGUoTWFrZVhSQ29tcGF0aWJsZVByb21pc2UmJik7
CisjZW5kaWYKICAgICB2b2lkIHBvbHlnb25PZmZzZXQoR0NHTGZsb2F0IGZhY3RvciwgR0NHTGZs
b2F0IHVuaXRzKTsKICAgICB2b2lkIHJlYWRQaXhlbHMoR0NHTGludCB4LCBHQ0dMaW50IHksIEdD
R0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51
bSB0eXBlLCBBcnJheUJ1ZmZlclZpZXcmIHBpeGVscyk7CiAgICAgdm9pZCByZWxlYXNlU2hhZGVy
Q29tcGlsZXIoKTsKQEAgLTEwMjIsNiArMTAzMCwxMCBAQCBwcml2YXRlOgogICAgIFdlYkdMU3Rh
dGVUcmFja2VyOjpUb2tlbiBtX3RyYWNrZXJUb2tlbjsKICAgICBUaW1lciBtX2NoZWNrRm9yQ29u
dGV4dExvc3NIYW5kbGluZ1RpbWVyOwogICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgYm9vbCBtX2lzWFJDb21wYXRpYmxlIHsgZmFsc2Ug
fTsKKyNlbmRpZgogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaWRsCmlu
ZGV4IDQ1YTdiMzhhYzUyMTZiYzc3OWFmYzNmNGI5ZDRjYjRkOGFjOWExNzQuLjY2MmIzMzBlZWZl
ZTRkMDhhM2VjOGEyMGRiZThjMGQwZTM4Mjg2OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaWRsCkBAIC02MDIs
NiArNjAyLDkgQEAgdHlwZWRlZiAoSFRNTENhbnZhc0VsZW1lbnQpIFdlYkdMQ2FudmFzOwogICAg
IEdMYm9vbGVhbiBpc1RleHR1cmUoV2ViR0xUZXh0dXJlPyB0ZXh0dXJlKTsKICAgICB2b2lkIGxp
bmVXaWR0aChHTGZsb2F0IHdpZHRoKTsKICAgICB2b2lkIGxpbmtQcm9ncmFtKFdlYkdMUHJvZ3Jh
bT8gcHJvZ3JhbSk7CisKKyAgICBbTmV3T2JqZWN0LCBDb25kaXRpb25hbD1XRUJYUl0gUHJvbWlz
ZTx2b2lkPiBtYWtlWFJDb21wYXRpYmxlKCk7CisKICAgICB2b2lkIHBpeGVsU3RvcmVpKEdMZW51
bSBwbmFtZSwgR0xpbnQgcGFyYW0pOwogICAgIHZvaWQgcG9seWdvbk9mZnNldChHTGZsb2F0IGZh
Y3RvciwgR0xmbG9hdCB1bml0cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmgKaW5kZXgg
ODg0MWE0NWY2YTA0MWRiNGJiMTliZDdlZTJlNTc0MDE4YjYwMmE3Yi4uNWNjYTFkYTIwZTY5Njdk
Y2Y2ZWFiZTBkNTE2YzJmODA4ZGUyMzk0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzLmgK
QEAgLTUzLDYgKzUzLDkgQEAgc3RydWN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7CiAg
ICAgYm9vbCBub0V4dGVuc2lvbnMgeyBmYWxzZSB9OwogICAgIGZsb2F0IGRldmljZVBpeGVsUmF0
aW8geyAxIH07CiAgICAgUG93ZXJQcmVmZXJlbmNlIGluaXRpYWxQb3dlclByZWZlcmVuY2UgeyBQ
b3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgYm9vbCB4
ckNvbXBhdGlibGUgeyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398765</attachid>
            <date>2020-05-07 11:10:04 -0700</date>
            <delta_ts>2020-05-11 04:28:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211506-20200507201002.patch</filename>
            <type>text/plain</type>
            <size>11877</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU3YmVmNjEzYzkxYWVm
NDk3MjViNWI2ZmU0YzIwMjZjMjBiMjZlNy4uYmZhMzNlMmFhMTIyNjllODc1NWQ4Zjc3NmUyYTkz
YzcwYjQzODIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA1LTA2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SW1wbGVtZW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1ha2VYUkNvbXBhdGlibGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNTA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFdlYlhS
IHNwZWMgZGVmaW5lcyBhIHdheSB0byBtYXJrIGEgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGFzCisg
ICAgICAgIGNvbXBhdGlibGUgd2l0aCBXZWJYUi4gVGhpcyBjYW4gYmUgbWFkZSBhdCBjcmVhdGlv
biB0aW1lIChieSBzZXR0aW5nIHRoZQorICAgICAgICB4ckNvbXBhdGlibGUpIGF0dHJpYnV0ZSBv
ciBieSBjYWxsaW5nIG1ha2VYUkNvbXBhdGlibGUoKS4KKworICAgICAgICBUaGVyZSBhcmUgc2V2
ZXJhbCB3ZWItcGxhdGZvcm0tdGVzdHMgdGVzdGluZy91c2luZyB0aGlzIGZlYXR1cmUsIGhvd2V2
ZXIgd2UKKyAgICAgICAgY2Fubm90IGVuYWJsZSB0aGVtIHJpZ2h0IG5vdyBhcyB3ZSBuZWVkIHNv
bWUgb3RoZXIgZmVhdHVyZXMgdG8gYmUgaW1wbGVtZW50ZWQKKyAgICAgICAgZmlyc3QuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmg6IEFkZGVkIG1ha2VYUkNvbXBhdGli
bGUgYXMgZnJpZW5kIG1ldGhvZC4KKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2Vi
R0wpOiBjYWxsCisgICAgICAgIGVuc3VyZUltbWVyc2l2ZVhSRGV2aWNlSXNTZWxlY3RlZCgpIGlz
IHhyQ29tcGF0aWJsZSBpcyBzZXQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
QXR0cmlidXRlcy5pZGw6IEFkZGVkIHhyQ29tcGF0aWJsZS4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UpOgorICAgICAg
ICBJbml0aWFsaXplIG1faXNYUkNvbXBhdGlibGUuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjptYWtlWFJDb21wYXRpYmxlKTogSW1wbGVtZW50ZWQuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOiBEZWZpbmVkIG1h
a2VYUkNvbXBhdGlibGUoKS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmlkbDogQWRkZWQgbWFrZVhSQ29tcGF0aWJsZSgpLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oOiBBZGRlZCB4ckNvbXBh
dGlibGUuCisKIDIwMjAtMDUtMDYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBJbXBsZW1lbnQgc2ltdWxhdGVVc2VyQWN0aXZhdGlv
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgKaW5kZXggZDgy
NDdlNzA2NjRmZTZjNjczYzJlOTJmMzZmN2I0YjEwNWYyNTM1OS4uNTU3OWFjMzE0ZDQwODUzYzQ4
YTVkZWNhODMzMzQ1N2Y0MDAyZTkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUlN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJTeXN0ZW0uaApAQCAtMjksNyArMjksMTAgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCisjaW5jbHVkZSAiSFRNTENhbnZhc0Vs
ZW1lbnQuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIldl
YkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmgiCiAjaW5jbHVkZSAiWFJTZXNzaW9uTW9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNDMsNiArNDYsOCBAQCBzdHJ1
Y3QgWFJTZXNzaW9uSW5pdDsKIAogY2xhc3MgV2ViWFJTeXN0ZW0gZmluYWwgOiBwdWJsaWMgUmVm
Q291bnRlZDxXZWJYUlN5c3RlbT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBw
dWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViWFJTeXN0ZW0+
IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU3lzdGVtKTsKKyAgICBmcmllbmQg
dm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYWtlWFJDb21wYXRpYmxlKE1ha2VYUkNv
bXBhdGlibGVQcm9taXNlJiYpOworICAgIGZyaWVuZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KiBIVE1MQ2FudmFzRWxlbWVudDo6Y3JlYXRlQ29udGV4dFdlYkdMKGNvbnN0IFN0cmluZyYsIFdl
YkdMQ29udGV4dEF0dHJpYnV0ZXMmJik7CiBwdWJsaWM6CiAgICAgdXNpbmcgSXNTZXNzaW9uU3Vw
cG9ydGVkUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPjsKICAgICB1c2lu
ZyBSZXF1ZXN0U2Vzc2lvblByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PFdlYlhSU2Vzc2lvbj4+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAppbmRleCAwZGI1MjY4YWRlZGUwYmRmMTA1NDAxNGU0OTE3YjQzOWI4MjhlMGYzLi45MDY1OWMz
NWY5ZGU5YWIwYTJhNDVmNGIxNGY3NWNjODRjNmY0YzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtODAsNiArODAsMTMgQEAKICNpbmNsdWRlICJHUFVD
YW52YXNDb250ZXh0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJYUikKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JX
ZWJYUi5oIgorI2luY2x1ZGUgIldlYlhSU3lzdGVtLmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KENPQ09BKQogI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgogI2luY2x1ZGUgPHBhbC9j
Zi9Db3JlTWVkaWFTb2Z0TGluay5oPgpAQCAtNDE2LDEwICs0MjMsMjQgQEAgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSogSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRXZWJHTChjb25z
dCBTdHJpbmcmIHQKICAgICBpZiAoIXNob3VsZEVuYWJsZVdlYkdMKGRvY3VtZW50KCkuc2V0dGlu
Z3MoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCisjaWYgRU5BQkxFKFdFQlhSKQorICAg
IC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI3hyLWNvbXBhdGlibGUK
KyAgICBpZiAoYXR0cnMueHJDb21wYXRpYmxlKSB7CisgICAgICAgIGlmIChhdXRvKiB3aW5kb3cg
PSBkb2N1bWVudCgpLmRvbVdpbmRvdygpKSB7CisgICAgICAgICAgICBOYXZpZ2F0b3ImIG5hdmln
YXRvciA9IHdpbmRvdy0+bmF2aWdhdG9yKCk7CisgICAgICAgICAgICBOYXZpZ2F0b3JXZWJYUjo6
ZnJvbShuYXZpZ2F0b3IpLnhyKCpjYW52YXNCYXNlU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBu
YXZpZ2F0b3IpLmVuc3VyZUltbWVyc2l2ZVhSRGV2aWNlSXNTZWxlY3RlZCgpOworICAgICAgICB9
CisgICAgfQorI2VuZGlmCisKKyAgICAvLyBUT0RPKFdFQlhSKTogZW5zdXJlIHRoZSBjb250ZXh0
IGlzIGNyZWF0ZWQgaW4gYSBjb21wYXRpYmxlIGdyYXBoaWNzCisgICAgLy8gYWRhcHRlciB3aGVu
IHRoZXJlIGlzIGFuIGFjdGl2ZSBpbW1lcnNpdmUgZGV2aWNlLgogICAgIG1fY29udGV4dCA9IFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZSgqdGhpcywgYXR0cnMsIHR5cGUpOwogICAg
IGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJM
YXllciBhbmQgY29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMuCiAg
ICAgICAgIGludmFsaWRhdGVTdHlsZUFuZExheWVyQ29tcG9zaXRpb24oKTsKKyAgICAgICAgLy8g
Tm8gbmVlZCB0byBtYXJrIHRoZSBjb250ZXh0IGFzIHhyQ29tcGF0aWJsZSBmb3IgV2ViWFIgaWYg
YXR0cnMueHJDb21wYXRpYmxlLAorICAgICAgICAvLyBhcyB0aGlzIGlzIGhhbmRsZWQgYXV0b21h
dGljYWxseSBpbnNpZGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSBjb25zdHJ1Y3Rvci4KICAg
ICB9CiAKICAgICByZXR1cm4gZG93bmNhc3Q8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4obV9j
b250ZXh0LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0QXR0cmlidXRlcy5pZGwKaW5kZXggM2JlNWFjNTk5MGIyZTExYmQwYTI5NDgwODBm
NzE3OWU3ZDAxMzFjOS4uMzkwMmJhZWJmZGYzZjhkYjJjMWVlNzg2NTA2NzUxNDRmYjlmOTBlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmli
dXRlcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5pZGwKQEAgLTQ1LDQgKzQ1LDUgQEAgZW51bSBXZWJHTFBvd2VyUHJlZmVyZW5jZSB7
CiAgICAgR0xib29sZWFuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9IGZhbHNlOwogICAgIFdlYkdM
UG93ZXJQcmVmZXJlbmNlIHBvd2VyUHJlZmVyZW5jZSA9ICJkZWZhdWx0IjsKICAgICBHTGJvb2xl
YW4gZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCA9IGZhbHNlOworICAgIFtDb25kaXRpb25h
bD1XRUJYUl0gYm9vbGVhbiB4ckNvbXBhdGlibGUgPSBmYWxzZTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3Bw
CmluZGV4IDIwN2Y2YjFhOWE1Y2ZiYWFkNTZmMTMzMzhmNmU4MmI3YmJmODZmNTEuLmFjNzg1MzZj
ZTM2N2Q2Y2IwZDY4NTU0MTRhNmJiMjdhOTgyYzk4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0x
MDYsNiArMTA2LDcgQEAKICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0
Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYv
VW5pcXVlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0xMTUsNiAr
MTE2LDExIEBACiAjaW5jbHVkZSAiT2Zmc2NyZWVuQ2FudmFzLmgiCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShXRUJYUikKKyNpbmNsdWRlICJOYXZpZ2F0b3JXZWJYUi5oIgorI2luY2x1ZGUgIldlYlhS
U3lzdGVtLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lNUEwoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSk7CkBAIC03MzcsNiArNzQz
LDkgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShDYW52YXNCYXNlJiBjYW52YXMsIFdlYkdMQ28KICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNv
bGVBbGxvd2VkKG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAsIG1faXNQZW5kaW5n
UG9saWN5UmVzb2x1dGlvbih0cnVlKQogICAgICwgbV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxp
bmdUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNoZWNrRm9yQ29udGV4
dExvc3NIYW5kbGluZykKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgLCBtX2lzWFJDb21wYXRpYmxl
KGF0dHJpYnV0ZXMueHJDb21wYXRpYmxlKQorI2VuZGlmCiB7CiAgICAgbV9yZXN0b3JlVGltZXIu
c3VzcGVuZElmTmVlZGVkKCk7CiAKQEAgLTc1Miw2ICs3NjEsOSBAQCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZhcywg
UmVmPEdyYQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpCiAgICAgLCBtX251bUdMRXJy
b3JzVG9Db25zb2xlQWxsb3dlZChtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGUpCiAgICAgLCBt
X2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyKCp0aGlzLCAmV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Y2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nKQorI2lmIEVOQUJMRShXRUJY
UikKKyAgICAsIG1faXNYUkNvbXBhdGlibGUoYXR0cmlidXRlcy54ckNvbXBhdGlibGUpCisjZW5k
aWYKIHsKICAgICBtX3Jlc3RvcmVUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKIApAQCAtMzQ2OSw2
ICszNDgxLDU0IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bGlua1Byb2dyYW1X
aXRob3V0SW52YWxpZGF0aW5nQXR0cmliTG9jYXRpb25zKFdlCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKKyNpZiBFTkFCTEUoV0VCWFIpCisvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlv
L3dlYnhyLyNkb20td2ViZ2xyZW5kZXJpbmdjb250ZXh0YmFzZS1tYWtleHJjb21wYXRpYmxlCit2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1ha2VYUkNvbXBhdGlibGUoTWFrZVhSQ29t
cGF0aWJsZVByb21pc2UmJiBwcm9taXNlKQoreworICAgIGF1dG8gcmVqZWN0UHJvbWlzZVdpdGhJ
bnZhbGlkU3RhdGVFcnJvciA9IG1ha2VTY29wZUV4aXQoWyZdICgpIHsKKyAgICAgICAgbV9pc1hS
Q29tcGF0aWJsZSA9IGZhbHNlOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICB9KTsKKworICAgIC8vIFJldHVybmluZyBhbiBleGNl
cHRpb24gaW4gdGhlc2UgdHdvIGNoZWNrcyBpcyBub3QgcGFydCBvZiB0aGUgc3BlYy4KKyAgICBh
dXRvIGNhbnZhcyA9IGh0bWxDYW52YXMoKTsKKyAgICBpZiAoIWNhbnZhcykKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXV0byogd2luZG93ID0gY2FudmFzLT5kb2N1bWVudCgpLmRvbVdpbmRvdygp
OworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyAxLiBMZXQgcHJv
bWlzZSBiZSBhIG5ldyBQcm9taXNlLgorICAgIC8vIDIuIExldCBjb250ZXh0IGJlIHRoZSB0YXJn
ZXQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSBvYmplY3QuCisgICAgLy8gMy4gRW5zdXJlIGFu
IGltbWVyc2l2ZSBYUiBkZXZpY2UgaXMgc2VsZWN0ZWQuCisgICAgTmF2aWdhdG9yJiBuYXZpZ2F0
b3IgPSB3aW5kb3ctPm5hdmlnYXRvcigpOworICAgIFdlYlhSU3lzdGVtJiB4clN5c3RlbSA9IE5h
dmlnYXRvcldlYlhSOjpmcm9tKG5hdmlnYXRvcikueHIoKnN0YXRpY19jYXN0PENhbnZhc0Jhc2Uq
PihjYW52YXMpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG5hdmlnYXRvcik7CisgICAgeHJT
eXN0ZW0uZW5zdXJlSW1tZXJzaXZlWFJEZXZpY2VJc1NlbGVjdGVkKCk7CisKKyAgICAvLyA0LiBT
ZXQgY29udGV4dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGFzIGZvbGxvd3M6CisgICAgaWYg
KGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYg
dGhlIGltbWVyc2l2ZSBYUiBkZXZpY2UgaXMgbnVsbAorICAgIC8vICAgIFNldCBjb250ZXh04oCZ
cyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gdG8gZmFsc2UgYW5kIHJlamVjdCBwcm9taXNlIHdpdGgg
YW4gSW52YWxpZFN0YXRlRXJyb3IuCisgICAgaWYgKCF4clN5c3RlbS5tX2FjdGl2ZUltbWVyc2l2
ZURldmljZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1faXNYUkNvbXBhdGlibGUpCisg
ICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworCisgICAgLy8gSWYgY29udGV4dCB3YXMgY3JlYXRl
ZCBvbiBhIGNvbXBhdGlibGUgZ3JhcGhpY3MgYWRhcHRlciBmb3IgdGhlIGltbWVyc2l2ZSBYUiBk
ZXZpY2UKKyAgICAvLyAgU2V0IGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiB0byB0
cnVlIGFuZCByZXNvbHZlIHByb21pc2UuCisgICAgLy8gT3RoZXJ3aXNlOiBRdWV1ZSBhIHRhc2sg
b24gdGhlIFdlYkdMIHRhc2sgc291cmNlIHRvIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBzdGVwczoK
KyAgICAvLyBUT0RPOiBhZGQgYSB3YXkgdG8gdmVyaWZ5IHRoYXQgd2UncmUgdXNpbmcgYSBjb21w
YXRpYmxlIGdyYXBoaWNzIGFkYXB0ZXIuCisgICAgbV9pc1hSQ29tcGF0aWJsZSA9IHRydWU7Cisg
ICAgcHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICByZWplY3RQcm9taXNlV2l0aEludmFsaWRTdGF0
ZUVycm9yLnJlbGVhc2UoKTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OnBpeGVsU3RvcmVpKEdDR0xlbnVtIHBuYW1lLCBHQ0dMaW50IHBhcmFtKQogewogICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKaW5kZXggZDY0NWI5Yzk2
ZjA0YzYzZDJkOTFjZmMyMDBiZGMzYTBkZGI4ZjZjMy4uZjIzMGMwOWI1NDc5OTgzY2U5YTZhYmNl
MGU1NWFhNjUzMjliNWE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtNTIsNiArNTIsMTAgQEAKICNpbmNs
dWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJY
UikKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQU5HTEVJbnN0YW5jZWRBcnJheXM7CkBAIC0yMzAsNiArMjM0
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGxpbmtQcm9ncmFtKFdlYkdMUHJvZ3JhbSopOwogICAg
IGJvb2wgbGlua1Byb2dyYW1XaXRob3V0SW52YWxpZGF0aW5nQXR0cmliTG9jYXRpb25zKFdlYkdM
UHJvZ3JhbSopOwogICAgIHZpcnR1YWwgdm9pZCBwaXhlbFN0b3JlaShHQ0dMZW51bSBwbmFtZSwg
R0NHTGludCBwYXJhbSk7CisjaWYgRU5BQkxFKFdFQlhSKQorICAgIHVzaW5nIE1ha2VYUkNvbXBh
dGlibGVQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+OworICAgIHZvaWQgbWFrZVhS
Q29tcGF0aWJsZShNYWtlWFJDb21wYXRpYmxlUHJvbWlzZSYmKTsKKyNlbmRpZgogICAgIHZvaWQg
cG9seWdvbk9mZnNldChHQ0dMZmxvYXQgZmFjdG9yLCBHQ0dMZmxvYXQgdW5pdHMpOwogICAgIHZv
aWQgcmVhZFBpeGVscyhHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdpZHRoLCBHQ0dM
c2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEFycmF5QnVmZmVy
VmlldyYgcGl4ZWxzKTsKICAgICB2b2lkIHJlbGVhc2VTaGFkZXJDb21waWxlcigpOwpAQCAtMTAy
Miw2ICsxMDMwLDEwIEBAIHByaXZhdGU6CiAgICAgV2ViR0xTdGF0ZVRyYWNrZXI6OlRva2VuIG1f
dHJhY2tlclRva2VuOwogICAgIFRpbWVyIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nVGlt
ZXI7CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKworI2lmIEVOQUJMRShXRUJY
UikKKyAgICBib29sIG1faXNYUkNvbXBhdGlibGUgeyBmYWxzZSB9OworI2VuZGlmCiB9OwogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwKaW5kZXggNDVhN2IzOGFjNTIxNmJj
Nzc5YWZjM2Y0YjlkNGNiNGQ4YWM5YTE3NC4uNjYyYjMzMGVlZmVlNGQwOGEzZWM4YTIwZGJlOGMw
ZDBlMzgyODY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwKQEAgLTYwMiw2ICs2MDIsOSBAQCB0eXBlZGVm
IChIVE1MQ2FudmFzRWxlbWVudCkgV2ViR0xDYW52YXM7CiAgICAgR0xib29sZWFuIGlzVGV4dHVy
ZShXZWJHTFRleHR1cmU/IHRleHR1cmUpOwogICAgIHZvaWQgbGluZVdpZHRoKEdMZmxvYXQgd2lk
dGgpOwogICAgIHZvaWQgbGlua1Byb2dyYW0oV2ViR0xQcm9ncmFtPyBwcm9ncmFtKTsKKworICAg
IFtOZXdPYmplY3QsIENvbmRpdGlvbmFsPVdFQlhSXSBQcm9taXNlPHZvaWQ+IG1ha2VYUkNvbXBh
dGlibGUoKTsKKwogICAgIHZvaWQgcGl4ZWxTdG9yZWkoR0xlbnVtIHBuYW1lLCBHTGludCBwYXJh
bSk7CiAgICAgdm9pZCBwb2x5Z29uT2Zmc2V0KEdMZmxvYXQgZmFjdG9yLCBHTGZsb2F0IHVuaXRz
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaAppbmRleCA4ODQxYTQ1ZjZhMDQxZGI0YmIx
OWJkN2VlMmU1NzQwMThiNjAyYTdiLi41Y2NhMWRhMjBlNjk2N2RjZjZlYWJlMGQ1MTZjMmY4MDhk
ZTIzOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaApAQCAtNTMsNiArNTMsOSBAQCBz
dHJ1Y3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsKICAgICBib29sIG5vRXh0ZW5zaW9u
cyB7IGZhbHNlIH07CiAgICAgZmxvYXQgZGV2aWNlUGl4ZWxSYXRpbyB7IDEgfTsKICAgICBQb3dl
clByZWZlcmVuY2UgaW5pdGlhbFBvd2VyUHJlZmVyZW5jZSB7IFBvd2VyUHJlZmVyZW5jZTo6RGVm
YXVsdCB9OworI2lmIEVOQUJMRShXRUJYUikKKyAgICBib29sIHhyQ29tcGF0aWJsZSB7IGZhbHNl
IH07CisjZW5kaWYKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399011</attachid>
            <date>2020-05-11 04:28:07 -0700</date>
            <delta_ts>2020-05-13 01:36:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211506-20200511132804.patch</filename>
            <type>text/plain</type>
            <size>12050</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEyNmMxNzE1ZjBiZTM1
YTBkNGRjZWFkOTIwMWNkNjQ1YTMyN2Q5MC4uNmI4NGZkNTVhNjM1ZTRhOGRmNmFkZmE1ZjUzNGQ5
OWE0YzI1NmM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA1LTA2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SW1wbGVtZW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1ha2VYUkNvbXBhdGlibGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNTA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFdlYlhS
IHNwZWMgZGVmaW5lcyBhIHdheSB0byBtYXJrIGEgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGFzCisg
ICAgICAgIGNvbXBhdGlibGUgd2l0aCBXZWJYUi4gVGhpcyBjYW4gYmUgbWFkZSBhdCBjcmVhdGlv
biB0aW1lIChieSBzZXR0aW5nIHRoZQorICAgICAgICB4ckNvbXBhdGlibGUpIGF0dHJpYnV0ZSBv
ciBieSBjYWxsaW5nIG1ha2VYUkNvbXBhdGlibGUoKS4KKworICAgICAgICBUaGVyZSBhcmUgc2V2
ZXJhbCB3ZWItcGxhdGZvcm0tdGVzdHMgdGVzdGluZy91c2luZyB0aGlzIGZlYXR1cmUsIGhvd2V2
ZXIgd2UKKyAgICAgICAgY2Fubm90IGVuYWJsZSB0aGVtIHJpZ2h0IG5vdyBhcyB3ZSBuZWVkIHNv
bWUgb3RoZXIgZmVhdHVyZXMgdG8gYmUgaW1wbGVtZW50ZWQKKyAgICAgICAgZmlyc3QuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmg6IEFkZGVkIG1ha2VYUkNvbXBhdGli
bGUgYXMgZnJpZW5kIG1ldGhvZC4KKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2Vi
R0wpOiBjYWxsCisgICAgICAgIGVuc3VyZUltbWVyc2l2ZVhSRGV2aWNlSXNTZWxlY3RlZCgpIGlz
IHhyQ29tcGF0aWJsZSBpcyBzZXQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
QXR0cmlidXRlcy5pZGw6IEFkZGVkIHhyQ29tcGF0aWJsZS4KKyAgICAgICAgKiBodG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UpOgorICAgICAg
ICBJbml0aWFsaXplIG1faXNYUkNvbXBhdGlibGUuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjptYWtlWFJDb21wYXRpYmxlKTogSW1wbGVtZW50ZWQuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oOiBEZWZpbmVkIG1h
a2VYUkNvbXBhdGlibGUoKS4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmlkbDogQWRkZWQgbWFrZVhSQ29tcGF0aWJsZSgpLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oOiBBZGRlZCB4ckNvbXBh
dGlibGUuCisKIDIwMjAtMDUtMDcgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtXaGVlbCBldmVudCByZWdpb25dIEluY2x1ZGUgbGlzdGVuZXJzIG9uIFdpbmRv
dwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCmluZGV4IGQ4MjQ3
ZTcwNjY0ZmU2YzY3M2MyZTkyZjM2ZjdiNGIxMDVmMjUzNTkuLjU1NzlhYzMxNGQ0MDg1M2M0OGE1
ZGVjYTgzMzM0NTdmNDAwMmU5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViWFJTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSU3lzdGVtLmgKQEAgLTI5LDcgKzI5LDEwIEBACiAKICNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJXZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oIgogI2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQzLDYgKzQ2LDggQEAgc3RydWN0
IFhSU2Vzc2lvbkluaXQ7CiAKIGNsYXNzIFdlYlhSU3lzdGVtIGZpbmFsIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViWFJTeXN0ZW0+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVi
bGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlhSU3lzdGVtPiB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJYUlN5c3RlbSk7CisgICAgZnJpZW5kIHZv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWFrZVhSQ29tcGF0aWJsZShNYWtlWFJDb21w
YXRpYmxlUHJvbWlzZSYmKTsKKyAgICBmcmllbmQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSog
SFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUNvbnRleHRXZWJHTChjb25zdCBTdHJpbmcmLCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzJiYpOwogcHVibGljOgogICAgIHVzaW5nIElzU2Vzc2lvblN1cHBv
cnRlZFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47CiAgICAgdXNpbmcg
UmVxdWVzdFNlc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxX
ZWJYUlNlc3Npb24+PjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
aW5kZXggMGRiNTI2OGFkZWRlMGJkZjEwNTQwMTRlNDkxN2I0MzliODI4ZTBmMy4uOTA2NTljMzVm
OWRlOWFiMGEyYTQ1ZjRiMTRmNzVjYzg0YzZmNGMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTgwLDYgKzgwLDEzIEBACiAjaW5jbHVkZSAiR1BVQ2Fu
dmFzQ29udGV4dC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCWFIpCisjaW5jbHVkZSAiRE9N
V2luZG93LmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yV2Vi
WFIuaCIKKyNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgorI2VuZGlmCisKICNpZiBQTEFURk9STShD
T0NPQSkKICNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKICNpbmNsdWRlIDxwYWwvY2Yv
Q29yZU1lZGlhU29mdExpbmsuaD4KQEAgLTQxNiwxMCArNDIzLDI0IEBAIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVDb250ZXh0V2ViR0woY29uc3Qg
U3RyaW5nJiB0CiAgICAgaWYgKCFzaG91bGRFbmFibGVXZWJHTChkb2N1bWVudCgpLnNldHRpbmdz
KCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorI2lmIEVOQUJMRShXRUJYUikKKyAgICAv
LyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN4ci1jb21wYXRpYmxlCisg
ICAgaWYgKGF0dHJzLnhyQ29tcGF0aWJsZSkgeworICAgICAgICBpZiAoYXV0byogd2luZG93ID0g
ZG9jdW1lbnQoKS5kb21XaW5kb3coKSkgeworICAgICAgICAgICAgTmF2aWdhdG9yJiBuYXZpZ2F0
b3IgPSB3aW5kb3ctPm5hdmlnYXRvcigpOworICAgICAgICAgICAgTmF2aWdhdG9yV2ViWFI6OmZy
b20obmF2aWdhdG9yKS54cigqY2FudmFzQmFzZVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbmF2
aWdhdG9yKS5lbnN1cmVJbW1lcnNpdmVYUkRldmljZUlzU2VsZWN0ZWQoKTsKKyAgICAgICAgfQor
ICAgIH0KKyNlbmRpZgorCisgICAgLy8gVE9ETyhXRUJYUik6IGVuc3VyZSB0aGUgY29udGV4dCBp
cyBjcmVhdGVkIGluIGEgY29tcGF0aWJsZSBncmFwaGljcworICAgIC8vIGFkYXB0ZXIgd2hlbiB0
aGVyZSBpcyBhbiBhY3RpdmUgaW1tZXJzaXZlIGRldmljZS4KICAgICBtX2NvbnRleHQgPSBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoKnRoaXMsIGF0dHJzLCB0eXBlKTsKICAgICBp
ZiAobV9jb250ZXh0KSB7CiAgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5
ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzLgogICAg
ICAgICBpbnZhbGlkYXRlU3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCk7CisgICAgICAgIC8vIE5v
IG5lZWQgdG8gbWFyayB0aGUgY29udGV4dCBhcyB4ckNvbXBhdGlibGUgZm9yIFdlYlhSIGlmIGF0
dHJzLnhyQ29tcGF0aWJsZSwKKyAgICAgICAgLy8gYXMgdGhpcyBpcyBoYW5kbGVkIGF1dG9tYXRp
Y2FsbHkgaW5zaWRlIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UgY29uc3RydWN0b3IuCiAgICAg
fQogCiAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KG1fY29u
dGV4dC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuaWRsCmluZGV4IDNiZTVhYzU5OTBiMmUxMWJkMGEyOTQ4MDgwZjcx
NzllN2QwMTMxYzkuLjM5MDJiYWViZmRmM2Y4ZGIyYzFlZTc4NjUwNjc1MTQ0ZmI5ZjkwZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuaWRsCkBAIC00NSw0ICs0NSw1IEBAIGVudW0gV2ViR0xQb3dlclByZWZlcmVuY2Ugewog
ICAgIEdMYm9vbGVhbiBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSBmYWxzZTsKICAgICBXZWJHTFBv
d2VyUHJlZmVyZW5jZSBwb3dlclByZWZlcmVuY2UgPSAiZGVmYXVsdCI7CiAgICAgR0xib29sZWFu
IGZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQgPSBmYWxzZTsKKyAgICBbQ29uZGl0aW9uYWw9
V0VCWFJdIGJvb2xlYW4geHJDb21wYXRpYmxlID0gZmFsc2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApp
bmRleCAyMDdmNmIxYTlhNWNmYmFhZDU2ZjEzMzM4ZjZlODJiN2JiZjg2ZjUxLi40MjU5MGM0NmFi
ZWY1OGEzNzg1Y2NhOTg1MDUyNDY2OTY1MDU1NGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTA2
LDYgKzEwNiw3IEBACiAjaW5jbHVkZSA8d3RmL0hleE51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYv
U2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1Vu
aXF1ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtMTE1LDYgKzEx
NiwxMSBAQAogI2luY2x1ZGUgIk9mZnNjcmVlbkNhbnZhcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoV0VCWFIpCisjaW5jbHVkZSAiTmF2aWdhdG9yV2ViWFIuaCIKKyNpbmNsdWRlICJXZWJYUlN5
c3RlbS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FM
TE9DQVRFRF9JTVBMKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UpOwpAQCAtNzM3LDYgKzc0Myw5
IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uo
Q2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENvCiAgICAgLCBtX251bUdMRXJyb3JzVG9Db25zb2xl
QWxsb3dlZChtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGUpCiAgICAgLCBtX2lzUGVuZGluZ1Bv
bGljeVJlc29sdXRpb24odHJ1ZSkKICAgICAsIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5n
VGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjaGVja0ZvckNvbnRleHRM
b3NzSGFuZGxpbmcpCisjaWYgRU5BQkxFKFdFQlhSKQorICAgICwgbV9pc1hSQ29tcGF0aWJsZShh
dHRyaWJ1dGVzLnhyQ29tcGF0aWJsZSkKKyNlbmRpZgogewogICAgIG1fcmVzdG9yZVRpbWVyLnN1
c3BlbmRJZk5lZWRlZCgpOwogCkBAIC03NTIsNiArNzYxLDkgQEAgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFJl
ZjxHcmEKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVzKQogICAgICwgbV9udW1HTEVycm9y
c1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9j
aGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdUaW1lcigqdGhpcywgJldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmNoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZykKKyNpZiBFTkFCTEUoV0VCWFIp
CisgICAgLCBtX2lzWFJDb21wYXRpYmxlKGF0dHJpYnV0ZXMueHJDb21wYXRpYmxlKQorI2VuZGlm
CiB7CiAgICAgbV9yZXN0b3JlVGltZXIuc3VzcGVuZElmTmVlZGVkKCk7CiAKQEAgLTM0NjksNiAr
MzQ4MSw1MyBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmxpbmtQcm9ncmFtV2l0
aG91dEludmFsaWRhdGluZ0F0dHJpYkxvY2F0aW9ucyhXZQogICAgIHJldHVybiB0cnVlOwogfQog
CisjaWYgRU5BQkxFKFdFQlhSKQorLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93
ZWJ4ci8jZG9tLXdlYmdscmVuZGVyaW5nY29udGV4dGJhc2UtbWFrZXhyY29tcGF0aWJsZQordm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYWtlWFJDb21wYXRpYmxlKE1ha2VYUkNvbXBh
dGlibGVQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBhdXRvIHJlamVjdFByb21pc2VXaXRoSW52
YWxpZFN0YXRlRXJyb3IgPSBtYWtlU2NvcGVFeGl0KFsmXSAoKSB7CisgICAgICAgIG1faXNYUkNv
bXBhdGlibGUgPSBmYWxzZTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgfSk7CisKKyAgICAvLyBSZXR1cm5pbmcgYW4gZXhjZXB0
aW9uIGluIHRoZXNlIHR3byBjaGVja3MgaXMgbm90IHBhcnQgb2YgdGhlIHNwZWMuCisgICAgYXV0
byBjYW52YXMgPSBodG1sQ2FudmFzKCk7CisgICAgaWYgKCFjYW52YXMpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8qIHdpbmRvdyA9IGNhbnZhcy0+ZG9jdW1lbnQoKS5kb21XaW5kb3coKTsK
KyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gMS4gTGV0IHByb21p
c2UgYmUgYSBuZXcgUHJvbWlzZS4KKyAgICAvLyAyLiBMZXQgY29udGV4dCBiZSB0aGUgdGFyZ2V0
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Ugb2JqZWN0LgorICAgIC8vIDMuIEVuc3VyZSBhbiBp
bW1lcnNpdmUgWFIgZGV2aWNlIGlzIHNlbGVjdGVkLgorICAgIE5hdmlnYXRvciYgbmF2aWdhdG9y
ID0gd2luZG93LT5uYXZpZ2F0b3IoKTsKKyAgICBXZWJYUlN5c3RlbSYgeHJTeXN0ZW0gPSBOYXZp
Z2F0b3JXZWJYUjo6ZnJvbShuYXZpZ2F0b3IpLnhyKCpzdGF0aWNfY2FzdDxDYW52YXNCYXNlKj4o
Y2FudmFzKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBuYXZpZ2F0b3IpOworICAgIHhyU3lz
dGVtLmVuc3VyZUltbWVyc2l2ZVhSRGV2aWNlSXNTZWxlY3RlZCgpOworCisgICAgLy8gNC4gU2V0
IGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiBhcyBmb2xsb3dzOgorICAgIC8vICAg
IElmIGNvbnRleHTigJlzIFdlYkdMIGNvbnRleHQgbG9zdCBmbGFnIGlzIHNldAorICAgIC8vICAg
ICAgU2V0IGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiB0byBmYWxzZSBhbmQgcmVq
ZWN0IHByb21pc2Ugd2l0aCBhbiBJbnZhbGlkU3RhdGVFcnJvci4KKyAgICBpZiAoaXNDb250ZXh0
TG9zdE9yUGVuZGluZygpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiB0aGUgaW1tZXJz
aXZlIFhSIGRldmljZSBpcyBudWxsCisgICAgLy8gICAgU2V0IGNvbnRleHTigJlzIFhSIGNvbXBh
dGlibGUgYm9vbGVhbiB0byBmYWxzZSBhbmQgcmVqZWN0IHByb21pc2Ugd2l0aCBhbiBJbnZhbGlk
U3RhdGVFcnJvci4KKyAgICBpZiAoIXhyU3lzdGVtLm1fYWN0aXZlSW1tZXJzaXZlRGV2aWNlKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJv
b2xlYW4gaXMgdHJ1ZS4gUmVzb2x2ZSBwcm9taXNlLgorICAgIC8vIElmIGNvbnRleHQgd2FzIGNy
ZWF0ZWQgb24gYSBjb21wYXRpYmxlIGdyYXBoaWNzIGFkYXB0ZXIgZm9yIHRoZSBpbW1lcnNpdmUg
WFIgZGV2aWNlCisgICAgLy8gIFNldCBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4g
dG8gdHJ1ZSBhbmQgcmVzb2x2ZSBwcm9taXNlLgorICAgIC8vIE90aGVyd2lzZTogUXVldWUgYSB0
YXNrIG9uIHRoZSBXZWJHTCB0YXNrIHNvdXJjZSB0byBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3Rl
cHM6CisgICAgLy8gVE9ETzogYWRkIGEgd2F5IHRvIHZlcmlmeSB0aGF0IHdlJ3JlIHVzaW5nIGEg
Y29tcGF0aWJsZSBncmFwaGljcyBhZGFwdGVyLgorICAgIG1faXNYUkNvbXBhdGlibGUgPSB0cnVl
OworICAgIHByb21pc2UucmVzb2x2ZSgpOworICAgIHJlamVjdFByb21pc2VXaXRoSW52YWxpZFN0
YXRlRXJyb3IucmVsZWFzZSgpOworfQorI2VuZGlmCisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6cGl4ZWxTdG9yZWkoR0NHTGVudW0gcG5hbWUsIEdDR0xpbnQgcGFyYW0pCiB7CiAg
ICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCBkNjQ1Yjlj
OTZmMDRjNjNkMmQ5MWNmYzIwMGJkYzNhMGRkYjhmNmMzLi5mMjMwYzA5YjU0Nzk5ODNjZTlhNmFi
Y2UwZTU1YWE2NTMyOWI1YTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC01Miw2ICs1MiwxMCBAQAogI2lu
Y2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3QuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFdF
QlhSKQorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBBTkdMRUluc3RhbmNlZEFycmF5czsKQEAgLTIzMCw2ICsy
MzQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgbGlua1Byb2dyYW0oV2ViR0xQcm9ncmFtKik7CiAg
ICAgYm9vbCBsaW5rUHJvZ3JhbVdpdGhvdXRJbnZhbGlkYXRpbmdBdHRyaWJMb2NhdGlvbnMoV2Vi
R0xQcm9ncmFtKik7CiAgICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKEdDR0xlbnVtIHBuYW1l
LCBHQ0dMaW50IHBhcmFtKTsKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgdXNpbmcgTWFrZVhSQ29t
cGF0aWJsZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD47CisgICAgdm9pZCBtYWtl
WFJDb21wYXRpYmxlKE1ha2VYUkNvbXBhdGlibGVQcm9taXNlJiYpOworI2VuZGlmCiAgICAgdm9p
ZCBwb2x5Z29uT2Zmc2V0KEdDR0xmbG9hdCBmYWN0b3IsIEdDR0xmbG9hdCB1bml0cyk7CiAgICAg
dm9pZCByZWFkUGl4ZWxzKEdDR0xpbnQgeCwgR0NHTGludCB5LCBHQ0dMc2l6ZWkgd2lkdGgsIEdD
R0xzaXplaSBoZWlnaHQsIEdDR0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgQXJyYXlCdWZm
ZXJWaWV3JiBwaXhlbHMpOwogICAgIHZvaWQgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7CkBAIC0x
MDIyLDYgKzEwMzAsMTAgQEAgcHJpdmF0ZToKICAgICBXZWJHTFN0YXRlVHJhY2tlcjo6VG9rZW4g
bV90cmFja2VyVG9rZW47CiAgICAgVGltZXIgbV9jaGVja0ZvckNvbnRleHRMb3NzSGFuZGxpbmdU
aW1lcjsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworCisjaWYgRU5BQkxFKFdF
QlhSKQorICAgIGJvb2wgbV9pc1hSQ29tcGF0aWJsZSB7IGZhbHNlIH07CisjZW5kaWYKIH07CiAK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAppbmRleCA0NWE3YjM4YWM1MjE2
YmM3NzlhZmMzZjRiOWQ0Y2I0ZDhhYzlhMTc0Li42NjJiMzMwZWVmZWU0ZDA4YTNlYzhhMjBkYmU4
YzBkMGUzODI4Njk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmlkbApAQCAtNjAyLDYgKzYwMiw5IEBAIHR5cGVk
ZWYgKEhUTUxDYW52YXNFbGVtZW50KSBXZWJHTENhbnZhczsKICAgICBHTGJvb2xlYW4gaXNUZXh0
dXJlKFdlYkdMVGV4dHVyZT8gdGV4dHVyZSk7CiAgICAgdm9pZCBsaW5lV2lkdGgoR0xmbG9hdCB3
aWR0aCk7CiAgICAgdm9pZCBsaW5rUHJvZ3JhbShXZWJHTFByb2dyYW0/IHByb2dyYW0pOworCisg
ICAgW05ld09iamVjdCwgQ29uZGl0aW9uYWw9V0VCWFJdIFByb21pc2U8dm9pZD4gbWFrZVhSQ29t
cGF0aWJsZSgpOworCiAgICAgdm9pZCBwaXhlbFN0b3JlaShHTGVudW0gcG5hbWUsIEdMaW50IHBh
cmFtKTsKICAgICB2b2lkIHBvbHlnb25PZmZzZXQoR0xmbG9hdCBmYWN0b3IsIEdMZmxvYXQgdW5p
dHMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oCmluZGV4IDg4NDFhNDVmNmEwNDFkYjRi
YjE5YmQ3ZWUyZTU3NDAxOGI2MDJhN2IuLjVjY2ExZGEyMGU2OTY3ZGNmNmVhYmUwZDUxNmMyZjgw
OGRlMjM5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcy5oCkBAIC01Myw2ICs1Myw5IEBA
IHN0cnVjdCBHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgewogICAgIGJvb2wgbm9FeHRlbnNp
b25zIHsgZmFsc2UgfTsKICAgICBmbG9hdCBkZXZpY2VQaXhlbFJhdGlvIHsgMSB9OwogICAgIFBv
d2VyUHJlZmVyZW5jZSBpbml0aWFsUG93ZXJQcmVmZXJlbmNlIHsgUG93ZXJQcmVmZXJlbmNlOjpE
ZWZhdWx0IH07CisjaWYgRU5BQkxFKFdFQlhSKQorICAgIGJvb2wgeHJDb21wYXRpYmxlIHsgZmFs
c2UgfTsKKyNlbmRpZgogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399249</attachid>
            <date>2020-05-13 01:36:25 -0700</date>
            <delta_ts>2020-05-13 02:13:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211506-20200513103623.patch</filename>
            <type>text/plain</type>
            <size>15639</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEyNmMxNzE1ZjBiZTM1
YTBkNGRjZWFkOTIwMWNkNjQ1YTMyN2Q5MC4uMDZiNjBhMzMyY2Y1NzM3NThkMTIwNGQ1MzUzZDI3
ZWRkZWU0OGY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA1LTA2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
SW1wbGVtZW50IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1ha2VYUkNvbXBhdGlibGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjExNTA2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIFdlYlhS
IHNwZWMgZGVmaW5lcyBhIHdheSB0byBtYXJrIGEgV2ViR0xSZW5kZXJpbmdDb250ZXh0IGFzCisg
ICAgICAgIGNvbXBhdGlibGUgd2l0aCBXZWJYUi4gVGhpcyBjYW4gYmUgbWFkZSBhdCBjcmVhdGlv
biB0aW1lIChieSBzZXR0aW5nIHRoZQorICAgICAgICB4ckNvbXBhdGlibGUpIGF0dHJpYnV0ZSBv
ciBieSBjYWxsaW5nIG1ha2VYUkNvbXBhdGlibGUoKS4KKworICAgICAgICBUaGVyZSBhcmUgc2V2
ZXJhbCB3ZWItcGxhdGZvcm0tdGVzdHMgdGVzdGluZy91c2luZyB0aGlzIGZlYXR1cmUsIGhvd2V2
ZXIgd2UKKyAgICAgICAgY2Fubm90IGVuYWJsZSB0aGVtIHJpZ2h0IG5vdyBhcyB3ZSBuZWVkIHNv
bWUgb3RoZXIgZmVhdHVyZXMgdG8gYmUgaW1wbGVtZW50ZWQKKyAgICAgICAgZmlyc3QuCisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5hdmlnYXRvcldlYlhSOjp4cik6IERvIG5vdCBwYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQgYW5kIHVzZQorICAgICAgICB0aGUgTmF2aWdhdG9yJ3MgaW5zdGVhZC4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmg6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhy
L1dlYlhSU3lzdGVtLmg6IGV4cG9zZSBlbnN1cmVJbW1lcnNpdmVYUkRldmljZUlzU2VsZWN0ZWQo
KSBhbmQKKyAgICAgICAgaGFzQWN0aXZlSW1tZXJzaXZlWFJEZXZpY2UoKSB0byBiZSB1c2VkIGZy
b20gY2FudmFzIGFuZCB0aGUgcmVuZGVyaW5nIGNvbnRleHQuCisgICAgICAgICogaHRtbC9IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6
Y3JlYXRlQ29udGV4dFdlYkdMKTogY2FsbAorICAgICAgICBlbnN1cmVJbW1lcnNpdmVYUkRldmlj
ZUlzU2VsZWN0ZWQoKSBpZiB4ckNvbXBhdGlibGUgaXMgc2V0LgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsOiBBZGRlZCB4ckNvbXBhdGlibGUuCisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlKToKKyAgICAgICAgSW5pdGlhbGl6ZSBtX2lzWFJDb21wYXRpYmxlLgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWFrZVhSQ29tcGF0aWJsZSk6IElt
cGxlbWVudGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaDogRGVmaW5lZCBtYWtlWFJDb21wYXRpYmxlKCkuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5pZGw6IEFkZGVkIG1ha2VYUkNvbXBhdGlibGUoKS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMu
aDogQWRkZWQgeHJDb21wYXRpYmxlLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6eHJUZXN0KTogU2ltcGxpZmllZCB0aGUgdXNh
Z2Ugb2YgTmF2aWdhdG9yV2ViWFIuCisKIDIwMjAtMDUtMDcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtXaGVlbCBldmVudCByZWdpb25dIEluY2x1ZGUgbGlz
dGVuZXJzIG9uIFdpbmRvdwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9OYXZpZ2F0b3JXZWJYUi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmNwcAppbmRleCAwNmE0YzVkNzgzODkwMDQ1YzEzYjcxOWQzOWZiMWQyYmYyMzgx
MjU3Li5jY2UzMDMyZWI4ZWVlYjk2NjIwNTEyYjdiYjQ2MWZlYmI4MDk4MjRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmNwcApAQCAtMzMsMTEg
KzMzLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViWFJTeXN0ZW0mIE5hdmlnYXRv
cldlYlhSOjp4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
LCBOYXZpZ2F0b3ImIG5hdmlnYXRvck9iamVjdCkKK1dlYlhSU3lzdGVtJiBOYXZpZ2F0b3JXZWJY
Ujo6eHIoTmF2aWdhdG9yJiBuYXZpZ2F0b3JPYmplY3QpCiB7CiAgICAgYXV0byYgbmF2aWdhdG9y
ID0gTmF2aWdhdG9yV2ViWFI6OmZyb20obmF2aWdhdG9yT2JqZWN0KTsKICAgICBpZiAoIW5hdmln
YXRvci5tX3hyKQotICAgICAgICBuYXZpZ2F0b3IubV94ciA9IFdlYlhSU3lzdGVtOjpjcmVhdGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgICAgIG5hdmlnYXRvci5tX3hyID0gV2ViWFJT
eXN0ZW06OmNyZWF0ZSgqbmF2aWdhdG9yT2JqZWN0LnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
CiAgICAgcmV0dXJuICpuYXZpZ2F0b3IubV94cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCmluZGV4IDIzYzYwYzVjODJlOWUyMDY1YTViYjc4
MzE5Yzc4NDI2MGFkM2Q5YzUuLmE2NmJiNzdkNDIxZTI1NmQxNDBlY2E4MTZmNTkzZmQxNWEyOGVh
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2Vi
WFIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmgK
QEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgV2ViWFJTeXN0ZW07CiBjbGFzcyBOYXZpZ2F0b3JXZWJY
UiBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBXZWJYUlN5
c3RlbSYgeHIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBXZWJYUlN5c3RlbSYgeHIoTmF2aWdhdG9yJik7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgTmF2aWdhdG9yV2ViWFImIGZyb20oTmF2aWdhdG9yJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKaW5kZXgg
ZDliYmY1ZGQxMzk5NDM0YTNjNjM2NmQ1MGRlZjA2NzUzNmU4ZDEzYS4uNGNlOTA0OWEwZTljYzkx
ZjRjOTg5ZDRkNzA5MDU0NDE2NjY2OWY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5pZGwKQEAgLTI3LDUgKzI3LDUgQEAKICAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSLAogICAgIENvbmRpdGlvbmFsPVdFQlhSCiBdIHBhcnRpYWwgaW50ZXJm
YWNlIE5hdmlnYXRvciB7Ci0gICAgW1NlY3VyZUNvbnRleHQsIFNhbWVPYmplY3QsIENhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJYUlN5c3RlbSB4
cjsKKyAgICBbU2VjdXJlQ29udGV4dCwgU2FtZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIFdl
YlhSU3lzdGVtIHhyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJTeXN0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0
ZW0uaAppbmRleCBkODI0N2U3MDY2NGZlNmM2NzNjMmU5MmYzNmY3YjRiMTA1ZjI1MzU5Li4yZTlj
ZTg0NjlhNzU5NDg3YjgyNjU2NjA5YTc5MjY0NDBlYjcxYmFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCkBAIC0yOSw3ICsyOSwxMCBAQAogCiAjaW5jbHVk
ZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRl
ICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CisjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCIKICNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC01Niw2
ICs1OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpc1Nlc3Npb25TdXBwb3J0ZWQoWFJTZXNzaW9u
TW9kZSwgSXNTZXNzaW9uU3VwcG9ydGVkUHJvbWlzZSYmKTsKICAgICB2b2lkIHJlcXVlc3RTZXNz
aW9uKFhSU2Vzc2lvbk1vZGUsIGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBSZXF1ZXN0U2Vzc2lvblBy
b21pc2UmJik7CiAKKyAgICAvLyBUaGlzIGlzIGFsc28gbmVlZGVkIGJ5IFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6Om1ha2VYUkNvbXBhdGlibGUoKSBhbmQgSFRNTENhbnZhc0VsZW1lbnQ6OmNy
ZWF0ZUNvbnRleHRXZWJHTCgpLgorICAgIHZvaWQgZW5zdXJlSW1tZXJzaXZlWFJEZXZpY2VJc1Nl
bGVjdGVkKCk7CisgICAgYm9vbCBoYXNBY3RpdmVJbW1lcnNpdmVYUkRldmljZSgpIHsgcmV0dXJu
ICEhbV9hY3RpdmVJbW1lcnNpdmVEZXZpY2U7IH0KKwogICAgIC8vIEZvciB0ZXN0aW5nIHB1cnBv
dXNlcyBvbmx5LgogICAgIHZvaWQgcmVnaXN0ZXJTaW11bGF0ZWRYUkRldmljZUZvclRlc3Rpbmco
Y29uc3QgUGxhdGZvcm1YUjo6RGV2aWNlJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2ltdWxhdGVk
WFJEZXZpY2VGb3JUZXN0aW5nKFBsYXRmb3JtWFI6OkRldmljZSopOwpAQCAtNzQsOCArODEsNiBA
QCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIFdlYlhSU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKTsKIAotICAgIHZvaWQgZW5zdXJlSW1tZXJzaXZlWFJEZXZpY2VJc1NlbGVjdGVkKCk7
Ci0KICAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyNkZWZhdWx0
LWlubGluZS14ci1kZXZpY2UKICAgICBjbGFzcyBEdW1teUlubGluZURldmljZSBmaW5hbCA6IHB1
YmxpYyBQbGF0Zm9ybVhSOjpEZXZpY2UgewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggMGRiNTI2OGFkZWRlMGJkZjEwNTQwMTRlNDkx
N2I0MzliODI4ZTBmMy4uZGExNzlkYjIxNGIwNGE0ODEzMmNhODA3OTVlNTJiOTA4Y2I3ODM4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTgwLDYgKzgw
LDEzIEBACiAjaW5jbHVkZSAiR1BVQ2FudmFzQ29udGV4dC5oIgogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoV0VCWFIpCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiTmF2aWdhdG9yLmgi
CisjaW5jbHVkZSAiTmF2aWdhdG9yV2ViWFIuaCIKKyNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgor
I2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9i
akMuaCIKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KQEAgLTQxNiwxMCAr
NDIzLDIzIEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIEhUTUxDYW52YXNFbGVtZW50Ojpj
cmVhdGVDb250ZXh0V2ViR0woY29uc3QgU3RyaW5nJiB0CiAgICAgaWYgKCFzaG91bGRFbmFibGVX
ZWJHTChkb2N1bWVudCgpLnNldHRpbmdzKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAor
I2lmIEVOQUJMRShXRUJYUikKKyAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlv
L3dlYnhyLyN4ci1jb21wYXRpYmxlCisgICAgaWYgKGF0dHJzLnhyQ29tcGF0aWJsZSkgeworICAg
ICAgICBpZiAoYXV0byogd2luZG93ID0gZG9jdW1lbnQoKS5kb21XaW5kb3coKSkKKyAgICAgICAg
ICAgIE5hdmlnYXRvcldlYlhSOjp4cih3aW5kb3ctPm5hdmlnYXRvcigpKS5lbnN1cmVJbW1lcnNp
dmVYUkRldmljZUlzU2VsZWN0ZWQoKTsKKyAgICB9CisjZW5kaWYKKworICAgIC8vIFRPRE8oV0VC
WFIpOiBlbnN1cmUgdGhlIGNvbnRleHQgaXMgY3JlYXRlZCBpbiBhIGNvbXBhdGlibGUgZ3JhcGhp
Y3MKKyAgICAvLyBhZGFwdGVyIHdoZW4gdGhlcmUgaXMgYW4gYWN0aXZlIGltbWVyc2l2ZSBkZXZp
Y2UuCiAgICAgbV9jb250ZXh0ID0gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKCp0
aGlzLCBhdHRycywgdHlwZSk7CiAgICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICAvLyBOZWVk
IHRvIG1ha2Ugc3VyZSBhIFJlbmRlckxheWVyIGFuZCBjb21wb3NpdGluZyBsYXllciBnZXQgY3Jl
YXRlZCBmb3IgdGhlIENhbnZhcy4KICAgICAgICAgaW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21w
b3NpdGlvbigpOworI2lmIEVOQUJMRShXRUJYUikKKyAgICAgICAgQVNTRVJUKCFhdHRycy54ckNv
bXBhdGlibGUgfHwgbV9jb250ZXh0LmlzWFJDb21wYXRpYmxlKCkpOworI2VuZGlmCiAgICAgfQog
CiAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+KG1fY29udGV4
dC5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMuaWRsCmluZGV4IDNiZTVhYzU5OTBiMmUxMWJkMGEyOTQ4MDgwZjcxNzll
N2QwMTMxYzkuLjM5MDJiYWViZmRmM2Y4ZGIyYzFlZTc4NjUwNjc1MTQ0ZmI5ZjkwZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuaWRsCkBAIC00NSw0ICs0NSw1IEBAIGVudW0gV2ViR0xQb3dlclByZWZlcmVuY2UgewogICAg
IEdMYm9vbGVhbiBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSBmYWxzZTsKICAgICBXZWJHTFBvd2Vy
UHJlZmVyZW5jZSBwb3dlclByZWZlcmVuY2UgPSAiZGVmYXVsdCI7CiAgICAgR0xib29sZWFuIGZh
aWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQgPSBmYWxzZTsKKyAgICBbQ29uZGl0aW9uYWw9V0VC
WFJdIGJvb2xlYW4geHJDb21wYXRpYmxlID0gZmFsc2U7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRl
eCAyMDdmNmIxYTlhNWNmYmFhZDU2ZjEzMzM4ZjZlODJiN2JiZjg2ZjUxLi42ZTA3ZjQ0ODk2MTJh
MWMzYWI0OWQ5ZjYxNmRhYmZiZDEzNmY2NDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcApAQCAtNTcsNiAr
NTcsNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJKU0V4ZWNTdGF0ZS5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOYXZpZ2F0b3JXZWJYUi5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT0VTRWxlbWVudEluZGV4VWludC5oIgog
I2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKQEAgLTk1LDYgKzk2LDcgQEAKICNp
bmNsdWRlICJXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIgogI2luY2x1ZGUgIldlYkdMVGV4
dHVyZS5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9uLmgiCisjaW5jbHVkZSAiV2Vi
WFJTeXN0ZW0uaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Db25zb2xlTWVzc2FnZS5oPgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KQEAgLTEwNiw2ICsxMDgsNyBAQAogI2luY2x1ZGUg
PHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTczNyw2ICs3NDAsOSBAQCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZhcywg
V2ViR0xDbwogICAgICwgbV9udW1HTEVycm9yc1RvQ29uc29sZUFsbG93ZWQobWF4R0xFcnJvcnNB
bGxvd2VkVG9Db25zb2xlKQogICAgICwgbV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKHRydWUp
CiAgICAgLCBtX2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyKCp0aGlzLCAmV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tGb3JDb250ZXh0TG9zc0hhbmRsaW5nKQorI2lmIEVO
QUJMRShXRUJYUikKKyAgICAsIG1faXNYUkNvbXBhdGlibGUoYXR0cmlidXRlcy54ckNvbXBhdGli
bGUpCisjZW5kaWYKIHsKICAgICBtX3Jlc3RvcmVUaW1lci5zdXNwZW5kSWZOZWVkZWQoKTsKIApA
QCAtNzUyLDYgKzc1OCw5IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBSZWY8R3JhCiAgICAgLCBtX2F0dHJp
YnV0ZXMoYXR0cmlidXRlcykKICAgICAsIG1fbnVtR0xFcnJvcnNUb0NvbnNvbGVBbGxvd2VkKG1h
eEdMRXJyb3JzQWxsb3dlZFRvQ29uc29sZSkKICAgICAsIG1fY2hlY2tGb3JDb250ZXh0TG9zc0hh
bmRsaW5nVGltZXIoKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjaGVja0ZvckNv
bnRleHRMb3NzSGFuZGxpbmcpCisjaWYgRU5BQkxFKFdFQlhSKQorICAgICwgbV9pc1hSQ29tcGF0
aWJsZShhdHRyaWJ1dGVzLnhyQ29tcGF0aWJsZSkKKyNlbmRpZgogewogICAgIG1fcmVzdG9yZVRp
bWVyLnN1c3BlbmRJZk5lZWRlZCgpOwogCkBAIC0zNDY5LDYgKzM0NzgsNTIgQEAgYm9vbCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpsaW5rUHJvZ3JhbVdpdGhvdXRJbnZhbGlkYXRpbmdBdHRy
aWJMb2NhdGlvbnMoV2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShXRUJYUikK
Ky8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI2RvbS13ZWJnbHJlbmRl
cmluZ2NvbnRleHRiYXNlLW1ha2V4cmNvbXBhdGlibGUKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6bWFrZVhSQ29tcGF0aWJsZShNYWtlWFJDb21wYXRpYmxlUHJvbWlzZSYmIHByb21p
c2UpCit7CisgICAgYXV0byByZWplY3RQcm9taXNlV2l0aEludmFsaWRTdGF0ZUVycm9yID0gbWFr
ZVNjb3BlRXhpdChbJl0gKCkgeworICAgICAgICBtX2lzWFJDb21wYXRpYmxlID0gZmFsc2U7Cisg
ICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwor
ICAgIH0pOworCisgICAgLy8gUmV0dXJuaW5nIGFuIGV4Y2VwdGlvbiBpbiB0aGVzZSB0d28gY2hl
Y2tzIGlzIG5vdCBwYXJ0IG9mIHRoZSBzcGVjLgorICAgIGF1dG8gY2FudmFzID0gaHRtbENhbnZh
cygpOworICAgIGlmICghY2FudmFzKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiB3aW5k
b3cgPSBjYW52YXMtPmRvY3VtZW50KCkuZG9tV2luZG93KCk7CisgICAgaWYgKCF3aW5kb3cpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIDEuIExldCBwcm9taXNlIGJlIGEgbmV3IFByb21pc2Uu
CisgICAgLy8gMi4gTGV0IGNvbnRleHQgYmUgdGhlIHRhcmdldCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlIG9iamVjdC4KKyAgICAvLyAzLiBFbnN1cmUgYW4gaW1tZXJzaXZlIFhSIGRldmljZSBp
cyBzZWxlY3RlZC4KKyAgICBhdXRvJiB4clN5c3RlbSA9IE5hdmlnYXRvcldlYlhSOjp4cih3aW5k
b3ctPm5hdmlnYXRvcigpKTsKKyAgICB4clN5c3RlbS5lbnN1cmVJbW1lcnNpdmVYUkRldmljZUlz
U2VsZWN0ZWQoKTsKKworICAgIC8vIDQuIFNldCBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJv
b2xlYW4gYXMgZm9sbG93czoKKyAgICAvLyAgICBJZiBjb250ZXh04oCZcyBXZWJHTCBjb250ZXh0
IGxvc3QgZmxhZyBpcyBzZXQKKyAgICAvLyAgICAgIFNldCBjb250ZXh04oCZcyBYUiBjb21wYXRp
YmxlIGJvb2xlYW4gdG8gZmFsc2UgYW5kIHJlamVjdCBwcm9taXNlIHdpdGggYW4gSW52YWxpZFN0
YXRlRXJyb3IuCisgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gSWYgdGhlIGltbWVyc2l2ZSBYUiBkZXZpY2UgaXMgbnVsbAorICAgIC8v
ICAgIFNldCBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gdG8gZmFsc2UgYW5kIHJl
amVjdCBwcm9taXNlIHdpdGggYW4gSW52YWxpZFN0YXRlRXJyb3IuCisgICAgaWYgKCF4clN5c3Rl
bS5oYXNBY3RpdmVJbW1lcnNpdmVYUkRldmljZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBJZiBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gaXMgdHJ1ZS4gUmVzb2x2ZSBw
cm9taXNlLgorICAgIC8vIElmIGNvbnRleHQgd2FzIGNyZWF0ZWQgb24gYSBjb21wYXRpYmxlIGdy
YXBoaWNzIGFkYXB0ZXIgZm9yIHRoZSBpbW1lcnNpdmUgWFIgZGV2aWNlCisgICAgLy8gIFNldCBj
b250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gdG8gdHJ1ZSBhbmQgcmVzb2x2ZSBwcm9t
aXNlLgorICAgIC8vIE90aGVyd2lzZTogUXVldWUgYSB0YXNrIG9uIHRoZSBXZWJHTCB0YXNrIHNv
dXJjZSB0byBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgc3RlcHM6CisgICAgLy8gVE9ETzogYWRkIGEg
d2F5IHRvIHZlcmlmeSB0aGF0IHdlJ3JlIHVzaW5nIGEgY29tcGF0aWJsZSBncmFwaGljcyBhZGFw
dGVyLgorICAgIG1faXNYUkNvbXBhdGlibGUgPSB0cnVlOworICAgIHByb21pc2UucmVzb2x2ZSgp
OworICAgIHJlamVjdFByb21pc2VXaXRoSW52YWxpZFN0YXRlRXJyb3IucmVsZWFzZSgpOworfQor
I2VuZGlmCisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cGl4ZWxTdG9yZWkoR0NH
TGVudW0gcG5hbWUsIEdDR0xpbnQgcGFyYW0pCiB7CiAgICAgaWYgKGlzQ29udGV4dExvc3RPclBl
bmRpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCBkNjQ1YjljOTZmMDRjNjNkMmQ5MWNmYzIwMGJkYzNh
MGRkYjhmNmMzLi5mMmM4MzA2ZWQ4YWUyNTM2ZDJlZjZlODJkYWIxM2YwZDE1ZDY0NDg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5oCkBAIC01Miw2ICs1MiwxMCBAQAogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlP
YmplY3QuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQlhSKQorI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBB
TkdMRUluc3RhbmNlZEFycmF5czsKQEAgLTIzMCw2ICsyMzQsMTEgQEAgcHVibGljOgogICAgIHZv
aWQgbGlua1Byb2dyYW0oV2ViR0xQcm9ncmFtKik7CiAgICAgYm9vbCBsaW5rUHJvZ3JhbVdpdGhv
dXRJbnZhbGlkYXRpbmdBdHRyaWJMb2NhdGlvbnMoV2ViR0xQcm9ncmFtKik7CiAgICAgdmlydHVh
bCB2b2lkIHBpeGVsU3RvcmVpKEdDR0xlbnVtIHBuYW1lLCBHQ0dMaW50IHBhcmFtKTsKKyNpZiBF
TkFCTEUoV0VCWFIpCisgICAgdXNpbmcgTWFrZVhSQ29tcGF0aWJsZVByb21pc2UgPSBET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD47CisgICAgdm9pZCBtYWtlWFJDb21wYXRpYmxlKE1ha2VYUkNvbXBh
dGlibGVQcm9taXNlJiYpOworICAgIGJvb2wgaXNYUkNvbXBhdGlibGUoKSBjb25zdCB7IHJldHVy
biBtX2lzWFJDb21wYXRpYmxlOyB9CisjZW5kaWYKICAgICB2b2lkIHBvbHlnb25PZmZzZXQoR0NH
TGZsb2F0IGZhY3RvciwgR0NHTGZsb2F0IHVuaXRzKTsKICAgICB2b2lkIHJlYWRQaXhlbHMoR0NH
TGludCB4LCBHQ0dMaW50IHksIEdDR0xzaXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NH
TGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBBcnJheUJ1ZmZlclZpZXcmIHBpeGVscyk7CiAg
ICAgdm9pZCByZWxlYXNlU2hhZGVyQ29tcGlsZXIoKTsKQEAgLTEwMjIsNiArMTAzMSwxMCBAQCBw
cml2YXRlOgogICAgIFdlYkdMU3RhdGVUcmFja2VyOjpUb2tlbiBtX3RyYWNrZXJUb2tlbjsKICAg
ICBUaW1lciBtX2NoZWNrRm9yQ29udGV4dExvc3NIYW5kbGluZ1RpbWVyOwogICAgIGJvb2wgbV9p
c1N1c3BlbmRlZCB7IGZhbHNlIH07CisKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgYm9vbCBtX2lz
WFJDb21wYXRpYmxlIHsgZmFsc2UgfTsKKyNlbmRpZgogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaWRsCmluZGV4IDQ1YTdiMzhhYzUyMTZiYzc3OWFmYzNmNGI5ZDRjYjRk
OGFjOWExNzQuLjY2MmIzMzBlZWZlZTRkMDhhM2VjOGEyMGRiZThjMGQwZTM4Mjg2OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaWRsCkBAIC02MDIsNiArNjAyLDkgQEAgdHlwZWRlZiAoSFRNTENhbnZhc0VsZW1l
bnQpIFdlYkdMQ2FudmFzOwogICAgIEdMYm9vbGVhbiBpc1RleHR1cmUoV2ViR0xUZXh0dXJlPyB0
ZXh0dXJlKTsKICAgICB2b2lkIGxpbmVXaWR0aChHTGZsb2F0IHdpZHRoKTsKICAgICB2b2lkIGxp
bmtQcm9ncmFtKFdlYkdMUHJvZ3JhbT8gcHJvZ3JhbSk7CisKKyAgICBbTmV3T2JqZWN0LCBDb25k
aXRpb25hbD1XRUJYUl0gUHJvbWlzZTx2b2lkPiBtYWtlWFJDb21wYXRpYmxlKCk7CisKICAgICB2
b2lkIHBpeGVsU3RvcmVpKEdMZW51bSBwbmFtZSwgR0xpbnQgcGFyYW0pOwogICAgIHZvaWQgcG9s
eWdvbk9mZnNldChHTGZsb2F0IGZhY3RvciwgR0xmbG9hdCB1bml0cyk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzLmgKaW5kZXggODg0MWE0NWY2YTA0MWRiNGJiMTliZDdlZTJlNTc0MDE4YjYw
MmE3Yi4uNWNjYTFkYTIwZTY5NjdkY2Y2ZWFiZTBkNTE2YzJmODA4ZGUyMzk0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzLmgKQEAgLTUzLDYgKzUzLDkgQEAgc3RydWN0IEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyB7CiAgICAgYm9vbCBub0V4dGVuc2lvbnMgeyBmYWxzZSB9OwogICAg
IGZsb2F0IGRldmljZVBpeGVsUmF0aW8geyAxIH07CiAgICAgUG93ZXJQcmVmZXJlbmNlIGluaXRp
YWxQb3dlclByZWZlcmVuY2UgeyBQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKKyNpZiBFTkFC
TEUoV0VCWFIpCisgICAgYm9vbCB4ckNvbXBhdGlibGUgeyBmYWxzZSB9OworI2VuZGlmCiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZGQxMmNlZWNhMjViYTcy
N2ViNjgwNDg4Y2MxZjE1M2E5ZjRhNTc5Yy4uYzcwZTRkZTJhYWQwNTg2YzE4YmRlYzgyYmRhMzll
OTUyZDY3NmI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTcwNiwx
MCArNTcwNiw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxXZWJYUlRlc3Q+PiBJbnRlcm5hbHM6Onhy
VGVzdCgpCiAgICAgICAgIGlmICghbmF2aWdhdG9yKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgICAgIGF1dG8mIG5hdmlnYXRvclhS
ID0gTmF2aWdhdG9yV2ViWFI6OmZyb20oKm5hdmlnYXRvcik7Ci0gICAgICAgIGF1dG8mIHhyU3lz
dGVtID0gbmF2aWdhdG9yWFIueHIoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKm5hdmlnYXRv
cik7Ci0KLSAgICAgICAgbV94clRlc3QgPSBXZWJYUlRlc3Q6OmNyZWF0ZShtYWtlV2Vha1B0cigm
eHJTeXN0ZW0pKTsKKyAgICAgICAgbV94clRlc3QgPSBXZWJYUlRlc3Q6OmNyZWF0ZShtYWtlV2Vh
a1B0cigmTmF2aWdhdG9yV2ViWFI6OnhyKCpuYXZpZ2F0b3IpKSk7CiAgICAgfQogICAgIHJldHVy
biBtX3hyVGVzdC5nZXQoKTsKIH0K
</data>
<flag name="review"
          id="414667"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
      

    </bug>

</bugzilla>