<?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>224461</bug_id>
          
          <creation_ts>2021-04-12 16:39:35 -0700</creation_ts>
          <short_desc>The GPUProcess should only launch when it is needed</short_desc>
          <delta_ts>2021-04-14 10:19:06 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=224516</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>224556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1749447</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-12 16:39:35 -0700</bug_when>
    <thetext>The GPUProcess should only launch when it is needed. This avoids wasting memory on simple pages, especially until we enable &quot;DOM rendering in GPU Process&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749454</commentid>
    <comment_count>1</comment_count>
      <attachid>425811</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-12 16:58:06 -0700</bug_when>
    <thetext>Created attachment 425811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749701</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-13 09:36:44 -0700</bug_when>
    <thetext>Committed r275887 (236452@main): &lt;https://commits.webkit.org/236452@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 425811.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749702</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-13 09:37:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/76595732&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749709</commentid>
    <comment_count>4</comment_count>
      <attachid>425811</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-04-13 09:53:50 -0700</bug_when>
    <thetext>Comment on attachment 425811
Patch

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

&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:271
&gt; +    m_enableVP9Decoder = enableVP8Decoder;

Not introduced by this patch. Is it a typo here? Probably &quot;m_enableVP8Decoder&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749713</commentid>
    <comment_count>5</comment_count>
      <attachid>425811</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-13 09:54:36 -0700</bug_when>
    <thetext>Comment on attachment 425811
Patch

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

&gt;&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:271
&gt;&gt; +    m_enableVP9Decoder = enableVP8Decoder;
&gt; 
&gt; Not introduced by this patch. Is it a typo here? Probably &quot;m_enableVP8Decoder&quot;?

Does look like a pre-existing bug. I&apos;ll follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749722</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-13 09:59:48 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Comment on attachment 425811 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=425811&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/WebProcess/GPU/GPUProcessConnection.cpp:271
&gt; &gt;&gt; +    m_enableVP9Decoder = enableVP8Decoder;
&gt; &gt; 
&gt; &gt; Not introduced by this patch. Is it a typo here? Probably &quot;m_enableVP8Decoder&quot;?
&gt; 
&gt; Does look like a pre-existing bug. I&apos;ll follow-up.

https://bugs.webkit.org/show_bug.cgi?id=224491</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>425811</attachid>
            <date>2021-04-12 16:58:06 -0700</date>
            <delta_ts>2021-04-13 09:36:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224461-20210412165805.patch</filename>
            <type>text/plain</type>
            <size>30274</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM5OWU5ZDQyM2M0ZmEzZDI2
