<?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>212739</bug_id>
          
          <creation_ts>2020-06-04 05:03:33 -0700</creation_ts>
          <short_desc>File URLs with hostnames are misleading</short_desc>
          <delta_ts>2020-06-08 04:33:21 -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>Page Loading</component>
          <version>WebKit Local 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1659051</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-04 05:03:33 -0700</bug_when>
    <thetext>File URLs with hostnames are misleading</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659052</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-04 05:03:46 -0700</bug_when>
    <thetext>&lt;rdar://problem/63754917&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659054</commentid>
    <comment_count>2</comment_count>
      <attachid>401015</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-04 05:26:06 -0700</bug_when>
    <thetext>Created attachment 401015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659506</commentid>
    <comment_count>3</comment_count>
      <attachid>401127</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-05 00:34:30 -0700</bug_when>
    <thetext>Created attachment 401127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659745</commentid>
    <comment_count>4</comment_count>
      <attachid>401127</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-06-05 12:42:47 -0700</bug_when>
    <thetext>Comment on attachment 401127
Patch

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

seems reasonable.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/OpenAndCloseWindow.mm:337
&gt; +        TestWebKitAPI::Util::sleep(0.1);

spinRunLoop might be nicer here.  It could save almost 1/10 of a second each time this test is run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660135</commentid>
    <comment_count>5</comment_count>
      <attachid>401314</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 00:34:57 -0700</bug_when>
    <thetext>Created attachment 401314
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660136</commentid>
    <comment_count>6</comment_count>
      <attachid>401315</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 00:40:51 -0700</bug_when>
    <thetext>Created attachment 401315
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660156</commentid>
    <comment_count>7</comment_count>
      <attachid>401318</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 02:32:21 -0700</bug_when>
    <thetext>Created attachment 401318
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660157</commentid>
    <comment_count>8</comment_count>
      <attachid>401319</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 02:40:23 -0700</bug_when>
    <thetext>Created attachment 401319
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660167</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-08 04:33:20 -0700</bug_when>
    <thetext>Committed r262707: &lt;https://trac.webkit.org/changeset/262707&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401319.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401015</attachid>
            <date>2020-06-04 05:26:06 -0700</date>
            <delta_ts>2020-06-05 00:34:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212739-20200604142604.patch</filename>
            <type>text/plain</type>
            <size>8470</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBlYWU2YzFhN2E5YzQ0
NTU0NzM1ZDNhNWVlZWViN2Q4NTQ2YzA0MS4uNDc4ZjM1ZTIwMTY5MmMwMzUwODFhOTIxZGY5NWQ2
ZmM0MDY1YmI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA2LTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlIFVSTHMgd2l0aCBo
b3N0bmFtZXMgYXJlIG1pc2xlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjczOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM3NTQ5MTc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hvd2lu
ZyBhIGZpbGUgVVJMIGxpa2UgZmlsZTovL2V4YW1wbGUub3JnL3Rlc3QgaXMgbWlzbGVhZGluZyB0
byB1c2Vycy4KKyAgICAgICAgVG8gcHJldmVudCB0aGlzLCB3ZSBqdXN0IGRvIGEgcmVkaXJlY3Rp
b24gdG8gdGhlIHNhbWUgZmlsZSBVUkwgd2l0aCBhbiBlbXB0eSBob3N0LgorICAgICAgICBDb3Zl
cmVkIGJ5IGFkZGVkIEFQSSB0ZXN0LgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3Qp
OgorCiAyMDIwLTA2LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZCBzdXBwb3J0IGZvciBtZWRpYS1zb3VyY2Ugc3RhdHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGU0MTI0MWFkMTE1ZDZhMWFlOTkzOWIyNDg3MTBj
YjljZDdmMmVkNGYuLjBhOWUwZGZlYTEzYzBiOTgyNmYwMzUwNDFiYTI3MmExYjE0YjU2ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNjUzLDYgKzY1Mywx
MiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0
JiYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyYwogICAgICAgICB9CiAgICAgfQogCisgICAgaWYg
KCFuZXdSZXF1ZXN0LnVybCgpLmhvc3QoKS5pc0VtcHR5KCkgJiYgU2VjdXJpdHlPcmlnaW46OnNo
b3VsZElnbm9yZUhvc3QobmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAgICAgYXV0byB1cmwgPSBu
ZXdSZXF1ZXN0LnVybCgpOworICAgICAgICB1cmwuc2V0SG9zdCh7IH0pOworICAgICAgICBuZXdS
ZXF1ZXN0LnNldFVSTChXVEZNb3ZlKHVybCkpOworICAgIH0KKwogI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKICAgICBpZiAobV9jb250ZW50RmlsdGVyICYmICFtX2NvbnRlbnRGaWx0ZXIt
PmNvbnRpbnVlQWZ0ZXJXaWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25z
ZSkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG5ld1JlcXVlc3Qp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBj
NjVmNzJmODkxOTViYmJlM2JiMDc1MTJmNDRjNDNlYjA0YmM3MWE1Li5iY2Y0OGYzNTIxOWFhNGM5
OWRhMTU3ZWJkZWNiMjFhN2U3ZmRiNDBmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDYtMDQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEZpbGUgVVJMcyB3aXRoIGhvc3Ru
YW1lcyBhcmUgbWlzbGVhZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEyNzM5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82Mzc1NDkxNz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L29wZW4td2luZG93LXdpdGgtZmlsZS11cmwtd2l0
aC1ob3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvT3BlbkFuZENsb3NlV2luZG93Lm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDYt
MDIgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydCBG
RUFUVVJFU19ERUZJTkVTIHJlbGF0ZWQgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1ODAwNTY1ZDJiODNlMDY0ZThiZDY1ZTM4MmZlMzFlOWQyZWVlZGE0Li5iM2I3NmM4OWNjZThk
YzQ4Njc3ZWRkZmI2ZjBlNjNhNDY5MzE2NDJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjMwLDYgKzIzMCw3IEBACiAJCTQxMzVGQjg1MjAxMUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJDb3Jl
VGVzdFN1cHBvcnQuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTM1RkI4NjIwMTFGQUJGMDAzMzIxMzkgLyogbGliV2ViQ29yZVRlc3RTdXBw
b3J0LmR5bGliICovOyB9OwogCQk0MTRBRDY4NjIyODVEMUMwMDA3NzdGMkQgLyogU3RvcmFnZVF1
b3RhLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0
QUQ2ODUyMjg1RDFCMDAwNzc3RjJEIC8qIFN0b3JhZ2VRdW90YS5tbSAqLzsgfTsKIAkJNDE2NjFD
NjYyMzU1RTg1RTAwRDMzQzI3IC8qIGdldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjYxQzY1MjM1
NUQ5OEIwMEQzM0MyNyAvKiBnZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRtbCAqLzsgfTsKKwkJNDE4
NDhGNDQyNDg5MTg3OTAwMEUyNTg4IC8qIG9wZW4td2luZG93LXdpdGgtZmlsZS11cmwtd2l0aC1o
b3N0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE4NDhGNDMyNDg5MTgxNTAwMEUyNTg4IC8qIG9wZW4td2luZG93LXdpdGgtZmlsZS11
cmwtd2l0aC1ob3N0Lmh0bWwgKi87IH07CiAJCTQxODgyRjAzMjEwMTBDMEQwMDJGRjI4OCAvKiBQ
cm9jZXNzUHJlV2FybWluZy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxODgyRjAyMjEwMTBBNzAwMDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5t
bSAqLzsgfTsKIAkJNDQwNzdCQjEyMzE0NEI1MDAwMTc5RTJEIC8qIERhdGFEZXRlY3RvcnNUZXN0
SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQw
NzdCQjAyMzE0NDlEMjAwMTc5RTJEIC8qIERhdGFEZXRlY3RvcnNUZXN0SU9TLm1tICovOyB9Owog
CQk0NDMzQTM5NjIwODA0NDE0MDA5MUVENTcgLyogU3luY2hyb25vdXNUaW1lb3V0VGVzdHMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDMzQTM5NTIw
ODA0NDEzMDA5MUVENTcgLyogU3luY2hyb25vdXNUaW1lb3V0VGVzdHMubW0gKi87IH07CkBAIC0x
NDg5LDYgKzE0OTAsNyBAQAogCQkJCUNFQTZDRjI4MTlDQ0Y2OUQwMDY0RjVBNyAvKiBvcGVuLWFu
ZC1jbG9zZS13aW5kb3cuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3Q0NCOTkyMzFE
M0I0QTQ2MDAzOTIyRjYgLyogb3Blbi1tdWx0aXBsZS1leHRlcm5hbC11cmwuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLywKIAkJCQk0NjhCQzQ1NTIyNjUzQTEwMDBBMzZDOTYgLyogb3Blbi13aW5k
b3ctdGhlbi13cml0ZS10by1pdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTQxODQ4
RjQ0MjQ4OTE4NzkwMDBFMjU4OCAvKiBvcGVuLXdpbmRvdy13aXRoLWZpbGUtdXJsLXdpdGgtaG9z
dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzMUMyODFFMjJCQzU3OUEwMDFEOThD
NCAvKiBvcGVuZGF0YWJhc2UtYWx3YXlzLWV4aXN0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCTI5MEE5QkI5MTczNUY2MzgwMEQ3MUJCQyAvKiBPcGVuTmV3V2luZG93Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMEYzNDA3NzkyMzAzODI4NzAwNjBBMUEwIC8qIG92ZXJm
bG93LXNjcm9sbC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTg3Niw2ICsxODc4LDcg
QEAKIAkJNDEzNUZCODYyMDExRkFCRjAwMzMyMTM5IC8qIGxpYldlYkNvcmVUZXN0U3VwcG9ydC5k
eWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNv
bXBpbGVkLm1hY2gtby5keWxpYiI7IHBhdGggPSBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWI7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTQxNEFENjg1MjI4NUQxQjAw
MDc3N0YyRCAvKiBTdG9yYWdlUXVvdGEubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTdG9yYWdl
UXVvdGEubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjYxQzY1MjM1NUQ5OEIw
MEQzM0MyNyAvKiBnZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJnZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxODQ4RjQzMjQ4OTE4MTUwMDBFMjU4OCAvKiBvcGVuLXdpbmRvdy13aXRo
LWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIm9w
ZW4td2luZG93LXdpdGgtZmlsZS11cmwtd2l0aC1ob3N0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTg4MkYwMjIxMDEwQTcwMDAyRkYyODggLyogUHJvY2Vzc1ByZVdhcm1p
bmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzUHJl
V2FybWluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5NzNCNUMxQUYyMjg3
NTAwNkM3QjM2IC8qIFNoYXJlZEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTaGFyZWRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDA3N0JCMDIzMTQ0OUQyMDAxNzlFMkQgLyogRGF0YURldGVjdG9yc1Rlc3RJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhRGV0ZWN0b3JzVGVzdElP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQxNDQsNiArNDE0Nyw3IEBACiAJ
CQkJNEE0MTBGNEQxOUFGN0JFRjAwMkVCQUI2IC8qIG9uZGV2aWNlY2hhbmdlLmh0bWwgKi8sCiAJ
CQkJQ0VBNkNGMjcxOUNDRjY5RDAwNjRGNUE3IC8qIG9wZW4tYW5kLWNsb3NlLXdpbmRvdy5odG1s
ICovLAogCQkJCTQ2OEJDNDU0MjI2NTM5QzgwMEEzNkM5NiAvKiBvcGVuLXdpbmRvdy10aGVuLXdy
aXRlLXRvLWl0Lmh0bWwgKi8sCisJCQkJNDE4NDhGNDMyNDg5MTgxNTAwMEUyNTg4IC8qIG9wZW4t
d2luZG93LXdpdGgtZmlsZS11cmwtd2l0aC1ob3N0Lmh0bWwgKi8sCiAJCQkJODMxNDhCMDgyMDJB
Qzc2ODAwQkFERTk5IC8qIG92ZXJyaWRlLWJ1aWx0aW5zLXRlc3QuaHRtbCAqLywKIAkJCQkwRUJC
Q0M2NTFGRkY5RENFMDBGQTQyQUIgLyogcG9wLXVwLWNoZWNrLmh0bWwgKi8sCiAJCQkJRjZGRERE
RDUxNDI0MUM0ODAwNEYxNzI5IC8qIHB1c2gtc3RhdGUuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L29wZW4td2luZG93LXdpdGgtZmlsZS11cmwt
d2l0aC1ob3N0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vcGVuLXdp
bmRvdy13aXRoLWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYTVhYTAzYjky
YmY1YjZmNDdkZjYwZTcwYjZmYzNjMTQ3MDNlM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vcGVuLXdpbmRvdy13aXRoLWZpbGUtdXJsLXdpdGgt
aG9zdC5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdD4KKyAgICBpZiAobG9jYXRpb24uaGFzaCAhPT0gIiN0ZXN0IikKKyAgICAgICAg
d2luZG93Lm9wZW4oImZpbGU6Ly9leGFtcGxlLm9yZyIgKyBsb2NhdGlvbi5wYXRobmFtZSArICIj
dGVzdCIsICJfc2VsZiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09wZW5BbmRDbG9zZVdpbmRv
dy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT3BlbkFuZENsb3Nl
V2luZG93Lm1tCmluZGV4IDYwYjExZWYyZmQwMWQ4NWY2YWFhZjA4MWYwOTMxOTAwZThmODhmYWEu
LjY0ZjcwNWY0OTNkZTA5NDE1ZTUwZWEwYmFlNDYxYzc4N2JmNGVmYWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT3BlbkFuZENsb3NlV2luZG93Lm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT3BlbkFuZENsb3Nl
V2luZG93Lm1tCkBAIC0zMTksMyArMzE5LDIyIEBAIFRFU1QoV2ViS2l0LCBPcGVuV2luZG93VGhl
bkRvY3VtZW50T3BlbikKIAogICAgIEVYUEVDVF9UUlVFKFtbW29wZW5lZFdlYlZpZXcgX21haW5G
cmFtZVVSTF0gYWJzb2x1dGVTdHJpbmddIGlzRXF1YWxUb1N0cmluZzpbW3dlYlZpZXcgVVJMXSBh
YnNvbHV0ZVN0cmluZ11dKTsKIH0KKworVEVTVChXZWJLaXQsIE9wZW5GaWxlVVJMV2l0aEhvc3Qp
Cit7CisgICAgcmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOworCisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKV0pOworCisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW09wZW5XaW5k
b3dUaGVuRG9jdW1lbnRPcGVuVUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3
IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgY29uZmlndXJh
dGlvbl0ucHJlZmVyZW5jZXMuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9
IFlFUzsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIm9wZW4td2lu
ZG93LXdpdGgtZmlsZS11cmwtd2l0aC1ob3N0IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CisKKyAgICB3aGlsZSAoIVtbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0
cmluZ10gaGFzU3VmZml4OkAiI3Rlc3QiXSkKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
c2xlZXAoMC4xKTsKKworICAgIEVYUEVDVF9UUlVFKFtbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0
cmluZ10gaGFzUHJlZml4OkAiZmlsZTovLy8iXSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401127</attachid>
            <date>2020-06-05 00:34:30 -0700</date>
            <delta_ts>2020-06-08 00:34:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212739-20200605093428.patch</filename>
            <type>text/plain</type>
            <size>8520</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTBlYWU2YzFhN2E5YzQ0
NTU0NzM1ZDNhNWVlZWViN2Q4NTQ2YzA0MS4uNjBhNjYyZGVmNjYxMWRiOTBhNzQ0M2NiMWQyNTY0
YTU1YWFhYWIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA2LTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlIFVSTHMgd2l0aCBo
b3N0bmFtZXMgYXJlIG1pc2xlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjczOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM3NTQ5MTc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hvd2lu
ZyBhIGZpbGUgVVJMIGxpa2UgZmlsZTovL2V4YW1wbGUub3JnL3Rlc3QgaXMgbWlzbGVhZGluZyB0
byB1c2Vycy4KKyAgICAgICAgVG8gcHJldmVudCB0aGlzLCB3ZSBqdXN0IGRvIGEgcmVkaXJlY3Rp
b24gdG8gdGhlIHNhbWUgZmlsZSBVUkwgd2l0aCBhbiBlbXB0eSBob3N0LgorICAgICAgICBSZW1v
dmUgdGhlIHBvcnQgYXQgdGhlIHNhbWUgdGltZS4KKyAgICAgICAgQ292ZXJlZCBieSBhZGRlZCBB
UEkgdGVzdC4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKwogMjAyMC0wNi0w
MyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWQgc3VwcG9y
dCBmb3IgbWVkaWEtc291cmNlIHN0YXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcAppbmRleCBlNDEyNDFhZDExNWQ2YTFhZTk5MzliMjQ4NzEwY2I5Y2Q3ZjJlZDRmLi5m
ZGEyYzRjYzZjZjNmMzA3MzhkM2E3NjJmMWEwMzQzOTE1NmVjNmRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTY1Myw2ICs2NTMsMTIgQEAgdm9pZCBEb2N1
bWVudExvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5ld1JlcXVlc3Qs
IGNvbnN0IFJlc291cmMKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICghbmV3UmVxdWVzdC51
cmwoKS5ob3N0KCkuaXNFbXB0eSgpICYmIFNlY3VyaXR5T3JpZ2luOjpzaG91bGRJZ25vcmVIb3N0
KG5ld1JlcXVlc3QudXJsKCkpKSB7CisgICAgICAgIGF1dG8gdXJsID0gbmV3UmVxdWVzdC51cmwo
KTsKKyAgICAgICAgdXJsLnNldEhvc3RBbmRQb3J0KHsgfSk7CisgICAgICAgIG5ld1JlcXVlc3Qu
c2V0VVJMKFdURk1vdmUodXJsKSk7CisgICAgfQorCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVS
SU5HKQogICAgIGlmIChtX2NvbnRlbnRGaWx0ZXIgJiYgIW1fY29udGVudEZpbHRlci0+Y29udGlu
dWVBZnRlcldpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKSkKICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUobmV3UmVxdWVzdCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM2NWY3MmY4
OTE5NWJiYmUzYmIwNzUxMmY0NGM0M2ViMDRiYzcxYTUuLmJjZjQ4ZjM1MjE5YWE0Yzk5ZGExNTdl
YmRlY2IyMWE3ZTdmZGI0MGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNi0wNCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgRmlsZSBVUkxzIHdpdGggaG9zdG5hbWVzIGFy
ZSBtaXNsZWFkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTI3MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzNzU0OTE3PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQvb3Blbi13aW5kb3ctd2l0aC1maWxlLXVybC13aXRoLWhvc3Qu
aHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9P
cGVuQW5kQ2xvc2VXaW5kb3cubW06CisgICAgICAgIChURVNUKToKKwogMjAyMC0wNi0wMiAgS2Vp
dGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2ZXJ0IEZFQVRVUkVT
X0RFRklORVMgcmVsYXRlZCBjaGFuZ2VzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU4MDA1
NjVkMmI4M2UwNjRlOGJkNjVlMzgyZmUzMWU5ZDJlZWVkYTQuLmIzYjc2Yzg5Y2NlOGRjNDg2Nzdl
ZGRmYjZmMGU2M2E0NjkzMTY0MmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzAsNiAr
MjMwLDcgQEAKIAkJNDEzNUZCODUyMDExRkFCRjAwMzMyMTM5IC8qIGxpYldlYkNvcmVUZXN0U3Vw
cG9ydC5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxMzVGQjg2MjAxMUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHls
aWIgKi87IH07CiAJCTQxNEFENjg2MjI4NUQxQzAwMDc3N0YyRCAvKiBTdG9yYWdlUXVvdGEubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRBRDY4NTIy
ODVEMUIwMDA3NzdGMkQgLyogU3RvcmFnZVF1b3RhLm1tICovOyB9OwogCQk0MTY2MUM2NjIzNTVF
ODVFMDBEMzNDMjcgLyogZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2NjFDNjUyMzU1RDk4QjAw
RDMzQzI3IC8qIGdldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sICovOyB9OworCQk0MTg0OEY0NDI0
ODkxODc5MDAwRTI1ODggLyogb3Blbi13aW5kb3ctd2l0aC1maWxlLXVybC13aXRoLWhvc3QuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTg0OEY0MzI0ODkxODE1MDAwRTI1ODggLyogb3Blbi13aW5kb3ctd2l0aC1maWxlLXVybC13aXRo
LWhvc3QuaHRtbCAqLzsgfTsKIAkJNDE4ODJGMDMyMTAxMEMwRDAwMkZGMjg4IC8qIFByb2Nlc3NQ
cmVXYXJtaW5nLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE4ODJGMDIyMTAxMEE3MDAwMkZGMjg4IC8qIFByb2Nlc3NQcmVXYXJtaW5nLm1tICovOyB9
OwogCQk0NDA3N0JCMTIzMTQ0QjUwMDAxNzlFMkQgLyogRGF0YURldGVjdG9yc1Rlc3RJT1MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDA3N0JCMDIz
MTQ0OUQyMDAxNzlFMkQgLyogRGF0YURldGVjdG9yc1Rlc3RJT1MubW0gKi87IH07CiAJCTQ0MzNB
Mzk2MjA4MDQ0MTQwMDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVvdXRUZXN0cy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MzNBMzk1MjA4MDQ0MTMw
MDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVvdXRUZXN0cy5tbSAqLzsgfTsKQEAgLTE0ODksNiAr
MTQ5MCw3IEBACiAJCQkJQ0VBNkNGMjgxOUNDRjY5RDAwNjRGNUE3IC8qIG9wZW4tYW5kLWNsb3Nl
LXdpbmRvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdDQ0I5OTIzMUQzQjRBNDYw
MDM5MjJGNiAvKiBvcGVuLW11bHRpcGxlLWV4dGVybmFsLXVybC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTQ2OEJDNDU1MjI2NTNBMTAwMEEzNkM5NiAvKiBvcGVuLXdpbmRvdy10aGVu
LXdyaXRlLXRvLWl0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNDE4NDhGNDQyNDg5
MTg3OTAwMEUyNTg4IC8qIG9wZW4td2luZG93LXdpdGgtZmlsZS11cmwtd2l0aC1ob3N0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTMxQzI4MUUyMkJDNTc5QTAwMUQ5OEM0IC8qIG9w
ZW5kYXRhYmFzZS1hbHdheXMtZXhpc3RzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
MjkwQTlCQjkxNzM1RjYzODAwRDcxQkJDIC8qIE9wZW5OZXdXaW5kb3cuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQkwRjM0MDc3OTIzMDM4Mjg3MDA2MEExQTAgLyogb3ZlcmZsb3ctc2Ny
b2xsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xODc2LDYgKzE4NzgsNyBAQAogCQk0
MTM1RkI4NjIwMTFGQUJGMDAzMzIxMzkgLyogbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmR5bGliIjsgcGF0aCA9IGxpYldlYkNvcmVUZXN0U3VwcG9ydC5keWxpYjsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNDE0QUQ2ODUyMjg1RDFCMDAwNzc3RjJE
IC8qIFN0b3JhZ2VRdW90YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN0b3JhZ2VRdW90YS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE2NjFDNjUyMzU1RDk4QjAwRDMzQzI3
IC8qIGdldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gImdldFVzZXJNZWRpYS13ZWJhdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE4NDhGNDMyNDg5MTgxNTAwMEUyNTg4IC8qIG9wZW4td2luZG93LXdpdGgtZmlsZS11
cmwtd2l0aC1ob3N0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAib3Blbi13aW5k
b3ctd2l0aC1maWxlLXVybC13aXRoLWhvc3QuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxODgyRjAyMjEwMTBBNzAwMDJGRjI4OCAvKiBQcm9jZXNzUHJlV2FybWluZy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFByb2Nlc3NQcmVXYXJtaW5n
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTk3M0I1QzFBRjIyODc1MDA2QzdC
MzYgLyogU2hhcmVkQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNoYXJlZEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MDc3
QkIwMjMxNDQ5RDIwMDE3OUUyRCAvKiBEYXRhRGV0ZWN0b3JzVGVzdElPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFEZXRlY3RvcnNUZXN0SU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE0NCw2ICs0MTQ3LDcgQEAKIAkJCQk0QTQx
MEY0RDE5QUY3QkVGMDAyRUJBQjYgLyogb25kZXZpY2VjaGFuZ2UuaHRtbCAqLywKIAkJCQlDRUE2
Q0YyNzE5Q0NGNjlEMDA2NEY1QTcgLyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwgKi8sCiAJ
CQkJNDY4QkM0NTQyMjY1MzlDODAwQTM2Qzk2IC8qIG9wZW4td2luZG93LXRoZW4td3JpdGUtdG8t
aXQuaHRtbCAqLywKKwkJCQk0MTg0OEY0MzI0ODkxODE1MDAwRTI1ODggLyogb3Blbi13aW5kb3ct
d2l0aC1maWxlLXVybC13aXRoLWhvc3QuaHRtbCAqLywKIAkJCQk4MzE0OEIwODIwMkFDNzY4MDBC
QURFOTkgLyogb3ZlcnJpZGUtYnVpbHRpbnMtdGVzdC5odG1sICovLAogCQkJCTBFQkJDQzY1MUZG
RjlEQ0UwMEZBNDJBQiAvKiBwb3AtdXAtY2hlY2suaHRtbCAqLywKIAkJCQlGNkZERERENTE0MjQx
QzQ4MDA0RjE3MjkgLyogcHVzaC1zdGF0ZS5odG1sICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvb3Blbi13aW5kb3ctd2l0aC1maWxlLXVybC13aXRoLWhv
c3QuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L29wZW4td2luZG93LXdp
dGgtZmlsZS11cmwtd2l0aC1ob3N0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBhNWFhMDNiOTJiZjViNmY0
N2RmNjBlNzBiNmZjM2MxNDcwM2UzZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L29wZW4td2luZG93LXdpdGgtZmlsZS11cmwtd2l0aC1ob3N0Lmh0
bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2Ny
aXB0PgorICAgIGlmIChsb2NhdGlvbi5oYXNoICE9PSAiI3Rlc3QiKQorICAgICAgICB3aW5kb3cu
b3BlbigiZmlsZTovL2V4YW1wbGUub3JnIiArIGxvY2F0aW9uLnBhdGhuYW1lICsgIiN0ZXN0Iiwg
Il9zZWxmIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT3BlbkFuZENsb3NlV2luZG93Lm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PcGVuQW5kQ2xvc2VXaW5kb3cu
bW0KaW5kZXggNjBiMTFlZjJmZDAxZDg1ZjZhYWFmMDgxZjA5MzE5MDBlOGY4OGZhYS4uNjRmNzA1
ZjQ5M2RlMDk0MTVlNTBlYTBiYWU0NjFjNzg3YmY0ZWZhYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PcGVuQW5kQ2xvc2VXaW5kb3cubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PcGVuQW5kQ2xvc2VXaW5kb3cu
bW0KQEAgLTMxOSwzICszMTksMjIgQEAgVEVTVChXZWJLaXQsIE9wZW5XaW5kb3dUaGVuRG9jdW1l
bnRPcGVuKQogCiAgICAgRVhQRUNUX1RSVUUoW1tbb3BlbmVkV2ViVmlldyBfbWFpbkZyYW1lVVJM
XSBhYnNvbHV0ZVN0cmluZ10gaXNFcXVhbFRvU3RyaW5nOltbd2ViVmlldyBVUkxdIGFic29sdXRl
U3RyaW5nXV0pOwogfQorCitURVNUKFdlYktpdCwgT3BlbkZpbGVVUkxXaXRoSG9zdCkKK3sKKyAg
ICByZXNldFRvQ29uc2lzdGVudFN0YXRlKCk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApXSk7CisKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9wdE5TKFtbT3BlbldpbmRvd1RoZW5E
b2N1bWVudE9wZW5VSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlE
ZWxlZ2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBjb25maWd1cmF0aW9uXS5w
cmVmZXJlbmNlcy5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gWUVTOwor
CisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAib3Blbi13aW5kb3ctd2l0
aC1maWxlLXVybC13aXRoLWhvc3QiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6
QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpy
ZXF1ZXN0XTsKKworICAgIHdoaWxlICghW1tbd2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSBo
YXNTdWZmaXg6QCIjdGVzdCJdKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzbGVlcCgw
LjEpOworCisgICAgRVhQRUNUX1RSVUUoW1tbd2ViVmlldyBVUkxdIGFic29sdXRlU3RyaW5nXSBo
YXNQcmVmaXg6QCJmaWxlOi8vLyJdKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401314</attachid>
            <date>2020-06-08 00:34:57 -0700</date>
            <delta_ts>2020-06-08 00:40:40 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-212739-20200608093455.patch</filename>
            <type>text/plain</type>
            <size>144430</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAzZWZmMzc5MTZlMzliY2Y3MDY1NmQw
ZTQzY2IxNWQ2NmU3YTEyOWIuLjk3Y2ZmNGJkM2QxMjkyMTk5NzViYWUyYzYzYjJiOWVlMzVmOTAz
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDYtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXNlIEFWQXNzZXRXcml0ZXJEZWxlZ2F0
ZSB0byBpbXBsZW1lbnQgTWVkaWFSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorCiAyMDIwLTA2LTA3ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXBwbGUgUGF5XSBIQVZF
KFBBWU1FTlRfTUVUSE9EX0JJTExJTkdfQUREUkVTUykgc2hvdWxkIGJlIHRydWUgb24gaU9TCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYmQyMWEyZjdhMjNiZDdmMzQ0ZTdjMDMzYWFlOTliZjIyMGYxZjhhYy4uMmI1
NjBkMzE2OWYxNDllNDEwOWY3NjU1OGM0ZmMzN2MwYjJlZDEzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk1IEBACisyMDIwLTA2LTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBbQ29jb2FdIFVzZSBBVkFzc2V0V3JpdGVyRGVsZWdhdGUgdG8gaW1wbGVtZW50
IE1lZGlhUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNjU4MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg5ODUzNjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRXcml0ZXJEZWxl
Z2F0ZSBhbGxvd3MgdG8gZ3JhYiByZWNvcmRlZCBkYXRhIHdoZW5ldmVyIHdhbnRlZC4KKyAgICAg
ICAgVGhpcyBkZWxlZ2F0ZSByZXF1aXJlcyBwYXNzaW5nIGNvbXByZXNzZWQgc2FtcGxlcyB0byBB
VkFzc2V0V3JpdGVyLgorICAgICAgICBJbXBsZW1lbnQgdmlkZW8gZW5jb2RpbmcgYW5kIGF1ZGlv
IGVuY29kaW5nIGluIGRlZGljYXRlZCBjbGFzc2VzIGFuZCB1c2UgdGhlc2UgY2xhc3NlcyBiZWZv
cmUgYWRkaW5nIGJ1ZmZlcnMgdG8gQVZBc3NldFdyaXRlci4KKyAgICAgICAgVGhlc2UgY2xhc3Nl
cyBhcmUgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGFuZCBWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IuCisgICAgICAgIFRoZXkgc3VwcG9ydCBBQUMgYW5kIEgyNjQgc28gZmFyIGFuZCBz
aG91bGQgYmUgZnVydGhlciBpbXByb3ZlZCB0byBzdXBwb3J0IG1vcmUgZW5jb2Rpbmcgb3B0aW9u
cy4KKworICAgICAgICBJbnN0YW50aWF0ZSByZWFsIHdyaXRlciBvbmx5IGZvciBwbGF0Zm9ybXMg
c3VwcG9ydGluZyBBVkFzc2V0V3JpdGVyRGVsZWdhdGUsIHNpbmNlIGl0IGlzIG5vdCBzdXBwb3J0
ZWQgZXZlcnl3aGVyZS4KKyAgICAgICAgVGhlIHdyaXRlciwgZG9pbmcgdGhlIHBhY2FrZ2luZywg
aXMgcmVjZWl2aW5nIGNvbXByZXNzZWQgYnVmZmVyIGZyb20gdGhlIGF1ZGlvL3ZpZGVvIGNvbXBy
ZXNzb3JzLgorICAgICAgICBJdCB0aGVuIHNlbmRzIGRhdGEgd2hlbiBiZWluZyByZXF1ZXN0IHRv
IGZsdXNoIHRvIGl0cyBkZWxlZ2F0ZSwgd2hpY2ggd2lsbCBzZW5kIGRhdGEgdG8gdGhlIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyLgorICAgICAgICBUaGUgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXIgc3RvcmVzIHRoZSBkYXRhIGluIGEgU2hhcmVkQnVmZmVyIHVudGlsIE1lZGlhUmVjb3Jk
ZXIgYXNrcyBmb3IgZGF0YS4KKworICAgICAgICBOb3RlIHRoYXQsIHdoZW5ldmVyIHdlIHJlcXVl
c3QgZGF0YSwgd2UgZmx1c2ggdGhlIHdyaXRlciBhbmQgaW5zZXJ0IGFuIGVuZCBvZiB2aWRlbyBz
YW1wbGUgdG8gbWFrZSBzdXJlIHZpZGVvIGRhdGEgZ2V0cyBmbHVzaGVkLgorICAgICAgICBUaGVy
ZWZvcmUgZGF0YSBzaG91bGQgbm90IGJlIHJlcXVlc3RlZCB0b28gZmFzdCB0byBnZXQgYWRlcXVh
dGUgdmlkZW8gY29tcHJlc3Npb24uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0
cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlQVZGSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxp
emUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5p
c2gpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0
QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNvbXB1dGVCdWZmZXJTaXplRm9yQXVk
aW9Gb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0
aE51bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjphdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRw
dXRQYWNrZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpn
ZXRPdXRwdXRTYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgICgtW1dlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZSBp
bml0V2l0aFdyaXRlcjpdKToKKyAgICAgICAgKC1bV2ViQVZBc3NldFdyaXRlckRlbGVnYXRlIGFz
c2V0V3JpdGVyOmRpZFByb2R1Y2VGcmFnbWVudGVkSGVhZGVyRGF0YTpdKToKKyAgICAgICAgKC1b
V2ViQVZBc3NldFdyaXRlckRlbGVnYXRlIGFzc2V0V3JpdGVyOmRpZFByb2R1Y2VGcmFnbWVudGVk
TWVkaWFEYXRhOmZyYWdtZW50ZWRNZWRpYURhdGFSZXBvcnQ6XSk6CisgICAgICAgICgtW1dlYkFW
QXNzZXRXcml0ZXJEZWxlZ2F0ZSBjbG9zZV0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZFZpZGVvT3V0cHV0QnVmZmVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXByZXNzZWRB
dWRpb091dHB1dEJ1ZmZlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6fk1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpp
bml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Ojpwcm9jZXNzTmV3Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRp
b1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3Nl
ZFZpZGVvU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2VkU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJD
b3JlOjphcHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kRW5kT2ZWaWRlb1NhbXBs
ZUR1cmF0aW9uSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0b3BSZWNvcmRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZERh
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmguCisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZpZGVvQ29tcHJl
c3Npb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YWRkU2FtcGxlQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisKIDIwMjAtMDYtMDcgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtIZWlnaHQgcGVyY2VudGFnZV0gU2tp
cCBhbm9ueW1vdXMgd3JhcHBlcnMgd2hlbiBzZWFyY2hpbmcgZm9yIGZpeGVkIGhlaWdodApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKaW5kZXggODNmZDg2MzUzZjZjNGRkMTdkMWY2MWY0NTJhZGUyZDNjNjQ2Mzg3
Mi4uNWExYzBkNjg5MzM4NzRkNGRhYTIxNjlmYTI1OTY1YWQ0YTVmMThlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDYtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXNlIEFWQXNzZXRXcml0ZXJEZWxlZ2F0
ZSB0byBpbXBsZW1lbnQgTWVkaWFSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODk4
NTM2OD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRk
IHNvZnQgbGluayBtYWNyb3MgZm9yIFZpZGVvVG9vbGJveCBhbmQgQXVkaW9Ub29sYm94LgorCisg
ICAgICAgICogUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDogQWRkZWQuCisgICAgICAgICogcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg6CisgICAgICAg
ICogcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcDogQWRkZWQuCisgICAgICAgICogcGFs
L2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg6IEFkZGVkLgorCiAyMDIwLTA2LTA3ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxF
X1ZJREVPX1RSQUNLIGlmZGVmIGd1YXJkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZTU3MWI1NDk3M2YzMTBmM2Nj
NGZiNmEwYWJlNjljNWFkMDkyMTQ2Li5hYmY4ZmNhY2ZlYWQ3Mzg0ZmQzNjM5MDg4ZGM4OTcyYjVm
NDMyNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA2LTA3ICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVzZSBBVkFzc2V0V3Jp
dGVyRGVsZWdhdGUgdG8gaW1wbGVtZW50IE1lZGlhUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjU4MgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTg5ODUzNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisg
ICAgICAgIEVuYWJsZSBSZW1vdGVNZWRpYVJlY29yZGVyIG9ubHkgZm9yIHN5c3RlbXMgc3VwcG9y
dGluZyBBVkFzc2V0V3JpdGVyRGVsZWdhdGUuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1l
ZGlhUmVjb3JkZXIubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUpOgorCiAyMDIwLTA2LTA3ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtXZWJEcml2ZXJdIEFsbG93IHBsYXRmb3JtLWRlcGVuZGVudCBt
b2RpZmllciBrZXlzIGNvbnZlcnNpb24gdG8gV2ViRXZlbnQ6Ok1vZGlmaWVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCmluZGV4IDgwZjAwZmNjMmZmMmU3OTBmY2U5OTQwYjEzZjBkZTQ0N2UwM2YwZWMuLjEy
MDRmNjRmMTg4Yjc0NGRmYWM4OTA0M2M0ZWYyMWE2YzQ4MzQwODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCkBAIC01NDIsNiArNTQyLDEwIEBACiAjZGVmaW5lIEhBVkVfT1NfU0lHTlBPU1QgMQogI2Vu
ZGlmCiAKKyNpZiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDApIHx8IFBMQVRGT1JNKElPUykpICYmIChkZWZpbmVkIF9faGFzX2luY2x1
ZGUgJiYgX19oYXNfaW5jbHVkZSg8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0ZXJfUHJpdmF0ZS5o
PikpCisjZGVmaW5lIEhBVkVfQVZBU1NFVFdSSVRFUkRFTEVHQVRFIDEKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShB
UFBMRVRWKQogI2RlZmluZSBIQVZFX1NZU1RFTV9GT05UX1NUWUxFX1RJVExFXzAgMQogI2RlZmlu
ZSBIQVZFX1NZU1RFTV9GT05UX1NUWUxFX1RJVExFXzQgMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcAppbmRleCA0NGM5ZDA3YTliOTc1MGQ2NjI2ZWI3NTg3ZWFiYzUxM2Y0MzZiOGIzLi44ODRh
NDA3OTBhNDZhODMyNjI2ZTBmYTBlZWJiOWM5ZDlmNDRjYWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcApAQCAtMzQsNyArMzQsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6
Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7
CisjaWYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAgICAgcmV0dXJuIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShzdHJlYW0pOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0Zjk4
OTc3MzdkODgyZDhlNGEyNzAwMTBkMmVhNTBhMDIxMTkyNGEwLi41YjAyYjUxMzAwYTRkMGNkNWQ5
ZDgyZTgyYjRmMGNiNzdiZGI2NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFM
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTksNiArMTE5LDkgQEAKIAkJMkUxMzQyQ0My
MTVBQTEwQTAwNzE5OUQyIC8qIFVJS2l0U29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMTM0MkNBMjE1QUExMEEwMDcxOTlEMiAvKiBVSUtp
dFNvZnRMaW5rLmggKi87IH07CiAJCTJFMTM0MkNEMjE1QUExMEEwMDcxOTlEMiAvKiBVSUtpdFNv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkUxMzQyQ0IyMTVBQTEwQTAwNzE5OUQyIC8qIFVJS2l0U29mdExpbmsubW0gKi87IH07CiAJCTMx
MzA4QjE0MjBBMjE3MDUwMDNGQjkyOSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTMwOEIxMzIwQTIxNzA1MDAzRkI5
MjkgLyogU3lzdGVtUHJldmlld1NQSS5oICovOyB9OworCQk0MTZFOTk1MzIzREFFNkJFMDBFODcx
Q0IgLyogQXVkaW9Ub29sYm94U29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RTk5NTEyM0RBRTZCRDAwRTg3MUNCIC8qIEF1ZGlvVG9v
bGJveFNvZnRMaW5rLmNwcCAqLzsgfTsKKwkJNDE2RTk5NTQyM0RBRTZCRTAwRTg3MUNCIC8qIEF1
ZGlvVG9vbGJveFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTZFOTk1MjIzREFFNkJFMDBFODcxQ0IgLyogQXVkaW9Ub29sYm94U29mdExp
bmsuaCAqLzsgfTsKKwkJNDFFMUYzNDQyNDhBNkEwMDAwMjJENURFIC8qIFZpZGVvVG9vbGJveFNv
ZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNkU5OTU1MjNEQUVGRjcwMEU4NzFDQiAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgKi87
IH07CiAJCTQ0Mjk1NkNEMjE4QTcyREYwMDgwREI1NCAvKiBSZXZlYWxTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0Mjk1NkNDMjE4QTcyREUwMDgw
REI1NCAvKiBSZXZlYWxTUEkuaCAqLzsgfTsKIAkJNDQ1MEZDOUYyMUY1RjYwMjAwNERGQTU2IC8q
IFF1aWNrTG9va1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQ1MEZDOUQyMUY1RjYwMjAwNERGQTU2IC8qIFF1aWNrTG9va1NvZnRMaW5r
Lm1tICovOyB9OwogCQk0NDUwRkNBMDIxRjVGNjAyMDA0REZBNTYgLyogUXVpY2tMb29rU29mdExp
bmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTBG
QzlFMjFGNUY2MDIwMDRERkE1NiAvKiBRdWlja0xvb2tTb2Z0TGluay5oICovOyB9OwpAQCAtMzAw
LDYgKzMwMywxMCBAQAogCQkyRTEzNDJDQjIxNUFBMTBBMDA3MTk5RDIgLyogVUlLaXRTb2Z0TGlu
ay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJS2l0U29mdExp
bmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMzA4QjEzMjBBMjE3MDUwMDNG
QjkyOSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5c3RlbVByZXZpZXdT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxMTlBNzgyMENDQjVGRjAwMkM2
REM5IC8qIFdlYktpdFRhcmdldENvbmRpdGlvbmFscy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBX
ZWJLaXRUYXJnZXRDb25kaXRpb25hbHMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNkU5OTUxMjNEQUU2QkQwMEU4NzFDQiAvKiBBdWRpb1Rvb2xib3hTb2Z0TGluay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Rvb2xib3hTb2Z0
TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkU5OTUyMjNEQUU2QkUw
MEU4NzFDQiAvKiBBdWRpb1Rvb2xib3hTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdWRpb1Rvb2xib3hTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTZFOTk1NTIzREFFRkY3MDBFODcxQ0IgLyogVmlkZW9Ub29sYm94U29mdExpbmsu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTZFOTk1NjIzREFFRkY3
MDBFODcxQ0IgLyogVmlkZW9Ub29sYm94U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9Ub29sYm94U29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQyOTU2Q0MyMThBNzJERTAwODBEQjU0IC8qIFJldmVhbFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXZlYWxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQ1MEZDOUQyMUY1RjYwMjAwNERGQTU2IC8qIFF1aWNrTG9va1NvZnRMaW5r
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUXVpY2tMb29rU29m
dExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBGQzlFMjFGNUY2MDIw
MDRERkE1NiAvKiBRdWlja0xvb2tTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBRdWlja0xvb2tTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTQxLDggKzU0OCwxMiBAQAogCQkwQ0Y5OUNBNTFGNzM4NDFDMDA3RUU3OTMgLyogY2YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxNkU5OTUxMjNE
QUU2QkQwMEU4NzFDQiAvKiBBdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgKi8sCisJCQkJNDE2RTk5
NTIyM0RBRTZCRTAwRTg3MUNCIC8qIEF1ZGlvVG9vbGJveFNvZnRMaW5rLmggKi8sCiAJCQkJMENG
OTlDQTYxRjczODQzNjAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5rLmNwcCAqLywKIAkJCQkw
Q0Y5OUNBNzFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1lZGlhU29mdExpbmsuaCAqLywKKwkJCQk0
MTZFOTk1NTIzREFFRkY3MDBFODcxQ0IgLyogVmlkZW9Ub29sYm94U29mdExpbmsuY3BwICovLAor
CQkJCTQxNkU5OTU2MjNEQUVGRjcwMEU4NzFDQiAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBjZjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC03
MzUsNiArNzQ2LDcgQEAKIAkJCQkyOTNFRTRBOTI0MTU0RjhGMDA0NzQ5M0QgLyogQWNjZXNzaWJp
bGl0eVN1cHBvcnRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMxOEIyMkIzNTk4
OTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlE
NjIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTZF
OTk1NDIzREFFNkJFMDBFODcxQ0IgLyogQXVkaW9Ub29sYm94U29mdExpbmsuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJEMDJFOTNDMjA1NkZBQTcwMEExMzc5NyAvKiBBdWRpb1Rvb2xib3hTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzdFODdCMjIyNkE0NjAzMDBBMkFGRjAgLyogQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaCBpbiBIZWFkZXJzICovLApAQCAtOTUzLDYgKzk2NSw3IEBACiAJCQlm
aWxlcyA9ICgKIAkJCQkyOTNFRTRBODI0MTU0RjhGMDA0NzQ5M0QgLyogQWNjZXNzaWJpbGl0eVN1
cHBvcnRTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0ZEMzE4QTIyQjM1OTNFMDA4
RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKKwkJCQk0MTZFOTk1MzIz
REFFNkJFMDBFODcxQ0IgLyogQXVkaW9Ub29sYm94U29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDc3RTg3QjEyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFBIC8qIENsb2NrQ00u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NjcsNiArOTgwLDcgQEAKIAkJCQk0
NEUxQThCMDIxRkE1NEVCMDBDMzA0OEUgLyogTG9va3VwU29mdExpbmsubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1QzdDNzg3NDIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25T
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBDRjk5Q0E0MUY3MzYzNzUwMDdFRTc5MyAv
KiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDFFMUYzNDQy
NDhBNkEwMDAwMjJENURFIC8qIFZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNEQUNCMzYwMjM4NzQyNUIwMDE4RDdDRSAvKiBNZWRpYVRvb2xib3hTb2Z0TGluay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUY2M0NBMDIxQTREQkY3MDA2RkI0M0IgLyogUGFzc0tp
dFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xY2Y1NTA1NmFj
ZGE2ZjU2NTNhZGM3ZTE3ZWMwMmEyZDgyNmU0NDdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTAsMCArMSw0
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQVZGT1VO
REFUSU9OKQorCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvRm9ybWF0Lmg+CisKKyNpbmNsdWRlIDx3dGYvU29mdExp
bmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94KQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQg
aW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNp
ZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSks
IChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlE
YXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVy
UmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZv
cm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAo
QXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0
eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCog
aW5Qcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3Bl
cnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJv
cGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBv
dXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3Bl
cnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCisKKyNlbmRpZiAvLyBVU0UoQVZGT1VOREFU
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hT
b2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGlu
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA3MzExODcxNzRhYzE1NTQ0MzcxZGVlMDNiMTQzMmUzZTY1NjMyZTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJv
eFNvZnRMaW5rLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4K
KworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94KQorCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlv
UHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
I2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJl
Ziogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3Jt
YXQsIG91dEF1ZGlvQ29udmVydGVyKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJOZXcgc29mdExp
bmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyTmV3CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRl
clByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25z
dCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQs
IGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQorI2RlZmluZSBBdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlclNldFBy
b3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQg
aW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNp
ZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSks
IChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlE
YXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKKyNkZWZpbmUgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0
eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eQorCisKKyNlbmRp
ZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmNwcAppbmRleCAxOTY5MjkxYTgxZTI0NThkYmE3ODAzNWNlOThlZDE0
ZmM3NzU1OWYxLi45MmVhNzY4ZmZkZTE4ZWViZjE0ODY0Yzk3ZjE0OTkyNzJiMDRmOTc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcApAQCAt
NDYsNiArNDYsNyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRl
cywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9m
ZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNv
dXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbiksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZm
ZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZl
clJlcGxhY2VEYXRhQnl0ZXMsIE9TU3RhdHVzLCAoY29uc3Qgdm9pZCogc291cmNlQnl0ZXMsIENN
QmxvY2tCdWZmZXJSZWYgZGVzdGluYXRpb25CdWZmZXIsIHNpemVfdCBvZmZzZXRJbnRvRGVzdGlu
YXRpb24sIHNpemVfdCBkYXRhTGVuZ3RoKSwgKHNvdXJjZUJ5dGVzLCBkZXN0aW5hdGlvbkJ1ZmZl
ciwgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBkYXRhTGVuZ3RoKSwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUZv
cm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTMzLDkgKzEzNCwxMSBAQCBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJR
dWV1ZURlcXVldWVBbgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVFbnF1ZXVlLCBPU1N0YXR1cywgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUsIENNQnVmZmVyUmVmIGJ1ZmZlciksIChxdWV1ZSwgYnVmZmVyKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eSwgQm9vbGVhbiwgKENNQnVmZmVyUXVldWVS
ZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJD
b3VudCwgQ01JdGVtQ291bnQsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZm
ZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAoKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0
RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXJXaXRo
SW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1
ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFjaywgdm9pZCogdHJpZ2dlclJl
ZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJpZ2dlckNvbmRpdGlvbiwgQ01J
dGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJp
Z2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ssIHRyaWdnZXJSZWZjb24sIHRy
aWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9TU3RhdHVzLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2ht
ZW50S2V5X0RvTm90RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE0OSw2
ICsxNTIsOSBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1w
bGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzLCBDRlN0cmluZ1JlZiwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1l
ZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtl
eV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJlZnJlc2gsIENGU3Ry
aW5nUmVmLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNo
bWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIAog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1Jl
ZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkLCBDRlN0
cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2Myw2ICsxNjksOCBAQCBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3Qs
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0
cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMy
X3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBiYnVm
U3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBj
b25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXpl
LCBjb25zdCBBdWRpb0NoYW5uZWxMYXlvdXQqIGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6
ZSwgY29uc3Qgdm9pZCogbWFnaWNDb29raWUsIENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBs
YXlvdXRTaXplLCBsYXlvdXQsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lv
bnMsIG91dERlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1h
Z2ljQ29va2llLCBjb25zdCB2b2lkKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNj
LCBzaXplX3QqIHNpemVPdXQpLCAoZGVzYywgc2l6ZU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9G
b3JtYXRMaXN0SXRlbSAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2
b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldFRpbWUsIENNVGltZSwgKENNQ2xvY2tS
ZWYgY2xvY2spLCAoY2xvY2spLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVh
Y2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCog
Q01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGNhbGxiYWNrKSggQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVm
Y29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDI3MWRmNjJkYzhmYWY2
ODBjZWQxYzk4NTMyZTBjOTMwNzliNzZkZGYuLjg0MjkzMzI5MjMxNGQ4MDNiMmRmMTYzOTRlMmJi
ZGI4NmFkNTc4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNv
ZnRMaW5rLmgKQEAgLTQ5LDYgKzQ5LDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzLCBPU1N0YXQKICNkZWZp
bmUgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tC
dWZmZXJDb3B5RGF0YUJ5dGVzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZm
ZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlcikpCiAjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXRE
YXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aAor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBD
TUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3Rp
bmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZm
ZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCkpCisjZGVmaW5lIENNQmxvY2tC
dWZmZXJSZXBsYWNlRGF0YUJ5dGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyUmVw
bGFjZURhdGFCeXRlcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChD
TUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAjZGVmaW5lIENNRm9ybWF0RGVz
Y3JpcHRpb25HZXRFeHRlbnNpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0
aW9uR2V0RXh0ZW5zaW9ucwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSkKQEAg
LTIyNSwxMCArMjI3LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlCiAjZGVmaW5lIENNQnVm
ZmVyUXVldWVHZXRCdWZmZXJDb3VudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdl
dEJ1ZmZlckNvdW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChD
TUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdl
dEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1
ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0
ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAoKSwgKCkpCisjZGVm
aW5lIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMgc29m
dExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBs
ZUJ1ZmZlcnMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEVuZFBy
ZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldEVu
ZFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNo
b2xkLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmln
Z2VyQ2FsbGJhY2sgdHJpZ2dlckNhbGxiYWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZl
clF1ZXVlVHJpZ2dlckNvbmRpdGlvbiB0cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmln
Z2VyVGhyZXNob2xkLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQp
LCAocXVldWUsIHRyaWdnZXJDYWxsYmFjaywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlv
biwgdHJpZ2dlclRocmVzaG9sZCwgdHJpZ2dlclRva2VuT3V0KSkKICNkZWZpbmUgQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQgc29mdExpbmtfQ29yZU1lZGlh
X0NNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtF
bmRPZkRhdGEsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCisj
ZGVmaW5lIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1
ZmZlclF1ZXVlTWFya0VuZE9mRGF0YQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIENGU3Ry
aW5nUmVmKQogI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSBnZXRf
Q29yZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KCkKQEAgLTI1OCw2
ICsyNjQsMTUgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQKICNkZWZpbmUga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fVGltZUp1bXBlZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWViYXNlTm90aWZpY2F0
aW9uX1RpbWVKdW1wZWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVk
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRp
b25fQnVmZmVyQ29uc3VtZWQgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJDb25zdW1lck5v
dGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlv
dXNTYW1wbGVEdXJhdGlvbiwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDTVNhbXBsZUJ1ZmZlckF0
dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24gZ2V0X0NvcmVNZWRpYV9rQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uKCkKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVCdWZm
ZXJBdHRhY2htZW50S2V5X0dyYWR1YWxEZWNvZGVyUmVmcmVzaCwgQ0ZTdHJpbmdSZWYpCisjZGVm
aW5lIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29kZXJSZWZyZXNoIGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJl
ZnJlc2goKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0
YXJ0LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJB
dHRhY2htZW50S2V5X1RyaW1EdXJhdGlvbkF0U3RhcnQgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVC
dWZmZXJBdHRhY2htZW50S2V5X1RyaW1EdXJhdGlvbkF0U3RhcnQoKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSkKKyNkZWZpbmUgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0
dXJlQWxsb2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFs
bG9jYXRvclJlZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2Nr
U291cmNlKiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRh
dGFMZW5ndGgsIENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxv
Y2tCdWZmZXJPdXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5n
dGgsIGJsb2NrQWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRh
TGVuZ3RoLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQpAQCAtMjY2LDYgKzI4MSw4IEBAIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dEF1ZGlvQnVmZmVyTGlzdFdpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJM
aXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVm
ZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE51bVNh
bXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckdldE51bVNhbXBsZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxl
Rm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtICosIChDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZGVzYyksIChkZXNjKSkKKyNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdAogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNC
dWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCkpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6
ZUFycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNp
emVBcnJheUVudHJpZXMsIHNpemVfdCogc2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFy
cmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlP
dXQsIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGJhMzc2MTc3
YTBmZTc4MGUyMWUzNzczYjA4NmFjMmE1YjE5MTMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTAsMCArMSw0
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQVZGT1VO
REFUSU9OKQorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVlRDb21wcmVzc2lvblNlc3Npb24uaD4K
KworI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZP
Ul9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVk
RnJhbWVSYXRlLCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50
ZXJ2YWxEdXJhdGlvbiwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwg
Q0ZTdHJpbmdSZWYpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxl
cmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5nUmVmKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90
IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNv
ZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmli
dXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Np
b25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZD
b24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxs
b2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBz
b3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRw
dXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21w
cmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vz
c2lvblJlZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFt
cCksIChzZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9u
U2Vzc2lvbkVuY29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNl
c3Npb24sIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25U
aW1lU3RhbXAsIENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGll
cywgdm9pZCogc291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NP
dXQpLCAoc2Vzc2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRp
b24sIGZyYW1lUHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVz
c2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lv
blNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKKworI2VuZGlmIC8vIFVTRShBVkZPVU5E
QVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJv
eFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRM
aW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGE5ZmU1MWUwZmYxNWNmMjNkYWQ5ODA4OWMyNTk2YWRmMTkwYWQ0
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29s
Ym94U29mdExpbmsuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5o
PgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gpCisK
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBDRlN0cmluZ1JlZikKKyNkZWZp
bmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSBnZXRfVmlkZW9U
b29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUoKQorU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uLCBDRlN0cmluZ1JlZikK
KyNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVy
YXRpb24gZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZy
YW1lSW50ZXJ2YWxEdXJhdGlvbigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJp
bmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUgZ2V0X1Zp
ZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lKCkKKworU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRW5jb2Rl
clNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgQ0ZT
dHJpbmdSZWYpCisjZGVmaW5lIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFy
ZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciBnZXRfVmlkZW9Ub29sYm94X2tWVFZpZGVvRW5j
b2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rlcigp
CisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENv
bXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNUeXBlIGNvZGVj
VHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlS
ZWYgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBjb21wcmVzc2Vk
RGF0YUFsbG9jYXRvciwgVlRDb21wcmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1dENhbGxiYWNr
LCB2b2lkKiBvdXRwdXRDYWxsYmFja1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Npb25SZWYqIGNv
bXByZXNzaW9uU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQsIGNvZGVjVHlw
ZSwgZW5jb2RlclNwZWNpZmljYXRpb24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgY29t
cHJlc3NlZERhdGFBbGxvY2F0b3IsIG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxsYmFja1JlZkNv
biwgY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25D
cmVhdGUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVz
c2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lv
blJlZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCks
IChzZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKKyNkZWZpbmUg
VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hf
VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcworU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJh
bWUsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZJbWFnZUJ1
ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1l
IGR1cmF0aW9uLCBDRkRpY3Rpb25hcnlSZWYgZnJhbWVQcm9wZXJ0aWVzLCB2b2lkKiBzb3VyY2VG
cmFtZVJlZmNvbiwgVlRFbmNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBp
bWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgZnJhbWVQcm9wZXJ0
aWVzLCBzb3VyY2VGcmFtZVJlZmNvbiwgaW5mb0ZsYWdzT3V0KSkKKyNkZWZpbmUgVlRDb21wcmVz
c2lvblNlc3Npb25FbmNvZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lv
blNlc3Npb25FbmNvZGVGcmFtZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBW
aWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzLCBP
U1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCisj
ZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIHNvZnRMaW5r
X1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcwor
CisjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGM0MzQ3ZTA5N2Y1YjAzNTFhYWFkYWMyNTY3YTgyZDI5NGRlZjgwYTUuLjJkODBmNDNlNDc4OWJk
N2RhZmViMzAwM2E3YTU3OTM3ODFjMmQ2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAt
NDkyLDcgKzQ5Miw5IEBAIHBsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5t
bQogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQogCiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKK3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KK3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCiAKIHBsYXRmb3Jt
L21lZGlhc2Vzc2lvbi9tYWMvTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uUHJvdmlkZXJNYWMubW0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDE1OGE1MDQyMDg5NjIzMWY1MmVhNmU5ZDc0OTQ3ZTA4MzYwYjkxMzQuLjdlODE4NmMw
OWEwMzNhMDg4MjhiOTFkOWFlNjI2ZGQ4NzU2OGYyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc1ODcsNiArNzU4Nyw4IEBA
CiAJCTQxQzdFMTA1MUU2QTU0MzYwMDI3QjRERSAvKiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNDYXB0
dXJlTWVkaWFTdHJlYW1UcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
QzdFMTA2MUU2QTU0MzYwMDI3QjRERSAvKiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYW52YXNDYXB0dXJlTWVkaWFTdHJl
YW1UcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUM3RTEwODFFNkFBMzdD
MDAyN0I0REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFDRDZGODkyM0Q2RTgxQzAwQjE2NDIxIC8qIFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFDRDZGOEIyM0Q2RTgxRDAwQjE2NDIxIC8qIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFDRjhC
RTQxRDQ2MjIyMDAwNzA3REM5IC8qIEZldGNoQm9keUNvbnN1bWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZldGNoQm9keUNvbnN1bWVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFDRjhCRTUxRDQ2MjIyMDAwNzA3REM5IC8qIEZldGNoQm9k
eUNvbnN1bWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoQm9keUNv
bnN1bWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRDAxNUM4MEY0QjVDNzEw
MDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb250ZW50VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzYxNSw2ICs3
NjE3LDggQEAKIAkJNDFFMUIxQ0EwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0V29ya2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMUIxQ0IwRkY1OTg2OTAwNTc2QjNC
IC8qIEFic3RyYWN0V29ya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFi
c3RyYWN0V29ya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTFCMUNDMEZG
NTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQWJzdHJhY3RXb3JrZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUx
RjMzRDI0OEE2MkI2MDAyMkQ1REUgLyogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUxRjMzRjI0OEE2
MkI2MDAyMkQ1REUgLyogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUU0MDgzODFEQ0I3NDc5MDBFRkNFMTkgLyogUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxRTU5M0ZEMjE0ODY1QTkwMEQzQ0I2MSAvKiBSVENQcmlvcml0eVR5cGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ1ByaW9yaXR5VHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTU5
M0ZGMjE0ODY1QUEwMEQzQ0I2MSAvKiBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xOTM1Niw4ICsxOTM2MCwxMiBAQAogCQk0RDNDMDVENDIxQUY0ODA5MDBGMjg5MEEgLyog
Y29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQx
RTFGMzNGMjQ4QTYyQjYwMDIyRDVERSAvKiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCAq
LywKKwkJCQk0MUUxRjMzRDI0OEE2MkI2MDAyMkQ1REUgLyogQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yLm1tICovLAogCQkJCTRENzNGOTRDMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggKi8sCiAJCQkJNEQ3M0Y5NEQyMThDNEE4NzAwM0EzRUQ2
IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gKi8sCisJCQkJNDFDRDZGODky
M0Q2RTgxQzAwQjE2NDIxIC8qIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oICovLAorCQkJ
CTQxQ0Q2RjhCMjNENkU4MUQwMEIxNjQyMSAvKiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
bW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTM0MzEyLDcgKzM0MzIwLDYgQEAKIAkJCQlDMUY3QjczMTI0NDhGMkFDMDAxMjQ1NTcg
LyogQUdYQ29tcGlsZXJTZXJ2aWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMEVFRTBFMTQ3
NDNGMzkwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNENTU5NjkxMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDFFMUYzNDMyNDhBNjlENDAwMjJENURFIC8qIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTc5ODI3MTcwQTI3OTEw
MEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb25JT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDhBN0JC
QjE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDREUzQTg1NzE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zNTAyOSw3ICszNTAzNiw2IEBACiAJCQkJ
N0M3M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJENUExOEYx
QzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICov
LAotCQkJCTQxRTFGMzQyMjQ4QTY5RDAwMDIyRDVERSAvKiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyog
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEOEI1QTQy
MTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTI2RjlBODM4MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9y
dENvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHAKaW5kZXggMmM5ZTljOGVmYTRmM2I0MjQwYWZlYmZlYTBhZTIwNmU4
NmNlZDNkZC4uYzEyODRiMDBjNmNjNjk5NGE5ZTU1Mjc1YzAxNGYyODI5ZDM5MDg5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtMjYsOSArMjYsMTAgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGwuaCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAKICNpbmNsdWRlICJBdWRpb1N0cmVh
bURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC0xMTIsNCArMTEzLDQgQEAgY29u
c3QgU3RyaW5nJiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6Om1pbWVUeXBlKCkKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FU
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCmluZGV4IGJkNmY3NTg4Mjhk
MjIwMzY0YjVkYTA5ZTcxODY4YjE3NThmMmExMWEuLjcyNmVlYjUwOTVmMzdhOTk1MjIyZjBhZWYx
YWE4ODQyYTljZGQ1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaApA
QCAtMjQsNyArMjQsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdB
VEUpCiAKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCIKQEAgLTYwLDQgKzYwLDQgQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJE
RUxFR0FURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE0N2JmODFlMWQ0NTZjNzBjMmQ5NDRmNzA0NWE4ZTE2ZTA1OWJjZjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQorCisjaW1wb3J0IDxDb3JlTWVkaWEvQ29yZU1lZGlhLmg+CisKK3R5cGVk
ZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKK3R5cGVk
ZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVyKiBBdWRpb0NvbnZlcnRlclJlZjsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBjcmVhdGUoQ01CdWZmZXJRdWV1
ZVRyaWdnZXJDYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpOworICAgIH5BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IoKTsKKworICAgIHZvaWQgZmluaXNoKCk7CisgICAgdm9pZCBhZGRT
YW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYpOworICAgIENNU2FtcGxlQnVmZmVyUmVmIGdl
dE91dHB1dFNhbXBsZUJ1ZmZlcigpOworICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcigpOworCitwcml2YXRlOgorICAgIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvcigpOworICAgIGJvb2wgaW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dl
ckNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCk7CisKKyAgICBzdGF0aWMgT1NTdGF0dXMg
YXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyhBdWRpb0NvbnZlcnRlclJlZiwgVUlu
dDMyKiwgQXVkaW9CdWZmZXJMaXN0KiwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbioqLCB2
b2lkKik7CisKKyAgICB2b2lkIHByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYp
OworICAgIGJvb2wgaW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24o
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiwgQXVkaW9Gb3JtYXRJRCk7CisgICAgc2l6ZV90IGNvbXB1
dGVCdWZmZXJTaXplRm9yQXVkaW9Gb3JtYXQoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBV
SW50MzIsIEZsb2F0MzIpOworICAgIHZvaWQgYXR0YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQoQ01T
YW1wbGVCdWZmZXJSZWYpOworICAgIFJldGFpblB0cjxOU051bWJlcj4gZ3JhZHVhbERlY29kZXJS
ZWZyZXNoQ291bnQoKTsKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyhVSW50MzIgbnVtUGFja2V0cywgQXVkaW9CdWZmZXJMaXN0KTsKKyAgICB2b2lkIHBy
b2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lKTsKKyAgICBPU1N0YXR1
cyBwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKiwgQXVkaW9CdWZmZXJM
aXN0KiwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbioqKTsKKworICAgIFJldGFpblB0cjxD
TUJ1ZmZlclF1ZXVlUmVmPiBtX291dHB1dEJ1ZmZlclF1ZXVlOworICAgIFJldGFpblB0cjxDTUJ1
ZmZlclF1ZXVlUmVmPiBtX2lucHV0QnVmZmVyUXVldWU7CisgICAgZGlzcGF0Y2hfcXVldWVfdCBt
X3NlcmlhbERpc3BhdGNoUXVldWU7CisgICAgQ01UaW1lIG1fbG93V2F0ZXJUaW1lOworICAgIGJv
b2wgbV9pc0VuY29kaW5nIHsgZmFsc2UgfTsKKworICAgIFJldGFpblB0cjxBdWRpb0NvbnZlcnRl
clJlZj4gbV9jb252ZXJ0ZXI7CisgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1fc291
cmNlRm9ybWF0OworICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBtX2Rlc3RpbmF0aW9u
Rm9ybWF0OworICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX2Rlc3RpbmF0
aW9uRm9ybWF0RGVzY3JpcHRpb247CisgICAgUmV0YWluUHRyPE5TTnVtYmVyPiBtX2dkckNvdW50
TnVtOworICAgIFVJbnQzMiBtX21heE91dHB1dFBhY2tldFNpemU7CisgICAgVmVjdG9yPEF1ZGlv
U3RyZWFtUGFja2V0RGVzY3JpcHRpb24+IG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnM7
CisKKyAgICBDTVRpbWUgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wOworICAg
IENNVGltZSBtX2N1cnJlbnRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXA7CisgICAgQ01UaW1l
IG1fcmVtYWluaW5nUHJpbWVEdXJhdGlvbjsKKworICAgIFZlY3RvcjxjaGFyPiBtX3NvdXJjZUJ1
ZmZlcjsKKyAgICBWZWN0b3I8Y2hhcj4gbV9kZXN0aW5hdGlvbkJ1ZmZlcjsKKworICAgIFJldGFp
blB0cjxDTUJsb2NrQnVmZmVyUmVmPiBtX3NhbXBsZUJsb2NrQnVmZmVyOworICAgIHNpemVfdCBt
X3NhbXBsZUJsb2NrQnVmZmVyU2l6ZTsKKyAgICBzaXplX3QgbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlcjsKKyAgICBBdWRpb0Zvcm1hdElEIG1fb3V0cHV0Q29kZWNUeXBlOworfTsK
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzUzODc2MGY4ZDhkZGU4ODVhMjNlOTk0NjNkZjNkYmVjOWNiYWMxMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC0wLDAgKzEsNTAyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJ
T04pCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlv
Q29kZWMuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KKyNpbmNs
dWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Gb3JtYXQuaD4KKyNpbmNsdWRlIDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKworI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisK
KyNkZWZpbmUgTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05EUyAwLjEKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOworCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShD
TUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVj
dCkKK3sKKyAgICBhdXRvIGNvbXByZXNzb3IgPSBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yPihuZXcgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkpOworICAg
IGlmICghY29tcHJlc3Nvci0+aW5pdGlhbGl6ZShjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QpKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29tcHJlc3NvcjsKK30KKworQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQor
ICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlIHsgZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJjb20u
YXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFM
KSB9CisgICAgLCBtX2xvd1dhdGVyVGltZSB7IENNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FU
RVJfVElNRV9JTl9TRUNPTkRTLCAxMDAwKSB9CisgICAgLCBtX291dHB1dENvZGVjVHlwZSB7IGtB
dWRpb0Zvcm1hdE1QRUc0QUFDIH0KK3sKK30KKworQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKK3sKKyAgICBpZiAobV9zZXJpYWxEaXNw
YXRjaFF1ZXVlKQorICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fc2VyaWFsRGlzcGF0Y2hRdWV1
ZSk7Cit9CisKK2Jvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENN
QnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0
KQoreworICAgIENNQnVmZmVyUXVldWVSZWYgaW5wdXRCdWZmZXJRdWV1ZTsKKyAgICBpZiAoYXV0
byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01C
dWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmaW5wdXRC
dWZmZXJRdWV1ZSkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3IgbV9pbnB1
dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIG1faW5wdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0YoaW5wdXRCdWZmZXJR
dWV1ZSk7CisKKyAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOworICAgIGlm
IChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAw
LCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZv
dXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3Ig
bV9vdXRwdXRCdWZmZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRDRihvdXRw
dXRCdWZmZXJRdWV1ZSk7CisgICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0
QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVl
dWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7CisKKyAg
ICBtX2lzRW5jb2RpbmcgPSB0cnVlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkKK3sKKyAgICBkaXNwYXRjaF9zeW5jKG1f
c2VyaWFsRGlzcGF0Y2hRdWV1ZSwgXnsKKyAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRp
bExvd1dhdGVyVGltZShrQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBDTUJ1
ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCAlZCIsIGVy
cm9yKTsKKyAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CisgICAgfSk7Cit9CisKK2Jvb2wg
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VG
b3JtYXREZXNjcmlwdGlvbihDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
LCBBdWRpb0Zvcm1hdElEIG91dHB1dEZvcm1hdElEKQoreworICAgIGNvbnN0IGF1dG8gKmF1ZGlv
Rm9ybWF0TGlzdEl0ZW0gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2Rh
YmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBtX3NvdXJjZUZvcm1hdCA9IGF1ZGlv
Rm9ybWF0TGlzdEl0ZW0tPm1BU0JEOworCisgICAgbWVtc2V0KCZtX2Rlc3RpbmF0aW9uRm9ybWF0
LCAwLCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CisgICAgbV9kZXN0aW5h
dGlvbkZvcm1hdC5tRm9ybWF0SUQgPSBvdXRwdXRGb3JtYXRJRDsKKyAgICBtX2Rlc3RpbmF0aW9u
Rm9ybWF0Lm1TYW1wbGVSYXRlID0gbV9zb3VyY2VGb3JtYXQubVNhbXBsZVJhdGU7CisgICAgbV9k
ZXN0aW5hdGlvbkZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG1fc291cmNlRm9ybWF0Lm1DaGFu
bmVsc1BlckZyYW1lOworCisgICAgVUludDMyIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZv
cm1hdCk7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRp
b0Zvcm1hdFByb3BlcnR5X0Zvcm1hdEluZm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlv
bkZvcm1hdCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIEF1ZGlv
Q29udmVydGVyUmVmIGNvbnZlcnRlcjsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyTmV3KCZtX3NvdXJjZUZvcm1hdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsICZjb252ZXJ0ZXIp
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIEF1ZGlvQ29udmVydGVyTmV3IGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG1fY29udmVydGVyID0gYWRvcHRD
Rihjb252ZXJ0ZXIpOworCisgICAgc2l6ZV90IGNvb2tpZVNpemUgPSAwOworICAgIGNvbnN0IHZv
aWQgKmNvb2tpZSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1h
dERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7CisgICAgaWYgKGNvb2tpZVNpemUpIHsKKyAgICAg
ICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVy
LmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUsIChVSW50MzIp
Y29va2llU2l6ZSwgY29va2llKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252
ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzaXplID0g
c2l6ZW9mKG1fc291cmNlRm9ybWF0KTsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJ
bnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgeworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9u
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgaWYgKCFtX3NvdXJjZUZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJtQnl0ZXNQZXJQYWNrZXQgc2hvdWxkIG5vdCBi
ZSB6ZXJvIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzaXplID0gc2l6
ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyQ3VycmVu
dE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURl
c2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKG1fZGVzdGluYXRpb25Gb3JtYXQubUZvcm1hdElEID09IGtBdWRp
b0Zvcm1hdE1QRUc0QUFDKSB7CisgICAgICAgIC8vIEZJWE1FOiBTZXQgb3V0cHV0Qml0UmF0ZSBh
Y2NvcmRpbmcgTWVkaWFSZWNvcmRlck9wdGlvbnMuYXVkaW9CaXRzUGVyU2Vjb25kLgorICAgICAg
ICBVSW50MzIgb3V0cHV0Qml0UmF0ZSA9IDY0MDAwOworICAgICAgICBpZiAobV9kZXN0aW5hdGlv
bkZvcm1hdC5tU2FtcGxlUmF0ZSA+PSA0NDEwMCkKKyAgICAgICAgICAgIG91dHB1dEJpdFJhdGUg
PSAxOTIwMDA7CisgICAgICAgIGVsc2UgaWYgKG1fZGVzdGluYXRpb25Gb3JtYXQubVNhbXBsZVJh
dGUgPCAyMjAwMCkKKyAgICAgICAgICAgIG91dHB1dEJpdFJhdGUgPSAzMjAwMDsKKworICAgICAg
ICBzaXplID0gc2l6ZW9mKG91dHB1dEJpdFJhdGUpOworICAgICAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZl
cnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkgeworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKCFtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1CeXRlc1BlclBhY2tldCkgeworICAgICAgICAv
LyBJZiB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlzIFZCUiwgd2UgbmVlZCB0byBnZXQgbWF4IHNp
emUgcGVyIHBhY2tldCBmcm9tIHRoZSBjb252ZXJ0ZXIuCisgICAgICAgIHNpemUgPSBzaXplb2Yo
bV9tYXhPdXRwdXRQYWNrZXRTaXplKTsKKworICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlclBy
b3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRT
aXplKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1h
eGltdW1PdXRwdXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBkZXN0aW5hdGlv
bkJ1ZmZlclNpemUgPSBjb21wdXRlQnVmZmVyU2l6ZUZvckF1ZGlvRm9ybWF0KG1fZGVzdGluYXRp
b25Gb3JtYXQsIG1fbWF4T3V0cHV0UGFja2V0U2l6ZSwgTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05E
Uyk7CisgICAgaWYgKG1fZGVzdGluYXRpb25CdWZmZXIuc2l6ZSgpIDwgZGVzdGluYXRpb25CdWZm
ZXJTaXplKQorICAgICAgICBtX2Rlc3RpbmF0aW9uQnVmZmVyLnJlc2l6ZShkZXN0aW5hdGlvbkJ1
ZmZlclNpemUpOworICAgIGlmICghbV9kZXN0aW5hdGlvbkZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQp
CisgICAgICAgIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMucmVzaXplKG1fZGVzdGlu
YXRpb25CdWZmZXIuY2FwYWNpdHkoKSAvIG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworc2l6ZV90IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y29t
cHV0ZUJ1ZmZlclNpemVGb3JBdWRpb0Zvcm1hdChBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24g
Zm9ybWF0LCBVSW50MzIgbWF4T3V0cHV0UGFja2V0U2l6ZSwgRmxvYXQzMiBkdXJhdGlvbikKK3sK
KyAgICBVSW50MzIgbnVtUGFja2V0cyA9IChmb3JtYXQubVNhbXBsZVJhdGUgKiBkdXJhdGlvbikg
LyBmb3JtYXQubUZyYW1lc1BlclBhY2tldDsKKyAgICBVSW50MzIgb3V0cHV0UGFja2V0U2l6ZSA9
IGZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgPyBmb3JtYXQubUJ5dGVzUGVyUGFja2V0IDogbWF4T3V0
cHV0UGFja2V0U2l6ZTsKKyAgICBVSW50MzIgYnVmZmVyU2l6ZSA9IG51bVBhY2tldHMgKiBvdXRw
dXRQYWNrZXRTaXplOworCisgICAgcmV0dXJuIGJ1ZmZlclNpemU7Cit9CisKK3ZvaWQgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZChDTVNhbXBs
ZUJ1ZmZlclJlZiBidWZmZXIpCit7CisgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1fcmVtYWlu
aW5nUHJpbWVEdXJhdGlvbikpIHsKKyAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gcHJp
bWVJbmZvIHsgMCwgMCB9OworICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmltZUluZm8p
OworCisgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSht
X2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyUHJpbWVJbmZvLCAmc2l6ZSwgJnByaW1l
SW5mbykpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyUHJpbWVJbmZv
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgbV9yZW1haW5pbmdQcmltZUR1cmF0aW9uID0gQ01UaW1lTWFrZShwcmltZUlu
Zm8ubGVhZGluZ0ZyYW1lcywgbV9kZXN0aW5hdGlvbkZvcm1hdC5tU2FtcGxlUmF0ZSk7CisgICAg
fQorCisgICAgaWYgKENNVElNRV9DT01QQVJFX0lOTElORShrQ01UaW1lWmVybywgPCwgbV9yZW1h
aW5pbmdQcmltZUR1cmF0aW9uKSkgeworICAgICAgICBDTVRpbWUgc2FtcGxlRHVyYXRpb24gPSBD
TVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7CisgICAgICAgIENNVGltZSB0cmltRHVy
YXRpb24gPSBDTVRpbWVNaW5pbXVtKHNhbXBsZUR1cmF0aW9uLCBtX3JlbWFpbmluZ1ByaW1lRHVy
YXRpb24pOworICAgICAgICBDRkRpY3Rpb25hcnlSZWYgdHJpbUF0U3RhcnREaWN0ID0gQ01UaW1l
Q29weUFzRGljdGlvbmFyeSh0cmltRHVyYXRpb24sIGtDRkFsbG9jYXRvckRlZmF1bHQpOworICAg
ICAgICBDTVNldEF0dGFjaG1lbnQoYnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X1RyaW1EdXJhdGlvbkF0U3RhcnQsIHRyaW1BdFN0YXJ0RGljdCwga0NNQXR0YWNobWVudE1vZGVf
U2hvdWxkUHJvcGFnYXRlKTsKKyAgICAgICAgQ0ZSZWxlYXNlKHRyaW1BdFN0YXJ0RGljdCk7Cisg
ICAgICAgIG1fcmVtYWluaW5nUHJpbWVEdXJhdGlvbiA9IENNVGltZVN1YnRyYWN0KG1fcmVtYWlu
aW5nUHJpbWVEdXJhdGlvbiwgdHJpbUR1cmF0aW9uKTsKKyAgICB9Cit9CisKK1JldGFpblB0cjxO
U051bWJlcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJlZnJl
c2hDb3VudCgpCit7CisgICAgVUludDMyIGRlbGF5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7Cisg
ICAgdWludDMyX3Qgb3JpZ2luYWxEZWxheU1vZGUgPSAwOworICAgIGlmIChhdXRvIGVycm9yID0g
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29kZWNQ
cm9wZXJ0eURlbGF5TW9kZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisgICAgdWludDMyX3Qg
b3B0aW1hbERlbGF5TW9kZSA9IGtBdWRpb0NvZGVjRGVsYXlNb2RlX09wdGltYWw7CisgICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgp
LCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlN
b2RlKSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUg
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisg
ICAgVUludDMyIHByaW1lU2l6ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJbmZvKTsKKyAgICBB
dWRpb0NvZGVjUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKKyAgICBpZiAoYXV0byBlcnJv
ciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0Nv
ZGVjUHJvcGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbyBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9CisKKyAgICBpZiAoYXV0byBlcnJv
ciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0Nv
ZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorICAgIHJldHVybiBh
ZG9wdE5TKFtOU051bWJlciBudW1iZXJXaXRoSW50OihwcmltZUluZm8ubGVhZGluZ0ZyYW1lcyAv
IG1fZGVzdGluYXRpb25Gb3JtYXQubUZyYW1lc1BlclBhY2tldCldKTsKK30KKworQ01TYW1wbGVC
dWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyhVSW50MzIgbnVtUGFja2V0cywgQXVkaW9CdWZmZXJMaXN0IGZpbGxCdWZmZXJMaXN0
KQoreworICAgIFZlY3RvcjxjaGFyPiBjb29raWU7CisgICAgaWYgKCFtX2Rlc3RpbmF0aW9uRm9y
bWF0RGVzY3JpcHRpb24pIHsKKyAgICAgICAgVUludDMyIGNvb2tpZVNpemUgPSAwOworCisgICAg
ICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbyhtX2NvbnZlcnRl
ci5nZXQoKSwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNp
emUsIE5VTEwpOworICAgICAgICBpZiAoKGVycm9yID09IG5vRXJyKSAmJiAhIWNvb2tpZVNpemUp
IHsKKyAgICAgICAgICAgIGNvb2tpZS5yZXNpemUoY29va2llU2l6ZSk7CisKKyAgICAgICAgICAg
IGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5n
ZXQoKSwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUs
IGNvb2tpZS5kYXRhKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252
ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAg
ICAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb247
CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBOVUxMLCBjb29r
aWVTaXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlv
bikpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgIH0K
KyAgICAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uID0gYWRvcHRDRihkZXN0aW5h
dGlvbkZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAgbV9nZHJDb3VudE51bSA9IGdyYWR1YWxE
ZWNvZGVyUmVmcmVzaENvdW50KCk7CisgICAgfQorCisgICAgY2hhciAqZGF0YSA9IHN0YXRpY19j
YXN0PGNoYXIqPihmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YSk7CisgICAgc2l6ZV90
IGRhdGFTaXplID0gZmlsbEJ1ZmZlckxpc3QubUJ1ZmZlcnNbMF0ubURhdGFCeXRlU2l6ZTsKKwor
ICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXI7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBD
TUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5V
TEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBkYXRhU2l6ZSwga0NN
QmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIpKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorICAgIGF1dG8gYnVmZmVyID0gYWRv
cHRDRihibG9ja0J1ZmZlcik7CisKKyAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJS
ZXBsYWNlRGF0YUJ5dGVzKGRhdGEsIGJ1ZmZlci5nZXQoKSwgMCwgZGF0YVNpemUpKSB7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOworICAgICAgICByZXR1cm4gbmlsOworICAgIH0KKworICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlcjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgp
LCB0cnVlLCBOVUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24uZ2V0KCks
IG51bVBhY2tldHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwgbV9kZXN0
aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOworICAgIGlm
IChlcnJvcikgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tl
dERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG5p
bDsKKyAgICB9CisKKyAgICBpZiAoW21fZ2RyQ291bnROdW0gaW50VmFsdWVdKQorICAgICAgICBD
TVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X0dyYWR1YWxEZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVt
LmdldCgpLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOworCisgICAgcmV0dXJu
IHNhbXBsZUJ1ZmZlcjsKK30KKworT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjphdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKEF1ZGlvQ29udmVydGVyUmVmLCBV
SW50MzIgKm51bU91dHB1dFBhY2tldHNQdHIsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCwg
QXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqKnBhY2tldERlc2NyaXB0aW9uT3V0LCB2b2lk
ICphdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IpCit7CisgICAgYXV0byAqY29tcHJlc3NvciA9
IHN0YXRpY19jYXN0PEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KGF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcik7CisgICAgcmV0dXJuIGNvbXByZXNzb3ItPnByb3ZpZGVTb3VyY2VEYXRh
TnVtT3V0cHV0UGFja2V0cyhudW1PdXRwdXRQYWNrZXRzUHRyLCBidWZmZXJMaXN0LCBwYWNrZXRE
ZXNjcmlwdGlvbk91dCk7Cit9CisKK09TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMiogbnVtT3V0cHV0UGFj
a2V0c1B0ciwgQXVkaW9CdWZmZXJMaXN0KiBhdWRpb0J1ZmZlckxpc3QsIEF1ZGlvU3RyZWFtUGFj
a2V0RGVzY3JpcHRpb24qKiBwYWNrZXREZXNjcmlwdGlvbk91dCkKK3sKKyAgICBpZiAocGFja2V0
RGVzY3JpcHRpb25PdXQpCisgICAgICAgICpwYWNrZXREZXNjcmlwdGlvbk91dCA9IE5VTEw7CisK
KyAgICBjb25zdCBVSW50MzIgbnVtUGFja2V0c1RvQ29weSA9ICpudW1PdXRwdXRQYWNrZXRzUHRy
OworICAgIHNpemVfdCBudW1CeXRlc1RvQ29weSA9IChudW1QYWNrZXRzVG9Db3B5ICogbV9zb3Vy
Y2VGb3JtYXQubUJ5dGVzUGVyUGFja2V0KTsKKworICAgIGlmIChhdWRpb0J1ZmZlckxpc3QtPm1O
dW1iZXJCdWZmZXJzID09IDEpIHsKKyAgICAgICAgc2l6ZV90IGN1cnJlbnRPZmZzZXRJblNvdXJj
ZUJ1ZmZlciA9IDA7CisKKyAgICAgICAgaWYgKG1fc291cmNlQnVmZmVyLnNpemUoKSA8IG51bUJ5
dGVzVG9Db3B5KQorICAgICAgICAgICAgbV9zb3VyY2VCdWZmZXIucmVzaXplKG51bUJ5dGVzVG9D
b3B5KTsKKworICAgICAgICB3aGlsZSAobnVtQnl0ZXNUb0NvcHkpIHsKKyAgICAgICAgICAgIGlm
IChtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA8PSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2Nr
QnVmZmVyKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1
ZmZlclF1ZXVlLmdldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShj
b25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIg
PSBhZG9wdENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihD
TVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7CisgICAg
ICAgICAgICAgICAgaWYgKCFtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKKyAgICAgICAgICAg
ICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOworICAgICAgICAgICAgICAgICAg
ICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fc2Ft
cGxlQmxvY2tCdWZmZXJTaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVC
bG9ja0J1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlciA9IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3Nh
bXBsZUJsb2NrQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgc2l6ZV90IG51bUJ5dGVzVG9Db3B5
RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihudW1CeXRlc1RvQ29weSwgKG1fc2FtcGxlQmxvY2tC
dWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikpOworICAgICAg
ICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9z
YW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSAr
IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIG51bUJ5dGVzVG9Db3B5IC09IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWY7
CisgICAgICAgICAgICAgICAgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyICs9IG51bUJ5dGVz
VG9Db3B5RnJvbVNhbXBsZUJidWY7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlciArPSBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1ZmZlcnNbMF0u
bURhdGEgPSBtX3NvdXJjZUJ1ZmZlci5kYXRhKCk7CisgICAgICAgIGF1ZGlvQnVmZmVyTGlzdC0+
bUJ1ZmZlcnNbMF0ubURhdGFCeXRlU2l6ZSA9IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcjsK
KyAgICAgICAgYXVkaW9CdWZmZXJMaXN0LT5tQnVmZmVyc1swXS5tTnVtYmVyQ2hhbm5lbHMgPSBt
X3NvdXJjZUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKKworICAgICAgICAqbnVtT3V0cHV0UGFj
a2V0c1B0ciA9IChhdWRpb0J1ZmZlckxpc3QtPm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBt
X3NvdXJjZUZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOworICAgICAgICByZXR1cm4gbm9FcnI7Cisg
ICAgfQorCisgICAgQVNTRVJUKGF1ZGlvQnVmZmVyTGlzdC0+bU51bWJlckJ1ZmZlcnMgPT0gMik7
CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBpbnRlcmxlYXZlZCBkYXRhIGJ5IHVuaW50ZXJsZWF2
aW5nIG1fc291cmNlQnVmZmVyIGlmIG5lZWRlZC4KKyAgICBBU1NFUlQobV9zb3VyY2VGb3JtYXQu
bUZvcm1hdEZsYWdzICYga0F1ZGlvRm9ybWF0RmxhZ0lzTm9uSW50ZXJsZWF2ZWQpOworCisgICAg
aWYgKG1fc291cmNlQnVmZmVyLnNpemUoKSA8IDIgKiBudW1CeXRlc1RvQ29weSkKKyAgICAgICAg
bV9zb3VyY2VCdWZmZXIucmVzaXplKDIgKiBudW1CeXRlc1RvQ29weSk7CisgICAgYXV0byogZmly
c3RDaGFubmVsID0gbV9zb3VyY2VCdWZmZXIuZGF0YSgpOworICAgIGF1dG8qIHNlY29uZENoYW5u
ZWwgPSBtX3NvdXJjZUJ1ZmZlci5kYXRhKCkgKyBudW1CeXRlc1RvQ29weTsKKworICAgIHNpemVf
dCBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIgPSAwOworICAgIHdoaWxlIChudW1CeXRlc1Rv
Q29weSkgeworICAgICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPD0gbV9jdXJyZW50
T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikgeworICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxv
Y2tCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBh
dXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0
PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUu
Z2V0KCkpKSkpOworICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0YoKENN
QmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2FtcGxlQnVmZmVy
R2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAgICAgICAgIGlmICgh
bV9zYW1wbGVCbG9ja0J1ZmZlcikgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVy
R2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVm
ZmVyU2l6ZSA9IDA7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9j
a0J1ZmZlciA9IDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRh
TGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAgICAgICAgIG1fY3Vy
cmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKKyAgICAgICAgICAgIHNpemVfdCBudW1CeXRlc1Rv
Q29weUZyb21TYW1wbGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNUb0NvcHksIChtX3NhbXBsZUJs
b2NrQnVmZmVyU2l6ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIpKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9z
YW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKGZpcnN0Q2hhbm5lbCArIGN1cnJlbnRP
ZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZl
ckNvcHlEYXRhQnl0ZXMgZmlyc3QgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBp
ZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tC
dWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgKyBtX3NhbXBs
ZUJsb2NrQnVmZmVyU2l6ZSwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKHNlY29uZENo
YW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIHNlY29uZCBjaGFubmVsIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIG51bUJ5dGVzVG9Db3B5IC09IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBs
ZUJidWY7CisgICAgICAgICAgICBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIgKz0gbnVtQnl0
ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZjsKKyAgICAgICAgICAgIG1fY3VycmVudE9mZnNldEluU2Ft
cGxlQmxvY2tCdWZmZXIgKz0gbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZjsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1ZmZlcnNbMF0ubURhdGEgPSBmaXJz
dENoYW5uZWw7CisgICAgYXVkaW9CdWZmZXJMaXN0LT5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXpl
ID0gY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyOworICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1
ZmZlcnNbMF0ubU51bWJlckNoYW5uZWxzID0gMTsKKworICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1
ZmZlcnNbMV0ubURhdGEgPSBzZWNvbmRDaGFubmVsOworICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1
ZmZlcnNbMV0ubURhdGFCeXRlU2l6ZSA9IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcjsKKyAg
ICBhdWRpb0J1ZmZlckxpc3QtPm1CdWZmZXJzWzFdLm1OdW1iZXJDaGFubmVscyA9IDE7CisKKyAg
ICAqbnVtT3V0cHV0UGFja2V0c1B0ciA9IChhdWRpb0J1ZmZlckxpc3QtPm1CdWZmZXJzWzBdLm1E
YXRhQnl0ZVNpemUgLyBtX3NvdXJjZUZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOworICAgIHJldHVy
biBub0VycjsKK30KKwordm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NT
YW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGxvd1dhdGVyVGltZSkKK3sKKyAg
ICBpZiAoIW1fY29udmVydGVyKSB7CisgICAgICAgIGF1dG8gYnVmZmVyID0gKENNU2FtcGxlQnVm
ZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX2lucHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKSk7CisgICAgICAgIEFTU0VSVChidWZmZXIpOworCisgICAgICAgIG1f
Y3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJl
c2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7CisgICAgICAgIG1fY3VycmVudE91dHB1dFByZXNl
bnRhdGlvblRpbWVTdGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGlt
ZVN0YW1wKGJ1ZmZlcik7CisKKyAgICAgICAgYXV0byBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2Ft
cGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oYnVmZmVyKTsKKyAgICAgICAgaWYgKCFpbml0
QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbihmb3JtYXREZXNjcmlwdGlv
biwgbV9vdXRwdXRDb2RlY1R5cGUpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHdoaWxlIChDTVRJTUVfSVNfSU5WQUxJRChsb3dXYXRlclRpbWUpIHx8IENNVElNRV9DT01QQVJF
X0lOTElORShsb3dXYXRlclRpbWUsIDwsIENNQnVmZmVyUXVldWVHZXREdXJhdGlvbihtX2lucHV0
QnVmZmVyUXVldWUuZ2V0KCkpKSkgeworICAgICAgICBBdWRpb0J1ZmZlckxpc3QgZmlsbEJ1ZmZl
ckxpc3Q7CisKKyAgICAgICAgZmlsbEJ1ZmZlckxpc3QubU51bWJlckJ1ZmZlcnMgPSAxOworICAg
ICAgICBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tTnVtYmVyQ2hhbm5lbHMgPSBtX2Rlc3Rp
bmF0aW9uRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1lOworICAgICAgICBmaWxsQnVmZmVyTGlzdC5t
QnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplID0gKFVJbnQzMiltX2Rlc3RpbmF0aW9uQnVmZmVyLmNh
cGFjaXR5KCk7CisgICAgICAgIGZpbGxCdWZmZXJMaXN0Lm1CdWZmZXJzWzBdLm1EYXRhID0gbV9k
ZXN0aW5hdGlvbkJ1ZmZlci5kYXRhKCk7CisKKyAgICAgICAgVUludDMyIG91dHB1dFBhY2tldFNp
emUgPSBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1CeXRlc1BlclBhY2tldCA/IG1fZGVzdGluYXRpb25G
b3JtYXQubUJ5dGVzUGVyUGFja2V0IDogbV9tYXhPdXRwdXRQYWNrZXRTaXplOworICAgICAgICBV
SW50MzIgbnVtT3V0cHV0UGFja2V0cyA9IChVSW50MzIpbV9kZXN0aW5hdGlvbkJ1ZmZlci5jYXBh
Y2l0eSgpIC8gb3V0cHV0UGFja2V0U2l6ZTsKKworICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9D
b252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgYXVkaW9Db252ZXJ0
ZXJDb21wbGV4SW5wdXREYXRhUHJvYywgdGhpcywgJm51bU91dHB1dFBhY2tldHMsICZmaWxsQnVm
ZmVyTGlzdCwgbV9kZXN0aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCkpOworICAgICAg
ICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhC
dWZmZXIgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoIW51bU91dHB1dFBhY2tldHMpCisgICAgICAgICAgICBicmVh
azsKKworICAgICAgICBhdXRvIGJ1ZmZlciA9IHNhbXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKG51
bU91dHB1dFBhY2tldHMsIGZpbGxCdWZmZXJMaXN0KTsKKworICAgICAgICBhdHRhY2hQcmltaW5n
VHJpbXNJZk5lZWRlZChidWZmZXIpOworCisgICAgICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJT
ZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyLCBtX2N1cnJlbnRPdXRwdXRQcmVz
ZW50YXRpb25UaW1lU3RhbXApOworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
Q01UaW1lIG5hdGl2ZUR1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXREdXJhdGlvbihidWZmZXIp
OworICAgICAgICBtX2N1cnJlbnROYXRpdmVQcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVB
ZGQobV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wLCBuYXRpdmVEdXJhdGlvbik7
CisKKyAgICAgICAgQ01UaW1lIG91dHB1dER1cmF0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRw
dXREdXJhdGlvbihidWZmZXIpOworICAgICAgICBtX2N1cnJlbnRPdXRwdXRQcmVzZW50YXRpb25U
aW1lU3RhbXAgPSBDTVRpbWVBZGQobV9jdXJyZW50T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1w
LCBvdXRwdXREdXJhdGlvbik7CisKKyAgICAgICAgZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1
ZShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOworICAgICAgICBpZiAoZXJyb3Ip
IHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVFbnF1ZXVlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorfQorCit2b2lk
IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNhbXBs
ZUJ1ZmZlclJlZiBidWZmZXIpCit7CisgICAgYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1
ZXVlKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSwgYnVmZmVyKTsKKyAgICBSRUxFQVNFX0xPR19F
UlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Ig
Q01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisKKyAgICBwcm9j
ZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJUaW1lKG1fbG93V2F0ZXJUaW1lKTsKK30KKwor
dm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBs
ZUJ1ZmZlclJlZiBidWZmZXIpCit7CisgICAgZGlzcGF0Y2hfc3luYyhtX3NlcmlhbERpc3BhdGNo
UXVldWUsIF57CisgICAgICAgIGlmIChtX2lzRW5jb2RpbmcpCisgICAgICAgICAgICBwcm9jZXNz
U2FtcGxlQnVmZmVyKGJ1ZmZlcik7CisgICAgfSk7Cit9CisKK0NNU2FtcGxlQnVmZmVyUmVmIEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkKK3sKKyAg
ICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1
ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpOworfQorCitSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1
dFNhbXBsZUJ1ZmZlcigpCit7CisgICAgcmV0dXJuIGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVm
KShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1
dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJD
b2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKaW5kZXggYjE0N2NhMjg4MjliMGYxMDMwYmRh
NzRhMDg0MjZjNDU2NWU5ODcxZS4uNDhlOTBkY2UyMWIxY2NmNzkzYjEyYWFkMjE4ZDYwOGUyZTEz
YzVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9j
b2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmgKQEAgLTI0LDcgKzI0LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdS
SVRFUkRFTEVHQVRFKQorCisjaW5jbHVkZSAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogCiAj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVy
Lmg+CkBAIC0zNSwxMCArMzcsMTYgQEAKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1
ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9yZS5oPgogCisjaW5jbHVkZSA8Q29yZUF1ZGlv
L0NvcmVBdWRpb1R5cGVzLmg+CisjaW5jbHVkZSA8Q29yZU1lZGlhL0NNVGltZS5oPgorCiB0eXBl
ZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7Cit0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1hdERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2Ny
aXB0aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tl
biAqQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbjsKIAogT0JKQ19DTEFTUyBBVkFzc2V0V3JpdGVy
OwogT0JKQ19DTEFTUyBBVkFzc2V0V3JpdGVySW5wdXQ7CitPQkpDX0NMQVNTIFdlYkFWQXNzZXRX
cml0ZXJEZWxlZ2F0ZTsKIAogbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBNZWRpYVRpbWU7CkBAIC00
Niw1MSArNTQsNzMgQEAgY2xhc3MgTWVkaWFUaW1lOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcjsKIGNsYXNzIEF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb247CiBjbGFzcyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3Jt
QXVkaW9EYXRhOworY2xhc3MgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOwogCi1jbGFzcyBX
RUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgV1RGOjpEZXN0cnVjdGlv
blRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcj4geworY2xhc3MgV0VCQ09SRV9FWFBPUlQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXIsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246
OkVhZ2VyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcj4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNr
LCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogdmlkZW9UcmFjayk7CiAgICAgc3RhdGlj
IFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gY3JlYXRlKGJvb2wgaGFzQXVkaW8s
IGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAgICAgfk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
KCk7Ci0gICAgCi0gICAgYm9vbCBzZXR1cFdyaXRlcigpOwotICAgIGJvb2wgc2V0VmlkZW9JbnB1
dChpbnQgd2lkdGgsIGludCBoZWlnaHQpOwotICAgIGJvb2wgc2V0QXVkaW9JbnB1dCgpOworCiAg
ICAgdm9pZCBhcHBlbmRWaWRlb1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZik7CiAgICAg
dm9pZCBhcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNv
bnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBjb25zdCBXVEY6Ok1lZGlhVGltZSYsIHNpemVf
dCk7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCk7CiAgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U2hhcmVkQnVmZmVyPiYmKT4mJik7CiAKKyAgICB2b2lk
IGFwcGVuZERhdGEoY29uc3QgY2hhciosIHNpemVfdCk7CisgICAgdm9pZCBhcHBlbmREYXRhKFJl
ZjxTaGFyZWRCdWZmZXI+JiYpOworCiBwcml2YXRlOgotICAgIE1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyKFJldGFpblB0cjxBVkFzc2V0V3JpdGVyPiYmLCBTdHJpbmcmJiBwYXRoKTsKKyAgICBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvKTsK
ICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcj4gbV93cml0
ZXI7Ci0gICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXJJbnB1dD4gbV92aWRlb0lucHV0OwotICAg
IFJldGFpblB0cjxBVkFzc2V0V3JpdGVySW5wdXQ+IG1fYXVkaW9JbnB1dDsKLQotICAgIFN0cmlu
ZyBtX3BhdGg7Ci0gICAgTG9jayBtX3ZpZGVvTG9jazsKLSAgICBMb2NrIG1fYXVkaW9Mb2NrOwot
ICAgIEJpbmFyeVNlbWFwaG9yZSBtX2ZpbmlzaFdyaXRpbmdTZW1hcGhvcmU7Ci0gICAgQmluYXJ5
U2VtYXBob3JlIG1fZmluaXNoV3JpdGluZ0F1ZGlvU2VtYXBob3JlOwotICAgIEJpbmFyeVNlbWFw
aG9yZSBtX2ZpbmlzaFdyaXRpbmdWaWRlb1NlbWFwaG9yZTsKKyAgICBib29sIGluaXRpYWxpemUo
KTsKKworICAgIHN0YXRpYyB2b2lkIGNvbXByZXNzZWRWaWRlb091dHB1dEJ1ZmZlckNhbGxiYWNr
KHZvaWQqLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKTsKKyAgICBzdGF0aWMgdm9pZCBjb21w
cmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2b2lkKiwgQ01CdWZmZXJRdWV1ZVRyaWdn
ZXJUb2tlbik7CisKKyAgICB2b2lkIHN0YXJ0QXNzZXRXcml0ZXIoKTsKKyAgICB2b2lkIGFwcGVu
ZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7CisKKyAgICBib29sIGFwcGVuZENvbXByZXNzZWRB
dWRpb1NhbXBsZUJ1ZmZlcigpOworICAgIGJvb2wgYXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxl
QnVmZmVyKCk7CisKKyAgICB2b2lkIHByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZm
ZXJzKCk7CisgICAgdm9pZCBwcm9jZXNzTmV3Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycygp
OworCisgICAgdm9pZCBmbHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBhcHBlbmRFbmRPZlZpZGVvU2FtcGxlRHVyYXRpb25J
Zk5lZWRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworCiAgICAgYm9vbCBtX2hhc1N0
YXJ0ZWRXcml0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdG9wcGVkIHsgZmFsc2UgfTsK
LSAgICBib29sIG1faXNGaXJzdEF1ZGlvU2FtcGxlIHsgdHJ1ZSB9OwotICAgIGRpc3BhdGNoX3F1
ZXVlX3QgbV9hdWRpb1B1bGxRdWV1ZTsKLSAgICBkaXNwYXRjaF9xdWV1ZV90IG1fdmlkZW9QdWxs
UXVldWU7Ci0gICAgRGVxdWU8UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPj4gbV92aWRlb0J1
ZmZlclBvb2w7Ci0gICAgRGVxdWU8UmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPj4gbV9hdWRp
b0J1ZmZlclBvb2w7CisKKyAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcj4gbV93cml0ZXI7CiAK
ICAgICBib29sIG1faXNTdG9wcGluZyB7IGZhbHNlIH07CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gbV9kYXRhOwogICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4mJik+IG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXI7CisKKyAgICBib29sIG1faGFzQXVk
aW87CisgICAgYm9vbCBtX2hhc1ZpZGVvOworCisgICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3Jp
cHRpb25SZWY+IG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBtX2F1ZGlvQ29tcHJlc3NvcjsKKyAgICBSZXRh
aW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBtX2F1ZGlvQXNzZXRXcml0ZXJJbnB1dDsKKworICAg
IFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRp
b247CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gbV92
aWRlb0NvbXByZXNzb3I7CisgICAgUmV0YWluUHRyPEFWQXNzZXRXcml0ZXJJbnB1dD4gbV92aWRl
b0Fzc2V0V3JpdGVySW5wdXQ7CisgICAgQ01UaW1lIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGlt
ZTsKKyAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWU7CisgICAgYm9vbCBtX2hhc0Vu
Y29kZWRWaWRlb1NhbXBsZXMgeyBmYWxzZSB9OworCisgICAgUmV0YWluUHRyPFdlYkFWQXNzZXRX
cml0ZXJEZWxlZ2F0ZT4gbV93cml0ZXJEZWxlZ2F0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJl
Y29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggZGUx
MDcyYTAwYTM3Y2NkOGEzNjFiNzgwN2RiNjFjMjE3MDBhYmZmYi4uNzRhZDQzOGNjNWE0ZGUxMTUz
NjFlNWNiODRmYTMyZmQyMjQ0ZjJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpAQCAtMjMsNzAgKzIzLDEwMyBAQAogICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBvcnQgImNvbmZpZy5oIgot
I2ltcG9ydCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIgotCi0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2ltcG9ydCAiQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbi5oIgotI2ltcG9ydCAiTG9nZ2luZy5oIgotI2ltcG9ydCAiTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuaCIKLSNpbXBvcnQgIldlYkF1ZGlvQnVmZmVyTGlzdC5oIgotI2ltcG9y
dCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0ZXIuaD4KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9B
VkFzc2V0V3JpdGVySW5wdXQuaD4KLSNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgot
I2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KLQotI2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNv
ZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KLQot
I3VuZGVmIEFWRW5jb2RlckJpdFJhdGVLZXkKLSNkZWZpbmUgQVZFbmNvZGVyQml0UmF0ZUtleSBn
ZXRBVkVuY29kZXJCaXRSYXRlS2V5V2l0aEZhbGxiYWNrKCkKLSN1bmRlZiBBVkZvcm1hdElES2V5
Ci0jZGVmaW5lIEFWRm9ybWF0SURLZXkgZ2V0QVZGb3JtYXRJREtleVdpdGhGYWxsYmFjaygpCi0j
dW5kZWYgQVZOdW1iZXJPZkNoYW5uZWxzS2V5Ci0jZGVmaW5lIEFWTnVtYmVyT2ZDaGFubmVsc0tl
eSBnZXRBVk51bWJlck9mQ2hhbm5lbHNLZXlXaXRoRmFsbGJhY2soKQotI3VuZGVmIEFWU2FtcGxl
UmF0ZUtleQotI2RlZmluZSBBVlNhbXBsZVJhdGVLZXkgZ2V0QVZTYW1wbGVSYXRlS2V5V2l0aEZh
bGxiYWNrKCkKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlckNvY29hLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFW
QVNTRVRXUklURVJERUxFR0FURSkKKworI2luY2x1ZGUgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvci5oIgorI2luY2x1ZGUgIkF1ZGlvU3RyZWFtRGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRl
ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZl
ckxpc3QuaCIKKyNpbmNsdWRlIDxBVkZvdW5kYXRpb24vQVZBc3NldFdyaXRlci5oPgorI2luY2x1
ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVySW5wdXQuaD4KKyNpbmNsdWRlIDxBVkZvdW5k
YXRpb24vQVZBc3NldFdyaXRlcl9Qcml2YXRlLmg+CisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlv
bi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQmxvY2tQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3Rl
bS5oPgorI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgorCisjaW5jbHVkZSA8cGFsL2Nm
L0NvcmVNZWRpYVNvZnRMaW5rLmg+CisjaW5jbHVkZSA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLmg+CisKK0BpbnRlcmZhY2UgV2ViQVZBc3NldFdyaXRlckRlbGVnYXRlIDogTlNPYmpl
Y3QgPEFWQXNzZXRXcml0ZXJEZWxlZ2F0ZT4geworICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI+IG1fd3JpdGVyOworfQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXcml0ZXI6KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyKil3cml0ZXI7CistICh2b2lkKWNsb3NlOwogCi11c2luZyBuYW1lc3BhY2Ug
UEFMOworQGVuZAogCi1zdGF0aWMgTlNTdHJpbmcgKmdldEFWRm9ybWF0SURLZXlXaXRoRmFsbGJh
Y2soKQorQGltcGxlbWVudGF0aW9uIFdlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZSB7Cit9OworCist
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXcml0ZXI6KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyKil3cml0ZXIKIHsKLSAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9B
VkZvcm1hdElES2V5KCkpCi0gICAgICAgIHJldHVybiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZG
b3JtYXRJREtleSgpOworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikKKyAgICAgICAgc2VsZi0+bV93cml0ZXIgPSBtYWtl
V2Vha1B0cih3cml0ZXIpOwogCi0gICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQg
dG8gbG9hZCBBVkZvcm1hdElES2V5Iik7Ci0gICAgcmV0dXJuIEAiQVZGb3JtYXRJREtleSI7Cisg
ICAgcmV0dXJuIHNlbGY7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyAqZ2V0QVZOdW1iZXJPZkNoYW5u
ZWxzS2V5V2l0aEZhbGxiYWNrKCkKKy0gKHZvaWQpYXNzZXRXcml0ZXI6KEFWQXNzZXRXcml0ZXIg
Kilhc3NldFdyaXRlciBkaWRQcm9kdWNlRnJhZ21lbnRlZEhlYWRlckRhdGE6KE5TRGF0YSAqKWZy
YWdtZW50ZWRIZWFkZXJEYXRhCiB7Ci0gICAgaWYgKFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25f
QVZOdW1iZXJPZkNoYW5uZWxzS2V5KCkpCi0gICAgICAgIHJldHVybiBQQUw6OmdldF9BVkZvdW5k
YXRpb25fQVZOdW1iZXJPZkNoYW5uZWxzS2V5KCk7CisgICAgVU5VU0VEX1BBUkFNKGFzc2V0V3Jp
dGVyKTsKKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7CisgICAgICAgIGlmIChhdXRvIHNpemUg
PSBbZnJhZ21lbnRlZEhlYWRlckRhdGEgbGVuZ3RoXSkgeworICAgICAgICAgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFJldGFpblB0cjxXZWJBVkFzc2V0V3JpdGVyRGVsZWdh
dGU+KHNlbGYpLCBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNf
Y2FzdDxjb25zdCBjaGFyKj4oW2ZyYWdtZW50ZWRIZWFkZXJEYXRhIGJ5dGVzXSksIHNpemUpXSgp
IG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRTZWxmLT5tX3dyaXRlcikK
KyAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+bV93cml0ZXItPmFwcGVuZERhdGEo
V1RGTW92ZShidWZmZXIpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYSwgIkZhaWxlZCB0byBs
b2FkIEFWTnVtYmVyT2ZDaGFubmVsc0tleSIpOwotICAgIHJldHVybiBAIkFWTnVtYmVyT2ZDaGFu
bmVsc0tleSI7CisgICAgaWYgKG1fd3JpdGVyKQorICAgICAgICBtX3dyaXRlci0+YXBwZW5kRGF0
YShzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oW2ZyYWdtZW50ZWRIZWFkZXJEYXRhIGJ5dGVzXSks
IFtmcmFnbWVudGVkSGVhZGVyRGF0YSBsZW5ndGhdKTsKIH0KIAotc3RhdGljIE5TU3RyaW5nICpn
ZXRBVlNhbXBsZVJhdGVLZXlXaXRoRmFsbGJhY2soKQorLSAodm9pZClhc3NldFdyaXRlcjooQVZB
c3NldFdyaXRlciAqKWFzc2V0V3JpdGVyIGRpZFByb2R1Y2VGcmFnbWVudGVkTWVkaWFEYXRhOihO
U0RhdGEgKilmcmFnbWVudGVkTWVkaWFEYXRhIGZyYWdtZW50ZWRNZWRpYURhdGFSZXBvcnQ6KEFW
RnJhZ21lbnRlZE1lZGlhRGF0YVJlcG9ydCAqKWZyYWdtZW50ZWRNZWRpYURhdGFSZXBvcnQKIHsK
LSAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVlNhbXBsZVJhdGVLZXkoKSkKLSAg
ICAgICAgcmV0dXJuIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVlNhbXBsZVJhdGVLZXkoKTsKKyAg
ICBVTlVTRURfUEFSQU0oYXNzZXRXcml0ZXIpOworICAgIFVOVVNFRF9QQVJBTShmcmFnbWVudGVk
TWVkaWFEYXRhUmVwb3J0KTsKKyAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7CisgICAgICAgIGlm
IChhdXRvIHNpemUgPSBbZnJhZ21lbnRlZE1lZGlhRGF0YSBsZW5ndGhdKSB7CisgICAgICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gUmV0YWluUHRyPFdlYkFWQXNzZXRX
cml0ZXJEZWxlZ2F0ZT4oc2VsZiksIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihbZnJhZ21lbnRlZE1lZGlhRGF0YSBieXRlc10p
LCBzaXplKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAocHJvdGVjdGVkU2VsZi0+
bV93cml0ZXIpCisgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPm1fd3JpdGVyLT5h
cHBlbmREYXRhKFdURk1vdmUoYnVmZmVyKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJG
YWlsZWQgdG8gbG9hZCBBVlNhbXBsZVJhdGVLZXkiKTsKLSAgICByZXR1cm4gQCJBVlNhbXBsZVJh
dGVLZXkiOworICAgIGlmIChtX3dyaXRlcikKKyAgICAgICAgbV93cml0ZXItPmFwcGVuZERhdGEo
c3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KFtmcmFnbWVudGVkTWVkaWFEYXRhIGJ5dGVzXSksIFtm
cmFnbWVudGVkTWVkaWFEYXRhIGxlbmd0aF0pOwogfQogCi1zdGF0aWMgTlNTdHJpbmcgKmdldEFW
RW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2soKQorLSAodm9pZCljbG9zZQogewotICAgIGlm
IChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FWRW5jb2RlckJpdFJhdGVLZXkoKSkKLSAgICAg
ICAgcmV0dXJuIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkVuY29kZXJCaXRSYXRlS2V5KCk7Cisg
ICAgbV93cml0ZXIgPSBudWxscHRyOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAi
RmFpbGVkIHRvIGxvYWQgQVZFbmNvZGVyQml0UmF0ZUtleSIpOwotICAgIHJldHVybiBAIkFWRW5j
b2RlckJpdFJhdGVLZXkiOworUmVmUHRyPE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRlKGJvb2wgaGFzQXVkaW8sIGludCB3aWR0aCwg
aW50IGhlaWdodCkKK3sKKyAgICBhdXRvIHdyaXRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIHdpZHRoICYmIGhlaWdodCkpOworICAgIGlmICgh
d3JpdGVyLT5pbml0aWFsaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biB3cml0ZXI7CiB9CiAKIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2sp
CkBAIC0xMDAsMTc5ICsxMzMsMjU0IEBAIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
cj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShjb25zdCBNZWRpCiAgICAgcmV0
dXJuIGNyZWF0ZSghIWF1ZGlvVHJhY2ssIHdpZHRoLCBoZWlnaHQpOwogfQogCi1SZWZQdHI8TWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVh
dGUoYm9vbCBoYXNBdWRpbywgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQordm9pZCBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZFZpZGVvT3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9p
ZCAqbWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIsIENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4p
CiB7Ci0gICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFy
eURpcmVjdG9yeShAInZpZGVvcyIpOwotICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiLyVsbGQubXA0IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dl
dEhvc3RUaW1lQ2xvY2soKSkudmFsdWVdOwotICAgIE5TU3RyaW5nICpwYXRoID0gW2RpcmVjdG9y
eSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpmaWxlbmFtZV07CisgICAgYXV0byAqd3JpdGVyID0g
c3RhdGljX2Nhc3Q8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIqPihtZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcik7CisgICAgd3JpdGVyLT5wcm9jZXNzTmV3Q29tcHJlc3NlZFZpZGVvU2FtcGxl
QnVmZmVycygpOworfQogCi0gICAgTlNVUkwgKm91dHB1dFVSTCA9IFtOU1VSTCBmaWxlVVJMV2l0
aFBhdGg6cGF0aF07Ci0gICAgU3RyaW5nIGZpbGVQYXRoID0gW3BhdGggVVRGOFN0cmluZ107Cit2
b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZm
ZXJDYWxsYmFjayh2b2lkICptZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciwgQ01CdWZmZXJRdWV1
ZVRyaWdnZXJUb2tlbikKK3sKKyAgICBhdXRvICp3cml0ZXIgPSBzdGF0aWNfY2FzdDxNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcio+KG1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKTsKKyAgICB3
cml0ZXItPnByb2Nlc3NOZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCk7Cit9CisKK01l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihib29s
IGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvKQorICAgIDogbV9oYXNBdWRpbyhoYXNBdWRpbykKKyAg
ICAsIG1faGFzVmlkZW8oaGFzVmlkZW8pCit7Cit9CisKK01lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjp+TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoKQoreworICAgIGNsZWFyKCk7Cit9CisK
K2Jvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmluaXRpYWxpemUoKQorewogICAgIE5T
RXJyb3IgKmVycm9yID0gbmlsOwotICAgIGF1dG8gYXZBc3NldFdyaXRlciA9IGFkb3B0TlMoW1BB
TDo6YWxsb2NBVkFzc2V0V3JpdGVySW5zdGFuY2UoKSBpbml0V2l0aFVSTDpvdXRwdXRVUkwgZmls
ZVR5cGU6QVZGaWxlVHlwZU1QRUc0IGVycm9yOiZlcnJvcl0pOworICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgbV93cml0ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9j
QVZBc3NldFdyaXRlckluc3RhbmNlKCkgaW5pdFdpdGhGaWxlVHlwZTpBVkZpbGVUeXBlTVBFRzQg
ZXJyb3I6JmVycm9yXSk7CisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
Y3JlYXRlIEFWQXNzZXRXcml0ZXIgaW5zdGFuY2UgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlbGQi
LCAobG9uZyllcnJvci5jb2RlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBhdXRvIHdyaXRlciA9IGFkb3B0UmVmKCpuZXcgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXIoV1RGTW92ZShhdkFzc2V0V3JpdGVyKSwgV1RGTW92ZShm
aWxlUGF0aCkpKTsKKyAgICBtX3dyaXRlckRlbGVnYXRlID0gYWRvcHROUyhbW1dlYkFWQXNzZXRX
cml0ZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhXcml0ZXI6IHRoaXNdKTsKKyAgICBbbV93cml0
ZXIuZ2V0KCkgc2V0RGVsZWdhdGU6bV93cml0ZXJEZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBpZiAo
aGFzQXVkaW8gJiYgIXdyaXRlci0+c2V0QXVkaW9JbnB1dCgpKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIGlmICh3aWR0aCAmJiBoZWlnaHQpIHsKLSAgICAgICAgaWYgKCF3cml0ZXIt
PnNldFZpZGVvSW5wdXQod2lkdGgsIGhlaWdodCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICBpZiAobV9oYXNBdWRpbykgeworICAgICAgICBtX2F1ZGlvQ29tcHJlc3NvciA9IEF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y3JlYXRlKGNvbXByZXNzZWRBdWRpb091dHB1dEJ1
ZmZlckNhbGxiYWNrLCB0aGlzKTsKKyAgICAgICAgaWYgKCFtX2F1ZGlvQ29tcHJlc3NvcikKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0KLSAgICByZXR1cm4gV1RGTW92ZSh3cml0
ZXIpOworICAgIGlmIChtX2hhc1ZpZGVvKSB7CisgICAgICAgIG1fdmlkZW9Db21wcmVzc29yID0g
VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoa0NNVmlkZW9Db2RlY1R5cGVfSDI2
NCwgY29tcHJlc3NlZFZpZGVvT3V0cHV0QnVmZmVyQ2FsbGJhY2ssIHRoaXMpOworICAgICAgICBp
ZiAoIW1fdmlkZW9Db21wcmVzc29yKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyKFJldGFpblB0cjxBVkFzc2V0V3JpdGVyPiYmIGF2QXNzZXRX
cml0ZXIsIFN0cmluZyYmIGZpbGVQYXRoKQotICAgIDogbV93cml0ZXIoV1RGTW92ZShhdkFzc2V0
V3JpdGVyKSkKLSAgICAsIG1fcGF0aChXVEZNb3ZlKGZpbGVQYXRoKSkKK3ZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJz
KCkKIHsKKyAgICBBU1NFUlQobV9oYXNWaWRlbyk7CisgICAgaWYgKCFtX3ZpZGVvRm9ybWF0RGVz
Y3JpcHRpb24pIHsKKyAgICAgICAgbV92aWRlb0Zvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3ZpZGVvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2Ft
cGxlQnVmZmVyKCkpOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKHRoaXMpLCB0aGlzXSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKG1faGFzQXVkaW8gJiYgIW1fYXVk
aW9Gb3JtYXREZXNjcmlwdGlvbikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIHN0YXJ0QXNzZXRXcml0ZXIoKTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIGlmICghbV9o
YXNTdGFydGVkV3JpdGluZykKKyAgICAgICAgcmV0dXJuOworICAgIGFwcGVuZENvbXByZXNzZWRT
YW1wbGVCdWZmZXJzKCk7CiB9CiAKLU1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjp+TWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXIoKQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6
cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcnMoKQogewotICAgIGNsZWFyKCk7
CisgICAgQVNTRVJUKG1faGFzQXVkaW8pOworICAgIGlmICghbV9hdWRpb0Zvcm1hdERlc2NyaXB0
aW9uKSB7CisgICAgICAgIG1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVy
R2V0Rm9ybWF0RGVzY3JpcHRpb24obV9hdWRpb0NvbXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1
ZmZlcigpKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0
cih0aGlzKSwgdGhpc10geworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmIChtX2hhc1ZpZGVvICYmICFtX3ZpZGVvRm9y
bWF0RGVzY3JpcHRpb24pCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBz
dGFydEFzc2V0V3JpdGVyKCk7CisgICAgICAgIH0pOworICAgIH0KKyAgICBpZiAoIW1faGFzU3Rh
cnRlZFdyaXRpbmcpCisgICAgICAgIHJldHVybjsKKyAgICBhcHBlbmRDb21wcmVzc2VkU2FtcGxl
QnVmZmVycygpOwogfQogCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjbGVhcigp
Cit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVyKCkKIHsK
LSAgICBpZiAobV92aWRlb0lucHV0KSB7Ci0gICAgICAgIG1fdmlkZW9JbnB1dC5jbGVhcigpOwot
ICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fdmlkZW9QdWxsUXVldWUpOworICAgIGlmIChtX2hh
c1ZpZGVvKSB7CisgICAgICAgIG1fdmlkZW9Bc3NldFdyaXRlcklucHV0ID0gYWRvcHROUyhbUEFM
OjphbGxvY0FWQXNzZXRXcml0ZXJJbnB1dEluc3RhbmNlKCkgaW5pdFdpdGhNZWRpYVR5cGU6QVZN
ZWRpYVR5cGVWaWRlbyBvdXRwdXRTZXR0aW5nczpuaWwgc291cmNlRm9ybWF0SGludDptX3ZpZGVv
Rm9ybWF0RGVzY3JpcHRpb24uZ2V0KCldKTsKKyAgICAgICAgW21fdmlkZW9Bc3NldFdyaXRlcklu
cHV0IHNldEV4cGVjdHNNZWRpYURhdGFJblJlYWxUaW1lOnRydWVdOworICAgICAgICBpZiAoIVtt
X3dyaXRlci5nZXQoKSBjYW5BZGRJbnB1dDptX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKV0p
IHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIgZmFpbGVkIGNhbkFkZElucHV0IGZv
ciB2aWRlbyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFttX3dy
aXRlci5nZXQoKSBhZGRJbnB1dDptX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKV07CiAgICAg
fQotICAgIGlmIChtX2F1ZGlvSW5wdXQpIHsKLSAgICAgICAgbV9hdWRpb0lucHV0LmNsZWFyKCk7
Ci0gICAgICAgIGRpc3BhdGNoX3JlbGVhc2UobV9hdWRpb1B1bGxRdWV1ZSk7CisKKyAgICBpZiAo
bV9oYXNBdWRpbykgeworICAgICAgICBtX2F1ZGlvQXNzZXRXcml0ZXJJbnB1dCA9IGFkb3B0TlMo
W1BBTDo6YWxsb2NBVkFzc2V0V3JpdGVySW5wdXRJbnN0YW5jZSgpIGluaXRXaXRoTWVkaWFUeXBl
OkFWTWVkaWFUeXBlQXVkaW8gb3V0cHV0U2V0dGluZ3M6bmlsIHNvdXJjZUZvcm1hdEhpbnQ6bV9h
dWRpb0Zvcm1hdERlc2NyaXB0aW9uLmdldCgpXSk7CisgICAgICAgIFttX2F1ZGlvQXNzZXRXcml0
ZXJJbnB1dCBzZXRFeHBlY3RzTWVkaWFEYXRhSW5SZWFsVGltZTp0cnVlXTsKKyAgICAgICAgaWYg
KCFbbV93cml0ZXIuZ2V0KCkgY2FuQWRkSW5wdXQ6bV9hdWRpb0Fzc2V0V3JpdGVySW5wdXQuZ2V0
KCldKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVyIGZhaWxlZCBjYW5BZGRJbnB1
dCBmb3IgYXVkaW8iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBb
bV93cml0ZXIuZ2V0KCkgYWRkSW5wdXQ6bV9hdWRpb0Fzc2V0V3JpdGVySW5wdXQuZ2V0KCldOwog
ICAgIH0KLSAgICBpZiAobV93cml0ZXIpCi0gICAgICAgIG1fd3JpdGVyLmNsZWFyKCk7CiAKLSAg
ICBtX2RhdGEgPSBudWxscHRyOwotICAgIGlmIChhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKSkKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIobnVsbHB0cik7CisgICAgaWYgKCFbbV93cml0ZXIuZ2V0KCkgc3RhcnRXcml0aW5nXSkg
eworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQ
cml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVyIGZhaWxlZCBzdGFydFdyaXRpbmciKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFttX3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25B
dFNvdXJjZVRpbWU6a0NNVGltZVplcm9dOworCisgICAgYXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1
ZmZlcnMoKTsKKworICAgIG1faGFzU3RhcnRlZFdyaXRpbmcgPSB0cnVlOwogfQogCi1ib29sIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzZXRWaWRlb0lucHV0KGludCB3aWR0aCwgaW50IGhl
aWdodCkKK2Jvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRB
dWRpb1NhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgQVNTRVJUKCFtX3ZpZGVvSW5wdXQpOwotICAgIAot
ICAgIE5TRGljdGlvbmFyeSAqY29tcHJlc3Npb25Qcm9wZXJ0aWVzID0gQHsKLSAgICAgICAgQVZW
aWRlb0F2ZXJhZ2VCaXRSYXRlS2V5IDogQCh3aWR0aCAqIGhlaWdodCAqIDEyKSwKLSAgICAgICAg
QVZWaWRlb0V4cGVjdGVkU291cmNlRnJhbWVSYXRlS2V5IDogQCgzMCksCi0gICAgICAgIEFWVmlk
ZW9NYXhLZXlGcmFtZUludGVydmFsS2V5IDogQCgxMjApLAotICAgICAgICBBVlZpZGVvUHJvZmls
ZUxldmVsS2V5IDogQVZWaWRlb1Byb2ZpbGVMZXZlbEgyNjRNYWluQXV0b0xldmVsCi0gICAgfTsK
LQotICAgIE5TRGljdGlvbmFyeSAqdmlkZW9TZXR0aW5ncyA9IEB7Ci0gICAgICAgIEFWVmlkZW9D
b2RlY0tleTogQVZWaWRlb0NvZGVjSDI2NCwKLSAgICAgICAgQVZWaWRlb1dpZHRoS2V5OiBAKHdp
ZHRoKSwKLSAgICAgICAgQVZWaWRlb0hlaWdodEtleTogQChoZWlnaHQpLAotICAgICAgICBBVlZp
ZGVvQ29tcHJlc3Npb25Qcm9wZXJ0aWVzS2V5OiBjb21wcmVzc2lvblByb3BlcnRpZXMKLSAgICB9
OwotICAgIAotICAgIG1fdmlkZW9JbnB1dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkFzc2V0V3Jp
dGVySW5wdXRJbnN0YW5jZSgpIGluaXRXaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlVmlkZW8gb3V0
cHV0U2V0dGluZ3M6dmlkZW9TZXR0aW5ncyBzb3VyY2VGb3JtYXRIaW50Om5pbF0pOwotICAgIFtt
X3ZpZGVvSW5wdXQgc2V0RXhwZWN0c01lZGlhRGF0YUluUmVhbFRpbWU6dHJ1ZV07Ci0gICAgCi0g
ICAgaWYgKCFbbV93cml0ZXIgY2FuQWRkSW5wdXQ6bV92aWRlb0lucHV0LmdldCgpXSkgewotICAg
ICAgICBtX3ZpZGVvSW5wdXQgPSBudWxscHRyOwotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgInRoZSB2aWRlbyBpbnB1dCBpcyBub3QgYWxsb3dlZCB0byBhZGQgdG8gdGhl
IEFWQXNzZXRXcml0ZXIiKTsKKyAgICBpZiAoIW1fYXVkaW9Db21wcmVzc29yKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIFttX3dyaXRlciBhZGRJbnB1dDptX3ZpZGVvSW5wdXQu
Z2V0KCldOwotICAgIG1fdmlkZW9QdWxsUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldl
YkNvcmVWaWRlb1JlY29yZGluZ1B1bGxCdWZmZXJRdWV1ZSIsIERJU1BBVENIX1FVRVVFX1NFUklB
TCk7CisKKyAgICBpZiAoIVttX2F1ZGlvQXNzZXRXcml0ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1l
ZGlhRGF0YV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gYnVmZmVyID0gbV9h
dWRpb0NvbXByZXNzb3ItPnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKTsKKyAgICBpZiAoIWJ1ZmZl
cikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgW21fYXVkaW9Bc3NldFdyaXRlcklucHV0
LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZmZXIuZ2V0KCldOwogICAgIHJldHVybiB0cnVl
OwogfQogCi1ib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzZXRBdWRpb0lucHV0KCkK
K2Jvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1Nh
bXBsZUJ1ZmZlcigpCiB7Ci0gICAgQVNTRVJUKCFtX2F1ZGlvSW5wdXQpOwotCi0gICAgTlNEaWN0
aW9uYXJ5ICphdWRpb1NldHRpbmdzID0gQHsKLSAgICAgICAgQVZFbmNvZGVyQml0UmF0ZUtleSA6
IEAoMjgwMDApLAotICAgICAgICBBVkZvcm1hdElES2V5IDogQChrQXVkaW9Gb3JtYXRNUEVHNEFB
QyksCi0gICAgICAgIEFWTnVtYmVyT2ZDaGFubmVsc0tleSA6IEAoMSksCi0gICAgICAgIEFWU2Ft
cGxlUmF0ZUtleSA6IEAoMjIwNTApCi0gICAgfTsKLQotICAgIG1fYXVkaW9JbnB1dCA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NBVkFzc2V0V3JpdGVySW5wdXRJbnN0YW5jZSgpIGluaXRXaXRoTWVkaWFU
eXBlOkFWTWVkaWFUeXBlQXVkaW8gb3V0cHV0U2V0dGluZ3M6YXVkaW9TZXR0aW5ncyBzb3VyY2VG
b3JtYXRIaW50Om5pbF0pOwotICAgIFttX2F1ZGlvSW5wdXQgc2V0RXhwZWN0c01lZGlhRGF0YUlu
UmVhbFRpbWU6dHJ1ZV07Ci0gICAgCi0gICAgaWYgKCFbbV93cml0ZXIgY2FuQWRkSW5wdXQ6bV9h
dWRpb0lucHV0LmdldCgpXSkgewotICAgICAgICBtX2F1ZGlvSW5wdXQgPSBudWxscHRyOwotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgInRoZSBhdWRpbyBpbnB1dCBpcyBu
b3QgYWxsb3dlZCB0byBhZGQgdG8gdGhlIEFWQXNzZXRXcml0ZXIiKTsKKyAgICBpZiAoIW1fdmlk
ZW9Db21wcmVzc29yKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIFttX3dyaXRl
ciBhZGRJbnB1dDptX2F1ZGlvSW5wdXQuZ2V0KCldOwotICAgIG1fYXVkaW9QdWxsUXVldWUgPSBk
aXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYkNvcmVBdWRpb1JlY29yZGluZ1B1bGxCdWZmZXJRdWV1
ZSIsIERJU1BBVENIX1FVRVVFX1NFUklBTCk7CisKKyAgICBpZiAoIVttX3ZpZGVvQXNzZXRXcml0
ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGF1dG8gYnVmZmVyID0gbV92aWRlb0NvbXByZXNzb3ItPnRha2VPdXRwdXRTYW1wbGVC
dWZmZXIoKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
bV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRp
b25UaW1lU3RhbXAoYnVmZmVyLmdldCgpKTsKKyAgICBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSA9
IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0YW1wKGJ1ZmZlci5nZXQoKSk7CisgICAgbV9o
YXNFbmNvZGVkVmlkZW9TYW1wbGVzID0gdHJ1ZTsKKworICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJ
bnB1dC5nZXQoKSBhcHBlbmRTYW1wbGVCdWZmZXI6YnVmZmVyLmdldCgpXTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJl
c3NlZFNhbXBsZUJ1ZmZlcnMoKQoreworICAgIHdoaWxlIChhcHBlbmRDb21wcmVzc2VkVmlkZW9T
YW1wbGVCdWZmZXIoKSB8fCBhcHBlbmRDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXIoKSkgeyB9
OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRp
b25NYXJrZXIoQVZBc3NldFdyaXRlcklucHV0ICphc3NldFdyaXRlcklucHV0LCBDTVRpbWUgcHJl
c2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgZGVjb2RpbmdUaW1lU3RhbXApCit7CisgICAgQ01T
YW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7IGtDTVRpbWVJbnZhbGlkLCBwcmVzZW50YXRp
b25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1wfTsKKworICAgIENNU2FtcGxlQnVmZmVyUmVm
IGJ1ZmZlciA9IE5VTEw7CisgICAgYXV0byBlcnJvciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIHRydWUsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEsICZ0
aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVmZmVyKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ciBhcHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlciBmYWlsZWQgQ01TYW1wbGVC
dWZmZXJDcmVhdGUgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoYnVmZmVyKTsKKworICAgIENNU2V0QXR0YWNo
bWVudChzYW1wbGVCdWZmZXIuZ2V0KCksIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5k
c1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtDRkJvb2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9k
ZV9TaG91bGRQcm9wYWdhdGUpOworICAgIGlmICghW2Fzc2V0V3JpdGVySW5wdXQgYXBwZW5kU2Ft
cGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQoKV0pCisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgYXBwZW5kU2FtcGxlQnVm
ZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQiKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlcjo6YXBwZW5kRW5kT2ZWaWRlb1NhbXBsZUR1cmF0aW9uSWZOZWVkZWQoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9o
YXNFbmNvZGVkVmlkZW9TYW1wbGVzKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCBp
c1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pIHsKKyAgICAgICAgYXBwZW5kRW5kc1ByZXZpb3VzU2Ft
cGxlRHVyYXRpb25NYXJrZXIobV92aWRlb0Fzc2V0V3JpdGVySW5wdXQuZ2V0KCksIG1fbGFzdFZp
ZGVvUHJlc2VudGF0aW9uVGltZSwgbV9sYXN0VmlkZW9EZWNvZGluZ1RpbWUpOworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBi
bG9jayA9IG1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKSB7CisgICAgICAgICAgICBhcHBlbmRFbmRzUHJldmlv
dXNTYW1wbGVEdXJhdGlvbk1hcmtlcihtX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKSwgbV9s
YXN0VmlkZW9QcmVzZW50YXRpb25UaW1lLCBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSk7CisgICAg
ICAgICAgICBbbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQgbWFya0FzRmluaXNoZWRdOworICAgICAg
ICB9CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7CisgICAgW21fdmlkZW9B
c3NldFdyaXRlcklucHV0IHJlcXVlc3RNZWRpYURhdGFXaGVuUmVhZHlPblF1ZXVlOmRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpibG9jay5nZXQoKV07Cit9CisKK3ZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGFwcGVu
ZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7CisgICAgYXBwZW5kRW5kT2ZWaWRlb1NhbXBsZUR1
cmF0aW9uSWZOZWVkZWQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE1l
ZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjbGVhcigpCit7CisgICAgaWYgKG1fd3JpdGVyKQor
ICAgICAgICBtX3dyaXRlci5jbGVhcigpOworCisgICAgbV9kYXRhID0gbnVsbHB0cjsKKyAgICBp
ZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9mZXRjaERhdGFDb21wbGV0aW9u
SGFuZGxlcikpCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworfQorCisKIHN0
YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBjb3B5U2FtcGxlQnVmZmVy
V2l0aEN1cnJlbnRUaW1lU3RhbXAoQ01TYW1wbGVCdWZmZXJSZWYgb3JpZ2luYWxCdWZmZXIpCiB7
CiAgICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGlt
ZUNsb2NrKCkpOwogICAgIENNSXRlbUNvdW50IGNvdW50ID0gMDsKICAgICBDTVNhbXBsZUJ1ZmZl
ckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmlnaW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291bnQp
OwotICAgIAorCiAgICAgVmVjdG9yPENNU2FtcGxlVGltaW5nSW5mbz4gdGltZUluZm8oY291bnQp
OwogICAgIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlVGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVm
ZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAmY291bnQpOwotICAgIAotICAgIGZvciAoQ01J
dGVtQ291bnQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisKKyAgICBmb3IgKGF1dG8gaSA9IDA7
IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgIHRpbWVJbmZvW2ldLmRlY29kZVRpbWVTdGFtcCA9
IGtDTVRpbWVJbnZhbGlkOwogICAgICAgICB0aW1lSW5mb1tpXS5wcmVzZW50YXRpb25UaW1lU3Rh
bXAgPSBzdGFydFRpbWU7CiAgICAgfQotICAgIAorCiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3
QnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVD
b3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291
bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZlcik7Ci0gICAgaWYgKGVycm9yKQorICAgIGlm
IChhdXRvIGVycm9yID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwg
Jm5ld0J1ZmZlcikpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNhbXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3
VGltaW5nIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CiAgICAgcmV0dXJuIGFkb3B0Q0YobmV3QnVmZmVyKTsKIH0KIAogdm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlQnVmZmVyKQogewotICAgIEFTU0VSVChtX3ZpZGVvSW5wdXQpOwotICAgIGlm
IChtX2lzU3RvcHBlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFtX2hhc1N0YXJ0ZWRX
cml0aW5nKSB7Ci0gICAgICAgIGlmICghW21fd3JpdGVyIHN0YXJ0V3JpdGluZ10pIHsKLSAgICAg
ICAgICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiY3JlYXRlIEFWQXNzZXRXcml0ZXIgaW5zdGFuY2UgZmFpbGVkIHdpdGgg
ZXJyb3IgY29kZSAlbGQiLCAobG9uZylbbV93cml0ZXIgZXJyb3JdKTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgICAgICBbbV93cml0ZXIgc3RhcnRTZXNzaW9uQXRTb3VyY2VU
aW1lOkNNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpXTsKLSAgICAgICAg
bV9oYXNTdGFydGVkV3JpdGluZyA9IHRydWU7Ci0gICAgICAgIFJlZlB0cjxNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcj4gcHJvdGVjdGVkVGhpcyA9IHRoaXM7Ci0gICAgICAgIFttX3ZpZGVvSW5w
dXQgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9uUXVldWU6bV92aWRlb1B1bGxRdWV1ZSB1c2lu
Z0Jsb2NrOlt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewot
ICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIGlmICghW21fdmlkZW9JbnB1dCBpc1Jl
YWR5Rm9yTW9yZU1lZGlhRGF0YV0pCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV92aWRlb0xvY2spOwotICAgICAgICAg
ICAgICAgIGlmIChtX3ZpZGVvQnVmZmVyUG9vbC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGF1dG8gYnVmZmVyID0gbV92aWRlb0J1ZmZlclBv
b2wudGFrZUZpcnN0KCk7Ci0gICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKCFbbV92aWRlb0lucHV0IGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZm
ZXIuZ2V0KCldKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0gd2hp
bGUgKHRydWUpOwotICAgICAgICAgICAgaWYgKG1faXNTdG9wcGVkICYmIG1fdmlkZW9CdWZmZXJQ
b29sLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIFttX3ZpZGVvSW5wdXQgbWFya0FzRmlu
aXNoZWRdOwotICAgICAgICAgICAgICAgIG1fZmluaXNoV3JpdGluZ1ZpZGVvU2VtYXBob3JlLnNp
Z25hbCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9XTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLSAgICBhdXRvIGJ1ZmZlcldpdGhDdXJyZW50VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRo
Q3VycmVudFRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwotICAgIGlmICghYnVmZmVyV2l0aEN1cnJl
bnRUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
dmlkZW9Mb2NrKTsKLSAgICBtX3ZpZGVvQnVmZmVyUG9vbC5hcHBlbmQoV1RGTW92ZShidWZmZXJX
aXRoQ3VycmVudFRpbWUpKTsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBzZXQgdGhlIHRp
bWVzdGFtcHMgaWYgdGhleSBhcmUgYWxyZWFkeSBzZXQuCisgICAgaWYgKGF1dG8gYnVmZmVyV2l0
aEN1cnJlbnRUaW1lID0gY29weVNhbXBsZUJ1ZmZlcldpdGhDdXJyZW50VGltZVN0YW1wKHNhbXBs
ZUJ1ZmZlcikpCisgICAgICAgIG1fdmlkZW9Db21wcmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVm
ZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0KIAogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8
Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25z
dCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKQEAgLTI4MCw2OCArMzg4LDM5
IEBAIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0
ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uCiAgICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0g
V1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24u
cGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0aW9uKTsKICAgICBDTUZvcm1hdERlc2NyaXB0
aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7CiAgICAgYXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAw
LCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0KTsKLSAgICBpZiAoZXJyb3IpCisgICAgaWYg
KGVycm9yKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXIgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxl
ZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAgICAg
cmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKIH0KIAotc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyV2l0aFBhY2tldERlc2NyaXB0
aW9ucyhDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCwgc2l6ZV90IHNhbXBsZUNvdW50KQor
c3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVh
bURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHNp
emVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICBDTVRpbWUgc3RhcnRUaW1lID0gQ01DbG9ja0dldFRp
bWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7Ci0gICAgQ01TYW1wbGVCdWZmZXJSZWYgc2Ft
cGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZl
ckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwg
ZmFsc2UsIE5VTEwsIE5VTEwsIGZvcm1hdCwgc2FtcGxlQ291bnQsIHN0YXJ0VGltZSwgTlVMTCwg
JnNhbXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9yKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICByZXR1cm4gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwotfQotCi12b2lkIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1
ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24s
IGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgc2l6ZV90IHNhbXBsZUNvdW50KQotewotICAgIEFTU0VS
VChtX2F1ZGlvSW5wdXQpOwotICAgIGlmICgoIW1faGFzU3RhcnRlZFdyaXRpbmcgJiYgbV92aWRl
b0lucHV0KSB8fCBtX2lzU3RvcHBlZCkKLSAgICAgICAgcmV0dXJuOwogICAgIGF1dG8gZm9ybWF0
ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CiAgICAgaWYgKCFm
b3JtYXQpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAobV9pc0ZpcnN0QXVkaW9TYW1wbGUpIHsK
LSAgICAgICAgaWYgKCFtX3ZpZGVvSW5wdXQpIHsKLSAgICAgICAgICAgIC8vIGF1ZGlvLW9ubHkg
cmVjb3JkaW5nLgotICAgICAgICAgICAgaWYgKCFbbV93cml0ZXIgc3RhcnRXcml0aW5nXSkgewot
ICAgICAgICAgICAgICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBbbV93cml0ZXIgc3RhcnRTZXNzaW9uQXRT
b3VyY2VUaW1lOkNNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpXTsKLSAg
ICAgICAgICAgIG1faGFzU3RhcnRlZFdyaXRpbmcgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAg
IG1faXNGaXJzdEF1ZGlvU2FtcGxlID0gZmFsc2U7Ci0gICAgICAgIFJlZlB0cjxNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcj4gcHJvdGVjdGVkVGhpcyA9IHRoaXM7Ci0gICAgICAgIFttX2F1ZGlv
SW5wdXQgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9uUXVldWU6bV9hdWRpb1B1bGxRdWV1ZSB1
c2luZ0Jsb2NrOlt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0g
ewotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIGlmICghW21fYXVkaW9JbnB1dCBp
c1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9hdWRpb0xvY2spOwotICAgICAg
ICAgICAgICAgIGlmIChtX2F1ZGlvQnVmZmVyUG9vbC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGF1dG8gYnVmZmVyID0gbV9hdWRpb0J1ZmZl
clBvb2wudGFrZUZpcnN0KCk7Ci0gICAgICAgICAgICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7
Ci0gICAgICAgICAgICAgICAgW21fYXVkaW9JbnB1dCBhcHBlbmRTYW1wbGVCdWZmZXI6YnVmZmVy
LmdldCgpXTsKLSAgICAgICAgICAgIH0gd2hpbGUgKHRydWUpOwotICAgICAgICAgICAgaWYgKG1f
aXNTdG9wcGVkICYmIG1fYXVkaW9CdWZmZXJQb29sLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ICAgIFttX2F1ZGlvSW5wdXQgbWFya0FzRmluaXNoZWRdOwotICAgICAgICAgICAgICAgIG1fZmlu
aXNoV3JpdGluZ0F1ZGlvU2VtYXBob3JlLnNpZ25hbCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9XTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIgPSBudWxscHRyOworICAgIGF1dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVm
ZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9ucyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxM
LCBmYWxzZSwgTlVMTCwgTlVMTCwgZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCwgdG9DTVRpbWUo
dGltZSksIE5VTEwsICZzYW1wbGVCdWZmZXIpOworICAgIGlmIChlcnJvcikgeworICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyV2l0aFBhY2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQorICAgIGF1dG8g
YnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwogCi0gICAgYXV0byBzYW1wbGVCdWZmZXIg
PSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcldpdGhQYWNrZXREZXNjcmlwdGlvbnMoZm9ybWF0Lmdl
dCgpLCBzYW1wbGVDb3VudCk7Ci0gICAgaWYgKCFzYW1wbGVCdWZmZXIpCi0gICAgICAgIHJldHVy
bjsKLSAgICBhdXRvIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlv
QnVmZmVyTGlzdChzYW1wbGVCdWZmZXIuZ2V0KCksIGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFs
bG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlz
dCgpKTsKLSAgICBpZiAoZXJyb3IpCi0gICAgICAgIHJldHVybjsKKyAgICBlcnJvciA9IENNU2Ft
cGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJB
dWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXIgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQg
d2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJl
dHVybiBidWZmZXI7Cit9CiAKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fYXVkaW9Mb2Nr
KTsKLSAgICBtX2F1ZGlvQnVmZmVyUG9vbC5hcHBlbmQoV1RGTW92ZShzYW1wbGVCdWZmZXIpKTsK
K3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVy
KGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHNpemVfdCBzYW1w
bGVDb3VudCkKK3sKKyAgICBpZiAoYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBs
ZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgdGltZSwgc2FtcGxlQ291bnQpKQorICAgICAgICBt
X2F1ZGlvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVmZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CiB9
CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0b3BSZWNvcmRpbmcoKQpAQCAt
MzUwLDM1ICs0MjksNDIgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RvcFJl
Y29yZGluZygpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKKwor
ICAgIGlmIChtX3ZpZGVvQ29tcHJlc3NvcikKKyAgICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmZp
bmlzaCgpOworICAgIGlmIChtX2F1ZGlvQ29tcHJlc3NvcikKKyAgICAgICAgbV9hdWRpb0NvbXBy
ZXNzb3ItPmZpbmlzaCgpOworCiAgICAgaWYgKCFtX2hhc1N0YXJ0ZWRXcml0aW5nKQogICAgICAg
ICByZXR1cm47CiAgICAgQVNTRVJUKFttX3dyaXRlciBzdGF0dXNdID09IEFWQXNzZXRXcml0ZXJT
dGF0dXNXcml0aW5nKTsKLSAgICBpZiAobV92aWRlb0lucHV0KQotICAgICAgICBtX2ZpbmlzaFdy
aXRpbmdWaWRlb1NlbWFwaG9yZS53YWl0KCk7Ci0KLSAgICBpZiAobV9hdWRpb0lucHV0KQotICAg
ICAgICBtX2ZpbmlzaFdyaXRpbmdBdWRpb1NlbWFwaG9yZS53YWl0KCk7CiAKICAgICBtX2lzU3Rv
cHBpbmcgPSB0cnVlOwotICAgIFttX3dyaXRlciBmaW5pc2hXcml0aW5nV2l0aENvbXBsZXRpb25I
YW5kbGVyOlt0aGlzLCB3ZWFrUHRyID0gbWFrZVdlYWtQdHIoKnRoaXMpXSgpIG11dGFibGUgewot
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrUHRyID0gV1RGTW92ZSh3ZWFrUHRy
KSwgYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUobV9wYXRo
KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGlmICghd2Vha1B0cikKLSAgICAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgICAgIG1faXNTdG9wcGluZyA9IGZhbHNlOwotICAgICAgICAg
ICAgaWYgKG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhhbmRsZXIpCi0gICAgICAgICAgICAgICAgbV9m
ZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGJ1ZmZlcikpOwotICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIG1fZGF0YSA9IFdURk1vdmUoYnVmZmVyKTsKKyAgICBmbHVz
aENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRo
aXMpXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOwogCi0gICAgICAgICAgICBtX2lzU3RvcHBlZCA9IGZhbHNlOwotICAgICAgICAgICAgbV9o
YXNTdGFydGVkV3JpdGluZyA9IGZhbHNlOwotICAgICAgICAgICAgbV9pc0ZpcnN0QXVkaW9TYW1w
bGUgPSB0cnVlOwotICAgICAgICAgICAgY2xlYXIoKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIG1f
ZmluaXNoV3JpdGluZ1NlbWFwaG9yZS5zaWduYWwoKTsKLSAgICB9XTsKLSAgICBtX2ZpbmlzaFdy
aXRpbmdTZW1hcGhvcmUud2FpdCgpOworICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFU
SU9OU19CRUdJTgorICAgICAgICBbbV93cml0ZXIgZmx1c2hdOworICAgICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyAgICAgICAgW21fd3JpdGVyIGZpbmlzaFdyaXRpbmdX
aXRoQ29tcGxldGlvbkhhbmRsZXI6W3RoaXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyld
KCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhp
cyA9IFdURk1vdmUod2Vha1RoaXMpXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAg
IG1faXNTdG9wcGluZyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGlmIChtX2ZldGNoRGF0YUNv
bXBsZXRpb25IYW5kbGVyKSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gYnVmZmVyID0gV1RG
TW92ZShtX2RhdGEpOworICAgICAgICAgICAgICAgICAgICBtX2ZldGNoRGF0YUNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoYnVmZmVyKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgbV9pc1N0b3BwZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBtX2hhc1N0YXJ0ZWRX
cml0aW5nID0gZmFsc2U7CisgICAgICAgICAgICAgICAgY2xlYXIoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9XTsKKyAgICB9KTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcjo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0zOTIsNiArNDc4LDI0IEBAIHZvaWQgTWVk
aWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZldGNoRGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlZlB0cjxTaGFyZWRCCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShidWZmZXIpKTsK
IH0KIAordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kRGF0YShjb25zdCBj
aGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBpZiAoIW1fZGF0YSkgeworICAgICAgICBt
X2RhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBzaXplKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBtX2RhdGEtPmFwcGVuZChkYXRhLCBzaXplKTsKK30KKwordm9pZCBNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1
ZmZlcikKK3sKKyAgICBpZiAoIW1fZGF0YSkgeworICAgICAgICBtX2RhdGEgPSBXVEZNb3ZlKGJ1
ZmZlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9kYXRhLT5hcHBlbmQoV1RGTW92
ZShidWZmZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlNDI4OTM1
MjM2MGNiMTc4MDBkZDA2ZTZiNWIxNTM4Nzk2MmM3OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQorCisjaW5j
bHVkZSA8Q29yZU1lZGlhL0NvcmVNZWRpYS5oPgorI2luY2x1ZGUgPFZpZGVvVG9vbGJveC9WVEVy
cm9ycy5oPgorCit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVC
dWZmZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVWVENvbXByZXNzaW9uU2Vzc2lvbiAqVlRD
b21wcmVzc2lvblNlc3Npb25SZWY7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3Nvcj4gY3JlYXRlKENNVmlkZW9Db2RlY1R5cGUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2Fs
bGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KTsKKyAgICB+VmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yKCk7CisKKyAgICB2b2lkIGZpbmlzaCgpOworICAgIHZvaWQgYWRkU2FtcGxlQnVmZmVy
KENNU2FtcGxlQnVmZmVyUmVmKTsKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBnZXRPdXRwdXRTYW1w
bGVCdWZmZXIoKTsKKyAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHRha2VPdXRwdXRT
YW1wbGVCdWZmZXIoKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3IoQ01WaWRlb0NvZGVjVHlwZSk7CisKKyAgICBib29sIGluaXRpYWxpemUoQ01C
dWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpOworCisgICAg
dm9pZCBwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmKTsKKyAgICBib29sIGlu
aXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmKTsKKworICAg
IHN0YXRpYyB2b2lkIHZpZGVvQ29tcHJlc3Npb25DYWxsYmFjayh2b2lkICpyZWZDb24sIHZvaWQq
LCBPU1N0YXR1cywgVlRFbmNvZGVJbmZvRmxhZ3MsIENNU2FtcGxlQnVmZmVyUmVmKTsKKworICAg
IGRpc3BhdGNoX3F1ZXVlX3QgbV9zZXJpYWxEaXNwYXRjaFF1ZXVlOworICAgIFJldGFpblB0cjxD
TUJ1ZmZlclF1ZXVlUmVmPiBtX291dHB1dEJ1ZmZlclF1ZXVlOworICAgIFJldGFpblB0cjxWVENv
bXByZXNzaW9uU2Vzc2lvblJlZj4gbV92dFNlc3Npb247CisKKyAgICBib29sIG1faXNFbmNvZGlu
ZyB7IGZhbHNlIH07CisKKyAgICBDTVZpZGVvQ29kZWNUeXBlIG1fb3V0cHV0Q29kZWNUeXBlOwor
ICAgIGZsb2F0IG1fbWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uIHsgMi4wIH07CisgICAgdW5z
aWduZWQgbV9leHBlY3RlZEZyYW1lUmF0ZSB7IDMwIH07Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yNjExODRlYTUzOTc4NDI1YTg3Y2RhODIzNzkzNDA4OTYxMjQ3ZDcwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTAsMCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
aCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNp
bXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgPENvcmVNZWRpYS9Db3JlTWVkaWEuaD4KKyNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZUQ29t
cHJlc3Npb25TZXNzaW9uLmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworI2ltcG9y
dCA8cGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworc3RkOjp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpjcmVhdGUoQ01WaWRl
b0NvZGVjVHlwZSBvdXRwdXRDb2RlY1R5cGUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sg
Y2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KQoreworICAgIGF1dG8gY29tcHJlc3NvciA9
IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I+KG5ldyBWaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3Iob3V0cHV0Q29kZWNUeXBlKSk7CisgICAgaWYgKCFjb21wcmVz
c29yLT5pbml0aWFsaXplKGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiBjb21wcmVzc29yOworfQorCitWaWRlb1NhbXBsZUJ1ZmZl
ckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvcihDTVZpZGVvQ29kZWNUeXBl
IG91dHB1dENvZGVjVHlwZSkKKyAgICA6IG1fc2VyaWFsRGlzcGF0Y2hRdWV1ZSB7IGRpc3BhdGNo
X3F1ZXVlX2NyZWF0ZSgiY29tLmFwcGxlLlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciIsIERJ
U1BBVENIX1FVRVVFX1NFUklBTCkgfQorICAgICwgbV9vdXRwdXRDb2RlY1R5cGUgeyBvdXRwdXRD
b2RlY1R5cGUgfQoreworfQorCitWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IoKQoreworICAgIGlmIChtX3NlcmlhbERpc3BhdGNoUXVldWUp
CisgICAgICAgIGRpc3BhdGNoX3JlbGVhc2UobV9zZXJpYWxEaXNwYXRjaFF1ZXVlKTsKK30KKwor
Ym9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1
ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpCit7CisgICAg
Q01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZmZXJRdWV1ZTsKKyAgICBpZiAoYXV0byBlcnJvciA9
IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1
ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVl
dWUpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yIHVuYWJsZSB0byBjcmVhdGUgYnVmZmVyIHF1ZXVlICVkIiwgZXJy
b3IpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG1fb3V0cHV0QnVmZmVyUXVl
dWUgPSBvdXRwdXRCdWZmZXJRdWV1ZTsKKyAgICBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIo
bV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2FsbGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01C
dWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNvbWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxM
KTsKKworICAgIG1faXNFbmNvZGluZyA9IHRydWU7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5pc2goKQoreworICAgIGRpc3BhdGNo
X3N5bmMobV9zZXJpYWxEaXNwYXRjaFF1ZXVlLCBeeworICAgICAgICBhdXRvIGVycm9yID0gVlRD
b21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyhtX3Z0U2Vzc2lvbi5nZXQoKSwga0NNVGlt
ZUludmFsaWQpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJl
YW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25Db21w
bGV0ZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKworICAgICAgICBlcnJvciA9IENN
QnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpOworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CisKKyAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CisgICAgfSk7Cit9
CisKK3ZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp2aWRlb0NvbXByZXNzaW9uQ2Fs
bGJhY2sodm9pZCAqcmVmQ29uLCB2b2lkKiwgT1NTdGF0dXMgc3RhdHVzLCBWVEVuY29kZUluZm9G
bGFncywgQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVyKQoreworICAgIFJFTEVBU0VfTE9HX0VSUk9S
X0lGKHN0YXR1cywgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igdmlk
ZW9Db21wcmVzc2lvbkNhbGxiYWNrIHN0YXR1cyBpcyAlZCIsIHN0YXR1cyk7CisgICAgaWYgKHN0
YXR1cyAhPSBub0VycikKKyAgICAgICAgcmV0dXJuOworCisgICAgVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yICpjb21wcmVzc29yID0gc3RhdGljX2Nhc3Q8VmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yKj4ocmVmQ29uKTsKKworICAgIGF1dG8gZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1
ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBidWZmZXIpOworICAgIFJF
TEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsK
K30KKworYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNl
c3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uKQorewor
ICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRp
b25HZXREaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVyU3BlY2lmaWNhdGlvbnMgPSBuaWw7CisjZWxzZQorICAg
IE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmljYXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJp
bmcgKilrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0
ZWRWaWRlb0VuY29kZXI6QFlFU307CisjZW5kaWYKKworICAgIFZUQ29tcHJlc3Npb25TZXNzaW9u
UmVmIHZ0U2Vzc2lvbjsKKyAgICBhdXRvIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25DcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGltZW5zaW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWln
aHQsIG1fb3V0cHV0Q29kZWNUeXBlLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKWVuY29kZXJT
cGVjaWZpY2F0aW9ucywgTlVMTCwgTlVMTCwgdmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrLCB0aGlz
LCAmdnRTZXNzaW9uKTsKKyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lv
blNlc3Npb25DcmVhdGUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBO
TzsKKyAgICB9CisgICAgbV92dFNlc3Npb24gPSBhZG9wdENGKHZ0U2Vzc2lvbik7CisKKyAgICBl
cnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgUkVMRUFTRV9M
T0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRp
bWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9w
ZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlG
cmFtZUludGVydmFsRHVyYXRpb24sIChfX2JyaWRnZSBDRlR5cGVSZWYpQChtX21heEtleUZyYW1l
SW50ZXJ2YWxEdXJhdGlvbikpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRp
YVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0
eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5
KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJh
bWVSYXRlLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKUAobV9leHBlY3RlZEZyYW1lUmF0ZSkpOworICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5
S2V5X0V4cGVjdGVkRnJhbWVSYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworCisgICAgLy8g
RklYTUU6IFNldCB2aWRlbyBjb21wcmVzc2lvbiByYXRlLgorICAgIGVycm9yID0gVlRDb21wcmVz
c2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMobV92dFNlc3Npb24uZ2V0KCkpOworICAg
IFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyBm
YWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKworICAgIHJldHVybiBZRVM7Cit9CisKK3ZvaWQgVmlk
ZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVm
ZmVyUmVmIGJ1ZmZlcikKK3sKKyAgICBpZiAoIW1fdnRTZXNzaW9uKSB7CisgICAgICAgIGlmICgh
aW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9u
KGJ1ZmZlcikpKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gaW1hZ2VC
dWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBw
cmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVT
dGFtcChidWZmZXIpOworICAgIGF1dG8gZHVyYXRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0
aW9uKGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2Rl
RnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGltYWdlQnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3Rh
bXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxMKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9J
RihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21w
cmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKK30KKwor
dm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBs
ZUJ1ZmZlclJlZiBidWZmZXIpCit7CisgICAgZGlzcGF0Y2hfc3luYyhtX3NlcmlhbERpc3BhdGNo
UXVldWUsIF57CisgICAgICAgIGlmICghbV9pc0VuY29kaW5nKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIHByb2Nlc3NTYW1wbGVCdWZmZXIoYnVmZmVyKTsKKyAgICB9KTsKK30KKwor
Q01TYW1wbGVCdWZmZXJSZWYgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpnZXRPdXRwdXRT
YW1wbGVCdWZmZXIoKQoreworICAgIHJldHVybiAoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KENNQnVmZmVyUXVldWVHZXRIZWFkKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkp
KSk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gVmlkZW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKCkKK3sKKyAgICByZXR1cm4gYWRvcHRD
RigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1
ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkpOworfQorCit9CisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVz
b3VyY2VSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCmluZGV4IDI0NTEzY2ZlZmEzOTI1MGY2Y2IyNTE3
Yjc2NGQwOTliZTkxMDVkNTAuLjExYzJjZDZmZjljZGZkY2M5YmI0OWEzOTI3ODU5YmZjNDRmMDVl
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVz
b3VyY2VSZXF1ZXN0Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9y
dCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9W
ZWN0b3JDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzExZjYyZTIyOGI3NGFkNmNmMmMxZGQ1YjZjMDFi
OTM5NjNhNTFhMy4uZWQyZWE4MjVhMGI3ZTZkOTQ5NWRmYTg0YjlkYWViYzdkNzc3Zjg2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcApAQCAtMjI4LDYgKzIyOCw3IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkmIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyCiAg
ICAgcmV0dXJuICptX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CiB9CiAKKyNpZiBIQVZF
KEFWQVNTRVRXUklURVJERUxFR0FURSkKIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyJiBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJlY29yZGVyTWFuYWdlcigpCiB7CiAgICAgaWYg
KCFtX3JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyKQpAQCAtMjM1LDYgKzIzNiw3IEBAIFJlbW90
ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjptZWRpYVJl
Y29yZGVyTWFuYWdlcigpCiAKICAgICByZXR1cm4gKm1fcmVtb3RlTWVkaWFSZWNvcmRlck1hbmFn
ZXI7CiB9CisjZW5kaWYKIAogUmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJNYW5h
Z2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjphdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2Vy
KCkKIHsKQEAgLTI1MSw3ICsyNTMsNyBAQCBSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJN
YW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzYW1wbGVCdWZmZXJEaQogCiAgICAg
cmV0dXJuICptX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI7CiB9Ci0jZW5kaWYKKyNl
bmRpZiAvLyAgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpZiBQ
TEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKIExpYldlYlJUQ0NvZGVjc1Byb3h5JiBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpsaWJXZWJSVENDb2RlY3NQcm94eSgpCkBAIC0zNjks
NiArMzcxLDcgQEAgYm9vbCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEMKICAgICAgICAgdXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVj
dGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyNpZiBIQVZFKEFW
QVNTRVRXUklURVJERUxFR0FURSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKICAgICAgICAgbWVkaWFSZWNvcmRlck1hbmFnZXIoKS5kaWRSZWNlaXZlTWVz
c2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTM3Nyw2ICszODAsNyBAQCBib29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAg
ICBtZWRpYVJlY29yZGVyTWFuYWdlcigpLmRpZFJlY2VpdmVSZW1vdGVNZWRpYVJlY29yZGVyTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQor
I2VuZGlmIC8vIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQogICAgIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRy
YWNrUmVuZGVyZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgYXVk
aW9UcmFja1JlbmRlcmVyTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3Mo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzkzLDcgKzM5
Nyw3IEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDCiAgICAgICAgIHNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllck1hbmFnZXIoKS5kaWRSZWNlaXZlTGF5ZXJNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNpZiBQTEFURk9STShDT0NPQSkg
JiYgVVNFKExJQldFQlJUQykKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjc1Byb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKICAgICAgICAgbGliV2ViUlRDQ29kZWNzUHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21X
ZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggNWMyNzE2YmNhYjdl
YTJmMzFhYWFmMDNjYzhiNGE3ZDY1ODViYjVhZC4uNDlhYjY5NzA0ODQ3ODQxNjRhMTEwYWE2Zjk3
MzI4M2ZhMzQzNDM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0xMTYsNyArMTE2LDkgQEAgcHJpdmF0ZToKICNl
bmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkmIHVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHko
KTsKKyNpZiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKICAgICBSZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlciYgbWVkaWFSZWNvcmRlck1hbmFnZXIoKTsKKyNlbmRpZgogICAgIFJlbW90ZUF1
ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyTWFuYWdlciYgYXVkaW9UcmFja1JlbmRlcmVyTWFu
YWdlcigpOwogICAgIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIHNhbXBs
ZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIoKTsKICNlbmRpZgpAQCAtMTY2LDcgKzE2OCw5IEBA
IHByaXZhdGU6CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAjaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsK
KyNpZiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI7Cisj
ZW5kaWYKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVu
ZGVyZXJNYW5hZ2VyPiBtX2F1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXI7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXI+IG1fc2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggYzJmNTI4
NTE5ZjUyMjNhYTBmMDAyYzQ1MDAxMjU2NjI4MmUxODEyNC4uZjg4YTIzOTQ0YmMwMTc5MGY1YTY3
NTViNmQzZWVlZTg4YWEyZmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZWNvcmRlci5oIgogCi0j
aWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2lu
Y2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQVJp
bmdCdWZmZXIuaD4KQEAgLTEzNSw0ICsxMzUsNCBAQCB2b2lkIFJlbW90ZU1lZGlhUmVjb3JkZXI6
OnN0b3BSZWNvcmRpbmcoKQogCiB9CiAKLSNlbmRpZgorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUo
QVZBU1NFVFdSSVRFUkRFTEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuaAppbmRleCBmZjVhODI5ODRmYjM5NjQxZWQx
ZTU2MTU0ODk4Zjk1MjZjOWJkNTJhLi5hODNkYTMwNTUyZWI0MWVmOTU5NDRkYjNhYTUwNGZmY2Ez
ZjY4MzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXIuaApAQCAtMjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAKICNp
bmNsdWRlICJNZWRpYVJlY29yZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgpAQCAtODIsNCArODIsNCBAQCBwcml2YXRlOgogCiB9CiAKLSNlbmRpZgorI2VuZGlm
IC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
Lm1lc3NhZ2VzLmluCmluZGV4IDU0YmE2NGQ1NmZiZWEzMGZjYmIzOTZkYWQ1ZWEzZmMzMGM5OTVk
ZWUuLmNlMzJiNzA0ZTdlYzhjNDc3YmUwNTFlMjBkN2QyN2FmMGM0ZjgyMWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXIubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgog
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIFBMQVRG
T1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRp
YVJlY29yZGVyIE5vdFJlZkNvdW50ZWQgewogICAgIEF1ZGlvU2FtcGxlc1N0b3JhZ2VDaGFuZ2Vk
KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgc3RvcmFnZUhhbmRsZSwgV2ViQ29yZTo6Q0FB
dWRpb1N0cmVhbURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uLCB1aW50NjRfdCBudW1iZXJPZkZyYW1l
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKaW5kZXggMGI4NGI4NTE5YmE2ZjUwNmUxODc2
NWZmNmQyZTRkMGNjMjZiNjM2Yy4uN2Y0YzY2ZDZhMjM2MmU1MmU2YTA3NjRlNzg5ZjZkMjBlOTE2
NzJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVN
ZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5o
IgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNT
KSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkK
IAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlh
UmVjb3JkZXJNYW5hZ2VyLmgKaW5kZXggNTQ3MWJiZDQ4NGRkOWIzZDBjOGVlM2RkNjExYzA1ZTkw
ZDAzNmM3Yy4uYWI4MDFiYzExNGM0OTIzZWE5ZDc5MGY5MjNjNTJkZjQ5YWExMWU3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVy
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXIuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYg
RU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAKICNp
bmNsdWRlICJNZWRpYVJlY29yZGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1v
dGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXgg
Mzg3YTQxMzYxY2RiZDliN2VhZTJjMzM3MzY1MmE5OGY0OTM0ZTE3NC4uYzUxODQxMGNiNDlmYWRh
Njg4ZDM3N2QxZDdhMDZjZGUzYmFjNzk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC0yMSw3ICsyMSw3IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBI
QVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFSZWNv
cmRlck1hbmFnZXIgTm90UmVmQ291bnRlZCB7CiAgICAgQ3JlYXRlUmVjb3JkZXIoV2ViS2l0OjpN
ZWRpYVJlY29yZGVySWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgaW50IHdpZHRoLCBpbnQg
aGVpZ2h0KSAtPiAoT3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gY3JlYXRpb25FcnJv
cikgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgKaW5k
ZXggZTVjMzM5MjQxYTFiMTkzMmEwYmFlOTkwZTBhMjRlNzk2Y2Q3NGUwOS4uOTVhY2YyNWViMmU0
ZGRlZjhjZjgyYzVmMzI5MTgxZjdlM2VhMjRjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJE
aXNwbGF5TGF5ZXJNYW5hZ2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKICNpbmNsdWRlICJSZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiU2FtcGxlQnVmZmVyRGlzcGxheUxheWVy
SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCmlu
ZGV4IDMxMWMxNjFlNDhjMGM4NmRmNmFhZDQ3MDNhMzg1Njk0NWZhMTMzMjUuLmY1YWMzMTgxZjUz
OTBiZWVkMmY0MGMxZjFjMjgwYWQ0NDQyY2Q5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZWRpYVJl
Y29yZGVyUHJpdmF0ZS5oIgogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRX
UklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJH
UFVQcm9jZXNzQ29ubmVjdGlvbi5oIgpAQCAtMTM1LDQgKzEzNSw0IEBAIHZvaWQgTWVkaWFSZWNv
cmRlclByaXZhdGU6OnN0b3BSZWNvcmRpbmcoKQogCiB9CiAKLSNlbmRpZiAvLyBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2Vu
ZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2
YXRlLmgKaW5kZXggNmZmMjk0MDc5OTQ3YjZhYzk2NmJlOTBhZTZhODNjNDAxMTQ4MDU1Ny4uM2Q3
YmVlMjk2NDNjOTliNTEwZTdiOGE0ZTA1NDBiN2VlMjA3YTVkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIk1lZGlhUmVj
b3JkZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIK
QEAgLTc2LDUgKzc2LDUgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVE
SUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQ
cm92aWRlci5jcHAKaW5kZXggNmNiMzIxZWQyNTg5NDg5ZTlkYjBjYmJkNWI1NTliMWU1NmEwMzQ5
ZC4uNWY1MDc1ZjE2MzdiNDU5ZGY1NWE3ZDI1MzRkNWI3YmYzYjU5NDAwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29y
ZGVyUHJvdmlkZXIuY3BwCkBAIC0zNiw3ICszNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlh
UmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Q
cml2YXRlJiBzdHJlYW0pCiB7Ci0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAgICAgaWYgKG1fdXNl
R1BVUHJvY2VzcykKICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFSZWNvcmRlclByaXZh
dGU+KHN0cmVhbSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxODJmZWRiNmRhYTM0NDFjOGZmNTNjOTY3NmU1
NDYyNWFiNWIzMGE3Li4wOWY4ODE5NmY0ODAzNGNhZmMxMGY3YjliZmUyMmU3ZjQ1MDAwNWZiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDYtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXNlIEFWQXNzZXRXcml0ZXJEZWxlZ2F0ZSB0
byBpbXBsZW1lbnQgTWVkaWFSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJs
c29uLgorCisgICAgICAgIERpc2FibGUgdGVzdHMgb24gYWxsIHBsYXRmb3JtcyBleGNlcHQgdGhl
IG9uZXMgc3VwcG9ydGluZyBBVkFzc2V0V3JpdGVyRGVsZWdhdGUuCisKKyAgICAgICAgKiBUZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICAqIGh0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNv
cmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxlLWdwdXByb2Nlc3MuaHRtbDoKKyAgICAg
ICAgUmVtb3ZlIHdlYiBhdWRpbyBnZW5lcmF0aW9uIHNpbmNlIHRoZXJlIHNlZW1zIHRvIGJlIHNv
bWUgdW5zdGFiaWxpdHkgaW4gd2ViIGF1ZGlvIC0+IHN0cmVhbSAtPiBtZWRpYSByZWNvcmRlci4K
KyAgICAgICAgd2hpY2ggc2hvdWxkIGJlIGZpeGVkIGFzIGZvbGxvdy11cCBzcGVjaWZpYyBwYXRj
aGVzLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBF
bmFibGUgcnVubmluZyB0ZXN0cy4KKwogMjAyMC0wNi0wNyAgQW5keSBFc3RlcyAgPGFlc3Rlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW0FwcGxlIFBheV0gSEFWRShQQVlNRU5UX01FVEhPRF9CSUxM
SU5HX0FERFJFU1MpIHNob3VsZCBiZSB0cnVlIG9uIGlPUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
YTA1ZjU4NjU2NWRhOTJlYTViMTI2MzUwYTk1M2M0ODZmOTYzZjcxNC4uZjZkZWE1YWFjNmQ0ZGQ3
MTZiZDM4MzI1MWQ2MGJiZDQyNjA1ZTU4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjk5LDcg
KzMyOTksMTAgQEAgd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2UvdGV4dHVyZXMvdGV4dHVyZS1ucG90
LXZpZGVvLmh0bWwgWyBTa2lwIF0KIHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL2NhbnZhcy9yYXBp
ZC1yZXNpemluZy5odG1sIFsgU2tpcCBdCiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9leHRlbnNp
b25zL3dlYmdsLWRyYXctYnVmZmVycy5odG1sIFsgU2tpcCBdCiAKLXdlYmtpdC5vcmcvYi8xOTc2
NzMgaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRh
dGFhdmFpbGFibGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KKyMgTm90IHN1cHBvcnRl
ZCBieSBkZWZhdWx0CitodHRwL3dwdC9tZWRpYXJlY29yZGVyIFsgU2tpcCBdCitpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQgWyBTa2lwIF0KK2Zhc3Qv
aGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXJlY29yZGVyLmh0bWwgWyBTa2lwIF0KIAogIyBXZWJH
TCAyIENvbmZvcm1hbmNlIFN1aXRlIHJ1bGVzIGZvciByZWd1bGFyIGJvdHMgcG9zdCBBTkdMRSBi
YWNrZW5kIGFkb3B0aW9uLgogIyBERVFQIGlzIHNraXBwZWQgb24gdGhlIG1haW4gZmxlZXQgb2Yg
Ym90cyBiZWNhdXNlIG9mIHRoZSBsb25nIHJ1biB0aW1lLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRh
dGFhdmFpbGFibGUtZ3B1cHJvY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRhdGFhdmFpbGFibGUtZ3B1cHJv
Y2Vzcy5odG1sCmluZGV4IDMzMzA2ZGU3OTQ3YmJiOTI1NzM5NGMzYmExOTYyMDFiMDU4NDc4OGIu
Ljg4MDE0ODY1N2UyNWRkZTMzY2IxMDkzNDZkNmNiZWFhYjdmOWNlZmIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12
aWRlby1kYXRhYXZhaWxhYmxlLWdwdXByb2Nlc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWls
YWJsZS1ncHVwcm9jZXNzLmh0bWwKQEAgLTU2LDE3ICs1Niw3IEBACiAgICAgfQogCiAgICAgYXN5
bmNfdGVzdCh0ID0+IHsKLSAgICAgICAgY29uc3QgYWMgPSBuZXcgQXVkaW9Db250ZXh0KCk7Ci0g
ICAgICAgIGNvbnN0IG9zYyA9IGFjLmNyZWF0ZU9zY2lsbGF0b3IoKTsKLSAgICAgICAgY29uc3Qg
ZGVzdCA9IGFjLmNyZWF0ZU1lZGlhU3RyZWFtRGVzdGluYXRpb24oKTsKLSAgICAgICAgY29uc3Qg
YXVkaW8gPSBkZXN0LnN0cmVhbTsKLSAgICAgICAgb3NjLmNvbm5lY3QoZGVzdCk7Ci0KICAgICAg
ICAgY29uc3QgdmlkZW8gPSBjcmVhdGVWaWRlb1N0cmVhbSgpOwotICAgICAgICBhc3NlcnRfZXF1
YWxzKHZpZGVvLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoLCAwLCAidmlkZW8gbWVkaWFzdHJlYW0g
c3RhcnRzIHdpdGggbm8gYXVkaW8gdHJhY2siKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhhdWRp
by5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCwgMSwgImF1ZGlvIG1lZGlhc3RyZWFtIHN0YXJ0cyB3
aXRoIG9uZSBhdWRpbyB0cmFjayIpOwotICAgICAgICB2aWRlby5hZGRUcmFjayhhdWRpby5nZXRB
dWRpb1RyYWNrcygpWzBdKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlby5nZXRBdWRpb1Ry
YWNrcygpLmxlbmd0aCwgMSwgInZpZGVvIG1lZGlhc3RyZWFtIHN0YXJ0cyB3aXRoIG9uZSBhdWRp
byB0cmFjayIpOwogICAgICAgICBjb25zdCByZWNvcmRlciA9IG5ldyBNZWRpYVJlY29yZGVyKHZp
ZGVvKTsKICAgICAgICAgbGV0IG1vZGUgPSAwOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDY1NDMzODAwNThiOTlmZGIxNmYzNjQxYjU5NmUzOTI0MDUy
MDE3NjUuLmRhNzBiNWVlNDlkODNjODg1MTY0MmQ4N2U5MzQyMTViZjNhNDFkYjggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzA4LDYgKzE3MDgsMTAg
QEAgd2Via2l0Lm9yZy9iLzIxMjE3MiBbIENhdGFsaW5hIF0gZmFzdC90ZXh0L2ZvbnQtY29sbGVj
dGlvbi5odG1sIFsgSW1hZ2VPbmx5RmFpbHUKIFsgQ2F0YWxpbmErIF0gZmFzdC90ZXh0L2Rlc2ln
bi1zeXN0ZW0tdWktMTUuaHRtbCBbIFBhc3MgXQogWyBDYXRhbGluYSsgXSBmYXN0L3RleHQvZGVz
aWduLXN5c3RlbS11aS0xNi5odG1sIFsgUGFzcyBdCiAKK1sgQ2F0YWxpbmErIF0gaHR0cC93cHQv
bWVkaWFyZWNvcmRlciBbIFBhc3MgRmFpbHVyZSBdIAorWyBDYXRhbGluYSsgXSBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQgWyBQYXNzIEZhaWx1cmUg
XQorWyBDYXRhbGluYSsgXSBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1tZWRpYS1yZWNvcmRlci5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzIwMDEyOCBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLXZp
ZGVvLWVsZW1lbnQvdmlkZW9fdGltZXVwZGF0ZV9vbl9zZWVrLmh0bWwgWyBUaW1lb3V0IFBhc3Mg
XQogCiAjIHJkYXI6Ly81NTQwNTg1MSAoWyBtYWNPUyBdIExheW91dCB0ZXN0cyB3ZWJncHUvKi10
cmlhbmdsZS1zdHJpcC5odG1sIGFyZSBmbGFreSBmYWlsdXJlcy4gKDIwMTgyNykpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401315</attachid>
            <date>2020-06-08 00:40:51 -0700</date>
            <delta_ts>2020-06-08 02:32:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212739-20200608094048.patch</filename>
            <type>text/plain</type>
            <size>8597</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1NjBkMzE2OWYxNDll
NDEwOWY3NjU1OGM0ZmMzN2MwYjJlZDEzNC4uNGI1ZDBlODYxMjE5NmFkMmI1NjM2Nzg4YmI5NWJi
MzcwYjEyYzcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA2LTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlIFVSTHMgd2l0aCBo
b3N0bmFtZXMgYXJlIG1pc2xlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjczOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM3NTQ5MTc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBTaG93
aW5nIGEgZmlsZSBVUkwgbGlrZSBmaWxlOi8vZXhhbXBsZS5vcmcvdGVzdCBpcyBtaXNsZWFkaW5n
IHRvIHVzZXJzLgorICAgICAgICBUbyBwcmV2ZW50IHRoaXMsIHdlIGp1c3QgZG8gYSByZWRpcmVj
dGlvbiB0byB0aGUgc2FtZSBmaWxlIFVSTCB3aXRoIGFuIGVtcHR5IGhvc3QuCisgICAgICAgIFJl
bW92ZSB0aGUgcG9ydCBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAgICBDb3ZlcmVkIGJ5IGFkZGVk
IEFQSSB0ZXN0LgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorCiAyMDIwLTA2
LTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IFVzZSBBVkFzc2V0V3JpdGVyRGVsZWdhdGUgdG8gaW1wbGVtZW50IE1lZGlhUmVjb3JkZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGU0MTI0MWFkMTE1ZDZh
MWFlOTkzOWIyNDg3MTBjYjljZDdmMmVkNGYuLmZkYTJjNGNjNmNmM2YzMDczOGQzYTc2MmYxYTAz
NDM5MTU2ZWM2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtNjUzLDYgKzY1MywxMiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyYwogICAgICAgICB9CiAg
ICAgfQogCisgICAgaWYgKCFuZXdSZXF1ZXN0LnVybCgpLmhvc3QoKS5pc0VtcHR5KCkgJiYgU2Vj
dXJpdHlPcmlnaW46OnNob3VsZElnbm9yZUhvc3QobmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAg
ICAgYXV0byB1cmwgPSBuZXdSZXF1ZXN0LnVybCgpOworICAgICAgICB1cmwuc2V0SG9zdEFuZFBv
cnQoeyB9KTsKKyAgICAgICAgbmV3UmVxdWVzdC5zZXRVUkwoV1RGTW92ZSh1cmwpKTsKKyAgICB9
CisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgaWYgKG1fY29udGVudEZpbHRl
ciAmJiAhbV9jb250ZW50RmlsdGVyLT5jb250aW51ZUFmdGVyV2lsbFNlbmRSZXF1ZXN0KG5ld1Jl
cXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShuZXdSZXF1ZXN0KSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggY2IzYjc4ZjNhMmU0ZTdhZjA5NDdmY2E2YmJmM2EwYTVkOWYy
N2UwNy4uZWY3NDRlM2VhMjFkNzZkMjhkZGU5MGYzODA1MTg0OTg4NmFhOTJjOCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIwLTA2LTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBGaWxlIFVSTHMgd2l0aCBob3N0bmFtZXMgYXJlIG1pc2xlYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjczOQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjM3NTQ5MTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L29wZW4t
d2luZG93LXdpdGgtZmlsZS11cmwtd2l0aC1ob3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT3BlbkFuZENsb3NlV2luZG93Lm1tOgorICAg
ICAgICAoVEVTVCk6CisKIDIwMjAtMDYtMDcgIENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwu
Y29tPgogCiAgICAgICAgIEFsbG93IHJ1bi1qc2Mtc3RyZXNzLXRlc3RzIHN0aWxsIHJ1biBpZiBz
b21lIG9mIHRoZSByZW1vdGUgaG9zdHMgYXJlIG5vdCBhdmFpbGFibGUKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNDI5ZWE5OWRlYTQ5NDg5N2NkMGZiYTgzNjM1NjE5MGFhMWQwMzU2Ni4uMjYw
YTUwZGMxNGE2NjQ3YTE0Nzk5ZmYxMzY5ZjNlNDY1YWZlMDhkMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIzMCw2ICsyMzAsNyBAQAogCQk0MTM1RkI4NTIwMTFGQUJGMDAzMzIxMzkgLyog
bGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzNUZCODYyMDExRkFCRjAwMzMyMTM5IC8qIGxpYldlYkNv
cmVUZXN0U3VwcG9ydC5keWxpYiAqLzsgfTsKIAkJNDE0QUQ2ODYyMjg1RDFDMDAwNzc3RjJEIC8q
IFN0b3JhZ2VRdW90YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxNEFENjg1MjI4NUQxQjAwMDc3N0YyRCAvKiBTdG9yYWdlUXVvdGEubW0gKi87IH07
CiAJCTQxNjYxQzY2MjM1NUU4NUUwMEQzM0MyNyAvKiBnZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTY2MUM2NTIzNTVEOThCMDBEMzNDMjcgLyogZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgKi87
IH07CisJCTQxODQ4RjQ0MjQ4OTE4NzkwMDBFMjU4OCAvKiBvcGVuLXdpbmRvdy13aXRoLWZpbGUt
dXJsLXdpdGgtaG9zdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxODQ4RjQzMjQ4OTE4MTUwMDBFMjU4OCAvKiBvcGVuLXdpbmRvdy13
aXRoLWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sICovOyB9OwogCQk0MTg4MkYwMzIxMDEwQzBEMDAy
RkYyODggLyogUHJvY2Vzc1ByZVdhcm1pbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4MkYwMjIxMDEwQTcwMDAyRkYyODggLyogUHJvY2Vzc1By
ZVdhcm1pbmcubW0gKi87IH07CiAJCTQ0MDc3QkIxMjMxNDRCNTAwMDE3OUUyRCAvKiBEYXRhRGV0
ZWN0b3JzVGVzdElPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ0MDc3QkIwMjMxNDQ5RDIwMDE3OUUyRCAvKiBEYXRhRGV0ZWN0b3JzVGVzdElPUy5t
bSAqLzsgfTsKIAkJNDQzM0EzOTYyMDgwNDQxNDAwOTFFRDU3IC8qIFN5bmNocm9ub3VzVGltZW91
dFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQzM0EzOTUyMDgwNDQxMzAwOTFFRDU3IC8qIFN5bmNocm9ub3VzVGltZW91dFRlc3RzLm1tICov
OyB9OwpAQCAtMTQ5MSw2ICsxNDkyLDcgQEAKIAkJCQlDRUE2Q0YyODE5Q0NGNjlEMDA2NEY1QTcg
Lyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
N0NDQjk5MjMxRDNCNEE0NjAwMzkyMkY2IC8qIG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNDY4QkM0NTUyMjY1M0ExMDAwQTM2Qzk2IC8q
IG9wZW4td2luZG93LXRoZW4td3JpdGUtdG8taXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
KwkJCQk0MTg0OEY0NDI0ODkxODc5MDAwRTI1ODggLyogb3Blbi13aW5kb3ctd2l0aC1maWxlLXVy
bC13aXRoLWhvc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzFDMjgxRTIyQkM1
NzlBMDAxRDk4QzQgLyogb3BlbmRhdGFiYXNlLWFsd2F5cy1leGlzdHMuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQkyOTBBOUJCOTE3MzVGNjM4MDBENzFCQkMgLyogT3Blbk5ld1dpbmRv
dy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTBGMzQwNzc5MjMwMzgyODcwMDYwQTFB
MCAvKiBvdmVyZmxvdy1zY3JvbGwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE4Nzgs
NiArMTg4MCw3IEBACiAJCTQxMzVGQjg2MjAxMUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJDb3JlVGVz
dFN1cHBvcnQuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBwYXRoID0gbGliV2ViQ29yZVRlc3RTdXBw
b3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0MTRBRDY4
NTIyODVEMUIwMDA3NzdGMkQgLyogU3RvcmFnZVF1b3RhLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU3RvcmFnZVF1b3RhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTY2MUM2
NTIzNTVEOThCMDBEMzNDMjcgLyogZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTg0OEY0MzI0ODkxODE1MDAwRTI1ODggLyogb3Blbi13
aW5kb3ctd2l0aC1maWxlLXVybC13aXRoLWhvc3QuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJvcGVuLXdpbmRvdy13aXRoLWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODJGMDIyMTAxMEE3MDAwMkZGMjg4IC8qIFByb2Nl
c3NQcmVXYXJtaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UHJvY2Vzc1ByZVdhcm1pbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTcz
QjVDMUFGMjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQwNzdCQjAyMzE0NDlEMjAwMTc5RTJEIC8qIERhdGFEZXRlY3RvcnNUZXN0
SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVj
dG9yc1Rlc3RJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTQ4LDYgKzQx
NTEsNyBAQAogCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNiAvKiBvbmRldmljZWNoYW5nZS5o
dG1sICovLAogCQkJCUNFQTZDRjI3MTlDQ0Y2OUQwMDY0RjVBNyAvKiBvcGVuLWFuZC1jbG9zZS13
aW5kb3cuaHRtbCAqLywKIAkJCQk0NjhCQzQ1NDIyNjUzOUM4MDBBMzZDOTYgLyogb3Blbi13aW5k
b3ctdGhlbi13cml0ZS10by1pdC5odG1sICovLAorCQkJCTQxODQ4RjQzMjQ4OTE4MTUwMDBFMjU4
OCAvKiBvcGVuLXdpbmRvdy13aXRoLWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sICovLAogCQkJCTgz
MTQ4QjA4MjAyQUM3NjgwMEJBREU5OSAvKiBvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgKi8s
CiAJCQkJMEVCQkNDNjUxRkZGOURDRTAwRkE0MkFCIC8qIHBvcC11cC1jaGVjay5odG1sICovLAog
CQkJCUY2RkREREQ1MTQyNDFDNDgwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vcGVuLXdpbmRvdy13aXRo
LWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvb3Blbi13aW5kb3ctd2l0aC1maWxlLXVybC13aXRoLWhvc3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MGE1YWEwM2I5MmJmNWI2ZjQ3ZGY2MGU3MGI2ZmMzYzE0NzAzZTNmCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvb3Blbi13aW5kb3ctd2l0aC1maWxl
LXVybC13aXRoLWhvc3QuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgaWYgKGxvY2F0aW9uLmhhc2ggIT09ICIjdGVzdCIp
CisgICAgICAgIHdpbmRvdy5vcGVuKCJmaWxlOi8vZXhhbXBsZS5vcmciICsgbG9jYXRpb24ucGF0
aG5hbWUgKyAiI3Rlc3QiLCAiX3NlbGYiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PcGVuQW5k
Q2xvc2VXaW5kb3cubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09w
ZW5BbmRDbG9zZVdpbmRvdy5tbQppbmRleCA2MGIxMWVmMmZkMDFkODVmNmFhYWYwODFmMDkzMTkw
MGU4Zjg4ZmFhLi4zZjE0ZjY0NWRkNWVhMTVmY2YzZmY2ZmFkYTRkMjIyZmQyNDcyMTdhIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09wZW5BbmRDbG9z
ZVdpbmRvdy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09w
ZW5BbmRDbG9zZVdpbmRvdy5tbQpAQCAtMzE5LDMgKzMxOSwyMiBAQCBURVNUKFdlYktpdCwgT3Bl
bldpbmRvd1RoZW5Eb2N1bWVudE9wZW4pCiAKICAgICBFWFBFQ1RfVFJVRShbW1tvcGVuZWRXZWJW
aWV3IF9tYWluRnJhbWVVUkxdIGFic29sdXRlU3RyaW5nXSBpc0VxdWFsVG9TdHJpbmc6W1t3ZWJW
aWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddXSk7CiB9CisKK1RFU1QoV2ViS2l0LCBPcGVuRmlsZVVS
TFdpdGhIb3N0KQoreworICAgIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tPcGVuV2luZG93VGhlbkRvY3VtZW50T3BlblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3
IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkgPSBZRVM7CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJvcGVuLXdpbmRvdy13aXRoLWZpbGUtdXJsLXdpdGgtaG9zdCIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgd2hpbGUgKCFbW1t3ZWJWaWV3IFVSTF0g
YWJzb2x1dGVTdHJpbmddIGhhc1N1ZmZpeDpAIiN0ZXN0Il0pCisgICAgICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnNwaW5SdW5Mb29wKCk7CisKKyAgICBFWFBFQ1RfVFJVRShbW1t3ZWJWaWV3IFVS
TF0gYWJzb2x1dGVTdHJpbmddIGhhc1ByZWZpeDpAImZpbGU6Ly8vIl0pOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401318</attachid>
            <date>2020-06-08 02:32:21 -0700</date>
            <delta_ts>2020-06-08 02:40:19 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-212739-20200608113219.patch</filename>
            <type>text/plain</type>
            <size>145215</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDAzZWZmMzc5MTZlMzliY2Y3MDY1NmQw
ZTQzY2IxNWQ2NmU3YTEyOWIuLjk3Y2ZmNGJkM2QxMjkyMTk5NzViYWUyYzYzYjJiOWVlMzVmOTAz
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDYtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXNlIEFWQXNzZXRXcml0ZXJEZWxlZ2F0
ZSB0byBpbXBsZW1lbnQgTWVkaWFSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBD
YXJsc29uLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtSGF2ZS5oOgorCiAyMDIwLTA2LTA3ICBB
bmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXBwbGUgUGF5XSBIQVZF
KFBBWU1FTlRfTUVUSE9EX0JJTExJTkdfQUREUkVTUykgc2hvdWxkIGJlIHRydWUgb24gaU9TCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYmQyMWEyZjdhMjNiZDdmMzQ0ZTdjMDMzYWFlOTliZjIyMGYxZjhhYy4uMmI1
NjBkMzE2OWYxNDllNDEwOWY3NjU1OGM0ZmMzN2MwYjJlZDEzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk1IEBACisyMDIwLTA2LTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBbQ29jb2FdIFVzZSBBVkFzc2V0V3JpdGVyRGVsZWdhdGUgdG8gaW1wbGVtZW50
IE1lZGlhUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNjU4MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg5ODUzNjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEFWQXNzZXRXcml0ZXJEZWxl
Z2F0ZSBhbGxvd3MgdG8gZ3JhYiByZWNvcmRlZCBkYXRhIHdoZW5ldmVyIHdhbnRlZC4KKyAgICAg
ICAgVGhpcyBkZWxlZ2F0ZSByZXF1aXJlcyBwYXNzaW5nIGNvbXByZXNzZWQgc2FtcGxlcyB0byBB
VkFzc2V0V3JpdGVyLgorICAgICAgICBJbXBsZW1lbnQgdmlkZW8gZW5jb2RpbmcgYW5kIGF1ZGlv
IGVuY29kaW5nIGluIGRlZGljYXRlZCBjbGFzc2VzIGFuZCB1c2UgdGhlc2UgY2xhc3NlcyBiZWZv
cmUgYWRkaW5nIGJ1ZmZlcnMgdG8gQVZBc3NldFdyaXRlci4KKyAgICAgICAgVGhlc2UgY2xhc3Nl
cyBhcmUgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGFuZCBWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IuCisgICAgICAgIFRoZXkgc3VwcG9ydCBBQUMgYW5kIEgyNjQgc28gZmFyIGFuZCBz
aG91bGQgYmUgZnVydGhlciBpbXByb3ZlZCB0byBzdXBwb3J0IG1vcmUgZW5jb2Rpbmcgb3B0aW9u
cy4KKworICAgICAgICBJbnN0YW50aWF0ZSByZWFsIHdyaXRlciBvbmx5IGZvciBwbGF0Zm9ybXMg
c3VwcG9ydGluZyBBVkFzc2V0V3JpdGVyRGVsZWdhdGUsIHNpbmNlIGl0IGlzIG5vdCBzdXBwb3J0
ZWQgZXZlcnl3aGVyZS4KKyAgICAgICAgVGhlIHdyaXRlciwgZG9pbmcgdGhlIHBhY2FrZ2luZywg
aXMgcmVjZWl2aW5nIGNvbXByZXNzZWQgYnVmZmVyIGZyb20gdGhlIGF1ZGlvL3ZpZGVvIGNvbXBy
ZXNzb3JzLgorICAgICAgICBJdCB0aGVuIHNlbmRzIGRhdGEgd2hlbiBiZWluZyByZXF1ZXN0IHRv
IGZsdXNoIHRvIGl0cyBkZWxlZ2F0ZSwgd2hpY2ggd2lsbCBzZW5kIGRhdGEgdG8gdGhlIE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyLgorICAgICAgICBUaGUgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXIgc3RvcmVzIHRoZSBkYXRhIGluIGEgU2hhcmVkQnVmZmVyIHVudGlsIE1lZGlhUmVjb3Jk
ZXIgYXNrcyBmb3IgZGF0YS4KKworICAgICAgICBOb3RlIHRoYXQsIHdoZW5ldmVyIHdlIHJlcXVl
c3QgZGF0YSwgd2UgZmx1c2ggdGhlIHdyaXRlciBhbmQgaW5zZXJ0IGFuIGVuZCBvZiB2aWRlbyBz
YW1wbGUgdG8gbWFrZSBzdXJlIHZpZGVvIGRhdGEgZ2V0cyBmbHVzaGVkLgorICAgICAgICBUaGVy
ZWZvcmUgZGF0YSBzaG91bGQgbm90IGJlIHJlcXVlc3RlZCB0b28gZmFzdCB0byBnZXQgYWRlcXVh
dGUgdmlkZW8gY29tcHJlc3Npb24uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0
cy4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJvdmlk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByb3ZpZGVyOjpjcmVhdGVN
ZWRpYVJlY29yZGVyUHJpdmF0ZSk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
clByaXZhdGVBVkZJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlQVZGSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVj
b3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmg6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvcjo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6fkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcik6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmluaXRpYWxp
emUpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpmaW5p
c2gpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0
QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNvbXB1dGVCdWZmZXJTaXplRm9yQXVk
aW9Gb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3I6OmdyYWR1YWxEZWNvZGVyUmVmcmVzaENvdW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6c2FtcGxlQnVmZmVyV2l0
aE51bVBhY2tldHMpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yOjphdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRw
dXRQYWNrZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRpbExvd1dhdGVyVGltZSk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NTYW1wbGVCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjphZGRTYW1wbGVC
dWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpn
ZXRPdXRwdXRTYW1wbGVCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW06CisgICAgICAgICgtW1dlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZSBp
bml0V2l0aFdyaXRlcjpdKToKKyAgICAgICAgKC1bV2ViQVZBc3NldFdyaXRlckRlbGVnYXRlIGFz
c2V0V3JpdGVyOmRpZFByb2R1Y2VGcmFnbWVudGVkSGVhZGVyRGF0YTpdKToKKyAgICAgICAgKC1b
V2ViQVZBc3NldFdyaXRlckRlbGVnYXRlIGFzc2V0V3JpdGVyOmRpZFByb2R1Y2VGcmFnbWVudGVk
TWVkaWFEYXRhOmZyYWdtZW50ZWRNZWRpYURhdGFSZXBvcnQ6XSk6CisgICAgICAgICgtW1dlYkFW
QXNzZXRXcml0ZXJEZWxlZ2F0ZSBjbG9zZV0pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNv
cmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZFZpZGVvT3V0cHV0QnVmZmVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNvbXByZXNzZWRB
dWRpb091dHB1dEJ1ZmZlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3Jk
ZXJQcml2YXRlV3JpdGVyOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6fk1lZGlhUmVjb3JkZXJQcml2YXRl
V3JpdGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpp
bml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Ojpwcm9jZXNzTmV3Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRp
b1NhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OnN0YXJ0QXNzZXRXcml0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRl
clByaXZhdGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3Nl
ZFZpZGVvU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjphcHBlbmRDb21wcmVzc2VkU2FtcGxlQnVmZmVycyk6CisgICAgICAgIChXZWJD
b3JlOjphcHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kRW5kT2ZWaWRlb1NhbXBs
ZUR1cmF0aW9uSWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmZsdXNoQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlkZW9TYW1wbGVCdWZmZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kQXVkaW9TYW1wbGVCdWZmZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0b3BSZWNvcmRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmFwcGVuZERh
dGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmguCisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW06
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yOjp+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmZpbmlzaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnZpZGVvQ29tcHJl
c3Npb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6VmlkZW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9jZXNzU2FtcGxlQnVmZmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6YWRkU2FtcGxlQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0T3V0cHV0U2Ft
cGxlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcik6CisKIDIwMjAtMDYtMDcgIFphbGFuIEJ1anRhcyAg
PHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtIZWlnaHQgcGVyY2VudGFnZV0gU2tp
cCBhbm9ueW1vdXMgd3JhcHBlcnMgd2hlbiBzZWFyY2hpbmcgZm9yIGZpeGVkIGhlaWdodApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cKaW5kZXggODNmZDg2MzUzZjZjNGRkMTdkMWY2MWY0NTJhZGUyZDNjNjQ2Mzg3
Mi4uNWExYzBkNjg5MzM4NzRkNGRhYTIxNjlmYTI1OTY1YWQ0YTVmMThlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDYtMDcgIHlvdWVubiBmYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gVXNlIEFWQXNzZXRXcml0ZXJEZWxlZ2F0
ZSB0byBpbXBsZW1lbnQgTWVkaWFSZWNvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NTgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81ODk4
NTM2OD4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgQWRk
IHNvZnQgbGluayBtYWNyb3MgZm9yIFZpZGVvVG9vbGJveCBhbmQgQXVkaW9Ub29sYm94LgorCisg
ICAgICAgICogUEFMLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFsL2Nm
L0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcDogQWRkZWQuCisgICAgICAgICogcGFsL2NmL0F1ZGlv
VG9vbGJveFNvZnRMaW5rLmg6IEFkZGVkLgorICAgICAgICAqIHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5jcHA6CisgICAgICAgICogcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg6CisgICAgICAg
ICogcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcDogQWRkZWQuCisgICAgICAgICogcGFs
L2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmg6IEFkZGVkLgorCiAyMDIwLTA2LTA3ICBQaGlsaXBw
ZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxF
X1ZJREVPX1RSQUNLIGlmZGVmIGd1YXJkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZTU3MWI1NDk3M2YzMTBmM2Nj
NGZiNmEwYWJlNjljNWFkMDkyMTQ2Li5hYmY4ZmNhY2ZlYWQ3Mzg0ZmQzNjM5MDg4ZGM4OTcyYjVm
NDMyNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTA2LTA3ICB5b3Vlbm4gZmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIFVzZSBBVkFzc2V0V3Jp
dGVyRGVsZWdhdGUgdG8gaW1wbGVtZW50IE1lZGlhUmVjb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjU4MgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTg5ODUzNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisg
ICAgICAgIEVuYWJsZSBSZW1vdGVNZWRpYVJlY29yZGVyIG9ubHkgZm9yIHN5c3RlbXMgc3VwcG9y
dGluZyBBVkFzc2V0V3JpdGVyRGVsZWdhdGUuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlci5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1l
ZGlhUmVjb3JkZXIubWVzc2FnZXMuaW46CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJQcm92aWRlcjo6Y3JlYXRlTWVkaWFS
ZWNvcmRlclByaXZhdGUpOgorCiAyMDIwLTA2LTA3ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtXZWJEcml2ZXJdIEFsbG93IHBsYXRmb3JtLWRlcGVuZGVudCBt
b2RpZmllciBrZXlzIGNvbnZlcnNpb24gdG8gV2ViRXZlbnQ6Ok1vZGlmaWVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oCmluZGV4IDgwZjAwZmNjMmZmMmU3OTBmY2U5OTQwYjEzZjBkZTQ0N2UwM2YwZWMuLjEy
MDRmNjRmMTg4Yjc0NGRmYWM4OTA0M2M0ZWYyMWE2YzQ4MzQwODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2
ZS5oCkBAIC01NDIsNiArNTQyLDEwIEBACiAjZGVmaW5lIEhBVkVfT1NfU0lHTlBPU1QgMQogI2Vu
ZGlmCiAKKyNpZiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDApIHx8IFBMQVRGT1JNKElPUykpICYmIChkZWZpbmVkIF9faGFzX2luY2x1
ZGUgJiYgX19oYXNfaW5jbHVkZSg8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0ZXJfUHJpdmF0ZS5o
PikpCisjZGVmaW5lIEhBVkVfQVZBU1NFVFdSSVRFUkRFTEVHQVRFIDEKKyNlbmRpZgorCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShB
UFBMRVRWKQogI2RlZmluZSBIQVZFX1NZU1RFTV9GT05UX1NUWUxFX1RJVExFXzAgMQogI2RlZmlu
ZSBIQVZFX1NZU1RFTV9GT05UX1NUWUxFX1RJVExFXzQgMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcm92aWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVy
LmNwcAppbmRleCA0NGM5ZDA3YTliOTc1MGQ2NjI2ZWI3NTg3ZWFiYzUxM2Y0MzZiOGIzLi44ODRh
NDA3OTBhNDZhODMyNjI2ZTBmYTBlZWJiOWM5ZDlmNDRjYWIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlclBy
b3ZpZGVyLmNwcApAQCAtMzQsNyArMzQsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFSZWNvcmRlclByaXZhdGU+IE1lZGlhUmVjb3JkZXJQcm92aWRlcjo6
Y3JlYXRlTWVkaWFSZWNvcmRlclByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7
CisjaWYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAgICAgcmV0dXJuIE1lZGlhUmVjb3Jk
ZXJQcml2YXRlQVZGSW1wbDo6Y3JlYXRlKHN0cmVhbSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShzdHJlYW0pOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9QQUwueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0Zjk4
OTc3MzdkODgyZDhlNGEyNzAwMTBkMmVhNTBhMDIxMTkyNGEwLi41YjAyYjUxMzAwYTRkMGNkNWQ5
ZDgyZTgyYjRmMGNiNzdiZGI2NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvUEFM
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML1BBTC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTksNiArMTE5LDkgQEAKIAkJMkUxMzQyQ0My
MTVBQTEwQTAwNzE5OUQyIC8qIFVJS2l0U29mdExpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMTM0MkNBMjE1QUExMEEwMDcxOTlEMiAvKiBVSUtp
dFNvZnRMaW5rLmggKi87IH07CiAJCTJFMTM0MkNEMjE1QUExMEEwMDcxOTlEMiAvKiBVSUtpdFNv
ZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkUxMzQyQ0IyMTVBQTEwQTAwNzE5OUQyIC8qIFVJS2l0U29mdExpbmsubW0gKi87IH07CiAJCTMx
MzA4QjE0MjBBMjE3MDUwMDNGQjkyOSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTMwOEIxMzIwQTIxNzA1MDAzRkI5
MjkgLyogU3lzdGVtUHJldmlld1NQSS5oICovOyB9OworCQk0MTZFOTk1MzIzREFFNkJFMDBFODcx
Q0IgLyogQXVkaW9Ub29sYm94U29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2RTk5NTEyM0RBRTZCRDAwRTg3MUNCIC8qIEF1ZGlvVG9v
bGJveFNvZnRMaW5rLmNwcCAqLzsgfTsKKwkJNDE2RTk5NTQyM0RBRTZCRTAwRTg3MUNCIC8qIEF1
ZGlvVG9vbGJveFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTZFOTk1MjIzREFFNkJFMDBFODcxQ0IgLyogQXVkaW9Ub29sYm94U29mdExp
bmsuaCAqLzsgfTsKKwkJNDFFMUYzNDQyNDhBNkEwMDAwMjJENURFIC8qIFZpZGVvVG9vbGJveFNv
ZnRMaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNkU5OTU1MjNEQUVGRjcwMEU4NzFDQiAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgKi87
IH07CiAJCTQ0Mjk1NkNEMjE4QTcyREYwMDgwREI1NCAvKiBSZXZlYWxTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0Mjk1NkNDMjE4QTcyREUwMDgw
REI1NCAvKiBSZXZlYWxTUEkuaCAqLzsgfTsKIAkJNDQ1MEZDOUYyMUY1RjYwMjAwNERGQTU2IC8q
IFF1aWNrTG9va1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDQ1MEZDOUQyMUY1RjYwMjAwNERGQTU2IC8qIFF1aWNrTG9va1NvZnRMaW5r
Lm1tICovOyB9OwogCQk0NDUwRkNBMDIxRjVGNjAyMDA0REZBNTYgLyogUXVpY2tMb29rU29mdExp
bmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTBG
QzlFMjFGNUY2MDIwMDRERkE1NiAvKiBRdWlja0xvb2tTb2Z0TGluay5oICovOyB9OwpAQCAtMzAw
LDYgKzMwMywxMCBAQAogCQkyRTEzNDJDQjIxNUFBMTBBMDA3MTk5RDIgLyogVUlLaXRTb2Z0TGlu
ay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJS2l0U29mdExp
bmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMzA4QjEzMjBBMjE3MDUwMDNG
QjkyOSAvKiBTeXN0ZW1QcmV2aWV3U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5c3RlbVByZXZpZXdT
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxMTlBNzgyMENDQjVGRjAwMkM2
REM5IC8qIFdlYktpdFRhcmdldENvbmRpdGlvbmFscy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBX
ZWJLaXRUYXJnZXRDb25kaXRpb25hbHMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxNkU5OTUxMjNEQUU2QkQwMEU4NzFDQiAvKiBBdWRpb1Rvb2xib3hTb2Z0TGluay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb1Rvb2xib3hTb2Z0
TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkU5OTUyMjNEQUU2QkUw
MEU4NzFDQiAvKiBBdWRpb1Rvb2xib3hTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdWRpb1Rvb2xib3hTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTZFOTk1NTIzREFFRkY3MDBFODcxQ0IgLyogVmlkZW9Ub29sYm94U29mdExpbmsu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9Ub29sYm94U29m
dExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTZFOTk1NjIzREFFRkY3
MDBFODcxQ0IgLyogVmlkZW9Ub29sYm94U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlkZW9Ub29sYm94U29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDQyOTU2Q0MyMThBNzJERTAwODBEQjU0IC8qIFJldmVhbFNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXZlYWxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQ1MEZDOUQyMUY1RjYwMjAwNERGQTU2IC8qIFF1aWNrTG9va1NvZnRMaW5r
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUXVpY2tMb29rU29m
dExpbmsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0NTBGQzlFMjFGNUY2MDIw
MDRERkE1NiAvKiBRdWlja0xvb2tTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBRdWlja0xvb2tTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNTQxLDggKzU0OCwxMiBAQAogCQkwQ0Y5OUNBNTFGNzM4NDFDMDA3RUU3OTMgLyogY2YgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxNkU5OTUxMjNE
QUU2QkQwMEU4NzFDQiAvKiBBdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgKi8sCisJCQkJNDE2RTk5
NTIyM0RBRTZCRTAwRTg3MUNCIC8qIEF1ZGlvVG9vbGJveFNvZnRMaW5rLmggKi8sCiAJCQkJMENG
OTlDQTYxRjczODQzNjAwN0VFNzkzIC8qIENvcmVNZWRpYVNvZnRMaW5rLmNwcCAqLywKIAkJCQkw
Q0Y5OUNBNzFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1lZGlhU29mdExpbmsuaCAqLywKKwkJCQk0
MTZFOTk1NTIzREFFRkY3MDBFODcxQ0IgLyogVmlkZW9Ub29sYm94U29mdExpbmsuY3BwICovLAor
CQkJCTQxNkU5OTU2MjNEQUVGRjcwMEU4NzFDQiAvKiBWaWRlb1Rvb2xib3hTb2Z0TGluay5oICov
LAogCQkJKTsKIAkJCXBhdGggPSBjZjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC03
MzUsNiArNzQ2LDcgQEAKIAkJCQkyOTNFRTRBOTI0MTU0RjhGMDA0NzQ5M0QgLyogQWNjZXNzaWJp
bGl0eVN1cHBvcnRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMxOEIyMkIzNTk4
OTAwOEQwRThCIC8qIEFwcFNTT1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzZDQTlE
NjIyQjg1NEFCMDAzMDE0M0MgLyogQXBwU1NPU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTZF
OTk1NDIzREFFNkJFMDBFODcxQ0IgLyogQXVkaW9Ub29sYm94U29mdExpbmsuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJEMDJFOTNDMjA1NkZBQTcwMEExMzc5NyAvKiBBdWRpb1Rvb2xib3hTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCTU3MkExMDc4MjJCNDU2RjUwMEY0MTBDOCAvKiBBdXRoS2l0U1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzdFODdCMjIyNkE0NjAzMDBBMkFGRjAgLyogQVZGb3Vu
ZGF0aW9uU29mdExpbmsuaCBpbiBIZWFkZXJzICovLApAQCAtOTUzLDYgKzk2NSw3IEBACiAJCQlm
aWxlcyA9ICgKIAkJCQkyOTNFRTRBODI0MTU0RjhGMDA0NzQ5M0QgLyogQWNjZXNzaWJpbGl0eVN1
cHBvcnRTb2Z0TGluay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0ZEMzE4QTIyQjM1OTNFMDA4
RDBFOEIgLyogQXBwU1NPU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKKwkJCQk0MTZFOTk1MzIz
REFFNkJFMDBFODcxQ0IgLyogQXVkaW9Ub29sYm94U29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDc3RTg3QjEyMjZBNDYwMjAwQTJBRkYwIC8qIEFWRm91bmRhdGlvblNvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEM1RkZGMEYxRjc4RDlEQTAwOUVGRjFBIC8qIENsb2NrQ00u
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwQ0Y5OUNBODFGNzM4NDM3MDA3RUU3OTMgLyogQ29yZU1l
ZGlhU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NjcsNiArOTgwLDcgQEAKIAkJCQk0
NEUxQThCMDIxRkE1NEVCMDBDMzA0OEUgLyogTG9va3VwU29mdExpbmsubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1QzdDNzg3NDIzQUMzRTc3MDA2NUY0N0UgLyogTWFuYWdlZENvbmZpZ3VyYXRpb25T
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBDRjk5Q0E0MUY3MzYzNzUwMDdFRTc5MyAv
KiBNZWRpYVRpbWVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDFFMUYzNDQy
NDhBNkEwMDAwMjJENURFIC8qIFZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNEQUNCMzYwMjM4NzQyNUIwMDE4RDdDRSAvKiBNZWRpYVRvb2xib3hTb2Z0TGluay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUY2M0NBMDIxQTREQkY3MDA2RkI0M0IgLyogUGFzc0tp
dFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTExNzVCNEYxRjZCMzM3MzAwQzRCOUYw
IC8qIFBvcHVwTWVudS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xY2Y1NTA1NmFj
ZGE2ZjU2NTNhZGM3ZTE3ZWMwMmEyZDgyNmU0NDdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTAsMCArMSw0
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQVZGT1VO
REFUSU9OKQorCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvQ29udmVydGVyLmg+CisjaW5j
bHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlvRm9ybWF0Lmg+CisKKyNpbmNsdWRlIDx3dGYvU29mdExp
bmtpbmcuaD4KKworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfU09VUkNFKFBBTCwgQXVkaW9Ub29s
Ym94KQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQg
aW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNp
ZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSks
IChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlE
YXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNF
KFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlck5ldywgT1NTdGF0dXMsIChjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluU291cmNlRm9ybWF0LCBjb25zdCBBdWRpb1N0
cmVhbUJhc2ljRGVzY3JpcHRpb24qIGluRGVzdGluYXRpb25Gb3JtYXQsIEF1ZGlvQ29udmVydGVy
UmVmKiBvdXRBdWRpb0NvbnZlcnRlciksIChpblNvdXJjZUZvcm1hdCwgaW5EZXN0aW5hdGlvbkZv
cm1hdCwgb3V0QXVkaW9Db252ZXJ0ZXIpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uo
UEFMLCBBdWRpb1Rvb2xib3gsIEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHksIE9TU3RhdHVzLCAo
QXVkaW9Db252ZXJ0ZXJSZWYgaW5BdWRpb0NvbnZlcnRlciwgQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0
eUlEIGluUHJvcGVydHlJRCwgVUludDMyIGluUHJvcGVydHlEYXRhU2l6ZSwgY29uc3Qgdm9pZCog
aW5Qcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpblByb3Bl
cnR5RGF0YVNpemUsIGluUHJvcGVydHlEYXRhKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFKFBBTCwgQXVkaW9Ub29sYm94LCBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5LCBPU1N0YXR1
cywgKEF1ZGlvQ29udmVydGVyUmVmIGluQXVkaW9Db252ZXJ0ZXIsIEF1ZGlvQ29udmVydGVyUHJv
cGVydHlJRCBpblByb3BlcnR5SUQsIFVJbnQzMiogaW9Qcm9wZXJ0eURhdGFTaXplLCB2b2lkKiBv
dXRQcm9wZXJ0eURhdGEpLCAoaW5BdWRpb0NvbnZlcnRlciwgaW5Qcm9wZXJ0eUlELCBpb1Byb3Bl
cnR5RGF0YVNpemUsIG91dFByb3BlcnR5RGF0YSkpCisKKyNlbmRpZiAvLyBVU0UoQVZGT1VOREFU
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hT
b2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9BdWRpb1Rvb2xib3hTb2Z0TGlu
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA3MzExODcxNzRhYzE1NTQ0MzcxZGVlMDNiMTQzMmUzZTY1NjMyZTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0F1ZGlvVG9vbGJv
eFNvZnRMaW5rLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4K
KworU09GVF9MSU5LX0ZSQU1FV09SS19GT1JfSEVBREVSKFBBTCwgQXVkaW9Ub29sYm94KQorCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29u
dmVydGVyLCBBdWRpb0NvbnZlcnRlclByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIqIGlv
UHJvcGVydHlEYXRhU2l6ZSwgdm9pZCogb3V0UHJvcGVydHlEYXRhKSwgKGluQXVkaW9Db252ZXJ0
ZXIsIGluUHJvcGVydHlJRCwgaW9Qcm9wZXJ0eURhdGFTaXplLCBvdXRQcm9wZXJ0eURhdGEpKQor
I2RlZmluZSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9B
dWRpb0NvbnZlcnRlckdldFByb3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQ
QUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJOZXcsIE9TU3RhdHVzLCAoY29uc3QgQXVk
aW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBpblNvdXJjZUZvcm1hdCwgY29uc3QgQXVkaW9TdHJl
YW1CYXNpY0Rlc2NyaXB0aW9uKiBpbkRlc3RpbmF0aW9uRm9ybWF0LCBBdWRpb0NvbnZlcnRlclJl
Ziogb3V0QXVkaW9Db252ZXJ0ZXIpLCAoaW5Tb3VyY2VGb3JtYXQsIGluRGVzdGluYXRpb25Gb3Jt
YXQsIG91dEF1ZGlvQ29udmVydGVyKSkKKyNkZWZpbmUgQXVkaW9Db252ZXJ0ZXJOZXcgc29mdExp
bmtfQXVkaW9Ub29sYm94X0F1ZGlvQ29udmVydGVyTmV3CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwgQXVkaW9Db252ZXJ0ZXJTZXRQcm9wZXJ0eSwgT1NT
dGF0dXMsIChBdWRpb0NvbnZlcnRlclJlZiBpbkF1ZGlvQ29udmVydGVyLCBBdWRpb0NvbnZlcnRl
clByb3BlcnR5SUQgaW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5Qcm9wZXJ0eURhdGFTaXplLCBjb25z
dCB2b2lkKiBpblByb3BlcnR5RGF0YSksIChpbkF1ZGlvQ29udmVydGVyLCBpblByb3BlcnR5SUQs
IGluUHJvcGVydHlEYXRhU2l6ZSwgaW5Qcm9wZXJ0eURhdGEpKQorI2RlZmluZSBBdWRpb0NvbnZl
cnRlclNldFByb3BlcnR5IHNvZnRMaW5rX0F1ZGlvVG9vbGJveF9BdWRpb0NvbnZlcnRlclNldFBy
b3BlcnR5CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIEF1ZGlvVG9vbGJveCwg
QXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSwgT1NTdGF0dXMsIChBdWRpb0Zvcm1hdFByb3BlcnR5SUQg
aW5Qcm9wZXJ0eUlELCBVSW50MzIgaW5TcGVjaWZpZXJTaXplLCBjb25zdCB2b2lkKiBpblNwZWNp
ZmllciwgVUludDMyKiBpb1Byb3BlcnR5RGF0YVNpemUsIHZvaWQqIG91dFByb3BlcnR5RGF0YSks
IChpblByb3BlcnR5SUQsIGluU3BlY2lmaWVyU2l6ZSwgaW5TcGVjaWZpZXIsIGlvUHJvcGVydHlE
YXRhU2l6ZSwgb3V0UHJvcGVydHlEYXRhKSkKKyNkZWZpbmUgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0
eSBzb2Z0TGlua19BdWRpb1Rvb2xib3hfQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eQorCisKKyNlbmRp
ZiAvLyBVU0UoQVZGT1VOREFUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9jZi9Db3JlTWVkaWFTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0Nv
cmVNZWRpYVNvZnRMaW5rLmNwcAppbmRleCAxOTY5MjkxYTgxZTI0NThkYmE3ODAzNWNlOThlZDE0
ZmM3NzU1OWYxLi45MmVhNzY4ZmZkZTE4ZWViZjE0ODY0Yzk3ZjE0OTkyNzJiMDRmOTc1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmNwcApAQCAt
NDYsNiArNDYsNyBAQCBTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09V
UkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJsb2NrQnVmZmVyQ29weURhdGFCeXRl
cywgT1NTdGF0dXMsIChDTUJsb2NrQnVmZmVyUmVmIHRoZVNvdXJjZUJ1ZmZlciwgc2l6ZV90IG9m
ZnNldFRvRGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIHZvaWQqIGRlc3RpbmF0aW9uKSwgKHRoZVNv
dXJjZUJ1ZmZlciwgb2Zmc2V0VG9EYXRhLCBkYXRhTGVuZ3RoLCBkZXN0aW5hdGlvbiksIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZm
ZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlciksIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CbG9ja0J1ZmZl
clJlcGxhY2VEYXRhQnl0ZXMsIE9TU3RhdHVzLCAoY29uc3Qgdm9pZCogc291cmNlQnl0ZXMsIENN
QmxvY2tCdWZmZXJSZWYgZGVzdGluYXRpb25CdWZmZXIsIHNpemVfdCBvZmZzZXRJbnRvRGVzdGlu
YXRpb24sIHNpemVfdCBkYXRhTGVuZ3RoKSwgKHNvdXJjZUJ5dGVzLCBkZXN0aW5hdGlvbkJ1ZmZl
ciwgb2Zmc2V0SW50b0Rlc3RpbmF0aW9uLCBkYXRhTGVuZ3RoKSwgUEFMX0VYUE9SVCkKIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUZv
cm1hdERlc2NyaXB0aW9uR2V0RXh0ZW5zaW9ucywgQ0ZEaWN0aW9uYXJ5UmVmLCAoQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBkZXNjKSwgKGRlc2MpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVy
R2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1
ZmZlckdldERhdGFCdWZmZXIsIENNQmxvY2tCdWZmZXJSZWYsIChDTVNhbXBsZUJ1ZmZlclJlZiBz
YnVmKSwgKHNidWYpLCBQQUxfRVhQT1JUKQpAQCAtMTMzLDkgKzEzNCwxMSBAQCBTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJR
dWV1ZURlcXVldWVBbgogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQo
UEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVFbnF1ZXVlLCBPU1N0YXR1cywgKENNQnVmZmVy
UXVldWVSZWYgcXVldWUsIENNQnVmZmVyUmVmIGJ1ZmZlciksIChxdWV1ZSwgYnVmZmVyKSwgUEFM
X0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSXNFbXB0eSwgQm9vbGVhbiwgKENNQnVmZmVyUXVldWVS
ZWYgcXVldWUpLCAocXVldWUpLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVHZXRCdWZmZXJD
b3VudCwgQ01JdGVtQ291bnQsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFM
X0VYUE9SVCkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwg
Q29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZm
ZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAoKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01C
dWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0
RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVl
KSwgKHF1ZXVlKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFX1dJ
VEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXJXaXRo
SW50ZWdlclRocmVzaG9sZCwgT1NTdGF0dXMsIChDTUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlLCBDTUJ1
ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIHRyaWdnZXJDYWxsYmFjaywgdm9pZCogdHJpZ2dlclJl
ZmNvbiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJDb25kaXRpb24gdHJpZ2dlckNvbmRpdGlvbiwgQ01J
dGVtQ291bnQgdHJpZ2dlclRocmVzaG9sZCwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiogdHJp
Z2dlclRva2VuT3V0KSwgKHF1ZXVlLCB0cmlnZ2VyQ2FsbGJhY2ssIHRyaWdnZXJSZWZjb24sIHRy
aWdnZXJDb25kaXRpb24sIHRyaWdnZXJUaHJlc2hvbGQsIHRyaWdnZXJUb2tlbk91dCksIFBBTF9F
WFBPUlQpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENv
cmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtFbmRPZkRhdGEsIE9TU3RhdHVzLCAoQ01CdWZmZXJR
dWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSksIFBBTF9FWFBPUlQpCiAKIFNPRlRfTElOS19DT05TVEFO
VF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVBdHRhY2ht
ZW50S2V5X0RvTm90RGlzcGxheSwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxl
QXR0YWNobWVudEtleV9Ob3RTeW5jLCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE0OSw2
ICsxNTIsOSBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUws
IENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobQogU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIGtDTVNhbXBsZUF0dGFjaG1lbnRL
ZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElO
S19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1w
bGVBdHRhY2htZW50S2V5X0lzRGVwZW5kZWRPbkJ5T3RoZXJzLCBDRlN0cmluZ1JlZiwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29y
ZU1lZGlhLCBrQ01TYW1wbGVCdWZmZXJDb25zdW1lck5vdGlmaWNhdGlvbl9CdWZmZXJDb25zdW1l
ZCwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtl
eV9FbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbiwgQ0ZTdHJpbmdSZWYsIFBBTF9FWFBPUlQpCitT
T0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwg
a0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJlZnJlc2gsIENGU3Ry
aW5nUmVmLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9F
WFBPUlQoUEFMLCBDb3JlTWVkaWEsIGdldF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNo
bWVudEtleV9UcmltRHVyYXRpb25BdFN0YXJ0LCBDRlN0cmluZ1JlZiwgUEFMX0VYUE9SVCkKIAog
U09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEs
IGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX0VmZmVjdGl2ZVJhdGVDaGFuZ2VkLCBDRlN0cmluZ1Jl
ZiwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQ29yZU1lZGlhLCBrQ01UaW1lYmFzZU5vdGlmaWNhdGlvbl9UaW1lSnVtcGVkLCBDRlN0
cmluZ1JlZiwgUEFMX0VYUE9SVCkKQEAgLTE2Myw2ICsxNjksOCBAQCBTT0ZUX0xJTktfRlVOQ1RJ
T05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRpb1NhbXBsZUJ1
ZmZlckNyZQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBD
b3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRpb0J1ZmZlckxpc3Qs
IE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgQ0ZBbGxvY2F0b3JSZWYgYmJ1ZlN0
cnVjdEFsbG9jYXRvciwgQ0ZBbGxvY2F0b3JSZWYgYmJ1Zk1lbW9yeUFsbG9jYXRvciwgdWludDMy
X3QgZmxhZ3MsIGNvbnN0IEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCksIChzYnVmLCBiYnVm
U3RydWN0QWxsb2NhdG9yLCBiYnVmTWVtb3J5QWxsb2NhdG9yLCBmbGFncywgYnVmZmVyTGlzdCks
IFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQ
QUwsIENvcmVNZWRpYSwgQ01TYW1wbGVCdWZmZXJTZXREYXRhUmVhZHksIE9TU3RhdHVzLCAoQ01T
YW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19GVU5D
VElPTl9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0
RGVzY3JpcHRpb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBj
b25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGFzYmQsIHNpemVfdCBsYXlvdXRTaXpl
LCBjb25zdCBBdWRpb0NoYW5uZWxMYXlvdXQqIGxheW91dCwgc2l6ZV90IG1hZ2ljQ29va2llU2l6
ZSwgY29uc3Qgdm9pZCogbWFnaWNDb29raWUsIENGRGljdGlvbmFyeVJlZiBleHRlbnNpb25zLCBD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYqIG91dERlc2MpLCAoYWxsb2NhdG9yLCBhc2JkLCBs
YXlvdXRTaXplLCBsYXlvdXQsIG1hZ2ljQ29va2llU2l6ZSwgbWFnaWNDb29raWUsIGV4dGVuc2lv
bnMsIG91dERlc2MpLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1h
Z2ljQ29va2llLCBjb25zdCB2b2lkKiwgKENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvblJlZiBkZXNj
LCBzaXplX3QqIHNpemVPdXQpLCAoZGVzYywgc2l6ZU91dCksIFBBTF9FWFBPUlQpCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCwgY29uc3QgQXVkaW9G
b3JtYXRMaXN0SXRlbSAqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVz
YyksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2ssIENNQ2xvY2tSZWYsICh2
b2lkKSwgKCksIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRV9XSVRI
X0VYUE9SVChQQUwsIENvcmVNZWRpYSwgQ01DbG9ja0dldFRpbWUsIENNVGltZSwgKENNQ2xvY2tS
ZWYgY2xvY2spLCAoY2xvY2spLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ2FsbEZvckVh
Y2hTYW1wbGUsIE9TU3RhdHVzLCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiwgT1NTdGF0dXMgKCog
Q01TQU1QTEVCVUZGRVJDQUxMX05PRVNDQVBFIGNhbGxiYWNrKSggQ01TYW1wbGVCdWZmZXJSZWYg
c2FtcGxlQnVmZmVyLCBDTUl0ZW1Db3VudCBpbmRleCwgdm9pZCAqcmVmY29uKSwgdm9pZCAqcmVm
Y29uKSwgKHNidWYsIGNhbGxiYWNrLCByZWZjb24pLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oCmluZGV4IDI3MWRmNjJkYzhmYWY2
ODBjZWQxYzk4NTMyZTBjOTMwNzliNzZkZGYuLjg0MjkzMzI5MjMxNGQ4MDNiMmRmMTYzOTRlMmJi
ZGI4NmFkNTc4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvQ29yZU1l
ZGlhU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL0NvcmVNZWRpYVNv
ZnRMaW5rLmgKQEAgLTQ5LDYgKzQ5LDggQEAgU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIo
UEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzLCBPU1N0YXQKICNkZWZp
bmUgQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMgc29mdExpbmtfQ29yZU1lZGlhX0NNQmxvY2tC
dWZmZXJDb3B5RGF0YUJ5dGVzCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENv
cmVNZWRpYSwgQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgsIHNpemVfdCwgKENNQmxvY2tCdWZm
ZXJSZWYgdGhlQnVmZmVyKSwgKHRoZUJ1ZmZlcikpCiAjZGVmaW5lIENNQmxvY2tCdWZmZXJHZXRE
YXRhTGVuZ3RoIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyR2V0RGF0YUxlbmd0aAor
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJSZXBsYWNlRGF0YUJ5dGVzLCBPU1N0YXR1cywgKGNvbnN0IHZvaWQqIHNvdXJjZUJ5dGVzLCBD
TUJsb2NrQnVmZmVyUmVmIGRlc3RpbmF0aW9uQnVmZmVyLCBzaXplX3Qgb2Zmc2V0SW50b0Rlc3Rp
bmF0aW9uLCBzaXplX3QgZGF0YUxlbmd0aCksIChzb3VyY2VCeXRlcywgZGVzdGluYXRpb25CdWZm
ZXIsIG9mZnNldEludG9EZXN0aW5hdGlvbiwgZGF0YUxlbmd0aCkpCisjZGVmaW5lIENNQmxvY2tC
dWZmZXJSZXBsYWNlRGF0YUJ5dGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJsb2NrQnVmZmVyUmVw
bGFjZURhdGFCeXRlcwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVk
aWEsIENNRm9ybWF0RGVzY3JpcHRpb25HZXRFeHRlbnNpb25zLCBDRkRpY3Rpb25hcnlSZWYsIChD
TUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc2MpLCAoZGVzYykpCiAjZGVmaW5lIENNRm9ybWF0RGVz
Y3JpcHRpb25HZXRFeHRlbnNpb25zIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUZvcm1hdERlc2NyaXB0
aW9uR2V0RXh0ZW5zaW9ucwogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0VHlwZUlELCBDRlR5cGVJRCwgKHZvaWQpLCAoKSkKQEAg
LTIyNSwxMCArMjI3LDE0IEBAIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29y
ZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0QnVmZmVyQ291bnQsIENNSXRlCiAjZGVmaW5lIENNQnVm
ZmVyUXVldWVHZXRCdWZmZXJDb3VudCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdl
dEJ1ZmZlckNvdW50CiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRp
YSwgQ01CdWZmZXJRdWV1ZUdldEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChD
TUJ1ZmZlclF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdl
dEZpcnN0UHJlc2VudGF0aW9uVGltZVN0YW1wIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1ZmZlclF1
ZXVlR2V0Rmlyc3RQcmVzZW50YXRpb25UaW1lU3RhbXAKK1NPRlRfTElOS19GVU5DVElPTl9GT1Jf
SEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0
ZWRTYW1wbGVCdWZmZXJzLCBjb25zdCBDTUJ1ZmZlckNhbGxiYWNrcyAqLCAoKSwgKCkpCisjZGVm
aW5lIENNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBsZUJ1ZmZlcnMgc29m
dExpbmtfQ29yZU1lZGlhX0NNQnVmZmVyUXVldWVHZXRDYWxsYmFja3NGb3JVbnNvcnRlZFNhbXBs
ZUJ1ZmZlcnMKIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBD
TUJ1ZmZlclF1ZXVlR2V0RW5kUHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUsIChDTUJ1ZmZl
clF1ZXVlUmVmIHF1ZXVlKSwgKHF1ZXVlKSkKICNkZWZpbmUgQ01CdWZmZXJRdWV1ZUdldEVuZFBy
ZXNlbnRhdGlvblRpbWVTdGFtcCBzb2Z0TGlua19Db3JlTWVkaWFfQ01CdWZmZXJRdWV1ZUdldEVu
ZFByZXNlbnRhdGlvblRpbWVTdGFtcAogU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFM
LCBDb3JlTWVkaWEsIENNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNo
b2xkLCBPU1N0YXR1cywgKENNQnVmZmVyUXVldWVSZWYgcXVldWUsIENNQnVmZmVyUXVldWVUcmln
Z2VyQ2FsbGJhY2sgdHJpZ2dlckNhbGxiYWNrLCB2b2lkKiB0cmlnZ2VyUmVmY29uLCBDTUJ1ZmZl
clF1ZXVlVHJpZ2dlckNvbmRpdGlvbiB0cmlnZ2VyQ29uZGl0aW9uLCBDTUl0ZW1Db3VudCB0cmln
Z2VyVGhyZXNob2xkLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRva2VuKiB0cmlnZ2VyVG9rZW5PdXQp
LCAocXVldWUsIHRyaWdnZXJDYWxsYmFjaywgdHJpZ2dlclJlZmNvbiwgdHJpZ2dlckNvbmRpdGlv
biwgdHJpZ2dlclRocmVzaG9sZCwgdHJpZ2dlclRva2VuT3V0KSkKICNkZWZpbmUgQ01CdWZmZXJR
dWV1ZUluc3RhbGxUcmlnZ2VyV2l0aEludGVnZXJUaHJlc2hvbGQgc29mdExpbmtfQ29yZU1lZGlh
X0NNQnVmZmVyUXVldWVJbnN0YWxsVHJpZ2dlcldpdGhJbnRlZ2VyVGhyZXNob2xkCitTT0ZUX0xJ
TktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01CdWZmZXJRdWV1ZU1hcmtF
bmRPZkRhdGEsIE9TU3RhdHVzLCAoQ01CdWZmZXJRdWV1ZVJlZiBxdWV1ZSksIChxdWV1ZSkpCisj
ZGVmaW5lIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIHNvZnRMaW5rX0NvcmVNZWRpYV9DTUJ1
ZmZlclF1ZXVlTWFya0VuZE9mRGF0YQogCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQXR0YWNobWVudEtleV9Eb05vdERpc3BsYXksIENGU3Ry
aW5nUmVmKQogI2RlZmluZSBrQ01TYW1wbGVBdHRhY2htZW50S2V5X0RvTm90RGlzcGxheSBnZXRf
Q29yZU1lZGlhX2tDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRG9Ob3REaXNwbGF5KCkKQEAgLTI1OCw2
ICsyNjQsMTUgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEs
IGtDTVRpbWViYXNlTm90aWZpY2F0aW9uX1RpbWVKdW1wZWQKICNkZWZpbmUga0NNVGltZWJhc2VO
b3RpZmljYXRpb25fVGltZUp1bXBlZCBnZXRfQ29yZU1lZGlhX2tDTVRpbWViYXNlTm90aWZpY2F0
aW9uX1RpbWVKdW1wZWQoKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3Jl
TWVkaWEsIGtDTVNhbXBsZUJ1ZmZlckNvbnN1bWVyTm90aWZpY2F0aW9uX0J1ZmZlckNvbnN1bWVk
LCBDRlN0cmluZ1JlZikKICNkZWZpbmUga0NNU2FtcGxlQnVmZmVyQ29uc3VtZXJOb3RpZmljYXRp
b25fQnVmZmVyQ29uc3VtZWQgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJDb25zdW1lck5v
dGlmaWNhdGlvbl9CdWZmZXJDb25zdW1lZCgpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIENvcmVNZWRpYSwga0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9FbmRzUHJldmlv
dXNTYW1wbGVEdXJhdGlvbiwgQ0ZTdHJpbmdSZWYpCisjZGVmaW5lIGtDTVNhbXBsZUJ1ZmZlckF0
dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24gZ2V0X0NvcmVNZWRpYV9rQ01T
YW1wbGVCdWZmZXJBdHRhY2htZW50S2V5X0VuZHNQcmV2aW91c1NhbXBsZUR1cmF0aW9uKCkKK1NP
RlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBrQ01TYW1wbGVCdWZm
ZXJBdHRhY2htZW50S2V5X0dyYWR1YWxEZWNvZGVyUmVmcmVzaCwgQ0ZTdHJpbmdSZWYpCisjZGVm
aW5lIGtDTVNhbXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfR3JhZHVhbERlY29kZXJSZWZyZXNoIGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9HcmFkdWFsRGVjb2RlclJl
ZnJlc2goKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIGdl
dF9Db3JlTWVkaWFfa0NNU2FtcGxlQnVmZmVyQXR0YWNobWVudEtleV9UcmltRHVyYXRpb25BdFN0
YXJ0LCBDRlN0cmluZ1JlZikKKyNkZWZpbmUgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVCdWZmZXJB
dHRhY2htZW50S2V5X1RyaW1EdXJhdGlvbkF0U3RhcnQgZ2V0X0NvcmVNZWRpYV9rQ01TYW1wbGVC
dWZmZXJBdHRhY2htZW50S2V5X1RyaW1EdXJhdGlvbkF0U3RhcnQoKQorCitTT0ZUX0xJTktfRlVO
Q1RJT05fRk9SX0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0TWFnaWNDb29raWUsIGNvbnN0IHZvaWQqLCAoQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uUmVm
IGRlc2MsIHNpemVfdCogc2l6ZU91dCksIChkZXNjLCBzaXplT3V0KSkKKyNkZWZpbmUgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0TWFnaWNDb29raWUgc29mdExpbmtfQ29yZU1lZGlhX0NNQXVk
aW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llCiBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X0hFQURFUihQQUwsIENvcmVNZWRpYSwgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFt
QmFzaWNEZXNjcmlwdGlvbiwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uICosIChD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25SZWYgZGVzYyksIChkZXNjKSkKICNkZWZpbmUgQ01BdWRp
b0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBzb2Z0TGlua19Db3Jl
TWVkaWFfQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbgog
U09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNQmxvY2tCdWZm
ZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2ssIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgc3RydWN0
dXJlQWxsb2NhdG9yLCB2b2lkKiBtZW1vcnlCbG9jaywgc2l6ZV90IGJsb2NrTGVuZ3RoLCBDRkFs
bG9jYXRvclJlZiBibG9ja0FsbG9jYXRvciwgY29uc3QgQ01CbG9ja0J1ZmZlckN1c3RvbUJsb2Nr
U291cmNlKiBjdXN0b21CbG9ja1NvdXJjZSwgc2l6ZV90IG9mZnNldFRvRGF0YSwgc2l6ZV90IGRh
dGFMZW5ndGgsIENNQmxvY2tCdWZmZXJGbGFncyBmbGFncywgQ01CbG9ja0J1ZmZlclJlZiogYmxv
Y2tCdWZmZXJPdXQpLCAoc3RydWN0dXJlQWxsb2NhdG9yLCBtZW1vcnlCbG9jaywgYmxvY2tMZW5n
dGgsIGJsb2NrQWxsb2NhdG9yLCBjdXN0b21CbG9ja1NvdXJjZSwgb2Zmc2V0VG9EYXRhLCBkYXRh
TGVuZ3RoLCBmbGFncywgYmxvY2tCdWZmZXJPdXQpKQpAQCAtMjY2LDYgKzI4MSw4IEBAIFNPRlRf
TElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdl
dEF1ZGlvQnVmZmVyTGlzdFdpCiAjZGVmaW5lIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJM
aXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgc29mdExpbmtfQ29yZU1lZGlhX0NNU2FtcGxlQnVm
ZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIKIFNPRlRfTElOS19G
VU5DVElPTl9GT1JfSEVBREVSKFBBTCwgQ29yZU1lZGlhLCBDTVNhbXBsZUJ1ZmZlckdldE51bVNh
bXBsZXMsIENNSXRlbUNvdW50LCAoQ01TYW1wbGVCdWZmZXJSZWYgc2J1ZiksIChzYnVmKSkKICNk
ZWZpbmUgQ01TYW1wbGVCdWZmZXJHZXROdW1TYW1wbGVzIHNvZnRMaW5rX0NvcmVNZWRpYV9DTVNh
bXBsZUJ1ZmZlckdldE51bVNhbXBsZXMKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBB
TCwgQ29yZU1lZGlhLCBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2RhYmxl
Rm9ybWF0LCBjb25zdCBBdWRpb0Zvcm1hdExpc3RJdGVtICosIChDTUF1ZGlvRm9ybWF0RGVzY3Jp
cHRpb25SZWYgZGVzYyksIChkZXNjKSkKKyNkZWZpbmUgQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9u
R2V0UmljaGVzdERlY29kYWJsZUZvcm1hdCBzb2Z0TGlua19Db3JlTWVkaWFfQ01BdWRpb0Zvcm1h
dERlc2NyaXB0aW9uR2V0UmljaGVzdERlY29kYWJsZUZvcm1hdAogU09GVF9MSU5LX0ZVTkNUSU9O
X0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZl
ckZvclJhbmdlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvciwgQ01TYW1wbGVC
dWZmZXJSZWYgc2J1ZiwgQ0ZSYW5nZSBzYW1wbGVSYW5nZSwgQ01TYW1wbGVCdWZmZXJSZWYqIHNC
dWZPdXQpLCAoYWxsb2NhdG9yLCBzYnVmLCBzYW1wbGVSYW5nZSwgc0J1Zk91dCkpCiAjZGVmaW5l
IENNU2FtcGxlQnVmZmVyQ29weVNhbXBsZUJ1ZmZlckZvclJhbmdlIHNvZnRMaW5rX0NvcmVNZWRp
YV9DTVNhbXBsZUJ1ZmZlckNvcHlTYW1wbGVCdWZmZXJGb3JSYW5nZQogU09GVF9MSU5LX0ZVTkNU
SU9OX0ZPUl9IRUFERVIoUEFMLCBDb3JlTWVkaWEsIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxlU2l6
ZUFycmF5LCBPU1N0YXR1cywgKENNU2FtcGxlQnVmZmVyUmVmIHNidWYsIENNSXRlbUNvdW50IHNp
emVBcnJheUVudHJpZXMsIHNpemVfdCogc2l6ZUFycmF5T3V0LCBDTUl0ZW1Db3VudCogc2l6ZUFy
cmF5RW50cmllc05lZWRlZE91dCksIChzYnVmLCBzaXplQXJyYXlFbnRyaWVzLCBzaXplQXJyYXlP
dXQsIHNpemVBcnJheUVudHJpZXNOZWVkZWRPdXQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5rLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZGJhMzc2MTc3
YTBmZTc4MGUyMWUzNzczYjA4NmFjMmE1YjE5MTMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jZi9WaWRlb1Rvb2xib3hTb2Z0TGluay5jcHAKQEAgLTAsMCArMSw0
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBVU0UoQVZGT1VO
REFUSU9OKQorCisjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVlRDb21wcmVzc2lvblNlc3Npb24uaD4K
KworI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZP
Ul9TT1VSQ0UoUEFMLCBWaWRlb1Rvb2xib3gpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09V
UkNFKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVk
RnJhbWVSYXRlLCBDRlN0cmluZ1JlZikKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBB
TCwgVmlkZW9Ub29sYm94LCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZyYW1lSW50
ZXJ2YWxEdXJhdGlvbiwgQ0ZTdHJpbmdSZWYpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJD
RShQQUwsIFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwg
Q0ZTdHJpbmdSZWYpCisKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfU09VUkNFKFBBTCwgVmlkZW9U
b29sYm94LCBrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxl
cmF0ZWRWaWRlb0VuY29kZXIsIENGU3RyaW5nUmVmKQorCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9T
U3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yLCBpbnQzMl90IHdpZHRoLCBpbnQzMl90
IGhlaWdodCwgQ01WaWRlb0NvZGVjVHlwZSBjb2RlY1R5cGUsIENGRGljdGlvbmFyeVJlZiBlbmNv
ZGVyU3BlY2lmaWNhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIHNvdXJjZUltYWdlQnVmZmVyQXR0cmli
dXRlcywgQ0ZBbGxvY2F0b3JSZWYgY29tcHJlc3NlZERhdGFBbGxvY2F0b3IsIFZUQ29tcHJlc3Np
b25PdXRwdXRDYWxsYmFjayBvdXRwdXRDYWxsYmFjaywgdm9pZCogb3V0cHV0Q2FsbGJhY2tSZWZD
b24sIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBjb21wcmVzc2lvblNlc3Npb25PdXQpLCAoYWxs
b2NhdG9yLCB3aWR0aCwgaGVpZ2h0LCBjb2RlY1R5cGUsIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBz
b3VyY2VJbWFnZUJ1ZmZlckF0dHJpYnV0ZXMsIGNvbXByZXNzZWREYXRhQWxsb2NhdG9yLCBvdXRw
dXRDYWxsYmFjaywgb3V0cHV0Q2FsbGJhY2tSZWZDb24sIGNvbXByZXNzaW9uU2Vzc2lvbk91dCkp
CitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21w
cmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vz
c2lvblJlZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFt
cCksIChzZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKK1NPRlRf
TElOS19GVU5DVElPTl9GT1JfU09VUkNFKFBBTCwgVmlkZW9Ub29sYm94LCBWVENvbXByZXNzaW9u
U2Vzc2lvbkVuY29kZUZyYW1lLCBPU1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNl
c3Npb24sIENWSW1hZ2VCdWZmZXJSZWYgaW1hZ2VCdWZmZXIsIENNVGltZSBwcmVzZW50YXRpb25U
aW1lU3RhbXAsIENNVGltZSBkdXJhdGlvbiwgQ0ZEaWN0aW9uYXJ5UmVmIGZyYW1lUHJvcGVydGll
cywgdm9pZCogc291cmNlRnJhbWVSZWZjb24sIFZURW5jb2RlSW5mb0ZsYWdzKiBpbmZvRmxhZ3NP
dXQpLCAoc2Vzc2lvbiwgaW1hZ2VCdWZmZXIsIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgZHVyYXRp
b24sIGZyYW1lUHJvcGVydGllcywgc291cmNlRnJhbWVSZWZjb24sIGluZm9GbGFnc091dCkpCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRShQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVz
c2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFtZXMsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lv
blNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9uKSkKKworI2VuZGlmIC8vIFVTRShBVkZPVU5E
QVRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJv
eFNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRM
aW5rLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZGE5ZmU1MWUwZmYxNWNmMjNkYWQ5ODA4OWMyNTk2YWRmMTkwYWQ0
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY2YvVmlkZW9Ub29s
Ym94U29mdExpbmsuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgVVNFKEFWRk9VTkRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5o
PgorCitTT0ZUX0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gpCisK
K1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBrVlRDb21w
cmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCBDRlN0cmluZ1JlZikKKyNkZWZp
bmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9FeHBlY3RlZEZyYW1lUmF0ZSBnZXRfVmlkZW9U
b29sYm94X2tWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfRXhwZWN0ZWRGcmFtZVJhdGUoKQorU09G
VF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVENvbXByZXNz
aW9uUHJvcGVydHlLZXlfTWF4S2V5RnJhbWVJbnRlcnZhbER1cmF0aW9uLCBDRlN0cmluZ1JlZikK
KyNkZWZpbmUga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVy
YXRpb24gZ2V0X1ZpZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01heEtleUZy
YW1lSW50ZXJ2YWxEdXJhdGlvbigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUws
IFZpZGVvVG9vbGJveCwga1ZUQ29tcHJlc3Npb25Qcm9wZXJ0eUtleV9SZWFsVGltZSwgQ0ZTdHJp
bmdSZWYpCisjZGVmaW5lIGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUgZ2V0X1Zp
ZGVvVG9vbGJveF9rVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lKCkKKworU09GVF9M
SU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIGtWVFZpZGVvRW5jb2Rl
clNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciwgQ0ZT
dHJpbmdSZWYpCisjZGVmaW5lIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFy
ZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2RlciBnZXRfVmlkZW9Ub29sYm94X2tWVFZpZGVvRW5j
b2RlclNwZWNpZmljYXRpb25fRW5hYmxlSGFyZHdhcmVBY2NlbGVyYXRlZFZpZGVvRW5jb2Rlcigp
CisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKFBBTCwgVmlkZW9Ub29sYm94LCBWVENv
bXByZXNzaW9uU2Vzc2lvbkNyZWF0ZSwgT1NTdGF0dXMsIChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3IsIGludDMyX3Qgd2lkdGgsIGludDMyX3QgaGVpZ2h0LCBDTVZpZGVvQ29kZWNUeXBlIGNvZGVj
VHlwZSwgQ0ZEaWN0aW9uYXJ5UmVmIGVuY29kZXJTcGVjaWZpY2F0aW9uLCBDRkRpY3Rpb25hcnlS
ZWYgc291cmNlSW1hZ2VCdWZmZXJBdHRyaWJ1dGVzLCBDRkFsbG9jYXRvclJlZiBjb21wcmVzc2Vk
RGF0YUFsbG9jYXRvciwgVlRDb21wcmVzc2lvbk91dHB1dENhbGxiYWNrIG91dHB1dENhbGxiYWNr
LCB2b2lkKiBvdXRwdXRDYWxsYmFja1JlZkNvbiwgVlRDb21wcmVzc2lvblNlc3Npb25SZWYqIGNv
bXByZXNzaW9uU2Vzc2lvbk91dCksIChhbGxvY2F0b3IsIHdpZHRoLCBoZWlnaHQsIGNvZGVjVHlw
ZSwgZW5jb2RlclNwZWNpZmljYXRpb24sIHNvdXJjZUltYWdlQnVmZmVyQXR0cmlidXRlcywgY29t
cHJlc3NlZERhdGFBbGxvY2F0b3IsIG91dHB1dENhbGxiYWNrLCBvdXRwdXRDYWxsYmFja1JlZkNv
biwgY29tcHJlc3Npb25TZXNzaW9uT3V0KSkKKyNkZWZpbmUgVlRDb21wcmVzc2lvblNlc3Npb25D
cmVhdGUgc29mdExpbmtfVmlkZW9Ub29sYm94X1ZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlCitT
T0ZUX0xJTktfRlVOQ1RJT05fRk9SX0hFQURFUihQQUwsIFZpZGVvVG9vbGJveCwgVlRDb21wcmVz
c2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcywgT1NTdGF0dXMsIChWVENvbXByZXNzaW9uU2Vzc2lv
blJlZiBzZXNzaW9uLCBDTVRpbWUgY29tcGxldGVVbnRpbFByZXNlbnRhdGlvblRpbWVTdGFtcCks
IChzZXNzaW9uLCBjb21wbGV0ZVVudGlsUHJlc2VudGF0aW9uVGltZVN0YW1wKSkKKyNkZWZpbmUg
VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyBzb2Z0TGlua19WaWRlb1Rvb2xib3hf
VlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcworU09GVF9MSU5LX0ZVTkNUSU9OX0ZP
Ul9IRUFERVIoUEFMLCBWaWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJh
bWUsIE9TU3RhdHVzLCAoVlRDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZJbWFnZUJ1
ZmZlclJlZiBpbWFnZUJ1ZmZlciwgQ01UaW1lIHByZXNlbnRhdGlvblRpbWVTdGFtcCwgQ01UaW1l
IGR1cmF0aW9uLCBDRkRpY3Rpb25hcnlSZWYgZnJhbWVQcm9wZXJ0aWVzLCB2b2lkKiBzb3VyY2VG
cmFtZVJlZmNvbiwgVlRFbmNvZGVJbmZvRmxhZ3MqIGluZm9GbGFnc091dCksIChzZXNzaW9uLCBp
bWFnZUJ1ZmZlciwgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBkdXJhdGlvbiwgZnJhbWVQcm9wZXJ0
aWVzLCBzb3VyY2VGcmFtZVJlZmNvbiwgaW5mb0ZsYWdzT3V0KSkKKyNkZWZpbmUgVlRDb21wcmVz
c2lvblNlc3Npb25FbmNvZGVGcmFtZSBzb2Z0TGlua19WaWRlb1Rvb2xib3hfVlRDb21wcmVzc2lv
blNlc3Npb25FbmNvZGVGcmFtZQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFERVIoUEFMLCBW
aWRlb1Rvb2xib3gsIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzLCBP
U1N0YXR1cywgKFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCisj
ZGVmaW5lIFZUQ29tcHJlc3Npb25TZXNzaW9uUHJlcGFyZVRvRW5jb2RlRnJhbWVzIHNvZnRMaW5r
X1ZpZGVvVG9vbGJveF9WVENvbXByZXNzaW9uU2Vzc2lvblByZXBhcmVUb0VuY29kZUZyYW1lcwor
CisjZW5kaWYgLy8gVVNFKEFWRk9VTkRBVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4
IGM0MzQ3ZTA5N2Y1YjAzNTFhYWFkYWMyNTY3YTgyZDI5NGRlZjgwYTUuLjJkODBmNDNlNDc4OWJk
N2RhZmViMzAwM2E3YTU3OTM3ODFjMmQ2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAt
NDkyLDcgKzQ5Miw5IEBAIHBsYXRmb3JtL21hYy9XZWJQbGF5YmFja0NvbnRyb2xzTWFuYWdlci5t
bQogcGxhdGZvcm0vbWFjL1dpZGdldE1hYy5tbQogCiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5jcHAKK3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCiBwbGF0Zm9ybS9tZWRpYXJlY29yZGVy
L2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0KK3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCiAKIHBsYXRmb3Jt
L21lZGlhc2Vzc2lvbi9tYWMvTWVkaWFTZXNzaW9uSW50ZXJydXB0aW9uUHJvdmlkZXJNYWMubW0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDE1OGE1MDQyMDg5NjIzMWY1MmVhNmU5ZDc0OTQ3ZTA4MzYwYjkxMzQuLjdlODE4NmMw
OWEwMzNhMDg4MjhiOTFkOWFlNjI2ZGQ4NzU2OGYyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc1ODcsNiArNzU4Nyw4IEBA
CiAJCTQxQzdFMTA1MUU2QTU0MzYwMDI3QjRERSAvKiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1U
cmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNDYXB0
dXJlTWVkaWFTdHJlYW1UcmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
QzdFMTA2MUU2QTU0MzYwMDI3QjRERSAvKiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYW52YXNDYXB0dXJlTWVkaWFTdHJl
YW1UcmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUM3RTEwODFFNkFBMzdD
MDAyN0I0REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFDRDZGODkyM0Q2RTgxQzAwQjE2NDIxIC8qIFZpZGVvU2Ft
cGxlQnVmZmVyQ29tcHJlc3Nvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFDRDZGOEIyM0Q2RTgxRDAwQjE2NDIxIC8qIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFDRjhC
RTQxRDQ2MjIyMDAwNzA3REM5IC8qIEZldGNoQm9keUNvbnN1bWVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZldGNoQm9keUNvbnN1bWVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFDRjhCRTUxRDQ2MjIyMDAwNzA3REM5IC8qIEZldGNoQm9k
eUNvbnN1bWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZldGNoQm9keUNv
bnN1bWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRDAxNUM4MEY0QjVDNzEw
MDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb250ZW50VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzYxNSw2ICs3
NjE3LDggQEAKIAkJNDFFMUIxQ0EwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFic3RyYWN0V29ya2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMUIxQ0IwRkY1OTg2OTAwNTc2QjNC
IC8qIEFic3RyYWN0V29ya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFi
c3RyYWN0V29ya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTFCMUNDMEZG
NTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQWJzdHJhY3RXb3JrZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUx
RjMzRDI0OEE2MkI2MDAyMkQ1REUgLyogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJD
b21wcmVzc29yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUxRjMzRjI0OEE2
MkI2MDAyMkQ1REUgLyogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUU0MDgzODFEQ0I3NDc5MDBFRkNFMTkgLyogUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQxRTU5M0ZEMjE0ODY1QTkwMEQzQ0I2MSAvKiBSVENQcmlvcml0eVR5cGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ1ByaW9yaXR5VHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTU5
M0ZGMjE0ODY1QUEwMEQzQ0I2MSAvKiBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFJUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xOTM1Niw4ICsxOTM2MCwxMiBAQAogCQk0RDNDMDVENDIxQUY0ODA5MDBGMjg5MEEgLyog
Y29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQx
RTFGMzNGMjQ4QTYyQjYwMDIyRDVERSAvKiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCAq
LywKKwkJCQk0MUUxRjMzRDI0OEE2MkI2MDAyMkQ1REUgLyogQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yLm1tICovLAogCQkJCTRENzNGOTRDMjE4QzRBODcwMDNBM0VENiAvKiBNZWRpYVJlY29y
ZGVyUHJpdmF0ZVdyaXRlckNvY29hLmggKi8sCiAJCQkJNEQ3M0Y5NEQyMThDNEE4NzAwM0EzRUQ2
IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gKi8sCisJCQkJNDFDRDZGODky
M0Q2RTgxQzAwQjE2NDIxIC8qIFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oICovLAorCQkJ
CTQxQ0Q2RjhCMjNENkU4MUQwMEIxNjQyMSAvKiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
bW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTM0MzEyLDcgKzM0MzIwLDYgQEAKIAkJCQlDMUY3QjczMTI0NDhGMkFDMDAxMjQ1NTcg
LyogQUdYQ29tcGlsZXJTZXJ2aWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMEVFRTBFMTQ3
NDNGMzkwMDNFQUZBMiAvKiBBdWRpb0Rlc3RpbmF0aW9uSU9TLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNENTU5NjkxMTQ3NUI2NzgwMDFEMEJEMCAvKiBBdWRpb0ZpbGVSZWFkZXJJT1MuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNDFFMUYzNDMyNDhBNjlENDAwMjJENURFIC8qIEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEQTc5ODI3MTcwQTI3OTEw
MEQ0NUM1NSAvKiBBdWRpb1Nlc3Npb25JT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDhBN0JC
QjE5NzczNUZFMDBDQkQ2NDMgLyogQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDREUzQTg1NzE3RjYwMjA0MDBDNUJFMjAgLyogQXVkaW9UcmFja1ByaXZh
dGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0zNTAyOSw3ICszNTAzNiw2IEBACiAJCQkJ
N0M3M0ZCMDcxOTFFRjQxNzAwN0RFMDYxIC8qIFVzZXJNZXNzYWdlSGFuZGxlcnNOYW1lc3BhY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZCQzRBRjMxODk4ODE1NjAwNDZFRTM4IC8qIFZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTJENUExOEYx
QzU0NTkyMzAwREUzNEEzIC8qIFZpZGVvTGF5ZXJNYW5hZ2VyT2JqQy5tbSBpbiBTb3VyY2VzICov
LAotCQkJCTQxRTFGMzQyMjQ4QTY5RDAwMDIyRDVERSAvKiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMzNkY2NzE3RkEwQUM2MDBERERDRDAgLyog
VmlkZW9UcmFja1ByaXZhdGVBVkZPYmpDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEOEI1QTQy
MTgwRDE0OUEwMDhCOEU2NSAvKiBWaWRlb1RyYWNrUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTI2RjlBODM4MThBMDQ2QUMwMEFFQjg4QSAvKiBWaWV3cG9y
dENvbmZpZ3VyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXJQ
cml2YXRlQVZGSW1wbC5jcHAKaW5kZXggMmM5ZTljOGVmYTRmM2I0MjQwYWZlYmZlYTBhZTIwNmU4
NmNlZDNkZC4uYzEyODRiMDBjNmNjNjk5NGE5ZTU1Mjc1YzAxNGYyODI5ZDM5MDg5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
UHJpdmF0ZUFWRkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmNwcApAQCAtMjYsOSArMjYsMTAgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRklt
cGwuaCIKIAotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAKICNpbmNsdWRlICJBdWRpb1N0cmVh
bURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2Nv
YS5oIgogI2luY2x1ZGUgIk1lZGlhU2FtcGxlLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC0xMTIsNCArMTEzLDQgQEAgY29u
c3QgU3RyaW5nJiBNZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGw6Om1pbWVUeXBlKCkKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FU
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL01lZGlhUmVjb3JkZXJQcml2YXRlQVZGSW1wbC5oCmluZGV4IGJkNmY3NTg4Mjhk
MjIwMzY0YjVkYTA5ZTcxODY4YjE3NThmMmExMWEuLjcyNmVlYjUwOTVmMzdhOTk1MjIyZjBhZWYx
YWE4ODQyYTljZGQ1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvTWVkaWFSZWNvcmRlclByaXZhdGVBVkZJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyUHJpdmF0ZUFWRkltcGwuaApA
QCAtMjQsNyArMjQsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdB
VEUpCiAKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIk1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EuaCIKQEAgLTYwLDQgKzYwLDQgQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJE
RUxFR0FURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3Jk
ZXIvY29jb2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE0N2JmODFlMWQ0NTZjNzBjMmQ5NDRmNzA0NWE4ZTE2ZTA1OWJjZjkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2Nv
Y29hL0F1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQorCisjaW1wb3J0IDxDb3JlTWVkaWEvQ29yZU1lZGlhLmg+CisKK3R5cGVk
ZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKK3R5cGVk
ZWYgc3RydWN0IE9wYXF1ZUF1ZGlvQ29udmVydGVyKiBBdWRpb0NvbnZlcnRlclJlZjsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBjcmVhdGUoQ01CdWZmZXJRdWV1
ZVRyaWdnZXJDYWxsYmFjaywgdm9pZCogY2FsbGJhY2tPYmplY3QpOworICAgIH5BdWRpb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3IoKTsKKworICAgIHZvaWQgZmluaXNoKCk7CisgICAgdm9pZCBhZGRT
YW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYpOworICAgIENNU2FtcGxlQnVmZmVyUmVmIGdl
dE91dHB1dFNhbXBsZUJ1ZmZlcigpOworICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcigpOworCitwcml2YXRlOgorICAgIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3NvcigpOworICAgIGJvb2wgaW5pdGlhbGl6ZShDTUJ1ZmZlclF1ZXVlVHJpZ2dl
ckNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVjdCk7CisKKyAgICBzdGF0aWMgT1NTdGF0dXMg
YXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYyhBdWRpb0NvbnZlcnRlclJlZiwgVUlu
dDMyKiwgQXVkaW9CdWZmZXJMaXN0KiwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbioqLCB2
b2lkKik7CisKKyAgICB2b2lkIHByb2Nlc3NTYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYp
OworICAgIGJvb2wgaW5pdEF1ZGlvQ29udmVydGVyRm9yU291cmNlRm9ybWF0RGVzY3JpcHRpb24o
Q01Gb3JtYXREZXNjcmlwdGlvblJlZiwgQXVkaW9Gb3JtYXRJRCk7CisgICAgc2l6ZV90IGNvbXB1
dGVCdWZmZXJTaXplRm9yQXVkaW9Gb3JtYXQoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uLCBV
SW50MzIsIEZsb2F0MzIpOworICAgIHZvaWQgYXR0YWNoUHJpbWluZ1RyaW1zSWZOZWVkZWQoQ01T
YW1wbGVCdWZmZXJSZWYpOworICAgIFJldGFpblB0cjxOU051bWJlcj4gZ3JhZHVhbERlY29kZXJS
ZWZyZXNoQ291bnQoKTsKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyhVSW50MzIgbnVtUGFja2V0cywgQXVkaW9CdWZmZXJMaXN0KTsKKyAgICB2b2lkIHBy
b2Nlc3NTYW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lKTsKKyAgICBPU1N0YXR1
cyBwcm92aWRlU291cmNlRGF0YU51bU91dHB1dFBhY2tldHMoVUludDMyKiwgQXVkaW9CdWZmZXJM
aXN0KiwgQXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbioqKTsKKworICAgIFJldGFpblB0cjxD
TUJ1ZmZlclF1ZXVlUmVmPiBtX291dHB1dEJ1ZmZlclF1ZXVlOworICAgIFJldGFpblB0cjxDTUJ1
ZmZlclF1ZXVlUmVmPiBtX2lucHV0QnVmZmVyUXVldWU7CisgICAgZGlzcGF0Y2hfcXVldWVfdCBt
X3NlcmlhbERpc3BhdGNoUXVldWU7CisgICAgQ01UaW1lIG1fbG93V2F0ZXJUaW1lOworICAgIGJv
b2wgbV9pc0VuY29kaW5nIHsgZmFsc2UgfTsKKworICAgIFJldGFpblB0cjxBdWRpb0NvbnZlcnRl
clJlZj4gbV9jb252ZXJ0ZXI7CisgICAgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uIG1fc291
cmNlRm9ybWF0OworICAgIEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiBtX2Rlc3RpbmF0aW9u
Rm9ybWF0OworICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9uUmVmPiBtX2Rlc3RpbmF0
aW9uRm9ybWF0RGVzY3JpcHRpb247CisgICAgUmV0YWluUHRyPE5TTnVtYmVyPiBtX2dkckNvdW50
TnVtOworICAgIFVJbnQzMiBtX21heE91dHB1dFBhY2tldFNpemU7CisgICAgVmVjdG9yPEF1ZGlv
U3RyZWFtUGFja2V0RGVzY3JpcHRpb24+IG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnM7
CisKKyAgICBDTVRpbWUgbV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9uVGltZVN0YW1wOworICAg
IENNVGltZSBtX2N1cnJlbnRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXA7CisgICAgQ01UaW1l
IG1fcmVtYWluaW5nUHJpbWVEdXJhdGlvbjsKKworICAgIFZlY3RvcjxjaGFyPiBtX3NvdXJjZUJ1
ZmZlcjsKKyAgICBWZWN0b3I8Y2hhcj4gbV9kZXN0aW5hdGlvbkJ1ZmZlcjsKKworICAgIFJldGFp
blB0cjxDTUJsb2NrQnVmZmVyUmVmPiBtX3NhbXBsZUJsb2NrQnVmZmVyOworICAgIHNpemVfdCBt
X3NhbXBsZUJsb2NrQnVmZmVyU2l6ZTsKKyAgICBzaXplX3QgbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlcjsKKyAgICBBdWRpb0Zvcm1hdElEIG1fb3V0cHV0Q29kZWNUeXBlOworfTsK
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29j
b2EvQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9BdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWQ5NjM4NDBkYzNlNWJhZDVjOTYwNzM0ZjMyNjg5ZjM5NTI1NDFkZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tCkBAIC0wLDAgKzEsNTA1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBdWRpb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJ
T04pCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSA8QXVkaW9Ub29sYm94L0F1ZGlv
Q29kZWMuaD4KKyNpbmNsdWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Db252ZXJ0ZXIuaD4KKyNpbmNs
dWRlIDxBdWRpb1Rvb2xib3gvQXVkaW9Gb3JtYXQuaD4KKyNpbmNsdWRlIDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKworI2ltcG9ydCA8cGFsL2NmL0F1ZGlvVG9vbGJveFNvZnRMaW5rLmg+CisK
KyNkZWZpbmUgTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05EUyAwLjEKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit1c2luZyBuYW1lc3BhY2UgUEFMOworCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1w
bGVCdWZmZXJDb21wcmVzc29yPiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OmNyZWF0ZShD
TUJ1ZmZlclF1ZXVlVHJpZ2dlckNhbGxiYWNrIGNhbGxiYWNrLCB2b2lkKiBjYWxsYmFja09iamVj
dCkKK3sKKyAgICBhdXRvIGNvbXByZXNzb3IgPSBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yPihuZXcgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkpOworICAg
IGlmICghY29tcHJlc3Nvci0+aW5pdGlhbGl6ZShjYWxsYmFjaywgY2FsbGJhY2tPYmplY3QpKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gY29tcHJlc3NvcjsKK30KKworQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQor
ICAgIDogbV9zZXJpYWxEaXNwYXRjaFF1ZXVlIHsgZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJjb20u
YXBwbGUuQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFM
KSB9CisgICAgLCBtX2xvd1dhdGVyVGltZSB7IENNVGltZU1ha2VXaXRoU2Vjb25kcyhMT1dfV0FU
RVJfVElNRV9JTl9TRUNPTkRTLCAxMDAwKSB9CisgICAgLCBtX291dHB1dENvZGVjVHlwZSB7IGtB
dWRpb0Zvcm1hdE1QRUc0QUFDIH0KK3sKK30KKworQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
Ojp+QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCkKK3sKKyAgICBpZiAobV9zZXJpYWxEaXNw
YXRjaFF1ZXVlKQorICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fc2VyaWFsRGlzcGF0Y2hRdWV1
ZSk7Cit9CisKK2Jvb2wgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0aWFsaXplKENN
QnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0
KQoreworICAgIENNQnVmZmVyUXVldWVSZWYgaW5wdXRCdWZmZXJRdWV1ZTsKKyAgICBpZiAoYXV0
byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgQ01C
dWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxlQnVmZmVycygpLCAmaW5wdXRC
dWZmZXJRdWV1ZSkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3IgbV9pbnB1
dEJ1ZmZlclF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorICAgIG1faW5wdXRCdWZmZXJRdWV1ZSA9IGFkb3B0Q0YoaW5wdXRCdWZmZXJR
dWV1ZSk7CisKKyAgICBDTUJ1ZmZlclF1ZXVlUmVmIG91dHB1dEJ1ZmZlclF1ZXVlOworICAgIGlm
IChhdXRvIGVycm9yID0gQ01CdWZmZXJRdWV1ZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAw
LCBDTUJ1ZmZlclF1ZXVlR2V0Q2FsbGJhY2tzRm9yVW5zb3J0ZWRTYW1wbGVCdWZmZXJzKCksICZv
dXRwdXRCdWZmZXJRdWV1ZSkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJl
YW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUNyZWF0ZSBmb3Ig
bV9vdXRwdXRCdWZmZXJRdWV1ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICBtX291dHB1dEJ1ZmZlclF1ZXVlID0gYWRvcHRDRihvdXRw
dXRCdWZmZXJRdWV1ZSk7CisgICAgQ01CdWZmZXJRdWV1ZUluc3RhbGxUcmlnZ2VyKG1fb3V0cHV0
QnVmZmVyUXVldWUuZ2V0KCksIGNhbGxiYWNrLCBjYWxsYmFja09iamVjdCwga0NNQnVmZmVyUXVl
dWVUcmlnZ2VyX1doZW5EYXRhQmVjb21lc1JlYWR5LCBrQ01UaW1lWmVybywgTlVMTCk7CisKKyAg
ICBtX2lzRW5jb2RpbmcgPSB0cnVlOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6ZmluaXNoKCkKK3sKKyAgICBkaXNwYXRjaF9zeW5jKG1f
c2VyaWFsRGlzcGF0Y2hRdWV1ZSwgXnsKKyAgICAgICAgcHJvY2Vzc1NhbXBsZUJ1ZmZlcnNVbnRp
bExvd1dhdGVyVGltZShrQ01UaW1lSW52YWxpZCk7CisgICAgICAgIGF1dG8gZXJyb3IgPSBDTUJ1
ZmZlclF1ZXVlTWFya0VuZE9mRGF0YShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKTsKKyAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhIGZhaWxlZCAlZCIsIGVy
cm9yKTsKKyAgICAgICAgbV9pc0VuY29kaW5nID0gZmFsc2U7CisgICAgfSk7Cit9CisKK2Jvb2wg
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjppbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VG
b3JtYXREZXNjcmlwdGlvbihDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9u
LCBBdWRpb0Zvcm1hdElEIG91dHB1dEZvcm1hdElEKQoreworICAgIGNvbnN0IGF1dG8gKmF1ZGlv
Rm9ybWF0TGlzdEl0ZW0gPSBDTUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRSaWNoZXN0RGVjb2Rh
YmxlRm9ybWF0KGZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICBtX3NvdXJjZUZvcm1hdCA9IGF1ZGlv
Rm9ybWF0TGlzdEl0ZW0tPm1BU0JEOworCisgICAgbWVtc2V0KCZtX2Rlc3RpbmF0aW9uRm9ybWF0
LCAwLCBzaXplb2YoQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKSk7CisgICAgbV9kZXN0aW5h
dGlvbkZvcm1hdC5tRm9ybWF0SUQgPSBvdXRwdXRGb3JtYXRJRDsKKyAgICBtX2Rlc3RpbmF0aW9u
Rm9ybWF0Lm1TYW1wbGVSYXRlID0gbV9zb3VyY2VGb3JtYXQubVNhbXBsZVJhdGU7CisgICAgbV9k
ZXN0aW5hdGlvbkZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZSA9IG1fc291cmNlRm9ybWF0Lm1DaGFu
bmVsc1BlckZyYW1lOworCisgICAgVUludDMyIHNpemUgPSBzaXplb2YobV9kZXN0aW5hdGlvbkZv
cm1hdCk7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0Zvcm1hdEdldFByb3BlcnR5KGtBdWRp
b0Zvcm1hdFByb3BlcnR5X0Zvcm1hdEluZm8sIDAsIE5VTEwsICZzaXplLCAmbV9kZXN0aW5hdGlv
bkZvcm1hdCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQXVkaW9Gb3JtYXRHZXRQcm9wZXJ0eSBmYWlsZWQgd2l0
aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIEF1ZGlv
Q29udmVydGVyUmVmIGNvbnZlcnRlcjsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyTmV3KCZtX3NvdXJjZUZvcm1hdCwgJm1fZGVzdGluYXRpb25Gb3JtYXQsICZjb252ZXJ0ZXIp
KSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yIEF1ZGlvQ29udmVydGVyTmV3IGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIG1fY29udmVydGVyID0gYWRvcHRD
Rihjb252ZXJ0ZXIpOworCisgICAgc2l6ZV90IGNvb2tpZVNpemUgPSAwOworICAgIGNvbnN0IHZv
aWQgKmNvb2tpZSA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkdldE1hZ2ljQ29va2llKGZvcm1h
dERlc2NyaXB0aW9uLCAmY29va2llU2l6ZSk7CisgICAgaWYgKGNvb2tpZVNpemUpIHsKKyAgICAg
ICAgaWYgKGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVy
LmdldCgpLCBrQXVkaW9Db252ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUsIChVSW50MzIp
Y29va2llU2l6ZSwgY29va2llKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Igc2V0dGluZyBrQXVkaW9Db252
ZXJ0ZXJEZWNvbXByZXNzaW9uTWFnaWNDb29raWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzaXplID0g
c2l6ZW9mKG1fc291cmNlRm9ybWF0KTsKKyAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlvQ29udmVy
dGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJ
bnB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fc291cmNlRm9ybWF0KSkgeworICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvciBnZXR0aW5nIGtBdWRpb0NvbnZlcnRlckN1cnJlbnRJbnB1dFN0cmVhbURlc2NyaXB0aW9u
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgaWYgKCFtX3NvdXJjZUZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpIHsKKyAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJtQnl0ZXNQZXJQYWNrZXQgc2hvdWxkIG5vdCBi
ZSB6ZXJvIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzaXplID0gc2l6
ZW9mKG1fZGVzdGluYXRpb25Gb3JtYXQpOworICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252
ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyQ3VycmVu
dE91dHB1dFN0cmVhbURlc2NyaXB0aW9uLCAmc2l6ZSwgJm1fZGVzdGluYXRpb25Gb3JtYXQpKSB7
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyQ3VycmVudE91dHB1dFN0cmVhbURl
c2NyaXB0aW9uIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKG1fZGVzdGluYXRpb25Gb3JtYXQubUZvcm1hdElEID09IGtBdWRp
b0Zvcm1hdE1QRUc0QUFDKSB7CisgICAgICAgIC8vIEZJWE1FOiBTZXQgb3V0cHV0Qml0UmF0ZSBh
Y2NvcmRpbmcgTWVkaWFSZWNvcmRlck9wdGlvbnMuYXVkaW9CaXRzUGVyU2Vjb25kLgorICAgICAg
ICBVSW50MzIgb3V0cHV0Qml0UmF0ZSA9IDY0MDAwOworICAgICAgICBpZiAobV9kZXN0aW5hdGlv
bkZvcm1hdC5tU2FtcGxlUmF0ZSA+PSA0NDEwMCkKKyAgICAgICAgICAgIG91dHB1dEJpdFJhdGUg
PSAxOTIwMDA7CisgICAgICAgIGVsc2UgaWYgKG1fZGVzdGluYXRpb25Gb3JtYXQubVNhbXBsZVJh
dGUgPCAyMjAwMCkKKyAgICAgICAgICAgIG91dHB1dEJpdFJhdGUgPSAzMjAwMDsKKworICAgICAg
ICBzaXplID0gc2l6ZW9mKG91dHB1dEJpdFJhdGUpOworICAgICAgICBpZiAoYXV0byBlcnJvciA9
IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZl
cnRlckVuY29kZUJpdFJhdGUsIHNpemUsICZvdXRwdXRCaXRSYXRlKSkgeworICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3Igc2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJFbmNvZGVCaXRSYXRlIGZhaWxlZCB3aXRoICVkIiwg
ZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisg
ICAgaWYgKCFtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1CeXRlc1BlclBhY2tldCkgeworICAgICAgICAv
LyBJZiB0aGUgZGVzdGluYXRpb24gZm9ybWF0IGlzIFZCUiwgd2UgbmVlZCB0byBnZXQgbWF4IHNp
emUgcGVyIHBhY2tldCBmcm9tIHRoZSBjb252ZXJ0ZXIuCisgICAgICAgIHNpemUgPSBzaXplb2Yo
bV9tYXhPdXRwdXRQYWNrZXRTaXplKTsKKworICAgICAgICBpZiAoYXV0byBlcnJvciA9IEF1ZGlv
Q29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0NvbnZlcnRlclBy
b3BlcnR5TWF4aW11bU91dHB1dFBhY2tldFNpemUsICZzaXplLCAmbV9tYXhPdXRwdXRQYWNrZXRT
aXplKSkgeworICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJBdWRp
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252ZXJ0ZXJQcm9wZXJ0eU1h
eGltdW1PdXRwdXRQYWNrZXRTaXplIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBkZXN0aW5hdGlv
bkJ1ZmZlclNpemUgPSBjb21wdXRlQnVmZmVyU2l6ZUZvckF1ZGlvRm9ybWF0KG1fZGVzdGluYXRp
b25Gb3JtYXQsIG1fbWF4T3V0cHV0UGFja2V0U2l6ZSwgTE9XX1dBVEVSX1RJTUVfSU5fU0VDT05E
Uyk7CisgICAgaWYgKG1fZGVzdGluYXRpb25CdWZmZXIuc2l6ZSgpIDwgZGVzdGluYXRpb25CdWZm
ZXJTaXplKQorICAgICAgICBtX2Rlc3RpbmF0aW9uQnVmZmVyLnJlc2l6ZShkZXN0aW5hdGlvbkJ1
ZmZlclNpemUpOworICAgIGlmICghbV9kZXN0aW5hdGlvbkZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQp
CisgICAgICAgIG1fZGVzdGluYXRpb25QYWNrZXREZXNjcmlwdGlvbnMucmVzaXplKG1fZGVzdGlu
YXRpb25CdWZmZXIuY2FwYWNpdHkoKSAvIG1fbWF4T3V0cHV0UGFja2V0U2l6ZSk7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworc2l6ZV90IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y29t
cHV0ZUJ1ZmZlclNpemVGb3JBdWRpb0Zvcm1hdChBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24g
Zm9ybWF0LCBVSW50MzIgbWF4T3V0cHV0UGFja2V0U2l6ZSwgRmxvYXQzMiBkdXJhdGlvbikKK3sK
KyAgICBVSW50MzIgbnVtUGFja2V0cyA9IChmb3JtYXQubVNhbXBsZVJhdGUgKiBkdXJhdGlvbikg
LyBmb3JtYXQubUZyYW1lc1BlclBhY2tldDsKKyAgICBVSW50MzIgb3V0cHV0UGFja2V0U2l6ZSA9
IGZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQgPyBmb3JtYXQubUJ5dGVzUGVyUGFja2V0IDogbWF4T3V0
cHV0UGFja2V0U2l6ZTsKKyAgICBVSW50MzIgYnVmZmVyU2l6ZSA9IG51bVBhY2tldHMgKiBvdXRw
dXRQYWNrZXRTaXplOworCisgICAgcmV0dXJuIGJ1ZmZlclNpemU7Cit9CisKK3ZvaWQgQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yOjphdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZChDTVNhbXBs
ZUJ1ZmZlclJlZiBidWZmZXIpCit7CisgICAgaWYgKENNVElNRV9JU19JTlZBTElEKG1fcmVtYWlu
aW5nUHJpbWVEdXJhdGlvbikpIHsKKyAgICAgICAgQXVkaW9Db252ZXJ0ZXJQcmltZUluZm8gcHJp
bWVJbmZvIHsgMCwgMCB9OworICAgICAgICBVSW50MzIgc2l6ZSA9IHNpemVvZihwcmltZUluZm8p
OworCisgICAgICAgIGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eSht
X2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29udmVydGVyUHJpbWVJbmZvLCAmc2l6ZSwgJnByaW1l
SW5mbykpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIGdldHRpbmcga0F1ZGlvQ29udmVydGVyUHJpbWVJbmZv
IGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgbV9yZW1haW5pbmdQcmltZUR1cmF0aW9uID0gQ01UaW1lTWFrZShwcmltZUlu
Zm8ubGVhZGluZ0ZyYW1lcywgbV9kZXN0aW5hdGlvbkZvcm1hdC5tU2FtcGxlUmF0ZSk7CisgICAg
fQorCisgICAgaWYgKENNVElNRV9DT01QQVJFX0lOTElORShrQ01UaW1lWmVybywgPCwgbV9yZW1h
aW5pbmdQcmltZUR1cmF0aW9uKSkgeworICAgICAgICBDTVRpbWUgc2FtcGxlRHVyYXRpb24gPSBD
TVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7CisgICAgICAgIENNVGltZSB0cmltRHVy
YXRpb24gPSBDTVRpbWVNaW5pbXVtKHNhbXBsZUR1cmF0aW9uLCBtX3JlbWFpbmluZ1ByaW1lRHVy
YXRpb24pOworICAgICAgICBDRkRpY3Rpb25hcnlSZWYgdHJpbUF0U3RhcnREaWN0ID0gQ01UaW1l
Q29weUFzRGljdGlvbmFyeSh0cmltRHVyYXRpb24sIGtDRkFsbG9jYXRvckRlZmF1bHQpOworICAg
ICAgICBDTVNldEF0dGFjaG1lbnQoYnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X1RyaW1EdXJhdGlvbkF0U3RhcnQsIHRyaW1BdFN0YXJ0RGljdCwga0NNQXR0YWNobWVudE1vZGVf
U2hvdWxkUHJvcGFnYXRlKTsKKyAgICAgICAgQ0ZSZWxlYXNlKHRyaW1BdFN0YXJ0RGljdCk7Cisg
ICAgICAgIG1fcmVtYWluaW5nUHJpbWVEdXJhdGlvbiA9IENNVGltZVN1YnRyYWN0KG1fcmVtYWlu
aW5nUHJpbWVEdXJhdGlvbiwgdHJpbUR1cmF0aW9uKTsKKyAgICB9Cit9CisKK1JldGFpblB0cjxO
U051bWJlcj4gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpncmFkdWFsRGVjb2RlclJlZnJl
c2hDb3VudCgpCit7CisgICAgVUludDMyIGRlbGF5U2l6ZSA9IHNpemVvZih1aW50MzJfdCk7Cisg
ICAgdWludDMyX3Qgb3JpZ2luYWxEZWxheU1vZGUgPSAwOworICAgIGlmIChhdXRvIGVycm9yID0g
QXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5nZXQoKSwga0F1ZGlvQ29kZWNQ
cm9wZXJ0eURlbGF5TW9kZSwgJmRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgeworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBnZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdpdGgg
JWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisgICAgdWludDMyX3Qg
b3B0aW1hbERlbGF5TW9kZSA9IGtBdWRpb0NvZGVjRGVsYXlNb2RlX09wdGltYWw7CisgICAgaWYg
KGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlclNldFByb3BlcnR5KG1fY29udmVydGVyLmdldCgp
LCBrQXVkaW9Db2RlY1Byb3BlcnR5RGVsYXlNb2RlLCBkZWxheVNpemUsICZvcHRpbWFsRGVsYXlN
b2RlKSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2Ft
cGxlQnVmZmVyQ29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUg
ZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisg
ICAgVUludDMyIHByaW1lU2l6ZSA9IHNpemVvZihBdWRpb0NvZGVjUHJpbWVJbmZvKTsKKyAgICBB
dWRpb0NvZGVjUHJpbWVJbmZvIHByaW1lSW5mbyB7IDAsIDAgfTsKKyAgICBpZiAoYXV0byBlcnJv
ciA9IEF1ZGlvQ29udmVydGVyR2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0Nv
ZGVjUHJvcGVydHlQcmltZUluZm8sICZwcmltZVNpemUsICZwcmltZUluZm8pKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIGdldHRpbmcga0F1ZGlvQ29kZWNQcm9wZXJ0eVByaW1lSW5mbyBmYWlsZWQgd2l0aCAlZCIs
IGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9CisKKyAgICBpZiAoYXV0byBlcnJv
ciA9IEF1ZGlvQ29udmVydGVyU2V0UHJvcGVydHkobV9jb252ZXJ0ZXIuZ2V0KCksIGtBdWRpb0Nv
ZGVjUHJvcGVydHlEZWxheU1vZGUsIGRlbGF5U2l6ZSwgJm9yaWdpbmFsRGVsYXlNb2RlKSkgewor
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvciBzZXR0aW5nIGtBdWRpb0NvZGVjUHJvcGVydHlEZWxheU1vZGUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorICAgIHJldHVybiBh
ZG9wdE5TKFtOU051bWJlciBudW1iZXJXaXRoSW50OihwcmltZUluZm8ubGVhZGluZ0ZyYW1lcyAv
IG1fZGVzdGluYXRpb25Gb3JtYXQubUZyYW1lc1BlclBhY2tldCldKTsKK30KKworQ01TYW1wbGVC
dWZmZXJSZWYgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpzYW1wbGVCdWZmZXJXaXRoTnVt
UGFja2V0cyhVSW50MzIgbnVtUGFja2V0cywgQXVkaW9CdWZmZXJMaXN0IGZpbGxCdWZmZXJMaXN0
KQoreworICAgIFZlY3RvcjxjaGFyPiBjb29raWU7CisgICAgaWYgKCFtX2Rlc3RpbmF0aW9uRm9y
bWF0RGVzY3JpcHRpb24pIHsKKyAgICAgICAgVUludDMyIGNvb2tpZVNpemUgPSAwOworCisgICAg
ICAgIGF1dG8gZXJyb3IgPSBBdWRpb0NvbnZlcnRlckdldFByb3BlcnR5SW5mbyhtX2NvbnZlcnRl
ci5nZXQoKSwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNp
emUsIE5VTEwpOworICAgICAgICBpZiAoKGVycm9yID09IG5vRXJyKSAmJiAhIWNvb2tpZVNpemUp
IHsKKyAgICAgICAgICAgIGNvb2tpZS5yZXNpemUoY29va2llU2l6ZSk7CisKKyAgICAgICAgICAg
IGlmIChhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJHZXRQcm9wZXJ0eShtX2NvbnZlcnRlci5n
ZXQoKSwga0F1ZGlvQ29udmVydGVyQ29tcHJlc3Npb25NYWdpY0Nvb2tpZSwgJmNvb2tpZVNpemUs
IGNvb2tpZS5kYXRhKCkpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVk
aWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgZ2V0dGluZyBrQXVkaW9Db252
ZXJ0ZXJDb21wcmVzc2lvbk1hZ2ljQ29va2llIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAg
ICAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGRlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb247
CisgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsICZtX2Rlc3RpbmF0aW9uRm9ybWF0LCAwLCBOVUxMLCBjb29r
aWVTaXplLCBjb29raWUuZGF0YSgpLCBOVUxMLCAmZGVzdGluYXRpb25Gb3JtYXREZXNjcmlwdGlv
bikpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9T
YW1wbGVCdWZmZXJDb21wcmVzc29yIENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZSBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgIH0K
KyAgICAgICAgbV9kZXN0aW5hdGlvbkZvcm1hdERlc2NyaXB0aW9uID0gYWRvcHRDRihkZXN0aW5h
dGlvbkZvcm1hdERlc2NyaXB0aW9uKTsKKyAgICAgICAgbV9nZHJDb3VudE51bSA9IGdyYWR1YWxE
ZWNvZGVyUmVmcmVzaENvdW50KCk7CisgICAgfQorCisgICAgY2hhciAqZGF0YSA9IHN0YXRpY19j
YXN0PGNoYXIqPihmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YSk7CisgICAgc2l6ZV90
IGRhdGFTaXplID0gZmlsbEJ1ZmZlckxpc3QubUJ1ZmZlcnNbMF0ubURhdGFCeXRlU2l6ZTsKKwor
ICAgIENNQmxvY2tCdWZmZXJSZWYgYmxvY2tCdWZmZXI7CisgICAgaWYgKGF1dG8gZXJyb3IgPSBD
TUJsb2NrQnVmZmVyQ3JlYXRlV2l0aE1lbW9yeUJsb2NrKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5V
TEwsIGRhdGFTaXplLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCAwLCBkYXRhU2l6ZSwga0NN
QmxvY2tCdWZmZXJBc3N1cmVNZW1vcnlOb3dGbGFnLCAmYmxvY2tCdWZmZXIpKSB7CisgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIENNQmxvY2tCdWZmZXJDcmVhdGVXaXRoTWVtb3J5QmxvY2sgZmFpbGVkIHdpdGggJWQiLCBl
cnJvcik7CisgICAgICAgIHJldHVybiBuaWw7CisgICAgfQorICAgIGF1dG8gYnVmZmVyID0gYWRv
cHRDRihibG9ja0J1ZmZlcik7CisKKyAgICBpZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJS
ZXBsYWNlRGF0YUJ5dGVzKGRhdGEsIGJ1ZmZlci5nZXQoKSwgMCwgZGF0YVNpemUpKSB7CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNQmxvY2tCdWZmZXJSZXBsYWNlRGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJy
b3IpOworICAgICAgICByZXR1cm4gbmlsOworICAgIH0KKworICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlcjsKKyAgICBhdXRvIGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0
ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnVmZmVyLmdldCgp
LCB0cnVlLCBOVUxMLCBOVUxMLCBtX2Rlc3RpbmF0aW9uRm9ybWF0RGVzY3JpcHRpb24uZ2V0KCks
IG51bVBhY2tldHMsIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVTdGFtcCwgbV9kZXN0
aW5hdGlvblBhY2tldERlc2NyaXB0aW9ucy5kYXRhKCksICZzYW1wbGVCdWZmZXIpOworICAgIGlm
IChlcnJvcikgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgIkF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tl
dERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJuIG5p
bDsKKyAgICB9CisKKyAgICBpZiAoW21fZ2RyQ291bnROdW0gaW50VmFsdWVdKQorICAgICAgICBD
TVNldEF0dGFjaG1lbnQoc2FtcGxlQnVmZmVyLCBrQ01TYW1wbGVCdWZmZXJBdHRhY2htZW50S2V5
X0dyYWR1YWxEZWNvZGVyUmVmcmVzaCwgKF9fYnJpZGdlIENGVHlwZVJlZiltX2dkckNvdW50TnVt
LmdldCgpLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOworCisgICAgcmV0dXJu
IHNhbXBsZUJ1ZmZlcjsKK30KKworT1NTdGF0dXMgQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjphdWRpb0NvbnZlcnRlckNvbXBsZXhJbnB1dERhdGFQcm9jKEF1ZGlvQ29udmVydGVyUmVmLCBV
SW50MzIgKm51bU91dHB1dFBhY2tldHNQdHIsIEF1ZGlvQnVmZmVyTGlzdCAqYnVmZmVyTGlzdCwg
QXVkaW9TdHJlYW1QYWNrZXREZXNjcmlwdGlvbiAqKnBhY2tldERlc2NyaXB0aW9uT3V0LCB2b2lk
ICphdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IpCit7CisgICAgYXV0byAqY29tcHJlc3NvciA9
IHN0YXRpY19jYXN0PEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcio+KGF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvcik7CisgICAgcmV0dXJuIGNvbXByZXNzb3ItPnByb3ZpZGVTb3VyY2VEYXRh
TnVtT3V0cHV0UGFja2V0cyhudW1PdXRwdXRQYWNrZXRzUHRyLCBidWZmZXJMaXN0LCBwYWNrZXRE
ZXNjcmlwdGlvbk91dCk7Cit9CisKK09TU3RhdHVzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nv
cjo6cHJvdmlkZVNvdXJjZURhdGFOdW1PdXRwdXRQYWNrZXRzKFVJbnQzMiogbnVtT3V0cHV0UGFj
a2V0c1B0ciwgQXVkaW9CdWZmZXJMaXN0KiBhdWRpb0J1ZmZlckxpc3QsIEF1ZGlvU3RyZWFtUGFj
a2V0RGVzY3JpcHRpb24qKiBwYWNrZXREZXNjcmlwdGlvbk91dCkKK3sKKyAgICBpZiAocGFja2V0
RGVzY3JpcHRpb25PdXQpCisgICAgICAgICpwYWNrZXREZXNjcmlwdGlvbk91dCA9IE5VTEw7CisK
KyAgICBjb25zdCBVSW50MzIgbnVtUGFja2V0c1RvQ29weSA9ICpudW1PdXRwdXRQYWNrZXRzUHRy
OworICAgIHNpemVfdCBudW1CeXRlc1RvQ29weSA9IChudW1QYWNrZXRzVG9Db3B5ICogbV9zb3Vy
Y2VGb3JtYXQubUJ5dGVzUGVyUGFja2V0KTsKKworICAgIGlmIChhdWRpb0J1ZmZlckxpc3QtPm1O
dW1iZXJCdWZmZXJzID09IDEpIHsKKyAgICAgICAgc2l6ZV90IGN1cnJlbnRPZmZzZXRJblNvdXJj
ZUJ1ZmZlciA9IDA7CisKKyAgICAgICAgaWYgKG1fc291cmNlQnVmZmVyLnNpemUoKSA8IG51bUJ5
dGVzVG9Db3B5KQorICAgICAgICAgICAgbV9zb3VyY2VCdWZmZXIucmVzaXplKG51bUJ5dGVzVG9D
b3B5KTsKKworICAgICAgICB3aGlsZSAobnVtQnl0ZXNUb0NvcHkpIHsKKyAgICAgICAgICAgIGlm
IChtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA8PSBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2Nr
QnVmZmVyKSB7CisgICAgICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IG51bGxwdHI7CisgICAgICAg
ICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXJTaXplID0gMDsKKyAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICBpZiAoQ01CdWZmZXJRdWV1ZUlzRW1wdHkobV9pbnB1dEJ1
ZmZlclF1ZXVlLmdldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgICAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShj
b25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKSkpOworICAgICAgICAgICAgICAgIG1fc2FtcGxlQmxvY2tCdWZmZXIg
PSBhZG9wdENGKChDTUJsb2NrQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDRlJldGFpbihD
TVNhbXBsZUJ1ZmZlckdldERhdGFCdWZmZXIoc2FtcGxlQnVmZmVyLmdldCgpKSkpKSk7CisgICAg
ICAgICAgICAgICAgaWYgKCFtX3NhbXBsZUJsb2NrQnVmZmVyKSB7CisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yIENNU2FtcGxlQnVmZmVyR2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKKyAgICAgICAgICAg
ICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPSAwOworICAgICAgICAgICAgICAgICAg
ICBtX2N1cnJlbnRPZmZzZXRJblNhbXBsZUJsb2NrQnVmZmVyID0gMDsKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fc2Ft
cGxlQmxvY2tCdWZmZXJTaXplID0gQ01CbG9ja0J1ZmZlckdldERhdGFMZW5ndGgobV9zYW1wbGVC
bG9ja0J1ZmZlci5nZXQoKSk7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1w
bGVCbG9ja0J1ZmZlciA9IDA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX3Nh
bXBsZUJsb2NrQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgc2l6ZV90IG51bUJ5dGVzVG9Db3B5
RnJvbVNhbXBsZUJidWYgPSBzdGQ6Om1pbihudW1CeXRlc1RvQ29weSwgKG1fc2FtcGxlQmxvY2tC
dWZmZXJTaXplIC0gbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikpOworICAgICAg
ICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9z
YW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKG1fc291cmNlQnVmZmVyLmRhdGEoKSAr
IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIG51bUJ5dGVzVG9Db3B5IC09IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBsZUJidWY7
CisgICAgICAgICAgICAgICAgY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyICs9IG51bUJ5dGVz
VG9Db3B5RnJvbVNhbXBsZUJidWY7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5T
YW1wbGVCbG9ja0J1ZmZlciArPSBudW1CeXRlc1RvQ29weUZyb21TYW1wbGVCYnVmOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1ZmZlcnNbMF0u
bURhdGEgPSBtX3NvdXJjZUJ1ZmZlci5kYXRhKCk7CisgICAgICAgIGF1ZGlvQnVmZmVyTGlzdC0+
bUJ1ZmZlcnNbMF0ubURhdGFCeXRlU2l6ZSA9IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcjsK
KyAgICAgICAgYXVkaW9CdWZmZXJMaXN0LT5tQnVmZmVyc1swXS5tTnVtYmVyQ2hhbm5lbHMgPSBt
X3NvdXJjZUZvcm1hdC5tQ2hhbm5lbHNQZXJGcmFtZTsKKworICAgICAgICAqbnVtT3V0cHV0UGFj
a2V0c1B0ciA9IChhdWRpb0J1ZmZlckxpc3QtPm1CdWZmZXJzWzBdLm1EYXRhQnl0ZVNpemUgLyBt
X3NvdXJjZUZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOworICAgICAgICByZXR1cm4gbm9FcnI7Cisg
ICAgfQorCisgICAgQVNTRVJUKGF1ZGlvQnVmZmVyTGlzdC0+bU51bWJlckJ1ZmZlcnMgPT0gMik7
CisKKyAgICAvLyBGSVhNRTogU3VwcG9ydCBpbnRlcmxlYXZlZCBkYXRhIGJ5IHVuaW50ZXJsZWF2
aW5nIG1fc291cmNlQnVmZmVyIGlmIG5lZWRlZC4KKyAgICBBU1NFUlQobV9zb3VyY2VGb3JtYXQu
bUZvcm1hdEZsYWdzICYga0F1ZGlvRm9ybWF0RmxhZ0lzTm9uSW50ZXJsZWF2ZWQpOworCisgICAg
aWYgKG1fc291cmNlQnVmZmVyLnNpemUoKSA8IDIgKiBudW1CeXRlc1RvQ29weSkKKyAgICAgICAg
bV9zb3VyY2VCdWZmZXIucmVzaXplKDIgKiBudW1CeXRlc1RvQ29weSk7CisgICAgYXV0byogZmly
c3RDaGFubmVsID0gbV9zb3VyY2VCdWZmZXIuZGF0YSgpOworICAgIGF1dG8qIHNlY29uZENoYW5u
ZWwgPSBtX3NvdXJjZUJ1ZmZlci5kYXRhKCkgKyBudW1CeXRlc1RvQ29weTsKKworICAgIHNpemVf
dCBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIgPSAwOworICAgIHdoaWxlIChudW1CeXRlc1Rv
Q29weSkgeworICAgICAgICBpZiAobV9zYW1wbGVCbG9ja0J1ZmZlclNpemUgPD0gbV9jdXJyZW50
T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZlcikgeworICAgICAgICAgICAgaWYgKG1fc2FtcGxlQmxv
Y2tCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyID0gbnVsbHB0
cjsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IDA7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eShtX2lucHV0QnVm
ZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBh
dXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0
PHZvaWQqPihDTUJ1ZmZlclF1ZXVlRGVxdWV1ZUFuZFJldGFpbihtX2lucHV0QnVmZmVyUXVldWUu
Z2V0KCkpKSkpOworICAgICAgICAgICAgbV9zYW1wbGVCbG9ja0J1ZmZlciA9IGFkb3B0Q0YoKENN
QmxvY2tCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENGUmV0YWluKENNU2FtcGxlQnVmZmVy
R2V0RGF0YUJ1ZmZlcihzYW1wbGVCdWZmZXIuZ2V0KCkpKSkpKTsKKyAgICAgICAgICAgIGlmICgh
bV9zYW1wbGVCbG9ja0J1ZmZlcikgeworICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVy
R2V0RGF0YUJ1ZmZlciBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVm
ZmVyU2l6ZSA9IDA7CisgICAgICAgICAgICAgICAgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9j
a0J1ZmZlciA9IDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBtX3NhbXBsZUJsb2NrQnVmZmVyU2l6ZSA9IENNQmxvY2tCdWZmZXJHZXREYXRh
TGVuZ3RoKG1fc2FtcGxlQmxvY2tCdWZmZXIuZ2V0KCkpIC8gMjsKKyAgICAgICAgICAgIG1fY3Vy
cmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgPSAwOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKG1fc2FtcGxlQmxvY2tCdWZmZXIpIHsKKyAgICAgICAgICAgIHNpemVfdCBudW1CeXRlc1Rv
Q29weUZyb21TYW1wbGVCYnVmID0gc3RkOjptaW4obnVtQnl0ZXNUb0NvcHksIChtX3NhbXBsZUJs
b2NrQnVmZmVyU2l6ZSAtIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIpKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIGVycm9yID0gQ01CbG9ja0J1ZmZlckNvcHlEYXRhQnl0ZXMobV9z
YW1wbGVCbG9ja0J1ZmZlci5nZXQoKSwgbV9jdXJyZW50T2Zmc2V0SW5TYW1wbGVCbG9ja0J1ZmZl
ciwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKGZpcnN0Q2hhbm5lbCArIGN1cnJlbnRP
ZmZzZXRJblNvdXJjZUJ1ZmZlcikpKSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoTWVkaWFTdHJlYW0sICJBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CbG9ja0J1ZmZl
ckNvcHlEYXRhQnl0ZXMgZmlyc3QgY2hhbm5lbCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBp
ZiAoYXV0byBlcnJvciA9IENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzKG1fc2FtcGxlQmxvY2tC
dWZmZXIuZ2V0KCksIG1fY3VycmVudE9mZnNldEluU2FtcGxlQmxvY2tCdWZmZXIgKyBtX3NhbXBs
ZUJsb2NrQnVmZmVyU2l6ZSwgbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZiwgKHNlY29uZENo
YW5uZWwgKyBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIpKSkgeworICAgICAgICAgICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yIENNQmxvY2tCdWZmZXJDb3B5RGF0YUJ5dGVzIHNlY29uZCBjaGFubmVsIGZhaWxlZCB3aXRo
ICVkIiwgZXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIG51bUJ5dGVzVG9Db3B5IC09IG51bUJ5dGVzVG9Db3B5RnJvbVNhbXBs
ZUJidWY7CisgICAgICAgICAgICBjdXJyZW50T2Zmc2V0SW5Tb3VyY2VCdWZmZXIgKz0gbnVtQnl0
ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZjsKKyAgICAgICAgICAgIG1fY3VycmVudE9mZnNldEluU2Ft
cGxlQmxvY2tCdWZmZXIgKz0gbnVtQnl0ZXNUb0NvcHlGcm9tU2FtcGxlQmJ1ZjsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1ZmZlcnNbMF0ubURhdGEgPSBmaXJz
dENoYW5uZWw7CisgICAgYXVkaW9CdWZmZXJMaXN0LT5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXpl
ID0gY3VycmVudE9mZnNldEluU291cmNlQnVmZmVyOworICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1
ZmZlcnNbMF0ubU51bWJlckNoYW5uZWxzID0gMTsKKworICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1
ZmZlcnNbMV0ubURhdGEgPSBzZWNvbmRDaGFubmVsOworICAgIGF1ZGlvQnVmZmVyTGlzdC0+bUJ1
ZmZlcnNbMV0ubURhdGFCeXRlU2l6ZSA9IGN1cnJlbnRPZmZzZXRJblNvdXJjZUJ1ZmZlcjsKKyAg
ICBhdWRpb0J1ZmZlckxpc3QtPm1CdWZmZXJzWzFdLm1OdW1iZXJDaGFubmVscyA9IDE7CisKKyAg
ICAqbnVtT3V0cHV0UGFja2V0c1B0ciA9IChhdWRpb0J1ZmZlckxpc3QtPm1CdWZmZXJzWzBdLm1E
YXRhQnl0ZVNpemUgLyBtX3NvdXJjZUZvcm1hdC5tQnl0ZXNQZXJQYWNrZXQpOworICAgIHJldHVy
biBub0VycjsKK30KKwordm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OnByb2Nlc3NT
YW1wbGVCdWZmZXJzVW50aWxMb3dXYXRlclRpbWUoQ01UaW1lIGxvd1dhdGVyVGltZSkKK3sKKyAg
ICBpZiAoIW1fY29udmVydGVyKSB7CisgICAgICAgIGlmIChDTUJ1ZmZlclF1ZXVlSXNFbXB0eSht
X2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGF1dG8gYnVmZmVyID0gKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1
ZmZlclF1ZXVlR2V0SGVhZChtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7CisgICAgICAgIEFT
U0VSVChidWZmZXIpOworCisgICAgICAgIG1fY3VycmVudE5hdGl2ZVByZXNlbnRhdGlvblRpbWVT
dGFtcCA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7Cisg
ICAgICAgIG1fY3VycmVudE91dHB1dFByZXNlbnRhdGlvblRpbWVTdGFtcCA9IENNU2FtcGxlQnVm
ZmVyR2V0T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wKGJ1ZmZlcik7CisKKyAgICAgICAgYXV0
byBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24o
YnVmZmVyKTsKKyAgICAgICAgaWYgKCFpbml0QXVkaW9Db252ZXJ0ZXJGb3JTb3VyY2VGb3JtYXRE
ZXNjcmlwdGlvbihmb3JtYXREZXNjcmlwdGlvbiwgbV9vdXRwdXRDb2RlY1R5cGUpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHdoaWxlIChDTVRJTUVfSVNfSU5WQUxJRChsb3dX
YXRlclRpbWUpIHx8IENNVElNRV9DT01QQVJFX0lOTElORShsb3dXYXRlclRpbWUsIDwsIENNQnVm
ZmVyUXVldWVHZXREdXJhdGlvbihtX2lucHV0QnVmZmVyUXVldWUuZ2V0KCkpKSkgeworICAgICAg
ICBBdWRpb0J1ZmZlckxpc3QgZmlsbEJ1ZmZlckxpc3Q7CisKKyAgICAgICAgZmlsbEJ1ZmZlckxp
c3QubU51bWJlckJ1ZmZlcnMgPSAxOworICAgICAgICBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1sw
XS5tTnVtYmVyQ2hhbm5lbHMgPSBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1DaGFubmVsc1BlckZyYW1l
OworICAgICAgICBmaWxsQnVmZmVyTGlzdC5tQnVmZmVyc1swXS5tRGF0YUJ5dGVTaXplID0gKFVJ
bnQzMiltX2Rlc3RpbmF0aW9uQnVmZmVyLmNhcGFjaXR5KCk7CisgICAgICAgIGZpbGxCdWZmZXJM
aXN0Lm1CdWZmZXJzWzBdLm1EYXRhID0gbV9kZXN0aW5hdGlvbkJ1ZmZlci5kYXRhKCk7CisKKyAg
ICAgICAgVUludDMyIG91dHB1dFBhY2tldFNpemUgPSBtX2Rlc3RpbmF0aW9uRm9ybWF0Lm1CeXRl
c1BlclBhY2tldCA/IG1fZGVzdGluYXRpb25Gb3JtYXQubUJ5dGVzUGVyUGFja2V0IDogbV9tYXhP
dXRwdXRQYWNrZXRTaXplOworICAgICAgICBVSW50MzIgbnVtT3V0cHV0UGFja2V0cyA9IChVSW50
MzIpbV9kZXN0aW5hdGlvbkJ1ZmZlci5jYXBhY2l0eSgpIC8gb3V0cHV0UGFja2V0U2l6ZTsKKwor
ICAgICAgICBhdXRvIGVycm9yID0gQXVkaW9Db252ZXJ0ZXJGaWxsQ29tcGxleEJ1ZmZlcihtX2Nv
bnZlcnRlci5nZXQoKSwgYXVkaW9Db252ZXJ0ZXJDb21wbGV4SW5wdXREYXRhUHJvYywgdGhpcywg
Jm51bU91dHB1dFBhY2tldHMsICZmaWxsQnVmZmVyTGlzdCwgbV9kZXN0aW5hdGlvblBhY2tldERl
c2NyaXB0aW9ucy5kYXRhKCkpOworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
IEF1ZGlvQ29udmVydGVyRmlsbENvbXBsZXhCdWZmZXIgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIW51bU91dHB1
dFBhY2tldHMpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBhdXRvIGJ1ZmZlciA9IHNh
bXBsZUJ1ZmZlcldpdGhOdW1QYWNrZXRzKG51bU91dHB1dFBhY2tldHMsIGZpbGxCdWZmZXJMaXN0
KTsKKworICAgICAgICBhdHRhY2hQcmltaW5nVHJpbXNJZk5lZWRlZChidWZmZXIpOworCisgICAg
ICAgIGVycm9yID0gQ01TYW1wbGVCdWZmZXJTZXRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAo
YnVmZmVyLCBtX2N1cnJlbnRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXApOworICAgICAgICBp
ZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAi
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNU2FtcGxlQnVmZmVyU2V0T3V0cHV0UHJlc2Vu
dGF0aW9uVGltZVN0YW1wIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgQ01UaW1lIG5hdGl2ZUR1cmF0aW9uID0gQ01TYW1w
bGVCdWZmZXJHZXREdXJhdGlvbihidWZmZXIpOworICAgICAgICBtX2N1cnJlbnROYXRpdmVQcmVz
ZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVBZGQobV9jdXJyZW50TmF0aXZlUHJlc2VudGF0aW9u
VGltZVN0YW1wLCBuYXRpdmVEdXJhdGlvbik7CisKKyAgICAgICAgQ01UaW1lIG91dHB1dER1cmF0
aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRPdXRwdXREdXJhdGlvbihidWZmZXIpOworICAgICAgICBt
X2N1cnJlbnRPdXRwdXRQcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVRpbWVBZGQobV9jdXJyZW50
T3V0cHV0UHJlc2VudGF0aW9uVGltZVN0YW1wLCBvdXRwdXREdXJhdGlvbik7CisKKyAgICAgICAg
ZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpLCBi
dWZmZXIpOworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIENNQnVmZmVyUXVl
dWVFbnF1ZXVlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6
cHJvY2Vzc1NhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCit7CisgICAgYXV0
byBlcnJvciA9IENNQnVmZmVyUXVldWVFbnF1ZXVlKG1faW5wdXRCdWZmZXJRdWV1ZS5nZXQoKSwg
YnVmZmVyKTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJB
dWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1ZUVucXVldWUgZmFpbGVkIHdp
dGggJWQiLCBlcnJvcik7CisKKyAgICBwcm9jZXNzU2FtcGxlQnVmZmVyc1VudGlsTG93V2F0ZXJU
aW1lKG1fbG93V2F0ZXJUaW1lKTsKK30KKwordm9pZCBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCit7CisgICAgZGlz
cGF0Y2hfc3luYyhtX3NlcmlhbERpc3BhdGNoUXVldWUsIF57CisgICAgICAgIGlmIChtX2lzRW5j
b2RpbmcpCisgICAgICAgICAgICBwcm9jZXNzU2FtcGxlQnVmZmVyKGJ1ZmZlcik7CisgICAgfSk7
Cit9CisKK0NNU2FtcGxlQnVmZmVyUmVmIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Z2V0
T3V0cHV0U2FtcGxlQnVmZmVyKCkKK3sKKyAgICByZXR1cm4gKENNU2FtcGxlQnVmZmVyUmVmKShj
b25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1ZXVlR2V0SGVhZChtX291dHB1dEJ1ZmZlclF1ZXVl
LmdldCgpKSkpOworfQorCitSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IEF1ZGlvU2FtcGxl
QnVmZmVyQ29tcHJlc3Nvcjo6dGFrZU91dHB1dFNhbXBsZUJ1ZmZlcigpCit7CisgICAgcmV0dXJu
IGFkb3B0Q0YoKENNU2FtcGxlQnVmZmVyUmVmKShjb25zdF9jYXN0PHZvaWQqPihDTUJ1ZmZlclF1
ZXVlRGVxdWV1ZUFuZFJldGFpbihtX291dHB1dEJ1ZmZlclF1ZXVlLmdldCgpKSkpKTsKK30KKwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhcmVjb3JkZXIvY29jb2Ev
TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgK
aW5kZXggYjE0N2NhMjg4MjliMGYxMDMwYmRhNzRhMDg0MjZjNDU2NWU5ODcxZS4uNDhlOTBkY2Uy
MWIxY2NmNzkzYjEyYWFkMjE4ZDYwOGUyZTEzYzVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRl
ckNvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2Nv
YS9NZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgKQEAgLTI0LDcgKzI0LDkgQEAKIAog
I3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQorCisjaW5jbHVkZSAiQXVk
aW9TdHJlYW1EZXNjcmlwdGlvbi5oIgogCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC0zNSwxMCArMzcsMTYgQEAKICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90aHJlYWRzL0JpbmFyeVNlbWFwaG9y
ZS5oPgogCisjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRpb1R5cGVzLmg+CisjaW5jbHVkZSA8
Q29yZU1lZGlhL0NNVGltZS5oPgorCiB0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZl
ciAqQ01TYW1wbGVCdWZmZXJSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZvcm1h
dERlc2NyaXB0aW9uKiBDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwordHlwZWRlZiBzdHJ1Y3Qgb3Bh
cXVlQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbiAqQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbjsK
IAogT0JKQ19DTEFTUyBBVkFzc2V0V3JpdGVyOwogT0JKQ19DTEFTUyBBVkFzc2V0V3JpdGVySW5w
dXQ7CitPQkpDX0NMQVNTIFdlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZTsKIAogbmFtZXNwYWNlIFdU
RiB7CiBjbGFzcyBNZWRpYVRpbWU7CkBAIC00Niw1MSArNTQsNzMgQEAgY2xhc3MgTWVkaWFUaW1l
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJl
c3NvcjsKIGNsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOworY2xhc3MgVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOwogCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxNZWRpYVJlY29yZGVyUHJp
dmF0ZVdyaXRlciwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4geworY2xhc3MgV0VCQ09SRV9FWFBP
UlQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1h
aW4+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIsIFdl
YWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gY3JlYXRlKGNvbnN0IE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlKiBhdWRpb1RyYWNrLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSogdmlkZW9UcmFjayk7CiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdy
aXRlcj4gY3JlYXRlKGJvb2wgaGFzQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CiAgICAg
fk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKCk7Ci0gICAgCi0gICAgYm9vbCBzZXR1cFdyaXRl
cigpOwotICAgIGJvb2wgc2V0VmlkZW9JbnB1dChpbnQgd2lkdGgsIGludCBoZWlnaHQpOwotICAg
IGJvb2wgc2V0QXVkaW9JbnB1dCgpOworCiAgICAgdm9pZCBhcHBlbmRWaWRlb1NhbXBsZUJ1ZmZl
cihDTVNhbXBsZUJ1ZmZlclJlZik7CiAgICAgdm9pZCBhcHBlbmRBdWRpb1NhbXBsZUJ1ZmZlcihj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBj
b25zdCBXVEY6Ok1lZGlhVGltZSYsIHNpemVfdCk7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKCk7
CiAgICAgdm9pZCBmZXRjaERhdGEoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWZQdHI8U2hhcmVk
QnVmZmVyPiYmKT4mJik7CiAKKyAgICB2b2lkIGFwcGVuZERhdGEoY29uc3QgY2hhciosIHNpemVf
dCk7CisgICAgdm9pZCBhcHBlbmREYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYpOworCiBwcml2YXRl
OgotICAgIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKFJldGFpblB0cjxBVkFzc2V0V3JpdGVy
PiYmLCBTdHJpbmcmJiBwYXRoKTsKKyAgICBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcihib29s
IGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvKTsKICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICBSZXRh
aW5QdHI8QVZBc3NldFdyaXRlcj4gbV93cml0ZXI7Ci0gICAgUmV0YWluUHRyPEFWQXNzZXRXcml0
ZXJJbnB1dD4gbV92aWRlb0lucHV0OwotICAgIFJldGFpblB0cjxBVkFzc2V0V3JpdGVySW5wdXQ+
IG1fYXVkaW9JbnB1dDsKLQotICAgIFN0cmluZyBtX3BhdGg7Ci0gICAgTG9jayBtX3ZpZGVvTG9j
azsKLSAgICBMb2NrIG1fYXVkaW9Mb2NrOwotICAgIEJpbmFyeVNlbWFwaG9yZSBtX2ZpbmlzaFdy
aXRpbmdTZW1hcGhvcmU7Ci0gICAgQmluYXJ5U2VtYXBob3JlIG1fZmluaXNoV3JpdGluZ0F1ZGlv
U2VtYXBob3JlOwotICAgIEJpbmFyeVNlbWFwaG9yZSBtX2ZpbmlzaFdyaXRpbmdWaWRlb1NlbWFw
aG9yZTsKKyAgICBib29sIGluaXRpYWxpemUoKTsKKworICAgIHN0YXRpYyB2b2lkIGNvbXByZXNz
ZWRWaWRlb091dHB1dEJ1ZmZlckNhbGxiYWNrKHZvaWQqLCBDTUJ1ZmZlclF1ZXVlVHJpZ2dlclRv
a2VuKTsKKyAgICBzdGF0aWMgdm9pZCBjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFj
ayh2b2lkKiwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbik7CisKKyAgICB2b2lkIHN0YXJ0QXNz
ZXRXcml0ZXIoKTsKKyAgICB2b2lkIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7CisK
KyAgICBib29sIGFwcGVuZENvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcigpOworICAgIGJvb2wg
YXBwZW5kQ29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVyKCk7CisKKyAgICB2b2lkIHByb2Nlc3NO
ZXdDb21wcmVzc2VkQXVkaW9TYW1wbGVCdWZmZXJzKCk7CisgICAgdm9pZCBwcm9jZXNzTmV3Q29t
cHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycygpOworCisgICAgdm9pZCBmbHVzaENvbXByZXNzZWRT
YW1wbGVCdWZmZXJzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBhcHBl
bmRFbmRPZlZpZGVvU2FtcGxlRHVyYXRpb25JZk5lZWRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOworCiAgICAgYm9vbCBtX2hhc1N0YXJ0ZWRXcml0aW5nIHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNTdG9wcGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNGaXJzdEF1ZGlvU2FtcGxl
IHsgdHJ1ZSB9OwotICAgIGRpc3BhdGNoX3F1ZXVlX3QgbV9hdWRpb1B1bGxRdWV1ZTsKLSAgICBk
aXNwYXRjaF9xdWV1ZV90IG1fdmlkZW9QdWxsUXVldWU7Ci0gICAgRGVxdWU8UmV0YWluUHRyPENN
U2FtcGxlQnVmZmVyUmVmPj4gbV92aWRlb0J1ZmZlclBvb2w7Ci0gICAgRGVxdWU8UmV0YWluUHRy
PENNU2FtcGxlQnVmZmVyUmVmPj4gbV9hdWRpb0J1ZmZlclBvb2w7CisKKyAgICBSZXRhaW5QdHI8
QVZBc3NldFdyaXRlcj4gbV93cml0ZXI7CiAKICAgICBib29sIG1faXNTdG9wcGluZyB7IGZhbHNl
IH07CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwogICAgIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJik+IG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhh
bmRsZXI7CisKKyAgICBib29sIG1faGFzQXVkaW87CisgICAgYm9vbCBtX2hhc1ZpZGVvOworCisg
ICAgUmV0YWluUHRyPENNRm9ybWF0RGVzY3JpcHRpb25SZWY+IG1fYXVkaW9Gb3JtYXREZXNjcmlw
dGlvbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yPiBt
X2F1ZGlvQ29tcHJlc3NvcjsKKyAgICBSZXRhaW5QdHI8QVZBc3NldFdyaXRlcklucHV0PiBtX2F1
ZGlvQXNzZXRXcml0ZXJJbnB1dDsKKworICAgIFJldGFpblB0cjxDTUZvcm1hdERlc2NyaXB0aW9u
UmVmPiBtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb247CisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gbV92aWRlb0NvbXByZXNzb3I7CisgICAgUmV0YWluUHRy
PEFWQXNzZXRXcml0ZXJJbnB1dD4gbV92aWRlb0Fzc2V0V3JpdGVySW5wdXQ7CisgICAgQ01UaW1l
IG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZTsKKyAgICBDTVRpbWUgbV9sYXN0VmlkZW9EZWNv
ZGluZ1RpbWU7CisgICAgYm9vbCBtX2hhc0VuY29kZWRWaWRlb1NhbXBsZXMgeyBmYWxzZSB9Owor
CisgICAgUmV0YWluUHRyPFdlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZT4gbV93cml0ZXJEZWxlZ2F0
ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VU
V1JJVEVSREVMRUdBVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL01lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyQ29jb2EubW0KaW5kZXggZGUxMDcyYTAwYTM3Y2NkOGEzNjFiNzgwN2RiNjFjMjE3
MDBhYmZmYi4uNzRhZDQzOGNjNWE0ZGUxMTUzNjFlNWNiODRmYTMyZmQyMjQ0ZjJhYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFyZWNvcmRlci9jb2NvYS9NZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhcmVjb3JkZXIvY29jb2EvTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXJDb2NvYS5tbQpA
QCAtMjMsNzAgKzIzLDEwMyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXJDb2NvYS5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRB
VElPTikKLQotI2ltcG9ydCAiQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oIgotI2ltcG9ydCAiTG9n
Z2luZy5oIgotI2ltcG9ydCAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKLSNpbXBvcnQgIldl
YkF1ZGlvQnVmZmVyTGlzdC5oIgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRXcml0ZXIu
aD4KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVySW5wdXQuaD4KLSNpbXBvcnQg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2ltcG9ydCA8d3RmL0ZpbGVTeXN0ZW0uaD4KLQot
I2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+Ci0jaW1wb3J0IDxwYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaD4KLQotI3VuZGVmIEFWRW5jb2RlckJpdFJhdGVLZXkKLSNk
ZWZpbmUgQVZFbmNvZGVyQml0UmF0ZUtleSBnZXRBVkVuY29kZXJCaXRSYXRlS2V5V2l0aEZhbGxi
YWNrKCkKLSN1bmRlZiBBVkZvcm1hdElES2V5Ci0jZGVmaW5lIEFWRm9ybWF0SURLZXkgZ2V0QVZG
b3JtYXRJREtleVdpdGhGYWxsYmFjaygpCi0jdW5kZWYgQVZOdW1iZXJPZkNoYW5uZWxzS2V5Ci0j
ZGVmaW5lIEFWTnVtYmVyT2ZDaGFubmVsc0tleSBnZXRBVk51bWJlck9mQ2hhbm5lbHNLZXlXaXRo
RmFsbGJhY2soKQotI3VuZGVmIEFWU2FtcGxlUmF0ZUtleQotI2RlZmluZSBBVlNhbXBsZVJhdGVL
ZXkgZ2V0QVZTYW1wbGVSYXRlS2V5V2l0aEZhbGxiYWNrKCkKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlckNvY29hLmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKKworI2luY2x1
ZGUgIkF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oIgorI2luY2x1ZGUgIkF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuaCIKKyNpbmNsdWRlICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
aCIKKyNpbmNsdWRlICJXZWJBdWRpb0J1ZmZlckxpc3QuaCIKKyNpbmNsdWRlIDxBVkZvdW5kYXRp
b24vQVZBc3NldFdyaXRlci5oPgorI2luY2x1ZGUgPEFWRm91bmRhdGlvbi9BVkFzc2V0V3JpdGVy
SW5wdXQuaD4KKyNpbmNsdWRlIDxBVkZvdW5kYXRpb24vQVZBc3NldFdyaXRlcl9Qcml2YXRlLmg+
CisjaW5jbHVkZSA8cGFsL2F2Zm91bmRhdGlvbi9NZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KKyNp
bmNsdWRlIDx3dGYvQmxvY2tQdHIuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPHd0Zi9jZi9UeXBlQ2Fz
dHNDRi5oPgorCisjaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CisjaW5jbHVk
ZSA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CisKK0BpbnRlcmZhY2UgV2ViQVZB
c3NldFdyaXRlckRlbGVnYXRlIDogTlNPYmplY3QgPEFWQXNzZXRXcml0ZXJEZWxlZ2F0ZT4gewor
ICAgIFdlYWtQdHI8V2ViQ29yZTo6TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IG1fd3JpdGVy
OworfQogCi1uYW1lc3BhY2UgV2ViQ29yZSB7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXcml0
ZXI6KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKil3cml0ZXI7CistICh2b2lk
KWNsb3NlOwogCi11c2luZyBuYW1lc3BhY2UgUEFMOworQGVuZAogCi1zdGF0aWMgTlNTdHJpbmcg
KmdldEFWRm9ybWF0SURLZXlXaXRoRmFsbGJhY2soKQorQGltcGxlbWVudGF0aW9uIFdlYkFWQXNz
ZXRXcml0ZXJEZWxlZ2F0ZSB7Cit9OworCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXcml0ZXI6
KFdlYkNvcmU6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKil3cml0ZXIKIHsKLSAgICBpZiAo
UEFMOjpjYW5Mb2FkX0FWRm91bmRhdGlvbl9BVkZvcm1hdElES2V5KCkpCi0gICAgICAgIHJldHVy
biBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZGb3JtYXRJREtleSgpOworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoc2VsZikKKyAg
ICAgICAgc2VsZi0+bV93cml0ZXIgPSBtYWtlV2Vha1B0cih3cml0ZXIpOwogCi0gICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQgdG8gbG9hZCBBVkZvcm1hdElES2V5Iik7Ci0gICAg
cmV0dXJuIEAiQVZGb3JtYXRJREtleSI7CisgICAgcmV0dXJuIHNlbGY7CiB9CiAKLXN0YXRpYyBO
U1N0cmluZyAqZ2V0QVZOdW1iZXJPZkNoYW5uZWxzS2V5V2l0aEZhbGxiYWNrKCkKKy0gKHZvaWQp
YXNzZXRXcml0ZXI6KEFWQXNzZXRXcml0ZXIgKilhc3NldFdyaXRlciBkaWRQcm9kdWNlRnJhZ21l
bnRlZEhlYWRlckRhdGE6KE5TRGF0YSAqKWZyYWdtZW50ZWRIZWFkZXJEYXRhCiB7Ci0gICAgaWYg
KFBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZOdW1iZXJPZkNoYW5uZWxzS2V5KCkpCi0gICAg
ICAgIHJldHVybiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZOdW1iZXJPZkNoYW5uZWxzS2V5KCk7
CisgICAgVU5VU0VEX1BBUkFNKGFzc2V0V3JpdGVyKTsKKyAgICBpZiAoIWlzTWFpblRocmVhZCgp
KSB7CisgICAgICAgIGlmIChhdXRvIHNpemUgPSBbZnJhZ21lbnRlZEhlYWRlckRhdGEgbGVuZ3Ro
XSkgeworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IFJldGFp
blB0cjxXZWJBVkFzc2V0V3JpdGVyRGVsZWdhdGU+KHNlbGYpLCBidWZmZXIgPSBXZWJDb3JlOjpT
aGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oW2ZyYWdtZW50ZWRI
ZWFkZXJEYXRhIGJ5dGVzXSksIHNpemUpXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlm
IChwcm90ZWN0ZWRTZWxmLT5tX3dyaXRlcikKKyAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVk
U2VsZi0+bV93cml0ZXItPmFwcGVuZERhdGEoV1RGTW92ZShidWZmZXIpKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYSwgIkZhaWxlZCB0byBsb2FkIEFWTnVtYmVyT2ZDaGFubmVsc0tleSIpOwot
ICAgIHJldHVybiBAIkFWTnVtYmVyT2ZDaGFubmVsc0tleSI7CisgICAgaWYgKG1fd3JpdGVyKQor
ICAgICAgICBtX3dyaXRlci0+YXBwZW5kRGF0YShzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oW2Zy
YWdtZW50ZWRIZWFkZXJEYXRhIGJ5dGVzXSksIFtmcmFnbWVudGVkSGVhZGVyRGF0YSBsZW5ndGhd
KTsKIH0KIAotc3RhdGljIE5TU3RyaW5nICpnZXRBVlNhbXBsZVJhdGVLZXlXaXRoRmFsbGJhY2so
KQorLSAodm9pZClhc3NldFdyaXRlcjooQVZBc3NldFdyaXRlciAqKWFzc2V0V3JpdGVyIGRpZFBy
b2R1Y2VGcmFnbWVudGVkTWVkaWFEYXRhOihOU0RhdGEgKilmcmFnbWVudGVkTWVkaWFEYXRhIGZy
YWdtZW50ZWRNZWRpYURhdGFSZXBvcnQ6KEFWRnJhZ21lbnRlZE1lZGlhRGF0YVJlcG9ydCAqKWZy
YWdtZW50ZWRNZWRpYURhdGFSZXBvcnQKIHsKLSAgICBpZiAoUEFMOjpjYW5Mb2FkX0FWRm91bmRh
dGlvbl9BVlNhbXBsZVJhdGVLZXkoKSkKLSAgICAgICAgcmV0dXJuIFBBTDo6Z2V0X0FWRm91bmRh
dGlvbl9BVlNhbXBsZVJhdGVLZXkoKTsKKyAgICBVTlVTRURfUEFSQU0oYXNzZXRXcml0ZXIpOwor
ICAgIFVOVVNFRF9QQVJBTShmcmFnbWVudGVkTWVkaWFEYXRhUmVwb3J0KTsKKyAgICBpZiAoIWlz
TWFpblRocmVhZCgpKSB7CisgICAgICAgIGlmIChhdXRvIHNpemUgPSBbZnJhZ21lbnRlZE1lZGlh
RGF0YSBsZW5ndGhdKSB7CisgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRT
ZWxmID0gUmV0YWluUHRyPFdlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZT4oc2VsZiksIGJ1ZmZlciA9
IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihb
ZnJhZ21lbnRlZE1lZGlhRGF0YSBieXRlc10pLCBzaXplKV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
ICAgICAgICBpZiAocHJvdGVjdGVkU2VsZi0+bV93cml0ZXIpCisgICAgICAgICAgICAgICAgICAg
IHByb3RlY3RlZFNlbGYtPm1fd3JpdGVyLT5hcHBlbmREYXRhKFdURk1vdmUoYnVmZmVyKSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQogCi0gICAg
UkVMRUFTRV9MT0dfRVJST1IoTWVkaWEsICJGYWlsZWQgdG8gbG9hZCBBVlNhbXBsZVJhdGVLZXki
KTsKLSAgICByZXR1cm4gQCJBVlNhbXBsZVJhdGVLZXkiOworICAgIGlmIChtX3dyaXRlcikKKyAg
ICAgICAgbV93cml0ZXItPmFwcGVuZERhdGEoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KFtmcmFn
bWVudGVkTWVkaWFEYXRhIGJ5dGVzXSksIFtmcmFnbWVudGVkTWVkaWFEYXRhIGxlbmd0aF0pOwog
fQogCi1zdGF0aWMgTlNTdHJpbmcgKmdldEFWRW5jb2RlckJpdFJhdGVLZXlXaXRoRmFsbGJhY2so
KQorLSAodm9pZCljbG9zZQogewotICAgIGlmIChQQUw6OmNhbkxvYWRfQVZGb3VuZGF0aW9uX0FW
RW5jb2RlckJpdFJhdGVLZXkoKSkKLSAgICAgICAgcmV0dXJuIFBBTDo6Z2V0X0FWRm91bmRhdGlv
bl9BVkVuY29kZXJCaXRSYXRlS2V5KCk7CisgICAgbV93cml0ZXIgPSBudWxscHRyOworfQorCitA
ZW5kCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKIAotICAg
IFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhLCAiRmFpbGVkIHRvIGxvYWQgQVZFbmNvZGVyQml0UmF0
ZUtleSIpOwotICAgIHJldHVybiBAIkFWRW5jb2RlckJpdFJhdGVLZXkiOworUmVmUHRyPE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyPiBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y3JlYXRl
KGJvb2wgaGFzQXVkaW8sIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBhdXRvIHdyaXRl
ciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoaGFzQXVkaW8sIHdp
ZHRoICYmIGhlaWdodCkpOworICAgIGlmICghd3JpdGVyLT5pbml0aWFsaXplKCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiB3cml0ZXI7CiB9CiAKIFJlZlB0cjxNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmNyZWF0ZShj
b25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogYXVkaW9UcmFjaywgY29uc3QgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUqIHZpZGVvVHJhY2spCkBAIC0xMDAsMTc5ICsxMzMsMjU0IEBAIFJlZlB0
cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6
OmNyZWF0ZShjb25zdCBNZWRpCiAgICAgcmV0dXJuIGNyZWF0ZSghIWF1ZGlvVHJhY2ssIHdpZHRo
LCBoZWlnaHQpOwogfQogCi1SZWZQdHI8TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI+IE1lZGlh
UmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjcmVhdGUoYm9vbCBoYXNBdWRpbywgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KQordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6Y29tcHJlc3NlZFZp
ZGVvT3V0cHV0QnVmZmVyQ2FsbGJhY2sodm9pZCAqbWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIs
IENNQnVmZmVyUXVldWVUcmlnZ2VyVG9rZW4pCiB7Ci0gICAgTlNTdHJpbmcgKmRpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OmNyZWF0ZVRlbXBvcmFyeURpcmVjdG9yeShAInZpZGVvcyIpOwotICAgIE5T
U3RyaW5nICpmaWxlbmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiLyVsbGQubXA0
IiwgQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSkudmFsdWVdOwotICAg
IE5TU3RyaW5nICpwYXRoID0gW2RpcmVjdG9yeSBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpmaWxl
bmFtZV07CisgICAgYXV0byAqd3JpdGVyID0gc3RhdGljX2Nhc3Q8TWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXIqPihtZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcik7CisgICAgd3JpdGVyLT5wcm9j
ZXNzTmV3Q29tcHJlc3NlZFZpZGVvU2FtcGxlQnVmZmVycygpOworfQogCi0gICAgTlNVUkwgKm91
dHB1dFVSTCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGF0aF07Ci0gICAgU3RyaW5nIGZpbGVQ
YXRoID0gW3BhdGggVVRGOFN0cmluZ107Cit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVy
Ojpjb21wcmVzc2VkQXVkaW9PdXRwdXRCdWZmZXJDYWxsYmFjayh2b2lkICptZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlciwgQ01CdWZmZXJRdWV1ZVRyaWdnZXJUb2tlbikKK3sKKyAgICBhdXRvICp3
cml0ZXIgPSBzdGF0aWNfY2FzdDxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcio+KG1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyKTsKKyAgICB3cml0ZXItPnByb2Nlc3NOZXdDb21wcmVzc2VkQXVk
aW9TYW1wbGVCdWZmZXJzKCk7Cit9CisKK01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpNZWRp
YVJlY29yZGVyUHJpdmF0ZVdyaXRlcihib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvKQorICAg
IDogbV9oYXNBdWRpbyhoYXNBdWRpbykKKyAgICAsIG1faGFzVmlkZW8oaGFzVmlkZW8pCit7Cit9
CisKK01lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjp+TWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXIoKQoreworICAgIGNsZWFyKCk7Cit9CisKK2Jvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmluaXRpYWxpemUoKQorewogICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOwotICAgIGF1dG8g
YXZBc3NldFdyaXRlciA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkFzc2V0V3JpdGVySW5zdGFuY2Uo
KSBpbml0V2l0aFVSTDpvdXRwdXRVUkwgZmlsZVR5cGU6QVZGaWxlVHlwZU1QRUc0IGVycm9yOiZl
cnJvcl0pOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCisgICAgbV93
cml0ZXIgPSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZBc3NldFdyaXRlckluc3RhbmNlKCkgaW5pdFdp
dGhGaWxlVHlwZTpBVkZpbGVUeXBlTVBFRzQgZXJyb3I6JmVycm9yXSk7CisgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiY3JlYXRlIEFWQXNzZXRXcml0ZXIgaW5zdGFuY2Ug
ZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlbGQiLCAobG9uZyllcnJvci5jb2RlKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBhdXRv
IHdyaXRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoV1RGTW92
ZShhdkFzc2V0V3JpdGVyKSwgV1RGTW92ZShmaWxlUGF0aCkpKTsKKyAgICBtX3dyaXRlckRlbGVn
YXRlID0gYWRvcHROUyhbW1dlYkFWQXNzZXRXcml0ZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhX
cml0ZXI6IHRoaXNdKTsKKyAgICBbbV93cml0ZXIuZ2V0KCkgc2V0RGVsZWdhdGU6bV93cml0ZXJE
ZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBpZiAoaGFzQXVkaW8gJiYgIXdyaXRlci0+c2V0QXVkaW9J
bnB1dCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmICh3aWR0aCAmJiBoZWln
aHQpIHsKLSAgICAgICAgaWYgKCF3cml0ZXItPnNldFZpZGVvSW5wdXQod2lkdGgsIGhlaWdodCkp
Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAobV9oYXNBdWRpbykgeworICAg
ICAgICBtX2F1ZGlvQ29tcHJlc3NvciA9IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcjo6Y3Jl
YXRlKGNvbXByZXNzZWRBdWRpb091dHB1dEJ1ZmZlckNhbGxiYWNrLCB0aGlzKTsKKyAgICAgICAg
aWYgKCFtX2F1ZGlvQ29tcHJlc3NvcikKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
Ci0KLSAgICByZXR1cm4gV1RGTW92ZSh3cml0ZXIpOworICAgIGlmIChtX2hhc1ZpZGVvKSB7Cisg
ICAgICAgIG1fdmlkZW9Db21wcmVzc29yID0gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpj
cmVhdGUoa0NNVmlkZW9Db2RlY1R5cGVfSDI2NCwgY29tcHJlc3NlZFZpZGVvT3V0cHV0QnVmZmVy
Q2FsbGJhY2ssIHRoaXMpOworICAgICAgICBpZiAoIW1fdmlkZW9Db21wcmVzc29yKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotTWVkaWFS
ZWNvcmRlclByaXZhdGVXcml0ZXI6Ok1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyKFJldGFpblB0
cjxBVkFzc2V0V3JpdGVyPiYmIGF2QXNzZXRXcml0ZXIsIFN0cmluZyYmIGZpbGVQYXRoKQotICAg
IDogbV93cml0ZXIoV1RGTW92ZShhdkFzc2V0V3JpdGVyKSkKLSAgICAsIG1fcGF0aChXVEZNb3Zl
KGZpbGVQYXRoKSkKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnByb2Nlc3NOZXdD
b21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXJzKCkKIHsKKyAgICBBU1NFUlQobV9oYXNWaWRlbyk7
CisgICAgaWYgKCFtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pIHsKKyAgICAgICAgbV92aWRlb0Zv
cm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihtX3Zp
ZGVvQ29tcHJlc3Nvci0+Z2V0T3V0cHV0U2FtcGxlQnVmZmVyKCkpOworICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aGlzXSB7CisgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgaWYgKG1faGFzQXVkaW8gJiYgIW1fYXVkaW9Gb3JtYXREZXNjcmlwdGlvbikKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHN0YXJ0QXNzZXRXcml0ZXIoKTsKKyAgICAg
ICAgfSk7CisgICAgfQorICAgIGlmICghbV9oYXNTdGFydGVkV3JpdGluZykKKyAgICAgICAgcmV0
dXJuOworICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7CiB9CiAKLU1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjp+TWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIoKQordm9pZCBN
ZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6cHJvY2Vzc05ld0NvbXByZXNzZWRBdWRpb1NhbXBs
ZUJ1ZmZlcnMoKQogewotICAgIGNsZWFyKCk7CisgICAgQVNTRVJUKG1faGFzQXVkaW8pOworICAg
IGlmICghbV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uKSB7CisgICAgICAgIG1fYXVkaW9Gb3JtYXRE
ZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24obV9hdWRpb0Nv
bXByZXNzb3ItPmdldE91dHB1dFNhbXBsZUJ1ZmZlcigpKTsKKyAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGhpc10geworICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlm
IChtX2hhc1ZpZGVvICYmICFtX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24pCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgICAgICBzdGFydEFzc2V0V3JpdGVyKCk7CisgICAgICAgIH0p
OworICAgIH0KKyAgICBpZiAoIW1faGFzU3RhcnRlZFdyaXRpbmcpCisgICAgICAgIHJldHVybjsK
KyAgICBhcHBlbmRDb21wcmVzc2VkU2FtcGxlQnVmZmVycygpOwogfQogCi12b2lkIE1lZGlhUmVj
b3JkZXJQcml2YXRlV3JpdGVyOjpjbGVhcigpCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3Jp
dGVyOjpzdGFydEFzc2V0V3JpdGVyKCkKIHsKLSAgICBpZiAobV92aWRlb0lucHV0KSB7Ci0gICAg
ICAgIG1fdmlkZW9JbnB1dC5jbGVhcigpOwotICAgICAgICBkaXNwYXRjaF9yZWxlYXNlKG1fdmlk
ZW9QdWxsUXVldWUpOworICAgIGlmIChtX2hhc1ZpZGVvKSB7CisgICAgICAgIG1fdmlkZW9Bc3Nl
dFdyaXRlcklucHV0ID0gYWRvcHROUyhbUEFMOjphbGxvY0FWQXNzZXRXcml0ZXJJbnB1dEluc3Rh
bmNlKCkgaW5pdFdpdGhNZWRpYVR5cGU6QVZNZWRpYVR5cGVWaWRlbyBvdXRwdXRTZXR0aW5nczpu
aWwgc291cmNlRm9ybWF0SGludDptX3ZpZGVvRm9ybWF0RGVzY3JpcHRpb24uZ2V0KCldKTsKKyAg
ICAgICAgW21fdmlkZW9Bc3NldFdyaXRlcklucHV0IHNldEV4cGVjdHNNZWRpYURhdGFJblJlYWxU
aW1lOnRydWVdOworICAgICAgICBpZiAoIVttX3dyaXRlci5nZXQoKSBjYW5BZGRJbnB1dDptX3Zp
ZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKV0pIHsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OnN0YXJ0QXNzZXRX
cml0ZXIgZmFpbGVkIGNhbkFkZElucHV0IGZvciB2aWRlbyIpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIFttX3dyaXRlci5nZXQoKSBhZGRJbnB1dDptX3ZpZGVvQXNz
ZXRXcml0ZXJJbnB1dC5nZXQoKV07CiAgICAgfQotICAgIGlmIChtX2F1ZGlvSW5wdXQpIHsKLSAg
ICAgICAgbV9hdWRpb0lucHV0LmNsZWFyKCk7Ci0gICAgICAgIGRpc3BhdGNoX3JlbGVhc2UobV9h
dWRpb1B1bGxRdWV1ZSk7CisKKyAgICBpZiAobV9oYXNBdWRpbykgeworICAgICAgICBtX2F1ZGlv
QXNzZXRXcml0ZXJJbnB1dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkFzc2V0V3JpdGVySW5wdXRJ
bnN0YW5jZSgpIGluaXRXaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQXVkaW8gb3V0cHV0U2V0dGlu
Z3M6bmlsIHNvdXJjZUZvcm1hdEhpbnQ6bV9hdWRpb0Zvcm1hdERlc2NyaXB0aW9uLmdldCgpXSk7
CisgICAgICAgIFttX2F1ZGlvQXNzZXRXcml0ZXJJbnB1dCBzZXRFeHBlY3RzTWVkaWFEYXRhSW5S
ZWFsVGltZTp0cnVlXTsKKyAgICAgICAgaWYgKCFbbV93cml0ZXIuZ2V0KCkgY2FuQWRkSW5wdXQ6
bV9hdWRpb0Fzc2V0V3JpdGVySW5wdXQuZ2V0KCldKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihNZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFz
c2V0V3JpdGVyIGZhaWxlZCBjYW5BZGRJbnB1dCBmb3IgYXVkaW8iKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBbbV93cml0ZXIuZ2V0KCkgYWRkSW5wdXQ6bV9hdWRp
b0Fzc2V0V3JpdGVySW5wdXQuZ2V0KCldOwogICAgIH0KLSAgICBpZiAobV93cml0ZXIpCi0gICAg
ICAgIG1fd3JpdGVyLmNsZWFyKCk7CiAKLSAgICBtX2RhdGEgPSBudWxscHRyOwotICAgIGlmIChh
dXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5k
bGVyKSkKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAgaWYgKCFbbV93
cml0ZXIuZ2V0KCkgc3RhcnRXcml0aW5nXSkgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihN
ZWRpYVN0cmVhbSwgIk1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzdGFydEFzc2V0V3JpdGVy
IGZhaWxlZCBzdGFydFdyaXRpbmciKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtt
X3dyaXRlci5nZXQoKSBzdGFydFNlc3Npb25BdFNvdXJjZVRpbWU6a0NNVGltZVplcm9dOworCisg
ICAgYXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKTsKKworICAgIG1faGFzU3RhcnRlZFdy
aXRpbmcgPSB0cnVlOwogfQogCi1ib29sIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpzZXRW
aWRlb0lucHV0KGludCB3aWR0aCwgaW50IGhlaWdodCkKK2Jvb2wgTWVkaWFSZWNvcmRlclByaXZh
dGVXcml0ZXI6OmFwcGVuZENvbXByZXNzZWRBdWRpb1NhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgQVNT
RVJUKCFtX3ZpZGVvSW5wdXQpOwotICAgIAotICAgIE5TRGljdGlvbmFyeSAqY29tcHJlc3Npb25Q
cm9wZXJ0aWVzID0gQHsKLSAgICAgICAgQVZWaWRlb0F2ZXJhZ2VCaXRSYXRlS2V5IDogQCh3aWR0
aCAqIGhlaWdodCAqIDEyKSwKLSAgICAgICAgQVZWaWRlb0V4cGVjdGVkU291cmNlRnJhbWVSYXRl
S2V5IDogQCgzMCksCi0gICAgICAgIEFWVmlkZW9NYXhLZXlGcmFtZUludGVydmFsS2V5IDogQCgx
MjApLAotICAgICAgICBBVlZpZGVvUHJvZmlsZUxldmVsS2V5IDogQVZWaWRlb1Byb2ZpbGVMZXZl
bEgyNjRNYWluQXV0b0xldmVsCi0gICAgfTsKLQotICAgIE5TRGljdGlvbmFyeSAqdmlkZW9TZXR0
aW5ncyA9IEB7Ci0gICAgICAgIEFWVmlkZW9Db2RlY0tleTogQVZWaWRlb0NvZGVjSDI2NCwKLSAg
ICAgICAgQVZWaWRlb1dpZHRoS2V5OiBAKHdpZHRoKSwKLSAgICAgICAgQVZWaWRlb0hlaWdodEtl
eTogQChoZWlnaHQpLAotICAgICAgICBBVlZpZGVvQ29tcHJlc3Npb25Qcm9wZXJ0aWVzS2V5OiBj
b21wcmVzc2lvblByb3BlcnRpZXMKLSAgICB9OwotICAgIAotICAgIG1fdmlkZW9JbnB1dCA9IGFk
b3B0TlMoW1BBTDo6YWxsb2NBVkFzc2V0V3JpdGVySW5wdXRJbnN0YW5jZSgpIGluaXRXaXRoTWVk
aWFUeXBlOkFWTWVkaWFUeXBlVmlkZW8gb3V0cHV0U2V0dGluZ3M6dmlkZW9TZXR0aW5ncyBzb3Vy
Y2VGb3JtYXRIaW50Om5pbF0pOwotICAgIFttX3ZpZGVvSW5wdXQgc2V0RXhwZWN0c01lZGlhRGF0
YUluUmVhbFRpbWU6dHJ1ZV07Ci0gICAgCi0gICAgaWYgKCFbbV93cml0ZXIgY2FuQWRkSW5wdXQ6
bV92aWRlb0lucHV0LmdldCgpXSkgewotICAgICAgICBtX3ZpZGVvSW5wdXQgPSBudWxscHRyOwot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwgInRoZSB2aWRlbyBpbnB1dCBp
cyBub3QgYWxsb3dlZCB0byBhZGQgdG8gdGhlIEFWQXNzZXRXcml0ZXIiKTsKKyAgICBpZiAoIW1f
YXVkaW9Db21wcmVzc29yKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIFttX3dy
aXRlciBhZGRJbnB1dDptX3ZpZGVvSW5wdXQuZ2V0KCldOwotICAgIG1fdmlkZW9QdWxsUXVldWUg
PSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYkNvcmVWaWRlb1JlY29yZGluZ1B1bGxCdWZmZXJR
dWV1ZSIsIERJU1BBVENIX1FVRVVFX1NFUklBTCk7CisKKyAgICBpZiAoIVttX2F1ZGlvQXNzZXRX
cml0ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGF1dG8gYnVmZmVyID0gbV9hdWRpb0NvbXByZXNzb3ItPnRha2VPdXRwdXRTYW1w
bGVCdWZmZXIoKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgW21fYXVkaW9Bc3NldFdyaXRlcklucHV0LmdldCgpIGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZm
ZXIuZ2V0KCldOwogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE1lZGlhUmVjb3JkZXJQcml2
YXRlV3JpdGVyOjpzZXRBdWRpb0lucHV0KCkKK2Jvb2wgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmFwcGVuZENvbXByZXNzZWRWaWRlb1NhbXBsZUJ1ZmZlcigpCiB7Ci0gICAgQVNTRVJUKCFt
X2F1ZGlvSW5wdXQpOwotCi0gICAgTlNEaWN0aW9uYXJ5ICphdWRpb1NldHRpbmdzID0gQHsKLSAg
ICAgICAgQVZFbmNvZGVyQml0UmF0ZUtleSA6IEAoMjgwMDApLAotICAgICAgICBBVkZvcm1hdElE
S2V5IDogQChrQXVkaW9Gb3JtYXRNUEVHNEFBQyksCi0gICAgICAgIEFWTnVtYmVyT2ZDaGFubmVs
c0tleSA6IEAoMSksCi0gICAgICAgIEFWU2FtcGxlUmF0ZUtleSA6IEAoMjIwNTApCi0gICAgfTsK
LQotICAgIG1fYXVkaW9JbnB1dCA9IGFkb3B0TlMoW1BBTDo6YWxsb2NBVkFzc2V0V3JpdGVySW5w
dXRJbnN0YW5jZSgpIGluaXRXaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQXVkaW8gb3V0cHV0U2V0
dGluZ3M6YXVkaW9TZXR0aW5ncyBzb3VyY2VGb3JtYXRIaW50Om5pbF0pOwotICAgIFttX2F1ZGlv
SW5wdXQgc2V0RXhwZWN0c01lZGlhRGF0YUluUmVhbFRpbWU6dHJ1ZV07Ci0gICAgCi0gICAgaWYg
KCFbbV93cml0ZXIgY2FuQWRkSW5wdXQ6bV9hdWRpb0lucHV0LmdldCgpXSkgewotICAgICAgICBt
X2F1ZGlvSW5wdXQgPSBudWxscHRyOwotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0
cmVhbSwgInRoZSBhdWRpbyBpbnB1dCBpcyBub3QgYWxsb3dlZCB0byBhZGQgdG8gdGhlIEFWQXNz
ZXRXcml0ZXIiKTsKKyAgICBpZiAoIW1fdmlkZW9Db21wcmVzc29yKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotICAgIFttX3dyaXRlciBhZGRJbnB1dDptX2F1ZGlvSW5wdXQuZ2V0KCld
OwotICAgIG1fYXVkaW9QdWxsUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoIldlYkNvcmVB
dWRpb1JlY29yZGluZ1B1bGxCdWZmZXJRdWV1ZSIsIERJU1BBVENIX1FVRVVFX1NFUklBTCk7CisK
KyAgICBpZiAoIVttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0
YV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gYnVmZmVyID0gbV92aWRlb0Nv
bXByZXNzb3ItPnRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKTsKKyAgICBpZiAoIWJ1ZmZlcikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lID0g
Q01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoYnVmZmVyLmdldCgpKTsKKyAg
ICBtX2xhc3RWaWRlb0RlY29kaW5nVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0RGVjb2RlVGltZVN0
YW1wKGJ1ZmZlci5nZXQoKSk7CisgICAgbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzID0gdHJ1ZTsK
KworICAgIFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dC5nZXQoKSBhcHBlbmRTYW1wbGVCdWZmZXI6
YnVmZmVyLmdldCgpXTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVy
UHJpdmF0ZVdyaXRlcjo6YXBwZW5kQ29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoKQoreworICAgIHdo
aWxlIChhcHBlbmRDb21wcmVzc2VkVmlkZW9TYW1wbGVCdWZmZXIoKSB8fCBhcHBlbmRDb21wcmVz
c2VkQXVkaW9TYW1wbGVCdWZmZXIoKSkgeyB9OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXBw
ZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIoQVZBc3NldFdyaXRlcklucHV0ICph
c3NldFdyaXRlcklucHV0LCBDTVRpbWUgcHJlc2VudGF0aW9uVGltZVN0YW1wLCBDTVRpbWUgZGVj
b2RpbmdUaW1lU3RhbXApCit7CisgICAgQ01TYW1wbGVUaW1pbmdJbmZvIHRpbWluZ0luZm8gPSB7
IGtDTVRpbWVJbnZhbGlkLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGRlY29kaW5nVGltZVN0YW1w
fTsKKworICAgIENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlciA9IE5VTEw7CisgICAgYXV0byBlcnJv
ciA9IENNU2FtcGxlQnVmZmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIE5VTEwsIHRydWUs
IE5VTEwsIE5VTEwsIE5VTEwsIDAsIDEsICZ0aW1pbmdJbmZvLCAwLCBOVUxMLCAmYnVmZmVyKTsK
KyAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0s
ICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBhcHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJh
dGlvbk1hcmtlciBmYWlsZWQgQ01TYW1wbGVCdWZmZXJDcmVhdGUgd2l0aCAlZCIsIGVycm9yKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhdXRvIHNhbXBsZUJ1ZmZlciA9IGFkb3B0Q0Yo
YnVmZmVyKTsKKworICAgIENNU2V0QXR0YWNobWVudChzYW1wbGVCdWZmZXIuZ2V0KCksIGtDTVNh
bXBsZUJ1ZmZlckF0dGFjaG1lbnRLZXlfRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb24sIGtDRkJv
b2xlYW5UcnVlLCBrQ01BdHRhY2htZW50TW9kZV9TaG91bGRQcm9wYWdhdGUpOworICAgIGlmICgh
W2Fzc2V0V3JpdGVySW5wdXQgYXBwZW5kU2FtcGxlQnVmZmVyOnNhbXBsZUJ1ZmZlci5nZXQoKV0p
CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclBy
aXZhdGVXcml0ZXIgYXBwZW5kU2FtcGxlQnVmZmVyIHRvIHdyaXRlciBpbnB1dCBmYWlsZWQiKTsK
K30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kRW5kT2ZWaWRlb1Nh
bXBsZUR1cmF0aW9uSWZOZWVkZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIGlmICghbV9oYXNFbmNvZGVkVmlkZW9TYW1wbGVzKSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KFttX3ZpZGVvQXNzZXRXcml0ZXJJbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pIHsKKyAg
ICAgICAgYXBwZW5kRW5kc1ByZXZpb3VzU2FtcGxlRHVyYXRpb25NYXJrZXIobV92aWRlb0Fzc2V0
V3JpdGVySW5wdXQuZ2V0KCksIG1fbGFzdFZpZGVvUHJlc2VudGF0aW9uVGltZSwgbV9sYXN0Vmlk
ZW9EZWNvZGluZ1RpbWUpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgYXV0byBibG9jayA9IG1ha2VCbG9ja1B0cihbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKSB7Cisg
ICAgICAgICAgICBhcHBlbmRFbmRzUHJldmlvdXNTYW1wbGVEdXJhdGlvbk1hcmtlcihtX3ZpZGVv
QXNzZXRXcml0ZXJJbnB1dC5nZXQoKSwgbV9sYXN0VmlkZW9QcmVzZW50YXRpb25UaW1lLCBtX2xh
c3RWaWRlb0RlY29kaW5nVGltZSk7CisgICAgICAgICAgICBbbV92aWRlb0Fzc2V0V3JpdGVySW5w
dXQgbWFya0FzRmluaXNoZWRdOworICAgICAgICB9CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgfSk7CisgICAgW21fdmlkZW9Bc3NldFdyaXRlcklucHV0IHJlcXVlc3RNZWRpYURh
dGFXaGVuUmVhZHlPblF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgdXNpbmdCbG9jazpi
bG9jay5nZXQoKV07Cit9CisKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZsdXNo
Q29tcHJlc3NlZFNhbXBsZUJ1ZmZlcnMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGFwcGVuZENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKCk7Cisg
ICAgYXBwZW5kRW5kT2ZWaWRlb1NhbXBsZUR1cmF0aW9uSWZOZWVkZWQoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCit2b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjpjbGVh
cigpCit7CisgICAgaWYgKG1fd3JpdGVyKQorICAgICAgICBtX3dyaXRlci5jbGVhcigpOworCisg
ICAgbV9kYXRhID0gbnVsbHB0cjsKKyAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUobV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcikpCisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKG51bGxwdHIpOworfQorCisKIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENNU2FtcGxl
QnVmZmVyUmVmPiBjb3B5U2FtcGxlQnVmZmVyV2l0aEN1cnJlbnRUaW1lU3RhbXAoQ01TYW1wbGVC
dWZmZXJSZWYgb3JpZ2luYWxCdWZmZXIpCiB7CiAgICAgQ01UaW1lIHN0YXJ0VGltZSA9IENNQ2xv
Y2tHZXRUaW1lKENNQ2xvY2tHZXRIb3N0VGltZUNsb2NrKCkpOwogICAgIENNSXRlbUNvdW50IGNv
dW50ID0gMDsKICAgICBDTVNhbXBsZUJ1ZmZlckdldFNhbXBsZVRpbWluZ0luZm9BcnJheShvcmln
aW5hbEJ1ZmZlciwgMCwgbmlsLCAmY291bnQpOwotICAgIAorCiAgICAgVmVjdG9yPENNU2FtcGxl
VGltaW5nSW5mbz4gdGltZUluZm8oY291bnQpOwogICAgIENNU2FtcGxlQnVmZmVyR2V0U2FtcGxl
VGltaW5nSW5mb0FycmF5KG9yaWdpbmFsQnVmZmVyLCBjb3VudCwgdGltZUluZm8uZGF0YSgpLCAm
Y291bnQpOwotICAgIAotICAgIGZvciAoQ01JdGVtQ291bnQgaSA9IDA7IGkgPCBjb3VudDsgaSsr
KSB7CisKKyAgICBmb3IgKGF1dG8gaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgICAgIHRp
bWVJbmZvW2ldLmRlY29kZVRpbWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlkOwogICAgICAgICB0aW1l
SW5mb1tpXS5wcmVzZW50YXRpb25UaW1lU3RhbXAgPSBzdGFydFRpbWU7CiAgICAgfQotICAgIAor
CiAgICAgQ01TYW1wbGVCdWZmZXJSZWYgbmV3QnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRvIGVy
cm9yID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBvcmlnaW5hbEJ1ZmZlciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZl
cik7Ci0gICAgaWYgKGVycm9yKQorICAgIGlmIChhdXRvIGVycm9yID0gQ01TYW1wbGVCdWZmZXJD
cmVhdGVDb3B5V2l0aE5ld1RpbWluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBvcmlnaW5hbEJ1ZmZl
ciwgY291bnQsIHRpbWVJbmZvLmRhdGEoKSwgJm5ld0J1ZmZlcikpIHsKKyAgICAgICAgUkVMRUFT
RV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlciBDTVNh
bXBsZUJ1ZmZlckNyZWF0ZUNvcHlXaXRoTmV3VGltaW5nIGZhaWxlZCB3aXRoICVkIiwgZXJyb3Ip
OwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAgICAgcmV0dXJuIGFkb3B0Q0YobmV3
QnVmZmVyKTsKIH0KIAogdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5kVmlk
ZW9TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQogewotICAgIEFT
U0VSVChtX3ZpZGVvSW5wdXQpOwotICAgIGlmIChtX2lzU3RvcHBlZCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKCFtX2hhc1N0YXJ0ZWRXcml0aW5nKSB7Ci0gICAgICAgIGlmICghW21fd3Jp
dGVyIHN0YXJ0V3JpdGluZ10pIHsKLSAgICAgICAgICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKLSAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFtLCAiY3JlYXRlIEFWQXNzZXRX
cml0ZXIgaW5zdGFuY2UgZmFpbGVkIHdpdGggZXJyb3IgY29kZSAlbGQiLCAobG9uZylbbV93cml0
ZXIgZXJyb3JdKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBbbV93
cml0ZXIgc3RhcnRTZXNzaW9uQXRTb3VyY2VUaW1lOkNNQ2xvY2tHZXRUaW1lKENNQ2xvY2tHZXRI
b3N0VGltZUNsb2NrKCkpXTsKLSAgICAgICAgbV9oYXNTdGFydGVkV3JpdGluZyA9IHRydWU7Ci0g
ICAgICAgIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gcHJvdGVjdGVkVGhpcyA9
IHRoaXM7Ci0gICAgICAgIFttX3ZpZGVvSW5wdXQgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFkeU9u
UXVldWU6bV92aWRlb1B1bGxRdWV1ZSB1c2luZ0Jsb2NrOlt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAg
ICAgIGlmICghW21fdmlkZW9JbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pCi0gICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV92aWRlb0xvY2spOwotICAgICAgICAgICAgICAgIGlmIChtX3ZpZGVvQnVmZmVyUG9vbC5p
c0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGF1
dG8gYnVmZmVyID0gbV92aWRlb0J1ZmZlclBvb2wudGFrZUZpcnN0KCk7Ci0gICAgICAgICAgICAg
ICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFbbV92aWRlb0lu
cHV0IGFwcGVuZFNhbXBsZUJ1ZmZlcjpidWZmZXIuZ2V0KCldKQotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0gd2hpbGUgKHRydWUpOwotICAgICAgICAgICAgaWYgKG1f
aXNTdG9wcGVkICYmIG1fdmlkZW9CdWZmZXJQb29sLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
ICAgIFttX3ZpZGVvSW5wdXQgbWFya0FzRmluaXNoZWRdOwotICAgICAgICAgICAgICAgIG1fZmlu
aXNoV3JpdGluZ1ZpZGVvU2VtYXBob3JlLnNpZ25hbCgpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9XTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBhdXRvIGJ1ZmZlcldpdGhDdXJyZW50
VGltZSA9IGNvcHlTYW1wbGVCdWZmZXJXaXRoQ3VycmVudFRpbWVTdGFtcChzYW1wbGVCdWZmZXIp
OwotICAgIGlmICghYnVmZmVyV2l0aEN1cnJlbnRUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fdmlkZW9Mb2NrKTsKLSAgICBtX3ZpZGVvQnVmZmVy
UG9vbC5hcHBlbmQoV1RGTW92ZShidWZmZXJXaXRoQ3VycmVudFRpbWUpKTsKKyAgICAvLyBGSVhN
RTogV2Ugc2hvdWxkIG5vdCBzZXQgdGhlIHRpbWVzdGFtcHMgaWYgdGhleSBhcmUgYWxyZWFkeSBz
ZXQuCisgICAgaWYgKGF1dG8gYnVmZmVyV2l0aEN1cnJlbnRUaW1lID0gY29weVNhbXBsZUJ1ZmZl
cldpdGhDdXJyZW50VGltZVN0YW1wKHNhbXBsZUJ1ZmZlcikpCisgICAgICAgIG1fdmlkZW9Db21w
cmVzc29yLT5hZGRTYW1wbGVCdWZmZXIoYnVmZmVyV2l0aEN1cnJlbnRUaW1lLmdldCgpKTsKIH0K
IAogc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01Gb3JtYXREZXNjcmlwdGlvblJlZj4gY3JlYXRl
QXVkaW9Gb3JtYXREZXNjcmlwdGlvbihjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNj
cmlwdGlvbikKQEAgLTI4MCw2OCArMzg4LDM5IEBAIHN0YXRpYyBpbmxpbmUgUmV0YWluUHRyPENN
Rm9ybWF0RGVzY3JpcHRpb25SZWY+IGNyZWF0ZUF1ZGlvRm9ybWF0RGVzY3JpcHRpb24oY29uCiAg
ICAgYXV0byBiYXNpY0Rlc2NyaXB0aW9uID0gV1RGOjpnZXQ8Y29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKj4oZGVzY3JpcHRpb24ucGxhdGZvcm1EZXNjcmlwdGlvbigpLmRlc2NyaXB0
aW9uKTsKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdCA9IG51bGxwdHI7CiAgICAg
YXV0byBlcnJvciA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlvbkNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBiYXNpY0Rlc2NyaXB0aW9uLCAwLCBOVUxMLCAwLCBOVUxMLCBOVUxMLCAmZm9ybWF0
KTsKLSAgICBpZiAoZXJyb3IpCisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKE1lZGlhU3RyZWFtLCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01BdWRpb0Zv
cm1hdERlc2NyaXB0aW9uQ3JlYXRlIGZhaWxlZCB3aXRoICVkIiwgZXJyb3IpOwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAgICAgcmV0dXJuIGFkb3B0Q0YoZm9ybWF0KTsKIH0KIAot
c3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2Ft
cGxlQnVmZmVyV2l0aFBhY2tldERlc2NyaXB0aW9ucyhDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZv
cm1hdCwgc2l6ZV90IHNhbXBsZUNvdW50KQorc3RhdGljIGlubGluZSBSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9E
YXRhJiBkYXRhLCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29u
c3QgV1RGOjpNZWRpYVRpbWUmIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKIHsKLSAgICBDTVRp
bWUgc3RhcnRUaW1lID0gQ01DbG9ja0dldFRpbWUoQ01DbG9ja0dldEhvc3RUaW1lQ2xvY2soKSk7
Ci0gICAgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyID0gbnVsbHB0cjsKLSAgICBhdXRv
IGVycm9yID0gQ01BdWRpb1NhbXBsZUJ1ZmZlckNyZWF0ZVdpdGhQYWNrZXREZXNjcmlwdGlvbnMo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgTlVMTCwgZmFsc2UsIE5VTEwsIE5VTEwsIGZvcm1hdCwgc2Ft
cGxlQ291bnQsIHN0YXJ0VGltZSwgTlVMTCwgJnNhbXBsZUJ1ZmZlcik7Ci0gICAgaWYgKGVycm9y
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gYWRvcHRDRihzYW1wbGVCdWZm
ZXIpOwotfQotCi12b2lkIE1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyOjphcHBlbmRBdWRpb1Nh
bXBsZUJ1ZmZlcihjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYgZGF0YSwgY29uc3QgQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIGNvbnN0IFdURjo6TWVkaWFUaW1lJiwgc2l6ZV90
IHNhbXBsZUNvdW50KQotewotICAgIEFTU0VSVChtX2F1ZGlvSW5wdXQpOwotICAgIGlmICgoIW1f
aGFzU3RhcnRlZFdyaXRpbmcgJiYgbV92aWRlb0lucHV0KSB8fCBtX2lzU3RvcHBlZCkKLSAgICAg
ICAgcmV0dXJuOwogICAgIGF1dG8gZm9ybWF0ID0gY3JlYXRlQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bihkZXNjcmlwdGlvbik7CiAgICAgaWYgKCFmb3JtYXQpCi0gICAgICAgIHJldHVybjsKLSAgICBp
ZiAobV9pc0ZpcnN0QXVkaW9TYW1wbGUpIHsKLSAgICAgICAgaWYgKCFtX3ZpZGVvSW5wdXQpIHsK
LSAgICAgICAgICAgIC8vIGF1ZGlvLW9ubHkgcmVjb3JkaW5nLgotICAgICAgICAgICAgaWYgKCFb
bV93cml0ZXIgc3RhcnRXcml0aW5nXSkgewotICAgICAgICAgICAgICAgIG1faXNTdG9wcGVkID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBbbV93cml0ZXIgc3RhcnRTZXNzaW9uQXRTb3VyY2VUaW1lOkNNQ2xvY2tHZXRUaW1lKENNQ2xv
Y2tHZXRIb3N0VGltZUNsb2NrKCkpXTsKLSAgICAgICAgICAgIG1faGFzU3RhcnRlZFdyaXRpbmcg
PSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIG1faXNGaXJzdEF1ZGlvU2FtcGxlID0gZmFsc2U7
Ci0gICAgICAgIFJlZlB0cjxNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcj4gcHJvdGVjdGVkVGhp
cyA9IHRoaXM7Ci0gICAgICAgIFttX2F1ZGlvSW5wdXQgcmVxdWVzdE1lZGlhRGF0YVdoZW5SZWFk
eU9uUXVldWU6bV9hdWRpb1B1bGxRdWV1ZSB1c2luZ0Jsb2NrOlt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewotICAgICAgICAgICAgZG8gewotICAgICAgICAg
ICAgICAgIGlmICghW21fYXVkaW9JbnB1dCBpc1JlYWR5Rm9yTW9yZU1lZGlhRGF0YV0pCi0gICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9hdWRpb0xvY2spOwotICAgICAgICAgICAgICAgIGlmIChtX2F1ZGlvQnVmZmVyUG9v
bC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
IGF1dG8gYnVmZmVyID0gbV9hdWRpb0J1ZmZlclBvb2wudGFrZUZpcnN0KCk7Ci0gICAgICAgICAg
ICAgICAgbG9ja2VyLnVubG9ja0Vhcmx5KCk7Ci0gICAgICAgICAgICAgICAgW21fYXVkaW9JbnB1
dCBhcHBlbmRTYW1wbGVCdWZmZXI6YnVmZmVyLmdldCgpXTsKLSAgICAgICAgICAgIH0gd2hpbGUg
KHRydWUpOwotICAgICAgICAgICAgaWYgKG1faXNTdG9wcGVkICYmIG1fYXVkaW9CdWZmZXJQb29s
LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIFttX2F1ZGlvSW5wdXQgbWFya0FzRmluaXNo
ZWRdOwotICAgICAgICAgICAgICAgIG1fZmluaXNoV3JpdGluZ0F1ZGlvU2VtYXBob3JlLnNpZ25h
bCgpOwotICAgICAgICAgICAgfQotICAgICAgICB9XTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIgPSBudWxscHRyOworICAgIGF1
dG8gZXJyb3IgPSBDTUF1ZGlvU2FtcGxlQnVmZmVyQ3JlYXRlV2l0aFBhY2tldERlc2NyaXB0aW9u
cyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBOVUxMLCBmYWxzZSwgTlVMTCwgTlVMTCwgZm9ybWF0Lmdl
dCgpLCBzYW1wbGVDb3VudCwgdG9DTVRpbWUodGltZSksIE5VTEwsICZzYW1wbGVCdWZmZXIpOwor
ICAgIGlmIChlcnJvcikgeworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihNZWRpYVN0cmVhbSwg
Ik1lZGlhUmVjb3JkZXJQcml2YXRlV3JpdGVyIGNyZWF0ZUF1ZGlvU2FtcGxlQnVmZmVyV2l0aFBh
Y2tldERlc2NyaXB0aW9ucyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgfQorICAgIGF1dG8gYnVmZmVyID0gYWRvcHRDRihzYW1wbGVCdWZmZXIp
OwogCi0gICAgYXV0byBzYW1wbGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcldpdGhQ
YWNrZXREZXNjcmlwdGlvbnMoZm9ybWF0LmdldCgpLCBzYW1wbGVDb3VudCk7Ci0gICAgaWYgKCFz
YW1wbGVCdWZmZXIpCi0gICAgICAgIHJldHVybjsKLSAgICBhdXRvIGVycm9yID0gQ01TYW1wbGVC
dWZmZXJTZXREYXRhQnVmZmVyRnJvbUF1ZGlvQnVmZmVyTGlzdChzYW1wbGVCdWZmZXIuZ2V0KCks
IGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsIGRvd25jYXN0PFdl
YkF1ZGlvQnVmZmVyTGlzdD4oZGF0YSkubGlzdCgpKTsKLSAgICBpZiAoZXJyb3IpCi0gICAgICAg
IHJldHVybjsKKyAgICBlcnJvciA9IENNU2FtcGxlQnVmZmVyU2V0RGF0YUJ1ZmZlckZyb21BdWRp
b0J1ZmZlckxpc3QoYnVmZmVyLmdldCgpLCBrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAwLCBkb3duY2FzdDxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRhdGEpLmxpc3QoKSk7
CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKE1lZGlhU3RyZWFt
LCAiTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXIgQ01TYW1wbGVCdWZmZXJTZXREYXRhQnVmZmVy
RnJvbUF1ZGlvQnVmZmVyTGlzdCBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBidWZmZXI7Cit9CiAKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fYXVkaW9Mb2NrKTsKLSAgICBtX2F1ZGlvQnVmZmVyUG9vbC5hcHBl
bmQoV1RGTW92ZShzYW1wbGVCdWZmZXIpKTsKK3ZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0
ZXI6OmFwcGVuZEF1ZGlvU2FtcGxlQnVmZmVyKGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiBkYXRh
LCBjb25zdCBBdWRpb1N0cmVhbURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgV1RGOjpN
ZWRpYVRpbWUmIHRpbWUsIHNpemVfdCBzYW1wbGVDb3VudCkKK3sKKyAgICBpZiAoYXV0byBzYW1w
bGVCdWZmZXIgPSBjcmVhdGVBdWRpb1NhbXBsZUJ1ZmZlcihkYXRhLCBkZXNjcmlwdGlvbiwgdGlt
ZSwgc2FtcGxlQ291bnQpKQorICAgICAgICBtX2F1ZGlvQ29tcHJlc3Nvci0+YWRkU2FtcGxlQnVm
ZmVyKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CiB9CiAKIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVX
cml0ZXI6OnN0b3BSZWNvcmRpbmcoKQpAQCAtMzUwLDM1ICs0MjksNDIgQEAgdm9pZCBNZWRpYVJl
Y29yZGVyUHJpdmF0ZVdyaXRlcjo6c3RvcFJlY29yZGluZygpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1faXNTdG9wcGVkID0gdHJ1ZTsKKworICAgIGlmIChtX3ZpZGVvQ29tcHJlc3NvcikKKyAg
ICAgICAgbV92aWRlb0NvbXByZXNzb3ItPmZpbmlzaCgpOworICAgIGlmIChtX2F1ZGlvQ29tcHJl
c3NvcikKKyAgICAgICAgbV9hdWRpb0NvbXByZXNzb3ItPmZpbmlzaCgpOworCiAgICAgaWYgKCFt
X2hhc1N0YXJ0ZWRXcml0aW5nKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKFttX3dyaXRl
ciBzdGF0dXNdID09IEFWQXNzZXRXcml0ZXJTdGF0dXNXcml0aW5nKTsKLSAgICBpZiAobV92aWRl
b0lucHV0KQotICAgICAgICBtX2ZpbmlzaFdyaXRpbmdWaWRlb1NlbWFwaG9yZS53YWl0KCk7Ci0K
LSAgICBpZiAobV9hdWRpb0lucHV0KQotICAgICAgICBtX2ZpbmlzaFdyaXRpbmdBdWRpb1NlbWFw
aG9yZS53YWl0KCk7CiAKICAgICBtX2lzU3RvcHBpbmcgPSB0cnVlOwotICAgIFttX3dyaXRlciBm
aW5pc2hXcml0aW5nV2l0aENvbXBsZXRpb25IYW5kbGVyOlt0aGlzLCB3ZWFrUHRyID0gbWFrZVdl
YWtQdHIoKnRoaXMpXSgpIG11dGFibGUgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCB3ZWFrUHRyID0gV1RGTW92ZSh3ZWFrUHRyKSwgYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVh
dGVXaXRoQ29udGVudHNPZkZpbGUobV9wYXRoKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGlm
ICghd2Vha1B0cikKLSAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIG1faXNT
dG9wcGluZyA9IGZhbHNlOwotICAgICAgICAgICAgaWYgKG1fZmV0Y2hEYXRhQ29tcGxldGlvbkhh
bmRsZXIpCi0gICAgICAgICAgICAgICAgbV9mZXRjaERhdGFDb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKGJ1ZmZlcikpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fZGF0YSA9
IFdURk1vdmUoYnVmZmVyKTsKKyAgICBmbHVzaENvbXByZXNzZWRTYW1wbGVCdWZmZXJzKFt0aGlz
LCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSgpIG11dGFibGUgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBtX2lzU3RvcHBl
ZCA9IGZhbHNlOwotICAgICAgICAgICAgbV9oYXNTdGFydGVkV3JpdGluZyA9IGZhbHNlOwotICAg
ICAgICAgICAgbV9pc0ZpcnN0QXVkaW9TYW1wbGUgPSB0cnVlOwotICAgICAgICAgICAgY2xlYXIo
KTsKLSAgICAgICAgfSk7Ci0gICAgICAgIG1fZmluaXNoV3JpdGluZ1NlbWFwaG9yZS5zaWduYWwo
KTsKLSAgICB9XTsKLSAgICBtX2ZpbmlzaFdyaXRpbmdTZW1hcGhvcmUud2FpdCgpOworICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgorICAgICAgICBbbV93cml0ZXIg
Zmx1c2hdOworICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKyAgICAg
ICAgW21fd3JpdGVyIGZpbmlzaFdyaXRpbmdXaXRoQ29tcGxldGlvbkhhbmRsZXI6W3RoaXMsIHdl
YWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpXSgpIG11dGFi
bGUgeworICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgICAgIG1faXNTdG9wcGluZyA9IGZhbHNlOworICAgICAg
ICAgICAgICAgIGlmIChtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgICAgICAg
ICAgICAgICAgIGF1dG8gYnVmZmVyID0gV1RGTW92ZShtX2RhdGEpOworICAgICAgICAgICAgICAg
ICAgICBtX2ZldGNoRGF0YUNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoYnVmZmVyKSk7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbV9pc1N0b3BwZWQgPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICBtX2hhc1N0YXJ0ZWRXcml0aW5nID0gZmFsc2U7CisgICAgICAgICAgICAg
ICAgY2xlYXIoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9XTsKKyAgICB9KTsKIH0KIAog
dm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6ZmV0Y2hEYXRhKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC0zOTIsNiArNDc4LDI0IEBAIHZvaWQgTWVkaWFSZWNvcmRlclByaXZhdGVXcml0ZXI6OmZldGNo
RGF0YShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZlB0cjxTaGFyZWRCCiAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShidWZmZXIpKTsKIH0KIAordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0
ZVdyaXRlcjo6YXBwZW5kRGF0YShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAg
ICBpZiAoIW1fZGF0YSkgeworICAgICAgICBtX2RhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShk
YXRhLCBzaXplKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX2RhdGEtPmFwcGVuZChk
YXRhLCBzaXplKTsKK30KKwordm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZVdyaXRlcjo6YXBwZW5k
RGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlcikKK3sKKyAgICBpZiAoIW1fZGF0YSkgewor
ICAgICAgICBtX2RhdGEgPSBXVEZNb3ZlKGJ1ZmZlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgbV9kYXRhLT5hcHBlbmQoV1RGTW92ZShidWZmZXIpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9V
TkRBVElPTikKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRX
UklURVJERUxFR0FURSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
cmVjb3JkZXIvY29jb2EvVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJl
c3Nvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVlNDI4OTM1MjM2MGNiMTc4MDBkZDA2ZTZiNWIxNTM4Nzk2MmM3
OWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29y
ZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oCkBAIC0wLDAgKzEsNzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwor
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAm
JiBVU0UoQVZGT1VOREFUSU9OKQorCisjaW5jbHVkZSA8Q29yZU1lZGlhL0NvcmVNZWRpYS5oPgor
I2luY2x1ZGUgPFZpZGVvVG9vbGJveC9WVEVycm9ycy5oPgorCit0eXBlZGVmIHN0cnVjdCBvcGFx
dWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7Cit0eXBlZGVmIHN0cnVjdCBPcGFx
dWVWVENvbXByZXNzaW9uU2Vzc2lvbiAqVlRDb21wcmVzc2lvblNlc3Npb25SZWY7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gY3JlYXRlKENNVmlkZW9Db2RlY1R5
cGUsIENNQnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0KTsK
KyAgICB+VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKCk7CisKKyAgICB2b2lkIGZpbmlzaCgp
OworICAgIHZvaWQgYWRkU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmKTsKKyAgICBDTVNh
bXBsZUJ1ZmZlclJlZiBnZXRPdXRwdXRTYW1wbGVCdWZmZXIoKTsKKyAgICBSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IHRha2VPdXRwdXRTYW1wbGVCdWZmZXIoKTsKKworcHJpdmF0ZToKKyAg
ICBleHBsaWNpdCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoQ01WaWRlb0NvZGVjVHlwZSk7
CisKKyAgICBib29sIGluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjaywgdm9p
ZCogY2FsbGJhY2tPYmplY3QpOworCisgICAgdm9pZCBwcm9jZXNzU2FtcGxlQnVmZmVyKENNU2Ft
cGxlQnVmZmVyUmVmKTsKKyAgICBib29sIGluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zv
cm1hdERlc2NyaXB0aW9uUmVmKTsKKworICAgIHN0YXRpYyB2b2lkIHZpZGVvQ29tcHJlc3Npb25D
YWxsYmFjayh2b2lkICpyZWZDb24sIHZvaWQqLCBPU1N0YXR1cywgVlRFbmNvZGVJbmZvRmxhZ3Ms
IENNU2FtcGxlQnVmZmVyUmVmKTsKKworICAgIGRpc3BhdGNoX3F1ZXVlX3QgbV9zZXJpYWxEaXNw
YXRjaFF1ZXVlOworICAgIFJldGFpblB0cjxDTUJ1ZmZlclF1ZXVlUmVmPiBtX291dHB1dEJ1ZmZl
clF1ZXVlOworICAgIFJldGFpblB0cjxWVENvbXByZXNzaW9uU2Vzc2lvblJlZj4gbV92dFNlc3Np
b247CisKKyAgICBib29sIG1faXNFbmNvZGluZyB7IGZhbHNlIH07CisKKyAgICBDTVZpZGVvQ29k
ZWNUeXBlIG1fb3V0cHV0Q29kZWNUeXBlOworICAgIGZsb2F0IG1fbWF4S2V5RnJhbWVJbnRlcnZh
bER1cmF0aW9uIHsgMi4wIH07CisgICAgdW5zaWduZWQgbV9leHBlY3RlZEZyYW1lUmF0ZSB7IDMw
IH07Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXJlY29yZGVyL2NvY29hL1ZpZGVvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjExODRlYTUzOTc4NDI1YTg3Y2RhODIzNzkz
NDA4OTYxMjQ3ZDcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFyZWNvcmRlci9jb2NvYS9WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0KQEAgLTAs
MCArMSwxNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJW
aWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIFVTRShBVkZPVU5EQVRJT04pCisKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgPENv
cmVNZWRpYS9Db3JlTWVkaWEuaD4KKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgor
I2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZUQ29tcHJlc3Npb25TZXNzaW9uLmg+CisjaW1wb3J0IDx3
dGYvU29mdExpbmtpbmcuaD4KKworI2ltcG9ydCA8cGFsL2NmL1ZpZGVvVG9vbGJveFNvZnRMaW5r
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIFBBTDsKKworc3Rk
Ojp1bmlxdWVfcHRyPFZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvcj4gVmlkZW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yOjpjcmVhdGUoQ01WaWRlb0NvZGVjVHlwZSBvdXRwdXRDb2RlY1R5cGUsIENN
QnVmZmVyUXVldWVUcmlnZ2VyQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQqIGNhbGxiYWNrT2JqZWN0
KQoreworICAgIGF1dG8gY29tcHJlc3NvciA9IHN0ZDo6dW5pcXVlX3B0cjxWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3I+KG5ldyBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iob3V0cHV0Q29k
ZWNUeXBlKSk7CisgICAgaWYgKCFjb21wcmVzc29yLT5pbml0aWFsaXplKGNhbGxiYWNrLCBjYWxs
YmFja09iamVjdCkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBjb21wcmVz
c29yOworfQorCitWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3I6OlZpZGVvU2FtcGxlQnVmZmVy
Q29tcHJlc3NvcihDTVZpZGVvQ29kZWNUeXBlIG91dHB1dENvZGVjVHlwZSkKKyAgICA6IG1fc2Vy
aWFsRGlzcGF0Y2hRdWV1ZSB7IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgiY29tLmFwcGxlLlZpZGVv
U2FtcGxlQnVmZmVyQ29tcHJlc3NvciIsIERJU1BBVENIX1FVRVVFX1NFUklBTCkgfQorICAgICwg
bV9vdXRwdXRDb2RlY1R5cGUgeyBvdXRwdXRDb2RlY1R5cGUgfQoreworfQorCitWaWRlb1NhbXBs
ZUJ1ZmZlckNvbXByZXNzb3I6On5WaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IoKQoreworICAg
IGlmIChtX3NlcmlhbERpc3BhdGNoUXVldWUpCisgICAgICAgIGRpc3BhdGNoX3JlbGVhc2UobV9z
ZXJpYWxEaXNwYXRjaFF1ZXVlKTsKK30KKworYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmluaXRpYWxpemUoQ01CdWZmZXJRdWV1ZVRyaWdnZXJDYWxsYmFjayBjYWxsYmFjaywgdm9p
ZCogY2FsbGJhY2tPYmplY3QpCit7CisgICAgQ01CdWZmZXJRdWV1ZVJlZiBvdXRwdXRCdWZmZXJR
dWV1ZTsKKyAgICBpZiAoYXV0byBlcnJvciA9IENNQnVmZmVyUXVldWVDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgMCwgQ01CdWZmZXJRdWV1ZUdldENhbGxiYWNrc0ZvclVuc29ydGVkU2FtcGxl
QnVmZmVycygpLCAmb3V0cHV0QnVmZmVyUXVldWUpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKE1lZGlhU3RyZWFtLCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIHVuYWJsZSB0byBj
cmVhdGUgYnVmZmVyIHF1ZXVlICVkIiwgZXJyb3IpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIG1fb3V0cHV0QnVmZmVyUXVldWUgPSBvdXRwdXRCdWZmZXJRdWV1ZTsKKyAgICBD
TUJ1ZmZlclF1ZXVlSW5zdGFsbFRyaWdnZXIobV9vdXRwdXRCdWZmZXJRdWV1ZS5nZXQoKSwgY2Fs
bGJhY2ssIGNhbGxiYWNrT2JqZWN0LCBrQ01CdWZmZXJRdWV1ZVRyaWdnZXJfV2hlbkRhdGFCZWNv
bWVzUmVhZHksIGtDTVRpbWVaZXJvLCBOVUxMKTsKKworICAgIG1faXNFbmNvZGluZyA9IHRydWU7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29y
OjpmaW5pc2goKQoreworICAgIGRpc3BhdGNoX3N5bmMobV9zZXJpYWxEaXNwYXRjaFF1ZXVlLCBe
eworICAgICAgICBhdXRvIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1l
cyhtX3Z0U2Vzc2lvbi5nZXQoKSwga0NNVGltZUludmFsaWQpOworICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3IgVlRDb21wcmVzc2lvblNlc3Npb25Db21wbGV0ZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVy
cm9yKTsKKworICAgICAgICBlcnJvciA9IENNQnVmZmVyUXVldWVNYXJrRW5kT2ZEYXRhKG1fb3V0
cHV0QnVmZmVyUXVldWUuZ2V0KCkpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJv
ciwgTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgQ01CdWZmZXJRdWV1
ZU1hcmtFbmRPZkRhdGEgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7CisKKyAgICAgICAgbV9pc0Vu
Y29kaW5nID0gZmFsc2U7CisgICAgfSk7Cit9CisKK3ZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21w
cmVzc29yOjp2aWRlb0NvbXByZXNzaW9uQ2FsbGJhY2sodm9pZCAqcmVmQ29uLCB2b2lkKiwgT1NT
dGF0dXMgc3RhdHVzLCBWVEVuY29kZUluZm9GbGFncywgQ01TYW1wbGVCdWZmZXJSZWYgYnVmZmVy
KQoreworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKHN0YXR1cywgTWVkaWFTdHJlYW0sICJWaWRl
b1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IgdmlkZW9Db21wcmVzc2lvbkNhbGxiYWNrIHN0YXR1cyBp
cyAlZCIsIHN0YXR1cyk7CisgICAgaWYgKHN0YXR1cyAhPSBub0VycikKKyAgICAgICAgcmV0dXJu
OworCisgICAgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yICpjb21wcmVzc29yID0gc3RhdGlj
X2Nhc3Q8VmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yKj4ocmVmQ29uKTsKKworICAgIGF1dG8g
ZXJyb3IgPSBDTUJ1ZmZlclF1ZXVlRW5xdWV1ZShjb21wcmVzc29yLT5tX291dHB1dEJ1ZmZlclF1
ZXVlLmdldCgpLCBidWZmZXIpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRp
YVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBDTUJ1ZmZlclF1ZXVlRW5xdWV1
ZSBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKK30KKworYm9vbCBWaWRlb1NhbXBsZUJ1ZmZlckNv
bXByZXNzb3I6OmluaXRDb21wcmVzc2lvblNlc3Npb24oQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uKQoreworICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lv
bnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0
aW9uKTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgTlNEaWN0aW9uYXJ5ICplbmNvZGVyU3BlY2lm
aWNhdGlvbnMgPSBuaWw7CisjZWxzZQorICAgIE5TRGljdGlvbmFyeSAqZW5jb2RlclNwZWNpZmlj
YXRpb25zID0gQHsoX19icmlkZ2UgTlNTdHJpbmcgKilrVlRWaWRlb0VuY29kZXJTcGVjaWZpY2F0
aW9uX0VuYWJsZUhhcmR3YXJlQWNjZWxlcmF0ZWRWaWRlb0VuY29kZXI6QFlFU307CisjZW5kaWYK
KworICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmIHZ0U2Vzc2lvbjsKKyAgICBhdXRvIGVycm9y
ID0gVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGltZW5z
aW9ucy53aWR0aCwgZGltZW5zaW9ucy5oZWlnaHQsIG1fb3V0cHV0Q29kZWNUeXBlLCAoX19icmlk
Z2UgQ0ZEaWN0aW9uYXJ5UmVmKWVuY29kZXJTcGVjaWZpY2F0aW9ucywgTlVMTCwgTlVMTCwgdmlk
ZW9Db21wcmVzc2lvbkNhbGxiYWNrLCB0aGlzLCAmdnRTZXNzaW9uKTsKKyAgICBpZiAoZXJyb3Ip
IHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTWVkaWFTdHJlYW0sICJWaWRlb1NhbXBsZUJ1
ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUgZmFpbGVkIHdpdGggJWQi
LCBlcnJvcik7CisgICAgICAgIHJldHVybiBOTzsKKyAgICB9CisgICAgbV92dFNlc3Npb24gPSBh
ZG9wdENGKHZ0U2Vzc2lvbik7CisKKyAgICBlcnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1f
dnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X1JlYWxUaW1lLCBrQ0ZC
b29sZWFuVHJ1ZSk7CisgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIE1lZGlhU3RyZWFt
LCAiVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yIFZUU2Vzc2lvblNldFByb3BlcnR5IGtWVENv
bXByZXNzaW9uUHJvcGVydHlLZXlfUmVhbFRpbWUgZmFpbGVkIHdpdGggJWQiLCBlcnJvcik7Cisg
ICAgZXJyb3IgPSBWVFNlc3Npb25TZXRQcm9wZXJ0eShtX3Z0U2Vzc2lvbi5nZXQoKSwga1ZUQ29t
cHJlc3Npb25Qcm9wZXJ0eUtleV9NYXhLZXlGcmFtZUludGVydmFsRHVyYXRpb24sIChfX2JyaWRn
ZSBDRlR5cGVSZWYpQChtX21heEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbikpOworICAgIFJFTEVB
U0VfTE9HX0VSUk9SX0lGKGVycm9yLCBNZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29t
cHJlc3NvciBWVFNlc3Npb25TZXRQcm9wZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X01h
eEtleUZyYW1lSW50ZXJ2YWxEdXJhdGlvbiBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKyAgICBl
cnJvciA9IFZUU2Vzc2lvblNldFByb3BlcnR5KG1fdnRTZXNzaW9uLmdldCgpLCBrVlRDb21wcmVz
c2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlLCAoX19icmlkZ2UgQ0ZUeXBlUmVmKUAo
bV9leHBlY3RlZEZyYW1lUmF0ZSkpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBN
ZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVFNlc3Npb25TZXRQcm9w
ZXJ0eSBrVlRDb21wcmVzc2lvblByb3BlcnR5S2V5X0V4cGVjdGVkRnJhbWVSYXRlIGZhaWxlZCB3
aXRoICVkIiwgZXJyb3IpOworCisgICAgLy8gRklYTUU6IFNldCB2aWRlbyBjb21wcmVzc2lvbiBy
YXRlLgorICAgIGVycm9yID0gVlRDb21wcmVzc2lvblNlc3Npb25QcmVwYXJlVG9FbmNvZGVGcmFt
ZXMobV92dFNlc3Npb24uZ2V0KCkpOworICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGKGVycm9yLCBN
ZWRpYVN0cmVhbSwgIlZpZGVvU2FtcGxlQnVmZmVyQ29tcHJlc3NvciBWVENvbXByZXNzaW9uU2Vz
c2lvblByZXBhcmVUb0VuY29kZUZyYW1lcyBmYWlsZWQgd2l0aCAlZCIsIGVycm9yKTsKKworICAg
IHJldHVybiBZRVM7Cit9CisKK3ZvaWQgVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjpwcm9j
ZXNzU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIGJ1ZmZlcikKK3sKKyAgICBpZiAoIW1f
dnRTZXNzaW9uKSB7CisgICAgICAgIGlmICghaW5pdENvbXByZXNzaW9uU2Vzc2lvbihDTVNhbXBs
ZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKGJ1ZmZlcikpKQorICAgICAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBDTVNhbXBsZUJ1ZmZlckdldEltYWdl
QnVmZmVyKGJ1ZmZlcik7CisgICAgYXV0byBwcmVzZW50YXRpb25UaW1lU3RhbXAgPSBDTVNhbXBs
ZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChidWZmZXIpOworICAgIGF1dG8gZHVyYXRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldER1cmF0aW9uKGJ1ZmZlcik7CisgICAgYXV0byBlcnJvciA9
IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUobV92dFNlc3Npb24uZ2V0KCksIGltYWdl
QnVmZmVyLCBwcmVzZW50YXRpb25UaW1lU3RhbXAsIGR1cmF0aW9uLCBOVUxMLCB0aGlzLCBOVUxM
KTsKKyAgICBSRUxFQVNFX0xPR19FUlJPUl9JRihlcnJvciwgTWVkaWFTdHJlYW0sICJWaWRlb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IgVlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSBmYWls
ZWQgd2l0aCAlZCIsIGVycm9yKTsKK30KKwordm9pZCBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNz
b3I6OmFkZFNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBidWZmZXIpCit7CisgICAgZGlz
cGF0Y2hfc3luYyhtX3NlcmlhbERpc3BhdGNoUXVldWUsIF57CisgICAgICAgIGlmICghbV9pc0Vu
Y29kaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHByb2Nlc3NTYW1wbGVCdWZm
ZXIoYnVmZmVyKTsKKyAgICB9KTsKK30KKworQ01TYW1wbGVCdWZmZXJSZWYgVmlkZW9TYW1wbGVC
dWZmZXJDb21wcmVzc29yOjpnZXRPdXRwdXRTYW1wbGVCdWZmZXIoKQoreworICAgIHJldHVybiAo
Q01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nhc3Q8dm9pZCo+KENNQnVmZmVyUXVldWVHZXRIZWFk
KG1fb3V0cHV0QnVmZmVyUXVldWUuZ2V0KCkpKSk7Cit9CisKK1JldGFpblB0cjxDTVNhbXBsZUJ1
ZmZlclJlZj4gVmlkZW9TYW1wbGVCdWZmZXJDb21wcmVzc29yOjp0YWtlT3V0cHV0U2FtcGxlQnVm
ZmVyKCkKK3sKKyAgICByZXR1cm4gYWRvcHRDRigoQ01TYW1wbGVCdWZmZXJSZWYpKGNvbnN0X2Nh
c3Q8dm9pZCo+KENNQnVmZmVyUXVldWVEZXF1ZXVlQW5kUmV0YWluKG1fb3V0cHV0QnVmZmVyUXVl
dWUuZ2V0KCkpKSkpOworfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jlc291cmNlUmVxdWVzdENvY29hLm1tCmlu
ZGV4IDI0NTEzY2ZlZmEzOTI1MGY2Y2IyNTE3Yjc2NGQwOTliZTkxMDVkNTAuLjExYzJjZDZmZjlj
ZGZkY2M5YmI0OWEzOTI3ODU5YmZjNDRmMDVlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmVzb3VyY2VSZXF1ZXN0Q29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SZXNvdXJjZVJlcXVlc3RDb2NvYS5t
bQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2ltcG9ydCA8d3RmL0ZpbGVTeXN0
ZW0uaD4KKyNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogI2ltcG9ydCA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKaW5kZXggY2Q0YWFjOTExNzYxZTMzNTc0ODRlZDBjZDZkNzcyNjNkYjQ5NmRi
NS4uZWQ4YTQzZjIwOWVmZGNkN2FmMjA3YjQ1MGNhYjQyMzI4OWQ2ZGU4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTczLDcgKzU3Myw2IEBAIHZvaWQgSW50ZXJuYWxz
OjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UmIHBhZ2UpCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldElu
dGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVuYWJsZWQoZmFsc2UpOwogICAgIFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXI6OnNldEN1c3RvbVByaXZhdGVSZWNvcmRlckNyZWF0b3IobnVs
bHB0cik7Ci0gICAgcGFnZS5tZWRpYVJlY29yZGVyUHJvdmlkZXIoKS5zZXRVc2VHUFVQcm9jZXNz
KHRydWUpOwogI2VuZGlmCiAKICAgICBIVE1MQ2FudmFzRWxlbWVudDo6c2V0TWF4UGl4ZWxNZW1v
cnlGb3JUZXN0aW5nKDApOyAvLyBUaGlzIG1lYW5zIHVzZSB0aGUgZGVmYXVsdCB2YWx1ZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAppbmRleCBjMTFmNjJlMjI4Yjc0YWQ2Y2YyYzFkZDViNmMwMWI5Mzk2M2E1MWEzLi5l
ZDJlYTgyNWEwYjdlNmQ5NDk1ZGZhODRiOWRhZWJjN2Q3NzdmODY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBA
IC0yMjgsNiArMjI4LDcgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6dXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKICAgICByZXR1cm4gKm1f
dXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKIH0KIAorI2lmIEhBVkUoQVZBU1NFVFdSSVRF
UkRFTEVHQVRFKQogUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6Om1lZGlhUmVjb3JkZXJNYW5hZ2VyKCkKIHsKICAgICBpZiAoIW1fcmVtb3RlTWVk
aWFSZWNvcmRlck1hbmFnZXIpCkBAIC0yMzUsNiArMjM2LDcgQEAgUmVtb3RlTWVkaWFSZWNvcmRl
ck1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Om1lZGlhUmVjb3JkZXJNYW5hZ2Vy
KCkKIAogICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKIH0KKyNlbmRp
ZgogCiBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXImIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmF1ZGlvVHJhY2tSZW5kZXJlck1hbmFnZXIoKQogewpAQCAtMjUx
LDcgKzI1Myw3IEBAIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXImIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNhbXBsZUJ1ZmZlckRpCiAKICAgICByZXR1cm4gKm1fc2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcjsKIH0KLSNlbmRpZgorI2VuZGlmIC8vICBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBVU0UoTElCV0VCUlRDKQogTGliV2ViUlRDQ29kZWNzUHJveHkmIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmxpYldlYlJUQ0NvZGVjc1Byb3h5KCkKQEAgLTM2OSw2ICszNzEsNyBAQCBi
b29sIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQwogICAgICAgICB1c2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorI2lmIEhBVkUoQVZBU1NFVFdSSVRFUkRF
TEVHQVRFKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6UmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewog
ICAgICAgICBtZWRpYVJlY29yZGVyTWFuYWdlcigpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzc3
LDYgKzM4MCw3IEBAIGJvb2wgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDCiAgICAgICAgIG1lZGlhUmVjb3Jk
ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZVJlbW90ZU1lZGlhUmVjb3JkZXJNZXNzYWdlKGNvbm5lY3Rp
b24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisjZW5kaWYgLy8gSEFW
RShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1h
bmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBhdWRpb1RyYWNrUmVuZGVy
ZXJNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zOTMsNyArMzk3LDcgQEAgYm9vbCBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEMKICAgICAgICAgc2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdl
cigpLmRpZFJlY2VpdmVMYXllck1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSNlbmRpZgorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAm
JiBFTkFCTEUoTUVESUFfU1RSRUFNKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VC
UlRDKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6
TGliV2ViUlRDQ29kZWNzUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBs
aWJXZWJSVENDb2RlY3NQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA1YzI3MTZiY2FiN2VhMmYzMWFhYWYwM2Nj
OGI0YTdkNjU4NWJiNWFkLi40OWFiNjk3MDQ4NDc4NDE2NGExMTBhYTZmOTczMjgzZmEzNDM0MzUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKQEAgLTExNiw3ICsxMTYsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgUExB
VEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eSYgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOworI2lmIEhBVkUo
QVZBU1NFVFdSSVRFUkRFTEVHQVRFKQogICAgIFJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyJiBt
ZWRpYVJlY29yZGVyTWFuYWdlcigpOworI2VuZGlmCiAgICAgUmVtb3RlQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJNYW5hZ2VyJiBhdWRpb1RyYWNrUmVuZGVyZXJNYW5hZ2VyKCk7CiAgICAg
UmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlciYgc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyTWFuYWdlcigpOwogI2VuZGlmCkBAIC0xNjYsNyArMTY4LDkgQEAgcHJpdmF0ZToKICAg
ICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworI2lmIEhBVkUoQVZB
U1NFVFdSSVRFUkRFTEVHQVRFKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlY29y
ZGVyTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlcjsKKyNlbmRpZgogICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlck1hbmFnZXI+
IG1fYXVkaW9UcmFja1JlbmRlcmVyTWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5
ZXJNYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLmNwcAppbmRleCBjMmY1Mjg1MTlmNTIyM2FhMGYw
MDJjNDUwMDEyNTY2MjgyZTE4MTI0Li5mODhhMjM5NDRiYzAxNzkwZjVhNjc1NWI2ZDNlZWVlODhh
YTJmYWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90
ZU1lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
UmVtb3RlTWVkaWFSZWNvcmRlci5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVJlY29yZGVyLmgiCiAKLSNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQogCiAjaW5jbHVkZSAiU2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgpA
QCAtMTM1LDQgKzEzNSw0IEBAIHZvaWQgUmVtb3RlTWVkaWFSZWNvcmRlcjo6c3RvcFJlY29yZGlu
ZygpCiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShH
UFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFTU0VUV1JJVEVS
REVMRUdBVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1Jl
bW90ZU1lZGlhUmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVt
b3RlTWVkaWFSZWNvcmRlci5oCmluZGV4IGZmNWE4Mjk4NGZiMzk2NDFlZDFlNTYxNTQ4OThmOTUy
NmM5YmQ1MmEuLmE4M2RhMzA1NTJlYjQxZWY5NTk0NGRiM2FhNTA0ZmZjYTNmNjgzODEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNv
cmRlci5oCkBAIC0yNSw3ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIk1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCkBAIC04
Miw0ICs4Miw0IEBAIHByaXZhdGU6CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYg
SEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIubWVzc2FnZXMuaW4K
aW5kZXggNTRiYTY0ZDU2ZmJlYTMwZmNiYjM5NmRhZDVlYTNmYzMwYzk5NWRlZS4uY2UzMmI3MDRl
N2VjOGM0NzdiZTA1MWUyMGQ3ZDI3YWYwYzRmODIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5tZXNz
YWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BV
X1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgSEFWRShBVkFT
U0VUV1JJVEVSREVMRUdBVEUpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVjb3JkZXIgTm90
UmVmQ291bnRlZCB7CiAgICAgQXVkaW9TYW1wbGVzU3RvcmFnZUNoYW5nZWQoV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6OkhhbmRsZSBzdG9yYWdlSGFuZGxlLCBXZWJDb3JlOjpDQUF1ZGlvU3RyZWFtRGVz
Y3JpcHRpb24gZGVzY3JpcHRpb24sIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXJNYW5hZ2VyLmNwcAppbmRleCAwYjg0Yjg1MTliYTZmNTA2ZTE4NzY1ZmY2ZDJlNGQwY2My
NmI2MzZjLi43ZjRjNjZkNmEyMzYyZTUyZTZhMDc2NGU3ODlmNmQyMGU5MTY3MmM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1l
ZGlhUmVjb3JkZXJNYW5hZ2VyLmNwcApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmgiCiAKLSNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShN
RURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQogCiAjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRlY29kZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFn
ZXIuaAppbmRleCA1NDcxYmJkNDg0ZGQ5YjNkMGM4ZWUzZGQ2MTFjMDVlOTBkMDM2YzdjLi5hYjgw
MWJjMTE0YzQ5MjNlYTlkNzkwZjkyM2M1MmRmNDlhYTExZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJlY29yZGVyTWFu
YWdlci5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaWYgUExBVEZPUk0o
Q09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKSAmJiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKIAogI2luY2x1ZGUgIk1lZGlh
UmVjb3JkZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3Jk
ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9S
ZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCAzODdhNDEzNjFjZGJk
OWI3ZWFlMmMzMzczNjUyYTk4ZjQ5MzRlMTc0Li5jNTE4NDEwY2I0OWZhZGE2ODhkMzc3ZDFkN2Ew
NmNkZTNiYWM3OTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZU1lZGlhUmVjb3JkZXJNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlck1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdS
SVRFUkRFTEVHQVRFKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVJlY29yZGVyTWFuYWdlciBO
b3RSZWZDb3VudGVkIHsKICAgICBDcmVhdGVSZWNvcmRlcihXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJ
ZGVudGlmaWVyIGlkLCBib29sIGhhc0F1ZGlvLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpIC0+IChP
cHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBjcmVhdGlvbkVycm9yKSBBc3luYwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZm
ZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAppbmRleCBlNWMzMzkyNDFh
MWIxOTMyYTBiYWU5OTBlMGEyNGU3OTZjZDc0ZTA5Li45NWFjZjI1ZWIyZTRkZGVmOGNmODJjNWYz
MjkxODFmN2UzZWEyNGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIlJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCIKICNpbmNsdWRlICJTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
IAogbmFtZXNwYWNlIElQQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5jcHAKaW5kZXggMzExYzE2MWU0
OGMwYzg2ZGY2YWFkNDcwM2EzODU2OTQ1ZmExMzMyNS4uZjVhYzMxODFmNTM5MGJlZWQyZjQwYzFm
MWMyODBhZDQ0NDJjZDkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcml2YXRl
LmgiCiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NF
U1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRF
KQogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25u
ZWN0aW9uLmgiCkBAIC0xMzUsNCArMTM1LDQgQEAgdm9pZCBNZWRpYVJlY29yZGVyUHJpdmF0ZTo6
c3RvcFJlY29yZGluZygpCiAKIH0KIAotI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisjZW5kaWYgLy8gUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgSEFWRShBVkFTU0VUV1JJVEVSREVMRUdBVEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByaXZhdGUuaAppbmRleCA2
ZmYyOTQwNzk5NDdiNmFjOTY2YmU5MGFlNmE4M2M0MDExNDgwNTU3Li4zZDdiZWUyOTY0M2M5OWI1
MTBlN2I4YTRlMDU0MGI3ZWUyMDdhNWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2YXRlLmgKQEAgLTI1LDcg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIEhBVkUo
QVZBU1NFVFdSSVRFUkRFTEVHQVRFKQogCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlcklkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgpAQCAtNzYsNSArNzYs
NSBAQCBwcml2YXRlOgogCiB9CiAKLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxF
KEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQorI2VuZGlmIC8vIFBMQVRGT1JN
KENPQ09BKSAmJiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pICYm
IEhBVkUoQVZBU1NFVFdSSVRFUkRFTEVHQVRFKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclByb3ZpZGVyLmNwcApp
bmRleCA2Y2IzMjFlZDI1ODk0ODllOWRiMGNiYmQ1YjU1OWIxZTU2YTAzNDlkLi41ZjUwNzVmMTYz
N2I0NTlkZjU1YTdkMjUzNGQ1YjdiZjNiNTk0MDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJvdmlkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcm92aWRlci5j
cHAKQEAgLTM2LDcgKzM2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpNZWRpYVJlY29yZGVyUHJpdmF0ZT4gTWVkaWFSZWNvcmRlclByb3Zp
ZGVyOjpjcmVhdGVNZWRpYVJlY29yZGVyUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVh
bSkKIHsKLSNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBIQVZFKEFWQVNTRVRXUklURVJERUxFR0FURSkKICAgICBpZiAobV91c2VHUFVQcm9jZXNzKQog
ICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVJlY29yZGVyUHJpdmF0ZT4oc3RyZWFtKTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDE4MmZlZGI2ZGFhMzQ0MWM4ZmY1M2M5Njc2ZTU0NjI1YWI1YjMwYTcu
LjA5Zjg4MTk2ZjQ4MDM0Y2FmYzEwZjdiOWJmZTIyZTdmNDUwMDA1ZmIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAyMC0wNi0wNyAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgW0NvY29hXSBVc2UgQVZBc3NldFdyaXRlckRlbGVnYXRlIHRvIGltcGxlbWVudCBN
ZWRpYVJlY29yZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDY1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAg
ICAgRGlzYWJsZSB0ZXN0cyBvbiBhbGwgcGxhdGZvcm1zIGV4Y2VwdCB0aGUgb25lcyBzdXBwb3J0
aW5nIEFWQXNzZXRXcml0ZXJEZWxlZ2F0ZS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogaHR0cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlv
LXZpZGVvLWRhdGFhdmFpbGFibGUtZ3B1cHJvY2Vzcy5odG1sOgorICAgICAgICBSZW1vdmUgd2Vi
IGF1ZGlvIGdlbmVyYXRpb24gc2luY2UgdGhlcmUgc2VlbXMgdG8gYmUgc29tZSB1bnN0YWJpbGl0
eSBpbiB3ZWIgYXVkaW8gLT4gc3RyZWFtIC0+IG1lZGlhIHJlY29yZGVyLgorICAgICAgICB3aGlj
aCBzaG91bGQgYmUgZml4ZWQgYXMgZm9sbG93LXVwIHNwZWNpZmljIHBhdGNoZXMuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIEVuYWJsZSBydW5uaW5n
IHRlc3RzLgorCiAyMDIwLTA2LTA3ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQXBwbGUgUGF5XSBIQVZFKFBBWU1FTlRfTUVUSE9EX0JJTExJTkdfQUREUkVTUykg
c2hvdWxkIGJlIHRydWUgb24gaU9TCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhMDVmNTg2NTY1ZGE5
MmVhNWIxMjYzNTBhOTUzYzQ4NmY5NjNmNzE0Li5mNmRlYTVhYWM2ZDRkZDcxNmJkMzgzMjUxZDYw
YmJkNDI2MDVlNTg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMyOTksNyArMzI5OSwxMCBAQCB3
ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS90ZXh0dXJlcy90ZXh0dXJlLW5wb3QtdmlkZW8uaHRtbCBb
IFNraXAgXQogd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2UvY2FudmFzL3JhcGlkLXJlc2l6aW5nLmh0
bWwgWyBTa2lwIF0KIHdlYmdsLzEuMC4zL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtZHJh
dy1idWZmZXJzLmh0bWwgWyBTa2lwIF0KIAotd2Via2l0Lm9yZy9iLzE5NzY3MyBodHRwL3dwdC9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS5o
dG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQorIyBOb3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQK
K2h0dHAvd3B0L21lZGlhcmVjb3JkZXIgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZCBbIFNraXAgXQorZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtbWVkaWEtcmVjb3JkZXIuaHRtbCBbIFNraXAgXQogCiAjIFdlYkdMIDIgQ29uZm9ybWFu
Y2UgU3VpdGUgcnVsZXMgZm9yIHJlZ3VsYXIgYm90cyBwb3N0IEFOR0xFIGJhY2tlbmQgYWRvcHRp
b24uCiAjIERFUVAgaXMgc2tpcHBlZCBvbiB0aGUgbWFpbiBmbGVldCBvZiBib3RzIGJlY2F1c2Ug
b2YgdGhlIGxvbmcgcnVuIHRpbWUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9t
ZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS1n
cHVwcm9jZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXItQVYtYXVkaW8tdmlkZW8tZGF0YWF2YWlsYWJsZS1ncHVwcm9jZXNzLmh0bWwKaW5k
ZXggMzMzMDZkZTc5NDdiYmI5MjU3Mzk0YzNiYTE5NjIwMWIwNTg0Nzg4Yi4uODgwMTQ4NjU3ZTI1
ZGRlMzNjYjEwOTM0NmQ2Y2JlYWFiN2Y5Y2VmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLUFWLWF1ZGlvLXZpZGVvLWRhdGFhdmFp
bGFibGUtZ3B1cHJvY2Vzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci1BVi1hdWRpby12aWRlby1kYXRhYXZhaWxhYmxlLWdwdXByb2Nl
c3MuaHRtbApAQCAtNTYsMTcgKzU2LDcgQEAKICAgICB9CiAKICAgICBhc3luY190ZXN0KHQgPT4g
ewotICAgICAgICBjb25zdCBhYyA9IG5ldyBBdWRpb0NvbnRleHQoKTsKLSAgICAgICAgY29uc3Qg
b3NjID0gYWMuY3JlYXRlT3NjaWxsYXRvcigpOwotICAgICAgICBjb25zdCBkZXN0ID0gYWMuY3Jl
YXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlvbigpOwotICAgICAgICBjb25zdCBhdWRpbyA9IGRlc3Qu
c3RyZWFtOwotICAgICAgICBvc2MuY29ubmVjdChkZXN0KTsKLQogICAgICAgICBjb25zdCB2aWRl
byA9IGNyZWF0ZVZpZGVvU3RyZWFtKCk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHModmlkZW8uZ2V0
QXVkaW9UcmFja3MoKS5sZW5ndGgsIDAsICJ2aWRlbyBtZWRpYXN0cmVhbSBzdGFydHMgd2l0aCBu
byBhdWRpbyB0cmFjayIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGF1ZGlvLmdldEF1ZGlvVHJh
Y2tzKCkubGVuZ3RoLCAxLCAiYXVkaW8gbWVkaWFzdHJlYW0gc3RhcnRzIHdpdGggb25lIGF1ZGlv
IHRyYWNrIik7Ci0gICAgICAgIHZpZGVvLmFkZFRyYWNrKGF1ZGlvLmdldEF1ZGlvVHJhY2tzKClb
MF0pOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3Ro
LCAxLCAidmlkZW8gbWVkaWFzdHJlYW0gc3RhcnRzIHdpdGggb25lIGF1ZGlvIHRyYWNrIik7CiAg
ICAgICAgIGNvbnN0IHJlY29yZGVyID0gbmV3IE1lZGlhUmVjb3JkZXIodmlkZW8pOwogICAgICAg
ICBsZXQgbW9kZSA9IDA7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggNjU0MzM4MDA1OGI5OWZkYjE2ZjM2NDFiNTk2ZTM5MjQwNTIwMTc2NS4uZGE3MGI1
ZWU0OWQ4M2M4ODUxNjQyZDg3ZTkzNDIxNWJmM2E0MWRiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3MDgsNiArMTcwOCwxMCBAQCB3ZWJraXQub3Jn
L2IvMjEyMTcyIFsgQ2F0YWxpbmEgXSBmYXN0L3RleHQvZm9udC1jb2xsZWN0aW9uLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdQogWyBDYXRhbGluYSsgXSBmYXN0L3RleHQvZGVzaWduLXN5c3RlbS11aS0x
NS5odG1sIFsgUGFzcyBdCiBbIENhdGFsaW5hKyBdIGZhc3QvdGV4dC9kZXNpZ24tc3lzdGVtLXVp
LTE2Lmh0bWwgWyBQYXNzIF0KIAorWyBDYXRhbGluYSsgXSBodHRwL3dwdC9tZWRpYXJlY29yZGVy
IFsgUGFzcyBGYWlsdXJlIF0gCitbIENhdGFsaW5hKyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvbWVkaWFjYXB0dXJlLXJlY29yZCBbIFBhc3MgRmFpbHVyZSBdCitbIENhdGFsaW5h
KyBdIGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLW1lZGlhLXJlY29yZGVyLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMjAwMTI4IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtdmlkZW8tZWxlbWVudC92
aWRlb190aW1ldXBkYXRlX29uX3NlZWsuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCiAKICMgcmRhcjov
LzU1NDA1ODUxIChbIG1hY09TIF0gTGF5b3V0IHRlc3RzIHdlYmdwdS8qLXRyaWFuZ2xlLXN0cmlw
Lmh0bWwgYXJlIGZsYWt5IGZhaWx1cmVzLiAoMjAxODI3KSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401319</attachid>
            <date>2020-06-08 02:40:23 -0700</date>
            <delta_ts>2020-06-08 04:33:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212739-20200608114022.patch</filename>
            <type>text/plain</type>
            <size>8637</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1NjBkMzE2OWYxNDll
NDEwOWY3NjU1OGM0ZmMzN2MwYjJlZDEzNC4uNGI1ZDBlODYxMjE5NmFkMmI1NjM2Nzg4YmI5NWJi
MzcwYjEyYzcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA2LTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlIFVSTHMgd2l0aCBo
b3N0bmFtZXMgYXJlIG1pc2xlYWRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjczOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjM3NTQ5MTc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBTaG93
aW5nIGEgZmlsZSBVUkwgbGlrZSBmaWxlOi8vZXhhbXBsZS5vcmcvdGVzdCBpcyBtaXNsZWFkaW5n
IHRvIHVzZXJzLgorICAgICAgICBUbyBwcmV2ZW50IHRoaXMsIHdlIGp1c3QgZG8gYSByZWRpcmVj
dGlvbiB0byB0aGUgc2FtZSBmaWxlIFVSTCB3aXRoIGFuIGVtcHR5IGhvc3QuCisgICAgICAgIFJl
bW92ZSB0aGUgcG9ydCBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAgICBDb3ZlcmVkIGJ5IGFkZGVk
IEFQSSB0ZXN0LgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgorCiAyMDIwLTA2
LTA3ICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2Fd
IFVzZSBBVkFzc2V0V3JpdGVyRGVsZWdhdGUgdG8gaW1wbGVtZW50IE1lZGlhUmVjb3JkZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IGU0MTI0MWFkMTE1ZDZh
MWFlOTkzOWIyNDg3MTBjYjljZDdmMmVkNGYuLmZkYTJjNGNjNmNmM2YzMDczOGQzYTc2MmYxYTAz
NDM5MTU2ZWM2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApA
QCAtNjUzLDYgKzY1MywxMiBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0JiYgbmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyYwogICAgICAgICB9CiAg
ICAgfQogCisgICAgaWYgKCFuZXdSZXF1ZXN0LnVybCgpLmhvc3QoKS5pc0VtcHR5KCkgJiYgU2Vj
dXJpdHlPcmlnaW46OnNob3VsZElnbm9yZUhvc3QobmV3UmVxdWVzdC51cmwoKSkpIHsKKyAgICAg
ICAgYXV0byB1cmwgPSBuZXdSZXF1ZXN0LnVybCgpOworICAgICAgICB1cmwuc2V0SG9zdEFuZFBv
cnQoeyB9KTsKKyAgICAgICAgbmV3UmVxdWVzdC5zZXRVUkwoV1RGTW92ZSh1cmwpKTsKKyAgICB9
CisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAgICAgaWYgKG1fY29udGVudEZpbHRl
ciAmJiAhbV9jb250ZW50RmlsdGVyLT5jb250aW51ZUFmdGVyV2lsbFNlbmRSZXF1ZXN0KG5ld1Jl
cXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShuZXdSZXF1ZXN0KSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggY2IzYjc4ZjNhMmU0ZTdhZjA5NDdmY2E2YmJmM2EwYTVkOWYy
N2UwNy4uZWY3NDRlM2VhMjFkNzZkMjhkZGU5MGYzODA1MTg0OTg4NmFhOTJjOCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDIwLTA2LTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBGaWxlIFVSTHMgd2l0aCBob3N0bmFtZXMgYXJlIG1pc2xlYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjczOQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjM3NTQ5MTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L29wZW4t
d2luZG93LXdpdGgtZmlsZS11cmwtd2l0aC1ob3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvT3BlbkFuZENsb3NlV2luZG93Lm1tOgorICAg
ICAgICAoVEVTVCk6CisKIDIwMjAtMDYtMDcgIENhaW8gTGltYSAgPHRpY2Fpb2xpbWFAZ21haWwu
Y29tPgogCiAgICAgICAgIEFsbG93IHJ1bi1qc2Mtc3RyZXNzLXRlc3RzIHN0aWxsIHJ1biBpZiBz
b21lIG9mIHRoZSByZW1vdGUgaG9zdHMgYXJlIG5vdCBhdmFpbGFibGUKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNDI5ZWE5OWRlYTQ5NDg5N2NkMGZiYTgzNjM1NjE5MGFhMWQwMzU2Ni4uMjYw
YTUwZGMxNGE2NjQ3YTE0Nzk5ZmYxMzY5ZjNlNDY1YWZlMDhkMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIzMCw2ICsyMzAsNyBAQAogCQk0MTM1RkI4NTIwMTFGQUJGMDAzMzIxMzkgLyog
bGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzNUZCODYyMDExRkFCRjAwMzMyMTM5IC8qIGxpYldlYkNv
cmVUZXN0U3VwcG9ydC5keWxpYiAqLzsgfTsKIAkJNDE0QUQ2ODYyMjg1RDFDMDAwNzc3RjJEIC8q
IFN0b3JhZ2VRdW90YS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxNEFENjg1MjI4NUQxQjAwMDc3N0YyRCAvKiBTdG9yYWdlUXVvdGEubW0gKi87IH07
CiAJCTQxNjYxQzY2MjM1NUU4NUUwMEQzM0MyNyAvKiBnZXRVc2VyTWVkaWEtd2ViYXVkaW8uaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTY2MUM2NTIzNTVEOThCMDBEMzNDMjcgLyogZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgKi87
IH07CisJCTQxODQ4RjQ0MjQ4OTE4NzkwMDBFMjU4OCAvKiBvcGVuLXdpbmRvdy13aXRoLWZpbGUt
dXJsLXdpdGgtaG9zdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxODQ4RjQzMjQ4OTE4MTUwMDBFMjU4OCAvKiBvcGVuLXdpbmRvdy13
aXRoLWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sICovOyB9OwogCQk0MTg4MkYwMzIxMDEwQzBEMDAy
RkYyODggLyogUHJvY2Vzc1ByZVdhcm1pbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4MkYwMjIxMDEwQTcwMDAyRkYyODggLyogUHJvY2Vzc1By
ZVdhcm1pbmcubW0gKi87IH07CiAJCTQ0MDc3QkIxMjMxNDRCNTAwMDE3OUUyRCAvKiBEYXRhRGV0
ZWN0b3JzVGVzdElPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ0MDc3QkIwMjMxNDQ5RDIwMDE3OUUyRCAvKiBEYXRhRGV0ZWN0b3JzVGVzdElPUy5t
bSAqLzsgfTsKIAkJNDQzM0EzOTYyMDgwNDQxNDAwOTFFRDU3IC8qIFN5bmNocm9ub3VzVGltZW91
dFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDQzM0EzOTUyMDgwNDQxMzAwOTFFRDU3IC8qIFN5bmNocm9ub3VzVGltZW91dFRlc3RzLm1tICov
OyB9OwpAQCAtMTQ5MSw2ICsxNDkyLDcgQEAKIAkJCQlDRUE2Q0YyODE5Q0NGNjlEMDA2NEY1QTcg
Lyogb3Blbi1hbmQtY2xvc2Utd2luZG93Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
N0NDQjk5MjMxRDNCNEE0NjAwMzkyMkY2IC8qIG9wZW4tbXVsdGlwbGUtZXh0ZXJuYWwtdXJsLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNDY4QkM0NTUyMjY1M0ExMDAwQTM2Qzk2IC8q
IG9wZW4td2luZG93LXRoZW4td3JpdGUtdG8taXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
KwkJCQk0MTg0OEY0NDI0ODkxODc5MDAwRTI1ODggLyogb3Blbi13aW5kb3ctd2l0aC1maWxlLXVy
bC13aXRoLWhvc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzFDMjgxRTIyQkM1
NzlBMDAxRDk4QzQgLyogb3BlbmRhdGFiYXNlLWFsd2F5cy1leGlzdHMuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQkyOTBBOUJCOTE3MzVGNjM4MDBENzFCQkMgLyogT3Blbk5ld1dpbmRv
dy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTBGMzQwNzc5MjMwMzgyODcwMDYwQTFB
MCAvKiBvdmVyZmxvdy1zY3JvbGwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTE4Nzgs
NiArMTg4MCw3IEBACiAJCTQxMzVGQjg2MjAxMUZBQkYwMDMzMjEzOSAvKiBsaWJXZWJDb3JlVGVz
dFN1cHBvcnQuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBwYXRoID0gbGliV2ViQ29yZVRlc3RTdXBw
b3J0LmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk0MTRBRDY4
NTIyODVEMUIwMDA3NzdGMkQgLyogU3RvcmFnZVF1b3RhLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU3RvcmFnZVF1b3RhLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTY2MUM2
NTIzNTVEOThCMDBEMzNDMjcgLyogZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiZ2V0VXNlck1lZGlhLXdlYmF1ZGlvLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0MTg0OEY0MzI0ODkxODE1MDAwRTI1ODggLyogb3Blbi13
aW5kb3ctd2l0aC1maWxlLXVybC13aXRoLWhvc3QuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJvcGVuLXdpbmRvdy13aXRoLWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODJGMDIyMTAxMEE3MDAwMkZGMjg4IC8qIFByb2Nl
c3NQcmVXYXJtaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UHJvY2Vzc1ByZVdhcm1pbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOTcz
QjVDMUFGMjI4NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDQwNzdCQjAyMzE0NDlEMjAwMTc5RTJEIC8qIERhdGFEZXRlY3RvcnNUZXN0
SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YURldGVj
dG9yc1Rlc3RJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTQ4LDYgKzQx
NTEsNyBAQAogCQkJCTRBNDEwRjREMTlBRjdCRUYwMDJFQkFCNiAvKiBvbmRldmljZWNoYW5nZS5o
dG1sICovLAogCQkJCUNFQTZDRjI3MTlDQ0Y2OUQwMDY0RjVBNyAvKiBvcGVuLWFuZC1jbG9zZS13
aW5kb3cuaHRtbCAqLywKIAkJCQk0NjhCQzQ1NDIyNjUzOUM4MDBBMzZDOTYgLyogb3Blbi13aW5k
b3ctdGhlbi13cml0ZS10by1pdC5odG1sICovLAorCQkJCTQxODQ4RjQzMjQ4OTE4MTUwMDBFMjU4
OCAvKiBvcGVuLXdpbmRvdy13aXRoLWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sICovLAogCQkJCTgz
MTQ4QjA4MjAyQUM3NjgwMEJBREU5OSAvKiBvdmVycmlkZS1idWlsdGlucy10ZXN0Lmh0bWwgKi8s
CiAJCQkJMEVCQkNDNjUxRkZGOURDRTAwRkE0MkFCIC8qIHBvcC11cC1jaGVjay5odG1sICovLAog
CQkJCUY2RkREREQ1MTQyNDFDNDgwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9vcGVuLXdpbmRvdy13aXRo
LWZpbGUtdXJsLXdpdGgtaG9zdC5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvb3Blbi13aW5kb3ctd2l0aC1maWxlLXVybC13aXRoLWhvc3QuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MGE1YWEwM2I5MmJmNWI2ZjQ3ZGY2MGU3MGI2ZmMzYzE0NzAzZTNmCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvb3Blbi13aW5kb3ctd2l0aC1maWxl
LXVybC13aXRoLWhvc3QuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8Ym9keT4KKzxzY3JpcHQ+CisgICAgaWYgKGxvY2F0aW9uLmhhc2ggIT09ICIjdGVzdCIp
CisgICAgICAgIHdpbmRvdy5vcGVuKCJmaWxlOi8vZXhhbXBsZS5vcmciICsgbG9jYXRpb24ucGF0
aG5hbWUgKyAiI3Rlc3QiLCAiX3NlbGYiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9PcGVuQW5k
Q2xvc2VXaW5kb3cubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09w
ZW5BbmRDbG9zZVdpbmRvdy5tbQppbmRleCA2MGIxMWVmMmZkMDFkODVmNmFhYWYwODFmMDkzMTkw
MGU4Zjg4ZmFhLi41ZWM4NmRlN2RiNjgzYmZjOWM2YjZiMjNiOWFjZTMwMTJiNTQ5ZmMzIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09wZW5BbmRDbG9z
ZVdpbmRvdy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL09w
ZW5BbmRDbG9zZVdpbmRvdy5tbQpAQCAtMzE5LDMgKzMxOSwyMyBAQCBURVNUKFdlYktpdCwgT3Bl
bldpbmRvd1RoZW5Eb2N1bWVudE9wZW4pCiAKICAgICBFWFBFQ1RfVFJVRShbW1tvcGVuZWRXZWJW
aWV3IF9tYWluRnJhbWVVUkxdIGFic29sdXRlU3RyaW5nXSBpc0VxdWFsVG9TdHJpbmc6W1t3ZWJW
aWV3IFVSTF0gYWJzb2x1dGVTdHJpbmddXSk7CiB9CisKK1RFU1QoV2ViS2l0LCBPcGVuRmlsZVVS
TFdpdGhIb3N0KQoreworICAgIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tPcGVuV2luZG93VGhlbkRvY3VtZW50T3BlblVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVpRGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3
IGNvbmZpZ3VyYXRpb25dLnByZWZlcmVuY2VzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkgPSBZRVM7CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBbTlNVUkxSZXF1
ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6
QCJvcGVuLXdpbmRvdy13aXRoLWZpbGUtdXJsLXdpdGgtaG9zdCIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgd2hpbGUgKCFbW1t3ZWJWaWV3IFVSTF0g
YWJzb2x1dGVTdHJpbmddIGhhc1N1ZmZpeDpAIiN0ZXN0Il0pCisgICAgICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnNwaW5SdW5Mb29wKCk7CisKKyAgICB3aGlsZSAoIVtbW3dlYlZpZXcgVVJMXSBh
YnNvbHV0ZVN0cmluZ10gaGFzUHJlZml4OkAiZmlsZTovLy8iXSkKKyAgICAgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>