<?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>201790</bug_id>
          
          <creation_ts>2019-09-13 20:27:37 -0700</creation_ts>
          <short_desc>Retire x86 32bit JIT support</short_desc>
          <delta_ts>2019-09-14 12:37:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570818</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-13 20:27:37 -0700</bug_when>
    <thetext>Retire x86 32bit JIT support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570819</commentid>
    <comment_count>1</comment_count>
      <attachid>378776</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-13 20:33:04 -0700</bug_when>
    <thetext>Created attachment 378776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570820</commentid>
    <comment_count>2</comment_count>
      <attachid>378777</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-13 20:34:15 -0700</bug_when>
    <thetext>Created attachment 378777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570822</commentid>
    <comment_count>3</comment_count>
      <attachid>378779</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-13 20:38:37 -0700</bug_when>
    <thetext>Created attachment 378779
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570830</commentid>
    <comment_count>4</comment_count>
      <attachid>378779</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-09-13 21:17:38 -0700</bug_when>
    <thetext>Comment on attachment 378779
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570895</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-09-14 12:36:34 -0700</bug_when>
    <thetext>Committed r249880: &lt;https://trac.webkit.org/changeset/249880&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570896</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-14 12:37:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/55369494&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378776</attachid>
            <date>2019-09-13 20:33:04 -0700</date>
            <delta_ts>2019-09-13 20:34:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201790-20190913203304.patch</filename>
            <type>text/plain</type>
            <size>48719</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MmM0YzA2NDY4M2RlMWJhYWQ4MTViNjZkNGZlZjBhNjk4ZDYzZTU1Li4yMGI1MGI4YjI5ODdlOGVi
