<?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>236704</bug_id>
          
          <creation_ts>2022-02-16 05:48:02 -0800</creation_ts>
          <short_desc>RemoteVideoFrameProxy should use RemoteVideoFrameObjectHeapProxy to get the pixel buffer representation</short_desc>
          <delta_ts>2022-02-17 01:13:17 -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>New Bugs</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="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>koivisto</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842253</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 05:48:02 -0800</bug_when>
    <thetext>RemoteVideoFrameProxy should use RemoteVideoFrameObjectHeapProxy to get the pixel buffer representation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842257</commentid>
    <comment_count>1</comment_count>
      <attachid>452188</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 05:59:00 -0800</bug_when>
    <thetext>Created attachment 452188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842260</commentid>
    <comment_count>2</comment_count>
      <attachid>452191</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 06:11:35 -0800</bug_when>
    <thetext>Created attachment 452191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842276</commentid>
    <comment_count>3</comment_count>
      <attachid>452191</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-02-16 07:23:48 -0800</bug_when>
    <thetext>Comment on attachment 452191
Patch

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

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:181
&gt; +    return RemoteVideoFrameProxy::create(m_gpuProcessConnection-&gt;connection(), m_gpuProcessConnection-&gt;videoFrameObjectHeapProxy(),  WTFMove(*result));

double space before WTFMove</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842732</commentid>
    <comment_count>4</comment_count>
      <attachid>452324</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-16 23:16:53 -0800</bug_when>
    <thetext>Created attachment 452324
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842773</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-17 01:12:39 -0800</bug_when>
    <thetext>Committed r290004 (247390@main): &lt;https://commits.webkit.org/247390@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 452324.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842775</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-17 01:13:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89074870&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452188</attachid>
            <date>2022-02-16 05:59:00 -0800</date>
            <delta_ts>2022-02-16 06:18:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236704-20220216155858.patch</filename>
            <type>text/plain</type>
            <size>24127</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwMTgzNTNhYzI5MTY2NmEw
