<?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>239722</bug_id>
          
          <creation_ts>2022-04-25 08:12:50 -0700</creation_ts>
          <short_desc>Use sandbox extension to enable Mach bootstrap&apos;ing</short_desc>
          <delta_ts>2023-07-06 16:55:22 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=249673</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=258953</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <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>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1864097</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-04-25 08:12:50 -0700</bug_when>
    <thetext>A generic sandbox extension can be used to enable Mach bootstrap&apos;ing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864098</commentid>
    <comment_count>1</comment_count>
      <attachid>458270</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-04-25 08:16:08 -0700</bug_when>
    <thetext>Created attachment 458270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865828</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-02 08:13:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/92608084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1917163</commentid>
    <comment_count>3</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2022-12-07 00:52:24 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/7252</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1919880</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-12-16 03:28:12 -0800</bug_when>
    <thetext>Committed 257982@main (73fc4fd89f83): &lt;https://commits.webkit.org/257982@main&gt;

Reviewed commits have been landed. Closing PR #7252 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1920895</commentid>
    <comment_count>5</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-12-20 13:42:17 -0800</bug_when>
    <thetext>Reverted by https://github.com/WebKit/WebKit/pull/7933</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1920900</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-12-20 13:44:52 -0800</bug_when>
    <thetext>Committed 258162@main (4d4df67e042d): &lt;https://commits.webkit.org/258162@main&gt;

Reviewed commits have been landed. Closing PR #7933 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1922481</commentid>
    <comment_count>7</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2023-01-01 23:50:55 -0800</bug_when>
    <thetext>Re-opening for pull request https://github.com/WebKit/WebKit/pull/8122</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458270</attachid>
            <date>2022-04-25 08:16:08 -0700</date>
            <delta_ts>2022-04-25 08:32:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239722-20220425081607.patch</filename>
            <type>text/plain</type>
            <size>44350</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyOTI5NzUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDIyLTA0LTIwICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBEeW5hbWljYWxseSBzd2l0Y2ggbWVzc2FnZSBm
aWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODU3NworICAgICAgICA8cmRhcjovLzY5MjYzMzI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTUEkgdG8gc2V0IHNhbmRib3ggc3RhdGUgdmFy
aWFibGUuCisKKyAgICAgICAgKiB3dGYvc3BpL2Rhcndpbi9TYW5kYm94U1BJLmg6CisKIDIwMjIt
MDQtMTggIEVsbGlvdHQgV2lsbGlhbXMgIDxlbXdAYXBwbGUuY29tPgogCiAgICAgICAgIFtYQ0J1
aWxkXSBVc2UgWENCdWlsZCBmb3IgYWxsIGNvbW1hbmQtbGluZSBhbmQgcHJvamVjdCBidWlsZHMK
SW5kZXg6IFNvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XVEYvd3RmL3NwaS9kYXJ3aW4vU2FuZGJveFNQSS5oCShyZXZpc2lvbiAyOTI5
NzUpCisrKyBTb3VyY2UvV1RGL3d0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaAkod29ya2luZyBj
b3B5KQpAQCAtODYsNiArODYsOCBAQCBpbnQgc2FuZGJveF9hcHBseShzYW5kYm94X3Byb2ZpbGVf
dCk7CiBjaGFyICpzYW5kYm94X2V4dGVuc2lvbl9pc3N1ZV9pb2tpdF9yZWdpc3RyeV9lbnRyeV9j
bGFzc190b19wcm9jZXNzKGNvbnN0IGNoYXIgKmV4dGVuc2lvbl9jbGFzcywgY29uc3QgY2hhciAq
cmVnaXN0cnlfZW50cnlfY2xhc3MsIHVpbnQzMl90IGZsYWdzLCBhdWRpdF90b2tlbl90KTsKIGNo
YXIgKnNhbmRib3hfZXh0ZW5zaW9uX2lzc3VlX2lva2l0X3JlZ2lzdHJ5X2VudHJ5X2NsYXNzKGNv
bnN0IGNoYXIgKmV4dGVuc2lvbl9jbGFzcywgY29uc3QgY2hhciAqcmVnaXN0cnlfZW50cnlfY2xh
c3MsIHVpbnQzMl90IGZsYWdzKTsKIAorYm9vbCBzYW5kYm94X2VuYWJsZV9zdGF0ZV9mbGFnKGNv
bnN0IGNoYXIgKnZhcm5hbWUsIGF1ZGl0X3Rva2VuX3QpOworCiBXVEZfRVhURVJOX0NfRU5ECiAK
ICNlbmRpZiAvLyBPUyhEQVJXSU4pCkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjkyOTc1KQorKysg
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MSBAQAor
MjAyMi0wNC0yMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgRHluYW1pY2FsbHkgc3dpdGNoIG1lc3NhZ2UgZmlsdGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg1NzcKKyAgICAgICAgPHJkYXI6Ly82OTI2
MzMyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgYSBzYW5kYm94IHN0YXRlIHZhcmlhYmxlIHRvIGR5bmFtaWNhbGx5IHN3aXRjaCB0aGUgYm9v
dHN0cmFwIGZpbHRlciBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzJyBzYW5kYm94LgorICAgICAg
ICBEdXJpbmcgbGF1bmNoIG9mIHRoZSBXZWJDb250ZW50IHByb2Nlc3MsIHdlIHVzZSBhIG1vcmUg
cGVybWlzc2l2ZSBib290c3RyYXAgZmlsdGVyIHRvIGFsbG93IGNyZWF0aW5nIE1hY2gKKyAgICAg
ICAgY29ubmVjdGlvbnMgaW4gdGhpcyB0aW1lIGZyYW1lLiBBZnRlciB0aGUgV2ViQ29udGVudCBw
cm9jZXNzIGhhcyBsYXVuY2hlZCwgd2Ugc3dpdGNoIHRvIGEgYmxvY2tpbmcgZmlsdGVyLAorICAg
ICAgICB3aGljaCB3aWxsIGVzc2VudGlhbGx5IGJsb2NrIGFjY2VzcyB0byBsYXVuY2hkLiBUaGUg
Ym9vdHN0cmFwIGZpbHRlciBpcyBiZWluZyBzd2l0Y2hlZCBiYWNrIHRvIHRoZSBtb3JlCisgICAg
ICAgIHBlcm1pc3NpdmUgdmVyc2lvbiB3aGVuIHdlIGNyZWF0ZSBuZXcgTWFjaCBzYW5kYm94IGV4
dGVuc2lvbnMgZm9yIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuIFRoaXMgaXMgZG9uZQorICAgICAg
ICBhdXRvbWF0aWNhbGx5IHdoZW4gY3JlYXRpbmcgYSBuZXcgTWFjaCBzYW5kYm94IGV4dGVuc2lv
bi4gVGhpcyByZXF1aXJlcyB0aGUgYXVkaXQgdG9rZW4gdG8gYmUgYXZhaWxhYmxlLAorICAgICAg
ICB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIHBhc3MgdGhlIGF1ZGl0IHRva2VuIHdoZW4gY3JlYXRp
bmcgdGhlIG5ldyBNYWNoIHNhbmRib3ggZXh0ZW5zaW9ucy4KKyAgICAgICAgVGhpcyBwYXRjaCBh
bHNvIHdhaXRzIHVudGlsIGFmdGVyIHRoZSBXZWIgcGFnZSBoYXMgYmVlbiBjcmVhdGVkIHRvIHNl
dCB0aGUgc2FuZGJveCB2YXJpYWJsZSB3aGljaCBpbmRpY2F0ZXMKKyAgICAgICAgdGhhdCB0aGUg
V2ViQ29udGVudCBwcm9jZXNzIGhhcyBsYXVuY2hlZC4gV2l0aG91dCB0aGlzIGxhc3QgY2hhbmdl
LCB0aGUgYm9vdHN0cmFwIGZpbHRlciB3b3VsZCBoYXZlIG5lZWRlZAorICAgICAgICBzd2l0Y2hp
bmcgd2hlbiBjcmVhdGluZyB0aGUgV2ViIHBhZ2UsIHNpbmNlIGNyZWF0aW5nIHRoZSBXZWJQYWdl
IHdpbGwgY29uc3VtZSBhbmQgcmV2b2tlIHNvbWUgbWFjaAorICAgICAgICBleHRlbnNpb25zLgor
CisgICAgICAgICogUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktp
dC5XZWJDb250ZW50LnNiLmluOgorICAgICAgICAqIFNjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVu
dHMuc2g6CisgICAgICAgICogU2hhcmVkL1NhbmRib3gvU2FuZGJveFN0YXRlVmFyaWFibGVzLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjphZGRQbGF0Zm9ybUxvYWRQYXJhbWV0ZXJz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpncmFudEFjY2Vzc1RvQXNzZXRTZXJ2
aWNlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3dpdGNoRnJvbVN0YXRpY0Zv
bnRSZWdpc3RyeVRvVXNlckZvbnRSZWdpc3RyeSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQcm94eTo6bWVzc2FnZVNvdXJjZUlzVmFsaWRXZWJDb250ZW50UHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZW5hYmxlTWFjaEJvb3RzdHJh
cCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmZpbmlzaEdyYW50aW5nUmVxdWVzdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUHJvY2Vzc01hbmFnZXI6OndpbGxDcmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cHJvY2Vzc05leHRRdWV1ZWRNb3VzZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbFdpdGhEaXNwbGF5U3RyaW5nQW5kSWNv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZW5zdXJlU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6Y3JlYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9j
ZXNzLnNiLmluOgorCiAyMDIyLTA0LTE4ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5Mjk1Ny4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvUmVzb3VyY2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvUmVzb3Vy
Y2VzL1NhbmRib3hQcm9maWxlcy9pb3MvY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnNiLmlu
CShyZXZpc2lvbiAyOTI5NzUpCisrKyBTb3VyY2UvV2ViS2l0L1Jlc291cmNlcy9TYW5kYm94UHJv
ZmlsZXMvaW9zL2NvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYi5pbgkod29ya2luZyBjb3B5
KQpAQCAtMTQ1MCwzOSArMTQ1MCwyOSBAQAogKQogCiAoZGVmaW5lLW9uY2UgKG1hY2gtYm9vdHN0
cmFwLW1lc3NhZ2UtbnVtYmVycykKLSAgICAobWVzc2FnZS1udW1iZXIKLSAgICAgICAgMjA2Ci0g
ICAgICAgIDIwNwotICAgICAgICA3MTEKLSAgICAgICAgNzEyCi0gICAgICAgIDcxOAotICAgICAg
ICA4MDAKLSAgICAgICAgODAyCi0gICAgICAgIDgwMwotICAgICAgICA4MDQKLSAgICAgICAgODA1
Ci0gICAgKQotKQorICAgIChtZXNzYWdlLW51bWJlciAyMDYgMjA3IDcxMSA3MTIgNzE4IDgwMCA4
MDIgODAzIDgwNCA4MDUpKQogCi0oaWYgKGRlZmluZWQ/ICcqc2JwbC12ZXJzaW9uKikKKyhkZWZp
bmUgKGFsbG93LW1hY2gtYm9vdHN0cmFwLXdpdGgtZmlsdGVyKQogICAgIChhbGxvdyBtYWNoLWJv
b3RzdHJhcAogICAgICAgICAoYXBwbHktbWVzc2FnZS1maWx0ZXIKICAgICAgICAgICAgIChkZW55
IG1hY2gtbWVzc2FnZS1zZW5kICh3aXRoIHRlbGVtZXRyeSkpCiAgICAgICAgICAgICAoYWxsb3cg
bWFjaC1tZXNzYWdlLXNlbmQKLSAgICAgICAgICAgICAgICAobWFjaC1ib290c3RyYXAtbWVzc2Fn
ZS1udW1iZXJzKQotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgKQorICAgICAgICAgICAg
ICAgIChtYWNoLWJvb3RzdHJhcC1tZXNzYWdlLW51bWJlcnMpKSkpKQorCisjaWYgSEFWRShTQU5E
Qk9YX1NUQVRFX0ZMQUdTKQorKGlmIChyZXF1aXJlLWFuY2VzdG9yLXdpdGgtZW50aXRsZW1lbnQg
ImNvbS5hcHBsZS5wcml2YXRlLnNlY3VyaXR5LmVuYWJsZS1zdGF0ZS1mbGFncyIpCisgICAgKGRl
bnkgbWFjaC1ib290c3RyYXApCiA7OyBlbHNlCi0gICAgKGFsbG93IG1hY2gtYm9vdHN0cmFwCi0g
ICAgICAgIChhcHBseS1tZXNzYWdlLWZpbHRlcgotICAgICAgICAgICAgKGRlbnkgeHBjLW1lc3Nh
Z2Utc2VuZCAod2l0aCB0ZWxlbWV0cnkpKQotICAgICAgICAgICAgKGFsbG93IHhwYy1tZXNzYWdl
LXNlbmQKLSAgICAgICAgICAgICAgICAobWFjaC1ib290c3RyYXAtbWVzc2FnZS1udW1iZXJzKQot
ICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgKQotKQorICAgIChhbGxvdy1tYWNoLWJvb3Rz
dHJhcC13aXRoLWZpbHRlcikpCisKKyh3aXRoLWZpbHRlcgorICAgIChyZXF1aXJlLWFueQorICAg
ICAgICAocmVxdWlyZS1ub3QgKHN0YXRlLWZsYWcgIldlYkNvbnRlbnRQcm9jZXNzTGF1bmNoZWQi
KSkKKyAgICAgICAgKHN0YXRlLWZsYWcgIkVuYWJsZU1hY2hCb290c3RyYXAiKSkKKyAgICAoYWxs
b3ctbWFjaC1ib290c3RyYXAtd2l0aC1maWx0ZXIpKQorI2Vsc2UKKyhhbGxvdy1tYWNoLWJvb3Rz
dHJhcC13aXRoLWZpbHRlcikKKyNlbmRpZgogCiAoZGVmaW5lIChzeXNjYWxsLW1hY2gtb25seS1p
bi11c2UtZHVyaW5nLWxhdW5jaCkKICAgICAobWFjaHRyYXAtbnVtYmVyCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2gKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TY3JpcHRzL3Byb2Nlc3MtZW50aXRsZW1lbnRzLnNoCShyZXZpc2lvbiAyOTI5
NzUpCisrKyBTb3VyY2UvV2ViS2l0L1NjcmlwdHMvcHJvY2Vzcy1lbnRpdGxlbWVudHMuc2gJKHdv
cmtpbmcgY29weSkKQEAgLTE3MSw2ICsxNzEsMTIgQEAgZnVuY3Rpb24gbWFjX3Byb2Nlc3Nfd2Vi
Y29udGVudF9zaGFyZWRfZQogICAgICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5z
ZWN1cml0eS5jcy5zaW5nbGUtaml0IGJvb2wgWUVTCiAgICAgICAgIGZpCiAKKyAgICAgICAgaWYg
KCggIiR7VEFSR0VUX01BQ19PU19YX1ZFUlNJT05fTUFKT1J9IiA+PSAxMzAwMDAgKSkKKyAgICAg
ICAgdGhlbgorICAgICAgICAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLnNl
Y3VyaXR5Lm11dGFibGUtc3RhdGUtZmxhZ3MgYXJyYXkKKyAgICAgICAgICAgIHBsaXN0YnVkZHkg
QWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zZWN1cml0eS5tdXRhYmxlLXN0YXRlLWZsYWdzOjAgc3Ry
aW5nIEVuYWJsZU1hY2hCb290c3RyYXAKKyAgICAgICAgZmkKKwogICAgICAgICBpZiBbWyAiJHtX
S19XRUJDT05URU5UX1NFUlZJQ0VfTkVFRFNfWFBDX0RPTUFJTl9FWFRFTlNJT05fRU5USVRMRU1F
TlR9IiA9PSBZRVMgXV0KICAgICAgICAgdGhlbgogICAgICAgICAgICAgcGxpc3RidWRkeSBBZGQg
OmNvbS5hcHBsZS5wcml2YXRlLnhwYy5kb21haW4tZXh0ZW5zaW9uIGJvb2wgWUVTCkBAIC0zMTgs
NiArMzI0LDggQEAgZnVuY3Rpb24gaW9zX2ZhbWlseV9wcm9jZXNzX3dlYmNvbnRlbnRfZQogICAg
IHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5wYWMuZXhjZXB0aW9uIGJvb2wgWUVT
CiAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLnZlcmlmaWVkLWppdCBib29s
IFlFUwogICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0ZS5zZWN1cml0eS5tZXNz
YWdlLWZpbHRlciBib29sIFlFUworICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0
ZS5zZWN1cml0eS5tdXRhYmxlLXN0YXRlLWZsYWdzIGFycmF5CisgICAgcGxpc3RidWRkeSBBZGQg
OmNvbS5hcHBsZS5wcml2YXRlLnNlY3VyaXR5Lm11dGFibGUtc3RhdGUtZmxhZ3M6MCBzdHJpbmcg
RW5hYmxlTWFjaEJvb3RzdHJhcAogICAgIHBsaXN0YnVkZHkgQWRkIDpjb20uYXBwbGUucHJpdmF0
ZS53ZWJpbnNwZWN0b3IuYWxsb3ctcmVtb3RlLWluc3BlY3Rpb24gYm9vbCBZRVMKICAgICBwbGlz
dGJ1ZGR5IEFkZCA6Y29tLmFwcGxlLnByaXZhdGUud2ViaW5zcGVjdG9yLnByb3h5LWFwcGxpY2F0
aW9uIGJvb2wgWUVTCiAgICAgcGxpc3RidWRkeSBBZGQgOmNvbS5hcHBsZS5wcml2YXRlLndlYmtp
dC51c2UteHBjLWVuZHBvaW50IGJvb2wgWUVTCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9T
YW5kYm94RXh0ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvU2Fu
ZGJveEV4dGVuc2lvbi5oCShyZXZpc2lvbiAyOTI5NzUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9TYW5kYm94RXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDExICs1NSwxNyBAQCBw
dWJsaWM6CiAgICAgfTsKIAogICAgIGVudW0gY2xhc3MgRmxhZ3MgOiB1aW50OF90IHsKLSAgICAg
ICAgRGVmYXVsdCwKLSAgICAgICAgTm9SZXBvcnQsCi0gICAgICAgIERvTm90Q2Fub25pY2FsaXpl
LAorICAgICAgICBEZWZhdWx0ID0gMCwKKyAgICAgICAgTm9SZXBvcnQgPSAxLAorICAgICAgICBE
b05vdENhbm9uaWNhbGl6ZSA9IDIsCisgICAgICAgIEFkZE1hY2hCb290c3RyYXBFeHRlbnRpb24g
PSA0CiAgICAgfTsKLSAgICAKKworICAgIGVudW0gY2xhc3MgTWFjaEJvb3RzdHJhcE9wdGlvbnMg
OiB1aW50OF90IHsKKyAgICAgICAgRG9Ob3RDcmVhdGVNYWNoQm9vdHN0cmFwRXh0ZW5zaW9uLAor
ICAgICAgICBDcmVhdGVNYWNoQm9vdHN0cmFwRXh0ZW5zaW9uCisgICAgfTsKKwogICAgIGNsYXNz
IEhhbmRsZSB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhhbmRsZSk7CiAgICAgcHVi
bGljOgpAQCAtOTAsMTAgKzk2LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjpvcHRpb25h
bDxIYW5kbGU+IGNyZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShTdHJpbmdWaWV3IHBh
dGgpOyAvLyBXaWxsIGF0dGVtcHQgdG8gY3JlYXRlIHRoZSBkaXJlY3RvcnkuCiAgICAgc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPEhhbmRsZSwgU3RyaW5nPj4gY3JlYXRlSGFuZGxlRm9y
VGVtcG9yYXJ5RmlsZShTdHJpbmdWaWV3IHByZWZpeCwgVHlwZSk7CiAgICAgc3RhdGljIHN0ZDo6
b3B0aW9uYWw8SGFuZGxlPiBjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9uKEFTQ0lJTGl0
ZXJhbCBleHRlbnNpb25DbGFzcyk7CisgICAgc3RhdGljIEhhbmRsZSBjcmVhdGVIYW5kbGVGb3JN
YWNoQm9vdHN0cmFwRXh0ZW5zaW9uKCk7CiAjaWYgSEFWRShBVURJVF9UT0tFTikKICAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxIYW5kbGU+IGNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoQVNDSUlM
aXRlcmFsIHNlcnZpY2UsIHN0ZDo6b3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4sIE9wdGlvblNldDxG
bGFncz4gPSBGbGFnczo6RGVmYXVsdCk7Ci0gICAgc3RhdGljIFZlY3RvcjxIYW5kbGU+IGNyZWF0
ZUhhbmRsZXNGb3JNYWNoTG9va3VwKFNwYW48Y29uc3QgQVNDSUlMaXRlcmFsPiBzZXJ2aWNlcywg
c3RkOjpvcHRpb25hbDxhdWRpdF90b2tlbl90PiwgT3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpE
ZWZhdWx0KTsKLSAgICBzdGF0aWMgVmVjdG9yPEhhbmRsZT4gY3JlYXRlSGFuZGxlc0Zvck1hY2hM
b29rdXAoc3RkOjppbml0aWFsaXplcl9saXN0PGNvbnN0IEFTQ0lJTGl0ZXJhbD4gc2VydmljZXMs
IHN0ZDo6b3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4sIE9wdGlvblNldDxGbGFncz4gPSBGbGFnczo6
RGVmYXVsdCk7CisgICAgc3RhdGljIFZlY3RvcjxIYW5kbGU+IGNyZWF0ZUhhbmRsZXNGb3JNYWNo
TG9va3VwKFNwYW48Y29uc3QgQVNDSUlMaXRlcmFsPiBzZXJ2aWNlcywgc3RkOjpvcHRpb25hbDxh
dWRpdF90b2tlbl90PiwgTWFjaEJvb3RzdHJhcE9wdGlvbnMsIE9wdGlvblNldDxGbGFncz4gPSBG
bGFnczo6RGVmYXVsdCk7CisgICAgc3RhdGljIFZlY3RvcjxIYW5kbGU+IGNyZWF0ZUhhbmRsZXNG
b3JNYWNoTG9va3VwKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjb25zdCBBU0NJSUxpdGVyYWw+IHNl
cnZpY2VzLCBzdGQ6Om9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+LCBNYWNoQm9vdHN0cmFwT3B0aW9u
cywgT3B0aW9uU2V0PEZsYWdzPiA9IEZsYWdzOjpEZWZhdWx0KTsKICAgICBzdGF0aWMgc3RkOjpv
cHRpb25hbDxIYW5kbGU+IGNyZWF0ZUhhbmRsZUZvclJlYWRCeUF1ZGl0VG9rZW4oU3RyaW5nVmll
dyBwYXRoLCBhdWRpdF90b2tlbl90KTsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxIYW5kbGU+
IGNyZWF0ZUhhbmRsZUZvcklPS2l0Q2xhc3NFeHRlbnNpb24oQVNDSUlMaXRlcmFsIGlva2l0Q2xh
c3MsIHN0ZDo6b3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4sIE9wdGlvblNldDxGbGFncz4gPSBGbGFn
czo6RGVmYXVsdCk7CiAgICAgc3RhdGljIFZlY3RvcjxIYW5kbGU+IGNyZWF0ZUhhbmRsZXNGb3JJ
T0tpdENsYXNzRXh0ZW5zaW9ucyhTcGFuPGNvbnN0IEFTQ0lJTGl0ZXJhbD4gaW9raXRDbGFzc2Vz
LCBzdGQ6Om9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+LCBPcHRpb25TZXQ8RmxhZ3M+ID0gRmxhZ3M6
OkRlZmF1bHQpOwpAQCAtMTA5LDYgKzExNiwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wg
Y29uc3VtZVBlcm1hbmVudGx5KGNvbnN0IEhhbmRsZSYpOwogICAgIHN0YXRpYyBib29sIGNvbnN1
bWVQZXJtYW5lbnRseShjb25zdCBWZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiYpOwog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgc3RhdGljIHZvaWQgc2V0RGlkRmluaXNoTGF1bmNo
aW5nKCkgeyBzX2RpZEZpbmlzaExhdW5jaGluZyA9IHRydWU7IH0KKyNlbmRpZgorCiBwcml2YXRl
OgogICAgIGV4cGxpY2l0IFNhbmRib3hFeHRlbnNpb24oY29uc3QgSGFuZGxlJik7CiAgICAgICAg
ICAgICAgICAgICAgICAKQEAgLTExNiw2ICsxMjcsOSBAQCBwcml2YXRlOgogICAgIG11dGFibGUg
c3RkOjp1bmlxdWVfcHRyPFNhbmRib3hFeHRlbnNpb25JbXBsPiBtX3NhbmRib3hFeHRlbnNpb247
CiAgICAgc2l6ZV90IG1fdXNlQ291bnQgeyAwIH07CiAjZW5kaWYKKyNpZiBQTEFURk9STShDT0NP
QSkKKyAgICBzdGF0aWMgYm9vbCBzX2RpZEZpbmlzaExhdW5jaGluZzsKKyNlbmRpZgogfTsKIAog
U3RyaW5nIHN0cmluZ0J5UmVzb2x2aW5nU3ltbGlua3NJblBhdGgoU3RyaW5nVmlldyBwYXRoKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCShyZXZpc2lvbiAyOTI5NzUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3
IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKEkKICAgICBlbmNvZGVy
IDw8IGdwdU1hY2hFeHRlbnNpb25IYW5kbGVzOwogI2VuZGlmCiAjaWYgSEFWRShTVEFUSUNfRk9O
VF9SRUdJU1RSWSkKLSAgICBlbmNvZGVyIDw8IGZvbnRNYWNoRXh0ZW5zaW9uSGFuZGxlOworICAg
IGVuY29kZXIgPDwgZm9udE1hY2hFeHRlbnNpb25IYW5kbGVzOwogI2VuZGlmCiAjaWYgSEFWRShB
UFBfQUNDRU5UX0NPTE9SUykKICAgICBlbmNvZGVyIDw8IGFjY2VudENvbG9yOwpAQCAtNDA1LDEx
ICs0MDUsMTEgQEAgc3RkOjpvcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPgogI2Vu
ZGlmCiAKICNpZiBIQVZFKFNUQVRJQ19GT05UX1JFR0lTVFJZKQotICAgIHN0ZDo6b3B0aW9uYWw8
c3RkOjpvcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+PiBmb250TWFjaEV4dGVuc2lv
bkhhbmRsZTsKLSAgICBkZWNvZGVyID4+IGZvbnRNYWNoRXh0ZW5zaW9uSGFuZGxlOwotICAgIGlm
ICghZm9udE1hY2hFeHRlbnNpb25IYW5kbGUpCisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlPj4gZm9udE1hY2hFeHRlbnNpb25IYW5kbGVzOworICAgIGRl
Y29kZXIgPj4gZm9udE1hY2hFeHRlbnNpb25IYW5kbGVzOworICAgIGlmICghZm9udE1hY2hFeHRl
bnNpb25IYW5kbGVzKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHBhcmFtZXRl
cnMuZm9udE1hY2hFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpmb250TWFjaEV4dGVuc2lvbkhh
bmRsZSk7CisgICAgcGFyYW1ldGVycy5mb250TWFjaEV4dGVuc2lvbkhhbmRsZXMgPSBXVEZNb3Zl
KCpmb250TWFjaEV4dGVuc2lvbkhhbmRsZXMpOwogI2VuZGlmCiAKICNpZiBIQVZFKEFQUF9BQ0NF
TlRfQ09MT1JTKQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjkyOTc1KQorKysgU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzksNyAr
MTc5LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFZlY3RvcjxT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IGdwdU1hY2hFeHRlbnNpb25IYW5kbGVzOwogI2VuZGlm
CiAjaWYgSEFWRShTVEFUSUNfRk9OVF9SRUdJU1RSWSkKLSAgICBzdGQ6Om9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gZm9udE1hY2hFeHRlbnNpb25IYW5kbGU7CisgICAgVmVjdG9y
PFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gZm9udE1hY2hFeHRlbnNpb25IYW5kbGVzOwogI2Vu
ZGlmCiAjaWYgSEFWRShBUFBfQUNDRU5UX0NPTE9SUykKICAgICBXZWJDb3JlOjpDb2xvciBhY2Nl
bnRDb2xvcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNp
b25Db2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9TYW5k
Ym94RXh0ZW5zaW9uQ29jb2EubW0JKHJldmlzaW9uIDI5Mjk3NSkKKysrIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL0NvY29hL1NhbmRib3hFeHRlbnNpb25Db2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsMTAgQEAKICNpbXBvcnQgPHd0Zi9zcGkvZGFyd2luL1NhbmRib3hTUEkuaD4KICNp
bXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAorI2lmIEhBVkUoU0FOREJPWF9TVEFURV9GTEFH
UykKKyNpbmNsdWRlICJTYW5kYm94U3RhdGVWYXJpYWJsZXMuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgU2FuZGJveEV4dGVuc2lvbkltcGwgewpAQCAtMzE2LDYgKzMy
MCwxNCBAQCBhdXRvIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvckdlCiAgICAgcmV0
dXJuIFdURk1vdmUoaGFuZGxlKTsKIH0KIAorYXV0byBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JNYWNoQm9vdHN0cmFwRXh0ZW5zaW9uKCkgLT4gSGFuZGxlCit7CisgICAgYXV0byBo
YW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JHZW5lcmljRXh0ZW5zaW9u
KCJjb20uYXBwbGUud2Via2l0Lm1hY2gtYm9vdHN0cmFwIl9zKTsKKyAgICBpZiAoaGFuZGxlKQor
ICAgICAgICByZXR1cm4gV1RGTW92ZSgqaGFuZGxlKTsKKyAgICByZXR1cm4gSGFuZGxlKCk7Cit9
CisKIGF1dG8gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cChBU0NJ
SUxpdGVyYWwgc2VydmljZSwgc3RkOjpvcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2Vu
LCBPcHRpb25TZXQ8RmxhZ3M+IGZsYWdzKSAtPiBzdGQ6Om9wdGlvbmFsPEhhbmRsZT4KIHsKICAg
ICBIYW5kbGUgaGFuZGxlOwpAQCAtMzI3LDIxICszMzksMzQgQEAgYXV0byBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVGb3JNYQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IH0KICAgICAKKyNpZiAwICYmIEhBVkUoU0FOREJPWF9TVEFURV9GTEFHUykKKyAgICAvLyBXaGVu
IGxhdW5jaGQgaXMgYmxvY2tlZCBpbiB0aGUgc2FuZGJveCwgd2UgbmVlZCB0byBtYW51YWxseSBl
bmFibGUgYm9vdHN0cmFwcGluZyBvZiBuZXcgWFBDIGNvbm5lY3RvbnMuCisgICAgLy8gVGhpcyBp
cyBkb25lIGJ5IHVuYmxvY2tpbmcgbGF1bmNoZCwgc2luY2UgbGF1bmNoZCBhY2Nlc3MgaXMgcmVx
dWlyZWQgd2hlbiBjcmVhdGluZyBNYWNoIGNvbm5lY3Rpb25zLgorICAgIC8vIFVuYmxvY2tpbmcg
bGF1bmNoZCBpcyBkb25lIGJ5IGVuYWJsaW5nIGEgc2FuZGJveCBzdGF0ZSB2YXJpYWJsZS4KKyAg
ICBpZiAoc2FuZGJveEV4dGVuc2lvblRpbWluZyA9PSBBZnRlckxhdW5jaCkKKyAgICAgICAgc2Fu
ZGJveF9lbmFibGVfc3RhdGVfZmxhZyhFTkFCTEVfTUFDSF9CT09UU1RSQVAsICphdWRpdFRva2Vu
KTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIFdURk1vdmUoaGFuZGxlKTsKIH0KIAotYXV0byBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVzRm9yTWFjaExvb2t1cChTcGFuPGNvbnN0IEFTQ0lJ
TGl0ZXJhbD4gc2VydmljZXMsIHN0ZDo6b3B0aW9uYWw8YXVkaXRfdG9rZW5fdD4gYXVkaXRUb2tl
biwgT3B0aW9uU2V0PEZsYWdzPiBmbGFncykgLT4gVmVjdG9yPEhhbmRsZT4KK2F1dG8gU2FuZGJv
eEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoU3Bhbjxjb25zdCBBU0NJSUxp
dGVyYWw+IHNlcnZpY2VzLCBzdGQ6Om9wdGlvbmFsPGF1ZGl0X3Rva2VuX3Q+IGF1ZGl0VG9rZW4s
IE1hY2hCb290c3RyYXBPcHRpb25zIG1hY2hCb290c3RyYXBPcHRpb25zLCBPcHRpb25TZXQ8Rmxh
Z3M+IGZsYWdzKSAtPiBWZWN0b3I8SGFuZGxlPgogewotICAgIHJldHVybiBjcmVhdGVIYW5kbGVz
Rm9yUmVzb3VyY2VzKHNlcnZpY2VzLCBbYXVkaXRUb2tlbiwgZmxhZ3NdIChBU0NJSUxpdGVyYWwg
c2VydmljZSkgLT4gc3RkOjpvcHRpb25hbDxIYW5kbGU+IHsKKyAgICBhdXRvIGhhbmRsZXMgPSBj
cmVhdGVIYW5kbGVzRm9yUmVzb3VyY2VzKHNlcnZpY2VzLCBbYXVkaXRUb2tlbiwgZmxhZ3NdIChB
U0NJSUxpdGVyYWwgc2VydmljZSkgLT4gc3RkOjpvcHRpb25hbDxIYW5kbGU+IHsKICAgICAgICAg
YXV0byBoYW5kbGUgPSBjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKHNlcnZpY2UsIGF1ZGl0VG9r
ZW4sIGZsYWdzKTsKICAgICAgICAgQVNTRVJUKGhhbmRsZSk7CiAgICAgICAgIHJldHVybiBoYW5k
bGU7CiAgICAgfSk7CisKKyAgICBpZiAobWFjaEJvb3RzdHJhcE9wdGlvbnMgPT0gTWFjaEJvb3Rz
dHJhcE9wdGlvbnM6OkNyZWF0ZU1hY2hCb290c3RyYXBFeHRlbnNpb24pCisgICAgICAgIGhhbmRs
ZXMuaW5zZXJ0KDAsIGNyZWF0ZUhhbmRsZUZvck1hY2hCb290c3RyYXBFeHRlbnNpb24oKSk7CisK
KyAgICByZXR1cm4gaGFuZGxlczsKIH0KIAotYXV0byBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVzRm9yTWFjaExvb2t1cChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgQVNDSUlMaXRl
cmFsPiBzZXJ2aWNlcywgc3RkOjpvcHRpb25hbDxhdWRpdF90b2tlbl90PiBhdWRpdFRva2VuLCBP
cHRpb25TZXQ8RmxhZ3M+IGZsYWdzKSAtPiBWZWN0b3I8SGFuZGxlPgorYXV0byBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVzRm9yTWFjaExvb2t1cChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8
Y29uc3QgQVNDSUlMaXRlcmFsPiBzZXJ2aWNlcywgc3RkOjpvcHRpb25hbDxhdWRpdF90b2tlbl90
PiBhdWRpdFRva2VuLCBNYWNoQm9vdHN0cmFwT3B0aW9ucyBtYWNoQm9vdHN0cmFwT3B0aW9ucywg
T3B0aW9uU2V0PEZsYWdzPiBmbGFncykgLT4gVmVjdG9yPEhhbmRsZT4KIHsKLSAgICByZXR1cm4g
Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoU3BhbiB7IHNlcnZpY2VzLmJlZ2luKCksIHNlcnZp
Y2VzLnNpemUoKSB9LCBhdWRpdFRva2VuLCBmbGFncyk7CisgICAgcmV0dXJuIGNyZWF0ZUhhbmRs
ZXNGb3JNYWNoTG9va3VwKFNwYW4geyBzZXJ2aWNlcy5iZWdpbigpLCBzZXJ2aWNlcy5zaXplKCkg
fSwgYXVkaXRUb2tlbiwgbWFjaEJvb3RzdHJhcE9wdGlvbnMsIGZsYWdzKTsKIH0KIAogYXV0byBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkQnlBdWRpdFRva2VuKFN0cmluZ1Zp
ZXcgcGF0aCwgYXVkaXRfdG9rZW5fdCBhdWRpdFRva2VuKSAtPiBzdGQ6Om9wdGlvbmFsPEhhbmRs
ZT4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1NhbmRib3gvU2FuZGJveFN0YXRlVmFyaWFi
bGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvU2FuZGJveC9TYW5kYm94
U3RhdGVWYXJpYWJsZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9T
YW5kYm94L1NhbmRib3hTdGF0ZVZhcmlhYmxlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2RlZmluZSBFTkFCTEVfTUFDSF9C
T09UU1RSQVAgIkVuYWJsZU1hY2hCb290c3RyYXAiCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCShyZXZpc2lvbiAyOTI5
NzUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExNCwxMyArMTE0LDE0IEBAIGJvb2wgVXNlck1lZGlhUHJv
Y2Vzc01hbmFnZXI6OndpbGxDcmVhdGUKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAKKyAgICAgICAgICAgIGF1dG8gYXVkaXRUb2tlbiA9IHByb2Nlc3MuY29ubmVjdGlvbigpLT5n
ZXRBdWRpdFRva2VuKCk7CiAgICAgICAgICAgICBpZiAobmVlZHNBcHBsZUNhbWVyYVNhbmRib3hF
eHRlbnNpb24pIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKGFwcGxlQ2FtZXJhU2VydmljZVBhdGgs
IHN0ZDo6bnVsbG9wdCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKGFwcGxlQ2FtZXJhU2Vydmlj
ZVBhdGgsIGF1ZGl0VG9rZW4pKSB7CiAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXNbLS1leHRl
bnNpb25Db3VudF0gPSBXVEZNb3ZlKCpoYW5kbGUpOwogICAgICAgICAgICAgICAgICAgICBpZHMu
dW5jaGVja2VkQXBwZW5kKGFwcGxlQ2FtZXJhU2VydmljZVBhdGgpOwogICAgICAgICAgICAgICAg
IH0KICNpZiBIQVZFKEFERElUSU9OQUxfQVBQTEVfQ0FNRVJBX1NFUlZJQ0UpCi0gICAgICAgICAg
ICAgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
TWFjaExvb2t1cChhZGRpdGlvbmFsQXBwbGVDYW1lcmFTZXJ2aWNlUGF0aCwgc3RkOjpudWxsb3B0
KSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIGhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoYWRkaXRpb25hbEFwcGxlQ2FtZXJhU2VydmljZVBh
dGgsIGF1ZGl0VG9rZW4pKSB7CiAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXNbLS1leHRlbnNp
b25Db3VudF0gPSBXVEZNb3ZlKCpoYW5kbGUpOwogICAgICAgICAgICAgICAgICAgICBpZHMudW5j
aGVja2VkQXBwZW5kKGFkZGl0aW9uYWxBcHBsZUNhbWVyYVNlcnZpY2VQYXRoKTsKICAgICAgICAg
ICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJ
KHJldmlzaW9uIDI5Mjk3NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4ODUsOSArMjg4NSw5IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpwcm9jZXNzTmV4dFF1ZXVlZE1vdXMKICNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBl
dmVudE1heVN0YXJ0RHJhZyA9ICFtX2N1cnJlbnREcmFnT3BlcmF0aW9uICYmIGV2ZW50VHlwZSA9
PSBXZWJFdmVudDo6TW91c2VNb3ZlICYmIGV2ZW50LmJ1dHRvbigpICE9IFdlYk1vdXNlRXZlbnQ6
OkJ1dHRvbjo6Tm9CdXR0b247CiAgICAgaWYgKGV2ZW50TWF5U3RhcnREcmFnKQotICAgICAgICBz
YW5kYm94RXh0ZW5zaW9ucyA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JNYWNo
TG9va3VwKHsgImNvbS5hcHBsZS5pY29uc2VydmljZXMiX3MsICJjb20uYXBwbGUuaWNvbnNlcnZp
Y2VzLnN0b3JlIl9zIH0sIHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIHNhbmRib3hFeHRlbnNpb25z
ID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoeyAiY29tLmFw
cGxlLmljb25zZXJ2aWNlcyJfcywgImNvbS5hcHBsZS5pY29uc2VydmljZXMuc3RvcmUiX3MgfSwg
bV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPmdldEF1ZGl0VG9rZW4oKSwgU2FuZGJveEV4dGVuc2lv
bjo6TWFjaEJvb3RzdHJhcE9wdGlvbnM6OkNyZWF0ZU1hY2hCb290c3RyYXBFeHRlbnNpb24pOwog
I2VuZGlmCi0gICAgCisKICAgICBMT0coTW91c2VIYW5kbGluZywgIlVJUHJvY2Vzczogc2VudCBt
b3VzZSBldmVudCAlcyAocXVldWUgc2l6ZSAlenUpIiwgd2ViTW91c2VFdmVudFR5cGVTdHJpbmco
ZXZlbnRUeXBlKSwgbV9tb3VzZUV2ZW50UXVldWUuc2l6ZSgpKTsKICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpNb3VzZUV2ZW50KGV2ZW50LCBzYW5kYm94RXh0ZW5zaW9ucykpOwogfQpAQCAt
NzI1NiwxMSArNzI1NiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hvb3NlRmlsZXNGb3JP
cGVuCiAjZW5kaWYKIAogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBmcm9udGJvYXJkU2Vy
dmljZXNTYW5kYm94RXh0ZW5zaW9uLCBpY29uU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uOworICAg
IGF1dG8gYXVkaXRUb2tlbiA9IG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2Vu
KCk7CiAjaWYgSEFWRShGUk9OVEJPQVJEX1NZU1RFTV9BUFBfU0VSVklDRVMpCi0gICAgaWYgKGF1
dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgi
Y29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiX3MsIHN0ZDo6bnVsbG9wdCkp
CisgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
TWFjaExvb2t1cCgiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiX3MsIGF1
ZGl0VG9rZW4pKQogICAgICAgICBmcm9udGJvYXJkU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uID0g
V1RGTW92ZSgqaGFuZGxlKTsKICNlbmRpZgotICAgIGlmIChhdXRvIGhhbmRsZSA9IFNhbmRib3hF
eHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5pY29uc2Vydmlj
ZXMiX3MsIHN0ZDo6bnVsbG9wdCkpCisgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmljb25zZXJ2aWNlcyJf
cywgYXVkaXRUb2tlbikpCiAgICAgICAgIGljb25TZXJ2aWNlc1NhbmRib3hFeHRlbnNpb24gPSBX
VEZNb3ZlKCpoYW5kbGUpOwogCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2hvb3Nl
RmlsZXNGb3JPcGVuUGFuZWxXaXRoRGlzcGxheVN0cmluZ0FuZEljb24oZmlsZVVSTHMsIGRpc3Bs
YXlTdHJpbmcsIGljb25EYXRhID8gaWNvbkRhdGEtPmRhdGFSZWZlcmVuY2UoKSA6IElQQzo6RGF0
YVJlZmVyZW5jZSgpLCBmcm9udGJvYXJkU2VydmljZXNTYW5kYm94RXh0ZW5zaW9uLCBpY29uU2Vy
dmljZXNTYW5kYm94RXh0ZW5zaW9uKSk7CkBAIC04Mzg0LDEyICs4Mzg1LDEyIEBAIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjoKICAgICAgICAgfHwgIXByZWZlcmVuY2Vz
KCkudXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZ0VuYWJsZWQoKQogICAgICAgICB8fCAh
cHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yV2ViR0xFbmFibGVkKCkpIHsKICAgICAgICAg
cGFyYW1ldGVycy5ncHVJT0tpdEV4dGVuc2lvbkhhbmRsZXMgPSBTYW5kYm94RXh0ZW5zaW9uOjpj
cmVhdGVIYW5kbGVzRm9ySU9LaXRDbGFzc0V4dGVuc2lvbnMoZ3B1SU9LaXRDbGFzc2VzKCksIHN0
ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHBhcmFtZXRlcnMuZ3B1TWFjaEV4dGVuc2lvbkhhbmRsZXMg
PSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVzRm9yTWFjaExvb2t1cChncHVNYWNoU2Vy
dmljZXMoKSwgc3RkOjpudWxsb3B0KTsKKyAgICAgICAgcGFyYW1ldGVycy5ncHVNYWNoRXh0ZW5z
aW9uSGFuZGxlcyA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3Vw
KGdwdU1hY2hTZXJ2aWNlcygpLCBzdGQ6Om51bGxvcHQsIFNhbmRib3hFeHRlbnNpb246Ok1hY2hC
b290c3RyYXBPcHRpb25zOjpDcmVhdGVNYWNoQm9vdHN0cmFwRXh0ZW5zaW9uKTsKICAgICB9CiAj
ZW5kaWYKICNpZiBIQVZFKFNUQVRJQ19GT05UX1JFR0lTVFJZKQogICAgIGlmIChwcmVmZXJlbmNl
cygpLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpCi0gICAgICAgIHBhcmFtZXRlcnMu
Zm9udE1hY2hFeHRlbnNpb25IYW5kbGUgPSBmb250ZE1hY2hFeHRlbnNpb25IYW5kbGUoKTsKKyAg
ICAgICAgcGFyYW1ldGVycy5mb250TWFjaEV4dGVuc2lvbkhhbmRsZXMgPSBmb250ZE1hY2hFeHRl
bnNpb25IYW5kbGVzKCk7CiAjZW5kaWYKICNpZiBIQVZFKEFQUF9BQ0NFTlRfQ09MT1JTKQogICAg
IHBhcmFtZXRlcnMuYWNjZW50Q29sb3IgPSBwYWdlQ2xpZW50KCkuYWNjZW50Q29sb3IoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyOTI5NzUp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5
KQpAQCAtMjY0Myw3ICsyNjQzLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgVmVjdG9yPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gY3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5z
aW9ucyhXZWJQcm9jZXNzUHJveHkmKTsKICNlbmRpZgogCi0gICAgc3RhdGljIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBmb250ZE1hY2hFeHRlbnNpb25IYW5kbGUoKTsKKyAgICBWZWN0b3I8U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBmb250ZE1hY2hFeHRlbnNpb25IYW5kbGVzKCk7CiAKICAg
ICB2b2lkIGRpZFVwZGF0ZUVkaXRvclN0YXRlKGNvbnN0IEVkaXRvclN0YXRlJiBvbGRFZGl0b3JT
dGF0ZSwgY29uc3QgRWRpdG9yU3RhdGUmIG5ld0VkaXRvclN0YXRlKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0JKHJl
dmlzaW9uIDI5Mjk3NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQ
cm94eUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsMTEgKzIwMSwxMiBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1lCiAjaWYgIUVOQUJMRShDT05URU5UX0ZJ
TFRFUklOR19JTl9ORVRXT1JLSU5HX1BST0NFU1MpCiAgICAgbG9hZFBhcmFtZXRlcnMubmV0d29y
a0V4dGVuc2lvblNhbmRib3hFeHRlbnNpb25IYW5kbGVzID0gY3JlYXRlTmV0d29ya0V4dGVuc2lv
bnNTYW5kYm94RXh0ZW5zaW9ucyhwcm9jZXNzKTsKICNpZiBQTEFURk9STShJT1MpCisgICAgYXV0
byBhdWRpdFRva2VuID0gcHJvY2Vzcy5oYXNDb25uZWN0aW9uKCkgPyBwcm9jZXNzLmNvbm5lY3Rp
b24oKS0+Z2V0QXVkaXRUb2tlbigpIDogc3RkOjpudWxsb3B0OwogICAgIGlmICghcHJvY2Vzcy5o
YXNNYW5hZ2VkU2Vzc2lvblNhbmRib3hBY2Nlc3MoKSAmJiBbZ2V0V2ViRmlsdGVyRXZhbHVhdG9y
Q2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkgewotICAgICAgICBpZiAoYXV0byBoYW5kbGUgPSBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudWlr
aXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiX3MsIHN0
ZDo6bnVsbG9wdCkpCisgICAgICAgIGlmIChhdXRvIGhhbmRsZSA9IFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5j
b20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSJfcywgYXVkaXRUb2tlbiwgU2FuZGJv
eEV4dGVuc2lvbjo6U2FuZGJveEV4dGVuc2lvblRpbWluZzo6QWZ0ZXJMYXVuY2gpKQogICAgICAg
ICAgICAgbG9hZFBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKmhhbmRsZSk7CiAKLSAgICAgICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmZyb250Ym9hcmQuc3lzdGVt
YXBwc2VydmljZXMiX3MsIHN0ZDo6bnVsbG9wdCkpCisgICAgICAgIGlmIChhdXRvIGhhbmRsZSA9
IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS5m
cm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zLCBhdWRpdFRva2VuLCBTYW5kYm94RXh0ZW5z
aW9uOjpTYW5kYm94RXh0ZW5zaW9uVGltaW5nOjpBZnRlckxhdW5jaCkpCiAgICAgICAgICAgICBs
b2FkUGFyYW1ldGVycy5mcm9udGJvYXJkU2VydmljZUV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUo
KmhhbmRsZSk7CiAKICAgICAgICAgcHJvY2Vzcy5tYXJrSGFzTWFuYWdlZFNlc3Npb25TYW5kYm94
QWNjZXNzKCk7CkBAIC03OTMsNyArNzk0LDggQEAgVmVjdG9yPFNhbmRib3hFeHRlbnNpb246Okhh
bmRsZT4gV2ViUGFnZQogICAgICAgICBwcm9jZXNzLm1hcmtIYXNOZXR3b3JrRXh0ZW5zaW9uU2Fu
ZGJveEFjY2VzcygpOwogICAgICAgICBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIG5lSGVscGVyU2Vy
dmljZSB7ICJjb20uYXBwbGUubmVoZWxwZXIiX3MgfTsKICAgICAgICAgY29uc3RleHByIEFTQ0lJ
TGl0ZXJhbCBuZVNlc3Npb25NYW5hZ2VyU2VydmljZSB7ICJjb20uYXBwbGUubmVzZXNzaW9ubWFu
YWdlci5jb250ZW50LWZpbHRlciJfcyB9OwotICAgICAgICByZXR1cm4gU2FuZGJveEV4dGVuc2lv
bjo6Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoeyBuZUhlbHBlclNlcnZpY2UsIG5lU2Vzc2lv
bk1hbmFnZXJTZXJ2aWNlIH0sIHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIGF1dG8gYXVkaXRUb2tl
biA9IHByb2Nlc3MuaGFzQ29ubmVjdGlvbigpID8gcHJvY2Vzcy5jb25uZWN0aW9uKCktPmdldEF1
ZGl0VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZXNGb3JNYWNoTG9va3VwKHsgbmVIZWxwZXJTZXJ2aWNlLCBuZVNlc3Npb25NYW5hZ2VyU2Vydmlj
ZSB9LCBhdWRpdFRva2VuLCApOwogICAgIH0KICNlbmRpZgogICAgIHJldHVybiB7IH07CkBAIC04
NDAsMTAgKzg0Miw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpsYXN0TmF2aWdhdGlvbldhc0FwcEkK
IAogdm9pZCBXZWJQYWdlUHJveHk6OmdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKCkKIHsKLSAg
ICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgbW9iaWxlQXNzZXRIYW5kbGVWMjsKLSAgICBpZiAo
YXV0byBoYW5kbGUgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3Vw
KCJjb20uYXBwbGUubW9iaWxlYXNzZXRkLnYyIl9zLCBzdGQ6Om51bGxvcHQpKQotICAgICAgICBt
b2JpbGVBc3NldEhhbmRsZVYyID0gV1RGTW92ZSgqaGFuZGxlKTsKLSAgICBwcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMobW9iaWxl
QXNzZXRIYW5kbGVWMiksIDApOworICAgIGF1dG8gYXNzZXRTZXJ2aWNlc0hhbmRsZXMgPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVzRm9yTWFjaExvb2t1cCh7ICJjb20uYXBwbGUubW9i
aWxlYXNzZXRkLnYyIl9zIH0sIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5nZXRBdWRpdFRva2Vu
KCksIFNhbmRib3hFeHRlbnNpb246Ok1hY2hCb290c3RyYXBPcHRpb25zOjpDcmVhdGVNYWNoQm9v
dHN0cmFwRXh0ZW5zaW9uKTsKKyAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vz
czo6R3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMoYXNzZXRTZXJ2aWNlc0hhbmRsZXMpLCAwKTsK
IH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnJldm9rZUFjY2Vzc1RvQXNzZXRTZXJ2aWNlcygpCkBA
IC04NTMsMTUgKzg1MywxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmV2b2tlQWNjZXNzVG9Bc3Nl
dFNlCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpzd2l0Y2hGcm9tU3RhdGljRm9udFJlZ2lzdHJ5VG9V
c2VyRm9udFJlZ2lzdHJ5KCkKIHsKLSAgICBwcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6U3dpdGNoRnJvbVN0YXRpY0ZvbnRSZWdpc3RyeVRvVXNlckZvbnRSZWdpc3RyeShmb250
ZE1hY2hFeHRlbnNpb25IYW5kbGUoKSksIDApOworICAgIHByb2Nlc3MoKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpTd2l0Y2hGcm9tU3RhdGljRm9udFJlZ2lzdHJ5VG9Vc2VyRm9udFJlZ2lz
dHJ5KGZvbnRkTWFjaEV4dGVuc2lvbkhhbmRsZXMoKSksIDApOwogfQogCi1TYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGUgV2ViUGFnZVByb3h5Ojpmb250ZE1hY2hFeHRlbnNpb25IYW5kbGUoKQorVmVj
dG9yPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gV2ViUGFnZVByb3h5Ojpmb250ZE1hY2hFeHRl
bnNpb25IYW5kbGVzKCkKIHsKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgZm9udE1hY2hF
eHRlbnNpb25IYW5kbGU7Ci0gICAgaWYgKGF1dG8gaGFuZGxlID0gU2FuZGJveEV4dGVuc2lvbjo6
Y3JlYXRlSGFuZGxlRm9yTWFjaExvb2t1cCgiY29tLmFwcGxlLmZvbnRzIl9zLCBzdGQ6Om51bGxv
cHQpKQotICAgICAgICBmb250TWFjaEV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoKmhhbmRsZSk7
Ci0gICAgcmV0dXJuIGZvbnRNYWNoRXh0ZW5zaW9uSGFuZGxlOworICAgIGF1dG8gYXVkaXRUb2tl
biA9IG1fcHJvY2Vzcy0+aGFzQ29ubmVjdGlvbigpID8gbV9wcm9jZXNzLT5jb25uZWN0aW9uKCkt
PmdldEF1ZGl0VG9rZW4oKSA6IHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAoeyAiY29tLmFwcGxlLmZvbnRzIl9zIH0s
IGF1ZGl0VG9rZW4sIFNhbmRib3hFeHRlbnNpb246Ok1hY2hCb290c3RyYXBPcHRpb25zOjpDcmVh
dGVNYWNoQm9vdHN0cmFwRXh0ZW5zaW9uKTsKIH0KIAogTlNEaWN0aW9uYXJ5ICpXZWJQYWdlUHJv
eHk6OmNvbnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbShOU1N0cmluZyAqdXNlckludGVyZmFjZUl0
ZW0pCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENv
Y29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI5Mjk3NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTM5
MCwxMiArMzkwLDEyIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcK
ICAgICAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKFdlYkNvcmU6OmRldmljZUhhc0FHWENv
bXBpbGVyU2VydmljZSgpKQotICAgICAgICBwYXJhbWV0ZXJzLmNvbXBpbGVyU2VydmljZUV4dGVu
c2lvbkhhbmRsZXMgPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVzRm9yTWFjaExvb2t1
cChXZWJDb3JlOjphZ3hDb21waWxlclNlcnZpY2VzKCksIHN0ZDo6bnVsbG9wdCk7CisgICAgICAg
IHBhcmFtZXRlcnMuY29tcGlsZXJTZXJ2aWNlRXh0ZW5zaW9uSGFuZGxlcyA9IFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZXNGb3JNYWNoTG9va3VwV2l0aEJvb3RzdHJhcEV4dGVuc2lvbihX
ZWJDb3JlOjphZ3hDb21waWxlclNlcnZpY2VzKCksIHN0ZDo6bnVsbG9wdCk7CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKCFpc0Z1bGxXZWJCcm93c2VyKCkpCi0g
ICAgICAgIHBhcmFtZXRlcnMuZHluYW1pY01hY2hFeHRlbnNpb25IYW5kbGVzID0gU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAobm9uQnJvd3NlclNlcnZpY2VzKCks
IHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIHBhcmFtZXRlcnMuZHluYW1pY01hY2hFeHRlbnNpb25I
YW5kbGVzID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXBXaXRo
Qm9vdHN0cmFwRXh0ZW5zaW9uKG5vbkJyb3dzZXJTZXJ2aWNlcygpLCBzdGQ6Om51bGxvcHQpOwog
CiAgICAgaWYgKFdlYkNvcmU6OmRldmljZUhhc0FHWENvbXBpbGVyU2VydmljZSgpKQogICAgICAg
ICBwYXJhbWV0ZXJzLmR5bmFtaWNJT0tpdEV4dGVuc2lvbkhhbmRsZXMgPSBTYW5kYm94RXh0ZW5z
aW9uOjpjcmVhdGVIYW5kbGVzRm9ySU9LaXRDbGFzc0V4dGVuc2lvbnMoV2ViQ29yZTo6YWd4Q29t
cGlsZXJDbGFzc2VzKCksIHN0ZDo6bnVsbG9wdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQkocmV2aXNpb24g
MjkyOTc1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0OCw3ICsyNDgsNyBAQCB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6dW5ibG9ja0FjY2Vzc2liaWxpCiAKICAgICBWZWN0b3I8U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlPiBoYW5kbGVBcnJheTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGhh
bmRsZUFycmF5ID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXAo
eyAiY29tLmFwcGxlLmlwaG9uZS5heHNlcnZlci1zeXN0ZW13aWRlIl9zLCAiY29tLmFwcGxlLmZy
b250Ym9hcmQuc3lzdGVtYXBwc2VydmljZXMiX3MgfSwgY29ubmVjdGlvbigpID8gY29ubmVjdGlv
bigpLT5nZXRBdWRpdFRva2VuKCkgOiBzdGQ6Om51bGxvcHQpOworICAgIGhhbmRsZUFycmF5ID0g
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlc0Zvck1hY2hMb29rdXBXaXRoQm9vdHN0cmFw
RXh0ZW5zaW9uKHsgImNvbS5hcHBsZS5pcGhvbmUuYXhzZXJ2ZXItc3lzdGVtd2lkZSJfcywgImNv
bS5hcHBsZS5mcm9udGJvYXJkLnN5c3RlbWFwcHNlcnZpY2VzIl9zIH0sIGhhc0Nvbm5lY3Rpb24o
KSA/IGNvbm5lY3Rpb24oKS0+Z2V0QXVkaXRUb2tlbigpIDogc3RkOjpudWxsb3B0KTsKICAgICBB
U1NFUlQoaGFuZGxlQXJyYXkuc2l6ZSgpID09IDIpOwogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjky
OTc1KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMjI0Niw2ICsyMjQ2LDggQEAKIAkJRTFEMjZBNTMxNzU5NjREOTAw
OTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFEMjZBNEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNv
bnRlbnRQcm9jZXNzLnhpYiAqLzsgfTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAwNEVENjUzIC8qIFNh
bmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94
SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAwMEND
QkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKKwkJRTM2RkYwMDMyN0Yz
NkZCRDAwNEJFMjFBIC8qIFNhbmRib3hTdGF0ZVZhcmlhYmxlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM2RkYwMDEyN0YzNkZCRDAwNEJFMjFBIC8q
IFNhbmRib3hTdGF0ZVZhcmlhYmxlcy5oICovOyB9OworCQlFMzZGRjAwNDI3RjM2RkJEMDA0QkUy
MUEgLyogcHJlZmVyZW5jZXMuc2IgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzNkZGMDAyMjdGMzZGQkQwMDRCRTIxQSAvKiBwcmVmZXJlbmNlcy5zYiAq
LzsgfTsKIAkJRTM4MTZCM0QyN0UyNDYzQTAwNUVBRkMwIC8qIFdlYk1vY2tDb250ZW50RmlsdGVy
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzgxNkIzQjI3RTI0NjM5MDA1RUFGQzAgLyogV2ViTW9ja0NvbnRlbnRGaWx0ZXJNYW5hZ2Vy
LmNwcCAqLzsgfTsKIAkJRTM4MTZCM0UyN0UyNDYzQTAwNUVBRkMwIC8qIFdlYk1vY2tDb250ZW50
RmlsdGVyTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM4MTZCM0MyN0UyNDYzOTAwNUVBRkMwIC8qIFdlYk1vY2tDb250ZW50RmlsdGVyTWFu
YWdlci5oICovOyB9OwogCQlFMzg2NkFFNTIzOTc0MDA0MDBGODhGRTkgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4NjZBRTQyMzk3NDAwNDAwRjg4RkU5IC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbSAqLzsgfTsKQEAgLTcwMjksOSArNzAz
MSwxMCBAQAogCQlFMzQzOUI2MzIzNDU0NjNBMDAxMURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
Lmg7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM0QjExMEMyN0M0NkJDNjAwNkQyRjJFIC8qIGxpYldl
YkNvcmVUZXN0U2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IHBhdGggPSBsaWJXZWJDb3JlVGVz
dFNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUUzNEIx
MTBGMjdDNDZEMDkwMDZEMkYyRSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNo
LW8uZHlsaWIiOyBwYXRoID0gbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwotCQlFMzYxMkZGMDI2RjkwODYyMDA3QjExNzUgLyog
U2FuZGJveCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IGZvbGRlcjsgcGF0aCA9IFNhbmRib3g7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
NkQ3MDFBMjdCNzA5RUQwMDY1MzFCNyAvKiBXZWJBdHRhY2htZW50RWxlbWVudENsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJBdHRhY2htZW50RWxlbWVudENsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzZENzAxRDI3QjcxOEVGMDA2NTMxQjcgLyogV2ViQXR0YWNobWVu
dEVsZW1lbnRDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXR0YWNobWVudEVsZW1l
bnRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzZGRjAwMTI3RjM2
RkJEMDA0QkUyMUEgLyogU2FuZGJveFN0YXRlVmFyaWFibGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNhbmRib3hTdGF0ZVZhcmlhYmxlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMzZGRjAwMjI3RjM2RkJEMDA0QkUyMUEgLyogcHJlZmVyZW5jZXMuc2Ig
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gcHJlZmVyZW5jZXMuc2I7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzODE2QjNCMjdFMjQ2MzkwMDVFQUZDMCAvKiBXZWJNb2NrQ29udGVudEZp
bHRlck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2Vi
TW9ja0NvbnRlbnRGaWx0ZXJNYW5hZ2VyLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViTW9ja0NvbnRl
bnRGaWx0ZXJNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4MTZC
M0MyN0UyNDYzOTAwNUVBRkMwIC8qIFdlYk1vY2tDb250ZW50RmlsdGVyTWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJNb2NrQ29udGVudEZpbHRlck1hbmFnZXIu
aDsgcGF0aCA9IE5ldHdvcmsvV2ViTW9ja0NvbnRlbnRGaWx0ZXJNYW5hZ2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODY2QUU0MjM5NzQwMDQwMEY4OEZFOSAvKiBXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHkubW07IHBhdGggPSBpb3MvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzgwNyw3ICs3ODEwLDcgQEAKIAkJ
CQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAogCQkJCTUxQUYxQjNEMjcxRjQ2
QTYwMDE1MzhFNiAvKiBOb3RpZmljYXRpb25zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJC
MjVFRCAvKiBSZW1vdGVMYXllclRyZWUgKi8sCi0JCQkJRTM2MTJGRjAyNkY5MDg2MjAwN0IxMTc1
IC8qIFNhbmRib3ggKi8sCisJCQkJRTM2RkVGRkUyN0YzNkYzNDAwNEJFMjFBIC8qIFNhbmRib3gg
Ki8sCiAJCQkJMUNCNzQ2NDUyNzQzNzlGMTAwRjE5ODc0IC8qIFdlYkdQVSAqLywKIAkJCQkxQUJG
NDM3ODFBMzY4MDM1MDAzRkIwRTYgLyogV2Vic2l0ZURhdGEgKi8sCiAJCQkJMTE4NTAyNjAyNjcz
QjBEQTAwQTY0MjVFIC8qIFhSICovLApAQCAtMTM1MzgsNiArMTM1NDEsMTUgQEAKIAkJCW5hbWUg
PSBQREY7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlFMzZGRUZGRTI3RjM2
RjM0MDA0QkUyMUEgLyogU2FuZGJveCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hp
bGRyZW4gPSAoCisJCQkJRTM2RkYwMDIyN0YzNkZCRDAwNEJFMjFBIC8qIHByZWZlcmVuY2VzLnNi
ICovLAorCQkJCUUzNkZGMDAxMjdGMzZGQkQwMDRCRTIxQSAvKiBTYW5kYm94U3RhdGVWYXJpYWJs
ZXMuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gU2FuZGJveDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CisJCX07CiAJCUU0MDQ5MDZGMjFERTY1RDcwMDM3RjBEQiAvKiBtYWMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTQ0NDYsNiArMTQ0NTgsNyBA
QAogCQkJCUJDMkQwMjE3MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBQjRBOEQxMjk2RjBBMjAwMjM5NTJGIC8qIFNh
bmRib3hFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRTU1MkM1MTZBRTA2NUYwMDRF
RDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMzZGRjAwMzI3RjM2RkJEMDA0QkUyMUEgLyogU2FuZGJveFN0YXRlVmFyaWFibGVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QkFCMTExMDI1REQwMkIzMDA4RkM0NzkgLyogU2NvcGVkQWN0
aXZlTWVzc2FnZVJlY2VpdmVRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRENTREMDQyMUYx
RDcyRDAwN0UzQzM2IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVJT1Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTMxQzFDMThDNTcxMTkwMERCQTdDMyAvKiBTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmggaW4gSGVhZGVycyAqLywKQEAgLTE1Nzg3
LDYgKzE1ODAwLDcgQEAKIAkJCQk2QkU5NjlDMTFFNTRENDUyMDA4Qjc0ODMgLyogY29yZVByZWRp
Y3Rpb25fbW9kZWwgaW4gUmVzb3VyY2VzICovLAogCQkJCThEQzJFRjUzMDQ4NkE2OTQwMDk4QjIx
NiAvKiBJbmZvUGxpc3Quc3RyaW5ncyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJM0ZCMDhFNDMxRjYw
QjI0MDAwNUU1MzEyIC8qIGlPUy54Y2Fzc2V0cyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTM2RkYw
MDQyN0YzNkZCRDAwNEJFMjFBIC8qIHByZWZlcmVuY2VzLnNiIGluIFJlc291cmNlcyAqLywKIAkJ
CQk1QzhCQzc5NzIxOENCQjQ4MDA4MTM4ODYgLyogU2FmZUJyb3dzaW5nLnhjYXNzZXRzIGluIFJl
c291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJlZGRhdGEv
eGNzY2hlbWVzL1dlYktpdC54Y3NjaGVtZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9XZWJLaXQueGNzY2hlbWUJKHJl
dmlzaW9uIDI5Mjk3NSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai94Y3NoYXJl
ZGRhdGEveGNzY2hlbWVzL1dlYktpdC54Y3NjaGVtZQkod29ya2luZyBjb3B5KQpAQCAtMzEsNyAr
MzEsNyBAQAogICAgICAgPC9UZXN0YWJsZXM+CiAgICA8L1Rlc3RBY3Rpb24+CiAgICA8TGF1bmNo
QWN0aW9uCi0gICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSIKKyAgICAgIGJ1aWxk
Q29uZmlndXJhdGlvbiA9ICJEZWJ1ZyIKICAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVy
ID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgogICAgICAgc2VsZWN0
ZWRMYXVuY2hlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVy
LkxMREIiCiAgICAgICBsYXVuY2hTdHlsZSA9ICIwIgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyOTI5NzUpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNTcsOSArMzU3LDkgQEAgcHVi
bGljOgogICAgIGJvb2wgcmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAjZW5kaWYKIAotICAgIHZvaWQg
Z3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJiBtb2JpbGVBc3NldFYySGFuZGxlKTsKKyAgICB2b2lkIGdyYW50QWNjZXNzVG9Bc3NldFNl
cnZpY2VzKFZlY3RvcjxXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4mJiBhc3NldFNl
cnZpY2VzSGFuZGxlcyk7CiAgICAgdm9pZCByZXZva2VBY2Nlc3NUb0Fzc2V0U2VydmljZXMoKTsK
LSAgICB2b2lkIHN3aXRjaEZyb21TdGF0aWNGb250UmVnaXN0cnlUb1VzZXJGb250UmVnaXN0cnko
V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBmb250TWFjaEV4dGVuc2lvbkhhbmRs
ZSk7CisgICAgdm9pZCBzd2l0Y2hGcm9tU3RhdGljRm9udFJlZ2lzdHJ5VG9Vc2VyRm9udFJlZ2lz
dHJ5KFZlY3RvcjxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYgZm9udE1hY2hFeHRlbnNpb25I
YW5kbGVzKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHVwZGF0ZVBhZ2VTY3JlZW5Q
cm9wZXJ0aWVzKCk7CkBAIC03MzksNyArNzM5LDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZSB7IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGU6OkFsbCB9OwogI2VuZGlm
CiAKLSAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9hc3NldFNlcnZpY2VWMkV4dGVuc2lv
bjsKKyAgICBWZWN0b3I8UmVmUHRyPFNhbmRib3hFeHRlbnNpb24+PiBtX2Fzc2V0U2VydmljZXNF
eHRlbnNpb25zOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgSGFzaENvdW50ZWRTZXQ8U3Ry
aW5nPiBtX3BlbmRpbmdQYXN0ZWJvYXJkV3JpdGVDb3VudHM7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjkyOTc1
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTE2Myw5ICsxNjMsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExl
Z2FjeVJlY2VpdmVyIE5vCiAgICAgU2VuZFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhSW1tZWRp
YXRlbHkoKSAtPiAoKQogI2VuZGlmCiAKLSAgICBHcmFudEFjY2Vzc1RvQXNzZXRTZXJ2aWNlcyhX
ZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBtb2JpbGVBc3NldFYySGFuZGxlKQorICAg
IEdyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzKFZlY3RvcjxXZWJLaXQ6OlNhbmRib3hFeHRlbnNp
b246OkhhbmRsZT4gYXNzZXRTZXJ2aWNlc0hhbmRsZXMpCiAgICAgUmV2b2tlQWNjZXNzVG9Bc3Nl
dFNlcnZpY2VzKCkKLSAgICBTd2l0Y2hGcm9tU3RhdGljRm9udFJlZ2lzdHJ5VG9Vc2VyRm9udFJl
Z2lzdHJ5KFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIGZvbnRNYWNoRXh0ZW5zaW9u
SGFuZGxlKQorICAgIFN3aXRjaEZyb21TdGF0aWNGb250UmVnaXN0cnlUb1VzZXJGb250UmVnaXN0
cnkoVmVjdG9yPFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBmb250TWFjaEV4dGVu
c2lvbkhhbmRsZXMpCiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBVbmJsb2NrU2VydmljZXNS
ZXF1aXJlZEJ5QWNjZXNzaWJpbGl0eShWZWN0b3I8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IGhhbmRsZUFycmF5KQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5h
cHBsZS5XZWJQcm9jZXNzLnNiLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbgkocmV2aXNpb24gMjkyOTc1KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0xODQ4LDcgKzE4NDgsNyBAQAogKGRpc2FibGUtc3lzY2FsbC1pbmZlcmVuY2Up
CiAjZW5kaWYKIAotI2lmIEhBVkUoU0FOREJPWF9TVEFURV9GTEFHUykKKyNpZiAxIHx8IEhBVkUo
U0FOREJPWF9TVEFURV9GTEFHUykKIChkZW55IHVzZXItcHJlZmVyZW5jZS1yZWFkICh3aXRoIGVu
YWJsZS1zdGF0ZS1mbGFnICJXZWJDb250ZW50UHJvY2Vzc0xhdW5jaGVkIikKICAgICAocHJlZmVy
ZW5jZS1kb21haW4gImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5MYXVuY2giKSkKICNlbmRp
ZgpAQCAtMjA1MiwyNyArMjA1Miw0MCBAQAogI2VuZGlmCiAKICNpZiBIQVZFKFNBTkRCT1hfTUVT
U0FHRV9GSUxURVJJTkcpCi0oaWYgKGFuZCAoZXF1YWw/IChwYXJhbSAiRU5BQkxFX1NBTkRCT1hf
TUVTU0FHRV9GSUxURVIiKSAiWUVTIikgKGRlZmluZWQ/ICdtYWNoLWJvb3RzdHJhcCkpCisoZGVm
aW5lIChtYWNoLWJvb3RzdHJhcC1tZXNzYWdlLW51bWJlcnMpCisgICAgKG1lc3NhZ2UtbnVtYmVy
IDIwNCAyMDcgMzAxIDcxMSA4MDAgODA0KSkKKworKGRlZmluZSAoYWxsb3ctbWFjaC1ib290c3Ry
YXAtd2l0aC1maWx0ZXIpCiAgICAgKGFsbG93IG1hY2gtYm9vdHN0cmFwCiAgICAgICAgIChhcHBs
eS1tZXNzYWdlLWZpbHRlcgotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTIwMDAwCiAgICAgICAgICAgICAoZGVueSBtYWNoLW1lc3NhZ2Utc2VuZCAod2l0aCB0ZWxlbWV0
cnkpKQotICAgICAgICAgICAgKGFsbG93IG1hY2gtbWVzc2FnZS1zZW5kIChtZXNzYWdlLW51bWJl
cgorICAgICAgICAgICAgKGFsbG93IG1hY2gtbWVzc2FnZS1zZW5kCisgICAgICAgICAgICAgICAg
KG1hY2gtYm9vdHN0cmFwLW1lc3NhZ2UtbnVtYmVycykpKSkpCisKKyhpZiAoYW5kIChlcXVhbD8g
KHBhcmFtICJFTkFCTEVfU0FOREJPWF9NRVNTQUdFX0ZJTFRFUiIpICJZRVMiKSAoZGVmaW5lZD8g
J21hY2gtYm9vdHN0cmFwKSkKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEyMDAwMAorI2lmIDEgfHwgSEFWRShTQU5EQk9YX1NUQVRFX0ZMQUdTKQorICAgIChiZWdpbgor
ICAgICAgICA7OyhpZiAocmVxdWlyZS1hbmNlc3Rvci13aXRoLWVudGl0bGVtZW50ICJjb20uYXBw
bGUucHJpdmF0ZS5zZWN1cml0eS5lbmFibGUtc3RhdGUtZmxhZ3MiKQorICAgICAgICAgICAgKGRl
bnkgbWFjaC1ib290c3RyYXApCisgICAgICAgIDs7IGVsc2UKKyAgICAgICAgOzsgICAgKGFsbG93
LW1hY2gtYm9vdHN0cmFwLXdpdGgtZmlsdGVyKSkKKworICAgICAgICAod2l0aC1maWx0ZXIKKyAg
ICAgICAgICAgIChyZXF1aXJlLWFueQorICAgICAgICAgICAgICAgIChyZXF1aXJlLW5vdCAoc3Rh
dGUtZmxhZyAiV2ViQ29udGVudFByb2Nlc3NMYXVuY2hlZCIpKQorICAgICAgICAgICAgICAgIChl
eHRlbnNpb24gImNvbS5hcHBsZS53ZWJraXQubWFjaC1ib290c3RyYXAiKSkKKyAgICAgICAgICAg
IChhbGxvdy1tYWNoLWJvb3RzdHJhcC13aXRoLWZpbHRlcikpKSkKICNlbHNlCisgICAgKGFsbG93
LW1hY2gtYm9vdHN0cmFwLXdpdGgtZmlsdGVyKSkKKyNlbmRpZiAvLyBIQVZFKFNBTkRCT1hfU1RB
VEVfRkxBR1MpCisjZWxzZQorICAgIChhbGxvdyBtYWNoLWJvb3RzdHJhcAorICAgICAgICAoYXBw
bHktbWVzc2FnZS1maWx0ZXIKICAgICAgICAgICAgIChkZW55IHhwYy1tZXNzYWdlLXNlbmQgKHdp
dGggdGVsZW1ldHJ5KSkKLSAgICAgICAgICAgIChhbGxvdyB4cGMtbWVzc2FnZS1zZW5kIChtZXNz
YWdlLW51bWJlcgorICAgICAgICAgICAgKGFsbG93IHhwYy1tZXNzYWdlLXNlbmQKKyAgICAgICAg
ICAgICAgICAobWFjaC1ib290c3RyYXAtbWVzc2FnZS1udW1iZXJzKSkpKSkKICNlbmRpZgotICAg
ICAgICAgICAgICAgIDIwNAotICAgICAgICAgICAgICAgIDIwNwotICAgICAgICAgICAgICAgIDMw
MQotICAgICAgICAgICAgICAgIDcxMQotICAgICAgICAgICAgICAgIDgwMAotICAgICAgICAgICAg
ICAgIDgwNAotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICkKLSAgICAgICAgKQotICAg
ICkKLSkKIAogKGlmIChhbmQgKGVxdWFsPyAocGFyYW0gIkVOQUJMRV9TQU5EQk9YX01FU1NBR0Vf
RklMVEVSIikgIllFUyIpIChkZWZpbmVkPyAnbWFjaC1rZXJuZWwtZW5kcG9pbnQpKQogICAgIChh
bGxvdyBtYWNoLWtlcm5lbC1lbmRwb2ludApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI5Mjk3NSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTUs
MTggKzQ1NSwxOCBAQCBERUZJTkVfREVCVUdfT05MWV9HTE9CQUwoV1RGOjpSZWZDb3VudGVkCiAK
IFJlZjxXZWJQYWdlPiBXZWJQYWdlOjpjcmVhdGUoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsKLSNpZiBIQVZFKFNBTkRCT1hf
U1RBVEVfRkxBR1MpCisgICAgUmVmPFdlYlBhZ2U+IHBhZ2UgPSBhZG9wdFJlZigqbmV3IFdlYlBh
Z2UocGFnZUlELCBXVEZNb3ZlKHBhcmFtZXRlcnMpKSk7CisKKyAgICBpZiAoV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuaW5qZWN0ZWRCdW5kbGUoKSkKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuaW5qZWN0ZWRCdW5kbGUoKS0+ZGlkQ3JlYXRlUGFnZShwYWdlLnB0cigpKTsKKworI2lm
IDEgfHwgSEFWRShTQU5EQk9YX1NUQVRFX0ZMQUdTKQogICAgIC8vIFRoaXMgY2FsbCBpcyBub3Qg
bWVhbnQgdG8gYWN0dWFsbHkgcmVhZCBhIHByZWZlcmVuY2UsIGJ1dCBpcyBvbmx5IGhlcmUgdG8g
dHJpZ2dlciBhIHNhbmRib3ggcnVsZSBpbiB0aGUKICAgICAvLyBXZWJDb250ZW50IHByb2Nlc3Ms
IHdoaWNoIHdpbGwgdG9nZ2xlIGEgc2FuZGJveCB2YXJpYWJsZSB1c2VkIHRvIGRldGVybWluZSBp
ZiB0aGUgV2ViQ29udGVudCBwcm9jZXNzCiAgICAgLy8gaGFzIGZpbmlzaGVkIGxhdW5jaGluZy4g
VGhpcyBjYWxsIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIHByb3BlciBBUEkgd2hlbiBhdmFpbGFi
bGUuCiAgICAgQ0ZQcmVmZXJlbmNlc0dldEFwcEludGVnZXJWYWx1ZShDRlNUUigia2V5IiksIENG
U1RSKCJjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuTGF1bmNoIiksIG51bGxwdHIpOwogI2Vu
ZGlmCiAKLSAgICBSZWY8V2ViUGFnZT4gcGFnZSA9IGFkb3B0UmVmKCpuZXcgV2ViUGFnZShwYWdl
SUQsIFdURk1vdmUocGFyYW1ldGVycykpKTsKLQotICAgIGlmIChXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5pbmplY3RlZEJ1bmRsZSgpKQotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5p
bmplY3RlZEJ1bmRsZSgpLT5kaWRDcmVhdGVQYWdlKHBhZ2UucHRyKCkpOwotCiAgICAgcmV0dXJu
IHBhZ2U7CiB9CiAKQEAgLTY3Nyw4ICs2NzcsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVu
dGlmaWVyIHBhZ2VJRCwgCiAjZW5kaWYKIAogI2lmIEhBVkUoU1RBVElDX0ZPTlRfUkVHSVNUUlkp
Ci0gICAgaWYgKHBhcmFtZXRlcnMuZm9udE1hY2hFeHRlbnNpb25IYW5kbGUpCi0gICAgICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnN3aXRjaEZyb21TdGF0aWNGb250UmVnaXN0cnlUb1VzZXJG
b250UmVnaXN0cnkoV1RGTW92ZSgqcGFyYW1ldGVycy5mb250TWFjaEV4dGVuc2lvbkhhbmRsZSkp
OworICAgIGlmIChwYXJhbWV0ZXJzLmZvbnRNYWNoRXh0ZW5zaW9uSGFuZGxlcy5zaXplKCkgPiAw
KQorICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zd2l0Y2hGcm9tU3RhdGljRm9udFJl
Z2lzdHJ5VG9Vc2VyRm9udFJlZ2lzdHJ5KFdURk1vdmUocGFyYW1ldGVycy5mb250TWFjaEV4dGVu
c2lvbkhhbmRsZXMpKTsKICNlbmRpZgogCiAgICAgbV9wYWdlID0gbWFrZVVuaXF1ZTxQYWdlPihX
VEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI5Mjk3NSkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTExNTksMjUgKzExNTksMjggQEAgdm9pZCBXZWJQcm9jZXNzOjpub3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzczo6Z3JhbnRBY2Nl
c3NUb0Fzc2V0U2VydmljZXMoV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBtb2Jp
bGVBc3NldFYySGFuZGxlKQordm9pZCBXZWJQcm9jZXNzOjpncmFudEFjY2Vzc1RvQXNzZXRTZXJ2
aWNlcyhWZWN0b3I8V2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYgYXNzZXRTZXJ2
aWNlc0hhbmRsZXMpCiB7Ci0gICAgaWYgKG1fYXNzZXRTZXJ2aWNlVjJFeHRlbnNpb24pCisgICAg
aWYgKG1fYXNzZXRTZXJ2aWNlc0V4dGVuc2lvbnMuc2l6ZSgpID4gMCkKICAgICAgICAgcmV0dXJu
OwotICAgIG1fYXNzZXRTZXJ2aWNlVjJFeHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVh
dGUoV1RGTW92ZShtb2JpbGVBc3NldFYySGFuZGxlKSk7Ci0gICAgbV9hc3NldFNlcnZpY2VWMkV4
dGVuc2lvbi0+Y29uc3VtZSgpOworCisgICAgZm9yIChhdXRvJiBoYW5kbGUgOiBhc3NldFNlcnZp
Y2VzSGFuZGxlcykgeworICAgICAgICBhdXRvIGV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZShXVEZNb3ZlKGhhbmRsZSkpOworICAgICAgICBleHRlbnNpb24tPmNvbnN1bWUoKTsK
KyAgICAgICAgbV9hc3NldFNlcnZpY2VzRXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uKTsKKyAg
ICB9CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cmV2b2tlQWNjZXNzVG9Bc3NldFNlcnZpY2VzKCkK
IHsKLSAgICBpZiAoIW1fYXNzZXRTZXJ2aWNlVjJFeHRlbnNpb24pCi0gICAgICAgIHJldHVybjsK
LSAgICBtX2Fzc2V0U2VydmljZVYyRXh0ZW5zaW9uLT5yZXZva2UoKTsKLSAgICBtX2Fzc2V0U2Vy
dmljZVYyRXh0ZW5zaW9uID0gbnVsbHB0cjsKKyAgICBmb3IgKGF1dG8gZXh0ZW5zaW9uIDogbV9h
c3NldFNlcnZpY2VzRXh0ZW5zaW9ucykKKyAgICAgICAgZXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAg
ICBtX2Fzc2V0U2VydmljZXNFeHRlbnNpb25zLmNsZWFyKCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vz
czo6c3dpdGNoRnJvbVN0YXRpY0ZvbnRSZWdpc3RyeVRvVXNlckZvbnRSZWdpc3RyeShXZWJLaXQ6
OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmIGZvbnRNYWNoRXh0ZW5zaW9uSGFuZGxlKQordm9p
ZCBXZWJQcm9jZXNzOjpzd2l0Y2hGcm9tU3RhdGljRm9udFJlZ2lzdHJ5VG9Vc2VyRm9udFJlZ2lz
dHJ5KFZlY3RvcjxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+JiYgZm9udE1hY2hFeHRlbnNpb25I
YW5kbGVzKQogewotICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShmb250
TWFjaEV4dGVuc2lvbkhhbmRsZSk7CisgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1h
bmVudGx5KGZvbnRNYWNoRXh0ZW5zaW9uSGFuZGxlcyk7CiAjaWYgSEFWRShTVEFUSUNfRk9OVF9S
RUdJU1RSWSkKICAgICBDVEZvbnRNYW5hZ2VyRW5hYmxlQWxsVXNlckZvbnRzKHRydWUpOwogI2Vu
ZGlmCg==
</data>
<flag name="commit-queue"
          id="487106"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>