ODM5YmIyNmU4Zjg4NGY0YzM4Mzg5NDUuLjc4YzFlY2E2NjgyYTMwYWEzNTAyZmQwZjJjYWU0OGYz
N2M1NmYxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjEtMDQtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBUaGUgR1BVUHJvY2VzcyBzaG91bGQg
b25seSBsYXVuY2ggd2hlbiBpdCBpcyBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDQ2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBHUFVQcm9jZXNzIHNob3VsZCBvbmx5IGxhdW5jaCB3
aGVuIGl0IGlzIG5lZWRlZC4gVGhpcyBhdm9pZHMgd2FzdGluZyBtZW1vcnkKKyAgICAgICAgb24g
c2ltcGxlIHBhZ2VzLCBlc3BlY2lhbGx5IHVudGlsIHdlIGVuYWJsZSAiRE9NIHJlbmRlcmluZyBp
biBHUFUgUHJvY2VzcyIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpHUFVQ
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIEFzIHNvb24gYXMgd2UgY3JlYXRlIGEgR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24sIGlmICJNZWRpYSBpbiBHUFVQcm9jZXNzIiBpcyBlbmFibGVkCisgICAg
ICAgIHdlIGRvIHNvbWUgbWVkaWEtcmVsYXRlZCBpbml0aWFsaXphdGlvbiB0aGF0IHdlIHVzZWQg
dG8gZG8gaW4KKyAgICAgICAgV2ViUHJvY2Vzczo6c2V0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhKCku
IHNldFVzZUdQVVByb2Nlc3NGb3JNZWRpYSgpIGdldHMgY2FsbGVkCisgICAgICAgIHdoZW4gY29u
c3RydWN0aW5nIGEgV2ViUGFnZSBhbmQgdGhpcyBpbml0aWFsaXphdGlvbiByZXF1aXJlcyBhIEdQ
VVByb2Nlc3MuIFdlCisgICAgICAgIHRodXMgd2FudCB0byBkZWxheSB0aGUgaW5pdGlhbGl6YXRp
b24gdW50aWwgd2UgYWN0dWFsbHkgbmVlZCBhIEdQVVByb2Nlc3MuCisKKyAgICAgICAgKFdlYktp
dDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmVuYWJsZVZQOURlY29kZXJzKToKKyAgICAgICAgUmVu
YW1lIGZ1bmN0aW9uIHRvIG1ha2UgaXQgY2xlYXIgaXQgaXMgb25seSB1c2VkIGZvciBWUDkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlQXVkaW9TZXNzaW9uOjpSZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVBdWRpb1Nlc3Npb246On5SZW1vdGVBdWRpb1Nlc3Npb24pOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmVuc3VyZUNvbm5lY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb24gY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVBdWRpb1Nlc3Npb246OnNldENhdGVnb3J5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRCdWZmZXJTaXplKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVy
bmFsKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29uZmlndXJhdGlvbkNo
YW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lv
bi5oOgorICAgICAgICBVcGRhdGUgUmVtb3RlQXVkaW9TZXNzaW9uIHRvIGxhemlseSBpbml0aWF0
ZSB0aGUgR1BVUHJvY2VzcyBjb25uZWN0aW9uIGluc3RlYWQKKyAgICAgICAgb2YgZG9pbmcgaXQg
b24gY29uc3RydWN0aW9uLiBUaGUgUmVtb3RlQXVkaW9TZXNzaW9uIGdldHMgY3JlYXRlZCBhcyBz
b29uIGFzIHdlCisgICAgICAgIGNyZWF0ZSBhIFdlYlBhZ2UsIGF0IHdoaWNoIHBvaW50IHdlIG1h
eSBub3QgbmVlZCBhIEdQVVByb2Nlc3MgeWV0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvaW9zL1JlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyOjplbnN1cmVDb25uZWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyOjpncHVQcm9jZXNz
Q29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9u
SGVscGVyOjpzdGFydE1vbml0b3JpbmdXaXJlbGVzc1JvdXRlc0ludGVybmFsKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyOjpzdG9wTW9uaXRvcmluZ1dpcmVsZXNz
Um91dGVzSW50ZXJuYWwpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVNlc3Npb25IZWxw
ZXI6OnByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuaDoKKyAgICAgICAgVXBk
YXRlIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlciB0byBsYXppbHkgaW5pdGlhdGUgdGhlIEdQVVBy
b2Nlc3MgY29ubmVjdGlvbiBpbnN0ZWFkCisgICAgICAgIG9mIGRvaW5nIGl0IG9uIGNvbnN0cnVj
dGlvbi4gVGhlIFJlbW90ZUF1ZGlvU2Vzc2lvbiBnZXRzIGNyZWF0ZWQgYXMgc29vbiBhcyB3ZQor
ICAgICAgICBjcmVhdGUgYSBXZWJQYWdlLCBhdCB3aGljaCBwb2ludCB3ZSBtYXkgbm90IG5lZWQg
YSBHUFVQcm9jZXNzIHlldC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAg
ICAgICAtIFVwZGF0ZSBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6dXBkYXRlUGFyYW1ldGVycygpIGNh
bGwgdG8gZW5hYmxlVlA5RGVjb2RlcnMoKSBkdWUgdG8gcmVuYW1lLgorICAgICAgICAgIFRoaXMg
bWFrZXMgaXQgY2xlYXIgaXQgaXMgb25seSB1c2VmdWwgZm9yIFZQOS4gV2UgYWxzbyBvbmx5IGNh
bGwgaXQgaWYgdGhlcmUgaXMgYWxyZWFkeQorICAgICAgICAgIGEgR1BVUHJvY2VzcyBjb25uZWN0
aW9uLiBJZiB0aGVyZSBpcyBubyBjb25uZWN0aW9uIHJpZ2h0IG5vdywgdGhlIEdQVVByb2Nlc3ND
b25uZWN0aW9uCisgICAgICAgICAgY29uc3RydWN0b3Igd2lsbCB0YWtlIGNhcmUgb2YgZ2V0dGlu
ZyB0aGUgbGF0ZXN0IHZhbHVlcyBmcm9tIHRoZSBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIK
KyAgICAgICAgICBhbmQgc2VuZCB0aGVtIHRvIHRoZSBHUFVQcm9jZXNzLgorICAgICAgICAtIENh
bGwgZW5zdXJlUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5KCkgb25seSBpZiB3ZSBhbHJlYWR5
IGhhdmUgYSBHUFVQcm9jZXNzQ29ubmVjdGlvbiwgdG8KKyAgICAgICAgICBhdm9pZCBlYWdlcmx5
IGxhdW5jaGluZyB0aGUgR1BVUHJvY2Vzcy4gSWYgbm8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gZXhp
c3RzLAorICAgICAgICAgIFdlYlByb2Nlc3M6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkg
d2lsbCB0YWtlIGNhcmUgb2YgY2FsbGluZyBlbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkoKQorICAgICAgICAgIG9uIGl0cyBwYWdlcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKToKKyAgICAgICAgVGhpcyBsb2dpYyB1c2VkIHRvIGhhcHBlbiBpbiBXZWJQ
YWdlOjp1cGRhdGVQcmVmZXJlbmNlcygpLiBIb3dldmVyLCBJIGhhZCB0byBtYWtlIGl0IGNvbmRp
dGlvbmFsIG9uCisgICAgICAgIGhhdmUgYSBHUFVQcm9jZXNzQ29ubmVjdGlvbiB0byBhdm9pZCBl
YWdlcmx5IGxhdW5jaGluZyB0aGUgR1BVUHJvY2Vzcy4gQXMgYSByZXN1bHQsIEkgbm93IG5lZWQg
c29tZQorICAgICAgICBsb2dpYyB3aGVuIHdlIGluaXRpYXRlIHRoZSBHUFVQcm9jZXNzQ29ubmVj
dGlvbiB0byBjYWxsIGVuc3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpIG9uIHRoZQor
ICAgICAgICBXZWJQYWdlcy4gTm90ZSB0aGF0IHRoaXMgaXMgYSB0ZW1wb3Jhcnkgd29ya2Fyb3Vu
ZCB1bnRpbCB3ZSBlbmFibGUgRE9NIFJlbmRlcmluZyBpbiB0aGUgR1BVUHJvY2Vzcy4KKworICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEpOgorICAg
ICAgICBzZXRVc2VHUFVQcm9jZXNzRm9yTWVkaWEoKSBnZXRzIGNhbGxlZCB3aGVuIGNvbnN0cnVj
dGluZyBhIFdlYlBhZ2UsIGF0IHdoaWNoIHBvaW50IGEgR1BVUHJvY2VzcyBpcworICAgICAgICBu
b3QgdXNlZnVsIHlldC4gQXMgYSByZXN1bHQsIHdlIHNob3VsZCBtYWtlIHN1cmUgc2V0VXNlR1BV
UHJvY2Vzc0Zvck1lZGlhKCkgZG9lcyBub3QgY2FsbAorICAgICAgICBlbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpIHRvIGF2b2lkIGVhZ2VybHkgbGF1bmNoaW5nIHRoZSBHUFVQcm9jZXNzIGFu
ZCBwb3RlbnRpYWxseSB3YXN0aW5nIG1lbW9yeS4KKyAgICAgICAgVG8gZml4IHRoaXMsIEkgbW92
ZWQgc29tZSBvZiB0aGUgbG9naWMgdG8gdGhlIEdQVVByb2Nlc3NDb25uZWN0aW9uIGNvbnN0cnVj
dG9yIHNvIHRoYXQgd2UgZG8gdGhlCisgICAgICAgIG1lZGlhLXJlbGF0ZWQgR1BVUHJvY2VzcyBp
bml0aWFsaXphdGlvbiBPTkxZIG9uY2Ugd2UgYWN0dWFsbHkgaGF2ZSBhIEdQVVByb2Nlc3MuCisK
IDIwMjEtMDQtMTIgIEFkYSBDaGFuICA8YWRhLmNoYW5AYXBwbGUuY29tPgogCiAgICAgICAgIElu
aXRpYWwgaW1wbGVtZW50YXRpb24gb2YgV2ViQ2hyb21lQ2xpZW50OjplbnVtZXJhdGVJbW1lcnNp
dmVYUkRldmljZXMoKSBhbmQgWFJEZXZpY2VQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAxYmUzZmYyY2Yx
MmU1N2U2NzBlMDE4MTg5MDdjMDdmZTdkYjQ5ZTE5Li4xNDI4ZDRjZDA4OTI2NDM3ODdiNTdkOGU3
ZjQ2Mjc0MjViNDAzZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTAwLDYgKzEwMCwyMSBAQCBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIGNvbm5lY3RpbwogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogCiAgICAgYWRkTGFu
Z3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzLCBsYW5ndWFnZXNDaGFuZ2VkKTsKKworICAgIGlmIChX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zaG91bGRVc2VSZW1vdGVSZW5kZXJpbmdGb3IoUmVuZGVy
aW5nUHVycG9zZTo6TWVkaWFQYWludGluZykpIHsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQorICAgICAgICBhdXRvJiBjZG1GYWN0b3JpZXMgPSBDRE1GYWN0b3J5OjpyZWdpc3RlcmVkRmFj
dG9yaWVzKCk7CisgICAgICAgIGNkbUZhY3Rvcmllcy5jbGVhcigpOworICAgICAgICBjZG1GYWN0
b3J5KCkucmVnaXN0ZXJGYWN0b3J5KGNkbUZhY3Rvcmllcyk7CisjZW5kaWYKKyNpZiBFTkFCTEUo
TEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKKyAgICAgICAgbGVnYWN5Q0RNRmFjdG9yeSgpLnJlZ2lz
dGVyRmFjdG9yeSgpOworI2VuZGlmCisgICAgICAgIG1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZh
Y3RvcnkoKS5yZWdpc3RlckZhY3RvcnkoKTsKKyNpZiBFTkFCTEUoVlA5KQorICAgICAgICBlbmFi
bGVWUDlEZWNvZGVycyhQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNob3VsZEVuYWJsZVZQ
OERlY29kZXIoKSwgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaG91bGRFbmFibGVWUDlE
ZWNvZGVyKCksIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcjo6c2hvdWxkRW5hYmxlVlA5U1dE
ZWNvZGVyKCkpOworI2VuZGlmCisgICAgfQogfQogCiBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6fkdQ
VVByb2Nlc3NDb25uZWN0aW9uKCkKQEAgLTI0NywxOCArMjYyLDE4IEBAIHZvaWQgR1BVUHJvY2Vz
c0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVSZW1vdGVDb21tYW5kKFBsYXRmb3JtTWVkaWFTZXNzaW9u
OjpSZW1vdGVDCiAgICAgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2Vy
KCkucHJvY2Vzc0RpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZCh0eXBlLCBhcmd1bWVudCk7
CiB9CiAKLXZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnVwZGF0ZVBhcmFtZXRlcnMoY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLXsKICNpZiBFTkFCTEUoVlA5
KQotICAgIGlmIChtX2VuYWJsZVZQOERlY29kZXIgPT0gcGFyYW1ldGVycy5zaG91bGRFbmFibGVW
UDhEZWNvZGVyICYmIG1fZW5hYmxlVlA5RGVjb2RlciA9PSBwYXJhbWV0ZXJzLnNob3VsZEVuYWJs
ZVZQOURlY29kZXIgJiYgbV9lbmFibGVWUDlTV0RlY29kZXIgPT0gcGFyYW1ldGVycy5zaG91bGRF
bmFibGVWUDlTV0RlY29kZXIpCit2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjplbmFibGVWUDlE
ZWNvZGVycyhib29sIGVuYWJsZVZQOERlY29kZXIsIGJvb2wgZW5hYmxlVlA5RGVjb2RlciwgYm9v
bCBlbmFibGVWUDlTV0RlY29kZXIpCit7CisgICAgaWYgKG1fZW5hYmxlVlA4RGVjb2RlciA9PSBl
bmFibGVWUDhEZWNvZGVyICYmIG1fZW5hYmxlVlA5RGVjb2RlciA9PSBlbmFibGVWUDlEZWNvZGVy
ICYmIG1fZW5hYmxlVlA5U1dEZWNvZGVyID09IGVuYWJsZVZQOVNXRGVjb2RlcikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9lbmFibGVWUDlEZWNvZGVyID0gcGFyYW1ldGVycy5zaG91bGRFbmFi
bGVWUDhEZWNvZGVyOwotICAgIG1fZW5hYmxlVlA5RGVjb2RlciA9IHBhcmFtZXRlcnMuc2hvdWxk
RW5hYmxlVlA5RGVjb2RlcjsKLSAgICBtX2VuYWJsZVZQOVNXRGVjb2RlciA9IHBhcmFtZXRlcnMu
c2hvdWxkRW5hYmxlVlA5U1dEZWNvZGVyOwotICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpFbmFibGVWUDlEZWNvZGVycyhwYXJhbWV0ZXJz
LnNob3VsZEVuYWJsZVZQOERlY29kZXIsIHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlVlA5RGVjb2Rl
ciwgcGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlTV0RlY29kZXIpLCB7IH0pOwotI2VuZGlmCisg
ICAgbV9lbmFibGVWUDlEZWNvZGVyID0gZW5hYmxlVlA4RGVjb2RlcjsKKyAgICBtX2VuYWJsZVZQ
OURlY29kZXIgPSBlbmFibGVWUDlEZWNvZGVyOworICAgIG1fZW5hYmxlVlA5U1dEZWNvZGVyID0g
ZW5hYmxlVlA5U1dEZWNvZGVyOworICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpFbmFibGVWUDlEZWNvZGVycyhlbmFibGVWUDhEZWNvZGVy
LCBlbmFibGVWUDlEZWNvZGVyLCBlbmFibGVWUDlTV0RlY29kZXIpLCB7IH0pOwogfQorI2VuZGlm
CiAKIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OnVwZGF0ZU1lZGlhQ29uZmlndXJhdGlvbigp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmgKaW5kZXggOTcxODI0YTMxNjY3YzJmNGUyOTE4Mzk0NmY1OGQ0MjQ5NTVlMjVlYi4u
ZDAwNDJiYWM3YTgwOGEzMDUxMGZkZmNkNzYwYmNhNzYwOTY0ZDE1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtODIs
MTAgKzgyLDExIEBAIHB1YmxpYzoKIAogICAgIFJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlv
bkZhY3RvcnkmIG1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkoKTsKIAotICAgIHZvaWQg
dXBkYXRlUGFyYW1ldGVycyhjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAgICAg
dm9pZCB1cGRhdGVNZWRpYUNvbmZpZ3VyYXRpb24oKTsKIAogI2lmIEVOQUJMRShWUDkpCisgICAg
dm9pZCBlbmFibGVWUDlEZWNvZGVycyhib29sIGVuYWJsZVZQOERlY29kZXIsIGJvb2wgZW5hYmxl
VlA5RGVjb2RlciwgYm9vbCBlbmFibGVWUDlTV0RlY29kZXIpOworCiAgICAgYm9vbCBpc1ZQOERl
Y29kZXJFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVWUDhEZWNvZGVyOyB9CiAgICAg
Ym9vbCBpc1ZQOURlY29kZXJFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVWUDlEZWNv
ZGVyOyB9CiAgICAgYm9vbCBpc1ZQU1dEZWNvZGVyRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5hYmxlVlA5U1dEZWNvZGVyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5jcHAKaW5kZXggNzAwOTIzMjI4MzM4
MDRhNTRlNmE2YjBhNTljYzNhODI0MWNkMzljMi4uZjVlYjYwMDQzOTYzZjZhM2NkNGFhYjZhZTk5
YWNkZGZlNzE0NTYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9uLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgVVNFKEFVRElPX1NFU1NJT04pCiAKICNpbmNsdWRlICJH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJHUFVQcm9jZXNz
Q29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIlJl
bW90ZUF1ZGlvU2Vzc2lvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlQXVkaW9TZXNzaW9u
UHJveHlNZXNzYWdlcy5oIgpAQCAtNDIsMzkgKzQxLDY3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCiBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBSZW1vdGVBdWRpb1Nlc3Npb246
OmNyZWF0ZShXZWJQcm9jZXNzJiBwcm9jZXNzKQogewotICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbjsKLSAgICBwcm9jZXNzLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb24oKSwgTWVzc2FnZXM6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OkVuc3VyZUF1ZGlvU2Vzc2lvbjo6UmVwbHkoY29uZmlndXJhdGlvbiks
IHsgfSk7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPihwcm9j
ZXNzLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZVJlZjxS
ZW1vdGVBdWRpb1Nlc3Npb24+KHByb2Nlc3MpOwogfQogCi1SZW1vdGVBdWRpb1Nlc3Npb246OlJl
bW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9jZXNzJiBwcm9jZXNzLCBSZW1vdGVBdWRpb1Nlc3Npb25D
b25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK1JlbW90ZUF1ZGlvU2Vzc2lvbjo6UmVtb3Rl
QXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJvY2Vz
cykKLSAgICAsIG1fY29uZmlndXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKQogewotICAg
IG1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLm1lc3NhZ2VSZWNlaXZlck1h
cCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uOjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKIH0KIAogUmVtb3RlQXVkaW9TZXNzaW9uOjp+UmVt
b3RlQXVkaW9TZXNzaW9uKCkKIHsKLSAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fcHJvY2Vz
cy5leGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkpCi0gICAgICAgIGNvbm5lY3Rpb24tPm1l
c3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
QXVkaW9TZXNzaW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworICAgIGlmIChtX2dwdVByb2Nl
c3NDb25uZWN0aW9uKQorICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5tZXNzYWdlUmVj
ZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vz
c2lvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotSVBDOjpDb25uZWN0aW9uJiBSZW1v
dGVBdWRpb1Nlc3Npb246OmNvbm5lY3Rpb24oKQordm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246Omdw
dVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rp
b24pCiB7Ci0gICAgcmV0dXJuIG1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigp
LmNvbm5lY3Rpb24oKTsKKyAgICBBU1NFUlQobV9ncHVQcm9jZXNzQ29ubmVjdGlvbi5nZXQoKSA9
PSAmY29ubmVjdGlvbik7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7Cisg
ICAgY29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKKyAg
ICBjb25uZWN0aW9uLnJlbW92ZUNsaWVudCgqdGhpcyk7Cit9CisKK0lQQzo6Q29ubmVjdGlvbiYg
UmVtb3RlQXVkaW9TZXNzaW9uOjplbnN1cmVDb25uZWN0aW9uKCkKK3sKKyAgICBpZiAoIW1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24pIHsKKyAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbiA9IG1h
a2VXZWFrUHRyKG1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpKTsKKyAgICAg
ICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+YWRkQ2xpZW50KCp0aGlzKTsKKyAgICAgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb246Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
KnRoaXMpOworCisgICAgICAgIFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24gY29uZmln
dXJhdGlvbjsKKyAgICAgICAgZW5zdXJlQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpFbnN1cmVBdWRpb1Nlc3Npb24oKSwgTWVzc2FnZXM6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVuc3VyZUF1ZGlvU2Vzc2lvbjo6UmVwbHkoY29u
ZmlndXJhdGlvbiksIHsgfSk7CisgICAgICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29u
ZmlndXJhdGlvbik7CisgICAgfQorICAgIHJldHVybiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5j
b25uZWN0aW9uKCk7Cit9CisKK2NvbnN0IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24m
IFJlbW90ZUF1ZGlvU2Vzc2lvbjo6Y29uZmlndXJhdGlvbigpIGNvbnN0Cit7CisgICAgaWYgKCFt
X2NvbmZpZ3VyYXRpb24pCisgICAgICAgIGNvbnN0X2Nhc3Q8UmVtb3RlQXVkaW9TZXNzaW9uKj4o
dGhpcyktPmVuc3VyZUNvbm5lY3Rpb24oKTsKKyAgICByZXR1cm4gKm1fY29uZmlndXJhdGlvbjsK
K30KKworUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYgUmVtb3RlQXVkaW9TZXNzaW9u
Ojpjb25maWd1cmF0aW9uKCkKK3sKKyAgICBpZiAoIW1fY29uZmlndXJhdGlvbikKKyAgICAgICAg
ZW5zdXJlQ29ubmVjdGlvbigpOworICAgIHJldHVybiAqbV9jb25maWd1cmF0aW9uOwogfQogCiB2
b2lkIFJlbW90ZUF1ZGlvU2Vzc2lvbjo6c2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlIHR5cGUsIFJv
dXRlU2hhcmluZ1BvbGljeSBwb2xpY3kpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBpZiAodHlwZSA9PSBtX2NvbmZpZ3VyYXRpb24uY2F0ZWdvcnkgJiYgcG9saWN5ID09IG1fY29u
ZmlndXJhdGlvbi5yb3V0ZVNoYXJpbmdQb2xpY3kpCisgICAgYXV0byYgY29uZmlndXJhdGlvbiA9
IHRoaXMtPmNvbmZpZ3VyYXRpb24oKTsKKyAgICBpZiAodHlwZSA9PSBjb25maWd1cmF0aW9uLmNh
dGVnb3J5ICYmIHBvbGljeSA9PSBjb25maWd1cmF0aW9uLnJvdXRlU2hhcmluZ1BvbGljeSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jb25maWd1cmF0aW9uLmNhdGVnb3J5ID0gdHlwZTsKLSAg
ICBtX2NvbmZpZ3VyYXRpb24ucm91dGVTaGFyaW5nUG9saWN5ID0gcG9saWN5OworICAgIGNvbmZp
Z3VyYXRpb24uY2F0ZWdvcnkgPSB0eXBlOworICAgIGNvbmZpZ3VyYXRpb24ucm91dGVTaGFyaW5n
UG9saWN5ID0gcG9saWN5OwogCi0gICAgY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZUF1ZGlvU2Vzc2lvblByb3h5OjpTZXRDYXRlZ29yeSh0eXBlLCBwb2xpY3kpLCB7IH0pOworICAg
IGVuc3VyZUNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94
eTo6U2V0Q2F0ZWdvcnkodHlwZSwgcG9saWN5KSwgeyB9KTsKICNlbGlmIFBMQVRGT1JNKE1BQykK
ICAgICAvLyBGSVhNRTogTW92ZSBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5IHRv
IHRoZSBHUFUgcHJvY2VzcyAod2Via2l0Lm9yZy9iLzIxNzUzNSkKICAgICBBdWRpb1Nlc3Npb246
OnNldENhdGVnb3J5KHR5cGUsIHBvbGljeSk7CkBAIC04NiwyMiArMTEzLDIyIEBAIHZvaWQgUmVt
b3RlQXVkaW9TZXNzaW9uOjpzZXRDYXRlZ29yeShDYXRlZ29yeVR5cGUgdHlwZSwgUm91dGVTaGFy
aW5nUG9saWN5IHBvbGljCiAKIHZvaWQgUmVtb3RlQXVkaW9TZXNzaW9uOjpzZXRQcmVmZXJyZWRC
dWZmZXJTaXplKHNpemVfdCBzaXplKQogewotICAgIGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6U2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplKSwg
eyB9KTsKKyAgICBlbnN1cmVDb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlQXVkaW9T
ZXNzaW9uUHJveHk6OlNldFByZWZlcnJlZEJ1ZmZlclNpemUoc2l6ZSksIHsgfSk7CiB9CiAKIGJv
b2wgUmVtb3RlQXVkaW9TZXNzaW9uOjp0cnlUb1NldEFjdGl2ZUludGVybmFsKGJvb2wgYWN0aXZl
KQogewogICAgIGJvb2wgc3VjY2VlZGVkOwotICAgIGNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNz
YWdlczo6UmVtb3RlQXVkaW9TZXNzaW9uUHJveHk6OlRyeVRvU2V0QWN0aXZlKGFjdGl2ZSksIE1l
c3NhZ2VzOjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRBY3RpdmU6OlJlcGx5KHN1
Y2NlZWRlZCksIHsgfSk7CisgICAgZW5zdXJlQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2Vz
OjpSZW1vdGVBdWRpb1Nlc3Npb25Qcm94eTo6VHJ5VG9TZXRBY3RpdmUoYWN0aXZlKSwgTWVzc2Fn
ZXM6OlJlbW90ZUF1ZGlvU2Vzc2lvblByb3h5OjpUcnlUb1NldEFjdGl2ZTo6UmVwbHkoc3VjY2Vl
ZGVkKSwgeyB9KTsKICAgICBpZiAoc3VjY2VlZGVkKQotICAgICAgICBtX2NvbmZpZ3VyYXRpb24u
aXNBY3RpdmUgPSBhY3RpdmU7CisgICAgICAgIGNvbmZpZ3VyYXRpb24oKS5pc0FjdGl2ZSA9IGFj
dGl2ZTsKICAgICByZXR1cm4gc3VjY2VlZGVkOwogfQogCiBBdWRpb1Nlc3Npb246OkNhdGVnb3J5
VHlwZSBSZW1vdGVBdWRpb1Nlc3Npb246OmNhdGVnb3J5KCkgY29uc3QKIHsKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotICAgIHJldHVybiBtX2NvbmZpZ3VyYXRpb24uY2F0ZWdvcnk7CisgICAg
cmV0dXJuIGNvbmZpZ3VyYXRpb24oKS5jYXRlZ29yeTsKICNlbGlmIFBMQVRGT1JNKE1BQykKICAg
ICByZXR1cm4gQXVkaW9TZXNzaW9uOjpjYXRlZ29yeSgpOwogI2Vsc2UKQEAgLTExMSw5ICsxMzgs
OSBAQCBBdWRpb1Nlc3Npb246OkNhdGVnb3J5VHlwZSBSZW1vdGVBdWRpb1Nlc3Npb246OmNhdGVn
b3J5KCkgY29uc3QKIAogdm9pZCBSZW1vdGVBdWRpb1Nlc3Npb246OmNvbmZpZ3VyYXRpb25DaGFu
Z2VkKFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewot
ICAgIGJvb2wgbXV0ZWRTdGF0ZUNoYW5nZWQgPSBjb25maWd1cmF0aW9uLmlzTXV0ZWQgIT0gbV9j
b25maWd1cmF0aW9uLmlzTXV0ZWQ7CisgICAgYm9vbCBtdXRlZFN0YXRlQ2hhbmdlZCA9ICFtX2Nv
bmZpZ3VyYXRpb24gfHwgY29uZmlndXJhdGlvbi5pc011dGVkICE9IG1fY29uZmlndXJhdGlvbi0+
aXNNdXRlZDsKIAotICAgIG1fY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247CisgICAgbV9j
b25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKIAogICAgIGlmIChtdXRlZFN0
YXRlQ2hhbmdlZCkKICAgICAgICAgaGFuZGxlTXV0ZWRTdGF0ZUNoYW5nZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlQXVkaW9TZXNzaW9u
LmgKaW5kZXggNTIxM2E5MjY2MzA2N2QzNTM4ZjMwNzU0ZWE2MjgwMmFhMjcwYTcwYS4uNTQ1Y2Nl
OThiMzA1ODg2YTdkZDVkMmUzZmMxNzYyOTg5NTE3ZWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVBdWRpb1Nlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUF1ZGlvU2Vzc2lvbi5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFVTRShBVURJT19TRVNT
SU9OKQogCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9u
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KQEAgLTQyLDYgKzQzLDcgQEAg
Y2xhc3MgV2ViUHJvY2VzczsKIAogY2xhc3MgUmVtb3RlQXVkaW9TZXNzaW9uIGZpbmFsCiAgICAg
OiBwdWJsaWMgV2ViQ29yZTo6QXVkaW9TZXNzaW9uCisgICAgLCBwdWJsaWMgR1BVUHJvY2Vzc0Nv
bm5lY3Rpb246OkNsaWVudAogICAgICwgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNDksOSArNTEsOSBAQCBwdWJsaWM6CiAg
ICAgflJlbW90ZUF1ZGlvU2Vzc2lvbigpOwogCiBwcml2YXRlOgotICAgIGZyaWVuZCBVbmlxdWVS
ZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBXVEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxv
Y0NoZWNrPFJlbW90ZUF1ZGlvU2Vzc2lvbj4oV2ViUHJvY2VzcyYsIFJlbW90ZUF1ZGlvU2Vzc2lv
bkNvbmZpZ3VyYXRpb24mJik7Ci0gICAgUmVtb3RlQXVkaW9TZXNzaW9uKFdlYlByb2Nlc3MmLCBS
ZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiYpOwotICAgIElQQzo6Q29ubmVjdGlvbiYg
Y29ubmVjdGlvbigpOworICAgIGZyaWVuZCBVbmlxdWVSZWY8UmVtb3RlQXVkaW9TZXNzaW9uPiBX
VEY6Om1ha2VVbmlxdWVSZWZXaXRob3V0RmFzdE1hbGxvY0NoZWNrPFJlbW90ZUF1ZGlvU2Vzc2lv
bj4oV2ViUHJvY2VzcyYpOworICAgIGV4cGxpY2l0IFJlbW90ZUF1ZGlvU2Vzc2lvbihXZWJQcm9j
ZXNzJik7CisgICAgSVBDOjpDb25uZWN0aW9uJiBlbnN1cmVDb25uZWN0aW9uKCk7CiAKICAgICAv
LyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CkBAIC01OSwyNCArNjEsMzIgQEAgcHJp
dmF0ZToKICAgICAvLyBNZXNzYWdlcwogICAgIHZvaWQgY29uZmlndXJhdGlvbkNoYW5nZWQoUmVt
b3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiYmKTsKIAorICAgIC8vIEdQVVByb2Nlc3NDb25u
ZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24mKSBmaW5hbDsKKwogICAgIC8vIEF1ZGlvU2Vzc2lvbgogICAgIHZv
aWQgc2V0Q2F0ZWdvcnkoQ2F0ZWdvcnlUeXBlLCBXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3kp
IGZpbmFsOwogICAgIHZvaWQgc2V0UHJlZmVycmVkQnVmZmVyU2l6ZShzaXplX3QpIGZpbmFsOwog
ICAgIGJvb2wgdHJ5VG9TZXRBY3RpdmVJbnRlcm5hbChib29sKSBmaW5hbDsKIAorICAgIGNvbnN0
IFJlbW90ZUF1ZGlvU2Vzc2lvbkNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24oKSBjb25zdDsK
KyAgICBSZW1vdGVBdWRpb1Nlc3Npb25Db25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKCk7Cisg
ICAgdm9pZCBpbml0aWFsaXplQ29uZmlndXJhdGlvbklmTmVjZXNzYXJ5KCk7CisKICAgICBDYXRl
Z29yeVR5cGUgY2F0ZWdvcnkoKSBjb25zdCBmaW5hbDsKLSAgICBXZWJDb3JlOjpSb3V0ZVNoYXJp
bmdQb2xpY3kgcm91dGVTaGFyaW5nUG9saWN5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25m
aWd1cmF0aW9uLnJvdXRlU2hhcmluZ1BvbGljeTsgfQotICAgIFN0cmluZyByb3V0aW5nQ29udGV4
dFVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi5yb3V0aW5nQ29udGV4
dFVJRDsgfQotICAgIGZsb2F0IHNhbXBsZVJhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Nv
bmZpZ3VyYXRpb24uc2FtcGxlUmF0ZTsgfQotICAgIHNpemVfdCBidWZmZXJTaXplKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmJ1ZmZlclNpemU7IH0KLSAgICBzaXplX3Qg
bnVtYmVyT2ZPdXRwdXRDaGFubmVscygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29uZmlndXJh
dGlvbi5udW1iZXJPZk91dHB1dENoYW5uZWxzOyB9Ci0gICAgc2l6ZV90IG1heGltdW1OdW1iZXJP
Zk91dHB1dENoYW5uZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLm1h
eGltdW1OdW1iZXJPZk91dHB1dENoYW5uZWxzOyB9Ci0gICAgc2l6ZV90IHByZWZlcnJlZEJ1ZmZl
clNpemUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbmZpZ3VyYXRpb24ucHJlZmVycmVkQnVm
ZmVyU2l6ZTsgfQotICAgIGJvb2wgaXNNdXRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29u
ZmlndXJhdGlvbi5pc011dGVkOyB9Ci0gICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fY29uZmlndXJhdGlvbi5pc0FjdGl2ZTsgfQorICAgIFdlYkNvcmU6OlJvdXRlU2hh
cmluZ1BvbGljeSByb3V0ZVNoYXJpbmdQb2xpY3koKSBjb25zdCBmaW5hbCB7IHJldHVybiBjb25m
aWd1cmF0aW9uKCkucm91dGVTaGFyaW5nUG9saWN5OyB9CisgICAgU3RyaW5nIHJvdXRpbmdDb250
ZXh0VUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJhdGlvbigpLnJvdXRpbmdDb250
ZXh0VUlEOyB9CisgICAgZmxvYXQgc2FtcGxlUmF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNv
bmZpZ3VyYXRpb24oKS5zYW1wbGVSYXRlOyB9CisgICAgc2l6ZV90IGJ1ZmZlclNpemUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBjb25maWd1cmF0aW9uKCkuYnVmZmVyU2l6ZTsgfQorICAgIHNpemVf
dCBudW1iZXJPZk91dHB1dENoYW5uZWxzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29uZmlndXJh
dGlvbigpLm51bWJlck9mT3V0cHV0Q2hhbm5lbHM7IH0KKyAgICBzaXplX3QgbWF4aW11bU51bWJl
ck9mT3V0cHV0Q2hhbm5lbHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBjb25maWd1cmF0aW9uKCku
bWF4aW11bU51bWJlck9mT3V0cHV0Q2hhbm5lbHM7IH0KKyAgICBzaXplX3QgcHJlZmVycmVkQnVm
ZmVyU2l6ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGNvbmZpZ3VyYXRpb24oKS5wcmVmZXJyZWRC
dWZmZXJTaXplOyB9CisgICAgYm9vbCBpc011dGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gY29u
ZmlndXJhdGlvbigpLmlzTXV0ZWQ7IH0KKyAgICBib29sIGlzQWN0aXZlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gY29uZmlndXJhdGlvbigpLmlzQWN0aXZlOyB9CiAKICAgICBXZWJQcm9jZXNzJiBt
X3Byb2Nlc3M7Ci0gICAgUmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3Vy
YXRpb247CisgICAgT3B0aW9uYWw8UmVtb3RlQXVkaW9TZXNzaW9uQ29uZmlndXJhdGlvbj4gbV9j
b25maWd1cmF0aW9uOworICAgIFdlYWtQdHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb247CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVy
LmNwcAppbmRleCBjYjI5NmMwMzcyNTY5MGM4ZTliOTg3ODUzODk2NzUwMjY3ZTliNjEwLi4yYWI1
ZjkxM2NkZTgzY2VkYzU0YTdhOGZlMGVlMDk1M2JjZTQ0OTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvaW9zL1JlbW90ZU1l
ZGlhU2Vzc2lvbkhlbHBlci5jcHAKQEAgLTQ0LDQyICs0NCwzOSBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6UmVtb3RlTWVkaWFTZXNzaW9uSGVs
cGVyKFdlYlByb2Nlc3MmIHByb2Nlc3MpCiAgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKIHsKLSAg
ICBjb25uZWN0VG9HUFVQcm9jZXNzKCk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uSGVs
cGVyOjpjb25uZWN0VG9HUFVQcm9jZXNzKCkKK0lQQzo6Q29ubmVjdGlvbiYgUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyOjplbnN1cmVDb25uZWN0aW9uKCkKIHsKLSAgICBhdXRvJiBncHVQcm9jZXNz
Q29ubmVjdGlvbiA9IG1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwotICAg
IGdwdVByb2Nlc3NDb25uZWN0aW9uLmFkZENsaWVudCgqdGhpcyk7Ci0gICAgZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMp
OwotICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpFbnN1cmVNZWRpYVNlc3Npb25IZWxwZXIoKSwgeyB9
KTsKLX0KLQotSVBDOjpDb25uZWN0aW9uJiBSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXI6OmNvbm5l
Y3Rpb24oKQotewotICAgIHJldHVybiBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24oKS5jb25uZWN0aW9uKCk7CisgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKSB7Cisg
ICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBtYWtlV2Vha1B0cihtX3Byb2Nlc3MuZW5z
dXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24tPmFkZENsaWVudCgqdGhpcyk7CisgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPm1l
c3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlTWVk
aWFTZXNzaW9uSGVscGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsKKyAgICAgICAg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVuc3VyZU1lZGlhU2Vzc2lvbkhlbHBlcigpLCB7IH0pOwor
ICAgIH0KKyAgICByZXR1cm4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpOwog
fQogCiB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25E
aWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCiB7CiAg
ICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24ucmVtb3ZlQ2xpZW50KCp0aGlzKTsKICAgICBncHVQcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
KnRoaXMpOwotICAgIGNvbm5lY3RUb0dQVVByb2Nlc3MoKTsKKyAgICBtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uID0gbnVsbHB0cjsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXI6OnN0
YXJ0TW9uaXRvcmluZ1dpcmVsZXNzUm91dGVzSW50ZXJuYWwoKQogewotICAgIGNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94eTo6U3RhcnRNb25p
dG9yaW5nV2lyZWxlc3NSb3V0ZXMoKSwgeyB9KTsKKyAgICBlbnN1cmVDb25uZWN0aW9uKCkuc2Vu
ZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyUHJveHk6OlN0YXJ0TW9uaXRvcmlu
Z1dpcmVsZXNzUm91dGVzKCksIHsgfSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFTZXNzaW9uSGVs
cGVyOjpzdG9wTW9uaXRvcmluZ1dpcmVsZXNzUm91dGVzSW50ZXJuYWwoKQogewotICAgIGNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94eTo6U3Rv
cE1vbml0b3JpbmdXaXJlbGVzc1JvdXRlcygpLCB7IH0pOworICAgIGVuc3VyZUNvbm5lY3Rpb24o
KS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94eTo6U3RvcE1vbml0
b3JpbmdXaXJlbGVzc1JvdXRlcygpLCB7IH0pOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhU2Vzc2lv
bkhlbHBlcjo6cHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRChpbnQgcGlkKQogewotICAg
IGNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94
eTo6UHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRChwaWQpLCB7IH0pOworICAgIGVuc3Vy
ZUNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNlc3Npb25IZWxwZXJQcm94
eTo6UHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRChwaWQpLCB7IH0pOwogfQogCiB2b2lk
IFJlbW90ZU1lZGlhU2Vzc2lvbkhlbHBlcjo6YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShTdXBw
b3J0c0FpclBsYXlWaWRlbyBzdXBwb3J0c0FpclBsYXlWaWRlbywgTWVkaWFQbGF5YmFja1Rhcmdl
dENvbnRleHQmJiB0YXJnZXRDb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9pb3MvUmVtb3RlTWVkaWFTZXNzaW9uSGVscGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIu
aAppbmRleCBlNDQ5YzQ4NmU0OWI0MmY0ZDAyMDEyNGE4NDhiNzg5MzQyZGZkYWYwLi4yOGM5OGE0
ZmRmNDc4NWI1NGEzMmNhMDY0MTVlNTkyMTJkNjNiMmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNlc3Npb25IZWxwZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL2lvcy9SZW1vdGVNZWRpYVNl
c3Npb25IZWxwZXIuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJsaWM6CiAgICAgUmVtb3RlTWVkaWFT
ZXNzaW9uSGVscGVyKFdlYlByb2Nlc3MmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVNZWRpYVNlc3Np
b25IZWxwZXIoKSA9IGRlZmF1bHQ7CiAKLSAgICBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24o
KTsKKyAgICBJUEM6OkNvbm5lY3Rpb24mIGVuc3VyZUNvbm5lY3Rpb24oKTsKIAogICAgIHVzaW5n
IEhhc0F2YWlsYWJsZVRhcmdldHMgPSBXZWJDb3JlOjpNZWRpYVNlc3Npb25IZWxwZXJDbGllbnQ6
Okhhc0F2YWlsYWJsZVRhcmdldHM7CiAgICAgdXNpbmcgUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRV
bml0ID0gV2ViQ29yZTo6TWVkaWFTZXNzaW9uSGVscGVyQ2xpZW50OjpQbGF5aW5nVG9BdXRvbW90
aXZlSGVhZFVuaXQ7CkBAIC01Myw4ICs1Myw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBTdXNwZW5k
ZWRVbmRlckxvY2sgPSBXZWJDb3JlOjpNZWRpYVNlc3Npb25IZWxwZXJDbGllbnQ6OlN1c3BlbmRl
ZFVuZGVyTG9jazsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGNvbm5lY3RUb0dQVVByb2Nlc3MoKTsK
LQogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIApAQCAtNzAsNiArNjgs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgYWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShTdXBwb3J0
c0FpclBsYXlWaWRlbywgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmJik7CiAK
ICAgICBXZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CisgICAgV2Vha1B0cjxHUFVQcm9jZXNzQ29ubmVj
dGlvbj4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYWQ2YmUzOTZjMGM1NDAyM2QwOTg2
ZDU5NWQyYTMxYmM0ZWY0ZTExYi4uNzBiNGY1YzgxMjBhZDE5NjRmN2UwNGFmNjgwMjA0OWFmN2E3
YmI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTg1MSwxOSArODUxLDE2IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFn
ZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZUNvbnRleHRJbldlYlByb2Nlc3NGb3JWaXNp
YmlsaXR5UHJvcGFnYXRpb24obV9jb250ZXh0Rm9yVmlzaWJpbGl0eVByb3BhZ2F0aW9uLT5jb250
ZXh0SUQoKSkpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0gICAgaWYgKG1f
c2hvdWxkUGxheU1lZGlhSW5HUFVQcm9jZXNzKQotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnVwZGF0ZVBhcmFtZXRlcnMocGFyYW1l
dGVycyk7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgbV92aXNp
dGVkTGlua1RhYmxlSUQgPSBwYXJhbWV0ZXJzLnZpc2l0ZWRMaW5rVGFibGVJRDsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFZQOSkKLSAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFNo
b3VsZEVuYWJsZVZQOURlY29kZXIocGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlEZWNvZGVyKTsK
ICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNldFNob3VsZEVuYWJsZVZQOERlY29k
ZXIocGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDhEZWNvZGVyKTsKKyAgICBQbGF0Zm9ybU1lZGlh
U2Vzc2lvbk1hbmFnZXI6OnNldFNob3VsZEVuYWJsZVZQOURlY29kZXIocGFyYW1ldGVycy5zaG91
bGRFbmFibGVWUDlEZWNvZGVyKTsKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNl
dFNob3VsZEVuYWJsZVZQOVNXRGVjb2RlcihwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZVZQOVNXRGVj
b2Rlcik7CisgICAgaWYgKG1fc2hvdWxkUGxheU1lZGlhSW5HUFVQcm9jZXNzICYmIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKKyAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZXhpc3RpbmdHUFVQcm9jZXNzQ29ubmVjdGlvbigpLT5l
bmFibGVWUDlEZWNvZGVycyhwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZVZQOERlY29kZXIsIHBhcmFt
ZXRlcnMuc2hvdWxkRW5hYmxlVlA5RGVjb2RlciwgcGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlT
V0RlY29kZXIpOwogI2VuZGlmCiAKICAgICBtX3BhZ2UtPnNldENhblVzZUNyZWRlbnRpYWxTdG9y
YWdlKHBhcmFtZXRlcnMuY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOwpAQCAtMzkzOCw3ICszOTM1
LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJiBzdG9yZSkKICAgICAvLyBGb3Igbm93LCBpdCBpcyBwb3NzaWJsZSB0byB1c2UgdGhl
IEdQVVByb2Nlc3MgZm9yIG1lZGlhIHBsYXliYWNrIG9ubHkuIEJlY2F1c2UgbWVkaWEgZG9lcyBu
b3QKICAgICAvLyB1c2UgdGhlIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQsIHdlIG5lZWQgdG8gZm9y
Y2UgdGhlIGNyZWF0aW9uIG9mIGEgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCBpbgogICAgIC8vIHRo
ZSBHUFVQcm9jZXNzIHNvIHRoYXQgdGhlIHBhZ2UgZ2V0cyBhIHZpc2liaWxpdHkgcHJvcGFnYXRp
b24gdmlldy4KLSAgICBpZiAobV9zaG91bGRQbGF5TWVkaWFJbkdQVVByb2Nlc3MgJiYgIXVzaW5n
R1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZykKKyAgICBpZiAobV9zaG91bGRQbGF5TWVkaWFJbkdQ
VVByb2Nlc3MgJiYgIXVzaW5nR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZyAmJiBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5leGlzdGluZ0dQVVByb2Nlc3NDb25uZWN0aW9uKCkpCiAgICAgICAgIGVu
c3VyZVJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA1ZmM3NmVjNzI5ZjhjMjFkMmJlNDhhZTIx
NTNkZjZmZTlkMGRkNzUzLi5lN2NmMGY2ZWY3MWNhMjBkYmZjZTQzMDRkNzU3Y2Y5ZDZhYmFlMTQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xMjA5LDYgKzEy
MDksMTcgQEAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIFdlYlByb2Nlc3M6OmVuc3VyZUdQVVByb2Nl
c3NDb25uZWN0aW9uKCkKICAgICAgICAgQVNTRVJUKGNvbm5lY3Rpb25JbmZvLmF1ZGl0VG9rZW4p
OwogICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5zZXRBdWRpdFRva2VuKFdURk1vdmUo
Y29ubmVjdGlvbkluZm8uYXVkaXRUb2tlbikpOwogI2VuZGlmCisKKyAgICAgICAgLy8gRklYTUU6
IFRoaXMgd2lsbCBubyBsb25nZXIgYmUgbmVlZGVkIG9uY2Ugd2UgdXNlIHRoZSBHUFVQcm9jZXNz
IGZvciBET00gcmVuZGVyaW5nLgorICAgICAgICAvLyBGb3Igbm93LCBpdCBpcyBwb3NzaWJsZSB0
byB1c2UgdGhlIEdQVVByb2Nlc3MgZm9yIG1lZGlhIHBsYXliYWNrIG9ubHkuIEJlY2F1c2UgbWVk
aWEgZG9lcyBub3QKKyAgICAgICAgLy8gdXNlIHRoZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kLCB3
ZSBuZWVkIHRvIGZvcmNlIHRoZSBjcmVhdGlvbiBvZiBhIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQg
aW4KKyAgICAgICAgLy8gdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCB0aGUgcGFnZSBnZXRzIGEgdmlz
aWJpbGl0eSBwcm9wYWdhdGlvbiB2aWV3LgorICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0
Y2goW3RoaXNdIHsKKyAgICAgICAgICAgIGlmIChtX3VzZUdQVVByb2Nlc3NGb3JNZWRpYSAmJiAh
bV91c2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVyaW5nKSB7CisgICAgICAgICAgICAgICAgZm9yIChh
dXRvJiBwYWdlIDogbV9wYWdlTWFwLnZhbHVlcygpKQorICAgICAgICAgICAgICAgICAgICBwYWdl
LT5lbnN1cmVSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSk7CiAgICAgfQogICAgIAogICAgIHJldHVybiAqbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bjsKQEAgLTE5NTQsMTMgKzE5NjUsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9j
ZXNzRm9yTWVkaWEoYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWEpCiAgICAgbV91c2VHUFVQcm9j
ZXNzRm9yTWVkaWEgPSB1c2VHUFVQcm9jZXNzRm9yTWVkaWE7CiAKICNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQotICAgIGF1dG8mIGNkbUZhY3RvcmllcyA9IENETUZhY3Rvcnk6OnJlZ2lzdGVy
ZWRGYWN0b3JpZXMoKTsKLSAgICBjZG1GYWN0b3JpZXMuY2xlYXIoKTsKLQotICAgIGlmICh1c2VH
UFVQcm9jZXNzRm9yTWVkaWEpCi0gICAgICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCku
Y2RtRmFjdG9yeSgpLnJlZ2lzdGVyRmFjdG9yeShjZG1GYWN0b3JpZXMpOwotICAgIGVsc2UKKyAg
ICBpZiAoIXVzZUdQVVByb2Nlc3NGb3JNZWRpYSkgeworICAgICAgICBhdXRvJiBjZG1GYWN0b3Jp
ZXMgPSBDRE1GYWN0b3J5OjpyZWdpc3RlcmVkRmFjdG9yaWVzKCk7CisgICAgICAgIGNkbUZhY3Rv
cmllcy5jbGVhcigpOwogICAgICAgICBDRE1GYWN0b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFjdG9y
aWVzKGNkbUZhY3Rvcmllcyk7CisgICAgfQogI2VuZGlmCiAKICNpZiBVU0UoQVVESU9fU0VTU0lP
TikKQEAgLTE5NzgsMTUgKzE5ODcsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpzZXRVc2VHUFVQcm9j
ZXNzRm9yTWVkaWEoYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWEpCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQotICAgIGlmICh1c2VHUFVQcm9jZXNzRm9yTWVk
aWEpCi0gICAgICAgIGVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkubGVnYWN5Q0RNRmFjdG9y
eSgpLnJlZ2lzdGVyRmFjdG9yeSgpOwotICAgIGVsc2UKKyAgICBpZiAoIXVzZUdQVVByb2Nlc3NG
b3JNZWRpYSkKICAgICAgICAgTGVnYWN5Q0RNOjpyZXNldEZhY3RvcmllcygpOwogI2VuZGlmCiAK
LSAgICBpZiAodXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQotICAgICAgICBlbnN1cmVHUFVQcm9jZXNz
Q29ubmVjdGlvbigpLm1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkoKS5yZWdpc3RlckZh
Y3RvcnkoKTsKLSAgICBlbHNlCisgICAgaWYgKCF1c2VHUFVQcm9jZXNzRm9yTWVkaWEpCiAgICAg
ICAgIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnk6OnJlc2V0RmFjdG9yaWVzKCk7CiAK
ICAgICBpZiAodXNlR1BVUHJvY2Vzc0Zvck1lZGlhKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMwNDAxMDEyMmI2NmJhNGI2MzE1NDBkMTEyYjVi
NDg0ZjgxN2RjMmIuLmNlOWE1ZDE5NTNlZTA2ODJiMjM2NTQwMjM0NjZmZTZlYjA4ZWEwMTkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAyMS0wNC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisg
ICAgICAgIFRoZSBHUFVQcm9jZXNzIHNob3VsZCBvbmx5IGxhdW5jaCB3aGVuIGl0IGlzIG5lZWRl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NDYx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxh
eW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9HUFVQcm9jZXNzLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDQtMTEgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJldmVydGluZyByMjc1ODAxLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9HUFVQcm9jZXNzLm1tCmluZGV4IDgzMDhiNWJlZjc1ODU0NWUwNDJmNDEz
ZDBmOTg3MDU3ZTI5MmMwNjkuLmYzMGMyZTJlNTg4OGI2YzJiNTlkMjM1ZDU2ZmNlNDI3YjIyZjc3
N2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR1BV
UHJvY2Vzcy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dQ
VVByb2Nlc3MubW0KQEAgLTIxMyw2ICsyMTMsMjIgQEAgVEVTVChHUFVQcm9jZXNzLCBXZWJQcm9j
ZXNzVGVybWluYXRpb25BZnRlclRvb01hbnlHUFVQcm9jZXNzQ3Jhc2hlcykKICAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBfaXNQbGF5aW5nQXVkaW9dKTsKIH0KIAorVEVTVChHUFVQcm9jZXNzLCBP
bmx5TGF1bmNoZXNHUFVQcm9jZXNzV2hlbk5lY2Vzc2FyeSkKK3sKKyAgICBhdXRvIGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwor
ICAgIFdLUHJlZmVyZW5jZXNTZXRCb29sVmFsdWVGb3JLZXlGb3JUZXN0aW5nKChfX2JyaWRnZSBX
S1ByZWZlcmVuY2VzUmVmKVtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgdHJ1ZSwgV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQiKSk7
CisgICAgV0tQcmVmZXJlbmNlc1NldEJvb2xWYWx1ZUZvcktleUZvclRlc3RpbmcoKF9fYnJpZGdl
IFdLUHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLCB0cnVlLCBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxl
ZCIpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9yVGVzdGluZygoX19i
cmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc10sIHRydWUs
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVu
ZGVyaW5nRW5hYmxlZCIpKTsKKyAgICBXS1ByZWZlcmVuY2VzU2V0Qm9vbFZhbHVlRm9yS2V5Rm9y
VGVzdGluZygoX19icmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10sIGZhbHNlLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVXNlR1BVUHJvY2Vz
c0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQiKSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQw
MCwgNDAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJzaW1wbGUiXTsKKworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29wKDEwKTsKKworICAgIEVYUEVDVF9FUShbY29uZmln
dXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCBfZ3B1UHJvY2Vzc0lkZW50aWZpZXJdLCAwKTsKK30K
KwogVEVTVChHUFVQcm9jZXNzLCBDcmFzaFdoaWxlUGxheWluZ1ZpZGVvKQogewogICAgIGF1dG8g
Y29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBp
bml0XSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>