YjYwNjE2YWMxZDlmOTc3MGY4M2Y3NzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NCBAQAorMjAxOS0wOS0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJldGlyZSB4ODYgMzJiaXQgSklUIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTc5MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdywgWGNvZGUgbm8gbG9uZ2VyIGhh
cyBhYmlsaXR5IHRvIGJ1aWxkIDMyYml0IGJpbmFyeSwgc28gd2UgY2Fubm90IGV2ZW4gdGVzdCBp
dCBvbiBtYWNPUy4KKyAgICAgICAgRmVkb3JhIHN0b3BzIHNoaXBwaW5nIHg4NiAzMmJpdCBrZXJu
ZWwuIE91ciB4ODYveDg2XzY0IEpJVCByZXF1aXJlcyBTU0UyLCBhbmQgc28gc3VjaCByZWxhdGl2
ZWx5IG1vZGVybiBDUFVzCisgICAgICAgIGNhbiB1c2UgSklUIGJ5IHN3aXRjaGluZyB4ODYgdG8g
eDg2XzY0LiBBbmQgdGhlc2UgQ1BVcyBhcmUgbW9kZXJuIGVub3VnaCB0byBydW4gQ0xvb3AgYXQg
aGlnaCBzcGVlZC4KKyAgICAgICAgV2ViS2l0IGFscmVhZHkgZGlzYWJsZWQgeDg2IEpJVCBieSBk
ZWZhdWx0IHdoaWxlIHRoZSBpbXBsZW1lbnRhdGlvbiBleGlzdHMuIFNvIGxpdGVyYXJ5LCBpdCBp
cyBub3QgdGVzdGVkLgorCisgICAgICAgIFdoaWxlIHg4NiAzMmJpdCBiZWNvbWVzIGxlc3MgdXNl
ZnVsLCB4ODYgMzJiaXQgSklUIGJhY2tlbmQgaXMgdmVyeSBjb21wbGljYXRlZCBhbmQgaXMgYmVp
bmcgYSBtYWpvciBtYWludGVuYW5jZSBidXJkZW4uCisgICAgICAgIFRoaXMgaXMgZHVlIHRvIHZl
cnkgZmV3ICMgb2YgcmVnaXN0ZXJzLiBXaGljaCBzY2F0dGVycyBhIGxvdCBvZiBpc1g4NiAvIENQ
VShYODYpIGluIEJhc2VsaW5lLCBERkcsIGFuZCBZYXJyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cmV0aXJlcyB4ODYgSklUIHN1cHBvcnQgZnJvbSBKYXZhU2NyaXB0Q29yZSBhbmQgQ1NTIEpJVC4g
V2Ugc3RpbGwga2VlcCBNYWNyb0Fzc2VtYmxlciBhbmQgR1BSSW5mbyAvIEZQUkluZm8sCisgICAg
ICAgIE1hY2hpbmVDb250ZXh0IGluZm9ybWF0aW9uIHNpbmNlIHRoZXkgYXJlIHVzZWZ1bCBldmVu
IHRob3VnaCBKSVQgaXMgbm90IHN1cHBvcnRlZC4KKworICAgICAgICAqIGRmZy9ERkdBcnJheU1v
ZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6cmVmaW5lIGNvbnN0KToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxl
cjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpvc3JXcml0ZUJhcnJpZXIpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdik6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVSZXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldERpcmVjdFBuYW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1RodW5r
cy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6b3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRv
cik6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6c2xv
d1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNhbGxFeGNlcHRpb25GdXp6KToK
KyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpkZWJ1Z0NhbGwpOgorICAgICAgICAqIGpp
dC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0
Q29tcHV0ZUJ1dHRlcmZseUluZGV4aW5nTWFzayk6CisgICAgICAgICogaml0L0NDYWxsSGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6Cisg
ICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6cHJlcGFyZUZvclRhaWxDYWxsU2xvdyk6CisgICAg
ICAgICogaml0L0NhbGxGcmFtZVNodWZmbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1l
U2h1ZmZsZXI6OnByZXBhcmVGb3JUYWlsQ2FsbCk6CisgICAgICAgICogaml0L0pJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycyk6CisgICAg
ICAgICogaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9tb2QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX21vZCk6CisgICAgICAg
ICogaml0L1Nsb3dQYXRoQ2FsbC5oOgorICAgICAgICAoSlNDOjpKSVRTbG93UGF0aENhbGw6OmNh
bGwpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpu
YXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjphcml0eUZpeHVwR2VuZXJhdG9yKToK
KyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldh
c206OkFpcklSR2VuZXJhdG9yOjplbWl0TW9kT3JEaXYpOgorICAgICAgICAqIHlhcnIvWWFyckpJ
VC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmdlbmVyYXRlRG90U3Rh
ckVuY2xvc3VyZSk6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmdlbmVyYXRl
RW50ZXIpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVy
bik6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAg
ICAqIHlhcnIvWWFyckpJVC5oOgorCiAyMDE5LTA5LTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBqc2MgLWQgc3RvcHBlZCB3b3JraW5nLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4ZjQ3YjJl
NGFmMWMzN2U1OTdkYWU0NjFjZjI0OWM2NDA5ZTdlNGZkLi5hNTBmZTllMGI2N2ZhODI4NjkzMzg0
YzdjODU2YmE3OTU3N2Q2ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV0aXJlIHg4NiAzMmJp
dCBKSVQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAxNzkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0wOS0xMyAgSm9uYXRoYW4gQmVkYXJkICA8
amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIDEzOiBTb21lIFNQSSB0YXJnZXRzIDEz
LjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA2NzUzZDU5NTk3YjU3NzQ1ZDBiYjBjNTgyNjI3YmQzNDgxZGEyNjJh
Li41YjJlZTQ2YzY1ZDdiZTIzMTZhOTUyYzhjNDg0OWJkZmRlNjI1Yjc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTktMDktMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXRpcmUgeDg2IDMyYml0IEpJVCBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMh
KS4KKworICAgICAgICAqIGNzc2ppdC9GdW5jdGlvbkNhbGwuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkZ1bmN0aW9uQ2FsbDo6Y2FsbEFuZEJyYW5jaE9uQm9vbGVhblJldHVyblZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZ1bmN0aW9uQ2FsbDo6c3dhcEFyZ3VtZW50cyk6CisKIDIwMTktMDktMTEg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSBwcm90
b3R5cGUgZm9yIEFSIFF1aWNrTG9vayB0byB0cmlnZ2VyIHByb2Nlc3NpbmcgaW4gdGhlIG9yaWdp
bmF0aW5nIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJy
YXlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcApp
bmRleCBmOTI2Y2MxNmM0NjA1MDBhNzQzMjhjMDI3MzE3MjQ4OGVlZmU3YjE3Li5jMGI0Mzc3YmM2
ZWY5MDJiZTE1MzNmNWIyNzlkMWI1MDM3ODUzNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcnJheU1vZGUuY3BwCkBAIC0zMDMsOCArMzAzLDYgQEAgQXJyYXlNb2RlIEFycmF5
TW9kZTo6cmVmaW5lKAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXlNb2RlKHR5cGUs
IEFycmF5OjpOb25BcnJheSwgQXJyYXk6Ok91dE9mQm91bmRzLCBBcnJheTo6QXNJcywgYWN0aW9u
KCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVyaWMsIGFj
dGlvbigpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChpc1g4NigpICYmIGlzMzJC
aXQoKSAmJiBpc1Njb3BlZEFyZ3VtZW50c1NwZWN1bGF0aW9uKGJhc2UpKQotICAgICAgICAgICAg
ICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVyaWMsIGFjdGlvbigpKTsKICAgICAgICAg
ICAgIHJldHVybiB3aXRoVHlwZSh0eXBlKTsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNDAxN2Yz
NDNhOGQzNTQzOTAyZmMzNzFmNjk1OWM1YWJlMzcyYTExMy4uYWQ2M2QzMWJmMzFiNWMyMTIyYmJh
ZDE4MjdkZjJjODFkNzQ2MWRjYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTIyODIsMTMgKzIyODIsNiBAQCBib29sIEJ5dGVDb2Rl
UGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVy
IHJlc3VsdCwgSQogICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgY2FzZSBBcnJheVB1
c2hJbnRyaW5zaWM6IHsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgaWYgKGlz
WDg2KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMg
PiAyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICB9Ci0j
ZW5kaWYKLQogICAgICAgICAgICAgaWYgKHN0YXRpY19jYXN0PHVuc2lnbmVkPihhcmd1bWVudENv
dW50SW5jbHVkaW5nVGhpcykgPj0gTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAKQEAgLTIzMTYsMTIgKzIzMDksNiBAQCBi
b29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgVmly
dHVhbFJlZ2lzdGVyIHJlc3VsdCwgSQogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBBcnJheVNs
aWNlSW50cmluc2ljOiB7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgICAgIGlmIChp
c1g4NigpKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhlcmUgYXJlbid0IGVub3VnaCByZWdpc3Rl
cnMgZm9yIHRoaXMgdG8gYmUgZG9uZSBlYXNpbHkuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgICAgICBpZiAoYXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMgPCAxKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAt
NTQyNiwxNCArNTQxMyw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWdu
ZWQgbGltaXQpCiAgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9u
LT5hczxPcFN0cmNhdD4oKTsKICAgICAgICAgICAgIGludCBzdGFydE9wZXJhbmQgPSBieXRlY29k
ZS5tX3NyYy5vZmZzZXQoKTsKICAgICAgICAgICAgIGludCBudW1PcGVyYW5kcyA9IGJ5dGVjb2Rl
Lm1fY291bnQ7Ci0jaWYgQ1BVKFg4NikKLSAgICAgICAgICAgIC8vIFg4NiBkb2Vzbid0IGhhdmUg
ZW5vdWdoIHJlZ2lzdGVycyB0byBjb21waWxlIE1ha2VSb3BlIHdpdGggdGhyZWUgYXJndW1lbnRz
LiBUaGUKLSAgICAgICAgICAgIC8vIFN0ckNhdCB3ZSBlbWl0IGhlcmUgbWF5IGJlIHR1cm5lZCBp
bnRvIGEgTWFrZVJvcGUuIFJhdGhlciB0aGFuIHRyeSB0byBiZSBjbGV2ZXIsCi0gICAgICAgICAg
ICAvLyB3ZSBqdXN0IG1ha2UgU3RyQ2F0IGR1bWJlciBvbiB0aGlzIHByb2Nlc3Nvci4KLSAgICAg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIG1heEFyZ3VtZW50cyA9IDI7Ci0jZWxzZQogICAgICAgICAg
ICAgY29uc3QgdW5zaWduZWQgbWF4QXJndW1lbnRzID0gMzsKLSNlbmRpZgogICAgICAgICAgICAg
Tm9kZSogb3BlcmFuZHNbQWRqYWNlbmN5TGlzdDo6U2l6ZV07CiAgICAgICAgICAgICB1bnNpZ25l
ZCBpbmRleEluT3BlcmFuZHMgPSAwOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IEFkamFjZW5jeUxpc3Q6OlNpemU7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGNjNDFhM2Q4ZWMxMzNkZTA1ZWNmNjk0ODBjNTdiYjI2
ODE4NjdlNjMuLmVjMDQwYWY4ZGQ2NzNkYTBhNDA3NDdiMWFlOTlkNjIzYzY3ZWM0MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTc0NywxNyAr
MTc0NywxMiBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVibGljIFBoYXNlIHsKIAogICAgICAgICBj
YXNlIEhhc093blByb3BlcnR5OiB7CiAgICAgICAgICAgICBmaXhFZGdlPE9iamVjdFVzZT4obm9k
ZS0+Y2hpbGQxKCkpOwotI2lmIENQVShYODYpCi0gICAgICAgICAgICAvLyBXZSBkb24ndCBoYXZl
IGVub3VnaCByZWdpc3RlcnMgdG8gZG8gYW55dGhpbmcgaW50ZXJlc3Rpbmcgb24geDg2IGFuZCBt
aXBzLgotICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGlsZDIoKSk7Ci0j
ZWxzZQogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVjdWxhdGVTdHJp
bmcoKSkKICAgICAgICAgICAgICAgICBmaXhFZGdlPFN0cmluZ1VzZT4obm9kZS0+Y2hpbGQyKCkp
OwogICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZVN5
bWJvbCgpKQogICAgICAgICAgICAgICAgIGZpeEVkZ2U8U3ltYm9sVXNlPihub2RlLT5jaGlsZDIo
KSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVkVXNl
Pihub2RlLT5jaGlsZDIoKSk7Ci0jZW5kaWYKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKaW5kZXgg
MzQxYTRiYzJmZThiMGFlNzA1ODFjNzg2NTJhY2Q0MGU5M2MwNmMwYS4uZjkxYjZmYzg5ZjM4Zjcx
MTEwM2QwNjlmMGUwZjA4MzJjYTY4ZDIyNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdKSVRDb21waWxlci5jcHAKQEAgLTE1NCwxMSArMTU0LDYgQEAgdm9pZCBKSVRDb21waWxl
cjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgYWRkUHRyKFRy
dXN0ZWRJbW0zMihtX2dyYXBoLnN0YWNrUG9pbnRlck9mZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVy
KSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAK
LSNpZiBDUFUoWDg2KQotICAgICAgICAvLyBGSVhNRTogc2hvdWxkIHVzZSB0aGUgY2FsbCBhYnN0
cmFjdGlvbiwgYnV0IHRoaXMgaXMgY3VycmVudGx5IGluIHRoZSBTcGVjdWxhdGl2ZUpJVCBsYXll
ciEKLSAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICBwb2tlKEdQ
UkluZm86OmFyZ3VtZW50R1BSMSwgMSk7Ci0jZW5kaWYKICAgICAgICAgbV9jYWxscy5hcHBlbmQo
Q2FsbExpbmtSZWNvcmQoY2FsbChPcGVyYXRpb25QdHJUYWcpLCBGdW5jdGlvblB0cjxPcGVyYXRp
b25QdHJUYWc+KGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUpKSk7CiAKICAg
ICAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcih2bSgpKTsKQEAgLTE3MywxMSArMTY4LDYgQEAg
dm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKICAgICAgICAgbW92
ZShUcnVzdGVkSW1tUHRyKCZ2bSgpKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAg
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
IAotI2lmIENQVShYODYpCi0gICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdXNlIHRoZSBjYWxsIGFi
c3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkgaW4gdGhlIFNwZWN1bGF0aXZlSklUIGxh
eWVyIQotICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIHBva2Uo
R1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKLSNlbmRpZgogICAgICAgICBtX2NhbGxzLmFwcGVu
ZChDYWxsTGlua1JlY29yZChjYWxsKE9wZXJhdGlvblB0clRhZyksIEZ1bmN0aW9uUHRyPE9wZXJh
dGlvblB0clRhZz4obG9va3VwRXhjZXB0aW9uSGFuZGxlcikpKTsKIAogICAgICAgICBqdW1wVG9F
eGNlcHRpb25IYW5kbGVyKHZtKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCmluZGV4IDk2ZTYyNTkwMzgzODJiNWI5
MDZmZDVkYzc5YzMwMDcxYTU0NzA1ZmIuLmI2MDE1Njk1ZTBhNmI5ZjBiZDRkOTBiY2NhYmM4Zjcx
ODMwOTc5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dENvbXBpbGVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkV4aXRDb21waWxlckNvbW1vbi5jcHAKQEAgLTI2MiwxOSArMjYyLDEwIEBAIHN0YXRpYyB2b2lk
IG9zcldyaXRlQmFycmllcihDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIG93bmVyLCBHUFJSZWcg
c2NyYXRjaCkKIHsKICAgICBBc3NlbWJseUhlbHBlcnM6Okp1bXAgb3duZXJJc1JlbWVtYmVyZWRP
ckluRWRlbiA9IGppdC5iYXJyaWVyQnJhbmNoV2l0aG91dEZlbmNlKG93bmVyKTsKIAotICAgIC8v
IFdlIG5lZWQgdGhlc2UgZXh0cmEgc2xvdHMgYmVjYXVzZSBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUgd2lsbCB1c2UgcG9rZSBvbiB4ODYuCi0jaWYgQ1BVKFg4NikKLSAgICBqaXQuc3ViUHRy
KE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKHZvaWQqKSAqIDQpLCBNYWNyb0Fz
c2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotI2VuZGlmCi0KICAgICBqaXQuc2V0dXBB
cmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uT1NSV3JpdGVCYXJyaWVyKT4ob3duZXIpOwogICAg
IGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHRhZ0NGdW5jdGlvblB0cjxP
cGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbk9TUldyaXRlQmFycmllcikpLCBzY3JhdGNoKTsKICAg
ICBqaXQuY2FsbChzY3JhdGNoLCBPcGVyYXRpb25QdHJUYWcpOwogCi0jaWYgQ1BVKFg4NikKLSAg
ICBqaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2l6ZW9mKHZvaWQqKSAq
IDQpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotI2VuZGlmCi0KICAg
ICBvd25lcklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsoJmppdCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggNTI4ZTExM2Y3
Njg2ZmZlMjZkMmNhMmQzOTI0MjA1ZDdkNTRiODUwMC4uNTY3YWQ5NDM4YjliYTY2ODBhNDRjZGY2
YzA3NGEwMjU3NjFhMDAxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTUwOTksNyArNTA5OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVBcml0aERpdihOb2RlKiBub2RlKQogewogICAgIHN3aXRjaCAobm9kZS0+Ymlu
YXJ5VXNlS2luZCgpKSB7CiAgICAgY2FzZSBJbnQzMlVzZTogewotI2lmIENQVShYODYpIHx8IENQ
VShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5k
IG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIFNwZWN1bGF0ZUludDMyT3BlcmFu
ZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICBHUFJUZW1wb3JhcnkgZWF4KHRo
aXMsIFg4NlJlZ2lzdGVyczo6ZWF4KTsKQEAgLTUzNjIsNyArNTM2Miw3IEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2RlKiBub2RlKQogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgICAgIAotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisjaWYgQ1BVKFg4
Nl82NCkKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigpLT5pc0ludDMyQ29uc3RhbnQoKSkgewog
ICAgICAgICAgICAgaW50MzJfdCBkaXZpc29yID0gbm9kZS0+Y2hpbGQyKCktPmFzSW50MzIoKTsK
ICAgICAgICAgICAgIGlmIChkaXZpc29yICYmIGRpdmlzb3IgIT0gLTEpIHsKQEAgLTU0MDMsNyAr
NTQwMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2RlKiBub2Rl
KQogI2VuZGlmCiAKICAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMih0aGlzLCBub2Rl
LT5jaGlsZDIoKSk7Ci0jaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0
KQogICAgICAgICBHUFJUZW1wb3JhcnkgZWF4KHRoaXMsIFg4NlJlZ2lzdGVyczo6ZWF4KTsKICAg
ICAgICAgR1BSVGVtcG9yYXJ5IGVkeCh0aGlzLCBYODZSZWdpc3RlcnM6OmVkeCk7CiAgICAgICAg
IEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7CkBAIC03NzgwLDcgKzc3ODAsNiBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUmVzdChOb2RlKiBub2RlKQogewogICAgIEFTU0VS
VChub2RlLT5vcCgpID09IENyZWF0ZVJlc3QpOwogCi0jaWYgIUNQVShYODYpCiAgICAgaWYgKG1f
aml0LmdyYXBoKCkuaXNXYXRjaGluZ0hhdmluZ0FCYWRUaW1lV2F0Y2hwb2ludChub2RlKSkgewog
ICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJhbmQgYXJyYXlMZW5ndGgodGhpcywgbm9k
ZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3JhcnkgYXJyYXlSZXN1bHQodGhpcyk7CkBA
IC03ODI1LDcgKzc4MjQsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUmVz
dChOb2RlKiBub2RlKQogICAgICAgICBjZWxsUmVzdWx0KGFycmF5UmVzdWx0R1BSLCBub2RlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZiAvLyAhQ1BVKFg4NikKIAogICAgIFNwZWN1
bGF0ZVN0cmljdEludDMyT3BlcmFuZCBhcnJheUxlbmd0aCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CiAgICAgR1BSVGVtcG9yYXJ5IGFyZ3VtZW50c1N0YXJ0KHRoaXMpOwpAQCAtMTMzODksMTYgKzEz
Mzg3LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldERpcmVjdFBuYW1lKE5vZGUq
IG5vZGUpCiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAgIEdQUlJlZyBwcm9w
ZXJ0eUdQUiA9IHByb3BlcnR5LmdwcigpOwogCi0jaWYgQ1BVKFg4NikKLSAgICAvLyBOb3QgZW5v
dWdoIHJlZ2lzdGVycyBvbiBYODYgZm9yIHRoaXMgY29kZSwgc28gYWx3YXlzIHVzZSB0aGUgc2xv
dyBwYXRoLgotICAgIHNwZWN1bGF0ZShub2RlLCBpbmRleEVkZ2UpOwotICAgIGZsdXNoUmVnaXN0
ZXJzKCk7Ci0gICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7Ci0g
ICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7Ci0gICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25HZXRCeVZhbENlbGwsIHJlc3VsdFJlZ3MsIGJhc2VHUFIsIENDYWxsSGVs
cGVyczo6Q2VsbFZhbHVlKHByb3BlcnR5R1BSKSk7Ci0gICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2so
KTsKLSAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwotI2Vsc2UKICAgICBFZGdl
JiBlbnVtZXJhdG9yRWRnZSA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMyk7CiAg
ICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIGluZGV4KHRoaXMsIGluZGV4RWRnZSk7CiAg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZW51bWVyYXRvcih0aGlzLCBlbnVtZXJhdG9yRWRnZSk7
CkBAIC0xMzQ0NSw3ICsxMzQzMyw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRE
aXJlY3RQbmFtZShOb2RlKiBub2RlKQogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRo
Q2FsbChzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uR2V0QnlWYWxDZWxsLCByZXN1bHRSZWdzLCBi
YXNlR1BSLCBDQ2FsbEhlbHBlcnM6OkNlbGxWYWx1ZShwcm9wZXJ0eUdQUikpKTsKIAogICAgIGpz
VmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUV4dHJhY3RDYXRjaExvY2FsKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggNTg0YTQ5ZDE5YjJm
OTQ4ZjgyZTFiZGNiODNkNmZmMzZhOGRkMmViYy4uYzgzNTRhMTIyNTM0NWYxOWE0ZjliYjhmY2Qx
Y2IxNjYyNTYxZTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaApAQCAtMTA0NCwxNyArMTA0NCw3IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsK
ICNlbmRpZgogICAgIH0KIAotI2lmIENQVShYODYpCi0gICAgSklUQ29tcGlsZXI6OkNhbGwgYXBw
ZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0
aW9uLCBGUFJSZWcgcmVzdWx0KQotICAgIHsKLSAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bCA9IGFwcGVuZENhbGwoZnVuY3Rpb24pOwotICAgICAgICBpZiAocmVzdWx0ICE9IEludmFsaWRG
UFJSZWcpIHsKLSAgICAgICAgICAgIG1faml0LmFzc2VtYmxlcigpLmZzdHBsKDAsIEpJVENvbXBp
bGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAgICAgICAgICBtX2ppdC5sb2FkRG91Ymxl
KEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgcmVzdWx0KTsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm4gY2FsbDsKLSAgICB9Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgJiYgIUNQ
VShBUk1fSEFSREZQKQorI2lmIENQVShBUk1fVEhVTUIyKSAmJiAhQ1BVKEFSTV9IQVJERlApCiAg
ICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlvblB0
cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBGUFJSZWcgcmVzdWx0KQogICAgIHsKICAgICAg
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGwoZnVuY3Rpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
aW5kZXggNTRkMzM5MjMyYjlmYjQ0MmZjZmJlMDAxYzJkZDU3MGI2M2U4ZWQwMy4uZTllOTI5MTJk
YTMyMWRkNzYyM2M0N2RjNDQzODllM2I3YWU2OWQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC04NjQsOSArODY0
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAgICAg
SklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICAgICAgCiAgICAgICAg
IEpJVENvbXBpbGVyOjpMYWJlbCBzbG93UGF0aCA9IG1faml0LmxhYmVsKCk7Ci0gICAgICAgIGlm
IChpc1g4NigpKQotICAgICAgICAgICAgbV9qaXQucG9wKEpJVENvbXBpbGVyOjpzZWxlY3RTY3Jh
dGNoR1BSKGNhbGxlZVBheWxvYWRHUFIpKTsKLQogICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvbkxpbmtEaXJlY3RDYWxsLCBpbmZvLCBjYWxsZWVQYXlsb2FkR1BSKTsKICAgICAgICAgbV9q
aXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgbV9qaXQuanVtcCgpLmxpbmtUbyhtYWluUGF0
aCwgJm1faml0KTsKQEAgLTI3MDcsNDcgKzI3MDQsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogCiAgICAgY2FzZSBQdXRCeVZhbFdpdGhUaGlzOiB7
Ci0jaWYgQ1BVKFg4NikKLSAgICAgICAgLy8gV2UgZG9uJ3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJz
IG9uIFg4NiB0byBkbyB0aGlzCi0gICAgICAgIC8vIHdpdGhvdXQgc2V0dGluZyB1cCB0aGUgY2Fs
bCBmcmFtZSBpbmNyZW1lbnRhbGx5LgotICAgICAgICB1bnNpZ25lZCBpbmRleCA9IDA7Ci0gICAg
ICAgIG1faml0LnBva2UoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIGluZGV4KyspOwotCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIGJhc2UodGhpcywgbV9qaXQuZ3Jh
cGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7Ci0gICAgICAgICAgICBHUFJSZWcgYmFzZVRhZyA9
IGJhc2UudGFnR1BSKCk7Ci0gICAgICAgICAgICBHUFJSZWcgYmFzZVBheWxvYWQgPSBiYXNlLnBh
eWxvYWRHUFIoKTsKLQotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgdGhpc1ZhbHVlKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMSkpOwotICAgICAgICAgICAgR1BSUmVn
IHRoaXNWYWx1ZVRhZyA9IHRoaXNWYWx1ZS50YWdHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyB0
aGlzVmFsdWVQYXlsb2FkID0gdGhpc1ZhbHVlLnBheWxvYWRHUFIoKTsKLQotICAgICAgICAgICAg
SlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChu
b2RlLCAyKSk7Ci0gICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlUYWcgPSBwcm9wZXJ0eS50YWdH
UFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVBheWxvYWQgPSBwcm9wZXJ0eS5wYXls
b2FkR1BSKCk7Ci0KLSAgICAgICAgICAgIG1faml0LnBva2UoYmFzZVBheWxvYWQsIGluZGV4Kysp
OwotICAgICAgICAgICAgbV9qaXQucG9rZShiYXNlVGFnLCBpbmRleCsrKTsKLQotICAgICAgICAg
ICAgbV9qaXQucG9rZSh0aGlzVmFsdWVQYXlsb2FkLCBpbmRleCsrKTsKLSAgICAgICAgICAgIG1f
aml0LnBva2UodGhpc1ZhbHVlVGFnLCBpbmRleCsrKTsKLQotICAgICAgICAgICAgbV9qaXQucG9r
ZShwcm9wZXJ0eVBheWxvYWQsIGluZGV4KyspOwotICAgICAgICAgICAgbV9qaXQucG9rZShwcm9w
ZXJ0eVRhZywgaW5kZXgrKyk7Ci0KLSAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgp
LnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKLSAgICAgICAgR1BSUmVnIHZhbHVlVGFnID0gdmFsdWUu
dGFnR1BSKCk7Ci0gICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWQgPSB2YWx1ZS5wYXlsb2FkR1BS
KCk7Ci0gICAgICAgIG1faml0LnBva2UodmFsdWVQYXlsb2FkLCBpbmRleCsrKTsKLSAgICAgICAg
bV9qaXQucG9rZSh2YWx1ZVRhZywgaW5kZXgrKyk7Ci0KLSAgICAgICAgZmx1c2hSZWdpc3RlcnMo
KTsKLSAgICAgICAgYXBwZW5kQ2FsbChtX2ppdC5pc1N0cmljdE1vZGVGb3Iobm9kZS0+b3JpZ2lu
LnNlbWFudGljKSA/IG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXNTdHJpY3QgOiBvcGVyYXRpb25Q
dXRCeVZhbFdpdGhUaGlzKTsKLSAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKLSNlbHNl
CiAgICAgICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6bnVtYmVyT2ZSZWdpc3RlcnMgPj0gOCwg
IldlIGFyZSBhc3N1bWluZyB3ZSBoYXZlIGVub3VnaCByZWdpc3RlcnMgdG8gbWFrZSB0aGlzIGNh
bGwgd2l0aG91dCBpbmNyZW1lbnRhbGx5IHNldHRpbmcgdXAgdGhlIGFyZ3VtZW50cy4iKTsKIAog
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hp
bGQobm9kZSwgMCkpOwpAQCAtMjc2Niw3ICsyNzIyLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjYWxsT3BlcmF0aW9uKG1faml0LmlzU3RyaWN0
TW9kZUZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpID8gb3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhp
c1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRoaXMsCiAgICAgICAgICAgICBOb1Jlc3Vs
dCwgYmFzZVJlZ3MsIHRoaXNSZWdzLCBwcm9wZXJ0eVJlZ3MsIHZhbHVlUmVncyk7CiAgICAgICAg
IG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0jZW5kaWYgLy8gQ1BVKFg4NikKIAogICAgICAgICBu
b1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7CkBAIC0zODY2LDIyICszODIxLDYgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgSGFzT3duUHJvcGVydHk6IHsKLSNpZiBDUFUoWDg2KQotICAgICAgICBBU1NFUlQo
bm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFVudHlwZWRVc2UpOwotICAgICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBvYmplY3QodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICBKU1Zh
bHVlT3BlcmFuZCBrZXkodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwotICAgICAgICBHUFJUZW1wb3Jh
cnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvYmplY3QpOwotCi0gICAgICAgIEpTVmFsdWVSZWdzIGtl
eVJlZ3MgPSBrZXkuanNWYWx1ZVJlZ3MoKTsKLSAgICAgICAgR1BSUmVnIG9iamVjdEdQUiA9IG9i
amVjdC5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKLQot
ICAgICAgICBzcGVjdWxhdGVPYmplY3Qobm9kZS0+Y2hpbGQxKCkpOwotCi0gICAgICAgIGZsdXNo
UmVnaXN0ZXJzKCk7Ci0gICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uSGFzT3duUHJvcGVy
dHksIHJlc3VsdEdQUiwgb2JqZWN0R1BSLCBrZXlSZWdzKTsKLSAgICAgICAgYm9vbGVhblJlc3Vs
dChyZXN1bHRHUFIsIG5vZGUpOwotI2Vsc2UKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQg
b2JqZWN0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IHVuaXF1
ZWRTdHJpbmdJbXBsKHRoaXMpOwogICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKQEAg
LTM5ODAsNyArMzkxOSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9k
ZSkKIAogICAgICAgICBkb25lLmxpbmsoJm1faml0KTsKICAgICAgICAgYm9vbGVhblJlc3VsdChy
ZXN1bHRHUFIsIG5vZGUpOwotI2VuZGlmIC8vIENQVShYODYpCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwCmluZGV4IDhjOTZjN2Vm
MDJmNzFiMzc0MjU4MTQ4YTFlMGZhMDc4YmFkMzA1OTguLjlkMDlmZTcxNTQxYzAyNjViMWMxOTll
YzBkYjdkMzllZGQxMTkxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RodW5rcy5j
cHAKQEAgLTc2LDExICs3Niw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRh
Zz4gb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRvcihWTSYgdm0pCiAgICAgaml0LnN0b3Jl
UHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRyKHNjcmF0Y2hTaXplKSwgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDApKTsKIAogICAgIC8vIFNldCB1cCBvbmUgYXJn
dW1lbnQuCi0jaWYgQ1BVKFg4NikKLSAgICBqaXQucG9rZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgMCk7Ci0jZWxzZQogICAgIGppdC5tb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotI2VuZGlmCiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6
Q2FsbCBmdW5jdGlvbkNhbGwgPSBqaXQuY2FsbChPcGVyYXRpb25QdHJUYWcpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKaW5kZXggZmE5Zjg1MGFmZGU2N2U1MGM2YWRh
OTUwMGUzZDg2YTcyZWJmMmI5Yi4uZmE5YmZjNzBiNmNlOGU5ZTMyZTM1NmRhMTUyMWRlNzlhZjAw
NzI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExUaHVua3MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMVGh1bmtzLmNwcApAQCAtMTgxLDcg
KzE4MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gc2xvd1BhdGhD
YWxsVGh1bmtHZW5lcmF0b3IoY29uc3QgU2xvd1BhdGhDCiAgICAgCiAgICAgc2l6ZV90IGN1cnJl
bnRPZmZzZXQgPSBrZXkub2Zmc2V0KCkgKyBzaXplb2Yodm9pZCopOwogICAgIAotI2lmIENQVShY
ODYpIHx8IENQVShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICBjdXJyZW50T2Zmc2V0ICs9
IHNpemVvZih2b2lkKik7CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCAxNWY1ZjlmN2RlYzhlMzRhNGM5NTcyMmE1MzU4
ZWI3MzM2YjcxNDA3Li4zZDE3NjAxODM4ZDNlZmMyOTgzZWNjYjlkYjgxZDZjZTJhZjRjNzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC0y
NTAsMTEgKzI1MCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxwZXJzOjpjYWxsRXhjZXB0aW9uRnV6eihW
TSYgdm0pCiAgICAgfQogCiAgICAgLy8gU2V0IHVwIG9uZSBhcmd1bWVudC4KLSNpZiBDUFUoWDg2
KQotICAgIHBva2UoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIDApOwotI2Vsc2UKICAgICBt
b3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwot
I2VuZGlmCiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKHRhZ0NGdW5jdGlvblB0cjxPcGVyYXRpb25Q
dHJUYWc+KG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enopKSwgR1BSSW5mbzo6bm9uUHJlc2VydmVkTm9u
UmV0dXJuR1BSKTsKICAgICBjYWxsKEdQUkluZm86Om5vblByZXNlcnZlZE5vblJldHVybkdQUiwg
T3BlcmF0aW9uUHRyVGFnKTsKIApAQCAtOTMyLDExICs5MjgsNiBAQCB2b2lkIEFzc2VtYmx5SGVs
cGVyczo6ZGVidWdDYWxsKFZNJiB2bSwgVl9EZWJ1Z09wZXJhdGlvbl9FUFAgZnVuY3Rpb24sIHZv
aWQqIGFyZwogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhcmd1bWVudCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSk7CiAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICBHUFJSZWcgc2NyYXRjaCA9IHNlbGVjdFNjcmF0Y2hHUFIoR1BS
SW5mbzo6YXJndW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMik7Ci0jZWxpZiBDUFUoWDg2KQotICAgIHBva2UoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIDApOwotICAgIHBva2UoVHJ1c3RlZEltbVB0cihhcmd1bWVudCksIDEpOwotICAgIHBv
a2UoVHJ1c3RlZEltbVB0cihidWZmZXIpLCAyKTsKLSAgICBHUFJSZWcgc2NyYXRjaCA9IEdQUklu
Zm86OnJlZ1QwOwogI2Vsc2UKICNlcnJvciAiSklUIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0
Zm9ybS4iCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNz
ZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVy
cy5oCmluZGV4IDIxNGI0MThmOGEwMzdjNGQzMjg4OTA4YTZlYjc5MGViOTkwZDViYjUuLmM3ODNh
ZjQ4MmI3NmU2YmI3ODg4MzI0NDY3NWJhYTE2NWY3Y2Q2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAtNDgxLDcgKzQ4MSw3IEBAIGNsYXNzIEFz
c2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIH0KICAgICB9
CiAKLSNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQorI2lmIENQVShYODZfNjQpCiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBzaXplX3QgcHJvbG9ndWVTdGFja1BvaW50ZXJEZWx0YSgpCiAgICAgewog
ICAgICAgICAvLyBQcm9sb2d1ZSBvbmx5IHNhdmVzIHRoZSBmcmFtZVBvaW50ZXJSZWdpc3RlcgpA
QCAtNTE5LDcgKzUxOSw3IEBAIGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fz
c2VtYmxlciB7CiAgICAgewogICAgICAgICBwdXNoKGFkZHJlc3MpOwogICAgIH0KLSNlbmRpZiAv
LyBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQorI2VuZGlmIC8vIENQVShYODZfNjQpCiAKICNpZiBD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQogICAgIHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90
IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQpAQCAtMTYyNywxMiArMTYyNyw2IEBAIGNsYXNz
IEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAgICAgewogICAgICAg
ICBBU1NFUlQoc2NyYXRjaEdQUiAhPSByZXN1bHRHUFIpOwogICAgICAgICBKdW1wIGRvbmU7Ci0g
ICAgICAgIGlmIChpc1g4NigpICYmICFpc1g4Nl82NCgpKSB7Ci0gICAgICAgICAgICBKdW1wIG5v
blplcm8gPSBicmFuY2hUZXN0MzIoTm9uWmVybywgdmVjdG9yTGVuZ3RoR1BSKTsKLSAgICAgICAg
ICAgIG1vdmUoVHJ1c3RlZEltbTMyKDApLCByZXN1bHRHUFIpOwotICAgICAgICAgICAgZG9uZSA9
IGp1bXAoKTsKLSAgICAgICAgICAgIG5vblplcm8ubGluayh0aGlzKTsKLSAgICAgICAgfQogICAg
ICAgICAvLyBJZiB2ZWN0b3JMZW5ndGggPT0gMCB0aGVuIGNseiB3aWxsIHJldHVybiAzMiBvbiBi
b3RoIEFSTSBhbmQgeDg2LiBPbiA2NC1iaXQgc3lzdGVtcywgd2UgY2FuIHRoZW4gZG8gYSA2NC1i
aXQgcmlnaHQgc2hpZnQgb24gYSAzMi1iaXQgLTEgdG8gZ2V0IGEgMCBtYXNrIGZvciB6ZXJvIHZl
Y3Rvckxlbmd0aC4gT24gMzItYml0IEFSTSwgc2hpZnQgbWFza3Mgd2l0aCAweGZmLCB3aGljaCBt
ZWFucyBpdCB3aWxsIHN0aWxsIGNyZWF0ZSBhIDAgbWFzay4KICAgICAgICAgY291bnRMZWFkaW5n
WmVyb3MzMih2ZWN0b3JMZW5ndGhHUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICBtb3ZlKFRydXN0
ZWRJbW0zMigtMSksIHJlc3VsdEdQUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhl
bHBlcnMuaAppbmRleCA4NzAxOTdhZjdjZjY5NmUxNDYyZGM1ODdhMDc3YjFjMTMwZWFiODVlLi5i
ZTljMTMwODVkMjk3NTIyOWZhNWQ4ZjdkZWU2OTIxZWM2MTc0ZTRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTQxMiw0MyArNDEyLDcgQEAgY2xhc3MgQ0Nh
bGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiAgICAgfQogCiAjZWxzZSAvLyBV
U0UoSlNWQUxVRTY0KQotI2lmIENQVShYODYpCi0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVy
YXRpb25UeXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1
bnNpZ25lZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1D
cm9zc1NvdXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgZXh0cmFQb2tlLCB0
eXBlbmFtZS4uLiBBcmdzPgotICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c0lt
cGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1HUFJTb3VyY2VzLCBudW1GUFJBcmdzLCBu
dW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJncywgZXh0cmFQb2tlPiBh
cmdTb3VyY2VSZWdzLCBGUFJSZWcgYXJnLCBBcmdzLi4uIGFyZ3MpCi0gICAgewotICAgICAgICBz
dGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxDVVJSRU5UX0FSR1VNRU5UX1RZUEUsIGRvdWJsZT46
OnZhbHVlLCAiV2Ugc2hvdWxkIG9ubHkgYmUgcGFzc2luZyBGUFJSZWdzIHRvIGEgZG91YmxlIik7
Ci0gICAgICAgIHBva2VGb3JBcmd1bWVudChhcmcsIG51bUdQUkFyZ3MsIG51bUZQUkFyZ3MsIG51
bUNyb3NzU291cmNlcywgZXh0cmFHUFJBcmdzLCBleHRyYVBva2UpOwotICAgICAgICBzZXR1cEFy
Z3VtZW50c0ltcGw8T3BlcmF0aW9uVHlwZT4oYXJnU291cmNlUmVncy5hZGRTdGFja0FyZyhhcmcp
LmFkZFBva2UoKSwgYXJncy4uLik7Ci0gICAgfQotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgT3Bl
cmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BSU291cmNlcywg
dW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5zaWduZWQgbnVt
Q3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFyZ3MsIHVuc2lnbmVkIGV4dHJhUG9rZSwg
dHlwZW5hbWUuLi4gQXJncz4KLSAgICBBTFdBWVNfSU5MSU5FIHN0ZDo6ZW5hYmxlX2lmX3Q8c2l6
ZW9mKENVUlJFTlRfQVJHVU1FTlRfVFlQRSkgPD0gND4KLSAgICBzZXR1cEFyZ3VtZW50c0ltcGwo
QXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1HUFJTb3VyY2VzLCBudW1GUFJBcmdzLCBudW1G
UFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJncywgZXh0cmFQb2tlPiBhcmdT
b3VyY2VSZWdzLCBHUFJSZWcgYXJnLCBBcmdzLi4uIGFyZ3MpCi0gICAgewotICAgICAgICBwb2tl
Rm9yQXJndW1lbnQoYXJnLCBudW1HUFJBcmdzLCBudW1GUFJBcmdzLCBudW1Dcm9zc1NvdXJjZXMs
IGV4dHJhR1BSQXJncywgZXh0cmFQb2tlKTsKLSAgICAgICAgc2V0dXBBcmd1bWVudHNJbXBsPE9w
ZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MuYWRkR1BSQXJnKCksIGFyZ3MuLi4pOwotICAgIH0K
LQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHVuc2lnbmVkIG51bUdQUkFy
Z3MsIHVuc2lnbmVkIG51bUdQUlNvdXJjZXMsIHVuc2lnbmVkIG51bUZQUkFyZ3MsIHVuc2lnbmVk
IG51bUZQUlNvdXJjZXMsIHVuc2lnbmVkIG51bUNyb3NzU291cmNlcywgdW5zaWduZWQgZXh0cmFH
UFJBcmdzLCB1bnNpZ25lZCBleHRyYVBva2UsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgQUxXQVlT
X0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxDVVJSRU5UX0FSR1VNRU5UX1RZ
UEUsIEVuY29kZWRKU1ZhbHVlPjo6dmFsdWU+Ci0gICAgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0Nv
bGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291
cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZT4gYXJnU291cmNl
UmVncywgQ2VsbFZhbHVlIHBheWxvYWQsIEFyZ3MuLi4gYXJncykKLSAgICB7Ci0gICAgICAgIHBv
a2VGb3JBcmd1bWVudChwYXlsb2FkLmdwcigpLCBudW1HUFJBcmdzLCBudW1GUFJBcmdzLCBudW1D
cm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJncywgZXh0cmFQb2tlKTsKLSAgICAgICAgcG9rZUZvckFy
Z3VtZW50KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgbnVtR1BSQXJncywgbnVtRlBS
QXJncywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZSArIDEpOwotICAg
ICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9uVHlwZT4oYXJnU291cmNlUmVncy5hZGRH
UFJBcmcoKS5hZGRQb2tlKCksIGFyZ3MuLi4pOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVu
YW1lIE9wZXJhdGlvblR5cGUsIHVuc2lnbmVkIG51bUdQUkFyZ3MsIHVuc2lnbmVkIG51bUdQUlNv
dXJjZXMsIHVuc2lnbmVkIG51bUZQUkFyZ3MsIHVuc2lnbmVkIG51bUZQUlNvdXJjZXMsIHVuc2ln
bmVkIG51bUNyb3NzU291cmNlcywgdW5zaWduZWQgZXh0cmFHUFJBcmdzLCB1bnNpZ25lZCBleHRy
YVBva2UsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgQUxXQVlTX0lOTElORSBzdGQ6OmVuYWJsZV9p
Zl90PHN0ZDo6aXNfc2FtZTxDVVJSRU5UX0FSR1VNRU5UX1RZUEUsIEVuY29kZWRKU1ZhbHVlPjo6
dmFsdWU+Ci0gICAgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BSQXJncywg
bnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NTb3VyY2Vz
LCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVncywgSlNWYWx1ZVJlZ3MgYXJn
LCBBcmdzLi4uIGFyZ3MpCi0gICAgewotICAgICAgICBwb2tlRm9yQXJndW1lbnQoYXJnLnBheWxv
YWRHUFIoKSwgbnVtR1BSQXJncywgbnVtRlBSQXJncywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQ
UkFyZ3MsIGV4dHJhUG9rZSk7Ci0gICAgICAgIHBva2VGb3JBcmd1bWVudChhcmcudGFnR1BSKCks
IG51bUdQUkFyZ3MsIG51bUZQUkFyZ3MsIG51bUNyb3NzU291cmNlcywgZXh0cmFHUFJBcmdzLCBl
eHRyYVBva2UgKyAxKTsKLSAgICAgICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+
KGFyZ1NvdXJjZVJlZ3MuYWRkR1BSQXJnKCkuYWRkUG9rZSgpLCBhcmdzLi4uKTsKLSAgICB9Ci0K
LSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQUykKKyNpZiBDUFUoQVJNX1RIVU1CMikg
fHwgQ1BVKE1JUFMpCiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNp
Z25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1GUFJB
cmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1NvdXJjZXMsIHVu
c2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgZXh0cmFQb2tlLCB0eXBlbmFtZS4uLiBBcmdz
PgogICAgIHZvaWQgc2V0dXBBcmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BSQXJncywg
bnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NTb3VyY2Vz
LCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVncywgRlBSUmVnIGFyZywgQXJn
cy4uLiBhcmdzKQpAQCAtNjY5LDcgKzYzMyw3IEBAIGNsYXNzIENDYWxsSGVscGVycyA6IHB1Ymxp
YyBBc3NlbWJseUhlbHBlcnMgewogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50
c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1HUFJTb3VyY2VzLCBudW1GUFJBcmdz
LCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJncywgZXh0cmFQb2tl
PiBhcmdTb3VyY2VSZWdzKQogICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydChGdW5jdGlvblRy
YWl0czxPcGVyYXRpb25UeXBlPjo6YXJpdHkgPT0gbnVtR1BSQXJncyArIG51bUZQUkFyZ3MsICJP
bmUgbGFzdCBzYW5pdHkgY2hlY2siKTsKLSNpZiBVU0UoSlNWQUxVRTY0KSB8fCBDUFUoWDg2KQor
I2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0YXRpY19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8
T3BlcmF0aW9uVHlwZT46OmNDYWxsQXJpdHkoKSA9PSBudW1HUFJBcmdzICsgbnVtRlBSQXJncyAr
IGV4dHJhUG9rZSwgIkNoZWNrIHRoZSBDQ2FsbCBhcml0eSIpOwogI2VuZGlmCiAgICAgICAgIHNl
dHVwU3R1YkFyZ3M8bnVtR1BSU291cmNlcywgR1BSUmVnPihjbGFtcEFycmF5VG9TaXplPG51bUdQ
UlNvdXJjZXMsIEdQUlJlZz4oYXJnU291cmNlUmVncy5ncHJEZXN0aW5hdGlvbnMpLCBjbGFtcEFy
cmF5VG9TaXplPG51bUdQUlNvdXJjZXMsIEdQUlJlZz4oYXJnU291cmNlUmVncy5ncHJTb3VyY2Vz
KSk7CkBAIC04MTIsNyArNzc2LDcgQEAgY2xhc3MgQ0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2Vt
Ymx5SGVscGVycyB7CiAjZWxpZiBDUFUoTUlQUykKICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGZy
YW1lUG9pbnRlclJlZ2lzdGVyLCBzaXplb2Yodm9pZCopKSwgcmV0dXJuQWRkcmVzc1JlZ2lzdGVy
KTsKICAgICAgICAgc3ViUHRyKFRydXN0ZWRJbW0zMigyICogc2l6ZW9mKHZvaWQqKSksIG5ld0Zy
YW1lU2l6ZUdQUik7Ci0jZWxpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorI2VsaWYgQ1BVKFg4
Nl82NCkKICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBzaXpl
b2Yodm9pZCopKSwgdGVtcEdQUik7CiAgICAgICAgIHB1c2godGVtcEdQUik7CiAgICAgICAgIHN1
YlB0cihUcnVzdGVkSW1tMzIoc2l6ZW9mKHZvaWQqKSksIG5ld0ZyYW1lU2l6ZUdQUik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFtZVNodWZmbGVyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwCmluZGV4IDUz
OWU1MDJlZGE1YmM4NjVkY2Q5ZmU0NmUxNGVjMGQ5ZDkxYzA1MDguLmU3NzUyNTk5NzY0MGU2MTRj
OTc3Yjk0NmYzYmQ2MmU1ZjAxZTJhNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwCkBAIC0zNzcsMTkgKzM3Nyw3IEBAIHZvaWQgQ2FsbEZy
YW1lU2h1ZmZsZXI6OnByZXBhcmVGb3JUYWlsQ2FsbCgpCiAgICAgbV9vbGRGcmFtZUJhc2UgPSBN
YWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXI7CiAgICAgbV9vbGRGcmFtZU9mZnNl
dCA9IG51bUxvY2FscygpOwogICAgIG1fbmV3RnJhbWVCYXNlID0gYWNxdWlyZUdQUigpOwotI2lm
IENQVShYODYpCi0gICAgLy8gV2UgbG9hZCB0aGUgZnJhbWUgcG9pbnRlciBtYW51YWxseSwgYnV0
IHdlIG5lZWQgdG8gYXNrIHRoZQotICAgIC8vIGFsZ29yaXRobSB0byBtb3ZlIHRoZSByZXR1cm4g
UEMgZm9yIHVzIChpdCdkIHByb2JhYmx5Ci0gICAgLy8gcmVxdWlyZSBhIHdyaXRlIHRvIHRoZSBk
YW5nZXIgem9uZSkuIFNpbmNlIGl0J2QgYmUgYXdrd2FyZAotICAgIC8vIHRvIGFzayBmb3IgaGFs
ZiBhIHZhbHVlIG1vdmUsIHdlIGFzayB0aGF0IHRoZSB3aG9sZSB0aGluZwotICAgIC8vIGJlIG1v
dmVkIGZvciB1cy4KLSAgICBhZGROZXcoVmlydHVhbFJlZ2lzdGVyIHsgMCB9LAotICAgICAgICBW
YWx1ZVJlY292ZXJ5OjpkaXNwbGFjZWRJbkpTU3RhY2soVmlydHVhbFJlZ2lzdGVyKDApLCBEYXRh
Rm9ybWF0SlMpKTsKLQotICAgIC8vIHNwIHdpbGwgcG9pbnQgdG8gaGVhZDAgYW5kIHdlIHdpbGwg
bW92ZSBpdCB1cCBoYWxmIGEgc2xvdAotICAgIC8vIG1hbnVhbGx5Ci0gICAgbV9uZXdGcmFtZU9m
ZnNldCA9IDA7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCisjaWYgQ1BVKEFS
TV9USFVNQjIpIHx8IENQVShNSVBTKQogICAgIC8vIFdlIGxvYWQgdGhlIGZyYW1lIHBvaW50ZXIg
YW5kIGxpbmsgcmVnaXN0ZXIKICAgICAvLyBtYW51YWxseS4gV2UgY291bGQgYXNrIHRoZSBhbGdv
cml0aG0gdG8gbG9hZCB0aGVtIGZvciB1cywKICAgICAvLyBhbmQgaXQgd291bGQgYWxsb3cgdXMg
dG8gdXNlIHRoZSBsaW5rIHJlZ2lzdGVyIGFzIGFuIGV4dHJhCkBAIC00NzYsMTIgKzQ2NCw2IEBA
IHZvaWQgQ2FsbEZyYW1lU2h1ZmZsZXI6OnByZXBhcmVGb3JUYWlsQ2FsbCgpCiAKICAgICBwcmVw
YXJlQW55KCk7CiAKLSNpZiBDUFUoWDg2KQotICAgIGlmICh2ZXJib3NlKQotICAgICAgICBkYXRh
TG9nKCIgIFNpbXVsYXRpbmcgcG9wIG9mIHRoZSBjYWxsIGZyYW1lIHJlZ2lzdGVyXG4iKTsKLSAg
ICBtX2ppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihzaXplb2Yodm9pZCop
KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSNlbmRpZgotCiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coIlJlYWR5IGZvciB0YWlsIGNhbGwhXG4iKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRleCAzNmRlNTNhMGJjM2E3MmY1NTU4ZDE5
ZWRhNjQ3NmFmMDQ5NDZlYzZjLi5iMTY3ZjFjMjZhYWZiMDNlZDNhMTc4ZWMxNjA1NDJiODdmYzk0
YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCkBAIC05NDUsMTIgKzk0NSw2IEBAIHZv
aWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKIAogICAgICAgICBtb3Zl
KFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICBt
b3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwot
Ci0jaWYgQ1BVKFg4NikKLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJz
dHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5
ZXIhCi0gICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcG9rZShH
UFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwotI2VuZGlmCiAgICAgICAgIG1fY2FsbHMuYXBwZW5k
KENhbGxSZWNvcmQoY2FsbChPcGVyYXRpb25QdHJUYWcpLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVu
c2lnbmVkPjo6bWF4KCksIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4obG9va3VwRXhjZXB0
aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSkpKTsKICAgICAgICAganVtcFRvRXhjZXB0aW9uSGFu
ZGxlcih2bSgpKTsKICAgICB9CkBAIC05NjQsMTIgKzk1OCw2IEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKICAgICAgICAgLy8gbG9va3VwRXhjZXB0aW9uSGFu
ZGxlciBpcyBwYXNzZWQgdHdvIGFyZ3VtZW50cywgdGhlIFZNIGFuZCB0aGUgZXhlYyAodGhlIENh
bGxGcmFtZSopLgogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwotCi0jaWYgQ1BVKFg4NikKLSAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBp
biB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCi0gICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwotI2VuZGlm
CiAgICAgICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbChPcGVyYXRpb25QdHJUYWcp
LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIEZ1bmN0aW9uUHRyPE9wZXJh
dGlvblB0clRhZz4obG9va3VwRXhjZXB0aW9uSGFuZGxlcikpKTsKICAgICAgICAganVtcFRvRXhj
ZXB0aW9uSGFuZGxlcih2bSgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKaW5kZXggOTA4YzQ2ODhmNWRjY2I5YTdkYWVlNDdl
NGJjNTliMzc0MTBjMWY0MC4uNGRlZjcwZWFhMDcxYTk0ZmQxZjFiZTNjOGFhNTRlZTRmY2EzOGRj
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0aG1ldGljMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0
LmNwcApAQCAtMzM0LDUzICszMzQsMTUgQEAgdm9pZCBKSVQ6OmVtaXRCaW5hcnlEb3VibGVPcChj
b25zdCBJbnN0cnVjdGlvbiAqaW5zdHJ1Y3Rpb24sIE9wZXJhbmRUeXBlcyB0eXBlcywKIAogdm9p
ZCBKSVQ6OmVtaXRfb3BfbW9kKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiB7Ci0jaWYgQ1BVKFg4NikKLSAgICBhdXRvIGJ5dGVjb2RlID0gaW5zdHJ1Y3Rpb24tPmFzPE9w
TW9kPigpOwotICAgIGludCBkc3QgPSBieXRlY29kZS5tX2RzdC5vZmZzZXQoKTsKLSAgICBpbnQg
b3AxID0gYnl0ZWNvZGUubV9saHMub2Zmc2V0KCk7Ci0gICAgaW50IG9wMiA9IGJ5dGVjb2RlLm1f
cmhzLm9mZnNldCgpOwotCi0gICAgLy8gTWFrZSBzdXJlIHJlZ2lzdGVycyBhcmUgY29ycmVjdCBm
b3IgeDg2IElESVYgaW5zdHJ1Y3Rpb25zLgotICAgIEFTU0VSVChyZWdUMCA9PSBYODZSZWdpc3Rl
cnM6OmVheCk7Ci0gICAgQVNTRVJUKHJlZ1QxID09IFg4NlJlZ2lzdGVyczo6ZWR4KTsKLSAgICBB
U1NFUlQocmVnVDIgPT0gWDg2UmVnaXN0ZXJzOjplY3gpOwotICAgIEFTU0VSVChyZWdUMyA9PSBY
ODZSZWdpc3RlcnM6OmVieCk7Ci0KLSAgICBlbWl0TG9hZDIob3AxLCByZWdUMCwgcmVnVDMsIG9w
MiwgcmVnVDEsIHJlZ1QyKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdEludDMyKHJlZ1Qx
KSk7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RJbnQzMihyZWdUMCkpOwotCi0gICAgbW92
ZShyZWdUMywgcmVnVDApOwotICAgIGFkZFNsb3dDYXNlKGJyYW5jaFRlc3QzMihaZXJvLCByZWdU
MikpOwotICAgIEp1bXAgZGVub21pbmF0b3JOb3ROZWcxID0gYnJhbmNoMzIoTm90RXF1YWwsIHJl
Z1QyLCBUcnVzdGVkSW1tMzIoLTEpKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2gzMihFcXVhbCwg
cmVnVDAsIFRydXN0ZWRJbW0zMigtMjE0NzQ4MzY0Ny0xKSkpOwotICAgIGRlbm9taW5hdG9yTm90
TmVnMS5saW5rKHRoaXMpOwotICAgIHg4NkNvbnZlcnRUb0RvdWJsZVdvcmQzMigpOwotICAgIHg4
NkRpdjMyKHJlZ1QyKTsKLSAgICBKdW1wIG51bWVyYXRvclBvc2l0aXZlID0gYnJhbmNoMzIoR3Jl
YXRlclRoYW5PckVxdWFsLCByZWdUMywgVHJ1c3RlZEltbTMyKDApKTsKLSAgICBhZGRTbG93Q2Fz
ZShicmFuY2hUZXN0MzIoWmVybywgcmVnVDEpKTsKLSAgICBudW1lcmF0b3JQb3NpdGl2ZS5saW5r
KHRoaXMpOwotICAgIGVtaXRTdG9yZUludDMyKGRzdCwgcmVnVDEsIChvcDEgPT0gZHN0IHx8IG9w
MiA9PSBkc3QpKTsKLSNlbHNlCiAgICAgSklUU2xvd1BhdGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlz
LCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9tb2QpOwogICAgIHNsb3dQYXRoQ2FsbC5j
YWxsKCk7Ci0jZW5kaWYKIH0KIAotdm9pZCBKSVQ6OmVtaXRTbG93X29wX21vZChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJh
dG9yJiBpdGVyKQordm9pZCBKSVQ6OmVtaXRTbG93X29wX21vZChjb25zdCBJbnN0cnVjdGlvbios
IFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKQogewotI2lmIENQVShYODYpCi0gICAg
bGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKLQotICAgIEpJVFNsb3dQYXRoQ2FsbCBzbG93UGF0aENh
bGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93X3BhdGhfbW9kKTsKLSAgICBzbG93UGF0
aENhbGwuY2FsbCgpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oY3VycmVudEluc3RydWN0aW9u
KTsKLSAgICBVTlVTRURfUEFSQU0oaXRlcik7CiAgICAgLy8gV2Ugd291bGQgaGF2ZSByZWFsbHkg
dXNlZnVsIGFzc2VydGlvbnMgaGVyZSBpZiBpdCB3YXNuJ3QgZm9yIHRoZSBjb21waWxlcidzCiAg
ICAgLy8gaW5zaXN0ZW5jZSBvbiBhdHRyaWJ1dGUgbm9yZXR1cm4uCiAgICAgLy8gUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZgogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gRU5EOiBPUF9NT0QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Nsb3dQYXRoQ2FsbC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TbG93UGF0aENhbGwuaAppbmRleCBhZDc4NGIxYWNj
ZTQ2YjRjZjU1NGI5YjcxMjcwZTRmYzdlMTY4Y2U5Li44ZDJmYWE4NDViOGY4Y2I5YzMwYzk4MDQw
NjYwYjc2MTA5NzlhNmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ns
b3dQYXRoQ2FsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU2xvd1BhdGhDYWxs
LmgKQEAgLTQ5LDExICs0OSw3IEBAIGNsYXNzIEpJVFNsb3dQYXRoQ2FsbCB7CiAgICAgICAgICAg
ICBtX2ppdC0+c2FtcGxlSW5zdHJ1Y3Rpb24oJm1faml0LT5tX2NvZGVCbG9jay0+aW5zdHJ1Y3Rp
b25zKClbbV9qaXQtPm1fYnl0ZWNvZGVPZmZzZXRdLCB0cnVlKTsKICNlbmRpZgogICAgICAgICBt
X2ppdC0+dXBkYXRlVG9wQ2FsbEZyYW1lKCk7Ci0jaWYgQ1BVKFg4NikgJiYgVVNFKEpTVkFMVUUz
Ml82NCkKLSAgICAgICAgbV9qaXQtPmFkZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KC04KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICAgICAgbV9q
aXQtPnB1c2goSklUOjpUcnVzdGVkSW1tMzIoSklUOjpUcnVzdGVkSW1tUHRyKG1fcGMpKSk7Ci0g
ICAgICAgIG1faml0LT5wdXNoKEpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIpOwotI2VsaWYgQ1BVKFg4
Nl82NCkgJiYgT1MoV0lORE9XUykKKyNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQogICAg
ICAgICBtX2ppdC0+YWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLTE2KSwgTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKICAgICAgICAgbV9qaXQtPm1vdmUo
TWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBKSVQ6OmFyZ3VtZW50R1BSMCk7
CiAgICAgICAgIG1faml0LT5tb3ZlKEpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpJVDo6YXJndW1l
bnRHUFIxKTsKQEAgLTY1LDkgKzYxLDcgQEAgY2xhc3MgSklUU2xvd1BhdGhDYWxsIHsKICAgICAg
ICAgSklUOjpDYWxsIGNhbGwgPSBtX2ppdC0+Y2FsbChPcGVyYXRpb25QdHJUYWcpOwogICAgICAg
ICBtX2ppdC0+bV9jYWxscy5hcHBlbmQoQ2FsbFJlY29yZChjYWxsLCBtX2ppdC0+bV9ieXRlY29k
ZU9mZnNldCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihtX3Nsb3dQYXRoRnVuY3Rpb24p
KSk7CiAKLSNpZiBDUFUoWDg2KSAmJiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBtX2ppdC0+
YWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMTYpLCBNYWNyb0Fzc2VtYmxlcjo6
c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotI2VsaWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykK
KyNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQogICAgICAgICBtX2ppdC0+cG9wKEpJVDo6
cmVnVDApOyAvLyB2UEMKICAgICAgICAgbV9qaXQtPnBvcChKSVQ6OnJlZ1QxKTsgLy8gY2FsbEZy
YW1lIHJlZ2lzdGVyCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtH
ZW5lcmF0b3JzLmNwcAppbmRleCA2OTM5MjMxZjE5ZTkwMzY0MzliZjhmOTZjYWFhZjRiZTc0MzRl
MjUwLi5iNDViNmRmMTAzYzEyYTdhYmIwOWZlNDI1N2VhM2EzYTQzZWQ5ZjVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkBAIC0yNjgsMjQgKzI2
OCw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IG5hdGl2
ZUZvckdlbmVyYXRvcihWTSYgdm0sIFRodW5rRnVuCiAgICAgaml0LmVtaXRQdXRUb0NhbGxGcmFt
ZUhlYWRlcigwLCBDYWxsRnJhbWVTbG90Ojpjb2RlQmxvY2spOwogICAgIGppdC5zdG9yZVB0cihK
U0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZ2bS50b3BDYWxsRnJhbWUpOwogCi0j
aWYgQ1BVKFg4NikKLSAgICAvLyBDYWxsaW5nIGNvbnZlbnRpb246ICAgICAgZihlY3gsIGVkeCwg
Li4uKTsKLSAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25hdHVyZTogZihFeGVjU3RhdGUqKTsKLSAg
ICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVy
czo6ZWN4KTsKLQotICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4
KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sg
YWZ0ZXIgcHJvbG9ndWUuCi0KLSAgICAvLyBjYWxsIHRoZSBmdW5jdGlvbgotICAgIGppdC5lbWl0
R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihDYWxsRnJhbWVTbG90OjpjYWxsZWUsIEpTSW50ZXJm
YWNlSklUOjpyZWdUMSk7Ci0gICAgaWYgKHRodW5rRnVuY3Rpb25UeXBlID09IFRodW5rRnVuY3Rp
b25UeXBlOjpKU0Z1bmN0aW9uKSB7Ci0gICAgICAgIGppdC5sb2FkUHRyKEpTSW50ZXJmYWNlSklU
OjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVj
dXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEpOwotICAgICAgICBqaXQuY2FsbChKU0lu
dGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJVDo6cmVnVDEsIGV4ZWN1dGFibGVPZmZz
ZXRUb0Z1bmN0aW9uKSwgSlNFbnRyeVB0clRhZyk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGppdC5j
YWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwgSW50ZXJu
YWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlvbkZvcihraW5kKSksIEpTRW50cnlQdHJU
YWcpOwotCi0gICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBK
U0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotCi0jZWxpZiBDUFUoWDg2XzY0
KQorI2lmIENQVShYODZfNjQpCiAjaWYgIU9TKFdJTkRPV1MpCiAgICAgLy8gQ2FsbGluZyBjb252
ZW50aW9uOiAgICAgIGYoZWRpLCBlc2ksIGVkeCwgZWN4LCAuLi4pOwogICAgIC8vIEhvc3QgZnVu
Y3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwpAQCAtMzgyLDExICszNjUsNiBAQCBzdGF0
aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBuYXRpdmVGb3JHZW5lcmF0
b3IoVk0mIHZtLCBUaHVua0Z1bgogICAgIGppdC5jb3B5Q2FsbGVlU2F2ZXNUb0VudHJ5RnJhbWVD
YWxsZWVTYXZlc0J1ZmZlcih2bS50b3BFbnRyeUZyYW1lKTsKICAgICBqaXQuc3RvcmVQdHIoSlNJ
bnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCAmdm0udG9wQ2FsbEZyYW1lKTsKIAotI2lm
IENQVShYODYpICYmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgaml0LnN1YlB0cihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDQpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJ
bnRlcmZhY2VKSVQ6OnJlZ1QwKTsKLSAgICBqaXQucHVzaChKU0ludGVyZmFjZUpJVDo6cmVnVDAp
OwotI2Vsc2UKICNpZiBPUyhXSU5ET1dTKQogICAgIC8vIEFsbG9jYXRlIHNwYWNlIG9uIHN0YWNr
IGZvciB0aGUgNCBwYXJhbWV0ZXIgcmVnaXN0ZXJzLgogICAgIGppdC5zdWJQdHIoSlNJbnRlcmZh
Y2VKSVQ6OlRydXN0ZWRJbW0zMig0ICogc2l6ZW9mKGludDY0X3QpKSwgSlNJbnRlcmZhY2VKSVQ6
OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTM5NSw5ICszNzMsNyBAQCBzdGF0aWMgTWFjcm9B
c3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0mIHZt
LCBUaHVua0Z1bgogI2VuZGlmCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJ
bW1QdHIodGFnQ0Z1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uVk1IYW5kbGVF
eGNlcHRpb24pKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQuY2FsbChKU0ludGVy
ZmFjZUpJVDo6cmVnVDMsIE9wZXJhdGlvblB0clRhZyk7Ci0jaWYgQ1BVKFg4NikgJiYgVVNFKEpT
VkFMVUUzMl82NCkKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIo
OCksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0jZWxpZiBPUyhXSU5E
T1dTKQorI2lmIE9TKFdJTkRPV1MpCiAgICAgaml0LmFkZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1
c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIpOwogI2VuZGlmCiAKQEAgLTUyMyw5ICs0OTksNiBAQCBNYWNyb0Fzc2VtYmxl
ckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGFyaXR5Rml4dXBHZW5lcmF0b3IoVk0mIHZtKQogIyAg
ZW5kaWYKICAgICBqaXQucmV0KCk7CiAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KSBzZWN0aW9uIGFi
b3ZlLCBVU0UoSlNWQUxVRTMyXzY0KSBzZWN0aW9uIGJlbG93LgotIyAgaWYgQ1BVKFg4NikKLSAg
ICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7Ci0jICBlbmRpZgogICAgIGppdC5tb3Zl
KEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qz
KTsKICAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjphZGRyZXNzRm9yKENhbGxGcmFtZVNs
b3Q6OmFyZ3VtZW50Q291bnQpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRHUFIyKTsKICAgICBq
aXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihDYWxsRnJhbWU6OmhlYWRlclNp
emVJblJlZ2lzdGVycyksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIpOwpAQCAtNTgwLDEx
ICs1NTMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGFyaXR5Rml4
dXBHZW5lcmF0b3IoVk0mIHZtKQogCiAgICAgZG9uZS5saW5rKCZqaXQpOwogCi0jICBpZiBDUFUo
WDg2KQotICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7Ci0jICBlbmRpZgogICAg
IGppdC5yZXQoKTsKLSNlbmRpZiAvLyBFbmQgb2YgVVNFKEpTVkFMVUUzMl82NCkgc2VjdGlvbi4K
IAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0LCBHTE9CQUxfVEhVTktfSUQpOwogICAg
IHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKSVRUaHVua1B0clRhZywgImZpeHVw
IGFyaXR5Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWly
SVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2Vu
ZXJhdG9yLmNwcAppbmRleCAzN2VlZmY0ZTQ0NTMxNWU4MGNlZmRkYzUzODAwODZiZjMxNGFlOWJh
Li4zMTlhYTViZjA3NWNiZjBhZTAxNWIxMjA2OWNkMDQxOWM5ODliMTJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKQEAgLTIzNDQs
NyArMjM0NCw3IEBAIHZvaWQgQWlySVJHZW5lcmF0b3I6OmVtaXRNb2RPckRpdihib29sIGlzRGl2
LCBFeHByZXNzaW9uVHlwZSBsaHMsIEV4cHJlc3Npb25UeXBlCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAg
VG1wIGVheChYODZSZWdpc3RlcnM6OmVheCk7CiAgICAgVG1wIGVkeChYODZSZWdpc3RlcnM6OmVk
eCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKaW5kZXggODY5NTQ1OTY1
OTNmZTkwMTliN2UzYTlmYzhjZmIzYjc2ZjlkZjM3Mi4uN2Q0Zjk4YWViMzViMWY5OTkzODgxMDM1
OWY5Y2IyNmU1MjM2ZDAyOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIv
WWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAK
QEAgLTU0LDcgKzU0LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5m
bywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
cmV0dXJuUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOwogICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIHJldHVyblJlZ2lzdGVyMiA9IEFSTVJlZ2lzdGVyczo6cjE7CiAKLSNkZWZpbmUgSEFW
RV9JTklUSUFMX1NUQVJUX1JFRwogI2VsaWYgQ1BVKEFSTTY0KQogICAgIC8vIEFyZ3VtZW50IHJl
Z2lzdGVycwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGlucHV0ID0gQVJNNjRSZWdpc3Rl
cnM6OngwOwpAQCAtODAsNyArNzksNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlh
cnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCByZXR1cm5SZWdpc3RlcjIgPSBBUk02NFJlZ2lzdGVyczo6eDE7CiAKICAgICBjb25z
dCBUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IFRydXN0ZWRJbW0zMigweGZmZmZmYzAw
KTsKLSNkZWZpbmUgSEFWRV9JTklUSUFMX1NUQVJUX1JFRwogI2RlZmluZSBKSVRfVU5JQ09ERV9F
WFBSRVNTSU9OUwogI2VsaWYgQ1BVKE1JUFMpCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
aW5wdXQgPSBNSVBTUmVnaXN0ZXJzOjphMDsKQEAgLTk1LDE4ICs5Myw2IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewog
ICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVy
czo6djA7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuUmVnaXN0ZXIyID0gTUlQ
U1JlZ2lzdGVyczo6djE7CiAKLSNkZWZpbmUgSEFWRV9JTklUSUFMX1NUQVJUX1JFRwotI2VsaWYg
Q1BVKFg4NikKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbnB1dCA9IFg4NlJlZ2lzdGVy
czo6ZWF4OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGluZGV4ID0gWDg2UmVnaXN0ZXJz
OjplZHg7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbGVuZ3RoID0gWDg2UmVnaXN0ZXJz
OjplY3g7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgb3V0cHV0ID0gWDg2UmVnaXN0ZXJz
OjplZGk7Ci0KLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMCA9IFg4NlJlZ2lzdGVy
czo6ZWJ4OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QxID0gWDg2UmVnaXN0ZXJz
Ojplc2k7Ci0KLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlciA9IFg4
NlJlZ2lzdGVyczo6ZWF4OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lz
dGVyMiA9IFg4NlJlZ2lzdGVyczo6ZWR4OwogI2VsaWYgQ1BVKFg4Nl82NCkKICNpZiAhT1MoV0lO
RE9XUykKICAgICAvLyBBcmd1bWVudCByZWdpc3RlcnMKQEAgLTE1Miw3ICsxMzgsNiBAQCBjbGFz
cyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1i
bGVyIHsKICAgICBjb25zdCBUcnVzdGVkSW1tMzIgc3VwcGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBU
cnVzdGVkSW1tMzIoMHgxMDAwMCk7CiAgICAgY29uc3QgVHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vy
cm9nYXRlVGFnID0gVHJ1c3RlZEltbTMyKDB4ZGMwMCk7CiAgICAgY29uc3QgVHJ1c3RlZEltbTMy
IHN1cnJvZ2F0ZVRhZ01hc2sgPSBUcnVzdGVkSW1tMzIoMHhmZmZmZmMwMCk7Ci0jZGVmaW5lIEhB
VkVfSU5JVElBTF9TVEFSVF9SRUcKICNkZWZpbmUgSklUX1VOSUNPREVfRVhQUkVTU0lPTlMKICNl
bmRpZgogCkBAIC0yMDIxLDEwICsyMDA2LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1Ymxp
YyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAKICAgICAgICAgY29uc3Qg
UmVnaXN0ZXJJRCBjaGFyYWN0ZXIgPSByZWdUMDsKICAgICAgICAgY29uc3QgUmVnaXN0ZXJJRCBt
YXRjaFBvcyA9IHJlZ1QxOwotI2lmbmRlZiBIQVZFX0lOSVRJQUxfU1RBUlRfUkVHCi0gICAgICAg
IGNvbnN0IFJlZ2lzdGVySUQgaW5pdGlhbFN0YXJ0ID0gY2hhcmFjdGVyOwotI2VuZGlmCi0KICAg
ICAgICAgSnVtcExpc3QgZm91bmRCZWdpbm5pbmdOZXdMaW5lOwogICAgICAgICBKdW1wTGlzdCBz
YXZlU3RhcnRJbmRleDsKICAgICAgICAgSnVtcExpc3QgZm91bmRFbmRpbmdOZXdMaW5lOwpAQCAt
MjAzOSw5ICsyMDIwLDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5m
bywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIEFTU0VSVCghbV9wYXR0ZXJuLm1f
Ym9keS0+bV9oYXNGaXhlZFNpemUpOwogICAgICAgICBnZXRNYXRjaFN0YXJ0KG1hdGNoUG9zKTsK
IAotI2lmbmRlZiBIQVZFX0lOSVRJQUxfU1RBUlRfUkVHCi0gICAgICAgIGxvYWRGcm9tRnJhbWUo
bV9wYXR0ZXJuLm1faW5pdGlhbFN0YXJ0VmFsdWVGcmFtZUxvY2F0aW9uLCBpbml0aWFsU3RhcnQp
OwotI2VuZGlmCiAgICAgICAgIHNhdmVTdGFydEluZGV4LmFwcGVuZChicmFuY2gzMihCZWxvd09y
RXF1YWwsIG1hdGNoUG9zLCBpbml0aWFsU3RhcnQpKTsKICAgICAgICAgTGFiZWwgZmluZEJPTExv
b3AodGhpcyk7CiAgICAgICAgIHN1YjMyKFRydXN0ZWRJbW0zMigxKSwgbWF0Y2hQb3MpOwpAQCAt
MjA1MSw5ICsyMDI5LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5m
bywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgICAgICBsb2FkMTYoQmFzZUluZGV4
KGlucHV0LCBtYXRjaFBvcywgVGltZXNUd28sIDApLCBjaGFyYWN0ZXIpOwogICAgICAgICBtYXRj
aENoYXJhY3RlckNsYXNzKGNoYXJhY3RlciwgZm91bmRCZWdpbm5pbmdOZXdMaW5lLCBtX3BhdHRl
cm4ubmV3bGluZUNoYXJhY3RlckNsYXNzKCkpOwogCi0jaWZuZGVmIEhBVkVfSU5JVElBTF9TVEFS
VF9SRUcKLSAgICAgICAgbG9hZEZyb21GcmFtZShtX3BhdHRlcm4ubV9pbml0aWFsU3RhcnRWYWx1
ZUZyYW1lTG9jYXRpb24sIGluaXRpYWxTdGFydCk7Ci0jZW5kaWYKICAgICAgICAgYnJhbmNoMzIo
QWJvdmUsIG1hdGNoUG9zLCBpbml0aWFsU3RhcnQpLmxpbmtUbyhmaW5kQk9MTG9vcCwgdGhpcyk7
CiAgICAgICAgIHNhdmVTdGFydEluZGV4LmFwcGVuZChqdW1wKCkpOwogCkBAIC0zNzUzLDI0ICsz
NzI4LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0
ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIC8vIHJjeCBpcyB0aGUgcG9pbnRlciB0byB0aGUg
YWxsb2NhdGVkIHNwYWNlIGZvciByZXN1bHQgaW4geDY0IFdpbmRvd3MuCiAgICAgICAgIHB1c2go
WDg2UmVnaXN0ZXJzOjplY3gpOwogI2VuZGlmCi0jZWxpZiBDUFUoWDg2KQotICAgICAgICBwdXNo
KFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSAgICAgICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3Rlciwg
WDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICAvLyBUT0RPOiBkbyB3ZSBuZWVkIHNwaWxsIHJl
Z2lzdGVycyB0byBmaWxsIHRoZSBvdXRwdXQgcG9pbnRlciBpZiB0aGVyZSBhcmUgbm8gc3ViIGNh
cHR1cmVzPwotICAgICAgICBwdXNoKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKLSAgICAgICAgcHVzaChY
ODZSZWdpc3RlcnM6OmVkaSk7Ci0gICAgICAgIHB1c2goWDg2UmVnaXN0ZXJzOjplc2kpOwotICAg
ICAgICAvLyBsb2FkIG91dHB1dCBpbnRvIGVkaSAoMiA9IHNhdmVkIGVicCArIHJldHVybiBhZGRy
ZXNzKS4KLSAgICAjaWYgQ09NUElMRVIoTVNWQykKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKFg4
NlJlZ2lzdGVyczo6ZWJwLCAyICogc2l6ZW9mKHZvaWQqKSksIGlucHV0KTsKLSAgICAgICAgbG9h
ZFB0cihBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCAzICogc2l6ZW9mKHZvaWQqKSksIGluZGV4
KTsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA0ICogc2l6ZW9m
KHZvaWQqKSksIGxlbmd0aCk7Ci0gICAgICAgIGlmIChjb21waWxlTW9kZSA9PSBJbmNsdWRlU3Vi
cGF0dGVybnMpCi0gICAgICAgICAgICBsb2FkUHRyKEFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAs
IDUgKiBzaXplb2Yodm9pZCopKSwgb3V0cHV0KTsKLSAgICAjZWxzZQotICAgICAgICBpZiAoY29t
cGlsZU1vZGUgPT0gSW5jbHVkZVN1YnBhdHRlcm5zKQotICAgICAgICAgICAgbG9hZFB0cihBZGRy
ZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCAyICogc2l6ZW9mKHZvaWQqKSksIG91dHB1dCk7Ci0gICAg
I2VuZGlmCiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAgIHRhZ1JldHVybkFkZHJlc3MoKTsKICAg
ICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMpIHsKQEAgLTM4MjgsMTEgKzM3ODUsNiBA
QCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3Jv
QXNzZW1ibGVyIHsKICAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1
ZSkKICAgICAgICAgICAgIHBvcChYODZSZWdpc3RlcnM6OmVieCk7CiAgICAgICAgIHBvcChYODZS
ZWdpc3RlcnM6OmVicCk7Ci0jZWxpZiBDUFUoWDg2KQotICAgICAgICBwb3AoWDg2UmVnaXN0ZXJz
Ojplc2kpOwotICAgICAgICBwb3AoWDg2UmVnaXN0ZXJzOjplZGkpOwotICAgICAgICBwb3AoWDg2
UmVnaXN0ZXJzOjplYngpOwotICAgICAgICBwb3AoWDg2UmVnaXN0ZXJzOjplYnApOwogI2VsaWYg
Q1BVKEFSTTY0KQogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykKICAgICAgICAg
ICAgIHBvcFBhaXIoZnJhbWVQb2ludGVyUmVnaXN0ZXIsIGxpbmtSZWdpc3Rlcik7CkBAIC0zOTQx
LDEzICszODkzLDggQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbywg
cHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIH0KICNlbmRpZgogICAgICAgICAKLSAg
ICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkgewotI2lmZGVmIEhB
VkVfSU5JVElBTF9TVEFSVF9SRUcKKyAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFs
U3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1vdmUoaW5kZXgsIGluaXRpYWxTdGFydCk7Ci0jZWxz
ZQotICAgICAgICAgICAgc3RvcmVUb0ZyYW1lKGluZGV4LCBtX3BhdHRlcm4ubV9pbml0aWFsU3Rh
cnRWYWx1ZUZyYW1lTG9jYXRpb24pOwotI2VuZGlmCi0gICAgICAgIH0KIAogICAgICAgICBnZW5l
cmF0ZSgpOwogICAgICAgICBpZiAobV9kaXNhc3NlbWJsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFy
ci9ZYXJySklULmgKaW5kZXggNmJlODE0YjM3YzBiYWQzNjgxMDg1NjdjN2Y5MDM3MDA3ZTEwMWEy
Yi4uNWE5OGYxYTcyZGU4YzcyOWQ4YzczNTkzNmExYWYxODNlOWZlODU2OSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuaApAQCAtMzIsMTEgKzMyLDcgQEAKICNpbmNsdWRlICJZYXJy
LmgiCiAjaW5jbHVkZSAiWWFyclBhdHRlcm4uaCIKIAotI2lmIENQVShYODYpICYmICFDT01QSUxF
UihNU1ZDKQotI2RlZmluZSBZQVJSX0NBTEwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkK
LSNlbHNlCiAjZGVmaW5lIFlBUlJfQ0FMTAotI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAppbmRleCBmOTY4NjUzNTdiYTVjZjIwZWZiZTNmNGVlZTk0MTEyYTFhMDliYjc1Li41
NWRhMjM2ZjhjYzBmNmNmMzhiZmZkNGU4OWMyMDE4ZDEwZmNiNWZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAg
LTgwOSw3ICs4MDksNyBAQAogLyogSWYgcG9zc2libGUsIHRyeSB0byBlbmFibGUgYSBkaXNhc3Nl
bWJsZXIuIFRoaXMgaXMgb3B0aW9uYWwuIFdlIHByb2NlZWQgaW4gdHdvCiAgICBzdGVwczogZmly
c3Qgd2UgdHJ5IHRvIGZpbmQgc29tZSBkaXNhc3NlbWJsZXIgdGhhdCB3ZSBjYW4gdXNlLCBhbmQg
dGhlbiB3ZQogICAgZGVjaWRlIGlmIHRoZSBoaWdoLWxldmVsIGRpc2Fzc2VtYmxlciBBUEkgY2Fu
IGJlIGVuYWJsZWQuICovCi0jaWYgIWRlZmluZWQoVVNFX1VESVM4NikgJiYgRU5BQkxFKEpJVCkg
JiYgKENQVShYODYpIHx8IENQVShYODZfNjQpKSAmJiAhVVNFKENBUFNUT05FKQorI2lmICFkZWZp
bmVkKFVTRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYmIENQVShYODZfNjQpICYmICFVU0UoQ0FQ
U1RPTkUpCiAjZGVmaW5lIFVTRV9VRElTODYgMQogI2VuZGlmCiAKQEAgLTgyMyw3ICs4MjMsNyBA
QAogCiAjaWYgIWRlZmluZWQoRU5BQkxFX0RGR19KSVQpICYmIEVOQUJMRShKSVQpCiAvKiBFbmFi
bGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQuICovCi0jaWYgKENQVShYODYpIHx8IENQ
VShYODZfNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwg
T1MoSFVSRCkgfHwgT1MoV0lORE9XUykpCisjaWYgQ1BVKFg4Nl82NCkgJiYgKE9TKERBUldJTikg
fHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKEhVUkQpIHx8IE9TKFdJTkRPV1MpKQog
I2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYKIC8qIEVuYWJsZSB0aGUgREZHIEpJVCBv
biBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUywgTGludXgsIGFuZCBGcmVlQlNELiAqLwpAQCAt
MTA0Nyw3ICsxMDQ3LDcgQEAKICNlbmRpZgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoREZHX0pJVCkg
JiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBD
UFUoQVJNNjQpKQorI2lmIEVOQUJMRShERkdfSklUKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkg
JiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCiAjZGVmaW5lIEVOQUJMRV9TSUdOQUxfQkFT
RURfVk1fVFJBUFMgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2pp
dC9GdW5jdGlvbkNhbGwuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNhbGwuaApp
bmRleCA4NWVjNzRhOGEwNjBjMDlhYWY4ODQ4YmYzOTViNDNlNDhjZDljMzUwLi4xNjQyMWU4YjI0
MmQwODA1Mzg3ZGUyZjU2MzJkMDNhMzI4YmExNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3NqaXQvRnVuY3Rpb25DYWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0Z1bmN0
aW9uQ2FsbC5oCkBAIC03NCw3ICs3NCw3IEBAIGNsYXNzIEZ1bmN0aW9uQ2FsbCB7CiAKICAgICBK
U0M6Ok1hY3JvQXNzZW1ibGVyOjpKdW1wIGNhbGxBbmRCcmFuY2hPbkJvb2xlYW5SZXR1cm5WYWx1
ZShKU0M6Ok1hY3JvQXNzZW1ibGVyOjpSZXN1bHRDb25kaXRpb24gY29uZGl0aW9uKQogICAgIHsK
LSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAgICAgICAgIHJl
dHVybiBjYWxsQW5kQnJhbmNoT25Db25kaXRpb24oY29uZGl0aW9uLCBKU0M6Ok1hY3JvQXNzZW1i
bGVyOjpUcnVzdGVkSW1tMzIoMHhmZikpOwogI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoQVJNKQog
ICAgICAgICByZXR1cm4gY2FsbEFuZEJyYW5jaE9uQ29uZGl0aW9uKGNvbmRpdGlvbiwgSlNDOjpN
YWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC0xKSk7CkBAIC05Nyw3ICs5Nyw3IEBAIGNsYXNz
IEZ1bmN0aW9uQ2FsbCB7CiAgICAgICAgIEpTQzo6TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQg
YSA9IG1fZmlyc3RBcmd1bWVudDsKICAgICAgICAgSlNDOjpNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0
ZXJJRCBiID0gbV9zZWNvbmRBcmd1bWVudDsKICAgICAgICAgLy8geDg2IGNhbiBzd2FwIHdpdGhv
dXQgYSB0ZW1wb3JhcnkgcmVnaXN0ZXIuIE9uIG90aGVyIGFyY2hpdGVjdHVyZXMsIHdlIG5lZWQg
YWxsb2NhdGUgYSB0ZW1wb3JhcnkgcmVnaXN0ZXIgdG8gc3dpdGNoIHRoZSB2YWx1ZXMuCi0jaWYg
Q1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgICAgICBtX2Fzc2Vt
Ymxlci5zd2FwKGEsIGIpOwogI2VsaWYgQ1BVKEFSTTY0KSB8fCBDUFUoQVJNX1RIVU1CMikKICAg
ICAgICAgbV9hc3NlbWJsZXIubW92ZShhLCB0ZW1wUmVnaXN0ZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378777</attachid>
            <date>2019-09-13 20:34:15 -0700</date>
            <delta_ts>2019-09-13 20:38:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201790-20190913203414.patch</filename>
            <type>text/plain</type>
            <size>48686</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MmM0YzA2NDY4M2RlMWJhYWQ4MTViNjZkNGZlZjBhNjk4ZDYzZTU1Li4yMGI1MGI4YjI5ODdlOGVi
