<?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>237304</bug_id>
          
          <creation_ts>2022-02-28 19:07:08 -0800</creation_ts>
          <short_desc>[IFC][Integration] InlineIterator::Box::rect() returns the unflipped visual rect</short_desc>
          <delta_ts>2022-03-01 08:21:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846878</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-02-28 19:07:08 -0800</bug_when>
    <thetext>let&apos;s rename it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846891</commentid>
    <comment_count>1</comment_count>
      <attachid>453465</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-02-28 19:44:24 -0800</bug_when>
    <thetext>Created attachment 453465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846896</commentid>
    <comment_count>2</comment_count>
      <attachid>453468</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-02-28 20:05:33 -0800</bug_when>
    <thetext>Created attachment 453468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847000</commentid>
    <comment_count>3</comment_count>
      <attachid>453492</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-03-01 06:14:23 -0800</bug_when>
    <thetext>Created attachment 453492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847032</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-01 08:20:48 -0800</bug_when>
    <thetext>Committed r290649 (247922@main): &lt;https://commits.webkit.org/247922@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453492.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847033</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-01 08:21:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89619962&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453465</attachid>
            <date>2022-02-28 19:44:24 -0800</date>
            <delta_ts>2022-02-28 20:06:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237304-20220228194423.patch</filename>
            <type>text/plain</type>
            <size>29184</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU1ZjFiYWIwZWRiMzNm
