<?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>222901</bug_id>
          
          <creation_ts>2021-03-08 03:07:35 -0800</creation_ts>
          <short_desc>[GStreamer][WebRTC] VideoEncoder still doesn&apos;t comply with WebKit style</short_desc>
          <delta_ts>2021-03-09 08:54:25 -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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>calvaris</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jbedard</cc>
    
    <cc>jer.noble</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>1737020</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-08 03:07:35 -0800</bug_when>
    <thetext>Bug 218748 was incomplete, as it didn&apos;t update the file filter in the coding style checker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737025</commentid>
    <comment_count>1</comment_count>
      <attachid>422553</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-08 04:06:21 -0800</bug_when>
    <thetext>Created attachment 422553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737159</commentid>
    <comment_count>2</comment_count>
      <attachid>422553</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-03-08 10:36:43 -0800</bug_when>
    <thetext>Comment on attachment 422553
Patch

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

&gt; Source/WebCore/platform/mediastream/libwebrtc/GStreamerVideoEncoder.cpp:65
&gt; +        SetupFunc setupEncoder, const char* bitratePropertyName, SetBitrateFunc setBitrate, const char* keyframeIntervalPropertyName)

SetupFunc&amp;&amp; and SetBitrateFunc&amp;&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737571</commentid>
    <comment_count>3</comment_count>
      <attachid>422699</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-03-09 08:23:56 -0800</bug_when>
    <thetext>Created attachment 422699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737594</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-09 08:53:23 -0800</bug_when>
    <thetext>Committed r274149: &lt;https://commits.webkit.org/r274149&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422699.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737596</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-09 08:54:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/75219358&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422553</attachid>
            <date>2021-03-08 04:06:21 -0800</date>
            <delta_ts>2021-03-09 08:23:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222901-20210308040619.patch</filename>
            <type>text/plain</type>
            <size>26732</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgyNmNkMDRlNTc1M2Jh
