<?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>219532</bug_id>
          
          <creation_ts>2020-12-04 00:21:37 -0800</creation_ts>
          <short_desc>Add a SFrame H264 experimental compatibility mode</short_desc>
          <delta_ts>2020-12-07 09:03:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1711962</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-04 00:21:37 -0800</bug_when>
    <thetext>Add a SFrame H264 experimental compatibility mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1711966</commentid>
    <comment_count>1</comment_count>
      <attachid>415393</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-04 01:02:43 -0800</bug_when>
    <thetext>Created attachment 415393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712017</commentid>
    <comment_count>2</comment_count>
      <attachid>415413</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-04 07:21:12 -0800</bug_when>
    <thetext>Created attachment 415413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712022</commentid>
    <comment_count>3</comment_count>
      <attachid>415415</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-04 07:44:16 -0800</bug_when>
    <thetext>Created attachment 415415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712411</commentid>
    <comment_count>4</comment_count>
      <attachid>415543</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-12-07 02:42:16 -0800</bug_when>
    <thetext>Created attachment 415543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712469</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-07 09:02:15 -0800</bug_when>
    <thetext>Committed r270506: &lt;https://trac.webkit.org/changeset/270506&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415543.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712470</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-07 09:03:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/72049295&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415393</attachid>
            <date>2020-12-04 01:02:43 -0800</date>
            <delta_ts>2020-12-04 07:21:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219532-20201204100241.patch</filename>
            <type>text/plain</type>
            <size>28539</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzEyYjUyNWJiNzY4Mzk2
YjdhMTA4MWRiOGQ4ZTU2MzhmM2NhYjFiZi4uM2U4NGY2ZjEwNGQ5YmEzOGQ5YjkwMTZjNWYwYjE0
ZjhmNzNjYzliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTEyLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBTRnJhbWUgSDI2
NCBleHBlcmltZW50YWwgY29tcGF0aWJpbGl0eSBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gU0ZyYW1lIGNvbXBhdGliaWxpdHkgbW9k
ZSBmb3IgSC4yNjQuCisgICAgICAgIFRvIGRvIHNvLCB0aGUgZW5jcnlwdG9yIGdlbmVyYXRlcyBh
biBTRnJhbWUgYW5kIHByZWZpeGVzIGl0IHdpdGggZWl0aGVyIGEgZGVsdGEgZnJhbWUgcHJlZml4
IG9yIGEga2V5IGZyYW1lIHByZWZpeC4KKyAgICAgICAgVGhlIFNGcmFtZSBjb250ZW50IGlzIGVz
Y2FwZWQgc28gdGhhdCBpdCBpcyBjb25zaWRlcmVkIGFzIG9uZSBiaWcgTkFMVS4uCisgICAgICAg
IFRoZSBkZWNvZGVyIG9uIHRoZSBvdGhlciBoYW5kLCB1bmVzY2FwZXMgdGhlIGNvbnRlbnQsIHJl
bW92ZXMgdGhlIHByZWZpeCwgZGVjcnlwdCB0aGUgU0ZyYW1lIGNvbnRlbnQuCisKKyAgICAgICAg
VGVzdDogd2VicnRjL3ZpZGVvLXNmcmFtZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL0gyNjRVdGlscy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVBy
ZWZpeE9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpuZWVkc1Jic3BVbmVzY2FwaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmZyb21SYnNwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVQcmVm
aXhCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6dG9SYnNwKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL0gyNjRVdGlscy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2xp
Y2VOQUxVKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU1BTTkFMVSk6CisgICAgICAgIChXZWJDb3Jl
Ojppc0lEUk5BTFUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5cHRGcmFtZSk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMjAtMTItMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIElDRSBkb2VzIG5vdCByZXNvbHZlIGZvciBgdHVybnNgIHJlbGF5IGNhbmRpZGF0ZXMgcm9v
dGVkIGluIExldHNFbmNyeXB0IENBCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL0gyNjRVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0gyNjRVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMyNTg5MTI4YzIxMWUzYzZjZjZlNGM5
YmRkOTlhMTA5OWIxZjRlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vSDI2NFV0aWxzLmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJIMjY0VXRpbHMuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3NpemVfdCBjb21wdXRlUHJlZml4T2Zmc2V0KGNvbnN0IHVpbnQ4X3Qq
IGZyYW1lRGF0YSwgc2l6ZV90IGZyYW1lU2l6ZSkKK3sKKyAgICBpZiAoZnJhbWVTaXplIDwgNSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoaXNTbGljZU5BTFUoZnJhbWVEYXRhWzRdKSkg
eworICAgICAgICAvLyBTa2lwIDAwIDAwIDAwIDAxLCBzbGljZSBuYWx1IGJ5dGUgYW5kIHRoZSBu
ZXh0IGJ5dGUuCisgICAgICAgIHJldHVybiA2OworICAgIH0KKworICAgIGlmICghaXNTUFNOQUxV
KGZyYW1lRGF0YVs0XSkpCisgICAgICAgIHJldHVybiAwOworCisgICAgZm9yIChzaXplX3QgaSA9
IDg7IGkgPCBmcmFtZVNpemU7ICsraSkgeworICAgICAgICBpZiAoIWlzSURSTkFMVShmcmFtZURh
dGFbaV0pKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChmcmFtZURhdGFbaSAt
IDRdID09IDAgJiYgZnJhbWVEYXRhW2kgLSAzXSA9PSAwICYmIGZyYW1lRGF0YVtpIC0gMl0gPT0g
MCAmJiBmcmFtZURhdGFbaSAtIDFdID09IDEpIHsKKyAgICAgICAgICAgIC8vIFNraXAgMDAgMDAg
MDAgMDEsIElEUiBuYWx1IGJ5dGUgYW5kIHRoZSBuZXh0IGJ5dGUuCisgICAgICAgICAgICByZXR1
cm4gaSArIDI7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgbmVl
ZHNSYnNwVW5lc2NhcGluZyhjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNp
emUpCit7CisgICAgaWYgKGZyYW1lU2l6ZSA8IDMpCisgICAgICAgIHJldHVybiAwOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgZnJhbWVTaXplIC0gMzsgKytpKSB7CisgICAgICAgIGlmIChm
cmFtZURhdGFbMF0gPT0gMCAmJiBmcmFtZURhdGFbMV0gPT0gMCAmJiBmcmFtZURhdGFbMl0gPT0g
MykKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK1ZlY3Rvcjx1aW50OF90PiBmcm9tUmJzcChjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNp
emVfdCBmcmFtZVNpemUpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZm
ZXIucmVzaXplKGZyYW1lU2l6ZSk7CisgICAgYXV0byogZGF0YSA9IGJ1ZmZlci5kYXRhKCk7CisK
KyAgICBzaXplX3QgY291bnRlciA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFt
ZVNpemUgLSAzOyArK2kpIHsKKyAgICAgICAgaWYgKGZyYW1lRGF0YVtpXSA9PSAwICYmIGZyYW1l
RGF0YVtpICsgMV0gPT0gMCAmJiBmcmFtZURhdGFbaSArIDJdID09IDMpIHsKKyAgICAgICAgICAg
IGRhdGFbY291bnRlcisrXSA9IGZyYW1lRGF0YVtpXTsKKyAgICAgICAgICAgIGRhdGFbY291bnRl
cisrXSA9IGZyYW1lRGF0YVtpICsgMV07CisgICAgICAgICAgICAvLyBTa2lwIG5leHQgYnl0ZSB3
aGljaCBpcyBkZWxpbWl0ZXIuCisgICAgICAgICAgICBpICs9IDI7CisgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgZGF0YVtjb3VudGVyKytdID0gZnJhbWVEYXRhW2ldOworICAgIH0KKyAgICBm
b3IgKHNpemVfdCBpID0gZnJhbWVTaXplIC0gMzsgaSA8IGZyYW1lU2l6ZTsgKytpKQorICAgICAg
ICBkYXRhW2NvdW50ZXIrK10gPSBmcmFtZURhdGFbaV07CisKKyAgICBidWZmZXIucmVzaXplKGNv
dW50ZXIpOworICAgIHJldHVybiBidWZmZXI7Cit9CisKK3N0YXRpYyBjb25zdCB1aW50OF90IHBy
ZWZpeERlbHRhRnJhbWVbNl0gPSB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MjEsIDB4Yjgg
fTsKK3N0YXRpYyBjb25zdCB1aW50OF90IHByZWZpeEtleUZyYW1lWzM1XSA9IHsgMHgwMCwgMHgw
MCwgMHgwMCwgMHgwMSwgMHgyNywgMHg2NCwgMHgwMCwgMHgxZiwgMHhhYywgMHgxMywgMHgxNiwg
MHg2MCwgMHgyOCwgMHgwZiwgMHg2OCwgMHgwNiwgMHhkMCwgMHg0NCwgMHgyMywgMHgzNCwgMHgw
MCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgyOCwgMHhkOSwgMHg0YiwgMHgwOSwgMHhjYiwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMSwgMHgyNSwgMHhiOCB9OworCisvLyBGSVhNRTogV2Ugc2hvdWxkIHBy
b2JhYmx5IGdlbmVyYXRlIHRoZSBwcmVmaXggdG8gY2FycnkgdGhlIHByb2ZpbGUgYW5kIHJlc29s
dXRpb24gaW5mb3JtYXRpb24gYXMgZ2F0aGVyZWQgZnJvbSB0aGUgZnJhbWUuCitIMjY0UHJlZml4
QnVmZmVyIGNvbXB1dGVQcmVmaXhCdWZmZXIoY29uc3QgdWludDhfdCogZnJhbWVEYXRhLCBzaXpl
X3QgZnJhbWVTaXplKQoreworICAgIGlmIChmcmFtZVNpemUgPCA1KQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgYm9vbCBpc0RlbHRhRnJhbWUgPSBpc1NsaWNlTkFMVShmcmFtZURhdGFbNF0p
OworICAgIHJldHVybiBpc0RlbHRhRnJhbWUgPyBIMjY0UHJlZml4QnVmZmVyIHsgcHJlZml4RGVs
dGFGcmFtZSwgc2l6ZW9mKHByZWZpeERlbHRhRnJhbWUpIH0gOiBIMjY0UHJlZml4QnVmZmVyIHsg
cHJlZml4S2V5RnJhbWUsIHNpemVvZihwcmVmaXhLZXlGcmFtZSkgfTsKK30KKwordm9pZCB0b1Ji
c3AoVmVjdG9yPHVpbnQ4X3Q+JiBmcmFtZSwgc2l6ZV90IG9mZnNldCkKK3sKKyAgICBzaXplX3Qg
Y291bnQgPSAwOworICAgIHNpemVfdCBudW1Db25zZWN1dGl2ZVplcm9zID0gMDsKKyAgICBhdXRv
KiBkYXRhID0gZnJhbWUuZGF0YSgpOworICAgIGZvciAoc2l6ZV90IGkgPSBvZmZzZXQ7IGkgPCBm
cmFtZS5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoZGF0YVtpXSA8PSAzICYmIG51bUNvbnNl
Y3V0aXZlWmVyb3MgPj0gMikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIG51
bUNvbnNlY3V0aXZlWmVyb3MgPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChkYXRhW2ldID09
IDApCisgICAgICAgICAgICArK251bUNvbnNlY3V0aXZlWmVyb3M7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG51bUNvbnNlY3V0aXZlWmVyb3MgPSAwOworICAgIH0KKyAgICBpZiAoIWNvdW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8dWludDhfdD4gbmV3RnJhbWU7CisgICAg
bmV3RnJhbWUucmVzaXplKGZyYW1lLnNpemUoKSArIGNvdW50KTsKKyAgICBuZXdGcmFtZS5hcHBl
bmQoZnJhbWUuZGF0YSgpLCBvZmZzZXQpOworCisgICAgbnVtQ29uc2VjdXRpdmVaZXJvcyA9IDA7
CisgICAgZm9yIChzaXplX3QgaSA9IG9mZnNldDsgaSA8IGZyYW1lLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgIGF1dG8gYnl0ZSA9IGZyYW1lW2ldOworICAgICAgICBpZiAoYnl0ZSA8PSAzICYmIG51
bUNvbnNlY3V0aXZlWmVyb3MgPj0gMikgeworICAgICAgICAgICAgbnVtQ29uc2VjdXRpdmVaZXJv
cyA9IDA7CisgICAgICAgICAgICBuZXdGcmFtZS51bmNoZWNrZWRBcHBlbmQoMyk7CisgICAgICAg
IH0KKyAgICAgICAgbmV3RnJhbWUudW5jaGVja2VkQXBwZW5kKGJ5dGUpOworICAgICAgICBpZiAo
Ynl0ZSA9PSAwKQorICAgICAgICAgICAgKytudW1Db25zZWN1dGl2ZVplcm9zOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBudW1Db25zZWN1dGl2ZVplcm9zID0gMDsKKyAgICB9CisgICAgZnJh
bWUgPSBXVEZNb3ZlKG5ld0ZyYW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL0gyNjRVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9IMjY0VXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2Q3ZWM0MmNkMzk3YTQxN2Q5YjExYjY2
Yzk0OTcwY2JjNjg0ZGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9IMjY0VXRpbHMuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCX1JUQykKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitpbmxpbmUgYm9vbCBpc1NsaWNlTkFMVSh1aW50OF90IGRhdGEpCit7CisgICAgcmV0
dXJuIChkYXRhICYgMHgxRikgPT0gMTsKK30KKworaW5saW5lIGJvb2wgaXNTUFNOQUxVKHVpbnQ4
X3QgZGF0YSkKK3sKKyAgICByZXR1cm4gKGRhdGEgJiAweDFGKSA9PSA3OworfQorCitpbmxpbmUg
Ym9vbCBpc0lEUk5BTFUodWludDhfdCBkYXRhKQoreworICAgIHJldHVybiAoZGF0YSAmIDB4MUYp
ID09IDU7Cit9CisKK3N0cnVjdCBIMjY0UHJlZml4QnVmZmVyIHsKKyAgICBjb25zdCB1aW50OF90
KiBkYXRhIHsgbnVsbHB0ciB9OworICAgIHNpemVfdCBzaXplIHsgMCB9OworfTsKKworc2l6ZV90
IGNvbXB1dGVQcmVmaXhPZmZzZXQoY29uc3QgdWludDhfdCosIHNpemVfdCk7Citib29sIG5lZWRz
UmJzcFVuZXNjYXBpbmcoY29uc3QgdWludDhfdCosIHNpemVfdCk7CitWZWN0b3I8dWludDhfdD4g
ZnJvbVJic3AoY29uc3QgdWludDhfdCosIHNpemVfdCk7CitIMjY0UHJlZml4QnVmZmVyIGNvbXB1
dGVQcmVmaXhCdWZmZXIoY29uc3QgdWludDhfdCosIHNpemVfdCk7Cit2b2lkIHRvUmJzcChWZWN0
b3I8dWludDhfdD4mLCBzaXplX3QpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcAppbmRleCBlYzFkMzhl
Mzg5M2FhZTg0MDlmMDI5MDg1MmYxMTJjN2U5NGVhNTJmLi4xNTk4NTE4ZWUzYmUzMmY2NmZkOTZl
NTQwZmY4MDQ4NDZiZGUxNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCkBAIC0zMCw2ICsz
MCw4IEBACiAKICNpbmNsdWRlICJDcnlwdG9LZXlSYXcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZl
cnRCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJKU1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgiCisj
aW5jbHVkZSAiSlNSVENFbmNvZGVkVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgogI2luY2x1ZGUgIlJUQ0VuY29kZWRW
aWRlb0ZyYW1lLmgiCkBAIC00Niw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgT3B0aW9ucyBvcHRpb25zKQogICAgIDogQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCi0gICAgLCBtX3RyYW5zZm9ybWVyKFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyOjpjcmVhdGUoKSkKKyAgICAsIG1fdHJhbnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OmNyZWF0ZShvcHRpb25zLmNvbXBhdGliaWxpdHlNb2RlKSkKIHsKICAgICBtX3Ry
YW5zZm9ybWVyLT5zZXRJc0VuY3J5cHRpbmcob3B0aW9ucy5yb2xlID09IFJvbGU6OkVuY3J5cHQp
OwogICAgIG1fdHJhbnNmb3JtZXItPnNldEF1dGhlbnRpY2F0aW9uU2l6ZShvcHRpb25zLmF1dGhl
bnRpY2F0aW9uU2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaAppbmRleCBhYjQ4ZjJkMGNlZDU4MmQx
NTQyNmVhN2E3YjQwNzdlZGI0ODA4NTNmLi41ZGYzODYyZmU4NzdiYjU4OTQyYjE4OTM4NDlkNDZm
OGYwMmZkZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmgKQEAgLTI5LDExICsyOSwxMSBAQAogCiAj
aW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJKU0RPTVBy
b21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvS2V5OwotY2xhc3MgUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtZXI7CiBjbGFzcyBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOwogY2xhc3MgUmVh
ZGFibGVTdHJlYW07CiBjbGFzcyBTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZTsKQEAgLTQyLDkg
KzQyLDExIEBAIGNsYXNzIFdyaXRhYmxlU3RyZWFtOwogY2xhc3MgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtPiwgcHJpdmF0ZSBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSb2xl
IHsgRW5jcnlwdCwgRGVjcnlwdCB9OworICAgIHVzaW5nIENvbXBhdGliaWxpdHlNb2RlID0gUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OkNvbXBhdGliaWxpdHlNb2RlOwogICAgIHN0cnVjdCBPcHRp
b25zIHsKICAgICAgICAgUm9sZSByb2xlIHsgUm9sZTo6RW5jcnlwdCB9OwogICAgICAgICB1aW50
NjRfdCBhdXRoZW50aWNhdGlvblNpemUgeyAxMCB9OworICAgICAgICBDb21wYXRpYmlsaXR5TW9k
ZSBjb21wYXRpYmlsaXR5TW9kZSB7IENvbXBhdGliaWxpdHlNb2RlOjpOb25lIH07CiAgICAgfTsK
IAogICAgIHN0YXRpYyBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtPiBjcmVhdGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgT3B0aW9ucyBvcHRpb25zKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybShjb250ZXh0LCBvcHRpb25zKSk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJh
bnNmb3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtLmlkbAppbmRleCBiMzNiOTA0NDBmMTI2NGRiODg4ZjM4ZGNhMzY3YTAzY2E1
OTliMjNiLi4wZGRjYTQ0NGM4Yzc0M2Y5MDcwNDE4NTc4YzBjOThmOTMwODVkN2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5z
Zm9ybS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
RnJhbWVUcmFuc2Zvcm0uaWRsCkBAIC0yOCw5ICsyOCwxNSBAQCBlbnVtIFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybVJvbGUgewogICAgICJkZWNyeXB0IgogfTsKIAorZW51bSBSVENSdHBTRnJhbWVUcmFu
c2Zvcm1Db21wYXRpYmlsaXR5TW9kZSB7CisgICAgIm5vbmUiLAorICAgICJIMjY0IgorfTsKKwog
ZGljdGlvbmFyeSBSVENSdHBTRnJhbWVUcmFuc2Zvcm1PcHRpb25zIHsKICAgICBSVENSdHBTRnJh
bWVUcmFuc2Zvcm1Sb2xlIHJvbGUgPSAiZW5jcnlwdCI7CiAgICAgdW5zaWduZWQgbG9uZyBhdXRo
ZW50aWNhdGlvblNpemUgPSAxMDsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Db21wYXRpYmls
aXR5TW9kZSBjb21wYXRpYmlsaXR5TW9kZSA9ICJub25lIjsKIH07CiAKIFsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVU
cmFuc2Zvcm1lci5jcHAKaW5kZXggNTI0M2JiMWRlZGMzZmIzY2ViNmE0ZmRmZDBmNWJkZmE0MTBi
YTQwZS4uZTg1MWQ1ODAwYmQyODhmOTU3YWMwNDM1ODlkODlkZGI0ODIwNjNhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zv
cm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
RnJhbWVUcmFuc2Zvcm1lci5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShXRUJf
UlRDKQogCisjaW5jbHVkZSAiSDI2NFV0aWxzLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
c3RhdGljIGlubGluZSB2b2lkIHdyaXRlVUludDY0KHVpbnQ4X3QqIGRhdGEsIHVpbnQ2NF90IHZh
bHVlLCB1aW50OF90IHZhbHVlTGVuZ3RoKQpAQCAtMTMxLDEyICsxMzMsMTMgQEAgc3RhdGljIGlu
bGluZSBPcHRpb25hbDxTRnJhbWVIZWFkZXJJbmZvPiBwYXJzZVNGcmFtZUhlYWRlcihjb25zdCB1
aW50OF90KiBkYXRhLAogICAgIHJldHVybiBTRnJhbWVIZWFkZXJJbmZvIHsgaGVhZGVyU2l6ZSwg
a2V5SWQsIGNvdW50ZXIgfTsKIH0KIAotUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y3JlYXRlKCkKK1JlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZShDb21wYXRpYmlsaXR5TW9kZSBtb2Rl
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKCkp
OworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKG1vZGUp
KTsKIH0KIAotUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
KCkKK1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcihDb21w
YXRpYmlsaXR5TW9kZSBtb2RlKQorICAgIDogbV9jb21wYXRpYmlsaXR5TW9kZShtb2RlKQogewog
fQogCkBAIC0xNzcsNiArMTgwLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyOjpzZXRFbmNyeXB0aW9uS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90CiAKIEV4Y2Vw
dGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRG
cmFtZShjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNpemUpCiB7CisgICAg
VmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBpZiAobV9jb21wYXRpYmlsaXR5TW9kZSA9PSBD
b21wYXRpYmlsaXR5TW9kZTo6SDI2NCkgeworICAgICAgICBhdXRvIG9mZnNldCA9IGNvbXB1dGVQ
cmVmaXhPZmZzZXQoZnJhbWVEYXRhLCBmcmFtZVNpemUpOworICAgICAgICBmcmFtZURhdGEgKz0g
b2Zmc2V0OworICAgICAgICBmcmFtZVNpemUgLT0gb2Zmc2V0OworICAgICAgICBpZiAobmVlZHNS
YnNwVW5lc2NhcGluZyhmcmFtZURhdGEsIGZyYW1lU2l6ZSkpIHsKKyAgICAgICAgICAgIGJ1ZmZl
ciA9IGZyb21SYnNwKGZyYW1lRGF0YSwgZnJhbWVTaXplKTsKKyAgICAgICAgICAgIGZyYW1lRGF0
YSA9IGJ1ZmZlci5kYXRhKCk7CisgICAgICAgICAgICBmcmFtZVNpemUgPSBidWZmZXIuc2l6ZSgp
OworICAgICAgICB9CisgICAgfQorCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2tleUxv
Y2spOwogCiAgICAgYXV0byBoZWFkZXIgPSBwYXJzZVNGcmFtZUhlYWRlcihmcmFtZURhdGEsIGZy
YW1lU2l6ZSk7CkBAIC0yMjEsMjYgKzIzNiwzNCBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoY29uc3QgdWludDhfdAog
ewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNYXhIZWFkZXJTaXplID0gMTc7CiAKKyAgICBW
ZWN0b3I8dWludDhfdD4gdHJhbnNmb3JtZWREYXRhOworICAgIEgyNjRQcmVmaXhCdWZmZXIgcHJl
Zml4QnVmZmVyOworICAgIGlmIChtX2NvbXBhdGliaWxpdHlNb2RlID09IENvbXBhdGliaWxpdHlN
b2RlOjpIMjY0KQorICAgICAgICBwcmVmaXhCdWZmZXIgPSBjb21wdXRlUHJlZml4QnVmZmVyKGZy
YW1lRGF0YSwgZnJhbWVTaXplKTsKKwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlM
b2NrKTsKIAogICAgIGF1dG8gaXYgPSBjb21wdXRlSVYobV9jb3VudGVyLCBtX3NhbHRLZXkpOwog
Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IHRyYW5zZm9ybWVkRGF0YTsKLSAgICB0cmFuc2Zvcm1lZERh
dGEucmVzaXplKGZyYW1lU2l6ZSArIE1heEhlYWRlclNpemUgKyBtX2F1dGhlbnRpY2F0aW9uU2l6
ZSk7CisgICAgdHJhbnNmb3JtZWREYXRhLnJlc2l6ZShwcmVmaXhCdWZmZXIuc2l6ZSArIGZyYW1l
U2l6ZSArIE1heEhlYWRlclNpemUgKyBtX2F1dGhlbnRpY2F0aW9uU2l6ZSk7CiAKKyAgICBpZiAo
cHJlZml4QnVmZmVyLmRhdGEpCisgICAgICAgIHN0ZDo6bWVtY3B5KHRyYW5zZm9ybWVkRGF0YS5k
YXRhKCksIHByZWZpeEJ1ZmZlci5kYXRhLCBwcmVmaXhCdWZmZXIuc2l6ZSk7CisKKyAgICBhdXRv
KiBuZXdEYXRhUG9pbnRlciA9IHRyYW5zZm9ybWVkRGF0YS5kYXRhKCkgKyBwcmVmaXhCdWZmZXIu
c2l6ZTsKICAgICAvLyBGaWxsIGhlYWRlci4KICAgICBzaXplX3QgaGVhZGVyU2l6ZSA9IDE7Ci0g
ICAgdHJhbnNmb3JtZWREYXRhWzBdID0gY29tcHV0ZUZpcnN0SGVhZGVyQnl0ZShtX2tleUlkLCBt
X2NvdW50ZXIpOworICAgICpuZXdEYXRhUG9pbnRlciA9IGNvbXB1dGVGaXJzdEhlYWRlckJ5dGUo
bV9rZXlJZCwgbV9jb3VudGVyKTsKICAgICBpZiAobV9rZXlJZCA+PSA4KSB7CiAgICAgICAgIGF1
dG8ga2V5SWRMZW5ndGggPSBsZW5ndGhPZlVJbnQ2NChtX2tleUlkKTsKLSAgICAgICAgd3JpdGVV
SW50NjQodHJhbnNmb3JtZWREYXRhLmRhdGEoKSArIGhlYWRlclNpemUsIG1fa2V5SWQsIGtleUlk
TGVuZ3RoKTsKKyAgICAgICAgd3JpdGVVSW50NjQobmV3RGF0YVBvaW50ZXIgKyBoZWFkZXJTaXpl
LCBtX2tleUlkLCBrZXlJZExlbmd0aCk7CiAgICAgICAgIGhlYWRlclNpemUgKz0ga2V5SWRMZW5n
dGg7CiAgICAgfQogICAgIGF1dG8gY291bnRlckxlbmd0aCA9IGxlbmd0aE9mVUludDY0KG1fY291
bnRlcik7Ci0gICAgd3JpdGVVSW50NjQodHJhbnNmb3JtZWREYXRhLmRhdGEoKSArIGhlYWRlclNp
emUsIG1fY291bnRlciwgY291bnRlckxlbmd0aCk7CisgICAgd3JpdGVVSW50NjQobmV3RGF0YVBv
aW50ZXIgKyBoZWFkZXJTaXplLCBtX2NvdW50ZXIsIGNvdW50ZXJMZW5ndGgpOwogICAgIGhlYWRl
clNpemUgKz0gY291bnRlckxlbmd0aDsKIAotICAgIHRyYW5zZm9ybWVkRGF0YS5yZXNpemUoZnJh
bWVTaXplICsgaGVhZGVyU2l6ZSArIG1fYXV0aGVudGljYXRpb25TaXplKTsKKyAgICB0cmFuc2Zv
cm1lZERhdGEucmVzaXplKHByZWZpeEJ1ZmZlci5zaXplICsgZnJhbWVTaXplICsgaGVhZGVyU2l6
ZSArIG1fYXV0aGVudGljYXRpb25TaXplKTsKIAogICAgIC8vIEZpbGwgZW5jcnlwdGVkIGRhdGEK
ICAgICBhdXRvIGVuY3J5cHRlZERhdGEgPSBlbmNyeXB0RGF0YShmcmFtZURhdGEsIGZyYW1lU2l6
ZSwgaXYsIG1fZW5jcnlwdGlvbktleSk7CkBAIC0yNDgsMTEgKzI3MSwxNCBAQCBFeGNlcHRpb25P
cjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUo
Y29uc3QgdWludDhfdAogICAgIGlmIChlbmNyeXB0ZWREYXRhLmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gZW5jcnlwdGVkRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKLSAgICBzdGQ6
Om1lbWNweSh0cmFuc2Zvcm1lZERhdGEuZGF0YSgpICsgaGVhZGVyU2l6ZSwgZW5jcnlwdGVkRGF0
YS5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgZnJhbWVTaXplKTsKKyAgICBzdGQ6Om1lbWNweShuZXdE
YXRhUG9pbnRlciArIGhlYWRlclNpemUsIGVuY3J5cHRlZERhdGEucmV0dXJuVmFsdWUoKS5kYXRh
KCksIGZyYW1lU2l6ZSk7CiAKICAgICAvLyBGaWxsIHNpZ25hdHVyZQotICAgIGF1dG8gc2lnbmF0
dXJlID0gY29tcHV0ZUVuY3J5cHRlZERhdGFTaWduYXR1cmUodHJhbnNmb3JtZWREYXRhLmRhdGEo
KSwgZnJhbWVTaXplICsgaGVhZGVyU2l6ZSwgbV9hdXRoZW50aWNhdGlvbktleSk7Ci0gICAgc3Rk
OjptZW1jcHkodHJhbnNmb3JtZWREYXRhLmRhdGEoKSArIGZyYW1lU2l6ZSArIGhlYWRlclNpemUs
IHNpZ25hdHVyZS5kYXRhKCksIG1fYXV0aGVudGljYXRpb25TaXplKTsKKyAgICBhdXRvIHNpZ25h
dHVyZSA9IGNvbXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJlKG5ld0RhdGFQb2ludGVyLCBmcmFt
ZVNpemUgKyBoZWFkZXJTaXplLCBtX2F1dGhlbnRpY2F0aW9uS2V5KTsKKyAgICBzdGQ6Om1lbWNw
eShuZXdEYXRhUG9pbnRlciArIGZyYW1lU2l6ZSArIGhlYWRlclNpemUsIHNpZ25hdHVyZS5kYXRh
KCksIG1fYXV0aGVudGljYXRpb25TaXplKTsKKworICAgIGlmIChtX2NvbXBhdGliaWxpdHlNb2Rl
ID09IENvbXBhdGliaWxpdHlNb2RlOjpIMjY0KQorICAgICAgICB0b1Jic3AodHJhbnNmb3JtZWRE
YXRhLCBwcmVmaXhCdWZmZXIuc2l6ZSk7CiAKICAgICArK21fY291bnRlcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zv
cm1lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVU
cmFuc2Zvcm1lci5oCmluZGV4IGE0ZTFhYTE3NmU4NjZiNGYxNjA2ZjY5ZjY2YzI0NzRhODM0OTEz
NmUuLmViZTFkNDlmNTlhMTM3N2I2MjhjMjZhOTAyMzQzNzI1NmFmYTllOTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyLmgKQEAgLTM3LDcgKzM3LDkgQEAgY2xhc3MgQ3J5cHRvS2V5OwogCiBjbGFz
cyBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxS
VENSdHBTRnJhbWVUcmFuc2Zvcm1lciwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4gewog
cHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXI+IGNyZWF0ZSgpOworICAgIGVudW0gY2xhc3MgQ29tcGF0aWJpbGl0eU1vZGUgeyBOb25l
LCBIMjY0IH07CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyPiBjcmVhdGUoQ29tcGF0aWJpbGl0eU1vZGUpOwogICAgIFdFQkNPUkVfRVhQT1JU
IH5SVENSdHBTRnJhbWVUcmFuc2Zvcm1lcigpOwogCiAgICAgdm9pZCBzZXRJc0VuY3J5cHRpbmco
Ym9vbCk7CkBAIC01NCw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvdW50ZXIodWlu
dDY0X3QgY291bnRlcikgeyBtX2NvdW50ZXIgPSBjb3VudGVyOyB9CiAKIHByaXZhdGU6Ci0gICAg
V0VCQ09SRV9FWFBPUlQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBleHBsaWNpdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcihDb21wYXRpYmlsaXR5TW9kZSk7
CiAKICAgICBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGRlY3J5cHRGcmFtZShjb25zdCB1
aW50OF90Kiwgc2l6ZV90KTsKICAgICBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGVuY3J5
cHRGcmFtZShjb25zdCB1aW50OF90Kiwgc2l6ZV90KTsKQEAgLTc4LDYgKzgwLDcgQEAgcHJpdmF0
ZToKICAgICB1aW50NjRfdCBtX2F1dGhlbnRpY2F0aW9uU2l6ZSB7IDEwIH07CiAgICAgdWludDY0
X3QgbV9rZXlJZCB7IDAgfTsKICAgICB1aW50NjRfdCBtX2NvdW50ZXIgeyAwIH07CisgICAgQ29t
cGF0aWJpbGl0eU1vZGUgbV9jb21wYXRpYmlsaXR5TW9kZSB7IENvbXBhdGliaWxpdHlNb2RlOjpO
b25lIH07CiB9OwogCiBpbmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6c2V0SXNF
bmNyeXB0aW5nKGJvb2wgaXNFbmNyeXB0aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcApp
bmRleCBkNzRhM2E2ODMwMzZiZmE2Zjc1ZDFjMzc0ODU2ZWE2ZjQ0MGZiNzg2Li40ZjIxMTU3ZGRk
MGI5OGI0NTZkZjQ3YmU0NTFlOTgzYTJiNDFmZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
LmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQogCiAjaW5jbHVkZSAi
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5o
IgogI2luY2x1ZGUgIkpTUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaCIKICNpbmNsdWRlICJKU1JUQ0Vu
Y29kZWRWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiSlNSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNv
bnRleHQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaAppbmRleCBkYjQ0MDhiNmFlMWVhYTI1Y2Vj
ZDVhMjQwYmViMWFiYTdhYTMzM2Y2Li40YzFiYmUwYWM3MWExMDNlYWEzMDI2MzExY2VhYzY3NmM0
YjJkNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCkBAIC0yOSwxMiArMjksMTIgQEAKIAog
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisj
aW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
SlNDYWxsYmFja0RhdGFTdHJvbmc7CiBjbGFzcyBNZXNzYWdlUG9ydDsKIGNsYXNzIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dAppbmRleCA4MmRmODg3YjFiMGM0ZDRiODEyY2JmZTVhMDZkZWFlNDE4MTIwZTJiLi5kNDExZjM0
NDBlZWU5MzlhMjBkM2JmODE5YTFlMTlhNGFjNmRmOTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTQz
LDYgKzE0Myw3IEBAIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAogTW9kdWxl
cy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcAogTW9kdWxlcy9tZWRpYXNvdXJjZS9W
aWRlb1BsYXliYWNrUXVhbGl0eS5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vQ2FudmFzQ2FwdHVy
ZU1lZGlhU3RyZWFtVHJhY2suY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL0gyNjRVdGlscy5jcHAK
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmNwcAogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYURldmljZXMuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDJlN2U5ZmQyYjkxZWI4MTAxMzQ1NjBkZmZkODBhY2QyMTBiM2ZkYzAuLjcwZTU5Nzdh
ZGVjZDNhMDkzMThjMWJjNjRlNGIyMTQyYTFmMjc4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc1NjQsNiArNzU2NCw4IEBA
CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5MEEwRCAvKiBSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250
cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbURlZmF1bHRD
b250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExODlFRjcxQUQ4
MjMyODAwQjkzRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTU2NzIgLyogUmVhZGFi
bGVTdHJlYW1CWU9CUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVT
dHJlYW1CWU9CUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMjA5
RTI0MjU3QTJGQkIwMDEyMEFDQSAvKiBIMjY0VXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSDI2NFV0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
MjA5RTI2MjU3QTJGQkIwMDEyMEFDQSAvKiBIMjY0VXRpbHMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSDI2NFV0aWxzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDEyMDlFOTEyMTZENTkzQzAwQTczQTEyIC8qIFJUQ0NlcnRpZmljYXRlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENDZXJ0aWZpY2F0ZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxMjA5RTkzMjE2RDVDNzkwMEE3M0ExMiAvKiBSVENDZXJ0aWZpY2F0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENDZXJ0aWZpY2F0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTIwOUU5NDIxNkVBNjlBMDBBNzNBMTIgLyog
UlRDQ2VydGlmaWNhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UlRDQ2VydGlmaWNhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzgwMCw3
ICs3ODAyLDYgQEAKIAkJNDE5RTZFQzcyNTY2RDIxNDAwMkI1MDEwIC8qIFJUQ1BlZXJDb25uZWN0
aW9uSWNlRXJyb3JFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENQZWVyQ29ubmVjdGlvbkljZUVy
cm9yRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RTZFRDIyNTY3QkY2
OTAwMkI1MDEwIC8qIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXJDb250ZXh0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5RTZFRDUyNTY3QkY2QTAwMkI1MDEwIC8qIFJUQ1J0
cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSVENSdHBTY3JpcHRUcmFuc2Zvcm1lckNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDE5RTZFRDgyNTY3RDhEOTAwMkI1MDEwIC8qIExpYldlYlJUQ1J0cFRyYW5z
Zm9ybWFibGVGcmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
aWJXZWJSVENSdHBUcmFuc2Zvcm1hYmxlRnJhbWUuY3BwOyBwYXRoID0gbGlid2VicnRjL0xpYldl
YlJUQ1J0cFRyYW5zZm9ybWFibGVGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxOUZBRkFEMUFCQUJDRDUwMDVCMzU3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZWFkZXIu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtQllPQlJlYWRlci5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUZBRkFEMUFCQUJDRDUwMDVCODI4QiAv
KiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxQTAyM0VEMUEzOURCNzkwMEY3MjJDRiAvKiBSZWFkYWJsZVN0cmVhbS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVTdHJlYW0uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTcwNTYsNiArMTcwNTcsOCBAQAogCQkJCTQxQzdFMTA4MUU2QUEzN0Mw
MDI3QjRERSAvKiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5pZGwgKi8sCiAJCQkJOTNB
ODA2MTExRTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmggKi8sCiAJCQkJOTNBODA2MTIx
RTAzQjUxQzAwOEExRjI2IC8qIERvdWJsZVJhbmdlLmlkbCAqLywKKwkJCQk0MTIwOUUyNjI1N0Ey
RkJCMDAxMjBBQ0EgLyogSDI2NFV0aWxzLmNwcCAqLywKKwkJCQk0MTIwOUUyNDI1N0EyRkJCMDAx
MjBBQ0EgLyogSDI2NFV0aWxzLmggKi8sCiAJCQkJOTNBODA2MTMxRTAzQjUxQzAwOEExRjI2IC8q
IExvbmdSYW5nZS5oICovLAogCQkJCTkzQTgwNjE0MUUwM0I1MUMwMDhBMUYyNiAvKiBMb25nUmFu
Z2UuaWRsICovLAogCQkJCTE1OUFFODJBMUIzQTQwMkYwMDM3NDc4QiAvKiBNZWRpYURldmljZUlu
Zm8uY3BwICovLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDE2NjU3ZjdmZTU0YjYwZDgyMmM5YzQ2MTNhMTZiYWQ1ZTA5OWE0
NjQuLjA0MDMyZjIzNmQzODkxZTY2MmZlODIzZmI0M2MzZWRjOTAyODBiNGQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0xMi0wNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIGEgU0ZyYW1lIEgyNjQgZXhwZXJpbWVudGFsIGNvbXBhdGliaWxpdHkg
bW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5
NTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
ZWJydGMvdmlkZW8tc2ZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2VicnRj
L3ZpZGVvLXNmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAyMC0xMi0wMyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgKHIyNzAxNzEpIFsgaU9TIF0gaHR0cC93cHQv
bWVkaWFyZWNvcmRlci9zZXQtc3JjT2JqZWN0LU1lZGlhU3RyZWFtLUJsb2IuaHRtbCBpcyBmYWls
aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tc2ZyYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1zZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk0NGE2ZDNhYzNkMWJlYmViMTFiNWMxMjZiNTA0NzhhZTU3NGYzY2MKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tc2ZyYW1lLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQgQEAKKworCitQQVNTIFZpZGVvIGV4Y2hhbmdlIHdpdGggU0ZyYW1lCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1zZnJhbWUuaHRtbCBiL0xheW91dFRl
c3RzL3dlYnJ0Yy92aWRlby1zZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjFmYjA5ZDEwYjA0ZWI2
YWMwNDc1YWZkOWYzMjUwZGE0Y2M0MmIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2VicnRjL3ZpZGVvLXNmcmFtZS5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJs
b2NhbCIgYXV0b3BsYXkgcGxheXNJbmxpbmU+PC92aWRlbz4KKyAgICAgICAgPHZpZGVvIGlkPSJy
ZW1vdGUiIGF1dG9wbGF5IHBsYXlzSW5saW5lPjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQgc3Jj
ID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0
KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgbGV0IHNlbmRlciwgcmVjZWl2ZXI7CisgICAgY29uc3Qg
bG9jYWxTdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYSh7
dmlkZW86IHRydWV9KTsKKyAgICBjb25zdCBrZXkgPSBhd2FpdCBjcnlwdG8uc3VidGxlLmltcG9y
dEtleSgicmF3IiwgbmV3IFVpbnQ4QXJyYXkoWzE0MywgNzcsIDQzLCAxMCwgNzIsIDE5LCAzNywg
NjcsIDIzNiwgMjE5LCAyNCwgOTMsIDI2LCAxNjUsIDkxLCAxNzhdKSwgIkhLREYiLCBmYWxzZSwg
WyJkZXJpdmVCaXRzIiwgImRlcml2ZUtleSJdKTsKKyAgICBjb25zdCBzdHJlYW0gPSBhd2FpdCBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIGNyZWF0ZUNvbm5lY3Rp
b25zKChmaXJzdENvbm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHNlbmRlciA9IGZpcnN0Q29u
bmVjdGlvbi5hZGRUcmFjayhsb2NhbFN0cmVhbS5nZXRUcmFja3MoKVswXSwgbG9jYWxTdHJlYW0p
OworICAgICAgICAgICAgbGV0IHRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0o
e2NvbXBhdGliaWxpdHlNb2RlOiAiSDI2NCJ9KTsKKyAgICAgICAgICAgIHRyYW5zZm9ybS5zZXRF
bmNyeXB0aW9uS2V5KGtleSk7CisgICAgICAgICAgICBzZW5kZXIudHJhbnNmb3JtID0gdHJhbnNm
b3JtOworICAgICAgICB9LCAoc2Vjb25kQ29ubmVjdGlvbikgPT4geworICAgICAgICAgICAgc2Vj
b25kQ29ubmVjdGlvbi5vbnRyYWNrID0gKHRyYWNrRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAg
ICBsZXQgdHJhbnNmb3JtID0gbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSh7Y29tcGF0aWJpbGl0
eU1vZGU6ICJIMjY0In0pOworICAgICAgICAgICAgICAgIHRyYW5zZm9ybS5zZXRFbmNyeXB0aW9u
S2V5KGtleSk7CisgICAgICAgICAgICAgICAgcmVjZWl2ZXIgPSB0cmFja0V2ZW50LnJlY2VpdmVy
OworICAgICAgICAgICAgICAgIHJlY2VpdmVyLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKKyAgICAg
ICAgICAgICAgICByZXNvbHZlKHRyYWNrRXZlbnQuc3RyZWFtc1swXSk7CisgICAgICAgICAgICB9
OworICAgICAgICB9KTsKKyAgICAgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoIlRlc3QgdGlt
ZWQgb3V0IiksIDUwMDApOworICAgIH0pOworICAgIGxvY2FsLnNyY09iamVjdCA9IGxvY2FsU3Ry
ZWFtOworICAgIHJlbW90ZS5zcmNPYmplY3QgPSBzdHJlYW07CisgICAgYXdhaXQgcmVtb3RlLnBs
YXkoKTsKKworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIGNvbnN0IHNlbmRl
ckNvdW50ZXIgPSBpbnRlcm5hbHMuc2ZyYW1lQ291bnRlcihzZW5kZXIudHJhbnNmb3JtKTsKKyAg
ICAgICAgY29uc3QgcmVjZWl2ZXJDb3VudGVyID0gaW50ZXJuYWxzLnNmcmFtZUNvdW50ZXIocmVj
ZWl2ZXIudHJhbnNmb3JtKTsKKworICAgICAgICBsZXQgY291bnRlciA9IDA7CisgICAgICAgIHdo
aWxlIChyZWNlaXZlckNvdW50ZXIgPT09IGludGVybmFscy5zZnJhbWVDb3VudGVyKHJlY2VpdmVy
LnRyYW5zZm9ybSkgJiYgKytjb3VudGVyIDwgMTAwKQorICAgICAgICAgICAgYXdhaXQgbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CisgICAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKGludGVybmFscy5zZnJhbWVDb3VudGVyKHJlY2VpdmVyLnRyYW5zZm9ybSks
IHJlY2VpdmVyQ291bnRlciwgInJlY2VpdmVyIik7CisgICAgICAgIGFzc2VydF9ub3RfZXF1YWxz
KGludGVybmFscy5zZnJhbWVDb3VudGVyKHNlbmRlci50cmFuc2Zvcm0pLCBzZW5kZXJDb3VudGVy
LCAic2VuZGVyIik7CisgICAgfQorfSwgIlZpZGVvIGV4Y2hhbmdlIHdpdGggU0ZyYW1lIik7Cisg
ICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415413</attachid>
            <date>2020-12-04 07:21:12 -0800</date>
            <delta_ts>2020-12-04 07:55:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219532-20201204162110.patch</filename>
            <type>text/plain</type>
            <size>27031</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyODZmNjc0ODk1NjQw
