<?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>217508</bug_id>
          
          <creation_ts>2020-10-09 00:52:44 -0700</creation_ts>
          <short_desc>Implement TCC checks in UserMediaPermissionRequestManagerProxy</short_desc>
          <delta_ts>2020-10-09 07:06:29 -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>WebRTC</component>
          <version>WebKit Local 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>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1696150</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-09 00:52:44 -0700</bug_when>
    <thetext>Implement TCC checks in UserMediaPermissionRequestManagerProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696151</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-09 00:53:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/70129993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696152</commentid>
    <comment_count>2</comment_count>
      <attachid>410923</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-09 01:05:36 -0700</bug_when>
    <thetext>Created attachment 410923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696155</commentid>
    <comment_count>3</comment_count>
      <attachid>410924</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-09 01:29:02 -0700</bug_when>
    <thetext>Created attachment 410924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696190</commentid>
    <comment_count>4</comment_count>
      <attachid>410935</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-10-09 05:18:48 -0700</bug_when>
    <thetext>Created attachment 410935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696210</commentid>
    <comment_count>5</comment_count>
      <attachid>410935</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-10-09 07:00:57 -0700</bug_when>
    <thetext>Comment on attachment 410935
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UserMediaPermissionRequestManagerProxy.mm:155
&gt; +    auto completionHandler = requiresVideoTCCPrompt ? [request = makeRef(request), callback = WTFMove(callback)](bool isOK) mutable {
&gt; +        if (!isOK) {
&gt; +            callback(false);
&gt; +            return;
&gt; +        }
&gt; +        requestAVCaptureAccessForMediaType(WTFMove(callback), AVMediaTypeVideo);
&gt; +    } : WTFMove(callback);

Very nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696211</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-09 07:06:28 -0700</bug_when>
    <thetext>Committed r268256: &lt;https://trac.webkit.org/changeset/268256&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410935.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410923</attachid>
            <date>2020-10-09 01:05:36 -0700</date>
            <delta_ts>2020-10-09 01:37:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217508-20201009100534.patch</filename>
            <type>text/plain</type>
            <size>17369</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3N2Q4YWJjMGVjMWQwNGU0