Y2Y5ZDc3YmQyZGMwODdjMDIwMTdjNjU3ZC4uYTc0NGFhYjFkMGMyNjI4NmUwODUyZjUzYmQ5Zjlm
YWIwNDIxNTM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTAzLTA4ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtXZWJSVENdIFZpZGVvRW5jb2RlciBzdGlsbCBkb2Vzbid0IGNvbXBseSB3aXRoIFdlYktpdCBz
dHlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIy
OTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVm
YWN0b3IgdGhlIGNvZGUgdG8gY29tcGx5IHdpdGggV2ViS2l0J3MgY29kaW5nIHN0eWxlLiBBIG5l
dyBmdW5jdGlvbiBhbGxvd2luZyB0byBzZXQgdGhlCisgICAgICAgIGVuY29kZXIgZWxlbWVudCB3
YXMgYWxzbyBmYWN0b3JlZCBvdXQsIGluIHByZXBhcmF0aW9uIGZvciB0aGUgY2FtZXJhYmluIHN1
cHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVh
bWVyVmlkZW9FbmNvZGVyLmNwcDoKKyAgICAgICAgKEVuY29kZXJzOjpyZWdpc3RlckVuY29kZXIp
OgorICAgICAgICAod2VicnRjVmlkZW9FbmNvZGVyR2V0UHJvcGVydHkpOgorICAgICAgICAod2Vi
cnRjVmlkZW9FbmNvZGVyU2V0Qml0cmF0ZSk6CisgICAgICAgICh3ZWJydGNWaWRlb0VuY29kZXJT
ZXRFbmNvZGVyKToKKyAgICAgICAgKHdlYnJ0Y1ZpZGVvRW5jb2RlclNldEZvcm1hdCk6CisgICAg
ICAgICh3ZWJydGNWaWRlb0VuY29kZXJTZXRQcm9wZXJ0eSk6CisgICAgICAgIChzZXRCaXRyYXRl
S2JpdFBlclNlYyk6CisgICAgICAgIChzZXRCaXRyYXRlQml0UGVyU2VjKToKKyAgICAgICAgKHdl
YnJ0Y1ZpZGVvRW5jb2RlckNvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYmtpdF93ZWJydGNfdmlk
ZW9fZW5jb2Rlcl9jbGFzc19pbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6R1N0cmVhbWVyVmlk
ZW9FbmNvZGVyRmFjdG9yeSk6CisKIDIwMjEtMDMtMDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI3MjkwMCk6IE51bGxw
dHIgY3Jhc2ggaW4gQ29tcG9zZWRUcmVlSXRlcmF0b3I6OnRyYXZlcnNlTmV4dEluU2hhZG93VHJl
ZSgpIHZpYSBTaGFkb3dSb290Ojpob3N0Q2hpbGRFbGVtZW50RGlkQ2hhbmdlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVy
VmlkZW9FbmNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCmluZGV4IDU1ODgzODNmYTZmMWMzMjVk
NjRkZDNiY2M4NjBmMmUwNGZkMzNhOWIuLmEyZjI3MTMwM2RkMGEzMTZmODE3MTBlYzA2MWVlY2Iw
NDg4MmRhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3Bw
CkBAIC0xOCwzOCArMTgsMzcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICov
CiAKLS8qIE5PVEU6IFRoaXMgZmlsZSByZXNwZWN0cyBHU3RyZWFtZXIgY29kaW5nIHN0eWxlIGFz
IHdlIG1pZ2h0IHdhbnQgdG8gdXBzdHJlYW0KLSAqIHRoYXQgZWxlbWVudCBpbiB0aGUgZnV0dXJl
ICovCi0KICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJWaWRlb0VuY29k
ZXIuaCIKIAogI2lmIEVOQUJMRShWSURFTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNF
KExJQldFQlJUQykgJiYgVVNFKEdTVFJFQU1FUikKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVy
LmgiCisKKyNpbmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlIDx3dGYvU3RkTWFw
Lmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KIAotR1NUX0RFQlVHX0NBVEVHT1JZ
ICh3ZWJydGNfdmVuY19kZWJ1Zyk7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworR1NUX0RF
QlVHX0NBVEVHT1JZKHdlYnJ0Y192ZW5jX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxU
IHdlYnJ0Y192ZW5jX2RlYnVnCiAKICNkZWZpbmUgS0JJVF9UT19CSVQgMTAyNAogCi1zdGF0aWMg
R3N0U3RhdGljUGFkVGVtcGxhdGUgc2lua1RlbXBsYXRlID0KLSAgICBHU1RfU1RBVElDX1BBRF9U
RU1QTEFURSAoInNpbmsiLCBHU1RfUEFEX1NJTkssIEdTVF9QQURfQUxXQVlTLCBHU1RfU1RBVElD
X0NBUFMgKCJ2aWRlby94LXJhdyhBTlkpOyIpKTsKLXN0YXRpYyBHc3RTdGF0aWNQYWRUZW1wbGF0
ZSBzcmNUZW1wbGF0ZSA9Ci0gICAgR1NUX1NUQVRJQ19QQURfVEVNUExBVEUgKCJzcmMiLCBHU1Rf
UEFEX1NSQywgR1NUX1BBRF9BTFdBWVMsIEdTVF9TVEFUSUNfQ0FQUyAoInZpZGVvL3gtaDI2NDt2
aWRlby94LXZwOCIpKTsKK3N0YXRpYyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzaW5rVGVtcGxhdGUg
PSBHU1RfU1RBVElDX1BBRF9URU1QTEFURSgic2luayIsIEdTVF9QQURfU0lOSywgR1NUX1BBRF9B
TFdBWVMsIEdTVF9TVEFUSUNfQ0FQUygidmlkZW8veC1yYXcoQU5ZKSIpKTsKK3N0YXRpYyBHc3RT
dGF0aWNQYWRUZW1wbGF0ZSBzcmNUZW1wbGF0ZSA9IEdTVF9TVEFUSUNfUEFEX1RFTVBMQVRFKCJz
cmMiLCBHU1RfUEFEX1NSQywgR1NUX1BBRF9BTFdBWVMsIEdTVF9TVEFUSUNfQ0FQUygidmlkZW8v
eC1oMjY0O3ZpZGVvL3gtdnA4IikpOwogCi10eXBlZGVmIHZvaWQgKCpTZXRCaXRyYXRlRnVuYykg
KEdPYmplY3QgKiBlbmNvZGVyLCBjb25zdCBnY2hhciAqIHByb3BuYW1lLCAgZ2ludCBiaXRyYXRl
KTsKLXR5cGVkZWYgdm9pZCAoKlNldHVwRnVuYykgKFdlYnJ0Y1ZpZGVvRW5jb2RlciAqIHNlbGYp
OwordXNpbmcgU2V0Qml0cmF0ZUZ1bmMgPSBGdW5jdGlvbjx2b2lkKEdPYmplY3QqIGVuY29kZXIs
IGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgaW50IGJpdHJhdGUpPjsKK3VzaW5nIFNldHVwRnVu
YyA9IEZ1bmN0aW9uPHZvaWQoV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVyKik+OwogCiBzdHJ1Y3Qg
RW5jb2RlckRlZmluaXRpb24gewogICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwczsKLSAgICBjb25z
dCBnY2hhciogbmFtZTsKLSAgICBjb25zdCBnY2hhciogcGFyc2VyTmFtZTsKKyAgICBjb25zdCBj
aGFyKiBuYW1lOworICAgIGNvbnN0IGNoYXIqIHBhcnNlck5hbWU7CiAgICAgR1JlZlB0cjxHc3RD
YXBzPiBlbmNvZGVkRm9ybWF0OwogICAgIFNldEJpdHJhdGVGdW5jIHNldEJpdHJhdGU7CiAgICAg
U2V0dXBGdW5jIHNldHVwRW5jb2RlcjsKLSAgICBjb25zdCBnY2hhciogYml0cmF0ZVByb3BlcnR5
TmFtZTsKLSAgICBjb25zdCBnY2hhcioga2V5ZnJhbWVJbnRlcnZhbFByb3BlcnR5TmFtZTsKKyAg
ICBjb25zdCBjaGFyKiBiaXRyYXRlUHJvcGVydHlOYW1lOworICAgIGNvbnN0IGNoYXIqIGtleWZy
YW1lSW50ZXJ2YWxQcm9wZXJ0eU5hbWU7CiB9OwogCiBlbnVtIEVuY29kZXJJZCB7IE5vbmUsIFgy
NjQsIE9wZW5IMjY0LCBPbXhIMjY0LCBWcDggfTsKQEAgLTYyLDE0MCArNjEsMTQ3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGVuY29kZXJzOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIHJl
Z2lzdGVyRW5jb2RlcihFbmNvZGVySWQgaWQsIGNvbnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hh
ciogcGFyc2VyX25hbWUsIGNvbnN0IGdjaGFyKiBjYXBzLCBjb25zdCBnY2hhciogZW5jb2RlZF9m
b3JtYXQsCi0gICAgICAgIFNldHVwRnVuYyBzZXR1cEVuY29kZXIsIGNvbnN0IGdjaGFyKiBiaXRy
YXRlX3Byb3BuYW1lLCBTZXRCaXRyYXRlRnVuYyBzZXRCaXRyYXRlLCBjb25zdCBnY2hhcioga2V5
ZnJhbWVfaW50ZXJ2YWxfcHJvcG5hbWUpCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJFbmNvZGVy
KEVuY29kZXJJZCBpZCwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogcGFyc2VyTmFtZSwg
Y29uc3QgY2hhciogY2FwcywgY29uc3QgY2hhciogZW5jb2RlZEZvcm1hdCwKKyAgICAgICAgU2V0
dXBGdW5jIHNldHVwRW5jb2RlciwgY29uc3QgY2hhciogYml0cmF0ZVByb3BlcnR5TmFtZSwgU2V0
Qml0cmF0ZUZ1bmMgc2V0Qml0cmF0ZSwgY29uc3QgY2hhcioga2V5ZnJhbWVJbnRlcnZhbFByb3Bl
cnR5TmFtZSkKICAgICB7Ci0gICAgICAgIEdzdFBsdWdpbkZlYXR1cmUgKmZlYXR1cmUgPSBnc3Rf
cmVnaXN0cnlfbG9va3VwX2ZlYXR1cmUoZ3N0X3JlZ2lzdHJ5X2dldCgpLCBuYW1lKTsKKyAgICAg
ICAgYXV0byBmZWF0dXJlID0gYWRvcHRHUmVmKGdzdF9yZWdpc3RyeV9sb29rdXBfZmVhdHVyZShn
c3RfcmVnaXN0cnlfZ2V0KCksIG5hbWUpKTsKICAgICAgICAgaWYgKCFmZWF0dXJlKQogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBnc3Rfb2JqZWN0X3VucmVmKGZlYXR1cmUpOwogCiAgICAg
ICAgIHNpbmdsZXRvbigpLmVtcGxhY2Uoc3RkOjptYWtlX3BhaXIoaWQsIChFbmNvZGVyRGVmaW5p
dGlvbikgewogICAgICAgICAgICAgLmNhcHMgPSBhZG9wdEdSZWYoZ3N0X2NhcHNfZnJvbV9zdHJp
bmcoY2FwcykpLAogICAgICAgICAgICAgLm5hbWUgPSBuYW1lLAotICAgICAgICAgICAgLnBhcnNl
ck5hbWUgPSBwYXJzZXJfbmFtZSwKLSAgICAgICAgICAgIC5lbmNvZGVkRm9ybWF0ID0gKGVuY29k
ZWRfZm9ybWF0KSA/IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0cmluZyhlbmNvZGVkX2Zvcm1h
dCkpIDogbnVsbHB0ciwKLSAgICAgICAgICAgIC5zZXRCaXRyYXRlID0gc2V0Qml0cmF0ZSwKLSAg
ICAgICAgICAgIC5zZXR1cEVuY29kZXIgPSBzZXR1cEVuY29kZXIsCi0gICAgICAgICAgICAuYml0
cmF0ZVByb3BlcnR5TmFtZSA9IGJpdHJhdGVfcHJvcG5hbWUsCi0gICAgICAgICAgICAua2V5ZnJh
bWVJbnRlcnZhbFByb3BlcnR5TmFtZSA9IGtleWZyYW1lX2ludGVydmFsX3Byb3BuYW1lLAorICAg
ICAgICAgICAgLnBhcnNlck5hbWUgPSBwYXJzZXJOYW1lLAorICAgICAgICAgICAgLmVuY29kZWRG
b3JtYXQgPSBlbmNvZGVkRm9ybWF0ID8gYWRvcHRHUmVmKGdzdF9jYXBzX2Zyb21fc3RyaW5nKGVu
Y29kZWRGb3JtYXQpKSA6IG51bGxwdHIsCisgICAgICAgICAgICAuc2V0Qml0cmF0ZSA9IFdURk1v
dmUoc2V0Qml0cmF0ZSksCisgICAgICAgICAgICAuc2V0dXBFbmNvZGVyID0gV1RGTW92ZShzZXR1
cEVuY29kZXIpLAorICAgICAgICAgICAgLmJpdHJhdGVQcm9wZXJ0eU5hbWUgPSBiaXRyYXRlUHJv
cGVydHlOYW1lLAorICAgICAgICAgICAgLmtleWZyYW1lSW50ZXJ2YWxQcm9wZXJ0eU5hbWUgPSBr
ZXlmcmFtZUludGVydmFsUHJvcGVydHlOYW1lLAogICAgICAgICB9KSk7CiAgICAgfQogCi0gICAg
c3RhdGljIGNvbnN0IEVuY29kZXJEZWZpbml0aW9uJiBkZWZpbml0aW9uKEVuY29kZXJJZCBpZCkg
ewotICAgICAgICBBU1NFUlQoaWQgIT0gTm9uZSk7CisgICAgc3RhdGljIE9wdGlvbmFsPEVuY29k
ZXJEZWZpbml0aW9uJj4gZGVmaW5pdGlvbihFbmNvZGVySWQgaWQpCisgICAgeworICAgICAgICBp
ZiAoaWQgPT0gTm9uZSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIHJldHVybiBz
aW5nbGV0b24oKVtpZF07CiAgICAgfQogfTsKIAotc3RydWN0IF9XZWJydGNWaWRlb0VuY29kZXIg
ewotICAgIEdzdEJpbiBwYXJlbnQ7Ci0KK3N0cnVjdCBfV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVy
UHJpdmF0ZSB7CiAgICAgRW5jb2RlcklkIGVuY29kZXJJZDsKLSAgICBHc3RFbGVtZW50KiBlbmNv
ZGVyOwotICAgIEdzdEVsZW1lbnQqIHBhcnNlcjsKLSAgICBndWludCBiaXRyYXRlOworICAgIEdS
ZWZQdHI8R3N0RWxlbWVudD4gZW5jb2RlcjsKKyAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IHBhcnNl
cjsKKyAgICB1bnNpZ25lZCBiaXRyYXRlOwogfTsKIAotR19ERUZJTkVfVFlQRShXZWJydGNWaWRl
b0VuY29kZXIsIHdlYnJ0Y192aWRlb19lbmNvZGVyLCBHU1RfVFlQRV9CSU4pOworI2RlZmluZSB3
ZWJraXRfd2VicnRjX3ZpZGVvX2VuY29kZXJfcGFyZW50X2NsYXNzIHBhcmVudF9jbGFzcworV0VC
S0lUX0RFRklORV9UWVBFX1dJVEhfQ09ERShXZWJLaXRXZWJydGNWaWRlb0VuY29kZXIsIHdlYmtp
dF93ZWJydGNfdmlkZW9fZW5jb2RlciwgR1NUX1RZUEVfQklOLAorICAgIEdTVF9ERUJVR19DQVRF
R09SWV9JTklUKHdlYnJ0Y192ZW5jX2RlYnVnLCAid2VicnRjZW5jb2RlciIsIDAsICJWaWRlbyBl
bmNvZGVyIGZvciBXZWJSVEMiKSkKIAogZW51bSB7Ci0gICAgIFBST1BfRk9STUFUID0gMSwKLSAg
ICAgUFJPUF9FTkNPREVSLAotICAgICBQUk9QX0JJVFJBVEUsCi0gICAgIFBST1BfS0VZRlJBTUVf
SU5URVJWQUwsCi0gICAgIE5fUFJPUFMKKyAgICBQUk9QX0ZPUk1BVCA9IDEsCisgICAgUFJPUF9F
TkNPREVSLAorICAgIFBST1BfQklUUkFURSwKKyAgICBQUk9QX0tFWUZSQU1FX0lOVEVSVkFMLAor
ICAgIE5fUFJPUFMKIH07CiAKIHN0YXRpYyB2b2lkIHdlYnJ0Y1ZpZGVvRW5jb2RlckdldFByb3Bl
cnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFt
U3BlYyogcHNwZWMpCiB7Ci0gICAgV2VicnRjVmlkZW9FbmNvZGVyKiBzZWxmID0gV0VCUlRDX1ZJ
REVPX0VOQ09ERVIob2JqZWN0KTsKKyAgICBhdXRvKiBzZWxmID0gV0VCS0lUX1dFQlJUQ19WSURF
T19FTkNPREVSKG9iamVjdCk7CisgICAgYXV0byogcHJpdiA9IHNlbGYtPnByaXY7CiAKICAgICBz
d2l0Y2ggKHByb3BfaWQpIHsKICAgICBjYXNlIFBST1BfRk9STUFUOgotICAgICAgICBpZiAoc2Vs
Zi0+ZW5jb2RlcklkICE9IE5vbmUpIHsKLSAgICAgICAgICAgIGF1dG8gJmVuY29kZXIgPSBFbmNv
ZGVyczo6ZGVmaW5pdGlvbihzZWxmLT5lbmNvZGVySWQpOwotICAgICAgICAgICAgZ192YWx1ZV9z
ZXRfYm94ZWQodmFsdWUsIGVuY29kZXIuY2Fwcy5nZXQoKSk7Ci0gICAgICAgIH0gIGVsc2UKKyAg
ICAgICAgaWYgKHByaXYtPmVuY29kZXJJZCAhPSBOb25lKSB7CisgICAgICAgICAgICBhdXRvIGVu
Y29kZXIgPSBFbmNvZGVyczo6ZGVmaW5pdGlvbihwcml2LT5lbmNvZGVySWQpOworICAgICAgICAg
ICAgZ192YWx1ZV9zZXRfYm94ZWQodmFsdWUsIGVuY29kZXItPmNhcHMuZ2V0KCkpOworICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIGdfdmFsdWVfc2V0X2JveGVkKHZhbHVlLCBudWxscHRyKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0VOQ09ERVI6Ci0gICAgICAgIGdfdmFsdWVf
c2V0X29iamVjdCh2YWx1ZSwgc2VsZi0+ZW5jb2Rlcik7CisgICAgICAgIGdfdmFsdWVfc2V0X29i
amVjdCh2YWx1ZSwgcHJpdi0+ZW5jb2Rlci5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgUFJPUF9CSVRSQVRFOgotICAgICAgICBnX3ZhbHVlX3NldF91aW50KHZhbHVlLCBzZWxmLT5i
aXRyYXRlKTsKKyAgICAgICAgZ192YWx1ZV9zZXRfdWludCh2YWx1ZSwgcHJpdi0+Yml0cmF0ZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9LRVlGUkFNRV9JTlRFUlZBTDoKLSAgICAg
ICAgaWYgKHNlbGYtPmVuY29kZXIpIHsKLSAgICAgICAgICAgIGF1dG8gJmVuY29kZXIgPSBFbmNv
ZGVyczo6ZGVmaW5pdGlvbihzZWxmLT5lbmNvZGVySWQpOwotICAgICAgICAgICAgZ19vYmplY3Rf
Z2V0X3Byb3BlcnR5KEdfT0JKRUNUKHNlbGYtPmVuY29kZXIpLCBlbmNvZGVyLmtleWZyYW1lSW50
ZXJ2YWxQcm9wZXJ0eU5hbWUsIHZhbHVlKTsKKyAgICAgICAgaWYgKHByaXYtPmVuY29kZXIpIHsK
KyAgICAgICAgICAgIGF1dG8gZW5jb2RlciA9IEVuY29kZXJzOjpkZWZpbml0aW9uKHByaXYtPmVu
Y29kZXJJZCk7CisgICAgICAgICAgICBnX29iamVjdF9nZXRfcHJvcGVydHkoR19PQkpFQ1QocHJp
di0+ZW5jb2Rlci5nZXQoKSksIGVuY29kZXItPmtleWZyYW1lSW50ZXJ2YWxQcm9wZXJ0eU5hbWUs
IHZhbHVlKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wX2lkLCBwc3Bl
Yyk7CiAgICAgICAgIGJyZWFrOwotICB9CisgICAgfQogfQogCi1zdGF0aWMgdm9pZCB3ZWJydGNW
aWRlb0VuY29kZXJTZXRCaXRyYXRlKFdlYnJ0Y1ZpZGVvRW5jb2Rlciogc2VsZiwgZ3VpbnQgYml0
cmF0ZSkKK3N0YXRpYyB2b2lkIHdlYnJ0Y1ZpZGVvRW5jb2RlclNldEJpdHJhdGUoV2ViS2l0V2Vi
cnRjVmlkZW9FbmNvZGVyKiBzZWxmLCBndWludCBiaXRyYXRlKQogewotICAgIHNlbGYtPmJpdHJh
dGUgPSBiaXRyYXRlOwotICAgIGlmIChzZWxmLT5lbmNvZGVyKSB7Ci0gICAgICAgIGF1dG8gJmVu
Y29kZXIgPSBFbmNvZGVyczo6ZGVmaW5pdGlvbihzZWxmLT5lbmNvZGVySWQpOwotICAgICAgICBl
bmNvZGVyLnNldEJpdHJhdGUoR19PQkpFQ1Qoc2VsZi0+ZW5jb2RlciksIGVuY29kZXIuYml0cmF0
ZVByb3BlcnR5TmFtZSwgc2VsZi0+Yml0cmF0ZSk7CisgICAgYXV0byogcHJpdiA9IHNlbGYtPnBy
aXY7CisgICAgcHJpdi0+Yml0cmF0ZSA9IGJpdHJhdGU7CisKKyAgICBpZiAocHJpdi0+ZW5jb2Rl
cklkICE9IE5vbmUpIHsKKyAgICAgICAgYXV0byBlbmNvZGVyID0gRW5jb2RlcnM6OmRlZmluaXRp
b24ocHJpdi0+ZW5jb2RlcklkKTsKKyAgICAgICAgZW5jb2Rlci0+c2V0Qml0cmF0ZShHX09CSkVD
VChwcml2LT5lbmNvZGVyLmdldCgpKSwgZW5jb2Rlci0+Yml0cmF0ZVByb3BlcnR5TmFtZSwgcHJp
di0+Yml0cmF0ZSk7CiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCB3ZWJydGNWaWRlb0VuY29kZXJT
ZXRGb3JtYXQoV2VicnRjVmlkZW9FbmNvZGVyKiBzZWxmLCBjb25zdCBHc3RDYXBzKiBjYXBzKQor
c3RhdGljIHZvaWQgd2VicnRjVmlkZW9FbmNvZGVyU2V0RW5jb2RlcihXZWJLaXRXZWJydGNWaWRl
b0VuY29kZXIqIHNlbGYsIEdSZWZQdHI8R3N0RWxlbWVudD4mJiBlbmNvZGVyRWxlbWVudCwgRW5j
b2RlcklkIGVuY29kZXJJZCkKIHsKLSAgICBnX3JldHVybl9pZl9mYWlsKHNlbGYtPmVuY29kZXJJ
ZCA9PSBOb25lKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKGNhcHMpOwotCi0gICAgZm9yIChjb25z
dCBhdXRvICZwYWlyIDogRW5jb2RlcnM6OnNpbmdsZXRvbigpKSB7Ci0gICAgICAgIGNvbnN0IGF1
dG8gJmVuY29kZXIgPSBwYWlyLnNlY29uZDsKLSAgICAgICAgR3N0RWxlbWVudCogY2Fwc2ZpbHRl
ciA9IG51bGxwdHI7Ci0KLSAgICAgICAgaWYgKGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoZW5jb2Rl
ci5jYXBzLmdldCgpLCBjYXBzKSkgewotICAgICAgICAgICAgR1JlZlB0cjxHc3RQYWQ+IHRtcHBh
ZDsKLSAgICAgICAgICAgIHNlbGYtPmVuY29kZXJJZCA9IHBhaXIuZmlyc3Q7Ci0gICAgICAgICAg
ICBzZWxmLT5lbmNvZGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKGVuY29kZXIubmFtZSwg
bnVsbHB0cik7Ci0KLSAgICAgICAgICAgIGlmIChlbmNvZGVyLnBhcnNlck5hbWUpCi0gICAgICAg
ICAgICAgICAgc2VsZi0+cGFyc2VyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKGVuY29kZXIu
cGFyc2VyTmFtZSwgbnVsbHB0cik7Ci0KLSAgICAgICAgICAgIGVuY29kZXIuc2V0dXBFbmNvZGVy
KHNlbGYpOwotICAgICAgICAgICAgaWYgKGVuY29kZXIuZW5jb2RlZEZvcm1hdC5nZXQoKSkgewot
ICAgICAgICAgICAgICAgIGNhcHNmaWx0ZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoImNh
cHNmaWx0ZXIiLCBudWxscHRyKTsKLSAgICAgICAgICAgICAgICBnX29iamVjdF9zZXQoY2Fwc2Zp
bHRlciwgImNhcHMiLCBlbmNvZGVyLmVuY29kZWRGb3JtYXQuZ2V0KCksIG51bGxwdHIpOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKHNlbGYpLCBzZWxm
LT5lbmNvZGVyKTsKLQotICAgICAgICAgICAgdG1wcGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50
X2dldF9zdGF0aWNfcGFkKHNlbGYtPmVuY29kZXIsICJzaW5rIikpOwotICAgICAgICAgICAgR1Jl
ZlB0cjxHc3RQYWQ+IHNpbmtwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19w
YWQoR1NUX0VMRU1FTlQoc2VsZiksICJzaW5rIikpOwotICAgICAgICAgICAgZ3N0X2dob3N0X3Bh
ZF9zZXRfdGFyZ2V0KEdTVF9HSE9TVF9QQUQoc2lua3BhZC5nZXQoKSksIHRtcHBhZC5nZXQoKSk7
Ci0KLSAgICAgICAgICAgIHRtcHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGlj
X3BhZChzZWxmLT5lbmNvZGVyLCAic3JjIikpOwotICAgICAgICAgICAgaWYgKHNlbGYtPnBhcnNl
cikgewotICAgICAgICAgICAgICAgIGdzdF9iaW5fYWRkKEdTVF9CSU4oc2VsZiksIHNlbGYtPnBh
cnNlcik7Ci0gICAgICAgICAgICAgICAgZ3N0X2VsZW1lbnRfbGluayhzZWxmLT5lbmNvZGVyLCBz
ZWxmLT5wYXJzZXIpOwotICAgICAgICAgICAgICAgIHRtcHBhZCA9IGFkb3B0R1JlZihnc3RfZWxl
bWVudF9nZXRfc3RhdGljX3BhZChzZWxmLT5wYXJzZXIsICJzcmMiKSk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGlmIChjYXBzZmlsdGVyKSB7Ci0gICAgICAgICAgICAgICAgR1JlZlB0
cjxHc3RQYWQ+IHRtcHBhZDIgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQo
Y2Fwc2ZpbHRlciwgInNpbmsiKSk7CisgICAgYXV0byogcHJpdiA9IHNlbGYtPnByaXY7CisgICAg
cHJpdi0+ZW5jb2RlcklkID0gZW5jb2RlcklkOworICAgIHByaXYtPmVuY29kZXIgPSBXVEZNb3Zl
KGVuY29kZXJFbGVtZW50KTsKKworICAgIGF1dG8gZW5jb2RlciA9IEVuY29kZXJzOjpkZWZpbml0
aW9uKGVuY29kZXJJZCk7CisgICAgQVNTRVJUKGVuY29kZXIpOworICAgIGlmIChlbmNvZGVyLT5w
YXJzZXJOYW1lKQorICAgICAgICBwcml2LT5wYXJzZXIgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21h
a2UoZW5jb2Rlci0+cGFyc2VyTmFtZSwgbnVsbHB0cik7CisKKyAgICBlbmNvZGVyLT5zZXR1cEVu
Y29kZXIoc2VsZik7CisKKyAgICBnc3RfYmluX2FkZChHU1RfQklOX0NBU1Qoc2VsZiksIHByaXYt
PmVuY29kZXIuZ2V0KCkpOworCisgICAgYXV0byBzaW5rUGFkVGFyZ2V0ID0gYWRvcHRHUmVmKGdz
dF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKHByaXYtPmVuY29kZXIuZ2V0KCksICJzaW5rIikpOwor
ICAgIGF1dG8gc2lua1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChH
U1RfRUxFTUVOVF9DQVNUKHNlbGYpLCAic2luayIpKTsKKyAgICBnc3RfZ2hvc3RfcGFkX3NldF90
YXJnZXQoR1NUX0dIT1NUX1BBRChzaW5rUGFkLmdldCgpKSwgc2lua1BhZFRhcmdldC5nZXQoKSk7
CisKKyAgICBHUmVmUHRyPEdzdFBhZD4gc3JjUGFkVGFyZ2V0OworICAgIGlmIChwcml2LT5wYXJz
ZXIpIHsKKyAgICAgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTl9DQVNUKHNlbGYpLCBwcml2LT5wYXJz
ZXIuZ2V0KCkpOworICAgICAgICBnc3RfZWxlbWVudF9saW5rKHByaXYtPmVuY29kZXIuZ2V0KCks
IHByaXYtPnBhcnNlci5nZXQoKSk7CisgICAgICAgIHNyY1BhZFRhcmdldCA9IGFkb3B0R1JlZihn
c3RfZWxlbWVudF9nZXRfc3RhdGljX3BhZChwcml2LT5wYXJzZXIuZ2V0KCksICJzcmMiKSk7Cisg
ICAgfSBlbHNlCisgICAgICAgIHNyY1BhZFRhcmdldCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9n
ZXRfc3RhdGljX3BhZChwcml2LT5lbmNvZGVyLmdldCgpLCAic3JjIikpOworCisgICAgaWYgKGVu
Y29kZXItPmVuY29kZWRGb3JtYXQpIHsKKyAgICAgICAgYXV0byogY2Fwc2ZpbHRlciA9IGdzdF9l
bGVtZW50X2ZhY3RvcnlfbWFrZSgiY2Fwc2ZpbHRlciIsIG51bGxwdHIpOworICAgICAgICBnX29i
amVjdF9zZXQoY2Fwc2ZpbHRlciwgImNhcHMiLCBlbmNvZGVyLT5lbmNvZGVkRm9ybWF0LmdldCgp
LCBudWxscHRyKTsKKworICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOX0NBU1Qoc2VsZiksIGNh
cHNmaWx0ZXIpOworICAgICAgICBhdXRvIHNpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRf
Z2V0X3N0YXRpY19wYWQoY2Fwc2ZpbHRlciwgInNpbmsiKSk7CisgICAgICAgIGdzdF9wYWRfbGlu
ayhzcmNQYWRUYXJnZXQuZ2V0KCksIHNpbmtQYWQuZ2V0KCkpOworICAgICAgICBzcmNQYWRUYXJn
ZXQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoY2Fwc2ZpbHRlciwgInNy
YyIpKTsKKyAgICB9CiAKLSAgICAgICAgICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKHNlbGYp
LCBjYXBzZmlsdGVyKTsKLSAgICAgICAgICAgICAgICBnc3RfcGFkX2xpbmsodG1wcGFkLmdldCgp
LCB0bXBwYWQyLmdldCgpKTsKLSAgICAgICAgICAgICAgICB0bXBwYWQgPSBhZG9wdEdSZWYoZ3N0
X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoY2Fwc2ZpbHRlciwgInNyYyIpKTsKLSAgICAgICAgICAg
IH0KKyAgICBhdXRvIHNyY1BhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRfc3RhdGljX3Bh
ZChHU1RfRUxFTUVOVF9DQVNUKHNlbGYpLCAic3JjIikpOworICAgIGdzdF9naG9zdF9wYWRfc2V0
X3RhcmdldChHU1RfR0hPU1RfUEFEKHNyY1BhZC5nZXQoKSksIHNyY1BhZFRhcmdldC5nZXQoKSk7
CiAKLSAgICAgICAgICAgIEdSZWZQdHI8R3N0UGFkPiBzcmNwYWQgPSBhZG9wdEdSZWYoZ3N0X2Vs
ZW1lbnRfZ2V0X3N0YXRpY19wYWQoR1NUX0VMRU1FTlQgKHNlbGYpLCAic3JjIikpOwotICAgICAg
ICAgICAgZ2Jvb2xlYW4gcmV0ID0gZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0KEdTVF9HSE9TVF9Q
QUQoc3JjcGFkLmdldCgpKSwgdG1wcGFkLmdldCgpKTsKKyAgICB3ZWJydGNWaWRlb0VuY29kZXJT
ZXRCaXRyYXRlKHNlbGYsIHByaXYtPmJpdHJhdGUpOworfQogCi0gICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVChyZXQpOworc3RhdGljIHZvaWQgd2VicnRjVmlkZW9FbmNvZGVyU2V0Rm9ybWF0KFdl
YktpdFdlYnJ0Y1ZpZGVvRW5jb2Rlciogc2VsZiwgY29uc3QgR3N0Q2FwcyogY2FwcykKK3sKKyAg
ICBpZiAoIWNhcHMpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgd2VicnRjVmlkZW9F
bmNvZGVyU2V0Qml0cmF0ZShzZWxmLCBzZWxmLT5iaXRyYXRlKTsKKyAgICBmb3IgKGNvbnN0IGF1
dG8mIHBhaXIgOiBFbmNvZGVyczo6c2luZ2xldG9uKCkpIHsKKyAgICAgICAgY29uc3QgYXV0byYg
ZW5jb2RlciA9IHBhaXIuc2Vjb25kOworICAgICAgICBpZiAoZ3N0X2NhcHNfY2FuX2ludGVyc2Vj
dChlbmNvZGVyLmNhcHMuZ2V0KCksIGNhcHMpKSB7CisgICAgICAgICAgICBHUmVmUHRyPEdzdEVs
ZW1lbnQ+IGVsZW1lbnQgPSBnc3RfZWxlbWVudF9mYWN0b3J5X21ha2UoZW5jb2Rlci5uYW1lLCBu
dWxscHRyKTsKKyAgICAgICAgICAgIHdlYnJ0Y1ZpZGVvRW5jb2RlclNldEVuY29kZXIoc2VsZiwg
V1RGTW92ZShlbGVtZW50KSwgcGFpci5maXJzdCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICB9CkBAIC0yMDUsNyArMjExLDggQEAgc3RhdGljIHZvaWQgd2VicnRjVmlkZW9F
bmNvZGVyU2V0Rm9ybWF0KFdlYnJ0Y1ZpZGVvRW5jb2Rlciogc2VsZiwgY29uc3QgR3N0Q2FwcyoK
IAogc3RhdGljIHZvaWQgd2VicnRjVmlkZW9FbmNvZGVyU2V0UHJvcGVydHkoR09iamVjdCogb2Jq
ZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3Bl
YykKIHsKLSAgICBXZWJydGNWaWRlb0VuY29kZXIqIHNlbGYgPSBXRUJSVENfVklERU9fRU5DT0RF
UihvYmplY3QpOworICAgIGF1dG8qIHNlbGYgPSBXRUJLSVRfV0VCUlRDX1ZJREVPX0VOQ09ERVIo
b2JqZWN0KTsKKyAgICBhdXRvKiBwcml2ID0gc2VsZi0+cHJpdjsKIAogICAgIHN3aXRjaCAocHJv
cF9pZCkgewogICAgIGNhc2UgUFJPUF9GT1JNQVQ6CkBAIC0yMTUsOSArMjIyLDkgQEAgc3RhdGlj
IHZvaWQgd2VicnRjVmlkZW9FbmNvZGVyU2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wX2lkLCBjb25zdAogICAgICAgICB3ZWJydGNWaWRlb0VuY29kZXJTZXRCaXRyYXRlKHNl
bGYsIGdfdmFsdWVfZ2V0X3VpbnQodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQ
Uk9QX0tFWUZSQU1FX0lOVEVSVkFMOgotICAgICAgICBpZiAoc2VsZi0+ZW5jb2RlcikgewotICAg
ICAgICAgICAgYXV0byAmZW5jb2RlciA9IEVuY29kZXJzOjpkZWZpbml0aW9uKHNlbGYtPmVuY29k
ZXJJZCk7Ci0gICAgICAgICAgICBnX29iamVjdF9zZXQoc2VsZi0+ZW5jb2RlciwgZW5jb2Rlci5r
ZXlmcmFtZUludGVydmFsUHJvcGVydHlOYW1lLCBnX3ZhbHVlX2dldF91aW50KHZhbHVlKSwgbnVs
bHB0cik7CisgICAgICAgIGlmIChwcml2LT5lbmNvZGVyKSB7CisgICAgICAgICAgICBhdXRvIGVu
Y29kZXIgPSBFbmNvZGVyczo6ZGVmaW5pdGlvbihwcml2LT5lbmNvZGVySWQpOworICAgICAgICAg
ICAgZ19vYmplY3Rfc2V0KHByaXYtPmVuY29kZXIuZ2V0KCksIGVuY29kZXItPmtleWZyYW1lSW50
ZXJ2YWxQcm9wZXJ0eU5hbWUsIGdfdmFsdWVfZ2V0X3VpbnQodmFsdWUpLCBudWxscHRyKTsKICAg
ICAgICAgfQogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAtMjI2LDc3ICsyMzMsNTgg
QEAgc3RhdGljIHZvaWQgd2VicnRjVmlkZW9FbmNvZGVyU2V0UHJvcGVydHkoR09iamVjdCogb2Jq
ZWN0LCBndWludCBwcm9wX2lkLCBjb25zdAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgc2V0dXBY
MjY0ZW5jKFdlYnJ0Y1ZpZGVvRW5jb2Rlciogc2VsZikKLXsKLSAgICBnc3RfdXRpbF9zZXRfb2Jq
ZWN0X2FyZyhHX09CSkVDVCAoc2VsZi0+ZW5jb2RlciksICJ0dW5lIiwgInplcm9sYXRlbmN5Iik7
Ci0gICAgZ19vYmplY3Rfc2V0KHNlbGYtPnBhcnNlciwgImNvbmZpZy1pbnRlcnZhbCIsIDEsIG51
bGxwdHIpOwotfQotCi1zdGF0aWMgdm9pZCBzZXR1cE9wZW5oMjY0ZW5jKFdlYnJ0Y1ZpZGVvRW5j
b2Rlciogc2VsZikKLXsKLSAgICBnX29iamVjdF9zZXQgKHNlbGYtPnBhcnNlciwgImNvbmZpZy1p
bnRlcnZhbCIsIDEsIG51bGxwdHIpOwotfQotCi1zdGF0aWMgdm9pZCBzZXR1cE9teGgyNjRlbmMo
V2VicnRjVmlkZW9FbmNvZGVyKiBzZWxmKQorc3RhdGljIHZvaWQgc2V0Qml0cmF0ZUtiaXRQZXJT
ZWMoR09iamVjdCogZW5jb2RlciwgY29uc3QgY2hhciogcHJvcGVydHlOYW1lLCBpbnQgYml0cmF0
ZSkKIHsKLSAgZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcoR19PQkpFQ1Qoc2VsZi0+ZW5jb2Rlciks
ICJjb250cm9sLXJhdGUiLCAidmFyaWFibGUiKTsKLSAgZ19vYmplY3Rfc2V0KHNlbGYtPnBhcnNl
ciwgImNvbmZpZy1pbnRlcnZhbCIsIDEsIG51bGxwdHIpOworICAgIGdfb2JqZWN0X3NldChlbmNv
ZGVyLCBwcm9wZXJ0eU5hbWUsIGJpdHJhdGUsIG51bGxwdHIpOwogfQogCi1zdGF0aWMgdm9pZCBz
ZXRCaXRyYXRlS2JpdFBlclNlYyhHT2JqZWN0KiBlbmNvZGVyLCBjb25zdCBnY2hhciogcHJvcF9u
YW1lLCBnaW50IGJpdHJhdGUpCitzdGF0aWMgdm9pZCBzZXRCaXRyYXRlQml0UGVyU2VjKEdPYmpl
Y3QqIGVuY29kZXIsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgaW50IGJpdHJhdGUpCiB7Ci0g
IGdfb2JqZWN0X3NldChlbmNvZGVyLCBwcm9wX25hbWUsIGJpdHJhdGUsIG51bGxwdHIpOworICAg
IGdfb2JqZWN0X3NldChlbmNvZGVyLCBwcm9wZXJ0eU5hbWUsIGJpdHJhdGUgKiBLQklUX1RPX0JJ
VCwgbnVsbHB0cik7CiB9CiAKLXN0YXRpYyB2b2lkIHNldEJpdHJhdGVCaXRQZXJTZWMoR09iamVj
dCogZW5jb2RlciwgY29uc3QgZ2NoYXIqIHByb3BfbmFtZSwgZ2ludCBiaXRyYXRlKQorc3RhdGlj
IHZvaWQgd2VicnRjVmlkZW9FbmNvZGVyQ29uc3RydWN0ZWQoR09iamVjdCogZW5jb2RlcikKIHsK
LSAgZ19vYmplY3Rfc2V0KGVuY29kZXIsIHByb3BfbmFtZSwgYml0cmF0ZSAqIEtCSVRfVE9fQklU
LCBudWxscHRyKTsKKyAgICBhdXRvKiBzZWxmID0gV0VCS0lUX1dFQlJUQ19WSURFT19FTkNPREVS
KGVuY29kZXIpOworICAgIHNlbGYtPnByaXYtPmVuY29kZXJJZCA9IE5vbmU7CisgICAgZ3N0X2Vs
ZW1lbnRfYWRkX3BhZChHU1RfRUxFTUVOVF9DQVNUKHNlbGYpLCB3ZWJraXRHc3RHaG9zdFBhZEZy
b21TdGF0aWNUZW1wbGF0ZSgmc2lua1RlbXBsYXRlLCAic2luayIsIG51bGxwdHIpKTsKKyAgICBn
c3RfZWxlbWVudF9hZGRfcGFkKEdTVF9FTEVNRU5UX0NBU1Qoc2VsZiksIHdlYmtpdEdzdEdob3N0
UGFkRnJvbVN0YXRpY1RlbXBsYXRlKCZzcmNUZW1wbGF0ZSwgInNyYyIsIG51bGxwdHIpKTsKIH0K
IAotc3RhdGljIHZvaWQgd2VicnRjX3ZpZGVvX2VuY29kZXJfY2xhc3NfaW5pdChXZWJydGNWaWRl
b0VuY29kZXJDbGFzcyoga2xhc3MpCitzdGF0aWMgdm9pZCB3ZWJraXRfd2VicnRjX3ZpZGVvX2Vu
Y29kZXJfY2xhc3NfaW5pdChXZWJLaXRXZWJydGNWaWRlb0VuY29kZXJDbGFzcyoga2xhc3MpCiB7
Ci0gICAgR09iamVjdENsYXNzKiBvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyAoa2xhc3Mp
OwotCi0gICAgR1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQgKHdlYnJ0Y192ZW5jX2RlYnVnLCAid2Vi
cnRjZW5jb2RlciIsIDAsICJWaWRlbyBlbmNvZGVyIGZvciBXZWJSVEMiKTsKLQotICAgIG9iamVj
dF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2VicnRjVmlkZW9FbmNvZGVyR2V0UHJvcGVydHk7Ci0g
ICAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJydGNWaWRlb0VuY29kZXJTZXRQcm9w
ZXJ0eTsKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xh
c3MpOworICAgIG9iamVjdENsYXNzLT5jb25zdHJ1Y3RlZCA9IHdlYnJ0Y1ZpZGVvRW5jb2RlckNv
bnN0cnVjdGVkOworICAgIG9iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJydGNWaWRlb0Vu
Y29kZXJHZXRQcm9wZXJ0eTsKKyAgICBvYmplY3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2VicnRj
VmlkZW9FbmNvZGVyU2V0UHJvcGVydHk7CiAKLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KG9iamVjdF9jbGFzcywgUFJPUF9GT1JNQVQsCi0gICAgICAgIGdfcGFyYW1fc3BlY19i
b3hlZCgiZm9ybWF0IiwgIkZvcm1hdCBhcyBjYXBzIiwgIlNldCB0aGUgY2FwcyBvZiB0aGUgZm9y
bWF0IHRvIGJlIHVzZWQuIiwgR1NUX1RZUEVfQ0FQUywKLSAgICAgICAgc3RhdGljX2Nhc3Q8R1Bh
cmFtRmxhZ3M+KEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNfU1RSSU5HUykpKTsK
KyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNzLCBQUk9QX0ZP
Uk1BVCwgZ19wYXJhbV9zcGVjX2JveGVkKCJmb3JtYXQiLCAiRm9ybWF0IGFzIGNhcHMiLCAiU2V0
IHRoZSBjYXBzIG9mIHRoZSBmb3JtYXQgdG8gYmUgdXNlZC4iLCBHU1RfVFlQRV9DQVBTLCBXRUJL
SVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAKLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KG9iamVjdF9jbGFzcywgUFJPUF9FTkNPREVSLAotICAgICAgICBnX3BhcmFtX3NwZWNfb2Jq
ZWN0KCJlbmNvZGVyIiwgIlRoZSBhY3R1YWwgZW5jb2RlciBlbGVtZW50IiwgIlRoZSBlbmNvZGVy
IGVsZW1lbnQiLCBHU1RfVFlQRV9FTEVNRU5ULAotICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1G
bGFncz4oR19QQVJBTV9SRUFEQUJMRSB8IEdfUEFSQU1fU1RBVElDX1NUUklOR1MpKSk7CisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9FTkNPREVS
LCBnX3BhcmFtX3NwZWNfb2JqZWN0KCJlbmNvZGVyIiwgIlRoZSBhY3R1YWwgZW5jb2RlciBlbGVt
ZW50IiwgIlRoZSBlbmNvZGVyIGVsZW1lbnQiLCBHU1RfVFlQRV9FTEVNRU5ULCBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKIAotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2Jq
ZWN0X2NsYXNzLCBQUk9QX0JJVFJBVEUsCi0gICAgICAgIGdfcGFyYW1fc3BlY191aW50KCJiaXRy
YXRlIiwgIkJpdHJhdGUiLCAgIlRoZSBiaXRyYXRlIGluIGtiaXQgcGVyIHNlY29uZCIsIDAsIEdf
TUFYSU5ULCAyMDQ4LAorICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0
Q2xhc3MsIFBST1BfQklUUkFURSwgZ19wYXJhbV9zcGVjX3VpbnQoImJpdHJhdGUiLCAiQml0cmF0
ZSIsICJUaGUgYml0cmF0ZSBpbiBrYml0IHBlciBzZWNvbmQiLCAwLCBHX01BWElOVCwgMjA0OCwK
ICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KEdfUEFSQU1fUkVBRFdSSVRFIHwgR19Q
QVJBTV9TVEFUSUNfU1RSSU5HUyB8IEdfUEFSQU1fQ09OU1RSVUNUKSkpOwogCi0gICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RfY2xhc3MsIFBST1BfS0VZRlJBTUVfSU5U
RVJWQUwsCi0gICAgICAgIGdfcGFyYW1fc3BlY191aW50KCJrZXlmcmFtZS1pbnRlcnZhbCIsICJL
ZXlmcmFtZSBpbnRlcnZhbCIsICJUaGUgaW50ZXJ2YWwgYmV0d2VlbiBrZXlmcmFtZXMiLCAwLCBH
X01BWElOVCwgMCwKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENs
YXNzLCBQUk9QX0tFWUZSQU1FX0lOVEVSVkFMLCBnX3BhcmFtX3NwZWNfdWludCgia2V5ZnJhbWUt
aW50ZXJ2YWwiLCAiS2V5ZnJhbWUgaW50ZXJ2YWwiLCAiVGhlIGludGVydmFsIGJldHdlZW4ga2V5
ZnJhbWVzIiwgMCwgR19NQVhJTlQsIDAsCiAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdz
PihHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX1NUUklOR1MgfCBHX1BBUkFNX0NP
TlNUUlVDVCkpKTsKIAogICAgIEVuY29kZXJzOjpyZWdpc3RlckVuY29kZXIoT214SDI2NCwgIm9t
eGgyNjRlbmMiLCAiaDI2NHBhcnNlIiwgInZpZGVvL3gtaDI2NCIsCiAgICAgICAgICJ2aWRlby94
LWgyNjQsYWxpZ25tZW50PWF1LHN0cmVhbS1mb3JtYXQ9Ynl0ZS1zdHJlYW0scHJvZmlsZT1iYXNl
bGluZSIsCi0gICAgICAgIHNldHVwT214aDI2NGVuYywgInRhcmdldC1iaXRyYXRlIiwgc2V0Qml0
cmF0ZUJpdFBlclNlYywgImludGVydmFsLWludHJhZnJhbWVzIik7CisgICAgICAgIFtdKFdlYktp
dFdlYnJ0Y1ZpZGVvRW5jb2Rlciogc2VsZikgeworICAgICAgICAgICAgZ3N0X3V0aWxfc2V0X29i
amVjdF9hcmcoR19PQkpFQ1Qoc2VsZi0+cHJpdi0+ZW5jb2Rlci5nZXQoKSksICJjb250cm9sLXJh
dGUiLCAidmFyaWFibGUiKTsKKyAgICAgICAgICAgIGdfb2JqZWN0X3NldChzZWxmLT5wcml2LT5w
YXJzZXIuZ2V0KCksICJjb25maWctaW50ZXJ2YWwiLCAxLCBudWxscHRyKTsKKyAgICAgICAgfSwg
InRhcmdldC1iaXRyYXRlIiwgc2V0Qml0cmF0ZUJpdFBlclNlYywgImludGVydmFsLWludHJhZnJh
bWVzIik7CiAgICAgRW5jb2RlcnM6OnJlZ2lzdGVyRW5jb2RlcihYMjY0LCAieDI2NGVuYyIsICJo
MjY0cGFyc2UiLCAidmlkZW8veC1oMjY0IiwKICAgICAgICAgInZpZGVvL3gtaDI2NCxhbGlnbm1l
bnQ9YXUsc3RyZWFtLWZvcm1hdD1ieXRlLXN0cmVhbSxwcm9maWxlPWJhc2VsaW5lIiwKLSAgICAg
ICAgc2V0dXBYMjY0ZW5jLCAiYml0cmF0ZSIsIHNldEJpdHJhdGVLYml0UGVyU2VjLCAia2V5LWlu
dC1tYXgiKTsKKyAgICAgICAgW10oV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVyKiBzZWxmKSB7Cisg
ICAgICAgICAgICBnc3RfdXRpbF9zZXRfb2JqZWN0X2FyZyhHX09CSkVDVChzZWxmLT5wcml2LT5l
bmNvZGVyLmdldCgpKSwgInR1bmUiLCAiemVyb2xhdGVuY3kiKTsKKyAgICAgICAgICAgIGdfb2Jq
ZWN0X3NldChzZWxmLT5wcml2LT5wYXJzZXIuZ2V0KCksICJjb25maWctaW50ZXJ2YWwiLCAxLCBu
dWxscHRyKTsKKyAgICAgICAgfSwgImJpdHJhdGUiLCBzZXRCaXRyYXRlS2JpdFBlclNlYywgImtl
eS1pbnQtbWF4Iik7CiAgICAgRW5jb2RlcnM6OnJlZ2lzdGVyRW5jb2RlcihPcGVuSDI2NCwgIm9w
ZW5oMjY0ZW5jIiwgImgyNjRwYXJzZSIsICJ2aWRlby94LWgyNjQiLAogICAgICAgICAidmlkZW8v
eC1oMjY0LGFsaWdubWVudD1hdSxzdHJlYW0tZm9ybWF0PWJ5dGUtc3RyZWFtLHByb2ZpbGU9YmFz
ZWxpbmUiLAotICAgICAgICBzZXR1cE9wZW5oMjY0ZW5jLCAiYml0cmF0ZSIsIHNldEJpdHJhdGVC
aXRQZXJTZWMsICJnb3Atc2l6ZSIpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJydGNfdmlkZW9fZW5j
b2Rlcl9pbml0IChXZWJydGNWaWRlb0VuY29kZXIqIHNlbGYpCi17Ci0gICAgc2VsZi0+ZW5jb2Rl
cklkID0gTm9uZTsKLSAgICBnc3RfZWxlbWVudF9hZGRfcGFkKEdTVF9FTEVNRU5UKHNlbGYpLAot
ICAgICAgICBnc3RfZ2hvc3RfcGFkX25ld19ub190YXJnZXRfZnJvbV90ZW1wbGF0ZSgic2luayIs
IGdzdF9zdGF0aWNfcGFkX3RlbXBsYXRlX2dldCgmc2lua1RlbXBsYXRlKSkpOwotCi0gICAgZ3N0
X2VsZW1lbnRfYWRkX3BhZChHU1RfRUxFTUVOVChzZWxmKSwKLSAgICAgICAgZ3N0X2dob3N0X3Bh
ZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUoInNyYyIsIGdzdF9zdGF0aWNfcGFkX3RlbXBs
YXRlX2dldCgmc3JjVGVtcGxhdGUpKSk7CisgICAgICAgIFtdKFdlYktpdFdlYnJ0Y1ZpZGVvRW5j
b2Rlciogc2VsZikgeworICAgICAgICAgICAgZ19vYmplY3Rfc2V0KHNlbGYtPnByaXYtPnBhcnNl
ci5nZXQoKSwgImNvbmZpZy1pbnRlcnZhbCIsIDEsIG51bGxwdHIpOworICAgICAgICB9LCAiYml0
cmF0ZSIsIHNldEJpdHJhdGVCaXRQZXJTZWMsICJnb3Atc2l6ZSIpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKFZJREVPKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoTElCV0VCUlRDKSAm
JiBVU0UoR1NUUkVBTUVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2Rlci5o
CmluZGV4IDI1YWM0M2QwYzdjNmE2M2FmMjgwZDQ5ZGRlNzEzZjQ3NzA2YmI5NDQuLjRkNjZlZDdl
YjM5M2JkZmExOTEzOTJhYTEyN2UzOGUyMTA1OTkwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0
cmVhbWVyVmlkZW9FbmNvZGVyLmgKQEAgLTI0LDggKzI0LDI2IEBACiAKIEdfQkVHSU5fREVDTFMK
IAotI2RlZmluZSBXRUJSVENfVFlQRV9WSURFT19FTkNPREVSICh3ZWJydGNfdmlkZW9fZW5jb2Rl
cl9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfVFlQRV9XRUJSVENfVklERU9fRU5DT0RFUiAo
d2Via2l0X3dlYnJ0Y192aWRlb19lbmNvZGVyX2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9X
RUJSVENfVklERU9fRU5DT0RFUihvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2Jq
KSwgV0VCS0lUX1RZUEVfV0VCUlRDX1ZJREVPX0VOQ09ERVIsIFdlYktpdFdlYnJ0Y1ZpZGVvRW5j
b2RlcikpCisjZGVmaW5lIFdFQktJVF9XRUJSVENfVklERU9fRU5DT0RFUl9DTEFTUyhrbGFzcykg
KEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksIFdFQktJVF9UWVBFX1dFQlJUQ19WSURF
T19FTkNPREVSLCBXZWJLaXRXZWJydGNWaWRlb0VuY29kZXJDbGFzcykpCisjZGVmaW5lIFdFQktJ
VF9JU19XRUJSVENfVklERU9fRU5DT0RFUihvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQ
RSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCUlRDX1ZJREVPX0VOQ09ERVIpKQorI2RlZmluZSBXRUJL
SVRfSVNfV0VCUlRDX1ZJREVPX0VOQ09ERVJfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSgoa2xhc3MpLCBXRUJLSVRfVFlQRV9XRUJSVENfVklERU9fRU5DT0RFUikpCiAKLUdf
REVDTEFSRV9GSU5BTF9UWVBFIChXZWJydGNWaWRlb0VuY29kZXIsIHdlYnJ0Y192aWRlb19lbmNv
ZGVyLCBXRUJSVEMsIFZJREVPX0VOQ09ERVIsIEdzdEJpbikKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRXZWJydGNWaWRlb0VuY29kZXIgV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVyOwordHlwZWRlZiBz
dHJ1Y3QgX1dlYktpdFdlYnJ0Y1ZpZGVvRW5jb2RlckNsYXNzIFdlYktpdFdlYnJ0Y1ZpZGVvRW5j
b2RlckNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYnJ0Y1ZpZGVvRW5jb2RlclByaXZh
dGUgV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVyUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRXZWJy
dGNWaWRlb0VuY29kZXIgeworICAgIEdzdEJpbiBwYXJlbnQ7CisKKyAgICBXZWJLaXRXZWJydGNW
aWRlb0VuY29kZXJQcml2YXRlKiBwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRXZWJydGNWaWRl
b0VuY29kZXJDbGFzcyB7CisgICAgR3N0QmluQ2xhc3MgcGFyZW50Q2xhc3M7Cit9OworCitHVHlw
ZSB3ZWJraXRfd2VicnRjX3ZpZGVvX2VuY29kZXJfZ2V0X3R5cGUodm9pZCk7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9y
eS5jcHAKaW5kZXggYzgwZWE4ODZiYWQwNjczNThlYzQ0OGVmMjE4OGQzNzE3MzkwOGU1My4uNjYy
MjRlZDFkZDM4MTcwZjc3MjZkZWViNDM1YTg1NGMyZjBlODA3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5j
b2RlckZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5LmNwcApAQCAtNDQ1LDcgKzQ0
NSw5IEBAIEdTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnk6OkdTdHJlYW1lclZpZGVvRW5jb2Rl
ckZhY3RvcnkoKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBkZWJ1Z1JlZ2lzdGVyZWRGbGFn
OwogICAgIHN0ZDo6Y2FsbF9vbmNlKGRlYnVnUmVnaXN0ZXJlZEZsYWcsIFtdIHsKICAgICAgICAg
R1NUX0RFQlVHX0NBVEVHT1JZX0lOSVQod2Via2l0X3dlYnJ0Y2VuY19kZWJ1ZywgIndlYmtpdGxp
YndlYnJ0Y3ZpZGVvZW5jb2RlciIsIDAsICJXZWJLaXQgV2ViUlRDIHZpZGVvIGVuY29kZXIiKTsK
LSAgICAgICAgZ3N0X2VsZW1lbnRfcmVnaXN0ZXIobnVsbHB0ciwgIndlYnJ0Y3ZpZGVvZW5jb2Rl
ciIsIEdTVF9SQU5LX05PTkUsIFdFQlJUQ19UWVBFX1ZJREVPX0VOQ09ERVIpOworICAgICAgICBh
dXRvIGZhY3RvcnkgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZmFjdG9yeV9maW5kKCJ3ZWJydGN2
aWRlb2VuY29kZXIiKSk7CisgICAgICAgIGlmICghZmFjdG9yeSkKKyAgICAgICAgICAgIGdzdF9l
bGVtZW50X3JlZ2lzdGVyKG51bGxwdHIsICJ3ZWJydGN2aWRlb2VuY29kZXIiLCBHU1RfUkFOS19O
T05FLCBXRUJLSVRfVFlQRV9XRUJSVENfVklERU9fRU5DT0RFUik7CiAgICAgfSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiYzE3MDRk
YTIwYmFlOWE2YWU5YmVlN2IxZTJjN2ZjZjk3NmFhMDYzLi4xYzQwMjA1NTk3NjEwYmM3MjRmY2M3
ZGE3NzBjNGIzMmIxMjIxYmY3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDMtMDggIFBoaWxpcHBlIE5vcm1h
bmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHU3RyZWFtZXJdW1dlYlJUQ10g
VmlkZW9FbmNvZGVyIHN0aWxsIGRvZXNuJ3QgY29tcGx5IHdpdGggV2ViS2l0IHN0eWxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI5MDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlci5weTogTW92ZSB0aGUgR1N0cmVhbWVyIFZpZGVvRW5jb2RlciB0
byB0aGUgbGlzdCBvZiBjdXN0b20KKyAgICAgICAgR1N0cmVhbWVyIGVsZW1lbnRzIGNvbXBseWlu
ZyB3aXRoIFdlYktpdCdzIGNvZGluZyBzdHlsZS4KKwogMjAyMS0wMy0wNyAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBtYWlsZCBoaXRzIGEg
c2ltdWxhdGVkIGNyYXNoIHdoZW4gRU5BQkxFKEFQUF9ISUdITElHSFRTKSBpcyBkZWZpbmVkCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggOThjNjAzYjFiNWU4MDZj
MjM3MzljZjY3ZDc0NDExYzJhOWQ1YmNlMi4uM2Y0ZTg3ZDdiZjg0N2ZjYTAxZmNlMzAyOWZmMTNm
MDNiMDA3NjAxYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAt
MjMyLDYgKzIzMiw4IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICAgICAgIG9zLnBhdGgu
am9pbignU291cmNlJywgJ1dlYkNvcmUnLCAncGxhdGZvcm0nLCAnYXVkaW8nLCAnZ3N0cmVhbWVy
JywgJ1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCcpLAogICAgICAgb3MucGF0aC5q
b2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICdtZWRpYXN0cmVhbScsICdnc3Ry
ZWFtZXInLCAnR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaCcpLAogICAgICAgb3MucGF0aC5q
b2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICdtZWRpYXN0cmVhbScsICdnc3Ry
ZWFtZXInLCAnR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwJyksCisgICAgICBvcy5wYXRo
LmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ21lZGlhc3RyZWFtJywgJ2xp
YndlYnJ0YycsICdHU3RyZWFtZXJWaWRlb0VuY29kZXIuaCcpLAorICAgICAgb3MucGF0aC5qb2lu
KCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICdtZWRpYXN0cmVhbScsICdsaWJ3ZWJy
dGMnLCAnR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcCcpLAogICAgICAgb3MucGF0aC5qb2luKCdT
b3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICduZXR3b3JrJywgJ3NvdXAnLCAnUHJveHlS
ZXNvbHZlclNvdXAuY3BwJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3Jl
JywgJ3BsYXRmb3JtJywgJ25ldHdvcmsnLCAnc291cCcsICdQcm94eVJlc29sdmVyU291cC5oJyks
CiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ25l
dHdvcmsnLCAnc291cCcsICdXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtLmNwcCcpLApAQCAtMjYz
LDE5ICsyNjUsNiBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAgICAgICAiLXdoaXRlc3Bh
Y2UvZGVjbGFyYXRpb24iLAogICAgICAgIi13aGl0ZXNwYWNlL2luZGVudCJdKSwKIAotICAgIChb
ICAjIEZpbGVzIGZvbGxvd2luZyBHU3RyZWFtZXIgY29kaW5nIHN0eWxlIChmb3IgYSBzaW1wbGVy
IHVwc3RyZWFtaW5nIHByb2Nlc3MgZm9yIGV4YW1wbGUpCi0gICAgICBvcy5wYXRoLmpvaW4oJ1Nv
dXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ21lZGlhc3RyZWFtJywgJ2xpYndlYnJ0Yycs
ICdHU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwJyksCi0gICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJj
ZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ21lZGlhc3RyZWFtJywgJ2xpYndlYnJ0YycsICdH
U3RyZWFtZXJWaWRlb0VuY29kZXIuaCcpLAotICAgICBdLAotICAgICBbIi13aGl0ZXNwYWNlL2lu
ZGVudCIsCi0gICAgICAiLXdoaXRlc3BhY2UvZGVjbGFyYXRpb24iLAotICAgICAgIi13aGl0ZXNw
YWNlL3BhcmVucyIsCi0gICAgICAiLXJlYWRhYmlsaXR5L251bGwiLAotICAgICAgIi13aGl0ZXNw
YWNlL2JyYWNlcyIsCi0gICAgICAiLXJlYWRhYmlsaXR5L25hbWluZy91bmRlcnNjb3JlcyIsCi0g
ICAgICAiLXJlYWRhYmlsaXR5L2VudW1fY2FzaW5nIiwKLSAgICAgXSksCi0KICAgICAoWyAgIyBG
aWxlcyBmb2xsb3dpbmcgdXNpbmcgV2ViUlRDIG9wdGlvbm5hbCB0eXBlCiAgICAgICBvcy5wYXRo
LmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ21lZGlhc3RyZWFtJywgJ2xp
YndlYnJ0YycsICdHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcCcpLAogICAgICBdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422699</attachid>
            <date>2021-03-09 08:23:56 -0800</date>
            <delta_ts>2021-03-09 08:53:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222901-20210309082354.patch</filename>
            <type>text/plain</type>
            <size>26684</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVhNGI5MDY4ODE5NmJh