ZWJmYmEyZjIyN2FjZTBjZGU3ODZmNzI5Yy4uZjNhZjU0YTA0OGM0YWVmYmI5MzEwOGZhYWVjNDIz
YTVmY2M1M2MxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTEyLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBTRnJhbWUgSDI2
NCBleHBlcmltZW50YWwgY29tcGF0aWJpbGl0eSBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gU0ZyYW1lIGNvbXBhdGliaWxpdHkgbW9k
ZSBmb3IgSC4yNjQuCisgICAgICAgIFRvIGRvIHNvLCB0aGUgZW5jcnlwdG9yIGdlbmVyYXRlcyBh
biBTRnJhbWUgYW5kIHByZWZpeGVzIGl0IHdpdGggZWl0aGVyIGEgZGVsdGEgZnJhbWUgcHJlZml4
IG9yIGEga2V5IGZyYW1lIHByZWZpeC4KKyAgICAgICAgVGhlIFNGcmFtZSBjb250ZW50IGlzIGVz
Y2FwZWQgc28gdGhhdCBpdCBpcyBjb25zaWRlcmVkIGFzIG9uZSBiaWcgTkFMVS4uCisgICAgICAg
IFRoZSBkZWNvZGVyIG9uIHRoZSBvdGhlciBoYW5kLCB1bmVzY2FwZXMgdGhlIGNvbnRlbnQsIHJl
bW92ZXMgdGhlIHByZWZpeCwgZGVjcnlwdCB0aGUgU0ZyYW1lIGNvbnRlbnQuCisKKyAgICAgICAg
VGVzdDogd2VicnRjL3ZpZGVvLXNmcmFtZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL0gyNjRVdGlscy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVBy
ZWZpeE9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpuZWVkc1Jic3BVbmVzY2FwaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmZyb21SYnNwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVQcmVm
aXhCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6dG9SYnNwKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL0gyNjRVdGlscy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2xp
Y2VOQUxVKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU1BTTkFMVSk6CisgICAgICAgIChXZWJDb3Jl
Ojppc0lEUk5BTFUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5cHRGcmFtZSk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMjAtMTItMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgT25seSB0aGUgZmlyc3Qgd2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBi
ZSBjYW5jZWxhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL0gyNjRVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0gy
NjRVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMyNTg5MTI4YzIxMWUzYzZjZjZlNGM5YmRkOTlhMTA5
OWIxZjRlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vSDI2NFV0aWxzLmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJIMjY0VXRpbHMuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3NpemVfdCBjb21wdXRlUHJlZml4T2Zmc2V0KGNvbnN0IHVpbnQ4X3QqIGZyYW1lRGF0
YSwgc2l6ZV90IGZyYW1lU2l6ZSkKK3sKKyAgICBpZiAoZnJhbWVTaXplIDwgNSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICBpZiAoaXNTbGljZU5BTFUoZnJhbWVEYXRhWzRdKSkgeworICAgICAg
ICAvLyBTa2lwIDAwIDAwIDAwIDAxLCBzbGljZSBuYWx1IGJ5dGUgYW5kIHRoZSBuZXh0IGJ5dGUu
CisgICAgICAgIHJldHVybiA2OworICAgIH0KKworICAgIGlmICghaXNTUFNOQUxVKGZyYW1lRGF0
YVs0XSkpCisgICAgICAgIHJldHVybiAwOworCisgICAgZm9yIChzaXplX3QgaSA9IDg7IGkgPCBm
cmFtZVNpemU7ICsraSkgeworICAgICAgICBpZiAoIWlzSURSTkFMVShmcmFtZURhdGFbaV0pKQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChmcmFtZURhdGFbaSAtIDRdID09IDAg
JiYgZnJhbWVEYXRhW2kgLSAzXSA9PSAwICYmIGZyYW1lRGF0YVtpIC0gMl0gPT0gMCAmJiBmcmFt
ZURhdGFbaSAtIDFdID09IDEpIHsKKyAgICAgICAgICAgIC8vIFNraXAgMDAgMDAgMDAgMDEsIElE
UiBuYWx1IGJ5dGUgYW5kIHRoZSBuZXh0IGJ5dGUuCisgICAgICAgICAgICByZXR1cm4gaSArIDI7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgbmVlZHNSYnNwVW5l
c2NhcGluZyhjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNpemUpCit7Cisg
ICAgaWYgKGZyYW1lU2l6ZSA8IDMpCisgICAgICAgIHJldHVybiAwOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgZnJhbWVTaXplIC0gMzsgKytpKSB7CisgICAgICAgIGlmIChmcmFtZURhdGFb
MF0gPT0gMCAmJiBmcmFtZURhdGFbMV0gPT0gMCAmJiBmcmFtZURhdGFbMl0gPT0gMykKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1ZlY3Rv
cjx1aW50OF90PiBmcm9tUmJzcChjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFt
ZVNpemUpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIucmVzaXpl
KGZyYW1lU2l6ZSk7CisgICAgYXV0byogZGF0YSA9IGJ1ZmZlci5kYXRhKCk7CisKKyAgICBzaXpl
X3QgY291bnRlciA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFtZVNpemUgLSAz
OyArK2kpIHsKKyAgICAgICAgaWYgKGZyYW1lRGF0YVtpXSA9PSAwICYmIGZyYW1lRGF0YVtpICsg
MV0gPT0gMCAmJiBmcmFtZURhdGFbaSArIDJdID09IDMpIHsKKyAgICAgICAgICAgIGRhdGFbY291
bnRlcisrXSA9IGZyYW1lRGF0YVtpXTsKKyAgICAgICAgICAgIGRhdGFbY291bnRlcisrXSA9IGZy
YW1lRGF0YVtpICsgMV07CisgICAgICAgICAgICAvLyBTa2lwIG5leHQgYnl0ZSB3aGljaCBpcyBk
ZWxpbWl0ZXIuCisgICAgICAgICAgICBpICs9IDI7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgZGF0YVtjb3VudGVyKytdID0gZnJhbWVEYXRhW2ldOworICAgIH0KKyAgICBmb3IgKHNpemVf
dCBpID0gZnJhbWVTaXplIC0gMzsgaSA8IGZyYW1lU2l6ZTsgKytpKQorICAgICAgICBkYXRhW2Nv
dW50ZXIrK10gPSBmcmFtZURhdGFbaV07CisKKyAgICBidWZmZXIucmVzaXplKGNvdW50ZXIpOwor
ICAgIHJldHVybiBidWZmZXI7Cit9CisKK3N0YXRpYyBjb25zdCB1aW50OF90IHByZWZpeERlbHRh
RnJhbWVbNl0gPSB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MjEsIDB4YjggfTsKK3N0YXRp
YyBjb25zdCB1aW50OF90IHByZWZpeEtleUZyYW1lWzM1XSA9IHsgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMSwgMHgyNywgMHg2NCwgMHgwMCwgMHgxZiwgMHhhYywgMHgxMywgMHgxNiwgMHg2MCwgMHgy
OCwgMHgwZiwgMHg2OCwgMHgwNiwgMHhkMCwgMHg0NCwgMHgyMywgMHgzNCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMSwgMHgyOCwgMHhkOSwgMHg0YiwgMHgwOSwgMHhjYiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMSwgMHgyNSwgMHhiOCB9OworCisvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGdl
bmVyYXRlIHRoZSBwcmVmaXggdG8gY2FycnkgdGhlIHByb2ZpbGUgYW5kIHJlc29sdXRpb24gaW5m
b3JtYXRpb24gYXMgZ2F0aGVyZWQgZnJvbSB0aGUgZnJhbWUuCitIMjY0UHJlZml4QnVmZmVyIGNv
bXB1dGVQcmVmaXhCdWZmZXIoY29uc3QgdWludDhfdCogZnJhbWVEYXRhLCBzaXplX3QgZnJhbWVT
aXplKQoreworICAgIGlmIChmcmFtZVNpemUgPCA1KQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgYm9vbCBpc0RlbHRhRnJhbWUgPSBpc1NsaWNlTkFMVShmcmFtZURhdGFbNF0pOworICAgIHJl
dHVybiBpc0RlbHRhRnJhbWUgPyBIMjY0UHJlZml4QnVmZmVyIHsgcHJlZml4RGVsdGFGcmFtZSwg
c2l6ZW9mKHByZWZpeERlbHRhRnJhbWUpIH0gOiBIMjY0UHJlZml4QnVmZmVyIHsgcHJlZml4S2V5
RnJhbWUsIHNpemVvZihwcmVmaXhLZXlGcmFtZSkgfTsKK30KKwordm9pZCB0b1Jic3AoVmVjdG9y
PHVpbnQ4X3Q+JiBmcmFtZSwgc2l6ZV90IG9mZnNldCkKK3sKKyAgICBzaXplX3QgY291bnQgPSAw
OworICAgIHNpemVfdCBudW1Db25zZWN1dGl2ZVplcm9zID0gMDsKKyAgICBhdXRvKiBkYXRhID0g
ZnJhbWUuZGF0YSgpOworICAgIGZvciAoc2l6ZV90IGkgPSBvZmZzZXQ7IGkgPCBmcmFtZS5zaXpl
KCk7ICsraSkgeworICAgICAgICBpZiAoZGF0YVtpXSA8PSAzICYmIG51bUNvbnNlY3V0aXZlWmVy
b3MgPj0gMikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIG51bUNvbnNlY3V0
aXZlWmVyb3MgPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChkYXRhW2ldID09IDApCisgICAg
ICAgICAgICArK251bUNvbnNlY3V0aXZlWmVyb3M7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG51bUNvbnNlY3V0aXZlWmVyb3MgPSAwOworICAgIH0KKyAgICBpZiAoIWNvdW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBWZWN0b3I8dWludDhfdD4gbmV3RnJhbWU7CisgICAgbmV3RnJhbWUu
cmVzaXplKGZyYW1lLnNpemUoKSArIGNvdW50KTsKKyAgICBuZXdGcmFtZS5hcHBlbmQoZnJhbWUu
ZGF0YSgpLCBvZmZzZXQpOworCisgICAgbnVtQ29uc2VjdXRpdmVaZXJvcyA9IDA7CisgICAgZm9y
IChzaXplX3QgaSA9IG9mZnNldDsgaSA8IGZyYW1lLnNpemUoKTsgKytpKSB7CisgICAgICAgIGF1
dG8gYnl0ZSA9IGZyYW1lW2ldOworICAgICAgICBpZiAoYnl0ZSA8PSAzICYmIG51bUNvbnNlY3V0
aXZlWmVyb3MgPj0gMikgeworICAgICAgICAgICAgbnVtQ29uc2VjdXRpdmVaZXJvcyA9IDA7Cisg
ICAgICAgICAgICBuZXdGcmFtZS51bmNoZWNrZWRBcHBlbmQoMyk7CisgICAgICAgIH0KKyAgICAg
ICAgbmV3RnJhbWUudW5jaGVja2VkQXBwZW5kKGJ5dGUpOworICAgICAgICBpZiAoYnl0ZSA9PSAw
KQorICAgICAgICAgICAgKytudW1Db25zZWN1dGl2ZVplcm9zOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBudW1Db25zZWN1dGl2ZVplcm9zID0gMDsKKyAgICB9CisgICAgZnJhbWUgPSBXVEZN
b3ZlKG5ld0ZyYW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0gyNjRVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9I
MjY0VXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2Q3ZWM0MmNkMzk3YTQxN2Q5YjExYjY2Yzk0OTcwY2Jj
Njg0ZGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9IMjY0VXRpbHMuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX1JU
QykKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitp
bmxpbmUgYm9vbCBpc1NsaWNlTkFMVSh1aW50OF90IGRhdGEpCit7CisgICAgcmV0dXJuIChkYXRh
ICYgMHgxRikgPT0gMTsKK30KKworaW5saW5lIGJvb2wgaXNTUFNOQUxVKHVpbnQ4X3QgZGF0YSkK
K3sKKyAgICByZXR1cm4gKGRhdGEgJiAweDFGKSA9PSA3OworfQorCitpbmxpbmUgYm9vbCBpc0lE
Uk5BTFUodWludDhfdCBkYXRhKQoreworICAgIHJldHVybiAoZGF0YSAmIDB4MUYpID09IDU7Cit9
CisKK3N0cnVjdCBIMjY0UHJlZml4QnVmZmVyIHsKKyAgICBjb25zdCB1aW50OF90KiBkYXRhIHsg
bnVsbHB0ciB9OworICAgIHNpemVfdCBzaXplIHsgMCB9OworfTsKKworc2l6ZV90IGNvbXB1dGVQ
cmVmaXhPZmZzZXQoY29uc3QgdWludDhfdCosIHNpemVfdCk7Citib29sIG5lZWRzUmJzcFVuZXNj
YXBpbmcoY29uc3QgdWludDhfdCosIHNpemVfdCk7CitWZWN0b3I8dWludDhfdD4gZnJvbVJic3Ao
Y29uc3QgdWludDhfdCosIHNpemVfdCk7CitIMjY0UHJlZml4QnVmZmVyIGNvbXB1dGVQcmVmaXhC
dWZmZXIoY29uc3QgdWludDhfdCosIHNpemVfdCk7Cit2b2lkIHRvUmJzcChWZWN0b3I8dWludDhf
dD4mLCBzaXplX3QpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcAppbmRleCBlYzFkMzhlMzg5M2FhZTg0
MDlmMDI5MDg1MmYxMTJjN2U5NGVhNTJmLi4xNTk4NTE4ZWUzYmUzMmY2NmZkOTZlNTQwZmY4MDQ4
NDZiZGUxNjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uY3BwCkBAIC0zMCw2ICszMCw4IEBACiAK
ICNpbmNsdWRlICJDcnlwdG9LZXlSYXcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJT
b3VyY2UuaCIKKyNpbmNsdWRlICJKU1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgiCisjaW5jbHVkZSAi
SlNSVENFbmNvZGVkVmlkZW9GcmFtZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgogI2luY2x1ZGUgIlJUQ0VuY29kZWRWaWRlb0ZyYW1l
LmgiCkBAIC00Niw3ICs0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgT3B0aW9ucyBvcHRpb25zKQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIoJmNvbnRleHQpCi0gICAgLCBtX3RyYW5zZm9ybWVyKFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
OjpjcmVhdGUoKSkKKyAgICAsIG1fdHJhbnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6
OmNyZWF0ZShvcHRpb25zLmNvbXBhdGliaWxpdHlNb2RlKSkKIHsKICAgICBtX3RyYW5zZm9ybWVy
LT5zZXRJc0VuY3J5cHRpbmcob3B0aW9ucy5yb2xlID09IFJvbGU6OkVuY3J5cHQpOwogICAgIG1f
dHJhbnNmb3JtZXItPnNldEF1dGhlbnRpY2F0aW9uU2l6ZShvcHRpb25zLmF1dGhlbnRpY2F0aW9u
U2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaAppbmRleCBhYjQ4ZjJkMGNlZDU4MmQxNTQyNmVhN2E3
YjQwNzdlZGI0ODA4NTNmLi41ZGYzODYyZmU4NzdiYjU4OTQyYjE4OTM4NDlkNDZmOGYwMmZkZGZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNG
cmFtZVRyYW5zZm9ybS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmgKQEAgLTI5LDExICsyOSwxMSBAQAogCiAjaW5jbHVkZSAi
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZl
cnJlZC5oIgorI2luY2x1ZGUgIlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvS2V5OwotY2xhc3MgUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXI7CiBjbGFzcyBSVENSdHBUcmFuc2Zvcm1CYWNrZW5kOwogY2xhc3MgUmVhZGFibGVTdHJl
YW07CiBjbGFzcyBTaW1wbGVSZWFkYWJsZVN0cmVhbVNvdXJjZTsKQEAgLTQyLDkgKzQyLDExIEBA
IGNsYXNzIFdyaXRhYmxlU3RyZWFtOwogY2xhc3MgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIDogcHVi
bGljIFJlZkNvdW50ZWQ8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtPiwgcHJpdmF0ZSBDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBSb2xlIHsgRW5jcnlw
dCwgRGVjcnlwdCB9OworICAgIHVzaW5nIENvbXBhdGliaWxpdHlNb2RlID0gUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXI6OkNvbXBhdGliaWxpdHlNb2RlOwogICAgIHN0cnVjdCBPcHRpb25zIHsKICAg
ICAgICAgUm9sZSByb2xlIHsgUm9sZTo6RW5jcnlwdCB9OwogICAgICAgICB1aW50NjRfdCBhdXRo
ZW50aWNhdGlvblNpemUgeyAxMCB9OworICAgICAgICBDb21wYXRpYmlsaXR5TW9kZSBjb21wYXRp
YmlsaXR5TW9kZSB7IENvbXBhdGliaWxpdHlNb2RlOjpOb25lIH07CiAgICAgfTsKIAogICAgIHN0
YXRpYyBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgT3B0aW9ucyBvcHRpb25zKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybShjb250ZXh0LCBvcHRpb25zKSk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtLmlkbAppbmRleCBiMzNiOTA0NDBmMTI2NGRiODg4ZjM4ZGNhMzY3YTAzY2E1OTliMjNiLi4w
ZGRjYTQ0NGM4Yzc0M2Y5MDcwNDE4NTc4YzBjOThmOTMwODVkN2FmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFu
c2Zvcm0uaWRsCkBAIC0yOCw5ICsyOCwxNSBAQCBlbnVtIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybVJv
bGUgewogICAgICJkZWNyeXB0IgogfTsKIAorZW51bSBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Db21w
YXRpYmlsaXR5TW9kZSB7CisgICAgIm5vbmUiLAorICAgICJIMjY0IgorfTsKKwogZGljdGlvbmFy
eSBSVENSdHBTRnJhbWVUcmFuc2Zvcm1PcHRpb25zIHsKICAgICBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1Sb2xlIHJvbGUgPSAiZW5jcnlwdCI7CiAgICAgdW5zaWduZWQgbG9uZyBhdXRoZW50aWNhdGlv
blNpemUgPSAxMDsKKyAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Db21wYXRpYmlsaXR5TW9kZSBj
b21wYXRpYmlsaXR5TW9kZSA9ICJub25lIjsKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1l
ci5jcHAKaW5kZXggNTI0M2JiMWRlZGMzZmIzY2ViNmE0ZmRmZDBmNWJkZmE0MTBiYTQwZS4uZTg1
MWQ1ODAwYmQyODhmOTU3YWMwNDM1ODlkODlkZGI0ODIwNjNhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFu
c2Zvcm1lci5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShXRUJfUlRDKQogCisj
aW5jbHVkZSAiSDI2NFV0aWxzLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGlu
bGluZSB2b2lkIHdyaXRlVUludDY0KHVpbnQ4X3QqIGRhdGEsIHVpbnQ2NF90IHZhbHVlLCB1aW50
OF90IHZhbHVlTGVuZ3RoKQpAQCAtMTMxLDEyICsxMzMsMTMgQEAgc3RhdGljIGlubGluZSBPcHRp
b25hbDxTRnJhbWVIZWFkZXJJbmZvPiBwYXJzZVNGcmFtZUhlYWRlcihjb25zdCB1aW50OF90KiBk
YXRhLAogICAgIHJldHVybiBTRnJhbWVIZWFkZXJJbmZvIHsgaGVhZGVyU2l6ZSwga2V5SWQsIGNv
dW50ZXIgfTsKIH0KIAotUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBSVENSdHBTRnJhbWVU
cmFuc2Zvcm1lcjo6Y3JlYXRlKCkKK1JlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcj4gUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZShDb21wYXRpYmlsaXR5TW9kZSBtb2RlKQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKG1vZGUpKTsKIH0KIAot
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKCkKK1JUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcihDb21wYXRpYmlsaXR5
TW9kZSBtb2RlKQorICAgIDogbV9jb21wYXRpYmlsaXR5TW9kZShtb2RlKQogewogfQogCkBAIC0x
NzcsNiArMTgwLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
OjpzZXRFbmNyeXB0aW9uS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90CiAKIEV4Y2VwdGlvbk9yPFZl
Y3Rvcjx1aW50OF90Pj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25z
dCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNpemUpCiB7CisgICAgVmVjdG9yPHVp
bnQ4X3Q+IGJ1ZmZlcjsKKyAgICBpZiAobV9jb21wYXRpYmlsaXR5TW9kZSA9PSBDb21wYXRpYmls
aXR5TW9kZTo6SDI2NCkgeworICAgICAgICBhdXRvIG9mZnNldCA9IGNvbXB1dGVQcmVmaXhPZmZz
ZXQoZnJhbWVEYXRhLCBmcmFtZVNpemUpOworICAgICAgICBmcmFtZURhdGEgKz0gb2Zmc2V0Owor
ICAgICAgICBmcmFtZVNpemUgLT0gb2Zmc2V0OworICAgICAgICBpZiAobmVlZHNSYnNwVW5lc2Nh
cGluZyhmcmFtZURhdGEsIGZyYW1lU2l6ZSkpIHsKKyAgICAgICAgICAgIGJ1ZmZlciA9IGZyb21S
YnNwKGZyYW1lRGF0YSwgZnJhbWVTaXplKTsKKyAgICAgICAgICAgIGZyYW1lRGF0YSA9IGJ1ZmZl
ci5kYXRhKCk7CisgICAgICAgICAgICBmcmFtZVNpemUgPSBidWZmZXIuc2l6ZSgpOworICAgICAg
ICB9CisgICAgfQorCiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2tleUxvY2spOwogCiAg
ICAgYXV0byBoZWFkZXIgPSBwYXJzZVNGcmFtZUhlYWRlcihmcmFtZURhdGEsIGZyYW1lU2l6ZSk7
CkBAIC0yMjEsMjYgKzIzNiwzNCBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoY29uc3QgdWludDhfdAogewogICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBNYXhIZWFkZXJTaXplID0gMTc7CiAKKyAgICBWZWN0b3I8dWlu
dDhfdD4gdHJhbnNmb3JtZWREYXRhOworICAgIEgyNjRQcmVmaXhCdWZmZXIgcHJlZml4QnVmZmVy
OworICAgIGlmIChtX2NvbXBhdGliaWxpdHlNb2RlID09IENvbXBhdGliaWxpdHlNb2RlOjpIMjY0
KQorICAgICAgICBwcmVmaXhCdWZmZXIgPSBjb21wdXRlUHJlZml4QnVmZmVyKGZyYW1lRGF0YSwg
ZnJhbWVTaXplKTsKKwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlMb2NrKTsKIAog
ICAgIGF1dG8gaXYgPSBjb21wdXRlSVYobV9jb3VudGVyLCBtX3NhbHRLZXkpOwogCi0gICAgVmVj
dG9yPHVpbnQ4X3Q+IHRyYW5zZm9ybWVkRGF0YTsKLSAgICB0cmFuc2Zvcm1lZERhdGEucmVzaXpl
KGZyYW1lU2l6ZSArIE1heEhlYWRlclNpemUgKyBtX2F1dGhlbnRpY2F0aW9uU2l6ZSk7CisgICAg
dHJhbnNmb3JtZWREYXRhLnJlc2l6ZShwcmVmaXhCdWZmZXIuc2l6ZSArIGZyYW1lU2l6ZSArIE1h
eEhlYWRlclNpemUgKyBtX2F1dGhlbnRpY2F0aW9uU2l6ZSk7CiAKKyAgICBpZiAocHJlZml4QnVm
ZmVyLmRhdGEpCisgICAgICAgIHN0ZDo6bWVtY3B5KHRyYW5zZm9ybWVkRGF0YS5kYXRhKCksIHBy
ZWZpeEJ1ZmZlci5kYXRhLCBwcmVmaXhCdWZmZXIuc2l6ZSk7CisKKyAgICBhdXRvKiBuZXdEYXRh
UG9pbnRlciA9IHRyYW5zZm9ybWVkRGF0YS5kYXRhKCkgKyBwcmVmaXhCdWZmZXIuc2l6ZTsKICAg
ICAvLyBGaWxsIGhlYWRlci4KICAgICBzaXplX3QgaGVhZGVyU2l6ZSA9IDE7Ci0gICAgdHJhbnNm
b3JtZWREYXRhWzBdID0gY29tcHV0ZUZpcnN0SGVhZGVyQnl0ZShtX2tleUlkLCBtX2NvdW50ZXIp
OworICAgICpuZXdEYXRhUG9pbnRlciA9IGNvbXB1dGVGaXJzdEhlYWRlckJ5dGUobV9rZXlJZCwg
bV9jb3VudGVyKTsKICAgICBpZiAobV9rZXlJZCA+PSA4KSB7CiAgICAgICAgIGF1dG8ga2V5SWRM
ZW5ndGggPSBsZW5ndGhPZlVJbnQ2NChtX2tleUlkKTsKLSAgICAgICAgd3JpdGVVSW50NjQodHJh
bnNmb3JtZWREYXRhLmRhdGEoKSArIGhlYWRlclNpemUsIG1fa2V5SWQsIGtleUlkTGVuZ3RoKTsK
KyAgICAgICAgd3JpdGVVSW50NjQobmV3RGF0YVBvaW50ZXIgKyBoZWFkZXJTaXplLCBtX2tleUlk
LCBrZXlJZExlbmd0aCk7CiAgICAgICAgIGhlYWRlclNpemUgKz0ga2V5SWRMZW5ndGg7CiAgICAg
fQogICAgIGF1dG8gY291bnRlckxlbmd0aCA9IGxlbmd0aE9mVUludDY0KG1fY291bnRlcik7Ci0g
ICAgd3JpdGVVSW50NjQodHJhbnNmb3JtZWREYXRhLmRhdGEoKSArIGhlYWRlclNpemUsIG1fY291
bnRlciwgY291bnRlckxlbmd0aCk7CisgICAgd3JpdGVVSW50NjQobmV3RGF0YVBvaW50ZXIgKyBo
ZWFkZXJTaXplLCBtX2NvdW50ZXIsIGNvdW50ZXJMZW5ndGgpOwogICAgIGhlYWRlclNpemUgKz0g
Y291bnRlckxlbmd0aDsKIAotICAgIHRyYW5zZm9ybWVkRGF0YS5yZXNpemUoZnJhbWVTaXplICsg
aGVhZGVyU2l6ZSArIG1fYXV0aGVudGljYXRpb25TaXplKTsKKyAgICB0cmFuc2Zvcm1lZERhdGEu
cmVzaXplKHByZWZpeEJ1ZmZlci5zaXplICsgZnJhbWVTaXplICsgaGVhZGVyU2l6ZSArIG1fYXV0
aGVudGljYXRpb25TaXplKTsKIAogICAgIC8vIEZpbGwgZW5jcnlwdGVkIGRhdGEKICAgICBhdXRv
IGVuY3J5cHRlZERhdGEgPSBlbmNyeXB0RGF0YShmcmFtZURhdGEsIGZyYW1lU2l6ZSwgaXYsIG1f
ZW5jcnlwdGlvbktleSk7CkBAIC0yNDgsMTEgKzI3MSwxNCBAQCBFeGNlcHRpb25PcjxWZWN0b3I8
dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoY29uc3QgdWlu
dDhfdAogICAgIGlmIChlbmNyeXB0ZWREYXRhLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4gZW5jcnlwdGVkRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKLSAgICBzdGQ6Om1lbWNweSh0
cmFuc2Zvcm1lZERhdGEuZGF0YSgpICsgaGVhZGVyU2l6ZSwgZW5jcnlwdGVkRGF0YS5yZXR1cm5W
YWx1ZSgpLmRhdGEoKSwgZnJhbWVTaXplKTsKKyAgICBzdGQ6Om1lbWNweShuZXdEYXRhUG9pbnRl
ciArIGhlYWRlclNpemUsIGVuY3J5cHRlZERhdGEucmV0dXJuVmFsdWUoKS5kYXRhKCksIGZyYW1l
U2l6ZSk7CiAKICAgICAvLyBGaWxsIHNpZ25hdHVyZQotICAgIGF1dG8gc2lnbmF0dXJlID0gY29t
cHV0ZUVuY3J5cHRlZERhdGFTaWduYXR1cmUodHJhbnNmb3JtZWREYXRhLmRhdGEoKSwgZnJhbWVT
aXplICsgaGVhZGVyU2l6ZSwgbV9hdXRoZW50aWNhdGlvbktleSk7Ci0gICAgc3RkOjptZW1jcHko
dHJhbnNmb3JtZWREYXRhLmRhdGEoKSArIGZyYW1lU2l6ZSArIGhlYWRlclNpemUsIHNpZ25hdHVy
ZS5kYXRhKCksIG1fYXV0aGVudGljYXRpb25TaXplKTsKKyAgICBhdXRvIHNpZ25hdHVyZSA9IGNv
bXB1dGVFbmNyeXB0ZWREYXRhU2lnbmF0dXJlKG5ld0RhdGFQb2ludGVyLCBmcmFtZVNpemUgKyBo
ZWFkZXJTaXplLCBtX2F1dGhlbnRpY2F0aW9uS2V5KTsKKyAgICBzdGQ6Om1lbWNweShuZXdEYXRh
UG9pbnRlciArIGZyYW1lU2l6ZSArIGhlYWRlclNpemUsIHNpZ25hdHVyZS5kYXRhKCksIG1fYXV0
aGVudGljYXRpb25TaXplKTsKKworICAgIGlmIChtX2NvbXBhdGliaWxpdHlNb2RlID09IENvbXBh
dGliaWxpdHlNb2RlOjpIMjY0KQorICAgICAgICB0b1Jic3AodHJhbnNmb3JtZWREYXRhLCBwcmVm
aXhCdWZmZXIuc2l6ZSk7CiAKICAgICArK21fY291bnRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1l
ci5oCmluZGV4IGE0ZTFhYTE3NmU4NjZiNGYxNjA2ZjY5ZjY2YzI0NzRhODM0OTEzNmUuLmRlMjNi
ZDhlYWZiMGU4ZjM4MDU5YTgwMDJjOGZmNmEwOTIyMjQxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyLmgKQEAgLTM3LDcgKzM3LDkgQEAgY2xhc3MgQ3J5cHRvS2V5OwogCiBjbGFzcyBSVENSdHBT
RnJhbWVUcmFuc2Zvcm1lciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lciwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4gewogcHVibGljOgot
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IGNy
ZWF0ZSgpOworICAgIGVudW0gY2xhc3MgQ29tcGF0aWJpbGl0eU1vZGUgeyBOb25lLCBIMjY0IH07
CisKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
PiBjcmVhdGUoQ29tcGF0aWJpbGl0eU1vZGUgPSBDb21wYXRpYmlsaXR5TW9kZTo6Tm9uZSk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgflJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKCk7CiAKICAgICB2b2lk
IHNldElzRW5jcnlwdGluZyhib29sKTsKQEAgLTU0LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0Q291bnRlcih1aW50NjRfdCBjb3VudGVyKSB7IG1fY291bnRlciA9IGNvdW50ZXI7IH0K
IAogcHJpdmF0ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcigp
OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKENv
bXBhdGliaWxpdHlNb2RlKTsKIAogICAgIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZGVj
cnlwdEZyYW1lKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOwogICAgIEV4Y2VwdGlvbk9yPFZlY3Rv
cjx1aW50OF90Pj4gZW5jcnlwdEZyYW1lKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOwpAQCAtNzgs
NiArODAsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fYXV0aGVudGljYXRpb25TaXplIHsg
MTAgfTsKICAgICB1aW50NjRfdCBtX2tleUlkIHsgMCB9OwogICAgIHVpbnQ2NF90IG1fY291bnRl
ciB7IDAgfTsKKyAgICBDb21wYXRpYmlsaXR5TW9kZSBtX2NvbXBhdGliaWxpdHlNb2RlIHsgQ29t
cGF0aWJpbGl0eU1vZGU6Ok5vbmUgfTsKIH07CiAKIGlubGluZSB2b2lkIFJUQ1J0cFNGcmFtZVRy
YW5zZm9ybWVyOjpzZXRJc0VuY3J5cHRpbmcoYm9vbCBpc0VuY3J5cHRpbmcpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9y
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0
VHJhbnNmb3JtZXIuY3BwCmluZGV4IGQ3NGEzYTY4MzAzNmJmYTZmNzVkMWMzNzQ4NTZlYTZmNDQw
ZmI3ODYuLjRmMjExNTdkZGQwYjk4YjQ1NmRmNDdiZTQ1MWU5ODNhMmI0MWZkMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNm
b3JtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKFdFQl9S
VEMpCiAKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIgotI2luY2x1ZGUg
IkpTQ2FsbGJhY2tEYXRhLmgiCiAjaW5jbHVkZSAiSlNSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgog
I2luY2x1ZGUgIkpTUlRDRW5jb2RlZFZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJKU1JUQ1J0cFNj
cmlwdFRyYW5zZm9ybWVyQ29udGV4dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCmluZGV4IGRi
NDQwOGI2YWUxZWFhMjVjZWNkNWEyNDBiZWIxYWJhN2FhMzMzZjYuLjRjMWJiZTBhYzcxYTEwM2Vh
YTMwMjYzMTFjZWFjNjc2YzRiMmQ0MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKQEAgLTI5
LDEyICsyOSwxMiBAQAogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJKU0NhbGxiYWNrRGF0YS5oIgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBKU0NhbGxiYWNrRGF0YVN0cm9uZzsKIGNsYXNzIE1lc3NhZ2VQb3J0
OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJh
Y2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDgyYzlkMjQ2M2M1N2VhMDE3N2UwYmU0MDk5YWVmYzIw
YWVkYTQzMjkuLjBhMjE4NzJlYTBmNDUwMmFmN2IzOTczOWIyODM2MDlmOTIwMTczZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xNDMsNiArMTQzLDcgQEAgTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwCiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCiBNb2R1
bGVzL21lZGlhc291cmNlL1ZpZGVvUGxheWJhY2tRdWFsaXR5LmNwcAogTW9kdWxlcy9tZWRpYXN0
cmVhbS9DYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAKK01vZHVsZXMvbWVkaWFzdHJl
YW0vSDI2NFV0aWxzLmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uY3Bw
CiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjcyYTE2NjBhNWQ5ZmY4MDEzYjY5YWJiYjZhM2FhYTc4
YjliZTFmMS4uOTYxMWJlODFiNGE0ZGExYzRhYWJiY2JmZDc3YzA4NmVlNWY2YWJlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NzU2NSw2ICs3NTY1LDggQEAKIAkJNDExODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxl
U3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRh
YmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJv
bGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJv
bGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgw
MEI5NTY3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNDEyMDlFMjQyNTdBMkZCQjAwMTIwQUNBIC8qIEgyNjRVdGlscy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIMjY0VXRpbHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDEyMDlFMjYyNTdBMkZCQjAwMTIwQUNBIC8qIEgyNjRVdGlscy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIMjY0VXRpbHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTIwOUU5MTIxNkQ1OTNDMDBBNzNBMTIgLyogUlRD
Q2VydGlmaWNhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ0NlcnRpZmljYXRlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyMDlFOTMyMTZENUM3OTAwQTczQTEy
IC8qIFJUQ0NlcnRpZmljYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJU
Q0NlcnRpZmljYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjA5RTk0MjE2
RUE2OUEwMEE3M0ExMiAvKiBSVENDZXJ0aWZpY2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSVENDZXJ0aWZpY2F0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xNzA1Nyw2ICsxNzA1OSw4IEBACiAJCQkJNDFDN0UxMDgxRTZBQTM3QzAwMjdC
NERFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmlkbCAqLywKIAkJCQk5M0E4MDYx
MTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCAqLywKIAkJCQk5M0E4MDYxMjFFMDNC
NTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovLAorCQkJCTQxMjA5RTI2MjU3QTJGQkIw
MDEyMEFDQSAvKiBIMjY0VXRpbHMuY3BwICovLAorCQkJCTQxMjA5RTI0MjU3QTJGQkIwMDEyMEFD
QSAvKiBIMjY0VXRpbHMuaCAqLywKIAkJCQk5M0E4MDYxMzFFMDNCNTFDMDA4QTFGMjYgLyogTG9u
Z1JhbmdlLmggKi8sCiAJCQkJOTNBODA2MTQxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5p
ZGwgKi8sCiAJCQkJMTU5QUU4MkExQjNBNDAyRjAwMzc0NzhCIC8qIE1lZGlhRGV2aWNlSW5mby5j
cHAgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZjQwNzhmYzhhZWM0NWM4ZTYyYTZjMGE4MGJkYzZlNmI2YTlmNzY2Yy4u
ZWNiODkyNTQyYmIzNDFlOGI4YjNjOGZmM2ZjNTlhMmRmZTU5N2EwYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTEyLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgYSBTRnJhbWUgSDI2NCBleHBlcmltZW50YWwgY29tcGF0aWJpbGl0eSBtb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk1MzIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0
Yy92aWRlby1zZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdmlk
ZW8tc2ZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50
IGluIGEgZ2VzdHVyZSBzaG91bGQgYmUgY2FuY2VsYWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2VicnRjL3ZpZGVvLXNmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMv
dmlkZW8tc2ZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDRhNmQzYWMzZDFiZWJlYjEx
YjVjMTI2YjUwNDc4YWU1NzRmM2NjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
cnRjL3ZpZGVvLXNmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBW
aWRlbyBleGNoYW5nZSB3aXRoIFNGcmFtZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJy
dGMvdmlkZW8tc2ZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tc2ZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDYxZmIwOWQxMGIwNGViNmFjMDQ3NWFmZDlmMzI1MGRhNGNjNDJiMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1zZnJhbWUuaHRtbApA
QCAtMCwwICsxLDUxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAg
ICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+Cisg
ICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0ibG9jYWwiIGF1dG9wbGF5IHBsYXlzSW5saW5l
PjwvdmlkZW8+CisgICAgICAgIDx2aWRlbyBpZD0icmVtb3RlIiBhdXRvcGxheSBwbGF5c0lubGlu
ZT48L3ZpZGVvPgorICAgICAgICA8c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGxl
dCBzZW5kZXIsIHJlY2VpdmVyOworICAgIGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdh
dG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7CisgICAgY29uc3Qg
a2V5ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5
KFsxNDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwgMjQsIDkzLCAyNiwg
MTY1LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0cyIsICJkZXJpdmVLZXki
XSk7CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7
CisgICAgICAgICAgICBzZW5kZXIgPSBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sobG9jYWxTdHJl
YW0uZ2V0VHJhY2tzKClbMF0sIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgIGxldCB0cmFuc2Zv
cm0gPSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKHtjb21wYXRpYmlsaXR5TW9kZTogIkgyNjQi
fSk7CisgICAgICAgICAgICB0cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworICAgICAg
ICAgICAgc2VuZGVyLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKKyAgICAgICAgfSwgKHNlY29uZENv
bm5lY3Rpb24pID0+IHsKKyAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0
cmFja0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgbGV0IHRyYW5zZm9ybSA9IG5ldyBSVENS
dHBTRnJhbWVUcmFuc2Zvcm0oe2NvbXBhdGliaWxpdHlNb2RlOiAiSDI2NCJ9KTsKKyAgICAgICAg
ICAgICAgICB0cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworICAgICAgICAgICAgICAg
IHJlY2VpdmVyID0gdHJhY2tFdmVudC5yZWNlaXZlcjsKKyAgICAgICAgICAgICAgICByZWNlaXZl
ci50cmFuc2Zvcm0gPSB0cmFuc2Zvcm07CisgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2
ZW50LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIHNl
dFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsK
KyAgICBsb2NhbC5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICByZW1vdGUuc3JjT2JqZWN0
ID0gc3RyZWFtOworICAgIGF3YWl0IHJlbW90ZS5wbGF5KCk7CisKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICBjb25zdCBzZW5kZXJDb3VudGVyID0gaW50ZXJuYWxzLnNmcmFt
ZUNvdW50ZXIoc2VuZGVyLnRyYW5zZm9ybSk7CisgICAgICAgIGNvbnN0IHJlY2VpdmVyQ291bnRl
ciA9IGludGVybmFscy5zZnJhbWVDb3VudGVyKHJlY2VpdmVyLnRyYW5zZm9ybSk7CisKKyAgICAg
ICAgbGV0IGNvdW50ZXIgPSAwOworICAgICAgICB3aGlsZSAocmVjZWl2ZXJDb3VudGVyID09PSBp
bnRlcm5hbHMuc2ZyYW1lQ291bnRlcihyZWNlaXZlci50cmFuc2Zvcm0pICYmICsrY291bnRlciA8
IDEwMCkKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91
dChyZXNvbHZlLCA1MCkpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhpbnRlcm5hbHMuc2Zy
YW1lQ291bnRlcihyZWNlaXZlci50cmFuc2Zvcm0pLCByZWNlaXZlckNvdW50ZXIsICJyZWNlaXZl
ciIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhpbnRlcm5hbHMuc2ZyYW1lQ291bnRlcihz
ZW5kZXIudHJhbnNmb3JtKSwgc2VuZGVyQ291bnRlciwgInNlbmRlciIpOworICAgIH0KK30sICJW
aWRlbyBleGNoYW5nZSB3aXRoIFNGcmFtZSIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="432626"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415415</attachid>
            <date>2020-12-04 07:44:16 -0800</date>
            <delta_ts>2020-12-07 02:42:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219532-20201204164414.patch</filename>
            <type>text/plain</type>
            <size>27637</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyODZmNjc0ODk1NjQw