OWQxMTJhNjhjNWIzNjQyN2FmYmU2MWUuLmYzMDA3NDk5MTY5OTQ4MzE3MDU1NWU1NjUyMDhiNjRi
ZjE5MTBlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMTAtMDkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBUQ0MgY2hlY2tz
IGluIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcwMTI5OTkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRDQyBjaGVja3MgbXVzdCBiZSBkb25lIGJlZm9yZSBhc2tpbmcgdGhlIHBh
Z2UgY2xpZW50IHRvIGRlY2lkZSB3aGV0aGVyIHRvIGdyYW50IG9yIG5vdCBjYW1lcmEgYW5kL29y
IG1pY3JvcGhvbmUuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0LCBzaG91bGQgdGhlIGRlZmF1
bHQgYWN0aW9uIGJlIGRvbmUgKGRlZmF1bHQgcHJvbXB0KSwgZm9yIGluc3RhbmNlIGluIGNhc2Ug
dGhlIFdLV2ViVmlldyBhcHBsaWNhdGlvbiBkb2VzIG5vdCBwcm92aWRlIGFueSBkZWxlZ2F0ZSwK
KyAgICAgICAgdGhlIFRDQyBjaGVja3Mgd2lsbCBoYXBwZW4gYmVmb3JlIHRoZSBkZWZhdWx0IHBy
b21wdC4KKworICAgICAgICBGb3IgdGhhdCByZWFzb24sIHdlIG1vdmUgdGhlIFRDQyBjaGVja3Mg
ZnJvbSBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QgdG8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
cXVlc3RTeXN0ZW1WYWxpZGF0aW9uLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBpbiBTYWZh
cmkgYW5kIE1pbmlCcm93c2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OnJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpyZXF1ZXN0QVZDYXB0dXJlQWNjZXNzRm9yTWVkaWFUeXBlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkubW06CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5
cGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlh
UGVybWlzc2lvblZhbGlkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpyZXF1ZXN0U3lzdGVtVmFsaWRhdGlvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnByZWZlcmVuY2VzIGNvbnN0KToKKwogMjAyMC0xMC0wOCAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50IGEgZHVtbXkgV2Vi
QXV0aGVudGljYXRpb25BZ2VudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW0KaW5kZXggNzBmZjBkYmJkZjBlOGY4OGZiY2VlYzMwYjcwNTU3MWM5NjQ0MDkxMC4u
Mjg3NzljZTRiZmNiYzkxOWZmOGEzNzBlMDZhNmZlMWUzMDk5MDk0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC05MDYsOSArOTA2LDE1IEBAIHZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdl
YkNvcmU6OkZvbnRBdHRyaWJ1dGVzCiAgICAgW3ByaXZhdGVVSURlbGVnYXRlIF93ZWJWaWV3Om1f
dWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0
ZXMuY3JlYXRlRGljdGlvbmFyeSgpLmdldCgpXTsKIH0KIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi1zdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGNv
bnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9y
aWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBXS1dlYlZpZXcmIHdlYlZpZXcpCit2b2lkIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3Jp
Z2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogeworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgYXV0byBkZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0
ZSkgeworICAgICAgICByZXF1ZXN0LmRvRGVmYXVsdEFjdGlvbigpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgYm9vbCByZXNwb25kc1RvUmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpy
ZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAg
Ym9vbCByZXNwb25kc1RvUmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25I
YW5kbGVyOildOwogCkBAIC05NDQsMTA5ICs5NTAsMTQgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwg
QVAKIAogICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc3BlY2lmaWMgZGVsZWdhdGUgZm9yIGRpc3Bs
YXkgY2FwdHVyZS4KICAgICBpZiAoIXJlcXVlc3QucmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYm
IHJlc3BvbmRzVG9SZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbikgewotICAgICAgICBb
ZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b246ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICAg
ICAgW2RlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb246ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5k
bGVyLmdldCgpXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFVSTCByZXF1ZXN0RnJh
bWVVUkwgeyBmcmFtZS51cmwoKSB9OwogICAgIFVSTCBtYWluRnJhbWVVUkwgeyBmcmFtZS5wYWdl
KCktPm1haW5GcmFtZSgpLT51cmwoKSB9OwogCi0gICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJW
aWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpy
ZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6
ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKLX0KLQotc3RhdGljIHZvaWQgcmVxdWVzdEFWQ2FwdHVy
ZUFjY2Vzc0Zvck1lZGlhVHlwZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEJPT0wgYXV0aG9yaXpl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFWTWVkaWFUeXBlIHR5cGUpCi17Ci0gICAgYXV0byBk
ZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKEJPT0wgYXV0aG9yaXplZCkgbXV0YWJsZSB7Ci0gICAgICAg
IGlmICghaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGF1dGhvcml6ZWRd
KCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoYXV0aG9yaXpl
ZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihhdXRob3JpemVkKTsKLSAgICB9KTsKLSAgICBbUEFMOjpn
ZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6dHlwZSBj
b21wbGV0aW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwotfQotI2VuZGlmCi0KLXZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCi17
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVn
YXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgaWYgKCFkZWxlZ2F0ZSkgewotICAgICAgICByZXF1
ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBib29sIHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlv
Q2FwdHVyZSgpOwotICAgIGJvb2wgcmVxdWlyZXNWaWRlb0NhcHR1cmUgPSByZXF1ZXN0LnJlcXVp
cmVzVmlkZW9DYXB0dXJlKCk7Ci0gICAgYm9vbCByZXF1aXJlc0Rpc3BsYXlDYXB0dXJlID0gcmVx
dWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCk7Ci0gICAgaWYgKCFyZXF1aXJlc0F1ZGlvQ2Fw
dHVyZSAmJiAhcmVxdWlyZXNWaWRlb0NhcHR1cmUgJiYgIXJlcXVpcmVzRGlzcGxheUNhcHR1cmUp
IHsKLSAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBib29sIHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzID0gcGFnZS5w
cmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKTsKLSAgICBpZiAoIXVzaW5n
TW9ja0NhcHR1cmVEZXZpY2VzKSB7Ci0gICAgICAgIGlmIChyZXF1aXJlc0F1ZGlvQ2FwdHVyZSAm
JiAhVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBlcm1pdHRlZFRvQ2Fw
dHVyZUF1ZGlvKCkpIHsKLSAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25E
ZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXF1
aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnBlcm1pdHRlZFRvQ2FwdHVyZVZpZGVvKCkpIHsKLSAgICAgICAgICAgIHJlcXVlc3QuZGVu
eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgYXV0byBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9IHVzaW5n
TW9ja0NhcHR1cmVEZXZpY2VzIHx8ICFyZXF1aXJlc0F1ZGlvQ2FwdHVyZSA/IEFWQXV0aG9yaXph
dGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbUEFMOjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1
dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6QVZNZWRpYVR5cGVBdWRpb107Ci0gICAgaWYg
KG1pY3JvcGhvbmVBdXRob3JpemF0aW9uU3RhdHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c0Rl
bmllZCB8fCBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25T
dGF0dXNSZXN0cmljdGVkKSB7Ci0gICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25E
ZW5pZWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGF1dG8gY2FtZXJhQXV0
aG9yaXphdGlvblN0YXR1cyA9IHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzIHx8ICFyZXF1aXJlc1Zp
ZGVvQ2FwdHVyZSA/IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbUEFMOjpnZXRB
VkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6QVZN
ZWRpYVR5cGVWaWRlb107Ci0gICAgaWYgKGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZB
dXRob3JpemF0aW9uU3RhdHVzRGVuaWVkIHx8IGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPT0g
QVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZCkgewotICAgICAgICByZXF1ZXN0LmRlbnko
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVh
c29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAg
ICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyksIGZyYW1lID0gbWFrZVJlZihmcmFtZSksIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtl
UmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRl
Lm1fd2ViVmlldyksIHRvcExldmVsT3JpZ2luID0gbWFrZVJlZih0b3BMZXZlbE9yaWdpbiksIGNh
bWVyYUF1dGhvcml6YXRpb25TdGF0dXNdKCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vha1Ro
aXMpIHsKLSAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9u
RGVuaWVkKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBy
b3RlY3RlZFJlcXVlc3QtPnJlcXVpcmVzVmlkZW9DYXB0dXJlKCkgfHwgY2FtZXJhQXV0aG9yaXph
dGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkKSB7Ci0gICAgICAg
ICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZl
bE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPil3ZWFr
VGhpcy0+bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8gdGNjUHJvbXB0Q29t
cGxldGlvbkhhbmRsZXIgPSBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZnJhbWUgPSBX
VEZNb3ZlKGZyYW1lKSwgcHJvdGVjdGVkUmVxdWVzdCA9IFdURk1vdmUocHJvdGVjdGVkUmVxdWVz
dCksIHdlYlZpZXcgPSBXVEZNb3ZlKHdlYlZpZXcpLCB0b3BMZXZlbE9yaWdpbiA9IFdURk1vdmUo
dG9wTGV2ZWxPcmlnaW4pXShCT09MIGF1dGhvcml6ZWQpIHsKLSAgICAgICAgICAgIGlmICghYXV0
aG9yaXplZCB8fCAhd2Vha1RoaXMpIHsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0
LT5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JGcmFtZShmcmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pd2Vha1RoaXMtPm1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgp
LCAqd2ViVmlldy5nZXQoKSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgQVNTRVJUKGNhbWVyYUF1
dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZCk7
Ci0gICAgICAgIHJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5cGUoV1RGTW92ZSh0Y2NQ
cm9tcHRDb21wbGV0aW9uSGFuZGxlciksIEFWTWVkaWFUeXBlVmlkZW8pOwotICAgIH07Ci0KLSAg
ICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlIHx8IG1pY3JvcGhvbmVBdXRob3JpemF0aW9uU3Rh
dHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQpIHsKLSAgICAgICAgcmVxdWVz
dENhbWVyYUF1dGhvcml6YXRpb24oKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1
dG8gdGNjUHJvbXB0Q29tcGxldGlvbkhhbmRsZXIgPSBbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VS
ZWYocmVxdWVzdCksIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gV1RGTW92ZShyZXF1ZXN0
Q2FtZXJhQXV0aG9yaXphdGlvbildKEJPT0wgYXV0aG9yaXplZCkgbXV0YWJsZSB7Ci0gICAgICAg
IGlmICghYXV0aG9yaXplZCkgewotICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+ZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlBlcm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Owot
ICAgICAgICByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwotICAgIH07Ci0KLSAgICBBU1NF
UlQobWljcm9waG9uZUF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVz
Tm90RGV0ZXJtaW5lZCk7Ci0gICAgcmVxdWVzdEFWQ2FwdHVyZUFjY2Vzc0Zvck1lZGlhVHlwZShX
VEZNb3ZlKHRjY1Byb21wdENvbXBsZXRpb25IYW5kbGVyKSwgQVZNZWRpYVR5cGVBdWRpbyk7Cisg
ICAgW2RlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFtZVVSTCBt
YWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkubW0KaW5kZXggMTc3MDE5OGYwNjNjYWY5ZWZhYjc0ZjVlM2U5NzQ0OTkxNmI2OTBkNS4u
NjMxMjUzOTg0NWU1MzdlM2M0ZGNhNzA5ZjRhN2QxYTlmMWM5YjEyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkubW0KQEAgLTI4LDcgKzI4LDEzIEBACiAKICNp
bXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRDQ1NQSS5oIgotI2ltcG9ydCA8
d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldl
YlByZWZlcmVuY2VzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAK
IFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhUQ0MpCkBAIC0xMDEsNCArMTA3LDcxIEBAIGJv
b2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBlcm1pdHRlZFRvQ2Fw
dHVyZVZpZGVvKCkKICNlbmRpZgogfQogCitzdGF0aWMgdm9pZCByZXF1ZXN0QVZDYXB0dXJlQWNj
ZXNzRm9yTWVkaWFUeXBlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQk9PTCBhdXRob3JpemVkKT4m
JiBjb21wbGV0aW9uSGFuZGxlciwgQVZNZWRpYVR5cGUgdHlwZSkKK3sKKyAgICBhdXRvIGRlY2lz
aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oQk9PTCBhdXRob3JpemVkKSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCFpc01haW5UaHJlYWQoKSkgeworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgYXV0aG9yaXplZF0oKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhdXRob3JpemVkKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGF1dGhvcml6ZWQpOworICAgIH0pOworICAgIFtQQUw6OmdldEFW
Q2FwdHVyZURldmljZUNsYXNzKCkgcmVxdWVzdEFjY2Vzc0Zvck1lZGlhVHlwZTp0eXBlIGNvbXBs
ZXRpb25IYW5kbGVyOmRlY2lzaW9uSGFuZGxlci5nZXQoKV07Cit9CisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiBwYWdlLCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGlmIChwYWdlLnByZWZlcmVuY2VzKCkubW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCgpKSB7CisgICAgICAgIGNhbGxiYWNrKHRydWUpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgaXNQcmVHcmFu
dGVkID0gV2ViQ29yZTo6TWFjQXBwbGljYXRpb246OmlzU2FmYXJpKCk7CisjZWxpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIGJvb2wgaXNQcmVHcmFudGVkID0gV2ViQ29yZTo6SU9TQXBwbGlj
YXRpb246OmlzTW9iaWxlU2FmYXJpKCkgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzU2Fm
YXJpVmlld1NlcnZpY2UoKTsKKyNlbmRpZgorCisgICAgaWYgKGlzUHJlR3JhbnRlZCkgeworICAg
ICAgICBjYWxsYmFjayh0cnVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJ
WE1FOiBBZGQgVENDIGVudGl0bGVtZW50IGNoZWNrIGZvciBzY3JlZW5zaGFyaW5nLgorICAgIGJv
b2wgcmVxdWlyZXNBdWRpb0NhcHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVzQXVkaW9DYXB0dXJlKCk7
CisgICAgYm9vbCByZXF1aXJlc1ZpZGVvQ2FwdHVyZSA9IHJlcXVlc3QucmVxdWlyZXNWaWRlb0Nh
cHR1cmUoKTsKKworICAgIGlmIChyZXF1aXJlc0F1ZGlvQ2FwdHVyZSAmJiAhVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBlcm1pdHRlZFRvQ2FwdHVyZUF1ZGlvKCkpIHsK
KyAgICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
IChyZXF1aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OnBlcm1pdHRlZFRvQ2FwdHVyZVZpZGVvKCkpIHsKKyAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFyZXF1aXJlc0F1ZGlv
Q2FwdHVyZSAmJiAhcmVxdWlyZXNWaWRlb0NhcHR1cmUpIHsKKyAgICAgICAgY2FsbGJhY2sodHJ1
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVy
ID0gcmVxdWlyZXNWaWRlb0NhcHR1cmUgPyBbcmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgaXNPSykgbXV0YWJsZSB7CisgICAgICAg
IGlmICghaXNPSykgeworICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRp
YVR5cGUoV1RGTW92ZShjYWxsYmFjayksIEFWTWVkaWFUeXBlVmlkZW8pOworICAgIH0gOiBXVEZN
b3ZlKGNhbGxiYWNrKTsKKworICAgIGlmICghcmVxdWlyZXNBdWRpb0NhcHR1cmUpIHsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
cmVxdWVzdEFWQ2FwdHVyZUFjY2Vzc0Zvck1lZGlhVHlwZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgQVZNZWRpYVR5cGVBdWRpbyk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKaW5kZXggMDNiMzhkM2YxNDBmOTliNGM4NjY3NDMzYzg0YjUwMWE0ZmEyNjU5Mi4uNzYz
NDM4YTVmMjFjNThhODU2M2UxNjkzMjZkODg3MjlkOTI3NzI3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNTUzLDYgKzU1MywyMyBAQCB2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblZh
bGlkUmVxdQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgcmVxdWVzdFN5c3RlbVZhbGlk
YXRpb24obV9wYWdlLCAqbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCwgW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldKGJvb2wgaXNPSykgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghaXNPSykgeworICAgICAgICAgICAgd2Vh
a1RoaXMtPmRlbnlSZXF1ZXN0KCp3ZWFrVGhpcy0+bV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCwg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVh
c29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICB3ZWFrVGhpcy0+ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QoKTsKKyAgICB9KTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKQorewor
ICAgIGlmICghbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgLy8gSWYgcGFnZSBuYXZpZ2F0ZWQsIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCB0aGUgcGFn
ZSBjbGllbnQgZm9yIGF1dGhvcml6YXRpb24uCiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2Uu
cHJvY2VzcygpLndlYkZyYW1lKG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPmZyYW1lSUQoKSk7
CiAKQEAgLTU2Nyw2ICs1ODQsMTMgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXUKICAgICBtX3Bh
Z2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCht
X3BhZ2UsICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExl
dmVsT3JpZ2luKSwgKm1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QpOwogfQogCisjaWYgIVBMQVRG
T1JNKENPQ09BKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiwgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2Fs
bGJhY2spCit7CisgICAgY2FsbGJhY2sodHJ1ZSk7Cit9CisjZW5kaWYKKwogdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbklu
Zm8oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRsZXIp
CiB7CiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1l
SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggMGM4NzI5ZTdmY2ZhYWIz
YWY5MDE1NmM4NGQzMDM2MDllZmUxZDJlYS4uOGZlYjQ1ODc1MWEyNjI4N2Q0ZTFiYjJhYTkzODUy
ZjI2ZDgzMzM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0xMjAsMTEg
KzEyMCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25J
bnZhbGlkUmVxdWVzdChjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KTsKICAgICB2b2lk
IHByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uVmFsaWRSZXF1ZXN0KFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOwog
ICAgIHZvaWQgc3RhcnRQcm9jZXNzaW5nVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoUmVmPFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+JiYpOworCisgICAgc3RhdGljIHZvaWQgcmVx
dWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2Vu
ZGlmCiAKICAgICB2b2lkIHdhdGNoZG9nVGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBwcm9jZXNz
TmV4dFVzZXJNZWRpYVJlcXVlc3RJZk5lZWRlZCgpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKTsKIAogICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0OwogICAgIERlcXVl
PFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nVXNlck1lZGlh
UmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGU0N2Ni
NWU0MWYzOWRkYjc5ZmQ1MWQ3NTFmOTNhZWYzZGNiYzI1NWEuLjdjZjRkNjhlNWVjZmM0MTE3OGJj
ZTgyYzJhMWMwYTA5ODBiZDcwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0xMjMzLDYgKzEyMzMsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJCYWNrRm9yd2FyZENh
Y2hlJiBiYWNrRm9yd2FyZENhY2hlKCkgY29uc3Q7CiAKKyAgICBjb25zdCBXZWJQcmVmZXJlbmNl
cyYgcHJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcmVuY2VzOyB9CiAgICAgV2Vi
UHJlZmVyZW5jZXMmIHByZWZlcmVuY2VzKCkgeyByZXR1cm4gbV9wcmVmZXJlbmNlczsgfQogICAg
IHZvaWQgc2V0UHJlZmVyZW5jZXMoV2ViUHJlZmVyZW5jZXMmKTsKIAo=
</data>
<flag name="commit-queue"
          id="427003"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410924</attachid>
            <date>2020-10-09 01:29:02 -0700</date>
            <delta_ts>2020-10-09 05:18:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217508-20201009102900.patch</filename>
            <type>text/plain</type>
            <size>17369</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3N2Q4YWJjMGVjMWQwNGU0