MTBlMjlmYTdmYmRhMTY0OTc0OWE2YTE2Ni4uMmZlZjQ4MTZhZWJlNWU2Y2Q2OTllNDhhZjA3MDA0
ODg5ODQ1YTUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIyLTAyLTI4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW5saW5lSXRlcmF0b3I6OkJveDo6cmVjdCgpIHJldHVybnMgdGhlIHVuZmxpcHBlZCB2aXN1YWwg
cmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
MzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lIElubGluZUl0ZXJhdG9yOjpCb3g6OnJlY3QoKSB0byB1bmZsaXBwZWRWaXN1YWxSZWN0KCku
IEl0J2xsIGhlbHAgdG8KKyAgICAgICAgaW5kZW50aWZ5IGNhbGxzaXRlcyB3aGVyZSB3ZSBhY3R1
YWxseSBuZWVkIHRoZSBmbGlwcGVkIHZlcnNpb24gb2YgdGhpcyB2aXN1YWwgcmVjdC4KKworICAg
ICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlz
cGxheUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94Ojp1bmZsaXBw
ZWRWaXN1YWxSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJv
eDo6dG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6Ym90
dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6bGVmdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OnJpZ2h0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6d2lkdGggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpoZWlnaHQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94Ojptb3ZlVmVydGljYWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6Om1vdmVIb3Jpem9udGFsbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpzZXRMZWZ0KToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6c2V0UmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lRGlzcGxheTo6Qm94OjpzZXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlz
cGxheTo6Qm94OjpzZXRCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6
Qm94OjpzZXRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6Qm94
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6dHJ1bmNhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpyZWN0IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGlu
ZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Oklu
bGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YWRqdXN0VmlzdWFsR2VvbWV0cnlGb3JEaXNwbGF5
Qm94KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3guaDoK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3g6OmxvZ2ljYWxUb3AgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6bG9naWNhbEJvdHRvbSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94Ojpsb2dpY2FsTGVm
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94Ojpsb2dpY2Fs
UmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6bG9n
aWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3g6
OmxvZ2ljYWxIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6
OkJveDo6dW5mbGlwcGVkVmlzdWFsUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6Qm94OjpyZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
aW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94TGVnYWN5UGF0aDo6dW5mbGlwcGVkVmlzdWFsUmVjdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94TGVnYWN5UGF0aDo6
cmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGlu
ZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0
b3I6OkJveE1vZGVyblBhdGg6OnVuZmxpcHBlZFZpc3VhbFJlY3QgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveE1vZGVyblBhdGg6OmNyZWF0ZVRleHRSdW4gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveE1vZGVyblBhdGg6OnJl
Y3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkJveFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OnNob3dJbmxpbmVDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpMaW5lTGF5b3V0OjpmaXJzdElubGluZUJveFJlY3QgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNvbGxlY3RJbmxpbmVC
b3hSZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGlu
ZUxheW91dDo6aGl0VGVzdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpzaG93SW5saW5lVHJlZUFu
ZFJ1bnMpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVCb3hQYWludGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUJveFBhaW50ZXI6OnBhaW50TWFzayk6CisgICAgICAgIChXZWJD
b3JlOjpJbmxpbmVCb3hQYWludGVyOjpwYWludERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUJveFBhaW50ZXI6OnBhaW50RmlsbExheWVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6YWRkRm9jdXNSaW5nUmVjdHNGb3JJbmxpbmVDaGlsZHJlbik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eE1vZGVsT2JqZWN0OjpwYWludE1hc2tGb3JUZXh0RmlsbEJveCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6cGl4ZWxTbmFwQmFja2dyb3VuZEltYWdlR2VvbWV0
cnlGb3JQYWludGluZyk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMaW5lQnJlYWs6OmxpbmVzQm91bmRpbmdCb3ggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGluZUJyZWFrOjphYnNvbHV0ZVJlY3RzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVRdWFkcyBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6
YWJzb2x1dGVSZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpib3VuZGFyaWVzRm9yVGV4
dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbFF1YWRGb3JUZXh0UnVuKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHQ6OmZpcnN0UnVuTG9jYXRpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dDo6bGluZXNCb3VuZGluZ0JveCBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0Qm94UGFpbnRlcjo6Y29tcHV0ZVBhaW50UmVjdCk6CisKIDIwMjItMDItMjQgIE1h
dHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBn
cmlkIFJUTCBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURp
c3BsYXlCb3guaAppbmRleCBhMmJjMThjMWY0ZGY2OWM1ZmY1OWM5MDc0ZmI2NjQ5YzhkOGNjYWM2
Li41MmMzNjZiNDY3MTFkNTViYTJhZWQzNmZjYmZjOTlkZmFmMzlkOTY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaApAQCAtOTgsMjUgKzk4LDI1
IEBAIHN0cnVjdCBCb3ggewogCiAgICAgYm9vbCBoYXNDb250ZW50KCkgY29uc3QgeyByZXR1cm4g
bV9oYXNDb250ZW50OyB9CiAKLSAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3QoKSBjb25zdCB7IHJl
dHVybiBtX3BoeXNpY2FsUmVjdDsgfQorICAgIGNvbnN0IEZsb2F0UmVjdCYgdW5mbGlwcGVkVmlz
dWFsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5mbGlwcGVkVmlzdWFsUmVjdDsgfQogICAgIGNv
bnN0IEZsb2F0UmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX2lua092ZXJmbG93
OyB9CiAKLSAgICBmbG9hdCB0b3AoKSBjb25zdCB7IHJldHVybiByZWN0KCkueSgpOyB9Ci0gICAg
ZmxvYXQgYm90dG9tKCkgY29uc3QgeyByZXR1cm4gcmVjdCgpLm1heFkoKTsgfQotICAgIGZsb2F0
IGxlZnQoKSBjb25zdCB7IHJldHVybiByZWN0KCkueCgpOyB9Ci0gICAgZmxvYXQgcmlnaHQoKSBj
b25zdCB7IHJldHVybiByZWN0KCkubWF4WCgpOyB9CisgICAgZmxvYXQgdG9wKCkgY29uc3QgeyBy
ZXR1cm4gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLnkoKTsgfQorICAgIGZsb2F0IGJvdHRvbSgpIGNv
bnN0IHsgcmV0dXJuIHVuZmxpcHBlZFZpc3VhbFJlY3QoKS5tYXhZKCk7IH0KKyAgICBmbG9hdCBs
ZWZ0KCkgY29uc3QgeyByZXR1cm4gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLngoKTsgfQorICAgIGZs
b2F0IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLm1heFgoKTsg
fQogCi0gICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiByZWN0KCkud2lkdGgoKTsgfQot
ICAgIGZsb2F0IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHJlY3QoKS5oZWlnaHQoKTsgfQorICAg
IGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLndpZHRo
KCk7IH0KKyAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiB1bmZsaXBwZWRWaXN1YWxS
ZWN0KCkuaGVpZ2h0KCk7IH0KIAogICAgIHZvaWQgbW92ZVZlcnRpY2FsbHkoZmxvYXQgb2Zmc2V0
KQogICAgIHsKLSAgICAgICAgbV9waHlzaWNhbFJlY3QubW92ZSh7IHsgfSwgb2Zmc2V0IH0pOwor
ICAgICAgICBtX3VuZmxpcHBlZFZpc3VhbFJlY3QubW92ZSh7IHsgfSwgb2Zmc2V0IH0pOwogICAg
ICAgICBtX2lua092ZXJmbG93Lm1vdmUoeyB7IH0sIG9mZnNldCB9KTsKICAgICB9CiAgICAgdm9p
ZCBtb3ZlSG9yaXpvbnRhbGx5KGZsb2F0IG9mZnNldCkKICAgICB7Ci0gICAgICAgIG1fcGh5c2lj
YWxSZWN0Lm1vdmUoeyBvZmZzZXQsIHsgfSB9KTsKKyAgICAgICAgbV91bmZsaXBwZWRWaXN1YWxS
ZWN0Lm1vdmUoeyBvZmZzZXQsIHsgfSB9KTsKICAgICAgICAgbV9pbmtPdmVyZmxvdy5tb3ZlKHsg
b2Zmc2V0LCB7IH0gfSk7CiAgICAgfQogICAgIHZvaWQgYWRqdXN0SW5rT3ZlcmZsb3coY29uc3Qg
RmxvYXRSZWN0JiBjaGlsZEJvcmRlckJveCkgeyByZXR1cm4gbV9pbmtPdmVyZmxvdy51bml0ZUV2
ZW5JZkVtcHR5KGNoaWxkQm9yZGVyQm94KTsgfQpAQCAtMTI0LDMwICsxMjQsMzAgQEAgc3RydWN0
IEJveCB7CiAgICAgdm9pZCBzZXRMZWZ0KGZsb2F0IHB5c2ljYWxMZWZ0KQogICAgIHsKICAgICAg
ICAgYXV0byBvZmZzZXQgPSBweXNpY2FsTGVmdCAtIGxlZnQoKTsKLSAgICAgICAgbV9waHlzaWNh
bFJlY3Quc2V0WChweXNpY2FsTGVmdCk7CisgICAgICAgIG1fdW5mbGlwcGVkVmlzdWFsUmVjdC5z
ZXRYKHB5c2ljYWxMZWZ0KTsKICAgICAgICAgbV9pbmtPdmVyZmxvdy5zZXRYKG1faW5rT3ZlcmZs
b3cueCgpICsgb2Zmc2V0KTsKICAgICB9CiAgICAgdm9pZCBzZXRSaWdodChmbG9hdCBwaHlzaWNh
bFJpZ2h0KQogICAgIHsKICAgICAgICAgYXV0byBvZmZzZXQgPSBwaHlzaWNhbFJpZ2h0IC0gcmln
aHQoKTsKLSAgICAgICAgbV9waHlzaWNhbFJlY3Quc2hpZnRNYXhYRWRnZVRvKHBoeXNpY2FsUmln
aHQpOworICAgICAgICBtX3VuZmxpcHBlZFZpc3VhbFJlY3Quc2hpZnRNYXhYRWRnZVRvKHBoeXNp
Y2FsUmlnaHQpOwogICAgICAgICBtX2lua092ZXJmbG93LnNoaWZ0TWF4WEVkZ2VUbyhtX2lua092
ZXJmbG93Lm1heFgoKSArIG9mZnNldCk7CiAgICAgfQogICAgIHZvaWQgc2V0VG9wKGZsb2F0IHBo
eXNpY2FsVG9wKQogICAgIHsKICAgICAgICAgYXV0byBvZmZzZXQgPSBwaHlzaWNhbFRvcCAtIHRv
cCgpOwotICAgICAgICBtX3BoeXNpY2FsUmVjdC5zZXRZKHBoeXNpY2FsVG9wKTsKKyAgICAgICAg
bV91bmZsaXBwZWRWaXN1YWxSZWN0LnNldFkocGh5c2ljYWxUb3ApOwogICAgICAgICBtX2lua092
ZXJmbG93LnNoaWZ0TWF4WUVkZ2VUbyhtX2lua092ZXJmbG93LnkoKSArIG9mZnNldCk7CiAgICAg
fQogICAgIHZvaWQgc2V0Qm90dG9tKGZsb2F0IHBoeXNpY2FsQm90dG9tKQogICAgIHsKICAgICAg
ICAgYXV0byBvZmZzZXQgPSBwaHlzaWNhbEJvdHRvbSAtIGJvdHRvbSgpOwotICAgICAgICBtX3Bo
eXNpY2FsUmVjdC5zaGlmdE1heFlFZGdlVG8ocGh5c2ljYWxCb3R0b20pOworICAgICAgICBtX3Vu
ZmxpcHBlZFZpc3VhbFJlY3Quc2hpZnRNYXhZRWRnZVRvKHBoeXNpY2FsQm90dG9tKTsKICAgICAg
ICAgbV9pbmtPdmVyZmxvdy5zaGlmdE1heFlFZGdlVG8obV9pbmtPdmVyZmxvdy5tYXhZKCkgKyBv
ZmZzZXQpOwogICAgIH0KICAgICB2b2lkIHNldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBj
b25zdCBGbG9hdFJlY3QmIGlua092ZXJmbG93KQogICAgIHsKLSAgICAgICAgbV9waHlzaWNhbFJl
Y3QgPSByZWN0OworICAgICAgICBtX3VuZmxpcHBlZFZpc3VhbFJlY3QgPSByZWN0OwogICAgICAg
ICBtX2lua092ZXJmbG93ID0gaW5rT3ZlcmZsb3c7CiAgICAgfQogICAgIHZvaWQgc2V0SGFzQ29u
dGVudCgpIHsgbV9oYXNDb250ZW50ID0gdHJ1ZTsgfQpAQCAtMTc4LDcgKzE3OCw3IEBAIHByaXZh
dGU6CiAgICAgY29uc3QgVHlwZSBtX3R5cGUgeyBUeXBlOjpHZW5lcmljSW5saW5lTGV2ZWxCb3gg
fTsKICAgICBDaGVja2VkUmVmPGNvbnN0IExheW91dDo6Qm94PiBtX2xheW91dEJveDsKICAgICBV
QmlEaUxldmVsIG1fYmlkaUxldmVsIHsgVUJJRElfREVGQVVMVF9MVFIgfTsKLSAgICBGbG9hdFJl
Y3QgbV9waHlzaWNhbFJlY3Q7CisgICAgRmxvYXRSZWN0IG1fdW5mbGlwcGVkVmlzdWFsUmVjdDsK
ICAgICBGbG9hdFJlY3QgbV9pbmtPdmVyZmxvdzsKICAgICBib29sIG1faGFzQ29udGVudCA6IDE7
CiAgICAgYm9vbCBtX2lzRmlyc3RGb3JMYXlvdXRCb3ggOiAxOwpAQCAtMTkyLDcgKzE5Miw3IEBA
IGlubGluZSBCb3g6OkJveChzaXplX3QgbGluZUluZGV4LCBUeXBlIHR5cGUsIGNvbnN0IExheW91
dDo6Qm94JiBsYXlvdXRCb3gsIFVCaURpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fbGF5
b3V0Qm94KGxheW91dEJveCkKICAgICAsIG1fYmlkaUxldmVsKGJpZGlMZXZlbCkKLSAgICAsIG1f
cGh5c2ljYWxSZWN0KHBoeXNpY2FsUmVjdCkKKyAgICAsIG1fdW5mbGlwcGVkVmlzdWFsUmVjdChw
aHlzaWNhbFJlY3QpCiAgICAgLCBtX2lua092ZXJmbG93KGlua092ZXJmbG93KQogICAgICwgbV9o
YXNDb250ZW50KGhhc0NvbnRlbnQpCiAgICAgLCBtX2lzRmlyc3RGb3JMYXlvdXRCb3gocG9zaXRp
b25XaXRoaW5JbmxpbmVMZXZlbEJveC5jb250YWlucyhQb3NpdGlvbldpdGhpbklubGluZUxldmVs
Qm94OjpGaXJzdCkpCkBAIC0yMTMsOCArMjEzLDggQEAgaW5saW5lIEJveDo6VGV4dDo6VGV4dChz
aXplX3Qgc3RhcnQsIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxDb250ZW4K
IAogaW5saW5lIHZvaWQgQm94Ojp0cnVuY2F0ZShmbG9hdCB0cnVuY2F0ZWR3aWR0aCkKIHsKLSAg
ICBtX3BoeXNpY2FsUmVjdC5zZXRXaWR0aCh0cnVuY2F0ZWR3aWR0aCk7Ci0gICAgbV9pbmtPdmVy
Zmxvdy5zaGlmdE1heFhFZGdlVG8obV9waHlzaWNhbFJlY3QubWF4WSgpKTsKKyAgICBtX3VuZmxp
cHBlZFZpc3VhbFJlY3Quc2V0V2lkdGgodHJ1bmNhdGVkd2lkdGgpOworICAgIG1faW5rT3ZlcmZs
b3cuc2hpZnRNYXhYRWRnZVRvKG1fdW5mbGlwcGVkVmlzdWFsUmVjdC5tYXhZKCkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggZmNkNmZjYzZiMWM4OTA1ZjlhMWUyMTc1OGM5ZWNk
ZWMxYjBlOTM2ZC4uNmUwZTQ1MGM5OWFhYTNmZjdlOGExZDQ3Y2QxNjM1MTI1ODY5YWIxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
ZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtNTI2LDEzICs1MjYsMTMgQEAgdm9pZCBJbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXI6OmFkanVzdFZpc3VhbEdlb21ldHJ5Rm9yRGlzcGxheUJveChzaXpl
X3QgZGlzcGwKICAgICBhZnRlcklubGluZUJveENvbnRlbnQoKTsKIAogICAgIGF1dG8gY29tcHV0
ZUlua092ZXJmbG93ID0gWyZdIHsKLSAgICAgICAgYXV0byBpbmtPdmVyZmxvdyA9IEZsb2F0UmVj
dCB7IGRpc3BsYXlCb3gucmVjdCgpIH07CisgICAgICAgIGF1dG8gaW5rT3ZlcmZsb3cgPSBGbG9h
dFJlY3QgeyBkaXNwbGF5Qm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKSB9OwogICAgICAgICBtX2Nv
bnRlbnRIYXNJbmtPdmVyZmxvdyA9IGNvbXB1dGVCb3hTaGFkb3dJbmtPdmVyZmxvdyghbV9saW5l
SW5kZXggPyBsYXlvdXRCb3guZmlyc3RMaW5lU3R5bGUoKSA6IGxheW91dEJveC5zdHlsZSgpLCBp
bmtPdmVyZmxvdykgfHwgbV9jb250ZW50SGFzSW5rT3ZlcmZsb3c7CiAgICAgICAgIGRpc3BsYXlC
b3guYWRqdXN0SW5rT3ZlcmZsb3coaW5rT3ZlcmZsb3cpOwogICAgIH07CiAgICAgY29tcHV0ZUlu
a092ZXJmbG93KCk7CiAKLSAgICBzZXRJbmxpbmVCb3hHZW9tZXRyeShsYXlvdXRCb3gsIGRpc3Bs
YXlCb3gucmVjdCgpLCBpc0ZpcnN0Qm94KTsKKyAgICBzZXRJbmxpbmVCb3hHZW9tZXRyeShsYXlv
dXRCb3gsIGRpc3BsYXlCb3gudW5mbGlwcGVkVmlzdWFsUmVjdCgpLCBpc0ZpcnN0Qm94KTsKICAg
ICBpZiAobGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxheW91dEJveChsYXlvdXRCb3gpLmhhc0Nv
bnRlbnQoKSkKICAgICAgICAgZGlzcGxheUJveC5zZXRIYXNDb250ZW50KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5o
CmluZGV4IDgxM2Y1YjBlNjU5MDM0MTNmZjQ2MmU0OWUxZjg5Mzc4MTg2MzZjN2UuLjE3ZjA1NTM4
NTA0ZWQxMWU5OTllYzc0NjcyODYzNzRhNzA5MWQwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5oCkBAIC02MCwxNCAr
NjAsMTQgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbmxpbmVCb3goKSBjb25zdDsKICAgICBib29s
IGlzUm9vdElubGluZUJveCgpIGNvbnN0OwogCi0gICAgRmxvYXRSZWN0IHJlY3QoKSBjb25zdDsK
KyAgICBGbG9hdFJlY3QgdW5mbGlwcGVkVmlzdWFsUmVjdCgpIGNvbnN0OwogCi0gICAgZmxvYXQg
bG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gcmVjdCgpLnkoKSA6
IHJlY3QoKS54KCk7IH0KLSAgICBmbG9hdCBsb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4g
aXNIb3Jpem9udGFsKCkgPyByZWN0KCkubWF4WSgpIDogcmVjdCgpLm1heFgoKTsgfQotICAgIGZs
b2F0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsKCkgPyByZWN0KCku
eCgpIDogcmVjdCgpLnkoKTsgfQotICAgIGZsb2F0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0
dXJuIGlzSG9yaXpvbnRhbCgpID8gcmVjdCgpLm1heFgoKSA6IHJlY3QoKS5tYXhZKCk7IH0KLSAg
ICBmbG9hdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWwoKSA/IHJl
Y3QoKS53aWR0aCgpIDogcmVjdCgpLmhlaWdodCgpOyB9Ci0gICAgZmxvYXQgbG9naWNhbEhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gcmVjdCgpLmhlaWdodCgpIDogcmVj
dCgpLndpZHRoKCk7IH0KKyAgICBmbG9hdCBsb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gaXNI
b3Jpem9udGFsKCkgPyB1bmZsaXBwZWRWaXN1YWxSZWN0KCkueSgpIDogdW5mbGlwcGVkVmlzdWFs
UmVjdCgpLngoKTsgfQorICAgIGZsb2F0IGxvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBp
c0hvcml6b250YWwoKSA/IHVuZmxpcHBlZFZpc3VhbFJlY3QoKS5tYXhZKCkgOiB1bmZsaXBwZWRW
aXN1YWxSZWN0KCkubWF4WCgpOyB9CisgICAgZmxvYXQgbG9naWNhbExlZnQoKSBjb25zdCB7IHJl
dHVybiBpc0hvcml6b250YWwoKSA/IHVuZmxpcHBlZFZpc3VhbFJlY3QoKS54KCkgOiB1bmZsaXBw
ZWRWaXN1YWxSZWN0KCkueSgpOyB9CisgICAgZmxvYXQgbG9naWNhbFJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gaXNIb3Jpem9udGFsKCkgPyB1bmZsaXBwZWRWaXN1YWxSZWN0KCkubWF4WCgpIDogdW5m
bGlwcGVkVmlzdWFsUmVjdCgpLm1heFkoKTsgfQorICAgIGZsb2F0IGxvZ2ljYWxXaWR0aCgpIGNv
bnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLndpZHRo
KCkgOiB1bmZsaXBwZWRWaXN1YWxSZWN0KCkuaGVpZ2h0KCk7IH0KKyAgICBmbG9hdCBsb2dpY2Fs
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsKCkgPyB1bmZsaXBwZWRWaXN1YWxS
ZWN0KCkuaGVpZ2h0KCkgOiB1bmZsaXBwZWRWaXN1YWxSZWN0KCkud2lkdGgoKTsgfQogCiAgICAg
Ym9vbCBpc0hvcml6b250YWwoKSBjb25zdDsKICAgICBib29sIGlzTGluZUJyZWFrKCkgY29uc3Q7
CkBAIC0xODMsMTAgKzE4MywxMCBAQCBpbmxpbmUgYm9vbCBCb3g6OmlzUm9vdElubGluZUJveCgp
IGNvbnN0CiAgICAgfSk7CiB9CiAKLWlubGluZSBGbG9hdFJlY3QgQm94OjpyZWN0KCkgY29uc3QK
K2lubGluZSBGbG9hdFJlY3QgQm94Ojp1bmZsaXBwZWRWaXN1YWxSZWN0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7Ci0g
ICAgICAgIHJldHVybiBwYXRoLnJlY3QoKTsKKyAgICAgICAgcmV0dXJuIHBhdGgudW5mbGlwcGVk
VmlzdWFsUmVjdCgpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmgK
aW5kZXggYjU5YWI4MGU4Y2MxMjRkMDk1YTViMTEzYTE5YzU3NmZjMWViYTg1NS4uZDkzZDRiNDYy
OTkwZTE5NmVjOWM3N2EwYjFiY2I4MzlhYzZiZGUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVnYWN5UGF0aC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveExlZ2Fj
eVBhdGguaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0lubGluZUJveCgp
IGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94LT5pc0lubGluZUZsb3dCb3goKTsgfQogICAgIGJv
b2wgaXNSb290SW5saW5lQm94KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVCb3gtPmlzUm9vdElu
bGluZUJveCgpOyB9CiAKLSAgICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1faW5s
aW5lQm94LT5mcmFtZVJlY3QoKTsgfQorICAgIEZsb2F0UmVjdCB1bmZsaXBwZWRWaXN1YWxSZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVCb3gtPmZyYW1lUmVjdCgpOyB9CiAKICAgICBib29s
IGlzSG9yaXpvbnRhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94LT5pc0hvcml6b250YWwo
KTsgfQogICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUJveC0+
aXNMaW5lQnJlYWsoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oCmluZGV4IGRmYmMy
MmQ4ZTFhZDBjMjFjZTUxMzE3ODM3Y2Q1ODYyMWU4NDI4ZGYuLjEzYThjZTYyZTJmMjE0OGM5YjAy
MzVhMWYyYmNiMmU0MTE0N2ZlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveE1vZGVyblBhdGguaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hNb2Rlcm5QYXRoLmgKQEAg
LTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbmxpbmVCb3goKSBjb25zdCB7IHJl
dHVybiBib3goKS5pc0lubGluZUJveCgpOyB9CiAgICAgYm9vbCBpc1Jvb3RJbmxpbmVCb3goKSBj
b25zdCB7IHJldHVybiBib3goKS5pc1Jvb3RJbmxpbmVCb3goKTsgfQogCi0gICAgRmxvYXRSZWN0
IHJlY3QoKSBjb25zdCB7IHJldHVybiBib3goKS5yZWN0KCk7IH0KKyAgICBGbG9hdFJlY3QgdW5m
bGlwcGVkVmlzdWFsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIGJveCgpLnVuZmxpcHBlZFZpc3VhbFJl
Y3QoKTsgfQogCiAgICAgYm9vbCBpc0hvcml6b250YWwoKSBjb25zdCB7IHJldHVybiBib3goKS5p
c0hvcml6b250YWwoKTsgfQogICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBi
b3goKS5pc0xpbmVCcmVhaygpOyB9CkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIGF1dG8mIHN0eWxlID0gYm94KCkuc3R5bGUoKTsKICAgICAgICAgYXV0byBleHBhbnNp
b24gPSBib3goKS5leHBhbnNpb24oKTsKLSAgICAgICAgYXV0byByZWN0ID0gdGhpcy0+cmVjdCgp
OworICAgICAgICBhdXRvIHJlY3QgPSB0aGlzLT51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CiAgICAg
ICAgIGF1dG8geFBvcyA9IHJlY3QueCgpIC0gKGxpbmUoKS5saW5lQm94TGVmdCgpICsgbGluZSgp
LmNvbnRlbnRMb2dpY2FsT2Zmc2V0KCkpOwogCiAgICAgICAgIGF1dG8gdGV4dEZvclJ1biA9IFsm
XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCmluZGV4IDRjMGMyNTkxYTk0ZjcwNGY2Njg0
ZWUyNjMyOTBiN2IyMjJmYTY4MDIuLjYxMzljM2VlNzE2OTAxYTY3YjU2N2UwMGM2ODc3ZjYxNDIx
NzkyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCkBAIC0yNzYsNyArMjc2LDcgQEAg
dm9pZCBzaG93SW5saW5lQ29udGVudChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IElubGluZUNv
bnRlbnQmIGlubGluZUNvbnRlbnQsIHMKICAgICAgICAgYXV0byBvdXRwdXRJbmxpbmVMZXZlbEJv
eCA9IFsmXShjb25zdCBhdXRvJiBpbmxpbmVMZXZlbEJveCkgewogICAgICAgICAgICAgYWRkU3Bh
Y2luZygpOwogICAgICAgICAgICAgc3RyZWFtIDw8ICIgICAgIjsKLSAgICAgICAgICAgIGF1dG8g
cmVjdCA9IGlubGluZUxldmVsQm94LnJlY3QoKTsKKyAgICAgICAgICAgIGF1dG8gcmVjdCA9IGlu
bGluZUxldmVsQm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKTsKICAgICAgICAgICAgIGF1dG8mIGxh
eW91dEJveCA9IGlubGluZUxldmVsQm94LmxheW91dEJveCgpOwogICAgICAgICAgICAgaWYgKGxh
eW91dEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkpCiAgICAgICAgICAgICAgICAgc3RyZWFt
IDw8ICJBdG9taWMgaW5saW5lIGxldmVsIGJveCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwCmluZGV4IDVhYWZmODM4ZWRmMGEyZTY2YjdiMjRmODRkODQ5M2YyODAyZTk0MDcuLjZl
M2Y0YmI2YzllOTc2NjFkYjJkMWE1NWY3NjZhNGZiZmJlZmVmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuY3BwCkBAIC02MTQsNyArNjE0LDcgQEAgTGF5b3V0UmVjdCBMaW5lTGF5
b3V0OjpmaXJzdElubGluZUJveFJlY3QoY29uc3QgUmVuZGVySW5saW5lJiByZW5kZXJJbmxpbmUp
IGNvbnMKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBmbGlwIHRoZSBkaXNw
bGF5IGJveGVzIHNvb24gYWZ0ZXIgdGhlIHJvb3QgYmxvY2sKICAgICAvLyBpcyBmaW5pc2hlZCBz
aXppbmcgaW4gb25lIGdvLgotICAgIGF1dG8gZmlyc3RCb3hSZWN0ID0gTGF5b3V0Ojp0b0xheW91
dFJlY3QoZmlyc3RCb3gtPnJlY3QoKSk7CisgICAgYXV0byBmaXJzdEJveFJlY3QgPSBMYXlvdXQ6
OnRvTGF5b3V0UmVjdChmaXJzdEJveC0+dW5mbGlwcGVkVmlzdWFsUmVjdCgpKTsKICAgICBzd2l0
Y2ggKHJvb3RMYXlvdXRCb3goKS5zdHlsZSgpLndyaXRpbmdNb2RlKCkpIHsKICAgICBjYXNlIFdy
aXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKICAgICBjYXNlIFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdo
dDoKQEAgLTY2NCw3ICs2NjQsNyBAQCBWZWN0b3I8RmxvYXRSZWN0PiBMaW5lTGF5b3V0Ojpjb2xs
ZWN0SW5saW5lQm94UmVjdHMoY29uc3QgUmVuZGVySW5saW5lJiByZW5kZXJJbgogCiAgICAgVmVj
dG9yPEZsb2F0UmVjdD4gcmVzdWx0OwogICAgIG1faW5saW5lQ29udGVudC0+dHJhdmVyc2VOb25S
b290SW5saW5lQm94ZXMobGF5b3V0Qm94LCBbJl0oYXV0byYgaW5saW5lQm94KSB7Ci0gICAgICAg
IHJlc3VsdC5hcHBlbmQoaW5saW5lQm94LnJlY3QoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
aW5saW5lQm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKSk7CiAgICAgfSk7CiAKICAgICByZXR1cm4g
cmVzdWx0OwpAQCAtODExLDcgKzgxMSw3IEBAIGJvb2wgTGluZUxheW91dDo6aGl0VGVzdChjb25z
dCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjCiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gYm94UmVjdCA9IGZs
aXBwZWRSZWN0Rm9yV3JpdGluZ01vZGUoZmxvdygpLCBib3gucmVjdCgpKTsKKyAgICAgICAgYXV0
byBib3hSZWN0ID0gZmxpcHBlZFJlY3RGb3JXcml0aW5nTW9kZShmbG93KCksIGJveC51bmZsaXBw
ZWRWaXN1YWxSZWN0KCkpOwogICAgICAgICBib3hSZWN0Lm1vdmVCeShhY2N1bXVsYXRlZE9mZnNl
dCk7CiAKICAgICAgICAgaWYgKCFsb2NhdGlvbkluQ29udGFpbmVyLmludGVyc2VjdHMoYm94UmVj
dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRU
cmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRU
cmVlQnVpbGRlci5jcHAKaW5kZXggOTA1ZTk3MTVmNTA4ZWExMzllODRmZTRlYzcyMWJlZmFjMzRi
ZTk2Mi4uZjc0MDM1ZjQzOGFjZDI2MTJiY2I2ZWI2MGY0NGJkN2Y0ODU5NTgzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVy
LmNwcApAQCAtMzg2LDcgKzM4Niw3IEBAIHZvaWQgc2hvd0lubGluZVRyZWVBbmRSdW5zKFRleHRT
dHJlYW0mIHN0cmVhbSwgY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjCiAgICAgICAg
IGF1dG8gb3V0cHV0SW5saW5lTGV2ZWxCb3ggPSBbJl0oY29uc3QgYXV0byYgaW5saW5lTGV2ZWxC
b3gpIHsKICAgICAgICAgICAgIGFkZFNwYWNpbmcoKTsKICAgICAgICAgICAgIHN0cmVhbSA8PCAi
ICAgICI7Ci0gICAgICAgICAgICBhdXRvIHJlY3QgPSBpbmxpbmVMZXZlbEJveC5yZWN0KCk7Cisg
ICAgICAgICAgICBhdXRvIHJlY3QgPSBpbmxpbmVMZXZlbEJveC51bmZsaXBwZWRWaXN1YWxSZWN0
KCk7CiAgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVMZXZlbEJveC5sYXlvdXRC
b3goKTsKICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNBdG9taWNJbmxpbmVMZXZlbEJveCgp
KQogICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiQXRvbWljIGlubGluZSBsZXZlbCBib3giOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveFBhaW50ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveFBhaW50ZXIuY3BwCmluZGV4IDVj
MTljOTMwMDYwMGUzNzdkOTJlZDYzZjFlOGI5ZWE0ZTZiY2I2ZWYuLjBjODAyZDA5YjI4NzdmYTE3
YjQ0YmQ5ODRlMTVkOTQ5NmM0N2MxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVCb3hQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lQm94UGFpbnRlci5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIElubGluZUJveFBh
aW50ZXI6OnBhaW50TWFzaygpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE1vdmUgeC95IHRv
IG91ciBjb29yZGluYXRlcy4KLSAgICBMYXlvdXRSZWN0IGxvY2FsUmVjdChtX2lubGluZUJveC5y
ZWN0KCkpOworICAgIExheW91dFJlY3QgbG9jYWxSZWN0KG1faW5saW5lQm94LnVuZmxpcHBlZFZp
c3VhbFJlY3QoKSk7CiAgICAgbV9pbmxpbmVCb3gubGluZSgpLT5jb250YWluaW5nQmxvY2soKS5m
bGlwRm9yV3JpdGluZ01vZGUobG9jYWxSZWN0KTsKICAgICBMYXlvdXRQb2ludCBhZGp1c3RlZFBh
aW50T2Zmc2V0ID0gbV9wYWludE9mZnNldCArIGxvY2FsUmVjdC5sb2NhdGlvbigpOwogCkBAIC0y
MTgsNyArMjE4LDcgQEAgdm9pZCBJbmxpbmVCb3hQYWludGVyOjpwYWludERlY29yYXRpb25zKCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTW92ZSB4L3kgdG8gb3VyIGNvb3JkaW5hdGVzLgot
ICAgIExheW91dFJlY3QgbG9jYWxSZWN0KG1faW5saW5lQm94LnJlY3QoKSk7CisgICAgTGF5b3V0
UmVjdCBsb2NhbFJlY3QobV9pbmxpbmVCb3gudW5mbGlwcGVkVmlzdWFsUmVjdCgpKTsKICAgICBt
X2lubGluZUJveC5saW5lKCktPmNvbnRhaW5pbmdCbG9jaygpLmZsaXBGb3JXcml0aW5nTW9kZShs
b2NhbFJlY3QpOwogCiAgICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRQYWludG9mZnNldCA9IG1fcGFp
bnRPZmZzZXQgKyBsb2NhbFJlY3QubG9jYXRpb24oKTsKQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lk
IElubGluZUJveFBhaW50ZXI6OnBhaW50RmlsbExheWVyKGNvbnN0IENvbG9yJiBjb2xvciwgY29u
c3QgRmlsbExheWVyJiBmaWxsTAogI2lmIEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
CiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5ib3hEZWNvcmF0aW9uQnJlYWsoKSA9PSBCb3hE
ZWNvcmF0aW9uQnJlYWs6OkNsb25lKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihtX3BhaW50SW5mby5jb250ZXh0KCkpOwotICAgICAgICBtX3BhaW50SW5m
by5jb250ZXh0KCkuY2xpcCh7IHJlY3QueCgpLCByZWN0LnkoKSwgTGF5b3V0VW5pdChtX2lubGlu
ZUJveC5yZWN0KCkud2lkdGgoKSksIExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLmhlaWdo
dCgpKSB9KTsKKyAgICAgICAgbV9wYWludEluZm8uY29udGV4dCgpLmNsaXAoeyByZWN0LmxvY2F0
aW9uKCksIG1faW5saW5lQm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKS5zaXplKCkgfSk7CiAgICAg
ICAgIHJlbmRlcmVyKCkucGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChtX3BhaW50SW5mbywgY29sb3Is
IGZpbGxMYXllciwgcmVjdCwgQmFja2dyb3VuZEJsZWVkTm9uZSwgbV9pbmxpbmVCb3gsIHsgfSwg
b3ApOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzM1LDggKzMzNSw4IEBAIHZvaWQgSW5s
aW5lQm94UGFpbnRlcjo6cGFpbnRGaWxsTGF5ZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBG
aWxsTGF5ZXImIGZpbGxMCiAgICAgTGF5b3V0UmVjdCBiYWNrZ3JvdW5kSW1hZ2VTdHJpcCB7CiAg
ICAgICAgIHJlY3QueCgpIC0gKGlzSG9yaXpvbnRhbCgpID8gbG9naWNhbE9mZnNldE9uTGluZSA6
IDBfbHUpLAogICAgICAgICByZWN0LnkoKSAtIChpc0hvcml6b250YWwoKSA/IDBfbHUgOiBsb2dp
Y2FsT2Zmc2V0T25MaW5lKSwKLSAgICAgICAgaXNIb3Jpem9udGFsKCkgPyB0b3RhbExvZ2ljYWxX
aWR0aCA6IExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLndpZHRoKCkpLAotICAgICAgICBp
c0hvcml6b250YWwoKSA/IExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLmhlaWdodCgpKSA6
IHRvdGFsTG9naWNhbFdpZHRoCisgICAgICAgIGlzSG9yaXpvbnRhbCgpID8gdG90YWxMb2dpY2Fs
V2lkdGggOiBMYXlvdXRVbml0KG1faW5saW5lQm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKS53aWR0
aCgpKSwKKyAgICAgICAgaXNIb3Jpem9udGFsKCkgPyBMYXlvdXRVbml0KG1faW5saW5lQm94LnVu
ZmxpcHBlZFZpc3VhbFJlY3QoKS5oZWlnaHQoKSkgOiB0b3RhbExvZ2ljYWxXaWR0aAogICAgIH07
CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIobV9wYWludEluZm8u
Y29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKaW5kZXggMzY0MzEyYjA0MDUzMWY2ZTVlMGQ4MTFlYTdlZmVlMDNiZDk4ZDdiYy4uNWExOGQ3
YjU2Nzc4N2U1MGE4NDQ4NmUwNzIyMDcyNWNhNzkzMTBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTM0NjEsOSArMzQ2MSwxMyBAQCB2b2lk
IFJlbmRlckJsb2NrRmxvdzo6YWRkRm9jdXNSaW5nUmVjdHNGb3JJbmxpbmVDaGlsZHJlbihWZWN0
b3I8TGF5b3V0UmVjdD4mIHJlYwogICAgIGZvciAoYXV0byBib3ggPSBJbmxpbmVJdGVyYXRvcjo6
Zmlyc3RSb290SW5saW5lQm94Rm9yKCp0aGlzKTsgYm94OyBib3gudHJhdmVyc2VOZXh0SW5saW5l
Qm94KCkpIHsKICAgICAgICAgYXV0byBsaW5lID0gYm94LT5saW5lKCk7CiAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIG1peGluZyBwaHlzaWNhbCBhbmQgbG9naWNhbCBjb29yZGluYXRlcy4KLSAg
ICAgICAgTGF5b3V0VW5pdCB0b3AgPSBzdGQ6Om1heChsaW5lLT50b3AoKSwgTGF5b3V0VW5pdChi
b3gtPnJlY3QoKS55KCkpKTsKLSAgICAgICAgTGF5b3V0VW5pdCBib3R0b20gPSBzdGQ6Om1pbihs
aW5lLT5ib3R0b20oKSwgTGF5b3V0VW5pdChib3gtPnJlY3QoKS5tYXhZKCkpKTsKLSAgICAgICAg
TGF5b3V0UmVjdCByZWN0IHsgTGF5b3V0VW5pdChhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJveC0+
cmVjdCgpLngoKSksIGFkZGl0aW9uYWxPZmZzZXQueSgpICsgdG9wLCBMYXlvdXRVbml0KGJveC0+
cmVjdCgpLndpZHRoKCkpLCBib3R0b20gLSB0b3AgfTsKKyAgICAgICAgYXV0byB1bmZsaXBwZWRW
aXN1YWxSZWN0ID0gYm94LT51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CisgICAgICAgIGF1dG8gdG9w
ID0gc3RkOjptYXgobGluZS0+dG9wKCksIExheW91dFVuaXQgeyB1bmZsaXBwZWRWaXN1YWxSZWN0
LnkoKSB9KTsKKyAgICAgICAgYXV0byBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5ib3R0b20oKSwg
TGF5b3V0VW5pdCB7IHVuZmxpcHBlZFZpc3VhbFJlY3QubWF4WSgpIH0pOworICAgICAgICBhdXRv
IHJlY3QgPSBMYXlvdXRSZWN0IHsgTGF5b3V0VW5pdCB7IGFkZGl0aW9uYWxPZmZzZXQueCgpICsg
dW5mbGlwcGVkVmlzdWFsUmVjdC54KCkgfQorICAgICAgICAgICAgLCBhZGRpdGlvbmFsT2Zmc2V0
LnkoKSArIHRvcAorICAgICAgICAgICAgLCBMYXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVj
dC53aWR0aCgpIH0KKyAgICAgICAgICAgICwgYm90dG9tIC0gdG9wIH07CiAgICAgICAgIGlmICgh
cmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZWN0cy5hcHBlbmQocmVjdCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAK
aW5kZXggOWFiOTk4ZTQxY2IwOGNmMGI2ZjkwZjEwZjEzYzRiODQ1N2VjOTM5Zi4uZjNkZmUwNDYw
YTAwNWEzNzFlNGUxYjAyMDI4M2ZhMWE5NDAwYjM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC03MjIsNyArNzIyLDcgQEAg
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRNYXNrRm9yVGV4dEZpbGxCb3goSW1hZ2VC
dWZmZXIqIG1hc2tJbWFnZSwgY29uc3QKICAgICAvLyB0aGUgcGFpbnRlciBpdCBzaG91bGQganVz
dCBtb2RpZnkgdGhlIGNsaXAuCiAgICAgUGFpbnRJbmZvIG1hc2tJbmZvKG1hc2tJbWFnZUNvbnRl
eHQsIExheW91dFJlY3QgeyBtYXNrUmVjdCB9LCBQYWludFBoYXNlOjpUZXh0Q2xpcCwgUGFpbnRC
ZWhhdmlvcjo6Rm9yY2VCbGFja1RleHQpOwogICAgIGlmIChpbmxpbmVCb3gpIHsKLSAgICAgICAg
YXV0byBwYWludE9mZnNldCA9IHNjcm9sbGVkUGFpbnRSZWN0LmxvY2F0aW9uKCkgLSB0b0xheW91
dFNpemUoTGF5b3V0UG9pbnQoaW5saW5lQm94LT5yZWN0KCkubG9jYXRpb24oKSkpOworICAgICAg
ICBhdXRvIHBhaW50T2Zmc2V0ID0gc2Nyb2xsZWRQYWludFJlY3QubG9jYXRpb24oKSAtIHRvTGF5
b3V0U2l6ZShMYXlvdXRQb2ludChpbmxpbmVCb3gtPnVuZmxpcHBlZFZpc3VhbFJlY3QoKS5sb2Nh
dGlvbigpKSk7CiAKICAgICAgICAgZm9yIChhdXRvIGJveCA9IGlubGluZUJveC0+Zmlyc3RMZWFm
Qm94KCksIGVuZCA9IGlubGluZUJveC0+ZW5kTGVhZkJveCgpOyBib3ggIT0gZW5kOyBib3gudHJh
dmVyc2VOZXh0T25MaW5lKCkpIHsKICAgICAgICAgICAgIGlmICghYm94LT5pc1RleHQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggZTJiNGIwOWY1N2Rl
YjNhNDU5OGYzYmQwY2U2NzM0YjA5NzViMWM1Mi4uOWRmZWFkZTUyMzdmOWNkYzcxZDZmZmQyZjU5
ZjI0ZDI4ODRlOGJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKQEAgLTk2NSw3ICs5NjUsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICBM
YXlvdXRVbml0IHRvcCA9IHN0ZDo6bWF4KGxpbmUtPnRvcCgpLCBMYXlvdXRVbml0KGJveC0+bG9n
aWNhbFRvcCgpKSk7CiAgICAgICAgIExheW91dFVuaXQgYm90dG9tID0gc3RkOjptaW4obGluZS0+
Ym90dG9tKCksIExheW91dFVuaXQoYm94LT5sb2dpY2FsQm90dG9tKCkpKTsKICAgICAgICAgLy8g
RklYTUU6IFRoaXMgaXMgbWl4aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3JkaW5hdGVzLgot
ICAgICAgICByZWN0cy5hcHBlbmQoeyBMYXlvdXRVbml0KGJveC0+cmVjdCgpLngoKSksIHRvcCwg
TGF5b3V0VW5pdChib3gtPmxvZ2ljYWxXaWR0aCgpKSwgYm90dG9tIC0gdG9wIH0pOworICAgICAg
ICByZWN0cy5hcHBlbmQoeyBMYXlvdXRVbml0KGJveC0+dW5mbGlwcGVkVmlzdWFsUmVjdCgpLngo
KSksIHRvcCwgTGF5b3V0VW5pdChib3gtPmxvZ2ljYWxXaWR0aCgpKSwgYm90dG9tIC0gdG9wIH0p
OwogICAgIH0KICAgICByZWN0cy5hcHBlbmQoTGF5b3V0UmVjdCgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCBiOTE5OGEwOGI0MWNiOWI5
NzllZTFhOGI5MDhhNTk1MzljNjhlYzAyLi4xZTZjMmY1ODMxOGNmNjQ2NWU5YTg0ZjcxOGI3ZTIz
Yjc4MWU5MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlu
ZUJyZWFrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIEludFJlY3QgUmVuZGVyTGluZUJyZWFrOjpsaW5lc0Jv
dW5kaW5nQm94KCkgY29uc3QKICAgICBpZiAoIXJ1bikKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHJ1bi0+cmVjdCgpKTsKKyAgICByZXR1cm4gZW5j
bG9zaW5nSW50UmVjdChydW4tPnVuZmxpcHBlZFZpc3VhbFJlY3QoKSk7CiB9CiAKIHZvaWQgUmVu
ZGVyTGluZUJyZWFrOjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKQEAgLTE1OCw3ICsxNTgsNyBA
QCB2b2lkIFJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJl
Y3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYQogICAgIGlmICghYm94KQogICAgICAgICByZXR1cm47
CiAKLSAgICBhdXRvIHJlY3QgPSBib3gtPnJlY3QoKTsKKyAgICBhdXRvIHJlY3QgPSBib3gtPnVu
ZmxpcHBlZFZpc3VhbFJlY3QoKTsKICAgICByZWN0cy5hcHBlbmQoZW5jbG9zaW5nSW50UmVjdChG
bG9hdFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQgKyByZWN0LmxvY2F0aW9uKCksIHJlY3Quc2l6ZSgp
KSkpOwogfQogCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBSZW5kZXJMaW5lQnJlYWs6OmFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlZCkgY28KICAg
ICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byByZWN0ID0gYm94LT5yZWN0
KCk7CisgICAgYXV0byByZWN0ID0gYm94LT51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CiAgICAgcXVh
ZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlY3QubG9jYXRpb24oKSwg
cmVjdC5zaXplKCkpLCBVc2VUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggZmE1MzFjNmI5M2NmMmEzMDk1NTNiMDVj
MGExZGFiMzgzYjcxMTkwNS4uNzZiOGNjMGYxZGRjOGMwNjVlOTEzNDhhMmQ4MjYxZDQzM2Q0M2Nm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMzEyLDcgKzMx
Miw3IEBAIFN0cmluZyBSZW5kZXJUZXh0OjpvcmlnaW5hbFRleHQoKSBjb25zdAogdm9pZCBSZW5k
ZXJUZXh0OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91
dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIHJ1biA6
IElubGluZUl0ZXJhdG9yOjp0ZXh0Qm94ZXNGb3IoKnRoaXMpKSB7Ci0gICAgICAgIGF1dG8gcmVj
dCA9IHJ1bi5yZWN0KCk7CisgICAgICAgIGF1dG8gcmVjdCA9IHJ1bi51bmZsaXBwZWRWaXN1YWxS
ZWN0KCk7CiAgICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChh
Y2N1bXVsYXRlZE9mZnNldCArIHJlY3QubG9jYXRpb24oKSwgcmVjdC5zaXplKCkpKSk7CiAgICAg
fQogfQpAQCAtMzk1LDcgKzM5NSw3IEBAIHN0YXRpYyBGbG9hdFJlY3QgYm91bmRhcmllc0ZvclRl
eHRSdW4oY29uc3QgSW5saW5lSXRlcmF0b3I6OlRleHRCb3gmIHJ1bikKICAgICBpZiAoaXM8U1ZH
SW5saW5lVGV4dEJveD4ocnVuLmxlZ2FjeUlubGluZUJveCgpKSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PFNWR0lubGluZVRleHRCb3g+KCpydW4ubGVnYWN5SW5saW5lQm94KCkpLmNhbGN1bGF0
ZUJvdW5kYXJpZXMoKTsKIAotICAgIHJldHVybiBydW4ucmVjdCgpOworICAgIHJldHVybiBydW4u
dW5mbGlwcGVkVmlzdWFsUmVjdCgpOwogfQogCiBzdGF0aWMgSW50UmVjdCBlbGxpcHNpc1JlY3RG
b3JUZXh0UnVuKGNvbnN0IElubGluZUl0ZXJhdG9yOjpUZXh0Qm94JiBydW4sIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBlbmQpCkBAIC00NzAsNyArNDcwLDcgQEAgc3RhdGljIEZsb2F0UmVjdCBs
b2NhbFF1YWRGb3JUZXh0UnVuKGNvbnN0IElubGluZUl0ZXJhdG9yOjpUZXh0Qm94JiBydW4sIHVu
c2lnbmUKICAgICBpZiAodXNlU2VsZWN0aW9uSGVpZ2h0KQogICAgICAgICByZXR1cm4gYm94U2Vs
ZWN0aW9uUmVjdDsKIAotICAgIGF1dG8gcmVjdCA9IHJ1bi5yZWN0KCk7CisgICAgYXV0byByZWN0
ID0gcnVuLnVuZmxpcHBlZFZpc3VhbFJlY3QoKTsKICAgICBpZiAocnVuLmlzSG9yaXpvbnRhbCgp
KSB7CiAgICAgICAgIGJveFNlbGVjdGlvblJlY3Quc2V0SGVpZ2h0KHJlY3QuaGVpZ2h0KCkpOwog
ICAgICAgICBib3hTZWxlY3Rpb25SZWN0LnNldFkocmVjdC55KCkpOwpAQCAtMTI3NSw3ICsxMjc1
LDcgQEAgSW50UG9pbnQgUmVuZGVyVGV4dDo6Zmlyc3RSdW5Mb2NhdGlvbigpIGNvbnN0CiAgICAg
YXV0byBmaXJzdCA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hGb3IoKnRoaXMpOwogICAg
IGlmICghZmlyc3QpCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIEludFBvaW50KGZp
cnN0LT5yZWN0KCkubG9jYXRpb24oKSk7CisgICAgcmV0dXJuIEludFBvaW50KGZpcnN0LT51bmZs
aXBwZWRWaXN1YWxSZWN0KCkubG9jYXRpb24oKSk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dDo6c2V0
U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUgc3RhdGUpCkBAIC0xNTc3LDEzICsxNTc3LDEz
IEBAIGZsb2F0IFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwg
Y29uc3QgRm9udENhc2NhZGUmIGYsIGZsb2F0CiAKIEludFJlY3QgUmVuZGVyVGV4dDo6bGluZXNC
b3VuZGluZ0JveCgpIGNvbnN0CiB7Ci0gICAgYXV0byBmaXJzdCA9IElubGluZUl0ZXJhdG9yOjpm
aXJzdFRleHRCb3hGb3IoKnRoaXMpOwotICAgIGlmICghZmlyc3QpCisgICAgYXV0byBmaXJzdFRl
eHRCb3ggPSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94Rm9yKCp0aGlzKTsKKyAgICBpZiAo
IWZpcnN0VGV4dEJveCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYm91bmRpbmdC
b3ggPSBmaXJzdC0+cmVjdCgpOwotICAgIGZvciAoYXV0byBib3ggPSBmaXJzdDsgKytib3g7KQot
ICAgICAgICBib3VuZGluZ0JveC51bml0ZUV2ZW5JZkVtcHR5KGJveC0+cmVjdCgpKTsKKyAgICBh
dXRvIGJvdW5kaW5nQm94ID0gZmlyc3RUZXh0Qm94LT51bmZsaXBwZWRWaXN1YWxSZWN0KCk7Cisg
ICAgZm9yIChhdXRvIHRleHRCb3ggPSBmaXJzdFRleHRCb3g7ICsrdGV4dEJveDspCisgICAgICAg
IGJvdW5kaW5nQm94LnVuaXRlRXZlbklmRW1wdHkodGV4dEJveC0+dW5mbGlwcGVkVmlzdWFsUmVj
dCgpKTsKIAogICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KGJvdW5kaW5nQm94KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCAzODY3
N2VmY2E3MjQ4ODVlYjNmM2ZhZjcxYmExZmFhOTRiMTRmNWFlLi4yZmMyYTdmYmUyNzIyNjZjMzk0
NmY0ZGNjOTdjMjk5ZjAxNGU4OWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRyZWVBc1RleHQuY3BwCkBAIC01NDIsNyArNTQyLDcgQEAgdm9pZCB3cml0ZShUZXh0U3Ry
ZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLCBPcHRpb25TZXQ8UmVuZGVyQXNUZXh0Rmxh
Zz4gYmUKIHsKICAgICBhdXRvIHdyaXRlVGV4dFJ1biA9IFsmXShhdXRvJiB0ZXh0UmVuZGVyZXIs
IGF1dG8mIHRleHRSdW4pCiAgICAgewotICAgICAgICBhdXRvIHJlY3QgPSB0ZXh0UnVuLnJlY3Qo
KTsKKyAgICAgICAgYXV0byByZWN0ID0gdGV4dFJ1bi51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CiAg
ICAgICAgIGludCB4ID0gcmVjdC54KCk7CiAgICAgICAgIGludCB5ID0gcmVjdC55KCk7CiAgICAg
ICAgIC8vIEZJWE1FOiBVc2Ugbm9uLWxvZ2ljYWwgd2lkdGguIHdlYmtpdC5vcmcvYi8yMDY4MDku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcAppbmRleCBlMzZj
NDU4YjYzOWU3NTYyZGU3NzFhMDk1Y2RlZDVlM2EzYmJlZjFlLi5mYTRkYzk2OTNkMzMwMjA4M2Vk
MDVkMWY3NjFlMTcwZjY1Mzk0ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvVGV4dEJveFBhaW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0
Qm94UGFpbnRlci5jcHAKQEAgLTU3Myw3ICs1NzMsNyBAQCBGbG9hdFJlY3QgVGV4dEJveFBhaW50
ZXI6OmNvbXB1dGVQYWludFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAg
IGxvY2FsUGFpbnRPZmZzZXQubW92ZSgwLCBtX3N0eWxlLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyAwIDogLXRleHRCb3goKS5sb2dpY2FsSGVpZ2h0KCkpOwogCiAgICAgYXV0byBsb2NhdGlv
bkluY2x1ZGluZ0ZsaXBwaW5nID0gWyZdKCkgLT4gRmxvYXRQb2ludCB7Ci0gICAgICAgIGF1dG8g
cmVjdCA9IHRleHRCb3goKS5yZWN0KCk7CisgICAgICAgIGF1dG8gcmVjdCA9IHRleHRCb3goKS51
bmZsaXBwZWRWaXN1YWxSZWN0KCk7CiAgICAgICAgIGlmICghbV9zdHlsZS5pc0ZsaXBwZWRCbG9j
a3NXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgcmV0dXJuIHJlY3QubG9jYXRpb24oKTsKICAg
ICAgICAgYXV0byYgYmxvY2sgPSB0ZXh0Qm94KCkubGluZSgpLT5jb250YWluaW5nQmxvY2soKTsK
</data>
<flag name="commit-queue"
          id="480850"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453468</attachid>
            <date>2022-02-28 20:05:33 -0800</date>
            <delta_ts>2022-03-01 06:14:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237304-20220228200533.patch</filename>
            <type>text/plain</type>
            <size>30141</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU1ZjFiYWIwZWRiMzNm