ZWJmYmEyZjIyN2FjZTBjZGU3ODZmNzI5Yy4uZjNhZjU0YTA0OGM0YWVmYmI5MzEwOGZhYWVjNDIz
YTVmY2M1M2MxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTEyLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBTRnJhbWUgSDI2
NCBleHBlcmltZW50YWwgY29tcGF0aWJpbGl0eSBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gU0ZyYW1lIGNvbXBhdGliaWxpdHkgbW9k
ZSBmb3IgSC4yNjQuCisgICAgICAgIFRvIGRvIHNvLCB0aGUgZW5jcnlwdG9yIGdlbmVyYXRlcyBh
biBTRnJhbWUgYW5kIHByZWZpeGVzIGl0IHdpdGggZWl0aGVyIGEgZGVsdGEgZnJhbWUgcHJlZml4
IG9yIGEga2V5IGZyYW1lIHByZWZpeC4KKyAgICAgICAgVGhlIFNGcmFtZSBjb250ZW50IGlzIGVz
Y2FwZWQgc28gdGhhdCBpdCBpcyBjb25zaWRlcmVkIGFzIG9uZSBiaWcgTkFMVS4uCisgICAgICAg
IFRoZSBkZWNvZGVyIG9uIHRoZSBvdGhlciBoYW5kLCB1bmVzY2FwZXMgdGhlIGNvbnRlbnQsIHJl
bW92ZXMgdGhlIHByZWZpeCwgZGVjcnlwdCB0aGUgU0ZyYW1lIGNvbnRlbnQuCisKKyAgICAgICAg
VGVzdDogd2VicnRjL3ZpZGVvLXNmcmFtZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL0gyNjRVdGlscy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVBy
ZWZpeE9mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpuZWVkc1Jic3BVbmVzY2FwaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OmZyb21SYnNwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVQcmVm
aXhCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6dG9SYnNwKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL0gyNjRVdGlscy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzU2xp
Y2VOQUxVKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU1BTTkFMVSk6CisgICAgICAgIChXZWJDb3Jl
Ojppc0lEUk5BTFUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5cHRGcmFtZSk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oOgorICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisKIDIwMjAtMTItMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgT25seSB0aGUgZmlyc3Qgd2hlZWwgZXZlbnQgaW4gYSBnZXN0dXJlIHNob3VsZCBi
ZSBjYW5jZWxhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL0gyNjRVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0gy
NjRVdGlscy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMyNTg5MTI4YzIxMWUzYzZjZjZlNGM5YmRkOTlhMTA5
OWIxZjRlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vSDI2NFV0aWxzLmNwcApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJIMjY0VXRpbHMuaCIKKworI2lmIEVOQUJMRShXRUJfUlRDKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3NpemVfdCBjb21wdXRlUHJlZml4T2Zmc2V0KGNvbnN0IHVpbnQ4X3QqIGZyYW1lRGF0
YSwgc2l6ZV90IGZyYW1lU2l6ZSkKK3sKKyAgICBpZiAoZnJhbWVTaXplIDwgNSkKKyAgICAgICAg
cmV0dXJuIDA7CisKKyAgICBpZiAoaXNTbGljZU5BTFUoZnJhbWVEYXRhWzRdKSkgeworICAgICAg
ICAvLyBTa2lwIDAwIDAwIDAwIDAxLCBzbGljZSBuYWx1IGJ5dGUgYW5kIHRoZSBuZXh0IGJ5dGUu
CisgICAgICAgIHJldHVybiA2OworICAgIH0KKworICAgIGlmICghaXNTUFNOQUxVKGZyYW1lRGF0
YVs0XSkpCisgICAgICAgIHJldHVybiAwOworCisgICAgZm9yIChzaXplX3QgaSA9IDg7IGkgPCBm
cmFtZVNpemU7ICsraSkgeworICAgICAgICBpZiAoIWlzSURSTkFMVShmcmFtZURhdGFbaV0pKQor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmIChmcmFtZURhdGFbaSAtIDRdID09IDAg
JiYgZnJhbWVEYXRhW2kgLSAzXSA9PSAwICYmIGZyYW1lRGF0YVtpIC0gMl0gPT0gMCAmJiBmcmFt
ZURhdGFbaSAtIDFdID09IDEpIHsKKyAgICAgICAgICAgIC8vIFNraXAgMDAgMDAgMDAgMDEsIElE
UiBuYWx1IGJ5dGUgYW5kIHRoZSBuZXh0IGJ5dGUuCisgICAgICAgICAgICByZXR1cm4gaSArIDI7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgbmVlZHNSYnNwVW5l
c2NhcGluZyhjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNpemUpCit7Cisg
ICAgaWYgKGZyYW1lU2l6ZSA8IDMpCisgICAgICAgIHJldHVybiAwOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgZnJhbWVTaXplIC0gMzsgKytpKSB7CisgICAgICAgIGlmIChmcmFtZURhdGFb
MF0gPT0gMCAmJiBmcmFtZURhdGFbMV0gPT0gMCAmJiBmcmFtZURhdGFbMl0gPT0gMykKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1ZlY3Rv
cjx1aW50OF90PiBmcm9tUmJzcChjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFt
ZVNpemUpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIucmVzaXpl
KGZyYW1lU2l6ZSk7CisgICAgYXV0byogZGF0YSA9IGJ1ZmZlci5kYXRhKCk7CisKKyAgICBzaXpl
X3QgY291bnRlciA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFtZVNpemUgLSAz
OyArK2kpIHsKKyAgICAgICAgaWYgKGZyYW1lRGF0YVtpXSA9PSAwICYmIGZyYW1lRGF0YVtpICsg
MV0gPT0gMCAmJiBmcmFtZURhdGFbaSArIDJdID09IDMpIHsKKyAgICAgICAgICAgIGRhdGFbY291
bnRlcisrXSA9IGZyYW1lRGF0YVtpXTsKKyAgICAgICAgICAgIGRhdGFbY291bnRlcisrXSA9IGZy
YW1lRGF0YVtpICsgMV07CisgICAgICAgICAgICAvLyBTa2lwIG5leHQgYnl0ZSB3aGljaCBpcyBk
ZWxpbWl0ZXIuCisgICAgICAgICAgICBpICs9IDI7CisgICAgICAgIH0gZWxzZQorICAgICAgICAg
ICAgZGF0YVtjb3VudGVyKytdID0gZnJhbWVEYXRhW2ldOworICAgIH0KKyAgICBmb3IgKHNpemVf
dCBpID0gZnJhbWVTaXplIC0gMzsgaSA8IGZyYW1lU2l6ZTsgKytpKQorICAgICAgICBkYXRhW2Nv
dW50ZXIrK10gPSBmcmFtZURhdGFbaV07CisKKyAgICBidWZmZXIucmVzaXplKGNvdW50ZXIpOwor
ICAgIHJldHVybiBidWZmZXI7Cit9CisKK3N0YXRpYyBjb25zdCB1aW50OF90IHByZWZpeERlbHRh
RnJhbWVbNl0gPSB7IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MjEsIDB4YjggfTsKK3N0YXRp
YyBjb25zdCB1aW50OF90IHByZWZpeEtleUZyYW1lWzM1XSA9IHsgMHgwMCwgMHgwMCwgMHgwMCwg
MHgwMSwgMHgyNywgMHg2NCwgMHgwMCwgMHgxZiwgMHhhYywgMHgxMywgMHgxNiwgMHg2MCwgMHgy
OCwgMHgwZiwgMHg2OCwgMHgwNiwgMHhkMCwgMHg0NCwgMHgyMywgMHgzNCwgMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMSwgMHgyOCwgMHhkOSwgMHg0YiwgMHgwOSwgMHhjYiwgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMSwgMHgyNSwgMHhiOCB9OworCisvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGdl
bmVyYXRlIHRoZSBwcmVmaXggdG8gY2FycnkgdGhlIHByb2ZpbGUgYW5kIHJlc29sdXRpb24gaW5m
b3JtYXRpb24gYXMgZ2F0aGVyZWQgZnJvbSB0aGUgZnJhbWUuCitIMjY0UHJlZml4QnVmZmVyIGNv
bXB1dGVQcmVmaXhCdWZmZXIoY29uc3QgdWludDhfdCogZnJhbWVEYXRhLCBzaXplX3QgZnJhbWVT
aXplKQoreworICAgIGlmIChmcmFtZVNpemUgPCA1KQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgYm9vbCBpc0RlbHRhRnJhbWUgPSBpc1NsaWNlTkFMVShmcmFtZURhdGFbNF0pOworICAgIHJl
dHVybiBpc0RlbHRhRnJhbWUgPyBIMjY0UHJlZml4QnVmZmVyIHsgcHJlZml4RGVsdGFGcmFtZSwg
c2l6ZW9mKHByZWZpeERlbHRhRnJhbWUpIH0gOiBIMjY0UHJlZml4QnVmZmVyIHsgcHJlZml4S2V5
RnJhbWUsIHNpemVvZihwcmVmaXhLZXlGcmFtZSkgfTsKK30KKwordm9pZCB0b1Jic3AoVmVjdG9y
PHVpbnQ4X3Q+JiBmcmFtZSwgc2l6ZV90IG9mZnNldCkKK3sKKyAgICBzaXplX3QgY291bnQgPSAw
OworICAgIHNpemVfdCBudW1Db25zZWN1dGl2ZVplcm9zID0gMDsKKyAgICBhdXRvKiBkYXRhID0g
ZnJhbWUuZGF0YSgpOworICAgIGZvciAoc2l6ZV90IGkgPSBvZmZzZXQ7IGkgPCBmcmFtZS5zaXpl
KCk7ICsraSkgeworICAgICAgICBpZiAoZGF0YVtpXSA8PSAzICYmIG51bUNvbnNlY3V0aXZlWmVy
b3MgPj0gMikgeworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIG51bUNvbnNlY3V0
aXZlWmVyb3MgPSAwOworICAgICAgICB9CisgICAgICAgIGlmIChkYXRhW2ldID09IDApCisgICAg
ICAgICAgICArK251bUNvbnNlY3V0aXZlWmVyb3M7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IG51bUNvbnNlY3V0aXZlWmVyb3MgPSAwOworICAgIH0KKyAgICBpZiAoIWNvdW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICBWZWN0b3I8dWludDhfdD4gbmV3RnJhbWU7CisgICAgbmV3RnJhbWUu
cmVzaXplKGZyYW1lLnNpemUoKSArIGNvdW50KTsKKyAgICBuZXdGcmFtZS5hcHBlbmQoZnJhbWUu
ZGF0YSgpLCBvZmZzZXQpOworCisgICAgbnVtQ29uc2VjdXRpdmVaZXJvcyA9IDA7CisgICAgZm9y
IChzaXplX3QgaSA9IG9mZnNldDsgaSA8IGZyYW1lLnNpemUoKTsgKytpKSB7CisgICAgICAgIGF1
dG8gYnl0ZSA9IGZyYW1lW2ldOworICAgICAgICBpZiAoYnl0ZSA8PSAzICYmIG51bUNvbnNlY3V0
aXZlWmVyb3MgPj0gMikgeworICAgICAgICAgICAgbnVtQ29uc2VjdXRpdmVaZXJvcyA9IDA7Cisg
ICAgICAgICAgICBuZXdGcmFtZS51bmNoZWNrZWRBcHBlbmQoMyk7CisgICAgICAgIH0KKyAgICAg
ICAgbmV3RnJhbWUudW5jaGVja2VkQXBwZW5kKGJ5dGUpOworICAgICAgICBpZiAoYnl0ZSA9PSAw
KQorICAgICAgICAgICAgKytudW1Db25zZWN1dGl2ZVplcm9zOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBudW1Db25zZWN1dGl2ZVplcm9zID0gMDsKKyAgICB9CisgICAgZnJhbWUgPSBXVEZN
b3ZlKG5ld0ZyYW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0gyNjRVdGlscy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9I
MjY0VXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2Q3ZWM0MmNkMzk3YTQxN2Q5YjExYjY2Yzk0OTcwY2Jj
Njg0ZGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9IMjY0VXRpbHMuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX1JU
QykKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitp
bmxpbmUgYm9vbCBpc1NsaWNlTkFMVSh1aW50OF90IGRhdGEpCit7CisgICAgcmV0dXJuIChkYXRh
ICYgMHgxRikgPT0gMTsKK30KKworaW5saW5lIGJvb2wgaXNTUFNOQUxVKHVpbnQ4X3QgZGF0YSkK
K3sKKyAgICByZXR1cm4gKGRhdGEgJiAweDFGKSA9PSA3OworfQorCitpbmxpbmUgYm9vbCBpc0lE
Uk5BTFUodWludDhfdCBkYXRhKQoreworICAgIHJldHVybiAoZGF0YSAmIDB4MUYpID09IDU7Cit9
CisKK3N0cnVjdCBIMjY0UHJlZml4QnVmZmVyIHsKKyAgICBjb25zdCB1aW50OF90KiBkYXRhIHsg
bnVsbHB0ciB9OworICAgIHNpemVfdCBzaXplIHsgMCB9OworfTsKKworc2l6ZV90IGNvbXB1dGVQ
cmVmaXhPZmZzZXQoY29uc3QgdWludDhfdCosIHNpemVfdCk7Citib29sIG5lZWRzUmJzcFVuZXNj
YXBpbmcoY29uc3QgdWludDhfdCosIHNpemVfdCk7CitWZWN0b3I8dWludDhfdD4gZnJvbVJic3Ao
Y29uc3QgdWludDhfdCosIHNpemVfdCk7CitIMjY0UHJlZml4QnVmZmVyIGNvbXB1dGVQcmVmaXhC
dWZmZXIoY29uc3QgdWludDhfdCosIHNpemVfdCk7Cit2b2lkIHRvUmJzcChWZWN0b3I8dWludDhf
dD4mLCBzaXplX3QpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4IDY0ZWQ3N2M0NjY3YzZkNWE1OGY3MmY4NmFm
MzhkNzhhNzRmZWQ5NzMuLjE2ODM2ZTBlYTM1NTY4NTI2MWNkODMxNWRiYWYzMDg4NmZkZjUzMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtLmNwcAppbmRleCBlYzFkMzhlMzg5M2FhZTg0MDlmMDI5MDg1MmYxMTJjN2U5NGVh
NTJmLi4xNTk4NTE4ZWUzYmUzMmY2NmZkOTZlNTQwZmY4MDQ4NDZiZGUxNjBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9y
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJh
bWVUcmFuc2Zvcm0uY3BwCkBAIC0zMCw2ICszMCw4IEBACiAKICNpbmNsdWRlICJDcnlwdG9LZXlS
YXcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZmZXJTb3VyY2UuaCIKKyNpbmNsdWRlICJK
U1JUQ0VuY29kZWRBdWRpb0ZyYW1lLmgiCisjaW5jbHVkZSAiSlNSVENFbmNvZGVkVmlkZW9GcmFt
ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSVENFbmNvZGVkQXVkaW9GcmFt
ZS5oIgogI2luY2x1ZGUgIlJUQ0VuY29kZWRWaWRlb0ZyYW1lLmgiCkBAIC00Niw3ICs0OCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtOjpSVENSdHBTRnJh
bWVUcmFuc2Zvcm0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgT3B0aW9ucyBvcHRp
b25zKQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCi0gICAgLCBt
X3RyYW5zZm9ybWVyKFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpjcmVhdGUoKSkKKyAgICAsIG1f
dHJhbnNmb3JtZXIoUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNyZWF0ZShvcHRpb25zLmNvbXBh
dGliaWxpdHlNb2RlKSkKIHsKICAgICBtX3RyYW5zZm9ybWVyLT5zZXRJc0VuY3J5cHRpbmcob3B0
aW9ucy5yb2xlID09IFJvbGU6OkVuY3J5cHQpOwogICAgIG1fdHJhbnNmb3JtZXItPnNldEF1dGhl
bnRpY2F0aW9uU2l6ZShvcHRpb25zLmF1dGhlbnRpY2F0aW9uU2l6ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zv
cm0uaAppbmRleCBhYjQ4ZjJkMGNlZDU4MmQxNTQyNmVhN2E3YjQwNzdlZGI0ODA4NTNmLi41ZGYz
ODYyZmU4NzdiYjU4OTQyYjE4OTM4NDlkNDZmOGYwMmZkZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmgKQEAgLTI5LDExICsyOSwxMSBAQAogCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q3J5cHRvS2V5OwotY2xhc3MgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI7CiBjbGFzcyBSVENSdHBU
cmFuc2Zvcm1CYWNrZW5kOwogY2xhc3MgUmVhZGFibGVTdHJlYW07CiBjbGFzcyBTaW1wbGVSZWFk
YWJsZVN0cmVhbVNvdXJjZTsKQEAgLTQyLDkgKzQyLDExIEBAIGNsYXNzIFdyaXRhYmxlU3RyZWFt
OwogY2xhc3MgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtIDogcHVibGljIFJlZkNvdW50ZWQ8UlRDUnRw
U0ZyYW1lVHJhbnNmb3JtPiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBw
dWJsaWM6CiAgICAgZW51bSBjbGFzcyBSb2xlIHsgRW5jcnlwdCwgRGVjcnlwdCB9OworICAgIHVz
aW5nIENvbXBhdGliaWxpdHlNb2RlID0gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OkNvbXBhdGli
aWxpdHlNb2RlOwogICAgIHN0cnVjdCBPcHRpb25zIHsKICAgICAgICAgUm9sZSByb2xlIHsgUm9s
ZTo6RW5jcnlwdCB9OwogICAgICAgICB1aW50NjRfdCBhdXRoZW50aWNhdGlvblNpemUgeyAxMCB9
OworICAgICAgICBDb21wYXRpYmlsaXR5TW9kZSBjb21wYXRpYmlsaXR5TW9kZSB7IENvbXBhdGli
aWxpdHlNb2RlOjpOb25lIH07CiAgICAgfTsKIAogICAgIHN0YXRpYyBSZWY8UlRDUnRwU0ZyYW1l
VHJhbnNmb3JtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgT3B0aW9u
cyBvcHRpb25zKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybShj
b250ZXh0LCBvcHRpb25zKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmlkbAppbmRleCBiMzNiOTA0
NDBmMTI2NGRiODg4ZjM4ZGNhMzY3YTAzY2E1OTliMjNiLi4wZGRjYTQ0NGM4Yzc0M2Y5MDcwNDE4
NTc4YzBjOThmOTMwODVkN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsCkBAIC0yOCw5ICsy
OCwxNSBAQCBlbnVtIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybVJvbGUgewogICAgICJkZWNyeXB0Igog
fTsKIAorZW51bSBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Db21wYXRpYmlsaXR5TW9kZSB7CisgICAg
Im5vbmUiLAorICAgICJIMjY0IgorfTsKKwogZGljdGlvbmFyeSBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1PcHRpb25zIHsKICAgICBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Sb2xlIHJvbGUgPSAiZW5jcnlw
dCI7CiAgICAgdW5zaWduZWQgbG9uZyBhdXRoZW50aWNhdGlvblNpemUgPSAxMDsKKyAgICBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1Db21wYXRpYmlsaXR5TW9kZSBjb21wYXRpYmlsaXR5TW9kZSA9ICJu
b25lIjsKIH07CiAKIFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKaW5kZXggNTI0M2JiMWRl
ZGMzZmIzY2ViNmE0ZmRmZDBmNWJkZmE0MTBiYTQwZS4uZTg1MWQ1ODAwYmQyODhmOTU3YWMwNDM1
ODlkODlkZGI0ODIwNjNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKQEAgLTI4LDYg
KzI4LDggQEAKIAogI2lmIEVOQUJMRShXRUJfUlRDKQogCisjaW5jbHVkZSAiSDI2NFV0aWxzLmgi
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGlubGluZSB2b2lkIHdyaXRlVUludDY0
KHVpbnQ4X3QqIGRhdGEsIHVpbnQ2NF90IHZhbHVlLCB1aW50OF90IHZhbHVlTGVuZ3RoKQpAQCAt
MTMxLDEyICsxMzMsMTMgQEAgc3RhdGljIGlubGluZSBPcHRpb25hbDxTRnJhbWVIZWFkZXJJbmZv
PiBwYXJzZVNGcmFtZUhlYWRlcihjb25zdCB1aW50OF90KiBkYXRhLAogICAgIHJldHVybiBTRnJh
bWVIZWFkZXJJbmZvIHsgaGVhZGVyU2l6ZSwga2V5SWQsIGNvdW50ZXIgfTsKIH0KIAotUmVmPFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y3JlYXRlKCkK
K1JlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcj4gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmNy
ZWF0ZShDb21wYXRpYmlsaXR5TW9kZSBtb2RlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyKG1vZGUpKTsKIH0KIAotUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXI6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKCkKK1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpS
VENSdHBTRnJhbWVUcmFuc2Zvcm1lcihDb21wYXRpYmlsaXR5TW9kZSBtb2RlKQorICAgIDogbV9j
b21wYXRpYmlsaXR5TW9kZShtb2RlKQogewogfQogCkBAIC0xNzcsNiArMTgwLDE4IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRFbmNyeXB0aW9uS2V5KGNv
bnN0IFZlY3Rvcjx1aW50OF90CiAKIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtZXI6OmRlY3J5cHRGcmFtZShjb25zdCB1aW50OF90KiBmcmFtZURhdGEs
IHNpemVfdCBmcmFtZVNpemUpCiB7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBp
ZiAobV9jb21wYXRpYmlsaXR5TW9kZSA9PSBDb21wYXRpYmlsaXR5TW9kZTo6SDI2NCkgeworICAg
ICAgICBhdXRvIG9mZnNldCA9IGNvbXB1dGVQcmVmaXhPZmZzZXQoZnJhbWVEYXRhLCBmcmFtZVNp
emUpOworICAgICAgICBmcmFtZURhdGEgKz0gb2Zmc2V0OworICAgICAgICBmcmFtZVNpemUgLT0g
b2Zmc2V0OworICAgICAgICBpZiAobmVlZHNSYnNwVW5lc2NhcGluZyhmcmFtZURhdGEsIGZyYW1l
U2l6ZSkpIHsKKyAgICAgICAgICAgIGJ1ZmZlciA9IGZyb21SYnNwKGZyYW1lRGF0YSwgZnJhbWVT
aXplKTsKKyAgICAgICAgICAgIGZyYW1lRGF0YSA9IGJ1ZmZlci5kYXRhKCk7CisgICAgICAgICAg
ICBmcmFtZVNpemUgPSBidWZmZXIuc2l6ZSgpOworICAgICAgICB9CisgICAgfQorCiAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX2tleUxvY2spOwogCiAgICAgYXV0byBoZWFkZXIgPSBwYXJz
ZVNGcmFtZUhlYWRlcihmcmFtZURhdGEsIGZyYW1lU2l6ZSk7CkBAIC0yMjEsMjYgKzIzNiwzNCBA
QCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpl
bmNyeXB0RnJhbWUoY29uc3QgdWludDhfdAogewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBN
YXhIZWFkZXJTaXplID0gMTc7CiAKKyAgICBWZWN0b3I8dWludDhfdD4gdHJhbnNmb3JtZWREYXRh
OworICAgIEgyNjRQcmVmaXhCdWZmZXIgcHJlZml4QnVmZmVyOworICAgIGlmIChtX2NvbXBhdGli
aWxpdHlNb2RlID09IENvbXBhdGliaWxpdHlNb2RlOjpIMjY0KQorICAgICAgICBwcmVmaXhCdWZm
ZXIgPSBjb21wdXRlUHJlZml4QnVmZmVyKGZyYW1lRGF0YSwgZnJhbWVTaXplKTsKKwogICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlMb2NrKTsKIAogICAgIGF1dG8gaXYgPSBjb21wdXRl
SVYobV9jb3VudGVyLCBtX3NhbHRLZXkpOwogCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IHRyYW5zZm9y
bWVkRGF0YTsKLSAgICB0cmFuc2Zvcm1lZERhdGEucmVzaXplKGZyYW1lU2l6ZSArIE1heEhlYWRl
clNpemUgKyBtX2F1dGhlbnRpY2F0aW9uU2l6ZSk7CisgICAgdHJhbnNmb3JtZWREYXRhLnJlc2l6
ZShwcmVmaXhCdWZmZXIuc2l6ZSArIGZyYW1lU2l6ZSArIE1heEhlYWRlclNpemUgKyBtX2F1dGhl
bnRpY2F0aW9uU2l6ZSk7CiAKKyAgICBpZiAocHJlZml4QnVmZmVyLmRhdGEpCisgICAgICAgIHN0
ZDo6bWVtY3B5KHRyYW5zZm9ybWVkRGF0YS5kYXRhKCksIHByZWZpeEJ1ZmZlci5kYXRhLCBwcmVm
aXhCdWZmZXIuc2l6ZSk7CisKKyAgICBhdXRvKiBuZXdEYXRhUG9pbnRlciA9IHRyYW5zZm9ybWVk
RGF0YS5kYXRhKCkgKyBwcmVmaXhCdWZmZXIuc2l6ZTsKICAgICAvLyBGaWxsIGhlYWRlci4KICAg
ICBzaXplX3QgaGVhZGVyU2l6ZSA9IDE7Ci0gICAgdHJhbnNmb3JtZWREYXRhWzBdID0gY29tcHV0
ZUZpcnN0SGVhZGVyQnl0ZShtX2tleUlkLCBtX2NvdW50ZXIpOworICAgICpuZXdEYXRhUG9pbnRl
ciA9IGNvbXB1dGVGaXJzdEhlYWRlckJ5dGUobV9rZXlJZCwgbV9jb3VudGVyKTsKICAgICBpZiAo
bV9rZXlJZCA+PSA4KSB7CiAgICAgICAgIGF1dG8ga2V5SWRMZW5ndGggPSBsZW5ndGhPZlVJbnQ2
NChtX2tleUlkKTsKLSAgICAgICAgd3JpdGVVSW50NjQodHJhbnNmb3JtZWREYXRhLmRhdGEoKSAr
IGhlYWRlclNpemUsIG1fa2V5SWQsIGtleUlkTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVVSW50NjQo
bmV3RGF0YVBvaW50ZXIgKyBoZWFkZXJTaXplLCBtX2tleUlkLCBrZXlJZExlbmd0aCk7CiAgICAg
ICAgIGhlYWRlclNpemUgKz0ga2V5SWRMZW5ndGg7CiAgICAgfQogICAgIGF1dG8gY291bnRlckxl
bmd0aCA9IGxlbmd0aE9mVUludDY0KG1fY291bnRlcik7Ci0gICAgd3JpdGVVSW50NjQodHJhbnNm
b3JtZWREYXRhLmRhdGEoKSArIGhlYWRlclNpemUsIG1fY291bnRlciwgY291bnRlckxlbmd0aCk7
CisgICAgd3JpdGVVSW50NjQobmV3RGF0YVBvaW50ZXIgKyBoZWFkZXJTaXplLCBtX2NvdW50ZXIs
IGNvdW50ZXJMZW5ndGgpOwogICAgIGhlYWRlclNpemUgKz0gY291bnRlckxlbmd0aDsKIAotICAg
IHRyYW5zZm9ybWVkRGF0YS5yZXNpemUoZnJhbWVTaXplICsgaGVhZGVyU2l6ZSArIG1fYXV0aGVu
dGljYXRpb25TaXplKTsKKyAgICB0cmFuc2Zvcm1lZERhdGEucmVzaXplKHByZWZpeEJ1ZmZlci5z
aXplICsgZnJhbWVTaXplICsgaGVhZGVyU2l6ZSArIG1fYXV0aGVudGljYXRpb25TaXplKTsKIAog
ICAgIC8vIEZpbGwgZW5jcnlwdGVkIGRhdGEKICAgICBhdXRvIGVuY3J5cHRlZERhdGEgPSBlbmNy
eXB0RGF0YShmcmFtZURhdGEsIGZyYW1lU2l6ZSwgaXYsIG1fZW5jcnlwdGlvbktleSk7CkBAIC0y
NDgsMTEgKzI3MSwxNCBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoY29uc3QgdWludDhfdAogICAgIGlmIChlbmNyeXB0
ZWREYXRhLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gZW5jcnlwdGVkRGF0YS5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAKLSAgICBzdGQ6Om1lbWNweSh0cmFuc2Zvcm1lZERhdGEuZGF0YSgp
ICsgaGVhZGVyU2l6ZSwgZW5jcnlwdGVkRGF0YS5yZXR1cm5WYWx1ZSgpLmRhdGEoKSwgZnJhbWVT
aXplKTsKKyAgICBzdGQ6Om1lbWNweShuZXdEYXRhUG9pbnRlciArIGhlYWRlclNpemUsIGVuY3J5
cHRlZERhdGEucmV0dXJuVmFsdWUoKS5kYXRhKCksIGZyYW1lU2l6ZSk7CiAKICAgICAvLyBGaWxs
IHNpZ25hdHVyZQotICAgIGF1dG8gc2lnbmF0dXJlID0gY29tcHV0ZUVuY3J5cHRlZERhdGFTaWdu
YXR1cmUodHJhbnNmb3JtZWREYXRhLmRhdGEoKSwgZnJhbWVTaXplICsgaGVhZGVyU2l6ZSwgbV9h
dXRoZW50aWNhdGlvbktleSk7Ci0gICAgc3RkOjptZW1jcHkodHJhbnNmb3JtZWREYXRhLmRhdGEo
KSArIGZyYW1lU2l6ZSArIGhlYWRlclNpemUsIHNpZ25hdHVyZS5kYXRhKCksIG1fYXV0aGVudGlj
YXRpb25TaXplKTsKKyAgICBhdXRvIHNpZ25hdHVyZSA9IGNvbXB1dGVFbmNyeXB0ZWREYXRhU2ln
bmF0dXJlKG5ld0RhdGFQb2ludGVyLCBmcmFtZVNpemUgKyBoZWFkZXJTaXplLCBtX2F1dGhlbnRp
Y2F0aW9uS2V5KTsKKyAgICBzdGQ6Om1lbWNweShuZXdEYXRhUG9pbnRlciArIGZyYW1lU2l6ZSAr
IGhlYWRlclNpemUsIHNpZ25hdHVyZS5kYXRhKCksIG1fYXV0aGVudGljYXRpb25TaXplKTsKKwor
ICAgIGlmIChtX2NvbXBhdGliaWxpdHlNb2RlID09IENvbXBhdGliaWxpdHlNb2RlOjpIMjY0KQor
ICAgICAgICB0b1Jic3AodHJhbnNmb3JtZWREYXRhLCBwcmVmaXhCdWZmZXIuc2l6ZSk7CiAKICAg
ICArK21fY291bnRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oCmluZGV4IGE0ZTFhYTE3NmU4
NjZiNGYxNjA2ZjY5ZjY2YzI0NzRhODM0OTEzNmUuLmRlMjNiZDhlYWZiMGU4ZjM4MDU5YTgwMDJj
OGZmNmEwOTIyMjQxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgKQEAgLTM3LDcgKzM3LDkg
QEAgY2xhc3MgQ3J5cHRvS2V5OwogCiBjbGFzcyBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lciA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSVENSdHBTRnJhbWVUcmFuc2Zvcm1lciwgV1RGOjpE
ZXN0cnVjdGlvblRocmVhZDo6TWFpbj4gewogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IGNyZWF0ZSgpOworICAgIGVudW0gY2xh
c3MgQ29tcGF0aWJpbGl0eU1vZGUgeyBOb25lLCBIMjY0IH07CisKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBjcmVhdGUoQ29tcGF0aWJpbGl0
eU1vZGUgPSBDb21wYXRpYmlsaXR5TW9kZTo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgflJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyKCk7CiAKICAgICB2b2lkIHNldElzRW5jcnlwdGluZyhib29s
KTsKQEAgLTU0LDcgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q291bnRlcih1aW50NjRf
dCBjb3VudGVyKSB7IG1fY291bnRlciA9IGNvdW50ZXI7IH0KIAogcHJpdmF0ZToKLSAgICBXRUJD
T1JFX0VYUE9SVCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcigpOworICAgIFdFQkNPUkVfRVhQT1JU
IGV4cGxpY2l0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyKENvbXBhdGliaWxpdHlNb2RlKTsKIAog
ICAgIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZGVjcnlwdEZyYW1lKGNvbnN0IHVpbnQ4
X3QqLCBzaXplX3QpOwogICAgIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gZW5jcnlwdEZy
YW1lKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOwpAQCAtNzgsNiArODAsNyBAQCBwcml2YXRlOgog
ICAgIHVpbnQ2NF90IG1fYXV0aGVudGljYXRpb25TaXplIHsgMTAgfTsKICAgICB1aW50NjRfdCBt
X2tleUlkIHsgMCB9OwogICAgIHVpbnQ2NF90IG1fY291bnRlciB7IDAgfTsKKyAgICBDb21wYXRp
YmlsaXR5TW9kZSBtX2NvbXBhdGliaWxpdHlNb2RlIHsgQ29tcGF0aWJpbGl0eU1vZGU6Ok5vbmUg
fTsKIH07CiAKIGlubGluZSB2b2lkIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpzZXRJc0VuY3J5
cHRpbmcoYm9vbCBpc0VuY3J5cHRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCmluZGV4
IGQ3NGEzYTY4MzAzNmJmYTZmNzVkMWMzNzQ4NTZlYTZmNDQwZmI3ODYuLjRmMjExNTdkZGQwYjk4
YjQ1NmRmNDdiZTQ1MWU5ODNhMmI0MWZkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuY3Bw
CkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKICNpbmNsdWRlICJEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIgotI2luY2x1ZGUgIkpTQ2FsbGJhY2tEYXRhLmgiCiAj
aW5jbHVkZSAiSlNSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgogI2luY2x1ZGUgIkpTUlRDRW5jb2Rl
ZFZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJKU1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyQ29udGV4
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTY3JpcHRUcmFuc2Zvcm1lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCmluZGV4IGRiNDQwOGI2YWUxZWFhMjVjZWNkNWEy
NDBiZWIxYWJhN2FhMzMzZjYuLjRjMWJiZTBhYzcxYTEwM2VhYTMwMjYzMTFjZWFjNjc2YzRiMmQ0
MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U2NyaXB0VHJhbnNmb3JtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKQEAgLTI5LDEyICsyOSwxMiBAQAogCiAjaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNs
dWRlICJKU0NhbGxiYWNrRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU0Nh
bGxiYWNrRGF0YVN0cm9uZzsKIGNsYXNzIE1lc3NhZ2VQb3J0OwogY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIGNsYXNzIFJUQ1J0cFRyYW5zZm9ybUJhY2tlbmQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDgyYzlkMjQ2M2M1N2VhMDE3N2UwYmU0MDk5YWVmYzIwYWVkYTQzMjkuLjBhMjE4NzJlYTBm
NDUwMmFmN2IzOTczOWIyODM2MDlmOTIwMTczZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDMsNiAr
MTQzLDcgQEAgTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCiBNb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlckxpc3QuY3BwCiBNb2R1bGVzL21lZGlhc291cmNlL1ZpZGVv
UGxheWJhY2tRdWFsaXR5LmNwcAogTW9kdWxlcy9tZWRpYXN0cmVhbS9DYW52YXNDYXB0dXJlTWVk
aWFTdHJlYW1UcmFjay5jcHAKK01vZHVsZXMvbWVkaWFzdHJlYW0vSDI2NFV0aWxzLmNwcAogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZUluZm8uY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNjcyYTE2NjBhNWQ5ZmY4MDEzYjY5YWJiYjZhM2FhYTc4YjliZTFmMS4uOTYxMWJlODFiNGE0
ZGExYzRhYWJiY2JmZDc3YzA4NmVlNWY2YWJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzU2NSw2ICs3NTY1LDggQEAKIAkJ
NDExODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xs
ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgyMzI4
MDBCOTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5NTY3MiAvKiBSZWFkYWJsZVN0
cmVhbUJZT0JSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVh
bUJZT0JSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyMDlFMjQy
NTdBMkZCQjAwMTIwQUNBIC8qIEgyNjRVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIMjY0VXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyMDlF
MjYyNTdBMkZCQjAwMTIwQUNBIC8qIEgyNjRVdGlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBIMjY0VXRpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTIwOUU5MTIxNkQ1OTNDMDBBNzNBMTIgLyogUlRDQ2VydGlmaWNhdGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJUQ0NlcnRpZmljYXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDEyMDlFOTMyMTZENUM3OTAwQTczQTEyIC8qIFJUQ0NlcnRpZmljYXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0NlcnRpZmljYXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMjA5RTk0MjE2RUE2OUEwMEE3M0ExMiAvKiBSVEND
ZXJ0aWZpY2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVEND
ZXJ0aWZpY2F0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzA1Nyw2ICsx
NzA1OSw4IEBACiAJCQkJNDFDN0UxMDgxRTZBQTM3QzAwMjdCNERFIC8qIENhbnZhc0NhcHR1cmVN
ZWRpYVN0cmVhbVRyYWNrLmlkbCAqLywKIAkJCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyog
RG91YmxlUmFuZ2UuaCAqLywKIAkJCQk5M0E4MDYxMjFFMDNCNTFDMDA4QTFGMjYgLyogRG91Ymxl
UmFuZ2UuaWRsICovLAorCQkJCTQxMjA5RTI2MjU3QTJGQkIwMDEyMEFDQSAvKiBIMjY0VXRpbHMu
Y3BwICovLAorCQkJCTQxMjA5RTI0MjU3QTJGQkIwMDEyMEFDQSAvKiBIMjY0VXRpbHMuaCAqLywK
IAkJCQk5M0E4MDYxMzFFMDNCNTFDMDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggKi8sCiAJCQkJOTNB
ODA2MTQxRTAzQjUxQzAwOEExRjI2IC8qIExvbmdSYW5nZS5pZGwgKi8sCiAJCQkJMTU5QUU4MkEx
QjNBNDAyRjAwMzc0NzhCIC8qIE1lZGlhRGV2aWNlSW5mby5jcHAgKi8sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjQwNzhm
YzhhZWM0NWM4ZTYyYTZjMGE4MGJkYzZlNmI2YTlmNzY2Yy4uZWNiODkyNTQyYmIzNDFlOGI4YjNj
OGZmM2ZjNTlhMmRmZTU5N2EwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEyLTA0ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBTRnJhbWUg
SDI2NCBleHBlcmltZW50YWwgY29tcGF0aWJpbGl0eSBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk1MzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy92aWRlby1zZnJhbWUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdmlkZW8tc2ZyYW1lLmh0bWw6IEFkZGVk
LgorCiAyMDIwLTEyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91bGQg
YmUgY2FuY2VsYWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXNmcmFt
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tc2ZyYW1lLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45NDRhNmQzYWMzZDFiZWJlYjExYjVjMTI2YjUwNDc4YWU1NzRmM2Nj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXNmcmFtZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBWaWRlbyBleGNoYW5nZSB3aXRoIFNG
cmFtZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tc2ZyYW1lLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tc2ZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYxZmIw
OWQxMGIwNGViNmFjMDQ3NWFmZDlmMzI1MGRhNGNjNDJiMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYnJ0Yy92aWRlby1zZnJhbWUuaHRtbApAQCAtMCwwICsxLDUxIEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2
aWRlbyBpZD0ibG9jYWwiIGF1dG9wbGF5IHBsYXlzSW5saW5lPjwvdmlkZW8+CisgICAgICAgIDx2
aWRlbyBpZD0icmVtb3RlIiBhdXRvcGxheSBwbGF5c0lubGluZT48L3ZpZGVvPgorICAgICAgICA8
c2NyaXB0IHNyYyA9InJvdXRpbmVzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KK3By
b21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGxldCBzZW5kZXIsIHJlY2VpdmVyOwor
ICAgIGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRV
c2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7CisgICAgY29uc3Qga2V5ID0gYXdhaXQgY3J5cHRvLnN1
YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KFsxNDMsIDc3LCA0MywgMTAsIDcy
LCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwgMjQsIDkzLCAyNiwgMTY1LCA5MSwgMTc4XSksICJIS0RG
IiwgZmFsc2UsIFsiZGVyaXZlQml0cyIsICJkZXJpdmVLZXkiXSk7CisgICAgY29uc3Qgc3RyZWFt
ID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBjcmVh
dGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7CisgICAgICAgICAgICBzZW5kZXIg
PSBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sobG9jYWxTdHJlYW0uZ2V0VHJhY2tzKClbMF0sIGxv
Y2FsU3RyZWFtKTsKKyAgICAgICAgICAgIGxldCB0cmFuc2Zvcm0gPSBuZXcgUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtKHtjb21wYXRpYmlsaXR5TW9kZTogIkgyNjQifSk7CisgICAgICAgICAgICB0cmFu
c2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworICAgICAgICAgICAgc2VuZGVyLnRyYW5zZm9y
bSA9IHRyYW5zZm9ybTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5lY3Rpb24pID0+IHsKKyAgICAg
ICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFja0V2ZW50KSA9PiB7CisgICAg
ICAgICAgICAgICAgbGV0IHRyYW5zZm9ybSA9IG5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm0oe2Nv
bXBhdGliaWxpdHlNb2RlOiAiSDI2NCJ9KTsKKyAgICAgICAgICAgICAgICB0cmFuc2Zvcm0uc2V0
RW5jcnlwdGlvbktleShrZXkpOworICAgICAgICAgICAgICAgIHJlY2VpdmVyID0gdHJhY2tFdmVu
dC5yZWNlaXZlcjsKKyAgICAgICAgICAgICAgICByZWNlaXZlci50cmFuc2Zvcm0gPSB0cmFuc2Zv
cm07CisgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50LnN0cmVhbXNbMF0pOworICAg
ICAgICAgICAgfTsKKyAgICAgICAgfSk7CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0
KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKyAgICB9KTsKKyAgICBsb2NhbC5zcmNPYmplY3Qg
PSBsb2NhbFN0cmVhbTsKKyAgICByZW1vdGUuc3JjT2JqZWN0ID0gc3RyZWFtOworICAgIGF3YWl0
IHJlbW90ZS5wbGF5KCk7CisKKyAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBj
b25zdCBzZW5kZXJDb3VudGVyID0gaW50ZXJuYWxzLnNmcmFtZUNvdW50ZXIoc2VuZGVyLnRyYW5z
Zm9ybSk7CisgICAgICAgIGNvbnN0IHJlY2VpdmVyQ291bnRlciA9IGludGVybmFscy5zZnJhbWVD
b3VudGVyKHJlY2VpdmVyLnRyYW5zZm9ybSk7CisKKyAgICAgICAgbGV0IGNvdW50ZXIgPSAwOwor
ICAgICAgICB3aGlsZSAocmVjZWl2ZXJDb3VudGVyID09PSBpbnRlcm5hbHMuc2ZyYW1lQ291bnRl
cihyZWNlaXZlci50cmFuc2Zvcm0pICYmICsrY291bnRlciA8IDEwMCkKKyAgICAgICAgICAgIGF3
YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpOworICAg
ICAgICBhc3NlcnRfbm90X2VxdWFscyhpbnRlcm5hbHMuc2ZyYW1lQ291bnRlcihyZWNlaXZlci50
cmFuc2Zvcm0pLCByZWNlaXZlckNvdW50ZXIsICJyZWNlaXZlciIpOworICAgICAgICBhc3NlcnRf
bm90X2VxdWFscyhpbnRlcm5hbHMuc2ZyYW1lQ291bnRlcihzZW5kZXIudHJhbnNmb3JtKSwgc2Vu
ZGVyQ291bnRlciwgInNlbmRlciIpOworICAgIH0KK30sICJWaWRlbyBleGNoYW5nZSB3aXRoIFNG
cmFtZSIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415543</attachid>
            <date>2020-12-07 02:42:16 -0800</date>
            <delta_ts>2020-12-07 09:02:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219532-20201207114214.patch</filename>
            <type>text/plain</type>
            <size>33755</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIyODZmNjc0ODk1NjQw