OWQxMTJhNjhjNWIzNjQyN2FmYmU2MWUuLmYzMDA3NDk5MTY5OTQ4MzE3MDU1NWU1NjUyMDhiNjRi
ZjE5MTBlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMTAtMDkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBUQ0MgY2hlY2tz
IGluIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcwMTI5OTkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRDQyBjaGVja3MgbXVzdCBiZSBkb25lIGJlZm9yZSBhc2tpbmcgdGhlIHBh
Z2UgY2xpZW50IHRvIGRlY2lkZSB3aGV0aGVyIHRvIGdyYW50IG9yIG5vdCBjYW1lcmEgYW5kL29y
IG1pY3JvcGhvbmUuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0LCBzaG91bGQgdGhlIGRlZmF1
bHQgYWN0aW9uIGJlIGRvbmUgKGRlZmF1bHQgcHJvbXB0KSwgZm9yIGluc3RhbmNlIGluIGNhc2Ug
dGhlIFdLV2ViVmlldyBhcHBsaWNhdGlvbiBkb2VzIG5vdCBwcm92aWRlIGFueSBkZWxlZ2F0ZSwK
KyAgICAgICAgdGhlIFRDQyBjaGVja3Mgd2lsbCBoYXBwZW4gYmVmb3JlIHRoZSBkZWZhdWx0IHBy
b21wdC4KKworICAgICAgICBGb3IgdGhhdCByZWFzb24sIHdlIG1vdmUgdGhlIFRDQyBjaGVja3Mg
ZnJvbSBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QgdG8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
cXVlc3RTeXN0ZW1WYWxpZGF0aW9uLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBpbiBTYWZh
cmkgYW5kIE1pbmlCcm93c2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OnJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpyZXF1ZXN0QVZDYXB0dXJlQWNjZXNzRm9yTWVkaWFUeXBlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkubW06CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5
cGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlh
UGVybWlzc2lvblZhbGlkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpyZXF1ZXN0U3lzdGVtVmFsaWRhdGlvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnByZWZlcmVuY2VzIGNvbnN0KToKKwogMjAyMC0xMC0wOCAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50IGEgZHVtbXkgV2Vi
QXV0aGVudGljYXRpb25BZ2VudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW0KaW5kZXggNzBmZjBkYmJkZjBlOGY4OGZiY2VlYzMwYjcwNTU3MWM5NjQ0MDkxMC4u
Mjg3NzljZTRiZmNiYzkxOWZmOGEzNzBlMDZhNmZlMWUzMDk5MDk0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC05MDYsOSArOTA2LDE1IEBAIHZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdl
YkNvcmU6OkZvbnRBdHRyaWJ1dGVzCiAgICAgW3ByaXZhdGVVSURlbGVnYXRlIF93ZWJWaWV3Om1f
dWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0
ZXMuY3JlYXRlRGljdGlvbmFyeSgpLmdldCgpXTsKIH0KIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi1zdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGNv
bnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9y
aWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBXS1dlYlZpZXcmIHdlYlZpZXcpCit2b2lkIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3Jp
Z2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogeworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgYXV0byBkZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0
ZSkgeworICAgICAgICByZXF1ZXN0LmRvRGVmYXVsdEFjdGlvbigpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgYm9vbCByZXNwb25kc1RvUmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpy
ZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAg
Ym9vbCByZXNwb25kc1RvUmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25I
YW5kbGVyOildOwogCkBAIC05NDQsMTA5ICs5NTAsMTQgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwg
QVAKIAogICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc3BlY2lmaWMgZGVsZWdhdGUgZm9yIGRpc3Bs
YXkgY2FwdHVyZS4KICAgICBpZiAoIXJlcXVlc3QucmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYm
IHJlc3BvbmRzVG9SZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbikgewotICAgICAgICBb
ZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b246ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICAg
ICAgW2RlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb246ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5k
bGVyLmdldCgpXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFVSTCByZXF1ZXN0RnJh
bWVVUkwgeyBmcmFtZS51cmwoKSB9OwogICAgIFVSTCBtYWluRnJhbWVVUkwgeyBmcmFtZS5wYWdl
KCktPm1haW5GcmFtZSgpLT51cmwoKSB9OwogCi0gICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJW
aWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpy
ZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6
ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKLX0KLQotc3RhdGljIHZvaWQgcmVxdWVzdEFWQ2FwdHVy
ZUFjY2Vzc0Zvck1lZGlhVHlwZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEJPT0wgYXV0aG9yaXpl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFWTWVkaWFUeXBlIHR5cGUpCi17Ci0gICAgYXV0byBk
ZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKEJPT0wgYXV0aG9yaXplZCkgbXV0YWJsZSB7Ci0gICAgICAg
IGlmICghaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGF1dGhvcml6ZWRd
KCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoYXV0aG9yaXpl
ZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihhdXRob3JpemVkKTsKLSAgICB9KTsKLSAgICBbUEFMOjpn
ZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6dHlwZSBj
b21wbGV0aW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwotfQotI2VuZGlmCi0KLXZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCi17
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVn
YXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgaWYgKCFkZWxlZ2F0ZSkgewotICAgICAgICByZXF1
ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBib29sIHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlv
Q2FwdHVyZSgpOwotICAgIGJvb2wgcmVxdWlyZXNWaWRlb0NhcHR1cmUgPSByZXF1ZXN0LnJlcXVp
cmVzVmlkZW9DYXB0dXJlKCk7Ci0gICAgYm9vbCByZXF1aXJlc0Rpc3BsYXlDYXB0dXJlID0gcmVx
dWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCk7Ci0gICAgaWYgKCFyZXF1aXJlc0F1ZGlvQ2Fw
dHVyZSAmJiAhcmVxdWlyZXNWaWRlb0NhcHR1cmUgJiYgIXJlcXVpcmVzRGlzcGxheUNhcHR1cmUp
IHsKLSAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBib29sIHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzID0gcGFnZS5w
cmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKTsKLSAgICBpZiAoIXVzaW5n
TW9ja0NhcHR1cmVEZXZpY2VzKSB7Ci0gICAgICAgIGlmIChyZXF1aXJlc0F1ZGlvQ2FwdHVyZSAm
JiAhVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBlcm1pdHRlZFRvQ2Fw
dHVyZUF1ZGlvKCkpIHsKLSAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25E
ZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXF1
aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnBlcm1pdHRlZFRvQ2FwdHVyZVZpZGVvKCkpIHsKLSAgICAgICAgICAgIHJlcXVlc3QuZGVu
eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgYXV0byBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9IHVzaW5n
TW9ja0NhcHR1cmVEZXZpY2VzIHx8ICFyZXF1aXJlc0F1ZGlvQ2FwdHVyZSA/IEFWQXV0aG9yaXph
dGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbUEFMOjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1
dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6QVZNZWRpYVR5cGVBdWRpb107Ci0gICAgaWYg
KG1pY3JvcGhvbmVBdXRob3JpemF0aW9uU3RhdHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c0Rl
bmllZCB8fCBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25T
dGF0dXNSZXN0cmljdGVkKSB7Ci0gICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25E
ZW5pZWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGF1dG8gY2FtZXJhQXV0
aG9yaXphdGlvblN0YXR1cyA9IHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzIHx8ICFyZXF1aXJlc1Zp
ZGVvQ2FwdHVyZSA/IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbUEFMOjpnZXRB
VkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6QVZN
ZWRpYVR5cGVWaWRlb107Ci0gICAgaWYgKGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZB
dXRob3JpemF0aW9uU3RhdHVzRGVuaWVkIHx8IGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPT0g
QVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZCkgewotICAgICAgICByZXF1ZXN0LmRlbnko
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVh
c29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAg
ICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyksIGZyYW1lID0gbWFrZVJlZihmcmFtZSksIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtl
UmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRl
Lm1fd2ViVmlldyksIHRvcExldmVsT3JpZ2luID0gbWFrZVJlZih0b3BMZXZlbE9yaWdpbiksIGNh
bWVyYUF1dGhvcml6YXRpb25TdGF0dXNdKCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vha1Ro
aXMpIHsKLSAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9u
RGVuaWVkKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBy
b3RlY3RlZFJlcXVlc3QtPnJlcXVpcmVzVmlkZW9DYXB0dXJlKCkgfHwgY2FtZXJhQXV0aG9yaXph
dGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkKSB7Ci0gICAgICAg
ICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZl
bE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPil3ZWFr
VGhpcy0+bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8gdGNjUHJvbXB0Q29t
cGxldGlvbkhhbmRsZXIgPSBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZnJhbWUgPSBX
VEZNb3ZlKGZyYW1lKSwgcHJvdGVjdGVkUmVxdWVzdCA9IFdURk1vdmUocHJvdGVjdGVkUmVxdWVz
dCksIHdlYlZpZXcgPSBXVEZNb3ZlKHdlYlZpZXcpLCB0b3BMZXZlbE9yaWdpbiA9IFdURk1vdmUo
dG9wTGV2ZWxPcmlnaW4pXShCT09MIGF1dGhvcml6ZWQpIHsKLSAgICAgICAgICAgIGlmICghYXV0
aG9yaXplZCB8fCAhd2Vha1RoaXMpIHsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0
LT5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JGcmFtZShmcmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pd2Vha1RoaXMtPm1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgp
LCAqd2ViVmlldy5nZXQoKSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgQVNTRVJUKGNhbWVyYUF1
dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZCk7
Ci0gICAgICAgIHJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5cGUoV1RGTW92ZSh0Y2NQ
cm9tcHRDb21wbGV0aW9uSGFuZGxlciksIEFWTWVkaWFUeXBlVmlkZW8pOwotICAgIH07Ci0KLSAg
ICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlIHx8IG1pY3JvcGhvbmVBdXRob3JpemF0aW9uU3Rh
dHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQpIHsKLSAgICAgICAgcmVxdWVz
dENhbWVyYUF1dGhvcml6YXRpb24oKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1
dG8gdGNjUHJvbXB0Q29tcGxldGlvbkhhbmRsZXIgPSBbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VS
ZWYocmVxdWVzdCksIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gV1RGTW92ZShyZXF1ZXN0
Q2FtZXJhQXV0aG9yaXphdGlvbildKEJPT0wgYXV0aG9yaXplZCkgbXV0YWJsZSB7Ci0gICAgICAg
IGlmICghYXV0aG9yaXplZCkgewotICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+ZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlBlcm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Owot
ICAgICAgICByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwotICAgIH07Ci0KLSAgICBBU1NF
UlQobWljcm9waG9uZUF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVz
Tm90RGV0ZXJtaW5lZCk7Ci0gICAgcmVxdWVzdEFWQ2FwdHVyZUFjY2Vzc0Zvck1lZGlhVHlwZShX
VEZNb3ZlKHRjY1Byb21wdENvbXBsZXRpb25IYW5kbGVyKSwgQVZNZWRpYVR5cGVBdWRpbyk7Cisg
ICAgW2RlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFtZVVSTCBt
YWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkubW0KaW5kZXggMTc3MDE5OGYwNjNjYWY5ZWZhYjc0ZjVlM2U5NzQ0OTkxNmI2OTBkNS4u
NjhhYWY2ZTE4NmFkMDBkY2JmYWM3OTg2OGJkZTIwMTk1NDYyMjJhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkubW0KQEAgLTI4LDcgKzI4LDEzIEBACiAKICNp
bXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRDQ1NQSS5oIgotI2ltcG9ydCA8
d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldl
YlByZWZlcmVuY2VzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAK
IFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhUQ0MpCkBAIC0xMDEsNCArMTA3LDcxIEBAIGJv
b2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBlcm1pdHRlZFRvQ2Fw
dHVyZVZpZGVvKCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK3N0YXRp
YyB2b2lkIHJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5cGUoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChCT09MIGF1dGhvcml6ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBVk1lZGlhVHlw
ZSB0eXBlKQoreworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShCT09MIGF1dGhvcml6
ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBhdXRob3JpemVkXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGF1dGhvcml6ZWQpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoYXV0aG9yaXplZCk7
CisgICAgfSk7CisgICAgW1BBTDo6Z2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSByZXF1ZXN0QWNj
ZXNzRm9yTWVkaWFUeXBlOnR5cGUgY29tcGxldGlvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdl
dCgpXTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiBwYWdlLCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGlmIChwYWdlLnByZWZlcmVuY2VzKCkubW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCgpKSB7CisgICAgICAgIGNhbGxiYWNrKHRydWUpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgaXNQcmVHcmFu
dGVkID0gV2ViQ29yZTo6TWFjQXBwbGljYXRpb246OmlzU2FmYXJpKCk7CisjZWxpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIGJvb2wgaXNQcmVHcmFudGVkID0gV2ViQ29yZTo6SU9TQXBwbGlj
YXRpb246OmlzTW9iaWxlU2FmYXJpKCkgfHwgV2ViQ29yZTo6SU9TQXBwbGljYXRpb246OmlzU2Fm
YXJpVmlld1NlcnZpY2UoKTsKKyNlbmRpZgorCisgICAgaWYgKGlzUHJlR3JhbnRlZCkgeworICAg
ICAgICBjYWxsYmFjayh0cnVlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEZJ
WE1FOiBBZGQgVENDIGVudGl0bGVtZW50IGNoZWNrIGZvciBzY3JlZW5zaGFyaW5nLgorICAgIGJv
b2wgcmVxdWlyZXNBdWRpb0NhcHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVzQXVkaW9DYXB0dXJlKCk7
CisgICAgYm9vbCByZXF1aXJlc1ZpZGVvQ2FwdHVyZSA9IHJlcXVlc3QucmVxdWlyZXNWaWRlb0Nh
cHR1cmUoKTsKKworICAgIGlmIChyZXF1aXJlc0F1ZGlvQ2FwdHVyZSAmJiAhVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBlcm1pdHRlZFRvQ2FwdHVyZUF1ZGlvKCkpIHsK
KyAgICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlm
IChyZXF1aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OnBlcm1pdHRlZFRvQ2FwdHVyZVZpZGVvKCkpIHsKKyAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFyZXF1aXJlc0F1ZGlv
Q2FwdHVyZSAmJiAhcmVxdWlyZXNWaWRlb0NhcHR1cmUpIHsKKyAgICAgICAgY2FsbGJhY2sodHJ1
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVy
ID0gcmVxdWlyZXNWaWRlb0NhcHR1cmUgPyBbcmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgaXNPSykgbXV0YWJsZSB7CisgICAgICAg
IGlmICghaXNPSykgeworICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRp
YVR5cGUoV1RGTW92ZShjYWxsYmFjayksIEFWTWVkaWFUeXBlVmlkZW8pOworICAgIH0gOiBXVEZN
b3ZlKGNhbGxiYWNrKTsKKworICAgIGlmICghcmVxdWlyZXNBdWRpb0NhcHR1cmUpIHsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
cmVxdWVzdEFWQ2FwdHVyZUFjY2Vzc0Zvck1lZGlhVHlwZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgQVZNZWRpYVR5cGVBdWRpbyk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKaW5kZXggMDNiMzhkM2YxNDBmOTliNGM4NjY3NDMzYzg0YjUwMWE0ZmEyNjU5Mi4uNzYz
NDM4YTVmMjFjNThhODU2M2UxNjkzMjZkODg3MjlkOTI3NzI3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNTUzLDYgKzU1MywyMyBAQCB2b2lkIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvblZh
bGlkUmVxdQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgcmVxdWVzdFN5c3RlbVZhbGlk
YXRpb24obV9wYWdlLCAqbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCwgW3dlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldKGJvb2wgaXNPSykgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICghaXNPSykgeworICAgICAgICAgICAgd2Vh
a1RoaXMtPmRlbnlSZXF1ZXN0KCp3ZWFrVGhpcy0+bV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCwg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVh
c29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICB3ZWFrVGhpcy0+ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3QoKTsKKyAgICB9KTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKQorewor
ICAgIGlmICghbV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgLy8gSWYgcGFnZSBuYXZpZ2F0ZWQsIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCB0aGUgcGFn
ZSBjbGllbnQgZm9yIGF1dGhvcml6YXRpb24uCiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2Uu
cHJvY2VzcygpLndlYkZyYW1lKG1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QtPmZyYW1lSUQoKSk7
CiAKQEAgLTU2Nyw2ICs1ODQsMTMgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXUKICAgICBtX3Bh
Z2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCht
X3BhZ2UsICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmlnaW4pLCBXVEZNb3ZlKHRvcExl
dmVsT3JpZ2luKSwgKm1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QpOwogfQogCisjaWYgIVBMQVRG
T1JNKENPQ09BKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiwgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2Fs
bGJhY2spCit7CisgICAgY2FsbGJhY2sodHJ1ZSk7Cit9CisjZW5kaWYKKwogdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbklu
Zm8oRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUGVybWlzc2lvbkluZm8pPiYmIGhhbmRsZXIp
CiB7CiAgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1l
SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggMGM4NzI5ZTdmY2ZhYWIz
YWY5MDE1NmM4NGQzMDM2MDllZmUxZDJlYS4uOGZlYjQ1ODc1MWEyNjI4N2Q0ZTFiYjJhYTkzODUy
ZjI2ZDgzMzM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0xMjAsMTEg
KzEyMCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25J
bnZhbGlkUmVxdWVzdChjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KTsKICAgICB2b2lk
IHByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uVmFsaWRSZXF1ZXN0KFZlY3RvcjxXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U+JiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpOwog
ICAgIHZvaWQgc3RhcnRQcm9jZXNzaW5nVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoUmVmPFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+JiYpOworCisgICAgc3RhdGljIHZvaWQgcmVx
dWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiwgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogI2Vu
ZGlmCiAKICAgICB2b2lkIHdhdGNoZG9nVGltZXJGaXJlZCgpOwogCiAgICAgdm9pZCBwcm9jZXNz
TmV4dFVzZXJNZWRpYVJlcXVlc3RJZk5lZWRlZCgpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9y
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoKTsKIAogICAgIFJlZlB0cjxVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiBtX2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0OwogICAgIERlcXVl
PFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nVXNlck1lZGlh
UmVxdWVzdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGU0N2Ni
NWU0MWYzOWRkYjc5ZmQ1MWQ3NTFmOTNhZWYzZGNiYzI1NWEuLjdjZjRkNjhlNWVjZmM0MTE3OGJj
ZTgyYzJhMWMwYTA5ODBiZDcwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC0xMjMzLDYgKzEyMzMsNyBAQCBwdWJsaWM6CiAKICAgICBXZWJCYWNrRm9yd2FyZENh
Y2hlJiBiYWNrRm9yd2FyZENhY2hlKCkgY29uc3Q7CiAKKyAgICBjb25zdCBXZWJQcmVmZXJlbmNl
cyYgcHJlZmVyZW5jZXMoKSBjb25zdCB7IHJldHVybiBtX3ByZWZlcmVuY2VzOyB9CiAgICAgV2Vi
UHJlZmVyZW5jZXMmIHByZWZlcmVuY2VzKCkgeyByZXR1cm4gbV9wcmVmZXJlbmNlczsgfQogICAg
IHZvaWQgc2V0UHJlZmVyZW5jZXMoV2ViUHJlZmVyZW5jZXMmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410935</attachid>
            <date>2020-10-09 05:18:48 -0700</date>
            <delta_ts>2020-10-09 07:06:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217508-20201009141846.patch</filename>
            <type>text/plain</type>
            <size>17634</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY3N2Q4YWJjMGVjMWQwNGU0