YjYwNjE2YWMxZDlmOTc3MGY4M2Y3NzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NCBAQAorMjAxOS0wOS0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJldGlyZSB4ODYgMzJiaXQgSklUIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTc5MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdywgWGNvZGUgbm8gbG9uZ2VyIGhh
cyBhYmlsaXR5IHRvIGJ1aWxkIDMyYml0IGJpbmFyeSwgc28gd2UgY2Fubm90IGV2ZW4gdGVzdCBp
dCBvbiBtYWNPUy4KKyAgICAgICAgRmVkb3JhIHN0b3BzIHNoaXBwaW5nIHg4NiAzMmJpdCBrZXJu
ZWwuIE91ciB4ODYveDg2XzY0IEpJVCByZXF1aXJlcyBTU0UyLCBhbmQgc28gc3VjaCByZWxhdGl2
ZWx5IG1vZGVybiBDUFVzCisgICAgICAgIGNhbiB1c2UgSklUIGJ5IHN3aXRjaGluZyB4ODYgdG8g
eDg2XzY0LiBBbmQgdGhlc2UgQ1BVcyBhcmUgbW9kZXJuIGVub3VnaCB0byBydW4gQ0xvb3AgYXQg
aGlnaCBzcGVlZC4KKyAgICAgICAgV2ViS2l0IGFscmVhZHkgZGlzYWJsZWQgeDg2IEpJVCBieSBk
ZWZhdWx0IHdoaWxlIHRoZSBpbXBsZW1lbnRhdGlvbiBleGlzdHMuIFNvIGxpdGVyYXJ5LCBpdCBp
cyBub3QgdGVzdGVkLgorCisgICAgICAgIFdoaWxlIHg4NiAzMmJpdCBiZWNvbWVzIGxlc3MgdXNl
ZnVsLCB4ODYgMzJiaXQgSklUIGJhY2tlbmQgaXMgdmVyeSBjb21wbGljYXRlZCBhbmQgaXMgYmVp
bmcgYSBtYWpvciBtYWludGVuYW5jZSBidXJkZW4uCisgICAgICAgIFRoaXMgaXMgZHVlIHRvIHZl
cnkgZmV3ICMgb2YgcmVnaXN0ZXJzLiBXaGljaCBzY2F0dGVycyBhIGxvdCBvZiBpc1g4NiAvIENQ
VShYODYpIGluIEJhc2VsaW5lLCBERkcsIGFuZCBZYXJyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cmV0aXJlcyB4ODYgSklUIHN1cHBvcnQgZnJvbSBKYXZhU2NyaXB0Q29yZSBhbmQgQ1NTIEpJVC4g
V2Ugc3RpbGwga2VlcCBNYWNyb0Fzc2VtYmxlciBhbmQgR1BSSW5mbyAvIEZQUkluZm8sCisgICAg
ICAgIE1hY2hpbmVDb250ZXh0IGluZm9ybWF0aW9uIHNpbmNlIHRoZXkgYXJlIHVzZWZ1bCBldmVu
IHRob3VnaCBKSVQgaXMgbm90IHN1cHBvcnRlZC4KKworICAgICAgICAqIGRmZy9ERkdBcnJheU1v
ZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6cmVmaW5lIGNvbnN0KToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxl
cjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpvc3JXcml0ZUJhcnJpZXIpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdik6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVSZXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldERpcmVjdFBuYW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1RodW5r
cy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6b3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRv
cik6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6c2xv
d1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNhbGxFeGNlcHRpb25GdXp6KToK
KyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpkZWJ1Z0NhbGwpOgorICAgICAgICAqIGpp
dC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0
Q29tcHV0ZUJ1dHRlcmZseUluZGV4aW5nTWFzayk6CisgICAgICAgICogaml0L0NDYWxsSGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6Cisg
ICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6cHJlcGFyZUZvclRhaWxDYWxsU2xvdyk6CisgICAg
ICAgICogaml0L0NhbGxGcmFtZVNodWZmbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1l
U2h1ZmZsZXI6OnByZXBhcmVGb3JUYWlsQ2FsbCk6CisgICAgICAgICogaml0L0pJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycyk6CisgICAg
ICAgICogaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9tb2QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX21vZCk6CisgICAgICAg
ICogaml0L1Nsb3dQYXRoQ2FsbC5oOgorICAgICAgICAoSlNDOjpKSVRTbG93UGF0aENhbGw6OmNh
bGwpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpu
YXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjphcml0eUZpeHVwR2VuZXJhdG9yKToK
KyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldh
c206OkFpcklSR2VuZXJhdG9yOjplbWl0TW9kT3JEaXYpOgorICAgICAgICAqIHlhcnIvWWFyckpJ
VC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmdlbmVyYXRlRG90U3Rh
ckVuY2xvc3VyZSk6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmdlbmVyYXRl
RW50ZXIpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVy
bik6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAg
ICAqIHlhcnIvWWFyckpJVC5oOgorCiAyMDE5LTA5LTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBqc2MgLWQgc3RvcHBlZCB3b3JraW5nLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4ZjQ3YjJl
NGFmMWMzN2U1OTdkYWU0NjFjZjI0OWM2NDA5ZTdlNGZkLi5hNTBmZTllMGI2N2ZhODI4NjkzMzg0
YzdjODU2YmE3OTU3N2Q2ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV0aXJlIHg4NiAzMmJp
dCBKSVQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAxNzkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0wOS0xMyAgSm9uYXRoYW4gQmVkYXJkICA8
amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIDEzOiBTb21lIFNQSSB0YXJnZXRzIDEz
LjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA2NzUzZDU5NTk3YjU3NzQ1ZDBiYjBjNTgyNjI3YmQzNDgxZGEyNjJh
Li5lN2FhOTU4NjRiZWJhOGQ3NTA1NGMyMjFmZDg0ZmJjZjgzNzVkYTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTktMDktMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXRpcmUgeDg2IDMyYml0IEpJVCBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzc2ppdC9GdW5jdGlvbkNh
bGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uQ2FsbDo6Y2FsbEFuZEJyYW5jaE9uQm9v
bGVhblJldHVyblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uQ2FsbDo6c3dhcEFy
Z3VtZW50cyk6CisKIDIwMTktMDktMTEgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgog
CiAgICAgICAgIFByb3ZpZGUgYSBwcm90b3R5cGUgZm9yIEFSIFF1aWNrTG9vayB0byB0cmlnZ2Vy
IHByb2Nlc3NpbmcgaW4gdGhlIG9yaWdpbmF0aW5nIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmNwcAppbmRleCBmOTI2Y2MxNmM0NjA1MDBhNzQzMjhjMDI3MzE3
MjQ4OGVlZmU3YjE3Li5jMGI0Mzc3YmM2ZWY5MDJiZTE1MzNmNWIyNzlkMWI1MDM3ODUzNDBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCkBAIC0zMDMsOCAr
MzAzLDYgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKAogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQXJyYXlNb2RlKHR5cGUsIEFycmF5OjpOb25BcnJheSwgQXJyYXk6Ok91dE9mQm91
bmRzLCBBcnJheTo6QXNJcywgYWN0aW9uKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBBcnJh
eU1vZGUoQXJyYXk6OkdlbmVyaWMsIGFjdGlvbigpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmIChpc1g4NigpICYmIGlzMzJCaXQoKSAmJiBpc1Njb3BlZEFyZ3VtZW50c1NwZWN1bGF0
aW9uKGJhc2UpKQotICAgICAgICAgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVy
aWMsIGFjdGlvbigpKTsKICAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZSh0eXBlKTsKICAgICAg
ICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKaW5kZXggNDAxN2YzNDNhOGQzNTQzOTAyZmMzNzFmNjk1OWM1YWJlMzcyYTEx
My4uYWQ2M2QzMWJmMzFiNWMyMTIyYmJhZDE4MjdkZjJjODFkNzQ2MWRjYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTIyODIsMTMg
KzIyODIsNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUq
IGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVyIHJlc3VsdCwgSQogICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBBcnJheVB1c2hJbnRyaW5zaWM6IHsKLSNpZiBVU0UoSlNWQUxVRTMy
XzY0KQotICAgICAgICAgICAgaWYgKGlzWDg2KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPiAyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLQogICAgICAgICAgICAgaWYgKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykgPj0gTUlOX1NQQVJTRV9B
UlJBWV9JTkRFWCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAK
QEAgLTIzMTYsMTIgKzIzMDksNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5z
aWNDYWxsKE5vZGUqIGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVyIHJlc3VsdCwgSQogICAgICAgICB9
CiAKICAgICAgICAgY2FzZSBBcnJheVNsaWNlSW50cmluc2ljOiB7Ci0jaWYgVVNFKEpTVkFMVUUz
Ml82NCkKLSAgICAgICAgICAgIGlmIChpc1g4NigpKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhl
cmUgYXJlbid0IGVub3VnaCByZWdpc3RlcnMgZm9yIHRoaXMgdG8gYmUgZG9uZSBlYXNpbHkuCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotI2VuZGlmCiAgICAg
ICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPCAxKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTQyNiwxNCArNTQxMyw3IEBAIHZvaWQgQnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBhdXRvIGJ5dGVj
b2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcFN0cmNhdD4oKTsKICAgICAgICAgICAgIGlu
dCBzdGFydE9wZXJhbmQgPSBieXRlY29kZS5tX3NyYy5vZmZzZXQoKTsKICAgICAgICAgICAgIGlu
dCBudW1PcGVyYW5kcyA9IGJ5dGVjb2RlLm1fY291bnQ7Ci0jaWYgQ1BVKFg4NikKLSAgICAgICAg
ICAgIC8vIFg4NiBkb2Vzbid0IGhhdmUgZW5vdWdoIHJlZ2lzdGVycyB0byBjb21waWxlIE1ha2VS
b3BlIHdpdGggdGhyZWUgYXJndW1lbnRzLiBUaGUKLSAgICAgICAgICAgIC8vIFN0ckNhdCB3ZSBl
bWl0IGhlcmUgbWF5IGJlIHR1cm5lZCBpbnRvIGEgTWFrZVJvcGUuIFJhdGhlciB0aGFuIHRyeSB0
byBiZSBjbGV2ZXIsCi0gICAgICAgICAgICAvLyB3ZSBqdXN0IG1ha2UgU3RyQ2F0IGR1bWJlciBv
biB0aGlzIHByb2Nlc3Nvci4KLSAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1heEFyZ3VtZW50
cyA9IDI7Ci0jZWxzZQogICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbWF4QXJndW1lbnRzID0g
MzsKLSNlbmRpZgogICAgICAgICAgICAgTm9kZSogb3BlcmFuZHNbQWRqYWNlbmN5TGlzdDo6U2l6
ZV07CiAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleEluT3BlcmFuZHMgPSAwOwogICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEFkamFjZW5jeUxpc3Q6OlNpemU7ICsraSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGNjNDFhM2Q4
ZWMxMzNkZTA1ZWNmNjk0ODBjNTdiYjI2ODE4NjdlNjMuLmVjMDQwYWY4ZGQ2NzNkYTBhNDA3NDdi
MWFlOTlkNjIzYzY3ZWM0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcApAQCAtMTc0NywxNyArMTc0NywxMiBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVi
bGljIFBoYXNlIHsKIAogICAgICAgICBjYXNlIEhhc093blByb3BlcnR5OiB7CiAgICAgICAgICAg
ICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwotI2lmIENQVShYODYpCi0gICAg
ICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGVub3VnaCByZWdpc3RlcnMgdG8gZG8gYW55dGhpbmcg
aW50ZXJlc3Rpbmcgb24geDg2IGFuZCBtaXBzLgotICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVk
VXNlPihub2RlLT5jaGlsZDIoKSk7Ci0jZWxzZQogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxk
MigpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSkKICAgICAgICAgICAgICAgICBmaXhFZGdlPFN0
cmluZ1VzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hp
bGQyKCktPnNob3VsZFNwZWN1bGF0ZVN5bWJvbCgpKQogICAgICAgICAgICAgICAgIGZpeEVkZ2U8
U3ltYm9sVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGlsZDIoKSk7Ci0jZW5kaWYKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb21waWxlci5jcHAKaW5kZXggMzQxYTRiYzJmZThiMGFlNzA1ODFjNzg2NTJhY2Q0MGU5
M2MwNmMwYS4uZjkxYjZmYzg5ZjM4ZjcxMTEwM2QwNjlmMGUwZjA4MzJjYTY4ZDIyNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKQEAgLTE1NCwxMSAr
MTU0LDYgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKICAg
ICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtX2dyYXBoLnN0YWNrUG9pbnRlck9m
ZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBz
dGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKLSNpZiBDUFUoWDg2KQotICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHVzZSB0aGUgY2FsbCBhYnN0cmFjdGlvbiwgYnV0IHRoaXMgaXMgY3VycmVudGx5IGlu
IHRoZSBTcGVjdWxhdGl2ZUpJVCBsYXllciEKLSAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgMSk7Ci0jZW5kaWYK
ICAgICAgICAgbV9jYWxscy5hcHBlbmQoQ2FsbExpbmtSZWNvcmQoY2FsbChPcGVyYXRpb25QdHJU
YWcpLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJG
cm9tQ2FsbGVyRnJhbWUpKSk7CiAKICAgICAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcih2bSgp
KTsKQEAgLTE3MywxMSArMTY4LDYgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUV4Y2VwdGlv
bkhhbmRsZXJzKCkKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKCZ2bSgpKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAotI2lmIENQVShYODYpCi0gICAgICAgIC8vIEZJWE1F
OiBzaG91bGQgdXNlIHRoZSBjYWxsIGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkg
aW4gdGhlIFNwZWN1bGF0aXZlSklUIGxheWVyIQotICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7Ci0gICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKLSNlbmRp
ZgogICAgICAgICBtX2NhbGxzLmFwcGVuZChDYWxsTGlua1JlY29yZChjYWxsKE9wZXJhdGlvblB0
clRhZyksIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4obG9va3VwRXhjZXB0aW9uSGFuZGxl
cikpKTsKIAogICAgICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKHZtKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
CmluZGV4IDk2ZTYyNTkwMzgzODJiNWI5MDZmZDVkYzc5YzMwMDcxYTU0NzA1ZmIuLmI2MDE1Njk1
ZTBhNmI5ZjBiZDRkOTBiY2NhYmM4ZjcxODMwOTc5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKQEAgLTI2Miwx
OSArMjYyLDEwIEBAIHN0YXRpYyB2b2lkIG9zcldyaXRlQmFycmllcihDQ2FsbEhlbHBlcnMmIGpp
dCwgR1BSUmVnIG93bmVyLCBHUFJSZWcgc2NyYXRjaCkKIHsKICAgICBBc3NlbWJseUhlbHBlcnM6
Okp1bXAgb3duZXJJc1JlbWVtYmVyZWRPckluRWRlbiA9IGppdC5iYXJyaWVyQnJhbmNoV2l0aG91
dEZlbmNlKG93bmVyKTsKIAotICAgIC8vIFdlIG5lZWQgdGhlc2UgZXh0cmEgc2xvdHMgYmVjYXVz
ZSBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUgd2lsbCB1c2UgcG9rZSBvbiB4ODYuCi0jaWYg
Q1BVKFg4NikKLSAgICBqaXQuc3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2l6
ZW9mKHZvaWQqKSAqIDQpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwot
I2VuZGlmCi0KICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uT1NSV3Jp
dGVCYXJyaWVyKT4ob3duZXIpOwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKHRhZ0NGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbk9TUldyaXRl
QmFycmllcikpLCBzY3JhdGNoKTsKICAgICBqaXQuY2FsbChzY3JhdGNoLCBPcGVyYXRpb25QdHJU
YWcpOwogCi0jaWYgQ1BVKFg4NikKLSAgICBqaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoc2l6ZW9mKHZvaWQqKSAqIDQpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIpOwotI2VuZGlmCi0KICAgICBvd25lcklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmso
JmppdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKaW5kZXggNTI4ZTExM2Y3Njg2ZmZlMjZkMmNhMmQzOTI0MjA1ZDdkNTRiODUwMC4u
NTY3YWQ5NDM4YjliYTY2ODBhNDRjZGY2YzA3NGEwMjU3NjFhMDAxYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTUwOTksNyArNTA5
OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdihOb2RlKiBub2RlKQog
ewogICAgIHN3aXRjaCAobm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgY2FzZSBJbnQzMlVz
ZTogewotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAg
ICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogICAg
ICAgICBHUFJUZW1wb3JhcnkgZWF4KHRoaXMsIFg4NlJlZ2lzdGVyczo6ZWF4KTsKQEAgLTUzNjIs
NyArNTM2Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2RlKiBu
b2RlKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAotI2lmIENQVShYODYpIHx8
IENQVShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigp
LT5pc0ludDMyQ29uc3RhbnQoKSkgewogICAgICAgICAgICAgaW50MzJfdCBkaXZpc29yID0gbm9k
ZS0+Y2hpbGQyKCktPmFzSW50MzIoKTsKICAgICAgICAgICAgIGlmIChkaXZpc29yICYmIGRpdmlz
b3IgIT0gLTEpIHsKQEAgLTU0MDMsNyArNTQwMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVBcml0aE1vZChOb2RlKiBub2RlKQogI2VuZGlmCiAKICAgICAgICAgU3BlY3VsYXRlSW50
MzJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0jaWYgQ1BVKFg4NikgfHwgQ1BV
KFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgICAgICBHUFJUZW1wb3JhcnkgZWF4KHRoaXMs
IFg4NlJlZ2lzdGVyczo6ZWF4KTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IGVkeCh0aGlzLCBYODZS
ZWdpc3RlcnM6OmVkeCk7CiAgICAgICAgIEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7CkBAIC03
NzgwLDcgKzc3ODAsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUmVzdChO
b2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlLT5vcCgpID09IENyZWF0ZVJlc3QpOwogCi0j
aWYgIUNQVShYODYpCiAgICAgaWYgKG1faml0LmdyYXBoKCkuaXNXYXRjaGluZ0hhdmluZ0FCYWRU
aW1lV2F0Y2hwb2ludChub2RlKSkgewogICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJh
bmQgYXJyYXlMZW5ndGgodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jh
cnkgYXJyYXlSZXN1bHQodGhpcyk7CkBAIC03ODI1LDcgKzc4MjQsNiBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlQ3JlYXRlUmVzdChOb2RlKiBub2RlKQogICAgICAgICBjZWxsUmVzdWx0
KGFycmF5UmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZiAv
LyAhQ1BVKFg4NikKIAogICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBhcnJheUxlbmd0
aCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgR1BSVGVtcG9yYXJ5IGFyZ3VtZW50c1N0YXJ0
KHRoaXMpOwpAQCAtMTMzODksMTYgKzEzMzg3LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldERpcmVjdFBuYW1lKE5vZGUqIG5vZGUpCiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNl
LmdwcigpOwogICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHByb3BlcnR5LmdwcigpOwogCi0jaWYg
Q1BVKFg4NikKLSAgICAvLyBOb3QgZW5vdWdoIHJlZ2lzdGVycyBvbiBYODYgZm9yIHRoaXMgY29k
ZSwgc28gYWx3YXlzIHVzZSB0aGUgc2xvdyBwYXRoLgotICAgIHNwZWN1bGF0ZShub2RlLCBpbmRl
eEVkZ2UpOwotICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2Fs
bFJlc3VsdCByZXN1bHQodGhpcyk7Ci0gICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3Vs
dC5yZWdzKCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbENlbGwsIHJlc3Vs
dFJlZ3MsIGJhc2VHUFIsIENDYWxsSGVscGVyczo6Q2VsbFZhbHVlKHByb3BlcnR5R1BSKSk7Ci0g
ICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKLSAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3Ms
IG5vZGUpOwotI2Vsc2UKICAgICBFZGdlJiBlbnVtZXJhdG9yRWRnZSA9IG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMyk7CiAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIGlu
ZGV4KHRoaXMsIGluZGV4RWRnZSk7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZW51bWVyYXRv
cih0aGlzLCBlbnVtZXJhdG9yRWRnZSk7CkBAIC0xMzQ0NSw3ICsxMzQzMyw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXREaXJlY3RQbmFtZShOb2RlKiBub2RlKQogICAgIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uR2V0
QnlWYWxDZWxsLCByZXN1bHRSZWdzLCBiYXNlR1BSLCBDQ2FsbEhlbHBlcnM6OkNlbGxWYWx1ZShw
cm9wZXJ0eUdQUikpKTsKIAogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7Ci0j
ZW5kaWYKIH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUV4dHJhY3RDYXRjaExvY2Fs
KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgKaW5kZXggNTg0YTQ5ZDE5YjJmOTQ4ZjgyZTFiZGNiODNkNmZmMzZhOGRkMmViYy4uYzgz
NTRhMTIyNTM0NWYxOWE0ZjliYjhmY2QxY2IxNjYyNTYxZTgyMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTA0NCwxNyArMTA0NCw3IEBA
IGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICNlbmRpZgogICAgIH0KIAotI2lmIENQVShYODYpCi0g
ICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlvblB0
cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBGUFJSZWcgcmVzdWx0KQotICAgIHsKLSAgICAg
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGwoZnVuY3Rpb24pOwotICAgICAg
ICBpZiAocmVzdWx0ICE9IEludmFsaWRGUFJSZWcpIHsKLSAgICAgICAgICAgIG1faml0LmFzc2Vt
YmxlcigpLmZzdHBsKDAsIEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgcmVzdWx0KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gY2FsbDsKLSAgICB9Ci0jZWxp
ZiBDUFUoQVJNX1RIVU1CMikgJiYgIUNQVShBUk1fSEFSREZQKQorI2lmIENQVShBUk1fVEhVTUIy
KSAmJiAhQ1BVKEFSTV9IQVJERlApCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFNl
dFJlc3VsdChjb25zdCBGdW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBGUFJS
ZWcgcmVzdWx0KQogICAgIHsKICAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGFwcGVu
ZENhbGwoZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggNTRkMzM5MjMyYjlmYjQ0MmZjZmJlMDAxYzJk
ZDU3MGI2M2U4ZWQwMy4uZTllOTI5MTJkYTMyMWRkNzYyM2M0N2RjNDQzODllM2I3YWU2OWQ5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC04NjQsOSArODY0LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENh
bGwoTm9kZSogbm9kZSkKICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1
bXAoKTsKICAgICAgICAgCiAgICAgICAgIEpJVENvbXBpbGVyOjpMYWJlbCBzbG93UGF0aCA9IG1f
aml0LmxhYmVsKCk7Ci0gICAgICAgIGlmIChpc1g4NigpKQotICAgICAgICAgICAgbV9qaXQucG9w
KEpJVENvbXBpbGVyOjpzZWxlY3RTY3JhdGNoR1BSKGNhbGxlZVBheWxvYWRHUFIpKTsKLQogICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsLCBpbmZvLCBjYWxsZWVQ
YXlsb2FkR1BSKTsKICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgbV9q
aXQuanVtcCgpLmxpbmtUbyhtYWluUGF0aCwgJm1faml0KTsKQEAgLTI3MDcsNDcgKzI3MDQsNiBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogCiAgICAg
Y2FzZSBQdXRCeVZhbFdpdGhUaGlzOiB7Ci0jaWYgQ1BVKFg4NikKLSAgICAgICAgLy8gV2UgZG9u
J3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJzIG9uIFg4NiB0byBkbyB0aGlzCi0gICAgICAgIC8vIHdp
dGhvdXQgc2V0dGluZyB1cCB0aGUgY2FsbCBmcmFtZSBpbmNyZW1lbnRhbGx5LgotICAgICAgICB1
bnNpZ25lZCBpbmRleCA9IDA7Ci0gICAgICAgIG1faml0LnBva2UoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIGluZGV4KyspOwotCi0gICAgICAgIHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVy
YW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7Ci0gICAg
ICAgICAgICBHUFJSZWcgYmFzZVRhZyA9IGJhc2UudGFnR1BSKCk7Ci0gICAgICAgICAgICBHUFJS
ZWcgYmFzZVBheWxvYWQgPSBiYXNlLnBheWxvYWRHUFIoKTsKLQotICAgICAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgdGhpc1ZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MSkpOwotICAgICAgICAgICAgR1BSUmVnIHRoaXNWYWx1ZVRhZyA9IHRoaXNWYWx1ZS50YWdHUFIo
KTsKLSAgICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVQYXlsb2FkID0gdGhpc1ZhbHVlLnBheWxv
YWRHUFIoKTsKLQotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7Ci0gICAgICAgICAgICBHUFJSZWcgcHJv
cGVydHlUYWcgPSBwcm9wZXJ0eS50YWdHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0
eVBheWxvYWQgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7Ci0KLSAgICAgICAgICAgIG1faml0LnBv
a2UoYmFzZVBheWxvYWQsIGluZGV4KyspOwotICAgICAgICAgICAgbV9qaXQucG9rZShiYXNlVGFn
LCBpbmRleCsrKTsKLQotICAgICAgICAgICAgbV9qaXQucG9rZSh0aGlzVmFsdWVQYXlsb2FkLCBp
bmRleCsrKTsKLSAgICAgICAgICAgIG1faml0LnBva2UodGhpc1ZhbHVlVGFnLCBpbmRleCsrKTsK
LQotICAgICAgICAgICAgbV9qaXQucG9rZShwcm9wZXJ0eVBheWxvYWQsIGluZGV4KyspOwotICAg
ICAgICAgICAgbV9qaXQucG9rZShwcm9wZXJ0eVRhZywgaW5kZXgrKyk7Ci0KLSAgICAgICAgICAg
IGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2
YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKLSAgICAgICAg
R1BSUmVnIHZhbHVlVGFnID0gdmFsdWUudGFnR1BSKCk7Ci0gICAgICAgIEdQUlJlZyB2YWx1ZVBh
eWxvYWQgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7Ci0gICAgICAgIG1faml0LnBva2UodmFsdWVQYXls
b2FkLCBpbmRleCsrKTsKLSAgICAgICAgbV9qaXQucG9rZSh2YWx1ZVRhZywgaW5kZXgrKyk7Ci0K
LSAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICAgICAgYXBwZW5kQ2FsbChtX2ppdC5pc1N0
cmljdE1vZGVGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSA/IG9wZXJhdGlvblB1dEJ5VmFsV2l0
aFRoaXNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbFdpdGhUaGlzKTsKLSAgICAgICAgbV9qaXQu
ZXhjZXB0aW9uQ2hlY2soKTsKLSNlbHNlCiAgICAgICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6
bnVtYmVyT2ZSZWdpc3RlcnMgPj0gOCwgIldlIGFyZSBhc3N1bWluZyB3ZSBoYXZlIGVub3VnaCBy
ZWdpc3RlcnMgdG8gbWFrZSB0aGlzIGNhbGwgd2l0aG91dCBpbmNyZW1lbnRhbGx5IHNldHRpbmcg
dXAgdGhlIGFyZ3VtZW50cy4iKTsKIAogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwpAQCAtMjc2Niw3ICsyNzIyLDYg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjYWxs
T3BlcmF0aW9uKG1faml0LmlzU3RyaWN0TW9kZUZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpID8g
b3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRo
aXMsCiAgICAgICAgICAgICBOb1Jlc3VsdCwgYmFzZVJlZ3MsIHRoaXNSZWdzLCBwcm9wZXJ0eVJl
Z3MsIHZhbHVlUmVncyk7CiAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0jZW5kaWYg
Ly8gQ1BVKFg4NikKIAogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7CkBA
IC0zODY2LDIyICszODIxLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6IHsKLSNpZiBD
UFUoWDg2KQotICAgICAgICBBU1NFUlQobm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFVudHlw
ZWRVc2UpOwotICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvYmplY3QodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICBKU1ZhbHVlT3BlcmFuZCBrZXkodGhpcywgbm9kZS0+Y2hpbGQy
KCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvYmplY3QpOwot
Ci0gICAgICAgIEpTVmFsdWVSZWdzIGtleVJlZ3MgPSBrZXkuanNWYWx1ZVJlZ3MoKTsKLSAgICAg
ICAgR1BSUmVnIG9iamVjdEdQUiA9IG9iamVjdC5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3Vs
dEdQUiA9IHJlc3VsdC5ncHIoKTsKLQotICAgICAgICBzcGVjdWxhdGVPYmplY3Qobm9kZS0+Y2hp
bGQxKCkpOwotCi0gICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uSGFzT3duUHJvcGVydHksIHJlc3VsdEdQUiwgb2JqZWN0R1BSLCBrZXlSZWdz
KTsKLSAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwotI2Vsc2UKICAgICAg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb2JqZWN0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHVuaXF1ZWRTdHJpbmdJbXBsKHRoaXMpOwogICAgICAgICBHUFJU
ZW1wb3JhcnkgdGVtcCh0aGlzKTsKQEAgLTM5ODAsNyArMzkxOSw2IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgICAgICBkb25lLmxpbmsoJm1faml0KTsK
ICAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwotI2VuZGlmIC8vIENQVShY
ODYpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
aHVua3MuY3BwCmluZGV4IDhjOTZjN2VmMDJmNzFiMzc0MjU4MTQ4YTFlMGZhMDc4YmFkMzA1OTgu
LjlkMDlmZTcxNTQxYzAyNjViMWMxOTllYzBkYjdkMzllZGQxMTkxYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAKQEAgLTc2LDExICs3Niw3IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRv
cihWTSYgdm0pCiAgICAgaml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KHNjcmF0Y2hTaXplKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDApKTsK
IAogICAgIC8vIFNldCB1cCBvbmUgYXJndW1lbnQuCi0jaWYgQ1BVKFg4NikKLSAgICBqaXQucG9r
ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgMCk7Ci0jZWxzZQogICAgIGppdC5tb3ZlKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotI2VuZGlm
CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBqaXQuY2FsbChPcGVy
YXRpb25QdHJUYWcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKaW5k
ZXggZmE5Zjg1MGFmZGU2N2U1MGM2YWRhOTUwMGUzZDg2YTcyZWJmMmI5Yi4uZmE5YmZjNzBiNmNl
OGU5ZTMyZTM1NmRhMTUyMWRlNzlhZjAwNzI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMVGh1bmtzLmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxK
SVRUaHVua1B0clRhZz4gc2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IoY29uc3QgU2xvd1BhdGhD
CiAgICAgCiAgICAgc2l6ZV90IGN1cnJlbnRPZmZzZXQgPSBrZXkub2Zmc2V0KCkgKyBzaXplb2Yo
dm9pZCopOwogICAgIAotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisjaWYgQ1BVKFg4Nl82
NCkKICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZih2b2lkKik7CiAjZW5kaWYKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCAxNWY1
ZjlmN2RlYzhlMzRhNGM5NTcyMmE1MzU4ZWI3MzM2YjcxNDA3Li4zZDE3NjAxODM4ZDNlZmMyOTgz
ZWNjYjlkYjgxZDZjZTJhZjRjNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuY3BwCkBAIC0yNTAsMTEgKzI1MCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxw
ZXJzOjpjYWxsRXhjZXB0aW9uRnV6eihWTSYgdm0pCiAgICAgfQogCiAgICAgLy8gU2V0IHVwIG9u
ZSBhcmd1bWVudC4KLSNpZiBDUFUoWDg2KQotICAgIHBva2UoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIDApOwotI2Vsc2UKICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwotI2VuZGlmCiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKHRh
Z0NGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enopKSwg
R1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBjYWxsKEdQUkluZm86Om5v
blByZXNlcnZlZE5vblJldHVybkdQUiwgT3BlcmF0aW9uUHRyVGFnKTsKIApAQCAtOTMyLDExICs5
MjgsNiBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6ZGVidWdDYWxsKFZNJiB2bSwgVl9EZWJ1Z09w
ZXJhdGlvbl9FUFAgZnVuY3Rpb24sIHZvaWQqIGFyZwogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihh
cmd1bWVudCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgbW92ZShHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBHUFJSZWcgc2NyYXRj
aCA9IHNlbGVjdFNjcmF0Y2hHUFIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1
bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7Ci0jZWxpZiBDUFUoWDg2KQotICAgIHBv
a2UoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIDApOwotICAgIHBva2UoVHJ1c3RlZEltbVB0
cihhcmd1bWVudCksIDEpOwotICAgIHBva2UoVHJ1c3RlZEltbVB0cihidWZmZXIpLCAyKTsKLSAg
ICBHUFJSZWcgc2NyYXRjaCA9IEdQUkluZm86OnJlZ1QwOwogI2Vsc2UKICNlcnJvciAiSklUIG5v
dCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDIxNGI0MThmOGEwMzdjNGQzMjg4OTA4
YTZlYjc5MGViOTkwZDViYjUuLmM3ODNhZjQ4MmI3NmU2YmI3ODg4MzI0NDY3NWJhYTE2NWY3Y2Q2
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAt
NDgxLDcgKzQ4MSw3IEBAIGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2Vt
YmxlciB7CiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQor
I2lmIENQVShYODZfNjQpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgcHJvbG9ndWVTdGFj
a1BvaW50ZXJEZWx0YSgpCiAgICAgewogICAgICAgICAvLyBQcm9sb2d1ZSBvbmx5IHNhdmVzIHRo
ZSBmcmFtZVBvaW50ZXJSZWdpc3RlcgpAQCAtNTE5LDcgKzUxOSw3IEBAIGNsYXNzIEFzc2VtYmx5
SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAgICAgewogICAgICAgICBwdXNoKGFk
ZHJlc3MpOwogICAgIH0KLSNlbmRpZiAvLyBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQorI2VuZGlm
IC8vIENQVShYODZfNjQpCiAKICNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQogICAg
IHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQpAQCAt
MTYyNywxMiArMTYyNyw2IEBAIGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fz
c2VtYmxlciB7CiAgICAgewogICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSByZXN1bHRHUFIp
OwogICAgICAgICBKdW1wIGRvbmU7Ci0gICAgICAgIGlmIChpc1g4NigpICYmICFpc1g4Nl82NCgp
KSB7Ci0gICAgICAgICAgICBKdW1wIG5vblplcm8gPSBicmFuY2hUZXN0MzIoTm9uWmVybywgdmVj
dG9yTGVuZ3RoR1BSKTsKLSAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDApLCByZXN1bHRH
UFIpOwotICAgICAgICAgICAgZG9uZSA9IGp1bXAoKTsKLSAgICAgICAgICAgIG5vblplcm8ubGlu
ayh0aGlzKTsKLSAgICAgICAgfQogICAgICAgICAvLyBJZiB2ZWN0b3JMZW5ndGggPT0gMCB0aGVu
IGNseiB3aWxsIHJldHVybiAzMiBvbiBib3RoIEFSTSBhbmQgeDg2LiBPbiA2NC1iaXQgc3lzdGVt
cywgd2UgY2FuIHRoZW4gZG8gYSA2NC1iaXQgcmlnaHQgc2hpZnQgb24gYSAzMi1iaXQgLTEgdG8g
Z2V0IGEgMCBtYXNrIGZvciB6ZXJvIHZlY3Rvckxlbmd0aC4gT24gMzItYml0IEFSTSwgc2hpZnQg
bWFza3Mgd2l0aCAweGZmLCB3aGljaCBtZWFucyBpdCB3aWxsIHN0aWxsIGNyZWF0ZSBhIDAgbWFz
ay4KICAgICAgICAgY291bnRMZWFkaW5nWmVyb3MzMih2ZWN0b3JMZW5ndGhHUFIsIHNjcmF0Y2hH
UFIpOwogICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigtMSksIHJlc3VsdEdQUik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCA4NzAxOTdhZjdjZjY5NmUxNDYy
ZGM1ODdhMDc3YjFjMTMwZWFiODVlLi5iZTljMTMwODVkMjk3NTIyOWZhNWQ4ZjdkZWU2OTIxZWM2
MTc0ZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTQx
Miw0MyArNDEyLDcgQEAgY2xhc3MgQ0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVy
cyB7CiAgICAgfQogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KQotI2lmIENQVShYODYpCi0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1
bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1G
UFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1NvdXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJn
cywgdW5zaWduZWQgZXh0cmFQb2tlLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBzZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1H
UFJTb3VyY2VzLCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4
dHJhR1BSQXJncywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzLCBGUFJSZWcgYXJnLCBBcmdzLi4u
IGFyZ3MpCi0gICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxDVVJSRU5U
X0FSR1VNRU5UX1RZUEUsIGRvdWJsZT46OnZhbHVlLCAiV2Ugc2hvdWxkIG9ubHkgYmUgcGFzc2lu
ZyBGUFJSZWdzIHRvIGEgZG91YmxlIik7Ci0gICAgICAgIHBva2VGb3JBcmd1bWVudChhcmcsIG51
bUdQUkFyZ3MsIG51bUZQUkFyZ3MsIG51bUNyb3NzU291cmNlcywgZXh0cmFHUFJBcmdzLCBleHRy
YVBva2UpOwotICAgICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9uVHlwZT4oYXJnU291
cmNlUmVncy5hZGRTdGFja0FyZyhhcmcpLmFkZFBva2UoKSwgYXJncy4uLik7Ci0gICAgfQotCi0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywg
dW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVt
RlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFy
Z3MsIHVuc2lnbmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUuLi4gQXJncz4KLSAgICBBTFdBWVNfSU5M
SU5FIHN0ZDo6ZW5hYmxlX2lmX3Q8c2l6ZW9mKENVUlJFTlRfQVJHVU1FTlRfVFlQRSkgPD0gND4K
LSAgICBzZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1HUFJT
b3VyY2VzLCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJh
R1BSQXJncywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzLCBHUFJSZWcgYXJnLCBBcmdzLi4uIGFy
Z3MpCi0gICAgewotICAgICAgICBwb2tlRm9yQXJndW1lbnQoYXJnLCBudW1HUFJBcmdzLCBudW1G
UFJBcmdzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJncywgZXh0cmFQb2tlKTsKLSAgICAg
ICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MuYWRkR1BS
QXJnKCksIGFyZ3MuLi4pOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlv
blR5cGUsIHVuc2lnbmVkIG51bUdQUkFyZ3MsIHVuc2lnbmVkIG51bUdQUlNvdXJjZXMsIHVuc2ln
bmVkIG51bUZQUkFyZ3MsIHVuc2lnbmVkIG51bUZQUlNvdXJjZXMsIHVuc2lnbmVkIG51bUNyb3Nz
U291cmNlcywgdW5zaWduZWQgZXh0cmFHUFJBcmdzLCB1bnNpZ25lZCBleHRyYVBva2UsIHR5cGVu
YW1lLi4uIEFyZ3M+Ci0gICAgQUxXQVlTX0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNf
c2FtZTxDVVJSRU5UX0FSR1VNRU5UX1RZUEUsIEVuY29kZWRKU1ZhbHVlPjo6dmFsdWU+Ci0gICAg
c2V0dXBBcmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNl
cywgbnVtRlBSQXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFy
Z3MsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVncywgQ2VsbFZhbHVlIHBheWxvYWQsIEFyZ3MuLi4g
YXJncykKLSAgICB7Ci0gICAgICAgIHBva2VGb3JBcmd1bWVudChwYXlsb2FkLmdwcigpLCBudW1H
UFJBcmdzLCBudW1GUFJBcmdzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJncywgZXh0cmFQ
b2tlKTsKLSAgICAgICAgcG9rZUZvckFyZ3VtZW50KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgbnVtR1BSQXJncywgbnVtRlBSQXJncywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFy
Z3MsIGV4dHJhUG9rZSArIDEpOwotICAgICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9u
VHlwZT4oYXJnU291cmNlUmVncy5hZGRHUFJBcmcoKS5hZGRQb2tlKCksIGFyZ3MuLi4pOwotICAg
IH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHVuc2lnbmVkIG51bUdQ
UkFyZ3MsIHVuc2lnbmVkIG51bUdQUlNvdXJjZXMsIHVuc2lnbmVkIG51bUZQUkFyZ3MsIHVuc2ln
bmVkIG51bUZQUlNvdXJjZXMsIHVuc2lnbmVkIG51bUNyb3NzU291cmNlcywgdW5zaWduZWQgZXh0
cmFHUFJBcmdzLCB1bnNpZ25lZCBleHRyYVBva2UsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgQUxX
QVlTX0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxDVVJSRU5UX0FSR1VNRU5U
X1RZUEUsIEVuY29kZWRKU1ZhbHVlPjo6dmFsdWU+Ci0gICAgc2V0dXBBcmd1bWVudHNJbXBsKEFy
Z0NvbGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBS
U291cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZT4gYXJnU291
cmNlUmVncywgSlNWYWx1ZVJlZ3MgYXJnLCBBcmdzLi4uIGFyZ3MpCi0gICAgewotICAgICAgICBw
b2tlRm9yQXJndW1lbnQoYXJnLnBheWxvYWRHUFIoKSwgbnVtR1BSQXJncywgbnVtRlBSQXJncywg
bnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZSk7Ci0gICAgICAgIHBva2VG
b3JBcmd1bWVudChhcmcudGFnR1BSKCksIG51bUdQUkFyZ3MsIG51bUZQUkFyZ3MsIG51bUNyb3Nz
U291cmNlcywgZXh0cmFHUFJBcmdzLCBleHRyYVBva2UgKyAxKTsKLSAgICAgICAgc2V0dXBBcmd1
bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MuYWRkR1BSQXJnKCkuYWRkUG9r
ZSgpLCBhcmdzLi4uKTsKLSAgICB9Ci0KLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQ
UykKKyNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJT
b3VyY2VzLCB1bnNpZ25lZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNp
Z25lZCBudW1Dcm9zc1NvdXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgZXh0
cmFQb2tlLCB0eXBlbmFtZS4uLiBBcmdzPgogICAgIHZvaWQgc2V0dXBBcmd1bWVudHNJbXBsKEFy
Z0NvbGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBS
U291cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZT4gYXJnU291
cmNlUmVncywgRlBSUmVnIGFyZywgQXJncy4uLiBhcmdzKQpAQCAtNjY5LDcgKzYzMyw3IEBAIGNs
YXNzIENDYWxsSGVscGVycyA6IHB1YmxpYyBBc3NlbWJseUhlbHBlcnMgewogICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBu
dW1HUFJTb3VyY2VzLCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMs
IGV4dHJhR1BSQXJncywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzKQogICAgIHsKICAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6YXJpdHkgPT0gbnVt
R1BSQXJncyArIG51bUZQUkFyZ3MsICJPbmUgbGFzdCBzYW5pdHkgY2hlY2siKTsKLSNpZiBVU0Uo
SlNWQUxVRTY0KSB8fCBDUFUoWDg2KQorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0YXRp
Y19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OmNDYWxsQXJpdHkoKSA9PSBu
dW1HUFJBcmdzICsgbnVtRlBSQXJncyArIGV4dHJhUG9rZSwgIkNoZWNrIHRoZSBDQ2FsbCBhcml0
eSIpOwogI2VuZGlmCiAgICAgICAgIHNldHVwU3R1YkFyZ3M8bnVtR1BSU291cmNlcywgR1BSUmVn
PihjbGFtcEFycmF5VG9TaXplPG51bUdQUlNvdXJjZXMsIEdQUlJlZz4oYXJnU291cmNlUmVncy5n
cHJEZXN0aW5hdGlvbnMpLCBjbGFtcEFycmF5VG9TaXplPG51bUdQUlNvdXJjZXMsIEdQUlJlZz4o
YXJnU291cmNlUmVncy5ncHJTb3VyY2VzKSk7CkBAIC04MTIsNyArNzc2LDcgQEAgY2xhc3MgQ0Nh
bGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiAjZWxpZiBDUFUoTUlQUykKICAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBzaXplb2Yodm9pZCop
KSwgcmV0dXJuQWRkcmVzc1JlZ2lzdGVyKTsKICAgICAgICAgc3ViUHRyKFRydXN0ZWRJbW0zMigy
ICogc2l6ZW9mKHZvaWQqKSksIG5ld0ZyYW1lU2l6ZUdQUik7Ci0jZWxpZiBDUFUoWDg2KSB8fCBD
UFUoWDg2XzY0KQorI2VsaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGZy
YW1lUG9pbnRlclJlZ2lzdGVyLCBzaXplb2Yodm9pZCopKSwgdGVtcEdQUik7CiAgICAgICAgIHB1
c2godGVtcEdQUik7CiAgICAgICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoc2l6ZW9mKHZvaWQqKSks
IG5ld0ZyYW1lU2l6ZUdQUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NhbGxGcmFtZVNodWZmbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZy
YW1lU2h1ZmZsZXIuY3BwCmluZGV4IDUzOWU1MDJlZGE1YmM4NjVkY2Q5ZmU0NmUxNGVjMGQ5ZDkx
YzA1MDguLmU3NzUyNTk5NzY0MGU2MTRjOTc3Yjk0NmYzYmQ2MmU1ZjAxZTJhNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwCkBAIC0zNzcs
MTkgKzM3Nyw3IEBAIHZvaWQgQ2FsbEZyYW1lU2h1ZmZsZXI6OnByZXBhcmVGb3JUYWlsQ2FsbCgp
CiAgICAgbV9vbGRGcmFtZUJhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0
ZXI7CiAgICAgbV9vbGRGcmFtZU9mZnNldCA9IG51bUxvY2FscygpOwogICAgIG1fbmV3RnJhbWVC
YXNlID0gYWNxdWlyZUdQUigpOwotI2lmIENQVShYODYpCi0gICAgLy8gV2UgbG9hZCB0aGUgZnJh
bWUgcG9pbnRlciBtYW51YWxseSwgYnV0IHdlIG5lZWQgdG8gYXNrIHRoZQotICAgIC8vIGFsZ29y
aXRobSB0byBtb3ZlIHRoZSByZXR1cm4gUEMgZm9yIHVzIChpdCdkIHByb2JhYmx5Ci0gICAgLy8g
cmVxdWlyZSBhIHdyaXRlIHRvIHRoZSBkYW5nZXIgem9uZSkuIFNpbmNlIGl0J2QgYmUgYXdrd2Fy
ZAotICAgIC8vIHRvIGFzayBmb3IgaGFsZiBhIHZhbHVlIG1vdmUsIHdlIGFzayB0aGF0IHRoZSB3
aG9sZSB0aGluZwotICAgIC8vIGJlIG1vdmVkIGZvciB1cy4KLSAgICBhZGROZXcoVmlydHVhbFJl
Z2lzdGVyIHsgMCB9LAotICAgICAgICBWYWx1ZVJlY292ZXJ5OjpkaXNwbGFjZWRJbkpTU3RhY2so
VmlydHVhbFJlZ2lzdGVyKDApLCBEYXRhRm9ybWF0SlMpKTsKLQotICAgIC8vIHNwIHdpbGwgcG9p
bnQgdG8gaGVhZDAgYW5kIHdlIHdpbGwgbW92ZSBpdCB1cCBoYWxmIGEgc2xvdAotICAgIC8vIG1h
bnVhbGx5Ci0gICAgbV9uZXdGcmFtZU9mZnNldCA9IDA7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikg
fHwgQ1BVKE1JUFMpCisjaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKQogICAgIC8vIFdl
IGxvYWQgdGhlIGZyYW1lIHBvaW50ZXIgYW5kIGxpbmsgcmVnaXN0ZXIKICAgICAvLyBtYW51YWxs
eS4gV2UgY291bGQgYXNrIHRoZSBhbGdvcml0aG0gdG8gbG9hZCB0aGVtIGZvciB1cywKICAgICAv
LyBhbmQgaXQgd291bGQgYWxsb3cgdXMgdG8gdXNlIHRoZSBsaW5rIHJlZ2lzdGVyIGFzIGFuIGV4
dHJhCkBAIC00NzYsMTIgKzQ2NCw2IEBAIHZvaWQgQ2FsbEZyYW1lU2h1ZmZsZXI6OnByZXBhcmVG
b3JUYWlsQ2FsbCgpCiAKICAgICBwcmVwYXJlQW55KCk7CiAKLSNpZiBDUFUoWDg2KQotICAgIGlm
ICh2ZXJib3NlKQotICAgICAgICBkYXRhTG9nKCIgIFNpbXVsYXRpbmcgcG9wIG9mIHRoZSBjYWxs
IGZyYW1lIHJlZ2lzdGVyXG4iKTsKLSAgICBtX2ppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMihzaXplb2Yodm9pZCopKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKLSNlbmRpZgotCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coIlJl
YWR5IGZvciB0YWlsIGNhbGwhXG4iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRl
eCAzNmRlNTNhMGJjM2E3MmY1NTU4ZDE5ZWRhNjQ3NmFmMDQ5NDZlYzZjLi5iMTY3ZjFjMjZhYWZi
MDNlZDNhMTc4ZWMxNjA1NDJiODdmYzk0YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
CkBAIC05NDUsMTIgKzk0NSw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhh
bmRsZXJzKCkKIAogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwotCi0jaWYgQ1BVKFg4NikKLSAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBp
biB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCi0gICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwotI2VuZGlm
CiAgICAgICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbChPcGVyYXRpb25QdHJUYWcp
LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIEZ1bmN0aW9uUHRyPE9wZXJh
dGlvblB0clRhZz4obG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSkpKTsKICAg
ICAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcih2bSgpKTsKICAgICB9CkBAIC05NjQsMTIgKzk1
OCw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKICAgICAg
ICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgdHdvIGFyZ3VtZW50cywgdGhl
IFZNIGFuZCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgogICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW1QdHIoJnZtKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICBtb3ZlKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotCi0jaWYgQ1BV
KFg4NikKLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24s
IGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCi0gICAg
ICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcG9rZShHUFJJbmZvOjph
cmd1bWVudEdQUjEsIDEpOwotI2VuZGlmCiAgICAgICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNv
cmQoY2FsbChPcGVyYXRpb25QdHJUYWcpLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCksIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4obG9va3VwRXhjZXB0aW9uSGFuZGxl
cikpKTsKICAgICAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcih2bSgpKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKaW5kZXgg
OTA4YzQ2ODhmNWRjY2I5YTdkYWVlNDdlNGJjNTliMzc0MTBjMWY0MC4uNGRlZjcwZWFhMDcxYTk0
ZmQxZjFiZTNjOGFhNTRlZTRmY2EzOGRjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcApAQCAtMzM0LDUzICszMzQsMTUgQEAgdm9pZCBK
SVQ6OmVtaXRCaW5hcnlEb3VibGVPcChjb25zdCBJbnN0cnVjdGlvbiAqaW5zdHJ1Y3Rpb24sIE9w
ZXJhbmRUeXBlcyB0eXBlcywKIAogdm9pZCBKSVQ6OmVtaXRfb3BfbW9kKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0jaWYgQ1BVKFg4NikKLSAgICBhdXRvIGJ5dGVj
b2RlID0gaW5zdHJ1Y3Rpb24tPmFzPE9wTW9kPigpOwotICAgIGludCBkc3QgPSBieXRlY29kZS5t
X2RzdC5vZmZzZXQoKTsKLSAgICBpbnQgb3AxID0gYnl0ZWNvZGUubV9saHMub2Zmc2V0KCk7Ci0g
ICAgaW50IG9wMiA9IGJ5dGVjb2RlLm1fcmhzLm9mZnNldCgpOwotCi0gICAgLy8gTWFrZSBzdXJl
IHJlZ2lzdGVycyBhcmUgY29ycmVjdCBmb3IgeDg2IElESVYgaW5zdHJ1Y3Rpb25zLgotICAgIEFT
U0VSVChyZWdUMCA9PSBYODZSZWdpc3RlcnM6OmVheCk7Ci0gICAgQVNTRVJUKHJlZ1QxID09IFg4
NlJlZ2lzdGVyczo6ZWR4KTsKLSAgICBBU1NFUlQocmVnVDIgPT0gWDg2UmVnaXN0ZXJzOjplY3gp
OwotICAgIEFTU0VSVChyZWdUMyA9PSBYODZSZWdpc3RlcnM6OmVieCk7Ci0KLSAgICBlbWl0TG9h
ZDIob3AxLCByZWdUMCwgcmVnVDMsIG9wMiwgcmVnVDEsIHJlZ1QyKTsKLSAgICBhZGRTbG93Q2Fz
ZShicmFuY2hJZk5vdEludDMyKHJlZ1QxKSk7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RJ
bnQzMihyZWdUMCkpOwotCi0gICAgbW92ZShyZWdUMywgcmVnVDApOwotICAgIGFkZFNsb3dDYXNl
KGJyYW5jaFRlc3QzMihaZXJvLCByZWdUMikpOwotICAgIEp1bXAgZGVub21pbmF0b3JOb3ROZWcx
ID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QyLCBUcnVzdGVkSW1tMzIoLTEpKTsKLSAgICBhZGRT
bG93Q2FzZShicmFuY2gzMihFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMigtMjE0NzQ4MzY0Ny0x
KSkpOwotICAgIGRlbm9taW5hdG9yTm90TmVnMS5saW5rKHRoaXMpOwotICAgIHg4NkNvbnZlcnRU
b0RvdWJsZVdvcmQzMigpOwotICAgIHg4NkRpdjMyKHJlZ1QyKTsKLSAgICBKdW1wIG51bWVyYXRv
clBvc2l0aXZlID0gYnJhbmNoMzIoR3JlYXRlclRoYW5PckVxdWFsLCByZWdUMywgVHJ1c3RlZElt
bTMyKDApKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0MzIoWmVybywgcmVnVDEpKTsKLSAg
ICBudW1lcmF0b3JQb3NpdGl2ZS5saW5rKHRoaXMpOwotICAgIGVtaXRTdG9yZUludDMyKGRzdCwg
cmVnVDEsIChvcDEgPT0gZHN0IHx8IG9wMiA9PSBkc3QpKTsKLSNlbHNlCiAgICAgSklUU2xvd1Bh
dGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9t
b2QpOwogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7Ci0jZW5kaWYKIH0KIAotdm9pZCBKSVQ6OmVt
aXRTbG93X29wX21vZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0
b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBKSVQ6OmVtaXRTbG93X29w
X21vZChjb25zdCBJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
KQogewotI2lmIENQVShYODYpCi0gICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKLQotICAgIEpJ
VFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93
X3BhdGhfbW9kKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOwotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oY3VycmVudEluc3RydWN0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oaXRlcik7CiAgICAg
Ly8gV2Ugd291bGQgaGF2ZSByZWFsbHkgdXNlZnVsIGFzc2VydGlvbnMgaGVyZSBpZiBpdCB3YXNu
J3QgZm9yIHRoZSBjb21waWxlcidzCiAgICAgLy8gaW5zaXN0ZW5jZSBvbiBhdHRyaWJ1dGUgbm9y
ZXR1cm4uCiAgICAgLy8gUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZgogfQog
CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRU5EOiBPUF9NT0QgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1Nsb3dQYXRoQ2FsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TbG93UGF0
aENhbGwuaAppbmRleCBhZDc4NGIxYWNjZTQ2YjRjZjU1NGI5YjcxMjcwZTRmYzdlMTY4Y2U5Li44
ZDJmYWE4NDViOGY4Y2I5YzMwYzk4MDQwNjYwYjc2MTA5NzlhNmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1Nsb3dQYXRoQ2FsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvU2xvd1BhdGhDYWxsLmgKQEAgLTQ5LDExICs0OSw3IEBAIGNsYXNzIEpJVFNs
b3dQYXRoQ2FsbCB7CiAgICAgICAgICAgICBtX2ppdC0+c2FtcGxlSW5zdHJ1Y3Rpb24oJm1faml0
LT5tX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKClbbV9qaXQtPm1fYnl0ZWNvZGVPZmZzZXRdLCB0
cnVlKTsKICNlbmRpZgogICAgICAgICBtX2ppdC0+dXBkYXRlVG9wQ2FsbEZyYW1lKCk7Ci0jaWYg
Q1BVKFg4NikgJiYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgbV9qaXQtPmFkZFB0cihNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC04KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKLSAgICAgICAgbV9qaXQtPnB1c2goSklUOjpUcnVzdGVkSW1tMzIoSklUOjpU
cnVzdGVkSW1tUHRyKG1fcGMpKSk7Ci0gICAgICAgIG1faml0LT5wdXNoKEpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIpOwotI2VsaWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKKyNpZiBDUFUoWDg2
XzY0KSAmJiBPUyhXSU5ET1dTKQogICAgICAgICBtX2ppdC0+YWRkUHRyKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoLTE2KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKICAgICAgICAgbV9qaXQtPm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBKSVQ6OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIG1faml0LT5tb3ZlKEpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEpJVDo6YXJndW1lbnRHUFIxKTsKQEAgLTY1LDkgKzYxLDcgQEAgY2xhc3Mg
SklUU2xvd1BhdGhDYWxsIHsKICAgICAgICAgSklUOjpDYWxsIGNhbGwgPSBtX2ppdC0+Y2FsbChP
cGVyYXRpb25QdHJUYWcpOwogICAgICAgICBtX2ppdC0+bV9jYWxscy5hcHBlbmQoQ2FsbFJlY29y
ZChjYWxsLCBtX2ppdC0+bV9ieXRlY29kZU9mZnNldCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRy
VGFnPihtX3Nsb3dQYXRoRnVuY3Rpb24pKSk7CiAKLSNpZiBDUFUoWDg2KSAmJiBVU0UoSlNWQUxV
RTMyXzY0KQotICAgICAgICBtX2ppdC0+YWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoMTYpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotI2VsaWYgQ1BV
KFg4Nl82NCkgJiYgT1MoV0lORE9XUykKKyNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQog
ICAgICAgICBtX2ppdC0+cG9wKEpJVDo6cmVnVDApOyAvLyB2UEMKICAgICAgICAgbV9qaXQtPnBv
cChKSVQ6OnJlZ1QxKTsgLy8gY2FsbEZyYW1lIHJlZ2lzdGVyCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAppbmRleCA2OTM5MjMxZjE5ZTkw
MzY0MzliZjhmOTZjYWFhZjRiZTc0MzRlMjUwLi5iNDViNmRmMTAzYzEyYTdhYmIwOWZlNDI1N2Vh
M2EzYTQzZWQ5ZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCkBAIC0yNjgsMjQgKzI2OCw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SklUVGh1bmtQdHJUYWc+IG5hdGl2ZUZvckdlbmVyYXRvcihWTSYgdm0sIFRodW5rRnVuCiAg
ICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcigwLCBDYWxsRnJhbWVTbG90Ojpjb2RlQmxv
Y2spOwogICAgIGppdC5zdG9yZVB0cihKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIs
ICZ2bS50b3BDYWxsRnJhbWUpOwogCi0jaWYgQ1BVKFg4NikKLSAgICAvLyBDYWxsaW5nIGNvbnZl
bnRpb246ICAgICAgZihlY3gsIGVkeCwgLi4uKTsKLSAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25h
dHVyZTogZihFeGVjU3RhdGUqKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKLQotICAgIGppdC5zdWJQdHIoSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0ZXIgcHJvbG9ndWUuCi0KLSAgICAvLyBjYWxsIHRo
ZSBmdW5jdGlvbgotICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihDYWxsRnJh
bWVTbG90OjpjYWxsZWUsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaWYgKHRodW5rRnVu
Y3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7Ci0gICAgICAgIGpp
dC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
SlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEp
OwotICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJ
VDo6cmVnVDEsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSwgSlNFbnRyeVB0clRhZyk7Ci0g
ICAgfSBlbHNlCi0gICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50
ZXJmYWNlSklUOjpyZWdUMSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlv
bkZvcihraW5kKSksIEpTRW50cnlQdHJUYWcpOwotCi0gICAgaml0LmFkZFB0cihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwotCi0jZWxpZiBDUFUoWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAjaWYgIU9TKFdJTkRP
V1MpCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWRpLCBlc2ksIGVkeCwgZWN4
LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwpA
QCAtMzgyLDExICszNjUsNiBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5r
UHRyVGFnPiBuYXRpdmVGb3JHZW5lcmF0b3IoVk0mIHZtLCBUaHVua0Z1bgogICAgIGppdC5jb3B5
Q2FsbGVlU2F2ZXNUb0VudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih2bS50b3BFbnRyeUZyYW1l
KTsKICAgICBqaXQuc3RvcmVQdHIoSlNJbnRlcmZhY2VKSVQ6OmNhbGxGcmFtZVJlZ2lzdGVyLCAm
dm0udG9wQ2FsbEZyYW1lKTsKIAotI2lmIENQVShYODYpICYmIFVTRShKU1ZBTFVFMzJfNjQpCi0g
ICAgaml0LnN1YlB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQpLCBKU0ludGVyZmFj
ZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklU
OjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKLSAgICBqaXQucHVz
aChKU0ludGVyZmFjZUpJVDo6cmVnVDApOwotI2Vsc2UKICNpZiBPUyhXSU5ET1dTKQogICAgIC8v
IEFsbG9jYXRlIHNwYWNlIG9uIHN0YWNrIGZvciB0aGUgNCBwYXJhbWV0ZXIgcmVnaXN0ZXJzLgog
ICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig0ICogc2l6ZW9mKGlu
dDY0X3QpKSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKQEAgLTM5NSw5
ICszNzMsNyBAQCBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBu
YXRpdmVGb3JHZW5lcmF0b3IoVk0mIHZtLCBUaHVua0Z1bgogI2VuZGlmCiAgICAgaml0Lm1vdmUo
SlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW1QdHIodGFnQ0Z1bmN0aW9uUHRyPE9wZXJhdGlvblB0
clRhZz4ob3BlcmF0aW9uVk1IYW5kbGVFeGNlcHRpb24pKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1Qz
KTsKICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIE9wZXJhdGlvblB0clRhZyk7
Ci0jaWYgQ1BVKFg4NikgJiYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBqaXQuYWRkUHRyKEpTSW50
ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJS
ZWdpc3Rlcik7Ci0jZWxpZiBPUyhXSU5ET1dTKQorI2lmIE9TKFdJTkRPV1MpCiAgICAgaml0LmFk
ZFB0cihKU0ludGVyZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkpLCBK
U0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlmCiAKQEAgLTUyMyw5
ICs0OTksNiBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGFyaXR5Rml4
dXBHZW5lcmF0b3IoVk0mIHZtKQogIyAgZW5kaWYKICAgICBqaXQucmV0KCk7CiAjZWxzZSAvLyBV
U0UoSlNWQUxVRTY0KSBzZWN0aW9uIGFib3ZlLCBVU0UoSlNWQUxVRTMyXzY0KSBzZWN0aW9uIGJl
bG93LgotIyAgaWYgQ1BVKFg4NikKLSAgICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7
Ci0jICBlbmRpZgogICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rl
ciwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklU
OjphZGRyZXNzRm9yKENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQpLCBKU0ludGVyZmFjZUpJ
VDo6YXJndW1lbnRHUFIyKTsKICAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJ
bW0zMihDYWxsRnJhbWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyksIEpTSW50ZXJmYWNlSklUOjph
cmd1bWVudEdQUjIpOwpAQCAtNTgwLDExICs1NTMsNyBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
SklUVGh1bmtQdHJUYWc+IGFyaXR5Rml4dXBHZW5lcmF0b3IoVk0mIHZtKQogCiAgICAgZG9uZS5s
aW5rKCZqaXQpOwogCi0jICBpZiBDUFUoWDg2KQotICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklU
OjpyZWdUNCk7Ci0jICBlbmRpZgogICAgIGppdC5yZXQoKTsKLSNlbmRpZiAvLyBFbmQgb2YgVVNF
KEpTVkFMVUUzMl82NCkgc2VjdGlvbi4KIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZmZXIoaml0
LCBHTE9CQUxfVEhVTktfSUQpOwogICAgIHJldHVybiBGSU5BTElaRV9DT0RFKHBhdGNoQnVmZmVy
LCBKSVRUaHVua1B0clRhZywgImZpeHVwIGFyaXR5Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcAppbmRleCAzN2VlZmY0ZTQ0NTMxNWU4
MGNlZmRkYzUzODAwODZiZjMxNGFlOWJhLi4zMTlhYTViZjA3NWNiZjBhZTAxNWIxMjA2OWNkMDQx
OWM5ODliMTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWly
SVJHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJ
UkdlbmVyYXRvci5jcHAKQEAgLTIzNDQsNyArMjM0NCw3IEBAIHZvaWQgQWlySVJHZW5lcmF0b3I6
OmVtaXRNb2RPckRpdihib29sIGlzRGl2LCBFeHByZXNzaW9uVHlwZSBsaHMsIEV4cHJlc3Npb25U
eXBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KQorI2lmIENQVShYODZfNjQpCiAgICAgVG1wIGVheChYODZSZWdpc3RlcnM6OmVheCk7CiAgICAg
VG1wIGVkeChYODZSZWdpc3RlcnM6OmVkeCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS95YXJyL1lhcnJKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFy
ckpJVC5jcHAKaW5kZXggODY5NTQ1OTY1OTNmZTkwMTliN2UzYTlmYzhjZmIzYjc2ZjlkZjM3Mi4u
N2Q0Zjk4YWViMzViMWY5OTkzODgxMDM1OWY5Y2IyNmU1MjM2ZDAyOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3lhcnIvWWFyckpJVC5jcHAKQEAgLTU0LDcgKzU0LDYgQEAgY2xhc3MgWWFyckdlbmVy
YXRvciA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIw
OwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyMiA9IEFSTVJlZ2lz
dGVyczo6cjE7CiAKLSNkZWZpbmUgSEFWRV9JTklUSUFMX1NUQVJUX1JFRwogI2VsaWYgQ1BVKEFS
TTY0KQogICAgIC8vIEFyZ3VtZW50IHJlZ2lzdGVycwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIGlucHV0ID0gQVJNNjRSZWdpc3RlcnM6OngwOwpAQCAtODAsNyArNzksNiBAQCBjbGFzcyBZ
YXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVy
IHsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlcjIgPSBBUk02NFJl
Z2lzdGVyczo6eDE7CiAKICAgICBjb25zdCBUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9
IFRydXN0ZWRJbW0zMigweGZmZmZmYzAwKTsKLSNkZWZpbmUgSEFWRV9JTklUSUFMX1NUQVJUX1JF
RwogI2RlZmluZSBKSVRfVU5JQ09ERV9FWFBSRVNTSU9OUwogI2VsaWYgQ1BVKE1JUFMpCiAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQgPSBNSVBTUmVnaXN0ZXJzOjphMDsKQEAgLTk1
LDE4ICs5Myw2IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJVEluZm8sIHBy
aXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVy
blJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6djA7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgcmV0dXJuUmVnaXN0ZXIyID0gTUlQU1JlZ2lzdGVyczo6djE7CiAKLSNkZWZpbmUgSEFWRV9J
TklUSUFMX1NUQVJUX1JFRwotI2VsaWYgQ1BVKFg4NikKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCBpbnB1dCA9IFg4NlJlZ2lzdGVyczo6ZWF4OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIGluZGV4ID0gWDg2UmVnaXN0ZXJzOjplZHg7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgbGVuZ3RoID0gWDg2UmVnaXN0ZXJzOjplY3g7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgb3V0cHV0ID0gWDg2UmVnaXN0ZXJzOjplZGk7Ci0KLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZWdUMCA9IFg4NlJlZ2lzdGVyczo6ZWJ4OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIHJlZ1QxID0gWDg2UmVnaXN0ZXJzOjplc2k7Ci0KLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZXR1cm5SZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwotICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyMiA9IFg4NlJlZ2lzdGVyczo6ZWR4OwogI2VsaWYg
Q1BVKFg4Nl82NCkKICNpZiAhT1MoV0lORE9XUykKICAgICAvLyBBcmd1bWVudCByZWdpc3RlcnMK
QEAgLTE1Miw3ICsxMzgsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJ
bmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICBjb25zdCBUcnVzdGVkSW1tMzIgc3Vw
cGxlbWVudGFyeVBsYW5lc0Jhc2UgPSBUcnVzdGVkSW1tMzIoMHgxMDAwMCk7CiAgICAgY29uc3Qg
VHJ1c3RlZEltbTMyIHRyYWlsaW5nU3Vycm9nYXRlVGFnID0gVHJ1c3RlZEltbTMyKDB4ZGMwMCk7
CiAgICAgY29uc3QgVHJ1c3RlZEltbTMyIHN1cnJvZ2F0ZVRhZ01hc2sgPSBUcnVzdGVkSW1tMzIo
MHhmZmZmZmMwMCk7Ci0jZGVmaW5lIEhBVkVfSU5JVElBTF9TVEFSVF9SRUcKICNkZWZpbmUgSklU
X1VOSUNPREVfRVhQUkVTU0lPTlMKICNlbmRpZgogCkBAIC0yMDIxLDEwICsyMDA2LDYgQEAgY2xh
c3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2Vt
YmxlciB7CiAKICAgICAgICAgY29uc3QgUmVnaXN0ZXJJRCBjaGFyYWN0ZXIgPSByZWdUMDsKICAg
ICAgICAgY29uc3QgUmVnaXN0ZXJJRCBtYXRjaFBvcyA9IHJlZ1QxOwotI2lmbmRlZiBIQVZFX0lO
SVRJQUxfU1RBUlRfUkVHCi0gICAgICAgIGNvbnN0IFJlZ2lzdGVySUQgaW5pdGlhbFN0YXJ0ID0g
Y2hhcmFjdGVyOwotI2VuZGlmCi0KICAgICAgICAgSnVtcExpc3QgZm91bmRCZWdpbm5pbmdOZXdM
aW5lOwogICAgICAgICBKdW1wTGlzdCBzYXZlU3RhcnRJbmRleDsKICAgICAgICAgSnVtcExpc3Qg
Zm91bmRFbmRpbmdOZXdMaW5lOwpAQCAtMjAzOSw5ICsyMDIwLDYgQEAgY2xhc3MgWWFyckdlbmVy
YXRvciA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAg
ICAgIEFTU0VSVCghbV9wYXR0ZXJuLm1fYm9keS0+bV9oYXNGaXhlZFNpemUpOwogICAgICAgICBn
ZXRNYXRjaFN0YXJ0KG1hdGNoUG9zKTsKIAotI2lmbmRlZiBIQVZFX0lOSVRJQUxfU1RBUlRfUkVH
Ci0gICAgICAgIGxvYWRGcm9tRnJhbWUobV9wYXR0ZXJuLm1faW5pdGlhbFN0YXJ0VmFsdWVGcmFt
ZUxvY2F0aW9uLCBpbml0aWFsU3RhcnQpOwotI2VuZGlmCiAgICAgICAgIHNhdmVTdGFydEluZGV4
LmFwcGVuZChicmFuY2gzMihCZWxvd09yRXF1YWwsIG1hdGNoUG9zLCBpbml0aWFsU3RhcnQpKTsK
ICAgICAgICAgTGFiZWwgZmluZEJPTExvb3AodGhpcyk7CiAgICAgICAgIHN1YjMyKFRydXN0ZWRJ
bW0zMigxKSwgbWF0Y2hQb3MpOwpAQCAtMjA1MSw5ICsyMDI5LDYgQEAgY2xhc3MgWWFyckdlbmVy
YXRvciA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAg
ICAgICAgICBsb2FkMTYoQmFzZUluZGV4KGlucHV0LCBtYXRjaFBvcywgVGltZXNUd28sIDApLCBj
aGFyYWN0ZXIpOwogICAgICAgICBtYXRjaENoYXJhY3RlckNsYXNzKGNoYXJhY3RlciwgZm91bmRC
ZWdpbm5pbmdOZXdMaW5lLCBtX3BhdHRlcm4ubmV3bGluZUNoYXJhY3RlckNsYXNzKCkpOwogCi0j
aWZuZGVmIEhBVkVfSU5JVElBTF9TVEFSVF9SRUcKLSAgICAgICAgbG9hZEZyb21GcmFtZShtX3Bh
dHRlcm4ubV9pbml0aWFsU3RhcnRWYWx1ZUZyYW1lTG9jYXRpb24sIGluaXRpYWxTdGFydCk7Ci0j
ZW5kaWYKICAgICAgICAgYnJhbmNoMzIoQWJvdmUsIG1hdGNoUG9zLCBpbml0aWFsU3RhcnQpLmxp
bmtUbyhmaW5kQk9MTG9vcCwgdGhpcyk7CiAgICAgICAgIHNhdmVTdGFydEluZGV4LmFwcGVuZChq
dW1wKCkpOwogCkBAIC0zNzUzLDI0ICszNzI4LDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1
YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIC8vIHJj
eCBpcyB0aGUgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVkIHNwYWNlIGZvciByZXN1bHQgaW4geDY0
IFdpbmRvd3MuCiAgICAgICAgIHB1c2goWDg2UmVnaXN0ZXJzOjplY3gpOwogI2VuZGlmCi0jZWxp
ZiBDUFUoWDg2KQotICAgICAgICBwdXNoKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSAgICAgICAgbW92
ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICAvLyBU
T0RPOiBkbyB3ZSBuZWVkIHNwaWxsIHJlZ2lzdGVycyB0byBmaWxsIHRoZSBvdXRwdXQgcG9pbnRl
ciBpZiB0aGVyZSBhcmUgbm8gc3ViIGNhcHR1cmVzPwotICAgICAgICBwdXNoKFg4NlJlZ2lzdGVy
czo6ZWJ4KTsKLSAgICAgICAgcHVzaChYODZSZWdpc3RlcnM6OmVkaSk7Ci0gICAgICAgIHB1c2go
WDg2UmVnaXN0ZXJzOjplc2kpOwotICAgICAgICAvLyBsb2FkIG91dHB1dCBpbnRvIGVkaSAoMiA9
IHNhdmVkIGVicCArIHJldHVybiBhZGRyZXNzKS4KLSAgICAjaWYgQ09NUElMRVIoTVNWQykKLSAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCAyICogc2l6ZW9mKHZvaWQq
KSksIGlucHV0KTsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCAz
ICogc2l6ZW9mKHZvaWQqKSksIGluZGV4KTsKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKFg4NlJl
Z2lzdGVyczo6ZWJwLCA0ICogc2l6ZW9mKHZvaWQqKSksIGxlbmd0aCk7Ci0gICAgICAgIGlmIChj
b21waWxlTW9kZSA9PSBJbmNsdWRlU3VicGF0dGVybnMpCi0gICAgICAgICAgICBsb2FkUHRyKEFk
ZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDUgKiBzaXplb2Yodm9pZCopKSwgb3V0cHV0KTsKLSAg
ICAjZWxzZQotICAgICAgICBpZiAoY29tcGlsZU1vZGUgPT0gSW5jbHVkZVN1YnBhdHRlcm5zKQot
ICAgICAgICAgICAgbG9hZFB0cihBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCAyICogc2l6ZW9m
KHZvaWQqKSksIG91dHB1dCk7Ci0gICAgI2VuZGlmCiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAg
IHRhZ1JldHVybkFkZHJlc3MoKTsKICAgICAgICAgaWYgKG1fZGVjb2RlU3Vycm9nYXRlUGFpcnMp
IHsKQEAgLTM4MjgsMTEgKzM3ODUsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGljIFlh
cnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgaWYgKG1fcGF0dGVy
bi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIHBvcChYODZSZWdpc3RlcnM6
OmVieCk7CiAgICAgICAgIHBvcChYODZSZWdpc3RlcnM6OmVicCk7Ci0jZWxpZiBDUFUoWDg2KQot
ICAgICAgICBwb3AoWDg2UmVnaXN0ZXJzOjplc2kpOwotICAgICAgICBwb3AoWDg2UmVnaXN0ZXJz
OjplZGkpOwotICAgICAgICBwb3AoWDg2UmVnaXN0ZXJzOjplYngpOwotICAgICAgICBwb3AoWDg2
UmVnaXN0ZXJzOjplYnApOwogI2VsaWYgQ1BVKEFSTTY0KQogICAgICAgICBpZiAobV9kZWNvZGVT
dXJyb2dhdGVQYWlycykKICAgICAgICAgICAgIHBvcFBhaXIoZnJhbWVQb2ludGVyUmVnaXN0ZXIs
IGxpbmtSZWdpc3Rlcik7CkBAIC0zOTQxLDEzICszODkzLDggQEAgY2xhc3MgWWFyckdlbmVyYXRv
ciA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAg
IH0KICNlbmRpZgogICAgICAgICAKLSAgICAgICAgaWYgKG1fcGF0dGVybi5tX3NhdmVJbml0aWFs
U3RhcnRWYWx1ZSkgewotI2lmZGVmIEhBVkVfSU5JVElBTF9TVEFSVF9SRUcKKyAgICAgICAgaWYg
KG1fcGF0dGVybi5tX3NhdmVJbml0aWFsU3RhcnRWYWx1ZSkKICAgICAgICAgICAgIG1vdmUoaW5k
ZXgsIGluaXRpYWxTdGFydCk7Ci0jZWxzZQotICAgICAgICAgICAgc3RvcmVUb0ZyYW1lKGluZGV4
LCBtX3BhdHRlcm4ubV9pbml0aWFsU3RhcnRWYWx1ZUZyYW1lTG9jYXRpb24pOwotI2VuZGlmCi0g
ICAgICAgIH0KIAogICAgICAgICBnZW5lcmF0ZSgpOwogICAgICAgICBpZiAobV9kaXNhc3NlbWJs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgKaW5kZXggNmJlODE0YjM3YzBiYWQz
NjgxMDg1NjdjN2Y5MDM3MDA3ZTEwMWEyYi4uNWE5OGYxYTcyZGU4YzcyOWQ4YzczNTkzNmExYWYx
ODNlOWZlODU2OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJ
VC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaApAQCAtMzIsMTEg
KzMyLDcgQEAKICNpbmNsdWRlICJZYXJyLmgiCiAjaW5jbHVkZSAiWWFyclBhdHRlcm4uaCIKIAot
I2lmIENQVShYODYpICYmICFDT01QSUxFUihNU1ZDKQotI2RlZmluZSBZQVJSX0NBTEwgX19hdHRy
aWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKLSNlbHNlCiAjZGVmaW5lIFlBUlJfQ0FMTAotI2VuZGlm
CiAKIG5hbWVzcGFjZSBKU0MgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAppbmRleCBmOTY4NjUzNTdiYTVjZjIwZWZi
ZTNmNGVlZTk0MTEyYTFhMDliYjc1Li41NWRhMjM2ZjhjYzBmNmNmMzhiZmZkNGU4OWMyMDE4ZDEw
ZmNiNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAgLTgwOSw3ICs4MDksNyBAQAogLyogSWYgcG9zc2libGUs
IHRyeSB0byBlbmFibGUgYSBkaXNhc3NlbWJsZXIuIFRoaXMgaXMgb3B0aW9uYWwuIFdlIHByb2Nl
ZWQgaW4gdHdvCiAgICBzdGVwczogZmlyc3Qgd2UgdHJ5IHRvIGZpbmQgc29tZSBkaXNhc3NlbWJs
ZXIgdGhhdCB3ZSBjYW4gdXNlLCBhbmQgdGhlbiB3ZQogICAgZGVjaWRlIGlmIHRoZSBoaWdoLWxl
dmVsIGRpc2Fzc2VtYmxlciBBUEkgY2FuIGJlIGVuYWJsZWQuICovCi0jaWYgIWRlZmluZWQoVVNF
X1VESVM4NikgJiYgRU5BQkxFKEpJVCkgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpKSAmJiAh
VVNFKENBUFNUT05FKQorI2lmICFkZWZpbmVkKFVTRV9VRElTODYpICYmIEVOQUJMRShKSVQpICYm
IENQVShYODZfNjQpICYmICFVU0UoQ0FQU1RPTkUpCiAjZGVmaW5lIFVTRV9VRElTODYgMQogI2Vu
ZGlmCiAKQEAgLTgyMyw3ICs4MjMsNyBAQAogCiAjaWYgIWRlZmluZWQoRU5BQkxFX0RGR19KSVQp
ICYmIEVOQUJMRShKSVQpCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gWDg2IGFuZCBYODZfNjQu
ICovCi0jaWYgKENQVShYODYpIHx8IENQVShYODZfNjQpKSAmJiAoT1MoREFSV0lOKSB8fCBPUyhM
SU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgT1MoSFVSRCkgfHwgT1MoV0lORE9XUykpCisjaWYgQ1BV
KFg4Nl82NCkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9T
KEhVUkQpIHx8IE9TKFdJTkRPV1MpKQogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYK
IC8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUywgTGlu
dXgsIGFuZCBGcmVlQlNELiAqLwpAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAKICNlbmRpZgogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoREZHX0pJVCkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUo
WDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKQorI2lmIEVOQUJMRShERkdfSklUKSAm
JiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCiAj
ZGVmaW5lIEVOQUJMRV9TSUdOQUxfQkFTRURfVk1fVFJBUFMgMQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNhbGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9GdW5jdGlvbkNhbGwuaAppbmRleCA4NWVjNzRhOGEwNjBjMDlhYWY4ODQ4YmYzOTVi
NDNlNDhjZDljMzUwLi4xNjQyMWU4YjI0MmQwODA1Mzg3ZGUyZjU2MzJkMDNhMzI4YmExNTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvRnVuY3Rpb25DYWxsLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3Nzaml0L0Z1bmN0aW9uQ2FsbC5oCkBAIC03NCw3ICs3NCw3IEBAIGNsYXNz
IEZ1bmN0aW9uQ2FsbCB7CiAKICAgICBKU0M6Ok1hY3JvQXNzZW1ibGVyOjpKdW1wIGNhbGxBbmRC
cmFuY2hPbkJvb2xlYW5SZXR1cm5WYWx1ZShKU0M6Ok1hY3JvQXNzZW1ibGVyOjpSZXN1bHRDb25k
aXRpb24gY29uZGl0aW9uKQogICAgIHsKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorI2lm
IENQVShYODZfNjQpCiAgICAgICAgIHJldHVybiBjYWxsQW5kQnJhbmNoT25Db25kaXRpb24oY29u
ZGl0aW9uLCBKU0M6Ok1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMHhmZikpOwogI2VsaWYg
Q1BVKEFSTTY0KSB8fCBDUFUoQVJNKQogICAgICAgICByZXR1cm4gY2FsbEFuZEJyYW5jaE9uQ29u
ZGl0aW9uKGNvbmRpdGlvbiwgSlNDOjpNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC0xKSk7
CkBAIC05Nyw3ICs5Nyw3IEBAIGNsYXNzIEZ1bmN0aW9uQ2FsbCB7CiAgICAgICAgIEpTQzo6TWFj
cm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgYSA9IG1fZmlyc3RBcmd1bWVudDsKICAgICAgICAgSlND
OjpNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBiID0gbV9zZWNvbmRBcmd1bWVudDsKICAgICAg
ICAgLy8geDg2IGNhbiBzd2FwIHdpdGhvdXQgYSB0ZW1wb3JhcnkgcmVnaXN0ZXIuIE9uIG90aGVy
IGFyY2hpdGVjdHVyZXMsIHdlIG5lZWQgYWxsb2NhdGUgYSB0ZW1wb3JhcnkgcmVnaXN0ZXIgdG8g
c3dpdGNoIHRoZSB2YWx1ZXMuCi0jaWYgQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkKKyNpZiBDUFUo
WDg2XzY0KQogICAgICAgICBtX2Fzc2VtYmxlci5zd2FwKGEsIGIpOwogI2VsaWYgQ1BVKEFSTTY0
KSB8fCBDUFUoQVJNX1RIVU1CMikKICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShhLCB0ZW1wUmVn
aXN0ZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378779</attachid>
            <date>2019-09-13 20:38:37 -0700</date>
            <delta_ts>2019-09-13 21:17:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201790-20190913203836.patch</filename>
            <type>text/plain</type>
            <size>48682</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5ODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MmM0YzA2NDY4M2RlMWJhYWQ4MTViNjZkNGZlZjBhNjk4ZDYzZTU1Li4yMGI1MGI4YjI5ODdlOGVi