ZWJmYmEyZjIyN2FjZTBjZGU3ODZmNzI5Yy4uNTQ0MTE0YThlYTY1OGI3ODgyNzQxOWUyMjM3MWY0
NmQ4YWZkNmRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDIwLTEyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSBTRnJhbWUgSDI2
NCBleHBlcmltZW50YWwgY29tcGF0aWJpbGl0eSBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk1MzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gU0ZyYW1lIGNvbXBhdGliaWxpdHkgbW9k
ZSBmb3IgSC4yNjQuCisgICAgICAgIFRvIGRvIHNvLCB0aGUgZW5jcnlwdG9yIGdlbmVyYXRlcyBh
biBTRnJhbWUgYW5kIHByZWZpeGVzIGl0IHdpdGggZWl0aGVyIGEgZGVsdGEgZnJhbWUgcHJlZml4
IG9yIGEga2V5IGZyYW1lIHByZWZpeC4KKyAgICAgICAgVGhlIFNGcmFtZSBjb250ZW50IGlzIGVz
Y2FwZWQgc28gdGhhdCBpdCBpcyBjb25zaWRlcmVkIGFzIG9uZSBiaWcgSURSIG9yIFNsaWNlIG5h
bHUuCisgICAgICAgIFRoZSBkZWNvZGVyIG9uIHRoZSBvdGhlciBoYW5kLCB1bmVzY2FwZXMgdGhl
IGNvbnRlbnQsIHJlbW92ZXMgdGhlIHByZWZpeCBhbmQgZGVjcnlwdHMgdGhlIFNGcmFtZSBjb250
ZW50LgorCisgICAgICAgIFRlc3Q6IHdlYnJ0Yy92aWRlby1zZnJhbWUuaHRtbAorCisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9IMjY0VXRpbHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmlzU2xpY2VOQUxVKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU1BTTkFMVSk6CisgICAg
ICAgIChXZWJDb3JlOjppc1BQU05BTFUpOgorICAgICAgICAoV2ViQ29yZTo6aXNJRFJOQUxVKToK
KyAgICAgICAgKFdlYkNvcmU6OmZpbmROYWx1cyk6CisgICAgICAgIChXZWJDb3JlOjpjb21wdXRl
UHJlZml4T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om5lZWRzUmJzcFVuZXNjYXBpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6ZnJvbVJic3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVBy
ZWZpeEJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpmaW5kRXNjYXBlUmJzcFBhdHRlcm5zKToK
KyAgICAgICAgKFdlYkNvcmU6OnRvUmJzcCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9IMjY0VXRpbHMuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNG
cmFtZVRyYW5zZm9ybS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zv
cm06OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGw6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENSdHBT
RnJhbWVUcmFuc2Zvcm1lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcik6CisgICAgICAgIChXZWJDb3Jl
OjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6ZGVjcnlwdEZyYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAg
KiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmg6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIwLTEyLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIE9ubHkgdGhlIGZpcnN0IHdoZWVsIGV2ZW50IGluIGEgZ2VzdHVyZSBzaG91
bGQgYmUgY2FuY2VsYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9IMjY0VXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9IMjY0VXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxODdlODFiNDEwN2M5YzkyYWFiMzc1YWRlNTQ0
NDJlYzk1NDZjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL0gyNjRVdGlscy5jcHAKQEAgLTAsMCArMSwxODYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiSDI2NFV0aWxzLmgiCisKKyNpZiBFTkFCTEUoV0VCX1JUQykKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGF0aWMgaW5saW5lIGJvb2wgaXNTbGljZU5BTFUodWludDhfdCBkYXRhKQor
eworICAgIHJldHVybiAoZGF0YSAmIDB4MUYpID09IDE7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9v
bCBpc1NQU05BTFUodWludDhfdCBkYXRhKQoreworICAgIHJldHVybiAoZGF0YSAmIDB4MUYpID09
IDc7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1BQU05BTFUodWludDhfdCBkYXRhKQorewor
ICAgIHJldHVybiAoZGF0YSAmIDB4MUYpID09IDg7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBp
c0lEUk5BTFUodWludDhfdCBkYXRhKQoreworICAgIHJldHVybiAoZGF0YSAmIDB4MUYpID09IDU7
Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBmaW5kTmFsdXMoY29uc3QgdWludDhfdCogZnJhbWVE
YXRhLCBzaXplX3QgZnJhbWVTaXplLCBzaXplX3Qgb2Zmc2V0LCBjb25zdCBGdW5jdGlvbjxib29s
KHNpemVfdCk+JiBjYWxsYmFjaykKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gNCArIG9mZnNldDsg
aSA8IGZyYW1lU2l6ZTsgKytpKSB7CisgICAgICAgIGlmIChmcmFtZURhdGFbaSAtIDRdID09IDAg
JiYgZnJhbWVEYXRhW2kgLSAzXSA9PSAwICYmIGZyYW1lRGF0YVtpIC0gMl0gPT0gMCAmJiBmcmFt
ZURhdGFbaSAtIDFdID09IDEpIHsKKyAgICAgICAgICAgIGlmIChjYWxsYmFjayhpKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK3NpemVfdCBjb21wdXRl
UHJlZml4T2Zmc2V0KGNvbnN0IHVpbnQ4X3QqIGZyYW1lRGF0YSwgc2l6ZV90IGZyYW1lU2l6ZSkK
K3sKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICBmaW5kTmFsdXMoZnJhbWVEYXRhLCBmcmFt
ZVNpemUsIDAsIFsmb2Zmc2V0LCAmZnJhbWVEYXRhXShhdXRvIHBvc2l0aW9uKSB7CisgICAgICAg
IGlmIChpc0lEUk5BTFUoZnJhbWVEYXRhW3Bvc2l0aW9uXSkgfHwgaXNTbGljZU5BTFUoZnJhbWVE
YXRhW3Bvc2l0aW9uXSkpIHsKKyAgICAgICAgICAgIC8vIFNraXAgMDAgMDAgMDAgMDEsIG5hbHUg
dHlwZSBieXRlIGFuZCB0aGUgbmV4dCBieXRlLgorICAgICAgICAgICAgb2Zmc2V0ID0gcG9zaXRp
b24gKyAyOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0pOworICAgIHJldHVybiBvZmZzZXQ7Cit9CisKK2Jvb2wgbmVlZHNS
YnNwVW5lc2NhcGluZyhjb25zdCB1aW50OF90KiBmcmFtZURhdGEsIHNpemVfdCBmcmFtZVNpemUp
Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFtZVNpemUgLSAzOyArK2kpIHsKKyAg
ICAgICAgaWYgKGZyYW1lRGF0YVtpXSA9PSAwICYmIGZyYW1lRGF0YVtpICsgMV0gPT0gMCAmJiBm
cmFtZURhdGFbaSArIDJdID09IDMpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitWZWN0b3I8dWludDhfdD4gZnJvbVJic3AoY29uc3QgdWlu
dDhfdCogZnJhbWVEYXRhLCBzaXplX3QgZnJhbWVTaXplKQoreworICAgIFZlY3Rvcjx1aW50OF90
PiBidWZmZXI7CisgICAgYnVmZmVyLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZnJhbWVTaXplKTsK
KworICAgIHNpemVfdCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBmcmFtZVNpemUgLSAzOyArK2kp
IHsKKyAgICAgICAgaWYgKGZyYW1lRGF0YVtpXSA9PSAwICYmIGZyYW1lRGF0YVtpICsgMV0gPT0g
MCAmJiBmcmFtZURhdGFbaSArIDJdID09IDMpIHsKKyAgICAgICAgICAgIGJ1ZmZlci51bmNoZWNr
ZWRBcHBlbmQoZnJhbWVEYXRhW2ldKTsKKyAgICAgICAgICAgIGJ1ZmZlci51bmNoZWNrZWRBcHBl
bmQoZnJhbWVEYXRhW2kgKyAxXSk7CisgICAgICAgICAgICAvLyBTa2lwIG5leHQgYnl0ZSB3aGlj
aCBpcyBkZWxpbWl0ZXIuCisgICAgICAgICAgICBpICs9IDI7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgYnVmZmVyLnVuY2hlY2tlZEFwcGVuZChmcmFtZURhdGFbaV0pOworICAgIH0KKyAg
ICBmb3IgKDsgaSA8IGZyYW1lU2l6ZTsgKytpKQorICAgICAgICBidWZmZXIudW5jaGVja2VkQXBw
ZW5kKGZyYW1lRGF0YVtpXSk7CisKKyAgICByZXR1cm4gYnVmZmVyOworfQorCitIMjY0UHJlZml4
QnVmZmVyIGNvbXB1dGVQcmVmaXhCdWZmZXIoY29uc3QgdWludDhfdCogZnJhbWVEYXRhLCBzaXpl
X3QgZnJhbWVTaXplKQoreworICAgIC8vIERlbHRhIGFuZCBrZXkgcHJlZml4ZXMgYXNzdW1lIFNQ
Uy9QUFMgd2l0aCBJRHMgZXF1YWwgdG8gMCBoYXZlIGJlZW4gdHJhbnNtaXR0ZWQuCisgICAgc3Rh
dGljIGNvbnN0IHVpbnQ4X3QgcHJlZml4RGVsdGFGcmFtZVs2XSA9IHsgMHgwMCwgMHgwMCwgMHgw
MCwgMHgwMSwgMHgyMSwgMHhlMCB9OworCisgICAgaWYgKGZyYW1lU2l6ZSA8IDUpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICAvLyBXZSBhc3N1bWUgYSBrZXkgZnJhbWUgc3RhcnRzIHdpdGgg
U1BTLCB0aGVuIFBQUy4gT3RoZXJ3aXNlIHdlIHdyYXAgaXQgYXMgYSBkZWx0YSBmcmFtZS4KKyAg
ICBpZiAoIWlzU1BTTkFMVShmcmFtZURhdGFbNF0pKQorICAgICAgICByZXR1cm4gSDI2NFByZWZp
eEJ1ZmZlciB7IHByZWZpeERlbHRhRnJhbWUsIHNpemVvZihwcmVmaXhEZWx0YUZyYW1lKSwgeyB9
IH07CisKKyAgICAvLyBTZWFyY2ggZm9yIFBQUworICAgIHNpemVfdCBzcHNQcHNMZW5ndGggPSAw
OworICAgIGZpbmROYWx1cyhmcmFtZURhdGEsIGZyYW1lU2l6ZSwgNSwgW2ZyYW1lRGF0YSwgJnNw
c1Bwc0xlbmd0aF0oYXV0byBwb3NpdGlvbikgeworICAgICAgICBpZiAoaXNQUFNOQUxVKGZyYW1l
RGF0YVtwb3NpdGlvbl0pKQorICAgICAgICAgICAgc3BzUHBzTGVuZ3RoID0gcG9zaXRpb247Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0pOworICAgIGlmICghc3BzUHBzTGVuZ3RoKQorICAg
ICAgICByZXR1cm4gSDI2NFByZWZpeEJ1ZmZlciB7IHByZWZpeERlbHRhRnJhbWUsIHNpemVvZihw
cmVmaXhEZWx0YUZyYW1lKSwgeyB9IH07CisKKyAgICAvLyBTZWFyY2ggZm9yIG5leHQgTkFMVSB0
byBjb21wdXRlIHRoZSByZWFsIHNwc1Bwc0xlbmd0aCwgaW5jbHVkaW5nIHRoZSBuZXh0IDAwIDAw
IDAwIDAxLgorICAgIGZpbmROYWx1cyhmcmFtZURhdGEsIGZyYW1lU2l6ZSwgc3BzUHBzTGVuZ3Ro
ICsgMSwgWyZzcHNQcHNMZW5ndGhdKGF1dG8gcG9zaXRpb24pIHsKKyAgICAgICAgc3BzUHBzTGVu
Z3RoID0gcG9zaXRpb247CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0pOworCisgICAgVmVj
dG9yPHVpbnQ4X3Q+IGJ1ZmZlcjsKKyAgICBidWZmZXIucmVzaXplKHNwc1Bwc0xlbmd0aCArIDIp
OworICAgIHN0ZDo6bWVtY3B5KGJ1ZmZlci5kYXRhKCksIGZyYW1lRGF0YSwgc3BzUHBzTGVuZ3Ro
KTsKKyAgICBidWZmZXJbc3BzUHBzTGVuZ3RoXSA9IDB4MjU7CisgICAgYnVmZmVyW3Nwc1Bwc0xl
bmd0aCArIDFdID0gMHhiODsKKyAgICByZXR1cm4geyBidWZmZXIuZGF0YSgpLCBidWZmZXIuc2l6
ZSgpLCBXVEZNb3ZlKGJ1ZmZlcikgfTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGZpbmRFc2Nh
cGVSYnNwUGF0dGVybnMoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBmcmFtZSwgc2l6ZV90IG9mZnNl
dCwgY29uc3QgRnVuY3Rpb248dm9pZChzaXplX3QsIGJvb2wpPiYgY2FsbGJhY2spCit7CisgICAg
c2l6ZV90IG51bUNvbnNlY3V0aXZlWmVyb3MgPSAwOworICAgIGF1dG8qIGRhdGEgPSBmcmFtZS5k
YXRhKCk7CisgICAgZm9yIChzaXplX3QgaSA9IG9mZnNldDsgaSA8IGZyYW1lLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGJvb2wgc2hvdWxkRXNjYXBlID0gZGF0YVtpXSA8PSAzICYmIG51bUNvbnNl
Y3V0aXZlWmVyb3MgPj0gMjsKKyAgICAgICAgaWYgKHNob3VsZEVzY2FwZSkKKyAgICAgICAgICAg
IG51bUNvbnNlY3V0aXZlWmVyb3MgPSAwOworCisgICAgICAgIGlmIChkYXRhW2ldID09IDApCisg
ICAgICAgICAgICArK251bUNvbnNlY3V0aXZlWmVyb3M7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIG51bUNvbnNlY3V0aXZlWmVyb3MgPSAwOworCisgICAgICAgIGNhbGxiYWNrKGksIHNob3Vs
ZEVzY2FwZSk7CisgICAgfQorfQorCit2b2lkIHRvUmJzcChWZWN0b3I8dWludDhfdD4mIGZyYW1l
LCBzaXplX3Qgb2Zmc2V0KQoreworICAgIHNpemVfdCBjb3VudCA9IDA7CisgICAgZmluZEVzY2Fw
ZVJic3BQYXR0ZXJucyhmcmFtZSwgb2Zmc2V0LCBbJmNvdW50XShzaXplX3QsIGJvb2wgc2hvdWRs
QmVFc2NhcGVkKSB7CisgICAgICAgIGlmIChzaG91ZGxCZUVzY2FwZWQpCisgICAgICAgICAgICBj
b3VudCsrOworICAgIH0pOworICAgIGlmICghY291bnQpCisgICAgICAgIHJldHVybjsKKworICAg
IFZlY3Rvcjx1aW50OF90PiBuZXdGcmFtZTsKKyAgICBuZXdGcmFtZS5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KGZyYW1lLnNpemUoKSArIGNvdW50KTsKKyAgICBuZXdGcmFtZS5hcHBlbmQoZnJhbWUu
ZGF0YSgpLCBvZmZzZXQpOworCisgICAgZmluZEVzY2FwZVJic3BQYXR0ZXJucyhmcmFtZSwgb2Zm
c2V0LCBbZGF0YSA9IGZyYW1lLmRhdGEoKSwgJm5ld0ZyYW1lXShzaXplX3QgcG9zaXRpb24sIGJv
b2wgc2hvdWRsQmVFc2NhcGVkKSB7CisgICAgICAgIGlmIChzaG91ZGxCZUVzY2FwZWQpCisgICAg
ICAgICAgICBuZXdGcmFtZS51bmNoZWNrZWRBcHBlbmQoMyk7CisgICAgICAgIG5ld0ZyYW1lLnVu
Y2hlY2tlZEFwcGVuZChkYXRhW3Bvc2l0aW9uXSk7CisgICAgfSk7CisKKyAgICBmcmFtZSA9IFdU
Rk1vdmUobmV3RnJhbWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vSDI2NFV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L0gyNjRVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NmE1NzcxMjljOGY0NTIzNTMzNWYwNWMzZDg2OTMw
MjY0MmEzNGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL0gyNjRVdGlscy5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJf
UlRDKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBIMjY0UHJlZml4QnVmZmVyIHsKKyAgICBjb25zdCB1aW50OF90KiBkYXRhIHsgbnVs
bHB0ciB9OworICAgIHNpemVfdCBzaXplIHsgMCB9OworICAgIFZlY3Rvcjx1aW50OF90PiBidWZm
ZXI7Cit9OworCitzaXplX3QgY29tcHV0ZVByZWZpeE9mZnNldChjb25zdCB1aW50OF90Kiwgc2l6
ZV90KTsKK0gyNjRQcmVmaXhCdWZmZXIgY29tcHV0ZVByZWZpeEJ1ZmZlcihjb25zdCB1aW50OF90
Kiwgc2l6ZV90KTsKKworV0VCQ09SRV9FWFBPUlQgYm9vbCBuZWVkc1Jic3BVbmVzY2FwaW5nKGNv
bnN0IHVpbnQ4X3QqLCBzaXplX3QpOworV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGZy
b21SYnNwKGNvbnN0IHVpbnQ4X3QqLCBzaXplX3QpOworV0VCQ09SRV9FWFBPUlQgdm9pZCB0b1Ji
c3AoVmVjdG9yPHVpbnQ4X3Q+Jiwgc2l6ZV90KTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9SVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAppbmRleCA2NGVkNzdjNDY2
N2M2ZDVhNThmNzJmODZhZjM4ZDc4YTc0ZmVkOTczLi4xNjgzNmUwZWEzNTU2ODUyNjFjZDgzMTVk
YmFmMzA4ODZmZGY1MzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNs
dWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHAKaW5kZXggZWMxZDM4ZTM4OTNhYWU4NDA5ZjAy
OTA4NTJmMTEyYzdlOTRlYTUyZi4uMTU5ODUxOGVlM2JlMzJmNjZmZDk2ZTU0MGZmODA0ODQ2YmRl
MTYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTRnJhbWVUcmFuc2Zvcm0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcApAQCAtMzAsNiArMzAsOCBAQAogCiAjaW5j
bHVkZSAiQ3J5cHRvS2V5UmF3LmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0QnVmZmVyU291cmNl
LmgiCisjaW5jbHVkZSAiSlNSVENFbmNvZGVkQXVkaW9GcmFtZS5oIgorI2luY2x1ZGUgIkpTUlRD
RW5jb2RlZFZpZGVvRnJhbWUuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUlRD
RW5jb2RlZEF1ZGlvRnJhbWUuaCIKICNpbmNsdWRlICJSVENFbmNvZGVkVmlkZW9GcmFtZS5oIgpA
QCAtNDYsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJUQ1J0cFNGcmFtZVRyYW5z
Zm9ybTo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIE9wdGlvbnMgb3B0aW9ucykKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZj
b250ZXh0KQotICAgICwgbV90cmFuc2Zvcm1lcihSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6Y3Jl
YXRlKCkpCisgICAgLCBtX3RyYW5zZm9ybWVyKFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpjcmVh
dGUob3B0aW9ucy5jb21wYXRpYmlsaXR5TW9kZSkpCiB7CiAgICAgbV90cmFuc2Zvcm1lci0+c2V0
SXNFbmNyeXB0aW5nKG9wdGlvbnMucm9sZSA9PSBSb2xlOjpFbmNyeXB0KTsKICAgICBtX3RyYW5z
Zm9ybWVyLT5zZXRBdXRoZW50aWNhdGlvblNpemUob3B0aW9ucy5hdXRoZW50aWNhdGlvblNpemUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBT
RnJhbWVUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtLmgKaW5kZXggYWI0OGYyZDBjZWQ1ODJkMTU0MjZlYTdhN2I0MDc3
ZWRiNDgwODUzZi4uNWRmMzg2MmZlODc3YmI1ODk0MmIxODkzODQ5ZDQ2ZjhmMDJmZGRmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVU
cmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNGcmFtZVRyYW5zZm9ybS5oCkBAIC0yOSwxMSArMjksMTEgQEAKIAogI2luY2x1ZGUgIkNvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJSVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIENyeXB0b0tleTsKLWNsYXNzIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
OwogY2xhc3MgUlRDUnRwVHJhbnNmb3JtQmFja2VuZDsKIGNsYXNzIFJlYWRhYmxlU3RyZWFtOwog
Y2xhc3MgU2ltcGxlUmVhZGFibGVTdHJlYW1Tb3VyY2U7CkBAIC00Miw5ICs0MiwxMSBAQCBjbGFz
cyBXcml0YWJsZVN0cmVhbTsKIGNsYXNzIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybSA6IHB1YmxpYyBS
ZWZDb3VudGVkPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4sIHByaXZhdGUgQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgUm9sZSB7IEVuY3J5cHQsIERl
Y3J5cHQgfTsKKyAgICB1c2luZyBDb21wYXRpYmlsaXR5TW9kZSA9IFJUQ1J0cFNGcmFtZVRyYW5z
Zm9ybWVyOjpDb21wYXRpYmlsaXR5TW9kZTsKICAgICBzdHJ1Y3QgT3B0aW9ucyB7CiAgICAgICAg
IFJvbGUgcm9sZSB7IFJvbGU6OkVuY3J5cHQgfTsKICAgICAgICAgdWludDY0X3QgYXV0aGVudGlj
YXRpb25TaXplIHsgMTAgfTsKKyAgICAgICAgQ29tcGF0aWJpbGl0eU1vZGUgY29tcGF0aWJpbGl0
eU1vZGUgeyBDb21wYXRpYmlsaXR5TW9kZTo6Tm9uZSB9OwogICAgIH07CiAKICAgICBzdGF0aWMg
UmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIE9wdGlvbnMgb3B0aW9ucykgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBT
RnJhbWVUcmFuc2Zvcm0oY29udGV4dCwgb3B0aW9ucykpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybS5p
ZGwKaW5kZXggYjMzYjkwNDQwZjEyNjRkYjg4OGYzOGRjYTM2N2EwM2NhNTk5YjIzYi4uMGRkY2E0
NDRjOGM3NDNmOTA3MDQxODU3OGMwYzk4ZjkzMDg1ZDdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm0uaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmlkbApAQCAtMjgsOSArMjgsMTUgQEAgZW51bSBSVENSdHBTRnJhbWVUcmFuc2Zvcm1Sb2xlIHsK
ICAgICAiZGVjcnlwdCIKIH07CiAKK2VudW0gUlRDUnRwU0ZyYW1lVHJhbnNmb3JtQ29tcGF0aWJp
bGl0eU1vZGUgeworICAgICJub25lIiwKKyAgICAiSDI2NCIKK307CisKIGRpY3Rpb25hcnkgUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtT3B0aW9ucyB7CiAgICAgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtUm9s
ZSByb2xlID0gImVuY3J5cHQiOwogICAgIHVuc2lnbmVkIGxvbmcgYXV0aGVudGljYXRpb25TaXpl
ID0gMTA7CisgICAgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtQ29tcGF0aWJpbGl0eU1vZGUgY29tcGF0
aWJpbGl0eU1vZGUgPSAibm9uZSI7CiB9OwogCiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3Bw
CmluZGV4IDUyNDNiYjFkZWRjM2ZiM2NlYjZhNGZkZmQwZjViZGZhNDEwYmE0MGUuLmU4NTFkNTgw
MGJkMjg4Zjk1N2FjMDQzNTg5ZDg5ZGRiNDgyMDYzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
ZXIuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAorI2luY2x1
ZGUgIkgyNjRVdGlscy5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBpbmxpbmUg
dm9pZCB3cml0ZVVJbnQ2NCh1aW50OF90KiBkYXRhLCB1aW50NjRfdCB2YWx1ZSwgdWludDhfdCB2
YWx1ZUxlbmd0aCkKQEAgLTEzMSwxMiArMTMzLDEzIEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uYWw8
U0ZyYW1lSGVhZGVySW5mbz4gcGFyc2VTRnJhbWVIZWFkZXIoY29uc3QgdWludDhfdCogZGF0YSwK
ICAgICByZXR1cm4gU0ZyYW1lSGVhZGVySW5mbyB7IGhlYWRlclNpemUsIGtleUlkLCBjb3VudGVy
IH07CiB9CiAKLVJlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcj4gUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXI6OmNyZWF0ZSgpCitSZWY8UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI+IFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjpjcmVhdGUoQ29tcGF0aWJpbGl0eU1vZGUgbW9kZSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcigpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcihtb2RlKSk7CiB9CiAKLVJUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcigpCitSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcjo6UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIoQ29tcGF0aWJpbGl0eU1vZGUg
bW9kZSkKKyAgICA6IG1fY29tcGF0aWJpbGl0eU1vZGUobW9kZSkKIHsKIH0KIApAQCAtMTc3LDYg
KzE4MCwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6c2V0
RW5jcnlwdGlvbktleShjb25zdCBWZWN0b3I8dWludDhfdAogCiBFeGNlcHRpb25PcjxWZWN0b3I8
dWludDhfdD4+IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpkZWNyeXB0RnJhbWUoY29uc3QgdWlu
dDhfdCogZnJhbWVEYXRhLCBzaXplX3QgZnJhbWVTaXplKQogeworICAgIFZlY3Rvcjx1aW50OF90
PiBidWZmZXI7CisgICAgaWYgKG1fY29tcGF0aWJpbGl0eU1vZGUgPT0gQ29tcGF0aWJpbGl0eU1v
ZGU6OkgyNjQpIHsKKyAgICAgICAgYXV0byBvZmZzZXQgPSBjb21wdXRlUHJlZml4T2Zmc2V0KGZy
YW1lRGF0YSwgZnJhbWVTaXplKTsKKyAgICAgICAgZnJhbWVEYXRhICs9IG9mZnNldDsKKyAgICAg
ICAgZnJhbWVTaXplIC09IG9mZnNldDsKKyAgICAgICAgaWYgKG5lZWRzUmJzcFVuZXNjYXBpbmco
ZnJhbWVEYXRhLCBmcmFtZVNpemUpKSB7CisgICAgICAgICAgICBidWZmZXIgPSBmcm9tUmJzcChm
cmFtZURhdGEsIGZyYW1lU2l6ZSk7CisgICAgICAgICAgICBmcmFtZURhdGEgPSBidWZmZXIuZGF0
YSgpOworICAgICAgICAgICAgZnJhbWVTaXplID0gYnVmZmVyLnNpemUoKTsKKyAgICAgICAgfQor
ICAgIH0KKwogICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9rZXlMb2NrKTsKIAogICAgIGF1
dG8gaGVhZGVyID0gcGFyc2VTRnJhbWVIZWFkZXIoZnJhbWVEYXRhLCBmcmFtZVNpemUpOwpAQCAt
MjIxLDI2ICsyMzYsMzQgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcjo6ZW5jcnlwdEZyYW1lKGNvbnN0IHVpbnQ4X3QKIHsKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgTWF4SGVhZGVyU2l6ZSA9IDE3OwogCisgICAgVmVjdG9yPHVpbnQ4X3Q+
IHRyYW5zZm9ybWVkRGF0YTsKKyAgICBIMjY0UHJlZml4QnVmZmVyIHByZWZpeEJ1ZmZlcjsKKyAg
ICBpZiAobV9jb21wYXRpYmlsaXR5TW9kZSA9PSBDb21wYXRpYmlsaXR5TW9kZTo6SDI2NCkKKyAg
ICAgICAgcHJlZml4QnVmZmVyID0gY29tcHV0ZVByZWZpeEJ1ZmZlcihmcmFtZURhdGEsIGZyYW1l
U2l6ZSk7CisKICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fa2V5TG9jayk7CiAKICAgICBh
dXRvIGl2ID0gY29tcHV0ZUlWKG1fY291bnRlciwgbV9zYWx0S2V5KTsKIAotICAgIFZlY3Rvcjx1
aW50OF90PiB0cmFuc2Zvcm1lZERhdGE7Ci0gICAgdHJhbnNmb3JtZWREYXRhLnJlc2l6ZShmcmFt
ZVNpemUgKyBNYXhIZWFkZXJTaXplICsgbV9hdXRoZW50aWNhdGlvblNpemUpOworICAgIHRyYW5z
Zm9ybWVkRGF0YS5yZXNpemUocHJlZml4QnVmZmVyLnNpemUgKyBmcmFtZVNpemUgKyBNYXhIZWFk
ZXJTaXplICsgbV9hdXRoZW50aWNhdGlvblNpemUpOwogCisgICAgaWYgKHByZWZpeEJ1ZmZlci5k
YXRhKQorICAgICAgICBzdGQ6Om1lbWNweSh0cmFuc2Zvcm1lZERhdGEuZGF0YSgpLCBwcmVmaXhC
dWZmZXIuZGF0YSwgcHJlZml4QnVmZmVyLnNpemUpOworCisgICAgYXV0byogbmV3RGF0YVBvaW50
ZXIgPSB0cmFuc2Zvcm1lZERhdGEuZGF0YSgpICsgcHJlZml4QnVmZmVyLnNpemU7CiAgICAgLy8g
RmlsbCBoZWFkZXIuCiAgICAgc2l6ZV90IGhlYWRlclNpemUgPSAxOwotICAgIHRyYW5zZm9ybWVk
RGF0YVswXSA9IGNvbXB1dGVGaXJzdEhlYWRlckJ5dGUobV9rZXlJZCwgbV9jb3VudGVyKTsKKyAg
ICAqbmV3RGF0YVBvaW50ZXIgPSBjb21wdXRlRmlyc3RIZWFkZXJCeXRlKG1fa2V5SWQsIG1fY291
bnRlcik7CiAgICAgaWYgKG1fa2V5SWQgPj0gOCkgewogICAgICAgICBhdXRvIGtleUlkTGVuZ3Ro
ID0gbGVuZ3RoT2ZVSW50NjQobV9rZXlJZCk7Ci0gICAgICAgIHdyaXRlVUludDY0KHRyYW5zZm9y
bWVkRGF0YS5kYXRhKCkgKyBoZWFkZXJTaXplLCBtX2tleUlkLCBrZXlJZExlbmd0aCk7CisgICAg
ICAgIHdyaXRlVUludDY0KG5ld0RhdGFQb2ludGVyICsgaGVhZGVyU2l6ZSwgbV9rZXlJZCwga2V5
SWRMZW5ndGgpOwogICAgICAgICBoZWFkZXJTaXplICs9IGtleUlkTGVuZ3RoOwogICAgIH0KICAg
ICBhdXRvIGNvdW50ZXJMZW5ndGggPSBsZW5ndGhPZlVJbnQ2NChtX2NvdW50ZXIpOwotICAgIHdy
aXRlVUludDY0KHRyYW5zZm9ybWVkRGF0YS5kYXRhKCkgKyBoZWFkZXJTaXplLCBtX2NvdW50ZXIs
IGNvdW50ZXJMZW5ndGgpOworICAgIHdyaXRlVUludDY0KG5ld0RhdGFQb2ludGVyICsgaGVhZGVy
U2l6ZSwgbV9jb3VudGVyLCBjb3VudGVyTGVuZ3RoKTsKICAgICBoZWFkZXJTaXplICs9IGNvdW50
ZXJMZW5ndGg7CiAKLSAgICB0cmFuc2Zvcm1lZERhdGEucmVzaXplKGZyYW1lU2l6ZSArIGhlYWRl
clNpemUgKyBtX2F1dGhlbnRpY2F0aW9uU2l6ZSk7CisgICAgdHJhbnNmb3JtZWREYXRhLnJlc2l6
ZShwcmVmaXhCdWZmZXIuc2l6ZSArIGZyYW1lU2l6ZSArIGhlYWRlclNpemUgKyBtX2F1dGhlbnRp
Y2F0aW9uU2l6ZSk7CiAKICAgICAvLyBGaWxsIGVuY3J5cHRlZCBkYXRhCiAgICAgYXV0byBlbmNy
eXB0ZWREYXRhID0gZW5jcnlwdERhdGEoZnJhbWVEYXRhLCBmcmFtZVNpemUsIGl2LCBtX2VuY3J5
cHRpb25LZXkpOwpAQCAtMjQ4LDExICsyNzEsMTQgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4
X3Q+PiBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6ZW5jcnlwdEZyYW1lKGNvbnN0IHVpbnQ4X3QK
ICAgICBpZiAoZW5jcnlwdGVkRGF0YS5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGVu
Y3J5cHRlZERhdGEucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0gICAgc3RkOjptZW1jcHkodHJhbnNm
b3JtZWREYXRhLmRhdGEoKSArIGhlYWRlclNpemUsIGVuY3J5cHRlZERhdGEucmV0dXJuVmFsdWUo
KS5kYXRhKCksIGZyYW1lU2l6ZSk7CisgICAgc3RkOjptZW1jcHkobmV3RGF0YVBvaW50ZXIgKyBo
ZWFkZXJTaXplLCBlbmNyeXB0ZWREYXRhLnJldHVyblZhbHVlKCkuZGF0YSgpLCBmcmFtZVNpemUp
OwogCiAgICAgLy8gRmlsbCBzaWduYXR1cmUKLSAgICBhdXRvIHNpZ25hdHVyZSA9IGNvbXB1dGVF
bmNyeXB0ZWREYXRhU2lnbmF0dXJlKHRyYW5zZm9ybWVkRGF0YS5kYXRhKCksIGZyYW1lU2l6ZSAr
IGhlYWRlclNpemUsIG1fYXV0aGVudGljYXRpb25LZXkpOwotICAgIHN0ZDo6bWVtY3B5KHRyYW5z
Zm9ybWVkRGF0YS5kYXRhKCkgKyBmcmFtZVNpemUgKyBoZWFkZXJTaXplLCBzaWduYXR1cmUuZGF0
YSgpLCBtX2F1dGhlbnRpY2F0aW9uU2l6ZSk7CisgICAgYXV0byBzaWduYXR1cmUgPSBjb21wdXRl
RW5jcnlwdGVkRGF0YVNpZ25hdHVyZShuZXdEYXRhUG9pbnRlciwgZnJhbWVTaXplICsgaGVhZGVy
U2l6ZSwgbV9hdXRoZW50aWNhdGlvbktleSk7CisgICAgc3RkOjptZW1jcHkobmV3RGF0YVBvaW50
ZXIgKyBmcmFtZVNpemUgKyBoZWFkZXJTaXplLCBzaWduYXR1cmUuZGF0YSgpLCBtX2F1dGhlbnRp
Y2F0aW9uU2l6ZSk7CisKKyAgICBpZiAobV9jb21wYXRpYmlsaXR5TW9kZSA9PSBDb21wYXRpYmls
aXR5TW9kZTo6SDI2NCkKKyAgICAgICAgdG9SYnNwKHRyYW5zZm9ybWVkRGF0YSwgcHJlZml4QnVm
ZmVyLnNpemUpOwogCiAgICAgKyttX2NvdW50ZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaApp
bmRleCBhNGUxYWExNzZlODY2YjRmMTYwNmY2OWY2NmMyNDc0YTgzNDkxMzZlLi5kZTIzYmQ4ZWFm
YjBlOGYzODA1OWE4MDAyYzhmZjZhMDkyMjI0MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5o
CkBAIC0zNyw3ICszNyw5IEBAIGNsYXNzIENyeXB0b0tleTsKIAogY2xhc3MgUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXIsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+IHsKIHB1YmxpYzoKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyPiBjcmVhdGUo
KTsKKyAgICBlbnVtIGNsYXNzIENvbXBhdGliaWxpdHlNb2RlIHsgTm9uZSwgSDI2NCB9OworCisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcj4gY3Jl
YXRlKENvbXBhdGliaWxpdHlNb2RlID0gQ29tcGF0aWJpbGl0eU1vZGU6Ok5vbmUpOwogICAgIFdF
QkNPUkVfRVhQT1JUIH5SVENSdHBTRnJhbWVUcmFuc2Zvcm1lcigpOwogCiAgICAgdm9pZCBzZXRJ
c0VuY3J5cHRpbmcoYm9vbCk7CkBAIC01NCw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dENvdW50ZXIodWludDY0X3QgY291bnRlcikgeyBtX2NvdW50ZXIgPSBjb3VudGVyOyB9CiAKIHBy
aXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIoKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcihDb21wYXRp
YmlsaXR5TW9kZSk7CiAKICAgICBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IGRlY3J5cHRG
cmFtZShjb25zdCB1aW50OF90Kiwgc2l6ZV90KTsKICAgICBFeGNlcHRpb25PcjxWZWN0b3I8dWlu
dDhfdD4+IGVuY3J5cHRGcmFtZShjb25zdCB1aW50OF90Kiwgc2l6ZV90KTsKQEAgLTc4LDYgKzgw
LDcgQEAgcHJpdmF0ZToKICAgICB1aW50NjRfdCBtX2F1dGhlbnRpY2F0aW9uU2l6ZSB7IDEwIH07
CiAgICAgdWludDY0X3QgbV9rZXlJZCB7IDAgfTsKICAgICB1aW50NjRfdCBtX2NvdW50ZXIgeyAw
IH07CisgICAgQ29tcGF0aWJpbGl0eU1vZGUgbV9jb21wYXRpYmlsaXR5TW9kZSB7IENvbXBhdGli
aWxpdHlNb2RlOjpOb25lIH07CiB9OwogCiBpbmxpbmUgdm9pZCBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6c2V0SXNFbmNyeXB0aW5nKGJvb2wgaXNFbmNyeXB0aW5nKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5z
Zm9ybWVyLmNwcAppbmRleCBkNzRhM2E2ODMwMzZiZmE2Zjc1ZDFjMzc0ODU2ZWE2ZjQ0MGZiNzg2
Li40ZjIxMTU3ZGRkMGI5OGI0NTZkZjQ3YmU0NTFlOTgzYTJiNDFmZDMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNjcmlw
dFRyYW5zZm9ybWVyLmNwcApAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQog
CiAjaW5jbHVkZSAiRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaCIKLSNpbmNsdWRlICJKU0Nh
bGxiYWNrRGF0YS5oIgogI2luY2x1ZGUgIkpTUlRDRW5jb2RlZEF1ZGlvRnJhbWUuaCIKICNpbmNs
dWRlICJKU1JUQ0VuY29kZWRWaWRlb0ZyYW1lLmgiCiAjaW5jbHVkZSAiSlNSVENSdHBTY3JpcHRU
cmFuc2Zvcm1lckNvbnRleHQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU2NyaXB0VHJhbnNmb3JtZXIuaAppbmRleCBkYjQ0MDhi
NmFlMWVhYTI1Y2VjZDVhMjQwYmViMWFiYTdhYTMzM2Y2Li40YzFiYmUwYWM3MWExMDNlYWEzMDI2
MzExY2VhYzY3NmM0YjJkNDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1J0cFNjcmlwdFRyYW5zZm9ybWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTY3JpcHRUcmFuc2Zvcm1lci5oCkBAIC0yOSwxMiAr
MjksMTIgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbk9yLmgiCisjaW5jbHVkZSAiSlNDYWxsYmFja0RhdGEuaCIKICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgSlNDYWxsYmFja0RhdGFTdHJvbmc7CiBjbGFzcyBNZXNzYWdlUG9ydDsKIGNs
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBSVENSdHBUcmFuc2Zvcm1CYWNrZW5k
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4MmM5ZDI0NjNjNTdlYTAxNzdlMGJlNDA5OWFlZmMyMGFlZGE0
MzI5Li4wYTIxODcyZWEwZjQ1MDJhZjdiMzk3MzliMjgzNjA5ZjkyMDE3M2U2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTQzLDYgKzE0Myw3IEBAIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVy
LmNwcAogTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcAogTW9kdWxlcy9t
ZWRpYXNvdXJjZS9WaWRlb1BsYXliYWNrUXVhbGl0eS5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0v
Q2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3BwCitNb2R1bGVzL21lZGlhc3RyZWFtL0gy
NjRVdGlscy5jcHAKIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VJbmZvLmNwcAogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwCiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDY3MmExNjYwYTVkOWZmODAxM2I2OWFiYmI2YTNhYWE3OGI5YmUx
ZjEuLjFiZWMyZmE0NzVmN2U3ZjBhZjZmZjE0Zjg2NjU1MjE0MTI0ZjQ5OTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMzQs
NiArMTEzNCw3IEBACiAJCTQxQjI4QjNEMUY4NjBFRjMwMEZCNTJBQyAvKiBMaWJXZWJSVENQcm92
aWRlckNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MUIyOEIzNjFGODYwQkQwMDBGQjUyQUMgLyogTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxQjJBNjI2
MUVGMUJGNkQwMDJCOUQ3QSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUIyQTYyNTFFRjFCRjYwMDAyQjlE
N0EgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxQjg3NzYyMjNERTEwNDUwMDM2MzhCOCAvKiBSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFCODc3NjAyM0RFMTA0MjAwMzYzOEI4IC8qIFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNDFCQkE4NjYyNTdFMzczQjAwQUM3RjZEIC8qIEgyNjRVdGlscy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyMDlFMjQyNTdB
MkZCQjAwMTIwQUNBIC8qIEgyNjRVdGlscy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxQkYyMDQ5MjJCQTdCRTgwMDA0RjgxMiAvKiBSZWFsdGlt
ZVZpZGVvU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUJGMjA0MDIyQjk0NzE2MDAwNEY4MTIgLyogUmVhbHRpbWVWaWRlb1NvdXJjZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxQzc2MEIx
MEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDNzYwQjAwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlw
dFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNDFEMDE1Q0EwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQwMTVDODBGNEI1QzcxMDA0QTY2
MkYgLyogQ29udGVudFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtNzU2NSw2ICs3NTY2LDggQEAKIAkJNDExODlFRjcxQUQ4MjMyODAwQjkw
QTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgyMzI4MDBCOTNGNjQgLyogUmVhZGFibGVC
eXRlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVC
eXRlU3RyZWFtQ29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MTg5RUY3MUFEODIzMjgwMEI5NTY3MiAvKiBSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyMDlFMjQyNTdBMkZCQjAwMTIwQUNBIC8qIEgy
NjRVdGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIMjY0VXRpbHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEyMDlFMjYyNTdBMkZCQjAwMTIwQUNBIC8q
IEgyNjRVdGlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIMjY0
VXRpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTIwOUU5MTIxNkQ1OTND
MDBBNzNBMTIgLyogUlRDQ2VydGlmaWNhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJU
Q0NlcnRpZmljYXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEyMDlFOTMy
MTZENUM3OTAwQTczQTEyIC8qIFJUQ0NlcnRpZmljYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJUQ0NlcnRpZmljYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxMjA5RTk0MjE2RUE2OUEwMEE3M0ExMiAvKiBSVENDZXJ0aWZpY2F0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENDZXJ0aWZpY2F0ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzA1Nyw2ICsxNzA2MCw4IEBACiAJCQkJNDFDN0Ux
MDgxRTZBQTM3QzAwMjdCNERFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmlkbCAq
LywKIAkJCQk5M0E4MDYxMTFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaCAqLywKIAkJ
CQk5M0E4MDYxMjFFMDNCNTFDMDA4QTFGMjYgLyogRG91YmxlUmFuZ2UuaWRsICovLAorCQkJCTQx
MjA5RTI2MjU3QTJGQkIwMDEyMEFDQSAvKiBIMjY0VXRpbHMuY3BwICovLAorCQkJCTQxMjA5RTI0
MjU3QTJGQkIwMDEyMEFDQSAvKiBIMjY0VXRpbHMuaCAqLywKIAkJCQk5M0E4MDYxMzFFMDNCNTFD
MDA4QTFGMjYgLyogTG9uZ1JhbmdlLmggKi8sCiAJCQkJOTNBODA2MTQxRTAzQjUxQzAwOEExRjI2
IC8qIExvbmdSYW5nZS5pZGwgKi8sCiAJCQkJMTU5QUU4MkExQjNBNDAyRjAwMzc0NzhCIC8qIE1l
ZGlhRGV2aWNlSW5mby5jcHAgKi8sCkBAIC0zMzg1MCw2ICszMzg1NSw3IEBACiAJCQkJNUVCQjg5
MzkxQzc3QzM5OTAwQzY1RDQxIC8qIFBlZXJNZWRpYURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4QTdDQzk2QjEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTNGQTM4NjQxRDcxODEyRDAwQUE1OTUwIC8qIFBlbmRpbmdTY3JpcHRD
bGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxQkJBODY2MjU3RTM3M0IwMEFDN0Y2RCAvKiBI
MjY0VXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCThBODQ0RDA1MTFEM0MxOEUwMDE0MDY1QyAv
KiBQZXJmb3JtYW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZCRTM0MDExNTA1OENCMjAwQ0Uw
RkQ4IC8qIFBlcmZvcm1hbmNlRW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENUEwQzI1MURF
Q0FDQ0MwMDcwNzA1NCAvKiBQZXJmb3JtYW5jZUxvZ2dpbmcuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQwNDU1N2Vj
NGQ3ZDJlOGY1ZTAwYzc2MDNlOTM4N2NjY2RhYTZmM2EuLmU0OTQ1YmYyMGYyMDQxNTcwZjUwMDU4
NjRkMmRiMzk1YTM0Njk0NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMi0wNyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgU0ZyYW1lIEgyNjQgZXhwZXJpbWVu
dGFsIGNvbXBhdGliaWxpdHkgbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE5NTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXJUZXN0cy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwog
MjAyMC0xMi0wMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEludHJvZHVjZSBuZXcgZG93bmxvYWQgU1BJCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXJUZXN0cy5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXJUZXN0cy5jcHAKaW5kZXggYmQwZWYwODQyOWJkOGMxY2FjOTNhMzRmZWNmOGRlZTVhMDZi
N2ZkNy4uODc4ZmYzY2QyZmVhNDIyNTRiOGM0ZDk2M2U1MzQyOTJiYThmZTI1MyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1JUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyVGVzdHMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9SVENS
dHBTRnJhbWVUcmFuc2Zvcm1lclRlc3RzLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5B
QkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRlIDxXZWJDb3JlL0gyNjRVdGlscy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKQEAgLTM1MSw2ICszNTIsMzcgQEAgVEVTVChSVENSdHBTRnJhbWVUcmFuc2Zvcm1lciwg
VHJhbnNmb3JtQ291bnRlcjY1NTM2KQogICAgICkpOwogfQogCisKK1RFU1QoUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXIsIFJCU1BFc2NhcGluZykKK3sKKyAgICB1aW50OF90IGZyYW1lMFtdID0geyAw
LCAzMywgMDAsIDI0LCAyMzYsIDE1NiwgMTI3LCA4LCAwLCAwLCA0IH07CisgICAgRVhQRUNUX0ZB
TFNFKFdlYkNvcmU6Om5lZWRzUmJzcFVuZXNjYXBpbmcoZnJhbWUwLCBzaXplb2YoZnJhbWUwKSkp
OworCisgICAgdWludDhfdCBmcmFtZTBiW10gPSB7IDAsIDMzLCAwMCwgMjQsIDIzNiwgMTU2LCAx
MjcsIDgsIDAsIDAsIDMgfTsKKyAgICBFWFBFQ1RfRkFMU0UoV2ViQ29yZTo6bmVlZHNSYnNwVW5l
c2NhcGluZyhmcmFtZTBiLCBzaXplb2YoZnJhbWUwYikpKTsKKworICAgIHVpbnQ4X3QgZnJhbWUx
W10gPSB7IDAsIDMzLCAwMCwgMjQsIDIzNiwgMTU2LCAxMjcsIDgsIDAsIDAsIDMsIDEgfTsKKyAg
ICB1aW50OF90IGZyYW1lMVVuZXNjYXBlZFtdID0geyAwLCAzMywgMDAsIDI0LCAyMzYsIDE1Niwg
MTI3LCA4LCAwLCAwLCAxIH07CisgICAgRVhQRUNUX1RSVUUoV2ViQ29yZTo6bmVlZHNSYnNwVW5l
c2NhcGluZyhmcmFtZTEsIHNpemVvZihmcmFtZTEpKSk7CisKKyAgICBhdXRvIHJlc3VsdCA9IFdl
YkNvcmU6OmZyb21SYnNwKGZyYW1lMSwgc2l6ZW9mKGZyYW1lMSkpOworCisgICAgRVhQRUNUX0VR
KHJlc3VsdC5zaXplKCksIHNpemVvZihmcmFtZTFVbmVzY2FwZWQpKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHNpemVvZihmcmFtZTFVbmVzY2FwZWQpOyArK2kpCisgICAgICAgIEVYUEVD
VF9FUShyZXN1bHRbaV0sIGZyYW1lMVVuZXNjYXBlZFtpXSk7CisKKyAgICBWZWN0b3I8dWludDhf
dD4gZnJhbWUyIHsgMCwgMCwgMCwgNjUsIDAsIDAsIDEsIDY2LCAwLCAwLCAyLCA2NywgMCwgMCwg
MywgNjgsIDAsIDAsIDQsIDAsIDAsIDEgfTsKKyAgICBWZWN0b3I8dWludDhfdD4gZXNjYXBlZCB7
IDAsIDAsIDAsIDY1LCAwLCAwLCAxLCA2NiwgMCwgMCwgMiwgNjcsIDAsIDAsIDMsIDY4LCAwLCAw
LCA0LCAwLCAwLCAxIH07CisKKyAgICBXZWJDb3JlOjp0b1Jic3AoZXNjYXBlZCwgMCk7CisgICAg
RVhQRUNUX1RSVUUoV2ViQ29yZTo6bmVlZHNSYnNwVW5lc2NhcGluZyhlc2NhcGVkLmRhdGEoKSwg
ZXNjYXBlZC5zaXplKCkpKTsKKyAgICBhdXRvIHVuZXNjYXBlZCA9IFdlYkNvcmU6OmZyb21SYnNw
KGVzY2FwZWQuZGF0YSgpLCBlc2NhcGVkLnNpemUoKSk7CisKKyAgICBFWFBFQ1RfRVEodW5lc2Nh
cGVkLnNpemUoKSwgZnJhbWUyLnNpemUoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBm
cmFtZTIuc2l6ZSgpOyArK2kpCisgICAgICAgIEVYUEVDVF9FUSh1bmVzY2FwZWRbaV0sIGZyYW1l
MltpXSk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY0MDc4
ZmM4YWVjNDVjOGU2MmE2YzBhODBiZGM2ZTZiNmE5Zjc2NmMuLjE3ZmNlOGViMDIxNTUwMDMyMDZh
YTVlOTMxMDM4ZTRhMDlmNzk2YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0xMi0wNyAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgU0ZyYW1l
IEgyNjQgZXhwZXJpbWVudGFsIGNvbXBhdGliaWxpdHkgbW9kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5NTMyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWJydGMvdmlkZW8tc2ZyYW1lLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2VicnRjL3ZpZGVvLXNmcmFtZS5odG1sOiBBZGRl
ZC4KKwogMjAyMC0xMi0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBPbmx5IHRoZSBmaXJzdCB3aGVlbCBldmVudCBpbiBhIGdlc3R1cmUgc2hvdWxk
IGJlIGNhbmNlbGFibGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1zZnJh
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXNmcmFtZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjNmZjZjN2FmODk5MDMwYmRlMjBiNDBkYWZlNTMxNDY0MzkzYmIz
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1zZnJhbWUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCisKK1BBU1MgVmlkZW8gZXhjaGFuZ2Ugd2l0aCBT
RnJhbWUgLSBIMjY0IGJhc2VsaW5lCitQQVNTIFZpZGVvIGV4Y2hhbmdlIHdpdGggU0ZyYW1lIC0g
SDI2NCBoaWdoCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1zZnJhbWUu
aHRtbCBiL0xheW91dFRlc3RzL3dlYnJ0Yy92aWRlby1zZnJhbWUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MzM3M2UxYTU5M2U0NWQwMDUyNWExMGFiMmYxODc4ZjJkMGRiNWVjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXNmcmFtZS5odG1sCkBAIC0wLDAgKzEsNjQgQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAg
ICAgPHZpZGVvIGlkPSJsb2NhbCIgYXV0b3BsYXkgcGxheXNJbmxpbmU+PC92aWRlbz4KKyAgICAg
ICAgPHZpZGVvIGlkPSJyZW1vdGUiIGF1dG9wbGF5IHBsYXlzSW5saW5lPjwvdmlkZW8+CisgICAg
ICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
PgorYXN5bmMgZnVuY3Rpb24gZG9TRnJhbWVUZXN0KHNlbGVjdENvZGVjKQoreworICAgIGxldCBz
ZW5kZXIsIHJlY2VpdmVyOworICAgIGNvbnN0IGxvY2FsU3RyZWFtID0gYXdhaXQgbmF2aWdhdG9y
Lm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe3ZpZGVvOiB0cnVlfSk7CisgICAgY29uc3Qga2V5
ID0gYXdhaXQgY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIG5ldyBVaW50OEFycmF5KFsx
NDMsIDc3LCA0MywgMTAsIDcyLCAxOSwgMzcsIDY3LCAyMzYsIDIxOSwgMjQsIDkzLCAyNiwgMTY1
LCA5MSwgMTc4XSksICJIS0RGIiwgZmFsc2UsIFsiZGVyaXZlQml0cyIsICJkZXJpdmVLZXkiXSk7
CisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4geworICAgICAgICBjcmVhdGVDb25uZWN0aW9ucygoZmlyc3RDb25uZWN0aW9uKSA9PiB7Cisg
ICAgICAgICAgICBzZW5kZXIgPSBmaXJzdENvbm5lY3Rpb24uYWRkVHJhY2sobG9jYWxTdHJlYW0u
Z2V0VHJhY2tzKClbMF0sIGxvY2FsU3RyZWFtKTsKKyAgICAgICAgICAgIGxldCB0cmFuc2Zvcm0g
PSBuZXcgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtKHtjb21wYXRpYmlsaXR5TW9kZTogIkgyNjQifSk7
CisgICAgICAgICAgICB0cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworICAgICAgICAg
ICAgc2VuZGVyLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKKyAgICAgICAgfSwgKHNlY29uZENvbm5l
Y3Rpb24pID0+IHsKKyAgICAgICAgICAgIHNlY29uZENvbm5lY3Rpb24ub250cmFjayA9ICh0cmFj
a0V2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgbGV0IHRyYW5zZm9ybSA9IG5ldyBSVENSdHBT
RnJhbWVUcmFuc2Zvcm0oe2NvbXBhdGliaWxpdHlNb2RlOiAiSDI2NCJ9KTsKKyAgICAgICAgICAg
ICAgICB0cmFuc2Zvcm0uc2V0RW5jcnlwdGlvbktleShrZXkpOworICAgICAgICAgICAgICAgIHJl
Y2VpdmVyID0gdHJhY2tFdmVudC5yZWNlaXZlcjsKKyAgICAgICAgICAgICAgICByZWNlaXZlci50
cmFuc2Zvcm0gPSB0cmFuc2Zvcm07CisgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cmFja0V2ZW50
LnN0cmVhbXNbMF0pOworICAgICAgICAgICAgfTsKKyAgICAgICAgfSwgeyBvYnNlcnZlT2ZmZXIg
OiAob2ZmZXIpID0+IHsKKyAgICAgICAgICAgIG9mZmVyLnNkcCA9IHNlbGVjdENvZGVjKG9mZmVy
LnNkcCk7CisgICAgICAgICAgICByZXR1cm4gb2ZmZXI7CisgICAgICAgIH0KKyAgICAgICAgfSk7
CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0KCJUZXN0IHRpbWVkIG91dCIpLCA1MDAw
KTsKKyAgICB9KTsKKyAgICBsb2NhbC5zcmNPYmplY3QgPSBsb2NhbFN0cmVhbTsKKyAgICByZW1v
dGUuc3JjT2JqZWN0ID0gc3RyZWFtOworICAgIGF3YWl0IHJlbW90ZS5wbGF5KCk7CisKKyAgICBp
ZiAod2luZG93LmludGVybmFscykgeworICAgICAgICBjb25zdCBzZW5kZXJDb3VudGVyID0gaW50
ZXJuYWxzLnNmcmFtZUNvdW50ZXIoc2VuZGVyLnRyYW5zZm9ybSk7CisgICAgICAgIGNvbnN0IHJl
Y2VpdmVyQ291bnRlciA9IGludGVybmFscy5zZnJhbWVDb3VudGVyKHJlY2VpdmVyLnRyYW5zZm9y
bSk7CisKKyAgICAgICAgbGV0IGNvdW50ZXIgPSAwOworICAgICAgICB3aGlsZSAocmVjZWl2ZXJD
b3VudGVyID09PSBpbnRlcm5hbHMuc2ZyYW1lQ291bnRlcihyZWNlaXZlci50cmFuc2Zvcm0pICYm
ICsrY291bnRlciA8IDEwMCkKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUg
PT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhp
bnRlcm5hbHMuc2ZyYW1lQ291bnRlcihyZWNlaXZlci50cmFuc2Zvcm0pLCByZWNlaXZlckNvdW50
ZXIsICJyZWNlaXZlciIpOworICAgICAgICBhc3NlcnRfbm90X2VxdWFscyhpbnRlcm5hbHMuc2Zy
YW1lQ291bnRlcihzZW5kZXIudHJhbnNmb3JtKSwgc2VuZGVyQ291bnRlciwgInNlbmRlciIpOwor
ICAgIH0KK30KKworcHJvbWlzZV90ZXN0KCh0ZXN0KSA9PiB7CisgICAgcmV0dXJuIGRvU0ZyYW1l
VGVzdChzZXRIMjY0QmFzZWxpbmVDb2RlYyk7Cit9LCAiVmlkZW8gZXhjaGFuZ2Ugd2l0aCBTRnJh
bWUgLSBIMjY0IGJhc2VsaW5lIik7CisKK3Byb21pc2VfdGVzdCgodGVzdCkgPT4geworICAgIHJl
dHVybiBkb1NGcmFtZVRlc3Qoc2V0SDI2NEhpZ2hDb2RlYyk7Cit9LCAiVmlkZW8gZXhjaGFuZ2Ug
d2l0aCBTRnJhbWUgLSBIMjY0IGhpZ2giKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>