OWQxMTJhNjhjNWIzNjQyN2FmYmU2MWUuLmYzMDA3NDk5MTY5OTQ4MzE3MDU1NWU1NjUyMDhiNjRi
ZjE5MTBlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMTAtMDkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBUQ0MgY2hlY2tz
IGluIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MDgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzcwMTI5OTkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRDQyBjaGVja3MgbXVzdCBiZSBkb25lIGJlZm9yZSBhc2tpbmcgdGhlIHBh
Z2UgY2xpZW50IHRvIGRlY2lkZSB3aGV0aGVyIHRvIGdyYW50IG9yIG5vdCBjYW1lcmEgYW5kL29y
IG1pY3JvcGhvbmUuCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0LCBzaG91bGQgdGhlIGRlZmF1
bHQgYWN0aW9uIGJlIGRvbmUgKGRlZmF1bHQgcHJvbXB0KSwgZm9yIGluc3RhbmNlIGluIGNhc2Ug
dGhlIFdLV2ViVmlldyBhcHBsaWNhdGlvbiBkb2VzIG5vdCBwcm92aWRlIGFueSBkZWxlZ2F0ZSwK
KyAgICAgICAgdGhlIFRDQyBjaGVja3Mgd2lsbCBoYXBwZW4gYmVmb3JlIHRoZSBkZWZhdWx0IHBy
b21wdC4KKworICAgICAgICBGb3IgdGhhdCByZWFzb24sIHdlIG1vdmUgdGhlIFRDQyBjaGVja3Mg
ZnJvbSBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3QgdG8gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
cXVlc3RTeXN0ZW1WYWxpZGF0aW9uLgorCisgICAgICAgIE1hbnVhbGx5IHRlc3RlZCBpbiBTYWZh
cmkgYW5kIE1pbmlCcm93c2VyLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xp
Y3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OnJlcXVl
c3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpyZXF1ZXN0QVZDYXB0dXJlQWNjZXNzRm9yTWVkaWFUeXBlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkubW06CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5
cGUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlh
UGVybWlzc2lvblZhbGlkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpyZXF1ZXN0U3lzdGVtVmFsaWRhdGlvbik6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnByZWZlcmVuY2VzIGNvbnN0KToKKwogMjAyMC0xMC0wOCAgSmlld2VuIFRhbiAgPGppZXdlbl90
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50IGEgZHVtbXkgV2Vi
QXV0aGVudGljYXRpb25BZ2VudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUubW0KaW5kZXggNzBmZjBkYmJkZjBlOGY4OGZiY2VlYzMwYjcwNTU3MWM5NjQ0MDkxMC4u
Mjg3NzljZTRiZmNiYzkxOWZmOGEzNzBlMDZhNmZlMWUzMDk5MDk0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC05MDYsOSArOTA2LDE1IEBAIHZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRpZENoYW5nZUZvbnRBdHRyaWJ1dGVzKGNvbnN0IFdl
YkNvcmU6OkZvbnRBdHRyaWJ1dGVzCiAgICAgW3ByaXZhdGVVSURlbGVnYXRlIF93ZWJWaWV3Om1f
dWlEZWxlZ2F0ZS5tX3dlYlZpZXcgZGlkQ2hhbmdlRm9udEF0dHJpYnV0ZXM6Zm9udEF0dHJpYnV0
ZXMuY3JlYXRlRGljdGlvbmFyeSgpLmdldCgpXTsKIH0KIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi1zdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGNv
bnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbE9y
aWdpbiwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+IGRlbGVnYXRlLCBXS1dlYlZpZXcmIHdlYlZpZXcpCit2b2lkIFVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dChXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3Jp
Z2luLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogeworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisgICAgYXV0byBkZWxlZ2F0ZSA9IChpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFkZWxlZ2F0
ZSkgeworICAgICAgICByZXF1ZXN0LmRvRGVmYXVsdEFjdGlvbigpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgYm9vbCByZXNwb25kc1RvUmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6
YXRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpy
ZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbjpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAg
Ym9vbCByZXNwb25kc1RvUmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25I
YW5kbGVyOildOwogCkBAIC05NDQsMTA5ICs5NTAsMTQgQEAgc3RhdGljIHZvaWQgcmVxdWVzdFVz
ZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JGcmFtZShjb25zdCBXZWJGcmFtZVByb3h5JiBmcmFtZSwg
QVAKIAogICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc3BlY2lmaWMgZGVsZWdhdGUgZm9yIGRpc3Bs
YXkgY2FwdHVyZS4KICAgICBpZiAoIXJlcXVlc3QucmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYm
IHJlc3BvbmRzVG9SZXF1ZXN0TWVkaWFDYXB0dXJlQXV0aG9yaXphdGlvbikgewotICAgICAgICBb
ZGVsZWdhdGUgX3dlYlZpZXc6JndlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZUF1dGhvcml6YXRp
b246ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKKyAgICAg
ICAgW2RlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcmVxdWVzdE1lZGlh
Q2FwdHVyZUF1dGhvcml6YXRpb246ZGV2aWNlcyBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5k
bGVyLmdldCgpXTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFVSTCByZXF1ZXN0RnJh
bWVVUkwgeyBmcmFtZS51cmwoKSB9OwogICAgIFVSTCBtYWluRnJhbWVVUkwgeyBmcmFtZS5wYWdl
KCktPm1haW5GcmFtZSgpLT51cmwoKSB9OwogCi0gICAgW2RlbGVnYXRlIF93ZWJWaWV3OiZ3ZWJW
aWV3IHJlcXVlc3RVc2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpy
ZXF1ZXN0RnJhbWVVUkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6
ZGVjaXNpb25IYW5kbGVyLmdldCgpXTsKLX0KLQotc3RhdGljIHZvaWQgcmVxdWVzdEFWQ2FwdHVy
ZUFjY2Vzc0Zvck1lZGlhVHlwZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEJPT0wgYXV0aG9yaXpl
ZCk+JiYgY29tcGxldGlvbkhhbmRsZXIsIEFWTWVkaWFUeXBlIHR5cGUpCi17Ci0gICAgYXV0byBk
ZWNpc2lvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKEJPT0wgYXV0aG9yaXplZCkgbXV0YWJsZSB7Ci0gICAgICAg
IGlmICghaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGF1dGhvcml6ZWRd
KCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoYXV0aG9yaXpl
ZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihhdXRob3JpemVkKTsKLSAgICB9KTsKLSAgICBbUEFMOjpn
ZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIHJlcXVlc3RBY2Nlc3NGb3JNZWRpYVR5cGU6dHlwZSBj
b21wbGV0aW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIuZ2V0KCldOwotfQotI2VuZGlmCi0KLXZv
aWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIEFQSTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYU9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCi17
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBhdXRvIGRlbGVnYXRlID0gbV91aURlbGVn
YXRlLm1fZGVsZWdhdGUuZ2V0KCk7Ci0gICAgaWYgKCFkZWxlZ2F0ZSkgewotICAgICAgICByZXF1
ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNz
RGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBib29sIHJlcXVpcmVzQXVkaW9DYXB0dXJlID0gcmVxdWVzdC5yZXF1aXJlc0F1ZGlv
Q2FwdHVyZSgpOwotICAgIGJvb2wgcmVxdWlyZXNWaWRlb0NhcHR1cmUgPSByZXF1ZXN0LnJlcXVp
cmVzVmlkZW9DYXB0dXJlKCk7Ci0gICAgYm9vbCByZXF1aXJlc0Rpc3BsYXlDYXB0dXJlID0gcmVx
dWVzdC5yZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCk7Ci0gICAgaWYgKCFyZXF1aXJlc0F1ZGlvQ2Fw
dHVyZSAmJiAhcmVxdWlyZXNWaWRlb0NhcHR1cmUgJiYgIXJlcXVpcmVzRGlzcGxheUNhcHR1cmUp
IHsKLSAgICAgICAgcmVxdWVzdC5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6
OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cyk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBib29sIHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzID0gcGFnZS5w
cmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoKTsKLSAgICBpZiAoIXVzaW5n
TW9ja0NhcHR1cmVEZXZpY2VzKSB7Ci0gICAgICAgIGlmIChyZXF1aXJlc0F1ZGlvQ2FwdHVyZSAm
JiAhVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBlcm1pdHRlZFRvQ2Fw
dHVyZUF1ZGlvKCkpIHsKLSAgICAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25E
ZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXF1
aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnBlcm1pdHRlZFRvQ2FwdHVyZVZpZGVvKCkpIHsKLSAgICAgICAgICAgIHJlcXVlc3QuZGVu
eShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246OlBlcm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgYXV0byBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9IHVzaW5n
TW9ja0NhcHR1cmVEZXZpY2VzIHx8ICFyZXF1aXJlc0F1ZGlvQ2FwdHVyZSA/IEFWQXV0aG9yaXph
dGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbUEFMOjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1
dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6QVZNZWRpYVR5cGVBdWRpb107Ci0gICAgaWYg
KG1pY3JvcGhvbmVBdXRob3JpemF0aW9uU3RhdHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c0Rl
bmllZCB8fCBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25T
dGF0dXNSZXN0cmljdGVkKSB7Ci0gICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Npb25E
ZW5pZWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAotICAgIGF1dG8gY2FtZXJhQXV0
aG9yaXphdGlvblN0YXR1cyA9IHVzaW5nTW9ja0NhcHR1cmVEZXZpY2VzIHx8ICFyZXF1aXJlc1Zp
ZGVvQ2FwdHVyZSA/IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbUEFMOjpnZXRB
VkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6QVZN
ZWRpYVR5cGVWaWRlb107Ci0gICAgaWYgKGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZB
dXRob3JpemF0aW9uU3RhdHVzRGVuaWVkIHx8IGNhbWVyYUF1dGhvcml6YXRpb25TdGF0dXMgPT0g
QVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZCkgewotICAgICAgICByZXF1ZXN0LmRlbnko
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVh
c29uOjpQZXJtaXNzaW9uRGVuaWVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAg
ICBhdXRvIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIodGhpcyksIGZyYW1lID0gbWFrZVJlZihmcmFtZSksIHByb3RlY3RlZFJlcXVlc3QgPSBtYWtl
UmVmKHJlcXVlc3QpLCB3ZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4obV91aURlbGVnYXRl
Lm1fd2ViVmlldyksIHRvcExldmVsT3JpZ2luID0gbWFrZVJlZih0b3BMZXZlbE9yaWdpbiksIGNh
bWVyYUF1dGhvcml6YXRpb25TdGF0dXNdKCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vha1Ro
aXMpIHsKLSAgICAgICAgICAgIHByb3RlY3RlZFJlcXVlc3QtPmRlbnkoVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9u
RGVuaWVkKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXBy
b3RlY3RlZFJlcXVlc3QtPnJlcXVpcmVzVmlkZW9DYXB0dXJlKCkgfHwgY2FtZXJhQXV0aG9yaXph
dGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRpb25TdGF0dXNBdXRob3JpemVkKSB7Ci0gICAgICAg
ICAgICByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckZyYW1lKGZyYW1lLCB0b3BMZXZl
bE9yaWdpbiwgcHJvdGVjdGVkUmVxdWVzdCwgKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPil3ZWFr
VGhpcy0+bV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICp3ZWJWaWV3LmdldCgpKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGF1dG8gdGNjUHJvbXB0Q29t
cGxldGlvbkhhbmRsZXIgPSBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZnJhbWUgPSBX
VEZNb3ZlKGZyYW1lKSwgcHJvdGVjdGVkUmVxdWVzdCA9IFdURk1vdmUocHJvdGVjdGVkUmVxdWVz
dCksIHdlYlZpZXcgPSBXVEZNb3ZlKHdlYlZpZXcpLCB0b3BMZXZlbE9yaWdpbiA9IFdURk1vdmUo
dG9wTGV2ZWxPcmlnaW4pXShCT09MIGF1dGhvcml6ZWQpIHsKLSAgICAgICAgICAgIGlmICghYXV0
aG9yaXplZCB8fCAhd2Vha1RoaXMpIHsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0
LT5kZW55KFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25G
b3JGcmFtZShmcmFtZSwgdG9wTGV2ZWxPcmlnaW4sIHByb3RlY3RlZFJlcXVlc3QsIChpZCA8V0tV
SURlbGVnYXRlUHJpdmF0ZT4pd2Vha1RoaXMtPm1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgp
LCAqd2ViVmlldy5nZXQoKSk7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgQVNTRVJUKGNhbWVyYUF1
dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVzTm90RGV0ZXJtaW5lZCk7
Ci0gICAgICAgIHJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5cGUoV1RGTW92ZSh0Y2NQ
cm9tcHRDb21wbGV0aW9uSGFuZGxlciksIEFWTWVkaWFUeXBlVmlkZW8pOwotICAgIH07Ci0KLSAg
ICBpZiAoIXJlcXVpcmVzQXVkaW9DYXB0dXJlIHx8IG1pY3JvcGhvbmVBdXRob3JpemF0aW9uU3Rh
dHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQpIHsKLSAgICAgICAgcmVxdWVz
dENhbWVyYUF1dGhvcml6YXRpb24oKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1
dG8gdGNjUHJvbXB0Q29tcGxldGlvbkhhbmRsZXIgPSBbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VS
ZWYocmVxdWVzdCksIHJlcXVlc3RDYW1lcmFBdXRob3JpemF0aW9uID0gV1RGTW92ZShyZXF1ZXN0
Q2FtZXJhQXV0aG9yaXphdGlvbildKEJPT0wgYXV0aG9yaXplZCkgbXV0YWJsZSB7Ci0gICAgICAg
IGlmICghYXV0aG9yaXplZCkgewotICAgICAgICAgICAgcHJvdGVjdGVkUmVxdWVzdC0+ZGVueShV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFz
b246OlBlcm1pc3Npb25EZW5pZWQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Owot
ICAgICAgICByZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwotICAgIH07Ci0KLSAgICBBU1NF
UlQobWljcm9waG9uZUF1dGhvcml6YXRpb25TdGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVz
Tm90RGV0ZXJtaW5lZCk7Ci0gICAgcmVxdWVzdEFWQ2FwdHVyZUFjY2Vzc0Zvck1lZGlhVHlwZShX
VEZNb3ZlKHRjY1Byb21wdENvbXBsZXRpb25IYW5kbGVyKSwgQVZNZWRpYVR5cGVBdWRpbyk7Cisg
ICAgW2RlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS5tX3dlYlZpZXcgcmVxdWVzdFVzZXJN
ZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzOmRldmljZXMgdXJsOnJlcXVlc3RGcmFtZVVSTCBt
YWluRnJhbWVVUkw6bWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjpkZWNpc2lvbkhhbmRsZXIu
Z2V0KCldOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkubW0KaW5kZXggMTc3MDE5OGYwNjNjYWY5ZWZhYjc0ZjVlM2U5NzQ0OTkxNmI2OTBkNS4u
OTk3NTc1ZGUwMjE2YTljMGNkNzZhZmNiNDFjNzY0MWRiMTMxNWFmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkubW0KQEAgLTI4LDcgKzI4LDEzIEBACiAKICNp
bXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRDQ1NQSS5oIgotI2ltcG9ydCA8
d3RmL1NvZnRMaW5raW5nLmg+CisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldl
YlByZWZlcmVuY2VzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oPgorI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuaD4KKworI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLmg+CiAjaW1wb3J0IDx3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg+CiAK
IFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhUQ0MpCkBAIC0xMDEsNCArMTA3LDYwIEBAIGJv
b2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnBlcm1pdHRlZFRvQ2Fw
dHVyZVZpZGVvKCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK3N0YXRp
YyB2b2lkIHJlcXVlc3RBVkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5cGUoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChCT09MIGF1dGhvcml6ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBBVk1lZGlhVHlw
ZSB0eXBlKQoreworICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKFtjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShCT09MIGF1dGhvcml6
ZWQpIG11dGFibGUgeworICAgICAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBhdXRob3JpemVkXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGF1dGhvcml6ZWQpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoYXV0aG9yaXplZCk7
CisgICAgfSk7CisgICAgW1BBTDo6Z2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSByZXF1ZXN0QWNj
ZXNzRm9yTWVkaWFUeXBlOnR5cGUgY29tcGxldGlvbkhhbmRsZXI6ZGVjaXNpb25IYW5kbGVyLmdl
dCgpXTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
cmVxdWVzdFN5c3RlbVZhbGlkYXRpb24oY29uc3QgV2ViUGFnZVByb3h5JiBwYWdlLCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGlmIChwYWdlLnByZWZlcmVuY2VzKCkubW9ja0Nh
cHR1cmVEZXZpY2VzRW5hYmxlZCgpKSB7CisgICAgICAgIGNhbGxiYWNrKHRydWUpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklYTUU6IEFkZCBUQ0MgZW50aXRsZW1lbnQgY2hl
Y2sgZm9yIHNjcmVlbnNoYXJpbmcuCisgICAgYm9vbCByZXF1aXJlc0F1ZGlvQ2FwdHVyZSA9IHJl
cXVlc3QucmVxdWlyZXNBdWRpb0NhcHR1cmUoKTsKKyAgICBib29sIHJlcXVpcmVzVmlkZW9DYXB0
dXJlID0gcmVxdWVzdC5yZXF1aXJlc1ZpZGVvQ2FwdHVyZSgpOworCisgICAgYXV0byBtaWNyb3Bo
b25lQXV0aG9yaXphdGlvblN0YXR1cyA9ICFyZXF1aXJlc0F1ZGlvQ2FwdHVyZSA/IEFWQXV0aG9y
aXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBbUEFMOjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygp
IGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRpYVR5cGU6QVZNZWRpYVR5cGVBdWRpb107CisgICAg
aWYgKG1pY3JvcGhvbmVBdXRob3JpemF0aW9uU3RhdHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1
c0RlbmllZCB8fCBtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cyA9PSBBVkF1dGhvcml6YXRp
b25TdGF0dXNSZXN0cmljdGVkKSB7CisgICAgICAgIGNhbGxiYWNrKGZhbHNlKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGF1dG8gY2FtZXJhQXV0aG9yaXphdGlvblN0YXR1cyA9ICFy
ZXF1aXJlc1ZpZGVvQ2FwdHVyZSA/IEFWQXV0aG9yaXphdGlvblN0YXR1c0F1dGhvcml6ZWQgOiBb
UEFMOjpnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25TdGF0dXNGb3JNZWRp
YVR5cGU6QVZNZWRpYVR5cGVWaWRlb107CisgICAgaWYgKGNhbWVyYUF1dGhvcml6YXRpb25TdGF0
dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVzRGVuaWVkIHx8IGNhbWVyYUF1dGhvcml6YXRpb25T
dGF0dXMgPT0gQVZBdXRob3JpemF0aW9uU3RhdHVzUmVzdHJpY3RlZCkgeworICAgICAgICBjYWxs
YmFjayhmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBib29sIHJlcXVpcmVz
VmlkZW9UQ0NQcm9tcHQgPSByZXF1aXJlc1ZpZGVvQ2FwdHVyZSAmJiBjYW1lcmFBdXRob3JpemF0
aW9uU3RhdHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c05vdERldGVybWluZWQ7CisgICAgYXV0
byBjb21wbGV0aW9uSGFuZGxlciA9IHJlcXVpcmVzVmlkZW9UQ0NQcm9tcHQgPyBbcmVxdWVzdCA9
IG1ha2VSZWYocmVxdWVzdCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgaXNP
SykgbXV0YWJsZSB7CisgICAgICAgIGlmICghaXNPSykgeworICAgICAgICAgICAgY2FsbGJhY2so
ZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJlcXVlc3RB
VkNhcHR1cmVBY2Nlc3NGb3JNZWRpYVR5cGUoV1RGTW92ZShjYWxsYmFjayksIEFWTWVkaWFUeXBl
VmlkZW8pOworICAgIH0gOiBXVEZNb3ZlKGNhbGxiYWNrKTsKKworICAgIGJvb2wgcmVxdWlyZXNB
dWRpb1RDQ1Byb21wdCA9IHJlcXVpcmVzQXVkaW9DYXB0dXJlICYmIG1pY3JvcGhvbmVBdXRob3Jp
emF0aW9uU3RhdHVzID09IEFWQXV0aG9yaXphdGlvblN0YXR1c05vdERldGVybWluZWQ7CisgICAg
aWYgKCFyZXF1aXJlc0F1ZGlvVENDUHJvbXB0KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KHRydWUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJlcXVlc3RBVkNhcHR1cmVBY2Nl
c3NGb3JNZWRpYVR5cGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIEFWTWVkaWFUeXBlQXVk
aW8pOworfQorI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDAzYjM4ZDNm
MTQwZjk5YjRjODY2NzQzM2M4NGI1MDFhNGZhMjY1OTIuLjc2MzQzOGE1ZjIxYzU4YTg1NjNlMTY5
MzI2ZDg4NzI5ZDkyNzcyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
QEAgLTU1Myw2ICs1NTMsMjMgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25WYWxpZFJlcXUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIHJlcXVlc3RTeXN0ZW1WYWxpZGF0aW9uKG1fcGFnZSwgKm1fY3Vy
cmVudFVzZXJNZWRpYVJlcXVlc3QsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXShib29s
IGlzT0spIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBpZiAoIWlzT0spIHsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5kZW55UmVxdWVzdCgq
d2Vha1RoaXMtPm1fY3VycmVudFVzZXJNZWRpYVJlcXVlc3QsIFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmll
ZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgd2Vha1RoaXMtPmRl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KCkKK3sKKyAgICBpZiAoIW1fY3VycmVudFVz
ZXJNZWRpYVJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIElmIHBhZ2UgbmF2aWdh
dGVkLCB0aGVyZSBpcyBubyBuZWVkIHRvIGNhbGwgdGhlIHBhZ2UgY2xpZW50IGZvciBhdXRob3Jp
emF0aW9uLgogICAgIGF1dG8qIHdlYkZyYW1lID0gbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZSht
X2N1cnJlbnRVc2VyTWVkaWFSZXF1ZXN0LT5mcmFtZUlEKCkpOwogCkBAIC01NjcsNiArNTg0LDEz
IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NV
c2VyTWVkaWFQZXJtaXNzaW9uVmFsaWRSZXF1CiAgICAgbV9wYWdlLnVpQ2xpZW50KCkuZGVjaWRl
UG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QobV9wYWdlLCAqd2ViRnJhbWUsIFdU
Rk1vdmUodXNlck1lZGlhT3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbE9yaWdpbiksICptX2N1cnJl
bnRVc2VyTWVkaWFSZXF1ZXN0KTsKIH0KIAorI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RTeXN0ZW1WYWxpZGF0
aW9uKGNvbnN0IFdlYlBhZ2VQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKQoreworICAgIGNhbGxi
YWNrKHRydWUpOworfQorI2VuZGlmCisKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJl
ZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFBlcm1pc3Npb25JbmZvKT4mJiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZy
YW1lID0gbV9wYWdlLnByb2Nlc3MoKS53ZWJGcmFtZShmcmFtZUlEKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oCmluZGV4IDBjODcyOWU3ZmNmYWFiM2FmOTAxNTZjODRkMzAzNjA5ZWZl
MWQyZWEuLjhmZWI0NTg3NTFhMjYyODdkNGUxYmIyYWE5Mzg1MmYyNmQ4MzMzOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMTIwLDExICsxMjAsMTQgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uSW52YWxpZFJlcXVlc3QoY29uc3Qg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCk7CiAgICAgdm9pZCBwcm9jZXNzVXNlck1lZGlhUGVy
bWlzc2lvblZhbGlkUmVxdWVzdChWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRp
b0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywg
U3RyaW5nJiYgZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KTsKICAgICB2b2lkIHN0YXJ0UHJvY2Vz
c2luZ1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiYmKTsKKworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RTeXN0ZW1WYWxpZGF0aW9u
KGNvbnN0IFdlYlBhZ2VQcm94eSYsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAgICAgdm9pZCB3YXRj
aGRvZ1RpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgcHJvY2Vzc05leHRVc2VyTWVkaWFSZXF1ZXN0
SWZOZWVkZWQoKTsKKyAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0KCk7CiAKICAgICBSZWZQdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4g
bV9jdXJyZW50VXNlck1lZGlhUmVxdWVzdDsKICAgICBEZXF1ZTxSZWY8VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1VzZXJNZWRpYVJlcXVlc3RzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlNDdjYjVlNDFmMzlkZGI3OWZkNTFkNzUx
ZjkzYWVmM2RjYmMyNTVhLi43Y2Y0ZDY4ZTVlY2ZjNDExNzhiY2U4MmMyYTFjMGEwOTgwYmQ3MDRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTIzMyw2ICsxMjMz
LDcgQEAgcHVibGljOgogCiAgICAgV2ViQmFja0ZvcndhcmRDYWNoZSYgYmFja0ZvcndhcmRDYWNo
ZSgpIGNvbnN0OwogCisgICAgY29uc3QgV2ViUHJlZmVyZW5jZXMmIHByZWZlcmVuY2VzKCkgY29u
c3QgeyByZXR1cm4gbV9wcmVmZXJlbmNlczsgfQogICAgIFdlYlByZWZlcmVuY2VzJiBwcmVmZXJl
bmNlcygpIHsgcmV0dXJuIG1fcHJlZmVyZW5jZXM7IH0KICAgICB2b2lkIHNldFByZWZlcmVuY2Vz
KFdlYlByZWZlcmVuY2VzJik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>