<?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>231224</bug_id>
          
          <creation_ts>2021-10-05 02:41:11 -0700</creation_ts>
          <short_desc>[JSC] Test DFG / FTL DataIC</short_desc>
          <delta_ts>2022-03-23 10:58:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1800457</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-05 02:41:11 -0700</bug_when>
    <thetext>[JSC] Remove Options::useDataIC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800462</commentid>
    <comment_count>1</comment_count>
      <attachid>440188</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-05 02:46:56 -0700</bug_when>
    <thetext>Created attachment 440188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800530</commentid>
    <comment_count>2</comment_count>
      <attachid>440188</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-10-05 05:55:51 -0700</bug_when>
    <thetext>Comment on attachment 440188
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803043</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-12 02:42:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/84139269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853514</commentid>
    <comment_count>4</comment_count>
      <attachid>455327</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-21 21:10:43 -0700</bug_when>
    <thetext>Created attachment 455327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853582</commentid>
    <comment_count>5</comment_count>
      <attachid>455354</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-22 02:25:23 -0700</bug_when>
    <thetext>Created attachment 455354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853773</commentid>
    <comment_count>6</comment_count>
      <attachid>455397</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-22 11:07:07 -0700</bug_when>
    <thetext>Created attachment 455397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853823</commentid>
    <comment_count>7</comment_count>
      <attachid>455406</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-22 12:07:49 -0700</bug_when>
    <thetext>Created attachment 455406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853825</commentid>
    <comment_count>8</comment_count>
      <attachid>455407</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-22 12:10:10 -0700</bug_when>
    <thetext>Created attachment 455407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853926</commentid>
    <comment_count>9</comment_count>
      <attachid>455434</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-22 15:02:13 -0700</bug_when>
    <thetext>Created attachment 455434
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854042</commentid>
    <comment_count>10</comment_count>
      <attachid>455434</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2022-03-22 19:08:29 -0700</bug_when>
    <thetext>Comment on attachment 455434
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854059</commentid>
    <comment_count>11</comment_count>
      <attachid>455434</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-22 23:00:44 -0700</bug_when>
    <thetext>Comment on attachment 455434
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854064</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-22 23:47:04 -0700</bug_when>
    <thetext>Committed r291736 (248768@main): &lt;https://commits.webkit.org/248768@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455434.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854269</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-23 10:58:55 -0700</bug_when>
    <thetext>Committed r291752 (248783@trunk): &lt;https://commits.webkit.org/248783@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440188</attachid>
            <date>2021-10-05 02:46:56 -0700</date>
            <delta_ts>2022-03-21 21:10:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231224-20211005024656.patch</filename>
            <type>text/plain</type>
            <size>7726</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
ZjUyMmJiMzBhYWUyYTRlODZmMzFlMDQ2YjBkZjY0NjdjZGYzMjRkLi5kZGNkZjdkNzlmOWE1NjU3
M2M0MWEzMjdjNzEyZDVlMzUwMjNiMzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAyMS0xMC0wNSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFJlbW92ZSBPcHRpb25zOjp1c2VEYXRhSUMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTIyNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdyBEYXRhSUMgaXMgYWx3YXlz
IGVuYWJsZWQgb24gQmFzZWxpbmUgSklULiBTbyBPcHRpb25zOjp1c2VEYXRhSUMgaXMgbWVhbmlu
Z2xlc3MuCisgICAgICAgIFJlbW92ZSBPcHRpb25zOjp1c2VEYXRhSUMgYW5kIHVzZSBPcHRpb25z
Ojp1c2VEYXRhSUNJbk9wdGltaXppbmdKSVQgaW5zdGVhZC4KKworICAgICAgICAqIGppdC9KSVRD
b2RlLmg6CisgICAgICAgIChKU0M6OkpJVENvZGU6OnVzZURhdGFJQyk6CisgICAgICAgICogcnVu
dGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6cmVjb21wdXRlRGVwZW5k
ZW50T3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorCiAyMDIxLTEw
LTA0ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERpc3BsYXkg
cmV0dXJuIHZhbHVlcyBpbiBuaWNlciB3YXkgaW4gdGhlIGpzYyBSRVBMIGFuZCBhZGQgYSBwcmV0
dHlQcmludCBmdW5jdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRDb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaAppbmRleCA4ZTRj
ZTAzZjhlZWVjMzQwYmI2NjZmNTI3OWE2ODc2ZGMyYzY4ODYwLi5kYjAyMzI0ZjY2Nzc5NzRlOGM5
MmM4ZTJkODc1ZTVhMmUwNDQzYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaApA
QCAtMTY0LDggKzE2NCw2IEBAIGNsYXNzIEpJVENvZGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8SklUQ29kZT4gewogICAgIHsKICAgICAgICAgaWYgKEpJVENvZGU6OmlzQmFzZWxpbmVD
b2RlKGppdFR5cGUpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmICghT3B0
aW9uczo6dXNlRGF0YUlDKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJl
dHVybiBPcHRpb25zOjp1c2VEYXRhSUNJbk9wdGltaXppbmdKSVQoKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggODhlOGM3NTUxMmQxNTkx
Y2MzZWRjYmNmY2E3MDg5OGZiYWU4MTEyMi4uODg0OWI5YmI0NDRhYzEyYjc4ZTM4OWQ1OGRmZDVl
OGUwMjAzODliNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAK
QEAgLTQzNCw5ICs0MzQsNiBAQCB2b2lkIE9wdGlvbnM6OnJlY29tcHV0ZURlcGVuZGVudE9wdGlv
bnMoKQogICAgIE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRHQygpID0gZmFsc2U7CiAjZW5kaWYKIAot
ICAgIGlmICghT3B0aW9uczo6dXNlRGF0YUlDKCkpCi0gICAgICAgIE9wdGlvbnM6OnVzZURhdGFJ
Q0luT3B0aW1pemluZ0pJVCgpID0gZmFsc2U7Ci0KICAgICAvLyBBdCBpbml0aWFsaXphdGlvbiB0
aW1lLCB3ZSBtYXkgZGVjaWRlIHRoYXQgdXNlSklUIHNob3VsZCBiZSBmYWxzZSBmb3IgYW55CiAg
ICAgLy8gbnVtYmVyIG9mIHJlYXNvbnMgKGluY2x1ZGluZyBmYWlsaW5nIHRvIGFsbG9jYXRlIEpJ
VCBtZW1vcnkpLCBhbmQgdGhlcmVmb3JlLAogICAgIC8vIHdpbGwgLyBzaG91bGQgbm90IGJlIGFi
bGUgdG8gZW5hYmxlIGFueSBKSVQgcmVsYXRlZCBzZXJ2aWNlcy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDU0MDFmZjM4MzFkODY1MDcxNTViMTkz
MjRiZTM5N2ZmYmQzM2Q5MzQuLmE1ZmNmNWY4NmEwZTQwOWZiZTlhOWVhM2EyMjdlNzAwOTg2ZWI2
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAt
NTI4LDcgKzUyOCw2IEBAIGJvb2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7CiAgICAg
dihCb29sLCBkdW1wQmFzZWxpbmVKSVRTaXplU3RhdGlzdGljcywgZmFsc2UsIE5vcm1hbCwgbnVs
bHB0cikgXAogICAgIHYoQm9vbCwgZHVtcERGR0pJVFNpemVTdGF0aXN0aWNzLCBmYWxzZSwgTm9y
bWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCB2ZXJib3NlRXhlY3V0YWJsZVBvb2xBbGxvY2F0
aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCi0gICAgdihCb29sLCB1c2VEYXRhSUMsIGZh
bHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHVzZURhdGFJQ0luT3B0aW1pemlu
Z0pJVCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlRGF0YUlDU2hh
cmluZywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlQmFzZWxpbmVK
SVRDb2RlU2hhcmluZywgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDI4YWQxYzdkMzE5MDNkN2NlMTQ0
NDMzZDA2NTg2NGYwZWRmYWJhZi4uYzY0YTk1NDQzZmRlMjU2ODUxZWU0MmRmZjI4YjBiZTk4MzA4
YWIyMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDIxLTEwLTA1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0pTQ10gUmVtb3ZlIE9wdGlvbnM6OnVzZURhdGFJQworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIxLTEwLTA0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxkLndlYmtpdC5vcmddIGNoZWNrLXBhdGNo
LXJlbGV2YW5jZSBjYW4gZ2V0IHN0dWNrCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1q
c2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwppbmRl
eCBlMDgxNmRjMDU2MWIxODBhOWVmYjY2NzhkYjgyY2M2NDZlMTliNDgxLi5mNjYxOGMyYmZmY2Rh
Njg2YzYxYWI2Zjk1YTVhNTFkOTQyYWQ4ZmZjIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3J1
bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVz
dHMKQEAgLTc5OCw3ICs3OTgsNyBAQCBkZWYgcnVuQnl0ZWNvZGVDYWNoZU5vQXNzZXJ0aW9uKCpv
cHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiBlbmQKIAogZGVmIHJ1bkZUTE5vQ0pJVCgqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQotICAgIHJ1bigibWlzYy1mdGwtbm8tY2ppdCIsICIt
LXVzZURhdGFJQz10cnVlIiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUyArIG9wdGlv
bmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgcnVuKCJtaXNjLWZ0bC1uby1jaml0IiwgIi0t
dXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUPXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9P
UFRJT05TICsgb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKSkKIGVuZAogCiBkZWYgcnVuRlRM
Tm9DSklUQjNPMCgqb3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQpAQCAtODA2LDcgKzgwNiw3
IEBAIGRlZiBydW5GVExOb0NKSVRCM08wKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpCiBl
bmQKIAogZGVmIHJ1bkZUTE5vQ0pJVFZhbGlkYXRlKCpvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlv
bnMpCi0gICAgcnVuKCJmdGwtbm8tY2ppdC12YWxpZGF0ZS1zYW1wbGluZy1wcm9maWxlciIsICIt
LXZhbGlkYXRlR3JhcGg9dHJ1ZSIsICItLXZhbGlkYXRlQkNFPXRydWUiLCAiLS11c2VTYW1wbGlu
Z1Byb2ZpbGVyPXRydWUiLCAiLS1haXJGb3JjZUlSQ0FsbG9jYXRvcj10cnVlIiwgIi0tdXNlRGF0
YUlDPXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKKyAgICBydW4oImZ0bC1uby1jaml0LXZhbGlkYXRlLXNhbXBsaW5n
LXByb2ZpbGVyIiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgIi0tdmFsaWRhdGVCQ0U9dHJ1ZSIs
ICItLXVzZVNhbXBsaW5nUHJvZmlsZXI9dHJ1ZSIsICItLWFpckZvcmNlSVJDQWxsb2NhdG9yPXRy
dWUiLCAiLS11c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBO
T19DSklUX09QVElPTlMgKyBvcHRpb25hbFRlc3RTcGVjaWZpY09wdGlvbnMpKQogZW5kCiAKIGRl
ZiBydW5GVExOb0NKSVROb1B1dFN0YWNrVmFsaWRhdGUoKm9wdGlvbmFsVGVzdFNwZWNpZmljT3B0
aW9ucykKQEAgLTgzMCw3ICs4MzAsNyBAQCBkZWYgcnVuREZHRWFnZXJOb0NKSVRWYWxpZGF0ZSgq
b3B0aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQogZW5kCiAKIGRlZiBydW5GVExFYWdlcigqb3B0
aW9uYWxUZXN0U3BlY2lmaWNPcHRpb25zKQotICAgIHJ1bigiZnRsLWVhZ2VyIiwgIi0tYWlyRm9y
Y2VCcmlnZ3NBbGxvY2F0b3I9dHJ1ZSIsICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFu
ZEFsbG9jYXRpb249dHJ1ZSIsICItLWZvcmNlUG9seVByb3RvPXRydWUiLCAiLS11c2VEYXRhSUM9
dHJ1ZSIsICooRlRMX09QVElPTlMgKyBFQUdFUl9PUFRJT05TICsgQ09MTEVDVF9DT05USU5VT1VT
TFlfT1BUSU9OUyArIG9wdGlvbmFsVGVzdFNwZWNpZmljT3B0aW9ucykpCisgICAgcnVuKCJmdGwt
ZWFnZXIiLCAiLS1haXJGb3JjZUJyaWdnc0FsbG9jYXRvcj10cnVlIiwgIi0tdXNlUmFuZG9taXpp
bmdFeGVjdXRhYmxlSXNsYW5kQWxsb2NhdGlvbj10cnVlIiwgIi0tZm9yY2VQb2x5UHJvdG89dHJ1
ZSIsICItLXVzZURhdGFJQ0luT3B0aW1pemluZ0pJVD10cnVlIiwgKihGVExfT1BUSU9OUyArIEVB
R0VSX09QVElPTlMgKyBDT0xMRUNUX0NPTlRJTlVPVVNMWV9PUFRJT05TICsgb3B0aW9uYWxUZXN0
U3BlY2lmaWNPcHRpb25zKSkKIGVuZAogCiBkZWYgcnVuRlRMRWFnZXJXYXRjaGRvZygqb3B0aW9u
YWxUZXN0U3BlY2lmaWNPcHRpb25zKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCBjZTAwNzEzNDZiMThlNGY1MjJmODljMzVhN2U5ZWQ2ZDMw
Y2JhNzIzLi4xZDc3ZTk2Y2M4NWNhOGRlNDM5MWM3ZmRiMGY5ZjUxYjk2MzIxZTdkIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIxLTEwLTA1ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisK
KyAgICAgICAgW0pTQ10gUmVtb3ZlIE9wdGlvbnM6OnVzZURhdGFJQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvZGVsdGFi
bHVlLXZhcmFyZ3MuanM6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRyeS1j
YXRjaC5qczoKKwogMjAyMS0xMC0wNCAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbnRyaW5zaWNHZXR0ZXJBY2Nlc3NDYXNlIGltcGxlbWVudGF0aW9uIG9mIF9f
cHJvdG9fXyBuZWVkcyB0byBoYW5kbGUgZ2V0X2J5X2lkX3dpdGhfdGhpcwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGVsdGFibHVlLXZhcmFyZ3MuanMgYi9KU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qcwppbmRleCBhOGRlNDliYmI0YzBmNTBj
MzliY2FiM2Q5ODgwMzA1N2I5MTQ3YTY4Li5iY2ExNzIzZTRlNjMzYmEwOWIwNDBjYmY3NjFiMTdj
MzQ2MzMxZmU0IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZWx0YWJsdWUt
dmFyYXJncy5qcworKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJn
cy5qcwpAQCAtMSw1ICsxLDUgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2gg
U2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKLS8vQCByZXF1aXJl
T3B0aW9ucygiLS11c2VEYXRhSUM9dHJ1ZSIsICItLXVzZURhdGFJQ1NoYXJpbmc9dHJ1ZSIpCisv
L0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUPTEiLCAiLS11c2VE
YXRhSUNTaGFyaW5nPXRydWUiKQogCiAvLyBDb3B5cmlnaHQgMjAwOCB0aGUgVjggcHJvamVjdCBh
dXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8gQ29weXJpZ2h0IDE5OTYgSm9obiBNYWxv
bmV5IGFuZCBNYXJpbyBXb2xjemtvLgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFy
a3MvcmljaGFyZHMtdHJ5LWNhdGNoLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmljaGFy
ZHMtdHJ5LWNhdGNoLmpzCmluZGV4IGNiMmUyOWVhOGIwM2QzNWM0ZDk1NjJmZjRhMjBjZDJjMGUx
Nzk0MjYuLjhhNTUwYmZjOTlhMWEzNGEyNzYyMzk3MzM1NzNiZWQ4NjIxZDlkMDYgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRyeS1jYXRjaC5qcworKysgYi9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yaWNoYXJkcy10cnktY2F0Y2guanMKQEAgLTEsNSArMSw1
IEBACiAvL0Agc2tpcCBpZiAkbW9kZWwgPT0gIkFwcGxlIFdhdGNoIFNlcmllcyAzIiAjIGFkZGVk
IGJ5IG1hcmstanNjLXN0cmVzcy10ZXN0LnB5Ci0vL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRGF0
YUlDPXRydWUiLCAiLS11c2VEYXRhSUNTaGFyaW5nPXRydWUiKQorLy9AIHJlcXVpcmVPcHRpb25z
KCItLXVzZURhdGFJQ0luT3B0aW1pemluZ0pJVD0xIiwgIi0tdXNlRGF0YUlDU2hhcmluZz10cnVl
IikKIAogLy8gQ29weXJpZ2h0IDIwMDYtMjAwOCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455327</attachid>
            <date>2022-03-21 21:10:43 -0700</date>
            <delta_ts>2022-03-22 02:25:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231224-20220321211042.patch</filename>
            <type>text/plain</type>
            <size>18125</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZTIwYjdiMTJiMzg2NWRjZDg1ZjQyNjA4N2ZlNzE4NGZlNzUxMDc4Li5lYTNmODhlNzgxODU5YjMw
NDkwZjU4OTVjYmE4OWQ4ZDBhOTlkYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMi0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFRlc3QgREZHIC8gRlRMIERhdGFJQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9JbmxpbmVBY2Nlc3Mu
Y3BwOgorICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OmlzQ2FjaGVhYmxlQXJyYXlMZW5ndGgp
OgorICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OmlzQ2FjaGVhYmxlU3RyaW5nTGVuZ3RoKToK
KyAgICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5BY2Nlc3MpOgor
ICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OnJlc2V0U3R1YkFzSnVtcEluQWNjZXNzKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkV2l0aFRoaXMpOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y2FjaGVkUHV0QnlJZCk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3Ry
aWN0RXEpOgorICAgICAgICAqIGppdC9KSVRDb2RlLmg6CisgICAgICAgIChKU0M6OkpJVENvZGU6
OnVzZURhdGFJQyk6CisgICAgICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0Q29tbW9uKToKKyAg
ICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpyZWNv
bXB1dGVEZXBlbmRlbnRPcHRpb25zKToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnNMaXN0Lmg6
CisKIDIwMjItMDMtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBSZWZlcmVuY2VFcnJvciB3aGVuIHVzaW5nIGV4dHJhIHBhcmVucyBpbiBjbGFz
cyBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Jbmxp
bmVBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vz
cy5jcHAKaW5kZXggZmI1ZWVhMmRjYmFmMmM0MGEwN2ZhY2I3ZDU3OTMzODhjNWMyNzZhYS4uOWJh
MGM5MjBlYjMyZTNiZjgzNDQxNzU3NjhlNTlmMTgzOTcxN2M4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAKQEAgLTI5OSw3ICsyOTksNyBA
QCBib29sIElubGluZUFjY2Vzczo6aXNDYWNoZWFibGVBcnJheUxlbmd0aChDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZgogICAgIGlmICghc3R1YkluZm8uaGFzQ29uc3RhbnRJ
ZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoY29kZUJsb2NrLT5q
aXRUeXBlKCkgPT0gSklUVHlwZTo6QmFzZWxpbmVKSVQpCisgICAgaWYgKGNvZGVCbG9jay0+dXNl
RGF0YUlDKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghaGFzRnJlZVJlZ2lz
dGVyKHN0dWJJbmZvKSkKQEAgLTM0MCw3ICszNDAsNyBAQCBib29sIElubGluZUFjY2Vzczo6aXND
YWNoZWFibGVTdHJpbmdMZW5ndGgoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJ
bgogICAgIGlmICghc3R1YkluZm8uaGFzQ29uc3RhbnRJZGVudGlmaWVyKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBpZiAoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFz
ZWxpbmVKSVQpCisgICAgaWYgKGNvZGVCbG9jay0+dXNlRGF0YUlDKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIHJldHVybiBoYXNGcmVlUmVnaXN0ZXIoc3R1YkluZm8pOwpAQCAtNDI4
LDI0ICs0MjgsNiBAQCB2b2lkIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNz
Tm90VXNpbmdJbmxpbmVBY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQgogdm9pZCBJbmxpbmVBY2Nlc3M6
OnJld2lyZVN0dWJBc0p1bXBJbkFjY2VzcyhDb2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJl
U3R1YkluZm8mIHN0dWJJbmZvLCBDb2RlTG9jYXRpb25MYWJlbDxKSVRTdHViUm91dGluZVB0clRh
Zz4gdGFyZ2V0KQogewogICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpKSB7Ci0gICAgICAg
IC8vIElmIGl0IGlzIG5vdCBHZXRCeUlkLWxpa2UtdGhpbmcsIHdlIGRvIG5vdCBlbWl0IG5vcCBz
bGVkIChlLmcuIEdldEJ5VmFsKS4KLSAgICAgICAgLy8gVGhlIGNvZGUgaXMgYWxyZWFkeSBhbiBp
bmRpcmVjdCBqdW1wLCBhbmQgb25seSB0aGluZyB3ZSBzaG91bGQgZG8gaXMgcmVwbGFjaW5nIG1f
Y29kZVB0ci4KLSAgICAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpICE9IEpJVFR5cGU6OkJh
c2VsaW5lSklUICYmIHN0dWJJbmZvLmhhc0NvbnN0YW50SWRlbnRpZmllcikgewotICAgICAgICAg
ICAgLy8gSWYgbV9jb2RlUHRyIGlzIHBvaW50aW5nIHRvIHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRM
b2NhdGlvbiwgdGhpcyBtZWFucyB0aGF0IElubGluZUFjY2VzcyBjb2RlIGlzIG5vdCBhIHN0dWIg
b25lLgotICAgICAgICAgICAgLy8gV2UgcmV3cml0ZSB0aGlzIHdpdGggdGhlIHN0dWItYmFzZWQg
ZGlzcGF0Y2hpbmcgY29kZSBvbmNlLCBhbmQgY29udGludWUgdXNpbmcgaXQgdW50aWwgd2UgcmVz
ZXQgdGhlIGNvZGUuCi0gICAgICAgICAgICBpZiAoc3R1YkluZm8ubV9jb2RlUHRyLmV4ZWN1dGFi
bGVBZGRyZXNzKCkgPT0gc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OmVtaXRKSVRDb2RlT3Zl
cihzdHViSW5mby5zdGFydC5yZXRhZ2dlZDxKU0ludGVybmFsUHRyVGFnPigpLCBzY29wZWRMYW1i
ZGE8dm9pZChDQ2FsbEhlbHBlcnMmKT4oWyZdKENDYWxsSGVscGVycyYgaml0KSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cigmc3R1Yklu
Zm8pLCBzdHViSW5mby5tX3N0dWJJbmZvR1BSKTsKLSAgICAgICAgICAgICAgICAgICAgaml0LmZh
ckp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvLm1fc3R1YkluZm9HUFIsIFN0cnVj
dHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsK
LSAgICAgICAgICAgICAgICAgICAgYXV0byBqdW1wID0gaml0Lmp1bXAoKTsKLSAgICAgICAgICAg
ICAgICAgICAgYXV0byBkb25lTG9jYXRpb24gPSBzdHViSW5mby5kb25lTG9jYXRpb247Ci0gICAg
ICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0oTGlua0J1ZmZlciYgbGlua0J1ZmZl
cikgewotICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5saW5rKGp1bXAsIGRvbmVM
b2NhdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pLCAi
SW5saW5lQWNjZXNzOiBsaW5raW5nIHN0dWIgY2FsbCIpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0KICAgICAgICAgc3R1YkluZm8ubV9jb2RlUHRyID0gdGFyZ2V0OwogICAgICAgICBzdHVi
SW5mby5tX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5jbGVhcigpOyAvLyBDbGVhciBvdXQg
dGhlIGlubGluZSBhY2Nlc3MgY29kZS4KICAgICAgICAgcmV0dXJuOwpAQCAtNDYyLDcgKzQ0NCw3
IEBAIHZvaWQgSW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJCiAKIHZvaWQgSW5saW5lQWNjZXNzOjpyZXNldFN0
dWJBc0p1bXBJbkFjY2VzcyhDb2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8m
IHN0dWJJbmZvKQogewotICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpICYmIGNvZGVCbG9j
ay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKSB7CisgICAgaWYgKGNvZGVCbG9j
ay0+dXNlRGF0YUlDKCkpIHsKICAgICAgICAgc3R1YkluZm8ubV9jb2RlUHRyID0gc3R1YkluZm8u
c2xvd1BhdGhTdGFydExvY2F0aW9uOwogICAgICAgICBzdHViSW5mby5tX2lubGluZUFjY2Vzc0Jh
c2VTdHJ1Y3R1cmVJRC5jbGVhcigpOyAvLyBDbGVhciBvdXQgdGhlIGlubGluZSBhY2Nlc3MgY29k
ZS4KICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggZmY5Yjg0MmVjNmY5Yjc4YzgxZmRjZTcxN2RkNGMz
ZjFjYmMxMGU3Ny4uYjEyNGIzOTQ2NDc2NmMyMTBlNzlkM2EyMmU1NTk3NjViNGNlM2Y1NyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CkBAIC0xNzEsNyArMTcxLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChD
b2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcKICAgICAKICAgICBK
SVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoc2xv
d1BhdGhUYXJnZXQpOwotICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQYXRoSnVtcCgpKTsK
KyAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKQorICAgICAgICBz
bG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6REZHSklUKSkgewpAQCAtMjA4LDcgKzIwOSw4IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJl
ZyBiYXNlR1BSCiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAg
ICBzbG93Q2FzZXMuYXBwZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5k
KGdlbi5zbG93UGF0aEp1bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlw
ZTo6REZHSklUKSkKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkp
OwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGg7
CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CkBAIC00MjQy
LDIwICs0MjQ0LDIxIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkK
IAogICAgIGNhc2UgR2V0QnlJZFdpdGhUaGlzOiB7CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS51c2VLaW5kKCkgPT0gQ2VsbFVzZSAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2Vs
bFVzZSkgewotICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZv
OwogICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGls
ZDEoKSk7CiAgICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCB0aGlzVmFsdWUodGhpcywg
bm9kZS0+Y2hpbGQyKCkpOwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOwotICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpE
RkdKSVQpKSB7Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKLSAgICAg
ICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICAgICAgICAgIEdQ
UlJlZyB0aGlzVmFsdWVHUFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAgIEdQ
UlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9u
YWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQ
UiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkRGR0pJVCkpIHsKKyAgICAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMp
OworICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAg
ICAgICAgICAgCkBAIC00MjY0LDIwICs0MjY3LDIxIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBu
b2RlKTsKICAgICAgICAgICAgIAogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RkOjpv
cHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFu
ZCB0aGlzVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogCi0gICAgICAgICAgICBHUFJSZWcg
c3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVz
ZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uZW1w
bGFjZSh0aGlzKTsKLSAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIo
KTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIo
KTsKICAgICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVHUFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlz
KTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgICAg
IEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICBpZiAoSklU
Q29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKKyAgICAgICAgICAgICAgICBzdHVi
SW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1Yklu
Zm8tPmdwcigpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBmbHVz
aFJlZ2lzdGVycygpOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggYzQwN2IwMGM0ZGFiN2Q2NzZhMDVmOWUzZDUwZGRk
MWE3MjEwMDJhYi4uNzhkMDZiMWNjNjBjMjA0ZjEyNWFlMDg4Njc5YzYzNWU5YmFjNWM0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNDcw
NCw3ICs0NzA0LDggQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgICAgICAgICAg
Wz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dN
YWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogCi0gICAgICAgICAg
ICAgICAgICAgICAgICBnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExK
SVQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1w
KCkubGluaygmaml0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFi
ZWwgc2xvd1BhdGhCZWdpbiA9IGppdC5sYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpDYWxsIHNsb3dQYXRoQ2FsbDsKICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSkgewpAQCAtMTI4OTcsMTIg
KzEyODk4LDggQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogCiAgICAgICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAgICAgICAgICAgICAgICAgZ2VuZXJh
dG9yLT5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7Ci0gICAgICAgICAgICAgICAgaWYgY29uc3RleHBy
ICh0eXBlID09IEFjY2Vzc1R5cGU6OkluQnlJZCkKKyAgICAgICAgICAgICAgICBpZiAoIUpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQogICAgICAgICAgICAgICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkpOwotICAgICAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRU
eXBlOjpGVExKSVQpKQotICAgICAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChn
ZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpKTsKLSAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0LmxhYmVsKCk7CiAKICAgICAgICAg
ICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoCkBAIC0xNTExNCw3ICsxNTExMSw4IEBAIElHTk9S
RV9DTEFOR19XQVJOSU5HU19FTkQKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBvcHRp
bWl6YXRpb25GdW5jdGlvbiA9IGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbih0
eXBlKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAo
KS5saW5rKCZqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFKSVRDb2RlOjp1c2VE
YXRhSUMoSklUVHlwZTo6RlRMSklUKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5l
cmF0b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4gPSBqaXQubGFiZWwoKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBzbG93UGF0aENhbGw7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJ
VCkpIHsKQEAgLTE1MTk4LDcgKzE1MTk2LDggQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAog
CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9wdGltaXphdGlvbkZ1bmN0aW9uID0gb3Bl
cmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemU7CiAKLSAgICAgICAgICAgICAgICAgICAgICAg
IGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAoKS5saW5rKCZqaXQp
OwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBzbG93UGF0aEJl
Z2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEpJVENvZGU6
OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29k
ZS5oCmluZGV4IDFlMmVmZDU4ZTczYzQ0MGY3MzczMTUzNmQwYWNhMDVhNzgxM2E2NzQuLmNiYWVk
MDBlMTgwMGMyZWYyOTNlNDMzZGE1Y2U5ODVkNjU3NzI0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUQ29kZS5oCkBAIC0xNjUsOCArMTY1LDYgQEAgY2xhc3MgSklUQ29kZSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxKSVRDb2RlPiB7CiAgICAgewogICAgICAgICBpZiAoSklUQ29k
ZTo6aXNCYXNlbGluZUNvZGUoaml0VHlwZSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgaWYgKCFPcHRpb25zOjp1c2VEYXRhSUMoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgcmV0dXJuIE9wdGlvbnM6OnVzZURhdGFJQ0luT3B0aW1pemluZ0pJVCgpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVD
YWNoZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNh
Y2hlR2VuZXJhdG9yLmNwcAppbmRleCBiNjVhNjA0YzM0ZmUxYzUyNzMyYTcyZjM4MGVlZGUzY2Qz
MWQ0YmI5Li41YzMxYzM1MzQyYWE2MjNkMDZhYjY5ZmUwYTU0MmNiOWIyMDY3MWY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9y
LmNwcApAQCAtMTA3LDE1ICsxMDcsMTkgQEAgdm9pZCBKSVRCeUlkR2VuZXJhdG9yOjpmaW5hbGl6
ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgpCiAKIHZvaWQgSklU
QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0Q29tbW9uKE1hY3JvQXNzZW1ibGVyJiBqaXQsIHNp
emVfdCBpbmxpbmVJQ1NpemUpCiB7Ci0gICAgLy8gV2UgZ2VuZXJhdGUgdGhlIHNhbWUgY29kZSBy
ZWdhcmRsZXNzIG9mIHdoZXRoZXIgU2hhcmVkSUMgaXMgZW5hYmxlZCBiZWNhdXNlIHdlIHN0aWxs
IG5lZWQgdG8gdXNlIElubGluZUFjY2VzcwotICAgIC8vIGZvciB0aGUgcGVyZm9ybWFuY2UgcmVh
c29uLgogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKLSAgICBzaXplX3Qgc3RhcnRTaXplID0g
aml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVTaXplKCk7Ci0gICAgbV9zbG93UGF0aEp1bXAg
PSBqaXQuanVtcCgpOwotICAgIHNpemVfdCBqdW1wU2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZm
ZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOwotICAgIHNpemVfdCBub3BzVG9FbWl0SW5CeXRl
cyA9IGlubGluZUlDU2l6ZSAtIGp1bXBTaXplOwotICAgIGppdC5lbWl0Tm9wcyhub3BzVG9FbWl0
SW5CeXRlcyk7Ci0gICAgQVNTRVJUKGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgp
IC0gc3RhcnRTaXplID09IGlubGluZUlDU2l6ZSk7CisgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJ
QyhtX2ppdFR5cGUpKSB7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CisgICAgICAgIGpp
dC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BS
LCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHViUm91dGluZVB0
clRhZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2l6ZV90IHN0YXJ0U2l6ZSA9IGppdC5tX2Fz
c2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpOworICAgICAgICBtX3Nsb3dQYXRoSnVtcCA9IGpp
dC5qdW1wKCk7CisgICAgICAgIHNpemVfdCBqdW1wU2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZm
ZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOworICAgICAgICBzaXplX3Qgbm9wc1RvRW1pdElu
Qnl0ZXMgPSBpbmxpbmVJQ1NpemUgLSBqdW1wU2l6ZTsKKyAgICAgICAgaml0LmVtaXROb3BzKG5v
cHNUb0VtaXRJbkJ5dGVzKTsKKyAgICAgICAgQVNTRVJUKGppdC5tX2Fzc2VtYmxlci5idWZmZXIo
KS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplID09IGlubGluZUlDU2l6ZSk7CisgICAgICAgIG1fZG9u
ZSA9IGppdC5sYWJlbCgpOworICAgIH0KICAgICBtX2RvbmUgPSBqaXQubGFiZWwoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCA4MjdmMWE0ZDlj
MWVjYzg5ZDMyMDQzMzM2MTVjM2NhZWMyMmEwZTY4Li5kZGEwOTFhMjdmMzliNTlhMDFlZGI1NDhj
YTMyZmNmNzc3YmU3MTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25z
LmNwcApAQCAtNDM0LDkgKzQzNCw2IEBAIHZvaWQgT3B0aW9uczo6cmVjb21wdXRlRGVwZW5kZW50
T3B0aW9ucygpCiAgICAgT3B0aW9uczo6dXNlQ29uY3VycmVudEdDKCkgPSBmYWxzZTsKICNlbmRp
ZgogCi0gICAgaWYgKCFPcHRpb25zOjp1c2VEYXRhSUMoKSkKLSAgICAgICAgT3B0aW9uczo6dXNl
RGF0YUlDSW5PcHRpbWl6aW5nSklUKCkgPSBmYWxzZTsKLQogICAgIC8vIEF0IGluaXRpYWxpemF0
aW9uIHRpbWUsIHdlIG1heSBkZWNpZGUgdGhhdCB1c2VKSVQgc2hvdWxkIGJlIGZhbHNlIGZvciBh
bnkKICAgICAvLyBudW1iZXIgb2YgcmVhc29ucyAoaW5jbHVkaW5nIGZhaWxpbmcgdG8gYWxsb2Nh
dGUgSklUIG1lbW9yeSksIGFuZCB0aGVyZWZvcmUsCiAgICAgLy8gd2lsbCAvIHNob3VsZCBub3Qg
YmUgYWJsZSB0byBlbmFibGUgYW55IEpJVCByZWxhdGVkIHNlcnZpY2VzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKaW5kZXggODI1YTJiNjQ4N2ViZGRkMjU1
MjVlMjZjNDA4NDNhMDUyYTcwNjAyYi4uNjk0ZmUzMDk0ZTdkNTE1ZGVjNDkyZmFkYTM3MTkxMDE2
ZjczNDE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
c0xpc3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5o
CkBAIC01MzEsNyArNTMxLDYgQEAgYm9vbCBjYW5Vc2VXZWJBc3NlbWJseUZhc3RNZW1vcnkoKTsK
ICAgICB2KEJvb2wsIGR1bXBCYXNlbGluZUpJVFNpemVTdGF0aXN0aWNzLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgdihCb29sLCBkdW1wREZHSklUU2l6ZVN0YXRpc3RpY3MsIGZhbHNl
LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHZlcmJvc2VFeGVjdXRhYmxlUG9vbEFs
bG9jYXRpb24sIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKLSAgICB2KEJvb2wsIHVzZURhdGFJ
QywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlRGF0YUlDSW5PcHRp
bWl6aW5nSklULCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCB1c2VEYXRh
SUNTaGFyaW5nLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCB1c2VCYXNl
bGluZUpJVENvZGVTaGFyaW5nLCBpczY0Qml0KCksIE5vcm1hbCwgbnVsbHB0cikgXApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQwZDdkMmNjNzRl
OWM5NmQ1NTc2OWZjMjAwNDQ2NTlhZDM1MGQ3NWEuLmVhODc0MWNmMGIxZTc4MjIzODE0NTBiYzk2
MWM5MGE3OGU2MjhmMmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFtKU0NdIFRlc3QgREZHIC8gRlRMIERhdGFJQwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgorCiAyMDIyLTAzLTIxICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIERpc2FibGUgdGhlIDxtb2RlbD4gZWxlbWVudCBp
biBDYXB0aXZlIFBvcnRhbCBtb2RlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4tanNj
LXN0cmVzcy10ZXN0cyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKaW5kZXgg
ZGQ3MTI4ZWU0MTQ0NWFmY2NkNzk0NjA2ZDU5MTYzZjNkOTUzMWQ0NS4uOTE2NjU4YjFhMjVhNjkx
MDBmOTVlODJkYTk2NWZiZWRkMGJhY2I1OCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4t
anNjLXN0cmVzcy10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3Rz
CkBAIC0xMDkxLDcgKzEwOTEsNyBAQCBCQVNFX01PREVTID0gWwogICAgICAgICAiRlRMTm9DSklU
IiwKICAgICAgICAgIm1pc2MtZnRsLW5vLWNqaXQiLAogICAgICAgICBbCi0gICAgICAgICAgICAi
LS11c2VEYXRhSUM9dHJ1ZSIsCisgICAgICAgICAgICAiLS11c2VEYXRhSUNJbk9wdGltaXppbmdK
SVQ9dHJ1ZSIsCiAgICAgICAgIF0gKwogICAgICAgICBGVExfT1BUSU9OUyArCiAgICAgICAgIE5P
X0NKSVRfT1BUSU9OUwpAQCAtMTExNyw3ICsxMTE3LDcgQEAgQkFTRV9NT0RFUyA9IFsKICAgICAg
ICAgICAgICItLXZhbGlkYXRlQkNFPXRydWUiLAogICAgICAgICAgICAgIi0tdXNlU2FtcGxpbmdQ
cm9maWxlcj10cnVlIiwKICAgICAgICAgICAgICItLWFpckZvcmNlSVJDQWxsb2NhdG9yPXRydWUi
LAotICAgICAgICAgICAgIi0tdXNlRGF0YUlDPXRydWUiLAorICAgICAgICAgICAgIi0tdXNlRGF0
YUlDSW5PcHRpbWl6aW5nSklUPXRydWUiLAogICAgICAgICBdICsKICAgICAgICAgRlRMX09QVElP
TlMgKwogICAgICAgICBOT19DSklUX09QVElPTlMKQEAgLTExNzgsNyArMTE3OCw3IEBAIEJBU0Vf
TU9ERVMgPSBbCiAgICAgICAgICAgICAiLS1haXJGb3JjZUJyaWdnc0FsbG9jYXRvcj10cnVlIiwK
ICAgICAgICAgICAgICItLXVzZVJhbmRvbWl6aW5nRXhlY3V0YWJsZUlzbGFuZEFsbG9jYXRpb249
dHJ1ZSIsCiAgICAgICAgICAgICAiLS1mb3JjZVBvbHlQcm90bz10cnVlIiwKLSAgICAgICAgICAg
ICItLXVzZURhdGFJQz10cnVlIiwKKyAgICAgICAgICAgICItLXVzZURhdGFJQ0luT3B0aW1pemlu
Z0pJVD10cnVlIiwKICAgICAgICAgXSArCiAgICAgICAgIEZUTF9PUFRJT05TICsKICAgICAgICAg
RUFHRVJfT1BUSU9OUyArCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDBkMjZiNzM3NDViYjc0MDE2OGMwNWQwN2JjNzhjNjkxZjUzMTcwMTAu
LjExNDI4MWRjZDVlYmNhZTE4MjFhNWJiZTU3OWNhZGY1MjZlMzM0YTIgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMjItMDMtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBbSlNDXSBUZXN0IERGRyAvIEZUTCBEYXRhSUMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJhcmdz
LmpzOgorICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9yaWNoYXJkcy10cnktY2F0Y2guanM6CisK
IDIwMjItMDMtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbSlNDXSBSZWZlcmVuY2VFcnJvciB3aGVuIHVzaW5nIGV4dHJhIHBhcmVucyBpbiBjbGFzcyBm
aWVsZHMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJh
cmdzLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGVsdGFibHVlLXZhcmFyZ3MuanMKaW5k
ZXggYThkZTQ5YmJiNGMwZjUwYzM5YmNhYjNkOTg4MDMwNTdiOTE0N2E2OC4uMTBiZjdhZGIzYmE5
NDZhZDQwNjNiOWFhMjA3MzJhMjdkYWQ5NzdiOSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9taWNyb2Jl
bmNobWFya3MvZGVsdGFibHVlLXZhcmFyZ3MuanMKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFy
a3MvZGVsdGFibHVlLXZhcmFyZ3MuanMKQEAgLTEsNSArMSw1IEBACiAvL0Agc2tpcCBpZiAkbW9k
ZWwgPT0gIkFwcGxlIFdhdGNoIFNlcmllcyAzIiAjIGFkZGVkIGJ5IG1hcmstanNjLXN0cmVzcy10
ZXN0LnB5Ci0vL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRGF0YUlDPXRydWUiLCAiLS11c2VEYXRh
SUNTaGFyaW5nPXRydWUiKQorLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZURhdGFJQ0luT3B0aW1p
emluZ0pJVD10cnVlIiwgIi0tdXNlRGF0YUlDU2hhcmluZz10cnVlIikKIAogLy8gQ29weXJpZ2h0
IDIwMDggdGhlIFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vIENv
cHlyaWdodCAxOTk2IEpvaG4gTWFsb25leSBhbmQgTWFyaW8gV29sY3prby4KZGlmZiAtLWdpdCBh
L0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRyeS1jYXRjaC5qcyBiL0pTVGVzdHMv
bWljcm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRyeS1jYXRjaC5qcwppbmRleCBjYjJlMjllYThiMDNk
MzVjNGQ5NTYyZmY0YTIwY2QyYzBlMTc5NDI2Li42MTBkNjI2ODQ5YjE3ZDc0YzMzNjRjMTE2YmQy
ZTQ3MzFjYzJlMTU2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yaWNoYXJk
cy10cnktY2F0Y2guanMKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmljaGFyZHMtdHJ5
LWNhdGNoLmpzCkBAIC0xLDUgKzEsNSBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBsZSBX
YXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQotLy9AIHJl
cXVpcmVPcHRpb25zKCItLXVzZURhdGFJQz10cnVlIiwgIi0tdXNlRGF0YUlDU2hhcmluZz10cnVl
IikKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1ZSIs
ICItLXVzZURhdGFJQ1NoYXJpbmc9dHJ1ZSIpCiAKIC8vIENvcHlyaWdodCAyMDA2LTIwMDggdGhl
IFY4IHByb2plY3QgYXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIC8vIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455354</attachid>
            <date>2022-03-22 02:25:23 -0700</date>
            <delta_ts>2022-03-22 11:07:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231224-20220322022522.patch</filename>
            <type>text/plain</type>
            <size>77064</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZTIwYjdiMTJiMzg2NWRjZDg1ZjQyNjA4N2ZlNzE4NGZlNzUxMDc4Li4xYzRmMmFiMmU1MTQ2MTIy
MDM5ZDEyMWI4ZWYyMWYxNzM1ZTZmM2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MCBAQAorMjAyMi0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFRlc3QgREZHIC8gRlRMIERhdGFJQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBieXRlY29kZS9JbmxpbmVBY2Nlc3Mu
Y3BwOgorICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OmlzQ2FjaGVhYmxlQXJyYXlMZW5ndGgp
OgorICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OmlzQ2FjaGVhYmxlU3RyaW5nTGVuZ3RoKToK
KyAgICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5BY2Nlc3MpOgor
ICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OnJlc2V0U3R1YkFzSnVtcEluQWNjZXNzKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlkRmx1c2gpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1
bGF0aXZlSklUOjpjb21waWxlSW5CeUlkKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQpOgorICAgICAgICAoSlND
OjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkV2l0aFRoaXMpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNh
Y2hlZEdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRH
ZXRCeUlkV2l0aFRoaXMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y2FjaGVkUHV0QnlJZCk6CisgICAgICAgIChKU0M6OkZU
TDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVDb21wYXJlU3RyaWN0RXEpOgorICAgICAgICAq
IGppdC9KSVRDb2RlLmg6CisgICAgICAgIChKU0M6OkpJVENvZGU6OnVzZURhdGFJQyk6CisgICAg
ICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SklU
QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0Q29tbW9uKToKKyAgICAgICAgKEpTQzo6Z2VuZXJh
dGVHZXRCeUlkSW5saW5lQWNjZXNzKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlJZEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVEdldEJ5SWRXaXRoVGhpc0dl
bmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OmdlbmVyYXRlUHV0QnlJ
ZElubGluZUFjY2Vzcyk6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5SWRHZW5lcmF0b3I6OmdlbmVy
YXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5SWRHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVREZWxCeVZhbEdlbmVy
YXRvcjo6Z2VuZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVERlbEJ5SWRHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRJbkJ5VmFsR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVJbkJ5SWRJbmxpbmVB
Y2Nlc3MpOgorICAgICAgICAoSlNDOjpKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgpOgorICAgICAgICAoSlNDOjpKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVE
YXRhSUNGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeVZhbEdlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5VmFsR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJh
dG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IuaDoKKyAgICAgICAgKEpTQzo6SklUSW5saW5lQ2FjaGVHZW5lcmF0b3I6OnJlcG9ydFNs
b3dQYXRoQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpzbG93
UGF0aEJlZ2luIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SklUQnlJZEdlbmVyYXRvcjo6c2xvd1Bh
dGhKdW1wIGNvbnN0KToKKyAgICAgICAgKEpTQzo6SklUSW5CeVZhbEdlbmVyYXRvcjo6c2xvd1Bh
dGhKdW1wIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpyZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKToKKyAgICAgICAgKiBydW50
aW1lL09wdGlvbnNMaXN0Lmg6CisKIDIwMjItMDMtMjEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSZWZlcmVuY2VFcnJvciB3aGVuIHVzaW5nIGV4
dHJhIHBhcmVucyBpbiBjbGFzcyBmaWVsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAKaW5kZXggZmI1ZWVhMmRjYmFmMmM0MGEwN2ZhY2I3ZDU3
OTMzODhjNWMyNzZhYS4uOWJhMGM5MjBlYjMyZTNiZjgzNDQxNzU3NjhlNTlmMTgzOTcxN2M4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAK
QEAgLTI5OSw3ICsyOTksNyBAQCBib29sIElubGluZUFjY2Vzczo6aXNDYWNoZWFibGVBcnJheUxl
bmd0aChDb2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZgogICAgIGlmICghc3R1
YkluZm8uaGFzQ29uc3RhbnRJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBpZiAoY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6QmFzZWxpbmVKSVQpCisgICAg
aWYgKGNvZGVCbG9jay0+dXNlRGF0YUlDKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGlmICghaGFzRnJlZVJlZ2lzdGVyKHN0dWJJbmZvKSkKQEAgLTM0MCw3ICszNDAsNyBAQCBib29s
IElubGluZUFjY2Vzczo6aXNDYWNoZWFibGVTdHJpbmdMZW5ndGgoQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIFN0cnVjdHVyZVN0dWJJbgogICAgIGlmICghc3R1YkluZm8uaGFzQ29uc3RhbnRJZGVudGlm
aWVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoY29kZUJsb2NrLT5qaXRUeXBl
KCkgPT0gSklUVHlwZTo6QmFzZWxpbmVKSVQpCisgICAgaWYgKGNvZGVCbG9jay0+dXNlRGF0YUlD
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBoYXNGcmVlUmVnaXN0ZXIo
c3R1YkluZm8pOwpAQCAtNDI4LDI0ICs0MjgsNiBAQCB2b2lkIElubGluZUFjY2Vzczo6cmV3aXJl
U3R1YkFzSnVtcEluQWNjZXNzTm90VXNpbmdJbmxpbmVBY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQgog
dm9pZCBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXBJbkFjY2VzcyhDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvLCBDb2RlTG9jYXRpb25MYWJlbDxK
SVRTdHViUm91dGluZVB0clRhZz4gdGFyZ2V0KQogewogICAgIGlmIChjb2RlQmxvY2stPnVzZURh
dGFJQygpKSB7Ci0gICAgICAgIC8vIElmIGl0IGlzIG5vdCBHZXRCeUlkLWxpa2UtdGhpbmcsIHdl
IGRvIG5vdCBlbWl0IG5vcCBzbGVkIChlLmcuIEdldEJ5VmFsKS4KLSAgICAgICAgLy8gVGhlIGNv
ZGUgaXMgYWxyZWFkeSBhbiBpbmRpcmVjdCBqdW1wLCBhbmQgb25seSB0aGluZyB3ZSBzaG91bGQg
ZG8gaXMgcmVwbGFjaW5nIG1fY29kZVB0ci4KLSAgICAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlw
ZSgpICE9IEpJVFR5cGU6OkJhc2VsaW5lSklUICYmIHN0dWJJbmZvLmhhc0NvbnN0YW50SWRlbnRp
ZmllcikgewotICAgICAgICAgICAgLy8gSWYgbV9jb2RlUHRyIGlzIHBvaW50aW5nIHRvIHN0dWJJ
bmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbiwgdGhpcyBtZWFucyB0aGF0IElubGluZUFjY2VzcyBj
b2RlIGlzIG5vdCBhIHN0dWIgb25lLgotICAgICAgICAgICAgLy8gV2UgcmV3cml0ZSB0aGlzIHdp
dGggdGhlIHN0dWItYmFzZWQgZGlzcGF0Y2hpbmcgY29kZSBvbmNlLCBhbmQgY29udGludWUgdXNp
bmcgaXQgdW50aWwgd2UgcmVzZXQgdGhlIGNvZGUuCi0gICAgICAgICAgICBpZiAoc3R1YkluZm8u
bV9jb2RlUHRyLmV4ZWN1dGFibGVBZGRyZXNzKCkgPT0gc3R1YkluZm8uc2xvd1BhdGhTdGFydExv
Y2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OmVtaXRKSVRDb2RlT3ZlcihzdHViSW5mby5zdGFydC5yZXRhZ2dlZDxKU0ludGVybmFsUHRy
VGFnPigpLCBzY29wZWRMYW1iZGE8dm9pZChDQ2FsbEhlbHBlcnMmKT4oWyZdKENDYWxsSGVscGVy
cyYgaml0KSB7Ci0gICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cigmc3R1YkluZm8pLCBzdHViSW5mby5tX3N0dWJJbmZvR1BSKTsKLSAgICAgICAg
ICAgICAgICAgICAgaml0LmZhckp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvLm1f
c3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0
dWJSb3V0aW5lUHRyVGFnKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBqdW1wID0gaml0Lmp1
bXAoKTsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBkb25lTG9jYXRpb24gPSBzdHViSW5mby5k
b25lTG9jYXRpb247Ci0gICAgICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzayhbPV0oTGlu
a0J1ZmZlciYgbGlua0J1ZmZlcikgewotICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZl
ci5saW5rKGp1bXAsIGRvbmVMb2NhdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgIH0pLCAiSW5saW5lQWNjZXNzOiBsaW5raW5nIHN0dWIgY2FsbCIpOwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0KICAgICAgICAgc3R1YkluZm8ubV9jb2RlUHRyID0gdGFy
Z2V0OwogICAgICAgICBzdHViSW5mby5tX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5jbGVh
cigpOyAvLyBDbGVhciBvdXQgdGhlIGlubGluZSBhY2Nlc3MgY29kZS4KICAgICAgICAgcmV0dXJu
OwpAQCAtNDYyLDcgKzQ0NCw3IEBAIHZvaWQgSW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1w
SW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJCiAKIHZvaWQgSW5s
aW5lQWNjZXNzOjpyZXNldFN0dWJBc0p1bXBJbkFjY2VzcyhDb2RlQmxvY2sqIGNvZGVCbG9jaywg
U3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZvKQogewotICAgIGlmIChjb2RlQmxvY2stPnVzZURh
dGFJQygpICYmIGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKSB7
CisgICAgaWYgKGNvZGVCbG9jay0+dXNlRGF0YUlDKCkpIHsKICAgICAgICAgc3R1YkluZm8ubV9j
b2RlUHRyID0gc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uOwogICAgICAgICBzdHViSW5m
by5tX2lubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRC5jbGVhcigpOyAvLyBDbGVhciBvdXQgdGhl
IGlubGluZSBhY2Nlc3MgY29kZS4KICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCAzNjBlMTgxODNlY2JhMWUw
Y2MwNWQ3NmM3MmNkZjEyMTllY2NiMTZkLi40ODY5YWIyNjQ4M2FkYmVkMGY0N2MyYTg3ZTM4Y2Y3
ZjRlZGYzZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcApAQCAtMTA0OSwyMCArMTA0OSwyNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlR2V0QnlJZChOb2RlKiBub2RlLCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUpCiAgICAgc3dp
dGNoIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICBjYXNlIENlbGxVc2U6IHsKICAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6
Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEpTVmFsdWVSZWdzVGVt
cG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgYmFzZSk7CiAKICAgICAgICAgR1BSUmVnIHN0dWJJ
bmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZh
bGlkR1BSUmVnOwogICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJ
VCkpIHsKICAgICAgICAgICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICBz
Y3JhdGNoLmVtcGxhY2UodGhpcyk7CiAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZv
LT5ncHIoKTsKKyAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKICAgICAg
ICAgfQogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IEpTVmFsdWVSZWdzOjpwYXlsb2Fk
T25seShiYXNlLmdwcigpKTsKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3Vs
dC5yZWdzKCk7CiAKICAgICAgICAgYmFzZS51c2UoKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wKCksIE5lZWRU
b1NwaWxsLCBhY2Nlc3NUeXBlKTsKKyAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5vcmlnaW4u
c2VtYW50aWMsIGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwg
bm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBOZWVkVG9T
cGlsbCwgYWNjZXNzVHlwZSk7CiAKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBu
b2RlLCBEYXRhRm9ybWF0SlMsIFVzZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgICAg
IGJyZWFrOwpAQCAtMTA3MCwxMyArMTA3NCwxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21w
aWxlR2V0QnlJZChOb2RlKiBub2RlLCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUpCiAKICAgICBjYXNl
IFVudHlwZWRVc2U6IHsKICAgICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJ
bmZvOworICAgICAgICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAg
ICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEpT
VmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3VsdCh0aGlzLCBSZXVzZSwgYmFzZSk7CiAKICAgICAgICAg
R1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgR1BSUmVnIHNjcmF0
Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkRGR0pJVCkpIHsKICAgICAgICAgICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7Cisg
ICAgICAgICAgICBzY3JhdGNoLmVtcGxhY2UodGhpcyk7CiAgICAgICAgICAgICBzdHViSW5mb0dQ
UiA9IHN0dWJJbmZvLT5ncHIoKTsKKyAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5n
cHIoKTsKICAgICAgICAgfQogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNW
YWx1ZVJlZ3MoKTsKICAgICAgICAgSlNWYWx1ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdz
KCk7CkBAIC0xMDg1LDcgKzEwOTMsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QnlJZChOb2RlKiBub2RlLCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUpCiAKICAgICAgICAgSklUQ29t
cGlsZXI6Okp1bXAgbm90Q2VsbCA9IG1faml0LmJyYW5jaElmTm90Q2VsbChiYXNlUmVncyk7CiAK
LSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VSZWdzLCBy
ZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBub3RD
ZWxsLCBOZWVkVG9TcGlsbCwgYWNjZXNzVHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9k
ZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNj
cmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgTmVlZFRvU3Bp
bGwsIGFjY2Vzc1R5cGUpOwogCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9k
ZSwgRGF0YUZvcm1hdEpTLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogICAgICAgICBi
cmVhazsKQEAgLTExMDIsMTMgKzExMTAsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUdldEJ5SWRGbHVzaChOb2RlKiBub2RlLCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUpCiAgICAgc3dp
dGNoIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkpIHsKICAgICBjYXNlIENlbGxVc2U6IHsKICAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6
Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEpTVmFsdWVSZWdzRmx1
c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogCiAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQ
UiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQ
UlJlZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7
CiAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgc2NyYXRj
aC5lbXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3By
KCk7CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAgICAgICAgIH0K
ICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHko
YmFzZS5ncHIoKSk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVn
cygpOwpAQCAtMTExNyw3ICsxMTI5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5SWRGbHVzaChOb2RlKiBub2RlLCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUpCiAKICAgICAgICAg
Zmx1c2hSZWdpc3RlcnMoKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFi
bGVJZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wKCksIERvbnRTcGlsbCwgYWNjZXNzVHlw
ZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVn
cywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlk
ZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgRG9udFNwaWxsLCBhY2Nlc3NUeXBlKTsK
IAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUywg
VXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBAIC0xMTI1LDEz
ICsxMTM3LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlkRmx1c2goTm9k
ZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgY2FzZSBVbnR5cGVkVXNlOiB7
CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIEpTVmFsdWVPcGVy
YW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNo
ZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIg
PSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJS
ZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewog
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2gu
ZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAg
ICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwogICAgICAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAgLTExNDIsNyArMTE1
OCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlkRmx1c2goTm9kZSogbm9k
ZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wIG5v
dENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoYmFzZVJlZ3MpOwogCi0gICAgICAgIGNhY2hl
ZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1
YkluZm9HUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgRG9udFNwaWxs
LCBhY2Nlc3NUeXBlKTsKKyAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50
aWMsIGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgbm9kZS0+
Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBub3RDZWxsLCBEb250U3BpbGwsIGFjY2Vzc1R5cGUpOwog
CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0YUZvcm1hdEpTLCBV
c2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogICAgICAgICBicmVhazsKQEAgLTEzMjMsMTMg
KzEzMzksMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZURlbGV0ZUJ5VmFsKE5vZGUq
IG5vZGUpCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5CeUlkKE5vZGUqIG5vZGUpCiB7
CiAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgIHN0ZDo6b3B0
aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVSZWdzVGVtcG9yYXJ5IHJlc3Vs
dCh0aGlzLCBSZXVzZSwgYmFzZSwgUGF5bG9hZFdvcmQpOwogCiAgICAgR1BSUmVnIHN0dWJJbmZv
R1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJS
ZWc7CiAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgIHNjcmF0Y2guZW1wbGFjZSh0aGlz
KTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAgICAgIHNjcmF0
Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKICAgICB9CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNl
LmdwcigpOwogICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwpAQCAt
MTM0Miw3ICsxMzYyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluQnlJZChOb2Rl
KiBub2RlKQogICAgIEpJVEluQnlJZEdlbmVyYXRvciBnZW4oCiAgICAgICAgIG1faml0LmNvZGVC
bG9jaygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRG
R0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VHUFIp
LCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUik7Ci0gICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9q
aXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0LCBzY3JhdGNoR1BSKTsKIAogICAg
IEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChn
ZW4uc2xvd1BhdGhKdW1wKCkpOwpAQCAtNDE1NCwxOCArNDE3NCwyMiBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlR2V0UHJpdmF0ZU5hbWVCeUlkKE5vZGUqIG5vZGUpCiAgICAgc3dpdGNo
IChtX2dyYXBoLmNoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSkgewogICAgIGNhc2UgQ2VsbFVzZTog
ewogICAgICAgICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgICAg
IHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOwogICAgICAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1fZ3JhcGguY2hpbGQobm9kZSwgMCkpOwogICAgICAgICBK
U1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAg
IEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3Jh
dGNoR1BSID0gSW52YWxpZEdQUlJlZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhK
SVRUeXBlOjpERkdKSVQpKSB7CiAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOwor
ICAgICAgICAgICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9H
UFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+
Z3ByKCk7CiAgICAgICAgIH0KICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBKU1ZhbHVl
UmVnczo6cGF5bG9hZE9ubHkoYmFzZS5ncHIoKSk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3Vs
dFJlZ3MgPSByZXN1bHQucmVncygpOwogCi0gICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3Jp
Z2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIG5vZGUtPmNh
Y2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3BpbGwsIEFj
Y2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKKyAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRj
aEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBO
ZWVkVG9TcGlsbCwgQWNjZXNzVHlwZTo6R2V0UHJpdmF0ZU5hbWUpOwogCiAgICAgICAgIGpzVmFs
dWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0YUZvcm1hdEpTKTsKICAgICAgICAgYnJlYWs7
CkBAIC00MTczLDIwICs0MTk3LDI0IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRQ
cml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKIAogICAgIGNhc2UgVW50eXBlZFVzZTogewogICAg
ICAgICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgICAgIHN0ZDo6
b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOwogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBi
YXNlKHRoaXMsIG1fZ3JhcGguY2hpbGQobm9kZSwgMCkpOwogICAgICAgICBKU1ZhbHVlUmVnc1Rl
bXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52
YWxpZEdQUlJlZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdK
SVQpKSB7CiAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAg
c2NyYXRjaC5lbXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5m
by0+Z3ByKCk7CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAgICAg
ICAgIH0KICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdzKCk7
CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwogCiAgICAg
ICAgIEpJVENvbXBpbGVyOjpKdW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoYmFz
ZVJlZ3MpOwogCi0gICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBi
YXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZp
ZXIoKSwgbm90Q2VsbCwgTmVlZFRvU3BpbGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsK
KyAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VSZWdzLCBy
ZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBub3RDZWxsLCBOZWVkVG9TcGlsbCwgQWNjZXNzVHlwZTo6R2V0UHJpdmF0ZU5hbWUp
OwogCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0YUZvcm1hdEpT
KTsKICAgICAgICAgYnJlYWs7CkBAIC00MzQyLDE0ICs0MzcwLDE4IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVQdXRQcml2YXRlTmFtZShOb2RlKiBub2RlKQogdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dFByaXZhdGVOYW1lQnlJZChOb2RlKiBub2RlKQogewogICAgIHN0ZDo6
b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICBzdGQ6Om9wdGlvbmFsPEdQUlRl
bXBvcmFyeT4gc2NyYXRjaDI7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CiAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywgbm9kZS0+Y2hp
bGQyKCkpOwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogCiAgICAgR1BSUmVnIHN0
dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBJbnZh
bGlkR1BSUmVnOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkg
ewogICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICBzY3JhdGNoMi5lbXBs
YWNlKHRoaXMpOwogICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKKyAgICAg
ICAgc2NyYXRjaDJHUFIgPSBzY3JhdGNoMi0+Z3ByKCk7CiAgICAgfQogICAgIEpTVmFsdWVSZWdz
IHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBi
YXNlLmdwcigpOwpAQCAtNDM1OCw3ICs0MzkwLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZVB1dFByaXZhdGVOYW1lQnlJZChOb2RlKiBub2RlKQogICAgIC8vIFdlIGVtaXQgcHJvcGVy
dHkgY2hlY2sgZHVyaW5nIERGRyBnZW5lcmF0aW9uLCBzbyB3ZSBkb24ndCBuZWVkCiAgICAgLy8g
dG8gY2hlY2sgaXQgaGVyZS4KICAgICBhdXRvIHB1dEtpbmQgPSBub2RlLT5wcml2YXRlRmllbGRQ
dXRLaW5kKCkuaXNEZWZpbmUoKSA/IFB1dEtpbmQ6OkRpcmVjdFByaXZhdGVGaWVsZERlZmluZSA6
IFB1dEtpbmQ6OkRpcmVjdFByaXZhdGVGaWVsZFNldDsKLSAgICBjYWNoZWRQdXRCeUlkKG5vZGUt
Pm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRj
aEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBwdXRLaW5kLCBFQ01BTW9kZTo6c3Ry
aWN0KCkpOworICAgIGNhY2hlZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BS
LCB2YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgbm9kZS0+
Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBwdXRLaW5kLCBFQ01BTW9kZTo6c3RyaWN0KCkpOwogCiAg
ICAgbm9SZXN1bHQobm9kZSk7CiB9CkBAIC0xNDEyOCwyMSArMTQxNjAsMjUgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eShOb2RlKiBub2RlKQog
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWRGbHVzaChOb2RlKiBub2RlKQogewog
ICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICBzdGQ6Om9wdGlv
bmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDI7CiAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgSlNWYWx1ZU9wZXJhbmQgdmFsdWUodGhpcywg
bm9kZS0+Y2hpbGQyKCkpOwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMpOwogCiAgICAg
R1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICBHUFJSZWcgc2NyYXRjaDJH
UFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6
REZHSklUKSkgewogICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICBzY3Jh
dGNoMi5lbXBsYWNlKHRoaXMpOwogICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIo
KTsKKyAgICAgICAgc2NyYXRjaDJHUFIgPSBzY3JhdGNoMi0+Z3ByKCk7CiAgICAgfQogICAgIEdQ
UlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MgPSB2
YWx1ZS5qc1ZhbHVlUmVncygpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2NyYXRjaC5ncHIo
KTsKICAgICBmbHVzaFJlZ2lzdGVycygpOwogCi0gICAgY2FjaGVkUHV0QnlJZChub2RlLT5vcmln
aW4uc2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIs
IG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6Tm90RGlyZWN0LCBub2RlLT5l
Y21hTW9kZSgpLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgpLCBEb250U3BpbGwpOworICAgIGNhY2hl
ZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJ
bmZvR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmll
cigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCksIE1hY3JvQXNzZW1ibGVy
OjpKdW1wKCksIERvbnRTcGlsbCk7CiAKICAgICBub1Jlc3VsdChub2RlKTsKIH0KQEAgLTE0MTUw
LDIwICsxNDE4NiwyNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZEZsdXNo
KE5vZGUqIG5vZGUpCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZChOb2RlKiBu
b2RlKQogewogICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICBz
dGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDI7CiAgICAgU3BlY3VsYXRlQ2VsbE9w
ZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgSlNWYWx1ZU9wZXJhbmQgdmFs
dWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoKHRoaXMp
OwogCiAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICBHUFJSZWcg
c2NyYXRjaDJHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMo
SklUVHlwZTo6REZHSklUKSkgewogICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAg
ICAgICBzY3JhdGNoMi5lbXBsYWNlKHRoaXMpOwogICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJ
bmZvLT5ncHIoKTsKKyAgICAgICAgc2NyYXRjaDJHUFIgPSBzY3JhdGNoMi0+Z3ByKCk7CiAgICAg
fQogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICBKU1ZhbHVlUmVncyB2YWx1
ZVJlZ3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOwogICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gc2Ny
YXRjaC5ncHIoKTsKIAotICAgIGNhY2hlZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBi
YXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5jYWNoZWFi
bGVJZGVudGlmaWVyKCksIFB1dEtpbmQ6Ok5vdERpcmVjdCwgbm9kZS0+ZWNtYU1vZGUoKSk7Cisg
ICAgY2FjaGVkUHV0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVn
cywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBub2RlLT5jYWNoZWFibGVJ
ZGVudGlmaWVyKCksIFB1dEtpbmQ6Ok5vdERpcmVjdCwgbm9kZS0+ZWNtYU1vZGUoKSk7CiAKICAg
ICBub1Jlc3VsdChub2RlKTsKIH0KQEAgLTE0MTcxLDIwICsxNDIxMSwyNCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlUHV0QnlJZChOb2RlKiBub2RlKQogdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEJ5SWREaXJlY3QoTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+
IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsK
ICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQ
UiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAg
ICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1wbGFjZSh0aGlz
KTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAgICAgIHNjcmF0
Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBHUFJSZWcgYmFzZUdQUiA9IGJh
c2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNWYWx1ZVJlZ3Mo
KTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAKLSAgICBjYWNoZWRQ
dXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5m
b0dQUiwgc2NyYXRjaEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBQdXRLaW5kOjpE
aXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOworICAgIGNhY2hlZFB1dEJ5SWQobm9kZS0+b3JpZ2lu
LnNlbWFudGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBz
Y3JhdGNoMkdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBQdXRLaW5kOjpEaXJlY3Qs
IG5vZGUtPmVjbWFNb2RlKCkpOwogCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CkBAIC0xNTc3OCw3
ICsxNTgyMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQcm9maWxlVHlwZShOb2Rl
KiBub2RlKQogICAgIG5vUmVzdWx0KG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpj
YWNoZWRQdXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEpTVmFs
dWVSZWdzIHZhbHVlUmVncywgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwg
Q2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBQdXRLaW5kIHB1dEtpbmQsIEVDTUFNb2Rl
IGVjbWFNb2RlLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3Rl
cnNNb2RlIHNwaWxsTW9kZSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQoQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdz
LCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBHUFJSZWcgc2NyYXRjaDJH
UFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHV0S2luZCBwdXRLaW5kLCBFQ01B
TW9kZSBlY21hTW9kZSwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVn
aXN0ZXJzTW9kZSBzcGlsbE1vZGUpCiB7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9
IHRoaXMtPnVzZWRSZWdpc3RlcnMoKTsKICAgICBpZiAoc3BpbGxNb2RlID09IERvbnRTcGlsbCkg
ewpAQCAtMTU3ODcsNiArMTU4MzEsMTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0
QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1ZhbHUKICAgICAg
ICAgdXNlZFJlZ2lzdGVycy5zZXQodmFsdWVSZWdzLCBmYWxzZSk7CiAgICAgICAgIGlmIChzdHVi
SW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQogICAgICAgICAgICAgdXNlZFJlZ2lzdGVycy5zZXQo
c3R1YkluZm9HUFIsIGZhbHNlKTsKKyAgICAgICAgaWYgKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQ
UlJlZykKKyAgICAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHNjcmF0Y2hHUFIsIGZhbHNlKTsK
KyAgICAgICAgaWYgKHNjcmF0Y2gyR1BSICE9IEludmFsaWRHUFJSZWcpCisgICAgICAgICAgICB1
c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNoMkdQUiwgZmFsc2UpOwogICAgIH0KICAgICBDYWxsU2l0
ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2VwdGlv
bkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5zaXplKCkpOwog
ICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKApAQCAtMTU3OTQsNyArMTU4NDIsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BS
UmVnIGJhc2VHUFIsIEpTVmFsdQogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoYmFz
ZUdQUiksIHZhbHVlUmVncywgc3R1YkluZm9HUFIsCiAgICAgICAgIHNjcmF0Y2hHUFIsIGVjbWFN
b2RlLCBwdXRLaW5kKTsKIAotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAgICBn
ZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIpOwogCiAg
ICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBpZiAoc2xvd1BhdGhUYXJn
ZXQuaXNTZXQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAppbmRleCA2OTUzNDU1Nzk5ZTU4ZDYyZTljOWZlM2U0NjY2M2E5ZWRiZGIyYTQ0Li4zZTE0
Mjk4MmZkNzg3NzJjNTM0MmYxZDYxNTQ0MGU4NTY2ODVkNmM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC03MjMsMTYgKzcyMywxNiBAQCBj
bGFzcyBTcGVjdWxhdGl2ZUpJVCB7CiAKICAgICB2b2lkIGNvbXBpbGVDaGVja0RldGFjaGVkKE5v
ZGUqKTsKIAotICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luLCBKU1ZhbHVlUmVncyBi
YXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2FjaGVhYmxlSWRl
bnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJz
TW9kZSwgQWNjZXNzVHlwZSk7Ci0gICAgdm9pZCBjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4sIEdQ
UlJlZyBiYXNlR1BSLCBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwg
R1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIsIFB1dEtpbmQsIEVDTUFNb2Rl
LCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCA9IEpJVENvbXBpbGVyOjpKdW1wKCks
IFNwaWxsUmVnaXN0ZXJzTW9kZSA9IE5lZWRUb1NwaWxsKTsKKyAgICB2b2lkIGNhY2hlZEdldEJ5
SWQoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJS
ZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBK
SVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nl
c3NUeXBlKTsKKyAgICB2b2lkIGNhY2hlZFB1dEJ5SWQoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VH
UFIsIEpTVmFsdWVSZWdzIHZhbHVlUmVncywgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2Ny
YXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQdXRLaW5k
LCBFQ01BTW9kZSwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxl
cjo6SnVtcCgpLCBTcGlsbFJlZ2lzdGVyc01vZGUgPSBOZWVkVG9TcGlsbCk7CiAgICAgdm9pZCBj
YWNoZWRHZXRCeVZhbChDb2RlT3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBw
cm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRh
cmdldCk7CiAKICNpZiBVU0UoSlNWQUxVRTY0KQotICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2Rl
T3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHN0dWJJbmZv
R1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdl
dCwgU3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nlc3NUeXBlKTsKLSAgICB2b2lkIGNhY2hlZEdldEJ5
SWRXaXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHRoaXNHUFIsIEdQ
UlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwg
Y29uc3QgSklUQ29tcGlsZXI6Okp1bXBMaXN0JiBzbG93UGF0aFRhcmdldCA9IEpJVENvbXBpbGVy
OjpKdW1wTGlzdCgpKTsKKyAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwgR1BSUmVn
IGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNj
cmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRo
VGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUsIEFjY2Vzc1R5cGUpOworICAgIHZvaWQgY2FjaGVk
R2V0QnlJZFdpdGhUaGlzKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgdGhpc0dQ
UiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQ
UiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgY29uc3QgSklUQ29tcGlsZXI6Okp1bXBMaXN0JiBzbG93
UGF0aFRhcmdldCA9IEpJVENvbXBpbGVyOjpKdW1wTGlzdCgpKTsKICNlbGlmIFVTRShKU1ZBTFVF
MzJfNjQpCi0gICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlVGFn
R1BST3JOb25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQ
UlJlZyByZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50
aWZpZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01v
ZGUsIEFjY2Vzc1R5cGUpOwotICAgIHZvaWQgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKENvZGVPcmln
aW4sIEdQUlJlZyBiYXNlVGFnR1BST3JOb25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIsIEdQUlJl
ZyB0aGlzVGFnR1BST3JOb25lLCBHUFJSZWcgdGhpc1BheWxvYWRHUFIsIEdQUlJlZyByZXN1bHRU
YWdHUFIsIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hl
YWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJn
ZXQgPSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENv
ZGVPcmlnaW4sIEdQUlJlZyBiYXNlVGFnR1BST3JOb25lLCBHUFJSZWcgYmFzZVBheWxvYWRHUFIs
IEdQUlJlZyByZXN1bHRUYWdHUFIsIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc3R1
YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBKSVRDb21w
aWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nlc3NUeXBl
KTsKKyAgICB2b2lkIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdGhpc1RhZ0dQUk9y
Tm9uZSwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcg
cmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwg
Q2FjaGVhYmxlSWRlbnRpZmllciwgY29uc3QgSklUQ29tcGlsZXI6Okp1bXBMaXN0JiBzbG93UGF0
aFRhcmdldCA9IEpJVENvbXBpbGVyOjpKdW1wTGlzdCgpKTsKICNlbmRpZgogCiAgICAgdm9pZCBj
b21waWxlRGVsZXRlQnlJZChOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA3ZmI1NjUyMzMyZjljNjBmNjIy
Mjg2ZmVhYTllNTZiYTYzMjdmNmNhLi4wZmYzZDkwZWVlMTBiODkxNWUxZGM5Njc3NTJkNGMzN2E2
ZGFmZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAKQEAgLTE2OCwxNCArMTY4LDE0IEBAIGJvb2wgU3BlY3VsYXRpdmVK
SVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSwgR1BSUmVnJiB0YWdHUFIsIEdQUlJlZyYgcGF5bG9h
ZEdQUiwKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29k
ZU9yaWdpbiBvcmlnaW4sIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BS
UmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEpJVENvbXBp
bGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ICwgU3BpbGxSZWdpc3RlcnNNb2RlIG1vZGUsIEFjY2Vz
c1R5cGUgdHlwZSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdp
biBvcmlnaW4sIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0
dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJzTW9k
ZSBtb2RlLCBBY2Nlc3NUeXBlIHR5cGUpCiB7Ci0gICAgY2FjaGVkR2V0QnlJZChvcmlnaW4sIGJh
c2UudGFnR1BSKCksIGJhc2UucGF5bG9hZEdQUigpLCByZXN1bHQudGFnR1BSKCksIHJlc3VsdC5w
YXlsb2FkR1BSKCksIHN0dWJJbmZvR1BSLCBpZGVudGlmaWVyLCBzbG93UGF0aFRhcmdldCwgbW9k
ZSwgdHlwZSk7CisgICAgY2FjaGVkR2V0QnlJZChvcmlnaW4sIGJhc2UudGFnR1BSKCksIGJhc2Uu
cGF5bG9hZEdQUigpLCByZXN1bHQudGFnR1BSKCksIHJlc3VsdC5wYXlsb2FkR1BSKCksIHN0dWJJ
bmZvR1BSLCBzY3JhdGNoR1BSLCBpZGVudGlmaWVyLCBzbG93UGF0aFRhcmdldCwgbW9kZSwgdHlw
ZSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoCiAgICAgQ29kZU9y
aWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXls
b2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BS
UmVnIHN0dWJJbmZvR1BSLAotICAgIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSklU
Q29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1v
ZGUsIEFjY2Vzc1R5cGUgdHlwZSkKKyAgICBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3Bp
bGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSwgQWNjZXNzVHlwZSB0eXBlKQogewogICAgIFVOVVNF
RF9QQVJBTShzdHViSW5mb0dQUik7CiAgICAgLy8gVGhpcyBpcyBhIGhhY2t5IGZpeCBmb3Igd2hl
biB0aGUgcmVnaXN0ZXIgYWxsb2NhdG9yIGRlY2lkZXMgdG8gYWxpYXMgdGhlIGJhc2UgcGF5bG9h
ZCB3aXRoIHRoZSByZXN1bHQgdGFnLiBUaGlzIG9ubHkgaGFwcGVucwpAQCAtMjA0LDcgKzIwNCw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoCiAgICAgICAgIG1faml0LmNv
ZGVCbG9jaygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6
OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50aWZpZXIs
CiAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VUYWdHUFJPck5vbmUsIGJhc2VQYXlsb2FkR1BSKSwg
SlNWYWx1ZVJlZ3MocmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSKSwgSW52YWxpZEdQUlJl
ZywgdHlwZSk7CiAgICAgCi0gICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworICAgIGdl
bi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0LCBzY3JhdGNoR1BSKTsKICAgICAKICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogICAgIGlmIChzbG93UGF0aFRhcmdldC5pc1NldCgp
KQpAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQo
CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWRXaXRoVGhpcygKLSAgICBD
b2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlVGFnR1BST3JOb25lLCBHUFJSZWcgYmFz
ZVBheWxvYWRHUFIsIEdQUlJlZyB0aGlzVGFnR1BSLCBHUFJSZWcgdGhpc1BheWxvYWRHUFIsIEdQ
UlJlZyByZXN1bHRUYWdHUFIsIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSLCBHUFJSZWcgc3R1Yklu
Zm9HUFIsCisgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9u
ZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdGhpc1RhZ0dQUiwgR1BSUmVnIHRoaXNQ
YXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwg
R1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwKICAgICBDYWNoZWFibGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhU
YXJnZXQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0dWJJbmZvR1BSKTsKQEAgLTI0MCw3ICsyNDAs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkV2l0aFRoaXMoCiAgICAgICAg
IG1faml0LmNvZGVCbG9jaygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3Ms
IEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlk
ZW50aWZpZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9h
ZEdQUiksIEpTVmFsdWVSZWdzKGJhc2VUYWdHUFJPck5vbmUsIGJhc2VQYXlsb2FkR1BSKSwgSlNW
YWx1ZVJlZ3ModGhpc1RhZ0dQUiwgdGhpc1BheWxvYWRHUFIpLCBJbnZhbGlkR1BSUmVnKTsKICAg
ICAKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CisgICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgobV9qaXQsIHNjcmF0Y2hHUFIpOwogICAgIAogICAgIEpJVENvbXBpbGVyOjpKdW1wTGlz
dCBzbG93Q2FzZXM7CiAgICAgaWYgKCFzbG93UGF0aFRhcmdldC5lbXB0eSgpKQpAQCAtMzIzMiw3
ICszMjMyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICAgICAgR1BSUmVnIHJlc3VsdFRhZ0dQUiA9IHJlc3VsdFRhZy5ncHIoKTsKICAgICAgICAg
ICAgIEdQUlJlZyByZXN1bHRQYXlsb2FkR1BSID0gcmVzdWx0UGF5bG9hZC5ncHIoKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgSW52YWxpZEdQUlJlZywgYmFzZUdQUiwgSW52YWxpZEdQUlJlZywgdGhpc0dQUiwg
cmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BSLCBJbnZhbGlkR1BSUmVnLCBub2RlLT5jYWNo
ZWFibGVJZGVudGlmaWVyKCkpOworICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5v
ZGUtPm9yaWdpbi5zZW1hbnRpYywgSW52YWxpZEdQUlJlZywgYmFzZUdQUiwgSW52YWxpZEdQUlJl
ZywgSW52YWxpZEdQUlJlZywgdGhpc0dQUiwgcmVzdWx0VGFnR1BSLCByZXN1bHRQYXlsb2FkR1BS
LCBJbnZhbGlkR1BSUmVnLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCkpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9h
ZEdQUiwgbm9kZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0zMjUyLDcgKzMyNTIsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBub3RDZWxs
TGlzdC5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2UuanNWYWx1ZVJlZ3MoKSkpOwog
ICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbCh0aGlz
VmFsdWUuanNWYWx1ZVJlZ3MoKSkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBjYWNoZWRH
ZXRCeUlkV2l0aFRoaXMobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlVGFnR1BSLCBiYXNlUGF5
bG9hZEdQUiwgdGhpc1RhZ0dQUiwgdGhpc1BheWxvYWRHUFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0
UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBu
b3RDZWxsTGlzdCk7CisgICAgICAgICAgICBjYWNoZWRHZXRCeUlkV2l0aFRoaXMobm9kZS0+b3Jp
Z2luLnNlbWFudGljLCBiYXNlVGFnR1BSLCBiYXNlUGF5bG9hZEdQUiwgdGhpc1RhZ0dQUiwgdGhp
c1BheWxvYWRHUFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJl
ZywgSW52YWxpZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBub3RDZWxsTGlz
dCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0VGFnR1BS
LCByZXN1bHRQYXlsb2FkR1BSLCBub2RlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggZmY5Yjg0MmVjNmY5
Yjc4YzgxZmRjZTcxN2RkNGMzZjFjYmMxMGU3Ny4uN2I3OTkwODlkNDI2ZmJmYjE4MzJiNjVmNWVl
MzAxNGQyYWVkYWU3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCkBAIC0xNDgsMTIgKzE0OCwxMiBAQCBHUFJSZWcgU3BlY3VsYXRp
dmVKSVQ6OmZpbGxKU1ZhbHVlKEVkZ2UgZWRnZSkKICAgICB9CiB9CiAKLXZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBvcmlnaW4sIEpTVmFsdWVSZWdzIGJhc2Us
IEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ICwgU3BpbGxS
ZWdpc3RlcnNNb2RlIG1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBvcmlnaW4sIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFs
dWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2Fj
aGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRh
cmdldCAsIFNwaWxsUmVnaXN0ZXJzTW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5cGUpCiB7Ci0gICAg
Y2FjaGVkR2V0QnlJZChvcmlnaW4sIGJhc2UuZ3ByKCksIHJlc3VsdC5ncHIoKSwgc3R1YkluZm9H
UFIsIGlkZW50aWZpZXIsIHNsb3dQYXRoVGFyZ2V0LCBtb2RlLCB0eXBlKTsKKyAgICBjYWNoZWRH
ZXRCeUlkKG9yaWdpbiwgYmFzZS5ncHIoKSwgcmVzdWx0LmdwcigpLCBzdHViSW5mb0dQUiwgc2Ny
YXRjaEdQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUpOwogfQogCi12
b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwg
R1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2Fj
aGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRh
cmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSwgQWNjZXNzVHlwZSB0eXBlKQordm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQ
UlJlZyBiYXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJl
ZyBzY3JhdGNoR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlLCBBY2Nl
c3NUeXBlIHR5cGUpCiB7CiAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0LnJlY29y
ZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRlZChjb2Rl
T3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJz
ID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOwpAQCAtMTYzLDE1ICsxNjMsMTggQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBi
YXNlR1BSLCBHUFJSZWcKICAgICAgICAgdXNlZFJlZ2lzdGVycy5zZXQocmVzdWx0R1BSLCBmYWxz
ZSk7CiAgICAgICAgIGlmIChzdHViSW5mb0dQUiAhPSBJbnZhbGlkR1BSUmVnKQogICAgICAgICAg
ICAgdXNlZFJlZ2lzdGVycy5zZXQoc3R1YkluZm9HUFIsIGZhbHNlKTsKKyAgICAgICAgaWYgKHNj
cmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZykKKyAgICAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0
KHNjcmF0Y2hHUFIsIGZhbHNlKTsKICAgICB9CiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4o
CiAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9z
dHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdp
c3RlcnMsIGlkZW50aWZpZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVl
UmVncyhyZXN1bHRHUFIpLCBzdHViSW5mb0dQUiwgdHlwZSk7Ci0gICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgobV9qaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0LCBzY3JhdGNoR1BS
KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogICAgIHNsb3dD
YXNlcy5hcHBlbmQoc2xvd1BhdGhUYXJnZXQpOwotICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNs
b3dQYXRoSnVtcCgpKTsKKyAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdK
SVQpKQorICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+IHNsb3dQYXRoOwogICAgIGlmIChK
SVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewpAQCAtMTkwLDcgKzE5Myw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
LCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoV1RGTW92
ZShzbG93UGF0aCkpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkV2l0
aFRoaXMoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHRoaXNH
UFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFy
Z2V0KQordm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKENvZGVPcmln
aW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJSZWcgcmVz
dWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoR1BSLCBDYWNoZWFibGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1Bh
dGhUYXJnZXQpCiB7CiAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0LnJlY29yZENh
bGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRlZChjb2RlT3Jp
Z2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0g
dGhpcy0+dXNlZFJlZ2lzdGVycygpOwpAQCAtMjAwLDE1ICsyMDMsMTggQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BS
UmVnIGJhc2VHUFIKICAgICB1c2VkUmVnaXN0ZXJzLnNldChyZXN1bHRHUFIsIGZhbHNlKTsKICAg
ICBpZiAoc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgdXNlZFJlZ2lzdGVy
cy5zZXQoc3R1YkluZm9HUFIsIGZhbHNlKTsKKyAgICBpZiAoc2NyYXRjaEdQUiAhPSBJbnZhbGlk
R1BSUmVnKQorICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNoR1BSLCBmYWxzZSk7CiAg
ICAgCiAgICAgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yIGdlbigKICAgICAgICAgbV9qaXQu
Y29kZUJsb2NrKCksICZtX2ppdC5qaXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlw
ZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgdXNlZFJlZ2lzdGVycywgaWRlbnRpZmll
ciwKICAgICAgICAgSlNWYWx1ZVJlZ3MocmVzdWx0R1BSKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiks
IEpTVmFsdWVSZWdzKHRoaXNHUFIpLCBzdHViSW5mb0dQUik7Ci0gICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgobV9qaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0LCBzY3JhdGNoR1BS
KTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogICAgIHNsb3dD
YXNlcy5hcHBlbmQoc2xvd1BhdGhUYXJnZXQpOwotICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNs
b3dQYXRoSnVtcCgpKTsKKyAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdK
SVQpKQorICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7CiAgICAg
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKICAgICBp
ZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKQEAgLTQyNDIsNDIgKzQy
NDgsNTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogCiAgICAg
Y2FzZSBHZXRCeUlkV2l0aFRoaXM6IHsKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtp
bmQoKSA9PSBDZWxsVXNlICYmIG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKSB7
Ci0gICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CiAgICAg
ICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHRoaXNWYWx1ZSh0aGlzLCBub2RlLT5j
aGlsZDIoKSk7CiAKLSAgICAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJS
ZWc7Ci0gICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkp
IHsKLSAgICAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOwotICAgICAgICAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOwotICAgICAgICAgICAgfQogICAgICAg
ICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOwogICAgICAgICAgICAgR1BSUmVnIHRo
aXNWYWx1ZUdQUiA9IHRoaXNWYWx1ZS5ncHIoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
R1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwogICAgICAgICAgICAgR1BSUmVnIHJl
c3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxHUFJU
ZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jh
cnk+IHNjcmF0Y2g7CisgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BS
UmVnOworICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOworICAg
ICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CisgICAg
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgICAgICBzY3Jh
dGNoLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5m
by0+Z3ByKCk7CisgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygp
OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBjYWNoZWRHZXRCeUlkV2l0aFRoaXMobm9kZS0+
b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB0aGlzVmFsdWVHUFIsIHJlc3VsdEdQUiwgc3R1Yklu
Zm9HUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXBMaXN0
KCkpOworICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZUdQUiwgdGhpc1ZhbHVlR1BSLCByZXN1bHRHUFIsIHN0dWJJbmZvR1BSLCBzY3Jh
dGNoR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wTGlz
dCgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRHUFIs
IG5vZGUpOwogICAgICAgICAgICAgCiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdGQ6
Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CiAgICAgICAgICAgICBKU1ZhbHVlT3Bl
cmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIEpTVmFsdWVPcGVy
YW5kIHRoaXNWYWx1ZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAKLSAgICAgICAgICAgIEdQUlJl
ZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgICAgICAgICBpZiAoSklUQ29kZTo6
dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKLSAgICAgICAgICAgICAgICBzdHViSW5mby5l
bXBsYWNlKHRoaXMpOwotICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdw
cigpOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdw
cigpOwogICAgICAgICAgICAgR1BSUmVnIHRoaXNWYWx1ZUdQUiA9IHRoaXNWYWx1ZS5ncHIoKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgR1BSRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRo
aXMpOwogICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsKKworICAg
ICAgICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICAg
ICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CisgICAgICAgICAgICBHUFJS
ZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgR1BSUmVnIHNjcmF0
Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJ
QyhKSVRUeXBlOjpERkdKSVQpKSB7CisgICAgICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0
aGlzKTsKKyAgICAgICAgICAgICAgICBzY3JhdGNoLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAg
ICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAgICAgICAgICAgICAgc2Ny
YXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICAgICAgCkBAIC00Mjg1LDcgKzQz
MDEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
ICAgICBub3RDZWxsTGlzdC5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RDZWxsKEpTVmFsdWVSZWdz
KGJhc2VHUFIpKSk7CiAgICAgICAgICAgICBub3RDZWxsTGlzdC5hcHBlbmQobV9qaXQuYnJhbmNo
SWZOb3RDZWxsKEpTVmFsdWVSZWdzKHRoaXNWYWx1ZUdQUikpKTsKICAgICAgICAgICAgIAotICAg
ICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFz
ZUdQUiwgdGhpc1ZhbHVlR1BSLCByZXN1bHRHUFIsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFi
bGVJZGVudGlmaWVyKCksIG5vdENlbGxMaXN0KTsKKyAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRX
aXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHRoaXNWYWx1ZUdQUiwgcmVz
dWx0R1BSLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmll
cigpLCBub3RDZWxsTGlzdCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1
bHQocmVzdWx0R1BSLCBub2RlKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IGM0MDdiMDBjNGRhYjdkNjc2YTA1ZjllM2Q1
MGRkZDFhNzIxMDAyYWIuLjYxZTBjNzdkYWUwZmUyYmU3YWE3YzMxMGVjNmM4ZDEyZTU1MjJhYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAg
LTQ2NjUsNyArNDY2NSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIHBhdGNocG9p
bnQtPmFwcGVuZChtX25vdENlbGxNYXNrLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86Om5vdENlbGxN
YXNrUmVnaXN0ZXIpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fbnVtYmVyVGFnLCBW
YWx1ZVJlcDo6cmVnKEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7CiAgICAgICAgIHBhdGNo
cG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKLSAg
ICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0
YUlDKEpJVFR5cGU6OkZUTEpJVCkgPyAxIDogMDsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BT
Y3JhdGNoUmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkgPyAz
IDogMDsKIAogICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyBpcyBhIFB1dEJ5SWRGbHVzaCwgd2Ug
bWlnaHQgd2FudCB0byBsYXRlLWNsb2JiZXIgdm9sYXRpbGUgcmVnaXN0ZXJzLgogICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyODQ4CkBAIC00Njg5
LDcgKzQ2ODksMTQgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAgICAgICAgICAvLyBK
UyBzZXR0ZXIgY2FsbCBJQ3MgZ2VuZXJhdGVkIGJ5IHRoZSBQdXRCeUlkIElDIHdpbGwgbmVlZCB0
aGlzLgogICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1bGVFeGl0Q3JlYXRp
b25Gb3JVbndpbmQocGFyYW1zLCBjYWxsU2l0ZUluZGV4KTsKIAotICAgICAgICAgICAgICAgIEdQ
UlJlZyBzdHViSW5mb0dQUiA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8g
cGFyYW1zLmdwU2NyYXRjaCgwKSA6IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BS
UmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgICAgICBHUFJSZWcg
c2NyYXRjaEdQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0
Y2gyR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNl
RGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3R1YkluZm9H
UFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAgICAgICAgICBzY3JhdGNoR1BS
ID0gcGFyYW1zLmdwU2NyYXRjaCgxKTsKKyAgICAgICAgICAgICAgICAgICAgc2NyYXRjaDJHUFIg
PSBwYXJhbXMuZ3BTY3JhdGNoKDIpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ICAgIGF1dG8gZ2VuZXJhdG9yID0gQm94PEpJVFB1dEJ5SWRHZW5lcmF0b3I+OjpjcmVhdGUoCiAg
ICAgICAgICAgICAgICAgICAgIGppdC5jb2RlQmxvY2soKSwgJnN0YXRlLT5qaXRDb2RlLT5jb21t
b24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkZUTEpJVCwgbm9kZVNlbWFudGljT3JpZ2luLCBjYWxs
U2l0ZUluZGV4LApAQCAtNDY5NywxNCArNDcwNCwxNSBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewog
ICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBzdHViSW5m
b0dQUiwgR1BSSW5mbzo6cGF0Y2hwb2ludFNjcmF0Y2hSZWdpc3RlciwgZWNtYU1vZGUsCiAgICAg
ICAgICAgICAgICAgICAgIHB1dEtpbmQpOwogCi0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5n
ZW5lcmF0ZUZhc3RQYXRoKGppdCk7CisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCwgc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIpOwogICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOwogCiAgICAgICAgICAgICAg
ICAgcGFyYW1zLmFkZExhdGVQYXRoKAogICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVs
cGVycyYgaml0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJl
Z2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAg
IGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAoKS5saW5rKCZqaXQp
OwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBzbG93UGF0aEJl
Z2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEpJVENvZGU6
OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CkBAIC0xMjg0MSw3ICsxMjg0OSwxMCBAQCBJ
R05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX25v
dENlbGxNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lzdGVy
KSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX251bWJlclRhZywgVmFsdWVSZXA6Omxh
dGVSZWcoR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+
Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOwotICAgICAgICBw
YXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklU
VHlwZTo6RlRMSklUKSA/IDEgOiAwOworICAgICAgICBpZiBjb25zdGV4cHIgKHR5cGUgPT0gQWNj
ZXNzVHlwZTo6SW5CeUlkKQorICAgICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVn
aXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkgPyAyIDogMDsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJz
ID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkgPyAxIDogMDsKIAogICAgICAg
ICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0gcHJl
cGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOwogCkBAIC0xMjg1Nyw3ICsx
Mjg2OCwxMyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgLy8g
VGhpcyBpcyB0aGUgZGlyZWN0IGV4aXQgdGFyZ2V0IGZvciBvcGVyYXRpb24gY2FsbHMuCiAgICAg
ICAgICAgICAgICAgQm94PENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGV4Y2VwdGlvbnMgPSBleGNl
cHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uKHBhcmFtcyktPmp1bXBzKGppdCk7CiAK
LSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMo
SklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5ncFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOwor
ICAgICAgICAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAg
ICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAg
ICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSkgeworICAgICAg
ICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHBhcmFtcy5ncFNjcmF0Y2goMCk7CisgICAgICAg
ICAgICAgICAgICAgIGlmIGNvbnN0ZXhwciAodHlwZSA9PSBBY2Nlc3NUeXBlOjpJbkJ5SWQpCisg
ICAgICAgICAgICAgICAgICAgICAgICBzY3JhdGNoR1BSID0gcGFyYW1zLmdwU2NyYXRjaCgxKTsK
KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYXV0byByZXR1cm5HUFIgPSBwYXJh
bXNbMF0uZ3ByKCk7CiAgICAgICAgICAgICAgICAgYXV0byBiYXNlID0gSlNWYWx1ZVJlZ3MocGFy
YW1zWzFdLmdwcigpKTsKIApAQCAtMTI4OTYsMTMgKzEyOTEzLDEyIEBAIElHTk9SRV9DTEFOR19X
QVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICB9KCk7CiAKICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dDYXNlczsKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3It
PmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKICAgICAgICAgICAgICAgICBpZiBjb25zdGV4cHIgKHR5
cGUgPT0gQWNjZXNzVHlwZTo6SW5CeUlkKQorICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3It
PmdlbmVyYXRlRmFzdFBhdGgoaml0LCBzY3JhdGNoR1BSKTsKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0aChqaXQpOwor
ICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkp
CiAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuZXJhdG9yLT5zbG93UGF0
aEp1bXAoKSk7Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkpOwotICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGRvbmUg
PSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRMYXRlUGF0aCgKQEAg
LTE1MDY4LDcgKzE1MDg0LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBw
YXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoYmFzZSk7CiAgICAgICAgIHBhdGNocG9pbnQt
PmFwcGVuZChtX25vdENlbGxNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjpub3RDZWxs
TWFza1JlZ2lzdGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX251bWJlclRhZywg
VmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bnVtYmVyVGFnUmVnaXN0ZXIpKTsKLSAgICAgICAg
cGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkZUTEpJVCkgPyAxIDogMDsKKyAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNo
UmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkgPyAyIDogMDsK
IAogICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyBpcyBhIEdldEJ5SWRGbHVzaC9HZXRCeUlkRGly
ZWN0Rmx1c2gsIHdlIG1pZ2h0IGdldCBzb21lIHBlcmZvcm1hbmNlIGJvb3N0IGlmIHdlIGNsYWlt
IHRoYXQgaXQKICAgICAgICAgLy8gY2xvYmJlcnMgdm9sYXRpbGUgcmVnaXN0ZXJzIGxhdGUuIEl0
J3Mgbm90IG5lY2Vzc2FyeSBmb3IgY29ycmVjdG5lc3MsIHRob3VnaCwgc2luY2UgdGhlCkBAIC0x
NTA5OCwxNCArMTUxMTQsMTkgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAg
ICAgICAgIC8vIHRoZSBjYWxsc2l0ZSBpbmRleC4KICAgICAgICAgICAgICAgICBleGNlcHRpb25I
YW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRl
eCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VE
YXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5ncFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BS
UmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7
CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOworICAg
ICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSkgewor
ICAgICAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHBhcmFtcy5ncFNjcmF0Y2goMCk7Cisg
ICAgICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDEpOworICAg
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGF1dG8gZ2VuZXJhdG9yID0gQm94PEpJ
VEdldEJ5SWRHZW5lcmF0b3I+OjpjcmVhdGUoCiAgICAgICAgICAgICAgICAgICAgIGppdC5jb2Rl
QmxvY2soKSwgJnN0YXRlLT5qaXRDb2RlLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkZU
TEpJVCwgc2VtYW50aWNOb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LAogICAgICAgICAgICAgICAg
ICAgICBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaWRlbnRpZmllciwgSlNWYWx1ZVJl
Z3MocGFyYW1zWzFdLmdwcigpKSwKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFy
YW1zWzBdLmdwcigpKSwgc3R1YkluZm9HUFIsIHR5cGUpOwogCi0gICAgICAgICAgICAgICAgZ2Vu
ZXJhdG9yLT5nZW5lcmF0ZUZhc3RQYXRoKGppdCk7CisgICAgICAgICAgICAgICAgZ2VuZXJhdG9y
LT5nZW5lcmF0ZUZhc3RQYXRoKGppdCwgc2NyYXRjaEdQUik7CiAgICAgICAgICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0LmxhYmVsKCk7CiAKICAgICAgICAgICAgICAgICBw
YXJhbXMuYWRkTGF0ZVBhdGgoCkBAIC0xNTExNCw3ICsxNTEzNSw4IEBAIElHTk9SRV9DTEFOR19X
QVJOSU5HU19FTkQKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBvcHRpbWl6YXRpb25G
dW5jdGlvbiA9IGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5SWRGdW5jdGlvbih0eXBlKTsKIAot
ICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAoKS5saW5rKCZq
aXQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklU
VHlwZTo6RlRMSklUKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPnNs
b3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4gPSBqaXQubGFiZWwoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBzbG93UGF0aENhbGw7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKQEAg
LTE1MTU5LDcgKzE1MTgxLDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICBw
YXRjaHBvaW50LT5hcHBlbmQobV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5m
bzo6bm90Q2VsbE1hc2tSZWdpc3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9u
dW1iZXJUYWcsIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7
CiAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJl
Z2lzdGVycygpKTsKLSAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0g
SklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkgPyAxIDogMDsKKyAgICAgICAgcGF0
Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5
cGU6OkZUTEpJVCkgPyAyIDogMDsKIAogICAgICAgICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlv
bkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0KICAgICAgICAgICAgIHByZXBhcmVQYXRjaHBvaW50
Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKQEAgLTE1MTgyLDE0ICsxNTIwNCwxOSBAQCBJR05P
UkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgLy8gdGhlIGNhbGxzaXRlIGlu
ZGV4LgogICAgICAgICAgICAgICAgIGV4Y2VwdGlvbkhhbmRsZS0+c2NoZWR1bGVFeGl0Q3JlYXRp
b25Gb3JVbndpbmQocGFyYW1zLCBjYWxsU2l0ZUluZGV4KTsKIAotICAgICAgICAgICAgICAgIEdQ
UlJlZyBzdHViSW5mb0dQUiA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8g
cGFyYW1zLmdwU2NyYXRjaCgwKSA6IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BS
UmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgICAgICBHUFJSZWcg
c2NyYXRjaEdQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgaWYgKEpJVENvZGU6
OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0dWJJ
bmZvR1BSID0gcGFyYW1zLmdwU2NyYXRjaCgwKTsKKyAgICAgICAgICAgICAgICAgICAgc2NyYXRj
aEdQUiA9IHBhcmFtcy5ncFNjcmF0Y2goMSk7CisgICAgICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAgICAgYXV0byBnZW5lcmF0b3IgPSBCb3g8SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9y
Pjo6Y3JlYXRlKAogICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksICZzdGF0ZS0+
aml0Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIHNlbWFudGljTm9k
ZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnVuYXZh
aWxhYmxlUmVnaXN0ZXJzKCksIGlkZW50aWZpZXIsIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5ncHIo
KSksCiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5ncHIoKSksIEpT
VmFsdWVSZWdzKHBhcmFtc1syXS5ncHIoKSksIHN0dWJJbmZvR1BSKTsKIAotICAgICAgICAgICAg
ICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdl
bmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0aChqaXQsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOwogCiAgICAgICAgICAg
ICAgICAgcGFyYW1zLmFkZExhdGVQYXRoKApAQCAtMTUxOTgsNyArMTUyMjUsOCBAQCBJR05PUkVf
Q0xBTkdfV0FSTklOR1NfRU5ECiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gb3B0aW1p
emF0aW9uRnVuY3Rpb24gPSBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZTsKIAotICAg
ICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAoKS5saW5rKCZqaXQp
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlw
ZTo6RlRMSklUKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPnNsb3dQ
YXRoSnVtcCgpLmxpbmsoJmppdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4gPSBqaXQubGFiZWwoKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBzbG93UGF0aENhbGw7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKaW5kZXggMWUyZWZkNThlNzNjNDQwZjczNzMxNTM2ZDBh
Y2EwNWE3ODEzYTY3NC4uY2JhZWQwMGUxODAwYzJlZjI5M2U0MzNkYTVjZTk4NWQ2NTc3MjRiNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmgKQEAgLTE2NSw4ICsxNjUsNiBAQCBjbGFz
cyBKSVRDb2RlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEpJVENvZGU+IHsKICAgICB7
CiAgICAgICAgIGlmIChKSVRDb2RlOjppc0Jhc2VsaW5lQ29kZShqaXRUeXBlKSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZURhdGFJQygpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gT3B0aW9uczo6dXNlRGF0YUlD
SW5PcHRpbWl6aW5nSklUKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCmluZGV4IGI2NWE2MDRjMzRmZTFj
NTI3MzJhNzJmMzgwZWVkZTNjZDMxZDRiYjkuLmY3NTQzODJiM2EyZjcwZjc1Y2I2OTg1YjhhYjc2
MTdjOThkODAzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCkBAIC0xMDUsMTcgKzEwNSwyMCBAQCB2b2lkIEpJVEJ5
SWRHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBz
bG93UGF0aCkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2RlUHRyID0gbV9zdHViSW5mby0+c2xv
d1BhdGhTdGFydExvY2F0aW9uOwogfQogCi12b2lkIEpJVEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdENvbW1vbihNYWNyb0Fzc2VtYmxlciYgaml0LCBzaXplX3QgaW5saW5lSUNTaXplKQordm9p
ZCBKSVRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RDb21tb24oQ0NhbGxIZWxwZXJzJiBqaXQs
IHNpemVfdCBpbmxpbmVJQ1NpemUpCiB7Ci0gICAgLy8gV2UgZ2VuZXJhdGUgdGhlIHNhbWUgY29k
ZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgU2hhcmVkSUMgaXMgZW5hYmxlZCBiZWNhdXNlIHdlIHN0
aWxsIG5lZWQgdG8gdXNlIElubGluZUFjY2VzcwotICAgIC8vIGZvciB0aGUgcGVyZm9ybWFuY2Ug
cmVhc29uLgogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKLSAgICBzaXplX3Qgc3RhcnRTaXpl
ID0gaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVTaXplKCk7Ci0gICAgbV9zbG93UGF0aEp1
bXAgPSBqaXQuanVtcCgpOwotICAgIHNpemVfdCBqdW1wU2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5i
dWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOwotICAgIHNpemVfdCBub3BzVG9FbWl0SW5C
eXRlcyA9IGlubGluZUlDU2l6ZSAtIGp1bXBTaXplOwotICAgIGppdC5lbWl0Tm9wcyhub3BzVG9F
bWl0SW5CeXRlcyk7Ci0gICAgQVNTRVJUKGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6
ZSgpIC0gc3RhcnRTaXplID09IGlubGluZUlDU2l6ZSk7CisgICAgaWYgKEpJVENvZGU6OnVzZURh
dGFJQyhtX2ppdFR5cGUpKSB7CisgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CisgICAgICAg
IGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhtX3N0dWJJbmZvLT5tX3N0dWJJbmZv
R1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHViUm91dGlu
ZVB0clRhZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2l6ZV90IHN0YXJ0U2l6ZSA9IGppdC5t
X2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpOworICAgICAgICBtX3Nsb3dQYXRoSnVtcCA9
IGppdC5qdW1wKCk7CisgICAgICAgIHNpemVfdCBqdW1wU2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5i
dWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOworICAgICAgICBzaXplX3Qgbm9wc1RvRW1p
dEluQnl0ZXMgPSBpbmxpbmVJQ1NpemUgLSBqdW1wU2l6ZTsKKyAgICAgICAgaml0LmVtaXROb3Bz
KG5vcHNUb0VtaXRJbkJ5dGVzKTsKKyAgICAgICAgQVNTRVJUKGppdC5tX2Fzc2VtYmxlci5idWZm
ZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplID09IGlubGluZUlDU2l6ZSk7CisgICAgfQogICAg
IG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCkBAIC0xMjgsMTMgKzEzMSw3IEBAIEpJVEdldEJ5
SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3IoCiAgICAgUkVMRUFTRV9BU1NFUlQoYmFz
ZS5wYXlsb2FkR1BSKCkgIT0gdmFsdWUudGFnR1BSKCkpOwogfQogCi12b2lkIEpJVEdldEJ5SWRH
ZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKLXsKLSAgICBB
U1NFUlQobV9zdHViSW5mbyk7Ci0gICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGppdCwgbV9pc0xlbmd0
aEFjY2VzcyA/IElubGluZUFjY2Vzczo6c2l6ZUZvckxlbmd0aEFjY2VzcygpIDogSW5saW5lQWNj
ZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGdlbmVyYXRl
R2V0QnlJZElubGluZUFjY2VzcyhKSVQmIGppdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBKU1ZhbHVl
UmVncyBiYXNlSlNSLCBHUFJSZWcgc2NyYXRjaEdQUiwgSlNWYWx1ZVJlZ3MgcmVzdWx0SlNSKQor
c3RhdGljIHZvaWQgZ2VuZXJhdGVHZXRCeUlkSW5saW5lQWNjZXNzKENDYWxsSGVscGVycyYgaml0
LCBHUFJSZWcgc3R1YkluZm9HUFIsIEpTVmFsdWVSZWdzIGJhc2VKU1IsIEdQUlJlZyBzY3JhdGNo
R1BSLCBKU1ZhbHVlUmVncyByZXN1bHRKU1IpCiB7CiAgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOwogICAgIGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNo
MzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlSUQoKSkpOwpAQCAtMTQ0LDYgKzE0MSwyMSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0
ZUdldEJ5SWRJbmxpbmVBY2Nlc3MoSklUJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQUiwgSlNWYWx1
ZVJlZwogICAgIGppdC5sb2FkUHJvcGVydHkoYmFzZUpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hH
UFIsIHJlc3VsdEpTUik7CiB9CiAKK3ZvaWQgSklUR2V0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVG
YXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIHNjcmF0Y2hHUFIpCit7CisgICAgQVNT
RVJUKG1fc3R1YkluZm8pOworICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkp
IHsKKyAgICAgICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGppdCwgbV9pc0xlbmd0aEFjY2VzcyA/IElu
bGluZUFjY2Vzczo6c2l6ZUZvckxlbmd0aEFjY2VzcygpIDogSW5saW5lQWNjZXNzOjpzaXplRm9y
UHJvcGVydHlBY2Nlc3MoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQo
c2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7
CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKKyAgICBnZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nl
c3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1f
dmFsdWUpOworICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOworfQorCiB2b2lkIEpJVEdldEJ5SWRH
ZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0aChKSVQmIGppdCwgdW5zaWdu
ZWQgc3R1YkluZm8sIEdQUlJlZyBzdHViSW5mb0dQUikKIHsKICAgICBSRUxFQVNFX0FTU0VSVChK
SVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSk7CkBAIC0xNzQsMTAgKzE4NiwxOSBAQCBKSVRH
ZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcigKICAg
ICB9CiB9CiAKLXZvaWQgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIHNjcmF0Y2hHUFIp
CiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwotICAgIGdlbmVyYXRlRmFzdENvbW1vbihqaXQs
IElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5QWNjZXNzKCkpOworICAgIGlmICghSklUQ29k
ZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKKyAgICAgICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGpp
dCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAg
ICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKKyAgICBn
ZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BS
LCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOworICAgIG1fZG9uZSA9IGppdC5sYWJlbCgp
OwogfQogCiB2b2lkIEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGlu
ZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHViSW5mbywgR1BSUmVnIHN0dWJJ
bmZvR1BSKQpAQCAtMjA4LDYgKzIyOSwxNiBAQCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRC
eUlkR2VuZXJhdG9yKAogICAgICAgICBtX3N0dWJJbmZvLT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNj
cmF0Y2gpOwogfQogCitzdGF0aWMgdm9pZCBnZW5lcmF0ZVB1dEJ5SWRJbmxpbmVBY2Nlc3MoQ0Nh
bGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQUiwgSlNWYWx1ZVJlZ3MgYmFzZUpTUiwg
SlNWYWx1ZVJlZ3MgdmFsdWVKU1IsIEdQUlJlZyBzY3JhdGNoR1BSLCBHUFJSZWcgc2NyYXRjaDJH
UFIpCit7CisgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXls
b2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOworICAg
IGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwg
c2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVT
dHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQoKSkpOworICAgIGpp
dC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1
YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOworICAgIGRv
SW5saW5lQWNjZXNzLmxpbmsoJmppdCk7CisgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFk
ZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkJ5SWRTZWxmT2Zm
c2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICBqaXQuc3RvcmVQcm9wZXJ0eSh2YWx1ZUpTUiwgYmFz
ZUpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKK30KKwogdm9pZCBK
SVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiBq
aXQsIHVuc2lnbmVkIHN0dWJJbmZvLCBHUFJSZWcgc3R1YkluZm9HUFIpCiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpOwpAQCAtMjIxLDE5ICsyNTIs
MjMgQEAgdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFz
dFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWIKICAgICB1c2luZyBCYXNlbGluZUpJVFJlZ2lz
dGVyczo6UHV0QnlJZDo6RmFzdFBhdGg6OnNjcmF0Y2hHUFI7CiAgICAgdXNpbmcgQmFzZWxpbmVK
SVRSZWdpc3RlcnM6OlB1dEJ5SWQ6OkZhc3RQYXRoOjpzY3JhdGNoMkdQUjsKIAotICAgIGppdC5s
b2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VKU1IucGF5bG9hZEdQUigpLCBKU0NlbGw6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKLSAgICBhdXRvIGRvSW5saW5lQWNj
ZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9m
SW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKLSAgICBqaXQuZmFySnVtcChDQ2FsbEhl
bHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNv
ZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsKLSAgICBkb0lubGluZUFjY2Vzcy5saW5r
KCZqaXQpOwotICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BS
LCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQ
Uik7Ci0gICAgaml0LnN0b3JlUHJvcGVydHkodmFsdWVKU1IsIGJhc2VKU1IucGF5bG9hZEdQUigp
LCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUik7CisgICAgZ2VuZXJhdGVQdXRCeUlkSW5saW5lQWNj
ZXNzKGppdCwgc3R1YkluZm9HUFIsIGJhc2VKU1IsIHZhbHVlSlNSLCBzY3JhdGNoR1BSLCBzY3Jh
dGNoMkdQUik7CiAgICAgbV9kb25lID0gaml0LmxhYmVsKCk7CiB9CiAKLXZvaWQgSklUUHV0QnlJ
ZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQordm9pZCBK
SVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0LCBH
UFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSKQogewogICAgIEFTU0VSVChtX3N0
dWJJbmZvKTsKLSAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVG
b3JQcm9wZXJ0eVJlcGxhY2UoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRU
eXBlKSkgeworICAgICAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVBY2Nlc3M6OnNp
emVGb3JQcm9wZXJ0eVJlcGxhY2UoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBB
U1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAgICBtX3N0YXJ0ID0gaml0Lmxh
YmVsKCk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1Yklu
Zm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKKyAgICBnZW5lcmF0ZVB1dEJ5SWRJbmxp
bmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBtX2Jhc2UsIG1fdmFsdWUs
IHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKKyAgICBtX2RvbmUgPSBqaXQubGFiZWwoKTsKIH0K
IAogVl9KSVRPcGVyYXRpb25fR1NzaUpKQyBKSVRQdXRCeUlkR2VuZXJhdG9yOjpzbG93UGF0aEZ1
bmN0aW9uKCkKQEAgLTI4MSw3ICszMTYsNyBAQCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6SklURGVs
QnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdAogICAg
IH0KIH0KIAotdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNy
b0Fzc2VtYmxlciYgaml0KQordm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAg
bV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtMzIzLDcgKzM1OCw3IEBAIEpJVERlbEJ5SWRHZW5l
cmF0b3I6OkpJVERlbEJ5SWRHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1
Y3R1cmVTdHViCiAgICAgfQogfQogCi12b2lkIEpJVERlbEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklURGVsQnlJZEdlbmVyYXRvcjo6
Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9zdHVi
SW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtMzYwLDcgKzM5NSw3IEBAIEpJ
VEluQnlWYWxHZW5lcmF0b3I6OkpJVEluQnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIEJhZzxTdHJ1Y3R1cmVTdHViCiAgICAgfQogfQogCi12b2lkIEpJVEluQnlWYWxHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklUSW5CeVZh
bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBB
U1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtMzkyLDEw
ICs0MjcsMzQgQEAgSklUSW5CeUlkR2VuZXJhdG9yOjpKSVRJbkJ5SWRHZW5lcmF0b3IoCiAgICAg
UkVMRUFTRV9BU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkgIT0gdmFsdWUudGFnR1BSKCkpOwogfQog
Ci12b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxl
ciYgaml0KQorc3RhdGljIHZvaWQgZ2VuZXJhdGVJbkJ5SWRJbmxpbmVBY2Nlc3MoQ0NhbGxIZWxw
ZXJzJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQUiwgSlNWYWx1ZVJlZ3MgYmFzZUpTUiwgR1BSUmVn
IHNjcmF0Y2hHUFIsIEpTVmFsdWVSZWdzIHJlc3VsdEpTUikKK3sKKyAgICBDQ2FsbEhlbHBlcnM6
Okp1bXBMaXN0IGRvbmU7CisKKyAgICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhi
YXNlSlNSLnBheWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRj
aEdQUik7CisgICAgYXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVs
cGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5m
b0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVy
ZUlEKCkpKTsKKyAgICBqaXQuYm94Qm9vbGVhbih0cnVlLCByZXN1bHRKU1IpOworICAgIGF1dG8g
ZmluaXNoZWQgPSBqaXQuanVtcCgpOworCisgICAgc2tpcElubGluZUFjY2Vzcy5saW5rKCZqaXQp
OworICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3Ry
dWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1YlJvdXRpbmVQdHJUYWcp
OworCisgICAgZmluaXNoZWQubGluaygmaml0KTsKK30KKwordm9pZCBKSVRJbkJ5SWRHZW5lcmF0
b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzY3JhdGNoR1BS
KQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKLSAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0
LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKKyAgICBpZiAoIUpJVENv
ZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CisgICAgICAgIGdlbmVyYXRlRmFzdENvbW1vbihq
aXQsIElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5QWNjZXNzKCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgQVNTRVJUKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7Cisg
ICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CisgICAg
Z2VuZXJhdGVJbkJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BS
LCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOworICAgIG1fZG9uZSA9IGppdC5sYWJlbCgp
OwogfQogCiB2b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zh
c3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHViSW5mbywgR1BSUmVnIHN0dWJJbmZvR1BSKQpA
QCAtNDEwLDE3ICs0NjksOCBAQCB2b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNl
bGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHViSQogICAgIHVzaW5nIEJh
c2VsaW5lSklUUmVnaXN0ZXJzOjpJbkJ5SWQ6OnJlc3VsdEpTUjsKICAgICB1c2luZyBCYXNlbGlu
ZUpJVFJlZ2lzdGVyczo6SW5CeUlkOjpzY3JhdGNoR1BSOwogCi0gICAgQ0NhbGxIZWxwZXJzOjpK
dW1wTGlzdCBkb25lOworICAgIGdlbmVyYXRlSW5CeUlkSW5saW5lQWNjZXNzKGppdCwgc3R1Yklu
Zm9HUFIsIGJhc2VKU1IsIHNjcmF0Y2hHUFIsIHJlc3VsdEpTUik7CiAKLSAgICBqaXQubG9hZDMy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlSlNSLnBheWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1
Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgYXV0byBza2lwSW5saW5lQWNjZXNz
ID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9m
SW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKLSAgICBqaXQuYm94Qm9vbGVhbih0cnVl
LCByZXN1bHRKU1IpOwotICAgIGF1dG8gZmluaXNoZWQgPSBqaXQuanVtcCgpOwotCi0gICAgc2tp
cElubGluZUFjY2Vzcy5saW5rKCZqaXQpOwotICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6
QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ29kZVB0cigp
KSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOwotCi0gICAgZmluaXNoZWQubGluaygmaml0KTsKICAg
ICBtX2RvbmUgPSBqaXQubGFiZWwoKTsKIH0KIApAQCAtNDUyLDcgKzUwMiw3IEBAIEpJVEluc3Rh
bmNlT2ZHZW5lcmF0b3I6OkpJVEluc3RhbmNlT2ZHZW5lcmF0b3IoCiAgICAgfQogfQogCi12b2lk
IEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXIm
IGppdCkKK3ZvaWQgSklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2Fs
bEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9
IGppdC5sYWJlbCgpOwpAQCAtNDkxLDcgKzU0MSw3IEBAIEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpK
SVRHZXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmFnPFN0cnVjdHVyZVN0
CiAgICAgfQogfQogCi12b2lkIEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0
ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsK
ICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CkBAIC01MzEsNyArNTgxLDcgQEAgSklUUHV0QnlW
YWxHZW5lcmF0b3I6OkpJVFB1dEJ5VmFsR2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsb2NrLCBC
YWc8U3RydWN0dXJlU3QKICAgICB9CiB9CiAKLXZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklUUHV0QnlWYWxHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCiB7CiAgICAgQVNTRVJU
KG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKQEAgLTU2OSw3ICs2MTks
NyBAQCBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3I6OkpJVFByaXZhdGVCcmFuZEFjY2Vz
c0dlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbAogICAgIH0KIH0KIAotdm9pZCBKSVRQcml2YXRl
QnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGpp
dCkKK3ZvaWQgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KENDYWxsSGVscGVycyYgaml0KQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0
YXJ0ID0gaml0LmxhYmVsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmgKaW5kZXggNTI0ZjliMDQ5ZTBmM2YzMWMyOTZkYzRkNGY3
MmU3NjhiZWVlM2I1Yy4uZDk3NTI5ZTBkYmEwOTk4ZWEwYTk3YjA1ZjgzYjg4NGFhODRiYjUxYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVy
YXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJB
c3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJD
b2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0aW9uVmFsaWRhdGlvbi5oIgogI2luY2x1
ZGUgIkpJVE9wZXJhdGlvbnMuaCIKQEAgLTU2LDEzICs1NywxMyBAQCBjbGFzcyBKSVRJbmxpbmVD
YWNoZUdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZv
KCkgY29uc3QgeyByZXR1cm4gbV9zdHViSW5mbzsgfQogCi0gICAgdm9pZCByZXBvcnRTbG93UGF0
aENhbGwoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4sIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGwpCisgICAgdm9pZCByZXBvcnRTbG93UGF0aENhbGwoQ0NhbGxIZWxwZXJzOjpM
YWJlbCBzbG93UGF0aEJlZ2luLCBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbCkKICAgICB7CiAgICAg
ICAgIG1fc2xvd1BhdGhCZWdpbiA9IHNsb3dQYXRoQmVnaW47CiAgICAgICAgIG1fc2xvd1BhdGhD
YWxsID0gY2FsbDsKICAgICB9CiAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQ
YXRoQmVnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nsb3dQYXRoQmVnaW47IH0KKyAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nsb3dQYXRoQmVn
aW47IH0KIAogICAgIHZvaWQgZmluYWxpemUoCiAgICAgICAgIExpbmtCdWZmZXImIGZhc3RQYXRo
TGlua0J1ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhMaW5rQnVmZmVyLApAQCAtNzgsMTAgKzc5
LDEwIEBAIGNsYXNzIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICBTdHJ1Y3R1cmVTdHVi
SW5mbyogbV9zdHViSW5mbyB7IG51bGxwdHIgfTsKIAogcHVibGljOgotICAgIE1hY3JvQXNzZW1i
bGVyOjpMYWJlbCBtX3N0YXJ0OwotICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2RvbmU7Ci0g
ICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fc2xvd1BhdGhCZWdpbjsKLSAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBtX3Nsb3dQYXRoQ2FsbDsKKyAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIG1fc3Rh
cnQ7CisgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2RvbmU7CisgICAgQ0NhbGxIZWxwZXJzOjpM
YWJlbCBtX3Nsb3dQYXRoQmVnaW47CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1fc2xvd1BhdGhD
YWxsOwogfTsKIAogY2xhc3MgSklUQnlJZEdlbmVyYXRvciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNo
ZUdlbmVyYXRvciB7CkBAIC05Myw3ICs5NCw3IEBAIGNsYXNzIEpJVEJ5SWRHZW5lcmF0b3IgOiBw
dWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgICAgICBKU1ZhbHVlUmVncyBiYXNl
LCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKIAogcHVibGljOgotICAg
IE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9z
bG93UGF0aEp1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcDsKQEAg
LTEwNCwxMyArMTA1LDEzIEBAIGNsYXNzIEpJVEJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIAogcHJvdGVjdGVkOgogICAgIAotICAgIHZvaWQgZ2Vu
ZXJhdGVGYXN0Q29tbW9uKE1hY3JvQXNzZW1ibGVyJiwgc2l6ZV90IHNpemUpOworICAgIHZvaWQg
Z2VuZXJhdGVGYXN0Q29tbW9uKENDYWxsSGVscGVycyYsIHNpemVfdCBzaXplKTsKICAgICAKICAg
ICBKU1ZhbHVlUmVncyBtX2Jhc2U7CiAgICAgSlNWYWx1ZVJlZ3MgbV92YWx1ZTsKIAogcHVibGlj
OgotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG1fc2xvd1BhdGhKdW1wOworICAgIENDYWxsSGVs
cGVyczo6SnVtcCBtX3Nsb3dQYXRoSnVtcDsKIH07CiAKIGNsYXNzIEpJVEdldEJ5SWRHZW5lcmF0
b3IgZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CkBAIC0xMjEsNyArMTIyLDcgQEAg
Y2xhc3MgSklUR2V0QnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9y
IHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUs
IENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0
ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1Zh
bHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBlKTsKICAgICAKLSAg
ICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVy
YXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgR1BSUmVnIHNjcmF0Y2hHUFIpOwogICAgIHZvaWQg
Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYsIHVuc2lnbmVkIHN0dWJJbmZvQ29u
c3RhbnQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKIHByaXZhdGU6CkBAIC0xMzYsOCArMTM3LDgg
QEAgY2xhc3MgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVEJ5
SWRHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+
KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJTZXQm
IHVzZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZpZXIsCiAgICAgICAgIEpTVmFsdWVSZWdz
IHZhbHVlLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB0aGlzUmVncywgR1BSUmVnIHN0
dWJJbmZvR1BSKTsKIAorICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBH
UFJSZWcgc2NyYXRjaEdQUik7CiAgICAgdm9pZCBnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBh
dGgoSklUJiwgdW5zaWduZWQgc3R1YkluZm9Db25zdGFudCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsK
LSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKIH07CiAKIGNsYXNz
IEpJVFB1dEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CkBA
IC0xNDgsNyArMTQ5LDcgQEAgY2xhc3MgSklUUHV0QnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBKSVRCeUlkR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0
dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lz
dGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAgICBKU1Zh
bHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJS
ZWcgc2NyYXRjaCwgRUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAotICAgIHZvaWQgZ2VuZXJhdGVG
YXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2Fs
bEhlbHBlcnMmLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSKTsKICAgICB2
b2lkIGdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0aChKSVQmLCB1bnNpZ25lZCBzdHViSW5m
b0NvbnN0YW50LCBHUFJSZWcgc3R1YkluZm9HUFIpOwogICAgIAogICAgIFZfSklUT3BlcmF0aW9u
X0dTc2lKSkMgc2xvd1BhdGhGdW5jdGlvbigpOwpAQCAtMTY3LDcgKzE2OCw3IEBAIGNsYXNzIEpJ
VFB1dEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9y
IHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUs
IENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGUsIGNvbnN0IFJlZ2lzdGVyU2V0
JiB1c2VkUmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBw
cm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgYXJyYXlQcm9maWxlR1BSLCBHUFJS
ZWcgc3R1YkluZm9HUFIpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1w
KCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVtcC5tX2p1bXAuaXNTZXQoKSk7CiAgICAg
ICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7CkBAIC0xNzUsMTIgKzE3NiwxMiBAQCBj
bGFzcyBKSVRQdXRCeVZhbEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdl
bmVyYXRvciB7CiAKICAgICB2b2lkIGZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoTGlua0J1
ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhMaW5rQnVmZmVyKTsKIAotICAgIHZvaWQgZ2VuZXJh
dGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChD
Q2FsbEhlbHBlcnMmKTsKIAogICAgIEpTVmFsdWVSZWdzIG1fYmFzZTsKICAgICBKU1ZhbHVlUmVn
cyBtX3ZhbHVlOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0
aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwog
fTsKIAogY2xhc3MgSklURGVsQnlWYWxHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IgewpAQCAtMTkyLDcgKzE5Myw3IEBAIGNsYXNzIEpJVERlbEJ5VmFsR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAg
Q29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4s
IENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAogICAgICAg
ICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVz
dWx0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoKTsKIAotICAgIE1hY3JvQXNz
ZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
IHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1
bXAubV9qdW1wLmlzU2V0KCkpOwogICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1w
OwpAQCAtMjAxLDkgKzIwMiw5IEBAIGNsYXNzIEpJVERlbEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDog
cHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICB2b2lkIGZpbmFsaXplKAogICAg
ICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRo
TGlua0J1ZmZlcik7CiAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXIm
KTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7CiAKLSAgICBNYWNy
b0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKKyAgICBDQ2FsbEhlbHBl
cnM6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CiB9OwogCiBjbGFzcyBKSVREZWxCeUlk
R2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKQEAgLTIx
NSw3ICsyMTYsNyBAQCBjbGFzcyBKSVREZWxCeUlkR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJ
VElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVy
ZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJl
Z2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAgICBK
U1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwg
R1BSUmVnIHNjcmF0Y2gpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1w
KCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVtcC5tX2p1bXAuaXNTZXQoKSk7CiAgICAg
ICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7CkBAIC0yMjQsOSArMjI1LDkgQEAgY2xh
c3MgSklURGVsQnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvciB7CiAgICAgdm9pZCBmaW5hbGl6ZSgKICAgICAgICAgTGlua0J1ZmZlciYgZmFzdFBhdGhM
aW5rQnVmZmVyLCBMaW5rQnVmZmVyJiBzbG93UGF0aExpbmtCdWZmZXIpOwogCi0gICAgdm9pZCBn
ZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQ
YXRoKENDYWxsSGVscGVycyYpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAg
bV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1Bh
dGhKdW1wOwogfTsKIAogY2xhc3MgSklUSW5CeVZhbEdlbmVyYXRvciA6IHB1YmxpYyBKSVRJbmxp
bmVDYWNoZUdlbmVyYXRvciB7CkBAIC0yMzgsNyArMjM5LDcgQEAgY2xhc3MgSklUSW5CeVZhbEdl
bmVyYXRvciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgICAgIENvZGVC
bG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxs
U2l0ZUluZGV4LCBBY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywK
ICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVS
ZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRo
SnVtcCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1w
LmlzU2V0KCkpOwogICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMjQ3
LDkgKzI0OCw5IEBAIGNsYXNzIEpJVEluQnlWYWxHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IgewogICAgIHZvaWQgZmluYWxpemUoCiAgICAgICAgIExpbmtCdWZmZXIm
IGZhc3RQYXRoTGlua0J1ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhMaW5rQnVmZmVyKTsKIAot
ICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2Vu
ZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRj
aGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOworICAgIENDYWxsSGVscGVyczo6UGF0Y2hhYmxlSnVt
cCBtX3Nsb3dQYXRoSnVtcDsKIH07CiAKIGNsYXNzIEpJVEluQnlJZEdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKQEAgLTI2MCw3ICsyNjEsNyBAQCBjbGFzcyBKSVRJ
bkJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CiAgICAgICAg
IENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2lu
LCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ2FjaGVh
YmxlSWRlbnRpZmllciwKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFs
dWUsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFj
cm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwg
R1BSUmVnIHNjcmF0Y2hHUFIpOwogICAgIHZvaWQgZ2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQ
YXRoKEpJVCYsIHVuc2lnbmVkIHN0dWJJbmZvQ29uc3RhbnQsIEdQUlJlZyBzdHViSW5mb0dQUik7
CiB9OwogCkBAIC0yNzQsOSArMjc1LDkgQEAgY2xhc3MgSklUSW5zdGFuY2VPZkdlbmVyYXRvciBm
aW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgICAgIEdQUlJlZyB2
YWx1ZSwgR1BSUmVnIHByb3RvdHlwZSwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRj
aDEsIEdQUlJlZyBzY3JhdGNoMiwKICAgICAgICAgYm9vbCBwcm90b3R5cGVJc0tub3duT2JqZWN0
ID0gZmFsc2UpOwogICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxl
ciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAotICAgIE1h
Y3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93
UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwogICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAu
bV9qdW1wOwpAQCAtMjg0LDcgKzI4NSw3IEBAIGNsYXNzIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogCiAgICAgdm9pZCBmaW5h
bGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRo
TGlua0J1ZmZlcik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQ
YXRoSnVtcDsKKyAgICBDQ2FsbEhlbHBlcnM6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7
CiB9OwogCiBjbGFzcyBKSVRHZXRCeVZhbEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxp
bmVDYWNoZUdlbmVyYXRvciB7CkBAIC0yOTYsNyArMjk3LDcgQEAgY2xhc3MgSklUR2V0QnlWYWxH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgICAg
ICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdp
biwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdp
c3RlcnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHByb3BlcnR5LCBK
U1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKLSAgICBNYWNyb0Fzc2Vt
Ymxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAorICAgIENDYWxsSGVscGVyczo6SnVtcCBz
bG93UGF0aEp1bXAoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fc2xvd1BhdGhKdW1w
Lm1fanVtcC5pc1NldCgpKTsKICAgICAgICAgcmV0dXJuIG1fc2xvd1BhdGhKdW1wLm1fanVtcDsK
QEAgLTMwNSwxMiArMzA2LDEyIEBAIGNsYXNzIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDog
cHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICB2b2lkIGZpbmFsaXplKAogICAg
ICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRo
TGlua0J1ZmZlcik7CiAgICAgCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1i
bGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwogCiAgICAg
SlNWYWx1ZVJlZ3MgbV9iYXNlOwogICAgIEpTVmFsdWVSZWdzIG1fcmVzdWx0OwogCi0gICAgTWFj
cm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxw
ZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogY2xhc3MgSklUUHJpdmF0
ZUJyYW5kQWNjZXNzR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJh
dG9yIHsKQEAgLTMyMiw3ICszMjMsNyBAQCBjbGFzcyBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5l
cmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgICAgICBD
b2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwg
Q2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3Rl
cnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIGJyYW5kLCBHUFJSZWcg
c3R1YkluZm9HUFIpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkg
Y29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7
CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVtcC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAg
IHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7CkBAIC0zMzEsOSArMzMyLDkgQEAgY2xhc3Mg
SklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNh
Y2hlR2VuZXJhdG9yIHsKICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVmZmVyJiBm
YXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAgICAg
Ci0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CisgICAgdm9pZCBn
ZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OlBh
dGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFibGVK
dW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggODI3ZjFhNGQ5
YzFlY2M4OWQzMjA0MzMzNjE1YzNjYWVjMjJhMGU2OC4uZGRhMDkxYTI3ZjM5YjU5YTAxZWRiNTQ4
Y2EzMmZjZjc3N2JlNzE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9u
cy5jcHAKQEAgLTQzNCw5ICs0MzQsNiBAQCB2b2lkIE9wdGlvbnM6OnJlY29tcHV0ZURlcGVuZGVu
dE9wdGlvbnMoKQogICAgIE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRHQygpID0gZmFsc2U7CiAjZW5k
aWYKIAotICAgIGlmICghT3B0aW9uczo6dXNlRGF0YUlDKCkpCi0gICAgICAgIE9wdGlvbnM6OnVz
ZURhdGFJQ0luT3B0aW1pemluZ0pJVCgpID0gZmFsc2U7Ci0KICAgICAvLyBBdCBpbml0aWFsaXph
dGlvbiB0aW1lLCB3ZSBtYXkgZGVjaWRlIHRoYXQgdXNlSklUIHNob3VsZCBiZSBmYWxzZSBmb3Ig
YW55CiAgICAgLy8gbnVtYmVyIG9mIHJlYXNvbnMgKGluY2x1ZGluZyBmYWlsaW5nIHRvIGFsbG9j
YXRlIEpJVCBtZW1vcnkpLCBhbmQgdGhlcmVmb3JlLAogICAgIC8vIHdpbGwgLyBzaG91bGQgbm90
IGJlIGFibGUgdG8gZW5hYmxlIGFueSBKSVQgcmVsYXRlZCBzZXJ2aWNlcy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDgyNWEyYjY0ODdlYmRkZDI1
NTI1ZTI2YzQwODQzYTA1MmE3MDYwMmIuLjY5NGZlMzA5NGU3ZDUxNWRlYzQ5MmZhZGEzNzE5MTAx
NmY3MzQxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3Qu
aApAQCAtNTMxLDcgKzUzMSw2IEBAIGJvb2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7
CiAgICAgdihCb29sLCBkdW1wQmFzZWxpbmVKSVRTaXplU3RhdGlzdGljcywgZmFsc2UsIE5vcm1h
bCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgZHVtcERGR0pJVFNpemVTdGF0aXN0aWNzLCBmYWxz
ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCB2ZXJib3NlRXhlY3V0YWJsZVBvb2xB
bGxvY2F0aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCi0gICAgdihCb29sLCB1c2VEYXRh
SUMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHVzZURhdGFJQ0luT3B0
aW1pemluZ0pJVCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlRGF0
YUlDU2hhcmluZywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlQmFz
ZWxpbmVKSVRDb2RlU2hhcmluZywgaXM2NEJpdCgpLCBOb3JtYWwsIG51bGxwdHIpIFwKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0MGQ3ZDJjYzc0
ZTljOTZkNTU3NjlmYzIwMDQ0NjU5YWQzNTBkNzVhLi5hNDE5YmI0NTkzNGNiM2Y1YTQxNzgxNWJm
ZWY3Y2UxMGU2MGVmYmRkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDMtMjIgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlNDXSBUZXN0IERGRyAvIEZUTCBEYXRhSUMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0
cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMi0wMy0yMSAgQnJlbnQgRnVsZ2hhbSAgPGJm
dWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIHRoZSA8bW9kZWw+IGVsZW1lbnQg
aW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpz
Yy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4
IGRkNzEyOGVlNDE0NDVhZmNjZDc5NDYwNmQ1OTE2M2YzZDk1MzFkNDUuLjkxNjY1OGIxYTI1YTY5
MTAwZjk1ZTgyZGE5NjVmYmVkZDBiYWNiNTggMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVu
LWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0
cwpAQCAtMTA5MSw3ICsxMDkxLDcgQEAgQkFTRV9NT0RFUyA9IFsKICAgICAgICAgIkZUTE5vQ0pJ
VCIsCiAgICAgICAgICJtaXNjLWZ0bC1uby1jaml0IiwKICAgICAgICAgWwotICAgICAgICAgICAg
Ii0tdXNlRGF0YUlDPXRydWUiLAorICAgICAgICAgICAgIi0tdXNlRGF0YUlDSW5PcHRpbWl6aW5n
SklUPXRydWUiLAogICAgICAgICBdICsKICAgICAgICAgRlRMX09QVElPTlMgKwogICAgICAgICBO
T19DSklUX09QVElPTlMKQEAgLTExMTcsNyArMTExNyw3IEBAIEJBU0VfTU9ERVMgPSBbCiAgICAg
ICAgICAgICAiLS12YWxpZGF0ZUJDRT10cnVlIiwKICAgICAgICAgICAgICItLXVzZVNhbXBsaW5n
UHJvZmlsZXI9dHJ1ZSIsCiAgICAgICAgICAgICAiLS1haXJGb3JjZUlSQ0FsbG9jYXRvcj10cnVl
IiwKLSAgICAgICAgICAgICItLXVzZURhdGFJQz10cnVlIiwKKyAgICAgICAgICAgICItLXVzZURh
dGFJQ0luT3B0aW1pemluZ0pJVD10cnVlIiwKICAgICAgICAgXSArCiAgICAgICAgIEZUTF9PUFRJ
T05TICsKICAgICAgICAgTk9fQ0pJVF9PUFRJT05TCkBAIC0xMTc4LDcgKzExNzgsNyBAQCBCQVNF
X01PREVTID0gWwogICAgICAgICAgICAgIi0tYWlyRm9yY2VCcmlnZ3NBbGxvY2F0b3I9dHJ1ZSIs
CiAgICAgICAgICAgICAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9u
PXRydWUiLAogICAgICAgICAgICAgIi0tZm9yY2VQb2x5UHJvdG89dHJ1ZSIsCi0gICAgICAgICAg
ICAiLS11c2VEYXRhSUM9dHJ1ZSIsCisgICAgICAgICAgICAiLS11c2VEYXRhSUNJbk9wdGltaXpp
bmdKSVQ9dHJ1ZSIsCiAgICAgICAgIF0gKwogICAgICAgICBGVExfT1BUSU9OUyArCiAgICAgICAg
IEVBR0VSX09QVElPTlMgKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3Rz
L0NoYW5nZUxvZwppbmRleCAwZDI2YjczNzQ1YmI3NDAxNjhjMDVkMDdiYzc4YzY5MWY1MzE3MDEw
Li44NjdjZTFiN2U5MGYzNDA4MWYwODhjZjNlZWJmMzQ0NDA2ZjRhZjhkIDEwMDY0NAotLS0gYS9K
U1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIyLTAzLTIyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0pTQ10gVGVzdCBERkcgLyBGVEwgRGF0YUlDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJn
cy5qczoKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvcmljaGFyZHMtdHJ5LWNhdGNoLmpzOgor
CiAyMDIyLTAzLTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0pTQ10gUmVmZXJlbmNlRXJyb3Igd2hlbiB1c2luZyBleHRyYSBwYXJlbnMgaW4gY2xhc3Mg
ZmllbGRzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZWx0YWJsdWUtdmFy
YXJncy5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJhcmdzLmpzCmlu
ZGV4IGE4ZGU0OWJiYjRjMGY1MGMzOWJjYWIzZDk4ODAzMDU3YjkxNDdhNjguLjEwYmY3YWRiM2Jh
OTQ2YWQ0MDYzYjlhYTIwNzMyYTI3ZGFkOTc3YjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbWljcm9i
ZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJhcmdzLmpzCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1h
cmtzL2RlbHRhYmx1ZS12YXJhcmdzLmpzCkBAIC0xLDUgKzEsNSBAQAogLy9AIHNraXAgaWYgJG1v
ZGVsID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3Mt
dGVzdC5weQotLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZURhdGFJQz10cnVlIiwgIi0tdXNlRGF0
YUlDU2hhcmluZz10cnVlIikKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VEYXRhSUNJbk9wdGlt
aXppbmdKSVQ9dHJ1ZSIsICItLXVzZURhdGFJQ1NoYXJpbmc9dHJ1ZSIpCiAKIC8vIENvcHlyaWdo
dCAyMDA4IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAvLyBD
b3B5cmlnaHQgMTk5NiBKb2huIE1hbG9uZXkgYW5kIE1hcmlvIFdvbGN6a28uCmRpZmYgLS1naXQg
YS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yaWNoYXJkcy10cnktY2F0Y2guanMgYi9KU1Rlc3Rz
L21pY3JvYmVuY2htYXJrcy9yaWNoYXJkcy10cnktY2F0Y2guanMKaW5kZXggY2IyZTI5ZWE4YjAz
ZDM1YzRkOTU2MmZmNGEyMGNkMmMwZTE3OTQyNi4uNjEwZDYyNjg0OWIxN2Q3NGMzMzY0YzExNmJk
MmU0NzMxY2MyZTE1NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmljaGFy
ZHMtdHJ5LWNhdGNoLmpzCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRy
eS1jYXRjaC5qcwpAQCAtMSw1ICsxLDUgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUg
V2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKLS8vQCBy
ZXF1aXJlT3B0aW9ucygiLS11c2VEYXRhSUM9dHJ1ZSIsICItLXVzZURhdGFJQ1NoYXJpbmc9dHJ1
ZSIpCisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUPXRydWUi
LCAiLS11c2VEYXRhSUNTaGFyaW5nPXRydWUiKQogCiAvLyBDb3B5cmlnaHQgMjAwNi0yMDA4IHRo
ZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAvLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455397</attachid>
            <date>2022-03-22 11:07:07 -0700</date>
            <delta_ts>2022-03-22 12:07:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231224-20220322110706.patch</filename>
            <type>text/plain</type>
            <size>77373</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZTIwYjdiMTJiMzg2NWRjZDg1ZjQyNjA4N2ZlNzE4NGZlNzUxMDc4Li4wYTUzOTQ1ZGU1MmIyYmE3
YjRjYWRmYzRhMjI0N2NmZmQxNDFmMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAyMi0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFRlc3QgREZHIC8gRlRMIERhdGFJQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXZpdmVzIERhdGFJ
QyBpbiBERkcgYW5kIEZUTCwgYW5kIHJlLWVuYWJsZSB0ZXN0aW5nIHRvIG1ha2UgaXQgdXNhYmxl
CisgICAgICAgIGZvciB1bmxpbmtlZCBERkcuIEN1cnJlbnRseSwgb25seSB4NjQgLyBBUk02NCBh
cmUgc3VwcG9ydGVkLgorCisgICAgICAgICogYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjppc0NhY2hlYWJsZUFycmF5TGVuZ3RoKToKKyAgICAg
ICAgKEpTQzo6SW5saW5lQWNjZXNzOjppc0NhY2hlYWJsZVN0cmluZ0xlbmd0aCk6CisgICAgICAg
IChKU0M6OklubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNzKToKKyAgICAgICAg
KEpTQzo6SW5saW5lQWNjZXNzOjpyZXNldFN0dWJBc0p1bXBJbkFjY2Vzcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlJZEZsdXNoKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUluQnlJZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRC
eUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdp
dGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAgICAgICAgKiBqaXQvSklU
Q29kZS5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjp1c2VEYXRhSUMpOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdENvbW1vbik6CisgICAgICAgIChKU0M6OmdlbmVyYXRlR2V0QnlJ
ZElubGluZUFjY2Vzcyk6CisgICAgICAgIChKU0M6OkpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpnZW5lcmF0ZVB1dEJ5SWRJbmxpbmVB
Y2Nlc3MpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2Vs
aW5lRGF0YUlDRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVREZWxCeUlkR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5CeVZhbEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OmdlbmVyYXRlSW5CeUlkSW5saW5lQWNjZXNzKToK
KyAgICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAg
ICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFz
dFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yOjpnZW5lcmF0ZUZh
c3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aCk6CisgICAgICAgIChKU0M6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6
CisgICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpyZXBvcnRTbG93UGF0aENh
bGwpOgorICAgICAgICAoSlNDOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6c2xvd1BhdGhCZWdp
biBjb25zdCk6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcCBj
b25zdCk6CisgICAgICAgIChKU0M6OkpJVEluQnlWYWxHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcCBj
b25zdCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0
aW9uczo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zTGlzdC5oOgorCiAyMDIyLTAzLTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0pTQ10gUmVmZXJlbmNlRXJyb3Igd2hlbiB1c2luZyBleHRyYSBwYXJl
bnMgaW4gY2xhc3MgZmllbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvSW5saW5lQWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9J
bmxpbmVBY2Nlc3MuY3BwCmluZGV4IGZiNWVlYTJkY2JhZjJjNDBhMDdmYWNiN2Q1NzkzMzg4YzVj
Mjc2YWEuLjliYTBjOTIwZWIzMmUzYmY4MzQ0MTc1NzY4ZTU5ZjE4Mzk3MTdjOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCkBAIC0yOTks
NyArMjk5LDcgQEAgYm9vbCBJbmxpbmVBY2Nlc3M6OmlzQ2FjaGVhYmxlQXJyYXlMZW5ndGgoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmYKICAgICBpZiAoIXN0dWJJbmZvLmhh
c0NvbnN0YW50SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNv
ZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKQorICAgIGlmIChjb2Rl
QmxvY2stPnVzZURhdGFJQygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWhh
c0ZyZWVSZWdpc3RlcihzdHViSW5mbykpCkBAIC0zNDAsNyArMzQwLDcgQEAgYm9vbCBJbmxpbmVB
Y2Nlc3M6OmlzQ2FjaGVhYmxlU3RyaW5nTGVuZ3RoKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1
Y3R1cmVTdHViSW4KICAgICBpZiAoIXN0dWJJbmZvLmhhc0NvbnN0YW50SWRlbnRpZmllcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJ
VFR5cGU6OkJhc2VsaW5lSklUKQorICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gaGFzRnJlZVJlZ2lzdGVyKHN0dWJJbmZv
KTsKQEAgLTQyOCwyNCArNDI4LDYgQEAgdm9pZCBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1
bXBJbkFjY2Vzc05vdFVzaW5nSW5saW5lQWNjZXNzKENvZGVCbG9jayogY29kZUIKIHZvaWQgSW5s
aW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1YlJv
dXRpbmVQdHJUYWc+IHRhcmdldCkKIHsKICAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSkg
ewotICAgICAgICAvLyBJZiBpdCBpcyBub3QgR2V0QnlJZC1saWtlLXRoaW5nLCB3ZSBkbyBub3Qg
ZW1pdCBub3Agc2xlZCAoZS5nLiBHZXRCeVZhbCkuCi0gICAgICAgIC8vIFRoZSBjb2RlIGlzIGFs
cmVhZHkgYW4gaW5kaXJlY3QganVtcCwgYW5kIG9ubHkgdGhpbmcgd2Ugc2hvdWxkIGRvIGlzIHJl
cGxhY2luZyBtX2NvZGVQdHIuCi0gICAgICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSAhPSBK
SVRUeXBlOjpCYXNlbGluZUpJVCAmJiBzdHViSW5mby5oYXNDb25zdGFudElkZW50aWZpZXIpIHsK
LSAgICAgICAgICAgIC8vIElmIG1fY29kZVB0ciBpcyBwb2ludGluZyB0byBzdHViSW5mby5zbG93
UGF0aFN0YXJ0TG9jYXRpb24sIHRoaXMgbWVhbnMgdGhhdCBJbmxpbmVBY2Nlc3MgY29kZSBpcyBu
b3QgYSBzdHViIG9uZS4KLSAgICAgICAgICAgIC8vIFdlIHJld3JpdGUgdGhpcyB3aXRoIHRoZSBz
dHViLWJhc2VkIGRpc3BhdGNoaW5nIGNvZGUgb25jZSwgYW5kIGNvbnRpbnVlIHVzaW5nIGl0IHVu
dGlsIHdlIHJlc2V0IHRoZSBjb2RlLgotICAgICAgICAgICAgaWYgKHN0dWJJbmZvLm1fY29kZVB0
ci5leGVjdXRhYmxlQWRkcmVzcygpID09IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbi5l
eGVjdXRhYmxlQWRkcmVzcygpKSB7Ci0gICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjplbWl0
SklUQ29kZU92ZXIoc3R1YkluZm8uc3RhcnQucmV0YWdnZWQ8SlNJbnRlcm5hbFB0clRhZz4oKSwg
c2NvcGVkTGFtYmRhPHZvaWQoQ0NhbGxIZWxwZXJzJik+KFsmXShDQ2FsbEhlbHBlcnMmIGppdCkg
ewotICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoJnN0dWJJbmZvKSwgc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgICAgICAgICAg
ICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mby5tX3N0dWJJbmZv
R1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHViUm91dGlu
ZVB0clRhZyk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8ganVtcCA9IGppdC5qdW1wKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGF1dG8gZG9uZUxvY2F0aW9uID0gc3R1YkluZm8uZG9uZUxvY2F0
aW9uOwotICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dKExpbmtCdWZmZXIm
IGxpbmtCdWZmZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhq
dW1wLCBkb25lTG9jYXRpb24pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICB9KSwgIklubGluZUFjY2VzczogbGlua2luZyBzdHViIGNhbGwiKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9IHRhcmdldDsKICAg
ICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8g
Q2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKQEAgLTQ2
Miw3ICs0NDQsNyBAQCB2b2lkIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNz
KENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSQogCiB2b2lkIElubGluZUFjY2Vz
czo6cmVzZXRTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVy
ZVN0dWJJbmZvJiBzdHViSW5mbykKIHsKLSAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSAm
JiBjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCkgeworICAgIGlm
IChjb2RlQmxvY2stPnVzZURhdGFJQygpKSB7CiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9
IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKICAgICAgICAgc3R1YkluZm8ubV9pbmxp
bmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUg
YWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMzYwZTE4MTgzZWNiYTFlMGNjMDVkNzZj
NzJjZGYxMjE5ZWNjYjE2ZC4uNDg2OWFiMjY0ODNhZGJlZDBmNDdjMmE4N2UzOGNmN2Y0ZWRmM2Vm
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKQEAgLTEwNDksMjAgKzEwNDksMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5SWQoTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSBy
ZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9
IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAg
ICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgc2NyYXRjaC5l
bXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7
CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAgICAgICAgIH0KICAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoYmFz
ZS5ncHIoKSk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygp
OwogCiAgICAgICAgIGJhc2UudXNlKCk7CiAKLSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+
Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBOZWVkVG9TcGlsbCwg
YWNjZXNzVHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGlj
LCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNh
Y2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3BpbGwsIGFj
Y2Vzc1R5cGUpOwogCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0
YUZvcm1hdEpTLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogICAgICAgICBicmVhazsK
QEAgLTEwNzAsMTMgKzEwNzQsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
SWQoTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgY2FzZSBVbnR5cGVk
VXNlOiB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIEpTVmFs
dWVPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVn
c1RlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
SW52YWxpZEdQUlJlZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpE
RkdKSVQpKSB7CiAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAg
ICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHVi
SW5mby0+Z3ByKCk7CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAg
ICAgICAgIH0KICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdz
KCk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwpAQCAt
MTA4NSw3ICsxMDkzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5SWQoTm9k
ZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoYmFzZVJlZ3MpOwogCi0gICAgICAg
IGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVn
cywgc3R1YkluZm9HUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgTmVl
ZFRvU3BpbGwsIGFjY2Vzc1R5cGUpOworICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5vdENlbGwsIE5lZWRUb1NwaWxsLCBhY2Nl
c3NUeXBlKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFG
b3JtYXRKUywgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBA
IC0xMTAyLDEzICsxMTEwLDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlk
Rmx1c2goTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxs
UmVzdWx0IHJlc3VsdCh0aGlzKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJSZWc7CiAg
ICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewogICAgICAg
ICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2guZW1wbGFj
ZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAg
ICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAgICAgICAg
IEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2UuZ3By
KCkpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAg
LTExMTcsNyArMTEyOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlkRmx1
c2goTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CiAKLSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50aWMs
IGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBEb250U3BpbGwsIGFjY2Vzc1R5cGUpOworICAg
ICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3Vs
dFJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVy
KCksIEpJVENvbXBpbGVyOjpKdW1wKCksIERvbnRTcGlsbCwgYWNjZXNzVHlwZSk7CiAKICAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlLCBEYXRhRm9ybWF0SlMsIFVzZUNoaWxk
cmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTEyNSwxMyArMTEzNywx
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqIG5vZGUs
IEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSkKIAogICAgIGNhc2UgVW50eXBlZFVzZTogewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOwogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJl
c3VsdCByZXN1bHQodGhpcyk7CiAKICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxp
ZEdQUlJlZzsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAg
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICBzY3JhdGNoLmVtcGxhY2Uo
dGhpcyk7CiAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKKyAgICAg
ICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKICAgICAgICAgfQogICAgICAgICBK
U1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CkBAIC0xMTQyLDcgKzExNTgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqIG5vZGUsIEFjY2Vz
c1R5cGUgYWNjZXNzVHlwZSkKIAogICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RDZWxsID0g
bV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5vdENlbGwsIERvbnRTcGlsbCwgYWNjZXNz
VHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNl
UmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgRG9udFNwaWxsLCBhY2Nlc3NUeXBlKTsKIAogICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUywgVXNlQ2hpbGRy
ZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBAIC0xMzIzLDEzICsxMzM5LDE3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWxldGVCeVZhbChOb2RlKiBub2RlKQog
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluQnlJZChOb2RlKiBub2RlKQogewogICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICBzdGQ6Om9wdGlvbmFsPEdQ
UlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIGJhc2UsIFBheWxvYWRXb3JkKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IElu
dmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewogICAgICAgICBzdHVi
SW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICBzY3JhdGNoLmVtcGxhY2UodGhpcyk7CiAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICBzY3JhdGNoR1BSID0g
c2NyYXRjaC0+Z3ByKCk7CiAgICAgfQogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsK
ICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAgLTEzNDIsNyAr
MTM2Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbkJ5SWQoTm9kZSogbm9kZSkK
ICAgICBKSVRJbkJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwg
Jm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQsIGNv
ZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBub2RlLT5jYWNoZWFibGVJZGVudGlm
aWVyKCksCiAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShiYXNlR1BSKSwgcmVzdWx0
UmVncywgc3R1YkluZm9HUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAKICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKQEAgLTQxNTQsMTggKzQxNzQsMjIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZChOb2RlKiBub2RlKQogICAgIHN3aXRjaCAobV9ncmFw
aC5jaGlsZChub2RlLCAwKS51c2VLaW5kKCkpIHsKICAgICBjYXNlIENlbGxVc2U6IHsKICAgICAg
ICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6Om9w
dGlvbmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgSlNWYWx1ZVJl
Z3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKIAogICAgICAgICBHUFJSZWcg
c3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9
IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6
REZHSklUKSkgewogICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAg
ICAgIHNjcmF0Y2guZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1
YkluZm8tPmdwcigpOworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwog
ICAgICAgICB9CiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gSlNWYWx1ZVJlZ3M6OnBh
eWxvYWRPbmx5KGJhc2UuZ3ByKCkpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
cmVzdWx0LnJlZ3MoKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFibGVJ
ZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wKCksIE5lZWRUb1NwaWxsLCBBY2Nlc3NUeXBl
OjpHZXRQcml2YXRlTmFtZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNl
bWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3Bp
bGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiAgICAgICAgIGJyZWFrOwpAQCAtNDE3
MywyMCArNDE5NywyNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJpdmF0ZU5h
bWVCeUlkKE5vZGUqIG5vZGUpCiAKICAgICBjYXNlIFVudHlwZWRVc2U6IHsKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlz
LCBtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIg
PSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJS
ZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewog
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2gu
ZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAg
ICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwogICAgICAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKIAogICAgICAgICBKSVRD
b21waWxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKTsK
IAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3Ms
IHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5v
dENlbGwsIE5lZWRUb1NwaWxsLCBBY2Nlc3NUeXBlOjpHZXRQcml2YXRlTmFtZSk7CisgICAgICAg
IGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVn
cywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwg
bm90Q2VsbCwgTmVlZFRvU3BpbGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKIAogICAg
ICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtNDM0MiwxNCArNDM3MCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHV0UHJpdmF0ZU5hbWUoTm9kZSogbm9kZSkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQdXRQcml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+
IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsK
ICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQ
UiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAg
ICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1wbGFjZSh0aGlz
KTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAgICAgIHNjcmF0
Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJl
Z3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOwogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIo
KTsKQEAgLTQzNTgsNyArNDM5MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQ
cml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKICAgICAvLyBXZSBlbWl0IHByb3BlcnR5IGNoZWNr
IGR1cmluZyBERkcgZ2VuZXJhdGlvbiwgc28gd2UgZG9uJ3QgbmVlZAogICAgIC8vIHRvIGNoZWNr
IGl0IGhlcmUuCiAgICAgYXV0byBwdXRLaW5kID0gbm9kZS0+cHJpdmF0ZUZpZWxkUHV0S2luZCgp
LmlzRGVmaW5lKCkgPyBQdXRLaW5kOjpEaXJlY3RQcml2YXRlRmllbGREZWZpbmUgOiBQdXRLaW5k
OjpEaXJlY3RQcml2YXRlRmllbGRTZXQ7Ci0gICAgY2FjaGVkUHV0QnlJZChub2RlLT5vcmlnaW4u
c2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgcHV0S2luZCwgRUNNQU1vZGU6OnN0cmljdCgpKTsK
KyAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVS
ZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwgcHV0S2luZCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKIAogICAgIG5vUmVz
dWx0KG5vZGUpOwogfQpAQCAtMTQxMjgsMjEgKzE0MTYwLDI1IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVFbnVtZXJhdG9ySGFzT3duUHJvcGVydHkoTm9kZSogbm9kZSkKIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeUlkRmx1c2goTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6
Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJU
ZW1wb3Jhcnk+IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52
YWxpZEdQUlJlZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkp
IHsKICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1w
bGFjZSh0aGlzKTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAg
ICAgIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBHUFJSZWcgYmFz
ZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNW
YWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAgICAg
Zmx1c2hSZWdpc3RlcnMoKTsKIAotICAgIGNhY2hlZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5j
YWNoZWFibGVJZGVudGlmaWVyKCksIFB1dEtpbmQ6Ok5vdERpcmVjdCwgbm9kZS0+ZWNtYU1vZGUo
KSwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKSwgRG9udFNwaWxsKTsKKyAgICBjYWNoZWRQdXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwg
c2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0
S2luZDo6Tm90RGlyZWN0LCBub2RlLT5lY21hTW9kZSgpLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgp
LCBEb250U3BpbGwpOwogCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CkBAIC0xNDE1MCwyMCArMTQx
ODYsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWRGbHVzaChOb2RlKiBu
b2RlKQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWQoTm9kZSogbm9kZSkKIHsK
ICAgICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRp
b25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMs
IG5vZGUtPmNoaWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAg
IEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gy
R1BSID0gSW52YWxpZEdQUlJlZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6
OkRGR0pJVCkpIHsKICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2Ny
YXRjaDIuZW1wbGFjZSh0aGlzKTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3By
KCk7CisgICAgICAgIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBH
UFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0g
dmFsdWUuanNWYWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3By
KCk7CiAKLSAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwg
dmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOworICAgIGNhY2hl
ZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJ
bmZvR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmll
cigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOwogCiAgICAgbm9SZXN1
bHQobm9kZSk7CiB9CkBAIC0xNDE3MSwyMCArMTQyMTEsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEJ5SWQoTm9kZSogbm9kZSkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRCeUlkRGlyZWN0KE5vZGUqIG5vZGUpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1w
b3Jhcnk+IHN0dWJJbmZvOworICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNo
MjsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgR1BS
VGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAKICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOworICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9IEludmFsaWRHUFJSZWc7CiAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAgICAgICAgIHN0dWJJ
bmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgIHNjcmF0Y2gyLmVtcGxhY2UodGhpcyk7CiAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICBzY3JhdGNoMkdQUiA9
IHNjcmF0Y2gyLT5ncHIoKTsKICAgICB9CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OwogICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CiAgICAg
R1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwogCi0gICAgY2FjaGVkUHV0QnlJZChu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNj
cmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6RGlyZWN0LCBu
b2RlLT5lY21hTW9kZSgpKTsKKyAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJH
UFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6RGlyZWN0LCBub2RlLT5l
Y21hTW9kZSgpKTsKIAogICAgIG5vUmVzdWx0KG5vZGUpOwogfQpAQCAtMTU3NzgsNyArMTU4MjIs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHJvZmlsZVR5cGUoTm9kZSogbm9kZSkK
ICAgICBub1Jlc3VsdChub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0
QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1ZhbHVlUmVncyB2
YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHV0S2luZCBwdXRLaW5kLCBFQ01BTW9kZSBlY21hTW9k
ZSwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBz
cGlsbE1vZGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4g
Y29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEpTVmFsdWVSZWdzIHZhbHVlUmVncywgR1BSUmVn
IHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSLCBDYWNo
ZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFB1dEtpbmQgcHV0S2luZCwgRUNNQU1vZGUgZWNt
YU1vZGUsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01v
ZGUgc3BpbGxNb2RlKQogewogICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51
c2VkUmVnaXN0ZXJzKCk7CiAgICAgaWYgKHNwaWxsTW9kZSA9PSBEb250U3BpbGwpIHsKQEAgLTE1
Nzg3LDYgKzE1ODMxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQoQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgSlNWYWx1CiAgICAgICAgIHVzZWRS
ZWdpc3RlcnMuc2V0KHZhbHVlUmVncywgZmFsc2UpOwogICAgICAgICBpZiAoc3R1YkluZm9HUFIg
IT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0dWJJbmZv
R1BSLCBmYWxzZSk7CisgICAgICAgIGlmIChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcpCisg
ICAgICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNoR1BSLCBmYWxzZSk7CisgICAgICAg
IGlmIChzY3JhdGNoMkdQUiAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgdXNlZFJlZ2lz
dGVycy5zZXQoc2NyYXRjaDJHUFIsIGZhbHNlKTsKICAgICB9CiAgICAgQ2FsbFNpdGVJbmRleCBj
YWxsU2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGlu
Z09TUkV4aXRJZk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKICAgICBKSVRQ
dXRCeUlkR2VuZXJhdG9yIGdlbigKQEAgLTE1Nzk0LDcgKzE1ODQyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
R1BSLCBKU1ZhbHUKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VHUFIpLCB2
YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLAogICAgICAgICBzY3JhdGNoR1BSLCBlY21hTW9kZSwgcHV0
S2luZCk7CiAKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CisgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgobV9qaXQsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKIAogICAgIEpJVENv
bXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAgICAgaWYgKHNsb3dQYXRoVGFyZ2V0LmlzU2V0
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggNjk1MzQ1NTc5OWU1OGQ2MmU5YzlmZTNlNDY2NjNhOWVkYmRiMmE0NC4uM2UxNDI5ODJmZDc4
NzcyYzUzNDJmMWQ2MTU0NDBlODU2Njg1ZDZjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzIzLDE2ICs3MjMsMTYgQEAgY2xhc3MgU3Bl
Y3VsYXRpdmVKSVQgewogCiAgICAgdm9pZCBjb21waWxlQ2hlY2tEZXRhY2hlZChOb2RlKik7CiAK
LSAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIs
IEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUsIEFj
Y2Vzc1R5cGUpOwotICAgIHZvaWQgY2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZUdQUiwgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBz
Y3JhdGNoR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQdXRLaW5kLCBFQ01BTW9kZSwgSklUQ29t
cGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpLCBTcGlsbFJl
Z2lzdGVyc01vZGUgPSBOZWVkVG9TcGlsbCk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVP
cmlnaW4sIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJ
bmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7
CisgICAgdm9pZCBjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1Zh
bHVlUmVncyB2YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIs
IEdQUlJlZyBzY3JhdGNoMkdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHV0S2luZCwgRUNNQU1v
ZGUsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAo
KSwgU3BpbGxSZWdpc3RlcnNNb2RlID0gTmVlZFRvU3BpbGwpOwogICAgIHZvaWQgY2FjaGVkR2V0
QnlWYWwoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHks
IEpTVmFsdWVSZWdzIHJlc3VsdCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpOwog
CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwg
R1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2Fj
aGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxs
UmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7Ci0gICAgdm9pZCBjYWNoZWRHZXRCeUlkV2l0aFRo
aXMoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJSZWcgcmVz
dWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJ
VENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcExp
c3QoKSk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BS
LCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoR1BS
LCBDYWNoZWFibGVJZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwg
U3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nlc3NUeXBlKTsKKyAgICB2b2lkIGNhY2hlZEdldEJ5SWRX
aXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHRoaXNHUFIsIEdQUlJl
ZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hl
YWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJn
ZXQgPSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQot
ICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9u
ZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVz
dWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBK
SVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nl
c3NUeXBlKTsKLSAgICB2b2lkIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJS
ZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdGhpc1Rh
Z0dQUk9yTm9uZSwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVu
dGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0ID0gSklU
Q29tcGlsZXI6Okp1bXBMaXN0KCkpOworICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2lu
LCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcg
cmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BS
LCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1
bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7CisgICAg
dm9pZCBjYWNoZWRHZXRCeUlkV2l0aFRoaXMoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJP
ck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHRoaXNUYWdHUFJPck5vbmUsIEdQ
UlJlZyB0aGlzUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBh
eWxvYWRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJs
ZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJnZXQg
PSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAjZW5kaWYKIAogICAgIHZvaWQgY29tcGlsZURl
bGV0ZUJ5SWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggN2ZiNTY1MjMzMmY5YzYwZjYyMjI4NmZlYWE5
ZTU2YmE2MzI3ZjZjYS4uMGZmM2Q5MGVlZTEwYjg5MTVlMWRjOTY3NzUyZDRjMzdhNmRhZmVkMiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC0xNjgsMTQgKzE2OCwxNCBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpmaWxs
SlNWYWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcmIHBheWxvYWRHUFIsCiAg
ICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4g
b3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHVi
SW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVt
cCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJzTW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5
cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2lu
LCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQ
UiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSklU
Q29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgLCBTcGlsbFJlZ2lzdGVyc01vZGUgbW9kZSwg
QWNjZXNzVHlwZSB0eXBlKQogewotICAgIGNhY2hlZEdldEJ5SWQob3JpZ2luLCBiYXNlLnRhZ0dQ
UigpLCBiYXNlLnBheWxvYWRHUFIoKSwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9hZEdQ
UigpLCBzdHViSW5mb0dQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUp
OworICAgIGNhY2hlZEdldEJ5SWQob3JpZ2luLCBiYXNlLnRhZ0dQUigpLCBiYXNlLnBheWxvYWRH
UFIoKSwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9hZEdQUigpLCBzdHViSW5mb0dQUiwg
c2NyYXRjaEdQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUpOwogfQog
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogICAgIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwg
R1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzdHVi
SW5mb0dQUiwKLSAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlLCBBY2Nl
c3NUeXBlIHR5cGUpCisgICAgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0
ZXJzTW9kZSBzcGlsbE1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3R1YkluZm9HUFIpOwogICAgIC8vIFRoaXMgaXMgYSBoYWNreSBmaXggZm9yIHdoZW4gdGhlIHJl
Z2lzdGVyIGFsbG9jYXRvciBkZWNpZGVzIHRvIGFsaWFzIHRoZSBiYXNlIHBheWxvYWQgd2l0aCB0
aGUgcmVzdWx0IHRhZy4gVGhpcyBvbmx5IGhhcHBlbnMKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2so
KSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQs
IGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVyLAogICAgICAg
ICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVS
ZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiksIEludmFsaWRHUFJSZWcsIHR5cGUp
OwogICAgIAotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAgICBnZW4uZ2VuZXJh
dGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IHNsb3dDYXNlczsKICAgICBpZiAoc2xvd1BhdGhUYXJnZXQuaXNTZXQoKSkKQEAgLTIy
OSw3ICsyMjksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogfQogCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkV2l0aFRoaXMoCi0gICAgQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2Fk
R1BSLCBHUFJSZWcgdGhpc1RhZ0dQUiwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVz
dWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLAor
ICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJl
ZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHRoaXNUYWdHUFIsIEdQUlJlZyB0aGlzUGF5bG9hZEdQ
UiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBz
dHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0KQog
ewogICAgIFVOVVNFRF9QQVJBTShzdHViSW5mb0dQUik7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKAogICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBl
OjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVy
LAogICAgICAgICBKU1ZhbHVlUmVncyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpLCBK
U1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVSZWdz
KHRoaXNUYWdHUFIsIHRoaXNQYXlsb2FkR1BSKSwgSW52YWxpZEdQUlJlZyk7CiAgICAgCi0gICAg
Z2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0LCBzY3JhdGNoR1BSKTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nh
c2VzOwogICAgIGlmICghc2xvd1BhdGhUYXJnZXQuZW1wdHkoKSkKQEAgLTMyMzIsNyArMzIzMiw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IEdQUlJlZyByZXN1bHRUYWdHUFIgPSByZXN1bHRUYWcuZ3ByKCk7CiAgICAgICAgICAgICBHUFJS
ZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQuZ3ByKCk7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMs
IEludmFsaWRHUFJSZWcsIGJhc2VHUFIsIEludmFsaWRHUFJSZWcsIHRoaXNHUFIsIHJlc3VsdFRh
Z0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRl
bnRpZmllcigpKTsKKyAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmln
aW4uc2VtYW50aWMsIEludmFsaWRHUFJSZWcsIGJhc2VHUFIsIEludmFsaWRHUFJSZWcsIEludmFs
aWRHUFJSZWcsIHRoaXNHUFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxp
ZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIG5v
ZGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMzI1Miw3ICszMjUyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBw
ZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChiYXNlLmpzVmFsdWVSZWdzKCkpKTsKICAgICAgICAg
ICAgIG5vdENlbGxMaXN0LmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdENlbGwodGhpc1ZhbHVlLmpz
VmFsdWVSZWdzKCkpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdp
dGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIs
IHRoaXNUYWdHUFIsIHRoaXNQYXlsb2FkR1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRH
UFIsIEludmFsaWRHUFJSZWcsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbExp
c3QpOworICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIsIHRoaXNUYWdHUFIsIHRoaXNQYXlsb2Fk
R1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIEludmFsaWRHUFJSZWcsIEludmFs
aWRHUFJSZWcsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbExpc3QpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFRhZ0dQUiwgcmVzdWx0
UGF5bG9hZEdQUiwgbm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGZmOWI4NDJlYzZmOWI3OGM4MWZk
Y2U3MTdkZDRjM2YxY2JjMTBlNzcuLjdiNzk5MDg5ZDQyNmZiZmIxODMyYjY1ZjVlZTMwMTRkMmFl
ZGFlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcApAQCAtMTQ4LDEyICsxNDgsMTIgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpm
aWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiAgICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpj
YWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJz
TW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRH
ZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBy
ZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgLCBT
cGlsbFJlZ2lzdGVyc01vZGUgbW9kZSwgQWNjZXNzVHlwZSB0eXBlKQogewotICAgIGNhY2hlZEdl
dEJ5SWQob3JpZ2luLCBiYXNlLmdwcigpLCByZXN1bHQuZ3ByKCksIHN0dWJJbmZvR1BSLCBpZGVu
dGlmaWVyLCBzbG93UGF0aFRhcmdldCwgbW9kZSwgdHlwZSk7CisgICAgY2FjaGVkR2V0QnlJZChv
cmlnaW4sIGJhc2UuZ3ByKCksIHJlc3VsdC5ncHIoKSwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIs
IGlkZW50aWZpZXIsIHNsb3dQYXRoVGFyZ2V0LCBtb2RlLCB0eXBlKTsKIH0KIAotdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBi
YXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNw
aWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRj
aEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBz
bG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSwgQWNjZXNzVHlwZSB0
eXBlKQogewogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0
ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwg
bV9zdHJlYW0tPnNpemUoKSk7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMt
PnVzZWRSZWdpc3RlcnMoKTsKQEAgLTE2MywxNSArMTYzLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwg
R1BSUmVnCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHJlc3VsdEdQUiwgZmFsc2UpOwogICAg
ICAgICBpZiAoc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHVzZWRS
ZWdpc3RlcnMuc2V0KHN0dWJJbmZvR1BSLCBmYWxzZSk7CisgICAgICAgIGlmIChzY3JhdGNoR1BS
ICE9IEludmFsaWRHUFJSZWcpCisgICAgICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNo
R1BSLCBmYWxzZSk7CiAgICAgfQogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAg
ICBtX2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9z
LCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBp
ZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocmVz
dWx0R1BSKSwgc3R1YkluZm9HUFIsIHR5cGUpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1
bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKICAgICBpZiAoSklUQ29kZTo6
dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKQEAgLTE5MCw3ICsxOTMsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVn
IGJhc2VHUFIsIEdQUlJlZwogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1Bh
dGgpKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKENv
ZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJS
ZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgSklUQ29tcGlsZXI6Okp1bXBMaXN0JiBzbG93UGF0aFRhcmdldCkKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgdGhpc0dQUiwgR1BSUmVnIHJlc3VsdEdQUiwg
R1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0
KQogewogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFu
ZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9z
dHJlYW0tPnNpemUoKSk7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVz
ZWRSZWdpc3RlcnMoKTsKQEAgLTIwMCwxNSArMjAzLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
R1BSCiAgICAgdXNlZFJlZ2lzdGVycy5zZXQocmVzdWx0R1BSLCBmYWxzZSk7CiAgICAgaWYgKHN0
dWJJbmZvR1BSICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0
dWJJbmZvR1BSLCBmYWxzZSk7CisgICAgaWYgKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZykK
KyAgICAgICAgdXNlZFJlZ2lzdGVycy5zZXQoc2NyYXRjaEdQUiwgZmFsc2UpOwogICAgIAogICAg
IEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvciBnZW4oCiAgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJ
VCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50aWZpZXIsCiAgICAg
ICAgIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVl
UmVncyh0aGlzR1BSKSwgc3R1YkluZm9HUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1
bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGg7CiAgICAgaWYgKEpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CkBAIC00MjQyLDQyICs0MjQ4LDUyIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgIGNhc2UgR2V0
QnlJZFdpdGhUaGlzOiB7CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
Q2VsbFVzZSAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCB0aGlzVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAg
ICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAg
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKLSAgICAgICAgICAgICAgICBzdHVi
SW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIEdQ
UlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVH
UFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEdQUkZsdXNo
ZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5
PiBzdHViSW5mbzsKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3Jh
dGNoOworICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICAgICAgc2NyYXRjaC5lbXBs
YWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgYmFzZUdQUiwgdGhpc1ZhbHVlR1BSLCByZXN1bHRHUFIsIHN0dWJJbmZvR1BSLCBu
b2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wTGlzdCgpKTsKKyAg
ICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJh
c2VHUFIsIHRoaXNWYWx1ZUdQUiwgcmVzdWx0R1BSLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwg
bm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
ICAgICAgICAgICAgIAogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB0aGlz
VmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1Yklu
Zm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJ
QyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0
aGlzKTsKLSAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAg
ICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVHUFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAg
ICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgICAgIHN0ZDo6
b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOworICAgICAgICAgICAgR1BSUmVnIHN0dWJJ
bmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
SW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlw
ZTo6REZHSklUKSkgeworICAgICAgICAgICAgICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7Cisg
ICAgICAgICAgICAgICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0
dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIg
PSBzY3JhdGNoLT5ncHIoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIApAQCAtNDI4NSw3ICs0MzAxLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgbm90
Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChKU1ZhbHVlUmVncyhiYXNlR1BS
KSkpOwogICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2Vs
bChKU1ZhbHVlUmVncyh0aGlzVmFsdWVHUFIpKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHRo
aXNWYWx1ZUdQUiwgcmVzdWx0R1BSLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBub3RDZWxsTGlzdCk7CisgICAgICAgICAgICBjYWNoZWRHZXRCeUlkV2l0aFRoaXMo
bm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB0aGlzVmFsdWVHUFIsIHJlc3VsdEdQUiwg
c3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90
Q2VsbExpc3QpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dEdQUiwgbm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAppbmRleCBjNDA3YjAwYzRkYWI3ZDY3NmEwNWY5ZTNkNTBkZGQxYTcy
MTAwMmFiLi42MWUwYzc3ZGFlMGZlMmJlN2FhN2MzMTBlYzZjOGQxMmU1NTIyYWEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC00NjY1LDcg
KzQ2NjUsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBwYXRjaHBvaW50LT5hcHBl
bmQobV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lz
dGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX251bWJlclRhZywgVmFsdWVSZXA6
OnJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5j
bG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7Ci0gICAgICAgIHBh
dGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRU
eXBlOjpGVExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJl
Z2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMyA6IDA7CiAK
ICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBQdXRCeUlkRmx1c2gsIHdlIG1pZ2h0IHdh
bnQgdG8gbGF0ZS1jbG9iYmVyIHZvbGF0aWxlIHJlZ2lzdGVycy4KICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg0OApAQCAtNDY4OSw3ICs0Njg5
LDE0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAgICAgLy8gSlMgc2V0dGVy
IGNhbGwgSUNzIGdlbmVyYXRlZCBieSB0aGUgUHV0QnlJZCBJQyB3aWxsIG5lZWQgdGhpcy4KICAg
ICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53
aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1
YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5n
cFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9
IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhK
SVRUeXBlOjpGVExKSVQpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gcGFy
YW1zLmdwU2NyYXRjaCgwKTsKKyAgICAgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHBhcmFt
cy5ncFNjcmF0Y2goMSk7CisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2gyR1BSID0gcGFyYW1z
LmdwU2NyYXRjaCgyKTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBhdXRv
IGdlbmVyYXRvciA9IEJveDxKSVRQdXRCeUlkR2VuZXJhdG9yPjo6Y3JlYXRlKAogICAgICAgICAg
ICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1
YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRl
eCwKQEAgLTQ2OTcsMTQgKzQ3MDQsMTUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwgc3R1YkluZm9HUFIsIEdQ
UkluZm86OnBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXIsIGVjbWFNb2RlLAogICAgICAgICAgICAg
ICAgICAgICBwdXRLaW5kKTsKIAotICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVG
YXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0
aChqaXQsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKICAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBhcmFt
cy5hZGRMYXRlUGF0aCgKICAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGpp
dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVz
YWdlIGFsbG93U2NyYXRjaChqaXQpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgc2xvd1BhdGhCZWdpbiA9IGpp
dC5sYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIHNs
b3dQYXRoQ2FsbDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSkgewpAQCAtMTI4NDEsNyArMTI4NDksMTAgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9ub3RDZWxsTWFz
aywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3RlcikpOwogICAg
ICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVwOjpsYXRlUmVnKEdQ
UkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIo
UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKLSAgICAgICAgcGF0Y2hwb2lu
dC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZU
TEpJVCkgPyAxIDogMDsKKyAgICAgICAgaWYgY29uc3RleHByICh0eXBlID09IEFjY2Vzc1R5cGU6
OkluQnlJZCkKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9
IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMiA6IDA7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMSA6IDA7CiAKICAgICAgICAgUmVmUHRy
PFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9IHByZXBhcmVQYXRj
aHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKIApAQCAtMTI4NTcsNyArMTI4NjgsMTMg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg
dGhlIGRpcmVjdCBleGl0IHRhcmdldCBmb3Igb3BlcmF0aW9uIGNhbGxzLgogICAgICAgICAgICAg
ICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0gZXhjZXB0aW9uSGFu
ZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOwogCi0gICAgICAg
ICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6
OkZUTEpJVCkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKKyAgICAgICAg
ICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAg
ICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgICAgICBp
ZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgc3R1YkluZm9HUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAgICAg
ICAgICBpZiBjb25zdGV4cHIgKHR5cGUgPT0gQWNjZXNzVHlwZTo6SW5CeUlkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHBhcmFtcy5ncFNjcmF0Y2goMSk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGF1dG8gcmV0dXJuR1BSID0gcGFyYW1zWzBdLmdw
cigpOwogICAgICAgICAgICAgICAgIGF1dG8gYmFzZSA9IEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5n
cHIoKSk7CiAKQEAgLTEyODk2LDEzICsxMjkxMywxMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgICAgICAgICAgICAgfSgpOwogCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCk7CiAgICAgICAgICAgICAgICAgaWYgY29uc3RleHByICh0eXBlID09IEFj
Y2Vzc1R5cGU6OkluQnlJZCkKKyAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBnZW5lcmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAg
ICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQogICAgICAg
ICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkp
OwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoIUpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQotICAgICAgICAgICAgICAgICAgICAgICAg
c2xvd0Nhc2VzLmFwcGVuZChnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpKTsKLSAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0Lmxh
YmVsKCk7CiAKICAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoCkBAIC0xNTA2OCw3
ICsxNTA4NCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kU29tZVJlZ2lzdGVyKGJhc2UpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQo
bV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdp
c3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVw
OjpsYXRlUmVnKEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7Ci0gICAgICAgIHBhdGNocG9p
bnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpG
VExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVy
cyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMiA6IDA7CiAKICAgICAg
ICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBHZXRCeUlkRmx1c2gvR2V0QnlJZERpcmVjdEZsdXNo
LCB3ZSBtaWdodCBnZXQgc29tZSBwZXJmb3JtYW5jZSBib29zdCBpZiB3ZSBjbGFpbSB0aGF0IGl0
CiAgICAgICAgIC8vIGNsb2JiZXJzIHZvbGF0aWxlIHJlZ2lzdGVycyBsYXRlLiBJdCdzIG5vdCBu
ZWNlc3NhcnkgZm9yIGNvcnJlY3RuZXNzLCB0aG91Z2gsIHNpbmNlIHRoZQpAQCAtMTUwOTgsMTQg
KzE1MTE0LDE5IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAv
LyB0aGUgY2FsbHNpdGUgaW5kZXguCiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5z
Y2hlZHVsZUV4aXRDcmVhdGlvbkZvclVud2luZChwYXJhbXMsIGNhbGxTaXRlSW5kZXgpOwogCi0g
ICAgICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkZUTEpJVCkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAg
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAg
ICAgICAgICAgICBzY3JhdGNoR1BSID0gcGFyYW1zLmdwU2NyYXRjaCgxKTsKKyAgICAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRHZXRCeUlk
R2VuZXJhdG9yPjo6Y3JlYXRlKAogICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCks
ICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIHNl
bWFudGljTm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKICAgICAgICAgICAgICAgICAgICAgcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGlkZW50aWZpZXIsIEpTVmFsdWVSZWdzKHBhcmFt
c1sxXS5ncHIoKSksCiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5n
cHIoKSksIHN0dWJJbmZvR1BSLCB0eXBlKTsKIAotICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+
Z2VuZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJh
dGVGYXN0UGF0aChqaXQsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOwogCiAgICAgICAgICAgICAgICAgcGFyYW1zLmFk
ZExhdGVQYXRoKApAQCAtMTUxMTQsNyArMTUxMzUsOCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gb3B0aW1pemF0aW9uRnVuY3Rpb24g
PSBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24odHlwZSk7CiAKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZU
TEpJVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1
bXAoKS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpM
YWJlbCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CkBAIC0xNTE1OSw3
ICsxNTE4MSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kKG1fbm90Q2VsbE1hc2ssIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86Om5vdENl
bGxNYXNrUmVnaXN0ZXIpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fbnVtYmVyVGFn
LCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAg
ICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMo
KSk7Ci0gICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6
OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQt
Pm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExK
SVQpID8gMiA6IDA7CiAKICAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+
IGV4Y2VwdGlvbkhhbmRsZSA9CiAgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2Vw
dGlvbnMocGF0Y2hwb2ludCk7CkBAIC0xNTE4MiwxNCArMTUyMDQsMTkgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIC8vIHRoZSBjYWxsc2l0ZSBpbmRleC4KICAg
ICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53
aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1
YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5n
cFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSkgeworICAgICAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9
IHBhcmFtcy5ncFNjcmF0Y2goMCk7CisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBw
YXJhbXMuZ3BTY3JhdGNoKDEpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAg
IGF1dG8gZ2VuZXJhdG9yID0gQm94PEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcj46OmNyZWF0
ZSgKICAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCAmc3RhdGUtPmppdENvZGUt
PmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6RlRMSklULCBzZW1hbnRpY05vZGVPcmlnaW4s
IGNhbGxTaXRlSW5kZXgsCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJl
Z2lzdGVycygpLCBpZGVudGlmaWVyLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAogICAg
ICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVlUmVn
cyhwYXJhbXNbMl0uZ3ByKCkpLCBzdHViSW5mb0dQUik7CiAKLSAgICAgICAgICAgICAgICBnZW5l
cmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3It
PmdlbmVyYXRlRmFzdFBhdGgoaml0LCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBh
cmFtcy5hZGRMYXRlUGF0aCgKQEAgLTE1MTk4LDcgKzE1MjI1LDggQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9wdGltaXphdGlvbkZ1
bmN0aW9uID0gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemU7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJ
VCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAo
KS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJl
bCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5oCmluZGV4IDFlMmVmZDU4ZTczYzQ0MGY3MzczMTUzNmQwYWNhMDVhNzgx
M2E2NzQuLmNmMDMzMDdkYjcwODJkM2U5ZTA0YjYyOWZmY2U2MWVmYjFiNzIwYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCkBAIC0xNjUsOSArMTY1LDExIEBAIGNsYXNzIEpJVENv
ZGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SklUQ29kZT4gewogICAgIHsKICAgICAg
ICAgaWYgKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmICghT3B0aW9uczo6dXNlRGF0YUlDKCkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgICAgICBy
ZXR1cm4gT3B0aW9uczo6dXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUKCk7CisjZWxzZQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IERPTUpJ
VDo6U2lnbmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3Iu
Y3BwCmluZGV4IGI2NWE2MDRjMzRmZTFjNTI3MzJhNzJmMzgwZWVkZTNjZDMxZDRiYjkuLmY3NTQz
ODJiM2EyZjcwZjc1Y2I2OTg1YjhhYjc2MTdjOThkODAzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCkBAIC0xMDUs
MTcgKzEwNSwyMCBAQCB2b2lkIEpJVEJ5SWRHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXIm
IGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKICAgICAgICAgbV9zdHViSW5mby0+bV9j
b2RlUHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwogfQogCi12b2lkIEpJ
VEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdENvbW1vbihNYWNyb0Fzc2VtYmxlciYgaml0LCBz
aXplX3QgaW5saW5lSUNTaXplKQordm9pZCBKSVRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RD
b21tb24oQ0NhbGxIZWxwZXJzJiBqaXQsIHNpemVfdCBpbmxpbmVJQ1NpemUpCiB7Ci0gICAgLy8g
V2UgZ2VuZXJhdGUgdGhlIHNhbWUgY29kZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgU2hhcmVkSUMg
aXMgZW5hYmxlZCBiZWNhdXNlIHdlIHN0aWxsIG5lZWQgdG8gdXNlIElubGluZUFjY2VzcwotICAg
IC8vIGZvciB0aGUgcGVyZm9ybWFuY2UgcmVhc29uLgogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwo
KTsKLSAgICBzaXplX3Qgc3RhcnRTaXplID0gaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVT
aXplKCk7Ci0gICAgbV9zbG93UGF0aEp1bXAgPSBqaXQuanVtcCgpOwotICAgIHNpemVfdCBqdW1w
U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOwot
ICAgIHNpemVfdCBub3BzVG9FbWl0SW5CeXRlcyA9IGlubGluZUlDU2l6ZSAtIGp1bXBTaXplOwot
ICAgIGppdC5lbWl0Tm9wcyhub3BzVG9FbWl0SW5CeXRlcyk7Ci0gICAgQVNTRVJUKGppdC5tX2Fz
c2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplID09IGlubGluZUlDU2l6ZSk7
CisgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CisgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+
bV9zdHViSW5mb0dQUik7CisgICAgICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVz
cyhtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZD
b2RlUHRyKCkpLCBKSVRTdHViUm91dGluZVB0clRhZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
c2l6ZV90IHN0YXJ0U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpOwor
ICAgICAgICBtX3Nsb3dQYXRoSnVtcCA9IGppdC5qdW1wKCk7CisgICAgICAgIHNpemVfdCBqdW1w
U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOwor
ICAgICAgICBzaXplX3Qgbm9wc1RvRW1pdEluQnl0ZXMgPSBpbmxpbmVJQ1NpemUgLSBqdW1wU2l6
ZTsKKyAgICAgICAgaml0LmVtaXROb3BzKG5vcHNUb0VtaXRJbkJ5dGVzKTsKKyAgICAgICAgQVNT
RVJUKGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplID09IGlu
bGluZUlDU2l6ZSk7CisgICAgfQogICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCkBAIC0x
MjgsMTMgKzEzMSw3IEBAIEpJVEdldEJ5SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3Io
CiAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkgIT0gdmFsdWUudGFnR1BSKCkp
OwogfQogCi12b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9B
c3NlbWJsZXImIGppdCkKLXsKLSAgICBBU1NFUlQobV9zdHViSW5mbyk7Ci0gICAgZ2VuZXJhdGVG
YXN0Q29tbW9uKGppdCwgbV9pc0xlbmd0aEFjY2VzcyA/IElubGluZUFjY2Vzczo6c2l6ZUZvckxl
bmd0aEFjY2VzcygpIDogSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGdlbmVyYXRlR2V0QnlJZElubGluZUFjY2VzcyhKSVQmIGppdCwgR1BS
UmVnIHN0dWJJbmZvR1BSLCBKU1ZhbHVlUmVncyBiYXNlSlNSLCBHUFJSZWcgc2NyYXRjaEdQUiwg
SlNWYWx1ZVJlZ3MgcmVzdWx0SlNSKQorc3RhdGljIHZvaWQgZ2VuZXJhdGVHZXRCeUlkSW5saW5l
QWNjZXNzKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEpTVmFsdWVSZWdz
IGJhc2VKU1IsIEdQUlJlZyBzY3JhdGNoR1BSLCBKU1ZhbHVlUmVncyByZXN1bHRKU1IpCiB7CiAg
ICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCks
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwogICAgIGF1dG8gZG9J
bmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQ
UiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQoKSkpOwpAQCAtMTQ0LDYgKzE0MSwy
MSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3MoSklUJiBqaXQsIEdQ
UlJlZyBzdHViSW5mb0dQUiwgSlNWYWx1ZVJlZwogICAgIGppdC5sb2FkUHJvcGVydHkoYmFzZUpT
Ui5wYXlsb2FkR1BSKCksIHNjcmF0Y2hHUFIsIHJlc3VsdEpTUik7CiB9CiAKK3ZvaWQgSklUR2V0
QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVn
IHNjcmF0Y2hHUFIpCit7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOworICAgIGlmICghSklUQ29k
ZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKKyAgICAgICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGpp
dCwgbV9pc0xlbmd0aEFjY2VzcyA/IElubGluZUFjY2Vzczo6c2l6ZUZvckxlbmd0aEFjY2Vzcygp
IDogSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAg
ICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKKyAgICBn
ZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BS
LCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOworICAgIG1fZG9uZSA9IGppdC5sYWJlbCgp
OworfQorCiB2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNG
YXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkluZm8sIEdQUlJlZyBzdHViSW5mb0dQUikK
IHsKICAgICBSRUxFQVNFX0FTU0VSVChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSk7CkBA
IC0xNzQsMTAgKzE4NiwxOSBAQCBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5
SWRXaXRoVGhpc0dlbmVyYXRvcigKICAgICB9CiB9CiAKLXZvaWQgSklUR2V0QnlJZFdpdGhUaGlz
R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJ
VEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMm
IGppdCwgR1BSUmVnIHNjcmF0Y2hHUFIpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwotICAg
IGdlbmVyYXRlRmFzdENvbW1vbihqaXQsIElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5QWNj
ZXNzKCkpOworICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKKyAgICAg
ICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGppdCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlB
Y2Nlc3MoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQ
UiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZv
LT5tX3N0dWJJbmZvR1BSKTsKKyAgICBnZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOwor
ICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCiB2b2lkIEpJVEdldEJ5SWRXaXRoVGhpc0dl
bmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25l
ZCBzdHViSW5mbywgR1BSUmVnIHN0dWJJbmZvR1BSKQpAQCAtMjA4LDYgKzIyOSwxNiBAQCBKSVRQ
dXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKAogICAgICAgICBtX3N0dWJJbmZv
LT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gpOwogfQogCitzdGF0aWMgdm9pZCBnZW5lcmF0
ZVB1dEJ5SWRJbmxpbmVBY2Nlc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQ
UiwgSlNWYWx1ZVJlZ3MgYmFzZUpTUiwgSlNWYWx1ZVJlZ3MgdmFsdWVKU1IsIEdQUlJlZyBzY3Jh
dGNoR1BSLCBHUFJSZWcgc2NyYXRjaDJHUFIpCit7CisgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOworICAgIGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNo
MzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlSUQoKSkpOworICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
dHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1
YlJvdXRpbmVQdHJUYWcpOworICAgIGRvSW5saW5lQWNjZXNzLmxpbmsoJmppdCk7CisgICAgaml0
LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJ
bmZvOjpvZmZzZXRPZkJ5SWRTZWxmT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICBqaXQuc3Rv
cmVQcm9wZXJ0eSh2YWx1ZUpTUiwgYmFzZUpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hHUFIsIHNj
cmF0Y2gyR1BSKTsKK30KKwogdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2Vs
aW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWJJbmZvLCBHUFJSZWcgc3R1
YkluZm9HUFIpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0
VHlwZSkpOwpAQCAtMjIxLDE5ICsyNTIsMjMgQEAgdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWIKICAg
ICB1c2luZyBCYXNlbGluZUpJVFJlZ2lzdGVyczo6UHV0QnlJZDo6RmFzdFBhdGg6OnNjcmF0Y2hH
UFI7CiAgICAgdXNpbmcgQmFzZWxpbmVKSVRSZWdpc3RlcnM6OlB1dEJ5SWQ6OkZhc3RQYXRoOjpz
Y3JhdGNoMkdQUjsKIAotICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VK
U1IucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BS
KTsKLSAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6
RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3Ry
dWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsK
LSAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVj
dHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsK
LSAgICBkb0lubGluZUFjY2Vzcy5saW5rKCZqaXQpOwotICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZCeUlk
U2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgaml0LnN0b3JlUHJvcGVydHkodmFsdWVK
U1IsIGJhc2VKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUik7CisgICAg
Z2VuZXJhdGVQdXRCeUlkSW5saW5lQWNjZXNzKGppdCwgc3R1YkluZm9HUFIsIGJhc2VKU1IsIHZh
bHVlSlNSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUik7CiAgICAgbV9kb25lID0gaml0LmxhYmVs
KCk7CiB9CiAKLXZvaWQgSklUUHV0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNy
b0Fzc2VtYmxlciYgaml0KQordm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gy
R1BSKQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKLSAgICBnZW5lcmF0ZUZhc3RDb21tb24o
aml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eVJlcGxhY2UoKSk7CisgICAgaWYgKCFK
SVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkgeworICAgICAgICBnZW5lcmF0ZUZhc3RDb21t
b24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eVJlcGxhY2UoKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVn
KTsKKyAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsK
KyAgICBnZW5lcmF0ZVB1dEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJ
bmZvR1BSLCBtX2Jhc2UsIG1fdmFsdWUsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKKyAgICBt
X2RvbmUgPSBqaXQubGFiZWwoKTsKIH0KIAogVl9KSVRPcGVyYXRpb25fR1NzaUpKQyBKSVRQdXRC
eUlkR2VuZXJhdG9yOjpzbG93UGF0aEZ1bmN0aW9uKCkKQEAgLTI4MSw3ICszMTYsNyBAQCBKSVRE
ZWxCeVZhbEdlbmVyYXRvcjo6SklURGVsQnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIEJhZzxTdHJ1Y3R1cmVTdAogICAgIH0KIH0KIAotdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQordm9pZCBKSVREZWxCeVZh
bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBB
U1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtMzIzLDcg
KzM1OCw3IEBAIEpJVERlbEJ5SWRHZW5lcmF0b3I6OkpJVERlbEJ5SWRHZW5lcmF0b3IoQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViCiAgICAgfQogfQogCi12b2lkIEpJVERl
bEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3Zv
aWQgSklURGVsQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGpp
dCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgp
OwpAQCAtMzYwLDcgKzM5NSw3IEBAIEpJVEluQnlWYWxHZW5lcmF0b3I6OkpJVEluQnlWYWxHZW5l
cmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViCiAgICAgfQogfQog
Ci12b2lkIEpJVEluQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJs
ZXImIGppdCkKK3ZvaWQgSklUSW5CeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2Fs
bEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9
IGppdC5sYWJlbCgpOwpAQCAtMzkyLDEwICs0MjcsMzQgQEAgSklUSW5CeUlkR2VuZXJhdG9yOjpK
SVRJbkJ5SWRHZW5lcmF0b3IoCiAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkg
IT0gdmFsdWUudGFnR1BSKCkpOwogfQogCi12b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQorc3RhdGljIHZvaWQgZ2VuZXJhdGVJbkJ5
SWRJbmxpbmVBY2Nlc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQUiwgSlNW
YWx1ZVJlZ3MgYmFzZUpTUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEpTVmFsdWVSZWdzIHJlc3VsdEpT
UikKK3sKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CisKKyAgICBqaXQubG9hZDMy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlSlNSLnBheWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1
Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgYXV0byBza2lwSW5saW5lQWNjZXNz
ID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9m
SW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKKyAgICBqaXQuYm94Qm9vbGVhbih0cnVl
LCByZXN1bHRKU1IpOworICAgIGF1dG8gZmluaXNoZWQgPSBqaXQuanVtcCgpOworCisgICAgc2tp
cElubGluZUFjY2Vzcy5saW5rKCZqaXQpOworICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6
QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ29kZVB0cigp
KSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOworCisgICAgZmluaXNoZWQubGluaygmaml0KTsKK30K
Kwordm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJz
JiBqaXQsIEdQUlJlZyBzY3JhdGNoR1BSKQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKLSAg
ICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eUFj
Y2VzcygpKTsKKyAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CisgICAg
ICAgIGdlbmVyYXRlRmFzdENvbW1vbihqaXQsIElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5
QWNjZXNzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKHNjcmF0Y2hH
UFIgIT0gSW52YWxpZEdQUlJlZyk7CisgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOworICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5m
by0+bV9zdHViSW5mb0dQUik7CisgICAgZ2VuZXJhdGVJbkJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOwor
ICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCiB2b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6
Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHViSW5m
bywgR1BSUmVnIHN0dWJJbmZvR1BSKQpAQCAtNDEwLDE3ICs0NjksOCBAQCB2b2lkIEpJVEluQnlJ
ZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNp
Z25lZCBzdHViSQogICAgIHVzaW5nIEJhc2VsaW5lSklUUmVnaXN0ZXJzOjpJbkJ5SWQ6OnJlc3Vs
dEpTUjsKICAgICB1c2luZyBCYXNlbGluZUpJVFJlZ2lzdGVyczo6SW5CeUlkOjpzY3JhdGNoR1BS
OwogCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOworICAgIGdlbmVyYXRlSW5CeUlk
SW5saW5lQWNjZXNzKGppdCwgc3R1YkluZm9HUFIsIGJhc2VKU1IsIHNjcmF0Y2hHUFIsIHJlc3Vs
dEpTUik7CiAKLSAgICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlSlNSLnBh
eWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0g
ICAgYXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90
RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3Ry
dWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsK
LSAgICBqaXQuYm94Qm9vbGVhbih0cnVlLCByZXN1bHRKU1IpOwotICAgIGF1dG8gZmluaXNoZWQg
PSBqaXQuanVtcCgpOwotCi0gICAgc2tpcElubGluZUFjY2Vzcy5saW5rKCZqaXQpOwotICAgIGpp
dC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1
YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOwotCi0gICAg
ZmluaXNoZWQubGluaygmaml0KTsKICAgICBtX2RvbmUgPSBqaXQubGFiZWwoKTsKIH0KIApAQCAt
NDUyLDcgKzUwMiw3IEBAIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OkpJVEluc3RhbmNlT2ZHZW5l
cmF0b3IoCiAgICAgfQogfQogCi12b2lkIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklUSW5zdGFuY2VPZkdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9z
dHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtNDkxLDcgKzU0MSw3IEBA
IEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpKSVRHZXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgQmFnPFN0cnVjdHVyZVN0CiAgICAgfQogfQogCi12b2lkIEpJVEdldEJ5VmFsR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogewog
ICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CkBAIC01
MzEsNyArNTgxLDcgQEAgSklUUHV0QnlWYWxHZW5lcmF0b3I6OkpJVFB1dEJ5VmFsR2VuZXJhdG9y
KENvZGVCbG9jayogY29kZUJsb2NrLCBCYWc8U3RydWN0dXJlU3QKICAgICB9CiB9CiAKLXZvaWQg
SklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGpp
dCkKK3ZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxw
ZXJzJiBqaXQpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBqaXQu
bGFiZWwoKTsKQEAgLTU2OSw3ICs2MTksNyBAQCBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0
b3I6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbAogICAg
IH0KIH0KIAotdm9pZCBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogewogICAgIEFTU0VS
VChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKaW5kZXggNTI0
ZjliMDQ5ZTBmM2YzMWMyOTZkYzRkNGY3MmU3NjhiZWVlM2I1Yy4uZDk3NTI5ZTBkYmEwOTk4ZWEw
YTk3YjA1ZjgzYjg4NGFhODRiYjUxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVO
QUJMRShKSVQpCiAKICNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKICNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0
aW9uVmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKQEAgLTU2LDEzICs1
NywxMyBAQCBjbGFzcyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9zdHViSW5mbzsgfQog
Ci0gICAgdm9pZCByZXBvcnRTbG93UGF0aENhbGwoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQ
YXRoQmVnaW4sIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwpCisgICAgdm9pZCByZXBvcnRTbG93
UGF0aENhbGwoQ0NhbGxIZWxwZXJzOjpMYWJlbCBzbG93UGF0aEJlZ2luLCBDQ2FsbEhlbHBlcnM6
OkNhbGwgY2FsbCkKICAgICB7CiAgICAgICAgIG1fc2xvd1BhdGhCZWdpbiA9IHNsb3dQYXRoQmVn
aW47CiAgICAgICAgIG1fc2xvd1BhdGhDYWxsID0gY2FsbDsKICAgICB9CiAgICAgCi0gICAgTWFj
cm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nsb3dQ
YXRoQmVnaW47IH0KKyAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4oKSBjb25z
dCB7IHJldHVybiBtX3Nsb3dQYXRoQmVnaW47IH0KIAogICAgIHZvaWQgZmluYWxpemUoCiAgICAg
ICAgIExpbmtCdWZmZXImIGZhc3RQYXRoTGlua0J1ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhM
aW5rQnVmZmVyLApAQCAtNzgsMTAgKzc5LDEwIEBAIGNsYXNzIEpJVElubGluZUNhY2hlR2VuZXJh
dG9yIHsKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogbV9zdHViSW5mbyB7IG51bGxwdHIgfTsKIAog
cHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX3N0YXJ0OwotICAgIE1hY3JvQXNz
ZW1ibGVyOjpMYWJlbCBtX2RvbmU7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fc2xvd1Bh
dGhCZWdpbjsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtX3Nsb3dQYXRoQ2FsbDsKKyAgICBD
Q2FsbEhlbHBlcnM6OkxhYmVsIG1fc3RhcnQ7CisgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2Rv
bmU7CisgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX3Nsb3dQYXRoQmVnaW47CisgICAgQ0NhbGxI
ZWxwZXJzOjpDYWxsIG1fc2xvd1BhdGhDYWxsOwogfTsKIAogY2xhc3MgSklUQnlJZEdlbmVyYXRv
ciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CkBAIC05Myw3ICs5NCw3IEBAIGNs
YXNzIEpJVEJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3Igewog
ICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJ
bmZvR1BSKTsKIAogcHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVt
cCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJl
dHVybiBtX3Nsb3dQYXRoSnVtcDsKQEAgLTEwNCwxMyArMTA1LDEzIEBAIGNsYXNzIEpJVEJ5SWRH
ZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIAogcHJvdGVj
dGVkOgogICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0Q29tbW9uKE1hY3JvQXNzZW1ibGVyJiwg
c2l6ZV90IHNpemUpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0Q29tbW9uKENDYWxsSGVscGVycyYs
IHNpemVfdCBzaXplKTsKICAgICAKICAgICBKU1ZhbHVlUmVncyBtX2Jhc2U7CiAgICAgSlNWYWx1
ZVJlZ3MgbV92YWx1ZTsKIAogcHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG1fc2xv
d1BhdGhKdW1wOworICAgIENDYWxsSGVscGVyczo6SnVtcCBtX3Nsb3dQYXRoSnVtcDsKIH07CiAK
IGNsYXNzIEpJVEdldEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRv
ciB7CkBAIC0xMjEsNyArMTIyLDcgQEAgY2xhc3MgSklUR2V0QnlJZEdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVj
dHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAg
ICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BS
LCBBY2Nlc3NUeXBlKTsKICAgICAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3Nl
bWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgR1BSUmVn
IHNjcmF0Y2hHUFIpOwogICAgIHZvaWQgZ2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJ
VCYsIHVuc2lnbmVkIHN0dWJJbmZvQ29uc3RhbnQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKIHBy
aXZhdGU6CkBAIC0xMzYsOCArMTM3LDggQEAgY2xhc3MgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJh
dG9yIGZpbmFsIDogcHVibGljIEpJVEJ5SWRHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sq
LCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJ
bmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZp
ZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyB0aGlzUmVncywgR1BSUmVnIHN0dWJJbmZvR1BSKTsKIAorICAgIHZvaWQgZ2VuZXJhdGVG
YXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBHUFJSZWcgc2NyYXRjaEdQUik7CiAgICAgdm9pZCBnZW5l
cmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiwgdW5zaWduZWQgc3R1YkluZm9Db25zdGFu
dCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9B
c3NlbWJsZXImKTsKIH07CiAKIGNsYXNzIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJs
aWMgSklUQnlJZEdlbmVyYXRvciB7CkBAIC0xNDgsNyArMTQ5LDcgQEAgY2xhc3MgSklUUHV0QnlJ
ZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKICAgICAgICAgQ29k
ZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENh
bGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJ
ZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwg
R1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaCwgRUNNQU1vZGUsIFB1dEtpbmQpOwog
ICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZv
aWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BS
UmVnIHNjcmF0Y2gyR1BSKTsKICAgICB2b2lkIGdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0
aChKSVQmLCB1bnNpZ25lZCBzdHViSW5mb0NvbnN0YW50LCBHUFJSZWcgc3R1YkluZm9HUFIpOwog
ICAgIAogICAgIFZfSklUT3BlcmF0aW9uX0dTc2lKSkMgc2xvd1BhdGhGdW5jdGlvbigpOwpAQCAt
MTY3LDcgKzE2OCw3IEBAIGNsYXNzIEpJVFB1dEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVj
dHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIEFjY2Vz
c1R5cGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVl
UmVncyBiYXNlLCBKU1ZhbHVlUmVncyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJS
ZWcgYXJyYXlQcm9maWxlR1BSLCBHUFJSZWcgc3R1YkluZm9HUFIpOwogCi0gICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
c2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVt
cC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7
CkBAIC0xNzUsMTIgKzE3NiwxMiBAQCBjbGFzcyBKSVRQdXRCeVZhbEdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAKICAgICB2b2lkIGZpbmFsaXplKExp
bmtCdWZmZXImIGZhc3RQYXRoTGlua0J1ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhMaW5rQnVm
ZmVyKTsKIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAg
IHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAogICAgIEpTVmFsdWVSZWdz
IG1fYmFzZTsKICAgICBKU1ZhbHVlUmVncyBtX3ZhbHVlOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6
OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFi
bGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogY2xhc3MgSklURGVsQnlWYWxHZW5lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewpAQCAtMTkyLDcgKzE5Myw3
IEBAIGNsYXNzIEpJVERlbEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNh
Y2hlR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZv
PiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0
JiB1c2VkUmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBw
cm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBz
Y3JhdGNoKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0
CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAg
ICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwogICAgICAgICByZXR1
cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMjAxLDkgKzIwMiw5IEBAIGNsYXNzIEpJVERl
bEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsK
ICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZm
ZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAKLSAgICB2b2lkIGdlbmVyYXRl
RmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0Nh
bGxIZWxwZXJzJik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQ
YXRoSnVtcDsKKyAgICBDQ2FsbEhlbHBlcnM6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7
CiB9OwogCiBjbGFzcyBKSVREZWxCeUlkR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGlu
ZUNhY2hlR2VuZXJhdG9yIHsKQEAgLTIxNSw3ICsyMTYsNyBAQCBjbGFzcyBKSVREZWxCeUlkR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAg
Q29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4s
IENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFi
bGVJZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1
bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2gpOwogCi0gICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
c2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVt
cC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7
CkBAIC0yMjQsOSArMjI1LDkgQEAgY2xhc3MgSklURGVsQnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1
YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgdm9pZCBmaW5hbGl6ZSgKICAgICAg
ICAgTGlua0J1ZmZlciYgZmFzdFBhdGhMaW5rQnVmZmVyLCBMaW5rQnVmZmVyJiBzbG93UGF0aExp
bmtCdWZmZXIpOwogCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7
CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwogCi0gICAgTWFjcm9B
c3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJz
OjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogY2xhc3MgSklUSW5CeVZhbEdl
bmVyYXRvciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CkBAIC0yMzgsNyArMjM5
LDcgQEAgY2xhc3MgSklUSW5CeVZhbEdlbmVyYXRvciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdl
bmVyYXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBK
SVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlLCBjb25zdCBSZWdp
c3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1
ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsK
IAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NF
UlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwogICAgICAgICByZXR1cm4gbV9zbG93
UGF0aEp1bXAubV9qdW1wOwpAQCAtMjQ3LDkgKzI0OCw5IEBAIGNsYXNzIEpJVEluQnlWYWxHZW5l
cmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIHZvaWQgZmluYWxp
emUoCiAgICAgICAgIExpbmtCdWZmZXImIGZhc3RQYXRoTGlua0J1ZmZlciwgTGlua0J1ZmZlciYg
c2xvd1BhdGhMaW5rQnVmZmVyKTsKIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAot
ICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOworICAgIEND
YWxsSGVscGVyczo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKIH07CiAKIGNsYXNzIEpJ
VEluQnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKQEAgLTI2
MCw3ICsyNjEsNyBAQCBjbGFzcyBKSVRJbkJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklU
QnlJZEdlbmVyYXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5m
bz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNl
dCYgdXNlZFJlZ2lzdGVycywgQ2FjaGVhYmxlSWRlbnRpZmllciwKICAgICAgICAgSlNWYWx1ZVJl
Z3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKLSAgICB2
b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRl
RmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgR1BSUmVnIHNjcmF0Y2hHUFIpOwogICAgIHZvaWQgZ2Vu
ZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYsIHVuc2lnbmVkIHN0dWJJbmZvQ29uc3Rh
bnQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiB9OwogCkBAIC0yNzQsOSArMjc1LDkgQEAgY2xhc3Mg
SklUSW5zdGFuY2VPZkdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvciB7CiAgICAgICAgIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIHByb3RvdHlwZSwgR1BSUmVnIHN0
dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwKICAgICAgICAgYm9v
bCBwcm90b3R5cGVJc0tub3duT2JqZWN0ID0gZmFsc2UpOwogICAgIAotICAgIHZvaWQgZ2VuZXJh
dGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChD
Q2FsbEhlbHBlcnMmKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgp
IGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwogICAgICAg
ICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMjg0LDcgKzI4NSw3IEBAIGNsYXNz
IEpJVEluc3RhbmNlT2ZHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IgewogCiAgICAgdm9pZCBmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZm
ZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAKLSAgICBNYWNyb0Fzc2VtYmxl
cjo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKKyAgICBDQ2FsbEhlbHBlcnM6OlBhdGNo
YWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CiB9OwogCiBjbGFzcyBKSVRHZXRCeVZhbEdlbmVyYXRv
ciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CkBAIC0yOTYsNyArMjk3
LDcgQEAgY2xhc3MgSklUR2V0QnlWYWxHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1Yklu
Zm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29u
c3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2Us
IEpTVmFsdWVSZWdzIHByb3BlcnR5LCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5m
b0dQUik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAor
ICAgIENDYWxsSGVscGVyczo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAogICAgIHsKICAgICAg
ICAgQVNTRVJUKG1fc2xvd1BhdGhKdW1wLm1fanVtcC5pc1NldCgpKTsKICAgICAgICAgcmV0dXJu
IG1fc2xvd1BhdGhKdW1wLm1fanVtcDsKQEAgLTMwNSwxMiArMzA2LDEyIEBAIGNsYXNzIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsK
ICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZm
ZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAgICAgCi0gICAgdm9pZCBnZW5l
cmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRo
KENDYWxsSGVscGVycyYpOwogCiAgICAgSlNWYWx1ZVJlZ3MgbV9iYXNlOwogICAgIEpTVmFsdWVS
ZWdzIG1fcmVzdWx0OwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93
UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1w
OwogfTsKIAogY2xhc3MgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yIGZpbmFsIDogcHVi
bGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKQEAgLTMyMiw3ICszMjMsNyBAQCBjbGFzcyBK
SVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+
KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29uc3Qg
UmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpT
VmFsdWVSZWdzIGJyYW5kLCBHUFJSZWcgc3R1YkluZm9HUFIpOwogCi0gICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xv
d1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVtcC5t
X2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7CkBA
IC0zMzEsOSArMzMyLDkgQEAgY2xhc3MgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICB2b2lkIGZpbmFsaXpl
KAogICAgICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNs
b3dQYXRoTGlua0J1ZmZlcik7CiAgICAgCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3Jv
QXNzZW1ibGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwog
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAg
Q0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAKaW5kZXggODI3ZjFhNGQ5YzFlY2M4OWQzMjA0MzMzNjE1YzNjYWVjMjJhMGU2OC4u
ZGRhMDkxYTI3ZjM5YjU5YTAxZWRiNTQ4Y2EzMmZjZjc3N2JlNzE3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTQzNCw5ICs0MzQsNiBAQCB2b2lkIE9w
dGlvbnM6OnJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQogICAgIE9wdGlvbnM6OnVzZUNvbmN1
cnJlbnRHQygpID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIGlmICghT3B0aW9uczo6dXNlRGF0YUlD
KCkpCi0gICAgICAgIE9wdGlvbnM6OnVzZURhdGFJQ0luT3B0aW1pemluZ0pJVCgpID0gZmFsc2U7
Ci0KICAgICAvLyBBdCBpbml0aWFsaXphdGlvbiB0aW1lLCB3ZSBtYXkgZGVjaWRlIHRoYXQgdXNl
SklUIHNob3VsZCBiZSBmYWxzZSBmb3IgYW55CiAgICAgLy8gbnVtYmVyIG9mIHJlYXNvbnMgKGlu
Y2x1ZGluZyBmYWlsaW5nIHRvIGFsbG9jYXRlIEpJVCBtZW1vcnkpLCBhbmQgdGhlcmVmb3JlLAog
ICAgIC8vIHdpbGwgLyBzaG91bGQgbm90IGJlIGFibGUgdG8gZW5hYmxlIGFueSBKSVQgcmVsYXRl
ZCBzZXJ2aWNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5o
CmluZGV4IDgyNWEyYjY0ODdlYmRkZDI1NTI1ZTI2YzQwODQzYTA1MmE3MDYwMmIuLjY5NGZlMzA5
NGU3ZDUxNWRlYzQ5MmZhZGEzNzE5MTAxNmY3MzQxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtNTMxLDcgKzUzMSw2IEBAIGJvb2wgY2FuVXNl
V2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7CiAgICAgdihCb29sLCBkdW1wQmFzZWxpbmVKSVRTaXpl
U3RhdGlzdGljcywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgZHVtcERG
R0pJVFNpemVTdGF0aXN0aWNzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29s
LCB2ZXJib3NlRXhlY3V0YWJsZVBvb2xBbGxvY2F0aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRy
KSBcCi0gICAgdihCb29sLCB1c2VEYXRhSUMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KEJvb2wsIHVzZURhdGFJQ0luT3B0aW1pemluZ0pJVCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAogICAgIHYoQm9vbCwgdXNlRGF0YUlDU2hhcmluZywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAogICAgIHYoQm9vbCwgdXNlQmFzZWxpbmVKSVRDb2RlU2hhcmluZywgaXM2NEJpdCgpLCBO
b3JtYWwsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA0MGQ3ZDJjYzc0ZTljOTZkNTU3NjlmYzIwMDQ0NjU5YWQzNTBkNzVhLi5h
NDE5YmI0NTkzNGNiM2Y1YTQxNzgxNWJmZWY3Y2UxMGU2MGVmYmRkIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjIt
MDMtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlND
XSBUZXN0IERGRyAvIEZUTCBEYXRhSUMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMi0w
My0yMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNh
YmxlIHRoZSA8bW9kZWw+IGVsZW1lbnQgaW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZS4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1
bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IGRkNzEyOGVlNDE0NDVhZmNjZDc5NDYwNmQ1OTE2M2Yz
ZDk1MzFkNDUuLjkxNjY1OGIxYTI1YTY5MTAwZjk1ZTgyZGE5NjVmYmVkZDBiYWNiNTggMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtMTA5MSw3ICsxMDkxLDcgQEAgQkFTRV9NT0RF
UyA9IFsKICAgICAgICAgIkZUTE5vQ0pJVCIsCiAgICAgICAgICJtaXNjLWZ0bC1uby1jaml0IiwK
ICAgICAgICAgWwotICAgICAgICAgICAgIi0tdXNlRGF0YUlDPXRydWUiLAorICAgICAgICAgICAg
Ii0tdXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUPXRydWUiLAogICAgICAgICBdICsKICAgICAgICAg
RlRMX09QVElPTlMgKwogICAgICAgICBOT19DSklUX09QVElPTlMKQEAgLTExMTcsNyArMTExNyw3
IEBAIEJBU0VfTU9ERVMgPSBbCiAgICAgICAgICAgICAiLS12YWxpZGF0ZUJDRT10cnVlIiwKICAg
ICAgICAgICAgICItLXVzZVNhbXBsaW5nUHJvZmlsZXI9dHJ1ZSIsCiAgICAgICAgICAgICAiLS1h
aXJGb3JjZUlSQ0FsbG9jYXRvcj10cnVlIiwKLSAgICAgICAgICAgICItLXVzZURhdGFJQz10cnVl
IiwKKyAgICAgICAgICAgICItLXVzZURhdGFJQ0luT3B0aW1pemluZ0pJVD10cnVlIiwKICAgICAg
ICAgXSArCiAgICAgICAgIEZUTF9PUFRJT05TICsKICAgICAgICAgTk9fQ0pJVF9PUFRJT05TCkBA
IC0xMTc4LDcgKzExNzgsNyBAQCBCQVNFX01PREVTID0gWwogICAgICAgICAgICAgIi0tYWlyRm9y
Y2VCcmlnZ3NBbGxvY2F0b3I9dHJ1ZSIsCiAgICAgICAgICAgICAiLS11c2VSYW5kb21pemluZ0V4
ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLAogICAgICAgICAgICAgIi0tZm9yY2VQb2x5
UHJvdG89dHJ1ZSIsCi0gICAgICAgICAgICAiLS11c2VEYXRhSUM9dHJ1ZSIsCisgICAgICAgICAg
ICAiLS11c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1ZSIsCiAgICAgICAgIF0gKwogICAgICAg
ICBGVExfT1BUSU9OUyArCiAgICAgICAgIEVBR0VSX09QVElPTlMgKwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwZDI2YjczNzQ1YmI3NDAx
NjhjMDVkMDdiYzc4YzY5MWY1MzE3MDEwLi44NjdjZTFiN2U5MGYzNDA4MWYwODhjZjNlZWJmMzQ0
NDA2ZjRhZjhkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTIyICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gVGVzdCBERkcgLyBGVEwgRGF0YUlDCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyMjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1pY3JvYmVu
Y2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qczoKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3Mv
cmljaGFyZHMtdHJ5LWNhdGNoLmpzOgorCiAyMDIyLTAzLTIxICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVmZXJlbmNlRXJyb3Igd2hlbiB1c2lu
ZyBleHRyYSBwYXJlbnMgaW4gY2xhc3MgZmllbGRzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L2RlbHRhYmx1ZS12YXJhcmdzLmpzCmluZGV4IGE4ZGU0OWJiYjRjMGY1MGMzOWJjYWIzZDk4ODAz
MDU3YjkxNDdhNjguLjEwYmY3YWRiM2JhOTQ2YWQ0MDYzYjlhYTIwNzMyYTI3ZGFkOTc3YjkgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJhcmdzLmpzCisr
KyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJhcmdzLmpzCkBAIC0xLDUg
KzEsNSBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBh
ZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQotLy9AIHJlcXVpcmVPcHRpb25zKCItLXVz
ZURhdGFJQz10cnVlIiwgIi0tdXNlRGF0YUlDU2hhcmluZz10cnVlIikKKy8vQCByZXF1aXJlT3B0
aW9ucygiLS11c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1ZSIsICItLXVzZURhdGFJQ1NoYXJp
bmc9dHJ1ZSIpCiAKIC8vIENvcHlyaWdodCAyMDA4IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAvLyBDb3B5cmlnaHQgMTk5NiBKb2huIE1hbG9uZXkgYW5kIE1h
cmlvIFdvbGN6a28uCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yaWNoYXJk
cy10cnktY2F0Y2guanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yaWNoYXJkcy10cnktY2F0
Y2guanMKaW5kZXggY2IyZTI5ZWE4YjAzZDM1YzRkOTU2MmZmNGEyMGNkMmMwZTE3OTQyNi4uNjEw
ZDYyNjg0OWIxN2Q3NGMzMzY0YzExNmJkMmU0NzMxY2MyZTE1NiAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvcmljaGFyZHMtdHJ5LWNhdGNoLmpzCisrKyBiL0pTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRyeS1jYXRjaC5qcwpAQCAtMSw1ICsxLDUgQEAKIC8vQCBz
a2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1q
c2Mtc3RyZXNzLXRlc3QucHkKLS8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VEYXRhSUM9dHJ1ZSIs
ICItLXVzZURhdGFJQ1NoYXJpbmc9dHJ1ZSIpCisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRGF0
YUlDSW5PcHRpbWl6aW5nSklUPXRydWUiLCAiLS11c2VEYXRhSUNTaGFyaW5nPXRydWUiKQogCiAv
LyBDb3B5cmlnaHQgMjAwNi0yMDA4IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455406</attachid>
            <date>2022-03-22 12:07:49 -0700</date>
            <delta_ts>2022-03-22 12:10:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231224-20220322120749.patch</filename>
            <type>text/plain</type>
            <size>77373</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZTIwYjdiMTJiMzg2NWRjZDg1ZjQyNjA4N2ZlNzE4NGZlNzUxMDc4Li4wYTUzOTQ1ZGU1MmIyYmE3
YjRjYWRmYzRhMjI0N2NmZmQxNDFmMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAyMi0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFRlc3QgREZHIC8gRlRMIERhdGFJQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXZpdmVzIERhdGFJ
QyBpbiBERkcgYW5kIEZUTCwgYW5kIHJlLWVuYWJsZSB0ZXN0aW5nIHRvIG1ha2UgaXQgdXNhYmxl
CisgICAgICAgIGZvciB1bmxpbmtlZCBERkcuIEN1cnJlbnRseSwgb25seSB4NjQgLyBBUk02NCBh
cmUgc3VwcG9ydGVkLgorCisgICAgICAgICogYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjppc0NhY2hlYWJsZUFycmF5TGVuZ3RoKToKKyAgICAg
ICAgKEpTQzo6SW5saW5lQWNjZXNzOjppc0NhY2hlYWJsZVN0cmluZ0xlbmd0aCk6CisgICAgICAg
IChKU0M6OklubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNzKToKKyAgICAgICAg
KEpTQzo6SW5saW5lQWNjZXNzOjpyZXNldFN0dWJBc0p1bXBJbkFjY2Vzcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlJZEZsdXNoKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUluQnlJZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRC
eUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdp
dGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAgICAgICAgKiBqaXQvSklU
Q29kZS5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjp1c2VEYXRhSUMpOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdENvbW1vbik6CisgICAgICAgIChKU0M6OmdlbmVyYXRlR2V0QnlJ
ZElubGluZUFjY2Vzcyk6CisgICAgICAgIChKU0M6OkpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpnZW5lcmF0ZVB1dEJ5SWRJbmxpbmVB
Y2Nlc3MpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2Vs
aW5lRGF0YUlDRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVREZWxCeUlkR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5CeVZhbEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OmdlbmVyYXRlSW5CeUlkSW5saW5lQWNjZXNzKToK
KyAgICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAg
ICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFz
dFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yOjpnZW5lcmF0ZUZh
c3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aCk6CisgICAgICAgIChKU0M6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6
CisgICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpyZXBvcnRTbG93UGF0aENh
bGwpOgorICAgICAgICAoSlNDOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6c2xvd1BhdGhCZWdp
biBjb25zdCk6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcCBj
b25zdCk6CisgICAgICAgIChKU0M6OkpJVEluQnlWYWxHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcCBj
b25zdCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0
aW9uczo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zTGlzdC5oOgorCiAyMDIyLTAzLTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0pTQ10gUmVmZXJlbmNlRXJyb3Igd2hlbiB1c2luZyBleHRyYSBwYXJl
bnMgaW4gY2xhc3MgZmllbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvSW5saW5lQWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9J
bmxpbmVBY2Nlc3MuY3BwCmluZGV4IGZiNWVlYTJkY2JhZjJjNDBhMDdmYWNiN2Q1NzkzMzg4YzVj
Mjc2YWEuLjliYTBjOTIwZWIzMmUzYmY4MzQ0MTc1NzY4ZTU5ZjE4Mzk3MTdjOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCkBAIC0yOTks
NyArMjk5LDcgQEAgYm9vbCBJbmxpbmVBY2Nlc3M6OmlzQ2FjaGVhYmxlQXJyYXlMZW5ndGgoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmYKICAgICBpZiAoIXN0dWJJbmZvLmhh
c0NvbnN0YW50SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNv
ZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKQorICAgIGlmIChjb2Rl
QmxvY2stPnVzZURhdGFJQygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWhh
c0ZyZWVSZWdpc3RlcihzdHViSW5mbykpCkBAIC0zNDAsNyArMzQwLDcgQEAgYm9vbCBJbmxpbmVB
Y2Nlc3M6OmlzQ2FjaGVhYmxlU3RyaW5nTGVuZ3RoKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1
Y3R1cmVTdHViSW4KICAgICBpZiAoIXN0dWJJbmZvLmhhc0NvbnN0YW50SWRlbnRpZmllcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJ
VFR5cGU6OkJhc2VsaW5lSklUKQorICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gaGFzRnJlZVJlZ2lzdGVyKHN0dWJJbmZv
KTsKQEAgLTQyOCwyNCArNDI4LDYgQEAgdm9pZCBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1
bXBJbkFjY2Vzc05vdFVzaW5nSW5saW5lQWNjZXNzKENvZGVCbG9jayogY29kZUIKIHZvaWQgSW5s
aW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1YlJv
dXRpbmVQdHJUYWc+IHRhcmdldCkKIHsKICAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSkg
ewotICAgICAgICAvLyBJZiBpdCBpcyBub3QgR2V0QnlJZC1saWtlLXRoaW5nLCB3ZSBkbyBub3Qg
ZW1pdCBub3Agc2xlZCAoZS5nLiBHZXRCeVZhbCkuCi0gICAgICAgIC8vIFRoZSBjb2RlIGlzIGFs
cmVhZHkgYW4gaW5kaXJlY3QganVtcCwgYW5kIG9ubHkgdGhpbmcgd2Ugc2hvdWxkIGRvIGlzIHJl
cGxhY2luZyBtX2NvZGVQdHIuCi0gICAgICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSAhPSBK
SVRUeXBlOjpCYXNlbGluZUpJVCAmJiBzdHViSW5mby5oYXNDb25zdGFudElkZW50aWZpZXIpIHsK
LSAgICAgICAgICAgIC8vIElmIG1fY29kZVB0ciBpcyBwb2ludGluZyB0byBzdHViSW5mby5zbG93
UGF0aFN0YXJ0TG9jYXRpb24sIHRoaXMgbWVhbnMgdGhhdCBJbmxpbmVBY2Nlc3MgY29kZSBpcyBu
b3QgYSBzdHViIG9uZS4KLSAgICAgICAgICAgIC8vIFdlIHJld3JpdGUgdGhpcyB3aXRoIHRoZSBz
dHViLWJhc2VkIGRpc3BhdGNoaW5nIGNvZGUgb25jZSwgYW5kIGNvbnRpbnVlIHVzaW5nIGl0IHVu
dGlsIHdlIHJlc2V0IHRoZSBjb2RlLgotICAgICAgICAgICAgaWYgKHN0dWJJbmZvLm1fY29kZVB0
ci5leGVjdXRhYmxlQWRkcmVzcygpID09IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbi5l
eGVjdXRhYmxlQWRkcmVzcygpKSB7Ci0gICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjplbWl0
SklUQ29kZU92ZXIoc3R1YkluZm8uc3RhcnQucmV0YWdnZWQ8SlNJbnRlcm5hbFB0clRhZz4oKSwg
c2NvcGVkTGFtYmRhPHZvaWQoQ0NhbGxIZWxwZXJzJik+KFsmXShDQ2FsbEhlbHBlcnMmIGppdCkg
ewotICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoJnN0dWJJbmZvKSwgc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgICAgICAgICAg
ICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mby5tX3N0dWJJbmZv
R1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHViUm91dGlu
ZVB0clRhZyk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8ganVtcCA9IGppdC5qdW1wKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGF1dG8gZG9uZUxvY2F0aW9uID0gc3R1YkluZm8uZG9uZUxvY2F0
aW9uOwotICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dKExpbmtCdWZmZXIm
IGxpbmtCdWZmZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhq
dW1wLCBkb25lTG9jYXRpb24pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICB9KSwgIklubGluZUFjY2VzczogbGlua2luZyBzdHViIGNhbGwiKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9IHRhcmdldDsKICAg
ICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8g
Q2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKQEAgLTQ2
Miw3ICs0NDQsNyBAQCB2b2lkIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNz
KENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSQogCiB2b2lkIElubGluZUFjY2Vz
czo6cmVzZXRTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVy
ZVN0dWJJbmZvJiBzdHViSW5mbykKIHsKLSAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSAm
JiBjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCkgeworICAgIGlm
IChjb2RlQmxvY2stPnVzZURhdGFJQygpKSB7CiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9
IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKICAgICAgICAgc3R1YkluZm8ubV9pbmxp
bmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUg
YWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMzYwZTE4MTgzZWNiYTFlMGNjMDVkNzZj
NzJjZGYxMjE5ZWNjYjE2ZC4uNDg2OWFiMjY0ODNhZGJlZDBmNDdjMmE4N2UzOGNmN2Y0ZWRmM2Vm
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKQEAgLTEwNDksMjAgKzEwNDksMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5SWQoTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSBy
ZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9
IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAg
ICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgc2NyYXRjaC5l
bXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7
CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAgICAgICAgIH0KICAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoYmFz
ZS5ncHIoKSk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygp
OwogCiAgICAgICAgIGJhc2UudXNlKCk7CiAKLSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+
Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBOZWVkVG9TcGlsbCwg
YWNjZXNzVHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGlj
LCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNh
Y2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3BpbGwsIGFj
Y2Vzc1R5cGUpOwogCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0
YUZvcm1hdEpTLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogICAgICAgICBicmVhazsK
QEAgLTEwNzAsMTMgKzEwNzQsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
SWQoTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgY2FzZSBVbnR5cGVk
VXNlOiB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIEpTVmFs
dWVPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVn
c1RlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
SW52YWxpZEdQUlJlZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpE
RkdKSVQpKSB7CiAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAg
ICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHVi
SW5mby0+Z3ByKCk7CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAg
ICAgICAgIH0KICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdz
KCk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwpAQCAt
MTA4NSw3ICsxMDkzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5SWQoTm9k
ZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoYmFzZVJlZ3MpOwogCi0gICAgICAg
IGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVn
cywgc3R1YkluZm9HUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgTmVl
ZFRvU3BpbGwsIGFjY2Vzc1R5cGUpOworICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5vdENlbGwsIE5lZWRUb1NwaWxsLCBhY2Nl
c3NUeXBlKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFG
b3JtYXRKUywgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBA
IC0xMTAyLDEzICsxMTEwLDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlk
Rmx1c2goTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxs
UmVzdWx0IHJlc3VsdCh0aGlzKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJSZWc7CiAg
ICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewogICAgICAg
ICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2guZW1wbGFj
ZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAg
ICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAgICAgICAg
IEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2UuZ3By
KCkpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAg
LTExMTcsNyArMTEyOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlkRmx1
c2goTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CiAKLSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50aWMs
IGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBEb250U3BpbGwsIGFjY2Vzc1R5cGUpOworICAg
ICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3Vs
dFJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVy
KCksIEpJVENvbXBpbGVyOjpKdW1wKCksIERvbnRTcGlsbCwgYWNjZXNzVHlwZSk7CiAKICAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlLCBEYXRhRm9ybWF0SlMsIFVzZUNoaWxk
cmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTEyNSwxMyArMTEzNywx
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqIG5vZGUs
IEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSkKIAogICAgIGNhc2UgVW50eXBlZFVzZTogewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOwogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJl
c3VsdCByZXN1bHQodGhpcyk7CiAKICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxp
ZEdQUlJlZzsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAg
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICBzY3JhdGNoLmVtcGxhY2Uo
dGhpcyk7CiAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKKyAgICAg
ICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKICAgICAgICAgfQogICAgICAgICBK
U1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CkBAIC0xMTQyLDcgKzExNTgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqIG5vZGUsIEFjY2Vz
c1R5cGUgYWNjZXNzVHlwZSkKIAogICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RDZWxsID0g
bV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5vdENlbGwsIERvbnRTcGlsbCwgYWNjZXNz
VHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNl
UmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgRG9udFNwaWxsLCBhY2Nlc3NUeXBlKTsKIAogICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUywgVXNlQ2hpbGRy
ZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBAIC0xMzIzLDEzICsxMzM5LDE3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWxldGVCeVZhbChOb2RlKiBub2RlKQog
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluQnlJZChOb2RlKiBub2RlKQogewogICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICBzdGQ6Om9wdGlvbmFsPEdQ
UlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIGJhc2UsIFBheWxvYWRXb3JkKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IElu
dmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewogICAgICAgICBzdHVi
SW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICBzY3JhdGNoLmVtcGxhY2UodGhpcyk7CiAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICBzY3JhdGNoR1BSID0g
c2NyYXRjaC0+Z3ByKCk7CiAgICAgfQogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsK
ICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAgLTEzNDIsNyAr
MTM2Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbkJ5SWQoTm9kZSogbm9kZSkK
ICAgICBKSVRJbkJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwg
Jm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQsIGNv
ZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBub2RlLT5jYWNoZWFibGVJZGVudGlm
aWVyKCksCiAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShiYXNlR1BSKSwgcmVzdWx0
UmVncywgc3R1YkluZm9HUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAKICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKQEAgLTQxNTQsMTggKzQxNzQsMjIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZChOb2RlKiBub2RlKQogICAgIHN3aXRjaCAobV9ncmFw
aC5jaGlsZChub2RlLCAwKS51c2VLaW5kKCkpIHsKICAgICBjYXNlIENlbGxVc2U6IHsKICAgICAg
ICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6Om9w
dGlvbmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgSlNWYWx1ZVJl
Z3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKIAogICAgICAgICBHUFJSZWcg
c3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9
IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6
REZHSklUKSkgewogICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAg
ICAgIHNjcmF0Y2guZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1
YkluZm8tPmdwcigpOworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwog
ICAgICAgICB9CiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gSlNWYWx1ZVJlZ3M6OnBh
eWxvYWRPbmx5KGJhc2UuZ3ByKCkpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
cmVzdWx0LnJlZ3MoKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFibGVJ
ZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wKCksIE5lZWRUb1NwaWxsLCBBY2Nlc3NUeXBl
OjpHZXRQcml2YXRlTmFtZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNl
bWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3Bp
bGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiAgICAgICAgIGJyZWFrOwpAQCAtNDE3
MywyMCArNDE5NywyNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJpdmF0ZU5h
bWVCeUlkKE5vZGUqIG5vZGUpCiAKICAgICBjYXNlIFVudHlwZWRVc2U6IHsKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlz
LCBtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIg
PSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJS
ZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewog
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2gu
ZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAg
ICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwogICAgICAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKIAogICAgICAgICBKSVRD
b21waWxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKTsK
IAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3Ms
IHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5v
dENlbGwsIE5lZWRUb1NwaWxsLCBBY2Nlc3NUeXBlOjpHZXRQcml2YXRlTmFtZSk7CisgICAgICAg
IGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVn
cywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwg
bm90Q2VsbCwgTmVlZFRvU3BpbGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKIAogICAg
ICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtNDM0MiwxNCArNDM3MCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHV0UHJpdmF0ZU5hbWUoTm9kZSogbm9kZSkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQdXRQcml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+
IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsK
ICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQ
UiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAg
ICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1wbGFjZSh0aGlz
KTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAgICAgIHNjcmF0
Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJl
Z3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOwogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIo
KTsKQEAgLTQzNTgsNyArNDM5MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQ
cml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKICAgICAvLyBXZSBlbWl0IHByb3BlcnR5IGNoZWNr
IGR1cmluZyBERkcgZ2VuZXJhdGlvbiwgc28gd2UgZG9uJ3QgbmVlZAogICAgIC8vIHRvIGNoZWNr
IGl0IGhlcmUuCiAgICAgYXV0byBwdXRLaW5kID0gbm9kZS0+cHJpdmF0ZUZpZWxkUHV0S2luZCgp
LmlzRGVmaW5lKCkgPyBQdXRLaW5kOjpEaXJlY3RQcml2YXRlRmllbGREZWZpbmUgOiBQdXRLaW5k
OjpEaXJlY3RQcml2YXRlRmllbGRTZXQ7Ci0gICAgY2FjaGVkUHV0QnlJZChub2RlLT5vcmlnaW4u
c2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgcHV0S2luZCwgRUNNQU1vZGU6OnN0cmljdCgpKTsK
KyAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVS
ZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwgcHV0S2luZCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKIAogICAgIG5vUmVz
dWx0KG5vZGUpOwogfQpAQCAtMTQxMjgsMjEgKzE0MTYwLDI1IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVFbnVtZXJhdG9ySGFzT3duUHJvcGVydHkoTm9kZSogbm9kZSkKIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeUlkRmx1c2goTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6
Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJU
ZW1wb3Jhcnk+IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52
YWxpZEdQUlJlZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkp
IHsKICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1w
bGFjZSh0aGlzKTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAg
ICAgIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBHUFJSZWcgYmFz
ZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNW
YWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAgICAg
Zmx1c2hSZWdpc3RlcnMoKTsKIAotICAgIGNhY2hlZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5j
YWNoZWFibGVJZGVudGlmaWVyKCksIFB1dEtpbmQ6Ok5vdERpcmVjdCwgbm9kZS0+ZWNtYU1vZGUo
KSwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKSwgRG9udFNwaWxsKTsKKyAgICBjYWNoZWRQdXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwg
c2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0
S2luZDo6Tm90RGlyZWN0LCBub2RlLT5lY21hTW9kZSgpLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgp
LCBEb250U3BpbGwpOwogCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CkBAIC0xNDE1MCwyMCArMTQx
ODYsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWRGbHVzaChOb2RlKiBu
b2RlKQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWQoTm9kZSogbm9kZSkKIHsK
ICAgICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRp
b25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMs
IG5vZGUtPmNoaWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAg
IEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gy
R1BSID0gSW52YWxpZEdQUlJlZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6
OkRGR0pJVCkpIHsKICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2Ny
YXRjaDIuZW1wbGFjZSh0aGlzKTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3By
KCk7CisgICAgICAgIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBH
UFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0g
dmFsdWUuanNWYWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3By
KCk7CiAKLSAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwg
dmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOworICAgIGNhY2hl
ZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJ
bmZvR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmll
cigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOwogCiAgICAgbm9SZXN1
bHQobm9kZSk7CiB9CkBAIC0xNDE3MSwyMCArMTQyMTEsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEJ5SWQoTm9kZSogbm9kZSkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRCeUlkRGlyZWN0KE5vZGUqIG5vZGUpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1w
b3Jhcnk+IHN0dWJJbmZvOworICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNo
MjsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgR1BS
VGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAKICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOworICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9IEludmFsaWRHUFJSZWc7CiAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAgICAgICAgIHN0dWJJ
bmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgIHNjcmF0Y2gyLmVtcGxhY2UodGhpcyk7CiAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICBzY3JhdGNoMkdQUiA9
IHNjcmF0Y2gyLT5ncHIoKTsKICAgICB9CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OwogICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CiAgICAg
R1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwogCi0gICAgY2FjaGVkUHV0QnlJZChu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNj
cmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6RGlyZWN0LCBu
b2RlLT5lY21hTW9kZSgpKTsKKyAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJH
UFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6RGlyZWN0LCBub2RlLT5l
Y21hTW9kZSgpKTsKIAogICAgIG5vUmVzdWx0KG5vZGUpOwogfQpAQCAtMTU3NzgsNyArMTU4MjIs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHJvZmlsZVR5cGUoTm9kZSogbm9kZSkK
ICAgICBub1Jlc3VsdChub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0
QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1ZhbHVlUmVncyB2
YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHV0S2luZCBwdXRLaW5kLCBFQ01BTW9kZSBlY21hTW9k
ZSwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBz
cGlsbE1vZGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4g
Y29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEpTVmFsdWVSZWdzIHZhbHVlUmVncywgR1BSUmVn
IHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSLCBDYWNo
ZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFB1dEtpbmQgcHV0S2luZCwgRUNNQU1vZGUgZWNt
YU1vZGUsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01v
ZGUgc3BpbGxNb2RlKQogewogICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51
c2VkUmVnaXN0ZXJzKCk7CiAgICAgaWYgKHNwaWxsTW9kZSA9PSBEb250U3BpbGwpIHsKQEAgLTE1
Nzg3LDYgKzE1ODMxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQoQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgSlNWYWx1CiAgICAgICAgIHVzZWRS
ZWdpc3RlcnMuc2V0KHZhbHVlUmVncywgZmFsc2UpOwogICAgICAgICBpZiAoc3R1YkluZm9HUFIg
IT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0dWJJbmZv
R1BSLCBmYWxzZSk7CisgICAgICAgIGlmIChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcpCisg
ICAgICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNoR1BSLCBmYWxzZSk7CisgICAgICAg
IGlmIChzY3JhdGNoMkdQUiAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgdXNlZFJlZ2lz
dGVycy5zZXQoc2NyYXRjaDJHUFIsIGZhbHNlKTsKICAgICB9CiAgICAgQ2FsbFNpdGVJbmRleCBj
YWxsU2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGlu
Z09TUkV4aXRJZk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKICAgICBKSVRQ
dXRCeUlkR2VuZXJhdG9yIGdlbigKQEAgLTE1Nzk0LDcgKzE1ODQyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
R1BSLCBKU1ZhbHUKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VHUFIpLCB2
YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLAogICAgICAgICBzY3JhdGNoR1BSLCBlY21hTW9kZSwgcHV0
S2luZCk7CiAKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CisgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgobV9qaXQsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKIAogICAgIEpJVENv
bXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAgICAgaWYgKHNsb3dQYXRoVGFyZ2V0LmlzU2V0
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggNjk1MzQ1NTc5OWU1OGQ2MmU5YzlmZTNlNDY2NjNhOWVkYmRiMmE0NC4uM2UxNDI5ODJmZDc4
NzcyYzUzNDJmMWQ2MTU0NDBlODU2Njg1ZDZjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzIzLDE2ICs3MjMsMTYgQEAgY2xhc3MgU3Bl
Y3VsYXRpdmVKSVQgewogCiAgICAgdm9pZCBjb21waWxlQ2hlY2tEZXRhY2hlZChOb2RlKik7CiAK
LSAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIs
IEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUsIEFj
Y2Vzc1R5cGUpOwotICAgIHZvaWQgY2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZUdQUiwgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBz
Y3JhdGNoR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQdXRLaW5kLCBFQ01BTW9kZSwgSklUQ29t
cGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpLCBTcGlsbFJl
Z2lzdGVyc01vZGUgPSBOZWVkVG9TcGlsbCk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVP
cmlnaW4sIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJ
bmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7
CisgICAgdm9pZCBjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1Zh
bHVlUmVncyB2YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIs
IEdQUlJlZyBzY3JhdGNoMkdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHV0S2luZCwgRUNNQU1v
ZGUsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAo
KSwgU3BpbGxSZWdpc3RlcnNNb2RlID0gTmVlZFRvU3BpbGwpOwogICAgIHZvaWQgY2FjaGVkR2V0
QnlWYWwoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHks
IEpTVmFsdWVSZWdzIHJlc3VsdCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpOwog
CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwg
R1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2Fj
aGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxs
UmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7Ci0gICAgdm9pZCBjYWNoZWRHZXRCeUlkV2l0aFRo
aXMoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJSZWcgcmVz
dWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJ
VENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcExp
c3QoKSk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BS
LCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoR1BS
LCBDYWNoZWFibGVJZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwg
U3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nlc3NUeXBlKTsKKyAgICB2b2lkIGNhY2hlZEdldEJ5SWRX
aXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHRoaXNHUFIsIEdQUlJl
ZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hl
YWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJn
ZXQgPSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQot
ICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9u
ZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVz
dWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBK
SVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nl
c3NUeXBlKTsKLSAgICB2b2lkIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJS
ZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdGhpc1Rh
Z0dQUk9yTm9uZSwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVu
dGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0ID0gSklU
Q29tcGlsZXI6Okp1bXBMaXN0KCkpOworICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2lu
LCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcg
cmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BS
LCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1
bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7CisgICAg
dm9pZCBjYWNoZWRHZXRCeUlkV2l0aFRoaXMoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJP
ck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHRoaXNUYWdHUFJPck5vbmUsIEdQ
UlJlZyB0aGlzUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBh
eWxvYWRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJs
ZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJnZXQg
PSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAjZW5kaWYKIAogICAgIHZvaWQgY29tcGlsZURl
bGV0ZUJ5SWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggN2ZiNTY1MjMzMmY5YzYwZjYyMjI4NmZlYWE5
ZTU2YmE2MzI3ZjZjYS4uZjkzN2YxZWRkYTgyYzU5Yjc3MTM5ZjJiNTJjYjNiODk4N2U1YzQ1OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC0xNjgsMTQgKzE2OCwxNCBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpmaWxs
SlNWYWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcmIHBheWxvYWRHUFIsCiAg
ICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4g
b3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHVi
SW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVt
cCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJzTW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5
cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2lu
LCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQ
UiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSklU
Q29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgLCBTcGlsbFJlZ2lzdGVyc01vZGUgbW9kZSwg
QWNjZXNzVHlwZSB0eXBlKQogewotICAgIGNhY2hlZEdldEJ5SWQob3JpZ2luLCBiYXNlLnRhZ0dQ
UigpLCBiYXNlLnBheWxvYWRHUFIoKSwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9hZEdQ
UigpLCBzdHViSW5mb0dQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUp
OworICAgIGNhY2hlZEdldEJ5SWQob3JpZ2luLCBiYXNlLnRhZ0dQUigpLCBiYXNlLnBheWxvYWRH
UFIoKSwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9hZEdQUigpLCBzdHViSW5mb0dQUiwg
c2NyYXRjaEdQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUpOwogfQog
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogICAgIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwg
R1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzdHVi
SW5mb0dQUiwKLSAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlLCBBY2Nl
c3NUeXBlIHR5cGUpCisgICAgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0
ZXJzTW9kZSBzcGlsbE1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3R1YkluZm9HUFIpOwogICAgIC8vIFRoaXMgaXMgYSBoYWNreSBmaXggZm9yIHdoZW4gdGhlIHJl
Z2lzdGVyIGFsbG9jYXRvciBkZWNpZGVzIHRvIGFsaWFzIHRoZSBiYXNlIHBheWxvYWQgd2l0aCB0
aGUgcmVzdWx0IHRhZy4gVGhpcyBvbmx5IGhhcHBlbnMKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2so
KSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQs
IGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVyLAogICAgICAg
ICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVS
ZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiksIEludmFsaWRHUFJSZWcsIHR5cGUp
OwogICAgIAotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAgICBnZW4uZ2VuZXJh
dGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IHNsb3dDYXNlczsKICAgICBpZiAoc2xvd1BhdGhUYXJnZXQuaXNTZXQoKSkKQEAgLTIy
OSw3ICsyMjksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogfQogCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkV2l0aFRoaXMoCi0gICAgQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2Fk
R1BSLCBHUFJSZWcgdGhpc1RhZ0dQUiwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVz
dWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLAor
ICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJl
ZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHRoaXNUYWdHUFIsIEdQUlJlZyB0aGlzUGF5bG9hZEdQ
UiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBz
dHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0KQog
ewogICAgIFVOVVNFRF9QQVJBTShzdHViSW5mb0dQUik7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKAogICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBl
OjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVy
LAogICAgICAgICBKU1ZhbHVlUmVncyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpLCBK
U1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVSZWdz
KHRoaXNUYWdHUFIsIHRoaXNQYXlsb2FkR1BSKSwgSW52YWxpZEdQUlJlZyk7CiAgICAgCi0gICAg
Z2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0LCBzY3JhdGNoR1BSKTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nh
c2VzOwogICAgIGlmICghc2xvd1BhdGhUYXJnZXQuZW1wdHkoKSkKQEAgLTMyMzIsNyArMzIzMiw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IEdQUlJlZyByZXN1bHRUYWdHUFIgPSByZXN1bHRUYWcuZ3ByKCk7CiAgICAgICAgICAgICBHUFJS
ZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQuZ3ByKCk7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMs
IEludmFsaWRHUFJSZWcsIGJhc2VHUFIsIEludmFsaWRHUFJSZWcsIHRoaXNHUFIsIHJlc3VsdFRh
Z0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRl
bnRpZmllcigpKTsKKyAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmln
aW4uc2VtYW50aWMsIEludmFsaWRHUFJSZWcsIGJhc2VHUFIsIEludmFsaWRHUFJSZWcsIHRoaXNH
UFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJlZywgSW52YWxp
ZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIG5v
ZGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMzI1Miw3ICszMjUyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBw
ZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChiYXNlLmpzVmFsdWVSZWdzKCkpKTsKICAgICAgICAg
ICAgIG5vdENlbGxMaXN0LmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdENlbGwodGhpc1ZhbHVlLmpz
VmFsdWVSZWdzKCkpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdp
dGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIs
IHRoaXNUYWdHUFIsIHRoaXNQYXlsb2FkR1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRH
UFIsIEludmFsaWRHUFJSZWcsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbExp
c3QpOworICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIsIHRoaXNUYWdHUFIsIHRoaXNQYXlsb2Fk
R1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIEludmFsaWRHUFJSZWcsIEludmFs
aWRHUFJSZWcsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbExpc3QpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFRhZ0dQUiwgcmVzdWx0
UGF5bG9hZEdQUiwgbm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGZmOWI4NDJlYzZmOWI3OGM4MWZk
Y2U3MTdkZDRjM2YxY2JjMTBlNzcuLjdiNzk5MDg5ZDQyNmZiZmIxODMyYjY1ZjVlZTMwMTRkMmFl
ZGFlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcApAQCAtMTQ4LDEyICsxNDgsMTIgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpm
aWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiAgICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpj
YWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJz
TW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRH
ZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBy
ZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgLCBT
cGlsbFJlZ2lzdGVyc01vZGUgbW9kZSwgQWNjZXNzVHlwZSB0eXBlKQogewotICAgIGNhY2hlZEdl
dEJ5SWQob3JpZ2luLCBiYXNlLmdwcigpLCByZXN1bHQuZ3ByKCksIHN0dWJJbmZvR1BSLCBpZGVu
dGlmaWVyLCBzbG93UGF0aFRhcmdldCwgbW9kZSwgdHlwZSk7CisgICAgY2FjaGVkR2V0QnlJZChv
cmlnaW4sIGJhc2UuZ3ByKCksIHJlc3VsdC5ncHIoKSwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIs
IGlkZW50aWZpZXIsIHNsb3dQYXRoVGFyZ2V0LCBtb2RlLCB0eXBlKTsKIH0KIAotdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBi
YXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNw
aWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRj
aEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBz
bG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSwgQWNjZXNzVHlwZSB0
eXBlKQogewogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0
ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwg
bV9zdHJlYW0tPnNpemUoKSk7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMt
PnVzZWRSZWdpc3RlcnMoKTsKQEAgLTE2MywxNSArMTYzLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwg
R1BSUmVnCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHJlc3VsdEdQUiwgZmFsc2UpOwogICAg
ICAgICBpZiAoc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHVzZWRS
ZWdpc3RlcnMuc2V0KHN0dWJJbmZvR1BSLCBmYWxzZSk7CisgICAgICAgIGlmIChzY3JhdGNoR1BS
ICE9IEludmFsaWRHUFJSZWcpCisgICAgICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNo
R1BSLCBmYWxzZSk7CiAgICAgfQogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAg
ICBtX2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9z
LCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBp
ZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocmVz
dWx0R1BSKSwgc3R1YkluZm9HUFIsIHR5cGUpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1
bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKICAgICBpZiAoSklUQ29kZTo6
dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKQEAgLTE5MCw3ICsxOTMsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVn
IGJhc2VHUFIsIEdQUlJlZwogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1Bh
dGgpKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKENv
ZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJS
ZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgSklUQ29tcGlsZXI6Okp1bXBMaXN0JiBzbG93UGF0aFRhcmdldCkKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgdGhpc0dQUiwgR1BSUmVnIHJlc3VsdEdQUiwg
R1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0
KQogewogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFu
ZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9z
dHJlYW0tPnNpemUoKSk7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVz
ZWRSZWdpc3RlcnMoKTsKQEAgLTIwMCwxNSArMjAzLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
R1BSCiAgICAgdXNlZFJlZ2lzdGVycy5zZXQocmVzdWx0R1BSLCBmYWxzZSk7CiAgICAgaWYgKHN0
dWJJbmZvR1BSICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0
dWJJbmZvR1BSLCBmYWxzZSk7CisgICAgaWYgKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZykK
KyAgICAgICAgdXNlZFJlZ2lzdGVycy5zZXQoc2NyYXRjaEdQUiwgZmFsc2UpOwogICAgIAogICAg
IEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvciBnZW4oCiAgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJ
VCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50aWZpZXIsCiAgICAg
ICAgIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVl
UmVncyh0aGlzR1BSKSwgc3R1YkluZm9HUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1
bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGg7CiAgICAgaWYgKEpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CkBAIC00MjQyLDQyICs0MjQ4LDUyIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgIGNhc2UgR2V0
QnlJZFdpdGhUaGlzOiB7CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
Q2VsbFVzZSAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCB0aGlzVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAg
ICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAg
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKLSAgICAgICAgICAgICAgICBzdHVi
SW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIEdQ
UlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVH
UFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEdQUkZsdXNo
ZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5
PiBzdHViSW5mbzsKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3Jh
dGNoOworICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICAgICAgc2NyYXRjaC5lbXBs
YWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgYmFzZUdQUiwgdGhpc1ZhbHVlR1BSLCByZXN1bHRHUFIsIHN0dWJJbmZvR1BSLCBu
b2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wTGlzdCgpKTsKKyAg
ICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJh
c2VHUFIsIHRoaXNWYWx1ZUdQUiwgcmVzdWx0R1BSLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwg
bm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
ICAgICAgICAgICAgIAogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB0aGlz
VmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1Yklu
Zm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJ
QyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0
aGlzKTsKLSAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAg
ICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVHUFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAg
ICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgICAgIHN0ZDo6
b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOworICAgICAgICAgICAgR1BSUmVnIHN0dWJJ
bmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
SW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlw
ZTo6REZHSklUKSkgeworICAgICAgICAgICAgICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7Cisg
ICAgICAgICAgICAgICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0
dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIg
PSBzY3JhdGNoLT5ncHIoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIApAQCAtNDI4NSw3ICs0MzAxLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgbm90
Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChKU1ZhbHVlUmVncyhiYXNlR1BS
KSkpOwogICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2Vs
bChKU1ZhbHVlUmVncyh0aGlzVmFsdWVHUFIpKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHRo
aXNWYWx1ZUdQUiwgcmVzdWx0R1BSLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBub3RDZWxsTGlzdCk7CisgICAgICAgICAgICBjYWNoZWRHZXRCeUlkV2l0aFRoaXMo
bm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB0aGlzVmFsdWVHUFIsIHJlc3VsdEdQUiwg
c3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90
Q2VsbExpc3QpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dEdQUiwgbm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAppbmRleCBjNDA3YjAwYzRkYWI3ZDY3NmEwNWY5ZTNkNTBkZGQxYTcy
MTAwMmFiLi42MWUwYzc3ZGFlMGZlMmJlN2FhN2MzMTBlYzZjOGQxMmU1NTIyYWEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC00NjY1LDcg
KzQ2NjUsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBwYXRjaHBvaW50LT5hcHBl
bmQobV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lz
dGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX251bWJlclRhZywgVmFsdWVSZXA6
OnJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5j
bG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7Ci0gICAgICAgIHBh
dGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRU
eXBlOjpGVExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJl
Z2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMyA6IDA7CiAK
ICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBQdXRCeUlkRmx1c2gsIHdlIG1pZ2h0IHdh
bnQgdG8gbGF0ZS1jbG9iYmVyIHZvbGF0aWxlIHJlZ2lzdGVycy4KICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg0OApAQCAtNDY4OSw3ICs0Njg5
LDE0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAgICAgLy8gSlMgc2V0dGVy
IGNhbGwgSUNzIGdlbmVyYXRlZCBieSB0aGUgUHV0QnlJZCBJQyB3aWxsIG5lZWQgdGhpcy4KICAg
ICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53
aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1
YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5n
cFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9
IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhK
SVRUeXBlOjpGVExKSVQpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gcGFy
YW1zLmdwU2NyYXRjaCgwKTsKKyAgICAgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHBhcmFt
cy5ncFNjcmF0Y2goMSk7CisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2gyR1BSID0gcGFyYW1z
LmdwU2NyYXRjaCgyKTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBhdXRv
IGdlbmVyYXRvciA9IEJveDxKSVRQdXRCeUlkR2VuZXJhdG9yPjo6Y3JlYXRlKAogICAgICAgICAg
ICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1
YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRl
eCwKQEAgLTQ2OTcsMTQgKzQ3MDQsMTUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwgc3R1YkluZm9HUFIsIEdQ
UkluZm86OnBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXIsIGVjbWFNb2RlLAogICAgICAgICAgICAg
ICAgICAgICBwdXRLaW5kKTsKIAotICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVG
YXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0
aChqaXQsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKICAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBhcmFt
cy5hZGRMYXRlUGF0aCgKICAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGpp
dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVz
YWdlIGFsbG93U2NyYXRjaChqaXQpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgc2xvd1BhdGhCZWdpbiA9IGpp
dC5sYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIHNs
b3dQYXRoQ2FsbDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSkgewpAQCAtMTI4NDEsNyArMTI4NDksMTAgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9ub3RDZWxsTWFz
aywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3RlcikpOwogICAg
ICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVwOjpsYXRlUmVnKEdQ
UkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIo
UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKLSAgICAgICAgcGF0Y2hwb2lu
dC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZU
TEpJVCkgPyAxIDogMDsKKyAgICAgICAgaWYgY29uc3RleHByICh0eXBlID09IEFjY2Vzc1R5cGU6
OkluQnlJZCkKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9
IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMiA6IDA7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMSA6IDA7CiAKICAgICAgICAgUmVmUHRy
PFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9IHByZXBhcmVQYXRj
aHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKIApAQCAtMTI4NTcsNyArMTI4NjgsMTMg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg
dGhlIGRpcmVjdCBleGl0IHRhcmdldCBmb3Igb3BlcmF0aW9uIGNhbGxzLgogICAgICAgICAgICAg
ICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0gZXhjZXB0aW9uSGFu
ZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOwogCi0gICAgICAg
ICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6
OkZUTEpJVCkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKKyAgICAgICAg
ICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAg
ICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgICAgICBp
ZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgc3R1YkluZm9HUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAgICAg
ICAgICBpZiBjb25zdGV4cHIgKHR5cGUgPT0gQWNjZXNzVHlwZTo6SW5CeUlkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHBhcmFtcy5ncFNjcmF0Y2goMSk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGF1dG8gcmV0dXJuR1BSID0gcGFyYW1zWzBdLmdw
cigpOwogICAgICAgICAgICAgICAgIGF1dG8gYmFzZSA9IEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5n
cHIoKSk7CiAKQEAgLTEyODk2LDEzICsxMjkxMywxMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgICAgICAgICAgICAgfSgpOwogCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCk7CiAgICAgICAgICAgICAgICAgaWYgY29uc3RleHByICh0eXBlID09IEFj
Y2Vzc1R5cGU6OkluQnlJZCkKKyAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBnZW5lcmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAg
ICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQogICAgICAg
ICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkp
OwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoIUpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQotICAgICAgICAgICAgICAgICAgICAgICAg
c2xvd0Nhc2VzLmFwcGVuZChnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpKTsKLSAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0Lmxh
YmVsKCk7CiAKICAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoCkBAIC0xNTA2OCw3
ICsxNTA4NCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kU29tZVJlZ2lzdGVyKGJhc2UpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQo
bV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdp
c3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVw
OjpsYXRlUmVnKEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7Ci0gICAgICAgIHBhdGNocG9p
bnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpG
VExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVy
cyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMiA6IDA7CiAKICAgICAg
ICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBHZXRCeUlkRmx1c2gvR2V0QnlJZERpcmVjdEZsdXNo
LCB3ZSBtaWdodCBnZXQgc29tZSBwZXJmb3JtYW5jZSBib29zdCBpZiB3ZSBjbGFpbSB0aGF0IGl0
CiAgICAgICAgIC8vIGNsb2JiZXJzIHZvbGF0aWxlIHJlZ2lzdGVycyBsYXRlLiBJdCdzIG5vdCBu
ZWNlc3NhcnkgZm9yIGNvcnJlY3RuZXNzLCB0aG91Z2gsIHNpbmNlIHRoZQpAQCAtMTUwOTgsMTQg
KzE1MTE0LDE5IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAv
LyB0aGUgY2FsbHNpdGUgaW5kZXguCiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5z
Y2hlZHVsZUV4aXRDcmVhdGlvbkZvclVud2luZChwYXJhbXMsIGNhbGxTaXRlSW5kZXgpOwogCi0g
ICAgICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkZUTEpJVCkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAg
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAg
ICAgICAgICAgICBzY3JhdGNoR1BSID0gcGFyYW1zLmdwU2NyYXRjaCgxKTsKKyAgICAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRHZXRCeUlk
R2VuZXJhdG9yPjo6Y3JlYXRlKAogICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCks
ICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIHNl
bWFudGljTm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKICAgICAgICAgICAgICAgICAgICAgcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGlkZW50aWZpZXIsIEpTVmFsdWVSZWdzKHBhcmFt
c1sxXS5ncHIoKSksCiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5n
cHIoKSksIHN0dWJJbmZvR1BSLCB0eXBlKTsKIAotICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+
Z2VuZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJh
dGVGYXN0UGF0aChqaXQsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOwogCiAgICAgICAgICAgICAgICAgcGFyYW1zLmFk
ZExhdGVQYXRoKApAQCAtMTUxMTQsNyArMTUxMzUsOCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gb3B0aW1pemF0aW9uRnVuY3Rpb24g
PSBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24odHlwZSk7CiAKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZU
TEpJVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1
bXAoKS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpM
YWJlbCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CkBAIC0xNTE1OSw3
ICsxNTE4MSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kKG1fbm90Q2VsbE1hc2ssIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86Om5vdENl
bGxNYXNrUmVnaXN0ZXIpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fbnVtYmVyVGFn
LCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAg
ICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMo
KSk7Ci0gICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6
OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQt
Pm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExK
SVQpID8gMiA6IDA7CiAKICAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+
IGV4Y2VwdGlvbkhhbmRsZSA9CiAgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2Vw
dGlvbnMocGF0Y2hwb2ludCk7CkBAIC0xNTE4MiwxNCArMTUyMDQsMTkgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIC8vIHRoZSBjYWxsc2l0ZSBpbmRleC4KICAg
ICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53
aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1
YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5n
cFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSkgeworICAgICAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9
IHBhcmFtcy5ncFNjcmF0Y2goMCk7CisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBw
YXJhbXMuZ3BTY3JhdGNoKDEpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAg
IGF1dG8gZ2VuZXJhdG9yID0gQm94PEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcj46OmNyZWF0
ZSgKICAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCAmc3RhdGUtPmppdENvZGUt
PmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6RlRMSklULCBzZW1hbnRpY05vZGVPcmlnaW4s
IGNhbGxTaXRlSW5kZXgsCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJl
Z2lzdGVycygpLCBpZGVudGlmaWVyLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAogICAg
ICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVlUmVn
cyhwYXJhbXNbMl0uZ3ByKCkpLCBzdHViSW5mb0dQUik7CiAKLSAgICAgICAgICAgICAgICBnZW5l
cmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3It
PmdlbmVyYXRlRmFzdFBhdGgoaml0LCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBh
cmFtcy5hZGRMYXRlUGF0aCgKQEAgLTE1MTk4LDcgKzE1MjI1LDggQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9wdGltaXphdGlvbkZ1
bmN0aW9uID0gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemU7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJ
VCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAo
KS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJl
bCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5oCmluZGV4IDFlMmVmZDU4ZTczYzQ0MGY3MzczMTUzNmQwYWNhMDVhNzgx
M2E2NzQuLmNmMDMzMDdkYjcwODJkM2U5ZTA0YjYyOWZmY2U2MWVmYjFiNzIwYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCkBAIC0xNjUsOSArMTY1LDExIEBAIGNsYXNzIEpJVENv
ZGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SklUQ29kZT4gewogICAgIHsKICAgICAg
ICAgaWYgKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmICghT3B0aW9uczo6dXNlRGF0YUlDKCkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgICAgICBy
ZXR1cm4gT3B0aW9uczo6dXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUKCk7CisjZWxzZQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IERPTUpJ
VDo6U2lnbmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3Iu
Y3BwCmluZGV4IGI2NWE2MDRjMzRmZTFjNTI3MzJhNzJmMzgwZWVkZTNjZDMxZDRiYjkuLmY3NTQz
ODJiM2EyZjcwZjc1Y2I2OTg1YjhhYjc2MTdjOThkODAzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCkBAIC0xMDUs
MTcgKzEwNSwyMCBAQCB2b2lkIEpJVEJ5SWRHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXIm
IGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKICAgICAgICAgbV9zdHViSW5mby0+bV9j
b2RlUHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwogfQogCi12b2lkIEpJ
VEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdENvbW1vbihNYWNyb0Fzc2VtYmxlciYgaml0LCBz
aXplX3QgaW5saW5lSUNTaXplKQordm9pZCBKSVRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RD
b21tb24oQ0NhbGxIZWxwZXJzJiBqaXQsIHNpemVfdCBpbmxpbmVJQ1NpemUpCiB7Ci0gICAgLy8g
V2UgZ2VuZXJhdGUgdGhlIHNhbWUgY29kZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgU2hhcmVkSUMg
aXMgZW5hYmxlZCBiZWNhdXNlIHdlIHN0aWxsIG5lZWQgdG8gdXNlIElubGluZUFjY2VzcwotICAg
IC8vIGZvciB0aGUgcGVyZm9ybWFuY2UgcmVhc29uLgogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwo
KTsKLSAgICBzaXplX3Qgc3RhcnRTaXplID0gaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVT
aXplKCk7Ci0gICAgbV9zbG93UGF0aEp1bXAgPSBqaXQuanVtcCgpOwotICAgIHNpemVfdCBqdW1w
U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOwot
ICAgIHNpemVfdCBub3BzVG9FbWl0SW5CeXRlcyA9IGlubGluZUlDU2l6ZSAtIGp1bXBTaXplOwot
ICAgIGppdC5lbWl0Tm9wcyhub3BzVG9FbWl0SW5CeXRlcyk7Ci0gICAgQVNTRVJUKGppdC5tX2Fz
c2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplID09IGlubGluZUlDU2l6ZSk7
CisgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CisgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+
bV9zdHViSW5mb0dQUik7CisgICAgICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVz
cyhtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZD
b2RlUHRyKCkpLCBKSVRTdHViUm91dGluZVB0clRhZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
c2l6ZV90IHN0YXJ0U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpOwor
ICAgICAgICBtX3Nsb3dQYXRoSnVtcCA9IGppdC5qdW1wKCk7CisgICAgICAgIHNpemVfdCBqdW1w
U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOwor
ICAgICAgICBzaXplX3Qgbm9wc1RvRW1pdEluQnl0ZXMgPSBpbmxpbmVJQ1NpemUgLSBqdW1wU2l6
ZTsKKyAgICAgICAgaml0LmVtaXROb3BzKG5vcHNUb0VtaXRJbkJ5dGVzKTsKKyAgICAgICAgQVNT
RVJUKGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplID09IGlu
bGluZUlDU2l6ZSk7CisgICAgfQogICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCkBAIC0x
MjgsMTMgKzEzMSw3IEBAIEpJVEdldEJ5SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3Io
CiAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkgIT0gdmFsdWUudGFnR1BSKCkp
OwogfQogCi12b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9B
c3NlbWJsZXImIGppdCkKLXsKLSAgICBBU1NFUlQobV9zdHViSW5mbyk7Ci0gICAgZ2VuZXJhdGVG
YXN0Q29tbW9uKGppdCwgbV9pc0xlbmd0aEFjY2VzcyA/IElubGluZUFjY2Vzczo6c2l6ZUZvckxl
bmd0aEFjY2VzcygpIDogSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGdlbmVyYXRlR2V0QnlJZElubGluZUFjY2VzcyhKSVQmIGppdCwgR1BS
UmVnIHN0dWJJbmZvR1BSLCBKU1ZhbHVlUmVncyBiYXNlSlNSLCBHUFJSZWcgc2NyYXRjaEdQUiwg
SlNWYWx1ZVJlZ3MgcmVzdWx0SlNSKQorc3RhdGljIHZvaWQgZ2VuZXJhdGVHZXRCeUlkSW5saW5l
QWNjZXNzKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEpTVmFsdWVSZWdz
IGJhc2VKU1IsIEdQUlJlZyBzY3JhdGNoR1BSLCBKU1ZhbHVlUmVncyByZXN1bHRKU1IpCiB7CiAg
ICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCks
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwogICAgIGF1dG8gZG9J
bmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQ
UiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQoKSkpOwpAQCAtMTQ0LDYgKzE0MSwy
MSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3MoSklUJiBqaXQsIEdQ
UlJlZyBzdHViSW5mb0dQUiwgSlNWYWx1ZVJlZwogICAgIGppdC5sb2FkUHJvcGVydHkoYmFzZUpT
Ui5wYXlsb2FkR1BSKCksIHNjcmF0Y2hHUFIsIHJlc3VsdEpTUik7CiB9CiAKK3ZvaWQgSklUR2V0
QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVn
IHNjcmF0Y2hHUFIpCit7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOworICAgIGlmICghSklUQ29k
ZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKKyAgICAgICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGpp
dCwgbV9pc0xlbmd0aEFjY2VzcyA/IElubGluZUFjY2Vzczo6c2l6ZUZvckxlbmd0aEFjY2Vzcygp
IDogSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAg
ICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKKyAgICBn
ZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BS
LCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOworICAgIG1fZG9uZSA9IGppdC5sYWJlbCgp
OworfQorCiB2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNG
YXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkluZm8sIEdQUlJlZyBzdHViSW5mb0dQUikK
IHsKICAgICBSRUxFQVNFX0FTU0VSVChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSk7CkBA
IC0xNzQsMTAgKzE4NiwxOSBAQCBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5
SWRXaXRoVGhpc0dlbmVyYXRvcigKICAgICB9CiB9CiAKLXZvaWQgSklUR2V0QnlJZFdpdGhUaGlz
R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJ
VEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMm
IGppdCwgR1BSUmVnIHNjcmF0Y2hHUFIpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwotICAg
IGdlbmVyYXRlRmFzdENvbW1vbihqaXQsIElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5QWNj
ZXNzKCkpOworICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKKyAgICAg
ICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGppdCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlB
Y2Nlc3MoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQ
UiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZv
LT5tX3N0dWJJbmZvR1BSKTsKKyAgICBnZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOwor
ICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCiB2b2lkIEpJVEdldEJ5SWRXaXRoVGhpc0dl
bmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25l
ZCBzdHViSW5mbywgR1BSUmVnIHN0dWJJbmZvR1BSKQpAQCAtMjA4LDYgKzIyOSwxNiBAQCBKSVRQ
dXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKAogICAgICAgICBtX3N0dWJJbmZv
LT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gpOwogfQogCitzdGF0aWMgdm9pZCBnZW5lcmF0
ZVB1dEJ5SWRJbmxpbmVBY2Nlc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQ
UiwgSlNWYWx1ZVJlZ3MgYmFzZUpTUiwgSlNWYWx1ZVJlZ3MgdmFsdWVKU1IsIEdQUlJlZyBzY3Jh
dGNoR1BSLCBHUFJSZWcgc2NyYXRjaDJHUFIpCit7CisgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOworICAgIGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNo
MzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlSUQoKSkpOworICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
dHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1
YlJvdXRpbmVQdHJUYWcpOworICAgIGRvSW5saW5lQWNjZXNzLmxpbmsoJmppdCk7CisgICAgaml0
LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJ
bmZvOjpvZmZzZXRPZkJ5SWRTZWxmT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICBqaXQuc3Rv
cmVQcm9wZXJ0eSh2YWx1ZUpTUiwgYmFzZUpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hHUFIsIHNj
cmF0Y2gyR1BSKTsKK30KKwogdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2Vs
aW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWJJbmZvLCBHUFJSZWcgc3R1
YkluZm9HUFIpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0
VHlwZSkpOwpAQCAtMjIxLDE5ICsyNTIsMjMgQEAgdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWIKICAg
ICB1c2luZyBCYXNlbGluZUpJVFJlZ2lzdGVyczo6UHV0QnlJZDo6RmFzdFBhdGg6OnNjcmF0Y2hH
UFI7CiAgICAgdXNpbmcgQmFzZWxpbmVKSVRSZWdpc3RlcnM6OlB1dEJ5SWQ6OkZhc3RQYXRoOjpz
Y3JhdGNoMkdQUjsKIAotICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VK
U1IucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BS
KTsKLSAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6
RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3Ry
dWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsK
LSAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVj
dHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsK
LSAgICBkb0lubGluZUFjY2Vzcy5saW5rKCZqaXQpOwotICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZCeUlk
U2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgaml0LnN0b3JlUHJvcGVydHkodmFsdWVK
U1IsIGJhc2VKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUik7CisgICAg
Z2VuZXJhdGVQdXRCeUlkSW5saW5lQWNjZXNzKGppdCwgc3R1YkluZm9HUFIsIGJhc2VKU1IsIHZh
bHVlSlNSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUik7CiAgICAgbV9kb25lID0gaml0LmxhYmVs
KCk7CiB9CiAKLXZvaWQgSklUUHV0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNy
b0Fzc2VtYmxlciYgaml0KQordm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gy
R1BSKQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKLSAgICBnZW5lcmF0ZUZhc3RDb21tb24o
aml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eVJlcGxhY2UoKSk7CisgICAgaWYgKCFK
SVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkgeworICAgICAgICBnZW5lcmF0ZUZhc3RDb21t
b24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eVJlcGxhY2UoKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVn
KTsKKyAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsK
KyAgICBnZW5lcmF0ZVB1dEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJ
bmZvR1BSLCBtX2Jhc2UsIG1fdmFsdWUsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKKyAgICBt
X2RvbmUgPSBqaXQubGFiZWwoKTsKIH0KIAogVl9KSVRPcGVyYXRpb25fR1NzaUpKQyBKSVRQdXRC
eUlkR2VuZXJhdG9yOjpzbG93UGF0aEZ1bmN0aW9uKCkKQEAgLTI4MSw3ICszMTYsNyBAQCBKSVRE
ZWxCeVZhbEdlbmVyYXRvcjo6SklURGVsQnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIEJhZzxTdHJ1Y3R1cmVTdAogICAgIH0KIH0KIAotdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQordm9pZCBKSVREZWxCeVZh
bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBB
U1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtMzIzLDcg
KzM1OCw3IEBAIEpJVERlbEJ5SWRHZW5lcmF0b3I6OkpJVERlbEJ5SWRHZW5lcmF0b3IoQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViCiAgICAgfQogfQogCi12b2lkIEpJVERl
bEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3Zv
aWQgSklURGVsQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGpp
dCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgp
OwpAQCAtMzYwLDcgKzM5NSw3IEBAIEpJVEluQnlWYWxHZW5lcmF0b3I6OkpJVEluQnlWYWxHZW5l
cmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViCiAgICAgfQogfQog
Ci12b2lkIEpJVEluQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJs
ZXImIGppdCkKK3ZvaWQgSklUSW5CeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2Fs
bEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9
IGppdC5sYWJlbCgpOwpAQCAtMzkyLDEwICs0MjcsMzQgQEAgSklUSW5CeUlkR2VuZXJhdG9yOjpK
SVRJbkJ5SWRHZW5lcmF0b3IoCiAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkg
IT0gdmFsdWUudGFnR1BSKCkpOwogfQogCi12b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQorc3RhdGljIHZvaWQgZ2VuZXJhdGVJbkJ5
SWRJbmxpbmVBY2Nlc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQUiwgSlNW
YWx1ZVJlZ3MgYmFzZUpTUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEpTVmFsdWVSZWdzIHJlc3VsdEpT
UikKK3sKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IGRvbmU7CisKKyAgICBqaXQubG9hZDMy
KENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlSlNSLnBheWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1
Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAgYXV0byBza2lwSW5saW5lQWNjZXNz
ID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9m
SW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKKyAgICBqaXQuYm94Qm9vbGVhbih0cnVl
LCByZXN1bHRKU1IpOworICAgIGF1dG8gZmluaXNoZWQgPSBqaXQuanVtcCgpOworCisgICAgc2tp
cElubGluZUFjY2Vzcy5saW5rKCZqaXQpOworICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6
QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ29kZVB0cigp
KSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOworCisgICAgZmluaXNoZWQubGluaygmaml0KTsKK30K
Kwordm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJz
JiBqaXQsIEdQUlJlZyBzY3JhdGNoR1BSKQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKLSAg
ICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eUFj
Y2VzcygpKTsKKyAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CisgICAg
ICAgIGdlbmVyYXRlRmFzdENvbW1vbihqaXQsIElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5
QWNjZXNzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKHNjcmF0Y2hH
UFIgIT0gSW52YWxpZEdQUlJlZyk7CisgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOworICAgIGpp
dC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5m
by0+bV9zdHViSW5mb0dQUik7CisgICAgZ2VuZXJhdGVJbkJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOwor
ICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCiB2b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6
Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHViSW5m
bywgR1BSUmVnIHN0dWJJbmZvR1BSKQpAQCAtNDEwLDE3ICs0NjksOCBAQCB2b2lkIEpJVEluQnlJ
ZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNp
Z25lZCBzdHViSQogICAgIHVzaW5nIEJhc2VsaW5lSklUUmVnaXN0ZXJzOjpJbkJ5SWQ6OnJlc3Vs
dEpTUjsKICAgICB1c2luZyBCYXNlbGluZUpJVFJlZ2lzdGVyczo6SW5CeUlkOjpzY3JhdGNoR1BS
OwogCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOworICAgIGdlbmVyYXRlSW5CeUlk
SW5saW5lQWNjZXNzKGppdCwgc3R1YkluZm9HUFIsIGJhc2VKU1IsIHNjcmF0Y2hHUFIsIHJlc3Vs
dEpTUik7CiAKLSAgICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlSlNSLnBh
eWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0g
ICAgYXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90
RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3Ry
dWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsK
LSAgICBqaXQuYm94Qm9vbGVhbih0cnVlLCByZXN1bHRKU1IpOwotICAgIGF1dG8gZmluaXNoZWQg
PSBqaXQuanVtcCgpOwotCi0gICAgc2tpcElubGluZUFjY2Vzcy5saW5rKCZqaXQpOwotICAgIGpp
dC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1
YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOwotCi0gICAg
ZmluaXNoZWQubGluaygmaml0KTsKICAgICBtX2RvbmUgPSBqaXQubGFiZWwoKTsKIH0KIApAQCAt
NDUyLDcgKzUwMiw3IEBAIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OkpJVEluc3RhbmNlT2ZHZW5l
cmF0b3IoCiAgICAgfQogfQogCi12b2lkIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklUSW5zdGFuY2VPZkdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9z
dHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtNDkxLDcgKzU0MSw3IEBA
IEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpKSVRHZXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgQmFnPFN0cnVjdHVyZVN0CiAgICAgfQogfQogCi12b2lkIEpJVEdldEJ5VmFsR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogewog
ICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CkBAIC01
MzEsNyArNTgxLDcgQEAgSklUUHV0QnlWYWxHZW5lcmF0b3I6OkpJVFB1dEJ5VmFsR2VuZXJhdG9y
KENvZGVCbG9jayogY29kZUJsb2NrLCBCYWc8U3RydWN0dXJlU3QKICAgICB9CiB9CiAKLXZvaWQg
SklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGpp
dCkKK3ZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxw
ZXJzJiBqaXQpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBqaXQu
bGFiZWwoKTsKQEAgLTU2OSw3ICs2MTksNyBAQCBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0
b3I6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbAogICAg
IH0KIH0KIAotdm9pZCBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogewogICAgIEFTU0VS
VChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmgKaW5kZXggNTI0
ZjliMDQ5ZTBmM2YzMWMyOTZkYzRkNGY3MmU3NjhiZWVlM2I1Yy4uZDk3NTI5ZTBkYmEwOTk4ZWEw
YTk3YjA1ZjgzYjg4NGFhODRiYjUxYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVO
QUJMRShKSVQpCiAKICNpbmNsdWRlICJBc3NlbWJseUhlbHBlcnMuaCIKKyNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKICNpbmNsdWRlICJDb2RlT3JpZ2luLmgiCiAjaW5jbHVkZSAiSklUT3BlcmF0
aW9uVmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvbnMuaCIKQEAgLTU2LDEzICs1
NywxMyBAQCBjbGFzcyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiBwdWJsaWM6CiAgICAgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9zdHViSW5mbzsgfQog
Ci0gICAgdm9pZCByZXBvcnRTbG93UGF0aENhbGwoTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQ
YXRoQmVnaW4sIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwpCisgICAgdm9pZCByZXBvcnRTbG93
UGF0aENhbGwoQ0NhbGxIZWxwZXJzOjpMYWJlbCBzbG93UGF0aEJlZ2luLCBDQ2FsbEhlbHBlcnM6
OkNhbGwgY2FsbCkKICAgICB7CiAgICAgICAgIG1fc2xvd1BhdGhCZWdpbiA9IHNsb3dQYXRoQmVn
aW47CiAgICAgICAgIG1fc2xvd1BhdGhDYWxsID0gY2FsbDsKICAgICB9CiAgICAgCi0gICAgTWFj
cm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nsb3dQ
YXRoQmVnaW47IH0KKyAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIHNsb3dQYXRoQmVnaW4oKSBjb25z
dCB7IHJldHVybiBtX3Nsb3dQYXRoQmVnaW47IH0KIAogICAgIHZvaWQgZmluYWxpemUoCiAgICAg
ICAgIExpbmtCdWZmZXImIGZhc3RQYXRoTGlua0J1ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhM
aW5rQnVmZmVyLApAQCAtNzgsMTAgKzc5LDEwIEBAIGNsYXNzIEpJVElubGluZUNhY2hlR2VuZXJh
dG9yIHsKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogbV9zdHViSW5mbyB7IG51bGxwdHIgfTsKIAog
cHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX3N0YXJ0OwotICAgIE1hY3JvQXNz
ZW1ibGVyOjpMYWJlbCBtX2RvbmU7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fc2xvd1Bh
dGhCZWdpbjsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtX3Nsb3dQYXRoQ2FsbDsKKyAgICBD
Q2FsbEhlbHBlcnM6OkxhYmVsIG1fc3RhcnQ7CisgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX2Rv
bmU7CisgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX3Nsb3dQYXRoQmVnaW47CisgICAgQ0NhbGxI
ZWxwZXJzOjpDYWxsIG1fc2xvd1BhdGhDYWxsOwogfTsKIAogY2xhc3MgSklUQnlJZEdlbmVyYXRv
ciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CkBAIC05Myw3ICs5NCw3IEBAIGNs
YXNzIEpJVEJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3Igewog
ICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJ
bmZvR1BSKTsKIAogcHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVt
cCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJl
dHVybiBtX3Nsb3dQYXRoSnVtcDsKQEAgLTEwNCwxMyArMTA1LDEzIEBAIGNsYXNzIEpJVEJ5SWRH
ZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIAogcHJvdGVj
dGVkOgogICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0Q29tbW9uKE1hY3JvQXNzZW1ibGVyJiwg
c2l6ZV90IHNpemUpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0Q29tbW9uKENDYWxsSGVscGVycyYs
IHNpemVfdCBzaXplKTsKICAgICAKICAgICBKU1ZhbHVlUmVncyBtX2Jhc2U7CiAgICAgSlNWYWx1
ZVJlZ3MgbV92YWx1ZTsKIAogcHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIG1fc2xv
d1BhdGhKdW1wOworICAgIENDYWxsSGVscGVyczo6SnVtcCBtX3Nsb3dQYXRoSnVtcDsKIH07CiAK
IGNsYXNzIEpJVEdldEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRv
ciB7CkBAIC0xMjEsNyArMTIyLDcgQEAgY2xhc3MgSklUR2V0QnlJZEdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVj
dHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAg
ICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BS
LCBBY2Nlc3NUeXBlKTsKICAgICAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3Nl
bWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgR1BSUmVn
IHNjcmF0Y2hHUFIpOwogICAgIHZvaWQgZ2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJ
VCYsIHVuc2lnbmVkIHN0dWJJbmZvQ29uc3RhbnQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKIHBy
aXZhdGU6CkBAIC0xMzYsOCArMTM3LDggQEAgY2xhc3MgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJh
dG9yIGZpbmFsIDogcHVibGljIEpJVEJ5SWRHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sq
LCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJ
bmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZp
ZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyB0aGlzUmVncywgR1BSUmVnIHN0dWJJbmZvR1BSKTsKIAorICAgIHZvaWQgZ2VuZXJhdGVG
YXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBHUFJSZWcgc2NyYXRjaEdQUik7CiAgICAgdm9pZCBnZW5l
cmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiwgdW5zaWduZWQgc3R1YkluZm9Db25zdGFu
dCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9B
c3NlbWJsZXImKTsKIH07CiAKIGNsYXNzIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJs
aWMgSklUQnlJZEdlbmVyYXRvciB7CkBAIC0xNDgsNyArMTQ5LDcgQEAgY2xhc3MgSklUUHV0QnlJ
ZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKICAgICAgICAgQ29k
ZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENh
bGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJ
ZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwg
R1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaCwgRUNNQU1vZGUsIFB1dEtpbmQpOwog
ICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZv
aWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BS
UmVnIHNjcmF0Y2gyR1BSKTsKICAgICB2b2lkIGdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0
aChKSVQmLCB1bnNpZ25lZCBzdHViSW5mb0NvbnN0YW50LCBHUFJSZWcgc3R1YkluZm9HUFIpOwog
ICAgIAogICAgIFZfSklUT3BlcmF0aW9uX0dTc2lKSkMgc2xvd1BhdGhGdW5jdGlvbigpOwpAQCAt
MTY3LDcgKzE2OCw3IEBAIGNsYXNzIEpJVFB1dEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGlj
IEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVj
dHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIEFjY2Vz
c1R5cGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVl
UmVncyBiYXNlLCBKU1ZhbHVlUmVncyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJS
ZWcgYXJyYXlQcm9maWxlR1BSLCBHUFJSZWcgc3R1YkluZm9HUFIpOwogCi0gICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
c2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVt
cC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7
CkBAIC0xNzUsMTIgKzE3NiwxMiBAQCBjbGFzcyBKSVRQdXRCeVZhbEdlbmVyYXRvciBmaW5hbCA6
IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAKICAgICB2b2lkIGZpbmFsaXplKExp
bmtCdWZmZXImIGZhc3RQYXRoTGlua0J1ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhMaW5rQnVm
ZmVyKTsKIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAg
IHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAogICAgIEpTVmFsdWVSZWdz
IG1fYmFzZTsKICAgICBKU1ZhbHVlUmVncyBtX3ZhbHVlOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6
OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFi
bGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogY2xhc3MgSklURGVsQnlWYWxHZW5lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewpAQCAtMTkyLDcgKzE5Myw3
IEBAIGNsYXNzIEpJVERlbEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNh
Y2hlR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZv
PiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0
JiB1c2VkUmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBw
cm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBz
Y3JhdGNoKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0
CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAg
ICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwogICAgICAgICByZXR1
cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMjAxLDkgKzIwMiw5IEBAIGNsYXNzIEpJVERl
bEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsK
ICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZm
ZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAKLSAgICB2b2lkIGdlbmVyYXRl
RmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0Nh
bGxIZWxwZXJzJik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQ
YXRoSnVtcDsKKyAgICBDQ2FsbEhlbHBlcnM6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7
CiB9OwogCiBjbGFzcyBKSVREZWxCeUlkR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGlu
ZUNhY2hlR2VuZXJhdG9yIHsKQEAgLTIxNSw3ICsyMTYsNyBAQCBjbGFzcyBKSVREZWxCeUlkR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAg
Q29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4s
IENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFi
bGVJZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1
bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2gpOwogCi0gICAgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAg
c2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVt
cC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7
CkBAIC0yMjQsOSArMjI1LDkgQEAgY2xhc3MgSklURGVsQnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1
YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgdm9pZCBmaW5hbGl6ZSgKICAgICAg
ICAgTGlua0J1ZmZlciYgZmFzdFBhdGhMaW5rQnVmZmVyLCBMaW5rQnVmZmVyJiBzbG93UGF0aExp
bmtCdWZmZXIpOwogCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7
CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwogCi0gICAgTWFjcm9B
c3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJz
OjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogY2xhc3MgSklUSW5CeVZhbEdl
bmVyYXRvciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CkBAIC0yMzgsNyArMjM5
LDcgQEAgY2xhc3MgSklUSW5CeVZhbEdlbmVyYXRvciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdl
bmVyYXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBK
SVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlLCBjb25zdCBSZWdp
c3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1
ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsK
IAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NF
UlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwogICAgICAgICByZXR1cm4gbV9zbG93
UGF0aEp1bXAubV9qdW1wOwpAQCAtMjQ3LDkgKzI0OCw5IEBAIGNsYXNzIEpJVEluQnlWYWxHZW5l
cmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIHZvaWQgZmluYWxp
emUoCiAgICAgICAgIExpbmtCdWZmZXImIGZhc3RQYXRoTGlua0J1ZmZlciwgTGlua0J1ZmZlciYg
c2xvd1BhdGhMaW5rQnVmZmVyKTsKIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAot
ICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOworICAgIEND
YWxsSGVscGVyczo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKIH07CiAKIGNsYXNzIEpJ
VEluQnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKQEAgLTI2
MCw3ICsyNjEsNyBAQCBjbGFzcyBKSVRJbkJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklU
QnlJZEdlbmVyYXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5m
bz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNl
dCYgdXNlZFJlZ2lzdGVycywgQ2FjaGVhYmxlSWRlbnRpZmllciwKICAgICAgICAgSlNWYWx1ZVJl
Z3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKLSAgICB2
b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRl
RmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgR1BSUmVnIHNjcmF0Y2hHUFIpOwogICAgIHZvaWQgZ2Vu
ZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYsIHVuc2lnbmVkIHN0dWJJbmZvQ29uc3Rh
bnQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiB9OwogCkBAIC0yNzQsOSArMjc1LDkgQEAgY2xhc3Mg
SklUSW5zdGFuY2VPZkdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvciB7CiAgICAgICAgIEdQUlJlZyB2YWx1ZSwgR1BSUmVnIHByb3RvdHlwZSwgR1BSUmVnIHN0
dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwKICAgICAgICAgYm9v
bCBwcm90b3R5cGVJc0tub3duT2JqZWN0ID0gZmFsc2UpOwogICAgIAotICAgIHZvaWQgZ2VuZXJh
dGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChD
Q2FsbEhlbHBlcnMmKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgp
IGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwogICAgICAg
ICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMjg0LDcgKzI4NSw3IEBAIGNsYXNz
IEpJVEluc3RhbmNlT2ZHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IgewogCiAgICAgdm9pZCBmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZm
ZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAKLSAgICBNYWNyb0Fzc2VtYmxl
cjo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKKyAgICBDQ2FsbEhlbHBlcnM6OlBhdGNo
YWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CiB9OwogCiBjbGFzcyBKSVRHZXRCeVZhbEdlbmVyYXRv
ciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CkBAIC0yOTYsNyArMjk3
LDcgQEAgY2xhc3MgSklUR2V0QnlWYWxHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1Yklu
Zm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29u
c3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2Us
IEpTVmFsdWVSZWdzIHByb3BlcnR5LCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5m
b0dQUik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAor
ICAgIENDYWxsSGVscGVyczo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAogICAgIHsKICAgICAg
ICAgQVNTRVJUKG1fc2xvd1BhdGhKdW1wLm1fanVtcC5pc1NldCgpKTsKICAgICAgICAgcmV0dXJu
IG1fc2xvd1BhdGhKdW1wLm1fanVtcDsKQEAgLTMwNSwxMiArMzA2LDEyIEBAIGNsYXNzIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsK
ICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZm
ZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAgICAgCi0gICAgdm9pZCBnZW5l
cmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRo
KENDYWxsSGVscGVycyYpOwogCiAgICAgSlNWYWx1ZVJlZ3MgbV9iYXNlOwogICAgIEpTVmFsdWVS
ZWdzIG1fcmVzdWx0OwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93
UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1w
OwogfTsKIAogY2xhc3MgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yIGZpbmFsIDogcHVi
bGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKQEAgLTMyMiw3ICszMjMsNyBAQCBjbGFzcyBK
SVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+
KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29uc3Qg
UmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpT
VmFsdWVSZWdzIGJyYW5kLCBHUFJSZWcgc3R1YkluZm9HUFIpOwogCi0gICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xv
d1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRoSnVtcC5t
X2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1bXA7CkBA
IC0zMzEsOSArMzMyLDkgQEAgY2xhc3MgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICB2b2lkIGZpbmFsaXpl
KAogICAgICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNs
b3dQYXRoTGlua0J1ZmZlcik7CiAgICAgCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3Jv
QXNzZW1ibGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwog
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAg
Q0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAKaW5kZXggODI3ZjFhNGQ5YzFlY2M4OWQzMjA0MzMzNjE1YzNjYWVjMjJhMGU2OC4u
ZGRhMDkxYTI3ZjM5YjU5YTAxZWRiNTQ4Y2EzMmZjZjc3N2JlNzE3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTQzNCw5ICs0MzQsNiBAQCB2b2lkIE9w
dGlvbnM6OnJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQogICAgIE9wdGlvbnM6OnVzZUNvbmN1
cnJlbnRHQygpID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIGlmICghT3B0aW9uczo6dXNlRGF0YUlD
KCkpCi0gICAgICAgIE9wdGlvbnM6OnVzZURhdGFJQ0luT3B0aW1pemluZ0pJVCgpID0gZmFsc2U7
Ci0KICAgICAvLyBBdCBpbml0aWFsaXphdGlvbiB0aW1lLCB3ZSBtYXkgZGVjaWRlIHRoYXQgdXNl
SklUIHNob3VsZCBiZSBmYWxzZSBmb3IgYW55CiAgICAgLy8gbnVtYmVyIG9mIHJlYXNvbnMgKGlu
Y2x1ZGluZyBmYWlsaW5nIHRvIGFsbG9jYXRlIEpJVCBtZW1vcnkpLCBhbmQgdGhlcmVmb3JlLAog
ICAgIC8vIHdpbGwgLyBzaG91bGQgbm90IGJlIGFibGUgdG8gZW5hYmxlIGFueSBKSVQgcmVsYXRl
ZCBzZXJ2aWNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5o
CmluZGV4IDgyNWEyYjY0ODdlYmRkZDI1NTI1ZTI2YzQwODQzYTA1MmE3MDYwMmIuLjY5NGZlMzA5
NGU3ZDUxNWRlYzQ5MmZhZGEzNzE5MTAxNmY3MzQxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtNTMxLDcgKzUzMSw2IEBAIGJvb2wgY2FuVXNl
V2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7CiAgICAgdihCb29sLCBkdW1wQmFzZWxpbmVKSVRTaXpl
U3RhdGlzdGljcywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgZHVtcERG
R0pJVFNpemVTdGF0aXN0aWNzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29s
LCB2ZXJib3NlRXhlY3V0YWJsZVBvb2xBbGxvY2F0aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRy
KSBcCi0gICAgdihCb29sLCB1c2VEYXRhSUMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAg
ICB2KEJvb2wsIHVzZURhdGFJQ0luT3B0aW1pemluZ0pJVCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAogICAgIHYoQm9vbCwgdXNlRGF0YUlDU2hhcmluZywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAogICAgIHYoQm9vbCwgdXNlQmFzZWxpbmVKSVRDb2RlU2hhcmluZywgaXM2NEJpdCgpLCBO
b3JtYWwsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA0MGQ3ZDJjYzc0ZTljOTZkNTU3NjlmYzIwMDQ0NjU5YWQzNTBkNzVhLi5h
NDE5YmI0NTkzNGNiM2Y1YTQxNzgxNWJmZWY3Y2UxMGU2MGVmYmRkIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjIt
MDMtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBbSlND
XSBUZXN0IERGRyAvIEZUTCBEYXRhSUMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMTIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKwogMjAyMi0w
My0yMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNh
YmxlIHRoZSA8bW9kZWw+IGVsZW1lbnQgaW4gQ2FwdGl2ZSBQb3J0YWwgbW9kZS4KZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1
bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IGRkNzEyOGVlNDE0NDVhZmNjZDc5NDYwNmQ1OTE2M2Yz
ZDk1MzFkNDUuLjkxNjY1OGIxYTI1YTY5MTAwZjk1ZTgyZGE5NjVmYmVkZDBiYWNiNTggMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKKysrIGIvVG9vbHMvU2Ny
aXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtMTA5MSw3ICsxMDkxLDcgQEAgQkFTRV9NT0RF
UyA9IFsKICAgICAgICAgIkZUTE5vQ0pJVCIsCiAgICAgICAgICJtaXNjLWZ0bC1uby1jaml0IiwK
ICAgICAgICAgWwotICAgICAgICAgICAgIi0tdXNlRGF0YUlDPXRydWUiLAorICAgICAgICAgICAg
Ii0tdXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUPXRydWUiLAogICAgICAgICBdICsKICAgICAgICAg
RlRMX09QVElPTlMgKwogICAgICAgICBOT19DSklUX09QVElPTlMKQEAgLTExMTcsNyArMTExNyw3
IEBAIEJBU0VfTU9ERVMgPSBbCiAgICAgICAgICAgICAiLS12YWxpZGF0ZUJDRT10cnVlIiwKICAg
ICAgICAgICAgICItLXVzZVNhbXBsaW5nUHJvZmlsZXI9dHJ1ZSIsCiAgICAgICAgICAgICAiLS1h
aXJGb3JjZUlSQ0FsbG9jYXRvcj10cnVlIiwKLSAgICAgICAgICAgICItLXVzZURhdGFJQz10cnVl
IiwKKyAgICAgICAgICAgICItLXVzZURhdGFJQ0luT3B0aW1pemluZ0pJVD10cnVlIiwKICAgICAg
ICAgXSArCiAgICAgICAgIEZUTF9PUFRJT05TICsKICAgICAgICAgTk9fQ0pJVF9PUFRJT05TCkBA
IC0xMTc4LDcgKzExNzgsNyBAQCBCQVNFX01PREVTID0gWwogICAgICAgICAgICAgIi0tYWlyRm9y
Y2VCcmlnZ3NBbGxvY2F0b3I9dHJ1ZSIsCiAgICAgICAgICAgICAiLS11c2VSYW5kb21pemluZ0V4
ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLAogICAgICAgICAgICAgIi0tZm9yY2VQb2x5
UHJvdG89dHJ1ZSIsCi0gICAgICAgICAgICAiLS11c2VEYXRhSUM9dHJ1ZSIsCisgICAgICAgICAg
ICAiLS11c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1ZSIsCiAgICAgICAgIF0gKwogICAgICAg
ICBGVExfT1BUSU9OUyArCiAgICAgICAgIEVBR0VSX09QVElPTlMgKwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwZDI2YjczNzQ1YmI3NDAx
NjhjMDVkMDdiYzc4YzY5MWY1MzE3MDEwLi44NjdjZTFiN2U5MGYzNDA4MWYwODhjZjNlZWJmMzQ0
NDA2ZjRhZjhkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTIyICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gVGVzdCBERkcgLyBGVEwgRGF0YUlDCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyMjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1pY3JvYmVu
Y2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qczoKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3Mv
cmljaGFyZHMtdHJ5LWNhdGNoLmpzOgorCiAyMDIyLTAzLTIxICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVmZXJlbmNlRXJyb3Igd2hlbiB1c2lu
ZyBleHRyYSBwYXJlbnMgaW4gY2xhc3MgZmllbGRzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3Jv
YmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtz
L2RlbHRhYmx1ZS12YXJhcmdzLmpzCmluZGV4IGE4ZGU0OWJiYjRjMGY1MGMzOWJjYWIzZDk4ODAz
MDU3YjkxNDdhNjguLjEwYmY3YWRiM2JhOTQ2YWQ0MDYzYjlhYTIwNzMyYTI3ZGFkOTc3YjkgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJhcmdzLmpzCisr
KyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJhcmdzLmpzCkBAIC0xLDUg
KzEsNSBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBsZSBXYXRjaCBTZXJpZXMgMyIgIyBh
ZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQotLy9AIHJlcXVpcmVPcHRpb25zKCItLXVz
ZURhdGFJQz10cnVlIiwgIi0tdXNlRGF0YUlDU2hhcmluZz10cnVlIikKKy8vQCByZXF1aXJlT3B0
aW9ucygiLS11c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1ZSIsICItLXVzZURhdGFJQ1NoYXJp
bmc9dHJ1ZSIpCiAKIC8vIENvcHlyaWdodCAyMDA4IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAvLyBDb3B5cmlnaHQgMTk5NiBKb2huIE1hbG9uZXkgYW5kIE1h
cmlvIFdvbGN6a28uCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yaWNoYXJk
cy10cnktY2F0Y2guanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yaWNoYXJkcy10cnktY2F0
Y2guanMKaW5kZXggY2IyZTI5ZWE4YjAzZDM1YzRkOTU2MmZmNGEyMGNkMmMwZTE3OTQyNi4uNjEw
ZDYyNjg0OWIxN2Q3NGMzMzY0YzExNmJkMmU0NzMxY2MyZTE1NiAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9taWNyb2JlbmNobWFya3MvcmljaGFyZHMtdHJ5LWNhdGNoLmpzCisrKyBiL0pTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRyeS1jYXRjaC5qcwpAQCAtMSw1ICsxLDUgQEAKIC8vQCBz
a2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1q
c2Mtc3RyZXNzLXRlc3QucHkKLS8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VEYXRhSUM9dHJ1ZSIs
ICItLXVzZURhdGFJQ1NoYXJpbmc9dHJ1ZSIpCisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRGF0
YUlDSW5PcHRpbWl6aW5nSklUPXRydWUiLCAiLS11c2VEYXRhSUNTaGFyaW5nPXRydWUiKQogCiAv
LyBDb3B5cmlnaHQgMjAwNi0yMDA4IHRoZSBWOCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455407</attachid>
            <date>2022-03-22 12:10:10 -0700</date>
            <delta_ts>2022-03-22 15:02:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231224-20220322121009.patch</filename>
            <type>text/plain</type>
            <size>77337</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZTIwYjdiMTJiMzg2NWRjZDg1ZjQyNjA4N2ZlNzE4NGZlNzUxMDc4Li4wYTUzOTQ1ZGU1MmIyYmE3
YjRjYWRmYzRhMjI0N2NmZmQxNDFmMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAyMi0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFRlc3QgREZHIC8gRlRMIERhdGFJQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXZpdmVzIERhdGFJ
QyBpbiBERkcgYW5kIEZUTCwgYW5kIHJlLWVuYWJsZSB0ZXN0aW5nIHRvIG1ha2UgaXQgdXNhYmxl
CisgICAgICAgIGZvciB1bmxpbmtlZCBERkcuIEN1cnJlbnRseSwgb25seSB4NjQgLyBBUk02NCBh
cmUgc3VwcG9ydGVkLgorCisgICAgICAgICogYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjppc0NhY2hlYWJsZUFycmF5TGVuZ3RoKToKKyAgICAg
ICAgKEpTQzo6SW5saW5lQWNjZXNzOjppc0NhY2hlYWJsZVN0cmluZ0xlbmd0aCk6CisgICAgICAg
IChKU0M6OklubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNzKToKKyAgICAgICAg
KEpTQzo6SW5saW5lQWNjZXNzOjpyZXNldFN0dWJBc0p1bXBJbkFjY2Vzcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlJZEZsdXNoKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUluQnlJZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRC
eUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdp
dGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAgICAgICAgKiBqaXQvSklU
Q29kZS5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjp1c2VEYXRhSUMpOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdENvbW1vbik6CisgICAgICAgIChKU0M6OmdlbmVyYXRlR2V0QnlJ
ZElubGluZUFjY2Vzcyk6CisgICAgICAgIChKU0M6OkpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpnZW5lcmF0ZVB1dEJ5SWRJbmxpbmVB
Y2Nlc3MpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2Vs
aW5lRGF0YUlDRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVREZWxCeUlkR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5CeVZhbEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OmdlbmVyYXRlSW5CeUlkSW5saW5lQWNjZXNzKToK
KyAgICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAg
ICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFz
dFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yOjpnZW5lcmF0ZUZh
c3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aCk6CisgICAgICAgIChKU0M6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6
CisgICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpyZXBvcnRTbG93UGF0aENh
bGwpOgorICAgICAgICAoSlNDOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6c2xvd1BhdGhCZWdp
biBjb25zdCk6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcCBj
b25zdCk6CisgICAgICAgIChKU0M6OkpJVEluQnlWYWxHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcCBj
b25zdCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0
aW9uczo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zTGlzdC5oOgorCiAyMDIyLTAzLTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0pTQ10gUmVmZXJlbmNlRXJyb3Igd2hlbiB1c2luZyBleHRyYSBwYXJl
bnMgaW4gY2xhc3MgZmllbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvSW5saW5lQWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9J
bmxpbmVBY2Nlc3MuY3BwCmluZGV4IGZiNWVlYTJkY2JhZjJjNDBhMDdmYWNiN2Q1NzkzMzg4YzVj
Mjc2YWEuLjliYTBjOTIwZWIzMmUzYmY4MzQ0MTc1NzY4ZTU5ZjE4Mzk3MTdjOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCkBAIC0yOTks
NyArMjk5LDcgQEAgYm9vbCBJbmxpbmVBY2Nlc3M6OmlzQ2FjaGVhYmxlQXJyYXlMZW5ndGgoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmYKICAgICBpZiAoIXN0dWJJbmZvLmhh
c0NvbnN0YW50SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNv
ZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKQorICAgIGlmIChjb2Rl
QmxvY2stPnVzZURhdGFJQygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWhh
c0ZyZWVSZWdpc3RlcihzdHViSW5mbykpCkBAIC0zNDAsNyArMzQwLDcgQEAgYm9vbCBJbmxpbmVB
Y2Nlc3M6OmlzQ2FjaGVhYmxlU3RyaW5nTGVuZ3RoKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1
Y3R1cmVTdHViSW4KICAgICBpZiAoIXN0dWJJbmZvLmhhc0NvbnN0YW50SWRlbnRpZmllcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJ
VFR5cGU6OkJhc2VsaW5lSklUKQorICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gaGFzRnJlZVJlZ2lzdGVyKHN0dWJJbmZv
KTsKQEAgLTQyOCwyNCArNDI4LDYgQEAgdm9pZCBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1
bXBJbkFjY2Vzc05vdFVzaW5nSW5saW5lQWNjZXNzKENvZGVCbG9jayogY29kZUIKIHZvaWQgSW5s
aW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1YlJv
dXRpbmVQdHJUYWc+IHRhcmdldCkKIHsKICAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSkg
ewotICAgICAgICAvLyBJZiBpdCBpcyBub3QgR2V0QnlJZC1saWtlLXRoaW5nLCB3ZSBkbyBub3Qg
ZW1pdCBub3Agc2xlZCAoZS5nLiBHZXRCeVZhbCkuCi0gICAgICAgIC8vIFRoZSBjb2RlIGlzIGFs
cmVhZHkgYW4gaW5kaXJlY3QganVtcCwgYW5kIG9ubHkgdGhpbmcgd2Ugc2hvdWxkIGRvIGlzIHJl
cGxhY2luZyBtX2NvZGVQdHIuCi0gICAgICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSAhPSBK
SVRUeXBlOjpCYXNlbGluZUpJVCAmJiBzdHViSW5mby5oYXNDb25zdGFudElkZW50aWZpZXIpIHsK
LSAgICAgICAgICAgIC8vIElmIG1fY29kZVB0ciBpcyBwb2ludGluZyB0byBzdHViSW5mby5zbG93
UGF0aFN0YXJ0TG9jYXRpb24sIHRoaXMgbWVhbnMgdGhhdCBJbmxpbmVBY2Nlc3MgY29kZSBpcyBu
b3QgYSBzdHViIG9uZS4KLSAgICAgICAgICAgIC8vIFdlIHJld3JpdGUgdGhpcyB3aXRoIHRoZSBz
dHViLWJhc2VkIGRpc3BhdGNoaW5nIGNvZGUgb25jZSwgYW5kIGNvbnRpbnVlIHVzaW5nIGl0IHVu
dGlsIHdlIHJlc2V0IHRoZSBjb2RlLgotICAgICAgICAgICAgaWYgKHN0dWJJbmZvLm1fY29kZVB0
ci5leGVjdXRhYmxlQWRkcmVzcygpID09IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbi5l
eGVjdXRhYmxlQWRkcmVzcygpKSB7Ci0gICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjplbWl0
SklUQ29kZU92ZXIoc3R1YkluZm8uc3RhcnQucmV0YWdnZWQ8SlNJbnRlcm5hbFB0clRhZz4oKSwg
c2NvcGVkTGFtYmRhPHZvaWQoQ0NhbGxIZWxwZXJzJik+KFsmXShDQ2FsbEhlbHBlcnMmIGppdCkg
ewotICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoJnN0dWJJbmZvKSwgc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgICAgICAgICAg
ICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mby5tX3N0dWJJbmZv
R1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHViUm91dGlu
ZVB0clRhZyk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8ganVtcCA9IGppdC5qdW1wKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGF1dG8gZG9uZUxvY2F0aW9uID0gc3R1YkluZm8uZG9uZUxvY2F0
aW9uOwotICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dKExpbmtCdWZmZXIm
IGxpbmtCdWZmZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhq
dW1wLCBkb25lTG9jYXRpb24pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICB9KSwgIklubGluZUFjY2VzczogbGlua2luZyBzdHViIGNhbGwiKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9IHRhcmdldDsKICAg
ICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8g
Q2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKQEAgLTQ2
Miw3ICs0NDQsNyBAQCB2b2lkIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNz
KENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSQogCiB2b2lkIElubGluZUFjY2Vz
czo6cmVzZXRTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVy
ZVN0dWJJbmZvJiBzdHViSW5mbykKIHsKLSAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSAm
JiBjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCkgeworICAgIGlm
IChjb2RlQmxvY2stPnVzZURhdGFJQygpKSB7CiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9
IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKICAgICAgICAgc3R1YkluZm8ubV9pbmxp
bmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUg
YWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMzYwZTE4MTgzZWNiYTFlMGNjMDVkNzZj
NzJjZGYxMjE5ZWNjYjE2ZC4uNDg2OWFiMjY0ODNhZGJlZDBmNDdjMmE4N2UzOGNmN2Y0ZWRmM2Vm
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKQEAgLTEwNDksMjAgKzEwNDksMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5SWQoTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSBy
ZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9
IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAg
ICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgc2NyYXRjaC5l
bXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7
CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAgICAgICAgIH0KICAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoYmFz
ZS5ncHIoKSk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygp
OwogCiAgICAgICAgIGJhc2UudXNlKCk7CiAKLSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+
Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBOZWVkVG9TcGlsbCwg
YWNjZXNzVHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGlj
LCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNh
Y2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3BpbGwsIGFj
Y2Vzc1R5cGUpOwogCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0
YUZvcm1hdEpTLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogICAgICAgICBicmVhazsK
QEAgLTEwNzAsMTMgKzEwNzQsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
SWQoTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgY2FzZSBVbnR5cGVk
VXNlOiB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIEpTVmFs
dWVPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVn
c1RlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
SW52YWxpZEdQUlJlZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpE
RkdKSVQpKSB7CiAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAg
ICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHVi
SW5mby0+Z3ByKCk7CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAg
ICAgICAgIH0KICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdz
KCk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwpAQCAt
MTA4NSw3ICsxMDkzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5SWQoTm9k
ZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoYmFzZVJlZ3MpOwogCi0gICAgICAg
IGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVn
cywgc3R1YkluZm9HUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgTmVl
ZFRvU3BpbGwsIGFjY2Vzc1R5cGUpOworICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5vdENlbGwsIE5lZWRUb1NwaWxsLCBhY2Nl
c3NUeXBlKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFG
b3JtYXRKUywgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBA
IC0xMTAyLDEzICsxMTEwLDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlk
Rmx1c2goTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxs
UmVzdWx0IHJlc3VsdCh0aGlzKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJSZWc7CiAg
ICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewogICAgICAg
ICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2guZW1wbGFj
ZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAg
ICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAgICAgICAg
IEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2UuZ3By
KCkpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAg
LTExMTcsNyArMTEyOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlkRmx1
c2goTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CiAKLSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50aWMs
IGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBEb250U3BpbGwsIGFjY2Vzc1R5cGUpOworICAg
ICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3Vs
dFJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVy
KCksIEpJVENvbXBpbGVyOjpKdW1wKCksIERvbnRTcGlsbCwgYWNjZXNzVHlwZSk7CiAKICAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlLCBEYXRhRm9ybWF0SlMsIFVzZUNoaWxk
cmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTEyNSwxMyArMTEzNywx
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqIG5vZGUs
IEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSkKIAogICAgIGNhc2UgVW50eXBlZFVzZTogewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOwogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJl
c3VsdCByZXN1bHQodGhpcyk7CiAKICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxp
ZEdQUlJlZzsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAg
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICBzY3JhdGNoLmVtcGxhY2Uo
dGhpcyk7CiAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKKyAgICAg
ICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKICAgICAgICAgfQogICAgICAgICBK
U1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CkBAIC0xMTQyLDcgKzExNTgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqIG5vZGUsIEFjY2Vz
c1R5cGUgYWNjZXNzVHlwZSkKIAogICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RDZWxsID0g
bV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5vdENlbGwsIERvbnRTcGlsbCwgYWNjZXNz
VHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNl
UmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgRG9udFNwaWxsLCBhY2Nlc3NUeXBlKTsKIAogICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUywgVXNlQ2hpbGRy
ZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBAIC0xMzIzLDEzICsxMzM5LDE3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWxldGVCeVZhbChOb2RlKiBub2RlKQog
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluQnlJZChOb2RlKiBub2RlKQogewogICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICBzdGQ6Om9wdGlvbmFsPEdQ
UlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIGJhc2UsIFBheWxvYWRXb3JkKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IElu
dmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewogICAgICAgICBzdHVi
SW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICBzY3JhdGNoLmVtcGxhY2UodGhpcyk7CiAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICBzY3JhdGNoR1BSID0g
c2NyYXRjaC0+Z3ByKCk7CiAgICAgfQogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsK
ICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAgLTEzNDIsNyAr
MTM2Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbkJ5SWQoTm9kZSogbm9kZSkK
ICAgICBKSVRJbkJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwg
Jm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQsIGNv
ZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBub2RlLT5jYWNoZWFibGVJZGVudGlm
aWVyKCksCiAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShiYXNlR1BSKSwgcmVzdWx0
UmVncywgc3R1YkluZm9HUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAKICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKQEAgLTQxNTQsMTggKzQxNzQsMjIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZChOb2RlKiBub2RlKQogICAgIHN3aXRjaCAobV9ncmFw
aC5jaGlsZChub2RlLCAwKS51c2VLaW5kKCkpIHsKICAgICBjYXNlIENlbGxVc2U6IHsKICAgICAg
ICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6Om9w
dGlvbmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgSlNWYWx1ZVJl
Z3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKIAogICAgICAgICBHUFJSZWcg
c3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9
IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6
REZHSklUKSkgewogICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAg
ICAgIHNjcmF0Y2guZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1
YkluZm8tPmdwcigpOworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwog
ICAgICAgICB9CiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gSlNWYWx1ZVJlZ3M6OnBh
eWxvYWRPbmx5KGJhc2UuZ3ByKCkpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
cmVzdWx0LnJlZ3MoKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFibGVJ
ZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wKCksIE5lZWRUb1NwaWxsLCBBY2Nlc3NUeXBl
OjpHZXRQcml2YXRlTmFtZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNl
bWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3Bp
bGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiAgICAgICAgIGJyZWFrOwpAQCAtNDE3
MywyMCArNDE5NywyNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJpdmF0ZU5h
bWVCeUlkKE5vZGUqIG5vZGUpCiAKICAgICBjYXNlIFVudHlwZWRVc2U6IHsKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlz
LCBtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIg
PSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJS
ZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewog
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2gu
ZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAg
ICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwogICAgICAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKIAogICAgICAgICBKSVRD
b21waWxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKTsK
IAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3Ms
IHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5v
dENlbGwsIE5lZWRUb1NwaWxsLCBBY2Nlc3NUeXBlOjpHZXRQcml2YXRlTmFtZSk7CisgICAgICAg
IGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVn
cywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwg
bm90Q2VsbCwgTmVlZFRvU3BpbGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKIAogICAg
ICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtNDM0MiwxNCArNDM3MCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHV0UHJpdmF0ZU5hbWUoTm9kZSogbm9kZSkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQdXRQcml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+
IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsK
ICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQ
UiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAg
ICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1wbGFjZSh0aGlz
KTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAgICAgIHNjcmF0
Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJl
Z3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOwogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIo
KTsKQEAgLTQzNTgsNyArNDM5MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQ
cml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKICAgICAvLyBXZSBlbWl0IHByb3BlcnR5IGNoZWNr
IGR1cmluZyBERkcgZ2VuZXJhdGlvbiwgc28gd2UgZG9uJ3QgbmVlZAogICAgIC8vIHRvIGNoZWNr
IGl0IGhlcmUuCiAgICAgYXV0byBwdXRLaW5kID0gbm9kZS0+cHJpdmF0ZUZpZWxkUHV0S2luZCgp
LmlzRGVmaW5lKCkgPyBQdXRLaW5kOjpEaXJlY3RQcml2YXRlRmllbGREZWZpbmUgOiBQdXRLaW5k
OjpEaXJlY3RQcml2YXRlRmllbGRTZXQ7Ci0gICAgY2FjaGVkUHV0QnlJZChub2RlLT5vcmlnaW4u
c2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgcHV0S2luZCwgRUNNQU1vZGU6OnN0cmljdCgpKTsK
KyAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVS
ZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwgcHV0S2luZCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKIAogICAgIG5vUmVz
dWx0KG5vZGUpOwogfQpAQCAtMTQxMjgsMjEgKzE0MTYwLDI1IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVFbnVtZXJhdG9ySGFzT3duUHJvcGVydHkoTm9kZSogbm9kZSkKIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeUlkRmx1c2goTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6
Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJU
ZW1wb3Jhcnk+IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52
YWxpZEdQUlJlZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkp
IHsKICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1w
bGFjZSh0aGlzKTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAg
ICAgIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBHUFJSZWcgYmFz
ZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNW
YWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAgICAg
Zmx1c2hSZWdpc3RlcnMoKTsKIAotICAgIGNhY2hlZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5j
YWNoZWFibGVJZGVudGlmaWVyKCksIFB1dEtpbmQ6Ok5vdERpcmVjdCwgbm9kZS0+ZWNtYU1vZGUo
KSwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKSwgRG9udFNwaWxsKTsKKyAgICBjYWNoZWRQdXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwg
c2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0
S2luZDo6Tm90RGlyZWN0LCBub2RlLT5lY21hTW9kZSgpLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgp
LCBEb250U3BpbGwpOwogCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CkBAIC0xNDE1MCwyMCArMTQx
ODYsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWRGbHVzaChOb2RlKiBu
b2RlKQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWQoTm9kZSogbm9kZSkKIHsK
ICAgICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRp
b25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMs
IG5vZGUtPmNoaWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAg
IEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gy
R1BSID0gSW52YWxpZEdQUlJlZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6
OkRGR0pJVCkpIHsKICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2Ny
YXRjaDIuZW1wbGFjZSh0aGlzKTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3By
KCk7CisgICAgICAgIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBH
UFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0g
dmFsdWUuanNWYWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3By
KCk7CiAKLSAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwg
dmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOworICAgIGNhY2hl
ZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJ
bmZvR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmll
cigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOwogCiAgICAgbm9SZXN1
bHQobm9kZSk7CiB9CkBAIC0xNDE3MSwyMCArMTQyMTEsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEJ5SWQoTm9kZSogbm9kZSkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRCeUlkRGlyZWN0KE5vZGUqIG5vZGUpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1w
b3Jhcnk+IHN0dWJJbmZvOworICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNo
MjsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgR1BS
VGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAKICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOworICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9IEludmFsaWRHUFJSZWc7CiAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAgICAgICAgIHN0dWJJ
bmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgIHNjcmF0Y2gyLmVtcGxhY2UodGhpcyk7CiAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICBzY3JhdGNoMkdQUiA9
IHNjcmF0Y2gyLT5ncHIoKTsKICAgICB9CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OwogICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CiAgICAg
R1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwogCi0gICAgY2FjaGVkUHV0QnlJZChu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNj
cmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6RGlyZWN0LCBu
b2RlLT5lY21hTW9kZSgpKTsKKyAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJH
UFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6RGlyZWN0LCBub2RlLT5l
Y21hTW9kZSgpKTsKIAogICAgIG5vUmVzdWx0KG5vZGUpOwogfQpAQCAtMTU3NzgsNyArMTU4MjIs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHJvZmlsZVR5cGUoTm9kZSogbm9kZSkK
ICAgICBub1Jlc3VsdChub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0
QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1ZhbHVlUmVncyB2
YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHV0S2luZCBwdXRLaW5kLCBFQ01BTW9kZSBlY21hTW9k
ZSwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBz
cGlsbE1vZGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4g
Y29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEpTVmFsdWVSZWdzIHZhbHVlUmVncywgR1BSUmVn
IHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSLCBDYWNo
ZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFB1dEtpbmQgcHV0S2luZCwgRUNNQU1vZGUgZWNt
YU1vZGUsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01v
ZGUgc3BpbGxNb2RlKQogewogICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51
c2VkUmVnaXN0ZXJzKCk7CiAgICAgaWYgKHNwaWxsTW9kZSA9PSBEb250U3BpbGwpIHsKQEAgLTE1
Nzg3LDYgKzE1ODMxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQoQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgSlNWYWx1CiAgICAgICAgIHVzZWRS
ZWdpc3RlcnMuc2V0KHZhbHVlUmVncywgZmFsc2UpOwogICAgICAgICBpZiAoc3R1YkluZm9HUFIg
IT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0dWJJbmZv
R1BSLCBmYWxzZSk7CisgICAgICAgIGlmIChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcpCisg
ICAgICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNoR1BSLCBmYWxzZSk7CisgICAgICAg
IGlmIChzY3JhdGNoMkdQUiAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgdXNlZFJlZ2lz
dGVycy5zZXQoc2NyYXRjaDJHUFIsIGZhbHNlKTsKICAgICB9CiAgICAgQ2FsbFNpdGVJbmRleCBj
YWxsU2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGlu
Z09TUkV4aXRJZk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKICAgICBKSVRQ
dXRCeUlkR2VuZXJhdG9yIGdlbigKQEAgLTE1Nzk0LDcgKzE1ODQyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
R1BSLCBKU1ZhbHUKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VHUFIpLCB2
YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLAogICAgICAgICBzY3JhdGNoR1BSLCBlY21hTW9kZSwgcHV0
S2luZCk7CiAKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CisgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgobV9qaXQsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKIAogICAgIEpJVENv
bXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAgICAgaWYgKHNsb3dQYXRoVGFyZ2V0LmlzU2V0
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggNjk1MzQ1NTc5OWU1OGQ2MmU5YzlmZTNlNDY2NjNhOWVkYmRiMmE0NC4uM2UxNDI5ODJmZDc4
NzcyYzUzNDJmMWQ2MTU0NDBlODU2Njg1ZDZjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzIzLDE2ICs3MjMsMTYgQEAgY2xhc3MgU3Bl
Y3VsYXRpdmVKSVQgewogCiAgICAgdm9pZCBjb21waWxlQ2hlY2tEZXRhY2hlZChOb2RlKik7CiAK
LSAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIs
IEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUsIEFj
Y2Vzc1R5cGUpOwotICAgIHZvaWQgY2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZUdQUiwgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBz
Y3JhdGNoR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQdXRLaW5kLCBFQ01BTW9kZSwgSklUQ29t
cGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpLCBTcGlsbFJl
Z2lzdGVyc01vZGUgPSBOZWVkVG9TcGlsbCk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVP
cmlnaW4sIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJ
bmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7
CisgICAgdm9pZCBjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1Zh
bHVlUmVncyB2YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIs
IEdQUlJlZyBzY3JhdGNoMkdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHV0S2luZCwgRUNNQU1v
ZGUsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAo
KSwgU3BpbGxSZWdpc3RlcnNNb2RlID0gTmVlZFRvU3BpbGwpOwogICAgIHZvaWQgY2FjaGVkR2V0
QnlWYWwoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHks
IEpTVmFsdWVSZWdzIHJlc3VsdCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpOwog
CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwg
R1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2Fj
aGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxs
UmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7Ci0gICAgdm9pZCBjYWNoZWRHZXRCeUlkV2l0aFRo
aXMoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJSZWcgcmVz
dWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJ
VENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcExp
c3QoKSk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BS
LCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoR1BS
LCBDYWNoZWFibGVJZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwg
U3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nlc3NUeXBlKTsKKyAgICB2b2lkIGNhY2hlZEdldEJ5SWRX
aXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHRoaXNHUFIsIEdQUlJl
ZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hl
YWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJn
ZXQgPSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQot
ICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9u
ZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVz
dWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBK
SVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nl
c3NUeXBlKTsKLSAgICB2b2lkIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJS
ZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdGhpc1Rh
Z0dQUk9yTm9uZSwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVu
dGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0ID0gSklU
Q29tcGlsZXI6Okp1bXBMaXN0KCkpOworICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2lu
LCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcg
cmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BS
LCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1
bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7CisgICAg
dm9pZCBjYWNoZWRHZXRCeUlkV2l0aFRoaXMoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJP
ck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHRoaXNUYWdHUFJPck5vbmUsIEdQ
UlJlZyB0aGlzUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBh
eWxvYWRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJs
ZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJnZXQg
PSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAjZW5kaWYKIAogICAgIHZvaWQgY29tcGlsZURl
bGV0ZUJ5SWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggN2ZiNTY1MjMzMmY5YzYwZjYyMjI4NmZlYWE5
ZTU2YmE2MzI3ZjZjYS4uZjkzN2YxZWRkYTgyYzU5Yjc3MTM5ZjJiNTJjYjNiODk4N2U1YzQ1OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC0xNjgsMTQgKzE2OCwxNCBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpmaWxs
SlNWYWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcmIHBheWxvYWRHUFIsCiAg
ICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4g
b3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHVi
SW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVt
cCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJzTW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5
cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2lu
LCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQ
UiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSklU
Q29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgLCBTcGlsbFJlZ2lzdGVyc01vZGUgbW9kZSwg
QWNjZXNzVHlwZSB0eXBlKQogewotICAgIGNhY2hlZEdldEJ5SWQob3JpZ2luLCBiYXNlLnRhZ0dQ
UigpLCBiYXNlLnBheWxvYWRHUFIoKSwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9hZEdQ
UigpLCBzdHViSW5mb0dQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUp
OworICAgIGNhY2hlZEdldEJ5SWQob3JpZ2luLCBiYXNlLnRhZ0dQUigpLCBiYXNlLnBheWxvYWRH
UFIoKSwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9hZEdQUigpLCBzdHViSW5mb0dQUiwg
c2NyYXRjaEdQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUpOwogfQog
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogICAgIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwg
R1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzdHVi
SW5mb0dQUiwKLSAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlLCBBY2Nl
c3NUeXBlIHR5cGUpCisgICAgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0
ZXJzTW9kZSBzcGlsbE1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3R1YkluZm9HUFIpOwogICAgIC8vIFRoaXMgaXMgYSBoYWNreSBmaXggZm9yIHdoZW4gdGhlIHJl
Z2lzdGVyIGFsbG9jYXRvciBkZWNpZGVzIHRvIGFsaWFzIHRoZSBiYXNlIHBheWxvYWQgd2l0aCB0
aGUgcmVzdWx0IHRhZy4gVGhpcyBvbmx5IGhhcHBlbnMKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2so
KSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQs
IGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVyLAogICAgICAg
ICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVS
ZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiksIEludmFsaWRHUFJSZWcsIHR5cGUp
OwogICAgIAotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAgICBnZW4uZ2VuZXJh
dGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IHNsb3dDYXNlczsKICAgICBpZiAoc2xvd1BhdGhUYXJnZXQuaXNTZXQoKSkKQEAgLTIy
OSw3ICsyMjksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogfQogCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkV2l0aFRoaXMoCi0gICAgQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2Fk
R1BSLCBHUFJSZWcgdGhpc1RhZ0dQUiwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVz
dWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLAor
ICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJl
ZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHRoaXNUYWdHUFIsIEdQUlJlZyB0aGlzUGF5bG9hZEdQ
UiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBz
dHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0KQog
ewogICAgIFVOVVNFRF9QQVJBTShzdHViSW5mb0dQUik7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKAogICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBl
OjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVy
LAogICAgICAgICBKU1ZhbHVlUmVncyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpLCBK
U1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVSZWdz
KHRoaXNUYWdHUFIsIHRoaXNQYXlsb2FkR1BSKSwgSW52YWxpZEdQUlJlZyk7CiAgICAgCi0gICAg
Z2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0LCBzY3JhdGNoR1BSKTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nh
c2VzOwogICAgIGlmICghc2xvd1BhdGhUYXJnZXQuZW1wdHkoKSkKQEAgLTMyMzIsNyArMzIzMiw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IEdQUlJlZyByZXN1bHRUYWdHUFIgPSByZXN1bHRUYWcuZ3ByKCk7CiAgICAgICAgICAgICBHUFJS
ZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQuZ3ByKCk7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMs
IEludmFsaWRHUFJSZWcsIGJhc2VHUFIsIEludmFsaWRHUFJSZWcsIHRoaXNHUFIsIHJlc3VsdFRh
Z0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRl
bnRpZmllcigpKTsKKyAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmln
aW4uc2VtYW50aWMsIEludmFsaWRHUFJSZWcsIGJhc2VHUFIsIEludmFsaWRHUFJSZWcsIHRoaXNH
UFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJlZywgSW52YWxp
ZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIG5v
ZGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMzI1Miw3ICszMjUyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBw
ZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChiYXNlLmpzVmFsdWVSZWdzKCkpKTsKICAgICAgICAg
ICAgIG5vdENlbGxMaXN0LmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdENlbGwodGhpc1ZhbHVlLmpz
VmFsdWVSZWdzKCkpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdp
dGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIs
IHRoaXNUYWdHUFIsIHRoaXNQYXlsb2FkR1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRH
UFIsIEludmFsaWRHUFJSZWcsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbExp
c3QpOworICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIsIHRoaXNUYWdHUFIsIHRoaXNQYXlsb2Fk
R1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIEludmFsaWRHUFJSZWcsIEludmFs
aWRHUFJSZWcsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbExpc3QpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFRhZ0dQUiwgcmVzdWx0
UGF5bG9hZEdQUiwgbm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGZmOWI4NDJlYzZmOWI3OGM4MWZk
Y2U3MTdkZDRjM2YxY2JjMTBlNzcuLjdiNzk5MDg5ZDQyNmZiZmIxODMyYjY1ZjVlZTMwMTRkMmFl
ZGFlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcApAQCAtMTQ4LDEyICsxNDgsMTIgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpm
aWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiAgICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpj
YWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJz
TW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRH
ZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBy
ZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgLCBT
cGlsbFJlZ2lzdGVyc01vZGUgbW9kZSwgQWNjZXNzVHlwZSB0eXBlKQogewotICAgIGNhY2hlZEdl
dEJ5SWQob3JpZ2luLCBiYXNlLmdwcigpLCByZXN1bHQuZ3ByKCksIHN0dWJJbmZvR1BSLCBpZGVu
dGlmaWVyLCBzbG93UGF0aFRhcmdldCwgbW9kZSwgdHlwZSk7CisgICAgY2FjaGVkR2V0QnlJZChv
cmlnaW4sIGJhc2UuZ3ByKCksIHJlc3VsdC5ncHIoKSwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIs
IGlkZW50aWZpZXIsIHNsb3dQYXRoVGFyZ2V0LCBtb2RlLCB0eXBlKTsKIH0KIAotdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBi
YXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNw
aWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRj
aEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBz
bG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSwgQWNjZXNzVHlwZSB0
eXBlKQogewogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0
ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwg
bV9zdHJlYW0tPnNpemUoKSk7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMt
PnVzZWRSZWdpc3RlcnMoKTsKQEAgLTE2MywxNSArMTYzLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwg
R1BSUmVnCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHJlc3VsdEdQUiwgZmFsc2UpOwogICAg
ICAgICBpZiAoc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHVzZWRS
ZWdpc3RlcnMuc2V0KHN0dWJJbmZvR1BSLCBmYWxzZSk7CisgICAgICAgIGlmIChzY3JhdGNoR1BS
ICE9IEludmFsaWRHUFJSZWcpCisgICAgICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNo
R1BSLCBmYWxzZSk7CiAgICAgfQogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAg
ICBtX2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9z
LCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBp
ZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocmVz
dWx0R1BSKSwgc3R1YkluZm9HUFIsIHR5cGUpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1
bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKICAgICBpZiAoSklUQ29kZTo6
dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKQEAgLTE5MCw3ICsxOTMsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVn
IGJhc2VHUFIsIEdQUlJlZwogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1Bh
dGgpKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKENv
ZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJS
ZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgSklUQ29tcGlsZXI6Okp1bXBMaXN0JiBzbG93UGF0aFRhcmdldCkKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgdGhpc0dQUiwgR1BSUmVnIHJlc3VsdEdQUiwg
R1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0
KQogewogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFu
ZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9z
dHJlYW0tPnNpemUoKSk7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVz
ZWRSZWdpc3RlcnMoKTsKQEAgLTIwMCwxNSArMjAzLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
R1BSCiAgICAgdXNlZFJlZ2lzdGVycy5zZXQocmVzdWx0R1BSLCBmYWxzZSk7CiAgICAgaWYgKHN0
dWJJbmZvR1BSICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0
dWJJbmZvR1BSLCBmYWxzZSk7CisgICAgaWYgKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZykK
KyAgICAgICAgdXNlZFJlZ2lzdGVycy5zZXQoc2NyYXRjaEdQUiwgZmFsc2UpOwogICAgIAogICAg
IEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvciBnZW4oCiAgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJ
VCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50aWZpZXIsCiAgICAg
ICAgIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVl
UmVncyh0aGlzR1BSKSwgc3R1YkluZm9HUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1
bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGg7CiAgICAgaWYgKEpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CkBAIC00MjQyLDQyICs0MjQ4LDUyIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgIGNhc2UgR2V0
QnlJZFdpdGhUaGlzOiB7CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
Q2VsbFVzZSAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCB0aGlzVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAg
ICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAg
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKLSAgICAgICAgICAgICAgICBzdHVi
SW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIEdQ
UlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVH
UFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEdQUkZsdXNo
ZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5
PiBzdHViSW5mbzsKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3Jh
dGNoOworICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICAgICAgc2NyYXRjaC5lbXBs
YWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgYmFzZUdQUiwgdGhpc1ZhbHVlR1BSLCByZXN1bHRHUFIsIHN0dWJJbmZvR1BSLCBu
b2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wTGlzdCgpKTsKKyAg
ICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJh
c2VHUFIsIHRoaXNWYWx1ZUdQUiwgcmVzdWx0R1BSLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwg
bm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
ICAgICAgICAgICAgIAogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB0aGlz
VmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1Yklu
Zm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJ
QyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0
aGlzKTsKLSAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAg
ICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVHUFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAg
ICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgICAgIHN0ZDo6
b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOworICAgICAgICAgICAgR1BSUmVnIHN0dWJJ
bmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
SW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlw
ZTo6REZHSklUKSkgeworICAgICAgICAgICAgICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7Cisg
ICAgICAgICAgICAgICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0
dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIg
PSBzY3JhdGNoLT5ncHIoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIApAQCAtNDI4NSw3ICs0MzAxLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgbm90
Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChKU1ZhbHVlUmVncyhiYXNlR1BS
KSkpOwogICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2Vs
bChKU1ZhbHVlUmVncyh0aGlzVmFsdWVHUFIpKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHRo
aXNWYWx1ZUdQUiwgcmVzdWx0R1BSLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBub3RDZWxsTGlzdCk7CisgICAgICAgICAgICBjYWNoZWRHZXRCeUlkV2l0aFRoaXMo
bm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB0aGlzVmFsdWVHUFIsIHJlc3VsdEdQUiwg
c3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90
Q2VsbExpc3QpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dEdQUiwgbm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAppbmRleCBjNDA3YjAwYzRkYWI3ZDY3NmEwNWY5ZTNkNTBkZGQxYTcy
MTAwMmFiLi42MWUwYzc3ZGFlMGZlMmJlN2FhN2MzMTBlYzZjOGQxMmU1NTIyYWEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC00NjY1LDcg
KzQ2NjUsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBwYXRjaHBvaW50LT5hcHBl
bmQobV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lz
dGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX251bWJlclRhZywgVmFsdWVSZXA6
OnJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5j
bG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7Ci0gICAgICAgIHBh
dGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRU
eXBlOjpGVExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJl
Z2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMyA6IDA7CiAK
ICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBQdXRCeUlkRmx1c2gsIHdlIG1pZ2h0IHdh
bnQgdG8gbGF0ZS1jbG9iYmVyIHZvbGF0aWxlIHJlZ2lzdGVycy4KICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg0OApAQCAtNDY4OSw3ICs0Njg5
LDE0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAgICAgLy8gSlMgc2V0dGVy
IGNhbGwgSUNzIGdlbmVyYXRlZCBieSB0aGUgUHV0QnlJZCBJQyB3aWxsIG5lZWQgdGhpcy4KICAg
ICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53
aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1
YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5n
cFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9
IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhK
SVRUeXBlOjpGVExKSVQpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gcGFy
YW1zLmdwU2NyYXRjaCgwKTsKKyAgICAgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHBhcmFt
cy5ncFNjcmF0Y2goMSk7CisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2gyR1BSID0gcGFyYW1z
LmdwU2NyYXRjaCgyKTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBhdXRv
IGdlbmVyYXRvciA9IEJveDxKSVRQdXRCeUlkR2VuZXJhdG9yPjo6Y3JlYXRlKAogICAgICAgICAg
ICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1
YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRl
eCwKQEAgLTQ2OTcsMTQgKzQ3MDQsMTUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwgc3R1YkluZm9HUFIsIEdQ
UkluZm86OnBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXIsIGVjbWFNb2RlLAogICAgICAgICAgICAg
ICAgICAgICBwdXRLaW5kKTsKIAotICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVG
YXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0
aChqaXQsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKICAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBhcmFt
cy5hZGRMYXRlUGF0aCgKICAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGpp
dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVz
YWdlIGFsbG93U2NyYXRjaChqaXQpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgc2xvd1BhdGhCZWdpbiA9IGpp
dC5sYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIHNs
b3dQYXRoQ2FsbDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSkgewpAQCAtMTI4NDEsNyArMTI4NDksMTAgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9ub3RDZWxsTWFz
aywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3RlcikpOwogICAg
ICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVwOjpsYXRlUmVnKEdQ
UkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIo
UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKLSAgICAgICAgcGF0Y2hwb2lu
dC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZU
TEpJVCkgPyAxIDogMDsKKyAgICAgICAgaWYgY29uc3RleHByICh0eXBlID09IEFjY2Vzc1R5cGU6
OkluQnlJZCkKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9
IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMiA6IDA7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMSA6IDA7CiAKICAgICAgICAgUmVmUHRy
PFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9IHByZXBhcmVQYXRj
aHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKIApAQCAtMTI4NTcsNyArMTI4NjgsMTMg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg
dGhlIGRpcmVjdCBleGl0IHRhcmdldCBmb3Igb3BlcmF0aW9uIGNhbGxzLgogICAgICAgICAgICAg
ICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0gZXhjZXB0aW9uSGFu
ZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOwogCi0gICAgICAg
ICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6
OkZUTEpJVCkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKKyAgICAgICAg
ICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAg
ICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgICAgICBp
ZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgc3R1YkluZm9HUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAgICAg
ICAgICBpZiBjb25zdGV4cHIgKHR5cGUgPT0gQWNjZXNzVHlwZTo6SW5CeUlkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHBhcmFtcy5ncFNjcmF0Y2goMSk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGF1dG8gcmV0dXJuR1BSID0gcGFyYW1zWzBdLmdw
cigpOwogICAgICAgICAgICAgICAgIGF1dG8gYmFzZSA9IEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5n
cHIoKSk7CiAKQEAgLTEyODk2LDEzICsxMjkxMywxMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgICAgICAgICAgICAgfSgpOwogCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCk7CiAgICAgICAgICAgICAgICAgaWYgY29uc3RleHByICh0eXBlID09IEFj
Y2Vzc1R5cGU6OkluQnlJZCkKKyAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBnZW5lcmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAg
ICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQogICAgICAg
ICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkp
OwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoIUpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQotICAgICAgICAgICAgICAgICAgICAgICAg
c2xvd0Nhc2VzLmFwcGVuZChnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpKTsKLSAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0Lmxh
YmVsKCk7CiAKICAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoCkBAIC0xNTA2OCw3
ICsxNTA4NCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kU29tZVJlZ2lzdGVyKGJhc2UpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQo
bV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdp
c3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVw
OjpsYXRlUmVnKEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7Ci0gICAgICAgIHBhdGNocG9p
bnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpG
VExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVy
cyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMiA6IDA7CiAKICAgICAg
ICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBHZXRCeUlkRmx1c2gvR2V0QnlJZERpcmVjdEZsdXNo
LCB3ZSBtaWdodCBnZXQgc29tZSBwZXJmb3JtYW5jZSBib29zdCBpZiB3ZSBjbGFpbSB0aGF0IGl0
CiAgICAgICAgIC8vIGNsb2JiZXJzIHZvbGF0aWxlIHJlZ2lzdGVycyBsYXRlLiBJdCdzIG5vdCBu
ZWNlc3NhcnkgZm9yIGNvcnJlY3RuZXNzLCB0aG91Z2gsIHNpbmNlIHRoZQpAQCAtMTUwOTgsMTQg
KzE1MTE0LDE5IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAv
LyB0aGUgY2FsbHNpdGUgaW5kZXguCiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5z
Y2hlZHVsZUV4aXRDcmVhdGlvbkZvclVud2luZChwYXJhbXMsIGNhbGxTaXRlSW5kZXgpOwogCi0g
ICAgICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkZUTEpJVCkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAg
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAg
ICAgICAgICAgICBzY3JhdGNoR1BSID0gcGFyYW1zLmdwU2NyYXRjaCgxKTsKKyAgICAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRHZXRCeUlk
R2VuZXJhdG9yPjo6Y3JlYXRlKAogICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCks
ICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIHNl
bWFudGljTm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKICAgICAgICAgICAgICAgICAgICAgcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGlkZW50aWZpZXIsIEpTVmFsdWVSZWdzKHBhcmFt
c1sxXS5ncHIoKSksCiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5n
cHIoKSksIHN0dWJJbmZvR1BSLCB0eXBlKTsKIAotICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+
Z2VuZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJh
dGVGYXN0UGF0aChqaXQsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOwogCiAgICAgICAgICAgICAgICAgcGFyYW1zLmFk
ZExhdGVQYXRoKApAQCAtMTUxMTQsNyArMTUxMzUsOCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gb3B0aW1pemF0aW9uRnVuY3Rpb24g
PSBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24odHlwZSk7CiAKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZU
TEpJVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1
bXAoKS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpM
YWJlbCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CkBAIC0xNTE1OSw3
ICsxNTE4MSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kKG1fbm90Q2VsbE1hc2ssIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86Om5vdENl
bGxNYXNrUmVnaXN0ZXIpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fbnVtYmVyVGFn
LCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAg
ICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMo
KSk7Ci0gICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6
OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQt
Pm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExK
SVQpID8gMiA6IDA7CiAKICAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+
IGV4Y2VwdGlvbkhhbmRsZSA9CiAgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2Vw
dGlvbnMocGF0Y2hwb2ludCk7CkBAIC0xNTE4MiwxNCArMTUyMDQsMTkgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIC8vIHRoZSBjYWxsc2l0ZSBpbmRleC4KICAg
ICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53
aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1
YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5n
cFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSkgeworICAgICAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9
IHBhcmFtcy5ncFNjcmF0Y2goMCk7CisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBw
YXJhbXMuZ3BTY3JhdGNoKDEpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAg
IGF1dG8gZ2VuZXJhdG9yID0gQm94PEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcj46OmNyZWF0
ZSgKICAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCAmc3RhdGUtPmppdENvZGUt
PmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6RlRMSklULCBzZW1hbnRpY05vZGVPcmlnaW4s
IGNhbGxTaXRlSW5kZXgsCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJl
Z2lzdGVycygpLCBpZGVudGlmaWVyLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAogICAg
ICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVlUmVn
cyhwYXJhbXNbMl0uZ3ByKCkpLCBzdHViSW5mb0dQUik7CiAKLSAgICAgICAgICAgICAgICBnZW5l
cmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3It
PmdlbmVyYXRlRmFzdFBhdGgoaml0LCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBh
cmFtcy5hZGRMYXRlUGF0aCgKQEAgLTE1MTk4LDcgKzE1MjI1LDggQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9wdGltaXphdGlvbkZ1
bmN0aW9uID0gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemU7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJ
VCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAo
KS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJl
bCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5oCmluZGV4IDFlMmVmZDU4ZTczYzQ0MGY3MzczMTUzNmQwYWNhMDVhNzgx
M2E2NzQuLmNmMDMzMDdkYjcwODJkM2U5ZTA0YjYyOWZmY2U2MWVmYjFiNzIwYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCkBAIC0xNjUsOSArMTY1LDExIEBAIGNsYXNzIEpJVENv
ZGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SklUQ29kZT4gewogICAgIHsKICAgICAg
ICAgaWYgKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmICghT3B0aW9uczo6dXNlRGF0YUlDKCkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KQogICAgICAgICBy
ZXR1cm4gT3B0aW9uczo6dXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUKCk7CisjZWxzZQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKICAgICB9CiAKICAgICB2aXJ0dWFsIGNvbnN0IERPTUpJ
VDo6U2lnbmF0dXJlKiBzaWduYXR1cmUoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3Iu
Y3BwCmluZGV4IGI2NWE2MDRjMzRmZTFjNTI3MzJhNzJmMzgwZWVkZTNjZDMxZDRiYjkuLmFlNzBk
OTk2OWM4ZjIwNmQzZGM2ZWVlMWIyOWZkMGEyM2NkYjlmZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCkBAIC0xMDUs
MTcgKzEwNSwyMCBAQCB2b2lkIEpJVEJ5SWRHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXIm
IGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKICAgICAgICAgbV9zdHViSW5mby0+bV9j
b2RlUHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwogfQogCi12b2lkIEpJ
VEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdENvbW1vbihNYWNyb0Fzc2VtYmxlciYgaml0LCBz
aXplX3QgaW5saW5lSUNTaXplKQordm9pZCBKSVRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RD
b21tb24oQ0NhbGxIZWxwZXJzJiBqaXQsIHNpemVfdCBpbmxpbmVJQ1NpemUpCiB7Ci0gICAgLy8g
V2UgZ2VuZXJhdGUgdGhlIHNhbWUgY29kZSByZWdhcmRsZXNzIG9mIHdoZXRoZXIgU2hhcmVkSUMg
aXMgZW5hYmxlZCBiZWNhdXNlIHdlIHN0aWxsIG5lZWQgdG8gdXNlIElubGluZUFjY2VzcwotICAg
IC8vIGZvciB0aGUgcGVyZm9ybWFuY2UgcmVhc29uLgogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwo
KTsKLSAgICBzaXplX3Qgc3RhcnRTaXplID0gaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVT
aXplKCk7Ci0gICAgbV9zbG93UGF0aEp1bXAgPSBqaXQuanVtcCgpOwotICAgIHNpemVfdCBqdW1w
U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOwot
ICAgIHNpemVfdCBub3BzVG9FbWl0SW5CeXRlcyA9IGlubGluZUlDU2l6ZSAtIGp1bXBTaXplOwot
ICAgIGppdC5lbWl0Tm9wcyhub3BzVG9FbWl0SW5CeXRlcyk7Ci0gICAgQVNTRVJUKGppdC5tX2Fz
c2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplID09IGlubGluZUlDU2l6ZSk7
CisgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CisgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+
bV9zdHViSW5mb0dQUik7CisgICAgICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVz
cyhtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZD
b2RlUHRyKCkpLCBKSVRTdHViUm91dGluZVB0clRhZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
c2l6ZV90IHN0YXJ0U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpOwor
ICAgICAgICBtX3Nsb3dQYXRoSnVtcCA9IGppdC5qdW1wKCk7CisgICAgICAgIHNpemVfdCBqdW1w
U2l6ZSA9IGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplOwor
ICAgICAgICBzaXplX3Qgbm9wc1RvRW1pdEluQnl0ZXMgPSBpbmxpbmVJQ1NpemUgLSBqdW1wU2l6
ZTsKKyAgICAgICAgaml0LmVtaXROb3BzKG5vcHNUb0VtaXRJbkJ5dGVzKTsKKyAgICAgICAgQVNT
RVJUKGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpIC0gc3RhcnRTaXplID09IGlu
bGluZUlDU2l6ZSk7CisgICAgfQogICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCkBAIC0x
MjgsMTMgKzEzMSw3IEBAIEpJVEdldEJ5SWRHZW5lcmF0b3I6OkpJVEdldEJ5SWRHZW5lcmF0b3Io
CiAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkgIT0gdmFsdWUudGFnR1BSKCkp
OwogfQogCi12b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9B
c3NlbWJsZXImIGppdCkKLXsKLSAgICBBU1NFUlQobV9zdHViSW5mbyk7Ci0gICAgZ2VuZXJhdGVG
YXN0Q29tbW9uKGppdCwgbV9pc0xlbmd0aEFjY2VzcyA/IElubGluZUFjY2Vzczo6c2l6ZUZvckxl
bmd0aEFjY2VzcygpIDogSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGdlbmVyYXRlR2V0QnlJZElubGluZUFjY2VzcyhKSVQmIGppdCwgR1BS
UmVnIHN0dWJJbmZvR1BSLCBKU1ZhbHVlUmVncyBiYXNlSlNSLCBHUFJSZWcgc2NyYXRjaEdQUiwg
SlNWYWx1ZVJlZ3MgcmVzdWx0SlNSKQorc3RhdGljIHZvaWQgZ2VuZXJhdGVHZXRCeUlkSW5saW5l
QWNjZXNzKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEpTVmFsdWVSZWdz
IGJhc2VKU1IsIEdQUlJlZyBzY3JhdGNoR1BSLCBKU1ZhbHVlUmVncyByZXN1bHRKU1IpCiB7CiAg
ICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCks
IEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwogICAgIGF1dG8gZG9J
bmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQ
UiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6
b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQoKSkpOwpAQCAtMTQ0LDYgKzE0MSwy
MSBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3MoSklUJiBqaXQsIEdQ
UlJlZyBzdHViSW5mb0dQUiwgSlNWYWx1ZVJlZwogICAgIGppdC5sb2FkUHJvcGVydHkoYmFzZUpT
Ui5wYXlsb2FkR1BSKCksIHNjcmF0Y2hHUFIsIHJlc3VsdEpTUik7CiB9CiAKK3ZvaWQgSklUR2V0
QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVn
IHNjcmF0Y2hHUFIpCit7CisgICAgQVNTRVJUKG1fc3R1YkluZm8pOworICAgIGlmICghSklUQ29k
ZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKKyAgICAgICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGpp
dCwgbV9pc0xlbmd0aEFjY2VzcyA/IElubGluZUFjY2Vzczo6c2l6ZUZvckxlbmd0aEFjY2Vzcygp
IDogSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAg
ICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsKKyAgICBn
ZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BS
LCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOworICAgIG1fZG9uZSA9IGppdC5sYWJlbCgp
OworfQorCiB2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNG
YXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkluZm8sIEdQUlJlZyBzdHViSW5mb0dQUikK
IHsKICAgICBSRUxFQVNFX0FTU0VSVChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSk7CkBA
IC0xNzQsMTAgKzE4NiwxOSBAQCBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5
SWRXaXRoVGhpc0dlbmVyYXRvcigKICAgICB9CiB9CiAKLXZvaWQgSklUR2V0QnlJZFdpdGhUaGlz
R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJ
VEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMm
IGppdCwgR1BSUmVnIHNjcmF0Y2hHUFIpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwotICAg
IGdlbmVyYXRlRmFzdENvbW1vbihqaXQsIElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5QWNj
ZXNzKCkpOworICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKKyAgICAg
ICAgZ2VuZXJhdGVGYXN0Q29tbW9uKGppdCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlB
Y2Nlc3MoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQ
UiAhPSBJbnZhbGlkR1BSUmVnKTsKKyAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZv
LT5tX3N0dWJJbmZvR1BSKTsKKyAgICBnZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBt
X3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBtX2Jhc2UsIHNjcmF0Y2hHUFIsIG1fdmFsdWUpOwor
ICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCiB2b2lkIEpJVEdldEJ5SWRXaXRoVGhpc0dl
bmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25l
ZCBzdHViSW5mbywgR1BSUmVnIHN0dWJJbmZvR1BSKQpAQCAtMjA4LDYgKzIyOSwxNiBAQCBKSVRQ
dXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9yKAogICAgICAgICBtX3N0dWJJbmZv
LT51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gpOwogfQogCitzdGF0aWMgdm9pZCBnZW5lcmF0
ZVB1dEJ5SWRJbmxpbmVBY2Nlc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQ
UiwgSlNWYWx1ZVJlZ3MgYmFzZUpTUiwgSlNWYWx1ZVJlZ3MgdmFsdWVKU1IsIEdQUlJlZyBzY3Jh
dGNoR1BSLCBHUFJSZWcgc2NyYXRjaDJHUFIpCit7CisgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBl
cnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZz
ZXQoKSksIHNjcmF0Y2hHUFIpOworICAgIGF1dG8gZG9JbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNo
MzIoQ0NhbGxIZWxwZXJzOjpFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNl
U3RydWN0dXJlSUQoKSkpOworICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhz
dHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1
YlJvdXRpbmVQdHJUYWcpOworICAgIGRvSW5saW5lQWNjZXNzLmxpbmsoJmppdCk7CisgICAgaml0
LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJ
bmZvOjpvZmZzZXRPZkJ5SWRTZWxmT2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICBqaXQuc3Rv
cmVQcm9wZXJ0eSh2YWx1ZUpTUiwgYmFzZUpTUi5wYXlsb2FkR1BSKCksIHNjcmF0Y2hHUFIsIHNj
cmF0Y2gyR1BSKTsKK30KKwogdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2Vs
aW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWJJbmZvLCBHUFJSZWcgc3R1
YkluZm9HUFIpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoSklUQ29kZTo6dXNlRGF0YUlDKG1faml0
VHlwZSkpOwpAQCAtMjIxLDE5ICsyNTIsMjMgQEAgdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWIKICAg
ICB1c2luZyBCYXNlbGluZUpJVFJlZ2lzdGVyczo6UHV0QnlJZDo6RmFzdFBhdGg6OnNjcmF0Y2hH
UFI7CiAgICAgdXNpbmcgQmFzZWxpbmVKSVRSZWdpc3RlcnM6OlB1dEJ5SWQ6OkZhc3RQYXRoOjpz
Y3JhdGNoMkdQUjsKIAotICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VK
U1IucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BS
KTsKLSAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6
RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3Ry
dWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsK
LSAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVj
dHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsK
LSAgICBkb0lubGluZUFjY2Vzcy5saW5rKCZqaXQpOwotICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZCeUlk
U2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgaml0LnN0b3JlUHJvcGVydHkodmFsdWVK
U1IsIGJhc2VKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUik7CisgICAg
Z2VuZXJhdGVQdXRCeUlkSW5saW5lQWNjZXNzKGppdCwgc3R1YkluZm9HUFIsIGJhc2VKU1IsIHZh
bHVlSlNSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUik7CiAgICAgbV9kb25lID0gaml0LmxhYmVs
KCk7CiB9CiAKLXZvaWQgSklUUHV0QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNy
b0Fzc2VtYmxlciYgaml0KQordm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gy
R1BSKQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKLSAgICBnZW5lcmF0ZUZhc3RDb21tb24o
aml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eVJlcGxhY2UoKSk7CisgICAgaWYgKCFK
SVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkgeworICAgICAgICBnZW5lcmF0ZUZhc3RDb21t
b24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eVJlcGxhY2UoKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlQoc2NyYXRjaEdQUiAhPSBJbnZhbGlkR1BSUmVn
KTsKKyAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKG1fc3R1YkluZm8pLCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSKTsK
KyAgICBnZW5lcmF0ZVB1dEJ5SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJ
bmZvR1BSLCBtX2Jhc2UsIG1fdmFsdWUsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKKyAgICBt
X2RvbmUgPSBqaXQubGFiZWwoKTsKIH0KIAogVl9KSVRPcGVyYXRpb25fR1NzaUpKQyBKSVRQdXRC
eUlkR2VuZXJhdG9yOjpzbG93UGF0aEZ1bmN0aW9uKCkKQEAgLTI4MSw3ICszMTYsNyBAQCBKSVRE
ZWxCeVZhbEdlbmVyYXRvcjo6SklURGVsQnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIEJhZzxTdHJ1Y3R1cmVTdAogICAgIH0KIH0KIAotdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQordm9pZCBKSVREZWxCeVZh
bEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBB
U1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtMzIzLDcg
KzM1OCw3IEBAIEpJVERlbEJ5SWRHZW5lcmF0b3I6OkpJVERlbEJ5SWRHZW5lcmF0b3IoQ29kZUJs
b2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViCiAgICAgfQogfQogCi12b2lkIEpJVERl
bEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3Zv
aWQgSklURGVsQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGpp
dCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgp
OwpAQCAtMzYwLDcgKzM5NSw3IEBAIEpJVEluQnlWYWxHZW5lcmF0b3I6OkpJVEluQnlWYWxHZW5l
cmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViCiAgICAgfQogfQog
Ci12b2lkIEpJVEluQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJs
ZXImIGppdCkKK3ZvaWQgSklUSW5CeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2Fs
bEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9
IGppdC5sYWJlbCgpOwpAQCAtMzkyLDEwICs0MjcsMzIgQEAgSklUSW5CeUlkR2VuZXJhdG9yOjpK
SVRJbkJ5SWRHZW5lcmF0b3IoCiAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkg
IT0gdmFsdWUudGFnR1BSKCkpOwogfQogCi12b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQorc3RhdGljIHZvaWQgZ2VuZXJhdGVJbkJ5
SWRJbmxpbmVBY2Nlc3MoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQUiwgSlNW
YWx1ZVJlZ3MgYmFzZUpTUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEpTVmFsdWVSZWdzIHJlc3VsdEpT
UikKK3sKKyAgICBqaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlSlNSLnBheWxv
YWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwgc2NyYXRjaEdQUik7CisgICAg
YXV0byBza2lwSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1
YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0
dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKKyAg
ICBqaXQuYm94Qm9vbGVhbih0cnVlLCByZXN1bHRKU1IpOworICAgIGF1dG8gZmluaXNoZWQgPSBq
aXQuanVtcCgpOworCisgICAgc2tpcElubGluZUFjY2Vzcy5saW5rKCZqaXQpOworICAgIGppdC5m
YXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1Yklu
Zm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOworCisgICAgZmlu
aXNoZWQubGluaygmaml0KTsKK30KKwordm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzY3JhdGNoR1BSKQogewogICAgIEFT
U0VSVChtX3N0dWJJbmZvKTsKLSAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVBY2Nl
c3M6OnNpemVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKKyAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJ
QyhtX2ppdFR5cGUpKSB7CisgICAgICAgIGdlbmVyYXRlRmFzdENvbW1vbihqaXQsIElubGluZUFj
Y2Vzczo6c2l6ZUZvclByb3BlcnR5QWNjZXNzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgQVNTRVJUKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7CisgICAgbV9zdGFydCA9
IGppdC5sYWJlbCgpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0ciht
X3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CisgICAgZ2VuZXJhdGVJbkJ5
SWRJbmxpbmVBY2Nlc3Moaml0LCBtX3N0dWJJbmZvLT5tX3N0dWJJbmZvR1BSLCBtX2Jhc2UsIHNj
cmF0Y2hHUFIsIG1fdmFsdWUpOworICAgIG1fZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCiB2b2lk
IEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYg
aml0LCB1bnNpZ25lZCBzdHViSW5mbywgR1BSUmVnIHN0dWJJbmZvR1BSKQpAQCAtNDEwLDE3ICs0
NjcsOCBAQCB2b2lkIEpJVEluQnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zh
c3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHViSQogICAgIHVzaW5nIEJhc2VsaW5lSklUUmVn
aXN0ZXJzOjpJbkJ5SWQ6OnJlc3VsdEpTUjsKICAgICB1c2luZyBCYXNlbGluZUpJVFJlZ2lzdGVy
czo6SW5CeUlkOjpzY3JhdGNoR1BSOwogCi0gICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25l
OwotCi0gICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUpTUi5wYXlsb2Fk
R1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgIGF1
dG8gc2tpcElubGluZUFjY2VzcyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Ok5vdEVxdWFs
LCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVy
ZVN0dWJJbmZvOjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmVJRCgpKSk7Ci0gICAg
aml0LmJveEJvb2xlYW4odHJ1ZSwgcmVzdWx0SlNSKTsKLSAgICBhdXRvIGZpbmlzaGVkID0gaml0
Lmp1bXAoKTsKKyAgICBnZW5lcmF0ZUluQnlJZElubGluZUFjY2VzcyhqaXQsIHN0dWJJbmZvR1BS
LCBiYXNlSlNSLCBzY3JhdGNoR1BSLCByZXN1bHRKU1IpOwogCi0gICAgc2tpcElubGluZUFjY2Vz
cy5saW5rKCZqaXQpOwotICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHVi
SW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1YlJv
dXRpbmVQdHJUYWcpOwotCi0gICAgZmluaXNoZWQubGluaygmaml0KTsKICAgICBtX2RvbmUgPSBq
aXQubGFiZWwoKTsKIH0KIApAQCAtNDUyLDcgKzUwMCw3IEBAIEpJVEluc3RhbmNlT2ZHZW5lcmF0
b3I6OkpJVEluc3RhbmNlT2ZHZW5lcmF0b3IoCiAgICAgfQogfQogCi12b2lkIEpJVEluc3RhbmNl
T2ZHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQg
SklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGpp
dCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgp
OwpAQCAtNDkxLDcgKzUzOSw3IEBAIEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpKSVRHZXRCeVZhbEdl
bmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmFnPFN0cnVjdHVyZVN0CiAgICAgfQogfQog
Ci12b2lkIEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1i
bGVyJiBqaXQpCit2b2lkIEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEND
YWxsSGVscGVycyYgaml0KQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0
ID0gaml0LmxhYmVsKCk7CkBAIC01MzEsNyArNTc5LDcgQEAgSklUUHV0QnlWYWxHZW5lcmF0b3I6
OkpJVFB1dEJ5VmFsR2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsb2NrLCBCYWc8U3RydWN0dXJl
U3QKICAgICB9CiB9CiAKLXZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8p
OwogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKQEAgLTU2OSw3ICs2MTcsNyBAQCBKSVRQcml2
YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3I6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcihD
b2RlQmxvY2sqIGNvZGVCbAogICAgIH0KIH0KIAotdm9pZCBKSVRQcml2YXRlQnJhbmRBY2Nlc3NH
ZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklU
UHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVy
cyYgaml0KQogewogICAgIEFTU0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0Lmxh
YmVsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNh
Y2hlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hl
R2VuZXJhdG9yLmgKaW5kZXggNTI0ZjliMDQ5ZTBmM2YzMWMyOTZkYzRkNGY3MmU3NjhiZWVlM2I1
Yy4uZDk3NTI5ZTBkYmEwOTk4ZWEwYTk3YjA1ZjgzYjg4NGFhODRiYjUxYSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaApAQCAt
MjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShKSVQpCiAKICNpbmNsdWRlICJBc3NlbWJseUhlbHBl
cnMuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJDb2RlT3JpZ2luLmgi
CiAjaW5jbHVkZSAiSklUT3BlcmF0aW9uVmFsaWRhdGlvbi5oIgogI2luY2x1ZGUgIkpJVE9wZXJh
dGlvbnMuaCIKQEAgLTU2LDEzICs1NywxMyBAQCBjbGFzcyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRv
ciB7CiBwdWJsaWM6CiAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdHViSW5mbzsgfQogCi0gICAgdm9pZCByZXBvcnRTbG93UGF0aENhbGwoTWFjcm9B
c3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4sIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwp
CisgICAgdm9pZCByZXBvcnRTbG93UGF0aENhbGwoQ0NhbGxIZWxwZXJzOjpMYWJlbCBzbG93UGF0
aEJlZ2luLCBDQ2FsbEhlbHBlcnM6OkNhbGwgY2FsbCkKICAgICB7CiAgICAgICAgIG1fc2xvd1Bh
dGhCZWdpbiA9IHNsb3dQYXRoQmVnaW47CiAgICAgICAgIG1fc2xvd1BhdGhDYWxsID0gY2FsbDsK
ICAgICB9CiAgICAgCi0gICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIHNsb3dQYXRoQmVnaW4oKSBj
b25zdCB7IHJldHVybiBtX3Nsb3dQYXRoQmVnaW47IH0KKyAgICBDQ2FsbEhlbHBlcnM6OkxhYmVs
IHNsb3dQYXRoQmVnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nsb3dQYXRoQmVnaW47IH0KIAogICAg
IHZvaWQgZmluYWxpemUoCiAgICAgICAgIExpbmtCdWZmZXImIGZhc3RQYXRoTGlua0J1ZmZlciwg
TGlua0J1ZmZlciYgc2xvd1BhdGhMaW5rQnVmZmVyLApAQCAtNzgsMTAgKzc5LDEwIEBAIGNsYXNz
IEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogbV9zdHVi
SW5mbyB7IG51bGxwdHIgfTsKIAogcHVibGljOgotICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBt
X3N0YXJ0OwotICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2RvbmU7Ci0gICAgTWFjcm9Bc3Nl
bWJsZXI6OkxhYmVsIG1fc2xvd1BhdGhCZWdpbjsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBt
X3Nsb3dQYXRoQ2FsbDsKKyAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIG1fc3RhcnQ7CisgICAgQ0Nh
bGxIZWxwZXJzOjpMYWJlbCBtX2RvbmU7CisgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBtX3Nsb3dQ
YXRoQmVnaW47CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG1fc2xvd1BhdGhDYWxsOwogfTsKIAog
Y2xhc3MgSklUQnlJZEdlbmVyYXRvciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7
CkBAIC05Myw3ICs5NCw3IEBAIGNsYXNzIEpJVEJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IgewogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVn
cyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKIAogcHVibGljOgotICAgIE1hY3JvQXNzZW1i
bGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNs
b3dQYXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAu
aXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcDsKQEAgLTEwNCwxMyArMTA1
LDEzIEBAIGNsYXNzIEpJVEJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IgewogICAgIAogcHJvdGVjdGVkOgogICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0Q29t
bW9uKE1hY3JvQXNzZW1ibGVyJiwgc2l6ZV90IHNpemUpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0
Q29tbW9uKENDYWxsSGVscGVycyYsIHNpemVfdCBzaXplKTsKICAgICAKICAgICBKU1ZhbHVlUmVn
cyBtX2Jhc2U7CiAgICAgSlNWYWx1ZVJlZ3MgbV92YWx1ZTsKIAogcHVibGljOgotICAgIE1hY3Jv
QXNzZW1ibGVyOjpKdW1wIG1fc2xvd1BhdGhKdW1wOworICAgIENDYWxsSGVscGVyczo6SnVtcCBt
X3Nsb3dQYXRoSnVtcDsKIH07CiAKIGNsYXNzIEpJVEdldEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBw
dWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CkBAIC0xMjEsNyArMTIyLDcgQEAgY2xhc3MgSklUR2V0
QnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKICAgICAgICAg
Q29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4s
IENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFi
bGVJZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1
ZSwgR1BSUmVnIHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBlKTsKICAgICAKLSAgICB2b2lkIGdlbmVy
YXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgo
Q0NhbGxIZWxwZXJzJiwgR1BSUmVnIHNjcmF0Y2hHUFIpOwogICAgIHZvaWQgZ2VuZXJhdGVCYXNl
bGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYsIHVuc2lnbmVkIHN0dWJJbmZvQ29uc3RhbnQsIEdQUlJl
ZyBzdHViSW5mb0dQUik7CiAKIHByaXZhdGU6CkBAIC0xMzYsOCArMTM3LDggQEAgY2xhc3MgSklU
R2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVEJ5SWRHZW5lcmF0b3Ig
ewogICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwg
Q29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3Rl
cnMsIENhY2hlYWJsZUlkZW50aWZpZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBKU1Zh
bHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB0aGlzUmVncywgR1BSUmVnIHN0dWJJbmZvR1BSKTsK
IAorICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBHUFJSZWcgc2NyYXRj
aEdQUik7CiAgICAgdm9pZCBnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiwgdW5z
aWduZWQgc3R1YkluZm9Db25zdGFudCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKLSAgICB2b2lkIGdl
bmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKIH07CiAKIGNsYXNzIEpJVFB1dEJ5SWRH
ZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CkBAIC0xNDgsNyArMTQ5
LDcgQEAgY2xhc3MgSklUUHV0QnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRCeUlkR2Vu
ZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJ
VFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2Vk
UmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNl
LCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaCwg
RUNNQU1vZGUsIFB1dEtpbmQpOwogICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNy
b0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmLCBH
UFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSKTsKICAgICB2b2lkIGdlbmVyYXRl
QmFzZWxpbmVEYXRhSUNGYXN0UGF0aChKSVQmLCB1bnNpZ25lZCBzdHViSW5mb0NvbnN0YW50LCBH
UFJSZWcgc3R1YkluZm9HUFIpOwogICAgIAogICAgIFZfSklUT3BlcmF0aW9uX0dTc2lKSkMgc2xv
d1BhdGhGdW5jdGlvbigpOwpAQCAtMTY3LDcgKzE2OCw3IEBAIGNsYXNzIEpJVFB1dEJ5VmFsR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAg
Q29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4s
IENhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0
ZXJzLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBwcm9wZXJ0eSwgSlNW
YWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgYXJyYXlQcm9maWxlR1BSLCBHUFJSZWcgc3R1YkluZm9H
UFIpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX3Nsb3dQYXRoSnVtcC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBt
X3Nsb3dQYXRoSnVtcC5tX2p1bXA7CkBAIC0xNzUsMTIgKzE3NiwxMiBAQCBjbGFzcyBKSVRQdXRC
eVZhbEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAK
ICAgICB2b2lkIGZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoTGlua0J1ZmZlciwgTGlua0J1
ZmZlciYgc2xvd1BhdGhMaW5rQnVmZmVyKTsKIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChN
YWNyb0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMm
KTsKIAogICAgIEpTVmFsdWVSZWdzIG1fYmFzZTsKICAgICBKU1ZhbHVlUmVncyBtX3ZhbHVlOwog
Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAg
Q0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogY2xhc3Mg
SklURGVsQnlWYWxHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0
b3IgewpAQCAtMTkyLDcgKzE5Myw3IEBAIGNsYXNzIEpJVERlbEJ5VmFsR2VuZXJhdG9yIGZpbmFs
IDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwg
QmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5k
ZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVlUmVn
cyBiYXNlLCBKU1ZhbHVlUmVncyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcg
c3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVt
cCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlz
U2V0KCkpOwogICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMjAxLDkg
KzIwMiw5IEBAIGNsYXNzIEpJVERlbEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElu
bGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVm
ZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7
CiAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lk
IGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6
UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKKyAgICBDQ2FsbEhlbHBlcnM6OlBhdGNoYWJs
ZUp1bXAgbV9zbG93UGF0aEp1bXA7CiB9OwogCiBjbGFzcyBKSVREZWxCeUlkR2VuZXJhdG9yIGZp
bmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKQEAgLTIxNSw3ICsyMTYsNyBA
QCBjbGFzcyBKSVREZWxCeUlkR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hl
R2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPios
IEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1
c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyBi
YXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0
Y2gpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX3Nsb3dQYXRoSnVtcC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBt
X3Nsb3dQYXRoSnVtcC5tX2p1bXA7CkBAIC0yMjQsOSArMjI1LDkgQEAgY2xhc3MgSklURGVsQnlJ
ZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAg
dm9pZCBmaW5hbGl6ZSgKICAgICAgICAgTGlua0J1ZmZlciYgZmFzdFBhdGhMaW5rQnVmZmVyLCBM
aW5rQnVmZmVyJiBzbG93UGF0aExpbmtCdWZmZXIpOwogCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQ
YXRoKE1hY3JvQXNzZW1ibGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVs
cGVycyYpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1
bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsK
IAogY2xhc3MgSklUSW5CeVZhbEdlbmVyYXRvciA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvciB7CkBAIC0yMzgsNyArMjM5LDcgQEAgY2xhc3MgSklUSW5CeVZhbEdlbmVyYXRvciA6IHB1
YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxT
dHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBB
Y2Nlc3NUeXBlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAgICAgICAgSlNW
YWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdzIHJlc3VsdCwg
R1BSUmVnIHN0dWJJbmZvR1BSKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRo
SnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0
CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwog
ICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMjQ3LDkgKzI0OCw5IEBA
IGNsYXNzIEpJVEluQnlWYWxHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0
b3IgewogICAgIHZvaWQgZmluYWxpemUoCiAgICAgICAgIExpbmtCdWZmZXImIGZhc3RQYXRoTGlu
a0J1ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhMaW5rQnVmZmVyKTsKIAotICAgIHZvaWQgZ2Vu
ZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0
aChDQ2FsbEhlbHBlcnMmKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG1f
c2xvd1BhdGhKdW1wOworICAgIENDYWxsSGVscGVyczo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRo
SnVtcDsKIH07CiAKIGNsYXNzIEpJVEluQnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRC
eUlkR2VuZXJhdG9yIHsKQEAgLTI2MCw3ICsyNjEsNyBAQCBjbGFzcyBKSVRJbkJ5SWRHZW5lcmF0
b3IgZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CiAgICAgICAgIENvZGVCbG9jayos
IEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUlu
ZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ2FjaGVhYmxlSWRlbnRpZmll
ciwKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBz
dHViSW5mb0dQUik7CiAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXIm
KTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiwgR1BSUmVnIHNjcmF0
Y2hHUFIpOwogICAgIHZvaWQgZ2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYsIHVu
c2lnbmVkIHN0dWJJbmZvQ29uc3RhbnQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiB9OwogCkBAIC0y
NzQsOSArMjc1LDkgQEAgY2xhc3MgSklUSW5zdGFuY2VPZkdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgICAgIEdQUlJlZyB2YWx1ZSwgR1BSUmVn
IHByb3RvdHlwZSwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBz
Y3JhdGNoMiwKICAgICAgICAgYm9vbCBwcm90b3R5cGVJc0tub3duT2JqZWN0ID0gZmFsc2UpOwog
ICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZv
aWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAotICAgIE1hY3JvQXNzZW1ibGVy
OjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQ
YXRoSnVtcCgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9q
dW1wLmlzU2V0KCkpOwogICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAt
Mjg0LDcgKzI4NSw3IEBAIGNsYXNzIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3IgZmluYWwgOiBwdWJs
aWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogCiAgICAgdm9pZCBmaW5hbGl6ZShMaW5rQnVm
ZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7
CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKKyAg
ICBDQ2FsbEhlbHBlcnM6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CiB9OwogCiBjbGFz
cyBKSVRHZXRCeVZhbEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvciB7CkBAIC0yOTYsNyArMjk3LDcgQEAgY2xhc3MgSklUR2V0QnlWYWxHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sq
LCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJ
bmRleCwgQWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAg
ICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHByb3BlcnR5LCBKU1ZhbHVlUmVncyBy
ZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBz
bG93UGF0aEp1bXAoKSBjb25zdAorICAgIENDYWxsSGVscGVyczo6SnVtcCBzbG93UGF0aEp1bXAo
KSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fc2xvd1BhdGhKdW1wLm1fanVtcC5pc1Nl
dCgpKTsKICAgICAgICAgcmV0dXJuIG1fc2xvd1BhdGhKdW1wLm1fanVtcDsKQEAgLTMwNSwxMiAr
MzA2LDEyIEBAIGNsYXNzIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElu
bGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVm
ZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7
CiAgICAgCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CisgICAg
dm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwogCiAgICAgSlNWYWx1ZVJlZ3Mg
bV9iYXNlOwogICAgIEpTVmFsdWVSZWdzIG1fcmVzdWx0OwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6
OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFi
bGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogY2xhc3MgSklUUHJpdmF0ZUJyYW5kQWNjZXNz
R2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKQEAgLTMy
Miw3ICszMjMsNyBAQCBjbGFzcyBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3IgZmluYWwg
OiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgICAgICBDb2RlQmxvY2sqLCBC
YWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRl
eCwgQWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAg
IEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIGJyYW5kLCBHUFJSZWcgc3R1YkluZm9HUFIp
OwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX3Nsb3dQYXRoSnVtcC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Ns
b3dQYXRoSnVtcC5tX2p1bXA7CkBAIC0zMzEsOSArMzMyLDkgQEAgY2xhc3MgSklUUHJpdmF0ZUJy
YW5kQWNjZXNzR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9y
IHsKICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVmZmVyJiBmYXN0UGF0aExpbmtC
dWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAgICAgCi0gICAgdm9pZCBn
ZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQ
YXRoKENDYWxsSGVscGVycyYpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAg
bV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1Bh
dGhKdW1wOwogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKaW5kZXggODI3ZjFhNGQ5YzFlY2M4OWQzMjA0
MzMzNjE1YzNjYWVjMjJhMGU2OC4uZGRhMDkxYTI3ZjM5YjU5YTAxZWRiNTQ4Y2EzMmZjZjc3N2Jl
NzE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTQz
NCw5ICs0MzQsNiBAQCB2b2lkIE9wdGlvbnM6OnJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMoKQog
ICAgIE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRHQygpID0gZmFsc2U7CiAjZW5kaWYKIAotICAgIGlm
ICghT3B0aW9uczo6dXNlRGF0YUlDKCkpCi0gICAgICAgIE9wdGlvbnM6OnVzZURhdGFJQ0luT3B0
aW1pemluZ0pJVCgpID0gZmFsc2U7Ci0KICAgICAvLyBBdCBpbml0aWFsaXphdGlvbiB0aW1lLCB3
ZSBtYXkgZGVjaWRlIHRoYXQgdXNlSklUIHNob3VsZCBiZSBmYWxzZSBmb3IgYW55CiAgICAgLy8g
bnVtYmVyIG9mIHJlYXNvbnMgKGluY2x1ZGluZyBmYWlsaW5nIHRvIGFsbG9jYXRlIEpJVCBtZW1v
cnkpLCBhbmQgdGhlcmVmb3JlLAogICAgIC8vIHdpbGwgLyBzaG91bGQgbm90IGJlIGFibGUgdG8g
ZW5hYmxlIGFueSBKSVQgcmVsYXRlZCBzZXJ2aWNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zTGlzdC5oCmluZGV4IDgyNWEyYjY0ODdlYmRkZDI1NTI1ZTI2YzQwODQz
YTA1MmE3MDYwMmIuLjY5NGZlMzA5NGU3ZDUxNWRlYzQ5MmZhZGEzNzE5MTAxNmY3MzQxOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtNTMxLDcg
KzUzMSw2IEBAIGJvb2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7CiAgICAgdihCb29s
LCBkdW1wQmFzZWxpbmVKSVRTaXplU3RhdGlzdGljcywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikg
XAogICAgIHYoQm9vbCwgZHVtcERGR0pJVFNpemVTdGF0aXN0aWNzLCBmYWxzZSwgTm9ybWFsLCBu
dWxscHRyKSBcCiAgICAgdihCb29sLCB2ZXJib3NlRXhlY3V0YWJsZVBvb2xBbGxvY2F0aW9uLCBm
YWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCi0gICAgdihCb29sLCB1c2VEYXRhSUMsIGZhbHNlLCBO
b3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHVzZURhdGFJQ0luT3B0aW1pemluZ0pJVCwg
ZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlRGF0YUlDU2hhcmluZywg
ZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdXNlQmFzZWxpbmVKSVRDb2Rl
U2hhcmluZywgaXM2NEJpdCgpLCBOb3JtYWwsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0MGQ3ZDJjYzc0ZTljOTZkNTU3Njlm
YzIwMDQ0NjU5YWQzNTBkNzVhLi5hNDE5YmI0NTkzNGNiM2Y1YTQxNzgxNWJmZWY3Y2UxMGU2MGVm
YmRkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMjItMDMtMjIgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBbSlNDXSBUZXN0IERGRyAvIEZUTCBEYXRhSUMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTIyNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0
cmVzcy10ZXN0czoKKwogMjAyMi0wMy0yMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBEaXNhYmxlIHRoZSA8bW9kZWw+IGVsZW1lbnQgaW4gQ2FwdGl2ZSBQ
b3J0YWwgbW9kZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVz
dHMgYi9Ub29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCmluZGV4IGRkNzEyOGVlNDE0
NDVhZmNjZDc5NDYwNmQ1OTE2M2YzZDk1MzFkNDUuLjkxNjY1OGIxYTI1YTY5MTAwZjk1ZTgyZGE5
NjVmYmVkZDBiYWNiNTggMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpAQCAtMTA5MSw3
ICsxMDkxLDcgQEAgQkFTRV9NT0RFUyA9IFsKICAgICAgICAgIkZUTE5vQ0pJVCIsCiAgICAgICAg
ICJtaXNjLWZ0bC1uby1jaml0IiwKICAgICAgICAgWwotICAgICAgICAgICAgIi0tdXNlRGF0YUlD
PXRydWUiLAorICAgICAgICAgICAgIi0tdXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUPXRydWUiLAog
ICAgICAgICBdICsKICAgICAgICAgRlRMX09QVElPTlMgKwogICAgICAgICBOT19DSklUX09QVElP
TlMKQEAgLTExMTcsNyArMTExNyw3IEBAIEJBU0VfTU9ERVMgPSBbCiAgICAgICAgICAgICAiLS12
YWxpZGF0ZUJDRT10cnVlIiwKICAgICAgICAgICAgICItLXVzZVNhbXBsaW5nUHJvZmlsZXI9dHJ1
ZSIsCiAgICAgICAgICAgICAiLS1haXJGb3JjZUlSQ0FsbG9jYXRvcj10cnVlIiwKLSAgICAgICAg
ICAgICItLXVzZURhdGFJQz10cnVlIiwKKyAgICAgICAgICAgICItLXVzZURhdGFJQ0luT3B0aW1p
emluZ0pJVD10cnVlIiwKICAgICAgICAgXSArCiAgICAgICAgIEZUTF9PUFRJT05TICsKICAgICAg
ICAgTk9fQ0pJVF9PUFRJT05TCkBAIC0xMTc4LDcgKzExNzgsNyBAQCBCQVNFX01PREVTID0gWwog
ICAgICAgICAgICAgIi0tYWlyRm9yY2VCcmlnZ3NBbGxvY2F0b3I9dHJ1ZSIsCiAgICAgICAgICAg
ICAiLS11c2VSYW5kb21pemluZ0V4ZWN1dGFibGVJc2xhbmRBbGxvY2F0aW9uPXRydWUiLAogICAg
ICAgICAgICAgIi0tZm9yY2VQb2x5UHJvdG89dHJ1ZSIsCi0gICAgICAgICAgICAiLS11c2VEYXRh
SUM9dHJ1ZSIsCisgICAgICAgICAgICAiLS11c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1ZSIs
CiAgICAgICAgIF0gKwogICAgICAgICBGVExfT1BUSU9OUyArCiAgICAgICAgIEVBR0VSX09QVElP
TlMgKwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCAwZDI2YjczNzQ1YmI3NDAxNjhjMDVkMDdiYzc4YzY5MWY1MzE3MDEwLi44NjdjZTFiN2U5
MGYzNDA4MWYwODhjZjNlZWJmMzQ0NDA2ZjRhZjhkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTIy
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gVGVz
dCBERkcgLyBGVEwgRGF0YUlDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzEyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIG1pY3JvYmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qczoKKyAgICAg
ICAgKiBtaWNyb2JlbmNobWFya3MvcmljaGFyZHMtdHJ5LWNhdGNoLmpzOgorCiAyMDIyLTAzLTIx
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVm
ZXJlbmNlRXJyb3Igd2hlbiB1c2luZyBleHRyYSBwYXJlbnMgaW4gY2xhc3MgZmllbGRzCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qcyBiL0pT
VGVzdHMvbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1ZS12YXJhcmdzLmpzCmluZGV4IGE4ZGU0OWJi
YjRjMGY1MGMzOWJjYWIzZDk4ODAzMDU3YjkxNDdhNjguLjEwYmY3YWRiM2JhOTQ2YWQ0MDYzYjlh
YTIwNzMyYTI3ZGFkOTc3YjkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2Rl
bHRhYmx1ZS12YXJhcmdzLmpzCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2RlbHRhYmx1
ZS12YXJhcmdzLmpzCkBAIC0xLDUgKzEsNSBAQAogLy9AIHNraXAgaWYgJG1vZGVsID09ICJBcHBs
ZSBXYXRjaCBTZXJpZXMgMyIgIyBhZGRlZCBieSBtYXJrLWpzYy1zdHJlc3MtdGVzdC5weQotLy9A
IHJlcXVpcmVPcHRpb25zKCItLXVzZURhdGFJQz10cnVlIiwgIi0tdXNlRGF0YUlDU2hhcmluZz10
cnVlIikKKy8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1
ZSIsICItLXVzZURhdGFJQ1NoYXJpbmc9dHJ1ZSIpCiAKIC8vIENvcHlyaWdodCAyMDA4IHRoZSBW
OCBwcm9qZWN0IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAvLyBDb3B5cmlnaHQgMTk5
NiBKb2huIE1hbG9uZXkgYW5kIE1hcmlvIFdvbGN6a28uCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9yaWNoYXJkcy10cnktY2F0Y2guanMgYi9KU1Rlc3RzL21pY3JvYmVuY2ht
YXJrcy9yaWNoYXJkcy10cnktY2F0Y2guanMKaW5kZXggY2IyZTI5ZWE4YjAzZDM1YzRkOTU2MmZm
NGEyMGNkMmMwZTE3OTQyNi4uNjEwZDYyNjg0OWIxN2Q3NGMzMzY0YzExNmJkMmU0NzMxY2MyZTE1
NiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmljaGFyZHMtdHJ5LWNhdGNo
LmpzCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRyeS1jYXRjaC5qcwpA
QCAtMSw1ICsxLDUgQEAKIC8vQCBza2lwIGlmICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVz
IDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3RyZXNzLXRlc3QucHkKLS8vQCByZXF1aXJlT3B0aW9u
cygiLS11c2VEYXRhSUM9dHJ1ZSIsICItLXVzZURhdGFJQ1NoYXJpbmc9dHJ1ZSIpCisvL0AgcmVx
dWlyZU9wdGlvbnMoIi0tdXNlRGF0YUlDSW5PcHRpbWl6aW5nSklUPXRydWUiLCAiLS11c2VEYXRh
SUNTaGFyaW5nPXRydWUiKQogCiAvLyBDb3B5cmlnaHQgMjAwNi0yMDA4IHRoZSBWOCBwcm9qZWN0
IGF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455434</attachid>
            <date>2022-03-22 15:02:13 -0700</date>
            <delta_ts>2022-03-22 23:47:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231224-20220322150212.patch</filename>
            <type>text/plain</type>
            <size>77353</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZTIwYjdiMTJiMzg2NWRjZDg1ZjQyNjA4N2ZlNzE4NGZlNzUxMDc4Li4wYTUzOTQ1ZGU1MmIyYmE3
YjRjYWRmYzRhMjI0N2NmZmQxNDFmMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2MyBAQAorMjAyMi0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFRlc3QgREZHIC8gRlRMIERhdGFJQworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZXZpdmVzIERhdGFJ
QyBpbiBERkcgYW5kIEZUTCwgYW5kIHJlLWVuYWJsZSB0ZXN0aW5nIHRvIG1ha2UgaXQgdXNhYmxl
CisgICAgICAgIGZvciB1bmxpbmtlZCBERkcuIEN1cnJlbnRseSwgb25seSB4NjQgLyBBUk02NCBh
cmUgc3VwcG9ydGVkLgorCisgICAgICAgICogYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW5saW5lQWNjZXNzOjppc0NhY2hlYWJsZUFycmF5TGVuZ3RoKToKKyAgICAg
ICAgKEpTQzo6SW5saW5lQWNjZXNzOjppc0NhY2hlYWJsZVN0cmluZ0xlbmd0aCk6CisgICAgICAg
IChKU0M6OklubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNzKToKKyAgICAgICAg
KEpTQzo6SW5saW5lQWNjZXNzOjpyZXNldFN0dWJBc0p1bXBJbkFjY2Vzcyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlR2V0QnlJZEZsdXNoKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZUluQnlJZCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6Cisg
ICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRC
eUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdp
dGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNhY2hlZFB1dEJ5SWQpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAgICAgICAgKiBqaXQvSklU
Q29kZS5oOgorICAgICAgICAoSlNDOjpKSVRDb2RlOjp1c2VEYXRhSUMpOgorICAgICAgICAqIGpp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5l
cmF0b3I6OmdlbmVyYXRlRmFzdENvbW1vbik6CisgICAgICAgIChKU0M6OmdlbmVyYXRlR2V0QnlJ
ZElubGluZUFjY2Vzcyk6CisgICAgICAgIChKU0M6OkpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpnZW5lcmF0ZVB1dEJ5SWRJbmxpbmVB
Y2Nlc3MpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2Vs
aW5lRGF0YUlDRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpn
ZW5lcmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6Omdl
bmVyYXRlRmFzdFBhdGgpOgorICAgICAgICAoSlNDOjpKSVREZWxCeUlkR2VuZXJhdG9yOjpnZW5l
cmF0ZUZhc3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUSW5CeVZhbEdlbmVyYXRvcjo6Z2VuZXJh
dGVGYXN0UGF0aCk6CisgICAgICAgIChKU0M6OmdlbmVyYXRlSW5CeUlkSW5saW5lQWNjZXNzKToK
KyAgICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKToKKyAg
ICAgICAgKEpTQzo6SklUSW5CeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFz
dFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yOjpnZW5lcmF0ZUZh
c3RQYXRoKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFz
dFBhdGgpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aCk6CisgICAgICAgIChKU0M6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aCk6CisgICAgICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6
CisgICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpyZXBvcnRTbG93UGF0aENh
bGwpOgorICAgICAgICAoSlNDOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6c2xvd1BhdGhCZWdp
biBjb25zdCk6CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcCBj
b25zdCk6CisgICAgICAgIChKU0M6OkpJVEluQnlWYWxHZW5lcmF0b3I6OnNsb3dQYXRoSnVtcCBj
b25zdCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0
aW9uczo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgICogcnVudGltZS9PcHRp
b25zTGlzdC5oOgorCiAyMDIyLTAzLTIxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0pTQ10gUmVmZXJlbmNlRXJyb3Igd2hlbiB1c2luZyBleHRyYSBwYXJl
bnMgaW4gY2xhc3MgZmllbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvSW5saW5lQWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9J
bmxpbmVBY2Nlc3MuY3BwCmluZGV4IGZiNWVlYTJkY2JhZjJjNDBhMDdmYWNiN2Q1NzkzMzg4YzVj
Mjc2YWEuLjliYTBjOTIwZWIzMmUzYmY4MzQ0MTc1NzY4ZTU5ZjE4Mzk3MTdjOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuY3BwCkBAIC0yOTks
NyArMjk5LDcgQEAgYm9vbCBJbmxpbmVBY2Nlc3M6OmlzQ2FjaGVhYmxlQXJyYXlMZW5ndGgoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmYKICAgICBpZiAoIXN0dWJJbmZvLmhh
c0NvbnN0YW50SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNv
ZGVCbG9jay0+aml0VHlwZSgpID09IEpJVFR5cGU6OkJhc2VsaW5lSklUKQorICAgIGlmIChjb2Rl
QmxvY2stPnVzZURhdGFJQygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWhh
c0ZyZWVSZWdpc3RlcihzdHViSW5mbykpCkBAIC0zNDAsNyArMzQwLDcgQEAgYm9vbCBJbmxpbmVB
Y2Nlc3M6OmlzQ2FjaGVhYmxlU3RyaW5nTGVuZ3RoKENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1
Y3R1cmVTdHViSW4KICAgICBpZiAoIXN0dWJJbmZvLmhhc0NvbnN0YW50SWRlbnRpZmllcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgpID09IEpJ
VFR5cGU6OkJhc2VsaW5lSklUKQorICAgIGlmIChjb2RlQmxvY2stPnVzZURhdGFJQygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gaGFzRnJlZVJlZ2lzdGVyKHN0dWJJbmZv
KTsKQEAgLTQyOCwyNCArNDI4LDYgQEAgdm9pZCBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1
bXBJbkFjY2Vzc05vdFVzaW5nSW5saW5lQWNjZXNzKENvZGVCbG9jayogY29kZUIKIHZvaWQgSW5s
aW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1YlJv
dXRpbmVQdHJUYWc+IHRhcmdldCkKIHsKICAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSkg
ewotICAgICAgICAvLyBJZiBpdCBpcyBub3QgR2V0QnlJZC1saWtlLXRoaW5nLCB3ZSBkbyBub3Qg
ZW1pdCBub3Agc2xlZCAoZS5nLiBHZXRCeVZhbCkuCi0gICAgICAgIC8vIFRoZSBjb2RlIGlzIGFs
cmVhZHkgYW4gaW5kaXJlY3QganVtcCwgYW5kIG9ubHkgdGhpbmcgd2Ugc2hvdWxkIGRvIGlzIHJl
cGxhY2luZyBtX2NvZGVQdHIuCi0gICAgICAgIGlmIChjb2RlQmxvY2stPmppdFR5cGUoKSAhPSBK
SVRUeXBlOjpCYXNlbGluZUpJVCAmJiBzdHViSW5mby5oYXNDb25zdGFudElkZW50aWZpZXIpIHsK
LSAgICAgICAgICAgIC8vIElmIG1fY29kZVB0ciBpcyBwb2ludGluZyB0byBzdHViSW5mby5zbG93
UGF0aFN0YXJ0TG9jYXRpb24sIHRoaXMgbWVhbnMgdGhhdCBJbmxpbmVBY2Nlc3MgY29kZSBpcyBu
b3QgYSBzdHViIG9uZS4KLSAgICAgICAgICAgIC8vIFdlIHJld3JpdGUgdGhpcyB3aXRoIHRoZSBz
dHViLWJhc2VkIGRpc3BhdGNoaW5nIGNvZGUgb25jZSwgYW5kIGNvbnRpbnVlIHVzaW5nIGl0IHVu
dGlsIHdlIHJlc2V0IHRoZSBjb2RlLgotICAgICAgICAgICAgaWYgKHN0dWJJbmZvLm1fY29kZVB0
ci5leGVjdXRhYmxlQWRkcmVzcygpID09IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbi5l
eGVjdXRhYmxlQWRkcmVzcygpKSB7Ci0gICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjplbWl0
SklUQ29kZU92ZXIoc3R1YkluZm8uc3RhcnQucmV0YWdnZWQ8SlNJbnRlcm5hbFB0clRhZz4oKSwg
c2NvcGVkTGFtYmRhPHZvaWQoQ0NhbGxIZWxwZXJzJik+KFsmXShDQ2FsbEhlbHBlcnMmIGppdCkg
ewotICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoJnN0dWJJbmZvKSwgc3R1YkluZm8ubV9zdHViSW5mb0dQUik7Ci0gICAgICAgICAgICAgICAg
ICAgIGppdC5mYXJKdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mby5tX3N0dWJJbmZv
R1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHViUm91dGlu
ZVB0clRhZyk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8ganVtcCA9IGppdC5qdW1wKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGF1dG8gZG9uZUxvY2F0aW9uID0gc3R1YkluZm8uZG9uZUxvY2F0
aW9uOwotICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soWz1dKExpbmtCdWZmZXIm
IGxpbmtCdWZmZXIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhq
dW1wLCBkb25lTG9jYXRpb24pOwotICAgICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
ICAgICB9KSwgIklubGluZUFjY2VzczogbGlua2luZyBzdHViIGNhbGwiKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9IHRhcmdldDsKICAg
ICAgICAgc3R1YkluZm8ubV9pbmxpbmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8g
Q2xlYXIgb3V0IHRoZSBpbmxpbmUgYWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKQEAgLTQ2
Miw3ICs0NDQsNyBAQCB2b2lkIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcEluQWNjZXNz
KENvZGVCbG9jayogY29kZUJsb2NrLCBTdHJ1Y3R1cmVTdHViSQogCiB2b2lkIElubGluZUFjY2Vz
czo6cmVzZXRTdHViQXNKdW1wSW5BY2Nlc3MoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVy
ZVN0dWJJbmZvJiBzdHViSW5mbykKIHsKLSAgICBpZiAoY29kZUJsb2NrLT51c2VEYXRhSUMoKSAm
JiBjb2RlQmxvY2stPmppdFR5cGUoKSA9PSBKSVRUeXBlOjpCYXNlbGluZUpJVCkgeworICAgIGlm
IChjb2RlQmxvY2stPnVzZURhdGFJQygpKSB7CiAgICAgICAgIHN0dWJJbmZvLm1fY29kZVB0ciA9
IHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKICAgICAgICAgc3R1YkluZm8ubV9pbmxp
bmVBY2Nlc3NCYXNlU3RydWN0dXJlSUQuY2xlYXIoKTsgLy8gQ2xlYXIgb3V0IHRoZSBpbmxpbmUg
YWNjZXNzIGNvZGUuCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMzYwZTE4MTgzZWNiYTFlMGNjMDVkNzZj
NzJjZGYxMjE5ZWNjYjE2ZC4uNDg2OWFiMjY0ODNhZGJlZDBmNDdjMmE4N2UzOGNmN2Y0ZWRmM2Vm
OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKQEAgLTEwNDksMjAgKzEwNDksMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdl
dEJ5SWQoTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSBy
ZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9
IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAg
ICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgc2NyYXRjaC5l
bXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7
CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAgICAgICAgIH0KICAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoYmFz
ZS5ncHIoKSk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygp
OwogCiAgICAgICAgIGJhc2UudXNlKCk7CiAKLSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5v
cmlnaW4uc2VtYW50aWMsIGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+
Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBOZWVkVG9TcGlsbCwg
YWNjZXNzVHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGlj
LCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNh
Y2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3BpbGwsIGFj
Y2Vzc1R5cGUpOwogCiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSwgRGF0
YUZvcm1hdEpTLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwogICAgICAgICBicmVhazsK
QEAgLTEwNzAsMTMgKzEwNzQsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5
SWQoTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgY2FzZSBVbnR5cGVk
VXNlOiB7CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIEpTVmFs
dWVPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVn
c1RlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UpOwogCiAgICAgICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
SW52YWxpZEdQUlJlZzsKICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpE
RkdKSVQpKSB7CiAgICAgICAgICAgICBzdHViSW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICAg
ICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOwogICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHVi
SW5mby0+Z3ByKCk7CisgICAgICAgICAgICBzY3JhdGNoR1BSID0gc2NyYXRjaC0+Z3ByKCk7CiAg
ICAgICAgIH0KICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MgPSBiYXNlLmpzVmFsdWVSZWdz
KCk7CiAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwpAQCAt
MTA4NSw3ICsxMDkzLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5SWQoTm9k
ZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIEpJVENvbXBpbGVyOjpK
dW1wIG5vdENlbGwgPSBtX2ppdC5icmFuY2hJZk5vdENlbGwoYmFzZVJlZ3MpOwogCi0gICAgICAg
IGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVn
cywgc3R1YkluZm9HUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgTmVl
ZFRvU3BpbGwsIGFjY2Vzc1R5cGUpOworICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5vdENlbGwsIE5lZWRUb1NwaWxsLCBhY2Nl
c3NUeXBlKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFG
b3JtYXRKUywgVXNlQ2hpbGRyZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBA
IC0xMTAyLDEzICsxMTEwLDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlk
Rmx1c2goTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogICAgIHN3aXRjaCAobm9k
ZS0+Y2hpbGQxKCkudXNlS2luZCgpKSB7CiAgICAgY2FzZSBDZWxsVXNlOiB7CiAgICAgICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2g7CiAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxs
UmVzdWx0IHJlc3VsdCh0aGlzKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJSZWc7CiAg
ICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewogICAgICAg
ICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2guZW1wbGFj
ZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAg
ICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAgICAgICAg
IEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2UuZ3By
KCkpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAg
LTExMTcsNyArMTEyOSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeUlkRmx1
c2goTm9kZSogbm9kZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlKQogCiAgICAgICAgIGZsdXNoUmVn
aXN0ZXJzKCk7CiAKLSAgICAgICAgY2FjaGVkR2V0QnlJZChub2RlLT5vcmlnaW4uc2VtYW50aWMs
IGJhc2VSZWdzLCByZXN1bHRSZWdzLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBKSVRDb21waWxlcjo6SnVtcCgpLCBEb250U3BpbGwsIGFjY2Vzc1R5cGUpOworICAg
ICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3Vs
dFJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVy
KCksIEpJVENvbXBpbGVyOjpKdW1wKCksIERvbnRTcGlsbCwgYWNjZXNzVHlwZSk7CiAKICAgICAg
ICAganNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlLCBEYXRhRm9ybWF0SlMsIFVzZUNoaWxk
cmVuQ2FsbGVkRXhwbGljaXRseSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTEyNSwxMyArMTEzNywx
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqIG5vZGUs
IEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSkKIAogICAgIGNhc2UgVW50eXBlZFVzZTogewogICAgICAg
ICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgICAgIHN0ZDo6b3B0
aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOwogICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNl
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJl
c3VsdCByZXN1bHQodGhpcyk7CiAKICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxp
ZEdQUlJlZzsKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAg
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICBzY3JhdGNoLmVtcGxhY2Uo
dGhpcyk7CiAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKKyAgICAg
ICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKICAgICAgICAgfQogICAgICAgICBK
U1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CkBAIC0xMTQyLDcgKzExNTgsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlJZEZsdXNoKE5vZGUqIG5vZGUsIEFjY2Vz
c1R5cGUgYWNjZXNzVHlwZSkKIAogICAgICAgICBKSVRDb21waWxlcjo6SnVtcCBub3RDZWxsID0g
bV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BS
LCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5vdENlbGwsIERvbnRTcGlsbCwgYWNjZXNz
VHlwZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNl
UmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwgbm90Q2VsbCwgRG9udFNwaWxsLCBhY2Nlc3NUeXBlKTsKIAogICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUywgVXNlQ2hpbGRy
ZW5DYWxsZWRFeHBsaWNpdGx5KTsKICAgICAgICAgYnJlYWs7CkBAIC0xMzIzLDEzICsxMzM5LDE3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWxldGVCeVZhbChOb2RlKiBub2RlKQog
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluQnlJZChOb2RlKiBub2RlKQogewogICAgIHN0
ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICBzdGQ6Om9wdGlvbmFsPEdQ
UlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMs
IG5vZGUtPmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlUmVnc1RlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIGJhc2UsIFBheWxvYWRXb3JkKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IElu
dmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2hHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewogICAgICAgICBzdHVi
SW5mby5lbXBsYWNlKHRoaXMpOworICAgICAgICBzY3JhdGNoLmVtcGxhY2UodGhpcyk7CiAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICBzY3JhdGNoR1BSID0g
c2NyYXRjaC0+Z3ByKCk7CiAgICAgfQogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsK
ICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKQEAgLTEzNDIsNyAr
MTM2Miw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbkJ5SWQoTm9kZSogbm9kZSkK
ICAgICBKSVRJbkJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwg
Jm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQsIGNv
ZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBub2RlLT5jYWNoZWFibGVJZGVudGlm
aWVyKCksCiAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShiYXNlR1BSKSwgcmVzdWx0
UmVncywgc3R1YkluZm9HUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAKICAgICBKSVRDb21w
aWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOwogICAgIHNsb3dDYXNlcy5hcHBlbmQoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKQEAgLTQxNTQsMTggKzQxNzQsMjIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZUdldFByaXZhdGVOYW1lQnlJZChOb2RlKiBub2RlKQogICAgIHN3aXRjaCAobV9ncmFw
aC5jaGlsZChub2RlLCAwKS51c2VLaW5kKCkpIHsKICAgICBjYXNlIENlbGxVc2U6IHsKICAgICAg
ICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6Om9w
dGlvbmFsPEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJh
bmQgYmFzZSh0aGlzLCBtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgSlNWYWx1ZVJl
Z3NUZW1wb3JhcnkgcmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKIAogICAgICAgICBHUFJSZWcg
c3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9
IEludmFsaWRHUFJSZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6
REZHSklUKSkgewogICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAg
ICAgIHNjcmF0Y2guZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1
YkluZm8tPmdwcigpOworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwog
ICAgICAgICB9CiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gSlNWYWx1ZVJlZ3M6OnBh
eWxvYWRPbmx5KGJhc2UuZ3ByKCkpOwogICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0g
cmVzdWx0LnJlZ3MoKTsKIAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZVJlZ3MsIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFibGVJ
ZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wKCksIE5lZWRUb1NwaWxsLCBBY2Nlc3NUeXBl
OjpHZXRQcml2YXRlTmFtZSk7CisgICAgICAgIGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNl
bWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgSklUQ29tcGlsZXI6Okp1bXAoKSwgTmVlZFRvU3Bp
bGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKIAogICAgICAgICBqc1ZhbHVlUmVzdWx0
KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiAgICAgICAgIGJyZWFrOwpAQCAtNDE3
MywyMCArNDE5NywyNCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0UHJpdmF0ZU5h
bWVCeUlkKE5vZGUqIG5vZGUpCiAKICAgICBjYXNlIFVudHlwZWRVc2U6IHsKICAgICAgICAgc3Rk
OjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOworICAgICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc2NyYXRjaDsKICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlz
LCBtX2dyYXBoLmNoaWxkKG5vZGUsIDApKTsKICAgICAgICAgSlNWYWx1ZVJlZ3NUZW1wb3Jhcnkg
cmVzdWx0KHRoaXMsIFJldXNlLCBiYXNlKTsKIAogICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIg
PSBJbnZhbGlkR1BSUmVnOworICAgICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IEludmFsaWRHUFJS
ZWc7CiAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgewog
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgICAgIHNjcmF0Y2gu
ZW1wbGFjZSh0aGlzKTsKICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHNjcmF0Y2gtPmdwcigpOwogICAgICAgICB9CiAg
ICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwogICAgICAg
ICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKIAogICAgICAgICBKSVRD
b21waWxlcjo6SnVtcCBub3RDZWxsID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKTsK
IAotICAgICAgICBjYWNoZWRHZXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVJlZ3Ms
IHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSLCBub2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIG5v
dENlbGwsIE5lZWRUb1NwaWxsLCBBY2Nlc3NUeXBlOjpHZXRQcml2YXRlTmFtZSk7CisgICAgICAg
IGNhY2hlZEdldEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlUmVncywgcmVzdWx0UmVn
cywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwg
bm90Q2VsbCwgTmVlZFRvU3BpbGwsIEFjY2Vzc1R5cGU6OkdldFByaXZhdGVOYW1lKTsKIAogICAg
ICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUsIERhdGFGb3JtYXRKUyk7CiAgICAg
ICAgIGJyZWFrOwpAQCAtNDM0MiwxNCArNDM3MCwxOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlUHV0UHJpdmF0ZU5hbWUoTm9kZSogbm9kZSkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVQdXRQcml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6Om9wdGlvbmFs
PEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+
IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hp
bGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNoaWxkMigpKTsK
ICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBzdHViSW5mb0dQ
UiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52YWxpZEdQUlJl
ZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKICAgICAg
ICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1wbGFjZSh0aGlz
KTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAgICAgIHNjcmF0
Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJl
Z3MgPSB2YWx1ZS5qc1ZhbHVlUmVncygpOwogICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIo
KTsKQEAgLTQzNTgsNyArNDM5MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRQ
cml2YXRlTmFtZUJ5SWQoTm9kZSogbm9kZSkKICAgICAvLyBXZSBlbWl0IHByb3BlcnR5IGNoZWNr
IGR1cmluZyBERkcgZ2VuZXJhdGlvbiwgc28gd2UgZG9uJ3QgbmVlZAogICAgIC8vIHRvIGNoZWNr
IGl0IGhlcmUuCiAgICAgYXV0byBwdXRLaW5kID0gbm9kZS0+cHJpdmF0ZUZpZWxkUHV0S2luZCgp
LmlzRGVmaW5lKCkgPyBQdXRLaW5kOjpEaXJlY3RQcml2YXRlRmllbGREZWZpbmUgOiBQdXRLaW5k
OjpEaXJlY3RQcml2YXRlRmllbGRTZXQ7Ci0gICAgY2FjaGVkUHV0QnlJZChub2RlLT5vcmlnaW4u
c2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5v
ZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgcHV0S2luZCwgRUNNQU1vZGU6OnN0cmljdCgpKTsK
KyAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVS
ZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIG5vZGUtPmNhY2hlYWJs
ZUlkZW50aWZpZXIoKSwgcHV0S2luZCwgRUNNQU1vZGU6OnN0cmljdCgpKTsKIAogICAgIG5vUmVz
dWx0KG5vZGUpOwogfQpAQCAtMTQxMjgsMjEgKzE0MTYwLDI1IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVFbnVtZXJhdG9ySGFzT3duUHJvcGVydHkoTm9kZSogbm9kZSkKIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVQdXRCeUlkRmx1c2goTm9kZSogbm9kZSkKIHsKICAgICBzdGQ6
Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRpb25hbDxHUFJU
ZW1wb3Jhcnk+IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywg
bm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMsIG5vZGUtPmNo
aWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAgIEdQUlJlZyBz
dHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gSW52
YWxpZEdQUlJlZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkp
IHsKICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2NyYXRjaDIuZW1w
bGFjZSh0aGlzKTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3ByKCk7CisgICAg
ICAgIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBHUFJSZWcgYmFz
ZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0gdmFsdWUuanNW
YWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3ByKCk7CiAgICAg
Zmx1c2hSZWdpc3RlcnMoKTsKIAotICAgIGNhY2hlZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFu
dGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLCBub2RlLT5j
YWNoZWFibGVJZGVudGlmaWVyKCksIFB1dEtpbmQ6Ok5vdERpcmVjdCwgbm9kZS0+ZWNtYU1vZGUo
KSwgTWFjcm9Bc3NlbWJsZXI6Okp1bXAoKSwgRG9udFNwaWxsKTsKKyAgICBjYWNoZWRQdXRCeUlk
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwg
c2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0
S2luZDo6Tm90RGlyZWN0LCBub2RlLT5lY21hTW9kZSgpLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcCgp
LCBEb250U3BpbGwpOwogCiAgICAgbm9SZXN1bHQobm9kZSk7CiB9CkBAIC0xNDE1MCwyMCArMTQx
ODYsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWRGbHVzaChOb2RlKiBu
b2RlKQogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5SWQoTm9kZSogbm9kZSkKIHsK
ICAgICBzdGQ6Om9wdGlvbmFsPEdQUlRlbXBvcmFyeT4gc3R1YkluZm87CisgICAgc3RkOjpvcHRp
b25hbDxHUFJUZW1wb3Jhcnk+IHNjcmF0Y2gyOwogICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJh
c2UodGhpcywgbm9kZS0+Y2hpbGQxKCkpOwogICAgIEpTVmFsdWVPcGVyYW5kIHZhbHVlKHRoaXMs
IG5vZGUtPmNoaWxkMigpKTsKICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaCh0aGlzKTsKIAogICAg
IEdQUlJlZyBzdHViSW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgR1BSUmVnIHNjcmF0Y2gy
R1BSID0gSW52YWxpZEdQUlJlZzsKICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6
OkRGR0pJVCkpIHsKICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKKyAgICAgICAgc2Ny
YXRjaDIuZW1wbGFjZSh0aGlzKTsKICAgICAgICAgc3R1YkluZm9HUFIgPSBzdHViSW5mby0+Z3By
KCk7CisgICAgICAgIHNjcmF0Y2gyR1BSID0gc2NyYXRjaDItPmdwcigpOwogICAgIH0KICAgICBH
UFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzID0g
dmFsdWUuanNWYWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IHNjcmF0Y2guZ3By
KCk7CiAKLSAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZUdQUiwg
dmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOworICAgIGNhY2hl
ZFB1dEJ5SWQobm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB2YWx1ZVJlZ3MsIHN0dWJJ
bmZvR1BSLCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmll
cigpLCBQdXRLaW5kOjpOb3REaXJlY3QsIG5vZGUtPmVjbWFNb2RlKCkpOwogCiAgICAgbm9SZXN1
bHQobm9kZSk7CiB9CkBAIC0xNDE3MSwyMCArMTQyMTEsMjQgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZVB1dEJ5SWQoTm9kZSogbm9kZSkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVQdXRCeUlkRGlyZWN0KE5vZGUqIG5vZGUpCiB7CiAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1w
b3Jhcnk+IHN0dWJJbmZvOworICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNo
MjsKICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsK
ICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgR1BS
VGVtcG9yYXJ5IHNjcmF0Y2godGhpcyk7CiAKICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZh
bGlkR1BSUmVnOworICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9IEludmFsaWRHUFJSZWc7CiAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CiAgICAgICAgIHN0dWJJ
bmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgIHNjcmF0Y2gyLmVtcGxhY2UodGhpcyk7CiAgICAg
ICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICBzY3JhdGNoMkdQUiA9
IHNjcmF0Y2gyLT5ncHIoKTsKICAgICB9CiAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigp
OwogICAgIEpTVmFsdWVSZWdzIHZhbHVlUmVncyA9IHZhbHVlLmpzVmFsdWVSZWdzKCk7CiAgICAg
R1BSUmVnIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLmdwcigpOwogCi0gICAgY2FjaGVkUHV0QnlJZChu
b2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHZhbHVlUmVncywgc3R1YkluZm9HUFIsIHNj
cmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6RGlyZWN0LCBu
b2RlLT5lY21hTW9kZSgpKTsKKyAgICBjYWNoZWRQdXRCeUlkKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YywgYmFzZUdQUiwgdmFsdWVSZWdzLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJH
UFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgUHV0S2luZDo6RGlyZWN0LCBub2RlLT5l
Y21hTW9kZSgpKTsKIAogICAgIG5vUmVzdWx0KG5vZGUpOwogfQpAQCAtMTU3NzgsNyArMTU4MjIs
NyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHJvZmlsZVR5cGUoTm9kZSogbm9kZSkK
ICAgICBub1Jlc3VsdChub2RlKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkUHV0
QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1ZhbHVlUmVncyB2
YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUHV0S2luZCBwdXRLaW5kLCBFQ01BTW9kZSBlY21hTW9k
ZSwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSBz
cGlsbE1vZGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4g
Y29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEpTVmFsdWVSZWdzIHZhbHVlUmVncywgR1BSUmVn
IHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSLCBDYWNo
ZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFB1dEtpbmQgcHV0S2luZCwgRUNNQU1vZGUgZWNt
YU1vZGUsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01v
ZGUgc3BpbGxNb2RlKQogewogICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51
c2VkUmVnaXN0ZXJzKCk7CiAgICAgaWYgKHNwaWxsTW9kZSA9PSBEb250U3BpbGwpIHsKQEAgLTE1
Nzg3LDYgKzE1ODMxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQoQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgSlNWYWx1CiAgICAgICAgIHVzZWRS
ZWdpc3RlcnMuc2V0KHZhbHVlUmVncywgZmFsc2UpOwogICAgICAgICBpZiAoc3R1YkluZm9HUFIg
IT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0dWJJbmZv
R1BSLCBmYWxzZSk7CisgICAgICAgIGlmIChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcpCisg
ICAgICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNoR1BSLCBmYWxzZSk7CisgICAgICAg
IGlmIChzY3JhdGNoMkdQUiAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICAgICAgdXNlZFJlZ2lz
dGVycy5zZXQoc2NyYXRjaDJHUFIsIGZhbHNlKTsKICAgICB9CiAgICAgQ2FsbFNpdGVJbmRleCBj
YWxsU2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGlu
Z09TUkV4aXRJZk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKICAgICBKSVRQ
dXRCeUlkR2VuZXJhdG9yIGdlbigKQEAgLTE1Nzk0LDcgKzE1ODQyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
R1BSLCBKU1ZhbHUKICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VHUFIpLCB2
YWx1ZVJlZ3MsIHN0dWJJbmZvR1BSLAogICAgICAgICBzY3JhdGNoR1BSLCBlY21hTW9kZSwgcHV0
S2luZCk7CiAKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CisgICAgZ2VuLmdlbmVy
YXRlRmFzdFBhdGgobV9qaXQsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKIAogICAgIEpJVENv
bXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CiAgICAgaWYgKHNsb3dQYXRoVGFyZ2V0LmlzU2V0
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggNjk1MzQ1NTc5OWU1OGQ2MmU5YzlmZTNlNDY2NjNhOWVkYmRiMmE0NC4uM2UxNDI5ODJmZDc4
NzcyYzUzNDJmMWQ2MTU0NDBlODU2Njg1ZDZjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzIzLDE2ICs3MjMsMTYgQEAgY2xhc3MgU3Bl
Y3VsYXRpdmVKSVQgewogCiAgICAgdm9pZCBjb21waWxlQ2hlY2tEZXRhY2hlZChOb2RlKik7CiAK
LSAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIs
IEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUsIEFj
Y2Vzc1R5cGUpOwotICAgIHZvaWQgY2FjaGVkUHV0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZUdQUiwgSlNWYWx1ZVJlZ3MgdmFsdWVSZWdzLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBz
Y3JhdGNoR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQdXRLaW5kLCBFQ01BTW9kZSwgSklUQ29t
cGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpLCBTcGlsbFJl
Z2lzdGVyc01vZGUgPSBOZWVkVG9TcGlsbCk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVP
cmlnaW4sIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJ
bmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7
CisgICAgdm9pZCBjYWNoZWRQdXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1Zh
bHVlUmVncyB2YWx1ZVJlZ3MsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIs
IEdQUlJlZyBzY3JhdGNoMkdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgUHV0S2luZCwgRUNNQU1v
ZGUsIEpJVENvbXBpbGVyOjpKdW1wIHNsb3dQYXRoVGFyZ2V0ID0gSklUQ29tcGlsZXI6Okp1bXAo
KSwgU3BpbGxSZWdpc3RlcnNNb2RlID0gTmVlZFRvU3BpbGwpOwogICAgIHZvaWQgY2FjaGVkR2V0
QnlWYWwoQ29kZU9yaWdpbiwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHks
IEpTVmFsdWVSZWdzIHJlc3VsdCwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQpOwog
CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICB2b2lkIGNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiwg
R1BSUmVnIGJhc2VHUFIsIEdQUlJlZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2Fj
aGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxs
UmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7Ci0gICAgdm9pZCBjYWNoZWRHZXRCeUlkV2l0aFRo
aXMoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJSZWcgcmVz
dWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJ
VENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcExp
c3QoKSk7CisgICAgdm9pZCBjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4sIEdQUlJlZyBiYXNlR1BS
LCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNoR1BS
LCBDYWNoZWFibGVJZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwg
U3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nlc3NUeXBlKTsKKyAgICB2b2lkIGNhY2hlZEdldEJ5SWRX
aXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnIHRoaXNHUFIsIEdQUlJl
ZyByZXN1bHRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hl
YWJsZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJn
ZXQgPSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAjZWxpZiBVU0UoSlNWQUxVRTMyXzY0KQot
ICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9u
ZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVz
dWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBK
SVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlLCBBY2Nl
c3NUeXBlKTsKLSAgICB2b2lkIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luLCBHUFJS
ZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcgdGhpc1Rh
Z0dQUk9yTm9uZSwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVzdWx0VGFnR1BSLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBDYWNoZWFibGVJZGVu
dGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0ID0gSklU
Q29tcGlsZXI6Okp1bXBMaXN0KCkpOworICAgIHZvaWQgY2FjaGVkR2V0QnlJZChDb2RlT3JpZ2lu
LCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2FkR1BSLCBHUFJSZWcg
cmVzdWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BS
LCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1
bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7CisgICAg
dm9pZCBjYWNoZWRHZXRCeUlkV2l0aFRoaXMoQ29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJP
ck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHRoaXNUYWdHUFJPck5vbmUsIEdQ
UlJlZyB0aGlzUGF5bG9hZEdQUiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBh
eWxvYWRHUFIsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJs
ZUlkZW50aWZpZXIsIGNvbnN0IEpJVENvbXBpbGVyOjpKdW1wTGlzdCYgc2xvd1BhdGhUYXJnZXQg
PSBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAjZW5kaWYKIAogICAgIHZvaWQgY29tcGlsZURl
bGV0ZUJ5SWQoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggN2ZiNTY1MjMzMmY5YzYwZjYyMjI4NmZlYWE5
ZTU2YmE2MzI3ZjZjYS4uZjkzN2YxZWRkYTgyYzU5Yjc3MTM5ZjJiNTJjYjNiODk4N2U1YzQ1OSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCkBAIC0xNjgsMTQgKzE2OCwxNCBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpmaWxs
SlNWYWx1ZShFZGdlIGVkZ2UsIEdQUlJlZyYgdGFnR1BSLCBHUFJSZWcmIHBheWxvYWRHUFIsCiAg
ICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4g
b3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHVi
SW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVt
cCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJzTW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5
cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2lu
LCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQ
UiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgSklU
Q29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgLCBTcGlsbFJlZ2lzdGVyc01vZGUgbW9kZSwg
QWNjZXNzVHlwZSB0eXBlKQogewotICAgIGNhY2hlZEdldEJ5SWQob3JpZ2luLCBiYXNlLnRhZ0dQ
UigpLCBiYXNlLnBheWxvYWRHUFIoKSwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9hZEdQ
UigpLCBzdHViSW5mb0dQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUp
OworICAgIGNhY2hlZEdldEJ5SWQob3JpZ2luLCBiYXNlLnRhZ0dQUigpLCBiYXNlLnBheWxvYWRH
UFIoKSwgcmVzdWx0LnRhZ0dQUigpLCByZXN1bHQucGF5bG9hZEdQUigpLCBzdHViSW5mb0dQUiwg
c2NyYXRjaEdQUiwgaWRlbnRpZmllciwgc2xvd1BhdGhUYXJnZXQsIG1vZGUsIHR5cGUpOwogfQog
CiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogICAgIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJlZyBiYXNlUGF5bG9hZEdQUiwg
R1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBzdHVi
SW5mb0dQUiwKLSAgICBDYWNoZWFibGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEpJVENvbXBpbGVy
OjpKdW1wIHNsb3dQYXRoVGFyZ2V0LCBTcGlsbFJlZ2lzdGVyc01vZGUgc3BpbGxNb2RlLCBBY2Nl
c3NUeXBlIHR5cGUpCisgICAgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxsUmVnaXN0
ZXJzTW9kZSBzcGlsbE1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3R1YkluZm9HUFIpOwogICAgIC8vIFRoaXMgaXMgYSBoYWNreSBmaXggZm9yIHdoZW4gdGhlIHJl
Z2lzdGVyIGFsbG9jYXRvciBkZWNpZGVzIHRvIGFsaWFzIHRoZSBiYXNlIHBheWxvYWQgd2l0aCB0
aGUgcmVzdWx0IHRhZy4gVGhpcyBvbmx5IGhhcHBlbnMKQEAgLTIwNCw3ICsyMDQsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogICAgICAgICBtX2ppdC5jb2RlQmxvY2so
KSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQs
IGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVyLAogICAgICAg
ICBKU1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVS
ZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiksIEludmFsaWRHUFJSZWcsIHR5cGUp
OwogICAgIAotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKKyAgICBnZW4uZ2VuZXJh
dGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAgCiAgICAgSklUQ29tcGlsZXI6Okp1
bXBMaXN0IHNsb3dDYXNlczsKICAgICBpZiAoc2xvd1BhdGhUYXJnZXQuaXNTZXQoKSkKQEAgLTIy
OSw3ICsyMjksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKAogfQogCiB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkV2l0aFRoaXMoCi0gICAgQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZVRhZ0dQUk9yTm9uZSwgR1BSUmVnIGJhc2VQYXlsb2Fk
R1BSLCBHUFJSZWcgdGhpc1RhZ0dQUiwgR1BSUmVnIHRoaXNQYXlsb2FkR1BSLCBHUFJSZWcgcmVz
dWx0VGFnR1BSLCBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLAor
ICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VUYWdHUFJPck5vbmUsIEdQUlJl
ZyBiYXNlUGF5bG9hZEdQUiwgR1BSUmVnIHRoaXNUYWdHUFIsIEdQUlJlZyB0aGlzUGF5bG9hZEdQ
UiwgR1BSUmVnIHJlc3VsdFRhZ0dQUiwgR1BSUmVnIHJlc3VsdFBheWxvYWRHUFIsIEdQUlJlZyBz
dHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0KQog
ewogICAgIFVOVVNFRF9QQVJBTShzdHViSW5mb0dQUik7CkBAIC0yNDAsNyArMjQwLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKAogICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBl
OjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVy
LAogICAgICAgICBKU1ZhbHVlUmVncyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpLCBK
U1ZhbHVlUmVncyhiYXNlVGFnR1BST3JOb25lLCBiYXNlUGF5bG9hZEdQUiksIEpTVmFsdWVSZWdz
KHRoaXNUYWdHUFIsIHRoaXNQYXlsb2FkR1BSKSwgSW52YWxpZEdQUlJlZyk7CiAgICAgCi0gICAg
Z2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOworICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0LCBzY3JhdGNoR1BSKTsKICAgICAKICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nh
c2VzOwogICAgIGlmICghc2xvd1BhdGhUYXJnZXQuZW1wdHkoKSkKQEAgLTMyMzIsNyArMzIzMiw3
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAg
IEdQUlJlZyByZXN1bHRUYWdHUFIgPSByZXN1bHRUYWcuZ3ByKCk7CiAgICAgICAgICAgICBHUFJS
ZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQuZ3ByKCk7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMs
IEludmFsaWRHUFJSZWcsIGJhc2VHUFIsIEludmFsaWRHUFJSZWcsIHRoaXNHUFIsIHJlc3VsdFRh
Z0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRl
bnRpZmllcigpKTsKKyAgICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmln
aW4uc2VtYW50aWMsIEludmFsaWRHUFJSZWcsIGJhc2VHUFIsIEludmFsaWRHUFJSZWcsIHRoaXNH
UFIsIHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQUiwgSW52YWxpZEdQUlJlZywgSW52YWxp
ZEdQUlJlZywgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIG5v
ZGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMzI1Miw3ICszMjUyLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBw
ZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChiYXNlLmpzVmFsdWVSZWdzKCkpKTsKICAgICAgICAg
ICAgIG5vdENlbGxMaXN0LmFwcGVuZChtX2ppdC5icmFuY2hJZk5vdENlbGwodGhpc1ZhbHVlLmpz
VmFsdWVSZWdzKCkpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdp
dGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIs
IHRoaXNUYWdHUFIsIHRoaXNQYXlsb2FkR1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRH
UFIsIEludmFsaWRHUFJSZWcsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbExp
c3QpOworICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5zZW1h
bnRpYywgYmFzZVRhZ0dQUiwgYmFzZVBheWxvYWRHUFIsIHRoaXNUYWdHUFIsIHRoaXNQYXlsb2Fk
R1BSLCByZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIsIEludmFsaWRHUFJSZWcsIEludmFs
aWRHUFJSZWcsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90Q2VsbExpc3QpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFRhZ0dQUiwgcmVzdWx0
UGF5bG9hZEdQUiwgbm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGZmOWI4NDJlYzZmOWI3OGM4MWZk
Y2U3MTdkZDRjM2YxY2JjMTBlNzcuLjdiNzk5MDg5ZDQyNmZiZmIxODMyYjY1ZjVlZTMwMTRkMmFl
ZGFlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcApAQCAtMTQ4LDEyICsxNDgsMTIgQEAgR1BSUmVnIFNwZWN1bGF0aXZlSklUOjpm
aWxsSlNWYWx1ZShFZGdlIGVkZ2UpCiAgICAgfQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpj
YWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBzbG93UGF0aFRhcmdldCAsIFNwaWxsUmVnaXN0ZXJz
TW9kZSBtb2RlLCBBY2Nlc3NUeXBlIHR5cGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjYWNoZWRH
ZXRCeUlkKENvZGVPcmlnaW4gb3JpZ2luLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBy
ZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2hHUFIsIENhY2hlYWJsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgLCBT
cGlsbFJlZ2lzdGVyc01vZGUgbW9kZSwgQWNjZXNzVHlwZSB0eXBlKQogewotICAgIGNhY2hlZEdl
dEJ5SWQob3JpZ2luLCBiYXNlLmdwcigpLCByZXN1bHQuZ3ByKCksIHN0dWJJbmZvR1BSLCBpZGVu
dGlmaWVyLCBzbG93UGF0aFRhcmdldCwgbW9kZSwgdHlwZSk7CisgICAgY2FjaGVkR2V0QnlJZChv
cmlnaW4sIGJhc2UuZ3ByKCksIHJlc3VsdC5ncHIoKSwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIs
IGlkZW50aWZpZXIsIHNsb3dQYXRoVGFyZ2V0LCBtb2RlLCB0eXBlKTsKIH0KIAotdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZChDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBi
YXNlR1BSLCBHUFJSZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNw
aWxsUmVnaXN0ZXJzTW9kZSBzcGlsbE1vZGUsIEFjY2Vzc1R5cGUgdHlwZSkKK3ZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFz
ZUdQUiwgR1BSUmVnIHJlc3VsdEdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRj
aEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBKSVRDb21waWxlcjo6SnVtcCBz
bG93UGF0aFRhcmdldCwgU3BpbGxSZWdpc3RlcnNNb2RlIHNwaWxsTW9kZSwgQWNjZXNzVHlwZSB0
eXBlKQogewogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0
ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwg
bV9zdHJlYW0tPnNpemUoKSk7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMt
PnVzZWRSZWdpc3RlcnMoKTsKQEAgLTE2MywxNSArMTYzLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNhY2hlZEdldEJ5SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwg
R1BSUmVnCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHJlc3VsdEdQUiwgZmFsc2UpOwogICAg
ICAgICBpZiAoc3R1YkluZm9HUFIgIT0gSW52YWxpZEdQUlJlZykKICAgICAgICAgICAgIHVzZWRS
ZWdpc3RlcnMuc2V0KHN0dWJJbmZvR1BSLCBmYWxzZSk7CisgICAgICAgIGlmIChzY3JhdGNoR1BS
ICE9IEludmFsaWRHUFJSZWcpCisgICAgICAgICAgICB1c2VkUmVnaXN0ZXJzLnNldChzY3JhdGNo
R1BSLCBmYWxzZSk7CiAgICAgfQogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAogICAgICAg
ICBtX2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9z
LCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBp
ZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocmVz
dWx0R1BSKSwgc3R1YkluZm9HUFIsIHR5cGUpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1
bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwogCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFNsb3dQYXRoR2VuZXJhdG9yPiBzbG93UGF0aDsKICAgICBpZiAoSklUQ29kZTo6
dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpIHsKQEAgLTE5MCw3ICsxOTMsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRCeUlkKENvZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVn
IGJhc2VHUFIsIEdQUlJlZwogICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1Bh
dGgpKTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdpdGhUaGlzKENv
ZGVPcmlnaW4gY29kZU9yaWdpbiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyB0aGlzR1BSLCBHUFJS
ZWcgcmVzdWx0R1BSLCBHUFJSZWcgc3R1YkluZm9HUFIsIENhY2hlYWJsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgSklUQ29tcGlsZXI6Okp1bXBMaXN0JiBzbG93UGF0aFRhcmdldCkKK3Zv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBHUFJSZWcgdGhpc0dQUiwgR1BSUmVnIHJlc3VsdEdQUiwg
R1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaEdQUiwgQ2FjaGVhYmxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBjb25zdCBKSVRDb21waWxlcjo6SnVtcExpc3QmIHNsb3dQYXRoVGFyZ2V0
KQogewogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFu
ZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9z
dHJlYW0tPnNpemUoKSk7CiAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVycyA9IHRoaXMtPnVz
ZWRSZWdpc3RlcnMoKTsKQEAgLTIwMCwxNSArMjAzLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJlZyBiYXNl
R1BSCiAgICAgdXNlZFJlZ2lzdGVycy5zZXQocmVzdWx0R1BSLCBmYWxzZSk7CiAgICAgaWYgKHN0
dWJJbmZvR1BSICE9IEludmFsaWRHUFJSZWcpCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0
dWJJbmZvR1BSLCBmYWxzZSk7CisgICAgaWYgKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZykK
KyAgICAgICAgdXNlZFJlZ2lzdGVycy5zZXQoc2NyYXRjaEdQUiwgZmFsc2UpOwogICAgIAogICAg
IEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvciBnZW4oCiAgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJ
VCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50aWZpZXIsCiAgICAg
ICAgIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVl
UmVncyh0aGlzR1BSKSwgc3R1YkluZm9HUFIpOwotICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1f
aml0KTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCwgc2NyYXRjaEdQUik7CiAgICAg
CiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNsb3dDYXNlczsKICAgICBzbG93Q2FzZXMuYXBw
ZW5kKHNsb3dQYXRoVGFyZ2V0KTsKLSAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1
bXAoKSk7CisgICAgaWYgKCFKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkKKyAg
ICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhKdW1wKCkpOwogICAgIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGg7CiAgICAgaWYgKEpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7CkBAIC00MjQyLDQyICs0MjQ4LDUyIEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKIAogICAgIGNhc2UgR2V0
QnlJZFdpdGhUaGlzOiB7CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5kKCkgPT0g
Q2VsbFVzZSAmJiBub2RlLT5jaGlsZDIoKS51c2VLaW5kKCkgPT0gQ2VsbFVzZSkgewotICAgICAg
ICAgICAgc3RkOjpvcHRpb25hbDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAg
U3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAg
ICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCB0aGlzVmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkp
OwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAg
ICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAg
ICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0aGlzKTsKLSAgICAgICAgICAgICAgICBzdHVi
SW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIEdQ
UlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAgICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVH
UFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEdQUkZsdXNo
ZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAgICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIg
PSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5
PiBzdHViSW5mbzsKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3Jh
dGNoOworICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAg
IGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6REZHSklUKSkgeworICAgICAgICAgICAg
ICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7CisgICAgICAgICAgICAgICAgc2NyYXRjaC5lbXBs
YWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigp
OworICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBzY3JhdGNoLT5ncHIoKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgY2FjaGVkR2V0QnlJZFdpdGhUaGlzKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYywgYmFzZUdQUiwgdGhpc1ZhbHVlR1BSLCByZXN1bHRHUFIsIHN0dWJJbmZvR1BSLCBu
b2RlLT5jYWNoZWFibGVJZGVudGlmaWVyKCksIEpJVENvbXBpbGVyOjpKdW1wTGlzdCgpKTsKKyAg
ICAgICAgICAgIGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJh
c2VHUFIsIHRoaXNWYWx1ZUdQUiwgcmVzdWx0R1BSLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwg
bm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLCBKSVRDb21waWxlcjo6SnVtcExpc3QoKSk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0R1BSLCBub2RlKTsK
ICAgICAgICAgICAgIAogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RkOjpvcHRpb25h
bDxHUFJUZW1wb3Jhcnk+IHN0dWJJbmZvOwogICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCB0aGlz
VmFsdWUodGhpcywgbm9kZS0+Y2hpbGQyKCkpOwogCi0gICAgICAgICAgICBHUFJSZWcgc3R1Yklu
Zm9HUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJ
QyhKSVRUeXBlOjpERkdKSVQpKSB7Ci0gICAgICAgICAgICAgICAgc3R1YkluZm8uZW1wbGFjZSh0
aGlzKTsKLSAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9IHN0dWJJbmZvLT5ncHIoKTsKLSAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKICAg
ICAgICAgICAgIEdQUlJlZyB0aGlzVmFsdWVHUFIgPSB0aGlzVmFsdWUuZ3ByKCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKICAg
ICAgICAgICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CisKKyAgICAgICAgICAg
IHN0ZDo6b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzdHViSW5mbzsKKyAgICAgICAgICAgIHN0ZDo6
b3B0aW9uYWw8R1BSVGVtcG9yYXJ5PiBzY3JhdGNoOworICAgICAgICAgICAgR1BSUmVnIHN0dWJJ
bmZvR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0g
SW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlw
ZTo6REZHSklUKSkgeworICAgICAgICAgICAgICAgIHN0dWJJbmZvLmVtcGxhY2UodGhpcyk7Cisg
ICAgICAgICAgICAgICAgc2NyYXRjaC5lbXBsYWNlKHRoaXMpOworICAgICAgICAgICAgICAgIHN0
dWJJbmZvR1BSID0gc3R1YkluZm8tPmdwcigpOworICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIg
PSBzY3JhdGNoLT5ncHIoKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAg
ICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgICAgIApAQCAtNDI4NSw3ICs0MzAxLDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgbm90
Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2VsbChKU1ZhbHVlUmVncyhiYXNlR1BS
KSkpOwogICAgICAgICAgICAgbm90Q2VsbExpc3QuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2Vs
bChKU1ZhbHVlUmVncyh0aGlzVmFsdWVHUFIpKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IGNhY2hlZEdldEJ5SWRXaXRoVGhpcyhub2RlLT5vcmlnaW4uc2VtYW50aWMsIGJhc2VHUFIsIHRo
aXNWYWx1ZUdQUiwgcmVzdWx0R1BSLCBzdHViSW5mb0dQUiwgbm9kZS0+Y2FjaGVhYmxlSWRlbnRp
ZmllcigpLCBub3RDZWxsTGlzdCk7CisgICAgICAgICAgICBjYWNoZWRHZXRCeUlkV2l0aFRoaXMo
bm9kZS0+b3JpZ2luLnNlbWFudGljLCBiYXNlR1BSLCB0aGlzVmFsdWVHUFIsIHJlc3VsdEdQUiwg
c3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIoKSwgbm90
Q2VsbExpc3QpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3Vs
dEdQUiwgbm9kZSk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
TG93ZXJERkdUb0IzLmNwcAppbmRleCBjNDA3YjAwYzRkYWI3ZDY3NmEwNWY5ZTNkNTBkZGQxYTcy
MTAwMmFiLi42MWUwYzc3ZGFlMGZlMmJlN2FhN2MzMTBlYzZjOGQxMmU1NTIyYWEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC00NjY1LDcg
KzQ2NjUsNyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAgICAgICBwYXRjaHBvaW50LT5hcHBl
bmQobV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjpub3RDZWxsTWFza1JlZ2lz
dGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX251bWJlclRhZywgVmFsdWVSZXA6
OnJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5j
bG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7Ci0gICAgICAgIHBh
dGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRU
eXBlOjpGVExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJl
Z2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMyA6IDA7CiAK
ICAgICAgICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBQdXRCeUlkRmx1c2gsIHdlIG1pZ2h0IHdh
bnQgdG8gbGF0ZS1jbG9iYmVyIHZvbGF0aWxlIHJlZ2lzdGVycy4KICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mjg0OApAQCAtNDY4OSw3ICs0Njg5
LDE0IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAgICAgLy8gSlMgc2V0dGVy
IGNhbGwgSUNzIGdlbmVyYXRlZCBieSB0aGUgUHV0QnlJZCBJQyB3aWxsIG5lZWQgdGhpcy4KICAg
ICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53
aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1
YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5n
cFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9
IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhK
SVRUeXBlOjpGVExKSVQpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvR1BSID0gcGFy
YW1zLmdwU2NyYXRjaCgwKTsKKyAgICAgICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHBhcmFt
cy5ncFNjcmF0Y2goMSk7CisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2gyR1BSID0gcGFyYW1z
LmdwU2NyYXRjaCgyKTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBhdXRv
IGdlbmVyYXRvciA9IEJveDxKSVRQdXRCeUlkR2VuZXJhdG9yPjo6Y3JlYXRlKAogICAgICAgICAg
ICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1
YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRl
eCwKQEAgLTQ2OTcsMTQgKzQ3MDQsMTUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
ICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwgc3R1YkluZm9HUFIsIEdQ
UkluZm86OnBhdGNocG9pbnRTY3JhdGNoUmVnaXN0ZXIsIGVjbWFNb2RlLAogICAgICAgICAgICAg
ICAgICAgICBwdXRLaW5kKTsKIAotICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVG
YXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0
aChqaXQsIHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSKTsKICAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBhcmFt
cy5hZGRMYXRlUGF0aCgKICAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGpp
dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVz
YWdlIGFsbG93U2NyYXRjaChqaXQpOwogCi0gICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0
b3ItPnNsb3dQYXRoSnVtcCgpLmxpbmsoJmppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgc2xvd1BhdGhCZWdpbiA9IGpp
dC5sYWJlbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIHNs
b3dQYXRoQ2FsbDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSkgewpAQCAtMTI4NDEsNyArMTI4NDksMTAgQEAgSUdOT1JFX0NM
QU5HX1dBUk5JTkdTX0VORAogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9ub3RDZWxsTWFz
aywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdpc3RlcikpOwogICAg
ICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVwOjpsYXRlUmVnKEdQ
UkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIo
UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKLSAgICAgICAgcGF0Y2hwb2lu
dC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZU
TEpJVCkgPyAxIDogMDsKKyAgICAgICAgaWYgY29uc3RleHByICh0eXBlID09IEFjY2Vzc1R5cGU6
OkluQnlJZCkKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9
IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMiA6IDA7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMSA6IDA7CiAKICAgICAgICAgUmVmUHRy
PFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9IHByZXBhcmVQYXRj
aHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKIApAQCAtMTI4NTcsNyArMTI4NjgsMTMg
QEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMg
dGhlIGRpcmVjdCBleGl0IHRhcmdldCBmb3Igb3BlcmF0aW9uIGNhbGxzLgogICAgICAgICAgICAg
ICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0gZXhjZXB0aW9uSGFu
ZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOwogCi0gICAgICAg
ICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6
OkZUTEpJVCkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKKyAgICAgICAg
ICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAg
ICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAgICAgICBp
ZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgc3R1YkluZm9HUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAgICAg
ICAgICBpZiBjb25zdGV4cHIgKHR5cGUgPT0gQWNjZXNzVHlwZTo6SW5CeUlkKQorICAgICAgICAg
ICAgICAgICAgICAgICAgc2NyYXRjaEdQUiA9IHBhcmFtcy5ncFNjcmF0Y2goMSk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGF1dG8gcmV0dXJuR1BSID0gcGFyYW1zWzBdLmdw
cigpOwogICAgICAgICAgICAgICAgIGF1dG8gYmFzZSA9IEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5n
cHIoKSk7CiAKQEAgLTEyODk2LDEzICsxMjkxMywxMiBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAgICAgICAgICAgICAgICAgfSgpOwogCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBzbG93Q2FzZXM7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCk7CiAgICAgICAgICAgICAgICAgaWYgY29uc3RleHByICh0eXBlID09IEFj
Y2Vzc1R5cGU6OkluQnlJZCkKKyAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5nZW5lcmF0
ZUZhc3RQYXRoKGppdCwgc2NyYXRjaEdQUik7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBnZW5lcmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAg
ICAgICAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQogICAgICAg
ICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkp
OwotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoIUpJVENv
ZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKQotICAgICAgICAgICAgICAgICAgICAgICAg
c2xvd0Nhc2VzLmFwcGVuZChnZW5lcmF0b3ItPnNsb3dQYXRoSnVtcCgpKTsKLSAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBkb25lID0gaml0Lmxh
YmVsKCk7CiAKICAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0ZVBhdGgoCkBAIC0xNTA2OCw3
ICsxNTA4NCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kU29tZVJlZ2lzdGVyKGJhc2UpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQo
bV9ub3RDZWxsTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6bm90Q2VsbE1hc2tSZWdp
c3RlcikpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV9udW1iZXJUYWcsIFZhbHVlUmVw
OjpsYXRlUmVnKEdQUkluZm86Om51bWJlclRhZ1JlZ2lzdGVyKSk7Ci0gICAgICAgIHBhdGNocG9p
bnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpG
VExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVy
cyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMiA6IDA7CiAKICAgICAg
ICAgLy8gRklYTUU6IElmIHRoaXMgaXMgYSBHZXRCeUlkRmx1c2gvR2V0QnlJZERpcmVjdEZsdXNo
LCB3ZSBtaWdodCBnZXQgc29tZSBwZXJmb3JtYW5jZSBib29zdCBpZiB3ZSBjbGFpbSB0aGF0IGl0
CiAgICAgICAgIC8vIGNsb2JiZXJzIHZvbGF0aWxlIHJlZ2lzdGVycyBsYXRlLiBJdCdzIG5vdCBu
ZWNlc3NhcnkgZm9yIGNvcnJlY3RuZXNzLCB0aG91Z2gsIHNpbmNlIHRoZQpAQCAtMTUwOTgsMTQg
KzE1MTE0LDE5IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAv
LyB0aGUgY2FsbHNpdGUgaW5kZXguCiAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5z
Y2hlZHVsZUV4aXRDcmVhdGlvbkZvclVud2luZChwYXJhbXMsIGNhbGxTaXRlSW5kZXgpOwogCi0g
ICAgICAgICAgICAgICAgR1BSUmVnIHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJ
VFR5cGU6OkZUTEpJVCkgPyBwYXJhbXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKKyAg
ICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAg
ICAgICAgICAgIEdQUlJlZyBzY3JhdGNoR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICAgICAgICAg
ICAgICBpZiAoSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgc3R1YkluZm9HUFIgPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAg
ICAgICAgICAgICBzY3JhdGNoR1BSID0gcGFyYW1zLmdwU2NyYXRjaCgxKTsKKyAgICAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRHZXRCeUlk
R2VuZXJhdG9yPjo6Y3JlYXRlKAogICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCks
ICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIHNl
bWFudGljTm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKICAgICAgICAgICAgICAgICAgICAgcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGlkZW50aWZpZXIsIEpTVmFsdWVSZWdzKHBhcmFt
c1sxXS5ncHIoKSksCiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1swXS5n
cHIoKSksIHN0dWJJbmZvR1BSLCB0eXBlKTsKIAotICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+
Z2VuZXJhdGVGYXN0UGF0aChqaXQpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+Z2VuZXJh
dGVGYXN0UGF0aChqaXQsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6TGFiZWwgZG9uZSA9IGppdC5sYWJlbCgpOwogCiAgICAgICAgICAgICAgICAgcGFyYW1zLmFk
ZExhdGVQYXRoKApAQCAtMTUxMTQsNyArMTUxMzUsOCBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1Nf
RU5ECiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gb3B0aW1pemF0aW9uRnVuY3Rpb24g
PSBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUlkRnVuY3Rpb24odHlwZSk7CiAKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZU
TEpJVCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1
bXAoKS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpM
YWJlbCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CkBAIC0xNTE1OSw3
ICsxNTE4MSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgcGF0Y2hwb2lu
dC0+YXBwZW5kKG1fbm90Q2VsbE1hc2ssIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86Om5vdENl
bGxNYXNrUmVnaXN0ZXIpKTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fbnVtYmVyVGFn
LCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjpudW1iZXJUYWdSZWdpc3RlcikpOwogICAgICAg
ICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMo
KSk7Ci0gICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6
OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpID8gMSA6IDA7CisgICAgICAgIHBhdGNocG9pbnQt
Pm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExK
SVQpID8gMiA6IDA7CiAKICAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+
IGV4Y2VwdGlvbkhhbmRsZSA9CiAgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2Vw
dGlvbnMocGF0Y2hwb2ludCk7CkBAIC0xNTE4MiwxNCArMTUyMDQsMTkgQEAgSUdOT1JFX0NMQU5H
X1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIC8vIHRoZSBjYWxsc2l0ZSBpbmRleC4KICAg
ICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhpdENyZWF0aW9uRm9yVW53
aW5kKHBhcmFtcywgY2FsbFNpdGVJbmRleCk7CiAKLSAgICAgICAgICAgICAgICBHUFJSZWcgc3R1
YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5n
cFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIEdQUlJlZyBzdHVi
SW5mb0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2hH
UFIgPSBJbnZhbGlkR1BSUmVnOworICAgICAgICAgICAgICAgIGlmIChKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSkgeworICAgICAgICAgICAgICAgICAgICBzdHViSW5mb0dQUiA9
IHBhcmFtcy5ncFNjcmF0Y2goMCk7CisgICAgICAgICAgICAgICAgICAgIHNjcmF0Y2hHUFIgPSBw
YXJhbXMuZ3BTY3JhdGNoKDEpOworICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAg
IGF1dG8gZ2VuZXJhdG9yID0gQm94PEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcj46OmNyZWF0
ZSgKICAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCAmc3RhdGUtPmppdENvZGUt
PmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6RlRMSklULCBzZW1hbnRpY05vZGVPcmlnaW4s
IGNhbGxTaXRlSW5kZXgsCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJl
Z2lzdGVycygpLCBpZGVudGlmaWVyLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAogICAg
ICAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBKU1ZhbHVlUmVn
cyhwYXJhbXNbMl0uZ3ByKCkpLCBzdHViSW5mb0dQUik7CiAKLSAgICAgICAgICAgICAgICBnZW5l
cmF0b3ItPmdlbmVyYXRlRmFzdFBhdGgoaml0KTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3It
PmdlbmVyYXRlRmFzdFBhdGgoaml0LCBzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OkxhYmVsIGRvbmUgPSBqaXQubGFiZWwoKTsKIAogICAgICAgICAgICAgICAgIHBh
cmFtcy5hZGRMYXRlUGF0aCgKQEAgLTE1MTk4LDcgKzE1MjI1LDggQEAgSUdOT1JFX0NMQU5HX1dB
Uk5JTkdTX0VORAogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9wdGltaXphdGlvbkZ1
bmN0aW9uID0gb3BlcmF0aW9uR2V0QnlJZFdpdGhUaGlzT3B0aW1pemU7CiAKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJ
VCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLT5zbG93UGF0aEp1bXAo
KS5saW5rKCZqaXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJl
bCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OkNhbGwgc2xvd1BhdGhDYWxsOwogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKEpJVENvZGU6OnVzZURhdGFJQyhKSVRUeXBlOjpGVExKSVQpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUQ29kZS5oCmluZGV4IDFlMmVmZDU4ZTczYzQ0MGY3MzczMTUzNmQwYWNhMDVhNzgx
M2E2NzQuLjdlMzgzMzgyYjNmNTFjZTc0MTg1MzM4ZDYwZGQ2MDA1YzNhNWJjYzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUQ29kZS5oCkBAIC0xNjUsOSArMTY1LDExIEBAIGNsYXNzIEpJVENv
ZGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8SklUQ29kZT4gewogICAgIHsKICAgICAg
ICAgaWYgKEpJVENvZGU6OmlzQmFzZWxpbmVDb2RlKGppdFR5cGUpKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGlmICghT3B0aW9uczo6dXNlRGF0YUlDKCkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisjaWYgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCBDUFUoUklT
Q1Y2NCkKICAgICAgICAgcmV0dXJuIE9wdGlvbnM6OnVzZURhdGFJQ0luT3B0aW1pemluZ0pJVCgp
OworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAgICAgfQogCiAgICAgdmly
dHVhbCBjb25zdCBET01KSVQ6OlNpZ25hdHVyZSogc2lnbmF0dXJlKCkgY29uc3QgeyByZXR1cm4g
bnVsbHB0cjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCBiNjVhNjA0YzM0ZmUxYzUyNzMyYTcyZjM4MGVlZGUz
Y2QzMWQ0YmI5Li5hZTcwZDk5NjljOGYyMDZkM2RjNmVlZTFiMjlmZDBhMjNjZGI5ZmUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJh
dG9yLmNwcApAQCAtMTA1LDE3ICsxMDUsMjAgQEAgdm9pZCBKSVRCeUlkR2VuZXJhdG9yOjpmaW5h
bGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwgTGlua0J1ZmZlciYgc2xvd1BhdGgpCiAgICAgICAg
IG1fc3R1YkluZm8tPm1fY29kZVB0ciA9IG1fc3R1YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlv
bjsKIH0KIAotdm9pZCBKSVRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RDb21tb24oTWFjcm9B
c3NlbWJsZXImIGppdCwgc2l6ZV90IGlubGluZUlDU2l6ZSkKK3ZvaWQgSklUQnlJZEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0Q29tbW9uKENDYWxsSGVscGVycyYgaml0LCBzaXplX3QgaW5saW5lSUNT
aXplKQogewotICAgIC8vIFdlIGdlbmVyYXRlIHRoZSBzYW1lIGNvZGUgcmVnYXJkbGVzcyBvZiB3
aGV0aGVyIFNoYXJlZElDIGlzIGVuYWJsZWQgYmVjYXVzZSB3ZSBzdGlsbCBuZWVkIHRvIHVzZSBJ
bmxpbmVBY2Nlc3MKLSAgICAvLyBmb3IgdGhlIHBlcmZvcm1hbmNlIHJlYXNvbi4KICAgICBtX3N0
YXJ0ID0gaml0LmxhYmVsKCk7Ci0gICAgc2l6ZV90IHN0YXJ0U2l6ZSA9IGppdC5tX2Fzc2VtYmxl
ci5idWZmZXIoKS5jb2RlU2l6ZSgpOwotICAgIG1fc2xvd1BhdGhKdW1wID0gaml0Lmp1bXAoKTsK
LSAgICBzaXplX3QganVtcFNpemUgPSBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUo
KSAtIHN0YXJ0U2l6ZTsKLSAgICBzaXplX3Qgbm9wc1RvRW1pdEluQnl0ZXMgPSBpbmxpbmVJQ1Np
emUgLSBqdW1wU2l6ZTsKLSAgICBqaXQuZW1pdE5vcHMobm9wc1RvRW1pdEluQnl0ZXMpOwotICAg
IEFTU0VSVChqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUoKSAtIHN0YXJ0U2l6ZSA9
PSBpbmxpbmVJQ1NpemUpOworICAgIGlmIChKSVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkg
eworICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIobV9zdHViSW5m
byksIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIpOworICAgICAgICBqaXQuZmFySnVtcChDQ2Fs
bEhlbHBlcnM6OkFkZHJlc3MobV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1
YkluZm86Om9mZnNldE9mQ29kZVB0cigpKSwgSklUU3R1YlJvdXRpbmVQdHJUYWcpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHNpemVfdCBzdGFydFNpemUgPSBqaXQubV9hc3NlbWJsZXIuYnVmZmVy
KCkuY29kZVNpemUoKTsKKyAgICAgICAgbV9zbG93UGF0aEp1bXAgPSBqaXQuanVtcCgpOworICAg
ICAgICBzaXplX3QganVtcFNpemUgPSBqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUo
KSAtIHN0YXJ0U2l6ZTsKKyAgICAgICAgc2l6ZV90IG5vcHNUb0VtaXRJbkJ5dGVzID0gaW5saW5l
SUNTaXplIC0ganVtcFNpemU7CisgICAgICAgIGppdC5lbWl0Tm9wcyhub3BzVG9FbWl0SW5CeXRl
cyk7CisgICAgICAgIEFTU0VSVChqaXQubV9hc3NlbWJsZXIuYnVmZmVyKCkuY29kZVNpemUoKSAt
IHN0YXJ0U2l6ZSA9PSBpbmxpbmVJQ1NpemUpOworICAgIH0KICAgICBtX2RvbmUgPSBqaXQubGFi
ZWwoKTsKIH0KIApAQCAtMTI4LDEzICsxMzEsNyBAQCBKSVRHZXRCeUlkR2VuZXJhdG9yOjpKSVRH
ZXRCeUlkR2VuZXJhdG9yKAogICAgIFJFTEVBU0VfQVNTRVJUKGJhc2UucGF5bG9hZEdQUigpICE9
IHZhbHVlLnRhZ0dQUigpKTsKIH0KIAotdm9pZCBKSVRHZXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0
ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCi17Ci0gICAgQVNTRVJUKG1fc3R1YkluZm8p
OwotICAgIGdlbmVyYXRlRmFzdENvbW1vbihqaXQsIG1faXNMZW5ndGhBY2Nlc3MgPyBJbmxpbmVB
Y2Nlc3M6OnNpemVGb3JMZW5ndGhBY2Nlc3MoKSA6IElubGluZUFjY2Vzczo6c2l6ZUZvclByb3Bl
cnR5QWNjZXNzKCkpOwotfQotCi1zdGF0aWMgdm9pZCBnZW5lcmF0ZUdldEJ5SWRJbmxpbmVBY2Nl
c3MoSklUJiBqaXQsIEdQUlJlZyBzdHViSW5mb0dQUiwgSlNWYWx1ZVJlZ3MgYmFzZUpTUiwgR1BS
UmVnIHNjcmF0Y2hHUFIsIEpTVmFsdWVSZWdzIHJlc3VsdEpTUikKK3N0YXRpYyB2b2lkIGdlbmVy
YXRlR2V0QnlJZElubGluZUFjY2VzcyhDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIHN0dWJJbmZv
R1BSLCBKU1ZhbHVlUmVncyBiYXNlSlNSLCBHUFJSZWcgc2NyYXRjaEdQUiwgSlNWYWx1ZVJlZ3Mg
cmVzdWx0SlNSKQogewogICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VK
U1IucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BS
KTsKICAgICBhdXRvIGRvSW5saW5lQWNjZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6
RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3Ry
dWN0dXJlU3R1YkluZm86Om9mZnNldE9mSW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsK
QEAgLTE0NCw2ICsxNDEsMjEgQEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVHZXRCeUlkSW5saW5lQWNj
ZXNzKEpJVCYgaml0LCBHUFJSZWcgc3R1YkluZm9HUFIsIEpTVmFsdWVSZWcKICAgICBqaXQubG9h
ZFByb3BlcnR5KGJhc2VKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoR1BSLCByZXN1bHRKU1IpOwog
fQogCit2b2lkIEpJVEdldEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxw
ZXJzJiBqaXQsIEdQUlJlZyBzY3JhdGNoR1BSKQoreworICAgIEFTU0VSVChtX3N0dWJJbmZvKTsK
KyAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhtX2ppdFR5cGUpKSB7CisgICAgICAgIGdlbmVy
YXRlRmFzdENvbW1vbihqaXQsIG1faXNMZW5ndGhBY2Nlc3MgPyBJbmxpbmVBY2Nlc3M6OnNpemVG
b3JMZW5ndGhBY2Nlc3MoKSA6IElubGluZUFjY2Vzczo6c2l6ZUZvclByb3BlcnR5QWNjZXNzKCkp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKHNjcmF0Y2hHUFIgIT0gSW52
YWxpZEdQUlJlZyk7CisgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOworICAgIGppdC5tb3ZlKEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+bV9zdHVi
SW5mb0dQUik7CisgICAgZ2VuZXJhdGVHZXRCeUlkSW5saW5lQWNjZXNzKGppdCwgbV9zdHViSW5m
by0+bV9zdHViSW5mb0dQUiwgbV9iYXNlLCBzY3JhdGNoR1BSLCBtX3ZhbHVlKTsKKyAgICBtX2Rv
bmUgPSBqaXQubGFiZWwoKTsKK30KKwogdm9pZCBKSVRHZXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0
ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVkIHN0dWJJbmZvLCBHUFJS
ZWcgc3R1YkluZm9HUFIpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoSklUQ29kZTo6dXNlRGF0YUlD
KG1faml0VHlwZSkpOwpAQCAtMTc0LDEwICsxODYsMTkgQEAgSklUR2V0QnlJZFdpdGhUaGlzR2Vu
ZXJhdG9yOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3IoCiAgICAgfQogfQogCi12b2lkIEpJ
VEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxl
ciYgaml0KQordm9pZCBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBh
dGgoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBzY3JhdGNoR1BSKQogewogICAgIEFTU0VSVCht
X3N0dWJJbmZvKTsKLSAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVBY2Nlc3M6OnNp
emVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKKyAgICBpZiAoIUpJVENvZGU6OnVzZURhdGFJQyhtX2pp
dFR5cGUpKSB7CisgICAgICAgIGdlbmVyYXRlRmFzdENvbW1vbihqaXQsIElubGluZUFjY2Vzczo6
c2l6ZUZvclByb3BlcnR5QWNjZXNzKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
QVNTRVJUKHNjcmF0Y2hHUFIgIT0gSW52YWxpZEdQUlJlZyk7CisgICAgbV9zdGFydCA9IGppdC5s
YWJlbCgpOworICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJ
bmZvKSwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUik7CisgICAgZ2VuZXJhdGVHZXRCeUlkSW5s
aW5lQWNjZXNzKGppdCwgbV9zdHViSW5mby0+bV9zdHViSW5mb0dQUiwgbV9iYXNlLCBzY3JhdGNo
R1BSLCBtX3ZhbHVlKTsKKyAgICBtX2RvbmUgPSBqaXQubGFiZWwoKTsKIH0KIAogdm9pZCBKSVRH
ZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0aChK
SVQmIGppdCwgdW5zaWduZWQgc3R1YkluZm8sIEdQUlJlZyBzdHViSW5mb0dQUikKQEAgLTIwOCw2
ICsyMjksMTYgQEAgSklUUHV0QnlJZEdlbmVyYXRvcjo6SklUUHV0QnlJZEdlbmVyYXRvcigKICAg
ICAgICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVycy5jbGVhcihzY3JhdGNoKTsKIH0KIAorc3Rh
dGljIHZvaWQgZ2VuZXJhdGVQdXRCeUlkSW5saW5lQWNjZXNzKENDYWxsSGVscGVycyYgaml0LCBH
UFJSZWcgc3R1YkluZm9HUFIsIEpTVmFsdWVSZWdzIGJhc2VKU1IsIEpTVmFsdWVSZWdzIHZhbHVl
SlNSLCBHUFJSZWcgc2NyYXRjaEdQUiwgR1BSUmVnIHNjcmF0Y2gyR1BSKQoreworICAgIGppdC5s
b2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VKU1IucGF5bG9hZEdQUigpLCBKU0NlbGw6
OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3JhdGNoR1BSKTsKKyAgICBhdXRvIGRvSW5saW5lQWNj
ZXNzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6RXF1YWwsIHNjcmF0Y2hHUFIsIENDYWxs
SGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1YkluZm86Om9mZnNldE9m
SW5saW5lQWNjZXNzQmFzZVN0cnVjdHVyZUlEKCkpKTsKKyAgICBqaXQuZmFySnVtcChDQ2FsbEhl
bHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNv
ZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsKKyAgICBkb0lubGluZUFjY2Vzcy5saW5r
KCZqaXQpOworICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJbmZvR1BS
LCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZCeUlkU2VsZk9mZnNldCgpKSwgc2NyYXRjaEdQ
Uik7CisgICAgaml0LnN0b3JlUHJvcGVydHkodmFsdWVKU1IsIGJhc2VKU1IucGF5bG9hZEdQUigp
LCBzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUik7Cit9CisKIHZvaWQgSklUUHV0QnlJZEdlbmVyYXRv
cjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHVi
SW5mbywgR1BSUmVnIHN0dWJJbmZvR1BSKQogewogICAgIFJFTEVBU0VfQVNTRVJUKEpJVENvZGU6
OnVzZURhdGFJQyhtX2ppdFR5cGUpKTsKQEAgLTIyMSwxOSArMjUyLDIzIEBAIHZvaWQgSklUUHV0
QnlJZEdlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1
bnNpZ25lZCBzdHViCiAgICAgdXNpbmcgQmFzZWxpbmVKSVRSZWdpc3RlcnM6OlB1dEJ5SWQ6OkZh
c3RQYXRoOjpzY3JhdGNoR1BSOwogICAgIHVzaW5nIEJhc2VsaW5lSklUUmVnaXN0ZXJzOjpQdXRC
eUlkOjpGYXN0UGF0aDo6c2NyYXRjaDJHUFI7CiAKLSAgICBqaXQubG9hZDMyKENDYWxsSGVscGVy
czo6QWRkcmVzcyhiYXNlSlNSLnBheWxvYWRHUFIoKSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNl
dCgpKSwgc2NyYXRjaEdQUik7Ci0gICAgYXV0byBkb0lubGluZUFjY2VzcyA9IGppdC5icmFuY2gz
MihDQ2FsbEhlbHBlcnM6OkVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
c3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VT
dHJ1Y3R1cmVJRCgpKSk7Ci0gICAgaml0LmZhckp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0
dWJJbmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZDb2RlUHRyKCkpLCBKSVRTdHVi
Um91dGluZVB0clRhZyk7Ci0gICAgZG9JbmxpbmVBY2Nlc3MubGluaygmaml0KTsKLSAgICBqaXQu
bG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzdHViSW5mb0dQUiwgU3RydWN0dXJlU3R1Yklu
Zm86Om9mZnNldE9mQnlJZFNlbGZPZmZzZXQoKSksIHNjcmF0Y2hHUFIpOwotICAgIGppdC5zdG9y
ZVByb3BlcnR5KHZhbHVlSlNSLCBiYXNlSlNSLnBheWxvYWRHUFIoKSwgc2NyYXRjaEdQUiwgc2Ny
YXRjaDJHUFIpOworICAgIGdlbmVyYXRlUHV0QnlJZElubGluZUFjY2VzcyhqaXQsIHN0dWJJbmZv
R1BSLCBiYXNlSlNSLCB2YWx1ZUpTUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIpOwogICAgIG1f
ZG9uZSA9IGppdC5sYWJlbCgpOwogfQogCi12b2lkIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3ZvaWQgSklUUHV0QnlJZEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCwgR1BSUmVnIHNjcmF0Y2hHUFIs
IEdQUlJlZyBzY3JhdGNoMkdQUikKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7Ci0gICAgZ2Vu
ZXJhdGVGYXN0Q29tbW9uKGppdCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlSZXBsYWNl
KCkpOworICAgIGlmICghSklUQ29kZTo6dXNlRGF0YUlDKG1faml0VHlwZSkpIHsKKyAgICAgICAg
Z2VuZXJhdGVGYXN0Q29tbW9uKGppdCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlSZXBs
YWNlKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKHNjcmF0Y2hHUFIg
IT0gSW52YWxpZEdQUlJlZyk7CisgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOworICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihtX3N0dWJJbmZvKSwgbV9zdHViSW5mby0+
bV9zdHViSW5mb0dQUik7CisgICAgZ2VuZXJhdGVQdXRCeUlkSW5saW5lQWNjZXNzKGppdCwgbV9z
dHViSW5mby0+bV9zdHViSW5mb0dQUiwgbV9iYXNlLCBtX3ZhbHVlLCBzY3JhdGNoR1BSLCBzY3Jh
dGNoMkdQUik7CisgICAgbV9kb25lID0gaml0LmxhYmVsKCk7CiB9CiAKIFZfSklUT3BlcmF0aW9u
X0dTc2lKSkMgSklUUHV0QnlJZEdlbmVyYXRvcjo6c2xvd1BhdGhGdW5jdGlvbigpCkBAIC0yODEs
NyArMzE2LDcgQEAgSklURGVsQnlWYWxHZW5lcmF0b3I6OkpJVERlbEJ5VmFsR2VuZXJhdG9yKENv
ZGVCbG9jayogY29kZUJsb2NrLCBCYWc8U3RydWN0dXJlU3QKICAgICB9CiB9CiAKLXZvaWQgSklU
RGVsQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkK
K3ZvaWQgSklURGVsQnlWYWxHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJz
JiBqaXQpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3RhcnQgPSBqaXQubGFi
ZWwoKTsKQEAgLTMyMyw3ICszNTgsNyBAQCBKSVREZWxCeUlkR2VuZXJhdG9yOjpKSVREZWxCeUlk
R2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsb2NrLCBCYWc8U3RydWN0dXJlU3R1YgogICAgIH0K
IH0KIAotdm9pZCBKSVREZWxCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNz
ZW1ibGVyJiBqaXQpCit2b2lkIEpJVERlbEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgo
Q0NhbGxIZWxwZXJzJiBqaXQpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3Rh
cnQgPSBqaXQubGFiZWwoKTsKQEAgLTM2MCw3ICszOTUsNyBAQCBKSVRJbkJ5VmFsR2VuZXJhdG9y
OjpKSVRJbkJ5VmFsR2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsb2NrLCBCYWc8U3RydWN0dXJl
U3R1YgogICAgIH0KIH0KIAotdm9pZCBKSVRJbkJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQ
YXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJVEluQnlWYWxHZW5lcmF0b3I6OmdlbmVy
YXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJiBqaXQpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8p
OwogICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKQEAgLTM5MiwxMCArNDI3LDMyIEBAIEpJVElu
QnlJZEdlbmVyYXRvcjo6SklUSW5CeUlkR2VuZXJhdG9yKAogICAgIFJFTEVBU0VfQVNTRVJUKGJh
c2UucGF5bG9hZEdQUigpICE9IHZhbHVlLnRhZ0dQUigpKTsKIH0KIAotdm9pZCBKSVRJbkJ5SWRH
ZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKK3N0YXRpYyB2
b2lkIGdlbmVyYXRlSW5CeUlkSW5saW5lQWNjZXNzKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcg
c3R1YkluZm9HUFIsIEpTVmFsdWVSZWdzIGJhc2VKU1IsIEdQUlJlZyBzY3JhdGNoR1BSLCBKU1Zh
bHVlUmVncyByZXN1bHRKU1IpCit7CisgICAgaml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoYmFzZUpTUi5wYXlsb2FkR1BSKCksIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIHNj
cmF0Y2hHUFIpOworICAgIGF1dG8gc2tpcElubGluZUFjY2VzcyA9IGppdC5icmFuY2gzMihDQ2Fs
bEhlbHBlcnM6Ok5vdEVxdWFsLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1
YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZklubGluZUFjY2Vzc0Jhc2VTdHJ1
Y3R1cmVJRCgpKSk7CisgICAgaml0LmJveEJvb2xlYW4odHJ1ZSwgcmVzdWx0SlNSKTsKKyAgICBh
dXRvIGZpbmlzaGVkID0gaml0Lmp1bXAoKTsKKworICAgIHNraXBJbmxpbmVBY2Nlc3MubGluaygm
aml0KTsKKyAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc3R1YkluZm9HUFIs
IFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQdHIoKSksIEpJVFN0dWJSb3V0aW5lUHRy
VGFnKTsKKworICAgIGZpbmlzaGVkLmxpbmsoJmppdCk7Cit9CisKK3ZvaWQgSklUSW5CeUlkR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0LCBHUFJSZWcgc2NyYXRj
aEdQUikKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7Ci0gICAgZ2VuZXJhdGVGYXN0Q29tbW9u
KGppdCwgSW5saW5lQWNjZXNzOjpzaXplRm9yUHJvcGVydHlBY2Nlc3MoKSk7CisgICAgaWYgKCFK
SVRDb2RlOjp1c2VEYXRhSUMobV9qaXRUeXBlKSkgeworICAgICAgICBnZW5lcmF0ZUZhc3RDb21t
b24oaml0LCBJbmxpbmVBY2Nlc3M6OnNpemVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIEFTU0VSVChzY3JhdGNoR1BSICE9IEludmFsaWRHUFJSZWcp
OworICAgIG1fc3RhcnQgPSBqaXQubGFiZWwoKTsKKyAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIobV9zdHViSW5mbyksIG1fc3R1YkluZm8tPm1fc3R1YkluZm9HUFIpOwor
ICAgIGdlbmVyYXRlSW5CeUlkSW5saW5lQWNjZXNzKGppdCwgbV9zdHViSW5mby0+bV9zdHViSW5m
b0dQUiwgbV9iYXNlLCBzY3JhdGNoR1BSLCBtX3ZhbHVlKTsKKyAgICBtX2RvbmUgPSBqaXQubGFi
ZWwoKTsKIH0KIAogdm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVEYXRh
SUNGYXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkluZm8sIEdQUlJlZyBzdHViSW5mb0dQ
UikKQEAgLTQxMCwxNyArNDY3LDggQEAgdm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRl
QmFzZWxpbmVEYXRhSUNGYXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQgc3R1YkkKICAgICB1c2lu
ZyBCYXNlbGluZUpJVFJlZ2lzdGVyczo6SW5CeUlkOjpyZXN1bHRKU1I7CiAgICAgdXNpbmcgQmFz
ZWxpbmVKSVRSZWdpc3RlcnM6OkluQnlJZDo6c2NyYXRjaEdQUjsKIAotICAgIENDYWxsSGVscGVy
czo6SnVtcExpc3QgZG9uZTsKLQotICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KGJhc2VKU1IucGF5bG9hZEdQUigpLCBKU0NlbGw6OnN0cnVjdHVyZUlET2Zmc2V0KCkpLCBzY3Jh
dGNoR1BSKTsKLSAgICBhdXRvIHNraXBJbmxpbmVBY2Nlc3MgPSBqaXQuYnJhbmNoMzIoQ0NhbGxI
ZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHN0dWJJ
bmZvR1BSLCBTdHJ1Y3R1cmVTdHViSW5mbzo6b2Zmc2V0T2ZJbmxpbmVBY2Nlc3NCYXNlU3RydWN0
dXJlSUQoKSkpOwotICAgIGppdC5ib3hCb29sZWFuKHRydWUsIHJlc3VsdEpTUik7Ci0gICAgYXV0
byBmaW5pc2hlZCA9IGppdC5qdW1wKCk7CisgICAgZ2VuZXJhdGVJbkJ5SWRJbmxpbmVBY2Nlc3Mo
aml0LCBzdHViSW5mb0dQUiwgYmFzZUpTUiwgc2NyYXRjaEdQUiwgcmVzdWx0SlNSKTsKIAotICAg
IHNraXBJbmxpbmVBY2Nlc3MubGluaygmaml0KTsKLSAgICBqaXQuZmFySnVtcChDQ2FsbEhlbHBl
cnM6OkFkZHJlc3Moc3R1YkluZm9HUFIsIFN0cnVjdHVyZVN0dWJJbmZvOjpvZmZzZXRPZkNvZGVQ
dHIoKSksIEpJVFN0dWJSb3V0aW5lUHRyVGFnKTsKLQotICAgIGZpbmlzaGVkLmxpbmsoJmppdCk7
CiAgICAgbV9kb25lID0gaml0LmxhYmVsKCk7CiB9CiAKQEAgLTQ1Miw3ICs1MDAsNyBAQCBKSVRJ
bnN0YW5jZU9mR2VuZXJhdG9yOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yKAogICAgIH0KIH0KIAot
dm9pZCBKSVRJbnN0YW5jZU9mR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1i
bGVyJiBqaXQpCit2b2lkIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgo
Q0NhbGxIZWxwZXJzJiBqaXQpCiB7CiAgICAgQVNTRVJUKG1fc3R1YkluZm8pOwogICAgIG1fc3Rh
cnQgPSBqaXQubGFiZWwoKTsKQEAgLTQ5MSw3ICs1MzksNyBAQCBKSVRHZXRCeVZhbEdlbmVyYXRv
cjo6SklUR2V0QnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1
cmVTdAogICAgIH0KIH0KIAotdm9pZCBKSVRHZXRCeVZhbEdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQordm9pZCBKSVRHZXRCeVZhbEdlbmVyYXRvcjo6Z2Vu
ZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5m
byk7CiAgICAgbV9zdGFydCA9IGppdC5sYWJlbCgpOwpAQCAtNTMxLDcgKzU3OSw3IEBAIEpJVFB1
dEJ5VmFsR2VuZXJhdG9yOjpKSVRQdXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9j
aywgQmFnPFN0cnVjdHVyZVN0CiAgICAgfQogfQogCi12b2lkIEpJVFB1dEJ5VmFsR2VuZXJhdG9y
OjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBqaXQpCit2b2lkIEpJVFB1dEJ5VmFs
R2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYgaml0KQogewogICAgIEFT
U0VSVChtX3N0dWJJbmZvKTsKICAgICBtX3N0YXJ0ID0gaml0LmxhYmVsKCk7CkBAIC01NjksNyAr
NjE3LDcgQEAgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpKSVRQcml2YXRlQnJhbmRB
Y2Nlc3NHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmwKICAgICB9CiB9CiAKLXZvaWQgSklUUHJp
dmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVy
JiBqaXQpCit2b2lkIEpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0
UGF0aChDQ2FsbEhlbHBlcnMmIGppdCkKIHsKICAgICBBU1NFUlQobV9zdHViSW5mbyk7CiAgICAg
bV9zdGFydCA9IGppdC5sYWJlbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5oCmluZGV4IDUyNGY5YjA0OWUwZjNmMzFjMjk2ZGM0
ZDRmNzJlNzY4YmVlZTNiNWMuLmQ5NzUyOWUwZGJhMDk5OGVhMGE5N2IwNWY4M2I4ODRhYTg0YmI1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVH
ZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hl
R2VuZXJhdG9yLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoSklUKQogCiAjaW5jbHVk
ZSAiQXNzZW1ibHlIZWxwZXJzLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiQ29kZU9yaWdpbi5oIgogI2luY2x1ZGUgIkpJVE9wZXJhdGlvblZhbGlkYXRpb24uaCIKICNp
bmNsdWRlICJKSVRPcGVyYXRpb25zLmgiCkBAIC01NiwxMyArNTcsMTMgQEAgY2xhc3MgSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IgewogcHVibGljOgogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbygpIGNvbnN0IHsgcmV0dXJuIG1fc3R1YkluZm87IH0KIAotICAgIHZvaWQgcmVwb3J0U2xv
d1BhdGhDYWxsKE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBzbG93UGF0aEJlZ2luLCBNYWNyb0Fzc2Vt
Ymxlcjo6Q2FsbCBjYWxsKQorICAgIHZvaWQgcmVwb3J0U2xvd1BhdGhDYWxsKENDYWxsSGVscGVy
czo6TGFiZWwgc2xvd1BhdGhCZWdpbiwgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGwpCiAgICAgewog
ICAgICAgICBtX3Nsb3dQYXRoQmVnaW4gPSBzbG93UGF0aEJlZ2luOwogICAgICAgICBtX3Nsb3dQ
YXRoQ2FsbCA9IGNhbGw7CiAgICAgfQogICAgIAotICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBz
bG93UGF0aEJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zbG93UGF0aEJlZ2luOyB9CisgICAgQ0Nh
bGxIZWxwZXJzOjpMYWJlbCBzbG93UGF0aEJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zbG93UGF0
aEJlZ2luOyB9CiAKICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVmZmVyJiBmYXN0
UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlciwKQEAgLTc4LDEw
ICs3OSwxMCBAQCBjbGFzcyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgU3RydWN0dXJl
U3R1YkluZm8qIG1fc3R1YkluZm8geyBudWxscHRyIH07CiAKIHB1YmxpYzoKLSAgICBNYWNyb0Fz
c2VtYmxlcjo6TGFiZWwgbV9zdGFydDsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgbV9kb25l
OwotICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX3Nsb3dQYXRoQmVnaW47Ci0gICAgTWFjcm9B
c3NlbWJsZXI6OkNhbGwgbV9zbG93UGF0aENhbGw7CisgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBt
X3N0YXJ0OworICAgIENDYWxsSGVscGVyczo6TGFiZWwgbV9kb25lOworICAgIENDYWxsSGVscGVy
czo6TGFiZWwgbV9zbG93UGF0aEJlZ2luOworICAgIENDYWxsSGVscGVyczo6Q2FsbCBtX3Nsb3dQ
YXRoQ2FsbDsKIH07CiAKIGNsYXNzIEpJVEJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IgewpAQCAtOTMsNyArOTQsNyBAQCBjbGFzcyBKSVRCeUlkR2VuZXJhdG9y
IDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAgICAgSlNWYWx1ZVJlZ3Mg
YmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKIHB1YmxpYzoK
LSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAorICAgIENDYWxs
SGVscGVyczo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJU
KG1fc2xvd1BhdGhKdW1wLmlzU2V0KCkpOwogICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXA7
CkBAIC0xMDQsMTMgKzEwNSwxMyBAQCBjbGFzcyBKSVRCeUlkR2VuZXJhdG9yIDogcHVibGljIEpJ
VElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAKIHByb3RlY3RlZDoKICAgICAKLSAgICB2b2lk
IGdlbmVyYXRlRmFzdENvbW1vbihNYWNyb0Fzc2VtYmxlciYsIHNpemVfdCBzaXplKTsKKyAgICB2
b2lkIGdlbmVyYXRlRmFzdENvbW1vbihDQ2FsbEhlbHBlcnMmLCBzaXplX3Qgc2l6ZSk7CiAgICAg
CiAgICAgSlNWYWx1ZVJlZ3MgbV9iYXNlOwogICAgIEpTVmFsdWVSZWdzIG1fdmFsdWU7CiAKIHB1
YmxpYzoKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBtX3Nsb3dQYXRoSnVtcDsKKyAgICBDQ2Fs
bEhlbHBlcnM6Okp1bXAgbV9zbG93UGF0aEp1bXA7CiB9OwogCiBjbGFzcyBKSVRHZXRCeUlkR2Vu
ZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVEJ5SWRHZW5lcmF0b3IgewpAQCAtMTIxLDcgKzEyMiw3
IEBAIGNsYXNzIEpJVEdldEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVy
YXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRU
eXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJl
Z2lzdGVycywgQ2FjaGVhYmxlSWRlbnRpZmllciwKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwg
SlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzdHViSW5mb0dQUiwgQWNjZXNzVHlwZSk7CiAgICAg
Ci0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CisgICAgdm9pZCBn
ZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYsIEdQUlJlZyBzY3JhdGNoR1BSKTsKICAgICB2
b2lkIGdlbmVyYXRlQmFzZWxpbmVEYXRhSUNGYXN0UGF0aChKSVQmLCB1bnNpZ25lZCBzdHViSW5m
b0NvbnN0YW50LCBHUFJSZWcgc3R1YkluZm9HUFIpOwogCiBwcml2YXRlOgpAQCAtMTM2LDggKzEz
Nyw4IEBAIGNsYXNzIEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBK
SVRCeUlkR2VuZXJhdG9yIHsKICAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJ
bmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVy
U2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVl
UmVncyB2YWx1ZSwgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdGhpc1JlZ3MsIEdQUlJl
ZyBzdHViSW5mb0dQUik7CiAKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJz
JiwgR1BSUmVnIHNjcmF0Y2hHUFIpOwogICAgIHZvaWQgZ2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zh
c3RQYXRoKEpJVCYsIHVuc2lnbmVkIHN0dWJJbmZvQ29uc3RhbnQsIEdQUlJlZyBzdHViSW5mb0dQ
Uik7Ci0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJik7CiB9OwogCiBj
bGFzcyBKSVRQdXRCeUlkR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVEJ5SWRHZW5lcmF0b3Ig
ewpAQCAtMTQ4LDcgKzE0OSw3IEBAIGNsYXNzIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBw
dWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1
cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBS
ZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ2FjaGVhYmxlSWRlbnRpZmllciwKICAgICAgICAg
SlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzdHViSW5mb0dQUiwg
R1BSUmVnIHNjcmF0Y2gsIEVDTUFNb2RlLCBQdXRLaW5kKTsKICAgICAKLSAgICB2b2lkIGdlbmVy
YXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgo
Q0NhbGxIZWxwZXJzJiwgR1BSUmVnIHNjcmF0Y2hHUFIsIEdQUlJlZyBzY3JhdGNoMkdQUik7CiAg
ICAgdm9pZCBnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiwgdW5zaWduZWQgc3R1
YkluZm9Db25zdGFudCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKICAgICAKICAgICBWX0pJVE9wZXJh
dGlvbl9HU3NpSkpDIHNsb3dQYXRoRnVuY3Rpb24oKTsKQEAgLTE2Nyw3ICsxNjgsNyBAQCBjbGFz
cyBKSVRQdXRCeVZhbEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRU
eXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3Rl
clNldCYgdXNlZFJlZ2lzdGVycywKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJl
Z3MgcHJvcGVydHksIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIGFycmF5UHJvZmlsZUdQUiwg
R1BSUmVnIHN0dWJJbmZvR1BSKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRo
SnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0
CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwog
ICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMTc1LDEyICsxNzYsMTIg
QEAgY2xhc3MgSklUUHV0QnlWYWxHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IgewogCiAgICAgdm9pZCBmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aExp
bmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7CiAKLSAgICB2b2lkIGdl
bmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBh
dGgoQ0NhbGxIZWxwZXJzJik7CiAKICAgICBKU1ZhbHVlUmVncyBtX2Jhc2U7CiAgICAgSlNWYWx1
ZVJlZ3MgbV92YWx1ZTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG1fc2xv
d1BhdGhKdW1wOworICAgIENDYWxsSGVscGVyczo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVt
cDsKIH07CiAKIGNsYXNzIEpJVERlbEJ5VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElu
bGluZUNhY2hlR2VuZXJhdG9yIHsKQEAgLTE5Miw3ICsxOTMsNyBAQCBjbGFzcyBKSVREZWxCeVZh
bEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAg
ICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3Jp
Z2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdz
IHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaCk7CiAKLSAgICBNYWNy
b0Fzc2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAorICAgIENDYWxsSGVscGVyczo6
SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fc2xvd1Bh
dGhKdW1wLm1fanVtcC5pc1NldCgpKTsKICAgICAgICAgcmV0dXJuIG1fc2xvd1BhdGhKdW1wLm1f
anVtcDsKQEAgLTIwMSw5ICsyMDIsOSBAQCBjbGFzcyBKSVREZWxCeVZhbEdlbmVyYXRvciBmaW5h
bCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgdm9pZCBmaW5hbGl6ZSgK
ICAgICAgICAgTGlua0J1ZmZlciYgZmFzdFBhdGhMaW5rQnVmZmVyLCBMaW5rQnVmZmVyJiBzbG93
UGF0aExpbmtCdWZmZXIpOwogCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1i
bGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVycyYpOwogCi0gICAg
TWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9zbG93UGF0aEp1bXA7CisgICAgQ0NhbGxI
ZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOwogfTsKIAogY2xhc3MgSklURGVs
QnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CkBA
IC0yMTUsNyArMjE2LDcgQEAgY2xhc3MgSklURGVsQnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1
Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25z
dCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ2FjaGVhYmxlSWRlbnRpZmllciwKICAgICAg
ICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9H
UFIsIEdQUlJlZyBzY3JhdGNoKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRo
SnVtcCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0
CiAgICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwog
ICAgICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMjI0LDkgKzIyNSw5IEBA
IGNsYXNzIEpJVERlbEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVH
ZW5lcmF0b3IgewogICAgIHZvaWQgZmluYWxpemUoCiAgICAgICAgIExpbmtCdWZmZXImIGZhc3RQ
YXRoTGlua0J1ZmZlciwgTGlua0J1ZmZlciYgc2xvd1BhdGhMaW5rQnVmZmVyKTsKIAotICAgIHZv
aWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVG
YXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVK
dW1wIG1fc2xvd1BhdGhKdW1wOworICAgIENDYWxsSGVscGVyczo6UGF0Y2hhYmxlSnVtcCBtX3Ns
b3dQYXRoSnVtcDsKIH07CiAKIGNsYXNzIEpJVEluQnlWYWxHZW5lcmF0b3IgOiBwdWJsaWMgSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IgewpAQCAtMjM4LDcgKzIzOSw3IEBAIGNsYXNzIEpJVEluQnlW
YWxHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgICAgICBD
b2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwg
Q2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3Rl
cnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHByb3BlcnR5LCBKU1Zh
bHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKLSAgICBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAorICAgIENDYWxsSGVscGVyczo6SnVtcCBzbG93
UGF0aEp1bXAoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fc2xvd1BhdGhKdW1wLm1f
anVtcC5pc1NldCgpKTsKICAgICAgICAgcmV0dXJuIG1fc2xvd1BhdGhKdW1wLm1fanVtcDsKQEAg
LTI0Nyw5ICsyNDgsOSBAQCBjbGFzcyBKSVRJbkJ5VmFsR2VuZXJhdG9yIDogcHVibGljIEpJVElu
bGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICB2b2lkIGZpbmFsaXplKAogICAgICAgICBMaW5rQnVm
ZmVyJiBmYXN0UGF0aExpbmtCdWZmZXIsIExpbmtCdWZmZXImIHNsb3dQYXRoTGlua0J1ZmZlcik7
CiAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKKyAgICB2b2lk
IGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7CiAKLSAgICBNYWNyb0Fzc2VtYmxlcjo6
UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKKyAgICBDQ2FsbEhlbHBlcnM6OlBhdGNoYWJs
ZUp1bXAgbV9zbG93UGF0aEp1bXA7CiB9OwogCiBjbGFzcyBKSVRJbkJ5SWRHZW5lcmF0b3IgZmlu
YWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CkBAIC0yNjAsNyArMjYxLDcgQEAgY2xhc3Mg
SklUSW5CeUlkR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVEJ5SWRHZW5lcmF0b3IgewogICAg
ICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9y
aWdpbiwgQ2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENh
Y2hlYWJsZUlkZW50aWZpZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdz
IHZhbHVlLCBHUFJSZWcgc3R1YkluZm9HUFIpOwogCi0gICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRo
KE1hY3JvQXNzZW1ibGVyJik7CisgICAgdm9pZCBnZW5lcmF0ZUZhc3RQYXRoKENDYWxsSGVscGVy
cyYsIEdQUlJlZyBzY3JhdGNoR1BSKTsKICAgICB2b2lkIGdlbmVyYXRlQmFzZWxpbmVEYXRhSUNG
YXN0UGF0aChKSVQmLCB1bnNpZ25lZCBzdHViSW5mb0NvbnN0YW50LCBHUFJSZWcgc3R1YkluZm9H
UFIpOwogfTsKIApAQCAtMjc0LDkgKzI3NSw5IEBAIGNsYXNzIEpJVEluc3RhbmNlT2ZHZW5lcmF0
b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgICAgICBHUFJS
ZWcgdmFsdWUsIEdQUlJlZyBwcm90b3R5cGUsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNj
cmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsCiAgICAgICAgIGJvb2wgcHJvdG90eXBlSXNLbm93bk9i
amVjdCA9IGZhbHNlKTsKICAgICAKLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3Nl
bWJsZXImKTsKKyAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoQ0NhbGxIZWxwZXJzJik7CiAKLSAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAorICAgIENDYWxsSGVs
cGVyczo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1f
c2xvd1BhdGhKdW1wLm1fanVtcC5pc1NldCgpKTsKICAgICAgICAgcmV0dXJuIG1fc2xvd1BhdGhK
dW1wLm1fanVtcDsKQEAgLTI4NCw3ICsyODUsNyBAQCBjbGFzcyBKSVRJbnN0YW5jZU9mR2VuZXJh
dG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKIAogICAgIHZvaWQg
ZmluYWxpemUoTGlua0J1ZmZlciYgZmFzdFBhdGhMaW5rQnVmZmVyLCBMaW5rQnVmZmVyJiBzbG93
UGF0aExpbmtCdWZmZXIpOwogCi0gICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAgbV9z
bG93UGF0aEp1bXA7CisgICAgQ0NhbGxIZWxwZXJzOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhK
dW1wOwogfTsKIAogY2xhc3MgSklUR2V0QnlWYWxHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IgewpAQCAtMjk2LDcgKzI5Nyw3IEBAIGNsYXNzIEpJVEdldEJ5
VmFsR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAg
ICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVP
cmlnaW4sIENhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2Vk
UmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBwcm9wZXJ0
eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1YkluZm9HUFIpOwogCi0gICAgTWFjcm9B
c3NlbWJsZXI6Okp1bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKKyAgICBDQ2FsbEhlbHBlcnM6Okp1
bXAgc2xvd1BhdGhKdW1wKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3Nsb3dQYXRo
SnVtcC5tX2p1bXAuaXNTZXQoKSk7CiAgICAgICAgIHJldHVybiBtX3Nsb3dQYXRoSnVtcC5tX2p1
bXA7CkBAIC0zMDUsMTIgKzMwNiwxMiBAQCBjbGFzcyBKSVRHZXRCeVZhbEdlbmVyYXRvciBmaW5h
bCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgdm9pZCBmaW5hbGl6ZSgK
ICAgICAgICAgTGlua0J1ZmZlciYgZmFzdFBhdGhMaW5rQnVmZmVyLCBMaW5rQnVmZmVyJiBzbG93
UGF0aExpbmtCdWZmZXIpOwogICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fz
c2VtYmxlciYpOworICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAog
ICAgIEpTVmFsdWVSZWdzIG1fYmFzZTsKICAgICBKU1ZhbHVlUmVncyBtX3Jlc3VsdDsKIAotICAg
IE1hY3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOworICAgIENDYWxs
SGVscGVyczo6UGF0Y2hhYmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKIH07CiAKIGNsYXNzIEpJVFBy
aXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdl
bmVyYXRvciB7CkBAIC0zMjIsNyArMzIzLDcgQEAgY2xhc3MgSklUUHJpdmF0ZUJyYW5kQWNjZXNz
R2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJhdG9yIHsKICAgICAg
ICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmln
aW4sIENhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVn
aXN0ZXJzLAogICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyBicmFuZCwgR1BS
UmVnIHN0dWJJbmZvR1BSKTsKIAotICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVt
cCgpIGNvbnN0CisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQobV9zbG93UGF0aEp1bXAubV9qdW1wLmlzU2V0KCkpOwogICAg
ICAgICByZXR1cm4gbV9zbG93UGF0aEp1bXAubV9qdW1wOwpAQCAtMzMxLDkgKzMzMiw5IEBAIGNs
YXNzIEpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRJbmxp
bmVDYWNoZUdlbmVyYXRvciB7CiAgICAgdm9pZCBmaW5hbGl6ZSgKICAgICAgICAgTGlua0J1ZmZl
ciYgZmFzdFBhdGhMaW5rQnVmZmVyLCBMaW5rQnVmZmVyJiBzbG93UGF0aExpbmtCdWZmZXIpOwog
ICAgIAotICAgIHZvaWQgZ2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYpOworICAgIHZv
aWQgZ2VuZXJhdGVGYXN0UGF0aChDQ2FsbEhlbHBlcnMmKTsKIAotICAgIE1hY3JvQXNzZW1ibGVy
OjpQYXRjaGFibGVKdW1wIG1fc2xvd1BhdGhKdW1wOworICAgIENDYWxsSGVscGVyczo6UGF0Y2hh
YmxlSnVtcCBtX3Nsb3dQYXRoSnVtcDsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5
cGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCmluZGV4IDgyN2Yx
YTRkOWMxZWNjODlkMzIwNDMzMzYxNWMzY2FlYzIyYTBlNjguLmRkYTA5MWEyN2YzOWI1OWEwMWVk
YjU0OGNhMzJmY2Y3NzdiZTcxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuY3BwCkBAIC00MzQsOSArNDM0LDYgQEAgdm9pZCBPcHRpb25zOjpyZWNvbXB1dGVEZXBl
bmRlbnRPcHRpb25zKCkKICAgICBPcHRpb25zOjp1c2VDb25jdXJyZW50R0MoKSA9IGZhbHNlOwog
I2VuZGlmCiAKLSAgICBpZiAoIU9wdGlvbnM6OnVzZURhdGFJQygpKQotICAgICAgICBPcHRpb25z
Ojp1c2VEYXRhSUNJbk9wdGltaXppbmdKSVQoKSA9IGZhbHNlOwotCiAgICAgLy8gQXQgaW5pdGlh
bGl6YXRpb24gdGltZSwgd2UgbWF5IGRlY2lkZSB0aGF0IHVzZUpJVCBzaG91bGQgYmUgZmFsc2Ug
Zm9yIGFueQogICAgIC8vIG51bWJlciBvZiByZWFzb25zIChpbmNsdWRpbmcgZmFpbGluZyB0byBh
bGxvY2F0ZSBKSVQgbWVtb3J5KSwgYW5kIHRoZXJlZm9yZSwKICAgICAvLyB3aWxsIC8gc2hvdWxk
IG5vdCBiZSBhYmxlIHRvIGVuYWJsZSBhbnkgSklUIHJlbGF0ZWQgc2VydmljZXMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAppbmRleCA4MjVhMmI2NDg3ZWJk
ZGQyNTUyNWUyNmM0MDg0M2EwNTJhNzA2MDJiLi42OTRmZTMwOTRlN2Q1MTVkZWM0OTJmYWRhMzcx
OTEwMTZmNzM0MThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zTGlzdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNM
aXN0LmgKQEAgLTUzMSw3ICs1MzEsNiBAQCBib29sIGNhblVzZVdlYkFzc2VtYmx5RmFzdE1lbW9y
eSgpOwogICAgIHYoQm9vbCwgZHVtcEJhc2VsaW5lSklUU2l6ZVN0YXRpc3RpY3MsIGZhbHNlLCBO
b3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIGR1bXBERkdKSVRTaXplU3RhdGlzdGljcywg
ZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgdmVyYm9zZUV4ZWN1dGFibGVQ
b29sQWxsb2NhdGlvbiwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAotICAgIHYoQm9vbCwgdXNl
RGF0YUlDLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihCb29sLCB1c2VEYXRhSUNJ
bk9wdGltaXppbmdKSVQsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHVz
ZURhdGFJQ1NoYXJpbmcsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KEJvb2wsIHVz
ZUJhc2VsaW5lSklUQ29kZVNoYXJpbmcsIGlzNjRCaXQoKSwgTm9ybWFsLCBudWxscHRyKSBcCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDBkN2Qy
Y2M3NGU5Yzk2ZDU1NzY5ZmMyMDA0NDY1OWFkMzUwZDc1YS4uYTQxOWJiNDU5MzRjYjNmNWE0MTc4
MTViZmVmN2NlMTBlNjBlZmJkZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTAzLTIyICBZdXN1a2UgU3V6dWtp
ICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgW0pTQ10gVGVzdCBERkcgLyBGVEwgRGF0
YUlDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEy
MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHM6CisKIDIwMjItMDMtMjEgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSB0aGUgPG1vZGVsPiBlbGVt
ZW50IGluIENhcHRpdmUgUG9ydGFsIG1vZGUuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1
bi1qc2Mtc3RyZXNzLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwpp
bmRleCBkZDcxMjhlZTQxNDQ1YWZjY2Q3OTQ2MDZkNTkxNjNmM2Q5NTMxZDQ1Li45MTY2NThiMWEy
NWE2OTEwMGY5NWU4MmRhOTY1ZmJlZGQwYmFjYjU4IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3Mt
dGVzdHMKQEAgLTEwOTEsNyArMTA5MSw3IEBAIEJBU0VfTU9ERVMgPSBbCiAgICAgICAgICJGVExO
b0NKSVQiLAogICAgICAgICAibWlzYy1mdGwtbm8tY2ppdCIsCiAgICAgICAgIFsKLSAgICAgICAg
ICAgICItLXVzZURhdGFJQz10cnVlIiwKKyAgICAgICAgICAgICItLXVzZURhdGFJQ0luT3B0aW1p
emluZ0pJVD10cnVlIiwKICAgICAgICAgXSArCiAgICAgICAgIEZUTF9PUFRJT05TICsKICAgICAg
ICAgTk9fQ0pJVF9PUFRJT05TCkBAIC0xMTE3LDcgKzExMTcsNyBAQCBCQVNFX01PREVTID0gWwog
ICAgICAgICAgICAgIi0tdmFsaWRhdGVCQ0U9dHJ1ZSIsCiAgICAgICAgICAgICAiLS11c2VTYW1w
bGluZ1Byb2ZpbGVyPXRydWUiLAogICAgICAgICAgICAgIi0tYWlyRm9yY2VJUkNBbGxvY2F0b3I9
dHJ1ZSIsCi0gICAgICAgICAgICAiLS11c2VEYXRhSUM9dHJ1ZSIsCisgICAgICAgICAgICAiLS11
c2VEYXRhSUNJbk9wdGltaXppbmdKSVQ9dHJ1ZSIsCiAgICAgICAgIF0gKwogICAgICAgICBGVExf
T1BUSU9OUyArCiAgICAgICAgIE5PX0NKSVRfT1BUSU9OUwpAQCAtMTE3OCw3ICsxMTc4LDcgQEAg
QkFTRV9NT0RFUyA9IFsKICAgICAgICAgICAgICItLWFpckZvcmNlQnJpZ2dzQWxsb2NhdG9yPXRy
dWUiLAogICAgICAgICAgICAgIi0tdXNlUmFuZG9taXppbmdFeGVjdXRhYmxlSXNsYW5kQWxsb2Nh
dGlvbj10cnVlIiwKICAgICAgICAgICAgICItLWZvcmNlUG9seVByb3RvPXRydWUiLAotICAgICAg
ICAgICAgIi0tdXNlRGF0YUlDPXRydWUiLAorICAgICAgICAgICAgIi0tdXNlRGF0YUlDSW5PcHRp
bWl6aW5nSklUPXRydWUiLAogICAgICAgICBdICsKICAgICAgICAgRlRMX09QVElPTlMgKwogICAg
ICAgICBFQUdFUl9PUFRJT05TICsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGQyNmI3Mzc0NWJiNzQwMTY4YzA1ZDA3YmM3OGM2OTFmNTMx
NzAxMC4uODY3Y2UxYjdlOTBmMzQwODFmMDg4Y2YzZWViZjM0NDQwNmY0YWY4ZCAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMi0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisg
ICAgICAgIFtKU0NdIFRlc3QgREZHIC8gRlRMIERhdGFJQworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3MvZGVsdGFibHVlLXZh
cmFyZ3MuanM6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3JpY2hhcmRzLXRyeS1jYXRjaC5q
czoKKwogMjAyMi0wMy0yMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIFJlZmVyZW5jZUVycm9yIHdoZW4gdXNpbmcgZXh0cmEgcGFyZW5zIGluIGNs
YXNzIGZpZWxkcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvZGVsdGFibHVl
LXZhcmFyZ3MuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5q
cwppbmRleCBhOGRlNDliYmI0YzBmNTBjMzliY2FiM2Q5ODgwMzA1N2I5MTQ3YTY4Li4xMGJmN2Fk
YjNiYTk0NmFkNDA2M2I5YWEyMDczMmEyN2RhZDk3N2I5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL21p
Y3JvYmVuY2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qcworKysgYi9KU1Rlc3RzL21pY3JvYmVu
Y2htYXJrcy9kZWx0YWJsdWUtdmFyYXJncy5qcwpAQCAtMSw1ICsxLDUgQEAKIC8vQCBza2lwIGlm
ICRtb2RlbCA9PSAiQXBwbGUgV2F0Y2ggU2VyaWVzIDMiICMgYWRkZWQgYnkgbWFyay1qc2Mtc3Ry
ZXNzLXRlc3QucHkKLS8vQCByZXF1aXJlT3B0aW9ucygiLS11c2VEYXRhSUM9dHJ1ZSIsICItLXVz
ZURhdGFJQ1NoYXJpbmc9dHJ1ZSIpCisvL0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRGF0YUlDSW5P
cHRpbWl6aW5nSklUPXRydWUiLCAiLS11c2VEYXRhSUNTaGFyaW5nPXRydWUiKQogCiAvLyBDb3B5
cmlnaHQgMjAwOCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
Ly8gQ29weXJpZ2h0IDE5OTYgSm9obiBNYWxvbmV5IGFuZCBNYXJpbyBXb2xjemtvLgpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3MvcmljaGFyZHMtdHJ5LWNhdGNoLmpzIGIvSlNU
ZXN0cy9taWNyb2JlbmNobWFya3MvcmljaGFyZHMtdHJ5LWNhdGNoLmpzCmluZGV4IGNiMmUyOWVh
OGIwM2QzNWM0ZDk1NjJmZjRhMjBjZDJjMGUxNzk0MjYuLjYxMGQ2MjY4NDliMTdkNzRjMzM2NGMx
MTZiZDJlNDczMWNjMmUxNTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3Jp
Y2hhcmRzLXRyeS1jYXRjaC5qcworKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9yaWNoYXJk
cy10cnktY2F0Y2guanMKQEAgLTEsNSArMSw1IEBACiAvL0Agc2tpcCBpZiAkbW9kZWwgPT0gIkFw
cGxlIFdhdGNoIFNlcmllcyAzIiAjIGFkZGVkIGJ5IG1hcmstanNjLXN0cmVzcy10ZXN0LnB5Ci0v
L0AgcmVxdWlyZU9wdGlvbnMoIi0tdXNlRGF0YUlDPXRydWUiLCAiLS11c2VEYXRhSUNTaGFyaW5n
PXRydWUiKQorLy9AIHJlcXVpcmVPcHRpb25zKCItLXVzZURhdGFJQ0luT3B0aW1pemluZ0pJVD10
cnVlIiwgIi0tdXNlRGF0YUlDU2hhcmluZz10cnVlIikKIAogLy8gQ29weXJpZ2h0IDIwMDYtMjAw
OCB0aGUgVjggcHJvamVjdCBhdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogLy8gUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>