<?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>203115</bug_id>
          
          <creation_ts>2019-10-17 11:19:12 -0700</creation_ts>
          <short_desc>Use constexpr in more places and remove some unnecessary external linkage.</short_desc>
          <delta_ts>2019-10-17 20:13:43 -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>JavaScriptCore</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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jamesr</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1581064</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-10-17 11:19:12 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581076</commentid>
    <comment_count>1</comment_count>
      <attachid>381209</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-10-17 11:46:20 -0700</bug_when>
    <thetext>Created attachment 381209
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581081</commentid>
    <comment_count>2</comment_count>
      <attachid>381211</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-10-17 11:58:25 -0700</bug_when>
    <thetext>Created attachment 381211
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581156</commentid>
    <comment_count>3</comment_count>
      <attachid>381211</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-10-17 14:22:19 -0700</bug_when>
    <thetext>Comment on attachment 381211
proposed patch.

Attachment 381211 did not pass jsc-ews (mac):
Output: https://webkit-queues.webkit.org/results/13144331

New failing tests:
mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581170</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-10-17 14:58:34 -0700</bug_when>
    <thetext>(In reply to Build Bot from comment #3)
&gt; New failing tests:
&gt; mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla

This is the flaky test again.  It can&apos;t possibly be related to this patch since all I&apos;m doing is effectively changing const to constexpr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581172</commentid>
    <comment_count>5</comment_count>
      <attachid>381211</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-10-17 15:03:04 -0700</bug_when>
    <thetext>Comment on attachment 381211
proposed patch.

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

r=me

&gt; Source/JavaScriptCore/jit/GPRInfo.cpp:-47
&gt; -#endif

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581182</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-10-17 15:20:03 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r251263: &lt;http://trac.webkit.org/r251263&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581183</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-17 15:21:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/56387812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1581272</commentid>
    <comment_count>8</comment_count>
      <attachid>381211</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-10-17 20:13:43 -0700</bug_when>
    <thetext>Comment on attachment 381211
proposed patch.

This patch is good. The optimal solution is just use constexpr (read: not static constexpr) for all var defns as constexpr var defs have internal linkage.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381209</attachid>
            <date>2019-10-17 11:46:20 -0700</date>
            <delta_ts>2019-10-17 11:58:25 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-203115.patch</filename>
            <type>text/plain</type>
            <size>48054</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE5LTEwLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgY29uc3RleHByIGluIG1vcmUgcGxhY2VzIGFuZCByZW1vdmUgc29tZSB1bm5lY2Vzc2FyeSBl
eHRlcm5hbCBsaW5rYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzMTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAqIGhlYXAvTWFya2VkQmxv
Y2suY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXI6OmFwcGVuZEFQSUJhY2t0cmFjZSk6CisgICAgICAgICogaW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFjay5oOgorICAgICAgICAqIGludGVycHJldGVyL0NMb29wU3RhY2suaDoKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9TaGFk
b3dDaGlja2VuLmg6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5jcHA6CisgICAgICAg
IChKU0M6OmVtaXRSYW5kb21UaHVua0ltcGwpOgorICAgICAgICAqIGppdC9HUFJJbmZvLmNwcDoK
KyAgICAgICAgKiBqaXQvR1BSSW5mby5oOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAg
KiBqaXQvUENUb0NvZGVPcmlnaW5NYXAuY3BwOgorICAgICAgICAqIGppdC9TcGVjaWFsaXplZFRo
dW5rSklULmg6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChK
U0M6OnJvdW5kVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9VbnVzZWRQb2ludGVyLmg6
CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmg6CisgICAgICAgICogbGxpbnQvTExJbnRQQ1Jh
bmdlcy5oOgorICAgICAgICAqIHBhcnNlci9MZXhlci5oOgorICAgICAgICAqIHBhcnNlci9Ob2Rl
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0NvZGVDYWNoZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNBc3luY0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FzeW5j
R2VuZXJhdG9yRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNDYWxsZWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVu
Y3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJhdG9yRnVuY3Rpb24uaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pT
UnVuTG9vcFRpbWVyLmNwcDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9KU1J1bkxvb3BUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuaDoKKyAg
ICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmNwcDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9XYXRjaGRvZy5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlG
dW5jdGlvbi5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmg6CisKIDIwMTkt
MTAtMTcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHJld29yayBmcm9udGVuZCBhZ2VudCBjb25zdHJ1Y3Rpb24gdG8gYWxsb3cgY29t
bWFuZHMvZXZlbnRzIHRvIGJlIGNvbnRyb2xsZWQgYnkgdGhlIHJlbGF0ZWQgdGFyZ2V0J3MgdHlw
ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0JKHJldmlz
aW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIC0gKEpTT2JqQ0NsYXNzSW5mbyopY2xh
c3NJbmZvRm9yQ2xhc3M6KEMKIAogQGVuZAogCi1zdGF0aWMgY29uc3QgY29uc3RleHByIHVuc2ln
bmVkIEluaXRpYWxCdWZmZXJTaXplIHsgMjU2IH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IEluaXRpYWxCdWZmZXJTaXplIHsgMjU2IH07CiAKIC8vIERlZmF1bHQgY29udmVyc2lvbiBvZiBz
ZWxlY3RvcnMgdG8gcHJvcGVydHkgbmFtZXMuCiAvLyBBbGwgc2VtaWNvbG9ucyBhcmUgcmVtb3Zl
ZCwgbG93ZXJjYXNlIGxldHRlcnMgZm9sbG93aW5nIGEgc2VtaWNvbG9uIGFyZSBjYXBpdGFsaXpl
ZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHJl
dmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsNiBAQCBuYW1lc3BhY2UgTWFya2VkQmxv
Y2tJbnRlcm5hbCB7CiBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQog
Ci1jb25zdCBzaXplX3QgTWFya2VkQmxvY2s6OmJsb2NrU2l6ZTsKLQogc3RhdGljIGNvbnN0ZXhw
ciBib29sIGNvbXB1dGVCYWxhbmNlID0gZmFsc2U7CiBzdGF0aWMgc2l6ZV90IGJhbGFuY2U7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9u
IDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDggKzE1Niw4
IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjoKIAogdm9pZCBKU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmFwcGVuZEFQSUJhY2t0cmFjZShTY3JpcHRD
YWxsU3RhY2smIGNhbGxTdGFjaykKIHsKLSAgICBzdGF0aWMgY29uc3QgaW50IGZyYW1lc1RvU2hv
dyA9IDMxOwotICAgIHN0YXRpYyBjb25zdCBpbnQgZnJhbWVzVG9Ta2lwID0gMzsgLy8gV1RGR2V0
QmFja3RyYWNlLCBhcHBlbmRBUElCYWNrdHJhY2UsIHJlcG9ydEFQSUV4Y2VwdGlvbi4KKyAgICBz
dGF0aWMgY29uc3RleHByIGludCBmcmFtZXNUb1Nob3cgPSAzMTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGludCBmcmFtZXNUb1NraXAgPSAzOyAvLyBXVEZHZXRCYWNrdHJhY2UsIGFwcGVuZEFQSUJh
Y2t0cmFjZSwgcmVwb3J0QVBJRXhjZXB0aW9uLgogCiAgICAgdm9pZCogc2FtcGxlc1tmcmFtZXNU
b1Nob3cgKyBmcmFtZXNUb1NraXBdOwogICAgIGludCBmcmFtZXMgPSBmcmFtZXNUb1Nob3cgKyBm
cmFtZXNUb1NraXA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvU2NyaXB0Q2FsbFN0YWNrLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDcgKzQwLDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEpTX0VYUE9SVF9QUklW
QVRFIFNjcmlwdENhbGxTdGFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFNjcmlwdENhbGxTdGFjaz4g
ewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4Q2FsbFN0YWNrU2l6ZVRvQ2Fw
dHVyZSA9IDIwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhDYWxsU3RhY2tTaXpl
VG9DYXB0dXJlID0gMjAwOwogICAgIAogICAgIHN0YXRpYyBSZWY8U2NyaXB0Q2FsbFN0YWNrPiBj
cmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlKFZlY3RvcjxT
Y3JpcHRDYWxsRnJhbWU+Jik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvQ0xvb3BTdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9DTG9vcFN0YWNrLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9DTG9vcFN0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENM
b29wU3RhY2spOwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gQWxsb3cgOGsgb2YgZXhjZXNzIHJl
Z2lzdGVycyBiZWZvcmUgd2Ugc3RhcnQgdHJ5aW5nIHRvIHJlYXAgdGhlIHN0YWNrCi0gICAgICAg
IHN0YXRpYyBjb25zdCBwdHJkaWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSA4ICogMTAyNDsKKyAg
ICAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSA4ICog
MTAyNDsKIAogICAgICAgICBDTG9vcFN0YWNrKFZNJik7CiAgICAgICAgIH5DTG9vcFN0YWNrKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5o
CShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
Q2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDIzICs4NCwyMyBAQCBuYW1lc3BhY2Ug
SlNDICB7CiAgICAgc3RydWN0IENhbGxlckZyYW1lQW5kUEMgewogICAgICAgICBhbGlnbmFzKENQ
VVJlZ2lzdGVyKSBDYWxsRnJhbWUqIGNhbGxlckZyYW1lOwogICAgICAgICBhbGlnbmFzKENQVVJl
Z2lzdGVyKSBjb25zdCBJbnN0cnVjdGlvbiogcmV0dXJuUEM7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgc2l6ZUluUmVnaXN0ZXJzID0gMiAqIHNpemVvZihDUFVSZWdpc3RlcikgLyBzaXplb2Yo
UmVnaXN0ZXIpOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBzaXplSW5SZWdpc3RlcnMg
PSAyICogc2l6ZW9mKENQVVJlZ2lzdGVyKSAvIHNpemVvZihSZWdpc3Rlcik7CiAgICAgfTsKICAg
ICBzdGF0aWNfYXNzZXJ0KENhbGxlckZyYW1lQW5kUEM6OnNpemVJblJlZ2lzdGVycyA9PSBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykgLyBzaXplb2YoUmVnaXN0ZXIpLCAiQ2FsbGVyRnJhbWVBbmRQ
Qzo6c2l6ZUluUmVnaXN0ZXJzIGlzIGluY29ycmVjdC4iKTsKIAogICAgIHN0cnVjdCBDYWxsRnJh
bWVTbG90IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBjb2RlQmxvY2sgPSBDYWxsZXJGcmFt
ZUFuZFBDOjpzaXplSW5SZWdpc3RlcnM7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgY2FsbGVl
ID0gY29kZUJsb2NrICsgMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBhcmd1bWVudENvdW50
ID0gY2FsbGVlICsgMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCB0aGlzQXJndW1lbnQgPSBh
cmd1bWVudENvdW50ICsgMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBmaXJzdEFyZ3VtZW50
ID0gdGhpc0FyZ3VtZW50ICsgMTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgY29kZUJs
b2NrID0gQ2FsbGVyRnJhbWVBbmRQQzo6c2l6ZUluUmVnaXN0ZXJzOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGludCBjYWxsZWUgPSBjb2RlQmxvY2sgKyAxOworICAgICAgICBzdGF0aWMgY29u
c3RleHByIGludCBhcmd1bWVudENvdW50ID0gY2FsbGVlICsgMTsKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciBpbnQgdGhpc0FyZ3VtZW50ID0gYXJndW1lbnRDb3VudCArIDE7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgaW50IGZpcnN0QXJndW1lbnQgPSB0aGlzQXJndW1lbnQgKyAxOwogICAg
IH07CiAKICAgICAvLyBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHNjcmlwdCBleGVj
dXRpb24uCiAgICAgLy8gUGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBtb3N0IGZ1bmN0
aW9ucy4KICAgICBjbGFzcyBDYWxsRnJhbWUgOiBwcml2YXRlIFJlZ2lzdGVyIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgaGVhZGVyU2l6ZUluUmVnaXN0ZXJzID0gQ2Fs
bEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCArIDE7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
aW50IGhlYWRlclNpemVJblJlZ2lzdGVycyA9IENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQg
KyAxOwogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlu
IHZlcnkgc3BlY2lmaWMgY2lyY3Vtc3RhbmNlcwogICAgICAgICAvLyB3aGVuIHlvdSd2ZSBndWFy
YW50ZWVkIHRoZSBjYWxsZWUgY2FuJ3QgYmUgYSBXYXNtIGNhbGxlZSwgYW5kIGNhbgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5o
CShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
U2hhZG93Q2hpY2tlbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw5ICs3Nyw5IEBAIHB1YmxpYzoK
ICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgY29u
c3RleHByIHVuc2lnbmVkIHVubGlrZWx5VmFsdWUgPSAweDdhMTE7CisgICAgICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgdW5saWtlbHlWYWx1ZSA9IDB4N2ExMTsKIAotICAgICAgICBzdGF0
aWMgY29uc3QgY29uc3RleHByIGludHB0cl90IHRhaWxNYXJrZXJWYWx1ZSA9IHN0YXRpY19jYXN0
PGludHB0cl90Pih1bmxpa2VseVZhbHVlKTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnRw
dHJfdCB0YWlsTWFya2VyVmFsdWUgPSBzdGF0aWNfY2FzdDxpbnRwdHJfdD4odW5saWtlbHlWYWx1
ZSk7CiAgICAgICAgIHN0YXRpYyBKU09iamVjdCogdGFpbE1hcmtlcigpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SlNPYmplY3QqPih0YWlsTWFya2VyVmFsdWUp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDYsNyArNDQ2LDcgQEAgdm9pZCBlbWl0
UmFuZG9tVGh1bmtJbXBsKEFzc2VtYmx5SGVscGVycwogCiAgICAgLy8gQ29udmVydCBgKDUzYml0
IGRvdWJsZSBpbnRlZ2VyIHZhbHVlKSAvICgxIDw8IDUzKWAgdG8gYCg1M2JpdCBkb3VibGUgaW50
ZWdlciB2YWx1ZSkgKiAoMS4wIC8gKDEgPDwgNTMpKWAuCiAgICAgLy8gSW4gbGF0dGVyIGNhc2Us
IGAxLjAgLyAoMSA8PCA1MylgIHdpbGwgYmVjb21lIGEgZG91YmxlIHZhbHVlIHJlcHJlc2VudGVk
IGFzIChtYW50aXNzYSA9IDAgJiBleHAgPSA5NzAsIGl0IG1lYW5zIDFlLSgyKio1NCkpLgotICAg
IHN0YXRpYyBjb25zdCBkb3VibGUgc2NhbGUgPSAxLjAgLyAoMVVMTCA8PCA1Myk7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBkb3VibGUgc2NhbGUgPSAxLjAgLyAoMVVMTCA8PCA1Myk7CiAKICAgICAv
LyBNdWx0aXBseWluZyAxZS0oMioqNTQpIHdpdGggdGhlIGRvdWJsZSBpbnRlZ2VyIGRvZXMgbm90
IGNoYW5nZSBhbnl0aGluZyBvZiB0aGUgbWFudGlzc2EgcGFydCBvZiB0aGUgZG91YmxlIGludGVn
ZXIuCiAgICAgLy8gSXQganVzdCByZWR1Y2VzIHRoZSBleHAgcGFydCBvZiB0aGUgZ2l2ZW4gNTNi
aXQgZG91YmxlIGludGVnZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUklu
Zm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5j
cHAJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5m
by5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzksMTMgKzM5LDYgQEAgdm9pZCBKU1ZhbHVlUmVnczo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KQogI2VuZGlmCiB9CiAKLS8vIFRoaXMgaXMgaW4gdGhlIC5jcHAg
ZmlsZSB0byB3b3JrIGFyb3VuZCBjbGFuZyBpc3N1ZXMuCi0jaWYgQ1BVKFg4Nl82NCkKLWNvbnN0
IEdQUlJlZyBHUFJJbmZvOjpwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJs
ZXI6OnNfc2NyYXRjaFJlZ2lzdGVyOwotI2VsaWYgQ1BVKEFSTTY0KQotY29uc3QgR1BSUmVnIEdQ
UkluZm86OnBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6aXAwOwot
I2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKEFTU0VNQkxF
UikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCShyZXZpc2lvbiAyNTEyNDUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAkod29ya2luZyBjb3B5KQpA
QCAtNDY5LDcgKzQ2OSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IEkgYmVsaWV2ZSB0aGF0
IGFsbCB1c2VzIG9mIHRoaXMgYXJlIGRlYWQgaW4gdGhlIHNlbnNlIHRoYXQgaXQganVzdCBjYXVz
ZXMgdGhlIHNjcmF0Y2gKICAgICAvLyByZWdpc3RlciBhbGxvY2F0b3IgdG8gc2VsZWN0IGEgZGlm
ZmVyZW50IHJlZ2lzdGVyIGFuZCBwb3RlbnRpYWxseSBzcGlsbCB0aGluZ3MuIEl0IHdvdWxkIGJl
IGJldHRlcgogICAgIC8vIGlmIHdlIGluc3RlYWQgaGFkIGEgbW9yZSBleHBsaWNpdCB3YXkgb2Yg
c2F5aW5nIHRoYXQgd2UgZG9uJ3QgaGF2ZSBhIHNjcmF0Y2ggcmVnaXN0ZXIuCi0gICAgc3RhdGlj
IGNvbnN0IEdQUlJlZyBwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyOworI2lmIENQVShYODZfNjQp
CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgcGF0Y2hwb2ludFNjcmF0Y2hSZWdpc3RlciA9
IE1hY3JvQXNzZW1ibGVyOjpzX3NjcmF0Y2hSZWdpc3RlcjsKKyNlbGlmIENQVShBUk02NCkKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyID0gQVJN
NjRSZWdpc3RlcnM6OmlwMDsKKyNlbmRpZgogCiAgICAgc3RhdGljIEdQUlJlZyB0b1JlZ2lzdGVy
KHVuc2lnbmVkIGluZGV4KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkocmV2
aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTg1LDExICsxODUsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHVz
aW5nIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdDsKICAgICAgICAgdXNpbmcgTWFjcm9Bc3NlbWJs
ZXI6OkxhYmVsOwogCi0gICAgICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgcGF0Y2hHZXRCeUlk
RGVmYXVsdFN0cnVjdHVyZSA9IHVudXNlZFBvaW50ZXI7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBp
bnQgcGF0Y2hHZXRCeUlkRGVmYXVsdE9mZnNldCA9IDA7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgdWludHB0cl90IHBhdGNoR2V0QnlJZERlZmF1bHRTdHJ1Y3R1cmUgPSB1bnVzZWRQb2ludGVy
OworICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBwYXRjaEdldEJ5SWREZWZhdWx0T2Zmc2V0
ID0gMDsKICAgICAgICAgLy8gTWFnaWMgbnVtYmVyIC0gaW5pdGlhbCBvZmZzZXQgY2Fubm90IGJl
IHJlcHJlc2VudGFibGUgYXMgYSBzaWduZWQgOGJpdCB2YWx1ZSwgb3IgdGhlIFg4NkFzc2VtYmxl
cgogICAgICAgICAvLyB3aWxsIGNvbXByZXNzIHRoZSBkaXNwbGFjZW1lbnQsIGFuZCB3ZSBtYXkg
bm90IGJlIGFibGUgdG8gZml0IGEgcGF0Y2hlZCBvZmZzZXQuCi0gICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgcGF0Y2hQdXRCeUlkRGVmYXVsdE9mZnNldCA9IDI1NjsKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciBpbnQgcGF0Y2hQdXRCeUlkRGVmYXVsdE9mZnNldCA9IDI1NjsKIAogICAgIHB1Ymxp
YzoKICAgICAgICAgSklUKFZNJiwgQ29kZUJsb2NrKiA9IDAsIHVuc2lnbmVkIGxvb3BPU1JFbnRy
eUJ5dGVjb2RlT2Zmc2V0ID0gMCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1BD
VG9Db2RlT3JpZ2luTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1BDVG9Db2RlT3JpZ2luTWFwLmNwcAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9QQ1RvQ29kZU9yaWdpbk1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgd3JpdGUoVCBpdGVtKQogICAgIHsKICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQobV9vZmZzZXQgKyBzaXplb2YoVCkgPD0gbV9tYXhTaXplKTsK
LSAgICAgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgbWFzayA9IHN0ZDo6bnVtZXJpY19saW1pdHM8
dWludDhfdD46Om1heCgpOworICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgbWFzayA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDhfdD46Om1heCgpOwogICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgc2l6ZW9mKFQpOyBpKyspIHsKICAgICAgICAgICAgICoobV9idWZmZXIg
KyBtX29mZnNldCkgPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtICYgbWFzayk7CiAgICAgICAg
ICAgICBpdGVtID0gaXRlbSA+PiAoc2l6ZW9mKHVpbnQ4X3QpICogOCk7CkBAIC0xNDUsOCArMTQ1
LDggQEAgdm9pZCBQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXI6OmFwcGVuZEl0ZQogfQogCiAKLXN0
YXRpYyBjb25zdCB1aW50OF90IHNlbnRpbmVsUENEZWx0YSA9IDA7Ci1zdGF0aWMgY29uc3QgaW50
OF90IHNlbnRpbmVsQnl0ZWNvZGVEZWx0YSA9IDA7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3Qg
c2VudGluZWxQQ0RlbHRhID0gMDsKK3N0YXRpYyBjb25zdGV4cHIgaW50OF90IHNlbnRpbmVsQnl0
ZWNvZGVEZWx0YSA9IDA7CiAKIFBDVG9Db2RlT3JpZ2luTWFwOjpQQ1RvQ29kZU9yaWdpbk1hcChQ
Q1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImJiBidWlsZGVyLCBMaW5rQnVmZmVyJiBsaW5rQnVmZmVy
KQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5rSklU
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRo
dW5rSklULmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
U3BlY2lhbGl6ZWRUaHVua0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3BlY2lhbGl6ZWRUaHVua0pJVCA6IHB1YmxpYyBK
U0ludGVyZmFjZUpJVCB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgY29uc3QgaW50IFRo
aXNBcmd1bWVudCA9IC0xOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBUaGlzQXJndW1l
bnQgPSAtMTsKICAgICAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVChWTSYgdm0sIGludCBleHBlY3Rl
ZEFyZ0NvdW50KQogICAgICAgICAgICAgOiBKU0ludGVyZmFjZUpJVCgmdm0pCiAgICAgICAgIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAJ
KHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5l
cmF0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTY2LDcgKzk2Niw3IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gcm8KICAgICAgICAgZG91YmxlUmVzdWx0LmFwcGVu
ZChqaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbCwgU3BlY2lhbGl6
ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSkpOwogCiAg
ICAgICAgIGppdC5jZWlsRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNwZWNp
YWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwotICAgICAgICBzdGF0aWMgY29uc3QgZG91YmxlIGhh
bGZDb25zdGFudCA9IC0wLjU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhhbGZD
b25zdGFudCA9IC0wLjU7CiAgICAgICAgIGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpU
cnVzdGVkSW1tUHRyKCZoYWxmQ29uc3RhbnQpLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1Qy
KTsKICAgICAgICAgaml0LmFkZERvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QxLCBT
cGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QyKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1
bXAgc2hvdWxkUm91bmREb3duID0gaml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6RG91
YmxlR3JlYXRlclRoYW4sIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDIsIFNwZWNpYWxpemVk
VGh1bmtKSVQ6OmZwUmVnVDApOwpAQCAtOTc1LDcgKzk3NSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKSVRUaHVua1B0clRhZz4gcm8KICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgY29u
dGludWF0aW9uID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBzaG91bGRSb3VuZERvd24ubGluaygm
aml0KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBvbmVDb25zdGFudCA9IDEuMDsKKyAg
ICAgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgb25lQ29uc3RhbnQgPSAxLjA7CiAgICAgICAg
IGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZvbmVDb25zdGFu
dCksIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDIpOwogICAgICAgICBqaXQuc3ViRG91Ymxl
KFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVn
VDIsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9VbnVzZWRQb2ludGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBjb25zdCB1aW50cHRyX3Qg
dW51c2VkUG9pbnRlciA9IDB4ZDFlN2JlZWY7CitzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCB1
bnVzZWRQb2ludGVyID0gMHhkMWU3YmVlZjsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmgJKHJldmlzaW9uIDI1MTI0NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuaAkod29ya2luZyBjb3B5
KQpAQCAtMTk3LDE5ICsxOTcsMTkgQEAgQUxXQVlTX0lOTElORSB2b2lkKiBnZXRDb2RlUHRyKEpT
Qzo6RW5jbwogCiAjaWYgRU5BQkxFKEpJVCkKIHN0cnVjdCBSZWdpc3RlcnMgewotICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcGNHUFIgPSBHUFJJbmZvOjpyZWdUNDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEdQUlJlZyBwY0dQUiA9IEdQUkluZm86OnJlZ1Q0OwogCiAjaWYgQ1BVKFg4Nl82NCkgJiYg
IU9TKFdJTkRPV1MpCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBtZXRhZGF0YVRhYmxlR1BSID0g
R1BSSW5mbzo6cmVnQ1MxOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcGJHUFIgPSBHUFJJbmZv
OjpyZWdDUzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbWV0YWRhdGFUYWJsZUdQUiA9
IEdQUkluZm86OnJlZ0NTMTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBwYkdQUiA9IEdQ
UkluZm86OnJlZ0NTMjsKICNlbGlmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCi0gICAgc3Rh
dGljIGNvbnN0IEdQUlJlZyBtZXRhZGF0YVRhYmxlR1BSID0gR1BSSW5mbzo6cmVnQ1MzOwotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcGJHUFIgPSBHUFJJbmZvOjpyZWdDUzQ7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBHUFJSZWcgbWV0YWRhdGFUYWJsZUdQUiA9IEdQUkluZm86OnJlZ0NTMzsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBwYkdQUiA9IEdQUkluZm86OnJlZ0NTNDsKICNlbGlm
IENQVShBUk02NCkKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG1ldGFkYXRhVGFibGVHUFIgPSBH
UFJJbmZvOjpyZWdDUzY7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBwYkdQUiA9IEdQUkluZm86
OnJlZ0NTNzsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBtZXRhZGF0YVRhYmxlR1BSID0g
R1BSSW5mbzo6cmVnQ1M2OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHBiR1BSID0gR1BS
SW5mbzo6cmVnQ1M3OwogI2VsaWYgQ1BVKE1JUFMpIHx8IENQVShBUk1fVEhVTUIyKQotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgbWV0YWRhdGFUYWJsZUdQUiA9IEdQUkluZm86OnJlZ0NTMDsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBtZXRhZGF0YVRhYmxlR1BSID0gR1BSSW5mbzo6cmVn
Q1MwOwogI2VuZGlmCiB9OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRQQ1Jhbmdlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFBDUmFuZ2VzLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3
LDcgQEAgQUxXQVlTX0lOTElORSBib29sIGlzTExJbnRQQyh2b2lkKiBwYykKIH0KIAogI2lmICFF
TkFCTEUoQ19MT09QKQotc3RhdGljIGNvbnN0IEdQUlJlZyBMTEludFBDID0gR1BSSW5mbzo6cmVn
VDQ7CitzdGF0aWMgY29uc3RleHByIEdQUlJlZyBMTEludFBDID0gR1BSSW5mbzo6cmVnVDQ7CiAj
ZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9MZXhlci5oCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL0xleGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5NSw3ICsxOTUsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBmaWxsVG9rZW5JbmZvKEpTVG9rZW4qLCBKU1Rva2VuVHlwZSwg
aW50IGxpbmVOdW1iZXIsIGludCBlbmRPZmZzZXQsIGludCBsaW5lU3RhcnRPZmZzZXQsIEpTVGV4
dFBvc2l0aW9uIGVuZFBvc2l0aW9uKTsKIAotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW5pdGlh
bFJlYWRCdWZmZXJDYXBhY2l0eSA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGlu
aXRpYWxSZWFkQnVmZmVyQ2FwYWNpdHkgPSAzMjsKIAogICAgIGludCBtX2xpbmVOdW1iZXI7CiAg
ICAgaW50IG1fbGFzdExpbmVOdW1iZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9O
b2Rlcy5oCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0OTIsNyArMjQ5Miw3IEBAIG5hbWVzcGFjZSBK
U0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3dpdGNoSW5mbzo6U3dpdGNoVHlwZSB0cnlU
YWJsZVN3aXRjaChWZWN0b3I8RXhwcmVzc2lvbk5vZGUqLCA4PiYgbGl0ZXJhbFZlY3RvciwgaW50
MzJfdCYgbWluX251bSwgaW50MzJfdCYgbWF4X251bSk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3Qgc190YWJsZVN3aXRjaE1pbmltdW0gPSAzOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IHNpemVfdCBzX3RhYmxlU3dpdGNoTWluaW11bSA9IDM7CiAgICAgICAgIENsYXVzZUxpc3ROb2Rl
KiBtX2xpc3QxOwogICAgICAgICBDYXNlQ2xhdXNlTm9kZSogbV9kZWZhdWx0Q2xhdXNlOwogICAg
ICAgICBDbGF1c2VMaXN0Tm9kZSogbV9saXN0MjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
OCArMzEsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgU2Vjb25kcyBDb2RlQ2FjaGVN
YXA6OndvcmtpbmdTZXRUaW1lID0gMTBfczsKLQogdm9pZCBDb2RlQ2FjaGVNYXA6OnBydW5lU2xv
d0Nhc2UoKQogewogICAgIG1fbWluQ2FwYWNpdHkgPSBzdGQ6Om1heChtX3NpemUgLSBtX3NpemVB
dExhc3RQcnVuZSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oMCkpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzksMTggKzE3OSwxOCBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhpcyBjb25zdGFudCBmYWN0b3Ig
Ymlhc2VzIGNhY2hlIGNhcGFjaXR5IHRvd2FyZCBhbGxvd2luZyBhIG1pbmltdW0KICAgICAvLyB3
b3JraW5nIHNldCB0byBlbnRlciB0aGUgY2FjaGUgYmVmb3JlIGl0IHN0YXJ0cyBldmljdGluZy4K
LSAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyB3b3JraW5nU2V0VGltZTsKLSAgICBzdGF0aWMgY29u
c3QgaW50NjRfdCB3b3JraW5nU2V0TWF4Qnl0ZXMgPSAxNjAwMDAwMDsKLSAgICBzdGF0aWMgY29u
c3Qgc2l6ZV90IHdvcmtpbmdTZXRNYXhFbnRyaWVzID0gMjAwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIFNlY29uZHMgd29ya2luZ1NldFRpbWUgPSAxMF9zOworICAgIHN0YXRpYyBjb25zdGV4cHIg
aW50NjRfdCB3b3JraW5nU2V0TWF4Qnl0ZXMgPSAxNjAwMDAwMDsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIHNpemVfdCB3b3JraW5nU2V0TWF4RW50cmllcyA9IDIwMDA7CiAKICAgICAvLyBUaGlzIGNv
bnN0YW50IGZhY3RvciBiaWFzZXMgY2FjaGUgY2FwYWNpdHkgdG93YXJkIHJlY2VudCBhY3Rpdml0
eS4gV2UKICAgICAvLyB3YW50IHRvIGFkYXB0IHRvIGNoYW5naW5nIHdvcmtsb2Fkcy4KLSAgICBz
dGF0aWMgY29uc3QgaW50NjRfdCByZWNlbmN5QmlhcyA9IDQ7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBpbnQ2NF90IHJlY2VuY3lCaWFzID0gNDsKIAogICAgIC8vIFRoaXMgY29uc3RhbnQgZmFjdG9y
IHRyZWF0cyBhIHNhbXBsZWQgZXZlbnQgZm9yIG9uZSBvbGQgb2JqZWN0IGFzIGlmIGl0CiAgICAg
Ly8gaGFwcGVuZWQgZm9yIG1hbnkgb2xkIG9iamVjdHMuIE1vc3Qgb2xkIG9iamVjdHMgYXJlIGV2
aWN0ZWQgYmVmb3JlIHdlIGNhbgogICAgIC8vIHNhbXBsZSB0aGVtLCBzbyB3ZSBuZWVkIHRvIGV4
dHJhcG9sYXRlIGZyb20gdGhlIG9uZXMgd2UgZG8gc2FtcGxlLgotICAgIHN0YXRpYyBjb25zdCBp
bnQ2NF90IG9sZE9iamVjdFNhbXBsaW5nTXVsdGlwbGllciA9IDMyOworICAgIHN0YXRpYyBjb25z
dGV4cHIgaW50NjRfdCBvbGRPYmplY3RTYW1wbGluZ011bHRpcGxpZXIgPSAzMjsKIAogICAgIHNp
emVfdCBudW1iZXJPZkVudHJpZXMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+
KG1fbWFwLnNpemUoKSk7IH0KICAgICBib29sIGNhblBydW5lUXVpY2tseSgpIGNvbnN0IHsgcmV0
dXJuIG51bWJlck9mRW50cmllcygpIDwgd29ya2luZ1NldE1heEVudHJpZXM7IH0KQEAgLTI0Mywy
MCArMjQzLDIwIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ2FjaGVUeXBlcyAKIAog
dGVtcGxhdGUgPD4gc3RydWN0IENhY2hlVHlwZXM8VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrPiB7
CiAgICAgdHlwZWRlZiBKU0M6OlByb2dyYW1Ob2RlIFJvb3ROb2RlOwotICAgIHN0YXRpYyBjb25z
dCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpQcm9ncmFtVHlwZTsK
LSAgICBzdGF0aWMgY29uc3QgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJjZVBhcnNl
TW9kZTo6UHJvZ3JhbU1vZGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3VyY2VDb2RlVHlwZSBj
b2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpQcm9ncmFtVHlwZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1N
b2RlOwogfTsKIAogdGVtcGxhdGUgPD4gc3RydWN0IENhY2hlVHlwZXM8VW5saW5rZWRFdmFsQ29k
ZUJsb2NrPiB7CiAgICAgdHlwZWRlZiBKU0M6OkV2YWxOb2RlIFJvb3ROb2RlOwotICAgIHN0YXRp
YyBjb25zdCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpFdmFsVHlw
ZTsKLSAgICBzdGF0aWMgY29uc3QgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJjZVBh
cnNlTW9kZTo6UHJvZ3JhbU1vZGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3VyY2VDb2RlVHlw
ZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpFdmFsVHlwZTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OlByb2dyYW1N
b2RlOwogfTsKIAogdGVtcGxhdGUgPD4gc3RydWN0IENhY2hlVHlwZXM8VW5saW5rZWRNb2R1bGVQ
cm9ncmFtQ29kZUJsb2NrPiB7CiAgICAgdHlwZWRlZiBKU0M6Ok1vZHVsZVByb2dyYW1Ob2RlIFJv
b3ROb2RlOwotICAgIHN0YXRpYyBjb25zdCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSA9IFNvdXJj
ZUNvZGVUeXBlOjpNb2R1bGVUeXBlOwotICAgIHN0YXRpYyBjb25zdCBTb3VyY2VQYXJzZU1vZGUg
cGFyc2VNb2RlID0gU291cmNlUGFyc2VNb2RlOjpNb2R1bGVFdmFsdWF0ZU1vZGU7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpN
b2R1bGVUeXBlOworICAgIHN0YXRpYyBjb25zdGV4cHIgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9k
ZSA9IFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlRXZhbHVhdGVNb2RlOwogfTsKIAogdGVtcGxhdGUg
PGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGUgPSBTY3Jp
cHRFeGVjdXRhYmxlPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJ
bnN0YW5jZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vy
cm9ySW5zdGFuY2UuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU0Rlc3RydWN0
aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBC
YXNlOwotICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0
UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgZW51bSBTb3VyY2VUZXh0V2hlcmVF
cnJvck9jY3VycmVkIHsgRm91bmRFeGFjdFNvdXJjZSwgRm91bmRBcHByb3hpbWF0ZVNvdXJjZSB9
OwogICAgIHR5cGVkZWYgU3RyaW5nICgqU291cmNlQXBwZW5kZXIpIChjb25zdCBTdHJpbmcmIG9y
aWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSwgU291
cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0FzeW5jRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FzeW5jRnVuY3Rpb24uaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0Z1bmN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgSlNBc3luY0Z1bmN0aW9uIGZpbmFsIDogcHVibGlj
IEpTRgogcHVibGljOgogICAgIHR5cGVkZWYgSlNGdW5jdGlvbiBCYXNlOwogCi0gICAgY29uc3Qg
c3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVj
dHVyZUZsYWdzOwogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0
aW9uLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3
IEBAIGNsYXNzIEpTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiBmaW5hbCA6IHAKIHB1YmxpYzoKICAg
ICB1c2luZyBCYXNlID0gSlNGdW5jdGlvbjsKIAotICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAg
IERFQ0xBUkVfRVhQT1JUX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQm91bmRGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMzksNyArMzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc0luc3RhbmNl
CiBjbGFzcyBKU0JvdW5kRnVuY3Rpb24gZmluYWwgOiBwdWJsaWMgSlNGdW5jdGlvbiB7CiBwdWJs
aWM6CiAgICAgdHlwZWRlZiBKU0Z1bmN0aW9uIEJhc2U7Ci0gICAgY29uc3Qgc3RhdGljIHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgJiB+SW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgJiB+SW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0
YW5jZTsKICAgICBzdGF0aWNfYXNzZXJ0KFN0cnVjdHVyZUZsYWdzICYgSW1wbGVtZW50c0hhc0lu
c3RhbmNlLCAiIik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3BhY2VB
Y2Nlc3MgbW9kZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2FsbGVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYWxsZWUu
aAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
YWxsZWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBKU0NhbGxlZSA6
IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9uRmlu
YWxPYmplY3QgQmFzZTsKLSAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3Mg
PSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSW1wbGVtZW50c0hhc0luc3RhbmNl
IHwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZTsKIAogICAgIHN0YXRpYyBKU0NhbGxlZSog
Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTY29wZSogc2Nv
cGUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAg
ICB9CiAgICAgCiAgICAgdHlwZWRlZiBKU0NhbGxlZSBCYXNlOwotICAgIGNvbnN0IHN0YXRpYyB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IE92ZXJyaWRl
c0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBPdmVycmlkZXNHZXRDYWxsRGF0YTsKIAogICAg
IHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hlY2tlZDxzaXplX3Q+IGlubGluZUNhcGFj
aXR5KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJh
dG9yRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJhdG9yRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNDMsNyArNDMsNyBAQCBjbGFzcyBKU0dlbmVyYXRvckZ1bmN0aW9uIGZpbmFsIDogcHVibGlj
CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTRnVuY3Rpb247CiAKLSAgICBjb25zdCBzdGF0
aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICBz
dGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJl
RmxhZ3M7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5oCShyZXZpc2lv
biAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hdGl2ZVN0ZEZ1
bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSlNOYXRpdmVT
dGRGdW5jdGlvbiBmaW5hbCA6IHB1YmxpYwogcHVibGljOgogICAgIHR5cGVkZWYgSlNGdW5jdGlv
biBCYXNlOwogCi0gICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
Q2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CiAgICAgc3RhdGljIElzb1N1YnNwYWNlKiBz
dWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1J1bkxvb3BUaW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDggKzQ0LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IFNlY29uZHMgSlNSdW5M
b29wVGltZXI6OnNfZGVjYWRlIHsgNjAgKiA2MCAqIDI0ICogMzY1ICogMTAgfTsKLQogc3RhdGlj
IGlubGluZSBKU1J1bkxvb3BUaW1lcjo6TWFuYWdlcjo6RXBvY2hUaW1lIGVwb2NoVGltZShTZWNv
bmRzIGRlbGF5KQogewogI2lmIFVTRShDRikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBPcHRpb25h
bDxTZWNvbmRzPiB0aW1lVW50aWxGaXJlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBzdGF0aWMgY29u
c3QgU2Vjb25kcyBzX2RlY2FkZTsKKyAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgc19kZWNh
ZGUgeyA2MCAqIDYwICogMjQgKiAzNjUgKiAxMCB9OwogICAgIFJlZjxKU0xvY2s+IG1fYXBpTG9j
azsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJv
eHlPYmplY3QuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJveHlPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFz
cyBQcm94eU9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpCiBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKLSAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IE92ZXJyaWRlc0dldENhbGxEYXRhIHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5
U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3BlcnR5
TmFtZXMgfCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmc7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGEgfCBJbnRlcmNlcHRzR2V0
T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lcyB8IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZzsKIAogICAgIHN0YXRp
YyBQcm94eU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB0YXJnZXQsIEpTVmFsdWUgaGFuZGxlcikKICAgICB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCShyZXZpc2lvbiAy
NTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0
IFNlY29uZHMgV2F0Y2hkb2c6Om5vVGltZUxpbWl0IHsgU2Vjb25kczo6aW5maW5pdHkoKSB9Owot
CiBXYXRjaGRvZzo6V2F0Y2hkb2coVk0qIHZtKQogICAgIDogbV92bSh2bSkKICAgICAsIG1fdGlt
ZUxpbWl0KG5vVGltZUxpbWl0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
V2F0Y2hkb2cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
YXRjaGRvZy5oCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9XYXRjaGRvZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGVudGVyZWRWTSgpOwogICAgIHZvaWQgZXhpdGVkVk0oKTsKIAotICAgIHN0YXRp
YyBjb25zdCBTZWNvbmRzIG5vVGltZUxpbWl0OworICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25k
cyBub1RpbWVMaW1pdCA9IFNlY29uZHM6OmluZmluaXR5KCk7CiAKIHByaXZhdGU6CiAgICAgdm9p
ZCBzdGFydFRpbWVyKFNlY29uZHMgdGltZUxpbWl0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmgJKHJldmlzaW9uIDI1
MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBjbGFzcyBXZWJBc3NlbWJseUZ1
bmN0aW9uIGZpbmFsIDogcHVibGljCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFdlYkFzc2Vt
Ymx5RnVuY3Rpb25CYXNlOwogCi0gICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGljIGNv
bnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lkIGRl
c3Ryb3koSlNDZWxsKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseUZ1bmN0aW9uQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmgJKHJldmlzaW9uIDI1MTI0NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlGdW5jdGlv
bkJhc2UgOiBwdWJsaWMgSgogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0Z1bmN0aW9uOwog
Ci0gICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgREVDTEFSRV9JTkZPOwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5V3Jh
cHBlckZ1bmN0aW9uLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDcgKzM4LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24gZmluYWwgOgog
cHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTsKIAotICAg
IGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZs
YWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNl
OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBTdWJz
cGFjZUFjY2VzcyBtb2RlPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3IoVk0m
IHZtKQpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dU
Ri9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMTAtMTcgIE1hcmsgTGFtICA8bWFy
ay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBjb25zdGV4cHIgaW4gbW9yZSBwbGFjZXMg
YW5kIHJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IGV4dGVybmFsIGxpbmthZ2UuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIHJlbW92ZWQgdW51c2Vk
IGxvY2tTcGluTGltaXQgaW4gVGhyZWFkaW5nLmguCisKKyAgICAgICAgKiB3dGYvTUQ1Lmg6Cisg
ICAgICAgICogd3RmL1NIQTEuaDoKKyAgICAgICAgKiB3dGYvU3RhY2tCb3VuZHMuaDoKKyAgICAg
ICAgKiB3dGYvVGhyZWFkaW5nLmg6CisKIDIwMTktMTAtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBpbnRlcm5h
bCBtYWNPUyAxMC4xMyBhbmQgMTAuMTQgYnVpbGRzIGFmdGVyIHIyNTExNzEKSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL01ENS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01ENS5oCShyZXZp
c2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvV1RGL3d0Zi9NRDUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYWRkQnl0
ZXMoY29uc3QgdWludDhfdCogaW5wdXQsIHNpemVfdCBsZW5ndGgpOwogCiAgICAgLy8gU2l6ZSBv
ZiB0aGUgU0hBMSBoYXNoCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBjb25zdCBzaXpl
X3QgaGFzaFNpemUgPSAxNjsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGNvbnN0ZXhw
ciBzaXplX3QgaGFzaFNpemUgPSAxNjsKIAogICAgIC8vIHR5cGUgZm9yIGNvbXB1dGluZyBNRDUg
aGFzaAogICAgIHR5cGVkZWYgc3RkOjphcnJheTx1aW50OF90LCBoYXNoU2l6ZT4gRGlnZXN0OwpJ
bmRleDogU291cmNlL1dURi93dGYvU0hBMS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3Rm
L1NIQTEuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dURi93dGYvU0hBMS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhZGRCeXRlcyhjb25zdCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCk7CiAK
ICAgICAvLyBTaXplIG9mIHRoZSBTSEExIGhhc2gKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3Rh
dGljIGNvbnN0IHNpemVfdCBoYXNoU2l6ZSA9IDIwOworICAgIFdURl9FWFBPUlRfUFJJVkFURSBz
dGF0aWMgY29uc3RleHByIHNpemVfdCBoYXNoU2l6ZSA9IDIwOwogCiAgICAgLy8gdHlwZSBmb3Ig
Y29tcHV0aW5nIFNIQTEgaGFzaAogICAgIHR5cGVkZWYgc3RkOjphcnJheTx1aW50OF90LCBoYXNo
U2l6ZT4gRGlnZXN0OwpJbmRleDogU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCShyZXZpc2lvbiAyNTEyNDUpCisr
KyBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0
MCw3IEBAIGNsYXNzIFN0YWNrQm91bmRzIHsKICAgICAvLyBmdW5jdGlvbnMgd2FzIHNlZW4gdG8g
YmUgYXMgaGlnaCBhcyAyN2suIEhlbmNlLCA2NGsgaXMgY2hvc2VuIGFzIGEKICAgICAvLyBjb25z
ZXJ2YXRpdmUgYXZhaWxhYmlsaXR5IHZhbHVlIHRoYXQgaXMgbm90IHRvbyBsYXJnZSBidXQgY29t
Zm9ydGFibHkKICAgICAvLyBleGNlZWRzIDI3ayB3aXRoIHNvbWUgYnVmZmVyIGZvciBlcnJvci4K
LSAgICBjb25zdCBzdGF0aWMgc2l6ZV90IHNfZGVmYXVsdEF2YWlsYWJpbGl0eURlbHRhID0gNjQg
KiAxMDI0OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHNfZGVmYXVsdEF2YWlsYWJpbGl0
eURlbHRhID0gNjQgKiAxMDI0OwogCiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBTdGFja0RpcmVj
dGlvbiB7IFVwd2FyZCwgRG93bndhcmQgfTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1RocmVhZGlu
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oCShyZXZpc2lvbiAy
NTEyNDUpCisrKyBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAt
MTQzLDcgKzE0Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplQ3VycmVu
dFRocmVhZEludGVybmFsKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwogICAgIHN0YXRpYyB2b2lk
IGluaXRpYWxpemVDdXJyZW50VGhyZWFkRXZlbklmTm9uV1RGQ3JlYXRlZCgpOwogICAgIAotICAg
IFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9ja1NwaW5MaW1pdDsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgeWllbGQoKTsKIAogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBleGNoYW5nZUlzQ29tcGlsYXRpb25UaHJlYWQoYm9v
bCBuZXdWYWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxOS0x
MC0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGNvbnN0
ZXhwciBpbiBtb3JlIHBsYWNlcyBhbmQgcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgZXh0ZXJuYWwg
bGlua2FnZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzExNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMgcGF0Y2ggYWRkcyBubyBuZXcgZnVuY3Rpb25hbGl0
eS4KKworICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHA6CisgICAg
ICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN5bnRoZXRpY1RvdWNoUG9pbnQ6OlN5bnRoZXRpY1Rv
dWNoUG9pbnQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmg6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnByb2plY3RlZEluZXJ0aWFsU2Nyb2xsRGlzdGFuY2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL1JlZ2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxp
Z2h0aW5nLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvVGFibGVMYXlvdXQuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAxOS0xMC0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERlcHJlY2F0ZSBBY3RpdmVE
T01PYmplY3Q6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCShyZXZp
c2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdl
bmVyaWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUZXh0VHJhY2tDdWVHZW5lcmljKTsK
IAogLy8gVGhpcyBkZWZhdWx0IHZhbHVlIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIG9uZSBzcGVj
aWZpZWQgaW4gbWVkaWFDb250cm9sc0FwcGxlLmNzcyBmb3IgLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyCi1jb25zdCBzdGF0aWMgaW50IERFRkFVTFRDQVBU
SU9ORk9OVFNJWkUgPSAxMDsKK3N0YXRpYyBjb25zdGV4cHIgaW50IERFRkFVTFRDQVBUSU9ORk9O
VFNJWkUgPSAxMDsKIAogY2xhc3MgVGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQgZmluYWwg
OiBwdWJsaWMgVlRUQ3VlQm94IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lOTElORShU
ZXh0VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVEN1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9WVFRDdWUuY3BwCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVEN1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDkgQEAgV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKFZUVEN1ZUJveCk7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lN
UEwoVlRUQ3VlKTsKIAogLy8gVGhpcyBjb25zdGFudCBzaG91bGQgY29ycmVzcG9uZCB3aXRoIHRo
ZSBwZXJjZW50YWdlIHJldHVybmVkIGJ5IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRpb25G
b250U2l6ZVNjYWxlQW5kSW1wb3J0YW5jZS4KLWNvbnN0IHN0YXRpYyBkb3VibGUgREVGQVVMVENB
UFRJT05GT05UU0laRVBFUkNFTlRBR0UgPSA1Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgREVG
QVVMVENBUFRJT05GT05UU0laRVBFUkNFTlRBR0UgPSA1OwogCi1zdGF0aWMgY29uc3QgaW50IHVu
ZGVmaW5lZFBvc2l0aW9uID0gLTE7CitzdGF0aWMgY29uc3RleHByIGludCB1bmRlZmluZWRQb3Np
dGlvbiA9IC0xOwogCiBzdGF0aWMgY29uc3QgQ1NTVmFsdWVJRCBkaXNwbGF5V3JpdGluZ01vZGVN
YXBbXSA9IHsKICAgICBDU1NWYWx1ZUhvcml6b250YWxUYiwgQ1NTVmFsdWVWZXJ0aWNhbFJsLCBD
U1NWYWx1ZVZlcnRpY2FsTHIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJ
KHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDExICsyMTYsMTEgQEAgcHVibGljOgogICAgIC8vIFRo
ZSBkZWZhdWx0IHZhbHVlcyBhcmUgYmFzZWQgb24gaHR0cDovL2R2Y3MudzMub3JnL2hnL3dlYmV2
ZW50cy9yYXctZmlsZS90aXAvdG91Y2hldmVudHMuaHRtbAogICAgIGV4cGxpY2l0IFN5bnRoZXRp
Y1RvdWNoUG9pbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKICAgICB7Ci0gICAg
ICAgIGNvbnN0IHN0YXRpYyBpbnQgaWREZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICBjb25zdCBz
dGF0aWMgaW50IHJhZGl1c1lEZWZhdWx0VmFsdWUgPSAxOwotICAgICAgICBjb25zdCBzdGF0aWMg
aW50IHJhZGl1c1hEZWZhdWx0VmFsdWUgPSAxOwotICAgICAgICBjb25zdCBzdGF0aWMgZmxvYXQg
cm90YXRpb25BbmdsZURlZmF1bHRWYWx1ZSA9IDAuMGY7Ci0gICAgICAgIGNvbnN0IHN0YXRpYyBm
bG9hdCBmb3JjZURlZmF1bHRWYWx1ZSA9IDEuMGY7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
aW50IGlkRGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgcmFk
aXVzWURlZmF1bHRWYWx1ZSA9IDE7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IHJhZGl1
c1hEZWZhdWx0VmFsdWUgPSAxOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGZsb2F0IHJvdGF0
aW9uQW5nbGVEZWZhdWx0VmFsdWUgPSAwLjBmOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGZs
b2F0IGZvcmNlRGVmYXVsdFZhbHVlID0gMS4wZjsKIAogICAgICAgICBtX2lkID0gaWREZWZhdWx0
VmFsdWU7IC8vIFRoZXJlIGlzIG9ubHkgb25lIGFjdGl2ZSBUb3VjaFBvaW50LgogICAgICAgICBt
X3NjcmVlblBvcyA9IGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVUcmVlLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVU
cmVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgVHJlZVNjb3BlOwog
Y2xhc3MgRnJhbWVUcmVlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFtZVRyZWUpOwog
cHVibGljOgotICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBpbnZhbGlkQ291bnQgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oLTEpOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaW52YWxp
ZENvdW50ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KC0xKTsKIAogICAgIEZyYW1lVHJlZShGcmFt
ZSYgdGhpc0ZyYW1lLCBGcmFtZSogcGFyZW50RnJhbWUpCiAgICAgICAgIDogbV90aGlzRnJhbWUo
dGhpc0ZyYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
TW9tZW50dW1DYWxjdWxhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwCShyZXZpc2lvbiAyNTEy
NDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNh
bGN1bGF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHN0YXRpYyBpbmxp
bmUgZmxvYXQgcHJvamVjdGVkSW5lcnRpYWxTY3IKICAgICAvLyBieSBtdWx0aXBseWluZyB0aGUg
aW5pdGlhbCB3aGVlbCBkZWx0YSBieSBhIGNvbnN0YW50IGZhY3Rvci4gQnkgcnVubmluZyBhIGZl
dyBleHBlcmltZW50cyAoaS5lLiBsb2dnaW5nIHNjcm9sbCBkZXN0aW5hdGlvbiBhbmQgaW5pdGlh
bAogICAgIC8vIHdoZWVsIGRlbHRhIGZvciBtYW55IHNjcm9sbCBnZXN0dXJlcykgd2UgZGV0ZXJt
aW5lZCB0aGF0IHRoaXMgaXMgYSByZWFzb25hYmxlIHdheSB0byBhcHByb3hpbWF0ZSB3aGVyZSBz
Y3JvbGxpbmcgd2lsbCB0YWtlIHVzIHdpdGhvdXQKICAgICAvLyB1c2luZyBfTlNTY3JvbGxpbmdN
b21lbnR1bUNhbGN1bGF0b3IuCi0gICAgY29uc3Qgc3RhdGljIGRvdWJsZSBpbmVydGlhbFNjcm9s
bFByZWRpY3Rpb25GYWN0b3IgPSAxNi43OworICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGlu
ZXJ0aWFsU2Nyb2xsUHJlZGljdGlvbkZhY3RvciA9IDE2Ljc7CiAgICAgcmV0dXJuIGluZXJ0aWFs
U2Nyb2xsUHJlZGljdGlvbkZhY3RvciAqIGluaXRpYWxXaGVlbERlbHRhOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0
dGluZ3MuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcg
QEAgc3RydWN0IEZvdXJDaGFyYWN0ZXJUYWdIYXNoVHJhaXRzIDogV1RGOgogICAgIHN0YXRpYyBi
b29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IEZvbnRUYWcmIHZhbHVlKSB7IHJldHVybiB2YWx1ZSA9
PSBGb250VGFnKHt7IGZmLCBmZiwgZmYsIGZmIH19KTsgfQogCiBwcml2YXRlOgotICAgIGNvbnN0
IHN0YXRpYyBjaGFyIGZmID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhGRik7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBjaGFyIGZmID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhGRik7CiB9OwogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
Z2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UmVnaW9uLmNwcAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVnaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ5LDE0ICsyNDksMTQgQEAg
Ym9vbCBSZWdpb246OlNoYXBlOjpjb21wYXJlU2hhcGVzKGNvbnN0IAogfQogCiBzdHJ1Y3QgUmVn
aW9uOjpTaGFwZTo6Q29tcGFyZUNvbnRhaW5zT3BlcmF0aW9uIHsKLSAgICBjb25zdCBzdGF0aWMg
Ym9vbCBkZWZhdWx0UmVzdWx0ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgZGVm
YXVsdFJlc3VsdCA9IHRydWU7CiAgICAgaW5saW5lIHN0YXRpYyBib29sIGFPdXRzaWRlQihib29s
JiAvKiByZXN1bHQgKi8pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgaW5saW5lIHN0YXRpYyBib29s
IGJPdXRzaWRlQShib29sJiByZXN1bHQpIHsgcmVzdWx0ID0gZmFsc2U7IHJldHVybiB0cnVlOyB9
CiAgICAgaW5saW5lIHN0YXRpYyBib29sIGFPdmVybGFwc0IoYm9vbCYgLyogcmVzdWx0ICovKSB7
IHJldHVybiBmYWxzZTsgfQogfTsKIAogc3RydWN0IFJlZ2lvbjo6U2hhcGU6OkNvbXBhcmVJbnRl
cnNlY3RzT3BlcmF0aW9uIHsKLSAgICBjb25zdCBzdGF0aWMgYm9vbCBkZWZhdWx0UmVzdWx0ID0g
ZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGRlZmF1bHRSZXN1bHQgPSBmYWxzZTsK
ICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYU91dHNpZGVCKGJvb2wmIC8qIHJlc3VsdCAqLykgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYk91dHNpZGVBKGJvb2wmIC8q
IHJlc3VsdCAqLykgeyByZXR1cm4gZmFsc2U7IH0KICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYU92
ZXJsYXBzQihib29sJiByZXN1bHQpIHsgcmVzdWx0ID0gdHJ1ZTsgcmV0dXJuIHRydWU7IH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUxpZ2h0aW5nLmNwcAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODQsMTUgKzg0LDE1IEBAIGJvb2wgRkVMaWdodGluZzo6c2V0S2VybmVsVW5pdExlbmd0aFkoZmwK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotY29uc3Qgc3RhdGljIGludCBjUGl4ZWxTaXplID0gNDsK
LWNvbnN0IHN0YXRpYyBpbnQgY0FscGhhQ2hhbm5lbE9mZnNldCA9IDM7Ci1jb25zdCBzdGF0aWMg
dWludDhfdCBjT3BhcXVlQWxwaGEgPSBzdGF0aWNfY2FzdDx1aW50OF90PigweEZGKTsKK3N0YXRp
YyBjb25zdGV4cHIgaW50IGNQaXhlbFNpemUgPSA0Oworc3RhdGljIGNvbnN0ZXhwciBpbnQgY0Fs
cGhhQ2hhbm5lbE9mZnNldCA9IDM7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgY09wYXF1ZUFs
cGhhID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oMHhGRik7CiAKIC8vIFRoZXNlIGZhY3RvcnMgYW5k
IHRoZSBub3JtYWwgY29lZmZpY2llbnRzIGNvbWUgZnJvbSB0aGUgdGFibGUgdW5kZXIgaHR0cHM6
Ly93d3cudzMub3JnL1RSL1NWRy9maWx0ZXJzLmh0bWwjZmVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LgotY29uc3Qgc3RhdGljIGZsb2F0IGNGYWN0b3IxZGl2MiA9IC0xIC8gMi5mOwotY29uc3Qgc3Rh
dGljIGZsb2F0IGNGYWN0b3IxZGl2MyA9IC0xIC8gMy5mOwotY29uc3Qgc3RhdGljIGZsb2F0IGNG
YWN0b3IxZGl2NCA9IC0xIC8gNC5mOwotY29uc3Qgc3RhdGljIGZsb2F0IGNGYWN0b3IyZGl2MyA9
IC0yIC8gMy5mOworc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBjRmFjdG9yMWRpdjIgPSAtMSAvIDIu
ZjsKK3N0YXRpYyBjb25zdGV4cHIgZmxvYXQgY0ZhY3RvcjFkaXYzID0gLTEgLyAzLmY7CitzdGF0
aWMgY29uc3RleHByIGZsb2F0IGNGYWN0b3IxZGl2NCA9IC0xIC8gNC5mOworc3RhdGljIGNvbnN0
ZXhwciBmbG9hdCBjRmFjdG9yMmRpdjMgPSAtMiAvIDMuZjsKIAogaW5saW5lIEludFNpemUgRkVM
aWdodGluZzo6TGlnaHRpbmdEYXRhOjp0b3BMZWZ0Tm9ybWFsKGludCBvZmZzZXQpIGNvbnN0CiB7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGFibGVMYXlvdXQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGFibGVMYXlvdXQuaAkocmV2aXNpb24gMjUx
MjQ1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RhYmxlTGF5b3V0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIC8vIEZJWE1F
OiBPbmNlIHdlIGVuYWJsZSBTQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSElDLCB0aGlzIHNob3Vs
ZCBqdXN0IGJlIExheW91dFVuaXQ6Om5lYXJseU1heCgpLgogICAgIC8vIFVudGlsIHRoZW4gdGhv
dWdoLCB1c2luZyBuZWFybHlNYXggY2F1c2VzIG92ZXJmbG93IGluIHNvbWUgdGVzdHMsIHNvIHdl
IGp1c3QgcGljayBhIGxhcmdlIG51bWJlci4KLSAgICBjb25zdCBzdGF0aWMgaW50IHRhYmxlTWF4
V2lkdGggPSAxMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IHRhYmxlTWF4V2lkdGgg
PSAxMDAwMDAwOwogCiAgICAgUmVuZGVyVGFibGUqIG1fdGFibGU7CiB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgJKHJl
dmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
aW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAg
ICAgfTsKIAogICAgIC8vIExpc3Qgb2YgdGhvc2UgZmxhZ3Mgd2hpY2ggcmVxdWlyZSBhY3Rpb25z
IGR1cmluZyB0aGUgZGVzdHJ1Y3Rvci4KLSAgICBjb25zdCBzdGF0aWMgaW50IEFjdGlvbnNOZWVk
ZWQgPSBSZXN0b3JlR3JhcGhpY3NDb250ZXh0IHwgRW5kT3BhY2l0eUxheWVyIHwgRW5kU2hhZG93
TGF5ZXIgfCBFbmRGaWx0ZXJMYXllcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBBY3Rpb25z
TmVlZGVkID0gUmVzdG9yZUdyYXBoaWNzQ29udGV4dCB8IEVuZE9wYWNpdHlMYXllciB8IEVuZFNo
YWRvd0xheWVyIHwgRW5kRmlsdGVyTGF5ZXI7CiAKICAgICBSZW5kZXJFbGVtZW50KiBtX3JlbmRl
cmVyIHsgbnVsbHB0ciB9OwogICAgIFBhaW50SW5mbyogbV9wYWludEluZm8geyBudWxscHRyIH07
CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMC0xNyAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGNvbnN0ZXhwciBpbiBtb3JlIHBs
YWNlcyBhbmQgcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgZXh0ZXJuYWwgbGlua2FnZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzExNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvUGx1Z2luUHJveHlNYWMubW06CisKIDIwMTktMTAtMTcgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEVu
YWJsZSB0aGUgV2ViIEFuaW1hdGlvbnMgSmF2YVNjcmlwdCBBUEkgYnkgZGVmYXVsdApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlz
dFN0b3JlLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3
IEBAIHB1YmxpYzoKICAgICAvLyBBbHNvIHVwZGF0ZSBDb250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0
Q29udGVudFJ1bGVMaXN0U291cmNlIHRvIGJlIGFibGUgdG8gZmluZCB0aGUgb3JpZ2luYWwgSlNP
TgogICAgIC8vIHNvdXJjZSBmcm9tIG9sZCB2ZXJzaW9ucy4KICAgICAvLyBVcGRhdGUgQ29udGVu
dFJ1bGVMaXN0U3RvcmU6OmdldENvbnRlbnRSdWxlTGlzdFNvdXJjZSB3aXRoIHRoaXMuCi0gICAg
Y29uc3Qgc3RhdGljIHVpbnQzMl90IEN1cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lvbiA9
IDEwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgQ3VycmVudENvbnRlbnRSdWxlTGlz
dEZpbGVWZXJzaW9uID0gMTA7CiAKICAgICBzdGF0aWMgQ29udGVudFJ1bGVMaXN0U3RvcmUmIGRl
ZmF1bHRTdG9yZShib29sIGxlZ2FjeUZpbGVuYW1lKTsKICAgICBzdGF0aWMgUmVmPENvbnRlbnRS
dWxlTGlzdFN0b3JlPiBzdG9yZVdpdGhQYXRoKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBhdGgs
IGJvb2wgbGVnYWN5RmlsZW5hbWUpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1hYy5t
bQkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICsz
NCw3IEBACiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaD4KIAotY29uc3Qgc3RhdGljIGRvdWJsZSBmYWRlSW5E
dXJhdGlvbiA9IDAuNTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIGZhZGVJbkR1cmF0aW9uID0g
MC41OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUxMjQ5KQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTAtMTcgIE1hcmsg
TGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBjb25zdGV4cHIgaW4gbW9y
ZSBwbGFjZXMgYW5kIHJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IGV4dGVybmFsIGxpbmthZ2UuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMTUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSXNOYXZpZ2F0aW9uQWN0aW9u
VHJ1c3RlZC5tbToKKwogMjAxOS0xMC0xNyAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlhLmNv
bT4KIAogICAgICAgICBDaGVjayB2YWx1ZXMgb2YgdmFyaWFibGVzIGJlZm9yZSBleHRyYWN0aW5n
IGluZGV4IGluIHBlcmwKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQ
dHIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQ
dHIuY3BwCShyZXZpc2lvbiAyNTEyNDUpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9XZWFrUHRyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYwLDcgKzU2MCw3IEBAIFRFU1QoV1RG
X1dlYWtQdHIsIFdlYWtIYXNoU2V0Q29uc3RPYmplY3QKIFRFU1QoV1RGX1dlYWtQdHIsIFdlYWtI
YXNoU2V0RXhwYW5zaW9uKQogewogICAgIHVuc2lnbmVkIGluaXRpYWxDYXBhY2l0eTsKLSAgICBj
b25zdCBzdGF0aWMgdW5zaWduZWQgbWF4TG9hZENhcCA9IDM7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBtYXhMb2FkQ2FwID0gMzsKICAgICB7CiAgICAgICAgIFdlYWtIYXNoU2V0PEJh
c2U+IHdlYWtIYXNoU2V0OwogICAgICAgICBCYXNlIG9iamVjdDsKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0lzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1
c3RlZC5tbQkocmV2aXNpb24gMjUxMjQ1KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsMTEg
KzMxLDExIEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHN0YXRpYyBib29sIGRpZEZp
bmlzaFRlc3Q7Ci1jb25zdCBzdGF0aWMgTlNVUkwgKnRhcmdldFVybCA9IFtbTlNVUkwgYWxsb2Nd
IGluaXRXaXRoU3RyaW5nOkAiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iXTsKLWNvbnN0IHN0YXRp
YyB1bnNpZ25lZCBleHBlY3RlZE1vZGlmaWVyRmxhZ3MgPSAwOwotY29uc3Qgc3RhdGljIGludCBl
eHBlY3RlZEJ1dHRvbk51bWJlciA9IC0yOworc3RhdGljIGNvbnN0IE5TVVJMICp0YXJnZXRVcmwg
PSBbW05TVVJMIGFsbG9jXSBpbml0V2l0aFN0cmluZzpAImh0dHA6Ly93d3cuZXhhbXBsZS5jb20v
Il07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGV4cGVjdGVkTW9kaWZpZXJGbGFncyA9IDA7
CitzdGF0aWMgY29uc3RleHByIGludCBleHBlY3RlZEJ1dHRvbk51bWJlciA9IC0yOwogCi1jb25z
dCBzdGF0aWMgaW50IGV4cGVjdGVkV0tCdXR0b25OdW1iZXIgPSAwOyAvLyB1bmxpa2UgRE9NIHNw
ZWMsIDAgaXMgdGhlIHZhbHVlIGZvciBubyBidXR0b24gaW4gQ29jb2EuCitzdGF0aWMgY29uc3Rl
eHByIGludCBleHBlY3RlZFdLQnV0dG9uTnVtYmVyID0gMDsgLy8gdW5saWtlIERPTSBzcGVjLCAw
IGlzIHRoZSB2YWx1ZSBmb3Igbm8gYnV0dG9uIGluIENvY29hLgogCiBAaW50ZXJmYWNlIE5hdmln
YXRpb25BY3Rpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KIEBl
bmQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>381211</attachid>
            <date>2019-10-17 11:58:25 -0700</date>
            <delta_ts>2019-10-17 15:03:04 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-203115.patch</filename>
            <type>text/plain</type>
            <size>48456</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE5LTEwLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgY29uc3RleHByIGluIG1vcmUgcGxhY2VzIGFuZCByZW1vdmUgc29tZSB1bm5lY2Vzc2FyeSBl
eHRlcm5hbCBsaW5rYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzMTE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAqIGhlYXAvTWFya2VkQmxv
Y2suY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXI6OmFwcGVuZEFQSUJhY2t0cmFjZSk6CisgICAgICAgICogaW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFjay5oOgorICAgICAgICAqIGludGVycHJldGVyL0NMb29wU3RhY2suaDoKKyAgICAg
ICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9TaGFk
b3dDaGlja2VuLmg6CisgICAgICAgICogaml0L0Fzc2VtYmx5SGVscGVycy5jcHA6CisgICAgICAg
IChKU0M6OmVtaXRSYW5kb21UaHVua0ltcGwpOgorICAgICAgICAqIGppdC9HUFJJbmZvLmNwcDoK
KyAgICAgICAgKiBqaXQvR1BSSW5mby5oOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAg
KiBqaXQvUENUb0NvZGVPcmlnaW5NYXAuY3BwOgorICAgICAgICAqIGppdC9TcGVjaWFsaXplZFRo
dW5rSklULmg6CisgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CisgICAgICAgIChK
U0M6OnJvdW5kVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9VbnVzZWRQb2ludGVyLmg6
CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmg6CisgICAgICAgICogbGxpbnQvTExJbnRQQ1Jh
bmdlcy5oOgorICAgICAgICAqIHBhcnNlci9MZXhlci5oOgorICAgICAgICAqIHBhcnNlci9Ob2Rl
cy5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmNwcDoKKyAgICAgICAgKiBydW50aW1l
L0NvZGVDYWNoZS5oOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5oOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNBc3luY0Z1bmN0aW9uLmg6CisgICAgICAgICogcnVudGltZS9KU0FzeW5j
R2VuZXJhdG9yRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTQm91bmRGdW5jdGlvbi5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNDYWxsZWUuaDoKKyAgICAgICAgKiBydW50aW1lL0pTRnVu
Y3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJhdG9yRnVuY3Rpb24uaDoKKyAgICAg
ICAgKiBydW50aW1lL0pTTmF0aXZlU3RkRnVuY3Rpb24uaDoKKyAgICAgICAgKiBydW50aW1lL0pT
UnVuTG9vcFRpbWVyLmNwcDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9KU1J1bkxvb3BUaW1lci5oOgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuaDoKKyAg
ICAgICAgKiBydW50aW1lL1dhdGNoZG9nLmNwcDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAg
ICAgICogcnVudGltZS9XYXRjaGRvZy5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlG
dW5jdGlvbi5oOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbkJhc2UuaDoK
KyAgICAgICAgKiB3YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmg6CisKIDIwMTkt
MTAtMTcgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IHJld29yayBmcm9udGVuZCBhZ2VudCBjb25zdHJ1Y3Rpb24gdG8gYWxsb3cgY29t
bWFuZHMvZXZlbnRzIHRvIGJlIGNvbnRyb2xsZWQgYnkgdGhlIHJlbGF0ZWQgdGFyZ2V0J3MgdHlw
ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0JKHJldmlz
aW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIC0gKEpTT2JqQ0NsYXNzSW5mbyopY2xh
c3NJbmZvRm9yQ2xhc3M6KEMKIAogQGVuZAogCi1zdGF0aWMgY29uc3QgY29uc3RleHByIHVuc2ln
bmVkIEluaXRpYWxCdWZmZXJTaXplIHsgMjU2IH07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVk
IEluaXRpYWxCdWZmZXJTaXplIHsgMjU2IH07CiAKIC8vIERlZmF1bHQgY29udmVyc2lvbiBvZiBz
ZWxlY3RvcnMgdG8gcHJvcGVydHkgbmFtZXMuCiAvLyBBbGwgc2VtaWNvbG9ucyBhcmUgcmVtb3Zl
ZCwgbG93ZXJjYXNlIGxldHRlcnMgZm9sbG93aW5nIGEgc2VtaWNvbG9uIGFyZSBjYXBpdGFsaXpl
ZC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5jcHAJKHJl
dmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsNiBAQCBuYW1lc3BhY2UgTWFya2VkQmxv
Y2tJbnRlcm5hbCB7CiBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogfQog
Ci1jb25zdCBzaXplX3QgTWFya2VkQmxvY2s6OmJsb2NrU2l6ZTsKLQogc3RhdGljIGNvbnN0ZXhw
ciBib29sIGNvbXB1dGVCYWxhbmNlID0gZmFsc2U7CiBzdGF0aWMgc2l6ZV90IGJhbGFuY2U7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9u
IDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmpl
Y3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU2LDggKzE1Niw4
IEBAIHZvaWQgSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjoKIAogdm9pZCBKU0ds
b2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OmFwcGVuZEFQSUJhY2t0cmFjZShTY3JpcHRD
YWxsU3RhY2smIGNhbGxTdGFjaykKIHsKLSAgICBzdGF0aWMgY29uc3QgaW50IGZyYW1lc1RvU2hv
dyA9IDMxOwotICAgIHN0YXRpYyBjb25zdCBpbnQgZnJhbWVzVG9Ta2lwID0gMzsgLy8gV1RGR2V0
QmFja3RyYWNlLCBhcHBlbmRBUElCYWNrdHJhY2UsIHJlcG9ydEFQSUV4Y2VwdGlvbi4KKyAgICBz
dGF0aWMgY29uc3RleHByIGludCBmcmFtZXNUb1Nob3cgPSAzMTsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIGludCBmcmFtZXNUb1NraXAgPSAzOyAvLyBXVEZHZXRCYWNrdHJhY2UsIGFwcGVuZEFQSUJh
Y2t0cmFjZSwgcmVwb3J0QVBJRXhjZXB0aW9uLgogCiAgICAgdm9pZCogc2FtcGxlc1tmcmFtZXNU
b1Nob3cgKyBmcmFtZXNUb1NraXBdOwogICAgIGludCBmcmFtZXMgPSBmcmFtZXNUb1Nob3cgKyBm
cmFtZXNUb1NraXA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvU2NyaXB0Q2FsbFN0YWNrLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQw
LDcgKzQwLDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIEpTX0VYUE9SVF9QUklW
QVRFIFNjcmlwdENhbGxTdGFjayA6IHB1YmxpYyBSZWZDb3VudGVkPFNjcmlwdENhbGxTdGFjaz4g
ewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4Q2FsbFN0YWNrU2l6ZVRvQ2Fw
dHVyZSA9IDIwMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhDYWxsU3RhY2tTaXpl
VG9DYXB0dXJlID0gMjAwOwogICAgIAogICAgIHN0YXRpYyBSZWY8U2NyaXB0Q2FsbFN0YWNrPiBj
cmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlKFZlY3RvcjxT
Y3JpcHRDYWxsRnJhbWU+Jik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvQ0xvb3BTdGFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRl
cnByZXRlci9DTG9vcFN0YWNrLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9DTG9vcFN0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcg
KzQ2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENM
b29wU3RhY2spOwogICAgIHB1YmxpYzoKICAgICAgICAgLy8gQWxsb3cgOGsgb2YgZXhjZXNzIHJl
Z2lzdGVycyBiZWZvcmUgd2Ugc3RhcnQgdHJ5aW5nIHRvIHJlYXAgdGhlIHN0YWNrCi0gICAgICAg
IHN0YXRpYyBjb25zdCBwdHJkaWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSA4ICogMTAyNDsKKyAg
ICAgICAgc3RhdGljIGNvbnN0ZXhwciBwdHJkaWZmX3QgbWF4RXhjZXNzQ2FwYWNpdHkgPSA4ICog
MTAyNDsKIAogICAgICAgICBDTG9vcFN0YWNrKFZNJik7CiAgICAgICAgIH5DTG9vcFN0YWNrKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5o
CShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
Q2FsbEZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDIzICs4NCwyMyBAQCBuYW1lc3BhY2Ug
SlNDICB7CiAgICAgc3RydWN0IENhbGxlckZyYW1lQW5kUEMgewogICAgICAgICBhbGlnbmFzKENQ
VVJlZ2lzdGVyKSBDYWxsRnJhbWUqIGNhbGxlckZyYW1lOwogICAgICAgICBhbGlnbmFzKENQVVJl
Z2lzdGVyKSBjb25zdCBJbnN0cnVjdGlvbiogcmV0dXJuUEM7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgc2l6ZUluUmVnaXN0ZXJzID0gMiAqIHNpemVvZihDUFVSZWdpc3RlcikgLyBzaXplb2Yo
UmVnaXN0ZXIpOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBzaXplSW5SZWdpc3RlcnMg
PSAyICogc2l6ZW9mKENQVVJlZ2lzdGVyKSAvIHNpemVvZihSZWdpc3Rlcik7CiAgICAgfTsKICAg
ICBzdGF0aWNfYXNzZXJ0KENhbGxlckZyYW1lQW5kUEM6OnNpemVJblJlZ2lzdGVycyA9PSBzaXpl
b2YoQ2FsbGVyRnJhbWVBbmRQQykgLyBzaXplb2YoUmVnaXN0ZXIpLCAiQ2FsbGVyRnJhbWVBbmRQ
Qzo6c2l6ZUluUmVnaXN0ZXJzIGlzIGluY29ycmVjdC4iKTsKIAogICAgIHN0cnVjdCBDYWxsRnJh
bWVTbG90IHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBjb2RlQmxvY2sgPSBDYWxsZXJGcmFt
ZUFuZFBDOjpzaXplSW5SZWdpc3RlcnM7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgY2FsbGVl
ID0gY29kZUJsb2NrICsgMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBhcmd1bWVudENvdW50
ID0gY2FsbGVlICsgMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCB0aGlzQXJndW1lbnQgPSBh
cmd1bWVudENvdW50ICsgMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBmaXJzdEFyZ3VtZW50
ID0gdGhpc0FyZ3VtZW50ICsgMTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgY29kZUJs
b2NrID0gQ2FsbGVyRnJhbWVBbmRQQzo6c2l6ZUluUmVnaXN0ZXJzOworICAgICAgICBzdGF0aWMg
Y29uc3RleHByIGludCBjYWxsZWUgPSBjb2RlQmxvY2sgKyAxOworICAgICAgICBzdGF0aWMgY29u
c3RleHByIGludCBhcmd1bWVudENvdW50ID0gY2FsbGVlICsgMTsKKyAgICAgICAgc3RhdGljIGNv
bnN0ZXhwciBpbnQgdGhpc0FyZ3VtZW50ID0gYXJndW1lbnRDb3VudCArIDE7CisgICAgICAgIHN0
YXRpYyBjb25zdGV4cHIgaW50IGZpcnN0QXJndW1lbnQgPSB0aGlzQXJndW1lbnQgKyAxOwogICAg
IH07CiAKICAgICAvLyBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHNjcmlwdCBleGVj
dXRpb24uCiAgICAgLy8gUGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byBtb3N0IGZ1bmN0
aW9ucy4KICAgICBjbGFzcyBDYWxsRnJhbWUgOiBwcml2YXRlIFJlZ2lzdGVyIHsKICAgICBwdWJs
aWM6Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgaGVhZGVyU2l6ZUluUmVnaXN0ZXJzID0gQ2Fs
bEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudCArIDE7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIg
aW50IGhlYWRlclNpemVJblJlZ2lzdGVycyA9IENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQg
KyAxOwogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGlu
IHZlcnkgc3BlY2lmaWMgY2lyY3Vtc3RhbmNlcwogICAgICAgICAvLyB3aGVuIHlvdSd2ZSBndWFy
YW50ZWVkIHRoZSBjYWxsZWUgY2FuJ3QgYmUgYSBXYXNtIGNhbGxlZSwgYW5kIGNhbgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1NoYWRvd0NoaWNrZW4uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvU2hhZG93Q2hpY2tlbi5o
CShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
U2hhZG93Q2hpY2tlbi5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw5ICs3Nyw5IEBAIHB1YmxpYzoK
ICAgICAgICAgewogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBzdGF0aWMgY29uc3QgY29u
c3RleHByIHVuc2lnbmVkIHVubGlrZWx5VmFsdWUgPSAweDdhMTE7CisgICAgICAgIHN0YXRpYyBj
b25zdGV4cHIgdW5zaWduZWQgdW5saWtlbHlWYWx1ZSA9IDB4N2ExMTsKIAotICAgICAgICBzdGF0
aWMgY29uc3QgY29uc3RleHByIGludHB0cl90IHRhaWxNYXJrZXJWYWx1ZSA9IHN0YXRpY19jYXN0
PGludHB0cl90Pih1bmxpa2VseVZhbHVlKTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnRw
dHJfdCB0YWlsTWFya2VyVmFsdWUgPSBzdGF0aWNfY2FzdDxpbnRwdHJfdD4odW5saWtlbHlWYWx1
ZSk7CiAgICAgICAgIHN0YXRpYyBKU09iamVjdCogdGFpbE1hcmtlcigpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8SlNPYmplY3QqPih0YWlsTWFya2VyVmFsdWUp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNw
cAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJs
eUhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDYsNyArNDQ2LDcgQEAgdm9pZCBlbWl0
UmFuZG9tVGh1bmtJbXBsKEFzc2VtYmx5SGVscGVycwogCiAgICAgLy8gQ29udmVydCBgKDUzYml0
IGRvdWJsZSBpbnRlZ2VyIHZhbHVlKSAvICgxIDw8IDUzKWAgdG8gYCg1M2JpdCBkb3VibGUgaW50
ZWdlciB2YWx1ZSkgKiAoMS4wIC8gKDEgPDwgNTMpKWAuCiAgICAgLy8gSW4gbGF0dGVyIGNhc2Us
IGAxLjAgLyAoMSA8PCA1MylgIHdpbGwgYmVjb21lIGEgZG91YmxlIHZhbHVlIHJlcHJlc2VudGVk
IGFzIChtYW50aXNzYSA9IDAgJiBleHAgPSA5NzAsIGl0IG1lYW5zIDFlLSgyKio1NCkpLgotICAg
IHN0YXRpYyBjb25zdCBkb3VibGUgc2NhbGUgPSAxLjAgLyAoMVVMTCA8PCA1Myk7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBkb3VibGUgc2NhbGUgPSAxLjAgLyAoMVVMTCA8PCA1Myk7CiAKICAgICAv
LyBNdWx0aXBseWluZyAxZS0oMioqNTQpIHdpdGggdGhlIGRvdWJsZSBpbnRlZ2VyIGRvZXMgbm90
IGNoYW5nZSBhbnl0aGluZyBvZiB0aGUgbWFudGlzc2EgcGFydCBvZiB0aGUgZG91YmxlIGludGVn
ZXIuCiAgICAgLy8gSXQganVzdCByZWR1Y2VzIHRoZSBleHAgcGFydCBvZiB0aGUgZ2l2ZW4gNTNi
aXQgZG91YmxlIGludGVnZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUklu
Zm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5j
cHAJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5m
by5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzksMTMgKzM5LDYgQEAgdm9pZCBKU1ZhbHVlUmVnczo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KQogI2VuZGlmCiB9CiAKLS8vIFRoaXMgaXMgaW4gdGhlIC5jcHAg
ZmlsZSB0byB3b3JrIGFyb3VuZCBjbGFuZyBpc3N1ZXMuCi0jaWYgQ1BVKFg4Nl82NCkKLWNvbnN0
IEdQUlJlZyBHUFJJbmZvOjpwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyID0gTWFjcm9Bc3NlbWJs
ZXI6OnNfc2NyYXRjaFJlZ2lzdGVyOwotI2VsaWYgQ1BVKEFSTTY0KQotY29uc3QgR1BSUmVnIEdQ
UkluZm86OnBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXIgPSBBUk02NFJlZ2lzdGVyczo6aXAwOwot
I2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRU5BQkxFKEFTU0VNQkxF
UikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCShyZXZpc2lvbiAyNTEyNDUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaAkod29ya2luZyBjb3B5KQpA
QCAtNDY5LDcgKzQ2OSw3IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogSSBiZWxpZXZlIHRoYXQg
YWxsIHVzZXMgb2YgdGhpcyBhcmUgZGVhZCBpbiB0aGUgc2Vuc2UgdGhhdCBpdCBqdXN0IGNhdXNl
cyB0aGUgc2NyYXRjaAogICAgIC8vIHJlZ2lzdGVyIGFsbG9jYXRvciB0byBzZWxlY3QgYSBkaWZm
ZXJlbnQgcmVnaXN0ZXIgYW5kIHBvdGVudGlhbGx5IHNwaWxsIHRoaW5ncy4gSXQgd291bGQgYmUg
YmV0dGVyCiAgICAgLy8gaWYgd2UgaW5zdGVhZCBoYWQgYSBtb3JlIGV4cGxpY2l0IHdheSBvZiBz
YXlpbmcgdGhhdCB3ZSBkb24ndCBoYXZlIGEgc2NyYXRjaCByZWdpc3Rlci4KLSAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIHBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXI7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBHUFJSZWcgcGF0Y2hwb2ludFNjcmF0Y2hSZWdpc3RlciA9IE1hY3JvQXNzZW1ibGVyOjpz
X3NjcmF0Y2hSZWdpc3RlcjsKIAogICAgIHN0YXRpYyBHUFJSZWcgdG9SZWdpc3Rlcih1bnNpZ25l
ZCBpbmRleCkKICAgICB7CkBAIC02NTUsNyArNjU1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBj
b25zdGV4cHIgR1BSUmVnIG5vblByZXNlcnZlZE5vblJldHVybkdQUiA9IEFSTTY0UmVnaXN0ZXJz
Ojp4MjsKICAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBub25QcmVzZXJ2ZWROb25Bcmd1bWVu
dEdQUjAgPSBBUk02NFJlZ2lzdGVyczo6eDg7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcg
bm9uUHJlc2VydmVkTm9uQXJndW1lbnRHUFIxID0gQVJNNjRSZWdpc3RlcnM6Ong5OwotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcGF0Y2hwb2ludFNjcmF0Y2hSZWdpc3RlcjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEdQUlJlZyBwYXRjaHBvaW50U2NyYXRjaFJlZ2lzdGVyID0gQVJNNjRSZWdpc3Rl
cnM6OmlwMDsKIAogICAgIC8vIEdQUlJlZyBtYXBwaW5nIGlzIGRpcmVjdCwgdGhlIG1hY2hpbmUg
cmVnaXN0ZXIgbnVtYmVycyBjYW4KICAgICAvLyBiZSB1c2VkIGRpcmVjdGx5IGFzIGluZGljZXMg
aW50byB0aGUgR1BSIFJlZ2lzdGVyQmFuay4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAko
cmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTg1LDExICsxODUsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHVzaW5nIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdDsKICAgICAgICAgdXNpbmcgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsOwogCi0gICAgICAgIHN0YXRpYyBjb25zdCB1aW50cHRyX3QgcGF0Y2hHZXRC
eUlkRGVmYXVsdFN0cnVjdHVyZSA9IHVudXNlZFBvaW50ZXI7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBpbnQgcGF0Y2hHZXRCeUlkRGVmYXVsdE9mZnNldCA9IDA7CisgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludHB0cl90IHBhdGNoR2V0QnlJZERlZmF1bHRTdHJ1Y3R1cmUgPSB1bnVzZWRQb2lu
dGVyOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBwYXRjaEdldEJ5SWREZWZhdWx0T2Zm
c2V0ID0gMDsKICAgICAgICAgLy8gTWFnaWMgbnVtYmVyIC0gaW5pdGlhbCBvZmZzZXQgY2Fubm90
IGJlIHJlcHJlc2VudGFibGUgYXMgYSBzaWduZWQgOGJpdCB2YWx1ZSwgb3IgdGhlIFg4NkFzc2Vt
YmxlcgogICAgICAgICAvLyB3aWxsIGNvbXByZXNzIHRoZSBkaXNwbGFjZW1lbnQsIGFuZCB3ZSBt
YXkgbm90IGJlIGFibGUgdG8gZml0IGEgcGF0Y2hlZCBvZmZzZXQuCi0gICAgICAgIHN0YXRpYyBj
b25zdCBpbnQgcGF0Y2hQdXRCeUlkRGVmYXVsdE9mZnNldCA9IDI1NjsKKyAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciBpbnQgcGF0Y2hQdXRCeUlkRGVmYXVsdE9mZnNldCA9IDI1NjsKIAogICAgIHB1
YmxpYzoKICAgICAgICAgSklUKFZNJiwgQ29kZUJsb2NrKiA9IDAsIHVuc2lnbmVkIGxvb3BPU1JF
bnRyeUJ5dGVjb2RlT2Zmc2V0ID0gMCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L1BDVG9Db2RlT3JpZ2luTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1BDVG9Db2RlT3JpZ2luTWFwLmNwcAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9QQ1RvQ29kZU9yaWdpbk1hcC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgd3JpdGUoVCBpdGVtKQogICAgIHsK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9vZmZzZXQgKyBzaXplb2YoVCkgPD0gbV9tYXhTaXpl
KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3QgbWFzayA9IHN0ZDo6bnVtZXJpY19saW1p
dHM8dWludDhfdD46Om1heCgpOworICAgICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgbWFz
ayA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDhfdD46Om1heCgpOwogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc2l6ZW9mKFQpOyBpKyspIHsKICAgICAgICAgICAgICoobV9idWZm
ZXIgKyBtX29mZnNldCkgPSBzdGF0aWNfY2FzdDx1aW50OF90PihpdGVtICYgbWFzayk7CiAgICAg
ICAgICAgICBpdGVtID0gaXRlbSA+PiAoc2l6ZW9mKHVpbnQ4X3QpICogOCk7CkBAIC0xNDUsOCAr
MTQ1LDggQEAgdm9pZCBQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXI6OmFwcGVuZEl0ZQogfQogCiAK
LXN0YXRpYyBjb25zdCB1aW50OF90IHNlbnRpbmVsUENEZWx0YSA9IDA7Ci1zdGF0aWMgY29uc3Qg
aW50OF90IHNlbnRpbmVsQnl0ZWNvZGVEZWx0YSA9IDA7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4
X3Qgc2VudGluZWxQQ0RlbHRhID0gMDsKK3N0YXRpYyBjb25zdGV4cHIgaW50OF90IHNlbnRpbmVs
Qnl0ZWNvZGVEZWx0YSA9IDA7CiAKIFBDVG9Db2RlT3JpZ2luTWFwOjpQQ1RvQ29kZU9yaWdpbk1h
cChQQ1RvQ29kZU9yaWdpbk1hcEJ1aWxkZXImJiBidWlsZGVyLCBMaW5rQnVmZmVyJiBsaW5rQnVm
ZmVyKQogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXplZFRodW5r
SklULmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TcGVjaWFsaXpl
ZFRodW5rSklULmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvU3BlY2lhbGl6ZWRUaHVua0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3BlY2lhbGl6ZWRUaHVua0pJVCA6IHB1Ymxp
YyBKU0ludGVyZmFjZUpJVCB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgY29uc3QgaW50
IFRoaXNBcmd1bWVudCA9IC0xOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGludCBUaGlzQXJn
dW1lbnQgPSAtMTsKICAgICAgICAgU3BlY2lhbGl6ZWRUaHVua0pJVChWTSYgdm0sIGludCBleHBl
Y3RlZEFyZ0NvdW50KQogICAgICAgICAgICAgOiBKU0ludGVyZmFjZUpJVCgmdm0pCiAgICAgICAg
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5j
cHAJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTY2LDcgKzk2Niw3IEBAIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gcm8KICAgICAgICAgZG91YmxlUmVzdWx0LmFw
cGVuZChqaXQuYnJhbmNoRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbCwgU3BlY2lh
bGl6ZWRUaHVua0pJVDo6ZnBSZWdUMCwgU3BlY2lhbGl6ZWRUaHVua0pJVDo6ZnBSZWdUMSkpOwog
CiAgICAgICAgIGppdC5jZWlsRG91YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDAsIFNw
ZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEpOwotICAgICAgICBzdGF0aWMgY29uc3QgZG91Ymxl
IGhhbGZDb25zdGFudCA9IC0wLjU7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIGhh
bGZDb25zdGFudCA9IC0wLjU7CiAgICAgICAgIGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tUHRyKCZoYWxmQ29uc3RhbnQpLCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJl
Z1QyKTsKICAgICAgICAgaml0LmFkZERvdWJsZShTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1Qx
LCBTcGVjaWFsaXplZFRodW5rSklUOjpmcFJlZ1QyKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXAgc2hvdWxkUm91bmREb3duID0gaml0LmJyYW5jaERvdWJsZShNYWNyb0Fzc2VtYmxlcjo6
RG91YmxlR3JlYXRlclRoYW4sIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDIsIFNwZWNpYWxp
emVkVGh1bmtKSVQ6OmZwUmVnVDApOwpAQCAtOTc1LDcgKzk3NSw3IEBAIE1hY3JvQXNzZW1ibGVy
Q29kZVJlZjxKSVRUaHVua1B0clRhZz4gcm8KICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
Y29udGludWF0aW9uID0gaml0Lmp1bXAoKTsKIAogICAgICAgICBzaG91bGRSb3VuZERvd24ubGlu
aygmaml0KTsKLSAgICAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBvbmVDb25zdGFudCA9IDEuMDsK
KyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgb25lQ29uc3RhbnQgPSAxLjA7CiAgICAg
ICAgIGppdC5sb2FkRG91YmxlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKCZvbmVDb25z
dGFudCksIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDIpOwogICAgICAgICBqaXQuc3ViRG91
YmxlKFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDEsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZw
UmVnVDIsIFNwZWNpYWxpemVkVGh1bmtKSVQ6OmZwUmVnVDApOwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L1VudXNlZFBvaW50ZXIuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9VbnVzZWRQb2ludGVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBjb25zdCB1aW50cHRy
X3QgdW51c2VkUG9pbnRlciA9IDB4ZDFlN2JlZWY7CitzdGF0aWMgY29uc3RleHByIHVpbnRwdHJf
dCB1bnVzZWRQb2ludGVyID0gMHhkMWU3YmVlZjsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmgJKHJldmlzaW9uIDI1MTI0
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtMTk3LDE5ICsxOTcsMTkgQEAgQUxXQVlTX0lOTElORSB2b2lkKiBnZXRDb2RlUHRy
KEpTQzo6RW5jbwogCiAjaWYgRU5BQkxFKEpJVCkKIHN0cnVjdCBSZWdpc3RlcnMgewotICAgIHN0
YXRpYyBjb25zdCBHUFJSZWcgcGNHUFIgPSBHUFJJbmZvOjpyZWdUNDsKKyAgICBzdGF0aWMgY29u
c3RleHByIEdQUlJlZyBwY0dQUiA9IEdQUkluZm86OnJlZ1Q0OwogCiAjaWYgQ1BVKFg4Nl82NCkg
JiYgIU9TKFdJTkRPV1MpCi0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBtZXRhZGF0YVRhYmxlR1BS
ID0gR1BSSW5mbzo6cmVnQ1MxOwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcGJHUFIgPSBHUFJJ
bmZvOjpyZWdDUzI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBHUFJSZWcgbWV0YWRhdGFUYWJsZUdQ
UiA9IEdQUkluZm86OnJlZ0NTMTsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBwYkdQUiA9
IEdQUkluZm86OnJlZ0NTMjsKICNlbGlmIENQVShYODZfNjQpICYmIE9TKFdJTkRPV1MpCi0gICAg
c3RhdGljIGNvbnN0IEdQUlJlZyBtZXRhZGF0YVRhYmxlR1BSID0gR1BSSW5mbzo6cmVnQ1MzOwot
ICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcGJHUFIgPSBHUFJJbmZvOjpyZWdDUzQ7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBHUFJSZWcgbWV0YWRhdGFUYWJsZUdQUiA9IEdQUkluZm86OnJlZ0NTMzsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBwYkdQUiA9IEdQUkluZm86OnJlZ0NTNDsKICNl
bGlmIENQVShBUk02NCkKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG1ldGFkYXRhVGFibGVHUFIg
PSBHUFJJbmZvOjpyZWdDUzY7Ci0gICAgc3RhdGljIGNvbnN0IEdQUlJlZyBwYkdQUiA9IEdQUklu
Zm86OnJlZ0NTNzsKKyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBtZXRhZGF0YVRhYmxlR1BS
ID0gR1BSSW5mbzo6cmVnQ1M2OworICAgIHN0YXRpYyBjb25zdGV4cHIgR1BSUmVnIHBiR1BSID0g
R1BSSW5mbzo6cmVnQ1M3OwogI2VsaWYgQ1BVKE1JUFMpIHx8IENQVShBUk1fVEhVTUIyKQotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgbWV0YWRhdGFUYWJsZUdQUiA9IEdQUkluZm86OnJlZ0NTMDsK
KyAgICBzdGF0aWMgY29uc3RleHByIEdQUlJlZyBtZXRhZGF0YVRhYmxlR1BSID0gR1BSSW5mbzo6
cmVnQ1MwOwogI2VuZGlmCiB9OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRQQ1Jhbmdlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFBDUmFuZ2VzLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFBDUmFuZ2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcg
KzQ3LDcgQEAgQUxXQVlTX0lOTElORSBib29sIGlzTExJbnRQQyh2b2lkKiBwYykKIH0KIAogI2lm
ICFFTkFCTEUoQ19MT09QKQotc3RhdGljIGNvbnN0IEdQUlJlZyBMTEludFBDID0gR1BSSW5mbzo6
cmVnVDQ7CitzdGF0aWMgY29uc3RleHByIEdQUlJlZyBMTEludFBDID0gR1BSSW5mbzo6cmVnVDQ7
CiAjZW5kaWYKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkxMSW50CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL0xleGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BhcnNlci9MZXhlci5oCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGFyc2VyL0xleGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5NSw3ICsxOTUsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBmaWxsVG9rZW5JbmZvKEpTVG9rZW4qLCBKU1Rva2VuVHlw
ZSwgaW50IGxpbmVOdW1iZXIsIGludCBlbmRPZmZzZXQsIGludCBsaW5lU3RhcnRPZmZzZXQsIEpT
VGV4dFBvc2l0aW9uIGVuZFBvc2l0aW9uKTsKIAotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW5p
dGlhbFJlYWRCdWZmZXJDYXBhY2l0eSA9IDMyOworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90
IGluaXRpYWxSZWFkQnVmZmVyQ2FwYWNpdHkgPSAzMjsKIAogICAgIGludCBtX2xpbmVOdW1iZXI7
CiAgICAgaW50IG1fbGFzdExpbmVOdW1iZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL05vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9Ob2Rlcy5oCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL05vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0OTIsNyArMjQ5Miw3IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgU3dpdGNoSW5mbzo6U3dpdGNoVHlwZSB0
cnlUYWJsZVN3aXRjaChWZWN0b3I8RXhwcmVzc2lvbk5vZGUqLCA4PiYgbGl0ZXJhbFZlY3Rvciwg
aW50MzJfdCYgbWluX251bSwgaW50MzJfdCYgbWF4X251bSk7Ci0gICAgICAgIHN0YXRpYyBjb25z
dCBzaXplX3Qgc190YWJsZVN3aXRjaE1pbmltdW0gPSAzOworICAgICAgICBzdGF0aWMgY29uc3Rl
eHByIHNpemVfdCBzX3RhYmxlU3dpdGNoTWluaW11bSA9IDM7CiAgICAgICAgIENsYXVzZUxpc3RO
b2RlKiBtX2xpc3QxOwogICAgICAgICBDYXNlQ2xhdXNlTm9kZSogbV9kZWZhdWx0Q2xhdXNlOwog
ICAgICAgICBDbGF1c2VMaXN0Tm9kZSogbV9saXN0MjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsOCArMzEsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotY29uc3QgU2Vjb25kcyBDb2RlQ2Fj
aGVNYXA6OndvcmtpbmdTZXRUaW1lID0gMTBfczsKLQogdm9pZCBDb2RlQ2FjaGVNYXA6OnBydW5l
U2xvd0Nhc2UoKQogewogICAgIG1fbWluQ2FwYWNpdHkgPSBzdGQ6Om1heChtX3NpemUgLSBtX3Np
emVBdExhc3RQcnVuZSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oMCkpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzksMTggKzE3OSwxOCBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhpcyBjb25zdGFudCBmYWN0
b3IgYmlhc2VzIGNhY2hlIGNhcGFjaXR5IHRvd2FyZCBhbGxvd2luZyBhIG1pbmltdW0KICAgICAv
LyB3b3JraW5nIHNldCB0byBlbnRlciB0aGUgY2FjaGUgYmVmb3JlIGl0IHN0YXJ0cyBldmljdGlu
Zy4KLSAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyB3b3JraW5nU2V0VGltZTsKLSAgICBzdGF0aWMg
Y29uc3QgaW50NjRfdCB3b3JraW5nU2V0TWF4Qnl0ZXMgPSAxNjAwMDAwMDsKLSAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IHdvcmtpbmdTZXRNYXhFbnRyaWVzID0gMjAwMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIFNlY29uZHMgd29ya2luZ1NldFRpbWUgPSAxMF9zOworICAgIHN0YXRpYyBjb25zdGV4
cHIgaW50NjRfdCB3b3JraW5nU2V0TWF4Qnl0ZXMgPSAxNjAwMDAwMDsKKyAgICBzdGF0aWMgY29u
c3RleHByIHNpemVfdCB3b3JraW5nU2V0TWF4RW50cmllcyA9IDIwMDA7CiAKICAgICAvLyBUaGlz
IGNvbnN0YW50IGZhY3RvciBiaWFzZXMgY2FjaGUgY2FwYWNpdHkgdG93YXJkIHJlY2VudCBhY3Rp
dml0eS4gV2UKICAgICAvLyB3YW50IHRvIGFkYXB0IHRvIGNoYW5naW5nIHdvcmtsb2Fkcy4KLSAg
ICBzdGF0aWMgY29uc3QgaW50NjRfdCByZWNlbmN5QmlhcyA9IDQ7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBpbnQ2NF90IHJlY2VuY3lCaWFzID0gNDsKIAogICAgIC8vIFRoaXMgY29uc3RhbnQgZmFj
dG9yIHRyZWF0cyBhIHNhbXBsZWQgZXZlbnQgZm9yIG9uZSBvbGQgb2JqZWN0IGFzIGlmIGl0CiAg
ICAgLy8gaGFwcGVuZWQgZm9yIG1hbnkgb2xkIG9iamVjdHMuIE1vc3Qgb2xkIG9iamVjdHMgYXJl
IGV2aWN0ZWQgYmVmb3JlIHdlIGNhbgogICAgIC8vIHNhbXBsZSB0aGVtLCBzbyB3ZSBuZWVkIHRv
IGV4dHJhcG9sYXRlIGZyb20gdGhlIG9uZXMgd2UgZG8gc2FtcGxlLgotICAgIHN0YXRpYyBjb25z
dCBpbnQ2NF90IG9sZE9iamVjdFNhbXBsaW5nTXVsdGlwbGllciA9IDMyOworICAgIHN0YXRpYyBj
b25zdGV4cHIgaW50NjRfdCBvbGRPYmplY3RTYW1wbGluZ011bHRpcGxpZXIgPSAzMjsKIAogICAg
IHNpemVfdCBudW1iZXJPZkVudHJpZXMoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxzaXpl
X3Q+KG1fbWFwLnNpemUoKSk7IH0KICAgICBib29sIGNhblBydW5lUXVpY2tseSgpIGNvbnN0IHsg
cmV0dXJuIG51bWJlck9mRW50cmllcygpIDwgd29ya2luZ1NldE1heEVudHJpZXM7IH0KQEAgLTI0
MywyMCArMjQzLDIwIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgQ2FjaGVUeXBlcyAK
IAogdGVtcGxhdGUgPD4gc3RydWN0IENhY2hlVHlwZXM8VW5saW5rZWRQcm9ncmFtQ29kZUJsb2Nr
PiB7CiAgICAgdHlwZWRlZiBKU0M6OlByb2dyYW1Ob2RlIFJvb3ROb2RlOwotICAgIHN0YXRpYyBj
b25zdCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpQcm9ncmFtVHlw
ZTsKLSAgICBzdGF0aWMgY29uc3QgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJjZVBh
cnNlTW9kZTo6UHJvZ3JhbU1vZGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3VyY2VDb2RlVHlw
ZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpQcm9ncmFtVHlwZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OlByb2dy
YW1Nb2RlOwogfTsKIAogdGVtcGxhdGUgPD4gc3RydWN0IENhY2hlVHlwZXM8VW5saW5rZWRFdmFs
Q29kZUJsb2NrPiB7CiAgICAgdHlwZWRlZiBKU0M6OkV2YWxOb2RlIFJvb3ROb2RlOwotICAgIHN0
YXRpYyBjb25zdCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpFdmFs
VHlwZTsKLSAgICBzdGF0aWMgY29uc3QgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSA9IFNvdXJj
ZVBhcnNlTW9kZTo6UHJvZ3JhbU1vZGU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3VyY2VDb2Rl
VHlwZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBlOjpFdmFsVHlwZTsKKyAgICBzdGF0aWMgY29u
c3RleHByIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUgPSBTb3VyY2VQYXJzZU1vZGU6OlByb2dy
YW1Nb2RlOwogfTsKIAogdGVtcGxhdGUgPD4gc3RydWN0IENhY2hlVHlwZXM8VW5saW5rZWRNb2R1
bGVQcm9ncmFtQ29kZUJsb2NrPiB7CiAgICAgdHlwZWRlZiBKU0M6Ok1vZHVsZVByb2dyYW1Ob2Rl
IFJvb3ROb2RlOwotICAgIHN0YXRpYyBjb25zdCBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSA9IFNv
dXJjZUNvZGVUeXBlOjpNb2R1bGVUeXBlOwotICAgIHN0YXRpYyBjb25zdCBTb3VyY2VQYXJzZU1v
ZGUgcGFyc2VNb2RlID0gU291cmNlUGFyc2VNb2RlOjpNb2R1bGVFdmFsdWF0ZU1vZGU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBTb3VyY2VDb2RlVHlwZSBjb2RlVHlwZSA9IFNvdXJjZUNvZGVUeXBl
OjpNb2R1bGVUeXBlOworICAgIHN0YXRpYyBjb25zdGV4cHIgU291cmNlUGFyc2VNb2RlIHBhcnNl
TW9kZSA9IFNvdXJjZVBhcnNlTW9kZTo6TW9kdWxlRXZhbHVhdGVNb2RlOwogfTsKIAogdGVtcGxh
dGUgPGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGUgPSBT
Y3JpcHRFeGVjdXRhYmxlPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJy
b3JJbnN0YW5jZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXJyb3JJbnN0YW5jZSA6IHB1YmxpYyBKU0Rlc3Ry
dWN0aWJsZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVj
dCBCYXNlOwotICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6
OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVz
R2V0UHJvcGVydHlOYW1lczsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgfCBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOwogCiAgICAgZW51bSBTb3VyY2VUZXh0V2hl
cmVFcnJvck9jY3VycmVkIHsgRm91bmRFeGFjdFNvdXJjZSwgRm91bmRBcHByb3hpbWF0ZVNvdXJj
ZSB9OwogICAgIHR5cGVkZWYgU3RyaW5nICgqU291cmNlQXBwZW5kZXIpIChjb25zdCBTdHJpbmcm
IG9yaWdpbmFsTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VUZXh0LCBSdW50aW1lVHlwZSwg
U291cmNlVGV4dFdoZXJlRXJyb3JPY2N1cnJlZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FzeW5jRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FzeW5jRnVuY3Rpb24uaAkocmV2aXNpb24gMjUxMjQ1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0Z1bmN0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgSlNBc3luY0Z1bmN0aW9uIGZpbmFsIDogcHVi
bGljIEpTRgogcHVibGljOgogICAgIHR5cGVkZWYgSlNGdW5jdGlvbiBCYXNlOwogCi0gICAgY29u
c3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOwogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1bmN0aW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBc3luY0dlbmVyYXRvckZ1
bmN0aW9uLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIEpTQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiBmaW5hbCA6IHAKIHB1YmxpYzoK
ICAgICB1c2luZyBCYXNlID0gSlNGdW5jdGlvbjsKIAotICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25l
ZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25z
dGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAog
ICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQm91bmRGdW5jdGlvbi5oCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMzksNyArMzksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGhhc0luc3Rh
bmNlCiBjbGFzcyBKU0JvdW5kRnVuY3Rpb24gZmluYWwgOiBwdWJsaWMgSlNGdW5jdGlvbiB7CiBw
dWJsaWM6CiAgICAgdHlwZWRlZiBKU0Z1bmN0aW9uIEJhc2U7Ci0gICAgY29uc3Qgc3RhdGljIHVu
c2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgJiB+SW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3MgJiB+SW1wbGVtZW50c0RlZmF1bHRIYXNJ
bnN0YW5jZTsKICAgICBzdGF0aWNfYXNzZXJ0KFN0cnVjdHVyZUZsYWdzICYgSW1wbGVtZW50c0hh
c0luc3RhbmNlLCAiIik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBDZWxsVHlwZSwgU3Vic3Bh
Y2VBY2Nlc3MgbW9kZT4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2Fs
bGVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDYWxs
ZWUuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDYWxsZWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBjbGFzcyBKU0NhbGxl
ZSA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTTm9u
RmluYWxPYmplY3QgQmFzZTsKLSAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBT
dHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgSW1wbGVtZW50c0hhc0luc3Rh
bmNlIHwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZTsKIAogICAgIHN0YXRpYyBKU0NhbGxl
ZSogY3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNTY29wZSog
c2NvcGUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5j
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICB9CiAgICAgCiAgICAgdHlwZWRlZiBKU0NhbGxlZSBCYXNlOwotICAgIGNvbnN0IHN0YXRp
YyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IE92ZXJy
aWRlc0dldENhbGxEYXRhOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBPdmVycmlkZXNHZXRDYWxsRGF0YTsKIAog
ICAgIHN0YXRpYyBzaXplX3QgYWxsb2NhdGlvblNpemUoQ2hlY2tlZDxzaXplX3Q+IGlubGluZUNh
cGFjaXR5KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJhdG9yRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dlbmVyYXRvckZ1bmN0aW9uLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJhdG9yRnVuY3Rpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNyArNDMsNyBAQCBjbGFzcyBKU0dlbmVyYXRvckZ1bmN0aW9uIGZpbmFsIDogcHVi
bGljCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IEpTRnVuY3Rpb247CiAKLSAgICBjb25zdCBz
dGF0aWMgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3RydWN0
dXJlRmxhZ3M7CiAKICAgICBERUNMQVJFX0VYUE9SVF9JTkZPOwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05hdGl2ZVN0ZEZ1bmN0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOYXRpdmVTdGRGdW5jdGlvbi5oCShyZXZp
c2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05hdGl2ZVN0
ZEZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgSlNOYXRp
dmVTdGRGdW5jdGlvbiBmaW5hbCA6IHB1YmxpYwogcHVibGljOgogICAgIHR5cGVkZWYgSlNGdW5j
dGlvbiBCYXNlOwogCi0gICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
QmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgQ2VsbFR5cGUsIFN1YnNwYWNlQWNjZXNzIG1vZGU+CiAgICAgc3RhdGljIElzb1N1YnNwYWNl
KiBzdWJzcGFjZUZvcihWTSYgdm0pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1J1bkxvb3BUaW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuY3BwCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1J1bkxvb3BUaW1lci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDggKzQ0LDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNvbnN0IFNlY29uZHMgSlNS
dW5Mb29wVGltZXI6OnNfZGVjYWRlIHsgNjAgKiA2MCAqIDI0ICogMzY1ICogMTAgfTsKLQogc3Rh
dGljIGlubGluZSBKU1J1bkxvb3BUaW1lcjo6TWFuYWdlcjo6RXBvY2hUaW1lIGVwb2NoVGltZShT
ZWNvbmRzIGRlbGF5KQogewogI2lmIFVTRShDRikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUnVuTG9vcFRpbWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNSdW5Mb29wVGltZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSBPcHRp
b25hbDxTZWNvbmRzPiB0aW1lVW50aWxGaXJlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBzdGF0aWMg
Y29uc3QgU2Vjb25kcyBzX2RlY2FkZTsKKyAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgc19k
ZWNhZGUgeyA2MCAqIDYwICogMjQgKiAzNjUgKiAxMCB9OwogICAgIFJlZjxKU0xvY2s+IG1fYXBp
TG9jazsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3h5T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UHJveHlPYmplY3QuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJveHlPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBj
bGFzcyBQcm94eU9iamVjdCBmaW5hbCA6IHB1YmxpYyBKU05vbkZpCiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKLSAgICBjb25zdCBzdGF0aWMgdW5zaWduZWQg
U3RydWN0dXJlRmxhZ3MgPSBCYXNlOjpTdHJ1Y3R1cmVGbGFncyB8IE92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IE92ZXJyaWRlc0dldENhbGxEYXRhIHwgSW50ZXJjZXB0c0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc0dldFByb3Bl
cnR5TmFtZXMgfCBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmc7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzIHwgT3ZlcnJp
ZGVzR2V0T3duUHJvcGVydHlTbG90IHwgT3ZlcnJpZGVzR2V0Q2FsbERhdGEgfCBJbnRlcmNlcHRz
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgT3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZzsKIAogICAgIHN0
YXRpYyBQcm94eU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB0YXJnZXQsIEpTVmFsdWUgaGFuZGxlcikKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvV2F0Y2hkb2cuY3BwCShyZXZpc2lv
biAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9XYXRjaGRvZy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWNv
bnN0IFNlY29uZHMgV2F0Y2hkb2c6Om5vVGltZUxpbWl0IHsgU2Vjb25kczo6aW5maW5pdHkoKSB9
OwotCiBXYXRjaGRvZzo6V2F0Y2hkb2coVk0qIHZtKQogICAgIDogbV92bSh2bSkKICAgICAsIG1f
dGltZUxpbWl0KG5vVGltZUxpbWl0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvV2F0Y2hkb2cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9XYXRjaGRvZy5oCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9XYXRjaGRvZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGVudGVyZWRWTSgpOwogICAgIHZvaWQgZXhpdGVkVk0oKTsKIAotICAgIHN0
YXRpYyBjb25zdCBTZWNvbmRzIG5vVGltZUxpbWl0OworICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vj
b25kcyBub1RpbWVMaW1pdCA9IFNlY29uZHM6OmluZmluaXR5KCk7CiAKIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydFRpbWVyKFNlY29uZHMgdGltZUxpbWl0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseUZ1bmN0aW9uLmgJKHJldmlzaW9u
IDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVu
Y3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBjbGFzcyBXZWJBc3NlbWJs
eUZ1bmN0aW9uIGZpbmFsIDogcHVibGljCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZSA9IFdlYkFz
c2VtYmx5RnVuY3Rpb25CYXNlOwogCi0gICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gQmFzZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNp
Z25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0YXRpYyB2b2lk
IGRlc3Ryb3koSlNDZWxsKik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUZ1bmN0aW9uQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25CYXNlLmgJKHJldmlzaW9uIDI1MTI0NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb25CYXNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlGdW5j
dGlvbkJhc2UgOiBwdWJsaWMgSgogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBKU0Z1bmN0aW9u
OwogCi0gICAgY29uc3Qgc3RhdGljIHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6U3Ry
dWN0dXJlRmxhZ3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgREVDTEFSRV9JTkZPOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseVdyYXBwZXJGdW5jdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5
V3JhcHBlckZ1bmN0aW9uLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5V3JhcHBlckZ1bmN0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgV2ViQXNzZW1ibHlXcmFwcGVyRnVuY3Rpb24gZmluYWwg
OgogcHVibGljOgogICAgIHVzaW5nIEJhc2UgPSBXZWJBc3NlbWJseUZ1bmN0aW9uQmFzZTsKIAot
ICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBC
YXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENlbGxUeXBlLCBT
dWJzcGFjZUFjY2VzcyBtb2RlPgogICAgIHN0YXRpYyBJc29TdWJzcGFjZSogc3Vic3BhY2VGb3Io
Vk0mIHZtKQpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMTAtMTcgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBjb25zdGV4cHIgaW4gbW9yZSBwbGFj
ZXMgYW5kIHJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IGV4dGVybmFsIGxpbmthZ2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIHJlbW92ZWQgdW51
c2VkIGxvY2tTcGluTGltaXQgaW4gVGhyZWFkaW5nLmguCisKKyAgICAgICAgKiB3dGYvTUQ1Lmg6
CisgICAgICAgICogd3RmL1NIQTEuaDoKKyAgICAgICAgKiB3dGYvU3RhY2tCb3VuZHMuaDoKKyAg
ICAgICAgKiB3dGYvVGhyZWFkaW5nLmg6CisKIDIwMTktMTAtMTYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBpbnRl
cm5hbCBtYWNPUyAxMC4xMyBhbmQgMTAuMTQgYnVpbGRzIGFmdGVyIHIyNTExNzEKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL01ENS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL01ENS5oCShy
ZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvV1RGL3d0Zi9NRDUuaAkod29ya2luZyBjb3B5KQpA
QCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgYWRk
Qnl0ZXMoY29uc3QgdWludDhfdCogaW5wdXQsIHNpemVfdCBsZW5ndGgpOwogCiAgICAgLy8gU2l6
ZSBvZiB0aGUgU0hBMSBoYXNoCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBjb25zdCBz
aXplX3QgaGFzaFNpemUgPSAxNjsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIGNvbnN0
ZXhwciBzaXplX3QgaGFzaFNpemUgPSAxNjsKIAogICAgIC8vIHR5cGUgZm9yIGNvbXB1dGluZyBN
RDUgaGFzaAogICAgIHR5cGVkZWYgc3RkOjphcnJheTx1aW50OF90LCBoYXNoU2l6ZT4gRGlnZXN0
OwpJbmRleDogU291cmNlL1dURi93dGYvU0hBMS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYv
d3RmL1NIQTEuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dURi93dGYvU0hBMS5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBhZGRCeXRlcyhjb25zdCB1aW50OF90KiBpbnB1dCwgc2l6ZV90IGxlbmd0aCk7
CiAKICAgICAvLyBTaXplIG9mIHRoZSBTSEExIGhhc2gKLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
c3RhdGljIGNvbnN0IHNpemVfdCBoYXNoU2l6ZSA9IDIwOworICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgY29uc3RleHByIHNpemVfdCBoYXNoU2l6ZSA9IDIwOwogCiAgICAgLy8gdHlwZSBm
b3IgY29tcHV0aW5nIFNIQTEgaGFzaAogICAgIHR5cGVkZWYgc3RkOjphcnJheTx1aW50OF90LCBo
YXNoU2l6ZT4gRGlnZXN0OwpJbmRleDogU291cmNlL1dURi93dGYvU3RhY2tCb3VuZHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCShyZXZpc2lvbiAyNTEyNDUp
CisrKyBTb3VyY2UvV1RGL3d0Zi9TdGFja0JvdW5kcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3
ICs0MCw3IEBAIGNsYXNzIFN0YWNrQm91bmRzIHsKICAgICAvLyBmdW5jdGlvbnMgd2FzIHNlZW4g
dG8gYmUgYXMgaGlnaCBhcyAyN2suIEhlbmNlLCA2NGsgaXMgY2hvc2VuIGFzIGEKICAgICAvLyBj
b25zZXJ2YXRpdmUgYXZhaWxhYmlsaXR5IHZhbHVlIHRoYXQgaXMgbm90IHRvbyBsYXJnZSBidXQg
Y29tZm9ydGFibHkKICAgICAvLyBleGNlZWRzIDI3ayB3aXRoIHNvbWUgYnVmZmVyIGZvciBlcnJv
ci4KLSAgICBjb25zdCBzdGF0aWMgc2l6ZV90IHNfZGVmYXVsdEF2YWlsYWJpbGl0eURlbHRhID0g
NjQgKiAxMDI0OworICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHNfZGVmYXVsdEF2YWlsYWJp
bGl0eURlbHRhID0gNjQgKiAxMDI0OwogCiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBTdGFja0Rp
cmVjdGlvbiB7IFVwd2FyZCwgRG93bndhcmQgfTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1RocmVh
ZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZy5oCShyZXZpc2lv
biAyNTEyNDUpCisrKyBTb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmcuaAkod29ya2luZyBjb3B5KQpA
QCAtMTQzLDcgKzE0Myw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplQ3Vy
cmVudFRocmVhZEludGVybmFsKGNvbnN0IGNoYXIqIHRocmVhZE5hbWUpOwogICAgIHN0YXRpYyB2
b2lkIGluaXRpYWxpemVDdXJyZW50VGhyZWFkRXZlbklmTm9uV1RGQ3JlYXRlZCgpOwogICAgIAot
ICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgY29uc3QgdW5zaWduZWQgbG9ja1NwaW5MaW1p
dDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgeWllbGQoKTsKIAogICAgIFdU
Rl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBleGNoYW5nZUlzQ29tcGlsYXRpb25UaHJlYWQo
Ym9vbCBuZXdWYWx1ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAx
OS0xMC0xNyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGNv
bnN0ZXhwciBpbiBtb3JlIHBsYWNlcyBhbmQgcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgZXh0ZXJu
YWwgbGlua2FnZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzExNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoaXMgcGF0Y2ggYWRkcyBubyBuZXcgZnVuY3Rpb25h
bGl0eS4KKworICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlR2VuZXJpYy5jcHA6Cisg
ICAgICAgICogaHRtbC90cmFjay9WVFRDdWUuY3BwOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN5bnRoZXRpY1RvdWNoUG9pbnQ6OlN5bnRoZXRp
Y1RvdWNoUG9pbnQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVUcmVlLmg6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnByb2plY3RlZEluZXJ0aWFsU2Nyb2xsRGlzdGFuY2UpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1JlZ2lvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUxpZ2h0aW5nLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvVGFibGVMYXlvdXQuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuaDoKKwogMjAxOS0xMC0xNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIERlcHJlY2F0ZSBBY3Rp
dmVET01PYmplY3Q6OmNhblN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWVHZW5lcmljLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZUdlbmVyaWMuY3BwCShy
ZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1
ZUdlbmVyaWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUZXh0VHJhY2tDdWVHZW5lcmlj
KTsKIAogLy8gVGhpcyBkZWZhdWx0IHZhbHVlIG11c3QgYmUgdGhlIHNhbWUgYXMgdGhlIG9uZSBz
cGVjaWZpZWQgaW4gbWVkaWFDb250cm9sc0FwcGxlLmNzcyBmb3IgLXdlYmtpdC1tZWRpYS1jb250
cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyCi1jb25zdCBzdGF0aWMgaW50IERFRkFVTFRD
QVBUSU9ORk9OVFNJWkUgPSAxMDsKK3N0YXRpYyBjb25zdGV4cHIgaW50IERFRkFVTFRDQVBUSU9O
Rk9OVFNJWkUgPSAxMDsKIAogY2xhc3MgVGV4dFRyYWNrQ3VlR2VuZXJpY0JveEVsZW1lbnQgZmlu
YWwgOiBwdWJsaWMgVlRUQ3VlQm94IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lOTElO
RShUZXh0VHJhY2tDdWVHZW5lcmljQm94RWxlbWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZUVEN1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9WVFRDdWUuY3BwCShyZXZpc2lvbiAyNTEyNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1ZUVEN1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDkgQEAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRF9JTVBMKFZUVEN1ZUJveCk7CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoVlRUQ3VlKTsKIAogLy8gVGhpcyBjb25zdGFudCBzaG91bGQgY29ycmVzcG9uZCB3aXRo
IHRoZSBwZXJjZW50YWdlIHJldHVybmVkIGJ5IENhcHRpb25Vc2VyUHJlZmVyZW5jZXM6OmNhcHRp
b25Gb250U2l6ZVNjYWxlQW5kSW1wb3J0YW5jZS4KLWNvbnN0IHN0YXRpYyBkb3VibGUgREVGQVVM
VENBUFRJT05GT05UU0laRVBFUkNFTlRBR0UgPSA1Oworc3RhdGljIGNvbnN0ZXhwciBkb3VibGUg
REVGQVVMVENBUFRJT05GT05UU0laRVBFUkNFTlRBR0UgPSA1OwogCi1zdGF0aWMgY29uc3QgaW50
IHVuZGVmaW5lZFBvc2l0aW9uID0gLTE7CitzdGF0aWMgY29uc3RleHByIGludCB1bmRlZmluZWRQ
b3NpdGlvbiA9IC0xOwogCiBzdGF0aWMgY29uc3QgQ1NTVmFsdWVJRCBkaXNwbGF5V3JpdGluZ01v
ZGVNYXBbXSA9IHsKICAgICBDU1NWYWx1ZUhvcml6b250YWxUYiwgQ1NTVmFsdWVWZXJ0aWNhbFJs
LCBDU1NWYWx1ZVZlcnRpY2FsTHIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDExICsyMTYsMTEgQEAgcHVibGljOgogICAgIC8v
IFRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgYmFzZWQgb24gaHR0cDovL2R2Y3MudzMub3JnL2hnL3dl
YmV2ZW50cy9yYXctZmlsZS90aXAvdG91Y2hldmVudHMuaHRtbAogICAgIGV4cGxpY2l0IFN5bnRo
ZXRpY1RvdWNoUG9pbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKICAgICB7Ci0g
ICAgICAgIGNvbnN0IHN0YXRpYyBpbnQgaWREZWZhdWx0VmFsdWUgPSAwOwotICAgICAgICBjb25z
dCBzdGF0aWMgaW50IHJhZGl1c1lEZWZhdWx0VmFsdWUgPSAxOwotICAgICAgICBjb25zdCBzdGF0
aWMgaW50IHJhZGl1c1hEZWZhdWx0VmFsdWUgPSAxOwotICAgICAgICBjb25zdCBzdGF0aWMgZmxv
YXQgcm90YXRpb25BbmdsZURlZmF1bHRWYWx1ZSA9IDAuMGY7Ci0gICAgICAgIGNvbnN0IHN0YXRp
YyBmbG9hdCBmb3JjZURlZmF1bHRWYWx1ZSA9IDEuMGY7CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgaW50IGlkRGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQg
cmFkaXVzWURlZmF1bHRWYWx1ZSA9IDE7CisgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IHJh
ZGl1c1hEZWZhdWx0VmFsdWUgPSAxOworICAgICAgICBzdGF0aWMgY29uc3RleHByIGZsb2F0IHJv
dGF0aW9uQW5nbGVEZWZhdWx0VmFsdWUgPSAwLjBmOworICAgICAgICBzdGF0aWMgY29uc3RleHBy
IGZsb2F0IGZvcmNlRGVmYXVsdFZhbHVlID0gMS4wZjsKIAogICAgICAgICBtX2lkID0gaWREZWZh
dWx0VmFsdWU7IC8vIFRoZXJlIGlzIG9ubHkgb25lIGFjdGl2ZSBUb3VjaFBvaW50LgogICAgICAg
ICBtX3NjcmVlblBvcyA9IGV2ZW50Lmdsb2JhbFBvc2l0aW9uKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVHJlZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVUcmVlLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVUcmVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAgY2xhc3MgVHJlZVNjb3Bl
OwogY2xhc3MgRnJhbWVUcmVlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGcmFtZVRyZWUp
OwogcHVibGljOgotICAgIGNvbnN0IHN0YXRpYyB1bnNpZ25lZCBpbnZhbGlkQ291bnQgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oLTEpOworICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgaW52
YWxpZENvdW50ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KC0xKTsKIAogICAgIEZyYW1lVHJlZShG
cmFtZSYgdGhpc0ZyYW1lLCBGcmFtZSogcGFyZW50RnJhbWUpCiAgICAgICAgIDogbV90aGlzRnJh
bWUodGhpc0ZyYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nTW9tZW50dW1DYWxjdWxhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1bUNhbGN1bGF0b3IuY3BwCShyZXZpc2lvbiAy
NTEyNDUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdNb21lbnR1
bUNhbGN1bGF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHN0YXRpYyBp
bmxpbmUgZmxvYXQgcHJvamVjdGVkSW5lcnRpYWxTY3IKICAgICAvLyBieSBtdWx0aXBseWluZyB0
aGUgaW5pdGlhbCB3aGVlbCBkZWx0YSBieSBhIGNvbnN0YW50IGZhY3Rvci4gQnkgcnVubmluZyBh
IGZldyBleHBlcmltZW50cyAoaS5lLiBsb2dnaW5nIHNjcm9sbCBkZXN0aW5hdGlvbiBhbmQgaW5p
dGlhbAogICAgIC8vIHdoZWVsIGRlbHRhIGZvciBtYW55IHNjcm9sbCBnZXN0dXJlcykgd2UgZGV0
ZXJtaW5lZCB0aGF0IHRoaXMgaXMgYSByZWFzb25hYmxlIHdheSB0byBhcHByb3hpbWF0ZSB3aGVy
ZSBzY3JvbGxpbmcgd2lsbCB0YWtlIHVzIHdpdGhvdXQKICAgICAvLyB1c2luZyBfTlNTY3JvbGxp
bmdNb21lbnR1bUNhbGN1bGF0b3IuCi0gICAgY29uc3Qgc3RhdGljIGRvdWJsZSBpbmVydGlhbFNj
cm9sbFByZWRpY3Rpb25GYWN0b3IgPSAxNi43OworICAgIHN0YXRpYyBjb25zdGV4cHIgZG91Ymxl
IGluZXJ0aWFsU2Nyb2xsUHJlZGljdGlvbkZhY3RvciA9IDE2Ljc7CiAgICAgcmV0dXJuIGluZXJ0
aWFsU2Nyb2xsUHJlZGljdGlvbkZhY3RvciAqIGluaXRpYWxXaGVlbERlbHRhOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2Vk
U2V0dGluZ3MuaAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUy
LDcgQEAgc3RydWN0IEZvdXJDaGFyYWN0ZXJUYWdIYXNoVHJhaXRzIDogV1RGOgogICAgIHN0YXRp
YyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IEZvbnRUYWcmIHZhbHVlKSB7IHJldHVybiB2YWx1
ZSA9PSBGb250VGFnKHt7IGZmLCBmZiwgZmYsIGZmIH19KTsgfQogCiBwcml2YXRlOgotICAgIGNv
bnN0IHN0YXRpYyBjaGFyIGZmID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhGRik7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBjaGFyIGZmID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMHhGRik7CiB9OwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlZ2lvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVnaW9uLmNwcAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmVnaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ5LDE0ICsyNDksMTQg
QEAgYm9vbCBSZWdpb246OlNoYXBlOjpjb21wYXJlU2hhcGVzKGNvbnN0IAogfQogCiBzdHJ1Y3Qg
UmVnaW9uOjpTaGFwZTo6Q29tcGFyZUNvbnRhaW5zT3BlcmF0aW9uIHsKLSAgICBjb25zdCBzdGF0
aWMgYm9vbCBkZWZhdWx0UmVzdWx0ID0gdHJ1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wg
ZGVmYXVsdFJlc3VsdCA9IHRydWU7CiAgICAgaW5saW5lIHN0YXRpYyBib29sIGFPdXRzaWRlQihi
b29sJiAvKiByZXN1bHQgKi8pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgaW5saW5lIHN0YXRpYyBi
b29sIGJPdXRzaWRlQShib29sJiByZXN1bHQpIHsgcmVzdWx0ID0gZmFsc2U7IHJldHVybiB0cnVl
OyB9CiAgICAgaW5saW5lIHN0YXRpYyBib29sIGFPdmVybGFwc0IoYm9vbCYgLyogcmVzdWx0ICov
KSB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogc3RydWN0IFJlZ2lvbjo6U2hhcGU6OkNvbXBhcmVJ
bnRlcnNlY3RzT3BlcmF0aW9uIHsKLSAgICBjb25zdCBzdGF0aWMgYm9vbCBkZWZhdWx0UmVzdWx0
ID0gZmFsc2U7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGRlZmF1bHRSZXN1bHQgPSBmYWxz
ZTsKICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYU91dHNpZGVCKGJvb2wmIC8qIHJlc3VsdCAqLykg
eyByZXR1cm4gZmFsc2U7IH0KICAgICBpbmxpbmUgc3RhdGljIGJvb2wgYk91dHNpZGVBKGJvb2wm
IC8qIHJlc3VsdCAqLykgeyByZXR1cm4gZmFsc2U7IH0KICAgICBpbmxpbmUgc3RhdGljIGJvb2wg
YU92ZXJsYXBzQihib29sJiByZXN1bHQpIHsgcmVzdWx0ID0gdHJ1ZTsgcmV0dXJuIHRydWU7IH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGlu
Zy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUxpZ2h0aW5nLmNwcAkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODQsMTUgKzg0LDE1IEBAIGJvb2wgRkVMaWdodGluZzo6c2V0S2VybmVsVW5pdExlbmd0aFko
ZmwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotY29uc3Qgc3RhdGljIGludCBjUGl4ZWxTaXplID0g
NDsKLWNvbnN0IHN0YXRpYyBpbnQgY0FscGhhQ2hhbm5lbE9mZnNldCA9IDM7Ci1jb25zdCBzdGF0
aWMgdWludDhfdCBjT3BhcXVlQWxwaGEgPSBzdGF0aWNfY2FzdDx1aW50OF90PigweEZGKTsKK3N0
YXRpYyBjb25zdGV4cHIgaW50IGNQaXhlbFNpemUgPSA0Oworc3RhdGljIGNvbnN0ZXhwciBpbnQg
Y0FscGhhQ2hhbm5lbE9mZnNldCA9IDM7CitzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgY09wYXF1
ZUFscGhhID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oMHhGRik7CiAKIC8vIFRoZXNlIGZhY3RvcnMg
YW5kIHRoZSBub3JtYWwgY29lZmZpY2llbnRzIGNvbWUgZnJvbSB0aGUgdGFibGUgdW5kZXIgaHR0
cHM6Ly93d3cudzMub3JnL1RSL1NWRy9maWx0ZXJzLmh0bWwjZmVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LgotY29uc3Qgc3RhdGljIGZsb2F0IGNGYWN0b3IxZGl2MiA9IC0xIC8gMi5mOwotY29uc3Qg
c3RhdGljIGZsb2F0IGNGYWN0b3IxZGl2MyA9IC0xIC8gMy5mOwotY29uc3Qgc3RhdGljIGZsb2F0
IGNGYWN0b3IxZGl2NCA9IC0xIC8gNC5mOwotY29uc3Qgc3RhdGljIGZsb2F0IGNGYWN0b3IyZGl2
MyA9IC0yIC8gMy5mOworc3RhdGljIGNvbnN0ZXhwciBmbG9hdCBjRmFjdG9yMWRpdjIgPSAtMSAv
IDIuZjsKK3N0YXRpYyBjb25zdGV4cHIgZmxvYXQgY0ZhY3RvcjFkaXYzID0gLTEgLyAzLmY7Citz
dGF0aWMgY29uc3RleHByIGZsb2F0IGNGYWN0b3IxZGl2NCA9IC0xIC8gNC5mOworc3RhdGljIGNv
bnN0ZXhwciBmbG9hdCBjRmFjdG9yMmRpdjMgPSAtMiAvIDMuZjsKIAogaW5saW5lIEludFNpemUg
RkVMaWdodGluZzo6TGlnaHRpbmdEYXRhOjp0b3BMZWZ0Tm9ybWFsKGludCBvZmZzZXQpIGNvbnN0
CiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGFibGVMYXlvdXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGFibGVMYXlvdXQuaAkocmV2aXNpb24g
MjUxMjQ1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RhYmxlTGF5b3V0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIC8vIEZJ
WE1FOiBPbmNlIHdlIGVuYWJsZSBTQVRVUkFURURfTEFZT1VUX0FSSVRITUVUSElDLCB0aGlzIHNo
b3VsZCBqdXN0IGJlIExheW91dFVuaXQ6Om5lYXJseU1heCgpLgogICAgIC8vIFVudGlsIHRoZW4g
dGhvdWdoLCB1c2luZyBuZWFybHlNYXggY2F1c2VzIG92ZXJmbG93IGluIHNvbWUgdGVzdHMsIHNv
IHdlIGp1c3QgcGljayBhIGxhcmdlIG51bWJlci4KLSAgICBjb25zdCBzdGF0aWMgaW50IHRhYmxl
TWF4V2lkdGggPSAxMDAwMDAwOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IHRhYmxlTWF4V2lk
dGggPSAxMDAwMDAwOwogCiAgICAgUmVuZGVyVGFibGUqIG1fdGFibGU7CiB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmgJ
KHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6
CiAgICAgfTsKIAogICAgIC8vIExpc3Qgb2YgdGhvc2UgZmxhZ3Mgd2hpY2ggcmVxdWlyZSBhY3Rp
b25zIGR1cmluZyB0aGUgZGVzdHJ1Y3Rvci4KLSAgICBjb25zdCBzdGF0aWMgaW50IEFjdGlvbnNO
ZWVkZWQgPSBSZXN0b3JlR3JhcGhpY3NDb250ZXh0IHwgRW5kT3BhY2l0eUxheWVyIHwgRW5kU2hh
ZG93TGF5ZXIgfCBFbmRGaWx0ZXJMYXllcjsKKyAgICBzdGF0aWMgY29uc3RleHByIGludCBBY3Rp
b25zTmVlZGVkID0gUmVzdG9yZUdyYXBoaWNzQ29udGV4dCB8IEVuZE9wYWNpdHlMYXllciB8IEVu
ZFNoYWRvd0xheWVyIHwgRW5kRmlsdGVyTGF5ZXI7CiAKICAgICBSZW5kZXJFbGVtZW50KiBtX3Jl
bmRlcmVyIHsgbnVsbHB0ciB9OwogICAgIFBhaW50SW5mbyogbV9wYWludEluZm8geyBudWxscHRy
IH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxOS0xMC0xNyAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGNvbnN0ZXhwciBpbiBtb3Jl
IHBsYWNlcyBhbmQgcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgZXh0ZXJuYWwgbGlua2FnZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzExNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvUGx1Z2luUHJveHlNYWMubW06CisKIDIwMTktMTAtMTcgIEFudG9p
bmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNd
IEVuYWJsZSB0aGUgV2ViIEFuaW1hdGlvbnMgSmF2YVNjcmlwdCBBUEkgYnkgZGVmYXVsdApJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxl
TGlzdFN0b3JlLmgJKHJldmlzaW9uIDI1MTI0NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1
Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBBbHNvIHVwZGF0ZSBDb250ZW50UnVsZUxpc3RTdG9yZTo6
Z2V0Q29udGVudFJ1bGVMaXN0U291cmNlIHRvIGJlIGFibGUgdG8gZmluZCB0aGUgb3JpZ2luYWwg
SlNPTgogICAgIC8vIHNvdXJjZSBmcm9tIG9sZCB2ZXJzaW9ucy4KICAgICAvLyBVcGRhdGUgQ29u
dGVudFJ1bGVMaXN0U3RvcmU6OmdldENvbnRlbnRSdWxlTGlzdFNvdXJjZSB3aXRoIHRoaXMuCi0g
ICAgY29uc3Qgc3RhdGljIHVpbnQzMl90IEN1cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lv
biA9IDEwOworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDMyX3QgQ3VycmVudENvbnRlbnRSdWxl
TGlzdEZpbGVWZXJzaW9uID0gMTA7CiAKICAgICBzdGF0aWMgQ29udGVudFJ1bGVMaXN0U3RvcmUm
IGRlZmF1bHRTdG9yZShib29sIGxlZ2FjeUZpbGVuYW1lKTsKICAgICBzdGF0aWMgUmVmPENvbnRl
bnRSdWxlTGlzdFN0b3JlPiBzdG9yZVdpdGhQYXRoKGNvbnN0IFdURjo6U3RyaW5nJiBzdG9yZVBh
dGgsIGJvb2wgbGVnYWN5RmlsZW5hbWUpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9QbHVnaW5Qcm94eU1h
Yy5tbQkocmV2aXNpb24gMjUxMjQ1KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvbWFjL1BsdWdpblByb3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3
ICszNCw3IEBACiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaD4KIAotY29uc3Qgc3RhdGljIGRvdWJsZSBmYWRl
SW5EdXJhdGlvbiA9IDAuNTsKK3N0YXRpYyBjb25zdGV4cHIgZG91YmxlIGZhZGVJbkR1cmF0aW9u
ID0gMC41OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjUxMjQ5KQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTAtMTcgIE1h
cmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBjb25zdGV4cHIgaW4g
bW9yZSBwbGFjZXMgYW5kIHJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IGV4dGVybmFsIGxpbmthZ2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDMxMTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL1dlYWtQdHIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSXNOYXZpZ2F0aW9uQWN0
aW9uVHJ1c3RlZC5tbToKKwogMjAxOS0xMC0xNyAgUGF1bG8gTWF0b3MgIDxwbWF0b3NAaWdhbGlh
LmNvbT4KIAogICAgICAgICBDaGVjayB2YWx1ZXMgb2YgdmFyaWFibGVzIGJlZm9yZSBleHRyYWN0
aW5nIGluZGV4IGluIHBlcmwKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dl
YWtQdHIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dl
YWtQdHIuY3BwCShyZXZpc2lvbiAyNTEyNDUpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9XZWFrUHRyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYwLDcgKzU2MCw3IEBAIFRFU1Qo
V1RGX1dlYWtQdHIsIFdlYWtIYXNoU2V0Q29uc3RPYmplY3QKIFRFU1QoV1RGX1dlYWtQdHIsIFdl
YWtIYXNoU2V0RXhwYW5zaW9uKQogewogICAgIHVuc2lnbmVkIGluaXRpYWxDYXBhY2l0eTsKLSAg
ICBjb25zdCBzdGF0aWMgdW5zaWduZWQgbWF4TG9hZENhcCA9IDM7CisgICAgc3RhdGljIGNvbnN0
ZXhwciB1bnNpZ25lZCBtYXhMb2FkQ2FwID0gMzsKICAgICB7CiAgICAgICAgIFdlYWtIYXNoU2V0
PEJhc2U+IHdlYWtIYXNoU2V0OwogICAgICAgICBCYXNlIG9iamVjdDsKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0lzTmF2aWdhdGlvbkFjdGlvblRydXN0ZWQubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvSXNOYXZpZ2F0aW9uQWN0aW9u
VHJ1c3RlZC5tbQkocmV2aXNpb24gMjUxMjQ1KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvSXNOYXZpZ2F0aW9uQWN0aW9uVHJ1c3RlZC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEs
MTEgKzMxLDExIEBACiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIHN0YXRpYyBib29sIGRp
ZEZpbmlzaFRlc3Q7Ci1jb25zdCBzdGF0aWMgTlNVUkwgKnRhcmdldFVybCA9IFtbTlNVUkwgYWxs
b2NdIGluaXRXaXRoU3RyaW5nOkAiaHR0cDovL3d3dy5leGFtcGxlLmNvbS8iXTsKLWNvbnN0IHN0
YXRpYyB1bnNpZ25lZCBleHBlY3RlZE1vZGlmaWVyRmxhZ3MgPSAwOwotY29uc3Qgc3RhdGljIGlu
dCBleHBlY3RlZEJ1dHRvbk51bWJlciA9IC0yOworc3RhdGljIGNvbnN0IE5TVVJMICp0YXJnZXRV
cmwgPSBbW05TVVJMIGFsbG9jXSBpbml0V2l0aFN0cmluZzpAImh0dHA6Ly93d3cuZXhhbXBsZS5j
b20vIl07CitzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGV4cGVjdGVkTW9kaWZpZXJGbGFncyA9
IDA7CitzdGF0aWMgY29uc3RleHByIGludCBleHBlY3RlZEJ1dHRvbk51bWJlciA9IC0yOwogCi1j
b25zdCBzdGF0aWMgaW50IGV4cGVjdGVkV0tCdXR0b25OdW1iZXIgPSAwOyAvLyB1bmxpa2UgRE9N
IHNwZWMsIDAgaXMgdGhlIHZhbHVlIGZvciBubyBidXR0b24gaW4gQ29jb2EuCitzdGF0aWMgY29u
c3RleHByIGludCBleHBlY3RlZFdLQnV0dG9uTnVtYmVyID0gMDsgLy8gdW5saWtlIERPTSBzcGVj
LCAwIGlzIHRoZSB2YWx1ZSBmb3Igbm8gYnV0dG9uIGluIENvY29hLgogCiBAaW50ZXJmYWNlIE5h
dmlnYXRpb25BY3Rpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4K
IEBlbmQK
</data>
<flag name="review"
          id="396981"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
    <flag name="commit-queue"
          id="396996"
          type_id="3"
          status="-"
          setter="ews-watchlist"
    />
          </attachment>
      

    </bug>

</bugzilla>