MmZiZTdiYTRjZjc1NWRiMjg2MzExMGYuLmEzZWRhNjQ2YjU2ZGY2ZTlkZWU3Njc4NmEzM2JjN2Yz
NjYyNDA2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMjItMDItMTYgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVWaWRlb0ZyYW1l
UHJveHkgc2hvdWxkIHVzZSBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5IHRvIGdldCB0
aGUgcGl4ZWwgYnVmZmVyIHJlcHJlc2VudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgUmVtb3RlVmlkZW9GcmFtZVByb3h5IHVz
ZXMgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSB0byB0cmFuc2ZlciB0aGUgcGl4ZWwg
YnVmZmVyCisgICAgICAgIGZyb20gR1BVIHByb2Nlc3MgdG8gV2ViIHByb2Nlc3MgaW4gc2NlbmFy
aW9zIHdoZXJlIHRoZSBwaXhlbCBidWZmZXIgaXMgdXNlZCBpbiBXZWIgcHJvY2Vzcy4KKworICAg
ICAgICBQcmV2aW91c2x5IFJlbW90ZVZpZGVvRnJhbWVQcm94eSBjbGllbnQgd291bGQgaGF2ZSB0
byBwcm92aWRlIGEgdGhyZWFkLXNhZmUgZnVuY3Rpb24gdGhhdAorICAgICAgICBzaG91bGQgY2Fs
bCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OjpnZXRQaXhlbEJ1ZmZlcigpLgorICAg
ICAgICBDdXJyZW50IGNsaWVudHMgZG8gbm90IHByb3ZpZGUgYSB0aHJlYWQtc2FmZSBmdW5jdGlv
bi4KKworICAgICAgICBJbnN0ZWFkLCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkgc2hvdWxkIHByb3Zp
ZGUganVzdCB0aGUgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSByZWZlcmVuY2UsCisg
ICAgICAgIHNpbmNlIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGdldCB0aGUgcGl4ZWwgYnVmZmVy
IGFueXdheS4gVGhpcyBzaW1wbGlmaWVzIHRoZSBjYWxsIHNpdGVzLCBtYWtlcworICAgICAgICB0
aGUgaW1wbGVtZW50YXRpb24gbW9yZSBjb3JyZWN0IGFuZCBhdm9pZHMgdGhlIHVzZSBvZiBpZmRl
ZnMuCisKKyAgICAgICAgTWFrZSB0aGUgY29kZSBjb25zaXN0ZW50IHdpdGggaWZkZWZzLiBUaGlz
IGlzIHBsYXRmb3JtLWluZGVwZW5kZW50IGNvZGUsIHNvIHJlbW92ZSBDT0NPQSBpZmRlZnMuCisg
ICAgICAgIEFsbCBwbGF0Zm9ybXMgdGhhdCB0cmFuc2ZlciBwaXhlbHMgd291bGQgbmVlZCB0byBo
YXZlIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuCisgICAgICAgIFRoaXMgaXMgbWVk
aWEgc3RyZWFtIHNwZWNpZmljIGNvZGUsIHNvIGFkZCBNRURJQV9TVFJFQU0gaWZkZWZzLgorCisg
ICAgICAgIFRvIGJlIGNvbnNpc3RlbnQgd2l0aCBleGlzdGluZyBHUFVQIHNpZGUgY29kZSwgZG8g
bm90IHVzZSAicmVtb3RlIiBwcmVmaXggb24gdGhlCisgICAgICAgIHZhcmlhYmxlIG5hbWVzLiBF
LmcuIHVzZSAidmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSIgdG8gcmVmZXIgdG8gdGhlIHByb3h5
LiBUaGUgcmVtb3RlIHBhcnQKKyAgICAgICAgaXMgcmVkdW5kYW50LCBhcyB0aGlzIGlzIGltcGxp
ZWQuCisKKyAgICAgICAgQ2xlYW4gdXAgcmVsYXRlZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnBp
eGVsQnVmZmVyKCkgZnVuY3Rpb24gdG8gbm90IHN0b3JlIHVubmVlZGVkIHNlbWFwaG9yZXMKKyAg
ICAgICAgYXMgaW5zdGFuY2UgdmFyaWFibGVzIG9yIHVzZSBkdXBsaWNhdGUgaGVscGVyIGZ1bmN0
aW9ucy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGEgcmVmYWN0b3IuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxh
eWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjp2aWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlJlbW90ZVZpZGVvRnJhbWVQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cGl4ZWxCdWZmZXIgY29uc3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25N
YWluVGhyZWFkV2l0aExvY2spOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNv
bXBsZXRlZERlY29kaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnNldFZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKToKKwogMjAyMi0wMi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBhbiAiTWFya3VwIEltYWdlIiBpdGVtIHRvIHRoZSBz
aGFyaW5nIHNlcnZpY2VzIHBpY2tlciBjb250ZXh0IG1lbnUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuY3BwCmluZGV4IDlhMDc4N2Q2Nzk5YmFjMGY4MTAyNzc1MmI0YTVjYThjOGNlMjAyYTAu
LjFhMzFmMGQ1NGJiNWRiNzBmMDRmYjk4MGE2MGEyZDlhNjU0MDQ4M2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVBsYXllcihNZWRpYVBsYXllcklkZW50aWZpZXIg
aWRlbgogICAgIEFTU0VSVChtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOwogICAgIEFTU0VS
VCghbV9wcm94aWVzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKIAotICAgIGF1dG8gcHJveHkgPSBt
YWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+KCp0aGlzLCBpZGVudGlmaWVyLCBtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPmNvbm5lY3Rpb24oKSwgZW5naW5lSWRlbnRpZmllciwg
V1RGTW92ZShwcm94eUNvbmZpZ3VyYXRpb24pKTsKKyAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1
ZTxSZW1vdGVNZWRpYVBsYXllclByb3h5PigqdGhpcywgaWRlbnRpZmllciwgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCksIGVuZ2luZUlkZW50aWZpZXIsIFdURk1vdmUo
cHJveHlDb25maWd1cmF0aW9uKSwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT52aWRlb0Zy
YW1lT2JqZWN0SGVhcCgpKTsKICAgICBtX3Byb3hpZXMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUo
cHJveHkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBjNzJkYTdhMzRhMWE3MzhhYTkyMGYwNWQ1N2Nm
OWM0ZTE1OTU2NTg0Li40NGE4Y2UwYmFmZjljMzA2NWM1ZDU0ZTE1OGRjOWEwMTFlNGQyMzlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtNDUsNyArNDUsNiBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhRW5naW5l
Q29uZmlndXJhdGlvbkZhY3RvcnkuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlcy5oIgot
I2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNsdWRlICJT
YW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVy
RGlzcGxheUxheWVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlTWVzc2FnZXMuaCIKQEAgLTc4LDYgKzc3LDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjZW5kaWYKIApAQCAtMTY0LDEy
ICsxNjQsMTQgQEAgdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6cmVzZXRBdWRpb01lZGlhU3Ry
ZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdChBdWRpb00KIHsKICAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5hdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFn
ZXIoKS5yZXNldChpZGVudGlmaWVyKTsKIH0KKyNlbmRpZgogCi1SZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5JiBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eSgpCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKK1JlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkmIEdQVVByb2Nlc3NDb25uZWN0aW9uOjp2aWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5KCkKIHsKLSAgICBpZiAoIW1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSkK
LSAgICAgICAgbV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eTo6Y3JlYXRlKCp0aGlzKTsKLSAgICByZXR1cm4gKm1fcmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eTsKKyAgICBpZiAoIW1fdmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eSkKKyAgICAgICAgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eTo6Y3JlYXRlKCp0aGlzKTsKKyAgICByZXR1cm4gKm1fdmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggODEzYTA1NDY5
NzJjYzMyYWQ2MmFjOWZhMjhkMTFlNTRjYTVmZWY2OC4uOWVhY2U2YmI3OWE3NmI3NTkyZWIzOWYy
MmE2YmFlYjExNTJlZTUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNTEsMTMgKzUxLDE2IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBSZW1vdGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjsKIGNsYXNz
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjsKLWNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHk7CiBjbGFzcyBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3Mg
V2ViUGFnZTsKIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvbkluaXRpYWxpemF0aW9uUGFyYW1l
dGVyczsKIHN0cnVjdCBPdmVycmlkZVNjcmVlbkRhdGFGb3JUZXN0aW5nOwogc3RydWN0IFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM7CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3Mg
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eTsKKyNlbmRpZgorCiBjbGFzcyBHUFVQcm9j
ZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVVByb2Nlc3NDb25uZWN0aW9uPiwg
cHVibGljIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PEdQVVByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBHUFVQcm9jZXNzQ29ubmVjdGlvbkluaXRpYWxp
emF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKQEAgLTc4LDcgKzgxLDkgQEAgcHVibGljOgog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFNhbXBsZUJ1
ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIo
KTsKICAgICB2b2lkIHJlc2V0QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVu
aXQoQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyKTsK
LSAgICBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiByZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5KCk7CisjZW5kaWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmIHZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHko
KTsKICNlbmRpZgogCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtZWRpYVBsYXllck1h
bmFnZXIoKTsKQEAgLTE0Miw3ICsxNDcsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
TWFuYWdlcjsKLSAgICBSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4gbV9y
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OworI2VuZGlmCisjaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgICBSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4gbV92
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShXRUJfQVVESU8pCiAgICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJN
YW5hZ2VyPiBtX2F1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xQcm94eS5jcHAKaW5kZXggN2FhNjQwNjRhYzQwODI2MTgzMDQ1NmI1MjVh
NGY3OTU3ZDVmMTQyZC4uMTI5YzViMjI5ZmZlNWI1MjNmNDAxZWNlNjBiYmFmYjUyZjgzY2QzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCkBAIC0xNzgsMTUg
KzE3OCw3IEBAIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNhbXBsZT4gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eTo6cGFpbnRDb21wb3NpdGVkUmVzdWx0CiAgICAgfQogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVBy
b3h5OjpjcmVhdGUobV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLCBXVEZNb3Zl
KCpyZXN1bHQpLAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICAgICBbcHJveHkgPSBSZWYgeyBt
X2dwdVByb2Nlc3NDb25uZWN0aW9uLT5yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkg
fV0oYXV0byYgZnJhbWUsIGF1dG8mJiBjYWxsYmFjaykgewotICAgICAgICAgICAgcHJveHktPmdl
dFZpZGVvRnJhbWVCdWZmZXIoZnJhbWUsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfQot
I2Vsc2UKLSAgICAgICAgW2F1dG8mIGZyYW1lLCBhdXRvJiYgY2FsbGJhY2tdIHsgY2FsbGJhY2so
KTsgfQotI2VuZGlmCi0gICAgKTsKKyAgICByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpj
cmVhdGUobV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLCBtX2dwdVByb2Nlc3ND
b25uZWN0aW9uLT52aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCksICBXVEZNb3ZlKCpyZXN1bHQp
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5jcHAKaW5kZXggMDU4Y2U5Yjc1ZmNh
Y2NlZjRiMWNiZjU1YzE2ZjgxNGIwYWYxMDg2My4uNDZlNmYyNDE0ZjRlZTU2YWU4YmNjNGIyZmM3
YTFhMDQzNjBhMjZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcApAQCAtMjksOCArMjksMTMg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZUluY29taW5nVmlkZW9T
b3VyY2VDb2NvYS5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSA8d3RmL3RocmVh
ZHMvQmluYXJ5U2VtYXBob3JlLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFJl
bW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcyBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnBy
b3BlcnRpZXMoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlJiYgcmVmZXJlbmNlLCBj
b25zdCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYgbWVkaWFTYW1wbGUpCkBAIC00NSw5ICs1MCw5IEBA
IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcyBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6
OnByb3BlcnRpZXMoV2ViS2l0OjpSZW1vCiAgICAgfTsKIH0KIAotUmVmPFJlbW90ZVZpZGVvRnJh
bWVQcm94eT4gUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBQcm9wZXJ0aWVzIHByb3BlcnRpZXMsIFBpeGVsQnVmZmVyQ2FsbGJhY2smJiBj
YWxsYmFjaykKK1JlZjxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+IFJlbW90ZVZpZGVvRnJhbWVQcm94
eTo6Y3JlYXRlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eSYgdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSwgUHJvcGVydGllcyYmIHBy
b3BlcnRpZXMpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlVmlkZW9GcmFtZVBy
b3h5KGNvbm5lY3Rpb24sIFdURk1vdmUocHJvcGVydGllcyksIFdURk1vdmUoY2FsbGJhY2spKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlVmlkZW9GcmFtZVByb3h5KGNvbm5lY3Rp
b24sIHZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHksIFdURk1vdmUocHJvcGVydGllcykpKTsKIH0K
IAogc3RhdGljIHZvaWQgcmVsZWFzZVJlbW90ZVZpZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5jZSYgcmVm
ZXJlbmNlKQpAQCAtNjAsNyArNjUsNyBAQCB2b2lkIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cmVs
ZWFzZVVudXNlZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb3BlcnRpZQogICAgIHJl
bGVhc2VSZW1vdGVWaWRlb0ZyYW1lUHJveHkoY29ubmVjdGlvbiwgeyB7IHByb3BlcnRpZXMucmVm
ZXJlbmNlLmlkZW50aWZpZXIoKSwgcHJvcGVydGllcy5yZWZlcmVuY2UudmVyc2lvbigpIH0sIDAg
fSk7CiB9CiAKLVJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UmVtb3RlVmlkZW9GcmFtZVByb3h5KElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUHJvcGVydGllcyBwcm9wZXJ0aWVzLCBQaXhlbEJ1
ZmZlckNhbGxiYWNrJiYgY2FsbGJhY2spCitSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlJlbW90ZVZp
ZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkmIHZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHksIFByb3BlcnRpZXMm
JiBwcm9wZXJ0aWVzKQogICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX3Jl
ZmVyZW5jZVRyYWNrZXIocHJvcGVydGllcy5yZWZlcmVuY2UpCiAgICAgLCBtX3ByZXNlbnRhdGlv
blRpbWUocHJvcGVydGllcy5wcmVzZW50YXRpb25UaW1lKQpAQCAtNjgsNyArNzMsNyBAQCBSZW1v
dGVWaWRlb0ZyYW1lUHJveHk6OlJlbW90ZVZpZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIFByb3BlcgogICAgICwgbV9yb3RhdGlvbihwcm9wZXJ0aWVzLnJvdGF0aW9u
KQogICAgICwgbV9zaXplKHByb3BlcnRpZXMuc2l6ZSkKICAgICAsIG1fcGl4ZWxGb3JtYXQocHJv
cGVydGllcy5waXhlbEZvcm1hdCkKLSAgICAsIG1fcGl4ZWxCdWZmZXJDYWxsYmFjayhXVEZNb3Zl
KGNhbGxiYWNrKSkKKyAgICAsIG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgmdmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eSkKIHsKIH0KIApAQCAtMTIzLDI1ICsxMjgsMjIgQEAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpNZWRpYVNhbXBsZVZpZGVvRnJhbWU+IFJlbW90ZVZpZGVvRnJhbWVQcm94
eTo6dmlkZW9GcmFtZSgKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBSZW1vdGVWaWRl
b0ZyYW1lUHJveHk6OmdldFBpeGVsQnVmZmVyKCkKLXsKLSAgICBBU1NFUlQobV9waXhlbEJ1ZmZl
ckxvY2suaXNIZWxkKCkpOwotICAgIHN0ZDo6ZXhjaGFuZ2UobV9waXhlbEJ1ZmZlckNhbGxiYWNr
LCB7IH0pKCp0aGlzLCBbdGhpc10oYXV0byBwaXhlbEJ1ZmZlcikgewotICAgICAgICBtX3BpeGVs
QnVmZmVyID0gV1RGTW92ZShwaXhlbEJ1ZmZlcik7Ci0gICAgICAgIGlmICghbV9waXhlbEJ1ZmZl
cikgewotICAgICAgICAgICAgLy8gc29tZSBjb2RlIHBhdGhzIGRvIG5vdCBsaWtlIGVtcHR5IHBp
eGVsIGJ1ZmZlcnMuCi0gICAgICAgICAgICBtX3BpeGVsQnVmZmVyID0gV2ViQ29yZTo6Y3JlYXRl
QmxhY2tQaXhlbEJ1ZmZlcihzdGF0aWNfY2FzdDxzaXplX3Q+KG1fc2l6ZS53aWR0aCgpKSwgc3Rh
dGljX2Nhc3Q8c2l6ZV90PihtX3NpemUuaGVpZ2h0KCkpKTsKLSAgICAgICAgfQotICAgICAgICBt
X3NlbWFwaG9yZS5zaWduYWwoKTsKLSAgICB9KTsKLSAgICBtX3NlbWFwaG9yZS53YWl0KCk7Ci19
Ci0KIENWUGl4ZWxCdWZmZXJSZWYgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpwaXhlbEJ1ZmZlcigp
IGNvbnN0CiB7CiAgICAgTG9ja2VyIGxvY2sobV9waXhlbEJ1ZmZlckxvY2spOwotICAgIGlmICgh
bV9waXhlbEJ1ZmZlciAmJiBtX3BpeGVsQnVmZmVyQ2FsbGJhY2spCi0gICAgICAgIGNvbnN0X2Nh
c3Q8UmVtb3RlVmlkZW9GcmFtZVByb3h5Kj4odGhpcyktPmdldFBpeGVsQnVmZmVyKCk7CisgICAg
aWYgKCFtX3BpeGVsQnVmZmVyICYmIG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSkgeworICAg
ICAgICBCaW5hcnlTZW1hcGhvcmUgc2VtYXBob3JlOworICAgICAgICBtX3ZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHktPmdldFZpZGVvRnJhbWVCdWZmZXIoKnRoaXMsIFt0aGlzLCAmc2VtYXBob3Jl
XShhdXRvIHBpeGVsQnVmZmVyKSB7CisgICAgICAgICAgICBtX3BpeGVsQnVmZmVyID0gV1RGTW92
ZShwaXhlbEJ1ZmZlcik7CisgICAgICAgICAgICBpZiAoIW1fcGl4ZWxCdWZmZXIpIHsKKyAgICAg
ICAgICAgICAgICAvLyBTb21lIGNvZGUgcGF0aHMgZG8gbm90IGxpa2UgZW1wdHkgcGl4ZWwgYnVm
ZmVycy4KKyAgICAgICAgICAgICAgICBtX3BpeGVsQnVmZmVyID0gV2ViQ29yZTo6Y3JlYXRlQmxh
Y2tQaXhlbEJ1ZmZlcihzdGF0aWNfY2FzdDxzaXplX3Q+KG1fc2l6ZS53aWR0aCgpKSwgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihtX3NpemUuaGVpZ2h0KCkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHNlbWFwaG9yZS5zaWduYWwoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHNlbWFwaG9yZS53
YWl0KCk7CisgICAgICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSA9IG51bGxwdHI7Cisg
ICAgfQogICAgIHJldHVybiBtX3BpeGVsQnVmZmVyLmdldCgpOwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaAppbmRleCAzMWExYTg0NTdlYmY2ODUzNjE4ZDY4ZDVlZTk1MTJlZDc0ZWYxZmY3
Li5mNjcyMzRmMWFkMWYzYTFlNGFlNDIxNGUwNjhjOGU5OWU1ZjBjN2ZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFt
ZVByb3h5LmgKQEAgLTMwLDggKzMwLDYgQEAKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9WaWRlb0ZyYW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RocmVhZHMvQmluYXJ5U2VtYXBob3JlLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xh
c3MgQ29ubmVjdGlvbjsKQEAgLTQxLDYgKzM5LDcgQEAgY2xhc3MgRGVjb2RlcjsKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNzIFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CiAKIC8vIEEgV2ViQ29yZTo6VmlkZW9GcmFtZSBjbGFz
cyB0aGF0IHBvaW50cyB0byBhIGNvbmNyZXRlIFdlYkNvcmU6OlZpZGVvRnJhbWUgaW5zdGFuY2UK
IC8vIGluIGFub3RoZXIgcHJvY2VzcywgR1BVIHByb2Nlc3MuCkBAIC02NCwxNSArNjMsNyBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgUHJvcGVydGllcyBwcm9wZXJ0aWVzKFdlYktpdDo6UmVtb3Rl
VmlkZW9GcmFtZVJlZmVyZW5jZSYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYVNhbXBsZSYpOwogCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdXNpbmcgUGl4ZWxCdWZmZXJSZXN1bHRDYWxsYmFjayA9
IEZ1bmN0aW9uPHZvaWQoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYpPjsKLSNlbHNlCi0g
ICAgdXNpbmcgUGl4ZWxCdWZmZXJSZXN1bHRDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoKT47Ci0j
ZW5kaWYKLSAgICAvLyBQaXhlbEJ1ZmZlckNhbGxiYWNrIHNob3VsZCBhbHdheXMgY29tcGxldGUg
YnV0IGl0IG1pZ2h0IG5vdCBiZSBjYWxsZWQgb24gdGhlIHNhbWUgdGhyZWFkIGl0IHdhcyBjcmVh
dGVkLgotICAgIHVzaW5nIFBpeGVsQnVmZmVyQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKGNvbnN0
IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYsIFBpeGVsQnVmZmVyUmVzdWx0Q2FsbGJhY2smJik+Owot
Ci0gICAgc3RhdGljIFJlZjxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+IGNyZWF0ZShJUEM6OkNvbm5l
Y3Rpb24mLCBQcm9wZXJ0aWVzLCBQaXhlbEJ1ZmZlckNhbGxiYWNrJiYpOworICAgIHN0YXRpYyBS
ZWY8UmVtb3RlVmlkZW9GcmFtZVByb3h5PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJiwgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYsIFByb3BlcnRpZXMmJik7CiAKICAgICAvLyBDYWxs
ZWQgYnkgdGhlIGVuZC1wb2ludHMgdGhhdCBjYXB0dXJlIGNyZWF0aW9uIG1lc3NhZ2VzIHRoYXQg
YXJlIHNlbnQgZnJvbSBHUFVQIGJ1dAogICAgIC8vIHdob3NlIGRlc3RpbmF0aW9ucyB3ZXJlIHJl
bGVhc2VkIGluIFdQIGJlZm9yZSBtZXNzYWdlIHdhcyBwcm9jZXNzZWQuCkBAIC05MSw3ICs4Miw3
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIFJlbW90ZVZpZGVvRnJhbWVQcm94
eShJUEM6OkNvbm5lY3Rpb24mLCBQcm9wZXJ0aWVzLCBQaXhlbEJ1ZmZlckNhbGxiYWNrJiYpOwor
ICAgIFJlbW90ZVZpZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rpb24mLCBSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5JiwgUHJvcGVydGllcyYmKTsKIAogICAgIC8vIFdlYkNvcmU6OlZp
ZGVvRnJhbWUgb3ZlcnJpZGVzLgogICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25UaW1lKCkgY29u
c3QgZmluYWw7CkBAIC0xMDMsMTAgKzk0LDYgQEAgcHJpdmF0ZToKICAgICAvLyBGSVhNRTogV2hl
biBWaWRlb0ZyYW1lIGlzIG5vdCBNZWRpYVNhbXBsZSwgdGhlc2Ugd2lsbCBub3QgYmUgbmVlZGVk
LgogICAgIFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2FtcGxlKCkgY29uc3QgZmlu
YWw7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIGdldFBpeGVsQnVmZmVyKCk7Ci0j
ZW5kaWYKLQogICAgIGNvbnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAg
ICBSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlVHJhY2tlciBtX3JlZmVyZW5jZVRyYWNrZXI7CiAg
ICAgY29uc3QgTWVkaWFUaW1lIG1fcHJlc2VudGF0aW9uVGltZTsKQEAgLTExNCwxMCArMTAxLDEy
IEBAIHByaXZhdGU6CiAgICAgY29uc3QgVmlkZW9Sb3RhdGlvbiBtX3JvdGF0aW9uOwogICAgIGNv
bnN0IFdlYkNvcmU6OkludFNpemUgbV9zaXplOwogICAgIHVpbnQzMl90IG1fcGl4ZWxGb3JtYXQg
eyAwIH07CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzLgorICAgIG11dGFibGUgUmVmUHRyPFJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk+IG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eTsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBtdXRhYmxlIExvY2sgbV9waXhlbEJ1ZmZlckxv
Y2s7Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IG1fcGl4ZWxCdWZmZXI7Ci0gICAg
QmluYXJ5U2VtYXBob3JlIG1fc2VtYXBob3JlOwotICAgIFBpeGVsQnVmZmVyQ2FsbGJhY2sgbV9w
aXhlbEJ1ZmZlckNhbGxiYWNrOworICAgIG11dGFibGUgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+IG1fcGl4ZWxCdWZmZXI7CisjZW5kaWYKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+IHZvaWQgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4IGM2NmZkMWE2MDdlOWI4NDdhMzQ4
MTYzNmE5YWUxODdjNWM2YjI3OGEuLmRjYzYxNGQ2ZDZlYWE2ZDVhOGU4MzFjNTliOTA0ZDljNzM3
NmY0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmNwcApAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgTGliV2ViUlRD
Q29kZWNzOjplbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbk9uTWFpblRocmVhZFdpdGhMb2NrKCkK
ICAgICBhdXRvJiBncHVDb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKICAgICBncHVDb25uZWN0aW9uLmFkZENsaWVudCgqdGhp
cyk7CiAgICAgbV9jb25uZWN0aW9uID0gJmdwdUNvbm5lY3Rpb24uY29ubmVjdGlvbigpOwotICAg
IG1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSA9ICZncHVDb25uZWN0aW9uLnJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKTsKKyAgICBtX3JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkgPSAmZ3B1Q29ubmVjdGlvbi52aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCk7
CiAgICAgbV9jb25uZWN0aW9uLT5hZGRUaHJlYWRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Okxp
YldlYlJUQ0NvZGVjczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0aGlzKTsKIAogICAgIGlmICht
X2xvZ2dpbmdMZXZlbCkKQEAgLTMyNywxMyArMzI3LDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6
OmNvbXBsZXRlZERlY29kaW5nKFJUQ0RlY29kZXJJZGVudGlmaWVyIGRlY29kZXJJZGVudGlmaWVy
LAogICAgIGlmIChyZW1vdGVGcmFtZUlkZW50aWZpZXIpIHsKICAgICAgICAgTG9ja2VyIGxvY2tl
ciB7IG1fY29ubmVjdGlvbkxvY2sgfTsKICAgICAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQ
cm9wZXJ0aWVzIHByb3BlcnRpZXMgeyB7ICpyZW1vdGVGcmFtZUlkZW50aWZpZXIsIDAgfSwgcmVt
b3RlU2FtcGxlLnRpbWUoKSwgcmVtb3RlU2FtcGxlLm1pcnJvcmVkKCksIHJlbW90ZVNhbXBsZS5y
b3RhdGlvbigpLCByZW1vdGVTYW1wbGUuc2l6ZSgpLCByZW1vdGVTYW1wbGUudmlkZW9Gb3JtYXQo
KSB9OwotICAgICAgICByZW1vdGVWaWRlb0ZyYW1lID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpj
cmVhdGUoKm1fY29ubmVjdGlvbiwgcHJvcGVydGllcywgW3Byb3h5ID0gbV9yZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5XShhdXRvJiBmcmFtZSwgYXV0byYmIGNhbGxiYWNrKSB7Ci0gICAg
ICAgICAgICBpZiAoIXByb3h5KSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soeyB9KTsKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcm94eS0+
Z2V0VmlkZW9GcmFtZUJ1ZmZlcihmcmFtZSwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgICAgICB9
KTsKKyAgICAgICAgcmVtb3RlVmlkZW9GcmFtZSA9IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6Y3Jl
YXRlKCptX2Nvbm5lY3Rpb24sICptX3JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHksIFdU
Rk1vdmUocHJvcGVydGllcykpOwogICAgIH0KICAgICAvLyBGSVhNRTogRG8gZXJyb3IgbG9nZ2lu
Zy4KICAgICBhdXRvKiBkZWNvZGVyID0gbV9kZWNvZGVycy5nZXQoZGVjb2RlcklkZW50aWZpZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCmluZGV4IGJhNGE0NTRj
MGM4NTM3NWNlMjYxZDJmMzIwY2FlZWZlNTc4ZWEwN2EuLjExYmRkMWY2NTYxMmNiNjY0NjAwMDFj
OTM1NjBkY2QxNDFkOTczNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFBy
b3h5LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKSAmJiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUg
IlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuaCIKIApAQCAtMzcsMTUg
KzM3LDIwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHk+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgY29ubmVjdGlvbikgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KGNvbm5lY3Rp
b24pKTsgfQogICAgIH5SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkgPSBkZWZhdWx0
OwogCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXRWaWRlb0ZyYW1lQnVmZmVyKGNv
bnN0IFJlbW90ZVZpZGVvRnJhbWVQcm94eSYgcHJveHksIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHlQcm9jZXNzb3I6OkNhbGxiYWNrJiYgY2FsbGJhY2spIHsgbV9wcm9jZXNzb3ItPmdl
dFZpZGVvRnJhbWVCdWZmZXIocHJveHksIFdURk1vdmUoY2FsbGJhY2spKTsgfQorI2VuZGlmCiAK
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eShH
UFVQcm9jZXNzQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKKyNpZiBQTEFURk9STShDT0NPQSkKICAg
ICAgICAgOiBtX3Byb2Nlc3NvcihSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vz
c29yOjpjcmVhdGUoY29ubmVjdGlvbikpCisjZW5kaWYKICAgICB7CiAgICAgfQotCisjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9j
ZXNzb3I+IG1fcHJvY2Vzc29yOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCmluZGV4IDU3MzBkZDQyOWMyMmU5MGRhMzcyMWNiMTM2
NDBjZTU2MzNkZDAyZjQuLjE3MTlmOGQwZTVkOGE0YzA5MGQ4ZjE2OGExZTZlOGU0NzRhNzMzMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oSVBDOjpD
b25uZWN0aW9uKiBjb25uCiAgICAgc2V0Q29ubmVjdGlvbihjb25uZWN0aW9uKTsKIH0KIAotdm9p
ZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6c2V0UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eShSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KiBwcm94eSkKK3ZvaWQgUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnNldFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoUmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSogcHJveHkpCiB7CiAgICAgTG9ja2VyIGxvY2so
bV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5TG9jayk7CiAgICAgbV9yZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gcHJveHk7CkBAIC0xNjYsMTYgKzE2Niw5IEBAIHZvaWQg
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmCiAgICAgLy8gV2UgYWx3YXlzIGNyZWF0ZSBSZW1vdGVWaWRlb0Zy
YW1lUHJveHkgc28gdGhhdCB3ZSBjYW4gcmVsZWFzZSB0aGUgY29ycmVzcG9uZGluZyBHUFVQcm9j
ZXNzIElPU3VyZmFjZSByaWdodCBhd2F5IGlmIHRoZXJlIGlzIG5vIHZpZGVvIHNvdXJjZS4KICAg
ICBpZiAocmVtb3RlSWRlbnRpZmllcikgewogICAgICAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6
OlByb3BlcnRpZXMgcHJvcGVydGllcyB7IHsgKnJlbW90ZUlkZW50aWZpZXIsIDAgfSwgc2FtcGxl
LnRpbWUoKSwgc2FtcGxlLm1pcnJvcmVkKCksIHNhbXBsZS5yb3RhdGlvbigpLCBzYW1wbGUuc2l6
ZSgpLCBzYW1wbGUudmlkZW9Gb3JtYXQoKSB9OwotICAgICAgICAKICAgICAgICAgLy8gRklYTUU6
IFdlIG5lZWQgdG8gZWl0aGVyIGdldCBHUFVQcm9jZXNzIG9yIFVJUHJvY2VzcyBvYmplY3QgaGVh
cCBwcm94eS4gRm9yIG5vdyB3ZSBhbHdheXMgZ28gdG8gR1BVUHJvY2Vzcy4KICAgICAgICAgTG9j
a2VyIGxvY2sobV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5TG9jayk7Ci0gICAgICAg
IHZpZGVvRnJhbWUgPSBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmNyZWF0ZSgqbV9jb25uZWN0aW9u
LCBwcm9wZXJ0aWVzLCBbcHJveHkgPSBtX3JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHld
KGF1dG8mIGZyYW1lLCBhdXRvJiYgY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGlmICghcHJveHkp
IHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayh7IH0pOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByb3h5LT5nZXRWaWRlb0ZyYW1lQnVmZmVy
KGZyYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIH0pOworICAgICAgICB2aWRlb0Zy
YW1lID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoKm1fY29ubmVjdGlvbiwgKm1fcmVt
b3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSwgV1RGTW92ZShwcm9wZXJ0aWVzKSk7CiAgICAg
fQogCiAgICAgYXV0byBpdGVyYXRvciA9IG1fdmlkZW9Tb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5oCmluZGV4IGJmMWRhOWRkY2U4MDE0MDk4YjVhMjVhYmY1NDc0
NTg0MDUxNzJhM2MuLmUzYjUwYTBiNGY4YWI5ZTZkMDZhYmJiYWQ0YmIyM2RhNDg2NDJlN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAK
ICAgICB2b2lkIGRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKik7Ci0g
ICAgdm9pZCBzZXRSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHkqKTsKKyAgICB2b2lkIHNldFZpZGVvRnJhbWVPYmplY3RIZWFwUHJv
eHkoUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSopOwogCiAgICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5jcHAKaW5kZXggYzVmZjcyNTc0NzY4NmJlOTFiY2M5OGRmMjQyNjcyZTI0MjBjOWViNS4u
MTg4ZjQxMmY2MmVmYjg0MGRhZTIwOTVlNDg2YmI5NDUzYjNjYmU4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oIgogI2luY2x1
ZGUgIlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKQEAgLTI0Myw3ICsyNDQsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVT
bwogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiVmlkZW8gY2FwdHVyZSBp
biBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJfcyB9OwogI2VuZGlmCiAgICAgaWYgKG1f
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICAgICAgbV9tYW5hZ2VyLm1fcmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIuc2V0UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgmV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5yZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkpOworICAgICAgICBtX21hbmFnZXIubV9yZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLnZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkoKSk7CiAKICAgICBib29sIHNob3VsZFVzZUlPU3VyZmFjZSA9ICFtX21h
bmFnZXIubV9zaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVzOwogICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgV1RGTW92ZSho
YXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSwgc2hvdWxk
VXNlSU9TdXJmYWNlKSk7Cg==
</data>
<flag name="commit-queue"
          id="479148"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452191</attachid>
            <date>2022-02-16 06:11:35 -0800</date>
            <delta_ts>2022-02-16 23:16:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236704-20220216161133.patch</filename>
            <type>text/plain</type>
            <size>24772</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUwMTgzNTNhYzI5MTY2NmEw