MTBlMjlmYTdmYmRhMTY0OTc0OWE2YTE2Ni4uMmZlZjQ4MTZhZWJlNWU2Y2Q2OTllNDhhZjA3MDA0
ODg5ODQ1YTUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIyLTAyLTI4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW5saW5lSXRlcmF0b3I6OkJveDo6cmVjdCgpIHJldHVybnMgdGhlIHVuZmxpcHBlZCB2aXN1YWwg
cmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
MzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lIElubGluZUl0ZXJhdG9yOjpCb3g6OnJlY3QoKSB0byB1bmZsaXBwZWRWaXN1YWxSZWN0KCku
IEl0J2xsIGhlbHAgdG8KKyAgICAgICAgaW5kZW50aWZ5IGNhbGxzaXRlcyB3aGVyZSB3ZSBhY3R1
YWxseSBuZWVkIHRoZSBmbGlwcGVkIHZlcnNpb24gb2YgdGhpcyB2aXN1YWwgcmVjdC4KKworICAg
ICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlz
cGxheUJveC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94Ojp1bmZsaXBw
ZWRWaXN1YWxSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJv
eDo6dG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6Ym90
dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6bGVmdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OnJpZ2h0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6d2lkdGggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpoZWlnaHQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94Ojptb3ZlVmVydGljYWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6Om1vdmVIb3Jpem9udGFsbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpzZXRMZWZ0KToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6c2V0UmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lRGlzcGxheTo6Qm94OjpzZXRUb3ApOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlz
cGxheTo6Qm94OjpzZXRCb3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6
Qm94OjpzZXRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6Qm94
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6dHJ1bmNhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpyZWN0IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGlu
ZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6Oklu
bGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YWRqdXN0VmlzdWFsR2VvbWV0cnlGb3JEaXNwbGF5
Qm94KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3guaDoK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3g6OmxvZ2ljYWxUb3AgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6bG9naWNhbEJvdHRvbSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94Ojpsb2dpY2FsTGVm
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94Ojpsb2dpY2Fs
UmlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6bG9n
aWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3g6
OmxvZ2ljYWxIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6
OkJveDo6dW5mbGlwcGVkVmlzdWFsUmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVJdGVyYXRvcjo6Qm94OjpyZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
aW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmg6CisgICAgICAgIChXZWJD
b3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94TGVnYWN5UGF0aDo6dW5mbGlwcGVkVmlzdWFsUmVjdCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94TGVnYWN5UGF0aDo6
cmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGlu
ZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0
b3I6OkJveE1vZGVyblBhdGg6OnVuZmxpcHBlZFZpc3VhbFJlY3QgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveE1vZGVyblBhdGg6OmNyZWF0ZVRleHRSdW4gY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveE1vZGVyblBhdGg6OnJl
Y3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkJveFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OnNob3dJbmxpbmVDb250ZW50KToKKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5
b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpMaW5lTGF5b3V0OjpmaXJzdElubGluZUJveFJlY3QgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmNvbGxlY3RJbmxpbmVC
b3hSZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGlu
ZUxheW91dDo6aGl0VGVzdCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJl
ZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpzaG93SW5saW5lVHJlZUFu
ZFJ1bnMpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVCb3hQYWludGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUJveFBhaW50ZXI6OnBhaW50TWFzayk6CisgICAgICAgIChXZWJD
b3JlOjpJbmxpbmVCb3hQYWludGVyOjpwYWludERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUJveFBhaW50ZXI6OnBhaW50RmlsbExheWVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxv
dzo6YWRkRm9jdXNSaW5nUmVjdHNGb3JJbmxpbmVDaGlsZHJlbik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eE1vZGVsT2JqZWN0OjpwYWludE1hc2tGb3JUZXh0RmlsbEJveCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6cGl4ZWxTbmFwQmFja2dyb3VuZEltYWdlR2VvbWV0
cnlGb3JQYWludGluZyk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6OnBhaW50T3V0bGluZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMaW5lQnJlYWs6OmxpbmVzQm91bmRpbmdCb3ggY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGluZUJyZWFrOjphYnNvbHV0ZVJlY3RzIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVRdWFkcyBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6
YWJzb2x1dGVSZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpib3VuZGFyaWVzRm9yVGV4
dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpsb2NhbFF1YWRGb3JUZXh0UnVuKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHQ6OmZpcnN0UnVuTG9jYXRpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dDo6bGluZXNCb3VuZGluZ0JveCBjb25zdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGUp
OgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0Qm94UGFpbnRlcjo6Y29tcHV0ZVBhaW50UmVjdCk6CisKIDIwMjItMDItMjQgIE1h
dHQgV29vZHJvdyAgPG1hdHR3b29kcm93QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBn
cmlkIFJUTCBoYW5kbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURp
c3BsYXlCb3guaAppbmRleCBhMmJjMThjMWY0ZGY2OWM1ZmY1OWM5MDc0ZmI2NjQ5YzhkOGNjYWM2
Li41MmMzNjZiNDY3MTFkNTViYTJhZWQzNmZjYmZjOTlkZmFmMzlkOTY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lu
bGluZURpc3BsYXlCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaApAQCAtOTgsMjUgKzk4LDI1
IEBAIHN0cnVjdCBCb3ggewogCiAgICAgYm9vbCBoYXNDb250ZW50KCkgY29uc3QgeyByZXR1cm4g
bV9oYXNDb250ZW50OyB9CiAKLSAgICBjb25zdCBGbG9hdFJlY3QmIHJlY3QoKSBjb25zdCB7IHJl
dHVybiBtX3BoeXNpY2FsUmVjdDsgfQorICAgIGNvbnN0IEZsb2F0UmVjdCYgdW5mbGlwcGVkVmlz
dWFsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5mbGlwcGVkVmlzdWFsUmVjdDsgfQogICAgIGNv
bnN0IEZsb2F0UmVjdCYgaW5rT3ZlcmZsb3coKSBjb25zdCB7IHJldHVybiBtX2lua092ZXJmbG93
OyB9CiAKLSAgICBmbG9hdCB0b3AoKSBjb25zdCB7IHJldHVybiByZWN0KCkueSgpOyB9Ci0gICAg
ZmxvYXQgYm90dG9tKCkgY29uc3QgeyByZXR1cm4gcmVjdCgpLm1heFkoKTsgfQotICAgIGZsb2F0
IGxlZnQoKSBjb25zdCB7IHJldHVybiByZWN0KCkueCgpOyB9Ci0gICAgZmxvYXQgcmlnaHQoKSBj
b25zdCB7IHJldHVybiByZWN0KCkubWF4WCgpOyB9CisgICAgZmxvYXQgdG9wKCkgY29uc3QgeyBy
ZXR1cm4gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLnkoKTsgfQorICAgIGZsb2F0IGJvdHRvbSgpIGNv
bnN0IHsgcmV0dXJuIHVuZmxpcHBlZFZpc3VhbFJlY3QoKS5tYXhZKCk7IH0KKyAgICBmbG9hdCBs
ZWZ0KCkgY29uc3QgeyByZXR1cm4gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLngoKTsgfQorICAgIGZs
b2F0IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLm1heFgoKTsg
fQogCi0gICAgZmxvYXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiByZWN0KCkud2lkdGgoKTsgfQot
ICAgIGZsb2F0IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIHJlY3QoKS5oZWlnaHQoKTsgfQorICAg
IGZsb2F0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLndpZHRo
KCk7IH0KKyAgICBmbG9hdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiB1bmZsaXBwZWRWaXN1YWxS
ZWN0KCkuaGVpZ2h0KCk7IH0KIAogICAgIHZvaWQgbW92ZVZlcnRpY2FsbHkoZmxvYXQgb2Zmc2V0
KQogICAgIHsKLSAgICAgICAgbV9waHlzaWNhbFJlY3QubW92ZSh7IHsgfSwgb2Zmc2V0IH0pOwor
ICAgICAgICBtX3VuZmxpcHBlZFZpc3VhbFJlY3QubW92ZSh7IHsgfSwgb2Zmc2V0IH0pOwogICAg
ICAgICBtX2lua092ZXJmbG93Lm1vdmUoeyB7IH0sIG9mZnNldCB9KTsKICAgICB9CiAgICAgdm9p
ZCBtb3ZlSG9yaXpvbnRhbGx5KGZsb2F0IG9mZnNldCkKICAgICB7Ci0gICAgICAgIG1fcGh5c2lj
YWxSZWN0Lm1vdmUoeyBvZmZzZXQsIHsgfSB9KTsKKyAgICAgICAgbV91bmZsaXBwZWRWaXN1YWxS
ZWN0Lm1vdmUoeyBvZmZzZXQsIHsgfSB9KTsKICAgICAgICAgbV9pbmtPdmVyZmxvdy5tb3ZlKHsg
b2Zmc2V0LCB7IH0gfSk7CiAgICAgfQogICAgIHZvaWQgYWRqdXN0SW5rT3ZlcmZsb3coY29uc3Qg
RmxvYXRSZWN0JiBjaGlsZEJvcmRlckJveCkgeyByZXR1cm4gbV9pbmtPdmVyZmxvdy51bml0ZUV2
ZW5JZkVtcHR5KGNoaWxkQm9yZGVyQm94KTsgfQpAQCAtMTI0LDMwICsxMjQsMzAgQEAgc3RydWN0
IEJveCB7CiAgICAgdm9pZCBzZXRMZWZ0KGZsb2F0IHB5c2ljYWxMZWZ0KQogICAgIHsKICAgICAg
ICAgYXV0byBvZmZzZXQgPSBweXNpY2FsTGVmdCAtIGxlZnQoKTsKLSAgICAgICAgbV9waHlzaWNh
bFJlY3Quc2V0WChweXNpY2FsTGVmdCk7CisgICAgICAgIG1fdW5mbGlwcGVkVmlzdWFsUmVjdC5z
ZXRYKHB5c2ljYWxMZWZ0KTsKICAgICAgICAgbV9pbmtPdmVyZmxvdy5zZXRYKG1faW5rT3ZlcmZs
b3cueCgpICsgb2Zmc2V0KTsKICAgICB9CiAgICAgdm9pZCBzZXRSaWdodChmbG9hdCBwaHlzaWNh
bFJpZ2h0KQogICAgIHsKICAgICAgICAgYXV0byBvZmZzZXQgPSBwaHlzaWNhbFJpZ2h0IC0gcmln
aHQoKTsKLSAgICAgICAgbV9waHlzaWNhbFJlY3Quc2hpZnRNYXhYRWRnZVRvKHBoeXNpY2FsUmln
aHQpOworICAgICAgICBtX3VuZmxpcHBlZFZpc3VhbFJlY3Quc2hpZnRNYXhYRWRnZVRvKHBoeXNp
Y2FsUmlnaHQpOwogICAgICAgICBtX2lua092ZXJmbG93LnNoaWZ0TWF4WEVkZ2VUbyhtX2lua092
ZXJmbG93Lm1heFgoKSArIG9mZnNldCk7CiAgICAgfQogICAgIHZvaWQgc2V0VG9wKGZsb2F0IHBo
eXNpY2FsVG9wKQogICAgIHsKICAgICAgICAgYXV0byBvZmZzZXQgPSBwaHlzaWNhbFRvcCAtIHRv
cCgpOwotICAgICAgICBtX3BoeXNpY2FsUmVjdC5zZXRZKHBoeXNpY2FsVG9wKTsKKyAgICAgICAg
bV91bmZsaXBwZWRWaXN1YWxSZWN0LnNldFkocGh5c2ljYWxUb3ApOwogICAgICAgICBtX2lua092
ZXJmbG93LnNoaWZ0TWF4WUVkZ2VUbyhtX2lua092ZXJmbG93LnkoKSArIG9mZnNldCk7CiAgICAg
fQogICAgIHZvaWQgc2V0Qm90dG9tKGZsb2F0IHBoeXNpY2FsQm90dG9tKQogICAgIHsKICAgICAg
ICAgYXV0byBvZmZzZXQgPSBwaHlzaWNhbEJvdHRvbSAtIGJvdHRvbSgpOwotICAgICAgICBtX3Bo
eXNpY2FsUmVjdC5zaGlmdE1heFlFZGdlVG8ocGh5c2ljYWxCb3R0b20pOworICAgICAgICBtX3Vu
ZmxpcHBlZFZpc3VhbFJlY3Quc2hpZnRNYXhZRWRnZVRvKHBoeXNpY2FsQm90dG9tKTsKICAgICAg
ICAgbV9pbmtPdmVyZmxvdy5zaGlmdE1heFlFZGdlVG8obV9pbmtPdmVyZmxvdy5tYXhZKCkgKyBv
ZmZzZXQpOwogICAgIH0KICAgICB2b2lkIHNldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBj
b25zdCBGbG9hdFJlY3QmIGlua092ZXJmbG93KQogICAgIHsKLSAgICAgICAgbV9waHlzaWNhbFJl
Y3QgPSByZWN0OworICAgICAgICBtX3VuZmxpcHBlZFZpc3VhbFJlY3QgPSByZWN0OwogICAgICAg
ICBtX2lua092ZXJmbG93ID0gaW5rT3ZlcmZsb3c7CiAgICAgfQogICAgIHZvaWQgc2V0SGFzQ29u
dGVudCgpIHsgbV9oYXNDb250ZW50ID0gdHJ1ZTsgfQpAQCAtMTc4LDcgKzE3OCw3IEBAIHByaXZh
dGU6CiAgICAgY29uc3QgVHlwZSBtX3R5cGUgeyBUeXBlOjpHZW5lcmljSW5saW5lTGV2ZWxCb3gg
fTsKICAgICBDaGVja2VkUmVmPGNvbnN0IExheW91dDo6Qm94PiBtX2xheW91dEJveDsKICAgICBV
QmlEaUxldmVsIG1fYmlkaUxldmVsIHsgVUJJRElfREVGQVVMVF9MVFIgfTsKLSAgICBGbG9hdFJl
Y3QgbV9waHlzaWNhbFJlY3Q7CisgICAgRmxvYXRSZWN0IG1fdW5mbGlwcGVkVmlzdWFsUmVjdDsK
ICAgICBGbG9hdFJlY3QgbV9pbmtPdmVyZmxvdzsKICAgICBib29sIG1faGFzQ29udGVudCA6IDE7
CiAgICAgYm9vbCBtX2lzRmlyc3RGb3JMYXlvdXRCb3ggOiAxOwpAQCAtMTkyLDcgKzE5Miw3IEBA
IGlubGluZSBCb3g6OkJveChzaXplX3QgbGluZUluZGV4LCBUeXBlIHR5cGUsIGNvbnN0IExheW91
dDo6Qm94JiBsYXlvdXRCb3gsIFVCaURpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fbGF5
b3V0Qm94KGxheW91dEJveCkKICAgICAsIG1fYmlkaUxldmVsKGJpZGlMZXZlbCkKLSAgICAsIG1f
cGh5c2ljYWxSZWN0KHBoeXNpY2FsUmVjdCkKKyAgICAsIG1fdW5mbGlwcGVkVmlzdWFsUmVjdChw
aHlzaWNhbFJlY3QpCiAgICAgLCBtX2lua092ZXJmbG93KGlua092ZXJmbG93KQogICAgICwgbV9o
YXNDb250ZW50KGhhc0NvbnRlbnQpCiAgICAgLCBtX2lzRmlyc3RGb3JMYXlvdXRCb3gocG9zaXRp
b25XaXRoaW5JbmxpbmVMZXZlbEJveC5jb250YWlucyhQb3NpdGlvbldpdGhpbklubGluZUxldmVs
Qm94OjpGaXJzdCkpCkBAIC0yMTMsOCArMjEzLDggQEAgaW5saW5lIEJveDo6VGV4dDo6VGV4dChz
aXplX3Qgc3RhcnQsIHNpemVfdCBsZW5ndGgsIGNvbnN0IFN0cmluZyYgb3JpZ2luYWxDb250ZW4K
IAogaW5saW5lIHZvaWQgQm94Ojp0cnVuY2F0ZShmbG9hdCB0cnVuY2F0ZWR3aWR0aCkKIHsKLSAg
ICBtX3BoeXNpY2FsUmVjdC5zZXRXaWR0aCh0cnVuY2F0ZWR3aWR0aCk7Ci0gICAgbV9pbmtPdmVy
Zmxvdy5zaGlmdE1heFhFZGdlVG8obV9waHlzaWNhbFJlY3QubWF4WSgpKTsKKyAgICBtX3VuZmxp
cHBlZFZpc3VhbFJlY3Quc2V0V2lkdGgodHJ1bmNhdGVkd2lkdGgpOworICAgIG1faW5rT3ZlcmZs
b3cuc2hpZnRNYXhYRWRnZVRvKG1fdW5mbGlwcGVkVmlzdWFsUmVjdC5tYXhZKCkpOwogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggZmNkNmZjYzZiMWM4OTA1ZjlhMWUyMTc1OGM5ZWNk
ZWMxYjBlOTM2ZC4uNmUwZTQ1MGM5OWFhYTNmZjdlOGExZDQ3Y2QxNjM1MTI1ODY5YWIxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
ZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyLmNwcApAQCAtNTI2LDEzICs1MjYsMTMgQEAgdm9pZCBJbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXI6OmFkanVzdFZpc3VhbEdlb21ldHJ5Rm9yRGlzcGxheUJveChzaXpl
X3QgZGlzcGwKICAgICBhZnRlcklubGluZUJveENvbnRlbnQoKTsKIAogICAgIGF1dG8gY29tcHV0
ZUlua092ZXJmbG93ID0gWyZdIHsKLSAgICAgICAgYXV0byBpbmtPdmVyZmxvdyA9IEZsb2F0UmVj
dCB7IGRpc3BsYXlCb3gucmVjdCgpIH07CisgICAgICAgIGF1dG8gaW5rT3ZlcmZsb3cgPSBGbG9h
dFJlY3QgeyBkaXNwbGF5Qm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKSB9OwogICAgICAgICBtX2Nv
bnRlbnRIYXNJbmtPdmVyZmxvdyA9IGNvbXB1dGVCb3hTaGFkb3dJbmtPdmVyZmxvdyghbV9saW5l
SW5kZXggPyBsYXlvdXRCb3guZmlyc3RMaW5lU3R5bGUoKSA6IGxheW91dEJveC5zdHlsZSgpLCBp
bmtPdmVyZmxvdykgfHwgbV9jb250ZW50SGFzSW5rT3ZlcmZsb3c7CiAgICAgICAgIGRpc3BsYXlC
b3guYWRqdXN0SW5rT3ZlcmZsb3coaW5rT3ZlcmZsb3cpOwogICAgIH07CiAgICAgY29tcHV0ZUlu
a092ZXJmbG93KCk7CiAKLSAgICBzZXRJbmxpbmVCb3hHZW9tZXRyeShsYXlvdXRCb3gsIGRpc3Bs
YXlCb3gucmVjdCgpLCBpc0ZpcnN0Qm94KTsKKyAgICBzZXRJbmxpbmVCb3hHZW9tZXRyeShsYXlv
dXRCb3gsIGRpc3BsYXlCb3gudW5mbGlwcGVkVmlzdWFsUmVjdCgpLCBpc0ZpcnN0Qm94KTsKICAg
ICBpZiAobGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxheW91dEJveChsYXlvdXRCb3gpLmhhc0Nv
bnRlbnQoKSkKICAgICAgICAgZGlzcGxheUJveC5zZXRIYXNDb250ZW50KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5o
CmluZGV4IDgxM2Y1YjBlNjU5MDM0MTNmZjQ2MmU0OWUxZjg5Mzc4MTg2MzZjN2UuLjE3ZjA1NTM4
NTA0ZWQxMWU5OTllYzc0NjcyODYzNzRhNzA5MWQwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveC5oCkBAIC02MCwxNCAr
NjAsMTQgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbmxpbmVCb3goKSBjb25zdDsKICAgICBib29s
IGlzUm9vdElubGluZUJveCgpIGNvbnN0OwogCi0gICAgRmxvYXRSZWN0IHJlY3QoKSBjb25zdDsK
KyAgICBGbG9hdFJlY3QgdW5mbGlwcGVkVmlzdWFsUmVjdCgpIGNvbnN0OwogCi0gICAgZmxvYXQg
bG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gcmVjdCgpLnkoKSA6
IHJlY3QoKS54KCk7IH0KLSAgICBmbG9hdCBsb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4g
aXNIb3Jpem9udGFsKCkgPyByZWN0KCkubWF4WSgpIDogcmVjdCgpLm1heFgoKTsgfQotICAgIGZs
b2F0IGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsKCkgPyByZWN0KCku
eCgpIDogcmVjdCgpLnkoKTsgfQotICAgIGZsb2F0IGxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0
dXJuIGlzSG9yaXpvbnRhbCgpID8gcmVjdCgpLm1heFgoKSA6IHJlY3QoKS5tYXhZKCk7IH0KLSAg
ICBmbG9hdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWwoKSA/IHJl
Y3QoKS53aWR0aCgpIDogcmVjdCgpLmhlaWdodCgpOyB9Ci0gICAgZmxvYXQgbG9naWNhbEhlaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gcmVjdCgpLmhlaWdodCgpIDogcmVj
dCgpLndpZHRoKCk7IH0KKyAgICBmbG9hdCBsb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gaXNI
b3Jpem9udGFsKCkgPyB1bmZsaXBwZWRWaXN1YWxSZWN0KCkueSgpIDogdW5mbGlwcGVkVmlzdWFs
UmVjdCgpLngoKTsgfQorICAgIGZsb2F0IGxvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBp
c0hvcml6b250YWwoKSA/IHVuZmxpcHBlZFZpc3VhbFJlY3QoKS5tYXhZKCkgOiB1bmZsaXBwZWRW
aXN1YWxSZWN0KCkubWF4WCgpOyB9CisgICAgZmxvYXQgbG9naWNhbExlZnQoKSBjb25zdCB7IHJl
dHVybiBpc0hvcml6b250YWwoKSA/IHVuZmxpcHBlZFZpc3VhbFJlY3QoKS54KCkgOiB1bmZsaXBw
ZWRWaXN1YWxSZWN0KCkueSgpOyB9CisgICAgZmxvYXQgbG9naWNhbFJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gaXNIb3Jpem9udGFsKCkgPyB1bmZsaXBwZWRWaXN1YWxSZWN0KCkubWF4WCgpIDogdW5m
bGlwcGVkVmlzdWFsUmVjdCgpLm1heFkoKTsgfQorICAgIGZsb2F0IGxvZ2ljYWxXaWR0aCgpIGNv
bnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gdW5mbGlwcGVkVmlzdWFsUmVjdCgpLndpZHRo
KCkgOiB1bmZsaXBwZWRWaXN1YWxSZWN0KCkuaGVpZ2h0KCk7IH0KKyAgICBmbG9hdCBsb2dpY2Fs
SGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsKCkgPyB1bmZsaXBwZWRWaXN1YWxS
ZWN0KCkuaGVpZ2h0KCkgOiB1bmZsaXBwZWRWaXN1YWxSZWN0KCkud2lkdGgoKTsgfQogCiAgICAg
Ym9vbCBpc0hvcml6b250YWwoKSBjb25zdDsKICAgICBib29sIGlzTGluZUJyZWFrKCkgY29uc3Q7
CkBAIC0xODMsMTAgKzE4MywxMCBAQCBpbmxpbmUgYm9vbCBCb3g6OmlzUm9vdElubGluZUJveCgp
IGNvbnN0CiAgICAgfSk7CiB9CiAKLWlubGluZSBGbG9hdFJlY3QgQm94OjpyZWN0KCkgY29uc3QK
K2lubGluZSBGbG9hdFJlY3QgQm94Ojp1bmZsaXBwZWRWaXN1YWxSZWN0KCkgY29uc3QKIHsKICAg
ICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7Ci0g
ICAgICAgIHJldHVybiBwYXRoLnJlY3QoKTsKKyAgICAgICAgcmV0dXJuIHBhdGgudW5mbGlwcGVk
VmlzdWFsUmVjdCgpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hMZWdhY3lQYXRoLmgK
aW5kZXggYjU5YWI4MGU4Y2MxMjRkMDk1YTViMTEzYTE5YzU3NmZjMWViYTg1NS4uZDkzZDRiNDYy
OTkwZTE5NmVjOWM3N2EwYjFiY2I4MzlhYzZiZGUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVnYWN5UGF0aC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveExlZ2Fj
eVBhdGguaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0lubGluZUJveCgp
IGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94LT5pc0lubGluZUZsb3dCb3goKTsgfQogICAgIGJv
b2wgaXNSb290SW5saW5lQm94KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVCb3gtPmlzUm9vdElu
bGluZUJveCgpOyB9CiAKLSAgICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1faW5s
aW5lQm94LT5mcmFtZVJlY3QoKTsgfQorICAgIEZsb2F0UmVjdCB1bmZsaXBwZWRWaXN1YWxSZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVCb3gtPmZyYW1lUmVjdCgpOyB9CiAKICAgICBib29s
IGlzSG9yaXpvbnRhbCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94LT5pc0hvcml6b250YWwo
KTsgfQogICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBtX2lubGluZUJveC0+
aXNMaW5lQnJlYWsoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0aC5oCmluZGV4IGRmYmMy
MmQ4ZTFhZDBjMjFjZTUxMzE3ODM3Y2Q1ODYyMWU4NDI4ZGYuLjEzYThjZTYyZTJmMjE0OGM5YjAy
MzVhMWYyYmNiMmU0MTE0N2ZlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveE1vZGVyblBhdGguaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hNb2Rlcm5QYXRoLmgKQEAg
LTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbmxpbmVCb3goKSBjb25zdCB7IHJl
dHVybiBib3goKS5pc0lubGluZUJveCgpOyB9CiAgICAgYm9vbCBpc1Jvb3RJbmxpbmVCb3goKSBj
b25zdCB7IHJldHVybiBib3goKS5pc1Jvb3RJbmxpbmVCb3goKTsgfQogCi0gICAgRmxvYXRSZWN0
IHJlY3QoKSBjb25zdCB7IHJldHVybiBib3goKS5yZWN0KCk7IH0KKyAgICBGbG9hdFJlY3QgdW5m
bGlwcGVkVmlzdWFsUmVjdCgpIGNvbnN0IHsgcmV0dXJuIGJveCgpLnVuZmxpcHBlZFZpc3VhbFJl
Y3QoKTsgfQogCiAgICAgYm9vbCBpc0hvcml6b250YWwoKSBjb25zdCB7IHJldHVybiBib3goKS5p
c0hvcml6b250YWwoKTsgfQogICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdCB7IHJldHVybiBi
b3goKS5pc0xpbmVCcmVhaygpOyB9CkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB7CiAg
ICAgICAgIGF1dG8mIHN0eWxlID0gYm94KCkuc3R5bGUoKTsKICAgICAgICAgYXV0byBleHBhbnNp
b24gPSBib3goKS5leHBhbnNpb24oKTsKLSAgICAgICAgYXV0byByZWN0ID0gdGhpcy0+cmVjdCgp
OworICAgICAgICBhdXRvIHJlY3QgPSB0aGlzLT51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CiAgICAg
ICAgIGF1dG8geFBvcyA9IHJlY3QueCgpIC0gKGxpbmUoKS5saW5lQm94TGVmdCgpICsgbGluZSgp
LmNvbnRlbnRMb2dpY2FsT2Zmc2V0KCkpOwogCiAgICAgICAgIGF1dG8gdGV4dEZvclJ1biA9IFsm
XSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25Cb3hUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCmluZGV4IDRjMGMyNTkxYTk0ZjcwNGY2Njg0
ZWUyNjMyOTBiN2IyMjJmYTY4MDIuLjYxMzljM2VlNzE2OTAxYTY3YjU2N2UwMGM2ODc3ZjYxNDIx
NzkyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwCkBAIC0yNzYsNyArMjc2LDcgQEAg
dm9pZCBzaG93SW5saW5lQ29udGVudChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IElubGluZUNv
bnRlbnQmIGlubGluZUNvbnRlbnQsIHMKICAgICAgICAgYXV0byBvdXRwdXRJbmxpbmVMZXZlbEJv
eCA9IFsmXShjb25zdCBhdXRvJiBpbmxpbmVMZXZlbEJveCkgewogICAgICAgICAgICAgYWRkU3Bh
Y2luZygpOwogICAgICAgICAgICAgc3RyZWFtIDw8ICIgICAgIjsKLSAgICAgICAgICAgIGF1dG8g
cmVjdCA9IGlubGluZUxldmVsQm94LnJlY3QoKTsKKyAgICAgICAgICAgIGF1dG8gcmVjdCA9IGlu
bGluZUxldmVsQm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKTsKICAgICAgICAgICAgIGF1dG8mIGxh
eW91dEJveCA9IGlubGluZUxldmVsQm94LmxheW91dEJveCgpOwogICAgICAgICAgICAgaWYgKGxh
eW91dEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkpCiAgICAgICAgICAgICAgICAgc3RyZWFt
IDw8ICJBdG9taWMgaW5saW5lIGxldmVsIGJveCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlv
dXQuY3BwCmluZGV4IDVhYWZmODM4ZWRmMGEyZTY2YjdiMjRmODRkODQ5M2YyODAyZTk0MDcuLjZl
M2Y0YmI2YzllOTc2NjFkYjJkMWE1NWY3NjZhNGZiZmJlZmVmMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuY3BwCkBAIC02MTQsNyArNjE0LDcgQEAgTGF5b3V0UmVjdCBMaW5lTGF5
b3V0OjpmaXJzdElubGluZUJveFJlY3QoY29uc3QgUmVuZGVySW5saW5lJiByZW5kZXJJbmxpbmUp
IGNvbnMKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBmbGlwIHRoZSBkaXNw
bGF5IGJveGVzIHNvb24gYWZ0ZXIgdGhlIHJvb3QgYmxvY2sKICAgICAvLyBpcyBmaW5pc2hlZCBz
aXppbmcgaW4gb25lIGdvLgotICAgIGF1dG8gZmlyc3RCb3hSZWN0ID0gTGF5b3V0Ojp0b0xheW91
dFJlY3QoZmlyc3RCb3gtPnJlY3QoKSk7CisgICAgYXV0byBmaXJzdEJveFJlY3QgPSBMYXlvdXQ6
OnRvTGF5b3V0UmVjdChmaXJzdEJveC0+dW5mbGlwcGVkVmlzdWFsUmVjdCgpKTsKICAgICBzd2l0
Y2ggKHJvb3RMYXlvdXRCb3goKS5zdHlsZSgpLndyaXRpbmdNb2RlKCkpIHsKICAgICBjYXNlIFdy
aXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKICAgICBjYXNlIFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdo
dDoKQEAgLTY2NCw3ICs2NjQsNyBAQCBWZWN0b3I8RmxvYXRSZWN0PiBMaW5lTGF5b3V0Ojpjb2xs
ZWN0SW5saW5lQm94UmVjdHMoY29uc3QgUmVuZGVySW5saW5lJiByZW5kZXJJbgogCiAgICAgVmVj
dG9yPEZsb2F0UmVjdD4gcmVzdWx0OwogICAgIG1faW5saW5lQ29udGVudC0+dHJhdmVyc2VOb25S
b290SW5saW5lQm94ZXMobGF5b3V0Qm94LCBbJl0oYXV0byYgaW5saW5lQm94KSB7Ci0gICAgICAg
IHJlc3VsdC5hcHBlbmQoaW5saW5lQm94LnJlY3QoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQo
aW5saW5lQm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKSk7CiAgICAgfSk7CiAKICAgICByZXR1cm4g
cmVzdWx0OwpAQCAtODExLDcgKzgxMSw3IEBAIGJvb2wgTGluZUxheW91dDo6aGl0VGVzdChjb25z
dCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjCiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gYm94UmVjdCA9IGZs
aXBwZWRSZWN0Rm9yV3JpdGluZ01vZGUoZmxvdygpLCBib3gucmVjdCgpKTsKKyAgICAgICAgYXV0
byBib3hSZWN0ID0gZmxpcHBlZFJlY3RGb3JXcml0aW5nTW9kZShmbG93KCksIGJveC51bmZsaXBw
ZWRWaXN1YWxSZWN0KCkpOwogICAgICAgICBib3hSZWN0Lm1vdmVCeShhY2N1bXVsYXRlZE9mZnNl
dCk7CiAKICAgICAgICAgaWYgKCFsb2NhdGlvbkluQ29udGFpbmVyLmludGVyc2VjdHMoYm94UmVj
dCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRU
cmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRU
cmVlQnVpbGRlci5jcHAKaW5kZXggOTA1ZTk3MTVmNTA4ZWExMzllODRmZTRlYzcyMWJlZmFjMzRi
ZTk2Mi4uZjc0MDM1ZjQzOGFjZDI2MTJiY2I2ZWI2MGY0NGJkN2Y0ODU5NTgzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVy
LmNwcApAQCAtMzg2LDcgKzM4Niw3IEBAIHZvaWQgc2hvd0lubGluZVRyZWVBbmRSdW5zKFRleHRT
dHJlYW0mIHN0cmVhbSwgY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjCiAgICAgICAg
IGF1dG8gb3V0cHV0SW5saW5lTGV2ZWxCb3ggPSBbJl0oY29uc3QgYXV0byYgaW5saW5lTGV2ZWxC
b3gpIHsKICAgICAgICAgICAgIGFkZFNwYWNpbmcoKTsKICAgICAgICAgICAgIHN0cmVhbSA8PCAi
ICAgICI7Ci0gICAgICAgICAgICBhdXRvIHJlY3QgPSBpbmxpbmVMZXZlbEJveC5yZWN0KCk7Cisg
ICAgICAgICAgICBhdXRvIHJlY3QgPSBpbmxpbmVMZXZlbEJveC51bmZsaXBwZWRWaXN1YWxSZWN0
KCk7CiAgICAgICAgICAgICBhdXRvJiBsYXlvdXRCb3ggPSBpbmxpbmVMZXZlbEJveC5sYXlvdXRC
b3goKTsKICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNBdG9taWNJbmxpbmVMZXZlbEJveCgp
KQogICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiQXRvbWljIGlubGluZSBsZXZlbCBib3giOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveFBhaW50ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUJveFBhaW50ZXIuY3BwCmluZGV4IDVj
MTljOTMwMDYwMGUzNzdkOTJlZDYzZjFlOGI5ZWE0ZTZiY2I2ZWYuLjBjODAyZDA5YjI4NzdmYTE3
YjQ0YmQ5ODRlMTVkOTQ5NmM0N2MxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9JbmxpbmVCb3hQYWludGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lQm94UGFpbnRlci5jcHAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIElubGluZUJveFBh
aW50ZXI6OnBhaW50TWFzaygpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE1vdmUgeC95IHRv
IG91ciBjb29yZGluYXRlcy4KLSAgICBMYXlvdXRSZWN0IGxvY2FsUmVjdChtX2lubGluZUJveC5y
ZWN0KCkpOworICAgIExheW91dFJlY3QgbG9jYWxSZWN0KG1faW5saW5lQm94LnVuZmxpcHBlZFZp
c3VhbFJlY3QoKSk7CiAgICAgbV9pbmxpbmVCb3gubGluZSgpLT5jb250YWluaW5nQmxvY2soKS5m
bGlwRm9yV3JpdGluZ01vZGUobG9jYWxSZWN0KTsKICAgICBMYXlvdXRQb2ludCBhZGp1c3RlZFBh
aW50T2Zmc2V0ID0gbV9wYWludE9mZnNldCArIGxvY2FsUmVjdC5sb2NhdGlvbigpOwogCkBAIC0y
MTgsNyArMjE4LDcgQEAgdm9pZCBJbmxpbmVCb3hQYWludGVyOjpwYWludERlY29yYXRpb25zKCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTW92ZSB4L3kgdG8gb3VyIGNvb3JkaW5hdGVzLgot
ICAgIExheW91dFJlY3QgbG9jYWxSZWN0KG1faW5saW5lQm94LnJlY3QoKSk7CisgICAgTGF5b3V0
UmVjdCBsb2NhbFJlY3QobV9pbmxpbmVCb3gudW5mbGlwcGVkVmlzdWFsUmVjdCgpKTsKICAgICBt
X2lubGluZUJveC5saW5lKCktPmNvbnRhaW5pbmdCbG9jaygpLmZsaXBGb3JXcml0aW5nTW9kZShs
b2NhbFJlY3QpOwogCiAgICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRQYWludG9mZnNldCA9IG1fcGFp
bnRPZmZzZXQgKyBsb2NhbFJlY3QubG9jYXRpb24oKTsKQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lk
IElubGluZUJveFBhaW50ZXI6OnBhaW50RmlsbExheWVyKGNvbnN0IENvbG9yJiBjb2xvciwgY29u
c3QgRmlsbExheWVyJiBmaWxsTAogI2lmIEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05fQlJFQUsp
CiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5ib3hEZWNvcmF0aW9uQnJlYWsoKSA9PSBCb3hE
ZWNvcmF0aW9uQnJlYWs6OkNsb25lKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihtX3BhaW50SW5mby5jb250ZXh0KCkpOwotICAgICAgICBtX3BhaW50SW5m
by5jb250ZXh0KCkuY2xpcCh7IHJlY3QueCgpLCByZWN0LnkoKSwgTGF5b3V0VW5pdChtX2lubGlu
ZUJveC5yZWN0KCkud2lkdGgoKSksIExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLmhlaWdo
dCgpKSB9KTsKKyAgICAgICAgbV9wYWludEluZm8uY29udGV4dCgpLmNsaXAoeyByZWN0LmxvY2F0
aW9uKCksIG1faW5saW5lQm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKS5zaXplKCkgfSk7CiAgICAg
ICAgIHJlbmRlcmVyKCkucGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChtX3BhaW50SW5mbywgY29sb3Is
IGZpbGxMYXllciwgcmVjdCwgQmFja2dyb3VuZEJsZWVkTm9uZSwgbV9pbmxpbmVCb3gsIHsgfSwg
b3ApOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzM1LDggKzMzNSw4IEBAIHZvaWQgSW5s
aW5lQm94UGFpbnRlcjo6cGFpbnRGaWxsTGF5ZXIoY29uc3QgQ29sb3ImIGNvbG9yLCBjb25zdCBG
aWxsTGF5ZXImIGZpbGxMCiAgICAgTGF5b3V0UmVjdCBiYWNrZ3JvdW5kSW1hZ2VTdHJpcCB7CiAg
ICAgICAgIHJlY3QueCgpIC0gKGlzSG9yaXpvbnRhbCgpID8gbG9naWNhbE9mZnNldE9uTGluZSA6
IDBfbHUpLAogICAgICAgICByZWN0LnkoKSAtIChpc0hvcml6b250YWwoKSA/IDBfbHUgOiBsb2dp
Y2FsT2Zmc2V0T25MaW5lKSwKLSAgICAgICAgaXNIb3Jpem9udGFsKCkgPyB0b3RhbExvZ2ljYWxX
aWR0aCA6IExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLndpZHRoKCkpLAotICAgICAgICBp
c0hvcml6b250YWwoKSA/IExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLmhlaWdodCgpKSA6
IHRvdGFsTG9naWNhbFdpZHRoCisgICAgICAgIGlzSG9yaXpvbnRhbCgpID8gdG90YWxMb2dpY2Fs
V2lkdGggOiBMYXlvdXRVbml0KG1faW5saW5lQm94LnVuZmxpcHBlZFZpc3VhbFJlY3QoKS53aWR0
aCgpKSwKKyAgICAgICAgaXNIb3Jpem9udGFsKCkgPyBMYXlvdXRVbml0KG1faW5saW5lQm94LnVu
ZmxpcHBlZFZpc3VhbFJlY3QoKS5oZWlnaHQoKSkgOiB0b3RhbExvZ2ljYWxXaWR0aAogICAgIH07
CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIobV9wYWludEluZm8u
Y29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKaW5kZXggMzY0MzEyYjA0MDUzMWY2ZTVlMGQ4MTFlYTdlZmVlMDNiZDk4ZDdiYy4uNWExOGQ3
YjU2Nzc4N2U1MGE4NDQ4NmUwNzIyMDcyNWNhNzkzMTBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTM0NjEsOSArMzQ2MSwxMyBAQCB2b2lk
IFJlbmRlckJsb2NrRmxvdzo6YWRkRm9jdXNSaW5nUmVjdHNGb3JJbmxpbmVDaGlsZHJlbihWZWN0
b3I8TGF5b3V0UmVjdD4mIHJlYwogICAgIGZvciAoYXV0byBib3ggPSBJbmxpbmVJdGVyYXRvcjo6
Zmlyc3RSb290SW5saW5lQm94Rm9yKCp0aGlzKTsgYm94OyBib3gudHJhdmVyc2VOZXh0SW5saW5l
Qm94KCkpIHsKICAgICAgICAgYXV0byBsaW5lID0gYm94LT5saW5lKCk7CiAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIG1peGluZyBwaHlzaWNhbCBhbmQgbG9naWNhbCBjb29yZGluYXRlcy4KLSAg
ICAgICAgTGF5b3V0VW5pdCB0b3AgPSBzdGQ6Om1heChsaW5lLT50b3AoKSwgTGF5b3V0VW5pdChi
b3gtPnJlY3QoKS55KCkpKTsKLSAgICAgICAgTGF5b3V0VW5pdCBib3R0b20gPSBzdGQ6Om1pbihs
aW5lLT5ib3R0b20oKSwgTGF5b3V0VW5pdChib3gtPnJlY3QoKS5tYXhZKCkpKTsKLSAgICAgICAg
TGF5b3V0UmVjdCByZWN0IHsgTGF5b3V0VW5pdChhZGRpdGlvbmFsT2Zmc2V0LngoKSArIGJveC0+
cmVjdCgpLngoKSksIGFkZGl0aW9uYWxPZmZzZXQueSgpICsgdG9wLCBMYXlvdXRVbml0KGJveC0+
cmVjdCgpLndpZHRoKCkpLCBib3R0b20gLSB0b3AgfTsKKyAgICAgICAgYXV0byB1bmZsaXBwZWRW
aXN1YWxSZWN0ID0gYm94LT51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CisgICAgICAgIGF1dG8gdG9w
ID0gc3RkOjptYXgobGluZS0+dG9wKCksIExheW91dFVuaXQgeyB1bmZsaXBwZWRWaXN1YWxSZWN0
LnkoKSB9KTsKKyAgICAgICAgYXV0byBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5ib3R0b20oKSwg
TGF5b3V0VW5pdCB7IHVuZmxpcHBlZFZpc3VhbFJlY3QubWF4WSgpIH0pOworICAgICAgICBhdXRv
IHJlY3QgPSBMYXlvdXRSZWN0IHsgTGF5b3V0VW5pdCB7IGFkZGl0aW9uYWxPZmZzZXQueCgpICsg
dW5mbGlwcGVkVmlzdWFsUmVjdC54KCkgfQorICAgICAgICAgICAgLCBhZGRpdGlvbmFsT2Zmc2V0
LnkoKSArIHRvcAorICAgICAgICAgICAgLCBMYXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVj
dC53aWR0aCgpIH0KKyAgICAgICAgICAgICwgYm90dG9tIC0gdG9wIH07CiAgICAgICAgIGlmICgh
cmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZWN0cy5hcHBlbmQocmVjdCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAK
aW5kZXggOWFiOTk4ZTQxY2IwOGNmMGI2ZjkwZjEwZjEzYzRiODQ1N2VjOTM5Zi4uZjNkZmUwNDYw
YTAwNWEzNzFlNGUxYjAyMDI4M2ZhMWE5NDAwYjM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC03MjIsNyArNzIyLDcgQEAg
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRNYXNrRm9yVGV4dEZpbGxCb3goSW1hZ2VC
dWZmZXIqIG1hc2tJbWFnZSwgY29uc3QKICAgICAvLyB0aGUgcGFpbnRlciBpdCBzaG91bGQganVz
dCBtb2RpZnkgdGhlIGNsaXAuCiAgICAgUGFpbnRJbmZvIG1hc2tJbmZvKG1hc2tJbWFnZUNvbnRl
eHQsIExheW91dFJlY3QgeyBtYXNrUmVjdCB9LCBQYWludFBoYXNlOjpUZXh0Q2xpcCwgUGFpbnRC
ZWhhdmlvcjo6Rm9yY2VCbGFja1RleHQpOwogICAgIGlmIChpbmxpbmVCb3gpIHsKLSAgICAgICAg
YXV0byBwYWludE9mZnNldCA9IHNjcm9sbGVkUGFpbnRSZWN0LmxvY2F0aW9uKCkgLSB0b0xheW91
dFNpemUoTGF5b3V0UG9pbnQoaW5saW5lQm94LT5yZWN0KCkubG9jYXRpb24oKSkpOworICAgICAg
ICBhdXRvIHBhaW50T2Zmc2V0ID0gc2Nyb2xsZWRQYWludFJlY3QubG9jYXRpb24oKSAtIHRvTGF5
b3V0U2l6ZShMYXlvdXRQb2ludChpbmxpbmVCb3gtPnVuZmxpcHBlZFZpc3VhbFJlY3QoKS5sb2Nh
dGlvbigpKSk7CiAKICAgICAgICAgZm9yIChhdXRvIGJveCA9IGlubGluZUJveC0+Zmlyc3RMZWFm
Qm94KCksIGVuZCA9IGlubGluZUJveC0+ZW5kTGVhZkJveCgpOyBib3ggIT0gZW5kOyBib3gudHJh
dmVyc2VOZXh0T25MaW5lKCkpIHsKICAgICAgICAgICAgIGlmICghYm94LT5pc1RleHQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKaW5kZXggZTJiNGIwOWY1N2Rl
YjNhNDU5OGYzYmQwY2U2NzM0YjA5NzViMWM1Mi4uOWRmZWFkZTUyMzdmOWNkYzcxZDZmZmQyZjU5
ZjI0ZDI4ODRlOGJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5j
cHAKQEAgLTk2NSw3ICs5NjUsNyBAQCB2b2lkIFJlbmRlcklubGluZTo6cGFpbnRPdXRsaW5lKFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZgogICAgICAgICBM
YXlvdXRVbml0IHRvcCA9IHN0ZDo6bWF4KGxpbmUtPnRvcCgpLCBMYXlvdXRVbml0KGJveC0+bG9n
aWNhbFRvcCgpKSk7CiAgICAgICAgIExheW91dFVuaXQgYm90dG9tID0gc3RkOjptaW4obGluZS0+
Ym90dG9tKCksIExheW91dFVuaXQoYm94LT5sb2dpY2FsQm90dG9tKCkpKTsKICAgICAgICAgLy8g
RklYTUU6IFRoaXMgaXMgbWl4aW5nIHBoeXNpY2FsIGFuZCBsb2dpY2FsIGNvb3JkaW5hdGVzLgot
ICAgICAgICByZWN0cy5hcHBlbmQoeyBMYXlvdXRVbml0KGJveC0+cmVjdCgpLngoKSksIHRvcCwg
TGF5b3V0VW5pdChib3gtPmxvZ2ljYWxXaWR0aCgpKSwgYm90dG9tIC0gdG9wIH0pOworICAgICAg
ICByZWN0cy5hcHBlbmQoeyBMYXlvdXRVbml0KGJveC0+dW5mbGlwcGVkVmlzdWFsUmVjdCgpLngo
KSksIHRvcCwgTGF5b3V0VW5pdChib3gtPmxvZ2ljYWxXaWR0aCgpKSwgYm90dG9tIC0gdG9wIH0p
OwogICAgIH0KICAgICByZWN0cy5hcHBlbmQoTGF5b3V0UmVjdCgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCBiOTE5OGEwOGI0MWNiOWI5
NzllZTFhOGI5MDhhNTk1MzljNjhlYzAyLi4xZTZjMmY1ODMxOGNmNjQ2NWU5YTg0ZjcxOGI3ZTIz
Yjc4MWU5MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlu
ZUJyZWFrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIEludFJlY3QgUmVuZGVyTGluZUJyZWFrOjpsaW5lc0Jv
dW5kaW5nQm94KCkgY29uc3QKICAgICBpZiAoIXJ1bikKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHJ1bi0+cmVjdCgpKTsKKyAgICByZXR1cm4gZW5j
bG9zaW5nSW50UmVjdChydW4tPnVuZmxpcHBlZFZpc3VhbFJlY3QoKSk7CiB9CiAKIHZvaWQgUmVu
ZGVyTGluZUJyZWFrOjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0
IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKQEAgLTE1OCw3ICsxNTgsNyBA
QCB2b2lkIFJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJl
Y3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYQogICAgIGlmICghYm94KQogICAgICAgICByZXR1cm47
CiAKLSAgICBhdXRvIHJlY3QgPSBib3gtPnJlY3QoKTsKKyAgICBhdXRvIHJlY3QgPSBib3gtPnVu
ZmxpcHBlZFZpc3VhbFJlY3QoKTsKICAgICByZWN0cy5hcHBlbmQoZW5jbG9zaW5nSW50UmVjdChG
bG9hdFJlY3QoYWNjdW11bGF0ZWRPZmZzZXQgKyByZWN0LmxvY2F0aW9uKCksIHJlY3Quc2l6ZSgp
KSkpOwogfQogCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBSZW5kZXJMaW5lQnJlYWs6OmFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlZCkgY28KICAg
ICBpZiAoIWJveCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byByZWN0ID0gYm94LT5yZWN0
KCk7CisgICAgYXV0byByZWN0ID0gYm94LT51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CiAgICAgcXVh
ZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlY3QubG9jYXRpb24oKSwg
cmVjdC5zaXplKCkpLCBVc2VUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggZmE1MzFjNmI5M2NmMmEzMDk1NTNiMDVj
MGExZGFiMzgzYjcxMTkwNS4uZDhhNjE3NDgxNjE5YmMwMGEwOWZkNmE5ZTJlNjY2NDg2NzQ3ZmIy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMzEyLDcgKzMx
Miw3IEBAIFN0cmluZyBSZW5kZXJUZXh0OjpvcmlnaW5hbFRleHQoKSBjb25zdAogdm9pZCBSZW5k
ZXJUZXh0OjphYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91
dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIHJ1biA6
IElubGluZUl0ZXJhdG9yOjp0ZXh0Qm94ZXNGb3IoKnRoaXMpKSB7Ci0gICAgICAgIGF1dG8gcmVj
dCA9IHJ1bi5yZWN0KCk7CisgICAgICAgIGF1dG8gcmVjdCA9IHJ1bi51bmZsaXBwZWRWaXN1YWxS
ZWN0KCk7CiAgICAgICAgIHJlY3RzLmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChh
Y2N1bXVsYXRlZE9mZnNldCArIHJlY3QubG9jYXRpb24oKSwgcmVjdC5zaXplKCkpKSk7CiAgICAg
fQogfQpAQCAtMzk1LDcgKzM5NSw3IEBAIHN0YXRpYyBGbG9hdFJlY3QgYm91bmRhcmllc0ZvclRl
eHRSdW4oY29uc3QgSW5saW5lSXRlcmF0b3I6OlRleHRCb3gmIHJ1bikKICAgICBpZiAoaXM8U1ZH
SW5saW5lVGV4dEJveD4ocnVuLmxlZ2FjeUlubGluZUJveCgpKSkKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PFNWR0lubGluZVRleHRCb3g+KCpydW4ubGVnYWN5SW5saW5lQm94KCkpLmNhbGN1bGF0
ZUJvdW5kYXJpZXMoKTsKIAotICAgIHJldHVybiBydW4ucmVjdCgpOworICAgIHJldHVybiBydW4u
dW5mbGlwcGVkVmlzdWFsUmVjdCgpOwogfQogCiBzdGF0aWMgSW50UmVjdCBlbGxpcHNpc1JlY3RG
b3JUZXh0UnVuKGNvbnN0IElubGluZUl0ZXJhdG9yOjpUZXh0Qm94JiBydW4sIHVuc2lnbmVkIHN0
YXJ0LCB1bnNpZ25lZCBlbmQpCkBAIC00NzAsNyArNDcwLDcgQEAgc3RhdGljIEZsb2F0UmVjdCBs
b2NhbFF1YWRGb3JUZXh0UnVuKGNvbnN0IElubGluZUl0ZXJhdG9yOjpUZXh0Qm94JiBydW4sIHVu
c2lnbmUKICAgICBpZiAodXNlU2VsZWN0aW9uSGVpZ2h0KQogICAgICAgICByZXR1cm4gYm94U2Vs
ZWN0aW9uUmVjdDsKIAotICAgIGF1dG8gcmVjdCA9IHJ1bi5yZWN0KCk7CisgICAgYXV0byByZWN0
ID0gcnVuLnVuZmxpcHBlZFZpc3VhbFJlY3QoKTsKICAgICBpZiAocnVuLmlzSG9yaXpvbnRhbCgp
KSB7CiAgICAgICAgIGJveFNlbGVjdGlvblJlY3Quc2V0SGVpZ2h0KHJlY3QuaGVpZ2h0KCkpOwog
ICAgICAgICBib3hTZWxlY3Rpb25SZWN0LnNldFkocmVjdC55KCkpOwpAQCAtNjgyLDggKzY4Miw4
IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3NpdGlvbkZvclBvaW50KGNvbnN0IExh
eW91dFBvaW50JiBwb2ludCwgY29uc3QgUmVuCiAgICAgICAgICAgICBpZiAocG9pbnRCbG9ja0Rp
cmVjdGlvbiA8IGJvdHRvbSB8fCAoYmxvY2tzQXJlRmxpcHBlZCAmJiBwb2ludEJsb2NrRGlyZWN0
aW9uID09IGJvdHRvbSkpIHsKICAgICAgICAgICAgICAgICBTaG91bGRBZmZpbml0eUJlRG93bnN0
cmVhbSBzaG91bGRBZmZpbml0eUJlRG93bnN0cmVhbTsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQotICAgICAgICAgICAgICAgIGlmIChwb2ludExpbmVEaXJlY3Rpb24gIT0gcnVuLT5sb2dpY2Fs
TGVmdCgpICYmIHBvaW50LngoKSA8IHJ1bi0+cmVjdCgpLngoKSArIHJ1bi0+bG9naWNhbFdpZHRo
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGhhbGYgPSBydW4tPnJlY3QoKS54KCkgKyBy
dW4tPmxvZ2ljYWxXaWR0aCgpIC8gMjsKKyAgICAgICAgICAgICAgICBpZiAocG9pbnRMaW5lRGly
ZWN0aW9uICE9IHJ1bi0+bG9naWNhbExlZnQoKSAmJiBwb2ludC54KCkgPCBydW4tPnVuZmxpcHBl
ZFZpc3VhbFJlY3QoKS54KCkgKyBydW4tPmxvZ2ljYWxXaWR0aCgpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGludCBoYWxmID0gcnVuLT51bmZsaXBwZWRWaXN1YWxSZWN0KCkueCgpICsgcnVuLT5s
b2dpY2FsV2lkdGgoKSAvIDI7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gYWZmaW5pdHkgPSBw
b2ludC54KCkgPCBoYWxmID8gQWZmaW5pdHk6OkRvd25zdHJlYW0gOiBBZmZpbml0eTo6VXBzdHJl
YW07CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVWaXNpYmxlUG9zaXRpb24ocnVu
LT5vZmZzZXRGb3JQb3NpdGlvbihwb2ludExpbmVEaXJlY3Rpb24pICsgcnVuLT5zdGFydCgpLCBh
ZmZpbml0eSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTI3NSw3ICsxMjc1LDcgQEAgSW50UG9p
bnQgUmVuZGVyVGV4dDo6Zmlyc3RSdW5Mb2NhdGlvbigpIGNvbnN0CiAgICAgYXV0byBmaXJzdCA9
IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hGb3IoKnRoaXMpOwogICAgIGlmICghZmlyc3Qp
CiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIEludFBvaW50KGZpcnN0LT5yZWN0KCku
bG9jYXRpb24oKSk7CisgICAgcmV0dXJuIEludFBvaW50KGZpcnN0LT51bmZsaXBwZWRWaXN1YWxS
ZWN0KCkubG9jYXRpb24oKSk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dDo6c2V0U2VsZWN0aW9uU3Rh
dGUoSGlnaGxpZ2h0U3RhdGUgc3RhdGUpCkBAIC0xNTc3LDEzICsxNTc3LDEzIEBAIGZsb2F0IFJl
bmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9udENh
c2NhZGUmIGYsIGZsb2F0CiAKIEludFJlY3QgUmVuZGVyVGV4dDo6bGluZXNCb3VuZGluZ0JveCgp
IGNvbnN0CiB7Ci0gICAgYXV0byBmaXJzdCA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRCb3hG
b3IoKnRoaXMpOwotICAgIGlmICghZmlyc3QpCisgICAgYXV0byBmaXJzdFRleHRCb3ggPSBJbmxp
bmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94Rm9yKCp0aGlzKTsKKyAgICBpZiAoIWZpcnN0VGV4dEJv
eCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYm91bmRpbmdCb3ggPSBmaXJzdC0+
cmVjdCgpOwotICAgIGZvciAoYXV0byBib3ggPSBmaXJzdDsgKytib3g7KQotICAgICAgICBib3Vu
ZGluZ0JveC51bml0ZUV2ZW5JZkVtcHR5KGJveC0+cmVjdCgpKTsKKyAgICBhdXRvIGJvdW5kaW5n
Qm94ID0gZmlyc3RUZXh0Qm94LT51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CisgICAgZm9yIChhdXRv
IHRleHRCb3ggPSBmaXJzdFRleHRCb3g7ICsrdGV4dEJveDspCisgICAgICAgIGJvdW5kaW5nQm94
LnVuaXRlRXZlbklmRW1wdHkodGV4dEJveC0+dW5mbGlwcGVkVmlzdWFsUmVjdCgpKTsKIAogICAg
IHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KGJvdW5kaW5nQm94KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCAzODY3N2VmY2E3MjQ4ODVl
YjNmM2ZhZjcxYmExZmFhOTRiMTRmNWFlLi4yZmMyYTdmYmUyNzIyNjZjMzk0NmY0ZGNjOTdjMjk5
ZjAxNGU4OWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJl
ZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuY3BwCkBAIC01NDIsNyArNTQyLDcgQEAgdm9pZCB3cml0ZShUZXh0U3RyZWFtJiB0cywgY29u
c3QgUmVuZGVyT2JqZWN0JiBvLCBPcHRpb25TZXQ8UmVuZGVyQXNUZXh0RmxhZz4gYmUKIHsKICAg
ICBhdXRvIHdyaXRlVGV4dFJ1biA9IFsmXShhdXRvJiB0ZXh0UmVuZGVyZXIsIGF1dG8mIHRleHRS
dW4pCiAgICAgewotICAgICAgICBhdXRvIHJlY3QgPSB0ZXh0UnVuLnJlY3QoKTsKKyAgICAgICAg
YXV0byByZWN0ID0gdGV4dFJ1bi51bmZsaXBwZWRWaXN1YWxSZWN0KCk7CiAgICAgICAgIGludCB4
ID0gcmVjdC54KCk7CiAgICAgICAgIGludCB5ID0gcmVjdC55KCk7CiAgICAgICAgIC8vIEZJWE1F
OiBVc2Ugbm9uLWxvZ2ljYWwgd2lkdGguIHdlYmtpdC5vcmcvYi8yMDY4MDkuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRCb3hQYWludGVyLmNwcAppbmRleCBlMzZjNDU4YjYzOWU3NTYy
ZGU3NzFhMDk1Y2RlZDVlM2EzYmJlZjFlLi5mYTRkYzk2OTNkMzMwMjA4M2VkMDVkMWY3NjFlMTcw
ZjY1Mzk0ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBh
aW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5j
cHAKQEAgLTU3Myw3ICs1NzMsNyBAQCBGbG9hdFJlY3QgVGV4dEJveFBhaW50ZXI6OmNvbXB1dGVQ
YWludFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIGxvY2FsUGFpbnRP
ZmZzZXQubW92ZSgwLCBtX3N0eWxlLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyAwIDogLXRl
eHRCb3goKS5sb2dpY2FsSGVpZ2h0KCkpOwogCiAgICAgYXV0byBsb2NhdGlvbkluY2x1ZGluZ0Zs
aXBwaW5nID0gWyZdKCkgLT4gRmxvYXRQb2ludCB7Ci0gICAgICAgIGF1dG8gcmVjdCA9IHRleHRC
b3goKS5yZWN0KCk7CisgICAgICAgIGF1dG8gcmVjdCA9IHRleHRCb3goKS51bmZsaXBwZWRWaXN1
YWxSZWN0KCk7CiAgICAgICAgIGlmICghbV9zdHlsZS5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9k
ZSgpKQogICAgICAgICAgICAgcmV0dXJuIHJlY3QubG9jYXRpb24oKTsKICAgICAgICAgYXV0byYg
YmxvY2sgPSB0ZXh0Qm94KCkubGluZSgpLT5jb250YWluaW5nQmxvY2soKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453492</attachid>
            <date>2022-03-01 06:14:23 -0800</date>
            <delta_ts>2022-03-01 08:20:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237304-20220301061422.patch</filename>
            <type>text/plain</type>
            <size>31051</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU1ZjFiYWIwZWRiMzNm