YmJmMTExODk1ZGJiZmRhN2VkOTMxOTE1Ni4uYzk2MGFjYmZlYTRiMTk3MTJkMWUzODg1ZmVkOTI5
Mzk3MTk0NDQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTAzLTA5ICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVy
XVtXZWJSVENdIFZpZGVvRW5jb2RlciBzdGlsbCBkb2Vzbid0IGNvbXBseSB3aXRoIFdlYktpdCBz
dHlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIy
OTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWGFiaWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAg
ICAgICAgUmVmYWN0b3IgdGhlIGNvZGUgdG8gY29tcGx5IHdpdGggV2ViS2l0J3MgY29kaW5nIHN0
eWxlLiBBIG5ldyBmdW5jdGlvbiBhbGxvd2luZyB0byBzZXQgdGhlCisgICAgICAgIGVuY29kZXIg
ZWxlbWVudCB3YXMgYWxzbyBmYWN0b3JlZCBvdXQsIGluIHByZXBhcmF0aW9uIGZvciB0aGUgY2Ft
ZXJhYmluIHN1cHBvcnQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcDoKKyAgICAgICAgKEVuY29kZXJzOjpyZWdpc3Rl
ckVuY29kZXIpOgorICAgICAgICAod2VicnRjVmlkZW9FbmNvZGVyR2V0UHJvcGVydHkpOgorICAg
ICAgICAod2VicnRjVmlkZW9FbmNvZGVyU2V0Qml0cmF0ZSk6CisgICAgICAgICh3ZWJydGNWaWRl
b0VuY29kZXJTZXRFbmNvZGVyKToKKyAgICAgICAgKHdlYnJ0Y1ZpZGVvRW5jb2RlclNldEZvcm1h
dCk6CisgICAgICAgICh3ZWJydGNWaWRlb0VuY29kZXJTZXRQcm9wZXJ0eSk6CisgICAgICAgIChz
ZXRCaXRyYXRlS2JpdFBlclNlYyk6CisgICAgICAgIChzZXRCaXRyYXRlQml0UGVyU2VjKToKKyAg
ICAgICAgKHdlYnJ0Y1ZpZGVvRW5jb2RlckNvbnN0cnVjdGVkKToKKyAgICAgICAgKHdlYmtpdF93
ZWJydGNfdmlkZW9fZW5jb2Rlcl9jbGFzc19pbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmg6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3Rvcnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeTo6R1N0
cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeSk6CisKIDIwMjEtMDMtMDkgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ29ycmVjdGx5IGJsZW5kIGNvbHVtbi13
aWR0aCBhbmQgY29sdW1uLWNvdW50IENTUyBwcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNv
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9H
U3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCmluZGV4IDU1ODgzODNmYTZmMWMzMjVkNjRkZDNiY2M4
NjBmMmUwNGZkMzNhOWIuLjhlZGYyNDliMjQ2NjViOWFlMTNkMDFhOWFmY2ExYWQ0MjdkNWE2OWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwCkBAIC0xOCwz
OCArMTgsMzcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLS8qIE5P
VEU6IFRoaXMgZmlsZSByZXNwZWN0cyBHU3RyZWFtZXIgY29kaW5nIHN0eWxlIGFzIHdlIG1pZ2h0
IHdhbnQgdG8gdXBzdHJlYW0KLSAqIHRoYXQgZWxlbWVudCBpbiB0aGUgZnV0dXJlICovCi0KICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHU3RyZWFtZXJWaWRlb0VuY29kZXIuaCIKIAog
I2lmIEVOQUJMRShWSURFTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKExJQldFQlJU
QykgJiYgVVNFKEdTVFJFQU1FUikKLSNpbmNsdWRlICJHUmVmUHRyR1N0cmVhbWVyLmgiCisKKyNp
bmNsdWRlICJHU3RyZWFtZXJDb21tb24uaCIKICNpbmNsdWRlIDx3dGYvU3RkTWFwLmg+CisjaW5j
bHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KIAotR1NUX0RFQlVHX0NBVEVHT1JZICh3ZWJydGNf
dmVuY19kZWJ1Zyk7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworR1NUX0RFQlVHX0NBVEVH
T1JZKHdlYnJ0Y192ZW5jX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYnJ0Y192
ZW5jX2RlYnVnCiAKICNkZWZpbmUgS0JJVF9UT19CSVQgMTAyNAogCi1zdGF0aWMgR3N0U3RhdGlj
UGFkVGVtcGxhdGUgc2lua1RlbXBsYXRlID0KLSAgICBHU1RfU1RBVElDX1BBRF9URU1QTEFURSAo
InNpbmsiLCBHU1RfUEFEX1NJTkssIEdTVF9QQURfQUxXQVlTLCBHU1RfU1RBVElDX0NBUFMgKCJ2
aWRlby94LXJhdyhBTlkpOyIpKTsKLXN0YXRpYyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzcmNUZW1w
bGF0ZSA9Ci0gICAgR1NUX1NUQVRJQ19QQURfVEVNUExBVEUgKCJzcmMiLCBHU1RfUEFEX1NSQywg
R1NUX1BBRF9BTFdBWVMsIEdTVF9TVEFUSUNfQ0FQUyAoInZpZGVvL3gtaDI2NDt2aWRlby94LXZw
OCIpKTsKK3N0YXRpYyBHc3RTdGF0aWNQYWRUZW1wbGF0ZSBzaW5rVGVtcGxhdGUgPSBHU1RfU1RB
VElDX1BBRF9URU1QTEFURSgic2luayIsIEdTVF9QQURfU0lOSywgR1NUX1BBRF9BTFdBWVMsIEdT
VF9TVEFUSUNfQ0FQUygidmlkZW8veC1yYXcoQU5ZKSIpKTsKK3N0YXRpYyBHc3RTdGF0aWNQYWRU
ZW1wbGF0ZSBzcmNUZW1wbGF0ZSA9IEdTVF9TVEFUSUNfUEFEX1RFTVBMQVRFKCJzcmMiLCBHU1Rf
UEFEX1NSQywgR1NUX1BBRF9BTFdBWVMsIEdTVF9TVEFUSUNfQ0FQUygidmlkZW8veC1oMjY0O3Zp
ZGVvL3gtdnA4IikpOwogCi10eXBlZGVmIHZvaWQgKCpTZXRCaXRyYXRlRnVuYykgKEdPYmplY3Qg
KiBlbmNvZGVyLCBjb25zdCBnY2hhciAqIHByb3BuYW1lLCAgZ2ludCBiaXRyYXRlKTsKLXR5cGVk
ZWYgdm9pZCAoKlNldHVwRnVuYykgKFdlYnJ0Y1ZpZGVvRW5jb2RlciAqIHNlbGYpOwordXNpbmcg
U2V0Qml0cmF0ZUZ1bmMgPSBGdW5jdGlvbjx2b2lkKEdPYmplY3QqIGVuY29kZXIsIGNvbnN0IGNo
YXIqIHByb3BlcnR5TmFtZSwgaW50IGJpdHJhdGUpPjsKK3VzaW5nIFNldHVwRnVuYyA9IEZ1bmN0
aW9uPHZvaWQoV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVyKik+OwogCiBzdHJ1Y3QgRW5jb2RlckRl
ZmluaXRpb24gewogICAgIEdSZWZQdHI8R3N0Q2Fwcz4gY2FwczsKLSAgICBjb25zdCBnY2hhciog
bmFtZTsKLSAgICBjb25zdCBnY2hhciogcGFyc2VyTmFtZTsKKyAgICBjb25zdCBjaGFyKiBuYW1l
OworICAgIGNvbnN0IGNoYXIqIHBhcnNlck5hbWU7CiAgICAgR1JlZlB0cjxHc3RDYXBzPiBlbmNv
ZGVkRm9ybWF0OwogICAgIFNldEJpdHJhdGVGdW5jIHNldEJpdHJhdGU7CiAgICAgU2V0dXBGdW5j
IHNldHVwRW5jb2RlcjsKLSAgICBjb25zdCBnY2hhciogYml0cmF0ZVByb3BlcnR5TmFtZTsKLSAg
ICBjb25zdCBnY2hhcioga2V5ZnJhbWVJbnRlcnZhbFByb3BlcnR5TmFtZTsKKyAgICBjb25zdCBj
aGFyKiBiaXRyYXRlUHJvcGVydHlOYW1lOworICAgIGNvbnN0IGNoYXIqIGtleWZyYW1lSW50ZXJ2
YWxQcm9wZXJ0eU5hbWU7CiB9OwogCiBlbnVtIEVuY29kZXJJZCB7IE5vbmUsIFgyNjQsIE9wZW5I
MjY0LCBPbXhIMjY0LCBWcDggfTsKQEAgLTYyLDE0MCArNjEsMTQ3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGVuY29kZXJzOwogICAgIH0KIAotICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyRW5j
b2RlcihFbmNvZGVySWQgaWQsIGNvbnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hhciogcGFyc2Vy
X25hbWUsIGNvbnN0IGdjaGFyKiBjYXBzLCBjb25zdCBnY2hhciogZW5jb2RlZF9mb3JtYXQsCi0g
ICAgICAgIFNldHVwRnVuYyBzZXR1cEVuY29kZXIsIGNvbnN0IGdjaGFyKiBiaXRyYXRlX3Byb3Bu
YW1lLCBTZXRCaXRyYXRlRnVuYyBzZXRCaXRyYXRlLCBjb25zdCBnY2hhcioga2V5ZnJhbWVfaW50
ZXJ2YWxfcHJvcG5hbWUpCisgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJFbmNvZGVyKEVuY29kZXJJ
ZCBpZCwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogcGFyc2VyTmFtZSwgY29uc3QgY2hh
ciogY2FwcywgY29uc3QgY2hhciogZW5jb2RlZEZvcm1hdCwKKyAgICAgICAgU2V0dXBGdW5jJiYg
c2V0dXBFbmNvZGVyLCBjb25zdCBjaGFyKiBiaXRyYXRlUHJvcGVydHlOYW1lLCBTZXRCaXRyYXRl
RnVuYyYmIHNldEJpdHJhdGUsIGNvbnN0IGNoYXIqIGtleWZyYW1lSW50ZXJ2YWxQcm9wZXJ0eU5h
bWUpCiAgICAgewotICAgICAgICBHc3RQbHVnaW5GZWF0dXJlICpmZWF0dXJlID0gZ3N0X3JlZ2lz
dHJ5X2xvb2t1cF9mZWF0dXJlKGdzdF9yZWdpc3RyeV9nZXQoKSwgbmFtZSk7CisgICAgICAgIGF1
dG8gZmVhdHVyZSA9IGFkb3B0R1JlZihnc3RfcmVnaXN0cnlfbG9va3VwX2ZlYXR1cmUoZ3N0X3Jl
Z2lzdHJ5X2dldCgpLCBuYW1lKSk7CiAgICAgICAgIGlmICghZmVhdHVyZSkKICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgZ3N0X29iamVjdF91bnJlZihmZWF0dXJlKTsKIAogICAgICAgICBz
aW5nbGV0b24oKS5lbXBsYWNlKHN0ZDo6bWFrZV9wYWlyKGlkLCAoRW5jb2RlckRlZmluaXRpb24p
IHsKICAgICAgICAgICAgIC5jYXBzID0gYWRvcHRHUmVmKGdzdF9jYXBzX2Zyb21fc3RyaW5nKGNh
cHMpKSwKICAgICAgICAgICAgIC5uYW1lID0gbmFtZSwKLSAgICAgICAgICAgIC5wYXJzZXJOYW1l
ID0gcGFyc2VyX25hbWUsCi0gICAgICAgICAgICAuZW5jb2RlZEZvcm1hdCA9IChlbmNvZGVkX2Zv
cm1hdCkgPyBhZG9wdEdSZWYoZ3N0X2NhcHNfZnJvbV9zdHJpbmcoZW5jb2RlZF9mb3JtYXQpKSA6
IG51bGxwdHIsCi0gICAgICAgICAgICAuc2V0Qml0cmF0ZSA9IHNldEJpdHJhdGUsCi0gICAgICAg
ICAgICAuc2V0dXBFbmNvZGVyID0gc2V0dXBFbmNvZGVyLAotICAgICAgICAgICAgLmJpdHJhdGVQ
cm9wZXJ0eU5hbWUgPSBiaXRyYXRlX3Byb3BuYW1lLAotICAgICAgICAgICAgLmtleWZyYW1lSW50
ZXJ2YWxQcm9wZXJ0eU5hbWUgPSBrZXlmcmFtZV9pbnRlcnZhbF9wcm9wbmFtZSwKKyAgICAgICAg
ICAgIC5wYXJzZXJOYW1lID0gcGFyc2VyTmFtZSwKKyAgICAgICAgICAgIC5lbmNvZGVkRm9ybWF0
ID0gZW5jb2RlZEZvcm1hdCA/IGFkb3B0R1JlZihnc3RfY2Fwc19mcm9tX3N0cmluZyhlbmNvZGVk
Rm9ybWF0KSkgOiBudWxscHRyLAorICAgICAgICAgICAgLnNldEJpdHJhdGUgPSBXVEZNb3ZlKHNl
dEJpdHJhdGUpLAorICAgICAgICAgICAgLnNldHVwRW5jb2RlciA9IFdURk1vdmUoc2V0dXBFbmNv
ZGVyKSwKKyAgICAgICAgICAgIC5iaXRyYXRlUHJvcGVydHlOYW1lID0gYml0cmF0ZVByb3BlcnR5
TmFtZSwKKyAgICAgICAgICAgIC5rZXlmcmFtZUludGVydmFsUHJvcGVydHlOYW1lID0ga2V5ZnJh
bWVJbnRlcnZhbFByb3BlcnR5TmFtZSwKICAgICAgICAgfSkpOwogICAgIH0KIAotICAgIHN0YXRp
YyBjb25zdCBFbmNvZGVyRGVmaW5pdGlvbiYgZGVmaW5pdGlvbihFbmNvZGVySWQgaWQpIHsKLSAg
ICAgICAgQVNTRVJUKGlkICE9IE5vbmUpOworICAgIHN0YXRpYyBPcHRpb25hbDxFbmNvZGVyRGVm
aW5pdGlvbiY+IGRlZmluaXRpb24oRW5jb2RlcklkIGlkKQorICAgIHsKKyAgICAgICAgaWYgKGlk
ID09IE5vbmUpCisgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICByZXR1cm4gc2luZ2xl
dG9uKClbaWRdOwogICAgIH0KIH07CiAKLXN0cnVjdCBfV2VicnRjVmlkZW9FbmNvZGVyIHsKLSAg
ICBHc3RCaW4gcGFyZW50OwotCitzdHJ1Y3QgX1dlYktpdFdlYnJ0Y1ZpZGVvRW5jb2RlclByaXZh
dGUgewogICAgIEVuY29kZXJJZCBlbmNvZGVySWQ7Ci0gICAgR3N0RWxlbWVudCogZW5jb2RlcjsK
LSAgICBHc3RFbGVtZW50KiBwYXJzZXI7Ci0gICAgZ3VpbnQgYml0cmF0ZTsKKyAgICBHUmVmUHRy
PEdzdEVsZW1lbnQ+IGVuY29kZXI7CisgICAgR1JlZlB0cjxHc3RFbGVtZW50PiBwYXJzZXI7Cisg
ICAgdW5zaWduZWQgYml0cmF0ZTsKIH07CiAKLUdfREVGSU5FX1RZUEUoV2VicnRjVmlkZW9FbmNv
ZGVyLCB3ZWJydGNfdmlkZW9fZW5jb2RlciwgR1NUX1RZUEVfQklOKTsKKyNkZWZpbmUgd2Via2l0
X3dlYnJ0Y192aWRlb19lbmNvZGVyX3BhcmVudF9jbGFzcyBwYXJlbnRfY2xhc3MKK1dFQktJVF9E
RUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVyLCB3ZWJraXRfd2Vi
cnRjX3ZpZGVvX2VuY29kZXIsIEdTVF9UWVBFX0JJTiwKKyAgICBHU1RfREVCVUdfQ0FURUdPUllf
SU5JVCh3ZWJydGNfdmVuY19kZWJ1ZywgIndlYnJ0Y2VuY29kZXIiLCAwLCAiVmlkZW8gZW5jb2Rl
ciBmb3IgV2ViUlRDIikpCiAKIGVudW0gewotICAgICBQUk9QX0ZPUk1BVCA9IDEsCi0gICAgIFBS
T1BfRU5DT0RFUiwKLSAgICAgUFJPUF9CSVRSQVRFLAotICAgICBQUk9QX0tFWUZSQU1FX0lOVEVS
VkFMLAotICAgICBOX1BST1BTCisgICAgUFJPUF9GT1JNQVQgPSAxLAorICAgIFBST1BfRU5DT0RF
UiwKKyAgICBQUk9QX0JJVFJBVEUsCisgICAgUFJPUF9LRVlGUkFNRV9JTlRFUlZBTCwKKyAgICBO
X1BST1BTCiB9OwogCiBzdGF0aWMgdm9pZCB3ZWJydGNWaWRlb0VuY29kZXJHZXRQcm9wZXJ0eShH
T2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMq
IHBzcGVjKQogewotICAgIFdlYnJ0Y1ZpZGVvRW5jb2Rlciogc2VsZiA9IFdFQlJUQ19WSURFT19F
TkNPREVSKG9iamVjdCk7CisgICAgYXV0byogc2VsZiA9IFdFQktJVF9XRUJSVENfVklERU9fRU5D
T0RFUihvYmplY3QpOworICAgIGF1dG8qIHByaXYgPSBzZWxmLT5wcml2OwogCiAgICAgc3dpdGNo
IChwcm9wX2lkKSB7CiAgICAgY2FzZSBQUk9QX0ZPUk1BVDoKLSAgICAgICAgaWYgKHNlbGYtPmVu
Y29kZXJJZCAhPSBOb25lKSB7Ci0gICAgICAgICAgICBhdXRvICZlbmNvZGVyID0gRW5jb2RlcnM6
OmRlZmluaXRpb24oc2VsZi0+ZW5jb2RlcklkKTsKLSAgICAgICAgICAgIGdfdmFsdWVfc2V0X2Jv
eGVkKHZhbHVlLCBlbmNvZGVyLmNhcHMuZ2V0KCkpOwotICAgICAgICB9ICBlbHNlCisgICAgICAg
IGlmIChwcml2LT5lbmNvZGVySWQgIT0gTm9uZSkgeworICAgICAgICAgICAgYXV0byBlbmNvZGVy
ID0gRW5jb2RlcnM6OmRlZmluaXRpb24ocHJpdi0+ZW5jb2RlcklkKTsKKyAgICAgICAgICAgIGdf
dmFsdWVfc2V0X2JveGVkKHZhbHVlLCBlbmNvZGVyLT5jYXBzLmdldCgpKTsKKyAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICBnX3ZhbHVlX3NldF9ib3hlZCh2YWx1ZSwgbnVsbHB0cik7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9FTkNPREVSOgotICAgICAgICBnX3ZhbHVlX3NldF9v
YmplY3QodmFsdWUsIHNlbGYtPmVuY29kZXIpOworICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3Qo
dmFsdWUsIHByaXYtPmVuY29kZXIuZ2V0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBS
T1BfQklUUkFURToKLSAgICAgICAgZ192YWx1ZV9zZXRfdWludCh2YWx1ZSwgc2VsZi0+Yml0cmF0
ZSk7CisgICAgICAgIGdfdmFsdWVfc2V0X3VpbnQodmFsdWUsIHByaXYtPmJpdHJhdGUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFBST1BfS0VZRlJBTUVfSU5URVJWQUw6Ci0gICAgICAgIGlm
IChzZWxmLT5lbmNvZGVyKSB7Ci0gICAgICAgICAgICBhdXRvICZlbmNvZGVyID0gRW5jb2RlcnM6
OmRlZmluaXRpb24oc2VsZi0+ZW5jb2RlcklkKTsKLSAgICAgICAgICAgIGdfb2JqZWN0X2dldF9w
cm9wZXJ0eShHX09CSkVDVChzZWxmLT5lbmNvZGVyKSwgZW5jb2Rlci5rZXlmcmFtZUludGVydmFs
UHJvcGVydHlOYW1lLCB2YWx1ZSk7CisgICAgICAgIGlmIChwcml2LT5lbmNvZGVyKSB7CisgICAg
ICAgICAgICBhdXRvIGVuY29kZXIgPSBFbmNvZGVyczo6ZGVmaW5pdGlvbihwcml2LT5lbmNvZGVy
SWQpOworICAgICAgICAgICAgZ19vYmplY3RfZ2V0X3Byb3BlcnR5KEdfT0JKRUNUKHByaXYtPmVu
Y29kZXIuZ2V0KCkpLCBlbmNvZGVyLT5rZXlmcmFtZUludGVydmFsUHJvcGVydHlOYW1lLCB2YWx1
ZSk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19P
QkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwog
ICAgICAgICBicmVhazsKLSAgfQorICAgIH0KIH0KIAotc3RhdGljIHZvaWQgd2VicnRjVmlkZW9F
bmNvZGVyU2V0Qml0cmF0ZShXZWJydGNWaWRlb0VuY29kZXIqIHNlbGYsIGd1aW50IGJpdHJhdGUp
CitzdGF0aWMgdm9pZCB3ZWJydGNWaWRlb0VuY29kZXJTZXRCaXRyYXRlKFdlYktpdFdlYnJ0Y1Zp
ZGVvRW5jb2Rlciogc2VsZiwgZ3VpbnQgYml0cmF0ZSkKIHsKLSAgICBzZWxmLT5iaXRyYXRlID0g
Yml0cmF0ZTsKLSAgICBpZiAoc2VsZi0+ZW5jb2RlcikgewotICAgICAgICBhdXRvICZlbmNvZGVy
ID0gRW5jb2RlcnM6OmRlZmluaXRpb24oc2VsZi0+ZW5jb2RlcklkKTsKLSAgICAgICAgZW5jb2Rl
ci5zZXRCaXRyYXRlKEdfT0JKRUNUKHNlbGYtPmVuY29kZXIpLCBlbmNvZGVyLmJpdHJhdGVQcm9w
ZXJ0eU5hbWUsIHNlbGYtPmJpdHJhdGUpOworICAgIGF1dG8qIHByaXYgPSBzZWxmLT5wcml2Owor
ICAgIHByaXYtPmJpdHJhdGUgPSBiaXRyYXRlOworCisgICAgaWYgKHByaXYtPmVuY29kZXJJZCAh
PSBOb25lKSB7CisgICAgICAgIGF1dG8gZW5jb2RlciA9IEVuY29kZXJzOjpkZWZpbml0aW9uKHBy
aXYtPmVuY29kZXJJZCk7CisgICAgICAgIGVuY29kZXItPnNldEJpdHJhdGUoR19PQkpFQ1QocHJp
di0+ZW5jb2Rlci5nZXQoKSksIGVuY29kZXItPmJpdHJhdGVQcm9wZXJ0eU5hbWUsIHByaXYtPmJp
dHJhdGUpOwogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgd2VicnRjVmlkZW9FbmNvZGVyU2V0Rm9y
bWF0KFdlYnJ0Y1ZpZGVvRW5jb2Rlciogc2VsZiwgY29uc3QgR3N0Q2FwcyogY2FwcykKK3N0YXRp
YyB2b2lkIHdlYnJ0Y1ZpZGVvRW5jb2RlclNldEVuY29kZXIoV2ViS2l0V2VicnRjVmlkZW9FbmNv
ZGVyKiBzZWxmLCBHUmVmUHRyPEdzdEVsZW1lbnQ+JiYgZW5jb2RlckVsZW1lbnQsIEVuY29kZXJJ
ZCBlbmNvZGVySWQpCiB7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChzZWxmLT5lbmNvZGVySWQgPT0g
Tm9uZSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChjYXBzKTsKLQotICAgIGZvciAoY29uc3QgYXV0
byAmcGFpciA6IEVuY29kZXJzOjpzaW5nbGV0b24oKSkgewotICAgICAgICBjb25zdCBhdXRvICZl
bmNvZGVyID0gcGFpci5zZWNvbmQ7Ci0gICAgICAgIEdzdEVsZW1lbnQqIGNhcHNmaWx0ZXIgPSBu
dWxscHRyOwotCi0gICAgICAgIGlmIChnc3RfY2Fwc19jYW5faW50ZXJzZWN0KGVuY29kZXIuY2Fw
cy5nZXQoKSwgY2FwcykpIHsKLSAgICAgICAgICAgIEdSZWZQdHI8R3N0UGFkPiB0bXBwYWQ7Ci0g
ICAgICAgICAgICBzZWxmLT5lbmNvZGVySWQgPSBwYWlyLmZpcnN0OwotICAgICAgICAgICAgc2Vs
Zi0+ZW5jb2RlciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZShlbmNvZGVyLm5hbWUsIG51bGxw
dHIpOwotCi0gICAgICAgICAgICBpZiAoZW5jb2Rlci5wYXJzZXJOYW1lKQotICAgICAgICAgICAg
ICAgIHNlbGYtPnBhcnNlciA9IGdzdF9lbGVtZW50X2ZhY3RvcnlfbWFrZShlbmNvZGVyLnBhcnNl
ck5hbWUsIG51bGxwdHIpOwotCi0gICAgICAgICAgICBlbmNvZGVyLnNldHVwRW5jb2RlcihzZWxm
KTsKLSAgICAgICAgICAgIGlmIChlbmNvZGVyLmVuY29kZWRGb3JtYXQuZ2V0KCkpIHsKLSAgICAg
ICAgICAgICAgICBjYXBzZmlsdGVyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJjYXBzZmls
dGVyIiwgbnVsbHB0cik7Ci0gICAgICAgICAgICAgICAgZ19vYmplY3Rfc2V0KGNhcHNmaWx0ZXIs
ICJjYXBzIiwgZW5jb2Rlci5lbmNvZGVkRm9ybWF0LmdldCgpLCBudWxscHRyKTsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTihzZWxmKSwgc2VsZi0+ZW5j
b2Rlcik7Ci0KLSAgICAgICAgICAgIHRtcHBhZCA9IGFkb3B0R1JlZihnc3RfZWxlbWVudF9nZXRf
c3RhdGljX3BhZChzZWxmLT5lbmNvZGVyLCAic2luayIpKTsKLSAgICAgICAgICAgIEdSZWZQdHI8
R3N0UGFkPiBzaW5rcGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKEdT
VF9FTEVNRU5UKHNlbGYpLCAic2luayIpKTsKLSAgICAgICAgICAgIGdzdF9naG9zdF9wYWRfc2V0
X3RhcmdldChHU1RfR0hPU1RfUEFEKHNpbmtwYWQuZ2V0KCkpLCB0bXBwYWQuZ2V0KCkpOwotCi0g
ICAgICAgICAgICB0bXBwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQo
c2VsZi0+ZW5jb2RlciwgInNyYyIpKTsKLSAgICAgICAgICAgIGlmIChzZWxmLT5wYXJzZXIpIHsK
LSAgICAgICAgICAgICAgICBnc3RfYmluX2FkZChHU1RfQklOKHNlbGYpLCBzZWxmLT5wYXJzZXIp
OwotICAgICAgICAgICAgICAgIGdzdF9lbGVtZW50X2xpbmsoc2VsZi0+ZW5jb2Rlciwgc2VsZi0+
cGFyc2VyKTsKLSAgICAgICAgICAgICAgICB0bXBwYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRf
Z2V0X3N0YXRpY19wYWQoc2VsZi0+cGFyc2VyLCAic3JjIikpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBpZiAoY2Fwc2ZpbHRlcikgewotICAgICAgICAgICAgICAgIEdSZWZQdHI8R3N0
UGFkPiB0bXBwYWQyID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKGNhcHNm
aWx0ZXIsICJzaW5rIikpOworICAgIGF1dG8qIHByaXYgPSBzZWxmLT5wcml2OworICAgIHByaXYt
PmVuY29kZXJJZCA9IGVuY29kZXJJZDsKKyAgICBwcml2LT5lbmNvZGVyID0gV1RGTW92ZShlbmNv
ZGVyRWxlbWVudCk7CisKKyAgICBhdXRvIGVuY29kZXIgPSBFbmNvZGVyczo6ZGVmaW5pdGlvbihl
bmNvZGVySWQpOworICAgIEFTU0VSVChlbmNvZGVyKTsKKyAgICBpZiAoZW5jb2Rlci0+cGFyc2Vy
TmFtZSkKKyAgICAgICAgcHJpdi0+cGFyc2VyID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKGVu
Y29kZXItPnBhcnNlck5hbWUsIG51bGxwdHIpOworCisgICAgZW5jb2Rlci0+c2V0dXBFbmNvZGVy
KHNlbGYpOworCisgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTl9DQVNUKHNlbGYpLCBwcml2LT5lbmNv
ZGVyLmdldCgpKTsKKworICAgIGF1dG8gc2lua1BhZFRhcmdldCA9IGFkb3B0R1JlZihnc3RfZWxl
bWVudF9nZXRfc3RhdGljX3BhZChwcml2LT5lbmNvZGVyLmdldCgpLCAic2luayIpKTsKKyAgICBh
dXRvIHNpbmtQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoR1NUX0VM
RU1FTlRfQ0FTVChzZWxmKSwgInNpbmsiKSk7CisgICAgZ3N0X2dob3N0X3BhZF9zZXRfdGFyZ2V0
KEdTVF9HSE9TVF9QQUQoc2lua1BhZC5nZXQoKSksIHNpbmtQYWRUYXJnZXQuZ2V0KCkpOworCisg
ICAgR1JlZlB0cjxHc3RQYWQ+IHNyY1BhZFRhcmdldDsKKyAgICBpZiAocHJpdi0+cGFyc2VyKSB7
CisgICAgICAgIGdzdF9iaW5fYWRkKEdTVF9CSU5fQ0FTVChzZWxmKSwgcHJpdi0+cGFyc2VyLmdl
dCgpKTsKKyAgICAgICAgZ3N0X2VsZW1lbnRfbGluayhwcml2LT5lbmNvZGVyLmdldCgpLCBwcml2
LT5wYXJzZXIuZ2V0KCkpOworICAgICAgICBzcmNQYWRUYXJnZXQgPSBhZG9wdEdSZWYoZ3N0X2Vs
ZW1lbnRfZ2V0X3N0YXRpY19wYWQocHJpdi0+cGFyc2VyLmdldCgpLCAic3JjIikpOworICAgIH0g
ZWxzZQorICAgICAgICBzcmNQYWRUYXJnZXQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0
YXRpY19wYWQocHJpdi0+ZW5jb2Rlci5nZXQoKSwgInNyYyIpKTsKKworICAgIGlmIChlbmNvZGVy
LT5lbmNvZGVkRm9ybWF0KSB7CisgICAgICAgIGF1dG8qIGNhcHNmaWx0ZXIgPSBnc3RfZWxlbWVu
dF9mYWN0b3J5X21ha2UoImNhcHNmaWx0ZXIiLCBudWxscHRyKTsKKyAgICAgICAgZ19vYmplY3Rf
c2V0KGNhcHNmaWx0ZXIsICJjYXBzIiwgZW5jb2Rlci0+ZW5jb2RlZEZvcm1hdC5nZXQoKSwgbnVs
bHB0cik7CisKKyAgICAgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTl9DQVNUKHNlbGYpLCBjYXBzZmls
dGVyKTsKKyAgICAgICAgYXV0byBzaW5rUGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9z
dGF0aWNfcGFkKGNhcHNmaWx0ZXIsICJzaW5rIikpOworICAgICAgICBnc3RfcGFkX2xpbmsoc3Jj
UGFkVGFyZ2V0LmdldCgpLCBzaW5rUGFkLmdldCgpKTsKKyAgICAgICAgc3JjUGFkVGFyZ2V0ID0g
YWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKGNhcHNmaWx0ZXIsICJzcmMiKSk7
CisgICAgfQogCi0gICAgICAgICAgICAgICAgZ3N0X2Jpbl9hZGQoR1NUX0JJTihzZWxmKSwgY2Fw
c2ZpbHRlcik7Ci0gICAgICAgICAgICAgICAgZ3N0X3BhZF9saW5rKHRtcHBhZC5nZXQoKSwgdG1w
cGFkMi5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgdG1wcGFkID0gYWRvcHRHUmVmKGdzdF9lbGVt
ZW50X2dldF9zdGF0aWNfcGFkKGNhcHNmaWx0ZXIsICJzcmMiKSk7Ci0gICAgICAgICAgICB9Cisg
ICAgYXV0byBzcmNQYWQgPSBhZG9wdEdSZWYoZ3N0X2VsZW1lbnRfZ2V0X3N0YXRpY19wYWQoR1NU
X0VMRU1FTlRfQ0FTVChzZWxmKSwgInNyYyIpKTsKKyAgICBnc3RfZ2hvc3RfcGFkX3NldF90YXJn
ZXQoR1NUX0dIT1NUX1BBRChzcmNQYWQuZ2V0KCkpLCBzcmNQYWRUYXJnZXQuZ2V0KCkpOwogCi0g
ICAgICAgICAgICBHUmVmUHRyPEdzdFBhZD4gc3JjcGFkID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50
X2dldF9zdGF0aWNfcGFkKEdTVF9FTEVNRU5UIChzZWxmKSwgInNyYyIpKTsKLSAgICAgICAgICAg
IGdib29sZWFuIHJldCA9IGdzdF9naG9zdF9wYWRfc2V0X3RhcmdldChHU1RfR0hPU1RfUEFEKHNy
Y3BhZC5nZXQoKSksIHRtcHBhZC5nZXQoKSk7CisgICAgd2VicnRjVmlkZW9FbmNvZGVyU2V0Qml0
cmF0ZShzZWxmLCBwcml2LT5iaXRyYXRlKTsKK30KIAotICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlQocmV0KTsKK3N0YXRpYyB2b2lkIHdlYnJ0Y1ZpZGVvRW5jb2RlclNldEZvcm1hdChXZWJLaXRX
ZWJydGNWaWRlb0VuY29kZXIqIHNlbGYsIGNvbnN0IEdzdENhcHMqIGNhcHMpCit7CisgICAgaWYg
KCFjYXBzKQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIHdlYnJ0Y1ZpZGVvRW5jb2Rl
clNldEJpdHJhdGUoc2VsZiwgc2VsZi0+Yml0cmF0ZSk7CisgICAgZm9yIChjb25zdCBhdXRvJiBw
YWlyIDogRW5jb2RlcnM6OnNpbmdsZXRvbigpKSB7CisgICAgICAgIGNvbnN0IGF1dG8mIGVuY29k
ZXIgPSBwYWlyLnNlY29uZDsKKyAgICAgICAgaWYgKGdzdF9jYXBzX2Nhbl9pbnRlcnNlY3QoZW5j
b2Rlci5jYXBzLmdldCgpLCBjYXBzKSkgeworICAgICAgICAgICAgR1JlZlB0cjxHc3RFbGVtZW50
PiBlbGVtZW50ID0gZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKGVuY29kZXIubmFtZSwgbnVsbHB0
cik7CisgICAgICAgICAgICB3ZWJydGNWaWRlb0VuY29kZXJTZXRFbmNvZGVyKHNlbGYsIFdURk1v
dmUoZWxlbWVudCksIHBhaXIuZmlyc3QpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgfQpAQCAtMjA1LDcgKzIxMSw4IEBAIHN0YXRpYyB2b2lkIHdlYnJ0Y1ZpZGVvRW5jb2Rl
clNldEZvcm1hdChXZWJydGNWaWRlb0VuY29kZXIqIHNlbGYsIGNvbnN0IEdzdENhcHMqCiAKIHN0
YXRpYyB2b2lkIHdlYnJ0Y1ZpZGVvRW5jb2RlclNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcF9pZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMpCiB7
Ci0gICAgV2VicnRjVmlkZW9FbmNvZGVyKiBzZWxmID0gV0VCUlRDX1ZJREVPX0VOQ09ERVIob2Jq
ZWN0KTsKKyAgICBhdXRvKiBzZWxmID0gV0VCS0lUX1dFQlJUQ19WSURFT19FTkNPREVSKG9iamVj
dCk7CisgICAgYXV0byogcHJpdiA9IHNlbGYtPnByaXY7CiAKICAgICBzd2l0Y2ggKHByb3BfaWQp
IHsKICAgICBjYXNlIFBST1BfRk9STUFUOgpAQCAtMjE1LDkgKzIyMiw5IEBAIHN0YXRpYyB2b2lk
IHdlYnJ0Y1ZpZGVvRW5jb2RlclNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJv
cF9pZCwgY29uc3QKICAgICAgICAgd2VicnRjVmlkZW9FbmNvZGVyU2V0Qml0cmF0ZShzZWxmLCBn
X3ZhbHVlX2dldF91aW50KHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9L
RVlGUkFNRV9JTlRFUlZBTDoKLSAgICAgICAgaWYgKHNlbGYtPmVuY29kZXIpIHsKLSAgICAgICAg
ICAgIGF1dG8gJmVuY29kZXIgPSBFbmNvZGVyczo6ZGVmaW5pdGlvbihzZWxmLT5lbmNvZGVySWQp
OwotICAgICAgICAgICAgZ19vYmplY3Rfc2V0KHNlbGYtPmVuY29kZXIsIGVuY29kZXIua2V5ZnJh
bWVJbnRlcnZhbFByb3BlcnR5TmFtZSwgZ192YWx1ZV9nZXRfdWludCh2YWx1ZSksIG51bGxwdHIp
OworICAgICAgICBpZiAocHJpdi0+ZW5jb2RlcikgeworICAgICAgICAgICAgYXV0byBlbmNvZGVy
ID0gRW5jb2RlcnM6OmRlZmluaXRpb24ocHJpdi0+ZW5jb2RlcklkKTsKKyAgICAgICAgICAgIGdf
b2JqZWN0X3NldChwcml2LT5lbmNvZGVyLmdldCgpLCBlbmNvZGVyLT5rZXlmcmFtZUludGVydmFs
UHJvcGVydHlOYW1lLCBnX3ZhbHVlX2dldF91aW50KHZhbHVlKSwgbnVsbHB0cik7CiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTIyNiw3NyArMjMzLDU4IEBAIHN0
YXRpYyB2b2lkIHdlYnJ0Y1ZpZGVvRW5jb2RlclNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcF9pZCwgY29uc3QKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHNldHVwWDI2NGVu
YyhXZWJydGNWaWRlb0VuY29kZXIqIHNlbGYpCi17Ci0gICAgZ3N0X3V0aWxfc2V0X29iamVjdF9h
cmcoR19PQkpFQ1QgKHNlbGYtPmVuY29kZXIpLCAidHVuZSIsICJ6ZXJvbGF0ZW5jeSIpOwotICAg
IGdfb2JqZWN0X3NldChzZWxmLT5wYXJzZXIsICJjb25maWctaW50ZXJ2YWwiLCAxLCBudWxscHRy
KTsKLX0KLQotc3RhdGljIHZvaWQgc2V0dXBPcGVuaDI2NGVuYyhXZWJydGNWaWRlb0VuY29kZXIq
IHNlbGYpCi17Ci0gICAgZ19vYmplY3Rfc2V0IChzZWxmLT5wYXJzZXIsICJjb25maWctaW50ZXJ2
YWwiLCAxLCBudWxscHRyKTsKLX0KLQotc3RhdGljIHZvaWQgc2V0dXBPbXhoMjY0ZW5jKFdlYnJ0
Y1ZpZGVvRW5jb2Rlciogc2VsZikKK3N0YXRpYyB2b2lkIHNldEJpdHJhdGVLYml0UGVyU2VjKEdP
YmplY3QqIGVuY29kZXIsIGNvbnN0IGNoYXIqIHByb3BlcnR5TmFtZSwgaW50IGJpdHJhdGUpCiB7
Ci0gIGdzdF91dGlsX3NldF9vYmplY3RfYXJnKEdfT0JKRUNUKHNlbGYtPmVuY29kZXIpLCAiY29u
dHJvbC1yYXRlIiwgInZhcmlhYmxlIik7Ci0gIGdfb2JqZWN0X3NldChzZWxmLT5wYXJzZXIsICJj
b25maWctaW50ZXJ2YWwiLCAxLCBudWxscHRyKTsKKyAgICBnX29iamVjdF9zZXQoZW5jb2Rlciwg
cHJvcGVydHlOYW1lLCBiaXRyYXRlLCBudWxscHRyKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0Qml0
cmF0ZUtiaXRQZXJTZWMoR09iamVjdCogZW5jb2RlciwgY29uc3QgZ2NoYXIqIHByb3BfbmFtZSwg
Z2ludCBiaXRyYXRlKQorc3RhdGljIHZvaWQgc2V0Qml0cmF0ZUJpdFBlclNlYyhHT2JqZWN0KiBl
bmNvZGVyLCBjb25zdCBjaGFyKiBwcm9wZXJ0eU5hbWUsIGludCBiaXRyYXRlKQogewotICBnX29i
amVjdF9zZXQoZW5jb2RlciwgcHJvcF9uYW1lLCBiaXRyYXRlLCBudWxscHRyKTsKKyAgICBnX29i
amVjdF9zZXQoZW5jb2RlciwgcHJvcGVydHlOYW1lLCBiaXRyYXRlICogS0JJVF9UT19CSVQsIG51
bGxwdHIpOwogfQogCi1zdGF0aWMgdm9pZCBzZXRCaXRyYXRlQml0UGVyU2VjKEdPYmplY3QqIGVu
Y29kZXIsIGNvbnN0IGdjaGFyKiBwcm9wX25hbWUsIGdpbnQgYml0cmF0ZSkKK3N0YXRpYyB2b2lk
IHdlYnJ0Y1ZpZGVvRW5jb2RlckNvbnN0cnVjdGVkKEdPYmplY3QqIGVuY29kZXIpCiB7Ci0gIGdf
b2JqZWN0X3NldChlbmNvZGVyLCBwcm9wX25hbWUsIGJpdHJhdGUgKiBLQklUX1RPX0JJVCwgbnVs
bHB0cik7CisgICAgYXV0byogc2VsZiA9IFdFQktJVF9XRUJSVENfVklERU9fRU5DT0RFUihlbmNv
ZGVyKTsKKyAgICBzZWxmLT5wcml2LT5lbmNvZGVySWQgPSBOb25lOworICAgIGdzdF9lbGVtZW50
X2FkZF9wYWQoR1NUX0VMRU1FTlRfQ0FTVChzZWxmKSwgd2Via2l0R3N0R2hvc3RQYWRGcm9tU3Rh
dGljVGVtcGxhdGUoJnNpbmtUZW1wbGF0ZSwgInNpbmsiLCBudWxscHRyKSk7CisgICAgZ3N0X2Vs
ZW1lbnRfYWRkX3BhZChHU1RfRUxFTUVOVF9DQVNUKHNlbGYpLCB3ZWJraXRHc3RHaG9zdFBhZEZy
b21TdGF0aWNUZW1wbGF0ZSgmc3JjVGVtcGxhdGUsICJzcmMiLCBudWxscHRyKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIHdlYnJ0Y192aWRlb19lbmNvZGVyX2NsYXNzX2luaXQoV2VicnRjVmlkZW9FbmNv
ZGVyQ2xhc3MqIGtsYXNzKQorc3RhdGljIHZvaWQgd2Via2l0X3dlYnJ0Y192aWRlb19lbmNvZGVy
X2NsYXNzX2luaXQoV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVyQ2xhc3MqIGtsYXNzKQogewotICAg
IEdPYmplY3RDbGFzcyogb2JqZWN0X2NsYXNzID0gR19PQkpFQ1RfQ0xBU1MgKGtsYXNzKTsKLQot
ICAgIEdTVF9ERUJVR19DQVRFR09SWV9JTklUICh3ZWJydGNfdmVuY19kZWJ1ZywgIndlYnJ0Y2Vu
Y29kZXIiLCAwLCAiVmlkZW8gZW5jb2RlciBmb3IgV2ViUlRDIik7Ci0KLSAgICBvYmplY3RfY2xh
c3MtPmdldF9wcm9wZXJ0eSA9IHdlYnJ0Y1ZpZGVvRW5jb2RlckdldFByb3BlcnR5OwotICAgIG9i
amVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2VicnRjVmlkZW9FbmNvZGVyU2V0UHJvcGVydHk7
CisgICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsK
KyAgICBvYmplY3RDbGFzcy0+Y29uc3RydWN0ZWQgPSB3ZWJydGNWaWRlb0VuY29kZXJDb25zdHJ1
Y3RlZDsKKyAgICBvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2VicnRjVmlkZW9FbmNvZGVy
R2V0UHJvcGVydHk7CisgICAgb2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYnJ0Y1ZpZGVv
RW5jb2RlclNldFByb3BlcnR5OwogCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eShvYmplY3RfY2xhc3MsIFBST1BfRk9STUFULAotICAgICAgICBnX3BhcmFtX3NwZWNfYm94ZWQo
ImZvcm1hdCIsICJGb3JtYXQgYXMgY2FwcyIsICJTZXQgdGhlIGNhcHMgb2YgdGhlIGZvcm1hdCB0
byBiZSB1c2VkLiIsIEdTVF9UWVBFX0NBUFMsCi0gICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZs
YWdzPihHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX1NUUklOR1MpKSk7CisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywgUFJPUF9GT1JNQVQs
IGdfcGFyYW1fc3BlY19ib3hlZCgiZm9ybWF0IiwgIkZvcm1hdCBhcyBjYXBzIiwgIlNldCB0aGUg
Y2FwcyBvZiB0aGUgZm9ybWF0IHRvIGJlIHVzZWQuIiwgR1NUX1RZUEVfQ0FQUywgV0VCS0lUX1BB
UkFNX1JFQURXUklURSkpOwogCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShv
YmplY3RfY2xhc3MsIFBST1BfRU5DT0RFUiwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgi
ZW5jb2RlciIsICJUaGUgYWN0dWFsIGVuY29kZXIgZWxlbWVudCIsICJUaGUgZW5jb2RlciBlbGVt
ZW50IiwgR1NUX1RZUEVfRUxFTUVOVCwKLSAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+
KEdfUEFSQU1fUkVBREFCTEUgfCBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTKSkpOworICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0Q2xhc3MsIFBST1BfRU5DT0RFUiwgZ19w
YXJhbV9zcGVjX29iamVjdCgiZW5jb2RlciIsICJUaGUgYWN0dWFsIGVuY29kZXIgZWxlbWVudCIs
ICJUaGUgZW5jb2RlciBlbGVtZW50IiwgR1NUX1RZUEVfRUxFTUVOVCwgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKSk7CiAKLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdF9j
bGFzcywgUFJPUF9CSVRSQVRFLAotICAgICAgICBnX3BhcmFtX3NwZWNfdWludCgiYml0cmF0ZSIs
ICJCaXRyYXRlIiwgICJUaGUgYml0cmF0ZSBpbiBrYml0IHBlciBzZWNvbmQiLCAwLCBHX01BWElO
VCwgMjA0OCwKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KG9iamVjdENsYXNz
LCBQUk9QX0JJVFJBVEUsIGdfcGFyYW1fc3BlY191aW50KCJiaXRyYXRlIiwgIkJpdHJhdGUiLCAi
VGhlIGJpdHJhdGUgaW4ga2JpdCBwZXIgc2Vjb25kIiwgMCwgR19NQVhJTlQsIDIwNDgsCiAgICAg
ICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1f
U1RBVElDX1NUUklOR1MgfCBHX1BBUkFNX0NPTlNUUlVDVCkpKTsKIAotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkob2JqZWN0X2NsYXNzLCBQUk9QX0tFWUZSQU1FX0lOVEVSVkFM
LAotICAgICAgICBnX3BhcmFtX3NwZWNfdWludCgia2V5ZnJhbWUtaW50ZXJ2YWwiLCAiS2V5ZnJh
bWUgaW50ZXJ2YWwiLCAiVGhlIGludGVydmFsIGJldHdlZW4ga2V5ZnJhbWVzIiwgMCwgR19NQVhJ
TlQsIDAsCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShvYmplY3RDbGFzcywg
UFJPUF9LRVlGUkFNRV9JTlRFUlZBTCwgZ19wYXJhbV9zcGVjX3VpbnQoImtleWZyYW1lLWludGVy
dmFsIiwgIktleWZyYW1lIGludGVydmFsIiwgIlRoZSBpbnRlcnZhbCBiZXR3ZWVuIGtleWZyYW1l
cyIsIDAsIEdfTUFYSU5ULCAwLAogICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19Q
QVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTIHwgR19QQVJBTV9DT05TVFJV
Q1QpKSk7CiAKICAgICBFbmNvZGVyczo6cmVnaXN0ZXJFbmNvZGVyKE9teEgyNjQsICJvbXhoMjY0
ZW5jIiwgImgyNjRwYXJzZSIsICJ2aWRlby94LWgyNjQiLAogICAgICAgICAidmlkZW8veC1oMjY0
LGFsaWdubWVudD1hdSxzdHJlYW0tZm9ybWF0PWJ5dGUtc3RyZWFtLHByb2ZpbGU9YmFzZWxpbmUi
LAotICAgICAgICBzZXR1cE9teGgyNjRlbmMsICJ0YXJnZXQtYml0cmF0ZSIsIHNldEJpdHJhdGVC
aXRQZXJTZWMsICJpbnRlcnZhbC1pbnRyYWZyYW1lcyIpOworICAgICAgICBbXShXZWJLaXRXZWJy
dGNWaWRlb0VuY29kZXIqIHNlbGYpIHsKKyAgICAgICAgICAgIGdzdF91dGlsX3NldF9vYmplY3Rf
YXJnKEdfT0JKRUNUKHNlbGYtPnByaXYtPmVuY29kZXIuZ2V0KCkpLCAiY29udHJvbC1yYXRlIiwg
InZhcmlhYmxlIik7CisgICAgICAgICAgICBnX29iamVjdF9zZXQoc2VsZi0+cHJpdi0+cGFyc2Vy
LmdldCgpLCAiY29uZmlnLWludGVydmFsIiwgMSwgbnVsbHB0cik7CisgICAgICAgIH0sICJ0YXJn
ZXQtYml0cmF0ZSIsIHNldEJpdHJhdGVCaXRQZXJTZWMsICJpbnRlcnZhbC1pbnRyYWZyYW1lcyIp
OwogICAgIEVuY29kZXJzOjpyZWdpc3RlckVuY29kZXIoWDI2NCwgIngyNjRlbmMiLCAiaDI2NHBh
cnNlIiwgInZpZGVvL3gtaDI2NCIsCiAgICAgICAgICJ2aWRlby94LWgyNjQsYWxpZ25tZW50PWF1
LHN0cmVhbS1mb3JtYXQ9Ynl0ZS1zdHJlYW0scHJvZmlsZT1iYXNlbGluZSIsCi0gICAgICAgIHNl
dHVwWDI2NGVuYywgImJpdHJhdGUiLCBzZXRCaXRyYXRlS2JpdFBlclNlYywgImtleS1pbnQtbWF4
Iik7CisgICAgICAgIFtdKFdlYktpdFdlYnJ0Y1ZpZGVvRW5jb2Rlciogc2VsZikgeworICAgICAg
ICAgICAgZ3N0X3V0aWxfc2V0X29iamVjdF9hcmcoR19PQkpFQ1Qoc2VsZi0+cHJpdi0+ZW5jb2Rl
ci5nZXQoKSksICJ0dW5lIiwgInplcm9sYXRlbmN5Iik7CisgICAgICAgICAgICBnX29iamVjdF9z
ZXQoc2VsZi0+cHJpdi0+cGFyc2VyLmdldCgpLCAiY29uZmlnLWludGVydmFsIiwgMSwgbnVsbHB0
cik7CisgICAgICAgIH0sICJiaXRyYXRlIiwgc2V0Qml0cmF0ZUtiaXRQZXJTZWMsICJrZXktaW50
LW1heCIpOwogICAgIEVuY29kZXJzOjpyZWdpc3RlckVuY29kZXIoT3BlbkgyNjQsICJvcGVuaDI2
NGVuYyIsICJoMjY0cGFyc2UiLCAidmlkZW8veC1oMjY0IiwKICAgICAgICAgInZpZGVvL3gtaDI2
NCxhbGlnbm1lbnQ9YXUsc3RyZWFtLWZvcm1hdD1ieXRlLXN0cmVhbSxwcm9maWxlPWJhc2VsaW5l
IiwKLSAgICAgICAgc2V0dXBPcGVuaDI2NGVuYywgImJpdHJhdGUiLCBzZXRCaXRyYXRlQml0UGVy
U2VjLCAiZ29wLXNpemUiKTsKLX0KLQotc3RhdGljIHZvaWQgd2VicnRjX3ZpZGVvX2VuY29kZXJf
aW5pdCAoV2VicnRjVmlkZW9FbmNvZGVyKiBzZWxmKQotewotICAgIHNlbGYtPmVuY29kZXJJZCA9
IE5vbmU7Ci0gICAgZ3N0X2VsZW1lbnRfYWRkX3BhZChHU1RfRUxFTUVOVChzZWxmKSwKLSAgICAg
ICAgZ3N0X2dob3N0X3BhZF9uZXdfbm9fdGFyZ2V0X2Zyb21fdGVtcGxhdGUoInNpbmsiLCBnc3Rf
c3RhdGljX3BhZF90ZW1wbGF0ZV9nZXQoJnNpbmtUZW1wbGF0ZSkpKTsKLQotICAgIGdzdF9lbGVt
ZW50X2FkZF9wYWQoR1NUX0VMRU1FTlQoc2VsZiksCi0gICAgICAgIGdzdF9naG9zdF9wYWRfbmV3
X25vX3RhcmdldF9mcm9tX3RlbXBsYXRlKCJzcmMiLCBnc3Rfc3RhdGljX3BhZF90ZW1wbGF0ZV9n
ZXQoJnNyY1RlbXBsYXRlKSkpOworICAgICAgICBbXShXZWJLaXRXZWJydGNWaWRlb0VuY29kZXIq
IHNlbGYpIHsKKyAgICAgICAgICAgIGdfb2JqZWN0X3NldChzZWxmLT5wcml2LT5wYXJzZXIuZ2V0
KCksICJjb25maWctaW50ZXJ2YWwiLCAxLCBudWxscHRyKTsKKyAgICAgICAgfSwgImJpdHJhdGUi
LCBzZXRCaXRyYXRlQml0UGVyU2VjLCAiZ29wLXNpemUiKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShWSURFTykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKExJQldFQlJUQykgJiYgVVNF
KEdTVFJFQU1FUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXIuaAppbmRl
eCAyNWFjNDNkMGM3YzZhNjNhZjI4MGQ0OWRkZTcxM2Y0NzcwNmJiOTQ0Li40ZDY2ZWQ3ZWIzOTNi
ZGZhMTkxMzkyYWExMjdlMzhlMjEwNTk5MGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1l
clZpZGVvRW5jb2Rlci5oCkBAIC0yNCw4ICsyNCwyNiBAQAogCiBHX0JFR0lOX0RFQ0xTCiAKLSNk
ZWZpbmUgV0VCUlRDX1RZUEVfVklERU9fRU5DT0RFUiAod2VicnRjX3ZpZGVvX2VuY29kZXJfZ2V0
X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCUlRDX1ZJREVPX0VOQ09ERVIgKHdlYmtp
dF93ZWJydGNfdmlkZW9fZW5jb2Rlcl9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfV0VCUlRD
X1ZJREVPX0VOQ09ERVIob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdF
QktJVF9UWVBFX1dFQlJUQ19WSURFT19FTkNPREVSLCBXZWJLaXRXZWJydGNWaWRlb0VuY29kZXIp
KQorI2RlZmluZSBXRUJLSVRfV0VCUlRDX1ZJREVPX0VOQ09ERVJfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCBXRUJLSVRfVFlQRV9XRUJSVENfVklERU9fRU5D
T0RFUiwgV2ViS2l0V2VicnRjVmlkZW9FbmNvZGVyQ2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNf
V0VCUlRDX1ZJREVPX0VOQ09ERVIob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9i
aiksIFdFQktJVF9UWVBFX1dFQlJUQ19WSURFT19FTkNPREVSKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X1dFQlJUQ19WSURFT19FTkNPREVSX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZ
UEUoKGtsYXNzKSwgV0VCS0lUX1RZUEVfV0VCUlRDX1ZJREVPX0VOQ09ERVIpKQogCi1HX0RFQ0xB
UkVfRklOQUxfVFlQRSAoV2VicnRjVmlkZW9FbmNvZGVyLCB3ZWJydGNfdmlkZW9fZW5jb2Rlciwg
V0VCUlRDLCBWSURFT19FTkNPREVSLCBHc3RCaW4pCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2Vi
cnRjVmlkZW9FbmNvZGVyIFdlYktpdFdlYnJ0Y1ZpZGVvRW5jb2RlcjsKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRXZWJydGNWaWRlb0VuY29kZXJDbGFzcyBXZWJLaXRXZWJydGNWaWRlb0VuY29kZXJD
bGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJydGNWaWRlb0VuY29kZXJQcml2YXRlIFdl
YktpdFdlYnJ0Y1ZpZGVvRW5jb2RlclByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0V2VicnRjVmlk
ZW9FbmNvZGVyIHsKKyAgICBHc3RCaW4gcGFyZW50OworCisgICAgV2ViS2l0V2VicnRjVmlkZW9F
bmNvZGVyUHJpdmF0ZSogcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0V2VicnRjVmlkZW9FbmNv
ZGVyQ2xhc3MgeworICAgIEdzdEJpbkNsYXNzIHBhcmVudENsYXNzOworfTsKKworR1R5cGUgd2Vi
a2l0X3dlYnJ0Y192aWRlb19lbmNvZGVyX2dldF90eXBlKHZvaWQpOwogCiBHX0VORF9ERUNMUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0dTdHJlYW1lclZpZGVvRW5jb2RlckZhY3RvcnkuY3Bw
CmluZGV4IGM4MGVhODg2YmFkMDY3MzU4ZWM0NDhlZjIxODhkMzcxNzM5MDhlNTMuLjY2MjI0ZWQx
ZGQzODE3MGY3NzI2ZGVlYjQzNWE4NTRjMmYwZTgwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9HU3RyZWFtZXJWaWRlb0VuY29kZXJG
YWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvR1N0cmVhbWVyVmlkZW9FbmNvZGVyRmFjdG9yeS5jcHAKQEAgLTQ0NSw3ICs0NDUsOSBA
QCBHU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0b3J5OjpHU3RyZWFtZXJWaWRlb0VuY29kZXJGYWN0
b3J5KCkKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZGVidWdSZWdpc3RlcmVkRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShkZWJ1Z1JlZ2lzdGVyZWRGbGFnLCBbXSB7CiAgICAgICAgIEdTVF9E
RUJVR19DQVRFR09SWV9JTklUKHdlYmtpdF93ZWJydGNlbmNfZGVidWcsICJ3ZWJraXRsaWJ3ZWJy
dGN2aWRlb2VuY29kZXIiLCAwLCAiV2ViS2l0IFdlYlJUQyB2aWRlbyBlbmNvZGVyIik7Ci0gICAg
ICAgIGdzdF9lbGVtZW50X3JlZ2lzdGVyKG51bGxwdHIsICJ3ZWJydGN2aWRlb2VuY29kZXIiLCBH
U1RfUkFOS19OT05FLCBXRUJSVENfVFlQRV9WSURFT19FTkNPREVSKTsKKyAgICAgICAgYXV0byBm
YWN0b3J5ID0gYWRvcHRHUmVmKGdzdF9lbGVtZW50X2ZhY3RvcnlfZmluZCgid2VicnRjdmlkZW9l
bmNvZGVyIikpOworICAgICAgICBpZiAoIWZhY3RvcnkpCisgICAgICAgICAgICBnc3RfZWxlbWVu
dF9yZWdpc3RlcihudWxscHRyLCAid2VicnRjdmlkZW9lbmNvZGVyIiwgR1NUX1JBTktfTk9ORSwg
V0VCS0lUX1RZUEVfV0VCUlRDX1ZJREVPX0VOQ09ERVIpOwogICAgIH0pOwogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjQ5Nzk1NWQ4OTg4
MjVjOTllNWFhNDMwMmRhY2RmNGNjYjM1YTBlZi4uOGFhZWNhMGM5NDEwZWEyYmI4NGZlZWJjYmQ4
NmZjNDI2NTY0Y2IxMCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTAzLTA5ICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtXZWJSVENdIFZpZGVv
RW5jb2RlciBzdGlsbCBkb2Vzbid0IGNvbXBseSB3aXRoIFdlYktpdCBzdHlsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyOTAxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWGFiaWVyIFJvZHJpZ3Vlei1DYWx2YXIuCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6IE1vdmUgdGhlIEdTdHJlYW1lciBWaWRlb0VuY29k
ZXIgdG8gdGhlIGxpc3Qgb2YgY3VzdG9tCisgICAgICAgIEdTdHJlYW1lciBlbGVtZW50cyBjb21w
bHlpbmcgd2l0aCBXZWJLaXQncyBjb2Rpbmcgc3R5bGUuCisKIDIwMjEtMDMtMDggIFN0ZXBoYW4g
U3phYm8gIDxzdGVwaGFuLnN6YWJvQHNvbnkuY29tPgogCiAgICAgICAgIFtQbGF5U3RhdGlvbl0g
VmFyaW91cyBzbWFsbCBmaXhlcyBmb3IgVGVzdFdURi9UZXN0V2ViS2l0IHRlc3RzIG9uIFBsYXlT
dGF0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggOThjNjAz
YjFiNWU4MDZjMjM3MzljZjY3ZDc0NDExYzJhOWQ1YmNlMi4uM2Y0ZTg3ZDdiZjg0N2ZjYTAxZmNl
MzAyOWZmMTNmMDNiMDA3NjAxYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tl
ci5weQpAQCAtMjMyLDYgKzIzMiw4IEBAIF9QQVRIX1JVTEVTX1NQRUNJRklFUiA9IFsKICAgICAg
IG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYkNvcmUnLCAncGxhdGZvcm0nLCAnYXVkaW8nLCAn
Z3N0cmVhbWVyJywgJ1dlYktpdFdlYkF1ZGlvU291cmNlR1N0cmVhbWVyLmNwcCcpLAogICAgICAg
b3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICdtZWRpYXN0cmVh
bScsICdnc3RyZWFtZXInLCAnR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuaCcpLAogICAgICAg
b3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICdtZWRpYXN0cmVh
bScsICdnc3RyZWFtZXInLCAnR1N0cmVhbWVyTWVkaWFTdHJlYW1Tb3VyY2UuY3BwJyksCisgICAg
ICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ21lZGlhc3Ry
ZWFtJywgJ2xpYndlYnJ0YycsICdHU3RyZWFtZXJWaWRlb0VuY29kZXIuaCcpLAorICAgICAgb3Mu
cGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICdtZWRpYXN0cmVhbScs
ICdsaWJ3ZWJydGMnLCAnR1N0cmVhbWVyVmlkZW9FbmNvZGVyLmNwcCcpLAogICAgICAgb3MucGF0
aC5qb2luKCdTb3VyY2UnLCAnV2ViQ29yZScsICdwbGF0Zm9ybScsICduZXR3b3JrJywgJ3NvdXAn
LCAnUHJveHlSZXNvbHZlclNvdXAuY3BwJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScs
ICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ25ldHdvcmsnLCAnc291cCcsICdQcm94eVJlc29sdmVy
U291cC5oJyksCiAgICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRm
b3JtJywgJ25ldHdvcmsnLCAnc291cCcsICdXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtLmNwcCcp
LApAQCAtMjYzLDE5ICsyNjUsNiBAQCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgPSBbCiAgICAgICAi
LXdoaXRlc3BhY2UvZGVjbGFyYXRpb24iLAogICAgICAgIi13aGl0ZXNwYWNlL2luZGVudCJdKSwK
IAotICAgIChbICAjIEZpbGVzIGZvbGxvd2luZyBHU3RyZWFtZXIgY29kaW5nIHN0eWxlIChmb3Ig
YSBzaW1wbGVyIHVwc3RyZWFtaW5nIHByb2Nlc3MgZm9yIGV4YW1wbGUpCi0gICAgICBvcy5wYXRo
LmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ21lZGlhc3RyZWFtJywgJ2xp
YndlYnJ0YycsICdHU3RyZWFtZXJWaWRlb0VuY29kZXIuY3BwJyksCi0gICAgICBvcy5wYXRoLmpv
aW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ21lZGlhc3RyZWFtJywgJ2xpYndl
YnJ0YycsICdHU3RyZWFtZXJWaWRlb0VuY29kZXIuaCcpLAotICAgICBdLAotICAgICBbIi13aGl0
ZXNwYWNlL2luZGVudCIsCi0gICAgICAiLXdoaXRlc3BhY2UvZGVjbGFyYXRpb24iLAotICAgICAg
Ii13aGl0ZXNwYWNlL3BhcmVucyIsCi0gICAgICAiLXJlYWRhYmlsaXR5L251bGwiLAotICAgICAg
Ii13aGl0ZXNwYWNlL2JyYWNlcyIsCi0gICAgICAiLXJlYWRhYmlsaXR5L25hbWluZy91bmRlcnNj
b3JlcyIsCi0gICAgICAiLXJlYWRhYmlsaXR5L2VudW1fY2FzaW5nIiwKLSAgICAgXSksCi0KICAg
ICAoWyAgIyBGaWxlcyBmb2xsb3dpbmcgdXNpbmcgV2ViUlRDIG9wdGlvbm5hbCB0eXBlCiAgICAg
ICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJDb3JlJywgJ3BsYXRmb3JtJywgJ21lZGlhc3Ry
ZWFtJywgJ2xpYndlYnJ0YycsICdHU3RyZWFtZXJWaWRlb0RlY29kZXJGYWN0b3J5LmNwcCcpLAog
ICAgICBdLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>