<?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>238412</bug_id>
          
          <creation_ts>2022-03-26 03:12:34 -0700</creation_ts>
          <short_desc>Use unary static_assert</short_desc>
          <delta_ts>2022-03-28 16:11:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>macpherson</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855363</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-26 03:12:34 -0700</bug_when>
    <thetext>Use unary static_assert</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855364</commentid>
    <comment_count>1</comment_count>
      <attachid>455838</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-26 03:13:41 -0700</bug_when>
    <thetext>Created attachment 455838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855365</commentid>
    <comment_count>2</comment_count>
      <attachid>455839</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-26 03:15:46 -0700</bug_when>
    <thetext>Created attachment 455839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855367</commentid>
    <comment_count>3</comment_count>
      <attachid>455839</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-03-26 03:25:25 -0700</bug_when>
    <thetext>Comment on attachment 455839
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855388</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-26 07:42:28 -0700</bug_when>
    <thetext>Committed r291937 (248908@main): &lt;https://commits.webkit.org/248908@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455839.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855389</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-26 07:43:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/90876993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855826</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-28 16:11:52 -0700</bug_when>
    <thetext>This is a nice little cleanup. Should also look for uses of static_assert that have non-helpful strings, like just repeating the expression.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455838</attachid>
            <date>2022-03-26 03:13:41 -0700</date>
            <delta_ts>2022-03-26 03:15:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238412-20220326031340.patch</filename>
            <type>text/plain</type>
            <size>83276</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Y2IxNGFmZWY1YmQ1MDY1ODdjZmVjODI4ZGZkZGI5MDQ3NTI5OGM3Li5iYWIxOTc3NmJiZmVkY2Yy
OWE4OTMxMGIzNzQ3Zjg3M2YyMTY2MzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OSBAQAorMjAyMi0wMy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSB1bmFyeSBzdGF0aWNfYXNzZXJ0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg0MTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIGBzdGF0aWNfYXNzZXJ0KC4uLiwg
IiIpO2Agd2l0aCBgc3RhdGljX2Fzc2VydCguLi4pO2AKKworICAgICAgICAqIGFzc2VtYmxlci9B
Uk02NEFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGlua0p1bXBP
ckNhbGwpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6cmVsaW5rSnVtcE9yQ2FsbCk6
CisgICAgICAgICogYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
c3NlbWJsZXJCdWZmZXI6OnB1dEludGVncmFsVW5jaGVja2VkKToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmg6CisgICAgICAgICogYnl0ZWNvZGUvQWRhcHRpdmVJ
bmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L0FycmF5UHJvZmlsZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9ja0hhc2guY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2tIYXNoOjpDb2RlQmxvY2tIYXNoKToKKyAgICAgICAgKiBi
eXRlY29kZS9QYXJzZUhhc2guY3BwOgorICAgICAgICAoSlNDOjpQYXJzZUhhc2g6OlBhcnNlSGFz
aCk6CisgICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5oOgorICAgICAgICAqIGRmZy9ERkdO
b2RlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkpTQ19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0
bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlQXJyYXlQdXNoKToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6bGxpbnRCYXNlbGluZUNhbGxlZVNhdmVSZWdpc3Rl
cnMpOgorICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6ZGZnQ2FsbGVlU2F2ZVJlZ2lzdGVycyk6
CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0OjpmdGxDYWxsZWVTYXZlUmVnaXN0ZXJzKToKKyAg
ICAgICAgKiBydW50aW1lL0NhY2hlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVk
Qnl0ZWNvZGU6OmNvbW1pdFVwZGF0ZXMgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvQ2xvbmVk
QXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9EaXJlY3RBcmd1bWVudHMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0RpcmVjdEV2YWxFeGVjdXRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9F
cnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9JbmRpcmVjdEV2YWxFeGVjdXRh
YmxlLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTTGV4aWNh
bEVudmlyb25tZW50Lmg6CisgICAgICAgIChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50OjpzdWJz
cGFjZUZvcik6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6
OkpTUm9wZVN0cmluZzo6Um9wZUJ1aWxkZXI8UmVjb3JkT3ZlcmZsb3c+OjpleHBhbmQpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUZ1bmN0
aW9uLmg6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6Ompz
U3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAqIHJ1
bnRpbWUvU2NvcGVkQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1bWVu
dHNUYWJsZS5jcHA6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5QWRhcHRvcnMuaDoKKyAg
ICAgICAgKEpTQzo6SW50ZWdyYWxUeXBlZEFycmF5QWRhcHRvcjo6dG9KU1ZhbHVlKToKKyAgICAg
ICAgKiBydW50aW1lL1R5cGVkQXJyYXlUeXBlLmg6CisgICAgICAgICogcnVudGltZS9XZWFrTWFw
SW1wbC5oOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZENhbGxJbmRpcmVjdCk6CisgICAgICAgIChK
U0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tzRm9yTW9kT3JEaXYpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdE1vZE9yRGl2KToKKyAgICAgICAgKiB5
YXJyL1lhcnJJbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVy
OjpEaXNqdW5jdGlvbkNvbnRleHQ6OmFsbG9jYXRpb25TaXplKToKKyAgICAgICAgKEpTQzo6WWFy
cjo6SW50ZXJwcmV0ZXI6OlBhcmVudGhlc2VzRGlzanVuY3Rpb25Db250ZXh0OjphbGxvY2F0aW9u
U2l6ZSk6CisKIDIwMjItMDMtMjUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBbSlNDXSBDbGVhbiB1cCBEYXRhSUMgcG9seW1vcnBoaWMgY2FsbCBjb2RlIGZv
ciBPcHRpbWl6aW5nQ2FsbExpbmtJbmZvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ3ZjIwNGU5YmM0NTc0YzQyMjQ1NzE2MWE1
MGI2NTEwYzgzNmNiNWUuLjY2YzVhNWRlMzE1MDAyYjdhNGQwMzY4Mzg1YzExMDA0Y2RlZTY4ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdW5hcnkgc3RhdGljX2Fzc2VydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDEyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQ29tcGFjdFBvaW50
ZXJUdXBsZS5oOgorICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmg6CisgICAgICAgICogd3RmL0Z1
bmN0aW9uVHJhaXRzLmg6CisgICAgICAgIChXVEY6OnNsb3RzRm9yQ0NhbGxBcmd1bWVudCk6Cisg
ICAgICAgICogd3RmL0ludDEyOC5jcHA6CisgICAgICAgICogd3RmL01hbGxvY1B0ci5oOgorICAg
ICAgICAqIHd0Zi9NYXJrYWJsZS5oOgorICAgICAgICAoV1RGOjpzdGQ6OnVuZGVybHlpbmdfdHlw
ZTxFbnVtVHlwZT46OnR5cGU+OjptYXgpOgorICAgICAgICAqIHd0Zi9QdHJUYWcuaDoKKyAgICAg
ICAgKFdURjo6dGFnSW50KToKKyAgICAgICAgKiB3dGYvU2Vjb25kcy5oOgorICAgICAgICAqIHd0
Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAgICAgKFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZik6Cisg
ICAgICAgICogd3RmL1N5c3RlbUZyZWUuaDoKKyAgICAgICAgKiB3dGYvVW5hbGlnbmVkQWNjZXNz
Lmg6CisgICAgICAgIChXVEY6OnVuYWxpZ25lZExvYWQpOgorICAgICAgICAoV1RGOjp1bmFsaWdu
ZWRTdG9yZSk6CisgICAgICAgICogd3RmL1VuaXF1ZUFycmF5Lmg6CisgICAgICAgIChXVEY6Om1h
a2VVbmlxdWVBcnJheSk6CisgICAgICAgICogd3RmL1dURkFzc2VydGlvbnMuY3BwOgorICAgICAg
ICAqIHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg6CisgICAgICAgIChXVEY6OnRyeU1ha2VT
dHJpbmdGcm9tQWRhcHRlcnMpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAg
ICAgICAgKiB3dGYvdGV4dC9TeW1ib2xJbXBsLmg6CisKIDIwMjItMDMtMjUgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgU3RyaW5nVmlldzo6c3BsaXQoKSBp
bnN0ZWFkIG9mIFN0cmluZzo6c3BsaXQoKSBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRk
ZDQwNTdmNDgwMjcxZGQ4NzYwZTgwNmRmZjA5NTlmNTdkNjE4MTAuLjk0MzY0MDYxOTkxZWJiY2Fk
MTQ3MmIzODA0YmQwYmZjZTIxODAxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAy
Mi0wMy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFVz
ZSB1bmFyeSBzdGF0aWNfYXNzZXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzg0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMv
ZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5oOgorICAgICAgICAqIGNzcy9ET01NYXRy
aXguaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRl
QWRkU3R5bGVSZWxhdGlvbik6CisgICAgICAgICogZG9tL0RPTVBvaW50Lmg6CisgICAgICAgICog
ZG9tL0RPTVJlY3QuaDoKKyAgICAgICAgKiBodG1sL0hUTUxBbGxDb2xsZWN0aW9uLmg6CisgICAg
ICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5oOgorICAgICAgICAqIGh0bWwvdHJhY2sv
VmlkZW9UcmFja0xpc3QuaDoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVJdGVtLmNwcDoKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVUZXh0SXRlbS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vS2V5ZWRDb2Rp
bmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OktleWVkRGVjb2Rlcjo6ZGVjb2RlQnl0ZXMpOgorICAg
ICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0Lmg6CisKIDIwMjItMDMtMjUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSAvIE9wdGlt
aXplIEpTTm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDZlZGQxMmZkODA5NTFiOTg5YjMxNjgzYmRjNGMxYTI3ZjIxNGU4ZmMuLmZiN2E2MTE5NjBlZWI4
YjU5ZDVjODM2NDVkMDliNWY3NDI2ZjVhODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjItMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgdW5hcnkgc3RhdGljX2Fzc2VydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4NDEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uY3BwOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SGlzdG9yeUVudHJ5RGF0YUVuY29kZXI6OmVuY29kZUFyaXRobWV0aWNUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6SGlzdG9yeUVudHJ5RGF0YURlY29kZXI6OmRlY29kZUFyaXRo
bWV0aWNUeXBlKToKKwogMjAyMi0wMy0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFw
cGxlLmNvbT4KIAogICAgICAgICBUZW1wb3JhcmlseSBkaXNhYmxlIGFzc2VydGlvbiBpbiBNZXNz
YWdlUmVjZWl2ZVF1ZXVlTWFwOjphZGRJbXBsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9j
L0NoYW5nZUxvZyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwppbmRleCBhNDUzZjM3NzE5ZDgz
ZTBjNGU0MWI1N2I3N2JjMGZhY2FiOTMxMDBhLi5jNjg4ZWMxYWM3MGRhNmNjMGRjMmI3ODYwMzRl
MTQzYWNlM2YxYmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDMtMjYgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdW5hcnkgc3Rh
dGljX2Fzc2VydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM4NDEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBibWFsbG9jL0FsZ29yaXRobS5oOgorICAgICAgICAoYm1hbGxvYzo6aXNQb3dlck9mVHdv
KToKKyAgICAgICAgKiBibWFsbG9jL0dpZ2FjYWdlLmg6CisgICAgICAgICogYm1hbGxvYy9Jc29I
ZWFwSW1wbC5oOgorCiAyMDIyLTAzLTIxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRHVzdCBvZmYgTWFjIENNYWtlIGJ1aWxkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKaW5kZXggNmU5
MWQ5MjMwYTM5Y2U1NzhkZTdmYTc2NWFjYmRkZTMyNTMzMDkyMS4uMDU4ZjMxNTM4OTY0Yjg0NWRl
YTFhYzcxMmYxYzgyOTEzZWZiNGJhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaApAQCAtMzEyMyw3ICszMTIzLDcgQEAgY2xhc3MgQVJN
NjRBc3NlbWJsZXIgewogICAgIHRlbXBsYXRlPEJyYW5jaFR5cGUgdHlwZSwgQ29weUZ1bmN0aW9u
IGNvcHkgPSBwZXJmb3JtSklUTWVtY3B5PgogICAgIHN0YXRpYyB2b2lkIGxpbmtKdW1wT3JDYWxs
KGludCogZnJvbSwgY29uc3QgaW50KiBmcm9tSW5zdHJ1Y3Rpb24sIHZvaWQqIHRvKQogICAgIHsK
LSAgICAgICAgc3RhdGljX2Fzc2VydCh0eXBlID09IEJyYW5jaFR5cGVfSk1QIHx8IHR5cGUgPT0g
QnJhbmNoVHlwZV9DQUxMLCAiIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQodHlwZSA9PSBCcmFu
Y2hUeXBlX0pNUCB8fCB0eXBlID09IEJyYW5jaFR5cGVfQ0FMTCk7CiAKICAgICAgICAgYm9vbCBs
aW5rOwogICAgICAgICBpbnQgaW1tMjY7CkBAIC0zMjQwLDcgKzMyNDAsNyBAQCBjbGFzcyBBUk02
NEFzc2VtYmxlciB7CiAgICAgdGVtcGxhdGU8QnJhbmNoVHlwZSB0eXBlPgogICAgIHN0YXRpYyB2
b2lkIHJlbGlua0p1bXBPckNhbGwoaW50KiBmcm9tLCBjb25zdCBpbnQqIGZyb21JbnN0cnVjdGlv
biwgdm9pZCogdG8pCiAgICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHR5cGUgPT0gQnJhbmNo
VHlwZV9KTVAgfHwgdHlwZSA9PSBCcmFuY2hUeXBlX0NBTEwsICIiKTsKKyAgICAgICAgc3RhdGlj
X2Fzc2VydCh0eXBlID09IEJyYW5jaFR5cGVfSk1QIHx8IHR5cGUgPT0gQnJhbmNoVHlwZV9DQUxM
KTsKICAgICAgICAgaWYgKCh0eXBlID09IEJyYW5jaFR5cGVfSk1QKSAmJiBkaXNhc3NlbWJsZU5v
cChmcm9tKSkgewogICAgICAgICAgICAgdW5zaWduZWQgb3AwMTsKICAgICAgICAgICAgIGludCBp
bW0xOTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1i
bGVyQnVmZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1
ZmZlci5oCmluZGV4IDlhMzZkMTRmMzFjMmFkZmFiZGM0NjcyNDRlYmY3MWJkOWZkZTE4ZjIuLjFh
N2I2N2JkZDI4OTVjMDAwY2Q3ODI2YmY5YzBhMzE0NTkzMjIzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJsZXJCdWZmZXIuaApAQCAtNDU2LDcgKzQ1
Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHB1dEludGVncmFsVW5jaGVja2Vk
KEludGVncmFsVHlwZSB2YWx1ZSkKICAgICAgICAgewogI2lmIENQVShBUk02NCkKLSAgICAgICAg
ICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHZhbHVlKSA9PSA0LCAiIik7CisgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZih2YWx1ZSkgPT0gNCk7CiAjaWYgQ1BVKEFSTTY0RSkKICAgICAg
ICAgICAgIHVpbnQzMl90IGhhc2ggPSBtX2hhc2gudXBkYXRlKHZhbHVlLCBtX2luZGV4IC8gc2l6
ZW9mKEludGVncmFsVHlwZSkpOwogICAgICAgICAgICAgV1RGOjp1bmFsaWduZWRTdG9yZTx1aW50
MzJfdD4obV9oYXNoZXMuYnVmZmVyKCkgKyBtX2luZGV4LCBoYXNoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCmlu
ZGV4IDFlYTMyNDU0MTVhYjA4YTQ1YzdkM2U1OTU5NjBjNDQ1YjE5ZmY3NTEuLjRjMzY5NzJiZWQ3
ZGEwYzQ5NzZhNGE5YmIwODUwYTJiNjUxYWYxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaApAQCAtMjIzLDkg
KzIyMyw5IEBAIGNsYXNzIEZ1bmN0aW9uUHRyIHsKICAgICB0ZW1wbGF0ZTxQdHJUYWc+IGZyaWVu
ZCBjbGFzcyBGdW5jdGlvblB0cjsKIH07CiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKEZ1bmN0aW9u
UHRyPENGdW5jdGlvblB0clRhZz4pID09IHNpemVvZih2b2lkKiksICIiKTsKK3N0YXRpY19hc3Nl
cnQoc2l6ZW9mKEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0clRhZz4pID09IHNpemVvZih2b2lkKikp
OwogI2lmIENPTVBJTEVSX1NVUFBPUlRTKEJVSUxUSU5fSVNfVFJJVklBTExZX0NPUFlBQkxFKQot
c3RhdGljX2Fzc2VydChfX2lzX3RyaXZpYWxseV9jb3B5YWJsZShGdW5jdGlvblB0cjxDRnVuY3Rp
b25QdHJUYWc+KSwgIiIpOworc3RhdGljX2Fzc2VydChfX2lzX3RyaXZpYWxseV9jb3B5YWJsZShG
dW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+KSk7CiAjZW5kaWYKIAogLy8gUmV0dXJuQWRkcmVz
c1B0cjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BZGFwdGl2
ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFz
ZS5oCmluZGV4IDUwMmI1YWYxZTUyZDU5ZTlkYzYyNDdkODZiZWFmYTFjMzY3MmYzYjEuLjBhOWVi
YWQ4ZDk2NGZiM2FlYWY3YTI0OWZjZjhlOWMxMjYwZGJjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNo
cG9pbnRCYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FkYXB0aXZl
SW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludEJhc2UuaApAQCAtNTgsNyArNTgsNyBAQCBj
bGFzcyBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlIHsKICAgICAg
ICAgdm9pZCBmaXJlSW50ZXJuYWwoVk0mLCBjb25zdCBGaXJlRGV0YWlsJik7CiAgICAgfTsKICAg
ICAvLyBPd24gZGVzdHJ1Y3RvciBtYXkgbm90IGJlIGNhbGxlZC4gS2VlcCBtZW1iZXJzIHRyaXZp
YWxseSBkZXN0cnVjdGlibGUuCi0gICAgc3RhdGljX2Fzc2VydChzaXplb2YoU3RydWN0dXJlV2F0
Y2hwb2ludCkgPT0gc2l6ZW9mKFdhdGNocG9pbnQpLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChz
aXplb2YoU3RydWN0dXJlV2F0Y2hwb2ludCkgPT0gc2l6ZW9mKFdhdGNocG9pbnQpKTsKIAogICAg
IGNsYXNzIFByb3BlcnR5V2F0Y2hwb2ludCBmaW5hbCA6IHB1YmxpYyBXYXRjaHBvaW50IHsKICAg
ICBwdWJsaWM6CkBAIC02OSw3ICs2OSw3IEBAIGNsYXNzIEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0
eVZhbHVlV2F0Y2hwb2ludEJhc2UgewogICAgICAgICB2b2lkIGZpcmVJbnRlcm5hbChWTSYsIGNv
bnN0IEZpcmVEZXRhaWwmKTsKICAgICB9OwogICAgIC8vIE93biBkZXN0cnVjdG9yIG1heSBub3Qg
YmUgY2FsbGVkLiBLZWVwIG1lbWJlcnMgdHJpdmlhbGx5IGRlc3RydWN0aWJsZS4KLSAgICBzdGF0
aWNfYXNzZXJ0KHNpemVvZihQcm9wZXJ0eVdhdGNocG9pbnQpID09IHNpemVvZihXYXRjaHBvaW50
KSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFByb3BlcnR5V2F0Y2hwb2ludCkgPT0g
c2l6ZW9mKFdhdGNocG9pbnQpKTsKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBpc1Zh
bGlkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
QXJyYXlQcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9m
aWxlLmgKaW5kZXggYTYxNTg3NTczYjMyODdhMjExNGM0ZDVmODMyNWRiN2ZkODNmMGViMi4uNDg1
M2IyZjNhNDAwNDI4YmIzZmQ4MzY1M2ZkMDFkOWVlMjcwMjFkYiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FycmF5UHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2ZpbGUuaApAQCAtNDEsOSArNDEsOSBAQCB0eXBl
ZGVmIHVuc2lnbmVkIEFycmF5TW9kZXM7CiAKIC8vIFRoZSBwb3NzaWJsZSBJbmRleGluZ1R5cGVz
IGFyZSBsaW1pdGVkIHdpdGhpbiAoMCAtIDE2LCAyMSwgMjMsIDI1KS4KIC8vIFRoaXMgaXMgYmVj
YXVzZSBDb1cgdHlwZXMgb25seSBhcHBlYXIgZm9yIEpTQXJyYXlzLgotc3RhdGljX2Fzc2VydChD
b3B5T25Xcml0ZUFycmF5V2l0aEludDMyID09IDIxLCAiIik7Ci1zdGF0aWNfYXNzZXJ0KENvcHlP
bldyaXRlQXJyYXlXaXRoRG91YmxlID09IDIzLCAiIik7Ci1zdGF0aWNfYXNzZXJ0KENvcHlPbldy
aXRlQXJyYXlXaXRoQ29udGlndW91cyA9PSAyNSwgIiIpOworc3RhdGljX2Fzc2VydChDb3B5T25X
cml0ZUFycmF5V2l0aEludDMyID09IDIxKTsKK3N0YXRpY19hc3NlcnQoQ29weU9uV3JpdGVBcnJh
eVdpdGhEb3VibGUgPT0gMjMpOworc3RhdGljX2Fzc2VydChDb3B5T25Xcml0ZUFycmF5V2l0aENv
bnRpZ3VvdXMgPT0gMjUpOwogY29uc3QgQXJyYXlNb2RlcyBDb3B5T25Xcml0ZUFycmF5V2l0aElu
dDMyQXJyYXlNb2RlID0gMSA8PCBDb3B5T25Xcml0ZUFycmF5V2l0aEludDMyOwogY29uc3QgQXJy
YXlNb2RlcyBDb3B5T25Xcml0ZUFycmF5V2l0aERvdWJsZUFycmF5TW9kZSA9IDEgPDwgQ29weU9u
V3JpdGVBcnJheVdpdGhEb3VibGU7CiBjb25zdCBBcnJheU1vZGVzIENvcHlPbldyaXRlQXJyYXlX
aXRoQ29udGlndW91c0FycmF5TW9kZSA9IDEgPDwgQ29weU9uV3JpdGVBcnJheVdpdGhDb250aWd1
b3VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
a0hhc2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9ja0hhc2gu
Y3BwCmluZGV4IGVlM2I3NTg0N2I2YjdkYzQyMGFiMjU1NDYwMWU4ZTRkMGRiNmNlODUuLjllOTRi
NWI3M2VkMDVhZmJhZjZhZmEzNzE1NjI3M2NjNDk3MWUxZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tIYXNoLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrSGFzaC5jcHAKQEAgLTc3LDggKzc3LDggQEAg
Q29kZUJsb2NrSGFzaDo6Q29kZUJsb2NrSGFzaChjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2Rl
LCBDb2RlU3BlY2lhbGl6YXRpb25LaW4KIAogICAgIGlmIChtX2hhc2ggPT0gMCB8fCBtX2hhc2gg
PT0gMSkKICAgICAgICAgbV9oYXNoICs9IDB4MmQ1YTkzZDA7IC8vIEVuc3VyZXMgYSBub24temVy
byBoYXNoLCBhbmQgZ2V0cyB1cyAjQXplcm8wIGZvciBDb2RlRm9yQ2FsbCBhbmQgI0F6ZXJvMSBm
b3IgQ29kZUZvckNvbnN0cnVjdC4KLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVuc2ln
bmVkPihDb2RlRm9yQ2FsbCkgPT0gMCwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KENvZGVGb3JDb25zdHJ1Y3QpID09IDEsICIiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9yQ2FsbCkgPT0gMCk7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQ29kZUZvckNvbnN0cnVjdCkgPT0gMSk7CiAg
ICAgbV9oYXNoIF49IHN0YXRpY19jYXN0PHVuc2lnbmVkPihraW5kKTsKICAgICBBU1NFUlQobV9o
YXNoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QYXJz
ZUhhc2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BhcnNlSGFzaC5jcHAK
aW5kZXggMzk2YzJiOTBmNTk4ODhmMjQyMTczZGYyZGNhMzgwMzUzZDk4YzlmNS4uNGZiMWQ2NTQ0
OGQ1NmM4YzY4NDc4YTMwYTRhNjNhOTI3YzI4M2FiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1BhcnNlSGFzaC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1BhcnNlSGFzaC5jcHAKQEAgLTQxLDggKzQxLDggQEAgUGFyc2VIYXNoOjpQ
YXJzZUhhc2goY29uc3QgU291cmNlQ29kZSYgc291cmNlQ29kZSkKIAogICAgIGlmIChoYXNoID09
IDAgfHwgaGFzaCA9PSAxKQogICAgICAgICBoYXNoICs9IDB4MmQ1YTkzZDA7IC8vIEVuc3VyZXMg
YSBub24temVybyBoYXNoLCBhbmQgZ2V0cyB1cyAjQXplcm8wIGZvciBDb2RlRm9yQ2FsbCBhbmQg
I0F6ZXJvMSBmb3IgQ29kZUZvckNvbnN0cnVjdC4KLSAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHVuc2lnbmVkPihDb2RlRm9yQ2FsbCkgPT0gMCwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KENvZGVGb3JDb25zdHJ1Y3QpID09IDEsICIiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9yQ2FsbCkgPT0gMCk7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQ29kZUZvckNvbnN0cnVjdCkg
PT0gMSk7CiAgICAgdW5zaWduZWQgaGFzaEZvckNhbGwgPSBoYXNoIF4gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KENvZGVGb3JDYWxsKTsKICAgICB1bnNpZ25lZCBoYXNoRm9yQ29uc3RydWN0ID0gaGFz
aCBeIHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9yQ29uc3RydWN0KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50LmgKaW5kZXggNzFhMWU0M2YyNDFjMGJk
MTNiY2NjNTQ0ZTYyODQzNWFkODYyMjRjZi4uY2Q5MzBmNDQ5ZjFiNWZlNjY3MTE5NWUzYjkzYjBh
NmE2ZGFmY2E0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dh
dGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2lu
dC5oCkBAIC0xMzIsNyArMTMyLDcgQEAgY2xhc3MgV2F0Y2hwb2ludFNldDsKIAogI2RlZmluZSBK
U0NfV0FUQ0hQT0lOVF9GSUVMRCh0eXBlLCBtZW1iZXIpIFwKICAgICB0eXBlIG1lbWJlcjsgXAot
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPHR5cGU+Ojp2
YWx1ZSwgIiIpOyBcCisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8dHlwZT46OnZhbHVlKTsgXAogCiBERUNMQVJFX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURF
TlRJRklFUihXYXRjaHBvaW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAppbmRl
eCA4NjZmNjNkYjNkZjA4MGZmYWE3MDI0MjA0YjJiNTFmMjViMGU3MTY4Li5hYjE0ZGI2YjVkOTQ4
MjdjNDdhY2RmMGE1MTY1YjdiMzY3MjhkMGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaApAQCAtMTI0LDggKzEyNCw4IEBAIHN0cnVjdCBOZXdBcnJheUJ1ZmZlckRhdGEgewogICAg
ICAgICB1aW50NjRfdCBhc1F1YWRXb3JkOwogICAgIH07CiB9Owotc3RhdGljX2Fzc2VydChzaXpl
b2YoSW5kZXhpbmdUeXBlKSA8PSBzaXplb2YodW5zaWduZWQpLCAiIik7Ci1zdGF0aWNfYXNzZXJ0
KHNpemVvZihOZXdBcnJheUJ1ZmZlckRhdGEpID09IHNpemVvZih1aW50NjRfdCksICIiKTsKK3N0
YXRpY19hc3NlcnQoc2l6ZW9mKEluZGV4aW5nVHlwZSkgPD0gc2l6ZW9mKHVuc2lnbmVkKSk7Citz
dGF0aWNfYXNzZXJ0KHNpemVvZihOZXdBcnJheUJ1ZmZlckRhdGEpID09IHNpemVvZih1aW50NjRf
dCkpOwogCiBzdHJ1Y3QgRGF0YVZpZXdEYXRhIHsKICAgICB1bmlvbiB7CkBAIC0xMzgsNyArMTM4
LDcgQEAgc3RydWN0IERhdGFWaWV3RGF0YSB7CiAgICAgICAgIHVpbnQ2NF90IGFzUXVhZFdvcmQ7
CiAgICAgfTsKIH07Ci1zdGF0aWNfYXNzZXJ0KHNpemVvZihEYXRhVmlld0RhdGEpID09IHNpemVv
Zih1aW50NjRfdCksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKERhdGFWaWV3RGF0YSkgPT0g
c2l6ZW9mKHVpbnQ2NF90KSk7CiAKIHN0cnVjdCBCcmFuY2hUYXJnZXQgewogICAgIEJyYW5jaFRh
cmdldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRl
eCBkYzUwMzE2NDc1YWY4OTFhNWZkYmNlZGM4NDZmYmFhOTQ0Yjg2MWRkLi4xOThhZTkxOTkyYjUx
ODk3OGQ4MmEwZDQ3ZTUyNmUxYTY3NTVkNjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTI1NTAsNyArMjU1MCw3IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTbGljZSwgSlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPCiAgICAgSklUT3BlcmF0aW9uUHJvbG9ndWVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KHZtLCBjYWxsRnJhbWUpOwogCiAgICAgSlNTdHJpbmcqIHN0cmluZyA9IGFzU3RyaW5nKGNlbGwp
OwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDY0X3Q+KEpTU3RyaW5nOjpNYXhM
ZW5ndGgpIDw9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMy
X3Q+OjptYXgoKSksICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnQ2NF90
PihKU1N0cmluZzo6TWF4TGVuZ3RoKSA8PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc3RkOjpudW1l
cmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpKTsKICAgICByZXR1cm4gc3RyaW5nU2xpY2UoZ2xv
YmFsT2JqZWN0LCB2bSwgc3RyaW5nLCBzdHJpbmctPmxlbmd0aCgpLCBzdGFydCwgZW5kKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApp
bmRleCA2YmRlZTc1ZjE4NGFmMzM1YWVkZjg2Y2U5YjYwODhmMzQ5Y2JhM2FmLi41NWVmNzYxNTRk
MjA1MWIyMmM5ZWRkNzg3Njk1ZDU1NmM4MTUyZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtMTUyODgsMTMgKzE1Mjg4LDEzIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVXZWFrTWFwR2V0KE5vZGUqIG5vZGUpCiAgICAg
TWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGxvb3AgPSBtX2ppdC5sYWJlbCgpOwogICAgIG1faml0LmFu
ZDMyKG1hc2tHUFIsIGluZGV4R1BSKTsKICAgICBpZiAobm9kZS0+Y2hpbGQxKCkudXNlS2luZCgp
ID09IFdlYWtTZXRPYmplY3RVc2UpIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoV2Vh
a01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleT4pID09IHNpemVvZih2b2lkKiksICIiKTsK
KyAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoV2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0
RGF0YUtleT4pID09IHNpemVvZih2b2lkKikpOwogICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJU
b1dvcmQoaW5kZXhHUFIsIGJ1Y2tldEdQUik7CiAgICAgICAgIG1faml0LmxzaGlmdFB0cihNYWNy
b0Fzc2VtYmxlcjo6SW1tMzIoc2l6ZW9mKHZvaWQqKSA9PSA0ID8gMiA6IDMpLCBidWNrZXRHUFIp
OwogICAgICAgICBtX2ppdC5hZGRQdHIoYnVmZmVyR1BSLCBidWNrZXRHUFIpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIEFTU0VSVChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0gV2Vha01hcE9i
amVjdFVzZSk7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vh
a01hcEJ1Y2tldERhdGFLZXlWYWx1ZT4pID09IDE2LCAiIik7CisgICAgICAgIHN0YXRpY19hc3Nl
cnQoc2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZT4pID09IDE2
KTsKICAgICAgICAgbV9qaXQuemVyb0V4dGVuZDMyVG9Xb3JkKGluZGV4R1BSLCBidWNrZXRHUFIp
OwogICAgICAgICBtX2ppdC5sc2hpZnRQdHIoTWFjcm9Bc3NlbWJsZXI6OkltbTMyKDQpLCBidWNr
ZXRHUFIpOwogICAgICAgICBtX2ppdC5hZGRQdHIoYnVmZmVyR1BSLCBidWNrZXRHUFIpOwpAQCAt
MTYxMzksNyArMTYxMzksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTWFrZVJvcGUo
Tm9kZSogbm9kZSkKICAgICAgICAgb2subGluaygmbV9qaXQpOwogICAgIH0KIAotICAgIHN0YXRp
Y19hc3NlcnQoU3RyaW5nSW1wbDo6ZmxhZ0lzOEJpdCgpID09IEpTUm9wZVN0cmluZzo6aXM4Qml0
SW5Qb2ludGVyLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChTdHJpbmdJbXBsOjpmbGFnSXM4Qml0
KCkgPT0gSlNSb3BlU3RyaW5nOjppczhCaXRJblBvaW50ZXIpOwogICAgIG1faml0LmFuZDMyKFRy
dXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXM4Qml0KCkpLCBzY3JhdGNoR1BSKTsKICAgICBt
X2ppdC5vclB0cihvcEdQUnNbMF0sIHNjcmF0Y2hHUFIpOwogICAgIG1faml0Lm9yUHRyKFRydXN0
ZWRJbW1QdHIoSlNTdHJpbmc6OmlzUm9wZUluUG9pbnRlciksIHNjcmF0Y2hHUFIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
aW5kZXggY2QzNzQ2MjdlMGJkNTU2MWIyZWFlYTY5NzRmZWM1OTIyNmQ4ZGM1Ni4uMDZiMjIxNGJi
OGYxY2YyNjBmOWI0MTcxYjE0Njc2OTllNTg4ZDZlYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zNTU3LDcgKzM1
NTcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAKICAgICAgICAgbV9qaXQubW92ZSh2
YWx1ZVRhZ0dQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAgc3RhdGljX2Fzc2VydCgoSlNWYWx1ZTo6
VW5kZWZpbmVkVGFnICsgMSA9PSBKU1ZhbHVlOjpOdWxsVGFnKSAmJiAoSlNWYWx1ZTo6TnVsbFRh
ZyAmIDB4MSksICIiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCgoSlNWYWx1ZTo6VW5kZWZpbmVk
VGFnICsgMSA9PSBKU1ZhbHVlOjpOdWxsVGFnKSAmJiAoSlNWYWx1ZTo6TnVsbFRhZyAmIDB4MSkp
OwogICAgICAgICBtX2ppdC5vcjMyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCByZXN1
bHRHUFIpOwogICAgICAgICBtX2ppdC5jb21wYXJlMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgcmVz
dWx0R1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpOdWxsVGFnKSwgcmVz
dWx0R1BSKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCmluZGV4IGVjZjMwZDA2NDI2NDc3ZWQzMjY1MDQyMzY4M2MyNTU5Y2Y1ZGMzMzEuLmIxZTAz
NjkxNDEwYjgyN2IwYzBlZDRkMGZlYzI3ZDg3NTU5YzU5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTY0NDIsNyArNjQ0Miw3IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xv
d1BhdGgsIHNldHVwKTsKICAgICAgICAgICAgIHNpemVfdCBzY3JhdGNoU2l6ZSA9IHNpemVvZihF
bmNvZGVkSlNWYWx1ZSkgKiBlbGVtZW50Q291bnQ7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0
KHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgPT0gc2l6ZW9mKGRvdWJsZSksICIiKTsKKyAgICAgICAg
ICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSA9PSBzaXplb2YoZG91Ymxl
KSk7CiAgICAgICAgICAgICBBU1NFUlQoc2NyYXRjaFNpemUpOwogICAgICAgICAgICAgU2NyYXRj
aEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtKCkuc2NyYXRjaEJ1ZmZlckZvclNpemUoc2NyYXRj
aFNpemUpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd0J1ZmZlclJlc3VsdCA9IG1f
b3V0LmFuY2hvcihtX291dC5jb25zdEludFB0cihzdGF0aWNfY2FzdDxFbmNvZGVkSlNWYWx1ZSo+
KHNjcmF0Y2hCdWZmZXItPmRhdGFCdWZmZXIoKSkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9SZWdpc3RlclNldC5jcHAKaW5kZXggMzhjNjc5NDlmZGRmMDczYTg4ZmE1NTgyOTcyYzkyNWMx
NjFjZGVkNC4uYjJlZmY2NTI0YzRiMjZlYzY5ODViMjk1ZGRmNDFhNWI0NzUyMTQ0MiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKQEAgLTIwMSwxNSArMjAxLDE1
IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0OjpsbGludEJhc2VsaW5lQ2FsbGVlU2F2ZVJlZ2lz
dGVycygpCiAjaWYgIU9TKFdJTkRPV1MpCiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzEp
OwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MyKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQ
UkluZm86OnJlZ0NTMyA9PSBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlciwgIiIpOwotICAgIHN0
YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M0ID09IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0
ZXIsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTMyA9PSBHUFJJbmZvOjpu
dW1iZXJUYWdSZWdpc3Rlcik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzQgPT0g
R1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpy
ZWdDUzMpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M0KTsKICNlbHNlCiAgICAgcmVz
dWx0LnNldChHUFJJbmZvOjpyZWdDUzMpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M0
KTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTNSA9PSBHUFJJbmZvOjpudW1iZXJU
YWdSZWdpc3RlciwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M2ID09IEdQ
UkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEdQUklu
Zm86OnJlZ0NTNSA9PSBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3Rlcik7CisgICAgc3RhdGljX2Fz
c2VydChHUFJJbmZvOjpyZWdDUzYgPT0gR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CiAg
ICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzUpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6
cmVnQ1M2KTsKICNlbmRpZgpAQCAtMjE5LDggKzIxOSw4IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVy
U2V0OjpsbGludEJhc2VsaW5lQ2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAjZWxpZiBDUFUoQVJNNjQp
IHx8IENQVShSSVNDVjY0KQogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M2KTsKICAgICBy
ZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTNyk7Ci0gICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpy
ZWdDUzggPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsICIiKTsKLSAgICBzdGF0aWNfYXNz
ZXJ0KEdQUkluZm86OnJlZ0NTOSA9PSBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyLCAiIik7
CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzggPT0gR1BSSW5mbzo6bnVtYmVyVGFn
UmVnaXN0ZXIpOworICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M5ID09IEdQUkluZm86
Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M4KTsK
ICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTOSk7CiAjZWxzZQpAQCAtMjM4LDE1ICsyMzgs
MTUgQEAgUmVnaXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6OmRmZ0NhbGxlZVNhdmVSZWdpc3RlcnMoKQog
ICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MxKTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86
OnJlZ0NTMik7CiAjaWYgIU9TKFdJTkRPV1MpCi0gICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpy
ZWdDUzMgPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsICIiKTsKLSAgICBzdGF0aWNfYXNz
ZXJ0KEdQUkluZm86OnJlZ0NTNCA9PSBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyLCAiIik7
CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzMgPT0gR1BSSW5mbzo6bnVtYmVyVGFn
UmVnaXN0ZXIpOworICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M0ID09IEdQUkluZm86
Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MzKTsK
ICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTNCk7CiAjZWxzZQogICAgIHJlc3VsdC5zZXQo
R1BSSW5mbzo6cmVnQ1MzKTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTNCk7Ci0gICAg
c3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzUgPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0
ZXIsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTNiA9PSBHUFJJbmZvOjpu
b3RDZWxsTWFza1JlZ2lzdGVyLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdD
UzUgPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpOworICAgIHN0YXRpY19hc3NlcnQoR1BS
SW5mbzo6cmVnQ1M2ID09IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwogICAgIHJlc3Vs
dC5zZXQoR1BSSW5mbzo6cmVnQ1M1KTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTNik7
CiAjZW5kaWYKQEAgLTI1NCw4ICsyNTQsOCBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6ZGZn
Q2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzApOwog
ICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MxKTsKICNlbGlmIENQVShBUk02NCkgfHwgQ1BV
KFJJU0NWNjQpCi0gICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzggPT0gR1BSSW5mbzo6
bnVtYmVyVGFnUmVnaXN0ZXIsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NT
OSA9PSBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyLCAiIik7CisgICAgc3RhdGljX2Fzc2Vy
dChHUFJJbmZvOjpyZWdDUzggPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpOworICAgIHN0
YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M5ID09IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0
ZXIpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M4KTsKICAgICByZXN1bHQuc2V0KEdQ
UkluZm86OnJlZ0NTOSk7CiAjZWxzZQpAQCAtMjcyLDggKzI3Miw4IEBAIFJlZ2lzdGVyU2V0IFJl
Z2lzdGVyU2V0OjpmdGxDYWxsZWVTYXZlUmVnaXN0ZXJzKCkKICAgICByZXN1bHQuc2V0KEdQUklu
Zm86OnJlZ0NTMCk7CiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzEpOwogICAgIHJlc3Vs
dC5zZXQoR1BSSW5mbzo6cmVnQ1MyKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NT
MyA9PSBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlciwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQo
R1BSSW5mbzo6cmVnQ1M0ID09IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIsICIiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTMyA9PSBHUFJJbmZvOjpudW1iZXJUYWdSZWdp
c3Rlcik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzQgPT0gR1BSSW5mbzo6bm90
Q2VsbE1hc2tSZWdpc3Rlcik7CiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzMpOwogICAg
IHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M0KTsKICNlbGlmIENQVShBUk02NCkKQEAgLTI4Niw4
ICsyODYsOCBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNldDo6ZnRsQ2FsbGVlU2F2ZVJlZ2lzdGVy
cygpCiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzUpOwogICAgIHJlc3VsdC5zZXQoR1BS
SW5mbzo6cmVnQ1M2KTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTNyk7Ci0gICAgc3Rh
dGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzggPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIs
ICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTOSA9PSBHUFJJbmZvOjpub3RD
ZWxsTWFza1JlZ2lzdGVyLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzgg
PT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpOworICAgIHN0YXRpY19hc3NlcnQoR1BSSW5m
bzo6cmVnQ1M5ID09IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwogICAgIHJlc3VsdC5z
ZXQoR1BSSW5mbzo6cmVnQ1M4KTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTOSk7CiAg
ICAgcmVzdWx0LnNldChGUFJJbmZvOjpmcFJlZ0NTMCk7CkBAIC0zMDcsOCArMzA3LDggQEAgUmVn
aXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6OmZ0bENhbGxlZVNhdmVSZWdpc3RlcnMoKQogICAgIHJlc3Vs
dC5zZXQoR1BSSW5mbzo6cmVnQ1M1KTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTNik7
CiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzcpOwotICAgIHN0YXRpY19hc3NlcnQoR1BS
SW5mbzo6cmVnQ1M4ID09IEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyLCAiIik7Ci0gICAgc3Rh
dGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzkgPT0gR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rl
ciwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M4ID09IEdQUkluZm86Om51
bWJlclRhZ1JlZ2lzdGVyKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTOSA9PSBH
UFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJl
Z0NTOCk7CiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzkpOwogICAgIHJlc3VsdC5zZXQo
R1BSSW5mbzo6cmVnQ1MxMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9DYWNoZWRCeXRlY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
YWNoZWRCeXRlY29kZS5jcHAKaW5kZXggZGRhNDFhOGVmYjhjODFiNGI2NmVlNDE2YmNmY2QwMmY0
NTdkZjc5Ny4uMWFmZmFmZjQ3YTUxODU4ZDZhZGMzODc0YTAxYjc3MzhjNTM1MTRkZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVkQnl0ZWNvZGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlZEJ5dGVjb2RlLmNwcApAQCAt
NzIsNyArNzIsNyBAQCB2b2lkIENhY2hlZEJ5dGVjb2RlOjpjb21taXRVcGRhdGVzKGNvbnN0IEZv
ckVhY2hVcGRhdGVDYWxsYmFjayYgY2FsbGJhY2spIGNvbnN0CiAgICAgICAgICAgICAgICAgcHRy
ZGlmZl90IGtpbmRPZmZzZXQgPSBmdW5jdGlvblVwZGF0ZS5tX2tpbmQgPT0gQ29kZUZvckNhbGwg
PyBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGVPZmZzZXRzOjpjb2RlQmxvY2tGb3JDYWxsT2Zmc2V0
KCkgOiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGVPZmZzZXRzOjpjb2RlQmxvY2tGb3JDb25zdHJ1
Y3RPZmZzZXQoKTsKICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgY29kZUJsb2NrT2Zmc2V0ID0g
ZnVuY3Rpb25VcGRhdGUubV9iYXNlICsga2luZE9mZnNldCArIENhY2hlZFdyaXRlQmFycmllck9m
ZnNldHM6OnB0ck9mZnNldCgpICsgQ2FjaGVkUHRyT2Zmc2V0czo6b2Zmc2V0T2Zmc2V0KCk7CiAg
ICAgICAgICAgICAgICAgcHRyZGlmZl90IG9mZnNldFBheWxvYWQgPSBzdGF0aWNfY2FzdDxwdHJk
aWZmX3Q+KG9mZnNldCkgLSBjb2RlQmxvY2tPZmZzZXQ7Ci0gICAgICAgICAgICAgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoVmFyaWFibGVMZW5ndGhPYmplY3RCYXNlOjpt
X29mZnNldCksIHB0cmRpZmZfdD46OnZhbHVlLCAiIik7CisgICAgICAgICAgICAgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoVmFyaWFibGVMZW5ndGhPYmplY3RCYXNlOjpt
X29mZnNldCksIHB0cmRpZmZfdD46OnZhbHVlKTsKICAgICAgICAgICAgICAgICBjYWxsYmFjayhj
b2RlQmxvY2tPZmZzZXQsICZvZmZzZXRQYXlsb2FkLCBzaXplb2YocHRyZGlmZl90KSk7CiAgICAg
ICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Ns
b25lZEFyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJn
dW1lbnRzLmgKaW5kZXggYjY3ZWVkNDhjYTgwNGVmOTMxZGQxZjcyZWViMzhhNTg1NWQ3YTZkMi4u
YWNhZDQxY2Q4NDY1ZjZlZDlkOTAyMGNkYWNmODJkZmI4NTY1MGM4MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgY2xhc3MgQ2xvbmVkQXJndW1lbnRzIGZpbmFsIDogcHVibGljIEpTTm9uRmluYWxPYmplY3Qg
ewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2VzcyBtb2RlPgog
ICAgIHN0YXRpYyBHQ0NsaWVudDo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKICAg
ICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoIUNlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uLCAi
Iik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIUNlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uKTsK
ICAgICAgICAgcmV0dXJuICZ2bS5jbG9uZWRBcmd1bWVudHNTcGFjZSgpOwogICAgIH0KICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEFyZ3VtZW50
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmgKaW5k
ZXggZmI5MGNkNzc1ZTk2NjVlYmIyMTAwYTc3NGY1M2JmMGUyYjYyZDUyYi4uNzIwOGYxOGRiMDA2
ZWIyZDVmZWU0NmEzYzQ1YmNkMzlmM2RjMmUzNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgY2xhc3MgRGly
ZWN0QXJndW1lbnRzIGZpbmFsIDogcHVibGljIEdlbmVyaWNBcmd1bWVudHM8RGlyZWN0QXJndW1l
bnRzPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzPgog
ICAgIHN0YXRpYyBDb21wbGV0ZVN1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCiAgICAgewot
ICAgICAgICBzdGF0aWNfYXNzZXJ0KCFDZWxsVHlwZTo6bmVlZHNEZXN0cnVjdGlvbiwgIiIpOwor
ICAgICAgICBzdGF0aWNfYXNzZXJ0KCFDZWxsVHlwZTo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAg
ICAgIHJldHVybiAmdm0udmFyaWFibGVTaXplZENlbGxTcGFjZSgpOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1dGFibGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVjdEV2YWxFeGVjdXRhYmxlLmgK
aW5kZXggMzYyY2VkOGQ3YjE3MTEyMGYyYjJiZTVmZDVjOTU2MGUzMDU5ZWUzMi4uYmUzMzc1ZTEz
ODI2NDFiZDM3N2UyMTJmZWRlYTViZGEyMmYzMGZhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RFdmFsRXhlY3V0YWJsZS5oCkBAIC0zNiw2ICszNiw2
IEBAIGNsYXNzIERpcmVjdEV2YWxFeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEV2YWxFeGVjdXRh
YmxlIHsKICAgICBEaXJlY3RFdmFsRXhlY3V0YWJsZShKU0dsb2JhbE9iamVjdCosIGNvbnN0IFNv
dXJjZUNvZGUmLCBib29sIGluU3RyaWN0Q29udGV4dCwgRGVyaXZlZENvbnRleHRUeXBlLCBOZWVk
c0NsYXNzRmllbGRJbml0aWFsaXplciwgUHJpdmF0ZUJyYW5kUmVxdWlyZW1lbnQsIGJvb2wgaXNB
cnJvd0Z1bmN0aW9uQ29udGV4dCwgYm9vbCBpc0luc2lkZU9yZGluYXJ5RnVuY3Rpb24sIEV2YWxD
b250ZXh0VHlwZSk7CiB9OwogCi1zdGF0aWNfYXNzZXJ0KHNpemVvZihEaXJlY3RFdmFsRXhlY3V0
YWJsZSkgPT0gc2l6ZW9mKEV2YWxFeGVjdXRhYmxlKSwgIiIpOworc3RhdGljX2Fzc2VydChzaXpl
b2YoRGlyZWN0RXZhbEV4ZWN1dGFibGUpID09IHNpemVvZihFdmFsRXhlY3V0YWJsZSkpOwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Vycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9yQ29uc3RydWN0b3IuaAppbmRleCA3Njg5NzJiMjVhYWM1MDU1ODZhMTU2ZjhiYTQzODY0N2Nh
MjEwNjFmLi5mNjc5YjRlOTUwMWY3MTQ3YTFkMjVhNTk2M2RiOWY4ZDA3MjU0NWQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC01
NSw2ICs1NSw2IEBAIGNsYXNzIEVycm9yQ29uc3RydWN0b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJu
YWxGdW5jdGlvbiB7CiB9OwogU1RBVElDX0FTU0VSVF9JU09fU1VCU1BBQ0VfU0hBUkFCTEUoRXJy
b3JDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbik7CiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9m
KEVycm9yQ29uc3RydWN0b3IpID09IHNpemVvZihJbnRlcm5hbEZ1bmN0aW9uKSwgIiIpOworc3Rh
dGljX2Fzc2VydChzaXplb2YoRXJyb3JDb25zdHJ1Y3RvcikgPT0gc2l6ZW9mKEludGVybmFsRnVu
Y3Rpb24pKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbmRpcmVjdEV2YWxFeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbmRpcmVjdEV2YWxFeGVjdXRhYmxlLmgKaW5kZXggMzcwNGIyNDY4
YTRjYWI0NmQ3OWM1MzM1ZmQ3MTIwMWE0NmFiM2Y0Yy4uMDAyM2Q5ZjdlZTMxZDczMGNmZmUyOTVi
ZWI2YjJkMmQ2MGEzNjc4MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0luZGlyZWN0RXZhbEV4ZWN1dGFibGUuaApAQCAtNDAsNiArNDAsNiBAQCBjbGFzcyBJ
bmRpcmVjdEV2YWxFeGVjdXRhYmxlIGZpbmFsIDogcHVibGljIEV2YWxFeGVjdXRhYmxlIHsKICAg
ICBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKEpTR2xvYmFsT2JqZWN0KiwgY29uc3QgU291cmNlQ29k
ZSYsIERlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBFdmFs
Q29udGV4dFR5cGUpOwogfTsKIAotc3RhdGljX2Fzc2VydChzaXplb2YoSW5kaXJlY3RFdmFsRXhl
Y3V0YWJsZSkgPT0gc2l6ZW9mKEV2YWxFeGVjdXRhYmxlKSwgIiIpOworc3RhdGljX2Fzc2VydChz
aXplb2YoSW5kaXJlY3RFdmFsRXhlY3V0YWJsZSkgPT0gc2l6ZW9mKEV2YWxFeGVjdXRhYmxlKSk7
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCmluZGV4IDZmOGQ1YWQwYzkzNGFlYjI1Mzk0MGNi
N2FlOGVlMGJjMGJkOTRiYzAuLjMyMzFmYTU0M2M0ZDIyYjNmNTNjOWU0OWY0NmM5ZTA4ZWVmNTg5
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZm
ZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVm
ZmVyVmlldy5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdGF0aWMgY29uc3QgY29uc3RleHByIHNp
emVfdCBFbGVtZW50U2l6ZURhdGFbXSA9IHsKICAgICAxLCAvLyBEYXRhVmlld1R5cGUKIH07CiAK
LSNkZWZpbmUgRkFDVE9SWSh0eXBlKSBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWw8SlMgIyMg
dHlwZSAjIyBBcnJheT46OnZhbHVlLCAiIik7CisjZGVmaW5lIEZBQ1RPUlkodHlwZSkgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTICMjIHR5cGUgIyMgQXJyYXk+Ojp2YWx1ZSk7CiBGT1Jf
RUFDSF9UWVBFRF9BUlJBWV9UWVBFX0VYQ0xVRElOR19EQVRBX1ZJRVcoRkFDVE9SWSkKICN1bmRl
ZiBGQUNUT1JZCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qm91bmRGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1
bmN0aW9uLmgKaW5kZXggZjMyODVkN2Y3MDIwZjBkMjQ4MTgxODBjOTkxNmM5OTFmZTdlOTgwMi4u
ZWM3Nzg1OGJjZDk0MWFlMmE2ZTM0ZDJkYmYxNWM2ODNhZDZmYzc1MyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKQEAgLTQwLDcgKzQwLDcg
QEAgY2xhc3MgSlNCb3VuZEZ1bmN0aW9uIGZpbmFsIDogcHVibGljIEpTRnVuY3Rpb24gewogcHVi
bGljOgogICAgIHR5cGVkZWYgSlNGdW5jdGlvbiBCYXNlOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyAmIH5JbXBsZW1l
bnRzRGVmYXVsdEhhc0luc3RhbmNlOwotICAgIHN0YXRpY19hc3NlcnQoU3RydWN0dXJlRmxhZ3Mg
JiBJbXBsZW1lbnRzSGFzSW5zdGFuY2UsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KFN0cnVjdHVy
ZUZsYWdzICYgSW1wbGVtZW50c0hhc0luc3RhbmNlKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IENlbGxUeXBlLCBTdWJzcGFjZUFjY2VzcyBtb2RlPgogICAgIHN0YXRpYyBHQ0NsaWVudDo6SXNv
U3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVudC5oCmluZGV4IDlkYzE1Y2UzY2NjZmMz
OWYyNWQxNTNkYzk2ODMzNDYxN2I4MGJkNTMuLmI3OTVhM2MwZTUzODQ1YTE5MTU1ZTgzZWRjNDg3
Mjg1N2U5YTc5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
TGV4aWNhbEVudmlyb25tZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNMZXhpY2FsRW52aXJvbm1lbnQuaApAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBKU0xleGljYWxF
bnZpcm9ubWVudCA6IHB1YmxpYyBKU1N5bWJvbFRhYmxlT2JqZWN0IHsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+CiAgICAgc3RhdGljIENvbXBsZXRlU3Vi
c3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKICAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQo
IUNlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uLCAiIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQo
IUNlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICAgICAgcmV0dXJuICZ2bS52YXJpYWJs
ZVNpemVkQ2VsbFNwYWNlKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1N0cmluZy5jcHAKaW5kZXggYjY3M2NkODIxMDIzMGY4NjJmYTE3YzcyY2IwNDY3ZjRlYzI5
MTU1ZC4uNDEwZDhhMGJmMTllZTEzYjQ0ZDE1ZjA0MjEwYmY0MDVhNmE1MDNkNSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcApAQCAtNTEsNyArNTEsNyBAQCB2
b2lkIEpTUm9wZVN0cmluZzo6Um9wZUJ1aWxkZXI8UmVjb3JkT3ZlcmZsb3c+OjpleHBhbmQoKQog
ewogICAgIFJFTEVBU0VfQVNTRVJUKCF0aGlzLT5oYXNPdmVyZmxvd2VkKCkpOwogICAgIEFTU0VS
VChtX3N0cmluZ3Muc2l6ZSgpID09IEpTUm9wZVN0cmluZzo6c19tYXhJbnRlcm5hbFJvcGVMZW5n
dGgpOwotICAgIHN0YXRpY19hc3NlcnQoMyA9PSBKU1JvcGVTdHJpbmc6OnNfbWF4SW50ZXJuYWxS
b3BlTGVuZ3RoLCAiIik7CisgICAgc3RhdGljX2Fzc2VydCgzID09IEpTUm9wZVN0cmluZzo6c19t
YXhJbnRlcm5hbFJvcGVMZW5ndGgpOwogICAgIEFTU0VSVChtX2xlbmd0aCk7CiAgICAgQVNTRVJU
KGFzU3RyaW5nKG1fc3RyaW5ncy5hdCgwKSktPmxlbmd0aCgpKTsKICAgICBBU1NFUlQoYXNTdHJp
bmcobV9zdHJpbmdzLmF0KDEpKS0+bGVuZ3RoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RyaW5nLmgKaW5kZXggNDVmZmI3MWRjZmJjZmU1ZjJlZDA3ZGVmNDIzMGMxYzZhMTA0
YTRmZC4uZWYxNDljNGMxOGM1NzY4OWJjZjIxZjQ3ZjRlZTgzMWIzM2EwNWE5NCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC0xMTgsNyArMTE4LDcgQEAgY2xh
c3MgSlNTdHJpbmcgOiBwdWJsaWMgSlNDZWxsIHsKICAgICAvLyBpcyBJTlRfTUFYLiBIZW5jZSwg
aXQgY2Fubm90IGJlIGNoYW5nZWQgaW50byBhbm90aGVyIGxlbmd0aCB2YWx1ZSB3aXRob3V0CiAg
ICAgLy8gYnJlYWtpbmcgYWxsIHRoZSBib3VuZHMgYW5kIG92ZXJmbG93IGNoZWNrcyB0aGF0IGFz
c3VtZSB0aGlzLgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgTWF4TGVuZ3RoID0gc3Rk
OjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCk7Ci0gICAgc3RhdGljX2Fzc2VydChNYXhM
ZW5ndGggPT0gU3RyaW5nOjpNYXhMZW5ndGgsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KE1heExl
bmd0aCA9PSBTdHJpbmc6Ok1heExlbmd0aCk7CiAKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnRw
dHJfdCBpc1JvcGVJblBvaW50ZXIgPSAweDE7CiAKQEAgLTI4MCwxMiArMjgwLDEyIEBAIGNsYXNz
IEpTUm9wZVN0cmluZyBmaW5hbCA6IHB1YmxpYyBKU1N0cmluZyB7CiAgICAgLy8gV2UgdXNlIGxv
d2VyIDNiaXRzIG9mIGZpYmVyMCBmb3IgZmxhZ3MuIFRoZXNlIGJpdHMgYXJlIHVzYWJsZSBkdWUg
dG8gYWxpZ25tZW50LCBhbmQgaXQgaXMgT0sgZXZlbiBpbiAzMmJpdCBhcmNoaXRlY3R1cmUuCiAg
ICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgaXM4Qml0SW5Qb2ludGVyID0gc3RhdGljX2Nh
c3Q8dWludHB0cl90PihTdHJpbmdJbXBsOjpmbGFnSXM4Qml0KCkpOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludHB0cl90IGlzU3Vic3RyaW5nSW5Qb2ludGVyID0gMHgyOwotICAgIHN0YXRpY19h
c3NlcnQoaXM4Qml0SW5Qb2ludGVyID09IDBiMTAwLCAiIik7Ci0gICAgc3RhdGljX2Fzc2VydChp
c1N1YnN0cmluZ0luUG9pbnRlciA9PSAwYjAxMCwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoaXNS
b3BlSW5Qb2ludGVyID09IDBiMDAxLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChpczhCaXRJblBv
aW50ZXIgPT0gMGIxMDApOworICAgIHN0YXRpY19hc3NlcnQoaXNTdWJzdHJpbmdJblBvaW50ZXIg
PT0gMGIwMTApOworICAgIHN0YXRpY19hc3NlcnQoaXNSb3BlSW5Qb2ludGVyID09IDBiMDAxKTsK
ICAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBzdHJpbmdNYXNrID0gfihpc1JvcGVJblBv
aW50ZXIgfCBpczhCaXRJblBvaW50ZXIgfCBpc1N1YnN0cmluZ0luUG9pbnRlcik7CiAjaWYgQ1BV
KEFERFJFU1M2NCkKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih1aW50cHRyX3QpID09IHNpemVv
Zih1aW50NjRfdCksICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih1aW50cHRyX3QpID09
IHNpemVvZih1aW50NjRfdCkpOwogICAgIGNsYXNzIENvbXBhY3RGaWJlcnMgewogICAgIHB1Ymxp
YzoKICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgYWRkcmVzc01hc2sgPSAoMVVM
TCA8PCBPU19DT05TVEFOVChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkpIC0gMTsKQEAgLTMzOSw3
ICszMzksNyBAQCBjbGFzcyBKU1JvcGVTdHJpbmcgZmluYWwgOiBwdWJsaWMgSlNTdHJpbmcgewog
ICAgICAgICB1aW50MTZfdCBtX2ZpYmVyMkxvd2VyIHsgMCB9OwogICAgICAgICB1aW50MzJfdCBt
X2ZpYmVyMlVwcGVyIHsgMCB9OwogICAgIH07Ci0gICAgc3RhdGljX2Fzc2VydChzaXplb2YoQ29t
cGFjdEZpYmVycykgPT0gc2l6ZW9mKHZvaWQqKSAqIDIsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHNpemVvZihDb21wYWN0RmliZXJzKSA9PSBzaXplb2Yodm9pZCopICogMik7CiAjZWxzZQogICAg
IGNsYXNzIENvbXBhY3RGaWJlcnMgewogICAgIHB1YmxpYzoKQEAgLTM5OCw3ICszOTgsNyBAQCBj
bGFzcyBKU1JvcGVTdHJpbmcgZmluYWwgOiBwdWJsaWMgSlNTdHJpbmcgewogICAgICAgICAgICAg
aWYgKG1fc3RyaW5ncy5zaXplKCkgPT0gSlNSb3BlU3RyaW5nOjpzX21heEludGVybmFsUm9wZUxl
bmd0aCkKICAgICAgICAgICAgICAgICBleHBhbmQoKTsKIAotICAgICAgICAgICAgc3RhdGljX2Fz
c2VydChKU1N0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46
Om1heCgpLCAiIik7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KEpTU3RyaW5nOjpNYXhMZW5n
dGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOwogICAgICAgICAgICAg
YXV0byBzdW0gPSBjaGVja2VkU3VtPGludDMyX3Q+KG1fbGVuZ3RoLCBqc1N0cmluZy0+bGVuZ3Ro
KCkpOwogICAgICAgICAgICAgaWYgKHN1bS5oYXNPdmVyZmxvd2VkKCkpIHsKICAgICAgICAgICAg
ICAgICB0aGlzLT5vdmVyZmxvd2VkKCk7CkBAIC02NzgsNyArNjc4LDcgQEAgY2xhc3MgSlNSb3Bl
U3RyaW5nIGZpbmFsIDogcHVibGljIEpTU3RyaW5nIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihiaXR3aXNlX2Nhc3Q8dWludHB0cl90PihmaWJlcjIoKSkpOwogICAgIH0K
IAotICAgIHN0YXRpY19hc3NlcnQoc19tYXhJbnRlcm5hbFJvcGVMZW5ndGggPj0gMiwgIiIpOwor
ICAgIHN0YXRpY19hc3NlcnQoc19tYXhJbnRlcm5hbFJvcGVMZW5ndGggPj0gMik7CiAgICAgbXV0
YWJsZSBDb21wYWN0RmliZXJzIG1fY29tcGFjdEZpYmVyczsKIAogICAgIGZyaWVuZCBKU1N0cmlu
ZyoganNTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRnVuY3Rpb24uaAppbmRleCBjZTA3
MTEzZTJhYjE4MTUwNzVlNTQ0ZjI4MzgzYjExZGM2OTIyNTIxLi42YzdhNTAxYWM5ZmY1ZTBiM2Uz
OWVlYmM0YWE3MjI0YWUwMzM0ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVGdW5jdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL05hdGl2ZUZ1bmN0aW9uLmgKQEAgLTEwMSw4ICsxMDEsOCBAQCBzdHJ1Y3QgVGFnZ2VkTmF0
aXZlRnVuY3Rpb25IYXNoIHsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFy
ZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAotc3RhdGljX2Fzc2VydChzaXplb2YoTmF0
aXZlRnVuY3Rpb24pID09IHNpemVvZih2b2lkKiksICIiKTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9m
KFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uKSA9PSBzaXplb2Yodm9pZCopLCAiIik7CitzdGF0aWNfYXNz
ZXJ0KHNpemVvZihOYXRpdmVGdW5jdGlvbikgPT0gc2l6ZW9mKHZvaWQqKSk7CitzdGF0aWNfYXNz
ZXJ0KHNpemVvZihUYWdnZWROYXRpdmVGdW5jdGlvbikgPT0gc2l6ZW9mKHZvaWQqKSk7CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRp
b25zLmgKaW5kZXggMmU4MThiZmZhNzljNGFmNmYwZDNjMTI1MjhmYWE1NjU1OGVjNWYzZS4uMzBk
MDgxZDBjZTNjYmFiNTQwOWZkZjc0OThiYTFlNTE1MmUxNTNiZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAtODgsNyArODgsNyBAQCBBTFdBWVNfSU5M
SU5FIEpTU3RyaW5nKiBqc1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25z
dCBTdHJpbmcmIHUxLAogICAgIHVuc2lnbmVkIGxlbmd0aDIgPSBzMi0+bGVuZ3RoKCk7CiAgICAg
aWYgKCFsZW5ndGgyKQogICAgICAgICByZXR1cm4ganNTdHJpbmcodm0sIHUxKTsKLSAgICBzdGF0
aWNfYXNzZXJ0KEpTU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQz
Ml90Pjo6bWF4KCksICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEpTU3RyaW5nOjpNYXhMZW5ndGgg
PT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOwogICAgIGlmIChzdW1PdmVy
Zmxvd3M8aW50MzJfdD4obGVuZ3RoMSwgbGVuZ3RoMikpIHsKICAgICAgICAgdGhyb3dPdXRPZk1l
bW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
QEAgLTEyNCw3ICsxMjQsNyBAQCBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiBqc1N0cmluZyhKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogczEsIGNvbgogICAgIHVuc2lnbmVk
IGxlbmd0aDIgPSB1Mi5sZW5ndGgoKTsKICAgICBpZiAoIWxlbmd0aDIpCiAgICAgICAgIHJldHVy
biBzMTsKLSAgICBzdGF0aWNfYXNzZXJ0KEpTU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1l
cmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCksICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEpTU3Ry
aW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOwog
ICAgIGlmIChzdW1PdmVyZmxvd3M8aW50MzJfdD4obGVuZ3RoMSwgbGVuZ3RoMikpIHsKICAgICAg
ICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTE1Nyw3ICsxNTcsNyBAQCBBTFdBWVNfSU5MSU5FIEpTU3RyaW5n
KiBqc1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogczEsIEpT
UwogICAgIHVuc2lnbmVkIGxlbmd0aDIgPSBzMi0+bGVuZ3RoKCk7CiAgICAgaWYgKCFsZW5ndGgy
KQogICAgICAgICByZXR1cm4gczE7Ci0gICAgc3RhdGljX2Fzc2VydChKU1N0cmluZzo6TWF4TGVu
Z3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpLCAiIik7CisgICAgc3Rh
dGljX2Fzc2VydChKU1N0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
MzJfdD46Om1heCgpKTsKICAgICBpZiAoc3VtT3ZlcmZsb3dzPGludDMyX3Q+KGxlbmd0aDEsIGxl
bmd0aDIpKSB7CiAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xODMsNyArMTgzLDcgQEAgQUxXQVlT
X0lOTElORSBKU1N0cmluZyoganNTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbmcqIHMxLCBKU1MKICAgICBpZiAoIWxlbmd0aDMpCiAgICAgICAgIFJFTEVBU0VfQU5E
X1JFVFVSTihzY29wZSwganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCBzMSwgczIpKTsKIAotICAgIHN0
YXRpY19hc3NlcnQoSlNTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDMyX3Q+OjptYXgoKSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoSlNTdHJpbmc6Ok1heExlbmd0
aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CiAgICAgaWYgKHN1bU92
ZXJmbG93czxpbnQzMl90PihsZW5ndGgxLCBsZW5ndGgyLCBsZW5ndGgzKSkgewogICAgICAgICB0
aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwpAQCAtMjAzLDcgKzIwMyw3IEBAIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIGpz
U3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFN0cmluZyYgdTEsCiAg
ICAgdW5zaWduZWQgbGVuZ3RoMiA9IHUyLmxlbmd0aCgpOwogICAgIGlmICghbGVuZ3RoMikKICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCB1MSk7Ci0gICAgc3RhdGljX2Fzc2VydChKU1N0cmlu
Zzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpLCAiIik7
CisgICAgc3RhdGljX2Fzc2VydChKU1N0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50MzJfdD46Om1heCgpKTsKICAgICBpZiAoc3VtT3ZlcmZsb3dzPGludDMyX3Q+KGxl
bmd0aDEsIGxlbmd0aDIpKSB7CiAgICAgICAgIHRocm93T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yNDMsNyArMjQzLDcg
QEAgQUxXQVlTX0lOTElORSBKU1N0cmluZyoganNTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgY29uc3QgU3RyaW5nJiB1MSwKICAgICBpZiAoIWxlbmd0aDMpCiAgICAgICAgIFJF
TEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcoZ2xvYmFsT2JqZWN0LCB1MSwgdTIpKTsK
IAotICAgIHN0YXRpY19hc3NlcnQoSlNTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNf
bGltaXRzPGludDMyX3Q+OjptYXgoKSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoSlNTdHJpbmc6
Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CiAgICAg
aWYgKHN1bU92ZXJmbG93czxpbnQzMl90PihsZW5ndGgxLCBsZW5ndGgyLCBsZW5ndGgzKSkgewog
ICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuaAppbmRleCBjYWU1MWNiYmIxNDg5ZmIwY2NkNTZiOWM2MTNhNzdiYjNkY2FjZDFj
Li45ZTRiNjAwMzMxYTcxZDFkZTAxZjU0NjQ3NmQ5ODBhZDk0Y2UzOGRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaApAQCAtMzUsNyArMzUsNyBAQCBj
bGFzcyBSZWdFeHBPYmplY3QgZmluYWwgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiAgICAg
dGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CiAgICAgc3Rh
dGljIEdDQ2xpZW50OjpJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0mIHZtKQogICAgIHsKLSAg
ICAgICAgc3RhdGljX2Fzc2VydCghQ2VsbFR5cGU6Om5lZWRzRGVzdHJ1Y3Rpb24sICIiKTsKKyAg
ICAgICAgc3RhdGljX2Fzc2VydCghQ2VsbFR5cGU6Om5lZWRzRGVzdHJ1Y3Rpb24pOwogICAgICAg
ICByZXR1cm4gJnZtLnJlZ0V4cE9iamVjdFNwYWNlKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHMuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCmluZGV4IGM2ZGRmYjI2NmQz
NWU2MDRmODlmMzlhYjEzM2E4MjY2MTc0NmVlNzguLjM4NWZkYjY3YjYxYjFmN2IxZmM3M2RjN2Rk
ODI0MTAwYzE1YTU5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Njb3BlZEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nj
b3BlZEFyZ3VtZW50cy5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFNjb3BlZEFyZ3VtZW50cyBm
aW5hbCA6IHB1YmxpYyBHZW5lcmljQXJndW1lbnRzPFNjb3BlZEFyZ3VtZW50cz4gewogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2Vzcz4KICAgICBzdGF0aWMgR0ND
bGllbnQ6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihWTSYgdm0pCiAgICAgewotICAgICAgICBz
dGF0aWNfYXNzZXJ0KCFDZWxsVHlwZTo6bmVlZHNEZXN0cnVjdGlvbiwgIiIpOworICAgICAgICBz
dGF0aWNfYXNzZXJ0KCFDZWxsVHlwZTo6bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgICAgIHJldHVy
biAmdm0uc2NvcGVkQXJndW1lbnRzU3BhY2UoKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50c1RhYmxlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50c1RhYmxlLmNwcAppbmRleCBh
YTJkZjRjZDE4MGIzYjI1ZGNiMDdjOGNiZGM4ZmY3ZGJjMjkwMGEwLi5mYWUyNTA4ZDVkMmQyZWM2
YTBkZTMyNDcxMzYyYTU5YTViYmRhN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TY29wZWRBcmd1bWVudHNUYWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzVGFibGUuY3BwCkBAIC0xMDQsNyArMTA0LDcg
QEAgU2NvcGVkQXJndW1lbnRzVGFibGUqIFNjb3BlZEFyZ3VtZW50c1RhYmxlOjp0cnlTZXRMZW5n
dGgoVk0mIHZtLCB1aW50MzJfdCBuZXdMZW4KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTY29wZU9mZnNldD46OnZh
bHVlLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxT
Y29wZU9mZnNldD46OnZhbHVlKTsKIAogU2NvcGVkQXJndW1lbnRzVGFibGUqIFNjb3BlZEFyZ3Vt
ZW50c1RhYmxlOjp0cnlTZXQoVk0mIHZtLCB1aW50MzJfdCBpLCBTY29wZU9mZnNldCB2YWx1ZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlB
ZGFwdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUFkYXB0
b3JzLmgKaW5kZXggMDQ5MmVlYzlmMDUyNjc4ZjAwZGFlMDA0ZjgyNGM5MmVmMjRjZGQ1Ni4uNDM1
YTRlMTBjMzU5MTdmNzcxNGRkMDk5ZGQwYzg0NWVhYTMwODU5YiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUFkYXB0b3JzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheUFkYXB0b3JzLmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgc3RydWN0IEludGVncmFsVHlwZWRBcnJheUFkYXB0b3IgewogCiAgICAgc3RhdGljIEpT
VmFsdWUgdG9KU1ZhbHVlKEpTR2xvYmFsT2JqZWN0KiwgVHlwZSB2YWx1ZSkKICAgICB7Ci0gICAg
ICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfZmxvYXRpbmdfcG9pbnQ8VHlwZT46OnZhbHVlLCAi
Iik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfZmxvYXRpbmdfcG9pbnQ8VHlwZT46
OnZhbHVlKTsKICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHZhbHVlKTsKICAgICB9CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5VHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJheVR5cGUuaAppbmRleCA2
ZjQwZTFjZjhmMDdhMGJmZmQyZDdjMmMyNDkwMjVjMmQ1MGQzNjQ0Li5iM2IyZjcwNWYzMTJjOGMw
YTY3NjQzM2Y5NDZiNDQwMTAzMjQ4YTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9UeXBlZEFycmF5VHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1R5cGVkQXJyYXlUeXBlLmgKQEAgLTY0LDExICs2NCwxMSBAQCBlbnVtIGNsYXNzIFR5
cGVkQXJyYXlDb250ZW50VHlwZSA6IHVpbnQ4X3QgewogfTsKIAogI2RlZmluZSBBU1NFUlRfVFlQ
RURfQVJSQVlfVFlQRShuYW1lKSBcCi0gICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50
MzJfdD4oVHlwZSAjIyBuYW1lKSA9PSAoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG5hbWUgIyMgQXJy
YXlUeXBlKSAtIEZpcnN0VHlwZWRBcnJheVR5cGUgKyBzdGF0aWNfY2FzdDx1aW50MzJfdD4oVHlw
ZUludDgpKSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFR5
cGUgIyMgbmFtZSkgPT0gKHN0YXRpY19jYXN0PHVpbnQzMl90PihuYW1lICMjIEFycmF5VHlwZSkg
LSBGaXJzdFR5cGVkQXJyYXlUeXBlICsgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFR5cGVJbnQ4KSkp
OwogICAgIEZPUl9FQUNIX1RZUEVEX0FSUkFZX1RZUEVfRVhDTFVESU5HX0RBVEFfVklFVyhBU1NF
UlRfVFlQRURfQVJSQVlfVFlQRSkKICN1bmRlZiBBU1NFUlRfVFlQRURfQVJSQVlfVFlQRQogCi1z
dGF0aWNfYXNzZXJ0KFR5cGVEYXRhVmlldyA9PSAoRGF0YVZpZXdUeXBlIC0gRmlyc3RUeXBlZEFy
cmF5VHlwZSArIFR5cGVJbnQ4KSwgIiIpOworc3RhdGljX2Fzc2VydChUeXBlRGF0YVZpZXcgPT0g
KERhdGFWaWV3VHlwZSAtIEZpcnN0VHlwZWRBcnJheVR5cGUgKyBUeXBlSW50OCkpOwogCiBpbmxp
bmUgdW5zaWduZWQgdG9JbmRleChUeXBlZEFycmF5VHlwZSB0eXBlKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmgKaW5kZXggMmZiMWIxNmNlN2YwYmQ3M2Vh
YjY4NzhkZjQzNGNjMmI2MjUzZGM1NS4uODMzZjJkYjgwYjJlYmU4NzYxNGVmNDU0Mjg1ZDczYjE2
ZDM3ZjcwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vha01h
cEltcGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XZWFrTWFwSW1wbC5o
CkBAIC0zOCw3ICszOCw3IEBAIHN0cnVjdCBXZWFrTWFwQnVja2V0RGF0YUtleSB7CiAgICAgc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVR5cGUgVHlwZSA9IEhhc2hUYWJsZVR5cGU6OktleTsKICAgICBX
cml0ZUJhcnJpZXI8SlNPYmplY3Q+IGtleTsKIH07Ci1zdGF0aWNfYXNzZXJ0KHNpemVvZihXZWFr
TWFwQnVja2V0RGF0YUtleSkgPT0gc2l6ZW9mKHZvaWQqKSwgIiIpOworc3RhdGljX2Fzc2VydChz
aXplb2YoV2Vha01hcEJ1Y2tldERhdGFLZXkpID09IHNpemVvZih2b2lkKikpOwogCiBzdHJ1Y3Qg
V2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZSB7CiAgICAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVR5
cGUgVHlwZSA9IEhhc2hUYWJsZVR5cGU6OktleVZhbHVlOwpAQCAtNDgsNyArNDgsNyBAQCBzdHJ1
Y3QgV2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZSB7CiAjZW5kaWYKICAgICBXcml0ZUJhcnJpZXI8
VW5rbm93bj4gdmFsdWU7CiB9Owotc3RhdGljX2Fzc2VydChzaXplb2YoV2Vha01hcEJ1Y2tldERh
dGFLZXlWYWx1ZSkgPT0gMTYsICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFdlYWtNYXBCdWNr
ZXREYXRhS2V5VmFsdWUpID09IDE2KTsKIAogQUxXQVlTX0lOTElORSB1aW50MzJfdCBqc1dlYWtN
YXBIYXNoKEpTT2JqZWN0KiBrZXkpOwogQUxXQVlTX0lOTElORSB1aW50MzJfdCBuZXh0Q2FwYWNp
dHlBZnRlckJhdGNoUmVtb3ZhbCh1aW50MzJfdCBjYXBhY2l0eSwgdWludDMyX3Qga2V5Q291bnQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJh
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5j
cHAKaW5kZXggOThlZGIxZWRiZWZiZTYxNzFkZGVlNzE4YzhmNzAyNDRjYmE0NzM4MC4uMmQ3Mjlh
ZTI1ZWQzMjRhNTcyYzdlZDNkZDRmMGZiNDJiYWE1MzJiMyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCkBAIC0zNzcwLDcgKzM3NzAs
NyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QodW5zaWduZWQgdGFibGVJ
bmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYQogICAgICAgICBhcHBlbmQoTW92ZSwgQXJnOjph
ZGRyKGNhbGxlZVNpZ25hdHVyZUluZGV4LCBXYXNtVG9XYXNtSW1wb3J0YWJsZUZ1bmN0aW9uOjpv
ZmZzZXRPZlNpZ25hdHVyZUluZGV4KCkpLCBjYWxsZWVTaWduYXR1cmVJbmRleCk7CiAKICAgICAg
ICAgZW1pdENoZWNrKFsmXSB7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNpZ25hdHVyZTo6
aW52YWxpZEluZGV4ID09IDAsICIiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU2lnbmF0
dXJlOjppbnZhbGlkSW5kZXggPT0gMCk7CiAgICAgICAgICAgICByZXR1cm4gSW5zdChCcmFuY2hU
ZXN0NjQsIG51bGxwdHIsIEFyZzo6cmVzQ29uZChNYWNyb0Fzc2VtYmxlcjo6WmVybyksIGNhbGxl
ZVNpZ25hdHVyZUluZGV4LCBjYWxsZWVTaWduYXR1cmVJbmRleCk7CiAgICAgICAgIH0sIFs9LCB0
aGlzXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7CiAgICAgICAgICAgICB0aGlzLT5lbWl0VGhyb3dFeGNlcHRpb24oaml0LCBFeGNlcHRp
b25UeXBlOjpOdWxsVGFibGVFbnRyeSk7CkBAIC0zOTk4LDcgKzM5OTgsNyBAQCBFeHBlY3RlZDxz
dGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4sIFN0cmluZz4gcGFyc2VBbmRDb21waWxl
QWlyKENvbXBpbGF0aQogdGVtcGxhdGUgPHR5cGVuYW1lIEludFR5cGU+CiB2b2lkIEFpcklSR2Vu
ZXJhdG9yOjplbWl0Q2hlY2tzRm9yTW9kT3JEaXYoYm9vbCBpc1NpZ25lZERpdiwgRXhwcmVzc2lv
blR5cGUgbGVmdCwgRXhwcmVzc2lvblR5cGUgcmlnaHQpCiB7Ci0gICAgc3RhdGljX2Fzc2VydChz
aXplb2YoSW50VHlwZSkgPT0gNCB8fCBzaXplb2YoSW50VHlwZSkgPT0gOCwgIiIpOworICAgIHN0
YXRpY19hc3NlcnQoc2l6ZW9mKEludFR5cGUpID09IDQgfHwgc2l6ZW9mKEludFR5cGUpID09IDgp
OwogCiAgICAgZW1pdENoZWNrKFsmXSB7CiAgICAgICAgIHJldHVybiBJbnN0KHNpemVvZihJbnRU
eXBlKSA9PSA0ID8gQnJhbmNoVGVzdDMyIDogQnJhbmNoVGVzdDY0LCBudWxscHRyLCBBcmc6OnJl
c0NvbmQoTWFjcm9Bc3NlbWJsZXI6Olplcm8pLCByaWdodCwgcmlnaHQpOwpAQCAtNDAzNCw3ICs0
MDM0LDcgQEAgdm9pZCBBaXJJUkdlbmVyYXRvcjo6ZW1pdENoZWNrc0Zvck1vZE9yRGl2KGJvb2wg
aXNTaWduZWREaXYsIEV4cHJlc3Npb25UeXBlIGxlZnQKIHRlbXBsYXRlIDx0eXBlbmFtZSBJbnRU
eXBlPgogdm9pZCBBaXJJUkdlbmVyYXRvcjo6ZW1pdE1vZE9yRGl2KGJvb2wgaXNEaXYsIEV4cHJl
c3Npb25UeXBlIGxocywgRXhwcmVzc2lvblR5cGUgcmhzLCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0
KQogewotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEludFR5cGUpID09IDQgfHwgc2l6ZW9mKElu
dFR5cGUpID09IDgsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbnRUeXBlKSA9PSA0
IHx8IHNpemVvZihJbnRUeXBlKSA9PSA4KTsKIAogICAgIHJlc3VsdCA9IHNpemVvZihJbnRUeXBl
KSA9PSA0ID8gZzMyKCkgOiBnNjQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJJbnRlcnByZXRlci5jcHAKaW5kZXggYWIwMTYxZWU3ZThmMGY3MDZjMzJhYWI1OTNiNTI5
ZTg4ZjNjZjc4OC4uMzE3Yjg0OGE2MTUyNjAzY2QxYWQxMWQ2ZTk2ODY5NzFhODZjZDkyNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckludGVycHJldGVyLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwCkBAIC03
Niw3ICs3Niw3IEBAIGNsYXNzIEludGVycHJldGVyIHsKIAogICAgICAgICBzdGF0aWMgc2l6ZV90
IGFsbG9jYXRpb25TaXplKHVuc2lnbmVkIG51bWJlck9mRnJhbWVzKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoRGlzanVuY3Rpb25Db250ZXh0KSA8PSBzaXpl
b2Yodm9pZCopLCAiIik7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoRGlzanVu
Y3Rpb25Db250ZXh0KSA8PSBzaXplb2Yodm9pZCopKTsKICAgICAgICAgICAgIHNpemVfdCByYXdT
aXplID0gc2l6ZW9mKERpc2p1bmN0aW9uQ29udGV4dCkgLSBzaXplb2YodWludHB0cl90KSArIENo
ZWNrZWQ8c2l6ZV90PihudW1iZXJPZkZyYW1lcykgKiBzaXplb2YodWludHB0cl90KTsKICAgICAg
ICAgICAgIHNpemVfdCByb3VuZGVkU2l6ZSA9IHJvdW5kVXBUb011bHRpcGxlT2Y8c2l6ZW9mKHZv
aWQqKT4ocmF3U2l6ZSk7CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChyb3VuZGVkU2l6ZSA+
PSByYXdTaXplKTsKQEAgLTEzNSw3ICsxMzUsNyBAQCBjbGFzcyBJbnRlcnByZXRlciB7CiAKICAg
ICAgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6ZSh1bnNpZ25lZCBudW1iZXJPZlN1YnBh
dHRlcm5zKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoUGFy
ZW50aGVzZXNEaXNqdW5jdGlvbkNvbnRleHQpIDw9IHNpemVvZih2b2lkKiksICIiKTsKKyAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihQYXJlbnRoZXNlc0Rpc2p1bmN0aW9uQ29udGV4
dCkgPD0gc2l6ZW9mKHZvaWQqKSk7CiAgICAgICAgICAgICBzaXplX3QgcmF3U2l6ZSA9IHNpemVv
ZihQYXJlbnRoZXNlc0Rpc2p1bmN0aW9uQ29udGV4dCkgLSBzaXplb2YodW5zaWduZWQpICsgKENo
ZWNrZWQ8c2l6ZV90PihudW1iZXJPZlN1YnBhdHRlcm5zKSAqIDJVKSAqIHNpemVvZih1bnNpZ25l
ZCk7CiAgICAgICAgICAgICBzaXplX3Qgcm91bmRlZFNpemUgPSByb3VuZFVwVG9NdWx0aXBsZU9m
PHNpemVvZih2b2lkKik+KHJhd1NpemUpOwogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocm91
bmRlZFNpemUgPj0gcmF3U2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db21wYWN0
UG9pbnRlclR1cGxlLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db21wYWN0UG9pbnRlclR1cGxlLmgKaW5k
ZXggZjI5YTVkYmE0ZjJhNmQ2Yzk2OWUyMDg5MTAwZDgxOTVlM2FjYzI2MS4uNTgwMTM1ZDM3Njgx
YWU3ZWM3ZWI5ZTBhMjcwMGJiZDEyZTYwNmE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Q29tcGFjdFBvaW50ZXJUdXBsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbXBhY3RQb2ludGVy
VHVwbGUuaApAQCAtNDQsOSArNDQsOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBQb2ludGVyVHlwZSwg
dHlwZW5hbWUgVHlwZT4KIGNsYXNzIENvbXBhY3RQb2ludGVyVHVwbGUgZmluYWwgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9m
KFR5cGUpIDw9IDIsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfcG9pbnRlcjxQb2lu
dGVyVHlwZT46OnZhbHVlLCAiIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ludGVncmFs
PFR5cGU+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2VudW08VHlwZT46OnZhbHVlLCAiIik7CisgICAgc3Rh
dGljX2Fzc2VydChzaXplb2YoVHlwZSkgPD0gMik7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3BvaW50ZXI8UG9pbnRlclR5cGU+Ojp2YWx1ZSk7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X2ludGVncmFsPFR5cGU+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2VudW08VHlwZT46OnZhbHVlKTsKICAg
ICB1c2luZyBVbnNpZ25lZFR5cGUgPSBzdGQ6Om1ha2VfdW5zaWduZWRfdDxzdGQ6OmNvbmRpdGlv
bmFsX3Q8c3RkOjppc19zYW1lX3Y8VHlwZSwgYm9vbD4sIHVpbnQ4X3QsIFR5cGU+PjsKICAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihVbnNpZ25lZFR5cGUpID09IHNpemVvZihUeXBlKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaCBiL1NvdXJjZS9XVEYvd3RmL0Zh
c3RNYWxsb2MuaAppbmRleCAxMjY1MjY2ZDE5NWQxZjg4OWJhYjg3MDM1NDA2NGM3ODE3NmZmNGUz
Li4yODdhMDEyNjA1MGJlZGY3MDFmNzIxMTIyMWEzMjQ1NDU0YTI1OTM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKKysrIGIvU291cmNlL1dURi93dGYvRmFzdE1hbGxv
Yy5oCkBAIC0yNTQsNyArMjU0LDcgQEAgc3RydWN0IEZhc3RNYWxsb2MgewogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgogc3RydWN0IEZhc3RGcmVlIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpOwogCiAgICAgdm9pZCBv
cGVyYXRvcigpKFQqIHBvaW50ZXIpIGNvbnN0CiAgICAgewpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0
cnVjdCBGYXN0RnJlZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgRmFzdEZyZWU8
VFtdPiB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8
VD46OnZhbHVlLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0
cnVjdGlibGU8VD46OnZhbHVlKTsKIAogICAgIHZvaWQgb3BlcmF0b3IoKShUKiBwb2ludGVyKSBj
b25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Z1bmN0aW9uVHJhaXRzLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlvblRyYWl0cy5oCmluZGV4IGIyNDA2MmFhNWNiZmZjYTYz
NDBlYmZmOWRmOGNkNWNiZTBmZmZkNTYuLmIwYzZjMzAzZmViN2Q2NDRhOGM0ZDJlYjhlYWM4ZDRk
ZjU0N2Q4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Z1bmN0aW9uVHJhaXRzLmgKKysr
IGIvU291cmNlL1dURi93dGYvRnVuY3Rpb25UcmFpdHMuaApAQCAtMzgsNyArMzgsNyBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgogc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzbG90c0ZvckNDYWxs
QXJndW1lbnQoKQogewogICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfY2xhc3M8VD46OnZhbHVl
IHx8IHNpemVvZihUKSA8PSBzaXplb2Yodm9pZCopLCAiVGhpcyBkb2Vzbid0IHN1cHBvcnQgY29t
cGxleCBzdHJ1Y3RzLiIpOwotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFQpID09IDggfHwgc2l6
ZW9mKFQpIDw9IDQsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKSA9PSA4IHx8IHNp
emVvZihUKSA8PSA0KTsKICAgICAvLyBUaGlzIGFzc3VtZXMgdGhhdCBhbGwgaW50ZWdyYWwgdmFs
dWVzIGFyZSBwYXNzZWQgb24gdGhlIHN0YWNrLgogICAgIGlmIChzaXplb2YoVCkgPT0gOCkKICAg
ICAgICAgcmV0dXJuIDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9JbnQxMjguY3BwIGIv
U291cmNlL1dURi93dGYvSW50MTI4LmNwcAppbmRleCBhMTQ2ZTg0NmY1OWZmNTI3MTJjMjI1ZmYz
ZDljYjI1NWY1ODJiMzYyLi4yY2U4MGM5MTZmZDI0MzU4ODQ2YTM3N2JhMjBhNmQ2Y2FlZTQ4ZjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnQxMjguY3BwCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0ludDEyOC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIERpdk1v
ZEltcGwoVUludDEyOEltcGwgZGl2aWRlbmQsIFVJbnQxMjhJbXBsIGRpdmlzb3IsIFVJbnQxMjgK
IAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBzdGF0aWMgVUludDEyOEltcGwgTWFrZVVJbnQxMjhG
cm9tRmxvYXQoVCB2KSB7Ci0gIHN0YXRpY19hc3NlcnQoc3RkOjppc19mbG9hdGluZ19wb2ludDxU
Pjo6dmFsdWUsICIiKTsKKyAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+
Ojp2YWx1ZSk7CiAKICAgLy8gUm91bmRpbmcgYmVoYXZpb3IgaXMgdG93YXJkcyB6ZXJvLCBzYW1l
IGFzIGZvciBidWlsdC1pbiB0eXBlcy4KIApAQCAtMTEzLDggKzExMyw4IEBAIHN0YXRpYyBVSW50
MTI4SW1wbCBNYWtlVUludDEyOEZyb21GbG9hdChUIHYpIHsKIC8vIEl0IGlzIG1vcmUgd29yaywg
c28gb25seSB1c2Ugd2hlbiB3ZSBuZWVkIHRoZSB3b3JrYXJvdW5kLgogc3RhdGljIFVJbnQxMjhJ
bXBsIE1ha2VVSW50MTI4RnJvbUZsb2F0KGxvbmcgZG91YmxlIHYpIHsKICAgLy8gR28gNTAgYml0
cyBhdCBhIHRpbWUsIHRoYXQgZml0cyBpbiBhIGRvdWJsZQotICBzdGF0aWNfYXNzZXJ0KHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6ZGlnaXRzID49IDUwLCAiIik7Ci0gIHN0YXRpY19hc3Nl
cnQoc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46OmRpZ2l0cyA8PSAxNTAsICIiKTsK
KyAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OmRpZ2l0cyA+PSA1
MCk7CisgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJsZT46OmRp
Z2l0cyA8PSAxNTApOwogICAvLyBVbmRlZmluZWQgYmVoYXZpb3IgaWYgdiBpcyBub3QgZmluaXRl
IG9yIGNhbm5vdCBmaXQgaW50byBVSW50MTI4SW1wbC4KICAgYXNzZXJ0KHN0ZDo6aXNmaW5pdGUo
dikgJiYgdiA+IC0xICYmIHYgPCBzdGQ6OmxkZXhwKDEuMEwsIDEyOCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9NYWxsb2NQdHIuaCBiL1NvdXJjZS9XVEYvd3RmL01hbGxvY1B0ci5o
CmluZGV4IDU3ZThlNjYxMDA4YTExMmQxMDZlMDgxYTQyNGFkZDYxMDU4NTA0MTIuLmRiMTgyNDk5
ZDYyMzM1NWU3NDkxYTQwNDQ1YzQ1NTJiYTI4MThiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL01hbGxvY1B0ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01hbGxvY1B0ci5oCkBAIC0xNDIs
NyArMTQyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgTWFsbG9jID0gRmFzdE1h
bGxvYz4gY2xhc3MgTWFsbG9jUHRyIHsKICAgICBUKiBtX3B0ciB7IG51bGxwdHIgfTsKIH07CiAK
LXN0YXRpY19hc3NlcnQoc2l6ZW9mKE1hbGxvY1B0cjxpbnQ+KSA9PSBzaXplb2YoaW50KiksICIi
KTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKE1hbGxvY1B0cjxpbnQ+KSA9PSBzaXplb2YoaW50Kikp
OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBVLCB0eXBlbmFtZSBPdGhlck1hbGxvYz4gTWFsbG9jUHRy
PFUsIE90aGVyTWFsbG9jPiBhZG9wdE1hbGxvY1B0cihVKiBwdHIpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9NYXJrYWJsZS5oIGIvU291cmNlL1dURi93dGYvTWFya2FibGUuaAppbmRl
eCAxMGVlY2MzYTIyZmUyZGU4MzdjY2ZkNzkxMWQ0MTc1ZTI3YWM3MzJlLi42ZGU0N2Q1MjQyZjY3
YmE0MGZlMWFkNTRjM2VhYWNmMDJhZmRlYzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9N
YXJrYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01hcmthYmxlLmgKQEAgLTQ3LDcgKzQ3LDcg
QEAgdGVtcGxhdGU8CiAgICAgdHlwZW5hbWUgRW51bVR5cGUsCiAgICAgdHlwZW5hbWUgc3RkOjp1
bmRlcmx5aW5nX3R5cGU8RW51bVR5cGU+Ojp0eXBlIGNvbnN0YW50ID0gc3RkOjpudW1lcmljX2xp
bWl0czx0eXBlbmFtZSBzdGQ6OnVuZGVybHlpbmdfdHlwZTxFbnVtVHlwZT46OnR5cGU+OjptYXgo
KT4KIHN0cnVjdCBFbnVtTWFya2FibGVUcmFpdHMgewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c19lbnVtPEVudW1UeXBlPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
ZW51bTxFbnVtVHlwZT46OnZhbHVlKTsKICAgICB1c2luZyBVbmRlcmx5aW5nVHlwZSA9IHR5cGVu
YW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVudW1UeXBlPjo6dHlwZTsKIAogICAgIGNvbnN0ZXhw
ciBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoRW51bVR5cGUgdmFsdWUpCkBAIC02Myw3ICs2Myw3
IEBAIHN0cnVjdCBFbnVtTWFya2FibGVUcmFpdHMgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRl
Z3JhbFR5cGUsIEludGVncmFsVHlwZSBjb25zdGFudCA9IDA+CiBzdHJ1Y3QgSW50ZWdyYWxNYXJr
YWJsZVRyYWl0cyB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ludGVncmFsPEludGVncmFs
VHlwZT46OnZhbHVlLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ludGVncmFsPElu
dGVncmFsVHlwZT46OnZhbHVlKTsKICAgICBjb25zdGV4cHIgc3RhdGljIGJvb2wgaXNFbXB0eVZh
bHVlKEludGVncmFsVHlwZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBj
b25zdGFudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1B0clRhZy5oIGIvU291cmNlL1dU
Ri93dGYvUHRyVGFnLmgKaW5kZXggMjViNWVkZGM1Zjg4ZTY3Mjk1MTQwODgyMmRlMjNlOTc3Yzg3
YjdiNS4uMmU4MzQwZTIwYmE5NWUzNTZmYTQwNTYyYTUzYmFlMDFjMDRhYjU2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUHRyVGFnLmgKKysrIGIvU291cmNlL1dURi93dGYvUHRyVGFnLmgK
QEAgLTEyOCwxMCArMTI4LDEwIEBAIGNvbnN0ZXhwciB1aW50cHRyX3QgbWFrZVB0clRhZ0hhc2go
Y29uc3QgY2hhciAoJnN0cilbTl0pCiAKICNkZWZpbmUgV1RGX0RFQ0xBUkVfUFRSVEFHKHRhZykg
XAogICAgIGNvbnN0ZXhwciBQdHJUYWcgdGFnID0gc3RhdGljX2Nhc3Q8UHRyVGFnPihXVEZfUFRS
VEFHX0hBU0goI3RhZykpOyBcCi0gICAgc3RhdGljX2Fzc2VydCh0YWcgIT0gTm9QdHJUYWcgJiYg
dGFnICE9IENGdW5jdGlvblB0clRhZywgIiIpOworICAgIHN0YXRpY19hc3NlcnQodGFnICE9IE5v
UHRyVGFnICYmIHRhZyAhPSBDRnVuY3Rpb25QdHJUYWcpOwogCi1zdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnRwdHJfdD4oTm9QdHJUYWcpID09IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMCks
ICIiKTsKLXN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludHB0cl90PihDRnVuY3Rpb25QdHJU
YWcpID09IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSksICIiKTsKK3N0YXRpY19hc3NlcnQoc3Rh
dGljX2Nhc3Q8dWludHB0cl90PihOb1B0clRhZykgPT0gc3RhdGljX2Nhc3Q8dWludHB0cl90Pigw
KSk7CitzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oQ0Z1bmN0aW9uUHRyVGFn
KSA9PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKTsKIAogI2lmIENPTVBJTEVSKE1TVkMpCiAj
cHJhZ21hIHdhcm5pbmcocHVzaCkKQEAgLTUzMiw3ICs1MzIsNyBAQCBpbmxpbmUgVCogcmV0YWdB
cnJheVB0cihUKiBwdHIsIHNpemVfdCwgc2l6ZV90KQogdGVtcGxhdGUgPFB0clRhZywgdHlwZW5h
bWUgSW50VHlwZT4KIGlubGluZSBJbnRUeXBlIHRhZ0ludChJbnRUeXBlIHB0ckludCkKIHsKLSAg
ICBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbnRUeXBlKSA9PSBzaXplb2YodWludHB0cl90KSwgIiIp
OworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEludFR5cGUpID09IHNpemVvZih1aW50cHRyX3Qp
KTsKICAgICByZXR1cm4gcHRySW50OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9T
ZWNvbmRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmgKaW5kZXggZDI4MmRiYmY3MTViZTc0
Mjc4OWVhMTBmMWNjYjI5YWQxNDUzNTY0Zi4uNTVjMWZjZjVmYmQ1MzY2OTM5NWE3N2NmNjI0MTQ3
ZDY3MWNlZjlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU2Vjb25kcy5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1NlY29uZHMuaApAQCAtNTcsMTEgKzU3LDExIEBAIGNsYXNzIFNlY29uZHMg
ZmluYWwgewogICAgIGNvbnN0ZXhwciBkb3VibGUgbmFub3NlY29uZHMoKSBjb25zdCB7IHJldHVy
biBtaWNyb3NlY29uZHMoKSAqIDEwMDA7IH0KIAogICAgIC8vIEtlZXAgaW4gbWluZCB0aGF0IFNl
Y29uZHMgaXMgaGVsZCBpbiBkb3VibGUuIElmIHRoZSB2YWx1ZSBpcyBub3QgaW4gcmFuZ2Ugb2Yg
NTNiaXQgaW50ZWdlciwgdGhlIHJlc3VsdCBtYXkgbm90IGJlIHByZWNpc2UuCi0gICAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gVCBtaW51dGVzQXMoKSBjb25zdCB7IHN0YXRpY19hc3NlcnQoc3RkOjpp
c19pbnRlZ3JhbDxUPjo6dmFsdWUsICIiKTsgcmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPiht
aW51dGVzKCkpOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBzZWNvbmRzQXMoKSBjb25z
dCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUsICIiKTsgcmV0dXJu
IGNsYW1wVG9BY2NlcHRpbmc2NDxUPihzZWNvbmRzKCkpOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gVCBtaWxsaXNlY29uZHNBcygpIGNvbnN0IHsgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2lu
dGVncmFsPFQ+Ojp2YWx1ZSwgIiIpOyByZXR1cm4gY2xhbXBUb0FjY2VwdGluZzY0PFQ+KG1pbGxp
c2Vjb25kcygpKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgbWljcm9zZWNvbmRzQXMo
KSBjb25zdCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUsICIiKTsg
cmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihtaWNyb3NlY29uZHMoKSk7IH0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBUIG5hbm9zZWNvbmRzQXMoKSBjb25zdCB7IHN0YXRpY19hc3NlcnQo
c3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUsICIiKTsgcmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2
NDxUPihuYW5vc2Vjb25kcygpKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgbWludXRl
c0FzKCkgY29uc3QgeyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlKTsg
cmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihtaW51dGVzKCkpOyB9CisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gVCBzZWNvbmRzQXMoKSBjb25zdCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19p
bnRlZ3JhbDxUPjo6dmFsdWUpOyByZXR1cm4gY2xhbXBUb0FjY2VwdGluZzY0PFQ+KHNlY29uZHMo
KSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIG1pbGxpc2Vjb25kc0FzKCkgY29uc3Qg
eyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlKTsgcmV0dXJuIGNsYW1w
VG9BY2NlcHRpbmc2NDxUPihtaWxsaXNlY29uZHMoKSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBUIG1pY3Jvc2Vjb25kc0FzKCkgY29uc3QgeyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50
ZWdyYWw8VD46OnZhbHVlKTsgcmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihtaWNyb3NlY29u
ZHMoKSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIG5hbm9zZWNvbmRzQXMoKSBjb25z
dCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUpOyByZXR1cm4gY2xh
bXBUb0FjY2VwdGluZzY0PFQ+KG5hbm9zZWNvbmRzKCkpOyB9CiAgICAgCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBTZWNvbmRzIGZyb21NaW51dGVzKGRvdWJsZSBtaW51dGVzKQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJhcy5oIGIvU291cmNlL1dURi93dGYvU3Rk
TGliRXh0cmFzLmgKaW5kZXggZWNkMzcxYzYyMzI2YzhiYzhjZThhNGE4YmE4YjRhYzljMDliYzA4
Mi4uY2VmOTFlZDhlMWU0ODQ2OTViMDE2OGNmZGY2MjU0MDdkYTBjOTkzMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysrIGIvU291cmNlL1dURi93dGYvU3RkTGli
RXh0cmFzLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCB0ZW1wbGF0ZTxzaXplX3QgZGl2aXNvcj4gY29u
c3RleHByIHNpemVfdCByb3VuZFVwVG9NdWx0aXBsZU9mKHNpemVfdCB4KQogCiB0ZW1wbGF0ZTxz
aXplX3QgZGl2aXNvciwgdHlwZW5hbWUgVD4gaW5saW5lIFQqIHJvdW5kVXBUb011bHRpcGxlT2Yo
VCogeCkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKikgPT0gc2l6ZW9mKHNpemVfdCks
ICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKikgPT0gc2l6ZW9mKHNpemVfdCkpOwog
ICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFQqPihyb3VuZFVwVG9NdWx0aXBsZU9mPGRpdmlz
b3I+KHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Pih4KSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9TeXN0ZW1GcmVlLmggYi9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1GcmVlLmgKaW5k
ZXggNzNiNjkzZjA2ODM4YmNjOGNjYzgzYTQ2OGQ0ZGJjM2E4YWI4MmY4My4uMzFkY2Q0ODc1OTRk
MTU4MmE0YTMwMDUwZDk0MmU4YTZjNzI0ZTJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
U3lzdGVtRnJlZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N5c3RlbUZyZWUuaApAQCAtMzEsNyAr
MzEsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBT
eXN0ZW1GcmVlIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0
aWJsZTxUPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5
X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpOwogCiAgICAgdm9pZCBvcGVyYXRvcigpKFQqIHBvaW50
ZXIpIGNvbnN0CiAgICAgewpAQCAtNDEsNyArNDEsNyBAQCBzdHJ1Y3QgU3lzdGVtRnJlZSB7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgU3lzdGVtRnJlZTxUW10+IHsKLSAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUsICIiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFs
dWUpOwogCiAgICAgdm9pZCBvcGVyYXRvcigpKFQqIHBvaW50ZXIpIGNvbnN0CiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvVW5hbGlnbmVkQWNjZXNzLmggYi9Tb3VyY2UvV1RGL3d0
Zi9VbmFsaWduZWRBY2Nlc3MuaAppbmRleCAzYTM1YjM4ZjRjMDIzNjc5YWM3Y2ZjOWM0NjU2MDg0
YTM5MTQ4M2IyLi44ZmUyOGE0MmQ1MDMxZjA5NDg3NWUyYzFlMmQ0NWE5NDJmOGM1ZWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VbmFsaWduZWRBY2Nlc3MuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9VbmFsaWduZWRBY2Nlc3MuaApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV1RGIHsK
IHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBpbmxpbmUgVHlwZSB1bmFsaWduZWRMb2FkKGNvbnN0
IHZvaWQqIHBvaW50ZXIpCiB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9j
b3B5YWJsZTxUeXBlPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJp
dmlhbGx5X2NvcHlhYmxlPFR5cGU+Ojp2YWx1ZSk7CiAgICAgVHlwZSByZXN1bHQgeyB9OwogICAg
IG1lbWNweSgmcmVzdWx0LCBwb2ludGVyLCBzaXplb2YoVHlwZSkpOwogICAgIHJldHVybiByZXN1
bHQ7CkBAIC00Myw3ICs0Myw3IEBAIGlubGluZSBUeXBlIHVuYWxpZ25lZExvYWQoY29uc3Qgdm9p
ZCogcG9pbnRlcikKIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBpbmxpbmUgdm9pZCB1bmFsaWdu
ZWRTdG9yZSh2b2lkKiBwb2ludGVyLCBUeXBlIHZhbHVlKQogewotICAgIHN0YXRpY19hc3NlcnQo
c3RkOjppc190cml2aWFsbHlfY29weWFibGU8VHlwZT46OnZhbHVlLCAiIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9jb3B5YWJsZTxUeXBlPjo6dmFsdWUpOwogICAgIG1l
bWNweShwb2ludGVyLCAmdmFsdWUsIHNpemVvZihUeXBlKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL1VuaXF1ZUFycmF5LmggYi9Tb3VyY2UvV1RGL3d0Zi9VbmlxdWVBcnJheS5o
CmluZGV4IDBlN2Y3OWZlNTViZmY1NmI5NGMwNzUwOGU4YzBkMTgzZDU4YmI2NzEuLmQxMGRhNzJi
NzhkMmYwMTY3MzlmYzQ3ZDA1ZjllYTc0NjdiZGEzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1VuaXF1ZUFycmF5LmgKKysrIGIvU291cmNlL1dURi93dGYvVW5pcXVlQXJyYXkuaApAQCAt
MzgsNyArMzgsNyBAQCB0ZW1wbGF0ZTxib29sIGlzVHJpdmlhbGx5RGVzdHJ1Y3RpYmxlLCB0eXBl
bmFtZSBUPiBzdHJ1Y3QgVW5pcXVlQXJyYXlNYWtlcjsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
IHN0cnVjdCBVbmlxdWVBcnJheUZyZWUgewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2
aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rk
Ojppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSk7CiAKICAgICB2b2lkIG9wZXJh
dG9yKCkoVCogcG9pbnRlcikgY29uc3QKICAgICB7CkBAIC00OCw3ICs0OCw3IEBAIHN0cnVjdCBV
bmlxdWVBcnJheUZyZWUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IFVuaXF1ZUFy
cmF5RnJlZTxUW10+IHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3Ry
dWN0aWJsZTxUPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlh
bGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpOwogCiAgICAgdm9pZCBvcGVyYXRvcigpKFQqIHBv
aW50ZXIpIGNvbnN0CiAgICAgewpAQCAtNjgsNyArNjgsNyBAQCBzdHJ1Y3QgVW5pcXVlQXJyYXlN
YWtlcjx0cnVlLCBUPiB7CiAgICAgICAgIC8vIElmIGl0IGlzIGFjY2VwdGFibGUsIHdlIGNhbiBq
dXN0IHVzZSBWZWN0b3I8VD4gaW5zdGVhZC4gU28gdGhpcyBVbmlxdWVBcnJheTxUPiBvbmx5CiAg
ICAgICAgIC8vIGFjY2VwdHMgdGhlIHR5cGUgVCB3aGljaCBoYXMgYSB0cml2aWFsIGRlc3RydWN0
b3IuIFRoaXMgYWxsb3dzIHVzIHRvIHNraXAgY2FsbGluZwogICAgICAgICAvLyBkZXN0cnVjdG9y
cyBmb3IgTiBlbGVtZW50cy4gQW5kIHRoaXMgYWxsb3dzIFVuaXF1ZUFycmF5PFQ+IG5vdCB0byBz
dG9yZSBpdHMgTiBzaXplLgotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5
X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUsICIiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlKTsKIAogICAgICAgICAvLyBEbyBu
b3QgdXNlIHBsYWNlbWVudCBuZXcgbGlrZSBgbmV3IChzdG9yYWdlKSBUW3NpemVdKClgLiBgbmV3
IFRbc2l6ZV0oKWAgcmVxdWlyZXMKICAgICAgICAgLy8gbGFyZ2VyIHN0b3JhZ2UgdGhhbiB0aGUg
YHNpemVvZihUKSAqIHNpemVgIHN0b3JhZ2Ugc2luY2UgaXQgd2FudCB0byBzdG9yZSBgc2l6ZWAK
QEAgLTk5LDcgKzk5LDcgQEAgc3RydWN0IFVuaXF1ZUFycmF5TWFrZXI8ZmFsc2UsIFQ+IHsKIAog
ICAgICAgICBUIHZhbHVlIHsgfTsKICAgICB9OwotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFQp
ID09IHNpemVvZihVbmlxdWVBcnJheUVsZW1lbnQpLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChz
aXplb2YoVCkgPT0gc2l6ZW9mKFVuaXF1ZUFycmF5RWxlbWVudCkpOwogCiAgICAgdXNpbmcgUmVz
dWx0VHlwZSA9IHR5cGVuYW1lIHN0ZDo6dW5pcXVlX3B0cjxUW10sIHR5cGVuYW1lIFVuaXF1ZUFy
cmF5RWxlbWVudDo6RGVsZXRlcj47CiAKQEAgLTExNSw3ICsxMTUsNyBAQCB1c2luZyBVbmlxdWVB
cnJheSA9IHR5cGVuYW1lIFVuaXF1ZUFycmF5TWFrZXI8c3RkOjppc190cml2aWFsbHlfZGVzdHJ1
Y3RpYmxlPFQ+OgogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIFVuaXF1ZUFycmF5PFQ+IG1ha2VVbmlx
dWVBcnJheShzaXplX3Qgc2l6ZSkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTx0
eXBlbmFtZSBzdGQ6OnJlbW92ZV9leHRlbnQ8VD46OnR5cGUsIFQ+Ojp2YWx1ZSwgIiIpOworICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2V4dGVudDxU
Pjo6dHlwZSwgVD46OnZhbHVlKTsKICAgICByZXR1cm4gVW5pcXVlQXJyYXlNYWtlcjxzdGQ6Omlz
X3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlLCBUPjo6bWFrZShzaXplKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV1RGQXNzZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9XVEZBc3NlcnRpb25zLmNwcAppbmRleCA3NWY2MjRhY2JhYWM5NGJmZWY2YzVhNzhiOWE4
MWYzYzg2YWE4NWM4Li45ZjcyNzc3NDJiZWJlYTdjMTQ3Nzk3YTkxMTQ2NTEzMDk1YjI4Zjg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XVEZBc3NlcnRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9XVEZBc3NlcnRpb25zLmNwcApAQCAtNDAsMTEgKzQwLDExIEBAIG5hbWVzcGFjZSB7
CiBzdHJ1Y3QgRHVtbXlTdHJ1Y3QgeyB9OwogfQogCi1zdGF0aWNfYXNzZXJ0KHNpemVvZihCYWc8
RHVtbXlTdHJ1Y3Q+KSA9PSBzaXplb2Yodm9pZCopLCAiIik7CitzdGF0aWNfYXNzZXJ0KHNpemVv
ZihCYWc8RHVtbXlTdHJ1Y3Q+KSA9PSBzaXplb2Yodm9pZCopKTsKIAotc3RhdGljX2Fzc2VydChz
aXplb2YoUmVmPER1bW15U3RydWN0PikgPT0gc2l6ZW9mKER1bW15U3RydWN0KiksICIiKTsKK3N0
YXRpY19hc3NlcnQoc2l6ZW9mKFJlZjxEdW1teVN0cnVjdD4pID09IHNpemVvZihEdW1teVN0cnVj
dCopKTsKIAotc3RhdGljX2Fzc2VydChzaXplb2YoUmVmUHRyPER1bW15U3RydWN0PikgPT0gc2l6
ZW9mKER1bW15U3RydWN0KiksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFJlZlB0cjxEdW1t
eVN0cnVjdD4pID09IHNpemVvZihEdW1teVN0cnVjdCopKTsKIAogI2lmIE9TKERBUldJTikgJiYg
Q1BVKEFERFJFU1M2NCkKIC8vIE5hTiBib3hpbmcgZW5jb2RpbmcgcmVsaWVzIG9uIHRoaXMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgKaW5kZXggZTJjMjU0YTc2NTYwNjFl
MzMyOTMyYmVjZmVjYjRiY2Q3ZmQyNzRjMi4uOGEwNjU2MDNjZTY1YTUxM2Y2OGIyMWMzMDVmOTJj
NDEyMGZlMjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRl
bmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaApAQCAt
NDMzLDcgKzQzMyw3IEBAIGlubGluZSB2b2lkIHN0cmluZ1R5cGVBZGFwdGVyQWNjdW11bGF0b3Io
UmVzdWx0VHlwZSogcmVzdWx0LCBBZGFwdGVyIGFkYXB0ZXIsIEFkCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlwZW5hbWUuLi4gU3RyaW5nVHlwZUFkYXB0ZXJzPgogU3Ry
aW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3RyaW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwg
U3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQogewotICAgIHN0YXRpY19hc3NlcnQoU3Ry
aW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCksICIi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KFN0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50MzJfdD46Om1heCgpKTsKICAgICBhdXRvIHN1bSA9IGNoZWNrZWRTdW08aW50MzJf
dD4oYWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMubGVuZ3RoKCkuLi4pOwogICAgIGlmIChzdW0u
aGFzT3ZlcmZsb3dlZCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nSW1wbC5oCmluZGV4IGM5OTRiMTkyY2UzMTJkOTEwNTQwNjhmODA3MDYzNmQ2NWU1YWUxOTMu
LmMyNGVlZTk1NDJjYTRiOWZlYWI1ZDkzZWNhZDk0MWNiYjE0ZmIyZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5oCkBAIC01MjUsNyArNTI1LDcgQEAgY2xhc3MgU3RyaW5nSW1wbCA6IHByaXZh
dGUgU3RyaW5nSW1wbFNoYXBlIHsKIAogdXNpbmcgU3RhdGljU3RyaW5nSW1wbCA9IFN0cmluZ0lt
cGw6OlN0YXRpY1N0cmluZ0ltcGw7CiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKFN0cmluZ0ltcGwp
ID09IHNpemVvZihTdGF0aWNTdHJpbmdJbXBsKSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2Yo
U3RyaW5nSW1wbCkgPT0gc2l6ZW9mKFN0YXRpY1N0cmluZ0ltcGwpKTsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIHN0cnVjdCBIYXNoVHJhbnNsYXRvckNoYXJCdWZmZXIgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TeW1ib2xJbXBsLmggYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N5bWJvbEltcGwuaAppbmRleCA0NzQ2YzQ5OGI3N2U5ODVhNTM5Y2YxMTU1NDNj
NDJkMzVmYjA0MWRlLi42NTM5MWY2MGRiNWVkYTgyYWFkZDk2Njc5ZGUxZTRlYTcxZjVmODYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N5bWJvbEltcGwuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1N5bWJvbEltcGwuaApAQCAtMTIyLDcgKzEyMiw3IEBAIGNsYXNzIFN5bWJv
bEltcGwgOiBwdWJsaWMgVW5pcXVlZFN0cmluZ0ltcGwgewogICAgIHVuc2lnbmVkIG1faGFzaEZv
clN5bWJvbFNoaWZ0ZWRXaXRoRmxhZ0NvdW50OwogICAgIEZsYWdzIG1fZmxhZ3MgeyBzX2ZsYWdE
ZWZhdWx0IH07CiB9Owotc3RhdGljX2Fzc2VydChzaXplb2YoU3ltYm9sSW1wbCkgPT0gc2l6ZW9m
KFN5bWJvbEltcGw6OlN0YXRpY1N5bWJvbEltcGwpLCAiIik7CitzdGF0aWNfYXNzZXJ0KHNpemVv
ZihTeW1ib2xJbXBsKSA9PSBzaXplb2YoU3ltYm9sSW1wbDo6U3RhdGljU3ltYm9sSW1wbCkpOwog
CiBjbGFzcyBQcml2YXRlU3ltYm9sSW1wbCBmaW5hbCA6IHB1YmxpYyBTeW1ib2xJbXBsIHsKIHB1
YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2Fw
aS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaAppbmRleCBjOGQxOGMyNmJlYjNkYTYyNWFjOWFk
NjAwNzY1ZjUyNTdjYWVjMmQwLi5hOTFhYmE5ZGQ5YTMyMTI3NzE1ZWMxZmIzYjczNTRhNGRlZjI1
NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5
c3RlbURpcmVjdG9yeUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVz
YXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oCkBAIC01NSw3ICs1NSw3IEBAIGNsYXNzIEZp
bGVTeXN0ZW1EaXJlY3RvcnlFbnRyeSBmaW5hbCA6IHB1YmxpYyBGaWxlU3lzdGVtRW50cnkgewog
CiAgICAgRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBE
T01GaWxlU3lzdGVtJiwgY29uc3QgU3RyaW5nJiB2aXJ0dWFsUGF0aCk7CiB9Owotc3RhdGljX2Fz
c2VydChzaXplb2YoRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5KSA9PSBzaXplb2YoRmlsZVN5c3Rl
bUVudHJ5KSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoRmlsZVN5c3RlbURpcmVjdG9yeUVu
dHJ5KSA9PSBzaXplb2YoRmlsZVN5c3RlbUVudHJ5KSk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVT
eXN0ZW1GaWxlRW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxl
U3lzdGVtRmlsZUVudHJ5LmgKaW5kZXggMDM4ODAzOTE0N2FlNzliMTFiNjhjYTRiNjU4NWRjOTk0
MThjZmI3NC4uYjhjYWMzNzg3MjZmYzU3ODcyNDY1Njc3OGMyODNjZDQyM2ZhMDFkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZp
bGVFbnRyeS5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIEZpbGVTeXN0ZW1GaWxlRW50cnkgZmlu
YWwgOiBwdWJsaWMgRmlsZVN5c3RlbUVudHJ5IHsKIAogICAgIEZpbGVTeXN0ZW1GaWxlRW50cnko
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIERPTUZpbGVTeXN0ZW0mLCBjb25zdCBTdHJpbmcmIHZp
cnR1YWxQYXRoKTsKIH07Ci1zdGF0aWNfYXNzZXJ0KHNpemVvZihGaWxlU3lzdGVtRmlsZUVudHJ5
KSA9PSBzaXplb2YoRmlsZVN5c3RlbUVudHJ5KSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2Yo
RmlsZVN5c3RlbUZpbGVFbnRyeSkgPT0gc2l6ZW9mKEZpbGVTeXN0ZW1FbnRyeSkpOwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01N
YXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXguaAppbmRleCBjMjM4YTY3MTU4
ZTgzMzU2YThlNDhmZjE3NDk3YmE1MmVhN2FiOWJjLi4yNmM1ZjQyYjE1YjE4MmYxY2UzYWYwYWM1
NGM1NDViNjFmYWUzYmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1hdHJpeC5oCkBAIC05Myw3ICs5Myw3IEBA
IGNsYXNzIERPTU1hdHJpeCA6IHB1YmxpYyBET01NYXRyaXhSZWFkT25seSB7CiAgICAgRE9NTWF0
cml4KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgSXMyRCk7CiAgICAgRE9NTWF0cml4KFRy
YW5zZm9ybWF0aW9uTWF0cml4JiYsIElzMkQpOwogfTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKERP
TU1hdHJpeCkgPT0gc2l6ZW9mKERPTU1hdHJpeFJlYWRPbmx5KSwgIiIpOworc3RhdGljX2Fzc2Vy
dChzaXplb2YoRE9NTWF0cml4KSA9PSBzaXplb2YoRE9NTWF0cml4UmVhZE9ubHkpKTsKIAogaW5s
aW5lIHZvaWQgRE9NTWF0cml4OjpzZXRNMTMoZG91YmxlIGYpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXggMDYwMDJmNzA5Y2FhNGRiNGEyMWNiYjlm
NDc3ZjFkYTRkYTE4OGE5NS4uOGU5YjM0YmM0ZTk0NWRhMTVkNDdmNTgyYzA4Nzg2MGUyODcwMzhh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApAQCAtMjUy
OSw4ICsyNTI5LDggQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlQWRkU3R5
bGVSZWxhdGlvbihBc3NlbWJsZXI6OlJlZ2lzdGVySUQgY2hlY2sKICAgICBhdXRvIGdldExhc3RS
ZWxhdGlvblBvaW50ZXIgPSBbJl0gKEFzc2VtYmxlcjo6UmVnaXN0ZXJJRCBzaXplQW5kVGFyZ2V0
KSB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YjMyKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEp
LCBzaXplQW5kVGFyZ2V0KTsKICNpZiBDUFUoQUREUkVTUzY0KQotICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihTdHlsZTo6UmVsYXRpb24pID09IDE2LCAiIik7Ci0gICAgICAgIHN0YXRpY19h
c3NlcnQoMSA8PCA0ID09IDE2LCAiIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFN0
eWxlOjpSZWxhdGlvbikgPT0gMTYpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KDEgPDwgNCA9PSAx
Nik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxzaGlmdFB0cihBc3NlbWJsZXI6OlRydXN0ZWRJbW0z
Mig0KSwgc2l6ZUFuZFRhcmdldCk7CiAjZWxzZQogICAgICAgICBtX2Fzc2VtYmxlci5tdWwzMihB
c3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzaXplb2YoU3R5bGU6OlJlbGF0aW9uKSksIHNpemVBbmRU
YXJnZXQsIHNpemVBbmRUYXJnZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaAppbmRleCA3NzI3N2Q3ZjIx
YjNmNGJjYzNjNDA0ZDUzZWUxZWM4Y2IwMzUzYmMzLi4yMGY2ODcxZjE4NDk1Yzk0OWNiYmM5NWJk
NDY1ZGQ2YjU2OWY2Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaApAQCAtNTEsNiArNTEsNiBAQCBj
bGFzcyBET01Qb2ludCBmaW5hbCA6IHB1YmxpYyBET01Qb2ludFJlYWRPbmx5IHsKICAgICB7CiAg
ICAgfQogfTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKERPTVBvaW50KSA9PSBzaXplb2YoRE9NUG9p
bnRSZWFkT25seSksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKERPTVBvaW50KSA9PSBzaXpl
b2YoRE9NUG9pbnRSZWFkT25seSkpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TVJlY3QuaAppbmRleCBmYzkxNGJkNDJhZjMxYzgwYWI2NThjMWRmZTc1YjRlMWE4NjZmNTMzLi40
ZGM4NTE0YzhhZmJkMzdhMDdkY2RkYjE2YzI1YjZkZjM5YjY5NGExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0
LmgKQEAgLTU1LDYgKzU1LDYgQEAgY2xhc3MgRE9NUmVjdCA6IHB1YmxpYyBET01SZWN0UmVhZE9u
bHkgewogCiAgICAgRE9NUmVjdCgpID0gZGVmYXVsdDsKIH07Ci1zdGF0aWNfYXNzZXJ0KHNpemVv
ZihET01SZWN0KSA9PSBzaXplb2YoRE9NUmVjdFJlYWRPbmx5KSwgIiIpOworc3RhdGljX2Fzc2Vy
dChzaXplb2YoRE9NUmVjdCkgPT0gc2l6ZW9mKERPTVJlY3RSZWFkT25seSkpOwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgKaW5kZXggZTQ0MTQwMzZjNDNlMzhjYjY4
ODRlZTIxNzQ5Zjc1NzU4YjNmNjk2Yi4uNGQ5ODYyMzhiNzQxMWIwMWNmNjI3NWI0ZDhlYTMzMTFm
NmQzOGRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24uaApAQCAtMzks
NyArMzksNyBAQCBjbGFzcyBIVE1MQWxsQ29sbGVjdGlvbiBmaW5hbCA6IHB1YmxpYyBBbGxEZXNj
ZW5kYW50c0NvbGxlY3Rpb24gewogcHJpdmF0ZToKICAgICBIVE1MQWxsQ29sbGVjdGlvbihEb2N1
bWVudCYsIENvbGxlY3Rpb25UeXBlKTsKIH07Ci1zdGF0aWNfYXNzZXJ0KHNpemVvZihIVE1MQWxs
Q29sbGVjdGlvbikgPT0gc2l6ZW9mKEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbiksICIiKTsKK3N0
YXRpY19hc3NlcnQoc2l6ZW9mKEhUTUxBbGxDb2xsZWN0aW9uKSA9PSBzaXplb2YoQWxsRGVzY2Vu
ZGFudHNDb2xsZWN0aW9uKSk7CiAKIGNsYXNzIEhUTUxBbGxOYW1lZFN1YkNvbGxlY3Rpb24gZmlu
YWwgOiBwdWJsaWMgQ2FjaGVkSFRNTENvbGxlY3Rpb248SFRNTEFsbE5hbWVkU3ViQ29sbGVjdGlv
biwgQ29sbGVjdGlvblRyYXZlcnNhbFR5cGU6OkRlc2NlbmRhbnRzPiB7CiAgICAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRChIVE1MQWxsTmFtZWRTdWJDb2xsZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaAppbmRleCA5NWZkOTBiNGNhYmJiZDgzODBjNWFj
MGI1Mzk5OGYxNGFjYWY0NWU4Li4zMjk1NzliM2YyNmU2ZTBkN2NkNDAxY2U2MjViOGZiZDljYjM5
NGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5oCkBAIC01
OCw3ICs1OCw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tMaXN0IGZpbmFsIDogcHVibGljIFRyYWNrTGlz
dEJhc2UgewogCiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZp
bmFsOwogfTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKEF1ZGlvVHJhY2tMaXN0KSA9PSBzaXplb2Yo
VHJhY2tMaXN0QmFzZSksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKEF1ZGlvVHJhY2tMaXN0
KSA9PSBzaXplb2YoVHJhY2tMaXN0QmFzZSkpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaAppbmRleCAyNWNlY2Jm
ZWJiZTRjMmFhYmZjMjc3ZjJkNjA4NDE2ODJjZWY2MDY5Li5jODM3NTJlMzMzNzU4NTEwODk5NmQ0
YzQ1OWQ4NjcyMDU3OTY1M2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1ZpZGVvVHJhY2tMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1Ry
YWNrTGlzdC5oCkBAIC01OCw3ICs1OCw3IEBAIGNsYXNzIFZpZGVvVHJhY2tMaXN0IGZpbmFsIDog
cHVibGljIFRyYWNrTGlzdEJhc2UgewogCiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IGZpbmFsOwogfTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKFZpZGVvVHJhY2tM
aXN0KSA9PSBzaXplb2YoVHJhY2tMaXN0QmFzZSksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9m
KFZpZGVvVHJhY2tMaXN0KSA9PSBzaXplb2YoVHJhY2tMaXN0QmFzZSkpOwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAKaW5kZXggMDYwNmYxODQ5
YjVhOWE2MTg0OWEyMGViZDQxOTY1YTZhZGQ4ZWM4Ni4uNzQ4NjQyYjBiZDU2ZTg4MDBkZTRmNzU4
NWZjNTdiNDE5YWMxMzdlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5jcHAKQEAgLTQ1LDcg
KzQ1LDcgQEAgc3RydWN0IFNhbWVTaXplQXNJbmxpbmVJdGVtIHsKICAgICB1bnNpZ25lZCBsZW5n
dGg7CiB9OwogCi1zdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoU2Ft
ZVNpemVBc0lubGluZUl0ZW0pLCAiIik7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVt
KSA9PSBzaXplb2YoU2FtZVNpemVBc0lubGluZUl0ZW0pKTsKIAogfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4
dEl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lVGV4dEl0ZW0uY3BwCmluZGV4IDg1OGU4Zjc0YWUyOTAzYmI0ZGU4YjM0NjVkYjY0
OTliMzgzYmI3MzQuLjljN2U0Yjk3MmZhMjJiOGUzZjVmM2UxYWM3ZmMyODZmM2VmNDc3ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZVRleHRJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1zdGF0aWNfYXNzZXJ0KHNp
emVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoSW5saW5lVGV4dEl0ZW0pLCAiIik7CitzdGF0aWNf
YXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoSW5saW5lVGV4dEl0ZW0pKTsKIAog
SW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKGNvbnN0IElubGluZVRleHRCb3gmIGlubGlu
ZVRleHRCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIFVCaURpTGV2ZWwgYmlk
aUxldmVsLCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhlbiwgYm9vbCBpc1dvcmRTZXBhcmF0b3Is
IHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlwZSB0ZXh0
SXRlbVR5cGUpCiAgICAgOiBJbmxpbmVJdGVtKGlubGluZVRleHRCb3gsIFR5cGU6OlRleHQsIGJp
ZGlMZXZlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tleWVkQ29kaW5n
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LZXllZENvZGluZy5oCmluZGV4IDc5YTIzNTM1
NWYxZThlZjg2MTUzNTJlNjM5YzhjNjMxOGY0MDM3NzYuLmZmYjI0Y2M1MzJmNWMwNGFjM2Y1ZjYw
YjZiN2IxMWI3NzU5OThmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tl
eWVkQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vS2V5ZWRDb2RpbmcuaApA
QCAtNTMsNyArNTMsNyBAQCBjbGFzcyBLZXllZERlY29kZXIgewogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFdBUk5fVU5VU0VEX1JFVFVSTgogICAgIGJvb2wgZGVjb2RlQnl0ZXMoY29uc3QgU3Ry
aW5nJiBrZXksIFZlY3RvcjxUPiYgdmVjdG9yKQogICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2Vy
dChzaXplb2YoVCkgPT0gMSwgIiIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihUKSA9
PSAxKTsKIAogICAgICAgICBzaXplX3Qgc2l6ZTsKICAgICAgICAgY29uc3QgdWludDhfdCogYnl0
ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFdmVudFRh
cmdldC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaApp
bmRleCBmYTdhNGE5YjNiODJjNGJjOThlODYwMDFlMDM2MGRiM2ZlMDQ3NGI0Li41Nzc0OTY5M2Y0
NGU2NDRhYTJmYmZiZWUxNDMxOWZmYTk5ZTFlNDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmgKQEAgLTMxLDYgKzMxLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBYTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0IDogcHVibGljIEV2
ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewogfTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKFhNTEh0
dHBSZXF1ZXN0RXZlbnRUYXJnZXQpID09IHNpemVvZihFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
KSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCkg
PT0gc2l6ZW9mKEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEpKTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0
TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0
ZW0uY3BwCmluZGV4IGQyNmFiZGQ1N2FhOTM2YjEyYzM2YjI0MjZiY2RlMDE5OTQ5YmU2MmMuLjgx
NWM3MDllNzA0NDg1Y2M5YTE3MWFmYjllNjcxNTIzMWZmZmNiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5jcHAKQEAgLTE3MCw4ICsxNzAs
OCBAQCB2b2lkIFdLQ29udGV4dE1lbnVJdGVtU2V0VXNlckRhdGEoV0tDb250ZXh0TWVudUl0ZW1S
ZWYgaXRlbVJlZiwgV0tUeXBlUmVmIHVzZXJEYQogI2lmIFBMQVRGT1JNKENPQ09BKQogCiAjZGVm
aW5lIFNUQVRJQ19BU1NFUlRfRVFVQUxTKGEsIGIsIGMpIFwKLSAgICBzdGF0aWNfYXNzZXJ0KGEg
PT0gYiwgIiIpOyBcCi0gICAgc3RhdGljX2Fzc2VydChhID09IFdlYkNvcmU6OmMsICIiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KGEgPT0gYik7IFwKKyAgICBzdGF0aWNfYXNzZXJ0KGEgPT0gV2ViQ29y
ZTo6Yyk7CiAKIC8vIFRoZXNlIHZhbHVlcyBtdXN0IHJlbWFpbiBlcXVhbCB0byByZXRhaW4gYmlu
YXJ5IGNvbXBhdGliaWxpdHkuCiBTVEFUSUNfQVNTRVJUX0VRVUFMUygwLCBrV0tDb250ZXh0TWVu
dUl0ZW1UYWdOb0FjdGlvbiwgQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5n
LmNwcAppbmRleCA0YjRjOTNiMzRlOWRhNmRhZDA2NDM1NDkzOTAxZjU0YTYxMjYyYmI4Li40ZTE4
OTM3MGUwMWZkNDBjNmZhMjNiYmMzODc2NTE5M2ZkMGM0ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcApA
QCAtMjA1LDcgKzIwNSw3IEBAIGNsYXNzIEhpc3RvcnlFbnRyeURhdGFFbmNvZGVyIHsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgogICAgIEhpc3RvcnlFbnRyeURhdGFFbmNvZGVyJiBlbmNv
ZGVBcml0aG1ldGljVHlwZShUeXBlIHZhbHVlKQogICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX2FyaXRobWV0aWM8VHlwZT46OnZhbHVlLCAiIik7CisgICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19hcml0aG1ldGljPFR5cGU+Ojp2YWx1ZSk7CiAKICAgICAgICAgZW5jb2Rl
Rml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KCZ2YWx1ZSksIHNpemVv
Zih2YWx1ZSksIHNpemVvZih2YWx1ZSkpOwogICAgICAgICByZXR1cm4gKnRoaXM7CkBAIC03Mzgs
NyArNzM4LDcgQEAgY2xhc3MgSGlzdG9yeUVudHJ5RGF0YURlY29kZXIgewogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFR5cGU+CiAgICAgSGlzdG9yeUVudHJ5RGF0YURlY29kZXImIGRlY29kZUFyaXRo
bWV0aWNUeXBlKFR5cGUmIHZhbHVlKQogICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6
OmlzX2FyaXRobWV0aWM8VHlwZT46OnZhbHVlLCAiIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQo
c3RkOjppc19hcml0aG1ldGljPFR5cGU+Ojp2YWx1ZSk7CiAgICAgICAgIHZhbHVlID0gVHlwZSgp
OwogCiAgICAgICAgIGRlY29kZUZpeGVkTGVuZ3RoRGF0YShyZWludGVycHJldF9jYXN0PHVpbnQ4
X3QqPigmdmFsdWUpLCBzaXplb2YodmFsdWUpLCBzaXplb2YodmFsdWUpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxnb3JpdGhtLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0FsZ29yaXRobS5oCmluZGV4IGE1MTlkODAyODY1ZDZkMjQxNzcxMTMyOGE3YTM3ODJmYjll
YjRhMGEuLjBlNWVhNDAyNjdkNWMxNTM2YmY0OTVjZDM5NDQzZDdlZTAyMzZlNzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxnb3JpdGhtLmgKKysrIGIvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9BbGdvcml0aG0uaApAQCAtNjcsNyArNjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBjb25zdGV4cHIgYm9vbCB0ZXN0KFQgdmFsdWUsIHVpbnRwdHJfdCBtYXNrKQogdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+CiBjb25zdGV4cHIgYm9vbCBpc1Bvd2VyT2ZUd28oVCBzaXplKQogewot
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUsICIiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlKTsKICAgICByZXR1cm4gc2l6
ZSAmJiAhKHNpemUgJiAoc2l6ZSAtIDEpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9HaWdhY2FnZS5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5o
CmluZGV4IGIwMjlhNGNjNzkzMTlhMmU5NzRmMTc1YTA2NzdiMGE1ZmU1MzhhNmYuLjVlNWE0OTBi
ZWU4NDIyNWIwMzA0MDAyZDE3YjZmMmI0M2Y2ZDczOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvR2lnYWNhZ2UuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2Fj
YWdlLmgKQEAgLTgyLDEwICs4MiwxMCBAQCBjb25zdGV4cHIgc2l6ZV90IG1heGltdW1DYWdlU2l6
ZVJlZHVjdGlvbkZvclNsaWRlID0gaGFzQ2FwYWNpdHlUb1VzZUxhcmdlR2lnYWNhZwogI2VuZGlm
CiAKIAotc3RhdGljX2Fzc2VydChibWFsbG9jOjppc1Bvd2VyT2ZUd28ocHJpbWl0aXZlR2lnYWNh
Z2VTaXplKSwgIiIpOwotc3RhdGljX2Fzc2VydChibWFsbG9jOjppc1Bvd2VyT2ZUd28oanNWYWx1
ZUdpZ2FjYWdlU2l6ZSksICIiKTsKLXN0YXRpY19hc3NlcnQocHJpbWl0aXZlR2lnYWNhZ2VTaXpl
ID4gbWF4aW11bUNhZ2VTaXplUmVkdWN0aW9uRm9yU2xpZGUsICIiKTsKLXN0YXRpY19hc3NlcnQo
anNWYWx1ZUdpZ2FjYWdlU2l6ZSA+IG1heGltdW1DYWdlU2l6ZVJlZHVjdGlvbkZvclNsaWRlLCAi
Iik7CitzdGF0aWNfYXNzZXJ0KGJtYWxsb2M6OmlzUG93ZXJPZlR3byhwcmltaXRpdmVHaWdhY2Fn
ZVNpemUpKTsKK3N0YXRpY19hc3NlcnQoYm1hbGxvYzo6aXNQb3dlck9mVHdvKGpzVmFsdWVHaWdh
Y2FnZVNpemUpKTsKK3N0YXRpY19hc3NlcnQocHJpbWl0aXZlR2lnYWNhZ2VTaXplID4gbWF4aW11
bUNhZ2VTaXplUmVkdWN0aW9uRm9yU2xpZGUpOworc3RhdGljX2Fzc2VydChqc1ZhbHVlR2lnYWNh
Z2VTaXplID4gbWF4aW11bUNhZ2VTaXplUmVkdWN0aW9uRm9yU2xpZGUpOwogCiBjb25zdGV4cHIg
c2l6ZV90IGdpZ2FjYWdlU2l6ZVRvTWFzayhzaXplX3Qgc2l6ZSkgeyByZXR1cm4gc2l6ZSAtIDE7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29IZWFwSW1wbC5oIGIv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29IZWFwSW1wbC5oCmluZGV4IDViMzE1ZDFlZTMwZjc1
MjFhY2QwMTQ0NGQyNWViNTU1MmU0Y2YwMjEuLjU2OTU0MjQ3NTZlMWM2NTg3YTFhZmZjYjg5MDhl
ZGE4YTY3ZjY0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvSXNvSGVhcElt
cGwuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0lzb0hlYXBJbXBsLmgKQEAgLTQ1LDgg
KzQ1LDggQEAgY2xhc3MgQkVYUE9SVCBJc29IZWFwSW1wbEJhc2UgewogcHVibGljOgogICAgIHN0
YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4QWxsb2NhdGlvbkZyb21TaGFyZWQgPSA4OwogICAg
IHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4QWxsb2NhdGlvbkZyb21TaGFyZWRNYXNrID0g
KDFVIDw8IG1heEFsbG9jYXRpb25Gcm9tU2hhcmVkKSAtIDFVOwotICAgIHN0YXRpY19hc3NlcnQo
bWF4QWxsb2NhdGlvbkZyb21TaGFyZWQgPD0gYm1hbGxvYzo6YWxpZ25tZW50LCAiIik7Ci0gICAg
c3RhdGljX2Fzc2VydChpc1Bvd2VyT2ZUd28obWF4QWxsb2NhdGlvbkZyb21TaGFyZWQpLCAiIik7
CisgICAgc3RhdGljX2Fzc2VydChtYXhBbGxvY2F0aW9uRnJvbVNoYXJlZCA8PSBibWFsbG9jOjph
bGlnbm1lbnQpOworICAgIHN0YXRpY19hc3NlcnQoaXNQb3dlck9mVHdvKG1heEFsbG9jYXRpb25G
cm9tU2hhcmVkKSk7CiAKICAgICB2aXJ0dWFsIH5Jc29IZWFwSW1wbEJhc2UoKTsKICAgICAKQEAg
LTkzLDcgKzkzLDcgQEAgY2xhc3MgQkVYUE9SVCBJc29IZWFwSW1wbEJhc2UgewogICAgIHVuc2ln
bmVkIG1fYXZhaWxhYmxlU2hhcmVkIHsgbWF4QWxsb2NhdGlvbkZyb21TaGFyZWRNYXNrIH07CiAg
ICAgQWxsb2NhdGlvbk1vZGUgbV9hbGxvY2F0aW9uTW9kZSB7IEFsbG9jYXRpb25Nb2RlOjpJbml0
IH07CiAgICAgYm9vbCBtX2lzSW5saW5lRGlyZWN0b3J5RWxpZ2libGVPckRlY29tbWl0dGVkIHsg
dHJ1ZSB9OwotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKG1fYXZhaWxhYmxlU2hhcmVkKSAqIDgg
Pj0gbWF4QWxsb2NhdGlvbkZyb21TaGFyZWQsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVv
ZihtX2F2YWlsYWJsZVNoYXJlZCkgKiA4ID49IG1heEFsbG9jYXRpb25Gcm9tU2hhcmVkKTsKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbmZpZz4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxZDI4NjI0Mzk3YjlmNjU0MjliMDUxZDVkYWU5NGVl
YzY3NDlkOTE3Li45YmMxMzE4MTdlNTQ0MzNkOGY5Y2ZhOGU1ODAyMzc3NjkxNjcxZjViIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMjItMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgdW5hcnkgc3RhdGljX2Fzc2VydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9FbnVtVHJh
aXRzLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcDoK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0ludDEyOC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYWNrZWQuY3BwOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUm9i
aW5Ib29kSGFzaE1hcC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAy
Mi0wMy0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFbmFibGUgUEdPIHdoZW4gYnVpbGRpbmcgZm9yIHJlbGVhc2UgYW5kIHByb2R1Y3Rpb24KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0VudW1UcmFpdHMuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRW51bVRyYWl0cy5jcHAKaW5kZXggMDI0NmZk
ZTI5ZTY2NzhlMmRkZGYyYWRjZGZiNTNlNjgzYmEzNTU1ZS4uMmVhZWIxY2ZjZWM2ZWJlODQ1ODAy
MWE4ZGJlNGU2MDQzNGViMmNiMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvRW51bVRyYWl0cy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
RW51bVRyYWl0cy5jcHAKQEAgLTQxLDkgKzQxLDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxUZXN0RW51bT4gewogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLXN0YXRpY19h
c3NlcnQoV1RGOjppc1ZhbGlkRW51bTxUZXN0RW51bT4oMCksICIiKTsKLXN0YXRpY19hc3NlcnQo
IVdURjo6aXNWYWxpZEVudW08VGVzdEVudW0+KC0xKSwgIiIpOwotc3RhdGljX2Fzc2VydCghV1RG
Ojppc1ZhbGlkRW51bTxUZXN0RW51bT4oMyksICIiKTsKK3N0YXRpY19hc3NlcnQoV1RGOjppc1Zh
bGlkRW51bTxUZXN0RW51bT4oMCkpOworc3RhdGljX2Fzc2VydCghV1RGOjppc1ZhbGlkRW51bTxU
ZXN0RW51bT4oLTEpKTsKK3N0YXRpY19hc3NlcnQoIVdURjo6aXNWYWxpZEVudW08VGVzdEVudW0+
KDMpKTsKIAogVEVTVChXVEZfRW51bVRyYWl0cywgSXNWYWxpZEVudW0pCiB7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9IYXNoTWFwLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwCmluZGV4IGM4NDNlN2M1NWFiMTM0M2U4MDJh
Yjc4NDcwNDdmOWY4NmE1MjQ3YjguLmJhZTBiNjBlMmIyNjhkMTNlOTZjOGMzNjc1ZTZjZThkMjE3
NDU0NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwCkBAIC0x
MDQ4LDcgKzEwNDgsNyBAQCBURVNUKFdURl9IYXNoTWFwLCBSZWZNYXBwZWRUb05vblplcm9FbXB0
eVZhbHVlKQogICAgICAgICBzdGF0aWMgUmVmPEtleT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBLZXkpOyB9CiAgICAgfTsKIAotICAgIHN0YXRpY19hc3NlcnQoIVdURjo6SGFzaFRy
YWl0czxWYWx1ZT46OmVtcHR5VmFsdWVJc1plcm8sICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFX
VEY6Okhhc2hUcmFpdHM8VmFsdWU+OjplbXB0eVZhbHVlSXNaZXJvKTsKIAogICAgIEhhc2hNYXA8
UmVmPEtleT4sIFZhbHVlPiBtYXA7CiAgICAgVmVjdG9yPHN0ZDo6cGFpcjxSZWY8S2V5PiwgaW50
MzJfdD4+IHZlY3Rvck1hcDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0ludDEyOC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9JbnQxMjguY3Bw
CmluZGV4IGY3OTFhZGNhYjEyMjlmZmQxN2MzNmYzNjdmNjAxNTQyNDhmYmFiNjMuLjMwY2YwYmQ3
MTAxOTE1NDEwMWRmYTU3YzcxM2RmMWI5MjYwM2Q0ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0ludDEyOC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSW50MTI4LmNwcApAQCAtODAsOCArODAsOCBAQCBURVNUKFdURl9VSW50MTI4LCBU
cml2aWFsVHJhaXRzVGVzdCkKICAgICAgICAgIiIpOwogICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c190cml2aWFsbHlfY29weV9jb25zdHJ1Y3RpYmxlPFdURjo6VUludDEyOEltcGw+Ojp2YWx1ZSwK
ICAgICAgICAgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfY29weV9h
c3NpZ25hYmxlPFdURjo6VUludDEyOEltcGw+Ojp2YWx1ZSwgIiIpOwotICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFdURjo6VUludDEyOEltcGw+Ojp2YWx1
ZSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfY29weV9hc3NpZ25h
YmxlPFdURjo6VUludDEyOEltcGw+Ojp2YWx1ZSk7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3RyaXZpYWxseV9kZXN0cnVjdGlibGU8V1RGOjpVSW50MTI4SW1wbD46OnZhbHVlKTsKIH0KIAog
VEVTVChXVEZfVUludDEyOCwgQWxsVGVzdHMpCkBAIC00MzYsOSArNDM2LDkgQEAgVEVTVChXVEZf
VUludDEyOCwgQ29uc3RleHByVGVzdCkKIAogVEVTVChXVEZfVUludDEyOCwgTnVtZXJpY0xpbWl0
c1Rlc3QpCiB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6VUlu
dDEyOEltcGw+Ojppc19zcGVjaWFsaXplZCwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6
bnVtZXJpY19saW1pdHM8V1RGOjpVSW50MTI4SW1wbD46OmlzX3NpZ25lZCwgIiIpOwotICAgIHN0
YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxXVEY6OlVJbnQxMjhJbXBsPjo6aXNfaW50
ZWdlciwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxXVEY6OlVJ
bnQxMjhJbXBsPjo6aXNfc3BlY2lhbGl6ZWQpOworICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6bnVt
ZXJpY19saW1pdHM8V1RGOjpVSW50MTI4SW1wbD46OmlzX3NpZ25lZCk7CisgICAgc3RhdGljX2Fz
c2VydChzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6VUludDEyOEltcGw+Ojppc19pbnRlZ2VyKTsK
ICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50PigxMjggKiBzdGQ6OmxvZzEwKDIpKSwKICAg
ICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxXVEY6OlVJbnQxMjhJbXBsPjo6ZGlnaXRzMTApOwog
ICAgIEVYUEVDVF9FUSgwLCBzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6VUludDEyOEltcGw+Ojpt
aW4oKSk7CkBAIC01MTIsMTAgKzUxMiwxMCBAQCBUWVBFRF9URVNUKFdURl9JbnQxMjhGbG9hdFRy
YWl0c1Rlc3QsIENvbnN0cnVjdEFzc2lnblRlc3QpCiAKIFRFU1QoV1RGX0ludDEyOCwgVHJpdmlh
bFRyYWl0c1Rlc3QpCiB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZWZh
dWx0X2NvbnN0cnVjdGlibGU8V1RGOjpJbnQxMjhJbXBsPjo6dmFsdWUsICIiKTsKLSAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2NvcHlfY29uc3RydWN0aWJsZTxXVEY6OkludDEy
OEltcGw+Ojp2YWx1ZSwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlf
Y29weV9hc3NpZ25hYmxlPFdURjo6SW50MTI4SW1wbD46OnZhbHVlLCAiIik7Ci0gICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8V1RGOjpJbnQxMjhJbXBsPjo6
dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2RlZmF1bHRf
Y29uc3RydWN0aWJsZTxXVEY6OkludDEyOEltcGw+Ojp2YWx1ZSk7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3RyaXZpYWxseV9jb3B5X2NvbnN0cnVjdGlibGU8V1RGOjpJbnQxMjhJbXBsPjo6
dmFsdWUpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfY29weV9hc3NpZ25h
YmxlPFdURjo6SW50MTI4SW1wbD46OnZhbHVlKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxXVEY6OkludDEyOEltcGw+Ojp2YWx1ZSk7CiB9CiAKIFRF
U1QoV1RGX0ludDEyOCwgQm9vbENvbnZlcnNpb25UZXN0KQpAQCAtMTE4OSw5ICsxMTg5LDkgQEAg
VEVTVChXVEZfSW50MTI4LCBCaXR3aXNlU2hpZnRUZXN0KQogCiBURVNUKFdURl9JbnQxMjgsIE51
bWVyaWNMaW1pdHNUZXN0KQogewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0
czxXVEY6OkludDEyOEltcGw+Ojppc19zcGVjaWFsaXplZCwgIiIpOwotICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjpudW1lcmljX2xpbWl0czxXVEY6OkludDEyOEltcGw+Ojppc19zaWduZWQsICIiKTsK
LSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8V1RGOjpJbnQxMjhJbXBsPjo6
aXNfaW50ZWdlciwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxX
VEY6OkludDEyOEltcGw+Ojppc19zcGVjaWFsaXplZCk7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6
Om51bWVyaWNfbGltaXRzPFdURjo6SW50MTI4SW1wbD46OmlzX3NpZ25lZCk7CisgICAgc3RhdGlj
X2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6SW50MTI4SW1wbD46OmlzX2ludGVnZXIp
OwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxpbnQ+KDEyNyAqIHN0ZDo6bG9nMTAoMikpLAog
ICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6SW50MTI4SW1wbD46OmRpZ2l0czEwKTsK
ICAgICBFWFBFQ1RfRVEoV1RGOjpJbnQxMjhNaW4oKSwgc3RkOjpudW1lcmljX2xpbWl0czxXVEY6
OkludDEyOEltcGw+OjptaW4oKSk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9QYWNrZWQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUGFja2Vk
LmNwcAppbmRleCAyZTE2MThjN2I4YWJiY2UyMWNhZDUzYjVlMTBhZjY4YTI1OTI5ZTdlLi5hZjBh
MjJkODMwNGM5ZjdmZTMwOTM1YmYwZDZhYTRlOThkN2JiODc3IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYWNrZWQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1BhY2tlZC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgVEVTVChXVEZfUGFja2Vk
LCBBc3NpZ25BbmRHZXQpCiB7CiAgICAgewogICAgICAgICBQYWNrZWRQdHI8dWludDhfdD4ga2V5
IHsgbnVsbHB0ciB9OwotICAgICAgICBzdGF0aWNfYXNzZXJ0KE9TX0NPTlNUQU5UKEVGRkVDVElW
RV9BRERSRVNTX1dJRFRIKSAhPSA2NCwgIiIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KE9TX0NP
TlNUQU5UKEVGRkVDVElWRV9BRERSRVNTX1dJRFRIKSAhPSA2NCk7CiAgICAgICAgIHVpbnQ4X3Qq
IGNhbmRpZGF0ZXNbXSA9IHsKICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICBiaXR3aXNlX2Nh
c3Q8dWludDhfdCo+KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oKDFVTEwgPDwgKE9TX0NPTlNUQU5U
KEVGRkVDVElWRV9BRERSRVNTX1dJRFRIKSAvIDIpKSAtIDEpKSwKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JvYmluSG9vZEhhc2hNYXAuY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvUm9iaW5Ib29kSGFzaE1hcC5jcHAKaW5kZXggNTc3ZjdiNDhi
NThmYjhhMjk5MmZmNGZjNTNiNWJlNDAzNDI4YTBiZC4uNjVhY2RhODNjNmIzYTAwYTBlOTBiYzhh
MThkNmU5YjFmZjI5NjI2NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvUm9iaW5Ib29kSGFzaE1hcC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvUm9iaW5Ib29kSGFzaE1hcC5jcHAKQEAgLTEwNTAsNyArMTA1MCw3IEBAIFRFU1QoV1RGX1Jv
YmluSG9vZEhhc2hNYXAsIFJlZk1hcHBlZFRvTm9uWmVyb0VtcHR5VmFsdWUpCiAgICAgICAgIHN0
YXRpYyBSZWY8S2V5PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEtleSk7IH0KICAg
ICB9OwogCi0gICAgc3RhdGljX2Fzc2VydCghV1RGOjpIYXNoVHJhaXRzPFZhbHVlPjo6ZW1wdHlW
YWx1ZUlzWmVybywgIiIpOworICAgIHN0YXRpY19hc3NlcnQoIVdURjo6SGFzaFRyYWl0czxWYWx1
ZT46OmVtcHR5VmFsdWVJc1plcm8pOwogCiAgICAgTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jp
bkhvb2RIYXNoTWFwPFJlZjxLZXk+LCBWYWx1ZSwgUm9iaW5Ib29kSGFzaDxSZWY8S2V5Pj4+IG1h
cDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZjxLZXk+LCBpbnQzMl90Pj4gdmVjdG9yTWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455839</attachid>
            <date>2022-03-26 03:15:46 -0700</date>
            <delta_ts>2022-03-26 07:42:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238412-20220326031545.patch</filename>
            <type>text/plain</type>
            <size>83243</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
Y2IxNGFmZWY1YmQ1MDY1ODdjZmVjODI4ZGZkZGI5MDQ3NTI5OGM3Li5iYWIxOTc3NmJiZmVkY2Yy
OWE4OTMxMGIzNzQ3Zjg3M2YyMTY2MzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OSBAQAorMjAyMi0wMy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSB1bmFyeSBzdGF0aWNfYXNzZXJ0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg0MTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIGBzdGF0aWNfYXNzZXJ0KC4uLiwg
IiIpO2Agd2l0aCBgc3RhdGljX2Fzc2VydCguLi4pO2AKKworICAgICAgICAqIGFzc2VtYmxlci9B
Uk02NEFzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6bGlua0p1bXBP
ckNhbGwpOgorICAgICAgICAoSlNDOjpBUk02NEFzc2VtYmxlcjo6cmVsaW5rSnVtcE9yQ2FsbCk6
CisgICAgICAgICogYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oOgorICAgICAgICAoSlNDOjpB
c3NlbWJsZXJCdWZmZXI6OnB1dEludGVncmFsVW5jaGVja2VkKToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmg6CisgICAgICAgICogYnl0ZWNvZGUvQWRhcHRpdmVJ
bmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oOgorICAgICAgICAqIGJ5dGVjb2Rl
L0FycmF5UHJvZmlsZS5oOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9ja0hhc2guY3BwOgor
ICAgICAgICAoSlNDOjpDb2RlQmxvY2tIYXNoOjpDb2RlQmxvY2tIYXNoKToKKyAgICAgICAgKiBi
eXRlY29kZS9QYXJzZUhhc2guY3BwOgorICAgICAgICAoSlNDOjpQYXJzZUhhc2g6OlBhcnNlSGFz
aCk6CisgICAgICAgICogYnl0ZWNvZGUvV2F0Y2hwb2ludC5oOgorICAgICAgICAqIGRmZy9ERkdO
b2RlLmg6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkpTQ19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0
bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdU
b0IzOjpjb21waWxlQXJyYXlQdXNoKToKKyAgICAgICAgKiBqaXQvUmVnaXN0ZXJTZXQuY3BwOgor
ICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6bGxpbnRCYXNlbGluZUNhbGxlZVNhdmVSZWdpc3Rl
cnMpOgorICAgICAgICAoSlNDOjpSZWdpc3RlclNldDo6ZGZnQ2FsbGVlU2F2ZVJlZ2lzdGVycyk6
CisgICAgICAgIChKU0M6OlJlZ2lzdGVyU2V0OjpmdGxDYWxsZWVTYXZlUmVnaXN0ZXJzKToKKyAg
ICAgICAgKiBydW50aW1lL0NhY2hlZEJ5dGVjb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FjaGVk
Qnl0ZWNvZGU6OmNvbW1pdFVwZGF0ZXMgY29uc3QpOgorICAgICAgICAqIHJ1bnRpbWUvQ2xvbmVk
QXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9EaXJlY3RBcmd1bWVudHMuaDoKKyAgICAg
ICAgKiBydW50aW1lL0RpcmVjdEV2YWxFeGVjdXRhYmxlLmg6CisgICAgICAgICogcnVudGltZS9F
cnJvckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogcnVudGltZS9JbmRpcmVjdEV2YWxFeGVjdXRh
YmxlLmg6CisgICAgICAgICogcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHA6CisgICAgICAg
ICogcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTTGV4aWNh
bEVudmlyb25tZW50Lmg6CisgICAgICAgIChKU0M6OkpTTGV4aWNhbEVudmlyb25tZW50OjpzdWJz
cGFjZUZvcik6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5jcHA6CisgICAgICAgIChKU0M6
OkpTUm9wZVN0cmluZzo6Um9wZUJ1aWxkZXI8UmVjb3JkT3ZlcmZsb3c+OjpleHBhbmQpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuaDoKKyAgICAgICAgKiBydW50aW1lL05hdGl2ZUZ1bmN0
aW9uLmg6CisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmg6CisgICAgICAgIChKU0M6Ompz
U3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cE9iamVjdC5oOgorICAgICAgICAqIHJ1
bnRpbWUvU2NvcGVkQXJndW1lbnRzLmg6CisgICAgICAgICogcnVudGltZS9TY29wZWRBcmd1bWVu
dHNUYWJsZS5jcHA6CisgICAgICAgICogcnVudGltZS9UeXBlZEFycmF5QWRhcHRvcnMuaDoKKyAg
ICAgICAgKEpTQzo6SW50ZWdyYWxUeXBlZEFycmF5QWRhcHRvcjo6dG9KU1ZhbHVlKToKKyAgICAg
ICAgKiBydW50aW1lL1R5cGVkQXJyYXlUeXBlLmg6CisgICAgICAgICogcnVudGltZS9XZWFrTWFw
SW1wbC5oOgorICAgICAgICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAg
KEpTQzo6V2FzbTo6QWlySVJHZW5lcmF0b3I6OmFkZENhbGxJbmRpcmVjdCk6CisgICAgICAgIChK
U0M6Oldhc206OkFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tzRm9yTW9kT3JEaXYpOgorICAgICAg
ICAoSlNDOjpXYXNtOjpBaXJJUkdlbmVyYXRvcjo6ZW1pdE1vZE9yRGl2KToKKyAgICAgICAgKiB5
YXJyL1lhcnJJbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OkludGVycHJldGVy
OjpEaXNqdW5jdGlvbkNvbnRleHQ6OmFsbG9jYXRpb25TaXplKToKKyAgICAgICAgKEpTQzo6WWFy
cjo6SW50ZXJwcmV0ZXI6OlBhcmVudGhlc2VzRGlzanVuY3Rpb25Db250ZXh0OjphbGxvY2F0aW9u
U2l6ZSk6CisKIDIwMjItMDMtMjUgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
IAogICAgICAgICBbSlNDXSBDbGVhbiB1cCBEYXRhSUMgcG9seW1vcnBoaWMgY2FsbCBjb2RlIGZv
ciBPcHRpbWl6aW5nQ2FsbExpbmtJbmZvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ3ZjIwNGU5YmM0NTc0YzQyMjQ1NzE2MWE1
MGI2NTEwYzgzNmNiNWUuLjY2YzVhNWRlMzE1MDAyYjdhNGQwMzY4Mzg1YzExMDA0Y2RlZTY4ODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdW5hcnkgc3RhdGljX2Fzc2VydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDEyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvQ29tcGFjdFBvaW50
ZXJUdXBsZS5oOgorICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmg6CisgICAgICAgICogd3RmL0Z1
bmN0aW9uVHJhaXRzLmg6CisgICAgICAgIChXVEY6OnNsb3RzRm9yQ0NhbGxBcmd1bWVudCk6Cisg
ICAgICAgICogd3RmL0ludDEyOC5jcHA6CisgICAgICAgICogd3RmL01hbGxvY1B0ci5oOgorICAg
ICAgICAqIHd0Zi9NYXJrYWJsZS5oOgorICAgICAgICAoV1RGOjpzdGQ6OnVuZGVybHlpbmdfdHlw
ZTxFbnVtVHlwZT46OnR5cGU+OjptYXgpOgorICAgICAgICAqIHd0Zi9QdHJUYWcuaDoKKyAgICAg
ICAgKFdURjo6dGFnSW50KToKKyAgICAgICAgKiB3dGYvU2Vjb25kcy5oOgorICAgICAgICAqIHd0
Zi9TdGRMaWJFeHRyYXMuaDoKKyAgICAgICAgKFdURjo6cm91bmRVcFRvTXVsdGlwbGVPZik6Cisg
ICAgICAgICogd3RmL1N5c3RlbUZyZWUuaDoKKyAgICAgICAgKiB3dGYvVW5hbGlnbmVkQWNjZXNz
Lmg6CisgICAgICAgIChXVEY6OnVuYWxpZ25lZExvYWQpOgorICAgICAgICAoV1RGOjp1bmFsaWdu
ZWRTdG9yZSk6CisgICAgICAgICogd3RmL1VuaXF1ZUFycmF5Lmg6CisgICAgICAgIChXVEY6Om1h
a2VVbmlxdWVBcnJheSk6CisgICAgICAgICogd3RmL1dURkFzc2VydGlvbnMuY3BwOgorICAgICAg
ICAqIHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg6CisgICAgICAgIChXVEY6OnRyeU1ha2VT
dHJpbmdGcm9tQWRhcHRlcnMpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAg
ICAgICAgKiB3dGYvdGV4dC9TeW1ib2xJbXBsLmg6CisKIDIwMjItMDMtMjUgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgU3RyaW5nVmlldzo6c3BsaXQoKSBp
bnN0ZWFkIG9mIFN0cmluZzo6c3BsaXQoKSBpbiBtb3JlIHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRk
ZDQwNTdmNDgwMjcxZGQ4NzYwZTgwNmRmZjA5NTlmNTdkNjE4MTAuLmM4YjdmYjI4MDY1MmE3NjZm
NDMwOTBjODNkMDAxNTZhOTRlMzcxNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAy
Mi0wMy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFVz
ZSB1bmFyeSBzdGF0aWNfYXNzZXJ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzg0MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50
cnkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5o
OgorICAgICAgICAqIGNzcy9ET01NYXRyaXguaDoKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JD
b21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3Rv
ckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlQWRkU3R5bGVSZWxhdGlvbik6CisgICAgICAgICogZG9t
L0RPTVBvaW50Lmg6CisgICAgICAgICogZG9tL0RPTVJlY3QuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxBbGxDb2xsZWN0aW9uLmg6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5o
OgorICAgICAgICAqIGh0bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaDoKKyAgICAgICAgKiBsYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVJdGVtLmNwcDoKKyAgICAgICAgKiBs
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vS2V5ZWRDb2RpbmcuaDoKKyAgICAgICAgKFdlYkNvcmU6OktleWVkRGVj
b2Rlcjo6ZGVjb2RlQnl0ZXMpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdEV2ZW50VGFy
Z2V0Lmg6CisKIDIwMjItMDMtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBTaW1wbGlmeSAvIE9wdGltaXplIEpTTm9kZU93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlZGQxMmZkODA5NTFiOTg5YjMxNjgzYmRjNGMxYTI3
ZjIxNGU4ZmMuLmZiN2E2MTE5NjBlZWI4YjU5ZDVjODM2NDVkMDliNWY3NDI2ZjVhODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdW5hcnkgc3RhdGljX2Fzc2VydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDEyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tD
b250ZXh0TWVudUl0ZW0uY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SGlzdG9yeUVudHJ5RGF0YUVuY29k
ZXI6OmVuY29kZUFyaXRobWV0aWNUeXBlKToKKyAgICAgICAgKFdlYktpdDo6SGlzdG9yeUVudHJ5
RGF0YURlY29kZXI6OmRlY29kZUFyaXRobWV0aWNUeXBlKToKKwogMjAyMi0wMy0yNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3JhcmlseSBk
aXNhYmxlIGFzc2VydGlvbiBpbiBNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwOjphZGRJbXBsKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZyBiL1NvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwppbmRleCBhNDUzZjM3NzE5ZDgzZTBjNGU0MWI1N2I3N2JjMGZhY2FiOTMxMDBhLi5jNjg4
ZWMxYWM3MGRhNmNjMGRjMmI3ODYwMzRlMTQzYWNlM2YxYmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
Ym1hbGxvYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjItMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4K
KworICAgICAgICBVc2UgdW5hcnkgc3RhdGljX2Fzc2VydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBibWFsbG9jL0FsZ29yaXRobS5oOgorICAgICAg
ICAoYm1hbGxvYzo6aXNQb3dlck9mVHdvKToKKyAgICAgICAgKiBibWFsbG9jL0dpZ2FjYWdlLmg6
CisgICAgICAgICogYm1hbGxvYy9Jc29IZWFwSW1wbC5oOgorCiAyMDIyLTAzLTIxICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRHVzdCBvZmYg
TWFjIENNYWtlIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0FSTTY0QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FS
TTY0QXNzZW1ibGVyLmgKaW5kZXggNmU5MWQ5MjMwYTM5Y2U1NzhkZTdmYTc2NWFjYmRkZTMyNTMz
MDkyMS4uMDU4ZjMxNTM4OTY0Yjg0NWRlYTFhYzcxMmYxYzgyOTEzZWZiNGJhNiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaApAQCAtMzEy
Myw3ICszMTIzLDcgQEAgY2xhc3MgQVJNNjRBc3NlbWJsZXIgewogICAgIHRlbXBsYXRlPEJyYW5j
aFR5cGUgdHlwZSwgQ29weUZ1bmN0aW9uIGNvcHkgPSBwZXJmb3JtSklUTWVtY3B5PgogICAgIHN0
YXRpYyB2b2lkIGxpbmtKdW1wT3JDYWxsKGludCogZnJvbSwgY29uc3QgaW50KiBmcm9tSW5zdHJ1
Y3Rpb24sIHZvaWQqIHRvKQogICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydCh0eXBlID09IEJy
YW5jaFR5cGVfSk1QIHx8IHR5cGUgPT0gQnJhbmNoVHlwZV9DQUxMLCAiIik7CisgICAgICAgIHN0
YXRpY19hc3NlcnQodHlwZSA9PSBCcmFuY2hUeXBlX0pNUCB8fCB0eXBlID09IEJyYW5jaFR5cGVf
Q0FMTCk7CiAKICAgICAgICAgYm9vbCBsaW5rOwogICAgICAgICBpbnQgaW1tMjY7CkBAIC0zMjQw
LDcgKzMyNDAsNyBAQCBjbGFzcyBBUk02NEFzc2VtYmxlciB7CiAgICAgdGVtcGxhdGU8QnJhbmNo
VHlwZSB0eXBlPgogICAgIHN0YXRpYyB2b2lkIHJlbGlua0p1bXBPckNhbGwoaW50KiBmcm9tLCBj
b25zdCBpbnQqIGZyb21JbnN0cnVjdGlvbiwgdm9pZCogdG8pCiAgICAgewotICAgICAgICBzdGF0
aWNfYXNzZXJ0KHR5cGUgPT0gQnJhbmNoVHlwZV9KTVAgfHwgdHlwZSA9PSBCcmFuY2hUeXBlX0NB
TEwsICIiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCh0eXBlID09IEJyYW5jaFR5cGVfSk1QIHx8
IHR5cGUgPT0gQnJhbmNoVHlwZV9DQUxMKTsKICAgICAgICAgaWYgKCh0eXBlID09IEJyYW5jaFR5
cGVfSk1QKSAmJiBkaXNhc3NlbWJsZU5vcChmcm9tKSkgewogICAgICAgICAgICAgdW5zaWduZWQg
b3AwMTsKICAgICAgICAgICAgIGludCBpbW0xOTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1ibGVyQnVmZmVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0Fzc2VtYmxlckJ1ZmZlci5oCmluZGV4IDlhMzZkMTRmMzFjMmFkZmFiZGM0
NjcyNDRlYmY3MWJkOWZkZTE4ZjIuLjFhN2I2N2JkZDI4OTVjMDAwY2Q3ODI2YmY5YzBhMzE0NTkz
MjIzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQXNzZW1i
bGVyQnVmZmVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9Bc3NlbWJs
ZXJCdWZmZXIuaApAQCAtNDU2LDcgKzQ1Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2
b2lkIHB1dEludGVncmFsVW5jaGVja2VkKEludGVncmFsVHlwZSB2YWx1ZSkKICAgICAgICAgewog
I2lmIENQVShBUk02NCkKLSAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKHZhbHVlKSA9
PSA0LCAiIik7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih2YWx1ZSkgPT0gNCk7
CiAjaWYgQ1BVKEFSTTY0RSkKICAgICAgICAgICAgIHVpbnQzMl90IGhhc2ggPSBtX2hhc2gudXBk
YXRlKHZhbHVlLCBtX2luZGV4IC8gc2l6ZW9mKEludGVncmFsVHlwZSkpOwogICAgICAgICAgICAg
V1RGOjp1bmFsaWduZWRTdG9yZTx1aW50MzJfdD4obV9oYXNoZXMuYnVmZmVyKCkgKyBtX2luZGV4
LCBoYXNoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJDb2RlUmVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQ29kZVJlZi5oCmluZGV4IDFlYTMyNDU0MTVhYjA4YTQ1YzdkM2U1OTU5NjBj
NDQ1YjE5ZmY3NTEuLjRjMzY5NzJiZWQ3ZGEwYzQ5NzZhNGE5YmIwODUwYTJiNjUxYWYxOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckNvZGVSZWYuaApAQCAtMjIzLDkgKzIyMyw5IEBAIGNsYXNzIEZ1bmN0aW9uUHRyIHsKICAg
ICB0ZW1wbGF0ZTxQdHJUYWc+IGZyaWVuZCBjbGFzcyBGdW5jdGlvblB0cjsKIH07CiAKLXN0YXRp
Y19hc3NlcnQoc2l6ZW9mKEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0clRhZz4pID09IHNpemVvZih2
b2lkKiksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKEZ1bmN0aW9uUHRyPENGdW5jdGlvblB0
clRhZz4pID09IHNpemVvZih2b2lkKikpOwogI2lmIENPTVBJTEVSX1NVUFBPUlRTKEJVSUxUSU5f
SVNfVFJJVklBTExZX0NPUFlBQkxFKQotc3RhdGljX2Fzc2VydChfX2lzX3RyaXZpYWxseV9jb3B5
YWJsZShGdW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+KSwgIiIpOworc3RhdGljX2Fzc2VydChf
X2lzX3RyaXZpYWxseV9jb3B5YWJsZShGdW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+KSk7CiAj
ZW5kaWYKIAogLy8gUmV0dXJuQWRkcmVzc1B0cjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9BZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRC
YXNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWRhcHRpdmVJbmZlcnJlZFBy
b3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oCmluZGV4IDUwMmI1YWYxZTUyZDU5ZTlkYzYyNDdk
ODZiZWFmYTFjMzY3MmYzYjEuLjBhOWViYWQ4ZDk2NGZiM2FlYWY3YTI0OWZjZjhlOWMxMjYwZGJj
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BZGFwdGl2ZUlu
ZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludEJh
c2UuaApAQCAtNTgsNyArNTgsNyBAQCBjbGFzcyBBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1
ZVdhdGNocG9pbnRCYXNlIHsKICAgICAgICAgdm9pZCBmaXJlSW50ZXJuYWwoVk0mLCBjb25zdCBG
aXJlRGV0YWlsJik7CiAgICAgfTsKICAgICAvLyBPd24gZGVzdHJ1Y3RvciBtYXkgbm90IGJlIGNh
bGxlZC4gS2VlcCBtZW1iZXJzIHRyaXZpYWxseSBkZXN0cnVjdGlibGUuCi0gICAgc3RhdGljX2Fz
c2VydChzaXplb2YoU3RydWN0dXJlV2F0Y2hwb2ludCkgPT0gc2l6ZW9mKFdhdGNocG9pbnQpLCAi
Iik7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoU3RydWN0dXJlV2F0Y2hwb2ludCkgPT0gc2l6
ZW9mKFdhdGNocG9pbnQpKTsKIAogICAgIGNsYXNzIFByb3BlcnR5V2F0Y2hwb2ludCBmaW5hbCA6
IHB1YmxpYyBXYXRjaHBvaW50IHsKICAgICBwdWJsaWM6CkBAIC02OSw3ICs2OSw3IEBAIGNsYXNz
IEFkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludEJhc2UgewogICAgICAgICB2
b2lkIGZpcmVJbnRlcm5hbChWTSYsIGNvbnN0IEZpcmVEZXRhaWwmKTsKICAgICB9OwogICAgIC8v
IE93biBkZXN0cnVjdG9yIG1heSBub3QgYmUgY2FsbGVkLiBLZWVwIG1lbWJlcnMgdHJpdmlhbGx5
IGRlc3RydWN0aWJsZS4KLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihQcm9wZXJ0eVdhdGNocG9p
bnQpID09IHNpemVvZihXYXRjaHBvaW50KSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9m
KFByb3BlcnR5V2F0Y2hwb2ludCkgPT0gc2l6ZW9mKFdhdGNocG9pbnQpKTsKIAogcHJvdGVjdGVk
OgogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmgKaW5kZXggYTYxNTg3NTczYjMyODdhMjExNGM0
ZDVmODMyNWRiN2ZkODNmMGViMi4uNDg1M2IyZjNhNDAwNDI4YmIzZmQ4MzY1M2ZkMDFkOWVlMjcw
MjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FycmF5UHJv
ZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BcnJheVByb2ZpbGUu
aApAQCAtNDEsOSArNDEsOSBAQCB0eXBlZGVmIHVuc2lnbmVkIEFycmF5TW9kZXM7CiAKIC8vIFRo
ZSBwb3NzaWJsZSBJbmRleGluZ1R5cGVzIGFyZSBsaW1pdGVkIHdpdGhpbiAoMCAtIDE2LCAyMSwg
MjMsIDI1KS4KIC8vIFRoaXMgaXMgYmVjYXVzZSBDb1cgdHlwZXMgb25seSBhcHBlYXIgZm9yIEpT
QXJyYXlzLgotc3RhdGljX2Fzc2VydChDb3B5T25Xcml0ZUFycmF5V2l0aEludDMyID09IDIxLCAi
Iik7Ci1zdGF0aWNfYXNzZXJ0KENvcHlPbldyaXRlQXJyYXlXaXRoRG91YmxlID09IDIzLCAiIik7
Ci1zdGF0aWNfYXNzZXJ0KENvcHlPbldyaXRlQXJyYXlXaXRoQ29udGlndW91cyA9PSAyNSwgIiIp
Oworc3RhdGljX2Fzc2VydChDb3B5T25Xcml0ZUFycmF5V2l0aEludDMyID09IDIxKTsKK3N0YXRp
Y19hc3NlcnQoQ29weU9uV3JpdGVBcnJheVdpdGhEb3VibGUgPT0gMjMpOworc3RhdGljX2Fzc2Vy
dChDb3B5T25Xcml0ZUFycmF5V2l0aENvbnRpZ3VvdXMgPT0gMjUpOwogY29uc3QgQXJyYXlNb2Rl
cyBDb3B5T25Xcml0ZUFycmF5V2l0aEludDMyQXJyYXlNb2RlID0gMSA8PCBDb3B5T25Xcml0ZUFy
cmF5V2l0aEludDMyOwogY29uc3QgQXJyYXlNb2RlcyBDb3B5T25Xcml0ZUFycmF5V2l0aERvdWJs
ZUFycmF5TW9kZSA9IDEgPDwgQ29weU9uV3JpdGVBcnJheVdpdGhEb3VibGU7CiBjb25zdCBBcnJh
eU1vZGVzIENvcHlPbldyaXRlQXJyYXlXaXRoQ29udGlndW91c0FycmF5TW9kZSA9IDEgPDwgQ29w
eU9uV3JpdGVBcnJheVdpdGhDb250aWd1b3VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9ja0hhc2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9ja0hhc2guY3BwCmluZGV4IGVlM2I3NTg0N2I2YjdkYzQyMGFiMjU1
NDYwMWU4ZTRkMGRiNmNlODUuLjllOTRiNWI3M2VkMDVhZmJhZjZhZmEzNzE1NjI3M2NjNDk3MWUx
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tI
YXNoLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrSGFz
aC5jcHAKQEAgLTc3LDggKzc3LDggQEAgQ29kZUJsb2NrSGFzaDo6Q29kZUJsb2NrSGFzaChjb25z
dCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW4KIAogICAgIGlm
IChtX2hhc2ggPT0gMCB8fCBtX2hhc2ggPT0gMSkKICAgICAgICAgbV9oYXNoICs9IDB4MmQ1YTkz
ZDA7IC8vIEVuc3VyZXMgYSBub24temVybyBoYXNoLCBhbmQgZ2V0cyB1cyAjQXplcm8wIGZvciBD
b2RlRm9yQ2FsbCBhbmQgI0F6ZXJvMSBmb3IgQ29kZUZvckNvbnN0cnVjdC4KLSAgICBzdGF0aWNf
YXNzZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9yQ2FsbCkgPT0gMCwgIiIpOwotICAg
IHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KENvZGVGb3JDb25zdHJ1Y3QpID09
IDEsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9y
Q2FsbCkgPT0gMCk7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQ29k
ZUZvckNvbnN0cnVjdCkgPT0gMSk7CiAgICAgbV9oYXNoIF49IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihraW5kKTsKICAgICBBU1NFUlQobV9oYXNoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9QYXJzZUhhc2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1BhcnNlSGFzaC5jcHAKaW5kZXggMzk2YzJiOTBmNTk4ODhmMjQyMTczZGYyZGNh
MzgwMzUzZDk4YzlmNS4uNGZiMWQ2NTQ0OGQ1NmM4YzY4NDc4YTMwYTRhNjNhOTI3YzI4M2FiYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BhcnNlSGFzaC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BhcnNlSGFzaC5jcHAKQEAgLTQx
LDggKzQxLDggQEAgUGFyc2VIYXNoOjpQYXJzZUhhc2goY29uc3QgU291cmNlQ29kZSYgc291cmNl
Q29kZSkKIAogICAgIGlmIChoYXNoID09IDAgfHwgaGFzaCA9PSAxKQogICAgICAgICBoYXNoICs9
IDB4MmQ1YTkzZDA7IC8vIEVuc3VyZXMgYSBub24temVybyBoYXNoLCBhbmQgZ2V0cyB1cyAjQXpl
cm8wIGZvciBDb2RlRm9yQ2FsbCBhbmQgI0F6ZXJvMSBmb3IgQ29kZUZvckNvbnN0cnVjdC4KLSAg
ICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9yQ2FsbCkgPT0gMCwg
IiIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KENvZGVGb3JDb25z
dHJ1Y3QpID09IDEsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVk
PihDb2RlRm9yQ2FsbCkgPT0gMCk7CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oQ29kZUZvckNvbnN0cnVjdCkgPT0gMSk7CiAgICAgdW5zaWduZWQgaGFzaEZvckNhbGwg
PSBoYXNoIF4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KENvZGVGb3JDYWxsKTsKICAgICB1bnNpZ25l
ZCBoYXNoRm9yQ29uc3RydWN0ID0gaGFzaCBeIHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9y
Q29uc3RydWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1dhdGNocG9pbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9XYXRjaHBvaW50
LmgKaW5kZXggNzFhMWU0M2YyNDFjMGJkMTNiY2NjNTQ0ZTYyODQzNWFkODYyMjRjZi4uY2Q5MzBm
NDQ5ZjFiNWZlNjY3MTE5NWUzYjkzYjBhNmE2ZGFmY2E0MSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1dhdGNocG9pbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvV2F0Y2hwb2ludC5oCkBAIC0xMzIsNyArMTMyLDcgQEAgY2xhc3MgV2F0
Y2hwb2ludFNldDsKIAogI2RlZmluZSBKU0NfV0FUQ0hQT0lOVF9GSUVMRCh0eXBlLCBtZW1iZXIp
IFwKICAgICB0eXBlIG1lbWJlcjsgXAotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFs
bHlfZGVzdHJ1Y3RpYmxlPHR5cGU+Ojp2YWx1ZSwgIiIpOyBcCisgICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8dHlwZT46OnZhbHVlKTsgXAogCiBERUNMQVJF
X0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihXYXRjaHBvaW50KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR05vZGUuaAppbmRleCA4NjZmNjNkYjNkZjA4MGZmYWE3MDI0MjA0YjJiNTFm
MjViMGU3MTY4Li5hYjE0ZGI2YjVkOTQ4MjdjNDdhY2RmMGE1MTY1YjdiMzY3MjhkMGZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaApAQCAtMTI0LDggKzEyNCw4IEBAIHN0cnVjdCBO
ZXdBcnJheUJ1ZmZlckRhdGEgewogICAgICAgICB1aW50NjRfdCBhc1F1YWRXb3JkOwogICAgIH07
CiB9Owotc3RhdGljX2Fzc2VydChzaXplb2YoSW5kZXhpbmdUeXBlKSA8PSBzaXplb2YodW5zaWdu
ZWQpLCAiIik7Ci1zdGF0aWNfYXNzZXJ0KHNpemVvZihOZXdBcnJheUJ1ZmZlckRhdGEpID09IHNp
emVvZih1aW50NjRfdCksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKEluZGV4aW5nVHlwZSkg
PD0gc2l6ZW9mKHVuc2lnbmVkKSk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihOZXdBcnJheUJ1ZmZl
ckRhdGEpID09IHNpemVvZih1aW50NjRfdCkpOwogCiBzdHJ1Y3QgRGF0YVZpZXdEYXRhIHsKICAg
ICB1bmlvbiB7CkBAIC0xMzgsNyArMTM4LDcgQEAgc3RydWN0IERhdGFWaWV3RGF0YSB7CiAgICAg
ICAgIHVpbnQ2NF90IGFzUXVhZFdvcmQ7CiAgICAgfTsKIH07Ci1zdGF0aWNfYXNzZXJ0KHNpemVv
ZihEYXRhVmlld0RhdGEpID09IHNpemVvZih1aW50NjRfdCksICIiKTsKK3N0YXRpY19hc3NlcnQo
c2l6ZW9mKERhdGFWaWV3RGF0YSkgPT0gc2l6ZW9mKHVpbnQ2NF90KSk7CiAKIHN0cnVjdCBCcmFu
Y2hUYXJnZXQgewogICAgIEJyYW5jaFRhcmdldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdPcGVyYXRpb25zLmNwcAppbmRleCBkYzUwMzE2NDc1YWY4OTFhNWZkYmNlZGM4NDZmYmFh
OTQ0Yjg2MWRkLi4xOThhZTkxOTkyYjUxODk3OGQ4MmEwZDQ3ZTUyNmUxYTY3NTVkNjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTI1NTAsNyAr
MjU1MCw3IEBAIEpTQ19ERUZJTkVfSklUX09QRVJBVElPTihvcGVyYXRpb25TdHJpbmdTbGljZSwg
SlNDZWxsKiwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPCiAgICAgSklUT3BlcmF0aW9uUHJvbG9n
dWVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOwogCiAgICAgSlNTdHJpbmcq
IHN0cmluZyA9IGFzU3RyaW5nKGNlbGwpOwotICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
dWludDY0X3Q+KEpTU3RyaW5nOjpNYXhMZW5ndGgpIDw9IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihz
dGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSksICIiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHVpbnQ2NF90PihKU1N0cmluZzo6TWF4TGVuZ3RoKSA8PSBzdGF0aWNf
Y2FzdDx1aW50NjRfdD4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpKTsKICAg
ICByZXR1cm4gc3RyaW5nU2xpY2UoZ2xvYmFsT2JqZWN0LCB2bSwgc3RyaW5nLCBzdHJpbmctPmxl
bmd0aCgpLCBzdGFydCwgZW5kKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCA2YmRlZTc1ZjE4NGFmMzM1YWVkZjg2Y2U5YjYw
ODhmMzQ5Y2JhM2FmLi41NWVmNzYxNTRkMjA1MWIyMmM5ZWRkNzg3Njk1ZDU1NmM4MTUyZDc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApA
QCAtMTUyODgsMTMgKzE1Mjg4LDEzIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVXZWFr
TWFwR2V0KE5vZGUqIG5vZGUpCiAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGxvb3AgPSBtX2pp
dC5sYWJlbCgpOwogICAgIG1faml0LmFuZDMyKG1hc2tHUFIsIGluZGV4R1BSKTsKICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCkudXNlS2luZCgpID09IFdlYWtTZXRPYmplY3RVc2UpIHsKLSAgICAgICAg
c3RhdGljX2Fzc2VydChzaXplb2YoV2Vha01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleT4p
ID09IHNpemVvZih2b2lkKiksICIiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoV2Vh
a01hcEJ1Y2tldDxXZWFrTWFwQnVja2V0RGF0YUtleT4pID09IHNpemVvZih2b2lkKikpOwogICAg
ICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1dvcmQoaW5kZXhHUFIsIGJ1Y2tldEdQUik7CiAgICAg
ICAgIG1faml0LmxzaGlmdFB0cihNYWNyb0Fzc2VtYmxlcjo6SW1tMzIoc2l6ZW9mKHZvaWQqKSA9
PSA0ID8gMiA6IDMpLCBidWNrZXRHUFIpOwogICAgICAgICBtX2ppdC5hZGRQdHIoYnVmZmVyR1BS
LCBidWNrZXRHUFIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkgPT0gV2Vha01hcE9iamVjdFVzZSk7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZT4pID09IDE2LCAi
Iik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFdlYWtNYXBCdWNrZXQ8V2Vha01hcEJ1
Y2tldERhdGFLZXlWYWx1ZT4pID09IDE2KTsKICAgICAgICAgbV9qaXQuemVyb0V4dGVuZDMyVG9X
b3JkKGluZGV4R1BSLCBidWNrZXRHUFIpOwogICAgICAgICBtX2ppdC5sc2hpZnRQdHIoTWFjcm9B
c3NlbWJsZXI6OkltbTMyKDQpLCBidWNrZXRHUFIpOwogICAgICAgICBtX2ppdC5hZGRQdHIoYnVm
ZmVyR1BSLCBidWNrZXRHUFIpOwpAQCAtMTYxMzksNyArMTYxMzksNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlTWFrZVJvcGUoTm9kZSogbm9kZSkKICAgICAgICAgb2subGluaygmbV9q
aXQpOwogICAgIH0KIAotICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nSW1wbDo6ZmxhZ0lzOEJpdCgp
ID09IEpTUm9wZVN0cmluZzo6aXM4Qml0SW5Qb2ludGVyLCAiIik7CisgICAgc3RhdGljX2Fzc2Vy
dChTdHJpbmdJbXBsOjpmbGFnSXM4Qml0KCkgPT0gSlNSb3BlU3RyaW5nOjppczhCaXRJblBvaW50
ZXIpOwogICAgIG1faml0LmFuZDMyKFRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXM4Qml0
KCkpLCBzY3JhdGNoR1BSKTsKICAgICBtX2ppdC5vclB0cihvcEdQUnNbMF0sIHNjcmF0Y2hHUFIp
OwogICAgIG1faml0Lm9yUHRyKFRydXN0ZWRJbW1QdHIoSlNTdHJpbmc6OmlzUm9wZUluUG9pbnRl
ciksIHNjcmF0Y2hHUFIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggY2QzNzQ2MjdlMGJkNTU2MWIyZWFlYTY5NzRm
ZWM1OTIyNmQ4ZGM1Ni4uMDZiMjIxNGJiOGYxY2YyNjBmOWI0MTcxYjE0Njc2OTllNTg4ZDZlYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC0zNTU3LDcgKzM1NTcsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7
CiAKICAgICAgICAgbV9qaXQubW92ZSh2YWx1ZVRhZ0dQUiwgcmVzdWx0R1BSKTsKLSAgICAgICAg
c3RhdGljX2Fzc2VydCgoSlNWYWx1ZTo6VW5kZWZpbmVkVGFnICsgMSA9PSBKU1ZhbHVlOjpOdWxs
VGFnKSAmJiAoSlNWYWx1ZTo6TnVsbFRhZyAmIDB4MSksICIiKTsKKyAgICAgICAgc3RhdGljX2Fz
c2VydCgoSlNWYWx1ZTo6VW5kZWZpbmVkVGFnICsgMSA9PSBKU1ZhbHVlOjpOdWxsVGFnKSAmJiAo
SlNWYWx1ZTo6TnVsbFRhZyAmIDB4MSkpOwogICAgICAgICBtX2ppdC5vcjMyKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKDEpLCByZXN1bHRHUFIpOwogICAgICAgICBtX2ppdC5jb21wYXJlMzIo
Q0NhbGxIZWxwZXJzOjpFcXVhbCwgcmVzdWx0R1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihKU1ZhbHVlOjpOdWxsVGFnKSwgcmVzdWx0R1BSKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IGVjZjMwZDA2NDI2NDc3ZWQzMjY1MDQy
MzY4M2MyNTU5Y2Y1ZGMzMzEuLmIxZTAzNjkxNDEwYjgyN2IwYzBlZDRkMGZlYzI3ZDg3NTU5YzU5
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
QEAgLTY0NDIsNyArNjQ0Miw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKIAogICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd1BhdGgsIHNldHVwKTsKICAgICAgICAgICAgIHNpemVf
dCBzY3JhdGNoU2l6ZSA9IHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgKiBlbGVtZW50Q291bnQ7Ci0g
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihFbmNvZGVkSlNWYWx1ZSkgPT0gc2l6ZW9m
KGRvdWJsZSksICIiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEVuY29kZWRK
U1ZhbHVlKSA9PSBzaXplb2YoZG91YmxlKSk7CiAgICAgICAgICAgICBBU1NFUlQoc2NyYXRjaFNp
emUpOwogICAgICAgICAgICAgU2NyYXRjaEJ1ZmZlciogc2NyYXRjaEJ1ZmZlciA9IHZtKCkuc2Ny
YXRjaEJ1ZmZlckZvclNpemUoc2NyYXRjaFNpemUpOwogICAgICAgICAgICAgVmFsdWVGcm9tQmxv
Y2sgc2xvd0J1ZmZlclJlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5jb25zdEludFB0cihzdGF0
aWNfY2FzdDxFbmNvZGVkSlNWYWx1ZSo+KHNjcmF0Y2hCdWZmZXItPmRhdGFCdWZmZXIoKSkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVnaXN0ZXJTZXQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNldC5jcHAKaW5kZXggMzhjNjc5NDlm
ZGRmMDczYTg4ZmE1NTgyOTcyYzkyNWMxNjFjZGVkNC4uYjJlZmY2NTI0YzRiMjZlYzY5ODViMjk1
ZGRmNDFhNWI0NzUyMTQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9S
ZWdpc3RlclNldC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZWdpc3RlclNl
dC5jcHAKQEAgLTIwMSwxNSArMjAxLDE1IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0OjpsbGlu
dEJhc2VsaW5lQ2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAjaWYgIU9TKFdJTkRPV1MpCiAgICAgcmVz
dWx0LnNldChHUFJJbmZvOjpyZWdDUzEpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1My
KTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTMyA9PSBHUFJJbmZvOjpudW1iZXJU
YWdSZWdpc3RlciwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M0ID09IEdQ
UkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEdQUklu
Zm86OnJlZ0NTMyA9PSBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3Rlcik7CisgICAgc3RhdGljX2Fz
c2VydChHUFJJbmZvOjpyZWdDUzQgPT0gR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CiAg
ICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzMpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6
cmVnQ1M0KTsKICNlbHNlCiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzMpOwogICAgIHJl
c3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M0KTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJl
Z0NTNSA9PSBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlciwgIiIpOwotICAgIHN0YXRpY19hc3Nl
cnQoR1BSSW5mbzo6cmVnQ1M2ID09IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIsICIiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTNSA9PSBHUFJJbmZvOjpudW1iZXJUYWdS
ZWdpc3Rlcik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzYgPT0gR1BSSW5mbzo6
bm90Q2VsbE1hc2tSZWdpc3Rlcik7CiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzUpOwog
ICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M2KTsKICNlbmRpZgpAQCAtMjE5LDggKzIxOSw4
IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0OjpsbGludEJhc2VsaW5lQ2FsbGVlU2F2ZVJlZ2lz
dGVycygpCiAjZWxpZiBDUFUoQVJNNjQpIHx8IENQVShSSVNDVjY0KQogICAgIHJlc3VsdC5zZXQo
R1BSSW5mbzo6cmVnQ1M2KTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTNyk7Ci0gICAg
c3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzggPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0
ZXIsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTOSA9PSBHUFJJbmZvOjpu
b3RDZWxsTWFza1JlZ2lzdGVyLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdD
UzggPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpOworICAgIHN0YXRpY19hc3NlcnQoR1BS
SW5mbzo6cmVnQ1M5ID09IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwogICAgIHJlc3Vs
dC5zZXQoR1BSSW5mbzo6cmVnQ1M4KTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTOSk7
CiAjZWxzZQpAQCAtMjM4LDE1ICsyMzgsMTUgQEAgUmVnaXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6OmRm
Z0NhbGxlZVNhdmVSZWdpc3RlcnMoKQogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MxKTsK
ICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTMik7CiAjaWYgIU9TKFdJTkRPV1MpCi0gICAg
c3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzMgPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0
ZXIsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTNCA9PSBHUFJJbmZvOjpu
b3RDZWxsTWFza1JlZ2lzdGVyLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdD
UzMgPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpOworICAgIHN0YXRpY19hc3NlcnQoR1BS
SW5mbzo6cmVnQ1M0ID09IEdQUkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwogICAgIHJlc3Vs
dC5zZXQoR1BSSW5mbzo6cmVnQ1MzKTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTNCk7
CiAjZWxzZQogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MzKTsKICAgICByZXN1bHQuc2V0
KEdQUkluZm86OnJlZ0NTNCk7Ci0gICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzUgPT0g
R1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUklu
Zm86OnJlZ0NTNiA9PSBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyLCAiIik7CisgICAgc3Rh
dGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzUgPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIp
OworICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M2ID09IEdQUkluZm86Om5vdENlbGxN
YXNrUmVnaXN0ZXIpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M1KTsKICAgICByZXN1
bHQuc2V0KEdQUkluZm86OnJlZ0NTNik7CiAjZW5kaWYKQEAgLTI1NCw4ICsyNTQsOCBAQCBSZWdp
c3RlclNldCBSZWdpc3RlclNldDo6ZGZnQ2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAgICAgcmVzdWx0
LnNldChHUFJJbmZvOjpyZWdDUzApOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MxKTsK
ICNlbGlmIENQVShBUk02NCkgfHwgQ1BVKFJJU0NWNjQpCi0gICAgc3RhdGljX2Fzc2VydChHUFJJ
bmZvOjpyZWdDUzggPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsICIiKTsKLSAgICBzdGF0
aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTOSA9PSBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVy
LCAiIik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzggPT0gR1BSSW5mbzo6bnVt
YmVyVGFnUmVnaXN0ZXIpOworICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M5ID09IEdQ
UkluZm86Om5vdENlbGxNYXNrUmVnaXN0ZXIpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVn
Q1M4KTsKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTOSk7CiAjZWxzZQpAQCAtMjcyLDgg
KzI3Miw4IEBAIFJlZ2lzdGVyU2V0IFJlZ2lzdGVyU2V0OjpmdGxDYWxsZWVTYXZlUmVnaXN0ZXJz
KCkKICAgICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTMCk7CiAgICAgcmVzdWx0LnNldChHUFJJ
bmZvOjpyZWdDUzEpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MyKTsKLSAgICBzdGF0
aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTMyA9PSBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3Rlciwg
IiIpOwotICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M0ID09IEdQUkluZm86Om5vdENl
bGxNYXNrUmVnaXN0ZXIsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86OnJlZ0NTMyA9
PSBHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3Rlcik7CisgICAgc3RhdGljX2Fzc2VydChHUFJJbmZv
OjpyZWdDUzQgPT0gR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3Rlcik7CiAgICAgcmVzdWx0LnNl
dChHUFJJbmZvOjpyZWdDUzMpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M0KTsKICNl
bGlmIENQVShBUk02NCkKQEAgLTI4Niw4ICsyODYsOCBAQCBSZWdpc3RlclNldCBSZWdpc3RlclNl
dDo6ZnRsQ2FsbGVlU2F2ZVJlZ2lzdGVycygpCiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdD
UzUpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M2KTsKICAgICByZXN1bHQuc2V0KEdQ
UkluZm86OnJlZ0NTNyk7Ci0gICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzggPT0gR1BS
SW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEdQUkluZm86
OnJlZ0NTOSA9PSBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyLCAiIik7CisgICAgc3RhdGlj
X2Fzc2VydChHUFJJbmZvOjpyZWdDUzggPT0gR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpOwor
ICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M5ID09IEdQUkluZm86Om5vdENlbGxNYXNr
UmVnaXN0ZXIpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M4KTsKICAgICByZXN1bHQu
c2V0KEdQUkluZm86OnJlZ0NTOSk7CiAgICAgcmVzdWx0LnNldChGUFJJbmZvOjpmcFJlZ0NTMCk7
CkBAIC0zMDcsOCArMzA3LDggQEAgUmVnaXN0ZXJTZXQgUmVnaXN0ZXJTZXQ6OmZ0bENhbGxlZVNh
dmVSZWdpc3RlcnMoKQogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1M1KTsKICAgICByZXN1
bHQuc2V0KEdQUkluZm86OnJlZ0NTNik7CiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpyZWdDUzcp
OwotICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6cmVnQ1M4ID09IEdQUkluZm86Om51bWJlclRh
Z1JlZ2lzdGVyLCAiIik7Ci0gICAgc3RhdGljX2Fzc2VydChHUFJJbmZvOjpyZWdDUzkgPT0gR1BS
SW5mbzo6bm90Q2VsbE1hc2tSZWdpc3RlciwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoR1BSSW5m
bzo6cmVnQ1M4ID09IEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KEdQUkluZm86OnJlZ0NTOSA9PSBHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVyKTsKICAg
ICByZXN1bHQuc2V0KEdQUkluZm86OnJlZ0NTOCk7CiAgICAgcmVzdWx0LnNldChHUFJJbmZvOjpy
ZWdDUzkpOwogICAgIHJlc3VsdC5zZXQoR1BSSW5mbzo6cmVnQ1MxMCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRCeXRlY29kZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWRCeXRlY29kZS5jcHAKaW5kZXggZGRhNDFhOGVm
YjhjODFiNGI2NmVlNDE2YmNmY2QwMmY0NTdkZjc5Ny4uMWFmZmFmZjQ3YTUxODU4ZDZhZGMzODc0
YTAxYjc3MzhjNTM1MTRkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ2FjaGVkQnl0ZWNvZGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NhY2hlZEJ5dGVjb2RlLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2b2lkIENhY2hlZEJ5dGVjb2Rl
Ojpjb21taXRVcGRhdGVzKGNvbnN0IEZvckVhY2hVcGRhdGVDYWxsYmFjayYgY2FsbGJhY2spIGNv
bnN0CiAgICAgICAgICAgICAgICAgcHRyZGlmZl90IGtpbmRPZmZzZXQgPSBmdW5jdGlvblVwZGF0
ZS5tX2tpbmQgPT0gQ29kZUZvckNhbGwgPyBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGVPZmZzZXRz
Ojpjb2RlQmxvY2tGb3JDYWxsT2Zmc2V0KCkgOiBDYWNoZWRGdW5jdGlvbkV4ZWN1dGFibGVPZmZz
ZXRzOjpjb2RlQmxvY2tGb3JDb25zdHJ1Y3RPZmZzZXQoKTsKICAgICAgICAgICAgICAgICBwdHJk
aWZmX3QgY29kZUJsb2NrT2Zmc2V0ID0gZnVuY3Rpb25VcGRhdGUubV9iYXNlICsga2luZE9mZnNl
dCArIENhY2hlZFdyaXRlQmFycmllck9mZnNldHM6OnB0ck9mZnNldCgpICsgQ2FjaGVkUHRyT2Zm
c2V0czo6b2Zmc2V0T2Zmc2V0KCk7CiAgICAgICAgICAgICAgICAgcHRyZGlmZl90IG9mZnNldFBh
eWxvYWQgPSBzdGF0aWNfY2FzdDxwdHJkaWZmX3Q+KG9mZnNldCkgLSBjb2RlQmxvY2tPZmZzZXQ7
Ci0gICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoVmFy
aWFibGVMZW5ndGhPYmplY3RCYXNlOjptX29mZnNldCksIHB0cmRpZmZfdD46OnZhbHVlLCAiIik7
CisgICAgICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3NhbWU8ZGVjbHR5cGUoVmFy
aWFibGVMZW5ndGhPYmplY3RCYXNlOjptX29mZnNldCksIHB0cmRpZmZfdD46OnZhbHVlKTsKICAg
ICAgICAgICAgICAgICBjYWxsYmFjayhjb2RlQmxvY2tPZmZzZXQsICZvZmZzZXRQYXlsb2FkLCBz
aXplb2YocHRyZGlmZl90KSk7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nsb25lZEFyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJndW1lbnRzLmgKaW5kZXggYjY3ZWVkNDhjYTgwNGVmOTMx
ZGQxZjcyZWViMzhhNTg1NWQ3YTZkMi4uYWNhZDQxY2Q4NDY1ZjZlZDlkOTAyMGNkYWNmODJkZmI4
NTY1MGM4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVk
QXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2xvbmVkQXJn
dW1lbnRzLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgY2xhc3MgQ2xvbmVkQXJndW1lbnRzIGZpbmFsIDog
cHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBl
LCBTdWJzcGFjZUFjY2VzcyBtb2RlPgogICAgIHN0YXRpYyBHQ0NsaWVudDo6SXNvU3Vic3BhY2Uq
IHN1YnNwYWNlRm9yKFZNJiB2bSkKICAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoIUNlbGxU
eXBlOjpuZWVkc0Rlc3RydWN0aW9uLCAiIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIUNlbGxU
eXBlOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAgICAgICAgcmV0dXJuICZ2bS5jbG9uZWRBcmd1bWVu
dHNTcGFjZSgpOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RpcmVjdEFyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGlyZWN0QXJndW1lbnRzLmgKaW5kZXggZmI5MGNkNzc1ZTk2NjVlYmIyMTAwYTc3NGY1M2Jm
MGUyYjYyZDUyYi4uNzIwOGYxOGRiMDA2ZWIyZDVmZWU0NmEzYzQ1YmNkMzlmM2RjMmUzNCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0QXJndW1lbnRzLmgKQEAg
LTQ5LDcgKzQ5LDcgQEAgY2xhc3MgRGlyZWN0QXJndW1lbnRzIGZpbmFsIDogcHVibGljIEdlbmVy
aWNBcmd1bWVudHM8RGlyZWN0QXJndW1lbnRzPiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2Vs
bFR5cGUsIFN1YnNwYWNlQWNjZXNzPgogICAgIHN0YXRpYyBDb21wbGV0ZVN1YnNwYWNlKiBzdWJz
cGFjZUZvcihWTSYgdm0pCiAgICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KCFDZWxsVHlwZTo6
bmVlZHNEZXN0cnVjdGlvbiwgIiIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KCFDZWxsVHlwZTo6
bmVlZHNEZXN0cnVjdGlvbik7CiAgICAgICAgIHJldHVybiAmdm0udmFyaWFibGVTaXplZENlbGxT
cGFjZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRGlyZWN0RXZhbEV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RpcmVjdEV2YWxFeGVjdXRhYmxlLmgKaW5kZXggMzYyY2VkOGQ3YjE3MTEyMGYyYjJiZTVmZDVj
OTU2MGUzMDU5ZWUzMi4uYmUzMzc1ZTEzODI2NDFiZDM3N2UyMTJmZWRlYTViZGEyMmYzMGZhNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1
dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EaXJlY3RFdmFsRXhl
Y3V0YWJsZS5oCkBAIC0zNiw2ICszNiw2IEBAIGNsYXNzIERpcmVjdEV2YWxFeGVjdXRhYmxlIGZp
bmFsIDogcHVibGljIEV2YWxFeGVjdXRhYmxlIHsKICAgICBEaXJlY3RFdmFsRXhlY3V0YWJsZShK
U0dsb2JhbE9iamVjdCosIGNvbnN0IFNvdXJjZUNvZGUmLCBib29sIGluU3RyaWN0Q29udGV4dCwg
RGVyaXZlZENvbnRleHRUeXBlLCBOZWVkc0NsYXNzRmllbGRJbml0aWFsaXplciwgUHJpdmF0ZUJy
YW5kUmVxdWlyZW1lbnQsIGJvb2wgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgYm9vbCBpc0luc2lk
ZU9yZGluYXJ5RnVuY3Rpb24sIEV2YWxDb250ZXh0VHlwZSk7CiB9OwogCi1zdGF0aWNfYXNzZXJ0
KHNpemVvZihEaXJlY3RFdmFsRXhlY3V0YWJsZSkgPT0gc2l6ZW9mKEV2YWxFeGVjdXRhYmxlKSwg
IiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoRGlyZWN0RXZhbEV4ZWN1dGFibGUpID09IHNpemVv
ZihFdmFsRXhlY3V0YWJsZSkpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaAppbmRleCA3Njg5NzJiMjVh
YWM1MDU1ODZhMTU2ZjhiYTQzODY0N2NhMjEwNjFmLi5mNjc5YjRlOTUwMWY3MTQ3YTFkMjVhNTk2
M2RiOWY4ZDA3MjU0NWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FcnJvckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JDb25zdHJ1Y3Rvci5oCkBAIC01NSw2ICs1NSw2IEBAIGNsYXNzIEVycm9yQ29uc3RydWN0
b3IgZmluYWwgOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiB9OwogU1RBVElDX0FTU0VSVF9J
U09fU1VCU1BBQ0VfU0hBUkFCTEUoRXJyb3JDb25zdHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbik7
CiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKEVycm9yQ29uc3RydWN0b3IpID09IHNpemVvZihJbnRl
cm5hbEZ1bmN0aW9uKSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoRXJyb3JDb25zdHJ1Y3Rv
cikgPT0gc2l6ZW9mKEludGVybmFsRnVuY3Rpb24pKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRpcmVjdEV2YWxFeGVj
dXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbmRpcmVjdEV2YWxFeGVj
dXRhYmxlLmgKaW5kZXggMzcwNGIyNDY4YTRjYWI0NmQ3OWM1MzM1ZmQ3MTIwMWE0NmFiM2Y0Yy4u
MDAyM2Q5ZjdlZTMxZDczMGNmZmUyOTViZWI2YjJkMmQ2MGEzNjc4MSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luZGlyZWN0RXZhbEV4ZWN1dGFibGUuaApA
QCAtNDAsNiArNDAsNiBAQCBjbGFzcyBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlIGZpbmFsIDogcHVi
bGljIEV2YWxFeGVjdXRhYmxlIHsKICAgICBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKEpTR2xvYmFs
T2JqZWN0KiwgY29uc3QgU291cmNlQ29kZSYsIERlcml2ZWRDb250ZXh0VHlwZSwgYm9vbCBpc0Fy
cm93RnVuY3Rpb25Db250ZXh0LCBFdmFsQ29udGV4dFR5cGUpOwogfTsKIAotc3RhdGljX2Fzc2Vy
dChzaXplb2YoSW5kaXJlY3RFdmFsRXhlY3V0YWJsZSkgPT0gc2l6ZW9mKEV2YWxFeGVjdXRhYmxl
KSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoSW5kaXJlY3RFdmFsRXhlY3V0YWJsZSkgPT0g
c2l6ZW9mKEV2YWxFeGVjdXRhYmxlKSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwCmluZGV4
IDZmOGQ1YWQwYzkzNGFlYjI1Mzk0MGNiN2FlOGVlMGJjMGJkOTRiYzAuLjMyMzFmYTU0M2M0ZDIy
YjNmNTNjOWU0OWY0NmM5ZTA4ZWVmNTg5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCBz
dGF0aWMgY29uc3QgY29uc3RleHByIHNpemVfdCBFbGVtZW50U2l6ZURhdGFbXSA9IHsKICAgICAx
LCAvLyBEYXRhVmlld1R5cGUKIH07CiAKLSNkZWZpbmUgRkFDVE9SWSh0eXBlKSBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfZmluYWw8SlMgIyMgdHlwZSAjIyBBcnJheT46OnZhbHVlLCAiIik7CisjZGVm
aW5lIEZBQ1RPUlkodHlwZSkgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ZpbmFsPEpTICMjIHR5cGUg
IyMgQXJyYXk+Ojp2YWx1ZSk7CiBGT1JfRUFDSF9UWVBFRF9BUlJBWV9UWVBFX0VYQ0xVRElOR19E
QVRBX1ZJRVcoRkFDVE9SWSkKICN1bmRlZiBGQUNUT1JZCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1bmN0aW9uLmgKaW5kZXggZjMyODVkN2Y3MDIwZjBkMjQ4
MTgxODBjOTkxNmM5OTFmZTdlOTgwMi4uZWM3Nzg1OGJjZDk0MWFlMmE2ZTM0ZDJkYmYxNWM2ODNh
ZDZmYzc1MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3Vu
ZEZ1bmN0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZEZ1
bmN0aW9uLmgKQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgSlNCb3VuZEZ1bmN0aW9uIGZpbmFsIDog
cHVibGljIEpTRnVuY3Rpb24gewogcHVibGljOgogICAgIHR5cGVkZWYgSlNGdW5jdGlvbiBCYXNl
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpT
dHJ1Y3R1cmVGbGFncyAmIH5JbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlOwotICAgIHN0YXRp
Y19hc3NlcnQoU3RydWN0dXJlRmxhZ3MgJiBJbXBsZW1lbnRzSGFzSW5zdGFuY2UsICIiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KFN0cnVjdHVyZUZsYWdzICYgSW1wbGVtZW50c0hhc0luc3RhbmNlKTsK
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFjZUFjY2VzcyBtb2RlPgog
ICAgIHN0YXRpYyBHQ0NsaWVudDo6SXNvU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25t
ZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0xleGljYWxFbnZpcm9ubWVu
dC5oCmluZGV4IDlkYzE1Y2UzY2NjZmMzOWYyNWQxNTNkYzk2ODMzNDYxN2I4MGJkNTMuLmI3OTVh
M2MwZTUzODQ1YTE5MTU1ZTgzZWRjNDg3Mjg1N2U5YTc5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTGV4aWNhbEVudmlyb25tZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMZXhpY2FsRW52aXJvbm1lbnQuaApAQCAtNDMsNyAr
NDMsNyBAQCBjbGFzcyBKU0xleGljYWxFbnZpcm9ubWVudCA6IHB1YmxpYyBKU1N5bWJvbFRhYmxl
T2JqZWN0IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VBY2Nlc3M+
CiAgICAgc3RhdGljIENvbXBsZXRlU3Vic3BhY2UqIHN1YnNwYWNlRm9yKFZNJiB2bSkKICAgICB7
Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoIUNlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uLCAiIik7
CisgICAgICAgIHN0YXRpY19hc3NlcnQoIUNlbGxUeXBlOjpuZWVkc0Rlc3RydWN0aW9uKTsKICAg
ICAgICAgcmV0dXJuICZ2bS52YXJpYWJsZVNpemVkQ2VsbFNwYWNlKCk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKaW5kZXggYjY3M2NkODIxMDIz
MGY4NjJmYTE3YzcyY2IwNDY3ZjRlYzI5MTU1ZC4uNDEwZDhhMGJmMTllZTEzYjQ0ZDE1ZjA0MjEw
YmY0MDVhNmE1MDNkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmcuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
LmNwcApAQCAtNTEsNyArNTEsNyBAQCB2b2lkIEpTUm9wZVN0cmluZzo6Um9wZUJ1aWxkZXI8UmVj
b3JkT3ZlcmZsb3c+OjpleHBhbmQoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKCF0aGlzLT5oYXNP
dmVyZmxvd2VkKCkpOwogICAgIEFTU0VSVChtX3N0cmluZ3Muc2l6ZSgpID09IEpTUm9wZVN0cmlu
Zzo6c19tYXhJbnRlcm5hbFJvcGVMZW5ndGgpOwotICAgIHN0YXRpY19hc3NlcnQoMyA9PSBKU1Jv
cGVTdHJpbmc6OnNfbWF4SW50ZXJuYWxSb3BlTGVuZ3RoLCAiIik7CisgICAgc3RhdGljX2Fzc2Vy
dCgzID09IEpTUm9wZVN0cmluZzo6c19tYXhJbnRlcm5hbFJvcGVMZW5ndGgpOwogICAgIEFTU0VS
VChtX2xlbmd0aCk7CiAgICAgQVNTRVJUKGFzU3RyaW5nKG1fc3RyaW5ncy5hdCgwKSktPmxlbmd0
aCgpKTsKICAgICBBU1NFUlQoYXNTdHJpbmcobV9zdHJpbmdzLmF0KDEpKS0+bGVuZ3RoKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggNDVmZmI3MWRjZmJj
ZmU1ZjJlZDA3ZGVmNDIzMGMxYzZhMTA0YTRmZC4uZWYxNDljNGMxOGM1NzY4OWJjZjIxZjQ3ZjRl
ZTgzMWIzM2EwNWE5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNTdHJpbmcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5o
CkBAIC0xMTgsNyArMTE4LDcgQEAgY2xhc3MgSlNTdHJpbmcgOiBwdWJsaWMgSlNDZWxsIHsKICAg
ICAvLyBpcyBJTlRfTUFYLiBIZW5jZSwgaXQgY2Fubm90IGJlIGNoYW5nZWQgaW50byBhbm90aGVy
IGxlbmd0aCB2YWx1ZSB3aXRob3V0CiAgICAgLy8gYnJlYWtpbmcgYWxsIHRoZSBib3VuZHMgYW5k
IG92ZXJmbG93IGNoZWNrcyB0aGF0IGFzc3VtZSB0aGlzLgogICAgIHN0YXRpYyBjb25zdGV4cHIg
dW5zaWduZWQgTWF4TGVuZ3RoID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCk7
Ci0gICAgc3RhdGljX2Fzc2VydChNYXhMZW5ndGggPT0gU3RyaW5nOjpNYXhMZW5ndGgsICIiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KE1heExlbmd0aCA9PSBTdHJpbmc6Ok1heExlbmd0aCk7CiAKICAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBpc1JvcGVJblBvaW50ZXIgPSAweDE7CiAKQEAg
LTI4MCwxMiArMjgwLDEyIEBAIGNsYXNzIEpTUm9wZVN0cmluZyBmaW5hbCA6IHB1YmxpYyBKU1N0
cmluZyB7CiAgICAgLy8gV2UgdXNlIGxvd2VyIDNiaXRzIG9mIGZpYmVyMCBmb3IgZmxhZ3MuIFRo
ZXNlIGJpdHMgYXJlIHVzYWJsZSBkdWUgdG8gYWxpZ25tZW50LCBhbmQgaXQgaXMgT0sgZXZlbiBp
biAzMmJpdCBhcmNoaXRlY3R1cmUuCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3QgaXM4
Qml0SW5Qb2ludGVyID0gc3RhdGljX2Nhc3Q8dWludHB0cl90PihTdHJpbmdJbXBsOjpmbGFnSXM4
Qml0KCkpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IGlzU3Vic3RyaW5nSW5Qb2lu
dGVyID0gMHgyOwotICAgIHN0YXRpY19hc3NlcnQoaXM4Qml0SW5Qb2ludGVyID09IDBiMTAwLCAi
Iik7Ci0gICAgc3RhdGljX2Fzc2VydChpc1N1YnN0cmluZ0luUG9pbnRlciA9PSAwYjAxMCwgIiIp
OwotICAgIHN0YXRpY19hc3NlcnQoaXNSb3BlSW5Qb2ludGVyID09IDBiMDAxLCAiIik7CisgICAg
c3RhdGljX2Fzc2VydChpczhCaXRJblBvaW50ZXIgPT0gMGIxMDApOworICAgIHN0YXRpY19hc3Nl
cnQoaXNTdWJzdHJpbmdJblBvaW50ZXIgPT0gMGIwMTApOworICAgIHN0YXRpY19hc3NlcnQoaXNS
b3BlSW5Qb2ludGVyID09IDBiMDAxKTsKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBz
dHJpbmdNYXNrID0gfihpc1JvcGVJblBvaW50ZXIgfCBpczhCaXRJblBvaW50ZXIgfCBpc1N1YnN0
cmluZ0luUG9pbnRlcik7CiAjaWYgQ1BVKEFERFJFU1M2NCkKLSAgICBzdGF0aWNfYXNzZXJ0KHNp
emVvZih1aW50cHRyX3QpID09IHNpemVvZih1aW50NjRfdCksICIiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZih1aW50cHRyX3QpID09IHNpemVvZih1aW50NjRfdCkpOwogICAgIGNsYXNzIENv
bXBhY3RGaWJlcnMgewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50
cHRyX3QgYWRkcmVzc01hc2sgPSAoMVVMTCA8PCBPU19DT05TVEFOVChFRkZFQ1RJVkVfQUREUkVT
U19XSURUSCkpIC0gMTsKQEAgLTMzOSw3ICszMzksNyBAQCBjbGFzcyBKU1JvcGVTdHJpbmcgZmlu
YWwgOiBwdWJsaWMgSlNTdHJpbmcgewogICAgICAgICB1aW50MTZfdCBtX2ZpYmVyMkxvd2VyIHsg
MCB9OwogICAgICAgICB1aW50MzJfdCBtX2ZpYmVyMlVwcGVyIHsgMCB9OwogICAgIH07Ci0gICAg
c3RhdGljX2Fzc2VydChzaXplb2YoQ29tcGFjdEZpYmVycykgPT0gc2l6ZW9mKHZvaWQqKSAqIDIs
ICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihDb21wYWN0RmliZXJzKSA9PSBzaXplb2Yo
dm9pZCopICogMik7CiAjZWxzZQogICAgIGNsYXNzIENvbXBhY3RGaWJlcnMgewogICAgIHB1Ymxp
YzoKQEAgLTM5OCw3ICszOTgsNyBAQCBjbGFzcyBKU1JvcGVTdHJpbmcgZmluYWwgOiBwdWJsaWMg
SlNTdHJpbmcgewogICAgICAgICAgICAgaWYgKG1fc3RyaW5ncy5zaXplKCkgPT0gSlNSb3BlU3Ry
aW5nOjpzX21heEludGVybmFsUm9wZUxlbmd0aCkKICAgICAgICAgICAgICAgICBleHBhbmQoKTsK
IAotICAgICAgICAgICAgc3RhdGljX2Fzc2VydChKU1N0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpLCAiIik7CisgICAgICAgICAgICBzdGF0aWNf
YXNzZXJ0KEpTU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWF4KCkpOwogICAgICAgICAgICAgYXV0byBzdW0gPSBjaGVja2VkU3VtPGludDMyX3Q+KG1f
bGVuZ3RoLCBqc1N0cmluZy0+bGVuZ3RoKCkpOwogICAgICAgICAgICAgaWYgKHN1bS5oYXNPdmVy
Zmxvd2VkKCkpIHsKICAgICAgICAgICAgICAgICB0aGlzLT5vdmVyZmxvd2VkKCk7CkBAIC02Nzgs
NyArNjc4LDcgQEAgY2xhc3MgSlNSb3BlU3RyaW5nIGZpbmFsIDogcHVibGljIEpTU3RyaW5nIHsK
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihiaXR3aXNlX2Nhc3Q8dWludHB0
cl90PihmaWJlcjIoKSkpOwogICAgIH0KIAotICAgIHN0YXRpY19hc3NlcnQoc19tYXhJbnRlcm5h
bFJvcGVMZW5ndGggPj0gMiwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc19tYXhJbnRlcm5hbFJv
cGVMZW5ndGggPj0gMik7CiAgICAgbXV0YWJsZSBDb21wYWN0RmliZXJzIG1fY29tcGFjdEZpYmVy
czsKIAogICAgIGZyaWVuZCBKU1N0cmluZyoganNTdHJpbmcoSlNHbG9iYWxPYmplY3QqLCBKU1N0
cmluZyosIEpTU3RyaW5nKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OYXRpdmVGdW5jdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0
aXZlRnVuY3Rpb24uaAppbmRleCBjZTA3MTEzZTJhYjE4MTUwNzVlNTQ0ZjI4MzgzYjExZGM2OTIy
NTIxLi42YzdhNTAxYWM5ZmY1ZTBiM2UzOWVlYmM0YWE3MjI0YWUwMzM0ODQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVGdW5jdGlvbi5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUZ1bmN0aW9uLmgKQEAgLTEwMSw4ICsx
MDEsOCBAQCBzdHJ1Y3QgVGFnZ2VkTmF0aXZlRnVuY3Rpb25IYXNoIHsKICAgICBzdGF0aWMgY29u
c3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKIAot
c3RhdGljX2Fzc2VydChzaXplb2YoTmF0aXZlRnVuY3Rpb24pID09IHNpemVvZih2b2lkKiksICIi
KTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uKSA9PSBzaXplb2Yo
dm9pZCopLCAiIik7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihOYXRpdmVGdW5jdGlvbikgPT0gc2l6
ZW9mKHZvaWQqKSk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihUYWdnZWROYXRpdmVGdW5jdGlvbikg
PT0gc2l6ZW9mKHZvaWQqKSk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKaW5kZXggMmU4MThiZmZhNzljNGFmNmYwZDNj
MTI1MjhmYWE1NjU1OGVjNWYzZS4uMzBkMDgxZDBjZTNjYmFiNTQwOWZkZjc0OThiYTFlNTE1MmUx
NTNiZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9u
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaApAQCAt
ODgsNyArODgsNyBAQCBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiBqc1N0cmluZyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBTdHJpbmcmIHUxLAogICAgIHVuc2lnbmVkIGxlbmd0
aDIgPSBzMi0+bGVuZ3RoKCk7CiAgICAgaWYgKCFsZW5ndGgyKQogICAgICAgICByZXR1cm4ganNT
dHJpbmcodm0sIHUxKTsKLSAgICBzdGF0aWNfYXNzZXJ0KEpTU3RyaW5nOjpNYXhMZW5ndGggPT0g
c3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCksICIiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KEpTU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6
bWF4KCkpOwogICAgIGlmIChzdW1PdmVyZmxvd3M8aW50MzJfdD4obGVuZ3RoMSwgbGVuZ3RoMikp
IHsKICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUpOwog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTEyNCw3ICsxMjQsNyBAQCBBTFdBWVNfSU5MSU5F
IEpTU3RyaW5nKiBqc1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmlu
ZyogczEsIGNvbgogICAgIHVuc2lnbmVkIGxlbmd0aDIgPSB1Mi5sZW5ndGgoKTsKICAgICBpZiAo
IWxlbmd0aDIpCiAgICAgICAgIHJldHVybiBzMTsKLSAgICBzdGF0aWNfYXNzZXJ0KEpTU3RyaW5n
OjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCksICIiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KEpTU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xp
bWl0czxpbnQzMl90Pjo6bWF4KCkpOwogICAgIGlmIChzdW1PdmVyZmxvd3M8aW50MzJfdD4obGVu
Z3RoMSwgbGVuZ3RoMikpIHsKICAgICAgICAgdGhyb3dPdXRPZk1lbW9yeUVycm9yKGdsb2JhbE9i
amVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE1Nyw3ICsxNTcsNyBA
QCBBTFdBWVNfSU5MSU5FIEpTU3RyaW5nKiBqc1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU1N0cmluZyogczEsIEpTUwogICAgIHVuc2lnbmVkIGxlbmd0aDIgPSBzMi0+bGVu
Z3RoKCk7CiAgICAgaWYgKCFsZW5ndGgyKQogICAgICAgICByZXR1cm4gczE7Ci0gICAgc3RhdGlj
X2Fzc2VydChKU1N0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJf
dD46Om1heCgpLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChKU1N0cmluZzo6TWF4TGVuZ3RoID09
IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKTsKICAgICBpZiAoc3VtT3ZlcmZs
b3dzPGludDMyX3Q+KGxlbmd0aDEsIGxlbmd0aDIpKSB7CiAgICAgICAgIHRocm93T3V0T2ZNZW1v
cnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC0xODMsNyArMTgzLDcgQEAgQUxXQVlTX0lOTElORSBKU1N0cmluZyoganNTdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTdHJpbmcqIHMxLCBKU1MKICAgICBpZiAoIWxlbmd0
aDMpCiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmcoZ2xvYmFsT2Jq
ZWN0LCBzMSwgczIpKTsKIAotICAgIHN0YXRpY19hc3NlcnQoSlNTdHJpbmc6Ok1heExlbmd0aCA9
PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSwgIiIpOworICAgIHN0YXRpY19h
c3NlcnQoSlNTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+
OjptYXgoKSk7CiAgICAgaWYgKHN1bU92ZXJmbG93czxpbnQzMl90PihsZW5ndGgxLCBsZW5ndGgy
LCBsZW5ndGgzKSkgewogICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjAzLDcgKzIwMyw3IEBAIEFM
V0FZU19JTkxJTkUgSlNTdHJpbmcqIGpzU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIGNvbnN0IFN0cmluZyYgdTEsCiAgICAgdW5zaWduZWQgbGVuZ3RoMiA9IHUyLmxlbmd0aCgp
OwogICAgIGlmICghbGVuZ3RoMikKICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKHZtLCB1MSk7Ci0g
ICAgc3RhdGljX2Fzc2VydChKU1N0cmluZzo6TWF4TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1heCgpLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChKU1N0cmluZzo6TWF4
TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKTsKICAgICBpZiAo
c3VtT3ZlcmZsb3dzPGludDMyX3Q+KGxlbmd0aDEsIGxlbmd0aDIpKSB7CiAgICAgICAgIHRocm93
T3V0T2ZNZW1vcnlFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0yNDMsNyArMjQzLDcgQEAgQUxXQVlTX0lOTElORSBKU1N0cmluZyoganNTdHJp
bmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiB1MSwKICAgICBp
ZiAoIWxlbmd0aDMpCiAgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwganNTdHJpbmco
Z2xvYmFsT2JqZWN0LCB1MSwgdTIpKTsKIAotICAgIHN0YXRpY19hc3NlcnQoSlNTdHJpbmc6Ok1h
eExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSwgIiIpOworICAg
IHN0YXRpY19hc3NlcnQoSlNTdHJpbmc6Ok1heExlbmd0aCA9PSBzdGQ6Om51bWVyaWNfbGltaXRz
PGludDMyX3Q+OjptYXgoKSk7CiAgICAgaWYgKHN1bU92ZXJmbG93czxpbnQzMl90PihsZW5ndGgx
LCBsZW5ndGgyLCBsZW5ndGgzKSkgewogICAgICAgICB0aHJvd091dE9mTWVtb3J5RXJyb3IoZ2xv
YmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuaAppbmRleCBjYWU1MWNiYmIxNDg5ZmIw
Y2NkNTZiOWM2MTNhNzdiYjNkY2FjZDFjLi45ZTRiNjAwMzMxYTcxZDFkZTAxZjU0NjQ3NmQ5ODBh
ZDk0Y2UzOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmpl
Y3QuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBSZWdFeHBPYmplY3QgZmluYWwgOiBwdWJsaWMg
SlNOb25GaW5hbE9iamVjdCB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2VsbFR5cGUsIFN1YnNw
YWNlQWNjZXNzIG1vZGU+CiAgICAgc3RhdGljIEdDQ2xpZW50OjpJc29TdWJzcGFjZSogc3Vic3Bh
Y2VGb3IoVk0mIHZtKQogICAgIHsKLSAgICAgICAgc3RhdGljX2Fzc2VydCghQ2VsbFR5cGU6Om5l
ZWRzRGVzdHJ1Y3Rpb24sICIiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCghQ2VsbFR5cGU6Om5l
ZWRzRGVzdHJ1Y3Rpb24pOwogICAgICAgICByZXR1cm4gJnZtLnJlZ0V4cE9iamVjdFNwYWNlKCk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29w
ZWRBcmd1bWVudHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3Vt
ZW50cy5oCmluZGV4IGM2ZGRmYjI2NmQzNWU2MDRmODlmMzlhYjEzM2E4MjY2MTc0NmVlNzguLjM4
NWZkYjY3YjYxYjFmN2IxZmM3M2RjN2RkODI0MTAwYzE1YTU5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFyZ3VtZW50cy5oCkBAIC00Niw3ICs0Niw3IEBA
IGNsYXNzIFNjb3BlZEFyZ3VtZW50cyBmaW5hbCA6IHB1YmxpYyBHZW5lcmljQXJndW1lbnRzPFNj
b3BlZEFyZ3VtZW50cz4gewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJzcGFj
ZUFjY2Vzcz4KICAgICBzdGF0aWMgR0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBzdWJzcGFjZUZvcihW
TSYgdm0pCiAgICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KCFDZWxsVHlwZTo6bmVlZHNEZXN0
cnVjdGlvbiwgIiIpOworICAgICAgICBzdGF0aWNfYXNzZXJ0KCFDZWxsVHlwZTo6bmVlZHNEZXN0
cnVjdGlvbik7CiAgICAgICAgIHJldHVybiAmdm0uc2NvcGVkQXJndW1lbnRzU3BhY2UoKTsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFy
Z3VtZW50c1RhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlZEFy
Z3VtZW50c1RhYmxlLmNwcAppbmRleCBhYTJkZjRjZDE4MGIzYjI1ZGNiMDdjOGNiZGM4ZmY3ZGJj
MjkwMGEwLi5mYWUyNTA4ZDVkMmQyZWM2YTBkZTMyNDcxMzYyYTU5YTViYmRhN2ZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZWRBcmd1bWVudHNUYWJsZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVkQXJndW1lbnRzVGFi
bGUuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgU2NvcGVkQXJndW1lbnRzVGFibGUqIFNjb3BlZEFy
Z3VtZW50c1RhYmxlOjp0cnlTZXRMZW5ndGgoVk0mIHZtLCB1aW50MzJfdCBuZXdMZW4KICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3Ry
dWN0aWJsZTxTY29wZU9mZnNldD46OnZhbHVlLCAiIik7CitzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNf
dHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTY29wZU9mZnNldD46OnZhbHVlKTsKIAogU2NvcGVkQXJn
dW1lbnRzVGFibGUqIFNjb3BlZEFyZ3VtZW50c1RhYmxlOjp0cnlTZXQoVk0mIHZtLCB1aW50MzJf
dCBpLCBTY29wZU9mZnNldCB2YWx1ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlBZGFwdG9ycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVHlwZWRBcnJheUFkYXB0b3JzLmgKaW5kZXggMDQ5MmVlYzlmMDUyNjc4ZjAwZGFl
MDA0ZjgyNGM5MmVmMjRjZGQ1Ni4uNDM1YTRlMTBjMzU5MTdmNzcxNGRkMDk5ZGQwYzg0NWVhYTMw
ODU5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJh
eUFkYXB0b3JzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZWRBcnJh
eUFkYXB0b3JzLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgc3RydWN0IEludGVncmFsVHlwZWRBcnJheUFk
YXB0b3IgewogCiAgICAgc3RhdGljIEpTVmFsdWUgdG9KU1ZhbHVlKEpTR2xvYmFsT2JqZWN0Kiwg
VHlwZSB2YWx1ZSkKICAgICB7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6aXNfZmxvYXRp
bmdfcG9pbnQ8VHlwZT46OnZhbHVlLCAiIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6
aXNfZmxvYXRpbmdfcG9pbnQ8VHlwZT46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuIGpzTnVtYmVy
KHZhbHVlKTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9UeXBlZEFycmF5VHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZWRBcnJheVR5cGUuaAppbmRleCA2ZjQwZTFjZjhmMDdhMGJmZmQyZDdjMmMyNDkwMjVjMmQ1
MGQzNjQ0Li5iM2IyZjcwNWYzMTJjOGMwYTY3NjQzM2Y5NDZiNDQwMTAzMjQ4YTQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlZEFycmF5VHlwZS5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVkQXJyYXlUeXBlLmgKQEAgLTY0LDEx
ICs2NCwxMSBAQCBlbnVtIGNsYXNzIFR5cGVkQXJyYXlDb250ZW50VHlwZSA6IHVpbnQ4X3Qgewog
fTsKIAogI2RlZmluZSBBU1NFUlRfVFlQRURfQVJSQVlfVFlQRShuYW1lKSBcCi0gICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDx1aW50MzJfdD4oVHlwZSAjIyBuYW1lKSA9PSAoc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KG5hbWUgIyMgQXJyYXlUeXBlKSAtIEZpcnN0VHlwZWRBcnJheVR5cGUgKyBz
dGF0aWNfY2FzdDx1aW50MzJfdD4oVHlwZUludDgpKSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KFR5cGUgIyMgbmFtZSkgPT0gKHN0YXRpY19jYXN0PHVpbnQz
Ml90PihuYW1lICMjIEFycmF5VHlwZSkgLSBGaXJzdFR5cGVkQXJyYXlUeXBlICsgc3RhdGljX2Nh
c3Q8dWludDMyX3Q+KFR5cGVJbnQ4KSkpOwogICAgIEZPUl9FQUNIX1RZUEVEX0FSUkFZX1RZUEVf
RVhDTFVESU5HX0RBVEFfVklFVyhBU1NFUlRfVFlQRURfQVJSQVlfVFlQRSkKICN1bmRlZiBBU1NF
UlRfVFlQRURfQVJSQVlfVFlQRQogCi1zdGF0aWNfYXNzZXJ0KFR5cGVEYXRhVmlldyA9PSAoRGF0
YVZpZXdUeXBlIC0gRmlyc3RUeXBlZEFycmF5VHlwZSArIFR5cGVJbnQ4KSwgIiIpOworc3RhdGlj
X2Fzc2VydChUeXBlRGF0YVZpZXcgPT0gKERhdGFWaWV3VHlwZSAtIEZpcnN0VHlwZWRBcnJheVR5
cGUgKyBUeXBlSW50OCkpOwogCiBpbmxpbmUgdW5zaWduZWQgdG9JbmRleChUeXBlZEFycmF5VHlw
ZSB0eXBlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2Vh
a01hcEltcGwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1dlYWtNYXBJbXBsLmgK
aW5kZXggMmZiMWIxNmNlN2YwYmQ3M2VhYjY4NzhkZjQzNGNjMmI2MjUzZGM1NS4uODMzZjJkYjgw
YjJlYmU4NzYxNGVmNDU0Mjg1ZDczYjE2ZDM3ZjcwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvV2Vha01hcEltcGwuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9XZWFrTWFwSW1wbC5oCkBAIC0zOCw3ICszOCw3IEBAIHN0cnVjdCBXZWFrTWFw
QnVja2V0RGF0YUtleSB7CiAgICAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVR5cGUgVHlwZSA9IEhh
c2hUYWJsZVR5cGU6OktleTsKICAgICBXcml0ZUJhcnJpZXI8SlNPYmplY3Q+IGtleTsKIH07Ci1z
dGF0aWNfYXNzZXJ0KHNpemVvZihXZWFrTWFwQnVja2V0RGF0YUtleSkgPT0gc2l6ZW9mKHZvaWQq
KSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoV2Vha01hcEJ1Y2tldERhdGFLZXkpID09IHNp
emVvZih2b2lkKikpOwogCiBzdHJ1Y3QgV2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZSB7CiAgICAg
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVR5cGUgVHlwZSA9IEhhc2hUYWJsZVR5cGU6OktleVZhbHVl
OwpAQCAtNDgsNyArNDgsNyBAQCBzdHJ1Y3QgV2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZSB7CiAj
ZW5kaWYKICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gdmFsdWU7CiB9Owotc3RhdGljX2Fzc2Vy
dChzaXplb2YoV2Vha01hcEJ1Y2tldERhdGFLZXlWYWx1ZSkgPT0gMTYsICIiKTsKK3N0YXRpY19h
c3NlcnQoc2l6ZW9mKFdlYWtNYXBCdWNrZXREYXRhS2V5VmFsdWUpID09IDE2KTsKIAogQUxXQVlT
X0lOTElORSB1aW50MzJfdCBqc1dlYWtNYXBIYXNoKEpTT2JqZWN0KiBrZXkpOwogQUxXQVlTX0lO
TElORSB1aW50MzJfdCBuZXh0Q2FwYWNpdHlBZnRlckJhdGNoUmVtb3ZhbCh1aW50MzJfdCBjYXBh
Y2l0eSwgdWludDMyX3Qga2V5Q291bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKaW5kZXggOThlZGIxZWRiZWZiZTYxNzFkZGVlNzE4
YzhmNzAyNDRjYmE0NzM4MC4uMmQ3MjlhZTI1ZWQzMjRhNTcyYzdlZDNkZDRmMGZiNDJiYWE1MzJi
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0
b3IuY3BwCkBAIC0zNzcwLDcgKzM3NzAsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxs
SW5kaXJlY3QodW5zaWduZWQgdGFibGVJbmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYQogICAg
ICAgICBhcHBlbmQoTW92ZSwgQXJnOjphZGRyKGNhbGxlZVNpZ25hdHVyZUluZGV4LCBXYXNtVG9X
YXNtSW1wb3J0YWJsZUZ1bmN0aW9uOjpvZmZzZXRPZlNpZ25hdHVyZUluZGV4KCkpLCBjYWxsZWVT
aWduYXR1cmVJbmRleCk7CiAKICAgICAgICAgZW1pdENoZWNrKFsmXSB7Ci0gICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KFNpZ25hdHVyZTo6aW52YWxpZEluZGV4ID09IDAsICIiKTsKKyAgICAgICAg
ICAgIHN0YXRpY19hc3NlcnQoU2lnbmF0dXJlOjppbnZhbGlkSW5kZXggPT0gMCk7CiAgICAgICAg
ICAgICByZXR1cm4gSW5zdChCcmFuY2hUZXN0NjQsIG51bGxwdHIsIEFyZzo6cmVzQ29uZChNYWNy
b0Fzc2VtYmxlcjo6WmVybyksIGNhbGxlZVNpZ25hdHVyZUluZGV4LCBjYWxsZWVTaWduYXR1cmVJ
bmRleCk7CiAgICAgICAgIH0sIFs9LCB0aGlzXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IEIz
OjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICB0aGlzLT5lbWl0VGhy
b3dFeGNlcHRpb24oaml0LCBFeGNlcHRpb25UeXBlOjpOdWxsVGFibGVFbnRyeSk7CkBAIC0zOTk4
LDcgKzM5OTgsNyBAQCBFeHBlY3RlZDxzdGQ6OnVuaXF1ZV9wdHI8SW50ZXJuYWxGdW5jdGlvbj4s
IFN0cmluZz4gcGFyc2VBbmRDb21waWxlQWlyKENvbXBpbGF0aQogdGVtcGxhdGUgPHR5cGVuYW1l
IEludFR5cGU+CiB2b2lkIEFpcklSR2VuZXJhdG9yOjplbWl0Q2hlY2tzRm9yTW9kT3JEaXYoYm9v
bCBpc1NpZ25lZERpdiwgRXhwcmVzc2lvblR5cGUgbGVmdCwgRXhwcmVzc2lvblR5cGUgcmlnaHQp
CiB7Ci0gICAgc3RhdGljX2Fzc2VydChzaXplb2YoSW50VHlwZSkgPT0gNCB8fCBzaXplb2YoSW50
VHlwZSkgPT0gOCwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEludFR5cGUpID09IDQg
fHwgc2l6ZW9mKEludFR5cGUpID09IDgpOwogCiAgICAgZW1pdENoZWNrKFsmXSB7CiAgICAgICAg
IHJldHVybiBJbnN0KHNpemVvZihJbnRUeXBlKSA9PSA0ID8gQnJhbmNoVGVzdDMyIDogQnJhbmNo
VGVzdDY0LCBudWxscHRyLCBBcmc6OnJlc0NvbmQoTWFjcm9Bc3NlbWJsZXI6Olplcm8pLCByaWdo
dCwgcmlnaHQpOwpAQCAtNDAzNCw3ICs0MDM0LDcgQEAgdm9pZCBBaXJJUkdlbmVyYXRvcjo6ZW1p
dENoZWNrc0Zvck1vZE9yRGl2KGJvb2wgaXNTaWduZWREaXYsIEV4cHJlc3Npb25UeXBlIGxlZnQK
IHRlbXBsYXRlIDx0eXBlbmFtZSBJbnRUeXBlPgogdm9pZCBBaXJJUkdlbmVyYXRvcjo6ZW1pdE1v
ZE9yRGl2KGJvb2wgaXNEaXYsIEV4cHJlc3Npb25UeXBlIGxocywgRXhwcmVzc2lvblR5cGUgcmhz
LCBFeHByZXNzaW9uVHlwZSYgcmVzdWx0KQogewotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKElu
dFR5cGUpID09IDQgfHwgc2l6ZW9mKEludFR5cGUpID09IDgsICIiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihJbnRUeXBlKSA9PSA0IHx8IHNpemVvZihJbnRUeXBlKSA9PSA4KTsKIAogICAg
IHJlc3VsdCA9IHNpemVvZihJbnRUeXBlKSA9PSA0ID8gZzMyKCkgOiBnNjQoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckludGVycHJldGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJJbnRlcnByZXRlci5jcHAKaW5kZXggYWIwMTYx
ZWU3ZThmMGY3MDZjMzJhYWI1OTNiNTI5ZTg4ZjNjZjc4OC4uMzE3Yjg0OGE2MTUyNjAzY2QxYWQx
MWQ2ZTk2ODY5NzFhODZjZDkyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lh
cnIvWWFyckludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9Z
YXJySW50ZXJwcmV0ZXIuY3BwCkBAIC03Niw3ICs3Niw3IEBAIGNsYXNzIEludGVycHJldGVyIHsK
IAogICAgICAgICBzdGF0aWMgc2l6ZV90IGFsbG9jYXRpb25TaXplKHVuc2lnbmVkIG51bWJlck9m
RnJhbWVzKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KGFsaWdub2YoRGlz
anVuY3Rpb25Db250ZXh0KSA8PSBzaXplb2Yodm9pZCopLCAiIik7CisgICAgICAgICAgICBzdGF0
aWNfYXNzZXJ0KGFsaWdub2YoRGlzanVuY3Rpb25Db250ZXh0KSA8PSBzaXplb2Yodm9pZCopKTsK
ICAgICAgICAgICAgIHNpemVfdCByYXdTaXplID0gc2l6ZW9mKERpc2p1bmN0aW9uQ29udGV4dCkg
LSBzaXplb2YodWludHB0cl90KSArIENoZWNrZWQ8c2l6ZV90PihudW1iZXJPZkZyYW1lcykgKiBz
aXplb2YodWludHB0cl90KTsKICAgICAgICAgICAgIHNpemVfdCByb3VuZGVkU2l6ZSA9IHJvdW5k
VXBUb011bHRpcGxlT2Y8c2l6ZW9mKHZvaWQqKT4ocmF3U2l6ZSk7CiAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVChyb3VuZGVkU2l6ZSA+PSByYXdTaXplKTsKQEAgLTEzNSw3ICsxMzUsNyBAQCBj
bGFzcyBJbnRlcnByZXRlciB7CiAKICAgICAgICAgc3RhdGljIHNpemVfdCBhbGxvY2F0aW9uU2l6
ZSh1bnNpZ25lZCBudW1iZXJPZlN1YnBhdHRlcm5zKQogICAgICAgICB7Ci0gICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KGFsaWdub2YoUGFyZW50aGVzZXNEaXNqdW5jdGlvbkNvbnRleHQpIDw9IHNp
emVvZih2b2lkKiksICIiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoYWxpZ25vZihQYXJl
bnRoZXNlc0Rpc2p1bmN0aW9uQ29udGV4dCkgPD0gc2l6ZW9mKHZvaWQqKSk7CiAgICAgICAgICAg
ICBzaXplX3QgcmF3U2l6ZSA9IHNpemVvZihQYXJlbnRoZXNlc0Rpc2p1bmN0aW9uQ29udGV4dCkg
LSBzaXplb2YodW5zaWduZWQpICsgKENoZWNrZWQ8c2l6ZV90PihudW1iZXJPZlN1YnBhdHRlcm5z
KSAqIDJVKSAqIHNpemVvZih1bnNpZ25lZCk7CiAgICAgICAgICAgICBzaXplX3Qgcm91bmRlZFNp
emUgPSByb3VuZFVwVG9NdWx0aXBsZU9mPHNpemVvZih2b2lkKik+KHJhd1NpemUpOwogICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQocm91bmRlZFNpemUgPj0gcmF3U2l6ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Db21wYWN0UG9pbnRlclR1cGxlLmggYi9Tb3VyY2UvV1RGL3d0Zi9D
b21wYWN0UG9pbnRlclR1cGxlLmgKaW5kZXggZjI5YTVkYmE0ZjJhNmQ2Yzk2OWUyMDg5MTAwZDgx
OTVlM2FjYzI2MS4uNTgwMTM1ZDM3NjgxYWU3ZWM3ZWI5ZTBhMjcwMGJiZDEyZTYwNmE5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29tcGFjdFBvaW50ZXJUdXBsZS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0NvbXBhY3RQb2ludGVyVHVwbGUuaApAQCAtNDQsOSArNDQsOSBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBQb2ludGVyVHlwZSwgdHlwZW5hbWUgVHlwZT4KIGNsYXNzIENvbXBhY3RQb2lu
dGVyVHVwbGUgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFR5cGUpIDw9IDIsICIiKTsKLSAgICBzdGF0aWNfYXNz
ZXJ0KHN0ZDo6aXNfcG9pbnRlcjxQb2ludGVyVHlwZT46OnZhbHVlLCAiIik7Ci0gICAgc3RhdGlj
X2Fzc2VydChzdGQ6OmlzX2ludGVncmFsPFR5cGU+Ojp2YWx1ZSB8fCBzdGQ6OmlzX2VudW08VHlw
ZT46OnZhbHVlLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoVHlwZSkgPD0gMik7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3BvaW50ZXI8UG9pbnRlclR5cGU+Ojp2YWx1ZSk7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ludGVncmFsPFR5cGU+Ojp2YWx1ZSB8fCBzdGQ6Omlz
X2VudW08VHlwZT46OnZhbHVlKTsKICAgICB1c2luZyBVbnNpZ25lZFR5cGUgPSBzdGQ6Om1ha2Vf
dW5zaWduZWRfdDxzdGQ6OmNvbmRpdGlvbmFsX3Q8c3RkOjppc19zYW1lX3Y8VHlwZSwgYm9vbD4s
IHVpbnQ4X3QsIFR5cGU+PjsKICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihVbnNpZ25lZFR5cGUp
ID09IHNpemVvZihUeXBlKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxs
b2MuaCBiL1NvdXJjZS9XVEYvd3RmL0Zhc3RNYWxsb2MuaAppbmRleCAxMjY1MjY2ZDE5NWQxZjg4
OWJhYjg3MDM1NDA2NGM3ODE3NmZmNGUzLi4yODdhMDEyNjA1MGJlZGY3MDFmNzIxMTIyMWEzMjQ1
NDU0YTI1OTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmgKKysrIGIv
U291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5oCkBAIC0yNTQsNyArMjU0LDcgQEAgc3RydWN0IEZh
c3RNYWxsb2MgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RydWN0IEZhc3RGcmVlIHsKLSAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUs
ICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxU
Pjo6dmFsdWUpOwogCiAgICAgdm9pZCBvcGVyYXRvcigpKFQqIHBvaW50ZXIpIGNvbnN0CiAgICAg
ewpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0cnVjdCBGYXN0RnJlZSB7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CiBzdHJ1Y3QgRmFzdEZyZWU8VFtdPiB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6Omlz
X3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlLCAiIik7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVlKTsKIAogICAgIHZvaWQg
b3BlcmF0b3IoKShUKiBwb2ludGVyKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0Z1bmN0aW9uVHJhaXRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9GdW5jdGlvblRyYWl0cy5o
CmluZGV4IGIyNDA2MmFhNWNiZmZjYTYzNDBlYmZmOWRmOGNkNWNiZTBmZmZkNTYuLmIwYzZjMzAz
ZmViN2Q2NDRhOGM0ZDJlYjhlYWM4ZDRkZjU0N2Q4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0Z1bmN0aW9uVHJhaXRzLmgKKysrIGIvU291cmNlL1dURi93dGYvRnVuY3Rpb25UcmFpdHMu
aApAQCAtMzgsNyArMzgsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBzbG90c0ZvckNDYWxsQXJndW1lbnQoKQogewogICAgIHN0YXRpY19hc3NlcnQo
IXN0ZDo6aXNfY2xhc3M8VD46OnZhbHVlIHx8IHNpemVvZihUKSA8PSBzaXplb2Yodm9pZCopLCAi
VGhpcyBkb2Vzbid0IHN1cHBvcnQgY29tcGxleCBzdHJ1Y3RzLiIpOwotICAgIHN0YXRpY19hc3Nl
cnQoc2l6ZW9mKFQpID09IDggfHwgc2l6ZW9mKFQpIDw9IDQsICIiKTsKKyAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihUKSA9PSA4IHx8IHNpemVvZihUKSA8PSA0KTsKICAgICAvLyBUaGlzIGFzc3Vt
ZXMgdGhhdCBhbGwgaW50ZWdyYWwgdmFsdWVzIGFyZSBwYXNzZWQgb24gdGhlIHN0YWNrLgogICAg
IGlmIChzaXplb2YoVCkgPT0gOCkKICAgICAgICAgcmV0dXJuIDI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9JbnQxMjguY3BwIGIvU291cmNlL1dURi93dGYvSW50MTI4LmNwcAppbmRleCBh
MTQ2ZTg0NmY1OWZmNTI3MTJjMjI1ZmYzZDljYjI1NWY1ODJiMzYyLi4yY2U4MGM5MTZmZDI0MzU4
ODQ2YTM3N2JhMjBhNmQ2Y2FlZTQ4ZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9JbnQx
MjguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ludDEyOC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAg
c3RhdGljIGlubGluZSB2b2lkIERpdk1vZEltcGwoVUludDEyOEltcGwgZGl2aWRlbmQsIFVJbnQx
MjhJbXBsIGRpdmlzb3IsIFVJbnQxMjgKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBzdGF0aWMg
VUludDEyOEltcGwgTWFrZVVJbnQxMjhGcm9tRmxvYXQoVCB2KSB7Ci0gIHN0YXRpY19hc3NlcnQo
c3RkOjppc19mbG9hdGluZ19wb2ludDxUPjo6dmFsdWUsICIiKTsKKyAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFQ+Ojp2YWx1ZSk7CiAKICAgLy8gUm91bmRpbmcgYmVoYXZp
b3IgaXMgdG93YXJkcyB6ZXJvLCBzYW1lIGFzIGZvciBidWlsdC1pbiB0eXBlcy4KIApAQCAtMTEz
LDggKzExMyw4IEBAIHN0YXRpYyBVSW50MTI4SW1wbCBNYWtlVUludDEyOEZyb21GbG9hdChUIHYp
IHsKIC8vIEl0IGlzIG1vcmUgd29yaywgc28gb25seSB1c2Ugd2hlbiB3ZSBuZWVkIHRoZSB3b3Jr
YXJvdW5kLgogc3RhdGljIFVJbnQxMjhJbXBsIE1ha2VVSW50MTI4RnJvbUZsb2F0KGxvbmcgZG91
YmxlIHYpIHsKICAgLy8gR28gNTAgYml0cyBhdCBhIHRpbWUsIHRoYXQgZml0cyBpbiBhIGRvdWJs
ZQotICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6ZGlnaXRzID49
IDUwLCAiIik7Ci0gIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGRvdWJs
ZT46OmRpZ2l0cyA8PSAxNTAsICIiKTsKKyAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OmRpZ2l0cyA+PSA1MCk7CisgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmlj
X2xpbWl0czxsb25nIGRvdWJsZT46OmRpZ2l0cyA8PSAxNTApOwogICAvLyBVbmRlZmluZWQgYmVo
YXZpb3IgaWYgdiBpcyBub3QgZmluaXRlIG9yIGNhbm5vdCBmaXQgaW50byBVSW50MTI4SW1wbC4K
ICAgYXNzZXJ0KHN0ZDo6aXNmaW5pdGUodikgJiYgdiA+IC0xICYmIHYgPCBzdGQ6OmxkZXhwKDEu
MEwsIDEyOCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYWxsb2NQdHIuaCBiL1Nv
dXJjZS9XVEYvd3RmL01hbGxvY1B0ci5oCmluZGV4IDU3ZThlNjYxMDA4YTExMmQxMDZlMDgxYTQy
NGFkZDYxMDU4NTA0MTIuLmRiMTgyNDk5ZDYyMzM1NWU3NDkxYTQwNDQ1YzQ1NTJiYTI4MThiZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01hbGxvY1B0ci5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01hbGxvY1B0ci5oCkBAIC0xNDIsNyArMTQyLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwg
dHlwZW5hbWUgTWFsbG9jID0gRmFzdE1hbGxvYz4gY2xhc3MgTWFsbG9jUHRyIHsKICAgICBUKiBt
X3B0ciB7IG51bGxwdHIgfTsKIH07CiAKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKE1hbGxvY1B0cjxp
bnQ+KSA9PSBzaXplb2YoaW50KiksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKE1hbGxvY1B0
cjxpbnQ+KSA9PSBzaXplb2YoaW50KikpOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBVLCB0eXBlbmFt
ZSBPdGhlck1hbGxvYz4gTWFsbG9jUHRyPFUsIE90aGVyTWFsbG9jPiBhZG9wdE1hbGxvY1B0cihV
KiBwdHIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYXJrYWJsZS5oIGIvU291cmNl
L1dURi93dGYvTWFya2FibGUuaAppbmRleCAxMGVlY2MzYTIyZmUyZGU4MzdjY2ZkNzkxMWQ0MTc1
ZTI3YWM3MzJlLi42ZGU0N2Q1MjQyZjY3YmE0MGZlMWFkNTRjM2VhYWNmMDJhZmRlYzI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NYXJrYWJsZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01h
cmthYmxlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgdGVtcGxhdGU8CiAgICAgdHlwZW5hbWUgRW51bVR5
cGUsCiAgICAgdHlwZW5hbWUgc3RkOjp1bmRlcmx5aW5nX3R5cGU8RW51bVR5cGU+Ojp0eXBlIGNv
bnN0YW50ID0gc3RkOjpudW1lcmljX2xpbWl0czx0eXBlbmFtZSBzdGQ6OnVuZGVybHlpbmdfdHlw
ZTxFbnVtVHlwZT46OnR5cGU+OjptYXgoKT4KIHN0cnVjdCBFbnVtTWFya2FibGVUcmFpdHMgewot
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19lbnVtPEVudW1UeXBlPjo6dmFsdWUsICIiKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZW51bTxFbnVtVHlwZT46OnZhbHVlKTsKICAgICB1c2lu
ZyBVbmRlcmx5aW5nVHlwZSA9IHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVudW1UeXBl
Pjo6dHlwZTsKIAogICAgIGNvbnN0ZXhwciBzdGF0aWMgYm9vbCBpc0VtcHR5VmFsdWUoRW51bVR5
cGUgdmFsdWUpCkBAIC02Myw3ICs2Myw3IEBAIHN0cnVjdCBFbnVtTWFya2FibGVUcmFpdHMgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRlZ3JhbFR5cGUsIEludGVncmFsVHlwZSBjb25zdGFudCA9
IDA+CiBzdHJ1Y3QgSW50ZWdyYWxNYXJrYWJsZVRyYWl0cyB7Ci0gICAgc3RhdGljX2Fzc2VydChz
dGQ6OmlzX2ludGVncmFsPEludGVncmFsVHlwZT46OnZhbHVlLCAiIik7CisgICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX2ludGVncmFsPEludGVncmFsVHlwZT46OnZhbHVlKTsKICAgICBjb25zdGV4
cHIgc3RhdGljIGJvb2wgaXNFbXB0eVZhbHVlKEludGVncmFsVHlwZSB2YWx1ZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiB2YWx1ZSA9PSBjb25zdGFudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1B0clRhZy5oIGIvU291cmNlL1dURi93dGYvUHRyVGFnLmgKaW5kZXggMjViNWVkZGM1Zjg4
ZTY3Mjk1MTQwODgyMmRlMjNlOTc3Yzg3YjdiNS4uMmU4MzQwZTIwYmE5NWUzNTZmYTQwNTYyYTUz
YmFlMDFjMDRhYjU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUHRyVGFnLmgKKysrIGIv
U291cmNlL1dURi93dGYvUHRyVGFnLmgKQEAgLTEyOCwxMCArMTI4LDEwIEBAIGNvbnN0ZXhwciB1
aW50cHRyX3QgbWFrZVB0clRhZ0hhc2goY29uc3QgY2hhciAoJnN0cilbTl0pCiAKICNkZWZpbmUg
V1RGX0RFQ0xBUkVfUFRSVEFHKHRhZykgXAogICAgIGNvbnN0ZXhwciBQdHJUYWcgdGFnID0gc3Rh
dGljX2Nhc3Q8UHRyVGFnPihXVEZfUFRSVEFHX0hBU0goI3RhZykpOyBcCi0gICAgc3RhdGljX2Fz
c2VydCh0YWcgIT0gTm9QdHJUYWcgJiYgdGFnICE9IENGdW5jdGlvblB0clRhZywgIiIpOworICAg
IHN0YXRpY19hc3NlcnQodGFnICE9IE5vUHRyVGFnICYmIHRhZyAhPSBDRnVuY3Rpb25QdHJUYWcp
OwogCi1zdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oTm9QdHJUYWcpID09IHN0
YXRpY19jYXN0PHVpbnRwdHJfdD4oMCksICIiKTsKLXN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
dWludHB0cl90PihDRnVuY3Rpb25QdHJUYWcpID09IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4oMSks
ICIiKTsKK3N0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludHB0cl90PihOb1B0clRhZykgPT0g
c3RhdGljX2Nhc3Q8dWludHB0cl90PigwKSk7CitzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnRwdHJfdD4oQ0Z1bmN0aW9uUHRyVGFnKSA9PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KDEpKTsK
IAogI2lmIENPTVBJTEVSKE1TVkMpCiAjcHJhZ21hIHdhcm5pbmcocHVzaCkKQEAgLTUzMiw3ICs1
MzIsNyBAQCBpbmxpbmUgVCogcmV0YWdBcnJheVB0cihUKiBwdHIsIHNpemVfdCwgc2l6ZV90KQog
dGVtcGxhdGUgPFB0clRhZywgdHlwZW5hbWUgSW50VHlwZT4KIGlubGluZSBJbnRUeXBlIHRhZ0lu
dChJbnRUeXBlIHB0ckludCkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihJbnRUeXBlKSA9
PSBzaXplb2YodWludHB0cl90KSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEludFR5
cGUpID09IHNpemVvZih1aW50cHRyX3QpKTsKICAgICByZXR1cm4gcHRySW50OwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmggYi9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRz
LmgKaW5kZXggZDI4MmRiYmY3MTViZTc0Mjc4OWVhMTBmMWNjYjI5YWQxNDUzNTY0Zi4uNTVjMWZj
ZjVmYmQ1MzY2OTM5NWE3N2NmNjI0MTQ3ZDY3MWNlZjlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvU2Vjb25kcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NlY29uZHMuaApAQCAtNTcsMTEg
KzU3LDExIEBAIGNsYXNzIFNlY29uZHMgZmluYWwgewogICAgIGNvbnN0ZXhwciBkb3VibGUgbmFu
b3NlY29uZHMoKSBjb25zdCB7IHJldHVybiBtaWNyb3NlY29uZHMoKSAqIDEwMDA7IH0KIAogICAg
IC8vIEtlZXAgaW4gbWluZCB0aGF0IFNlY29uZHMgaXMgaGVsZCBpbiBkb3VibGUuIElmIHRoZSB2
YWx1ZSBpcyBub3QgaW4gcmFuZ2Ugb2YgNTNiaXQgaW50ZWdlciwgdGhlIHJlc3VsdCBtYXkgbm90
IGJlIHByZWNpc2UuCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBtaW51dGVzQXMoKSBjb25z
dCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUsICIiKTsgcmV0dXJu
IGNsYW1wVG9BY2NlcHRpbmc2NDxUPihtaW51dGVzKCkpOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gVCBzZWNvbmRzQXMoKSBjb25zdCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3Jh
bDxUPjo6dmFsdWUsICIiKTsgcmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihzZWNvbmRzKCkp
OyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBtaWxsaXNlY29uZHNBcygpIGNvbnN0IHsg
c3RhdGljX2Fzc2VydChzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwgIiIpOyByZXR1cm4gY2xh
bXBUb0FjY2VwdGluZzY0PFQ+KG1pbGxpc2Vjb25kcygpKTsgfQotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFQgbWljcm9zZWNvbmRzQXMoKSBjb25zdCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19p
bnRlZ3JhbDxUPjo6dmFsdWUsICIiKTsgcmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihtaWNy
b3NlY29uZHMoKSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIG5hbm9zZWNvbmRzQXMo
KSBjb25zdCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUsICIiKTsg
cmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihuYW5vc2Vjb25kcygpKTsgfQorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IFQgbWludXRlc0FzKCkgY29uc3QgeyBzdGF0aWNfYXNzZXJ0KHN0ZDo6
aXNfaW50ZWdyYWw8VD46OnZhbHVlKTsgcmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihtaW51
dGVzKCkpOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBzZWNvbmRzQXMoKSBjb25zdCB7
IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3JhbDxUPjo6dmFsdWUpOyByZXR1cm4gY2xhbXBU
b0FjY2VwdGluZzY0PFQ+KHNlY29uZHMoKSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBU
IG1pbGxpc2Vjb25kc0FzKCkgY29uc3QgeyBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8
VD46OnZhbHVlKTsgcmV0dXJuIGNsYW1wVG9BY2NlcHRpbmc2NDxUPihtaWxsaXNlY29uZHMoKSk7
IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUIG1pY3Jvc2Vjb25kc0FzKCkgY29uc3QgeyBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8VD46OnZhbHVlKTsgcmV0dXJuIGNsYW1wVG9B
Y2NlcHRpbmc2NDxUPihtaWNyb3NlY29uZHMoKSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBUIG5hbm9zZWNvbmRzQXMoKSBjb25zdCB7IHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3Jh
bDxUPjo6dmFsdWUpOyByZXR1cm4gY2xhbXBUb0FjY2VwdGluZzY0PFQ+KG5hbm9zZWNvbmRzKCkp
OyB9CiAgICAgCiAgICAgc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIGZyb21NaW51dGVzKGRvdWJs
ZSBtaW51dGVzKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0ZExpYkV4dHJh
cy5oIGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKaW5kZXggZWNkMzcxYzYyMzI2Yzhi
YzhjZThhNGE4YmE4YjRhYzljMDliYzA4Mi4uY2VmOTFlZDhlMWU0ODQ2OTViMDE2OGNmZGY2MjU0
MDdkYTBjOTkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKKysr
IGIvU291cmNlL1dURi93dGYvU3RkTGliRXh0cmFzLmgKQEAgLTE5Myw3ICsxOTMsNyBAQCB0ZW1w
bGF0ZTxzaXplX3QgZGl2aXNvcj4gY29uc3RleHByIHNpemVfdCByb3VuZFVwVG9NdWx0aXBsZU9m
KHNpemVfdCB4KQogCiB0ZW1wbGF0ZTxzaXplX3QgZGl2aXNvciwgdHlwZW5hbWUgVD4gaW5saW5l
IFQqIHJvdW5kVXBUb011bHRpcGxlT2YoVCogeCkKIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHNpemVv
ZihUKikgPT0gc2l6ZW9mKHNpemVfdCksICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihU
KikgPT0gc2l6ZW9mKHNpemVfdCkpOwogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFQqPihy
b3VuZFVwVG9NdWx0aXBsZU9mPGRpdmlzb3I+KHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90Pih4KSkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1GcmVlLmggYi9Tb3VyY2Uv
V1RGL3d0Zi9TeXN0ZW1GcmVlLmgKaW5kZXggNzNiNjkzZjA2ODM4YmNjOGNjYzgzYTQ2OGQ0ZGJj
M2E4YWI4MmY4My4uMzFkY2Q0ODc1OTRkMTU4MmE0YTMwMDUwZDk0MmU4YTZjNzI0ZTJmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvU3lzdGVtRnJlZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1N5c3RlbUZyZWUuaApAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBTeXN0ZW1GcmVlIHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpOwogCiAgICAg
dm9pZCBvcGVyYXRvcigpKFQqIHBvaW50ZXIpIGNvbnN0CiAgICAgewpAQCAtNDEsNyArNDEsNyBA
QCBzdHJ1Y3QgU3lzdGVtRnJlZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgU3lz
dGVtRnJlZTxUW10+IHsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3Ry
dWN0aWJsZTxUPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlh
bGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpOwogCiAgICAgdm9pZCBvcGVyYXRvcigpKFQqIHBv
aW50ZXIpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVW5hbGlnbmVk
QWNjZXNzLmggYi9Tb3VyY2UvV1RGL3d0Zi9VbmFsaWduZWRBY2Nlc3MuaAppbmRleCAzYTM1YjM4
ZjRjMDIzNjc5YWM3Y2ZjOWM0NjU2MDg0YTM5MTQ4M2IyLi44ZmUyOGE0MmQ1MDMxZjA5NDg3NWUy
YzFlMmQ0NWE5NDJmOGM1ZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9VbmFsaWduZWRB
Y2Nlc3MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VbmFsaWduZWRBY2Nlc3MuaApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiBpbmxpbmUg
VHlwZSB1bmFsaWduZWRMb2FkKGNvbnN0IHZvaWQqIHBvaW50ZXIpCiB7Ci0gICAgc3RhdGljX2Fz
c2VydChzdGQ6OmlzX3RyaXZpYWxseV9jb3B5YWJsZTxUeXBlPjo6dmFsdWUsICIiKTsKKyAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2NvcHlhYmxlPFR5cGU+Ojp2YWx1ZSk7CiAg
ICAgVHlwZSByZXN1bHQgeyB9OwogICAgIG1lbWNweSgmcmVzdWx0LCBwb2ludGVyLCBzaXplb2Yo
VHlwZSkpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC00Myw3ICs0Myw3IEBAIGlubGluZSBUeXBl
IHVuYWxpZ25lZExvYWQoY29uc3Qgdm9pZCogcG9pbnRlcikKIHRlbXBsYXRlPHR5cGVuYW1lIFR5
cGU+CiBpbmxpbmUgdm9pZCB1bmFsaWduZWRTdG9yZSh2b2lkKiBwb2ludGVyLCBUeXBlIHZhbHVl
KQogewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfY29weWFibGU8VHlwZT46
OnZhbHVlLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9jb3B5YWJs
ZTxUeXBlPjo6dmFsdWUpOwogICAgIG1lbWNweShwb2ludGVyLCAmdmFsdWUsIHNpemVvZihUeXBl
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VuaXF1ZUFycmF5LmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9VbmlxdWVBcnJheS5oCmluZGV4IDBlN2Y3OWZlNTViZmY1NmI5NGMwNzUwOGU4
YzBkMTgzZDU4YmI2NzEuLmQxMGRhNzJiNzhkMmYwMTY3MzlmYzQ3ZDA1ZjllYTc0NjdiZGEzYmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VuaXF1ZUFycmF5LmgKKysrIGIvU291cmNlL1dU
Ri93dGYvVW5pcXVlQXJyYXkuaApAQCAtMzgsNyArMzgsNyBAQCB0ZW1wbGF0ZTxib29sIGlzVHJp
dmlhbGx5RGVzdHJ1Y3RpYmxlLCB0eXBlbmFtZSBUPiBzdHJ1Y3QgVW5pcXVlQXJyYXlNYWtlcjsK
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0cnVjdCBVbmlxdWVBcnJheUZyZWUgewotICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2YWx1ZSwgIiIp
OworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+Ojp2
YWx1ZSk7CiAKICAgICB2b2lkIG9wZXJhdG9yKCkoVCogcG9pbnRlcikgY29uc3QKICAgICB7CkBA
IC00OCw3ICs0OCw3IEBAIHN0cnVjdCBVbmlxdWVBcnJheUZyZWUgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogc3RydWN0IFVuaXF1ZUFycmF5RnJlZTxUW10+IHsKLSAgICBzdGF0aWNfYXNzZXJ0
KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUpOwogCiAg
ICAgdm9pZCBvcGVyYXRvcigpKFQqIHBvaW50ZXIpIGNvbnN0CiAgICAgewpAQCAtNjgsNyArNjgs
NyBAQCBzdHJ1Y3QgVW5pcXVlQXJyYXlNYWtlcjx0cnVlLCBUPiB7CiAgICAgICAgIC8vIElmIGl0
IGlzIGFjY2VwdGFibGUsIHdlIGNhbiBqdXN0IHVzZSBWZWN0b3I8VD4gaW5zdGVhZC4gU28gdGhp
cyBVbmlxdWVBcnJheTxUPiBvbmx5CiAgICAgICAgIC8vIGFjY2VwdHMgdGhlIHR5cGUgVCB3aGlj
aCBoYXMgYSB0cml2aWFsIGRlc3RydWN0b3IuIFRoaXMgYWxsb3dzIHVzIHRvIHNraXAgY2FsbGlu
ZwogICAgICAgICAvLyBkZXN0cnVjdG9ycyBmb3IgTiBlbGVtZW50cy4gQW5kIHRoaXMgYWxsb3dz
IFVuaXF1ZUFycmF5PFQ+IG5vdCB0byBzdG9yZSBpdHMgTiBzaXplLgotICAgICAgICBzdGF0aWNf
YXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxUPjo6dmFsdWUsICIiKTsKKyAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZh
bHVlKTsKIAogICAgICAgICAvLyBEbyBub3QgdXNlIHBsYWNlbWVudCBuZXcgbGlrZSBgbmV3IChz
dG9yYWdlKSBUW3NpemVdKClgLiBgbmV3IFRbc2l6ZV0oKWAgcmVxdWlyZXMKICAgICAgICAgLy8g
bGFyZ2VyIHN0b3JhZ2UgdGhhbiB0aGUgYHNpemVvZihUKSAqIHNpemVgIHN0b3JhZ2Ugc2luY2Ug
aXQgd2FudCB0byBzdG9yZSBgc2l6ZWAKQEAgLTk5LDcgKzk5LDcgQEAgc3RydWN0IFVuaXF1ZUFy
cmF5TWFrZXI8ZmFsc2UsIFQ+IHsKIAogICAgICAgICBUIHZhbHVlIHsgfTsKICAgICB9OwotICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKFQpID09IHNpemVvZihVbmlxdWVBcnJheUVsZW1lbnQpLCAi
Iik7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkgPT0gc2l6ZW9mKFVuaXF1ZUFycmF5RWxl
bWVudCkpOwogCiAgICAgdXNpbmcgUmVzdWx0VHlwZSA9IHR5cGVuYW1lIHN0ZDo6dW5pcXVlX3B0
cjxUW10sIHR5cGVuYW1lIFVuaXF1ZUFycmF5RWxlbWVudDo6RGVsZXRlcj47CiAKQEAgLTExNSw3
ICsxMTUsNyBAQCB1c2luZyBVbmlxdWVBcnJheSA9IHR5cGVuYW1lIFVuaXF1ZUFycmF5TWFrZXI8
c3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFQ+OgogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
IFVuaXF1ZUFycmF5PFQ+IG1ha2VVbmlxdWVBcnJheShzaXplX3Qgc2l6ZSkKIHsKLSAgICBzdGF0
aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9leHRlbnQ8VD46OnR5
cGUsIFQ+Ojp2YWx1ZSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19zYW1lPHR5cGVu
YW1lIHN0ZDo6cmVtb3ZlX2V4dGVudDxUPjo6dHlwZSwgVD46OnZhbHVlKTsKICAgICByZXR1cm4g
VW5pcXVlQXJyYXlNYWtlcjxzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8VD46OnZhbHVl
LCBUPjo6bWFrZShzaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV1RGQXNz
ZXJ0aW9ucy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9XVEZBc3NlcnRpb25zLmNwcAppbmRleCA3NWY2
MjRhY2JhYWM5NGJmZWY2YzVhNzhiOWE4MWYzYzg2YWE4NWM4Li45ZjcyNzc3NDJiZWJlYTdjMTQ3
Nzk3YTkxMTQ2NTEzMDk1YjI4Zjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XVEZBc3Nl
cnRpb25zLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XVEZBc3NlcnRpb25zLmNwcApAQCAtNDAs
MTEgKzQwLDExIEBAIG5hbWVzcGFjZSB7CiBzdHJ1Y3QgRHVtbXlTdHJ1Y3QgeyB9OwogfQogCi1z
dGF0aWNfYXNzZXJ0KHNpemVvZihCYWc8RHVtbXlTdHJ1Y3Q+KSA9PSBzaXplb2Yodm9pZCopLCAi
Iik7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihCYWc8RHVtbXlTdHJ1Y3Q+KSA9PSBzaXplb2Yodm9p
ZCopKTsKIAotc3RhdGljX2Fzc2VydChzaXplb2YoUmVmPER1bW15U3RydWN0PikgPT0gc2l6ZW9m
KER1bW15U3RydWN0KiksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFJlZjxEdW1teVN0cnVj
dD4pID09IHNpemVvZihEdW1teVN0cnVjdCopKTsKIAotc3RhdGljX2Fzc2VydChzaXplb2YoUmVm
UHRyPER1bW15U3RydWN0PikgPT0gc2l6ZW9mKER1bW15U3RydWN0KiksICIiKTsKK3N0YXRpY19h
c3NlcnQoc2l6ZW9mKFJlZlB0cjxEdW1teVN0cnVjdD4pID09IHNpemVvZihEdW1teVN0cnVjdCop
KTsKIAogI2lmIE9TKERBUldJTikgJiYgQ1BVKEFERFJFU1M2NCkKIC8vIE5hTiBib3hpbmcgZW5j
b2RpbmcgcmVsaWVzIG9uIHRoaXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRl
LmgKaW5kZXggZTJjMjU0YTc2NTYwNjFlMzMyOTMyYmVjZmVjYjRiY2Q3ZmQyNzRjMi4uOGEwNjU2
MDNjZTY1YTUxM2Y2OGIyMWMzMDVmOTJjNDEyMGZlMjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nQ29uY2F0ZW5hdGUuaApAQCAtNDMzLDcgKzQzMyw3IEBAIGlubGluZSB2b2lkIHN0cmlu
Z1R5cGVBZGFwdGVyQWNjdW11bGF0b3IoUmVzdWx0VHlwZSogcmVzdWx0LCBBZGFwdGVyIGFkYXB0
ZXIsIEFkCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdHJpbmdUeXBlQWRhcHRlciwgdHlwZW5hbWUuLi4g
U3RyaW5nVHlwZUFkYXB0ZXJzPgogU3RyaW5nIHRyeU1ha2VTdHJpbmdGcm9tQWRhcHRlcnMoU3Ry
aW5nVHlwZUFkYXB0ZXIgYWRhcHRlciwgU3RyaW5nVHlwZUFkYXB0ZXJzIC4uLmFkYXB0ZXJzKQog
ewotICAgIHN0YXRpY19hc3NlcnQoU3RyaW5nOjpNYXhMZW5ndGggPT0gc3RkOjpudW1lcmljX2xp
bWl0czxpbnQzMl90Pjo6bWF4KCksICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KFN0cmluZzo6TWF4
TGVuZ3RoID09IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKTsKICAgICBhdXRv
IHN1bSA9IGNoZWNrZWRTdW08aW50MzJfdD4oYWRhcHRlci5sZW5ndGgoKSwgYWRhcHRlcnMubGVu
Z3RoKCkuLi4pOwogICAgIGlmIChzdW0uaGFzT3ZlcmZsb3dlZCgpKQogICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaCBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCmluZGV4IGM5OTRiMTkyY2UzMTJkOTEw
NTQwNjhmODA3MDYzNmQ2NWU1YWUxOTMuLmMyNGVlZTk1NDJjYTRiOWZlYWI1ZDkzZWNhZDk0MWNi
YjE0ZmIyZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5oCkBAIC01MjUsNyArNTI1LDcgQEAg
Y2xhc3MgU3RyaW5nSW1wbCA6IHByaXZhdGUgU3RyaW5nSW1wbFNoYXBlIHsKIAogdXNpbmcgU3Rh
dGljU3RyaW5nSW1wbCA9IFN0cmluZ0ltcGw6OlN0YXRpY1N0cmluZ0ltcGw7CiAKLXN0YXRpY19h
c3NlcnQoc2l6ZW9mKFN0cmluZ0ltcGwpID09IHNpemVvZihTdGF0aWNTdHJpbmdJbXBsKSwgIiIp
Oworc3RhdGljX2Fzc2VydChzaXplb2YoU3RyaW5nSW1wbCkgPT0gc2l6ZW9mKFN0YXRpY1N0cmlu
Z0ltcGwpKTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIHN0cnVjdCBIYXNo
VHJhbnNsYXRvckNoYXJCdWZmZXIgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9T
eW1ib2xJbXBsLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N5bWJvbEltcGwuaAppbmRleCA0NzQ2
YzQ5OGI3N2U5ODVhNTM5Y2YxMTU1NDNjNDJkMzVmYjA0MWRlLi42NTM5MWY2MGRiNWVkYTgyYWFk
ZDk2Njc5ZGUxZTRlYTcxZjVmODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N5
bWJvbEltcGwuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N5bWJvbEltcGwuaApAQCAtMTIy
LDcgKzEyMiw3IEBAIGNsYXNzIFN5bWJvbEltcGwgOiBwdWJsaWMgVW5pcXVlZFN0cmluZ0ltcGwg
ewogICAgIHVuc2lnbmVkIG1faGFzaEZvclN5bWJvbFNoaWZ0ZWRXaXRoRmxhZ0NvdW50OwogICAg
IEZsYWdzIG1fZmxhZ3MgeyBzX2ZsYWdEZWZhdWx0IH07CiB9Owotc3RhdGljX2Fzc2VydChzaXpl
b2YoU3ltYm9sSW1wbCkgPT0gc2l6ZW9mKFN5bWJvbEltcGw6OlN0YXRpY1N5bWJvbEltcGwpLCAi
Iik7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihTeW1ib2xJbXBsKSA9PSBzaXplb2YoU3ltYm9sSW1w
bDo6U3RhdGljU3ltYm9sSW1wbCkpOwogCiBjbGFzcyBQcml2YXRlU3ltYm9sSW1wbCBmaW5hbCA6
IHB1YmxpYyBTeW1ib2xJbXBsIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkuaAppbmRl
eCBjOGQxOGMyNmJlYjNkYTYyNWFjOWFkNjAwNzY1ZjUyNTdjYWVjMmQwLi5hOTFhYmE5ZGQ5YTMy
MTI3NzE1ZWMxZmIzYjczNTRhNGRlZjI1NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VudHJpZXNhcGkvRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeS5oCkBA
IC01NSw3ICs1NSw3IEBAIGNsYXNzIEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeSBmaW5hbCA6IHB1
YmxpYyBGaWxlU3lzdGVtRW50cnkgewogCiAgICAgRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBET01GaWxlU3lzdGVtJiwgY29uc3QgU3RyaW5nJiB2aXJ0
dWFsUGF0aCk7CiB9Owotc3RhdGljX2Fzc2VydChzaXplb2YoRmlsZVN5c3RlbURpcmVjdG9yeUVu
dHJ5KSA9PSBzaXplb2YoRmlsZVN5c3RlbUVudHJ5KSwgIiIpOworc3RhdGljX2Fzc2VydChzaXpl
b2YoRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5KSA9PSBzaXplb2YoRmlsZVN5c3RlbUVudHJ5KSk7
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbnRyaWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW50cmllc2FwaS9GaWxlU3lzdGVtRmlsZUVudHJ5LmgKaW5kZXggMDM4ODAzOTE0
N2FlNzliMTFiNjhjYTRiNjU4NWRjOTk0MThjZmI3NC4uYjhjYWMzNzg3MjZmYzU3ODcyNDY1Njc3
OGMyODNjZDQyM2ZhMDFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRy
aWVzYXBpL0ZpbGVTeXN0ZW1GaWxlRW50cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VudHJpZXNhcGkvRmlsZVN5c3RlbUZpbGVFbnRyeS5oCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNz
IEZpbGVTeXN0ZW1GaWxlRW50cnkgZmluYWwgOiBwdWJsaWMgRmlsZVN5c3RlbUVudHJ5IHsKIAog
ICAgIEZpbGVTeXN0ZW1GaWxlRW50cnkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIERPTUZpbGVT
eXN0ZW0mLCBjb25zdCBTdHJpbmcmIHZpcnR1YWxQYXRoKTsKIH07Ci1zdGF0aWNfYXNzZXJ0KHNp
emVvZihGaWxlU3lzdGVtRmlsZUVudHJ5KSA9PSBzaXplb2YoRmlsZVN5c3RlbUVudHJ5KSwgIiIp
Oworc3RhdGljX2Fzc2VydChzaXplb2YoRmlsZVN5c3RlbUZpbGVFbnRyeSkgPT0gc2l6ZW9mKEZp
bGVTeXN0ZW1FbnRyeSkpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01NYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01N
YXRyaXguaAppbmRleCBjMjM4YTY3MTU4ZTgzMzU2YThlNDhmZjE3NDk3YmE1MmVhN2FiOWJjLi4y
NmM1ZjQyYjE1YjE4MmYxY2UzYWYwYWM1NGM1NDViNjFmYWUzYmE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRE9NTWF0cml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTU1h
dHJpeC5oCkBAIC05Myw3ICs5Myw3IEBAIGNsYXNzIERPTU1hdHJpeCA6IHB1YmxpYyBET01NYXRy
aXhSZWFkT25seSB7CiAgICAgRE9NTWF0cml4KGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jiwg
SXMyRCk7CiAgICAgRE9NTWF0cml4KFRyYW5zZm9ybWF0aW9uTWF0cml4JiYsIElzMkQpOwogfTsK
LXN0YXRpY19hc3NlcnQoc2l6ZW9mKERPTU1hdHJpeCkgPT0gc2l6ZW9mKERPTU1hdHJpeFJlYWRP
bmx5KSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoRE9NTWF0cml4KSA9PSBzaXplb2YoRE9N
TWF0cml4UmVhZE9ubHkpKTsKIAogaW5saW5lIHZvaWQgRE9NTWF0cml4OjpzZXRNMTMoZG91Ymxl
IGYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKaW5kZXgg
MDYwMDJmNzA5Y2FhNGRiNGEyMWNiYjlmNDc3ZjFkYTRkYTE4OGE5NS4uOGU5YjM0YmM0ZTk0NWRh
MTVkNDdmNTgyYzA4Nzg2MGUyODcwMzhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
aml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxl
Y3RvckNvbXBpbGVyLmNwcApAQCAtMjUyOSw4ICsyNTI5LDggQEAgdm9pZCBTZWxlY3RvckNvZGVH
ZW5lcmF0b3I6OmdlbmVyYXRlQWRkU3R5bGVSZWxhdGlvbihBc3NlbWJsZXI6OlJlZ2lzdGVySUQg
Y2hlY2sKICAgICBhdXRvIGdldExhc3RSZWxhdGlvblBvaW50ZXIgPSBbJl0gKEFzc2VtYmxlcjo6
UmVnaXN0ZXJJRCBzaXplQW5kVGFyZ2V0KSB7CiAgICAgICAgIG1fYXNzZW1ibGVyLnN1YjMyKEFz
c2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEpLCBzaXplQW5kVGFyZ2V0KTsKICNpZiBDUFUoQUREUkVT
UzY0KQotICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihTdHlsZTo6UmVsYXRpb24pID09IDE2
LCAiIik7Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoMSA8PCA0ID09IDE2LCAiIik7CisgICAgICAg
IHN0YXRpY19hc3NlcnQoc2l6ZW9mKFN0eWxlOjpSZWxhdGlvbikgPT0gMTYpOworICAgICAgICBz
dGF0aWNfYXNzZXJ0KDEgPDwgNCA9PSAxNik7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxzaGlmdFB0
cihBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMig0KSwgc2l6ZUFuZFRhcmdldCk7CiAjZWxzZQogICAg
ICAgICBtX2Fzc2VtYmxlci5tdWwzMihBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzaXplb2YoU3R5
bGU6OlJlbGF0aW9uKSksIHNpemVBbmRUYXJnZXQsIHNpemVBbmRUYXJnZXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
UG9pbnQuaAppbmRleCA3NzI3N2Q3ZjIxYjNmNGJjYzNjNDA0ZDUzZWUxZWM4Y2IwMzUzYmMzLi4y
MGY2ODcxZjE4NDk1Yzk0OWNiYmM5NWJkNDY1ZGQ2YjU2OWY2Mzc4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NUG9pbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUG9p
bnQuaApAQCAtNTEsNiArNTEsNiBAQCBjbGFzcyBET01Qb2ludCBmaW5hbCA6IHB1YmxpYyBET01Q
b2ludFJlYWRPbmx5IHsKICAgICB7CiAgICAgfQogfTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKERP
TVBvaW50KSA9PSBzaXplb2YoRE9NUG9pbnRSZWFkT25seSksICIiKTsKK3N0YXRpY19hc3NlcnQo
c2l6ZW9mKERPTVBvaW50KSA9PSBzaXplb2YoRE9NUG9pbnRSZWFkT25seSkpOwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaAppbmRleCBmYzkxNGJkNDJhZjMxYzgwYWI2
NThjMWRmZTc1YjRlMWE4NjZmNTMzLi40ZGM4NTE0YzhhZmJkMzdhMDdkY2RkYjE2YzI1YjZkZjM5
YjY5NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmgKQEAgLTU1LDYgKzU1LDYgQEAgY2xhc3MgRE9NUmVj
dCA6IHB1YmxpYyBET01SZWN0UmVhZE9ubHkgewogCiAgICAgRE9NUmVjdCgpID0gZGVmYXVsdDsK
IH07Ci1zdGF0aWNfYXNzZXJ0KHNpemVvZihET01SZWN0KSA9PSBzaXplb2YoRE9NUmVjdFJlYWRP
bmx5KSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoRE9NUmVjdCkgPT0gc2l6ZW9mKERPTVJl
Y3RSZWFkT25seSkpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bGxDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgK
aW5kZXggZTQ0MTQwMzZjNDNlMzhjYjY4ODRlZTIxNzQ5Zjc1NzU4YjNmNjk2Yi4uNGQ5ODYyMzhi
NzQxMWIwMWNmNjI3NWI0ZDhlYTMzMTFmNmQzOGRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFsbENvbGxlY3Rpb24uaApAQCAtMzksNyArMzksNyBAQCBjbGFzcyBIVE1MQWxsQ29sbGVjdGlv
biBmaW5hbCA6IHB1YmxpYyBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24gewogcHJpdmF0ZToKICAg
ICBIVE1MQWxsQ29sbGVjdGlvbihEb2N1bWVudCYsIENvbGxlY3Rpb25UeXBlKTsKIH07Ci1zdGF0
aWNfYXNzZXJ0KHNpemVvZihIVE1MQWxsQ29sbGVjdGlvbikgPT0gc2l6ZW9mKEFsbERlc2NlbmRh
bnRzQ29sbGVjdGlvbiksICIiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKEhUTUxBbGxDb2xsZWN0
aW9uKSA9PSBzaXplb2YoQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uKSk7CiAKIGNsYXNzIEhUTUxB
bGxOYW1lZFN1YkNvbGxlY3Rpb24gZmluYWwgOiBwdWJsaWMgQ2FjaGVkSFRNTENvbGxlY3Rpb248
SFRNTEFsbE5hbWVkU3ViQ29sbGVjdGlvbiwgQ29sbGVjdGlvblRyYXZlcnNhbFR5cGU6OkRlc2Nl
bmRhbnRzPiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MQWxsTmFtZWRTdWJDb2xs
ZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFj
a0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaAppbmRl
eCA5NWZkOTBiNGNhYmJiZDgzODBjNWFjMGI1Mzk5OGYxNGFjYWY0NWU4Li4zMjk1NzliM2YyNmU2
ZTBkN2NkNDAxY2U2MjViOGZiZDljYjM5NGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9BdWRpb1RyYWNrTGlzdC5oCkBAIC01OCw3ICs1OCw3IEBAIGNsYXNzIEF1ZGlvVHJhY2tMaXN0
IGZpbmFsIDogcHVibGljIFRyYWNrTGlzdEJhc2UgewogCiAgICAgY29uc3QgY2hhciogYWN0aXZl
RE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogfTsKLXN0YXRpY19hc3NlcnQoc2l6ZW9mKEF1
ZGlvVHJhY2tMaXN0KSA9PSBzaXplb2YoVHJhY2tMaXN0QmFzZSksICIiKTsKK3N0YXRpY19hc3Nl
cnQoc2l6ZW9mKEF1ZGlvVHJhY2tMaXN0KSA9PSBzaXplb2YoVHJhY2tMaXN0QmFzZSkpOwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVmlkZW9UcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9U
cmFja0xpc3QuaAppbmRleCAyNWNlY2JmZWJiZTRjMmFhYmZjMjc3ZjJkNjA4NDE2ODJjZWY2MDY5
Li5jODM3NTJlMzMzNzU4NTEwODk5NmQ0YzQ1OWQ4NjcyMDU3OTY1M2FkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5oCkBAIC01OCw3ICs1OCw3IEBAIGNsYXNz
IFZpZGVvVHJhY2tMaXN0IGZpbmFsIDogcHVibGljIFRyYWNrTGlzdEJhc2UgewogCiAgICAgY29u
c3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogfTsKLXN0YXRpY19h
c3NlcnQoc2l6ZW9mKFZpZGVvVHJhY2tMaXN0KSA9PSBzaXplb2YoVHJhY2tMaXN0QmFzZSksICIi
KTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFZpZGVvVHJhY2tMaXN0KSA9PSBzaXplb2YoVHJhY2tM
aXN0QmFzZSkpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUl0ZW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
SXRlbS5jcHAKaW5kZXggMDYwNmYxODQ5YjVhOWE2MTg0OWEyMGViZDQxOTY1YTZhZGQ4ZWM4Ni4u
NzQ4NjQyYjBiZDU2ZTg4MDBkZTRmNzU4NWZjNTdiNDE5YWMxMzdlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lSXRlbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lSXRlbS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IFNhbWVTaXplQXNJbmxpbmVJ
dGVtIHsKICAgICB1bnNpZ25lZCBsZW5ndGg7CiB9OwogCi1zdGF0aWNfYXNzZXJ0KHNpemVvZihJ
bmxpbmVJdGVtKSA9PSBzaXplb2YoU2FtZVNpemVBc0lubGluZUl0ZW0pLCAiIik7CitzdGF0aWNf
YXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoU2FtZVNpemVBc0lubGluZUl0ZW0p
KTsKIAogfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lVGV4dEl0ZW0uY3BwCmluZGV4IDg1OGU4
Zjc0YWUyOTAzYmI0ZGU4YjM0NjVkYjY0OTliMzgzYmI3MzQuLjljN2U0Yjk3MmZhMjJiOGUzZjVm
M2UxYWM3ZmMyODZmM2VmNDc3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZVRleHRJdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVUZXh0SXRlbS5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlv
dXQgewogCi1zdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXplb2YoSW5saW5l
VGV4dEl0ZW0pLCAiIik7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihJbmxpbmVJdGVtKSA9PSBzaXpl
b2YoSW5saW5lVGV4dEl0ZW0pKTsKIAogSW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKGNv
bnN0IElubGluZVRleHRCb3gmIGlubGluZVRleHRCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25l
ZCBsZW5ndGgsIFVCaURpTGV2ZWwgYmlkaUxldmVsLCBib29sIGhhc1RyYWlsaW5nU29mdEh5cGhl
biwgYm9vbCBpc1dvcmRTZXBhcmF0b3IsIHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4g
d2lkdGgsIFRleHRJdGVtVHlwZSB0ZXh0SXRlbVR5cGUpCiAgICAgOiBJbmxpbmVJdGVtKGlubGlu
ZVRleHRCb3gsIFR5cGU6OlRleHQsIGJpZGlMZXZlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0tleWVkQ29kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9LZXll
ZENvZGluZy5oCmluZGV4IDc5YTIzNTM1NWYxZThlZjg2MTUzNTJlNjM5YzhjNjMxOGY0MDM3NzYu
LmZmYjI0Y2M1MzJmNWMwNGFjM2Y1ZjYwYjZiN2IxMWI3NzU5OThmYzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0tleWVkQ29kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vS2V5ZWRDb2RpbmcuaApAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBLZXllZERlY29k
ZXIgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFdBUk5fVU5VU0VEX1JFVFVSTgogICAgIGJv
b2wgZGVjb2RlQnl0ZXMoY29uc3QgU3RyaW5nJiBrZXksIFZlY3RvcjxUPiYgdmVjdG9yKQogICAg
IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkgPT0gMSwgIiIpOworICAgICAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihUKSA9PSAxKTsKIAogICAgICAgICBzaXplX3Qgc2l6ZTsKICAg
ICAgICAgY29uc3QgdWludDhfdCogYnl0ZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0RXZlbnRUYXJnZXQuaAppbmRleCBmYTdhNGE5YjNiODJjNGJjOThlODYwMDFlMDM2
MGRiM2ZlMDQ3NGI0Li41Nzc0OTY5M2Y0NGU2NDRhYTJmYmZiZWUxNDMxOWZmYTk5ZTFlNDU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV2ZW50VGFyZ2V0LmgKQEAg
LTMxLDYgKzMxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBYTUxIdHRwUmVxdWVz
dEV2ZW50VGFyZ2V0IDogcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEgewogfTsKLXN0
YXRpY19hc3NlcnQoc2l6ZW9mKFhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQpID09IHNpemVvZihF
dmVudFRhcmdldFdpdGhJbmxpbmVEYXRhKSwgIiIpOworc3RhdGljX2Fzc2VydChzaXplb2YoWE1M
SHR0cFJlcXVlc3RFdmVudFRhcmdldCkgPT0gc2l6ZW9mKEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEpKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uY3BwCmluZGV4IGQyNmFiZGQ1N2FhOTM2YjEyYzM2
YjI0MjZiY2RlMDE5OTQ5YmU2MmMuLjgxNWM3MDllNzA0NDg1Y2M5YTE3MWFmYjllNjcxNTIzMWZm
ZmNiMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1l
bnVJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51
SXRlbS5jcHAKQEAgLTE3MCw4ICsxNzAsOCBAQCB2b2lkIFdLQ29udGV4dE1lbnVJdGVtU2V0VXNl
ckRhdGEoV0tDb250ZXh0TWVudUl0ZW1SZWYgaXRlbVJlZiwgV0tUeXBlUmVmIHVzZXJEYQogI2lm
IFBMQVRGT1JNKENPQ09BKQogCiAjZGVmaW5lIFNUQVRJQ19BU1NFUlRfRVFVQUxTKGEsIGIsIGMp
IFwKLSAgICBzdGF0aWNfYXNzZXJ0KGEgPT0gYiwgIiIpOyBcCi0gICAgc3RhdGljX2Fzc2VydChh
ID09IFdlYkNvcmU6OmMsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KGEgPT0gYik7IFwKKyAgICBz
dGF0aWNfYXNzZXJ0KGEgPT0gV2ViQ29yZTo6Yyk7CiAKIC8vIFRoZXNlIHZhbHVlcyBtdXN0IHJl
bWFpbiBlcXVhbCB0byByZXRhaW4gYmluYXJ5IGNvbXBhdGliaWxpdHkuCiBTVEFUSUNfQVNTRVJU
X0VRVUFMUygwLCBrV0tDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbiwgQ29udGV4dE1lbnVJdGVt
VGFnTm9BY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL0xl
Z2FjeVNlc3Npb25TdGF0ZUNvZGluZy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
TGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNwcAppbmRleCA0YjRjOTNiMzRlOWRhNmRhZDA2NDM1
NDkzOTAxZjU0YTYxMjYyYmI4Li40ZTE4OTM3MGUwMWZkNDBjNmZhMjNiYmMzODc2NTE5M2ZkMGM0
ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvTGVnYWN5
U2Vzc2lvblN0YXRlQ29kaW5nLmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIGNsYXNzIEhpc3RvcnlF
bnRyeURhdGFFbmNvZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlPgogICAgIEhpc3Rv
cnlFbnRyeURhdGFFbmNvZGVyJiBlbmNvZGVBcml0aG1ldGljVHlwZShUeXBlIHZhbHVlKQogICAg
IHsKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2FyaXRobWV0aWM8VHlwZT46OnZhbHVl
LCAiIik7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19hcml0aG1ldGljPFR5cGU+Ojp2
YWx1ZSk7CiAKICAgICAgICAgZW5jb2RlRml4ZWRMZW5ndGhEYXRhKHJlaW50ZXJwcmV0X2Nhc3Q8
dWludDhfdCo+KCZ2YWx1ZSksIHNpemVvZih2YWx1ZSksIHNpemVvZih2YWx1ZSkpOwogICAgICAg
ICByZXR1cm4gKnRoaXM7CkBAIC03MzgsNyArNzM4LDcgQEAgY2xhc3MgSGlzdG9yeUVudHJ5RGF0
YURlY29kZXIgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGU+CiAgICAgSGlzdG9yeUVudHJ5
RGF0YURlY29kZXImIGRlY29kZUFyaXRobWV0aWNUeXBlKFR5cGUmIHZhbHVlKQogICAgIHsKLSAg
ICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2FyaXRobWV0aWM8VHlwZT46OnZhbHVlLCAiIik7
CisgICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19hcml0aG1ldGljPFR5cGU+Ojp2YWx1ZSk7
CiAgICAgICAgIHZhbHVlID0gVHlwZSgpOwogCiAgICAgICAgIGRlY29kZUZpeGVkTGVuZ3RoRGF0
YShyZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPigmdmFsdWUpLCBzaXplb2YodmFsdWUpLCBzaXpl
b2YodmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxnb3JpdGht
LmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0FsZ29yaXRobS5oCmluZGV4IGE1MTlkODAyODY1
ZDZkMjQxNzcxMTMyOGE3YTM3ODJmYjllYjRhMGEuLjBlNWVhNDAyNjdkNWMxNTM2YmY0OTVjZDM5
NDQzZDdlZTAyMzZlNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQWxnb3Jp
dGhtLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9BbGdvcml0aG0uaApAQCAtNjcsNyAr
NjcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCB0ZXN0KFQgdmFsdWUs
IHVpbnRwdHJfdCBtYXNrKQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBjb25zdGV4cHIgYm9vbCBp
c1Bvd2VyT2ZUd28oVCBzaXplKQogewotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc19pbnRlZ3Jh
bDxUPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfaW50ZWdyYWw8VD46
OnZhbHVlKTsKICAgICByZXR1cm4gc2l6ZSAmJiAhKHNpemUgJiAoc2l6ZSAtIDEpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5oIGIvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5oCmluZGV4IGIwMjlhNGNjNzkzMTlhMmU5NzRmMTc1YTA2
NzdiMGE1ZmU1MzhhNmYuLjVlNWE0OTBiZWU4NDIyNWIwMzA0MDAyZDE3YjZmMmI0M2Y2ZDczOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuaAorKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmgKQEAgLTgyLDEwICs4MiwxMCBAQCBjb25zdGV4
cHIgc2l6ZV90IG1heGltdW1DYWdlU2l6ZVJlZHVjdGlvbkZvclNsaWRlID0gaGFzQ2FwYWNpdHlU
b1VzZUxhcmdlR2lnYWNhZwogI2VuZGlmCiAKIAotc3RhdGljX2Fzc2VydChibWFsbG9jOjppc1Bv
d2VyT2ZUd28ocHJpbWl0aXZlR2lnYWNhZ2VTaXplKSwgIiIpOwotc3RhdGljX2Fzc2VydChibWFs
bG9jOjppc1Bvd2VyT2ZUd28oanNWYWx1ZUdpZ2FjYWdlU2l6ZSksICIiKTsKLXN0YXRpY19hc3Nl
cnQocHJpbWl0aXZlR2lnYWNhZ2VTaXplID4gbWF4aW11bUNhZ2VTaXplUmVkdWN0aW9uRm9yU2xp
ZGUsICIiKTsKLXN0YXRpY19hc3NlcnQoanNWYWx1ZUdpZ2FjYWdlU2l6ZSA+IG1heGltdW1DYWdl
U2l6ZVJlZHVjdGlvbkZvclNsaWRlLCAiIik7CitzdGF0aWNfYXNzZXJ0KGJtYWxsb2M6OmlzUG93
ZXJPZlR3byhwcmltaXRpdmVHaWdhY2FnZVNpemUpKTsKK3N0YXRpY19hc3NlcnQoYm1hbGxvYzo6
aXNQb3dlck9mVHdvKGpzVmFsdWVHaWdhY2FnZVNpemUpKTsKK3N0YXRpY19hc3NlcnQocHJpbWl0
aXZlR2lnYWNhZ2VTaXplID4gbWF4aW11bUNhZ2VTaXplUmVkdWN0aW9uRm9yU2xpZGUpOworc3Rh
dGljX2Fzc2VydChqc1ZhbHVlR2lnYWNhZ2VTaXplID4gbWF4aW11bUNhZ2VTaXplUmVkdWN0aW9u
Rm9yU2xpZGUpOwogCiBjb25zdGV4cHIgc2l6ZV90IGdpZ2FjYWdlU2l6ZVRvTWFzayhzaXplX3Qg
c2l6ZSkgeyByZXR1cm4gc2l6ZSAtIDE7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9Jc29IZWFwSW1wbC5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9Jc29IZWFwSW1w
bC5oCmluZGV4IDViMzE1ZDFlZTMwZjc1MjFhY2QwMTQ0NGQyNWViNTU1MmU0Y2YwMjEuLjU2OTU0
MjQ3NTZlMWM2NTg3YTFhZmZjYjg5MDhlZGE4YTY3ZjY0MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvSXNvSGVhcEltcGwuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9j
L0lzb0hlYXBJbXBsLmgKQEAgLTQ1LDggKzQ1LDggQEAgY2xhc3MgQkVYUE9SVCBJc29IZWFwSW1w
bEJhc2UgewogcHVibGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4QWxsb2Nh
dGlvbkZyb21TaGFyZWQgPSA4OwogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4QWxs
b2NhdGlvbkZyb21TaGFyZWRNYXNrID0gKDFVIDw8IG1heEFsbG9jYXRpb25Gcm9tU2hhcmVkKSAt
IDFVOwotICAgIHN0YXRpY19hc3NlcnQobWF4QWxsb2NhdGlvbkZyb21TaGFyZWQgPD0gYm1hbGxv
Yzo6YWxpZ25tZW50LCAiIik7Ci0gICAgc3RhdGljX2Fzc2VydChpc1Bvd2VyT2ZUd28obWF4QWxs
b2NhdGlvbkZyb21TaGFyZWQpLCAiIik7CisgICAgc3RhdGljX2Fzc2VydChtYXhBbGxvY2F0aW9u
RnJvbVNoYXJlZCA8PSBibWFsbG9jOjphbGlnbm1lbnQpOworICAgIHN0YXRpY19hc3NlcnQoaXNQ
b3dlck9mVHdvKG1heEFsbG9jYXRpb25Gcm9tU2hhcmVkKSk7CiAKICAgICB2aXJ0dWFsIH5Jc29I
ZWFwSW1wbEJhc2UoKTsKICAgICAKQEAgLTkzLDcgKzkzLDcgQEAgY2xhc3MgQkVYUE9SVCBJc29I
ZWFwSW1wbEJhc2UgewogICAgIHVuc2lnbmVkIG1fYXZhaWxhYmxlU2hhcmVkIHsgbWF4QWxsb2Nh
dGlvbkZyb21TaGFyZWRNYXNrIH07CiAgICAgQWxsb2NhdGlvbk1vZGUgbV9hbGxvY2F0aW9uTW9k
ZSB7IEFsbG9jYXRpb25Nb2RlOjpJbml0IH07CiAgICAgYm9vbCBtX2lzSW5saW5lRGlyZWN0b3J5
RWxpZ2libGVPckRlY29tbWl0dGVkIHsgdHJ1ZSB9OwotICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9m
KG1fYXZhaWxhYmxlU2hhcmVkKSAqIDggPj0gbWF4QWxsb2NhdGlvbkZyb21TaGFyZWQsICIiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihtX2F2YWlsYWJsZVNoYXJlZCkgKiA4ID49IG1heEFs
bG9jYXRpb25Gcm9tU2hhcmVkKTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIENvbmZpZz4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxZDI4NjI0
Mzk3YjlmNjU0MjliMDUxZDVkYWU5NGVlYzY3NDlkOTE3Li45YmMxMzE4MTdlNTQ0MzNkOGY5Y2Zh
OGU1ODAyMzc3NjkxNjcxZjViIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDMtMjYgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgdW5hcnkgc3RhdGljX2Fzc2VydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDEyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9FbnVtVHJhaXRzLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9IYXNoTWFwLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ludDEyOC5jcHA6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Q
YWNrZWQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvUm9iaW5Ib29kSGFzaE1hcC5jcHA6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMi0wMy0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgUEdPIHdoZW4gYnVpbGRpbmcgZm9yIHJl
bGVhc2UgYW5kIHByb2R1Y3Rpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0VudW1UcmFpdHMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRW51
bVRyYWl0cy5jcHAKaW5kZXggMDI0NmZkZTI5ZTY2NzhlMmRkZGYyYWRjZGZiNTNlNjgzYmEzNTU1
ZS4uMmVhZWIxY2ZjZWM2ZWJlODQ1ODAyMWE4ZGJlNGU2MDQzNGViMmNiMiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRW51bVRyYWl0cy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRW51bVRyYWl0cy5jcHAKQEAgLTQxLDkgKzQxLDkgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxUZXN0RW51bT4gewogCiBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKLXN0YXRpY19hc3NlcnQoV1RGOjppc1ZhbGlkRW51bTxUZXN0RW51bT4o
MCksICIiKTsKLXN0YXRpY19hc3NlcnQoIVdURjo6aXNWYWxpZEVudW08VGVzdEVudW0+KC0xKSwg
IiIpOwotc3RhdGljX2Fzc2VydCghV1RGOjppc1ZhbGlkRW51bTxUZXN0RW51bT4oMyksICIiKTsK
K3N0YXRpY19hc3NlcnQoV1RGOjppc1ZhbGlkRW51bTxUZXN0RW51bT4oMCkpOworc3RhdGljX2Fz
c2VydCghV1RGOjppc1ZhbGlkRW51bTxUZXN0RW51bT4oLTEpKTsKK3N0YXRpY19hc3NlcnQoIVdU
Rjo6aXNWYWxpZEVudW08VGVzdEVudW0+KDMpKTsKIAogVEVTVChXVEZfRW51bVRyYWl0cywgSXNW
YWxpZEVudW0pCiB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9I
YXNoTWFwLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwCmlu
ZGV4IGM4NDNlN2M1NWFiMTM0M2U4MDJhYjc4NDcwNDdmOWY4NmE1MjQ3YjguLmJhZTBiNjBlMmIy
NjhkMTNlOTZjOGMzNjc1ZTZjZThkMjE3NDU0NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0hhc2hNYXAuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0hhc2hNYXAuY3BwCkBAIC0xMDQ4LDcgKzEwNDgsNyBAQCBURVNUKFdURl9IYXNoTWFw
LCBSZWZNYXBwZWRUb05vblplcm9FbXB0eVZhbHVlKQogICAgICAgICBzdGF0aWMgUmVmPEtleT4g
Y3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBLZXkpOyB9CiAgICAgfTsKIAotICAgIHN0
YXRpY19hc3NlcnQoIVdURjo6SGFzaFRyYWl0czxWYWx1ZT46OmVtcHR5VmFsdWVJc1plcm8sICIi
KTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFXVEY6Okhhc2hUcmFpdHM8VmFsdWU+OjplbXB0eVZhbHVl
SXNaZXJvKTsKIAogICAgIEhhc2hNYXA8UmVmPEtleT4sIFZhbHVlPiBtYXA7CiAgICAgVmVjdG9y
PHN0ZDo6cGFpcjxSZWY8S2V5PiwgaW50MzJfdD4+IHZlY3Rvck1hcDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ludDEyOC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9JbnQxMjguY3BwCmluZGV4IGY3OTFhZGNhYjEyMjlmZmQxN2MzNmYzNjdm
NjAxNTQyNDhmYmFiNjMuLjMwY2YwYmQ3MTAxOTE1NDEwMWRmYTU3YzcxM2RmMWI5MjYwM2Q0ZDYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ludDEyOC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSW50MTI4LmNwcApAQCAtODAsOCArODAs
OCBAQCBURVNUKFdURl9VSW50MTI4LCBUcml2aWFsVHJhaXRzVGVzdCkKICAgICAgICAgIiIpOwog
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfY29weV9jb25zdHJ1Y3RpYmxlPFdU
Rjo6VUludDEyOEltcGw+Ojp2YWx1ZSwKICAgICAgICAgIiIpOwotICAgIHN0YXRpY19hc3NlcnQo
c3RkOjppc190cml2aWFsbHlfY29weV9hc3NpZ25hYmxlPFdURjo6VUludDEyOEltcGw+Ojp2YWx1
ZSwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxl
PFdURjo6VUludDEyOEltcGw+Ojp2YWx1ZSwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c190cml2aWFsbHlfY29weV9hc3NpZ25hYmxlPFdURjo6VUludDEyOEltcGw+Ojp2YWx1ZSk7Cisg
ICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVjdGlibGU8V1RGOjpVSW50
MTI4SW1wbD46OnZhbHVlKTsKIH0KIAogVEVTVChXVEZfVUludDEyOCwgQWxsVGVzdHMpCkBAIC00
MzYsOSArNDM2LDkgQEAgVEVTVChXVEZfVUludDEyOCwgQ29uc3RleHByVGVzdCkKIAogVEVTVChX
VEZfVUludDEyOCwgTnVtZXJpY0xpbWl0c1Rlc3QpCiB7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6
Om51bWVyaWNfbGltaXRzPFdURjo6VUludDEyOEltcGw+Ojppc19zcGVjaWFsaXplZCwgIiIpOwot
ICAgIHN0YXRpY19hc3NlcnQoIXN0ZDo6bnVtZXJpY19saW1pdHM8V1RGOjpVSW50MTI4SW1wbD46
OmlzX3NpZ25lZCwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxX
VEY6OlVJbnQxMjhJbXBsPjo6aXNfaW50ZWdlciwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3Rk
OjpudW1lcmljX2xpbWl0czxXVEY6OlVJbnQxMjhJbXBsPjo6aXNfc3BlY2lhbGl6ZWQpOworICAg
IHN0YXRpY19hc3NlcnQoIXN0ZDo6bnVtZXJpY19saW1pdHM8V1RGOjpVSW50MTI4SW1wbD46Omlz
X3NpZ25lZCk7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6VUlu
dDEyOEltcGw+Ojppc19pbnRlZ2VyKTsKICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8aW50Pigx
MjggKiBzdGQ6OmxvZzEwKDIpKSwKICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxXVEY6OlVJ
bnQxMjhJbXBsPjo6ZGlnaXRzMTApOwogICAgIEVYUEVDVF9FUSgwLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPFdURjo6VUludDEyOEltcGw+OjptaW4oKSk7CkBAIC01MTIsMTAgKzUxMiwxMCBAQCBUWVBF
RF9URVNUKFdURl9JbnQxMjhGbG9hdFRyYWl0c1Rlc3QsIENvbnN0cnVjdEFzc2lnblRlc3QpCiAK
IFRFU1QoV1RGX0ludDEyOCwgVHJpdmlhbFRyYWl0c1Rlc3QpCiB7Ci0gICAgc3RhdGljX2Fzc2Vy
dChzdGQ6OmlzX3RyaXZpYWxseV9kZWZhdWx0X2NvbnN0cnVjdGlibGU8V1RGOjpJbnQxMjhJbXBs
Pjo6dmFsdWUsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2NvcHlf
Y29uc3RydWN0aWJsZTxXVEY6OkludDEyOEltcGw+Ojp2YWx1ZSwgIiIpOwotICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc190cml2aWFsbHlfY29weV9hc3NpZ25hYmxlPFdURjo6SW50MTI4SW1wbD46
OnZhbHVlLCAiIik7Ci0gICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9kZXN0cnVj
dGlibGU8V1RGOjpJbnQxMjhJbXBsPjo6dmFsdWUsICIiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0
ZDo6aXNfdHJpdmlhbGx5X2RlZmF1bHRfY29uc3RydWN0aWJsZTxXVEY6OkludDEyOEltcGw+Ojp2
YWx1ZSk7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZpYWxseV9jb3B5X2NvbnN0cnVj
dGlibGU8V1RGOjpJbnQxMjhJbXBsPjo6dmFsdWUpOworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c190cml2aWFsbHlfY29weV9hc3NpZ25hYmxlPFdURjo6SW50MTI4SW1wbD46OnZhbHVlKTsKKyAg
ICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxXVEY6OkludDEy
OEltcGw+Ojp2YWx1ZSk7CiB9CiAKIFRFU1QoV1RGX0ludDEyOCwgQm9vbENvbnZlcnNpb25UZXN0
KQpAQCAtMTE4OSw5ICsxMTg5LDkgQEAgVEVTVChXVEZfSW50MTI4LCBCaXR3aXNlU2hpZnRUZXN0
KQogCiBURVNUKFdURl9JbnQxMjgsIE51bWVyaWNMaW1pdHNUZXN0KQogewotICAgIHN0YXRpY19h
c3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxXVEY6OkludDEyOEltcGw+Ojppc19zcGVjaWFsaXpl
ZCwgIiIpOwotICAgIHN0YXRpY19hc3NlcnQoc3RkOjpudW1lcmljX2xpbWl0czxXVEY6OkludDEy
OEltcGw+Ojppc19zaWduZWQsICIiKTsKLSAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6bnVtZXJpY19s
aW1pdHM8V1RGOjpJbnQxMjhJbXBsPjo6aXNfaW50ZWdlciwgIiIpOworICAgIHN0YXRpY19hc3Nl
cnQoc3RkOjpudW1lcmljX2xpbWl0czxXVEY6OkludDEyOEltcGw+Ojppc19zcGVjaWFsaXplZCk7
CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6SW50MTI4SW1wbD46
OmlzX3NpZ25lZCk7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6
SW50MTI4SW1wbD46OmlzX2ludGVnZXIpOwogICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxpbnQ+
KDEyNyAqIHN0ZDo6bG9nMTAoMikpLAogICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPFdURjo6
SW50MTI4SW1wbD46OmRpZ2l0czEwKTsKICAgICBFWFBFQ1RfRVEoV1RGOjpJbnQxMjhNaW4oKSwg
c3RkOjpudW1lcmljX2xpbWl0czxXVEY6OkludDEyOEltcGw+OjptaW4oKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYWNrZWQuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvUGFja2VkLmNwcAppbmRleCAyZTE2MThjN2I4YWJiY2UyMWNhZDUz
YjVlMTBhZjY4YTI1OTI5ZTdlLi5hZjBhMjJkODMwNGM5ZjdmZTMwOTM1YmYwZDZhYTRlOThkN2Ji
ODc3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9QYWNrZWQuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1BhY2tlZC5jcHAKQEAgLTY2LDcg
KzY2LDcgQEAgVEVTVChXVEZfUGFja2VkLCBBc3NpZ25BbmRHZXQpCiB7CiAgICAgewogICAgICAg
ICBQYWNrZWRQdHI8dWludDhfdD4ga2V5IHsgbnVsbHB0ciB9OwotICAgICAgICBzdGF0aWNfYXNz
ZXJ0KE9TX0NPTlNUQU5UKEVGRkVDVElWRV9BRERSRVNTX1dJRFRIKSAhPSA2NCwgIiIpOworICAg
ICAgICBzdGF0aWNfYXNzZXJ0KE9TX0NPTlNUQU5UKEVGRkVDVElWRV9BRERSRVNTX1dJRFRIKSAh
PSA2NCk7CiAgICAgICAgIHVpbnQ4X3QqIGNhbmRpZGF0ZXNbXSA9IHsKICAgICAgICAgICAgIDAs
CiAgICAgICAgICAgICBiaXR3aXNlX2Nhc3Q8dWludDhfdCo+KHN0YXRpY19jYXN0PHVpbnRwdHJf
dD4oKDFVTEwgPDwgKE9TX0NPTlNUQU5UKEVGRkVDVElWRV9BRERSRVNTX1dJRFRIKSAvIDIpKSAt
IDEpKSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1JvYmluSG9v
ZEhhc2hNYXAuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUm9iaW5Ib29kSGFz
aE1hcC5jcHAKaW5kZXggNTc3ZjdiNDhiNThmYjhhMjk5MmZmNGZjNTNiNWJlNDAzNDI4YTBiZC4u
NjVhY2RhODNjNmIzYTAwYTBlOTBiYzhhMThkNmU5YjFmZjI5NjI2NSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUm9iaW5Ib29kSGFzaE1hcC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvUm9iaW5Ib29kSGFzaE1hcC5jcHAKQEAgLTEwNTAs
NyArMTA1MCw3IEBAIFRFU1QoV1RGX1JvYmluSG9vZEhhc2hNYXAsIFJlZk1hcHBlZFRvTm9uWmVy
b0VtcHR5VmFsdWUpCiAgICAgICAgIHN0YXRpYyBSZWY8S2V5PiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IEtleSk7IH0KICAgICB9OwogCi0gICAgc3RhdGljX2Fzc2VydCghV1RGOjpI
YXNoVHJhaXRzPFZhbHVlPjo6ZW1wdHlWYWx1ZUlzWmVybywgIiIpOworICAgIHN0YXRpY19hc3Nl
cnQoIVdURjo6SGFzaFRyYWl0czxWYWx1ZT46OmVtcHR5VmFsdWVJc1plcm8pOwogCiAgICAgTWVt
b3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoTWFwPFJlZjxLZXk+LCBWYWx1ZSwgUm9i
aW5Ib29kSGFzaDxSZWY8S2V5Pj4+IG1hcDsKICAgICBWZWN0b3I8c3RkOjpwYWlyPFJlZjxLZXk+
LCBpbnQzMl90Pj4gdmVjdG9yTWFwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>