YjYwNjE2YWMxZDlmOTc3MGY4M2Y3NzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NCBAQAorMjAxOS0wOS0xMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJldGlyZSB4ODYgMzJiaXQgSklUIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTc5MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdywgWGNvZGUgbm8gbG9uZ2VyIGhh
cyBhYmlsaXR5IHRvIGJ1aWxkIDMyYml0IGJpbmFyeSwgc28gd2UgY2Fubm90IGV2ZW4gdGVzdCBp
dCBvbiBtYWNPUy4KKyAgICAgICAgRmVkb3JhIHN0b3BzIHNoaXBwaW5nIHg4NiAzMmJpdCBrZXJu
ZWwuIE91ciB4ODYveDg2XzY0IEpJVCByZXF1aXJlcyBTU0UyLCBhbmQgc28gc3VjaCByZWxhdGl2
ZWx5IG1vZGVybiBDUFVzCisgICAgICAgIGNhbiB1c2UgSklUIGJ5IHN3aXRjaGluZyB4ODYgdG8g
eDg2XzY0LiBBbmQgdGhlc2UgQ1BVcyBhcmUgbW9kZXJuIGVub3VnaCB0byBydW4gQ0xvb3AgYXQg
aGlnaCBzcGVlZC4KKyAgICAgICAgV2ViS2l0IGFscmVhZHkgZGlzYWJsZWQgeDg2IEpJVCBieSBk
ZWZhdWx0IHdoaWxlIHRoZSBpbXBsZW1lbnRhdGlvbiBleGlzdHMuIFNvIGxpdGVyYXJ5LCBpdCBp
cyBub3QgdGVzdGVkLgorCisgICAgICAgIFdoaWxlIHg4NiAzMmJpdCBiZWNvbWVzIGxlc3MgdXNl
ZnVsLCB4ODYgMzJiaXQgSklUIGJhY2tlbmQgaXMgdmVyeSBjb21wbGljYXRlZCBhbmQgaXMgYmVp
bmcgYSBtYWpvciBtYWludGVuYW5jZSBidXJkZW4uCisgICAgICAgIFRoaXMgaXMgZHVlIHRvIHZl
cnkgZmV3ICMgb2YgcmVnaXN0ZXJzLiBXaGljaCBzY2F0dGVycyBhIGxvdCBvZiBpc1g4NiAvIENQ
VShYODYpIGluIEJhc2VsaW5lLCBERkcsIGFuZCBZYXJyLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
cmV0aXJlcyB4ODYgSklUIHN1cHBvcnQgZnJvbSBKYXZhU2NyaXB0Q29yZSBhbmQgQ1NTIEpJVC4g
V2Ugc3RpbGwga2VlcCBNYWNyb0Fzc2VtYmxlciBhbmQgR1BSSW5mbyAvIEZQUkluZm8sCisgICAg
ICAgIE1hY2hpbmVDb250ZXh0IGluZm9ybWF0aW9uIHNpbmNlIHRoZXkgYXJlIHVzZWZ1bCBldmVu
IHRob3VnaCBKSVQgaXMgbm90IHN1cHBvcnRlZC4KKworICAgICAgICAqIGRmZy9ERkdBcnJheU1v
ZGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFycmF5TW9kZTo6cmVmaW5lIGNvbnN0KToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxl
cjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpvc3JXcml0ZUJhcnJpZXIpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdik6CisgICAgICAgIChKU0M6OkRGRzo6U3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVDcmVhdGVSZXN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUdldERpcmVjdFBuYW1lKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1RodW5r
cy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6b3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRv
cik6CisgICAgICAgICogZnRsL0ZUTFRodW5rcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6c2xv
d1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IpOgorICAgICAgICAqIGppdC9Bc3NlbWJseUhlbHBlcnMu
Y3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmNhbGxFeGNlcHRpb25GdXp6KToK
KyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpkZWJ1Z0NhbGwpOgorICAgICAgICAqIGpp
dC9Bc3NlbWJseUhlbHBlcnMuaDoKKyAgICAgICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjplbWl0
Q29tcHV0ZUJ1dHRlcmZseUluZGV4aW5nTWFzayk6CisgICAgICAgICogaml0L0NDYWxsSGVscGVy
cy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1lbnRzSW1wbCk6Cisg
ICAgICAgIChKU0M6OkNDYWxsSGVscGVyczo6cHJlcGFyZUZvclRhaWxDYWxsU2xvdyk6CisgICAg
ICAgICogaml0L0NhbGxGcmFtZVNodWZmbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1l
U2h1ZmZsZXI6OnByZXBhcmVGb3JUYWlsQ2FsbCk6CisgICAgICAgICogaml0L0pJVC5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVFeGNlcHRpb25IYW5kbGVycyk6CisgICAg
ICAgICogaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9tb2QpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX21vZCk6CisgICAgICAg
ICogaml0L1Nsb3dQYXRoQ2FsbC5oOgorICAgICAgICAoSlNDOjpKSVRTbG93UGF0aENhbGw6OmNh
bGwpOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpu
YXRpdmVGb3JHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjphcml0eUZpeHVwR2VuZXJhdG9yKToK
KyAgICAgICAgKiB3YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6Oldh
c206OkFpcklSR2VuZXJhdG9yOjplbWl0TW9kT3JEaXYpOgorICAgICAgICAqIHlhcnIvWWFyckpJ
VC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmdlbmVyYXRlRG90U3Rh
ckVuY2xvc3VyZSk6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmdlbmVyYXRl
RW50ZXIpOgorICAgICAgICAoSlNDOjpZYXJyOjpZYXJyR2VuZXJhdG9yOjpnZW5lcmF0ZVJldHVy
bik6CisgICAgICAgIChKU0M6OllhcnI6OllhcnJHZW5lcmF0b3I6OmNvbXBpbGUpOgorICAgICAg
ICAqIHlhcnIvWWFyckpJVC5oOgorCiAyMDE5LTA5LTEzICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBqc2MgLWQgc3RvcHBlZCB3b3JraW5nLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA4ZjQ3YjJl
NGFmMWMzN2U1OTdkYWU0NjFjZjI0OWM2NDA5ZTdlNGZkLi5hNTBmZTllMGI2N2ZhODI4NjkzMzg0
YzdjODU2YmE3OTU3N2Q2ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5LTEzICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV0aXJlIHg4NiAzMmJp
dCBKSVQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAxNzkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxOS0wOS0xMyAgSm9uYXRoYW4gQmVkYXJkICA8
amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TIDEzOiBTb21lIFNQSSB0YXJnZXRzIDEz
LjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA2NzUzZDU5NTk3YjU3NzQ1ZDBiYjBjNTgyNjI3YmQzNDgxZGEyNjJh
Li5lN2FhOTU4NjRiZWJhOGQ3NTA1NGMyMjFmZDg0ZmJjZjgzNzVkYTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTktMDktMTMgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXRpcmUgeDg2IDMyYml0IEpJVCBzdXBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3OTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzc2ppdC9GdW5jdGlvbkNh
bGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uQ2FsbDo6Y2FsbEFuZEJyYW5jaE9uQm9v
bGVhblJldHVyblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZ1bmN0aW9uQ2FsbDo6c3dhcEFy
Z3VtZW50cyk6CisKIDIwMTktMDktMTEgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgog
CiAgICAgICAgIFByb3ZpZGUgYSBwcm90b3R5cGUgZm9yIEFSIFF1aWNrTG9vayB0byB0cmlnZ2Vy
IHByb2Nlc3NpbmcgaW4gdGhlIG9yaWdpbmF0aW5nIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQXJyYXlNb2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQXJyYXlNb2RlLmNwcAppbmRleCBmOTI2Y2MxNmM0NjA1MDBhNzQzMjhjMDI3MzE3
MjQ4OGVlZmU3YjE3Li5jMGI0Mzc3YmM2ZWY5MDJiZTE1MzNmNWIyNzlkMWI1MDM3ODUzNDBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0FycmF5TW9kZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcnJheU1vZGUuY3BwCkBAIC0zMDMsOCAr
MzAzLDYgQEAgQXJyYXlNb2RlIEFycmF5TW9kZTo6cmVmaW5lKAogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQXJyYXlNb2RlKHR5cGUsIEFycmF5OjpOb25BcnJheSwgQXJyYXk6Ok91dE9mQm91
bmRzLCBBcnJheTo6QXNJcywgYWN0aW9uKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiBBcnJh
eU1vZGUoQXJyYXk6OkdlbmVyaWMsIGFjdGlvbigpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIGlmIChpc1g4NigpICYmIGlzMzJCaXQoKSAmJiBpc1Njb3BlZEFyZ3VtZW50c1NwZWN1bGF0
aW9uKGJhc2UpKQotICAgICAgICAgICAgICAgIHJldHVybiBBcnJheU1vZGUoQXJyYXk6OkdlbmVy
aWMsIGFjdGlvbigpKTsKICAgICAgICAgICAgIHJldHVybiB3aXRoVHlwZSh0eXBlKTsKICAgICAg
ICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKaW5kZXggNDAxN2YzNDNhOGQzNTQzOTAyZmMzNzFmNjk1OWM1YWJlMzcyYTEx
My4uYWQ2M2QzMWJmMzFiNWMyMTIyYmJhZDE4MjdkZjJjODFkNzQ2MWRjYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTIyODIsMTMg
KzIyODIsNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUq
IGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVyIHJlc3VsdCwgSQogICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgY2FzZSBBcnJheVB1c2hJbnRyaW5zaWM6IHsKLSNpZiBVU0UoSlNWQUxVRTMy
XzY0KQotICAgICAgICAgICAgaWYgKGlzWDg2KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoYXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPiAyKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLQogICAgICAgICAgICAgaWYgKHN0YXRpY19j
YXN0PHVuc2lnbmVkPihhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykgPj0gTUlOX1NQQVJTRV9B
UlJBWV9JTkRFWCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAK
QEAgLTIzMTYsMTIgKzIzMDksNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5z
aWNDYWxsKE5vZGUqIGNhbGxlZSwgVmlydHVhbFJlZ2lzdGVyIHJlc3VsdCwgSQogICAgICAgICB9
CiAKICAgICAgICAgY2FzZSBBcnJheVNsaWNlSW50cmluc2ljOiB7Ci0jaWYgVVNFKEpTVkFMVUUz
Ml82NCkKLSAgICAgICAgICAgIGlmIChpc1g4NigpKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhl
cmUgYXJlbid0IGVub3VnaCByZWdpc3RlcnMgZm9yIHRoaXMgdG8gYmUgZG9uZSBlYXNpbHkuCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotI2VuZGlmCiAgICAg
ICAgICAgICBpZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPCAxKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTQyNiwxNCArNTQxMyw3IEBAIHZvaWQgQnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBhdXRvIGJ5dGVj
b2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcFN0cmNhdD4oKTsKICAgICAgICAgICAgIGlu
dCBzdGFydE9wZXJhbmQgPSBieXRlY29kZS5tX3NyYy5vZmZzZXQoKTsKICAgICAgICAgICAgIGlu
dCBudW1PcGVyYW5kcyA9IGJ5dGVjb2RlLm1fY291bnQ7Ci0jaWYgQ1BVKFg4NikKLSAgICAgICAg
ICAgIC8vIFg4NiBkb2Vzbid0IGhhdmUgZW5vdWdoIHJlZ2lzdGVycyB0byBjb21waWxlIE1ha2VS
b3BlIHdpdGggdGhyZWUgYXJndW1lbnRzLiBUaGUKLSAgICAgICAgICAgIC8vIFN0ckNhdCB3ZSBl
bWl0IGhlcmUgbWF5IGJlIHR1cm5lZCBpbnRvIGEgTWFrZVJvcGUuIFJhdGhlciB0aGFuIHRyeSB0
byBiZSBjbGV2ZXIsCi0gICAgICAgICAgICAvLyB3ZSBqdXN0IG1ha2UgU3RyQ2F0IGR1bWJlciBv
biB0aGlzIHByb2Nlc3Nvci4KLSAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1heEFyZ3VtZW50
cyA9IDI7Ci0jZWxzZQogICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgbWF4QXJndW1lbnRzID0g
MzsKLSNlbmRpZgogICAgICAgICAgICAgTm9kZSogb3BlcmFuZHNbQWRqYWNlbmN5TGlzdDo6U2l6
ZV07CiAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleEluT3BlcmFuZHMgPSAwOwogICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEFkamFjZW5jeUxpc3Q6OlNpemU7ICsraSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGNjNDFhM2Q4
ZWMxMzNkZTA1ZWNmNjk0ODBjNTdiYjI2ODE4NjdlNjMuLmVjMDQwYWY4ZGQ2NzNkYTBhNDA3NDdi
MWFlOTlkNjIzYzY3ZWM0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcApAQCAtMTc0NywxNyArMTc0NywxMiBAQCBjbGFzcyBGaXh1cFBoYXNlIDogcHVi
bGljIFBoYXNlIHsKIAogICAgICAgICBjYXNlIEhhc093blByb3BlcnR5OiB7CiAgICAgICAgICAg
ICBmaXhFZGdlPE9iamVjdFVzZT4obm9kZS0+Y2hpbGQxKCkpOwotI2lmIENQVShYODYpCi0gICAg
ICAgICAgICAvLyBXZSBkb24ndCBoYXZlIGVub3VnaCByZWdpc3RlcnMgdG8gZG8gYW55dGhpbmcg
aW50ZXJlc3Rpbmcgb24geDg2IGFuZCBtaXBzLgotICAgICAgICAgICAgZml4RWRnZTxVbnR5cGVk
VXNlPihub2RlLT5jaGlsZDIoKSk7Ci0jZWxzZQogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxk
MigpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSkKICAgICAgICAgICAgICAgICBmaXhFZGdlPFN0
cmluZ1VzZT4obm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hp
bGQyKCktPnNob3VsZFNwZWN1bGF0ZVN5bWJvbCgpKQogICAgICAgICAgICAgICAgIGZpeEVkZ2U8
U3ltYm9sVXNlPihub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgZml4RWRnZTxVbnR5cGVkVXNlPihub2RlLT5jaGlsZDIoKSk7Ci0jZW5kaWYKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdKSVRDb21waWxlci5jcHAKaW5kZXggMzQxYTRiYzJmZThiMGFlNzA1ODFjNzg2NTJhY2Q0MGU5
M2MwNmMwYS4uZjkxYjZmYzg5ZjM4ZjcxMTEwM2QwNjlmMGUwZjA4MzJjYTY4ZDIyNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKQEAgLTE1NCwxMSAr
MTU0LDYgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKICAg
ICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKICAgICAgICAgYWRkUHRyKFRydXN0ZWRJbW0zMihtX2dyYXBoLnN0YWNrUG9pbnRlck9m
ZnNldCgpICogc2l6ZW9mKFJlZ2lzdGVyKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBz
dGFja1BvaW50ZXJSZWdpc3Rlcik7CiAKLSNpZiBDUFUoWDg2KQotICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHVzZSB0aGUgY2FsbCBhYnN0cmFjdGlvbiwgYnV0IHRoaXMgaXMgY3VycmVudGx5IGlu
IHRoZSBTcGVjdWxhdGl2ZUpJVCBsYXllciEKLSAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3VtZW50R1BSMSwgMSk7Ci0jZW5kaWYK
ICAgICAgICAgbV9jYWxscy5hcHBlbmQoQ2FsbExpbmtSZWNvcmQoY2FsbChPcGVyYXRpb25QdHJU
YWcpLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXJG
cm9tQ2FsbGVyRnJhbWUpKSk7CiAKICAgICAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcih2bSgp
KTsKQEAgLTE3MywxMSArMTY4LDYgQEAgdm9pZCBKSVRDb21waWxlcjo6Y29tcGlsZUV4Y2VwdGlv
bkhhbmRsZXJzKCkKICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKCZ2bSgpKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICAgICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAotI2lmIENQVShYODYpCi0gICAgICAgIC8vIEZJWE1F
OiBzaG91bGQgdXNlIHRoZSBjYWxsIGFic3RyYWN0aW9uLCBidXQgdGhpcyBpcyBjdXJyZW50bHkg
aW4gdGhlIFNwZWN1bGF0aXZlSklUIGxheWVyIQotICAgICAgICBwb2tlKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7Ci0gICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIxLCAxKTsKLSNlbmRp
ZgogICAgICAgICBtX2NhbGxzLmFwcGVuZChDYWxsTGlua1JlY29yZChjYWxsKE9wZXJhdGlvblB0
clRhZyksIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4obG9va3VwRXhjZXB0aW9uSGFuZGxl
cikpKTsKIAogICAgICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKHZtKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3Bw
CmluZGV4IDk2ZTYyNTkwMzgzODJiNWI5MDZmZDVkYzc5YzMwMDcxYTU0NzA1ZmIuLmI2MDE1Njk1
ZTBhNmI5ZjBiZDRkOTBiY2NhYmM4ZjcxODMwOTc5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAKQEAgLTI2Miwx
OSArMjYyLDEwIEBAIHN0YXRpYyB2b2lkIG9zcldyaXRlQmFycmllcihDQ2FsbEhlbHBlcnMmIGpp
dCwgR1BSUmVnIG93bmVyLCBHUFJSZWcgc2NyYXRjaCkKIHsKICAgICBBc3NlbWJseUhlbHBlcnM6
Okp1bXAgb3duZXJJc1JlbWVtYmVyZWRPckluRWRlbiA9IGppdC5iYXJyaWVyQnJhbmNoV2l0aG91
dEZlbmNlKG93bmVyKTsKIAotICAgIC8vIFdlIG5lZWQgdGhlc2UgZXh0cmEgc2xvdHMgYmVjYXVz
ZSBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUgd2lsbCB1c2UgcG9rZSBvbiB4ODYuCi0jaWYg
Q1BVKFg4NikKLSAgICBqaXQuc3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoc2l6
ZW9mKHZvaWQqKSAqIDQpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwot
I2VuZGlmCi0KICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uT1NSV3Jp
dGVCYXJyaWVyKT4ob3duZXIpOwogICAgIGppdC5tb3ZlKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVk
SW1tUHRyKHRhZ0NGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbk9TUldyaXRl
QmFycmllcikpLCBzY3JhdGNoKTsKICAgICBqaXQuY2FsbChzY3JhdGNoLCBPcGVyYXRpb25QdHJU
YWcpOwogCi0jaWYgQ1BVKFg4NikKLSAgICBqaXQuYWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVz
dGVkSW1tMzIoc2l6ZW9mKHZvaWQqKSAqIDQpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIpOwotI2VuZGlmCi0KICAgICBvd25lcklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmso
JmppdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKaW5kZXggNTI4ZTExM2Y3Njg2ZmZlMjZkMmNhMmQzOTI0MjA1ZDdkNTRiODUwMC4u
NTY3YWQ5NDM4YjliYTY2ODBhNDRjZGY2YzA3NGEwMjU3NjFhMDAxYSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTUwOTksNyArNTA5
OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aERpdihOb2RlKiBub2RlKQog
ewogICAgIHN3aXRjaCAobm9kZS0+YmluYXJ5VXNlS2luZCgpKSB7CiAgICAgY2FzZSBJbnQzMlVz
ZTogewotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAg
ICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAg
ICAgIFNwZWN1bGF0ZUludDMyT3BlcmFuZCBvcDIodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogICAg
ICAgICBHUFJUZW1wb3JhcnkgZWF4KHRoaXMsIFg4NlJlZ2lzdGVyczo6ZWF4KTsKQEAgLTUzNjIs
NyArNTM2Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aE1vZChOb2RlKiBu
b2RlKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAotI2lmIENQVShYODYpIHx8
IENQVShYODZfNjQpCisjaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMigp
LT5pc0ludDMyQ29uc3RhbnQoKSkgewogICAgICAgICAgICAgaW50MzJfdCBkaXZpc29yID0gbm9k
ZS0+Y2hpbGQyKCktPmFzSW50MzIoKTsKICAgICAgICAgICAgIGlmIChkaXZpc29yICYmIGRpdmlz
b3IgIT0gLTEpIHsKQEAgLTU0MDMsNyArNTQwMyw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVBcml0aE1vZChOb2RlKiBub2RlKQogI2VuZGlmCiAKICAgICAgICAgU3BlY3VsYXRlSW50
MzJPcGVyYW5kIG9wMih0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0jaWYgQ1BVKFg4NikgfHwgQ1BV
KFg4Nl82NCkKKyNpZiBDUFUoWDg2XzY0KQogICAgICAgICBHUFJUZW1wb3JhcnkgZWF4KHRoaXMs
IFg4NlJlZ2lzdGVyczo6ZWF4KTsKICAgICAgICAgR1BSVGVtcG9yYXJ5IGVkeCh0aGlzLCBYODZS
ZWdpc3RlcnM6OmVkeCk7CiAgICAgICAgIEdQUlJlZyBvcDFHUFIgPSBvcDEuZ3ByKCk7CkBAIC03
NzgwLDcgKzc3ODAsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ3JlYXRlUmVzdChO
b2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlLT5vcCgpID09IENyZWF0ZVJlc3QpOwogCi0j
aWYgIUNQVShYODYpCiAgICAgaWYgKG1faml0LmdyYXBoKCkuaXNXYXRjaGluZ0hhdmluZ0FCYWRU
aW1lV2F0Y2hwb2ludChub2RlKSkgewogICAgICAgICBTcGVjdWxhdGVTdHJpY3RJbnQzMk9wZXJh
bmQgYXJyYXlMZW5ndGgodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBHUFJUZW1wb3Jh
cnkgYXJyYXlSZXN1bHQodGhpcyk7CkBAIC03ODI1LDcgKzc4MjQsNiBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlQ3JlYXRlUmVzdChOb2RlKiBub2RlKQogICAgICAgICBjZWxsUmVzdWx0
KGFycmF5UmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSNlbmRpZiAv
LyAhQ1BVKFg4NikKIAogICAgIFNwZWN1bGF0ZVN0cmljdEludDMyT3BlcmFuZCBhcnJheUxlbmd0
aCh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgR1BSVGVtcG9yYXJ5IGFyZ3VtZW50c1N0YXJ0
KHRoaXMpOwpAQCAtMTMzODksMTYgKzEzMzg3LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldERpcmVjdFBuYW1lKE5vZGUqIG5vZGUpCiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNl
LmdwcigpOwogICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHByb3BlcnR5LmdwcigpOwogCi0jaWYg
Q1BVKFg4NikKLSAgICAvLyBOb3QgZW5vdWdoIHJlZ2lzdGVycyBvbiBYODYgZm9yIHRoaXMgY29k
ZSwgc28gYWx3YXlzIHVzZSB0aGUgc2xvdyBwYXRoLgotICAgIHNwZWN1bGF0ZShub2RlLCBpbmRl
eEVkZ2UpOwotICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2Fs
bFJlc3VsdCByZXN1bHQodGhpcyk7Ci0gICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3Vs
dC5yZWdzKCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbENlbGwsIHJlc3Vs
dFJlZ3MsIGJhc2VHUFIsIENDYWxsSGVscGVyczo6Q2VsbFZhbHVlKHByb3BlcnR5R1BSKSk7Ci0g
ICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKLSAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3Ms
IG5vZGUpOwotI2Vsc2UKICAgICBFZGdlJiBlbnVtZXJhdG9yRWRnZSA9IG1faml0LmdyYXBoKCku
dmFyQXJnQ2hpbGQobm9kZSwgMyk7CiAgICAgU3BlY3VsYXRlU3RyaWN0SW50MzJPcGVyYW5kIGlu
ZGV4KHRoaXMsIGluZGV4RWRnZSk7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgZW51bWVyYXRv
cih0aGlzLCBlbnVtZXJhdG9yRWRnZSk7CkBAIC0xMzQ0NSw3ICsxMzQzMyw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXREaXJlY3RQbmFtZShOb2RlKiBub2RlKQogICAgIGFkZFNs
b3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uR2V0
QnlWYWxDZWxsLCByZXN1bHRSZWdzLCBiYXNlR1BSLCBDQ2FsbEhlbHBlcnM6OkNlbGxWYWx1ZShw
cm9wZXJ0eUdQUikpKTsKIAogICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7Ci0j
ZW5kaWYKIH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUV4dHJhY3RDYXRjaExvY2Fs
KE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgKaW5kZXggNTg0YTQ5ZDE5YjJmOTQ4ZjgyZTFiZGNiODNkNmZmMzZhOGRkMmViYy4uYzgz
NTRhMTIyNTM0NWYxOWE0ZjliYjhmY2QxY2IxNjYyNTYxZTgyMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTA0NCwxNyArMTA0NCw3IEBA
IGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICNlbmRpZgogICAgIH0KIAotI2lmIENQVShYODYpCi0g
ICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFNldFJlc3VsdChjb25zdCBGdW5jdGlvblB0
cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBGUFJSZWcgcmVzdWx0KQotICAgIHsKLSAgICAg
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGFwcGVuZENhbGwoZnVuY3Rpb24pOwotICAgICAg
ICBpZiAocmVzdWx0ICE9IEludmFsaWRGUFJSZWcpIHsKLSAgICAgICAgICAgIG1faml0LmFzc2Vt
YmxlcigpLmZzdHBsKDAsIEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAg
ICAgICAgICBtX2ppdC5sb2FkRG91YmxlKEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgcmVzdWx0KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gY2FsbDsKLSAgICB9Ci0jZWxp
ZiBDUFUoQVJNX1RIVU1CMikgJiYgIUNQVShBUk1fSEFSREZQKQorI2lmIENQVShBUk1fVEhVTUIy
KSAmJiAhQ1BVKEFSTV9IQVJERlApCiAgICAgSklUQ29tcGlsZXI6OkNhbGwgYXBwZW5kQ2FsbFNl
dFJlc3VsdChjb25zdCBGdW5jdGlvblB0cjxDRnVuY3Rpb25QdHJUYWc+IGZ1bmN0aW9uLCBGUFJS
ZWcgcmVzdWx0KQogICAgIHsKICAgICAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbCA9IGFwcGVu
ZENhbGwoZnVuY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggNTRkMzM5MjMyYjlmYjQ0MmZjZmJlMDAxYzJk
ZDU3MGI2M2U4ZWQwMy4uZTllOTI5MTJkYTMyMWRkNzYyM2M0N2RjNDQzODllM2I3YWU2OWQ5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC04NjQsOSArODY0LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENh
bGwoTm9kZSogbm9kZSkKICAgICAgICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IG1faml0Lmp1
bXAoKTsKICAgICAgICAgCiAgICAgICAgIEpJVENvbXBpbGVyOjpMYWJlbCBzbG93UGF0aCA9IG1f
aml0LmxhYmVsKCk7Ci0gICAgICAgIGlmIChpc1g4NigpKQotICAgICAgICAgICAgbV9qaXQucG9w
KEpJVENvbXBpbGVyOjpzZWxlY3RTY3JhdGNoR1BSKGNhbGxlZVBheWxvYWRHUFIpKTsKLQogICAg
ICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkxpbmtEaXJlY3RDYWxsLCBpbmZvLCBjYWxsZWVQ
YXlsb2FkR1BSKTsKICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgbV9q
aXQuanVtcCgpLmxpbmtUbyhtYWluUGF0aCwgJm1faml0KTsKQEAgLTI3MDcsNDcgKzI3MDQsNiBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgfQogCiAgICAg
Y2FzZSBQdXRCeVZhbFdpdGhUaGlzOiB7Ci0jaWYgQ1BVKFg4NikKLSAgICAgICAgLy8gV2UgZG9u
J3QgaGF2ZSBlbm91Z2ggcmVnaXN0ZXJzIG9uIFg4NiB0byBkbyB0aGlzCi0gICAgICAgIC8vIHdp
dGhvdXQgc2V0dGluZyB1cCB0aGUgY2FsbCBmcmFtZSBpbmNyZW1lbnRhbGx5LgotICAgICAgICB1
bnNpZ25lZCBpbmRleCA9IDA7Ci0gICAgICAgIG1faml0LnBva2UoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIGluZGV4KyspOwotCi0gICAgICAgIHsKLSAgICAgICAgICAgIEpTVmFsdWVPcGVy
YW5kIGJhc2UodGhpcywgbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKSk7Ci0gICAg
ICAgICAgICBHUFJSZWcgYmFzZVRhZyA9IGJhc2UudGFnR1BSKCk7Ci0gICAgICAgICAgICBHUFJS
ZWcgYmFzZVBheWxvYWQgPSBiYXNlLnBheWxvYWRHUFIoKTsKLQotICAgICAgICAgICAgSlNWYWx1
ZU9wZXJhbmQgdGhpc1ZhbHVlKHRoaXMsIG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwg
MSkpOwotICAgICAgICAgICAgR1BSUmVnIHRoaXNWYWx1ZVRhZyA9IHRoaXNWYWx1ZS50YWdHUFIo
KTsKLSAgICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVQYXlsb2FkID0gdGhpc1ZhbHVlLnBheWxv
YWRHUFIoKTsKLQotICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9q
aXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAyKSk7Ci0gICAgICAgICAgICBHUFJSZWcgcHJv
cGVydHlUYWcgPSBwcm9wZXJ0eS50YWdHUFIoKTsKLSAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0
eVBheWxvYWQgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7Ci0KLSAgICAgICAgICAgIG1faml0LnBv
a2UoYmFzZVBheWxvYWQsIGluZGV4KyspOwotICAgICAgICAgICAgbV9qaXQucG9rZShiYXNlVGFn
LCBpbmRleCsrKTsKLQotICAgICAgICAgICAgbV9qaXQucG9rZSh0aGlzVmFsdWVQYXlsb2FkLCBp
bmRleCsrKTsKLSAgICAgICAgICAgIG1faml0LnBva2UodGhpc1ZhbHVlVGFnLCBpbmRleCsrKTsK
LQotICAgICAgICAgICAgbV9qaXQucG9rZShwcm9wZXJ0eVBheWxvYWQsIGluZGV4KyspOwotICAg
ICAgICAgICAgbV9qaXQucG9rZShwcm9wZXJ0eVRhZywgaW5kZXgrKyk7Ci0KLSAgICAgICAgICAg
IGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2
YWx1ZSh0aGlzLCBtX2ppdC5ncmFwaCgpLnZhckFyZ0NoaWxkKG5vZGUsIDMpKTsKLSAgICAgICAg
R1BSUmVnIHZhbHVlVGFnID0gdmFsdWUudGFnR1BSKCk7Ci0gICAgICAgIEdQUlJlZyB2YWx1ZVBh
eWxvYWQgPSB2YWx1ZS5wYXlsb2FkR1BSKCk7Ci0gICAgICAgIG1faml0LnBva2UodmFsdWVQYXls
b2FkLCBpbmRleCsrKTsKLSAgICAgICAgbV9qaXQucG9rZSh2YWx1ZVRhZywgaW5kZXgrKyk7Ci0K
LSAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICAgICAgYXBwZW5kQ2FsbChtX2ppdC5pc1N0
cmljdE1vZGVGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSA/IG9wZXJhdGlvblB1dEJ5VmFsV2l0
aFRoaXNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbFdpdGhUaGlzKTsKLSAgICAgICAgbV9qaXQu
ZXhjZXB0aW9uQ2hlY2soKTsKLSNlbHNlCiAgICAgICAgIHN0YXRpY19hc3NlcnQoR1BSSW5mbzo6
bnVtYmVyT2ZSZWdpc3RlcnMgPj0gOCwgIldlIGFyZSBhc3N1bWluZyB3ZSBoYXZlIGVub3VnaCBy
ZWdpc3RlcnMgdG8gbWFrZSB0aGlzIGNhbGwgd2l0aG91dCBpbmNyZW1lbnRhbGx5IHNldHRpbmcg
dXAgdGhlIGFyZ3VtZW50cy4iKTsKIAogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMs
IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCkpOwpAQCAtMjc2Niw3ICsyNzIyLDYg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBjYWxs
T3BlcmF0aW9uKG1faml0LmlzU3RyaWN0TW9kZUZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpID8g
b3BlcmF0aW9uUHV0QnlWYWxXaXRoVGhpc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsV2l0aFRo
aXMsCiAgICAgICAgICAgICBOb1Jlc3VsdCwgYmFzZVJlZ3MsIHRoaXNSZWdzLCBwcm9wZXJ0eVJl
Z3MsIHZhbHVlUmVncyk7CiAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7Ci0jZW5kaWYg
Ly8gQ1BVKFg4NikKIAogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7CkBA
IC0zODY2LDIyICszODIxLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6IHsKLSNpZiBD
UFUoWDg2KQotICAgICAgICBBU1NFUlQobm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IFVudHlw
ZWRVc2UpOwotICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBvYmplY3QodGhpcywgbm9kZS0+
Y2hpbGQxKCkpOwotICAgICAgICBKU1ZhbHVlT3BlcmFuZCBrZXkodGhpcywgbm9kZS0+Y2hpbGQy
KCkpOwotICAgICAgICBHUFJUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBvYmplY3QpOwot
Ci0gICAgICAgIEpTVmFsdWVSZWdzIGtleVJlZ3MgPSBrZXkuanNWYWx1ZVJlZ3MoKTsKLSAgICAg
ICAgR1BSUmVnIG9iamVjdEdQUiA9IG9iamVjdC5ncHIoKTsKLSAgICAgICAgR1BSUmVnIHJlc3Vs
dEdQUiA9IHJlc3VsdC5ncHIoKTsKLQotICAgICAgICBzcGVjdWxhdGVPYmplY3Qobm9kZS0+Y2hp
bGQxKCkpOwotCi0gICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAgICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uSGFzT3duUHJvcGVydHksIHJlc3VsdEdQUiwgb2JqZWN0R1BSLCBrZXlSZWdz
KTsKLSAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwotI2Vsc2UKICAgICAg
ICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgb2JqZWN0KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgR1BSVGVtcG9yYXJ5IHVuaXF1ZWRTdHJpbmdJbXBsKHRoaXMpOwogICAgICAgICBHUFJU
ZW1wb3JhcnkgdGVtcCh0aGlzKTsKQEAgLTM5ODAsNyArMzkxOSw2IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgICAgICBkb25lLmxpbmsoJm1faml0KTsK
ICAgICAgICAgYm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwotI2VuZGlmIC8vIENQVShY
ODYpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdUaHVua3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
aHVua3MuY3BwCmluZGV4IDhjOTZjN2VmMDJmNzFiMzc0MjU4MTQ4YTFlMGZhMDc4YmFkMzA1OTgu
LjlkMDlmZTcxNTQxYzAyNjViMWMxOTllYzBkYjdkMzllZGQxMTkxYTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVGh1bmtzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1RodW5rcy5jcHAKQEAgLTc2LDExICs3Niw3IEBAIE1hY3JvQXNzZW1i
bGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gb3NyRXhpdEdlbmVyYXRpb25UaHVua0dlbmVyYXRv
cihWTSYgdm0pCiAgICAgaml0LnN0b3JlUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tUHRy
KHNjcmF0Y2hTaXplKSwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDApKTsK
IAogICAgIC8vIFNldCB1cCBvbmUgYXJndW1lbnQuCi0jaWYgQ1BVKFg4NikKLSAgICBqaXQucG9r
ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgMCk7Ci0jZWxzZQogICAgIGppdC5tb3ZlKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotI2VuZGlm
CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBmdW5jdGlvbkNhbGwgPSBqaXQuY2FsbChPcGVy
YXRpb25QdHJUYWcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TFRodW5rcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFRodW5rcy5jcHAKaW5k
ZXggZmE5Zjg1MGFmZGU2N2U1MGM2YWRhOTUwMGUzZDg2YTcyZWJmMmI5Yi4uZmE5YmZjNzBiNmNl
OGU5ZTMyZTM1NmRhMTUyMWRlNzlhZjAwNzI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExUaHVua3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMVGh1bmtzLmNwcApAQCAtMTgxLDcgKzE4MSw3IEBAIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxK
SVRUaHVua1B0clRhZz4gc2xvd1BhdGhDYWxsVGh1bmtHZW5lcmF0b3IoY29uc3QgU2xvd1BhdGhD
CiAgICAgCiAgICAgc2l6ZV90IGN1cnJlbnRPZmZzZXQgPSBrZXkub2Zmc2V0KCkgKyBzaXplb2Yo
dm9pZCopOwogICAgIAotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisjaWYgQ1BVKFg4Nl82
NCkKICAgICBjdXJyZW50T2Zmc2V0ICs9IHNpemVvZih2b2lkKik7CiAjZW5kaWYKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAppbmRleCAxNWY1
ZjlmN2RlYzhlMzRhNGM5NTcyMmE1MzU4ZWI3MzM2YjcxNDA3Li4zZDE3NjAxODM4ZDNlZmMyOTgz
ZWNjYjlkYjgxZDZjZTJhZjRjNzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9B
c3NlbWJseUhlbHBlcnMuY3BwCkBAIC0yNTAsMTEgKzI1MCw3IEBAIHZvaWQgQXNzZW1ibHlIZWxw
ZXJzOjpjYWxsRXhjZXB0aW9uRnV6eihWTSYgdm0pCiAgICAgfQogCiAgICAgLy8gU2V0IHVwIG9u
ZSBhcmd1bWVudC4KLSNpZiBDUFUoWDg2KQotICAgIHBva2UoR1BSSW5mbzo6Y2FsbEZyYW1lUmVn
aXN0ZXIsIDApOwotI2Vsc2UKICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwotI2VuZGlmCiAgICAgbW92ZShUcnVzdGVkSW1tUHRyKHRh
Z0NGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkV4Y2VwdGlvbkZ1enopKSwg
R1BSSW5mbzo6bm9uUHJlc2VydmVkTm9uUmV0dXJuR1BSKTsKICAgICBjYWxsKEdQUkluZm86Om5v
blByZXNlcnZlZE5vblJldHVybkdQUiwgT3BlcmF0aW9uUHRyVGFnKTsKIApAQCAtOTMyLDExICs5
MjgsNiBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6ZGVidWdDYWxsKFZNJiB2bSwgVl9EZWJ1Z09w
ZXJhdGlvbl9FUFAgZnVuY3Rpb24sIHZvaWQqIGFyZwogICAgIG1vdmUoVHJ1c3RlZEltbVB0cihh
cmd1bWVudCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgbW92ZShHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBHUFJSZWcgc2NyYXRj
aCA9IHNlbGVjdFNjcmF0Y2hHUFIoR1BSSW5mbzo6YXJndW1lbnRHUFIwLCBHUFJJbmZvOjphcmd1
bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMik7Ci0jZWxpZiBDUFUoWDg2KQotICAgIHBv
a2UoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIDApOwotICAgIHBva2UoVHJ1c3RlZEltbVB0
cihhcmd1bWVudCksIDEpOwotICAgIHBva2UoVHJ1c3RlZEltbVB0cihidWZmZXIpLCAyKTsKLSAg
ICBHUFJSZWcgc2NyYXRjaCA9IEdQUkluZm86OnJlZ1QwOwogI2Vsc2UKICNlcnJvciAiSklUIG5v
dCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5oCmluZGV4IDIxNGI0MThmOGEwMzdjNGQzMjg4OTA4
YTZlYjc5MGViOTkwZDViYjUuLmM3ODNhZjQ4MmI3NmU2YmI3ODg4MzI0NDY3NWJhYTE2NWY3Y2Q2
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaApAQCAt
NDgxLDcgKzQ4MSw3IEBAIGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2Vt
YmxlciB7CiAgICAgICAgIH0KICAgICB9CiAKLSNpZiBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQor
I2lmIENQVShYODZfNjQpCiAgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgcHJvbG9ndWVTdGFj
a1BvaW50ZXJEZWx0YSgpCiAgICAgewogICAgICAgICAvLyBQcm9sb2d1ZSBvbmx5IHNhdmVzIHRo
ZSBmcmFtZVBvaW50ZXJSZWdpc3RlcgpAQCAtNTE5LDcgKzUxOSw3IEBAIGNsYXNzIEFzc2VtYmx5
SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlciB7CiAgICAgewogICAgICAgICBwdXNoKGFk
ZHJlc3MpOwogICAgIH0KLSNlbmRpZiAvLyBDUFUoWDg2XzY0KSB8fCBDUFUoWDg2KQorI2VuZGlm
IC8vIENQVShYODZfNjQpCiAKICNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQogICAg
IHN0YXRpYyBjb25zdGV4cHIgc2l6ZV90IHByb2xvZ3VlU3RhY2tQb2ludGVyRGVsdGEoKQpAQCAt
MTYyNywxMiArMTYyNyw2IEBAIGNsYXNzIEFzc2VtYmx5SGVscGVycyA6IHB1YmxpYyBNYWNyb0Fz
c2VtYmxlciB7CiAgICAgewogICAgICAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSByZXN1bHRHUFIp
OwogICAgICAgICBKdW1wIGRvbmU7Ci0gICAgICAgIGlmIChpc1g4NigpICYmICFpc1g4Nl82NCgp
KSB7Ci0gICAgICAgICAgICBKdW1wIG5vblplcm8gPSBicmFuY2hUZXN0MzIoTm9uWmVybywgdmVj
dG9yTGVuZ3RoR1BSKTsKLSAgICAgICAgICAgIG1vdmUoVHJ1c3RlZEltbTMyKDApLCByZXN1bHRH
UFIpOwotICAgICAgICAgICAgZG9uZSA9IGp1bXAoKTsKLSAgICAgICAgICAgIG5vblplcm8ubGlu
ayh0aGlzKTsKLSAgICAgICAgfQogICAgICAgICAvLyBJZiB2ZWN0b3JMZW5ndGggPT0gMCB0aGVu
IGNseiB3aWxsIHJldHVybiAzMiBvbiBib3RoIEFSTSBhbmQgeDg2LiBPbiA2NC1iaXQgc3lzdGVt
cywgd2UgY2FuIHRoZW4gZG8gYSA2NC1iaXQgcmlnaHQgc2hpZnQgb24gYSAzMi1iaXQgLTEgdG8g
Z2V0IGEgMCBtYXNrIGZvciB6ZXJvIHZlY3Rvckxlbmd0aC4gT24gMzItYml0IEFSTSwgc2hpZnQg
bWFza3Mgd2l0aCAweGZmLCB3aGljaCBtZWFucyBpdCB3aWxsIHN0aWxsIGNyZWF0ZSBhIDAgbWFz
ay4KICAgICAgICAgY291bnRMZWFkaW5nWmVyb3MzMih2ZWN0b3JMZW5ndGhHUFIsIHNjcmF0Y2hH
UFIpOwogICAgICAgICBtb3ZlKFRydXN0ZWRJbW0zMigtMSksIHJlc3VsdEdQUik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAppbmRleCA4NzAxOTdhZjdjZjY5NmUxNDYy
ZGM1ODdhMDc3YjFjMTMwZWFiODVlLi5iZTljMTMwODVkMjk3NTIyOWZhNWQ4ZjdkZWU2OTIxZWM2
MTc0ZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVy
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTQx
Miw0MyArNDEyLDcgQEAgY2xhc3MgQ0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVy
cyB7CiAgICAgfQogCiAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KQotI2lmIENQVShYODYpCi0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1
bnNpZ25lZCBudW1HUFJTb3VyY2VzLCB1bnNpZ25lZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1G
UFJTb3VyY2VzLCB1bnNpZ25lZCBudW1Dcm9zc1NvdXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJn
cywgdW5zaWduZWQgZXh0cmFQb2tlLCB0eXBlbmFtZS4uLiBBcmdzPgotICAgIEFMV0FZU19JTkxJ
TkUgdm9pZCBzZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1H
UFJTb3VyY2VzLCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4
dHJhR1BSQXJncywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzLCBGUFJSZWcgYXJnLCBBcmdzLi4u
IGFyZ3MpCi0gICAgewotICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfc2FtZTxDVVJSRU5U
X0FSR1VNRU5UX1RZUEUsIGRvdWJsZT46OnZhbHVlLCAiV2Ugc2hvdWxkIG9ubHkgYmUgcGFzc2lu
ZyBGUFJSZWdzIHRvIGEgZG91YmxlIik7Ci0gICAgICAgIHBva2VGb3JBcmd1bWVudChhcmcsIG51
bUdQUkFyZ3MsIG51bUZQUkFyZ3MsIG51bUNyb3NzU291cmNlcywgZXh0cmFHUFJBcmdzLCBleHRy
YVBva2UpOwotICAgICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9uVHlwZT4oYXJnU291
cmNlUmVncy5hZGRTdGFja0FyZyhhcmcpLmFkZFBva2UoKSwgYXJncy4uLik7Ci0gICAgfQotCi0g
ICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uVHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywg
dW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWduZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVt
RlBSU291cmNlcywgdW5zaWduZWQgbnVtQ3Jvc3NTb3VyY2VzLCB1bnNpZ25lZCBleHRyYUdQUkFy
Z3MsIHVuc2lnbmVkIGV4dHJhUG9rZSwgdHlwZW5hbWUuLi4gQXJncz4KLSAgICBBTFdBWVNfSU5M
SU5FIHN0ZDo6ZW5hYmxlX2lmX3Q8c2l6ZW9mKENVUlJFTlRfQVJHVU1FTlRfVFlQRSkgPD0gND4K
LSAgICBzZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1HUFJT
b3VyY2VzLCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJh
R1BSQXJncywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzLCBHUFJSZWcgYXJnLCBBcmdzLi4uIGFy
Z3MpCi0gICAgewotICAgICAgICBwb2tlRm9yQXJndW1lbnQoYXJnLCBudW1HUFJBcmdzLCBudW1G
UFJBcmdzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJncywgZXh0cmFQb2tlKTsKLSAgICAg
ICAgc2V0dXBBcmd1bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MuYWRkR1BS
QXJnKCksIGFyZ3MuLi4pOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlv
blR5cGUsIHVuc2lnbmVkIG51bUdQUkFyZ3MsIHVuc2lnbmVkIG51bUdQUlNvdXJjZXMsIHVuc2ln
bmVkIG51bUZQUkFyZ3MsIHVuc2lnbmVkIG51bUZQUlNvdXJjZXMsIHVuc2lnbmVkIG51bUNyb3Nz
U291cmNlcywgdW5zaWduZWQgZXh0cmFHUFJBcmdzLCB1bnNpZ25lZCBleHRyYVBva2UsIHR5cGVu
YW1lLi4uIEFyZ3M+Ci0gICAgQUxXQVlTX0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNf
c2FtZTxDVVJSRU5UX0FSR1VNRU5UX1RZUEUsIEVuY29kZWRKU1ZhbHVlPjo6dmFsdWU+Ci0gICAg
c2V0dXBBcmd1bWVudHNJbXBsKEFyZ0NvbGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNl
cywgbnVtRlBSQXJncywgbnVtRlBSU291cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFy
Z3MsIGV4dHJhUG9rZT4gYXJnU291cmNlUmVncywgQ2VsbFZhbHVlIHBheWxvYWQsIEFyZ3MuLi4g
YXJncykKLSAgICB7Ci0gICAgICAgIHBva2VGb3JBcmd1bWVudChwYXlsb2FkLmdwcigpLCBudW1H
UFJBcmdzLCBudW1GUFJBcmdzLCBudW1Dcm9zc1NvdXJjZXMsIGV4dHJhR1BSQXJncywgZXh0cmFQ
b2tlKTsKLSAgICAgICAgcG9rZUZvckFyZ3VtZW50KFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxs
VGFnKSwgbnVtR1BSQXJncywgbnVtRlBSQXJncywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFy
Z3MsIGV4dHJhUG9rZSArIDEpOwotICAgICAgICBzZXR1cEFyZ3VtZW50c0ltcGw8T3BlcmF0aW9u
VHlwZT4oYXJnU291cmNlUmVncy5hZGRHUFJBcmcoKS5hZGRQb2tlKCksIGFyZ3MuLi4pOwotICAg
IH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE9wZXJhdGlvblR5cGUsIHVuc2lnbmVkIG51bUdQ
UkFyZ3MsIHVuc2lnbmVkIG51bUdQUlNvdXJjZXMsIHVuc2lnbmVkIG51bUZQUkFyZ3MsIHVuc2ln
bmVkIG51bUZQUlNvdXJjZXMsIHVuc2lnbmVkIG51bUNyb3NzU291cmNlcywgdW5zaWduZWQgZXh0
cmFHUFJBcmdzLCB1bnNpZ25lZCBleHRyYVBva2UsIHR5cGVuYW1lLi4uIEFyZ3M+Ci0gICAgQUxX
QVlTX0lOTElORSBzdGQ6OmVuYWJsZV9pZl90PHN0ZDo6aXNfc2FtZTxDVVJSRU5UX0FSR1VNRU5U
X1RZUEUsIEVuY29kZWRKU1ZhbHVlPjo6dmFsdWU+Ci0gICAgc2V0dXBBcmd1bWVudHNJbXBsKEFy
Z0NvbGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBS
U291cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZT4gYXJnU291
cmNlUmVncywgSlNWYWx1ZVJlZ3MgYXJnLCBBcmdzLi4uIGFyZ3MpCi0gICAgewotICAgICAgICBw
b2tlRm9yQXJndW1lbnQoYXJnLnBheWxvYWRHUFIoKSwgbnVtR1BSQXJncywgbnVtRlBSQXJncywg
bnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZSk7Ci0gICAgICAgIHBva2VG
b3JBcmd1bWVudChhcmcudGFnR1BSKCksIG51bUdQUkFyZ3MsIG51bUZQUkFyZ3MsIG51bUNyb3Nz
U291cmNlcywgZXh0cmFHUFJBcmdzLCBleHRyYVBva2UgKyAxKTsKLSAgICAgICAgc2V0dXBBcmd1
bWVudHNJbXBsPE9wZXJhdGlvblR5cGU+KGFyZ1NvdXJjZVJlZ3MuYWRkR1BSQXJnKCkuYWRkUG9r
ZSgpLCBhcmdzLi4uKTsKLSAgICB9Ci0KLSNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoTUlQ
UykKKyNpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKE1JUFMpCiAKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBPcGVyYXRpb25UeXBlLCB1bnNpZ25lZCBudW1HUFJBcmdzLCB1bnNpZ25lZCBudW1HUFJT
b3VyY2VzLCB1bnNpZ25lZCBudW1GUFJBcmdzLCB1bnNpZ25lZCBudW1GUFJTb3VyY2VzLCB1bnNp
Z25lZCBudW1Dcm9zc1NvdXJjZXMsIHVuc2lnbmVkIGV4dHJhR1BSQXJncywgdW5zaWduZWQgZXh0
cmFQb2tlLCB0eXBlbmFtZS4uLiBBcmdzPgogICAgIHZvaWQgc2V0dXBBcmd1bWVudHNJbXBsKEFy
Z0NvbGxlY3Rpb248bnVtR1BSQXJncywgbnVtR1BSU291cmNlcywgbnVtRlBSQXJncywgbnVtRlBS
U291cmNlcywgbnVtQ3Jvc3NTb3VyY2VzLCBleHRyYUdQUkFyZ3MsIGV4dHJhUG9rZT4gYXJnU291
cmNlUmVncywgRlBSUmVnIGFyZywgQXJncy4uLiBhcmdzKQpAQCAtNjY5LDcgKzYzMyw3IEBAIGNs
YXNzIENDYWxsSGVscGVycyA6IHB1YmxpYyBBc3NlbWJseUhlbHBlcnMgewogICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c0ltcGwoQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBu
dW1HUFJTb3VyY2VzLCBudW1GUFJBcmdzLCBudW1GUFJTb3VyY2VzLCBudW1Dcm9zc1NvdXJjZXMs
IGV4dHJhR1BSQXJncywgZXh0cmFQb2tlPiBhcmdTb3VyY2VSZWdzKQogICAgIHsKICAgICAgICAg
c3RhdGljX2Fzc2VydChGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBlPjo6YXJpdHkgPT0gbnVt
R1BSQXJncyArIG51bUZQUkFyZ3MsICJPbmUgbGFzdCBzYW5pdHkgY2hlY2siKTsKLSNpZiBVU0Uo
SlNWQUxVRTY0KSB8fCBDUFUoWDg2KQorI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIHN0YXRp
Y19hc3NlcnQoRnVuY3Rpb25UcmFpdHM8T3BlcmF0aW9uVHlwZT46OmNDYWxsQXJpdHkoKSA9PSBu
dW1HUFJBcmdzICsgbnVtRlBSQXJncyArIGV4dHJhUG9rZSwgIkNoZWNrIHRoZSBDQ2FsbCBhcml0
eSIpOwogI2VuZGlmCiAgICAgICAgIHNldHVwU3R1YkFyZ3M8bnVtR1BSU291cmNlcywgR1BSUmVn
PihjbGFtcEFycmF5VG9TaXplPG51bUdQUlNvdXJjZXMsIEdQUlJlZz4oYXJnU291cmNlUmVncy5n
cHJEZXN0aW5hdGlvbnMpLCBjbGFtcEFycmF5VG9TaXplPG51bUdQUlNvdXJjZXMsIEdQUlJlZz4o
YXJnU291cmNlUmVncy5ncHJTb3VyY2VzKSk7CkBAIC04MTIsNyArNzc2LDcgQEAgY2xhc3MgQ0Nh
bGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiAjZWxpZiBDUFUoTUlQUykKICAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKGZyYW1lUG9pbnRlclJlZ2lzdGVyLCBzaXplb2Yodm9pZCop
KSwgcmV0dXJuQWRkcmVzc1JlZ2lzdGVyKTsKICAgICAgICAgc3ViUHRyKFRydXN0ZWRJbW0zMigy
ICogc2l6ZW9mKHZvaWQqKSksIG5ld0ZyYW1lU2l6ZUdQUik7Ci0jZWxpZiBDUFUoWDg2KSB8fCBD
UFUoWDg2XzY0KQorI2VsaWYgQ1BVKFg4Nl82NCkKICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGZy
YW1lUG9pbnRlclJlZ2lzdGVyLCBzaXplb2Yodm9pZCopKSwgdGVtcEdQUik7CiAgICAgICAgIHB1
c2godGVtcEdQUik7CiAgICAgICAgIHN1YlB0cihUcnVzdGVkSW1tMzIoc2l6ZW9mKHZvaWQqKSks
IG5ld0ZyYW1lU2l6ZUdQUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NhbGxGcmFtZVNodWZmbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZy
YW1lU2h1ZmZsZXIuY3BwCmluZGV4IDUzOWU1MDJlZGE1YmM4NjVkY2Q5ZmU0NmUxNGVjMGQ5ZDkx
YzA1MDguLmU3NzUyNTk5NzY0MGU2MTRjOTc3Yjk0NmYzYmQ2MmU1ZjAxZTJhNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuY3BwCkBAIC0zNzcs
MTkgKzM3Nyw3IEBAIHZvaWQgQ2FsbEZyYW1lU2h1ZmZsZXI6OnByZXBhcmVGb3JUYWlsQ2FsbCgp
CiAgICAgbV9vbGRGcmFtZUJhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0
ZXI7CiAgICAgbV9vbGRGcmFtZU9mZnNldCA9IG51bUxvY2FscygpOwogICAgIG1fbmV3RnJhbWVC
YXNlID0gYWNxdWlyZUdQUigpOwotI2lmIENQVShYODYpCi0gICAgLy8gV2UgbG9hZCB0aGUgZnJh
bWUgcG9pbnRlciBtYW51YWxseSwgYnV0IHdlIG5lZWQgdG8gYXNrIHRoZQotICAgIC8vIGFsZ29y
aXRobSB0byBtb3ZlIHRoZSByZXR1cm4gUEMgZm9yIHVzIChpdCdkIHByb2JhYmx5Ci0gICAgLy8g
cmVxdWlyZSBhIHdyaXRlIHRvIHRoZSBkYW5nZXIgem9uZSkuIFNpbmNlIGl0J2QgYmUgYXdrd2Fy
ZAotICAgIC8vIHRvIGFzayBmb3IgaGFsZiBhIHZhbHVlIG1vdmUsIHdlIGFzayB0aGF0IHRoZSB3
aG9sZSB0aGluZwotICAgIC8vIGJlIG1vdmVkIGZvciB1cy4KLSAgICBhZGROZXcoVmlydHVhbFJl
Z2lzdGVyIHsgMCB9LAotICAgICAgICBWYWx1ZVJlY292ZXJ5OjpkaXNwbGFjZWRJbkpTU3RhY2so
VmlydHVhbFJlZ2lzdGVyKDApLCBEYXRhRm9ybWF0SlMpKTsKLQotICAgIC8vIHNwIHdpbGwgcG9p
bnQgdG8gaGVhZDAgYW5kIHdlIHdpbGwgbW92ZSBpdCB1cCBoYWxmIGEgc2xvdAotICAgIC8vIG1h
bnVhbGx5Ci0gICAgbV9uZXdGcmFtZU9mZnNldCA9IDA7Ci0jZWxpZiBDUFUoQVJNX1RIVU1CMikg
fHwgQ1BVKE1JUFMpCisjaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShNSVBTKQogICAgIC8vIFdl
IGxvYWQgdGhlIGZyYW1lIHBvaW50ZXIgYW5kIGxpbmsgcmVnaXN0ZXIKICAgICAvLyBtYW51YWxs
eS4gV2UgY291bGQgYXNrIHRoZSBhbGdvcml0aG0gdG8gbG9hZCB0aGVtIGZvciB1cywKICAgICAv
LyBhbmQgaXQgd291bGQgYWxsb3cgdXMgdG8gdXNlIHRoZSBsaW5rIHJlZ2lzdGVyIGFzIGFuIGV4
dHJhCkBAIC00NzYsMTIgKzQ2NCw2IEBAIHZvaWQgQ2FsbEZyYW1lU2h1ZmZsZXI6OnByZXBhcmVG
b3JUYWlsQ2FsbCgpCiAKICAgICBwcmVwYXJlQW55KCk7CiAKLSNpZiBDUFUoWDg2KQotICAgIGlm
ICh2ZXJib3NlKQotICAgICAgICBkYXRhTG9nKCIgIFNpbXVsYXRpbmcgcG9wIG9mIHRoZSBjYWxs
IGZyYW1lIHJlZ2lzdGVyXG4iKTsKLSAgICBtX2ppdC5hZGRQdHIoTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMihzaXplb2Yodm9pZCopKSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsKLSNlbmRpZgotCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coIlJl
YWR5IGZvciB0YWlsIGNhbGwhXG4iKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAppbmRl
eCAzNmRlNTNhMGJjM2E3MmY1NTU4ZDE5ZWRhNjQ3NmFmMDQ5NDZlYzZjLi5iMTY3ZjFjMjZhYWZi
MDNlZDNhMTc4ZWMxNjA1NDJiODdmYzk0YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3Bw
CkBAIC05NDUsMTIgKzk0NSw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhh
bmRsZXJzKCkKIAogICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoJnZtKCkpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwotCi0jaWYgQ1BVKFg4NikKLSAgICAgICAgLy8gRklYTUU6
IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24sIGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBp
biB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCi0gICAgICAgIHBva2UoR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICAgICAgcG9rZShHUFJJbmZvOjphcmd1bWVudEdQUjEsIDEpOwotI2VuZGlm
CiAgICAgICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNvcmQoY2FsbChPcGVyYXRpb25QdHJUYWcp
LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIEZ1bmN0aW9uUHRyPE9wZXJh
dGlvblB0clRhZz4obG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSkpKTsKICAg
ICAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcih2bSgpKTsKICAgICB9CkBAIC05NjQsMTIgKzk1
OCw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKICAgICAg
ICAgLy8gbG9va3VwRXhjZXB0aW9uSGFuZGxlciBpcyBwYXNzZWQgdHdvIGFyZ3VtZW50cywgdGhl
IFZNIGFuZCB0aGUgZXhlYyAodGhlIENhbGxGcmFtZSopLgogICAgICAgICBtb3ZlKFRydXN0ZWRJ
bW1QdHIoJnZtKCkpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICBtb3ZlKEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotCi0jaWYgQ1BV
KFg4NikKLSAgICAgICAgLy8gRklYTUU6IHNob3VsZCB1c2UgdGhlIGNhbGwgYWJzdHJhY3Rpb24s
IGJ1dCB0aGlzIGlzIGN1cnJlbnRseSBpbiB0aGUgU3BlY3VsYXRpdmVKSVQgbGF5ZXIhCi0gICAg
ICAgIHBva2UoR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcG9rZShHUFJJbmZvOjph
cmd1bWVudEdQUjEsIDEpOwotI2VuZGlmCiAgICAgICAgIG1fY2FsbHMuYXBwZW5kKENhbGxSZWNv
cmQoY2FsbChPcGVyYXRpb25QdHJUYWcpLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCksIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4obG9va3VwRXhjZXB0aW9uSGFuZGxl
cikpKTsKICAgICAgICAganVtcFRvRXhjZXB0aW9uSGFuZGxlcih2bSgpKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFyaXRobWV0aWMzMl82NC5jcHAKaW5kZXgg
OTA4YzQ2ODhmNWRjY2I5YTdkYWVlNDdlNGJjNTliMzc0MTBjMWY0MC4uNGRlZjcwZWFhMDcxYTk0
ZmQxZjFiZTNjOGFhNTRlZTRmY2EzOGRjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRBcml0aG1ldGljMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQXJpdGhtZXRpYzMyXzY0LmNwcApAQCAtMzM0LDUzICszMzQsMTUgQEAgdm9pZCBK
SVQ6OmVtaXRCaW5hcnlEb3VibGVPcChjb25zdCBJbnN0cnVjdGlvbiAqaW5zdHJ1Y3Rpb24sIE9w
ZXJhbmRUeXBlcyB0eXBlcywKIAogdm9pZCBKSVQ6OmVtaXRfb3BfbW9kKGNvbnN0IEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0jaWYgQ1BVKFg4NikKLSAgICBhdXRvIGJ5dGVj
b2RlID0gaW5zdHJ1Y3Rpb24tPmFzPE9wTW9kPigpOwotICAgIGludCBkc3QgPSBieXRlY29kZS5t
X2RzdC5vZmZzZXQoKTsKLSAgICBpbnQgb3AxID0gYnl0ZWNvZGUubV9saHMub2Zmc2V0KCk7Ci0g
ICAgaW50IG9wMiA9IGJ5dGVjb2RlLm1fcmhzLm9mZnNldCgpOwotCi0gICAgLy8gTWFrZSBzdXJl
IHJlZ2lzdGVycyBhcmUgY29ycmVjdCBmb3IgeDg2IElESVYgaW5zdHJ1Y3Rpb25zLgotICAgIEFT
U0VSVChyZWdUMCA9PSBYODZSZWdpc3RlcnM6OmVheCk7Ci0gICAgQVNTRVJUKHJlZ1QxID09IFg4
NlJlZ2lzdGVyczo6ZWR4KTsKLSAgICBBU1NFUlQocmVnVDIgPT0gWDg2UmVnaXN0ZXJzOjplY3gp
OwotICAgIEFTU0VSVChyZWdUMyA9PSBYODZSZWdpc3RlcnM6OmVieCk7Ci0KLSAgICBlbWl0TG9h
ZDIob3AxLCByZWdUMCwgcmVnVDMsIG9wMiwgcmVnVDEsIHJlZ1QyKTsKLSAgICBhZGRTbG93Q2Fz
ZShicmFuY2hJZk5vdEludDMyKHJlZ1QxKSk7Ci0gICAgYWRkU2xvd0Nhc2UoYnJhbmNoSWZOb3RJ
bnQzMihyZWdUMCkpOwotCi0gICAgbW92ZShyZWdUMywgcmVnVDApOwotICAgIGFkZFNsb3dDYXNl
KGJyYW5jaFRlc3QzMihaZXJvLCByZWdUMikpOwotICAgIEp1bXAgZGVub21pbmF0b3JOb3ROZWcx
ID0gYnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QyLCBUcnVzdGVkSW1tMzIoLTEpKTsKLSAgICBhZGRT
bG93Q2FzZShicmFuY2gzMihFcXVhbCwgcmVnVDAsIFRydXN0ZWRJbW0zMigtMjE0NzQ4MzY0Ny0x
KSkpOwotICAgIGRlbm9taW5hdG9yTm90TmVnMS5saW5rKHRoaXMpOwotICAgIHg4NkNvbnZlcnRU
b0RvdWJsZVdvcmQzMigpOwotICAgIHg4NkRpdjMyKHJlZ1QyKTsKLSAgICBKdW1wIG51bWVyYXRv
clBvc2l0aXZlID0gYnJhbmNoMzIoR3JlYXRlclRoYW5PckVxdWFsLCByZWdUMywgVHJ1c3RlZElt
bTMyKDApKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hUZXN0MzIoWmVybywgcmVnVDEpKTsKLSAg
ICBudW1lcmF0b3JQb3NpdGl2ZS5saW5rKHRoaXMpOwotICAgIGVtaXRTdG9yZUludDMyKGRzdCwg
cmVnVDEsIChvcDEgPT0gZHN0IHx8IG9wMiA9PSBkc3QpKTsKLSNlbHNlCiAgICAgSklUU2xvd1Bh
dGhDYWxsIHNsb3dQYXRoQ2FsbCh0aGlzLCBjdXJyZW50SW5zdHJ1Y3Rpb24sIHNsb3dfcGF0aF9t
b2QpOwogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7Ci0jZW5kaWYKIH0KIAotdm9pZCBKSVQ6OmVt
aXRTbG93X29wX21vZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0
b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQordm9pZCBKSVQ6OmVtaXRTbG93X29w
X21vZChjb25zdCBJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3Im
KQogewotI2lmIENQVShYODYpCi0gICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKLQotICAgIEpJ
VFNsb3dQYXRoQ2FsbCBzbG93UGF0aENhbGwodGhpcywgY3VycmVudEluc3RydWN0aW9uLCBzbG93
X3BhdGhfbW9kKTsKLSAgICBzbG93UGF0aENhbGwuY2FsbCgpOwotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oY3VycmVudEluc3RydWN0aW9uKTsKLSAgICBVTlVTRURfUEFSQU0oaXRlcik7CiAgICAg
Ly8gV2Ugd291bGQgaGF2ZSByZWFsbHkgdXNlZnVsIGFzc2VydGlvbnMgaGVyZSBpZiBpdCB3YXNu
J3QgZm9yIHRoZSBjb21waWxlcidzCiAgICAgLy8gaW5zaXN0ZW5jZSBvbiBhdHRyaWJ1dGUgbm9y
ZXR1cm4uCiAgICAgLy8gUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZgogfQog
CiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRU5EOiBPUF9NT0QgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1Nsb3dQYXRoQ2FsbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9TbG93UGF0
aENhbGwuaAppbmRleCBhZDc4NGIxYWNjZTQ2YjRjZjU1NGI5YjcxMjcwZTRmYzdlMTY4Y2U5Li44
ZDJmYWE4NDViOGY4Y2I5YzMwYzk4MDQwNjYwYjc2MTA5NzlhNmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L1Nsb3dQYXRoQ2FsbC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvU2xvd1BhdGhDYWxsLmgKQEAgLTQ5LDExICs0OSw3IEBAIGNsYXNzIEpJVFNs
b3dQYXRoQ2FsbCB7CiAgICAgICAgICAgICBtX2ppdC0+c2FtcGxlSW5zdHJ1Y3Rpb24oJm1faml0
LT5tX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKClbbV9qaXQtPm1fYnl0ZWNvZGVPZmZzZXRdLCB0
cnVlKTsKICNlbmRpZgogICAgICAgICBtX2ppdC0+dXBkYXRlVG9wQ2FsbEZyYW1lKCk7Ci0jaWYg
Q1BVKFg4NikgJiYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICAgICAgbV9qaXQtPmFkZFB0cihNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC04KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyKTsKLSAgICAgICAgbV9qaXQtPnB1c2goSklUOjpUcnVzdGVkSW1tMzIoSklUOjpU
cnVzdGVkSW1tUHRyKG1fcGMpKSk7Ci0gICAgICAgIG1faml0LT5wdXNoKEpJVDo6Y2FsbEZyYW1l
UmVnaXN0ZXIpOwotI2VsaWYgQ1BVKFg4Nl82NCkgJiYgT1MoV0lORE9XUykKKyNpZiBDUFUoWDg2
XzY0KSAmJiBPUyhXSU5ET1dTKQogICAgICAgICBtX2ppdC0+YWRkUHRyKE1hY3JvQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoLTE2KSwgTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVy
KTsKICAgICAgICAgbV9qaXQtPm1vdmUoTWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBKSVQ6OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIG1faml0LT5tb3ZlKEpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEpJVDo6YXJndW1lbnRHUFIxKTsKQEAgLTY1LDkgKzYxLDcgQEAgY2xhc3Mg
SklUU2xvd1BhdGhDYWxsIHsKICAgICAgICAgSklUOjpDYWxsIGNhbGwgPSBtX2ppdC0+Y2FsbChP
cGVyYXRpb25QdHJUYWcpOwogICAgICAgICBtX2ppdC0+bV9jYWxscy5hcHBlbmQoQ2FsbFJlY29y
ZChjYWxsLCBtX2ppdC0+bV9ieXRlY29kZU9mZnNldCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRy
VGFnPihtX3Nsb3dQYXRoRnVuY3Rpb24pKSk7CiAKLSNpZiBDUFUoWDg2KSAmJiBVU0UoSlNWQUxV
RTMyXzY0KQotICAgICAgICBtX2ppdC0+YWRkUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoMTYpLCBNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwotI2VsaWYgQ1BV
KFg4Nl82NCkgJiYgT1MoV0lORE9XUykKKyNpZiBDUFUoWDg2XzY0KSAmJiBPUyhXSU5ET1dTKQog
ICAgICAgICBtX2ppdC0+cG9wKEpJVDo6cmVnVDApOyAvLyB2UEMKICAgICAgICAgbV9qaXQtPnBv
cChKSVQ6OnJlZ1QxKTsgLy8gY2FsbEZyYW1lIHJlZ2lzdGVyCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAppbmRleCA2OTM5MjMxZjE5ZTkw
MzY0MzliZjhmOTZjYWFhZjRiZTc0MzRlMjUwLi4wNWY0N2RhNDdhMTdmN2M5ZWIwN2M4ZGZjNWY3
ZmUxOWNjNjYyNTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5r
R2VuZXJhdG9ycy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwCkBAIC0yNjgsMjQgKzI2OCw3IEBAIHN0YXRpYyBNYWNyb0Fzc2VtYmxlckNvZGVS
ZWY8SklUVGh1bmtQdHJUYWc+IG5hdGl2ZUZvckdlbmVyYXRvcihWTSYgdm0sIFRodW5rRnVuCiAg
ICAgaml0LmVtaXRQdXRUb0NhbGxGcmFtZUhlYWRlcigwLCBDYWxsRnJhbWVTbG90Ojpjb2RlQmxv
Y2spOwogICAgIGppdC5zdG9yZVB0cihKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIs
ICZ2bS50b3BDYWxsRnJhbWUpOwogCi0jaWYgQ1BVKFg4NikKLSAgICAvLyBDYWxsaW5nIGNvbnZl
bnRpb246ICAgICAgZihlY3gsIGVkeCwgLi4uKTsKLSAgICAvLyBIb3N0IGZ1bmN0aW9uIHNpZ25h
dHVyZTogZihFeGVjU3RhdGUqKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKLQotICAgIGppdC5zdWJQdHIoSlNJbnRl
cmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig4KSwgSlNJbnRlcmZhY2VKSVQ6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyKTsgLy8gQWxpZ24gc3RhY2sgYWZ0ZXIgcHJvbG9ndWUuCi0KLSAgICAvLyBjYWxsIHRo
ZSBmdW5jdGlvbgotICAgIGppdC5lbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihDYWxsRnJh
bWVTbG90OjpjYWxsZWUsIEpTSW50ZXJmYWNlSklUOjpyZWdUMSk7Ci0gICAgaWYgKHRodW5rRnVu
Y3Rpb25UeXBlID09IFRodW5rRnVuY3Rpb25UeXBlOjpKU0Z1bmN0aW9uKSB7Ci0gICAgICAgIGpp
dC5sb2FkUHRyKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50ZXJmYWNlSklUOjpyZWdUMSwg
SlNGdW5jdGlvbjo6b2Zmc2V0T2ZFeGVjdXRhYmxlKCkpLCBKU0ludGVyZmFjZUpJVDo6cmVnVDEp
OwotICAgICAgICBqaXQuY2FsbChKU0ludGVyZmFjZUpJVDo6QWRkcmVzcyhKU0ludGVyZmFjZUpJ
VDo6cmVnVDEsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uKSwgSlNFbnRyeVB0clRhZyk7Ci0g
ICAgfSBlbHNlCi0gICAgICAgIGppdC5jYWxsKEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzKEpTSW50
ZXJmYWNlSklUOjpyZWdUMSwgSW50ZXJuYWxGdW5jdGlvbjo6b2Zmc2V0T2ZOYXRpdmVGdW5jdGlv
bkZvcihraW5kKSksIEpTRW50cnlQdHJUYWcpOwotCi0gICAgaml0LmFkZFB0cihKU0ludGVyZmFj
ZUpJVDo6VHJ1c3RlZEltbTMyKDgpLCBKU0ludGVyZmFjZUpJVDo6c3RhY2tQb2ludGVyUmVnaXN0
ZXIpOwotCi0jZWxpZiBDUFUoWDg2XzY0KQorI2lmIENQVShYODZfNjQpCiAjaWYgIU9TKFdJTkRP
V1MpCiAgICAgLy8gQ2FsbGluZyBjb252ZW50aW9uOiAgICAgIGYoZWRpLCBlc2ksIGVkeCwgZWN4
LCAuLi4pOwogICAgIC8vIEhvc3QgZnVuY3Rpb24gc2lnbmF0dXJlOiBmKEV4ZWNTdGF0ZSopOwpA
QCAtMzgyLDIyICszNjUsMTQgQEAgc3RhdGljIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVu
a1B0clRhZz4gbmF0aXZlRm9yR2VuZXJhdG9yKFZNJiB2bSwgVGh1bmtGdW4KICAgICBqaXQuY29w
eUNhbGxlZVNhdmVzVG9FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIodm0udG9wRW50cnlGcmFt
ZSk7CiAgICAgaml0LnN0b3JlUHRyKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3Rlciwg
JnZtLnRvcENhbGxGcmFtZSk7CiAKLSNpZiBDUFUoWDg2KSAmJiBVU0UoSlNWQUxVRTMyXzY0KQot
ICAgIGppdC5zdWJQdHIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMig0KSwgSlNJbnRlcmZh
Y2VKSVQ6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKLSAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJ
VDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJmYWNlSklUOjpyZWdUMCk7Ci0gICAgaml0LnB1
c2goSlNJbnRlcmZhY2VKSVQ6OnJlZ1QwKTsKLSNlbHNlCiAjaWYgT1MoV0lORE9XUykKICAgICAv
LyBBbGxvY2F0ZSBzcGFjZSBvbiBzdGFjayBmb3IgdGhlIDQgcGFyYW1ldGVyIHJlZ2lzdGVycy4K
ICAgICBqaXQuc3ViUHRyKEpTSW50ZXJmYWNlSklUOjpUcnVzdGVkSW1tMzIoNCAqIHNpemVvZihp
bnQ2NF90KSksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZW5kaWYK
ICAgICBqaXQubW92ZShKU0ludGVyZmFjZUpJVDo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEpTSW50ZXJm
YWNlSklUOjphcmd1bWVudEdQUjApOwotI2VuZGlmCiAgICAgaml0Lm1vdmUoSlNJbnRlcmZhY2VK
SVQ6OlRydXN0ZWRJbW1QdHIodGFnQ0Z1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0
aW9uVk1IYW5kbGVFeGNlcHRpb24pKSwgSlNJbnRlcmZhY2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQu
Y2FsbChKU0ludGVyZmFjZUpJVDo6cmVnVDMsIE9wZXJhdGlvblB0clRhZyk7Ci0jaWYgQ1BVKFg4
NikgJiYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBqaXQuYWRkUHRyKEpTSW50ZXJmYWNlSklUOjpU
cnVzdGVkSW1tMzIoOCksIEpTSW50ZXJmYWNlSklUOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0j
ZWxpZiBPUyhXSU5ET1dTKQorI2lmIE9TKFdJTkRPV1MpCiAgICAgaml0LmFkZFB0cihKU0ludGVy
ZmFjZUpJVDo6VHJ1c3RlZEltbTMyKDQgKiBzaXplb2YoaW50NjRfdCkpLCBKU0ludGVyZmFjZUpJ
VDo6c3RhY2tQb2ludGVyUmVnaXN0ZXIpOwogI2VuZGlmCiAKQEAgLTUyMyw5ICs0OTgsNiBAQCBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGFyaXR5Rml4dXBHZW5lcmF0b3Io
Vk0mIHZtKQogIyAgZW5kaWYKICAgICBqaXQucmV0KCk7CiAjZWxzZSAvLyBVU0UoSlNWQUxVRTY0
KSBzZWN0aW9uIGFib3ZlLCBVU0UoSlNWQUxVRTMyXzY0KSBzZWN0aW9uIGJlbG93LgotIyAgaWYg
Q1BVKFg4NikKLSAgICBqaXQucG9wKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7Ci0jICBlbmRpZgog
ICAgIGppdC5tb3ZlKEpTSW50ZXJmYWNlSklUOjpjYWxsRnJhbWVSZWdpc3RlciwgSlNJbnRlcmZh
Y2VKSVQ6OnJlZ1QzKTsKICAgICBqaXQubG9hZDMyKEpTSW50ZXJmYWNlSklUOjphZGRyZXNzRm9y
KENhbGxGcmFtZVNsb3Q6OmFyZ3VtZW50Q291bnQpLCBKU0ludGVyZmFjZUpJVDo6YXJndW1lbnRH
UFIyKTsKICAgICBqaXQuYWRkMzIoSlNJbnRlcmZhY2VKSVQ6OlRydXN0ZWRJbW0zMihDYWxsRnJh
bWU6OmhlYWRlclNpemVJblJlZ2lzdGVycyksIEpTSW50ZXJmYWNlSklUOjphcmd1bWVudEdQUjIp
OwpAQCAtNTgwLDExICs1NTIsOCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJU
YWc+IGFyaXR5Rml4dXBHZW5lcmF0b3IoVk0mIHZtKQogCiAgICAgZG9uZS5saW5rKCZqaXQpOwog
Ci0jICBpZiBDUFUoWDg2KQotICAgIGppdC5wdXNoKEpTSW50ZXJmYWNlSklUOjpyZWdUNCk7Ci0j
ICBlbmRpZgogICAgIGppdC5yZXQoKTsKLSNlbmRpZiAvLyBFbmQgb2YgVVNFKEpTVkFMVUUzMl82
NCkgc2VjdGlvbi4KKyNlbmRpZgogCiAgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcihqaXQsIEdM
T0JBTF9USFVOS19JRCk7CiAgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hCdWZmZXIsIEpJ
VFRodW5rUHRyVGFnLCAiZml4dXAgYXJpdHkiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3IuY3BwCmluZGV4IDM3ZWVmZjRlNDQ1MzE1ZTgwY2Vm
ZGRjNTM4MDA4NmJmMzE0YWU5YmEuLjMxOWFhNWJmMDc1Y2JmMGFlMDE1YjEyMDY5Y2QwNDE5Yzk4
OWIxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2Vu
ZXJhdG9yLmNwcApAQCAtMjM0NCw3ICsyMzQ0LDcgQEAgdm9pZCBBaXJJUkdlbmVyYXRvcjo6ZW1p
dE1vZE9yRGl2KGJvb2wgaXNEaXYsIEV4cHJlc3Npb25UeXBlIGxocywgRXhwcmVzc2lvblR5cGUK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisj
aWYgQ1BVKFg4Nl82NCkKICAgICBUbXAgZWF4KFg4NlJlZ2lzdGVyczo6ZWF4KTsKICAgICBUbXAg
ZWR4KFg4NlJlZ2lzdGVyczo6ZWR4KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3lhcnIvWWFyckpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklU
LmNwcAppbmRleCA4Njk1NDU5NjU5M2ZlOTAxOWI3ZTNhOWZjOGNmYjNiNzZmOWRmMzcyLi43ZDRm
OThhZWIzNWIxZjk5OTM4ODEwMzU5ZjljYjI2ZTUyMzZkMDI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUveWFyci9ZYXJySklULmNwcApAQCAtNTQsNyArNTQsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CiAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuUmVnaXN0ZXIyID0gQVJNUmVnaXN0ZXJz
OjpyMTsKIAotI2RlZmluZSBIQVZFX0lOSVRJQUxfU1RBUlRfUkVHCiAjZWxpZiBDUFUoQVJNNjQp
CiAgICAgLy8gQXJndW1lbnQgcmVnaXN0ZXJzCiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
aW5wdXQgPSBBUk02NFJlZ2lzdGVyczo6eDA7CkBAIC04MCw3ICs3OSw2IEBAIGNsYXNzIFlhcnJH
ZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJVEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewog
ICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyMiA9IEFSTTY0UmVnaXN0
ZXJzOjp4MTsKIAogICAgIGNvbnN0IFRydXN0ZWRJbW0zMiBzdXJyb2dhdGVUYWdNYXNrID0gVHJ1
c3RlZEltbTMyKDB4ZmZmZmZjMDApOwotI2RlZmluZSBIQVZFX0lOSVRJQUxfU1RBUlRfUkVHCiAj
ZGVmaW5lIEpJVF9VTklDT0RFX0VYUFJFU1NJT05TCiAjZWxpZiBDUFUoTUlQUykKICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBpbnB1dCA9IE1JUFNSZWdpc3RlcnM6OmEwOwpAQCAtOTUsMTgg
KzkzLDYgQEAgY2xhc3MgWWFyckdlbmVyYXRvciA6IHB1YmxpYyBZYXJySklUSW5mbywgcHJpdmF0
ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuUmVn
aXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjp2MDsKICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBy
ZXR1cm5SZWdpc3RlcjIgPSBNSVBTUmVnaXN0ZXJzOjp2MTsKIAotI2RlZmluZSBIQVZFX0lOSVRJ
QUxfU1RBUlRfUkVHCi0jZWxpZiBDUFUoWDg2KQotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IGlucHV0ID0gWDg2UmVnaXN0ZXJzOjplYXg7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
aW5kZXggPSBYODZSZWdpc3RlcnM6OmVkeDsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBs
ZW5ndGggPSBYODZSZWdpc3RlcnM6OmVjeDsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBv
dXRwdXQgPSBYODZSZWdpc3RlcnM6OmVkaTsKLQotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IHJlZ1QwID0gWDg2UmVnaXN0ZXJzOjplYng7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
cmVnVDEgPSBYODZSZWdpc3RlcnM6OmVzaTsKLQotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IHJldHVyblJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7Ci0gICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgcmV0dXJuUmVnaXN0ZXIyID0gWDg2UmVnaXN0ZXJzOjplZHg7CiAjZWxpZiBDUFUo
WDg2XzY0KQogI2lmICFPUyhXSU5ET1dTKQogICAgIC8vIEFyZ3VtZW50IHJlZ2lzdGVycwpAQCAt
MTUyLDcgKzEzOCw2IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJVEluZm8s
IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgIGNvbnN0IFRydXN0ZWRJbW0zMiBzdXBwbGVt
ZW50YXJ5UGxhbmVzQmFzZSA9IFRydXN0ZWRJbW0zMigweDEwMDAwKTsKICAgICBjb25zdCBUcnVz
dGVkSW1tMzIgdHJhaWxpbmdTdXJyb2dhdGVUYWcgPSBUcnVzdGVkSW1tMzIoMHhkYzAwKTsKICAg
ICBjb25zdCBUcnVzdGVkSW1tMzIgc3Vycm9nYXRlVGFnTWFzayA9IFRydXN0ZWRJbW0zMigweGZm
ZmZmYzAwKTsKLSNkZWZpbmUgSEFWRV9JTklUSUFMX1NUQVJUX1JFRwogI2RlZmluZSBKSVRfVU5J
Q09ERV9FWFBSRVNTSU9OUwogI2VuZGlmCiAKQEAgLTIwMjEsMTAgKzIwMDYsNiBAQCBjbGFzcyBZ
YXJyR2VuZXJhdG9yIDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVy
IHsKIAogICAgICAgICBjb25zdCBSZWdpc3RlcklEIGNoYXJhY3RlciA9IHJlZ1QwOwogICAgICAg
ICBjb25zdCBSZWdpc3RlcklEIG1hdGNoUG9zID0gcmVnVDE7Ci0jaWZuZGVmIEhBVkVfSU5JVElB
TF9TVEFSVF9SRUcKLSAgICAgICAgY29uc3QgUmVnaXN0ZXJJRCBpbml0aWFsU3RhcnQgPSBjaGFy
YWN0ZXI7Ci0jZW5kaWYKLQogICAgICAgICBKdW1wTGlzdCBmb3VuZEJlZ2lubmluZ05ld0xpbmU7
CiAgICAgICAgIEp1bXBMaXN0IHNhdmVTdGFydEluZGV4OwogICAgICAgICBKdW1wTGlzdCBmb3Vu
ZEVuZGluZ05ld0xpbmU7CkBAIC0yMDM5LDkgKzIwMjAsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAg
QVNTRVJUKCFtX3BhdHRlcm4ubV9ib2R5LT5tX2hhc0ZpeGVkU2l6ZSk7CiAgICAgICAgIGdldE1h
dGNoU3RhcnQobWF0Y2hQb3MpOwogCi0jaWZuZGVmIEhBVkVfSU5JVElBTF9TVEFSVF9SRUcKLSAg
ICAgICAgbG9hZEZyb21GcmFtZShtX3BhdHRlcm4ubV9pbml0aWFsU3RhcnRWYWx1ZUZyYW1lTG9j
YXRpb24sIGluaXRpYWxTdGFydCk7Ci0jZW5kaWYKICAgICAgICAgc2F2ZVN0YXJ0SW5kZXguYXBw
ZW5kKGJyYW5jaDMyKEJlbG93T3JFcXVhbCwgbWF0Y2hQb3MsIGluaXRpYWxTdGFydCkpOwogICAg
ICAgICBMYWJlbCBmaW5kQk9MTG9vcCh0aGlzKTsKICAgICAgICAgc3ViMzIoVHJ1c3RlZEltbTMy
KDEpLCBtYXRjaFBvcyk7CkBAIC0yMDUxLDkgKzIwMjksNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9y
IDogcHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAg
ICAgIGxvYWQxNihCYXNlSW5kZXgoaW5wdXQsIG1hdGNoUG9zLCBUaW1lc1R3bywgMCksIGNoYXJh
Y3Rlcik7CiAgICAgICAgIG1hdGNoQ2hhcmFjdGVyQ2xhc3MoY2hhcmFjdGVyLCBmb3VuZEJlZ2lu
bmluZ05ld0xpbmUsIG1fcGF0dGVybi5uZXdsaW5lQ2hhcmFjdGVyQ2xhc3MoKSk7CiAKLSNpZm5k
ZWYgSEFWRV9JTklUSUFMX1NUQVJUX1JFRwotICAgICAgICBsb2FkRnJvbUZyYW1lKG1fcGF0dGVy
bi5tX2luaXRpYWxTdGFydFZhbHVlRnJhbWVMb2NhdGlvbiwgaW5pdGlhbFN0YXJ0KTsKLSNlbmRp
ZgogICAgICAgICBicmFuY2gzMihBYm92ZSwgbWF0Y2hQb3MsIGluaXRpYWxTdGFydCkubGlua1Rv
KGZpbmRCT0xMb29wLCB0aGlzKTsKICAgICAgICAgc2F2ZVN0YXJ0SW5kZXguYXBwZW5kKGp1bXAo
KSk7CiAKQEAgLTM3NTMsMjQgKzM3MjgsNiBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDogcHVibGlj
IFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgLy8gcmN4IGlz
IHRoZSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgc3BhY2UgZm9yIHJlc3VsdCBpbiB4NjQgV2lu
ZG93cy4KICAgICAgICAgcHVzaChYODZSZWdpc3RlcnM6OmVjeCk7CiAjZW5kaWYKLSNlbGlmIENQ
VShYODYpCi0gICAgICAgIHB1c2goWDg2UmVnaXN0ZXJzOjplYnApOwotICAgICAgICBtb3ZlKHN0
YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVicCk7Ci0gICAgICAgIC8vIFRPRE86
IGRvIHdlIG5lZWQgc3BpbGwgcmVnaXN0ZXJzIHRvIGZpbGwgdGhlIG91dHB1dCBwb2ludGVyIGlm
IHRoZXJlIGFyZSBubyBzdWIgY2FwdHVyZXM/Ci0gICAgICAgIHB1c2goWDg2UmVnaXN0ZXJzOjpl
YngpOwotICAgICAgICBwdXNoKFg4NlJlZ2lzdGVyczo6ZWRpKTsKLSAgICAgICAgcHVzaChYODZS
ZWdpc3RlcnM6OmVzaSk7Ci0gICAgICAgIC8vIGxvYWQgb3V0cHV0IGludG8gZWRpICgyID0gc2F2
ZWQgZWJwICsgcmV0dXJuIGFkZHJlc3MpLgotICAgICNpZiBDT01QSUxFUihNU1ZDKQotICAgICAg
ICBsb2FkUHRyKEFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDIgKiBzaXplb2Yodm9pZCopKSwg
aW5wdXQpOwotICAgICAgICBsb2FkUHRyKEFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDMgKiBz
aXplb2Yodm9pZCopKSwgaW5kZXgpOwotICAgICAgICBsb2FkUHRyKEFkZHJlc3MoWDg2UmVnaXN0
ZXJzOjplYnAsIDQgKiBzaXplb2Yodm9pZCopKSwgbGVuZ3RoKTsKLSAgICAgICAgaWYgKGNvbXBp
bGVNb2RlID09IEluY2x1ZGVTdWJwYXR0ZXJucykKLSAgICAgICAgICAgIGxvYWRQdHIoQWRkcmVz
cyhYODZSZWdpc3RlcnM6OmVicCwgNSAqIHNpemVvZih2b2lkKikpLCBvdXRwdXQpOwotICAgICNl
bHNlCi0gICAgICAgIGlmIChjb21waWxlTW9kZSA9PSBJbmNsdWRlU3VicGF0dGVybnMpCi0gICAg
ICAgICAgICBsb2FkUHRyKEFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDIgKiBzaXplb2Yodm9p
ZCopKSwgb3V0cHV0KTsKLSAgICAjZW5kaWYKICNlbGlmIENQVShBUk02NCkKICAgICAgICAgdGFn
UmV0dXJuQWRkcmVzcygpOwogICAgICAgICBpZiAobV9kZWNvZGVTdXJyb2dhdGVQYWlycykgewpA
QCAtMzgyOCwxMSArMzc4NSw2IEBAIGNsYXNzIFlhcnJHZW5lcmF0b3IgOiBwdWJsaWMgWWFyckpJ
VEluZm8sIHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAgICAgICBpZiAobV9wYXR0ZXJuLm1f
c2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWJ4
KTsKICAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKLSNlbGlmIENQVShYODYpCi0gICAg
ICAgIHBvcChYODZSZWdpc3RlcnM6OmVzaSk7Ci0gICAgICAgIHBvcChYODZSZWdpc3RlcnM6OmVk
aSk7Ci0gICAgICAgIHBvcChYODZSZWdpc3RlcnM6OmVieCk7Ci0gICAgICAgIHBvcChYODZSZWdp
c3RlcnM6OmVicCk7CiAjZWxpZiBDUFUoQVJNNjQpCiAgICAgICAgIGlmIChtX2RlY29kZVN1cnJv
Z2F0ZVBhaXJzKQogICAgICAgICAgICAgcG9wUGFpcihmcmFtZVBvaW50ZXJSZWdpc3RlciwgbGlu
a1JlZ2lzdGVyKTsKQEAgLTM5NDEsMTMgKzM4OTMsOCBAQCBjbGFzcyBZYXJyR2VuZXJhdG9yIDog
cHVibGljIFlhcnJKSVRJbmZvLCBwcml2YXRlIE1hY3JvQXNzZW1ibGVyIHsKICAgICAgICAgfQog
I2VuZGlmCiAgICAgICAgIAotICAgICAgICBpZiAobV9wYXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFy
dFZhbHVlKSB7Ci0jaWZkZWYgSEFWRV9JTklUSUFMX1NUQVJUX1JFRworICAgICAgICBpZiAobV9w
YXR0ZXJuLm1fc2F2ZUluaXRpYWxTdGFydFZhbHVlKQogICAgICAgICAgICAgbW92ZShpbmRleCwg
aW5pdGlhbFN0YXJ0KTsKLSNlbHNlCi0gICAgICAgICAgICBzdG9yZVRvRnJhbWUoaW5kZXgsIG1f
cGF0dGVybi5tX2luaXRpYWxTdGFydFZhbHVlRnJhbWVMb2NhdGlvbik7Ci0jZW5kaWYKLSAgICAg
ICAgfQogCiAgICAgICAgIGdlbmVyYXRlKCk7CiAgICAgICAgIGlmIChtX2Rpc2Fzc2VtYmxlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS95YXJyL1lhcnJKSVQuaAppbmRleCA2YmU4MTRiMzdjMGJhZDM2ODEw
ODU2N2M3ZjkwMzcwMDdlMTAxYTJiLi41YTk4ZjFhNzJkZThjNzI5ZDhjNzM1OTM2YTFhZjE4M2U5
ZmU4NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySklULmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckpJVC5oCkBAIC0zMiwxMSArMzIs
NyBAQAogI2luY2x1ZGUgIllhcnIuaCIKICNpbmNsdWRlICJZYXJyUGF0dGVybi5oIgogCi0jaWYg
Q1BVKFg4NikgJiYgIUNPTVBJTEVSKE1TVkMpCi0jZGVmaW5lIFlBUlJfQ0FMTCBfX2F0dHJpYnV0
ZV9fICgocmVncGFybSAoMykpKQotI2Vsc2UKICNkZWZpbmUgWUFSUl9DQUxMCi0jZW5kaWYKIAog
bmFtZXNwYWNlIEpTQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGY5Njg2NTM1N2JhNWNmMjBlZmJlM2Y0
ZWVlOTQxMTJhMWEwOWJiNzUuLjU1ZGEyMzZmOGNjMGY2Y2YzOGJmZmQ0ZTg5YzIwMThkMTBmY2I1
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm0uaApAQCAtODA5LDcgKzgwOSw3IEBACiAvKiBJZiBwb3NzaWJsZSwgdHJ5
IHRvIGVuYWJsZSBhIGRpc2Fzc2VtYmxlci4gVGhpcyBpcyBvcHRpb25hbC4gV2UgcHJvY2VlZCBp
biB0d28KICAgIHN0ZXBzOiBmaXJzdCB3ZSB0cnkgdG8gZmluZCBzb21lIGRpc2Fzc2VtYmxlciB0
aGF0IHdlIGNhbiB1c2UsIGFuZCB0aGVuIHdlCiAgICBkZWNpZGUgaWYgdGhlIGhpZ2gtbGV2ZWwg
ZGlzYXNzZW1ibGVyIEFQSSBjYW4gYmUgZW5hYmxlZC4gKi8KLSNpZiAhZGVmaW5lZChVU0VfVURJ
Uzg2KSAmJiBFTkFCTEUoSklUKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpICYmICFVU0Uo
Q0FQU1RPTkUpCisjaWYgIWRlZmluZWQoVVNFX1VESVM4NikgJiYgRU5BQkxFKEpJVCkgJiYgQ1BV
KFg4Nl82NCkgJiYgIVVTRShDQVBTVE9ORSkKICNkZWZpbmUgVVNFX1VESVM4NiAxCiAjZW5kaWYK
IApAQCAtODIzLDcgKzgyMyw3IEBACiAKICNpZiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYg
RU5BQkxFKEpJVCkKIC8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8K
LSNpZiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVY
KSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJEKSB8fCBPUyhXSU5ET1dTKSkKKyNpZiBDUFUoWDg2
XzY0KSAmJiAoT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkgfHwgT1MoRlJFRUJTRCkgfHwgT1MoSFVS
RCkgfHwgT1MoV0lORE9XUykpCiAjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyog
RW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TLCBMaW51eCwg
YW5kIEZyZWVCU0QuICovCkBAIC0xMDQ3LDcgKzEwNDcsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAot
I2lmIEVOQUJMRShERkdfSklUKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODYp
IHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCisjaWYgRU5BQkxFKERGR19KSVQpICYmIEhB
VkUoTUFDSElORV9DT05URVhUKSAmJiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkKICNkZWZp
bmUgRU5BQkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQUyAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3Nzaml0L0Z1bmN0aW9uQ2FsbC5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
aml0L0Z1bmN0aW9uQ2FsbC5oCmluZGV4IDg1ZWM3NGE4YTA2MGMwOWFhZjg4NDhiZjM5NWI0M2U0
OGNkOWMzNTAuLjE2NDIxZThiMjQyZDA4MDUzODdkZTJmNTYzMmQwM2EzMjhiYTE1MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9GdW5jdGlvbkNhbGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3NqaXQvRnVuY3Rpb25DYWxsLmgKQEAgLTc0LDcgKzc0LDcgQEAgY2xhc3MgRnVu
Y3Rpb25DYWxsIHsKIAogICAgIEpTQzo6TWFjcm9Bc3NlbWJsZXI6Okp1bXAgY2FsbEFuZEJyYW5j
aE9uQm9vbGVhblJldHVyblZhbHVlKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OlJlc3VsdENvbmRpdGlv
biBjb25kaXRpb24pCiAgICAgewotI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisjaWYgQ1BV
KFg4Nl82NCkKICAgICAgICAgcmV0dXJuIGNhbGxBbmRCcmFuY2hPbkNvbmRpdGlvbihjb25kaXRp
b24sIEpTQzo6TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigweGZmKSk7CiAjZWxpZiBDUFUo
QVJNNjQpIHx8IENQVShBUk0pCiAgICAgICAgIHJldHVybiBjYWxsQW5kQnJhbmNoT25Db25kaXRp
b24oY29uZGl0aW9uLCBKU0M6Ok1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoLTEpKTsKQEAg
LTk3LDcgKzk3LDcgQEAgY2xhc3MgRnVuY3Rpb25DYWxsIHsKICAgICAgICAgSlNDOjpNYWNyb0Fz
c2VtYmxlcjo6UmVnaXN0ZXJJRCBhID0gbV9maXJzdEFyZ3VtZW50OwogICAgICAgICBKU0M6Ok1h
Y3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGIgPSBtX3NlY29uZEFyZ3VtZW50OwogICAgICAgICAv
LyB4ODYgY2FuIHN3YXAgd2l0aG91dCBhIHRlbXBvcmFyeSByZWdpc3Rlci4gT24gb3RoZXIgYXJj
aGl0ZWN0dXJlcywgd2UgbmVlZCBhbGxvY2F0ZSBhIHRlbXBvcmFyeSByZWdpc3RlciB0byBzd2l0
Y2ggdGhlIHZhbHVlcy4KLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQorI2lmIENQVShYODZf
NjQpCiAgICAgICAgIG1fYXNzZW1ibGVyLnN3YXAoYSwgYik7CiAjZWxpZiBDUFUoQVJNNjQpIHx8
IENQVShBUk1fVEhVTUIyKQogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZlKGEsIHRlbXBSZWdpc3Rl
cik7Cg==
</data>
<flag name="review"
          id="394428"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>