MmZiZTdiYTRjZjc1NWRiMjg2MzExMGYuLmEzZWRhNjQ2YjU2ZGY2ZTlkZWU3Njc4NmEzM2JjN2Yz
NjYyNDA2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMjItMDItMTYgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVWaWRlb0ZyYW1l
UHJveHkgc2hvdWxkIHVzZSBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5IHRvIGdldCB0
aGUgcGl4ZWwgYnVmZmVyIHJlcHJlc2VudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgUmVtb3RlVmlkZW9GcmFtZVByb3h5IHVz
ZXMgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSB0byB0cmFuc2ZlciB0aGUgcGl4ZWwg
YnVmZmVyCisgICAgICAgIGZyb20gR1BVIHByb2Nlc3MgdG8gV2ViIHByb2Nlc3MgaW4gc2NlbmFy
aW9zIHdoZXJlIHRoZSBwaXhlbCBidWZmZXIgaXMgdXNlZCBpbiBXZWIgcHJvY2Vzcy4KKworICAg
ICAgICBQcmV2aW91c2x5IFJlbW90ZVZpZGVvRnJhbWVQcm94eSBjbGllbnQgd291bGQgaGF2ZSB0
byBwcm92aWRlIGEgdGhyZWFkLXNhZmUgZnVuY3Rpb24gdGhhdAorICAgICAgICBzaG91bGQgY2Fs
bCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OjpnZXRQaXhlbEJ1ZmZlcigpLgorICAg
ICAgICBDdXJyZW50IGNsaWVudHMgZG8gbm90IHByb3ZpZGUgYSB0aHJlYWQtc2FmZSBmdW5jdGlv
bi4KKworICAgICAgICBJbnN0ZWFkLCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkgc2hvdWxkIHByb3Zp
ZGUganVzdCB0aGUgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSByZWZlcmVuY2UsCisg
ICAgICAgIHNpbmNlIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGdldCB0aGUgcGl4ZWwgYnVmZmVy
IGFueXdheS4gVGhpcyBzaW1wbGlmaWVzIHRoZSBjYWxsIHNpdGVzLCBtYWtlcworICAgICAgICB0
aGUgaW1wbGVtZW50YXRpb24gbW9yZSBjb3JyZWN0IGFuZCBhdm9pZHMgdGhlIHVzZSBvZiBpZmRl
ZnMuCisKKyAgICAgICAgTWFrZSB0aGUgY29kZSBjb25zaXN0ZW50IHdpdGggaWZkZWZzLiBUaGlz
IGlzIHBsYXRmb3JtLWluZGVwZW5kZW50IGNvZGUsIHNvIHJlbW92ZSBDT0NPQSBpZmRlZnMuCisg
ICAgICAgIEFsbCBwbGF0Zm9ybXMgdGhhdCB0cmFuc2ZlciBwaXhlbHMgd291bGQgbmVlZCB0byBo
YXZlIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuCisgICAgICAgIFRoaXMgaXMgbWVk
aWEgc3RyZWFtIHNwZWNpZmljIGNvZGUsIHNvIGFkZCBNRURJQV9TVFJFQU0gaWZkZWZzLgorCisg
ICAgICAgIFRvIGJlIGNvbnNpc3RlbnQgd2l0aCBleGlzdGluZyBHUFVQIHNpZGUgY29kZSwgZG8g
bm90IHVzZSAicmVtb3RlIiBwcmVmaXggb24gdGhlCisgICAgICAgIHZhcmlhYmxlIG5hbWVzLiBF
LmcuIHVzZSAidmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSIgdG8gcmVmZXIgdG8gdGhlIHByb3h5
LiBUaGUgcmVtb3RlIHBhcnQKKyAgICAgICAgaXMgcmVkdW5kYW50LCBhcyB0aGlzIGlzIGltcGxp
ZWQuCisKKyAgICAgICAgQ2xlYW4gdXAgcmVsYXRlZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnBp
eGVsQnVmZmVyKCkgZnVuY3Rpb24gdG8gbm90IHN0b3JlIHVubmVlZGVkIHNlbWFwaG9yZXMKKyAg
ICAgICAgYXMgaW5zdGFuY2UgdmFyaWFibGVzIG9yIHVzZSBkdXBsaWNhdGUgaGVscGVyIGZ1bmN0
aW9ucy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGEgcmVmYWN0b3IuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxh
eWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjp2aWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlJlbW90ZVZpZGVvRnJhbWVQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cGl4ZWxCdWZmZXIgY29uc3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25N
YWluVGhyZWFkV2l0aExvY2spOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNv
bXBsZXRlZERlY29kaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnNldFZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKToKKwogMjAyMi0wMi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbbWFjT1NdIEFkZCBhbiAiTWFya3VwIEltYWdlIiBpdGVtIHRvIHRoZSBz
aGFyaW5nIHNlcnZpY2VzIHBpY2tlciBjb250ZXh0IG1lbnUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggYzcyZGE3
YTM0YTFhNzM4YWE5MjBmMDVkNTdjZjljNGUxNTk1NjU4NC4uNDRhOGNlMGJhZmY5YzMwNjVjNWQ1
NGUxNThkYzlhMDExZTRkMjM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNs
dWRlICJSZW1vdGVNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVtb3RlQ29tbWFu
ZExpc3RlbmVyTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5LmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIgog
I2luY2x1ZGUgIlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmgiCkBAIC03OCw2ICs3Nyw3IEBACiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVQcm94eS5o
IgogI2VuZGlmCiAKQEAgLTE2NCwxMiArMTY0LDE0IEBAIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b246OnJlc2V0QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQoQXVkaW9N
CiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuYXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyKCkucmVzZXQoaWRlbnRpZmllcik7CiB9CisjZW5kaWYK
IAotUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246
OnJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKQorI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCitSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiBHUFVQcm9jZXNzQ29ubmVjdGlv
bjo6dmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpCiB7Ci0gICAgaWYgKCFtX3JlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkpCi0gICAgICAgIG1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eSA9IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk6OmNyZWF0ZSgqdGhpcyk7
Ci0gICAgcmV0dXJuICptX3JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CisgICAgaWYg
KCFtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkpCisgICAgICAgIG1fdmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eSA9IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk6OmNyZWF0ZSgqdGhp
cyk7CisgICAgcmV0dXJuICptX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVj
dGlvbi5oCmluZGV4IDgxM2EwNTQ2OTcyY2MzMmFkNjJhYzlmYTI4ZDExZTU0Y2E1ZmVmNjguLjll
YWNlNmJiNzlhNzZiNzU5MmViMzlmMjJhNmJhZWIxMTUyZWU1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTUxLDEz
ICs1MSwxNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlQXVkaW9Tb3VyY2VQ
cm92aWRlck1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI7Ci1jbGFzcyBS
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OwogY2xhc3MgU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcjsKIGNsYXNzIFdlYlBhZ2U7CiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b25Jbml0aWFsaXphdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgT3ZlcnJpZGVTY3JlZW5EYXRhRm9y
VGVzdGluZzsKIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKK2NsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7Cisj
ZW5kaWYKKwogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxH
UFVQcm9jZXNzQ29ubmVjdGlvbj4sIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxHUFVQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25Jbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC03
OCw3ICs4MSw5IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKICAgICBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyJiBzYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyKCk7CiAgICAgdm9pZCByZXNldEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVySW50ZXJuYWxVbml0KEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0SWRlbnRpZmllcik7Ci0gICAgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eSYgcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpOworI2VuZGlmCisjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyAgICBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiB2aWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5KCk7CiAjZW5kaWYKIAogICAgIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlciYgbWVkaWFQbGF5ZXJNYW5hZ2VyKCk7CkBAIC0xNDIsNyArMTQ3LDkgQEAgcHJpdmF0
ZToKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyPiBtX3Nh
bXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7Ci0gICAgUmVmUHRyPFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHk+IG1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eTsKKyNl
bmRpZgorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgUmVmUHRyPFJlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHk+IG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eTsKICNlbmRpZgog
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoV0VCX0FVRElPKQogICAgIFJlZlB0cjxSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcj4gbV9hdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCmluZGV4IDdhYTY0
MDY0YWM0MDgyNjE4MzA0NTZiNTI1YTRmNzk1N2Q1ZjE0MmQuLjEyOWM1YjIyOWZmZTViNTIzZjQw
MWVjZTYwYmJhZmI1MmY4M2NkM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5LmNwcApAQCAtMTc4LDE1ICsxNzgsNyBAQCBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTYW1w
bGU+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHk6OnBhaW50Q29tcG9zaXRlZFJlc3VsdAog
ICAgIH0KICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0
dXJuIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6Y3JlYXRlKG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKSwgV1RGTW92ZSgqcmVzdWx0KSwKLSNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICAgICAgW3Byb3h5ID0gUmVmIHsgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+cmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eSgpIH1dKGF1dG8mIGZyYW1lLCBhdXRvJiYgY2FsbGJhY2spIHsK
LSAgICAgICAgICAgIHByb3h5LT5nZXRWaWRlb0ZyYW1lQnVmZmVyKGZyYW1lLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7Ci0gICAgICAgIH0KLSNlbHNlCi0gICAgICAgIFthdXRvJiBmcmFtZSwgYXV0byYm
IGNhbGxiYWNrXSB7IGNhbGxiYWNrKCk7IH0KLSNlbmRpZgotICAgICk7CisgICAgcmV0dXJuIFJl
bW90ZVZpZGVvRnJhbWVQcm94eTo6Y3JlYXRlKG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5l
Y3Rpb24oKSwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+dmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eSgpLCAgV1RGTW92ZSgqcmVzdWx0KSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHku
Y3BwCmluZGV4IDA1OGNlOWI3NWZjYWNjZWY0YjFjYmY1NWMxNmY4MTRiMGFmMTA4NjMuLjQ2ZTZm
MjQxNGY0ZWU1NmFlOGJjYzRiMmZjN2ExYTA0MzYwYTI2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94
eS5jcHAKQEAgLTI5LDggKzI5LDEzIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
ICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcE1lc3NhZ2VzLmgiCisjaW5jbHVk
ZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaD4KIAorI2lmIFBMQVRGT1JNKENPQ09B
KQorI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXMgUmVt
b3RlVmlkZW9GcmFtZVByb3h5Ojpwcm9wZXJ0aWVzKFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVJl
ZmVyZW5jZSYmIHJlZmVyZW5jZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFTYW1wbGUmIG1lZGlhU2Ft
cGxlKQpAQCAtNDUsOSArNTAsOSBAQCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXMg
UmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpwcm9wZXJ0aWVzKFdlYktpdDo6UmVtbwogICAgIH07CiB9
CiAKLVJlZjxSZW1vdGVWaWRlb0ZyYW1lUHJveHk+IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6Y3Jl
YXRlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUHJvcGVydGllcyBwcm9wZXJ0aWVzLCBQ
aXhlbEJ1ZmZlckNhbGxiYWNrJiYgY2FsbGJhY2spCitSZWY8UmVtb3RlVmlkZW9GcmFtZVByb3h5
PiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmIHZpZGVvRnJhbWVPYmplY3RIZWFw
UHJveHksIFByb3BlcnRpZXMmJiBwcm9wZXJ0aWVzKQogewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFJlbW90ZVZpZGVvRnJhbWVQcm94eShjb25uZWN0aW9uLCBXVEZNb3ZlKHByb3BlcnRpZXMp
LCBXVEZNb3ZlKGNhbGxiYWNrKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZVZp
ZGVvRnJhbWVQcm94eShjb25uZWN0aW9uLCB2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LCBXVEZN
b3ZlKHByb3BlcnRpZXMpKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlbGVhc2VSZW1vdGVWaWRlb0Zy
YW1lUHJveHkoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBSZW1vdGVWaWRlb0Zy
YW1lV3JpdGVSZWZlcmVuY2UmIHJlZmVyZW5jZSkKQEAgLTYwLDcgKzY1LDcgQEAgdm9pZCBSZW1v
dGVWaWRlb0ZyYW1lUHJveHk6OnJlbGVhc2VVbnVzZWQoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBQcm9wZXJ0aWUKICAgICByZWxlYXNlUmVtb3RlVmlkZW9GcmFtZVByb3h5KGNvbm5lY3Rp
b24sIHsgeyBwcm9wZXJ0aWVzLnJlZmVyZW5jZS5pZGVudGlmaWVyKCksIHByb3BlcnRpZXMucmVm
ZXJlbmNlLnZlcnNpb24oKSB9LCAwIH0pOwogfQogCi1SZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlJl
bW90ZVZpZGVvRnJhbWVQcm94eShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb3BlcnRp
ZXMgcHJvcGVydGllcywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmIGNhbGxiYWNrKQorUmVtb3RlVmlk
ZW9GcmFtZVByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiB2aWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5LCBQcm9wZXJ0aWVzJiYgcHJvcGVydGllcykKICAgICA6IG1fY29ubmVjdGlvbihj
b25uZWN0aW9uKQogICAgICwgbV9yZWZlcmVuY2VUcmFja2VyKHByb3BlcnRpZXMucmVmZXJlbmNl
KQogICAgICwgbV9wcmVzZW50YXRpb25UaW1lKHByb3BlcnRpZXMucHJlc2VudGF0aW9uVGltZSkK
QEAgLTY4LDcgKzczLDcgQEAgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpSZW1vdGVWaWRlb0ZyYW1l
UHJveHkoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQcm9wZXIKICAgICAsIG1fcm90YXRp
b24ocHJvcGVydGllcy5yb3RhdGlvbikKICAgICAsIG1fc2l6ZShwcm9wZXJ0aWVzLnNpemUpCiAg
ICAgLCBtX3BpeGVsRm9ybWF0KHByb3BlcnRpZXMucGl4ZWxGb3JtYXQpCi0gICAgLCBtX3BpeGVs
QnVmZmVyQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCisgICAgLCBtX3ZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkoJnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkpCiB7CiB9CiAKQEAgLTEyMywy
NSArMTI4LDIyIEBAIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWFTYW1wbGVWaWRlb0ZyYW1l
PiBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnZpZGVvRnJhbWUoCiB9CiAKICNpZiBQTEFURk9STShD
T0NPQSkKLXZvaWQgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpnZXRQaXhlbEJ1ZmZlcigpCi17Ci0g
ICAgQVNTRVJUKG1fcGl4ZWxCdWZmZXJMb2NrLmlzSGVsZCgpKTsKLSAgICBzdGQ6OmV4Y2hhbmdl
KG1fcGl4ZWxCdWZmZXJDYWxsYmFjaywgeyB9KSgqdGhpcywgW3RoaXNdKGF1dG8gcGl4ZWxCdWZm
ZXIpIHsKLSAgICAgICAgbV9waXhlbEJ1ZmZlciA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOwotICAg
ICAgICBpZiAoIW1fcGl4ZWxCdWZmZXIpIHsKLSAgICAgICAgICAgIC8vIHNvbWUgY29kZSBwYXRo
cyBkbyBub3QgbGlrZSBlbXB0eSBwaXhlbCBidWZmZXJzLgotICAgICAgICAgICAgbV9waXhlbEJ1
ZmZlciA9IFdlYkNvcmU6OmNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc3RhdGljX2Nhc3Q8c2l6ZV90
PihtX3NpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PHNpemVfdD4obV9zaXplLmhlaWdodCgpKSk7
Ci0gICAgICAgIH0KLSAgICAgICAgbV9zZW1hcGhvcmUuc2lnbmFsKCk7Ci0gICAgfSk7Ci0gICAg
bV9zZW1hcGhvcmUud2FpdCgpOwotfQotCiBDVlBpeGVsQnVmZmVyUmVmIFJlbW90ZVZpZGVvRnJh
bWVQcm94eTo6cGl4ZWxCdWZmZXIoKSBjb25zdAogewogICAgIExvY2tlciBsb2NrKG1fcGl4ZWxC
dWZmZXJMb2NrKTsKLSAgICBpZiAoIW1fcGl4ZWxCdWZmZXIgJiYgbV9waXhlbEJ1ZmZlckNhbGxi
YWNrKQotICAgICAgICBjb25zdF9jYXN0PFJlbW90ZVZpZGVvRnJhbWVQcm94eSo+KHRoaXMpLT5n
ZXRQaXhlbEJ1ZmZlcigpOworICAgIGlmICghbV9waXhlbEJ1ZmZlciAmJiBtX3ZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkpIHsKKyAgICAgICAgQmluYXJ5U2VtYXBob3JlIHNlbWFwaG9yZTsKKyAg
ICAgICAgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LT5nZXRWaWRlb0ZyYW1lQnVmZmVyKCp0
aGlzLCBbdGhpcywgJnNlbWFwaG9yZV0oYXV0byBwaXhlbEJ1ZmZlcikgeworICAgICAgICAgICAg
bV9waXhlbEJ1ZmZlciA9IFdURk1vdmUocGl4ZWxCdWZmZXIpOworICAgICAgICAgICAgaWYgKCFt
X3BpeGVsQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgLy8gU29tZSBjb2RlIHBhdGhzIGRvIG5v
dCBsaWtlIGVtcHR5IHBpeGVsIGJ1ZmZlcnMuCisgICAgICAgICAgICAgICAgbV9waXhlbEJ1ZmZl
ciA9IFdlYkNvcmU6OmNyZWF0ZUJsYWNrUGl4ZWxCdWZmZXIoc3RhdGljX2Nhc3Q8c2l6ZV90Piht
X3NpemUud2lkdGgoKSksIHN0YXRpY19jYXN0PHNpemVfdD4obV9zaXplLmhlaWdodCgpKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBzZW1hcGhvcmUuc2lnbmFsKCk7CisgICAgICAgIH0p
OworICAgICAgICBzZW1hcGhvcmUud2FpdCgpOworICAgICAgICBtX3ZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHkgPSBudWxscHRyOworICAgIH0KICAgICByZXR1cm4gbV9waXhlbEJ1ZmZlci5nZXQo
KTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKaW5kZXggMzFhMWE4NDU3ZWJmNjg1MzYx
OGQ2OGQ1ZWU5NTEyZWQ3NGVmMWZmNy4uZjY3MjM0ZjFhZDFmM2ExZTRhZTQyMTRlMDY4YzhlOTll
NWYwYzdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVWaWRlb0ZyYW1lUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCkBAIC0zMCw4ICszMCw2IEBACiAjaW5jbHVk
ZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvVmlkZW9GcmFtZS5oPgotI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgog
CiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIENvbm5lY3Rpb247CkBAIC00MSw2ICszOSw3IEBAIGNs
YXNzIERlY29kZXI7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb247CitjbGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OwogCiAvLyBBIFdl
YkNvcmU6OlZpZGVvRnJhbWUgY2xhc3MgdGhhdCBwb2ludHMgdG8gYSBjb25jcmV0ZSBXZWJDb3Jl
OjpWaWRlb0ZyYW1lIGluc3RhbmNlCiAvLyBpbiBhbm90aGVyIHByb2Nlc3MsIEdQVSBwcm9jZXNz
LgpAQCAtNjQsMTUgKzYzLDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFByb3BlcnRpZXMgcHJv
cGVydGllcyhXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVSZWZlcmVuY2UmJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFTYW1wbGUmKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHVzaW5nIFBpeGVs
QnVmZmVyUmVzdWx0Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFJldGFpblB0cjxDVlBpeGVsQnVm
ZmVyUmVmPiYmKT47Ci0jZWxzZQotICAgIHVzaW5nIFBpeGVsQnVmZmVyUmVzdWx0Q2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKCk+OwotI2VuZGlmCi0gICAgLy8gUGl4ZWxCdWZmZXJDYWxsYmFjayBz
aG91bGQgYWx3YXlzIGNvbXBsZXRlIGJ1dCBpdCBtaWdodCBub3QgYmUgY2FsbGVkIG9uIHRoZSBz
YW1lIHRocmVhZCBpdCB3YXMgY3JlYXRlZC4KLSAgICB1c2luZyBQaXhlbEJ1ZmZlckNhbGxiYWNr
ID0gRnVuY3Rpb248dm9pZChjb25zdCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkmLCBQaXhlbEJ1ZmZl
clJlc3VsdENhbGxiYWNrJiYpPjsKLQotICAgIHN0YXRpYyBSZWY8UmVtb3RlVmlkZW9GcmFtZVBy
b3h5PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uJiwgUHJvcGVydGllcywgUGl4ZWxCdWZmZXJDYWxs
YmFjayYmKTsKKyAgICBzdGF0aWMgUmVmPFJlbW90ZVZpZGVvRnJhbWVQcm94eT4gY3JlYXRlKElQ
Qzo6Q29ubmVjdGlvbiYsIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmLCBQcm9wZXJ0
aWVzJiYpOwogCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSBlbmQtcG9pbnRzIHRoYXQgY2FwdHVyZSBj
cmVhdGlvbiBtZXNzYWdlcyB0aGF0IGFyZSBzZW50IGZyb20gR1BVUCBidXQKICAgICAvLyB3aG9z
ZSBkZXN0aW5hdGlvbnMgd2VyZSByZWxlYXNlZCBpbiBXUCBiZWZvcmUgbWVzc2FnZSB3YXMgcHJv
Y2Vzc2VkLgpAQCAtOTEsNyArODIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAg
ICBSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBDOjpDb25uZWN0aW9uJiwgUHJvcGVydGllcywgUGl4
ZWxCdWZmZXJDYWxsYmFjayYmKTsKKyAgICBSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBDOjpDb25u
ZWN0aW9uJiwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYsIFByb3BlcnRpZXMmJik7
CiAKICAgICAvLyBXZWJDb3JlOjpWaWRlb0ZyYW1lIG92ZXJyaWRlcy4KICAgICBNZWRpYVRpbWUg
cHJlc2VudGF0aW9uVGltZSgpIGNvbnN0IGZpbmFsOwpAQCAtMTAzLDEwICs5NCw2IEBAIHByaXZh
dGU6CiAgICAgLy8gRklYTUU6IFdoZW4gVmlkZW9GcmFtZSBpcyBub3QgTWVkaWFTYW1wbGUsIHRo
ZXNlIHdpbGwgbm90IGJlIG5lZWRlZC4KICAgICBXZWJDb3JlOjpQbGF0Zm9ybVNhbXBsZSBwbGF0
Zm9ybVNhbXBsZSgpIGNvbnN0IGZpbmFsOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9p
ZCBnZXRQaXhlbEJ1ZmZlcigpOwotI2VuZGlmCi0KICAgICBjb25zdCBSZWY8SVBDOjpDb25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVtb3RlVmlkZW9GcmFtZVJlZmVyZW5jZVRyYWNrZXIg
bV9yZWZlcmVuY2VUcmFja2VyOwogICAgIGNvbnN0IE1lZGlhVGltZSBtX3ByZXNlbnRhdGlvblRp
bWU7CkBAIC0xMTQsMTAgKzEwMSwxMiBAQCBwcml2YXRlOgogICAgIGNvbnN0IFZpZGVvUm90YXRp
b24gbV9yb3RhdGlvbjsKICAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKICAgICB1
aW50MzJfdCBtX3BpeGVsRm9ybWF0IHsgMCB9OworICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcy4K
KyAgICBtdXRhYmxlIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5PiBtX3Zp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbXV0YWJs
ZSBMb2NrIG1fcGl4ZWxCdWZmZXJMb2NrOwotICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBtX3BpeGVsQnVmZmVyOwotICAgIEJpbmFyeVNlbWFwaG9yZSBtX3NlbWFwaG9yZTsKLSAgICBQ
aXhlbEJ1ZmZlckNhbGxiYWNrIG1fcGl4ZWxCdWZmZXJDYWxsYmFjazsKKyAgICBtdXRhYmxlIFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBtX3BpeGVsQnVmZmVyOworI2VuZGlmCiB9OwogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJv
cGVydGllczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAppbmRl
eCBjNjZmZDFhNjA3ZTliODQ3YTM0ODE2MzZhOWFlMTg3YzVjNmIyNzhhLi5kMDcwYzJiNzlkZjQw
Y2FjYjQxOGYwNjc4MjY3ZTRjM2I0YTU0NjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTE4Niw3ICsx
ODYsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb25P
bk1haW5UaHJlYWRXaXRoTG9jaygpCiAgICAgYXV0byYgZ3B1Q29ubmVjdGlvbiA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgZ3B1Q29u
bmVjdGlvbi5hZGRDbGllbnQoKnRoaXMpOwogICAgIG1fY29ubmVjdGlvbiA9ICZncHVDb25uZWN0
aW9uLmNvbm5lY3Rpb24oKTsKLSAgICBtX3JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkg
PSAmZ3B1Q29ubmVjdGlvbi5yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCk7CisgICAg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gJmdwdUNvbm5lY3Rpb24udmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eSgpOwogICAgIG1fY29ubmVjdGlvbi0+YWRkVGhyZWFkTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgdGhp
cyk7CiAKICAgICBpZiAobV9sb2dnaW5nTGV2ZWwpCkBAIC0zMjcsMTMgKzMyNyw3IEBAIHZvaWQg
TGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmllciBk
ZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAocmVtb3RlRnJhbWVJZGVudGlmaWVyKSB7CiAgICAg
ICAgIExvY2tlciBsb2NrZXIgeyBtX2Nvbm5lY3Rpb25Mb2NrIH07CiAgICAgICAgIFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcyBwcm9wZXJ0aWVzIHsgeyAqcmVtb3RlRnJhbWVJZGVu
dGlmaWVyLCAwIH0sIHJlbW90ZVNhbXBsZS50aW1lKCksIHJlbW90ZVNhbXBsZS5taXJyb3JlZCgp
LCByZW1vdGVTYW1wbGUucm90YXRpb24oKSwgcmVtb3RlU2FtcGxlLnNpemUoKSwgcmVtb3RlU2Ft
cGxlLnZpZGVvRm9ybWF0KCkgfTsKLSAgICAgICAgcmVtb3RlVmlkZW9GcmFtZSA9IFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6Y3JlYXRlKCptX2Nvbm5lY3Rpb24sIHByb3BlcnRpZXMsIFtwcm94eSA9
IG1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eV0oYXV0byYgZnJhbWUsIGF1dG8mJiBj
YWxsYmFjaykgewotICAgICAgICAgICAgaWYgKCFwcm94eSkgewotICAgICAgICAgICAgICAgIGNh
bGxiYWNrKHsgfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgcHJveHktPmdldFZpZGVvRnJhbWVCdWZmZXIoZnJhbWUsIFdURk1vdmUoY2FsbGJh
Y2spKTsKLSAgICAgICAgfSk7CisgICAgICAgIHJlbW90ZVZpZGVvRnJhbWUgPSBSZW1vdGVWaWRl
b0ZyYW1lUHJveHk6OmNyZWF0ZSgqbV9jb25uZWN0aW9uLCAqbV92aWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5LCBXVEZNb3ZlKHByb3BlcnRpZXMpKTsKICAgICB9CiAgICAgLy8gRklYTUU6IERvIGVy
cm9yIGxvZ2dpbmcuCiAgICAgYXV0byogZGVjb2RlciA9IG1fZGVjb2RlcnMuZ2V0KGRlY29kZXJJ
ZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzLmgKaW5kZXggMmU0OTE2NDBiOWY3MmZiZmI0YjliZTcwOWEyOGRm
MjJiNjRjMGU1MC4uZjQxMzdiMjIzMzU4MWE1NDM4MjU0MzcwYTc2M2ViNTJlN2UzMjc2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRD
Q29kZWNzLmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBwcml2YXRlOgogCiAgICAgTG9jayBtX2Nvbm5l
Y3Rpb25Mb2NrOwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbiBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fY29ubmVjdGlvbkxvY2spOwotICAgIFJlZlB0cjxSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5PiBtX3JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkg
V1RGX0dVQVJERURfQllfTE9DSyhtX2Nvbm5lY3Rpb25Mb2NrKTsKKyAgICBSZWZQdHI8UmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5IFdU
Rl9HVUFSREVEX0JZX0xPQ0sobV9jb25uZWN0aW9uTG9jayk7CiAgICAgVmVjdG9yPEZ1bmN0aW9u
PHZvaWQoKT4+IG1fdGFza3NUb0Rpc3BhdGNoQWZ0ZXJFc3RhYmxpc2hpbmdDb25uZWN0aW9uOwog
CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkuaAppbmRleCBiYTRhNDU0YzBjODUzNzVjZTI2MWQyZjMyMGNhZWVmZTU3OGVh
MDdhLi4xMWJkZDFmNjU2MTJjYjY2NDYwMDAxYzkzNTYwZGNkMTQxZDk3MzY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMv
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgUExBVEZPUk0oQ09DT0Ep
ICYmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFBy
b3h5UHJvY2Vzc29yLmgiCiAKQEAgLTM3LDE1ICszNywyMCBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5PiBjcmVhdGUoR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24mIGNvbm5lY3Rpb24pIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eShjb25uZWN0aW9uKSk7IH0KICAgICB+UmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eSgpID0gZGVmYXVsdDsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHZvaWQgZ2V0VmlkZW9GcmFtZUJ1ZmZlcihjb25zdCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkmIHBy
b3h5LCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yOjpDYWxsYmFjayYm
IGNhbGxiYWNrKSB7IG1fcHJvY2Vzc29yLT5nZXRWaWRlb0ZyYW1lQnVmZmVyKHByb3h5LCBXVEZN
b3ZlKGNhbGxiYWNrKSk7IH0KKyNlbmRpZgogCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGNvbm5lY3Rp
b24pCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgICAgIDogbV9wcm9jZXNzb3IoUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6Y3JlYXRlKGNvbm5lY3Rpb24pKQorI2Vu
ZGlmCiAgICAgewogICAgIH0KLQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlZjxSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yPiBtX3Byb2Nlc3NvcjsKKyNlbmRpZgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRl
eCA1NzMwZGQ0MjljMjJlOTBkYTM3MjFjYjEzNjQwY2U1NjMzZGQwMmY0Li5lYWE2MmU2MTU0ZTI5
NDkxMjQzNGQwZGUzMmM1NDU1OTUyZjk3NWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAK
QEAgLTEzNSwxMCArMTM1LDEwIEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmRp
ZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKiBjb25uCiAgICAgc2V0Q29u
bmVjdGlvbihjb25uZWN0aW9uKTsKIH0KIAotdm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
cjo6c2V0UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eShSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5KiBwcm94eSkKK3ZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnNl
dFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eSogcHJveHkpCiB7Ci0gICAgTG9ja2VyIGxvY2sobV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5TG9jayk7Ci0gICAgbV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gcHJv
eHk7CisgICAgTG9ja2VyIGxvY2sobV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5TG9jayk7Cisg
ICAgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gcHJveHk7CiB9CiAKIHZvaWQgUmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXI6OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYm
IGNhbGxiYWNrKQpAQCAtMTY2LDE2ICsxNjYsOSBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZgog
ICAgIC8vIFdlIGFsd2F5cyBjcmVhdGUgUmVtb3RlVmlkZW9GcmFtZVByb3h5IHNvIHRoYXQgd2Ug
Y2FuIHJlbGVhc2UgdGhlIGNvcnJlc3BvbmRpbmcgR1BVUHJvY2VzcyBJT1N1cmZhY2UgcmlnaHQg
YXdheSBpZiB0aGVyZSBpcyBubyB2aWRlbyBzb3VyY2UuCiAgICAgaWYgKHJlbW90ZUlkZW50aWZp
ZXIpIHsKICAgICAgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzIHByb3BlcnRp
ZXMgeyB7ICpyZW1vdGVJZGVudGlmaWVyLCAwIH0sIHNhbXBsZS50aW1lKCksIHNhbXBsZS5taXJy
b3JlZCgpLCBzYW1wbGUucm90YXRpb24oKSwgc2FtcGxlLnNpemUoKSwgc2FtcGxlLnZpZGVvRm9y
bWF0KCkgfTsKLSAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGVpdGhlciBn
ZXQgR1BVUHJvY2VzcyBvciBVSVByb2Nlc3Mgb2JqZWN0IGhlYXAgcHJveHkuIEZvciBub3cgd2Ug
YWx3YXlzIGdvIHRvIEdQVVByb2Nlc3MuCi0gICAgICAgIExvY2tlciBsb2NrKG1fcmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eUxvY2spOwotICAgICAgICB2aWRlb0ZyYW1lID0gUmVtb3Rl
VmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoKm1fY29ubmVjdGlvbiwgcHJvcGVydGllcywgW3Byb3h5
ID0gbV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5XShhdXRvJiBmcmFtZSwgYXV0byYm
IGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBpZiAoIXByb3h5KSB7Ci0gICAgICAgICAgICAgICAg
Y2FsbGJhY2soeyB9KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBwcm94eS0+Z2V0VmlkZW9GcmFtZUJ1ZmZlcihmcmFtZSwgV1RGTW92ZShjYWxs
YmFjaykpOwotICAgICAgICB9KTsKKyAgICAgICAgTG9ja2VyIGxvY2sobV92aWRlb0ZyYW1lT2Jq
ZWN0SGVhcFByb3h5TG9jayk7CisgICAgICAgIHZpZGVvRnJhbWUgPSBSZW1vdGVWaWRlb0ZyYW1l
UHJveHk6OmNyZWF0ZSgqbV9jb25uZWN0aW9uLCAqbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5
LCBXVEZNb3ZlKHByb3BlcnRpZXMpKTsKICAgICB9CiAKICAgICBhdXRvIGl0ZXJhdG9yID0gbV92
aWRlb1NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXgg
YmYxZGE5ZGRjZTgwMTQwOThiNWEyNWFiZjU0NzQ1ODQwNTE3MmEzYy4uNGZhMThiNDA0ZWYxZjE3
MTdhYmZiMTk5Njk5YzYxOWEzOWNkZTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTYz
LDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZGlkVXBkYXRlU291cmNlQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKLSAgICB2b2lkIHNldFJlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHkoUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSopOworICAgIHZv
aWQgc2V0VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eShSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5Kik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpOwogCkBAIC0xMjQsOCArMTI0LDggQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlQXVkaW8+PiBtX2F1ZGlvU291cmNlczsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW8+
PiBtX3ZpZGVvU291cmNlczsKIAotICAgIExvY2sgbV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5TG9jazsKLSAgICBSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4g
bV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5IFdURl9HVUFSREVEX0JZX0xPQ0sobV9y
ZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5TG9jayk7CisgICAgTG9jayBtX3ZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHlMb2NrOworICAgIFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5PiBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkgV1RGX0dVQVJERURfQllfTE9D
SyhtX3ZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlMb2NrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggYzVmZjcyNTc0NzY4NmJlOTFiY2M5OGRm
MjQyNjcyZTI0MjBjOWViNS4uMTg4ZjQxMmY2MmVmYjg0MGRhZTIwOTVlNDg2YmI5NDUzYjNjYmU4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKKyNpbmNs
dWRlICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTI0Myw3ICsyNDQsNyBAQCBDYXB0
dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5Ojpj
cmVhdGVWaWRlb0NhcHR1cmVTbwogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
eyAiVmlkZW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJfcyB9Owog
I2VuZGlmCiAgICAgaWYgKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICAgICAgbV9t
YW5hZ2VyLm1fcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuc2V0UmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eSgmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkpOworICAgICAgICBt
X21hbmFnZXIubV9yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5zZXRWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5KCZXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVj
dGlvbigpLnZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSk7CiAKICAgICBib29sIHNob3VsZFVz
ZUlPU3VyZmFjZSA9ICFtX21hbmFnZXIubV9zaG91bGRVc2VHUFVQcm9jZXNzUmVtb3RlRnJhbWVz
OwogICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWlu
dHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKSwgc2hvdWxkVXNlSU9TdXJmYWNlKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452324</attachid>
            <date>2022-02-16 23:16:53 -0800</date>
            <delta_ts>2022-02-17 01:12:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236704-20220217091651.patch</filename>
            <type>text/plain</type>
            <size>24782</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE2ZGI1MGYwNDNjNjQ1YWY4
