<?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>173104</bug_id>
          
          <creation_ts>2017-06-08 09:51:02 -0700</creation_ts>
          <short_desc>getUserMedia should not be prompted again if user denied access</short_desc>
          <delta_ts>2017-06-09 07:08:23 -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>Media</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>csaavedra</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>jonlee</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1316941</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 09:51:02 -0700</bug_when>
    <thetext>At least until reloading/navigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316945</commentid>
    <comment_count>1</comment_count>
      <attachid>312314</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 10:00:11 -0700</bug_when>
    <thetext>Created attachment 312314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316980</commentid>
    <comment_count>2</comment_count>
      <attachid>312314</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-06-08 10:58:02 -0700</bug_when>
    <thetext>Comment on attachment 312314
Patch

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

r=me with one change

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:208
&gt; +bool UserMediaPermissionRequestManagerProxy::isRequestDenied(uint64_t frameID, const WebCore::SecurityOrigin&amp; userMediaDocumentOrigin, const WebCore::SecurityOrigin&amp; topLevelDocumentOrigin, bool needsAudio, bool needsVideo)

I would call this &quot;wasRequestDenied&quot; because it&apos;s a record of something that happened in the past, and not necessarily a comment on what is or should be happening right now.

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:216
&gt; +        if (deniedRequest.frameID != frameID)
&gt; +            continue;

This seems wrong to me. A page could re-prompt the user infinitely by inserting and removing iframes with getUserMedia calls. Once the user says no to a given domain, that should be the end of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316981</commentid>
    <comment_count>3</comment_count>
      <attachid>312322</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 10:59:19 -0700</bug_when>
    <thetext>Created attachment 312322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316983</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 11:01:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/32381046&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316992</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 11:13:17 -0700</bug_when>
    <thetext>Thanks for the review.

&gt; &gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:216
&gt; &gt; +        if (deniedRequest.frameID != frameID)
&gt; &gt; +            continue;
&gt; 
&gt; This seems wrong to me. A page could re-prompt the user infinitely by
&gt; inserting and removing iframes with getUserMedia calls. Once the user says
&gt; no to a given domain, that should be the end of it.

This departs from the current model, which I think should be simplified.
We can add back the flexibility if we discover the need for it.

This would mean:
- Only care about the main frame for both predenied/pregranted requests
- Only care about the main frame security origin at UIProcess/Client level, frames with different origins are not allowed to do gum calls anyway.
- Reflect in client API that we are only searching for camera/mic access, not per device choice.
We should reflect all of that in our IPC and Client APIs.

I will update the patch with just the deny case now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316996</commentid>
    <comment_count>6</comment_count>
      <attachid>312326</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 11:25:41 -0700</bug_when>
    <thetext>Created attachment 312326
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317013</commentid>
    <comment_count>7</comment_count>
      <attachid>312333</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 12:17:22 -0700</bug_when>
    <thetext>Created attachment 312333
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317020</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-06-08 13:04:09 -0700</bug_when>
    <thetext>&gt; This departs from the current model, which I think should be simplified.
&gt;
&gt; We can add back the flexibility if we discover the need for it.
&gt; 
&gt; This would mean:
&gt; - Only care about the main frame for both predenied/pregranted requests
&gt; - Only care about the main frame security origin at UIProcess/Client level,
&gt; frames with different origins are not allowed to do gum calls anyway.

I&apos;m not an expert on how WebRTC permissions usually work. I wonder what other browsers do.

Other web APIs like storage and geolocation grant or deny permission per domain, rather than per frame or per function call.

I can see some value in prompting more for WebRTC than for storage or geolocation, since we consider storage and geolocation to be optional APIs whose absence shouldn&apos;t break a site, whereas absence of WebRTC will probably break a WebRTC site.

My intuition is that one prompt per main document is probably the right policy to start with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317028</commentid>
    <comment_count>9</comment_count>
      <attachid>312333</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-08 13:37:53 -0700</bug_when>
    <thetext>Comment on attachment 312333
Patch for landing

Clearing flags on attachment: 312333

Committed r217945: &lt;http://trac.webkit.org/changeset/217945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317029</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-08 13:37:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317111</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-06-08 15:49:20 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #9)
&gt; Comment on attachment 312333 [details]
&gt; Patch for landing
&gt; 
&gt; Clearing flags on attachment: 312333
&gt; 
&gt; Committed r217945: &lt;http://trac.webkit.org/changeset/217945&gt;

This broke the GTK+ build with GCC-4.9 : https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20Debian%20Stable%20%28Build%29/builds/2570/steps/compile-webkit/logs/stdio