MTBlMjlmYTdmYmRhMTY0OTc0OWE2YTE2Ni4uYTgxZTdlODMwMzQ3YjMwOWE2ZmU5NzgwYjYwOTEz
MDk4Y2ZjODkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDIyLTAyLTI4ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbSUZDXVtJbnRlZ3JhdGlvbl0g
SW5saW5lSXRlcmF0b3I6OkJveDo6cmVjdCgpIHJldHVybnMgdGhlIHVuZmxpcHBlZCB2aXN1YWwg
cmVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3
MzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVu
YW1lIElubGluZUl0ZXJhdG9yOjpCb3g6OnJlY3QoKSB0byB2aXN1YWxSZWN0SWdub3JpbmdCbG9j
a0RpcmVjdGlvbigpLgorICAgICAgICBUaGlzIGlzIHRoZSB1bmZsaXBwZWQgdmVyc2lvbiBvZiB0
aGUgdmlzdWFsIHJlY3QuIEl0J3Mgbm8gbG9uZ2VyIGxvZ2ljYWwgYnV0CisgICAgICAgIHdoZW4g
dGhlIHdyaXRpbmcgbW9kZSBzZXRzIHJpZ2h0LXRvLWxlZnQvYm90dG9tLXRvLXRvcCBibG9jayBk
aXJlY3Rpb24sIGl0J3Mgbm90IHlldCB2aXN1YWwgZWl0aGVyLgorICAgICAgICBJdCdsbCBoZWxw
IHRvIGluZGVudGlmeSBjYWxsc2l0ZXMgd2hlcmUgd2UgYWN0dWFsbHkgbmVlZCB0aGUgZmxpcHBl
ZCB2ZXJzaW9uIG9mIHRoaXMgdmlzdWFsIHJlY3QuCisKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlCb3guaDoKKyAgICAgICAg
KFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6dW5mbGlwcGVkVmlzdWFsUmVjdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OnRvcCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OmJvdHRvbSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OmxlZnQgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lRGlzcGxheTo6Qm94OjpyaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVEaXNwbGF5OjpCb3g6OndpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZURpc3BsYXk6OkJveDo6aGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZURpc3BsYXk6OkJveDo6bW92ZVZlcnRpY2FsbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
RGlzcGxheTo6Qm94Ojptb3ZlSG9yaXpvbnRhbGx5KToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZURpc3BsYXk6OkJveDo6c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5
OjpCb3g6OnNldFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6
c2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6c2V0Qm90dG9t
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZURpc3BsYXk6OkJveDo6c2V0UmVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbmxpbmVEaXNwbGF5OjpCb3g6OkJveCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVEaXNwbGF5OjpCb3g6OnRydW5jYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZURpc3BsYXk6OkJveDo6cmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXI6OmFkanVzdFZpc3VhbEdlb21ldHJ5Rm9yRGlzcGxheUJveCk6CisgICAgICAgICogbGF5
b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bmxpbmVJdGVyYXRvcjo6Qm94Ojpsb2dpY2FsVG9wIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklubGluZUl0ZXJhdG9yOjpCb3g6OmxvZ2ljYWxCb3R0b20gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6bG9naWNhbExlZnQgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6bG9naWNhbFJpZ2h0IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3g6OmxvZ2ljYWxXaWR0aCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmxpbmVJdGVyYXRvcjo6Qm94Ojpsb2dpY2FsSGVpZ2h0IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3g6OnVuZmxpcHBlZFZpc3Vh
bFJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OkJveDo6cmVj
dCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0
ZXJhdG9yQm94TGVnYWN5UGF0aC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6
OkJveExlZ2FjeVBhdGg6OnVuZmxpcHBlZFZpc3VhbFJlY3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5saW5lSXRlcmF0b3I6OkJveExlZ2FjeVBhdGg6OnJlY3QgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveE1vZGVyblBh
dGguaDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJhdG9yOjpCb3hNb2Rlcm5QYXRoOjp1
bmZsaXBwZWRWaXN1YWxSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUl0ZXJh
dG9yOjpCb3hNb2Rlcm5QYXRoOjpjcmVhdGVUZXh0UnVuIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUl0ZXJhdG9yOjpCb3hNb2Rlcm5QYXRoOjpyZWN0IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpzaG93SW5saW5lQ29udGVu
dCk6CisgICAgICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91
dDo6Zmlyc3RJbmxpbmVCb3hSZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpjb2xsZWN0SW5saW5lQm94UmVjdHMgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVMYXlvdXQ6OmhpdFRlc3QpOgor
ICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6c2hvd0lubGluZVRyZWVBbmRSdW5zKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvSW5saW5lQm94UGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVC
b3hQYWludGVyOjpwYWludE1hc2spOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lQm94UGFpbnRl
cjo6cGFpbnREZWNvcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVCb3hQYWludGVy
OjpwYWludEZpbGxMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmFkZEZvY3VzUmluZ1JlY3Rz
Rm9ySW5saW5lQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRN
YXNrRm9yVGV4dEZpbGxCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OnBpeGVsU25hcEJhY2tncm91bmRJbWFnZUdlb21ldHJ5Rm9yUGFpbnRpbmcpOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVySW5saW5lOjpwYWludE91dGxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMaW5lQnJlYWsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGluZUJyZWFrOjps
aW5lc0JvdW5kaW5nQm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpbmVCcmVh
azo6YWJzb2x1dGVSZWN0cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaW5lQnJl
YWs6OmFic29sdXRlUXVhZHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmFic29sdXRlUmVjdHMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Ym91bmRhcmllc0ZvclRleHRSdW4pOgorICAgICAgICAoV2Vi
Q29yZTo6bG9jYWxRdWFkRm9yVGV4dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
OjpmaXJzdFJ1bkxvY2F0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6
OmxpbmVzQm91bmRpbmdCb3ggY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUcmVl
QXNUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OndyaXRlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvVGV4dEJveFBhaW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEJveFBhaW50ZXI6
OmNvbXB1dGVQYWludFJlY3QpOgorCiAyMDIyLTAyLTI0ICBNYXR0IFdvb2Ryb3cgIDxtYXR0d29v
ZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgZ3JpZCBSVEwgaGFuZGxpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L2Rpc3BsYXkvSW5saW5lRGlzcGxheUJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmgKaW5kZXggYTJi
YzE4YzFmNGRmNjljNWZmNTljOTA3NGZiNjY0OWM4ZDhjY2FjNi4uNjVmNzIxMjkwZjBiMTdlMTEy
YWJjYWJjZmI2YzI0ZmY2ZTk3YjhlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Qm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Qm94LmgKQEAgLTk4LDI1ICs5OCwyNSBAQCBzdHJ1Y3QgQm94IHsKIAog
ICAgIGJvb2wgaGFzQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ29udGVudDsgfQogCi0g
ICAgY29uc3QgRmxvYXRSZWN0JiByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9waHlzaWNhbFJlY3Q7
IH0KKyAgICBjb25zdCBGbG9hdFJlY3QmIHZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV91bmZsaXBwZWRWaXN1YWxSZWN0OyB9CiAgICAgY29uc3QgRmxv
YXRSZWN0JiBpbmtPdmVyZmxvdygpIGNvbnN0IHsgcmV0dXJuIG1faW5rT3ZlcmZsb3c7IH0KIAot
ICAgIGZsb2F0IHRvcCgpIGNvbnN0IHsgcmV0dXJuIHJlY3QoKS55KCk7IH0KLSAgICBmbG9hdCBi
b3R0b20oKSBjb25zdCB7IHJldHVybiByZWN0KCkubWF4WSgpOyB9Ci0gICAgZmxvYXQgbGVmdCgp
IGNvbnN0IHsgcmV0dXJuIHJlY3QoKS54KCk7IH0KLSAgICBmbG9hdCByaWdodCgpIGNvbnN0IHsg
cmV0dXJuIHJlY3QoKS5tYXhYKCk7IH0KKyAgICBmbG9hdCB0b3AoKSBjb25zdCB7IHJldHVybiB2
aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpLnkoKTsgfQorICAgIGZsb2F0IGJvdHRv
bSgpIGNvbnN0IHsgcmV0dXJuIHZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkubWF4
WSgpOyB9CisgICAgZmxvYXQgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIHZpc3VhbFJlY3RJZ25vcmlu
Z0Jsb2NrRGlyZWN0aW9uKCkueCgpOyB9CisgICAgZmxvYXQgcmlnaHQoKSBjb25zdCB7IHJldHVy
biB2aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpLm1heFgoKTsgfQogCi0gICAgZmxv
YXQgd2lkdGgoKSBjb25zdCB7IHJldHVybiByZWN0KCkud2lkdGgoKTsgfQotICAgIGZsb2F0IGhl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIHJlY3QoKS5oZWlnaHQoKTsgfQorICAgIGZsb2F0IHdpZHRo
KCkgY29uc3QgeyByZXR1cm4gdmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKS53aWR0
aCgpOyB9CisgICAgZmxvYXQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gdmlzdWFsUmVjdElnbm9y
aW5nQmxvY2tEaXJlY3Rpb24oKS5oZWlnaHQoKTsgfQogCiAgICAgdm9pZCBtb3ZlVmVydGljYWxs
eShmbG9hdCBvZmZzZXQpCiAgICAgewotICAgICAgICBtX3BoeXNpY2FsUmVjdC5tb3ZlKHsgeyB9
LCBvZmZzZXQgfSk7CisgICAgICAgIG1fdW5mbGlwcGVkVmlzdWFsUmVjdC5tb3ZlKHsgeyB9LCBv
ZmZzZXQgfSk7CiAgICAgICAgIG1faW5rT3ZlcmZsb3cubW92ZSh7IHsgfSwgb2Zmc2V0IH0pOwog
ICAgIH0KICAgICB2b2lkIG1vdmVIb3Jpem9udGFsbHkoZmxvYXQgb2Zmc2V0KQogICAgIHsKLSAg
ICAgICAgbV9waHlzaWNhbFJlY3QubW92ZSh7IG9mZnNldCwgeyB9IH0pOworICAgICAgICBtX3Vu
ZmxpcHBlZFZpc3VhbFJlY3QubW92ZSh7IG9mZnNldCwgeyB9IH0pOwogICAgICAgICBtX2lua092
ZXJmbG93Lm1vdmUoeyBvZmZzZXQsIHsgfSB9KTsKICAgICB9CiAgICAgdm9pZCBhZGp1c3RJbmtP
dmVyZmxvdyhjb25zdCBGbG9hdFJlY3QmIGNoaWxkQm9yZGVyQm94KSB7IHJldHVybiBtX2lua092
ZXJmbG93LnVuaXRlRXZlbklmRW1wdHkoY2hpbGRCb3JkZXJCb3gpOyB9CkBAIC0xMjQsMzAgKzEy
NCwzMCBAQCBzdHJ1Y3QgQm94IHsKICAgICB2b2lkIHNldExlZnQoZmxvYXQgcHlzaWNhbExlZnQp
CiAgICAgewogICAgICAgICBhdXRvIG9mZnNldCA9IHB5c2ljYWxMZWZ0IC0gbGVmdCgpOwotICAg
ICAgICBtX3BoeXNpY2FsUmVjdC5zZXRYKHB5c2ljYWxMZWZ0KTsKKyAgICAgICAgbV91bmZsaXBw
ZWRWaXN1YWxSZWN0LnNldFgocHlzaWNhbExlZnQpOwogICAgICAgICBtX2lua092ZXJmbG93LnNl
dFgobV9pbmtPdmVyZmxvdy54KCkgKyBvZmZzZXQpOwogICAgIH0KICAgICB2b2lkIHNldFJpZ2h0
KGZsb2F0IHBoeXNpY2FsUmlnaHQpCiAgICAgewogICAgICAgICBhdXRvIG9mZnNldCA9IHBoeXNp
Y2FsUmlnaHQgLSByaWdodCgpOwotICAgICAgICBtX3BoeXNpY2FsUmVjdC5zaGlmdE1heFhFZGdl
VG8ocGh5c2ljYWxSaWdodCk7CisgICAgICAgIG1fdW5mbGlwcGVkVmlzdWFsUmVjdC5zaGlmdE1h
eFhFZGdlVG8ocGh5c2ljYWxSaWdodCk7CiAgICAgICAgIG1faW5rT3ZlcmZsb3cuc2hpZnRNYXhY
RWRnZVRvKG1faW5rT3ZlcmZsb3cubWF4WCgpICsgb2Zmc2V0KTsKICAgICB9CiAgICAgdm9pZCBz
ZXRUb3AoZmxvYXQgcGh5c2ljYWxUb3ApCiAgICAgewogICAgICAgICBhdXRvIG9mZnNldCA9IHBo
eXNpY2FsVG9wIC0gdG9wKCk7Ci0gICAgICAgIG1fcGh5c2ljYWxSZWN0LnNldFkocGh5c2ljYWxU
b3ApOworICAgICAgICBtX3VuZmxpcHBlZFZpc3VhbFJlY3Quc2V0WShwaHlzaWNhbFRvcCk7CiAg
ICAgICAgIG1faW5rT3ZlcmZsb3cuc2hpZnRNYXhZRWRnZVRvKG1faW5rT3ZlcmZsb3cueSgpICsg
b2Zmc2V0KTsKICAgICB9CiAgICAgdm9pZCBzZXRCb3R0b20oZmxvYXQgcGh5c2ljYWxCb3R0b20p
CiAgICAgewogICAgICAgICBhdXRvIG9mZnNldCA9IHBoeXNpY2FsQm90dG9tIC0gYm90dG9tKCk7
Ci0gICAgICAgIG1fcGh5c2ljYWxSZWN0LnNoaWZ0TWF4WUVkZ2VUbyhwaHlzaWNhbEJvdHRvbSk7
CisgICAgICAgIG1fdW5mbGlwcGVkVmlzdWFsUmVjdC5zaGlmdE1heFlFZGdlVG8ocGh5c2ljYWxC
b3R0b20pOwogICAgICAgICBtX2lua092ZXJmbG93LnNoaWZ0TWF4WUVkZ2VUbyhtX2lua092ZXJm
bG93Lm1heFkoKSArIG9mZnNldCk7CiAgICAgfQogICAgIHZvaWQgc2V0UmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgaW5rT3ZlcmZsb3cpCiAgICAgewotICAgICAg
ICBtX3BoeXNpY2FsUmVjdCA9IHJlY3Q7CisgICAgICAgIG1fdW5mbGlwcGVkVmlzdWFsUmVjdCA9
IHJlY3Q7CiAgICAgICAgIG1faW5rT3ZlcmZsb3cgPSBpbmtPdmVyZmxvdzsKICAgICB9CiAgICAg
dm9pZCBzZXRIYXNDb250ZW50KCkgeyBtX2hhc0NvbnRlbnQgPSB0cnVlOyB9CkBAIC0xNzgsNyAr
MTc4LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBUeXBlIG1fdHlwZSB7IFR5cGU6OkdlbmVyaWNJ
bmxpbmVMZXZlbEJveCB9OwogICAgIENoZWNrZWRSZWY8Y29uc3QgTGF5b3V0OjpCb3g+IG1fbGF5
b3V0Qm94OwogICAgIFVCaURpTGV2ZWwgbV9iaWRpTGV2ZWwgeyBVQklESV9ERUZBVUxUX0xUUiB9
OwotICAgIEZsb2F0UmVjdCBtX3BoeXNpY2FsUmVjdDsKKyAgICBGbG9hdFJlY3QgbV91bmZsaXBw
ZWRWaXN1YWxSZWN0OwogICAgIEZsb2F0UmVjdCBtX2lua092ZXJmbG93OwogICAgIGJvb2wgbV9o
YXNDb250ZW50IDogMTsKICAgICBib29sIG1faXNGaXJzdEZvckxheW91dEJveCA6IDE7CkBAIC0x
OTIsNyArMTkyLDcgQEAgaW5saW5lIEJveDo6Qm94KHNpemVfdCBsaW5lSW5kZXgsIFR5cGUgdHlw
ZSwgY29uc3QgTGF5b3V0OjpCb3gmIGxheW91dEJveCwgVUJpRGkKICAgICAsIG1fdHlwZSh0eXBl
KQogICAgICwgbV9sYXlvdXRCb3gobGF5b3V0Qm94KQogICAgICwgbV9iaWRpTGV2ZWwoYmlkaUxl
dmVsKQotICAgICwgbV9waHlzaWNhbFJlY3QocGh5c2ljYWxSZWN0KQorICAgICwgbV91bmZsaXBw
ZWRWaXN1YWxSZWN0KHBoeXNpY2FsUmVjdCkKICAgICAsIG1faW5rT3ZlcmZsb3coaW5rT3ZlcmZs
b3cpCiAgICAgLCBtX2hhc0NvbnRlbnQoaGFzQ29udGVudCkKICAgICAsIG1faXNGaXJzdEZvckxh
eW91dEJveChwb3NpdGlvbldpdGhpbklubGluZUxldmVsQm94LmNvbnRhaW5zKFBvc2l0aW9uV2l0
aGluSW5saW5lTGV2ZWxCb3g6OkZpcnN0KSkKQEAgLTIxMyw4ICsyMTMsOCBAQCBpbmxpbmUgQm94
OjpUZXh0OjpUZXh0KHNpemVfdCBzdGFydCwgc2l6ZV90IGxlbmd0aCwgY29uc3QgU3RyaW5nJiBv
cmlnaW5hbENvbnRlbgogCiBpbmxpbmUgdm9pZCBCb3g6OnRydW5jYXRlKGZsb2F0IHRydW5jYXRl
ZHdpZHRoKQogewotICAgIG1fcGh5c2ljYWxSZWN0LnNldFdpZHRoKHRydW5jYXRlZHdpZHRoKTsK
LSAgICBtX2lua092ZXJmbG93LnNoaWZ0TWF4WEVkZ2VUbyhtX3BoeXNpY2FsUmVjdC5tYXhZKCkp
OworICAgIG1fdW5mbGlwcGVkVmlzdWFsUmVjdC5zZXRXaWR0aCh0cnVuY2F0ZWR3aWR0aCk7Cisg
ICAgbV9pbmtPdmVyZmxvdy5zaGlmdE1heFhFZGdlVG8obV91bmZsaXBwZWRWaXN1YWxSZWN0Lm1h
eFkoKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3Bs
YXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmNwcAppbmRleCBmY2Q2ZmNjNmIxYzg5MDVm
OWExZTIxNzU4YzllY2RlYzFiMGU5MzZkLi42OTdjMDRhYzQxOWNkNzFiMWJiZjY3NmQxYTI1YTky
ODMxYmViMjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxh
eS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC01MjYsMTMgKzUyNiwxMyBAQCB2
b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6YWRqdXN0VmlzdWFsR2VvbWV0cnlGb3JE
aXNwbGF5Qm94KHNpemVfdCBkaXNwbAogICAgIGFmdGVySW5saW5lQm94Q29udGVudCgpOwogCiAg
ICAgYXV0byBjb21wdXRlSW5rT3ZlcmZsb3cgPSBbJl0gewotICAgICAgICBhdXRvIGlua092ZXJm
bG93ID0gRmxvYXRSZWN0IHsgZGlzcGxheUJveC5yZWN0KCkgfTsKKyAgICAgICAgYXV0byBpbmtP
dmVyZmxvdyA9IEZsb2F0UmVjdCB7IGRpc3BsYXlCb3gudmlzdWFsUmVjdElnbm9yaW5nQmxvY2tE
aXJlY3Rpb24oKSB9OwogICAgICAgICBtX2NvbnRlbnRIYXNJbmtPdmVyZmxvdyA9IGNvbXB1dGVC
b3hTaGFkb3dJbmtPdmVyZmxvdyghbV9saW5lSW5kZXggPyBsYXlvdXRCb3guZmlyc3RMaW5lU3R5
bGUoKSA6IGxheW91dEJveC5zdHlsZSgpLCBpbmtPdmVyZmxvdykgfHwgbV9jb250ZW50SGFzSW5r
T3ZlcmZsb3c7CiAgICAgICAgIGRpc3BsYXlCb3guYWRqdXN0SW5rT3ZlcmZsb3coaW5rT3ZlcmZs
b3cpOwogICAgIH07CiAgICAgY29tcHV0ZUlua092ZXJmbG93KCk7CiAKLSAgICBzZXRJbmxpbmVC
b3hHZW9tZXRyeShsYXlvdXRCb3gsIGRpc3BsYXlCb3gucmVjdCgpLCBpc0ZpcnN0Qm94KTsKKyAg
ICBzZXRJbmxpbmVCb3hHZW9tZXRyeShsYXlvdXRCb3gsIGRpc3BsYXlCb3gudmlzdWFsUmVjdEln
bm9yaW5nQmxvY2tEaXJlY3Rpb24oKSwgaXNGaXJzdEJveCk7CiAgICAgaWYgKGxpbmVCb3guaW5s
aW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94KS5oYXNDb250ZW50KCkpCiAgICAgICAg
IGRpc3BsYXlCb3guc2V0SGFzQ29udGVudCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3guaAppbmRleCA4MTNmNWIwZTY1
OTAzNDEzZmY0NjJlNDllMWY4OTM3ODE4NjM2YzdlLi42NmI5Y2M4MDhiYjIyOWE1NjQ5NDhkZGYy
ZjllZjk0ZjJmMjAyMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdy
YXRpb24vSW5saW5lSXRlcmF0b3JCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50
ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3guaApAQCAtNjAsMTQgKzYwLDE0IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzSW5saW5lQm94KCkgY29uc3Q7CiAgICAgYm9vbCBpc1Jvb3RJbmxpbmVCb3go
KSBjb25zdDsKIAotICAgIEZsb2F0UmVjdCByZWN0KCkgY29uc3Q7CisgICAgRmxvYXRSZWN0IHZp
c3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkgY29uc3Q7CiAKLSAgICBmbG9hdCBsb2dp
Y2FsVG9wKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsKCkgPyByZWN0KCkueSgpIDogcmVj
dCgpLngoKTsgfQotICAgIGZsb2F0IGxvZ2ljYWxCb3R0b20oKSBjb25zdCB7IHJldHVybiBpc0hv
cml6b250YWwoKSA/IHJlY3QoKS5tYXhZKCkgOiByZWN0KCkubWF4WCgpOyB9Ci0gICAgZmxvYXQg
bG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWwoKSA/IHJlY3QoKS54KCkg
OiByZWN0KCkueSgpOyB9Ci0gICAgZmxvYXQgbG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4g
aXNIb3Jpem9udGFsKCkgPyByZWN0KCkubWF4WCgpIDogcmVjdCgpLm1heFkoKTsgfQotICAgIGZs
b2F0IGxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGlzSG9yaXpvbnRhbCgpID8gcmVjdCgp
LndpZHRoKCkgOiByZWN0KCkuaGVpZ2h0KCk7IH0KLSAgICBmbG9hdCBsb2dpY2FsSGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsKCkgPyByZWN0KCkuaGVpZ2h0KCkgOiByZWN0KCku
d2lkdGgoKTsgfQorICAgIGZsb2F0IGxvZ2ljYWxUb3AoKSBjb25zdCB7IHJldHVybiBpc0hvcml6
b250YWwoKSA/IHZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkueSgpIDogdmlzdWFs
UmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKS54KCk7IH0KKyAgICBmbG9hdCBsb2dpY2FsQm90
dG9tKCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsKCkgPyB2aXN1YWxSZWN0SWdub3JpbmdC
bG9ja0RpcmVjdGlvbigpLm1heFkoKSA6IHZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9u
KCkubWF4WCgpOyB9CisgICAgZmxvYXQgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBpc0hv
cml6b250YWwoKSA/IHZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkueCgpIDogdmlz
dWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKS55KCk7IH0KKyAgICBmbG9hdCBsb2dpY2Fs
UmlnaHQoKSBjb25zdCB7IHJldHVybiBpc0hvcml6b250YWwoKSA/IHZpc3VhbFJlY3RJZ25vcmlu
Z0Jsb2NrRGlyZWN0aW9uKCkubWF4WCgpIDogdmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rp
b24oKS5tYXhZKCk7IH0KKyAgICBmbG9hdCBsb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBp
c0hvcml6b250YWwoKSA/IHZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkud2lkdGgo
KSA6IHZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkuaGVpZ2h0KCk7IH0KKyAgICBm
bG9hdCBsb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gaXNIb3Jpem9udGFsKCkgPyB2aXN1
YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpLmhlaWdodCgpIDogdmlzdWFsUmVjdElnbm9y
aW5nQmxvY2tEaXJlY3Rpb24oKS53aWR0aCgpOyB9CiAKICAgICBib29sIGlzSG9yaXpvbnRhbCgp
IGNvbnN0OwogICAgIGJvb2wgaXNMaW5lQnJlYWsoKSBjb25zdDsKQEAgLTE4MywxMCArMTgzLDEw
IEBAIGlubGluZSBib29sIEJveDo6aXNSb290SW5saW5lQm94KCkgY29uc3QKICAgICB9KTsKIH0K
IAotaW5saW5lIEZsb2F0UmVjdCBCb3g6OnJlY3QoKSBjb25zdAoraW5saW5lIEZsb2F0UmVjdCBC
b3g6OnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkgY29uc3QKIHsKICAgICByZXR1
cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7Ci0gICAgICAg
IHJldHVybiBwYXRoLnJlY3QoKTsKKyAgICAgICAgcmV0dXJuIHBhdGgudmlzdWFsUmVjdElnbm9y
aW5nQmxvY2tEaXJlY3Rpb24oKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVnYWN5UGF0aC5oIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TGVnYWN5
UGF0aC5oCmluZGV4IGI1OWFiODBlOGNjMTI0ZDA5NWE1YjExM2ExOWM1NzZmYzFlYmE4NTUuLmU1
ZDkzY2I4ZDQ2OGUxZTMzMTQ4YzE3YTJlOTliMmFkNjEwZmM0ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRvckJveExlZ2FjeVBhdGgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JC
b3hMZWdhY3lQYXRoLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbmxp
bmVCb3goKSBjb25zdCB7IHJldHVybiBtX2lubGluZUJveC0+aXNJbmxpbmVGbG93Qm94KCk7IH0K
ICAgICBib29sIGlzUm9vdElubGluZUJveCgpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQm94LT5p
c1Jvb3RJbmxpbmVCb3goKTsgfQogCi0gICAgRmxvYXRSZWN0IHJlY3QoKSBjb25zdCB7IHJldHVy
biBtX2lubGluZUJveC0+ZnJhbWVSZWN0KCk7IH0KKyAgICBGbG9hdFJlY3QgdmlzdWFsUmVjdEln
bm9yaW5nQmxvY2tEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2lubGluZUJveC0+ZnJhbWVS
ZWN0KCk7IH0KIAogICAgIGJvb2wgaXNIb3Jpem9udGFsKCkgY29uc3QgeyByZXR1cm4gbV9pbmxp
bmVCb3gtPmlzSG9yaXpvbnRhbCgpOyB9CiAgICAgYm9vbCBpc0xpbmVCcmVhaygpIGNvbnN0IHsg
cmV0dXJuIG1faW5saW5lQm94LT5pc0xpbmVCcmVhaygpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hNb2Rlcm5QYXRoLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vSW5saW5lSXRlcmF0b3JCb3hNb2Rl
cm5QYXRoLmgKaW5kZXggZGZiYzIyZDhlMWFkMGMyMWNlNTEzMTc4MzdjZDU4NjIxZTg0MjhkZi4u
ZGZiMGFmZWIyYTY3NmY5ZTRmMzhmOTFmNjZjZTZmYTYyY2RmNDhhOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0lubGluZUl0ZXJhdG9yQm94TW9kZXJuUGF0
aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9JbmxpbmVJdGVyYXRv
ckJveE1vZGVyblBhdGguaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0lu
bGluZUJveCgpIGNvbnN0IHsgcmV0dXJuIGJveCgpLmlzSW5saW5lQm94KCk7IH0KICAgICBib29s
IGlzUm9vdElubGluZUJveCgpIGNvbnN0IHsgcmV0dXJuIGJveCgpLmlzUm9vdElubGluZUJveCgp
OyB9CiAKLSAgICBGbG9hdFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0dXJuIGJveCgpLnJlY3QoKTsg
fQorICAgIEZsb2F0UmVjdCB2aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpIGNvbnN0
IHsgcmV0dXJuIGJveCgpLnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCk7IH0KIAog
ICAgIGJvb2wgaXNIb3Jpem9udGFsKCkgY29uc3QgeyByZXR1cm4gYm94KCkuaXNIb3Jpem9udGFs
KCk7IH0KICAgICBib29sIGlzTGluZUJyZWFrKCkgY29uc3QgeyByZXR1cm4gYm94KCkuaXNMaW5l
QnJlYWsoKTsgfQpAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBhdXRv
JiBzdHlsZSA9IGJveCgpLnN0eWxlKCk7CiAgICAgICAgIGF1dG8gZXhwYW5zaW9uID0gYm94KCku
ZXhwYW5zaW9uKCk7Ci0gICAgICAgIGF1dG8gcmVjdCA9IHRoaXMtPnJlY3QoKTsKKyAgICAgICAg
YXV0byByZWN0ID0gdGhpcy0+dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKTsKICAg
ICAgICAgYXV0byB4UG9zID0gcmVjdC54KCkgLSAobGluZSgpLmxpbmVCb3hMZWZ0KCkgKyBsaW5l
KCkuY29udGVudExvZ2ljYWxPZmZzZXQoKSk7CiAKICAgICAgICAgYXV0byB0ZXh0Rm9yUnVuID0g
WyZdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlv
dXRJbnRlZ3JhdGlvbkJveFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAKaW5kZXggNGMwYzI1OTFhOTRmNzA0ZjY2
ODRlZTI2MzI5MGI3YjIyMmZhNjgwMi4uYzE0MzBkODdkYTEzYmYyMmU4MjJkNWU2ZDdkZmIwMTc4
ZTUxZDA5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uQm94VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uQm94VHJlZS5jcHAKQEAgLTI3Niw3ICsyNzYsNyBA
QCB2b2lkIHNob3dJbmxpbmVDb250ZW50KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgSW5saW5l
Q29udGVudCYgaW5saW5lQ29udGVudCwgcwogICAgICAgICBhdXRvIG91dHB1dElubGluZUxldmVs
Qm94ID0gWyZdKGNvbnN0IGF1dG8mIGlubGluZUxldmVsQm94KSB7CiAgICAgICAgICAgICBhZGRT
cGFjaW5nKCk7CiAgICAgICAgICAgICBzdHJlYW0gPDwgIiAgICAiOwotICAgICAgICAgICAgYXV0
byByZWN0ID0gaW5saW5lTGV2ZWxCb3gucmVjdCgpOworICAgICAgICAgICAgYXV0byByZWN0ID0g
aW5saW5lTGV2ZWxCb3gudmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKTsKICAgICAg
ICAgICAgIGF1dG8mIGxheW91dEJveCA9IGlubGluZUxldmVsQm94LmxheW91dEJveCgpOwogICAg
ICAgICAgICAgaWYgKGxheW91dEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkpCiAgICAgICAg
ICAgICAgICAgc3RyZWFtIDw8ICJBdG9taWMgaW5saW5lIGxldmVsIGJveCI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5l
TGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvbkxpbmVMYXlvdXQuY3BwCmluZGV4IDVhYWZmODM4ZWRmMGEyZTY2YjdiMjRmODRkODQ5
M2YyODAyZTk0MDcuLjQ4ODY0ZTY4YWZmMGYzNjFhN2ZkMGY5ZjcxMWJlYjlhMjI1NThmZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC02MTQsNyArNjE0LDcgQEAgTGF5
b3V0UmVjdCBMaW5lTGF5b3V0OjpmaXJzdElubGluZUJveFJlY3QoY29uc3QgUmVuZGVySW5saW5l
JiByZW5kZXJJbmxpbmUpIGNvbnMKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0
byBmbGlwIHRoZSBkaXNwbGF5IGJveGVzIHNvb24gYWZ0ZXIgdGhlIHJvb3QgYmxvY2sKICAgICAv
LyBpcyBmaW5pc2hlZCBzaXppbmcgaW4gb25lIGdvLgotICAgIGF1dG8gZmlyc3RCb3hSZWN0ID0g
TGF5b3V0Ojp0b0xheW91dFJlY3QoZmlyc3RCb3gtPnJlY3QoKSk7CisgICAgYXV0byBmaXJzdEJv
eFJlY3QgPSBMYXlvdXQ6OnRvTGF5b3V0UmVjdChmaXJzdEJveC0+dmlzdWFsUmVjdElnbm9yaW5n
QmxvY2tEaXJlY3Rpb24oKSk7CiAgICAgc3dpdGNoIChyb290TGF5b3V0Qm94KCkuc3R5bGUoKS53
cml0aW5nTW9kZSgpKSB7CiAgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b206CiAgICAg
Y2FzZSBXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQ6CkBAIC02NjQsNyArNjY0LDcgQEAgVmVjdG9y
PEZsb2F0UmVjdD4gTGluZUxheW91dDo6Y29sbGVjdElubGluZUJveFJlY3RzKGNvbnN0IFJlbmRl
cklubGluZSYgcmVuZGVySW4KIAogICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHJlc3VsdDsKICAgICBt
X2lubGluZUNvbnRlbnQtPnRyYXZlcnNlTm9uUm9vdElubGluZUJveGVzKGxheW91dEJveCwgWyZd
KGF1dG8mIGlubGluZUJveCkgewotICAgICAgICByZXN1bHQuYXBwZW5kKGlubGluZUJveC5yZWN0
KCkpOworICAgICAgICByZXN1bHQuYXBwZW5kKGlubGluZUJveC52aXN1YWxSZWN0SWdub3JpbmdC
bG9ja0RpcmVjdGlvbigpKTsKICAgICB9KTsKIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC04MTEs
NyArODExLDcgQEAgYm9vbCBMaW5lTGF5b3V0OjpoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGMKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byBib3hSZWN0ID0gZmxpcHBlZFJlY3RGb3JXcml0
aW5nTW9kZShmbG93KCksIGJveC5yZWN0KCkpOworICAgICAgICBhdXRvIGJveFJlY3QgPSBmbGlw
cGVkUmVjdEZvcldyaXRpbmdNb2RlKGZsb3coKSwgYm94LnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2Nr
RGlyZWN0aW9uKCkpOwogICAgICAgICBib3hSZWN0Lm1vdmVCeShhY2N1bXVsYXRlZE9mZnNldCk7
CiAKICAgICAgICAgaWYgKCFsb2NhdGlvbkluQ29udGFpbmVyLmludGVyc2VjdHMoYm94UmVjdCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVl
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVl
QnVpbGRlci5jcHAKaW5kZXggOTA1ZTk3MTVmNTA4ZWExMzllODRmZTRlYzcyMWJlZmFjMzRiZTk2
Mi4uNGRjMzUxZTQ5MjJiNzU0Njc2Y2QwOGI4MTQ0ZDFlYWUwNTA5ZDc4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNw
cApAQCAtMzg2LDcgKzM4Niw3IEBAIHZvaWQgc2hvd0lubGluZVRyZWVBbmRSdW5zKFRleHRTdHJl
YW0mIHN0cmVhbSwgY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjCiAgICAgICAgIGF1
dG8gb3V0cHV0SW5saW5lTGV2ZWxCb3ggPSBbJl0oY29uc3QgYXV0byYgaW5saW5lTGV2ZWxCb3gp
IHsKICAgICAgICAgICAgIGFkZFNwYWNpbmcoKTsKICAgICAgICAgICAgIHN0cmVhbSA8PCAiICAg
ICI7Ci0gICAgICAgICAgICBhdXRvIHJlY3QgPSBpbmxpbmVMZXZlbEJveC5yZWN0KCk7CisgICAg
ICAgICAgICBhdXRvIHJlY3QgPSBpbmxpbmVMZXZlbEJveC52aXN1YWxSZWN0SWdub3JpbmdCbG9j
a0RpcmVjdGlvbigpOwogICAgICAgICAgICAgYXV0byYgbGF5b3V0Qm94ID0gaW5saW5lTGV2ZWxC
b3gubGF5b3V0Qm94KCk7CiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzQXRvbWljSW5saW5l
TGV2ZWxCb3goKSkKICAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIkF0b21pYyBpbmxpbmUgbGV2
ZWwgYm94IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3hQ
YWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVCb3hQYWludGVyLmNw
cAppbmRleCA1YzE5YzkzMDA2MDBlMzc3ZDkyZWQ2M2YxZThiOWVhNGU2YmNiNmVmLi45NmRhZjJi
ZmJjZTk3Yzg1ODU0M2IwNWZkNWExYzQ5ZTA3NzNiYzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lQm94UGFpbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZUJveFBhaW50ZXIuY3BwCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCBJ
bmxpbmVCb3hQYWludGVyOjpwYWludE1hc2soKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBN
b3ZlIHgveSB0byBvdXIgY29vcmRpbmF0ZXMuCi0gICAgTGF5b3V0UmVjdCBsb2NhbFJlY3QobV9p
bmxpbmVCb3gucmVjdCgpKTsKKyAgICBMYXlvdXRSZWN0IGxvY2FsUmVjdChtX2lubGluZUJveC52
aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpKTsKICAgICBtX2lubGluZUJveC5saW5l
KCktPmNvbnRhaW5pbmdCbG9jaygpLmZsaXBGb3JXcml0aW5nTW9kZShsb2NhbFJlY3QpOwogICAg
IExheW91dFBvaW50IGFkanVzdGVkUGFpbnRPZmZzZXQgPSBtX3BhaW50T2Zmc2V0ICsgbG9jYWxS
ZWN0LmxvY2F0aW9uKCk7CiAKQEAgLTIxOCw3ICsyMTgsNyBAQCB2b2lkIElubGluZUJveFBhaW50
ZXI6OnBhaW50RGVjb3JhdGlvbnMoKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBNb3ZlIHgv
eSB0byBvdXIgY29vcmRpbmF0ZXMuCi0gICAgTGF5b3V0UmVjdCBsb2NhbFJlY3QobV9pbmxpbmVC
b3gucmVjdCgpKTsKKyAgICBMYXlvdXRSZWN0IGxvY2FsUmVjdChtX2lubGluZUJveC52aXN1YWxS
ZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpKTsKICAgICBtX2lubGluZUJveC5saW5lKCktPmNv
bnRhaW5pbmdCbG9jaygpLmZsaXBGb3JXcml0aW5nTW9kZShsb2NhbFJlY3QpOwogCiAgICAgTGF5
b3V0UG9pbnQgYWRqdXN0ZWRQYWludG9mZnNldCA9IG1fcGFpbnRPZmZzZXQgKyBsb2NhbFJlY3Qu
bG9jYXRpb24oKTsKQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lkIElubGluZUJveFBhaW50ZXI6OnBh
aW50RmlsbExheWVyKGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgRmlsbExheWVyJiBmaWxsTAog
I2lmIEVOQUJMRShDU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspCiAgICAgaWYgKHJlbmRlcmVyKCku
c3R5bGUoKS5ib3hEZWNvcmF0aW9uQnJlYWsoKSA9PSBCb3hEZWNvcmF0aW9uQnJlYWs6OkNsb25l
KSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihtX3BhaW50
SW5mby5jb250ZXh0KCkpOwotICAgICAgICBtX3BhaW50SW5mby5jb250ZXh0KCkuY2xpcCh7IHJl
Y3QueCgpLCByZWN0LnkoKSwgTGF5b3V0VW5pdChtX2lubGluZUJveC5yZWN0KCkud2lkdGgoKSks
IExheW91dFVuaXQobV9pbmxpbmVCb3gucmVjdCgpLmhlaWdodCgpKSB9KTsKKyAgICAgICAgbV9w
YWludEluZm8uY29udGV4dCgpLmNsaXAoeyByZWN0LmxvY2F0aW9uKCksIG1faW5saW5lQm94LnZp
c3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkuc2l6ZSgpIH0pOwogICAgICAgICByZW5k
ZXJlcigpLnBhaW50RmlsbExheWVyRXh0ZW5kZWQobV9wYWludEluZm8sIGNvbG9yLCBmaWxsTGF5
ZXIsIHJlY3QsIEJhY2tncm91bmRCbGVlZE5vbmUsIG1faW5saW5lQm94LCB7IH0sIG9wKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMzNSw4ICszMzUsOCBAQCB2b2lkIElubGluZUJveFBh
aW50ZXI6OnBhaW50RmlsbExheWVyKGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgRmlsbExheWVy
JiBmaWxsTAogICAgIExheW91dFJlY3QgYmFja2dyb3VuZEltYWdlU3RyaXAgewogICAgICAgICBy
ZWN0LngoKSAtIChpc0hvcml6b250YWwoKSA/IGxvZ2ljYWxPZmZzZXRPbkxpbmUgOiAwX2x1KSwK
ICAgICAgICAgcmVjdC55KCkgLSAoaXNIb3Jpem9udGFsKCkgPyAwX2x1IDogbG9naWNhbE9mZnNl
dE9uTGluZSksCi0gICAgICAgIGlzSG9yaXpvbnRhbCgpID8gdG90YWxMb2dpY2FsV2lkdGggOiBM
YXlvdXRVbml0KG1faW5saW5lQm94LnJlY3QoKS53aWR0aCgpKSwKLSAgICAgICAgaXNIb3Jpem9u
dGFsKCkgPyBMYXlvdXRVbml0KG1faW5saW5lQm94LnJlY3QoKS5oZWlnaHQoKSkgOiB0b3RhbExv
Z2ljYWxXaWR0aAorICAgICAgICBpc0hvcml6b250YWwoKSA/IHRvdGFsTG9naWNhbFdpZHRoIDog
TGF5b3V0VW5pdChtX2lubGluZUJveC52aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigp
LndpZHRoKCkpLAorICAgICAgICBpc0hvcml6b250YWwoKSA/IExheW91dFVuaXQobV9pbmxpbmVC
b3gudmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKS5oZWlnaHQoKSkgOiB0b3RhbExv
Z2ljYWxXaWR0aAogICAgIH07CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIobV9wYWludEluZm8uY29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMzY0MzEyYjA0MDUzMWY2ZTVlMGQ4MTFlYTdlZmVl
MDNiZDk4ZDdiYy4uNGQ0OGE1M2YxZjQyZTY0NWQyYTI5MGQxNjA1Yzg3NDg4NzkzMWU2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTM0NjEs
OSArMzQ2MSwxMyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRkRm9jdXNSaW5nUmVjdHNGb3JJ
bmxpbmVDaGlsZHJlbihWZWN0b3I8TGF5b3V0UmVjdD4mIHJlYwogICAgIGZvciAoYXV0byBib3gg
PSBJbmxpbmVJdGVyYXRvcjo6Zmlyc3RSb290SW5saW5lQm94Rm9yKCp0aGlzKTsgYm94OyBib3gu
dHJhdmVyc2VOZXh0SW5saW5lQm94KCkpIHsKICAgICAgICAgYXV0byBsaW5lID0gYm94LT5saW5l
KCk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIG1peGluZyBwaHlzaWNhbCBhbmQgbG9naWNh
bCBjb29yZGluYXRlcy4KLSAgICAgICAgTGF5b3V0VW5pdCB0b3AgPSBzdGQ6Om1heChsaW5lLT50
b3AoKSwgTGF5b3V0VW5pdChib3gtPnJlY3QoKS55KCkpKTsKLSAgICAgICAgTGF5b3V0VW5pdCBi
b3R0b20gPSBzdGQ6Om1pbihsaW5lLT5ib3R0b20oKSwgTGF5b3V0VW5pdChib3gtPnJlY3QoKS5t
YXhZKCkpKTsKLSAgICAgICAgTGF5b3V0UmVjdCByZWN0IHsgTGF5b3V0VW5pdChhZGRpdGlvbmFs
T2Zmc2V0LngoKSArIGJveC0+cmVjdCgpLngoKSksIGFkZGl0aW9uYWxPZmZzZXQueSgpICsgdG9w
LCBMYXlvdXRVbml0KGJveC0+cmVjdCgpLndpZHRoKCkpLCBib3R0b20gLSB0b3AgfTsKKyAgICAg
ICAgYXV0byB1bmZsaXBwZWRWaXN1YWxSZWN0ID0gYm94LT52aXN1YWxSZWN0SWdub3JpbmdCbG9j
a0RpcmVjdGlvbigpOworICAgICAgICBhdXRvIHRvcCA9IHN0ZDo6bWF4KGxpbmUtPnRvcCgpLCBM
YXlvdXRVbml0IHsgdW5mbGlwcGVkVmlzdWFsUmVjdC55KCkgfSk7CisgICAgICAgIGF1dG8gYm90
dG9tID0gc3RkOjptaW4obGluZS0+Ym90dG9tKCksIExheW91dFVuaXQgeyB1bmZsaXBwZWRWaXN1
YWxSZWN0Lm1heFkoKSB9KTsKKyAgICAgICAgYXV0byByZWN0ID0gTGF5b3V0UmVjdCB7IExheW91
dFVuaXQgeyBhZGRpdGlvbmFsT2Zmc2V0LngoKSArIHVuZmxpcHBlZFZpc3VhbFJlY3QueCgpIH0K
KyAgICAgICAgICAgICwgYWRkaXRpb25hbE9mZnNldC55KCkgKyB0b3AKKyAgICAgICAgICAgICwg
TGF5b3V0VW5pdCB7IHVuZmxpcHBlZFZpc3VhbFJlY3Qud2lkdGgoKSB9CisgICAgICAgICAgICAs
IGJvdHRvbSAtIHRvcCB9OwogICAgICAgICBpZiAoIXJlY3QuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgcmVjdHMuYXBwZW5kKHJlY3QpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDlhYjk5OGU0MWNiMDhjZjBiNmY5
MGYxMGYxM2M0Yjg0NTdlYzkzOWYuLmJhMjM5NzdkMWY0NzhhM2I5ZDczMmVmNDEzMDJjMzY5YjM3
NmRiMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2Rl
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcApAQCAtNzIyLDcgKzcyMiw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6
OnBhaW50TWFza0ZvclRleHRGaWxsQm94KEltYWdlQnVmZmVyKiBtYXNrSW1hZ2UsIGNvbnN0CiAg
ICAgLy8gdGhlIHBhaW50ZXIgaXQgc2hvdWxkIGp1c3QgbW9kaWZ5IHRoZSBjbGlwLgogICAgIFBh
aW50SW5mbyBtYXNrSW5mbyhtYXNrSW1hZ2VDb250ZXh0LCBMYXlvdXRSZWN0IHsgbWFza1JlY3Qg
fSwgUGFpbnRQaGFzZTo6VGV4dENsaXAsIFBhaW50QmVoYXZpb3I6OkZvcmNlQmxhY2tUZXh0KTsK
ICAgICBpZiAoaW5saW5lQm94KSB7Ci0gICAgICAgIGF1dG8gcGFpbnRPZmZzZXQgPSBzY3JvbGxl
ZFBhaW50UmVjdC5sb2NhdGlvbigpIC0gdG9MYXlvdXRTaXplKExheW91dFBvaW50KGlubGluZUJv
eC0+cmVjdCgpLmxvY2F0aW9uKCkpKTsKKyAgICAgICAgYXV0byBwYWludE9mZnNldCA9IHNjcm9s
bGVkUGFpbnRSZWN0LmxvY2F0aW9uKCkgLSB0b0xheW91dFNpemUoTGF5b3V0UG9pbnQoaW5saW5l
Qm94LT52aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpLmxvY2F0aW9uKCkpKTsKIAog
ICAgICAgICBmb3IgKGF1dG8gYm94ID0gaW5saW5lQm94LT5maXJzdExlYWZCb3goKSwgZW5kID0g
aW5saW5lQm94LT5lbmRMZWFmQm94KCk7IGJveCAhPSBlbmQ7IGJveC50cmF2ZXJzZU5leHRPbkxp
bmUoKSkgewogICAgICAgICAgICAgaWYgKCFib3gtPmlzVGV4dCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAppbmRleCBlMmI0YjA5ZjU3ZGViM2E0NTk4ZjNiZDBj
ZTY3MzRiMDk3NWIxYzUyLi4wYjJiNGQyNWUxZmRkNzk4MWYwYTNhYjNhZDMwYzQ0YjVjNTc5NmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtOTY1LDcg
Kzk2NSw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpwYWludE91dGxpbmUoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mCiAgICAgICAgIExheW91dFVuaXQgdG9w
ID0gc3RkOjptYXgobGluZS0+dG9wKCksIExheW91dFVuaXQoYm94LT5sb2dpY2FsVG9wKCkpKTsK
ICAgICAgICAgTGF5b3V0VW5pdCBib3R0b20gPSBzdGQ6Om1pbihsaW5lLT5ib3R0b20oKSwgTGF5
b3V0VW5pdChib3gtPmxvZ2ljYWxCb3R0b20oKSkpOwogICAgICAgICAvLyBGSVhNRTogVGhpcyBp
cyBtaXhpbmcgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgY29vcmRpbmF0ZXMuCi0gICAgICAgIHJlY3Rz
LmFwcGVuZCh7IExheW91dFVuaXQoYm94LT5yZWN0KCkueCgpKSwgdG9wLCBMYXlvdXRVbml0KGJv
eC0+bG9naWNhbFdpZHRoKCkpLCBib3R0b20gLSB0b3AgfSk7CisgICAgICAgIHJlY3RzLmFwcGVu
ZCh7IExheW91dFVuaXQoYm94LT52aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpLngo
KSksIHRvcCwgTGF5b3V0VW5pdChib3gtPmxvZ2ljYWxXaWR0aCgpKSwgYm90dG9tIC0gdG9wIH0p
OwogICAgIH0KICAgICByZWN0cy5hcHBlbmQoTGF5b3V0UmVjdCgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpbmVCcmVhay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFrLmNwcAppbmRleCBiOTE5OGEwOGI0MWNiOWI5
NzllZTFhOGI5MDhhNTk1MzljNjhlYzAyLi42MzY2ZWZiMzJkNjA2NTc5MTRkMjdiYTIzYTkyZTkw
YmFiODJiZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlu
ZUJyZWFrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGluZUJyZWFr
LmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIEludFJlY3QgUmVuZGVyTGluZUJyZWFrOjpsaW5lc0Jv
dW5kaW5nQm94KCkgY29uc3QKICAgICBpZiAoIXJ1bikKICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIHJldHVybiBlbmNsb3NpbmdJbnRSZWN0KHJ1bi0+cmVjdCgpKTsKKyAgICByZXR1cm4gZW5j
bG9zaW5nSW50UmVjdChydW4tPnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkpOwog
fQogCiB2b2lkIFJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4m
IHJlY3RzLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CkBAIC0x
NTgsNyArMTU4LDcgQEAgdm9pZCBSZW5kZXJMaW5lQnJlYWs6OmFic29sdXRlUmVjdHMoVmVjdG9y
PEludFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG9pbnQmIGEKICAgICBpZiAoIWJveCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgYXV0byByZWN0ID0gYm94LT5yZWN0KCk7CisgICAgYXV0byBy
ZWN0ID0gYm94LT52aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigpOwogICAgIHJlY3Rz
LmFwcGVuZChlbmNsb3NpbmdJbnRSZWN0KEZsb2F0UmVjdChhY2N1bXVsYXRlZE9mZnNldCArIHJl
Y3QubG9jYXRpb24oKSwgcmVjdC5zaXplKCkpKSk7CiB9CiAKQEAgLTE2OCw3ICsxNjgsNyBAQCB2
b2lkIFJlbmRlckxpbmVCcmVhazo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYgcXVh
ZHMsIGJvb2wqIHdhc0ZpeGVkKSBjbwogICAgIGlmICghYm94KQogICAgICAgICByZXR1cm47CiAK
LSAgICBhdXRvIHJlY3QgPSBib3gtPnJlY3QoKTsKKyAgICBhdXRvIHJlY3QgPSBib3gtPnZpc3Vh
bFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCk7CiAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9B
YnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlY3QubG9jYXRpb24oKSwgcmVjdC5zaXplKCkpLCBVc2VU
cmFuc2Zvcm1zLCB3YXNGaXhlZCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAKaW5kZXggZmE1MzFjNmI5M2NmMmEzMDk1NTNiMDVjMGExZGFiMzgzYjcxMTkwNS4u
MzY1ZDJmOWEyOWMwZmFhN2E5ZjBhYzAzODgyMWUwZjgxMDUzNDVlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMzEyLDcgKzMxMiw3IEBAIFN0cmluZyBSZW5k
ZXJUZXh0OjpvcmlnaW5hbFRleHQoKSBjb25zdAogdm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVJl
Y3RzKFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRl
ZE9mZnNldCkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8mIHJ1biA6IElubGluZUl0ZXJhdG9yOjp0
ZXh0Qm94ZXNGb3IoKnRoaXMpKSB7Ci0gICAgICAgIGF1dG8gcmVjdCA9IHJ1bi5yZWN0KCk7Cisg
ICAgICAgIGF1dG8gcmVjdCA9IHJ1bi52aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigp
OwogICAgICAgICByZWN0cy5hcHBlbmQoZW5jbG9zaW5nSW50UmVjdChGbG9hdFJlY3QoYWNjdW11
bGF0ZWRPZmZzZXQgKyByZWN0LmxvY2F0aW9uKCksIHJlY3Quc2l6ZSgpKSkpOwogICAgIH0KIH0K
QEAgLTM5NSw3ICszOTUsNyBAQCBzdGF0aWMgRmxvYXRSZWN0IGJvdW5kYXJpZXNGb3JUZXh0UnVu
KGNvbnN0IElubGluZUl0ZXJhdG9yOjpUZXh0Qm94JiBydW4pCiAgICAgaWYgKGlzPFNWR0lubGlu
ZVRleHRCb3g+KHJ1bi5sZWdhY3lJbmxpbmVCb3goKSkpCiAgICAgICAgIHJldHVybiBkb3duY2Fz
dDxTVkdJbmxpbmVUZXh0Qm94PigqcnVuLmxlZ2FjeUlubGluZUJveCgpKS5jYWxjdWxhdGVCb3Vu
ZGFyaWVzKCk7CiAKLSAgICByZXR1cm4gcnVuLnJlY3QoKTsKKyAgICByZXR1cm4gcnVuLnZpc3Vh
bFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCk7CiB9CiAKIHN0YXRpYyBJbnRSZWN0IGVsbGlw
c2lzUmVjdEZvclRleHRSdW4oY29uc3QgSW5saW5lSXRlcmF0b3I6OlRleHRCb3gmIHJ1biwgdW5z
aWduZWQgc3RhcnQsIHVuc2lnbmVkIGVuZCkKQEAgLTQ3MCw3ICs0NzAsNyBAQCBzdGF0aWMgRmxv
YXRSZWN0IGxvY2FsUXVhZEZvclRleHRSdW4oY29uc3QgSW5saW5lSXRlcmF0b3I6OlRleHRCb3gm
IHJ1biwgdW5zaWduZQogICAgIGlmICh1c2VTZWxlY3Rpb25IZWlnaHQpCiAgICAgICAgIHJldHVy
biBib3hTZWxlY3Rpb25SZWN0OwogCi0gICAgYXV0byByZWN0ID0gcnVuLnJlY3QoKTsKKyAgICBh
dXRvIHJlY3QgPSBydW4udmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKTsKICAgICBp
ZiAocnVuLmlzSG9yaXpvbnRhbCgpKSB7CiAgICAgICAgIGJveFNlbGVjdGlvblJlY3Quc2V0SGVp
Z2h0KHJlY3QuaGVpZ2h0KCkpOwogICAgICAgICBib3hTZWxlY3Rpb25SZWN0LnNldFkocmVjdC55
KCkpOwpAQCAtNjgyLDggKzY4Miw4IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Ojpwb3Np
dGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgY29uc3QgUmVuCiAgICAgICAg
ICAgICBpZiAocG9pbnRCbG9ja0RpcmVjdGlvbiA8IGJvdHRvbSB8fCAoYmxvY2tzQXJlRmxpcHBl
ZCAmJiBwb2ludEJsb2NrRGlyZWN0aW9uID09IGJvdHRvbSkpIHsKICAgICAgICAgICAgICAgICBT
aG91bGRBZmZpbml0eUJlRG93bnN0cmVhbSBzaG91bGRBZmZpbml0eUJlRG93bnN0cmVhbTsKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgICAgICAgICAgICAgIGlmIChwb2ludExpbmVEaXJl
Y3Rpb24gIT0gcnVuLT5sb2dpY2FsTGVmdCgpICYmIHBvaW50LngoKSA8IHJ1bi0+cmVjdCgpLngo
KSArIHJ1bi0+bG9naWNhbFdpZHRoKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGhhbGYg
PSBydW4tPnJlY3QoKS54KCkgKyBydW4tPmxvZ2ljYWxXaWR0aCgpIC8gMjsKKyAgICAgICAgICAg
ICAgICBpZiAocG9pbnRMaW5lRGlyZWN0aW9uICE9IHJ1bi0+bG9naWNhbExlZnQoKSAmJiBwb2lu
dC54KCkgPCBydW4tPnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCkueCgpICsgcnVu
LT5sb2dpY2FsV2lkdGgoKSkgeworICAgICAgICAgICAgICAgICAgICBpbnQgaGFsZiA9IHJ1bi0+
dmlzdWFsUmVjdElnbm9yaW5nQmxvY2tEaXJlY3Rpb24oKS54KCkgKyBydW4tPmxvZ2ljYWxXaWR0
aCgpIC8gMjsKICAgICAgICAgICAgICAgICAgICAgYXV0byBhZmZpbml0eSA9IHBvaW50LngoKSA8
IGhhbGYgPyBBZmZpbml0eTo6RG93bnN0cmVhbSA6IEFmZmluaXR5OjpVcHN0cmVhbTsKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVZpc2libGVQb3NpdGlvbihydW4tPm9mZnNldEZv
clBvc2l0aW9uKHBvaW50TGluZURpcmVjdGlvbikgKyBydW4tPnN0YXJ0KCksIGFmZmluaXR5KTsK
ICAgICAgICAgICAgICAgICB9CkBAIC0xMjc1LDcgKzEyNzUsNyBAQCBJbnRQb2ludCBSZW5kZXJU
ZXh0OjpmaXJzdFJ1bkxvY2F0aW9uKCkgY29uc3QKICAgICBhdXRvIGZpcnN0ID0gSW5saW5lSXRl
cmF0b3I6OmZpcnN0VGV4dEJveEZvcigqdGhpcyk7CiAgICAgaWYgKCFmaXJzdCkKICAgICAgICAg
cmV0dXJuIHsgfTsKLSAgICByZXR1cm4gSW50UG9pbnQoZmlyc3QtPnJlY3QoKS5sb2NhdGlvbigp
KTsKKyAgICByZXR1cm4gSW50UG9pbnQoZmlyc3QtPnZpc3VhbFJlY3RJZ25vcmluZ0Jsb2NrRGly
ZWN0aW9uKCkubG9jYXRpb24oKSk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dDo6c2V0U2VsZWN0aW9u
U3RhdGUoSGlnaGxpZ2h0U3RhdGUgc3RhdGUpCkBAIC0xNTc3LDEzICsxNTc3LDEzIEBAIGZsb2F0
IFJlbmRlclRleHQ6OndpZHRoKHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbiwgY29uc3QgRm9u
dENhc2NhZGUmIGYsIGZsb2F0CiAKIEludFJlY3QgUmVuZGVyVGV4dDo6bGluZXNCb3VuZGluZ0Jv
eCgpIGNvbnN0CiB7Ci0gICAgYXV0byBmaXJzdCA9IElubGluZUl0ZXJhdG9yOjpmaXJzdFRleHRC
b3hGb3IoKnRoaXMpOwotICAgIGlmICghZmlyc3QpCisgICAgYXV0byBmaXJzdFRleHRCb3ggPSBJ
bmxpbmVJdGVyYXRvcjo6Zmlyc3RUZXh0Qm94Rm9yKCp0aGlzKTsKKyAgICBpZiAoIWZpcnN0VGV4
dEJveCkKICAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8gYm91bmRpbmdCb3ggPSBmaXJz
dC0+cmVjdCgpOwotICAgIGZvciAoYXV0byBib3ggPSBmaXJzdDsgKytib3g7KQotICAgICAgICBi
b3VuZGluZ0JveC51bml0ZUV2ZW5JZkVtcHR5KGJveC0+cmVjdCgpKTsKKyAgICBhdXRvIGJvdW5k
aW5nQm94ID0gZmlyc3RUZXh0Qm94LT52aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVjdGlvbigp
OworICAgIGZvciAoYXV0byB0ZXh0Qm94ID0gZmlyc3RUZXh0Qm94OyArK3RleHRCb3g7KQorICAg
ICAgICBib3VuZGluZ0JveC51bml0ZUV2ZW5JZkVtcHR5KHRleHRCb3gtPnZpc3VhbFJlY3RJZ25v
cmluZ0Jsb2NrRGlyZWN0aW9uKCkpOwogCiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QoYm91
bmRpbmdCb3gpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuY3BwCmluZGV4IDM4Njc3ZWZjYTcyNDg4NWViM2YzZmFmNzFiYTFmYWE5NGIxNGY1YWUuLjI2
Y2QzMmE1NGQ2NzJlZDYwMzA1ODFiOTI2Y2Q0ZTZmNDBjZjMxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTU0Miw3ICs1NDIsNyBAQCB2
b2lkIHdyaXRlKFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG8sIE9wdGlvblNl
dDxSZW5kZXJBc1RleHRGbGFnPiBiZQogewogICAgIGF1dG8gd3JpdGVUZXh0UnVuID0gWyZdKGF1
dG8mIHRleHRSZW5kZXJlciwgYXV0byYgdGV4dFJ1bikKICAgICB7Ci0gICAgICAgIGF1dG8gcmVj
dCA9IHRleHRSdW4ucmVjdCgpOworICAgICAgICBhdXRvIHJlY3QgPSB0ZXh0UnVuLnZpc3VhbFJl
Y3RJZ25vcmluZ0Jsb2NrRGlyZWN0aW9uKCk7CiAgICAgICAgIGludCB4ID0gcmVjdC54KCk7CiAg
ICAgICAgIGludCB5ID0gcmVjdC55KCk7CiAgICAgICAgIC8vIEZJWE1FOiBVc2Ugbm9uLWxvZ2lj
YWwgd2lkdGguIHdlYmtpdC5vcmcvYi8yMDY4MDkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1RleHRCb3hQYWludGVyLmNwcAppbmRleCBlMzZjNDU4YjYzOWU3NTYyZGU3NzFhMDk1Y2RlZDVl
M2EzYmJlZjFlLi5hYjhlNGQyNmRlZGEzYTc2ZTczYzdjNmUyNWUyYzU0ZDEwOGYxZjYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEJveFBhaW50ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Qm94UGFpbnRlci5jcHAKQEAgLTU3Myw3ICs1
NzMsNyBAQCBGbG9hdFJlY3QgVGV4dEJveFBhaW50ZXI6OmNvbXB1dGVQYWludFJlY3QoY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIGxvY2FsUGFpbnRPZmZzZXQubW92ZSgwLCBt
X3N0eWxlLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyAwIDogLXRleHRCb3goKS5sb2dpY2Fs
SGVpZ2h0KCkpOwogCiAgICAgYXV0byBsb2NhdGlvbkluY2x1ZGluZ0ZsaXBwaW5nID0gWyZdKCkg
LT4gRmxvYXRQb2ludCB7Ci0gICAgICAgIGF1dG8gcmVjdCA9IHRleHRCb3goKS5yZWN0KCk7Cisg
ICAgICAgIGF1dG8gcmVjdCA9IHRleHRCb3goKS52aXN1YWxSZWN0SWdub3JpbmdCbG9ja0RpcmVj
dGlvbigpOwogICAgICAgICBpZiAoIW1fc3R5bGUuaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUo
KSkKICAgICAgICAgICAgIHJldHVybiByZWN0LmxvY2F0aW9uKCk7CiAgICAgICAgIGF1dG8mIGJs
b2NrID0gdGV4dEJveCgpLmxpbmUoKS0+Y29udGFpbmluZ0Jsb2NrKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>