MmRmZWYyNmQ1MGNkZjNhNTQwZDFmZWEuLjc5MDAxZWI0YTQ5ODExNWMwMWMzNzhhNjgyNjBiNjlj
MDE5ZDNlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMjItMDItMTYgIEtpbW1vIEtp
bm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVWaWRlb0ZyYW1l
UHJveHkgc2hvdWxkIHVzZSBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5IHRvIGdldCB0
aGUgcGl4ZWwgYnVmZmVyIHJlcHJlc2VudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY3MDQKKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0
aSBLb2l2aXN0by4KKworICAgICAgICBDdXJyZW50bHkgUmVtb3RlVmlkZW9GcmFtZVByb3h5IHVz
ZXMgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSB0byB0cmFuc2ZlciB0aGUgcGl4ZWwg
YnVmZmVyCisgICAgICAgIGZyb20gR1BVIHByb2Nlc3MgdG8gV2ViIHByb2Nlc3MgaW4gc2NlbmFy
aW9zIHdoZXJlIHRoZSBwaXhlbCBidWZmZXIgaXMgdXNlZCBpbiBXZWIgcHJvY2Vzcy4KKworICAg
ICAgICBQcmV2aW91c2x5IFJlbW90ZVZpZGVvRnJhbWVQcm94eSBjbGllbnQgd291bGQgaGF2ZSB0
byBwcm92aWRlIGEgdGhyZWFkLXNhZmUgZnVuY3Rpb24gdGhhdAorICAgICAgICBzaG91bGQgY2Fs
bCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OjpnZXRQaXhlbEJ1ZmZlcigpLgorICAg
ICAgICBDdXJyZW50IGNsaWVudHMgZG8gbm90IHByb3ZpZGUgYSB0aHJlYWQtc2FmZSBmdW5jdGlv
bi4KKworICAgICAgICBJbnN0ZWFkLCBSZW1vdGVWaWRlb0ZyYW1lUHJveHkgc2hvdWxkIHByb3Zp
ZGUganVzdCB0aGUgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSByZWZlcmVuY2UsCisg
ICAgICAgIHNpbmNlIHRoaXMgaXMgdGhlIG9ubHkgd2F5IHRvIGdldCB0aGUgcGl4ZWwgYnVmZmVy
IGFueXdheS4gVGhpcyBzaW1wbGlmaWVzIHRoZSBjYWxsIHNpdGVzLCBtYWtlcworICAgICAgICB0
aGUgaW1wbGVtZW50YXRpb24gbW9yZSBjb3JyZWN0IGFuZCBhdm9pZHMgdGhlIHVzZSBvZiBpZmRl
ZnMuCisKKyAgICAgICAgTWFrZSB0aGUgY29kZSBjb25zaXN0ZW50IHdpdGggaWZkZWZzLiBUaGlz
IGlzIHBsYXRmb3JtLWluZGVwZW5kZW50IGNvZGUsIHNvIHJlbW92ZSBDT0NPQSBpZmRlZnMuCisg
ICAgICAgIEFsbCBwbGF0Zm9ybXMgdGhhdCB0cmFuc2ZlciBwaXhlbHMgd291bGQgbmVlZCB0byBo
YXZlIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuCisgICAgICAgIFRoaXMgaXMgbWVk
aWEgc3RyZWFtIHNwZWNpZmljIGNvZGUsIHNvIGFkZCBNRURJQV9TVFJFQU0gaWZkZWZzLgorCisg
ICAgICAgIFRvIGJlIGNvbnNpc3RlbnQgd2l0aCBleGlzdGluZyBHUFVQIHNpZGUgY29kZSwgZG8g
bm90IHVzZSAicmVtb3RlIiBwcmVmaXggb24gdGhlCisgICAgICAgIHZhcmlhYmxlIG5hbWVzLiBF
LmcuIHVzZSAidmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSIgdG8gcmVmZXIgdG8gdGhlIHByb3h5
LiBUaGUgcmVtb3RlIHBhcnQKKyAgICAgICAgaXMgcmVkdW5kYW50LCBhcyB0aGlzIGlzIGltcGxp
ZWQuCisKKyAgICAgICAgQ2xlYW4gdXAgcmVsYXRlZCBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnBp
eGVsQnVmZmVyKCkgZnVuY3Rpb24gdG8gbm90IHN0b3JlIHVubmVlZGVkIHNlbWFwaG9yZXMKKyAg
ICAgICAgYXMgaW5zdGFuY2UgdmFyaWFibGVzIG9yIHVzZSBkdXBsaWNhdGUgaGVscGVyIGZ1bmN0
aW9ucy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGEgcmVmYWN0b3IuCisKKyAgICAgICAgKiBH
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxh
eWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjp2aWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5OjpwYWludENvbXBvc2l0ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlJlbW90ZVZpZGVvRnJhbWVQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cGl4ZWxCdWZmZXIgY29uc3QpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uT25N
YWluVGhyZWFkV2l0aExvY2spOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENDb2RlY3M6OmNv
bXBsZXRlZERlY29kaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnNldFZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKToKKwogMjAyMi0wMi0xNiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgRmlsZVN5c3RlbTo6cmVhZEVudGlyZUZpbGUgZXZlcnl3aGVyZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNw
cAppbmRleCBjNzJkYTdhMzRhMWE3MzhhYTkyMGYwNWQ1N2NmOWM0ZTE1OTU2NTg0Li40NGE4Y2Uw
YmFmZjljMzA2NWM1ZDU0ZTE1OGRjOWEwMTFlNGQyMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtNDUsNyAr
NDUsNiBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3Rvcnku
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCIKICNpbmNsdWRlICJSZW1v
dGVSZW1vdGVDb21tYW5kTGlzdGVuZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJlbW90ZVZpZGVv
RnJhbWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCIKQEAgLTc4
LDYgKzc3LDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpbmNsdWRl
ICJSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlk
ZW9GcmFtZVByb3h5LmgiCiAjZW5kaWYKIApAQCAtMTY0LDEyICsxNjQsMTQgQEAgdm9pZCBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6cmVzZXRBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVy
bmFsVW5pdChBdWRpb00KIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hdWRpb01lZGlh
U3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIoKS5yZXNldChpZGVudGlmaWVy
KTsKIH0KKyNlbmRpZgogCi1SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6cmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpCisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKK1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmIEdQVVBy
b2Nlc3NDb25uZWN0aW9uOjp2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkKIHsKLSAgICBpZiAo
IW1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSkKLSAgICAgICAgbV9yZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eTo6
Y3JlYXRlKCp0aGlzKTsKLSAgICByZXR1cm4gKm1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eTsKKyAgICBpZiAoIW1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSkKKyAgICAgICAgbV92
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eTo6Y3JlYXRlKCp0aGlzKTsKKyAgICByZXR1cm4gKm1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggODEzYTA1NDY5NzJjYzMyYWQ2MmFjOWZhMjhkMTFl
NTRjYTVmZWY2OC4uOWVhY2U2YmI3OWE3NmI3NTkyZWIzOWYyMmE2YmFlYjExNTJlZTUxZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24uaApAQCAtNTEsMTMgKzUxLDE2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1v
dGVBdWRpb1NvdXJjZVByb3ZpZGVyTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjsKLWNsYXNzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk7CiBjbGFzcyBTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyOwogY2xhc3MgV2ViUGFnZTsKIHN0cnVjdCBHUFVQ
cm9jZXNzQ29ubmVjdGlvbkluaXRpYWxpemF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBPdmVycmlk
ZVNjcmVlbkRhdGFGb3JUZXN0aW5nOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7
CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorY2xhc3MgUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eTsKKyNlbmRpZgorCiBjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbiA6IHB1Ymxp
YyBSZWZDb3VudGVkPEdQVVByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPEdQVVByb2Nlc3NDb25uZWN0aW9u
PiBjcmVhdGUoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBHUFVQcm9jZXNzQ29ubmVjdGlvbkluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKQEAgLTc4LDcgKzgxLDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFn
ZXImIHNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKICAgICB2b2lkIHJlc2V0QXVk
aW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXQoQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRJZGVudGlmaWVyKTsKLSAgICBSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5JiByZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCk7CisjZW5k
aWYKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHkmIHZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKTsKICNlbmRpZgogCiAgICAgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtZWRpYVBsYXllck1hbmFnZXIoKTsKQEAgLTE0Miw3ICsx
NDcsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
ck1hbmFnZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKLSAgICBSZWZQdHI8
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4gbV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5OworI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBSZWZQdHI8
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFBy
b3h5OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShXRUJfQVVESU8pCiAg
ICAgUmVmUHRyPFJlbW90ZUF1ZGlvU291cmNlUHJvdmlkZXJNYW5hZ2VyPiBtX2F1ZGlvU291cmNl
UHJvdmlkZXJNYW5hZ2VyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eS5j
cHAKaW5kZXggN2FhNjQwNjRhYzQwODI2MTgzMDQ1NmI1MjVhNGY3OTU3ZDVmMTQyZC4uYzg5NmFi
N2ZkYmI2ZjI4OGNlM2M2MjQyZTRlYjBkZWZmZGM0MDUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHkuY3BwCkBAIC0xNzgsMTUgKzE3OCw3IEBAIFJlZlB0cjxXZWJD
b3JlOjpNZWRpYVNhbXBsZT4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eTo6cGFpbnRDb21w
b3NpdGVkUmVzdWx0CiAgICAgfQogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUobV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLCBXVEZNb3ZlKCpyZXN1bHQpLAotI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgICAgICBbcHJveHkgPSBSZWYgeyBtX2dwdVByb2Nlc3NDb25uZWN0aW9u
LT5yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkgfV0oYXV0byYgZnJhbWUsIGF1dG8m
JiBjYWxsYmFjaykgewotICAgICAgICAgICAgcHJveHktPmdldFZpZGVvRnJhbWVCdWZmZXIoZnJh
bWUsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfQotI2Vsc2UKLSAgICAgICAgW2F1dG8m
IGZyYW1lLCBhdXRvJiYgY2FsbGJhY2tdIHsgY2FsbGJhY2soKTsgfQotI2VuZGlmCi0gICAgKTsK
KyAgICByZXR1cm4gUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUobV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi0+Y29ubmVjdGlvbigpLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT52aWRlb0ZyYW1l
T2JqZWN0SGVhcFByb3h5KCksIFdURk1vdmUoKnJlc3VsdCkpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFt
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlk
ZW9GcmFtZVByb3h5LmNwcAppbmRleCA2YmViMGY4YmRiODk5NjQ2MTBmMDFlNGVlNDA3NzE2N2Vm
MTJjMzY3Li5mZDJlMTViOWVmNThkMmExOWIwOTA4OTMxZjdlZDVmNTE4ZmJkYTBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVW
aWRlb0ZyYW1lUHJveHkuY3BwCkBAIC0yOSw4ICsyOSwxMyBAQAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmg+CiAKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhvcmUuaD4K
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQ
cm9wZXJ0aWVzIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cHJvcGVydGllcyhXZWJLaXQ6OlJlbW90
ZVZpZGVvRnJhbWVSZWZlcmVuY2UmJiByZWZlcmVuY2UsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlJiBtZWRpYVNhbXBsZSkKQEAgLTQ1LDkgKzUwLDkgQEAgUmVtb3RlVmlkZW9GcmFtZVByb3h5
OjpQcm9wZXJ0aWVzIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cHJvcGVydGllcyhXZWJLaXQ6OlJl
bW8KICAgICB9OwogfQogCi1SZWY8UmVtb3RlVmlkZW9GcmFtZVByb3h5PiBSZW1vdGVWaWRlb0Zy
YW1lUHJveHk6OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb3BlcnRpZXMg
cHJvcGVydGllcywgUGl4ZWxCdWZmZXJDYWxsYmFjayYmIGNhbGxiYWNrKQorUmVmPFJlbW90ZVZp
ZGVvRnJhbWVQcm94eT4gUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5JiB2aWRlb0Zy
YW1lT2JqZWN0SGVhcFByb3h5LCBQcm9wZXJ0aWVzJiYgcHJvcGVydGllcykKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVWaWRlb0ZyYW1lUHJveHkoY29ubmVjdGlvbiwgV1RGTW92
ZShwcm9wZXJ0aWVzKSwgV1RGTW92ZShjYWxsYmFjaykpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBSZW1vdGVWaWRlb0ZyYW1lUHJveHkoY29ubmVjdGlvbiwgdmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eSwgV1RGTW92ZShwcm9wZXJ0aWVzKSkpOwogfQogCiBzdGF0aWMgdm9pZCByZWxlYXNl
UmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3Qg
UmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlJiByZWZlcmVuY2UpCkBAIC02MCw3ICs2NSw3
IEBAIHZvaWQgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpyZWxlYXNlVW51c2VkKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgUHJvcGVydGllCiAgICAgcmVsZWFzZVJlbW90ZVZpZGVvRnJhbWVQ
cm94eShjb25uZWN0aW9uLCB7IHsgcHJvcGVydGllcy5yZWZlcmVuY2UuaWRlbnRpZmllcigpLCBw
cm9wZXJ0aWVzLnJlZmVyZW5jZS52ZXJzaW9uKCkgfSwgMCB9KTsKIH0KIAotUmVtb3RlVmlkZW9G
cmFtZVByb3h5OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHkoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBQcm9wZXJ0aWVzIHByb3BlcnRpZXMsIFBpeGVsQnVmZmVyQ2FsbGJhY2smJiBjYWxsYmFj
aykKK1JlbW90ZVZpZGVvRnJhbWVQcm94eTo6UmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSYgdmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eSwgUHJvcGVydGllcyYmIHByb3BlcnRpZXMpCiAgICAgOiBt
X2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAsIG1fcmVmZXJlbmNlVHJhY2tlcihwcm9wZXJ0
aWVzLnJlZmVyZW5jZSkKICAgICAsIG1fcHJlc2VudGF0aW9uVGltZShwcm9wZXJ0aWVzLnByZXNl
bnRhdGlvblRpbWUpCkBAIC02OCw3ICs3Myw3IEBAIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UmVt
b3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUHJvcGVyCiAg
ICAgLCBtX3JvdGF0aW9uKHByb3BlcnRpZXMucm90YXRpb24pCiAgICAgLCBtX3NpemUocHJvcGVy
dGllcy5zaXplKQogICAgICwgbV9waXhlbEZvcm1hdChwcm9wZXJ0aWVzLnBpeGVsRm9ybWF0KQot
ICAgICwgbV9waXhlbEJ1ZmZlckNhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQorICAgICwgbV92
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCZ2aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KQogewog
fQogCkBAIC0xMjMsMjUgKzEyOCwyMiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhU2Ft
cGxlVmlkZW9GcmFtZT4gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojp2aWRlb0ZyYW1lKAogfQogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6Z2V0UGl4ZWxC
dWZmZXIoKQotewotICAgIEFTU0VSVChtX3BpeGVsQnVmZmVyTG9jay5pc0hlbGQoKSk7Ci0gICAg
c3RkOjpleGNoYW5nZShtX3BpeGVsQnVmZmVyQ2FsbGJhY2ssIHsgfSkoKnRoaXMsIFt0aGlzXShh
dXRvIHBpeGVsQnVmZmVyKSB7Ci0gICAgICAgIG1fcGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVs
QnVmZmVyKTsKLSAgICAgICAgaWYgKCFtX3BpeGVsQnVmZmVyKSB7Ci0gICAgICAgICAgICAvLyBz
b21lIGNvZGUgcGF0aHMgZG8gbm90IGxpa2UgZW1wdHkgcGl4ZWwgYnVmZmVycy4KLSAgICAgICAg
ICAgIG1fcGl4ZWxCdWZmZXIgPSBXZWJDb3JlOjpjcmVhdGVCbGFja1BpeGVsQnVmZmVyKHN0YXRp
Y19jYXN0PHNpemVfdD4obV9zaXplLndpZHRoKCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fc2l6
ZS5oZWlnaHQoKSkpOwotICAgICAgICB9Ci0gICAgICAgIG1fc2VtYXBob3JlLnNpZ25hbCgpOwot
ICAgIH0pOwotICAgIG1fc2VtYXBob3JlLndhaXQoKTsKLX0KLQogQ1ZQaXhlbEJ1ZmZlclJlZiBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnBpeGVsQnVmZmVyKCkgY29uc3QKIHsKICAgICBMb2NrZXIg
bG9jayhtX3BpeGVsQnVmZmVyTG9jayk7Ci0gICAgaWYgKCFtX3BpeGVsQnVmZmVyICYmIG1fcGl4
ZWxCdWZmZXJDYWxsYmFjaykKLSAgICAgICAgY29uc3RfY2FzdDxSZW1vdGVWaWRlb0ZyYW1lUHJv
eHkqPih0aGlzKS0+Z2V0UGl4ZWxCdWZmZXIoKTsKKyAgICBpZiAoIW1fcGl4ZWxCdWZmZXIgJiYg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KSB7CisgICAgICAgIEJpbmFyeVNlbWFwaG9yZSBz
ZW1hcGhvcmU7CisgICAgICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS0+Z2V0VmlkZW9G
cmFtZUJ1ZmZlcigqdGhpcywgW3RoaXMsICZzZW1hcGhvcmVdKGF1dG8gcGl4ZWxCdWZmZXIpIHsK
KyAgICAgICAgICAgIG1fcGl4ZWxCdWZmZXIgPSBXVEZNb3ZlKHBpeGVsQnVmZmVyKTsKKyAgICAg
ICAgICAgIGlmICghbV9waXhlbEJ1ZmZlcikgeworICAgICAgICAgICAgICAgIC8vIFNvbWUgY29k
ZSBwYXRocyBkbyBub3QgbGlrZSBlbXB0eSBwaXhlbCBidWZmZXJzLgorICAgICAgICAgICAgICAg
IG1fcGl4ZWxCdWZmZXIgPSBXZWJDb3JlOjpjcmVhdGVCbGFja1BpeGVsQnVmZmVyKHN0YXRpY19j
YXN0PHNpemVfdD4obV9zaXplLndpZHRoKCkpLCBzdGF0aWNfY2FzdDxzaXplX3Q+KG1fc2l6ZS5o
ZWlnaHQoKSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgp
OworICAgICAgICB9KTsKKyAgICAgICAgc2VtYXBob3JlLndhaXQoKTsKKyAgICAgICAgbV92aWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5ID0gbnVsbHB0cjsKKyAgICB9CiAgICAgcmV0dXJuIG1fcGl4
ZWxCdWZmZXIuZ2V0KCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVQcm94eS5oCmluZGV4IDM0MDBi
NjdhYWUzZGFlZDUxYTU1NDJjNzNjZGIyMGYxZWRmNGFhMjEuLjBhZjk0ZWEzZjJmNTEyYWQ5MmVl
ZGVhN2FiNDU2MGQ1ODNhZGY1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lUHJveHkuaApAQCAtMzAsOCArMzAs
NiBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
VmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1ZpZGVvRnJhbWUuaD4K
LSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlT
ZW1hcGhvcmUuaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBDb25uZWN0aW9uOwpAQCAtNDEs
NiArMzksNyBAQCBjbGFzcyBEZWNvZGVyOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQ
VVByb2Nlc3NDb25uZWN0aW9uOworY2xhc3MgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eTsKIAogLy8gQSBXZWJDb3JlOjpWaWRlb0ZyYW1lIGNsYXNzIHRoYXQgcG9pbnRzIHRvIGEgY29u
Y3JldGUgV2ViQ29yZTo6VmlkZW9GcmFtZSBpbnN0YW5jZQogLy8gaW4gYW5vdGhlciBwcm9jZXNz
LCBHUFUgcHJvY2Vzcy4KQEAgLTY0LDE1ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBQ
cm9wZXJ0aWVzIHByb3BlcnRpZXMoV2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUmVmZXJlbmNlJiYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2FtcGxlJik7CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICB1c2luZyBQaXhlbEJ1ZmZlclJlc3VsdENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJik+OwotI2Vsc2UKLSAgICB1c2luZyBQaXhlbEJ1ZmZlclJl
c3VsdENhbGxiYWNrID0gRnVuY3Rpb248dm9pZCgpPjsKLSNlbmRpZgotICAgIC8vIFBpeGVsQnVm
ZmVyQ2FsbGJhY2sgc2hvdWxkIGFsd2F5cyBjb21wbGV0ZSBidXQgaXQgbWlnaHQgbm90IGJlIGNh
bGxlZCBvbiB0aGUgc2FtZSB0aHJlYWQgaXQgd2FzIGNyZWF0ZWQuCi0gICAgdXNpbmcgUGl4ZWxC
dWZmZXJDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoY29uc3QgUmVtb3RlVmlkZW9GcmFtZVByb3h5
JiwgUGl4ZWxCdWZmZXJSZXN1bHRDYWxsYmFjayYmKT47Ci0KLSAgICBzdGF0aWMgUmVmPFJlbW90
ZVZpZGVvRnJhbWVQcm94eT4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbiYsIFByb3BlcnRpZXMsIFBp
eGVsQnVmZmVyQ2FsbGJhY2smJik7CisgICAgc3RhdGljIFJlZjxSZW1vdGVWaWRlb0ZyYW1lUHJv
eHk+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mLCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFBy
b3h5JiwgUHJvcGVydGllcyYmKTsKIAogICAgIC8vIENhbGxlZCBieSB0aGUgZW5kLXBvaW50cyB0
aGF0IGNhcHR1cmUgY3JlYXRpb24gbWVzc2FnZXMgdGhhdCBhcmUgc2VudCBmcm9tIEdQVVAgYnV0
CiAgICAgLy8gd2hvc2UgZGVzdGluYXRpb25zIHdlcmUgcmVsZWFzZWQgaW4gV1AgYmVmb3JlIG1l
c3NhZ2Ugd2FzIHByb2Nlc3NlZC4KQEAgLTkxLDcgKzgyLDcgQEAgcHVibGljOgogI2VuZGlmCiAK
IHByaXZhdGU6Ci0gICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5KElQQzo6Q29ubmVjdGlvbiYsIFBy
b3BlcnRpZXMsIFBpeGVsQnVmZmVyQ2FsbGJhY2smJik7CisgICAgUmVtb3RlVmlkZW9GcmFtZVBy
b3h5KElQQzo6Q29ubmVjdGlvbiYsIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkmLCBQ
cm9wZXJ0aWVzJiYpOwogCiAgICAgLy8gV2ViQ29yZTo6VmlkZW9GcmFtZSBvdmVycmlkZXMuCiAg
ICAgTWVkaWFUaW1lIHByZXNlbnRhdGlvblRpbWUoKSBjb25zdCBmaW5hbDsKQEAgLTEwNCwxMCAr
OTUsNiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBsYXRmb3JtU2FtcGxlIHBsYXRmb3JtU2Ft
cGxlKCkgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6UGxhdGZvcm1TYW1wbGU6OlR5cGUgcGxh
dGZvcm1TYW1wbGVUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gV2ViQ29yZTo6UGxhdGZvcm1T
YW1wbGU6OlJlbW90ZVZpZGVvRnJhbWVQcm94eVR5cGU7IH0KIAotI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIHZvaWQgZ2V0UGl4ZWxCdWZmZXIoKTsKLSNlbmRpZgotCiAgICAgY29uc3QgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlbW90ZVZpZGVvRnJhbWVSZWZlcmVu
Y2VUcmFja2VyIG1fcmVmZXJlbmNlVHJhY2tlcjsKICAgICBjb25zdCBNZWRpYVRpbWUgbV9wcmVz
ZW50YXRpb25UaW1lOwpAQCAtMTE1LDEwICsxMDIsMTIgQEAgcHJpdmF0ZToKICAgICBjb25zdCBW
aWRlb1JvdGF0aW9uIG1fcm90YXRpb247CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSBtX3Np
emU7CiAgICAgdWludDMyX3QgbV9waXhlbEZvcm1hdCB7IDAgfTsKKyAgICAvLyBGSVhNRTogUmVt
b3ZlIHRoaXMuCisgICAgbXV0YWJsZSBSZWZQdHI8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eT4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5OworI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIG11dGFibGUgTG9jayBtX3BpeGVsQnVmZmVyTG9jazsKLSAgICBSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKLSAgICBCaW5hcnlTZW1hcGhvcmUgbV9zZW1hcGhv
cmU7Ci0gICAgUGl4ZWxCdWZmZXJDYWxsYmFjayBtX3BpeGVsQnVmZmVyQ2FsbGJhY2s7CisgICAg
bXV0YWJsZSBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gbV9waXhlbEJ1ZmZlcjsKKyNlbmRp
ZgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBSZW1vdGVWaWRlb0ZyYW1l
UHJveHk6OlByb3BlcnRpZXM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVj
cy5jcHAKaW5kZXggYzY2ZmQxYTYwN2U5Yjg0N2EzNDgxNjM2YTlhZTE4N2M1YzZiMjc4YS4uZDA3
MGMyYjc5ZGY0MGNhY2I0MThmMDY3ODI2N2U0YzNiNGE1NDYxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTGliV2ViUlRDQ29kZWNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCkBA
IC0xODYsNyArMTg2LDcgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3M6OmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uT25NYWluVGhyZWFkV2l0aExvY2soKQogICAgIGF1dG8mIGdwdUNvbm5lY3Rpb24g
PSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwog
ICAgIGdwdUNvbm5lY3Rpb24uYWRkQ2xpZW50KCp0aGlzKTsKICAgICBtX2Nvbm5lY3Rpb24gPSAm
Z3B1Q29ubmVjdGlvbi5jb25uZWN0aW9uKCk7Ci0gICAgbV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5ID0gJmdwdUNvbm5lY3Rpb24ucmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eSgpOworICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSA9ICZncHVDb25uZWN0aW9uLnZp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKTsKICAgICBtX2Nvbm5lY3Rpb24tPmFkZFRocmVhZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIHRoaXMpOwogCiAgICAgaWYgKG1fbG9nZ2luZ0xldmVsKQpAQCAtMzI3LDEzICszMjcs
NyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjczo6Y29tcGxldGVkRGVjb2RpbmcoUlRDRGVjb2Rlcklk
ZW50aWZpZXIgZGVjb2RlcklkZW50aWZpZXIsCiAgICAgaWYgKHJlbW90ZUZyYW1lSWRlbnRpZmll
cikgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jb25uZWN0aW9uTG9jayB9OwogICAgICAg
ICBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXMgcHJvcGVydGllcyB7IHsgKnJlbW90
ZUZyYW1lSWRlbnRpZmllciwgMCB9LCByZW1vdGVTYW1wbGUudGltZSgpLCByZW1vdGVTYW1wbGUu
bWlycm9yZWQoKSwgcmVtb3RlU2FtcGxlLnJvdGF0aW9uKCksIHJlbW90ZVNhbXBsZS5zaXplKCks
IHJlbW90ZVNhbXBsZS52aWRlb0Zvcm1hdCgpIH07Ci0gICAgICAgIHJlbW90ZVZpZGVvRnJhbWUg
PSBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OmNyZWF0ZSgqbV9jb25uZWN0aW9uLCBwcm9wZXJ0aWVz
LCBbcHJveHkgPSBtX3JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHldKGF1dG8mIGZyYW1l
LCBhdXRvJiYgY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGlmICghcHJveHkpIHsKLSAgICAgICAg
ICAgICAgICBjYWxsYmFjayh7IH0pOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHByb3h5LT5nZXRWaWRlb0ZyYW1lQnVmZmVyKGZyYW1lLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIH0pOworICAgICAgICByZW1vdGVWaWRlb0ZyYW1lID0g
UmVtb3RlVmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoKm1fY29ubmVjdGlvbiwgKm1fdmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eSwgV1RGTW92ZShwcm9wZXJ0aWVzKSk7CiAgICAgfQogICAgIC8vIEZJ
WE1FOiBEbyBlcnJvciBsb2dnaW5nLgogICAgIGF1dG8qIGRlY29kZXIgPSBtX2RlY29kZXJzLmdl
dChkZWNvZGVySWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5oCmluZGV4IDJlNDkxNjQwYjlmNzJmYmZiNGI5
YmU3MDlhMjhkZjIyYjY0YzBlNTAuLmY0MTM3YjIyMzM1ODFhNTQzODI1NDM3MGE3NjNlYjUyZTdl
MzI3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xp
YldlYlJUQ0NvZGVjcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRj
L0xpYldlYlJUQ0NvZGVjcy5oCkBAIC0xNTIsNyArMTUyLDcgQEAgcHJpdmF0ZToKIAogICAgIExv
Y2sgbV9jb25uZWN0aW9uTG9jazsKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb24gV1RGX0dVQVJERURfQllfTE9DSyhtX2Nvbm5lY3Rpb25Mb2NrKTsKLSAgICBSZWZQdHI8
UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4gbV9yZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcFByb3h5IFdURl9HVUFSREVEX0JZX0xPQ0sobV9jb25uZWN0aW9uTG9jayk7CisgICAgUmVm
UHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHk+IG1fdmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fY29ubmVjdGlvbkxvY2spOwogICAgIFZlY3Rv
cjxGdW5jdGlvbjx2b2lkKCk+PiBtX3Rhc2tzVG9EaXNwYXRjaEFmdGVyRXN0YWJsaXNoaW5nQ29u
bmVjdGlvbjsKIAogICAgIFJlZjxXb3JrUXVldWU+IG1fcXVldWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcFByb3h5LmgKaW5kZXggYmE0YTQ1NGMwYzg1Mzc1Y2UyNjFkMmYzMjBj
YWVlZmU1NzhlYTA3YS4uMTFiZGQxZjY1NjEyY2I2NjQ2MDAwMWM5MzU2MGRjZDE0MWQ5NzM2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkuaApAQCAtMjUsNyArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXBQcm94eVByb2Nlc3Nvci5oIgogCkBAIC0zNywxNSArMzcsMjAgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eT4gY3JlYXRlKEdQ
VVByb2Nlc3NDb25uZWN0aW9uJiBjb25uZWN0aW9uKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoY29ubmVjdGlvbikpOyB9CiAgICAgflJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoKSA9IGRlZmF1bHQ7CiAKKyNpZiBQTEFURk9STShD
T0NPQSkKICAgICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoY29uc3QgUmVtb3RlVmlkZW9GcmFt
ZVByb3h5JiBwcm94eSwgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcjo6
Q2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX3Byb2Nlc3Nvci0+Z2V0VmlkZW9GcmFtZUJ1ZmZlcihw
cm94eSwgV1RGTW92ZShjYWxsYmFjaykpOyB9CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KEdQVVByb2Nlc3NDb25uZWN0aW9u
JiBjb25uZWN0aW9uKQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgICAgICA6IG1fcHJvY2Vzc29y
KFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OmNyZWF0ZShjb25uZWN0
aW9uKSkKKyNlbmRpZgogICAgIHsKICAgICB9Ci0KKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBS
ZWY8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVByb2Nlc3Nvcj4gbV9wcm9jZXNzb3I7
CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5jcHAKaW5kZXggNTczMGRkNDI5YzIyZTkwZGEzNzIxY2IxMzY0MGNlNTYzM2RkMDJmNC4uZWFh
NjJlNjE1NGUyOTQ5MTI0MzRkMGRlMzJjNTQ1NTk1MmY5NzViOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1h
bmFnZXIuY3BwCkBAIC0xMzUsMTAgKzEzNSwxMCBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyOjpkaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubgog
ICAgIHNldENvbm5lY3Rpb24oY29ubmVjdGlvbik7CiB9CiAKLXZvaWQgUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXI6OnNldFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eSogcHJveHkpCit2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyOjpzZXRWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KFJlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwUHJveHkqIHByb3h5KQogewotICAgIExvY2tlciBsb2NrKG1fcmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eUxvY2spOwotICAgIG1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQ
cm94eSA9IHByb3h5OworICAgIExvY2tlciBsb2NrKG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eUxvY2spOworICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSA9IHByb3h5OwogfQogCiB2
b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpkaXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9u
PHZvaWQoKT4mJiBjYWxsYmFjaykKQEAgLTE2NiwxNiArMTY2LDkgQEAgdm9pZCBSZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcjo6dmlkZW9TYW1wbGVBdmFpbGFibGUoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWYKICAgICAvLyBXZSBhbHdheXMgY3JlYXRlIFJlbW90ZVZpZGVvRnJhbWVQcm94eSBz
byB0aGF0IHdlIGNhbiByZWxlYXNlIHRoZSBjb3JyZXNwb25kaW5nIEdQVVByb2Nlc3MgSU9TdXJm
YWNlIHJpZ2h0IGF3YXkgaWYgdGhlcmUgaXMgbm8gdmlkZW8gc291cmNlLgogICAgIGlmIChyZW1v
dGVJZGVudGlmaWVyKSB7CiAgICAgICAgIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGll
cyBwcm9wZXJ0aWVzIHsgeyAqcmVtb3RlSWRlbnRpZmllciwgMCB9LCBzYW1wbGUudGltZSgpLCBz
YW1wbGUubWlycm9yZWQoKSwgc2FtcGxlLnJvdGF0aW9uKCksIHNhbXBsZS5zaXplKCksIHNhbXBs
ZS52aWRlb0Zvcm1hdCgpIH07Ci0gICAgICAgIAogICAgICAgICAvLyBGSVhNRTogV2UgbmVlZCB0
byBlaXRoZXIgZ2V0IEdQVVByb2Nlc3Mgb3IgVUlQcm9jZXNzIG9iamVjdCBoZWFwIHByb3h5LiBG
b3Igbm93IHdlIGFsd2F5cyBnbyB0byBHUFVQcm9jZXNzLgotICAgICAgICBMb2NrZXIgbG9jayht
X3JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlMb2NrKTsKLSAgICAgICAgdmlkZW9GcmFt
ZSA9IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6Y3JlYXRlKCptX2Nvbm5lY3Rpb24sIHByb3BlcnRp
ZXMsIFtwcm94eSA9IG1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eV0oYXV0byYgZnJh
bWUsIGF1dG8mJiBjYWxsYmFjaykgewotICAgICAgICAgICAgaWYgKCFwcm94eSkgewotICAgICAg
ICAgICAgICAgIGNhbGxiYWNrKHsgfSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcHJveHktPmdldFZpZGVvRnJhbWVCdWZmZXIoZnJhbWUsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKLSAgICAgICAgfSk7CisgICAgICAgIExvY2tlciBsb2NrKG1fdmlk
ZW9GcmFtZU9iamVjdEhlYXBQcm94eUxvY2spOworICAgICAgICB2aWRlb0ZyYW1lID0gUmVtb3Rl
VmlkZW9GcmFtZVByb3h5OjpjcmVhdGUoKm1fY29ubmVjdGlvbiwgKm1fdmlkZW9GcmFtZU9iamVj
dEhlYXBQcm94eSwgV1RGTW92ZShwcm9wZXJ0aWVzKSk7CiAgICAgfQogCiAgICAgYXV0byBpdGVy
YXRvciA9IG1fdmlkZW9Tb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5oCmluZGV4IGJmMWRhOWRkY2U4MDE0MDk4YjVhMjVhYmY1NDc0NTg0MDUxNzJhM2MuLjRmYTE4
YjQwNGVmMWYxNzE3YWJmYjE5OTY5OWM2MTlhMzljZGUwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdl
ci5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGRpZFVwZGF0
ZVNvdXJjZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKik7Ci0gICAgdm9pZCBzZXRSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkq
KTsKKyAgICB2b2lkIHNldFZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoUmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eSopOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIApAQCAtMTI0LDggKzEyNCw4IEBAIHByaXZhdGU6
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvPj4gbV9hdWRpb1NvdXJjZXM7CiAgICAgSGFzaE1hcDxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJl
bW90ZVZpZGVvPj4gbV92aWRlb1NvdXJjZXM7CiAKLSAgICBMb2NrIG1fcmVtb3RlVmlkZW9GcmFt
ZU9iamVjdEhlYXBQcm94eUxvY2s7Ci0gICAgUmVmUHRyPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwUHJveHk+IG1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fcmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eUxvY2spOworICAgIExvY2sg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5TG9jazsKKyAgICBSZWZQdHI8UmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eT4gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5IFdURl9HVUFS
REVEX0JZX0xPQ0sobV92aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5TG9jayk7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IGM1ZmY3MjU3NDc2ODZi
ZTkxYmNjOThkZjI0MjY3MmUyNDIwYzllYjUuLjE4OGY0MTJmNjJlZmI4NDBkYWUyMDk1ZTQ4NmJi
OTQ1M2IzY2JlODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmgiCisjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eS5oIgogI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC0yNDMsNyArMjQ0
LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVv
RmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28KICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3Vy
Y2VPckVycm9yIHsgIlZpZGVvIGNhcHR1cmUgaW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50
ZWQiX3MgfTsKICNlbmRpZgogICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0g
ICAgICAgIG1fbWFuYWdlci5tX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLnNldFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwUHJveHkoJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQ
VVByb2Nlc3NDb25uZWN0aW9uKCkucmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eSgpKTsK
KyAgICAgICAgbV9tYW5hZ2VyLm1fcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuc2V0VmlkZW9G
cmFtZU9iamVjdEhlYXBQcm94eSgmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKS52aWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5KCkpOwogCiAgICAgYm9v
bCBzaG91bGRVc2VJT1N1cmZhY2UgPSAhbV9tYW5hZ2VyLm1fc2hvdWxkVXNlR1BVUHJvY2Vzc1Jl
bW90ZUZyYW1lczsKICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2VzcyksIHNob3VsZFVzZUlPU3VyZmFjZSkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>