I suspect its related to the same issue with GCC-4.9 that Yusuke fixed 2 days ago https://trac.webkit.org/changeset/217829/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317119</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 16:15:19 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #11)
&gt; (In reply to WebKit Commit Bot from comment #9)
&gt; &gt; Comment on attachment 312333 [details]
&gt; &gt; Patch for landing
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 312333
&gt; &gt; 
&gt; &gt; Committed r217945: &lt;http://trac.webkit.org/changeset/217945&gt;
&gt; 
&gt; This broke the GTK+ build with GCC-4.9 :
&gt; https://build.webkit.org/builders/GTK%20Linux%2064-
&gt; bit%20Release%20Debian%20Stable%20%28Build%29/builds/2570/steps/compile-
&gt; webkit/logs/stdio
&gt; 
&gt; I suspect its related to the same issue with GCC-4.9 that Yusuke fixed 2
&gt; days ago https://trac.webkit.org/changeset/217829/

Ah, sorry about that. I won&apos;t be able to fix it until tomorrow...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317120</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-06-08 16:17:05 -0700</bug_when>
    <thetext>Looking at Yusuke patch, you might indeed be right. If nobody beats me, I&apos;ll try to fix it tomorrow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317144</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-06-08 17:27:29 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #13)
&gt; Looking at Yusuke patch, you might indeed be right. If nobody beats me, I&apos;ll
&gt; try to fix it tomorrow

(In reply to youenn fablet from comment #12)
&gt; (In reply to Carlos Alberto Lopez Perez from comment #11)
&gt; &gt; (In reply to WebKit Commit Bot from comment #9)
&gt; &gt; &gt; Comment on attachment 312333 [details]
&gt; &gt; &gt; Patch for landing
&gt; &gt; &gt; 
&gt; &gt; &gt; Clearing flags on attachment: 312333
&gt; &gt; &gt; 
&gt; &gt; &gt; Committed r217945: &lt;http://trac.webkit.org/changeset/217945&gt;
&gt; &gt; 
&gt; &gt; This broke the GTK+ build with GCC-4.9 :
&gt; &gt; https://build.webkit.org/builders/GTK%20Linux%2064-
&gt; &gt; bit%20Release%20Debian%20Stable%20%28Build%29/builds/2570/steps/compile-
&gt; &gt; webkit/logs/stdio
&gt; &gt; 
&gt; &gt; I suspect its related to the same issue with GCC-4.9 that Yusuke fixed 2
&gt; &gt; days ago https://trac.webkit.org/changeset/217829/
&gt; 
&gt; Ah, sorry about that. I won&apos;t be able to fix it until tomorrow...

No problem: The GTK+ EWS and the GTK+ release and debug bots run a more recent GCC version (6.3).


We have this bot with GCC 4.9 because its our minimum version supported of the compiler, so we can test that WebKit remains build-able with that.

So, no hurries at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317318</commentid>
    <comment_count>15</comment_count>
    <who name="Claudio Saavedra">csaavedra</who>
    <bug_when>2017-06-09 03:00:11 -0700</bug_when>
    <thetext>I think in this particular case the default initializers are redundant so it&apos;s safe to remove them. The struct is only initialized in one place with all members explicitly. I&apos;ve committed https://trac.webkit.org/changeset/217974/webkit, please feel free to change if you disagree and prefer to have the default initializers and a constructor as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317377</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-06-09 07:08:23 -0700</bug_when>
    <thetext>All struct or class members should always be initialized by default or by the constructor, we should not be playing games with possible use of uninitialized memory. The code instantiating the struct should not have to remember to initialize everything. We know this does not work in practice.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312314</attachid>
            <date>2017-06-08 10:00:11 -0700</date>
            <delta_ts>2017-06-08 10:59:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173104-20170608100011.patch</filename>
            <type>text/plain</type>
            <size>16300</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjliYjRmZTViMjZiMDY0
ZTM3YWNiNjhlNzYzNWZiNTU0MThmMTZkZi4uMDBkYzVlODIyOThmZjc0YTUyMmEyMWJlNmRjMDM4
ZjI5NjRiMGIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA2LTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgc2hv
dWxkIG5vdCBiZSBwcm9tcHRlZCBhZ2FpbiBpZiB1c2VyIGRlbmllZCBhY2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzEwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3JlIGRlbmllZCByZXF1
ZXN0cyB0byBiZSBhYmxlIHRvIHJlcGxheSB0aGVtLgorICAgICAgICBJZiBtaWMgaXMgZGVuaWVk
LCB1c2VyIG1pZ2h0IGJlIHByb21wdGVkIGZvciBjYW1lcmEsIG5vdCBmb3IgbWljIGFuZCBjYW1l
cmEuCisgICAgICAgIFNhbWUgcHJpbmNpcGxlIGFwcGxpZXMgdG8gdGhlIGNhc2Ugb2YgZGVuaWVk
IGNhbWVyYS4KKyAgICAgICAgQ2xlYXJpbmcgdGhlIHN0b3JlZCBkZW5pZWQgcmVxdWVzdHMgd2hl
biByZWxvYWRpbmcvbmF2aWdhdGluZyBhd2F5LgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dh
c0RlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXNldEFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojppc1JlcXVlc3REZW5pZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisKIDIwMTctMDYtMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIGdldFVzZXJNZWRpYSByZXF1ZXN0IHNo
b3VsZCBub3QgYmUgYWxsb3dlZCBmb3IgYmFja2dyb3VuZCB0YWJzIHVubGVzcyB0aGUgdGFiIGlz
IGFscmVhZHkgY2FwdHVyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApp
bmRleCA2NGVkOTIxNjMxODMyNDg5YjMzYjJjMmI5YzIzM2I2MTkzNzI4YTRlLi4yZGE5MjY1Njhj
YTY1MzE4N2MwODUzYjM5NTgzOGQ0ODM3YmEwY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKQEAgLTEyNyw2ICsxMjcsOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3Qg
dQogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHJlYXNvbiA9
PSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246OlBlcm1pc3Npb25EZW5pZWQpCisgICAgICAgIG1fZGVuaWVkUmVxdWVzdHMuYXBwZW5k
KERlbmllZFJlcXVlc3QgeyByZXF1ZXN0LT5mcmFtZUlEKCksIHJlcXVlc3QtPnVzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC0+dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5
T3JpZ2luKCksIHJlcXVlc3QtPnJlcXVpcmVzQXVkaW8oKSwgcmVxdWVzdC0+cmVxdWlyZXNWaWRl
bygpIH0pOworCiAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIHJlYXNvbiwgZW1wdHlTdHJp
bmcoKSk7CiB9CiAKQEAgLTE3MCw2ICsxNzMsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQogICAgICAg
ICByZXR1cm4gZ3JhbnRlZFJlcXVlc3QtPm1haW5GcmFtZUlEKCkgPT0gZnJhbWVJRDsKICAgICB9
KTsKICAgICBtX3ByZWdyYW50ZWRSZXF1ZXN0cy5jbGVhcigpOworICAgIG1fZGVuaWVkUmVxdWVz
dHMuY2xlYXIoKTsKIH0KIAogY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSog
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50ZWRS
ZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBj
b25zdApAQCAtMjAxLDYgKzIwNSwyMyBAQCBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cwogICAgIHJl
dHVybiBudWxscHRyOwogfQogCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Ojppc1JlcXVlc3REZW5pZWQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBi
b29sIG5lZWRzVmlkZW8pCit7CisgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1ZXN0IDog
bV9kZW5pZWRSZXF1ZXN0cykgeworICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3Qu
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxEb2N1
bWVudE9yaWdpbikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGRlbmllZFJl
cXVlc3QuZnJhbWVJRCAhPSBmcmFtZUlEKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGlmIChkZW5pZWRSZXF1ZXN0LmlzQXVkaW9EZW5pZWQgJiYgbmVlZHNBdWRpbykKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZGVuaWVkUmVxdWVzdC5pc1ZpZGVvRGVuaWVk
ICYmIG5lZWRzVmlkZW8pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpncmFudEFjY2Vzcyh1aW50NjRfdCB1c2VyTWVkaWFJRCwgY29uc3QgU3RyaW5nJiBhdWRp
b0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBk
ZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpCiB7CiAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6
OnNpbmdsZXRvbigpLndpbGxDcmVhdGVNZWRpYVN0cmVhbSgqdGhpcywgIWF1ZGlvRGV2aWNlVUlE
LmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNlVUlELmlzRW1wdHkoKSk7CkBAIC0yNTUsNiArMjc2LDEx
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUoCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAorICAgICAgICBpZiAoaXNSZXF1ZXN0RGVuaWVkKGZyYW1lSUQsIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpLCAhYXVkaW9EZXZp
Y2VVSURzLmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNlVUlEcy5pc0VtcHR5KCkpKSB7CisgICAgICAg
ICAgICBkZW55UmVxdWVzdCh1c2VyTWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkLCBlbXB0
eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGF1
dG8qIGdyYW50ZWRSZXF1ZXN0ID0gc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoZnJhbWVJRCwgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4uZ2V0KCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCks
ICFhdWRpb0RldmljZVVJRHMuaXNFbXB0eSgpLCAhdmlkZW9EZXZpY2VVSURzLmlzRW1wdHkoKSk7
CiAgICAgICAgIGlmIChncmFudGVkUmVxdWVzdCkgewogICAgICAgICAgICAgaWYgKG1fcGFnZS5p
c1ZpZXdWaXNpYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IDVl
ZDc3YTQ3NTYyOTNiNWI4MjYxYWVkODA3YzNhN2FiOGMxOTNhZGUuLmUyMWI5YzljNGY5ODQ0NjNj
MTFjMGQ1YTdiYTkyOGNjNTk1NmQ4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCkBAIC03MCw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBncmFudEFjY2Vzcyh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3Ry
aW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNh
bHQpOwogCiAgICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNo
Rm9yR3JhbnRlZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5l
ZWRzVmlkZW8pIGNvbnN0OworICAgIGJvb2wgaXNSZXF1ZXN0RGVuaWVkKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKTsKICNlbmRpZgogICAgIHZvaWQgZ2V0
VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpDb21wbGV0aW9uSGFuZGxlciYm
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsK
IApAQCAtODUsNiArODYsMTUgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxSZWY8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcHJlZ3JhbnRlZFJlcXVlc3RzOwogICAgIFZlY3Rv
cjxSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fZ3JhbnRlZFJlcXVlc3Rz
OworCisgICAgc3RydWN0IERlbmllZFJlcXVlc3QgeworICAgICAgICB1aW50NjRfdCBmcmFtZUlE
OworICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luOworICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcExldmVsRG9j
dW1lbnRPcmlnaW47CisgICAgICAgIGJvb2wgaXNBdWRpb0RlbmllZCB7IGZhbHNlIH07CisgICAg
ICAgIGJvb2wgaXNWaWRlb0RlbmllZCB7IGZhbHNlIH07CisgICAgfTsKKyAgICBWZWN0b3I8RGVu
aWVkUmVxdWVzdD4gbV9kZW5pZWRSZXF1ZXN0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGFmMzc5NzZjNjQ0YjQ5MmMyYzUxYjMzZTFmYTliMjhjN2MwMTk1NmQuLmFlYWFm
ODk5Y2MyODlkZGI4NjY1NTA1ZjA2ZDNjM2U2YmFhOWM4ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxNy0wNi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgZ2V0VXNlck1lZGlhIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgYWdhaW4gaWYgdXNlciBkZW5p
ZWQgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzMxMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1k
ZW55LXBlcnNpc3RlbmN5LXJlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ktcmVsb2FkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVy
c2lzdGVuY3kuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtZGVueS1wZXJzaXN0ZW5jeTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5Mi5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3Rl
bmN5My1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kzLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA2LTA2ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBnZXRVc2VyTWVkaWEg
cmVxdWVzdCBzaG91bGQgbm90IGJlIGFsbG93ZWQgZm9yIGJhY2tncm91bmQgdGFicyB1bmxlc3Mg
dGhlIHRhYiBpcyBhbHJlYWR5IGNhcHR1cmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3Rl
bmN5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NGJkYjFlNGMxN2JhZWU1ODE2YjhmNzU0OTIy
OGRjYjZkZWY5MTcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGRlbnkgcGVyc2lz
dGVuY3kgd2l0aCBhdWRpbyBkZW5pZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ktcmVsb2FkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVy
c2lzdGVuY3ktcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTYyZWJjOTNlODkzYjc0
ODg2MjYzY2NlZTgwZDI1Zjk3MjgxMzZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1yZWxvYWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorSW4gY2FzZSBvZiByZWxvYWQsIGdldFVzZXJNZWRp
YSBkZW55IHN0YXRlIHNob3VsZCBiZSByZXNldAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1yZWxvYWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVy
c2lzdGVuY3ktcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI2OTFkYTU0MWQxYTk2NWZhMTk5MzI5
NjM1YTU0YzE1YjNhMjVmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ktcmVsb2FkLmh0bWwKQEAgLTAs
MCArMSw0NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBp
ZiAod2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKCJndW0tYWZ0ZXItcmVsb2FkIikgPT0gbnVs
bCkgeworICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oImd1bS1hZnRlci1yZWxv
YWQiLCAidHJ1ZSIpCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7CisgICAgICAgIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSku
dGhlbigoKSA9PiB7CisgICAgICAgICAgICByZXN1bHQuaW5uZXJIVE1MID0gIkZBSUwiOworICAg
ICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCgpID0+IHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBl
cm1pc3Npb24odHJ1ZSk7CisgICAgICAgICAgICBpbnRlcm5hbHMuZm9yY2VSZWxvYWQodHJ1ZSk7
CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uu
Y2xlYXIoKTsKKyAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1
ZGlvOnRydWUsIHZpZGVvOnRydWV9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJlc3VsdC5p
bm5lckhUTUwgPSAiUEFTUyI7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgKCkgPT4g
eworICAgICAgICAgICAgcmVzdWx0LmlubmVySFRNTCA9ICJGQUlMIjsKKyAgICAgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJzZXRUaW1lb3V0KHRlc3QsIDApOyI+CisgICAgPGRpdj5JbiBjYXNlIG9mIHJlbG9h
ZCwgZ2V0VXNlck1lZGlhIGRlbnkgc3RhdGUgc2hvdWxkIGJlIHJlc2V0PC9kaXY+CisgICAgPGRp
diBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBl
cnNpc3RlbmN5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjZlMDQ2M2M5NzRhNTFiNjA5ODc1MzkzM2ZlNDll
Mjg0NTc4NmE1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kuaHRtbApAQCAtMCwwICsxLDM1IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJuYXZpZ2F0ZVRvU2FtZVBh
Z2UiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1l
ZGlhUGVybWlzc2lvbihmYWxzZSk7CisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMu
Z2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX0pLnRoZW4oYXNzZXJ0X3VucmVh
Y2hlZCwgKGUpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2Vk
RXJyb3IiKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgICAgICByZXR1cm4gbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVl
fSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgfSkudGhl
bigoKSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86ZmFsc2V9KTsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpm
YWxzZSwgdmlkZW86dHJ1ZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgICAg
IH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9KS50aGVuKGFzc2Vy
dF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwg
Ik5vdEFsbG93ZWRFcnJvciIpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHNh
bWUgcGFnZSBnZXRVc2VyTWVkaWEgZGVueSBwZXJzaXN0ZW5jeSB3aXRoIGF1ZGlvIGRlbmllZCIp
OworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5
Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1kZW55LXBlcnNpc3RlbmN5Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGMyYWUzOGEzNmQ2
NDE2MzAzNWQ0ZDlkMDQ5MTgwNjE0NjFiNDk3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHNhbWUgcGFnZSBnZXRVc2Vy
TWVkaWEgZGVueSBwZXJzaXN0ZW5jeSB3aXRoIHZpZGVvIGRlbmllZCAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5j
eTIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnkt
cGVyc2lzdGVuY3kyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE1ZGZmNDExZTc4NDM1YTZiMTg3OTU0Mjcz
ZmVkNGZiZDc0ZmY0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kyLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibmF2aWdhdGVUb1Nh
bWVQYWdlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KKworcHJvbWlzZV90ZXN0KCh0ZXN0KSA9
PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86ZmFsc2V9KS50aGVuKGFzc2VydF91
bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxs
b3dlZEVycm9yIik7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpm
YWxzZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgICAgIH0pOworICAgIH0p
LnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfSk7CisgICAgfSkudGhlbigoKSA9PiB7
CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVk
aW86dHJ1ZSwgdmlkZW86ZmFsc2V9KS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93ZWRFcnJvciIpOworICAg
ICAgICB9KTsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSkudGhlbihh
c3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5h
bWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiVGVzdGlu
ZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGRlbnkgcGVyc2lzdGVuY3kgd2l0aCB2aWRlbyBkZW5p
ZWQiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0
ZW5jeTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtZGVueS1wZXJzaXN0ZW5jeTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MGEyYzE1
ZGQyNWMzMWE1ZTRlMTcwOTAwM2JkODcwMzczY2U3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5My1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyBzYW1lIHBhZ2UgZ2V0
VXNlck1lZGlhIGRlbnkgcGVyc2lzdGVuY3kgd2l0aCBhdWRpbyBhbmQgdmlkZW8gZGVuaWVkIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1k
ZW55LXBlcnNpc3RlbmN5My5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTAwNDUyZjM5OGM2
OGVlOGI4NGMxZWIwYzg4NGFiMWVmM2M1ZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTMuaHRtbApA
QCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlk
PSJuYXZpZ2F0ZVRvU2FtZVBhZ2UiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorCitwcm9taXNl
X3Rlc3QoKHRlc3QpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7CisgICAgcmV0dXJuIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSku
dGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
bmFtZSwgIk5vdEFsbG93ZWRFcnJvciIpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7Cisg
ICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86
dHJ1ZSwgdmlkZW86ZmFsc2V9KS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93ZWRFcnJvciIpOworICAgICAg
ICB9KTsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0pLnRoZW4oYXNz
ZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1l
LCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgICAgIH0pOworICAgIH0pOworfSwgIlRlc3Rpbmcg
c2FtZSBwYWdlIGdldFVzZXJNZWRpYSBkZW55IHBlcnNpc3RlbmN5IHdpdGggYXVkaW8gYW5kIHZp
ZGVvIGRlbmllZCIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312322</attachid>
            <date>2017-06-08 10:59:19 -0700</date>
            <delta_ts>2017-06-08 11:25:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173104-20170608105916.patch</filename>
            <type>text/plain</type>
            <size>24304</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjliYjRmZTViMjZiMDY0
ZTM3YWNiNjhlNzYzNWZiNTU0MThmMTZkZi4uMDBkYzVlODIyOThmZjc0YTUyMmEyMWJlNmRjMDM4
ZjI5NjRiMGIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA2LTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgc2hv
dWxkIG5vdCBiZSBwcm9tcHRlZCBhZ2FpbiBpZiB1c2VyIGRlbmllZCBhY2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzEwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3JlIGRlbmllZCByZXF1
ZXN0cyB0byBiZSBhYmxlIHRvIHJlcGxheSB0aGVtLgorICAgICAgICBJZiBtaWMgaXMgZGVuaWVk
LCB1c2VyIG1pZ2h0IGJlIHByb21wdGVkIGZvciBjYW1lcmEsIG5vdCBmb3IgbWljIGFuZCBjYW1l
cmEuCisgICAgICAgIFNhbWUgcHJpbmNpcGxlIGFwcGxpZXMgdG8gdGhlIGNhc2Ugb2YgZGVuaWVk
IGNhbWVyYS4KKyAgICAgICAgQ2xlYXJpbmcgdGhlIHN0b3JlZCBkZW5pZWQgcmVxdWVzdHMgd2hl
biByZWxvYWRpbmcvbmF2aWdhdGluZyBhd2F5LgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dh
c0RlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjpyZXNldEFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojppc1JlcXVlc3REZW5pZWQpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJN
ZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisKIDIwMTctMDYtMDYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIGdldFVzZXJNZWRpYSByZXF1ZXN0IHNo
b3VsZCBub3QgYmUgYWxsb3dlZCBmb3IgYmFja2dyb3VuZCB0YWJzIHVubGVzcyB0aGUgdGFiIGlz
IGFscmVhZHkgY2FwdHVyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApp
bmRleCA2NGVkOTIxNjMxODMyNDg5YjMzYjJjMmI5YzIzM2I2MTkzNzI4YTRlLi4yZGE5MjY1Njhj
YTY1MzE4N2MwODUzYjM5NTgzOGQ0ODM3YmEwY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKQEAgLTEyNyw2ICsxMjcsOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3Qg
dQogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKHJlYXNvbiA9
PSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246OlBlcm1pc3Npb25EZW5pZWQpCisgICAgICAgIG1fZGVuaWVkUmVxdWVzdHMuYXBwZW5k
KERlbmllZFJlcXVlc3QgeyByZXF1ZXN0LT5mcmFtZUlEKCksIHJlcXVlc3QtPnVzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC0+dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5
T3JpZ2luKCksIHJlcXVlc3QtPnJlcXVpcmVzQXVkaW8oKSwgcmVxdWVzdC0+cmVxdWlyZXNWaWRl
bygpIH0pOworCiAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIHJlYXNvbiwgZW1wdHlTdHJp
bmcoKSk7CiB9CiAKQEAgLTE3MCw2ICsxNzMsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5OjpyZXNldEFjY2Vzcyh1aW50NjRfdCBmcmFtZUlEKQogICAgICAg
ICByZXR1cm4gZ3JhbnRlZFJlcXVlc3QtPm1haW5GcmFtZUlEKCkgPT0gZnJhbWVJRDsKICAgICB9
KTsKICAgICBtX3ByZWdyYW50ZWRSZXF1ZXN0cy5jbGVhcigpOworICAgIG1fZGVuaWVkUmVxdWVz
dHMuY2xlYXIoKTsKIH0KIAogY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSog
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNlYXJjaEZvckdyYW50ZWRS
ZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKSBj
b25zdApAQCAtMjAxLDYgKzIwNSwyMyBAQCBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5KiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cwogICAgIHJl
dHVybiBudWxscHRyOwogfQogCitib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Ojppc1JlcXVlc3REZW5pZWQodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBi
b29sIG5lZWRzVmlkZW8pCit7CisgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1ZXN0IDog
bV9kZW5pZWRSZXF1ZXN0cykgeworICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3Qu
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbi0+aXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxEb2N1
bWVudE9yaWdpbikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGRlbmllZFJl
cXVlc3QuZnJhbWVJRCAhPSBmcmFtZUlEKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGlmIChkZW5pZWRSZXF1ZXN0LmlzQXVkaW9EZW5pZWQgJiYgbmVlZHNBdWRpbykKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZGVuaWVkUmVxdWVzdC5pc1ZpZGVvRGVuaWVk
ICYmIG5lZWRzVmlkZW8pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpncmFudEFjY2Vzcyh1aW50NjRfdCB1c2VyTWVkaWFJRCwgY29uc3QgU3RyaW5nJiBhdWRp
b0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBk
ZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpCiB7CiAgICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6
OnNpbmdsZXRvbigpLndpbGxDcmVhdGVNZWRpYVN0cmVhbSgqdGhpcywgIWF1ZGlvRGV2aWNlVUlE
LmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNlVUlELmlzRW1wdHkoKSk7CkBAIC0yNTUsNiArMjc2LDEx
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUoCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAorICAgICAgICBpZiAoaXNSZXF1ZXN0RGVuaWVkKGZyYW1lSUQsIHVzZXJNZWRpYURvY3Vt
ZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpLCAhYXVkaW9EZXZp
Y2VVSURzLmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNlVUlEcy5pc0VtcHR5KCkpKSB7CisgICAgICAg
ICAgICBkZW55UmVxdWVzdCh1c2VyTWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkLCBlbXB0
eVN0cmluZygpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIGF1
dG8qIGdyYW50ZWRSZXF1ZXN0ID0gc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoZnJhbWVJRCwgdXNl
ck1lZGlhRG9jdW1lbnRPcmlnaW4uZ2V0KCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCks
ICFhdWRpb0RldmljZVVJRHMuaXNFbXB0eSgpLCAhdmlkZW9EZXZpY2VVSURzLmlzRW1wdHkoKSk7
CiAgICAgICAgIGlmIChncmFudGVkUmVxdWVzdCkgewogICAgICAgICAgICAgaWYgKG1fcGFnZS5p
c1ZpZXdWaXNpYmxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IDVl
ZDc3YTQ3NTYyOTNiNWI4MjYxYWVkODA3YzNhN2FiOGMxOTNhZGUuLmUyMWI5YzljNGY5ODQ0NjNj
MTFjMGQ1YTdiYTkyOGNjNTk1NmQ4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCkBAIC03MCw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBncmFudEFjY2Vzcyh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3Ry
aW5nJiB2aWRlb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNh
bHQpOwogCiAgICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSogc2VhcmNo
Rm9yR3JhbnRlZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5l
ZWRzVmlkZW8pIGNvbnN0OworICAgIGJvb2wgaXNSZXF1ZXN0RGVuaWVkKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKTsKICNlbmRpZgogICAgIHZvaWQgZ2V0
VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpDb21wbGV0aW9uSGFuZGxlciYm
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsK
IApAQCAtODUsNiArODYsMTUgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxSZWY8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcHJlZ3JhbnRlZFJlcXVlc3RzOwogICAgIFZlY3Rv
cjxSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fZ3JhbnRlZFJlcXVlc3Rz
OworCisgICAgc3RydWN0IERlbmllZFJlcXVlc3QgeworICAgICAgICB1aW50NjRfdCBmcmFtZUlE
OworICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luOworICAgICAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcExldmVsRG9j
dW1lbnRPcmlnaW47CisgICAgICAgIGJvb2wgaXNBdWRpb0RlbmllZCB7IGZhbHNlIH07CisgICAg
ICAgIGJvb2wgaXNWaWRlb0RlbmllZCB7IGZhbHNlIH07CisgICAgfTsKKyAgICBWZWN0b3I8RGVu
aWVkUmVxdWVzdD4gbV9kZW5pZWRSZXF1ZXN0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGFmMzc5NzZjNjQ0YjQ5MmMyYzUxYjMzZTFmYTliMjhjN2MwMTk1NmQuLjIyNDAx
ZGY5YWU4ZTBhOGFlNjgyYTEwMzI3ZTQ0NTE2ZTJlZDcxYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBA
QAorMjAxNy0wNi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgZ2V0VXNlck1lZGlhIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgYWdhaW4gaWYgdXNlciBkZW5p
ZWQgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzMxMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTcGxpdHRpbmcgZ3JhbnQgdGVzdCBkdWUgdG8gcmVtZW1iZXJpbmcgZGVueSBkZWNpc2lvbnMu
CisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3Rl
bmN5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LXJl
bG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1kZW55LXBlcnNpc3RlbmN5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVu
eS1wZXJzaXN0ZW5jeTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5My5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQt
cGVyc2lzdGVuY3kuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1ncmFudC1wZXJzaXN0ZW5jeTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTIuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVu
Y3kzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kzLmh0bWw6IEFkZGVkLgorCisKIDIwMTctMDYtMDYg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIGdldFVzZXJNZWRp
YSByZXF1ZXN0IHNob3VsZCBub3QgYmUgYWxsb3dlZCBmb3IgYmFja2dyb3VuZCB0YWJzIHVubGVz
cyB0aGUgdGFiIGlzIGFscmVhZHkgY2FwdHVyaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lz
dGVuY3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YmRiMWU0YzE3YmFlZTU4MTZiOGY3NTQ5
MjI4ZGNiNmRlZjkxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEgZGVueSBwZXJz
aXN0ZW5jeSB3aXRoIGF1ZGlvIGRlbmllZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1yZWxvYWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1w
ZXJzaXN0ZW5jeS1yZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhNjJlYmM5M2U4OTNi
NzQ4ODYyNjNjY2VlODBkMjVmOTcyODEzNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LXJlbG9hZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitJbiBjYXNlIG9mIHJlbG9hZCwgZ2V0VXNlck1l
ZGlhIGRlbnkgc3RhdGUgc2hvdWxkIGJlIHJlc2V0CitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LXJlbG9h
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1w
ZXJzaXN0ZW5jeS1yZWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjY5MWRhNTQxZDFhOTY1ZmExOTkz
Mjk2MzVhNTRjMTViM2EyNWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1yZWxvYWQuaHRtbApAQCAt
MCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CitmdW5jdGlvbiB0ZXN0KCkgeworICAg
IGlmICh3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oImd1bS1hZnRlci1yZWxvYWQiKSA9PSBu
dWxsKSB7CisgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZ3VtLWFmdGVyLXJl
bG9hZCIsICJ0cnVlIikKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKKyAgICAgICAgbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiRkFJTCI7Cisg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0sKCkgPT4geworICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlh
UGVybWlzc2lvbih0cnVlKTsKKyAgICAgICAgICAgIGludGVybmFscy5mb3JjZVJlbG9hZCh0cnVl
KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgd2luZG93LmxvY2FsU3RvcmFn
ZS5jbGVhcigpOworICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmVzdWx0
LmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAoKSA9
PiB7CisgICAgICAgICAgICByZXN1bHQuaW5uZXJIVE1MID0gIkZBSUwiOworICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InNldFRpbWVvdXQodGVzdCwgMCk7Ij4KKyAgICA8ZGl2PkluIGNhc2Ugb2YgcmVs
b2FkLCBnZXRVc2VyTWVkaWEgZGVueSBzdGF0ZSBzaG91bGQgYmUgcmVzZXQ8L2Rpdj4KKyAgICA8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVu
Y3kuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnkt
cGVyc2lzdGVuY3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmUwNDYzYzk3NGE1MWI2MDk4NzUzOTMzZmU0
OWUyODQ1Nzg2YTVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS5odG1sCkBAIC0wLDAgKzEsMzUgQEAK
KzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYgaWQ9Im5hdmlnYXRlVG9TYW1l
UGFnZSI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4g
eworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKKyAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfSkudGhlbihhc3NlcnRfdW5y
ZWFjaGVkLCAoZSkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93
ZWRFcnJvciIpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgIHJldHVybiBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRy
dWV9KS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93ZWRFcnJvciIpOworICAgICAgICB9KTsKKyAgICB9KS50
aGVuKCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0pOworICAgIH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlv
OmZhbHNlLCB2aWRlbzp0cnVlfSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAg
ICAgfSk7CisgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVk
aWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0pLnRoZW4oYXNz
ZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1l
LCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgICAgIH0pOworICAgIH0pOworfSwgIlRlc3Rpbmcg
c2FtZSBwYWdlIGdldFVzZXJNZWRpYSBkZW55IHBlcnNpc3RlbmN5IHdpdGggYXVkaW8gZGVuaWVk
Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVu
Y3kyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1l
ZGlhLWRlbnktcGVyc2lzdGVuY3kyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzJhZTM4YTM2
ZDY0MTYzMDM1ZDRkOWQwNDkxODA2MTQ2MWI0OTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3Rpbmcgc2FtZSBwYWdlIGdldFVz
ZXJNZWRpYSBkZW55IHBlcnNpc3RlbmN5IHdpdGggdmlkZW8gZGVuaWVkIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3Rl
bmN5Mi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVu
eS1wZXJzaXN0ZW5jeTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTVkZmY0MTFlNzg0MzVhNmIxODc5NTQy
NzNmZWQ0ZmJkNzRmZjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTIuaHRtbApAQCAtMCwwICsxLDM1
IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJuYXZpZ2F0ZVRv
U2FtZVBhZ2UiPjwvZGl2PgorICAgICAgICA8c2NyaXB0PgorCitwcm9taXNlX3Rlc3QoKHRlc3Qp
ID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0
VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7CisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0pLnRoZW4oYXNzZXJ0
X3VucmVhY2hlZCwgKGUpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RB
bGxvd2VkRXJyb3IiKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgICAgICByZXR1
cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVv
OmZhbHNlfSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAg
fSkudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KTsKKyAgICB9KS50aGVuKCgpID0+
IHsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHth
dWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7Cisg
ICAgICAgIH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9KS50aGVu
KGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
bmFtZSwgIk5vdEFsbG93ZWRFcnJvciIpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJUZXN0
aW5nIHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEgZGVueSBwZXJzaXN0ZW5jeSB3aXRoIHZpZGVvIGRl
bmllZCIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNp
c3RlbmN5My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVz
ZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcwYTJj
MTVkZDI1YzMxYTVlNGUxNzA5MDAzYmQ4NzAzNzNjZTdmNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHNhbWUgcGFnZSBn
ZXRVc2VyTWVkaWEgZGVueSBwZXJzaXN0ZW5jeSB3aXRoIGF1ZGlvIGFuZCB2aWRlbyBkZW5pZWQg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlh
LWRlbnktcGVyc2lzdGVuY3kzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dl
dFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMDA0NTJmMzk4
YzY4ZWU4Yjg0YzFlYjBjODg0YWIxZWYzYzVlNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5My5odG1s
CkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxkaXYg
aWQ9Im5hdmlnYXRlVG9TYW1lUGFnZSI+PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisKK3Byb21p
c2VfdGVzdCgodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKKyAgICByZXR1cm4gbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9
KS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsK
KyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzp0cnVlLCB2aWRlbzpmYWxzZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAg
ICAgIH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOmZhbHNlfSkudGhlbihh
c3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5h
bWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiVGVzdGlu
ZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGRlbnkgcGVyc2lzdGVuY3kgd2l0aCBhdWRpbyBhbmQg
dmlkZW8gZGVuaWVkIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdy
YW50LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4dAppbmRleCBiZjgw
NTdiNzgyZjM0NGYxZGNiYjljNzdjMmViYzAwN2ZiZTI5M2JiLi4wMzg3MzA2NzQzY2QwOTgzNTM1
MTI3MDBlZGQ4NjIxNGRlYjQyNjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVu
Y3ktZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAogCiBQQVNTIFRlc3Rpbmcgc2FtZSBwYWdl
IGdldFVzZXJNZWRpYSBncmFudCBwZXJzaXN0ZW5jeSAKLVBBU1MgVGVzdGluZyBzYW1lIHBhZ2Ug
Z2V0VXNlck1lZGlhIGdyYW50IHBlcnNpc3RlbmN5IGFmdGVyIGluIHBhZ2UgbmF2aWdhdGlvbiAK
LUZBSUwgVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGdyYW50IHBlcnNpc3RlbmN5IHdp
dGggdmlzaWJpbGl0eSBhc3NlcnRfdHJ1ZTogUmVzb2x2aW5nIGdldFVzZXJNZWRpYSBwcm9taXNl
IHNob3VsZCB3YWl0IGZvciBwYWdlIHRvIGJlIHZpc2libGUgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFs
c2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtZ3JhbnQtcGVyc2lzdGVuY3kuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
Z2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5Lmh0bWwKaW5kZXggMTcyYjU0MzM5YzEzODA0
NjNhZDc3NTRiMjkyNTliOWU3YWRlMzU2OC4uNGEwZDY1Mzc5MWJhY2Q3YmZjZTJjNzgxNzY1ZDYw
ZDQ4ZWQ1ZmM5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeS5odG1sCkBAIC01LDkgKzUs
NyBAQAogICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+Ci0gICAgICAgIDxkaXYg
aWQ9Im5hdmlnYXRlVG9TYW1lUGFnZSI+PC9kaXY+CiAgICAgICAgIDxzY3JpcHQ+Ci0KIHByb21p
c2VfdGVzdCgodGVzdCkgPT4gewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwpAQCAtMTYsMTAgKzE0LDYg
QEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOwogICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlh
RGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfSk7CiAgICAgfSku
dGhlbigoKSA9PiB7Ci0gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86ZmFsc2V9KS50aGVuKGFzc2VydF91bnJlYWNoZWQs
IChlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93ZWRF
cnJvciIpOwotICAgICAgICB9KTsKLSAgICB9KS50aGVuKCgpID0+IHsKICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJt
aXNzaW9uKHRydWUpOwogICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOmZhbHNlfSk7CkBAIC0yOSw0MyArMjMsNiBAQCBw
cm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURl
dmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSk7CiAgICAgfSk7CiB9
LCAiVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGdyYW50IHBlcnNpc3RlbmN5Iik7Ci0K
LXByb21pc2VfdGVzdCgodGVzdCkgPT4gewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwotICAgIHJldHVy
biBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVv
OnRydWV9KS50aGVuKChzdHJlYW0pID0+IHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsK
LSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzpmYWxzZSwgdmlkZW86dHJ1ZX0pOwotICAgIH0pLnRoZW4oKCkgPT4gewotICAgIH0pLnRoZW4o
KCkgPT4gewotICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiI25hdmlnYXRlVG9TYW1lUGFnZSI7
Ci0gICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KTsKLSAgICB9KTsKLX0s
ICJUZXN0aW5nIHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgYWZ0ZXIg
aW4gcGFnZSBuYXZpZ2F0aW9uIik7Ci0KLXByb21pc2VfdGVzdCgodGVzdCkgPT4gewotICAgIHZh
ciBpc1BhZ2VWaXNpYmxlID0gdHJ1ZTsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
ICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKLSAgICByZXR1cm4g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0
cnVlfSkudGhlbigoc3RyZWFtKSA9PiB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7Ci0g
ICAgICAgIGlzUGFnZVZpc2libGUgPSBmYWxzZTsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7
Ci0gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAgaXNQYWdlVmlzaWJsZSA9
IHRydWU7Ci0gICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRQYWdlVmlzaWJpbGl0eSgpOwotICAgICAgICB9LCAxMDAwKTsKLSAg
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpm
YWxzZSwgdmlkZW86dHJ1ZX0pOwotICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRf
dHJ1ZShpc1BhZ2VWaXNpYmxlLCAiUmVzb2x2aW5nIGdldFVzZXJNZWRpYSBwcm9taXNlIHNob3Vs
ZCB3YWl0IGZvciBwYWdlIHRvIGJlIHZpc2libGUiKTsKLSAgICB9KTsKLX0sICJUZXN0aW5nIHNh
bWUgcGFnZSBnZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgd2l0aCB2aXNpYmlsaXR5Iik7
Ci0KICAgICAgICAgPC9zY3JpcHQ+CiAgICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVu
Y3kyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1l
ZGlhLWdyYW50LXBlcnNpc3RlbmN5Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2QzZWZkZjQy
N2I1YjJjYmQxZWFlYjE1ZjUwNmQyYThlN2ZiY2VlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5Mi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyBzYW1lIHBhZ2UgZ2V0
VXNlck1lZGlhIGdyYW50IHBlcnNpc3RlbmN5IGFmdGVyIGluIHBhZ2UgbmF2aWdhdGlvbiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3Jh
bnQtcGVyc2lzdGVuY3kyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVz
ZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE2ODdkNjVhYzFm
YjgyYWU4YTY2ZmU4MjIwNTE3YjhiZDZjOTAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kyLmh0bWwK
QEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBp
ZD0ibmF2aWdhdGVUb1NhbWVQYWdlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KK3Byb21pc2Vf
dGVzdCgodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgIHJldHVybiBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KS50
aGVuKChzdHJlYW0pID0+IHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKKyAgICAgICAg
cmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwg
dmlkZW86dHJ1ZX0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgIH0pLnRoZW4oKCkgPT4gewor
ICAgICAgICB3aW5kb3cubG9jYXRpb24gPSAiI25hdmlnYXRlVG9TYW1lUGFnZSI7CisgICAgfSku
dGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KTsKKyAgICB9KTsKK30sICJUZXN0aW5n
IHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgYWZ0ZXIgaW4gcGFnZSBu
YXZpZ2F0aW9uIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50
LXBlcnNpc3RlbmN5My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcxZjgzOGRmY2MyMzhhYzRkOTQ5MTY0Y2ZmMDc1NDNiNGYwZTlkMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJz
aXN0ZW5jeTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3Rpbmcgc2Ft
ZSBwYWdlIGdldFVzZXJNZWRpYSBncmFudCBwZXJzaXN0ZW5jeSB3aXRoIHZpc2liaWxpdHkgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdy
YW50LXBlcnNpc3RlbmN5My5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRV
c2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBkN2E1MjlmNzk2
ZGVmNTE4YTU4ZDVkNWFkN2YzZjQ4ZDkxMmI4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5My5odG1s
CkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3Jp
cHQ+Citwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKKyAgICB2YXIgaXNQYWdlVmlzaWJsZSA9IHRy
dWU7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX0pLnRoZW4oKHN0cmVhbSkg
PT4geworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworICAgICAgICBpc1BhZ2VWaXNpYmxl
ID0gZmFsc2U7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOworICAgICAgICBzZXRUaW1lb3V0
KCgpID0+IHsKKyAgICAgICAgICAgIGlzUGFnZVZpc2libGUgPSB0cnVlOworICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UGFn
ZVZpc2liaWxpdHkoKTsKKyAgICAgICAgfSwgMTAwMCk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KTsK
KyAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoaXNQYWdlVmlzaWJsZSwg
IlJlc29sdmluZyBnZXRVc2VyTWVkaWEgcHJvbWlzZSBzaG91bGQgd2FpdCBmb3IgcGFnZSB0byBi
ZSB2aXNpYmxlIik7CisgICAgfSk7Cit9LCAiVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlh
IGdyYW50IHBlcnNpc3RlbmN5IHdpdGggdmlzaWJpbGl0eSIpOworICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312326</attachid>
            <date>2017-06-08 11:25:41 -0700</date>
            <delta_ts>2017-06-08 12:17:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173104-20170608112541.patch</filename>
            <type>text/plain</type>
            <size>24156</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWMwYWRhOGNjMGRkNjhl
OTg3YTkxNTA5YmMzYmIzNGU3ZTYwNzkzNi4uNzRkNzNjZTZmZDdlNGFjMzQ1Nzc0Zjc1OTI0ZGRm
MGYwOTUzNDdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA2LTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgc2hv
dWxkIG5vdCBiZSBwcm9tcHRlZCBhZ2FpbiBpZiB1c2VyIGRlbmllZCBhY2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzEwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIFN0b3JlIGRlbmllZCByZXF1ZXN0
cyB0byBiZSBhYmxlIHRvIHJlcGxheSB0aGVtLgorICAgICAgICBJZiBtaWMgaXMgZGVuaWVkLCB1
c2VyIG1pZ2h0IGJlIHByb21wdGVkIGZvciBjYW1lcmEsIG5vdCBmb3IgbWljIGFuZCBjYW1lcmEu
CisgICAgICAgIFNhbWUgcHJpbmNpcGxlIGFwcGxpZXMgdG8gdGhlIGNhc2Ugb2YgZGVuaWVkIGNh
bWVyYS4KKyAgICAgICAgQ2xlYXJpbmcgdGhlIHN0b3JlZCBkZW5pZWQgcmVxdWVzdHMgd2hlbiBy
ZWxvYWRpbmcvbmF2aWdhdGluZyBhd2F5LgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0Rl
bmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpyZXNldEFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Ojppc1JlcXVlc3REZW5pZWQpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisKIDIwMTctMDYtMDggIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50cyBvZiB0aGUgV0syIEMtQVBJIGRv
bid0IGhhdmUgdGhlaXIgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQg
c2V0dGluZyBpbml0aWFsaXplZCBjb3JyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcAppbmRleCA2NGVkOTIxNjMxODMyNDg5YjMzYjJjMmI5YzIzM2I2MTkzNzI4YTRl
Li5lZTdhZDJhMzQ0NGI3ZTgzYzFmMDdiNWUzYzlkMmY1MzE2YWIyNDQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTEyNyw2ICsxMjcsOSBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFBY2Nlc3NXYXNEZW5p
ZWQodWludDY0X3QgdQogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKHJlYXNvbiA9PSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpCisgICAgICAgIG1fZGVuaWVkUmVx
dWVzdHMuYXBwZW5kKERlbmllZFJlcXVlc3QgeyByZXF1ZXN0LT5tYWluRnJhbWVJRCgpLCByZXF1
ZXN0LT51c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QtPnRvcExldmVs
RG9jdW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LT5yZXF1aXJlc0F1ZGlvKCksIHJlcXVl
c3QtPnJlcXVpcmVzVmlkZW8oKSB9KTsKKwogICAgIGRlbnlSZXF1ZXN0KHVzZXJNZWRpYUlELCBy
ZWFzb24sIGVtcHR5U3RyaW5nKCkpOwogfQogCkBAIC0xNzAsNiArMTczLDcgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3ModWludDY0X3Qg
ZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGdyYW50ZWRSZXF1ZXN0LT5tYWluRnJhbWVJRCgpID09
IGZyYW1lSUQ7CiAgICAgfSk7CiAgICAgbV9wcmVncmFudGVkUmVxdWVzdHMuY2xlYXIoKTsKKyAg
ICBtX2RlbmllZFJlcXVlc3RzLmNsZWFyKCk7CiB9CiAKIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpz
ZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJv
b2wgbmVlZHNWaWRlbykgY29uc3QKQEAgLTIwMSw2ICsyMDUsMjMgQEAgY29uc3QgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorYm9vbCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pCit7CisgICAgZm9yIChjb25zdCBh
dXRvJiBkZW5pZWRSZXF1ZXN0IDogbV9kZW5pZWRSZXF1ZXN0cykgeworICAgICAgICBpZiAoIWRl
bmllZFJlcXVlc3QudXNlck1lZGlhRG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0
KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBpZiAoIWRlbmllZFJlcXVlc3QudG9wTGV2ZWxEb2N1bWVudE9yaWdpbi0+aXNTYW1lU2NoZW1l
SG9zdFBvcnQodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgaWYgKGRlbmllZFJlcXVlc3QubWFpbkZyYW1lSUQgIT0gbWFpbkZyYW1lSUQpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGRlbmllZFJlcXVlc3QuaXNBdWRpb0Rl
bmllZCAmJiBuZWVkc0F1ZGlvKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlm
IChkZW5pZWRSZXF1ZXN0LmlzVmlkZW9EZW5pZWQgJiYgbmVlZHNWaWRlbykKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdyYW50QWNjZXNzKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZp
ZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkKIHsK
ICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkud2lsbENyZWF0ZU1lZGlh
U3RyZWFtKCp0aGlzLCAhYXVkaW9EZXZpY2VVSUQuaXNFbXB0eSgpLCAhdmlkZW9EZXZpY2VVSUQu
aXNFbXB0eSgpKTsKQEAgLTI1NSw2ICsyNzYsMTEgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmICh3YXNSZXF1ZXN0
RGVuaWVkKG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbi5nZXQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSwgIWF1ZGlvRGV2aWNlVUlE
cy5pc0VtcHR5KCksICF2aWRlb0RldmljZVVJRHMuaXNFbXB0eSgpKSkgeworICAgICAgICAgICAg
ZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCwgZW1wdHlTdHJp
bmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBhdXRvKiBn
cmFudGVkUmVxdWVzdCA9IHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KGZyYW1lSUQsIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpLCAhYXVk
aW9EZXZpY2VVSURzLmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNlVUlEcy5pc0VtcHR5KCkpOwogICAg
ICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QpIHsKICAgICAgICAgICAgIGlmIChtX3BhZ2UuaXNWaWV3
VmlzaWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA1ZWQ3N2E0
NzU2MjkzYjViODI2MWFlZDgwN2MzYTdhYjhjMTkzYWRlLi5kMjc5YTQ1ZWE5ZjA1ZTQ3Nzg4MjQz
NDJhNzcyZDBkNWZiNzVkYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApA
QCAtNzAsNiArNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ3JhbnRBY2Nlc3ModWludDY0X3Qg
dXNlck1lZGlhSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYg
dmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsK
IAogICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdy
YW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1Zp
ZGVvKSBjb25zdDsKKyAgICBib29sIHdhc1JlcXVlc3REZW5pZWQoY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29s
IG5lZWRzVmlkZW8pOwogI2VuZGlmCiAgICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5m
byh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHk6OkNvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwogCkBAIC04NSw2ICs4NiwxNSBAQCBw
cml2YXRlOgogCiAgICAgVmVjdG9yPFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
Pj4gbV9wcmVncmFudGVkUmVxdWVzdHM7CiAgICAgVmVjdG9yPFJlZjxVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5Pj4gbV9ncmFudGVkUmVxdWVzdHM7CisKKyAgICBzdHJ1Y3QgRGVuaWVk
UmVxdWVzdCB7CisgICAgICAgIHVpbnQ2NF90IG1haW5GcmFtZUlEOworICAgICAgICBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luOworICAgICAgICBS
ZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcExldmVsRG9jdW1lbnRPcmlnaW47CisgICAg
ICAgIGJvb2wgaXNBdWRpb0RlbmllZCB7IGZhbHNlIH07CisgICAgICAgIGJvb2wgaXNWaWRlb0Rl
bmllZCB7IGZhbHNlIH07CisgICAgfTsKKyAgICBWZWN0b3I8RGVuaWVkUmVxdWVzdD4gbV9kZW5p
ZWRSZXF1ZXN0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMwMDQzODQ3
ZjJhMTY5OTI5OGIzYzI0MjkwMjljOWE3YjBkMWRlNDMuLjY3NzRiMTNiYmUwMDhjY2RmNTg4NGJi
YzZmYzYwMzAxMjAxYTdkNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNy0wNi0wOCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0VXNlck1lZGlhIHNo
b3VsZCBub3QgYmUgcHJvbXB0ZWQgYWdhaW4gaWYgdXNlciBkZW5pZWQgYWNjZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMxMDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBTcGxpdHRpbmcgZ3JhbnQgdGVz
dCBkdWUgdG8gcmVtZW1iZXJpbmcgZGVueSBkZWNpc2lvbnMuCisKKyAgICAgICAgKiBmYXN0L21l
ZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0
ZW5jeS1yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LXJlbG9hZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnkt
cGVyc2lzdGVuY3kyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1k
ZW55LXBlcnNpc3RlbmN5My5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldFVzZXJN
ZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lz
dGVuY3kzLmh0bWw6IEFkZGVkLgorCisKIDIwMTctMDYtMDggIE1hcmNvcyBDaGF2YXJyw61hIFRl
aWplaXJvICA8Y2hhdmFycmlhMTk5MUBnbWFpbC5jb20+CiAKICAgICAgICAgTW9kaWZ5IHNlY3Vy
aXR5IHRlc3QgdG8gYXZvaWQgc3BhY2luZyBkaWZmZXJlbmNlcy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ktZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVu
eS1wZXJzaXN0ZW5jeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiZGIxZTRjMTdiYWVlNTgx
NmI4Zjc1NDkyMjhkY2I2ZGVmOTE3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ktZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3Rpbmcgc2FtZSBwYWdlIGdldFVzZXJNZWRpYSBk
ZW55IHBlcnNpc3RlbmN5IHdpdGggYXVkaW8gZGVuaWVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LXJlbG9h
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1kZW55LXBlcnNpc3RlbmN5LXJlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE2MmVi
YzkzZTg5M2I3NDg4NjI2M2NjZWU4MGQyNWY5NzI4MTM2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kt
cmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK0luIGNhc2Ugb2YgcmVsb2FkLCBn
ZXRVc2VyTWVkaWEgZGVueSBzdGF0ZSBzaG91bGQgYmUgcmVzZXQKK1BBU1MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVu
Y3ktcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1kZW55LXBlcnNpc3RlbmN5LXJlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiNjkxZGE1NDFkMWE5
NjVmYTE5OTMyOTYzNWE1NGMxNWIzYTI1ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LXJlbG9hZC5o
dG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KK2Z1bmN0aW9uIHRlc3Qo
KSB7CisgICAgaWYgKHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZ3VtLWFmdGVyLXJlbG9h
ZCIpID09IG51bGwpIHsKKyAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJndW0t
YWZ0ZXItcmVsb2FkIiwgInRydWUiKQorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworICAg
ICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlk
ZW86dHJ1ZX0pLnRoZW4oKCkgPT4geworICAgICAgICAgICAgcmVzdWx0LmlubmVySFRNTCA9ICJG
QUlMIjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwoKSA9PiB7CisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgICAgICAgICAgaW50ZXJuYWxzLmZvcmNlUmVs
b2FkKHRydWUpOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICB3aW5kb3cubG9j
YWxTdG9yYWdlLmNsZWFyKCk7CisgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNl
ck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSkudGhlbigoKSA9PiB7CisgICAgICAgICAg
ICByZXN1bHQuaW5uZXJIVE1MID0gIlBBU1MiOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0sICgpID0+IHsKKyAgICAgICAgICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiRkFJTCI7CisgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCh0ZXN0LCAwKTsiPgorICAgIDxkaXY+SW4gY2Fz
ZSBvZiByZWxvYWQsIGdldFVzZXJNZWRpYSBkZW55IHN0YXRlIHNob3VsZCBiZSByZXNldDwvZGl2
PgorICAgIDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1w
ZXJzaXN0ZW5jeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtZGVueS1wZXJzaXN0ZW5jeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYzUwODI5MzE0NmQ0YmM3Yjg4
N2Q3MGIxNjE5NzIyMjAxZTYzOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5Lmh0bWwKQEAgLTAsMCAr
MSwzNCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKworcHJv
bWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworICAgIHJldHVybiBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRy
dWV9KS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgIGFzc2VydF9lcXVh
bHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVl
KTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHth
dWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7Cisg
ICAgICAgIH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOmZhbHNlfSk7Cisg
ICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KS50aGVuKGFzc2VydF91bnJl
YWNoZWQsIChlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFs
bG93ZWRFcnJvciIpOworICAgICAgICB9KTsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
cmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2
aWRlbzp0cnVlfSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7Cit9LCAiVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGRlbnkgcGVyc2lzdGVu
Y3kgd2l0aCBhdWRpbyBkZW5pZWQiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtZGVueS1wZXJzaXN0ZW5jeTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhjMmFlMzhhMzZkNjQxNjMwMzVkNGQ5ZDA0OTE4MDYxNDYxYjQ5NzUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1k
ZW55LXBlcnNpc3RlbmN5Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVz
dGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGRlbnkgcGVyc2lzdGVuY3kgd2l0aCB2aWRlbyBk
ZW5pZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLWRlbnktcGVyc2lzdGVuY3kyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkZTg1
NDJlMTYwMWZhYzI2ODZjMzVlMGRmN2RlMDM4MGYyZDVmOWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5
Mi5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxzY3JpcHQ+CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNl
KTsKKyAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlv
OnRydWUsIHZpZGVvOmZhbHNlfSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93ZWRFcnJvciIpOworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRp
YVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86ZmFsc2V9KS50aGVuKGFzc2VydF91bnJl
YWNoZWQsIChlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFs
bG93ZWRFcnJvciIpOworICAgICAgICB9KTsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAg
cmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwg
dmlkZW86dHJ1ZX0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOmZhbHNlfSku
dGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgfSkudGhlbigo
KSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7
CisgICAgICAgIH0pOworICAgIH0pOworfSwgIlRlc3Rpbmcgc2FtZSBwYWdlIGdldFVzZXJNZWRp
YSBkZW55IHBlcnNpc3RlbmN5IHdpdGggdmlkZW8gZGVuaWVkIik7CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzBhMmMxNWRkMjVjMzFhNWU0ZTE3MDkwMDNiZDg3
MDM3M2NlN2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIFRlc3Rpbmcgc2FtZSBwYWdlIGdldFVzZXJNZWRpYSBkZW55IHBlcnNpc3Rl
bmN5IHdpdGggYXVkaW8gYW5kIHZpZGVvIGRlbmllZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVu
Y3kzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFjYjlkZTI3ZDBjNTQwZjE5ODgzOGJjNDBkNDgwM2I4ZjUx
NDE1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kzLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwv
aGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KKworcHJvbWlzZV90ZXN0KCh0ZXN0
KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOworICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0pLnRoZW4oYXNzZXJ0
X3VucmVhY2hlZCwgKGUpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RB
bGxvd2VkRXJyb3IiKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgICAgICByZXR1
cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVv
OmZhbHNlfSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAg
fSkudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86ZmFsc2V9KS50aGVuKGFzc2VydF91bnJlYWNo
ZWQsIChlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93
ZWRFcnJvciIpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHNhbWUgcGFnZSBn
ZXRVc2VyTWVkaWEgZGVueSBwZXJzaXN0ZW5jeSB3aXRoIGF1ZGlvIGFuZCB2aWRlbyBkZW5pZWQi
KTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVu
Y3ktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtZ3JhbnQtcGVyc2lzdGVuY3ktZXhwZWN0ZWQudHh0CmluZGV4IGJmODA1N2I3ODJmMzQ0ZjFk
Y2JiOWM3N2MyZWJjMDA3ZmJlMjkzYmIuLjAzODczMDY3NDNjZDA5ODM1MzUxMjcwMGVkZDg2MjE0
ZGViNDI2MGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeS1leHBlY3RlZC50
eHQKQEAgLTEsNSArMSwzIEBACiAKIFBBU1MgVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlh
IGdyYW50IHBlcnNpc3RlbmN5IAotUEFTUyBUZXN0aW5nIHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEg
Z3JhbnQgcGVyc2lzdGVuY3kgYWZ0ZXIgaW4gcGFnZSBuYXZpZ2F0aW9uIAotRkFJTCBUZXN0aW5n
IHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgd2l0aCB2aXNpYmlsaXR5
IGFzc2VydF90cnVlOiBSZXNvbHZpbmcgZ2V0VXNlck1lZGlhIHByb21pc2Ugc2hvdWxkIHdhaXQg
Zm9yIHBhZ2UgdG8gYmUgdmlzaWJsZSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJz
aXN0ZW5jeS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
Z3JhbnQtcGVyc2lzdGVuY3kuaHRtbAppbmRleCA2NWI0ODQwMmM2ZDE5ZWNmNzVmNDk4ZGY0MjU3
NzIyNjFjMWUxOTM1Li40YTBkNjUzNzkxYmFjZDdiZmNlMmM3ODE3NjVkNjBkNDhlZDVmYzkzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFu
dC1wZXJzaXN0ZW5jeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5Lmh0bWwKQEAgLTUsOSArNSw3IEBACiAgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgogICAgIDwvaGVhZD4KICAgICA8Ym9keT4KLSAgICAgICAgPGRpdiBpZD0ibmF2aWdhdGVU
b1NhbWVQYWdlIj48L2Rpdj4KICAgICAgICAgPHNjcmlwdD4KLQogcHJvbWlzZV90ZXN0KCh0ZXN0
KSA9PiB7CiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICB0ZXN0UnVubmVyLnNl
dFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CkBAIC0xNiwxMCArMTQsNiBAQCBwcm9taXNlX3Rl
c3QoKHRlc3QpID0+IHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlz
c2lvbihmYWxzZSk7CiAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KTsKICAgICB9KS50aGVuKCgpID0+IHsK
LSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzp0cnVlLCB2aWRlbzpmYWxzZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKLSAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7Ci0gICAg
ICAgIH0pOwotICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7
CiAgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVk
aW86dHJ1ZSwgdmlkZW86ZmFsc2V9KTsKQEAgLTI5LDQyICsyMyw2IEBAIHByb21pc2VfdGVzdCgo
dGVzdCkgPT4gewogICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9KTsKICAgICB9KTsKIH0sICJUZXN0aW5nIHNh
bWUgcGFnZSBnZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kiKTsKLQotcHJvbWlzZV90ZXN0
KCh0ZXN0KSA9PiB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7Ci0gICAgcmV0dXJuIG5hdmlnYXRvci5t
ZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX0pLnRoZW4o
KHN0cmVhbSkgPT4gewotICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOwotICAgICAgICByZXR1
cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRl
bzp0cnVlfSk7Ci0gICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9
ICIjbmF2aWdhdGVUb1NhbWVQYWdlIjsKLSAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgICAgcmV0
dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlk
ZW86dHJ1ZX0pOwotICAgIH0pOwotfSwgIlRlc3Rpbmcgc2FtZSBwYWdlIGdldFVzZXJNZWRpYSBn
cmFudCBwZXJzaXN0ZW5jeSBhZnRlciBpbiBwYWdlIG5hdmlnYXRpb24iKTsKLQotcHJvbWlzZV90
ZXN0KCh0ZXN0KSA9PiB7Ci0gICAgdmFyIGlzUGFnZVZpc2libGUgPSB0cnVlOwotICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNz
aW9uKHRydWUpOwotICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRp
YSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KS50aGVuKChzdHJlYW0pID0+IHsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVk
aWFQZXJtaXNzaW9uKGZhbHNlKTsKLSAgICAgICAgaXNQYWdlVmlzaWJsZSA9IGZhbHNlOwotICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLnNldFBh
Z2VWaXNpYmlsaXR5KCJoaWRkZW4iKTsKLSAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7Ci0gICAg
ICAgICAgICBpc1BhZ2VWaXNpYmxlID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFBhZ2VWaXNpYmlsaXR5KCk7
Ci0gICAgICAgIH0sIDEwMDApOwotICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNl
cy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfSk7Ci0gICAgfSkudGhlbigo
KSA9PiB7Ci0gICAgICAgIGFzc2VydF90cnVlKGlzUGFnZVZpc2libGUsICJSZXNvbHZpbmcgZ2V0
VXNlck1lZGlhIHByb21pc2Ugc2hvdWxkIHdhaXQgZm9yIHBhZ2UgdG8gYmUgdmlzaWJsZSIpOwot
ICAgIH0pOwotfSwgIlRlc3Rpbmcgc2FtZSBwYWdlIGdldFVzZXJNZWRpYSBncmFudCBwZXJzaXN0
ZW5jeSB3aXRoIHZpc2liaWxpdHkiKTsKLQogICAgICAgICA8L3NjcmlwdD4KICAgICA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVz
ZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZDNlZmRmNDI3YjViMmNiZDFlYWViMTVmNTA2ZDJhOGU3ZmJjZWVmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtZ3JhbnQtcGVyc2lzdGVuY3kyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBUZXN0aW5nIHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgYWZ0ZXIg
aW4gcGFnZSBuYXZpZ2F0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5Mi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI2YTY4N2Q2NWFjMWZiODJhZThhNjZmZTgyMjA1MTdiOGJkNmM5MDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1n
cmFudC1wZXJzaXN0ZW5jeTIuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgSFRNTD4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAg
IDxib2R5PgorICAgICAgICA8ZGl2IGlkPSJuYXZpZ2F0ZVRvU2FtZVBhZ2UiPjwvZGl2PgorICAg
ICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24odHJ1
ZSk7CisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzpmYWxzZSwgdmlkZW86dHJ1ZX0pLnRoZW4oKHN0cmVhbSkgPT4geworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1p
c3Npb24oZmFsc2UpOworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfSk7CisgICAgfSkudGhlbigoKSA9PiB7
CisgICAgfSkudGhlbigoKSA9PiB7CisgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIjbmF2aWdh
dGVUb1NhbWVQYWdlIjsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX0p
OworICAgIH0pOworfSwgIlRlc3Rpbmcgc2FtZSBwYWdlIGdldFVzZXJNZWRpYSBncmFudCBwZXJz
aXN0ZW5jeSBhZnRlciBpbiBwYWdlIG5hdmlnYXRpb24iKTsKKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5My1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFmODM4ZGZjYzIzOGFjNGQ5NDkxNjRjZmYwNzU0M2I0
ZjBlOWQwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
Z2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGdyYW50IHBlcnNpc3Rl
bmN5IHdpdGggdmlzaWJpbGl0eSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MGQ3YTUyOWY3OTZkZWY1MThhNThkNWQ1YWQ3ZjNmNDhkOTEyYjhmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
Z3JhbnQtcGVyc2lzdGVuY3kzLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAg
ICA8Ym9keT4KKyAgICAgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdCgodGVzdCkgPT4geworICAg
IHZhciBpc1BhZ2VWaXNpYmxlID0gdHJ1ZTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAgICByZXR1
cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRl
bzp0cnVlfSkudGhlbigoc3RyZWFtKSA9PiB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7
CisgICAgICAgIGlzUGFnZVZpc2libGUgPSBmYWxzZTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVu
Iik7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgaXNQYWdlVmlzaWJs
ZSA9IHRydWU7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRQYWdlVmlzaWJpbGl0eSgpOworICAgICAgICB9LCAxMDAwKTsK
KyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzpmYWxzZSwgdmlkZW86dHJ1ZX0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICBhc3Nl
cnRfdHJ1ZShpc1BhZ2VWaXNpYmxlLCAiUmVzb2x2aW5nIGdldFVzZXJNZWRpYSBwcm9taXNlIHNo
b3VsZCB3YWl0IGZvciBwYWdlIHRvIGJlIHZpc2libGUiKTsKKyAgICB9KTsKK30sICJUZXN0aW5n
IHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgd2l0aCB2aXNpYmlsaXR5
Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312333</attachid>
            <date>2017-06-08 12:17:22 -0700</date>
            <delta_ts>2017-06-08 13:37:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173104-20170608121718.patch</filename>
            <type>text/plain</type>
            <size>24178</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3OTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWMwYWRhOGNjMGRkNjhl
OTg3YTkxNTA5YmMzYmIzNGU3ZTYwNzkzNi4uNzRkNzNjZTZmZDdlNGFjMzQ1Nzc0Zjc1OTI0ZGRm
MGYwOTUzNDdjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTA2LTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgc2hv
dWxkIG5vdCBiZSBwcm9tcHRlZCBhZ2FpbiBpZiB1c2VyIGRlbmllZCBhY2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzEwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIFN0b3JlIGRlbmllZCByZXF1ZXN0
cyB0byBiZSBhYmxlIHRvIHJlcGxheSB0aGVtLgorICAgICAgICBJZiBtaWMgaXMgZGVuaWVkLCB1
c2VyIG1pZ2h0IGJlIHByb21wdGVkIGZvciBjYW1lcmEsIG5vdCBmb3IgbWljIGFuZCBjYW1lcmEu
CisgICAgICAgIFNhbWUgcHJpbmNpcGxlIGFwcGxpZXMgdG8gdGhlIGNhc2Ugb2YgZGVuaWVkIGNh
bWVyYS4KKyAgICAgICAgQ2xlYXJpbmcgdGhlIHN0b3JlZCBkZW5pZWQgcmVxdWVzdHMgd2hlbiBy
ZWxvYWRpbmcvbmF2aWdhdGluZyBhd2F5LgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0Rl
bmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OjpyZXNldEFjY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Ojppc1JlcXVlc3REZW5pZWQpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRp
YVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisKIDIwMTctMDYtMDggIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpZW50cyBvZiB0aGUgV0syIEMtQVBJIGRv
bid0IGhhdmUgdGhlaXIgbWVkaWFDb250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQg
c2V0dGluZyBpbml0aWFsaXplZCBjb3JyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcAppbmRleCA2NGVkOTIxNjMxODMyNDg5YjMzYjJjMmI5YzIzM2I2MTkzNzI4YTRl
Li5lZTdhZDJhMzQ0NGI3ZTgzYzFmMDdiNWUzYzlkMmY1MzE2YWIyNDQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTEyNyw2ICsxMjcsOSBAQCB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFBY2Nlc3NXYXNEZW5p
ZWQodWludDY0X3QgdQogICAgIGlmICghcmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCisgICAg
aWYgKHJlYXNvbiA9PSBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFB
Y2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25EZW5pZWQpCisgICAgICAgIG1fZGVuaWVkUmVx
dWVzdHMuYXBwZW5kKERlbmllZFJlcXVlc3QgeyByZXF1ZXN0LT5tYWluRnJhbWVJRCgpLCByZXF1
ZXN0LT51c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QtPnRvcExldmVs
RG9jdW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LT5yZXF1aXJlc0F1ZGlvKCksIHJlcXVl
c3QtPnJlcXVpcmVzVmlkZW8oKSB9KTsKKwogICAgIGRlbnlSZXF1ZXN0KHVzZXJNZWRpYUlELCBy
ZWFzb24sIGVtcHR5U3RyaW5nKCkpOwogfQogCkBAIC0xNzAsNiArMTczLDcgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVzZXRBY2Nlc3ModWludDY0X3Qg
ZnJhbWVJRCkKICAgICAgICAgcmV0dXJuIGdyYW50ZWRSZXF1ZXN0LT5tYWluRnJhbWVJRCgpID09
IGZyYW1lSUQ7CiAgICAgfSk7CiAgICAgbV9wcmVncmFudGVkUmVxdWVzdHMuY2xlYXIoKTsKKyAg
ICBtX2RlbmllZFJlcXVlc3RzLmNsZWFyKCk7CiB9CiAKIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpz
ZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJv
b2wgbmVlZHNWaWRlbykgY29uc3QKQEAgLTIwMSw2ICsyMDUsMjMgQEAgY29uc3QgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6OnMKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAorYm9vbCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJh
bWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3Jp
Z2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pCit7CisgICAgZm9yIChjb25zdCBh
dXRvJiBkZW5pZWRSZXF1ZXN0IDogbV9kZW5pZWRSZXF1ZXN0cykgeworICAgICAgICBpZiAoIWRl
bmllZFJlcXVlc3QudXNlck1lZGlhRG9jdW1lbnRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0
KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBpZiAoIWRlbmllZFJlcXVlc3QudG9wTGV2ZWxEb2N1bWVudE9yaWdpbi0+aXNTYW1lU2NoZW1l
SG9zdFBvcnQodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgaWYgKGRlbmllZFJlcXVlc3QubWFpbkZyYW1lSUQgIT0gbWFpbkZyYW1lSUQpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKGRlbmllZFJlcXVlc3QuaXNBdWRpb0Rl
bmllZCAmJiBuZWVkc0F1ZGlvKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlm
IChkZW5pZWRSZXF1ZXN0LmlzVmlkZW9EZW5pZWQgJiYgbmVlZHNWaWRlbykKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdyYW50QWNjZXNzKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZp
ZGVvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkKIHsK
ICAgICBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkud2lsbENyZWF0ZU1lZGlh
U3RyZWFtKCp0aGlzLCAhYXVkaW9EZXZpY2VVSUQuaXNFbXB0eSgpLCAhdmlkZW9EZXZpY2VVSUQu
aXNFbXB0eSgpKTsKQEAgLTI1NSw2ICsyNzYsMTEgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisgICAgICAgIGlmICh3YXNSZXF1ZXN0
RGVuaWVkKG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbi5nZXQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSwgIWF1ZGlvRGV2aWNlVUlE
cy5pc0VtcHR5KCksICF2aWRlb0RldmljZVVJRHMuaXNFbXB0eSgpKSkgeworICAgICAgICAgICAg
ZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCwgZW1wdHlTdHJp
bmcoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBhdXRvKiBn
cmFudGVkUmVxdWVzdCA9IHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KGZyYW1lSUQsIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpLCAhYXVk
aW9EZXZpY2VVSURzLmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNlVUlEcy5pc0VtcHR5KCkpOwogICAg
ICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QpIHsKICAgICAgICAgICAgIGlmIChtX3BhZ2UuaXNWaWV3
VmlzaWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAppbmRleCA1ZWQ3N2E0
NzU2MjkzYjViODI2MWFlZDgwN2MzYTdhYjhjMTkzYWRlLi4wMmNmYmJkMjc4ODM3NjIzYWE4ZjQ4
MGM0MTQ5NmIxNjAzZjhkZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApA
QCAtNzAsNiArNzAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ3JhbnRBY2Nlc3ModWludDY0X3Qg
dXNlck1lZGlhSUQsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYg
dmlkZW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsK
IAogICAgIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkqIHNlYXJjaEZvckdy
YW50ZWRSZXF1ZXN0KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1Zp
ZGVvKSBjb25zdDsKKyAgICBib29sIHdhc1JlcXVlc3REZW5pZWQodWludDY0X3QgbWFpbkZyYW1l
SUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKTsKICNlbmRpZgogICAgIHZvaWQgZ2V0
VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpDb21wbGV0aW9uSGFuZGxlciYm
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4s
IFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsK
IApAQCAtODUsNiArODYsMTUgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxSZWY8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcHJlZ3JhbnRlZFJlcXVlc3RzOwogICAgIFZlY3Rv
cjxSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fZ3JhbnRlZFJlcXVlc3Rz
OworCisgICAgc3RydWN0IERlbmllZFJlcXVlc3QgeworICAgICAgICB1aW50NjRfdCBtYWluRnJh
bWVJRDsKKyAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbjsKKyAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luOworICAgICAgICBib29sIGlzQXVkaW9EZW5pZWQgeyBmYWxzZSB9Owor
ICAgICAgICBib29sIGlzVmlkZW9EZW5pZWQgeyBmYWxzZSB9OworICAgIH07CisgICAgVmVjdG9y
PERlbmllZFJlcXVlc3Q+IG1fZGVuaWVkUmVxdWVzdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBjMDA0Mzg0N2YyYTE2OTkyOThiM2MyNDI5MDI5YzlhN2IwZDFkZTQzLi42
Nzc0YjEzYmJlMDA4Y2NkZjU4ODRiYmM2ZmM2MDMwMTIwMWE3ZDZlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjggQEAKKzIwMTctMDYtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIGdldFVzZXJNZWRpYSBzaG91bGQgbm90IGJlIHByb21wdGVkIGFnYWluIGlmIHVzZXIg
ZGVuaWVkIGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTczMTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAg
ICAgU3BsaXR0aW5nIGdyYW50IHRlc3QgZHVlIHRvIHJlbWVtYmVyaW5nIGRlbnkgZGVjaXNpb25z
LgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0
ZW5jeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ktcmVsb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1y
ZWxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtZGVueS1wZXJzaXN0ZW5jeS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5Mi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ky
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRl
bnktcGVyc2lzdGVuY3kzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3ktZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50
LXBlcnNpc3RlbmN5Lmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVk
aWEtZ3JhbnQtcGVyc2lzdGVuY3kyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3Rl
bmN5My1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0
VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5My5odG1sOiBBZGRlZC4KKworCiAyMDE3LTA2LTA4
ICBNYXJjb3MgQ2hhdmFycsOtYSBUZWlqZWlybyAgPGNoYXZhcnJpYTE5OTFAZ21haWwuY29tPgog
CiAgICAgICAgIE1vZGlmeSBzZWN1cml0eSB0ZXN0IHRvIGF2b2lkIHNwYWNpbmcgZGlmZmVyZW5j
ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1kZW55LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3ktZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ0YmRiMWU0YzE3YmFlZTU4MTZiOGY3NTQ5MjI4ZGNiNmRlZjkxNzEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBl
cnNpc3RlbmN5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHNh
bWUgcGFnZSBnZXRVc2VyTWVkaWEgZGVueSBwZXJzaXN0ZW5jeSB3aXRoIGF1ZGlvIGRlbmllZCAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEt
ZGVueS1wZXJzaXN0ZW5jeS1yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1yZWxvYWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmRhNjJlYmM5M2U4OTNiNzQ4ODYyNjNjY2VlODBkMjVmOTcyODEzNmYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJN
ZWRpYS1kZW55LXBlcnNpc3RlbmN5LXJlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBA
CitJbiBjYXNlIG9mIHJlbG9hZCwgZ2V0VXNlck1lZGlhIGRlbnkgc3RhdGUgc2hvdWxkIGJlIHJl
c2V0CitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVz
ZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5LXJlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeS1yZWxvYWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYjY5MWRhNTQxZDFhOTY1ZmExOTkzMjk2MzVhNTRjMTViM2EyNWZlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVu
eS1wZXJzaXN0ZW5jeS1yZWxvYWQuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7Cit9CitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGlmICh3aW5kb3cubG9jYWxTdG9yYWdlLmdl
dEl0ZW0oImd1bS1hZnRlci1yZWxvYWQiKSA9PSBudWxsKSB7CisgICAgICAgIHdpbmRvdy5sb2Nh
bFN0b3JhZ2Uuc2V0SXRlbSgiZ3VtLWFmdGVyLXJlbG9hZCIsICJ0cnVlIikKKyAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uKGZhbHNlKTsKKyAgICAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2Vy
TWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
IHJlc3VsdC5pbm5lckhUTUwgPSAiRkFJTCI7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0sKCkgPT4geworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKKyAgICAgICAg
ICAgIGludGVybmFscy5mb3JjZVJlbG9hZCh0cnVlKTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5jbGVhcigpOworICAgICAgICBuYXZpZ2F0
b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0pLnRo
ZW4oKCkgPT4geworICAgICAgICAgICAgcmVzdWx0LmlubmVySFRNTCA9ICJQQVNTIjsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICB9LCAoKSA9PiB7CisgICAgICAgICAgICByZXN1bHQuaW5u
ZXJIVE1MID0gIkZBSUwiOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9KTsKKyAgICB9
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQodGVzdCwg
MCk7Ij4KKyAgICA8ZGl2PkluIGNhc2Ugb2YgcmVsb2FkLCBnZXRVc2VyTWVkaWEgZGVueSBzdGF0
ZSBzaG91bGQgYmUgcmVzZXQ8L2Rpdj4KKyAgICA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lM2M1MDgyOTMxNDZkNGJjN2I4ODdkNzBiMTYxOTcyMjIwMWU2Mzk1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJz
aXN0ZW5jeS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+Cisg
ICAgICAgIDxzY3JpcHQ+CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9u
KGZhbHNlKTsKKyAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEo
e2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4g
eworICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5vdEFsbG93ZWRFcnJvciIpOworICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVz
ZXJNZWRpYVBlcm1pc3Npb24odHJ1ZSk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFE
ZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KS50aGVuKGFzc2Vy
dF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwg
Ik5vdEFsbG93ZWRFcnJvciIpOworICAgICAgICB9KTsKKyAgICB9KS50aGVuKCgpID0+IHsKKyAg
ICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0
cnVlLCB2aWRlbzpmYWxzZX0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0
cnVlfSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgfSku
dGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86dHJ1ZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwg
KGUpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVy
cm9yIik7CisgICAgICAgIH0pOworICAgIH0pOworfSwgIlRlc3Rpbmcgc2FtZSBwYWdlIGdldFVz
ZXJNZWRpYSBkZW55IHBlcnNpc3RlbmN5IHdpdGggYXVkaW8gZGVuaWVkIik7CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lz
dGVuY3kyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzJhZTM4YTM2ZDY0MTYzMDM1ZDRkOWQw
NDkxODA2MTQ2MWI0OTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIFRlc3Rpbmcgc2FtZSBwYWdlIGdldFVzZXJNZWRpYSBkZW55IHBl
cnNpc3RlbmN5IHdpdGggdmlkZW8gZGVuaWVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5Mi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZGVueS1wZXJzaXN0ZW5jeTIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZGU4NTQyZTE2MDFmYWMyNjg2YzM1ZTBkZjdkZTAzODBmMmQ1Zjll
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2Vy
TWVkaWEtZGVueS1wZXJzaXN0ZW5jeTIuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFk
PgorICAgIDxib2R5PgorICAgICAgICA8c2NyaXB0PgorCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+
IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNl
ck1lZGlhUGVybWlzc2lvbihmYWxzZSk7CisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmlj
ZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0pLnRoZW4oYXNzZXJ0X3Vu
cmVhY2hlZCwgKGUpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5hbWUsICJOb3RBbGxv
d2VkRXJyb3IiKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgICAgICByZXR1cm4g
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOmZh
bHNlfSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgfSku
dGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVz
ZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KTsKKyAgICB9KS50aGVuKCgpID0+IHsK
KyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRp
bzp0cnVlLCB2aWRlbzpmYWxzZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUpID0+IHsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAg
ICAgIH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOnRydWV9KS50aGVuKGFz
c2VydF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFt
ZSwgIk5vdEFsbG93ZWRFcnJvciIpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJUZXN0aW5n
IHNhbWUgcGFnZSBnZXRVc2VyTWVkaWEgZGVueSBwZXJzaXN0ZW5jeSB3aXRoIHZpZGVvIGRlbmll
ZCIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3Rl
bmN5My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJN
ZWRpYS1kZW55LXBlcnNpc3RlbmN5My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcwYTJjMTVk
ZDI1YzMxYTVlNGUxNzA5MDAzYmQ4NzAzNzNjZTdmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRlbnktcGVyc2lzdGVuY3kzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0aW5nIHNhbWUgcGFnZSBnZXRV
c2VyTWVkaWEgZGVueSBwZXJzaXN0ZW5jeSB3aXRoIGF1ZGlvIGFuZCB2aWRlbyBkZW5pZWQgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWRl
bnktcGVyc2lzdGVuY3kzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVz
ZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxY2I5ZGUyN2QwYzU0
MGYxOTg4MzhiYzQwZDQ4MDNiOGY1MTQxNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1kZW55LXBlcnNpc3RlbmN5My5odG1sCkBA
IC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+
CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKKyAgICBy
ZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZp
ZGVvOnRydWV9KS50aGVuKGFzc2VydF91bnJlYWNoZWQsIChlKSA9PiB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9yIik7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lv
bih0cnVlKTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHthdWRpbzp0cnVlLCB2aWRlbzpmYWxzZX0pLnRoZW4oYXNzZXJ0X3VucmVhY2hlZCwgKGUp
ID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uYW1lLCAiTm90QWxsb3dlZEVycm9y
Iik7CisgICAgICAgIH0pOworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICByZXR1cm4gbmF2
aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOmZhbHNl
fSkudGhlbihhc3NlcnRfdW5yZWFjaGVkLCAoZSkgPT4geworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLm5hbWUsICJOb3RBbGxvd2VkRXJyb3IiKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9
LCAiVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGRlbnkgcGVyc2lzdGVuY3kgd2l0aCBh
dWRpbyBhbmQgdmlkZW8gZGVuaWVkIik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNl
ck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5LWV4cGVjdGVkLnR4dApp
bmRleCBiZjgwNTdiNzgyZjM0NGYxZGNiYjljNzdjMmViYzAwN2ZiZTI5M2JiLi4wMzg3MzA2NzQz
Y2QwOTgzNTM1MTI3MDBlZGQ4NjIxNGRlYjQyNjBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeS1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQt
cGVyc2lzdGVuY3ktZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsMyBAQAogCiBQQVNTIFRlc3Rpbmcg
c2FtZSBwYWdlIGdldFVzZXJNZWRpYSBncmFudCBwZXJzaXN0ZW5jeSAKLVBBU1MgVGVzdGluZyBz
YW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGdyYW50IHBlcnNpc3RlbmN5IGFmdGVyIGluIHBhZ2UgbmF2
aWdhdGlvbiAKLUZBSUwgVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGdyYW50IHBlcnNp
c3RlbmN5IHdpdGggdmlzaWJpbGl0eSBhc3NlcnRfdHJ1ZTogUmVzb2x2aW5nIGdldFVzZXJNZWRp
YSBwcm9taXNlIHNob3VsZCB3YWl0IGZvciBwYWdlIHRvIGJlIHZpc2libGUgZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5Lmh0bWwKaW5kZXggNjViNDg0
MDJjNmQxOWVjZjc1ZjQ5OGRmNDI1NzcyMjYxYzFlMTkzNS4uNGEwZDY1Mzc5MWJhY2Q3YmZjZTJj
NzgxNzY1ZDYwZDQ4ZWQ1ZmM5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeS5odG1sCkBA
IC01LDkgKzUsNyBAQAogICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KICAgICA8L2hlYWQ+CiAgICAgPGJvZHk+Ci0gICAg
ICAgIDxkaXYgaWQ9Im5hdmlnYXRlVG9TYW1lUGFnZSI+PC9kaXY+CiAgICAgICAgIDxzY3JpcHQ+
Ci0KIHByb21pc2VfdGVzdCgodGVzdCkgPT4gewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwpAQCAtMTYs
MTAgKzE0LDYgQEAgcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CiAgICAgICAgICAgICB0ZXN0UnVu
bmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24oZmFsc2UpOwogICAgICAgICByZXR1cm4gbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfSk7
CiAgICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86dHJ1ZSwgdmlkZW86ZmFsc2V9KS50aGVuKGFzc2VydF91
bnJlYWNoZWQsIChlKSA9PiB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmFtZSwgIk5v
dEFsbG93ZWRFcnJvciIpOwotICAgICAgICB9KTsKLSAgICB9KS50aGVuKCgpID0+IHsKICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2Vy
TWVkaWFQZXJtaXNzaW9uKHRydWUpOwogICAgICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2
aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOnRydWUsIHZpZGVvOmZhbHNlfSk7CkBAIC0yOSw0MiAr
MjMsNiBAQCBwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsKICAgICAgICAgcmV0dXJuIG5hdmlnYXRv
ci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzp0cnVlLCB2aWRlbzp0cnVlfSk7CiAg
ICAgfSk7CiB9LCAiVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGdyYW50IHBlcnNpc3Rl
bmN5Iik7Ci0KLXByb21pc2VfdGVzdCgodGVzdCkgPT4gewotICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOwot
ICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFs
c2UsIHZpZGVvOnRydWV9KS50aGVuKChzdHJlYW0pID0+IHsKLSAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9u
KGZhbHNlKTsKLSAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX0pOwotICAgIH0pLnRoZW4oKCkgPT4gewotICAg
ICAgICB3aW5kb3cubG9jYXRpb24gPSAiI25hdmlnYXRlVG9TYW1lUGFnZSI7Ci0gICAgfSkudGhl
bigoKSA9PiB7Ci0gICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KTsKLSAgICB9KTsKLX0sICJUZXN0aW5nIHNh
bWUgcGFnZSBnZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgYWZ0ZXIgaW4gcGFnZSBuYXZp
Z2F0aW9uIik7Ci0KLXByb21pc2VfdGVzdCgodGVzdCkgPT4gewotICAgIHZhciBpc1BhZ2VWaXNp
YmxlID0gdHJ1ZTsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5u
ZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbih0cnVlKTsKLSAgICByZXR1cm4gbmF2aWdhdG9yLm1l
ZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1ZGlvOmZhbHNlLCB2aWRlbzp0cnVlfSkudGhlbigo
c3RyZWFtKSA9PiB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgICAg
IHRlc3RSdW5uZXIuc2V0VXNlck1lZGlhUGVybWlzc2lvbihmYWxzZSk7Ci0gICAgICAgIGlzUGFn
ZVZpc2libGUgPSBmYWxzZTsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRQYWdlVmlzaWJpbGl0eSgiaGlkZGVuIik7Ci0gICAgICAgIHNl
dFRpbWVvdXQoKCkgPT4gewotICAgICAgICAgICAgaXNQYWdlVmlzaWJsZSA9IHRydWU7Ci0gICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5zZXRQYWdlVmlzaWJpbGl0eSgpOwotICAgICAgICB9LCAxMDAwKTsKLSAgICAgICAgcmV0dXJu
IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86
dHJ1ZX0pOwotICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgICBhc3NlcnRfdHJ1ZShpc1BhZ2VW
aXNpYmxlLCAiUmVzb2x2aW5nIGdldFVzZXJNZWRpYSBwcm9taXNlIHNob3VsZCB3YWl0IGZvciBw
YWdlIHRvIGJlIHZpc2libGUiKTsKLSAgICB9KTsKLX0sICJUZXN0aW5nIHNhbWUgcGFnZSBnZXRV
c2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgd2l0aCB2aXNpYmlsaXR5Iik7Ci0KICAgICAgICAg
PC9zY3JpcHQ+CiAgICAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBl
cnNpc3RlbmN5Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2QzZWZkZjQyN2I1YjJjYmQxZWFl
YjE1ZjUwNmQyYThlN2ZiY2VlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5Mi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGdy
YW50IHBlcnNpc3RlbmN5IGFmdGVyIGluIHBhZ2UgbmF2aWdhdGlvbiAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVu
Y3kyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFu
dC1wZXJzaXN0ZW5jeTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmE2ODdkNjVhYzFmYjgyYWU4YTY2ZmU4
MjIwNTE3YjhiZDZjOTAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3JhbnQtcGVyc2lzdGVuY3kyLmh0bWwKQEAgLTAsMCArMSwy
NiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGRpdiBpZD0ibmF2aWdhdGVU
b1NhbWVQYWdlIj48L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdCgodGVzdCkg
PT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRV
c2VyTWVkaWFQZXJtaXNzaW9uKHRydWUpOworICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KS50aGVuKChzdHJlYW0p
ID0+IHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX0p
OworICAgIH0pLnRoZW4oKCkgPT4geworICAgIH0pLnRoZW4oKCkgPT4geworICAgICAgICB3aW5k
b3cubG9jYXRpb24gPSAiI25hdmlnYXRlVG9TYW1lUGFnZSI7CisgICAgfSkudGhlbigoKSA9PiB7
CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7YXVk
aW86ZmFsc2UsIHZpZGVvOnRydWV9KTsKKyAgICB9KTsKK30sICJUZXN0aW5nIHNhbWUgcGFnZSBn
ZXRVc2VyTWVkaWEgZ3JhbnQgcGVyc2lzdGVuY3kgYWZ0ZXIgaW4gcGFnZSBuYXZpZ2F0aW9uIik7
CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5
My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRp
YS1ncmFudC1wZXJzaXN0ZW5jeTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxZjgzOGRmY2My
MzhhYzRkOTQ5MTY0Y2ZmMDc1NDNiNGYwZTlkMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldFVzZXJNZWRpYS1ncmFudC1wZXJzaXN0ZW5jeTMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlc3Rpbmcgc2FtZSBwYWdlIGdldFVz
ZXJNZWRpYSBncmFudCBwZXJzaXN0ZW5jeSB3aXRoIHZpc2liaWxpdHkgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3Rl
bmN5My5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXRVc2VyTWVkaWEtZ3Jh
bnQtcGVyc2lzdGVuY3kzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBkN2E1MjlmNzk2ZGVmNTE4YTU4ZDVk
NWFkN2YzZjQ4ZDkxMmI4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLWdyYW50LXBlcnNpc3RlbmN5My5odG1sCkBAIC0wLDAgKzEs
MzEgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+Citwcm9taXNl
X3Rlc3QoKHRlc3QpID0+IHsKKyAgICB2YXIgaXNQYWdlVmlzaWJsZSA9IHRydWU7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1p
c3Npb24odHJ1ZSk7CisgICAgcmV0dXJuIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1l
ZGlhKHthdWRpbzpmYWxzZSwgdmlkZW86dHJ1ZX0pLnRoZW4oKHN0cmVhbSkgPT4geworICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFVzZXJN
ZWRpYVBlcm1pc3Npb24oZmFsc2UpOworICAgICAgICBpc1BhZ2VWaXNpYmxlID0gZmFsc2U7Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0
UGFnZVZpc2liaWxpdHkoImhpZGRlbiIpOworICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKKyAg
ICAgICAgICAgIGlzUGFnZVZpc2libGUgPSB0cnVlOworICAgICAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0UGFnZVZpc2liaWxpdHko
KTsKKyAgICAgICAgfSwgMTAwMCk7CisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzLmdldFVzZXJNZWRpYSh7YXVkaW86ZmFsc2UsIHZpZGVvOnRydWV9KTsKKyAgICB9KS50aGVu
KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X3RydWUoaXNQYWdlVmlzaWJsZSwgIlJlc29sdmluZyBn
ZXRVc2VyTWVkaWEgcHJvbWlzZSBzaG91bGQgd2FpdCBmb3IgcGFnZSB0byBiZSB2aXNpYmxlIik7
CisgICAgfSk7Cit9LCAiVGVzdGluZyBzYW1lIHBhZ2UgZ2V0VXNlck1lZGlhIGdyYW50IHBlcnNp
c3RlbmN5IHdpdGggdmlzaWJpbGl0eSIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>