<?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>79609</bug_id>
          
          <creation_ts>2012-02-26 15:28:28 -0800</creation_ts>
          <short_desc>LLInt should support JSVALUE64</short_desc>
          <delta_ts>2012-03-10 20:03:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>79608</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>565215</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-26 15:28:28 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565216</commentid>
    <comment_count>1</comment_count>
      <attachid>128933</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-26 15:41:22 -0800</bug_when>
    <thetext>Created attachment 128933
it begins

Work in progress. Note that this includes https://bugs.webkit.org/show_bug.cgi?id=79608 for now, since that hasn&apos;t landed yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565279</commentid>
    <comment_count>2</comment_count>
      <attachid>128941</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-26 20:16:01 -0800</bug_when>
    <thetext>Created attachment 128941
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566166</commentid>
    <comment_count>3</comment_count>
      <attachid>129143</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-27 17:23:21 -0800</bug_when>
    <thetext>Created attachment 129143
work in progress

Filled in more of the 64-bit code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567253</commentid>
    <comment_count>4</comment_count>
      <attachid>129358</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-28 17:14:57 -0800</bug_when>
    <thetext>Created attachment 129358
work in progress

Almost half way there!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572473</commentid>
    <comment_count>5</comment_count>
      <attachid>130527</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-06 20:19:56 -0800</bug_when>
    <thetext>Created attachment 130527
work in progress

More than half done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>572477</commentid>
    <comment_count>6</comment_count>
      <attachid>130528</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-06 20:27:35 -0800</bug_when>
    <thetext>Created attachment 130528
work in progress

Same as previous but with typo fixes.  Turns out the offlineasm&apos;s parser and semantic analyzer emits useful error messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574518</commentid>
    <comment_count>7</comment_count>
      <attachid>130957</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-08 19:49:24 -0800</bug_when>
    <thetext>Created attachment 130957
work in progress

Almost there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574524</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-08 19:54:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/10063437&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574566</commentid>
    <comment_count>9</comment_count>
      <attachid>130966</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-08 20:56:23 -0800</bug_when>
    <thetext>Created attachment 130966
work in progress

All of the code is written.  Offlineasm compiles it fine, but I have no idea if clang will be happy with offlineasm&apos;s input, and if it is, if it&apos;ll run at all.

Next step: having fun playing with seg faults.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575329</commentid>
    <comment_count>10</comment_count>
      <attachid>131132</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-09 16:25:37 -0800</bug_when>
    <thetext>Created attachment 131132
work in progress

It&apos;s passing most run-javascriptcore-tests.

Still more work to be done, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575347</commentid>
    <comment_count>11</comment_count>
      <attachid>131136</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-09 16:52:30 -0800</bug_when>
    <thetext>Created attachment 131136
work in progress

Fixed some silly goofs, like one that was preventing the get_by_id/put_by_id fast paths from being taken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575455</commentid>
    <comment_count>12</comment_count>
      <attachid>131158</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-09 23:28:24 -0800</bug_when>
    <thetext>Created attachment 131158
the patch

It&apos;s ready.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575456</commentid>
    <comment_count>13</comment_count>
      <attachid>131159</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-09 23:36:23 -0800</bug_when>
    <thetext>Created attachment 131159
the patch

Wrote a changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575460</commentid>
    <comment_count>14</comment_count>
      <attachid>131159</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-10 00:11:18 -0800</bug_when>
    <thetext>Comment on attachment 131159
the patch

Attachment 131159 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/11933072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575463</commentid>
    <comment_count>15</comment_count>
      <attachid>131161</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-10 00:24:02 -0800</bug_when>
    <thetext>Created attachment 131161
the patch

Fix Mac build and a minor bug in op_to_jsnumber.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575548</commentid>
    <comment_count>16</comment_count>
      <attachid>131161</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2012-03-10 11:31:10 -0800</bug_when>
    <thetext>Comment on attachment 131161
the patch

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

This looks fine to me (other than the unnecessary release mode hash lookups :( ) but i&apos;ll let gavin make the final call

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:233
&gt; +    if (exec-&gt;globalData().interpreter-&gt;getOpcodeID(pc[0].u.opcode) == op_ret) {

Doesn&apos;t this result in a hash lookup even in release builds without logging?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575554</commentid>
    <comment_count>17</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-10 12:25:46 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 131161 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131161&amp;action=review
&gt; 
&gt; This looks fine to me (other than the unnecessary release mode hash lookups :( ) but i&apos;ll let gavin make the final call

This patch does not introduce any unnecessary hash lookups. 

&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:233
&gt; &gt; +    if (exec-&gt;globalData().interpreter-&gt;getOpcodeID(pc[0].u.opcode) == op_ret) {
&gt; 
&gt; Doesn&apos;t this result in a hash lookup even in release builds without logging?

No. That function only gets called with execution tracing is enabled. It is not enabled by default in any builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575581</commentid>
    <comment_count>18</comment_count>
      <attachid>131161</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-10 14:46:39 -0800</bug_when>
    <thetext>Comment on attachment 131161
the patch

r+, but see email</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575582</commentid>
    <comment_count>19</comment_count>
      <attachid>131161</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-03-10 14:48:46 -0800</bug_when>
    <thetext>Comment on attachment 131161
the patch

Scratch the email comment.  r+, all looks good, commit away!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575591</commentid>
    <comment_count>20</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-03-10 16:35:58 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/110383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575617</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-10 20:03:06 -0800</bug_when>
    <thetext>I&apos;m not certain but maybe this regressed Dromaeo/sunspider-crypto-sha1 (or that undone the temporary gain made by http://trac.webkit.org/changeset/109705/)?

http://webkit-perf.appspot.com/graph.html#tests=[[39655,2001,32196]]&amp;sel=none&amp;displayrange=7&amp;datatype=running</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128933</attachid>
            <date>2012-02-26 15:41:22 -0800</date>
            <delta_ts>2012-02-26 20:16:01 -0800</delta_ts>
            <desc>it begins</desc>
            <filename>llint64_patch_1.diff</filename>
            <type>text/plain</type>
            <size>59818</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4OTM1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTAyLTI2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAg
ICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9y
ZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTItMDItMjYg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgU3RyaW5n
TGl0ZXJhbCBhbmQgTnVtZXJpY0xpdGVyYWwgYXJlIGFsbG93ZWQgYXMgT2JqZWN0TGl0ZXJhbCBn
ZXR0ZXIgLyBzZXR0ZXIgbmFtZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0JKHJldmlzaW9uIDEwODkwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC01ODMsNiArNTgzLDcgQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9CeXRl
QXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9DaGVja2VkQXJpdGhtZXRpYy5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NoZWNrZWRCb29sZWFuLmggXAorCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvQ29tcGFjdFZlY3Rvci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL0NvbXBpbGVyLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQ29tcGxl
eC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9t
TnVtYmVyLmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MTA4OTA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsNyBAQAogCQkw
RkI1NDY3OTE0RjVDNDZCMDAyQzI5ODkgLyogTGF6eU9wZXJhbmRWYWx1ZVByb2ZpbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCNTQ2NzgxNEY1
QzQ2ODAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcCAqLzsgfTsKIAkJMEZC
NTQ2N0IxNEY1QzdFMTAwMkMyOTg5IC8qIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQjU0NjdBMTRG
NUM3RDQwMDJDMjk4OSAvKiBNZXRob2RPZkdldHRpbmdBVmFsdWVQcm9maWxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZCNTQ2N0QxNEY1Q0ZE
NjAwMkMyOTg5IC8qIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCNTQ2N0MxNEY1Q0ZEMzAwMkMy
OTg5IC8qIE1ldGhvZE9mR2V0dGluZ0FWYWx1ZVByb2ZpbGUuY3BwICovOyB9OworCQkwRkI1NDY5
MDE0RkFEQTdCMDAyQzI5ODkgLyogQ29tcGFjdFZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCNTQ2OEUxNEZBREE2RjAwMkMyOTg5IC8qIENv
bXBhY3RWZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRkJDMEFFNzE0OTZDN0M0MDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCQzBBRTQxNDk2
QzdDMTAwRDRGQkREIC8qIERGR0V4aXRQcm9maWxlLmNwcCAqLzsgfTsKIAkJMEZCQzBBRTgxNDk2
QzdDNzAwRDRGQkREIC8qIERGR0V4aXRQcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkJDMEFFNTE0OTZDN0MxMDBENEZCREQgLyogREZHRXhp
dFByb2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRkJEN0U2OTE0NDc5OTk2MDA0ODEzMTUgLyogQ29kZU9yaWdpbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZCRDdFNjcxNDQ3OTk4RjAwNDgx
MzE1IC8qIENvZGVPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMTAwOCw2ICsxMDA5LDcgQEAKIAkJMEZCNTQ2NzgxNEY1QzQ2ODAwMkMy
OTg5IC8qIExhenlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExhenlPcGVyYW5kVmFsdWVQcm9maWxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZCNTQ2N0ExNEY1QzdENDAwMkMyOTg5IC8qIE1ldGhvZE9mR2V0
dGluZ0FWYWx1ZVByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWV0
aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRkI1NDY3QzE0RjVDRkQzMDAyQzI5ODkgLyogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmls
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXRob2RPZkdldHRp
bmdBVmFsdWVQcm9maWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZCNTQ2
OEUxNEZBREE2RjAwMkMyOTg5IC8qIENvbXBhY3RWZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29tcGFjdFZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkJDMEFFNDE0OTZDN0MxMDBENEZCREQgLyogREZHRXhpdFByb2ZpbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gREZHRXhpdFByb2ZpbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkJDMEFFNTE0OTZDN0MxMDBENEZCREQgLyogREZH
RXhpdFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gREZHRXhpdFBy
b2ZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZCRDdFNjcxNDQ3OTk4RjAw
NDgxMzE1IC8qIENvZGVPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q29kZU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIwNCw2ICsyMjA2
LDcgQEAKIAkJCQlBN0ExRjdBQjBGMjUyQjNDMDBFMTg0RTIgLyogQnl0ZUFycmF5LmggKi8sCiAJ
CQkJQTdCQzBDODExNDA2MDhCMDAwQjFCQjcxIC8qIENoZWNrZWRBcml0aG1ldGljLmggKi8sCiAJ
CQkJQzJEOUNBMTIxNEJDQzA0NjAwMzA0QjQ2IC8qIENoZWNrZWRCb29sZWFuLmggKi8sCisJCQkJ
MEZCNTQ2OEUxNEZBREE2RjAwMkMyOTg5IC8qIENvbXBhY3RWZWN0b3IuaCAqLywKIAkJCQlCQzY2
QkFFMjEzRjQ5MjhGMDBDMjNGQUUgLyogQ29tcGlsZXIuaCAqLywKIAkJCQlGREExNUMxNjEyQjAz
MDI4MDAzQTU4M0EgLyogQ29tcGxleC5oICovLAogCQkJCTk3OTQxQTdDMTMwMkEwOTgwMDRBMzQ0
NyAvKiBDcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgKi8sCkBAIC0zNDAxLDYgKzM0
MDQsNyBAQAogCQkJCTE0OTcyMDkxMTRFQjgzMTUwMEZFQjFCNyAvKiBQYXNzV2Vhay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZCNTQ2NzcxNEY1OUI1QzAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI1NDY3QjE0RjVDN0UxMDAyQzI5ODkg
LyogTWV0aG9kT2ZHZXR0aW5nQVZhbHVlUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZC
NTQ2OTAxNEZBREE3QjAwMkMyOTg5IC8qIENvbXBhY3RWZWN0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHJl
dmlzaW9uIDEwODkwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYsNyArMjI2LDcgQEAgc3RhdGljIGJvb2wgaXNQ
cm9wZXJ0eUFjY2VzcyhPcGNvZGVJRCBvcAogICAgIH0KIH0KIAotc3RhdGljIHVuc2lnbmVkIGlu
c3RydWN0aW9uT2Zmc2V0Rm9yTnRoKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVmVjdG9yPEluc3Ry
dWN0aW9uPiYgaW5zdHJ1Y3Rpb25zLCBpbnQgbnRoLCBib29sICgqcHJlZGljYXRlKShPcGNvZGVJ
RCkpCitzdGF0aWMgdW5zaWduZWQgaW5zdHJ1Y3Rpb25PZmZzZXRGb3JOdGgoRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBDb21wYWN0VmVjdG9yPEluc3RydWN0aW9uPiYgaW5zdHJ1Y3Rpb25zLCBpbnQg
bnRoLCBib29sICgqcHJlZGljYXRlKShPcGNvZGVJRCkpCiB7CiAgICAgc2l6ZV90IGkgPSAwOwog
ICAgIHdoaWxlIChpIDwgaW5zdHJ1Y3Rpb25zLnNpemUoKSkgewpAQCAtMzQ3LDE4ICszNDcsMTMg
QEAgdm9pZCBDb2RlQmxvY2s6OnByaW50U3RydWN0dXJlcyhjb25zdCBJbgogCiB2b2lkIENvZGVC
bG9jazo6ZHVtcChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2luc3RydWN0
aW9ucykgewotICAgICAgICBkYXRhTG9nKCJObyBpbnN0cnVjdGlvbnMgYXZhaWxhYmxlLlxuIik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICBzaXplX3QgaW5zdHJ1Y3Rpb25Db3VudCA9
IDA7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluc3RydWN0aW9ucygpLnNpemUoKTsg
aSArPSBvcGNvZGVMZW5ndGhzW2V4ZWMtPmludGVycHJldGVyKCktPmdldE9wY29kZUlEKGluc3Ry
dWN0aW9ucygpW2ldLnUub3Bjb2RlKV0pCiAgICAgICAgICsraW5zdHJ1Y3Rpb25Db3VudDsKIAog
ICAgIGRhdGFMb2coIiVsdSBtX2luc3RydWN0aW9uczsgJWx1IGJ5dGVzIGF0ICVwOyAlZCBwYXJh
bWV0ZXIocyk7ICVkIGNhbGxlZSByZWdpc3RlcihzKTsgJWQgdmFyaWFibGUocylcblxuIiwKLSAg
ICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZz4oaW5zdHJ1Y3Rpb25Db3VudCksCisgICAg
ICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGluc3RydWN0aW9ucygpLnNpemUoKSksCiAg
ICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KGluc3RydWN0aW9ucygpLnNpemUoKSAq
IHNpemVvZihJbnN0cnVjdGlvbikpLAogICAgICAgICB0aGlzLCBtX251bVBhcmFtZXRlcnMsIG1f
bnVtQ2FsbGVlUmVnaXN0ZXJzLCBtX251bVZhcnMpOwogCkBAIC0xNDI0LDExICsxNDE5LDkgQEAg
Q29kZUJsb2NrOjpDb2RlQmxvY2soQ29weVBhcnNlZEJsb2NrVGFnLAogICAgICwgbV9udW1WYXJz
KG90aGVyLm1fbnVtVmFycykKICAgICAsIG1fbnVtQ2FwdHVyZWRWYXJzKG90aGVyLm1fbnVtQ2Fw
dHVyZWRWYXJzKQogICAgICwgbV9pc0NvbnN0cnVjdG9yKG90aGVyLm1faXNDb25zdHJ1Y3RvcikK
LSAgICAsIG1fc2hvdWxkRGlzY2FyZEJ5dGVjb2RlKGZhbHNlKQogICAgICwgbV9vd25lckV4ZWN1
dGFibGUoKm90aGVyLm1fZ2xvYmFsRGF0YSwgb3RoZXIubV9vd25lckV4ZWN1dGFibGUuZ2V0KCks
IG90aGVyLm1fb3duZXJFeGVjdXRhYmxlLmdldCgpKQogICAgICwgbV9nbG9iYWxEYXRhKG90aGVy
Lm1fZ2xvYmFsRGF0YSkKICAgICAsIG1faW5zdHJ1Y3Rpb25zKG90aGVyLm1faW5zdHJ1Y3Rpb25z
KQotICAgICwgbV9pbnN0cnVjdGlvbkNvdW50KG90aGVyLm1faW5zdHJ1Y3Rpb25Db3VudCkKICAg
ICAsIG1fdGhpc1JlZ2lzdGVyKG90aGVyLm1fdGhpc1JlZ2lzdGVyKQogICAgICwgbV9hcmd1bWVu
dHNSZWdpc3RlcihvdGhlci5tX2FyZ3VtZW50c1JlZ2lzdGVyKQogICAgICwgbV9hY3RpdmF0aW9u
UmVnaXN0ZXIob3RoZXIubV9hY3RpdmF0aW9uUmVnaXN0ZXIpCkBAIC0xNDg0LDEyICsxNDc3LDkg
QEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0YWJsZSogbwogICAgICwgbV9udW1D
YWxsZWVSZWdpc3RlcnMoMCkKICAgICAsIG1fbnVtVmFycygwKQogICAgICwgbV9pc0NvbnN0cnVj
dG9yKGlzQ29uc3RydWN0b3IpCi0gICAgLCBtX3Nob3VsZERpc2NhcmRCeXRlY29kZShmYWxzZSkK
ICAgICAsIG1fbnVtUGFyYW1ldGVycygwKQogICAgICwgbV9vd25lckV4ZWN1dGFibGUoZ2xvYmFs
T2JqZWN0LT5nbG9iYWxEYXRhKCksIG93bmVyRXhlY3V0YWJsZSwgb3duZXJFeGVjdXRhYmxlKQog
ICAgICwgbV9nbG9iYWxEYXRhKDApCi0gICAgLCBtX2luc3RydWN0aW9ucyhhZG9wdFJlZihuZXcg
SW5zdHJ1Y3Rpb25zKSkKLSAgICAsIG1faW5zdHJ1Y3Rpb25Db3VudCgwKQogICAgICwgbV9hcmd1
bWVudHNSZWdpc3RlcigtMSkKICAgICAsIG1fbmVlZHNGdWxsU2NvcGVDaGFpbihvd25lckV4ZWN1
dGFibGUtPm5lZWRzQWN0aXZhdGlvbigpKQogICAgICwgbV91c2VzRXZhbChvd25lckV4ZWN1dGFi
bGUtPnVzZXNFdmFsKCkpCkBAIC0xOTAzLDEyICsxODkzLDYgQEAgdm9pZCBDb2RlQmxvY2s6OmZp
bmFsaXplVW5jb25kaXRpb25hbGx5KAogICAgICAgICB9CiAgICAgfQogI2VuZGlmCi0KLSAgICAv
LyBIYW5kbGUgdGhlIGJ5dGVjb2RlIGRpc2NhcmRpbmcgY2hvcmUuCi0gICAgaWYgKG1fc2hvdWxk
RGlzY2FyZEJ5dGVjb2RlKSB7Ci0gICAgICAgIGRpc2NhcmRCeXRlY29kZSgpOwotICAgICAgICBt
X3Nob3VsZERpc2NhcmRCeXRlY29kZSA9IGZhbHNlOwotICAgIH0KIH0KIAogdm9pZCBDb2RlQmxv
Y2s6OnN0cm9uZ2x5VmlzaXRTdHJvbmdSZWZlcmVuY2VzKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQpA
QCAtMTk4MCw3ICsxOTY0LDcgQEAgdm9pZCBDb2RlQmxvY2s6OnN0cm9uZ2x5VmlzaXRXZWFrUmVm
ZXJlbgogCiBIYW5kbGVySW5mbyogQ29kZUJsb2NrOjpoYW5kbGVyRm9yQnl0ZWNvZGVPZmZzZXQo
dW5zaWduZWQgYnl0ZWNvZGVPZmZzZXQpCiB7Ci0gICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0IDwg
bV9pbnN0cnVjdGlvbkNvdW50KTsKKyAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQgPCBpbnN0cnVj
dGlvbnMoKS5zaXplKCkpOwogCiAgICAgaWYgKCFtX3JhcmVEYXRhKQogICAgICAgICByZXR1cm4g
MDsKQEAgLTE5OTgsNyArMTk4Miw3IEBAIEhhbmRsZXJJbmZvKiBDb2RlQmxvY2s6OmhhbmRsZXJG
b3JCeXRlY28KIAogaW50IENvZGVCbG9jazo6bGluZU51bWJlckZvckJ5dGVjb2RlT2Zmc2V0KHVu
c2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KQogewotICAgIEFTU0VSVChieXRlY29kZU9mZnNldCA8IG1f
aW5zdHJ1Y3Rpb25Db3VudCk7CisgICAgQVNTRVJUKGJ5dGVjb2RlT2Zmc2V0IDwgaW5zdHJ1Y3Rp
b25zKCkuc2l6ZSgpKTsKIAogICAgIGlmICghbV9yYXJlRGF0YSkKICAgICAgICAgcmV0dXJuIG1f
b3duZXJFeGVjdXRhYmxlLT5zb3VyY2UoKS5maXJzdExpbmUoKTsKQEAgLTIwMjIsNyArMjAwNiw3
IEBAIGludCBDb2RlQmxvY2s6OmxpbmVOdW1iZXJGb3JCeXRlY29kZU9mZnMKIAogdm9pZCBDb2Rl
QmxvY2s6OmV4cHJlc3Npb25SYW5nZUZvckJ5dGVjb2RlT2Zmc2V0KHVuc2lnbmVkIGJ5dGVjb2Rl
T2Zmc2V0LCBpbnQmIGRpdm90LCBpbnQmIHN0YXJ0T2Zmc2V0LCBpbnQmIGVuZE9mZnNldCkKIHsK
LSAgICBBU1NFUlQoYnl0ZWNvZGVPZmZzZXQgPCBtX2luc3RydWN0aW9uQ291bnQpOworICAgIEFT
U0VSVChieXRlY29kZU9mZnNldCA8IGluc3RydWN0aW9ucygpLnNpemUoKSk7CiAKICAgICBpZiAo
IW1fcmFyZURhdGEpIHsKICAgICAgICAgc3RhcnRPZmZzZXQgPSAwOwpAQCAtMjEwMiw4ICsyMDg2
LDYgQEAgYm9vbCBDb2RlQmxvY2s6Omhhc0dsb2JhbFJlc29sdmVJbmZvQXRCeQogCiB2b2lkIENv
ZGVCbG9jazo6c2hyaW5rVG9GaXQoKQogewotICAgIGluc3RydWN0aW9ucygpLnNocmlua1RvRml0
KCk7Ci0KICNpZiBFTkFCTEUoQ0xBU1NJQ19JTlRFUlBSRVRFUikKICAgICBtX3Byb3BlcnR5QWNj
ZXNzSW5zdHJ1Y3Rpb25zLnNocmlua1RvRml0KCk7CiAgICAgbV9nbG9iYWxSZXNvbHZlSW5zdHJ1
Y3Rpb25zLnNocmlua1RvRml0KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxMDg5MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAK
ICNpbmNsdWRlICJVU3RyaW5nLmgiCiAjaW5jbHVkZSAiVW5jb25kaXRpb25hbEZpbmFsaXplci5o
IgogI2luY2x1ZGUgIlZhbHVlUHJvZmlsZS5oIgorI2luY2x1ZGUgPHd0Zi9Db21wYWN0VmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTEyNyw4ICsxMjgsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIAotICAgICAgICBib29sIGNh
blByb2R1Y2VDb3B5V2l0aEJ5dGVjb2RlKCkgeyByZXR1cm4gaGFzSW5zdHJ1Y3Rpb25zKCk7IH0K
LQogICAgICAgICB2b2lkIHZpc2l0QWdncmVnYXRlKFNsb3RWaXNpdG9yJik7CiAKICAgICAgICAg
c3RhdGljIHZvaWQgZHVtcFN0YXRpc3RpY3MoKTsKQEAgLTM0MSwyMCArMzQwLDEzIEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB2b2lkIHNldElzTnVtZXJpY0NvbXBhcmVGdW5jdGlvbihib29s
IGlzTnVtZXJpY0NvbXBhcmVGdW5jdGlvbikgeyBtX2lzTnVtZXJpY0NvbXBhcmVGdW5jdGlvbiA9
IGlzTnVtZXJpY0NvbXBhcmVGdW5jdGlvbjsgfQogICAgICAgICBib29sIGlzTnVtZXJpY0NvbXBh
cmVGdW5jdGlvbigpIHsgcmV0dXJuIG1faXNOdW1lcmljQ29tcGFyZUZ1bmN0aW9uOyB9CiAKLSAg
ICAgICAgYm9vbCBoYXNJbnN0cnVjdGlvbnMoKSBjb25zdCB7IHJldHVybiAhIW1faW5zdHJ1Y3Rp
b25zOyB9Ci0gICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5zdHJ1Y3Rpb25zKCkgY29uc3QgeyBy
ZXR1cm4gIW1faW5zdHJ1Y3Rpb25zID8gMCA6IG1faW5zdHJ1Y3Rpb25zLT5tX2luc3RydWN0aW9u
cy5zaXplKCk7IH0KLSAgICAgICAgVmVjdG9yPEluc3RydWN0aW9uPiYgaW5zdHJ1Y3Rpb25zKCkg
eyByZXR1cm4gbV9pbnN0cnVjdGlvbnMtPm1faW5zdHJ1Y3Rpb25zOyB9Ci0gICAgICAgIGNvbnN0
IFZlY3RvcjxJbnN0cnVjdGlvbj4mIGluc3RydWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5z
dHJ1Y3Rpb25zLT5tX2luc3RydWN0aW9uczsgfQotICAgICAgICB2b2lkIGRpc2NhcmRCeXRlY29k
ZSgpIHsgbV9pbnN0cnVjdGlvbnMuY2xlYXIoKTsgfQotICAgICAgICB2b2lkIGRpc2NhcmRCeXRl
Y29kZUxhdGVyKCkKLSAgICAgICAgewotICAgICAgICAgICAgbV9zaG91bGREaXNjYXJkQnl0ZWNv
ZGUgPSB0cnVlOwotICAgICAgICB9CisgICAgICAgIHVuc2lnbmVkIG51bWJlck9mSW5zdHJ1Y3Rp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9pbnN0cnVjdGlvbnMuc2l6ZSgpOyB9CisgICAgICAgIENv
bXBhY3RWZWN0b3I8SW5zdHJ1Y3Rpb24+JiBpbnN0cnVjdGlvbnMoKSB7IHJldHVybiBtX2luc3Ry
dWN0aW9uczsgfQorICAgICAgICBjb25zdCBDb21wYWN0VmVjdG9yPEluc3RydWN0aW9uPiYgaW5z
dHJ1Y3Rpb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbnN0cnVjdGlvbnM7IH0KICAgICAgICAgCiAg
ICAgICAgIGJvb2wgdXNlc09wY29kZShPcGNvZGVJRCk7CiAKLSAgICAgICAgdW5zaWduZWQgaW5z
dHJ1Y3Rpb25Db3VudCgpIHsgcmV0dXJuIG1faW5zdHJ1Y3Rpb25Db3VudDsgfQotICAgICAgICB2
b2lkIHNldEluc3RydWN0aW9uQ291bnQodW5zaWduZWQgaW5zdHJ1Y3Rpb25Db3VudCkgeyBtX2lu
c3RydWN0aW9uQ291bnQgPSBpbnN0cnVjdGlvbkNvdW50OyB9CisgICAgICAgIHVuc2lnbmVkIGlu
c3RydWN0aW9uQ291bnQoKSB7IHJldHVybiBtX2luc3RydWN0aW9ucy5zaXplKCk7IH0KIAogI2lm
IEVOQUJMRShKSVQpCiAgICAgICAgIHZvaWQgc2V0SklUQ29kZShjb25zdCBKSVRDb2RlJiBjb2Rl
LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVdpdGhBcml0eUNoZWNrKQpAQCAtNTQxLDExICs1
MzMsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAgIFZhbHVlUHJv
ZmlsZSogcmVzdWx0ID0gV1RGOjpnZW5lcmljQmluYXJ5U2VhcmNoPFZhbHVlUHJvZmlsZSwgaW50
LCBnZXRWYWx1ZVByb2ZpbGVCeXRlY29kZU9mZnNldD4obV92YWx1ZVByb2ZpbGVzLCBtX3ZhbHVl
UHJvZmlsZXMuc2l6ZSgpLCBieXRlY29kZU9mZnNldCk7CiAgICAgICAgICAgICBBU1NFUlQocmVz
dWx0LT5tX2J5dGVjb2RlT2Zmc2V0ICE9IC0xKTsKLSAgICAgICAgICAgIEFTU0VSVCghaGFzSW5z
dHJ1Y3Rpb25zKCkKLSAgICAgICAgICAgICAgICAgICB8fCBpbnN0cnVjdGlvbnMoKVtieXRlY29k
ZU9mZnNldCArIG9wY29kZUxlbmd0aCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ2xv
YmFsRGF0YS0+aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluc3RydWN0aW9ucygpWwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBieXRlY29kZU9mZnNldF0udS5vcGNvZGUpKSAtIDFdLnUucHJvZmlsZSA9PSByZXN1bHQp
OworICAgICAgICAgICAgQVNTRVJUKGluc3RydWN0aW9ucygpW2J5dGVjb2RlT2Zmc2V0ICsgb3Bj
b2RlTGVuZ3RoKAorICAgICAgICAgICAgICAgICAgICAgICBtX2dsb2JhbERhdGEtPmludGVycHJl
dGVyLT5nZXRPcGNvZGVJRCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RydWN0aW9u
cygpWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVjb2RlT2Zmc2V0XS51Lm9w
Y29kZSkpIC0gMV0udS5wcm9maWxlID09IHJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgICAgICB9CiAgICAgICAgIFByZWRpY3RlZFR5cGUgdmFsdWVQcm9maWxlUHJlZGlj
dGlvbkZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9mZnNldCkKQEAgLTEwNDcsOSArMTAz
OCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBpbnQgbV9udW1DYXB0dXJlZFZhcnM7CiAg
ICAgICAgIGJvb2wgbV9pc0NvbnN0cnVjdG9yOwogCi0gICAgICAgIC8vIFRoaXMgaXMgcHVibGlj
IGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvdWxkIGhhdmUgbWFueSBmcmllbmRzLgotICAgICAgICBi
b29sIG1fc2hvdWxkRGlzY2FyZEJ5dGVjb2RlOwotCiAgICAgcHJvdGVjdGVkOgogI2lmIEVOQUJM
RShKSVQpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBqaXRDb21waWxlSW1wbChKU0dsb2JhbERhdGEm
KSA9IDA7CkBAIC0xMTE1LDExICsxMTAzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFdy
aXRlQmFycmllcjxTY3JpcHRFeGVjdXRhYmxlPiBtX293bmVyRXhlY3V0YWJsZTsKICAgICAgICAg
SlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CiAKLSAgICAgICAgc3RydWN0IEluc3RydWN0aW9u
cyA6IHB1YmxpYyBSZWZDb3VudGVkPEluc3RydWN0aW9ucz4gewotICAgICAgICAgICAgVmVjdG9y
PEluc3RydWN0aW9uPiBtX2luc3RydWN0aW9uczsKLSAgICAgICAgfTsKLSAgICAgICAgUmVmUHRy
PEluc3RydWN0aW9ucz4gbV9pbnN0cnVjdGlvbnM7Ci0gICAgICAgIHVuc2lnbmVkIG1faW5zdHJ1
Y3Rpb25Db3VudDsKKyAgICAgICAgQ29tcGFjdFZlY3RvcjxJbnN0cnVjdGlvbj4gbV9pbnN0cnVj
dGlvbnM7CiAKICAgICAgICAgaW50IG1fdGhpc1JlZ2lzdGVyOwogICAgICAgICBpbnQgbV9hcmd1
bWVudHNSZWdpc3RlcjsKQEAgLTEzNzksMjcgKzEzNjMsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICNl
bmRpZgogICAgIH07CiAKLSAgICAvLyBVc2UgdGhpcyBpZiB5b3Ugd2FudCB0byBjb3B5IGEgY29k
ZSBibG9jayBhbmQgeW91J3JlIHBhcmFub2lkIGFib3V0IGEgR0MKLSAgICAvLyBoYXBwZW5pbmcu
Ci0gICAgY2xhc3MgQnl0ZWNvZGVEZXN0cnVjdGlvbkJsb2NrZXIgewotICAgIHB1YmxpYzoKLSAg
ICAgICAgQnl0ZWNvZGVEZXN0cnVjdGlvbkJsb2NrZXIoQ29kZUJsb2NrKiBjb2RlQmxvY2spCi0g
ICAgICAgICAgICA6IG1fY29kZUJsb2NrKGNvZGVCbG9jaykKLSAgICAgICAgICAgICwgbV9vbGRW
YWx1ZU9mU2hvdWxkRGlzY2FyZEJ5dGVjb2RlKGNvZGVCbG9jay0+bV9zaG91bGREaXNjYXJkQnl0
ZWNvZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNvZGVCbG9jay0+bV9zaG91bGREaXNjYXJk
Qnl0ZWNvZGUgPSBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgfkJ5dGVjb2Rl
RGVzdHJ1Y3Rpb25CbG9ja2VyKCkKLSAgICAgICAgewotICAgICAgICAgICAgbV9jb2RlQmxvY2st
Pm1fc2hvdWxkRGlzY2FyZEJ5dGVjb2RlID0gbV9vbGRWYWx1ZU9mU2hvdWxkRGlzY2FyZEJ5dGVj
b2RlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgIHByaXZhdGU6Ci0gICAgICAgIENvZGVCbG9j
ayogbV9jb2RlQmxvY2s7Ci0gICAgICAgIGJvb2wgbV9vbGRWYWx1ZU9mU2hvdWxkRGlzY2FyZEJ5
dGVjb2RlOwotICAgIH07Ci0KICAgICBpbmxpbmUgQ29kZUJsb2NrKiBiYXNlbGluZUNvZGVCbG9j
a0Zvck9yaWdpbkFuZEJhc2VsaW5lQ29kZUJsb2NrKGNvbnN0IENvZGVPcmlnaW4mIGNvZGVPcmln
aW4sIENvZGVCbG9jayogYmFzZWxpbmVDb2RlQmxvY2spCiAgICAgewogICAgICAgICBpZiAoY29k
ZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWUpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lv
biAxMDg5MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSwxNSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICBleHBlY3RlZCBieSB0aGUgY2FsbGVlLgogKi8KIAordm9pZCBMYWJlbDo6
c2V0TG9jYXRpb24odW5zaWduZWQgbG9jYXRpb24pCit7CisgICAgbV9sb2NhdGlvbiA9IGxvY2F0
aW9uOworICAgIAorICAgIHVuc2lnbmVkIHNpemUgPSBtX3VucmVzb2x2ZWRKdW1wcy5zaXplKCk7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICAgICAgbV9nZW5l
cmF0b3ItPm1faW5zdHJ1Y3Rpb25zW21fdW5yZXNvbHZlZEp1bXBzW2ldLnNlY29uZF0udS5vcGVy
YW5kID0gbV9sb2NhdGlvbiAtIG1fdW5yZXNvbHZlZEp1bXBzW2ldLmZpcnN0OworfQorCiAjaWZu
ZGVmIE5ERUJVRwogdm9pZCBSZXNvbHZlUmVzdWx0OjpjaGVja1ZhbGlkaXR5KCkKIHsKQEAgLTE3
MSw4ICsxODAsOCBAQCBKU09iamVjdCogQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKCkKICAg
ICBtX2NvZGVCbG9jay0+c2V0VGhpc1JlZ2lzdGVyKG1fdGhpc1JlZ2lzdGVyLmluZGV4KCkpOwog
CiAgICAgbV9zY29wZU5vZGUtPmVtaXRCeXRlY29kZSgqdGhpcyk7Ci0KLSAgICBtX2NvZGVCbG9j
ay0+c2V0SW5zdHJ1Y3Rpb25Db3VudChtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuc2l6ZSgp
KTsKKyAgICAKKyAgICBtX2NvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zKCkgPSBDb21wYWN0VmVjdG9y
PEluc3RydWN0aW9uPihtX2luc3RydWN0aW9ucyk7CiAKICAgICBpZiAoc19kdW1wc0dlbmVyYXRl
ZENvZGUpCiAgICAgICAgIG1fY29kZUJsb2NrLT5kdW1wKG1fc2NvcGVDaGFpbi0+Z2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCkpOwpAQCAtNjA3LDcgKzYxNiw3IEBAIFBhc3NSZWZQdHI8TGFiZWw+
IEJ5dGVjb2RlR2VuZXJhdG9yOjpuZXcKICAgICAgICAgbV9sYWJlbHMucmVtb3ZlTGFzdCgpOwog
CiAgICAgLy8gQWxsb2NhdGUgbmV3IGxhYmVsIElELgotICAgIG1fbGFiZWxzLmFwcGVuZChtX2Nv
ZGVCbG9jayk7CisgICAgbV9sYWJlbHMuYXBwZW5kKHRoaXMpOwogICAgIHJldHVybiAmbV9sYWJl
bHMubGFzdCgpOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAxMDg5MDUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xh
c3MgSWRlbnRpZmllcjsKKyAgICBjbGFzcyBMYWJlbDsKICAgICBjbGFzcyBTY29wZUNoYWluTm9k
ZTsKIAogICAgIGNsYXNzIENhbGxBcmd1bWVudHMgewpAQCAtNTMyLDYgKzUzMyw4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2NvcGVDaGFpbi5nZXQoKTsgfQogCiAgICAgcHJpdmF0ZToKKyAgICAgICAgZnJp
ZW5kIGNsYXNzIExhYmVsOworICAgICAgICAKICAgICAgICAgdm9pZCBlbWl0T3Bjb2RlKE9wY29k
ZUlEKTsKICAgICAgICAgVmFsdWVQcm9maWxlKiBlbWl0UHJvZmlsZWRPcGNvZGUoT3Bjb2RlSUQp
OwogICAgICAgICB2b2lkIHJldHJpZXZlTGFzdEJpbmFyeU9wKGludCYgZHN0SW5kZXgsIGludCYg
c3JjMUluZGV4LCBpbnQmIHNyYzJJbmRleCk7CkBAIC02MTEsNyArNjE0LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdEluaXRMYXp5UmVnaXN0ZXIoUmVnaXN0
ZXJJRCopOwogCi0gICAgICAgIFZlY3RvcjxJbnN0cnVjdGlvbj4mIGluc3RydWN0aW9ucygpIHsg
cmV0dXJuIG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKTsgfQorICAgICAgICBWZWN0b3I8SW5z
dHJ1Y3Rpb24+JiBpbnN0cnVjdGlvbnMoKSB7IHJldHVybiBtX2luc3RydWN0aW9uczsgfQogICAg
ICAgICBTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUoKSB7IHJldHVybiAqbV9zeW1ib2xUYWJsZTsg
fQogCiAgICAgICAgIGJvb2wgc2hvdWxkT3B0aW1pemVMb2NhbHMoKQpAQCAtNjQ0LDYgKzY0Nyw4
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGNyZWF0ZUFyZ3VtZW50c0lmTmVjZXNz
YXJ5KCk7CiAgICAgICAgIHZvaWQgY3JlYXRlQWN0aXZhdGlvbklmTmVjZXNzYXJ5KCk7CiAgICAg
ICAgIFJlZ2lzdGVySUQqIGNyZWF0ZUxhenlSZWdpc3RlcklmTmVjZXNzYXJ5KFJlZ2lzdGVySUQq
KTsKKyAgICAgICAgCisgICAgICAgIFZlY3RvcjxJbnN0cnVjdGlvbj4gbV9pbnN0cnVjdGlvbnM7
CiAKICAgICAgICAgYm9vbCBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tzOwogICAgICAgICBib29sIG1f
c2hvdWxkRW1pdFByb2ZpbGVIb29rczsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvTGFiZWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvbXBpbGVyL0xhYmVsLmgJKHJldmlzaW9uIDEwODkwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTGFiZWwuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMjEgKzM5LDE0
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgTGFiZWwgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgZXhwbGljaXQgTGFiZWwoQ29kZUJsb2NrKiBjb2RlQmxvY2spCisgICAgICAgIGV4cGxp
Y2l0IExhYmVsKEJ5dGVjb2RlR2VuZXJhdG9yKiBnZW5lcmF0b3IpCiAgICAgICAgICAgICA6IG1f
cmVmQ291bnQoMCkKICAgICAgICAgICAgICwgbV9sb2NhdGlvbihpbnZhbGlkTG9jYXRpb24pCi0g
ICAgICAgICAgICAsIG1fY29kZUJsb2NrKGNvZGVCbG9jaykKKyAgICAgICAgICAgICwgbV9nZW5l
cmF0b3IoZ2VuZXJhdG9yKQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHNl
dExvY2F0aW9uKHVuc2lnbmVkIGxvY2F0aW9uKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2xv
Y2F0aW9uID0gbG9jYXRpb247Ci0KLSAgICAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3VucmVz
b2x2ZWRKdW1wcy5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
c2l6ZTsgKytpKQotICAgICAgICAgICAgICAgIG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKVtt
X3VucmVzb2x2ZWRKdW1wc1tpXS5zZWNvbmRdLnUub3BlcmFuZCA9IG1fbG9jYXRpb24gLSBtX3Vu
cmVzb2x2ZWRKdW1wc1tpXS5maXJzdDsKLSAgICAgICAgfQorICAgICAgICB2b2lkIHNldExvY2F0
aW9uKHVuc2lnbmVkKTsKIAogICAgICAgICBpbnQgYmluZChpbnQgb3Bjb2RlLCBpbnQgb2Zmc2V0
KSBjb25zdAogICAgICAgICB7CkBAIC04MSw3ICs3NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAg
ICAgICAgIGludCBtX3JlZkNvdW50OwogICAgICAgICB1bnNpZ25lZCBtX2xvY2F0aW9uOwotICAg
ICAgICBDb2RlQmxvY2sqIG1fY29kZUJsb2NrOworICAgICAgICBCeXRlY29kZUdlbmVyYXRvciog
bV9nZW5lcmF0b3I7CiAgICAgICAgIG11dGFibGUgSnVtcFZlY3RvciBtX3VucmVzb2x2ZWRKdW1w
czsKICAgICB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
Q2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlQ2FjaGUuaAkocmV2aXNpb24gMTA4OTA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw3ICsxMzgsNiBAQCBw
dWJsaWM6CiAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZXItPnNlY29uZC5jb2RlQmxvY2s7CiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpdGVy
LT5zZWNvbmQuY29kZUJsb2NrLT5tX3Nob3VsZERpc2NhcmRCeXRlY29kZSA9IGl0ZXItPnNlY29u
ZC5vbGRWYWx1ZU9mU2hvdWxkRGlzY2FyZEJ5dGVjb2RlOwogICAgICAgICB9CiAgICAgfQogICAg
IApAQCAtMTU1LDcgKzE1NCw2IEBAIHB1YmxpYzoKICAgICAgICAgdmFsdWUuY29kZUJsb2NrID0g
a2V5LmV4ZWN1dGFibGUoKS0+Y29kZUJsb2NrV2l0aEJ5dGVjb2RlRm9yKGtleS5raW5kKCkpOwog
ICAgICAgICBpZiAodmFsdWUuY29kZUJsb2NrKSB7CiAgICAgICAgICAgICB2YWx1ZS5vd25lZCA9
IGZhbHNlOwotICAgICAgICAgICAgdmFsdWUub2xkVmFsdWVPZlNob3VsZERpc2NhcmRCeXRlY29k
ZSA9IHZhbHVlLmNvZGVCbG9jay0+bV9zaG91bGREaXNjYXJkQnl0ZWNvZGU7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAvLyBOb3BlLCBzbyB0cnkgdG8gcGFyc2Ugb25lLgogICAgICAg
ICAgICAgSlNPYmplY3QqIGV4Y2VwdGlvbjsKQEAgLTE3MSwxMyArMTY5LDYgQEAgcHVibGljOgog
ICAgICAgICAgICAgdmFsdWUuY29kZUJsb2NrID0gMDsKICAgICAgICAgfQogICAgICAgICAKLSAg
ICAgICAgLy8gSWYgd2UncmUgYWJvdXQgdG8gcmV0dXJuIGEgY29kZSBibG9jaywgbWFrZSBzdXJl
IHRoYXQgd2UncmUgbm90IGdvaW5nCi0gICAgICAgIC8vIHRvIGJlIGRpc2NhcmRpbmcgaXRzIGJ5
dGVjb2RlIGlmIGEgR0Mgd2VyZSB0byBoYXBwZW4gZHVyaW5nIERGRwotICAgICAgICAvLyBjb21w
aWxhdGlvbi4gVGhhdCdzIHVubGlrZWx5LCBidXQgaXQncyBnb29kIHRvIHRob3JvdWdobHkgZW5q
b3kgdGhpcwotICAgICAgICAvLyBraW5kIG9mIHBhcmFub2lhLgotICAgICAgICBpZiAoISF2YWx1
ZS5jb2RlQmxvY2spCi0gICAgICAgICAgICB2YWx1ZS5jb2RlQmxvY2stPm1fc2hvdWxkRGlzY2Fy
ZEJ5dGVjb2RlID0gZmFsc2U7Ci0gICAgICAgIAogICAgICAgICBtX21hcC5hZGQoa2V5LCB2YWx1
ZSk7CiAgICAgICAgIAogICAgICAgICByZXR1cm4gdmFsdWUuY29kZUJsb2NrOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRFeGNlcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCShyZXZpc2lvbiAxMDg5
MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVEV4Y2VwdGlvbnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw4ICs0OCw3IEBAIEV4Y2VwdGlvbkhhbmRsZXIgZ2VuZXJpY1Rocm93
KEpTR2xvYmFsRGEKICAgICBJbnN0cnVjdGlvbiogY2F0Y2hQQ0ZvckludGVycHJldGVyID0gMDsK
ICAgICBpZiAoaGFuZGxlcikgewogICAgICAgICBjYXRjaFJvdXRpbmUgPSBoYW5kbGVyLT5uYXRp
dmVDb2RlLmV4ZWN1dGFibGVBZGRyZXNzKCk7Ci0gICAgICAgIGlmIChjYWxsRnJhbWUtPmNvZGVC
bG9jaygpLT5oYXNJbnN0cnVjdGlvbnMoKSkKLSAgICAgICAgICAgIGNhdGNoUENGb3JJbnRlcnBy
ZXRlciA9ICZjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKVtoYW5kbGVyLT50
YXJnZXRdOworICAgICAgICBjYXRjaFBDRm9ySW50ZXJwcmV0ZXIgPSAmY2FsbEZyYW1lLT5jb2Rl
QmxvY2soKS0+aW5zdHJ1Y3Rpb25zKClbaGFuZGxlci0+dGFyZ2V0XTsKICAgICB9IGVsc2UKICAg
ICAgICAgY2F0Y2hSb3V0aW5lID0gRnVuY3Rpb25QdHIoY3RpT3BUaHJvd05vdENhdWdodCkudmFs
dWUoKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAxMDg5MTMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQko
d29ya2luZyBjb3B5KQpAQCAtNzAsMjggKzcwLDYgQEAKICMgQmVsb3cgd2UgaGF2ZSBhIGJ1bmNo
IG9mIGNvbnN0YW50IGRlY2xhcmF0aW9ucy4gRWFjaCBjb25zdGFudCBtdXN0IGhhdmUKICMgYSBj
b3JyZXNwb25kaW5nIEFTU0VSVCgpIGluIExMSW50RGF0YS5jcHAuCiAKLSMgVGhlc2UgZGVjbGFy
YXRpb25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmguCi1jb25zdCBDYWxs
RnJhbWVIZWFkZXJTaXplID0gNDgKLWNvbnN0IEFyZ3VtZW50Q291bnQgPSAtNDgKLWNvbnN0IENh
bGxlckZyYW1lID0gLTQwCi1jb25zdCBDYWxsZWUgPSAtMzIKLWNvbnN0IFNjb3BlQ2hhaW4gPSAt
MjQKLWNvbnN0IFJldHVyblBDID0gLTE2Ci1jb25zdCBDb2RlQmxvY2sgPSAtOAotCi1jb25zdCBU
aGlzQXJndW1lbnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDgKLQotIyBEZWNsYXJl
IHNvbWUgYWxpYXNlcyBmb3IgdGhlIHJlZ2lzdGVycyB3ZSB3aWxsIHVzZS4KLWNvbnN0IFBDID0g
dDQKLQotIyBPZmZzZXRzIG5lZWRlZCBmb3IgcmVhc29uaW5nIGFib3V0IHZhbHVlIHJlcHJlc2Vu
dGF0aW9uLgotaWYgQklHX0VORElBTgotICAgIGNvbnN0IFRhZ09mZnNldCA9IDAKLSAgICBjb25z
dCBQYXlsb2FkT2Zmc2V0ID0gNAotZWxzZQotICAgIGNvbnN0IFRhZ09mZnNldCA9IDQKLSAgICBj
b25zdCBQYXlsb2FkT2Zmc2V0ID0gMAotZW5kCiAKICMgVmFsdWUgcmVwcmVzZW50YXRpb24gY29u
c3RhbnRzLgogY29uc3QgSW50MzJUYWcgPSAtMQpAQCAtMTAzLDcxICs4MSw4IEBAIGNvbnN0IEVt
cHR5VmFsdWVUYWcgPSAtNgogY29uc3QgRGVsZXRlZFZhbHVlVGFnID0gLTcKIGNvbnN0IExvd2Vz
dFRhZyA9IERlbGV0ZWRWYWx1ZVRhZwogCi0jIFR5cGUgY29uc3RhbnRzLgotY29uc3QgU3RyaW5n
VHlwZSA9IDUKLWNvbnN0IE9iamVjdFR5cGUgPSAxMwotCi0jIFR5cGUgZmxhZ3MgY29uc3RhbnRz
LgotY29uc3QgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDEKLWNvbnN0IEltcGxlbWVudHNIYXNJ
bnN0YW5jZSA9IDIKLWNvbnN0IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSA4Ci0KLSMg
SGVhcCBhbGxvY2F0aW9uIGNvbnN0YW50cy4KLWNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJ
bmRleCA9IDMKLQotIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0YW50cy4KLWNvbnN0IEZpcnN0Q29u
c3RhbnRSZWdpc3RlckluZGV4ID0gMHg0MDAwMDAwMAotCi0jIENvZGUgdHlwZSBjb25zdGFudHMu
Ci1jb25zdCBHbG9iYWxDb2RlID0gMAotY29uc3QgRXZhbENvZGUgPSAxCi1jb25zdCBGdW5jdGlv
bkNvZGUgPSAyCi0KLSMgVGhlIGludGVycHJldGVyIHN0ZWFscyB0aGUgdGFnIHdvcmQgb2YgdGhl
IGFyZ3VtZW50IGNvdW50LgotY29uc3QgTExJbnRSZXR1cm5QQyA9IEFyZ3VtZW50Q291bnQgKyBU
YWdPZmZzZXQKLQotIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1ZlY3Rvci5oLgotY29uc3QgVmVjdG9y
U2l6ZU9mZnNldCA9IDAKLWNvbnN0IFZlY3RvckJ1ZmZlck9mZnNldCA9IDQKLQotIyBTdHJpbmcg
ZmxhZ3MuCi1jb25zdCBIYXNoRmxhZ3M4Qml0QnVmZmVyID0gNjQKIAogIyBVdGlsaXRpZXMKLW1h
Y3JvIGNyYXNoKCkKLSAgICBzdG9yZWkgMCwgMHhiYmFkYmVlZltdCi0gICAgbW92ZSAwLCB0MAot
ICAgIGNhbGwgdDAKLWVuZAotCi1tYWNybyBhc3NlcnQoYXNzZXJ0aW9uKQotICAgIGlmIEFTU0VS
VF9FTkFCTEVECi0gICAgICAgIGFzc2VydGlvbigub2spCi0gICAgICAgIGNyYXNoKCkKLSAgICAu
b2s6Ci0gICAgZW5kCi1lbmQKLQotbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxs
KGRlc3RpbmF0aW9uUmVnaXN0ZXIpCi0gICAgaWYgQVJNdjcKLSAgICAgICAgbW92ZSBsciwgZGVz
dGluYXRpb25SZWdpc3RlcgotICAgIGVsc2lmIFg4NgotICAgICAgICBwb3AgZGVzdGluYXRpb25S
ZWdpc3RlcgotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLWVuZAotCi1tYWNybyBy
ZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKLSAgICBpZiBB
Uk12NwotICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgotICAgIGVsc2lmIFg4NgotICAg
ICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVyCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVu
ZAotZW5kCi0KIG1hY3JvIGRpc3BhdGNoKGFkdmFuY2UpCiAgICAgYWRkcCBhZHZhbmNlICogNCwg
UEMKICAgICBqbXAgW1BDXQpAQCAtMjIwLDggKzEzNSw4IEBAIG1hY3JvIGNDYWxsNChmdW5jdGlv
biwgYXJnMSwgYXJnMiwgYXJnMywKICAgICBjYWxsIGZ1bmN0aW9uCiBlbmQKIAotbWFjcm8gY2Fs
bFNsb3dQYXRoKHNsb3dfcGF0aCkKLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKQorbWFj
cm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykK
ICAgICBtb3ZlIHQwLCBQQwogICAgIG1vdmUgdDEsIGNmcgogZW5kCkBAIC0yNDUsNDAgKzE2MCwx
NSBAQCBtYWNybyB0cmFjZVZhbHVlKGZyb21XaGVyZSwgb3BlcmFuZCkKICAgICBtb3ZlIHQxLCBj
ZnIKIGVuZAogCi1tYWNybyB0cmFjZUV4ZWN1dGlvbigpCi0gICAgaWYgRVhFQ1VUSU9OX1RSQUNJ
TkcKLSAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFjZSkKLSAgICBlbmQKLWVuZAotCi0j
IENhbGwgYSBzbG93X3BhdGggZm9yIGNhbGwgb3Bjb2Rlcy4KLW1hY3JvIGNhbGxDYWxsU2xvd1Bh
dGgoYWR2YW5jZSwgc2xvd19wYXRoLCBhY3Rpb24pCisjIENhbGwgYSBzbG93UGF0aCBmb3IgY2Fs
bCBvcGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93UGF0aCwgYWN0
aW9uKQogICAgIGFkZHAgYWR2YW5jZSAqIDQsIFBDLCB0MAogICAgIHN0b3JlcCB0MCwgQXJndW1l
bnRDb3VudCArIFRhZ09mZnNldFtjZnJdCi0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykK
KyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0
aW9uKHQwKQogZW5kCiAKLW1hY3JvIHNsb3dQYXRoRm9yQ2FsbChhZHZhbmNlLCBzbG93X3BhdGgp
Ci0gICAgY2FsbENhbGxTbG93UGF0aCgKLSAgICAgICAgYWR2YW5jZSwKLSAgICAgICAgc2xvd19w
YXRoLAotICAgICAgICBtYWNybyAoY2FsbGVlKQotICAgICAgICAgICAgY2FsbCBjYWxsZWUKLSAg
ICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLSAgICAgICAgZW5kKQotZW5kCi0KLW1hY3Jv
IGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24pCi0gICAgaWYgSklUX0VOQUJMRUQK
LSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgICAgIGJhZGRpcyBpbmNyZW1l
bnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyW3QwXSwgLmNvbnRpbnVlCi0gICAg
ICAgIGFjdGlvbigpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotZW5kCi0KIG1hY3JvIGNoZWNr
U3dpdGNoVG9KSVRGb3JMb29wKCkKICAgICBjaGVja1N3aXRjaFRvSklUKAogICAgICAgICAxLApA
QCAtMjkzLDE4ICsxODMsNiBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAg
ICAgIGVuZCkKIGVuZAogCi1tYWNybyBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQotICAg
IGNoZWNrU3dpdGNoVG9KSVQoCi0gICAgICAgIDEwLAotICAgICAgICBtYWNybyAoKQotICAgICAg
ICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQotICAgICAgICBlbmQpCi1lbmQKLQot
bWFjcm8gYXNzZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCi0gICAgYXNzZXJ0KG1hY3JvIChvaykgYmls
dCBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIG9rIGVuZCkKLWVuZAotCiAjIElu
ZGV4LCB0YWcsIGFuZCBwYXlsb2FkIG11c3QgYmUgZGlmZmVyZW50IHJlZ2lzdGVycy4gSW5kZXgg
aXMgbm90CiAjIGNoYW5nZWQuCiBtYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB0
YWcsIHBheWxvYWQpCkBAIC0zODYsMTEwICsyNjQsOCBAQCBtYWNybyB2YWx1ZVByb2ZpbGUodGFn
LCBwYXlsb2FkLCBwcm9maWxlCiBlbmQKIAogCi0jIEluZGljYXRlIHRoZSBiZWdpbm5pbmcgb2Yg
TExJbnQuCi1fbGxpbnRfYmVnaW46Ci0gICAgY3Jhc2goKQotCi0KICMgRW50cnlwb2ludHMgaW50
byB0aGUgaW50ZXJwcmV0ZXIKIAotbWFjcm8gZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVy
KHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3Rlcgot
ICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdl
dFJlZ2lzdGVyCi0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNh
bGxbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgotZW5kCi0KLW1hY3JvIGZ1bmN0aW9u
Rm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENh
bGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0
YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgRnVuY3Rpb25F
eGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdl
dFJlZ2lzdGVyCi1lbmQKLQotbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIodGFyZ2V0
UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQK
LQotbWFjcm8gZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0gICAgc3Rv
cmVwIHNvdXJjZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQotZW5kCi0KLW1hY3JvIG5vdEZ1bmN0
aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQotICAgICMgTm90aGluZyB0byBkbyEK
LWVuZAotCi0jIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2RlLiBT
ZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKLSMgaW4gdDEuIE1heSBhbHNvIHRy
aWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgotbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVy
LCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQotICAgIHByZXNl
cnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAKLSAgICAjIFNldCB1cCB0aGUgY2Fs
bCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KLSAgICBzdG9yZXAgdDIsIFJldHVy
blBDW2Nmcl0KLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAgICAgICBjYWxsU2xvd1BhdGgo
dHJhY2VTbG93UGF0aCkKLSAgICBlbmQKLSAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCi0gICAgaWYg
SklUX0VOQUJMRUQKLSAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVD
b3VudGVyW3QxXSwgLmNvbnRpbnVlCi0gICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQ
QykKLSAgICAgICAgbW92ZSB0MSwgY2ZyCi0gICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCi0gICAg
ICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNz
QmVmb3JlUmV0dXJuKHQyKQotICAgICAgICBqbXAgdDAKLSAgICAucmVjb3ZlcjoKLSAgICAgICAg
Y29kZUJsb2NrR2V0dGVyKHQxKQotICAgIC5jb250aW51ZToKLSAgICBlbmQKLSAgICBjb2RlQmxv
Y2tTZXR0ZXIodDEpCi0gICAgCi0gICAgIyBTZXQgdXAgdGhlIFBDLgotICAgIGxvYWRwIENvZGVC
bG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCB0MAotICAgIGxvYWRwIENvZGVCbG9jazo6SW5zdHJ1
Y3Rpb25zOjptX2luc3RydWN0aW9ucyArIFZlY3RvckJ1ZmZlck9mZnNldFt0MF0sIFBDCi1lbmQK
LQotIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xv
Z3VlKCkgbGVhdmVzIGJlaGluZC4KLSMgTXVzdCBjYWxsIGRpc3BhdGNoKDApIGFmdGVyIGNhbGxp
bmcgdGhpcy4KLW1hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24ocHJvZmlsZUFyZ1NraXApCi0g
ICAgaWYgVkFMVUVfUFJPRklMRVIKLSAgICAgICAgIyBQcm9maWxlIHRoZSBhcmd1bWVudHMuIFVu
Zm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0byBkbyB0aGlzLiBUaGlzCi0gICAg
ICAgICMgY29kZSBpcyBwcmV0dHkgaG9ycmVuZG91cyBiZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNl
IGluIG9yZGVyaW5nIGJldHdlZW4KLSAgICAgICAgIyBhcmd1bWVudHMgYW5kIHZhbHVlIHByb2Zp
bGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBzaW1wbGUgbG9vcC1kb3duLXRvLXplcm8KLSAgICAg
ICAgIyBsb29wLCBhbmQgdGhlIGRlc2lyZSB0byB1c2Ugb25seSB0aHJlZSByZWdpc3RlcnMgc28g
YXMgdG8gcHJlc2VydmUgdGhlIFBDIGFuZAotICAgICAgICAjIHRoZSBjb2RlIGJsb2NrLiBJdCBp
cyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJld3JpdHRlbiBpbiBhIG1vcmUKLSAg
ICAgICAgIyBvcHRpbWFsIHdheSBmb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IGhhdmUgbW9yZSB0aGFu
IGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJsZQotICAgICAgICAjIGZvciBhcmJpdHJhcnkgdXNlIGlu
IHRoZSBpbnRlcnByZXRlci4KLSAgICAgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVBhcmFtZXRl
cnNbdDFdLCB0MAotICAgICAgICBhZGRpIC1wcm9maWxlQXJnU2tpcCwgdDAgIyBVc2UgYWRkaSBi
ZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0aGUgcGVlcGhvbGUKLSAgICAgICAgYXNzZXJ0KG1hY3Jv
IChvaykgYmlndGVxIHQwLCAwLCBvayBlbmQpCi0gICAgICAgIGJ0aXogdDAsIC5hcmd1bWVudFBy
b2ZpbGVEb25lCi0gICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9hcmd1bWVudFZhbHVlUHJvZmls
ZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDFdLCB0MwotICAgICAgICBtdWxpIHNpemVvZiBWYWx1
ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFhaGhoaCEgTmVlZCBzdHJlbmd0aCByZWR1Y3Rpb24hCi0g
ICAgICAgIG5lZ2kgdDAKLSAgICAgICAgbHNoaWZ0aSAzLCB0MAotICAgICAgICBhZGRwIHQyLCB0
MwotICAgIC5hcmd1bWVudFByb2ZpbGVMb29wOgotICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRP
ZmZzZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0Mgot
ICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQzCi0gICAgICAgIHN0b3JlaSB0Miwg
cHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1
Y2tldHMgKyBUYWdPZmZzZXRbdDNdCi0gICAgICAgIGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCAr
IFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgotICAg
ICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZh
bHVlUHJvZmlsZTo6bV9idWNrZXRzICsgUGF5bG9hZE9mZnNldFt0M10KLSAgICAgICAgYmFkZGlu
eiA4LCB0MCwgLmFyZ3VtZW50UHJvZmlsZUxvb3AKLSAgICAuYXJndW1lbnRQcm9maWxlRG9uZToK
LSAgICBlbmQKLSAgICAgICAgCi0gICAgIyBDaGVjayBzdGFjayBoZWlnaHQuCi0gICAgbG9hZGkg
Q29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0sIHQwCi0gICAgbG9hZHAgQ29kZUJs
b2NrOjptX2dsb2JhbERhdGFbdDFdLCB0MgotICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6aW50ZXJw
cmV0ZXJbdDJdLCB0MiAgICMgRklYTUU6IENhbiBnZXQgdG8gdGhlIFJlZ2lzdGVyRmlsZSBmcm9t
IHRoZSBKSVRTdGFja0ZyYW1lCi0gICAgbHNoaWZ0aSAzLCB0MAotICAgIGFkZHAgdDAsIGNmciwg
dDAKLSAgICBicGFlcSBJbnRlcnByZXRlcjo6bV9yZWdpc3RlckZpbGUgKyBSZWdpc3RlckZpbGU6
Om1fZW5kW3QyXSwgdDAsIC5zdGFja0hlaWdodE9LCi0KLSAgICAjIFN0YWNrIGhlaWdodCBjaGVj
ayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBzbG93X3BhdGguCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9yZWdpc3Rlcl9maWxlX2NoZWNrKQotLnN0YWNrSGVpZ2h0T0s6Ci1lbmQKLQogIyBFeHBl
Y3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVh
dmVzIGJlaGluZC4KIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0
aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MApAQCAt
NTAzLDQzICsyNzksMTAgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xv
dwogLmNvbnRpbnVlOgogICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgUEMsIHNpbmNlIHRoZSBz
bG93X3BhdGggY2xvYmJlcmVkIGl0LgogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQotICAg
IGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCB0MAotICAgIGxvYWRwIENvZGVC
bG9jazo6SW5zdHJ1Y3Rpb25zOjptX2luc3RydWN0aW9ucyArIFZlY3RvckJ1ZmZlck9mZnNldFt0
MF0sIFBDCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBDCiAgICAg
am1wIGRvbmVMYWJlbAogZW5kCiAKLV9sbGludF9wcm9ncmFtX3Byb2xvZ3VlOgotICAgIHByb2xv
Z3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRl
ciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNo
KDApCi0KLQotX2xsaW50X2V2YWxfcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25D
b2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlf
b3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCi0gICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRf
ZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxs
Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29z
cl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9j
YWxsKQotLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luOgotICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24o
MCkKLSAgICBkaXNwYXRjaCgwKQotICAgIAotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVj
dF9wcm9sb2d1ZToKLSAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dl
dHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25f
Zm9yX2NvbnN0cnVjdCwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1
Y3QpCi0uZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0
aW9uKDEpCi0gICAgZGlzcGF0Y2goMCkKLSAgICAKLQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxs
X2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRl
ciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9y
X2NhbGxfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NhbGwpCi0gICAg
ZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNhbGxCZWdpbiwgX2xsaW50X3Nsb3dfcGF0
aF9jYWxsX2FyaXR5Q2hlY2spCi0KLQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJp
dHlfY2hlY2s6Ci0gICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0
ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zv
cl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NvbnN0
cnVjdCkKLSAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW4s
IF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0X2FyaXR5Q2hlY2spCiAKICMgSW5zdHJ1Y3Rpb24g
aW1wbGVtZW50YXRpb25zCiAKQEAgLTIzMTksNzIgKzIwNjIsMyBAQCBfbGxpbnRfdGhyb3dfZHVy
aW5nX2NhbGxfdHJhbXBvbGluZToKICAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZv
clRocm93W3QxXSwgdDAKICAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JU
aHJvd1t0MV0KIAotCi0jIExhc3RseSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0
aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KLSMgVGhlc2Ugb3Bjb2RlcyBzaG91
bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQK
LSMgYXMgbXVjaC4KLQotbWFjcm8gbm90U3VwcG9ydGVkKCkKLSAgICBpZiBBU1NFUlRfRU5BQkxF
RAotICAgICAgICBjcmFzaCgpCi0gICAgZWxzZQotICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hh
dGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCi0gICAg
ICAgICMgZW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJl
bHMuIElmIG11bHRpcGxlCi0gICAgICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3
ZSBzaG91bGQgcGljayB0aGUgb25lIHRoYXQgaXMgbW9zdAotICAgICAgICAjIGxpa2VseSByZXN1
bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFr
Ci0gICAgICAgICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJl
c3RlZCBpbi4gKEJyZWFrIGlzIGludDMKLSAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBi
eXRlLCBhbmQgYmtwdCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRlcy4pCi0gICAgICAgIGJyZWFr
Ci0gICAgZW5kCi1lbmQKLQotX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6Ci0gICAgbm90U3Vw
cG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgp
Ci0KLV9sbGludF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1f
bGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1f
bGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1f
bGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9s
bGludF9vcF9nZXRfYnlfaWRfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29w
X2dldF9ieV9pZF9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfc3Ry
aW5nX2xlbmd0aDoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX2dl
bmVyaWM6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNl
OgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoK
LSAgICBub3RTdXBwb3J0ZWQoKQotCi0KLSMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KLV9s
bGludF9lbmQ6Ci0gICAgY3Jhc2goKQotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMTA4OTEz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20JKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDE1MSBAQAogIyBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorIyBUaGlzIG9ubHkgd29ya3Mgb24g
WDg2XzY0LgoraWYgbm90IFg4Nl82NAorICAgIGVycm9yCitlbmQKIAotIyBOb3Qgc3VwcG9ydGVk
IHlldCwgc28gZ2l2ZSB1cC4KLWVycm9yCisKKyMgVXRpbGl0aWVzLgorbWFjcm8gZGlzcGF0Y2go
YWR2YW5jZSkKKyAgICBhZGRpIGFkdmFuY2UsIFBDCisgICAgam1wIFtQQiwgUEMsIDhdCitlbmQK
KworbWFjcm8gZGlzcGF0Y2hCcmFuY2gocGNPZmZzZXQpCisgICAgbG9hZGkgcGNPZmZzZXQsIHQw
CisgICAgZGlzcGF0Y2godDApCitlbmQKKworbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQorICAg
IGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKKyAgICBsb2FkcCBDb2Rl
QmxvY2tbY2ZyXSwgUEIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwg
UEIKKyAgICBqbXAgW1BCLCBQQywgOF0KK2VuZAorCittYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFy
ZzEsIGFyZzIpCisgICAgbW92ZSBhcmcxLCB0MAorICAgIG1vdmUgYXJnMiwgdDEKKyAgICBjYWxs
IGZ1bmN0aW9uCitlbmQKKworIyBUaGlzIGJhcmVseSB3b3Jrcy4gYXJnMyBhbmQgYXJnNCBzaG91
bGQgcHJvYmFibHkgYmUgaW1tZWRpYXRlcy4KK21hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwg
YXJnMiwgYXJnMywgYXJnNCkKKyAgICBtb3ZlIGFyZzEsIHQwCisgICAgbW92ZSBhcmcyLCB0MQor
ICAgIG1vdmUgYXJnMywgdDIKKyAgICBtb3ZlIGFyZzQsIHQzCisgICAgY2FsbCBmdW5jdGlvbgor
ZW5kCisKK21hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBsZWFwIFtQQiwgUEMsIDhd
LCBQQworZW5kCisKK21hY3JvIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIG1vdmUgdDAs
IFBDCisgICAgbW92ZSB0MSwgY2ZyCisgICAgc3VicCBQQiwgUEMKKyAgICB1cnNoaWZ0aSAzLCBQ
QworZW5kCisKK21hY3JvIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBwcmVwYXJlU3RhdGVG
b3JDQ2FsbCgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIHJlc3RvcmVTdGF0
ZUFmdGVyQ0NhbGwoKQorZW5kCisKK21hY3JvIHRyYWNlT3BlcmFuZChmcm9tV2hlcmUsIG9wZXJh
bmQpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vf
b3BlcmFuZCwgY2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHJlc3RvcmVTdGF0ZUFm
dGVyQ0NhbGwoKQorZW5kCisKK21hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQor
ICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDQoX2xsaW50X3RyYWNlX3ZhbHVl
LCBjZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2Fs
bCgpCitlbmQKKworIyBDYWxsIGEgc2xvdyBwYXRoIGZvciBjYWxsIGNhbGwgb3Bjb2Rlcy4KK21h
Y3JvIGNhbGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd1BhdGgsIGFjdGlvbikKKyAgICBhZGRp
IGFkdmFuY2UsIFBDLCB0MAorICAgIHN0b3JlaSB0MCwgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsMihzbG93UGF0aCwg
Y2ZyLCBQQykKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBhY3Rpb24odDApCitlbmQKKworbWFjcm8g
Y2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQorICAgIGNoZWNrU3dpdGNoVG9KSVQoCisgICAgICAg
IDEsCisgICAgICAgIG1hY3JvKCkKKyAgICAgICAgICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3Vu
dCArIFRhZ09mZnNldFtjZnJdCisgICAgICAgICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisg
ICAgICAgICAgICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIsIFBDKQorICAgICAgICAgICAg
bW92ZSB0MSwgY2ZyCisgICAgICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgorICAgICAgICAgICAg
am1wIHQwCisgICAgICAgIC5yZWNvdmVyOgorICAgICAgICAgICAgbG9hZHAgQXJndW1lbnRDb3Vu
dCArIFRhZ09mZnNldFtjZnJdLCBQQworICAgICAgICBlbmQpCitlbmQKKworIyBJbmRleCBhbmQg
dmFsdWUgbXVzdCBiZSBkaWZmZXJlbnQgcmVnaXN0ZXJzLiBJbmRleCBtYXkgYmUgY2xvYmJlcmVk
LgorbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUpCisgICAgYnBndGVx
IGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgLmNvbnN0YW50CisgICAgbG9hZHAg
W2NmciwgaW5kZXgsIDhdLCB2YWx1ZQorICAgIGptcCAuZG9uZQorLmNvbnN0YW50OgorICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB2YWx1ZQorICAgIGxvYWRwIENvZGVCbG9jazo6bV9jb25zdGFu
dFJlZ2lzdGVycyArIFZlY3RvckJ1ZmZlck9mZnNldFt2YWx1ZV0sIHZhbHVlCisgICAgc3VicCBG
aXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgaW5kZXgKKyAgICBsb2FkcCBbdmFsdWUsIGluZGV4
LCA4XSwgdmFsdWUKKy5kb25lOgorZW5kCisKK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGVJ
bnQzMihpbmRleCwgdmFsdWUsIHNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRl
eCwgdmFsdWUpCisgICAgYnBiIHZhbHVlLCB0YWdUeXBlTnVtYmVyLCBzbG93CitlbmQKKworbWFj
cm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoaW5kZXgsIHZhbHVlLCBzbG93KQorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoaW5kZXgsIHZhbHVlKQorICAgIGJ0cG56IHZhbHVlLCB0YWdN
YXNrLCBzbG93CitlbmQKKworbWFjcm8gd3JpdGVCYXJyaWVyKHZhbHVlKQorICAgICMgTm90aGlu
ZyB0byBkbywgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhIGdlbmVyYXRpb25hbCBvciBpbmNyZW1lbnRh
bCBjb2xsZWN0b3IuCitlbmQKKworbWFjcm8gdmFsdWVQcm9maWxlKHZhbHVlLCBwcm9maWxlKQor
ICAgIGlmIFZBTFVFX1BST0ZJTEVSCisgICAgICAgIHN0b3JlcCB2YWx1ZSwgVmFsdWVQcm9maWxl
OjpidWNrZXRzW3Byb2ZpbGVdCisgICAgZW5kCitlbmQKKworCisjIEVudHJ5cG9pbnRzIGludG8g
dGhlIGludGVycHJldGVyLgorCisjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdo
aWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgorbWFjcm8gZnVuY3Rpb25Bcml0
eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBB
cmd1bWVudENvdW50W2Nmcl0sIHQwCisgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJh
bWV0ZXJzW3QxXSwgZG9uZUxhYmVsCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGND
YWxsMihzbG93X3BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMgYSBzaW1wbGUg
cHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgorICAgIG1vdmUg
dDEsIGNmcgorICAgIGJ0aXogdDAsIC5jb250aW51ZQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6
Omdsb2JhbERhdGFbc3BdLCB0MQorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6Y2FsbEZyYW1lRm9y
VGhyb3dbdDFdLCB0MAorICAgIGptcCBKU0dsb2JhbERhdGE6OnRhcmdldE1hY2hpbmVQQ0ZvclRo
cm93W3QxXQorLmNvbnRpbnVlOgorICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgcmVzZXQgUEMs
IHNpbmNlIHRoZSBzbG93X3BhdGggY2xvYmJlcmVkIHRoZW0uCisgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHQxCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBCCisg
ICAgbW92ZSAwLCBQQworICAgIGptcCBkb25lTGFiZWwKK2VuZAogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZp
c2lvbiAxMDg5MTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIxLDkgKzIxLDM3OCBAQAogIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorIyBGaXJzdCBjb21l
IHRoZSBjb21tb24gcHJvdG9jb2xzIHRoYXQgYm90aCBpbnRlcnByZXRlcnMgdXNlLiBOb3RlIHRo
YXQgZWFjaAorIyBvZiB0aGVzZSBtdXN0IGhhdmUgYW4gQVNTRVJUKCkgaW4gTExJbnREYXRhLmNw
cAorCisjIFRoZXNlIGRlY2xhcmF0aW9ucyBtdXN0IG1hdGNoIGludGVycHJldGVyL1JlZ2lzdGVy
RmlsZS5oLgorY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDQ4Citjb25zdCBBcmd1bWVudENv
dW50ID0gLTQ4Citjb25zdCBDYWxsZXJGcmFtZSA9IC00MAorY29uc3QgQ2FsbGVlID0gLTMyCitj
b25zdCBTY29wZUNoYWluID0gLTI0Citjb25zdCBSZXR1cm5QQyA9IC0xNgorY29uc3QgQ29kZUJs
b2NrID0gLTgKKworY29uc3QgVGhpc0FyZ3VtZW50T2Zmc2V0ID0gLUNhbGxGcmFtZUhlYWRlclNp
emUgLSA4CisKKyMgU29tZSByZWdpc3RlciBjb252ZW50aW9ucy4KK2lmIEpTVkFMVUU2NAorICAg
ICMgLSBVc2UgYSBwYWlyIG9mIHJlZ2lzdGVycyB0byByZXByZXNlbnQgdGhlIFBDOiBvbmUgcmVn
aXN0ZXIgZm9yIHRoZQorICAgICMgICBiYXNlIG9mIHRoZSByZWdpc3RlciBmaWxlLCBhbmQgb25l
IHJlZ2lzdGVyIGZvciB0aGUgaW5kZXguCisgICAgIyAtIFRoZSBQQyBiYXNlIChvciBQQiBmb3Ig
c2hvcnQpIHNob3VsZCBiZSBzdG9yZWQgaW4gdGhlIGNzci4gSXQgd2lsbAorICAgICMgICBnZXQg
Y2xvYmJlcmVkIG9uIGNhbGxzIHRvIG90aGVyIEpTIGNvZGUsIGJ1dCB3aWxsIGdldCBzYXZlZCBv
biBjYWxscworICAgICMgICB0byBDIGZ1bmN0aW9ucy4KKyAgICAjIC0gQyBjYWxscyBhcmUgc3Rp
bGwgZ2l2ZW4gdGhlIEluc3RydWN0aW9uKiByYXRoZXIgdGhhbiB0aGUgUEMgaW5kZXguCisgICAg
IyAgIFRoaXMgcmVxdWlyZXMgYW4gYWRkIGJlZm9yZSB0aGUgY2FsbCwgYW5kIGEgc3ViIGFmdGVy
LgorICAgIGNvbnN0IFBDID0gdDQKKyAgICBjb25zdCBQQiA9IGNzcjAKKyAgICBjb25zdCB0YWdU
eXBlTnVtYmVyID0gY3NyMQorICAgIGNvbnN0IHRhZ01hc2sgPSBjc3IyCitlbHNlCisgICAgY29u
c3QgUEMgPSB0NAorZW5kCisKKyMgQ29uc3RhbnRzIGZvciByZWFzb25pbmcgYWJvdXQgdmFsdWUg
cmVwcmVzZW50YXRpb24uCitpZiBCSUdfRU5ESUFOCisgICAgY29uc3QgVGFnT2Zmc2V0ID0gMAor
ICAgIGNvbnN0IFBheWxvYWRPZmZzZXQgPSA0CitlbHNlCisgICAgY29uc3QgVGFnT2Zmc2V0ID0g
NAorICAgIGNvbnN0IFBheWxvYWRPZmZzZXQgPSAwCitlbmQKKworIyBUeXBlIGNvbnN0YW50cy4K
K2NvbnN0IFN0cmluZ1R5cGUgPSA1Citjb25zdCBPYmplY3RUeXBlID0gMTMKKworIyBUeXBlIGZs
YWdzIGNvbnN0YW50cy4KK2NvbnN0IE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSAxCitjb25zdCBJ
bXBsZW1lbnRzSGFzSW5zdGFuY2UgPSAyCitjb25zdCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3Rh
bmNlID0gOAorCisjIEJ5dGVjb2RlIG9wZXJhbmQgY29uc3RhbnRzLgorY29uc3QgRmlyc3RDb25z
dGFudFJlZ2lzdGVySW5kZXggPSAweDQwMDAwMDAwCisKKyMgQ29kZSB0eXBlIGNvbnN0YW50cy4K
K2NvbnN0IEdsb2JhbENvZGUgPSAwCitjb25zdCBFdmFsQ29kZSA9IDEKK2NvbnN0IEZ1bmN0aW9u
Q29kZSA9IDIKKworIyBUaGUgaW50ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUg
YXJndW1lbnQgY291bnQuCitjb25zdCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRh
Z09mZnNldAorCisjIFN0cmluZyBmbGFncy4KK2NvbnN0IEhhc2hGbGFnczhCaXRCdWZmZXIgPSA2
NAorCisjIEFsbG9jYXRpb24gY29uc3RhbnRzCitpZiBKU1ZBTFVFNjQKKyAgICBjb25zdCBKU0Zp
bmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAxCitlbHNlCisgICAgY29uc3QgSlNGaW5hbE9iamVj
dFNpemVDbGFzc0luZGV4ID0gMworZW5kCisKKyMgVGhpcyBtdXN0IG1hdGNoIHd0Zi9WZWN0b3Iu
aAoraWYgSlNWQUxVRTY0CisgICAgY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKKyAgICBjb25z
dCBWZWN0b3JCdWZmZXJPZmZzZXQgPSA4CitlbHNlCisgICAgY29uc3QgVmVjdG9yU2l6ZU9mZnNl
dCA9IDAKKyAgICBjb25zdCBWZWN0b3JCdWZmZXJPZmZzZXQgPSA0CitlbmQKKworCisjIFNvbWUg
Y29tbW9uIHV0aWxpdGllcy4KK21hY3JvIGNyYXNoKCkKKyAgICBzdG9yZWkgMCwgMHhiYmFkYmVl
ZltdCisgICAgbW92ZSAwLCB0MAorICAgIGNhbGwgdDAKK2VuZAorCittYWNybyBhc3NlcnQoYXNz
ZXJ0aW9uKQorICAgIGlmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGFzc2VydGlvbigub2spCisg
ICAgICAgIGNyYXNoKCkKKyAgICAub2s6CisgICAgZW5kCitlbmQKKworbWFjcm8gcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCisgICAgaWYgQVJNdjcK
KyAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgorICAgIGVsc2lmIFg4NiBvciBY
ODZfNjQKKyAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0ZXIKKyAgICBlbHNlCisgICAgICAg
IGVycm9yCisgICAgZW5kCitlbmQKKworbWFjcm8gcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4oc291cmNlUmVnaXN0ZXIpCisgICAgaWYgQVJNdjcKKyAgICAgICAgbW92ZSBzb3VyY2VS
ZWdpc3RlciwgbHIKKyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHB1c2ggc291cmNl
UmVnaXN0ZXIKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCitlbmQKKworbWFjcm8g
dHJhY2VFeGVjdXRpb24oKQorICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAgICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfdHJhY2UpCisgICAgZW5kCitlbmQKKworbWFjcm8gc2xvd1BhdGhGb3JD
YWxsKGFkdmFuY2UsIHNsb3dQYXRoKQorICAgIGNhbGxDYWxsU2xvd1BhdGgoCisgICAgICAgIGFk
dmFuY2UsCisgICAgICAgIHNsb3dQYXRoLAorICAgICAgICBtYWNybyAoY2FsbGVlKQorICAgICAg
ICAgICAgY2FsbCBjYWxsZWUKKyAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKKyAgICAg
ICAgZW5kKQorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24p
CisgICAgaWYgSklUX0VOQUJMRUQKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisg
ICAgICAgIGJhZGRpcyBpbmNyZW1lbnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVy
W3QwXSwgLmNvbnRpbnVlCisgICAgICAgIGFjdGlvbigpCisgICAgLmNvbnRpbnVlOgorICAgIGVu
ZAorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCisgICAgY2hlY2tT
d2l0Y2hUb0pJVCgKKyAgICAgICAgMTAsCisgICAgICAgIG1hY3JvICgpCisgICAgICAgICAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3JlcGxhY2UpCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyBh
c3NlcnROb3RDb25zdGFudChpbmRleCkKKyAgICBhc3NlcnQobWFjcm8gKG9rKSBiaWx0IGluZGV4
LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgb2sgZW5kKQorZW5kCisKK21hY3JvIGZ1bmN0
aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKKyAgICBsb2FkcCBDYWxs
ZWVbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFi
bGVbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEZ1bmN0aW9uRXhl
Y3V0YWJsZTo6bV9jb2RlQmxvY2tGb3JDYWxsW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0
ZXIKK2VuZAorCittYWNybyBmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlcih0YXJn
ZXRSZWdpc3RlcikKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBs
b2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdp
c3RlcgorICAgIGxvYWRwIEZ1bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2RlQmxvY2tGb3JDb25zdHJ1
Y3RbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3JvIG5vdEZ1bmN0
aW9uQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENvZGVCbG9ja1tj
ZnJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3JvIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVy
KHNvdXJjZVJlZ2lzdGVyKQorICAgIHN0b3JlcCBzb3VyY2VSZWdpc3RlciwgQ29kZUJsb2NrW2Nm
cl0KK2VuZAorCittYWNybyBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdpc3Rl
cikKKyAgICAjIE5vdGhpbmcgdG8gZG8hCitlbmQKKworIyBEbyB0aGUgYmFyZSBtaW5pbXVtIHJl
cXVpcmVkIHRvIGV4ZWN1dGUgY29kZS4gU2V0cyB1cCB0aGUgUEMsIGxlYXZlIHRoZSBDb2RlQmxv
Y2sqCisjIGluIHQxLiBNYXkgYWxzbyB0cmlnZ2VyIHByb2xvZ3VlIGVudHJ5IE9TUi4KK21hY3Jv
IHByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0aCwg
dHJhY2VTbG93UGF0aCkKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDIpCisg
ICAgCisgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNob3VsZCBP
U1IuCisgICAgc3RvcmVwIHQyLCBSZXR1cm5QQ1tjZnJdCisgICAgaWYgRVhFQ1VUSU9OX1RSQUNJ
TkcKKyAgICAgICAgY2FsbFNsb3dQYXRoKHRyYWNlU2xvd1BhdGgpCisgICAgZW5kCisgICAgY29k
ZUJsb2NrR2V0dGVyKHQxKQorICAgIGlmIEpJVF9FTkFCTEVECisgICAgICAgIGJhZGRpcyA1LCBD
b2RlQmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRlclt0MV0sIC5jb250aW51ZQorICAgICAgICBj
Q2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCisgICAgICAgIG1vdmUgdDEsIGNmcgorICAgICAg
ICBidHB6IHQwLCAucmVjb3ZlcgorICAgICAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgorICAg
ICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAgICAgICAgam1wIHQw
CisgICAgLnJlY292ZXI6CisgICAgICAgIGNvZGVCbG9ja0dldHRlcih0MSkKKyAgICAuY29udGlu
dWU6CisgICAgZW5kCisgICAgY29kZUJsb2NrU2V0dGVyKHQxKQorICAgIAorICAgICMgU2V0IHVw
IHRoZSBQQy4KKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2lu
c3RydWN0aW9uc1t0MV0sIFBCCisgICAgICAgIG1vdmUgMCwgUEMKKyAgICBlbHNlCisgICAgICAg
IGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQworICAgIGVuZAorZW5kCisK
KyMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1
ZSgpIGxlYXZlcyBiZWhpbmQuCisjIE11c3QgY2FsbCBkaXNwYXRjaCgwKSBhZnRlciBjYWxsaW5n
IHRoaXMuCittYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTa2lwKQorICAg
IGlmIFZBTFVFX1BST0ZJTEVSCisgICAgICAgICMgUHJvZmlsZSB0aGUgYXJndW1lbnRzLiBVbmZv
cnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIGNob2ljZSBidXQgdG8gZG8gdGhpcy4gVGhpcworICAgICAg
ICAjIGNvZGUgaXMgcHJldHR5IGhvcnJlbmRvdXMgYmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBp
biBvcmRlcmluZyBiZXR3ZWVuCisgICAgICAgICMgYXJndW1lbnRzIGFuZCB2YWx1ZSBwcm9maWxl
cywgdGhlIGRlc2lyZSB0byBoYXZlIGEgc2ltcGxlIGxvb3AtZG93bi10by16ZXJvCisgICAgICAg
ICMgbG9vcCwgYW5kIHRoZSBkZXNpcmUgdG8gdXNlIG9ubHkgdGhyZWUgcmVnaXN0ZXJzIHNvIGFz
IHRvIHByZXNlcnZlIHRoZSBQQyBhbmQKKyAgICAgICAgIyB0aGUgY29kZSBibG9jay4gSXQgaXMg
bGlrZWx5IHRoYXQgdGhpcyBjb2RlIHNob3VsZCBiZSByZXdyaXR0ZW4gaW4gYSBtb3JlCisgICAg
ICAgICMgb3B0aW1hbCB3YXkgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBoYXZlIG1vcmUgdGhhbiBm
aXZlIHJlZ2lzdGVycyBhdmFpbGFibGUKKyAgICAgICAgIyBmb3IgYXJiaXRyYXJ5IHVzZSBpbiB0
aGUgaW50ZXJwcmV0ZXIuCisgICAgICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJz
W3QxXSwgdDAKKyAgICAgICAgYWRkaSAtcHJvZmlsZUFyZ1NraXAsIHQwICMgVXNlIGFkZGkgYmVj
YXVzZSB0aGF0J3Mgd2hhdCBoYXMgdGhlIHBlZXBob2xlCisgICAgICAgIGFzc2VydChtYWNybyAo
b2spIGJpZ3RlcSB0MCwgMCwgb2sgZW5kKQorICAgICAgICBidGl6IHQwLCAuYXJndW1lbnRQcm9m
aWxlRG9uZQorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fYXJndW1lbnRWYWx1ZVByb2ZpbGVz
ICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QxXSwgdDMKKyAgICAgICAgbXVsaSBzaXplb2YgVmFsdWVQ
cm9maWxlLCB0MCwgdDIgIyBBYWFhYWhoaGghIE5lZWQgc3RyZW5ndGggcmVkdWN0aW9uIQorICAg
ICAgICBuZWdpIHQwCisgICAgICAgIGxzaGlmdGkgMywgdDAKKyAgICAgICAgYWRkcCB0MiwgdDMK
KyAgICAuYXJndW1lbnRQcm9maWxlTG9vcDoKKyAgICAgICAgaWYgSlNWQUxVRTY0CisgICAgICAg
ICAgICBsb2FkcCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2Nm
ciwgdDBdLCB0MgorICAgICAgICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MworICAg
ICAgICAgICAgc3RvcmVwIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUg
KyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0c1t0M10KKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
bG9hZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgVGFnT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lw
ICogOFtjZnIsIHQwXSwgdDIKKyAgICAgICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwg
dDMKKyAgICAgICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQ
cm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBUYWdPZmZzZXRbdDNdCisgICAgICAg
ICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBQYXlsb2FkT2Zmc2V0ICsgOCAtIHByb2Zp
bGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKKyAgICAgICAgICAgIHN0b3JlaSB0MiwgcHJvZmls
ZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMg
KyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgICAgICBlbmQKKyAgICAgICAgYmFkZGlueiA4LCB0MCwg
LmFyZ3VtZW50UHJvZmlsZUxvb3AKKyAgICAuYXJndW1lbnRQcm9maWxlRG9uZToKKyAgICBlbmQK
KyAgICAgICAgCisgICAgIyBDaGVjayBzdGFjayBoZWlnaHQuCisgICAgbG9hZGkgQ29kZUJsb2Nr
OjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2ds
b2JhbERhdGFbdDFdLCB0MgorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJd
LCB0MiAgICMgRklYTUU6IENhbiBnZXQgdG8gdGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRT
dGFja0ZyYW1lCisgICAgbHNoaWZ0aSAzLCB0MAorICAgIGFkZHAgdDAsIGNmciwgdDAKKyAgICBi
cGFlcSBJbnRlcnByZXRlcjo6bV9yZWdpc3RlckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3Qy
XSwgdDAsIC5zdGFja0hlaWdodE9LCisKKyAgICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQg
LSBuZWVkIHRvIGNhbGwgYSBzbG93X3BhdGguCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdp
c3Rlcl9maWxlX2NoZWNrKQorLnN0YWNrSGVpZ2h0T0s6CitlbmQKKworCisjIEluZGljYXRlIHRo
ZSBiZWdpbm5pbmcgb2YgTExJbnQuCitfbGxpbnRfYmVnaW46CisgICAgY3Jhc2goKQorCisKK19s
bGludF9wcm9ncmFtX3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2Nr
R2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xs
aW50X3RyYWNlX3Byb2xvZ3VlKQorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X2V2YWxfcHJv
bG9ndWU6CisgICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0
aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9n
dWUpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9n
dWU6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlv
bkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xs
aW50X3RyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQorLmZ1bmN0aW9uRm9yQ2FsbEJl
Z2luOgorICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMCkKKyAgICBkaXNwYXRjaCgwKQorICAg
IAorCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1
ZShmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tT
ZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCisuZnVuY3Rpb25Gb3JDb25zdHJ1
Y3RCZWdpbjoKKyAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDEpCisgICAgZGlzcGF0Y2goMCkK
KyAgICAKKworX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrOgorICAgIHByb2xv
Z3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0
ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlDaGVjaywgX2xsaW50
X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NhbGwpCisgICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5j
dGlvbkZvckNhbGxCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCisKKwor
X2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2s6CisgICAgcHJvbG9ndWUo
ZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0
dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywg
X2xsaW50X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NvbnN0cnVjdCkKKyAgICBmdW5jdGlvbkFyaXR5
Q2hlY2soLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY29uc3Ry
dWN0X2FyaXR5Q2hlY2spCisKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1zcGVjaWZpYyBjb2Rl
LgogaWYgSlNWQUxVRTY0CiAgICAgaW5jbHVkZSBMb3dMZXZlbEludGVycHJldGVyNjQKIGVsc2UK
ICAgICBpbmNsdWRlIExvd0xldmVsSW50ZXJwcmV0ZXIzMl82NAogZW5kCiAKKworIyBMYXN0bHks
IG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBsaW5rIGV2ZW4gdGhvdWdoIHdlIGRvbid0IHN1cHBvcnQg
YWxsIG9wY29kZXMuCisjIFRoZXNlIG9wY29kZXMgc2hvdWxkIG5ldmVyIGFyaXNlIHdoZW4gdXNp
bmcgTExJbnQgb3IgZWl0aGVyIEpJVC4gV2UgYXNzZXJ0CisjIGFzIG11Y2guCisKK21hY3JvIG5v
dFN1cHBvcnRlZCgpCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgY3Jhc2goKQorICAg
IGVsc2UKKyAgICAgICAgIyBXZSBzaG91bGQgdXNlIHdoYXRldmVyIHRoZSBzbWFsbGVzdCBwb3Nz
aWJsZSBpbnN0cnVjdGlvbiBpcywganVzdCB0bworICAgICAgICAjIGVuc3VyZSB0aGF0IHRoZXJl
IGlzIGEgZ2FwIGJldHdlZW4gaW5zdHJ1Y3Rpb24gbGFiZWxzLiBJZiBtdWx0aXBsZQorICAgICAg
ICAjIHNtYWxsZXN0IGluc3RydWN0aW9ucyBleGlzdCwgd2Ugc2hvdWxkIHBpY2sgdGhlIG9uZSB0
aGF0IGlzIG1vc3QKKyAgICAgICAgIyBsaWtlbHkgcmVzdWx0IGluIGV4ZWN1dGlvbiBiZWluZyBo
YWx0ZWQuIEN1cnJlbnRseSB0aGF0IGlzIHRoZSBicmVhaworICAgICAgICAjIGluc3RydWN0aW9u
IG9uIGFsbCBhcmNoaXRlY3R1cmVzIHdlJ3JlIGludGVyZXN0ZWQgaW4uIChCcmVhayBpcyBpbnQz
CisgICAgICAgICMgb24gSW50ZWwsIHdoaWNoIGlzIDEgYnl0ZSwgYW5kIGJrcHQgb24gQVJNdjcs
IHdoaWNoIGlzIDIgYnl0ZXMuKQorICAgICAgICBicmVhaworICAgIGVuZAorZW5kCisKK19sbGlu
dF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9n
ZXRfYnlfaWRfY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9p
ZF9jdXN0b21fY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9p
ZF9jdXN0b21fcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9p
ZF9jdXN0b21fc2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2dlbmVyaWM6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9nZXR0
ZXJfY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9nZXR0
ZXJfcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9nZXR0
ZXJfc2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX3Byb3Rv
OgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfc2VsZjoKKyAgICBu
b3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X3N0cmluZ19sZW5ndGg6CisgICAgbm90U3Vw
cG9ydGVkKCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9nZW5lcmljOgorICAgIG5vdFN1cHBvcnRl
ZCgpCisKK19sbGludF9vcF9wdXRfYnlfaWRfcmVwbGFjZToKKyAgICBub3RTdXBwb3J0ZWQoKQor
CitfbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb246CisgICAgbm90U3VwcG9ydGVkKCkKKwor
CisjIEluZGljYXRlIHRoZSBlbmQgb2YgTExJbnQuCitfbGxpbnRfZW5kOgorICAgIGNyYXNoKCkK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIJKHJldmlz
aW9uIDEwODkwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJi
CSh3b3JraW5nIGNvcHkpCkBAIC00NjksNyArNDY5LDcgQEAgZGVmIGFybVY3TG93ZXJNYWxmb3Jt
ZWRJbW1lZGlhdGVzKGxpc3QpCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5vZGUuYXJtVjdMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXNSZWN1cnNl
KG5ld0xpc3QpCiAgICAgICAgICAgICAgICAgZW5kCi0gICAgICAgICAgICB3aGVuICJtdWxpIgor
ICAgICAgICAgICAgd2hlbiAibXVsaSIsICJtdWxwIgogICAgICAgICAgICAgICAgIGlmIG5vZGUu
b3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCiAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRt
cC5uZXcoY29kZU9yaWdpbiwgOmdwcikKICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJ
bnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzBd
LCB0bXBdKQpAQCAtNTM1LDkgKzUzNSw5IEBAIGRlZiBhcm1WN0xvd2VyTWlzcGxhY2VkQWRkcmVz
c2VzKGxpc3QpCiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAg
IHBvc3RJbnN0cnVjdGlvbnMgPSBbXQogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQotICAg
ICAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRwIiwgImFkZGlzIiwgImFuZGkiLCAiYW5kcCIsICJs
c2hpZnRpIiwgIm11bGkiLCAibmVnaSIsICJub3RpIiwgIm9yaSIsICJvcmlzIiwKLSAgICAgICAg
ICAgICAgICAib3JwIiwgInJzaGlmdGkiLCAidXJzaGlmdGkiLCAic3ViaSIsICJzdWJwIiwgInN1
YmlzIiwgInhvcmkiLCAieG9ycCIsIC9eYmkvLCAvXmJwLywgL15idGkvLAotICAgICAgICAgICAg
ICAgIC9eYnRwLywgL15jaS8sIC9eY3AvLCAvXnRpLworICAgICAgICAgICAgd2hlbiAiYWRkaSIs
ICJhZGRwIiwgImFkZGlzIiwgImFuZGkiLCAiYW5kcCIsICJsc2hpZnRpIiwgIm11bGkiLCAibXVs
cCIsICJuZWdpIiwgIm5vdGkiLCAib3JpIiwKKyAgICAgICAgICAgICAgICAib3JpcyIsICJvcnAi
LCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJzdWJpIiwgInN1YnAiLCAic3ViaXMiLCAieG9yaSIs
ICJ4b3JwIiwgL15iaS8sIC9eYnAvLAorICAgICAgICAgICAgICAgIC9eYnRpLywgL15idHAvLCAv
XmNpLywgL15jcC8sIC9edGkvCiAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUub3Bjb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFybVY3QXNSZWdpc3RlcnMobmV3TGlzdCwgcG9zdEluc3RydWN0aW9ucywgbm9k
ZS5vcGVyYW5kcywgImkiKSkKQEAgLTc5OCw3ICs3OTgsNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgog
ICAgICAgICAgICAgZW1pdEFybVY3Q29tcGFjdCgiYXNycyIsICJhc3JzIiwgb3BlcmFuZHMpCiAg
ICAgICAgIHdoZW4gInVyc2hpZnRpIgogICAgICAgICAgICAgZW1pdEFybVY3Q29tcGFjdCgibHNy
cyIsICJsc3JzIiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gIm11bGkiCisgICAgICAgIHdoZW4g
Im11bGkiLCAibXVscCIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMiBvciBvcGVy
YW5kc1swXSA9PSBvcGVyYW5kc1syXSBvciBvcGVyYW5kc1sxXSA9PSBvcGVyYW5kc1syXQogICAg
ICAgICAgICAgICAgIGVtaXRBcm1WNygibXVscyIsIG9wZXJhbmRzKQogICAgICAgICAgICAgZWxz
ZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkocmV2aXNpb24g
MTA4OTEzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NzksNiArNDc5LDEwIEBAIGNsYXNzIFZhcmlhYmxlIDwgTm9DaGlsZHJl
bgogICAgIGRlZiBkdW1wCiAgICAgICAgIG5hbWUKICAgICBlbmQKKyAgICAKKyAgICBkZWYgaW5z
cGVjdAorICAgICAgICAiPHZhcmlhYmxlICN7bmFtZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfT4i
CisgICAgZW5kCiBlbmQKIAogY2xhc3MgQWRkcmVzcyA8IE5vZGUKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCShyZXZpc2lvbiAxMDg5MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkod29ya2luZyBj
b3B5KQpAQCAtNDgsOCArNDgsMTIgQEAgQkFDS0VORF9QQVRURVJOID0gUmVnZXhwLm5ldygnXFxB
KCcgKyBCQQogCiBjbGFzcyBOb2RlCiAgICAgZGVmIGxvd2VyKG5hbWUpCi0gICAgICAgICRhY3Rp
dmVCYWNrZW5kID0gbmFtZQotICAgICAgICBzZW5kKCJsb3dlciIgKyBuYW1lKQorICAgICAgICBi
ZWdpbgorICAgICAgICAgICAgJGFjdGl2ZUJhY2tlbmQgPSBuYW1lCisgICAgICAgICAgICBzZW5k
KCJsb3dlciIgKyBuYW1lKQorICAgICAgICByZXNjdWUgPT4gZQorICAgICAgICAgICAgcmFpc2Ug
IkdvdCBlcnJvciAje2V9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgICAgIGVuZAogICAg
IGVuZAogZW5kCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3Ry
dWN0aW9ucy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9pbnN0cnVjdGlvbnMucmIJKHJldmlzaW9uIDEwODkwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYg
KzE1OSw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJicGx0IiwKICAgICAgImJwbHRl
cSIsCiAgICAgICJhZGRwIiwKKyAgICAgIm11bHAiLAogICAgICAiYW5kcCIsCiAgICAgICJvcnAi
LAogICAgICAic3VicCIsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9y
ZWdpc3RlcnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vcmVnaXN0ZXJzLnJiCShyZXZpc2lvbiAxMDg5MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDEy
IEBAIEdQUlMgPQogICAgICAicjAiLAogICAgICAicjEiLAogICAgICAic3AiLAotICAgICAibHIi
CisgICAgICJsciIsCisgICAgIAorICAgICAjIDY0LWJpdCBvbmx5IHJlZ2lzdGVyczoKKyAgICAg
ImNzcjAiLCAgIyByMTAKKyAgICAgImNzcjEiLCAgIyByMTQsIHRhZyB0eXBlIG51bWJlciByZWdp
c3RlcgorICAgICAiY3NyMiIgICAjIHIxNSwgdGFnIG1hc2sgcmVnaXN0ZXIKICAgICBdCiAKIEZQ
UlMgPQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkocmV2aXNp
b24gMTA4OTA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCSh3
b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNywxMCBAQCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAg
IGNhc2UgbmFtZQogICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIsICJ0MSIsICJhMSIsICJy
MSIsICJ0MiIsICJ0MyIKICAgICAgICAgICAgIHRydWUKLSAgICAgICAgd2hlbiAidDQiLCAiY2Zy
IgorICAgICAgICB3aGVuICJjZnIiLCAidHRuciIsICJ0bXIiCiAgICAgICAgICAgICBmYWxzZQor
ICAgICAgICB3aGVuICJ0NCIsICJ0NSIKKyAgICAgICAgICAgIGlzWDY0CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGVuZApAQCAtMTEyLDE3ICsxMTQsMzAgQEAgY2xh
c3MgUmVnaXN0ZXJJRAogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBlbmQKICAg
ICAgICAgd2hlbiAiY2ZyIgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVu
IDpieXRlCi0gICAgICAgICAgICAgICAgIiVkaWwiCi0gICAgICAgICAgICB3aGVuIDpoYWxmCi0g
ICAgICAgICAgICAgICAgIiVkaSIKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAg
ICAgICIlZWRpIgotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQg
PyAiJXJkaSIgOiAiJWVkaSIKKyAgICAgICAgICAgIGlmIGlzWDY0CisgICAgICAgICAgICAgICAg
Y2FzZSBraW5kCisgICAgICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICAg
ICAiJXIxM3ciCisgICAgICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgICAg
ICIlcjEzZCIKKyAgICAgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAgICAg
IiVyMTMiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByYWlzZQor
ICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJh
aXNlCisgICAgICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICAgICAgd2hlbiA6Ynl0
ZQorICAgICAgICAgICAgICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgICAgICB3aGVuIDpoYWxm
CisgICAgICAgICAgICAgICAgICAgICIlZGkiCisgICAgICAgICAgICAgICAgd2hlbiA6aW50Cisg
ICAgICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgICAgIHdoZW4gOnB0cgorICAg
ICAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAg
ICAgICAgd2hlbiAic3AiCiAgICAgICAgICAgICBjYXNlIGtpbmQKQEAgLTEzNyw2ICsxNTIsNDgg
QEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJh
aXNlCiAgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICByYWlz
ZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5n
fSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4g
OmJ5dGUKKyAgICAgICAgICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAg
ICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAg
ICAgIiVlZGkiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXJkaSIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjc3IwIgorICAgICAgICAgICAgcmFpc2Ug
IkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
IHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpo
YWxmCisgICAgICAgICAgICAgICAgIiVyMTB3IgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAg
ICAgICAgICAgICAgIiVyMTBkIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAg
ICAgIiVyMTAiCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3NyMSIKKyAgICAgICAg
ICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmln
aW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAg
ICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICIlcjE0dyIKKyAgICAgICAgICAgIHdoZW4g
OmludAorICAgICAgICAgICAgICAgICIlcjE0ZCIKKyAgICAgICAgICAgIHdoZW4gOnB0cgorICAg
ICAgICAgICAgICAgICIlcjE0IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNzcjIi
CisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQg
I3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQK
KyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJXIxNXciCisgICAgICAg
ICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAgICAiJXIxNWQiCisgICAgICAgICAgICB3aGVu
IDpwdHIKKyAgICAgICAgICAgICAgICAiJXIxNSIKKyAgICAgICAgICAgIGVuZAogICAgICAgICBl
bHNlCiAgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9yIFg4NiBhdCAj
e2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQKQEAgLTQ1OCw2ICs1MTUsMTYgQEAgY2xh
c3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgZW5kCiAgICAgZW5kCiAgICAgCisgICAgZGVmIGhhbmRs
ZVg4Nk11bChraW5kKQorICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRz
WzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICJpbXVsI3t4ODZTdWZm
aXgoa2luZCl9ICN7eDg2T3BlcmFuZHMoa2luZCwga2luZCwga2luZCl9IgorICAgICAgICBlbHNl
CisgICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21lIHBlZXBob2xlIGluIGNhc2UgdGhl
IGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MKKyAgICAgICAgICAgICMgYSBwb3dl
ciBvZiB0d28uCisgICAgICAgICAgICBoYW5kbGVYODZPcCgiaW11bCN7eDg2U3VmZml4KGtpbmQp
fSIsIGtpbmQpCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIAogICAgIGRlZiBoYW5kbGVNb3Zl
CiAgICAgICAgIGlmIEltbWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVyYW5kc1swXSBhbmQgb3Bl
cmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRAogICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3Ije3g4
NlN1ZmZpeCg6cHRyKX0gI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5k
c1sxXS54ODZPcGVyYW5kKDpwdHIpfSIKQEAgLTQ5MCwxMyArNTU3LDkgQEAgY2xhc3MgSW5zdHJ1
Y3Rpb24KICAgICAgICAgd2hlbiAibHNoaWZ0aSIKICAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0
KCJzYWxsIiwgOmludCkKICAgICAgICAgd2hlbiAibXVsaSIKLSAgICAgICAgICAgIGlmIG9wZXJh
bmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCi0gICAgICAgICAg
ICAgICAgJGFzbS5wdXRzICJpbXVsbCAje3g4Nk9wZXJhbmRzKDppbnQsIDppbnQsIDppbnQpfSIK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21l
IHBlZXBob2xlIGluIGNhc2UgdGhlIGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MK
LSAgICAgICAgICAgICAgICAjIGEgcG93ZXIgb2YgdHdvLgotICAgICAgICAgICAgICAgIGhhbmRs
ZVg4Nk9wKCJpbXVsbCIsIDppbnQpCi0gICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGhhbmRs
ZVg4Nk11bCg6aW50KQorICAgICAgICB3aGVuICJtdWxwIgorICAgICAgICAgICAgaGFuZGxlWDg2
TXVsKDpwdHIpCiAgICAgICAgIHdoZW4gIm5lZ2kiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm5l
Z2wgI3t4ODZPcGVyYW5kcyg6aW50KX0iCiAgICAgICAgIHdoZW4gIm5vdGkiCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAkocmV2aXNpb24gMTA4
OTA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIxMCw4ICsyMTAsNyBAQCBKU09iamVjdCogRXZhbEV4ZWN1dGFibGU6
OmNvbXBpbGVJbnRlcm5hCiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gJmV4ZWMtPmds
b2JhbERhdGEoKTsKICAgICBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCA9IGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICAKLSAgICBpZiAoISFtX2V2YWxDb2RlQmxv
Y2sgJiYgbV9ldmFsQ29kZUJsb2NrLT5jYW5Qcm9kdWNlQ29weVdpdGhCeXRlY29kZSgpKSB7Ci0g
ICAgICAgIEJ5dGVjb2RlRGVzdHJ1Y3Rpb25CbG9ja2VyIGJsb2NrZXIobV9ldmFsQ29kZUJsb2Nr
LmdldCgpKTsKKyAgICBpZiAoISFtX2V2YWxDb2RlQmxvY2spIHsKICAgICAgICAgT3duUHRyPEV2
YWxDb2RlQmxvY2s+IG5ld0NvZGVCbG9jayA9IGFkb3B0UHRyKG5ldyBFdmFsQ29kZUJsb2NrKENv
ZGVCbG9jazo6Q29weVBhcnNlZEJsb2NrLCAqbV9ldmFsQ29kZUJsb2NrKSk7CiAgICAgICAgIG5l
d0NvZGVCbG9jay0+c2V0QWx0ZXJuYXRpdmUoc3RhdGljX3BvaW50ZXJfY2FzdDxDb2RlQmxvY2s+
KG1fZXZhbENvZGVCbG9jay5yZWxlYXNlKCkpKTsKICAgICAgICAgbV9ldmFsQ29kZUJsb2NrID0g
bmV3Q29kZUJsb2NrLnJlbGVhc2UoKTsKQEAgLTM0Niw4ICszNDUsNyBAQCBKU09iamVjdCogUHJv
Z3JhbUV4ZWN1dGFibGU6OmNvbXBpbGVJbnRlCiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRh
ID0gJmV4ZWMtPmdsb2JhbERhdGEoKTsKICAgICBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICAKLSAgICBpZiAoISFt
X3Byb2dyYW1Db2RlQmxvY2sgJiYgbV9wcm9ncmFtQ29kZUJsb2NrLT5jYW5Qcm9kdWNlQ29weVdp
dGhCeXRlY29kZSgpKSB7Ci0gICAgICAgIEJ5dGVjb2RlRGVzdHJ1Y3Rpb25CbG9ja2VyIGJsb2Nr
ZXIobV9wcm9ncmFtQ29kZUJsb2NrLmdldCgpKTsKKyAgICBpZiAoISFtX3Byb2dyYW1Db2RlQmxv
Y2spIHsKICAgICAgICAgT3duUHRyPFByb2dyYW1Db2RlQmxvY2s+IG5ld0NvZGVCbG9jayA9IGFk
b3B0UHRyKG5ldyBQcm9ncmFtQ29kZUJsb2NrKENvZGVCbG9jazo6Q29weVBhcnNlZEJsb2NrLCAq
bV9wcm9ncmFtQ29kZUJsb2NrKSk7CiAgICAgICAgIG5ld0NvZGVCbG9jay0+c2V0QWx0ZXJuYXRp
dmUoc3RhdGljX3BvaW50ZXJfY2FzdDxDb2RlQmxvY2s+KG1fcHJvZ3JhbUNvZGVCbG9jay5yZWxl
YXNlKCkpKTsKICAgICAgICAgbV9wcm9ncmFtQ29kZUJsb2NrID0gbmV3Q29kZUJsb2NrLnJlbGVh
c2UoKTsKQEAgLTQ5NCwxOCArNDkyLDEzIEBAIHZvaWQgRnVuY3Rpb25FeGVjdXRhYmxlOjpqaXRD
b21waWxlRm9yQ28KIAogRnVuY3Rpb25Db2RlQmxvY2sqIEZ1bmN0aW9uRXhlY3V0YWJsZTo6Y29k
ZUJsb2NrV2l0aEJ5dGVjb2RlRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKIHsKLSAg
ICBGdW5jdGlvbkNvZGVCbG9jayogY29kZUJsb2NrID0gYmFzZWxpbmVDb2RlQmxvY2tGb3Ioa2lu
ZCk7Ci0gICAgaWYgKGNvZGVCbG9jay0+Y2FuUHJvZHVjZUNvcHlXaXRoQnl0ZWNvZGUoKSkKLSAg
ICAgICAgcmV0dXJuIGNvZGVCbG9jazsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYmFzZWxp
bmVDb2RlQmxvY2tGb3Ioa2luZCk7CiB9CiAKIFBhc3NPd25QdHI8RnVuY3Rpb25Db2RlQmxvY2s+
IEZ1bmN0aW9uRXhlY3V0YWJsZTo6cHJvZHVjZUNvZGVCbG9ja0ZvcihTY29wZUNoYWluTm9kZSog
c2NvcGVDaGFpbk5vZGUsIENvbXBpbGF0aW9uS2luZCBjb21waWxhdGlvbktpbmQsIENvZGVTcGVj
aWFsaXphdGlvbktpbmQgc3BlY2lhbGl6YXRpb25LaW5kLCBKU09iamVjdComIGV4Y2VwdGlvbikK
IHsKLSAgICBpZiAoISFjb2RlQmxvY2tGb3Ioc3BlY2lhbGl6YXRpb25LaW5kKSAmJiBjb2RlQmxv
Y2tGb3Ioc3BlY2lhbGl6YXRpb25LaW5kKS0+Y2FuUHJvZHVjZUNvcHlXaXRoQnl0ZWNvZGUoKSkg
ewotICAgICAgICBCeXRlY29kZURlc3RydWN0aW9uQmxvY2tlciBibG9ja2VyKGNvZGVCbG9ja0Zv
cihzcGVjaWFsaXphdGlvbktpbmQpLmdldCgpKTsKKyAgICBpZiAoISFjb2RlQmxvY2tGb3Ioc3Bl
Y2lhbGl6YXRpb25LaW5kKSkKICAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGdW5jdGlvbkNv
ZGVCbG9jayhDb2RlQmxvY2s6OkNvcHlQYXJzZWRCbG9jaywgKmNvZGVCbG9ja0ZvcihzcGVjaWFs
aXphdGlvbktpbmQpKSk7Ci0gICAgfQogICAgIAogICAgIGV4Y2VwdGlvbiA9IDA7CiAgICAgSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gc2NvcGVDaGFpbk5vZGUtPmdsb2JhbERhdGE7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxMDg5MDUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTky
MCw3ICs5MjAsNyBAQAogI2RlZmluZSBFTkFCTEVfSklUIDAKICNlbmRpZgogCi0vKiBUaGUgSklU
IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBhbGwgeDg2LCB4NjQtNjQsIEFSTSAmIE1JUFMgcGxh
dGZvcm1zLiAqLworLyogVGhlIEpJVCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gYWxsIHg4Niwg
eDg2LTY0LCBBUk0gJiBNSVBTIHBsYXRmb3Jtcy4gKi8KICNpZiAhZGVmaW5lZChFTkFCTEVfSklU
KSBcCiAgICAgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk0pIHx8IENQVShN
SVBTKSkgXAogICAgICYmIChPUyhEQVJXSU4pIHx8ICFDT01QSUxFUihHQ0MpIHx8IEdDQ19WRVJT
SU9OX0FUX0xFQVNUKDQsIDEsIDApKSBcCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128941</attachid>
            <date>2012-02-26 20:16:01 -0800</date>
            <delta_ts>2012-02-27 17:23:21 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_2.diff</filename>
            <type>text/plain</type>
            <size>41826</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4OTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBA
CisyMDEyLTAyLTI2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAg
ICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9y
ZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTItMDItMjYg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXRUZXN0cy9m
YXN0L3hwYXRoL3hwYXRoLWZ1bmN0aW9uYWwtdGVzdC5odG1sIGlzIGNyYXNoaW5nIGluIHRoZSBE
RkcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lvbiAxMDg5NDYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBj
b3B5KQpAQCAtNzAsMjggKzcwLDYgQEAKICMgQmVsb3cgd2UgaGF2ZSBhIGJ1bmNoIG9mIGNvbnN0
YW50IGRlY2xhcmF0aW9ucy4gRWFjaCBjb25zdGFudCBtdXN0IGhhdmUKICMgYSBjb3JyZXNwb25k
aW5nIEFTU0VSVCgpIGluIExMSW50RGF0YS5jcHAuCiAKLSMgVGhlc2UgZGVjbGFyYXRpb25zIG11
c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmguCi1jb25zdCBDYWxsRnJhbWVIZWFk
ZXJTaXplID0gNDgKLWNvbnN0IEFyZ3VtZW50Q291bnQgPSAtNDgKLWNvbnN0IENhbGxlckZyYW1l
ID0gLTQwCi1jb25zdCBDYWxsZWUgPSAtMzIKLWNvbnN0IFNjb3BlQ2hhaW4gPSAtMjQKLWNvbnN0
IFJldHVyblBDID0gLTE2Ci1jb25zdCBDb2RlQmxvY2sgPSAtOAotCi1jb25zdCBUaGlzQXJndW1l
bnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDgKLQotIyBEZWNsYXJlIHNvbWUgYWxp
YXNlcyBmb3IgdGhlIHJlZ2lzdGVycyB3ZSB3aWxsIHVzZS4KLWNvbnN0IFBDID0gdDQKLQotIyBP
ZmZzZXRzIG5lZWRlZCBmb3IgcmVhc29uaW5nIGFib3V0IHZhbHVlIHJlcHJlc2VudGF0aW9uLgot
aWYgQklHX0VORElBTgotICAgIGNvbnN0IFRhZ09mZnNldCA9IDAKLSAgICBjb25zdCBQYXlsb2Fk
T2Zmc2V0ID0gNAotZWxzZQotICAgIGNvbnN0IFRhZ09mZnNldCA9IDQKLSAgICBjb25zdCBQYXls
b2FkT2Zmc2V0ID0gMAotZW5kCiAKICMgVmFsdWUgcmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgog
Y29uc3QgSW50MzJUYWcgPSAtMQpAQCAtMTAzLDcxICs4MSw4IEBAIGNvbnN0IEVtcHR5VmFsdWVU
YWcgPSAtNgogY29uc3QgRGVsZXRlZFZhbHVlVGFnID0gLTcKIGNvbnN0IExvd2VzdFRhZyA9IERl
bGV0ZWRWYWx1ZVRhZwogCi0jIFR5cGUgY29uc3RhbnRzLgotY29uc3QgU3RyaW5nVHlwZSA9IDUK
LWNvbnN0IE9iamVjdFR5cGUgPSAxMwotCi0jIFR5cGUgZmxhZ3MgY29uc3RhbnRzLgotY29uc3Qg
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDEKLWNvbnN0IEltcGxlbWVudHNIYXNJbnN0YW5jZSA9
IDIKLWNvbnN0IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSA4Ci0KLSMgSGVhcCBhbGxv
Y2F0aW9uIGNvbnN0YW50cy4KLWNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDMK
LQotIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0YW50cy4KLWNvbnN0IEZpcnN0Q29uc3RhbnRSZWdp
c3RlckluZGV4ID0gMHg0MDAwMDAwMAotCi0jIENvZGUgdHlwZSBjb25zdGFudHMuCi1jb25zdCBH
bG9iYWxDb2RlID0gMAotY29uc3QgRXZhbENvZGUgPSAxCi1jb25zdCBGdW5jdGlvbkNvZGUgPSAy
Ci0KLSMgVGhlIGludGVycHJldGVyIHN0ZWFscyB0aGUgdGFnIHdvcmQgb2YgdGhlIGFyZ3VtZW50
IGNvdW50LgotY29uc3QgTExJbnRSZXR1cm5QQyA9IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXQK
LQotIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1ZlY3Rvci5oLgotY29uc3QgVmVjdG9yU2l6ZU9mZnNl
dCA9IDAKLWNvbnN0IFZlY3RvckJ1ZmZlck9mZnNldCA9IDQKLQotIyBTdHJpbmcgZmxhZ3MuCi1j
b25zdCBIYXNoRmxhZ3M4Qml0QnVmZmVyID0gNjQKIAogIyBVdGlsaXRpZXMKLW1hY3JvIGNyYXNo
KCkKLSAgICBzdG9yZWkgMCwgMHhiYmFkYmVlZltdCi0gICAgbW92ZSAwLCB0MAotICAgIGNhbGwg
dDAKLWVuZAotCi1tYWNybyBhc3NlcnQoYXNzZXJ0aW9uKQotICAgIGlmIEFTU0VSVF9FTkFCTEVE
Ci0gICAgICAgIGFzc2VydGlvbigub2spCi0gICAgICAgIGNyYXNoKCkKLSAgICAub2s6Ci0gICAg
ZW5kCi1lbmQKLQotbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0
aW9uUmVnaXN0ZXIpCi0gICAgaWYgQVJNdjcKLSAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25S
ZWdpc3RlcgotICAgIGVsc2lmIFg4NgotICAgICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3Rlcgot
ICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLWVuZAotCi1tYWNybyByZXN0b3JlUmV0
dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKLSAgICBpZiBBUk12NwotICAg
ICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgotICAgIGVsc2lmIFg4NgotICAgICAgICBwdXNo
IHNvdXJjZVJlZ2lzdGVyCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0K
IG1hY3JvIGRpc3BhdGNoKGFkdmFuY2UpCiAgICAgYWRkcCBhZHZhbmNlICogNCwgUEMKICAgICBq
bXAgW1BDXQpAQCAtMjIwLDggKzEzNSw4IEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwg
YXJnMiwgYXJnMywKICAgICBjYWxsIGZ1bmN0aW9uCiBlbmQKIAotbWFjcm8gY2FsbFNsb3dQYXRo
KHNsb3dfcGF0aCkKLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKQorbWFjcm8gY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQorICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKICAgICBtb3Zl
IHQwLCBQQwogICAgIG1vdmUgdDEsIGNmcgogZW5kCkBAIC0yNDUsNDAgKzE2MCwxNSBAQCBtYWNy
byB0cmFjZVZhbHVlKGZyb21XaGVyZSwgb3BlcmFuZCkKICAgICBtb3ZlIHQxLCBjZnIKIGVuZAog
Ci1tYWNybyB0cmFjZUV4ZWN1dGlvbigpCi0gICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKLSAgICAg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFjZSkKLSAgICBlbmQKLWVuZAotCi0jIENhbGwgYSBz
bG93X3BhdGggZm9yIGNhbGwgb3Bjb2Rlcy4KLW1hY3JvIGNhbGxDYWxsU2xvd1BhdGgoYWR2YW5j
ZSwgc2xvd19wYXRoLCBhY3Rpb24pCisjIENhbGwgYSBzbG93UGF0aCBmb3IgY2FsbCBvcGNvZGVz
LgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9uKQogICAg
IGFkZHAgYWR2YW5jZSAqIDQsIFBDLCB0MAogICAgIHN0b3JlcCB0MCwgQXJndW1lbnRDb3VudCAr
IFRhZ09mZnNldFtjZnJdCi0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykKKyAgICBjQ2Fs
bDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQog
ZW5kCiAKLW1hY3JvIHNsb3dQYXRoRm9yQ2FsbChhZHZhbmNlLCBzbG93X3BhdGgpCi0gICAgY2Fs
bENhbGxTbG93UGF0aCgKLSAgICAgICAgYWR2YW5jZSwKLSAgICAgICAgc2xvd19wYXRoLAotICAg
ICAgICBtYWNybyAoY2FsbGVlKQotICAgICAgICAgICAgY2FsbCBjYWxsZWUKLSAgICAgICAgICAg
IGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLSAgICAgICAgZW5kKQotZW5kCi0KLW1hY3JvIGNoZWNrU3dp
dGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24pCi0gICAgaWYgSklUX0VOQUJMRUQKLSAgICAgICAg
bG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgICAgIGJhZGRpcyBpbmNyZW1lbnQsIENvZGVC
bG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyW3QwXSwgLmNvbnRpbnVlCi0gICAgICAgIGFjdGlv
bigpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotZW5kCi0KIG1hY3JvIGNoZWNrU3dpdGNoVG9K
SVRGb3JMb29wKCkKICAgICBjaGVja1N3aXRjaFRvSklUKAogICAgICAgICAxLApAQCAtMjkzLDE4
ICsxODMsNiBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgICAgIGVuZCkK
IGVuZAogCi1tYWNybyBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQotICAgIGNoZWNrU3dp
dGNoVG9KSVQoCi0gICAgICAgIDEwLAotICAgICAgICBtYWNybyAoKQotICAgICAgICAgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gYXNz
ZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCi0gICAgYXNzZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwg
Rmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIG9rIGVuZCkKLWVuZAotCiAjIEluZGV4LCB0YWcs
IGFuZCBwYXlsb2FkIG11c3QgYmUgZGlmZmVyZW50IHJlZ2lzdGVycy4gSW5kZXggaXMgbm90CiAj
IGNoYW5nZWQuCiBtYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB0YWcsIHBheWxv
YWQpCkBAIC0zODYsMTA5ICsyNjQsOCBAQCBtYWNybyB2YWx1ZVByb2ZpbGUodGFnLCBwYXlsb2Fk
LCBwcm9maWxlCiBlbmQKIAogCi0jIEluZGljYXRlIHRoZSBiZWdpbm5pbmcgb2YgTExJbnQuCi1f
bGxpbnRfYmVnaW46Ci0gICAgY3Jhc2goKQotCi0KICMgRW50cnlwb2ludHMgaW50byB0aGUgaW50
ZXJwcmV0ZXIKIAotbWFjcm8gZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJl
Z2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRw
IEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVy
Ci0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNhbGxbdGFyZ2V0
UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgotZW5kCi0KLW1hY3JvIGZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtjZnJd
LCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJn
ZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxl
OjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVy
Ci1lbmQKLQotbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIp
Ci0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQKLQotbWFjcm8g
ZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0gICAgc3RvcmVwIHNvdXJj
ZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQotZW5kCi0KLW1hY3JvIG5vdEZ1bmN0aW9uQ29kZUJs
b2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQotICAgICMgTm90aGluZyB0byBkbyEKLWVuZAotCi0j
IERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRo
ZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKLSMgaW4gdDEuIE1heSBhbHNvIHRyaWdnZXIgcHJv
bG9ndWUgZW50cnkgT1NSLgotbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxv
Y2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQotICAgIHByZXNlcnZlUmV0dXJu
QWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAKLSAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBh
bmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KLSAgICBzdG9yZXAgdDIsIFJldHVyblBDW2Nmcl0K
LSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAgICAgICBjYWxsU2xvd1BhdGgodHJhY2VTbG93
UGF0aCkKLSAgICBlbmQKLSAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCi0gICAgaWYgSklUX0VOQUJM
RUQKLSAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyW3Qx
XSwgLmNvbnRpbnVlCi0gICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKLSAgICAg
ICAgbW92ZSB0MSwgY2ZyCi0gICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCi0gICAgICAgIGxvYWRw
IFJldHVyblBDW2Nmcl0sIHQyCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0
dXJuKHQyKQotICAgICAgICBqbXAgdDAKLSAgICAucmVjb3ZlcjoKLSAgICAgICAgY29kZUJsb2Nr
R2V0dGVyKHQxKQotICAgIC5jb250aW51ZToKLSAgICBlbmQKLSAgICBjb2RlQmxvY2tTZXR0ZXIo
dDEpCi0gICAgCi0gICAgIyBTZXQgdXAgdGhlIFBDLgotICAgIGxvYWRwIENvZGVCbG9jazo6bV9p
bnN0cnVjdGlvbnNbdDFdLCBQQwotZW5kCi0KLSMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBp
biB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCi0jIE11c3QgY2Fs
bCBkaXNwYXRjaCgwKSBhZnRlciBjYWxsaW5nIHRoaXMuCi1tYWNybyBmdW5jdGlvbkluaXRpYWxp
emF0aW9uKHByb2ZpbGVBcmdTa2lwKQotICAgIGlmIFZBTFVFX1BST0ZJTEVSCi0gICAgICAgICMg
UHJvZmlsZSB0aGUgYXJndW1lbnRzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIGNob2ljZSBi
dXQgdG8gZG8gdGhpcy4gVGhpcwotICAgICAgICAjIGNvZGUgaXMgcHJldHR5IGhvcnJlbmRvdXMg
YmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBpbiBvcmRlcmluZyBiZXR3ZWVuCi0gICAgICAgICMg
YXJndW1lbnRzIGFuZCB2YWx1ZSBwcm9maWxlcywgdGhlIGRlc2lyZSB0byBoYXZlIGEgc2ltcGxl
IGxvb3AtZG93bi10by16ZXJvCi0gICAgICAgICMgbG9vcCwgYW5kIHRoZSBkZXNpcmUgdG8gdXNl
IG9ubHkgdGhyZWUgcmVnaXN0ZXJzIHNvIGFzIHRvIHByZXNlcnZlIHRoZSBQQyBhbmQKLSAgICAg
ICAgIyB0aGUgY29kZSBibG9jay4gSXQgaXMgbGlrZWx5IHRoYXQgdGhpcyBjb2RlIHNob3VsZCBi
ZSByZXdyaXR0ZW4gaW4gYSBtb3JlCi0gICAgICAgICMgb3B0aW1hbCB3YXkgZm9yIGFyY2hpdGVj
dHVyZXMgdGhhdCBoYXZlIG1vcmUgdGhhbiBmaXZlIHJlZ2lzdGVycyBhdmFpbGFibGUKLSAgICAg
ICAgIyBmb3IgYXJiaXRyYXJ5IHVzZSBpbiB0aGUgaW50ZXJwcmV0ZXIuCi0gICAgICAgIGxvYWRp
IENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgdDAKLSAgICAgICAgYWRkaSAtcHJvZmls
ZUFyZ1NraXAsIHQwICMgVXNlIGFkZGkgYmVjYXVzZSB0aGF0J3Mgd2hhdCBoYXMgdGhlIHBlZXBo
b2xlCi0gICAgICAgIGFzc2VydChtYWNybyAob2spIGJpZ3RlcSB0MCwgMCwgb2sgZW5kKQotICAg
ICAgICBidGl6IHQwLCAuYXJndW1lbnRQcm9maWxlRG9uZQotICAgICAgICBsb2FkcCBDb2RlQmxv
Y2s6Om1fYXJndW1lbnRWYWx1ZVByb2ZpbGVzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QxXSwgdDMK
LSAgICAgICAgbXVsaSBzaXplb2YgVmFsdWVQcm9maWxlLCB0MCwgdDIgIyBBYWFhYWhoaGghIE5l
ZWQgc3RyZW5ndGggcmVkdWN0aW9uIQotICAgICAgICBuZWdpIHQwCi0gICAgICAgIGxzaGlmdGkg
MywgdDAKLSAgICAgICAgYWRkcCB0MiwgdDMKLSAgICAuYXJndW1lbnRQcm9maWxlTG9vcDoKLSAg
ICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgVGFnT2Zmc2V0ICsgOCAtIHByb2ZpbGVB
cmdTa2lwICogOFtjZnIsIHQwXSwgdDIKLSAgICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxl
LCB0MwotICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJv
ZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgVGFnT2Zmc2V0W3QzXQotICAgICAgICBs
b2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBQYXlsb2FkT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdT
a2lwICogOFtjZnIsIHQwXSwgdDIKLSAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAq
IHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRP
ZmZzZXRbdDNdCi0gICAgICAgIGJhZGRpbnogOCwgdDAsIC5hcmd1bWVudFByb2ZpbGVMb29wCi0g
ICAgLmFyZ3VtZW50UHJvZmlsZURvbmU6Ci0gICAgZW5kCi0gICAgICAgIAotICAgICMgQ2hlY2sg
c3RhY2sgaGVpZ2h0LgotICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNb
dDFdLCB0MAotICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QxXSwgdDIKLSAgICBs
b2FkcCBKU0dsb2JhbERhdGE6OmludGVycHJldGVyW3QyXSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0
IHRvIHRoZSBSZWdpc3RlckZpbGUgZnJvbSB0aGUgSklUU3RhY2tGcmFtZQotICAgIGxzaGlmdGkg
MywgdDAKLSAgICBhZGRwIHQwLCBjZnIsIHQwCi0gICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVn
aXN0ZXJGaWxlICsgUmVnaXN0ZXJGaWxlOjptX2VuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwot
Ci0gICAgIyBTdGFjayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19w
YXRoLgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKLS5zdGFj
a0hlaWdodE9LOgotZW5kCi0KICMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hp
Y2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCiBtYWNybyBmdW5jdGlvbkFyaXR5
Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFy
Z3VtZW50Q291bnRbY2ZyXSwgdDAKQEAgLTUwNiwzOCArMjgzLDYgQEAgbWFjcm8gZnVuY3Rpb25B
cml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvdwogICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi1fbGxp
bnRfcHJvZ3JhbV9wcm9sb2d1ZToKLSAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dl
dHRlciwgbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGlu
dF90cmFjZV9wcm9sb2d1ZSkKLSAgICBkaXNwYXRjaCgwKQotCi0KLV9sbGludF9ldmFsX3Byb2xv
Z3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlv
bkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3Vl
KQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3Vl
OgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25D
b2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGwsIF9sbGlu
dF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY2FsbCkKLS5mdW5jdGlvbkZvckNhbGxCZWdp
bjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDApCi0gICAgZGlzcGF0Y2goMCkKLSAgICAK
LQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUo
ZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0
dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QsIF9sbGludF90cmFj
ZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY29uc3RydWN0KQotLmZ1bmN0aW9uRm9yQ29uc3RydWN0
QmVnaW46Ci0gICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigxKQotICAgIGRpc3BhdGNoKDApCi0g
ICAgCi0KLV9sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjazoKLSAgICBwcm9sb2d1
ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVy
LCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5Q2hlY2ssIF9sbGludF90
cmFjZV9hcml0eUNoZWNrX2Zvcl9jYWxsKQotICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rp
b25Gb3JDYWxsQmVnaW4sIF9sbGludF9zbG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQotCi0KLV9s
bGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1
bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRl
ciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5Q2hlY2ssIF9s
bGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9jb25zdHJ1Y3QpCi0gICAgZnVuY3Rpb25Bcml0eUNo
ZWNrKC5mdW5jdGlvbkZvckNvbnN0cnVjdEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVj
dF9hcml0eUNoZWNrKQogCiAjIEluc3RydWN0aW9uIGltcGxlbWVudGF0aW9ucwogCkBAIC01ODMs
MzkgKzMyOCw2IEBAIF9sbGludF9vcF9jcmVhdGVfYXJndW1lbnRzOgogICAgIGRpc3BhdGNoKDIp
CiAKIAotbWFjcm8gYWxsb2NhdGVCYXNpY0pTT2JqZWN0KHNpemVDbGFzc0luZGV4LCBjbGFzc0lu
Zm9PZmZzZXQsIHN0cnVjdHVyZSwgcmVzdWx0LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNsb3dDYXNl
KQotICAgIGlmIEFMV0FZU19BTExPQ0FURV9TTE9XCi0gICAgICAgIGptcCBzbG93Q2FzZQotICAg
IGVsc2UKLSAgICAgICAgY29uc3Qgb2Zmc2V0T2ZNeVNpemVDbGFzcyA9Ci0gICAgICAgICAgICBK
U0dsb2JhbERhdGE6OmhlYXAgKwotICAgICAgICAgICAgSGVhcDo6bV9vYmplY3RTcGFjZSArCi0g
ICAgICAgICAgICBNYXJrZWRTcGFjZTo6bV9ub3JtYWxTcGFjZSArCi0gICAgICAgICAgICBNYXJr
ZWRTcGFjZTo6U3Vic3BhY2U6OnByZWNpc2VBbGxvY2F0b3JzICsKLSAgICAgICAgICAgIHNpemVD
bGFzc0luZGV4ICogc2l6ZW9mIE1hcmtlZEFsbG9jYXRvcgotICAgICAgICAKLSAgICAgICAgIyBG
SVhNRTogd2UgY2FuIGdldCB0aGUgZ2xvYmFsIGRhdGEgaW4gb25lIGxvYWQgZnJvbSB0aGUgc3Rh
Y2suCi0gICAgICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBzY3JhdGNoMQotICAgICAgICBsb2Fk
cCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVtzY3JhdGNoMV0sIHNjcmF0Y2gxCi0gICAgICAgIAot
ICAgICAgICAjIEdldCB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4gICAgCi0gICAgICAg
IGxvYWRwIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVl
Q2VsbFtzY3JhdGNoMV0sIHJlc3VsdAotICAgICAgICBidHB6IHJlc3VsdCwgc2xvd0Nhc2UKLSAg
ICAgICAgCi0gICAgICAgICMgUmVtb3ZlIHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0Lgot
ICAgICAgICBsb2FkcCBbcmVzdWx0XSwgc2NyYXRjaDIKLSAgICAgICAgc3RvcmVwIHNjcmF0Y2gy
LCBvZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxb
c2NyYXRjaDFdCi0gICAgCi0gICAgICAgICMgSW5pdGlhbGl6ZSB0aGUgb2JqZWN0LgotICAgICAg
ICBsb2FkcCBjbGFzc0luZm9PZmZzZXRbc2NyYXRjaDFdLCBzY3JhdGNoMgotICAgICAgICBzdG9y
ZXAgc2NyYXRjaDIsIFtyZXN1bHRdCi0gICAgICAgIHN0b3JlcCBzdHJ1Y3R1cmUsIEpTQ2VsbDo6
bV9zdHJ1Y3R1cmVbcmVzdWx0XQotICAgICAgICBzdG9yZXAgMCwgSlNPYmplY3Q6Om1faW5oZXJp
dG9ySURbcmVzdWx0XQotICAgICAgICBhZGRwIHNpemVvZiBKU09iamVjdCwgcmVzdWx0LCBzY3Jh
dGNoMQotICAgICAgICBzdG9yZXAgc2NyYXRjaDEsIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFn
ZVtyZXN1bHRdCi0gICAgZW5kCi1lbmQKLQogX2xsaW50X29wX2NyZWF0ZV90aGlzOgogICAgIHRy
YWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDAKQEAgLTIzMTcsNzIgKzIwMjksMyBA
QCBfbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKICAgICBsb2FkcCBKU0dsb2Jh
bERhdGE6OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKICAgICBqbXAgSlNHbG9iYWxEYXRhOjp0
YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0MV0KIAotCi0jIExhc3RseSwgbWFrZSBzdXJlIHRoYXQg
d2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KLSMg
VGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRo
ZXIgSklULiBXZSBhc3NlcnQKLSMgYXMgbXVjaC4KLQotbWFjcm8gbm90U3VwcG9ydGVkKCkKLSAg
ICBpZiBBU1NFUlRfRU5BQkxFRAotICAgICAgICBjcmFzaCgpCi0gICAgZWxzZQotICAgICAgICAj
IFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9u
IGlzLCBqdXN0IHRvCi0gICAgICAgICMgZW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2Vl
biBpbnN0cnVjdGlvbiBsYWJlbHMuIElmIG11bHRpcGxlCi0gICAgICAgICMgc21hbGxlc3QgaW5z
dHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25lIHRoYXQgaXMgbW9zdAotICAg
ICAgICAjIGxpa2VseSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5
IHRoYXQgaXMgdGhlIGJyZWFrCi0gICAgICAgICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVj
dHVyZXMgd2UncmUgaW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGludDMKLSAgICAgICAgIyBvbiBJ
bnRlbCwgd2hpY2ggaXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRl
cy4pCi0gICAgICAgIGJyZWFrCi0gICAgZW5kCi1lbmQKLQotX2xsaW50X29wX2dldF9hcnJheV9s
ZW5ndGg6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoK
LSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoK
LSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoK
LSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgot
ICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoKLSAgICBu
b3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbjoKLSAgICBu
b3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoKLSAgICBu
b3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9zZWxmOgotICAgIG5v
dFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfcHJvdG86Ci0gICAgbm90U3VwcG9y
dGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0K
LV9sbGludF9vcF9nZXRfc3RyaW5nX2xlbmd0aDoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxp
bnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29w
X3B1dF9ieV9pZF9yZXBsYWNlOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRf
YnlfaWRfdHJhbnNpdGlvbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi0KLSMgSW5kaWNhdGUgdGhl
IGVuZCBvZiBMTEludC4KLV9sbGludF9lbmQ6Ci0gICAgY3Jhc2goKQotCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQkocmV2aXNpb24gMTA4OTQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDI0MCBAQAog
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorIyBU
aGlzIG9ubHkgd29ya3Mgb24gWDg2XzY0LgoraWYgbm90IFg4Nl82NAorICAgIGVycm9yCitlbmQK
IAotIyBOb3Qgc3VwcG9ydGVkIHlldCwgc28gZ2l2ZSB1cC4KLWVycm9yCisjIFNvbWUgdmFsdWUg
cmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgorY29uc3QgVmFsdWVFbXB0eSA9IDB4MAorY29uc3Qg
VmFsdWVGYWxzZSA9IDB4NgorY29uc3QgVmFsdWVUcnVlID0gMHg3Citjb25zdCBWYWx1ZVVuZGVm
aW5lZCA9IDB4YQorY29uc3QgVmFsdWVOdWxsID0gMHgyCisKKyMgVXRpbGl0aWVzLgorbWFjcm8g
ZGlzcGF0Y2goYWR2YW5jZSkKKyAgICBhZGRpIGFkdmFuY2UsIFBDCisgICAgam1wIFtQQiwgUEMs
IDhdCitlbmQKKworbWFjcm8gZGlzcGF0Y2hCcmFuY2gocGNPZmZzZXQpCisgICAgbG9hZGkgcGNP
ZmZzZXQsIHQwCisgICAgZGlzcGF0Y2godDApCitlbmQKKworbWFjcm8gZGlzcGF0Y2hBZnRlckNh
bGwoKQorICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKKyAgICBs
b2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rp
b25zW1BCXSwgUEIKKyAgICBqbXAgW1BCLCBQQywgOF0KK2VuZAorCittYWNybyBjQ2FsbDIoZnVu
Y3Rpb24sIGFyZzEsIGFyZzIpCisgICAgbW92ZSBhcmcxLCB0MAorICAgIG1vdmUgYXJnMiwgdDEK
KyAgICBjYWxsIGZ1bmN0aW9uCitlbmQKKworIyBUaGlzIGJhcmVseSB3b3Jrcy4gYXJnMyBhbmQg
YXJnNCBzaG91bGQgcHJvYmFibHkgYmUgaW1tZWRpYXRlcy4KK21hY3JvIGNDYWxsNChmdW5jdGlv
biwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKKyAgICBtb3ZlIGFyZzEsIHQwCisgICAgbW92ZSBh
cmcyLCB0MQorICAgIG1vdmUgYXJnMywgdDIKKyAgICBtb3ZlIGFyZzQsIHQzCisgICAgY2FsbCBm
dW5jdGlvbgorZW5kCisKK21hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBsZWFwIFtQ
QiwgUEMsIDhdLCBQQworZW5kCisKK21hY3JvIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAg
IG1vdmUgdDAsIFBDCisgICAgbW92ZSB0MSwgY2ZyCisgICAgc3VicCBQQiwgUEMKKyAgICB1cnNo
aWZ0aSAzLCBQQworZW5kCisKK21hY3JvIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBwcmVw
YXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIHJl
c3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorZW5kCisKK21hY3JvIHRyYWNlT3BlcmFuZChmcm9tV2hl
cmUsIG9wZXJhbmQpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsNChfbGxp
bnRfdHJhY2Vfb3BlcmFuZCwgY2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHJlc3Rv
cmVTdGF0ZUFmdGVyQ0NhbGwoKQorZW5kCisKK21hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBv
cGVyYW5kKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDQoX2xsaW50X3Ry
YWNlX3ZhbHVlLCBjZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcmVzdG9yZVN0YXRl
QWZ0ZXJDQ2FsbCgpCitlbmQKKworIyBDYWxsIGEgc2xvdyBwYXRoIGZvciBjYWxsIGNhbGwgb3Bj
b2Rlcy4KK21hY3JvIGNhbGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd1BhdGgsIGFjdGlvbikK
KyAgICBhZGRpIGFkdmFuY2UsIFBDLCB0MAorICAgIHN0b3JlaSB0MCwgQXJndW1lbnRDb3VudCAr
IFRhZ09mZnNldFtjZnJdCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsMihz
bG93UGF0aCwgY2ZyLCBQQykKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBhY3Rpb24odDApCitlbmQK
KworbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQorICAgIGNoZWNrU3dpdGNoVG9KSVQo
CisgICAgICAgIDEsCisgICAgICAgIG1hY3JvKCkKKyAgICAgICAgICAgIHN0b3JlaSBQQywgQXJn
dW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCisgICAgICAgICAgICBwcmVwYXJlU3RhdGVGb3JD
Q2FsbCgpCisgICAgICAgICAgICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIsIFBDKQorICAg
ICAgICAgICAgbW92ZSB0MSwgY2ZyCisgICAgICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgorICAg
ICAgICAgICAgam1wIHQwCisgICAgICAgIC5yZWNvdmVyOgorICAgICAgICAgICAgbG9hZHAgQXJn
dW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQworICAgICAgICBlbmQpCitlbmQKKworIyBJ
bmRleCBhbmQgdmFsdWUgbXVzdCBiZSBkaWZmZXJlbnQgcmVnaXN0ZXJzLiBJbmRleCBtYXkgYmUg
Y2xvYmJlcmVkLgorbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUpCisg
ICAgYnBndGVxIGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgLmNvbnN0YW50Cisg
ICAgbG9hZHAgW2NmciwgaW5kZXgsIDhdLCB2YWx1ZQorICAgIGptcCAuZG9uZQorLmNvbnN0YW50
OgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB2YWx1ZQorICAgIGxvYWRwIENvZGVCbG9jazo6
bV9jb25zdGFudFJlZ2lzdGVycyArIFZlY3RvckJ1ZmZlck9mZnNldFt2YWx1ZV0sIHZhbHVlCisg
ICAgc3VicCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgaW5kZXgKKyAgICBsb2FkcCBbdmFs
dWUsIGluZGV4LCA4XSwgdmFsdWUKKy5kb25lOgorZW5kCisKK21hY3JvIGxvYWRDb25zdGFudE9y
VmFyaWFibGVJbnQzMihpbmRleCwgdmFsdWUsIHNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZShpbmRleCwgdmFsdWUpCisgICAgYnBiIHZhbHVlLCB0YWdUeXBlTnVtYmVyLCBzbG93Citl
bmQKKworbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoaW5kZXgsIHZhbHVlLCBzbG93
KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoaW5kZXgsIHZhbHVlKQorICAgIGJ0cG56IHZh
bHVlLCB0YWdNYXNrLCBzbG93CitlbmQKKworbWFjcm8gd3JpdGVCYXJyaWVyKHZhbHVlKQorICAg
ICMgTm90aGluZyB0byBkbywgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhIGdlbmVyYXRpb25hbCBvciBp
bmNyZW1lbnRhbCBjb2xsZWN0b3IuCitlbmQKKworbWFjcm8gdmFsdWVQcm9maWxlKHZhbHVlLCBw
cm9maWxlKQorICAgIGlmIFZBTFVFX1BST0ZJTEVSCisgICAgICAgIHN0b3JlcCB2YWx1ZSwgVmFs
dWVQcm9maWxlOjptX2J1Y2tldHNbcHJvZmlsZV0KKyAgICBlbmQKK2VuZAorCisKKyMgRW50cnlw
b2ludHMgaW50byB0aGUgaW50ZXJwcmV0ZXIuCisKKyMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBp
cyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCittYWNybyBm
dW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgpCisgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKKyAgICBiaWFlcSB0MCwgQ29kZUJsb2Nr
OjptX251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFiZWwKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2Fs
bCgpCisgICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd19wYXRoIGhh
cyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9y
CisgICAgbW92ZSB0MSwgY2ZyCisgICAgYnRpeiB0MCwgLmNvbnRpbnVlCisgICAgbG9hZHAgSklU
U3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpj
YWxsRnJhbWVGb3JUaHJvd1t0MV0sIHQwCisgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFj
aGluZVBDRm9yVGhyb3dbdDFdCisuY29udGludWU6CisgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFu
ZCByZXNldCBQQywgc2luY2UgdGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgdGhlbS4KKyAgICBsb2Fk
cCBDb2RlQmxvY2tbY2ZyXSwgdDEKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25z
W3QxXSwgUEIKKyAgICBtb3ZlIDAsIFBDCisgICAgam1wIGRvbmVMYWJlbAorZW5kCisKKworIyBJ
bnN0cnVjdGlvbiBpbXBsZW1lbnRhdGlvbnMKKworX2xsaW50X29wX2VudGVyOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkaSBDb2Rl
QmxvY2s6Om1fbnVtVmFyc1t0Ml0sIHQyCisgICAgYnRpeiB0MiwgLm9wRW50cnlEb25lCisgICAg
bW92ZSBWYWx1ZVVuZGVmaW5lZCwgdDAKKy5vcEVudGVyTG9vcDoKKyAgICBzdWJpIDEsIHQyCisg
ICAgc3RvcmVwIHQwLCBbY2ZyLCB0MiwgOF0KKyAgICBidGlueiB0MiwgLm9wRW50ZXJMb29wCisu
b3BFbnRlckRvbmU6CisgICAgZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3BfY3JlYXRlX2FjdGl2
YXRpb246CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAK
KyAgICBicG5lcSBbY2ZyLCB0MCwgOF0sIFZhbHVlRW1wdHksIC5vcENyZWF0ZUFjdGl2YXRpb25E
b25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX2FjdGl2YWl0b24p
Cisub3BDcmVhdGVBY3RpdmF0aW9uRG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9v
cF9pbml0X2xhenlfcmVnOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQ
QywgOF0sIHQwCisgICAgc3RvcmVwIFZhbHVlRW1wdHksIFtjZnIsIHQwLCA4XQorICAgIGRpc3Bh
dGNoKDIpCisKKworX2xsaW50X29wX2NyZWF0ZV9hcmd1bWVudHM6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBicG5lcSBbY2ZyLCB0MCwgOF0s
IFZhbHVlRW1wdHksIC5vcENyZWF0ZUFyZ3VtZW50c0RvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9jcmVhdGVfYXJndW1lbnRzKQorLm9wQ3JlYXRlQXJndW1lbnRzRG9uZToK
KyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9jcmVhdGVfdGhpczoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBhc3NlcnROb3RDb25z
dGFudCh0MCkKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCisgICAgYnRwbnogdDAsIHRhZ01h
c2ssIC5vcENyZWF0ZVRoaXNTbG93CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0s
IHQxCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDFd
LCBPYmplY3RUeXBlLCAub3BDcmVhdGVUaGlzU2xvdworICAgIGxvYWRwIEpTT2JqZWN0OjptX2lu
aGVyaXRvcklEW3QwXSwgdDIKKyAgICBidHB6IHQyLCAub3BDcmVhdGVUaGlzU2xvdworICAgIGFs
bG9jYXRlQmFzaWNKU09iamVjdChKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFs
RGF0YTo6anNGaW5hbE9iamVjdENsYXNzSW5mbywgdDIsIHQwLCB0MSwgdDMsIC5vcENyZWF0ZVRo
aXNTbG93KQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDAsIFtjZnIs
IHQxLCA4XQorICAgIGRpc3BhdGNoKDgpCisKKy5vcENyZWF0ZVRoaXNTbG93OgorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV90aGlzKQorICAgIGRpc3BhdGNoKDMpCisK
KworX2xsaW50X29wX2dldF9jYWxsZWU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRp
IDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKKyAgICBzdG9yZXAg
dDEsIFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2NvbnZlcnRf
dGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MAor
ICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLm9wQ29u
dmVydFRoaXNTbG93CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCisgICAg
YmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDBdLCBPYmplY3RU
eXBlLCAub3BDb252ZXJ0VGhpc1Nsb3cKKyAgICBkaXNwYXRjaCgyKQorCisub3BDb252ZXJ0VGhp
c1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY29udmVydF90aGlzKQor
ICAgIGRpc3BhdGNoKDIpCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDEwODk0NikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29ya2luZyBj
b3B5KQpAQCAtMjEsOSArMjEsNDExIEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCisjIEZpcnN0IGNvbWUgdGhlIGNvbW1vbiBwcm90b2NvbHMg
dGhhdCBib3RoIGludGVycHJldGVycyB1c2UuIE5vdGUgdGhhdCBlYWNoCisjIG9mIHRoZXNlIG11
c3QgaGF2ZSBhbiBBU1NFUlQoKSBpbiBMTEludERhdGEuY3BwCisKKyMgVGhlc2UgZGVjbGFyYXRp
b25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmguCitjb25zdCBDYWxsRnJh
bWVIZWFkZXJTaXplID0gNDgKK2NvbnN0IEFyZ3VtZW50Q291bnQgPSAtNDgKK2NvbnN0IENhbGxl
ckZyYW1lID0gLTQwCitjb25zdCBDYWxsZWUgPSAtMzIKK2NvbnN0IFNjb3BlQ2hhaW4gPSAtMjQK
K2NvbnN0IFJldHVyblBDID0gLTE2Citjb25zdCBDb2RlQmxvY2sgPSAtOAorCitjb25zdCBUaGlz
QXJndW1lbnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDgKKworIyBTb21lIHJlZ2lz
dGVyIGNvbnZlbnRpb25zLgoraWYgSlNWQUxVRTY0CisgICAgIyAtIFVzZSBhIHBhaXIgb2YgcmVn
aXN0ZXJzIHRvIHJlcHJlc2VudCB0aGUgUEM6IG9uZSByZWdpc3RlciBmb3IgdGhlCisgICAgIyAg
IGJhc2Ugb2YgdGhlIHJlZ2lzdGVyIGZpbGUsIGFuZCBvbmUgcmVnaXN0ZXIgZm9yIHRoZSBpbmRl
eC4KKyAgICAjIC0gVGhlIFBDIGJhc2UgKG9yIFBCIGZvciBzaG9ydCkgc2hvdWxkIGJlIHN0b3Jl
ZCBpbiB0aGUgY3NyLiBJdCB3aWxsCisgICAgIyAgIGdldCBjbG9iYmVyZWQgb24gY2FsbHMgdG8g
b3RoZXIgSlMgY29kZSwgYnV0IHdpbGwgZ2V0IHNhdmVkIG9uIGNhbGxzCisgICAgIyAgIHRvIEMg
ZnVuY3Rpb25zLgorICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0aGUgSW5zdHJ1Y3Rp
b24qIHJhdGhlciB0aGFuIHRoZSBQQyBpbmRleC4KKyAgICAjICAgVGhpcyByZXF1aXJlcyBhbiBh
ZGQgYmVmb3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCisgICAgY29uc3QgUEMgPSB0NAor
ICAgIGNvbnN0IFBCID0gY3NyMAorICAgIGNvbnN0IHRhZ1R5cGVOdW1iZXIgPSBjc3IxCisgICAg
Y29uc3QgdGFnTWFzayA9IGNzcjIKK2Vsc2UKKyAgICBjb25zdCBQQyA9IHQ0CitlbmQKKworIyBD
b25zdGFudHMgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRhdGlvbi4KK2lmIEJJ
R19FTkRJQU4KKyAgICBjb25zdCBUYWdPZmZzZXQgPSAwCisgICAgY29uc3QgUGF5bG9hZE9mZnNl
dCA9IDQKK2Vsc2UKKyAgICBjb25zdCBUYWdPZmZzZXQgPSA0CisgICAgY29uc3QgUGF5bG9hZE9m
ZnNldCA9IDAKK2VuZAorCisjIFR5cGUgY29uc3RhbnRzLgorY29uc3QgU3RyaW5nVHlwZSA9IDUK
K2NvbnN0IE9iamVjdFR5cGUgPSAxMworCisjIFR5cGUgZmxhZ3MgY29uc3RhbnRzLgorY29uc3Qg
TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDEKK2NvbnN0IEltcGxlbWVudHNIYXNJbnN0YW5jZSA9
IDIKK2NvbnN0IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSA4CisKKyMgQnl0ZWNvZGUg
b3BlcmFuZCBjb25zdGFudHMuCitjb25zdCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCA9IDB4
NDAwMDAwMDAKKworIyBDb2RlIHR5cGUgY29uc3RhbnRzLgorY29uc3QgR2xvYmFsQ29kZSA9IDAK
K2NvbnN0IEV2YWxDb2RlID0gMQorY29uc3QgRnVuY3Rpb25Db2RlID0gMgorCisjIFRoZSBpbnRl
cnByZXRlciBzdGVhbHMgdGhlIHRhZyB3b3JkIG9mIHRoZSBhcmd1bWVudCBjb3VudC4KK2NvbnN0
IExMSW50UmV0dXJuUEMgPSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0CisKKyMgU3RyaW5nIGZs
YWdzLgorY29uc3QgSGFzaEZsYWdzOEJpdEJ1ZmZlciA9IDY0CisKKyMgQWxsb2NhdGlvbiBjb25z
dGFudHMKK2lmIEpTVkFMVUU2NAorICAgIGNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRl
eCA9IDEKK2Vsc2UKKyAgICBjb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAzCitl
bmQKKworIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1ZlY3Rvci5oCitpZiBKU1ZBTFVFNjQKKyAgICBj
b25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorICAgIGNvbnN0IFZlY3RvckJ1ZmZlck9mZnNldCA9
IDgKK2Vsc2UKKyAgICBjb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorICAgIGNvbnN0IFZlY3Rv
ckJ1ZmZlck9mZnNldCA9IDQKK2VuZAorCisKKyMgU29tZSBjb21tb24gdXRpbGl0aWVzLgorbWFj
cm8gY3Jhc2goKQorICAgIHN0b3JlaSAwLCAweGJiYWRiZWVmW10KKyAgICBtb3ZlIDAsIHQwCisg
ICAgY2FsbCB0MAorZW5kCisKK21hY3JvIGFzc2VydChhc3NlcnRpb24pCisgICAgaWYgQVNTRVJU
X0VOQUJMRUQKKyAgICAgICAgYXNzZXJ0aW9uKC5vaykKKyAgICAgICAgY3Jhc2goKQorICAgIC5v
azoKKyAgICBlbmQKK2VuZAorCittYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwo
ZGVzdGluYXRpb25SZWdpc3RlcikKKyAgICBpZiBBUk12NworICAgICAgICBtb3ZlIGxyLCBkZXN0
aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwb3AgZGVz
dGluYXRpb25SZWdpc3RlcgorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKK2VuZAor
CittYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikK
KyAgICBpZiBBUk12NworICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgorICAgIGVsc2lm
IFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBzb3VyY2VSZWdpc3RlcgorICAgIGVsc2UKKyAg
ICAgICAgZXJyb3IKKyAgICBlbmQKK2VuZAorCittYWNybyB0cmFjZUV4ZWN1dGlvbigpCisgICAg
aWYgRVhFQ1VUSU9OX1RSQUNJTkcKKyAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFjZSkK
KyAgICBlbmQKK2VuZAorCittYWNybyBzbG93UGF0aEZvckNhbGwoYWR2YW5jZSwgc2xvd1BhdGgp
CisgICAgY2FsbENhbGxTbG93UGF0aCgKKyAgICAgICAgYWR2YW5jZSwKKyAgICAgICAgc2xvd1Bh
dGgsCisgICAgICAgIG1hY3JvIChjYWxsZWUpCisgICAgICAgICAgICBjYWxsIGNhbGxlZQorICAg
ICAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQorICAgICAgICBlbmQpCitlbmQKKworbWFjcm8g
Y2hlY2tTd2l0Y2hUb0pJVChpbmNyZW1lbnQsIGFjdGlvbikKKyAgICBpZiBKSVRfRU5BQkxFRAor
ICAgICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICAgICAgYmFkZGlzIGluY3JlbWVu
dCwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXJbdDBdLCAuY29udGludWUKKyAgICAg
ICAgYWN0aW9uKCkKKyAgICAuY29udGludWU6CisgICAgZW5kCitlbmQKKworbWFjcm8gY2hlY2tT
d2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBjaGVja1N3aXRjaFRvSklUKAorICAgICAgICAx
MCwKKyAgICAgICAgbWFjcm8gKCkKKyAgICAgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfcmVw
bGFjZSkKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIGFzc2VydE5vdENvbnN0YW50KGluZGV4
KQorICAgIGFzc2VydChtYWNybyAob2spIGJpbHQgaW5kZXgsIEZpcnN0Q29uc3RhbnRSZWdpc3Rl
ckluZGV4LCBvayBlbmQpCitlbmQKKworbWFjcm8gZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0
dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3Rl
cgorICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRh
cmdldFJlZ2lzdGVyCisgICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0Zv
ckNhbGxbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3JvIGZ1bmN0
aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRw
IENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhl
Y3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgRnVuY3Rp
b25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0YXJnZXRSZWdpc3Rlcl0sIHRh
cmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIodGFy
Z2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCitl
bmQKKworbWFjcm8gZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCisgICAg
c3RvcmVwIHNvdXJjZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQorZW5kCisKK21hY3JvIG5vdEZ1
bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQorICAgICMgTm90aGluZyB0byBk
byEKK2VuZAorCisjIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2Rl
LiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKKyMgaW4gdDEuIE1heSBhbHNv
IHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgorbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0
dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQorICAgIHBy
ZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKKyAgICAKKyAgICAjIFNldCB1cCB0aGUg
Y2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KKyAgICBzdG9yZXAgdDIsIFJl
dHVyblBDW2Nmcl0KKyAgICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAgICAgICBjYWxsU2xvd1Bh
dGgodHJhY2VTbG93UGF0aCkKKyAgICBlbmQKKyAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCisgICAg
aWYgSklUX0VOQUJMRUQKKyAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1
dGVDb3VudGVyW3QxXSwgLmNvbnRpbnVlCisgICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2Zy
LCBQQykKKyAgICAgICAgbW92ZSB0MSwgY2ZyCisgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisg
ICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCisgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgICAgICBqbXAgdDAKKyAgICAucmVjb3ZlcjoKKyAgICAg
ICAgY29kZUJsb2NrR2V0dGVyKHQxKQorICAgIC5jb250aW51ZToKKyAgICBlbmQKKyAgICBjb2Rl
QmxvY2tTZXR0ZXIodDEpCisgICAgCisgICAgIyBTZXQgdXAgdGhlIFBDLgorICAgIGlmIEpTVkFM
VUU2NAorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEIKKyAg
ICAgICAgbW92ZSAwLCBQQworICAgIGVsc2UKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2lu
c3RydWN0aW9uc1t0MV0sIFBDCisgICAgZW5kCitlbmQKKworIyBFeHBlY3RzIHRoYXQgQ29kZUJs
b2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KKyMg
TXVzdCBjYWxsIGRpc3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KK21hY3JvIGZ1bmN0aW9u
SW5pdGlhbGl6YXRpb24ocHJvZmlsZUFyZ1NraXApCisgICAgaWYgVkFMVUVfUFJPRklMRVIKKyAg
ICAgICAgIyBQcm9maWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8g
Y2hvaWNlIGJ1dCB0byBkbyB0aGlzLiBUaGlzCisgICAgICAgICMgY29kZSBpcyBwcmV0dHkgaG9y
cmVuZG91cyBiZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5nIGJldHdlZW4KKyAg
ICAgICAgIyBhcmd1bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUg
YSBzaW1wbGUgbG9vcC1kb3duLXRvLXplcm8KKyAgICAgICAgIyBsb29wLCBhbmQgdGhlIGRlc2ly
ZSB0byB1c2Ugb25seSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2VydmUgdGhlIFBDIGFu
ZAorICAgICAgICAjIHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUg
c2hvdWxkIGJlIHJld3JpdHRlbiBpbiBhIG1vcmUKKyAgICAgICAgIyBvcHRpbWFsIHdheSBmb3Ig
YXJjaGl0ZWN0dXJlcyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJs
ZQorICAgICAgICAjIGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnByZXRlci4KKyAgICAg
ICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAorICAgICAgICBhZGRp
IC1wcm9maWxlQXJnU2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0
aGUgcGVlcGhvbGUKKyAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVxIHQwLCAwLCBvayBl
bmQpCisgICAgICAgIGJ0aXogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCisgICAgICAgIGxvYWRw
IENvZGVCbG9jazo6bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRb
dDFdLCB0MworICAgICAgICBtdWxpIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFh
aGhoaCEgTmVlZCBzdHJlbmd0aCByZWR1Y3Rpb24hCisgICAgICAgIG5lZ2kgdDAKKyAgICAgICAg
bHNoaWZ0aSAzLCB0MAorICAgICAgICBhZGRwIHQyLCB0MworICAgIC5hcmd1bWVudFByb2ZpbGVM
b29wOgorICAgICAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGxvYWRwIFRoaXNBcmd1bWVu
dE9mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAg
ICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQzCisgICAgICAgICAgICBzdG9yZXAgdDIsIHBy
b2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNr
ZXRzW3QzXQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZz
ZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgorICAg
ICAgICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MworICAgICAgICAgICAgc3RvcmVp
IHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6
Om1fYnVja2V0cyArIFRhZ09mZnNldFt0M10KKyAgICAgICAgICAgIGxvYWRpIFRoaXNBcmd1bWVu
dE9mZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBd
LCB0MgorICAgICAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1
ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRPZmZzZXRbdDNdCisg
ICAgICAgIGVuZAorICAgICAgICBiYWRkaW56IDgsIHQwLCAuYXJndW1lbnRQcm9maWxlTG9vcAor
ICAgIC5hcmd1bWVudFByb2ZpbGVEb25lOgorICAgIGVuZAorICAgICAgICAKKyAgICAjIENoZWNr
IHN0YWNrIGhlaWdodC4KKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2FsbGVlUmVnaXN0ZXJz
W3QxXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQyCisgICAg
bG9hZHAgSlNHbG9iYWxEYXRhOjppbnRlcnByZXRlclt0Ml0sIHQyICAgIyBGSVhNRTogQ2FuIGdl
dCB0byB0aGUgUmVnaXN0ZXJGaWxlIGZyb20gdGhlIEpJVFN0YWNrRnJhbWUKKyAgICBsc2hpZnRp
IDMsIHQwCisgICAgYWRkcCB0MCwgY2ZyLCB0MAorICAgIGJwYWVxIEludGVycHJldGVyOjptX3Jl
Z2lzdGVyRmlsZSArIFJlZ2lzdGVyRmlsZTo6bV9lbmRbdDJdLCB0MCwgLnN0YWNrSGVpZ2h0T0sK
KworICAgICMgU3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8gY2FsbCBhIHNsb3df
cGF0aC4KKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2ZpbGVfY2hlY2spCisuc3Rh
Y2tIZWlnaHRPSzoKK2VuZAorCittYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNz
SW5kZXgsIGNsYXNzSW5mb09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3Jh
dGNoMiwgc2xvd0Nhc2UpCisgICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKKyAgICAgICAgam1w
IHNsb3dDYXNlCisgICAgZWxzZQorICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0K
KyAgICAgICAgICAgIEpTR2xvYmFsRGF0YTo6aGVhcCArCisgICAgICAgICAgICBIZWFwOjptX29i
amVjdFNwYWNlICsKKyAgICAgICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKKyAg
ICAgICAgICAgIE1hcmtlZFNwYWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKworICAg
ICAgICAgICAgc2l6ZUNsYXNzSW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCisgICAgICAg
IAorICAgICAgICAjIEZJWE1FOiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9h
ZCBmcm9tIHRoZSBzdGFjay4KKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gx
CisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRj
aDEKKyAgICAgICAgCisgICAgICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0
LiAgICAKKyAgICAgICAgbG9hZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRv
cjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gxXSwgcmVzdWx0CisgICAgICAgIGJ0cHogcmVzdWx0
LCBzbG93Q2FzZQorICAgICAgICAKKyAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRo
ZSBmcmVlIGxpc3QuCisgICAgICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgorICAgICAgICBz
dG9yZXAgc2NyYXRjaDIsIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1f
Zmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0KKyAgICAKKyAgICAgICAgIyBJbml0aWFsaXplIHRoZSBv
YmplY3QuCisgICAgICAgIGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gy
CisgICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgW3Jlc3VsdF0KKyAgICAgICAgc3RvcmVwIHN0cnVj
dHVyZSwgSlNDZWxsOjptX3N0cnVjdHVyZVtyZXN1bHRdCisgICAgICAgIHN0b3JlcCAwLCBKU09i
amVjdDo6bV9pbmhlcml0b3JJRFtyZXN1bHRdCisgICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0
LCByZXN1bHQsIHNjcmF0Y2gxCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1f
cHJvcGVydHlTdG9yYWdlW3Jlc3VsdF0KKyAgICBlbmQKK2VuZAorCisKKyMgSW5kaWNhdGUgdGhl
IGJlZ2lubmluZyBvZiBMTEludC4KK19sbGludF9iZWdpbjoKKyAgICBjcmFzaCgpCisKKworX2xs
aW50X3Byb2dyYW1fcHJvbG9ndWU6CisgICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tH
ZXR0ZXIsIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxp
bnRfdHJhY2VfcHJvbG9ndWUpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfZXZhbF9wcm9s
b2d1ZToKKyAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rp
b25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1
ZSkKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1
ZToKKyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9u
Q29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsLCBfbGxp
bnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NhbGwpCisuZnVuY3Rpb25Gb3JDYWxsQmVn
aW46CisgICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigwKQorICAgIGRpc3BhdGNoKDApCisgICAg
CisKK19sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlOgorICAgIHByb2xvZ3Vl
KGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1Nl
dHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0LCBfbGxpbnRfdHJh
Y2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCkKKy5mdW5jdGlvbkZvckNvbnN0cnVj
dEJlZ2luOgorICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMSkKKyAgICBkaXNwYXRjaCgwKQor
ICAgIAorCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6CisgICAgcHJvbG9n
dWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRl
ciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eUNoZWNrLCBfbGxpbnRf
dHJhY2VfYXJpdHlDaGVja19mb3JfY2FsbCkKKyAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0
aW9uRm9yQ2FsbEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykKKworCitf
bGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjazoKKyAgICBwcm9sb2d1ZShm
dW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0
ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eUNoZWNrLCBf
bGxpbnRfdHJhY2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQorICAgIGZ1bmN0aW9uQXJpdHlD
aGVjayguZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1
Y3RfYXJpdHlDaGVjaykKKworCisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNwZWNpZmljIGNvZGUu
CiBpZiBKU1ZBTFVFNjQKICAgICBpbmNsdWRlIExvd0xldmVsSW50ZXJwcmV0ZXI2NAogZWxzZQog
ICAgIGluY2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0CiBlbmQKIAorCisjIExhc3RseSwg
bWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBh
bGwgb3Bjb2Rlcy4KKyMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2lu
ZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKKyMgYXMgbXVjaC4KKworbWFjcm8gbm90
U3VwcG9ydGVkKCkKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBjcmFzaCgpCisgICAg
ZWxzZQorICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3Np
YmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCisgICAgICAgICMgZW5zdXJlIHRoYXQgdGhlcmUg
aXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMuIElmIG11bHRpcGxlCisgICAgICAg
ICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25lIHRo
YXQgaXMgbW9zdAorICAgICAgICAjIGxpa2VseSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhh
bHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCisgICAgICAgICMgaW5zdHJ1Y3Rpb24g
b24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGludDMK
KyAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12Nywg
d2hpY2ggaXMgMiBieXRlcy4pCisgICAgICAgIGJyZWFrCisgICAgZW5kCitlbmQKKworX2xsaW50
X29wX2dldF9hcnJheV9sZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dl
dF9ieV9pZF9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRf
Z2VuZXJpYzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG86
CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9zZWxmOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfc3RyaW5nX2xlbmd0aDoKKyAgICBub3RTdXBw
b3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6CisgICAgbm90U3VwcG9ydGVk
KCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgorICAgIG5vdFN1cHBvcnRlZCgpCisK
K19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCisK
KyMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KK19sbGludF9lbmQ6CisgICAgY3Jhc2goKQor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgkocmV2aXNp
b24gMTA4OTQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2OSw3ICs0NjksNyBAQCBkZWYgYXJtVjdMb3dlck1hbGZvcm1l
ZEltbWVkaWF0ZXMobGlzdCkKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgIG5ld0xpc3QgPDwgbm9kZS5hcm1WN0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlc1JlY3Vyc2Uo
bmV3TGlzdCkKICAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAgICAgIHdoZW4gIm11bGkiCisg
ICAgICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiCiAgICAgICAgICAgICAgICAgaWYgbm9kZS5v
cGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1w
Lm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQogICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IElu
c3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0s
IHRtcF0pCkBAIC01MzUsOSArNTM1LDkgQEAgZGVmIGFybVY3TG93ZXJNaXNwbGFjZWRBZGRyZXNz
ZXMobGlzdCkKICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAg
cG9zdEluc3RydWN0aW9ucyA9IFtdCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCi0gICAg
ICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIsICJhbmRwIiwgImxz
aGlmdGkiLCAibXVsaSIsICJuZWdpIiwgIm5vdGkiLCAib3JpIiwgIm9yaXMiLAotICAgICAgICAg
ICAgICAgICJvcnAiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJzdWJpIiwgInN1YnAiLCAic3Vi
aXMiLCAieG9yaSIsICJ4b3JwIiwgL15iaS8sIC9eYnAvLCAvXmJ0aS8sCi0gICAgICAgICAgICAg
ICAgL15idHAvLCAvXmNpLywgL15jcC8sIC9edGkvCisgICAgICAgICAgICB3aGVuICJhZGRpIiwg
ImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAibXVsaSIsICJtdWxw
IiwgIm5lZ2kiLCAibm90aSIsICJvcmkiLAorICAgICAgICAgICAgICAgICJvcmlzIiwgIm9ycCIs
ICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInN1YmkiLCAic3VicCIsICJzdWJpcyIsICJ4b3JpIiwg
InhvcnAiLCAvXmJpLywgL15icC8sCisgICAgICAgICAgICAgICAgL15idGkvLCAvXmJ0cC8sIC9e
Y2kvLCAvXmNwLywgL150aS8KICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9u
Lm5ldyhub2RlLmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm9kZS5vcGNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJtVjdBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2Rl
Lm9wZXJhbmRzLCAiaSIpKQpAQCAtNzk4LDcgKzc5OCw3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAg
ICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJhc3JzIiwgImFzcnMiLCBvcGVyYW5kcykKICAg
ICAgICAgd2hlbiAidXJzaGlmdGkiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJsc3Jz
IiwgImxzcnMiLCBvcGVyYW5kcykKLSAgICAgICAgd2hlbiAibXVsaSIKKyAgICAgICAgd2hlbiAi
bXVsaSIsICJtdWxwIgogICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAyIG9yIG9wZXJh
bmRzWzBdID09IG9wZXJhbmRzWzJdIG9yIG9wZXJhbmRzWzFdID09IG9wZXJhbmRzWzJdCiAgICAg
ICAgICAgICAgICAgZW1pdEFybVY3KCJtdWxzIiwgb3BlcmFuZHMpCiAgICAgICAgICAgICBlbHNl
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCShyZXZpc2lvbiAx
MDg5NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIJKHdvcmtp
bmcgY29weSkKQEAgLTQ3OSw2ICs0NzksMTAgQEAgY2xhc3MgVmFyaWFibGUgPCBOb0NoaWxkcmVu
CiAgICAgZGVmIGR1bXAKICAgICAgICAgbmFtZQogICAgIGVuZAorICAgIAorICAgIGRlZiBpbnNw
ZWN0CisgICAgICAgICI8dmFyaWFibGUgI3tuYW1lfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9PiIK
KyAgICBlbmQKIGVuZAogCiBjbGFzcyBBZGRyZXNzIDwgTm9kZQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHJldmlzaW9uIDEwODk0NikKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCSh3b3JraW5nIGNv
cHkpCkBAIC00OCw4ICs0OCwxMiBAQCBCQUNLRU5EX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEo
JyArIEJBCiAKIGNsYXNzIE5vZGUKICAgICBkZWYgbG93ZXIobmFtZSkKLSAgICAgICAgJGFjdGl2
ZUJhY2tlbmQgPSBuYW1lCi0gICAgICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAgICAgIGJl
Z2luCisgICAgICAgICAgICAkYWN0aXZlQmFja2VuZCA9IG5hbWUKKyAgICAgICAgICAgIHNlbmQo
Imxvd2VyIiArIG5hbWUpCisgICAgICAgIHJlc2N1ZSA9PiBlCisgICAgICAgICAgICByYWlzZSAi
R290IGVycm9yICN7ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCiAgICAg
ZW5kCiBlbmQKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1
Y3Rpb25zLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L2luc3RydWN0aW9ucy5yYgkocmV2aXNpb24gMTA4OTQ2KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiAr
MTU5LDcgQEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgImJwbHQiLAogICAgICAiYnBsdGVx
IiwKICAgICAgImFkZHAiLAorICAgICAibXVscCIsCiAgICAgICJhbmRwIiwKICAgICAgIm9ycCIs
CiAgICAgICJzdWJwIiwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jl
Z2lzdGVycy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9yZWdpc3RlcnMucmIJKHJldmlzaW9uIDEwODk0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsMTIg
QEAgR1BSUyA9CiAgICAgICJyMCIsCiAgICAgICJyMSIsCiAgICAgICJzcCIsCi0gICAgICJsciIK
KyAgICAgImxyIiwKKyAgICAgCisgICAgICMgNjQtYml0IG9ubHkgcmVnaXN0ZXJzOgorICAgICAi
Y3NyMCIsICAjIHIxMAorICAgICAiY3NyMSIsICAjIHIxNCwgdGFnIHR5cGUgbnVtYmVyIHJlZ2lz
dGVyCisgICAgICJjc3IyIiAgICMgcjE1LCB0YWcgbWFzayByZWdpc3RlcgogICAgIF0KIAogRlBS
UyA9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCShyZXZpc2lv
biAxMDg5NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDggKzM3LDEwIEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAg
Y2FzZSBuYW1lCiAgICAgICAgIHdoZW4gInQwIiwgImEwIiwgInIwIiwgInQxIiwgImExIiwgInIx
IiwgInQyIiwgInQzIgogICAgICAgICAgICAgdHJ1ZQotICAgICAgICB3aGVuICJ0NCIsICJjZnIi
CisgICAgICAgIHdoZW4gImNmciIsICJ0dG5yIiwgInRtciIKICAgICAgICAgICAgIGZhbHNlCisg
ICAgICAgIHdoZW4gInQ0IiwgInQ1IgorICAgICAgICAgICAgaXNYNjQKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZW5kCkBAIC0xMTIsMTcgKzExNCwzMCBAQCBjbGFz
cyBSZWdpc3RlcklECiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVuZAogICAg
ICAgICB3aGVuICJjZnIiCi0gICAgICAgICAgICBjYXNlIGtpbmQKLSAgICAgICAgICAgIHdoZW4g
OmJ5dGUKLSAgICAgICAgICAgICAgICAiJWRpbCIKLSAgICAgICAgICAgIHdoZW4gOmhhbGYKLSAg
ICAgICAgICAgICAgICAiJWRpIgotICAgICAgICAgICAgd2hlbiA6aW50Ci0gICAgICAgICAgICAg
ICAgIiVlZGkiCi0gICAgICAgICAgICB3aGVuIDpwdHIKLSAgICAgICAgICAgICAgICBpc1g2NCA/
ICIlcmRpIiA6ICIlZWRpIgorICAgICAgICAgICAgaWYgaXNYNjQKKyAgICAgICAgICAgICAgICBj
YXNlIGtpbmQKKyAgICAgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgICAg
ICIlcjEzdyIKKyAgICAgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAgICAgICAg
IiVyMTNkIgorICAgICAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICAgICAi
JXIxMyIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisg
ICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmFp
c2UKKyAgICAgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgICAgICB3aGVuIDpieXRl
CisgICAgICAgICAgICAgICAgICAgICIlZGlsIgorICAgICAgICAgICAgICAgIHdoZW4gOmhhbGYK
KyAgICAgICAgICAgICAgICAgICAgIiVkaSIKKyAgICAgICAgICAgICAgICB3aGVuIDppbnQKKyAg
ICAgICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAgICAgICAgICAgd2hlbiA6cHRyCisgICAg
ICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVuZAogICAg
ICAgICB3aGVuICJzcCIKICAgICAgICAgICAgIGNhc2Uga2luZApAQCAtMTM3LDYgKzE1Miw0OCBA
QCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmFp
c2UKICAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJ0NSIKKyAgICAgICAgICAgIHJhaXNl
ICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9
IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgd2hlbiA6
Ynl0ZQorICAgICAgICAgICAgICAgICIlZGlsIgorICAgICAgICAgICAgd2hlbiA6aGFsZgorICAg
ICAgICAgICAgICAgICIlZGkiCisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAg
ICAiJWVkaSIKKyAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICIlcmRpIgor
ICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNzcjAiCisgICAgICAgICAgICByYWlzZSAi
Q2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIg
dW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmhh
bGYKKyAgICAgICAgICAgICAgICAiJXIxMHciCisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAg
ICAgICAgICAgICAiJXIxMGQiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAg
ICAiJXIxMCIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjc3IxIgorICAgICAgICAg
ICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdp
blN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAg
ICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVyMTR3IgorICAgICAgICAgICAgd2hlbiA6
aW50CisgICAgICAgICAgICAgICAgIiVyMTRkIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAg
ICAgICAgICAgICAgIiVyMTQiCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3NyMiIK
KyAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAj
e2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAor
ICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICIlcjE1dyIKKyAgICAgICAg
ICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlcjE1ZCIKKyAgICAgICAgICAgIHdoZW4g
OnB0cgorICAgICAgICAgICAgICAgICIlcjE1IgorICAgICAgICAgICAgZW5kCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgWDg2IGF0ICN7
Y29kZU9yaWdpblN0cmluZ30iCiAgICAgICAgIGVuZApAQCAtNDU4LDYgKzUxNSwxNiBAQCBjbGFz
cyBJbnN0cnVjdGlvbgogICAgICAgICBlbmQKICAgICBlbmQKICAgICAKKyAgICBkZWYgaGFuZGxl
WDg2TXVsKGtpbmQpCisgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNb
MF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgImltdWwje3g4NlN1ZmZp
eChraW5kKX0gI3t4ODZPcGVyYW5kcyhraW5kLCBraW5kLCBraW5kKX0iCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUgcGVlcGhvbGUgaW4gY2FzZSB0aGUg
bGVmdCBvcGVyYW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncworICAgICAgICAgICAgIyBhIHBvd2Vy
IG9mIHR3by4KKyAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJpbXVsI3t4ODZTdWZmaXgoa2luZCl9
Iiwga2luZCkKKyAgICAgICAgZW5kCisgICAgZW5kCisgICAgCiAgICAgZGVmIGhhbmRsZU1vdmUK
ICAgICAgICAgaWYgSW1tZWRpYXRlLm5ldyhuaWwsIDApID09IG9wZXJhbmRzWzBdIGFuZCBvcGVy
YW5kc1sxXS5pc19hPyBSZWdpc3RlcklECiAgICAgICAgICAgICAkYXNtLnB1dHMgInhvciN7eDg2
U3VmZml4KDpwdHIpfSAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRz
WzFdLng4Nk9wZXJhbmQoOnB0cil9IgpAQCAtNDkwLDEzICs1NTcsOSBAQCBjbGFzcyBJbnN0cnVj
dGlvbgogICAgICAgICB3aGVuICJsc2hpZnRpIgogICAgICAgICAgICAgaGFuZGxlWDg2U2hpZnQo
InNhbGwiLCA6aW50KQogICAgICAgICB3aGVuICJtdWxpIgotICAgICAgICAgICAgaWYgb3BlcmFu
ZHMuc2l6ZSA9PSAzIGFuZCBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKLSAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImltdWxsICN7eDg2T3BlcmFuZHMoOmludCwgOmludCwgOmludCl9Igot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUg
cGVlcGhvbGUgaW4gY2FzZSB0aGUgbGVmdCBvcGVyYW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncwot
ICAgICAgICAgICAgICAgICMgYSBwb3dlciBvZiB0d28uCi0gICAgICAgICAgICAgICAgaGFuZGxl
WDg2T3AoImltdWxsIiwgOmludCkKLSAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgaGFuZGxl
WDg2TXVsKDppbnQpCisgICAgICAgIHdoZW4gIm11bHAiCisgICAgICAgICAgICBoYW5kbGVYODZN
dWwoOnB0cikKICAgICAgICAgd2hlbiAibmVnaSIKICAgICAgICAgICAgICRhc20ucHV0cyAibmVn
bCAje3g4Nk9wZXJhbmRzKDppbnQpfSIKICAgICAgICAgd2hlbiAibm90aSIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129143</attachid>
            <date>2012-02-27 17:23:21 -0800</date>
            <delta_ts>2012-02-28 17:14:57 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_4.diff</filename>
            <type>text/plain</type>
            <size>62981</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5MDQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTAyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTItMDItMjcgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBPbGQgSklUJ3Mgc3R5bGUgb2YgSlNWQUxVRTY0
IHN0cmljdCBlcXVhbGl0eSBpcyBzdWJ0bHkgd3JvbmcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShy
ZXZpc2lvbiAxMDkwMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtNzAsMjggKzcwLDYgQEAKICMg
QmVsb3cgd2UgaGF2ZSBhIGJ1bmNoIG9mIGNvbnN0YW50IGRlY2xhcmF0aW9ucy4gRWFjaCBjb25z
dGFudCBtdXN0IGhhdmUKICMgYSBjb3JyZXNwb25kaW5nIEFTU0VSVCgpIGluIExMSW50RGF0YS5j
cHAuCiAKLSMgVGhlc2UgZGVjbGFyYXRpb25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0
ZXJGaWxlLmguCi1jb25zdCBDYWxsRnJhbWVIZWFkZXJTaXplID0gNDgKLWNvbnN0IEFyZ3VtZW50
Q291bnQgPSAtNDgKLWNvbnN0IENhbGxlckZyYW1lID0gLTQwCi1jb25zdCBDYWxsZWUgPSAtMzIK
LWNvbnN0IFNjb3BlQ2hhaW4gPSAtMjQKLWNvbnN0IFJldHVyblBDID0gLTE2Ci1jb25zdCBDb2Rl
QmxvY2sgPSAtOAotCi1jb25zdCBUaGlzQXJndW1lbnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVy
U2l6ZSAtIDgKLQotIyBEZWNsYXJlIHNvbWUgYWxpYXNlcyBmb3IgdGhlIHJlZ2lzdGVycyB3ZSB3
aWxsIHVzZS4KLWNvbnN0IFBDID0gdDQKLQotIyBPZmZzZXRzIG5lZWRlZCBmb3IgcmVhc29uaW5n
IGFib3V0IHZhbHVlIHJlcHJlc2VudGF0aW9uLgotaWYgQklHX0VORElBTgotICAgIGNvbnN0IFRh
Z09mZnNldCA9IDAKLSAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gNAotZWxzZQotICAgIGNvbnN0
IFRhZ09mZnNldCA9IDQKLSAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gMAotZW5kCiAKICMgVmFs
dWUgcmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgogY29uc3QgSW50MzJUYWcgPSAtMQpAQCAtMTAz
LDcxICs4MSw4IEBAIGNvbnN0IEVtcHR5VmFsdWVUYWcgPSAtNgogY29uc3QgRGVsZXRlZFZhbHVl
VGFnID0gLTcKIGNvbnN0IExvd2VzdFRhZyA9IERlbGV0ZWRWYWx1ZVRhZwogCi0jIFR5cGUgY29u
c3RhbnRzLgotY29uc3QgU3RyaW5nVHlwZSA9IDUKLWNvbnN0IE9iamVjdFR5cGUgPSAxMwotCi0j
IFR5cGUgZmxhZ3MgY29uc3RhbnRzLgotY29uc3QgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDEK
LWNvbnN0IEltcGxlbWVudHNIYXNJbnN0YW5jZSA9IDIKLWNvbnN0IEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UgPSA4Ci0KLSMgSGVhcCBhbGxvY2F0aW9uIGNvbnN0YW50cy4KLWNvbnN0IEpT
RmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDMKLQotIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0
YW50cy4KLWNvbnN0IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gMHg0MDAwMDAwMAotCi0j
IENvZGUgdHlwZSBjb25zdGFudHMuCi1jb25zdCBHbG9iYWxDb2RlID0gMAotY29uc3QgRXZhbENv
ZGUgPSAxCi1jb25zdCBGdW5jdGlvbkNvZGUgPSAyCi0KLSMgVGhlIGludGVycHJldGVyIHN0ZWFs
cyB0aGUgdGFnIHdvcmQgb2YgdGhlIGFyZ3VtZW50IGNvdW50LgotY29uc3QgTExJbnRSZXR1cm5Q
QyA9IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXQKLQotIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1Zl
Y3Rvci5oLgotY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKLWNvbnN0IFZlY3RvckJ1ZmZlck9m
ZnNldCA9IDQKLQotIyBTdHJpbmcgZmxhZ3MuCi1jb25zdCBIYXNoRmxhZ3M4Qml0QnVmZmVyID0g
NjQKIAogIyBVdGlsaXRpZXMKLW1hY3JvIGNyYXNoKCkKLSAgICBzdG9yZWkgMCwgMHhiYmFkYmVl
ZltdCi0gICAgbW92ZSAwLCB0MAotICAgIGNhbGwgdDAKLWVuZAotCi1tYWNybyBhc3NlcnQoYXNz
ZXJ0aW9uKQotICAgIGlmIEFTU0VSVF9FTkFCTEVECi0gICAgICAgIGFzc2VydGlvbigub2spCi0g
ICAgICAgIGNyYXNoKCkKLSAgICAub2s6Ci0gICAgZW5kCi1lbmQKLQotbWFjcm8gcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCi0gICAgaWYgQVJNdjcK
LSAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2lmIFg4NgotICAg
ICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAg
ICBlbmQKLWVuZAotCi1tYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3Vy
Y2VSZWdpc3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBs
cgotICAgIGVsc2lmIFg4NgotICAgICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVyCi0gICAgZWxzZQot
ICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KIG1hY3JvIGRpc3BhdGNoKGFkdmFuY2UpCiAg
ICAgYWRkcCBhZHZhbmNlICogNCwgUEMKICAgICBqbXAgW1BDXQpAQCAtMjIwLDggKzEzNSw4IEBA
IG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywKICAgICBjYWxsIGZ1bmN0
aW9uCiBlbmQKIAotbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKLSAgICBjQ2FsbDIoc2xv
d19wYXRoLCBjZnIsIFBDKQorbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGNDYWxs
MihzbG93UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQwLCBQQwogICAgIG1vdmUgdDEsIGNmcgog
ZW5kCkBAIC0yNDUsNDAgKzE2MCwxNSBAQCBtYWNybyB0cmFjZVZhbHVlKGZyb21XaGVyZSwgb3Bl
cmFuZCkKICAgICBtb3ZlIHQxLCBjZnIKIGVuZAogCi1tYWNybyB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKLSAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFj
ZSkKLSAgICBlbmQKLWVuZAotCi0jIENhbGwgYSBzbG93X3BhdGggZm9yIGNhbGwgb3Bjb2Rlcy4K
LW1hY3JvIGNhbGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd19wYXRoLCBhY3Rpb24pCisjIENh
bGwgYSBzbG93UGF0aCBmb3IgY2FsbCBvcGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChh
ZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9uKQogICAgIGFkZHAgYWR2YW5jZSAqIDQsIFBDLCB0MAog
ICAgIHN0b3JlcCB0MCwgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCi0gICAgY0NhbGwy
KHNsb3dfcGF0aCwgY2ZyLCBQQykKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAg
bW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAKLW1hY3JvIHNsb3dQYXRoRm9yQ2Fs
bChhZHZhbmNlLCBzbG93X3BhdGgpCi0gICAgY2FsbENhbGxTbG93UGF0aCgKLSAgICAgICAgYWR2
YW5jZSwKLSAgICAgICAgc2xvd19wYXRoLAotICAgICAgICBtYWNybyAoY2FsbGVlKQotICAgICAg
ICAgICAgY2FsbCBjYWxsZWUKLSAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLSAgICAg
ICAgZW5kKQotZW5kCi0KLW1hY3JvIGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24p
Ci0gICAgaWYgSklUX0VOQUJMRUQKLSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0g
ICAgICAgIGJhZGRpcyBpbmNyZW1lbnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVy
W3QwXSwgLmNvbnRpbnVlCi0gICAgICAgIGFjdGlvbigpCi0gICAgLmNvbnRpbnVlOgotICAgIGVu
ZAotZW5kCi0KIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKICAgICBjaGVja1N3aXRj
aFRvSklUKAogICAgICAgICAxLApAQCAtMjkzLDE4ICsxODMsNiBAQCBtYWNybyBjaGVja1N3aXRj
aFRvSklURm9yTG9vcCgpCiAgICAgICAgIGVuZCkKIGVuZAogCi1tYWNybyBjaGVja1N3aXRjaFRv
SklURm9yRXBpbG9ndWUoKQotICAgIGNoZWNrU3dpdGNoVG9KSVQoCi0gICAgICAgIDEwLAotICAg
ICAgICBtYWNybyAoKQotICAgICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQot
ICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gYXNzZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCi0gICAg
YXNzZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgs
IG9rIGVuZCkKLWVuZAotCiAjIEluZGV4LCB0YWcsIGFuZCBwYXlsb2FkIG11c3QgYmUgZGlmZmVy
ZW50IHJlZ2lzdGVycy4gSW5kZXggaXMgbm90CiAjIGNoYW5nZWQuCiBtYWNybyBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKGluZGV4LCB0YWcsIHBheWxvYWQpCkBAIC0zODYsMTA5ICsyNjQsOCBAQCBt
YWNybyB2YWx1ZVByb2ZpbGUodGFnLCBwYXlsb2FkLCBwcm9maWxlCiBlbmQKIAogCi0jIEluZGlj
YXRlIHRoZSBiZWdpbm5pbmcgb2YgTExJbnQuCi1fbGxpbnRfYmVnaW46Ci0gICAgY3Jhc2goKQot
Ci0KICMgRW50cnlwb2ludHMgaW50byB0aGUgaW50ZXJwcmV0ZXIKIAotbWFjcm8gZnVuY3Rpb25G
b3JDYWxsQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtj
ZnJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0
YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRh
YmxlOjptX2NvZGVCbG9ja0ZvckNhbGxbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3Rlcgot
ZW5kCi0KLW1hY3JvIGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJl
Z2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRw
IEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVy
Ci0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0
YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQKLQotbWFjcm8gbm90RnVuY3Rpb25D
b2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHRhcmdldFJlZ2lzdGVyCi1lbmQKLQotbWFjcm8gZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291
cmNlUmVnaXN0ZXIpCi0gICAgc3RvcmVwIHNvdXJjZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQot
ZW5kCi0KLW1hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQot
ICAgICMgTm90aGluZyB0byBkbyEKLWVuZAotCi0jIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWly
ZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoK
LSMgaW4gdDEuIE1heSBhbHNvIHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgotbWFjcm8gcHJv
bG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFj
ZVNsb3dQYXRoKQotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAK
LSAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4K
LSAgICBzdG9yZXAgdDIsIFJldHVyblBDW2Nmcl0KLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwot
ICAgICAgICBjYWxsU2xvd1BhdGgodHJhY2VTbG93UGF0aCkKLSAgICBlbmQKLSAgICBjb2RlQmxv
Y2tHZXR0ZXIodDEpCi0gICAgaWYgSklUX0VOQUJMRUQKLSAgICAgICAgYmFkZGlzIDUsIENvZGVC
bG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyW3QxXSwgLmNvbnRpbnVlCi0gICAgICAgIGNDYWxs
Mihvc3JTbG93UGF0aCwgY2ZyLCBQQykKLSAgICAgICAgbW92ZSB0MSwgY2ZyCi0gICAgICAgIGJ0
cHogdDAsIC5yZWNvdmVyCi0gICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgICAg
IHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQotICAgICAgICBqbXAgdDAKLSAg
ICAucmVjb3ZlcjoKLSAgICAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQotICAgIC5jb250aW51ZToK
LSAgICBlbmQKLSAgICBjb2RlQmxvY2tTZXR0ZXIodDEpCi0gICAgCi0gICAgIyBTZXQgdXAgdGhl
IFBDLgotICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQwotZW5kCi0K
LSMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1
ZSgpIGxlYXZlcyBiZWhpbmQuCi0jIE11c3QgY2FsbCBkaXNwYXRjaCgwKSBhZnRlciBjYWxsaW5n
IHRoaXMuCi1tYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTa2lwKQotICAg
IGlmIFZBTFVFX1BST0ZJTEVSCi0gICAgICAgICMgUHJvZmlsZSB0aGUgYXJndW1lbnRzLiBVbmZv
cnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIGNob2ljZSBidXQgdG8gZG8gdGhpcy4gVGhpcwotICAgICAg
ICAjIGNvZGUgaXMgcHJldHR5IGhvcnJlbmRvdXMgYmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBp
biBvcmRlcmluZyBiZXR3ZWVuCi0gICAgICAgICMgYXJndW1lbnRzIGFuZCB2YWx1ZSBwcm9maWxl
cywgdGhlIGRlc2lyZSB0byBoYXZlIGEgc2ltcGxlIGxvb3AtZG93bi10by16ZXJvCi0gICAgICAg
ICMgbG9vcCwgYW5kIHRoZSBkZXNpcmUgdG8gdXNlIG9ubHkgdGhyZWUgcmVnaXN0ZXJzIHNvIGFz
IHRvIHByZXNlcnZlIHRoZSBQQyBhbmQKLSAgICAgICAgIyB0aGUgY29kZSBibG9jay4gSXQgaXMg
bGlrZWx5IHRoYXQgdGhpcyBjb2RlIHNob3VsZCBiZSByZXdyaXR0ZW4gaW4gYSBtb3JlCi0gICAg
ICAgICMgb3B0aW1hbCB3YXkgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBoYXZlIG1vcmUgdGhhbiBm
aXZlIHJlZ2lzdGVycyBhdmFpbGFibGUKLSAgICAgICAgIyBmb3IgYXJiaXRyYXJ5IHVzZSBpbiB0
aGUgaW50ZXJwcmV0ZXIuCi0gICAgICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJz
W3QxXSwgdDAKLSAgICAgICAgYWRkaSAtcHJvZmlsZUFyZ1NraXAsIHQwICMgVXNlIGFkZGkgYmVj
YXVzZSB0aGF0J3Mgd2hhdCBoYXMgdGhlIHBlZXBob2xlCi0gICAgICAgIGFzc2VydChtYWNybyAo
b2spIGJpZ3RlcSB0MCwgMCwgb2sgZW5kKQotICAgICAgICBidGl6IHQwLCAuYXJndW1lbnRQcm9m
aWxlRG9uZQotICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fYXJndW1lbnRWYWx1ZVByb2ZpbGVz
ICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QxXSwgdDMKLSAgICAgICAgbXVsaSBzaXplb2YgVmFsdWVQ
cm9maWxlLCB0MCwgdDIgIyBBYWFhYWhoaGghIE5lZWQgc3RyZW5ndGggcmVkdWN0aW9uIQotICAg
ICAgICBuZWdpIHQwCi0gICAgICAgIGxzaGlmdGkgMywgdDAKLSAgICAgICAgYWRkcCB0MiwgdDMK
LSAgICAuYXJndW1lbnRQcm9maWxlTG9vcDoKLSAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zm
c2V0ICsgVGFnT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKLSAg
ICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MwotICAgICAgICBzdG9yZWkgdDIsIHBy
b2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNr
ZXRzICsgVGFnT2Zmc2V0W3QzXQotICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBQ
YXlsb2FkT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKLSAgICAg
ICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1
ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRPZmZzZXRbdDNdCi0gICAgICAgIGJhZGRpbnog
OCwgdDAsIC5hcmd1bWVudFByb2ZpbGVMb29wCi0gICAgLmFyZ3VtZW50UHJvZmlsZURvbmU6Ci0g
ICAgZW5kCi0gICAgICAgIAotICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgotICAgIGxvYWRpIENv
ZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAotICAgIGxvYWRwIENvZGVCbG9j
azo6bV9nbG9iYWxEYXRhW3QxXSwgdDIKLSAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmludGVycHJl
dGVyW3QyXSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdpc3RlckZpbGUgZnJvbSB0
aGUgSklUU3RhY2tGcmFtZQotICAgIGxzaGlmdGkgMywgdDAKLSAgICBhZGRwIHQwLCBjZnIsIHQw
Ci0gICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsgUmVnaXN0ZXJGaWxlOjpt
X2VuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwotCi0gICAgIyBTdGFjayBoZWlnaHQgY2hlY2sg
ZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKLS5zdGFja0hlaWdodE9LOgotZW5kCi0KICMgRXhwZWN0
cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZl
cyBiZWhpbmQuCiBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgp
CiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKQEAgLTUw
NiwzOCArMjgzLDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvdwog
ICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi1fbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZToKLSAgICBw
cm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxvY2tT
ZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKLSAgICBkaXNw
YXRjaCgwKQotCi0KLV9sbGludF9ldmFsX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0
aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2Vu
dHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xs
aW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9y
Q2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRy
eV9vc3JfZnVuY3Rpb25fZm9yX2NhbGwsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9m
b3JfY2FsbCkKLS5mdW5jdGlvbkZvckNhbGxCZWdpbjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0
aW9uKDApCi0gICAgZGlzcGF0Y2goMCkKLSAgICAKLQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3RfcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxv
Y2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0
aW9uX2Zvcl9jb25zdHJ1Y3QsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY29u
c3RydWN0KQotLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW46Ci0gICAgZnVuY3Rpb25Jbml0aWFs
aXphdGlvbigxKQotICAgIGRpc3BhdGNoKDApCi0gICAgCi0KLV9sbGludF9mdW5jdGlvbl9mb3Jf
Y2FsbF9hcml0eV9jaGVjazoKLSAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tH
ZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9u
X2Zvcl9jYWxsX2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9jYWxsKQot
ICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDYWxsQmVnaW4sIF9sbGludF9zbG93
X3BhdGhfY2FsbF9hcml0eUNoZWNrKQotCi0KLV9sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0
X2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2Nr
R2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlv
bl9mb3JfY29uc3RydWN0X2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9j
b25zdHJ1Y3QpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNvbnN0cnVjdEJl
Z2luLCBfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNoZWNrKQogCiAjIEluc3RydWN0
aW9uIGltcGxlbWVudGF0aW9ucwogCkBAIC01ODMsMzkgKzMyOCw2IEBAIF9sbGludF9vcF9jcmVh
dGVfYXJndW1lbnRzOgogICAgIGRpc3BhdGNoKDIpCiAKIAotbWFjcm8gYWxsb2NhdGVCYXNpY0pT
T2JqZWN0KHNpemVDbGFzc0luZGV4LCBjbGFzc0luZm9PZmZzZXQsIHN0cnVjdHVyZSwgcmVzdWx0
LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNsb3dDYXNlKQotICAgIGlmIEFMV0FZU19BTExPQ0FURV9T
TE9XCi0gICAgICAgIGptcCBzbG93Q2FzZQotICAgIGVsc2UKLSAgICAgICAgY29uc3Qgb2Zmc2V0
T2ZNeVNpemVDbGFzcyA9Ci0gICAgICAgICAgICBKU0dsb2JhbERhdGE6OmhlYXAgKwotICAgICAg
ICAgICAgSGVhcDo6bV9vYmplY3RTcGFjZSArCi0gICAgICAgICAgICBNYXJrZWRTcGFjZTo6bV9u
b3JtYWxTcGFjZSArCi0gICAgICAgICAgICBNYXJrZWRTcGFjZTo6U3Vic3BhY2U6OnByZWNpc2VB
bGxvY2F0b3JzICsKLSAgICAgICAgICAgIHNpemVDbGFzc0luZGV4ICogc2l6ZW9mIE1hcmtlZEFs
bG9jYXRvcgotICAgICAgICAKLSAgICAgICAgIyBGSVhNRTogd2UgY2FuIGdldCB0aGUgZ2xvYmFs
IGRhdGEgaW4gb25lIGxvYWQgZnJvbSB0aGUgc3RhY2suCi0gICAgICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCBzY3JhdGNoMQotICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVtz
Y3JhdGNoMV0sIHNjcmF0Y2gxCi0gICAgICAgIAotICAgICAgICAjIEdldCB0aGUgb2JqZWN0IGZy
b20gdGhlIGZyZWUgbGlzdC4gICAgCi0gICAgICAgIGxvYWRwIG9mZnNldE9mTXlTaXplQ2xhc3Mg
KyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0sIHJlc3VsdAotICAg
ICAgICBidHB6IHJlc3VsdCwgc2xvd0Nhc2UKLSAgICAgICAgCi0gICAgICAgICMgUmVtb3ZlIHRo
ZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LgotICAgICAgICBsb2FkcCBbcmVzdWx0XSwgc2Ny
YXRjaDIKLSAgICAgICAgc3RvcmVwIHNjcmF0Y2gyLCBvZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFy
a2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2NyYXRjaDFdCi0gICAgCi0gICAgICAgICMg
SW5pdGlhbGl6ZSB0aGUgb2JqZWN0LgotICAgICAgICBsb2FkcCBjbGFzc0luZm9PZmZzZXRbc2Ny
YXRjaDFdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIFtyZXN1bHRdCi0gICAg
ICAgIHN0b3JlcCBzdHJ1Y3R1cmUsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbcmVzdWx0XQotICAgICAg
ICBzdG9yZXAgMCwgSlNPYmplY3Q6Om1faW5oZXJpdG9ySURbcmVzdWx0XQotICAgICAgICBhZGRw
IHNpemVvZiBKU09iamVjdCwgcmVzdWx0LCBzY3JhdGNoMQotICAgICAgICBzdG9yZXAgc2NyYXRj
aDEsIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVtyZXN1bHRdCi0gICAgZW5kCi1lbmQKLQog
X2xsaW50X29wX2NyZWF0ZV90aGlzOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4
W1BDXSwgdDAKQEAgLTgwMiw3ICs1MTQsNyBAQCBfbGxpbnRfb3BfbmVxX251bGw6CiAgICAgZGlz
cGF0Y2goMykKIAogCi1tYWNybyBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wYXRo
KQorbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRp
IDEyW1BDXSwgdDIKICAgICBsb2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHQyLCB0MywgdDEpCkBAIC04MjIsNyArNTM0LDcgQEAgbWFjcm8gc3RyaWN0RXEoZXF1YWxp
dHlPcGVyYXRpb24sIHNsb3dfcAogICAgIGRpc3BhdGNoKDQpCiAKIC5zbG93OgotICAgIGNhbGxT
bG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3Bh
dGNoKDQpCiBlbmQKIApAQCAtOTY4LDcgKzY4MCw3IEBAIF9sbGludF9vcF9uZWdhdGU6CiAgICAg
ZGlzcGF0Y2goMykKIAogCi1tYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRp
b25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93X3BhdGgpCittYWNybyBiaW5hcnlPcEN1
c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93
UGF0aCkKICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10sIHQwCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQpAQCAtMTAwNiw3ICs3MTgsNyBAQCBtYWNy
byBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgZGlzcGF0Y2goNSkKIAog
LnNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1BhdGgoc2xv
d1BhdGgpCiAgICAgZGlzcGF0Y2goNSkKIGVuZAogCkBAIC0yMzAxLDcyICsyMDEzLDMgQEAgX2xs
aW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmU6CiAgICAgbG9hZHAgSlNHbG9iYWxEYXRh
OjpjYWxsRnJhbWVGb3JUaHJvd1t0MV0sIHQwCiAgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0
TWFjaGluZVBDRm9yVGhyb3dbdDFdCiAKLQotIyBMYXN0bHksIG1ha2Ugc3VyZSB0aGF0IHdlIGNh
biBsaW5rIGV2ZW4gdGhvdWdoIHdlIGRvbid0IHN1cHBvcnQgYWxsIG9wY29kZXMuCi0jIFRoZXNl
IG9wY29kZXMgc2hvdWxkIG5ldmVyIGFyaXNlIHdoZW4gdXNpbmcgTExJbnQgb3IgZWl0aGVyIEpJ
VC4gV2UgYXNzZXJ0Ci0jIGFzIG11Y2guCi0KLW1hY3JvIG5vdFN1cHBvcnRlZCgpCi0gICAgaWYg
QVNTRVJUX0VOQUJMRUQKLSAgICAgICAgY3Jhc2goKQotICAgIGVsc2UKLSAgICAgICAgIyBXZSBz
aG91bGQgdXNlIHdoYXRldmVyIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBpcywg
anVzdCB0bwotICAgICAgICAjIGVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgZ2FwIGJldHdlZW4gaW5z
dHJ1Y3Rpb24gbGFiZWxzLiBJZiBtdWx0aXBsZQotICAgICAgICAjIHNtYWxsZXN0IGluc3RydWN0
aW9ucyBleGlzdCwgd2Ugc2hvdWxkIHBpY2sgdGhlIG9uZSB0aGF0IGlzIG1vc3QKLSAgICAgICAg
IyBsaWtlbHkgcmVzdWx0IGluIGV4ZWN1dGlvbiBiZWluZyBoYWx0ZWQuIEN1cnJlbnRseSB0aGF0
IGlzIHRoZSBicmVhawotICAgICAgICAjIGluc3RydWN0aW9uIG9uIGFsbCBhcmNoaXRlY3R1cmVz
IHdlJ3JlIGludGVyZXN0ZWQgaW4uIChCcmVhayBpcyBpbnQzCi0gICAgICAgICMgb24gSW50ZWws
IHdoaWNoIGlzIDEgYnl0ZSwgYW5kIGJrcHQgb24gQVJNdjcsIHdoaWNoIGlzIDIgYnl0ZXMuKQot
ICAgICAgICBicmVhawotICAgIGVuZAotZW5kCi0KLV9sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3Ro
OgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY2hhaW46Ci0gICAg
bm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fY2hhaW46Ci0gICAg
bm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fcHJvdG86Ci0gICAg
bm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fc2VsZjoKLSAgICBu
b3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dlbmVyaWM6Ci0gICAgbm90U3Vw
cG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW46Ci0gICAgbm90U3Vw
cG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG86Ci0gICAgbm90U3Vw
cG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZjoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX3Byb3RvOgotICAgIG5vdFN1cHBvcnRlZCgp
Ci0KLV9sbGludF9vcF9nZXRfYnlfaWRfc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxp
bnRfb3BfZ2V0X3N0cmluZ19sZW5ndGg6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29w
X3B1dF9ieV9pZF9nZW5lcmljOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRf
YnlfaWRfcmVwbGFjZToKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lk
X3RyYW5zaXRpb246Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotCi0jIEluZGljYXRlIHRoZSBlbmQg
b2YgTExJbnQuCi1fbGxpbnRfZW5kOgotICAgIGNyYXNoKCkKLQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJl
dmlzaW9uIDEwOTAzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiw1MTcgQEAKICMgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAKLSMgTm90IHN1cHBvcnRlZCB5ZXQsIHNv
IGdpdmUgdXAuCi1lcnJvcgorIyBTb21lIHZhbHVlIHJlcHJlc2VudGF0aW9uIGNvbnN0YW50cy4K
K2NvbnN0IFRhZ0JpdFR5cGVPdGhlciA9IDB4MgorY29uc3QgVGFnQml0Qm9vbCAgICAgID0gMHg0
Citjb25zdCBUYWdCaXRVbmRlZmluZWQgPSAweDgKK2NvbnN0IFZhbHVlRW1wdHkgICAgICA9IDB4
MAorY29uc3QgVmFsdWVGYWxzZSAgICAgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbAor
Y29uc3QgVmFsdWVUcnVlICAgICAgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbCB8IDEK
K2NvbnN0IFZhbHVlVW5kZWZpbmVkICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdFVuZGVmaW5l
ZAorY29uc3QgVmFsdWVOdWxsICAgICAgID0gVGFnQml0VHlwZU90aGVyCisKKyMgVXRpbGl0aWVz
LgorbWFjcm8gZGlzcGF0Y2goYWR2YW5jZSkKKyAgICBhZGRpIGFkdmFuY2UsIFBDCisgICAgam1w
IFtQQiwgUEMsIDhdCitlbmQKKworbWFjcm8gZGlzcGF0Y2hCcmFuY2gocGNPZmZzZXQpCisgICAg
bG9hZGkgcGNPZmZzZXQsIHQwCisgICAgZGlzcGF0Y2godDApCitlbmQKKworbWFjcm8gZGlzcGF0
Y2hBZnRlckNhbGwoKQorICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwg
UEMKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1f
aW5zdHJ1Y3Rpb25zW1BCXSwgUEIKKyAgICBqbXAgW1BCLCBQQywgOF0KK2VuZAorCittYWNybyBj
Q2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCisgICAgbW92ZSBhcmcxLCB0MAorICAgIG1vdmUg
YXJnMiwgdDEKKyAgICBjYWxsIGZ1bmN0aW9uCitlbmQKKworIyBUaGlzIGJhcmVseSB3b3Jrcy4g
YXJnMyBhbmQgYXJnNCBzaG91bGQgcHJvYmFibHkgYmUgaW1tZWRpYXRlcy4KK21hY3JvIGNDYWxs
NChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkKKyAgICBtb3ZlIGFyZzEsIHQwCisg
ICAgbW92ZSBhcmcyLCB0MQorICAgIG1vdmUgYXJnMywgdDIKKyAgICBtb3ZlIGFyZzQsIHQzCisg
ICAgY2FsbCBmdW5jdGlvbgorZW5kCisKK21hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAg
ICBsZWFwIFtQQiwgUEMsIDhdLCBQQworZW5kCisKK21hY3JvIHJlc3RvcmVTdGF0ZUFmdGVyQ0Nh
bGwoKQorICAgIG1vdmUgdDAsIFBDCisgICAgbW92ZSB0MSwgY2ZyCisgICAgc3VicCBQQiwgUEMK
KyAgICB1cnNoaWZ0aSAzLCBQQworZW5kCisKK21hY3JvIGNhbGxTbG93UGF0aChzbG93UGF0aCkK
KyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBD
KQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorZW5kCisKK21hY3JvIHRyYWNlT3BlcmFu
ZChmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGND
YWxsNChfbGxpbnRfdHJhY2Vfb3BlcmFuZCwgY2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQor
ICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorZW5kCisKK21hY3JvIHRyYWNlVmFsdWUoZnJv
bVdoZXJlLCBvcGVyYW5kKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDQo
X2xsaW50X3RyYWNlX3ZhbHVlLCBjZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcmVz
dG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKworIyBDYWxsIGEgc2xvdyBwYXRoIGZvciBjYWxs
IGNhbGwgb3Bjb2Rlcy4KK21hY3JvIGNhbGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd1BhdGgs
IGFjdGlvbikKKyAgICBhZGRpIGFkdmFuY2UsIFBDLCB0MAorICAgIHN0b3JlaSB0MCwgQXJndW1l
bnRDb3VudCArIFRhZ09mZnNldFtjZnJdCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAg
IGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBhY3Rpb24o
dDApCitlbmQKKworbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQorICAgIGNoZWNrU3dp
dGNoVG9KSVQoCisgICAgICAgIDEsCisgICAgICAgIG1hY3JvKCkKKyAgICAgICAgICAgIHN0b3Jl
aSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCisgICAgICAgICAgICBwcmVwYXJl
U3RhdGVGb3JDQ2FsbCgpCisgICAgICAgICAgICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIs
IFBDKQorICAgICAgICAgICAgbW92ZSB0MSwgY2ZyCisgICAgICAgICAgICBidHB6IHQwLCAucmVj
b3ZlcgorICAgICAgICAgICAgam1wIHQwCisgICAgICAgIC5yZWNvdmVyOgorICAgICAgICAgICAg
bG9hZHAgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQworICAgICAgICBlbmQpCitl
bmQKKworIyBJbmRleCBhbmQgdmFsdWUgbXVzdCBiZSBkaWZmZXJlbnQgcmVnaXN0ZXJzLiBJbmRl
eCBtYXkgYmUgY2xvYmJlcmVkLgorbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwg
dmFsdWUpCisgICAgYnBndGVxIGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgLmNv
bnN0YW50CisgICAgbG9hZHAgW2NmciwgaW5kZXgsIDhdLCB2YWx1ZQorICAgIGptcCAuZG9uZQor
LmNvbnN0YW50OgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB2YWx1ZQorICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9jb25zdGFudFJlZ2lzdGVycyArIFZlY3RvckJ1ZmZlck9mZnNldFt2YWx1ZV0s
IHZhbHVlCisgICAgc3VicCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgaW5kZXgKKyAgICBs
b2FkcCBbdmFsdWUsIGluZGV4LCA4XSwgdmFsdWUKKy5kb25lOgorZW5kCisKK21hY3JvIGxvYWRD
b25zdGFudE9yVmFyaWFibGVJbnQzMihpbmRleCwgdmFsdWUsIHNsb3cpCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUpCisgICAgYnBiIHZhbHVlLCB0YWdUeXBlTnVtYmVy
LCBzbG93CitlbmQKKworbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoaW5kZXgsIHZh
bHVlLCBzbG93KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoaW5kZXgsIHZhbHVlKQorICAg
IGJ0cG56IHZhbHVlLCB0YWdNYXNrLCBzbG93CitlbmQKKworbWFjcm8gd3JpdGVCYXJyaWVyKHZh
bHVlKQorICAgICMgTm90aGluZyB0byBkbywgc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhIGdlbmVyYXRp
b25hbCBvciBpbmNyZW1lbnRhbCBjb2xsZWN0b3IuCitlbmQKKworbWFjcm8gdmFsdWVQcm9maWxl
KHZhbHVlLCBwcm9maWxlKQorICAgIGlmIFZBTFVFX1BST0ZJTEVSCisgICAgICAgIHN0b3JlcCB2
YWx1ZSwgVmFsdWVQcm9maWxlOjptX2J1Y2tldHNbcHJvZmlsZV0KKyAgICBlbmQKK2VuZAorCisK
KyMgRW50cnlwb2ludHMgaW50byB0aGUgaW50ZXJwcmV0ZXIuCisKKyMgRXhwZWN0cyB0aGF0IENv
ZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQu
CittYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgpCisgICAgbG9h
ZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKKyAgICBiaWFlcSB0MCwg
Q29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCBkb25lTGFiZWwKKyAgICBwcmVwYXJlU3Rh
dGVGb3JDQ2FsbCgpCisgICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xv
d19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAw
ID0+IGVycm9yCisgICAgbW92ZSB0MSwgY2ZyCisgICAgYnRpeiB0MCwgLmNvbnRpbnVlCisgICAg
bG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQxCisgICAgbG9hZHAgSlNHbG9i
YWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJvd1t0MV0sIHQwCisgICAgam1wIEpTR2xvYmFsRGF0YTo6
dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3dbdDFdCisuY29udGludWU6CisgICAgIyBSZWxvYWQgQ29k
ZUJsb2NrIGFuZCByZXNldCBQQywgc2luY2UgdGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgdGhlbS4K
KyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5z
dHJ1Y3Rpb25zW3QxXSwgUEIKKyAgICBtb3ZlIDAsIFBDCisgICAgam1wIGRvbmVMYWJlbAorZW5k
CisKKworIyBJbnN0cnVjdGlvbiBpbXBsZW1lbnRhdGlvbnMKKworX2xsaW50X29wX2VudGVyOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBs
b2FkaSBDb2RlQmxvY2s6Om1fbnVtVmFyc1t0Ml0sIHQyCisgICAgYnRpeiB0MiwgLm9wRW50cnlE
b25lCisgICAgbW92ZSBWYWx1ZVVuZGVmaW5lZCwgdDAKKy5vcEVudGVyTG9vcDoKKyAgICBzdWJp
IDEsIHQyCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MiwgOF0KKyAgICBidGlueiB0MiwgLm9wRW50
ZXJMb29wCisub3BFbnRlckRvbmU6CisgICAgZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3BfY3Jl
YXRlX2FjdGl2YXRpb246CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBD
LCA4XSwgdDAKKyAgICBicG5lcSBbY2ZyLCB0MCwgOF0sIFZhbHVlRW1wdHksIC5vcENyZWF0ZUFj
dGl2YXRpb25Eb25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX2Fj
dGl2YWl0b24pCisub3BDcmVhdGVBY3RpdmF0aW9uRG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisK
K19sbGludF9vcF9pbml0X2xhenlfcmVnOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aSA4W1BCLCBQQywgOF0sIHQwCisgICAgc3RvcmVwIFZhbHVlRW1wdHksIFtjZnIsIHQwLCA4XQor
ICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2NyZWF0ZV9hcmd1bWVudHM6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBicG5lcSBbY2Zy
LCB0MCwgOF0sIFZhbHVlRW1wdHksIC5vcENyZWF0ZUFyZ3VtZW50c0RvbmUKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jcmVhdGVfYXJndW1lbnRzKQorLm9wQ3JlYXRlQXJndW1l
bnRzRG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9jcmVhdGVfdGhpczoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBhc3Nl
cnROb3RDb25zdGFudCh0MCkKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCisgICAgYnRwbnog
dDAsIHRhZ01hc2ssIC5vcENyZWF0ZVRoaXNTbG93CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVj
dHVyZVt0MF0sIHQxCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjpt
X3R5cGVbdDFdLCBPYmplY3RUeXBlLCAub3BDcmVhdGVUaGlzU2xvdworICAgIGxvYWRwIEpTT2Jq
ZWN0OjptX2luaGVyaXRvcklEW3QwXSwgdDIKKyAgICBidHB6IHQyLCAub3BDcmVhdGVUaGlzU2xv
dworICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgs
IEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENsYXNzSW5mbywgdDIsIHQwLCB0MSwgdDMsIC5v
cENyZWF0ZVRoaXNTbG93KQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAg
dDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDgpCisKKy5vcENyZWF0ZVRoaXNTbG93Ogor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV90aGlzKQorICAgIGRpc3Bh
dGNoKDMpCisKKworX2xsaW50X29wX2dldF9jYWxsZWU6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKKyAg
ICBzdG9yZXAgdDEsIFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29w
X2NvbnZlcnRfdGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMs
IDhdLCB0MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFz
aywgLm9wQ29udmVydFRoaXNTbG93CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0s
IHQwCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDBd
LCBPYmplY3RUeXBlLCAub3BDb252ZXJ0VGhpc1Nsb3cKKyAgICBkaXNwYXRjaCgyKQorCisub3BD
b252ZXJ0VGhpc1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY29udmVy
dF90aGlzKQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX25ld19vYmplY3Q6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAgIGxvYWRw
IENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTR2xvYmFsT2Jq
ZWN0OjptX2VtcHR5T2JqZWN0U3RydWN0dXJlW3QwXSwgdDEKKyAgICBhbGxvY2F0ZUJhc2ljSlNP
YmplY3QoSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4LCBKU0dsb2JhbERhdGE6OmpzRmluYWxP
YmplY3RDbGFzc0luZm8sIHQxLCB0MCwgdDIsIHQzLCAub3BOZXdPYmplY3RTbG93KQorICAgIGxv
YWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRp
c3BhdGNoKDIpCisKKy5vcE5ld09iamVjdFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfbmV3X29iamVjdCkKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9uZXdf
YXJyYXk6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX25ld19hcnJheSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9uZXdfYXJy
YXlfYnVmZmVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX25ld19yZWdleHA6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX25ld19yZWdleHApCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRf
b3BfbW92OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0
MQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHQxLCB0MikKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDMpCisK
KworX2xsaW50X29wX25vdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIs
IFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MCwgdDIpCisgICAgeG9ycCBWYWx1ZUZhbHNlLCB0MgorICAgIGJ0cG56IHQy
LCB+MSwgLm9wTm90U2xvdworICAgIHhvcnAgVmFsdWVUcnVlLCB0MgorICAgIHN0b3JlcCB0Miwg
W2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wTm90U2xvdzoKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ub3QpCisgICAgZGlzcGF0Y2goMykKKworCittYWNybyBl
cXVhbGl0eUNvbXBhcmlzb24oaW50ZWdlckNvbXBhcmlzb24sIHNsb3dQYXRoKQorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDE2W1BC
LCBQQywgOF0sIHQyCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGVJbnQzMih0MCwgdDEsIC5zbG93KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVJbnQzMih0MiwgdDAsIC5zbG93KQorICAgIGludGVnZXJDb21wYXJpc29uKHQwLCB0MSwgdDAp
CisgICAgb3JwIFZhbHVlRmFsc2UsIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAg
ICBkaXNwYXRjaCg0KQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAg
ZGlzcGF0Y2goNCkKK2VuZAorCitfbGxpbnRfb3BfZXE6CisgICAgZXF1YWxpdHlDb21wYXJpc29u
KAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY2llcSBsZWZ0LCByaWdodCwg
cmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9lcSkKKworCitfbGxpbnRfb3Bf
bmVxOgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX2VxKQorCisKK21hY3JvIGVxdWFsTnVsbENvbXBhcmlzb24oKQorICAgIGxvYWRp
IDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56
IHQwLCB0YWdNYXNrLCAuaW1tZWRpYXRlCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0
MF0sIHQyCisgICAgdGJueiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFn
c1t0Ml0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHQwCisgICAgam1wIC5kb25lCisuaW1tZWRp
YXRlOgorICAgIGFuZHAgflRhZ0JpdFVuZGVmaW5lZCwgdDAKKyAgICBjcGVxIHQwLCBWYWx1ZU51
bGwsIHQwCisuZG9uZToKK2VuZAorCitfbGxpbnRfb3BfZXFfbnVsbDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgZXF1YWxOdWxsQ29tcGFyaXNvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhd
LCB0MQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhd
CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfbmVxX251bGw6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGVxdWFsTnVsbENvbXBhcmlzb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4
XSwgdDEKKyAgICB4b3JwIFZhbHVlVHJ1ZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4
XQorICAgIGRpc3BhdGNoKDMpCisKKworbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24s
IHNsb3dQYXRoKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhd
LCB0MAorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZSh0MCwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgbW92
ZSB0MCwgdDIKKyAgICBvcnAgdDEsIHQyCisgICAgYnRweiB0MiwgdGFnTWFzaywgLnNsb3cKKyAg
ICBicGFlcSB0MCwgdGFnVHlwZU51bWJlciwgLmxlZnRPSworICAgIGJ0cG56IHQwLCB0YWdUeXBl
TnVtYmVyLCAuc2xvdworLmxlZnRPSzoKKyAgICBicGFlcSB0MSwgdGFnVHlwZU51bWJlciwgLnJp
Z2h0T0sKKyAgICBidHBueiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKy5yaWdodE9LOgorICAg
IGVxdWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDApCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0
MQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisg
ICAgZGlzcGF0Y2goNCkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAg
IGRpc3BhdGNoKDQpCitlbmQKKworX2xsaW50X29wX3N0cmljdGVxOgorICAgIHN0cmljdEVxKAor
ICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY3BlcSBsZWZ0LCByaWdodCwgcmVz
dWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9zdHJpY3RfZXEpCisKKworX2xsaW50
X29wX25zdHJpY3RlcToKKyAgICBzdHJpY3RFcSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCByZXN1bHQpIGNwbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3N0cmljdF9lcSkKKworCitfbGxpbnRfb3BfbGVzczoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbGVzcykKKyAgICBkaXNw
YXRjaCg0KQorCisKK19sbGludF9vcF9sZXNzZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3NlcSkKKyAgICBkaXNwYXRjaCg0KQor
CisKK19sbGludF9vcF9ncmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVyKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xs
aW50X29wX2dyZWF0ZXJlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcmVxKQorICAgIGRpc3BhdGNoKDQpCisKKworbWFjcm8g
cHJlT3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQx
CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFyaXRobWV0aWNPcGVyYXRp
b24odDEsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIHN0b3JlcCB0MSwg
W2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRo
KHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDIpCitlbmQKKworX2xsaW50X29wX3ByZV9pbmM6Cisg
ICAgcHJlT3AoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYmFkZGlvIDEsIHZhbHVlLCBz
bG93IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wcmVfaW5jKQorCisKK19sbGludF9v
cF9wcmVfZGVjOgorICAgIHByZU9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJzdWJp
byAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcHJlX2luYykK
KworCittYWNybyBwb3N0T3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgOFtQ
QiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDIKKyAgICBiaWVxIHQwLCB0
MSwgLmRvbmUKKyAgICBicGIgdDIsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgbW92ZSB0Miwg
dDMKKyAgICBhcml0aG1ldGljT3BlcmF0aW9uKHQzLCAuc2xvdykKKyAgICBvcnAgdGFnVHlwZU51
bWJlciwgdDMKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIHN0b3JlcCB0MywgW2Nm
ciwgdDAsIDhdCisuZG9uZToKKyAgICBkaXNwYXRjaCgzKQorCisuc2xvdzoKKyAgICBjYWxsU2xv
d1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goMykKK2VuZAorCitfbGxpbnRfb3BfcG9zdF9p
bmM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJhZGRpbyAxLCB2
YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcG9zdF9pbmMpCisKKwor
X2xsaW50X29wX3Bvc3RfZGVjOgorICAgIHBvc3RPcCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCBz
bG93KSBic3ViaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRo
X3Bvc3RfZGVjKQorCisKK19sbGludF9vcF90b19qc251bWJlcjoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0s
IHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIpCisgICAgYnBhZXEgdDIsIHRh
Z1R5cGVOdW1iZXIsIC5vcFRvSnNudW1iZXJJc0ltbWVkaWF0ZQorICAgIGJ0cHogdDIsIHRhZ01h
c2ssIC5vcFRvSnNOdW1iZXJTbG93Cisub3BUb0pzbnVtYmVySXNJbW1lZGlhdGU6CisgICAgc3Rv
cmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BUb0pzbnVtYmVyU2xv
dzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90b19qc251bWJlcikKKyAgICBk
aXNwYXRjaCgzKQorCisKK19sbGludF9vcF9uZWdhdGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGxvYWRwIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgOFtQQiwgUEMsIDhdLCB0MQor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIGJwYiB0MiwgdGFnVHlwZU51
bWJlciwgLm9wTmVnYXRlTm90SW50CisgICAgYnRpeiB0MiwgMHg3ZmZmZmZmZiwgLm9wTmVnYXRl
U2xvdworICAgIG5lZ2kgdDIKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDIKKyAgICBzdG9yZXAg
dDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisub3BOZWdhdGVOb3RJbnQ6CisgICAg
YnRweiB0MiwgdGFnVHlwZU51bWJlciwgLm9wTmVnYXRlU2xvdworICAgIHhvcnAgMHg4MDAwMDAw
MDAwMDAwMDAwLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2go
MykKKworLm9wTmVnYXRlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9u
ZWdhdGUpCisgICAgZGlzcGF0Y2goMykKKworCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDEwOTAz
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFz
bQkod29ya2luZyBjb3B5KQpAQCAtMjEsOSArMjEsNDExIEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCisjIEZpcnN0IGNvbWUgdGhlIGNvbW1v
biBwcm90b2NvbHMgdGhhdCBib3RoIGludGVycHJldGVycyB1c2UuIE5vdGUgdGhhdCBlYWNoCisj
IG9mIHRoZXNlIG11c3QgaGF2ZSBhbiBBU1NFUlQoKSBpbiBMTEludERhdGEuY3BwCisKKyMgVGhl
c2UgZGVjbGFyYXRpb25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmguCitj
b25zdCBDYWxsRnJhbWVIZWFkZXJTaXplID0gNDgKK2NvbnN0IEFyZ3VtZW50Q291bnQgPSAtNDgK
K2NvbnN0IENhbGxlckZyYW1lID0gLTQwCitjb25zdCBDYWxsZWUgPSAtMzIKK2NvbnN0IFNjb3Bl
Q2hhaW4gPSAtMjQKK2NvbnN0IFJldHVyblBDID0gLTE2Citjb25zdCBDb2RlQmxvY2sgPSAtOAor
Citjb25zdCBUaGlzQXJndW1lbnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDgKKwor
IyBTb21lIHJlZ2lzdGVyIGNvbnZlbnRpb25zLgoraWYgSlNWQUxVRTY0CisgICAgIyAtIFVzZSBh
IHBhaXIgb2YgcmVnaXN0ZXJzIHRvIHJlcHJlc2VudCB0aGUgUEM6IG9uZSByZWdpc3RlciBmb3Ig
dGhlCisgICAgIyAgIGJhc2Ugb2YgdGhlIHJlZ2lzdGVyIGZpbGUsIGFuZCBvbmUgcmVnaXN0ZXIg
Zm9yIHRoZSBpbmRleC4KKyAgICAjIC0gVGhlIFBDIGJhc2UgKG9yIFBCIGZvciBzaG9ydCkgc2hv
dWxkIGJlIHN0b3JlZCBpbiB0aGUgY3NyLiBJdCB3aWxsCisgICAgIyAgIGdldCBjbG9iYmVyZWQg
b24gY2FsbHMgdG8gb3RoZXIgSlMgY29kZSwgYnV0IHdpbGwgZ2V0IHNhdmVkIG9uIGNhbGxzCisg
ICAgIyAgIHRvIEMgZnVuY3Rpb25zLgorICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0
aGUgSW5zdHJ1Y3Rpb24qIHJhdGhlciB0aGFuIHRoZSBQQyBpbmRleC4KKyAgICAjICAgVGhpcyBy
ZXF1aXJlcyBhbiBhZGQgYmVmb3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCisgICAgY29u
c3QgUEMgPSB0NAorICAgIGNvbnN0IFBCID0gY3NyMAorICAgIGNvbnN0IHRhZ1R5cGVOdW1iZXIg
PSBjc3IxCisgICAgY29uc3QgdGFnTWFzayA9IGNzcjIKK2Vsc2UKKyAgICBjb25zdCBQQyA9IHQ0
CitlbmQKKworIyBDb25zdGFudHMgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRh
dGlvbi4KK2lmIEJJR19FTkRJQU4KKyAgICBjb25zdCBUYWdPZmZzZXQgPSAwCisgICAgY29uc3Qg
UGF5bG9hZE9mZnNldCA9IDQKK2Vsc2UKKyAgICBjb25zdCBUYWdPZmZzZXQgPSA0CisgICAgY29u
c3QgUGF5bG9hZE9mZnNldCA9IDAKK2VuZAorCisjIFR5cGUgY29uc3RhbnRzLgorY29uc3QgU3Ry
aW5nVHlwZSA9IDUKK2NvbnN0IE9iamVjdFR5cGUgPSAxMworCisjIFR5cGUgZmxhZ3MgY29uc3Rh
bnRzLgorY29uc3QgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDEKK2NvbnN0IEltcGxlbWVudHNI
YXNJbnN0YW5jZSA9IDIKK2NvbnN0IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSA4CisK
KyMgQnl0ZWNvZGUgb3BlcmFuZCBjb25zdGFudHMuCitjb25zdCBGaXJzdENvbnN0YW50UmVnaXN0
ZXJJbmRleCA9IDB4NDAwMDAwMDAKKworIyBDb2RlIHR5cGUgY29uc3RhbnRzLgorY29uc3QgR2xv
YmFsQ29kZSA9IDAKK2NvbnN0IEV2YWxDb2RlID0gMQorY29uc3QgRnVuY3Rpb25Db2RlID0gMgor
CisjIFRoZSBpbnRlcnByZXRlciBzdGVhbHMgdGhlIHRhZyB3b3JkIG9mIHRoZSBhcmd1bWVudCBj
b3VudC4KK2NvbnN0IExMSW50UmV0dXJuUEMgPSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0CisK
KyMgU3RyaW5nIGZsYWdzLgorY29uc3QgSGFzaEZsYWdzOEJpdEJ1ZmZlciA9IDY0CisKKyMgQWxs
b2NhdGlvbiBjb25zdGFudHMKK2lmIEpTVkFMVUU2NAorICAgIGNvbnN0IEpTRmluYWxPYmplY3RT
aXplQ2xhc3NJbmRleCA9IDEKK2Vsc2UKKyAgICBjb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNz
SW5kZXggPSAzCitlbmQKKworIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1ZlY3Rvci5oCitpZiBKU1ZB
TFVFNjQKKyAgICBjb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorICAgIGNvbnN0IFZlY3RvckJ1
ZmZlck9mZnNldCA9IDgKK2Vsc2UKKyAgICBjb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorICAg
IGNvbnN0IFZlY3RvckJ1ZmZlck9mZnNldCA9IDQKK2VuZAorCisKKyMgU29tZSBjb21tb24gdXRp
bGl0aWVzLgorbWFjcm8gY3Jhc2goKQorICAgIHN0b3JlaSAwLCAweGJiYWRiZWVmW10KKyAgICBt
b3ZlIDAsIHQwCisgICAgY2FsbCB0MAorZW5kCisKK21hY3JvIGFzc2VydChhc3NlcnRpb24pCisg
ICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgYXNzZXJ0aW9uKC5vaykKKyAgICAgICAgY3Jh
c2goKQorICAgIC5vazoKKyAgICBlbmQKK2VuZAorCittYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJl
c3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKKyAgICBpZiBBUk12NworICAgICAgICBt
b3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAg
ICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3RlcgorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAg
ICBlbmQKK2VuZAorCittYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3Vy
Y2VSZWdpc3RlcikKKyAgICBpZiBBUk12NworICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBs
cgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBzb3VyY2VSZWdpc3Rlcgor
ICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKK2VuZAorCittYWNybyB0cmFjZUV4ZWN1
dGlvbigpCisgICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKKyAgICAgICAgY2FsbFNsb3dQYXRoKF9s
bGludF90cmFjZSkKKyAgICBlbmQKK2VuZAorCittYWNybyBzbG93UGF0aEZvckNhbGwoYWR2YW5j
ZSwgc2xvd1BhdGgpCisgICAgY2FsbENhbGxTbG93UGF0aCgKKyAgICAgICAgYWR2YW5jZSwKKyAg
ICAgICAgc2xvd1BhdGgsCisgICAgICAgIG1hY3JvIChjYWxsZWUpCisgICAgICAgICAgICBjYWxs
IGNhbGxlZQorICAgICAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQorICAgICAgICBlbmQpCitl
bmQKKworbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVChpbmNyZW1lbnQsIGFjdGlvbikKKyAgICBpZiBK
SVRfRU5BQkxFRAorICAgICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICAgICAgYmFk
ZGlzIGluY3JlbWVudCwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXJbdDBdLCAuY29u
dGludWUKKyAgICAgICAgYWN0aW9uKCkKKyAgICAuY29udGludWU6CisgICAgZW5kCitlbmQKKwor
bWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBjaGVja1N3aXRjaFRvSklU
KAorICAgICAgICAxMCwKKyAgICAgICAgbWFjcm8gKCkKKyAgICAgICAgICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfcmVwbGFjZSkKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIGFzc2VydE5vdENv
bnN0YW50KGluZGV4KQorICAgIGFzc2VydChtYWNybyAob2spIGJpbHQgaW5kZXgsIEZpcnN0Q29u
c3RhbnRSZWdpc3RlckluZGV4LCBvayBlbmQpCitlbmQKKworbWFjcm8gZnVuY3Rpb25Gb3JDYWxs
Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0
YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRS
ZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjpt
X2NvZGVCbG9ja0ZvckNhbGxbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisK
K21hY3JvIGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVy
KQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEpTRnVu
Y3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCisgICAg
bG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0YXJnZXRS
ZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxv
Y2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHRhcmdl
dFJlZ2lzdGVyCitlbmQKKworbWFjcm8gZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVn
aXN0ZXIpCisgICAgc3RvcmVwIHNvdXJjZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQorZW5kCisK
K21hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQorICAgICMg
Tm90aGluZyB0byBkbyEKK2VuZAorCisjIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8g
ZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKKyMgaW4g
dDEuIE1heSBhbHNvIHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgorbWFjcm8gcHJvbG9ndWUo
Y29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQ
YXRoKQorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKKyAgICAKKyAgICAj
IFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KKyAgICBz
dG9yZXAgdDIsIFJldHVyblBDW2Nmcl0KKyAgICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAgICAg
ICBjYWxsU2xvd1BhdGgodHJhY2VTbG93UGF0aCkKKyAgICBlbmQKKyAgICBjb2RlQmxvY2tHZXR0
ZXIodDEpCisgICAgaWYgSklUX0VOQUJMRUQKKyAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6
bV9sbGludEV4ZWN1dGVDb3VudGVyW3QxXSwgLmNvbnRpbnVlCisgICAgICAgIGNDYWxsMihvc3JT
bG93UGF0aCwgY2ZyLCBQQykKKyAgICAgICAgbW92ZSB0MSwgY2ZyCisgICAgICAgIGJ0cHogdDAs
IC5yZWNvdmVyCisgICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCisgICAgICAgIHJlc3Rv
cmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgICAgICBqbXAgdDAKKyAgICAucmVj
b3ZlcjoKKyAgICAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQorICAgIC5jb250aW51ZToKKyAgICBl
bmQKKyAgICBjb2RlQmxvY2tTZXR0ZXIodDEpCisgICAgCisgICAgIyBTZXQgdXAgdGhlIFBDLgor
ICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25z
W3QxXSwgUEIKKyAgICAgICAgbW92ZSAwLCBQQworICAgIGVsc2UKKyAgICAgICAgbG9hZHAgQ29k
ZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBDCisgICAgZW5kCitlbmQKKworIyBFeHBlY3Rz
IHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVz
IGJlaGluZC4KKyMgTXVzdCBjYWxsIGRpc3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KK21h
Y3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24ocHJvZmlsZUFyZ1NraXApCisgICAgaWYgVkFMVUVf
UFJPRklMRVIKKyAgICAgICAgIyBQcm9maWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHks
IHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0byBkbyB0aGlzLiBUaGlzCisgICAgICAgICMgY29kZSBp
cyBwcmV0dHkgaG9ycmVuZG91cyBiZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5n
IGJldHdlZW4KKyAgICAgICAgIyBhcmd1bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVz
aXJlIHRvIGhhdmUgYSBzaW1wbGUgbG9vcC1kb3duLXRvLXplcm8KKyAgICAgICAgIyBsb29wLCBh
bmQgdGhlIGRlc2lyZSB0byB1c2Ugb25seSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2Vy
dmUgdGhlIFBDIGFuZAorICAgICAgICAjIHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhh
dCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJld3JpdHRlbiBpbiBhIG1vcmUKKyAgICAgICAgIyBvcHRp
bWFsIHdheSBmb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0
ZXJzIGF2YWlsYWJsZQorICAgICAgICAjIGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnBy
ZXRlci4KKyAgICAgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAor
ICAgICAgICBhZGRpIC1wcm9maWxlQXJnU2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQn
cyB3aGF0IGhhcyB0aGUgcGVlcGhvbGUKKyAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVx
IHQwLCAwLCBvayBlbmQpCisgICAgICAgIGJ0aXogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCisg
ICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JC
dWZmZXJPZmZzZXRbdDFdLCB0MworICAgICAgICBtdWxpIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQw
LCB0MiAjIEFhYWFhaGhoaCEgTmVlZCBzdHJlbmd0aCByZWR1Y3Rpb24hCisgICAgICAgIG5lZ2kg
dDAKKyAgICAgICAgbHNoaWZ0aSAzLCB0MAorICAgICAgICBhZGRwIHQyLCB0MworICAgIC5hcmd1
bWVudFByb2ZpbGVMb29wOgorICAgICAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGxvYWRw
IFRoaXNBcmd1bWVudE9mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQy
CisgICAgICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQzCisgICAgICAgICAgICBz
dG9yZXAgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJv
ZmlsZTo6bV9idWNrZXRzW3QzXQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2FkaSBUaGlz
QXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2Nmciwg
dDBdLCB0MgorICAgICAgICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MworICAgICAg
ICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBW
YWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFRhZ09mZnNldFt0M10KKyAgICAgICAgICAgIGxvYWRp
IFRoaXNBcmd1bWVudE9mZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAg
KiA4W2NmciwgdDBdLCB0MgorICAgICAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAq
IHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRP
ZmZzZXRbdDNdCisgICAgICAgIGVuZAorICAgICAgICBiYWRkaW56IDgsIHQwLCAuYXJndW1lbnRQ
cm9maWxlTG9vcAorICAgIC5hcmd1bWVudFByb2ZpbGVEb25lOgorICAgIGVuZAorICAgICAgICAK
KyAgICAjIENoZWNrIHN0YWNrIGhlaWdodC4KKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2Fs
bGVlUmVnaXN0ZXJzW3QxXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0
MV0sIHQyCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjppbnRlcnByZXRlclt0Ml0sIHQyICAgIyBG
SVhNRTogQ2FuIGdldCB0byB0aGUgUmVnaXN0ZXJGaWxlIGZyb20gdGhlIEpJVFN0YWNrRnJhbWUK
KyAgICBsc2hpZnRpIDMsIHQwCisgICAgYWRkcCB0MCwgY2ZyLCB0MAorICAgIGJwYWVxIEludGVy
cHJldGVyOjptX3JlZ2lzdGVyRmlsZSArIFJlZ2lzdGVyRmlsZTo6bV9lbmRbdDJdLCB0MCwgLnN0
YWNrSGVpZ2h0T0sKKworICAgICMgU3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8g
Y2FsbCBhIHNsb3dfcGF0aC4KKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2ZpbGVf
Y2hlY2spCisuc3RhY2tIZWlnaHRPSzoKK2VuZAorCittYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmpl
Y3Qoc2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5mb09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNj
cmF0Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2UpCisgICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cK
KyAgICAgICAgam1wIHNsb3dDYXNlCisgICAgZWxzZQorICAgICAgICBjb25zdCBvZmZzZXRPZk15
U2l6ZUNsYXNzID0KKyAgICAgICAgICAgIEpTR2xvYmFsRGF0YTo6aGVhcCArCisgICAgICAgICAg
ICBIZWFwOjptX29iamVjdFNwYWNlICsKKyAgICAgICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1h
bFNwYWNlICsKKyAgICAgICAgICAgIE1hcmtlZFNwYWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9j
YXRvcnMgKworICAgICAgICAgICAgc2l6ZUNsYXNzSW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2Nh
dG9yCisgICAgICAgIAorICAgICAgICAjIEZJWE1FOiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0
YSBpbiBvbmUgbG9hZCBmcm9tIHRoZSBzdGFjay4KKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHNjcmF0Y2gxCisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0
Y2gxXSwgc2NyYXRjaDEKKyAgICAgICAgCisgICAgICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0
aGUgZnJlZSBsaXN0LiAgICAKKyAgICAgICAgbG9hZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1h
cmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gxXSwgcmVzdWx0CisgICAgICAg
IGJ0cHogcmVzdWx0LCBzbG93Q2FzZQorICAgICAgICAKKyAgICAgICAgIyBSZW1vdmUgdGhlIG9i
amVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuCisgICAgICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNo
MgorICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRB
bGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0KKyAgICAKKyAgICAgICAgIyBJbml0
aWFsaXplIHRoZSBvYmplY3QuCisgICAgICAgIGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNo
MV0sIHNjcmF0Y2gyCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgW3Jlc3VsdF0KKyAgICAgICAg
c3RvcmVwIHN0cnVjdHVyZSwgSlNDZWxsOjptX3N0cnVjdHVyZVtyZXN1bHRdCisgICAgICAgIHN0
b3JlcCAwLCBKU09iamVjdDo6bV9pbmhlcml0b3JJRFtyZXN1bHRdCisgICAgICAgIGFkZHAgc2l6
ZW9mIEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0Y2gxCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMSwg
SlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Jlc3VsdF0KKyAgICBlbmQKK2VuZAorCisKKyMg
SW5kaWNhdGUgdGhlIGJlZ2lubmluZyBvZiBMTEludC4KK19sbGludF9iZWdpbjoKKyAgICBjcmFz
aCgpCisKKworX2xsaW50X3Byb2dyYW1fcHJvbG9ndWU6CisgICAgcHJvbG9ndWUobm90RnVuY3Rp
b25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50
cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxp
bnRfZXZhbF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRl
ciwgbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90
cmFjZV9wcm9sb2d1ZSkKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9mdW5jdGlvbl9mb3Jf
Y2FsbF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0
ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zv
cl9jYWxsLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NhbGwpCisuZnVuY3Rp
b25Gb3JDYWxsQmVnaW46CisgICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigwKQorICAgIGRpc3Bh
dGNoKDApCisgICAgCisKK19sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlOgor
ICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlv
bkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0
LCBfbGxpbnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCkKKy5mdW5jdGlv
bkZvckNvbnN0cnVjdEJlZ2luOgorICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMSkKKyAgICBk
aXNwYXRjaCgwKQorICAgIAorCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6
CisgICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNv
ZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eUNo
ZWNrLCBfbGxpbnRfdHJhY2VfYXJpdHlDaGVja19mb3JfY2FsbCkKKyAgICBmdW5jdGlvbkFyaXR5
Q2hlY2soLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfYXJpdHlD
aGVjaykKKworCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjazoKKyAg
ICBwcm9sb2d1ZShmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25D
b2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9h
cml0eUNoZWNrLCBfbGxpbnRfdHJhY2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQorICAgIGZ1
bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3df
cGF0aF9jb25zdHJ1Y3RfYXJpdHlDaGVjaykKKworCisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNw
ZWNpZmljIGNvZGUuCiBpZiBKU1ZBTFVFNjQKICAgICBpbmNsdWRlIExvd0xldmVsSW50ZXJwcmV0
ZXI2NAogZWxzZQogICAgIGluY2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0CiBlbmQKIAor
CisjIExhc3RseSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9u
J3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KKyMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJp
c2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKKyMgYXMgbXVjaC4K
KworbWFjcm8gbm90U3VwcG9ydGVkKCkKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBj
cmFzaCgpCisgICAgZWxzZQorICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIgdGhlIHNt
YWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCisgICAgICAgICMgZW5zdXJl
IHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMuIElmIG11bHRp
cGxlCisgICAgICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91bGQgcGlj
ayB0aGUgb25lIHRoYXQgaXMgbW9zdAorICAgICAgICAjIGxpa2VseSByZXN1bHQgaW4gZXhlY3V0
aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCisgICAgICAgICMg
aW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3RlZCBpbi4gKEJy
ZWFrIGlzIGludDMKKyAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRlLCBhbmQgYmtw
dCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRlcy4pCisgICAgICAgIGJyZWFrCisgICAgZW5kCitl
bmQKKworX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkKKwor
X2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRf
b3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRf
b3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRf
b3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9v
cF9nZXRfYnlfaWRfZ2VuZXJpYzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0
X2J5X2lkX2dldHRlcl9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0
X2J5X2lkX2dldHRlcl9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0
X2J5X2lkX2dldHRlcl9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRf
YnlfaWRfcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9z
ZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfc3RyaW5nX2xlbmd0aDoK
KyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6CisgICAg
bm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgorICAgIG5vdFN1
cHBvcnRlZCgpCisKK19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKKyAgICBub3RTdXBw
b3J0ZWQoKQorCisKKyMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KK19sbGludF9lbmQ6Cisg
ICAgY3Jhc2goKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12
Ny5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12
Ny5yYgkocmV2aXNpb24gMTA5MDM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vYXJtdjcucmIJKHdvcmtpbmcgY29weSkKQEAgLTMzLDI5ICszMyw5IEBAIGNsYXNzIE5vZGUK
IGVuZAogCiBjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCi0gICAgZGVmIGluaXRp
YWxpemUobmFtZSkKLSAgICAgICAgQG5hbWUgPSBuYW1lCi0gICAgZW5kCi0gICAgCiAgICAgZGVm
IGFybVY3T3BlcmFuZAogICAgICAgICBAbmFtZQogICAgIGVuZAotICAgIAotICAgIGRlZiBhZGRy
ZXNzPwotICAgICAgICBmYWxzZQotICAgIGVuZAotICAgIAotICAgIGRlZiBsYWJlbD8KLSAgICAg
ICAgZmFsc2UKLSAgICBlbmQKLSAgICAKLSAgICBkZWYgaW1tZWRpYXRlPwotICAgICAgICBmYWxz
ZQotICAgIGVuZAotICAgIAotICAgIGRlZiByZWdpc3Rlcj8KLSAgICAgICAgdHJ1ZQotICAgIGVu
ZAogZW5kCiAKIEFSTXY3X0VYVFJBX0dQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygicjkiKSwg
U3BlY2lhbFJlZ2lzdGVyLm5ldygicjgiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjMiKV0KQEAg
LTQ2OSw3ICs0NDksNyBAQCBkZWYgYXJtVjdMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMobGlzdCkK
ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9k
ZS5hcm1WN0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlc1JlY3Vyc2UobmV3TGlzdCkKICAgICAgICAg
ICAgICAgICBlbmQKLSAgICAgICAgICAgIHdoZW4gIm11bGkiCisgICAgICAgICAgICB3aGVuICJt
dWxpIiwgIm11bHAiCiAgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJ
bW1lZGlhdGUKICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6
Z3ByKQogICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCkBAIC01MzUsOSAr
NTE1LDkgQEAgZGVmIGFybVY3TG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMobGlzdCkKICAgICAgICAg
aWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgcG9zdEluc3RydWN0aW9ucyA9
IFtdCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCi0gICAgICAgICAgICB3aGVuICJhZGRp
IiwgImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAibXVsaSIsICJu
ZWdpIiwgIm5vdGkiLCAib3JpIiwgIm9yaXMiLAotICAgICAgICAgICAgICAgICJvcnAiLCAicnNo
aWZ0aSIsICJ1cnNoaWZ0aSIsICJzdWJpIiwgInN1YnAiLCAic3ViaXMiLCAieG9yaSIsICJ4b3Jw
IiwgL15iaS8sIC9eYnAvLCAvXmJ0aS8sCi0gICAgICAgICAgICAgICAgL15idHAvLCAvXmNpLywg
L15jcC8sIC9edGkvCisgICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAi
YW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAibXVsaSIsICJtdWxwIiwgIm5lZ2kiLCAibm90aSIs
ICJvcmkiLAorICAgICAgICAgICAgICAgICJvcmlzIiwgIm9ycCIsICJyc2hpZnRpIiwgInVyc2hp
ZnRpIiwgInN1YmkiLCAic3VicCIsICJzdWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJpLywgL15i
cC8sCisgICAgICAgICAgICAgICAgL15idGkvLCAvXmJ0cC8sIC9eY2kvLCAvXmNwLywgL150aS8K
ICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmln
aW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNv
ZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJtVjdBc1Jl
Z2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzLCAiaSIpKQpA
QCAtNjQ5LDcgKzYyOSw3IEBAIGVuZAogIwogCiBjbGFzcyBTZXF1ZW5jZQotICAgIGRlZiBsb3dl
ckFSTXY3CisgICAgZGVmIGdldE1vZGlmaWVkTGlzdEFSTXY3CiAgICAgICAgIG15TGlzdCA9IEBs
aXN0CiAgICAgICAgIAogICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIHdpbGwgb25seSBzZWUgaW5z
dHJ1Y3Rpb25zIGFuZCBsYWJlbHMuCkBAIC02NzMsMTAgKzY1Myw4IEBAIGNsYXNzIFNlcXVlbmNl
CiAgICAgICAgIG15TGlzdCA9IGFybVY3TG93ZXJSZWdpc3RlclJldXNlKG15TGlzdCkKICAgICAg
ICAgbXlMaXN0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhteUxpc3QsIDpncHIsIEFS
TXY3X0VYVFJBX0dQUlMpCiAgICAgICAgIG15TGlzdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9y
YXJpZXMobXlMaXN0LCA6ZnByLCBBUk12N19FWFRSQV9GUFJTKQotICAgICAgICBteUxpc3QuZWFj
aCB7Ci0gICAgICAgICAgICB8IG5vZGUgfAotICAgICAgICAgICAgbm9kZS5sb3dlcigiQVJNdjci
KQotICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbXlMaXN0CiAgICAgZW5kCiBl
bmQKIApAQCAtNzk4LDcgKzc3Niw3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBl
bWl0QXJtVjdDb21wYWN0KCJhc3JzIiwgImFzcnMiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAi
dXJzaGlmdGkiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJsc3JzIiwgImxzcnMiLCBv
cGVyYW5kcykKLSAgICAgICAgd2hlbiAibXVsaSIKKyAgICAgICAgd2hlbiAibXVsaSIsICJtdWxw
IgogICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAyIG9yIG9wZXJhbmRzWzBdID09IG9w
ZXJhbmRzWzJdIG9yIG9wZXJhbmRzWzFdID09IG9wZXJhbmRzWzJdCiAgICAgICAgICAgICAgICAg
ZW1pdEFybVY3KCJtdWxzIiwgb3BlcmFuZHMpCiAgICAgICAgICAgICBlbHNlCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiCShyZXZpc2lvbiAxMDkwMzYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIJKHdvcmtpbmcgY29weSkKQEAg
LTE2Miw2ICsxNjIsNyBAQCBGaWxlLm9wZW4ob3V0cHV0RmxubSwgInciKSB7CiAgICAgICAgIGZv
clNldHRpbmdzKGNvbXB1dGVTZXR0aW5nc0NvbWJpbmF0aW9ucyhhc3QpW2NvbmZpZ0luZGV4XSwg
YXN0KSB7CiAgICAgICAgICAgICB8IGNvbmNyZXRlU2V0dGluZ3MsIGxvd0xldmVsQVNULCBiYWNr
ZW5kIHwKICAgICAgICAgICAgIGxvd0xldmVsQVNUID0gbG93TGV2ZWxBU1QucmVzb2x2ZSgqYnVp
bGRPZmZzZXRzTWFwKGxvd0xldmVsQVNULCBvZmZzZXRzTGlzdCkpCisgICAgICAgICAgICBsb3dM
ZXZlbEFTVC52YWxpZGF0ZQogICAgICAgICAgICAgZW1pdENvZGVJbkNvbmZpZ3VyYXRpb24oY29u
Y3JldGVTZXR0aW5ncywgbG93TGV2ZWxBU1QsIGJhY2tlbmQpIHsKICAgICAgICAgICAgICAgICAk
YXNtLmluQXNtIHsKICAgICAgICAgICAgICAgICAgICAgbG93TGV2ZWxBU1QubG93ZXIoYmFja2Vu
ZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIJKHJldmlzaW9u
IDEwOTAzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkod29y
a2luZyBjb3B5KQpAQCAtMzgzLDYgKzM4MywxNTcgQEAgY2xhc3MgTmVnSW1tZWRpYXRlIDwgTm9k
ZQogICAgIGVuZAogZW5kCiAKK2NsYXNzIE9ySW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3Jl
YWRlciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwg
bGVmdCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0g
bGVmdAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGls
ZHJlbgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFw
Q2hpbGRyZW4KKyAgICAgICAgT3JJbW1lZGlhdGVzLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGxl
ZnQpLCAoeWllbGQgQHJpZ2h0KSkKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAorICAgICAg
ICAiKCN7bGVmdC5kdW1wfSB8ICN7cmlnaHQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRl
ZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8K
KyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAg
ICB0cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQor
ICAgIGVuZAorZW5kCisKK2NsYXNzIEFuZEltbWVkaWF0ZXMgPCBOb2RlCisgICAgYXR0cl9yZWFk
ZXIgOmxlZnQsIDpyaWdodAorICAgIAorICAgIGRlZiBpbml0aWFsaXplKGNvZGVPcmlnaW4sIGxl
ZnQsIHJpZ2h0KQorICAgICAgICBzdXBlcihjb2RlT3JpZ2luKQorICAgICAgICBAbGVmdCA9IGxl
ZnQKKyAgICAgICAgQHJpZ2h0ID0gcmlnaHQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRy
ZW4KKyAgICAgICAgW0BsZWZ0LCBAcmlnaHRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1hcENo
aWxkcmVuCisgICAgICAgIEFuZEltbWVkaWF0ZXMubmV3KGNvZGVPcmlnaW4sICh5aWVsZCBAbGVm
dCksICh5aWVsZCBAcmlnaHQpKQorICAgIGVuZAorICAgIAorICAgIGRlZiBkdW1wCisgICAgICAg
ICIoI3tsZWZ0LmR1bXB9ICYgI3tyaWdodC5kdW1wfSkiCisgICAgZW5kCisgICAgCisgICAgZGVm
IGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPwor
ICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAg
IHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZhbHNlCisg
ICAgZW5kCitlbmQKKworY2xhc3MgWG9ySW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRl
ciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVm
dCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVm
dAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJl
bgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hp
bGRyZW4KKyAgICAgICAgWG9ySW1tZWRpYXRlcy5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBsZWZ0
KSwgKHlpZWxkIEByaWdodCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAg
Iigje2xlZnQuZHVtcH0gXiAje3JpZ2h0LmR1bXB9KSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYg
YWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/Cisg
ICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAg
dHJ1ZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgZmFsc2UKKyAg
ICBlbmQKK2VuZAorCitjbGFzcyBCaXRub3RJbW1lZGlhdGUgPCBOb2RlCisgICAgYXR0cl9yZWFk
ZXIgOmNoaWxkCisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgY2hpbGQpCisg
ICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBjaGlsZCA9IGNoaWxkCisgICAgZW5k
CisgICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtAY2hpbGRdCisgICAgZW5kCisgICAg
CisgICAgZGVmIG1hcENoaWxkcmVuCisgICAgICAgIEJpdG5vdEltbWVkaWF0ZS5uZXcoY29kZU9y
aWdpbiwgKHlpZWxkIEBjaGlsZCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAg
ICAgIih+I3tAY2hpbGQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPwor
ICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFs
c2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAg
ZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5k
CisKIGNsYXNzIFJlZ2lzdGVySUQgPCBOb0NoaWxkcmVuCiAgICAgYXR0cl9yZWFkZXIgOm5hbWUK
ICAgICAKQEAgLTQ1OSw2ICs2MTAsMjggQEAgY2xhc3MgRlBSZWdpc3RlcklEIDwgTm9DaGlsZHJl
bgogICAgIGVuZAogZW5kCiAKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAg
ICBkZWYgaW5pdGlhbGl6ZShuYW1lKQorICAgICAgICBAbmFtZSA9IG5hbWUKKyAgICBlbmQKKyAg
ICAKKyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBk
ZWYgbGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0
ZT8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAg
ICAgIHRydWUKKyAgICBlbmQKK2VuZAorCiBjbGFzcyBWYXJpYWJsZSA8IE5vQ2hpbGRyZW4KICAg
ICBhdHRyX3JlYWRlciA6bmFtZQogICAgIApAQCAtNDc5LDYgKzY1MiwxMCBAQCBjbGFzcyBWYXJp
YWJsZSA8IE5vQ2hpbGRyZW4KICAgICBkZWYgZHVtcAogICAgICAgICBuYW1lCiAgICAgZW5kCisg
ICAgCisgICAgZGVmIGluc3BlY3QKKyAgICAgICAgIjx2YXJpYWJsZSAje25hbWV9IGF0ICN7Y29k
ZU9yaWdpblN0cmluZ30+IgorICAgIGVuZAogZW5kCiAKIGNsYXNzIEFkZHJlc3MgPCBOb2RlCkBA
IC03NTcsNiArOTM0LDEwIEBAIGNsYXNzIExhYmVsUmVmZXJlbmNlIDwgTm9kZQogICAgIGRlZiBs
YWJlbD8KICAgICAgICAgdHJ1ZQogICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/Cisg
ICAgICAgIGZhbHNlCisgICAgZW5kCiBlbmQKIAogY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8
IE5vQ2hpbGRyZW4KQEAgLTc5MCw2ICs5NzEsMTAgQEAgY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5j
ZSA8IE5vQ2hpbGRyZW4KICAgICBkZWYgbGFiZWw/CiAgICAgICAgIHRydWUKICAgICBlbmQKKyAg
ICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICBmYWxzZQorICAgIGVuZAogZW5kCiAKIGNs
YXNzIFNlcXVlbmNlIDwgTm9kZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vYmFja2VuZHMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYmFja2VuZHMucmIJKHJldmlzaW9uIDEwOTAzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCwx
MiBAQCBCQUNLRU5EX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoJyArIEJBCiAKIGNsYXNzIE5v
ZGUKICAgICBkZWYgbG93ZXIobmFtZSkKLSAgICAgICAgJGFjdGl2ZUJhY2tlbmQgPSBuYW1lCi0g
ICAgICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAgICAgIGJlZ2luCisgICAgICAgICAgICAk
YWN0aXZlQmFja2VuZCA9IG5hbWUKKyAgICAgICAgICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisg
ICAgICAgIHJlc2N1ZSA9PiBlCisgICAgICAgICAgICByYWlzZSAiR290IGVycm9yICN7ZX0gYXQg
I3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtODcs
NyArOTEsMTMgQEAgZW5kCiBjbGFzcyBTZXF1ZW5jZQogICAgIGRlZiBsb3dlcihuYW1lKQogICAg
ICAgICAkYWN0aXZlQmFja2VuZCA9IG5hbWUKLSAgICAgICAgaWYgcmVzcG9uZF90bz8gImxvd2Vy
I3tuYW1lfSIKKyAgICAgICAgaWYgcmVzcG9uZF90bz8gImdldE1vZGlmaWVkTGlzdCN7bmFtZX0i
CisgICAgICAgICAgICBuZXdMaXN0ID0gc2VuZCgiZ2V0TW9kaWZpZWRMaXN0I3tuYW1lfSIpCisg
ICAgICAgICAgICBuZXdMaXN0LmVhY2ggeworICAgICAgICAgICAgICAgIHwgbm9kZSB8CisgICAg
ICAgICAgICAgICAgbm9kZS5sb3dlcihuYW1lKQorICAgICAgICAgICAgfQorICAgICAgICBlbHNp
ZiByZXNwb25kX3RvPyAibG93ZXIje25hbWV9IgogICAgICAgICAgICAgc2VuZCgibG93ZXIje25h
bWV9IikKICAgICAgICAgZWxzZQogICAgICAgICAgICAgQGxpc3QuZWFjaCB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZp
c2lvbiAxMDkwMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVj
dGlvbnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw2ICsxNTksNyBAQCBNQUNST19JTlNUUlVD
VElPTlMgPQogICAgICAiYnBsdCIsCiAgICAgICJicGx0ZXEiLAogICAgICAiYWRkcCIsCisgICAg
ICJtdWxwIiwKICAgICAgImFuZHAiLAogICAgICAib3JwIiwKICAgICAgInN1YnAiLApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgkocmV2aXNpb24gMTA5
MDM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAgZGVmIGxleChzdHIsIGZpbGVOYW1lKQogICAg
ICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGlu
ZU51bWJlciksICQmKQogICAgICAgICB3aGVuIC9cQTo6LwogICAgICAgICAgICAgcmVzdWx0IDw8
IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQmKQotICAg
ICAgICB3aGVuIC9cQVs6LFwoXClcW1xdPVwrXC0qXS8KKyAgICAgICAgd2hlbiAvXEFbOixcKFwp
XFtcXT1cK1wtflx8Jl4qXS8KICAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9y
aWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIpLCAkJikKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgcmFpc2UgIkxleGVyIGVycm9yIGF0ICN7Q29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxp
bmVOdW1iZXIpLnRvX3N9LCB1bmV4cGVjdGVkIHNlcXVlbmNlICN7c3RyWzAuLjIwXS5pbnNwZWN0
fSIKQEAgLTMyMiw2ICszMjIsOSBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgaWYgQHRva2Vuc1tA
aWR4XSA9PSAiLSIKICAgICAgICAgICAgIEBpZHggKz0gMQogICAgICAgICAgICAgTmVnSW1tZWRp
YXRlLm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCBwYXJzZUV4cHJlc3Npb25BdG9t
KQorICAgICAgICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJ+IgorICAgICAgICAgICAgQGlkeCAr
PSAxCisgICAgICAgICAgICBCaXRub3RJbW1lZGlhdGUubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNv
ZGVPcmlnaW4sIHBhcnNlRXhwcmVzc2lvbkF0b20pCiAgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlk
eF0gPT0gIigiCiAgICAgICAgICAgICBAaWR4ICs9IDEKICAgICAgICAgICAgIHJlc3VsdCA9IHBh
cnNlRXhwcmVzc2lvbgpAQCAtMzY1LDEwICszNjgsMTAgQEAgY2xhc3MgUGFyc2VyCiAgICAgZW5k
CiAgICAgCiAgICAgZGVmIGNvdWxkQmVFeHByZXNzaW9uCi0gICAgICAgIEB0b2tlbnNbQGlkeF0g
PT0gIi0iIG9yIEB0b2tlbnNbQGlkeF0gPT0gInNpemVvZiIgb3IgaXNJbnRlZ2VyKEB0b2tlbnNb
QGlkeF0pIG9yIGlzVmFyaWFibGUoQHRva2Vuc1tAaWR4XSkgb3IgQHRva2Vuc1tAaWR4XSA9PSAi
KCIKKyAgICAgICAgQHRva2Vuc1tAaWR4XSA9PSAiLSIgb3IgQHRva2Vuc1tAaWR4XSA9PSAifiIg
b3IgQHRva2Vuc1tAaWR4XSA9PSAic2l6ZW9mIiBvciBpc0ludGVnZXIoQHRva2Vuc1tAaWR4XSkg
b3IgaXNWYXJpYWJsZShAdG9rZW5zW0BpZHhdKSBvciBAdG9rZW5zW0BpZHhdID09ICIoIgogICAg
IGVuZAogICAgIAotICAgIGRlZiBwYXJzZUV4cHJlc3Npb24KKyAgICBkZWYgcGFyc2VFeHByZXNz
aW9uQWRkCiAgICAgICAgIHNraXBOZXdMaW5lCiAgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVz
c2lvbk11bAogICAgICAgICB3aGlsZSBAdG9rZW5zW0BpZHhdID09ICIrIiBvciBAdG9rZW5zW0Bp
ZHhdID09ICItIgpAQCAtMzg1LDYgKzM4OCwzMyBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgcmVz
dWx0CiAgICAgZW5kCiAgICAgCisgICAgZGVmIHBhcnNlRXhwcmVzc2lvbkFuZAorICAgICAgICBz
a2lwTmV3TGluZQorICAgICAgICByZXN1bHQgPSBwYXJzZUV4cHJlc3Npb25BZGQKKyAgICAgICAg
d2hpbGUgQHRva2Vuc1tAaWR4XSA9PSAiJiIKKyAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAg
ICAgICAgcmVzdWx0ID0gQW5kSW1tZWRpYXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9y
aWdpbiwgcmVzdWx0LCBwYXJzZUV4cHJlc3Npb25BZGQpCisgICAgICAgIGVuZAorICAgICAgICBy
ZXN1bHQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uCisgICAgICAgIHNr
aXBOZXdMaW5lCisgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbkFuZAorICAgICAgICB3
aGlsZSBAdG9rZW5zW0BpZHhdID09ICJ8IiBvciBAdG9rZW5zW0BpZHhdID09ICJeIgorICAgICAg
ICAgICAgaWYgQHRva2Vuc1tAaWR4XSA9PSAifCIKKyAgICAgICAgICAgICAgICBAaWR4ICs9IDEK
KyAgICAgICAgICAgICAgICByZXN1bHQgPSBPckltbWVkaWF0ZXMubmV3KEB0b2tlbnNbQGlkeCAt
IDFdLmNvZGVPcmlnaW4sIHJlc3VsdCwgcGFyc2VFeHByZXNzaW9uQW5kKQorICAgICAgICAgICAg
ZWxzaWYgQHRva2Vuc1tAaWR4XSA9PSAiXiIKKyAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAg
ICAgICAgICAgICAgICByZXN1bHQgPSBYb3JJbW1lZGlhdGVzLm5ldyhAdG9rZW5zW0BpZHggLSAx
XS5jb2RlT3JpZ2luLCByZXN1bHQsIHBhcnNlRXhwcmVzc2lvbkFuZCkKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAor
ICAgICAgICByZXN1bHQKKyAgICBlbmQKKyAgICAKICAgICBkZWYgcGFyc2VPcGVyYW5kKGNvbW1l
bnQpCiAgICAgICAgIHNraXBOZXdMaW5lCiAgICAgICAgIGlmIGNvdWxkQmVFeHByZXNzaW9uCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCShy
ZXZpc2lvbiAxMDkwMzYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdp
c3RlcnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDEyIEBAIEdQUlMgPQogICAgICAi
cjAiLAogICAgICAicjEiLAogICAgICAic3AiLAotICAgICAibHIiCisgICAgICJsciIsCisgICAg
IAorICAgICAjIDY0LWJpdCBvbmx5IHJlZ2lzdGVyczoKKyAgICAgImNzcjAiLCAgIyByMTAKKyAg
ICAgImNzcjEiLCAgIyByMTQsIHRhZyB0eXBlIG51bWJlciByZWdpc3RlcgorICAgICAiY3NyMiIg
ICAjIHIxNSwgdGFnIG1hc2sgcmVnaXN0ZXIKICAgICBdCiAKIEZQUlMgPQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJiCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3RyYW5zZm9ybS5yYgkocmV2aXNpb24gMTA5
MDM2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJiCSh3
b3JraW5nIGNvcHkpCkBAIC0zMjgsNiArMzI4LDQ0IEBAIGNsYXNzIE5lZ0ltbWVkaWF0ZQogICAg
IGVuZAogZW5kCiAKK2NsYXNzIE9ySW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBs
ZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICBy
ZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBz
ZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXco
Y29kZU9yaWdpbiwgQGxlZnQudmFsdWUgfCBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKwor
Y2xhc3MgQW5kSW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQu
Zm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1
bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBA
cmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwg
QGxlZnQudmFsdWUgJiBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgWG9ySW1t
ZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAg
ICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQu
aXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8g
SW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUg
XiBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgQml0bm90SW1tZWRpYXRlCisg
ICAgZGVmIGZvbGQKKyAgICAgICAgQGNoaWxkID0gQGNoaWxkLmZvbGQKKyAgICAgICAgcmV0dXJu
IHNlbGYgdW5sZXNzIEBjaGlsZC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5l
dyhjb2RlT3JpZ2luLCB+QGNoaWxkLnZhbHVlKQorICAgIGVuZAorZW5kCisKICMKICMgbm9kZS5y
ZXNvbHZlQWZ0ZXJTZXR0aW5ncyhvZmZzZXRzLCBzaXplcykKICMKQEAgLTM0MCwzICszNzgsOTcg
QEAgY2xhc3MgTm9kZQogICAgIGVuZAogZW5kCiAKKyMKKyMgbm9kZS52YWxpZGF0ZQorIworIyBD
aGVja3MgdGhhdCB0aGUgbm9kZSBpcyByZWFkeSBmb3IgYmFja2VuZCBjb21waWxhdGlvbi4KKyMK
KworY2xhc3MgTm9kZQorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICByYWlzZSAiVW5yZXNvbHZl
ZCAje2R1bXB9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgZW5kCisgICAgCisgICAgZGVm
IHZhbGlkYXRlQ2hpbGRyZW4KKyAgICAgICAgY2hpbGRyZW4uZWFjaCB7CisgICAgICAgICAgICB8
IG5vZGUgfAorICAgICAgICAgICAgbm9kZS52YWxpZGF0ZQorICAgICAgICB9CisgICAgZW5kCitl
bmQKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVD
aGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2YWxpZGF0
ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYgdmFsaWRhdGUKKyAg
ICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBl
bmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIHZhbGlkYXRlCisgICAgICAgIHZhbGlk
YXRlQ2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFzcyBCYXNlSW5kZXgKKyAgICBkZWYgdmFs
aWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEFi
c29sdXRlQWRkcmVzcworICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVu
CisgICAgZW5kCitlbmQKKworY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYgdmFsaWRhdGUKKyAg
ICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEVycm9yCisgICAg
ZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgTGFiZWwKKyAgICBkZWYgdmFsaWRh
dGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBMb2NhbExhYmVsCisgICAgZGVmIHZhbGlkYXRlCisg
ICAgZW5kCitlbmQKKworY2xhc3MgTGFiZWxSZWZlcmVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAg
ICBlbmQKK2VuZAorCitjbGFzcyBMb2NhbExhYmVsUmVmZXJlbmNlCisgICAgZGVmIHZhbGlkYXRl
CisgICAgZW5kCitlbmQKKworY2xhc3MgU2tpcAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAor
ZW5kCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHJldmlz
aW9uIDEwOTAzNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgko
d29ya2luZyBjb3B5KQpAQCAtMzIsMTMgKzMyLDM3IEBAIGRlZiBpc1g2NAogICAgIGVuZAogZW5k
CiAKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgeDg2T3BlcmFu
ZChraW5kKQorICAgICAgICByYWlzZSB1bmxlc3MgQG5hbWUgPX4gL15yLworICAgICAgICByYWlz
ZSB1bmxlc3MgaXNYNjQKKyAgICAgICAgY2FzZSBraW5kCisgICAgICAgIHdoZW4gOmhhbGYKKyAg
ICAgICAgICAgICIlIiArIEBuYW1lICsgInciCisgICAgICAgIHdoZW4gOmludAorICAgICAgICAg
ICAgIiUiICsgQG5hbWUgKyAiZCIKKyAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAiJSIg
KyBAbmFtZQorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZQorICAgICAgICBlbmQKKyAg
ICBlbmQKKyAgICBkZWYgeDg2Q2FsbE9wZXJhbmQoa2luZCkKKyAgICAgICAgIioje3g4Nk9wZXJh
bmQoa2luZCl9IgorICAgIGVuZAorZW5kCisKK1g2NF9TQ1JBVENIX1JFR0lTVEVSID0gU3BlY2lh
bFJlZ2lzdGVyLm5ldygicjExIikKKwogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBzdXBwb3J0
czhCaXRPblg4NgogICAgICAgICBjYXNlIG5hbWUKICAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAi
cjAiLCAidDEiLCAiYTEiLCAicjEiLCAidDIiLCAidDMiCiAgICAgICAgICAgICB0cnVlCi0gICAg
ICAgIHdoZW4gInQ0IiwgImNmciIKKyAgICAgICAgd2hlbiAiY2ZyIiwgInR0bnIiLCAidG1yIgog
ICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgd2hlbiAidDQiLCAidDUiCisgICAgICAgICAgICBp
c1g2NAogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZQogICAgICAgICBlbmQKQEAgLTEx
MiwxNyArMTM2LDMwIEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgICAgICByYWlzZQog
ICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gImNmciIKLSAgICAgICAgICAgIGNhc2Uga2lu
ZAotICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgICIlZGlsIgotICAgICAg
ICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlZGkiCi0gICAgICAgICAgICB3aGVu
IDppbnQKLSAgICAgICAgICAgICAgICAiJWVkaSIKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAg
ICAgICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogIiVlZGkiCisgICAgICAgICAgICBpZiBpc1g2
NAorICAgICAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgICAgIHdoZW4gOmhhbGYK
KyAgICAgICAgICAgICAgICAgICAgIiVyMTN3IgorICAgICAgICAgICAgICAgIHdoZW4gOmludAor
ICAgICAgICAgICAgICAgICAgICAiJXIxM2QiCisgICAgICAgICAgICAgICAgd2hlbiA6cHRyCisg
ICAgICAgICAgICAgICAgICAgICIlcjEzIgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAg
ICAgICAgICAgIHdoZW4gOmJ5dGUKKyAgICAgICAgICAgICAgICAgICAgIiVkaWwiCisgICAgICAg
ICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAg
ICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAg
ICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGVuZAog
ICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gInNwIgogICAgICAgICAgICAgY2FzZSBraW5k
CkBAIC0xMzcsNiArMTc0LDQ4IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gInQ1
IgorICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0
ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5k
CisgICAgICAgICAgICB3aGVuIDpieXRlCisgICAgICAgICAgICAgICAgIiVkaWwiCisgICAgICAg
ICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVkaSIKKyAgICAgICAgICAgIHdoZW4g
OmludAorICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAg
ICAgICAgICAgICAgIiVyZGkiCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3NyMCIK
KyAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAj
e2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAor
ICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICIlcjEwdyIKKyAgICAgICAg
ICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlcjEwZCIKKyAgICAgICAgICAgIHdoZW4g
OnB0cgorICAgICAgICAgICAgICAgICIlcjEwIgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdo
ZW4gImNzcjEiCisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJp
dCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBj
YXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJXIxNHci
CisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAgICAiJXIxNGQiCisgICAgICAg
ICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXIxNCIKKyAgICAgICAgICAgIGVuZAor
ICAgICAgICB3aGVuICJjc3IyIgorICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1l
fSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAg
ICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAg
ICAgIiVyMTV3IgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVyMTVk
IgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgIiVyMTUiCisgICAgICAg
ICAgICBlbmQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAj
e25hbWV9IGZvciBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKICAgICAgICAgZW5kCkBAIC0x
NzIsNiArMjUxLDEzIEBAIGNsYXNzIEZQUmVnaXN0ZXJJRAogZW5kCiAKIGNsYXNzIEltbWVkaWF0
ZQorICAgIGRlZiB2YWxpZFg4NkltbWVkaWF0ZT8KKyAgICAgICAgaWYgaXNYNjQKKyAgICAgICAg
ICAgIHZhbHVlID49IC0weDgwMDAwMDAwIGFuZCB2YWx1ZSA8PSAweDdmZmZmZmZmCisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHRydWUKKyAgICAgICAgZW5kCisgICAgZW5kCiAgICAgZGVmIHg4
Nk9wZXJhbmQoa2luZCkKICAgICAgICAgIiQje3ZhbHVlfSIKICAgICBlbmQKQEAgLTIxMCw3ICsy
OTYsNyBAQCBjbGFzcyBCYXNlSW5kZXgKICAgICBlbmQKIAogICAgIGRlZiB4ODZDYWxsT3BlcmFu
ZChraW5kKQotICAgICAgICAiKiN7eDg2b3BlcmFuZChraW5kKX0iCisgICAgICAgICIqI3t4ODZP
cGVyYW5kKGtpbmQpfSIKICAgICBlbmQKIGVuZAogCkBAIC0yNDQsNiArMzMwLDQ3IEBAIGNsYXNz
IExvY2FsTGFiZWxSZWZlcmVuY2UKICAgICBlbmQKIGVuZAogCitjbGFzcyBTZXF1ZW5jZQorICAg
IGRlZiBnZXRNb2RpZmllZExpc3RYODZfNjQKKyAgICAgICAgbmV3TGlzdCA9IFtdCisgICAgICAg
IAorICAgICAgICBAbGlzdC5lYWNoIHsKKyAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAg
ICBuZXdOb2RlID0gbm9kZQorICAgICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgor
ICAgICAgICAgICAgICAgIHVubGVzcyBub2RlLm9wY29kZSA9PSAibW92ZSIKKyAgICAgICAgICAg
ICAgICAgICAgdXNlZFNjcmF0Y2ggPSBmYWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdPcGVy
YW5kcyA9IG5vZGUub3BlcmFuZHMubWFwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHwgb3Bl
cmFuZCB8CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBvcGVyYW5kLmltbWVkaWF0ZT8gYW5k
IG5vdCBvcGVyYW5kLnZhbGlkWDg2SW1tZWRpYXRlPworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIHVzZWRTY3JhdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNl
ICJBdHRlbXB0IHRvIHVzZSBzY3JhdGNoIHJlZ2lzdGVyIHR3aWNlIGF0ICN7b3BlcmFuZC5jb2Rl
T3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhvcGVyYW5kLmNv
ZGVPcmlnaW4sICJtb3ZlIiwgW29wZXJhbmQsIFg2NF9TQ1JBVENIX1JFR0lTVEVSXSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1c2VkU2NyYXRjaCA9IHRydWUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBYNjRfU0NSQVRDSF9SRUdJU1RFUgorICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmQKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIG5ld05vZGUgPSBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29k
ZSwgbmV3T3BlcmFuZHMpCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdW5sZXNzIG5vZGUuaXNfYT8gTGFiZWwgb3IKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5vZGUuaXNfYT8gTG9jYWxMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICAg
ICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVk
ICN7bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0iIAorICAgICAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBpZiBuZXdOb2RlCisgICAgICAgICAg
ICAgICAgbmV3TGlzdCA8PCBuZXdOb2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgcmV0dXJuIG5ld0xpc3QKKyAgICBlbmQKK2VuZAorCiBjbGFzcyBJbnN0
cnVjdGlvbgogICAgIGRlZiB4ODZPcGVyYW5kcygqa2luZHMpCiAgICAgICAgIHJhaXNlIHVubGVz
cyBraW5kcy5zaXplID09IG9wZXJhbmRzLnNpemUKQEAgLTQ1OCw2ICs1ODUsMTYgQEAgY2xhc3Mg
SW5zdHJ1Y3Rpb24KICAgICAgICAgZW5kCiAgICAgZW5kCiAgICAgCisgICAgZGVmIGhhbmRsZVg4
Nk11bChraW5kKQorICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBd
LmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICJpbXVsI3t4ODZTdWZmaXgo
a2luZCl9ICN7eDg2T3BlcmFuZHMoa2luZCwga2luZCwga2luZCl9IgorICAgICAgICBlbHNlCisg
ICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21lIHBlZXBob2xlIGluIGNhc2UgdGhlIGxl
ZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MKKyAgICAgICAgICAgICMgYSBwb3dlciBv
ZiB0d28uCisgICAgICAgICAgICBoYW5kbGVYODZPcCgiaW11bCN7eDg2U3VmZml4KGtpbmQpfSIs
IGtpbmQpCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIAogICAgIGRlZiBoYW5kbGVNb3ZlCiAg
ICAgICAgIGlmIEltbWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVyYW5kc1swXSBhbmQgb3BlcmFu
ZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRAogICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3Ije3g4NlN1
ZmZpeCg6cHRyKX0gI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1sx
XS54ODZPcGVyYW5kKDpwdHIpfSIKQEAgLTQ5MCwxMyArNjI3LDkgQEAgY2xhc3MgSW5zdHJ1Y3Rp
b24KICAgICAgICAgd2hlbiAibHNoaWZ0aSIKICAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJz
YWxsIiwgOmludCkKICAgICAgICAgd2hlbiAibXVsaSIKLSAgICAgICAgICAgIGlmIG9wZXJhbmRz
LnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCi0gICAgICAgICAgICAg
ICAgJGFzbS5wdXRzICJpbXVsbCAje3g4Nk9wZXJhbmRzKDppbnQsIDppbnQsIDppbnQpfSIKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21lIHBl
ZXBob2xlIGluIGNhc2UgdGhlIGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MKLSAg
ICAgICAgICAgICAgICAjIGEgcG93ZXIgb2YgdHdvLgotICAgICAgICAgICAgICAgIGhhbmRsZVg4
Nk9wKCJpbXVsbCIsIDppbnQpCi0gICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGhhbmRsZVg4
Nk11bCg6aW50KQorICAgICAgICB3aGVuICJtdWxwIgorICAgICAgICAgICAgaGFuZGxlWDg2TXVs
KDpwdHIpCiAgICAgICAgIHdoZW4gIm5lZ2kiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm5lZ2wg
I3t4ODZPcGVyYW5kcyg6aW50KX0iCiAgICAgICAgIHdoZW4gIm5vdGkiCkBAIC01MTYsNyArNjQ5
LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAieG9yaSIKICAgICAgICAgICAg
IGhhbmRsZVg4Nk9wKCJ4b3JsIiwgOmludCkKICAgICAgICAgd2hlbiAieG9ycCIKLSAgICAgICAg
ICAgIGhhbmRsZVg4Nk9wKCJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0iLCA6aW50KQorICAgICAgICAg
ICAgaGFuZGxlWDg2T3AoInhvciN7eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdo
ZW4gImxvYWRpIiwgInN0b3JlaSIKICAgICAgICAgICAgICRhc20ucHV0cyAibW92bCAje3g4Nk9w
ZXJhbmRzKDppbnQsIDppbnQpfSIKICAgICAgICAgd2hlbiAibG9hZHAiLCAic3RvcmVwIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129358</attachid>
            <date>2012-02-28 17:14:57 -0800</date>
            <delta_ts>2012-03-06 20:19:56 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_5.diff</filename>
            <type>text/plain</type>
            <size>69437</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5MTcwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTAyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTItMDItMjcgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBPbGQgSklUJ3Mgc3R5bGUgb2YgSlNWQUxVRTY0
IHN0cmljdCBlcXVhbGl0eSBpcyBzdWJ0bHkgd3JvbmcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShy
ZXZpc2lvbiAxMDkxNzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtNzAsMjggKzcwLDYgQEAKICMg
QmVsb3cgd2UgaGF2ZSBhIGJ1bmNoIG9mIGNvbnN0YW50IGRlY2xhcmF0aW9ucy4gRWFjaCBjb25z
dGFudCBtdXN0IGhhdmUKICMgYSBjb3JyZXNwb25kaW5nIEFTU0VSVCgpIGluIExMSW50RGF0YS5j
cHAuCiAKLSMgVGhlc2UgZGVjbGFyYXRpb25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0
ZXJGaWxlLmguCi1jb25zdCBDYWxsRnJhbWVIZWFkZXJTaXplID0gNDgKLWNvbnN0IEFyZ3VtZW50
Q291bnQgPSAtNDgKLWNvbnN0IENhbGxlckZyYW1lID0gLTQwCi1jb25zdCBDYWxsZWUgPSAtMzIK
LWNvbnN0IFNjb3BlQ2hhaW4gPSAtMjQKLWNvbnN0IFJldHVyblBDID0gLTE2Ci1jb25zdCBDb2Rl
QmxvY2sgPSAtOAotCi1jb25zdCBUaGlzQXJndW1lbnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVy
U2l6ZSAtIDgKLQotIyBEZWNsYXJlIHNvbWUgYWxpYXNlcyBmb3IgdGhlIHJlZ2lzdGVycyB3ZSB3
aWxsIHVzZS4KLWNvbnN0IFBDID0gdDQKLQotIyBPZmZzZXRzIG5lZWRlZCBmb3IgcmVhc29uaW5n
IGFib3V0IHZhbHVlIHJlcHJlc2VudGF0aW9uLgotaWYgQklHX0VORElBTgotICAgIGNvbnN0IFRh
Z09mZnNldCA9IDAKLSAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gNAotZWxzZQotICAgIGNvbnN0
IFRhZ09mZnNldCA9IDQKLSAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gMAotZW5kCiAKICMgVmFs
dWUgcmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgogY29uc3QgSW50MzJUYWcgPSAtMQpAQCAtMTAz
LDcxICs4MSw4IEBAIGNvbnN0IEVtcHR5VmFsdWVUYWcgPSAtNgogY29uc3QgRGVsZXRlZFZhbHVl
VGFnID0gLTcKIGNvbnN0IExvd2VzdFRhZyA9IERlbGV0ZWRWYWx1ZVRhZwogCi0jIFR5cGUgY29u
c3RhbnRzLgotY29uc3QgU3RyaW5nVHlwZSA9IDUKLWNvbnN0IE9iamVjdFR5cGUgPSAxMwotCi0j
IFR5cGUgZmxhZ3MgY29uc3RhbnRzLgotY29uc3QgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDEK
LWNvbnN0IEltcGxlbWVudHNIYXNJbnN0YW5jZSA9IDIKLWNvbnN0IEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UgPSA4Ci0KLSMgSGVhcCBhbGxvY2F0aW9uIGNvbnN0YW50cy4KLWNvbnN0IEpT
RmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDMKLQotIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0
YW50cy4KLWNvbnN0IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gMHg0MDAwMDAwMAotCi0j
IENvZGUgdHlwZSBjb25zdGFudHMuCi1jb25zdCBHbG9iYWxDb2RlID0gMAotY29uc3QgRXZhbENv
ZGUgPSAxCi1jb25zdCBGdW5jdGlvbkNvZGUgPSAyCi0KLSMgVGhlIGludGVycHJldGVyIHN0ZWFs
cyB0aGUgdGFnIHdvcmQgb2YgdGhlIGFyZ3VtZW50IGNvdW50LgotY29uc3QgTExJbnRSZXR1cm5Q
QyA9IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXQKLQotIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1Zl
Y3Rvci5oLgotY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKLWNvbnN0IFZlY3RvckJ1ZmZlck9m
ZnNldCA9IDQKLQotIyBTdHJpbmcgZmxhZ3MuCi1jb25zdCBIYXNoRmxhZ3M4Qml0QnVmZmVyID0g
NjQKIAogIyBVdGlsaXRpZXMKLW1hY3JvIGNyYXNoKCkKLSAgICBzdG9yZWkgMCwgMHhiYmFkYmVl
ZltdCi0gICAgbW92ZSAwLCB0MAotICAgIGNhbGwgdDAKLWVuZAotCi1tYWNybyBhc3NlcnQoYXNz
ZXJ0aW9uKQotICAgIGlmIEFTU0VSVF9FTkFCTEVECi0gICAgICAgIGFzc2VydGlvbigub2spCi0g
ICAgICAgIGNyYXNoKCkKLSAgICAub2s6Ci0gICAgZW5kCi1lbmQKLQotbWFjcm8gcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCi0gICAgaWYgQVJNdjcK
LSAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2lmIFg4NgotICAg
ICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAg
ICBlbmQKLWVuZAotCi1tYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3Vy
Y2VSZWdpc3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBs
cgotICAgIGVsc2lmIFg4NgotICAgICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVyCi0gICAgZWxzZQot
ICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KIG1hY3JvIGRpc3BhdGNoKGFkdmFuY2UpCiAg
ICAgYWRkcCBhZHZhbmNlICogNCwgUEMKICAgICBqbXAgW1BDXQpAQCAtMjIwLDggKzEzNSw4IEBA
IG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywKICAgICBjYWxsIGZ1bmN0
aW9uCiBlbmQKIAotbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKLSAgICBjQ2FsbDIoc2xv
d19wYXRoLCBjZnIsIFBDKQorbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGNDYWxs
MihzbG93UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQwLCBQQwogICAgIG1vdmUgdDEsIGNmcgog
ZW5kCkBAIC0yNDUsNDAgKzE2MCwxNSBAQCBtYWNybyB0cmFjZVZhbHVlKGZyb21XaGVyZSwgb3Bl
cmFuZCkKICAgICBtb3ZlIHQxLCBjZnIKIGVuZAogCi1tYWNybyB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKLSAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFj
ZSkKLSAgICBlbmQKLWVuZAotCi0jIENhbGwgYSBzbG93X3BhdGggZm9yIGNhbGwgb3Bjb2Rlcy4K
LW1hY3JvIGNhbGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd19wYXRoLCBhY3Rpb24pCisjIENh
bGwgYSBzbG93UGF0aCBmb3IgY2FsbCBvcGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChh
ZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9uKQogICAgIGFkZHAgYWR2YW5jZSAqIDQsIFBDLCB0MAog
ICAgIHN0b3JlcCB0MCwgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCi0gICAgY0NhbGwy
KHNsb3dfcGF0aCwgY2ZyLCBQQykKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAg
bW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAKLW1hY3JvIHNsb3dQYXRoRm9yQ2Fs
bChhZHZhbmNlLCBzbG93X3BhdGgpCi0gICAgY2FsbENhbGxTbG93UGF0aCgKLSAgICAgICAgYWR2
YW5jZSwKLSAgICAgICAgc2xvd19wYXRoLAotICAgICAgICBtYWNybyAoY2FsbGVlKQotICAgICAg
ICAgICAgY2FsbCBjYWxsZWUKLSAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLSAgICAg
ICAgZW5kKQotZW5kCi0KLW1hY3JvIGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24p
Ci0gICAgaWYgSklUX0VOQUJMRUQKLSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0g
ICAgICAgIGJhZGRpcyBpbmNyZW1lbnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVy
W3QwXSwgLmNvbnRpbnVlCi0gICAgICAgIGFjdGlvbigpCi0gICAgLmNvbnRpbnVlOgotICAgIGVu
ZAotZW5kCi0KIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKICAgICBjaGVja1N3aXRj
aFRvSklUKAogICAgICAgICAxLApAQCAtMjkzLDE4ICsxODMsNiBAQCBtYWNybyBjaGVja1N3aXRj
aFRvSklURm9yTG9vcCgpCiAgICAgICAgIGVuZCkKIGVuZAogCi1tYWNybyBjaGVja1N3aXRjaFRv
SklURm9yRXBpbG9ndWUoKQotICAgIGNoZWNrU3dpdGNoVG9KSVQoCi0gICAgICAgIDEwLAotICAg
ICAgICBtYWNybyAoKQotICAgICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQot
ICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gYXNzZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCi0gICAg
YXNzZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgs
IG9rIGVuZCkKLWVuZAotCiAjIEluZGV4LCB0YWcsIGFuZCBwYXlsb2FkIG11c3QgYmUgZGlmZmVy
ZW50IHJlZ2lzdGVycy4gSW5kZXggaXMgbm90CiAjIGNoYW5nZWQuCiBtYWNybyBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKGluZGV4LCB0YWcsIHBheWxvYWQpCkBAIC0zODYsMTA5ICsyNjQsOCBAQCBt
YWNybyB2YWx1ZVByb2ZpbGUodGFnLCBwYXlsb2FkLCBwcm9maWxlCiBlbmQKIAogCi0jIEluZGlj
YXRlIHRoZSBiZWdpbm5pbmcgb2YgTExJbnQuCi1fbGxpbnRfYmVnaW46Ci0gICAgY3Jhc2goKQot
Ci0KICMgRW50cnlwb2ludHMgaW50byB0aGUgaW50ZXJwcmV0ZXIKIAotbWFjcm8gZnVuY3Rpb25G
b3JDYWxsQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtj
ZnJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0
YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRh
YmxlOjptX2NvZGVCbG9ja0ZvckNhbGxbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3Rlcgot
ZW5kCi0KLW1hY3JvIGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJl
Z2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRw
IEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVy
Ci0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0
YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQKLQotbWFjcm8gbm90RnVuY3Rpb25D
b2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHRhcmdldFJlZ2lzdGVyCi1lbmQKLQotbWFjcm8gZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291
cmNlUmVnaXN0ZXIpCi0gICAgc3RvcmVwIHNvdXJjZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQot
ZW5kCi0KLW1hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQot
ICAgICMgTm90aGluZyB0byBkbyEKLWVuZAotCi0jIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWly
ZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoK
LSMgaW4gdDEuIE1heSBhbHNvIHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgotbWFjcm8gcHJv
bG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFj
ZVNsb3dQYXRoKQotICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAK
LSAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4K
LSAgICBzdG9yZXAgdDIsIFJldHVyblBDW2Nmcl0KLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwot
ICAgICAgICBjYWxsU2xvd1BhdGgodHJhY2VTbG93UGF0aCkKLSAgICBlbmQKLSAgICBjb2RlQmxv
Y2tHZXR0ZXIodDEpCi0gICAgaWYgSklUX0VOQUJMRUQKLSAgICAgICAgYmFkZGlzIDUsIENvZGVC
bG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyW3QxXSwgLmNvbnRpbnVlCi0gICAgICAgIGNDYWxs
Mihvc3JTbG93UGF0aCwgY2ZyLCBQQykKLSAgICAgICAgbW92ZSB0MSwgY2ZyCi0gICAgICAgIGJ0
cHogdDAsIC5yZWNvdmVyCi0gICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgICAg
IHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQotICAgICAgICBqbXAgdDAKLSAg
ICAucmVjb3ZlcjoKLSAgICAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQotICAgIC5jb250aW51ZToK
LSAgICBlbmQKLSAgICBjb2RlQmxvY2tTZXR0ZXIodDEpCi0gICAgCi0gICAgIyBTZXQgdXAgdGhl
IFBDLgotICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQwotZW5kCi0K
LSMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1
ZSgpIGxlYXZlcyBiZWhpbmQuCi0jIE11c3QgY2FsbCBkaXNwYXRjaCgwKSBhZnRlciBjYWxsaW5n
IHRoaXMuCi1tYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTa2lwKQotICAg
IGlmIFZBTFVFX1BST0ZJTEVSCi0gICAgICAgICMgUHJvZmlsZSB0aGUgYXJndW1lbnRzLiBVbmZv
cnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIGNob2ljZSBidXQgdG8gZG8gdGhpcy4gVGhpcwotICAgICAg
ICAjIGNvZGUgaXMgcHJldHR5IGhvcnJlbmRvdXMgYmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBp
biBvcmRlcmluZyBiZXR3ZWVuCi0gICAgICAgICMgYXJndW1lbnRzIGFuZCB2YWx1ZSBwcm9maWxl
cywgdGhlIGRlc2lyZSB0byBoYXZlIGEgc2ltcGxlIGxvb3AtZG93bi10by16ZXJvCi0gICAgICAg
ICMgbG9vcCwgYW5kIHRoZSBkZXNpcmUgdG8gdXNlIG9ubHkgdGhyZWUgcmVnaXN0ZXJzIHNvIGFz
IHRvIHByZXNlcnZlIHRoZSBQQyBhbmQKLSAgICAgICAgIyB0aGUgY29kZSBibG9jay4gSXQgaXMg
bGlrZWx5IHRoYXQgdGhpcyBjb2RlIHNob3VsZCBiZSByZXdyaXR0ZW4gaW4gYSBtb3JlCi0gICAg
ICAgICMgb3B0aW1hbCB3YXkgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBoYXZlIG1vcmUgdGhhbiBm
aXZlIHJlZ2lzdGVycyBhdmFpbGFibGUKLSAgICAgICAgIyBmb3IgYXJiaXRyYXJ5IHVzZSBpbiB0
aGUgaW50ZXJwcmV0ZXIuCi0gICAgICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJz
W3QxXSwgdDAKLSAgICAgICAgYWRkaSAtcHJvZmlsZUFyZ1NraXAsIHQwICMgVXNlIGFkZGkgYmVj
YXVzZSB0aGF0J3Mgd2hhdCBoYXMgdGhlIHBlZXBob2xlCi0gICAgICAgIGFzc2VydChtYWNybyAo
b2spIGJpZ3RlcSB0MCwgMCwgb2sgZW5kKQotICAgICAgICBidGl6IHQwLCAuYXJndW1lbnRQcm9m
aWxlRG9uZQotICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fYXJndW1lbnRWYWx1ZVByb2ZpbGVz
ICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QxXSwgdDMKLSAgICAgICAgbXVsaSBzaXplb2YgVmFsdWVQ
cm9maWxlLCB0MCwgdDIgIyBBYWFhYWhoaGghIE5lZWQgc3RyZW5ndGggcmVkdWN0aW9uIQotICAg
ICAgICBuZWdpIHQwCi0gICAgICAgIGxzaGlmdGkgMywgdDAKLSAgICAgICAgYWRkcCB0MiwgdDMK
LSAgICAuYXJndW1lbnRQcm9maWxlTG9vcDoKLSAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zm
c2V0ICsgVGFnT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKLSAg
ICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MwotICAgICAgICBzdG9yZWkgdDIsIHBy
b2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNr
ZXRzICsgVGFnT2Zmc2V0W3QzXQotICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBQ
YXlsb2FkT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKLSAgICAg
ICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1
ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRPZmZzZXRbdDNdCi0gICAgICAgIGJhZGRpbnog
OCwgdDAsIC5hcmd1bWVudFByb2ZpbGVMb29wCi0gICAgLmFyZ3VtZW50UHJvZmlsZURvbmU6Ci0g
ICAgZW5kCi0gICAgICAgIAotICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgotICAgIGxvYWRpIENv
ZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAotICAgIGxvYWRwIENvZGVCbG9j
azo6bV9nbG9iYWxEYXRhW3QxXSwgdDIKLSAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmludGVycHJl
dGVyW3QyXSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdpc3RlckZpbGUgZnJvbSB0
aGUgSklUU3RhY2tGcmFtZQotICAgIGxzaGlmdGkgMywgdDAKLSAgICBhZGRwIHQwLCBjZnIsIHQw
Ci0gICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsgUmVnaXN0ZXJGaWxlOjpt
X2VuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwotCi0gICAgIyBTdGFjayBoZWlnaHQgY2hlY2sg
ZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKLS5zdGFja0hlaWdodE9LOgotZW5kCi0KICMgRXhwZWN0
cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZl
cyBiZWhpbmQuCiBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgp
CiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKQEAgLTUw
NiwzOCArMjgzLDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvdwog
ICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi1fbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZToKLSAgICBw
cm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxvY2tT
ZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKLSAgICBkaXNw
YXRjaCgwKQotCi0KLV9sbGludF9ldmFsX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0
aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2Vu
dHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xs
aW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9y
Q2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRy
eV9vc3JfZnVuY3Rpb25fZm9yX2NhbGwsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9m
b3JfY2FsbCkKLS5mdW5jdGlvbkZvckNhbGxCZWdpbjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0
aW9uKDApCi0gICAgZGlzcGF0Y2goMCkKLSAgICAKLQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3RfcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxv
Y2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0
aW9uX2Zvcl9jb25zdHJ1Y3QsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY29u
c3RydWN0KQotLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW46Ci0gICAgZnVuY3Rpb25Jbml0aWFs
aXphdGlvbigxKQotICAgIGRpc3BhdGNoKDApCi0gICAgCi0KLV9sbGludF9mdW5jdGlvbl9mb3Jf
Y2FsbF9hcml0eV9jaGVjazoKLSAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tH
ZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9u
X2Zvcl9jYWxsX2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9jYWxsKQot
ICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDYWxsQmVnaW4sIF9sbGludF9zbG93
X3BhdGhfY2FsbF9hcml0eUNoZWNrKQotCi0KLV9sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0
X2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2Nr
R2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlv
bl9mb3JfY29uc3RydWN0X2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9j
b25zdHJ1Y3QpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNvbnN0cnVjdEJl
Z2luLCBfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNoZWNrKQogCiAjIEluc3RydWN0
aW9uIGltcGxlbWVudGF0aW9ucwogCkBAIC01ODMsMzkgKzMyOCw2IEBAIF9sbGludF9vcF9jcmVh
dGVfYXJndW1lbnRzOgogICAgIGRpc3BhdGNoKDIpCiAKIAotbWFjcm8gYWxsb2NhdGVCYXNpY0pT
T2JqZWN0KHNpemVDbGFzc0luZGV4LCBjbGFzc0luZm9PZmZzZXQsIHN0cnVjdHVyZSwgcmVzdWx0
LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNsb3dDYXNlKQotICAgIGlmIEFMV0FZU19BTExPQ0FURV9T
TE9XCi0gICAgICAgIGptcCBzbG93Q2FzZQotICAgIGVsc2UKLSAgICAgICAgY29uc3Qgb2Zmc2V0
T2ZNeVNpemVDbGFzcyA9Ci0gICAgICAgICAgICBKU0dsb2JhbERhdGE6OmhlYXAgKwotICAgICAg
ICAgICAgSGVhcDo6bV9vYmplY3RTcGFjZSArCi0gICAgICAgICAgICBNYXJrZWRTcGFjZTo6bV9u
b3JtYWxTcGFjZSArCi0gICAgICAgICAgICBNYXJrZWRTcGFjZTo6U3Vic3BhY2U6OnByZWNpc2VB
bGxvY2F0b3JzICsKLSAgICAgICAgICAgIHNpemVDbGFzc0luZGV4ICogc2l6ZW9mIE1hcmtlZEFs
bG9jYXRvcgotICAgICAgICAKLSAgICAgICAgIyBGSVhNRTogd2UgY2FuIGdldCB0aGUgZ2xvYmFs
IGRhdGEgaW4gb25lIGxvYWQgZnJvbSB0aGUgc3RhY2suCi0gICAgICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCBzY3JhdGNoMQotICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVtz
Y3JhdGNoMV0sIHNjcmF0Y2gxCi0gICAgICAgIAotICAgICAgICAjIEdldCB0aGUgb2JqZWN0IGZy
b20gdGhlIGZyZWUgbGlzdC4gICAgCi0gICAgICAgIGxvYWRwIG9mZnNldE9mTXlTaXplQ2xhc3Mg
KyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0sIHJlc3VsdAotICAg
ICAgICBidHB6IHJlc3VsdCwgc2xvd0Nhc2UKLSAgICAgICAgCi0gICAgICAgICMgUmVtb3ZlIHRo
ZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LgotICAgICAgICBsb2FkcCBbcmVzdWx0XSwgc2Ny
YXRjaDIKLSAgICAgICAgc3RvcmVwIHNjcmF0Y2gyLCBvZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFy
a2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2NyYXRjaDFdCi0gICAgCi0gICAgICAgICMg
SW5pdGlhbGl6ZSB0aGUgb2JqZWN0LgotICAgICAgICBsb2FkcCBjbGFzc0luZm9PZmZzZXRbc2Ny
YXRjaDFdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIFtyZXN1bHRdCi0gICAg
ICAgIHN0b3JlcCBzdHJ1Y3R1cmUsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbcmVzdWx0XQotICAgICAg
ICBzdG9yZXAgMCwgSlNPYmplY3Q6Om1faW5oZXJpdG9ySURbcmVzdWx0XQotICAgICAgICBhZGRw
IHNpemVvZiBKU09iamVjdCwgcmVzdWx0LCBzY3JhdGNoMQotICAgICAgICBzdG9yZXAgc2NyYXRj
aDEsIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVtyZXN1bHRdCi0gICAgZW5kCi1lbmQKLQog
X2xsaW50X29wX2NyZWF0ZV90aGlzOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4
W1BDXSwgdDAKQEAgLTgwMiw3ICs1MTQsNyBAQCBfbGxpbnRfb3BfbmVxX251bGw6CiAgICAgZGlz
cGF0Y2goMykKIAogCi1tYWNybyBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wYXRo
KQorbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRp
IDEyW1BDXSwgdDIKICAgICBsb2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHQyLCB0MywgdDEpCkBAIC04MjIsNyArNTM0LDcgQEAgbWFjcm8gc3RyaWN0RXEoZXF1YWxp
dHlPcGVyYXRpb24sIHNsb3dfcAogICAgIGRpc3BhdGNoKDQpCiAKIC5zbG93OgotICAgIGNhbGxT
bG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3Bh
dGNoKDQpCiBlbmQKIApAQCAtOTY4LDcgKzY4MCw3IEBAIF9sbGludF9vcF9uZWdhdGU6CiAgICAg
ZGlzcGF0Y2goMykKIAogCi1tYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRp
b25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93X3BhdGgpCittYWNybyBiaW5hcnlPcEN1
c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93
UGF0aCkKICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10sIHQwCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQpAQCAtMTAwNiwxOCArNzE4LDE4IEBAIG1h
Y3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBkaXNwYXRjaCg1KQog
CiAuc2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoc2xvd19wYXRoKQorICAgIGNhbGxTbG93UGF0aChz
bG93UGF0aCkKICAgICBkaXNwYXRjaCg1KQogZW5kCiAKLW1hY3JvIGJpbmFyeU9wKGludGVnZXJP
cGVyYXRpb24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gYmluYXJ5T3AoaW50
ZWdlck9wZXJhdGlvbiwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKICAgICBiaW5hcnlPcEN1
c3RvbVN0b3JlKAogICAgICAgICBtYWNybyAoaW50MzJUYWcsIGxlZnQsIHJpZ2h0LCBzbG93LCBp
bmRleCkKICAgICAgICAgICAgIGludGVnZXJPcGVyYXRpb24obGVmdCwgcmlnaHQsIHNsb3cpCiAg
ICAgICAgICAgICBzdG9yZWkgaW50MzJUYWcsIFRhZ09mZnNldFtjZnIsIGluZGV4LCA4XQogICAg
ICAgICAgICAgc3RvcmVpIHJpZ2h0LCBQYXlsb2FkT2Zmc2V0W2NmciwgaW5kZXgsIDhdCiAgICAg
ICAgIGVuZCwKLSAgICAgICAgZG91YmxlT3BlcmF0aW9uLCBzbG93X3BhdGgpCisgICAgICAgIGRv
dWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiBlbmQKIAogX2xsaW50X29wX2FkZDoKQEAgLTEwNzks
NyArNzkxLDcgQEAgX2xsaW50X29wX21vZDoKICAgICBkaXNwYXRjaCg0KQogCiAKLW1hY3JvIGJp
dE9wKG9wZXJhdGlvbiwgc2xvd19wYXRoLCBhZHZhbmNlKQorbWFjcm8gYml0T3Aob3BlcmF0aW9u
LCBzbG93UGF0aCwgYWR2YW5jZSkKICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQ
Q10sIHQwCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQpAQCAtMTA5Myw3
ICs4MDUsNyBAQCBtYWNybyBiaXRPcChvcGVyYXRpb24sIHNsb3dfcGF0aCwgYWR2YW5jCiAgICAg
ZGlzcGF0Y2goYWR2YW5jZSkKIAogLnNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkK
KyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAgICAgZGlzcGF0Y2goYWR2YW5jZSkKIGVuZAog
CkBAIC0yMzAxLDcyICsyMDEzLDMgQEAgX2xsaW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xp
bmU6CiAgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJvd1t0MV0sIHQwCiAg
ICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3dbdDFdCiAKLQotIyBM
YXN0bHksIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBsaW5rIGV2ZW4gdGhvdWdoIHdlIGRvbid0IHN1
cHBvcnQgYWxsIG9wY29kZXMuCi0jIFRoZXNlIG9wY29kZXMgc2hvdWxkIG5ldmVyIGFyaXNlIHdo
ZW4gdXNpbmcgTExJbnQgb3IgZWl0aGVyIEpJVC4gV2UgYXNzZXJ0Ci0jIGFzIG11Y2guCi0KLW1h
Y3JvIG5vdFN1cHBvcnRlZCgpCi0gICAgaWYgQVNTRVJUX0VOQUJMRUQKLSAgICAgICAgY3Jhc2go
KQotICAgIGVsc2UKLSAgICAgICAgIyBXZSBzaG91bGQgdXNlIHdoYXRldmVyIHRoZSBzbWFsbGVz
dCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBpcywganVzdCB0bwotICAgICAgICAjIGVuc3VyZSB0aGF0
IHRoZXJlIGlzIGEgZ2FwIGJldHdlZW4gaW5zdHJ1Y3Rpb24gbGFiZWxzLiBJZiBtdWx0aXBsZQot
ICAgICAgICAjIHNtYWxsZXN0IGluc3RydWN0aW9ucyBleGlzdCwgd2Ugc2hvdWxkIHBpY2sgdGhl
IG9uZSB0aGF0IGlzIG1vc3QKLSAgICAgICAgIyBsaWtlbHkgcmVzdWx0IGluIGV4ZWN1dGlvbiBi
ZWluZyBoYWx0ZWQuIEN1cnJlbnRseSB0aGF0IGlzIHRoZSBicmVhawotICAgICAgICAjIGluc3Ry
dWN0aW9uIG9uIGFsbCBhcmNoaXRlY3R1cmVzIHdlJ3JlIGludGVyZXN0ZWQgaW4uIChCcmVhayBp
cyBpbnQzCi0gICAgICAgICMgb24gSW50ZWwsIHdoaWNoIGlzIDEgYnl0ZSwgYW5kIGJrcHQgb24g
QVJNdjcsIHdoaWNoIGlzIDIgYnl0ZXMuKQotICAgICAgICBicmVhawotICAgIGVuZAotZW5kCi0K
LV9sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGlu
dF9vcF9nZXRfYnlfaWRfY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dl
dF9ieV9pZF9jdXN0b21fY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dl
dF9ieV9pZF9jdXN0b21fcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dl
dF9ieV9pZF9jdXN0b21fc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0
X2J5X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9p
ZF9nZXR0ZXJfY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9p
ZF9nZXR0ZXJfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9p
ZF9nZXR0ZXJfc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lk
X3Byb3RvOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfc2VsZjoK
LSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X3N0cmluZ19sZW5ndGg6Ci0gICAg
bm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9nZW5lcmljOgotICAgIG5vdFN1
cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRfcmVwbGFjZToKLSAgICBub3RTdXBwb3J0
ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb246Ci0gICAgbm90U3VwcG9ydGVk
KCkKLQotCi0jIEluZGljYXRlIHRoZSBlbmQgb2YgTExJbnQuCi1fbGxpbnRfZW5kOgotICAgIGNy
YXNoKCkKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXI2NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJldmlzaW9uIDEwOTE3MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCSh3b3JraW5nIGNvcHkp
CkBAIC0yMiw2ICsyMiw3MTEgQEAKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiAKLSMgTm90IHN1cHBvcnRlZCB5ZXQsIHNvIGdpdmUgdXAuCi1lcnJvcgorIyBTb21lIHZhbHVl
IHJlcHJlc2VudGF0aW9uIGNvbnN0YW50cy4KK2NvbnN0IFRhZ0JpdFR5cGVPdGhlciA9IDB4Mgor
Y29uc3QgVGFnQml0Qm9vbCAgICAgID0gMHg0Citjb25zdCBUYWdCaXRVbmRlZmluZWQgPSAweDgK
K2NvbnN0IFZhbHVlRW1wdHkgICAgICA9IDB4MAorY29uc3QgVmFsdWVGYWxzZSAgICAgID0gVGFn
Qml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbAorY29uc3QgVmFsdWVUcnVlICAgICAgID0gVGFnQml0
VHlwZU90aGVyIHwgVGFnQml0Qm9vbCB8IDEKK2NvbnN0IFZhbHVlVW5kZWZpbmVkICA9IFRhZ0Jp
dFR5cGVPdGhlciB8IFRhZ0JpdFVuZGVmaW5lZAorY29uc3QgVmFsdWVOdWxsICAgICAgID0gVGFn
Qml0VHlwZU90aGVyCisKKyMgVXRpbGl0aWVzLgorbWFjcm8gZGlzcGF0Y2goYWR2YW5jZSkKKyAg
ICBhZGRpIGFkdmFuY2UsIFBDCisgICAgam1wIFtQQiwgUEMsIDhdCitlbmQKKworbWFjcm8gZGlz
cGF0Y2hCcmFuY2gocGNPZmZzZXQpCisgICAgbG9hZGkgcGNPZmZzZXQsIHQwCisgICAgZGlzcGF0
Y2godDApCitlbmQKKworbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQorICAgIGxvYWRpIEFyZ3Vt
ZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwg
UEIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIKKyAgICBqbXAg
W1BCLCBQQywgOF0KK2VuZAorCittYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCisg
ICAgbW92ZSBhcmcxLCB0MAorICAgIG1vdmUgYXJnMiwgdDEKKyAgICBjYWxsIGZ1bmN0aW9uCitl
bmQKKworIyBUaGlzIGJhcmVseSB3b3Jrcy4gYXJnMyBhbmQgYXJnNCBzaG91bGQgcHJvYmFibHkg
YmUgaW1tZWRpYXRlcy4KK21hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywg
YXJnNCkKKyAgICBtb3ZlIGFyZzEsIHQwCisgICAgbW92ZSBhcmcyLCB0MQorICAgIG1vdmUgYXJn
MywgdDIKKyAgICBtb3ZlIGFyZzQsIHQzCisgICAgY2FsbCBmdW5jdGlvbgorZW5kCisKK21hY3Jv
IHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBsZWFwIFtQQiwgUEMsIDhdLCBQQworZW5kCisK
K21hY3JvIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorICAgIG1vdmUgdDAsIFBDCisgICAgbW92
ZSB0MSwgY2ZyCisgICAgc3VicCBQQiwgUEMKKyAgICB1cnNoaWZ0aSAzLCBQQworZW5kCisKK21h
Y3JvIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisg
ICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwo
KQorZW5kCisKK21hY3JvIHRyYWNlT3BlcmFuZChmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcHJl
cGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vfb3BlcmFuZCwgY2Zy
LCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQor
ZW5kCisKK21hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHByZXBhcmVT
dGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDQoX2xsaW50X3RyYWNlX3ZhbHVlLCBjZnIsIFBDLCBm
cm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKwor
IyBDYWxsIGEgc2xvdyBwYXRoIGZvciBjYWxsIGNhbGwgb3Bjb2Rlcy4KK21hY3JvIGNhbGxDYWxs
U2xvd1BhdGgoYWR2YW5jZSwgc2xvd1BhdGgsIGFjdGlvbikKKyAgICBhZGRpIGFkdmFuY2UsIFBD
LCB0MAorICAgIHN0b3JlaSB0MCwgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCisgICAg
cHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKKyAg
ICBtb3ZlIHQxLCBjZnIKKyAgICBhY3Rpb24odDApCitlbmQKKworbWFjcm8gY2hlY2tTd2l0Y2hU
b0pJVEZvckxvb3AoKQorICAgIGNoZWNrU3dpdGNoVG9KSVQoCisgICAgICAgIDEsCisgICAgICAg
IG1hY3JvKCkKKyAgICAgICAgICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdCisgICAgICAgICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgICAgICAgICBj
Q2FsbDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIsIFBDKQorICAgICAgICAgICAgbW92ZSB0MSwgY2Zy
CisgICAgICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgorICAgICAgICAgICAgam1wIHQwCisgICAg
ICAgIC5yZWNvdmVyOgorICAgICAgICAgICAgbG9hZHAgQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dFtjZnJdLCBQQworICAgICAgICBlbmQpCitlbmQKKworIyBJbmRleCBhbmQgdmFsdWUgbXVzdCBi
ZSBkaWZmZXJlbnQgcmVnaXN0ZXJzLiBJbmRleCBtYXkgYmUgY2xvYmJlcmVkLgorbWFjcm8gbG9h
ZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUpCisgICAgYnBndGVxIGluZGV4LCBGaXJz
dENvbnN0YW50UmVnaXN0ZXJJbmRleCwgLmNvbnN0YW50CisgICAgbG9hZHAgW2NmciwgaW5kZXgs
IDhdLCB2YWx1ZQorICAgIGptcCAuZG9uZQorLmNvbnN0YW50OgorICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB2YWx1ZQorICAgIGxvYWRwIENvZGVCbG9jazo6bV9jb25zdGFudFJlZ2lzdGVycyAr
IFZlY3RvckJ1ZmZlck9mZnNldFt2YWx1ZV0sIHZhbHVlCisgICAgc3VicCBGaXJzdENvbnN0YW50
UmVnaXN0ZXJJbmRleCwgaW5kZXgKKyAgICBsb2FkcCBbdmFsdWUsIGluZGV4LCA4XSwgdmFsdWUK
Ky5kb25lOgorZW5kCisKK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMihpbmRleCwg
dmFsdWUsIHNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUpCisg
ICAgYnBiIHZhbHVlLCB0YWdUeXBlTnVtYmVyLCBzbG93CitlbmQKKworbWFjcm8gbG9hZENvbnN0
YW50T3JWYXJpYWJsZUNlbGwoaW5kZXgsIHZhbHVlLCBzbG93KQorICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUoaW5kZXgsIHZhbHVlKQorICAgIGJ0cG56IHZhbHVlLCB0YWdNYXNrLCBzbG93Citl
bmQKKworbWFjcm8gd3JpdGVCYXJyaWVyKHZhbHVlKQorICAgICMgTm90aGluZyB0byBkbywgc2lu
Y2Ugd2UgZG9uJ3QgaGF2ZSBhIGdlbmVyYXRpb25hbCBvciBpbmNyZW1lbnRhbCBjb2xsZWN0b3Iu
CitlbmQKKworbWFjcm8gdmFsdWVQcm9maWxlKHZhbHVlLCBwcm9maWxlKQorICAgIGlmIFZBTFVF
X1BST0ZJTEVSCisgICAgICAgIHN0b3JlcCB2YWx1ZSwgVmFsdWVQcm9maWxlOjptX2J1Y2tldHNb
cHJvZmlsZV0KKyAgICBlbmQKK2VuZAorCisKKyMgRW50cnlwb2ludHMgaW50byB0aGUgaW50ZXJw
cmV0ZXIuCisKKyMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hh
dCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCittYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9u
ZUxhYmVsLCBzbG93X3BhdGgpCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291
bnRbY2ZyXSwgdDAKKyAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFd
LCBkb25lTGFiZWwKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGwyKHNsb3df
cGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDog
dDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgbW92ZSB0MSwgY2ZyCisg
ICAgYnRpeiB0MCwgLmNvbnRpbnVlCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0
YVtzcF0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJvd1t0MV0s
IHQwCisgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3dbdDFdCisu
Y29udGludWU6CisgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFuZCByZXNldCBQQywgc2luY2UgdGhl
IHNsb3dfcGF0aCBjbG9iYmVyZWQgdGhlbS4KKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEK
KyAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEIKKyAgICBtb3ZlIDAs
IFBDCisgICAgam1wIGRvbmVMYWJlbAorZW5kCisKKworIyBJbnN0cnVjdGlvbiBpbXBsZW1lbnRh
dGlvbnMKKworX2xsaW50X29wX2VudGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
cCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtVmFyc1t0Ml0s
IHQyCisgICAgYnRpeiB0MiwgLm9wRW50cnlEb25lCisgICAgbW92ZSBWYWx1ZVVuZGVmaW5lZCwg
dDAKKy5vcEVudGVyTG9vcDoKKyAgICBzdWJpIDEsIHQyCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0
MiwgOF0KKyAgICBidGlueiB0MiwgLm9wRW50ZXJMb29wCisub3BFbnRlckRvbmU6CisgICAgZGlz
cGF0Y2goMSkKKworCitfbGxpbnRfb3BfY3JlYXRlX2FjdGl2YXRpb246CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBicG5lcSBbY2ZyLCB0MCwg
OF0sIFZhbHVlRW1wdHksIC5vcENyZWF0ZUFjdGl2YXRpb25Eb25lCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfY3JlYXRlX2FjdGl2YWl0b24pCisub3BDcmVhdGVBY3RpdmF0aW9u
RG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9pbml0X2xhenlfcmVnOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgc3RvcmVw
IFZhbHVlRW1wdHksIFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29w
X2NyZWF0ZV9hcmd1bWVudHM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIs
IFBDLCA4XSwgdDAKKyAgICBicG5lcSBbY2ZyLCB0MCwgOF0sIFZhbHVlRW1wdHksIC5vcENyZWF0
ZUFyZ3VtZW50c0RvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jcmVhdGVf
YXJndW1lbnRzKQorLm9wQ3JlYXRlQXJndW1lbnRzRG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisK
K19sbGludF9vcF9jcmVhdGVfdGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkg
MTZbUEIsIFBDLCA4XSwgdDAKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MCkKKyAgICBsb2FkcCBb
Y2ZyLCB0MCwgOF0sIHQwCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcENyZWF0ZVRoaXNTbG93
CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCisgICAgYmJiIFN0cnVjdHVy
ZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDFdLCBPYmplY3RUeXBlLCAub3BDcmVh
dGVUaGlzU2xvdworICAgIGxvYWRwIEpTT2JqZWN0OjptX2luaGVyaXRvcklEW3QwXSwgdDIKKyAg
ICBidHB6IHQyLCAub3BDcmVhdGVUaGlzU2xvdworICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChK
U0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENs
YXNzSW5mbywgdDIsIHQwLCB0MSwgdDMsIC5vcENyZWF0ZVRoaXNTbG93KQorICAgIGxvYWRpIDhb
UEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNo
KDgpCisKKy5vcENyZWF0ZVRoaXNTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX2NyZWF0ZV90aGlzKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2dldF9jYWxs
ZWU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAg
ICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKKyAgICBzdG9yZXAgdDEsIFtjZnIsIHQwLCA4XQorICAg
IGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2NvbnZlcnRfdGhpczoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4
XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLm9wQ29udmVydFRoaXNTbG93CisgICAgbG9h
ZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBl
SW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCAub3BDb252ZXJ0VGhpc1Ns
b3cKKyAgICBkaXNwYXRjaCgyKQorCisub3BDb252ZXJ0VGhpc1Nsb3c6CisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfY29udmVydF90aGlzKQorICAgIGRpc3BhdGNoKDIpCisKKwor
X2xsaW50X29wX25ld19vYmplY3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBd
LCB0MAorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX2VtcHR5T2JqZWN0U3RydWN0dXJlW3Qw
XSwgdDEKKyAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNpemVDbGFzc0lu
ZGV4LCBKU0dsb2JhbERhdGE6OmpzRmluYWxPYmplY3RDbGFzc0luZm8sIHQxLCB0MCwgdDIsIHQz
LCAub3BOZXdPYmplY3RTbG93KQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9y
ZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKy5vcE5ld09iamVjdFNsb3c6
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X29iamVjdCkKKyAgICBkaXNw
YXRjaCgyKQorCisKK19sbGludF9vcF9uZXdfYXJyYXk6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19hcnJheSkKKyAgICBkaXNwYXRj
aCg0KQorCisKK19sbGludF9vcF9uZXdfYXJyYXlfYnVmZmVyOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQor
ICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX25ld19yZWdleHA6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19yZWdleHApCisg
ICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfbW92OgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MikKKyAgICBzdG9yZXAgdDIsIFtjZnIs
IHQwLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX25vdDoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQ
QywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIpCisgICAgeG9ycCBW
YWx1ZUZhbHNlLCB0MgorICAgIGJ0cG56IHQyLCB+MSwgLm9wTm90U2xvdworICAgIHhvcnAgVmFs
dWVUcnVlLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykK
KworLm9wTm90U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ub3QpCisg
ICAgZGlzcGF0Y2goMykKKworCittYWNybyBlcXVhbGl0eUNvbXBhcmlzb24oaW50ZWdlckNvbXBh
cmlzb24sIHNsb3dQYXRoKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAyNFtQQiwg
UEMsIDhdLCB0MAorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGkgOFtQQiwg
UEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MCwgdDEsIC5zbG93
KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MiwgdDAsIC5zbG93KQorICAgIGlu
dGVnZXJDb21wYXJpc29uKHQwLCB0MSwgdDApCisgICAgb3JwIFZhbHVlRmFsc2UsIHQwCisgICAg
c3RvcmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0KQorCisuc2xvdzoKKyAgICBj
YWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goNCkKK2VuZAorCitfbGxpbnRfb3Bf
ZXE6CisgICAgZXF1YWxpdHlDb21wYXJpc29uKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHJlc3VsdCkgY2llcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9lcSkKKworCitfbGxpbnRfb3BfbmVxOgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigK
KyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCBy
ZXN1bHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2VxKQorCisKK21hY3JvIGVxdWFs
TnVsbENvbXBhcmlzb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAg
W2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAuaW1tZWRpYXRlCisgICAg
bG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQyCisgICAgdGJueiBTdHJ1Y3R1cmU6Om1f
dHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0Ml0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQs
IHQwCisgICAgam1wIC5kb25lCisuaW1tZWRpYXRlOgorICAgIGFuZHAgflRhZ0JpdFVuZGVmaW5l
ZCwgdDAKKyAgICBjcGVxIHQwLCBWYWx1ZU51bGwsIHQwCisuZG9uZToKK2VuZAorCitfbGxpbnRf
b3BfZXFfbnVsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZXF1YWxOdWxsQ29tcGFyaXNv
bigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAor
ICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRf
b3BfbmVxX251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbENvbXBhcmlz
b24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICB4b3JwIFZhbHVlVHJ1ZSwgdDAK
KyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworbWFjcm8g
c3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0s
IHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MiwgdDApCisgICAgbW92ZSB0MCwgdDIKKyAgICBvcnAgdDEsIHQyCisgICAg
YnRweiB0MiwgdGFnTWFzaywgLnNsb3cKKyAgICBicGFlcSB0MCwgdGFnVHlwZU51bWJlciwgLmxl
ZnRPSworICAgIGJ0cG56IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworLmxlZnRPSzoKKyAgICBi
cGFlcSB0MSwgdGFnVHlwZU51bWJlciwgLnJpZ2h0T0sKKyAgICBidHBueiB0MSwgdGFnVHlwZU51
bWJlciwgLnNsb3cKKy5yaWdodE9LOgorICAgIGVxdWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDAp
CisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAg
IHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLnNsb3c6CisgICAg
Y2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDQpCitlbmQKKworX2xsaW50X29w
X3N0cmljdGVxOgorICAgIHN0cmljdEVxKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJl
c3VsdCkgY3BlcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3df
cGF0aF9zdHJpY3RfZXEpCisKKworX2xsaW50X29wX25zdHJpY3RlcToKKyAgICBzdHJpY3RFcSgK
KyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNwbmVxIGxlZnQsIHJpZ2h0LCBy
ZXN1bHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3N0cmljdF9lcSkKKworCitfbGxp
bnRfb3BfbGVzczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfbGVzcykKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9sZXNzZXE6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2xlc3NlcSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9ncmVhdGVyOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVy
KQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX2dyZWF0ZXJlcToKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcmVxKQor
ICAgIGRpc3BhdGNoKDQpCisKKworbWFjcm8gcHJlT3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xv
d1BhdGgpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAK
KyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQxCisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAu
c2xvdworICAgIGFyaXRobWV0aWNPcGVyYXRpb24odDEsIC5zbG93KQorICAgIG9ycCB0YWdUeXBl
TnVtYmVyLCB0MQorICAgIHN0b3JlcCB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikK
KworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDIpCitl
bmQKKworX2xsaW50X29wX3ByZV9pbmM6CisgICAgcHJlT3AoCisgICAgICAgIG1hY3JvICh2YWx1
ZSwgc2xvdykgYmFkZGlvIDEsIHZhbHVlLCBzbG93IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3df
cGF0aF9wcmVfaW5jKQorCisKK19sbGludF9vcF9wcmVfZGVjOgorICAgIHByZU9wKAorICAgICAg
ICBtYWNybyAodmFsdWUsIHNsb3cpIGJzdWJpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAg
IF9sbGludF9zbG93X3BhdGhfcHJlX2luYykKKworCittYWNybyBwb3N0T3AoYXJpdGhtZXRpY09w
ZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BC
LCBQQywgOF0sIHQwCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIFtjZnIs
IHQwLCA4XSwgdDIKKyAgICBiaWVxIHQwLCB0MSwgLmRvbmUKKyAgICBicGIgdDIsIHRhZ1R5cGVO
dW1iZXIsIC5zbG93CisgICAgbW92ZSB0MiwgdDMKKyAgICBhcml0aG1ldGljT3BlcmF0aW9uKHQz
LCAuc2xvdykKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDMKKyAgICBzdG9yZXAgdDIsIFtjZnIs
IHQxLCA4XQorICAgIHN0b3JlcCB0MywgW2NmciwgdDAsIDhdCisuZG9uZToKKyAgICBkaXNwYXRj
aCgzKQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2go
MykKK2VuZAorCitfbGxpbnRfb3BfcG9zdF9pbmM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNy
byAodmFsdWUsIHNsb3cpIGJhZGRpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGlu
dF9zbG93X3BhdGhfcG9zdF9pbmMpCisKKworX2xsaW50X29wX3Bvc3RfZGVjOgorICAgIHBvc3RP
cCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCBzbG93KSBic3ViaW8gMSwgdmFsdWUsIHNsb3cgZW5k
LAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3Bvc3RfZGVjKQorCisKK19sbGludF9vcF90b19q
c251bWJlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwg
dDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZSh0MCwgdDIpCisgICAgYnBhZXEgdDIsIHRhZ1R5cGVOdW1iZXIsIC5vcFRvSnNudW1iZXJJc0lt
bWVkaWF0ZQorICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5vcFRvSnNOdW1iZXJTbG93Cisub3BUb0pz
bnVtYmVySXNJbW1lZGlhdGU6CisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNw
YXRjaCgzKQorCisub3BUb0pzbnVtYmVyU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF90b19qc251bWJlcikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9uZWdh
dGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisg
ICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAs
IHQyKQorICAgIGJwYiB0MiwgdGFnVHlwZU51bWJlciwgLm9wTmVnYXRlTm90SW50CisgICAgYnRp
eiB0MiwgMHg3ZmZmZmZmZiwgLm9wTmVnYXRlU2xvdworICAgIG5lZ2kgdDIKKyAgICBvcnAgdGFn
VHlwZU51bWJlciwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNo
KDMpCisub3BOZWdhdGVOb3RJbnQ6CisgICAgYnRweiB0MiwgdGFnVHlwZU51bWJlciwgLm9wTmVn
YXRlU2xvdworICAgIHhvcnAgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIHN0b3JlcCB0Miwg
W2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wTmVnYXRlU2xvdzoKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZWdhdGUpCisgICAgZGlzcGF0Y2goMykKKworCitt
YWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91Ymxl
T3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxv
YWRpIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEp
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnBiIHQwLCB0YWdUeXBl
TnVtYmVyLCAub3AxTm90SW50CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50
CisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MgorICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9y
ZSh0MSwgdDAsIC5zbG93LCB0MikKKyAgICBkaXNwYXRjaCg1KQorCisub3AxTm90SW50OgorICAg
ICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IG5vdCBhbiBpbnQsIHRoZSBzZWNvbmQgb3Bl
cmFuZCBjb3VsZCBiZSBhbnl0aGluZy4KKyAgICBidHB6IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xv
dworICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLm9wMU5vdEludE9wMkludAorICAgIGJ0cHog
dDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgZnAyZCB0MSwgZnQxCisgICAgam1wIC5vcDFO
b3RJbnRSZWFkeQorLm9wMU5vdEludE9wMkludDoKKyAgICBjaTJkIHQxLCBmdDEKKy5vcDFOb3RJ
bnRSZWFkeToKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisgICAgZnAyZCB0MCwgZnQwCisg
ICAgZG91YmxlT3BlcmF0aW9uKGZ0MSwgZnQwKQorICAgIHN0b3JlZCBmdDAsIFtjZnIsIHQyLCA4
XQorICAgIGRpc3BhdGNoKDUpCisKKy5vcDJOb3RJbnQ6CisgICAgIyBGaXJzdCBvcGVyYW5kIGlz
IGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vjb25kIGlzIGRlZmluaXRlbHkgbm90LgorICAgIGxv
YWRpIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBidHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdwor
ICAgIGNpMmQgdDAsIGZ0MAorICAgIGZwMmQgdDEsIGZ0MQorICAgIGRvdWJsZU9wZXJhdGlvbihm
dDEsIGZ0MCkKKyAgICBzdG9yZWQgZnQwLCBbY2ZyLCB0MiwgOF0KKyAgICBkaXNwYXRjaCg1KQor
Cisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goNSkKK2Vu
ZAorCittYWNybyBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBkb3VibGVPcGVyYXRpb24sIHNs
b3dQYXRoKQorICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCBy
aWdodCwgc2xvdywgaW5kZXgpCisgICAgICAgICAgICBpbnRlZ2VyT3BlcmF0aW9uKGxlZnQsIHJp
Z2h0LCBzbG93KQorICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHJpZ2h0CisgICAgICAg
ICAgICBzdG9yZXAgcmlnaHQsIFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisgICAgICAg
IGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCitlbmQKKworX2xsaW50X29wX2FkZDoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgc2xvdykgYmFkZGlvIGxlZnQsIHJpZ2h0LCBzbG93IGVuZCwKKyAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0KSBhZGRkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9hZGQpCisKKworX2xsaW50X29wX211bDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmlu
YXJ5T3BDdXN0b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93LCBpbmRl
eCkKKyAgICAgICAgICAgICMgQXNzdW1lIHQzIGlzIHNjcmF0Y2hhYmxlLgorICAgICAgICAgICAg
bW92ZSByaWdodCwgdDMKKyAgICAgICAgICAgIGJtdWxpbyBsZWZ0LCB0Mywgc2xvdworICAgICAg
ICAgICAgYnRpbnogdDMsIC5kb25lCisgICAgICAgICAgICBiaWx0IGxlZnQsIDAsIHNsb3cKKyAg
ICAgICAgICAgIGJpbHQgcmlnaHQsIDAsIHNsb3cKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAg
ICBvcnAgdGFnVHlwZU51bWJlciwgdDMKKyAgICAgICAgICAgIHN0b3JlcCB0MywgW2NmciwgaW5k
ZXgsIDhdCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBtdWxkIGxl
ZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9tdWwpCisKKworX2xsaW50
X29wX3N1YjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5T3AoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgc2xvdykgYnN1YmlvIGxlZnQsIHJpZ2h0LCBzbG93IGVuZCwKKyAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBzdWJkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAg
X2xsaW50X3Nsb3dfcGF0aF9zdWIpCisKKworX2xsaW50X29wX2RpdjoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJp
Z2h0LCBzbG93LCBpbmRleCkKKyAgICAgICAgICAgICMgQXNzdW1lIHQzIGlzIHNjcmF0Y2hhYmxl
LgorICAgICAgICAgICAgYnRpeiBsZWZ0LCBzbG93CisgICAgICAgICAgICBidGlueiByaWdodCwg
LmludE9LCisgICAgICAgICAgICBiaWx0IGxlZnQsIDAsIHNsb3cKKyAgICAgICAgLmludE9LOgor
ICAgICAgICAgICAgbW92ZSBsZWZ0LCB0MworICAgICAgICAgICAgbW92ZSByaWdodCwgdDAKKyAg
ICAgICAgICAgIGNkcWkKKyAgICAgICAgICAgIGlkaXZpIHQzCisgICAgICAgICAgICBidGlueiB0
MSwgc2xvdworICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgICAgICAgICBz
dG9yZXAgdDAsIFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCkgZGl2ZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3Bh
dGhfZGl2KQorCisKK19sbGludF9vcF9tb2Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX21vZCkKKyAgICBkaXNwYXRjaCg0KQorCisKK21h
Y3JvIGJpdE9wKG9wZXJhdGlvbiwgc2xvd1BhdGgsIGFkdmFuY2UpCisgICAgbG9hZGkgMjRbUEIs
IFBDLCA4XSwgdDAKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpIDhbUEIs
IFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MSkKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1iZXIsIC5z
bG93CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIG9wZXJhdGlvbih0MSwg
dDAsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MAorICAgIHN0b3JlcCB0MCwgW2Nm
ciwgdDMsIDhdCisgICAgZGlzcGF0Y2goYWR2YW5jZSkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQ
YXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKGFkdmFuY2UpCitlbmQKKworX2xsaW50X29wX2xz
aGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCwgc2xvdykgbHNoaWZ0aSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGlu
dF9zbG93X3BhdGhfbHNoaWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF9yc2hpZnQ6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmln
aHQsIHNsb3cpIHJzaGlmdGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19w
YXRoX3JzaGlmdCwKKyAgICAgICAgNCkKKworCitfbGxpbnRfb3BfdXJzaGlmdDoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xv
dykKKyAgICAgICAgICAgIHVyc2hpZnRpIGxlZnQsIHJpZ2h0CisgICAgICAgICAgICBiaWx0IHJp
Z2h0LCAwLCBzbG93CisgICAgICAgIGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF91cnNo
aWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF9iaXRhbmQ6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGFuZGkg
bGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdGFuZCwKKyAgICAg
ICAgNSkKKworCitfbGxpbnRfb3BfYml0eG9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBi
aXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSB4b3JpIGxlZnQsIHJpZ2h0
IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9iaXR4b3IsCisgICAgICAgIDUpCisKKwor
X2xsaW50X29wX2JpdG9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBvcmkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX2JpdG9yLAorICAgICAgICA1KQorCisKK19sbGludF9vcF9jaGVj
a19oYXNfaW5zdGFuY2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBD
LCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MSwgdDAsIC5vcENoZWNr
SGFzSW5zdGFuY2VTbG93KQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MAor
ICAgIGJ0YnogU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3NbdDBdLCBJ
bXBsZW1lbnRzSGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93CisgICAgZGlzcGF0
Y2goMikKKworLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKQorICAgIGRpc3BhdGNoKDIpCisKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyLmFzbQkocmV2aXNpb24gMTA5MTcwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw5ICsyMSw0MTEg
QEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAK
KyMgRmlyc3QgY29tZSB0aGUgY29tbW9uIHByb3RvY29scyB0aGF0IGJvdGggaW50ZXJwcmV0ZXJz
IHVzZS4gTm90ZSB0aGF0IGVhY2gKKyMgb2YgdGhlc2UgbXVzdCBoYXZlIGFuIEFTU0VSVCgpIGlu
IExMSW50RGF0YS5jcHAKKworIyBUaGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRjaCBpbnRlcnBy
ZXRlci9SZWdpc3RlckZpbGUuaC4KK2NvbnN0IENhbGxGcmFtZUhlYWRlclNpemUgPSA0OAorY29u
c3QgQXJndW1lbnRDb3VudCA9IC00OAorY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAKK2NvbnN0IENh
bGxlZSA9IC0zMgorY29uc3QgU2NvcGVDaGFpbiA9IC0yNAorY29uc3QgUmV0dXJuUEMgPSAtMTYK
K2NvbnN0IENvZGVCbG9jayA9IC04CisKK2NvbnN0IFRoaXNBcmd1bWVudE9mZnNldCA9IC1DYWxs
RnJhbWVIZWFkZXJTaXplIC0gOAorCisjIFNvbWUgcmVnaXN0ZXIgY29udmVudGlvbnMuCitpZiBK
U1ZBTFVFNjQKKyAgICAjIC0gVXNlIGEgcGFpciBvZiByZWdpc3RlcnMgdG8gcmVwcmVzZW50IHRo
ZSBQQzogb25lIHJlZ2lzdGVyIGZvciB0aGUKKyAgICAjICAgYmFzZSBvZiB0aGUgcmVnaXN0ZXIg
ZmlsZSwgYW5kIG9uZSByZWdpc3RlciBmb3IgdGhlIGluZGV4LgorICAgICMgLSBUaGUgUEMgYmFz
ZSAob3IgUEIgZm9yIHNob3J0KSBzaG91bGQgYmUgc3RvcmVkIGluIHRoZSBjc3IuIEl0IHdpbGwK
KyAgICAjICAgZ2V0IGNsb2JiZXJlZCBvbiBjYWxscyB0byBvdGhlciBKUyBjb2RlLCBidXQgd2ls
bCBnZXQgc2F2ZWQgb24gY2FsbHMKKyAgICAjICAgdG8gQyBmdW5jdGlvbnMuCisgICAgIyAtIEMg
Y2FsbHMgYXJlIHN0aWxsIGdpdmVuIHRoZSBJbnN0cnVjdGlvbiogcmF0aGVyIHRoYW4gdGhlIFBD
IGluZGV4LgorICAgICMgICBUaGlzIHJlcXVpcmVzIGFuIGFkZCBiZWZvcmUgdGhlIGNhbGwsIGFu
ZCBhIHN1YiBhZnRlci4KKyAgICBjb25zdCBQQyA9IHQ0CisgICAgY29uc3QgUEIgPSBjc3IwCisg
ICAgY29uc3QgdGFnVHlwZU51bWJlciA9IGNzcjEKKyAgICBjb25zdCB0YWdNYXNrID0gY3NyMgor
ZWxzZQorICAgIGNvbnN0IFBDID0gdDQKK2VuZAorCisjIENvbnN0YW50cyBmb3IgcmVhc29uaW5n
IGFib3V0IHZhbHVlIHJlcHJlc2VudGF0aW9uLgoraWYgQklHX0VORElBTgorICAgIGNvbnN0IFRh
Z09mZnNldCA9IDAKKyAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gNAorZWxzZQorICAgIGNvbnN0
IFRhZ09mZnNldCA9IDQKKyAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gMAorZW5kCisKKyMgVHlw
ZSBjb25zdGFudHMuCitjb25zdCBTdHJpbmdUeXBlID0gNQorY29uc3QgT2JqZWN0VHlwZSA9IDEz
CisKKyMgVHlwZSBmbGFncyBjb25zdGFudHMuCitjb25zdCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
ID0gMQorY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMgorY29uc3QgSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSA9IDgKKworIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0YW50cy4KK2Nv
bnN0IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gMHg0MDAwMDAwMAorCisjIENvZGUgdHlw
ZSBjb25zdGFudHMuCitjb25zdCBHbG9iYWxDb2RlID0gMAorY29uc3QgRXZhbENvZGUgPSAxCitj
b25zdCBGdW5jdGlvbkNvZGUgPSAyCisKKyMgVGhlIGludGVycHJldGVyIHN0ZWFscyB0aGUgdGFn
IHdvcmQgb2YgdGhlIGFyZ3VtZW50IGNvdW50LgorY29uc3QgTExJbnRSZXR1cm5QQyA9IEFyZ3Vt
ZW50Q291bnQgKyBUYWdPZmZzZXQKKworIyBTdHJpbmcgZmxhZ3MuCitjb25zdCBIYXNoRmxhZ3M4
Qml0QnVmZmVyID0gNjQKKworIyBBbGxvY2F0aW9uIGNvbnN0YW50cworaWYgSlNWQUxVRTY0Cisg
ICAgY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMQorZWxzZQorICAgIGNvbnN0
IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDMKK2VuZAorCisjIFRoaXMgbXVzdCBtYXRj
aCB3dGYvVmVjdG9yLmgKK2lmIEpTVkFMVUU2NAorICAgIGNvbnN0IFZlY3RvclNpemVPZmZzZXQg
PSAwCisgICAgY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gOAorZWxzZQorICAgIGNvbnN0IFZl
Y3RvclNpemVPZmZzZXQgPSAwCisgICAgY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAorZW5k
CisKKworIyBTb21lIGNvbW1vbiB1dGlsaXRpZXMuCittYWNybyBjcmFzaCgpCisgICAgc3RvcmVp
IDAsIDB4YmJhZGJlZWZbXQorICAgIG1vdmUgMCwgdDAKKyAgICBjYWxsIHQwCitlbmQKKworbWFj
cm8gYXNzZXJ0KGFzc2VydGlvbikKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBhc3Nl
cnRpb24oLm9rKQorICAgICAgICBjcmFzaCgpCisgICAgLm9rOgorICAgIGVuZAorZW5kCisKK21h
Y3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVyKQor
ICAgIGlmIEFSTXY3CisgICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKKyAgICBl
bHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAg
ZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorZW5kCisKK21hY3JvIHJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQorICAgIGlmIEFSTXY3CisgICAgICAg
IG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAg
ICBwdXNoIHNvdXJjZVJlZ2lzdGVyCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ZW5kCisKK21hY3JvIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwor
ICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3RyYWNlKQorICAgIGVuZAorZW5kCisKK21hY3Jv
IHNsb3dQYXRoRm9yQ2FsbChhZHZhbmNlLCBzbG93UGF0aCkKKyAgICBjYWxsQ2FsbFNsb3dQYXRo
KAorICAgICAgICBhZHZhbmNlLAorICAgICAgICBzbG93UGF0aCwKKyAgICAgICAgbWFjcm8gKGNh
bGxlZSkKKyAgICAgICAgICAgIGNhbGwgY2FsbGVlCisgICAgICAgICAgICBkaXNwYXRjaEFmdGVy
Q2FsbCgpCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklUKGluY3Jl
bWVudCwgYWN0aW9uKQorICAgIGlmIEpJVF9FTkFCTEVECisgICAgICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB0MAorICAgICAgICBiYWRkaXMgaW5jcmVtZW50LCBDb2RlQmxvY2s6Om1fbGxpbnRF
eGVjdXRlQ291bnRlclt0MF0sIC5jb250aW51ZQorICAgICAgICBhY3Rpb24oKQorICAgIC5jb250
aW51ZToKKyAgICBlbmQKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUo
KQorICAgIGNoZWNrU3dpdGNoVG9KSVQoCisgICAgICAgIDEwLAorICAgICAgICBtYWNybyAoKQor
ICAgICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQorICAgICAgICBlbmQpCitl
bmQKKworbWFjcm8gYXNzZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCisgICAgYXNzZXJ0KG1hY3JvIChv
aykgYmlsdCBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIG9rIGVuZCkKK2VuZAor
CittYWNybyBmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisg
ICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgSlNGdW5jdGlv
bjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2Fk
cCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0s
IHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxv
Y2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJl
Z2lzdGVyCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVy
XSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJs
b2NrRm9yQ29uc3RydWN0W3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKK2VuZAorCitt
YWNybyBub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKKyAgICBsb2Fk
cCBDb2RlQmxvY2tbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKK2VuZAorCittYWNybyBmdW5jdGlvbkNv
ZGVCbG9ja1NldHRlcihzb3VyY2VSZWdpc3RlcikKKyAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIs
IENvZGVCbG9ja1tjZnJdCitlbmQKKworbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIo
c291cmNlUmVnaXN0ZXIpCisgICAgIyBOb3RoaW5nIHRvIGRvIQorZW5kCisKKyMgRG8gdGhlIGJh
cmUgbWluaW11bSByZXF1aXJlZCB0byBleGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2
ZSB0aGUgQ29kZUJsb2NrKgorIyBpbiB0MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRy
eSBPU1IuCittYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwg
b3NyU2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgpCisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0
ZXJDYWxsKHQyKQorICAgIAorICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBp
ZiB3ZSBzaG91bGQgT1NSLgorICAgIHN0b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQorICAgIGlmIEVY
RUNVVElPTl9UUkFDSU5HCisgICAgICAgIGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQorICAg
IGVuZAorICAgIGNvZGVCbG9ja0dldHRlcih0MSkKKyAgICBpZiBKSVRfRU5BQkxFRAorICAgICAg
ICBiYWRkaXMgNSwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXJbdDFdLCAuY29udGlu
dWUKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAgICBtb3ZlIHQx
LCBjZnIKKyAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgbG9hZHAgUmV0dXJuUENb
Y2ZyXSwgdDIKKyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisg
ICAgICAgIGptcCB0MAorICAgIC5yZWNvdmVyOgorICAgICAgICBjb2RlQmxvY2tHZXR0ZXIodDEp
CisgICAgLmNvbnRpbnVlOgorICAgIGVuZAorICAgIGNvZGVCbG9ja1NldHRlcih0MSkKKyAgICAK
KyAgICAjIFNldCB1cCB0aGUgUEMuCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQgorICAgICAgICBtb3ZlIDAsIFBDCisgICAg
ZWxzZQorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEMKKyAg
ICBlbmQKK2VuZAorCisjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlz
IHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgorIyBNdXN0IGNhbGwgZGlzcGF0Y2goMCkg
YWZ0ZXIgY2FsbGluZyB0aGlzLgorbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihwcm9maWxl
QXJnU2tpcCkKKyAgICBpZiBWQUxVRV9QUk9GSUxFUgorICAgICAgICAjIFByb2ZpbGUgdGhlIGFy
Z3VtZW50cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIGRvIHRoaXMu
IFRoaXMKKyAgICAgICAgIyBjb2RlIGlzIHByZXR0eSBob3JyZW5kb3VzIGJlY2F1c2Ugb2YgdGhl
IGRpZmZlcmVuY2UgaW4gb3JkZXJpbmcgYmV0d2VlbgorICAgICAgICAjIGFyZ3VtZW50cyBhbmQg
dmFsdWUgcHJvZmlsZXMsIHRoZSBkZXNpcmUgdG8gaGF2ZSBhIHNpbXBsZSBsb29wLWRvd24tdG8t
emVybworICAgICAgICAjIGxvb3AsIGFuZCB0aGUgZGVzaXJlIHRvIHVzZSBvbmx5IHRocmVlIHJl
Z2lzdGVycyBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgUEMgYW5kCisgICAgICAgICMgdGhlIGNvZGUg
YmxvY2suIEl0IGlzIGxpa2VseSB0aGF0IHRoaXMgY29kZSBzaG91bGQgYmUgcmV3cml0dGVuIGlu
IGEgbW9yZQorICAgICAgICAjIG9wdGltYWwgd2F5IGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgaGF2
ZSBtb3JlIHRoYW4gZml2ZSByZWdpc3RlcnMgYXZhaWxhYmxlCisgICAgICAgICMgZm9yIGFyYml0
cmFyeSB1c2UgaW4gdGhlIGludGVycHJldGVyLgorICAgICAgICBsb2FkaSBDb2RlQmxvY2s6Om1f
bnVtUGFyYW1ldGVyc1t0MV0sIHQwCisgICAgICAgIGFkZGkgLXByb2ZpbGVBcmdTa2lwLCB0MCAj
IFVzZSBhZGRpIGJlY2F1c2UgdGhhdCdzIHdoYXQgaGFzIHRoZSBwZWVwaG9sZQorICAgICAgICBh
c3NlcnQobWFjcm8gKG9rKSBiaWd0ZXEgdDAsIDAsIG9rIGVuZCkKKyAgICAgICAgYnRpeiB0MCwg
LmFyZ3VtZW50UHJvZmlsZURvbmUKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2FyZ3VtZW50
VmFsdWVQcm9maWxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0MV0sIHQzCisgICAgICAgIG11bGkg
c2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDAsIHQyICMgQWFhYWFoaGhoISBOZWVkIHN0cmVuZ3RoIHJl
ZHVjdGlvbiEKKyAgICAgICAgbmVnaSB0MAorICAgICAgICBsc2hpZnRpIDMsIHQwCisgICAgICAg
IGFkZHAgdDIsIHQzCisgICAgLmFyZ3VtZW50UHJvZmlsZUxvb3A6CisgICAgICAgIGlmIEpTVkFM
VUU2NAorICAgICAgICAgICAgbG9hZHAgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCAtIHByb2ZpbGVB
cmdTa2lwICogOFtjZnIsIHQwXSwgdDIKKyAgICAgICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVlUHJv
ZmlsZSwgdDMKKyAgICAgICAgICAgIHN0b3JlcCB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2Yg
VmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHNbdDNdCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRhZ09mZnNldCArIDggLSBw
cm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBzdWJwIHNpemVvZiBW
YWx1ZVByb2ZpbGUsIHQzCisgICAgICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICog
c2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgVGFnT2Zmc2V0
W3QzXQorICAgICAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNl
dCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBzdG9y
ZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmls
ZTo6bV9idWNrZXRzICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICAgICAgZW5kCisgICAgICAgIGJh
ZGRpbnogOCwgdDAsIC5hcmd1bWVudFByb2ZpbGVMb29wCisgICAgLmFyZ3VtZW50UHJvZmlsZURv
bmU6CisgICAgZW5kCisgICAgICAgIAorICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgorICAgIGxv
YWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAorICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QxXSwgdDIKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6Omlu
dGVycHJldGVyW3QyXSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdpc3RlckZpbGUg
ZnJvbSB0aGUgSklUU3RhY2tGcmFtZQorICAgIGxzaGlmdGkgMywgdDAKKyAgICBhZGRwIHQwLCBj
ZnIsIHQwCisgICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsgUmVnaXN0ZXJG
aWxlOjptX2VuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSworCisgICAgIyBTdGFjayBoZWlnaHQg
Y2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKKy5zdGFja0hlaWdodE9LOgorZW5kCisKK21h
Y3JvIGFsbG9jYXRlQmFzaWNKU09iamVjdChzaXplQ2xhc3NJbmRleCwgY2xhc3NJbmZvT2Zmc2V0
LCBzdHJ1Y3R1cmUsIHJlc3VsdCwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBzbG93Q2FzZSkKKyAgICBp
ZiBBTFdBWVNfQUxMT0NBVEVfU0xPVworICAgICAgICBqbXAgc2xvd0Nhc2UKKyAgICBlbHNlCisg
ICAgICAgIGNvbnN0IG9mZnNldE9mTXlTaXplQ2xhc3MgPQorICAgICAgICAgICAgSlNHbG9iYWxE
YXRhOjpoZWFwICsKKyAgICAgICAgICAgIEhlYXA6Om1fb2JqZWN0U3BhY2UgKworICAgICAgICAg
ICAgTWFya2VkU3BhY2U6Om1fbm9ybWFsU3BhY2UgKworICAgICAgICAgICAgTWFya2VkU3BhY2U6
OlN1YnNwYWNlOjpwcmVjaXNlQWxsb2NhdG9ycyArCisgICAgICAgICAgICBzaXplQ2xhc3NJbmRl
eCAqIHNpemVvZiBNYXJrZWRBbGxvY2F0b3IKKyAgICAgICAgCisgICAgICAgICMgRklYTUU6IHdl
IGNhbiBnZXQgdGhlIGdsb2JhbCBkYXRhIGluIG9uZSBsb2FkIGZyb20gdGhlIHN0YWNrLgorICAg
ICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgc2NyYXRjaDEKKyAgICAgICAgbG9hZHAgQ29kZUJs
b2NrOjptX2dsb2JhbERhdGFbc2NyYXRjaDFdLCBzY3JhdGNoMQorICAgICAgICAKKyAgICAgICAg
IyBHZXQgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuICAgIAorICAgICAgICBsb2FkcCBv
ZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2Ny
YXRjaDFdLCByZXN1bHQKKyAgICAgICAgYnRweiByZXN1bHQsIHNsb3dDYXNlCisgICAgICAgIAor
ICAgICAgICAjIFJlbW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4KKyAgICAgICAg
bG9hZHAgW3Jlc3VsdF0sIHNjcmF0Y2gyCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgb2Zmc2V0
T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gx
XQorICAgIAorICAgICAgICAjIEluaXRpYWxpemUgdGhlIG9iamVjdC4KKyAgICAgICAgbG9hZHAg
Y2xhc3NJbmZvT2Zmc2V0W3NjcmF0Y2gxXSwgc2NyYXRjaDIKKyAgICAgICAgc3RvcmVwIHNjcmF0
Y2gyLCBbcmVzdWx0XQorICAgICAgICBzdG9yZXAgc3RydWN0dXJlLCBKU0NlbGw6Om1fc3RydWN0
dXJlW3Jlc3VsdF0KKyAgICAgICAgc3RvcmVwIDAsIEpTT2JqZWN0OjptX2luaGVyaXRvcklEW3Jl
c3VsdF0KKyAgICAgICAgYWRkcCBzaXplb2YgSlNPYmplY3QsIHJlc3VsdCwgc2NyYXRjaDEKKyAg
ICAgICAgc3RvcmVwIHNjcmF0Y2gxLCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbcmVzdWx0
XQorICAgIGVuZAorZW5kCisKKworIyBJbmRpY2F0ZSB0aGUgYmVnaW5uaW5nIG9mIExMSW50Lgor
X2xsaW50X2JlZ2luOgorICAgIGNyYXNoKCkKKworCitfbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZToK
KyAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2Rl
QmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKKyAg
ICBkaXNwYXRjaCgwKQorCisKK19sbGludF9ldmFsX3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKG5v
dEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xs
aW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlKQorICAgIGRpc3BhdGNoKDApCisK
KworX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKGZ1bmN0
aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGlu
dF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGwsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5j
dGlvbl9mb3JfY2FsbCkKKy5mdW5jdGlvbkZvckNhbGxCZWdpbjoKKyAgICBmdW5jdGlvbkluaXRp
YWxpemF0aW9uKDApCisgICAgZGlzcGF0Y2goMCkKKyAgICAKKworX2xsaW50X2Z1bmN0aW9uX2Zv
cl9jb25zdHJ1Y3RfcHJvbG9ndWU6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RD
b2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3Ny
X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9m
b3JfY29uc3RydWN0KQorLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW46CisgICAgZnVuY3Rpb25J
bml0aWFsaXphdGlvbigxKQorICAgIGRpc3BhdGNoKDApCisgICAgCisKK19sbGludF9mdW5jdGlv
bl9mb3JfY2FsbF9hcml0eV9jaGVjazoKKyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2Rl
QmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1
bmN0aW9uX2Zvcl9jYWxsX2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9j
YWxsKQorICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDYWxsQmVnaW4sIF9sbGlu
dF9zbG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQorCisKK19sbGludF9mdW5jdGlvbl9mb3JfY29u
c3RydWN0X2FyaXR5X2NoZWNrOgorICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29k
ZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9m
dW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNr
X2Zvcl9jb25zdHJ1Y3QpCisgICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNvbnN0
cnVjdEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNoZWNrKQorCisKKyMg
VmFsdWUtcmVwcmVzZW50YXRpb24tc3BlY2lmaWMgY29kZS4KIGlmIEpTVkFMVUU2NAogICAgIGlu
Y2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRlcjY0CiBlbHNlCiAgICAgaW5jbHVkZSBMb3dMZXZlbElu
dGVycHJldGVyMzJfNjQKIGVuZAogCisKKyMgTGFzdGx5LCBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4g
bGluayBldmVuIHRob3VnaCB3ZSBkb24ndCBzdXBwb3J0IGFsbCBvcGNvZGVzLgorIyBUaGVzZSBv
cGNvZGVzIHNob3VsZCBuZXZlciBhcmlzZSB3aGVuIHVzaW5nIExMSW50IG9yIGVpdGhlciBKSVQu
IFdlIGFzc2VydAorIyBhcyBtdWNoLgorCittYWNybyBub3RTdXBwb3J0ZWQoKQorICAgIGlmIEFT
U0VSVF9FTkFCTEVECisgICAgICAgIGNyYXNoKCkKKyAgICBlbHNlCisgICAgICAgICMgV2Ugc2hv
dWxkIHVzZSB3aGF0ZXZlciB0aGUgc21hbGxlc3QgcG9zc2libGUgaW5zdHJ1Y3Rpb24gaXMsIGp1
c3QgdG8KKyAgICAgICAgIyBlbnN1cmUgdGhhdCB0aGVyZSBpcyBhIGdhcCBiZXR3ZWVuIGluc3Ry
dWN0aW9uIGxhYmVscy4gSWYgbXVsdGlwbGUKKyAgICAgICAgIyBzbWFsbGVzdCBpbnN0cnVjdGlv
bnMgZXhpc3QsIHdlIHNob3VsZCBwaWNrIHRoZSBvbmUgdGhhdCBpcyBtb3N0CisgICAgICAgICMg
bGlrZWx5IHJlc3VsdCBpbiBleGVjdXRpb24gYmVpbmcgaGFsdGVkLiBDdXJyZW50bHkgdGhhdCBp
cyB0aGUgYnJlYWsKKyAgICAgICAgIyBpbnN0cnVjdGlvbiBvbiBhbGwgYXJjaGl0ZWN0dXJlcyB3
ZSdyZSBpbnRlcmVzdGVkIGluLiAoQnJlYWsgaXMgaW50MworICAgICAgICAjIG9uIEludGVsLCB3
aGljaCBpcyAxIGJ5dGUsIGFuZCBia3B0IG9uIEFSTXY3LCB3aGljaCBpcyAyIGJ5dGVzLikKKyAg
ICAgICAgYnJlYWsKKyAgICBlbmQKK2VuZAorCitfbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0aDoK
KyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2NoYWluOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX2NoYWluOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX3Byb3RvOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX3NlbGY6CisgICAgbm90
U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9nZW5lcmljOgorICAgIG5vdFN1cHBv
cnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX2NoYWluOgorICAgIG5vdFN1cHBv
cnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX3Byb3RvOgorICAgIG5vdFN1cHBv
cnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX3NlbGY6CisgICAgbm90U3VwcG9y
dGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQor
CitfbGxpbnRfb3BfZ2V0X2J5X2lkX3NlbGY6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50
X29wX2dldF9zdHJpbmdfbGVuZ3RoOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9w
dXRfYnlfaWRfZ2VuZXJpYzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5
X2lkX3JlcGxhY2U6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX3B1dF9ieV9pZF90
cmFuc2l0aW9uOgorICAgIG5vdFN1cHBvcnRlZCgpCisKKworIyBJbmRpY2F0ZSB0aGUgZW5kIG9m
IExMSW50LgorX2xsaW50X2VuZDoKKyAgICBjcmFzaCgpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCShyZXZpc2lvbiAxMDkxNzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgkod29ya2luZyBjb3B5KQpAQCAtMzMs
MjkgKzMzLDkgQEAgY2xhc3MgTm9kZQogZW5kCiAKIGNsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5v
Q2hpbGRyZW4KLSAgICBkZWYgaW5pdGlhbGl6ZShuYW1lKQotICAgICAgICBAbmFtZSA9IG5hbWUK
LSAgICBlbmQKLSAgICAKICAgICBkZWYgYXJtVjdPcGVyYW5kCiAgICAgICAgIEBuYW1lCiAgICAg
ZW5kCi0gICAgCi0gICAgZGVmIGFkZHJlc3M/Ci0gICAgICAgIGZhbHNlCi0gICAgZW5kCi0gICAg
Ci0gICAgZGVmIGxhYmVsPwotICAgICAgICBmYWxzZQotICAgIGVuZAotICAgIAotICAgIGRlZiBp
bW1lZGlhdGU/Ci0gICAgICAgIGZhbHNlCi0gICAgZW5kCi0gICAgCi0gICAgZGVmIHJlZ2lzdGVy
PwotICAgICAgICB0cnVlCi0gICAgZW5kCiBlbmQKIAogQVJNdjdfRVhUUkFfR1BSUyA9IFtTcGVj
aWFsUmVnaXN0ZXIubmV3KCJyOSIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyOCIpLCBTcGVjaWFs
UmVnaXN0ZXIubmV3KCJyMyIpXQpAQCAtNDY5LDcgKzQ0OSw3IEBAIGRlZiBhcm1WN0xvd2VyTWFs
Zm9ybWVkSW1tZWRpYXRlcyhsaXN0KQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgbmV3TGlzdCA8PCBub2RlLmFybVY3TG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzUmVj
dXJzZShuZXdMaXN0KQogICAgICAgICAgICAgICAgIGVuZAotICAgICAgICAgICAgd2hlbiAibXVs
aSIKKyAgICAgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIKICAgICAgICAgICAgICAgICBpZiBu
b2RlLm9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQogICAgICAgICAgICAgICAgICAgICB0bXAg
PSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCiAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3Qg
PDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5k
c1swXSwgdG1wXSkKQEAgLTUzNSw5ICs1MTUsOSBAQCBkZWYgYXJtVjdMb3dlck1pc3BsYWNlZEFk
ZHJlc3NlcyhsaXN0KQogICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCiAgICAgICAg
ICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUK
LSAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRpIiwgImFuZHAi
LCAibHNoaWZ0aSIsICJtdWxpIiwgIm5lZ2kiLCAibm90aSIsICJvcmkiLCAib3JpcyIsCi0gICAg
ICAgICAgICAgICAgIm9ycCIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInN1YmkiLCAic3VicCIs
ICJzdWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJpLywgL15icC8sIC9eYnRpLywKLSAgICAgICAg
ICAgICAgICAvXmJ0cC8sIC9eY2kvLCAvXmNwLywgL150aS8KKyAgICAgICAgICAgIHdoZW4gImFk
ZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRpIiwgImFuZHAiLCAibHNoaWZ0aSIsICJtdWxpIiwg
Im11bHAiLCAibmVnaSIsICJub3RpIiwgIm9yaSIsCisgICAgICAgICAgICAgICAgIm9yaXMiLCAi
b3JwIiwgInJzaGlmdGkiLCAidXJzaGlmdGkiLCAic3ViaSIsICJzdWJwIiwgInN1YmlzIiwgInhv
cmkiLCAieG9ycCIsIC9eYmkvLCAvXmJwLywKKyAgICAgICAgICAgICAgICAvXmJ0aS8sIC9eYnRw
LywgL15jaS8sIC9eY3AvLCAvXnRpLwogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBub2RlLm9wY29kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcm1WN0FzUmVnaXN0ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMs
IG5vZGUub3BlcmFuZHMsICJpIikpCkBAIC02NDksNyArNjI5LDcgQEAgZW5kCiAjCiAKIGNsYXNz
IFNlcXVlbmNlCi0gICAgZGVmIGxvd2VyQVJNdjcKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0QVJN
djcKICAgICAgICAgbXlMaXN0ID0gQGxpc3QKICAgICAgICAgCiAgICAgICAgICMgVmVyaWZ5IHRo
YXQgd2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVjdGlvbnMgYW5kIGxhYmVscy4KQEAgLTY3MywxMCAr
NjUzLDggQEAgY2xhc3MgU2VxdWVuY2UKICAgICAgICAgbXlMaXN0ID0gYXJtVjdMb3dlclJlZ2lz
dGVyUmV1c2UobXlMaXN0KQogICAgICAgICBteUxpc3QgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBv
cmFyaWVzKG15TGlzdCwgOmdwciwgQVJNdjdfRVhUUkFfR1BSUykKICAgICAgICAgbXlMaXN0ID0g
YXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhteUxpc3QsIDpmcHIsIEFSTXY3X0VYVFJBX0ZQ
UlMpCi0gICAgICAgIG15TGlzdC5lYWNoIHsKLSAgICAgICAgICAgIHwgbm9kZSB8Ci0gICAgICAg
ICAgICBub2RlLmxvd2VyKCJBUk12NyIpCi0gICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJl
dHVybiBteUxpc3QKICAgICBlbmQKIGVuZAogCkBAIC03OTgsNyArNzc2LDcgQEAgY2xhc3MgSW5z
dHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoImFzcnMiLCAiYXNycyIsIG9w
ZXJhbmRzKQogICAgICAgICB3aGVuICJ1cnNoaWZ0aSIKICAgICAgICAgICAgIGVtaXRBcm1WN0Nv
bXBhY3QoImxzcnMiLCAibHNycyIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJtdWxpIgorICAg
ICAgICB3aGVuICJtdWxpIiwgIm11bHAiCiAgICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09
IDIgb3Igb3BlcmFuZHNbMF0gPT0gb3BlcmFuZHNbMl0gb3Igb3BlcmFuZHNbMV0gPT0gb3BlcmFu
ZHNbMl0KICAgICAgICAgICAgICAgICBlbWl0QXJtVjcoIm11bHMiLCBvcGVyYW5kcykKICAgICAg
ICAgICAgIGVsc2UKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5y
Ygo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIJ
KHJldmlzaW9uIDEwOTE3MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2Fz
bS5yYgkod29ya2luZyBjb3B5KQpAQCAtMTYyLDYgKzE2Miw3IEBAIEZpbGUub3BlbihvdXRwdXRG
bG5tLCAidyIpIHsKICAgICAgICAgZm9yU2V0dGluZ3MoY29tcHV0ZVNldHRpbmdzQ29tYmluYXRp
b25zKGFzdClbY29uZmlnSW5kZXhdLCBhc3QpIHsKICAgICAgICAgICAgIHwgY29uY3JldGVTZXR0
aW5ncywgbG93TGV2ZWxBU1QsIGJhY2tlbmQgfAogICAgICAgICAgICAgbG93TGV2ZWxBU1QgPSBs
b3dMZXZlbEFTVC5yZXNvbHZlKCpidWlsZE9mZnNldHNNYXAobG93TGV2ZWxBU1QsIG9mZnNldHNM
aXN0KSkKKyAgICAgICAgICAgIGxvd0xldmVsQVNULnZhbGlkYXRlCiAgICAgICAgICAgICBlbWl0
Q29kZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNldHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2Vu
ZCkgewogICAgICAgICAgICAgICAgICRhc20uaW5Bc20gewogICAgICAgICAgICAgICAgICAgICBs
b3dMZXZlbEFTVC5sb3dlcihiYWNrZW5kKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXN0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL2FzdC5yYgkocmV2aXNpb24gMTA5MTcwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXN0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zODMsNiArMzgzLDE1NyBAQCBj
bGFzcyBOZWdJbW1lZGlhdGUgPCBOb2RlCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgT3JJbW1lZGlh
dGVzIDwgTm9kZQorICAgIGF0dHJfcmVhZGVyIDpsZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYg
aW5pdGlhbGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCByaWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9y
aWdpbikKKyAgICAgICAgQGxlZnQgPSBsZWZ0CisgICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAg
ZW5kCisgICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAg
IGVuZAorICAgIAorICAgIGRlZiBtYXBDaGlsZHJlbgorICAgICAgICBPckltbWVkaWF0ZXMubmV3
KGNvZGVPcmlnaW4sICh5aWVsZCBAbGVmdCksICh5aWVsZCBAcmlnaHQpKQorICAgIGVuZAorICAg
IAorICAgIGRlZiBkdW1wCisgICAgICAgICIoI3tsZWZ0LmR1bXB9IHwgI3tyaWdodC5kdW1wfSki
CisgICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5k
CisgICAgCisgICAgZGVmIGxhYmVsPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAg
IGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVn
aXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5kCitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRl
cyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGlu
aXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmln
aW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVu
ZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBl
bmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgQW5kSW1tZWRpYXRlcy5uZXco
Y29kZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwgKHlpZWxkIEByaWdodCkpCisgICAgZW5kCisgICAg
CisgICAgZGVmIGR1bXAKKyAgICAgICAgIigje2xlZnQuZHVtcH0gJiAje3JpZ2h0LmR1bXB9KSIK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQK
KyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAg
ZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdp
c3Rlcj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKK2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVz
IDwgTm9kZQorICAgIGF0dHJfcmVhZGVyIDpsZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5p
dGlhbGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCByaWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdp
bikKKyAgICAgICAgQGxlZnQgPSBsZWZ0CisgICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5k
CisgICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVu
ZAorICAgIAorICAgIGRlZiBtYXBDaGlsZHJlbgorICAgICAgICBYb3JJbW1lZGlhdGVzLm5ldyhj
b2RlT3JpZ2luLCAoeWllbGQgQGxlZnQpLCAoeWllbGQgQHJpZ2h0KSkKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgZHVtcAorICAgICAgICAiKCN7bGVmdC5kdW1wfSBeICN7cmlnaHQuZHVtcH0pIgor
ICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAor
ICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBk
ZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lz
dGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEJpdG5vdEltbWVkaWF0
ZSA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6Y2hpbGQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6
ZShjb2RlT3JpZ2luLCBjaGlsZCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAg
QGNoaWxkID0gY2hpbGQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAg
W0BjaGlsZF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgQml0
bm90SW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGNoaWxkKSkKKyAgICBlbmQKKyAg
ICAKKyAgICBkZWYgZHVtcAorICAgICAgICAiKH4je0BjaGlsZC5kdW1wfSkiCisgICAgZW5kCisg
ICAgCisgICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAg
ZGVmIGxhYmVsPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlh
dGU/CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAg
ICAgIGZhbHNlCisgICAgZW5kCitlbmQKKwogY2xhc3MgUmVnaXN0ZXJJRCA8IE5vQ2hpbGRyZW4K
ICAgICBhdHRyX3JlYWRlciA6bmFtZQogICAgIApAQCAtNDU5LDYgKzYxMCwyOCBAQCBjbGFzcyBG
UFJlZ2lzdGVySUQgPCBOb0NoaWxkcmVuCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU3BlY2lhbFJl
Z2lzdGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiBpbml0aWFsaXplKG5hbWUpCisgICAgICAgIEBu
YW1lID0gbmFtZQorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxz
ZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQK
KyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAor
ICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorZW5kCisKIGNsYXNzIFZh
cmlhYmxlIDwgTm9DaGlsZHJlbgogICAgIGF0dHJfcmVhZGVyIDpuYW1lCiAgICAgCkBAIC00Nzks
NiArNjUyLDEwIEBAIGNsYXNzIFZhcmlhYmxlIDwgTm9DaGlsZHJlbgogICAgIGRlZiBkdW1wCiAg
ICAgICAgIG5hbWUKICAgICBlbmQKKyAgICAKKyAgICBkZWYgaW5zcGVjdAorICAgICAgICAiPHZh
cmlhYmxlICN7bmFtZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfT4iCisgICAgZW5kCiBlbmQKIAog
Y2xhc3MgQWRkcmVzcyA8IE5vZGUKQEAgLTc1Nyw2ICs5MzQsMTAgQEAgY2xhc3MgTGFiZWxSZWZl
cmVuY2UgPCBOb2RlCiAgICAgZGVmIGxhYmVsPwogICAgICAgICB0cnVlCiAgICAgZW5kCisgICAg
CisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKIGVuZAogCiBjbGFz
cyBMb2NhbExhYmVsUmVmZXJlbmNlIDwgTm9DaGlsZHJlbgpAQCAtNzkwLDYgKzk3MSwxMCBAQCBj
bGFzcyBMb2NhbExhYmVsUmVmZXJlbmNlIDwgTm9DaGlsZHJlbgogICAgIGRlZiBsYWJlbD8KICAg
ICAgICAgdHJ1ZQogICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZh
bHNlCisgICAgZW5kCiBlbmQKIAogY2xhc3MgU2VxdWVuY2UgPCBOb2RlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24gMTA5MTcw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDggKzQ4LDEyIEBAIEJBQ0tFTkRfUEFUVEVSTiA9IFJlZ2V4cC5uZXco
J1xcQSgnICsgQkEKIAogY2xhc3MgTm9kZQogICAgIGRlZiBsb3dlcihuYW1lKQotICAgICAgICAk
YWN0aXZlQmFja2VuZCA9IG5hbWUKLSAgICAgICAgc2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAg
ICAgYmVnaW4KKyAgICAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQorICAgICAgICAgICAg
c2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAgcmVzY3VlID0+IGUKKyAgICAgICAgICAgIHJh
aXNlICJHb3QgZXJyb3IgI3tlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQK
ICAgICBlbmQKIGVuZAogCkBAIC04Nyw3ICs5MSwxMyBAQCBlbmQKIGNsYXNzIFNlcXVlbmNlCiAg
ICAgZGVmIGxvd2VyKG5hbWUpCiAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQotICAgICAg
ICBpZiByZXNwb25kX3RvPyAibG93ZXIje25hbWV9IgorICAgICAgICBpZiByZXNwb25kX3RvPyAi
Z2V0TW9kaWZpZWRMaXN0I3tuYW1lfSIKKyAgICAgICAgICAgIG5ld0xpc3QgPSBzZW5kKCJnZXRN
b2RpZmllZExpc3Qje25hbWV9IikKKyAgICAgICAgICAgIG5ld0xpc3QuZWFjaCB7CisgICAgICAg
ICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgICAgICBub2RlLmxvd2VyKG5hbWUpCisgICAg
ICAgICAgICB9CisgICAgICAgIGVsc2lmIHJlc3BvbmRfdG8/ICJsb3dlciN7bmFtZX0iCiAgICAg
ICAgICAgICBzZW5kKCJsb3dlciN7bmFtZX0iKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBA
bGlzdC5lYWNoIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3Ry
dWN0aW9ucy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9pbnN0cnVjdGlvbnMucmIJKHJldmlzaW9uIDEwOTE3MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYg
KzE1OSw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJicGx0IiwKICAgICAgImJwbHRl
cSIsCiAgICAgICJhZGRwIiwKKyAgICAgIm11bHAiLAogICAgICAiYW5kcCIsCiAgICAgICJvcnAi
LAogICAgICAic3VicCIsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9w
YXJzZXIucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
cGFyc2VyLnJiCShyZXZpc2lvbiAxMDkxNzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9wYXJzZXIucmIJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBkZWYg
bGV4KHN0ciwgZmlsZU5hbWUpCiAgICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVP
cmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKSwgJCYpCiAgICAgICAgIHdoZW4gL1xBOjov
CiAgICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1l
LCBsaW5lTnVtYmVyKSwgJCYpCi0gICAgICAgIHdoZW4gL1xBWzosXChcKVxbXF09XCtcLSpdLwor
ICAgICAgICB3aGVuIC9cQVs6LFwoXClcW1xdPVwrXC1+XHwmXipdLwogICAgICAgICAgICAgcmVz
dWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQm
KQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiTGV4ZXIgZXJyb3IgYXQgI3tDb2Rl
T3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlcikudG9fc30sIHVuZXhwZWN0ZWQgc2VxdWVu
Y2UgI3tzdHJbMC4uMjBdLmluc3BlY3R9IgpAQCAtMzIyLDYgKzMyMiw5IEBAIGNsYXNzIFBhcnNl
cgogICAgICAgICBpZiBAdG9rZW5zW0BpZHhdID09ICItIgogICAgICAgICAgICAgQGlkeCArPSAx
CiAgICAgICAgICAgICBOZWdJbW1lZGlhdGUubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmln
aW4sIHBhcnNlRXhwcmVzc2lvbkF0b20pCisgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0g
In4iCisgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAgIEJpdG5vdEltbWVkaWF0ZS5u
ZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcGFyc2VFeHByZXNzaW9uQXRvbSkKICAg
ICAgICAgZWxzaWYgQHRva2Vuc1tAaWR4XSA9PSAiKCIKICAgICAgICAgICAgIEBpZHggKz0gMQog
ICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uCkBAIC0zNjUsMTAgKzM2OCwxMCBA
QCBjbGFzcyBQYXJzZXIKICAgICBlbmQKICAgICAKICAgICBkZWYgY291bGRCZUV4cHJlc3Npb24K
LSAgICAgICAgQHRva2Vuc1tAaWR4XSA9PSAiLSIgb3IgQHRva2Vuc1tAaWR4XSA9PSAic2l6ZW9m
IiBvciBpc0ludGVnZXIoQHRva2Vuc1tAaWR4XSkgb3IgaXNWYXJpYWJsZShAdG9rZW5zW0BpZHhd
KSBvciBAdG9rZW5zW0BpZHhdID09ICIoIgorICAgICAgICBAdG9rZW5zW0BpZHhdID09ICItIiBv
ciBAdG9rZW5zW0BpZHhdID09ICJ+IiBvciBAdG9rZW5zW0BpZHhdID09ICJzaXplb2YiIG9yIGlz
SW50ZWdlcihAdG9rZW5zW0BpZHhdKSBvciBpc1ZhcmlhYmxlKEB0b2tlbnNbQGlkeF0pIG9yIEB0
b2tlbnNbQGlkeF0gPT0gIigiCiAgICAgZW5kCiAgICAgCi0gICAgZGVmIHBhcnNlRXhwcmVzc2lv
bgorICAgIGRlZiBwYXJzZUV4cHJlc3Npb25BZGQKICAgICAgICAgc2tpcE5ld0xpbmUKICAgICAg
ICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uTXVsCiAgICAgICAgIHdoaWxlIEB0b2tlbnNbQGlk
eF0gPT0gIisiIG9yIEB0b2tlbnNbQGlkeF0gPT0gIi0iCkBAIC0zODUsNiArMzg4LDMzIEBAIGNs
YXNzIFBhcnNlcgogICAgICAgICByZXN1bHQKICAgICBlbmQKICAgICAKKyAgICBkZWYgcGFyc2VF
eHByZXNzaW9uQW5kCisgICAgICAgIHNraXBOZXdMaW5lCisgICAgICAgIHJlc3VsdCA9IHBhcnNl
RXhwcmVzc2lvbkFkZAorICAgICAgICB3aGlsZSBAdG9rZW5zW0BpZHhdID09ICImIgorICAgICAg
ICAgICAgQGlkeCArPSAxCisgICAgICAgICAgICByZXN1bHQgPSBBbmRJbW1lZGlhdGVzLm5ldyhA
dG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCByZXN1bHQsIHBhcnNlRXhwcmVzc2lvbkFkZCkK
KyAgICAgICAgZW5kCisgICAgICAgIHJlc3VsdAorICAgIGVuZAorICAgIAorICAgIGRlZiBwYXJz
ZUV4cHJlc3Npb24KKyAgICAgICAgc2tpcE5ld0xpbmUKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VF
eHByZXNzaW9uQW5kCisgICAgICAgIHdoaWxlIEB0b2tlbnNbQGlkeF0gPT0gInwiIG9yIEB0b2tl
bnNbQGlkeF0gPT0gIl4iCisgICAgICAgICAgICBpZiBAdG9rZW5zW0BpZHhdID09ICJ8IgorICAg
ICAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IE9ySW1tZWRp
YXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcmVzdWx0LCBwYXJzZUV4cHJl
c3Npb25BbmQpCisgICAgICAgICAgICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJeIgorICAgICAg
ICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFhvckltbWVkaWF0
ZXMubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4sIHJlc3VsdCwgcGFyc2VFeHByZXNz
aW9uQW5kKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgZW5kCisgICAgICAgIHJlc3VsdAorICAgIGVuZAorICAgIAogICAg
IGRlZiBwYXJzZU9wZXJhbmQoY29tbWVudCkKICAgICAgICAgc2tpcE5ld0xpbmUKICAgICAgICAg
aWYgY291bGRCZUV4cHJlc3Npb24KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL3JlZ2lzdGVycy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9yZWdpc3RlcnMucmIJKHJldmlzaW9uIDEwOTE3MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgkod29ya2luZyBjb3B5KQpAQCAtMzQsNyAr
MzQsMTIgQEAgR1BSUyA9CiAgICAgICJyMCIsCiAgICAgICJyMSIsCiAgICAgICJzcCIsCi0gICAg
ICJsciIKKyAgICAgImxyIiwKKyAgICAgCisgICAgICMgNjQtYml0IG9ubHkgcmVnaXN0ZXJzOgor
ICAgICAiY3NyMCIsICAjIHIxMAorICAgICAiY3NyMSIsICAjIHIxNCwgdGFnIHR5cGUgbnVtYmVy
IHJlZ2lzdGVyCisgICAgICJjc3IyIiAgICMgcjE1LCB0YWcgbWFzayByZWdpc3RlcgogICAgIF0K
IAogRlBSUyA9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS90cmFuc2Zv
cm0ucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJh
bnNmb3JtLnJiCShyZXZpc2lvbiAxMDkxNzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS90cmFuc2Zvcm0ucmIJKHdvcmtpbmcgY29weSkKQEAgLTMyOCw2ICszMjgsNDQgQEAg
Y2xhc3MgTmVnSW1tZWRpYXRlCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgT3JJbW1lZGlhdGVzCisg
ICAgZGVmIGZvbGQKKyAgICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9
IEByaWdodC5mb2xkCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1l
ZGlhdGUKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUK
KyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52YWx1ZSB8IEByaWdodC52
YWx1ZSkKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBbmRJbW1lZGlhdGVzCisgICAgZGVmIGZvbGQK
KyAgICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9IEByaWdodC5mb2xk
CisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1lZGlhdGUKKyAgICAg
ICAgcmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1t
ZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52YWx1ZSAmIEByaWdodC52YWx1ZSkKKyAgICBl
bmQKK2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVzCisgICAgZGVmIGZvbGQKKyAgICAgICAgQGxl
ZnQgPSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9IEByaWdodC5mb2xkCisgICAgICAgIHJl
dHVybiBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgcmV0dXJuIHNl
bGYgdW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhj
b2RlT3JpZ2luLCBAbGVmdC52YWx1ZSBeIEByaWdodC52YWx1ZSkKKyAgICBlbmQKK2VuZAorCitj
bGFzcyBCaXRub3RJbW1lZGlhdGUKKyAgICBkZWYgZm9sZAorICAgICAgICBAY2hpbGQgPSBAY2hp
bGQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGNoaWxkLmlzX2E/IEltbWVkaWF0
ZQorICAgICAgICBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIH5AY2hpbGQudmFsdWUpCisgICAg
ZW5kCitlbmQKKwogIwogIyBub2RlLnJlc29sdmVBZnRlclNldHRpbmdzKG9mZnNldHMsIHNpemVz
KQogIwpAQCAtMzQwLDMgKzM3OCw5NyBAQCBjbGFzcyBOb2RlCiAgICAgZW5kCiBlbmQKIAorIwor
IyBub2RlLnZhbGlkYXRlCisjCisjIENoZWNrcyB0aGF0IHRoZSBub2RlIGlzIHJlYWR5IGZvciBi
YWNrZW5kIGNvbXBpbGF0aW9uLgorIworCitjbGFzcyBOb2RlCisgICAgZGVmIHZhbGlkYXRlCisg
ICAgICAgIHJhaXNlICJVbnJlc29sdmVkICN7ZHVtcH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgdmFsaWRhdGVDaGlsZHJlbgorICAgICAgICBjaGlsZHJl
bi5lYWNoIHsKKyAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICBub2RlLnZhbGlkYXRl
CisgICAgICAgIH0KKyAgICBlbmQKK2VuZAorCitjbGFzcyBTZXF1ZW5jZQorICAgIGRlZiB2YWxp
ZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xhc3MgSW1t
ZWRpYXRlCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgUmVnaXN0ZXJJ
RAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEZQUmVnaXN0ZXJJRAor
ICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYg
dmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNz
IEJhc2VJbmRleAorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisg
ICAgZW5kCitlbmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIHZhbGlkYXRlCisg
ICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFzcyBJbnN0cnVjdGlv
bgorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitl
bmQKKworY2xhc3MgRXJyb3IKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFz
cyBMYWJlbAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIExvY2FsTGFi
ZWwKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBMYWJlbFJlZmVyZW5j
ZQorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIExvY2FsTGFiZWxSZWZl
cmVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBTa2lwCisgICAg
ZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20veDg2LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3g4Ni5yYgkocmV2aXNpb24gMTA5MTcwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20veDg2LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMyArMzIsMzcgQEAg
ZGVmIGlzWDY0CiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGls
ZHJlbgorICAgIGRlZiB4ODZPcGVyYW5kKGtpbmQpCisgICAgICAgIHJhaXNlIHVubGVzcyBAbmFt
ZSA9fiAvXnIvCisgICAgICAgIHJhaXNlIHVubGVzcyBpc1g2NAorICAgICAgICBjYXNlIGtpbmQK
KyAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgIiUiICsgQG5hbWUgKyAidyIKKyAgICAg
ICAgd2hlbiA6aW50CisgICAgICAgICAgICAiJSIgKyBAbmFtZSArICJkIgorICAgICAgICB3aGVu
IDpwdHIKKyAgICAgICAgICAgICIlIiArIEBuYW1lCisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHJhaXNlCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIGRlZiB4ODZDYWxsT3BlcmFuZChraW5k
KQorICAgICAgICAiKiN7eDg2T3BlcmFuZChraW5kKX0iCisgICAgZW5kCitlbmQKKworWDY0X1ND
UkFUQ0hfUkVHSVNURVIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMTEiKQorCiBjbGFzcyBSZWdp
c3RlcklECiAgICAgZGVmIHN1cHBvcnRzOEJpdE9uWDg2CiAgICAgICAgIGNhc2UgbmFtZQogICAg
ICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIsICJ0MSIsICJhMSIsICJyMSIsICJ0MiIsICJ0MyIK
ICAgICAgICAgICAgIHRydWUKLSAgICAgICAgd2hlbiAidDQiLCAiY2ZyIgorICAgICAgICB3aGVu
ICJjZnIiLCAidHRuciIsICJ0bXIiCiAgICAgICAgICAgICBmYWxzZQorICAgICAgICB3aGVuICJ0
NCIsICJ0NSIKKyAgICAgICAgICAgIGlzWDY0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJh
aXNlCiAgICAgICAgIGVuZApAQCAtMTEyLDE3ICsxMzYsMzAgQEAgY2xhc3MgUmVnaXN0ZXJJRAog
ICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAiY2Zy
IgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpieXRlCi0gICAgICAg
ICAgICAgICAgIiVkaWwiCi0gICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAg
IiVkaSIKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIlZWRpIgotICAg
ICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiAiJWVk
aSIKKyAgICAgICAgICAgIGlmIGlzWDY0CisgICAgICAgICAgICAgICAgY2FzZSBraW5kCisgICAg
ICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICAgICAiJXIxM3ciCisgICAg
ICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgICAgICIlcjEzZCIKKyAgICAg
ICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAgICAgIiVyMTMiCisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAg
IGVuZAogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAg
ICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICAgICAgd2hlbiA6Ynl0ZQorICAgICAgICAgICAg
ICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAg
ICAgICAgICIlZGkiCisgICAgICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAg
ICAgICIlZWRpIgorICAgICAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICAg
ICAiJWVkaSIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJhaXNl
CisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAic3Ai
CiAgICAgICAgICAgICBjYXNlIGtpbmQKQEAgLTEzNyw2ICsxNzQsNDggQEAgY2xhc3MgUmVnaXN0
ZXJJRAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAg
ICBlbmQKKyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAj
e25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0
CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmJ5dGUKKyAgICAgICAg
ICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAi
JWRpIgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVlZGkiCisgICAg
ICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXJkaSIKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICB3aGVuICJjc3IwIgorICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tu
YW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAor
ICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAg
ICAgICAgIiVyMTB3IgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVy
MTBkIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgIiVyMTAiCisgICAg
ICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3NyMSIKKyAgICAgICAgICAgIHJhaXNlICJDYW5u
b3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxl
c3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgd2hlbiA6aGFsZgor
ICAgICAgICAgICAgICAgICIlcjE0dyIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAg
ICAgICAgICIlcjE0ZCIKKyAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICIl
cjE0IgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNzcjIiCisgICAgICAgICAgICBy
YWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3Ry
aW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdo
ZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJXIxNXciCisgICAgICAgICAgICB3aGVuIDppbnQK
KyAgICAgICAgICAgICAgICAiJXIxNWQiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAg
ICAgICAgICAiJXIxNSIKKyAgICAgICAgICAgIGVuZAogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0gZm9yIFg4NiBhdCAje2NvZGVPcmlnaW5TdHJp
bmd9IgogICAgICAgICBlbmQKQEAgLTE3Miw2ICsyNTEsMTMgQEAgY2xhc3MgRlBSZWdpc3RlcklE
CiBlbmQKIAogY2xhc3MgSW1tZWRpYXRlCisgICAgZGVmIHZhbGlkWDg2SW1tZWRpYXRlPworICAg
ICAgICBpZiBpc1g2NAorICAgICAgICAgICAgdmFsdWUgPj0gLTB4ODAwMDAwMDAgYW5kIHZhbHVl
IDw9IDB4N2ZmZmZmZmYKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdHJ1ZQorICAgICAgICBl
bmQKKyAgICBlbmQKICAgICBkZWYgeDg2T3BlcmFuZChraW5kKQogICAgICAgICAiJCN7dmFsdWV9
IgogICAgIGVuZApAQCAtMjEwLDcgKzI5Niw3IEBAIGNsYXNzIEJhc2VJbmRleAogICAgIGVuZAog
CiAgICAgZGVmIHg4NkNhbGxPcGVyYW5kKGtpbmQpCi0gICAgICAgICIqI3t4ODZvcGVyYW5kKGtp
bmQpfSIKKyAgICAgICAgIioje3g4Nk9wZXJhbmQoa2luZCl9IgogICAgIGVuZAogZW5kCiAKQEAg
LTI0NCw2ICszMzAsNDcgQEAgY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZQogICAgIGVuZAogZW5k
CiAKK2NsYXNzIFNlcXVlbmNlCisgICAgZGVmIGdldE1vZGlmaWVkTGlzdFg4Nl82NAorICAgICAg
ICBuZXdMaXN0ID0gW10KKyAgICAgICAgCisgICAgICAgIEBsaXN0LmVhY2ggeworICAgICAgICAg
ICAgfCBub2RlIHwKKyAgICAgICAgICAgIG5ld05vZGUgPSBub2RlCisgICAgICAgICAgICBpZiBu
b2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAgICAgICAgICAgdW5sZXNzIG5vZGUub3Bjb2Rl
ID09ICJtb3ZlIgorICAgICAgICAgICAgICAgICAgICB1c2VkU2NyYXRjaCA9IGZhbHNlCisgICAg
ICAgICAgICAgICAgICAgIG5ld09wZXJhbmRzID0gbm9kZS5vcGVyYW5kcy5tYXAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgfCBvcGVyYW5kIHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IG9wZXJhbmQuaW1tZWRpYXRlPyBhbmQgbm90IG9wZXJhbmQudmFsaWRYODZJbW1lZGlhdGU/Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdXNlZFNjcmF0Y2gKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmFpc2UgIkF0dGVtcHQgdG8gdXNlIHNjcmF0Y2ggcmVnaXN0ZXIg
dHdpY2UgYXQgI3tvcGVyYW5kLmNvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5z
dHJ1Y3Rpb24ubmV3KG9wZXJhbmQuY29kZU9yaWdpbiwgIm1vdmUiLCBbb3BlcmFuZCwgWDY0X1ND
UkFUQ0hfUkVHSVNURVJdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZWRTY3JhdGNo
ID0gdHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFg2NF9TQ1JBVENIX1JFR0lTVEVS
CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3BlcmFuZAorICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbmV3Tm9kZSA9IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBuZXdPcGVyYW5kcykKKyAgICAgICAgICAgICAgICBl
bmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1bmxlc3Mgbm9kZS5pc19hPyBM
YWJlbCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBMb2NhbExhYmVsIG9y
CisgICAgICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IFNraXAKKyAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQgI3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3Jp
Z2lufSIgCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAg
IGlmIG5ld05vZGUKKyAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5ld05vZGUKKyAgICAgICAg
ICAgIGVuZAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbmV3TGlzdAorICAg
IGVuZAorZW5kCisKIGNsYXNzIEluc3RydWN0aW9uCiAgICAgZGVmIHg4Nk9wZXJhbmRzKCpraW5k
cykKICAgICAgICAgcmFpc2UgdW5sZXNzIGtpbmRzLnNpemUgPT0gb3BlcmFuZHMuc2l6ZQpAQCAt
NDU4LDYgKzU4NSwxNiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICBlbmQKICAgICBlbmQK
ICAgICAKKyAgICBkZWYgaGFuZGxlWDg2TXVsKGtpbmQpCisgICAgICAgIGlmIG9wZXJhbmRzLnNp
emUgPT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNt
LnB1dHMgImltdWwje3g4NlN1ZmZpeChraW5kKX0gI3t4ODZPcGVyYW5kcyhraW5kLCBraW5kLCBr
aW5kKX0iCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUg
cGVlcGhvbGUgaW4gY2FzZSB0aGUgbGVmdCBvcGVyYW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncwor
ICAgICAgICAgICAgIyBhIHBvd2VyIG9mIHR3by4KKyAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJp
bXVsI3t4ODZTdWZmaXgoa2luZCl9Iiwga2luZCkKKyAgICAgICAgZW5kCisgICAgZW5kCisgICAg
CiAgICAgZGVmIGhhbmRsZU1vdmUKICAgICAgICAgaWYgSW1tZWRpYXRlLm5ldyhuaWwsIDApID09
IG9wZXJhbmRzWzBdIGFuZCBvcGVyYW5kc1sxXS5pc19hPyBSZWdpc3RlcklECiAgICAgICAgICAg
ICAkYXNtLnB1dHMgInhvciN7eDg2U3VmZml4KDpwdHIpfSAje29wZXJhbmRzWzFdLng4Nk9wZXJh
bmQoOnB0cil9LCAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0cil9IgpAQCAtNDkwLDEzICs2
MjcsOSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJsc2hpZnRpIgogICAgICAg
ICAgICAgaGFuZGxlWDg2U2hpZnQoInNhbGwiLCA6aW50KQogICAgICAgICB3aGVuICJtdWxpIgot
ICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzIGFuZCBvcGVyYW5kc1swXS5pc19hPyBJ
bW1lZGlhdGUKLSAgICAgICAgICAgICAgICAkYXNtLnB1dHMgImltdWxsICN7eDg2T3BlcmFuZHMo
OmludCwgOmludCwgOmludCl9IgotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICMg
RklYTUU6IGNvdWxkIGRvIHNvbWUgcGVlcGhvbGUgaW4gY2FzZSB0aGUgbGVmdCBvcGVyYW5kIGlz
IGltbWVkaWF0ZSBhbmQgaXQncwotICAgICAgICAgICAgICAgICMgYSBwb3dlciBvZiB0d28uCi0g
ICAgICAgICAgICAgICAgaGFuZGxlWDg2T3AoImltdWxsIiwgOmludCkKLSAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgaGFuZGxlWDg2TXVsKDppbnQpCisgICAgICAgIHdoZW4gIm11bHAiCisg
ICAgICAgICAgICBoYW5kbGVYODZNdWwoOnB0cikKICAgICAgICAgd2hlbiAibmVnaSIKICAgICAg
ICAgICAgICRhc20ucHV0cyAibmVnbCAje3g4Nk9wZXJhbmRzKDppbnQpfSIKICAgICAgICAgd2hl
biAibm90aSIKQEAgLTUxNiw3ICs2NDksNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3
aGVuICJ4b3JpIgogICAgICAgICAgICAgaGFuZGxlWDg2T3AoInhvcmwiLCA6aW50KQogICAgICAg
ICB3aGVuICJ4b3JwIgotICAgICAgICAgICAgaGFuZGxlWDg2T3AoInhvciN7eDg2U3VmZml4KDpw
dHIpfSIsIDppbnQpCisgICAgICAgICAgICBoYW5kbGVYODZPcCgieG9yI3t4ODZTdWZmaXgoOnB0
cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAibG9hZGkiLCAic3RvcmVpIgogICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3ZsICN7eDg2T3BlcmFuZHMoOmludCwgOmludCl9IgogICAgICAgICB3aGVu
ICJsb2FkcCIsICJzdG9yZXAiCkBAIC04MjUsOSArOTU4LDkgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24K
ICAgICAgICAgICAgICRhc20ucHV0cyAicHNybHEgJDMyLCAleG1tNyIKICAgICAgICAgICAgICRh
c20ucHV0cyAibW92c2QgJXhtbTcsICN7b3BlcmFuZHNbMl0ueDg2T3BlcmFuZCg6aW50KX0iCiAg
ICAgICAgIHdoZW4gImZwMmQiCi0gICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5k
c1swXS54ODZPcGVyYW5kcyg6cHRyKX0sICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6ZG91Ymxl
KX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5k
KDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpkb3VibGUpfSIKICAgICAgICAgd2hl
biAiZmQycCIKLSAgICAgICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJhbmRzWzBdLng4Nk9w
ZXJhbmRzKDpkb3VibGUpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIKKyAgICAg
ICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmQoOmRvdWJsZSl9
LCAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0cil9IgogICAgICAgICB3aGVuICJibyIKICAg
ICAgICAgICAgICRhc20ucHV0cyAiam8gI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAg
IHdoZW4gImJzIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130527</attachid>
            <date>2012-03-06 20:19:56 -0800</date>
            <delta_ts>2012-03-06 20:27:35 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_6.diff</filename>
            <type>text/plain</type>
            <size>89751</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTAyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTItMDMtMDYgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2sg
dGltZXIgc2hvdWxkIHZhcnkgd2l0aCB0aGUgbGVuZ3RoIG9mIHRoZSBwcmV2aW91cyBHQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBA
IC03MCwyOCArNzAsNiBAQAogIyBCZWxvdyB3ZSBoYXZlIGEgYnVuY2ggb2YgY29uc3RhbnQgZGVj
bGFyYXRpb25zLiBFYWNoIGNvbnN0YW50IG11c3QgaGF2ZQogIyBhIGNvcnJlc3BvbmRpbmcgQVNT
RVJUKCkgaW4gTExJbnREYXRhLmNwcC4KIAotIyBUaGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRj
aCBpbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaC4KLWNvbnN0IENhbGxGcmFtZUhlYWRlclNpemUg
PSA0OAotY29uc3QgQXJndW1lbnRDb3VudCA9IC00OAotY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAK
LWNvbnN0IENhbGxlZSA9IC0zMgotY29uc3QgU2NvcGVDaGFpbiA9IC0yNAotY29uc3QgUmV0dXJu
UEMgPSAtMTYKLWNvbnN0IENvZGVCbG9jayA9IC04Ci0KLWNvbnN0IFRoaXNBcmd1bWVudE9mZnNl
dCA9IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0gOAotCi0jIERlY2xhcmUgc29tZSBhbGlhc2VzIGZv
ciB0aGUgcmVnaXN0ZXJzIHdlIHdpbGwgdXNlLgotY29uc3QgUEMgPSB0NAotCi0jIE9mZnNldHMg
bmVlZGVkIGZvciByZWFzb25pbmcgYWJvdXQgdmFsdWUgcmVwcmVzZW50YXRpb24uCi1pZiBCSUdf
RU5ESUFOCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gMAotICAgIGNvbnN0IFBheWxvYWRPZmZzZXQg
PSA0Ci1lbHNlCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gNAotICAgIGNvbnN0IFBheWxvYWRPZmZz
ZXQgPSAwCi1lbmQKIAogIyBWYWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMuCiBjb25zdCBJ
bnQzMlRhZyA9IC0xCkBAIC0xMDMsNzEgKzgxLDggQEAgY29uc3QgRW1wdHlWYWx1ZVRhZyA9IC02
CiBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFnID0gRGVsZXRlZFZh
bHVlVGFnCiAKLSMgVHlwZSBjb25zdGFudHMuCi1jb25zdCBTdHJpbmdUeXBlID0gNQotY29uc3Qg
T2JqZWN0VHlwZSA9IDEzCi0KLSMgVHlwZSBmbGFncyBjb25zdGFudHMuCi1jb25zdCBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkID0gMQotY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMgotY29u
c3QgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDgKLQotIyBIZWFwIGFsbG9jYXRpb24g
Y29uc3RhbnRzLgotY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMwotCi0jIEJ5
dGVjb2RlIG9wZXJhbmQgY29uc3RhbnRzLgotY29uc3QgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5k
ZXggPSAweDQwMDAwMDAwCi0KLSMgQ29kZSB0eXBlIGNvbnN0YW50cy4KLWNvbnN0IEdsb2JhbENv
ZGUgPSAwCi1jb25zdCBFdmFsQ29kZSA9IDEKLWNvbnN0IEZ1bmN0aW9uQ29kZSA9IDIKLQotIyBU
aGUgaW50ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1lbnQgY291bnQu
Ci1jb25zdCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNldAotCi0jIFRo
aXMgbXVzdCBtYXRjaCB3dGYvVmVjdG9yLmguCi1jb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAot
Y29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAotCi0jIFN0cmluZyBmbGFncy4KLWNvbnN0IEhh
c2hGbGFnczhCaXRCdWZmZXIgPSA2NAogCiAjIFV0aWxpdGllcwotbWFjcm8gY3Jhc2goKQotICAg
IHN0b3JlaSAwLCAweGJiYWRiZWVmW10KLSAgICBtb3ZlIDAsIHQwCi0gICAgY2FsbCB0MAotZW5k
Ci0KLW1hY3JvIGFzc2VydChhc3NlcnRpb24pCi0gICAgaWYgQVNTRVJUX0VOQUJMRUQKLSAgICAg
ICAgYXNzZXJ0aW9uKC5vaykKLSAgICAgICAgY3Jhc2goKQotICAgIC5vazoKLSAgICBlbmQKLWVu
ZAotCi1tYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdp
c3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVy
Ci0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCi0gICAgZWxz
ZQotICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KLW1hY3JvIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQotICAgIGlmIEFSTXY3Ci0gICAgICAgIG1v
dmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHB1c2ggc291cmNl
UmVnaXN0ZXIKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi1lbmQKLQogbWFjcm8g
ZGlzcGF0Y2goYWR2YW5jZSkKICAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQwogICAgIGptcCBbUENd
CkBAIC0yMjAsOCArMTM1LDggQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBh
cmczLAogICAgIGNhbGwgZnVuY3Rpb24KIGVuZAogCi1tYWNybyBjYWxsU2xvd1BhdGgoc2xvd19w
YXRoKQotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpCittYWNybyBjYWxsU2xvd1BhdGgo
c2xvd1BhdGgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQogICAgIG1vdmUgdDAsIFBD
CiAgICAgbW92ZSB0MSwgY2ZyCiBlbmQKQEAgLTI0NSw0MCArMTYwLDE1IEBAIG1hY3JvIHRyYWNl
VmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQogICAgIG1vdmUgdDEsIGNmcgogZW5kCiAKLW1hY3Jv
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAgICAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3RyYWNlKQotICAgIGVuZAotZW5kCi0KLSMgQ2FsbCBhIHNsb3dfcGF0
aCBmb3IgY2FsbCBvcGNvZGVzLgotbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93
X3BhdGgsIGFjdGlvbikKKyMgQ2FsbCBhIHNsb3dQYXRoIGZvciBjYWxsIG9wY29kZXMuCittYWNy
byBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dQYXRoLCBhY3Rpb24pCiAgICAgYWRkcCBh
ZHZhbmNlICogNCwgUEMsIHQwCiAgICAgc3RvcmVwIHQwLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKQorICAgIGNDYWxsMihzbG93
UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQxLCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIAot
bWFjcm8gc2xvd1BhdGhGb3JDYWxsKGFkdmFuY2UsIHNsb3dfcGF0aCkKLSAgICBjYWxsQ2FsbFNs
b3dQYXRoKAotICAgICAgICBhZHZhbmNlLAotICAgICAgICBzbG93X3BhdGgsCi0gICAgICAgIG1h
Y3JvIChjYWxsZWUpCi0gICAgICAgICAgICBjYWxsIGNhbGxlZQotICAgICAgICAgICAgZGlzcGF0
Y2hBZnRlckNhbGwoKQotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gY2hlY2tTd2l0Y2hUb0pJ
VChpbmNyZW1lbnQsIGFjdGlvbikKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDAKLSAgICAgICAgYmFkZGlzIGluY3JlbWVudCwgQ29kZUJsb2NrOjpt
X2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDBdLCAu
Y29udGludWUKLSAgICAgICAgYWN0aW9uKCkKLSAgICAuY29udGludWU6Ci0gICAgZW5kCi1lbmQK
LQogbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgIGNoZWNrU3dpdGNoVG9KSVQo
CiAgICAgICAgIDEsCkBAIC0yOTMsMTggKzE4Myw2IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRG
b3JMb29wKCkKICAgICAgICAgZW5kKQogZW5kCiAKLW1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JF
cGlsb2d1ZSgpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVCgKLSAgICAgICAgMTAsCi0gICAgICAgIG1h
Y3JvICgpCi0gICAgICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlcGxhY2UpCi0gICAgICAg
IGVuZCkKLWVuZAotCi1tYWNybyBhc3NlcnROb3RDb25zdGFudChpbmRleCkKLSAgICBhc3NlcnQo
bWFjcm8gKG9rKSBiaWx0IGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgb2sgZW5k
KQotZW5kCi0KICMgSW5kZXgsIHRhZywgYW5kIHBheWxvYWQgbXVzdCBiZSBkaWZmZXJlbnQgcmVn
aXN0ZXJzLiBJbmRleCBpcyBub3QKICMgY2hhbmdlZC4KIG1hY3JvIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoaW5kZXgsIHRhZywgcGF5bG9hZCkKQEAgLTM4NiwxMDkgKzI2NCw4IEBAIG1hY3JvIHZh
bHVlUHJvZmlsZSh0YWcsIHBheWxvYWQsIHByb2ZpbGUKIGVuZAogCiAKLSMgSW5kaWNhdGUgdGhl
IGJlZ2lubmluZyBvZiBMTEludC4KLV9sbGludF9iZWdpbjoKLSAgICBjcmFzaCgpCi0KLQogIyBF
bnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlcgogCi1tYWNybyBmdW5jdGlvbkZvckNhbGxD
b2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRh
cmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJl
Z2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1f
Y29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQKLQot
bWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIp
Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5j
dGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBs
b2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3RhcmdldFJl
Z2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBub3RGdW5jdGlvbkNvZGVCbG9j
a0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFyZ2V0
UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdp
c3RlcikKLSAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCi1lbmQKLQot
bWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0gICAgIyBO
b3RoaW5nIHRvIGRvIQotZW5kCi0KLSMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBl
eGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgotIyBpbiB0
MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCi1tYWNybyBwcm9sb2d1ZShj
b2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1Bh
dGgpCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQotICAgIAotICAgICMg
U2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgotICAgIHN0
b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQotICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCi0gICAgICAg
IGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQotICAgIGVuZAotICAgIGNvZGVCbG9ja0dldHRl
cih0MSkKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjpt
X2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFdLCAu
Y29udGludWUKLSAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQotICAgICAgICBt
b3ZlIHQxLCBjZnIKLSAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKLSAgICAgICAgbG9hZHAgUmV0
dXJuUENbY2ZyXSwgdDIKLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
dDIpCi0gICAgICAgIGptcCB0MAotICAgIC5yZWNvdmVyOgotICAgICAgICBjb2RlQmxvY2tHZXR0
ZXIodDEpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotICAgIGNvZGVCbG9ja1NldHRlcih0MSkK
LSAgICAKLSAgICAjIFNldCB1cCB0aGUgUEMuCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3Ry
dWN0aW9uc1t0MV0sIFBDCi1lbmQKLQotIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQx
LCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLSMgTXVzdCBjYWxsIGRp
c3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KLW1hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRp
b24ocHJvZmlsZUFyZ1NraXApCi0gICAgaWYgVkFMVUVfUFJPRklMRVIKLSAgICAgICAgIyBQcm9m
aWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0
byBkbyB0aGlzLiBUaGlzCi0gICAgICAgICMgY29kZSBpcyBwcmV0dHkgaG9ycmVuZG91cyBiZWNh
dXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5nIGJldHdlZW4KLSAgICAgICAgIyBhcmd1
bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBzaW1wbGUgbG9v
cC1kb3duLXRvLXplcm8KLSAgICAgICAgIyBsb29wLCBhbmQgdGhlIGRlc2lyZSB0byB1c2Ugb25s
eSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2VydmUgdGhlIFBDIGFuZAotICAgICAgICAj
IHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJl
d3JpdHRlbiBpbiBhIG1vcmUKLSAgICAgICAgIyBvcHRpbWFsIHdheSBmb3IgYXJjaGl0ZWN0dXJl
cyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJsZQotICAgICAgICAj
IGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnByZXRlci4KLSAgICAgICAgbG9hZGkgQ29k
ZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAotICAgICAgICBhZGRpIC1wcm9maWxlQXJn
U2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0aGUgcGVlcGhvbGUK
LSAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVxIHQwLCAwLCBvayBlbmQpCi0gICAgICAg
IGJ0aXogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCi0gICAgICAgIGxvYWRwIENvZGVCbG9jazo6
bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDFdLCB0MwotICAg
ICAgICBtdWxpIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFhaGhoaCEgTmVlZCBz
dHJlbmd0aCByZWR1Y3Rpb24hCi0gICAgICAgIG5lZ2kgdDAKLSAgICAgICAgbHNoaWZ0aSAzLCB0
MAotICAgICAgICBhZGRwIHQyLCB0MwotICAgIC5hcmd1bWVudFByb2ZpbGVMb29wOgotICAgICAg
ICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1Nr
aXAgKiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQz
Ci0gICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxl
ICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBUYWdPZmZzZXRbdDNdCi0gICAgICAgIGxvYWRp
IFRoaXNBcmd1bWVudE9mZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAg
KiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6
ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgUGF5bG9hZE9mZnNl
dFt0M10KLSAgICAgICAgYmFkZGlueiA4LCB0MCwgLmFyZ3VtZW50UHJvZmlsZUxvb3AKLSAgICAu
YXJndW1lbnRQcm9maWxlRG9uZToKLSAgICBlbmQKLSAgICAgICAgCi0gICAgIyBDaGVjayBzdGFj
ayBoZWlnaHQuCi0gICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0s
IHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDFdLCB0MgotICAgIGxvYWRw
IEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0MiAgICMgRklYTUU6IENhbiBnZXQgdG8g
dGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFja0ZyYW1lCi0gICAgbHNoaWZ0aSAzLCB0
MAotICAgIGFkZHAgdDAsIGNmciwgdDAKLSAgICBicGFlcSBJbnRlcnByZXRlcjo6bV9yZWdpc3Rl
ckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwgdDAsIC5zdGFja0hlaWdodE9LCi0KLSAg
ICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBzbG93X3BhdGgu
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdpc3Rlcl9maWxlX2NoZWNrKQotLnN0YWNrSGVp
Z2h0T0s6Ci1lbmQKLQogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBp
cyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVj
ayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1l
bnRDb3VudFtjZnJdLCB0MApAQCAtNTA2LDM4ICsyODMsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5
Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLV9sbGludF9w
cm9ncmFtX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVy
LCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xsaW50X2V2YWxfcHJvbG9ndWU6
Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29k
ZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCi0g
ICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWU6Ci0g
ICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVC
bG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQotLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luOgot
ICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMCkKLSAgICBkaXNwYXRjaCgwKQotICAgIAotCi1f
bGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZToKLSAgICBwcm9sb2d1ZShmdW5j
dGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIs
IF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCwgX2xsaW50X3RyYWNlX3By
b2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCi0uZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdp
bjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDEpCi0gICAgZGlzcGF0Y2goMCkKLSAgICAK
LQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1
bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9s
bGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNl
X2FyaXR5Q2hlY2tfZm9yX2NhbGwpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZv
ckNhbGxCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCi0KLQotX2xsaW50
X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2s6Ci0gICAgcHJvbG9ndWUoZnVuY3Rp
b25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBf
bGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywgX2xsaW50
X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NvbnN0cnVjdCkKLSAgICBmdW5jdGlvbkFyaXR5Q2hlY2so
LmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0X2Fy
aXR5Q2hlY2spCiAKICMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCiAKQEAgLTU4MywzOSAr
MzI4LDYgQEAgX2xsaW50X29wX2NyZWF0ZV9hcmd1bWVudHM6CiAgICAgZGlzcGF0Y2goMikKIAog
Ci1tYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5mb09m
ZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2UpCi0g
ICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKLSAgICAgICAgam1wIHNsb3dDYXNlCi0gICAgZWxz
ZQotICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0KLSAgICAgICAgICAgIEpTR2xv
YmFsRGF0YTo6aGVhcCArCi0gICAgICAgICAgICBIZWFwOjptX29iamVjdFNwYWNlICsKLSAgICAg
ICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKLSAgICAgICAgICAgIE1hcmtlZFNw
YWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKwotICAgICAgICAgICAgc2l6ZUNsYXNz
SW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCi0gICAgICAgIAotICAgICAgICAjIEZJWE1F
OiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9hZCBmcm9tIHRoZSBzdGFjay4K
LSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gxCi0gICAgICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRjaDEKLSAgICAgICAgCi0gICAg
ICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LiAgICAKLSAgICAgICAgbG9h
ZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxs
W3NjcmF0Y2gxXSwgcmVzdWx0Ci0gICAgICAgIGJ0cHogcmVzdWx0LCBzbG93Q2FzZQotICAgICAg
ICAKLSAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuCi0gICAg
ICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIG9m
ZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3Jh
dGNoMV0KLSAgICAKLSAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmplY3QuCi0gICAgICAgIGxv
YWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCi0gICAgICAgIHN0b3JlcCBz
Y3JhdGNoMiwgW3Jlc3VsdF0KLSAgICAgICAgc3RvcmVwIHN0cnVjdHVyZSwgSlNDZWxsOjptX3N0
cnVjdHVyZVtyZXN1bHRdCi0gICAgICAgIHN0b3JlcCAwLCBKU09iamVjdDo6bV9pbmhlcml0b3JJ
RFtyZXN1bHRdCi0gICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0Y2gx
Ci0gICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Jl
c3VsdF0KLSAgICBlbmQKLWVuZAotCiBfbGxpbnRfb3BfY3JlYXRlX3RoaXM6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGxvYWRpIDhbUENdLCB0MApAQCAtNjc2LDI0ICszODgsNiBAQCBfbGxp
bnRfb3BfbmV3X29iamVjdDoKICAgICBkaXNwYXRjaCgyKQogCiAKLV9sbGludF9vcF9uZXdfYXJy
YXk6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25ld19hcnJheSkKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9uZXdfYXJyYXlf
YnVmZmVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29w
X25ld19yZWdleHA6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX25ld19yZWdleHApCi0gICAgZGlzcGF0Y2goMykKLQotCiBfbGxpbnRfb3Bf
bW92OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDEKQEAgLTgwMiw3
ICs0OTYsNyBAQCBfbGxpbnRfb3BfbmVxX251bGw6CiAgICAgZGlzcGF0Y2goMykKIAogCi1tYWNy
byBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gc3RyaWN0RXEo
ZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBs
b2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MywgdDEpCkBA
IC04MjIsNyArNTE2LDcgQEAgbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3df
cAogICAgIGRpc3BhdGNoKDQpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgp
CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKDQpCiBlbmQKIApAQCAt
ODM2LDMwICs1MzAsNiBAQCBfbGxpbnRfb3BfbnN0cmljdGVxOgogICAgIHN0cmljdEVxKG1hY3Jv
IChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwgX2xs
aW50X3Nsb3dfcGF0aF9uc3RyaWN0ZXEpCiAKIAotX2xsaW50X29wX2xlc3M6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3MpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbGVzc2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzZXEpCi0gICAgZGlzcGF0Y2go
NCkKLQotCi1fbGxpbnRfb3BfZ3JlYXRlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcikKLSAgICBkaXNwYXRjaCg0KQotCi0K
LV9sbGludF9vcF9ncmVhdGVyZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXJlcSkKLSAgICBkaXNwYXRjaCg0KQotCi0KIF9s
bGludF9vcF9wcmVfaW5jOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA0W1BDXSwg
dDAKQEAgLTk2OCw3ICs2MzgsNyBAQCBfbGxpbnRfb3BfbmVnYXRlOgogICAgIGRpc3BhdGNoKDMp
CiAKIAotbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUs
IGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShp
bnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAg
bG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwMDYsMTggKzY3NiwxOCBAQCBtYWNybyBiaW5hcnlP
cEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgZGlzcGF0Y2goNSkKIAogLnNsb3c6Ci0g
ICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAg
ICAgZGlzcGF0Y2goNSkKIGVuZAogCi1tYWNybyBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBk
b3VibGVPcGVyYXRpb24sIHNsb3dfcGF0aCkKK21hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRp
b24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgK
ICAgICAgICAgbWFjcm8gKGludDMyVGFnLCBsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCiAgICAg
ICAgICAgICBpbnRlZ2VyT3BlcmF0aW9uKGxlZnQsIHJpZ2h0LCBzbG93KQogICAgICAgICAgICAg
c3RvcmVpIGludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCBpbmRleCwgOF0KICAgICAgICAgICAgIHN0
b3JlaSByaWdodCwgUGF5bG9hZE9mZnNldFtjZnIsIGluZGV4LCA4XQogICAgICAgICBlbmQsCi0g
ICAgICAgIGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorICAgICAgICBkb3VibGVPcGVyYXRp
b24sIHNsb3dQYXRoKQogZW5kCiAKIF9sbGludF9vcF9hZGQ6CkBAIC0xMDczLDEzICs3NDMsNyBA
QCBfbGxpbnRfb3BfZGl2OgogICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikKIAogCi1fbGxp
bnRfb3BfbW9kOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9tb2QpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1tYWNybyBiaXRPcChvcGVyYXRp
b24sIHNsb3dfcGF0aCwgYWR2YW5jZSkKK21hY3JvIGJpdE9wKG9wZXJhdGlvbiwgc2xvd1BhdGgs
IGFkdmFuY2UpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwOTMsNyArNzU3LDcgQEAg
bWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93X3BhdGgsIGFkdmFuYwogICAgIGRpc3BhdGNoKGFk
dmFuY2UpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKGFkdmFuY2UpCiBlbmQKIApAQCAtMTE5OCw2
NiArODYyLDYgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgZGlzcGF0Y2goNSkKIAogCi1f
bGxpbnRfb3BfdHlwZW9mOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF90eXBlb2YpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3Bf
aXNfdW5kZWZpbmVkOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9pc191bmRlZmluZWQpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRf
b3BfaXNfYm9vbGVhbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfaXNfYm9vbGVhbikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9v
cF9pc19udW1iZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX2lzX251bWJlcikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9p
c19zdHJpbmc6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2lzX3N0cmluZykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19v
YmplY3Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2lzX29iamVjdCkKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19mdW5j
dGlvbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaXNfZnVuY3Rpb24pCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaW46Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lu
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3Jlc29sdmU6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmUpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcmVzb2x2ZV9za2lwOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3NraXApCi0g
ICAgZGlzcGF0Y2goNSkKLQotCiBtYWNybyByZXNvbHZlR2xvYmFsKHNpemUsIHNsb3cpCiAgICAg
IyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93czoKICAgICAjIDRbUENdICAgRGVzdGluYXRpb24gZm9y
IHRoZSBsb2FkLgpAQCAtMTQwOCwzMCArMTAxMiw2IEBAIF9sbGludF9vcF9wdXRfZ2xvYmFsX3Zh
cjoKICAgICBkaXNwYXRjaCgzKQogCiAKLV9sbGludF9vcF9yZXNvbHZlX2Jhc2U6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVf
YmFzZSkKLSAgICBkaXNwYXRjaCg1KQotCi0KLV9sbGludF9vcF9lbnN1cmVfcHJvcGVydHlfZXhp
c3RzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50
X29wX3Jlc29sdmVfd2l0aF9iYXNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfYmFzZSkKLSAgICBkaXNwYXRjaCg1
KQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3dpdGhfdGhpczoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRoX3RoaXMpCi0g
ICAgZGlzcGF0Y2goNSkKLQotCiBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIHRyYWNlRXhlY3V0
aW9uKCkKICAgICAjIFdlIG9ubHkgZG8gbW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcgZm9y
IG5vdywgYW5kIHdlIGRvIG5vdCBtb2RpZnkgdGhlCkBAIC0xNTM5LDEyICsxMTE5LDYgQEAgX2xs
aW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKICAgICAgICAgZW5kKQogCiAKLV9s
bGludF9vcF9kZWxfYnlfaWQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKLSAgICBkaXNwYXRjaCg0KQotCi0KIF9sbGlu
dF9vcF9nZXRfYnlfdmFsOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDEKQEAgLTE2NTYsMjQgKzEyMzAsNiBAQCBfbGxpbnRfb3BfcHV0X2J5X3ZhbDoK
ICAgICBkaXNwYXRjaCg0KQogCiAKLV9sbGludF9vcF9kZWxfYnlfdmFsOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxfYnlfdmFsKQot
ICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9ieV9pbmRleDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X2luZGV4
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9nZXR0ZXJfc2V0dGVyOgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRf
Z2V0dGVyX3NldHRlcikKLSAgICBkaXNwYXRjaCg1KQotCi0KIF9sbGludF9vcF9sb29wOgogICAg
IG5vcAogX2xsaW50X29wX2ptcDoKQEAgLTE5NDAsMTIgKzE0OTYsNiBAQCBfbGxpbnRfb3Bfc3dp
dGNoX2NoYXI6CiAgICAgZGlzcGF0Y2hCcmFuY2goOFtQQ10pCiAKIAotX2xsaW50X29wX3N3aXRj
aF9zdHJpbmc6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX3N3aXRjaF9zdHJpbmcpCi0gICAgZGlzcGF0Y2goMCkKLQotCiBfbGxpbnRfb3Bf
bmV3X2Z1bmM6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGJ0aXogMTJbUENdLCAub3BOZXdG
dW5jVW5jaGVja2VkCkBAIC0xOTU3LDEyICsxNTA3LDYgQEAgX2xsaW50X29wX25ld19mdW5jOgog
ICAgIGRpc3BhdGNoKDQpCiAKIAotX2xsaW50X29wX25ld19mdW5jX2V4cDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmNfZXhw
KQotICAgIGRpc3BhdGNoKDMpCi0KLQogbWFjcm8gZG9DYWxsKHNsb3dfcGF0aCkKICAgICBsb2Fk
aSA0W1BDXSwgdDAKICAgICBsb2FkaSAxNltQQ10sIHQxCkBAIC0yMTExLDE4ICsxNjU1LDYgQEAg
X2xsaW50X29wX3JldF9vYmplY3Rfb3JfdGhpczoKICAgICBkb1JldHVybigpCiAKIAotX2xsaW50
X29wX21ldGhvZF9jaGVjazoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgIyBXZSBpZ25vcmUg
bWV0aG9kIGNoZWNrcyBhbmQgdXNlIG5vcm1hbCBnZXRfYnlfaWQgb3B0aW1pemF0aW9ucy4KLSAg
ICBkaXNwYXRjaCgxKQotCi0KLV9sbGludF9vcF9zdHJjYXQ6Ci0gICAgdHJhY2VFeGVjdXRpb24o
KQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N0cmNhdCkKLSAgICBkaXNwYXRj
aCg0KQotCi0KIF9sbGludF9vcF90b19wcmltaXRpdmU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQog
ICAgIGxvYWRpIDhbUENdLCB0MgpAQCAtMjE0MSwxMiArMTY3Myw2IEBAIF9sbGludF9vcF90b19w
cmltaXRpdmU6CiAgICAgZGlzcGF0Y2goMykKIAogCi1fbGxpbnRfb3BfZ2V0X3BuYW1lczoKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0
X3BuYW1lcykKLSAgICBkaXNwYXRjaCgwKSAjIFRoZSBzbG93X3BhdGggZWl0aGVyIGFkdmFuY2Vz
IHRoZSBQQyBvciBqdW1wcyB1cyB0byBzb21ld2hlcmUgZWxzZS4KLQotCiBfbGxpbnRfb3BfbmV4
dF9wbmFtZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgMTJbUENdLCB0MQpAQCAt
MjE4NywyNCArMTcxMyw2IEBAIF9sbGludF9vcF9uZXh0X3BuYW1lOgogICAgIGRpc3BhdGNoKDAp
CiAKIAotX2xsaW50X29wX3B1c2hfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfc2NvcGUpCi0gICAgZGlzcGF0Y2goMikK
LQotCi1fbGxpbnRfb3BfcG9wX3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wb3Bfc2NvcGUpCi0gICAgZGlzcGF0Y2goMSkKLQot
Ci1fbGxpbnRfb3BfcHVzaF9uZXdfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfbmV3X3Njb3BlKQotICAgIGRpc3BhdGNo
KDQpCi0KLQogX2xsaW50X29wX2NhdGNoOgogICAgICMgVGhpcyBpcyB3aGVyZSB3ZSBlbmQgdXAg
ZnJvbSB0aGUgSklUJ3MgdGhyb3cgdHJhbXBvbGluZSAoYmVjYXVzZSB0aGUKICAgICAjIG1hY2hp
bmUgY29kZSByZXR1cm4gYWRkcmVzcyB3aWxsIGJlIHNldCB0byBfbGxpbnRfb3BfY2F0Y2gpLCBh
bmQgZnJvbQpAQCAtMjIyNiwxOCArMTczNCw2IEBAIF9sbGludF9vcF9jYXRjaDoKICAgICBkaXNw
YXRjaCgyKQogCiAKLV9sbGludF9vcF90aHJvdzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3cpCi0gICAgZGlzcGF0Y2goMikKLQot
Ci1fbGxpbnRfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9yOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvd19yZWZlcmVuY2VfZXJyb3Ip
Ci0gICAgZGlzcGF0Y2goMikKLQotCiBfbGxpbnRfb3BfanNyOgogICAgIHRyYWNlRXhlY3V0aW9u
KCkKICAgICBsb2FkaSA0W1BDXSwgdDAKQEAgLTIyNTMsMTIgKzE3NDksNiBAQCBfbGxpbnRfb3Bf
c3JldDoKICAgICBkaXNwYXRjaCgwKQogCiAKLV9sbGludF9vcF9kZWJ1ZzoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVidWcpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCiBfbGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZVtzcF0sIHQwCkBAIC0yMzAxLDcgKzE3OTEsNiBAQCBfbGxpbnRfdGhyb3dfZHVyaW5nX2Nh
bGxfdHJhbXBvbGluZToKICAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93
W3QxXSwgdDAKICAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0
MV0KIAotCiBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5j
dGlvbikKICAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KICAgICBsb2FkcCBDYWxsZXJGcmFt
ZVtjZnJdLCB0MApAQCAtMjM0OSw3MSArMTgzOCwzIEBAIF9sbGludF9uYXRpdmVfY29uc3RydWN0
X3RyYW1wb2xpbmU6CiAgICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0YWJsZTo6
bV9jb25zdHJ1Y3RvcikKIAogCi0jIExhc3RseSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsg
ZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KLSMgVGhlc2Ugb3Bjb2Rl
cyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBh
c3NlcnQKLSMgYXMgbXVjaC4KLQotbWFjcm8gbm90U3VwcG9ydGVkKCkKLSAgICBpZiBBU1NFUlRf
RU5BQkxFRAotICAgICAgICBjcmFzaCgpCi0gICAgZWxzZQotICAgICAgICAjIFdlIHNob3VsZCB1
c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRv
Ci0gICAgICAgICMgZW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlv
biBsYWJlbHMuIElmIG11bHRpcGxlCi0gICAgICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4
aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25lIHRoYXQgaXMgbW9zdAotICAgICAgICAjIGxpa2Vs
eSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhl
IGJyZWFrCi0gICAgICAgICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUg
aW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGludDMKLSAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2gg
aXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRlcy4pCi0gICAgICAg
IGJyZWFrCi0gICAgZW5kCi1lbmQKLQotX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6Ci0gICAg
bm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgotICAgIG5vdFN1cHBv
cnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgp
Ci0KLV9sbGludF9vcF9nZXRfYnlfaWRfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9n
ZXRfc3RyaW5nX2xlbmd0aDoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5
X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9y
ZXBsYWNlOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNp
dGlvbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi0KLSMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTElu
dC4KLV9sbGludF9lbmQ6Ci0gICAgY3Jhc2goKQotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24g
MTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDk4OSBAQAogIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIAotIyBOb3Qgc3VwcG9ydGVkIHlldCwgc28gZ2l2ZSB1
cC4KLWVycm9yCisjIFNvbWUgdmFsdWUgcmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgorY29uc3Qg
VGFnQml0VHlwZU90aGVyID0gMHgyCitjb25zdCBUYWdCaXRCb29sICAgICAgPSAweDQKK2NvbnN0
IFRhZ0JpdFVuZGVmaW5lZCA9IDB4OAorY29uc3QgVmFsdWVFbXB0eSAgICAgID0gMHgwCitjb25z
dCBWYWx1ZUZhbHNlICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sCitjb25zdCBW
YWx1ZVRydWUgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sIHwgMQorY29uc3Qg
VmFsdWVVbmRlZmluZWQgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkCitjb25z
dCBWYWx1ZU51bGwgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIKKworIyBVdGlsaXRpZXMuCittYWNy
byBkaXNwYXRjaChhZHZhbmNlKQorICAgIGFkZGkgYWR2YW5jZSwgUEMKKyAgICBqbXAgW1BCLCBQ
QywgOF0KK2VuZAorCittYWNybyBkaXNwYXRjaEJyYW5jaChwY09mZnNldCkKKyAgICBsb2FkaSBw
Y09mZnNldCwgdDAKKyAgICBkaXNwYXRjaCh0MCkKK2VuZAorCittYWNybyBkaXNwYXRjaEFmdGVy
Q2FsbCgpCisgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQworICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVj
dGlvbnNbUEJdLCBQQgorICAgIGptcCBbUEIsIFBDLCA4XQorZW5kCisKK21hY3JvIGNDYWxsMihm
dW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICBtb3ZlIGFyZzEsIHQwCisgICAgbW92ZSBhcmcyLCB0
MQorICAgIGNhbGwgZnVuY3Rpb24KK2VuZAorCisjIFRoaXMgYmFyZWx5IHdvcmtzLiBhcmczIGFu
ZCBhcmc0IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgorbWFjcm8gY0NhbGw0KGZ1bmN0
aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQorICAgIG1vdmUgYXJnMSwgdDAKKyAgICBtb3Zl
IGFyZzIsIHQxCisgICAgbW92ZSBhcmczLCB0MgorICAgIG1vdmUgYXJnNCwgdDMKKyAgICBjYWxs
IGZ1bmN0aW9uCitlbmQKKworbWFjcm8gcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGxlYXAg
W1BCLCBQQywgOF0sIFBDCitlbmQKKworbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisg
ICAgbW92ZSB0MCwgUEMKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBzdWJwIFBCLCBQQworICAgIHVy
c2hpZnRpIDMsIFBDCitlbmQKKworbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIHBy
ZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCisgICAg
cmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKworbWFjcm8gdHJhY2VPcGVyYW5kKGZyb21X
aGVyZSwgb3BlcmFuZCkKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGw0KF9s
bGludF90cmFjZV9vcGVyYW5kLCBjZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcmVz
dG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKworbWFjcm8gdHJhY2VWYWx1ZShmcm9tV2hlcmUs
IG9wZXJhbmQpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsNChfbGxpbnRf
dHJhY2VfdmFsdWUsIGNmciwgUEMsIGZyb21XaGVyZSwgb3BlcmFuZCkKKyAgICByZXN0b3JlU3Rh
dGVBZnRlckNDYWxsKCkKK2VuZAorCisjIENhbGwgYSBzbG93IHBhdGggZm9yIGNhbGwgY2FsbCBv
cGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9u
KQorICAgIGFkZGkgYWR2YW5jZSwgUEMsIHQwCisgICAgc3RvcmVpIHQwLCBBcmd1bWVudENvdW50
ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGwy
KHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIG1vdmUgdDEsIGNmcgorICAgIGFjdGlvbih0MCkKK2Vu
ZAorCittYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCisgICAgY2hlY2tTd2l0Y2hUb0pJ
VCgKKyAgICAgICAgMSwKKyAgICAgICAgbWFjcm8oKQorICAgICAgICAgICAgc3RvcmVpIFBDLCBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICAgICAgICAgIHByZXBhcmVTdGF0ZUZv
ckNDYWxsKCkKKyAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCisg
ICAgICAgICAgICBtb3ZlIHQxLCBjZnIKKyAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisg
ICAgICAgICAgICBqbXAgdDAKKyAgICAgICAgLnJlY292ZXI6CisgICAgICAgICAgICBsb2FkcCBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCisgICAgICAgIGVuZCkKK2VuZAorCisj
IEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3RlcnMuIEluZGV4IG1heSBi
ZSBjbG9iYmVyZWQuCittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB2YWx1ZSkK
KyAgICBicGd0ZXEgaW5kZXgsIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCAuY29uc3RhbnQK
KyAgICBsb2FkcCBbY2ZyLCBpbmRleCwgOF0sIHZhbHVlCisgICAgam1wIC5kb25lCisuY29uc3Rh
bnQ6CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHZhbHVlCisgICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2NvbnN0YW50UmVnaXN0ZXJzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3ZhbHVlXSwgdmFsdWUK
KyAgICBzdWJwIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCBpbmRleAorICAgIGxvYWRwIFt2
YWx1ZSwgaW5kZXgsIDhdLCB2YWx1ZQorLmRvbmU6CitlbmQKKworbWFjcm8gbG9hZENvbnN0YW50
T3JWYXJpYWJsZUludDMyKGluZGV4LCB2YWx1ZSwgc2xvdykKKyAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBicGIgdmFsdWUsIHRhZ1R5cGVOdW1iZXIsIHNsb3cK
K2VuZAorCittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChpbmRleCwgdmFsdWUsIHNs
b3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUpCisgICAgYnRwbnog
dmFsdWUsIHRhZ01hc2ssIHNsb3cKK2VuZAorCittYWNybyB3cml0ZUJhcnJpZXIodmFsdWUpCisg
ICAgIyBOb3RoaW5nIHRvIGRvLCBzaW5jZSB3ZSBkb24ndCBoYXZlIGEgZ2VuZXJhdGlvbmFsIG9y
IGluY3JlbWVudGFsIGNvbGxlY3Rvci4KK2VuZAorCittYWNybyB2YWx1ZVByb2ZpbGUodmFsdWUs
IHByb2ZpbGUpCisgICAgaWYgVkFMVUVfUFJPRklMRVIKKyAgICAgICAgc3RvcmVwIHZhbHVlLCBW
YWx1ZVByb2ZpbGU6Om1fYnVja2V0c1twcm9maWxlXQorICAgIGVuZAorZW5kCisKKworIyBFbnRy
eXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlci4KKworIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2Nr
IGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KK21hY3Jv
IGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKKyAgICBsb2FkaSBQYXls
b2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MAorICAgIGJpYWVxIHQwLCBDb2RlQmxv
Y2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJlbAorICAgIHByZXBhcmVTdGF0ZUZvckND
YWxsKCkKKyAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBzbG93X3BhdGgg
aGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJy
b3IKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBidGl6IHQwLCAuY29udGludWUKKyAgICBsb2FkcCBK
SVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDEKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6
OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRN
YWNoaW5lUENGb3JUaHJvd1t0MV0KKy5jb250aW51ZToKKyAgICAjIFJlbG9hZCBDb2RlQmxvY2sg
YW5kIHJlc2V0IFBDLCBzaW5jZSB0aGUgc2xvd19wYXRoIGNsb2JiZXJlZCB0aGVtLgorICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlv
bnNbdDFdLCBQQgorICAgIG1vdmUgMCwgUEMKKyAgICBqbXAgZG9uZUxhYmVsCitlbmQKKworCisj
IEluc3RydWN0aW9uIGltcGxlbWVudGF0aW9ucworCitfbGxpbnRfb3BfZW50ZXI6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRpIENv
ZGVCbG9jazo6bV9udW1WYXJzW3QyXSwgdDIKKyAgICBidGl6IHQyLCAub3BFbnRyeURvbmUKKyAg
ICBtb3ZlIFZhbHVlVW5kZWZpbmVkLCB0MAorLm9wRW50ZXJMb29wOgorICAgIHN1YmkgMSwgdDIK
KyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIGJ0aW56IHQyLCAub3BFbnRlckxvb3AK
Ky5vcEVudGVyRG9uZToKKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9vcF9jcmVhdGVfYWN0
aXZhdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0
MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4XSwgVmFsdWVFbXB0eSwgLm9wQ3JlYXRlQWN0aXZhdGlv
bkRvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jcmVhdGVfYWN0aXZhaXRv
bikKKy5vcENyZWF0ZUFjdGl2YXRpb25Eb25lOgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50
X29wX2luaXRfbGF6eV9yZWc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIs
IFBDLCA4XSwgdDAKKyAgICBzdG9yZXAgVmFsdWVFbXB0eSwgW2NmciwgdDAsIDhdCisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfY3JlYXRlX2FyZ3VtZW50czoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4
XSwgVmFsdWVFbXB0eSwgLm9wQ3JlYXRlQXJndW1lbnRzRG9uZQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2NyZWF0ZV9hcmd1bWVudHMpCisub3BDcmVhdGVBcmd1bWVudHNEb25l
OgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2NyZWF0ZV90aGlzOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MAorICAgIGFzc2VydE5vdENv
bnN0YW50KHQwKQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFn
TWFzaywgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3Qw
XSwgdDEKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0
MV0sIE9iamVjdFR5cGUsIC5vcENyZWF0ZVRoaXNTbG93CisgICAgbG9hZHAgSlNPYmplY3Q6Om1f
aW5oZXJpdG9ySURbdDBdLCB0MgorICAgIGJ0cHogdDIsIC5vcENyZWF0ZVRoaXNTbG93CisgICAg
YWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCwgSlNHbG9i
YWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MiwgdDAsIHQxLCB0MywgLm9wQ3JlYXRl
VGhpc1Nsb3cpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MCwgW2Nm
ciwgdDEsIDhdCisgICAgZGlzcGF0Y2goOCkKKworLm9wQ3JlYXRlVGhpc1Nsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX3RoaXMpCisgICAgZGlzcGF0Y2goMykK
KworCitfbGxpbnRfb3BfZ2V0X2NhbGxlZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9h
ZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MQorICAgIHN0b3Jl
cCB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfY29udmVy
dF90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQw
CisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAub3BD
b252ZXJ0VGhpc1Nsb3cKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKKyAg
ICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0MF0sIE9iamVj
dFR5cGUsIC5vcENvbnZlcnRUaGlzU2xvdworICAgIGRpc3BhdGNoKDIpCisKKy5vcENvbnZlcnRU
aGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jb252ZXJ0X3RoaXMp
CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfbmV3X29iamVjdDoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJs
b2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1f
ZW1wdHlPYmplY3RTdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChK
U0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENs
YXNzSW5mbywgdDEsIHQwLCB0MiwgdDMsIC5vcE5ld09iamVjdFNsb3cpCisgICAgbG9hZGkgOFtQ
QiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2go
MikKKworLm9wTmV3T2JqZWN0U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9uZXdfb2JqZWN0KQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX21vdjoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaSA4
W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDIpCisgICAg
c3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9u
b3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisg
ICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAs
IHQyKQorICAgIHhvcnAgVmFsdWVGYWxzZSwgdDIKKyAgICBidHBueiB0MiwgfjEsIC5vcE5vdFNs
b3cKKyAgICB4b3JwIFZhbHVlVHJ1ZSwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQor
ICAgIGRpc3BhdGNoKDMpCisKKy5vcE5vdFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfbm90KQorICAgIGRpc3BhdGNoKDMpCisKKworbWFjcm8gZXF1YWxpdHlDb21wYXJp
c29uKGludGVnZXJDb21wYXJpc29uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0Mgor
ICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50
MzIodDAsIHQxLCAuc2xvdykKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDIsIHQw
LCAuc2xvdykKKyAgICBpbnRlZ2VyQ29tcGFyaXNvbih0MCwgdDEsIHQwKQorICAgIG9ycCBWYWx1
ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkK
KworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDQpCitl
bmQKKworX2xsaW50X29wX2VxOgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigKKyAgICAgICAgbWFj
cm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisg
ICAgICAgIF9sbGludF9zbG93X3BhdGhfZXEpCisKKworX2xsaW50X29wX25lcToKKyAgICBlcXVh
bGl0eUNvbXBhcmlzb24oCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5l
cSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9lcSkK
KworCittYWNybyBlcXVhbE51bGxDb21wYXJpc29uKCkKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhd
LCB0MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywg
LmltbWVkaWF0ZQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIHRi
bnogU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3NbdDJdLCBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkLCB0MAorICAgIGptcCAuZG9uZQorLmltbWVkaWF0ZToKKyAgICBhbmRw
IH5UYWdCaXRVbmRlZmluZWQsIHQwCisgICAgY3BlcSB0MCwgVmFsdWVOdWxsLCB0MAorLmRvbmU6
CitlbmQKKworX2xsaW50X29wX2VxX251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVx
dWFsTnVsbENvbXBhcmlzb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAg
VmFsdWVGYWxzZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNo
KDMpCisKKworX2xsaW50X29wX25lcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBl
cXVhbE51bGxDb21wYXJpc29uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgeG9y
cCBWYWx1ZVRydWUsIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRj
aCgzKQorCisKK21hY3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93UGF0aCkKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2Fk
aSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxKQor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIG1vdmUgdDAsIHQyCisgICAg
b3JwIHQxLCB0MgorICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5zbG93CisgICAgYnBhZXEgdDAsIHRh
Z1R5cGVOdW1iZXIsIC5sZWZ0T0sKKyAgICBidHBueiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cK
Ky5sZWZ0T0s6CisgICAgYnBhZXEgdDEsIHRhZ1R5cGVOdW1iZXIsIC5yaWdodE9LCisgICAgYnRw
bnogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisucmlnaHRPSzoKKyAgICBlcXVhbGl0eU9wZXJh
dGlvbih0MCwgdDEsIHQwKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAgVmFs
dWVGYWxzZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDQp
CisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCg0KQor
ZW5kCisKK19sbGludF9vcF9zdHJpY3RlcToKKyAgICBzdHJpY3RFcSgKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNwZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAg
ICAgIF9sbGludF9zbG93X3BhdGhfc3RyaWN0X2VxKQorCisKK19sbGludF9vcF9uc3RyaWN0ZXE6
CisgICAgc3RyaWN0RXEoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjcG5l
cSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9zdHJp
Y3RfZXEpCisKKworbWFjcm8gcHJlT3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2Fk
cCBbY2ZyLCB0MCwgOF0sIHQxCisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAg
IGFyaXRobWV0aWNPcGVyYXRpb24odDEsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0
MQorICAgIHN0b3JlcCB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikKKworLnNsb3c6
CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDIpCitlbmQKKworX2xs
aW50X29wX3ByZV9pbmM6CisgICAgcHJlT3AoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykg
YmFkZGlvIDEsIHZhbHVlLCBzbG93IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wcmVf
aW5jKQorCisKK19sbGludF9vcF9wcmVfZGVjOgorICAgIHByZU9wKAorICAgICAgICBtYWNybyAo
dmFsdWUsIHNsb3cpIGJzdWJpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9z
bG93X3BhdGhfcHJlX2luYykKKworCittYWNybyBwb3N0T3AoYXJpdGhtZXRpY09wZXJhdGlvbiwg
c2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0s
IHQwCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwg
dDIKKyAgICBiaWVxIHQwLCB0MSwgLmRvbmUKKyAgICBicGIgdDIsIHRhZ1R5cGVOdW1iZXIsIC5z
bG93CisgICAgbW92ZSB0MiwgdDMKKyAgICBhcml0aG1ldGljT3BlcmF0aW9uKHQzLCAuc2xvdykK
KyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDMKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQor
ICAgIHN0b3JlcCB0MywgW2NmciwgdDAsIDhdCisuZG9uZToKKyAgICBkaXNwYXRjaCgzKQorCisu
c2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goMykKK2VuZAor
CitfbGxpbnRfb3BfcG9zdF9pbmM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNybyAodmFsdWUs
IHNsb3cpIGJhZGRpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3Bh
dGhfcG9zdF9pbmMpCisKKworX2xsaW50X29wX3Bvc3RfZGVjOgorICAgIHBvc3RPcCgKKyAgICAg
ICAgbWFjcm8gKHZhbHVlLCBzbG93KSBic3ViaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX3Bvc3RfZGVjKQorCisKK19sbGludF9vcF90b19qc251bWJlcjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBs
b2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIp
CisgICAgYnBhZXEgdDIsIHRhZ1R5cGVOdW1iZXIsIC5vcFRvSnNudW1iZXJJc0ltbWVkaWF0ZQor
ICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5vcFRvSnNOdW1iZXJTbG93Cisub3BUb0pzbnVtYmVySXNJ
bW1lZGlhdGU6CisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQor
Cisub3BUb0pzbnVtYmVyU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90
b19qc251bWJlcikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9uZWdhdGU6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkg
OFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAg
IGJwYiB0MiwgdGFnVHlwZU51bWJlciwgLm9wTmVnYXRlTm90SW50CisgICAgYnRpeiB0MiwgMHg3
ZmZmZmZmZiwgLm9wTmVnYXRlU2xvdworICAgIG5lZ2kgdDIKKyAgICBvcnAgdGFnVHlwZU51bWJl
ciwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisub3BO
ZWdhdGVOb3RJbnQ6CisgICAgYnRweiB0MiwgdGFnVHlwZU51bWJlciwgLm9wTmVnYXRlU2xvdwor
ICAgIHhvcnAgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEs
IDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wTmVnYXRlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9uZWdhdGUpCisgICAgZGlzcGF0Y2goMykKKworCittYWNybyBiaW5h
cnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9u
LCBzbG93UGF0aCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDE2W1BC
LCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnBiIHQwLCB0YWdUeXBlTnVtYmVyLCAu
b3AxTm90SW50CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50CisgICAgbG9h
ZGkgOFtQQiwgUEMsIDhdLCB0MgorICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAs
IC5zbG93LCB0MikKKyAgICBkaXNwYXRjaCg1KQorCisub3AxTm90SW50OgorICAgICMgRmlyc3Qg
b3BlcmFuZCBpcyBkZWZpbml0ZWx5IG5vdCBhbiBpbnQsIHRoZSBzZWNvbmQgb3BlcmFuZCBjb3Vs
ZCBiZSBhbnl0aGluZy4KKyAgICBidHB6IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGJw
YiB0MSwgdGFnVHlwZU51bWJlciwgLm9wMU5vdEludE9wMkludAorICAgIGJ0cHogdDEsIHRhZ1R5
cGVOdW1iZXIsIC5zbG93CisgICAgZnAyZCB0MSwgZnQxCisgICAgam1wIC5vcDFOb3RJbnRSZWFk
eQorLm9wMU5vdEludE9wMkludDoKKyAgICBjaTJkIHQxLCBmdDEKKy5vcDFOb3RJbnRSZWFkeToK
KyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisgICAgZnAyZCB0MCwgZnQwCisgICAgZG91Ymxl
T3BlcmF0aW9uKGZ0MSwgZnQwKQorICAgIHN0b3JlZCBmdDAsIFtjZnIsIHQyLCA4XQorICAgIGRp
c3BhdGNoKDUpCisKKy5vcDJOb3RJbnQ6CisgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRl
bHkgYW4gaW50LCB0aGUgc2Vjb25kIGlzIGRlZmluaXRlbHkgbm90LgorICAgIGxvYWRpIDhbUEIs
IFBDLCA4XSwgdDIKKyAgICBidHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGNpMmQg
dDAsIGZ0MAorICAgIGZwMmQgdDEsIGZ0MQorICAgIGRvdWJsZU9wZXJhdGlvbihmdDEsIGZ0MCkK
KyAgICBzdG9yZWQgZnQwLCBbY2ZyLCB0MiwgOF0KKyAgICBkaXNwYXRjaCg1KQorCisuc2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goNSkKK2VuZAorCittYWNy
byBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBkb3VibGVPcGVyYXRpb24sIHNsb3dQYXRoKQor
ICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xv
dywgaW5kZXgpCisgICAgICAgICAgICBpbnRlZ2VyT3BlcmF0aW9uKGxlZnQsIHJpZ2h0LCBzbG93
KQorICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHJpZ2h0CisgICAgICAgICAgICBzdG9y
ZXAgcmlnaHQsIFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisgICAgICAgIGRvdWJsZU9w
ZXJhdGlvbiwgc2xvd1BhdGgpCitlbmQKKworX2xsaW50X29wX2FkZDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgYmluYXJ5T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykg
YmFkZGlvIGxlZnQsIHJpZ2h0LCBzbG93IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
KSBhZGRkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9hZGQpCisK
KworX2xsaW50X29wX211bDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5T3BDdXN0
b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93LCBpbmRleCkKKyAgICAg
ICAgICAgICMgQXNzdW1lIHQzIGlzIHNjcmF0Y2hhYmxlLgorICAgICAgICAgICAgbW92ZSByaWdo
dCwgdDMKKyAgICAgICAgICAgIGJtdWxpbyBsZWZ0LCB0Mywgc2xvdworICAgICAgICAgICAgYnRp
bnogdDMsIC5kb25lCisgICAgICAgICAgICBiaWx0IGxlZnQsIDAsIHNsb3cKKyAgICAgICAgICAg
IGJpbHQgcmlnaHQsIDAsIHNsb3cKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBvcnAgdGFn
VHlwZU51bWJlciwgdDMKKyAgICAgICAgICAgIHN0b3JlcCB0MywgW2NmciwgaW5kZXgsIDhdCisg
ICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBtdWxkIGxlZnQsIHJpZ2h0
IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9tdWwpCisKKworX2xsaW50X29wX3N1YjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5T3AoCisgICAgICAgIG1hY3JvIChsZWZ0
LCByaWdodCwgc2xvdykgYnN1YmlvIGxlZnQsIHJpZ2h0LCBzbG93IGVuZCwKKyAgICAgICAgbWFj
cm8gKGxlZnQsIHJpZ2h0KSBzdWJkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9zdWIpCisKKworX2xsaW50X29wX2RpdjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgYmluYXJ5T3BDdXN0b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93
LCBpbmRleCkKKyAgICAgICAgICAgICMgQXNzdW1lIHQzIGlzIHNjcmF0Y2hhYmxlLgorICAgICAg
ICAgICAgYnRpeiBsZWZ0LCBzbG93CisgICAgICAgICAgICBidGlueiByaWdodCwgLmludE9LCisg
ICAgICAgICAgICBiaWx0IGxlZnQsIDAsIHNsb3cKKyAgICAgICAgLmludE9LOgorICAgICAgICAg
ICAgbW92ZSBsZWZ0LCB0MworICAgICAgICAgICAgbW92ZSByaWdodCwgdDAKKyAgICAgICAgICAg
IGNkcWkKKyAgICAgICAgICAgIGlkaXZpIHQzCisgICAgICAgICAgICBidGlueiB0MSwgc2xvdwor
ICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgICAgICAgICBzdG9yZXAgdDAs
IFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCkgZGl2ZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfZGl2KQor
CisKK21hY3JvIGJpdE9wKG9wZXJhdGlvbiwgc2xvd1BhdGgsIGFkdmFuY2UpCisgICAgbG9hZGkg
MjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRp
IDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MSkKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1i
ZXIsIC5zbG93CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIG9wZXJhdGlv
bih0MSwgdDAsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MAorICAgIHN0b3JlcCB0
MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goYWR2YW5jZSkKKworLnNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKGFkdmFuY2UpCitlbmQKKworX2xsaW50
X29wX2xzaGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgc2xvdykgbHNoaWZ0aSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAg
IF9sbGludF9zbG93X3BhdGhfbHNoaWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF9yc2hp
ZnQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHNsb3cpIHJzaGlmdGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3JzaGlmdCwKKyAgICAgICAgNCkKKworCitfbGxpbnRfb3BfdXJzaGlmdDoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgc2xvdykKKyAgICAgICAgICAgIHVyc2hpZnRpIGxlZnQsIHJpZ2h0CisgICAgICAgICAgICBi
aWx0IHJpZ2h0LCAwLCBzbG93CisgICAgICAgIGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF91cnNoaWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF9iaXRhbmQ6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cp
IGFuZGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdGFuZCwK
KyAgICAgICAgNSkKKworCitfbGxpbnRfb3BfYml0eG9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSB4b3JpIGxlZnQs
IHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9iaXR4b3IsCisgICAgICAgIDUp
CisKKworX2xsaW50X29wX2JpdG9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgK
KyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBvcmkgbGVmdCwgcmlnaHQgZW5kLAor
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdG9yLAorICAgICAgICA1KQorCisKK19sbGludF9v
cF9jaGVja19oYXNfaW5zdGFuY2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhb
UEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MSwgdDAsIC5v
cENoZWNrSGFzSW5zdGFuY2VTbG93KQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBd
LCB0MAorICAgIGJ0YnogU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3Nb
dDBdLCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93CisgICAg
ZGlzcGF0Y2goMikKKworLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6CisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKQorICAgIGRpc3BhdGNoKDIpCisK
KworX2xsaW50X29wX2luc3RhbmNlb2Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgQ2hl
Y2sgdGhhdCBiYXNlVmFsIGltcGxlbWVudHMgdGhlIGRlZmF1bHQgSGFzSW5zdGFuY2UgYmVoYXZp
b3IuCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGVwcmVjYXRlZC4KKyAgICBsb2FkaSAy
NFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAg
IGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MAorICAgIGJ0YnogU3RydWN0dXJlOjpt
X3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlLCAub3BJbnN0YW5jZW9mU2xvdworICAgIAorICAgICMgQWN0dWFsbHkgZG8gdGhlIHdv
cmsuCisgICAgbG9hZGkgMzJbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0s
IHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQxLCAub3BJbnN0YW5jZW9m
U2xvdykKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QxXSwgdDIKKyAgICBiYmIgU3Ry
dWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0Ml0sIE9iamVjdFR5cGUsIC5v
cEluc3RhbmNlb2ZTbG93CisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDIsIC5vcEluc3RhbmNlb2ZTbG93KQorICAgIAorICAg
ICMgUmVnaXN0ZXIgc3RhdGU6IHQxID0gcHJvdG90eXBlLCB0MiA9IHZhbHVlCisgICAgbW92ZSAx
LCB0MAorLm9wSW5zdGFuY2VvZkxvb3A6CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0
Ml0sIHQyCisgICAgbG9hZHAgU3RydWN0dXJlOjptX3Byb3RvdHlwZVt0Ml0sIHQyCisgICAgYnBl
cSB0MiwgdDEsIC5vcEluc3RhbmNlb2ZEb25lCisgICAgYnRweiB0MiwgdGFnTWFzaywgLm9wSW5z
dGFuY2VvZkxvb3AKKworICAgIG1vdmUgMCwgdDAKKy5vcEluc3RhbmNlb2ZEb25lOgorICAgIG9y
cCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0
Y2goNSkKKworLm9wSW5zdGFuY2VvZlNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaW5zdGFuY2VvZikKKyAgICBkaXNwYXRjaCg1KQorCisKK21hY3JvIHJlc29sdmVHbG9i
YWwoc2l6ZSwgc2xvdykKKyAgICAjIE9wZXJhbmRzIGFyZSBhcyBmb2xsb3dzOgorICAgICMgOFtQ
QiwgUEMsIDhdICAgRGVzdGluYXRpb24gZm9yIHRoZSBsb2FkLgorICAgICMgMTZbUEIsIFBDLCA4
XSAgUHJvcGVydHkgaWRlbnRpZmllciBpbmRleCBpbiB0aGUgY29kZSBibG9jay4KKyAgICAjIDI0
W1BCLCBQQywgOF0gIFN0cnVjdHVyZSBwb2ludGVyLCBpbml0aWFsaXplZCB0byAwIGJ5IGJ5dGVj
b2RlIGdlbmVyYXRvci4KKyAgICAjIDMyW1BCLCBQQywgOF0gIE9mZnNldCBpbiBnbG9iYWwgb2Jq
ZWN0LCBpbml0aWFsaXplZCB0byAwIGJ5IGJ5dGVjb2RlIGdlbmVyYXRvci4KKyAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3Qw
XSwgdDAKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEKKyAgICBicG5lcSB0
MSwgMjRbUEIsIFBDLCA4XSwgc2xvdworICAgIGxvYWRpIDMyW1BCLCBQQywgOF0sIHQxCisgICAg
bG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3QwXSwgdDAKKyAgICBsb2FkcCBbdDAs
IHQxLCA4XSwgdDIKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgc3RvcmVwIHQyLCBb
Y2ZyLCB0MCwgOF0KKyAgICBsb2FkaSAoc2l6ZSAtIDEpICogOFtQQiwgUEMsIDhdLCB0MAorICAg
IHZhbHVlUHJvZmlsZSh0MiwgdDApCitlbmQKKworX2xsaW50X29wX3Jlc29sdmVfZ2xvYmFsOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICByZXNvbHZlR2xvYmFsKDYsIC5vcFJlc29sdmVHbG9i
YWxTbG93KQorICAgIGRpc3BhdGNoKDYpCisKKy5vcFJlc29sdmVHbG9iYWxTbG93OgorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZ2xvYmFsKQorICAgIGRpc3BhdGNo
KDYpCisKKworIyBHaXZlcyB5b3UgdGhlIHNjb3BlIGluIHQwLCB3aGlsZSBhbGxvd2luZyB5b3Ug
dG8gb3B0aW9uYWxseSBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIG9uIHRoZQorIyBzY29wZXMg
YXMgdGhleSBhcmUgdHJhdmVyc2VkLiBzY29wZUNoZWNrKCkgaXMgY2FsbGVkIHdpdGggdHdvIGFy
Z3VtZW50czogdGhlIHJlZ2lzdGVyCisjIGhvbGRpbmcgdGhlIHNjb3BlLCBhbmQgYSByZWdpc3Rl
ciB0aGF0IGNhbiBiZSB1c2VkIGZvciBzY3JhdGNoLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdAor
IyB1c2UgdDMsIHNvIHlvdSBjYW4gaG9sZCBzdHVmZiBpbiB0MyBpZiBuZWVkIGJlLgorbWFjcm8g
Z2V0U2NvcGUoZGVCcnVpamluSW5kZXhPcGVyYW5kLCBzY29wZUNoZWNrKQorICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDAKKyAgICBsb2FkaSBkZUJydWlqaW5JbmRleE9wZXJhbmQsIHQyCisg
ICAgCisgICAgYnRpeiB0MiwgLmRvbmUKKyAgICAKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwg
dDEKKyAgICBiaW5lcSBDb2RlQmxvY2s6Om1fY29kZVR5cGVbdDFdLCBGdW5jdGlvbkNvZGUsIC5s
b29wCisgICAgYnRieiBDb2RlQmxvY2s6Om1fbmVlZHNGdWxsU2NvcGVDaGFpblt0MV0sIC5sb29w
CisgICAgCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX2FjdGl2YXRpb25SZWdpc3Rlclt0MV0sIHQx
CisKKyAgICAjIE5lZWQgdG8gY29uZGl0aW9uYWxseSBza2lwIG92ZXIgb25lIHNjb3BlLgorICAg
IGJ0cHogW2NmciwgdDEsIDhdLCAubm9BY3RpdmF0aW9uCisgICAgc2NvcGVDaGVjayh0MCwgdDEp
CisgICAgbG9hZHAgU2NvcGVDaGFpbk5vZGU6Om5leHRbdDBdLCB0MAorLm5vQWN0aXZhdGlvbjoK
KyAgICBzdWJpIDEsIHQyCisgICAgCisgICAgYnRpeiB0MiwgLmRvbmUKKy5sb29wOgorICAgIHNj
b3BlQ2hlY2sodDAsIHQxKQorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpuZXh0W3QwXSwgdDAK
KyAgICBzdWJpIDEsIHQyCisgICAgYnRpbnogdDIsIC5sb29wCisKKy5kb25lOgorZW5kCisKK19s
bGludF9vcF9yZXNvbHZlX2dsb2JhbF9keW5hbWljOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBsb2FkcCBKU0ds
b2JhbERhdGE6OmFjdGl2YXRpb25TdHJ1Y3R1cmVbdDNdLCB0MworICAgIGdldFNjb3BlKAorICAg
ICAgICA0MFtQQiwgUEMsIDhdLAorICAgICAgICBtYWNybyAoc2NvcGUsIHNjcmF0Y2gpCisgICAg
ICAgICAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6b2JqZWN0W3Njb3BlXSwgc2NyYXRjaAorICAg
ICAgICAgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVtzY3JhdGNoXSwgdDMsIC5vcFJlc29s
dmVHbG9iYWxEeW5hbWljU3VwZXJTbG93CisgICAgICAgIGVuZCkKKyAgICByZXNvbHZlR2xvYmFs
KDcsIC5vcFJlc29sdmVHbG9iYWxEeW5hbWljU2xvdykKKyAgICBkaXNwYXRjaCg3KQorCisub3BS
ZXNvbHZlR2xvYmFsRHluYW1pY1N1cGVyU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9yZXNvbHZlX2Zvcl9yZXNvbHZlX2dsb2JhbF9keW5hbWljKQorICAgIGRpc3BhdGNo
KDcpCisKKy5vcFJlc29sdmVHbG9iYWxEeW5hbWljU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9yZXNvbHZlX2dsb2JhbF9keW5hbWljKQorICAgIGRpc3BhdGNoKDcpCisK
KworX2xsaW50X29wX2dldF9zY29wZWRfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAj
IE9wZXJhbmRzIGFyZSBhcyBmb2xsb3dzOgorICAgICMgOFtQQiwgUEMsIDhdICAgRGVzdGluYXRp
b24gZm9yIHRoZSBsb2FkCisgICAgIyAxNltQQiwgUEMsIDhdICBJbmRleCBvZiByZWdpc3RlciBp
biB0aGUgc2NvcGUKKyAgICAjIDI0W1BCLCBQQywgOF0gIERlIEJydWlqaW4gaW5kZXguCisgICAg
Z2V0U2NvcGUoMjRbUEIsIFBDLCA4XSwgbWFjcm8gKHNjb3BlLCBzY3JhdGNoKSBlbmQpCisgICAg
bG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQyCisgICAg
bG9hZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNWYXJpYWJs
ZU9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRwIFt0MCwgdDIsIDhdLCB0Mwor
ICAgIHN0b3JlcCB0MywgW2NmciwgdDEsIDhdCisgICAgbG9hZGkgMzJbUEIsIFBDLCA4XSwgdDEK
KyAgICB2YWx1ZVByb2ZpbGUodDMsIHQxKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29w
X3B1dF9zY29wZWRfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBnZXRTY29wZSgxNltQ
QiwgUEMsIDhdLCBtYWNybyAoc2NvcGUsIHNjcmF0Y2gpIGVuZCkKKyAgICBsb2FkaSAyNFtQQiwg
UEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQzKQorICAgIGxvYWRp
IDhbUEIsIFBDLCA4XSwgdDEKKyAgICB3cml0ZUJhcnJpZXIodDMpCisgICAgbG9hZHAgU2NvcGVD
aGFpbk5vZGU6Om9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNWYXJpYWJsZU9iamVjdDo6bV9y
ZWdpc3RlcnNbdDBdLCB0MAorICAgIHN0b3JlcCB0MywgW3QwLCB0MSwgOF0KKyAgICBkaXNwYXRj
aCg0KQorCisKK19sbGludF9vcF9nZXRfZ2xvYmFsX3ZhcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQz
CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2ds
b2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fcmVnaXN0ZXJz
W3QwXSwgdDAKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIs
IHQzLCA4XQorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQzCisgICAgdmFsdWVQcm9maWxlKHQy
LCB0MykKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9wdXRfZ2xvYmFsX3ZhcjoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2Fk
cCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0
W3QwXSwgdDAKKyAgICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQyKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4
XSwgdDEKKyAgICB3dGl0ZUJhcnJpZXIodDIpCisgICAgc3RvcmVwIHQyLCBbdDAsIHQxLCA4XQor
ICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2dldF9ieV9pZDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9pZCBjYWNoaW5nIGZv
ciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQorICAgICMgb3Bjb2RlLiBXZSBkbywgaG93
ZXZlciwgYWxsb3cgZm9yIHRoZSBjYWNoZSB0byBjaGFuZ2UgYW55dGltZSBpZiBmYWlscywgc2lu
Y2UKKyAgICAjIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBBdCBiZXN0IHdlIGdldCBsdWNreSBhbmQg
dGhlIGdldF9ieV9pZCB3aWxsIGNvbnRpbnVlCisgICAgIyB0byB0YWtlIGZhc3QgcGF0aCBvbiB0
aGUgbmV3IGNhY2hlLiBBdCB3b3JzdCB3ZSB0YWtlIHNsb3cgcGF0aCwgd2hpY2ggaXMgd2hhdAor
ICAgICMgd2Ugd291bGQgaGF2ZSBiZWVuIGRvaW5nIGFueXdheS4KKyAgICBsb2FkaSAxNltQQiwg
UEMsIDhdLCB0MAorICAgIGxvYWRpIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZUNlbGwodDAsIHQzLCAub3BHZXRCeUlkU2xvdykKKyAgICBsb2FkaSA0MFtQQiwg
UEMsIDhdLCB0MgorICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0M10sIHQw
CisgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwor
ICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkcCBbdDAsIHQyXSwgdDMKKyAgICBz
dG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAgIGxvYWRpIDY0W1BCLCBQQywgOF0sIHQxCisgICAg
dmFsdWVQcm9maWxlKHQzLCB0MSkKKyAgICBkaXNwYXRjaCg5KQorCisub3BHZXRCeUlkU2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0
Y2goOSkKKworCitfbGxpbnRfb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGg6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgOFtQQiwgUEMs
IDhdLCB0MQorICAgIGJ0cG56IFtjZnIsIHQwLCA4XSwgLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xv
dworICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQyCisgICAg
c3ViaSAxLCB0MgorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MgorICAgIHN0b3JlcCB0MiwgW2Nm
ciwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0aCkK
KyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9wdXRfYnlfaWQ6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkaSAzMltQQiwgUEMs
IDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQzLCB0MCwgLm9wUHV0QnlJ
ZFNsb3cpCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkcCBKU09iamVjdDo6
bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MworICAgIGJwbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVb
dDBdLCB0MSwgLm9wUHV0QnlJZFNsb3cKKyAgICBsb2FkaSA0MFtQQiwgUEMsIDhdLCB0MQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIHdyaXRlQmFycmllcih0MCkKKyAg
ICBzdG9yZXAgdDAsIFt0MywgdDFdCisgICAgZGlzcGF0Y2goOSkKKworLm9wUHV0QnlJZFNsb3c6
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X2lkKQorICAgIGRpc3Bh
dGNoKDkpCisKKworbWFjcm8gcHV0QnlJZFRyYW5zaXRpb24oYWRkaXRpb25hbENoZWNrcykKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRp
IDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDMsIHQw
LCAub3BQdXRCeUlkU2xvdykKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MgorICAgIGJwbmVx
IEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MSwgLm9wUHV0QnlJZFNsb3cKKyAgICBhZGRpdGlv
bmFsQ2hlY2tzKHQxLCB0MywgLm9wUHV0QnlJZFNsb3cpCisgICAgbG9hZGkgNDBbUEIsIFBDLCA4
XSwgdDEKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MworICAg
IGFkZHAgdDEsIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEpCisgICAgd3Jp
dGVCYXJyaWVyKHQxKQorICAgIHN0b3JlcCB0MSwgW3QzXQorICAgIGxvYWRpIDQ4W1BCLCBQQywg
OF0gdDEKKyAgICBzdG9yZXAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0KKyAgICBkaXNwYXRjaCg5
KQorZW5kCisKK19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9kaXJlY3Q6CisgICAgcHV0
QnlJZFRyYW5zaXRpb24obWFjcm8gKG9sZFN0cnVjdHVyZSwgc2NyYXRjaCwgc2xvdykgZW5kKQor
CisKK19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9ub3JtYWw6CisgICAgcHV0QnlJZFRy
YW5zaXRpb24oCisgICAgICAgIG1hY3JvIChvbGRTdHJ1Y3R1cmUsIHNjcmF0Y2gsIHNsb3cpCisg
ICAgICAgICAgICBjb25zdCBwcm90b0NlbGwgPSBvbGRTdHJ1Y3R1cmUgICAgIyBSZXVzaW5nIHRo
ZSBvbGRTdHJ1Y3R1cmUgcmVnaXN0ZXIgZm9yIHRoZSBwcm90bworICAgICAgICAgICAgbG9hZHAg
NTZbUEIsIFBDLCA4XSwgc2NyYXRjaAorICAgICAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYnRw
bnogc2NyYXRjaCwgb2sgZW5kKQorICAgICAgICAgICAgbG9hZHAgU3RydWN0dXJlQ2hhaW46Om1f
dmVjdG9yW3NjcmF0Y2hdLCBzY3JhdGNoCisgICAgICAgICAgICBhc3NlcnQobWFjcm8gKG9rKSBi
dHBueiBzY3JhdGNoLCBvayBlbmQpCisgICAgICAgICAgICBicGVxIFN0cnVjdHVyZTo6bV9wcm90
b3R5cGVbb2xkU3RydWN0dXJlXSwgVmFsdWVOdWxsLCAuZG9uZQorICAgICAgICAubG9vcDoKKyAg
ICAgICAgICAgIGxvYWRwIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbb2xkU3RydWN0dXJlXSwgcHJv
dG9DZWxsCisgICAgICAgICAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3Byb3RvQ2VsbF0s
IG9sZFN0cnVjdHVyZQorICAgICAgICAgICAgYnBuZXEgb2xkU3RydWN0dXJlLCBbc2NyYXRjaF0s
IHNsb3cKKyAgICAgICAgICAgIGFkZHAgOCwgc2NyYXRjaAorICAgICAgICAgICAgYnBuZXEgU3Ry
dWN0dXJlOjptX3Byb3RvdHlwZVtvbGRTdHJ1Y3R1cmVdLCBWYWx1ZU51bGwsIC5sb29wCisgICAg
ICAgIC5kb25lOgorICAgICAgICBlbmQpCisKKworX2xsaW50X29wX2dldF9ieV92YWw6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxvYWRp
IDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2Fk
cCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZUNlbGwodDIsIHQwLCAub3BHZXRCeVZhbFNsb3cpCisgICAgbG9hZHAgSlNHbG9iYWxEYXRh
Ojpqc0FycmF5Q2xhc3NJbmZvW3QxXSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50
MzIodDMsIHQxLCAub3BHZXRCeVZhbFNsb3cpCisgICAgYnBuZXEgW3QwXSwgdDIsIC5vcEdldEJ5
VmFsU2xvdworICAgIGxvYWRwIEpTQXJyYXk6Om1fc3RvcmFnZVt0MF0sIHQzCisgICAgYmlhZXEg
dDEsIEpTQXJyYXk6Om1fdmVjdG9yTGVuZ3RoW3QwXSwgLm9wR2V0QnlWYWxTbG93CisgICAgbG9h
ZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIEFycmF5U3RvcmFnZTo6bV92ZWN0b3JbdDMs
IHQxLCA4XSwgdDIKKyAgICBidHB6IHQyLCAub3BHZXRCeVZhbFNsb3cKKyAgICBzdG9yZXAgdDIs
IFtjZnIsIHQwLCA4XQorICAgIGxhb2RpIDMyW1BCLCBQQywgOF0sIHQwCisgICAgdmFsdWVQcm9m
aWxlKHQyLCB0MCkKKyAgICBkaXNwYXRjaCg1KQorCisub3BHZXRCeVZhbFNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2J5X3ZhbCkKKyAgICBkaXNwYXRjaCg1KQor
CisKK19sbGludF9vcF9nZXRfYXJndW1lbnRfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQx
CisgICAgYnRwbnogW2NmciwgdDAsIDhdLCAub3BHZXRBcmd1bWVudEJ5VmFsU2xvdworICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MSwgdDIsIC5vcEdldEFyZ3VtZW50QnlWYWxTbG93
KQorICAgIGFkZGkgMSwgdDIKKyAgICBsYW9kaSBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNl
dFtjZnJdLCB0MQorICAgIGJpYWVxIHQyLCB0MSwgLm9wR2V0QXJndW1lbnRCeVZhbFNsb3cKKyAg
ICBuZWdpIHQyCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRwIFRoaXNBcmd1
bWVudE9mZnNldFtjZnIsIHQyLCA4XSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4XQor
ICAgIGRpc3BhdGNoKDUpCisKKy5vcEdldEFyZ3VtZW50QnlWYWxTbG93OgorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9hcmd1bWVudF9ieV92YWwpCisgICAgZGlzcGF0Y2go
NSkKKwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAxMDk5NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIx
LDkgKzIxLDYzNCBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAorIyBGaXJzdCBjb21lIHRoZSBjb21tb24gcHJvdG9jb2xzIHRoYXQgYm90aCBp
bnRlcnByZXRlcnMgdXNlLiBOb3RlIHRoYXQgZWFjaAorIyBvZiB0aGVzZSBtdXN0IGhhdmUgYW4g
QVNTRVJUKCkgaW4gTExJbnREYXRhLmNwcAorCisjIFRoZXNlIGRlY2xhcmF0aW9ucyBtdXN0IG1h
dGNoIGludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oLgorY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2l6
ZSA9IDQ4Citjb25zdCBBcmd1bWVudENvdW50ID0gLTQ4Citjb25zdCBDYWxsZXJGcmFtZSA9IC00
MAorY29uc3QgQ2FsbGVlID0gLTMyCitjb25zdCBTY29wZUNoYWluID0gLTI0Citjb25zdCBSZXR1
cm5QQyA9IC0xNgorY29uc3QgQ29kZUJsb2NrID0gLTgKKworY29uc3QgVGhpc0FyZ3VtZW50T2Zm
c2V0ID0gLUNhbGxGcmFtZUhlYWRlclNpemUgLSA4CisKKyMgU29tZSByZWdpc3RlciBjb252ZW50
aW9ucy4KK2lmIEpTVkFMVUU2NAorICAgICMgLSBVc2UgYSBwYWlyIG9mIHJlZ2lzdGVycyB0byBy
ZXByZXNlbnQgdGhlIFBDOiBvbmUgcmVnaXN0ZXIgZm9yIHRoZQorICAgICMgICBiYXNlIG9mIHRo
ZSByZWdpc3RlciBmaWxlLCBhbmQgb25lIHJlZ2lzdGVyIGZvciB0aGUgaW5kZXguCisgICAgIyAt
IFRoZSBQQyBiYXNlIChvciBQQiBmb3Igc2hvcnQpIHNob3VsZCBiZSBzdG9yZWQgaW4gdGhlIGNz
ci4gSXQgd2lsbAorICAgICMgICBnZXQgY2xvYmJlcmVkIG9uIGNhbGxzIHRvIG90aGVyIEpTIGNv
ZGUsIGJ1dCB3aWxsIGdldCBzYXZlZCBvbiBjYWxscworICAgICMgICB0byBDIGZ1bmN0aW9ucy4K
KyAgICAjIC0gQyBjYWxscyBhcmUgc3RpbGwgZ2l2ZW4gdGhlIEluc3RydWN0aW9uKiByYXRoZXIg
dGhhbiB0aGUgUEMgaW5kZXguCisgICAgIyAgIFRoaXMgcmVxdWlyZXMgYW4gYWRkIGJlZm9yZSB0
aGUgY2FsbCwgYW5kIGEgc3ViIGFmdGVyLgorICAgIGNvbnN0IFBDID0gdDQKKyAgICBjb25zdCBQ
QiA9IGNzcjAKKyAgICBjb25zdCB0YWdUeXBlTnVtYmVyID0gY3NyMQorICAgIGNvbnN0IHRhZ01h
c2sgPSBjc3IyCitlbHNlCisgICAgY29uc3QgUEMgPSB0NAorZW5kCisKKyMgQ29uc3RhbnRzIGZv
ciByZWFzb25pbmcgYWJvdXQgdmFsdWUgcmVwcmVzZW50YXRpb24uCitpZiBCSUdfRU5ESUFOCisg
ICAgY29uc3QgVGFnT2Zmc2V0ID0gMAorICAgIGNvbnN0IFBheWxvYWRPZmZzZXQgPSA0CitlbHNl
CisgICAgY29uc3QgVGFnT2Zmc2V0ID0gNAorICAgIGNvbnN0IFBheWxvYWRPZmZzZXQgPSAwCitl
bmQKKworIyBUeXBlIGNvbnN0YW50cy4KK2NvbnN0IFN0cmluZ1R5cGUgPSA1Citjb25zdCBPYmpl
Y3RUeXBlID0gMTMKKworIyBUeXBlIGZsYWdzIGNvbnN0YW50cy4KK2NvbnN0IE1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQgPSAxCitjb25zdCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgPSAyCitjb25zdCBJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlID0gOAorCisjIEJ5dGVjb2RlIG9wZXJhbmQgY29u
c3RhbnRzLgorY29uc3QgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggPSAweDQwMDAwMDAwCisK
KyMgQ29kZSB0eXBlIGNvbnN0YW50cy4KK2NvbnN0IEdsb2JhbENvZGUgPSAwCitjb25zdCBFdmFs
Q29kZSA9IDEKK2NvbnN0IEZ1bmN0aW9uQ29kZSA9IDIKKworIyBUaGUgaW50ZXJwcmV0ZXIgc3Rl
YWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1lbnQgY291bnQuCitjb25zdCBMTEludFJldHVy
blBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNldAorCisjIFN0cmluZyBmbGFncy4KK2NvbnN0
IEhhc2hGbGFnczhCaXRCdWZmZXIgPSA2NAorCisjIEFsbG9jYXRpb24gY29uc3RhbnRzCitpZiBK
U1ZBTFVFNjQKKyAgICBjb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAxCitlbHNl
CisgICAgY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMworZW5kCisKKyMgVGhp
cyBtdXN0IG1hdGNoIHd0Zi9WZWN0b3IuaAoraWYgSlNWQUxVRTY0CisgICAgY29uc3QgVmVjdG9y
U2l6ZU9mZnNldCA9IDAKKyAgICBjb25zdCBWZWN0b3JCdWZmZXJPZmZzZXQgPSA4CitlbHNlCisg
ICAgY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKKyAgICBjb25zdCBWZWN0b3JCdWZmZXJPZmZz
ZXQgPSA0CitlbmQKKworCisjIFNvbWUgY29tbW9uIHV0aWxpdGllcy4KK21hY3JvIGNyYXNoKCkK
KyAgICBzdG9yZWkgMCwgMHhiYmFkYmVlZltdCisgICAgbW92ZSAwLCB0MAorICAgIGNhbGwgdDAK
K2VuZAorCittYWNybyBhc3NlcnQoYXNzZXJ0aW9uKQorICAgIGlmIEFTU0VSVF9FTkFCTEVECisg
ICAgICAgIGFzc2VydGlvbigub2spCisgICAgICAgIGNyYXNoKCkKKyAgICAub2s6CisgICAgZW5k
CitlbmQKKworbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9u
UmVnaXN0ZXIpCisgICAgaWYgQVJNdjcKKyAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdp
c3RlcgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVn
aXN0ZXIKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCitlbmQKKworbWFjcm8gcmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oc291cmNlUmVnaXN0ZXIpCisgICAgaWYgQVJN
djcKKyAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIKKyAgICBlbHNpZiBYODYgb3IgWDg2
XzY0CisgICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIKKyAgICBlbHNlCisgICAgICAgIGVycm9y
CisgICAgZW5kCitlbmQKKworbWFjcm8gdHJhY2VFeGVjdXRpb24oKQorICAgIGlmIEVYRUNVVElP
Tl9UUkFDSU5HCisgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdHJhY2UpCisgICAgZW5kCitl
bmQKKworbWFjcm8gc2xvd1BhdGhGb3JDYWxsKGFkdmFuY2UsIHNsb3dQYXRoKQorICAgIGNhbGxD
YWxsU2xvd1BhdGgoCisgICAgICAgIGFkdmFuY2UsCisgICAgICAgIHNsb3dQYXRoLAorICAgICAg
ICBtYWNybyAoY2FsbGVlKQorICAgICAgICAgICAgY2FsbCBjYWxsZWUKKyAgICAgICAgICAgIGRp
c3BhdGNoQWZ0ZXJDYWxsKCkKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNo
VG9KSVQoaW5jcmVtZW50LCBhY3Rpb24pCisgICAgaWYgSklUX0VOQUJMRUQKKyAgICAgICAgbG9h
ZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgICAgIGJhZGRpcyBpbmNyZW1lbnQsIENvZGVCbG9j
azo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsgRXhlY3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3Qw
XSwgLmNvbnRpbnVlCisgICAgICAgIGFjdGlvbigpCisgICAgLmNvbnRpbnVlOgorICAgIGVuZAor
ZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCisgICAgY2hlY2tTd2l0
Y2hUb0pJVCgKKyAgICAgICAgMTAsCisgICAgICAgIG1hY3JvICgpCisgICAgICAgICAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3JlcGxhY2UpCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyBhc3Nl
cnROb3RDb25zdGFudChpbmRleCkKKyAgICBhc3NlcnQobWFjcm8gKG9rKSBiaWx0IGluZGV4LCBG
aXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgb2sgZW5kKQorZW5kCisKK21hY3JvIGZ1bmN0aW9u
Rm9yQ2FsbENvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKKyAgICBsb2FkcCBDYWxsZWVb
Y2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVb
dGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEZ1bmN0aW9uRXhlY3V0
YWJsZTo6bV9jb2RlQmxvY2tGb3JDYWxsW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIK
K2VuZAorCittYWNybyBmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlcih0YXJnZXRS
ZWdpc3RlcikKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2Fk
cCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3Rl
cgorICAgIGxvYWRwIEZ1bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3Rb
dGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3JvIG5vdEZ1bmN0aW9u
Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJd
LCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3JvIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNv
dXJjZVJlZ2lzdGVyKQorICAgIHN0b3JlcCBzb3VyY2VSZWdpc3RlciwgQ29kZUJsb2NrW2Nmcl0K
K2VuZAorCittYWNybyBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdpc3RlcikK
KyAgICAjIE5vdGhpbmcgdG8gZG8hCitlbmQKKworIyBEbyB0aGUgYmFyZSBtaW5pbXVtIHJlcXVp
cmVkIHRvIGV4ZWN1dGUgY29kZS4gU2V0cyB1cCB0aGUgUEMsIGxlYXZlIHRoZSBDb2RlQmxvY2sq
CisjIGluIHQxLiBNYXkgYWxzbyB0cmlnZ2VyIHByb2xvZ3VlIGVudHJ5IE9TUi4KK21hY3JvIHBy
b2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0aCwgdHJh
Y2VTbG93UGF0aCkKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDIpCisgICAg
CisgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNob3VsZCBPU1Iu
CisgICAgc3RvcmVwIHQyLCBSZXR1cm5QQ1tjZnJdCisgICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcK
KyAgICAgICAgY2FsbFNsb3dQYXRoKHRyYWNlU2xvd1BhdGgpCisgICAgZW5kCisgICAgY29kZUJs
b2NrR2V0dGVyKHQxKQorICAgIGlmIEpJVF9FTkFCTEVECisgICAgICAgIGJhZGRpcyA1LCBDb2Rl
QmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRl
clt0MV0sIC5jb250aW51ZQorICAgICAgICBjQ2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCisg
ICAgICAgIG1vdmUgdDEsIGNmcgorICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgorICAgICAgICBs
b2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgorICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9y
ZVJldHVybih0MikKKyAgICAgICAgam1wIHQwCisgICAgLnJlY292ZXI6CisgICAgICAgIGNvZGVC
bG9ja0dldHRlcih0MSkKKyAgICAuY29udGludWU6CisgICAgZW5kCisgICAgY29kZUJsb2NrU2V0
dGVyKHQxKQorICAgIAorICAgICMgU2V0IHVwIHRoZSBQQy4KKyAgICBpZiBKU1ZBTFVFNjQKKyAg
ICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBCCisgICAgICAgIG1v
dmUgMCwgUEMKKyAgICBlbHNlCisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlv
bnNbdDFdLCBQQworICAgIGVuZAorZW5kCisKKyMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBp
biB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCisjIE11c3QgY2Fs
bCBkaXNwYXRjaCgwKSBhZnRlciBjYWxsaW5nIHRoaXMuCittYWNybyBmdW5jdGlvbkluaXRpYWxp
emF0aW9uKHByb2ZpbGVBcmdTa2lwKQorICAgIGlmIFZBTFVFX1BST0ZJTEVSCisgICAgICAgICMg
UHJvZmlsZSB0aGUgYXJndW1lbnRzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIGNob2ljZSBi
dXQgdG8gZG8gdGhpcy4gVGhpcworICAgICAgICAjIGNvZGUgaXMgcHJldHR5IGhvcnJlbmRvdXMg
YmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBpbiBvcmRlcmluZyBiZXR3ZWVuCisgICAgICAgICMg
YXJndW1lbnRzIGFuZCB2YWx1ZSBwcm9maWxlcywgdGhlIGRlc2lyZSB0byBoYXZlIGEgc2ltcGxl
IGxvb3AtZG93bi10by16ZXJvCisgICAgICAgICMgbG9vcCwgYW5kIHRoZSBkZXNpcmUgdG8gdXNl
IG9ubHkgdGhyZWUgcmVnaXN0ZXJzIHNvIGFzIHRvIHByZXNlcnZlIHRoZSBQQyBhbmQKKyAgICAg
ICAgIyB0aGUgY29kZSBibG9jay4gSXQgaXMgbGlrZWx5IHRoYXQgdGhpcyBjb2RlIHNob3VsZCBi
ZSByZXdyaXR0ZW4gaW4gYSBtb3JlCisgICAgICAgICMgb3B0aW1hbCB3YXkgZm9yIGFyY2hpdGVj
dHVyZXMgdGhhdCBoYXZlIG1vcmUgdGhhbiBmaXZlIHJlZ2lzdGVycyBhdmFpbGFibGUKKyAgICAg
ICAgIyBmb3IgYXJiaXRyYXJ5IHVzZSBpbiB0aGUgaW50ZXJwcmV0ZXIuCisgICAgICAgIGxvYWRp
IENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgdDAKKyAgICAgICAgYWRkaSAtcHJvZmls
ZUFyZ1NraXAsIHQwICMgVXNlIGFkZGkgYmVjYXVzZSB0aGF0J3Mgd2hhdCBoYXMgdGhlIHBlZXBo
b2xlCisgICAgICAgIGFzc2VydChtYWNybyAob2spIGJpZ3RlcSB0MCwgMCwgb2sgZW5kKQorICAg
ICAgICBidGl6IHQwLCAuYXJndW1lbnRQcm9maWxlRG9uZQorICAgICAgICBsb2FkcCBDb2RlQmxv
Y2s6Om1fYXJndW1lbnRWYWx1ZVByb2ZpbGVzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QxXSwgdDMK
KyAgICAgICAgbXVsaSBzaXplb2YgVmFsdWVQcm9maWxlLCB0MCwgdDIgIyBBYWFhYWhoaGghIE5l
ZWQgc3RyZW5ndGggcmVkdWN0aW9uIQorICAgICAgICBuZWdpIHQwCisgICAgICAgIGxzaGlmdGkg
MywgdDAKKyAgICAgICAgYWRkcCB0MiwgdDMKKyAgICAuYXJndW1lbnRQcm9maWxlTG9vcDoKKyAg
ICAgICAgaWYgSlNWQUxVRTY0CisgICAgICAgICAgICBsb2FkcCBUaGlzQXJndW1lbnRPZmZzZXQg
KyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgorICAgICAgICAgICAgc3VicCBz
aXplb2YgVmFsdWVQcm9maWxlLCB0MworICAgICAgICAgICAgc3RvcmVwIHQyLCBwcm9maWxlQXJn
U2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0c1t0M10K
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgVGFn
T2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKKyAgICAgICAgICAg
IHN1YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDMKKyAgICAgICAgICAgIHN0b3JlaSB0MiwgcHJv
ZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tl
dHMgKyBUYWdPZmZzZXRbdDNdCisgICAgICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQg
KyBQYXlsb2FkT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKKyAg
ICAgICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxl
ICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgICAgICBl
bmQKKyAgICAgICAgYmFkZGlueiA4LCB0MCwgLmFyZ3VtZW50UHJvZmlsZUxvb3AKKyAgICAuYXJn
dW1lbnRQcm9maWxlRG9uZToKKyAgICBlbmQKKyAgICAgICAgCisgICAgIyBDaGVjayBzdGFjayBo
ZWlnaHQuCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0sIHQw
CisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDFdLCB0MgorICAgIGxvYWRwIEpT
R2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0MiAgICMgRklYTUU6IENhbiBnZXQgdG8gdGhl
IFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFja0ZyYW1lCisgICAgbHNoaWZ0aSAzLCB0MAor
ICAgIGFkZHAgdDAsIGNmciwgdDAKKyAgICBicGFlcSBJbnRlcnByZXRlcjo6bV9yZWdpc3RlckZp
bGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwgdDAsIC5zdGFja0hlaWdodE9LCisKKyAgICAj
IFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBzbG93X3BhdGguCisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdpc3Rlcl9maWxlX2NoZWNrKQorLnN0YWNrSGVpZ2h0
T0s6CitlbmQKKworbWFjcm8gYWxsb2NhdGVCYXNpY0pTT2JqZWN0KHNpemVDbGFzc0luZGV4LCBj
bGFzc0luZm9PZmZzZXQsIHN0cnVjdHVyZSwgcmVzdWx0LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNs
b3dDYXNlKQorICAgIGlmIEFMV0FZU19BTExPQ0FURV9TTE9XCisgICAgICAgIGptcCBzbG93Q2Fz
ZQorICAgIGVsc2UKKyAgICAgICAgY29uc3Qgb2Zmc2V0T2ZNeVNpemVDbGFzcyA9CisgICAgICAg
ICAgICBKU0dsb2JhbERhdGE6OmhlYXAgKworICAgICAgICAgICAgSGVhcDo6bV9vYmplY3RTcGFj
ZSArCisgICAgICAgICAgICBNYXJrZWRTcGFjZTo6bV9ub3JtYWxTcGFjZSArCisgICAgICAgICAg
ICBNYXJrZWRTcGFjZTo6U3Vic3BhY2U6OnByZWNpc2VBbGxvY2F0b3JzICsKKyAgICAgICAgICAg
IHNpemVDbGFzc0luZGV4ICogc2l6ZW9mIE1hcmtlZEFsbG9jYXRvcgorICAgICAgICAKKyAgICAg
ICAgIyBGSVhNRTogd2UgY2FuIGdldCB0aGUgZ2xvYmFsIGRhdGEgaW4gb25lIGxvYWQgZnJvbSB0
aGUgc3RhY2suCisgICAgICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBzY3JhdGNoMQorICAgICAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVtzY3JhdGNoMV0sIHNjcmF0Y2gxCisgICAg
ICAgIAorICAgICAgICAjIEdldCB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4gICAgCisg
ICAgICAgIGxvYWRwIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmly
c3RGcmVlQ2VsbFtzY3JhdGNoMV0sIHJlc3VsdAorICAgICAgICBidHB6IHJlc3VsdCwgc2xvd0Nh
c2UKKyAgICAgICAgCisgICAgICAgICMgUmVtb3ZlIHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBs
aXN0LgorICAgICAgICBsb2FkcCBbcmVzdWx0XSwgc2NyYXRjaDIKKyAgICAgICAgc3RvcmVwIHNj
cmF0Y2gyLCBvZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJl
ZUNlbGxbc2NyYXRjaDFdCisgICAgCisgICAgICAgICMgSW5pdGlhbGl6ZSB0aGUgb2JqZWN0Lgor
ICAgICAgICBsb2FkcCBjbGFzc0luZm9PZmZzZXRbc2NyYXRjaDFdLCBzY3JhdGNoMgorICAgICAg
ICBzdG9yZXAgc2NyYXRjaDIsIFtyZXN1bHRdCisgICAgICAgIHN0b3JlcCBzdHJ1Y3R1cmUsIEpT
Q2VsbDo6bV9zdHJ1Y3R1cmVbcmVzdWx0XQorICAgICAgICBzdG9yZXAgMCwgSlNPYmplY3Q6Om1f
aW5oZXJpdG9ySURbcmVzdWx0XQorICAgICAgICBhZGRwIHNpemVvZiBKU09iamVjdCwgcmVzdWx0
LCBzY3JhdGNoMQorICAgICAgICBzdG9yZXAgc2NyYXRjaDEsIEpTT2JqZWN0OjptX3Byb3BlcnR5
U3RvcmFnZVtyZXN1bHRdCisgICAgZW5kCitlbmQKKworCisjIEluZGljYXRlIHRoZSBiZWdpbm5p
bmcgb2YgTExJbnQuCitfbGxpbnRfYmVnaW46CisgICAgY3Jhc2goKQorCisKK19sbGludF9wcm9n
cmFtX3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBu
b3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNl
X3Byb2xvZ3VlKQorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X2V2YWxfcHJvbG9ndWU6Cisg
ICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29kZUJs
b2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCisgICAg
ZGlzcGF0Y2goMCkKKworCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWU6CisgICAg
cHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9j
a1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xsaW50X3RyYWNl
X3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQorLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luOgorICAg
IGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMCkKKyAgICBkaXNwYXRjaCgwKQorICAgIAorCitfbGxp
bnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShmdW5jdGlv
bkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9s
bGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCwgX2xsaW50X3RyYWNlX3Byb2xv
Z3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCisuZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbjoK
KyAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDEpCisgICAgZGlzcGF0Y2goMCkKKyAgICAKKwor
X2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrOgorICAgIHByb2xvZ3VlKGZ1bmN0
aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGlu
dF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNlX2Fy
aXR5Q2hlY2tfZm9yX2NhbGwpCisgICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNh
bGxCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCisKKworX2xsaW50X2Z1
bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2s6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25G
b3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxp
bnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywgX2xsaW50X3Ry
YWNlX2FyaXR5Q2hlY2tfZm9yX2NvbnN0cnVjdCkKKyAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1
bmN0aW9uRm9yQ29uc3RydWN0QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0X2FyaXR5
Q2hlY2spCisKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1zcGVjaWZpYyBjb2RlLgogaWYgSlNW
QUxVRTY0CiAgICAgaW5jbHVkZSBMb3dMZXZlbEludGVycHJldGVyNjQKIGVsc2UKICAgICBpbmNs
dWRlIExvd0xldmVsSW50ZXJwcmV0ZXIzMl82NAogZW5kCiAKKworIyBWYWx1ZS1yZXByZXNlbnRh
dGlvbi1hZ25vc3RpYyBjb2RlLgorX2xsaW50X29wX25ld19hcnJheToKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2FycmF5KQorICAg
IGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX25ld19hcnJheV9idWZmZXI6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19hcnJheV9i
dWZmZXIpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfbmV3X3JlZ2V4cDoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X3Jl
Z2V4cCkKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9sZXNzOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzKQorICAgIGRp
c3BhdGNoKDQpCisKKworX2xsaW50X29wX2xlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbGVzc2VxKQorICAgIGRpc3BhdGNoKDQp
CisKKworX2xsaW50X29wX2dyZWF0ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXIpCisgICAgZGlzcGF0Y2goNCkKKworCitf
bGxpbnRfb3BfZ3JlYXRlcmVxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVyZXEpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxp
bnRfb3BfbW9kOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9tb2QpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfdHlwZW9mOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90
eXBlb2YpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfdW5kZWZpbmVkOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc191
bmRlZmluZWQpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfYm9vbGVhbjoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNf
Ym9vbGVhbikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19udW1iZXI6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX251
bWJlcikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19zdHJpbmc6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX3N0cmlu
ZykKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19vYmplY3Q6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX29iamVjdCkK
KyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19mdW5jdGlvbjoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfZnVuY3Rpb24p
CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaW46CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luKQorICAgIGRpc3BhdGNoKDQp
CisKKworX2xsaW50X29wX3Jlc29sdmU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmUpCisgICAgZGlzcGF0Y2goNCkKKworCitf
bGxpbnRfb3BfcmVzb2x2ZV9za2lwOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3NraXApCisgICAgZGlzcGF0Y2goNSkKKwor
CitfbGxpbnRfb3BfcmVzb2x2ZV9iYXNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX2Jhc2UpCisgICAgZGlzcGF0Y2goNSkK
KworCitfbGxpbnRfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0czoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZW5zdXJlX3Byb3BlcnR5X2V4
aXN0cykKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9yZXNvbHZlX3dpdGhfYmFzZToK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
cmVzb2x2ZV93aXRoX2Jhc2UpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfcmVzb2x2
ZV93aXRoX3RoaXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3Jlc29sdmVfd2l0aF90aGlzKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xs
aW50X29wX2RlbF9ieV9pZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZGVsX2J5X2lkKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX2RlbF9ieV92YWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2RlbF9ieV92YWwpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRf
b3BfcHV0X2J5X2luZGV4OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlfaW5kZXgpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxp
bnRfb3BfcHV0X2dldHRlcl9zZXR0ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9nZXR0ZXJfc2V0dGVyKQorICAgIGRpc3BhdGNo
KDUpCisKKworX2xsaW50X29wX3N3aXRjaF9zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N3aXRjaF9zdHJpbmcpCisgICAgZGlz
cGF0Y2goMCkKKworCitfbGxpbnRfb3BfbmV3X2Z1bmNfZXhwOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfZnVuY19leHApCisgICAg
ZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bfc3RyY2F0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zdHJjYXQpCisgICAgZGlzcGF0Y2go
NCkKKworCitfbGxpbnRfb3BfbWV0aG9kX2NoZWNrOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICAjIFdlIGlnbm9yZSBtZXRob2QgY2hlY2tzIGFuZCB1c2Ugbm9ybWFsIGdldF9ieV9pZCBvcHRp
bWl6YXRpb25zLgorICAgIGRpc3BhdGNoKDEpCisKKworX2xsaW50X29wX2dldF9wbmFtZXM6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dl
dF9wbmFtZXMpCisgICAgZGlzcGF0Y2goMCkgIyBUaGUgc2xvd19wYXRoIGVpdGhlciBhZHZhbmNl
cyB0aGUgUEMgb3IganVtcHMgdXMgdG8gc29tZXdoZXJlIGVsc2UuCisKKworX2xsaW50X29wX3B1
c2hfc2NvcGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX3B1c2hfc2NvcGUpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfcG9w
X3Njb3BlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9wb3Bfc2NvcGUpCisgICAgZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3BfcHVzaF9u
ZXdfc2NvcGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX3B1c2hfbmV3X3Njb3BlKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29w
X3Rocm93OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF90aHJvdykKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF90aHJvd19yZWZl
cmVuY2VfZXJyb3I6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3Rocm93X3JlZmVyZW5jZV9lcnJvcikKKyAgICBkaXNwYXRjaCgyKQorCisK
K19sbGludF9vcF9kZWJ1ZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZGVidWcpCisgICAgZGlzcGF0Y2goNCkKKworCisjIExhc3RseSwg
bWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBh
bGwgb3Bjb2Rlcy4KKyMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2lu
ZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKKyMgYXMgbXVjaC4KKworbWFjcm8gbm90
U3VwcG9ydGVkKCkKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBjcmFzaCgpCisgICAg
ZWxzZQorICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3Np
YmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCisgICAgICAgICMgZW5zdXJlIHRoYXQgdGhlcmUg
aXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMuIElmIG11bHRpcGxlCisgICAgICAg
ICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25lIHRo
YXQgaXMgbW9zdAorICAgICAgICAjIGxpa2VseSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhh
bHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCisgICAgICAgICMgaW5zdHJ1Y3Rpb24g
b24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGludDMK
KyAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12Nywg
d2hpY2ggaXMgMiBieXRlcy4pCisgICAgICAgIGJyZWFrCisgICAgZW5kCitlbmQKKworX2xsaW50
X29wX2dldF9hcnJheV9sZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dl
dF9ieV9pZF9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRf
Z2VuZXJpYzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG86
CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9zZWxmOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfc3RyaW5nX2xlbmd0aDoKKyAgICBub3RTdXBw
b3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6CisgICAgbm90U3VwcG9ydGVk
KCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgorICAgIG5vdFN1cHBvcnRlZCgpCisK
K19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCisK
KyMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KK19sbGludF9lbmQ6CisgICAgY3Jhc2goKQor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgkocmV2aXNp
b24gMTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDI5ICszMyw5IEBAIGNsYXNzIE5vZGUKIGVuZAogCiBjbGFz
cyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCi0gICAgZGVmIGluaXRpYWxpemUobmFtZSkK
LSAgICAgICAgQG5hbWUgPSBuYW1lCi0gICAgZW5kCi0gICAgCiAgICAgZGVmIGFybVY3T3BlcmFu
ZAogICAgICAgICBAbmFtZQogICAgIGVuZAotICAgIAotICAgIGRlZiBhZGRyZXNzPwotICAgICAg
ICBmYWxzZQotICAgIGVuZAotICAgIAotICAgIGRlZiBsYWJlbD8KLSAgICAgICAgZmFsc2UKLSAg
ICBlbmQKLSAgICAKLSAgICBkZWYgaW1tZWRpYXRlPwotICAgICAgICBmYWxzZQotICAgIGVuZAot
ICAgIAotICAgIGRlZiByZWdpc3Rlcj8KLSAgICAgICAgdHJ1ZQotICAgIGVuZAogZW5kCiAKIEFS
TXY3X0VYVFJBX0dQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygicjkiKSwgU3BlY2lhbFJlZ2lz
dGVyLm5ldygicjgiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjMiKV0KQEAgLTQ2OSw3ICs0NDks
NyBAQCBkZWYgYXJtVjdMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMobGlzdCkKICAgICAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZS5hcm1WN0xvd2Vy
TWFsZm9ybWVkSW1tZWRpYXRlc1JlY3Vyc2UobmV3TGlzdCkKICAgICAgICAgICAgICAgICBlbmQK
LSAgICAgICAgICAgIHdoZW4gIm11bGkiCisgICAgICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAi
CiAgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKICAg
ICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQogICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
ICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCkBAIC01MzUsOSArNTE1LDkgQEAgZGVm
IGFybVY3TG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMobGlzdCkKICAgICAgICAgaWYgbm9kZS5pc19h
PyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgcG9zdEluc3RydWN0aW9ucyA9IFtdCiAgICAgICAg
ICAgICBjYXNlIG5vZGUub3Bjb2RlCi0gICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAi
YWRkaXMiLCAiYW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAibXVsaSIsICJuZWdpIiwgIm5vdGki
LCAib3JpIiwgIm9yaXMiLAotICAgICAgICAgICAgICAgICJvcnAiLCAicnNoaWZ0aSIsICJ1cnNo
aWZ0aSIsICJzdWJpIiwgInN1YnAiLCAic3ViaXMiLCAieG9yaSIsICJ4b3JwIiwgL15iaS8sIC9e
YnAvLCAvXmJ0aS8sCi0gICAgICAgICAgICAgICAgL15idHAvLCAvXmNpLywgL15jcC8sIC9edGkv
CisgICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIsICJhbmRw
IiwgImxzaGlmdGkiLCAibXVsaSIsICJtdWxwIiwgIm5lZ2kiLCAibm90aSIsICJvcmkiLAorICAg
ICAgICAgICAgICAgICJvcmlzIiwgIm9ycCIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInN1Ymki
LCAic3VicCIsICJzdWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJpLywgL15icC8sCisgICAgICAg
ICAgICAgICAgL15idGkvLCAvXmJ0cC8sIC9eY2kvLCAvXmNwLywgL150aS8KICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJtVjdBc1JlZ2lzdGVycyhuZXdM
aXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzLCAiaSIpKQpAQCAtNjQ5LDcgKzYy
OSw3IEBAIGVuZAogIwogCiBjbGFzcyBTZXF1ZW5jZQotICAgIGRlZiBsb3dlckFSTXY3CisgICAg
ZGVmIGdldE1vZGlmaWVkTGlzdEFSTXY3CiAgICAgICAgIG15TGlzdCA9IEBsaXN0CiAgICAgICAg
IAogICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIHdpbGwgb25seSBzZWUgaW5zdHJ1Y3Rpb25zIGFu
ZCBsYWJlbHMuCkBAIC02NzMsMTAgKzY1Myw4IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgIG15
TGlzdCA9IGFybVY3TG93ZXJSZWdpc3RlclJldXNlKG15TGlzdCkKICAgICAgICAgbXlMaXN0ID0g
YXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhteUxpc3QsIDpncHIsIEFSTXY3X0VYVFJBX0dQ
UlMpCiAgICAgICAgIG15TGlzdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMobXlMaXN0
LCA6ZnByLCBBUk12N19FWFRSQV9GUFJTKQotICAgICAgICBteUxpc3QuZWFjaCB7Ci0gICAgICAg
ICAgICB8IG5vZGUgfAotICAgICAgICAgICAgbm9kZS5sb3dlcigiQVJNdjciKQotICAgICAgICB9
CisgICAgICAgIAorICAgICAgICByZXR1cm4gbXlMaXN0CiAgICAgZW5kCiBlbmQKIApAQCAtNzk4
LDcgKzc3Niw3IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21w
YWN0KCJhc3JzIiwgImFzcnMiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAidXJzaGlmdGkiCiAg
ICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJsc3JzIiwgImxzcnMiLCBvcGVyYW5kcykKLSAg
ICAgICAgd2hlbiAibXVsaSIKKyAgICAgICAgd2hlbiAibXVsaSIsICJtdWxwIgogICAgICAgICAg
ICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAyIG9yIG9wZXJhbmRzWzBdID09IG9wZXJhbmRzWzJdIG9y
IG9wZXJhbmRzWzFdID09IG9wZXJhbmRzWzJdCiAgICAgICAgICAgICAgICAgZW1pdEFybVY3KCJt
dWxzIiwgb3BlcmFuZHMpCiAgICAgICAgICAgICBlbHNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9hc20ucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXNtLnJiCShyZXZpc2lvbiAxMDk5NTgpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsxNjcs
NyBAQCBGaWxlLm9wZW4ob3V0cHV0RmxubSwgInciKSB7CiAgICAgICAgIGZvclNldHRpbmdzKGNv
bXB1dGVTZXR0aW5nc0NvbWJpbmF0aW9ucyhhc3QpW2NvbmZpZ0luZGV4XSwgYXN0KSB7CiAgICAg
ICAgICAgICB8IGNvbmNyZXRlU2V0dGluZ3MsIGxvd0xldmVsQVNULCBiYWNrZW5kIHwKICAgICAg
ICAgICAgIGxvd0xldmVsQVNUID0gbG93TGV2ZWxBU1QucmVzb2x2ZSgqYnVpbGRPZmZzZXRzTWFw
KGxvd0xldmVsQVNULCBvZmZzZXRzTGlzdCkpCisgICAgICAgICAgICBsb3dMZXZlbEFTVC52YWxp
ZGF0ZQogICAgICAgICAgICAgZW1pdENvZGVJbkNvbmZpZ3VyYXRpb24oY29uY3JldGVTZXR0aW5n
cywgbG93TGV2ZWxBU1QsIGJhY2tlbmQpIHsKICAgICAgICAgICAgICAgICAkYXNtLmluQXNtIHsK
ICAgICAgICAgICAgICAgICAgICAgbG93TGV2ZWxBU1QubG93ZXIoYmFja2VuZCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIJKHJldmlzaW9uIDEwOTk1OCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkod29ya2luZyBjb3B5KQpA
QCAtMzgzLDYgKzM4MywxNTcgQEAgY2xhc3MgTmVnSW1tZWRpYXRlIDwgTm9kZQogICAgIGVuZAog
ZW5kCiAKK2NsYXNzIE9ySW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwg
OnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQp
CisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAg
ICBAcmlnaHQgPSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAg
ICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAg
ICAgICAgT3JJbW1lZGlhdGVzLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGxlZnQpLCAoeWllbGQg
QHJpZ2h0KSkKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAorICAgICAgICAiKCN7bGVmdC5k
dW1wfSB8ICN7cmlnaHQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPwor
ICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFs
c2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAg
ZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5k
CisKK2NsYXNzIEFuZEltbWVkaWF0ZXMgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIgOmxlZnQsIDpy
aWdodAorICAgIAorICAgIGRlZiBpbml0aWFsaXplKGNvZGVPcmlnaW4sIGxlZnQsIHJpZ2h0KQor
ICAgICAgICBzdXBlcihjb2RlT3JpZ2luKQorICAgICAgICBAbGVmdCA9IGxlZnQKKyAgICAgICAg
QHJpZ2h0ID0gcmlnaHQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAg
W0BsZWZ0LCBAcmlnaHRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1hcENoaWxkcmVuCisgICAg
ICAgIEFuZEltbWVkaWF0ZXMubmV3KGNvZGVPcmlnaW4sICh5aWVsZCBAbGVmdCksICh5aWVsZCBA
cmlnaHQpKQorICAgIGVuZAorICAgIAorICAgIGRlZiBkdW1wCisgICAgICAgICIoI3tsZWZ0LmR1
bXB9ICYgI3tyaWdodC5kdW1wfSkiCisgICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJlc3M/Cisg
ICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPworICAgICAgICBmYWxz
ZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUKKyAgICBl
bmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5kCitlbmQK
KworY2xhc3MgWG9ySW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwgOnJp
Z2h0CisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQpCisg
ICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAgICBA
cmlnaHQgPSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAgICBb
QGxlZnQsIEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAg
ICAgWG9ySW1tZWRpYXRlcy5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwgKHlpZWxkIEBy
aWdodCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAgIigje2xlZnQuZHVt
cH0gXiAje3JpZ2h0LmR1bXB9KSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAg
ICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNl
CisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQorICAgIGVu
ZAorICAgIAorICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKK2VuZAor
CitjbGFzcyBCaXRub3RJbW1lZGlhdGUgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIgOmNoaWxkCisg
ICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgY2hpbGQpCisgICAgICAgIHN1cGVy
KGNvZGVPcmlnaW4pCisgICAgICAgIEBjaGlsZCA9IGNoaWxkCisgICAgZW5kCisgICAgCisgICAg
ZGVmIGNoaWxkcmVuCisgICAgICAgIFtAY2hpbGRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1h
cENoaWxkcmVuCisgICAgICAgIEJpdG5vdEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgKHlpZWxk
IEBjaGlsZCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAgIih+I3tAY2hp
bGQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxz
ZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQK
KyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5kCisgICAgCisg
ICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisKIGNsYXNzIFJl
Z2lzdGVySUQgPCBOb0NoaWxkcmVuCiAgICAgYXR0cl9yZWFkZXIgOm5hbWUKICAgICAKQEAgLTQ1
OSw2ICs2MTAsMjggQEAgY2xhc3MgRlBSZWdpc3RlcklEIDwgTm9DaGlsZHJlbgogICAgIGVuZAog
ZW5kCiAKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgaW5pdGlh
bGl6ZShuYW1lKQorICAgICAgICBAbmFtZSA9IG5hbWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYg
YWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/Cisg
ICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAg
ZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAg
ICBlbmQKK2VuZAorCiBjbGFzcyBWYXJpYWJsZSA8IE5vQ2hpbGRyZW4KICAgICBhdHRyX3JlYWRl
ciA6bmFtZQogICAgIApAQCAtNDc5LDYgKzY1MiwxMCBAQCBjbGFzcyBWYXJpYWJsZSA8IE5vQ2hp
bGRyZW4KICAgICBkZWYgZHVtcAogICAgICAgICBuYW1lCiAgICAgZW5kCisgICAgCisgICAgZGVm
IGluc3BlY3QKKyAgICAgICAgIjx2YXJpYWJsZSAje25hbWV9IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30+IgorICAgIGVuZAogZW5kCiAKIGNsYXNzIEFkZHJlc3MgPCBOb2RlCkBAIC03NTcsNiArOTM0
LDEwIEBAIGNsYXNzIExhYmVsUmVmZXJlbmNlIDwgTm9kZQogICAgIGRlZiBsYWJlbD8KICAgICAg
ICAgdHJ1ZQogICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZhbHNl
CisgICAgZW5kCiBlbmQKIAogY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8IE5vQ2hpbGRyZW4K
QEAgLTc5MCw2ICs5NzEsMTAgQEAgY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8IE5vQ2hpbGRy
ZW4KICAgICBkZWYgbGFiZWw/CiAgICAgICAgIHRydWUKICAgICBlbmQKKyAgICAKKyAgICBkZWYg
aW1tZWRpYXRlPworICAgICAgICBmYWxzZQorICAgIGVuZAogZW5kCiAKIGNsYXNzIFNlcXVlbmNl
IDwgTm9kZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMu
cmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2Vu
ZHMucmIJKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2JhY2tlbmRzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCwxMiBAQCBCQUNLRU5E
X1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoJyArIEJBCiAKIGNsYXNzIE5vZGUKICAgICBkZWYg
bG93ZXIobmFtZSkKLSAgICAgICAgJGFjdGl2ZUJhY2tlbmQgPSBuYW1lCi0gICAgICAgIHNlbmQo
Imxvd2VyIiArIG5hbWUpCisgICAgICAgIGJlZ2luCisgICAgICAgICAgICAkYWN0aXZlQmFja2Vu
ZCA9IG5hbWUKKyAgICAgICAgICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAgICAgIHJlc2N1
ZSA9PiBlCisgICAgICAgICAgICByYWlzZSAiR290IGVycm9yICN7ZX0gYXQgI3tjb2RlT3JpZ2lu
U3RyaW5nfSIKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtODcsNyArOTEsMTMgQEAg
ZW5kCiBjbGFzcyBTZXF1ZW5jZQogICAgIGRlZiBsb3dlcihuYW1lKQogICAgICAgICAkYWN0aXZl
QmFja2VuZCA9IG5hbWUKLSAgICAgICAgaWYgcmVzcG9uZF90bz8gImxvd2VyI3tuYW1lfSIKKyAg
ICAgICAgaWYgcmVzcG9uZF90bz8gImdldE1vZGlmaWVkTGlzdCN7bmFtZX0iCisgICAgICAgICAg
ICBuZXdMaXN0ID0gc2VuZCgiZ2V0TW9kaWZpZWRMaXN0I3tuYW1lfSIpCisgICAgICAgICAgICBu
ZXdMaXN0LmVhY2ggeworICAgICAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICAgICAg
bm9kZS5sb3dlcihuYW1lKQorICAgICAgICAgICAgfQorICAgICAgICBlbHNpZiByZXNwb25kX3Rv
PyAibG93ZXIje25hbWV9IgogICAgICAgICAgICAgc2VuZCgibG93ZXIje25hbWV9IikKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgQGxpc3QuZWFjaCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZpc2lvbiAxMDk5NTgp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHdv
cmtpbmcgY29weSkKQEAgLTE1OSw2ICsxNTksNyBAQCBNQUNST19JTlNUUlVDVElPTlMgPQogICAg
ICAiYnBsdCIsCiAgICAgICJicGx0ZXEiLAogICAgICAiYWRkcCIsCisgICAgICJtdWxwIiwKICAg
ICAgImFuZHAiLAogICAgICAib3JwIiwKICAgICAgInN1YnAiLApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgkocmV2aXNpb24gMTA5OTU4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDQsNyArMTA0LDcgQEAgZGVmIGxleChzdHIsIGZpbGVOYW1lKQogICAgICAgICAgICAgcmVz
dWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQm
KQogICAgICAgICB3aGVuIC9cQTo6LwogICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhD
b2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQmKQotICAgICAgICB3aGVuIC9c
QVs6LFwoXClcW1xdPVwrXC0qXS8KKyAgICAgICAgd2hlbiAvXEFbOixcKFwpXFtcXT1cK1wtflx8
Jl4qXS8KICAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXcoZmls
ZU5hbWUsIGxpbmVOdW1iZXIpLCAkJikKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFpc2Ug
IkxleGVyIGVycm9yIGF0ICN7Q29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIpLnRv
X3N9LCB1bmV4cGVjdGVkIHNlcXVlbmNlICN7c3RyWzAuLjIwXS5pbnNwZWN0fSIKQEAgLTMyMiw2
ICszMjIsOSBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgaWYgQHRva2Vuc1tAaWR4XSA9PSAiLSIK
ICAgICAgICAgICAgIEBpZHggKz0gMQogICAgICAgICAgICAgTmVnSW1tZWRpYXRlLm5ldyhAdG9r
ZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCBwYXJzZUV4cHJlc3Npb25BdG9tKQorICAgICAgICBl
bHNpZiBAdG9rZW5zW0BpZHhdID09ICJ+IgorICAgICAgICAgICAgQGlkeCArPSAxCisgICAgICAg
ICAgICBCaXRub3RJbW1lZGlhdGUubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4sIHBh
cnNlRXhwcmVzc2lvbkF0b20pCiAgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gIigiCiAg
ICAgICAgICAgICBAaWR4ICs9IDEKICAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lv
bgpAQCAtMzY1LDEwICszNjgsMTAgQEAgY2xhc3MgUGFyc2VyCiAgICAgZW5kCiAgICAgCiAgICAg
ZGVmIGNvdWxkQmVFeHByZXNzaW9uCi0gICAgICAgIEB0b2tlbnNbQGlkeF0gPT0gIi0iIG9yIEB0
b2tlbnNbQGlkeF0gPT0gInNpemVvZiIgb3IgaXNJbnRlZ2VyKEB0b2tlbnNbQGlkeF0pIG9yIGlz
VmFyaWFibGUoQHRva2Vuc1tAaWR4XSkgb3IgQHRva2Vuc1tAaWR4XSA9PSAiKCIKKyAgICAgICAg
QHRva2Vuc1tAaWR4XSA9PSAiLSIgb3IgQHRva2Vuc1tAaWR4XSA9PSAifiIgb3IgQHRva2Vuc1tA
aWR4XSA9PSAic2l6ZW9mIiBvciBpc0ludGVnZXIoQHRva2Vuc1tAaWR4XSkgb3IgaXNWYXJpYWJs
ZShAdG9rZW5zW0BpZHhdKSBvciBAdG9rZW5zW0BpZHhdID09ICIoIgogICAgIGVuZAogICAgIAot
ICAgIGRlZiBwYXJzZUV4cHJlc3Npb24KKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uQWRkCiAgICAg
ICAgIHNraXBOZXdMaW5lCiAgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbk11bAogICAg
ICAgICB3aGlsZSBAdG9rZW5zW0BpZHhdID09ICIrIiBvciBAdG9rZW5zW0BpZHhdID09ICItIgpA
QCAtMzg1LDYgKzM4OCwzMyBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgcmVzdWx0CiAgICAgZW5k
CiAgICAgCisgICAgZGVmIHBhcnNlRXhwcmVzc2lvbkFuZAorICAgICAgICBza2lwTmV3TGluZQor
ICAgICAgICByZXN1bHQgPSBwYXJzZUV4cHJlc3Npb25BZGQKKyAgICAgICAgd2hpbGUgQHRva2Vu
c1tAaWR4XSA9PSAiJiIKKyAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgcmVzdWx0
ID0gQW5kSW1tZWRpYXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcmVzdWx0
LCBwYXJzZUV4cHJlc3Npb25BZGQpCisgICAgICAgIGVuZAorICAgICAgICByZXN1bHQKKyAgICBl
bmQKKyAgICAKKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uCisgICAgICAgIHNraXBOZXdMaW5lCisg
ICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbkFuZAorICAgICAgICB3aGlsZSBAdG9rZW5z
W0BpZHhdID09ICJ8IiBvciBAdG9rZW5zW0BpZHhdID09ICJeIgorICAgICAgICAgICAgaWYgQHRv
a2Vuc1tAaWR4XSA9PSAifCIKKyAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBPckltbWVkaWF0ZXMubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmln
aW4sIHJlc3VsdCwgcGFyc2VFeHByZXNzaW9uQW5kKQorICAgICAgICAgICAgZWxzaWYgQHRva2Vu
c1tAaWR4XSA9PSAiXiIKKyAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAgICAg
ICByZXN1bHQgPSBYb3JJbW1lZGlhdGVzLm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2lu
LCByZXN1bHQsIHBhcnNlRXhwcmVzc2lvbkFuZCkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICByYWlzZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAorICAgICAgICByZXN1
bHQKKyAgICBlbmQKKyAgICAKICAgICBkZWYgcGFyc2VPcGVyYW5kKGNvbW1lbnQpCiAgICAgICAg
IHNraXBOZXdMaW5lCiAgICAgICAgIGlmIGNvdWxkQmVFeHByZXNzaW9uCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCShyZXZpc2lvbiAxMDk5
NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIJKHdv
cmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDEyIEBAIEdQUlMgPQogICAgICAicjAiLAogICAgICAi
cjEiLAogICAgICAic3AiLAotICAgICAibHIiCisgICAgICJsciIsCisgICAgIAorICAgICAjIDY0
LWJpdCBvbmx5IHJlZ2lzdGVyczoKKyAgICAgImNzcjAiLCAgIyByMTAKKyAgICAgImNzcjEiLCAg
IyByMTQsIHRhZyB0eXBlIG51bWJlciByZWdpc3RlcgorICAgICAiY3NyMiIgICAjIHIxNSwgdGFn
IG1hc2sgcmVnaXN0ZXIKICAgICBdCiAKIEZQUlMgPQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3RyYW5zZm9ybS5yYgkocmV2aXNpb24gMTA5OTU4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJiCSh3b3JraW5nIGNvcHkp
CkBAIC0zMjgsNiArMzI4LDQ0IEBAIGNsYXNzIE5lZ0ltbWVkaWF0ZQogICAgIGVuZAogZW5kCiAK
K2NsYXNzIE9ySW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQu
Zm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1
bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBA
cmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwg
QGxlZnQudmFsdWUgfCBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgQW5kSW1t
ZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAg
ICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQu
aXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8g
SW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUg
JiBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgWG9ySW1tZWRpYXRlcworICAg
IGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBA
cmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRp
YXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisg
ICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUgXiBAcmlnaHQudmFs
dWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgQml0bm90SW1tZWRpYXRlCisgICAgZGVmIGZvbGQK
KyAgICAgICAgQGNoaWxkID0gQGNoaWxkLmZvbGQKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNz
IEBjaGlsZC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2lu
LCB+QGNoaWxkLnZhbHVlKQorICAgIGVuZAorZW5kCisKICMKICMgbm9kZS5yZXNvbHZlQWZ0ZXJT
ZXR0aW5ncyhvZmZzZXRzLCBzaXplcykKICMKQEAgLTM0MCwzICszNzgsOTcgQEAgY2xhc3MgTm9k
ZQogICAgIGVuZAogZW5kCiAKKyMKKyMgbm9kZS52YWxpZGF0ZQorIworIyBDaGVja3MgdGhhdCB0
aGUgbm9kZSBpcyByZWFkeSBmb3IgYmFja2VuZCBjb21waWxhdGlvbi4KKyMKKworY2xhc3MgTm9k
ZQorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICByYWlzZSAiVW5yZXNvbHZlZCAje2R1bXB9IGF0
ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgZW5kCisgICAgCisgICAgZGVmIHZhbGlkYXRlQ2hp
bGRyZW4KKyAgICAgICAgY2hpbGRyZW4uZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAg
ICAgICAgICAgbm9kZS52YWxpZGF0ZQorICAgICAgICB9CisgICAgZW5kCitlbmQKKworY2xhc3Mg
U2VxdWVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAg
IGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAor
ZW5kCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAor
CitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitj
bGFzcyBBZGRyZXNzCisgICAgZGVmIHZhbGlkYXRlCisgICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4K
KyAgICBlbmQKK2VuZAorCitjbGFzcyBCYXNlSW5kZXgKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAg
ICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEFic29sdXRlQWRkcmVz
cworICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitl
bmQKKworY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRh
dGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEVycm9yCisgICAgZGVmIHZhbGlkYXRl
CisgICAgZW5kCitlbmQKKworY2xhc3MgTGFiZWwKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBMb2NhbExhYmVsCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQK
KworY2xhc3MgTGFiZWxSZWZlcmVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAor
CitjbGFzcyBMb2NhbExhYmVsUmVmZXJlbmNlCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitl
bmQKKworY2xhc3MgU2tpcAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHJldmlzaW9uIDEwOTk1OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkod29ya2luZyBjb3B5
KQpAQCAtMzIsMTMgKzMyLDM3IEBAIGRlZiBpc1g2NAogICAgIGVuZAogZW5kCiAKK2NsYXNzIFNw
ZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgeDg2T3BlcmFuZChraW5kKQorICAg
ICAgICByYWlzZSB1bmxlc3MgQG5hbWUgPX4gL15yLworICAgICAgICByYWlzZSB1bmxlc3MgaXNY
NjQKKyAgICAgICAgY2FzZSBraW5kCisgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICIl
IiArIEBuYW1lICsgInciCisgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgIiUiICsgQG5h
bWUgKyAiZCIKKyAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAiJSIgKyBAbmFtZQorICAg
ICAgICBlbHNlCisgICAgICAgICAgICByYWlzZQorICAgICAgICBlbmQKKyAgICBlbmQKKyAgICBk
ZWYgeDg2Q2FsbE9wZXJhbmQoa2luZCkKKyAgICAgICAgIioje3g4Nk9wZXJhbmQoa2luZCl9Igor
ICAgIGVuZAorZW5kCisKK1g2NF9TQ1JBVENIX1JFR0lTVEVSID0gU3BlY2lhbFJlZ2lzdGVyLm5l
dygicjExIikKKwogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBzdXBwb3J0czhCaXRPblg4Ngog
ICAgICAgICBjYXNlIG5hbWUKICAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiLCAidDEiLCAi
YTEiLCAicjEiLCAidDIiLCAidDMiCiAgICAgICAgICAgICB0cnVlCi0gICAgICAgIHdoZW4gInQ0
IiwgImNmciIKKyAgICAgICAgd2hlbiAiY2ZyIiwgInR0bnIiLCAidG1yIgogICAgICAgICAgICAg
ZmFsc2UKKyAgICAgICAgd2hlbiAidDQiLCAidDUiCisgICAgICAgICAgICBpc1g2NAogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICByYWlzZQogICAgICAgICBlbmQKQEAgLTExMiwxNyArMTM2LDMw
IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAg
ZW5kCiAgICAgICAgIHdoZW4gImNmciIKLSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAg
ICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgICIlZGlsIgotICAgICAgICAgICAgd2hlbiA6
aGFsZgotICAgICAgICAgICAgICAgICIlZGkiCi0gICAgICAgICAgICB3aGVuIDppbnQKLSAgICAg
ICAgICAgICAgICAiJWVkaSIKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAg
IGlzWDY0ID8gIiVyZGkiIDogIiVlZGkiCisgICAgICAgICAgICBpZiBpc1g2NAorICAgICAgICAg
ICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAg
ICAgICAgICAgIiVyMTN3IgorICAgICAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAg
ICAgICAgICAiJXIxM2QiCisgICAgICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAg
ICAgICAgICIlcjEzIgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
cmFpc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICByYWlzZQorICAgICAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgICAgIHdo
ZW4gOmJ5dGUKKyAgICAgICAgICAgICAgICAgICAgIiVkaWwiCisgICAgICAgICAgICAgICAgd2hl
biA6aGFsZgorICAgICAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAgICAgICAgIHdoZW4g
OmludAorICAgICAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAgICB3aGVuIDpw
dHIKKyAgICAgICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAg
ZW5kCiAgICAgICAgIHdoZW4gInNwIgogICAgICAgICAgICAgY2FzZSBraW5kCkBAIC0xMzcsNiAr
MTc0LDQ4IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICByYWlzZQogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAg
ICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdp
blN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAg
ICB3aGVuIDpieXRlCisgICAgICAgICAgICAgICAgIiVkaWwiCisgICAgICAgICAgICB3aGVuIDpo
YWxmCisgICAgICAgICAgICAgICAgIiVkaSIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAg
ICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAg
IiVyZGkiCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3NyMCIKKyAgICAgICAgICAg
IHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5T
dHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAg
d2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICIlcjEwdyIKKyAgICAgICAgICAgIHdoZW4gOmlu
dAorICAgICAgICAgICAgICAgICIlcjEwZCIKKyAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAg
ICAgICAgICAgICIlcjEwIgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNzcjEiCisg
ICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tj
b2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAg
ICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJXIxNHciCisgICAgICAgICAg
ICB3aGVuIDppbnQKKyAgICAgICAgICAgICAgICAiJXIxNGQiCisgICAgICAgICAgICB3aGVuIDpw
dHIKKyAgICAgICAgICAgICAgICAiJXIxNCIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVu
ICJjc3IyIgorICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQg
WDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2Fz
ZSBraW5kCisgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVyMTV3Igor
ICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVyMTVkIgorICAgICAgICAg
ICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgIiVyMTUiCisgICAgICAgICAgICBlbmQKICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBY
ODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKICAgICAgICAgZW5kCkBAIC0xNzIsNiArMjUxLDEz
IEBAIGNsYXNzIEZQUmVnaXN0ZXJJRAogZW5kCiAKIGNsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2
YWxpZFg4NkltbWVkaWF0ZT8KKyAgICAgICAgaWYgaXNYNjQKKyAgICAgICAgICAgIHZhbHVlID49
IC0weDgwMDAwMDAwIGFuZCB2YWx1ZSA8PSAweDdmZmZmZmZmCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRydWUKKyAgICAgICAgZW5kCisgICAgZW5kCiAgICAgZGVmIHg4Nk9wZXJhbmQoa2lu
ZCkKICAgICAgICAgIiQje3ZhbHVlfSIKICAgICBlbmQKQEAgLTIxMCw3ICsyOTYsNyBAQCBjbGFz
cyBCYXNlSW5kZXgKICAgICBlbmQKIAogICAgIGRlZiB4ODZDYWxsT3BlcmFuZChraW5kKQotICAg
ICAgICAiKiN7eDg2b3BlcmFuZChraW5kKX0iCisgICAgICAgICIqI3t4ODZPcGVyYW5kKGtpbmQp
fSIKICAgICBlbmQKIGVuZAogCkBAIC0yNDQsNiArMzMwLDQ3IEBAIGNsYXNzIExvY2FsTGFiZWxS
ZWZlcmVuY2UKICAgICBlbmQKIGVuZAogCitjbGFzcyBTZXF1ZW5jZQorICAgIGRlZiBnZXRNb2Rp
ZmllZExpc3RYODZfNjQKKyAgICAgICAgbmV3TGlzdCA9IFtdCisgICAgICAgIAorICAgICAgICBA
bGlzdC5lYWNoIHsKKyAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICBuZXdOb2RlID0g
bm9kZQorICAgICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAg
ICAgIHVubGVzcyBub2RlLm9wY29kZSA9PSAibW92ZSIKKyAgICAgICAgICAgICAgICAgICAgdXNl
ZFNjcmF0Y2ggPSBmYWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA9IG5vZGUu
b3BlcmFuZHMubWFwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHwgb3BlcmFuZCB8CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBvcGVyYW5kLmltbWVkaWF0ZT8gYW5kIG5vdCBvcGVyYW5k
LnZhbGlkWDg2SW1tZWRpYXRlPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHVzZWRT
Y3JhdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJBdHRlbXB0IHRv
IHVzZSBzY3JhdGNoIHJlZ2lzdGVyIHR3aWNlIGF0ICN7b3BlcmFuZC5jb2RlT3JpZ2luU3RyaW5n
fSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJt
b3ZlIiwgW29wZXJhbmQsIFg2NF9TQ1JBVENIX1JFR0lTVEVSXSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1c2VkU2NyYXRjaCA9IHRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBYNjRfU0NSQVRDSF9SRUdJU1RFUgorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmQKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVuZAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5ld05vZGUg
PSBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgbmV3T3BlcmFu
ZHMpCisgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgdW5sZXNzIG5vZGUuaXNfYT8gTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIG5v
ZGUuaXNfYT8gTG9jYWxMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19h
PyBTa2lwCisgICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkICN7bm9kZS5pbnNw
ZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0iIAorICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICBpZiBuZXdOb2RlCisgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBuZXdOb2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgcmV0dXJuIG5ld0xpc3QKKyAgICBlbmQKK2VuZAorCiBjbGFzcyBJbnN0cnVjdGlvbgogICAg
IGRlZiB4ODZPcGVyYW5kcygqa2luZHMpCiAgICAgICAgIHJhaXNlIHVubGVzcyBraW5kcy5zaXpl
ID09IG9wZXJhbmRzLnNpemUKQEAgLTQ1OCw2ICs1ODUsMTYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24K
ICAgICAgICAgZW5kCiAgICAgZW5kCiAgICAgCisgICAgZGVmIGhhbmRsZVg4Nk11bChraW5kKQor
ICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVk
aWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRzICJpbXVsI3t4ODZTdWZmaXgoa2luZCl9ICN7eDg2
T3BlcmFuZHMoa2luZCwga2luZCwga2luZCl9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAj
IEZJWE1FOiBjb3VsZCBkbyBzb21lIHBlZXBob2xlIGluIGNhc2UgdGhlIGxlZnQgb3BlcmFuZCBp
cyBpbW1lZGlhdGUgYW5kIGl0J3MKKyAgICAgICAgICAgICMgYSBwb3dlciBvZiB0d28uCisgICAg
ICAgICAgICBoYW5kbGVYODZPcCgiaW11bCN7eDg2U3VmZml4KGtpbmQpfSIsIGtpbmQpCisgICAg
ICAgIGVuZAorICAgIGVuZAorICAgIAogICAgIGRlZiBoYW5kbGVNb3ZlCiAgICAgICAgIGlmIElt
bWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVyYW5kc1swXSBhbmQgb3BlcmFuZHNbMV0uaXNfYT8g
UmVnaXN0ZXJJRAogICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0g
I3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5k
KDpwdHIpfSIKQEAgLTQ5MCwxMyArNjI3LDkgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAg
d2hlbiAibHNoaWZ0aSIKICAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYWxsIiwgOmludCkK
ICAgICAgICAgd2hlbiAibXVsaSIKLSAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBh
bmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCi0gICAgICAgICAgICAgICAgJGFzbS5wdXRz
ICJpbXVsbCAje3g4Nk9wZXJhbmRzKDppbnQsIDppbnQsIDppbnQpfSIKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21lIHBlZXBob2xlIGluIGNh
c2UgdGhlIGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MKLSAgICAgICAgICAgICAg
ICAjIGEgcG93ZXIgb2YgdHdvLgotICAgICAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJpbXVsbCIs
IDppbnQpCi0gICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGhhbmRsZVg4Nk11bCg6aW50KQor
ICAgICAgICB3aGVuICJtdWxwIgorICAgICAgICAgICAgaGFuZGxlWDg2TXVsKDpwdHIpCiAgICAg
ICAgIHdoZW4gIm5lZ2kiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm5lZ2wgI3t4ODZPcGVyYW5k
cyg6aW50KX0iCiAgICAgICAgIHdoZW4gIm5vdGkiCkBAIC01MTYsNyArNjQ5LDcgQEAgY2xhc3Mg
SW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAieG9yaSIKICAgICAgICAgICAgIGhhbmRsZVg4Nk9w
KCJ4b3JsIiwgOmludCkKICAgICAgICAgd2hlbiAieG9ycCIKLSAgICAgICAgICAgIGhhbmRsZVg4
Nk9wKCJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0iLCA6aW50KQorICAgICAgICAgICAgaGFuZGxlWDg2
T3AoInhvciN7eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gImxvYWRpIiwg
InN0b3JlaSIKICAgICAgICAgICAgICRhc20ucHV0cyAibW92bCAje3g4Nk9wZXJhbmRzKDppbnQs
IDppbnQpfSIKICAgICAgICAgd2hlbiAibG9hZHAiLCAic3RvcmVwIgpAQCAtODI1LDkgKzk1OCw5
IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgInBzcmxxICQzMiwg
JXhtbTciCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdnNkICV4bW03LCAje29wZXJhbmRzWzJd
Lng4Nk9wZXJhbmQoOmludCl9IgogICAgICAgICB3aGVuICJmcDJkIgotICAgICAgICAgICAgJGFz
bS5wdXRzICJtb3ZkICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZHMoOnB0cil9LCAje29wZXJhbmRz
WzFdLng4Nk9wZXJhbmQoOmRvdWJsZSl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZkICN7
b3BlcmFuZHNbMF0ueDg2T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6
ZG91YmxlKX0iCiAgICAgICAgIHdoZW4gImZkMnAiCi0gICAgICAgICAgICAkYXNtLnB1dHMgIm1v
dmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kcyg6ZG91YmxlKX0sICN7b3BlcmFuZHNbMV0ueDg2
T3BlcmFuZCg6cHRyKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5kc1sw
XS54ODZPcGVyYW5kKDpkb3VibGUpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIK
ICAgICAgICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImpvICN7b3BlcmFuZHNb
MF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJicyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130528</attachid>
            <date>2012-03-06 20:27:35 -0800</date>
            <delta_ts>2012-03-08 19:49:24 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_7.diff</filename>
            <type>text/plain</type>
            <size>89756</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTAyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTItMDMtMDYgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2sg
dGltZXIgc2hvdWxkIHZhcnkgd2l0aCB0aGUgbGVuZ3RoIG9mIHRoZSBwcmV2aW91cyBHQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBA
IC03MCwyOCArNzAsNiBAQAogIyBCZWxvdyB3ZSBoYXZlIGEgYnVuY2ggb2YgY29uc3RhbnQgZGVj
bGFyYXRpb25zLiBFYWNoIGNvbnN0YW50IG11c3QgaGF2ZQogIyBhIGNvcnJlc3BvbmRpbmcgQVNT
RVJUKCkgaW4gTExJbnREYXRhLmNwcC4KIAotIyBUaGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRj
aCBpbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaC4KLWNvbnN0IENhbGxGcmFtZUhlYWRlclNpemUg
PSA0OAotY29uc3QgQXJndW1lbnRDb3VudCA9IC00OAotY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAK
LWNvbnN0IENhbGxlZSA9IC0zMgotY29uc3QgU2NvcGVDaGFpbiA9IC0yNAotY29uc3QgUmV0dXJu
UEMgPSAtMTYKLWNvbnN0IENvZGVCbG9jayA9IC04Ci0KLWNvbnN0IFRoaXNBcmd1bWVudE9mZnNl
dCA9IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0gOAotCi0jIERlY2xhcmUgc29tZSBhbGlhc2VzIGZv
ciB0aGUgcmVnaXN0ZXJzIHdlIHdpbGwgdXNlLgotY29uc3QgUEMgPSB0NAotCi0jIE9mZnNldHMg
bmVlZGVkIGZvciByZWFzb25pbmcgYWJvdXQgdmFsdWUgcmVwcmVzZW50YXRpb24uCi1pZiBCSUdf
RU5ESUFOCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gMAotICAgIGNvbnN0IFBheWxvYWRPZmZzZXQg
PSA0Ci1lbHNlCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gNAotICAgIGNvbnN0IFBheWxvYWRPZmZz
ZXQgPSAwCi1lbmQKIAogIyBWYWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMuCiBjb25zdCBJ
bnQzMlRhZyA9IC0xCkBAIC0xMDMsNzEgKzgxLDggQEAgY29uc3QgRW1wdHlWYWx1ZVRhZyA9IC02
CiBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFnID0gRGVsZXRlZFZh
bHVlVGFnCiAKLSMgVHlwZSBjb25zdGFudHMuCi1jb25zdCBTdHJpbmdUeXBlID0gNQotY29uc3Qg
T2JqZWN0VHlwZSA9IDEzCi0KLSMgVHlwZSBmbGFncyBjb25zdGFudHMuCi1jb25zdCBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkID0gMQotY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMgotY29u
c3QgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDgKLQotIyBIZWFwIGFsbG9jYXRpb24g
Y29uc3RhbnRzLgotY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMwotCi0jIEJ5
dGVjb2RlIG9wZXJhbmQgY29uc3RhbnRzLgotY29uc3QgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5k
ZXggPSAweDQwMDAwMDAwCi0KLSMgQ29kZSB0eXBlIGNvbnN0YW50cy4KLWNvbnN0IEdsb2JhbENv
ZGUgPSAwCi1jb25zdCBFdmFsQ29kZSA9IDEKLWNvbnN0IEZ1bmN0aW9uQ29kZSA9IDIKLQotIyBU
aGUgaW50ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1lbnQgY291bnQu
Ci1jb25zdCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNldAotCi0jIFRo
aXMgbXVzdCBtYXRjaCB3dGYvVmVjdG9yLmguCi1jb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAot
Y29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAotCi0jIFN0cmluZyBmbGFncy4KLWNvbnN0IEhh
c2hGbGFnczhCaXRCdWZmZXIgPSA2NAogCiAjIFV0aWxpdGllcwotbWFjcm8gY3Jhc2goKQotICAg
IHN0b3JlaSAwLCAweGJiYWRiZWVmW10KLSAgICBtb3ZlIDAsIHQwCi0gICAgY2FsbCB0MAotZW5k
Ci0KLW1hY3JvIGFzc2VydChhc3NlcnRpb24pCi0gICAgaWYgQVNTRVJUX0VOQUJMRUQKLSAgICAg
ICAgYXNzZXJ0aW9uKC5vaykKLSAgICAgICAgY3Jhc2goKQotICAgIC5vazoKLSAgICBlbmQKLWVu
ZAotCi1tYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdp
c3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVy
Ci0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCi0gICAgZWxz
ZQotICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KLW1hY3JvIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQotICAgIGlmIEFSTXY3Ci0gICAgICAgIG1v
dmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHB1c2ggc291cmNl
UmVnaXN0ZXIKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi1lbmQKLQogbWFjcm8g
ZGlzcGF0Y2goYWR2YW5jZSkKICAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQwogICAgIGptcCBbUENd
CkBAIC0yMjAsOCArMTM1LDggQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBh
cmczLAogICAgIGNhbGwgZnVuY3Rpb24KIGVuZAogCi1tYWNybyBjYWxsU2xvd1BhdGgoc2xvd19w
YXRoKQotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpCittYWNybyBjYWxsU2xvd1BhdGgo
c2xvd1BhdGgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQogICAgIG1vdmUgdDAsIFBD
CiAgICAgbW92ZSB0MSwgY2ZyCiBlbmQKQEAgLTI0NSw0MCArMTYwLDE1IEBAIG1hY3JvIHRyYWNl
VmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQogICAgIG1vdmUgdDEsIGNmcgogZW5kCiAKLW1hY3Jv
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAgICAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3RyYWNlKQotICAgIGVuZAotZW5kCi0KLSMgQ2FsbCBhIHNsb3dfcGF0
aCBmb3IgY2FsbCBvcGNvZGVzLgotbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93
X3BhdGgsIGFjdGlvbikKKyMgQ2FsbCBhIHNsb3dQYXRoIGZvciBjYWxsIG9wY29kZXMuCittYWNy
byBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dQYXRoLCBhY3Rpb24pCiAgICAgYWRkcCBh
ZHZhbmNlICogNCwgUEMsIHQwCiAgICAgc3RvcmVwIHQwLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKQorICAgIGNDYWxsMihzbG93
UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQxLCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIAot
bWFjcm8gc2xvd1BhdGhGb3JDYWxsKGFkdmFuY2UsIHNsb3dfcGF0aCkKLSAgICBjYWxsQ2FsbFNs
b3dQYXRoKAotICAgICAgICBhZHZhbmNlLAotICAgICAgICBzbG93X3BhdGgsCi0gICAgICAgIG1h
Y3JvIChjYWxsZWUpCi0gICAgICAgICAgICBjYWxsIGNhbGxlZQotICAgICAgICAgICAgZGlzcGF0
Y2hBZnRlckNhbGwoKQotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gY2hlY2tTd2l0Y2hUb0pJ
VChpbmNyZW1lbnQsIGFjdGlvbikKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDAKLSAgICAgICAgYmFkZGlzIGluY3JlbWVudCwgQ29kZUJsb2NrOjpt
X2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDBdLCAu
Y29udGludWUKLSAgICAgICAgYWN0aW9uKCkKLSAgICAuY29udGludWU6Ci0gICAgZW5kCi1lbmQK
LQogbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgIGNoZWNrU3dpdGNoVG9KSVQo
CiAgICAgICAgIDEsCkBAIC0yOTMsMTggKzE4Myw2IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRG
b3JMb29wKCkKICAgICAgICAgZW5kKQogZW5kCiAKLW1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JF
cGlsb2d1ZSgpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVCgKLSAgICAgICAgMTAsCi0gICAgICAgIG1h
Y3JvICgpCi0gICAgICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlcGxhY2UpCi0gICAgICAg
IGVuZCkKLWVuZAotCi1tYWNybyBhc3NlcnROb3RDb25zdGFudChpbmRleCkKLSAgICBhc3NlcnQo
bWFjcm8gKG9rKSBiaWx0IGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgb2sgZW5k
KQotZW5kCi0KICMgSW5kZXgsIHRhZywgYW5kIHBheWxvYWQgbXVzdCBiZSBkaWZmZXJlbnQgcmVn
aXN0ZXJzLiBJbmRleCBpcyBub3QKICMgY2hhbmdlZC4KIG1hY3JvIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoaW5kZXgsIHRhZywgcGF5bG9hZCkKQEAgLTM4NiwxMDkgKzI2NCw4IEBAIG1hY3JvIHZh
bHVlUHJvZmlsZSh0YWcsIHBheWxvYWQsIHByb2ZpbGUKIGVuZAogCiAKLSMgSW5kaWNhdGUgdGhl
IGJlZ2lubmluZyBvZiBMTEludC4KLV9sbGludF9iZWdpbjoKLSAgICBjcmFzaCgpCi0KLQogIyBF
bnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlcgogCi1tYWNybyBmdW5jdGlvbkZvckNhbGxD
b2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRh
cmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJl
Z2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1f
Y29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQKLQot
bWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIp
Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5j
dGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBs
b2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3RhcmdldFJl
Z2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBub3RGdW5jdGlvbkNvZGVCbG9j
a0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFyZ2V0
UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdp
c3RlcikKLSAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCi1lbmQKLQot
bWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0gICAgIyBO
b3RoaW5nIHRvIGRvIQotZW5kCi0KLSMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBl
eGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgotIyBpbiB0
MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCi1tYWNybyBwcm9sb2d1ZShj
b2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1Bh
dGgpCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQotICAgIAotICAgICMg
U2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgotICAgIHN0
b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQotICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCi0gICAgICAg
IGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQotICAgIGVuZAotICAgIGNvZGVCbG9ja0dldHRl
cih0MSkKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjpt
X2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFdLCAu
Y29udGludWUKLSAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQotICAgICAgICBt
b3ZlIHQxLCBjZnIKLSAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKLSAgICAgICAgbG9hZHAgUmV0
dXJuUENbY2ZyXSwgdDIKLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
dDIpCi0gICAgICAgIGptcCB0MAotICAgIC5yZWNvdmVyOgotICAgICAgICBjb2RlQmxvY2tHZXR0
ZXIodDEpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotICAgIGNvZGVCbG9ja1NldHRlcih0MSkK
LSAgICAKLSAgICAjIFNldCB1cCB0aGUgUEMuCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3Ry
dWN0aW9uc1t0MV0sIFBDCi1lbmQKLQotIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQx
LCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLSMgTXVzdCBjYWxsIGRp
c3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KLW1hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRp
b24ocHJvZmlsZUFyZ1NraXApCi0gICAgaWYgVkFMVUVfUFJPRklMRVIKLSAgICAgICAgIyBQcm9m
aWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0
byBkbyB0aGlzLiBUaGlzCi0gICAgICAgICMgY29kZSBpcyBwcmV0dHkgaG9ycmVuZG91cyBiZWNh
dXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5nIGJldHdlZW4KLSAgICAgICAgIyBhcmd1
bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBzaW1wbGUgbG9v
cC1kb3duLXRvLXplcm8KLSAgICAgICAgIyBsb29wLCBhbmQgdGhlIGRlc2lyZSB0byB1c2Ugb25s
eSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2VydmUgdGhlIFBDIGFuZAotICAgICAgICAj
IHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJl
d3JpdHRlbiBpbiBhIG1vcmUKLSAgICAgICAgIyBvcHRpbWFsIHdheSBmb3IgYXJjaGl0ZWN0dXJl
cyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJsZQotICAgICAgICAj
IGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnByZXRlci4KLSAgICAgICAgbG9hZGkgQ29k
ZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAotICAgICAgICBhZGRpIC1wcm9maWxlQXJn
U2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0aGUgcGVlcGhvbGUK
LSAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVxIHQwLCAwLCBvayBlbmQpCi0gICAgICAg
IGJ0aXogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCi0gICAgICAgIGxvYWRwIENvZGVCbG9jazo6
bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDFdLCB0MwotICAg
ICAgICBtdWxpIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFhaGhoaCEgTmVlZCBz
dHJlbmd0aCByZWR1Y3Rpb24hCi0gICAgICAgIG5lZ2kgdDAKLSAgICAgICAgbHNoaWZ0aSAzLCB0
MAotICAgICAgICBhZGRwIHQyLCB0MwotICAgIC5hcmd1bWVudFByb2ZpbGVMb29wOgotICAgICAg
ICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1Nr
aXAgKiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQz
Ci0gICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxl
ICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBUYWdPZmZzZXRbdDNdCi0gICAgICAgIGxvYWRp
IFRoaXNBcmd1bWVudE9mZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAg
KiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6
ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgUGF5bG9hZE9mZnNl
dFt0M10KLSAgICAgICAgYmFkZGlueiA4LCB0MCwgLmFyZ3VtZW50UHJvZmlsZUxvb3AKLSAgICAu
YXJndW1lbnRQcm9maWxlRG9uZToKLSAgICBlbmQKLSAgICAgICAgCi0gICAgIyBDaGVjayBzdGFj
ayBoZWlnaHQuCi0gICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0s
IHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDFdLCB0MgotICAgIGxvYWRw
IEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0MiAgICMgRklYTUU6IENhbiBnZXQgdG8g
dGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFja0ZyYW1lCi0gICAgbHNoaWZ0aSAzLCB0
MAotICAgIGFkZHAgdDAsIGNmciwgdDAKLSAgICBicGFlcSBJbnRlcnByZXRlcjo6bV9yZWdpc3Rl
ckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwgdDAsIC5zdGFja0hlaWdodE9LCi0KLSAg
ICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBzbG93X3BhdGgu
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdpc3Rlcl9maWxlX2NoZWNrKQotLnN0YWNrSGVp
Z2h0T0s6Ci1lbmQKLQogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBp
cyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVj
ayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1l
bnRDb3VudFtjZnJdLCB0MApAQCAtNTA2LDM4ICsyODMsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5
Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLV9sbGludF9w
cm9ncmFtX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVy
LCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xsaW50X2V2YWxfcHJvbG9ndWU6
Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29k
ZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCi0g
ICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWU6Ci0g
ICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVC
bG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQotLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luOgot
ICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMCkKLSAgICBkaXNwYXRjaCgwKQotICAgIAotCi1f
bGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZToKLSAgICBwcm9sb2d1ZShmdW5j
dGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIs
IF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCwgX2xsaW50X3RyYWNlX3By
b2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCi0uZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdp
bjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDEpCi0gICAgZGlzcGF0Y2goMCkKLSAgICAK
LQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1
bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9s
bGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNl
X2FyaXR5Q2hlY2tfZm9yX2NhbGwpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZv
ckNhbGxCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCi0KLQotX2xsaW50
X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2s6Ci0gICAgcHJvbG9ndWUoZnVuY3Rp
b25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBf
bGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywgX2xsaW50
X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NvbnN0cnVjdCkKLSAgICBmdW5jdGlvbkFyaXR5Q2hlY2so
LmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0X2Fy
aXR5Q2hlY2spCiAKICMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCiAKQEAgLTU4MywzOSAr
MzI4LDYgQEAgX2xsaW50X29wX2NyZWF0ZV9hcmd1bWVudHM6CiAgICAgZGlzcGF0Y2goMikKIAog
Ci1tYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5mb09m
ZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2UpCi0g
ICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKLSAgICAgICAgam1wIHNsb3dDYXNlCi0gICAgZWxz
ZQotICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0KLSAgICAgICAgICAgIEpTR2xv
YmFsRGF0YTo6aGVhcCArCi0gICAgICAgICAgICBIZWFwOjptX29iamVjdFNwYWNlICsKLSAgICAg
ICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKLSAgICAgICAgICAgIE1hcmtlZFNw
YWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKwotICAgICAgICAgICAgc2l6ZUNsYXNz
SW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCi0gICAgICAgIAotICAgICAgICAjIEZJWE1F
OiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9hZCBmcm9tIHRoZSBzdGFjay4K
LSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gxCi0gICAgICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRjaDEKLSAgICAgICAgCi0gICAg
ICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LiAgICAKLSAgICAgICAgbG9h
ZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxs
W3NjcmF0Y2gxXSwgcmVzdWx0Ci0gICAgICAgIGJ0cHogcmVzdWx0LCBzbG93Q2FzZQotICAgICAg
ICAKLSAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuCi0gICAg
ICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIG9m
ZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3Jh
dGNoMV0KLSAgICAKLSAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmplY3QuCi0gICAgICAgIGxv
YWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCi0gICAgICAgIHN0b3JlcCBz
Y3JhdGNoMiwgW3Jlc3VsdF0KLSAgICAgICAgc3RvcmVwIHN0cnVjdHVyZSwgSlNDZWxsOjptX3N0
cnVjdHVyZVtyZXN1bHRdCi0gICAgICAgIHN0b3JlcCAwLCBKU09iamVjdDo6bV9pbmhlcml0b3JJ
RFtyZXN1bHRdCi0gICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0Y2gx
Ci0gICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Jl
c3VsdF0KLSAgICBlbmQKLWVuZAotCiBfbGxpbnRfb3BfY3JlYXRlX3RoaXM6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGxvYWRpIDhbUENdLCB0MApAQCAtNjc2LDI0ICszODgsNiBAQCBfbGxp
bnRfb3BfbmV3X29iamVjdDoKICAgICBkaXNwYXRjaCgyKQogCiAKLV9sbGludF9vcF9uZXdfYXJy
YXk6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25ld19hcnJheSkKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9uZXdfYXJyYXlf
YnVmZmVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29w
X25ld19yZWdleHA6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX25ld19yZWdleHApCi0gICAgZGlzcGF0Y2goMykKLQotCiBfbGxpbnRfb3Bf
bW92OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDEKQEAgLTgwMiw3
ICs0OTYsNyBAQCBfbGxpbnRfb3BfbmVxX251bGw6CiAgICAgZGlzcGF0Y2goMykKIAogCi1tYWNy
byBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gc3RyaWN0RXEo
ZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBs
b2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MywgdDEpCkBA
IC04MjIsNyArNTE2LDcgQEAgbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3df
cAogICAgIGRpc3BhdGNoKDQpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgp
CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKDQpCiBlbmQKIApAQCAt
ODM2LDMwICs1MzAsNiBAQCBfbGxpbnRfb3BfbnN0cmljdGVxOgogICAgIHN0cmljdEVxKG1hY3Jv
IChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwgX2xs
aW50X3Nsb3dfcGF0aF9uc3RyaWN0ZXEpCiAKIAotX2xsaW50X29wX2xlc3M6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3MpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbGVzc2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzZXEpCi0gICAgZGlzcGF0Y2go
NCkKLQotCi1fbGxpbnRfb3BfZ3JlYXRlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcikKLSAgICBkaXNwYXRjaCg0KQotCi0K
LV9sbGludF9vcF9ncmVhdGVyZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXJlcSkKLSAgICBkaXNwYXRjaCg0KQotCi0KIF9s
bGludF9vcF9wcmVfaW5jOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA0W1BDXSwg
dDAKQEAgLTk2OCw3ICs2MzgsNyBAQCBfbGxpbnRfb3BfbmVnYXRlOgogICAgIGRpc3BhdGNoKDMp
CiAKIAotbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUs
IGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShp
bnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAg
bG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwMDYsMTggKzY3NiwxOCBAQCBtYWNybyBiaW5hcnlP
cEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgZGlzcGF0Y2goNSkKIAogLnNsb3c6Ci0g
ICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAg
ICAgZGlzcGF0Y2goNSkKIGVuZAogCi1tYWNybyBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBk
b3VibGVPcGVyYXRpb24sIHNsb3dfcGF0aCkKK21hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRp
b24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgK
ICAgICAgICAgbWFjcm8gKGludDMyVGFnLCBsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCiAgICAg
ICAgICAgICBpbnRlZ2VyT3BlcmF0aW9uKGxlZnQsIHJpZ2h0LCBzbG93KQogICAgICAgICAgICAg
c3RvcmVpIGludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCBpbmRleCwgOF0KICAgICAgICAgICAgIHN0
b3JlaSByaWdodCwgUGF5bG9hZE9mZnNldFtjZnIsIGluZGV4LCA4XQogICAgICAgICBlbmQsCi0g
ICAgICAgIGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorICAgICAgICBkb3VibGVPcGVyYXRp
b24sIHNsb3dQYXRoKQogZW5kCiAKIF9sbGludF9vcF9hZGQ6CkBAIC0xMDczLDEzICs3NDMsNyBA
QCBfbGxpbnRfb3BfZGl2OgogICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikKIAogCi1fbGxp
bnRfb3BfbW9kOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9tb2QpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1tYWNybyBiaXRPcChvcGVyYXRp
b24sIHNsb3dfcGF0aCwgYWR2YW5jZSkKK21hY3JvIGJpdE9wKG9wZXJhdGlvbiwgc2xvd1BhdGgs
IGFkdmFuY2UpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwOTMsNyArNzU3LDcgQEAg
bWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93X3BhdGgsIGFkdmFuYwogICAgIGRpc3BhdGNoKGFk
dmFuY2UpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKGFkdmFuY2UpCiBlbmQKIApAQCAtMTE5OCw2
NiArODYyLDYgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgZGlzcGF0Y2goNSkKIAogCi1f
bGxpbnRfb3BfdHlwZW9mOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF90eXBlb2YpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3Bf
aXNfdW5kZWZpbmVkOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9pc191bmRlZmluZWQpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRf
b3BfaXNfYm9vbGVhbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfaXNfYm9vbGVhbikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9v
cF9pc19udW1iZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX2lzX251bWJlcikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9p
c19zdHJpbmc6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2lzX3N0cmluZykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19v
YmplY3Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2lzX29iamVjdCkKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19mdW5j
dGlvbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaXNfZnVuY3Rpb24pCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaW46Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lu
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3Jlc29sdmU6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmUpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcmVzb2x2ZV9za2lwOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3NraXApCi0g
ICAgZGlzcGF0Y2goNSkKLQotCiBtYWNybyByZXNvbHZlR2xvYmFsKHNpemUsIHNsb3cpCiAgICAg
IyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93czoKICAgICAjIDRbUENdICAgRGVzdGluYXRpb24gZm9y
IHRoZSBsb2FkLgpAQCAtMTQwOCwzMCArMTAxMiw2IEBAIF9sbGludF9vcF9wdXRfZ2xvYmFsX3Zh
cjoKICAgICBkaXNwYXRjaCgzKQogCiAKLV9sbGludF9vcF9yZXNvbHZlX2Jhc2U6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVf
YmFzZSkKLSAgICBkaXNwYXRjaCg1KQotCi0KLV9sbGludF9vcF9lbnN1cmVfcHJvcGVydHlfZXhp
c3RzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50
X29wX3Jlc29sdmVfd2l0aF9iYXNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfYmFzZSkKLSAgICBkaXNwYXRjaCg1
KQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3dpdGhfdGhpczoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRoX3RoaXMpCi0g
ICAgZGlzcGF0Y2goNSkKLQotCiBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIHRyYWNlRXhlY3V0
aW9uKCkKICAgICAjIFdlIG9ubHkgZG8gbW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcgZm9y
IG5vdywgYW5kIHdlIGRvIG5vdCBtb2RpZnkgdGhlCkBAIC0xNTM5LDEyICsxMTE5LDYgQEAgX2xs
aW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKICAgICAgICAgZW5kKQogCiAKLV9s
bGludF9vcF9kZWxfYnlfaWQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKLSAgICBkaXNwYXRjaCg0KQotCi0KIF9sbGlu
dF9vcF9nZXRfYnlfdmFsOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDEKQEAgLTE2NTYsMjQgKzEyMzAsNiBAQCBfbGxpbnRfb3BfcHV0X2J5X3ZhbDoK
ICAgICBkaXNwYXRjaCg0KQogCiAKLV9sbGludF9vcF9kZWxfYnlfdmFsOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxfYnlfdmFsKQot
ICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9ieV9pbmRleDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X2luZGV4
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9nZXR0ZXJfc2V0dGVyOgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRf
Z2V0dGVyX3NldHRlcikKLSAgICBkaXNwYXRjaCg1KQotCi0KIF9sbGludF9vcF9sb29wOgogICAg
IG5vcAogX2xsaW50X29wX2ptcDoKQEAgLTE5NDAsMTIgKzE0OTYsNiBAQCBfbGxpbnRfb3Bfc3dp
dGNoX2NoYXI6CiAgICAgZGlzcGF0Y2hCcmFuY2goOFtQQ10pCiAKIAotX2xsaW50X29wX3N3aXRj
aF9zdHJpbmc6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX3N3aXRjaF9zdHJpbmcpCi0gICAgZGlzcGF0Y2goMCkKLQotCiBfbGxpbnRfb3Bf
bmV3X2Z1bmM6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGJ0aXogMTJbUENdLCAub3BOZXdG
dW5jVW5jaGVja2VkCkBAIC0xOTU3LDEyICsxNTA3LDYgQEAgX2xsaW50X29wX25ld19mdW5jOgog
ICAgIGRpc3BhdGNoKDQpCiAKIAotX2xsaW50X29wX25ld19mdW5jX2V4cDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmNfZXhw
KQotICAgIGRpc3BhdGNoKDMpCi0KLQogbWFjcm8gZG9DYWxsKHNsb3dfcGF0aCkKICAgICBsb2Fk
aSA0W1BDXSwgdDAKICAgICBsb2FkaSAxNltQQ10sIHQxCkBAIC0yMTExLDE4ICsxNjU1LDYgQEAg
X2xsaW50X29wX3JldF9vYmplY3Rfb3JfdGhpczoKICAgICBkb1JldHVybigpCiAKIAotX2xsaW50
X29wX21ldGhvZF9jaGVjazoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgIyBXZSBpZ25vcmUg
bWV0aG9kIGNoZWNrcyBhbmQgdXNlIG5vcm1hbCBnZXRfYnlfaWQgb3B0aW1pemF0aW9ucy4KLSAg
ICBkaXNwYXRjaCgxKQotCi0KLV9sbGludF9vcF9zdHJjYXQ6Ci0gICAgdHJhY2VFeGVjdXRpb24o
KQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N0cmNhdCkKLSAgICBkaXNwYXRj
aCg0KQotCi0KIF9sbGludF9vcF90b19wcmltaXRpdmU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQog
ICAgIGxvYWRpIDhbUENdLCB0MgpAQCAtMjE0MSwxMiArMTY3Myw2IEBAIF9sbGludF9vcF90b19w
cmltaXRpdmU6CiAgICAgZGlzcGF0Y2goMykKIAogCi1fbGxpbnRfb3BfZ2V0X3BuYW1lczoKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0
X3BuYW1lcykKLSAgICBkaXNwYXRjaCgwKSAjIFRoZSBzbG93X3BhdGggZWl0aGVyIGFkdmFuY2Vz
IHRoZSBQQyBvciBqdW1wcyB1cyB0byBzb21ld2hlcmUgZWxzZS4KLQotCiBfbGxpbnRfb3BfbmV4
dF9wbmFtZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgMTJbUENdLCB0MQpAQCAt
MjE4NywyNCArMTcxMyw2IEBAIF9sbGludF9vcF9uZXh0X3BuYW1lOgogICAgIGRpc3BhdGNoKDAp
CiAKIAotX2xsaW50X29wX3B1c2hfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfc2NvcGUpCi0gICAgZGlzcGF0Y2goMikK
LQotCi1fbGxpbnRfb3BfcG9wX3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wb3Bfc2NvcGUpCi0gICAgZGlzcGF0Y2goMSkKLQot
Ci1fbGxpbnRfb3BfcHVzaF9uZXdfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfbmV3X3Njb3BlKQotICAgIGRpc3BhdGNo
KDQpCi0KLQogX2xsaW50X29wX2NhdGNoOgogICAgICMgVGhpcyBpcyB3aGVyZSB3ZSBlbmQgdXAg
ZnJvbSB0aGUgSklUJ3MgdGhyb3cgdHJhbXBvbGluZSAoYmVjYXVzZSB0aGUKICAgICAjIG1hY2hp
bmUgY29kZSByZXR1cm4gYWRkcmVzcyB3aWxsIGJlIHNldCB0byBfbGxpbnRfb3BfY2F0Y2gpLCBh
bmQgZnJvbQpAQCAtMjIyNiwxOCArMTczNCw2IEBAIF9sbGludF9vcF9jYXRjaDoKICAgICBkaXNw
YXRjaCgyKQogCiAKLV9sbGludF9vcF90aHJvdzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3cpCi0gICAgZGlzcGF0Y2goMikKLQot
Ci1fbGxpbnRfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9yOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvd19yZWZlcmVuY2VfZXJyb3Ip
Ci0gICAgZGlzcGF0Y2goMikKLQotCiBfbGxpbnRfb3BfanNyOgogICAgIHRyYWNlRXhlY3V0aW9u
KCkKICAgICBsb2FkaSA0W1BDXSwgdDAKQEAgLTIyNTMsMTIgKzE3NDksNiBAQCBfbGxpbnRfb3Bf
c3JldDoKICAgICBkaXNwYXRjaCgwKQogCiAKLV9sbGludF9vcF9kZWJ1ZzoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVidWcpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCiBfbGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZVtzcF0sIHQwCkBAIC0yMzAxLDcgKzE3OTEsNiBAQCBfbGxpbnRfdGhyb3dfZHVyaW5nX2Nh
bGxfdHJhbXBvbGluZToKICAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93
W3QxXSwgdDAKICAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0
MV0KIAotCiBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5j
dGlvbikKICAgICBzdG9yZXAgMCwgQ29kZUJsb2NrW2Nmcl0KICAgICBsb2FkcCBDYWxsZXJGcmFt
ZVtjZnJdLCB0MApAQCAtMjM0OSw3MSArMTgzOCwzIEBAIF9sbGludF9uYXRpdmVfY29uc3RydWN0
X3RyYW1wb2xpbmU6CiAgICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0YWJsZTo6
bV9jb25zdHJ1Y3RvcikKIAogCi0jIExhc3RseSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsg
ZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KLSMgVGhlc2Ugb3Bjb2Rl
cyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBh
c3NlcnQKLSMgYXMgbXVjaC4KLQotbWFjcm8gbm90U3VwcG9ydGVkKCkKLSAgICBpZiBBU1NFUlRf
RU5BQkxFRAotICAgICAgICBjcmFzaCgpCi0gICAgZWxzZQotICAgICAgICAjIFdlIHNob3VsZCB1
c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRv
Ci0gICAgICAgICMgZW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlv
biBsYWJlbHMuIElmIG11bHRpcGxlCi0gICAgICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4
aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25lIHRoYXQgaXMgbW9zdAotICAgICAgICAjIGxpa2Vs
eSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhl
IGJyZWFrCi0gICAgICAgICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUg
aW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGludDMKLSAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2gg
aXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRlcy4pCi0gICAgICAg
IGJyZWFrCi0gICAgZW5kCi1lbmQKLQotX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6Ci0gICAg
bm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgotICAgIG5vdFN1cHBv
cnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgp
Ci0KLV9sbGludF9vcF9nZXRfYnlfaWRfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9n
ZXRfc3RyaW5nX2xlbmd0aDoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5
X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9y
ZXBsYWNlOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNp
dGlvbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi0KLSMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTElu
dC4KLV9sbGludF9lbmQ6Ci0gICAgY3Jhc2goKQotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24g
MTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDk4OSBAQAogIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIAotIyBOb3Qgc3VwcG9ydGVkIHlldCwgc28gZ2l2ZSB1
cC4KLWVycm9yCisjIFNvbWUgdmFsdWUgcmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgorY29uc3Qg
VGFnQml0VHlwZU90aGVyID0gMHgyCitjb25zdCBUYWdCaXRCb29sICAgICAgPSAweDQKK2NvbnN0
IFRhZ0JpdFVuZGVmaW5lZCA9IDB4OAorY29uc3QgVmFsdWVFbXB0eSAgICAgID0gMHgwCitjb25z
dCBWYWx1ZUZhbHNlICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sCitjb25zdCBW
YWx1ZVRydWUgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sIHwgMQorY29uc3Qg
VmFsdWVVbmRlZmluZWQgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkCitjb25z
dCBWYWx1ZU51bGwgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIKKworIyBVdGlsaXRpZXMuCittYWNy
byBkaXNwYXRjaChhZHZhbmNlKQorICAgIGFkZGkgYWR2YW5jZSwgUEMKKyAgICBqbXAgW1BCLCBQ
QywgOF0KK2VuZAorCittYWNybyBkaXNwYXRjaEJyYW5jaChwY09mZnNldCkKKyAgICBsb2FkaSBw
Y09mZnNldCwgdDAKKyAgICBkaXNwYXRjaCh0MCkKK2VuZAorCittYWNybyBkaXNwYXRjaEFmdGVy
Q2FsbCgpCisgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQworICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVj
dGlvbnNbUEJdLCBQQgorICAgIGptcCBbUEIsIFBDLCA4XQorZW5kCisKK21hY3JvIGNDYWxsMihm
dW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICBtb3ZlIGFyZzEsIHQwCisgICAgbW92ZSBhcmcyLCB0
MQorICAgIGNhbGwgZnVuY3Rpb24KK2VuZAorCisjIFRoaXMgYmFyZWx5IHdvcmtzLiBhcmczIGFu
ZCBhcmc0IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgorbWFjcm8gY0NhbGw0KGZ1bmN0
aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQorICAgIG1vdmUgYXJnMSwgdDAKKyAgICBtb3Zl
IGFyZzIsIHQxCisgICAgbW92ZSBhcmczLCB0MgorICAgIG1vdmUgYXJnNCwgdDMKKyAgICBjYWxs
IGZ1bmN0aW9uCitlbmQKKworbWFjcm8gcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGxlYXAg
W1BCLCBQQywgOF0sIFBDCitlbmQKKworbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisg
ICAgbW92ZSB0MCwgUEMKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBzdWJwIFBCLCBQQworICAgIHVy
c2hpZnRpIDMsIFBDCitlbmQKKworbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIHBy
ZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCisgICAg
cmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKworbWFjcm8gdHJhY2VPcGVyYW5kKGZyb21X
aGVyZSwgb3BlcmFuZCkKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGw0KF9s
bGludF90cmFjZV9vcGVyYW5kLCBjZnIsIFBDLCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcmVz
dG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKworbWFjcm8gdHJhY2VWYWx1ZShmcm9tV2hlcmUs
IG9wZXJhbmQpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsNChfbGxpbnRf
dHJhY2VfdmFsdWUsIGNmciwgUEMsIGZyb21XaGVyZSwgb3BlcmFuZCkKKyAgICByZXN0b3JlU3Rh
dGVBZnRlckNDYWxsKCkKK2VuZAorCisjIENhbGwgYSBzbG93IHBhdGggZm9yIGNhbGwgY2FsbCBv
cGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9u
KQorICAgIGFkZGkgYWR2YW5jZSwgUEMsIHQwCisgICAgc3RvcmVpIHQwLCBBcmd1bWVudENvdW50
ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGwy
KHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIG1vdmUgdDEsIGNmcgorICAgIGFjdGlvbih0MCkKK2Vu
ZAorCittYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCisgICAgY2hlY2tTd2l0Y2hUb0pJ
VCgKKyAgICAgICAgMSwKKyAgICAgICAgbWFjcm8oKQorICAgICAgICAgICAgc3RvcmVpIFBDLCBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICAgICAgICAgIHByZXBhcmVTdGF0ZUZv
ckNDYWxsKCkKKyAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCisg
ICAgICAgICAgICBtb3ZlIHQxLCBjZnIKKyAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisg
ICAgICAgICAgICBqbXAgdDAKKyAgICAgICAgLnJlY292ZXI6CisgICAgICAgICAgICBsb2FkcCBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCisgICAgICAgIGVuZCkKK2VuZAorCisj
IEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3RlcnMuIEluZGV4IG1heSBi
ZSBjbG9iYmVyZWQuCittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB2YWx1ZSkK
KyAgICBicGd0ZXEgaW5kZXgsIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCAuY29uc3RhbnQK
KyAgICBsb2FkcCBbY2ZyLCBpbmRleCwgOF0sIHZhbHVlCisgICAgam1wIC5kb25lCisuY29uc3Rh
bnQ6CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHZhbHVlCisgICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2NvbnN0YW50UmVnaXN0ZXJzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3ZhbHVlXSwgdmFsdWUK
KyAgICBzdWJwIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCBpbmRleAorICAgIGxvYWRwIFt2
YWx1ZSwgaW5kZXgsIDhdLCB2YWx1ZQorLmRvbmU6CitlbmQKKworbWFjcm8gbG9hZENvbnN0YW50
T3JWYXJpYWJsZUludDMyKGluZGV4LCB2YWx1ZSwgc2xvdykKKyAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBicGIgdmFsdWUsIHRhZ1R5cGVOdW1iZXIsIHNsb3cK
K2VuZAorCittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChpbmRleCwgdmFsdWUsIHNs
b3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUpCisgICAgYnRwbnog
dmFsdWUsIHRhZ01hc2ssIHNsb3cKK2VuZAorCittYWNybyB3cml0ZUJhcnJpZXIodmFsdWUpCisg
ICAgIyBOb3RoaW5nIHRvIGRvLCBzaW5jZSB3ZSBkb24ndCBoYXZlIGEgZ2VuZXJhdGlvbmFsIG9y
IGluY3JlbWVudGFsIGNvbGxlY3Rvci4KK2VuZAorCittYWNybyB2YWx1ZVByb2ZpbGUodmFsdWUs
IHByb2ZpbGUpCisgICAgaWYgVkFMVUVfUFJPRklMRVIKKyAgICAgICAgc3RvcmVwIHZhbHVlLCBW
YWx1ZVByb2ZpbGU6Om1fYnVja2V0c1twcm9maWxlXQorICAgIGVuZAorZW5kCisKKworIyBFbnRy
eXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlci4KKworIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2Nr
IGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KK21hY3Jv
IGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKKyAgICBsb2FkaSBQYXls
b2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MAorICAgIGJpYWVxIHQwLCBDb2RlQmxv
Y2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJlbAorICAgIHByZXBhcmVTdGF0ZUZvckND
YWxsKCkKKyAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKSAgICMgVGhpcyBzbG93X3BhdGgg
aGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJy
b3IKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBidGl6IHQwLCAuY29udGludWUKKyAgICBsb2FkcCBK
SVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDEKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6
OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRN
YWNoaW5lUENGb3JUaHJvd1t0MV0KKy5jb250aW51ZToKKyAgICAjIFJlbG9hZCBDb2RlQmxvY2sg
YW5kIHJlc2V0IFBDLCBzaW5jZSB0aGUgc2xvd19wYXRoIGNsb2JiZXJlZCB0aGVtLgorICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlv
bnNbdDFdLCBQQgorICAgIG1vdmUgMCwgUEMKKyAgICBqbXAgZG9uZUxhYmVsCitlbmQKKworCisj
IEluc3RydWN0aW9uIGltcGxlbWVudGF0aW9ucworCitfbGxpbnRfb3BfZW50ZXI6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRpIENv
ZGVCbG9jazo6bV9udW1WYXJzW3QyXSwgdDIKKyAgICBidGl6IHQyLCAub3BFbnRyeURvbmUKKyAg
ICBtb3ZlIFZhbHVlVW5kZWZpbmVkLCB0MAorLm9wRW50ZXJMb29wOgorICAgIHN1YmkgMSwgdDIK
KyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIGJ0aW56IHQyLCAub3BFbnRlckxvb3AK
Ky5vcEVudGVyRG9uZToKKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9vcF9jcmVhdGVfYWN0
aXZhdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0
MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4XSwgVmFsdWVFbXB0eSwgLm9wQ3JlYXRlQWN0aXZhdGlv
bkRvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jcmVhdGVfYWN0aXZhaXRv
bikKKy5vcENyZWF0ZUFjdGl2YXRpb25Eb25lOgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50
X29wX2luaXRfbGF6eV9yZWc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIs
IFBDLCA4XSwgdDAKKyAgICBzdG9yZXAgVmFsdWVFbXB0eSwgW2NmciwgdDAsIDhdCisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfY3JlYXRlX2FyZ3VtZW50czoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4
XSwgVmFsdWVFbXB0eSwgLm9wQ3JlYXRlQXJndW1lbnRzRG9uZQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2NyZWF0ZV9hcmd1bWVudHMpCisub3BDcmVhdGVBcmd1bWVudHNEb25l
OgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2NyZWF0ZV90aGlzOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MAorICAgIGFzc2VydE5vdENv
bnN0YW50KHQwKQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFn
TWFzaywgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3Qw
XSwgdDEKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0
MV0sIE9iamVjdFR5cGUsIC5vcENyZWF0ZVRoaXNTbG93CisgICAgbG9hZHAgSlNPYmplY3Q6Om1f
aW5oZXJpdG9ySURbdDBdLCB0MgorICAgIGJ0cHogdDIsIC5vcENyZWF0ZVRoaXNTbG93CisgICAg
YWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCwgSlNHbG9i
YWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MiwgdDAsIHQxLCB0MywgLm9wQ3JlYXRl
VGhpc1Nsb3cpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MCwgW2Nm
ciwgdDEsIDhdCisgICAgZGlzcGF0Y2goOCkKKworLm9wQ3JlYXRlVGhpc1Nsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX3RoaXMpCisgICAgZGlzcGF0Y2goMykK
KworCitfbGxpbnRfb3BfZ2V0X2NhbGxlZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9h
ZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MQorICAgIHN0b3Jl
cCB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfY29udmVy
dF90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQw
CisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAub3BD
b252ZXJ0VGhpc1Nsb3cKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKKyAg
ICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0MF0sIE9iamVj
dFR5cGUsIC5vcENvbnZlcnRUaGlzU2xvdworICAgIGRpc3BhdGNoKDIpCisKKy5vcENvbnZlcnRU
aGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jb252ZXJ0X3RoaXMp
CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfbmV3X29iamVjdDoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJs
b2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1f
ZW1wdHlPYmplY3RTdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChK
U0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENs
YXNzSW5mbywgdDEsIHQwLCB0MiwgdDMsIC5vcE5ld09iamVjdFNsb3cpCisgICAgbG9hZGkgOFtQ
QiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2go
MikKKworLm9wTmV3T2JqZWN0U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9uZXdfb2JqZWN0KQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX21vdjoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaSA4
W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDIpCisgICAg
c3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9u
b3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisg
ICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAs
IHQyKQorICAgIHhvcnAgVmFsdWVGYWxzZSwgdDIKKyAgICBidHBueiB0MiwgfjEsIC5vcE5vdFNs
b3cKKyAgICB4b3JwIFZhbHVlVHJ1ZSwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQor
ICAgIGRpc3BhdGNoKDMpCisKKy5vcE5vdFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfbm90KQorICAgIGRpc3BhdGNoKDMpCisKKworbWFjcm8gZXF1YWxpdHlDb21wYXJp
c29uKGludGVnZXJDb21wYXJpc29uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0Mgor
ICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50
MzIodDAsIHQxLCAuc2xvdykKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDIsIHQw
LCAuc2xvdykKKyAgICBpbnRlZ2VyQ29tcGFyaXNvbih0MCwgdDEsIHQwKQorICAgIG9ycCBWYWx1
ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkK
KworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDQpCitl
bmQKKworX2xsaW50X29wX2VxOgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigKKyAgICAgICAgbWFj
cm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisg
ICAgICAgIF9sbGludF9zbG93X3BhdGhfZXEpCisKKworX2xsaW50X29wX25lcToKKyAgICBlcXVh
bGl0eUNvbXBhcmlzb24oCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5l
cSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9lcSkK
KworCittYWNybyBlcXVhbE51bGxDb21wYXJpc29uKCkKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhd
LCB0MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywg
LmltbWVkaWF0ZQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIHRi
bnogU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3NbdDJdLCBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkLCB0MAorICAgIGptcCAuZG9uZQorLmltbWVkaWF0ZToKKyAgICBhbmRw
IH5UYWdCaXRVbmRlZmluZWQsIHQwCisgICAgY3BlcSB0MCwgVmFsdWVOdWxsLCB0MAorLmRvbmU6
CitlbmQKKworX2xsaW50X29wX2VxX251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVx
dWFsTnVsbENvbXBhcmlzb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAg
VmFsdWVGYWxzZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNo
KDMpCisKKworX2xsaW50X29wX25lcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBl
cXVhbE51bGxDb21wYXJpc29uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgeG9y
cCBWYWx1ZVRydWUsIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRj
aCgzKQorCisKK21hY3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93UGF0aCkKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2Fk
aSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxKQor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIG1vdmUgdDAsIHQyCisgICAg
b3JwIHQxLCB0MgorICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5zbG93CisgICAgYnBhZXEgdDAsIHRh
Z1R5cGVOdW1iZXIsIC5sZWZ0T0sKKyAgICBidHBueiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cK
Ky5sZWZ0T0s6CisgICAgYnBhZXEgdDEsIHRhZ1R5cGVOdW1iZXIsIC5yaWdodE9LCisgICAgYnRw
bnogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisucmlnaHRPSzoKKyAgICBlcXVhbGl0eU9wZXJh
dGlvbih0MCwgdDEsIHQwKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAgVmFs
dWVGYWxzZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDQp
CisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCg0KQor
ZW5kCisKK19sbGludF9vcF9zdHJpY3RlcToKKyAgICBzdHJpY3RFcSgKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNwZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAg
ICAgIF9sbGludF9zbG93X3BhdGhfc3RyaWN0X2VxKQorCisKK19sbGludF9vcF9uc3RyaWN0ZXE6
CisgICAgc3RyaWN0RXEoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjcG5l
cSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9zdHJp
Y3RfZXEpCisKKworbWFjcm8gcHJlT3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2Fk
cCBbY2ZyLCB0MCwgOF0sIHQxCisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAg
IGFyaXRobWV0aWNPcGVyYXRpb24odDEsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0
MQorICAgIHN0b3JlcCB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikKKworLnNsb3c6
CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDIpCitlbmQKKworX2xs
aW50X29wX3ByZV9pbmM6CisgICAgcHJlT3AoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykg
YmFkZGlvIDEsIHZhbHVlLCBzbG93IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wcmVf
aW5jKQorCisKK19sbGludF9vcF9wcmVfZGVjOgorICAgIHByZU9wKAorICAgICAgICBtYWNybyAo
dmFsdWUsIHNsb3cpIGJzdWJpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9z
bG93X3BhdGhfcHJlX2luYykKKworCittYWNybyBwb3N0T3AoYXJpdGhtZXRpY09wZXJhdGlvbiwg
c2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0s
IHQwCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwg
dDIKKyAgICBiaWVxIHQwLCB0MSwgLmRvbmUKKyAgICBicGIgdDIsIHRhZ1R5cGVOdW1iZXIsIC5z
bG93CisgICAgbW92ZSB0MiwgdDMKKyAgICBhcml0aG1ldGljT3BlcmF0aW9uKHQzLCAuc2xvdykK
KyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDMKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQor
ICAgIHN0b3JlcCB0MywgW2NmciwgdDAsIDhdCisuZG9uZToKKyAgICBkaXNwYXRjaCgzKQorCisu
c2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goMykKK2VuZAor
CitfbGxpbnRfb3BfcG9zdF9pbmM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNybyAodmFsdWUs
IHNsb3cpIGJhZGRpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3Bh
dGhfcG9zdF9pbmMpCisKKworX2xsaW50X29wX3Bvc3RfZGVjOgorICAgIHBvc3RPcCgKKyAgICAg
ICAgbWFjcm8gKHZhbHVlLCBzbG93KSBic3ViaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX3Bvc3RfZGVjKQorCisKK19sbGludF9vcF90b19qc251bWJlcjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBs
b2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIp
CisgICAgYnBhZXEgdDIsIHRhZ1R5cGVOdW1iZXIsIC5vcFRvSnNudW1iZXJJc0ltbWVkaWF0ZQor
ICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5vcFRvSnNOdW1iZXJTbG93Cisub3BUb0pzbnVtYmVySXNJ
bW1lZGlhdGU6CisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQor
Cisub3BUb0pzbnVtYmVyU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90
b19qc251bWJlcikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9uZWdhdGU6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkg
OFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAg
IGJwYiB0MiwgdGFnVHlwZU51bWJlciwgLm9wTmVnYXRlTm90SW50CisgICAgYnRpeiB0MiwgMHg3
ZmZmZmZmZiwgLm9wTmVnYXRlU2xvdworICAgIG5lZ2kgdDIKKyAgICBvcnAgdGFnVHlwZU51bWJl
ciwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisub3BO
ZWdhdGVOb3RJbnQ6CisgICAgYnRweiB0MiwgdGFnVHlwZU51bWJlciwgLm9wTmVnYXRlU2xvdwor
ICAgIHhvcnAgMHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEs
IDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wTmVnYXRlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9uZWdhdGUpCisgICAgZGlzcGF0Y2goMykKKworCittYWNybyBiaW5h
cnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9u
LCBzbG93UGF0aCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDE2W1BC
LCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnBiIHQwLCB0YWdUeXBlTnVtYmVyLCAu
b3AxTm90SW50CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50CisgICAgbG9h
ZGkgOFtQQiwgUEMsIDhdLCB0MgorICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAs
IC5zbG93LCB0MikKKyAgICBkaXNwYXRjaCg1KQorCisub3AxTm90SW50OgorICAgICMgRmlyc3Qg
b3BlcmFuZCBpcyBkZWZpbml0ZWx5IG5vdCBhbiBpbnQsIHRoZSBzZWNvbmQgb3BlcmFuZCBjb3Vs
ZCBiZSBhbnl0aGluZy4KKyAgICBidHB6IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGJw
YiB0MSwgdGFnVHlwZU51bWJlciwgLm9wMU5vdEludE9wMkludAorICAgIGJ0cHogdDEsIHRhZ1R5
cGVOdW1iZXIsIC5zbG93CisgICAgZnAyZCB0MSwgZnQxCisgICAgam1wIC5vcDFOb3RJbnRSZWFk
eQorLm9wMU5vdEludE9wMkludDoKKyAgICBjaTJkIHQxLCBmdDEKKy5vcDFOb3RJbnRSZWFkeToK
KyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisgICAgZnAyZCB0MCwgZnQwCisgICAgZG91Ymxl
T3BlcmF0aW9uKGZ0MSwgZnQwKQorICAgIHN0b3JlZCBmdDAsIFtjZnIsIHQyLCA4XQorICAgIGRp
c3BhdGNoKDUpCisKKy5vcDJOb3RJbnQ6CisgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRl
bHkgYW4gaW50LCB0aGUgc2Vjb25kIGlzIGRlZmluaXRlbHkgbm90LgorICAgIGxvYWRpIDhbUEIs
IFBDLCA4XSwgdDIKKyAgICBidHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGNpMmQg
dDAsIGZ0MAorICAgIGZwMmQgdDEsIGZ0MQorICAgIGRvdWJsZU9wZXJhdGlvbihmdDEsIGZ0MCkK
KyAgICBzdG9yZWQgZnQwLCBbY2ZyLCB0MiwgOF0KKyAgICBkaXNwYXRjaCg1KQorCisuc2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goNSkKK2VuZAorCittYWNy
byBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBkb3VibGVPcGVyYXRpb24sIHNsb3dQYXRoKQor
ICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xv
dywgaW5kZXgpCisgICAgICAgICAgICBpbnRlZ2VyT3BlcmF0aW9uKGxlZnQsIHJpZ2h0LCBzbG93
KQorICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHJpZ2h0CisgICAgICAgICAgICBzdG9y
ZXAgcmlnaHQsIFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisgICAgICAgIGRvdWJsZU9w
ZXJhdGlvbiwgc2xvd1BhdGgpCitlbmQKKworX2xsaW50X29wX2FkZDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgYmluYXJ5T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykg
YmFkZGlvIGxlZnQsIHJpZ2h0LCBzbG93IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
KSBhZGRkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9hZGQpCisK
KworX2xsaW50X29wX211bDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5T3BDdXN0
b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93LCBpbmRleCkKKyAgICAg
ICAgICAgICMgQXNzdW1lIHQzIGlzIHNjcmF0Y2hhYmxlLgorICAgICAgICAgICAgbW92ZSByaWdo
dCwgdDMKKyAgICAgICAgICAgIGJtdWxpbyBsZWZ0LCB0Mywgc2xvdworICAgICAgICAgICAgYnRp
bnogdDMsIC5kb25lCisgICAgICAgICAgICBiaWx0IGxlZnQsIDAsIHNsb3cKKyAgICAgICAgICAg
IGJpbHQgcmlnaHQsIDAsIHNsb3cKKyAgICAgICAgLmRvbmU6CisgICAgICAgICAgICBvcnAgdGFn
VHlwZU51bWJlciwgdDMKKyAgICAgICAgICAgIHN0b3JlcCB0MywgW2NmciwgaW5kZXgsIDhdCisg
ICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBtdWxkIGxlZnQsIHJpZ2h0
IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9tdWwpCisKKworX2xsaW50X29wX3N1YjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5T3AoCisgICAgICAgIG1hY3JvIChsZWZ0
LCByaWdodCwgc2xvdykgYnN1YmlvIGxlZnQsIHJpZ2h0LCBzbG93IGVuZCwKKyAgICAgICAgbWFj
cm8gKGxlZnQsIHJpZ2h0KSBzdWJkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9zdWIpCisKKworX2xsaW50X29wX2RpdjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgYmluYXJ5T3BDdXN0b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93
LCBpbmRleCkKKyAgICAgICAgICAgICMgQXNzdW1lIHQzIGlzIHNjcmF0Y2hhYmxlLgorICAgICAg
ICAgICAgYnRpeiBsZWZ0LCBzbG93CisgICAgICAgICAgICBidGlueiByaWdodCwgLmludE9LCisg
ICAgICAgICAgICBiaWx0IGxlZnQsIDAsIHNsb3cKKyAgICAgICAgLmludE9LOgorICAgICAgICAg
ICAgbW92ZSBsZWZ0LCB0MworICAgICAgICAgICAgbW92ZSByaWdodCwgdDAKKyAgICAgICAgICAg
IGNkcWkKKyAgICAgICAgICAgIGlkaXZpIHQzCisgICAgICAgICAgICBidGlueiB0MSwgc2xvdwor
ICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgICAgICAgICBzdG9yZXAgdDAs
IFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCkgZGl2ZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfZGl2KQor
CisKK21hY3JvIGJpdE9wKG9wZXJhdGlvbiwgc2xvd1BhdGgsIGFkdmFuY2UpCisgICAgbG9hZGkg
MjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRp
IDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MSkKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1i
ZXIsIC5zbG93CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIG9wZXJhdGlv
bih0MSwgdDAsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MAorICAgIHN0b3JlcCB0
MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goYWR2YW5jZSkKKworLnNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKGFkdmFuY2UpCitlbmQKKworX2xsaW50
X29wX2xzaGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgc2xvdykgbHNoaWZ0aSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAg
IF9sbGludF9zbG93X3BhdGhfbHNoaWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF9yc2hp
ZnQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHNsb3cpIHJzaGlmdGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3JzaGlmdCwKKyAgICAgICAgNCkKKworCitfbGxpbnRfb3BfdXJzaGlmdDoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgc2xvdykKKyAgICAgICAgICAgIHVyc2hpZnRpIGxlZnQsIHJpZ2h0CisgICAgICAgICAgICBi
aWx0IHJpZ2h0LCAwLCBzbG93CisgICAgICAgIGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF91cnNoaWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF9iaXRhbmQ6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cp
IGFuZGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdGFuZCwK
KyAgICAgICAgNSkKKworCitfbGxpbnRfb3BfYml0eG9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSB4b3JpIGxlZnQs
IHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9iaXR4b3IsCisgICAgICAgIDUp
CisKKworX2xsaW50X29wX2JpdG9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgK
KyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBvcmkgbGVmdCwgcmlnaHQgZW5kLAor
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdG9yLAorICAgICAgICA1KQorCisKK19sbGludF9v
cF9jaGVja19oYXNfaW5zdGFuY2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhb
UEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MSwgdDAsIC5v
cENoZWNrSGFzSW5zdGFuY2VTbG93KQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBd
LCB0MAorICAgIGJ0YnogU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3Nb
dDBdLCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93CisgICAg
ZGlzcGF0Y2goMikKKworLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6CisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKQorICAgIGRpc3BhdGNoKDIpCisK
KworX2xsaW50X29wX2luc3RhbmNlb2Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgQ2hl
Y2sgdGhhdCBiYXNlVmFsIGltcGxlbWVudHMgdGhlIGRlZmF1bHQgSGFzSW5zdGFuY2UgYmVoYXZp
b3IuCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGVwcmVjYXRlZC4KKyAgICBsb2FkaSAy
NFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAg
IGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MAorICAgIGJ0YnogU3RydWN0dXJlOjpt
X3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0lu
c3RhbmNlLCAub3BJbnN0YW5jZW9mU2xvdworICAgIAorICAgICMgQWN0dWFsbHkgZG8gdGhlIHdv
cmsuCisgICAgbG9hZGkgMzJbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0s
IHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQxLCAub3BJbnN0YW5jZW9m
U2xvdykKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QxXSwgdDIKKyAgICBiYmIgU3Ry
dWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0Ml0sIE9iamVjdFR5cGUsIC5v
cEluc3RhbmNlb2ZTbG93CisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDIsIC5vcEluc3RhbmNlb2ZTbG93KQorICAgIAorICAg
ICMgUmVnaXN0ZXIgc3RhdGU6IHQxID0gcHJvdG90eXBlLCB0MiA9IHZhbHVlCisgICAgbW92ZSAx
LCB0MAorLm9wSW5zdGFuY2VvZkxvb3A6CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0
Ml0sIHQyCisgICAgbG9hZHAgU3RydWN0dXJlOjptX3Byb3RvdHlwZVt0Ml0sIHQyCisgICAgYnBl
cSB0MiwgdDEsIC5vcEluc3RhbmNlb2ZEb25lCisgICAgYnRweiB0MiwgdGFnTWFzaywgLm9wSW5z
dGFuY2VvZkxvb3AKKworICAgIG1vdmUgMCwgdDAKKy5vcEluc3RhbmNlb2ZEb25lOgorICAgIG9y
cCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0
Y2goNSkKKworLm9wSW5zdGFuY2VvZlNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaW5zdGFuY2VvZikKKyAgICBkaXNwYXRjaCg1KQorCisKK21hY3JvIHJlc29sdmVHbG9i
YWwoc2l6ZSwgc2xvdykKKyAgICAjIE9wZXJhbmRzIGFyZSBhcyBmb2xsb3dzOgorICAgICMgOFtQ
QiwgUEMsIDhdICAgRGVzdGluYXRpb24gZm9yIHRoZSBsb2FkLgorICAgICMgMTZbUEIsIFBDLCA4
XSAgUHJvcGVydHkgaWRlbnRpZmllciBpbmRleCBpbiB0aGUgY29kZSBibG9jay4KKyAgICAjIDI0
W1BCLCBQQywgOF0gIFN0cnVjdHVyZSBwb2ludGVyLCBpbml0aWFsaXplZCB0byAwIGJ5IGJ5dGVj
b2RlIGdlbmVyYXRvci4KKyAgICAjIDMyW1BCLCBQQywgOF0gIE9mZnNldCBpbiBnbG9iYWwgb2Jq
ZWN0LCBpbml0aWFsaXplZCB0byAwIGJ5IGJ5dGVjb2RlIGdlbmVyYXRvci4KKyAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3Qw
XSwgdDAKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEKKyAgICBicG5lcSB0
MSwgMjRbUEIsIFBDLCA4XSwgc2xvdworICAgIGxvYWRpIDMyW1BCLCBQQywgOF0sIHQxCisgICAg
bG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3QwXSwgdDAKKyAgICBsb2FkcCBbdDAs
IHQxLCA4XSwgdDIKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgc3RvcmVwIHQyLCBb
Y2ZyLCB0MCwgOF0KKyAgICBsb2FkaSAoc2l6ZSAtIDEpICogOFtQQiwgUEMsIDhdLCB0MAorICAg
IHZhbHVlUHJvZmlsZSh0MiwgdDApCitlbmQKKworX2xsaW50X29wX3Jlc29sdmVfZ2xvYmFsOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICByZXNvbHZlR2xvYmFsKDYsIC5vcFJlc29sdmVHbG9i
YWxTbG93KQorICAgIGRpc3BhdGNoKDYpCisKKy5vcFJlc29sdmVHbG9iYWxTbG93OgorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZ2xvYmFsKQorICAgIGRpc3BhdGNo
KDYpCisKKworIyBHaXZlcyB5b3UgdGhlIHNjb3BlIGluIHQwLCB3aGlsZSBhbGxvd2luZyB5b3Ug
dG8gb3B0aW9uYWxseSBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIG9uIHRoZQorIyBzY29wZXMg
YXMgdGhleSBhcmUgdHJhdmVyc2VkLiBzY29wZUNoZWNrKCkgaXMgY2FsbGVkIHdpdGggdHdvIGFy
Z3VtZW50czogdGhlIHJlZ2lzdGVyCisjIGhvbGRpbmcgdGhlIHNjb3BlLCBhbmQgYSByZWdpc3Rl
ciB0aGF0IGNhbiBiZSB1c2VkIGZvciBzY3JhdGNoLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdAor
IyB1c2UgdDMsIHNvIHlvdSBjYW4gaG9sZCBzdHVmZiBpbiB0MyBpZiBuZWVkIGJlLgorbWFjcm8g
Z2V0U2NvcGUoZGVCcnVpamluSW5kZXhPcGVyYW5kLCBzY29wZUNoZWNrKQorICAgIGxvYWRwIFNj
b3BlQ2hhaW5bY2ZyXSwgdDAKKyAgICBsb2FkaSBkZUJydWlqaW5JbmRleE9wZXJhbmQsIHQyCisg
ICAgCisgICAgYnRpeiB0MiwgLmRvbmUKKyAgICAKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwg
dDEKKyAgICBiaW5lcSBDb2RlQmxvY2s6Om1fY29kZVR5cGVbdDFdLCBGdW5jdGlvbkNvZGUsIC5s
b29wCisgICAgYnRieiBDb2RlQmxvY2s6Om1fbmVlZHNGdWxsU2NvcGVDaGFpblt0MV0sIC5sb29w
CisgICAgCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX2FjdGl2YXRpb25SZWdpc3Rlclt0MV0sIHQx
CisKKyAgICAjIE5lZWQgdG8gY29uZGl0aW9uYWxseSBza2lwIG92ZXIgb25lIHNjb3BlLgorICAg
IGJ0cHogW2NmciwgdDEsIDhdLCAubm9BY3RpdmF0aW9uCisgICAgc2NvcGVDaGVjayh0MCwgdDEp
CisgICAgbG9hZHAgU2NvcGVDaGFpbk5vZGU6Om5leHRbdDBdLCB0MAorLm5vQWN0aXZhdGlvbjoK
KyAgICBzdWJpIDEsIHQyCisgICAgCisgICAgYnRpeiB0MiwgLmRvbmUKKy5sb29wOgorICAgIHNj
b3BlQ2hlY2sodDAsIHQxKQorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpuZXh0W3QwXSwgdDAK
KyAgICBzdWJpIDEsIHQyCisgICAgYnRpbnogdDIsIC5sb29wCisKKy5kb25lOgorZW5kCisKK19s
bGludF9vcF9yZXNvbHZlX2dsb2JhbF9keW5hbWljOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBsb2FkcCBKU0ds
b2JhbERhdGE6OmFjdGl2YXRpb25TdHJ1Y3R1cmVbdDNdLCB0MworICAgIGdldFNjb3BlKAorICAg
ICAgICA0MFtQQiwgUEMsIDhdLAorICAgICAgICBtYWNybyAoc2NvcGUsIHNjcmF0Y2gpCisgICAg
ICAgICAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6b2JqZWN0W3Njb3BlXSwgc2NyYXRjaAorICAg
ICAgICAgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVtzY3JhdGNoXSwgdDMsIC5vcFJlc29s
dmVHbG9iYWxEeW5hbWljU3VwZXJTbG93CisgICAgICAgIGVuZCkKKyAgICByZXNvbHZlR2xvYmFs
KDcsIC5vcFJlc29sdmVHbG9iYWxEeW5hbWljU2xvdykKKyAgICBkaXNwYXRjaCg3KQorCisub3BS
ZXNvbHZlR2xvYmFsRHluYW1pY1N1cGVyU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9yZXNvbHZlX2Zvcl9yZXNvbHZlX2dsb2JhbF9keW5hbWljKQorICAgIGRpc3BhdGNo
KDcpCisKKy5vcFJlc29sdmVHbG9iYWxEeW5hbWljU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9yZXNvbHZlX2dsb2JhbF9keW5hbWljKQorICAgIGRpc3BhdGNoKDcpCisK
KworX2xsaW50X29wX2dldF9zY29wZWRfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAj
IE9wZXJhbmRzIGFyZSBhcyBmb2xsb3dzOgorICAgICMgOFtQQiwgUEMsIDhdICAgRGVzdGluYXRp
b24gZm9yIHRoZSBsb2FkCisgICAgIyAxNltQQiwgUEMsIDhdICBJbmRleCBvZiByZWdpc3RlciBp
biB0aGUgc2NvcGUKKyAgICAjIDI0W1BCLCBQQywgOF0gIERlIEJydWlqaW4gaW5kZXguCisgICAg
Z2V0U2NvcGUoMjRbUEIsIFBDLCA4XSwgbWFjcm8gKHNjb3BlLCBzY3JhdGNoKSBlbmQpCisgICAg
bG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQyCisgICAg
bG9hZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNWYXJpYWJs
ZU9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRwIFt0MCwgdDIsIDhdLCB0Mwor
ICAgIHN0b3JlcCB0MywgW2NmciwgdDEsIDhdCisgICAgbG9hZGkgMzJbUEIsIFBDLCA4XSwgdDEK
KyAgICB2YWx1ZVByb2ZpbGUodDMsIHQxKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29w
X3B1dF9zY29wZWRfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBnZXRTY29wZSgxNltQ
QiwgUEMsIDhdLCBtYWNybyAoc2NvcGUsIHNjcmF0Y2gpIGVuZCkKKyAgICBsb2FkaSAyNFtQQiwg
UEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQzKQorICAgIGxvYWRp
IDhbUEIsIFBDLCA4XSwgdDEKKyAgICB3cml0ZUJhcnJpZXIodDMpCisgICAgbG9hZHAgU2NvcGVD
aGFpbk5vZGU6Om9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNWYXJpYWJsZU9iamVjdDo6bV9y
ZWdpc3RlcnNbdDBdLCB0MAorICAgIHN0b3JlcCB0MywgW3QwLCB0MSwgOF0KKyAgICBkaXNwYXRj
aCg0KQorCisKK19sbGludF9vcF9nZXRfZ2xvYmFsX3ZhcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQz
CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2ds
b2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fcmVnaXN0ZXJz
W3QwXSwgdDAKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIs
IHQzLCA4XQorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQzCisgICAgdmFsdWVQcm9maWxlKHQy
LCB0MykKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9wdXRfZ2xvYmFsX3ZhcjoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2Fk
cCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0
W3QwXSwgdDAKKyAgICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQyKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4
XSwgdDEKKyAgICB3cml0ZUJhcnJpZXIodDIpCisgICAgc3RvcmVwIHQyLCBbdDAsIHQxLCA4XQor
ICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2dldF9ieV9pZDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9pZCBjYWNoaW5nIGZv
ciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQorICAgICMgb3Bjb2RlLiBXZSBkbywgaG93
ZXZlciwgYWxsb3cgZm9yIHRoZSBjYWNoZSB0byBjaGFuZ2UgYW55dGltZSBpZiBmYWlscywgc2lu
Y2UKKyAgICAjIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBBdCBiZXN0IHdlIGdldCBsdWNreSBhbmQg
dGhlIGdldF9ieV9pZCB3aWxsIGNvbnRpbnVlCisgICAgIyB0byB0YWtlIGZhc3QgcGF0aCBvbiB0
aGUgbmV3IGNhY2hlLiBBdCB3b3JzdCB3ZSB0YWtlIHNsb3cgcGF0aCwgd2hpY2ggaXMgd2hhdAor
ICAgICMgd2Ugd291bGQgaGF2ZSBiZWVuIGRvaW5nIGFueXdheS4KKyAgICBsb2FkaSAxNltQQiwg
UEMsIDhdLCB0MAorICAgIGxvYWRpIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZUNlbGwodDAsIHQzLCAub3BHZXRCeUlkU2xvdykKKyAgICBsb2FkaSA0MFtQQiwg
UEMsIDhdLCB0MgorICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0M10sIHQw
CisgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwor
ICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkcCBbdDAsIHQyXSwgdDMKKyAgICBz
dG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAgIGxvYWRpIDY0W1BCLCBQQywgOF0sIHQxCisgICAg
dmFsdWVQcm9maWxlKHQzLCB0MSkKKyAgICBkaXNwYXRjaCg5KQorCisub3BHZXRCeUlkU2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0
Y2goOSkKKworCitfbGxpbnRfb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGg6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgOFtQQiwgUEMs
IDhdLCB0MQorICAgIGJ0cG56IFtjZnIsIHQwLCA4XSwgLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xv
dworICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQyCisgICAg
c3ViaSAxLCB0MgorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MgorICAgIHN0b3JlcCB0MiwgW2Nm
ciwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0aCkK
KyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9wdXRfYnlfaWQ6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkaSAzMltQQiwgUEMs
IDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQzLCB0MCwgLm9wUHV0QnlJ
ZFNsb3cpCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkcCBKU09iamVjdDo6
bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MworICAgIGJwbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVb
dDBdLCB0MSwgLm9wUHV0QnlJZFNsb3cKKyAgICBsb2FkaSA0MFtQQiwgUEMsIDhdLCB0MQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIHdyaXRlQmFycmllcih0MCkKKyAg
ICBzdG9yZXAgdDAsIFt0MywgdDFdCisgICAgZGlzcGF0Y2goOSkKKworLm9wUHV0QnlJZFNsb3c6
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X2lkKQorICAgIGRpc3Bh
dGNoKDkpCisKKworbWFjcm8gcHV0QnlJZFRyYW5zaXRpb24oYWRkaXRpb25hbENoZWNrcykKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRp
IDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDMsIHQw
LCAub3BQdXRCeUlkU2xvdykKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MgorICAgIGJwbmVx
IEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MSwgLm9wUHV0QnlJZFNsb3cKKyAgICBhZGRpdGlv
bmFsQ2hlY2tzKHQxLCB0MywgLm9wUHV0QnlJZFNsb3cpCisgICAgbG9hZGkgNDBbUEIsIFBDLCA4
XSwgdDEKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MworICAg
IGFkZHAgdDEsIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEpCisgICAgd3Jp
dGVCYXJyaWVyKHQxKQorICAgIHN0b3JlcCB0MSwgW3QzXQorICAgIGxvYWRpIDQ4W1BCLCBQQywg
OF0sIHQxCisgICAgc3RvcmVwIHQxLCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXQorICAgIGRpc3Bh
dGNoKDkpCitlbmQKKworX2xsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdDoKKyAg
ICBwdXRCeUlkVHJhbnNpdGlvbihtYWNybyAob2xkU3RydWN0dXJlLCBzY3JhdGNoLCBzbG93KSBl
bmQpCisKKworX2xsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKKyAgICBwdXRC
eUlkVHJhbnNpdGlvbigKKyAgICAgICAgbWFjcm8gKG9sZFN0cnVjdHVyZSwgc2NyYXRjaCwgc2xv
dykKKyAgICAgICAgICAgIGNvbnN0IHByb3RvQ2VsbCA9IG9sZFN0cnVjdHVyZSAgICAjIFJldXNp
bmcgdGhlIG9sZFN0cnVjdHVyZSByZWdpc3RlciBmb3IgdGhlIHByb3RvCisgICAgICAgICAgICBs
b2FkcCA1NltQQiwgUEMsIDhdLCBzY3JhdGNoCisgICAgICAgICAgICBhc3NlcnQobWFjcm8gKG9r
KSBidHBueiBzY3JhdGNoLCBvayBlbmQpCisgICAgICAgICAgICBsb2FkcCBTdHJ1Y3R1cmVDaGFp
bjo6bV92ZWN0b3Jbc2NyYXRjaF0sIHNjcmF0Y2gKKyAgICAgICAgICAgIGFzc2VydChtYWNybyAo
b2spIGJ0cG56IHNjcmF0Y2gsIG9rIGVuZCkKKyAgICAgICAgICAgIGJwZXEgU3RydWN0dXJlOjpt
X3Byb3RvdHlwZVtvbGRTdHJ1Y3R1cmVdLCBWYWx1ZU51bGwsIC5kb25lCisgICAgICAgIC5sb29w
OgorICAgICAgICAgICAgbG9hZHAgU3RydWN0dXJlOjptX3Byb3RvdHlwZVtvbGRTdHJ1Y3R1cmVd
LCBwcm90b0NlbGwKKyAgICAgICAgICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbcHJvdG9D
ZWxsXSwgb2xkU3RydWN0dXJlCisgICAgICAgICAgICBicG5lcSBvbGRTdHJ1Y3R1cmUsIFtzY3Jh
dGNoXSwgc2xvdworICAgICAgICAgICAgYWRkcCA4LCBzY3JhdGNoCisgICAgICAgICAgICBicG5l
cSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW29sZFN0cnVjdHVyZV0sIFZhbHVlTnVsbCwgLmxvb3AK
KyAgICAgICAgLmRvbmU6CisgICAgICAgIGVuZCkKKworCitfbGxpbnRfb3BfZ2V0X2J5X3ZhbDoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAg
bG9hZGkgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MworICAg
IGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QxXSwgdDEKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbCh0MiwgdDAsIC5vcEdldEJ5VmFsU2xvdykKKyAgICBsb2FkcCBKU0dsb2Jh
bERhdGE6OmpzQXJyYXlDbGFzc0luZm9bdDFdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVJbnQzMih0MywgdDEsIC5vcEdldEJ5VmFsU2xvdykKKyAgICBicG5lcSBbdDBdLCB0MiwgLm9w
R2V0QnlWYWxTbG93CisgICAgbG9hZHAgSlNBcnJheTo6bV9zdG9yYWdlW3QwXSwgdDMKKyAgICBi
aWFlcSB0MSwgSlNBcnJheTo6bV92ZWN0b3JMZW5ndGhbdDBdLCAub3BHZXRCeVZhbFNsb3cKKyAg
ICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgQXJyYXlTdG9yYWdlOjptX3ZlY3Rv
clt0MywgdDEsIDhdLCB0MgorICAgIGJ0cHogdDIsIC5vcEdldEJ5VmFsU2xvdworICAgIHN0b3Jl
cCB0MiwgW2NmciwgdDAsIDhdCisgICAgbG9hZGkgMzJbUEIsIFBDLCA4XSwgdDAKKyAgICB2YWx1
ZVByb2ZpbGUodDIsIHQwKQorICAgIGRpc3BhdGNoKDUpCisKKy5vcEdldEJ5VmFsU2xvdzoKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfdmFsKQorICAgIGRpc3BhdGNo
KDUpCisKKworX2xsaW50X29wX2dldF9hcmd1bWVudF9ieV92YWw6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4
XSwgdDEKKyAgICBidHBueiBbY2ZyLCB0MCwgOF0sIC5vcEdldEFyZ3VtZW50QnlWYWxTbG93Cisg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQxLCB0MiwgLm9wR2V0QXJndW1lbnRCeVZh
bFNsb3cpCisgICAgYWRkaSAxLCB0MgorICAgIGxvYWRpIEFyZ3VtZW50Q291bnQgKyBQYXlsb2Fk
T2Zmc2V0W2Nmcl0sIHQxCisgICAgYmlhZXEgdDIsIHQxLCAub3BHZXRBcmd1bWVudEJ5VmFsU2xv
dworICAgIG5lZ2kgdDIKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZHAgVGhp
c0FyZ3VtZW50T2Zmc2V0W2NmciwgdDIsIDhdLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMs
IDhdCisgICAgZGlzcGF0Y2goNSkKKworLm9wR2V0QXJndW1lbnRCeVZhbFNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2FyZ3VtZW50X2J5X3ZhbCkKKyAgICBkaXNw
YXRjaCg1KQorCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29ya2luZyBjb3B5KQpA
QCAtMjEsOSArMjEsNjM0IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCisjIEZpcnN0IGNvbWUgdGhlIGNvbW1vbiBwcm90b2NvbHMgdGhhdCBi
b3RoIGludGVycHJldGVycyB1c2UuIE5vdGUgdGhhdCBlYWNoCisjIG9mIHRoZXNlIG11c3QgaGF2
ZSBhbiBBU1NFUlQoKSBpbiBMTEludERhdGEuY3BwCisKKyMgVGhlc2UgZGVjbGFyYXRpb25zIG11
c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmguCitjb25zdCBDYWxsRnJhbWVIZWFk
ZXJTaXplID0gNDgKK2NvbnN0IEFyZ3VtZW50Q291bnQgPSAtNDgKK2NvbnN0IENhbGxlckZyYW1l
ID0gLTQwCitjb25zdCBDYWxsZWUgPSAtMzIKK2NvbnN0IFNjb3BlQ2hhaW4gPSAtMjQKK2NvbnN0
IFJldHVyblBDID0gLTE2Citjb25zdCBDb2RlQmxvY2sgPSAtOAorCitjb25zdCBUaGlzQXJndW1l
bnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDgKKworIyBTb21lIHJlZ2lzdGVyIGNv
bnZlbnRpb25zLgoraWYgSlNWQUxVRTY0CisgICAgIyAtIFVzZSBhIHBhaXIgb2YgcmVnaXN0ZXJz
IHRvIHJlcHJlc2VudCB0aGUgUEM6IG9uZSByZWdpc3RlciBmb3IgdGhlCisgICAgIyAgIGJhc2Ug
b2YgdGhlIHJlZ2lzdGVyIGZpbGUsIGFuZCBvbmUgcmVnaXN0ZXIgZm9yIHRoZSBpbmRleC4KKyAg
ICAjIC0gVGhlIFBDIGJhc2UgKG9yIFBCIGZvciBzaG9ydCkgc2hvdWxkIGJlIHN0b3JlZCBpbiB0
aGUgY3NyLiBJdCB3aWxsCisgICAgIyAgIGdldCBjbG9iYmVyZWQgb24gY2FsbHMgdG8gb3RoZXIg
SlMgY29kZSwgYnV0IHdpbGwgZ2V0IHNhdmVkIG9uIGNhbGxzCisgICAgIyAgIHRvIEMgZnVuY3Rp
b25zLgorICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0aGUgSW5zdHJ1Y3Rpb24qIHJh
dGhlciB0aGFuIHRoZSBQQyBpbmRleC4KKyAgICAjICAgVGhpcyByZXF1aXJlcyBhbiBhZGQgYmVm
b3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCisgICAgY29uc3QgUEMgPSB0NAorICAgIGNv
bnN0IFBCID0gY3NyMAorICAgIGNvbnN0IHRhZ1R5cGVOdW1iZXIgPSBjc3IxCisgICAgY29uc3Qg
dGFnTWFzayA9IGNzcjIKK2Vsc2UKKyAgICBjb25zdCBQQyA9IHQ0CitlbmQKKworIyBDb25zdGFu
dHMgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRhdGlvbi4KK2lmIEJJR19FTkRJ
QU4KKyAgICBjb25zdCBUYWdPZmZzZXQgPSAwCisgICAgY29uc3QgUGF5bG9hZE9mZnNldCA9IDQK
K2Vsc2UKKyAgICBjb25zdCBUYWdPZmZzZXQgPSA0CisgICAgY29uc3QgUGF5bG9hZE9mZnNldCA9
IDAKK2VuZAorCisjIFR5cGUgY29uc3RhbnRzLgorY29uc3QgU3RyaW5nVHlwZSA9IDUKK2NvbnN0
IE9iamVjdFR5cGUgPSAxMworCisjIFR5cGUgZmxhZ3MgY29uc3RhbnRzLgorY29uc3QgTWFzcXVl
cmFkZXNBc1VuZGVmaW5lZCA9IDEKK2NvbnN0IEltcGxlbWVudHNIYXNJbnN0YW5jZSA9IDIKK2Nv
bnN0IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSA4CisKKyMgQnl0ZWNvZGUgb3BlcmFu
ZCBjb25zdGFudHMuCitjb25zdCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCA9IDB4NDAwMDAw
MDAKKworIyBDb2RlIHR5cGUgY29uc3RhbnRzLgorY29uc3QgR2xvYmFsQ29kZSA9IDAKK2NvbnN0
IEV2YWxDb2RlID0gMQorY29uc3QgRnVuY3Rpb25Db2RlID0gMgorCisjIFRoZSBpbnRlcnByZXRl
ciBzdGVhbHMgdGhlIHRhZyB3b3JkIG9mIHRoZSBhcmd1bWVudCBjb3VudC4KK2NvbnN0IExMSW50
UmV0dXJuUEMgPSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0CisKKyMgU3RyaW5nIGZsYWdzLgor
Y29uc3QgSGFzaEZsYWdzOEJpdEJ1ZmZlciA9IDY0CisKKyMgQWxsb2NhdGlvbiBjb25zdGFudHMK
K2lmIEpTVkFMVUU2NAorICAgIGNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDEK
K2Vsc2UKKyAgICBjb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAzCitlbmQKKwor
IyBUaGlzIG11c3QgbWF0Y2ggd3RmL1ZlY3Rvci5oCitpZiBKU1ZBTFVFNjQKKyAgICBjb25zdCBW
ZWN0b3JTaXplT2Zmc2V0ID0gMAorICAgIGNvbnN0IFZlY3RvckJ1ZmZlck9mZnNldCA9IDgKK2Vs
c2UKKyAgICBjb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorICAgIGNvbnN0IFZlY3RvckJ1ZmZl
ck9mZnNldCA9IDQKK2VuZAorCisKKyMgU29tZSBjb21tb24gdXRpbGl0aWVzLgorbWFjcm8gY3Jh
c2goKQorICAgIHN0b3JlaSAwLCAweGJiYWRiZWVmW10KKyAgICBtb3ZlIDAsIHQwCisgICAgY2Fs
bCB0MAorZW5kCisKK21hY3JvIGFzc2VydChhc3NlcnRpb24pCisgICAgaWYgQVNTRVJUX0VOQUJM
RUQKKyAgICAgICAgYXNzZXJ0aW9uKC5vaykKKyAgICAgICAgY3Jhc2goKQorICAgIC5vazoKKyAg
ICBlbmQKK2VuZAorCittYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGlu
YXRpb25SZWdpc3RlcikKKyAgICBpZiBBUk12NworICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlv
blJlZ2lzdGVyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwb3AgZGVzdGluYXRp
b25SZWdpc3RlcgorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKK2VuZAorCittYWNy
byByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKKyAgICBp
ZiBBUk12NworICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgorICAgIGVsc2lmIFg4NiBv
ciBYODZfNjQKKyAgICAgICAgcHVzaCBzb3VyY2VSZWdpc3RlcgorICAgIGVsc2UKKyAgICAgICAg
ZXJyb3IKKyAgICBlbmQKK2VuZAorCittYWNybyB0cmFjZUV4ZWN1dGlvbigpCisgICAgaWYgRVhF
Q1VUSU9OX1RSQUNJTkcKKyAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFjZSkKKyAgICBl
bmQKK2VuZAorCittYWNybyBzbG93UGF0aEZvckNhbGwoYWR2YW5jZSwgc2xvd1BhdGgpCisgICAg
Y2FsbENhbGxTbG93UGF0aCgKKyAgICAgICAgYWR2YW5jZSwKKyAgICAgICAgc2xvd1BhdGgsCisg
ICAgICAgIG1hY3JvIChjYWxsZWUpCisgICAgICAgICAgICBjYWxsIGNhbGxlZQorICAgICAgICAg
ICAgZGlzcGF0Y2hBZnRlckNhbGwoKQorICAgICAgICBlbmQpCitlbmQKKworbWFjcm8gY2hlY2tT
d2l0Y2hUb0pJVChpbmNyZW1lbnQsIGFjdGlvbikKKyAgICBpZiBKSVRfRU5BQkxFRAorICAgICAg
ICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICAgICAgYmFkZGlzIGluY3JlbWVudCwgQ29k
ZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50
ZXJbdDBdLCAuY29udGludWUKKyAgICAgICAgYWN0aW9uKCkKKyAgICAuY29udGludWU6CisgICAg
ZW5kCitlbmQKKworbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBjaGVj
a1N3aXRjaFRvSklUKAorICAgICAgICAxMCwKKyAgICAgICAgbWFjcm8gKCkKKyAgICAgICAgICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfcmVwbGFjZSkKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3Jv
IGFzc2VydE5vdENvbnN0YW50KGluZGV4KQorICAgIGFzc2VydChtYWNybyAob2spIGJpbHQgaW5k
ZXgsIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCBvayBlbmQpCitlbmQKKworbWFjcm8gZnVu
Y3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENh
bGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0
YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgRnVuY3Rpb25F
eGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNhbGxbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdp
c3RlcgorZW5kCisKK21hY3JvIGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyKHRh
cmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgorICAg
IGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJl
Z2lzdGVyCisgICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNvbnN0
cnVjdFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gbm90RnVu
Y3Rpb25Db2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gZnVuY3Rpb25Db2RlQmxvY2tTZXR0
ZXIoc291cmNlUmVnaXN0ZXIpCisgICAgc3RvcmVwIHNvdXJjZVJlZ2lzdGVyLCBDb2RlQmxvY2tb
Y2ZyXQorZW5kCisKK21hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lz
dGVyKQorICAgICMgTm90aGluZyB0byBkbyEKK2VuZAorCisjIERvIHRoZSBiYXJlIG1pbmltdW0g
cmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVC
bG9jayoKKyMgaW4gdDEuIE1heSBhbHNvIHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgorbWFj
cm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRo
LCB0cmFjZVNsb3dQYXRoKQorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikK
KyAgICAKKyAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxk
IE9TUi4KKyAgICBzdG9yZXAgdDIsIFJldHVyblBDW2Nmcl0KKyAgICBpZiBFWEVDVVRJT05fVFJB
Q0lORworICAgICAgICBjYWxsU2xvd1BhdGgodHJhY2VTbG93UGF0aCkKKyAgICBlbmQKKyAgICBj
b2RlQmxvY2tHZXR0ZXIodDEpCisgICAgaWYgSklUX0VOQUJMRUQKKyAgICAgICAgYmFkZGlzIDUs
IENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsgRXhlY3V0aW9uQ291bnRlcjo6bV9j
b3VudGVyW3QxXSwgLmNvbnRpbnVlCisgICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQ
QykKKyAgICAgICAgbW92ZSB0MSwgY2ZyCisgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAg
ICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCisgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNz
QmVmb3JlUmV0dXJuKHQyKQorICAgICAgICBqbXAgdDAKKyAgICAucmVjb3ZlcjoKKyAgICAgICAg
Y29kZUJsb2NrR2V0dGVyKHQxKQorICAgIC5jb250aW51ZToKKyAgICBlbmQKKyAgICBjb2RlQmxv
Y2tTZXR0ZXIodDEpCisgICAgCisgICAgIyBTZXQgdXAgdGhlIFBDLgorICAgIGlmIEpTVkFMVUU2
NAorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEIKKyAgICAg
ICAgbW92ZSAwLCBQQworICAgIGVsc2UKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3Ry
dWN0aW9uc1t0MV0sIFBDCisgICAgZW5kCitlbmQKKworIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2Nr
IGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KKyMgTXVz
dCBjYWxsIGRpc3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KK21hY3JvIGZ1bmN0aW9uSW5p
dGlhbGl6YXRpb24ocHJvZmlsZUFyZ1NraXApCisgICAgaWYgVkFMVUVfUFJPRklMRVIKKyAgICAg
ICAgIyBQcm9maWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gY2hv
aWNlIGJ1dCB0byBkbyB0aGlzLiBUaGlzCisgICAgICAgICMgY29kZSBpcyBwcmV0dHkgaG9ycmVu
ZG91cyBiZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5nIGJldHdlZW4KKyAgICAg
ICAgIyBhcmd1bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBz
aW1wbGUgbG9vcC1kb3duLXRvLXplcm8KKyAgICAgICAgIyBsb29wLCBhbmQgdGhlIGRlc2lyZSB0
byB1c2Ugb25seSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2VydmUgdGhlIFBDIGFuZAor
ICAgICAgICAjIHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUgc2hv
dWxkIGJlIHJld3JpdHRlbiBpbiBhIG1vcmUKKyAgICAgICAgIyBvcHRpbWFsIHdheSBmb3IgYXJj
aGl0ZWN0dXJlcyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJsZQor
ICAgICAgICAjIGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnByZXRlci4KKyAgICAgICAg
bG9hZGkgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAorICAgICAgICBhZGRpIC1w
cm9maWxlQXJnU2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0aGUg
cGVlcGhvbGUKKyAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVxIHQwLCAwLCBvayBlbmQp
CisgICAgICAgIGJ0aXogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCisgICAgICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDFd
LCB0MworICAgICAgICBtdWxpIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFhaGho
aCEgTmVlZCBzdHJlbmd0aCByZWR1Y3Rpb24hCisgICAgICAgIG5lZ2kgdDAKKyAgICAgICAgbHNo
aWZ0aSAzLCB0MAorICAgICAgICBhZGRwIHQyLCB0MworICAgIC5hcmd1bWVudFByb2ZpbGVMb29w
OgorICAgICAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGxvYWRwIFRoaXNBcmd1bWVudE9m
ZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBz
dWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQzCisgICAgICAgICAgICBzdG9yZXAgdDIsIHByb2Zp
bGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRz
W3QzXQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQg
KyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgorICAgICAg
ICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MworICAgICAgICAgICAgc3RvcmVpIHQy
LCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1f
YnVja2V0cyArIFRhZ09mZnNldFt0M10KKyAgICAgICAgICAgIGxvYWRpIFRoaXNBcmd1bWVudE9m
ZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0
MgorICAgICAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVBy
b2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRPZmZzZXRbdDNdCisgICAg
ICAgIGVuZAorICAgICAgICBiYWRkaW56IDgsIHQwLCAuYXJndW1lbnRQcm9maWxlTG9vcAorICAg
IC5hcmd1bWVudFByb2ZpbGVEb25lOgorICAgIGVuZAorICAgICAgICAKKyAgICAjIENoZWNrIHN0
YWNrIGhlaWdodC4KKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2FsbGVlUmVnaXN0ZXJzW3Qx
XSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQyCisgICAgbG9h
ZHAgSlNHbG9iYWxEYXRhOjppbnRlcnByZXRlclt0Ml0sIHQyICAgIyBGSVhNRTogQ2FuIGdldCB0
byB0aGUgUmVnaXN0ZXJGaWxlIGZyb20gdGhlIEpJVFN0YWNrRnJhbWUKKyAgICBsc2hpZnRpIDMs
IHQwCisgICAgYWRkcCB0MCwgY2ZyLCB0MAorICAgIGJwYWVxIEludGVycHJldGVyOjptX3JlZ2lz
dGVyRmlsZSArIFJlZ2lzdGVyRmlsZTo6bV9lbmRbdDJdLCB0MCwgLnN0YWNrSGVpZ2h0T0sKKwor
ICAgICMgU3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8gY2FsbCBhIHNsb3dfcGF0
aC4KKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2ZpbGVfY2hlY2spCisuc3RhY2tI
ZWlnaHRPSzoKK2VuZAorCittYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5k
ZXgsIGNsYXNzSW5mb09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNo
Miwgc2xvd0Nhc2UpCisgICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKKyAgICAgICAgam1wIHNs
b3dDYXNlCisgICAgZWxzZQorICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0KKyAg
ICAgICAgICAgIEpTR2xvYmFsRGF0YTo6aGVhcCArCisgICAgICAgICAgICBIZWFwOjptX29iamVj
dFNwYWNlICsKKyAgICAgICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKKyAgICAg
ICAgICAgIE1hcmtlZFNwYWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKworICAgICAg
ICAgICAgc2l6ZUNsYXNzSW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCisgICAgICAgIAor
ICAgICAgICAjIEZJWE1FOiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9hZCBm
cm9tIHRoZSBzdGFjay4KKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gxCisg
ICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRjaDEK
KyAgICAgICAgCisgICAgICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LiAg
ICAKKyAgICAgICAgbG9hZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6
bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gxXSwgcmVzdWx0CisgICAgICAgIGJ0cHogcmVzdWx0LCBz
bG93Q2FzZQorICAgICAgICAKKyAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBm
cmVlIGxpc3QuCisgICAgICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgorICAgICAgICBzdG9y
ZXAgc2NyYXRjaDIsIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmly
c3RGcmVlQ2VsbFtzY3JhdGNoMV0KKyAgICAKKyAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmpl
Y3QuCisgICAgICAgIGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCisg
ICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgW3Jlc3VsdF0KKyAgICAgICAgc3RvcmVwIHN0cnVjdHVy
ZSwgSlNDZWxsOjptX3N0cnVjdHVyZVtyZXN1bHRdCisgICAgICAgIHN0b3JlcCAwLCBKU09iamVj
dDo6bV9pbmhlcml0b3JJRFtyZXN1bHRdCisgICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0LCBy
ZXN1bHQsIHNjcmF0Y2gxCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1fcHJv
cGVydHlTdG9yYWdlW3Jlc3VsdF0KKyAgICBlbmQKK2VuZAorCisKKyMgSW5kaWNhdGUgdGhlIGJl
Z2lubmluZyBvZiBMTEludC4KK19sbGludF9iZWdpbjoKKyAgICBjcmFzaCgpCisKKworX2xsaW50
X3Byb2dyYW1fcHJvbG9ndWU6CisgICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0
ZXIsIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRf
dHJhY2VfcHJvbG9ndWUpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfZXZhbF9wcm9sb2d1
ZToKKyAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25D
b2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkK
KyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZToK
KyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29k
ZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsLCBfbGxpbnRf
dHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NhbGwpCisuZnVuY3Rpb25Gb3JDYWxsQmVnaW46
CisgICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigwKQorICAgIGRpc3BhdGNoKDApCisgICAgCisK
K19sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKGZ1
bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRl
ciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0LCBfbGxpbnRfdHJhY2Vf
cHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCkKKy5mdW5jdGlvbkZvckNvbnN0cnVjdEJl
Z2luOgorICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMSkKKyAgICBkaXNwYXRjaCgwKQorICAg
IAorCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6CisgICAgcHJvbG9ndWUo
ZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwg
X2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eUNoZWNrLCBfbGxpbnRfdHJh
Y2VfYXJpdHlDaGVja19mb3JfY2FsbCkKKyAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0aW9u
Rm9yQ2FsbEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykKKworCitfbGxp
bnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjazoKKyAgICBwcm9sb2d1ZShmdW5j
dGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIs
IF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eUNoZWNrLCBfbGxp
bnRfdHJhY2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQorICAgIGZ1bmN0aW9uQXJpdHlDaGVj
ayguZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1Y3Rf
YXJpdHlDaGVjaykKKworCisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNwZWNpZmljIGNvZGUuCiBp
ZiBKU1ZBTFVFNjQKICAgICBpbmNsdWRlIExvd0xldmVsSW50ZXJwcmV0ZXI2NAogZWxzZQogICAg
IGluY2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0CiBlbmQKIAorCisjIFZhbHVlLXJlcHJl
c2VudGF0aW9uLWFnbm9zdGljIGNvZGUuCitfbGxpbnRfb3BfbmV3X2FycmF5OgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfYXJyYXkp
CisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfbmV3X2FycmF5X2J1ZmZlcjoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Fy
cmF5X2J1ZmZlcikKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9uZXdfcmVnZXhwOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9u
ZXdfcmVnZXhwKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2xlc3M6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3MpCisg
ICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfbGVzc2VxOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzZXEpCisgICAgZGlzcGF0
Y2goNCkKKworCitfbGxpbnRfb3BfZ3JlYXRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcikKKyAgICBkaXNwYXRjaCg0KQor
CisKK19sbGludF9vcF9ncmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXJlcSkKKyAgICBkaXNwYXRjaCg0KQorCisK
K19sbGludF9vcF9tb2Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX21vZCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF90eXBl
b2Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX3R5cGVvZikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc191bmRlZmluZWQ6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2lzX3VuZGVmaW5lZCkKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19ib29sZWFu
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9pc19ib29sZWFuKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX251bWJlcjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
aXNfbnVtYmVyKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX3N0cmluZzoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNf
c3RyaW5nKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX29iamVjdDoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfb2Jq
ZWN0KQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX2Z1bmN0aW9uOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19mdW5j
dGlvbikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pbjoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW4pCisgICAgZGlzcGF0
Y2goNCkKKworCitfbGxpbnRfb3BfcmVzb2x2ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZSkKKyAgICBkaXNwYXRjaCg0KQor
CisKK19sbGludF9vcF9yZXNvbHZlX3NraXA6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfc2tpcCkKKyAgICBkaXNwYXRjaCg1
KQorCisKK19sbGludF9vcF9yZXNvbHZlX2Jhc2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfYmFzZSkKKyAgICBkaXNwYXRj
aCg1KQorCisKK19sbGludF9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9lbnN1cmVfcHJvcGVy
dHlfZXhpc3RzKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX3Jlc29sdmVfd2l0aF9i
YXNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9yZXNvbHZlX3dpdGhfYmFzZSkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9y
ZXNvbHZlX3dpdGhfdGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRoX3RoaXMpCisgICAgZGlzcGF0Y2goNSkKKwor
CitfbGxpbnRfb3BfZGVsX2J5X2lkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxfYnlfaWQpCisgICAgZGlzcGF0Y2goNCkKKworCitf
bGxpbnRfb3BfZGVsX2J5X3ZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfZGVsX2J5X3ZhbCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19s
bGludF9vcF9wdXRfYnlfaW5kZXg6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pbmRleCkKKyAgICBkaXNwYXRjaCg0KQorCisK
K19sbGludF9vcF9wdXRfZ2V0dGVyX3NldHRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9zZXR0ZXIpCisgICAgZGlz
cGF0Y2goNSkKKworCitfbGxpbnRfb3Bfc3dpdGNoX3N0cmluZzoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3dpdGNoX3N0cmluZykKKyAg
ICBkaXNwYXRjaCgwKQorCisKK19sbGludF9vcF9uZXdfZnVuY19leHA6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19mdW5jX2V4cCkK
KyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9zdHJjYXQ6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N0cmNhdCkKKyAgICBkaXNw
YXRjaCg0KQorCisKK19sbGludF9vcF9tZXRob2RfY2hlY2s6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgICMgV2UgaWdub3JlIG1ldGhvZCBjaGVja3MgYW5kIHVzZSBub3JtYWwgZ2V0X2J5X2lk
IG9wdGltaXphdGlvbnMuCisgICAgZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3BfZ2V0X3BuYW1l
czoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfZ2V0X3BuYW1lcykKKyAgICBkaXNwYXRjaCgwKSAjIFRoZSBzbG93X3BhdGggZWl0aGVyIGFk
dmFuY2VzIHRoZSBQQyBvciBqdW1wcyB1cyB0byBzb21ld2hlcmUgZWxzZS4KKworCitfbGxpbnRf
b3BfcHVzaF9zY29wZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfcHVzaF9zY29wZSkKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9v
cF9wb3Bfc2NvcGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3BvcF9zY29wZSkKKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9vcF9w
dXNoX25ld19zY29wZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfcHVzaF9uZXdfc2NvcGUpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxp
bnRfb3BfdGhyb3c6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3Rocm93KQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX3Rocm93
X3JlZmVyZW5jZV9lcnJvcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfdGhyb3dfcmVmZXJlbmNlX2Vycm9yKQorICAgIGRpc3BhdGNoKDIp
CisKKworX2xsaW50X29wX2RlYnVnOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWJ1ZykKKyAgICBkaXNwYXRjaCg0KQorCisKKyMgTGFz
dGx5LCBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4gbGluayBldmVuIHRob3VnaCB3ZSBkb24ndCBzdXBw
b3J0IGFsbCBvcGNvZGVzLgorIyBUaGVzZSBvcGNvZGVzIHNob3VsZCBuZXZlciBhcmlzZSB3aGVu
IHVzaW5nIExMSW50IG9yIGVpdGhlciBKSVQuIFdlIGFzc2VydAorIyBhcyBtdWNoLgorCittYWNy
byBub3RTdXBwb3J0ZWQoKQorICAgIGlmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGNyYXNoKCkK
KyAgICBlbHNlCisgICAgICAgICMgV2Ugc2hvdWxkIHVzZSB3aGF0ZXZlciB0aGUgc21hbGxlc3Qg
cG9zc2libGUgaW5zdHJ1Y3Rpb24gaXMsIGp1c3QgdG8KKyAgICAgICAgIyBlbnN1cmUgdGhhdCB0
aGVyZSBpcyBhIGdhcCBiZXR3ZWVuIGluc3RydWN0aW9uIGxhYmVscy4gSWYgbXVsdGlwbGUKKyAg
ICAgICAgIyBzbWFsbGVzdCBpbnN0cnVjdGlvbnMgZXhpc3QsIHdlIHNob3VsZCBwaWNrIHRoZSBv
bmUgdGhhdCBpcyBtb3N0CisgICAgICAgICMgbGlrZWx5IHJlc3VsdCBpbiBleGVjdXRpb24gYmVp
bmcgaGFsdGVkLiBDdXJyZW50bHkgdGhhdCBpcyB0aGUgYnJlYWsKKyAgICAgICAgIyBpbnN0cnVj
dGlvbiBvbiBhbGwgYXJjaGl0ZWN0dXJlcyB3ZSdyZSBpbnRlcmVzdGVkIGluLiAoQnJlYWsgaXMg
aW50MworICAgICAgICAjIG9uIEludGVsLCB3aGljaCBpcyAxIGJ5dGUsIGFuZCBia3B0IG9uIEFS
TXY3LCB3aGljaCBpcyAyIGJ5dGVzLikKKyAgICAgICAgYnJlYWsKKyAgICBlbmQKK2VuZAorCitf
bGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0aDoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRf
b3BfZ2V0X2J5X2lkX2NoYWluOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRf
YnlfaWRfY3VzdG9tX2NoYWluOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRf
YnlfaWRfY3VzdG9tX3Byb3RvOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRf
YnlfaWRfY3VzdG9tX3NlbGY6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9i
eV9pZF9nZW5lcmljOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRf
Z2V0dGVyX2NoYWluOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRf
Z2V0dGVyX3Byb3RvOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRf
Z2V0dGVyX3NlbGY6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9w
cm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX3NlbGY6Cisg
ICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9zdHJpbmdfbGVuZ3RoOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9wdXRfYnlfaWRfZ2VuZXJpYzoKKyAgICBub3RTdXBw
b3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX3JlcGxhY2U6CisgICAgbm90U3VwcG9ydGVk
KCkKKworX2xsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uOgorICAgIG5vdFN1cHBvcnRlZCgp
CisKKworIyBJbmRpY2F0ZSB0aGUgZW5kIG9mIExMSW50LgorX2xsaW50X2VuZDoKKyAgICBjcmFz
aCgpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCShy
ZXZpc2lvbiAxMDk5NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12
Ny5yYgkod29ya2luZyBjb3B5KQpAQCAtMzMsMjkgKzMzLDkgQEAgY2xhc3MgTm9kZQogZW5kCiAK
IGNsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KLSAgICBkZWYgaW5pdGlhbGl6ZShu
YW1lKQotICAgICAgICBAbmFtZSA9IG5hbWUKLSAgICBlbmQKLSAgICAKICAgICBkZWYgYXJtVjdP
cGVyYW5kCiAgICAgICAgIEBuYW1lCiAgICAgZW5kCi0gICAgCi0gICAgZGVmIGFkZHJlc3M/Ci0g
ICAgICAgIGZhbHNlCi0gICAgZW5kCi0gICAgCi0gICAgZGVmIGxhYmVsPwotICAgICAgICBmYWxz
ZQotICAgIGVuZAotICAgIAotICAgIGRlZiBpbW1lZGlhdGU/Ci0gICAgICAgIGZhbHNlCi0gICAg
ZW5kCi0gICAgCi0gICAgZGVmIHJlZ2lzdGVyPwotICAgICAgICB0cnVlCi0gICAgZW5kCiBlbmQK
IAogQVJNdjdfRVhUUkFfR1BSUyA9IFtTcGVjaWFsUmVnaXN0ZXIubmV3KCJyOSIpLCBTcGVjaWFs
UmVnaXN0ZXIubmV3KCJyOCIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMyIpXQpAQCAtNDY5LDcg
KzQ0OSw3IEBAIGRlZiBhcm1WN0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhsaXN0KQogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlLmFybVY3
TG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzUmVjdXJzZShuZXdMaXN0KQogICAgICAgICAgICAgICAg
IGVuZAotICAgICAgICAgICAgd2hlbiAibXVsaSIKKyAgICAgICAgICAgIHdoZW4gIm11bGkiLCAi
bXVscCIKICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0
ZQogICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCiAg
ICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9y
aWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkKQEAgLTUzNSw5ICs1MTUsOSBA
QCBkZWYgYXJtVjdMb3dlck1pc3BsYWNlZEFkZHJlc3NlcyhsaXN0KQogICAgICAgICBpZiBub2Rl
LmlzX2E/IEluc3RydWN0aW9uCiAgICAgICAgICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KICAg
ICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRk
cCIsICJhZGRpcyIsICJhbmRpIiwgImFuZHAiLCAibHNoaWZ0aSIsICJtdWxpIiwgIm5lZ2kiLCAi
bm90aSIsICJvcmkiLCAib3JpcyIsCi0gICAgICAgICAgICAgICAgIm9ycCIsICJyc2hpZnRpIiwg
InVyc2hpZnRpIiwgInN1YmkiLCAic3VicCIsICJzdWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJp
LywgL15icC8sIC9eYnRpLywKLSAgICAgICAgICAgICAgICAvXmJ0cC8sIC9eY2kvLCAvXmNwLywg
L150aS8KKyAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRpIiwg
ImFuZHAiLCAibHNoaWZ0aSIsICJtdWxpIiwgIm11bHAiLCAibmVnaSIsICJub3RpIiwgIm9yaSIs
CisgICAgICAgICAgICAgICAgIm9yaXMiLCAib3JwIiwgInJzaGlmdGkiLCAidXJzaGlmdGkiLCAi
c3ViaSIsICJzdWJwIiwgInN1YmlzIiwgInhvcmkiLCAieG9ycCIsIC9eYmkvLCAvXmJwLywKKyAg
ICAgICAgICAgICAgICAvXmJ0aS8sIC9eYnRwLywgL15jaS8sIC9eY3AvLCAvXnRpLwogICAgICAg
ICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcm1WN0FzUmVnaXN0ZXJz
KG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJpIikpCkBAIC02NDks
NyArNjI5LDcgQEAgZW5kCiAjCiAKIGNsYXNzIFNlcXVlbmNlCi0gICAgZGVmIGxvd2VyQVJNdjcK
KyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0QVJNdjcKICAgICAgICAgbXlMaXN0ID0gQGxpc3QKICAg
ICAgICAgCiAgICAgICAgICMgVmVyaWZ5IHRoYXQgd2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVjdGlv
bnMgYW5kIGxhYmVscy4KQEAgLTY3MywxMCArNjUzLDggQEAgY2xhc3MgU2VxdWVuY2UKICAgICAg
ICAgbXlMaXN0ID0gYXJtVjdMb3dlclJlZ2lzdGVyUmV1c2UobXlMaXN0KQogICAgICAgICBteUxp
c3QgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKG15TGlzdCwgOmdwciwgQVJNdjdfRVhU
UkFfR1BSUykKICAgICAgICAgbXlMaXN0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3Jhcmllcyht
eUxpc3QsIDpmcHIsIEFSTXY3X0VYVFJBX0ZQUlMpCi0gICAgICAgIG15TGlzdC5lYWNoIHsKLSAg
ICAgICAgICAgIHwgbm9kZSB8Ci0gICAgICAgICAgICBub2RlLmxvd2VyKCJBUk12NyIpCi0gICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBteUxpc3QKICAgICBlbmQKIGVuZAogCkBA
IC03OTgsNyArNzc2LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRBcm1W
N0NvbXBhY3QoImFzcnMiLCAiYXNycyIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJ1cnNoaWZ0
aSIKICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoImxzcnMiLCAibHNycyIsIG9wZXJhbmRz
KQotICAgICAgICB3aGVuICJtdWxpIgorICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiCiAgICAg
ICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDIgb3Igb3BlcmFuZHNbMF0gPT0gb3BlcmFuZHNb
Ml0gb3Igb3BlcmFuZHNbMV0gPT0gb3BlcmFuZHNbMl0KICAgICAgICAgICAgICAgICBlbWl0QXJt
VjcoIm11bHMiLCBvcGVyYW5kcykKICAgICAgICAgICAgIGVsc2UKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIJKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYg
KzE2Nyw3IEBAIEZpbGUub3BlbihvdXRwdXRGbG5tLCAidyIpIHsKICAgICAgICAgZm9yU2V0dGlu
Z3MoY29tcHV0ZVNldHRpbmdzQ29tYmluYXRpb25zKGFzdClbY29uZmlnSW5kZXhdLCBhc3QpIHsK
ICAgICAgICAgICAgIHwgY29uY3JldGVTZXR0aW5ncywgbG93TGV2ZWxBU1QsIGJhY2tlbmQgfAog
ICAgICAgICAgICAgbG93TGV2ZWxBU1QgPSBsb3dMZXZlbEFTVC5yZXNvbHZlKCpidWlsZE9mZnNl
dHNNYXAobG93TGV2ZWxBU1QsIG9mZnNldHNMaXN0KSkKKyAgICAgICAgICAgIGxvd0xldmVsQVNU
LnZhbGlkYXRlCiAgICAgICAgICAgICBlbWl0Q29kZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNl
dHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCkgewogICAgICAgICAgICAgICAgICRhc20uaW5B
c20gewogICAgICAgICAgICAgICAgICAgICBsb3dMZXZlbEFTVC5sb3dlcihiYWNrZW5kKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkocmV2aXNpb24gMTA5OTU4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCSh3b3JraW5nIGNv
cHkpCkBAIC0zODMsNiArMzgzLDE1NyBAQCBjbGFzcyBOZWdJbW1lZGlhdGUgPCBOb2RlCiAgICAg
ZW5kCiBlbmQKIAorY2xhc3MgT3JJbW1lZGlhdGVzIDwgTm9kZQorICAgIGF0dHJfcmVhZGVyIDps
ZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCBy
aWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGxlZnQgPSBsZWZ0Cisg
ICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5kCisgICAgCisgICAgZGVmIGNoaWxkcmVuCisg
ICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVuZAorICAgIAorICAgIGRlZiBtYXBDaGlsZHJl
bgorICAgICAgICBPckltbWVkaWF0ZXMubmV3KGNvZGVPcmlnaW4sICh5aWVsZCBAbGVmdCksICh5
aWVsZCBAcmlnaHQpKQorICAgIGVuZAorICAgIAorICAgIGRlZiBkdW1wCisgICAgICAgICIoI3ts
ZWZ0LmR1bXB9IHwgI3tyaWdodC5kdW1wfSkiCisgICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJl
c3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPworICAgICAg
ICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5k
CitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVm
dCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmln
aHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAg
ICAgICBAcmlnaHQgPSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAg
ICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4K
KyAgICAgICAgQW5kSW1tZWRpYXRlcy5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwgKHlp
ZWxkIEByaWdodCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAgIigje2xl
ZnQuZHVtcH0gJiAje3JpZ2h0LmR1bXB9KSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVz
cz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAg
IGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQor
ICAgIGVuZAorICAgIAorICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVzIDwgTm9kZQorICAgIGF0dHJfcmVhZGVyIDpsZWZ0
LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCByaWdo
dCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGxlZnQgPSBsZWZ0CisgICAg
ICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5kCisgICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAg
ICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVuZAorICAgIAorICAgIGRlZiBtYXBDaGlsZHJlbgor
ICAgICAgICBYb3JJbW1lZGlhdGVzLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGxlZnQpLCAoeWll
bGQgQHJpZ2h0KSkKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAorICAgICAgICAiKCN7bGVm
dC5kdW1wfSBeICN7cmlnaHQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNz
PworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAg
ZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisg
ICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAor
ZW5kCisKK2NsYXNzIEJpdG5vdEltbWVkaWF0ZSA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6Y2hp
bGQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShjb2RlT3JpZ2luLCBjaGlsZCkKKyAgICAgICAg
c3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGNoaWxkID0gY2hpbGQKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAgW0BjaGlsZF0KKyAgICBlbmQKKyAgICAKKyAgICBk
ZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgQml0bm90SW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAo
eWllbGQgQGNoaWxkKSkKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAorICAgICAgICAiKH4j
e0BjaGlsZC5kdW1wfSkiCisgICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJlc3M/CisgICAgICAg
IGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPworICAgICAgICBmYWxzZQorICAg
IGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAg
ICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5kCitlbmQKKwogY2xh
c3MgUmVnaXN0ZXJJRCA8IE5vQ2hpbGRyZW4KICAgICBhdHRyX3JlYWRlciA6bmFtZQogICAgIApA
QCAtNDU5LDYgKzYxMCwyOCBAQCBjbGFzcyBGUFJlZ2lzdGVySUQgPCBOb0NoaWxkcmVuCiAgICAg
ZW5kCiBlbmQKIAorY2xhc3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiBp
bml0aWFsaXplKG5hbWUpCisgICAgICAgIEBuYW1lID0gbmFtZQorICAgIGVuZAorICAgIAorICAg
IGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJl
bD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAg
ICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgdHJ1
ZQorICAgIGVuZAorZW5kCisKIGNsYXNzIFZhcmlhYmxlIDwgTm9DaGlsZHJlbgogICAgIGF0dHJf
cmVhZGVyIDpuYW1lCiAgICAgCkBAIC00NzksNiArNjUyLDEwIEBAIGNsYXNzIFZhcmlhYmxlIDwg
Tm9DaGlsZHJlbgogICAgIGRlZiBkdW1wCiAgICAgICAgIG5hbWUKICAgICBlbmQKKyAgICAKKyAg
ICBkZWYgaW5zcGVjdAorICAgICAgICAiPHZhcmlhYmxlICN7bmFtZX0gYXQgI3tjb2RlT3JpZ2lu
U3RyaW5nfT4iCisgICAgZW5kCiBlbmQKIAogY2xhc3MgQWRkcmVzcyA8IE5vZGUKQEAgLTc1Nyw2
ICs5MzQsMTAgQEAgY2xhc3MgTGFiZWxSZWZlcmVuY2UgPCBOb2RlCiAgICAgZGVmIGxhYmVsPwog
ICAgICAgICB0cnVlCiAgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAg
ZmFsc2UKKyAgICBlbmQKIGVuZAogCiBjbGFzcyBMb2NhbExhYmVsUmVmZXJlbmNlIDwgTm9DaGls
ZHJlbgpAQCAtNzkwLDYgKzk3MSwxMCBAQCBjbGFzcyBMb2NhbExhYmVsUmVmZXJlbmNlIDwgTm9D
aGlsZHJlbgogICAgIGRlZiBsYWJlbD8KICAgICAgICAgdHJ1ZQogICAgIGVuZAorICAgIAorICAg
IGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZhbHNlCisgICAgZW5kCiBlbmQKIAogY2xhc3MgU2Vx
dWVuY2UgPCBOb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNr
ZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9i
YWNrZW5kcy5yYgkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4LDEyIEBAIEJB
Q0tFTkRfUEFUVEVSTiA9IFJlZ2V4cC5uZXcoJ1xcQSgnICsgQkEKIAogY2xhc3MgTm9kZQogICAg
IGRlZiBsb3dlcihuYW1lKQotICAgICAgICAkYWN0aXZlQmFja2VuZCA9IG5hbWUKLSAgICAgICAg
c2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAgYmVnaW4KKyAgICAgICAgICAgICRhY3RpdmVC
YWNrZW5kID0gbmFtZQorICAgICAgICAgICAgc2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAg
cmVzY3VlID0+IGUKKyAgICAgICAgICAgIHJhaXNlICJHb3QgZXJyb3IgI3tlfSBhdCAje2NvZGVP
cmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBAIC04Nyw3ICs5MSwx
MyBAQCBlbmQKIGNsYXNzIFNlcXVlbmNlCiAgICAgZGVmIGxvd2VyKG5hbWUpCiAgICAgICAgICRh
Y3RpdmVCYWNrZW5kID0gbmFtZQotICAgICAgICBpZiByZXNwb25kX3RvPyAibG93ZXIje25hbWV9
IgorICAgICAgICBpZiByZXNwb25kX3RvPyAiZ2V0TW9kaWZpZWRMaXN0I3tuYW1lfSIKKyAgICAg
ICAgICAgIG5ld0xpc3QgPSBzZW5kKCJnZXRNb2RpZmllZExpc3Qje25hbWV9IikKKyAgICAgICAg
ICAgIG5ld0xpc3QuZWFjaCB7CisgICAgICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAg
ICAgICBub2RlLmxvd2VyKG5hbWUpCisgICAgICAgICAgICB9CisgICAgICAgIGVsc2lmIHJlc3Bv
bmRfdG8/ICJsb3dlciN7bmFtZX0iCiAgICAgICAgICAgICBzZW5kKCJsb3dlciN7bmFtZX0iKQog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBAbGlzdC5lYWNoIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHJldmlzaW9uIDEw
OTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5y
Ygkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9
CiAgICAgICJicGx0IiwKICAgICAgImJwbHRlcSIsCiAgICAgICJhZGRwIiwKKyAgICAgIm11bHAi
LAogICAgICAiYW5kcCIsCiAgICAgICJvcnAiLAogICAgICAic3VicCIsCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9wYXJzZXIucmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCShyZXZpc2lvbiAxMDk5NTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9wYXJzZXIucmIJKHdvcmtpbmcgY29w
eSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBkZWYgbGV4KHN0ciwgZmlsZU5hbWUpCiAgICAgICAgICAg
ICByZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVy
KSwgJCYpCiAgICAgICAgIHdoZW4gL1xBOjovCiAgICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4u
bmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKSwgJCYpCi0gICAgICAgIHdo
ZW4gL1xBWzosXChcKVxbXF09XCtcLSpdLworICAgICAgICB3aGVuIC9cQVs6LFwoXClcW1xdPVwr
XC1+XHwmXipdLwogICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5l
dyhmaWxlTmFtZSwgbGluZU51bWJlciksICQmKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBy
YWlzZSAiTGV4ZXIgZXJyb3IgYXQgI3tDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJl
cikudG9fc30sIHVuZXhwZWN0ZWQgc2VxdWVuY2UgI3tzdHJbMC4uMjBdLmluc3BlY3R9IgpAQCAt
MzIyLDYgKzMyMiw5IEBAIGNsYXNzIFBhcnNlcgogICAgICAgICBpZiBAdG9rZW5zW0BpZHhdID09
ICItIgogICAgICAgICAgICAgQGlkeCArPSAxCiAgICAgICAgICAgICBOZWdJbW1lZGlhdGUubmV3
KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4sIHBhcnNlRXhwcmVzc2lvbkF0b20pCisgICAg
ICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gIn4iCisgICAgICAgICAgICBAaWR4ICs9IDEKKyAg
ICAgICAgICAgIEJpdG5vdEltbWVkaWF0ZS5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdp
biwgcGFyc2VFeHByZXNzaW9uQXRvbSkKICAgICAgICAgZWxzaWYgQHRva2Vuc1tAaWR4XSA9PSAi
KCIKICAgICAgICAgICAgIEBpZHggKz0gMQogICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHBy
ZXNzaW9uCkBAIC0zNjUsMTAgKzM2OCwxMCBAQCBjbGFzcyBQYXJzZXIKICAgICBlbmQKICAgICAK
ICAgICBkZWYgY291bGRCZUV4cHJlc3Npb24KLSAgICAgICAgQHRva2Vuc1tAaWR4XSA9PSAiLSIg
b3IgQHRva2Vuc1tAaWR4XSA9PSAic2l6ZW9mIiBvciBpc0ludGVnZXIoQHRva2Vuc1tAaWR4XSkg
b3IgaXNWYXJpYWJsZShAdG9rZW5zW0BpZHhdKSBvciBAdG9rZW5zW0BpZHhdID09ICIoIgorICAg
ICAgICBAdG9rZW5zW0BpZHhdID09ICItIiBvciBAdG9rZW5zW0BpZHhdID09ICJ+IiBvciBAdG9r
ZW5zW0BpZHhdID09ICJzaXplb2YiIG9yIGlzSW50ZWdlcihAdG9rZW5zW0BpZHhdKSBvciBpc1Zh
cmlhYmxlKEB0b2tlbnNbQGlkeF0pIG9yIEB0b2tlbnNbQGlkeF0gPT0gIigiCiAgICAgZW5kCiAg
ICAgCi0gICAgZGVmIHBhcnNlRXhwcmVzc2lvbgorICAgIGRlZiBwYXJzZUV4cHJlc3Npb25BZGQK
ICAgICAgICAgc2tpcE5ld0xpbmUKICAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uTXVs
CiAgICAgICAgIHdoaWxlIEB0b2tlbnNbQGlkeF0gPT0gIisiIG9yIEB0b2tlbnNbQGlkeF0gPT0g
Ii0iCkBAIC0zODUsNiArMzg4LDMzIEBAIGNsYXNzIFBhcnNlcgogICAgICAgICByZXN1bHQKICAg
ICBlbmQKICAgICAKKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uQW5kCisgICAgICAgIHNraXBOZXdM
aW5lCisgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbkFkZAorICAgICAgICB3aGlsZSBA
dG9rZW5zW0BpZHhdID09ICImIgorICAgICAgICAgICAgQGlkeCArPSAxCisgICAgICAgICAgICBy
ZXN1bHQgPSBBbmRJbW1lZGlhdGVzLm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCBy
ZXN1bHQsIHBhcnNlRXhwcmVzc2lvbkFkZCkKKyAgICAgICAgZW5kCisgICAgICAgIHJlc3VsdAor
ICAgIGVuZAorICAgIAorICAgIGRlZiBwYXJzZUV4cHJlc3Npb24KKyAgICAgICAgc2tpcE5ld0xp
bmUKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uQW5kCisgICAgICAgIHdoaWxlIEB0
b2tlbnNbQGlkeF0gPT0gInwiIG9yIEB0b2tlbnNbQGlkeF0gPT0gIl4iCisgICAgICAgICAgICBp
ZiBAdG9rZW5zW0BpZHhdID09ICJ8IgorICAgICAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IE9ySW1tZWRpYXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29k
ZU9yaWdpbiwgcmVzdWx0LCBwYXJzZUV4cHJlc3Npb25BbmQpCisgICAgICAgICAgICBlbHNpZiBA
dG9rZW5zW0BpZHhdID09ICJeIgorICAgICAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAg
ICAgICAgIHJlc3VsdCA9IFhvckltbWVkaWF0ZXMubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVP
cmlnaW4sIHJlc3VsdCwgcGFyc2VFeHByZXNzaW9uQW5kKQorICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kCisgICAgICAg
IHJlc3VsdAorICAgIGVuZAorICAgIAogICAgIGRlZiBwYXJzZU9wZXJhbmQoY29tbWVudCkKICAg
ICAgICAgc2tpcE5ld0xpbmUKICAgICAgICAgaWYgY291bGRCZUV4cHJlc3Npb24KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIJKHJldmlzaW9u
IDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5y
Ygkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsMTIgQEAgR1BSUyA9CiAgICAgICJyMCIsCiAg
ICAgICJyMSIsCiAgICAgICJzcCIsCi0gICAgICJsciIKKyAgICAgImxyIiwKKyAgICAgCisgICAg
ICMgNjQtYml0IG9ubHkgcmVnaXN0ZXJzOgorICAgICAiY3NyMCIsICAjIHIxMAorICAgICAiY3Ny
MSIsICAjIHIxNCwgdGFnIHR5cGUgbnVtYmVyIHJlZ2lzdGVyCisgICAgICJjc3IyIiAgICMgcjE1
LCB0YWcgbWFzayByZWdpc3RlcgogICAgIF0KIAogRlBSUyA9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmIKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJiCShyZXZpc2lvbiAxMDk5NTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTMyOCw2ICszMjgsNDQgQEAgY2xhc3MgTmVnSW1tZWRpYXRlCiAgICAgZW5kCiBl
bmQKIAorY2xhc3MgT3JJbW1lZGlhdGVzCisgICAgZGVmIGZvbGQKKyAgICAgICAgQGxlZnQgPSBA
bGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9IEByaWdodC5mb2xkCisgICAgICAgIHJldHVybiBz
ZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5s
ZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3Jp
Z2luLCBAbGVmdC52YWx1ZSB8IEByaWdodC52YWx1ZSkKKyAgICBlbmQKK2VuZAorCitjbGFzcyBB
bmRJbW1lZGlhdGVzCisgICAgZGVmIGZvbGQKKyAgICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisg
ICAgICAgIEByaWdodCA9IEByaWdodC5mb2xkCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBA
bGVmdC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5p
c19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52
YWx1ZSAmIEByaWdodC52YWx1ZSkKKyAgICBlbmQKK2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVz
CisgICAgZGVmIGZvbGQKKyAgICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdo
dCA9IEByaWdodC5mb2xkCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJ
bW1lZGlhdGUKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlh
dGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52YWx1ZSBeIEByaWdo
dC52YWx1ZSkKKyAgICBlbmQKK2VuZAorCitjbGFzcyBCaXRub3RJbW1lZGlhdGUKKyAgICBkZWYg
Zm9sZAorICAgICAgICBAY2hpbGQgPSBAY2hpbGQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1
bmxlc3MgQGNoaWxkLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICBJbW1lZGlhdGUubmV3KGNvZGVP
cmlnaW4sIH5AY2hpbGQudmFsdWUpCisgICAgZW5kCitlbmQKKwogIwogIyBub2RlLnJlc29sdmVB
ZnRlclNldHRpbmdzKG9mZnNldHMsIHNpemVzKQogIwpAQCAtMzQwLDMgKzM3OCw5NyBAQCBjbGFz
cyBOb2RlCiAgICAgZW5kCiBlbmQKIAorIworIyBub2RlLnZhbGlkYXRlCisjCisjIENoZWNrcyB0
aGF0IHRoZSBub2RlIGlzIHJlYWR5IGZvciBiYWNrZW5kIGNvbXBpbGF0aW9uLgorIworCitjbGFz
cyBOb2RlCisgICAgZGVmIHZhbGlkYXRlCisgICAgICAgIHJhaXNlICJVbnJlc29sdmVkICN7ZHVt
cH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgdmFsaWRh
dGVDaGlsZHJlbgorICAgICAgICBjaGlsZHJlbi5lYWNoIHsKKyAgICAgICAgICAgIHwgbm9kZSB8
CisgICAgICAgICAgICBub2RlLnZhbGlkYXRlCisgICAgICAgIH0KKyAgICBlbmQKK2VuZAorCitj
bGFzcyBTZXF1ZW5jZQorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVu
CisgICAgZW5kCitlbmQKKworY2xhc3MgSW1tZWRpYXRlCisgICAgZGVmIHZhbGlkYXRlCisgICAg
ZW5kCitlbmQKKworY2xhc3MgUmVnaXN0ZXJJRAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAor
ZW5kCisKK2NsYXNzIEZQUmVnaXN0ZXJJRAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5k
CisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGls
ZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRlZiB2YWxpZGF0ZQor
ICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xhc3MgQWJzb2x1dGVB
ZGRyZXNzCisgICAgZGVmIHZhbGlkYXRlCisgICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBl
bmQKK2VuZAorCitjbGFzcyBJbnN0cnVjdGlvbgorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2
YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xhc3MgRXJyb3IKKyAgICBkZWYgdmFs
aWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBMYWJlbAorICAgIGRlZiB2YWxpZGF0ZQorICAg
IGVuZAorZW5kCisKK2NsYXNzIExvY2FsTGFiZWwKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBMYWJlbFJlZmVyZW5jZQorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAor
ZW5kCisKK2NsYXNzIExvY2FsTGFiZWxSZWZlcmVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBl
bmQKK2VuZAorCitjbGFzcyBTa2lwCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkocmV2aXNpb24gMTA5
OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiwxMyArMzIsMzcgQEAgZGVmIGlzWDY0CiAgICAgZW5kCiBlbmQKIAorY2xh
c3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiB4ODZPcGVyYW5kKGtpbmQp
CisgICAgICAgIHJhaXNlIHVubGVzcyBAbmFtZSA9fiAvXnIvCisgICAgICAgIHJhaXNlIHVubGVz
cyBpc1g2NAorICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAg
ICAgIiUiICsgQG5hbWUgKyAidyIKKyAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAiJSIg
KyBAbmFtZSArICJkIgorICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICIlIiArIEBuYW1l
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGVuZAorICAgIGVuZAor
ICAgIGRlZiB4ODZDYWxsT3BlcmFuZChraW5kKQorICAgICAgICAiKiN7eDg2T3BlcmFuZChraW5k
KX0iCisgICAgZW5kCitlbmQKKworWDY0X1NDUkFUQ0hfUkVHSVNURVIgPSBTcGVjaWFsUmVnaXN0
ZXIubmV3KCJyMTEiKQorCiBjbGFzcyBSZWdpc3RlcklECiAgICAgZGVmIHN1cHBvcnRzOEJpdE9u
WDg2CiAgICAgICAgIGNhc2UgbmFtZQogICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIsICJ0
MSIsICJhMSIsICJyMSIsICJ0MiIsICJ0MyIKICAgICAgICAgICAgIHRydWUKLSAgICAgICAgd2hl
biAidDQiLCAiY2ZyIgorICAgICAgICB3aGVuICJjZnIiLCAidHRuciIsICJ0bXIiCiAgICAgICAg
ICAgICBmYWxzZQorICAgICAgICB3aGVuICJ0NCIsICJ0NSIKKyAgICAgICAgICAgIGlzWDY0CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGVuZApAQCAtMTEyLDE3ICsx
MzYsMzAgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAg
ICAgICBlbmQKICAgICAgICAgd2hlbiAiY2ZyIgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAg
ICAgICAgICB3aGVuIDpieXRlCi0gICAgICAgICAgICAgICAgIiVkaWwiCi0gICAgICAgICAgICB3
aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgIiVkaSIKLSAgICAgICAgICAgIHdoZW4gOmludAot
ICAgICAgICAgICAgICAgICIlZWRpIgotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAg
ICAgICAgaXNYNjQgPyAiJXJkaSIgOiAiJWVkaSIKKyAgICAgICAgICAgIGlmIGlzWDY0CisgICAg
ICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAg
ICAgICAgICAgICAgICAiJXIxM3ciCisgICAgICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAg
ICAgICAgICAgICAgICIlcjEzZCIKKyAgICAgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAg
ICAgICAgICAgICAgIiVyMTMiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICByYWlzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICAg
ICAgd2hlbiA6Ynl0ZQorICAgICAgICAgICAgICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgICAg
ICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgICAgICIlZGkiCisgICAgICAgICAgICAgICAg
d2hlbiA6aW50CisgICAgICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgICAgIHdo
ZW4gOnB0cgorICAgICAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAg
ICAgICBlbmQKICAgICAgICAgd2hlbiAic3AiCiAgICAgICAgICAgICBjYXNlIGtpbmQKQEAgLTEz
Nyw2ICsxNzQsNDggQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAidDUiCisgICAg
ICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2Rl
T3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAg
ICAgICAgIHdoZW4gOmJ5dGUKKyAgICAgICAgICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgIHdo
ZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAgICAgd2hlbiA6aW50Cisg
ICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAg
ICAgICAiJXJkaSIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjc3IwIgorICAgICAg
ICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9y
aWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAg
ICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVyMTB3IgorICAgICAgICAgICAgd2hl
biA6aW50CisgICAgICAgICAgICAgICAgIiVyMTBkIgorICAgICAgICAgICAgd2hlbiA6cHRyCisg
ICAgICAgICAgICAgICAgIiVyMTAiCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3Ny
MSIKKyAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBh
dCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2lu
ZAorICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICIlcjE0dyIKKyAgICAg
ICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlcjE0ZCIKKyAgICAgICAgICAgIHdo
ZW4gOnB0cgorICAgICAgICAgICAgICAgICIlcjE0IgorICAgICAgICAgICAgZW5kCisgICAgICAg
IHdoZW4gImNzcjIiCisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMy
LWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAg
ICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJXIx
NXciCisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAgICAiJXIxNWQiCisgICAg
ICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXIxNSIKKyAgICAgICAgICAgIGVu
ZAogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7bmFtZX0g
Zm9yIFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQKQEAgLTE3Miw2ICsy
NTEsMTMgQEAgY2xhc3MgRlBSZWdpc3RlcklECiBlbmQKIAogY2xhc3MgSW1tZWRpYXRlCisgICAg
ZGVmIHZhbGlkWDg2SW1tZWRpYXRlPworICAgICAgICBpZiBpc1g2NAorICAgICAgICAgICAgdmFs
dWUgPj0gLTB4ODAwMDAwMDAgYW5kIHZhbHVlIDw9IDB4N2ZmZmZmZmYKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdHJ1ZQorICAgICAgICBlbmQKKyAgICBlbmQKICAgICBkZWYgeDg2T3BlcmFu
ZChraW5kKQogICAgICAgICAiJCN7dmFsdWV9IgogICAgIGVuZApAQCAtMjEwLDcgKzI5Niw3IEBA
IGNsYXNzIEJhc2VJbmRleAogICAgIGVuZAogCiAgICAgZGVmIHg4NkNhbGxPcGVyYW5kKGtpbmQp
Ci0gICAgICAgICIqI3t4ODZvcGVyYW5kKGtpbmQpfSIKKyAgICAgICAgIioje3g4Nk9wZXJhbmQo
a2luZCl9IgogICAgIGVuZAogZW5kCiAKQEAgLTI0NCw2ICszMzAsNDcgQEAgY2xhc3MgTG9jYWxM
YWJlbFJlZmVyZW5jZQogICAgIGVuZAogZW5kCiAKK2NsYXNzIFNlcXVlbmNlCisgICAgZGVmIGdl
dE1vZGlmaWVkTGlzdFg4Nl82NAorICAgICAgICBuZXdMaXN0ID0gW10KKyAgICAgICAgCisgICAg
ICAgIEBsaXN0LmVhY2ggeworICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgIG5ld05v
ZGUgPSBub2RlCisgICAgICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisgICAgICAg
ICAgICAgICAgdW5sZXNzIG5vZGUub3Bjb2RlID09ICJtb3ZlIgorICAgICAgICAgICAgICAgICAg
ICB1c2VkU2NyYXRjaCA9IGZhbHNlCisgICAgICAgICAgICAgICAgICAgIG5ld09wZXJhbmRzID0g
bm9kZS5vcGVyYW5kcy5tYXAgeworICAgICAgICAgICAgICAgICAgICAgICAgfCBvcGVyYW5kIHwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9wZXJhbmQuaW1tZWRpYXRlPyBhbmQgbm90IG9w
ZXJhbmQudmFsaWRYODZJbW1lZGlhdGU/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
dXNlZFNjcmF0Y2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgIkF0dGVt
cHQgdG8gdXNlIHNjcmF0Y2ggcmVnaXN0ZXIgdHdpY2UgYXQgI3tvcGVyYW5kLmNvZGVPcmlnaW5T
dHJpbmd9IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG9wZXJhbmQuY29kZU9yaWdp
biwgIm1vdmUiLCBbb3BlcmFuZCwgWDY0X1NDUkFUQ0hfUkVHSVNURVJdKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVzZWRTY3JhdGNoID0gdHJ1ZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFg2NF9TQ1JBVENIX1JFR0lTVEVSCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZAorICAgICAgICAgICAgICAgICAg
ICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbmV3
Tm9kZSA9IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2RlLCBuZXdP
cGVyYW5kcykKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB1bmxlc3Mgbm9kZS5pc19hPyBMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICAg
ICAgbm9kZS5pc19hPyBMb2NhbExhYmVsIG9yCisgICAgICAgICAgICAgICAgICAgICAgICBub2Rl
LmlzX2E/IFNraXAKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQgI3tub2Rl
Lmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIgCisgICAgICAgICAgICAgICAgZW5kCisg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGlmIG5ld05vZGUKKyAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IG5ld05vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICByZXR1cm4gbmV3TGlzdAorICAgIGVuZAorZW5kCisKIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgZGVmIHg4Nk9wZXJhbmRzKCpraW5kcykKICAgICAgICAgcmFpc2UgdW5sZXNzIGtpbmRz
LnNpemUgPT0gb3BlcmFuZHMuc2l6ZQpAQCAtNDU4LDYgKzU4NSwxNiBAQCBjbGFzcyBJbnN0cnVj
dGlvbgogICAgICAgICBlbmQKICAgICBlbmQKICAgICAKKyAgICBkZWYgaGFuZGxlWDg2TXVsKGtp
bmQpCisgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8g
SW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgImltdWwje3g4NlN1ZmZpeChraW5kKX0g
I3t4ODZPcGVyYW5kcyhraW5kLCBraW5kLCBraW5kKX0iCisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUgcGVlcGhvbGUgaW4gY2FzZSB0aGUgbGVmdCBvcGVy
YW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncworICAgICAgICAgICAgIyBhIHBvd2VyIG9mIHR3by4K
KyAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJpbXVsI3t4ODZTdWZmaXgoa2luZCl9Iiwga2luZCkK
KyAgICAgICAgZW5kCisgICAgZW5kCisgICAgCiAgICAgZGVmIGhhbmRsZU1vdmUKICAgICAgICAg
aWYgSW1tZWRpYXRlLm5ldyhuaWwsIDApID09IG9wZXJhbmRzWzBdIGFuZCBvcGVyYW5kc1sxXS5p
c19hPyBSZWdpc3RlcklECiAgICAgICAgICAgICAkYXNtLnB1dHMgInhvciN7eDg2U3VmZml4KDpw
dHIpfSAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRzWzFdLng4Nk9w
ZXJhbmQoOnB0cil9IgpAQCAtNDkwLDEzICs2MjcsOSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAg
ICAgICB3aGVuICJsc2hpZnRpIgogICAgICAgICAgICAgaGFuZGxlWDg2U2hpZnQoInNhbGwiLCA6
aW50KQogICAgICAgICB3aGVuICJtdWxpIgotICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9
PSAzIGFuZCBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKLSAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgImltdWxsICN7eDg2T3BlcmFuZHMoOmludCwgOmludCwgOmludCl9IgotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUgcGVlcGhvbGUg
aW4gY2FzZSB0aGUgbGVmdCBvcGVyYW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncwotICAgICAgICAg
ICAgICAgICMgYSBwb3dlciBvZiB0d28uCi0gICAgICAgICAgICAgICAgaGFuZGxlWDg2T3AoImlt
dWxsIiwgOmludCkKLSAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgaGFuZGxlWDg2TXVsKDpp
bnQpCisgICAgICAgIHdoZW4gIm11bHAiCisgICAgICAgICAgICBoYW5kbGVYODZNdWwoOnB0cikK
ICAgICAgICAgd2hlbiAibmVnaSIKICAgICAgICAgICAgICRhc20ucHV0cyAibmVnbCAje3g4Nk9w
ZXJhbmRzKDppbnQpfSIKICAgICAgICAgd2hlbiAibm90aSIKQEAgLTUxNiw3ICs2NDksNyBAQCBj
bGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJ4b3JpIgogICAgICAgICAgICAgaGFuZGxl
WDg2T3AoInhvcmwiLCA6aW50KQogICAgICAgICB3aGVuICJ4b3JwIgotICAgICAgICAgICAgaGFu
ZGxlWDg2T3AoInhvciN7eDg2U3VmZml4KDpwdHIpfSIsIDppbnQpCisgICAgICAgICAgICBoYW5k
bGVYODZPcCgieG9yI3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAibG9h
ZGkiLCAic3RvcmVpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZsICN7eDg2T3BlcmFuZHMo
OmludCwgOmludCl9IgogICAgICAgICB3aGVuICJsb2FkcCIsICJzdG9yZXAiCkBAIC04MjUsOSAr
OTU4LDkgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAicHNybHEg
JDMyLCAleG1tNyIKICAgICAgICAgICAgICRhc20ucHV0cyAibW92c2QgJXhtbTcsICN7b3BlcmFu
ZHNbMl0ueDg2T3BlcmFuZCg6aW50KX0iCiAgICAgICAgIHdoZW4gImZwMmQiCi0gICAgICAgICAg
ICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kcyg6cHRyKX0sICN7b3Bl
cmFuZHNbMV0ueDg2T3BlcmFuZCg6ZG91YmxlKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1v
dmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVy
YW5kKDpkb3VibGUpfSIKICAgICAgICAgd2hlbiAiZmQycCIKLSAgICAgICAgICAgICRhc20ucHV0
cyAibW92ZCAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmRzKDpkb3VibGUpfSwgI3tvcGVyYW5kc1sx
XS54ODZPcGVyYW5kKDpwdHIpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJh
bmRzWzBdLng4Nk9wZXJhbmQoOmRvdWJsZSl9LCAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0
cil9IgogICAgICAgICB3aGVuICJibyIKICAgICAgICAgICAgICRhc20ucHV0cyAiam8gI3tvcGVy
YW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJzIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130957</attachid>
            <date>2012-03-08 19:49:24 -0800</date>
            <delta_ts>2012-03-08 20:56:23 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_8.diff</filename>
            <type>text/plain</type>
            <size>110604</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTAyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTItMDMtMDYgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2sg
dGltZXIgc2hvdWxkIHZhcnkgd2l0aCB0aGUgbGVuZ3RoIG9mIHRoZSBwcmV2aW91cyBHQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBA
IC03MCwyOCArNzAsNiBAQAogIyBCZWxvdyB3ZSBoYXZlIGEgYnVuY2ggb2YgY29uc3RhbnQgZGVj
bGFyYXRpb25zLiBFYWNoIGNvbnN0YW50IG11c3QgaGF2ZQogIyBhIGNvcnJlc3BvbmRpbmcgQVNT
RVJUKCkgaW4gTExJbnREYXRhLmNwcC4KIAotIyBUaGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRj
aCBpbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaC4KLWNvbnN0IENhbGxGcmFtZUhlYWRlclNpemUg
PSA0OAotY29uc3QgQXJndW1lbnRDb3VudCA9IC00OAotY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAK
LWNvbnN0IENhbGxlZSA9IC0zMgotY29uc3QgU2NvcGVDaGFpbiA9IC0yNAotY29uc3QgUmV0dXJu
UEMgPSAtMTYKLWNvbnN0IENvZGVCbG9jayA9IC04Ci0KLWNvbnN0IFRoaXNBcmd1bWVudE9mZnNl
dCA9IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0gOAotCi0jIERlY2xhcmUgc29tZSBhbGlhc2VzIGZv
ciB0aGUgcmVnaXN0ZXJzIHdlIHdpbGwgdXNlLgotY29uc3QgUEMgPSB0NAotCi0jIE9mZnNldHMg
bmVlZGVkIGZvciByZWFzb25pbmcgYWJvdXQgdmFsdWUgcmVwcmVzZW50YXRpb24uCi1pZiBCSUdf
RU5ESUFOCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gMAotICAgIGNvbnN0IFBheWxvYWRPZmZzZXQg
PSA0Ci1lbHNlCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gNAotICAgIGNvbnN0IFBheWxvYWRPZmZz
ZXQgPSAwCi1lbmQKIAogIyBWYWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMuCiBjb25zdCBJ
bnQzMlRhZyA9IC0xCkBAIC0xMDMsNzEgKzgxLDggQEAgY29uc3QgRW1wdHlWYWx1ZVRhZyA9IC02
CiBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFnID0gRGVsZXRlZFZh
bHVlVGFnCiAKLSMgVHlwZSBjb25zdGFudHMuCi1jb25zdCBTdHJpbmdUeXBlID0gNQotY29uc3Qg
T2JqZWN0VHlwZSA9IDEzCi0KLSMgVHlwZSBmbGFncyBjb25zdGFudHMuCi1jb25zdCBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkID0gMQotY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMgotY29u
c3QgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDgKLQotIyBIZWFwIGFsbG9jYXRpb24g
Y29uc3RhbnRzLgotY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMwotCi0jIEJ5
dGVjb2RlIG9wZXJhbmQgY29uc3RhbnRzLgotY29uc3QgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5k
ZXggPSAweDQwMDAwMDAwCi0KLSMgQ29kZSB0eXBlIGNvbnN0YW50cy4KLWNvbnN0IEdsb2JhbENv
ZGUgPSAwCi1jb25zdCBFdmFsQ29kZSA9IDEKLWNvbnN0IEZ1bmN0aW9uQ29kZSA9IDIKLQotIyBU
aGUgaW50ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1lbnQgY291bnQu
Ci1jb25zdCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNldAotCi0jIFRo
aXMgbXVzdCBtYXRjaCB3dGYvVmVjdG9yLmguCi1jb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAot
Y29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAotCi0jIFN0cmluZyBmbGFncy4KLWNvbnN0IEhh
c2hGbGFnczhCaXRCdWZmZXIgPSA2NAogCiAjIFV0aWxpdGllcwotbWFjcm8gY3Jhc2goKQotICAg
IHN0b3JlaSAwLCAweGJiYWRiZWVmW10KLSAgICBtb3ZlIDAsIHQwCi0gICAgY2FsbCB0MAotZW5k
Ci0KLW1hY3JvIGFzc2VydChhc3NlcnRpb24pCi0gICAgaWYgQVNTRVJUX0VOQUJMRUQKLSAgICAg
ICAgYXNzZXJ0aW9uKC5vaykKLSAgICAgICAgY3Jhc2goKQotICAgIC5vazoKLSAgICBlbmQKLWVu
ZAotCi1tYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdp
c3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVy
Ci0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCi0gICAgZWxz
ZQotICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KLW1hY3JvIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQotICAgIGlmIEFSTXY3Ci0gICAgICAgIG1v
dmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHB1c2ggc291cmNl
UmVnaXN0ZXIKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi1lbmQKLQogbWFjcm8g
ZGlzcGF0Y2goYWR2YW5jZSkKICAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQwogICAgIGptcCBbUENd
CkBAIC0yMjAsOCArMTM1LDggQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBh
cmczLAogICAgIGNhbGwgZnVuY3Rpb24KIGVuZAogCi1tYWNybyBjYWxsU2xvd1BhdGgoc2xvd19w
YXRoKQotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpCittYWNybyBjYWxsU2xvd1BhdGgo
c2xvd1BhdGgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQogICAgIG1vdmUgdDAsIFBD
CiAgICAgbW92ZSB0MSwgY2ZyCiBlbmQKQEAgLTI0NSw0MCArMTYwLDE1IEBAIG1hY3JvIHRyYWNl
VmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQogICAgIG1vdmUgdDEsIGNmcgogZW5kCiAKLW1hY3Jv
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAgICAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3RyYWNlKQotICAgIGVuZAotZW5kCi0KLSMgQ2FsbCBhIHNsb3dfcGF0
aCBmb3IgY2FsbCBvcGNvZGVzLgotbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93
X3BhdGgsIGFjdGlvbikKKyMgQ2FsbCBhIHNsb3dQYXRoIGZvciBjYWxsIG9wY29kZXMuCittYWNy
byBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dQYXRoLCBhY3Rpb24pCiAgICAgYWRkcCBh
ZHZhbmNlICogNCwgUEMsIHQwCiAgICAgc3RvcmVwIHQwLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKQorICAgIGNDYWxsMihzbG93
UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQxLCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIAot
bWFjcm8gc2xvd1BhdGhGb3JDYWxsKGFkdmFuY2UsIHNsb3dfcGF0aCkKLSAgICBjYWxsQ2FsbFNs
b3dQYXRoKAotICAgICAgICBhZHZhbmNlLAotICAgICAgICBzbG93X3BhdGgsCi0gICAgICAgIG1h
Y3JvIChjYWxsZWUpCi0gICAgICAgICAgICBjYWxsIGNhbGxlZQotICAgICAgICAgICAgZGlzcGF0
Y2hBZnRlckNhbGwoKQotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gY2hlY2tTd2l0Y2hUb0pJ
VChpbmNyZW1lbnQsIGFjdGlvbikKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDAKLSAgICAgICAgYmFkZGlzIGluY3JlbWVudCwgQ29kZUJsb2NrOjpt
X2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDBdLCAu
Y29udGludWUKLSAgICAgICAgYWN0aW9uKCkKLSAgICAuY29udGludWU6Ci0gICAgZW5kCi1lbmQK
LQogbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgIGNoZWNrU3dpdGNoVG9KSVQo
CiAgICAgICAgIDEsCkBAIC0yOTMsMTggKzE4Myw2IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRG
b3JMb29wKCkKICAgICAgICAgZW5kKQogZW5kCiAKLW1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JF
cGlsb2d1ZSgpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVCgKLSAgICAgICAgMTAsCi0gICAgICAgIG1h
Y3JvICgpCi0gICAgICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlcGxhY2UpCi0gICAgICAg
IGVuZCkKLWVuZAotCi1tYWNybyBhc3NlcnROb3RDb25zdGFudChpbmRleCkKLSAgICBhc3NlcnQo
bWFjcm8gKG9rKSBiaWx0IGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgb2sgZW5k
KQotZW5kCi0KICMgSW5kZXgsIHRhZywgYW5kIHBheWxvYWQgbXVzdCBiZSBkaWZmZXJlbnQgcmVn
aXN0ZXJzLiBJbmRleCBpcyBub3QKICMgY2hhbmdlZC4KIG1hY3JvIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoaW5kZXgsIHRhZywgcGF5bG9hZCkKQEAgLTM4NiwxMDkgKzI2NCw4IEBAIG1hY3JvIHZh
bHVlUHJvZmlsZSh0YWcsIHBheWxvYWQsIHByb2ZpbGUKIGVuZAogCiAKLSMgSW5kaWNhdGUgdGhl
IGJlZ2lubmluZyBvZiBMTEludC4KLV9sbGludF9iZWdpbjoKLSAgICBjcmFzaCgpCi0KLQogIyBF
bnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlcgogCi1tYWNybyBmdW5jdGlvbkZvckNhbGxD
b2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRh
cmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJl
Z2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1f
Y29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQKLQot
bWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIp
Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5j
dGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBs
b2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3RhcmdldFJl
Z2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBub3RGdW5jdGlvbkNvZGVCbG9j
a0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFyZ2V0
UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdp
c3RlcikKLSAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCi1lbmQKLQot
bWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0gICAgIyBO
b3RoaW5nIHRvIGRvIQotZW5kCi0KLSMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBl
eGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgotIyBpbiB0
MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCi1tYWNybyBwcm9sb2d1ZShj
b2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1Bh
dGgpCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQotICAgIAotICAgICMg
U2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgotICAgIHN0
b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQotICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCi0gICAgICAg
IGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQotICAgIGVuZAotICAgIGNvZGVCbG9ja0dldHRl
cih0MSkKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjpt
X2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFdLCAu
Y29udGludWUKLSAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQotICAgICAgICBt
b3ZlIHQxLCBjZnIKLSAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKLSAgICAgICAgbG9hZHAgUmV0
dXJuUENbY2ZyXSwgdDIKLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
dDIpCi0gICAgICAgIGptcCB0MAotICAgIC5yZWNvdmVyOgotICAgICAgICBjb2RlQmxvY2tHZXR0
ZXIodDEpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotICAgIGNvZGVCbG9ja1NldHRlcih0MSkK
LSAgICAKLSAgICAjIFNldCB1cCB0aGUgUEMuCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3Ry
dWN0aW9uc1t0MV0sIFBDCi1lbmQKLQotIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQx
LCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLSMgTXVzdCBjYWxsIGRp
c3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KLW1hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRp
b24ocHJvZmlsZUFyZ1NraXApCi0gICAgaWYgVkFMVUVfUFJPRklMRVIKLSAgICAgICAgIyBQcm9m
aWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0
byBkbyB0aGlzLiBUaGlzCi0gICAgICAgICMgY29kZSBpcyBwcmV0dHkgaG9ycmVuZG91cyBiZWNh
dXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5nIGJldHdlZW4KLSAgICAgICAgIyBhcmd1
bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBzaW1wbGUgbG9v
cC1kb3duLXRvLXplcm8KLSAgICAgICAgIyBsb29wLCBhbmQgdGhlIGRlc2lyZSB0byB1c2Ugb25s
eSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2VydmUgdGhlIFBDIGFuZAotICAgICAgICAj
IHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJl
d3JpdHRlbiBpbiBhIG1vcmUKLSAgICAgICAgIyBvcHRpbWFsIHdheSBmb3IgYXJjaGl0ZWN0dXJl
cyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJsZQotICAgICAgICAj
IGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnByZXRlci4KLSAgICAgICAgbG9hZGkgQ29k
ZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAotICAgICAgICBhZGRpIC1wcm9maWxlQXJn
U2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0aGUgcGVlcGhvbGUK
LSAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVxIHQwLCAwLCBvayBlbmQpCi0gICAgICAg
IGJ0aXogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCi0gICAgICAgIGxvYWRwIENvZGVCbG9jazo6
bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDFdLCB0MwotICAg
ICAgICBtdWxpIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFhaGhoaCEgTmVlZCBz
dHJlbmd0aCByZWR1Y3Rpb24hCi0gICAgICAgIG5lZ2kgdDAKLSAgICAgICAgbHNoaWZ0aSAzLCB0
MAotICAgICAgICBhZGRwIHQyLCB0MwotICAgIC5hcmd1bWVudFByb2ZpbGVMb29wOgotICAgICAg
ICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1Nr
aXAgKiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQz
Ci0gICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxl
ICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBUYWdPZmZzZXRbdDNdCi0gICAgICAgIGxvYWRp
IFRoaXNBcmd1bWVudE9mZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAg
KiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6
ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgUGF5bG9hZE9mZnNl
dFt0M10KLSAgICAgICAgYmFkZGlueiA4LCB0MCwgLmFyZ3VtZW50UHJvZmlsZUxvb3AKLSAgICAu
YXJndW1lbnRQcm9maWxlRG9uZToKLSAgICBlbmQKLSAgICAgICAgCi0gICAgIyBDaGVjayBzdGFj
ayBoZWlnaHQuCi0gICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0s
IHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDFdLCB0MgotICAgIGxvYWRw
IEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0MiAgICMgRklYTUU6IENhbiBnZXQgdG8g
dGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFja0ZyYW1lCi0gICAgbHNoaWZ0aSAzLCB0
MAotICAgIGFkZHAgdDAsIGNmciwgdDAKLSAgICBicGFlcSBJbnRlcnByZXRlcjo6bV9yZWdpc3Rl
ckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwgdDAsIC5zdGFja0hlaWdodE9LCi0KLSAg
ICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBzbG93X3BhdGgu
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdpc3Rlcl9maWxlX2NoZWNrKQotLnN0YWNrSGVp
Z2h0T0s6Ci1lbmQKLQogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBp
cyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVj
ayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1l
bnRDb3VudFtjZnJdLCB0MApAQCAtNTA2LDM4ICsyODMsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5
Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLV9sbGludF9w
cm9ncmFtX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVy
LCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xsaW50X2V2YWxfcHJvbG9ndWU6
Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29k
ZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCi0g
ICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWU6Ci0g
ICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVC
bG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQotLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luOgot
ICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMCkKLSAgICBkaXNwYXRjaCgwKQotICAgIAotCi1f
bGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZToKLSAgICBwcm9sb2d1ZShmdW5j
dGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIs
IF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCwgX2xsaW50X3RyYWNlX3By
b2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCi0uZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdp
bjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDEpCi0gICAgZGlzcGF0Y2goMCkKLSAgICAK
LQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1
bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9s
bGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNl
X2FyaXR5Q2hlY2tfZm9yX2NhbGwpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZv
ckNhbGxCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCi0KLQotX2xsaW50
X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2s6Ci0gICAgcHJvbG9ndWUoZnVuY3Rp
b25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBf
bGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywgX2xsaW50
X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NvbnN0cnVjdCkKLSAgICBmdW5jdGlvbkFyaXR5Q2hlY2so
LmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0X2Fy
aXR5Q2hlY2spCiAKICMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCiAKQEAgLTU4MywzOSAr
MzI4LDYgQEAgX2xsaW50X29wX2NyZWF0ZV9hcmd1bWVudHM6CiAgICAgZGlzcGF0Y2goMikKIAog
Ci1tYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5mb09m
ZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2UpCi0g
ICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKLSAgICAgICAgam1wIHNsb3dDYXNlCi0gICAgZWxz
ZQotICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0KLSAgICAgICAgICAgIEpTR2xv
YmFsRGF0YTo6aGVhcCArCi0gICAgICAgICAgICBIZWFwOjptX29iamVjdFNwYWNlICsKLSAgICAg
ICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKLSAgICAgICAgICAgIE1hcmtlZFNw
YWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKwotICAgICAgICAgICAgc2l6ZUNsYXNz
SW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCi0gICAgICAgIAotICAgICAgICAjIEZJWE1F
OiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9hZCBmcm9tIHRoZSBzdGFjay4K
LSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gxCi0gICAgICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRjaDEKLSAgICAgICAgCi0gICAg
ICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LiAgICAKLSAgICAgICAgbG9h
ZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxs
W3NjcmF0Y2gxXSwgcmVzdWx0Ci0gICAgICAgIGJ0cHogcmVzdWx0LCBzbG93Q2FzZQotICAgICAg
ICAKLSAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuCi0gICAg
ICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIG9m
ZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3Jh
dGNoMV0KLSAgICAKLSAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmplY3QuCi0gICAgICAgIGxv
YWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCi0gICAgICAgIHN0b3JlcCBz
Y3JhdGNoMiwgW3Jlc3VsdF0KLSAgICAgICAgc3RvcmVwIHN0cnVjdHVyZSwgSlNDZWxsOjptX3N0
cnVjdHVyZVtyZXN1bHRdCi0gICAgICAgIHN0b3JlcCAwLCBKU09iamVjdDo6bV9pbmhlcml0b3JJ
RFtyZXN1bHRdCi0gICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0Y2gx
Ci0gICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Jl
c3VsdF0KLSAgICBlbmQKLWVuZAotCiBfbGxpbnRfb3BfY3JlYXRlX3RoaXM6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGxvYWRpIDhbUENdLCB0MApAQCAtNjc2LDI0ICszODgsNiBAQCBfbGxp
bnRfb3BfbmV3X29iamVjdDoKICAgICBkaXNwYXRjaCgyKQogCiAKLV9sbGludF9vcF9uZXdfYXJy
YXk6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25ld19hcnJheSkKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9uZXdfYXJyYXlf
YnVmZmVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29w
X25ld19yZWdleHA6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX25ld19yZWdleHApCi0gICAgZGlzcGF0Y2goMykKLQotCiBfbGxpbnRfb3Bf
bW92OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDEKQEAgLTgwMiw3
ICs0OTYsNyBAQCBfbGxpbnRfb3BfbmVxX251bGw6CiAgICAgZGlzcGF0Y2goMykKIAogCi1tYWNy
byBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gc3RyaWN0RXEo
ZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBs
b2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MywgdDEpCkBA
IC04MjIsNyArNTE2LDcgQEAgbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3df
cAogICAgIGRpc3BhdGNoKDQpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgp
CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKDQpCiBlbmQKIApAQCAt
ODM2LDMwICs1MzAsNiBAQCBfbGxpbnRfb3BfbnN0cmljdGVxOgogICAgIHN0cmljdEVxKG1hY3Jv
IChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwgX2xs
aW50X3Nsb3dfcGF0aF9uc3RyaWN0ZXEpCiAKIAotX2xsaW50X29wX2xlc3M6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3MpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbGVzc2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzZXEpCi0gICAgZGlzcGF0Y2go
NCkKLQotCi1fbGxpbnRfb3BfZ3JlYXRlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcikKLSAgICBkaXNwYXRjaCg0KQotCi0K
LV9sbGludF9vcF9ncmVhdGVyZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXJlcSkKLSAgICBkaXNwYXRjaCg0KQotCi0KIF9s
bGludF9vcF9wcmVfaW5jOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA0W1BDXSwg
dDAKQEAgLTk2OCw3ICs2MzgsNyBAQCBfbGxpbnRfb3BfbmVnYXRlOgogICAgIGRpc3BhdGNoKDMp
CiAKIAotbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUs
IGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShp
bnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAg
bG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwMDYsMTggKzY3NiwxOCBAQCBtYWNybyBiaW5hcnlP
cEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgZGlzcGF0Y2goNSkKIAogLnNsb3c6Ci0g
ICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAg
ICAgZGlzcGF0Y2goNSkKIGVuZAogCi1tYWNybyBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBk
b3VibGVPcGVyYXRpb24sIHNsb3dfcGF0aCkKK21hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRp
b24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgK
ICAgICAgICAgbWFjcm8gKGludDMyVGFnLCBsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCiAgICAg
ICAgICAgICBpbnRlZ2VyT3BlcmF0aW9uKGxlZnQsIHJpZ2h0LCBzbG93KQogICAgICAgICAgICAg
c3RvcmVpIGludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCBpbmRleCwgOF0KICAgICAgICAgICAgIHN0
b3JlaSByaWdodCwgUGF5bG9hZE9mZnNldFtjZnIsIGluZGV4LCA4XQogICAgICAgICBlbmQsCi0g
ICAgICAgIGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorICAgICAgICBkb3VibGVPcGVyYXRp
b24sIHNsb3dQYXRoKQogZW5kCiAKIF9sbGludF9vcF9hZGQ6CkBAIC0xMDczLDEzICs3NDMsNyBA
QCBfbGxpbnRfb3BfZGl2OgogICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikKIAogCi1fbGxp
bnRfb3BfbW9kOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9tb2QpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1tYWNybyBiaXRPcChvcGVyYXRp
b24sIHNsb3dfcGF0aCwgYWR2YW5jZSkKK21hY3JvIGJpdE9wKG9wZXJhdGlvbiwgc2xvd1BhdGgs
IGFkdmFuY2UpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwOTMsNyArNzU3LDcgQEAg
bWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93X3BhdGgsIGFkdmFuYwogICAgIGRpc3BhdGNoKGFk
dmFuY2UpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKGFkdmFuY2UpCiBlbmQKIApAQCAtMTE5OCw2
NiArODYyLDYgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgZGlzcGF0Y2goNSkKIAogCi1f
bGxpbnRfb3BfdHlwZW9mOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF90eXBlb2YpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3Bf
aXNfdW5kZWZpbmVkOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9pc191bmRlZmluZWQpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRf
b3BfaXNfYm9vbGVhbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfaXNfYm9vbGVhbikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9v
cF9pc19udW1iZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX2lzX251bWJlcikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9p
c19zdHJpbmc6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2lzX3N0cmluZykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19v
YmplY3Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2lzX29iamVjdCkKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19mdW5j
dGlvbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaXNfZnVuY3Rpb24pCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaW46Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lu
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3Jlc29sdmU6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmUpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcmVzb2x2ZV9za2lwOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3NraXApCi0g
ICAgZGlzcGF0Y2goNSkKLQotCiBtYWNybyByZXNvbHZlR2xvYmFsKHNpemUsIHNsb3cpCiAgICAg
IyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93czoKICAgICAjIDRbUENdICAgRGVzdGluYXRpb24gZm9y
IHRoZSBsb2FkLgpAQCAtMTQwOCwzMCArMTAxMiw2IEBAIF9sbGludF9vcF9wdXRfZ2xvYmFsX3Zh
cjoKICAgICBkaXNwYXRjaCgzKQogCiAKLV9sbGludF9vcF9yZXNvbHZlX2Jhc2U6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVf
YmFzZSkKLSAgICBkaXNwYXRjaCg1KQotCi0KLV9sbGludF9vcF9lbnN1cmVfcHJvcGVydHlfZXhp
c3RzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50
X29wX3Jlc29sdmVfd2l0aF9iYXNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfYmFzZSkKLSAgICBkaXNwYXRjaCg1
KQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3dpdGhfdGhpczoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRoX3RoaXMpCi0g
ICAgZGlzcGF0Y2goNSkKLQotCiBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIHRyYWNlRXhlY3V0
aW9uKCkKICAgICAjIFdlIG9ubHkgZG8gbW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcgZm9y
IG5vdywgYW5kIHdlIGRvIG5vdCBtb2RpZnkgdGhlCkBAIC0xNTM5LDEyICsxMTE5LDYgQEAgX2xs
aW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKICAgICAgICAgZW5kKQogCiAKLV9s
bGludF9vcF9kZWxfYnlfaWQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKLSAgICBkaXNwYXRjaCg0KQotCi0KIF9sbGlu
dF9vcF9nZXRfYnlfdmFsOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDEKQEAgLTE2NTYsMjQgKzEyMzAsNiBAQCBfbGxpbnRfb3BfcHV0X2J5X3ZhbDoK
ICAgICBkaXNwYXRjaCg0KQogCiAKLV9sbGludF9vcF9kZWxfYnlfdmFsOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxfYnlfdmFsKQot
ICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9ieV9pbmRleDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X2luZGV4
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9nZXR0ZXJfc2V0dGVyOgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRf
Z2V0dGVyX3NldHRlcikKLSAgICBkaXNwYXRjaCg1KQotCi0KIF9sbGludF9vcF9sb29wOgogICAg
IG5vcAogX2xsaW50X29wX2ptcDoKQEAgLTE2ODEsMTIgKzEyMzcsNiBAQCBfbGxpbnRfb3Bfam1w
OgogICAgIGRpc3BhdGNoQnJhbmNoKDRbUENdKQogCiAKLV9sbGludF9vcF9qbXBfc2NvcGVzOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9q
bXBfc2NvcGVzKQotICAgIGRpc3BhdGNoKDApCi0KLQogbWFjcm8ganVtcFRydWVPckZhbHNlKGNv
bmRpdGlvbk9wLCBzbG93KQogICAgIGxvYWRpIDRbUENdLCB0MQogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVQYXlsb2FkKHQxLCBCb29sZWFuVGFnLCB0MCwgLnNsb3cpCkBAIC0xNzAxLDI2ICsx
MjUxLDEwIEBAIG1hY3JvIGp1bXBUcnVlT3JGYWxzZShjb25kaXRpb25PcCwgc2xvdykKICAgICBk
aXNwYXRjaCgwKQogZW5kCiAKLV9sbGludF9vcF9sb29wX2lmX3RydWU6Ci0gICAgbm9wCi1fbGxp
bnRfb3BfanRydWU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGp1bXBUcnVlT3JGYWxzZSgK
LSAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0aW56IHZhbHVlLCB0YXJnZXQgZW5kLAot
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2p0cnVlKQotCi0KLV9sbGludF9vcF9sb29wX2lmX2Zh
bHNlOgotICAgIG5vcAotX2xsaW50X29wX2pmYWxzZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAganVtcFRydWVPckZhbHNlKAotICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRpeiB2
YWx1ZSwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZmFsc2UpCi0KIAog
bWFjcm8gZXF1YWxOdWxsKGNlbGxIYW5kbGVyLCBpbW1lZGlhdGVIYW5kbGVyKQogICAgIGxvYWRp
IDRbUENdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQogICAgIGxvYWRpIFRhZ09mZnNl
dFtjZnIsIHQwLCA4XSwgdDEKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0
MAogICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAuaW1tZWRpYXRlCkBAIC0xNzYzLDcgKzEyOTcsNyBA
QCBfbGxpbnRfb3Bfam5lcV9wdHI6CiAgICAgZGlzcGF0Y2goNCkKIAogCi1tYWNybyBjb21wYXJl
KGludGVnZXJDb21wYXJlLCBkb3VibGVDb21wYXJlLCBzbG93X3BhdGgpCittYWNybyBjb21wYXJl
KGludGVnZXJDb21wYXJlLCBkb3VibGVDb21wYXJlLCBzbG93UGF0aCkKICAgICBsb2FkaSA0W1BD
XSwgdDIKICAgICBsb2FkaSA4W1BDXSwgdDMKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQy
LCB0MCwgdDEpCkBAIC0xNzk3LDg3ICsxMzMxLDEwIEBAIG1hY3JvIGNvbXBhcmUoaW50ZWdlckNv
bXBhcmUsIGRvdWJsZUNvbXAKICAgICBkaXNwYXRjaEJyYW5jaCgxMltQQ10pCiAKIC5zbG93Ogot
ICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQog
ICAgIGRpc3BhdGNoKDApCiBlbmQKIAotX2xsaW50X29wX2xvb3BfaWZfbGVzczoKLSAgICBub3AK
LV9sbGludF9vcF9qbGVzczoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHQgbGVmdCwgcmlnaHQsIHRhcmdl
dCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0IGxlZnQsIHJp
Z2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2psZXNzKQotCi0KLV9s
bGludF9vcF9qbmxlc3M6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAg
ICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdl
dCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0ZXF1biBsZWZ0
LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmxlc3MpCi0K
LQotX2xsaW50X29wX2xvb3BfaWZfZ3JlYXRlcjoKLSAgICBub3AKLV9sbGludF9vcF9qZ3JlYXRl
cjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAg
IG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5k
LAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyKQotCi0KLV9sbGludF9vcF9qbmdy
ZWF0ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3Jv
IChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXF1biBsZWZ0LCByaWdodCwg
dGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXIpCi0KLQotX2xs
aW50X29wX2xvb3BfaWZfbGVzc2VxOgotICAgIG5vcAotX2xsaW50X29wX2psZXNzZXE6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3Jv
IChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIF9sbGludF9zbG93X3BhdGhfamxlc3NlcSkKLQotCi1fbGxpbnRfb3Bfam5sZXNzZXE6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0
LCByaWdodCwgdGFyZ2V0KSBiaWd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndHVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5k
LAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzc2VxKQotCi0KLV9sbGludF9vcF9sb29w
X2lmX2dyZWF0ZXJlcToKLSAgICBub3AKLV9sbGludF9vcF9qZ3JlYXRlcmVxOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRh
cmdldCkgYmlndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmRndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyZXEpCi0KLQotX2xsaW50X29wX2puZ3JlYXRlcmVx
OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHR1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXJlcSkKLQotCi1fbGxpbnRfb3Bf
bG9vcF9oaW50OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjaGVja1N3aXRjaFRvSklURm9y
TG9vcCgpCi0gICAgZGlzcGF0Y2goMSkKLQogCiBfbGxpbnRfb3Bfc3dpdGNoX2ltbToKICAgICB0
cmFjZUV4ZWN1dGlvbigpCkBAIC0xOTMzLDE5ICsxMzkwLDEzIEBAIF9sbGludF9vcF9zd2l0Y2hf
Y2hhcjoKICAgICBiaWFlcSB0MCwgU2ltcGxlSnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVj
dG9yU2l6ZU9mZnNldFt0Ml0sIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAogICAgIGxvYWRwIFNp
bXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQy
CiAgICAgbG9hZGkgW3QyLCB0MCwgNF0sIHQxCi0gICAgYnRpeiB0MSwgLm9wU3dpdGNoSW1tRmFs
bFRocm91Z2gKKyAgICBidGl6IHQxLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKICAgICBkaXNw
YXRjaEJyYW5jaFdpdGhPZmZzZXQodDEpCiAKIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaDoKICAg
ICBkaXNwYXRjaEJyYW5jaCg4W1BDXSkKIAogCi1fbGxpbnRfb3Bfc3dpdGNoX3N0cmluZzoKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3dp
dGNoX3N0cmluZykKLSAgICBkaXNwYXRjaCgwKQotCi0KIF9sbGludF9vcF9uZXdfZnVuYzoKICAg
ICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgYnRpeiAxMltQQ10sIC5vcE5ld0Z1bmNVbmNoZWNrZWQK
QEAgLTE5NTcsMTMgKzE0MDgsNyBAQCBfbGxpbnRfb3BfbmV3X2Z1bmM6CiAgICAgZGlzcGF0Y2go
NCkKIAogCi1fbGxpbnRfb3BfbmV3X2Z1bmNfZXhwOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfZnVuY19leHApCi0gICAgZGlzcGF0
Y2goMykKLQotCi1tYWNybyBkb0NhbGwoc2xvd19wYXRoKQorbWFjcm8gZG9DYWxsKHNsb3dQYXRo
KQogICAgIGxvYWRpIDRbUENdLCB0MAogICAgIGxvYWRpIDE2W1BDXSwgdDEKICAgICBsb2FkcCBM
TEludENhbGxMaW5rSW5mbzo6Y2FsbGVlW3QxXSwgdDIKQEAgLTE5ODcsNjYgKzE0MzIsOSBAQCBt
YWNybyBkb0NhbGwoc2xvd19wYXRoKQogICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIAogLm9wQ2Fs
bFNsb3c6Ci0gICAgc2xvd1BhdGhGb3JDYWxsKDYsIHNsb3dfcGF0aCkKKyAgICBzbG93UGF0aEZv
ckNhbGwoNiwgc2xvd1BhdGgpCiBlbmQKIAotX2xsaW50X29wX2NhbGw6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NhbGwpCi0KLQotX2xsaW50X29w
X2NvbnN0cnVjdDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgZG9DYWxsKF9sbGludF9zbG93
X3BhdGhfY29uc3RydWN0KQotCi0KLV9sbGludF9vcF9jYWxsX3ZhcmFyZ3M6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBfbGxpbnRfc2xvd19wYXRoX2NhbGxf
dmFyYXJncykKLQotCi1fbGxpbnRfb3BfY2FsbF9ldmFsOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICAKLSAgICAjIEV2YWwgaXMgZXhlY3V0ZWQgaW4gb25lIG9mIHR3byBtb2RlczoKLSAgICAj
Ci0gICAgIyAxKSBXZSBmaW5kIHRoYXQgd2UncmUgcmVhbGx5IGludm9raW5nIGV2YWwoKSBpbiB3
aGljaCBjYXNlIHRoZQotICAgICMgICAgZXhlY3V0aW9uIGlzIHBlcmZvbWVkIGVudGlyZWx5IGlu
c2lkZSB0aGUgc2xvd19wYXRoLCBhbmQgaXQKLSAgICAjICAgIHJldHVybnMgdGhlIFBDIG9mIGEg
ZnVuY3Rpb24gdGhhdCBqdXN0IHJldHVybnMgdGhlIHJldHVybiB2YWx1ZQotICAgICMgICAgdGhh
dCB0aGUgZXZhbCByZXR1cm5lZC4KLSAgICAjCi0gICAgIyAyKSBXZSBmaW5kIHRoYXQgd2UncmUg
aW52b2tpbmcgc29tZXRoaW5nIGNhbGxlZCBldmFsKCkgdGhhdCBpcyBub3QKLSAgICAjICAgIHRo
ZSByZWFsIGV2YWwuIFRoZW4gdGhlIHNsb3dfcGF0aCByZXR1cm5zIHRoZSBQQyBvZiB0aGUgdGhp
bmcgdG8KLSAgICAjICAgIGNhbGwsIGFuZCB3ZSBjYWxsIGl0LgotICAgICMKLSAgICAjIFRoaXMg
YWxsb3dzIHVzIHRvIGhhbmRsZSB0d28gY2FzZXMsIHdoaWNoIHdvdWxkIHJlcXVpcmUgYSB0b3Rh
bCBvZgotICAgICMgdXAgdG8gZm91ciBwaWVjZXMgb2Ygc3RhdGUgdGhhdCBjYW5ub3QgYmUgZWFz
aWx5IHBhY2tlZCBpbnRvIHR3bwotICAgICMgcmVnaXN0ZXJzIChDIGZ1bmN0aW9ucyBjYW4gcmV0
dXJuIHVwIHRvIHR3byByZWdpc3RlcnMsIGVhc2lseSk6Ci0gICAgIwotICAgICMgLSBUaGUgY2Fs
bCBmcmFtZSByZWdpc3Rlci4gVGhpcyBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4gbW9kaWZpZWQK
LSAgICAjICAgYnkgdGhlIHNsb3dfcGF0aCwgYnV0IHRoZSBjb252ZW50aW9uIGlzIHRoYXQgaXQg
cmV0dXJucyBpdC4gSXQncyBub3QKLSAgICAjICAgdG90YWxseSBjbGVhciBpZiB0aGF0J3MgbmVj
ZXNzYXJ5LCBzaW5jZSB0aGUgY2ZyIGlzIGNhbGxlZSBzYXZlLgotICAgICMgICBCdXQgdGhhdCdz
IG91ciBzdHlsZSBpbiB0aGlzIGhlcmUgaW50ZXJwcmV0ZXIgc28gd2Ugc3RpY2sgd2l0aCBpdC4K
LSAgICAjCi0gICAgIyAtIEEgYml0IHRvIHNheSBpZiB0aGUgc2xvd19wYXRoIHN1Y2Nlc3NmdWxs
eSBleGVjdXRlZCB0aGUgZXZhbCBhbmQgaGFzCi0gICAgIyAgIHRoZSByZXR1cm4gdmFsdWUsIG9y
IGRpZCBub3QgZXhlY3V0ZSB0aGUgZXZhbCBidXQgaGFzIGEgUEMgZm9yIHVzCi0gICAgIyAgIHRv
IGNhbGwuCi0gICAgIwotICAgICMgLSBFaXRoZXI6Ci0gICAgIyAgIC0gVGhlIEpTIHJldHVybiB2
YWx1ZSAodHdvIHJlZ2lzdGVycyksIG9yCi0gICAgIwotICAgICMgICAtIFRoZSBQQyB0byBjYWxs
LgotICAgICMKLSAgICAjIEl0IHR1cm5zIG91dCB0byBiZSBlYXNpZXIgdG8ganVzdCBhbHdheXMg
aGF2ZSB0aGlzIHJldHVybiB0aGUgY2ZyCi0gICAgIyBhbmQgYSBQQyB0byBjYWxsLCBhbmQgdGhh
dCBQQyBtYXkgYmUgYSBkdW1teSB0aHVuayB0aGF0IGp1c3QKLSAgICAjIHJldHVybnMgdGhlIEpT
IHZhbHVlIHRoYXQgdGhlIGV2YWwgcmV0dXJuZWQuCi0gICAgCi0gICAgc2xvd1BhdGhGb3JDYWxs
KDQsIF9sbGludF9zbG93X3BhdGhfY2FsbF9ldmFsKQotCi0KLV9sbGludF9nZW5lcmljX3JldHVy
bl9wb2ludDoKLSAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCi0KIAogX2xsaW50X29wX3RlYXJfb2Zm
X2FjdGl2YXRpb246CiAgICAgdHJhY2VFeGVjdXRpb24oKQpAQCAtMjA3MCwxMyArMTQ1OCw2IEBA
IF9sbGludF9vcF90ZWFyX29mZl9hcmd1bWVudHM6CiAgICAgZGlzcGF0Y2goMikKIAogCi1tYWNy
byBkb1JldHVybigpCi0gICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICBsb2FkcCBDYWxs
ZXJGcmFtZVtjZnJdLCBjZnIKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0
MikKLSAgICByZXQKLWVuZAotCiBfbGxpbnRfb3BfcmV0OgogICAgIHRyYWNlRXhlY3V0aW9uKCkK
ICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQpAQCAtMjExMSwxOCArMTQ5Miw2IEBA
IF9sbGludF9vcF9yZXRfb2JqZWN0X29yX3RoaXM6CiAgICAgZG9SZXR1cm4oKQogCiAKLV9sbGlu
dF9vcF9tZXRob2RfY2hlY2s6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgICMgV2UgaWdub3Jl
IG1ldGhvZCBjaGVja3MgYW5kIHVzZSBub3JtYWwgZ2V0X2J5X2lkIG9wdGltaXphdGlvbnMuCi0g
ICAgZGlzcGF0Y2goMSkKLQotCi1fbGxpbnRfb3Bfc3RyY2F0OgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zdHJjYXQpCi0gICAgZGlzcGF0
Y2goNCkKLQotCiBfbGxpbnRfb3BfdG9fcHJpbWl0aXZlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkK
ICAgICBsb2FkaSA4W1BDXSwgdDIKQEAgLTIxNDEsMTIgKzE1MTAsNiBAQCBfbGxpbnRfb3BfdG9f
cHJpbWl0aXZlOgogICAgIGRpc3BhdGNoKDMpCiAKIAotX2xsaW50X29wX2dldF9wbmFtZXM6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dl
dF9wbmFtZXMpCi0gICAgZGlzcGF0Y2goMCkgIyBUaGUgc2xvd19wYXRoIGVpdGhlciBhZHZhbmNl
cyB0aGUgUEMgb3IganVtcHMgdXMgdG8gc29tZXdoZXJlIGVsc2UuCi0KLQogX2xsaW50X29wX25l
eHRfcG5hbWU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDEyW1BDXSwgdDEKQEAg
LTIxODcsMjQgKzE1NTAsNiBAQCBfbGxpbnRfb3BfbmV4dF9wbmFtZToKICAgICBkaXNwYXRjaCgw
KQogCiAKLV9sbGludF9vcF9wdXNoX3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX3Njb3BlKQotICAgIGRpc3BhdGNoKDIp
Ci0KLQotX2xsaW50X29wX3BvcF9zY29wZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9wX3Njb3BlKQotICAgIGRpc3BhdGNoKDEpCi0K
LQotX2xsaW50X29wX3B1c2hfbmV3X3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX25ld19zY29wZSkKLSAgICBkaXNwYXRj
aCg0KQotCi0KIF9sbGludF9vcF9jYXRjaDoKICAgICAjIFRoaXMgaXMgd2hlcmUgd2UgZW5kIHVw
IGZyb20gdGhlIEpJVCdzIHRocm93IHRyYW1wb2xpbmUgKGJlY2F1c2UgdGhlCiAgICAgIyBtYWNo
aW5lIGNvZGUgcmV0dXJuIGFkZHJlc3Mgd2lsbCBiZSBzZXQgdG8gX2xsaW50X29wX2NhdGNoKSwg
YW5kIGZyb20KQEAgLTIyMjYsMTggKzE1NzEsNiBAQCBfbGxpbnRfb3BfY2F0Y2g6CiAgICAgZGlz
cGF0Y2goMikKIAogCi1fbGxpbnRfb3BfdGhyb3c6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Rocm93KQotICAgIGRpc3BhdGNoKDIpCi0K
LQotX2xsaW50X29wX3Rocm93X3JlZmVyZW5jZV9lcnJvcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3dfcmVmZXJlbmNlX2Vycm9y
KQotICAgIGRpc3BhdGNoKDIpCi0KLQogX2xsaW50X29wX2pzcjoKICAgICB0cmFjZUV4ZWN1dGlv
bigpCiAgICAgbG9hZGkgNFtQQ10sIHQwCkBAIC0yMjUzLDEyICsxNTg2LDYgQEAgX2xsaW50X29w
X3NyZXQ6CiAgICAgZGlzcGF0Y2goMCkKIAogCi1fbGxpbnRfb3BfZGVidWc6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlYnVnKQotICAg
IGRpc3BhdGNoKDQpCi0KLQogX2xsaW50X29wX3Byb2ZpbGVfd2lsbF9jYWxsOgogICAgIHRyYWNl
RXhlY3V0aW9uKCkKICAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZl
cmVuY2Vbc3BdLCB0MApAQCAtMjMwMSw3ICsxNjI4LDYgQEAgX2xsaW50X3Rocm93X2R1cmluZ19j
YWxsX3RyYW1wb2xpbmU6CiAgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJv
d1t0MV0sIHQwCiAgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3db
dDFdCiAKLQogbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVu
Y3Rpb24pCiAgICAgc3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCiAgICAgbG9hZHAgQ2FsbGVyRnJh
bWVbY2ZyXSwgdDAKQEAgLTIzNDksNzEgKzE2NzUsMyBAQCBfbGxpbnRfbmF0aXZlX2NvbnN0cnVj
dF90cmFtcG9saW5lOgogICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6
Om1fY29uc3RydWN0b3IpCiAKIAotIyBMYXN0bHksIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBsaW5r
IGV2ZW4gdGhvdWdoIHdlIGRvbid0IHN1cHBvcnQgYWxsIG9wY29kZXMuCi0jIFRoZXNlIG9wY29k
ZXMgc2hvdWxkIG5ldmVyIGFyaXNlIHdoZW4gdXNpbmcgTExJbnQgb3IgZWl0aGVyIEpJVC4gV2Ug
YXNzZXJ0Ci0jIGFzIG11Y2guCi0KLW1hY3JvIG5vdFN1cHBvcnRlZCgpCi0gICAgaWYgQVNTRVJU
X0VOQUJMRUQKLSAgICAgICAgY3Jhc2goKQotICAgIGVsc2UKLSAgICAgICAgIyBXZSBzaG91bGQg
dXNlIHdoYXRldmVyIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBpcywganVzdCB0
bwotICAgICAgICAjIGVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgZ2FwIGJldHdlZW4gaW5zdHJ1Y3Rp
b24gbGFiZWxzLiBJZiBtdWx0aXBsZQotICAgICAgICAjIHNtYWxsZXN0IGluc3RydWN0aW9ucyBl
eGlzdCwgd2Ugc2hvdWxkIHBpY2sgdGhlIG9uZSB0aGF0IGlzIG1vc3QKLSAgICAgICAgIyBsaWtl
bHkgcmVzdWx0IGluIGV4ZWN1dGlvbiBiZWluZyBoYWx0ZWQuIEN1cnJlbnRseSB0aGF0IGlzIHRo
ZSBicmVhawotICAgICAgICAjIGluc3RydWN0aW9uIG9uIGFsbCBhcmNoaXRlY3R1cmVzIHdlJ3Jl
IGludGVyZXN0ZWQgaW4uIChCcmVhayBpcyBpbnQzCi0gICAgICAgICMgb24gSW50ZWwsIHdoaWNo
IGlzIDEgYnl0ZSwgYW5kIGJrcHQgb24gQVJNdjcsIHdoaWNoIGlzIDIgYnl0ZXMuKQotICAgICAg
ICBicmVhawotICAgIGVuZAotZW5kCi0KLV9sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgotICAg
IG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY2hhaW46Ci0gICAgbm90U3Vw
cG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fY2hhaW46Ci0gICAgbm90U3Vw
cG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fcHJvdG86Ci0gICAgbm90U3Vw
cG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fc2VsZjoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9ydGVk
KCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW46Ci0gICAgbm90U3VwcG9ydGVk
KCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVk
KCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX3Byb3RvOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9s
bGludF9vcF9nZXRfYnlfaWRfc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3Bf
Z2V0X3N0cmluZ19sZW5ndGg6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9i
eV9pZF9nZW5lcmljOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRf
cmVwbGFjZToKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5z
aXRpb246Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotCi0jIEluZGljYXRlIHRoZSBlbmQgb2YgTExJ
bnQuCi1fbGxpbnRfZW5kOgotICAgIGNyYXNoKCkKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJldmlzaW9u
IDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJl
dGVyNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiwxMzM4IEBACiAjIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogCi0jIE5vdCBzdXBwb3J0ZWQgeWV0LCBzbyBnaXZl
IHVwLgotZXJyb3IKKyMgU29tZSB2YWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMuCitjb25z
dCBUYWdCaXRUeXBlT3RoZXIgPSAweDIKK2NvbnN0IFRhZ0JpdEJvb2wgICAgICA9IDB4NAorY29u
c3QgVGFnQml0VW5kZWZpbmVkID0gMHg4Citjb25zdCBWYWx1ZUVtcHR5ICAgICAgPSAweDAKK2Nv
bnN0IFZhbHVlRmFsc2UgICAgICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wKK2NvbnN0
IFZhbHVlVHJ1ZSAgICAgICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wgfCAxCitjb25z
dCBWYWx1ZVVuZGVmaW5lZCAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRVbmRlZmluZWQKK2Nv
bnN0IFZhbHVlTnVsbCAgICAgICA9IFRhZ0JpdFR5cGVPdGhlcgorCisjIFV0aWxpdGllcy4KK21h
Y3JvIGRpc3BhdGNoKGFkdmFuY2UpCisgICAgYWRkaSBhZHZhbmNlLCBQQworICAgIGptcCBbUEIs
IFBDLCA4XQorZW5kCisKK21hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKKyAgICBsb2FkaSBBcmd1
bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IFBCCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1tQQl0sIFBCCisgICAgam1w
IFtQQiwgUEMsIDhdCitlbmQKKworbWFjcm8gY0NhbGwyKGZ1bmN0aW9uLCBhcmcxLCBhcmcyKQor
ICAgIG1vdmUgYXJnMSwgdDAKKyAgICBtb3ZlIGFyZzIsIHQxCisgICAgY2FsbCBmdW5jdGlvbgor
ZW5kCisKKyMgVGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5kIGFyZzQgc2hvdWxkIHByb2JhYmx5
IGJlIGltbWVkaWF0ZXMuCittYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMs
IGFyZzQpCisgICAgbW92ZSBhcmcxLCB0MAorICAgIG1vdmUgYXJnMiwgdDEKKyAgICBtb3ZlIGFy
ZzMsIHQyCisgICAgbW92ZSBhcmc0LCB0MworICAgIGNhbGwgZnVuY3Rpb24KK2VuZAorCittYWNy
byBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbGVhcCBbUEIsIFBDLCA4XSwgUEMKK2VuZAor
CittYWNybyByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKKyAgICBtb3ZlIHQwLCBQQworICAgIG1v
dmUgdDEsIGNmcgorICAgIHN1YnAgUEIsIFBDCisgICAgdXJzaGlmdGkgMywgUEMKK2VuZAorCitt
YWNybyBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQor
ICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxs
KCkKK2VuZAorCittYWNybyB0cmFjZU9wZXJhbmQoZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHBy
ZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDQoX2xsaW50X3RyYWNlX29wZXJhbmQsIGNm
ciwgUEMsIGZyb21XaGVyZSwgb3BlcmFuZCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkK
K2VuZAorCittYWNybyB0cmFjZVZhbHVlKGZyb21XaGVyZSwgb3BlcmFuZCkKKyAgICBwcmVwYXJl
U3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGw0KF9sbGludF90cmFjZV92YWx1ZSwgY2ZyLCBQQywg
ZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorZW5kCisK
KyMgQ2FsbCBhIHNsb3cgcGF0aCBmb3IgY2FsbCBjYWxsIG9wY29kZXMuCittYWNybyBjYWxsQ2Fs
bFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dQYXRoLCBhY3Rpb24pCisgICAgYWRkaSBhZHZhbmNlLCBQ
QywgdDAKKyAgICBzdG9yZWkgdDAsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQorICAg
IHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCisg
ICAgbW92ZSB0MSwgY2ZyCisgICAgYWN0aW9uKHQwKQorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNo
VG9KSVRGb3JMb29wKCkKKyAgICBjaGVja1N3aXRjaFRvSklUKAorICAgICAgICAxLAorICAgICAg
ICBtYWNybygpCisgICAgICAgICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZz
ZXRbY2ZyXQorICAgICAgICAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgICAgICAgICAg
Y0NhbGwyKF9sbGludF9sb29wX29zciwgY2ZyLCBQQykKKyAgICAgICAgICAgIG1vdmUgdDEsIGNm
cgorICAgICAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgICAgIGptcCB0MAorICAg
ICAgICAucmVjb3ZlcjoKKyAgICAgICAgICAgIGxvYWRwIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZz
ZXRbY2ZyXSwgUEMKKyAgICAgICAgZW5kKQorZW5kCisKKyMgSW5kZXggYW5kIHZhbHVlIG11c3Qg
YmUgZGlmZmVyZW50IHJlZ2lzdGVycy4gSW5kZXggbWF5IGJlIGNsb2JiZXJlZC4KK21hY3JvIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoaW5kZXgsIHZhbHVlKQorICAgIGJwZ3RlcSBpbmRleCwgRmly
c3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIC5jb25zdGFudAorICAgIGxvYWRwIFtjZnIsIGluZGV4
LCA4XSwgdmFsdWUKKyAgICBqbXAgLmRvbmUKKy5jb25zdGFudDoKKyAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdmFsdWUKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fY29uc3RhbnRSZWdpc3RlcnMg
KyBWZWN0b3JCdWZmZXJPZmZzZXRbdmFsdWVdLCB2YWx1ZQorICAgIHN1YnAgRmlyc3RDb25zdGFu
dFJlZ2lzdGVySW5kZXgsIGluZGV4CisgICAgbG9hZHAgW3ZhbHVlLCBpbmRleCwgOF0sIHZhbHVl
CisuZG9uZToKK2VuZAorCittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIoaW5kZXgs
IHZhbHVlLCBzbG93KQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoaW5kZXgsIHZhbHVlKQor
ICAgIGJwYiB2YWx1ZSwgdGFnVHlwZU51bWJlciwgc2xvdworZW5kCisKK21hY3JvIGxvYWRDb25z
dGFudE9yVmFyaWFibGVDZWxsKGluZGV4LCB2YWx1ZSwgc2xvdykKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBidHBueiB2YWx1ZSwgdGFnTWFzaywgc2xvdwor
ZW5kCisKK21hY3JvIHdyaXRlQmFycmllcih2YWx1ZSkKKyAgICAjIE5vdGhpbmcgdG8gZG8sIHNp
bmNlIHdlIGRvbid0IGhhdmUgYSBnZW5lcmF0aW9uYWwgb3IgaW5jcmVtZW50YWwgY29sbGVjdG9y
LgorZW5kCisKK21hY3JvIHZhbHVlUHJvZmlsZSh2YWx1ZSwgcHJvZmlsZSkKKyAgICBpZiBWQUxV
RV9QUk9GSUxFUgorICAgICAgICBzdG9yZXAgdmFsdWUsIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRz
W3Byb2ZpbGVdCisgICAgZW5kCitlbmQKKworCisjIEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVy
cHJldGVyLgorCisjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdo
YXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgorbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvd19wYXRoKQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENv
dW50W2Nmcl0sIHQwCisgICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3Qx
XSwgZG9uZUxhYmVsCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsMihzbG93
X3BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6
IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9PiBlcnJvcgorICAgIG1vdmUgdDEsIGNmcgor
ICAgIGJ0aXogdDAsIC5jb250aW51ZQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERh
dGFbc3BdLCB0MQorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDFd
LCB0MAorICAgIGptcCBKU0dsb2JhbERhdGE6OnRhcmdldE1hY2hpbmVQQ0ZvclRocm93W3QxXQor
LmNvbnRpbnVlOgorICAgICMgUmVsb2FkIENvZGVCbG9jayBhbmQgcmVzZXQgUEMsIHNpbmNlIHRo
ZSBzbG93X3BhdGggY2xvYmJlcmVkIHRoZW0uCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQx
CisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBCCisgICAgbW92ZSAw
LCBQQworICAgIGptcCBkb25lTGFiZWwKK2VuZAorCisKKyMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50
YXRpb25zCisKK19sbGludF9vcF9lbnRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9h
ZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVZhcnNbdDJd
LCB0MgorICAgIGJ0aXogdDIsIC5vcEVudHJ5RG9uZQorICAgIG1vdmUgVmFsdWVVbmRlZmluZWQs
IHQwCisub3BFbnRlckxvb3A6CisgICAgc3ViaSAxLCB0MgorICAgIHN0b3JlcCB0MCwgW2Nmciwg
dDIsIDhdCisgICAgYnRpbnogdDIsIC5vcEVudGVyTG9vcAorLm9wRW50ZXJEb25lOgorICAgIGRp
c3BhdGNoKDEpCisKKworX2xsaW50X29wX2NyZWF0ZV9hY3RpdmF0aW9uOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgYnBuZXEgW2NmciwgdDAs
IDhdLCBWYWx1ZUVtcHR5LCAub3BDcmVhdGVBY3RpdmF0aW9uRG9uZQorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV9hY3RpdmFpdG9uKQorLm9wQ3JlYXRlQWN0aXZhdGlv
bkRvbmU6CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfaW5pdF9sYXp5X3JlZzoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIHN0b3Jl
cCBWYWx1ZUVtcHR5LCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9v
cF9jcmVhdGVfYXJndW1lbnRzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BC
LCBQQywgOF0sIHQwCisgICAgYnBuZXEgW2NmciwgdDAsIDhdLCBWYWx1ZUVtcHR5LCAub3BDcmVh
dGVBcmd1bWVudHNEb25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRl
X2FyZ3VtZW50cykKKy5vcENyZWF0ZUFyZ3VtZW50c0RvbmU6CisgICAgZGlzcGF0Y2goMikKKwor
CitfbGxpbnRfb3BfY3JlYXRlX3RoaXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRp
IDE2W1BCLCBQQywgOF0sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCisgICAgbG9hZHAg
W2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAub3BDcmVhdGVUaGlzU2xv
dworICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGJiYiBTdHJ1Y3R1
cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QxXSwgT2JqZWN0VHlwZSwgLm9wQ3Jl
YXRlVGhpc1Nsb3cKKyAgICBsb2FkcCBKU09iamVjdDo6bV9pbmhlcml0b3JJRFt0MF0sIHQyCisg
ICAgYnRweiB0MiwgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qo
SlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4LCBKU0dsb2JhbERhdGE6OmpzRmluYWxPYmplY3RD
bGFzc0luZm8sIHQyLCB0MCwgdDEsIHQzLCAub3BDcmVhdGVUaGlzU2xvdykKKyAgICBsb2FkaSA4
W1BCLCBQQywgOF0sIHQxCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRj
aCg4KQorCisub3BDcmVhdGVUaGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9jcmVhdGVfdGhpcykKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9nZXRfY2Fs
bGVlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisg
ICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQxCisgICAgc3RvcmVwIHQxLCBbY2ZyLCB0MCwgOF0KKyAg
ICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9jb252ZXJ0X3RoaXM6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBbY2ZyLCB0MCwg
OF0sIHQwCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcENvbnZlcnRUaGlzU2xvdworICAgIGxv
YWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MAorICAgIGJiYiBTdHJ1Y3R1cmU6Om1fdHlw
ZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QwXSwgT2JqZWN0VHlwZSwgLm9wQ29udmVydFRoaXNT
bG93CisgICAgZGlzcGF0Y2goMikKKworLm9wQ29udmVydFRoaXNTbG93OgorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2NvbnZlcnRfdGhpcykKKyAgICBkaXNwYXRjaCgyKQorCisK
K19sbGludF9vcF9uZXdfb2JqZWN0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3Qw
XSwgdDAKKyAgICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9lbXB0eU9iamVjdFN0cnVjdHVyZVt0
MF0sIHQxCisgICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xhc3NJ
bmRleCwgSlNHbG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MSwgdDAsIHQyLCB0
MywgLm9wTmV3T2JqZWN0U2xvdykKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgc3Rv
cmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisub3BOZXdPYmplY3RTbG93
OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19vYmplY3QpCisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfbW92OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBs
b2FkaSAxNltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MikKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQwLCA4
XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX25vdDoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0s
IHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIpCisgICAgeG9ycCBWYWx1ZUZh
bHNlLCB0MgorICAgIGJ0cG56IHQyLCB+MSwgLm9wTm90U2xvdworICAgIHhvcnAgVmFsdWVUcnVl
LCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9w
Tm90U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ub3QpCisgICAgZGlz
cGF0Y2goMykKKworCittYWNybyBlcXVhbGl0eUNvbXBhcmlzb24oaW50ZWdlckNvbXBhcmlzb24s
IHNsb3dQYXRoKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhd
LCB0MAorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGkgOFtQQiwgUEMsIDhd
LCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MCwgdDEsIC5zbG93KQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MiwgdDAsIC5zbG93KQorICAgIGludGVnZXJD
b21wYXJpc29uKHQwLCB0MSwgdDApCisgICAgb3JwIFZhbHVlRmFsc2UsIHQwCisgICAgc3RvcmVw
IHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0KQorCisuc2xvdzoKKyAgICBjYWxsU2xv
d1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goNCkKK2VuZAorCitfbGxpbnRfb3BfZXE6Cisg
ICAgZXF1YWxpdHlDb21wYXJpc29uKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3Vs
dCkgY2llcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9lcSkKKworCitfbGxpbnRfb3BfbmVxOgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigKKyAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQg
ZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2VxKQorCisKK21hY3JvIGVxdWFsTnVsbENv
bXBhcmlzb24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgW2Nmciwg
dDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAuaW1tZWRpYXRlCisgICAgbG9hZHAg
SlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQyCisgICAgdGJueiBTdHJ1Y3R1cmU6Om1fdHlwZUlu
Zm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0Ml0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHQwCisg
ICAgam1wIC5kb25lCisuaW1tZWRpYXRlOgorICAgIGFuZHAgflRhZ0JpdFVuZGVmaW5lZCwgdDAK
KyAgICBjcGVxIHQwLCBWYWx1ZU51bGwsIHQwCisuZG9uZToKK2VuZAorCitfbGxpbnRfb3BfZXFf
bnVsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZXF1YWxOdWxsQ29tcGFyaXNvbigpCisg
ICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0
b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfbmVx
X251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbENvbXBhcmlzb24oKQor
ICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICB4b3JwIFZhbHVlVHJ1ZSwgdDAKKyAgICBz
dG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworbWFjcm8gc3RyaWN0
RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQyCisg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZSh0MiwgdDApCisgICAgbW92ZSB0MCwgdDIKKyAgICBvcnAgdDEsIHQyCisgICAgYnRweiB0
MiwgdGFnTWFzaywgLnNsb3cKKyAgICBicGFlcSB0MCwgdGFnVHlwZU51bWJlciwgLmxlZnRPSwor
ICAgIGJ0cG56IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworLmxlZnRPSzoKKyAgICBicGFlcSB0
MSwgdGFnVHlwZU51bWJlciwgLnJpZ2h0T0sKKyAgICBidHBueiB0MSwgdGFnVHlwZU51bWJlciwg
LnNsb3cKKy5yaWdodE9LOgorICAgIGVxdWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDApCisgICAg
bG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0b3Jl
cCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLnNsb3c6CisgICAgY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDQpCitlbmQKKworX2xsaW50X29wX3N0cmlj
dGVxOgorICAgIHN0cmljdEVxKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkg
Y3BlcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9z
dHJpY3RfZXEpCisKKworX2xsaW50X29wX25zdHJpY3RlcToKKyAgICBzdHJpY3RFcSgKKyAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNwbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQg
ZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3N0cmljdF9lcSkKKworCittYWNybyBwcmVP
cChhcml0aG1ldGljT3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDEKKyAg
ICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgYXJpdGhtZXRpY09wZXJhdGlvbih0
MSwgLnNsb3cpCisgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQxCisgICAgc3RvcmVwIHQxLCBbY2Zy
LCB0MCwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xv
d1BhdGgpCisgICAgZGlzcGF0Y2goMikKK2VuZAorCitfbGxpbnRfb3BfcHJlX2luYzoKKyAgICBw
cmVPcCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCBzbG93KSBiYWRkaW8gMSwgdmFsdWUsIHNsb3cg
ZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3ByZV9pbmMpCisKKworX2xsaW50X29wX3By
ZV9kZWM6CisgICAgcHJlT3AoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYnN1YmlvIDEs
IHZhbHVlLCBzbG93IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wcmVfaW5jKQorCisK
K21hY3JvIHBvc3RPcChhcml0aG1ldGljT3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQ
QywgOF0sIHQxCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MgorICAgIGJpZXEgdDAsIHQxLCAu
ZG9uZQorICAgIGJwYiB0MiwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBtb3ZlIHQyLCB0Mwor
ICAgIGFyaXRobWV0aWNPcGVyYXRpb24odDMsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVy
LCB0MworICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgc3RvcmVwIHQzLCBbY2ZyLCB0
MCwgOF0KKy5kb25lOgorICAgIGRpc3BhdGNoKDMpCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0
aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgzKQorZW5kCisKK19sbGludF9vcF9wb3N0X2luYzoK
KyAgICBwb3N0T3AoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYmFkZGlvIDEsIHZhbHVl
LCBzbG93IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wb3N0X2luYykKKworCitfbGxp
bnRfb3BfcG9zdF9kZWM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cp
IGJzdWJpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcG9z
dF9kZWMpCisKKworX2xsaW50X29wX3RvX2pzbnVtYmVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MikKKyAgICBicGFlcSB0MiwgdGFnVHlw
ZU51bWJlciwgLm9wVG9Kc251bWJlcklzSW1tZWRpYXRlCisgICAgYnRweiB0MiwgdGFnTWFzaywg
Lm9wVG9Kc051bWJlclNsb3cKKy5vcFRvSnNudW1iZXJJc0ltbWVkaWF0ZToKKyAgICBzdG9yZXAg
dDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRvSnNudW1iZXJTbG93Ogor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RvX2pzbnVtYmVyKQorICAgIGRpc3Bh
dGNoKDMpCisKKworX2xsaW50X29wX25lZ2F0ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIpCisgICAgYnBiIHQyLCB0YWdUeXBlTnVtYmVy
LCAub3BOZWdhdGVOb3RJbnQKKyAgICBidGl6IHQyLCAweDdmZmZmZmZmLCAub3BOZWdhdGVTbG93
CisgICAgbmVnaSB0MgorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MgorICAgIHN0b3JlcCB0Miwg
W2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKy5vcE5lZ2F0ZU5vdEludDoKKyAgICBidHB6
IHQyLCB0YWdUeXBlTnVtYmVyLCAub3BOZWdhdGVTbG93CisgICAgeG9ycCAweDgwMDAwMDAwMDAw
MDAwMDAsIHQyCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQor
Cisub3BOZWdhdGVTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25lZ2F0
ZSkKKyAgICBkaXNwYXRjaCgzKQorCisKK21hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdl
ck9wZXJhdGlvbkFuZFN0b3JlLCBkb3VibGVPcGVyYXRpb24sIHNsb3dQYXRoKQorICAgIGxvYWRp
IDI0W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQy
LCB0MCkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1iZXIsIC5vcDFOb3RJbnQKKyAgICBicGIgdDEs
IHRhZ1R5cGVOdW1iZXIsIC5vcDJOb3RJbnQKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisg
ICAgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlKHQxLCB0MCwgLnNsb3csIHQyKQorICAgIGRpc3Bh
dGNoKDUpCisKKy5vcDFOb3RJbnQ6CisgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkg
bm90IGFuIGludCwgdGhlIHNlY29uZCBvcGVyYW5kIGNvdWxkIGJlIGFueXRoaW5nLgorICAgIGJ0
cHogdDAsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgYnBhZXEgdDEsIHRhZ1R5cGVOdW1iZXIs
IC5vcDFOb3RJbnRPcDJJbnQKKyAgICBidHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAg
IGFkZHAgdGFnVHlwZU51bWJlciwgdDEKKyAgICBmcDJkIHQxLCBmdDEKKyAgICBqbXAgLm9wMU5v
dEludFJlYWR5Cisub3AxTm90SW50T3AySW50OgorICAgIGNpMmQgdDEsIGZ0MQorLm9wMU5vdElu
dFJlYWR5OgorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBhZGRwIHRhZ1R5cGVOdW1i
ZXIsIHQwCisgICAgZnAyZCB0MCwgZnQwCisgICAgZG91YmxlT3BlcmF0aW9uKGZ0MSwgZnQwKQor
ICAgIGZkMnAgZnQwLCB0MAorICAgIHN1YnAgdGFnVHlwZU51bWJlciwgdDAKKyAgICBzdG9yZXAg
dDAsIFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDUpCisKKy5vcDJOb3RJbnQ6CisgICAgIyBG
aXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vjb25kIGlzIGRlZmluaXRl
bHkgbm90LgorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBidHB6IHQxLCB0YWdUeXBl
TnVtYmVyLCAuc2xvdworICAgIGNpMmQgdDAsIGZ0MAorICAgIGFkZHAgdGFnVHlwZU51bWJlciwg
dDEKKyAgICBmcDJkIHQxLCBmdDEKKyAgICBkb3VibGVPcGVyYXRpb24oZnQxLCBmdDApCisgICAg
ZmQycCBmdDAsIHQwCisgICAgc3VicCB0YWdUeXBlTnVtYmVyLCB0MAorICAgIHN0b3JlcCB0MCwg
W2NmciwgdDIsIDhdCisgICAgZGlzcGF0Y2goNSkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRo
KHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDUpCitlbmQKKworbWFjcm8gYmluYXJ5T3AoaW50ZWdl
ck9wZXJhdGlvbiwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICBiaW5hcnlPcEN1c3Rv
bVN0b3JlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQorICAgICAg
ICAgICAgaW50ZWdlck9wZXJhdGlvbihsZWZ0LCByaWdodCwgc2xvdykKKyAgICAgICAgICAgIG9y
cCB0YWdUeXBlTnVtYmVyLCByaWdodAorICAgICAgICAgICAgc3RvcmVwIHJpZ2h0LCBbY2ZyLCBp
bmRleCwgOF0KKyAgICAgICAgZW5kLAorICAgICAgICBkb3VibGVPcGVyYXRpb24sIHNsb3dQYXRo
KQorZW5kCisKK19sbGludF9vcF9hZGQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpbmFy
eU9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGJhZGRpbyBsZWZ0LCByaWdo
dCwgc2xvdyBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkgYWRkZCBsZWZ0LCByaWdo
dCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfYWRkKQorCisKK19sbGludF9vcF9tdWw6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCisgICAgICAg
IG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCisgICAgICAgICAgICAjIEFzc3VtZSB0
MyBpcyBzY3JhdGNoYWJsZS4KKyAgICAgICAgICAgIG1vdmUgcmlnaHQsIHQzCisgICAgICAgICAg
ICBibXVsaW8gbGVmdCwgdDMsIHNsb3cKKyAgICAgICAgICAgIGJ0aW56IHQzLCAuZG9uZQorICAg
ICAgICAgICAgYmlsdCBsZWZ0LCAwLCBzbG93CisgICAgICAgICAgICBiaWx0IHJpZ2h0LCAwLCBz
bG93CisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQzCisg
ICAgICAgICAgICBzdG9yZXAgdDMsIFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisgICAg
ICAgIG1hY3JvIChsZWZ0LCByaWdodCkgbXVsZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9s
bGludF9zbG93X3BhdGhfbXVsKQorCisKK19sbGludF9vcF9zdWI6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGJpbmFyeU9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGJz
dWJpbyBsZWZ0LCByaWdodCwgc2xvdyBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkg
c3ViZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfc3ViKQorCisK
K19sbGludF9vcF9kaXY6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpbmFyeU9wQ3VzdG9t
U3RvcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCisgICAgICAg
ICAgICAjIEFzc3VtZSB0MyBpcyBzY3JhdGNoYWJsZS4KKyAgICAgICAgICAgIGJ0aXogbGVmdCwg
c2xvdworICAgICAgICAgICAgYnRpbnogcmlnaHQsIC5pbnRPSworICAgICAgICAgICAgYmlsdCBs
ZWZ0LCAwLCBzbG93CisgICAgICAgIC5pbnRPSzoKKyAgICAgICAgICAgIG1vdmUgbGVmdCwgdDMK
KyAgICAgICAgICAgIG1vdmUgcmlnaHQsIHQwCisgICAgICAgICAgICBjZHFpCisgICAgICAgICAg
ICBpZGl2aSB0MworICAgICAgICAgICAgYnRpbnogdDEsIHNsb3cKKyAgICAgICAgICAgIG9ycCB0
YWdUeXBlTnVtYmVyLCB0MAorICAgICAgICAgICAgc3RvcmVwIHQwLCBbY2ZyLCBpbmRleCwgOF0K
KyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQpIGRpdmQgbGVmdCwgcmln
aHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikKKworCittYWNybyBiaXRPcChv
cGVyYXRpb24sIHNsb3dQYXRoLCBhZHZhbmNlKQorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQw
CisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQz
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZSh0MiwgdDApCisgICAgYnBiIHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGJw
YiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBvcGVyYXRpb24odDEsIHQwLCAuc2xvdykK
KyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4XQor
ICAgIGRpc3BhdGNoKGFkdmFuY2UpCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0
aCkKKyAgICBkaXNwYXRjaChhZHZhbmNlKQorZW5kCisKK19sbGludF9vcF9sc2hpZnQ6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHNsb3cpIGxzaGlmdGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRo
X2xzaGlmdCwKKyAgICAgICAgNCkKKworCitfbGxpbnRfb3BfcnNoaWZ0OgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBy
c2hpZnRpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9yc2hpZnQs
CisgICAgICAgIDQpCisKKworX2xsaW50X29wX3Vyc2hpZnQ6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpCisgICAgICAg
ICAgICB1cnNoaWZ0aSBsZWZ0LCByaWdodAorICAgICAgICAgICAgYmlsdCByaWdodCwgMCwgc2xv
dworICAgICAgICBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfdXJzaGlmdCwKKyAgICAg
ICAgNCkKKworCitfbGxpbnRfb3BfYml0YW5kOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBi
aXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBhbmRpIGxlZnQsIHJpZ2h0
IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9iaXRhbmQsCisgICAgICAgIDUpCisKKwor
X2xsaW50X29wX2JpdHhvcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAg
ICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgeG9yaSBsZWZ0LCByaWdodCBlbmQsCisgICAg
ICAgIF9sbGludF9zbG93X3BhdGhfYml0eG9yLAorICAgICAgICA1KQorCisKK19sbGludF9vcF9i
aXRvcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCwgc2xvdykgb3JpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9iaXRvciwKKyAgICAgICAgNSkKKworCitfbGxpbnRfb3BfY2hlY2tfaGFzX2luc3Rh
bmNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDEsIHQwLCAub3BDaGVja0hhc0luc3RhbmNl
U2xvdykKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKKyAgICBidGJ6IFN0
cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0hh
c0luc3RhbmNlLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdworICAgIGRpc3BhdGNoKDIpCisKKy5v
cENoZWNrSGFzSW5zdGFuY2VTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2NoZWNrX2hhc19pbnN0YW5jZSkKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9pbnN0
YW5jZW9mOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAjIENoZWNrIHRoYXQgYmFzZVZhbCBp
bXBsZW1lbnRzIHRoZSBkZWZhdWx0IEhhc0luc3RhbmNlIGJlaGF2aW9yLgorICAgICMgRklYTUU6
IFRoaXMgc2hvdWxkIGJlIGRlcHJlY2F0ZWQuCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDEK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAgICBsb2FkcCBKU0NlbGw6Om1f
c3RydWN0dXJlW3QwXSwgdDAKKyAgICBidGJ6IFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJ
bmZvOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSwgLm9wSW5zdGFu
Y2VvZlNsb3cKKyAgICAKKyAgICAjIEFjdHVhbGx5IGRvIHRoZSB3b3JrLgorICAgIGxvYWRpIDMy
W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGVDZWxsKHQwLCB0MSwgLm9wSW5zdGFuY2VvZlNsb3cpCisgICAgbG9hZHAg
SlNDZWxsOjptX3N0cnVjdHVyZVt0MV0sIHQyCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5m
byArIFR5cGVJbmZvOjptX3R5cGVbdDJdLCBPYmplY3RUeXBlLCAub3BJbnN0YW5jZW9mU2xvdwor
ICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNl
bGwodDAsIHQyLCAub3BJbnN0YW5jZW9mU2xvdykKKyAgICAKKyAgICAjIFJlZ2lzdGVyIHN0YXRl
OiB0MSA9IHByb3RvdHlwZSwgdDIgPSB2YWx1ZQorICAgIG1vdmUgMSwgdDAKKy5vcEluc3RhbmNl
b2ZMb29wOgorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDJdLCB0MgorICAgIGxvYWRw
IFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbdDJdLCB0MgorICAgIGJwZXEgdDIsIHQxLCAub3BJbnN0
YW5jZW9mRG9uZQorICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5vcEluc3RhbmNlb2ZMb29wCisKKyAg
ICBtb3ZlIDAsIHQwCisub3BJbnN0YW5jZW9mRG9uZToKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAK
KyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDUpCisKKy5vcEluc3Rh
bmNlb2ZTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2Yp
CisgICAgZGlzcGF0Y2goNSkKKworCittYWNybyByZXNvbHZlR2xvYmFsKHNpemUsIHNsb3cpCisg
ICAgIyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93czoKKyAgICAjIDhbUEIsIFBDLCA4XSAgIERlc3Rp
bmF0aW9uIGZvciB0aGUgbG9hZC4KKyAgICAjIDE2W1BCLCBQQywgOF0gIFByb3BlcnR5IGlkZW50
aWZpZXIgaW5kZXggaW4gdGhlIGNvZGUgYmxvY2suCisgICAgIyAyNFtQQiwgUEMsIDhdICBTdHJ1
Y3R1cmUgcG9pbnRlciwgaW5pdGlhbGl6ZWQgdG8gMCBieSBieXRlY29kZSBnZW5lcmF0b3IuCisg
ICAgIyAzMltQQiwgUEMsIDhdICBPZmZzZXQgaW4gZ2xvYmFsIG9iamVjdCwgaW5pdGlhbGl6ZWQg
dG8gMCBieSBieXRlY29kZSBnZW5lcmF0b3IuCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQw
CisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAg
SlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCisgICAgYnBuZXEgdDEsIDI0W1BCLCBQQywgOF0s
IHNsb3cKKyAgICBsb2FkaSAzMltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIEpTT2JqZWN0Ojpt
X3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQwCisgICAgbG9hZHAgW3QwLCB0MSwgOF0sIHQyCisgICAg
bG9hZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIHN0b3JlcCB0MiwgW2NmciwgdDAsIDhdCisgICAg
bG9hZGkgKHNpemUgLSAxKSAqIDhbUEIsIFBDLCA4XSwgdDAKKyAgICB2YWx1ZVByb2ZpbGUodDIs
IHQwKQorZW5kCisKK19sbGludF9vcF9yZXNvbHZlX2dsb2JhbDoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgcmVzb2x2ZUdsb2JhbCg2LCAub3BSZXNvbHZlR2xvYmFsU2xvdykKKyAgICBkaXNw
YXRjaCg2KQorCisub3BSZXNvbHZlR2xvYmFsU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9yZXNvbHZlX2dsb2JhbCkKKyAgICBkaXNwYXRjaCg2KQorCisKKyMgR2l2ZXMg
eW91IHRoZSBzY29wZSBpbiB0MCwgd2hpbGUgYWxsb3dpbmcgeW91IHRvIG9wdGlvbmFsbHkgcGVy
Zm9ybSBhZGRpdGlvbmFsIGNoZWNrcyBvbiB0aGUKKyMgc2NvcGVzIGFzIHRoZXkgYXJlIHRyYXZl
cnNlZC4gc2NvcGVDaGVjaygpIGlzIGNhbGxlZCB3aXRoIHR3byBhcmd1bWVudHM6IHRoZSByZWdp
c3RlcgorIyBob2xkaW5nIHRoZSBzY29wZSwgYW5kIGEgcmVnaXN0ZXIgdGhhdCBjYW4gYmUgdXNl
ZCBmb3Igc2NyYXRjaC4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QKKyMgdXNlIHQzLCBzbyB5b3Ug
Y2FuIGhvbGQgc3R1ZmYgaW4gdDMgaWYgbmVlZCBiZS4KK21hY3JvIGdldFNjb3BlKGRlQnJ1aWpp
bkluZGV4T3BlcmFuZCwgc2NvcGVDaGVjaykKKyAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQw
CisgICAgbG9hZGkgZGVCcnVpamluSW5kZXhPcGVyYW5kLCB0MgorICAgIAorICAgIGJ0aXogdDIs
IC5kb25lCisgICAgCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAgYmluZXEgQ29k
ZUJsb2NrOjptX2NvZGVUeXBlW3QxXSwgRnVuY3Rpb25Db2RlLCAubG9vcAorICAgIGJ0YnogQ29k
ZUJsb2NrOjptX25lZWRzRnVsbFNjb3BlQ2hhaW5bdDFdLCAubG9vcAorICAgIAorICAgIGxvYWRp
IENvZGVCbG9jazo6bV9hY3RpdmF0aW9uUmVnaXN0ZXJbdDFdLCB0MQorCisgICAgIyBOZWVkIHRv
IGNvbmRpdGlvbmFsbHkgc2tpcCBvdmVyIG9uZSBzY29wZS4KKyAgICBidHB6IFtjZnIsIHQxLCA4
XSwgLm5vQWN0aXZhdGlvbgorICAgIHNjb3BlQ2hlY2sodDAsIHQxKQorICAgIGxvYWRwIFNjb3Bl
Q2hhaW5Ob2RlOjpuZXh0W3QwXSwgdDAKKy5ub0FjdGl2YXRpb246CisgICAgc3ViaSAxLCB0Mgor
ICAgIAorICAgIGJ0aXogdDIsIC5kb25lCisubG9vcDoKKyAgICBzY29wZUNoZWNrKHQwLCB0MSkK
KyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6bmV4dFt0MF0sIHQwCisgICAgc3ViaSAxLCB0Mgor
ICAgIGJ0aW56IHQyLCAubG9vcAorCisuZG9uZToKK2VuZAorCitfbGxpbnRfb3BfcmVzb2x2ZV9n
bG9iYWxfZHluYW1pYzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgSklUU3RhY2tG
cmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjphY3RpdmF0
aW9uU3RydWN0dXJlW3QzXSwgdDMKKyAgICBnZXRTY29wZSgKKyAgICAgICAgNDBbUEIsIFBDLCA4
XSwKKyAgICAgICAgbWFjcm8gKHNjb3BlLCBzY3JhdGNoKQorICAgICAgICAgICAgbG9hZHAgU2Nv
cGVDaGFpbk5vZGU6Om9iamVjdFtzY29wZV0sIHNjcmF0Y2gKKyAgICAgICAgICAgIGJwbmVxIEpT
Q2VsbDo6bV9zdHJ1Y3R1cmVbc2NyYXRjaF0sIHQzLCAub3BSZXNvbHZlR2xvYmFsRHluYW1pY1N1
cGVyU2xvdworICAgICAgICBlbmQpCisgICAgcmVzb2x2ZUdsb2JhbCg3LCAub3BSZXNvbHZlR2xv
YmFsRHluYW1pY1Nsb3cpCisgICAgZGlzcGF0Y2goNykKKworLm9wUmVzb2x2ZUdsb2JhbER5bmFt
aWNTdXBlclNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9m
b3JfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYykKKyAgICBkaXNwYXRjaCg3KQorCisub3BSZXNvbHZl
R2xvYmFsRHluYW1pY1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVz
b2x2ZV9nbG9iYWxfZHluYW1pYykKKyAgICBkaXNwYXRjaCg3KQorCisKK19sbGludF9vcF9nZXRf
c2NvcGVkX3ZhcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgIyBPcGVyYW5kcyBhcmUgYXMg
Zm9sbG93czoKKyAgICAjIDhbUEIsIFBDLCA4XSAgIERlc3RpbmF0aW9uIGZvciB0aGUgbG9hZAor
ICAgICMgMTZbUEIsIFBDLCA4XSAgSW5kZXggb2YgcmVnaXN0ZXIgaW4gdGhlIHNjb3BlCisgICAg
IyAyNFtQQiwgUEMsIDhdICBEZSBCcnVpamluIGluZGV4LgorICAgIGdldFNjb3BlKDI0W1BCLCBQ
QywgOF0sIG1hY3JvIChzY29wZSwgc2NyYXRjaCkgZW5kKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4
XSwgdDEKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRwIFNjb3BlQ2hhaW5O
b2RlOjpvYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTVmFyaWFibGVPYmplY3Q6Om1fcmVnaXN0
ZXJzW3QwXSwgdDAKKyAgICBsb2FkcCBbdDAsIHQyLCA4XSwgdDMKKyAgICBzdG9yZXAgdDMsIFtj
ZnIsIHQxLCA4XQorICAgIGxvYWRpIDMyW1BCLCBQQywgOF0sIHQxCisgICAgdmFsdWVQcm9maWxl
KHQzLCB0MSkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9wdXRfc2NvcGVkX3ZhcjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZ2V0U2NvcGUoMTZbUEIsIFBDLCA4XSwgbWFjcm8g
KHNjb3BlLCBzY3JhdGNoKSBlbmQpCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDEKKyAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MykKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQx
CisgICAgd3JpdGVCYXJyaWVyKHQzKQorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpvYmplY3Rb
dDBdLCB0MAorICAgIGxvYWRwIEpTVmFyaWFibGVPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAK
KyAgICBzdG9yZXAgdDMsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRf
b3BfZ2V0X2dsb2JhbF92YXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDE2W1BC
LCBQQywgOF0sIHQxCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0
MAorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0sIHQwCisgICAgbG9h
ZHAgW3QwLCB0MSwgOF0sIHQyCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MywgOF0KKyAgICBsb2Fk
aSAyNFtQQiwgUEMsIDhdLCB0MworICAgIHZhbHVlUHJvZmlsZSh0MiwgdDMpCisgICAgZGlzcGF0
Y2goNCkKKworCitfbGxpbnRfb3BfcHV0X2dsb2JhbF92YXI6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9h
ZHAgSlNHbG9iYWxPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHQxLCB0MikKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgd3JpdGVC
YXJyaWVyKHQyKQorICAgIHN0b3JlcCB0MiwgW3QwLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQor
CisKK19sbGludF9vcF9nZXRfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgV2Ug
b25seSBkbyBtb25vbW9ycGhpYyBnZXRfYnlfaWQgY2FjaGluZyBmb3Igbm93LCBhbmQgd2UgZG8g
bm90IG1vZGlmeSB0aGUKKyAgICAjIG9wY29kZS4gV2UgZG8sIGhvd2V2ZXIsIGFsbG93IGZvciB0
aGUgY2FjaGUgdG8gY2hhbmdlIGFueXRpbWUgaWYgZmFpbHMsIHNpbmNlCisgICAgIyBwaW5nLXBv
bmdpbmcgaXMgZnJlZS4gQXQgYmVzdCB3ZSBnZXQgbHVja3kgYW5kIHRoZSBnZXRfYnlfaWQgd2ls
bCBjb250aW51ZQorICAgICMgdG8gdGFrZSBmYXN0IHBhdGggb24gdGhlIG5ldyBjYWNoZS4gQXQg
d29yc3Qgd2UgdGFrZSBzbG93IHBhdGgsIHdoaWNoIGlzIHdoYXQKKyAgICAjIHdlIHdvdWxkIGhh
dmUgYmVlbiBkb2luZyBhbnl3YXkuCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBs
b2FkaSAzMltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQw
LCB0MywgLm9wR2V0QnlJZFNsb3cpCisgICAgbG9hZGkgNDBbUEIsIFBDLCA4XSwgdDIKKyAgICBs
b2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDNdLCB0MAorICAgIGJwbmVxIEpTQ2Vs
bDo6bV9zdHJ1Y3R1cmVbdDNdLCB0MSwgLm9wR2V0QnlJZFNsb3cKKyAgICBsb2FkaSA4W1BCLCBQ
QywgOF0sIHQxCisgICAgbG9hZHAgW3QwLCB0Ml0sIHQzCisgICAgc3RvcmVwIHQzLCBbY2ZyLCB0
MSwgOF0KKyAgICBsb2FkaSA2NFtQQiwgUEMsIDhdLCB0MQorICAgIHZhbHVlUHJvZmlsZSh0Mywg
dDEpCisgICAgZGlzcGF0Y2goOSkKKworLm9wR2V0QnlJZFNsb3c6CisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZ2V0X2J5X2lkKQorICAgIGRpc3BhdGNoKDkpCisKKworX2xsaW50
X29wX2dldF9hcmd1bWVudHNfbGVuZ3RoOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aSAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBidHBu
eiBbY2ZyLCB0MCwgOF0sIC5vcEdldEFyZ3VtZW50c0xlbmd0aFNsb3cKKyAgICBsb2FkaSBBcmd1
bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MgorICAgIHN1YmkgMSwgdDIKKyAgICBv
cnAgdGFnVHlwZU51bWJlciwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRp
c3BhdGNoKDQpCisKKy5vcEdldEFyZ3VtZW50c0xlbmd0aFNsb3c6CisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZ2V0X2FyZ3VtZW50c19sZW5ndGgpCisgICAgZGlzcGF0Y2goNCkK
KworCitfbGxpbnRfb3BfcHV0X2J5X2lkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aSA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZGkgMzJbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MywgdDAsIC5vcFB1dEJ5SWRTbG93KQorICAgIGxvYWRp
IDI0W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdl
W3QwXSwgdDMKKyAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEsIC5vcFB1dEJ5
SWRTbG93CisgICAgbG9hZGkgNDBbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKHQyLCB0MCkKKyAgICB3cml0ZUJhcnJpZXIodDApCisgICAgc3RvcmVwIHQwLCBbdDMs
IHQxXQorICAgIGRpc3BhdGNoKDkpCisKKy5vcFB1dEJ5SWRTbG93OgorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pZCkKKyAgICBkaXNwYXRjaCg5KQorCisKK21hY3Jv
IHB1dEJ5SWRUcmFuc2l0aW9uKGFkZGl0aW9uYWxDaGVja3MpCisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkaSAzMltQQiwgUEMsIDhdLCB0
MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQzLCB0MCwgLm9wUHV0QnlJZFNsb3cp
CisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0
dXJlW3QwXSwgdDEsIC5vcFB1dEJ5SWRTbG93CisgICAgYWRkaXRpb25hbENoZWNrcyh0MSwgdDMs
IC5vcFB1dEJ5SWRTbG93KQorICAgIGxvYWRpIDQwW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZHAg
SlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3QwXSwgdDMKKyAgICBhZGRwIHQxLCB0MworICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQxKQorICAgIHdyaXRlQmFycmllcih0MSkKKyAg
ICBzdG9yZXAgdDEsIFt0M10KKyAgICBsb2FkaSA0OFtQQiwgUEMsIDhdLCB0MQorICAgIHN0b3Jl
cCB0MSwgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0KKyAgICBkaXNwYXRjaCg5KQorZW5kCisKK19s
bGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9kaXJlY3Q6CisgICAgcHV0QnlJZFRyYW5zaXRp
b24obWFjcm8gKG9sZFN0cnVjdHVyZSwgc2NyYXRjaCwgc2xvdykgZW5kKQorCisKK19sbGludF9v
cF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9ub3JtYWw6CisgICAgcHV0QnlJZFRyYW5zaXRpb24oCisg
ICAgICAgIG1hY3JvIChvbGRTdHJ1Y3R1cmUsIHNjcmF0Y2gsIHNsb3cpCisgICAgICAgICAgICBj
b25zdCBwcm90b0NlbGwgPSBvbGRTdHJ1Y3R1cmUgICAgIyBSZXVzaW5nIHRoZSBvbGRTdHJ1Y3R1
cmUgcmVnaXN0ZXIgZm9yIHRoZSBwcm90bworICAgICAgICAgICAgbG9hZHAgNTZbUEIsIFBDLCA4
XSwgc2NyYXRjaAorICAgICAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYnRwbnogc2NyYXRjaCwg
b2sgZW5kKQorICAgICAgICAgICAgbG9hZHAgU3RydWN0dXJlQ2hhaW46Om1fdmVjdG9yW3NjcmF0
Y2hdLCBzY3JhdGNoCisgICAgICAgICAgICBhc3NlcnQobWFjcm8gKG9rKSBidHBueiBzY3JhdGNo
LCBvayBlbmQpCisgICAgICAgICAgICBicGVxIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbb2xkU3Ry
dWN0dXJlXSwgVmFsdWVOdWxsLCAuZG9uZQorICAgICAgICAubG9vcDoKKyAgICAgICAgICAgIGxv
YWRwIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbb2xkU3RydWN0dXJlXSwgcHJvdG9DZWxsCisgICAg
ICAgICAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3Byb3RvQ2VsbF0sIG9sZFN0cnVjdHVy
ZQorICAgICAgICAgICAgYnBuZXEgb2xkU3RydWN0dXJlLCBbc2NyYXRjaF0sIHNsb3cKKyAgICAg
ICAgICAgIGFkZHAgOCwgc2NyYXRjaAorICAgICAgICAgICAgYnBuZXEgU3RydWN0dXJlOjptX3By
b3RvdHlwZVtvbGRTdHJ1Y3R1cmVdLCBWYWx1ZU51bGwsIC5sb29wCisgICAgICAgIC5kb25lOgor
ICAgICAgICBlbmQpCisKKworX2xsaW50X29wX2dldF9ieV92YWw6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxvYWRpIDE2W1BCLCBQQywg
OF0sIHQyCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkcCBDb2RlQmxvY2s6
Om1fZ2xvYmFsRGF0YVt0MV0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDIs
IHQwLCAub3BHZXRCeVZhbFNsb3cpCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpqc0FycmF5Q2xh
c3NJbmZvW3QxXSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDMsIHQxLCAu
b3BHZXRCeVZhbFNsb3cpCisgICAgYnBuZXEgW3QwXSwgdDIsIC5vcEdldEJ5VmFsU2xvdworICAg
IGxvYWRwIEpTQXJyYXk6Om1fc3RvcmFnZVt0MF0sIHQzCisgICAgYmlhZXEgdDEsIEpTQXJyYXk6
Om1fdmVjdG9yTGVuZ3RoW3QwXSwgLm9wR2V0QnlWYWxTbG93CisgICAgbG9hZGkgOFtQQiwgUEMs
IDhdLCB0MAorICAgIGxvYWRpIEFycmF5U3RvcmFnZTo6bV92ZWN0b3JbdDMsIHQxLCA4XSwgdDIK
KyAgICBidHB6IHQyLCAub3BHZXRCeVZhbFNsb3cKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQwLCA4
XQorICAgIGxvYWRpIDMyW1BCLCBQQywgOF0sIHQwCisgICAgdmFsdWVQcm9maWxlKHQyLCB0MCkK
KyAgICBkaXNwYXRjaCg1KQorCisub3BHZXRCeVZhbFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfZ2V0X2J5X3ZhbCkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9v
cF9nZXRfYXJndW1lbnRfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAx
NltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQxCisgICAgYnRwbnog
W2NmciwgdDAsIDhdLCAub3BHZXRBcmd1bWVudEJ5VmFsU2xvdworICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVJbnQzMih0MSwgdDIsIC5vcEdldEFyZ3VtZW50QnlWYWxTbG93KQorICAgIGFkZGkg
MSwgdDIKKyAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQor
ICAgIGJpYWVxIHQyLCB0MSwgLm9wR2V0QXJndW1lbnRCeVZhbFNsb3cKKyAgICBuZWdpIHQyCisg
ICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRwIFRoaXNBcmd1bWVudE9mZnNldFtj
ZnIsIHQyLCA4XSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNo
KDUpCisKKy5vcEdldEFyZ3VtZW50QnlWYWxTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2dldF9hcmd1bWVudF9ieV92YWwpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxp
bnRfb3BfZ2V0X2J5X3BuYW1lOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAyNFtQ
QiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAgIGxv
YWRpIDMyW1BCLCBQQywgOF0sIHQxCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDEpCisgICAgYnBu
ZXEgdDAsIFtjZnIsIHQxLCA4XSwgLm9wR2V0QnlQbmFtZVNsb3cKKyAgICBsb2FkaSAxNltQQiwg
UEMsIDhdLCB0MgorICAgIGxvYWRpIDQwW1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZUNlbGwodDIsIHQwLCAub3BHZXRCeVBuYW1lU2xvdykKKyAgICBhc3NlcnROb3RD
b25zdGFudCh0MykKKyAgICBsb2FkcCBbY2ZyLCB0MywgOF0sIHQxCisgICAgbG9hZHAgSlNDZWxs
OjptX3N0cnVjdHVyZVt0MF0sIHQyCisgICAgYnBuZXEgdDIsIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3I6Om1fY2FjaGVkU3RydWN0dXJlW3QxXSwgLm9wR2V0QnlQbmFtZVNsb3cKKyAgICBsb2FkaSA0
OFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0sIHQz
CisgICAgc3ViaSAxLCB0MworICAgIGJpYWVxIHQzLCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpt
X251bUNhY2hlYWJsZVNsb3RzW3QxXSwgLm9wR2V0QnlQbmFtZVNsb3cKKyAgICBsb2FkcCBKU09i
amVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MAorICAgIGxvYWRwIFt0MCwgdDMsIDhdLCB0
MAorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4
XQorICAgIGRpc3BhdGNoKDcpCisKKy5vcEdldEJ5UG5hbWVTbG93OgorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9wbmFtZSkKKyAgICBkaXNwYXRjaCg3KQorCisKK19s
bGludF9vcF9wdXRfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BC
LCBQQywgOF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQxLCAub3BQ
dXRCeVZhbFNsb3cpCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlSW50MzIodDAsIHQyLCAub3BQdXRCeVZhbFNsb3cpCisgICAgbG9hZHAgQ29k
ZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDBdLCB0
MAorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6anNBcnJheUNsYXNzSW5mb1t0MF0sIHQwCisgICAg
YnBuZXEgW3QxXSwgdDAsIC5vcFB1dEJ5VmFsU2xvdworICAgIGJpYWVxIHQyLCBKU0FycmF5Ojpt
X3ZlY3Rvckxlbmd0aFt0MV0sIC5vcFB1dEJ5VmFsU2xvdworICAgIGxvYWRwIEpTQXJyYXk6Om1f
c3RvcmFnZVt0MV0sIHQwCisgICAgYnRweiBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yW3QwLCB0Miwg
OF0sIC5vcFB1dEJ5VmFsRW1wdHkKKy5vcFB1dEJ5VmFsU3RvcmVSZXN1bHQ6CisgICAgbG9hZGkg
MjRbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQzLCB0MSkKKyAg
ICB3cml0ZUJhcnJpZXIodDEpCisgICAgc3RvcmVwIHQxLCBBcnJheVN0b3JhZ2U6Om1fdmVjdG9y
W3QwLCB0MiwgOF0KKyAgICBkaXNwYXRjaCg0KQorCisub3BQdXRCeVZhbEVtcHR5OgorICAgIGFk
ZGkgMSwgQXJyYXlTdG9yYWdlOjptX251bVZhbHVlc0luVmVjdG9yW3QwXQorICAgIGJpYiB0Miwg
QXJyYXlTdG9yYWdlOjptX2xlbmd0aFt0MF0sIC5vcFB1dEJ5VmFsU3RvcmVSZXN1bHQKKyAgICBh
ZGRpIDEsIHQyLCB0MQorICAgIHN0b3JlaSB0MSwgQXJyYXlTdG9yYWdlOjptX2xlbmd0aFt0MF0K
KyAgICBqbXAgLm9wUHV0QnlWYWxTdG9yZVJlc3VsdAorCisub3BQdXRCeVZhbFNsb3c6CisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X3ZhbCkKKyAgICBkaXNwYXRjaCg0
KQorCisKK19sbGludF9vcF9sb29wOgorICAgIG5vcAorX2xsaW50X29wX2ptcDoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgZGlzcGF0Y2goOFtQQiwgUEMsIDhdKQorCisKK19sbGludF9vcF9q
bXBfc2NvcGVzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9qbXBfc2NvcGVzKQorICAgIGRpc3BhdGNoKDApCisKKworbWFjcm8ganVtcFRy
dWVPckZhbHNlKGNvbmRpdGlvbk9wLCBzbG93KQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAgICB4b3JwIFZhbHVlRmFsc2Us
IHQwCisgICAgYnRwbnogdDAsIC0xLCAuc2xvdworICAgIGNvbmRpdGlvbk9wKHQwLCAudGFyZ2V0
KQorICAgIGRpc3BhdGNoKDMpCisKKy50YXJnZXQ6CisgICAgZGlzcGF0Y2goMTZbUEIsIFBDLCA4
XSkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3cpCisgICAgZGlzcGF0Y2goMCkKK2Vu
ZAorCisKK21hY3JvIGVxdWFsTnVsbChjZWxsSGFuZGxlciwgaW1tZWRpYXRlSGFuZGxlcikKKyAg
ICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCisgICAg
bG9hZHAgW2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAuaW1tZWRpYXRl
CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQyCisgICAgY2VsbEhhbmRsZXIo
U3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3NbdDJdLCAudGFyZ2V0KQor
ICAgIGRpc3BhdGNoKDMpCisKKy50YXJnZXQ6CisgICAgZGlzcGF0Y2goMTZbUEIsIFBDLCA4XSkK
KworLmltbWVkaWF0ZToKKyAgICBhbmRwIH5UYWdCaXRVbmRlZmluZWQsIHQwCisgICAgaW1tZWRp
YXRlSGFuZGxlcih0MCwgLnRhcmdldCkKKyAgICBkaXNwYXRjaCgzKQorZW5kCisKK19sbGludF9v
cF9qZXFfbnVsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZXF1YWxOdWxsKAorICAgICAg
ICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRibnogdmFsdWUsIE1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBiaWVxIHZhbHVl
LCBWYWx1ZU51bGwsIHRhcmdldCBlbmQpCisKKworX2xsaW50X29wX2puZXFfbnVsbDoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgZXF1YWxOdWxsKAorICAgICAgICBtYWNybyAodmFsdWUsIHRh
cmdldCkgYnRieiB2YWx1ZSwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgdGFyZ2V0IGVuZCwKKyAg
ICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJpbmVxIHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdl
dCBlbmQpCisKKworX2xsaW50X29wX2puZXFfcHRyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgMTZbUEIsIFBDLCA4XSwgdDEKKyAg
ICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCisgICAgYnBuZXEgdDEsIFtjZnIsIHQwLCA4XSwgLm9w
Sm5lcVB0clRhcmdldAorICAgIGRpc3BhdGNoKDQpCisKKy5vcEpuZXFQdHJUYXJnZXQ6CisgICAg
ZGlzcGF0Y2goMjRbUEIsIFBDLCA4XSkKKworCittYWNybyBjb21wYXJlKGludGVnZXJDb21wYXJl
LCBkb3VibGVDb21wYXJlLCBzbG93UGF0aCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisg
ICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQy
LCB0MCkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQzLCB0MSkKKyAgICBicGIgdDAsIHRh
Z1R5cGVOdW1iZXIsIC5vcDFOb3RJbnQKKyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJO
b3RJbnQKKyAgICBpbnRlZ2VyQ29tcGFyZSh0MCwgdDEsIC5qdW1wVGFyZ2V0KQorICAgIGRpc3Bh
dGNoKDQpCisKKy5vcDFOb3RJbnQ6CisgICAgYnRweiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cK
KyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDFOb3RJbnRPcDJOb3RJbnQKKyAgICBjaTJk
IHQxLCBmdDEKKyAgICBqbXAgLm9wMU5vdEludFJlYWR5Cisub3AxTm90SW50T3AyTm90SW50Ogor
ICAgIGJ0cHogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgYWRkcCB0YWdUeXBlTnVtYmVy
LCB0MQorICAgIGZwMmQgdDEsIGZ0MQorLm9wMU5vdEludHJlYWR5OgorICAgIGFkZHAgdGFnVHlw
ZU51bWJlciwgdDAKKyAgICBmcDJkIHQwLCBmdDAKKyAgICBkb3VibGVDb21wYXJlKGZ0MCwgZnQx
LCAuanVtcFRhcmdldCkKKyAgICBkaXNwYXRjaCg0KQorCisub3AyTm90SW50OgorICAgIGNpMmQg
dDAsIGZ0MAorICAgIGJ0cHogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgYWRkcCB0YWdU
eXBlTnVtYmVyLCB0MQorICAgIGZwMmQgdDEsIGZ0MQorICAgIGRvdWJsZUNvbXBhcmUoZnQwLCBm
dDEsIC5qdW1wVGFyZ2V0KQorICAgIGRpc3BhdGNoKDQpCisKKy5qdW1wVGFyZ2V0OgorICAgIGRp
c3BhdGNoKDI0W1BCLCBQQywgOF0pCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0
aCkKKyAgICBkaXNwYXRjaCgwKQorZW5kCisKKworX2xsaW50X29wX3N3aXRjaF9pbW06CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGkg
OFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQxKQorICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9yYXJlRGF0
YVt0Ml0sIHQyCisgICAgbXVsaSBzaXplb2YgU2ltcGxlSnVtcFRhYmxlLCB0MyAgICAjIEZJWE1F
OiB3b3VsZCBiZSBuaWNlIHRvIHBlZXBob2xlIHRoaXMhCisgICAgbG9hZHAgQ29kZUJsb2NrOjpS
YXJlRGF0YTo6bV9pbW1lZGlhdGVTd2l0Y2hKdW1wVGFibGVzICsgVmVjdG9yQnVmZmVyT2Zmc2V0
W3QyXSwgdDIKKyAgICBhZGRwIHQzLCB0MgorICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLm9w
U3dpdGNoSW1tTm90SW50CisgICAgc3ViaSBTaW1wbGVKdW1wVGFibGU6Om1pblt0Ml0sIHQxCisg
ICAgYmlhZXEgdDEsIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvclNpemVP
ZmZzZXRbdDJdLCAub3BTd2l0Y2hJbW1GYWxsVGhyb3VnaAorICAgIGxvYWRwIFNpbXBsZUp1bXBU
YWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQzCisgICAgbG9h
ZGkgW3QzLCB0MSwgNF0sIHQxCisgICAgYnRpeiB0MSwgLm9wU3dpdGNoSW1tRmFsbFRocm91Z2gK
KyAgICBkaXNwYXRjaCh0MSkKKworLm9wU3dpdGNoSW1tTm90SW50OgorICAgIGJ0cG56IHQxLCAu
b3BTd2l0Y2hJbW1TbG93ICAgIyBHbyBzbG93IGlmIGl0J3MgYSBkb3VibGUuCisub3BTd2l0aGNJ
bW1GYWxsVGhyb3VnaDoKKyAgICBkaXNwYXRjaCgxNltQQiwgUEMsIDhdKQorCisub3BTd2l0Y2hJ
bW1TbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N3aXRjaF9pbW0pCisg
ICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfb3Bfc3dpdGNoX2NoYXI6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGkgOFtQQiwgUEMs
IDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQxKQorICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9yYXJlRGF0YVt0Ml0sIHQy
CisgICAgbXVsaSBzaXplb2YgU2ltcGxlSnVtcFRhYmxlLCB0MworICAgIGxvYWRwIENvZGVCbG9j
azo6UmFyZURhdGE6Om1fY2hhcmFjdGVyU3dpdGNoSnVtcFRhYmxlcyArIFZlY3RvckJ1ZmZlck9m
ZnNldFt0Ml0sIHQyCisgICAgYWRkcCB0MywgdDIKKyAgICBidHBueiB0MSwgdGFnTWFzaywgLm9w
U3dpdGNoQ2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MV0s
IHQwCisgICAgYmJuZXEgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0
MF0sIFN0cmluZ1R5cGUsIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAorICAgIGxvYWRwIEpTU3Ry
aW5nOjptX3ZhbHVlW3QxXSwgdDAKKyAgICBiaW5lcSBTdHJpbmdJbXBsOjptX2xlbmd0aFt0MF0s
IDEsIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAorICAgIGxvYWRwIFN0cmluZ0ltcGw6Om1fZGF0
YThbdDBdLCB0MQorICAgIGJ0aW56IFN0cmluZ0ltcGw6Om1faGFzaEFuZEZsYWdzW3QwXSwgSGFz
aEZsYWdzOEJpdEJ1ZmZlciwgLm9wU3dpdGNoQ2hhcjhCaXQKKyAgICBsb2FkaCBbdDFdLCB0MAor
ICAgIGptcCAub3BTd2l0Y2hDaGFyUmVhZHkKKy5vcFN3aXRjaENoYXI4Qml0OgorICAgIGxvYWRi
IFt0MV0sIHQwCisub3BTd2l0Y2hDaGFyUmVhZHk6CisgICAgc3ViaSBTaW1wbGVKdW1wVGFibGU6
Om1pblt0Ml0sIHQwCisgICAgYmlhZXEgdDAsIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0
cyArIFZlY3RvclNpemVPZmZzZXRbdDJdLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKKyAgICBs
b2FkcCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JCdWZmZXJPZmZzZXRb
dDJdLCB0MgorICAgIGxvYWRpIFt0MiwgdDAsIDRdLCB0MQorICAgIGJ0aXogdDEsIC5vcFN3aXRj
aENoYXJGYWxsVGhyb3VnaAorICAgIGRpc3BhdGNoKHQxKQorCisub3BTd2l0Y2hDaGFyRmFsbFRo
cm91Z2g6CisgICAgZGlzcGF0Y2goMTZbUEIsIFBDLCA4XSkKKworCitfbGxpbnRfb3BfbmV3X2Z1
bmM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJ0aXogMjRbUEIsIFBDLCA4XSwgLm9wTmV3
RnVuY1VuY2hlY2tlZAorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBidHBueiBbY2Zy
LCB0MSwgOF0sIC5vcE5ld0Z1bmNEb25lCisub3BOZXdGdW5jVW5jaGVja2VkOgorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2Z1bmMpCisub3BOZXdGdW5jRG9uZToKKyAgICBkaXNw
YXRjaCg0KQorCisKK21hY3JvIGRvQ2FsbChzbG93UGF0aCkKKyAgICBsb2FkaSA4W1BCLCBQQywg
OF0sIHQwCisgICAgbG9hZHAgMzJbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkcCBMTEludENhbGxM
aW5rSW5mbzo6Y2FsbGVlW3QxXSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0
MykKKyAgICBiaW5lcSB0MywgdDIsIC5vcENhbGxTbG93CisgICAgbG9hZGkgMjRbUEIsIFBDLCA4
XSwgdDMKKyAgICBhZGRpIDQ4LCBQQworICAgIGxzaGlmdGkgMywgdDMKKyAgICBhZGRwIGNmciwg
dDMKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX3Njb3BlQ2hhaW5bdDJdLCB0MAorICAgIHN0b3Jl
cCB0MiwgQ2FsbGVlW3QzXQorICAgIHN0b3JlcCB0MCwgU2NvcGVDaGFpblt0M10KKyAgICBsb2Fk
aSAxNiAtIDQ4W1BCLCBQQywgOF0sIHQyCisgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsg
VGFnT2Zmc2V0W2Nmcl0KKyAgICBzdG9yZXAgY2ZyLCBDYWxsZXJGcmFtZVt0M10KKyAgICBzdG9y
ZXAgdDIsIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgIG1vdmUgdDMsIGNm
cgorICAgIGNhbGwgTExJbnRDYWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W3QxXQorICAg
IGRpc3BhdGNoQWZ0ZXJDYWxsKCkKKworLm9wQ2FsbFNsb3c6CisgICAgc2xvd1BhdGhGb3JDYWxs
KDYsIHNsb3dQYXRoKQorZW5kCisKKworX2xsaW50X29wX3RlYXJfb2ZmX2FjdGl2YXRpb246Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2Fk
aSAxNltQQiwgUEMsIDhdLCB0MQorICAgIGJ0cG56IFtjZnIsIHQwLCA4XSwgLm9wVGVhck9mZkFj
dGl2YXRpb25DcmVhdGVkCisgICAgYnRweiBbY2ZyLCB0MSwgOF0sIC5vcFRlYXJPZmZBY3RpdmF0
aW9uTm90Q3JlYXRlZAorLm9wVGVhck9mZkFjdGl2YXRpb25DcmVhdGVkOgorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3RlYXJfb2ZmX2FjdGl2YXRpb24pCisub3BUZWFyT2ZmQWN0
aXZhdGlvbk5vdENyZWF0ZWQ6CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfdGVhcl9v
ZmZfYXJndW1lbnRzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywg
OF0sIHQwCisgICAgc3ViaSAxLCB0MCAgICMgR2V0IHRoZSB1bm1vZGlmaWVkQXJndW1lbnRzUmVn
aXN0ZXIKKyAgICBidHB6IFtjZnIsIHQwLCA4XSwgLm9wVGVhck9mZkFyZ3VtZW50c05vdENyZWF0
ZWQKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90ZWFyX29mZl9hcmd1bWVudHMp
Cisub3BUZWFyT2ZmQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAgICBkaXNwYXRjaCgyKQorCisKK19s
bGludF9vcF9yZXQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNoZWNrU3dpdGNoVG9KSVRG
b3JFcGlsb2d1ZSgpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUodDIsIHQwKQorICAgIGRvUmV0dXJuKCkKKworCitfbGxpbnRfb3BfY2FsbF9w
dXRfcmVzdWx0OgorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaSAxNltQQiwg
UEMsIDhdLCB0MworICAgIHN0b3JlcCB0MCwgW2NmciwgdDIsIDhdCisgICAgdmFsdWVQcm9maWxl
KHQwLCB0MykKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxp
bnRfb3BfcmV0X29iamVjdF9vcl90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVj
a1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDIKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBidHBueiB0MCwgdGFnTWFzaywg
Lm9wUmV0T2JqZWN0T3JUaGlzTm90T2JqZWN0CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVy
ZVt0MF0sIHQyCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5
cGVbdDJdLCBPYmplY3RUeXBlLCAub3BSZXRPYmplY3RPclRoaXNOb3RPYmplY3QKKyAgICBkb1Jl
dHVybigpCisKKy5vcFJldE9iamVjdE9yVGhpc05vdE9iamVjdDoKKyAgICBsb2FkaSAxNltQQiwg
UEMsIDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGRvUmV0
dXJuKCkKKworCitfbGxpbnRfb3BfdG9fcHJpbWl0aXZlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBidHBueiB0MCwgdGFnTWFz
aywgLm9wVG9QcmltaXRpdmVJc0ltbQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBd
LCB0MgorICAgIGJibmVxIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVb
dDJdLCBTdHJpbmdUeXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlCisub3BUb1ByaW1pdGl2ZUlz
SW1tOgorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9w
VG9QcmltaXRpdmVTbG93Q2FzZToKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90
b19wcmltaXRpdmUpCisgICAgZGlzcGF0Y2goMykKKwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAx
MDk5NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
ci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIxLDkgKzIxLDgwMSBAQAogIyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorIyBGaXJzdCBjb21lIHRoZSBj
b21tb24gcHJvdG9jb2xzIHRoYXQgYm90aCBpbnRlcnByZXRlcnMgdXNlLiBOb3RlIHRoYXQgZWFj
aAorIyBvZiB0aGVzZSBtdXN0IGhhdmUgYW4gQVNTRVJUKCkgaW4gTExJbnREYXRhLmNwcAorCisj
IFRoZXNlIGRlY2xhcmF0aW9ucyBtdXN0IG1hdGNoIGludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5o
LgorY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDQ4Citjb25zdCBBcmd1bWVudENvdW50ID0g
LTQ4Citjb25zdCBDYWxsZXJGcmFtZSA9IC00MAorY29uc3QgQ2FsbGVlID0gLTMyCitjb25zdCBT
Y29wZUNoYWluID0gLTI0Citjb25zdCBSZXR1cm5QQyA9IC0xNgorY29uc3QgQ29kZUJsb2NrID0g
LTgKKworY29uc3QgVGhpc0FyZ3VtZW50T2Zmc2V0ID0gLUNhbGxGcmFtZUhlYWRlclNpemUgLSA4
CisKKyMgU29tZSByZWdpc3RlciBjb252ZW50aW9ucy4KK2lmIEpTVkFMVUU2NAorICAgICMgLSBV
c2UgYSBwYWlyIG9mIHJlZ2lzdGVycyB0byByZXByZXNlbnQgdGhlIFBDOiBvbmUgcmVnaXN0ZXIg
Zm9yIHRoZQorICAgICMgICBiYXNlIG9mIHRoZSByZWdpc3RlciBmaWxlLCBhbmQgb25lIHJlZ2lz
dGVyIGZvciB0aGUgaW5kZXguCisgICAgIyAtIFRoZSBQQyBiYXNlIChvciBQQiBmb3Igc2hvcnQp
IHNob3VsZCBiZSBzdG9yZWQgaW4gdGhlIGNzci4gSXQgd2lsbAorICAgICMgICBnZXQgY2xvYmJl
cmVkIG9uIGNhbGxzIHRvIG90aGVyIEpTIGNvZGUsIGJ1dCB3aWxsIGdldCBzYXZlZCBvbiBjYWxs
cworICAgICMgICB0byBDIGZ1bmN0aW9ucy4KKyAgICAjIC0gQyBjYWxscyBhcmUgc3RpbGwgZ2l2
ZW4gdGhlIEluc3RydWN0aW9uKiByYXRoZXIgdGhhbiB0aGUgUEMgaW5kZXguCisgICAgIyAgIFRo
aXMgcmVxdWlyZXMgYW4gYWRkIGJlZm9yZSB0aGUgY2FsbCwgYW5kIGEgc3ViIGFmdGVyLgorICAg
IGNvbnN0IFBDID0gdDQKKyAgICBjb25zdCBQQiA9IGNzcjAKKyAgICBjb25zdCB0YWdUeXBlTnVt
YmVyID0gY3NyMQorICAgIGNvbnN0IHRhZ01hc2sgPSBjc3IyCitlbHNlCisgICAgY29uc3QgUEMg
PSB0NAorZW5kCisKKyMgQ29uc3RhbnRzIGZvciByZWFzb25pbmcgYWJvdXQgdmFsdWUgcmVwcmVz
ZW50YXRpb24uCitpZiBCSUdfRU5ESUFOCisgICAgY29uc3QgVGFnT2Zmc2V0ID0gMAorICAgIGNv
bnN0IFBheWxvYWRPZmZzZXQgPSA0CitlbHNlCisgICAgY29uc3QgVGFnT2Zmc2V0ID0gNAorICAg
IGNvbnN0IFBheWxvYWRPZmZzZXQgPSAwCitlbmQKKworIyBUeXBlIGNvbnN0YW50cy4KK2NvbnN0
IFN0cmluZ1R5cGUgPSA1Citjb25zdCBPYmplY3RUeXBlID0gMTMKKworIyBUeXBlIGZsYWdzIGNv
bnN0YW50cy4KK2NvbnN0IE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSAxCitjb25zdCBJbXBsZW1l
bnRzSGFzSW5zdGFuY2UgPSAyCitjb25zdCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlID0g
OAorCisjIEJ5dGVjb2RlIG9wZXJhbmQgY29uc3RhbnRzLgorY29uc3QgRmlyc3RDb25zdGFudFJl
Z2lzdGVySW5kZXggPSAweDQwMDAwMDAwCisKKyMgQ29kZSB0eXBlIGNvbnN0YW50cy4KK2NvbnN0
IEdsb2JhbENvZGUgPSAwCitjb25zdCBFdmFsQ29kZSA9IDEKK2NvbnN0IEZ1bmN0aW9uQ29kZSA9
IDIKKworIyBUaGUgaW50ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1l
bnQgY291bnQuCitjb25zdCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dAorCisjIFN0cmluZyBmbGFncy4KK2NvbnN0IEhhc2hGbGFnczhCaXRCdWZmZXIgPSA2NAorCisj
IEFsbG9jYXRpb24gY29uc3RhbnRzCitpZiBKU1ZBTFVFNjQKKyAgICBjb25zdCBKU0ZpbmFsT2Jq
ZWN0U2l6ZUNsYXNzSW5kZXggPSAxCitlbHNlCisgICAgY29uc3QgSlNGaW5hbE9iamVjdFNpemVD
bGFzc0luZGV4ID0gMworZW5kCisKKyMgVGhpcyBtdXN0IG1hdGNoIHd0Zi9WZWN0b3IuaAoraWYg
SlNWQUxVRTY0CisgICAgY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKKyAgICBjb25zdCBWZWN0
b3JCdWZmZXJPZmZzZXQgPSA4CitlbHNlCisgICAgY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAK
KyAgICBjb25zdCBWZWN0b3JCdWZmZXJPZmZzZXQgPSA0CitlbmQKKworCisjIFNvbWUgY29tbW9u
IHV0aWxpdGllcy4KK21hY3JvIGNyYXNoKCkKKyAgICBzdG9yZWkgMCwgMHhiYmFkYmVlZltdCisg
ICAgbW92ZSAwLCB0MAorICAgIGNhbGwgdDAKK2VuZAorCittYWNybyBhc3NlcnQoYXNzZXJ0aW9u
KQorICAgIGlmIEFTU0VSVF9FTkFCTEVECisgICAgICAgIGFzc2VydGlvbigub2spCisgICAgICAg
IGNyYXNoKCkKKyAgICAub2s6CisgICAgZW5kCitlbmQKKworbWFjcm8gcHJlc2VydmVSZXR1cm5B
ZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCisgICAgaWYgQVJNdjcKKyAgICAg
ICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQK
KyAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0ZXIKKyAgICBlbHNlCisgICAgICAgIGVycm9y
CisgICAgZW5kCitlbmQKKworbWFjcm8gcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
c291cmNlUmVnaXN0ZXIpCisgICAgaWYgQVJNdjcKKyAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3Rl
ciwgbHIKKyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHB1c2ggc291cmNlUmVnaXN0
ZXIKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCitlbmQKKworbWFjcm8gdHJhY2VF
eGVjdXRpb24oKQorICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAgICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfdHJhY2UpCisgICAgZW5kCitlbmQKKworbWFjcm8gc2xvd1BhdGhGb3JDYWxsKGFk
dmFuY2UsIHNsb3dQYXRoKQorICAgIGNhbGxDYWxsU2xvd1BhdGgoCisgICAgICAgIGFkdmFuY2Us
CisgICAgICAgIHNsb3dQYXRoLAorICAgICAgICBtYWNybyAoY2FsbGVlKQorICAgICAgICAgICAg
Y2FsbCBjYWxsZWUKKyAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKKyAgICAgICAgZW5k
KQorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24pCisgICAg
aWYgSklUX0VOQUJMRUQKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgICAg
IGJhZGRpcyBpbmNyZW1lbnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsgRXhl
Y3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QwXSwgLmNvbnRpbnVlCisgICAgICAgIGFjdGlvbigp
CisgICAgLmNvbnRpbnVlOgorICAgIGVuZAorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVRG
b3JFcGlsb2d1ZSgpCisgICAgY2hlY2tTd2l0Y2hUb0pJVCgKKyAgICAgICAgMTAsCisgICAgICAg
IG1hY3JvICgpCisgICAgICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlcGxhY2UpCisgICAg
ICAgIGVuZCkKK2VuZAorCittYWNybyBhc3NlcnROb3RDb25zdGFudChpbmRleCkKKyAgICBhc3Nl
cnQobWFjcm8gKG9rKSBiaWx0IGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgb2sg
ZW5kKQorZW5kCisKK21hY3JvIGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlcih0YXJnZXRS
ZWdpc3RlcikKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2Fk
cCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3Rl
cgorICAgIGxvYWRwIEZ1bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2RlQmxvY2tGb3JDYWxsW3Rhcmdl
dFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKK2VuZAorCittYWNybyBmdW5jdGlvbkZvckNvbnN0
cnVjdENvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKKyAgICBsb2FkcCBDYWxsZWVbY2Zy
XSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdGFy
Z2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEZ1bmN0aW9uRXhlY3V0YWJs
ZTo6bV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3RbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3Rl
cgorZW5kCisKK21hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVy
KQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3Jv
IGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQorICAgIHN0b3JlcCBzb3Vy
Y2VSZWdpc3RlciwgQ29kZUJsb2NrW2Nmcl0KK2VuZAorCittYWNybyBub3RGdW5jdGlvbkNvZGVC
bG9ja1NldHRlcihzb3VyY2VSZWdpc3RlcikKKyAgICAjIE5vdGhpbmcgdG8gZG8hCitlbmQKKwor
IyBEbyB0aGUgYmFyZSBtaW5pbXVtIHJlcXVpcmVkIHRvIGV4ZWN1dGUgY29kZS4gU2V0cyB1cCB0
aGUgUEMsIGxlYXZlIHRoZSBDb2RlQmxvY2sqCisjIGluIHQxLiBNYXkgYWxzbyB0cmlnZ2VyIHBy
b2xvZ3VlIGVudHJ5IE9TUi4KK21hY3JvIHByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJs
b2NrU2V0dGVyLCBvc3JTbG93UGF0aCwgdHJhY2VTbG93UGF0aCkKKyAgICBwcmVzZXJ2ZVJldHVy
bkFkZHJlc3NBZnRlckNhbGwodDIpCisgICAgCisgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUg
YW5kIGNoZWNrIGlmIHdlIHNob3VsZCBPU1IuCisgICAgc3RvcmVwIHQyLCBSZXR1cm5QQ1tjZnJd
CisgICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKKyAgICAgICAgY2FsbFNsb3dQYXRoKHRyYWNlU2xv
d1BhdGgpCisgICAgZW5kCisgICAgY29kZUJsb2NrR2V0dGVyKHQxKQorICAgIGlmIEpJVF9FTkFC
TEVECisgICAgICAgIGJhZGRpcyA1LCBDb2RlQmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRlciAr
IEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MV0sIC5jb250aW51ZQorICAgICAgICBjQ2Fs
bDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCisgICAgICAgIG1vdmUgdDEsIGNmcgorICAgICAgICBi
dHB6IHQwLCAucmVjb3ZlcgorICAgICAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgorICAgICAg
ICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAgICAgICAgam1wIHQwCisg
ICAgLnJlY292ZXI6CisgICAgICAgIGNvZGVCbG9ja0dldHRlcih0MSkKKyAgICAuY29udGludWU6
CisgICAgZW5kCisgICAgY29kZUJsb2NrU2V0dGVyKHQxKQorICAgIAorICAgICMgU2V0IHVwIHRo
ZSBQQy4KKyAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3Ry
dWN0aW9uc1t0MV0sIFBCCisgICAgICAgIG1vdmUgMCwgUEMKKyAgICBlbHNlCisgICAgICAgIGxv
YWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQworICAgIGVuZAorZW5kCisKKyMg
RXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgp
IGxlYXZlcyBiZWhpbmQuCisjIE11c3QgY2FsbCBkaXNwYXRjaCgwKSBhZnRlciBjYWxsaW5nIHRo
aXMuCittYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTa2lwKQorICAgIGlm
IFZBTFVFX1BST0ZJTEVSCisgICAgICAgICMgUHJvZmlsZSB0aGUgYXJndW1lbnRzLiBVbmZvcnR1
bmF0ZWx5LCB3ZSBoYXZlIG5vIGNob2ljZSBidXQgdG8gZG8gdGhpcy4gVGhpcworICAgICAgICAj
IGNvZGUgaXMgcHJldHR5IGhvcnJlbmRvdXMgYmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBpbiBv
cmRlcmluZyBiZXR3ZWVuCisgICAgICAgICMgYXJndW1lbnRzIGFuZCB2YWx1ZSBwcm9maWxlcywg
dGhlIGRlc2lyZSB0byBoYXZlIGEgc2ltcGxlIGxvb3AtZG93bi10by16ZXJvCisgICAgICAgICMg
bG9vcCwgYW5kIHRoZSBkZXNpcmUgdG8gdXNlIG9ubHkgdGhyZWUgcmVnaXN0ZXJzIHNvIGFzIHRv
IHByZXNlcnZlIHRoZSBQQyBhbmQKKyAgICAgICAgIyB0aGUgY29kZSBibG9jay4gSXQgaXMgbGlr
ZWx5IHRoYXQgdGhpcyBjb2RlIHNob3VsZCBiZSByZXdyaXR0ZW4gaW4gYSBtb3JlCisgICAgICAg
ICMgb3B0aW1hbCB3YXkgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBoYXZlIG1vcmUgdGhhbiBmaXZl
IHJlZ2lzdGVycyBhdmFpbGFibGUKKyAgICAgICAgIyBmb3IgYXJiaXRyYXJ5IHVzZSBpbiB0aGUg
aW50ZXJwcmV0ZXIuCisgICAgICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3Qx
XSwgdDAKKyAgICAgICAgYWRkaSAtcHJvZmlsZUFyZ1NraXAsIHQwICMgVXNlIGFkZGkgYmVjYXVz
ZSB0aGF0J3Mgd2hhdCBoYXMgdGhlIHBlZXBob2xlCisgICAgICAgIGFzc2VydChtYWNybyAob2sp
IGJpZ3RlcSB0MCwgMCwgb2sgZW5kKQorICAgICAgICBidGl6IHQwLCAuYXJndW1lbnRQcm9maWxl
RG9uZQorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fYXJndW1lbnRWYWx1ZVByb2ZpbGVzICsg
VmVjdG9yQnVmZmVyT2Zmc2V0W3QxXSwgdDMKKyAgICAgICAgbXVsaSBzaXplb2YgVmFsdWVQcm9m
aWxlLCB0MCwgdDIgIyBBYWFhYWhoaGghIE5lZWQgc3RyZW5ndGggcmVkdWN0aW9uIQorICAgICAg
ICBuZWdpIHQwCisgICAgICAgIGxzaGlmdGkgMywgdDAKKyAgICAgICAgYWRkcCB0MiwgdDMKKyAg
ICAuYXJndW1lbnRQcm9maWxlTG9vcDoKKyAgICAgICAgaWYgSlNWQUxVRTY0CisgICAgICAgICAg
ICBsb2FkcCBUaGlzQXJndW1lbnRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2Nmciwg
dDBdLCB0MgorICAgICAgICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MworICAgICAg
ICAgICAgc3RvcmVwIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBW
YWx1ZVByb2ZpbGU6Om1fYnVja2V0c1t0M10KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9h
ZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgVGFnT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICog
OFtjZnIsIHQwXSwgdDIKKyAgICAgICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDMK
KyAgICAgICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9m
aWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBUYWdPZmZzZXRbdDNdCisgICAgICAgICAg
ICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBQYXlsb2FkT2Zmc2V0ICsgOCAtIHByb2ZpbGVB
cmdTa2lwICogOFtjZnIsIHQwXSwgdDIKKyAgICAgICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFy
Z1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBQ
YXlsb2FkT2Zmc2V0W3QzXQorICAgICAgICBlbmQKKyAgICAgICAgYmFkZGlueiA4LCB0MCwgLmFy
Z3VtZW50UHJvZmlsZUxvb3AKKyAgICAuYXJndW1lbnRQcm9maWxlRG9uZToKKyAgICBlbmQKKyAg
ICAgICAgCisgICAgIyBDaGVjayBzdGFjayBoZWlnaHQuCisgICAgbG9hZGkgQ29kZUJsb2NrOjpt
X251bUNhbGxlZVJlZ2lzdGVyc1t0MV0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2Jh
bERhdGFbdDFdLCB0MgorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0
MiAgICMgRklYTUU6IENhbiBnZXQgdG8gdGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFj
a0ZyYW1lCisgICAgbHNoaWZ0aSAzLCB0MAorICAgIGFkZHAgdDAsIGNmciwgdDAKKyAgICBicGFl
cSBJbnRlcnByZXRlcjo6bV9yZWdpc3RlckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwg
dDAsIC5zdGFja0hlaWdodE9LCisKKyAgICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBu
ZWVkIHRvIGNhbGwgYSBzbG93X3BhdGguCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdpc3Rl
cl9maWxlX2NoZWNrKQorLnN0YWNrSGVpZ2h0T0s6CitlbmQKKworbWFjcm8gYWxsb2NhdGVCYXNp
Y0pTT2JqZWN0KHNpemVDbGFzc0luZGV4LCBjbGFzc0luZm9PZmZzZXQsIHN0cnVjdHVyZSwgcmVz
dWx0LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNsb3dDYXNlKQorICAgIGlmIEFMV0FZU19BTExPQ0FU
RV9TTE9XCisgICAgICAgIGptcCBzbG93Q2FzZQorICAgIGVsc2UKKyAgICAgICAgY29uc3Qgb2Zm
c2V0T2ZNeVNpemVDbGFzcyA9CisgICAgICAgICAgICBKU0dsb2JhbERhdGE6OmhlYXAgKworICAg
ICAgICAgICAgSGVhcDo6bV9vYmplY3RTcGFjZSArCisgICAgICAgICAgICBNYXJrZWRTcGFjZTo6
bV9ub3JtYWxTcGFjZSArCisgICAgICAgICAgICBNYXJrZWRTcGFjZTo6U3Vic3BhY2U6OnByZWNp
c2VBbGxvY2F0b3JzICsKKyAgICAgICAgICAgIHNpemVDbGFzc0luZGV4ICogc2l6ZW9mIE1hcmtl
ZEFsbG9jYXRvcgorICAgICAgICAKKyAgICAgICAgIyBGSVhNRTogd2UgY2FuIGdldCB0aGUgZ2xv
YmFsIGRhdGEgaW4gb25lIGxvYWQgZnJvbSB0aGUgc3RhY2suCisgICAgICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCBzY3JhdGNoMQorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0
YVtzY3JhdGNoMV0sIHNjcmF0Y2gxCisgICAgICAgIAorICAgICAgICAjIEdldCB0aGUgb2JqZWN0
IGZyb20gdGhlIGZyZWUgbGlzdC4gICAgCisgICAgICAgIGxvYWRwIG9mZnNldE9mTXlTaXplQ2xh
c3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0sIHJlc3VsdAor
ICAgICAgICBidHB6IHJlc3VsdCwgc2xvd0Nhc2UKKyAgICAgICAgCisgICAgICAgICMgUmVtb3Zl
IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LgorICAgICAgICBsb2FkcCBbcmVzdWx0XSwg
c2NyYXRjaDIKKyAgICAgICAgc3RvcmVwIHNjcmF0Y2gyLCBvZmZzZXRPZk15U2l6ZUNsYXNzICsg
TWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2NyYXRjaDFdCisgICAgCisgICAgICAg
ICMgSW5pdGlhbGl6ZSB0aGUgb2JqZWN0LgorICAgICAgICBsb2FkcCBjbGFzc0luZm9PZmZzZXRb
c2NyYXRjaDFdLCBzY3JhdGNoMgorICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIFtyZXN1bHRdCisg
ICAgICAgIHN0b3JlcCBzdHJ1Y3R1cmUsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbcmVzdWx0XQorICAg
ICAgICBzdG9yZXAgMCwgSlNPYmplY3Q6Om1faW5oZXJpdG9ySURbcmVzdWx0XQorICAgICAgICBh
ZGRwIHNpemVvZiBKU09iamVjdCwgcmVzdWx0LCBzY3JhdGNoMQorICAgICAgICBzdG9yZXAgc2Ny
YXRjaDEsIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVtyZXN1bHRdCisgICAgZW5kCitlbmQK
KworbWFjcm8gZG9SZXR1cm4oKQorICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCisgICAgbG9h
ZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCisgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVS
ZXR1cm4odDIpCisgICAgcmV0CitlbmQKKworCisjIEluZGljYXRlIHRoZSBiZWdpbm5pbmcgb2Yg
TExJbnQuCitfbGxpbnRfYmVnaW46CisgICAgY3Jhc2goKQorCisKK19sbGludF9wcm9ncmFtX3By
b2xvZ3VlOgorICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5j
dGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xv
Z3VlKQorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X2V2YWxfcHJvbG9ndWU6CisgICAgcHJv
bG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0
dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCisgICAgZGlzcGF0
Y2goMCkKKworCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWU6CisgICAgcHJvbG9n
dWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRl
ciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xsaW50X3RyYWNlX3Byb2xv
Z3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQorLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luOgorICAgIGZ1bmN0
aW9uSW5pdGlhbGl6YXRpb24oMCkKKyAgICBkaXNwYXRjaCgwKQorICAgIAorCitfbGxpbnRfZnVu
Y3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNv
bnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9l
bnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlX2Z1
bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCisuZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbjoKKyAgICBm
dW5jdGlvbkluaXRpYWxpemF0aW9uKDEpCisgICAgZGlzcGF0Y2goMCkKKyAgICAKKworX2xsaW50
X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrOgorICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9y
Q2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRy
eV9vc3JfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNlX2FyaXR5Q2hl
Y2tfZm9yX2NhbGwpCisgICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNhbGxCZWdp
biwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCisKKworX2xsaW50X2Z1bmN0aW9u
X2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2s6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDb25z
dHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50
cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNlX2Fy
aXR5Q2hlY2tfZm9yX2NvbnN0cnVjdCkKKyAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0aW9u
Rm9yQ29uc3RydWN0QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0X2FyaXR5Q2hlY2sp
CisKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1zcGVjaWZpYyBjb2RlLgogaWYgSlNWQUxVRTY0
CiAgICAgaW5jbHVkZSBMb3dMZXZlbEludGVycHJldGVyNjQKIGVsc2UKICAgICBpbmNsdWRlIExv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NAogZW5kCiAKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1h
Z25vc3RpYyBjb2RlLgorX2xsaW50X29wX25ld19hcnJheToKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2FycmF5KQorICAgIGRpc3Bh
dGNoKDQpCisKKworX2xsaW50X29wX25ld19hcnJheV9idWZmZXI6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19hcnJheV9idWZmZXIp
CisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfbmV3X3JlZ2V4cDoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X3JlZ2V4cCkK
KyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9sZXNzOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzKQorICAgIGRpc3BhdGNo
KDQpCisKKworX2xsaW50X29wX2xlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbGVzc2VxKQorICAgIGRpc3BhdGNoKDQpCisKKwor
X2xsaW50X29wX2dyZWF0ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXIpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRf
b3BfZ3JlYXRlcmVxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9ncmVhdGVyZXEpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3Bf
bW9kOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9tb2QpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfdHlwZW9mOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90eXBlb2Yp
CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfdW5kZWZpbmVkOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc191bmRlZmlu
ZWQpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfYm9vbGVhbjoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfYm9vbGVh
bikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19udW1iZXI6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX251bWJlcikK
KyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19zdHJpbmc6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX3N0cmluZykKKyAg
ICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19vYmplY3Q6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX29iamVjdCkKKyAgICBk
aXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19mdW5jdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfZnVuY3Rpb24pCisgICAg
ZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaW46CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luKQorICAgIGRpc3BhdGNoKDQpCisKKwor
X2xsaW50X29wX3Jlc29sdmU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmUpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRf
b3BfcmVzb2x2ZV9za2lwOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3NraXApCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxp
bnRfb3BfcmVzb2x2ZV9iYXNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX2Jhc2UpCisgICAgZGlzcGF0Y2goNSkKKworCitf
bGxpbnRfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0czoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cykK
KyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9yZXNvbHZlX3dpdGhfYmFzZToKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2
ZV93aXRoX2Jhc2UpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfcmVzb2x2ZV93aXRo
X3RoaXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX3Jlc29sdmVfd2l0aF90aGlzKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29w
X2RlbF9ieV9pZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfZGVsX2J5X2lkKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX2Rl
bF9ieV92YWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2RlbF9ieV92YWwpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfcHV0
X2J5X2luZGV4OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9wdXRfYnlfaW5kZXgpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3Bf
cHV0X2dldHRlcl9zZXR0ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3B1dF9nZXR0ZXJfc2V0dGVyKQorICAgIGRpc3BhdGNoKDUpCisK
KworX2xsaW50X29wX2ptcF9zY29wZXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2ptcF9zY29wZXMpCisgICAgZGlzcGF0Y2goMCkKKwor
CitfbGxpbnRfb3BfbG9vcF9pZl90cnVlOgorICAgIG5vcAorX2xsaW50X29wX2p0cnVlOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBqdW1wVHJ1ZU9yRmFsc2UoCisgICAgICAgIG1hY3JvICh2
YWx1ZSwgdGFyZ2V0KSBidGlueiB2YWx1ZSwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9qdHJ1ZSkKKworCitfbGxpbnRfb3BfbG9vcF9pZl9mYWxzZToKKyAgICBub3AKK19s
bGludF9vcF9qZmFsc2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGp1bXBUcnVlT3JGYWxz
ZSgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0aXogdmFsdWUsIHRhcmdldCBlbmQs
CisgICAgICAgIF9sbGludF9zbG93X3BhdGhfamZhbHNlKQorCisKK19sbGludF9vcF9sb29wX2lm
X2xlc3M6CisgICAgbm9wCitfbGxpbnRfb3Bfamxlc3M6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0IGxl
ZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdl
dCkgYmRsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9qbGVzcykKKworCitfbGxpbnRfb3Bfam5sZXNzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndGVxIGxl
ZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdl
dCkgYmRndGVxdW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfam5sZXNzKQorCisKK19sbGludF9vcF9sb29wX2lmX2dyZWF0ZXI6CisgICAgbm9wCitf
bGxpbnRfb3BfamdyZWF0ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisg
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0IGxlZnQsIHJpZ2h0LCB0YXJn
ZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndCBsZWZ0LCBy
aWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZ3JlYXRlcikKKwor
CitfbGxpbnRfb3Bfam5ncmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJl
KAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdGVxIGxlZnQsIHJpZ2h0
LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdGVx
dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5n
cmVhdGVyKQorCisKK19sbGludF9vcF9sb29wX2lmX2xlc3NlcToKKyAgICBub3AKK19sbGludF9v
cF9qbGVzc2VxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5k
LAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdGVxIGxlZnQsIHJpZ2h0
LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2psZXNzZXEpCisKKworX2xs
aW50X29wX2pubGVzc2VxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAg
ICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndCBsZWZ0LCByaWdodCwgdGFyZ2V0
IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3R1biBsZWZ0LCBy
aWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmxlc3NlcSkKKwor
CitfbGxpbnRfb3BfbG9vcF9pZl9ncmVhdGVyZXE6CisgICAgbm9wCitfbGxpbnRfb3BfamdyZWF0
ZXJlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3RlcSBsZWZ0LCByaWdodCwgdGFy
Z2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZ3JlYXRlcmVxKQorCisKK19sbGlu
dF9vcF9qbmdyZWF0ZXJlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHQgbGVmdCwgcmlnaHQsIHRhcmdl
dCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0dW4gbGVmdCwg
cmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5ncmVhdGVyZXEp
CisKKworX2xsaW50X29wX2xvb3BfaGludDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hl
Y2tTd2l0Y2hUb0pJVEZvckxvb3AoKQorICAgIGRpc3BhdGNoKDEpCisKKworX2xsaW50X29wX3N3
aXRjaF9zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3N3aXRjaF9zdHJpbmcpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRf
b3BfbmV3X2Z1bmNfZXhwOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9uZXdfZnVuY19leHApCisgICAgZGlzcGF0Y2goMykKKworCitfbGxp
bnRfb3BfY2FsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZG9DYWxsKF9sbGludF9zbG93
X3BhdGhfY2FsbCkKKworCitfbGxpbnRfb3BfY29uc3RydWN0OgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBkb0NhbGwoX2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1Y3QpCisKKworX2xsaW50X29w
X2NhbGxfdmFyYXJnczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgc2xvd1BhdGhGb3JDYWxs
KDYsIF9sbGludF9zbG93X3BhdGhfY2FsbF92YXJhcmdzKQorCisKK19sbGludF9vcF9jYWxsX2V2
YWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIAorICAgICMgRXZhbCBpcyBleGVjdXRlZCBp
biBvbmUgb2YgdHdvIG1vZGVzOgorICAgICMKKyAgICAjIDEpIFdlIGZpbmQgdGhhdCB3ZSdyZSBy
ZWFsbHkgaW52b2tpbmcgZXZhbCgpIGluIHdoaWNoIGNhc2UgdGhlCisgICAgIyAgICBleGVjdXRp
b24gaXMgcGVyZm9tZWQgZW50aXJlbHkgaW5zaWRlIHRoZSBzbG93X3BhdGgsIGFuZCBpdAorICAg
ICMgICAgcmV0dXJucyB0aGUgUEMgb2YgYSBmdW5jdGlvbiB0aGF0IGp1c3QgcmV0dXJucyB0aGUg
cmV0dXJuIHZhbHVlCisgICAgIyAgICB0aGF0IHRoZSBldmFsIHJldHVybmVkLgorICAgICMKKyAg
ICAjIDIpIFdlIGZpbmQgdGhhdCB3ZSdyZSBpbnZva2luZyBzb21ldGhpbmcgY2FsbGVkIGV2YWwo
KSB0aGF0IGlzIG5vdAorICAgICMgICAgdGhlIHJlYWwgZXZhbC4gVGhlbiB0aGUgc2xvd19wYXRo
IHJldHVybnMgdGhlIFBDIG9mIHRoZSB0aGluZyB0bworICAgICMgICAgY2FsbCwgYW5kIHdlIGNh
bGwgaXQuCisgICAgIworICAgICMgVGhpcyBhbGxvd3MgdXMgdG8gaGFuZGxlIHR3byBjYXNlcywg
d2hpY2ggd291bGQgcmVxdWlyZSBhIHRvdGFsIG9mCisgICAgIyB1cCB0byBmb3VyIHBpZWNlcyBv
ZiBzdGF0ZSB0aGF0IGNhbm5vdCBiZSBlYXNpbHkgcGFja2VkIGludG8gdHdvCisgICAgIyByZWdp
c3RlcnMgKEMgZnVuY3Rpb25zIGNhbiByZXR1cm4gdXAgdG8gdHdvIHJlZ2lzdGVycywgZWFzaWx5
KToKKyAgICAjCisgICAgIyAtIFRoZSBjYWxsIGZyYW1lIHJlZ2lzdGVyLiBUaGlzIG1heSBvciBt
YXkgbm90IGhhdmUgYmVlbiBtb2RpZmllZAorICAgICMgICBieSB0aGUgc2xvd19wYXRoLCBidXQg
dGhlIGNvbnZlbnRpb24gaXMgdGhhdCBpdCByZXR1cm5zIGl0LiBJdCdzIG5vdAorICAgICMgICB0
b3RhbGx5IGNsZWFyIGlmIHRoYXQncyBuZWNlc3NhcnksIHNpbmNlIHRoZSBjZnIgaXMgY2FsbGVl
IHNhdmUuCisgICAgIyAgIEJ1dCB0aGF0J3Mgb3VyIHN0eWxlIGluIHRoaXMgaGVyZSBpbnRlcnBy
ZXRlciBzbyB3ZSBzdGljayB3aXRoIGl0LgorICAgICMKKyAgICAjIC0gQSBiaXQgdG8gc2F5IGlm
IHRoZSBzbG93X3BhdGggc3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkIHRoZSBldmFsIGFuZCBoYXMKKyAg
ICAjICAgdGhlIHJldHVybiB2YWx1ZSwgb3IgZGlkIG5vdCBleGVjdXRlIHRoZSBldmFsIGJ1dCBo
YXMgYSBQQyBmb3IgdXMKKyAgICAjICAgdG8gY2FsbC4KKyAgICAjCisgICAgIyAtIEVpdGhlcjoK
KyAgICAjICAgLSBUaGUgSlMgcmV0dXJuIHZhbHVlICh0d28gcmVnaXN0ZXJzKSwgb3IKKyAgICAj
CisgICAgIyAgIC0gVGhlIFBDIHRvIGNhbGwuCisgICAgIworICAgICMgSXQgdHVybnMgb3V0IHRv
IGJlIGVhc2llciB0byBqdXN0IGFsd2F5cyBoYXZlIHRoaXMgcmV0dXJuIHRoZSBjZnIKKyAgICAj
IGFuZCBhIFBDIHRvIGNhbGwsIGFuZCB0aGF0IFBDIG1heSBiZSBhIGR1bW15IHRodW5rIHRoYXQg
anVzdAorICAgICMgcmV0dXJucyB0aGUgSlMgdmFsdWUgdGhhdCB0aGUgZXZhbCByZXR1cm5lZC4K
KyAgICAKKyAgICBzbG93UGF0aEZvckNhbGwoNCwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2V2YWwp
CisKKworX2xsaW50X2dlbmVyaWNfcmV0dXJuX3BvaW50OgorICAgIGRpc3BhdGNoQWZ0ZXJDYWxs
KCkKKworCitfbGxpbnRfb3Bfc3RyY2F0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zdHJjYXQpCisgICAgZGlzcGF0Y2goNCkKKworCitf
bGxpbnRfb3BfbWV0aG9kX2NoZWNrOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAjIFdlIGln
bm9yZSBtZXRob2QgY2hlY2tzIGFuZCB1c2Ugbm9ybWFsIGdldF9ieV9pZCBvcHRpbWl6YXRpb25z
LgorICAgIGRpc3BhdGNoKDEpCisKKworX2xsaW50X29wX2dldF9wbmFtZXM6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9wbmFtZXMp
CisgICAgZGlzcGF0Y2goMCkgIyBUaGUgc2xvd19wYXRoIGVpdGhlciBhZHZhbmNlcyB0aGUgUEMg
b3IganVtcHMgdXMgdG8gc29tZXdoZXJlIGVsc2UuCisKKworX2xsaW50X29wX3B1c2hfc2NvcGU6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X3B1c2hfc2NvcGUpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfcG9wX3Njb3BlOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9w
b3Bfc2NvcGUpCisgICAgZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3BfcHVzaF9uZXdfc2NvcGU6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X3B1c2hfbmV3X3Njb3BlKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX3Rocm93Ogor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90
aHJvdykKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF90aHJvd19yZWZlcmVuY2VfZXJy
b3I6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX3Rocm93X3JlZmVyZW5jZV9lcnJvcikKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9v
cF9kZWJ1ZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfZGVidWcpCisgICAgZGlzcGF0Y2goNCkKKworCisjIExhc3RseSwgbWFrZSBzdXJl
IHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rl
cy4KKyMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTEludCBv
ciBlaXRoZXIgSklULiBXZSBhc3NlcnQKKyMgYXMgbXVjaC4KKworbWFjcm8gbm90U3VwcG9ydGVk
KCkKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBjcmFzaCgpCisgICAgZWxzZQorICAg
ICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIGluc3Ry
dWN0aW9uIGlzLCBqdXN0IHRvCisgICAgICAgICMgZW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAg
YmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMuIElmIG11bHRpcGxlCisgICAgICAgICMgc21hbGxl
c3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25lIHRoYXQgaXMgbW9z
dAorICAgICAgICAjIGxpa2VseSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3Vy
cmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCisgICAgICAgICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFy
Y2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGludDMKKyAgICAgICAg
IyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12Nywgd2hpY2ggaXMg
MiBieXRlcy4pCisgICAgICAgIGJyZWFrCisgICAgZW5kCitlbmQKKworX2xsaW50X29wX2dldF9h
cnJheV9sZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9j
aGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9j
aGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9w
cm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9z
ZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoK
KyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbjoK
KyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoK
KyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9zZWxmOgor
ICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG86CisgICAgbm90
U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9zZWxmOgorICAgIG5vdFN1cHBvcnRl
ZCgpCisKK19sbGludF9vcF9nZXRfc3RyaW5nX2xlbmd0aDoKKyAgICBub3RTdXBwb3J0ZWQoKQor
CitfbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xs
aW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9v
cF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCisKKyMgSW5kaWNh
dGUgdGhlIGVuZCBvZiBMTEludC4KK19sbGludF9lbmQ6CisgICAgY3Jhc2goKQorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgkocmV2aXNpb24gMTA5OTU4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDI5ICszMyw5IEBAIGNsYXNzIE5vZGUKIGVuZAogCiBjbGFzcyBTcGVjaWFs
UmVnaXN0ZXIgPCBOb0NoaWxkcmVuCi0gICAgZGVmIGluaXRpYWxpemUobmFtZSkKLSAgICAgICAg
QG5hbWUgPSBuYW1lCi0gICAgZW5kCi0gICAgCiAgICAgZGVmIGFybVY3T3BlcmFuZAogICAgICAg
ICBAbmFtZQogICAgIGVuZAotICAgIAotICAgIGRlZiBhZGRyZXNzPwotICAgICAgICBmYWxzZQot
ICAgIGVuZAotICAgIAotICAgIGRlZiBsYWJlbD8KLSAgICAgICAgZmFsc2UKLSAgICBlbmQKLSAg
ICAKLSAgICBkZWYgaW1tZWRpYXRlPwotICAgICAgICBmYWxzZQotICAgIGVuZAotICAgIAotICAg
IGRlZiByZWdpc3Rlcj8KLSAgICAgICAgdHJ1ZQotICAgIGVuZAogZW5kCiAKIEFSTXY3X0VYVFJB
X0dQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygicjkiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygi
cjgiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjMiKV0KQEAgLTQ2OSw3ICs0NDksNyBAQCBkZWYg
YXJtVjdMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMobGlzdCkKICAgICAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZS5hcm1WN0xvd2VyTWFsZm9ybWVk
SW1tZWRpYXRlc1JlY3Vyc2UobmV3TGlzdCkKICAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAg
ICAgIHdoZW4gIm11bGkiCisgICAgICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiCiAgICAgICAg
ICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKICAgICAgICAgICAg
ICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQogICAgICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwg
W25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCkBAIC01MzUsOSArNTE1LDkgQEAgZGVmIGFybVY3TG93
ZXJNaXNwbGFjZWRBZGRyZXNzZXMobGlzdCkKICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVj
dGlvbgogICAgICAgICAgICAgcG9zdEluc3RydWN0aW9ucyA9IFtdCiAgICAgICAgICAgICBjYXNl
IG5vZGUub3Bjb2RlCi0gICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAi
YW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAibXVsaSIsICJuZWdpIiwgIm5vdGkiLCAib3JpIiwg
Im9yaXMiLAotICAgICAgICAgICAgICAgICJvcnAiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJz
dWJpIiwgInN1YnAiLCAic3ViaXMiLCAieG9yaSIsICJ4b3JwIiwgL15iaS8sIC9eYnAvLCAvXmJ0
aS8sCi0gICAgICAgICAgICAgICAgL15idHAvLCAvXmNpLywgL15jcC8sIC9edGkvCisgICAgICAg
ICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIsICJhbmRwIiwgImxzaGlm
dGkiLCAibXVsaSIsICJtdWxwIiwgIm5lZ2kiLCAibm90aSIsICJvcmkiLAorICAgICAgICAgICAg
ICAgICJvcmlzIiwgIm9ycCIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInN1YmkiLCAic3VicCIs
ICJzdWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJpLywgL15icC8sCisgICAgICAgICAgICAgICAg
L15idGkvLCAvXmJ0cC8sIC9eY2kvLCAvXmNwLywgL150aS8KICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJtVjdBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0
SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzLCAiaSIpKQpAQCAtNjQ5LDcgKzYyOSw3IEBAIGVu
ZAogIwogCiBjbGFzcyBTZXF1ZW5jZQotICAgIGRlZiBsb3dlckFSTXY3CisgICAgZGVmIGdldE1v
ZGlmaWVkTGlzdEFSTXY3CiAgICAgICAgIG15TGlzdCA9IEBsaXN0CiAgICAgICAgIAogICAgICAg
ICAjIFZlcmlmeSB0aGF0IHdlIHdpbGwgb25seSBzZWUgaW5zdHJ1Y3Rpb25zIGFuZCBsYWJlbHMu
CkBAIC02NzMsMTAgKzY1Myw4IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgIG15TGlzdCA9IGFy
bVY3TG93ZXJSZWdpc3RlclJldXNlKG15TGlzdCkKICAgICAgICAgbXlMaXN0ID0gYXNzaWduUmVn
aXN0ZXJzVG9UZW1wb3JhcmllcyhteUxpc3QsIDpncHIsIEFSTXY3X0VYVFJBX0dQUlMpCiAgICAg
ICAgIG15TGlzdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMobXlMaXN0LCA6ZnByLCBB
Uk12N19FWFRSQV9GUFJTKQotICAgICAgICBteUxpc3QuZWFjaCB7Ci0gICAgICAgICAgICB8IG5v
ZGUgfAotICAgICAgICAgICAgbm9kZS5sb3dlcigiQVJNdjciKQotICAgICAgICB9CisgICAgICAg
IAorICAgICAgICByZXR1cm4gbXlMaXN0CiAgICAgZW5kCiBlbmQKIApAQCAtNzk4LDcgKzc3Niw3
IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJhc3Jz
IiwgImFzcnMiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAidXJzaGlmdGkiCiAgICAgICAgICAg
ICBlbWl0QXJtVjdDb21wYWN0KCJsc3JzIiwgImxzcnMiLCBvcGVyYW5kcykKLSAgICAgICAgd2hl
biAibXVsaSIKKyAgICAgICAgd2hlbiAibXVsaSIsICJtdWxwIgogICAgICAgICAgICAgaWYgb3Bl
cmFuZHMuc2l6ZSA9PSAyIG9yIG9wZXJhbmRzWzBdID09IG9wZXJhbmRzWzJdIG9yIG9wZXJhbmRz
WzFdID09IG9wZXJhbmRzWzJdCiAgICAgICAgICAgICAgICAgZW1pdEFybVY3KCJtdWxzIiwgb3Bl
cmFuZHMpCiAgICAgICAgICAgICBlbHNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hc20ucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYXNtLnJiCShyZXZpc2lvbiAxMDk5NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9hc20ucmIJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsxNjcsNyBAQCBGaWxl
Lm9wZW4ob3V0cHV0RmxubSwgInciKSB7CiAgICAgICAgIGZvclNldHRpbmdzKGNvbXB1dGVTZXR0
aW5nc0NvbWJpbmF0aW9ucyhhc3QpW2NvbmZpZ0luZGV4XSwgYXN0KSB7CiAgICAgICAgICAgICB8
IGNvbmNyZXRlU2V0dGluZ3MsIGxvd0xldmVsQVNULCBiYWNrZW5kIHwKICAgICAgICAgICAgIGxv
d0xldmVsQVNUID0gbG93TGV2ZWxBU1QucmVzb2x2ZSgqYnVpbGRPZmZzZXRzTWFwKGxvd0xldmVs
QVNULCBvZmZzZXRzTGlzdCkpCisgICAgICAgICAgICBsb3dMZXZlbEFTVC52YWxpZGF0ZQogICAg
ICAgICAgICAgZW1pdENvZGVJbkNvbmZpZ3VyYXRpb24oY29uY3JldGVTZXR0aW5ncywgbG93TGV2
ZWxBU1QsIGJhY2tlbmQpIHsKICAgICAgICAgICAgICAgICAkYXNtLmluQXNtIHsKICAgICAgICAg
ICAgICAgICAgICAgbG93TGV2ZWxBU1QubG93ZXIoYmFja2VuZCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIJKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkod29ya2luZyBjb3B5KQpAQCAtMzgzLDYg
KzM4MywxNTcgQEAgY2xhc3MgTmVnSW1tZWRpYXRlIDwgTm9kZQogICAgIGVuZAogZW5kCiAKK2Ns
YXNzIE9ySW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwgOnJpZ2h0Cisg
ICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQpCisgICAgICAg
IHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAgICBAcmlnaHQg
PSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAgICBbQGxlZnQs
IEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgT3JJ
bW1lZGlhdGVzLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGxlZnQpLCAoeWllbGQgQHJpZ2h0KSkK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAorICAgICAgICAiKCN7bGVmdC5kdW1wfSB8ICN7
cmlnaHQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBm
YWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBl
bmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5kCisgICAg
CisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisKK2NsYXNz
IEFuZEltbWVkaWF0ZXMgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIgOmxlZnQsIDpyaWdodAorICAg
IAorICAgIGRlZiBpbml0aWFsaXplKGNvZGVPcmlnaW4sIGxlZnQsIHJpZ2h0KQorICAgICAgICBz
dXBlcihjb2RlT3JpZ2luKQorICAgICAgICBAbGVmdCA9IGxlZnQKKyAgICAgICAgQHJpZ2h0ID0g
cmlnaHQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAgW0BsZWZ0LCBA
cmlnaHRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1hcENoaWxkcmVuCisgICAgICAgIEFuZElt
bWVkaWF0ZXMubmV3KGNvZGVPcmlnaW4sICh5aWVsZCBAbGVmdCksICh5aWVsZCBAcmlnaHQpKQor
ICAgIGVuZAorICAgIAorICAgIGRlZiBkdW1wCisgICAgICAgICIoI3tsZWZ0LmR1bXB9ICYgI3ty
aWdodC5kdW1wfSkiCisgICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZh
bHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPworICAgICAgICBmYWxzZQorICAgIGVu
ZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5kCitlbmQKKworY2xhc3Mg
WG9ySW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwgOnJpZ2h0CisgICAg
CisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQpCisgICAgICAgIHN1
cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAgICBAcmlnaHQgPSBy
aWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAgICBbQGxlZnQsIEBy
aWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgWG9ySW1t
ZWRpYXRlcy5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwgKHlpZWxkIEByaWdodCkpCisg
ICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAgIigje2xlZnQuZHVtcH0gXiAje3Jp
Z2h0LmR1bXB9KSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFs
c2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5k
CisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorICAgIAor
ICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKK2VuZAorCitjbGFzcyBC
aXRub3RJbW1lZGlhdGUgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIgOmNoaWxkCisgICAgCisgICAg
ZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgY2hpbGQpCisgICAgICAgIHN1cGVyKGNvZGVPcmln
aW4pCisgICAgICAgIEBjaGlsZCA9IGNoaWxkCisgICAgZW5kCisgICAgCisgICAgZGVmIGNoaWxk
cmVuCisgICAgICAgIFtAY2hpbGRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1hcENoaWxkcmVu
CisgICAgICAgIEJpdG5vdEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBjaGlsZCkp
CisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAgIih+I3tAY2hpbGQuZHVtcH0p
IgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVu
ZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAg
ICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJl
Z2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisKIGNsYXNzIFJlZ2lzdGVySUQg
PCBOb0NoaWxkcmVuCiAgICAgYXR0cl9yZWFkZXIgOm5hbWUKICAgICAKQEAgLTQ1OSw2ICs2MTAs
MjggQEAgY2xhc3MgRlBSZWdpc3RlcklEIDwgTm9DaGlsZHJlbgogICAgIGVuZAogZW5kCiAKK2Ns
YXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgaW5pdGlhbGl6ZShuYW1l
KQorICAgICAgICBAbmFtZSA9IG5hbWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8K
KyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZh
bHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgZmFsc2UKKyAg
ICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAgICBlbmQKK2Vu
ZAorCiBjbGFzcyBWYXJpYWJsZSA8IE5vQ2hpbGRyZW4KICAgICBhdHRyX3JlYWRlciA6bmFtZQog
ICAgIApAQCAtNDc5LDYgKzY1MiwxMCBAQCBjbGFzcyBWYXJpYWJsZSA8IE5vQ2hpbGRyZW4KICAg
ICBkZWYgZHVtcAogICAgICAgICBuYW1lCiAgICAgZW5kCisgICAgCisgICAgZGVmIGluc3BlY3QK
KyAgICAgICAgIjx2YXJpYWJsZSAje25hbWV9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30+IgorICAg
IGVuZAogZW5kCiAKIGNsYXNzIEFkZHJlc3MgPCBOb2RlCkBAIC03NTcsNiArOTM0LDEwIEBAIGNs
YXNzIExhYmVsUmVmZXJlbmNlIDwgTm9kZQogICAgIGRlZiBsYWJlbD8KICAgICAgICAgdHJ1ZQog
ICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZhbHNlCisgICAgZW5k
CiBlbmQKIAogY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8IE5vQ2hpbGRyZW4KQEAgLTc5MCw2
ICs5NzEsMTAgQEAgY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8IE5vQ2hpbGRyZW4KICAgICBk
ZWYgbGFiZWw/CiAgICAgICAgIHRydWUKICAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRl
PworICAgICAgICBmYWxzZQorICAgIGVuZAogZW5kCiAKIGNsYXNzIFNlcXVlbmNlIDwgTm9kZQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHJl
dmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tl
bmRzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCwxMiBAQCBCQUNLRU5EX1BBVFRFUk4g
PSBSZWdleHAubmV3KCdcXEEoJyArIEJBCiAKIGNsYXNzIE5vZGUKICAgICBkZWYgbG93ZXIobmFt
ZSkKLSAgICAgICAgJGFjdGl2ZUJhY2tlbmQgPSBuYW1lCi0gICAgICAgIHNlbmQoImxvd2VyIiAr
IG5hbWUpCisgICAgICAgIGJlZ2luCisgICAgICAgICAgICAkYWN0aXZlQmFja2VuZCA9IG5hbWUK
KyAgICAgICAgICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAgICAgIHJlc2N1ZSA9PiBlCisg
ICAgICAgICAgICByYWlzZSAiR290IGVycm9yICN7ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIK
KyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtODcsNyArOTEsMTMgQEAgZW5kCiBjbGFz
cyBTZXF1ZW5jZQogICAgIGRlZiBsb3dlcihuYW1lKQogICAgICAgICAkYWN0aXZlQmFja2VuZCA9
IG5hbWUKLSAgICAgICAgaWYgcmVzcG9uZF90bz8gImxvd2VyI3tuYW1lfSIKKyAgICAgICAgaWYg
cmVzcG9uZF90bz8gImdldE1vZGlmaWVkTGlzdCN7bmFtZX0iCisgICAgICAgICAgICBuZXdMaXN0
ID0gc2VuZCgiZ2V0TW9kaWZpZWRMaXN0I3tuYW1lfSIpCisgICAgICAgICAgICBuZXdMaXN0LmVh
Y2ggeworICAgICAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICAgICAgbm9kZS5sb3dl
cihuYW1lKQorICAgICAgICAgICAgfQorICAgICAgICBlbHNpZiByZXNwb25kX3RvPyAibG93ZXIj
e25hbWV9IgogICAgICAgICAgICAgc2VuZCgibG93ZXIje25hbWV9IikKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgQGxpc3QuZWFjaCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZpc2lvbiAxMDk5NTgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHdvcmtpbmcgY29w
eSkKQEAgLTE1OSw2ICsxNTksNyBAQCBNQUNST19JTlNUUlVDVElPTlMgPQogICAgICAiYnBsdCIs
CiAgICAgICJicGx0ZXEiLAogICAgICAiYWRkcCIsCisgICAgICJtdWxwIiwKICAgICAgImFuZHAi
LAogICAgICAib3JwIiwKICAgICAgInN1YnAiLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vcGFyc2VyLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL3BhcnNlci5yYgkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyAr
MTA0LDcgQEAgZGVmIGxleChzdHIsIGZpbGVOYW1lKQogICAgICAgICAgICAgcmVzdWx0IDw8IFRv
a2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQmKQogICAgICAg
ICB3aGVuIC9cQTo6LwogICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2lu
Lm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQmKQotICAgICAgICB3aGVuIC9cQVs6LFwoXClc
W1xdPVwrXC0qXS8KKyAgICAgICAgd2hlbiAvXEFbOixcKFwpXFtcXT1cK1wtflx8Jl4qXS8KICAg
ICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxp
bmVOdW1iZXIpLCAkJikKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFpc2UgIkxleGVyIGVy
cm9yIGF0ICN7Q29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIpLnRvX3N9LCB1bmV4
cGVjdGVkIHNlcXVlbmNlICN7c3RyWzAuLjIwXS5pbnNwZWN0fSIKQEAgLTMyMiw2ICszMjIsOSBA
QCBjbGFzcyBQYXJzZXIKICAgICAgICAgaWYgQHRva2Vuc1tAaWR4XSA9PSAiLSIKICAgICAgICAg
ICAgIEBpZHggKz0gMQogICAgICAgICAgICAgTmVnSW1tZWRpYXRlLm5ldyhAdG9rZW5zW0BpZHgg
LSAxXS5jb2RlT3JpZ2luLCBwYXJzZUV4cHJlc3Npb25BdG9tKQorICAgICAgICBlbHNpZiBAdG9r
ZW5zW0BpZHhdID09ICJ+IgorICAgICAgICAgICAgQGlkeCArPSAxCisgICAgICAgICAgICBCaXRu
b3RJbW1lZGlhdGUubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4sIHBhcnNlRXhwcmVz
c2lvbkF0b20pCiAgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gIigiCiAgICAgICAgICAg
ICBAaWR4ICs9IDEKICAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbgpAQCAtMzY1
LDEwICszNjgsMTAgQEAgY2xhc3MgUGFyc2VyCiAgICAgZW5kCiAgICAgCiAgICAgZGVmIGNvdWxk
QmVFeHByZXNzaW9uCi0gICAgICAgIEB0b2tlbnNbQGlkeF0gPT0gIi0iIG9yIEB0b2tlbnNbQGlk
eF0gPT0gInNpemVvZiIgb3IgaXNJbnRlZ2VyKEB0b2tlbnNbQGlkeF0pIG9yIGlzVmFyaWFibGUo
QHRva2Vuc1tAaWR4XSkgb3IgQHRva2Vuc1tAaWR4XSA9PSAiKCIKKyAgICAgICAgQHRva2Vuc1tA
aWR4XSA9PSAiLSIgb3IgQHRva2Vuc1tAaWR4XSA9PSAifiIgb3IgQHRva2Vuc1tAaWR4XSA9PSAi
c2l6ZW9mIiBvciBpc0ludGVnZXIoQHRva2Vuc1tAaWR4XSkgb3IgaXNWYXJpYWJsZShAdG9rZW5z
W0BpZHhdKSBvciBAdG9rZW5zW0BpZHhdID09ICIoIgogICAgIGVuZAogICAgIAotICAgIGRlZiBw
YXJzZUV4cHJlc3Npb24KKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uQWRkCiAgICAgICAgIHNraXBO
ZXdMaW5lCiAgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbk11bAogICAgICAgICB3aGls
ZSBAdG9rZW5zW0BpZHhdID09ICIrIiBvciBAdG9rZW5zW0BpZHhdID09ICItIgpAQCAtMzg1LDYg
KzM4OCwzMyBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgcmVzdWx0CiAgICAgZW5kCiAgICAgCisg
ICAgZGVmIHBhcnNlRXhwcmVzc2lvbkFuZAorICAgICAgICBza2lwTmV3TGluZQorICAgICAgICBy
ZXN1bHQgPSBwYXJzZUV4cHJlc3Npb25BZGQKKyAgICAgICAgd2hpbGUgQHRva2Vuc1tAaWR4XSA9
PSAiJiIKKyAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgcmVzdWx0ID0gQW5kSW1t
ZWRpYXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcmVzdWx0LCBwYXJzZUV4
cHJlc3Npb25BZGQpCisgICAgICAgIGVuZAorICAgICAgICByZXN1bHQKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgcGFyc2VFeHByZXNzaW9uCisgICAgICAgIHNraXBOZXdMaW5lCisgICAgICAgIHJl
c3VsdCA9IHBhcnNlRXhwcmVzc2lvbkFuZAorICAgICAgICB3aGlsZSBAdG9rZW5zW0BpZHhdID09
ICJ8IiBvciBAdG9rZW5zW0BpZHhdID09ICJeIgorICAgICAgICAgICAgaWYgQHRva2Vuc1tAaWR4
XSA9PSAifCIKKyAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAgICAgICByZXN1
bHQgPSBPckltbWVkaWF0ZXMubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4sIHJlc3Vs
dCwgcGFyc2VFeHByZXNzaW9uQW5kKQorICAgICAgICAgICAgZWxzaWYgQHRva2Vuc1tAaWR4XSA9
PSAiXiIKKyAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSBYb3JJbW1lZGlhdGVzLm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCByZXN1bHQs
IHBhcnNlRXhwcmVzc2lvbkFuZCkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBy
YWlzZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAorICAgICAgICByZXN1bHQKKyAgICBl
bmQKKyAgICAKICAgICBkZWYgcGFyc2VPcGVyYW5kKGNvbW1lbnQpCiAgICAgICAgIHNraXBOZXdM
aW5lCiAgICAgICAgIGlmIGNvdWxkQmVFeHByZXNzaW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCShyZXZpc2lvbiAxMDk5NTgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDcgKzM0LDEyIEBAIEdQUlMgPQogICAgICAicjAiLAogICAgICAicjEiLAogICAg
ICAic3AiLAotICAgICAibHIiCisgICAgICJsciIsCisgICAgIAorICAgICAjIDY0LWJpdCBvbmx5
IHJlZ2lzdGVyczoKKyAgICAgImNzcjAiLCAgIyByMTAKKyAgICAgImNzcjEiLCAgIyByMTQsIHRh
ZyB0eXBlIG51bWJlciByZWdpc3RlcgorICAgICAiY3NyMiIgICAjIHIxNSwgdGFnIG1hc2sgcmVn
aXN0ZXIKICAgICBdCiAKIEZQUlMgPQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vdHJhbnNmb3JtLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3RyYW5zZm9ybS5yYgkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMjgs
NiArMzI4LDQ0IEBAIGNsYXNzIE5lZ0ltbWVkaWF0ZQogICAgIGVuZAogZW5kCiAKK2NsYXNzIE9y
SW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAg
ICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxl
ZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNf
YT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFs
dWUgfCBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRlcwor
ICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQg
PSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1t
ZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRl
CisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUgJiBAcmlnaHQu
dmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgWG9ySW1tZWRpYXRlcworICAgIGRlZiBmb2xk
CisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9s
ZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIElt
bWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUgXiBAcmlnaHQudmFsdWUpCisgICAg
ZW5kCitlbmQKKworY2xhc3MgQml0bm90SW1tZWRpYXRlCisgICAgZGVmIGZvbGQKKyAgICAgICAg
QGNoaWxkID0gQGNoaWxkLmZvbGQKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEBjaGlsZC5p
c19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCB+QGNoaWxk
LnZhbHVlKQorICAgIGVuZAorZW5kCisKICMKICMgbm9kZS5yZXNvbHZlQWZ0ZXJTZXR0aW5ncyhv
ZmZzZXRzLCBzaXplcykKICMKQEAgLTM0MCwzICszNzgsOTcgQEAgY2xhc3MgTm9kZQogICAgIGVu
ZAogZW5kCiAKKyMKKyMgbm9kZS52YWxpZGF0ZQorIworIyBDaGVja3MgdGhhdCB0aGUgbm9kZSBp
cyByZWFkeSBmb3IgYmFja2VuZCBjb21waWxhdGlvbi4KKyMKKworY2xhc3MgTm9kZQorICAgIGRl
ZiB2YWxpZGF0ZQorICAgICAgICByYWlzZSAiVW5yZXNvbHZlZCAje2R1bXB9IGF0ICN7Y29kZU9y
aWdpblN0cmluZ30iCisgICAgZW5kCisgICAgCisgICAgZGVmIHZhbGlkYXRlQ2hpbGRyZW4KKyAg
ICAgICAgY2hpbGRyZW4uZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAg
bm9kZS52YWxpZGF0ZQorICAgICAgICB9CisgICAgZW5kCitlbmQKKworY2xhc3MgU2VxdWVuY2UK
KyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5k
CisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2Ns
YXNzIFJlZ2lzdGVySUQKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBG
UFJlZ2lzdGVySUQKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRy
ZXNzCisgICAgZGVmIHZhbGlkYXRlCisgICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBlbmQK
K2VuZAorCitjbGFzcyBCYXNlSW5kZXgKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRh
dGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEFic29sdXRlQWRkcmVzcworICAgIGRl
ZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xh
c3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJl
bgorICAgIGVuZAorZW5kCisKK2NsYXNzIEVycm9yCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5k
CitlbmQKKworY2xhc3MgTGFiZWwKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitj
bGFzcyBMb2NhbExhYmVsCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3Mg
TGFiZWxSZWZlcmVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBM
b2NhbExhYmVsUmVmZXJlbmNlCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xh
c3MgU2tpcAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkod29ya2luZyBjb3B5KQpAQCAtMzIs
MTMgKzMyLDM3IEBAIGRlZiBpc1g2NAogICAgIGVuZAogZW5kCiAKK2NsYXNzIFNwZWNpYWxSZWdp
c3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgeDg2T3BlcmFuZChraW5kKQorICAgICAgICByYWlz
ZSB1bmxlc3MgQG5hbWUgPX4gL15yLworICAgICAgICByYWlzZSB1bmxlc3MgaXNYNjQKKyAgICAg
ICAgY2FzZSBraW5kCisgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICIlIiArIEBuYW1l
ICsgInciCisgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgIiUiICsgQG5hbWUgKyAiZCIK
KyAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAiJSIgKyBAbmFtZQorICAgICAgICBlbHNl
CisgICAgICAgICAgICByYWlzZQorICAgICAgICBlbmQKKyAgICBlbmQKKyAgICBkZWYgeDg2Q2Fs
bE9wZXJhbmQoa2luZCkKKyAgICAgICAgIioje3g4Nk9wZXJhbmQoa2luZCl9IgorICAgIGVuZAor
ZW5kCisKK1g2NF9TQ1JBVENIX1JFR0lTVEVSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygicjExIikK
KwogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBzdXBwb3J0czhCaXRPblg4NgogICAgICAgICBj
YXNlIG5hbWUKICAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiLCAidDEiLCAiYTEiLCAicjEi
LCAidDIiLCAidDMiCiAgICAgICAgICAgICB0cnVlCi0gICAgICAgIHdoZW4gInQ0IiwgImNmciIK
KyAgICAgICAgd2hlbiAiY2ZyIiwgInR0bnIiLCAidG1yIgogICAgICAgICAgICAgZmFsc2UKKyAg
ICAgICAgd2hlbiAidDQiLCAidDUiCisgICAgICAgICAgICBpc1g2NAogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICByYWlzZQogICAgICAgICBlbmQKQEAgLTExMiwxNyArMTM2LDMwIEBAIGNsYXNz
IFJlZ2lzdGVySUQKICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZW5kCiAgICAg
ICAgIHdoZW4gImNmciIKLSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAgd2hlbiA6
Ynl0ZQotICAgICAgICAgICAgICAgICIlZGlsIgotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAg
ICAgICAgICAgICAgICIlZGkiCi0gICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAg
ICAiJWVkaSIKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8g
IiVyZGkiIDogIiVlZGkiCisgICAgICAgICAgICBpZiBpc1g2NAorICAgICAgICAgICAgICAgIGNh
c2Uga2luZAorICAgICAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAgICAg
IiVyMTN3IgorICAgICAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICAgICAi
JXIxM2QiCisgICAgICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgICAgICIl
cjEzIgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAg
ICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYWlz
ZQorICAgICAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgICAgIHdoZW4gOmJ5dGUK
KyAgICAgICAgICAgICAgICAgICAgIiVkaWwiCisgICAgICAgICAgICAgICAgd2hlbiA6aGFsZgor
ICAgICAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAgICAgICAgIHdoZW4gOmludAorICAg
ICAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAg
ICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCiAgICAg
ICAgIHdoZW4gInNwIgogICAgICAgICAgICAgY2FzZSBraW5kCkBAIC0xMzcsNiArMTc0LDQ4IEBA
IGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByYWlz
ZQogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgcmFpc2Ug
IkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
IHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpi
eXRlCisgICAgICAgICAgICAgICAgIiVkaWwiCisgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAg
ICAgICAgICAgICAgIiVkaSIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAg
ICIlZWRpIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgIiVyZGkiCisg
ICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3NyMCIKKyAgICAgICAgICAgIHJhaXNlICJD
YW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1
bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgd2hlbiA6aGFs
ZgorICAgICAgICAgICAgICAgICIlcjEwdyIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAg
ICAgICAgICAgICIlcjEwZCIKKyAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAg
ICIlcjEwIgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNzcjEiCisgICAgICAgICAg
ICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2lu
U3RyaW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAg
IHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJXIxNHciCisgICAgICAgICAgICB3aGVuIDpp
bnQKKyAgICAgICAgICAgICAgICAiJXIxNGQiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAg
ICAgICAgICAgICAiJXIxNCIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjc3IyIgor
ICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7
Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisg
ICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVyMTV3IgorICAgICAgICAg
ICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVyMTVkIgorICAgICAgICAgICAgd2hlbiA6
cHRyCisgICAgICAgICAgICAgICAgIiVyMTUiCisgICAgICAgICAgICBlbmQKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBYODYgYXQgI3tj
b2RlT3JpZ2luU3RyaW5nfSIKICAgICAgICAgZW5kCkBAIC0xNzIsNiArMjUxLDEzIEBAIGNsYXNz
IEZQUmVnaXN0ZXJJRAogZW5kCiAKIGNsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2YWxpZFg4Nklt
bWVkaWF0ZT8KKyAgICAgICAgaWYgaXNYNjQKKyAgICAgICAgICAgIHZhbHVlID49IC0weDgwMDAw
MDAwIGFuZCB2YWx1ZSA8PSAweDdmZmZmZmZmCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRy
dWUKKyAgICAgICAgZW5kCisgICAgZW5kCiAgICAgZGVmIHg4Nk9wZXJhbmQoa2luZCkKICAgICAg
ICAgIiQje3ZhbHVlfSIKICAgICBlbmQKQEAgLTIxMCw3ICsyOTYsNyBAQCBjbGFzcyBCYXNlSW5k
ZXgKICAgICBlbmQKIAogICAgIGRlZiB4ODZDYWxsT3BlcmFuZChraW5kKQotICAgICAgICAiKiN7
eDg2b3BlcmFuZChraW5kKX0iCisgICAgICAgICIqI3t4ODZPcGVyYW5kKGtpbmQpfSIKICAgICBl
bmQKIGVuZAogCkBAIC0yNDQsNiArMzMwLDQ3IEBAIGNsYXNzIExvY2FsTGFiZWxSZWZlcmVuY2UK
ICAgICBlbmQKIGVuZAogCitjbGFzcyBTZXF1ZW5jZQorICAgIGRlZiBnZXRNb2RpZmllZExpc3RY
ODZfNjQKKyAgICAgICAgbmV3TGlzdCA9IFtdCisgICAgICAgIAorICAgICAgICBAbGlzdC5lYWNo
IHsKKyAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICBuZXdOb2RlID0gbm9kZQorICAg
ICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgICAgIHVubGVz
cyBub2RlLm9wY29kZSA9PSAibW92ZSIKKyAgICAgICAgICAgICAgICAgICAgdXNlZFNjcmF0Y2gg
PSBmYWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA9IG5vZGUub3BlcmFuZHMu
bWFwIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHwgb3BlcmFuZCB8CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiBvcGVyYW5kLmltbWVkaWF0ZT8gYW5kIG5vdCBvcGVyYW5kLnZhbGlkWDg2
SW1tZWRpYXRlPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHVzZWRTY3JhdGNoCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJBdHRlbXB0IHRvIHVzZSBzY3Jh
dGNoIHJlZ2lzdGVyIHR3aWNlIGF0ICN7b3BlcmFuZC5jb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJtb3ZlIiwgW29w
ZXJhbmQsIFg2NF9TQ1JBVENIX1JFR0lTVEVSXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1c2VkU2NyYXRjaCA9IHRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBYNjRfU0NS
QVRDSF9SRUdJU1RFUgorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wZXJhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5ld05vZGUgPSBJbnN0cnVj
dGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgbmV3T3BlcmFuZHMpCisgICAg
ICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdW5sZXNz
IG5vZGUuaXNfYT8gTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8g
TG9jYWxMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisg
ICAgICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAj
e25vZGUuY29kZU9yaWdpbn0iIAorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICBpZiBuZXdOb2RlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBuZXdO
b2RlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJu
IG5ld0xpc3QKKyAgICBlbmQKK2VuZAorCiBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGRlZiB4ODZP
cGVyYW5kcygqa2luZHMpCiAgICAgICAgIHJhaXNlIHVubGVzcyBraW5kcy5zaXplID09IG9wZXJh
bmRzLnNpemUKQEAgLTQ1OCw2ICs1ODUsMTYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAg
ZW5kCiAgICAgZW5kCiAgICAgCisgICAgZGVmIGhhbmRsZVg4Nk11bChraW5kKQorICAgICAgICBp
ZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAg
ICAgICAgICAgJGFzbS5wdXRzICJpbXVsI3t4ODZTdWZmaXgoa2luZCl9ICN7eDg2T3BlcmFuZHMo
a2luZCwga2luZCwga2luZCl9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAjIEZJWE1FOiBj
b3VsZCBkbyBzb21lIHBlZXBob2xlIGluIGNhc2UgdGhlIGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlh
dGUgYW5kIGl0J3MKKyAgICAgICAgICAgICMgYSBwb3dlciBvZiB0d28uCisgICAgICAgICAgICBo
YW5kbGVYODZPcCgiaW11bCN7eDg2U3VmZml4KGtpbmQpfSIsIGtpbmQpCisgICAgICAgIGVuZAor
ICAgIGVuZAorICAgIAogICAgIGRlZiBoYW5kbGVNb3ZlCiAgICAgICAgIGlmIEltbWVkaWF0ZS5u
ZXcobmlsLCAwKSA9PSBvcGVyYW5kc1swXSBhbmQgb3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJ
RAogICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0gI3tvcGVyYW5k
c1sxXS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIK
QEAgLTQ5MCwxMyArNjI3LDkgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAibHNo
aWZ0aSIKICAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYWxsIiwgOmludCkKICAgICAgICAg
d2hlbiAibXVsaSIKLSAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFu
ZHNbMF0uaXNfYT8gSW1tZWRpYXRlCi0gICAgICAgICAgICAgICAgJGFzbS5wdXRzICJpbXVsbCAj
e3g4Nk9wZXJhbmRzKDppbnQsIDppbnQsIDppbnQpfSIKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21lIHBlZXBob2xlIGluIGNhc2UgdGhlIGxl
ZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MKLSAgICAgICAgICAgICAgICAjIGEgcG93
ZXIgb2YgdHdvLgotICAgICAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJpbXVsbCIsIDppbnQpCi0g
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGhhbmRsZVg4Nk11bCg6aW50KQorICAgICAgICB3
aGVuICJtdWxwIgorICAgICAgICAgICAgaGFuZGxlWDg2TXVsKDpwdHIpCiAgICAgICAgIHdoZW4g
Im5lZ2kiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm5lZ2wgI3t4ODZPcGVyYW5kcyg6aW50KX0i
CiAgICAgICAgIHdoZW4gIm5vdGkiCkBAIC01MTYsNyArNjQ5LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rp
b24KICAgICAgICAgd2hlbiAieG9yaSIKICAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJ4b3JsIiwg
OmludCkKICAgICAgICAgd2hlbiAieG9ycCIKLSAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJ4b3Ij
e3g4NlN1ZmZpeCg6cHRyKX0iLCA6aW50KQorICAgICAgICAgICAgaGFuZGxlWDg2T3AoInhvciN7
eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gImxvYWRpIiwgInN0b3JlaSIK
ICAgICAgICAgICAgICRhc20ucHV0cyAibW92bCAje3g4Nk9wZXJhbmRzKDppbnQsIDppbnQpfSIK
ICAgICAgICAgd2hlbiAibG9hZHAiLCAic3RvcmVwIgpAQCAtODI1LDkgKzk1OCw5IEBAIGNsYXNz
IEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgInBzcmxxICQzMiwgJXhtbTciCiAg
ICAgICAgICAgICAkYXNtLnB1dHMgIm1vdnNkICV4bW03LCAje29wZXJhbmRzWzJdLng4Nk9wZXJh
bmQoOmludCl9IgogICAgICAgICB3aGVuICJmcDJkIgotICAgICAgICAgICAgJGFzbS5wdXRzICJt
b3ZkICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZHMoOnB0cil9LCAje29wZXJhbmRzWzFdLng4Nk9w
ZXJhbmQoOmRvdWJsZSl9IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZkICN7b3BlcmFuZHNb
MF0ueDg2T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6ZG91YmxlKX0i
CiAgICAgICAgIHdoZW4gImZkMnAiCi0gICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVy
YW5kc1swXS54ODZPcGVyYW5kcyg6ZG91YmxlKX0sICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6
cHRyKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5kc1swXS54ODZPcGVy
YW5kKDpkb3VibGUpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIKICAgICAgICAg
d2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImpvICN7b3BlcmFuZHNbMF0uYXNtTGFi
ZWx9IgogICAgICAgICB3aGVuICJicyIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130966</attachid>
            <date>2012-03-08 20:56:23 -0800</date>
            <delta_ts>2012-03-09 16:25:37 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_9.diff</filename>
            <type>text/plain</type>
            <size>117692</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEyLTAyLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV29yayBpbiBwcm9ncmVzcy4KKworICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9m
ZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisKIDIwMTItMDMtMDYgIE1hcmsgSGFobmVuYmVy
ZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBHQ0FjdGl2aXR5Q2FsbGJhY2sg
dGltZXIgc2hvdWxkIHZhcnkgd2l0aCB0aGUgbGVuZ3RoIG9mIHRoZSBwcmV2aW91cyBHQwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5nIGNvcHkpCkBA
IC03MCwyOCArNzAsNiBAQAogIyBCZWxvdyB3ZSBoYXZlIGEgYnVuY2ggb2YgY29uc3RhbnQgZGVj
bGFyYXRpb25zLiBFYWNoIGNvbnN0YW50IG11c3QgaGF2ZQogIyBhIGNvcnJlc3BvbmRpbmcgQVNT
RVJUKCkgaW4gTExJbnREYXRhLmNwcC4KIAotIyBUaGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRj
aCBpbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaC4KLWNvbnN0IENhbGxGcmFtZUhlYWRlclNpemUg
PSA0OAotY29uc3QgQXJndW1lbnRDb3VudCA9IC00OAotY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAK
LWNvbnN0IENhbGxlZSA9IC0zMgotY29uc3QgU2NvcGVDaGFpbiA9IC0yNAotY29uc3QgUmV0dXJu
UEMgPSAtMTYKLWNvbnN0IENvZGVCbG9jayA9IC04Ci0KLWNvbnN0IFRoaXNBcmd1bWVudE9mZnNl
dCA9IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0gOAotCi0jIERlY2xhcmUgc29tZSBhbGlhc2VzIGZv
ciB0aGUgcmVnaXN0ZXJzIHdlIHdpbGwgdXNlLgotY29uc3QgUEMgPSB0NAotCi0jIE9mZnNldHMg
bmVlZGVkIGZvciByZWFzb25pbmcgYWJvdXQgdmFsdWUgcmVwcmVzZW50YXRpb24uCi1pZiBCSUdf
RU5ESUFOCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gMAotICAgIGNvbnN0IFBheWxvYWRPZmZzZXQg
PSA0Ci1lbHNlCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gNAotICAgIGNvbnN0IFBheWxvYWRPZmZz
ZXQgPSAwCi1lbmQKIAogIyBWYWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMuCiBjb25zdCBJ
bnQzMlRhZyA9IC0xCkBAIC0xMDMsNzEgKzgxLDggQEAgY29uc3QgRW1wdHlWYWx1ZVRhZyA9IC02
CiBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFnID0gRGVsZXRlZFZh
bHVlVGFnCiAKLSMgVHlwZSBjb25zdGFudHMuCi1jb25zdCBTdHJpbmdUeXBlID0gNQotY29uc3Qg
T2JqZWN0VHlwZSA9IDEzCi0KLSMgVHlwZSBmbGFncyBjb25zdGFudHMuCi1jb25zdCBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkID0gMQotY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMgotY29u
c3QgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDgKLQotIyBIZWFwIGFsbG9jYXRpb24g
Y29uc3RhbnRzLgotY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMwotCi0jIEJ5
dGVjb2RlIG9wZXJhbmQgY29uc3RhbnRzLgotY29uc3QgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5k
ZXggPSAweDQwMDAwMDAwCi0KLSMgQ29kZSB0eXBlIGNvbnN0YW50cy4KLWNvbnN0IEdsb2JhbENv
ZGUgPSAwCi1jb25zdCBFdmFsQ29kZSA9IDEKLWNvbnN0IEZ1bmN0aW9uQ29kZSA9IDIKLQotIyBU
aGUgaW50ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1lbnQgY291bnQu
Ci1jb25zdCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNldAotCi0jIFRo
aXMgbXVzdCBtYXRjaCB3dGYvVmVjdG9yLmguCi1jb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAot
Y29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAotCi0jIFN0cmluZyBmbGFncy4KLWNvbnN0IEhh
c2hGbGFnczhCaXRCdWZmZXIgPSA2NAogCiAjIFV0aWxpdGllcwotbWFjcm8gY3Jhc2goKQotICAg
IHN0b3JlaSAwLCAweGJiYWRiZWVmW10KLSAgICBtb3ZlIDAsIHQwCi0gICAgY2FsbCB0MAotZW5k
Ci0KLW1hY3JvIGFzc2VydChhc3NlcnRpb24pCi0gICAgaWYgQVNTRVJUX0VOQUJMRUQKLSAgICAg
ICAgYXNzZXJ0aW9uKC5vaykKLSAgICAgICAgY3Jhc2goKQotICAgIC5vazoKLSAgICBlbmQKLWVu
ZAotCi1tYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdp
c3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVy
Ci0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCi0gICAgZWxz
ZQotICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KLW1hY3JvIHJlc3RvcmVSZXR1cm5BZGRy
ZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQotICAgIGlmIEFSTXY3Ci0gICAgICAgIG1v
dmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHB1c2ggc291cmNl
UmVnaXN0ZXIKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi1lbmQKLQogbWFjcm8g
ZGlzcGF0Y2goYWR2YW5jZSkKICAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQwogICAgIGptcCBbUENd
CkBAIC0yMjAsOCArMTM1LDggQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBh
cmczLAogICAgIGNhbGwgZnVuY3Rpb24KIGVuZAogCi1tYWNybyBjYWxsU2xvd1BhdGgoc2xvd19w
YXRoKQotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpCittYWNybyBjYWxsU2xvd1BhdGgo
c2xvd1BhdGgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQogICAgIG1vdmUgdDAsIFBD
CiAgICAgbW92ZSB0MSwgY2ZyCiBlbmQKQEAgLTI0NSw0MCArMTYwLDE1IEBAIG1hY3JvIHRyYWNl
VmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQogICAgIG1vdmUgdDEsIGNmcgogZW5kCiAKLW1hY3Jv
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAgICAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3RyYWNlKQotICAgIGVuZAotZW5kCi0KLSMgQ2FsbCBhIHNsb3dfcGF0
aCBmb3IgY2FsbCBvcGNvZGVzLgotbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93
X3BhdGgsIGFjdGlvbikKKyMgQ2FsbCBhIHNsb3dQYXRoIGZvciBjYWxsIG9wY29kZXMuCittYWNy
byBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dQYXRoLCBhY3Rpb24pCiAgICAgYWRkcCBh
ZHZhbmNlICogNCwgUEMsIHQwCiAgICAgc3RvcmVwIHQwLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKQorICAgIGNDYWxsMihzbG93
UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQxLCBjZnIKICAgICBhY3Rpb24odDApCiBlbmQKIAot
bWFjcm8gc2xvd1BhdGhGb3JDYWxsKGFkdmFuY2UsIHNsb3dfcGF0aCkKLSAgICBjYWxsQ2FsbFNs
b3dQYXRoKAotICAgICAgICBhZHZhbmNlLAotICAgICAgICBzbG93X3BhdGgsCi0gICAgICAgIG1h
Y3JvIChjYWxsZWUpCi0gICAgICAgICAgICBjYWxsIGNhbGxlZQotICAgICAgICAgICAgZGlzcGF0
Y2hBZnRlckNhbGwoKQotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gY2hlY2tTd2l0Y2hUb0pJ
VChpbmNyZW1lbnQsIGFjdGlvbikKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDAKLSAgICAgICAgYmFkZGlzIGluY3JlbWVudCwgQ29kZUJsb2NrOjpt
X2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDBdLCAu
Y29udGludWUKLSAgICAgICAgYWN0aW9uKCkKLSAgICAuY29udGludWU6Ci0gICAgZW5kCi1lbmQK
LQogbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgIGNoZWNrU3dpdGNoVG9KSVQo
CiAgICAgICAgIDEsCkBAIC0yOTMsMTggKzE4Myw2IEBAIG1hY3JvIGNoZWNrU3dpdGNoVG9KSVRG
b3JMb29wKCkKICAgICAgICAgZW5kKQogZW5kCiAKLW1hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JF
cGlsb2d1ZSgpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVCgKLSAgICAgICAgMTAsCi0gICAgICAgIG1h
Y3JvICgpCi0gICAgICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlcGxhY2UpCi0gICAgICAg
IGVuZCkKLWVuZAotCi1tYWNybyBhc3NlcnROb3RDb25zdGFudChpbmRleCkKLSAgICBhc3NlcnQo
bWFjcm8gKG9rKSBiaWx0IGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgb2sgZW5k
KQotZW5kCi0KICMgSW5kZXgsIHRhZywgYW5kIHBheWxvYWQgbXVzdCBiZSBkaWZmZXJlbnQgcmVn
aXN0ZXJzLiBJbmRleCBpcyBub3QKICMgY2hhbmdlZC4KIG1hY3JvIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoaW5kZXgsIHRhZywgcGF5bG9hZCkKQEAgLTM4NiwxMDkgKzI2NCw4IEBAIG1hY3JvIHZh
bHVlUHJvZmlsZSh0YWcsIHBheWxvYWQsIHByb2ZpbGUKIGVuZAogCiAKLSMgSW5kaWNhdGUgdGhl
IGJlZ2lubmluZyBvZiBMTEludC4KLV9sbGludF9iZWdpbjoKLSAgICBjcmFzaCgpCi0KLQogIyBF
bnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlcgogCi1tYWNybyBmdW5jdGlvbkZvckNhbGxD
b2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRh
cmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJl
Z2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1f
Y29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQKLQot
bWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIp
Ci0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5j
dGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBs
b2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3RhcmdldFJl
Z2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBub3RGdW5jdGlvbkNvZGVCbG9j
a0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFyZ2V0
UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdp
c3RlcikKLSAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCi1lbmQKLQot
bWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0gICAgIyBO
b3RoaW5nIHRvIGRvIQotZW5kCi0KLSMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBl
eGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgotIyBpbiB0
MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCi1tYWNybyBwcm9sb2d1ZShj
b2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1Bh
dGgpCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQotICAgIAotICAgICMg
U2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgotICAgIHN0
b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQotICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCi0gICAgICAg
IGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQotICAgIGVuZAotICAgIGNvZGVCbG9ja0dldHRl
cih0MSkKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjpt
X2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFdLCAu
Y29udGludWUKLSAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQotICAgICAgICBt
b3ZlIHQxLCBjZnIKLSAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKLSAgICAgICAgbG9hZHAgUmV0
dXJuUENbY2ZyXSwgdDIKLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4o
dDIpCi0gICAgICAgIGptcCB0MAotICAgIC5yZWNvdmVyOgotICAgICAgICBjb2RlQmxvY2tHZXR0
ZXIodDEpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotICAgIGNvZGVCbG9ja1NldHRlcih0MSkK
LSAgICAKLSAgICAjIFNldCB1cCB0aGUgUEMuCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3Ry
dWN0aW9uc1t0MV0sIFBDCi1lbmQKLQotIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQx
LCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLSMgTXVzdCBjYWxsIGRp
c3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KLW1hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRp
b24ocHJvZmlsZUFyZ1NraXApCi0gICAgaWYgVkFMVUVfUFJPRklMRVIKLSAgICAgICAgIyBQcm9m
aWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0
byBkbyB0aGlzLiBUaGlzCi0gICAgICAgICMgY29kZSBpcyBwcmV0dHkgaG9ycmVuZG91cyBiZWNh
dXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5nIGJldHdlZW4KLSAgICAgICAgIyBhcmd1
bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBzaW1wbGUgbG9v
cC1kb3duLXRvLXplcm8KLSAgICAgICAgIyBsb29wLCBhbmQgdGhlIGRlc2lyZSB0byB1c2Ugb25s
eSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2VydmUgdGhlIFBDIGFuZAotICAgICAgICAj
IHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJl
d3JpdHRlbiBpbiBhIG1vcmUKLSAgICAgICAgIyBvcHRpbWFsIHdheSBmb3IgYXJjaGl0ZWN0dXJl
cyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJsZQotICAgICAgICAj
IGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnByZXRlci4KLSAgICAgICAgbG9hZGkgQ29k
ZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAotICAgICAgICBhZGRpIC1wcm9maWxlQXJn
U2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0aGUgcGVlcGhvbGUK
LSAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVxIHQwLCAwLCBvayBlbmQpCi0gICAgICAg
IGJ0aXogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCi0gICAgICAgIGxvYWRwIENvZGVCbG9jazo6
bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDFdLCB0MwotICAg
ICAgICBtdWxpIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFhaGhoaCEgTmVlZCBz
dHJlbmd0aCByZWR1Y3Rpb24hCi0gICAgICAgIG5lZ2kgdDAKLSAgICAgICAgbHNoaWZ0aSAzLCB0
MAotICAgICAgICBhZGRwIHQyLCB0MwotICAgIC5hcmd1bWVudFByb2ZpbGVMb29wOgotICAgICAg
ICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1Nr
aXAgKiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQz
Ci0gICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxl
ICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBUYWdPZmZzZXRbdDNdCi0gICAgICAgIGxvYWRp
IFRoaXNBcmd1bWVudE9mZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAg
KiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6
ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgUGF5bG9hZE9mZnNl
dFt0M10KLSAgICAgICAgYmFkZGlueiA4LCB0MCwgLmFyZ3VtZW50UHJvZmlsZUxvb3AKLSAgICAu
YXJndW1lbnRQcm9maWxlRG9uZToKLSAgICBlbmQKLSAgICAgICAgCi0gICAgIyBDaGVjayBzdGFj
ayBoZWlnaHQuCi0gICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lzdGVyc1t0MV0s
IHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDFdLCB0MgotICAgIGxvYWRw
IEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0MiAgICMgRklYTUU6IENhbiBnZXQgdG8g
dGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFja0ZyYW1lCi0gICAgbHNoaWZ0aSAzLCB0
MAotICAgIGFkZHAgdDAsIGNmciwgdDAKLSAgICBicGFlcSBJbnRlcnByZXRlcjo6bV9yZWdpc3Rl
ckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwgdDAsIC5zdGFja0hlaWdodE9LCi0KLSAg
ICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBzbG93X3BhdGgu
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdpc3Rlcl9maWxlX2NoZWNrKQotLnN0YWNrSGVp
Z2h0T0s6Ci1lbmQKLQogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBp
cyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVj
ayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1l
bnRDb3VudFtjZnJdLCB0MApAQCAtNTA2LDM4ICsyODMsNiBAQCBtYWNybyBmdW5jdGlvbkFyaXR5
Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAKLV9sbGludF9w
cm9ncmFtX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVy
LCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xsaW50X2V2YWxfcHJvbG9ndWU6
Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29k
ZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCi0g
ICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWU6Ci0g
ICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVC
bG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQotLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luOgot
ICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMCkKLSAgICBkaXNwYXRjaCgwKQotICAgIAotCi1f
bGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZToKLSAgICBwcm9sb2d1ZShmdW5j
dGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIs
IF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCwgX2xsaW50X3RyYWNlX3By
b2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCi0uZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdp
bjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDEpCi0gICAgZGlzcGF0Y2goMCkKLSAgICAK
LQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1
bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9s
bGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNl
X2FyaXR5Q2hlY2tfZm9yX2NhbGwpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZv
ckNhbGxCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCi0KLQotX2xsaW50
X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2s6Ci0gICAgcHJvbG9ndWUoZnVuY3Rp
b25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBf
bGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywgX2xsaW50
X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NvbnN0cnVjdCkKLSAgICBmdW5jdGlvbkFyaXR5Q2hlY2so
LmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0X2Fy
aXR5Q2hlY2spCiAKICMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCiAKQEAgLTU4MywzOSAr
MzI4LDYgQEAgX2xsaW50X29wX2NyZWF0ZV9hcmd1bWVudHM6CiAgICAgZGlzcGF0Y2goMikKIAog
Ci1tYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5mb09m
ZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2UpCi0g
ICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKLSAgICAgICAgam1wIHNsb3dDYXNlCi0gICAgZWxz
ZQotICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0KLSAgICAgICAgICAgIEpTR2xv
YmFsRGF0YTo6aGVhcCArCi0gICAgICAgICAgICBIZWFwOjptX29iamVjdFNwYWNlICsKLSAgICAg
ICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKLSAgICAgICAgICAgIE1hcmtlZFNw
YWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKwotICAgICAgICAgICAgc2l6ZUNsYXNz
SW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCi0gICAgICAgIAotICAgICAgICAjIEZJWE1F
OiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9hZCBmcm9tIHRoZSBzdGFjay4K
LSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gxCi0gICAgICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRjaDEKLSAgICAgICAgCi0gICAg
ICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LiAgICAKLSAgICAgICAgbG9h
ZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxs
W3NjcmF0Y2gxXSwgcmVzdWx0Ci0gICAgICAgIGJ0cHogcmVzdWx0LCBzbG93Q2FzZQotICAgICAg
ICAKLSAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuCi0gICAg
ICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIG9m
ZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3Jh
dGNoMV0KLSAgICAKLSAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmplY3QuCi0gICAgICAgIGxv
YWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCi0gICAgICAgIHN0b3JlcCBz
Y3JhdGNoMiwgW3Jlc3VsdF0KLSAgICAgICAgc3RvcmVwIHN0cnVjdHVyZSwgSlNDZWxsOjptX3N0
cnVjdHVyZVtyZXN1bHRdCi0gICAgICAgIHN0b3JlcCAwLCBKU09iamVjdDo6bV9pbmhlcml0b3JJ
RFtyZXN1bHRdCi0gICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0Y2gx
Ci0gICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Jl
c3VsdF0KLSAgICBlbmQKLWVuZAotCiBfbGxpbnRfb3BfY3JlYXRlX3RoaXM6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGxvYWRpIDhbUENdLCB0MApAQCAtNjc2LDI0ICszODgsNiBAQCBfbGxp
bnRfb3BfbmV3X29iamVjdDoKICAgICBkaXNwYXRjaCgyKQogCiAKLV9sbGludF9vcF9uZXdfYXJy
YXk6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25ld19hcnJheSkKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9uZXdfYXJyYXlf
YnVmZmVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29w
X25ld19yZWdleHA6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX25ld19yZWdleHApCi0gICAgZGlzcGF0Y2goMykKLQotCiBfbGxpbnRfb3Bf
bW92OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDEKQEAgLTgwMiw3
ICs0OTYsNyBAQCBfbGxpbnRfb3BfbmVxX251bGw6CiAgICAgZGlzcGF0Y2goMykKIAogCi1tYWNy
byBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gc3RyaWN0RXEo
ZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBs
b2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MywgdDEpCkBA
IC04MjIsNyArNTE2LDcgQEAgbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3df
cAogICAgIGRpc3BhdGNoKDQpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgp
CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKDQpCiBlbmQKIApAQCAt
ODM2LDMwICs1MzAsNiBAQCBfbGxpbnRfb3BfbnN0cmljdGVxOgogICAgIHN0cmljdEVxKG1hY3Jv
IChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwgX2xs
aW50X3Nsb3dfcGF0aF9uc3RyaWN0ZXEpCiAKIAotX2xsaW50X29wX2xlc3M6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3MpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbGVzc2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzZXEpCi0gICAgZGlzcGF0Y2go
NCkKLQotCi1fbGxpbnRfb3BfZ3JlYXRlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcikKLSAgICBkaXNwYXRjaCg0KQotCi0K
LV9sbGludF9vcF9ncmVhdGVyZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXJlcSkKLSAgICBkaXNwYXRjaCg0KQotCi0KIF9s
bGludF9vcF9wcmVfaW5jOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA0W1BDXSwg
dDAKQEAgLTk2OCw3ICs2MzgsNyBAQCBfbGxpbnRfb3BfbmVnYXRlOgogICAgIGRpc3BhdGNoKDMp
CiAKIAotbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUs
IGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShp
bnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAg
bG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwMDYsMTggKzY3NiwxOCBAQCBtYWNybyBiaW5hcnlP
cEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgZGlzcGF0Y2goNSkKIAogLnNsb3c6Ci0g
ICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAg
ICAgZGlzcGF0Y2goNSkKIGVuZAogCi1tYWNybyBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBk
b3VibGVPcGVyYXRpb24sIHNsb3dfcGF0aCkKK21hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRp
b24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgK
ICAgICAgICAgbWFjcm8gKGludDMyVGFnLCBsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCiAgICAg
ICAgICAgICBpbnRlZ2VyT3BlcmF0aW9uKGxlZnQsIHJpZ2h0LCBzbG93KQogICAgICAgICAgICAg
c3RvcmVpIGludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCBpbmRleCwgOF0KICAgICAgICAgICAgIHN0
b3JlaSByaWdodCwgUGF5bG9hZE9mZnNldFtjZnIsIGluZGV4LCA4XQogICAgICAgICBlbmQsCi0g
ICAgICAgIGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorICAgICAgICBkb3VibGVPcGVyYXRp
b24sIHNsb3dQYXRoKQogZW5kCiAKIF9sbGludF9vcF9hZGQ6CkBAIC0xMDczLDEzICs3NDMsNyBA
QCBfbGxpbnRfb3BfZGl2OgogICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikKIAogCi1fbGxp
bnRfb3BfbW9kOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9tb2QpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1tYWNybyBiaXRPcChvcGVyYXRp
b24sIHNsb3dfcGF0aCwgYWR2YW5jZSkKK21hY3JvIGJpdE9wKG9wZXJhdGlvbiwgc2xvd1BhdGgs
IGFkdmFuY2UpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwOTMsNyArNzU3LDcgQEAg
bWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93X3BhdGgsIGFkdmFuYwogICAgIGRpc3BhdGNoKGFk
dmFuY2UpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKGFkdmFuY2UpCiBlbmQKIApAQCAtMTE5OCw2
NiArODYyLDYgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgZGlzcGF0Y2goNSkKIAogCi1f
bGxpbnRfb3BfdHlwZW9mOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF90eXBlb2YpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3Bf
aXNfdW5kZWZpbmVkOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9pc191bmRlZmluZWQpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRf
b3BfaXNfYm9vbGVhbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfaXNfYm9vbGVhbikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9v
cF9pc19udW1iZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX2lzX251bWJlcikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9p
c19zdHJpbmc6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2lzX3N0cmluZykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19v
YmplY3Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2lzX29iamVjdCkKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19mdW5j
dGlvbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaXNfZnVuY3Rpb24pCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaW46Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lu
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3Jlc29sdmU6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmUpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcmVzb2x2ZV9za2lwOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3NraXApCi0g
ICAgZGlzcGF0Y2goNSkKLQotCiBtYWNybyByZXNvbHZlR2xvYmFsKHNpemUsIHNsb3cpCiAgICAg
IyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93czoKICAgICAjIDRbUENdICAgRGVzdGluYXRpb24gZm9y
IHRoZSBsb2FkLgpAQCAtMTQwOCwzMCArMTAxMiw2IEBAIF9sbGludF9vcF9wdXRfZ2xvYmFsX3Zh
cjoKICAgICBkaXNwYXRjaCgzKQogCiAKLV9sbGludF9vcF9yZXNvbHZlX2Jhc2U6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVf
YmFzZSkKLSAgICBkaXNwYXRjaCg1KQotCi0KLV9sbGludF9vcF9lbnN1cmVfcHJvcGVydHlfZXhp
c3RzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50
X29wX3Jlc29sdmVfd2l0aF9iYXNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfYmFzZSkKLSAgICBkaXNwYXRjaCg1
KQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3dpdGhfdGhpczoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRoX3RoaXMpCi0g
ICAgZGlzcGF0Y2goNSkKLQotCiBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIHRyYWNlRXhlY3V0
aW9uKCkKICAgICAjIFdlIG9ubHkgZG8gbW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcgZm9y
IG5vdywgYW5kIHdlIGRvIG5vdCBtb2RpZnkgdGhlCkBAIC0xNTM5LDEyICsxMTE5LDYgQEAgX2xs
aW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKICAgICAgICAgZW5kKQogCiAKLV9s
bGludF9vcF9kZWxfYnlfaWQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKLSAgICBkaXNwYXRjaCg0KQotCi0KIF9sbGlu
dF9vcF9nZXRfYnlfdmFsOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDEKQEAgLTE2NTYsMjQgKzEyMzAsNiBAQCBfbGxpbnRfb3BfcHV0X2J5X3ZhbDoK
ICAgICBkaXNwYXRjaCg0KQogCiAKLV9sbGludF9vcF9kZWxfYnlfdmFsOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxfYnlfdmFsKQot
ICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9ieV9pbmRleDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X2luZGV4
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9nZXR0ZXJfc2V0dGVyOgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRf
Z2V0dGVyX3NldHRlcikKLSAgICBkaXNwYXRjaCg1KQotCi0KIF9sbGludF9vcF9sb29wOgogICAg
IG5vcAogX2xsaW50X29wX2ptcDoKQEAgLTE2ODEsMTIgKzEyMzcsNiBAQCBfbGxpbnRfb3Bfam1w
OgogICAgIGRpc3BhdGNoQnJhbmNoKDRbUENdKQogCiAKLV9sbGludF9vcF9qbXBfc2NvcGVzOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9q
bXBfc2NvcGVzKQotICAgIGRpc3BhdGNoKDApCi0KLQogbWFjcm8ganVtcFRydWVPckZhbHNlKGNv
bmRpdGlvbk9wLCBzbG93KQogICAgIGxvYWRpIDRbUENdLCB0MQogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVQYXlsb2FkKHQxLCBCb29sZWFuVGFnLCB0MCwgLnNsb3cpCkBAIC0xNzAxLDI2ICsx
MjUxLDEwIEBAIG1hY3JvIGp1bXBUcnVlT3JGYWxzZShjb25kaXRpb25PcCwgc2xvdykKICAgICBk
aXNwYXRjaCgwKQogZW5kCiAKLV9sbGludF9vcF9sb29wX2lmX3RydWU6Ci0gICAgbm9wCi1fbGxp
bnRfb3BfanRydWU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGp1bXBUcnVlT3JGYWxzZSgK
LSAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0aW56IHZhbHVlLCB0YXJnZXQgZW5kLAot
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2p0cnVlKQotCi0KLV9sbGludF9vcF9sb29wX2lmX2Zh
bHNlOgotICAgIG5vcAotX2xsaW50X29wX2pmYWxzZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAganVtcFRydWVPckZhbHNlKAotICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRpeiB2
YWx1ZSwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZmFsc2UpCi0KIAog
bWFjcm8gZXF1YWxOdWxsKGNlbGxIYW5kbGVyLCBpbW1lZGlhdGVIYW5kbGVyKQogICAgIGxvYWRp
IDRbUENdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQogICAgIGxvYWRpIFRhZ09mZnNl
dFtjZnIsIHQwLCA4XSwgdDEKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0
MAogICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAuaW1tZWRpYXRlCkBAIC0xNzYzLDcgKzEyOTcsNyBA
QCBfbGxpbnRfb3Bfam5lcV9wdHI6CiAgICAgZGlzcGF0Y2goNCkKIAogCi1tYWNybyBjb21wYXJl
KGludGVnZXJDb21wYXJlLCBkb3VibGVDb21wYXJlLCBzbG93X3BhdGgpCittYWNybyBjb21wYXJl
KGludGVnZXJDb21wYXJlLCBkb3VibGVDb21wYXJlLCBzbG93UGF0aCkKICAgICBsb2FkaSA0W1BD
XSwgdDIKICAgICBsb2FkaSA4W1BDXSwgdDMKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQy
LCB0MCwgdDEpCkBAIC0xNzk3LDg3ICsxMzMxLDEwIEBAIG1hY3JvIGNvbXBhcmUoaW50ZWdlckNv
bXBhcmUsIGRvdWJsZUNvbXAKICAgICBkaXNwYXRjaEJyYW5jaCgxMltQQ10pCiAKIC5zbG93Ogot
ICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQog
ICAgIGRpc3BhdGNoKDApCiBlbmQKIAotX2xsaW50X29wX2xvb3BfaWZfbGVzczoKLSAgICBub3AK
LV9sbGludF9vcF9qbGVzczoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHQgbGVmdCwgcmlnaHQsIHRhcmdl
dCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0IGxlZnQsIHJp
Z2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2psZXNzKQotCi0KLV9s
bGludF9vcF9qbmxlc3M6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAg
ICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdl
dCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0ZXF1biBsZWZ0
LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmxlc3MpCi0K
LQotX2xsaW50X29wX2xvb3BfaWZfZ3JlYXRlcjoKLSAgICBub3AKLV9sbGludF9vcF9qZ3JlYXRl
cjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAg
IG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5k
LAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyKQotCi0KLV9sbGludF9vcF9qbmdy
ZWF0ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3Jv
IChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXF1biBsZWZ0LCByaWdodCwg
dGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXIpCi0KLQotX2xs
aW50X29wX2xvb3BfaWZfbGVzc2VxOgotICAgIG5vcAotX2xsaW50X29wX2psZXNzZXE6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3Jv
IChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIF9sbGludF9zbG93X3BhdGhfamxlc3NlcSkKLQotCi1fbGxpbnRfb3Bfam5sZXNzZXE6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0
LCByaWdodCwgdGFyZ2V0KSBiaWd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndHVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5k
LAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzc2VxKQotCi0KLV9sbGludF9vcF9sb29w
X2lmX2dyZWF0ZXJlcToKLSAgICBub3AKLV9sbGludF9vcF9qZ3JlYXRlcmVxOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRh
cmdldCkgYmlndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmRndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyZXEpCi0KLQotX2xsaW50X29wX2puZ3JlYXRlcmVx
OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHR1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXJlcSkKLQotCi1fbGxpbnRfb3Bf
bG9vcF9oaW50OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjaGVja1N3aXRjaFRvSklURm9y
TG9vcCgpCi0gICAgZGlzcGF0Y2goMSkKLQogCiBfbGxpbnRfb3Bfc3dpdGNoX2ltbToKICAgICB0
cmFjZUV4ZWN1dGlvbigpCkBAIC0xOTMzLDE5ICsxMzkwLDEzIEBAIF9sbGludF9vcF9zd2l0Y2hf
Y2hhcjoKICAgICBiaWFlcSB0MCwgU2ltcGxlSnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVj
dG9yU2l6ZU9mZnNldFt0Ml0sIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAogICAgIGxvYWRwIFNp
bXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQy
CiAgICAgbG9hZGkgW3QyLCB0MCwgNF0sIHQxCi0gICAgYnRpeiB0MSwgLm9wU3dpdGNoSW1tRmFs
bFRocm91Z2gKKyAgICBidGl6IHQxLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKICAgICBkaXNw
YXRjaEJyYW5jaFdpdGhPZmZzZXQodDEpCiAKIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaDoKICAg
ICBkaXNwYXRjaEJyYW5jaCg4W1BDXSkKIAogCi1fbGxpbnRfb3Bfc3dpdGNoX3N0cmluZzoKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3dp
dGNoX3N0cmluZykKLSAgICBkaXNwYXRjaCgwKQotCi0KIF9sbGludF9vcF9uZXdfZnVuYzoKICAg
ICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgYnRpeiAxMltQQ10sIC5vcE5ld0Z1bmNVbmNoZWNrZWQK
QEAgLTE5NTcsMTMgKzE0MDgsNyBAQCBfbGxpbnRfb3BfbmV3X2Z1bmM6CiAgICAgZGlzcGF0Y2go
NCkKIAogCi1fbGxpbnRfb3BfbmV3X2Z1bmNfZXhwOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfZnVuY19leHApCi0gICAgZGlzcGF0
Y2goMykKLQotCi1tYWNybyBkb0NhbGwoc2xvd19wYXRoKQorbWFjcm8gZG9DYWxsKHNsb3dQYXRo
KQogICAgIGxvYWRpIDRbUENdLCB0MAogICAgIGxvYWRpIDE2W1BDXSwgdDEKICAgICBsb2FkcCBM
TEludENhbGxMaW5rSW5mbzo6Y2FsbGVlW3QxXSwgdDIKQEAgLTE5ODcsNjYgKzE0MzIsOSBAQCBt
YWNybyBkb0NhbGwoc2xvd19wYXRoKQogICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKIAogLm9wQ2Fs
bFNsb3c6Ci0gICAgc2xvd1BhdGhGb3JDYWxsKDYsIHNsb3dfcGF0aCkKKyAgICBzbG93UGF0aEZv
ckNhbGwoNiwgc2xvd1BhdGgpCiBlbmQKIAotX2xsaW50X29wX2NhbGw6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NhbGwpCi0KLQotX2xsaW50X29w
X2NvbnN0cnVjdDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgZG9DYWxsKF9sbGludF9zbG93
X3BhdGhfY29uc3RydWN0KQotCi0KLV9sbGludF9vcF9jYWxsX3ZhcmFyZ3M6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBfbGxpbnRfc2xvd19wYXRoX2NhbGxf
dmFyYXJncykKLQotCi1fbGxpbnRfb3BfY2FsbF9ldmFsOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICAKLSAgICAjIEV2YWwgaXMgZXhlY3V0ZWQgaW4gb25lIG9mIHR3byBtb2RlczoKLSAgICAj
Ci0gICAgIyAxKSBXZSBmaW5kIHRoYXQgd2UncmUgcmVhbGx5IGludm9raW5nIGV2YWwoKSBpbiB3
aGljaCBjYXNlIHRoZQotICAgICMgICAgZXhlY3V0aW9uIGlzIHBlcmZvbWVkIGVudGlyZWx5IGlu
c2lkZSB0aGUgc2xvd19wYXRoLCBhbmQgaXQKLSAgICAjICAgIHJldHVybnMgdGhlIFBDIG9mIGEg
ZnVuY3Rpb24gdGhhdCBqdXN0IHJldHVybnMgdGhlIHJldHVybiB2YWx1ZQotICAgICMgICAgdGhh
dCB0aGUgZXZhbCByZXR1cm5lZC4KLSAgICAjCi0gICAgIyAyKSBXZSBmaW5kIHRoYXQgd2UncmUg
aW52b2tpbmcgc29tZXRoaW5nIGNhbGxlZCBldmFsKCkgdGhhdCBpcyBub3QKLSAgICAjICAgIHRo
ZSByZWFsIGV2YWwuIFRoZW4gdGhlIHNsb3dfcGF0aCByZXR1cm5zIHRoZSBQQyBvZiB0aGUgdGhp
bmcgdG8KLSAgICAjICAgIGNhbGwsIGFuZCB3ZSBjYWxsIGl0LgotICAgICMKLSAgICAjIFRoaXMg
YWxsb3dzIHVzIHRvIGhhbmRsZSB0d28gY2FzZXMsIHdoaWNoIHdvdWxkIHJlcXVpcmUgYSB0b3Rh
bCBvZgotICAgICMgdXAgdG8gZm91ciBwaWVjZXMgb2Ygc3RhdGUgdGhhdCBjYW5ub3QgYmUgZWFz
aWx5IHBhY2tlZCBpbnRvIHR3bwotICAgICMgcmVnaXN0ZXJzIChDIGZ1bmN0aW9ucyBjYW4gcmV0
dXJuIHVwIHRvIHR3byByZWdpc3RlcnMsIGVhc2lseSk6Ci0gICAgIwotICAgICMgLSBUaGUgY2Fs
bCBmcmFtZSByZWdpc3Rlci4gVGhpcyBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4gbW9kaWZpZWQK
LSAgICAjICAgYnkgdGhlIHNsb3dfcGF0aCwgYnV0IHRoZSBjb252ZW50aW9uIGlzIHRoYXQgaXQg
cmV0dXJucyBpdC4gSXQncyBub3QKLSAgICAjICAgdG90YWxseSBjbGVhciBpZiB0aGF0J3MgbmVj
ZXNzYXJ5LCBzaW5jZSB0aGUgY2ZyIGlzIGNhbGxlZSBzYXZlLgotICAgICMgICBCdXQgdGhhdCdz
IG91ciBzdHlsZSBpbiB0aGlzIGhlcmUgaW50ZXJwcmV0ZXIgc28gd2Ugc3RpY2sgd2l0aCBpdC4K
LSAgICAjCi0gICAgIyAtIEEgYml0IHRvIHNheSBpZiB0aGUgc2xvd19wYXRoIHN1Y2Nlc3NmdWxs
eSBleGVjdXRlZCB0aGUgZXZhbCBhbmQgaGFzCi0gICAgIyAgIHRoZSByZXR1cm4gdmFsdWUsIG9y
IGRpZCBub3QgZXhlY3V0ZSB0aGUgZXZhbCBidXQgaGFzIGEgUEMgZm9yIHVzCi0gICAgIyAgIHRv
IGNhbGwuCi0gICAgIwotICAgICMgLSBFaXRoZXI6Ci0gICAgIyAgIC0gVGhlIEpTIHJldHVybiB2
YWx1ZSAodHdvIHJlZ2lzdGVycyksIG9yCi0gICAgIwotICAgICMgICAtIFRoZSBQQyB0byBjYWxs
LgotICAgICMKLSAgICAjIEl0IHR1cm5zIG91dCB0byBiZSBlYXNpZXIgdG8ganVzdCBhbHdheXMg
aGF2ZSB0aGlzIHJldHVybiB0aGUgY2ZyCi0gICAgIyBhbmQgYSBQQyB0byBjYWxsLCBhbmQgdGhh
dCBQQyBtYXkgYmUgYSBkdW1teSB0aHVuayB0aGF0IGp1c3QKLSAgICAjIHJldHVybnMgdGhlIEpT
IHZhbHVlIHRoYXQgdGhlIGV2YWwgcmV0dXJuZWQuCi0gICAgCi0gICAgc2xvd1BhdGhGb3JDYWxs
KDQsIF9sbGludF9zbG93X3BhdGhfY2FsbF9ldmFsKQotCi0KLV9sbGludF9nZW5lcmljX3JldHVy
bl9wb2ludDoKLSAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCi0KIAogX2xsaW50X29wX3RlYXJfb2Zm
X2FjdGl2YXRpb246CiAgICAgdHJhY2VFeGVjdXRpb24oKQpAQCAtMjA3MCwxMyArMTQ1OCw2IEBA
IF9sbGludF9vcF90ZWFyX29mZl9hcmd1bWVudHM6CiAgICAgZGlzcGF0Y2goMikKIAogCi1tYWNy
byBkb1JldHVybigpCi0gICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICBsb2FkcCBDYWxs
ZXJGcmFtZVtjZnJdLCBjZnIKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0
MikKLSAgICByZXQKLWVuZAotCiBfbGxpbnRfb3BfcmV0OgogICAgIHRyYWNlRXhlY3V0aW9uKCkK
ICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQpAQCAtMjExMSwxOCArMTQ5Miw2IEBA
IF9sbGludF9vcF9yZXRfb2JqZWN0X29yX3RoaXM6CiAgICAgZG9SZXR1cm4oKQogCiAKLV9sbGlu
dF9vcF9tZXRob2RfY2hlY2s6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgICMgV2UgaWdub3Jl
IG1ldGhvZCBjaGVja3MgYW5kIHVzZSBub3JtYWwgZ2V0X2J5X2lkIG9wdGltaXphdGlvbnMuCi0g
ICAgZGlzcGF0Y2goMSkKLQotCi1fbGxpbnRfb3Bfc3RyY2F0OgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zdHJjYXQpCi0gICAgZGlzcGF0
Y2goNCkKLQotCiBfbGxpbnRfb3BfdG9fcHJpbWl0aXZlOgogICAgIHRyYWNlRXhlY3V0aW9uKCkK
ICAgICBsb2FkaSA4W1BDXSwgdDIKQEAgLTIxNDEsMTIgKzE1MTAsNiBAQCBfbGxpbnRfb3BfdG9f
cHJpbWl0aXZlOgogICAgIGRpc3BhdGNoKDMpCiAKIAotX2xsaW50X29wX2dldF9wbmFtZXM6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dl
dF9wbmFtZXMpCi0gICAgZGlzcGF0Y2goMCkgIyBUaGUgc2xvd19wYXRoIGVpdGhlciBhZHZhbmNl
cyB0aGUgUEMgb3IganVtcHMgdXMgdG8gc29tZXdoZXJlIGVsc2UuCi0KLQogX2xsaW50X29wX25l
eHRfcG5hbWU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDEyW1BDXSwgdDEKQEAg
LTIxODcsMjQgKzE1NTAsNiBAQCBfbGxpbnRfb3BfbmV4dF9wbmFtZToKICAgICBkaXNwYXRjaCgw
KQogCiAKLV9sbGludF9vcF9wdXNoX3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX3Njb3BlKQotICAgIGRpc3BhdGNoKDIp
Ci0KLQotX2xsaW50X29wX3BvcF9zY29wZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9wX3Njb3BlKQotICAgIGRpc3BhdGNoKDEpCi0K
LQotX2xsaW50X29wX3B1c2hfbmV3X3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX25ld19zY29wZSkKLSAgICBkaXNwYXRj
aCg0KQotCi0KIF9sbGludF9vcF9jYXRjaDoKICAgICAjIFRoaXMgaXMgd2hlcmUgd2UgZW5kIHVw
IGZyb20gdGhlIEpJVCdzIHRocm93IHRyYW1wb2xpbmUgKGJlY2F1c2UgdGhlCiAgICAgIyBtYWNo
aW5lIGNvZGUgcmV0dXJuIGFkZHJlc3Mgd2lsbCBiZSBzZXQgdG8gX2xsaW50X29wX2NhdGNoKSwg
YW5kIGZyb20KQEAgLTIyMjYsMTggKzE1NzEsNiBAQCBfbGxpbnRfb3BfY2F0Y2g6CiAgICAgZGlz
cGF0Y2goMikKIAogCi1fbGxpbnRfb3BfdGhyb3c6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Rocm93KQotICAgIGRpc3BhdGNoKDIpCi0K
LQotX2xsaW50X29wX3Rocm93X3JlZmVyZW5jZV9lcnJvcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3dfcmVmZXJlbmNlX2Vycm9y
KQotICAgIGRpc3BhdGNoKDIpCi0KLQogX2xsaW50X29wX2pzcjoKICAgICB0cmFjZUV4ZWN1dGlv
bigpCiAgICAgbG9hZGkgNFtQQ10sIHQwCkBAIC0yMjUzLDM0ICsxNTg2LDExIEBAIF9sbGludF9v
cF9zcmV0OgogICAgIGRpc3BhdGNoKDApCiAKIAotX2xsaW50X29wX2RlYnVnOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWJ1ZykKLSAg
ICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9wcm9maWxlX3dpbGxfY2FsbDoKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6ZW5hYmxlZFByb2ZpbGVyUmVm
ZXJlbmNlW3NwXSwgdDAKLSAgICBidHB6IFt0MF0sIC5vcFByb2ZpbGVXaWxsQ2FsbERvbmUKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wcm9maWxlX3dpbGxfY2FsbCkKLS5vcFBy
b2ZpbGVXaWxsQ2FsbERvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCi1fbGxpbnRfb3BfcHJvZmls
ZV9kaWRfY2FsbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZHAgSklUU3RhY2tGcmFt
ZTo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlW3NwXSwgdDAKLSAgICBidHB6IFt0MF0sIC5vcFBy
b2ZpbGVXaWxsQ2FsbERvbmUKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wcm9m
aWxlX2RpZF9jYWxsKQotLm9wUHJvZmlsZURpZENhbGxEb25lOgotICAgIGRpc3BhdGNoKDIpCi0K
LQogX2xsaW50X29wX2VuZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2hlY2tTd2l0Y2hU
b0pJVEZvckVwaWxvZ3VlKCkKICAgICBsb2FkaSA0W1BDXSwgdDAKKyAgICBhc3NlcnROb3RDb25z
dGFudCh0MCkKICAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0sIHQxCiAgICAgbG9hZGkg
UGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBkb1JldHVybigpCkBAIC0yMzQxLDc5
ICsxNjUxLDMgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZgogICAg
IGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5kCiAKLV9sbGlu
dF9uYXRpdmVfY2FsbF90cmFtcG9saW5lOgotICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5lKE5hdGl2
ZUV4ZWN1dGFibGU6Om1fZnVuY3Rpb24pCi0KLQotX2xsaW50X25hdGl2ZV9jb25zdHJ1Y3RfdHJh
bXBvbGluZToKLSAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRhYmxlOjptX2Nv
bnN0cnVjdG9yKQotCi0KLSMgTGFzdGx5LCBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4gbGluayBldmVu
IHRob3VnaCB3ZSBkb24ndCBzdXBwb3J0IGFsbCBvcGNvZGVzLgotIyBUaGVzZSBvcGNvZGVzIHNo
b3VsZCBuZXZlciBhcmlzZSB3aGVuIHVzaW5nIExMSW50IG9yIGVpdGhlciBKSVQuIFdlIGFzc2Vy
dAotIyBhcyBtdWNoLgotCi1tYWNybyBub3RTdXBwb3J0ZWQoKQotICAgIGlmIEFTU0VSVF9FTkFC
TEVECi0gICAgICAgIGNyYXNoKCkKLSAgICBlbHNlCi0gICAgICAgICMgV2Ugc2hvdWxkIHVzZSB3
aGF0ZXZlciB0aGUgc21hbGxlc3QgcG9zc2libGUgaW5zdHJ1Y3Rpb24gaXMsIGp1c3QgdG8KLSAg
ICAgICAgIyBlbnN1cmUgdGhhdCB0aGVyZSBpcyBhIGdhcCBiZXR3ZWVuIGluc3RydWN0aW9uIGxh
YmVscy4gSWYgbXVsdGlwbGUKLSAgICAgICAgIyBzbWFsbGVzdCBpbnN0cnVjdGlvbnMgZXhpc3Qs
IHdlIHNob3VsZCBwaWNrIHRoZSBvbmUgdGhhdCBpcyBtb3N0Ci0gICAgICAgICMgbGlrZWx5IHJl
c3VsdCBpbiBleGVjdXRpb24gYmVpbmcgaGFsdGVkLiBDdXJyZW50bHkgdGhhdCBpcyB0aGUgYnJl
YWsKLSAgICAgICAgIyBpbnN0cnVjdGlvbiBvbiBhbGwgYXJjaGl0ZWN0dXJlcyB3ZSdyZSBpbnRl
cmVzdGVkIGluLiAoQnJlYWsgaXMgaW50MwotICAgICAgICAjIG9uIEludGVsLCB3aGljaCBpcyAx
IGJ5dGUsIGFuZCBia3B0IG9uIEFSTXY3LCB3aGljaCBpcyAyIGJ5dGVzLikKLSAgICAgICAgYnJl
YWsKLSAgICBlbmQKLWVuZAotCi1fbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0aDoKLSAgICBub3RT
dXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2NoYWluOgotICAgIG5vdFN1cHBvcnRl
ZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX2NoYWluOgotICAgIG5vdFN1cHBvcnRl
ZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX3Byb3RvOgotICAgIG5vdFN1cHBvcnRl
ZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX3NlbGY6Ci0gICAgbm90U3VwcG9ydGVk
KCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9nZW5lcmljOgotICAgIG5vdFN1cHBvcnRlZCgpCi0K
LV9sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX2NoYWluOgotICAgIG5vdFN1cHBvcnRlZCgpCi0K
LV9sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX3Byb3RvOgotICAgIG5vdFN1cHBvcnRlZCgpCi0K
LV9sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX3NlbGY6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQot
X2xsaW50X29wX2dldF9ieV9pZF9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRf
b3BfZ2V0X2J5X2lkX3NlbGY6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9z
dHJpbmdfbGVuZ3RoOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRf
Z2VuZXJpYzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX3JlcGxh
Y2U6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9u
OgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLQotIyBJbmRpY2F0ZSB0aGUgZW5kIG9mIExMSW50Lgot
X2xsaW50X2VuZDoKLSAgICBjcmFzaCgpCi0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZpc2lvbiAxMDk5
NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsMTQ2NiBAQAogIyBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKIAotIyBOb3Qgc3VwcG9ydGVkIHlldCwgc28gZ2l2ZSB1cC4K
LWVycm9yCisjIFNvbWUgdmFsdWUgcmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgorY29uc3QgVGFn
Qml0VHlwZU90aGVyID0gMHgyCitjb25zdCBUYWdCaXRCb29sICAgICAgPSAweDQKK2NvbnN0IFRh
Z0JpdFVuZGVmaW5lZCA9IDB4OAorY29uc3QgVmFsdWVFbXB0eSAgICAgID0gMHgwCitjb25zdCBW
YWx1ZUZhbHNlICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sCitjb25zdCBWYWx1
ZVRydWUgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sIHwgMQorY29uc3QgVmFs
dWVVbmRlZmluZWQgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkCitjb25zdCBW
YWx1ZU51bGwgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIKKworIyBVdGlsaXRpZXMuCittYWNybyBk
aXNwYXRjaChhZHZhbmNlKQorICAgIGFkZGkgYWR2YW5jZSwgUEMKKyAgICBqbXAgW1BCLCBQQywg
OF0KK2VuZAorCittYWNybyBkaXNwYXRjaEFmdGVyQ2FsbCgpCisgICAgbG9hZGkgQXJndW1lbnRD
b3VudCArIFRhZ09mZnNldFtjZnJdLCBQQworICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgor
ICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbUEJdLCBQQgorICAgIGptcCBbUEIs
IFBDLCA4XQorZW5kCisKK21hY3JvIGNDYWxsMihmdW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICBt
b3ZlIGFyZzEsIHQwCisgICAgbW92ZSBhcmcyLCB0MQorICAgIGNhbGwgZnVuY3Rpb24KK2VuZAor
CisjIFRoaXMgYmFyZWx5IHdvcmtzLiBhcmczIGFuZCBhcmc0IHNob3VsZCBwcm9iYWJseSBiZSBp
bW1lZGlhdGVzLgorbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0
KQorICAgIG1vdmUgYXJnMSwgdDAKKyAgICBtb3ZlIGFyZzIsIHQxCisgICAgbW92ZSBhcmczLCB0
MgorICAgIG1vdmUgYXJnNCwgdDMKKyAgICBjYWxsIGZ1bmN0aW9uCitlbmQKKworbWFjcm8gcHJl
cGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGxlYXAgW1BCLCBQQywgOF0sIFBDCitlbmQKKworbWFj
cm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAgbW92ZSB0MCwgUEMKKyAgICBtb3ZlIHQx
LCBjZnIKKyAgICBzdWJwIFBCLCBQQworICAgIHVyc2hpZnRpIDMsIFBDCitlbmQKKworbWFjcm8g
Y2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBj
Q2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitl
bmQKKworbWFjcm8gdHJhY2VPcGVyYW5kKGZyb21XaGVyZSwgb3BlcmFuZCkKKyAgICBwcmVwYXJl
U3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGw0KF9sbGludF90cmFjZV9vcGVyYW5kLCBjZnIsIFBD
LCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQK
KworbWFjcm8gdHJhY2VWYWx1ZShmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcHJlcGFyZVN0YXRl
Rm9yQ0NhbGwoKQorICAgIGNDYWxsNChfbGxpbnRfdHJhY2VfdmFsdWUsIGNmciwgUEMsIGZyb21X
aGVyZSwgb3BlcmFuZCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKK2VuZAorCisjIENh
bGwgYSBzbG93IHBhdGggZm9yIGNhbGwgY2FsbCBvcGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93
UGF0aChhZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9uKQorICAgIGFkZGkgYWR2YW5jZSwgUEMsIHQw
CisgICAgc3RvcmVpIHQwLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICBwcmVw
YXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIG1v
dmUgdDEsIGNmcgorICAgIGFjdGlvbih0MCkKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklU
Rm9yTG9vcCgpCisgICAgY2hlY2tTd2l0Y2hUb0pJVCgKKyAgICAgICAgMSwKKyAgICAgICAgbWFj
cm8oKQorICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nm
cl0KKyAgICAgICAgICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICAgICAgICAgIGNDYWxs
MihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCisgICAgICAgICAgICBtb3ZlIHQxLCBjZnIKKyAg
ICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAgICAgICAgICBqbXAgdDAKKyAgICAgICAg
LnJlY292ZXI6CisgICAgICAgICAgICBsb2FkcCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nm
cl0sIFBDCisgICAgICAgIGVuZCkKK2VuZAorCisjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRp
ZmZlcmVudCByZWdpc3RlcnMuIEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCittYWNybyBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBicGd0ZXEgaW5kZXgsIEZpcnN0Q29u
c3RhbnRSZWdpc3RlckluZGV4LCAuY29uc3RhbnQKKyAgICBsb2FkcCBbY2ZyLCBpbmRleCwgOF0s
IHZhbHVlCisgICAgam1wIC5kb25lCisuY29uc3RhbnQ6CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHZhbHVlCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2NvbnN0YW50UmVnaXN0ZXJzICsgVmVj
dG9yQnVmZmVyT2Zmc2V0W3ZhbHVlXSwgdmFsdWUKKyAgICBzdWJwIEZpcnN0Q29uc3RhbnRSZWdp
c3RlckluZGV4LCBpbmRleAorICAgIGxvYWRwIFt2YWx1ZSwgaW5kZXgsIDhdLCB2YWx1ZQorLmRv
bmU6CitlbmQKKworbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKGluZGV4LCB2YWx1
ZSwgc2xvdykKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBi
cGIgdmFsdWUsIHRhZ1R5cGVOdW1iZXIsIHNsb3cKK2VuZAorCittYWNybyBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbChpbmRleCwgdmFsdWUsIHNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZShpbmRleCwgdmFsdWUpCisgICAgYnRwbnogdmFsdWUsIHRhZ01hc2ssIHNsb3cKK2VuZAor
CittYWNybyB3cml0ZUJhcnJpZXIodmFsdWUpCisgICAgIyBOb3RoaW5nIHRvIGRvLCBzaW5jZSB3
ZSBkb24ndCBoYXZlIGEgZ2VuZXJhdGlvbmFsIG9yIGluY3JlbWVudGFsIGNvbGxlY3Rvci4KK2Vu
ZAorCittYWNybyB2YWx1ZVByb2ZpbGUodmFsdWUsIHByb2ZpbGUpCisgICAgaWYgVkFMVUVfUFJP
RklMRVIKKyAgICAgICAgc3RvcmVwIHZhbHVlLCBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0c1twcm9m
aWxlXQorICAgIGVuZAorZW5kCisKKworIyBFbnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRl
ci4KKworIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHBy
b2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KK21hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFi
ZWwsIHNsb3dfcGF0aCkKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtj
ZnJdLCB0MAorICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRv
bmVMYWJlbAorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDIoc2xvd19wYXRo
LCBjZnIsIFBDKSAgICMgVGhpcyBzbG93X3BhdGggaGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9
IDAgPT4gbm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBi
dGl6IHQwLCAuY29udGludWUKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3Nw
XSwgdDEKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAK
KyAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0MV0KKy5jb250
aW51ZToKKyAgICAjIFJlbG9hZCBDb2RlQmxvY2sgYW5kIHJlc2V0IFBDLCBzaW5jZSB0aGUgc2xv
d19wYXRoIGNsb2JiZXJlZCB0aGVtLgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAg
IGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQgorICAgIG1vdmUgMCwgUEMK
KyAgICBqbXAgZG9uZUxhYmVsCitlbmQKKworCisjIEluc3RydWN0aW9uIGltcGxlbWVudGF0aW9u
cworCitfbGxpbnRfb3BfZW50ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1WYXJzW3QyXSwgdDIK
KyAgICBidGl6IHQyLCAub3BFbnRyeURvbmUKKyAgICBtb3ZlIFZhbHVlVW5kZWZpbmVkLCB0MAor
Lm9wRW50ZXJMb29wOgorICAgIHN1YmkgMSwgdDIKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4
XQorICAgIGJ0aW56IHQyLCAub3BFbnRlckxvb3AKKy5vcEVudGVyRG9uZToKKyAgICBkaXNwYXRj
aCgxKQorCisKK19sbGludF9vcF9jcmVhdGVfYWN0aXZhdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4XSwg
VmFsdWVFbXB0eSwgLm9wQ3JlYXRlQWN0aXZhdGlvbkRvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9jcmVhdGVfYWN0aXZhaXRvbikKKy5vcENyZWF0ZUFjdGl2YXRpb25Eb25l
OgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2luaXRfbGF6eV9yZWc6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBzdG9yZXAgVmFs
dWVFbXB0eSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfY3Jl
YXRlX2FyZ3VtZW50czoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMs
IDhdLCB0MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4XSwgVmFsdWVFbXB0eSwgLm9wQ3JlYXRlQXJn
dW1lbnRzRG9uZQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV9hcmd1
bWVudHMpCisub3BDcmVhdGVBcmd1bWVudHNEb25lOgorICAgIGRpc3BhdGNoKDIpCisKKworX2xs
aW50X29wX2NyZWF0ZV90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxNltQ
QiwgUEMsIDhdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQorICAgIGxvYWRwIFtjZnIs
IHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAg
ICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEKKyAgICBiYmIgU3RydWN0dXJlOjpt
X3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0MV0sIE9iamVjdFR5cGUsIC5vcENyZWF0ZVRo
aXNTbG93CisgICAgbG9hZHAgSlNPYmplY3Q6Om1faW5oZXJpdG9ySURbdDBdLCB0MgorICAgIGJ0
cHogdDIsIC5vcENyZWF0ZVRoaXNTbG93CisgICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmlu
YWxPYmplY3RTaXplQ2xhc3NJbmRleCwgSlNHbG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJ
bmZvLCB0MiwgdDAsIHQxLCB0MywgLm9wQ3JlYXRlVGhpc1Nsb3cpCisgICAgbG9hZGkgOFtQQiwg
UEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goOCkK
KworLm9wQ3JlYXRlVGhpc1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
Y3JlYXRlX3RoaXMpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfZ2V0X2NhbGxlZToK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MQorICAgIHN0b3JlcCB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfY29udmVydF90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0
MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAub3BDb252ZXJ0VGhpc1Nsb3cKKyAgICBsb2FkcCBK
U0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZv
ICsgVHlwZUluZm86Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcENvbnZlcnRUaGlzU2xvdwor
ICAgIGRpc3BhdGNoKDIpCisKKy5vcENvbnZlcnRUaGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9jb252ZXJ0X3RoaXMpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxp
bnRfb3BfbmV3X29iamVjdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJs
b2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQw
CisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZW1wdHlPYmplY3RTdHJ1Y3R1cmVbdDBdLCB0
MQorICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgs
IEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENsYXNzSW5mbywgdDEsIHQwLCB0MiwgdDMsIC5v
cE5ld09iamVjdFNsb3cpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0
MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMikKKworLm9wTmV3T2JqZWN0U2xvdzoKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfb2JqZWN0KQorICAgIGRpc3BhdGNo
KDIpCisKKworX2xsaW50X29wX21vdjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkg
MTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MSwgdDIpCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0KKyAg
ICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9ub3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIHhvcnAgVmFsdWVGYWxzZSwg
dDIKKyAgICBidHBueiB0MiwgfjEsIC5vcE5vdFNsb3cKKyAgICB4b3JwIFZhbHVlVHJ1ZSwgdDIK
KyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcE5vdFNs
b3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbm90KQorICAgIGRpc3BhdGNo
KDMpCisKKworbWFjcm8gZXF1YWxpdHlDb21wYXJpc29uKGludGVnZXJDb21wYXJpc29uLCBzbG93
UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMjRbUEIsIFBDLCA4XSwgdDAK
KyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDAsIHQxLCAuc2xvdykKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlSW50MzIodDIsIHQwLCAuc2xvdykKKyAgICBpbnRlZ2VyQ29tcGFy
aXNvbih0MCwgdDEsIHQwKQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwg
W2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRo
KHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDQpCitlbmQKKworX2xsaW50X29wX2VxOgorICAgIGVx
dWFsaXR5Q29tcGFyaXNvbigKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNp
ZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfZXEp
CisKKworX2xsaW50X29wX25lcToKKyAgICBlcXVhbGl0eUNvbXBhcmlzb24oCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwK
KyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9lcSkKKworCittYWNybyBlcXVhbE51bGxDb21wYXJp
c29uKCkKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4
XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLmltbWVkaWF0ZQorICAgIGxvYWRwIEpTQ2Vs
bDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIHRibnogU3RydWN0dXJlOjptX3R5cGVJbmZvICsg
VHlwZUluZm86Om1fZmxhZ3NbdDJdLCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCB0MAorICAgIGpt
cCAuZG9uZQorLmltbWVkaWF0ZToKKyAgICBhbmRwIH5UYWdCaXRVbmRlZmluZWQsIHQwCisgICAg
Y3BlcSB0MCwgVmFsdWVOdWxsLCB0MAorLmRvbmU6CitlbmQKKworX2xsaW50X29wX2VxX251bGw6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbENvbXBhcmlzb24oKQorICAgIGxv
YWRpIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAKKyAgICBzdG9yZXAg
dDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX25lcV9udWxs
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGxDb21wYXJpc29uKCkKKyAgICBs
b2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgeG9ycCBWYWx1ZVRydWUsIHQwCisgICAgc3RvcmVw
IHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisKK21hY3JvIHN0cmljdEVxKGVx
dWFsaXR5T3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9h
ZGkgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
dDIsIHQwKQorICAgIG1vdmUgdDAsIHQyCisgICAgb3JwIHQxLCB0MgorICAgIGJ0cHogdDIsIHRh
Z01hc2ssIC5zbG93CisgICAgYnBhZXEgdDAsIHRhZ1R5cGVOdW1iZXIsIC5sZWZ0T0sKKyAgICBi
dHBueiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKy5sZWZ0T0s6CisgICAgYnBhZXEgdDEsIHRh
Z1R5cGVOdW1iZXIsIC5yaWdodE9LCisgICAgYnRwbnogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93
CisucmlnaHRPSzoKKyAgICBlcXVhbGl0eU9wZXJhdGlvbih0MCwgdDEsIHQwKQorICAgIGxvYWRp
IDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAKKyAgICBzdG9yZXAgdDAs
IFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0
aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCg0KQorZW5kCisKK19sbGludF9vcF9zdHJpY3RlcToK
KyAgICBzdHJpY3RFcSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNwZXEg
bGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfc3RyaWN0
X2VxKQorCisKK19sbGludF9vcF9uc3RyaWN0ZXE6CisgICAgc3RyaWN0RXEoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjcG5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwK
KyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9zdHJpY3RfZXEpCisKKworbWFjcm8gcHJlT3AoYXJp
dGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxv
YWRpIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQxCisgICAgYnBi
IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFyaXRobWV0aWNPcGVyYXRpb24odDEsIC5z
bG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIHN0b3JlcCB0MSwgW2NmciwgdDAs
IDhdCisgICAgZGlzcGF0Y2goMikKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRo
KQorICAgIGRpc3BhdGNoKDIpCitlbmQKKworX2xsaW50X29wX3ByZV9pbmM6CisgICAgcHJlT3Ao
CisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYmFkZGlvIDEsIHZhbHVlLCBzbG93IGVuZCwK
KyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wcmVfaW5jKQorCisKK19sbGludF9vcF9wcmVfZGVj
OgorICAgIHByZU9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJzdWJpbyAxLCB2YWx1
ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcHJlX2luYykKKworCittYWNy
byBwb3N0T3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgOFtQQiwgUEMsIDhd
LCB0MQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDIKKyAgICBiaWVxIHQwLCB0MSwgLmRvbmUK
KyAgICBicGIgdDIsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgbW92ZSB0MiwgdDMKKyAgICBh
cml0aG1ldGljT3BlcmF0aW9uKHQzLCAuc2xvdykKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDMK
KyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIHN0b3JlcCB0MywgW2NmciwgdDAsIDhd
CisuZG9uZToKKyAgICBkaXNwYXRjaCgzKQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xv
d1BhdGgpCisgICAgZGlzcGF0Y2goMykKK2VuZAorCitfbGxpbnRfb3BfcG9zdF9pbmM6CisgICAg
cG9zdE9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJhZGRpbyAxLCB2YWx1ZSwgc2xv
dyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcG9zdF9pbmMpCisKKworX2xsaW50X29w
X3Bvc3RfZGVjOgorICAgIHBvc3RPcCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCBzbG93KSBic3Vi
aW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3Bvc3RfZGVj
KQorCisKK19sbGludF9vcF90b19qc251bWJlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGkgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIpCisgICAgYnBhZXEgdDIsIHRhZ1R5cGVOdW1i
ZXIsIC5vcFRvSnNudW1iZXJJc0ltbWVkaWF0ZQorICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5vcFRv
SnNOdW1iZXJTbG93Cisub3BUb0pzbnVtYmVySXNJbW1lZGlhdGU6CisgICAgc3RvcmVwIHQyLCBb
Y2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BUb0pzbnVtYmVyU2xvdzoKKyAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90b19qc251bWJlcikKKyAgICBkaXNwYXRjaCgz
KQorCisKK19sbGludF9vcF9uZWdhdGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRp
IDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIGJwYiB0MiwgdGFnVHlwZU51bWJlciwgLm9w
TmVnYXRlTm90SW50CisgICAgYnRpeiB0MiwgMHg3ZmZmZmZmZiwgLm9wTmVnYXRlU2xvdworICAg
IG5lZ2kgdDIKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIs
IHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisub3BOZWdhdGVOb3RJbnQ6CisgICAgYnRweiB0Miwg
dGFnVHlwZU51bWJlciwgLm9wTmVnYXRlU2xvdworICAgIHhvcnAgMHg4MDAwMDAwMDAwMDAwMDAw
LCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9w
TmVnYXRlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZWdhdGUpCisg
ICAgZGlzcGF0Y2goMykKKworCittYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVy
YXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICBsb2FkaSAyNFtQ
QiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDAp
CisgICAgYnBiIHQwLCB0YWdUeXBlTnVtYmVyLCAub3AxTm90SW50CisgICAgYnBiIHQxLCB0YWdU
eXBlTnVtYmVyLCAub3AyTm90SW50CisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MgorICAgIGlu
dGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAsIC5zbG93LCB0MikKKyAgICBkaXNwYXRjaCg1
KQorCisub3AxTm90SW50OgorICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5IG5vdCBh
biBpbnQsIHRoZSBzZWNvbmQgb3BlcmFuZCBjb3VsZCBiZSBhbnl0aGluZy4KKyAgICBidHB6IHQw
LCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGJwYWVxIHQxLCB0YWdUeXBlTnVtYmVyLCAub3Ax
Tm90SW50T3AySW50CisgICAgYnRweiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBhZGRw
IHRhZ1R5cGVOdW1iZXIsIHQxCisgICAgZnAyZCB0MSwgZnQxCisgICAgam1wIC5vcDFOb3RJbnRS
ZWFkeQorLm9wMU5vdEludE9wMkludDoKKyAgICBjaTJkIHQxLCBmdDEKKy5vcDFOb3RJbnRSZWFk
eToKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisgICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0
MAorICAgIGZwMmQgdDAsIGZ0MAorICAgIGRvdWJsZU9wZXJhdGlvbihmdDEsIGZ0MCkKKyAgICBm
ZDJwIGZ0MCwgdDAKKyAgICBzdWJwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgc3RvcmVwIHQwLCBb
Y2ZyLCB0MiwgOF0KKyAgICBkaXNwYXRjaCg1KQorCisub3AyTm90SW50OgorICAgICMgRmlyc3Qg
b3BlcmFuZCBpcyBkZWZpbml0ZWx5IGFuIGludCwgdGhlIHNlY29uZCBpcyBkZWZpbml0ZWx5IG5v
dC4KKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisgICAgYnRweiB0MSwgdGFnVHlwZU51bWJl
ciwgLnNsb3cKKyAgICBjaTJkIHQwLCBmdDAKKyAgICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQxCisg
ICAgZnAyZCB0MSwgZnQxCisgICAgZG91YmxlT3BlcmF0aW9uKGZ0MSwgZnQwKQorICAgIGZkMnAg
ZnQwLCB0MAorICAgIHN1YnAgdGFnVHlwZU51bWJlciwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIs
IHQyLCA4XQorICAgIGRpc3BhdGNoKDUpCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93
UGF0aCkKKyAgICBkaXNwYXRjaCg1KQorZW5kCisKK21hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVy
YXRpb24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgYmluYXJ5T3BDdXN0b21TdG9y
ZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93LCBpbmRleCkKKyAgICAgICAgICAg
IGludGVnZXJPcGVyYXRpb24obGVmdCwgcmlnaHQsIHNsb3cpCisgICAgICAgICAgICBvcnAgdGFn
VHlwZU51bWJlciwgcmlnaHQKKyAgICAgICAgICAgIHN0b3JlcCByaWdodCwgW2NmciwgaW5kZXgs
IDhdCisgICAgICAgIGVuZCwKKyAgICAgICAgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKK2Vu
ZAorCitfbGxpbnRfb3BfYWRkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaW5hcnlPcCgK
KyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBiYWRkaW8gbGVmdCwgcmlnaHQsIHNs
b3cgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQpIGFkZGQgbGVmdCwgcmlnaHQgZW5k
LAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2FkZCkKKworCitfbGxpbnRfb3BfbXVsOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaW5hcnlPcEN1c3RvbVN0b3JlKAorICAgICAgICBtYWNy
byAobGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQorICAgICAgICAgICAgIyBBc3N1bWUgdDMgaXMg
c2NyYXRjaGFibGUuCisgICAgICAgICAgICBtb3ZlIHJpZ2h0LCB0MworICAgICAgICAgICAgYm11
bGlvIGxlZnQsIHQzLCBzbG93CisgICAgICAgICAgICBidGlueiB0MywgLmRvbmUKKyAgICAgICAg
ICAgIGJpbHQgbGVmdCwgMCwgc2xvdworICAgICAgICAgICAgYmlsdCByaWdodCwgMCwgc2xvdwor
ICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MworICAgICAg
ICAgICAgc3RvcmVwIHQzLCBbY2ZyLCBpbmRleCwgOF0KKyAgICAgICAgZW5kLAorICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQpIG11bGQgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX211bCkKKworCitfbGxpbnRfb3Bfc3ViOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBiaW5hcnlPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBic3ViaW8g
bGVmdCwgcmlnaHQsIHNsb3cgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQpIHN1YmQg
bGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3N1YikKKworCitfbGxp
bnRfb3BfZGl2OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaW5hcnlPcEN1c3RvbVN0b3Jl
KAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQorICAgICAgICAgICAg
IyBBc3N1bWUgdDMgaXMgc2NyYXRjaGFibGUuCisgICAgICAgICAgICBidGl6IGxlZnQsIHNsb3cK
KyAgICAgICAgICAgIGJ0aW56IHJpZ2h0LCAuaW50T0sKKyAgICAgICAgICAgIGJpbHQgbGVmdCwg
MCwgc2xvdworICAgICAgICAuaW50T0s6CisgICAgICAgICAgICBtb3ZlIGxlZnQsIHQzCisgICAg
ICAgICAgICBtb3ZlIHJpZ2h0LCB0MAorICAgICAgICAgICAgY2RxaQorICAgICAgICAgICAgaWRp
dmkgdDMKKyAgICAgICAgICAgIGJ0aW56IHQxLCBzbG93CisgICAgICAgICAgICBvcnAgdGFnVHlw
ZU51bWJlciwgdDAKKyAgICAgICAgICAgIHN0b3JlcCB0MCwgW2NmciwgaW5kZXgsIDhdCisgICAg
ICAgIGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBkaXZkIGxlZnQsIHJpZ2h0IGVu
ZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9kaXYpCisKKworbWFjcm8gYml0T3Aob3BlcmF0
aW9uLCBzbG93UGF0aCwgYWR2YW5jZSkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MAorICAg
IGxvYWRpIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MworICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUodDIsIHQwKQorICAgIGJwYiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBicGIgdDEs
IHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgb3BlcmF0aW9uKHQxLCB0MCwgLnNsb3cpCisgICAg
b3JwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBk
aXNwYXRjaChhZHZhbmNlKQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisg
ICAgZGlzcGF0Y2goYWR2YW5jZSkKK2VuZAorCitfbGxpbnRfb3BfbHNoaWZ0OgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93
KSBsc2hpZnRpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9sc2hp
ZnQsCisgICAgICAgIDQpCisKKworX2xsaW50X29wX3JzaGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgcnNoaWZ0
aSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcnNoaWZ0LAorICAg
ICAgICA0KQorCisKK19sbGludF9vcF91cnNoaWZ0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KQorICAgICAgICAgICAg
dXJzaGlmdGkgbGVmdCwgcmlnaHQKKyAgICAgICAgICAgIGJpbHQgcmlnaHQsIDAsIHNsb3cKKyAg
ICAgICAgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3Vyc2hpZnQsCisgICAgICAgIDQp
CisKKworX2xsaW50X29wX2JpdGFuZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3Ao
CisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgYW5kaSBsZWZ0LCByaWdodCBlbmQs
CisgICAgICAgIF9sbGludF9zbG93X3BhdGhfYml0YW5kLAorICAgICAgICA1KQorCisKK19sbGlu
dF9vcF9iaXR4b3I6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIHhvcmkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBf
bGxpbnRfc2xvd19wYXRoX2JpdHhvciwKKyAgICAgICAgNSkKKworCitfbGxpbnRfb3BfYml0b3I6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHNsb3cpIG9yaSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3Bh
dGhfYml0b3IsCisgICAgICAgIDUpCisKKworX2xsaW50X29wX2NoZWNrX2hhc19pbnN0YW5jZToK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQxLCB0MCwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cp
CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCisgICAgYnRieiBTdHJ1Y3R1
cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0MF0sIEltcGxlbWVudHNIYXNJbnN0
YW5jZSwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cKKyAgICBkaXNwYXRjaCgyKQorCisub3BDaGVj
a0hhc0luc3RhbmNlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jaGVj
a19oYXNfaW5zdGFuY2UpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfaW5zdGFuY2Vv
ZjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgIyBDaGVjayB0aGF0IGJhc2VWYWwgaW1wbGVt
ZW50cyB0aGUgZGVmYXVsdCBIYXNJbnN0YW5jZSBiZWhhdmlvci4KKyAgICAjIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSBkZXByZWNhdGVkLgorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQxCisgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVj
dHVyZVt0MF0sIHQwCisgICAgYnRieiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6
bV9mbGFnc1t0MF0sIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UsIC5vcEluc3RhbmNlb2ZT
bG93CisgICAgCisgICAgIyBBY3R1YWxseSBkbyB0aGUgd29yay4KKyAgICBsb2FkaSAzMltQQiwg
UEMsIDhdLCB0MAorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbCh0MCwgdDEsIC5vcEluc3RhbmNlb2ZTbG93KQorICAgIGxvYWRwIEpTQ2Vs
bDo6bV9zdHJ1Y3R1cmVbdDFdLCB0MgorICAgIGJiYiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBU
eXBlSW5mbzo6bV90eXBlW3QyXSwgT2JqZWN0VHlwZSwgLm9wSW5zdGFuY2VvZlNsb3cKKyAgICBs
b2FkaSAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQw
LCB0MiwgLm9wSW5zdGFuY2VvZlNsb3cpCisgICAgCisgICAgIyBSZWdpc3RlciBzdGF0ZTogdDEg
PSBwcm90b3R5cGUsIHQyID0gdmFsdWUKKyAgICBtb3ZlIDEsIHQwCisub3BJbnN0YW5jZW9mTG9v
cDoKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QyXSwgdDIKKyAgICBsb2FkcCBTdHJ1
Y3R1cmU6Om1fcHJvdG90eXBlW3QyXSwgdDIKKyAgICBicGVxIHQyLCB0MSwgLm9wSW5zdGFuY2Vv
ZkRvbmUKKyAgICBidHB6IHQyLCB0YWdNYXNrLCAub3BJbnN0YW5jZW9mTG9vcAorCisgICAgbW92
ZSAwLCB0MAorLm9wSW5zdGFuY2VvZkRvbmU6CisgICAgb3JwIFZhbHVlRmFsc2UsIHQwCisgICAg
c3RvcmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg1KQorCisub3BJbnN0YW5jZW9m
U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbnN0YW5jZW9mKQorICAg
IGRpc3BhdGNoKDUpCisKKworbWFjcm8gcmVzb2x2ZUdsb2JhbChzaXplLCBzbG93KQorICAgICMg
T3BlcmFuZHMgYXJlIGFzIGZvbGxvd3M6CisgICAgIyA4W1BCLCBQQywgOF0gICBEZXN0aW5hdGlv
biBmb3IgdGhlIGxvYWQuCisgICAgIyAxNltQQiwgUEMsIDhdICBQcm9wZXJ0eSBpZGVudGlmaWVy
IGluZGV4IGluIHRoZSBjb2RlIGJsb2NrLgorICAgICMgMjRbUEIsIFBDLCA4XSAgU3RydWN0dXJl
IHBvaW50ZXIsIGluaXRpYWxpemVkIHRvIDAgYnkgYnl0ZWNvZGUgZ2VuZXJhdG9yLgorICAgICMg
MzJbUEIsIFBDLCA4XSAgT2Zmc2V0IGluIGdsb2JhbCBvYmplY3QsIGluaXRpYWxpemVkIHRvIDAg
YnkgYnl0ZWNvZGUgZ2VuZXJhdG9yLgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAg
IGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTQ2Vs
bDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGJwbmVxIHQxLCAyNFtQQiwgUEMsIDhdLCBzbG93
CisgICAgbG9hZGkgMzJbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9w
ZXJ0eVN0b3JhZ2VbdDBdLCB0MAorICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0MgorICAgIGxvYWRp
IDhbUEIsIFBDLCA4XSwgdDAKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQwLCA4XQorICAgIGxvYWRp
IChzaXplIC0gMSkgKiA4W1BCLCBQQywgOF0sIHQwCisgICAgdmFsdWVQcm9maWxlKHQyLCB0MCkK
K2VuZAorCitfbGxpbnRfb3BfcmVzb2x2ZV9nbG9iYWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIHJlc29sdmVHbG9iYWwoNiwgLm9wUmVzb2x2ZUdsb2JhbFNsb3cpCisgICAgZGlzcGF0Y2go
NikKKworLm9wUmVzb2x2ZUdsb2JhbFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfcmVzb2x2ZV9nbG9iYWwpCisgICAgZGlzcGF0Y2goNikKKworCisjIEdpdmVzIHlvdSB0
aGUgc2NvcGUgaW4gdDAsIHdoaWxlIGFsbG93aW5nIHlvdSB0byBvcHRpb25hbGx5IHBlcmZvcm0g
YWRkaXRpb25hbCBjaGVja3Mgb24gdGhlCisjIHNjb3BlcyBhcyB0aGV5IGFyZSB0cmF2ZXJzZWQu
IHNjb3BlQ2hlY2soKSBpcyBjYWxsZWQgd2l0aCB0d28gYXJndW1lbnRzOiB0aGUgcmVnaXN0ZXIK
KyMgaG9sZGluZyB0aGUgc2NvcGUsIGFuZCBhIHJlZ2lzdGVyIHRoYXQgY2FuIGJlIHVzZWQgZm9y
IHNjcmF0Y2guIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90CisjIHVzZSB0Mywgc28geW91IGNhbiBo
b2xkIHN0dWZmIGluIHQzIGlmIG5lZWQgYmUuCittYWNybyBnZXRTY29wZShkZUJydWlqaW5JbmRl
eE9wZXJhbmQsIHNjb3BlQ2hlY2spCisgICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MAorICAg
IGxvYWRpIGRlQnJ1aWppbkluZGV4T3BlcmFuZCwgdDIKKyAgICAKKyAgICBidGl6IHQyLCAuZG9u
ZQorICAgIAorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGJpbmVxIENvZGVCbG9j
azo6bV9jb2RlVHlwZVt0MV0sIEZ1bmN0aW9uQ29kZSwgLmxvb3AKKyAgICBidGJ6IENvZGVCbG9j
azo6bV9uZWVkc0Z1bGxTY29wZUNoYWluW3QxXSwgLmxvb3AKKyAgICAKKyAgICBsb2FkaSBDb2Rl
QmxvY2s6Om1fYWN0aXZhdGlvblJlZ2lzdGVyW3QxXSwgdDEKKworICAgICMgTmVlZCB0byBjb25k
aXRpb25hbGx5IHNraXAgb3ZlciBvbmUgc2NvcGUuCisgICAgYnRweiBbY2ZyLCB0MSwgOF0sIC5u
b0FjdGl2YXRpb24KKyAgICBzY29wZUNoZWNrKHQwLCB0MSkKKyAgICBsb2FkcCBTY29wZUNoYWlu
Tm9kZTo6bmV4dFt0MF0sIHQwCisubm9BY3RpdmF0aW9uOgorICAgIHN1YmkgMSwgdDIKKyAgICAK
KyAgICBidGl6IHQyLCAuZG9uZQorLmxvb3A6CisgICAgc2NvcGVDaGVjayh0MCwgdDEpCisgICAg
bG9hZHAgU2NvcGVDaGFpbk5vZGU6Om5leHRbdDBdLCB0MAorICAgIHN1YmkgMSwgdDIKKyAgICBi
dGlueiB0MiwgLmxvb3AKKworLmRvbmU6CitlbmQKKworX2xsaW50X29wX3Jlc29sdmVfZ2xvYmFs
X2R5bmFtaWM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6
Omdsb2JhbERhdGFbc3BdLCB0MworICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6YWN0aXZhdGlvblN0
cnVjdHVyZVt0M10sIHQzCisgICAgZ2V0U2NvcGUoCisgICAgICAgIDQwW1BCLCBQQywgOF0sCisg
ICAgICAgIG1hY3JvIChzY29wZSwgc2NyYXRjaCkKKyAgICAgICAgICAgIGxvYWRwIFNjb3BlQ2hh
aW5Ob2RlOjpvYmplY3Rbc2NvcGVdLCBzY3JhdGNoCisgICAgICAgICAgICBicG5lcSBKU0NlbGw6
Om1fc3RydWN0dXJlW3NjcmF0Y2hdLCB0MywgLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTdXBlclNs
b3cKKyAgICAgICAgZW5kKQorICAgIHJlc29sdmVHbG9iYWwoNywgLm9wUmVzb2x2ZUdsb2JhbER5
bmFtaWNTbG93KQorICAgIGRpc3BhdGNoKDcpCisKKy5vcFJlc29sdmVHbG9iYWxEeW5hbWljU3Vw
ZXJTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZm9yX3Jl
c29sdmVfZ2xvYmFsX2R5bmFtaWMpCisgICAgZGlzcGF0Y2goNykKKworLm9wUmVzb2x2ZUdsb2Jh
bER5bmFtaWNTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVf
Z2xvYmFsX2R5bmFtaWMpCisgICAgZGlzcGF0Y2goNykKKworCitfbGxpbnRfb3BfZ2V0X3Njb3Bl
ZF92YXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgT3BlcmFuZHMgYXJlIGFzIGZvbGxv
d3M6CisgICAgIyA4W1BCLCBQQywgOF0gICBEZXN0aW5hdGlvbiBmb3IgdGhlIGxvYWQKKyAgICAj
IDE2W1BCLCBQQywgOF0gIEluZGV4IG9mIHJlZ2lzdGVyIGluIHRoZSBzY29wZQorICAgICMgMjRb
UEIsIFBDLCA4XSAgRGUgQnJ1aWppbiBpbmRleC4KKyAgICBnZXRTY29wZSgyNFtQQiwgUEMsIDhd
LCBtYWNybyAoc2NvcGUsIHNjcmF0Y2gpIGVuZCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQx
CisgICAgbG9hZGkgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6
b2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU1ZhcmlhYmxlT2JqZWN0OjptX3JlZ2lzdGVyc1t0
MF0sIHQwCisgICAgbG9hZHAgW3QwLCB0MiwgOF0sIHQzCisgICAgc3RvcmVwIHQzLCBbY2ZyLCB0
MSwgOF0KKyAgICBsb2FkaSAzMltQQiwgUEMsIDhdLCB0MQorICAgIHZhbHVlUHJvZmlsZSh0Mywg
dDEpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfcHV0X3Njb3BlZF92YXI6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGdldFNjb3BlKDE2W1BCLCBQQywgOF0sIG1hY3JvIChzY29w
ZSwgc2NyYXRjaCkgZW5kKQorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MSwgdDMpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAg
IHdyaXRlQmFycmllcih0MykKKyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6b2JqZWN0W3QwXSwg
dDAKKyAgICBsb2FkcCBKU1ZhcmlhYmxlT2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0sIHQwCisgICAg
c3RvcmVwIHQzLCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX2dl
dF9nbG9iYWxfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxNltQQiwgUEMs
IDhdLCB0MQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkcCBDb2RlQmxvY2tb
Y2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QwXSwgdDAKKyAg
ICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRwIFt0
MCwgdDEsIDhdLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDMsIDhdCisgICAgbG9hZGkgMjRb
UEIsIFBDLCA4XSwgdDMKKyAgICB2YWx1ZVByb2ZpbGUodDIsIHQzKQorICAgIGRpc3BhdGNoKDQp
CisKKworX2xsaW50X29wX3B1dF9nbG9iYWxfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAor
ICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpT
R2xvYmFsT2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZSh0MSwgdDIpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIHdyaXRlQmFycmll
cih0MikKKyAgICBzdG9yZXAgdDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworCitf
bGxpbnRfb3BfZ2V0X2J5X2lkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAjIFdlIG9ubHkg
ZG8gbW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcgZm9yIG5vdywgYW5kIHdlIGRvIG5vdCBt
b2RpZnkgdGhlCisgICAgIyBvcGNvZGUuIFdlIGRvLCBob3dldmVyLCBhbGxvdyBmb3IgdGhlIGNh
Y2hlIHRvIGNoYW5nZSBhbnl0aW1lIGlmIGZhaWxzLCBzaW5jZQorICAgICMgcGluZy1wb25naW5n
IGlzIGZyZWUuIEF0IGJlc3Qgd2UgZ2V0IGx1Y2t5IGFuZCB0aGUgZ2V0X2J5X2lkIHdpbGwgY29u
dGludWUKKyAgICAjIHRvIHRha2UgZmFzdCBwYXRoIG9uIHRoZSBuZXcgY2FjaGUuIEF0IHdvcnN0
IHdlIHRha2Ugc2xvdyBwYXRoLCB3aGljaCBpcyB3aGF0CisgICAgIyB3ZSB3b3VsZCBoYXZlIGJl
ZW4gZG9pbmcgYW55d2F5LgorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkg
MzJbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDMs
IC5vcEdldEJ5SWRTbG93KQorICAgIGxvYWRpIDQwW1BCLCBQQywgOF0sIHQyCisgICAgbG9hZHAg
SlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3QzXSwgdDAKKyAgICBicG5lcSBKU0NlbGw6Om1f
c3RydWN0dXJlW3QzXSwgdDEsIC5vcEdldEJ5SWRTbG93CisgICAgbG9hZGkgOFtQQiwgUEMsIDhd
LCB0MQorICAgIGxvYWRwIFt0MCwgdDJdLCB0MworICAgIHN0b3JlcCB0MywgW2NmciwgdDEsIDhd
CisgICAgbG9hZGkgNjRbUEIsIFBDLCA4XSwgdDEKKyAgICB2YWx1ZVByb2ZpbGUodDMsIHQxKQor
ICAgIGRpc3BhdGNoKDkpCisKKy5vcEdldEJ5SWRTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX2dldF9ieV9pZCkKKyAgICBkaXNwYXRjaCg5KQorCisKK19sbGludF9vcF9n
ZXRfYXJndW1lbnRzX2xlbmd0aDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZb
UEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgYnRwbnogW2Nm
ciwgdDAsIDhdLCAub3BHZXRBcmd1bWVudHNMZW5ndGhTbG93CisgICAgbG9hZGkgQXJndW1lbnRD
b3VudCArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDIKKyAgICBzdWJpIDEsIHQyCisgICAgb3JwIHRh
Z1R5cGVOdW1iZXIsIHQyCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRj
aCg0KQorCisub3BHZXRBcmd1bWVudHNMZW5ndGhTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX2dldF9hcmd1bWVudHNfbGVuZ3RoKQorICAgIGRpc3BhdGNoKDQpCisKKwor
X2xsaW50X29wX3B1dF9ieV9pZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQ
QiwgUEMsIDhdLCB0MworICAgIGxvYWRpIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZUNlbGwodDMsIHQwLCAub3BQdXRCeUlkU2xvdykKKyAgICBsb2FkaSAyNFtQ
QiwgUEMsIDhdLCB0MgorICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0s
IHQzCisgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxLCAub3BQdXRCeUlkU2xv
dworICAgIGxvYWRpIDQwW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZSh0MiwgdDApCisgICAgd3JpdGVCYXJyaWVyKHQwKQorICAgIHN0b3JlcCB0MCwgW3QzLCB0MV0K
KyAgICBkaXNwYXRjaCg5KQorCisub3BQdXRCeUlkU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9wdXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKworCittYWNybyBwdXRC
eUlkVHJhbnNpdGlvbihhZGRpdGlvbmFsQ2hlY2tzKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkaSA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZGkgMzJbUEIsIFBDLCA4XSwgdDEKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MywgdDAsIC5vcFB1dEJ5SWRTbG93KQorICAg
IGxvYWRpIDI0W1BCLCBQQywgOF0sIHQyCisgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVt0
MF0sIHQxLCAub3BQdXRCeUlkU2xvdworICAgIGFkZGl0aW9uYWxDaGVja3ModDEsIHQzLCAub3BQ
dXRCeUlkU2xvdykKKyAgICBsb2FkaSA0MFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIEpTT2Jq
ZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQzCisgICAgYWRkcCB0MSwgdDMKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MSkKKyAgICB3cml0ZUJhcnJpZXIodDEpCisgICAgc3Rv
cmVwIHQxLCBbdDNdCisgICAgbG9hZGkgNDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDEs
IEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdCisgICAgZGlzcGF0Y2goOSkKK2VuZAorCitfbGxpbnRf
b3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fZGlyZWN0OgorICAgIHB1dEJ5SWRUcmFuc2l0aW9uKG1h
Y3JvIChvbGRTdHJ1Y3R1cmUsIHNjcmF0Y2gsIHNsb3cpIGVuZCkKKworCitfbGxpbnRfb3BfcHV0
X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsOgorICAgIHB1dEJ5SWRUcmFuc2l0aW9uKAorICAgICAg
ICBtYWNybyAob2xkU3RydWN0dXJlLCBzY3JhdGNoLCBzbG93KQorICAgICAgICAgICAgY29uc3Qg
cHJvdG9DZWxsID0gb2xkU3RydWN0dXJlICAgICMgUmV1c2luZyB0aGUgb2xkU3RydWN0dXJlIHJl
Z2lzdGVyIGZvciB0aGUgcHJvdG8KKyAgICAgICAgICAgIGxvYWRwIDU2W1BCLCBQQywgOF0sIHNj
cmF0Y2gKKyAgICAgICAgICAgIGFzc2VydChtYWNybyAob2spIGJ0cG56IHNjcmF0Y2gsIG9rIGVu
ZCkKKyAgICAgICAgICAgIGxvYWRwIFN0cnVjdHVyZUNoYWluOjptX3ZlY3RvcltzY3JhdGNoXSwg
c2NyYXRjaAorICAgICAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYnRwbnogc2NyYXRjaCwgb2sg
ZW5kKQorICAgICAgICAgICAgYnBlcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW29sZFN0cnVjdHVy
ZV0sIFZhbHVlTnVsbCwgLmRvbmUKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkcCBT
dHJ1Y3R1cmU6Om1fcHJvdG90eXBlW29sZFN0cnVjdHVyZV0sIHByb3RvQ2VsbAorICAgICAgICAg
ICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVtwcm90b0NlbGxdLCBvbGRTdHJ1Y3R1cmUKKyAg
ICAgICAgICAgIGJwbmVxIG9sZFN0cnVjdHVyZSwgW3NjcmF0Y2hdLCBzbG93CisgICAgICAgICAg
ICBhZGRwIDgsIHNjcmF0Y2gKKyAgICAgICAgICAgIGJwbmVxIFN0cnVjdHVyZTo6bV9wcm90b3R5
cGVbb2xkU3RydWN0dXJlXSwgVmFsdWVOdWxsLCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAg
ICAgZW5kKQorCisKK19sbGludF9vcF9nZXRfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKKyAgICBsb2FkaSAxNltQQiwgUEMsIDhdLCB0
MgorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2ds
b2JhbERhdGFbdDFdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQyLCB0MCwg
Lm9wR2V0QnlWYWxTbG93KQorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6anNBcnJheUNsYXNzSW5m
b1t0MV0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQzLCB0MSwgLm9wR2V0
QnlWYWxTbG93KQorICAgIGJwbmVxIFt0MF0sIHQyLCAub3BHZXRCeVZhbFNsb3cKKyAgICBsb2Fk
cCBKU0FycmF5OjptX3N0b3JhZ2VbdDBdLCB0MworICAgIGJpYWVxIHQxLCBKU0FycmF5OjptX3Zl
Y3Rvckxlbmd0aFt0MF0sIC5vcEdldEJ5VmFsU2xvdworICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwg
dDAKKyAgICBsb2FkaSBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yW3QzLCB0MSwgOF0sIHQyCisgICAg
YnRweiB0MiwgLm9wR2V0QnlWYWxTbG93CisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0KKyAg
ICBsb2FkaSAzMltQQiwgUEMsIDhdLCB0MAorICAgIHZhbHVlUHJvZmlsZSh0MiwgdDApCisgICAg
ZGlzcGF0Y2goNSkKKworLm9wR2V0QnlWYWxTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2dldF9ieV92YWwpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfZ2V0
X2FyZ3VtZW50X2J5X3ZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMTZbUEIs
IFBDLCA4XSwgdDAKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MQorICAgIGJ0cG56IFtjZnIs
IHQwLCA4XSwgLm9wR2V0QXJndW1lbnRCeVZhbFNsb3cKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlSW50MzIodDEsIHQyLCAub3BHZXRBcmd1bWVudEJ5VmFsU2xvdykKKyAgICBhZGRpIDEsIHQy
CisgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICBi
aWFlcSB0MiwgdDEsIC5vcEdldEFyZ3VtZW50QnlWYWxTbG93CisgICAgbmVnaSB0MgorICAgIGxv
YWRpIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkcCBUaGlzQXJndW1lbnRPZmZzZXRbY2ZyLCB0
MiwgOF0sIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg1KQor
Cisub3BHZXRBcmd1bWVudEJ5VmFsU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9nZXRfYXJndW1lbnRfYnlfdmFsKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29w
X2dldF9ieV9wbmFtZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgMjRbUEIsIFBD
LCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAgICBsb2FkaSAz
MltQQiwgUEMsIDhdLCB0MQorICAgIGFzc2VydE5vdENvbnN0YW50KHQxKQorICAgIGJwbmVxIHQw
LCBbY2ZyLCB0MSwgOF0sIC5vcEdldEJ5UG5hbWVTbG93CisgICAgbG9hZGkgMTZbUEIsIFBDLCA4
XSwgdDIKKyAgICBsb2FkaSA0MFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGVDZWxsKHQyLCB0MCwgLm9wR2V0QnlQbmFtZVNsb3cpCisgICAgYXNzZXJ0Tm90Q29uc3Rh
bnQodDMpCisgICAgbG9hZHAgW2NmciwgdDMsIDhdLCB0MQorICAgIGxvYWRwIEpTQ2VsbDo6bV9z
dHJ1Y3R1cmVbdDBdLCB0MgorICAgIGJwbmVxIHQyLCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpt
X2NhY2hlZFN0cnVjdHVyZVt0MV0sIC5vcEdldEJ5UG5hbWVTbG93CisgICAgbG9hZGkgNDhbUEIs
IFBDLCA4XSwgdDMKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdLCB0MworICAg
IHN1YmkgMSwgdDMKKyAgICBiaWFlcSB0MywgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9udW1D
YWNoZWFibGVTbG90c1t0MV0sIC5vcEdldEJ5UG5hbWVTbG93CisgICAgbG9hZHAgSlNPYmplY3Q6
Om1fcHJvcGVydHlTdG9yYWdlW3QwXSwgdDAKKyAgICBsb2FkcCBbdDAsIHQzLCA4XSwgdDAKKyAg
ICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAg
ICBkaXNwYXRjaCg3KQorCisub3BHZXRCeVBuYW1lU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9nZXRfYnlfcG5hbWUpCisgICAgZGlzcGF0Y2goNykKKworCitfbGxpbnRf
b3BfcHV0X2J5X3ZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMs
IDhdLCB0MAorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQwLCB0MSwgLm9wUHV0QnlW
YWxTbG93KQorICAgIGxvYWRpIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZUludDMyKHQwLCB0MiwgLm9wUHV0QnlWYWxTbG93KQorICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QwXSwgdDAKKyAg
ICBsb2FkcCBKU0dsb2JhbERhdGE6OmpzQXJyYXlDbGFzc0luZm9bdDBdLCB0MAorICAgIGJwbmVx
IFt0MV0sIHQwLCAub3BQdXRCeVZhbFNsb3cKKyAgICBiaWFlcSB0MiwgSlNBcnJheTo6bV92ZWN0
b3JMZW5ndGhbdDFdLCAub3BQdXRCeVZhbFNsb3cKKyAgICBsb2FkcCBKU0FycmF5OjptX3N0b3Jh
Z2VbdDFdLCB0MAorICAgIGJ0cHogQXJyYXlTdG9yYWdlOjptX3ZlY3Rvclt0MCwgdDIsIDhdLCAu
b3BQdXRCeVZhbEVtcHR5Cisub3BQdXRCeVZhbFN0b3JlUmVzdWx0OgorICAgIGxvYWRpIDI0W1BC
LCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MywgdDEpCisgICAgd3Jp
dGVCYXJyaWVyKHQxKQorICAgIHN0b3JlcCB0MSwgQXJyYXlTdG9yYWdlOjptX3ZlY3Rvclt0MCwg
dDIsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLm9wUHV0QnlWYWxFbXB0eToKKyAgICBhZGRpIDEs
IEFycmF5U3RvcmFnZTo6bV9udW1WYWx1ZXNJblZlY3Rvclt0MF0KKyAgICBiaWIgdDIsIEFycmF5
U3RvcmFnZTo6bV9sZW5ndGhbdDBdLCAub3BQdXRCeVZhbFN0b3JlUmVzdWx0CisgICAgYWRkaSAx
LCB0MiwgdDEKKyAgICBzdG9yZWkgdDEsIEFycmF5U3RvcmFnZTo6bV9sZW5ndGhbdDBdCisgICAg
am1wIC5vcFB1dEJ5VmFsU3RvcmVSZXN1bHQKKworLm9wUHV0QnlWYWxTbG93OgorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV92YWwpCisgICAgZGlzcGF0Y2goNCkKKwor
CitfbGxpbnRfb3BfbG9vcDoKKyAgICBub3AKK19sbGludF9vcF9qbXA6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGRpc3BhdGNoKDhbUEIsIFBDLCA4XSkKKworCitfbGxpbnRfb3Bfam1wX3Nj
b3BlczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfam1wX3Njb3BlcykKKyAgICBkaXNwYXRjaCgwKQorCisKK21hY3JvIGp1bXBUcnVlT3JG
YWxzZShjb25kaXRpb25PcCwgc2xvdykKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgeG9ycCBWYWx1ZUZhbHNlLCB0MAor
ICAgIGJ0cG56IHQwLCAtMSwgLnNsb3cKKyAgICBjb25kaXRpb25PcCh0MCwgLnRhcmdldCkKKyAg
ICBkaXNwYXRjaCgzKQorCisudGFyZ2V0OgorICAgIGRpc3BhdGNoKDE2W1BCLCBQQywgOF0pCisK
Ky5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93KQorICAgIGRpc3BhdGNoKDApCitlbmQKKwor
CittYWNybyBlcXVhbE51bGwoY2VsbEhhbmRsZXIsIGltbWVkaWF0ZUhhbmRsZXIpCisgICAgbG9h
ZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQorICAgIGxvYWRw
IFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLmltbWVkaWF0ZQorICAg
IGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIGNlbGxIYW5kbGVyKFN0cnVj
dHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QyXSwgLnRhcmdldCkKKyAgICBk
aXNwYXRjaCgzKQorCisudGFyZ2V0OgorICAgIGRpc3BhdGNoKDE2W1BCLCBQQywgOF0pCisKKy5p
bW1lZGlhdGU6CisgICAgYW5kcCB+VGFnQml0VW5kZWZpbmVkLCB0MAorICAgIGltbWVkaWF0ZUhh
bmRsZXIodDAsIC50YXJnZXQpCisgICAgZGlzcGF0Y2goMykKK2VuZAorCitfbGxpbnRfb3BfamVx
X251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbCgKKyAgICAgICAgbWFj
cm8gKHZhbHVlLCB0YXJnZXQpIGJ0Ym56IHZhbHVlLCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCB0
YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmllcSB2YWx1ZSwgVmFs
dWVOdWxsLCB0YXJnZXQgZW5kKQorCisKK19sbGludF9vcF9qbmVxX251bGw6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGVxdWFsTnVsbCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQp
IGJ0YnogdmFsdWUsIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHRhcmdldCBlbmQsCisgICAgICAg
IG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBiaW5lcSB2YWx1ZSwgVmFsdWVOdWxsLCB0YXJnZXQgZW5k
KQorCisKK19sbGludF9vcF9qbmVxX3B0cjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9h
ZGkgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIDE2W1BCLCBQQywgOF0sIHQxCisgICAgbG9h
ZHAgW2NmciwgdDAsIDhdLCB0MAorICAgIGJwbmVxIHQxLCBbY2ZyLCB0MCwgOF0sIC5vcEpuZXFQ
dHJUYXJnZXQKKyAgICBkaXNwYXRjaCg0KQorCisub3BKbmVxUHRyVGFyZ2V0OgorICAgIGRpc3Bh
dGNoKDI0W1BCLCBQQywgOF0pCisKKworbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91
YmxlQ29tcGFyZSwgc2xvd1BhdGgpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0MgorICAgIGxv
YWRpIDE2W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDAp
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MywgdDEpCisgICAgYnBiIHQwLCB0YWdUeXBl
TnVtYmVyLCAub3AxTm90SW50CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50
CisgICAgaW50ZWdlckNvbXBhcmUodDAsIHQxLCAuanVtcFRhcmdldCkKKyAgICBkaXNwYXRjaCg0
KQorCisub3AxTm90SW50OgorICAgIGJ0cHogdDAsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAg
YnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AxTm90SW50T3AyTm90SW50CisgICAgY2kyZCB0MSwg
ZnQxCisgICAgam1wIC5vcDFOb3RJbnRSZWFkeQorLm9wMU5vdEludE9wMk5vdEludDoKKyAgICBi
dHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFkZHAgdGFnVHlwZU51bWJlciwgdDEK
KyAgICBmcDJkIHQxLCBmdDEKKy5vcDFOb3RJbnRyZWFkeToKKyAgICBhZGRwIHRhZ1R5cGVOdW1i
ZXIsIHQwCisgICAgZnAyZCB0MCwgZnQwCisgICAgZG91YmxlQ29tcGFyZShmdDAsIGZ0MSwgLmp1
bXBUYXJnZXQpCisgICAgZGlzcGF0Y2goNCkKKworLm9wMk5vdEludDoKKyAgICBjaTJkIHQwLCBm
dDAKKyAgICBidHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFkZHAgdGFnVHlwZU51
bWJlciwgdDEKKyAgICBmcDJkIHQxLCBmdDEKKyAgICBkb3VibGVDb21wYXJlKGZ0MCwgZnQxLCAu
anVtcFRhcmdldCkKKyAgICBkaXNwYXRjaCg0KQorCisuanVtcFRhcmdldDoKKyAgICBkaXNwYXRj
aCgyNFtQQiwgUEMsIDhdKQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisg
ICAgZGlzcGF0Y2goMCkKK2VuZAorCisKK19sbGludF9vcF9zd2l0Y2hfaW1tOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpIDhbUEIs
IFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MSkKKyAgICBsb2Fk
cCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fcmFyZURhdGFbdDJd
LCB0MgorICAgIG11bGkgc2l6ZW9mIFNpbXBsZUp1bXBUYWJsZSwgdDMgICAgIyBGSVhNRTogd291
bGQgYmUgbmljZSB0byBwZWVwaG9sZSB0aGlzIQorICAgIGxvYWRwIENvZGVCbG9jazo6UmFyZURh
dGE6Om1faW1tZWRpYXRlU3dpdGNoSnVtcFRhYmxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0s
IHQyCisgICAgYWRkcCB0MywgdDIKKyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcFN3aXRj
aEltbU5vdEludAorICAgIHN1YmkgU2ltcGxlSnVtcFRhYmxlOjptaW5bdDJdLCB0MQorICAgIGJp
YWVxIHQxLCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JTaXplT2Zmc2V0
W3QyXSwgLm9wU3dpdGNoSW1tRmFsbFRocm91Z2gKKyAgICBsb2FkcCBTaW1wbGVKdW1wVGFibGU6
OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0MworICAgIGxvYWRpIFt0
MywgdDEsIDRdLCB0MQorICAgIGJ0aXogdDEsIC5vcFN3aXRjaEltbUZhbGxUaHJvdWdoCisgICAg
ZGlzcGF0Y2godDEpCisKKy5vcFN3aXRjaEltbU5vdEludDoKKyAgICBidHBueiB0MSwgLm9wU3dp
dGNoSW1tU2xvdyAgICMgR28gc2xvdyBpZiBpdCdzIGEgZG91YmxlLgorLm9wU3dpdGhjSW1tRmFs
bFRocm91Z2g6CisgICAgZGlzcGF0Y2goMTZbUEIsIFBDLCA4XSkKKworLm9wU3dpdGNoSW1tU2xv
dzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hfaW1tKQorICAgIGRp
c3BhdGNoKDApCisKKworX2xsaW50X29wX3N3aXRjaF9jaGFyOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaSAyNFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwg
dDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MSkKKyAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fcmFyZURhdGFbdDJdLCB0MgorICAg
IG11bGkgc2l6ZW9mIFNpbXBsZUp1bXBUYWJsZSwgdDMKKyAgICBsb2FkcCBDb2RlQmxvY2s6OlJh
cmVEYXRhOjptX2NoYXJhY3RlclN3aXRjaEp1bXBUYWJsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRb
dDJdLCB0MgorICAgIGFkZHAgdDMsIHQyCisgICAgYnRwbnogdDEsIHRhZ01hc2ssIC5vcFN3aXRj
aENoYXJGYWxsVGhyb3VnaAorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDFdLCB0MAor
ICAgIGJibmVxIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDBdLCBT
dHJpbmdUeXBlLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKKyAgICBsb2FkcCBKU1N0cmluZzo6
bV92YWx1ZVt0MV0sIHQwCisgICAgYmluZXEgU3RyaW5nSW1wbDo6bV9sZW5ndGhbdDBdLCAxLCAu
b3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKKyAgICBsb2FkcCBTdHJpbmdJbXBsOjptX2RhdGE4W3Qw
XSwgdDEKKyAgICBidGlueiBTdHJpbmdJbXBsOjptX2hhc2hBbmRGbGFnc1t0MF0sIEhhc2hGbGFn
czhCaXRCdWZmZXIsIC5vcFN3aXRjaENoYXI4Qml0CisgICAgbG9hZGggW3QxXSwgdDAKKyAgICBq
bXAgLm9wU3dpdGNoQ2hhclJlYWR5Cisub3BTd2l0Y2hDaGFyOEJpdDoKKyAgICBsb2FkYiBbdDFd
LCB0MAorLm9wU3dpdGNoQ2hhclJlYWR5OgorICAgIHN1YmkgU2ltcGxlSnVtcFRhYmxlOjptaW5b
dDJdLCB0MAorICAgIGJpYWVxIHQwLCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBW
ZWN0b3JTaXplT2Zmc2V0W3QyXSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAg
U2ltcGxlSnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwg
dDIKKyAgICBsb2FkaSBbdDIsIHQwLCA0XSwgdDEKKyAgICBidGl6IHQxLCAub3BTd2l0Y2hDaGFy
RmFsbFRocm91Z2gKKyAgICBkaXNwYXRjaCh0MSkKKworLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdo
OgorICAgIGRpc3BhdGNoKDE2W1BCLCBQQywgOF0pCisKKworX2xsaW50X29wX25ld19mdW5jOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBidGl6IDI0W1BCLCBQQywgOF0sIC5vcE5ld0Z1bmNV
bmNoZWNrZWQKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQxCisgICAgYnRwbnogW2NmciwgdDEs
IDhdLCAub3BOZXdGdW5jRG9uZQorLm9wTmV3RnVuY1VuY2hlY2tlZDoKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9mdW5jKQorLm9wTmV3RnVuY0RvbmU6CisgICAgZGlzcGF0Y2go
NCkKKworCittYWNybyBkb0NhbGwoc2xvd1BhdGgpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0
MAorICAgIGxvYWRwIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZHAgTExJbnRDYWxsTGlua0lu
Zm86OmNhbGxlZVt0MV0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDMpCisg
ICAgYmluZXEgdDMsIHQyLCAub3BDYWxsU2xvdworICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQz
CisgICAgYWRkaSA0OCwgUEMKKyAgICBsc2hpZnRpIDMsIHQzCisgICAgYWRkcCBjZnIsIHQzCisg
ICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9zY29wZUNoYWluW3QyXSwgdDAKKyAgICBzdG9yZXAgdDIs
IENhbGxlZVt0M10KKyAgICBzdG9yZXAgdDAsIFNjb3BlQ2hhaW5bdDNdCisgICAgbG9hZGkgMTYg
LSA0OFtQQiwgUEMsIDhdLCB0MgorICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09m
ZnNldFtjZnJdCisgICAgc3RvcmVwIGNmciwgQ2FsbGVyRnJhbWVbdDNdCisgICAgc3RvcmVwIHQy
LCBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICBtb3ZlIHQzLCBjZnIKKyAg
ICBjYWxsIExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFt0MV0KKyAgICBkaXNw
YXRjaEFmdGVyQ2FsbCgpCisKKy5vcENhbGxTbG93OgorICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBz
bG93UGF0aCkKK2VuZAorCisKK19sbGludF9vcF90ZWFyX29mZl9hY3RpdmF0aW9uOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgMTZb
UEIsIFBDLCA4XSwgdDEKKyAgICBidHBueiBbY2ZyLCB0MCwgOF0sIC5vcFRlYXJPZmZBY3RpdmF0
aW9uQ3JlYXRlZAorICAgIGJ0cHogW2NmciwgdDEsIDhdLCAub3BUZWFyT2ZmQWN0aXZhdGlvbk5v
dENyZWF0ZWQKKy5vcFRlYXJPZmZBY3RpdmF0aW9uQ3JlYXRlZDoKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF90ZWFyX29mZl9hY3RpdmF0aW9uKQorLm9wVGVhck9mZkFjdGl2YXRp
b25Ob3RDcmVhdGVkOgorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX3RlYXJfb2ZmX2Fy
Z3VtZW50czoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgOFtQQiwgUEMsIDhdLCB0
MAorICAgIHN1YmkgMSwgdDAgICAjIEdldCB0aGUgdW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVy
CisgICAgYnRweiBbY2ZyLCB0MCwgOF0sIC5vcFRlYXJPZmZBcmd1bWVudHNOb3RDcmVhdGVkCisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGVhcl9vZmZfYXJndW1lbnRzKQorLm9w
VGVhck9mZkFyZ3VtZW50c05vdENyZWF0ZWQ6CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRf
b3BfcmV0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N3aXRjaFRvSklURm9yRXBp
bG9ndWUoKQorICAgIGxvYWRpIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKHQyLCB0MCkKKyAgICBkb1JldHVybigpCisKKworX2xsaW50X29wX2NhbGxfcHV0X3Jl
c3VsdDoKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGkgMTZbUEIsIFBDLCA4
XSwgdDMKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIHZhbHVlUHJvZmlsZSh0MCwg
dDMpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29w
X3JldF9vYmplY3Rfb3JfdGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTd2l0
Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcFJl
dE9iamVjdE9yVGhpc05vdE9iamVjdAorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBd
LCB0MgorICAgIGJiYiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3Qy
XSwgT2JqZWN0VHlwZSwgLm9wUmV0T2JqZWN0T3JUaGlzTm90T2JqZWN0CisgICAgZG9SZXR1cm4o
KQorCisub3BSZXRPYmplY3RPclRoaXNOb3RPYmplY3Q6CisgICAgbG9hZGkgMTZbUEIsIFBDLCA4
XSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBkb1JldHVybigp
CisKKworX2xsaW50X29wX3RvX3ByaW1pdGl2ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGkgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQzCisgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5v
cFRvUHJpbWl0aXZlSXNJbW0KKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDIK
KyAgICBiYm5lcSBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QyXSwg
U3RyaW5nVHlwZSwgLm9wVG9QcmltaXRpdmVTbG93Q2FzZQorLm9wVG9QcmltaXRpdmVJc0ltbToK
KyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRvUHJp
bWl0aXZlU2xvd0Nhc2U6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdG9fcHJp
bWl0aXZlKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX25leHRfcG5hbWU6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDI0W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZGkg
MzJbUEIsIFBDLCA4XSwgdDIKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MSkKKyAgICBhc3NlcnRO
b3RDb25zdGFudCh0MikKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdLCB0MAor
ICAgIGJpZXEgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0sIC5vcE5leHRQbmFtZUVuZAor
ICAgIGxvYWRpIDQwW1BCLCBQQywgOF0sIHQyCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDIpCisg
ICAgbG9hZGkgW2NmciwgdDIsIDhdLCB0MgorICAgIGxvYWRwIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3I6Om1fanNTdHJpbmdzW3QyXSwgdDMKKyAgICBsb2FkcCBbdDMsIHQwLCA4XSwgdDMKKyAgICBh
ZGRpIDEsIHQwCisgICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdCisgICAg
bG9hZGkgOFtQQiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MywgW2NmciwgdDEsIDhdCisgICAg
bG9hZGkgMTZbUEIsIFBDLCA4XSwgdDMKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MykKKyAgICBs
b2FkcCBbY2ZyLCB0MywgOF0sIHQzCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0M10s
IHQxCisgICAgYnBuZXEgdDEsIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6Om1fY2FjaGVkU3RydWN0
dXJlW3QyXSwgLm9wTmV4dFBuYW1lU2xvdworICAgIGxvYWRwIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3I6Om1fY2FjaGVkUHJvdG90eXBlQ2hhaW5bdDJdLCB0MAorICAgIGxvYWRwIFN0cnVjdHVyZUNo
YWluOjptX3ZlY3Rvclt0MF0sIHQwCisgICAgYnRweiBbdDBdLCAub3BOZXh0UG5hbWVUYXJnZXQK
Ky5vcE5leHRQbmFtZUNoZWNrUHJvdG90eXBlTG9vcDoKKyAgICBicGVxIFN0cnVjdHVyZTo6bV9w
cm90b3R5cGVbdDFdLCBWYWx1ZU51bGwsIC5vcE5leHRQbmFtZVNsb3cKKyAgICBsb2FkcCBTdHJ1
Y3R1cmU6Om1fcHJvdG90eXBlW3QxXSwgdDIKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJl
W3QyXSwgdDEKKyAgICBicG5lcSB0MSwgW3QwXSwgLm9wTmV4dFBuYW1lU2xvdworICAgIGFkZHAg
OCwgdDAKKyAgICBidHBueiBbdDBdLCAub3BOZXh0UG5hbWVDaGVja1Byb3RvdHlwZUxvb3AKKy5v
cE5leHRQbmFtZVRhcmdldDoKKyAgICBkaXNwYXRjaCg0OFtQQiwgUEMsIDhdKQorCisub3BOZXh0
UG5hbWVFbmQ6CisgICAgZGlzcGF0Y2goNykKKworLm9wTmV4dFBuYW1lU2xvdzoKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXh0X3BuYW1lKSAjIFRoaXMgZWl0aGVyIGtlZXBz
IHRoZSBQQyB3aGVyZSBpdCB3YXMgKGNhdXNpbmcgdXMgdG8gbG9vcCkgb3Igc2V0cyBpdCB0byB0
YXJnZXQuCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfb3BfY2F0Y2g6CisgICAgIyBUaGlz
IGlzIHdoZXJlIHdlIGVuZCB1cCBmcm9tIHRoZSBKSVQncyB0aHJvdyB0cmFtcG9saW5lIChiZWNh
dXNlIHRoZQorICAgICMgbWFjaGluZSBjb2RlIHJldHVybiBhZGRyZXNzIHdpbGwgYmUgc2V0IHRv
IF9sbGludF9vcF9jYXRjaCksIGFuZCBmcm9tCisgICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJv
dyB0cmFtcG9saW5lIChzZWUgX2xsaW50X3Rocm93X3RyYW1wb2xpbmUpLgorICAgICMgVGhlIEpJ
VCB0aHJvd2luZyBwcm90b2NvbCBjYWxscyBmb3IgdGhlIGNmciB0byBiZSBpbiB0MC4gVGhlIHRo
cm93aW5nCisgICAgIyBjb2RlIG11c3QgaGF2ZSBrbm93biB0aGF0IHdlIHdlcmUgdGhyb3dpbmcg
dG8gdGhlIGludGVycHJldGVyLCBhbmQgaGF2ZQorICAgICMgc2V0IEpTR2xvYmFsRGF0YTo6dGFy
Z2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93LgorICAgIG1vdmUgdDAsIGNmcgorICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCBQQgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbUEJd
LCBQQgorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgIGxv
YWRwIEpTR2xvYmFsRGF0YTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMKKyAg
ICBzdWJwIFBCLCBQQworICAgIHVyc2hpZnRwIDMsIFBDCisgICAgbG9hZHAgSlNHbG9iYWxEYXRh
OjpleGNlcHRpb25bdDNdLCB0MAorICAgIHN0b3JlcCAwLCBKU0dsb2JhbERhdGE6OmV4Y2VwdGlv
blt0M10KKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQyCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0
MiwgOF0KKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRf
b3BfanNyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQw
CisgICAgYWRkaSAzICogOCwgUEMsIHQxCisgICAgc3RvcmVpIHQxLCBbY2ZyLCB0MCwgOF0KKyAg
ICBkaXNwYXRjaCgxNltQQiwgUEMsIDhdKQorCisKK19sbGludF9vcF9zcmV0OgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGkgW2Nmciwg
dDAsIDhdLCBQQworICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X29wX2VuZDoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBsb2Fk
aSA4W1BCLCBQQywgOF0sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCisgICAgbG9hZHAg
W2NmciwgdDAsIDhdLCB0MAorICAgIGRvUmV0dXJuKCkKKworCitfbGxpbnRfdGhyb3dfZnJvbV9z
bG93X3BhdGhfdHJhbXBvbGluZToKKyAgICAjIFdoZW4gdGhyb3dpbmcgZnJvbSB0aGUgaW50ZXJw
cmV0ZXIgKGkuZS4gdGhyb3dpbmcgZnJvbSBMTEludFNsb3dQYXRocyksIHNvCisgICAgIyB0aGUg
dGhyb3cgdGFyZ2V0IGlzIG5vdCBuZWNlc3NhcmlseSBpbnRlcnByZXRlZCBjb2RlLCB3ZSBjb21l
IHRvIGhlcmUuCisgICAgIyBUaGlzIGVzc2VudGlhbGx5IGVtdWxhdGVzIHRoZSBKSVQncyB0aHJv
d2luZyBwcm90b2NvbC4KKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwg
dDEKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAg
ICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0MV0KKworCitfbGxp
bnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJl
c3NBZnRlckNhbGwodDIpCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0s
IHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJvd1t0MV0sIHQwCisg
ICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3dbdDFdCisKKworbWFj
cm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCisgICAg
c3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgdDAK
KyAgICBsb2FkcCBTY29wZUNoYWluW3QwXSwgdDEKKyAgICBzdG9yZXAgdDEsIFNjb3BlQ2hhaW5b
Y2ZyXQorICAgIHBlZWsgMCwgdDEKKyAgICBzdG9yZXAgdDEsIFJldHVyblBDW2Nmcl0KKyAgICBt
b3ZlIGNmciwgdDUgICMgdDUgPSByZGkKKyAgICBzdWJwIDE2IC0gOCwgc3AKKyAgICBsb2FkcCBD
YWxsZWVbY2ZyXSwgdDQgIyB0NCA9IHJzaQorICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0
YWJsZVt0NF0sIHQxCisgICAgbW92ZSB0MCwgY2ZyICMgUmVzdG9yZSBjZnIgdG8gYXZvaWQgbG9h
ZGluZyBmcm9tIHN0YWNrCisgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0K
KyAgICBhZGRwIDE2IC0gOCwgc3AKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRh
ICsgOFtzcF0sIHQzCisgICAgYnRwbnogSlNHbG9iYWxEYXRhOjpleGNlcHRpb25bdDNdLCAuZXhj
ZXB0aW9uCisgICAgcmV0CisuZXhjZXB0aW9uOgorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0Fm
dGVyQ2FsbCh0MSkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2Nh
bGwpCisgICAgam1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCitlbmQK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw5ICsy
MSw4MjcgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKKyMgRmlyc3QgY29tZSB0aGUgY29tbW9uIHByb3RvY29scyB0aGF0IGJvdGggaW50ZXJw
cmV0ZXJzIHVzZS4gTm90ZSB0aGF0IGVhY2gKKyMgb2YgdGhlc2UgbXVzdCBoYXZlIGFuIEFTU0VS
VCgpIGluIExMSW50RGF0YS5jcHAKKworIyBUaGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRjaCBp
bnRlcnByZXRlci9SZWdpc3RlckZpbGUuaC4KK2NvbnN0IENhbGxGcmFtZUhlYWRlclNpemUgPSA0
OAorY29uc3QgQXJndW1lbnRDb3VudCA9IC00OAorY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAKK2Nv
bnN0IENhbGxlZSA9IC0zMgorY29uc3QgU2NvcGVDaGFpbiA9IC0yNAorY29uc3QgUmV0dXJuUEMg
PSAtMTYKK2NvbnN0IENvZGVCbG9jayA9IC04CisKK2NvbnN0IFRoaXNBcmd1bWVudE9mZnNldCA9
IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0gOAorCisjIFNvbWUgcmVnaXN0ZXIgY29udmVudGlvbnMu
CitpZiBKU1ZBTFVFNjQKKyAgICAjIC0gVXNlIGEgcGFpciBvZiByZWdpc3RlcnMgdG8gcmVwcmVz
ZW50IHRoZSBQQzogb25lIHJlZ2lzdGVyIGZvciB0aGUKKyAgICAjICAgYmFzZSBvZiB0aGUgcmVn
aXN0ZXIgZmlsZSwgYW5kIG9uZSByZWdpc3RlciBmb3IgdGhlIGluZGV4LgorICAgICMgLSBUaGUg
UEMgYmFzZSAob3IgUEIgZm9yIHNob3J0KSBzaG91bGQgYmUgc3RvcmVkIGluIHRoZSBjc3IuIEl0
IHdpbGwKKyAgICAjICAgZ2V0IGNsb2JiZXJlZCBvbiBjYWxscyB0byBvdGhlciBKUyBjb2RlLCBi
dXQgd2lsbCBnZXQgc2F2ZWQgb24gY2FsbHMKKyAgICAjICAgdG8gQyBmdW5jdGlvbnMuCisgICAg
IyAtIEMgY2FsbHMgYXJlIHN0aWxsIGdpdmVuIHRoZSBJbnN0cnVjdGlvbiogcmF0aGVyIHRoYW4g
dGhlIFBDIGluZGV4LgorICAgICMgICBUaGlzIHJlcXVpcmVzIGFuIGFkZCBiZWZvcmUgdGhlIGNh
bGwsIGFuZCBhIHN1YiBhZnRlci4KKyAgICBjb25zdCBQQyA9IHQ0CisgICAgY29uc3QgUEIgPSBj
c3IwCisgICAgY29uc3QgdGFnVHlwZU51bWJlciA9IGNzcjEKKyAgICBjb25zdCB0YWdNYXNrID0g
Y3NyMgorZWxzZQorICAgIGNvbnN0IFBDID0gdDQKK2VuZAorCisjIENvbnN0YW50cyBmb3IgcmVh
c29uaW5nIGFib3V0IHZhbHVlIHJlcHJlc2VudGF0aW9uLgoraWYgQklHX0VORElBTgorICAgIGNv
bnN0IFRhZ09mZnNldCA9IDAKKyAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gNAorZWxzZQorICAg
IGNvbnN0IFRhZ09mZnNldCA9IDQKKyAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gMAorZW5kCisK
KyMgVHlwZSBjb25zdGFudHMuCitjb25zdCBTdHJpbmdUeXBlID0gNQorY29uc3QgT2JqZWN0VHlw
ZSA9IDEzCisKKyMgVHlwZSBmbGFncyBjb25zdGFudHMuCitjb25zdCBNYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkID0gMQorY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMgorY29uc3QgSW1wbGVt
ZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDgKKworIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0YW50
cy4KK2NvbnN0IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gMHg0MDAwMDAwMAorCisjIENv
ZGUgdHlwZSBjb25zdGFudHMuCitjb25zdCBHbG9iYWxDb2RlID0gMAorY29uc3QgRXZhbENvZGUg
PSAxCitjb25zdCBGdW5jdGlvbkNvZGUgPSAyCisKKyMgVGhlIGludGVycHJldGVyIHN0ZWFscyB0
aGUgdGFnIHdvcmQgb2YgdGhlIGFyZ3VtZW50IGNvdW50LgorY29uc3QgTExJbnRSZXR1cm5QQyA9
IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXQKKworIyBTdHJpbmcgZmxhZ3MuCitjb25zdCBIYXNo
RmxhZ3M4Qml0QnVmZmVyID0gNjQKKworIyBBbGxvY2F0aW9uIGNvbnN0YW50cworaWYgSlNWQUxV
RTY0CisgICAgY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMQorZWxzZQorICAg
IGNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDMKK2VuZAorCisjIFRoaXMgbXVz
dCBtYXRjaCB3dGYvVmVjdG9yLmgKK2lmIEpTVkFMVUU2NAorICAgIGNvbnN0IFZlY3RvclNpemVP
ZmZzZXQgPSAwCisgICAgY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gOAorZWxzZQorICAgIGNv
bnN0IFZlY3RvclNpemVPZmZzZXQgPSAwCisgICAgY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0g
NAorZW5kCisKKworIyBTb21lIGNvbW1vbiB1dGlsaXRpZXMuCittYWNybyBjcmFzaCgpCisgICAg
c3RvcmVpIDAsIDB4YmJhZGJlZWZbXQorICAgIG1vdmUgMCwgdDAKKyAgICBjYWxsIHQwCitlbmQK
KworbWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAg
ICBhc3NlcnRpb24oLm9rKQorICAgICAgICBjcmFzaCgpCisgICAgLm9rOgorICAgIGVuZAorZW5k
CisKK21hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lz
dGVyKQorICAgIGlmIEFSTXY3CisgICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIK
KyAgICBlbHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVy
CisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorZW5kCisKK21hY3JvIHJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQorICAgIGlmIEFSTXY3Cisg
ICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAor
ICAgICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVyCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAg
IGVuZAorZW5kCisKK21hY3JvIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBpZiBFWEVDVVRJT05fVFJB
Q0lORworICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3RyYWNlKQorICAgIGVuZAorZW5kCisK
K21hY3JvIHNsb3dQYXRoRm9yQ2FsbChhZHZhbmNlLCBzbG93UGF0aCkKKyAgICBjYWxsQ2FsbFNs
b3dQYXRoKAorICAgICAgICBhZHZhbmNlLAorICAgICAgICBzbG93UGF0aCwKKyAgICAgICAgbWFj
cm8gKGNhbGxlZSkKKyAgICAgICAgICAgIGNhbGwgY2FsbGVlCisgICAgICAgICAgICBkaXNwYXRj
aEFmdGVyQ2FsbCgpCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklU
KGluY3JlbWVudCwgYWN0aW9uKQorICAgIGlmIEpJVF9FTkFCTEVECisgICAgICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCB0MAorICAgICAgICBiYWRkaXMgaW5jcmVtZW50LCBDb2RlQmxvY2s6Om1f
bGxpbnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MF0sIC5j
b250aW51ZQorICAgICAgICBhY3Rpb24oKQorICAgIC5jb250aW51ZToKKyAgICBlbmQKK2VuZAor
CittYWNybyBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQorICAgIGNoZWNrU3dpdGNoVG9K
SVQoCisgICAgICAgIDEwLAorICAgICAgICBtYWNybyAoKQorICAgICAgICAgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9yZXBsYWNlKQorICAgICAgICBlbmQpCitlbmQKKworbWFjcm8gYXNzZXJ0Tm90
Q29uc3RhbnQoaW5kZXgpCisgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwgRmlyc3RD
b25zdGFudFJlZ2lzdGVySW5kZXgsIG9rIGVuZCkKK2VuZAorCittYWNybyBmdW5jdGlvbkZvckNh
bGxDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0s
IHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Rhcmdl
dFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6
Om1fY29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQK
KworbWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0
ZXIpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgSlNG
dW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAg
ICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3Rhcmdl
dFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKK2VuZAorCittYWNybyBub3RGdW5jdGlvbkNvZGVC
bG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFy
Z2V0UmVnaXN0ZXIKK2VuZAorCittYWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VS
ZWdpc3RlcikKKyAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCitlbmQK
KworbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCisgICAg
IyBOb3RoaW5nIHRvIGRvIQorZW5kCisKKyMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0
byBleGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgorIyBp
biB0MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCittYWNybyBwcm9sb2d1
ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xv
d1BhdGgpCisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQorICAgIAorICAg
ICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgorICAg
IHN0b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQorICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAg
ICAgIGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQorICAgIGVuZAorICAgIGNvZGVCbG9ja0dl
dHRlcih0MSkKKyAgICBpZiBKSVRfRU5BQkxFRAorICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2Nr
OjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFd
LCAuY29udGludWUKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAg
ICBtb3ZlIHQxLCBjZnIKKyAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgbG9hZHAg
UmV0dXJuUENbY2ZyXSwgdDIKKyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1
cm4odDIpCisgICAgICAgIGptcCB0MAorICAgIC5yZWNvdmVyOgorICAgICAgICBjb2RlQmxvY2tH
ZXR0ZXIodDEpCisgICAgLmNvbnRpbnVlOgorICAgIGVuZAorICAgIGNvZGVCbG9ja1NldHRlcih0
MSkKKyAgICAKKyAgICAjIFNldCB1cCB0aGUgUEMuCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAg
IGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQgorICAgICAgICBtb3ZlIDAs
IFBDCisgICAgZWxzZQorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3Qx
XSwgUEMKKyAgICBlbmQKK2VuZAorCisjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEs
IHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgorIyBNdXN0IGNhbGwgZGlz
cGF0Y2goMCkgYWZ0ZXIgY2FsbGluZyB0aGlzLgorbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlv
bihwcm9maWxlQXJnU2tpcCkKKyAgICBpZiBWQUxVRV9QUk9GSUxFUgorICAgICAgICAjIFByb2Zp
bGUgdGhlIGFyZ3VtZW50cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRv
IGRvIHRoaXMuIFRoaXMKKyAgICAgICAgIyBjb2RlIGlzIHByZXR0eSBob3JyZW5kb3VzIGJlY2F1
c2Ugb2YgdGhlIGRpZmZlcmVuY2UgaW4gb3JkZXJpbmcgYmV0d2VlbgorICAgICAgICAjIGFyZ3Vt
ZW50cyBhbmQgdmFsdWUgcHJvZmlsZXMsIHRoZSBkZXNpcmUgdG8gaGF2ZSBhIHNpbXBsZSBsb29w
LWRvd24tdG8temVybworICAgICAgICAjIGxvb3AsIGFuZCB0aGUgZGVzaXJlIHRvIHVzZSBvbmx5
IHRocmVlIHJlZ2lzdGVycyBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgUEMgYW5kCisgICAgICAgICMg
dGhlIGNvZGUgYmxvY2suIEl0IGlzIGxpa2VseSB0aGF0IHRoaXMgY29kZSBzaG91bGQgYmUgcmV3
cml0dGVuIGluIGEgbW9yZQorICAgICAgICAjIG9wdGltYWwgd2F5IGZvciBhcmNoaXRlY3R1cmVz
IHRoYXQgaGF2ZSBtb3JlIHRoYW4gZml2ZSByZWdpc3RlcnMgYXZhaWxhYmxlCisgICAgICAgICMg
Zm9yIGFyYml0cmFyeSB1c2UgaW4gdGhlIGludGVycHJldGVyLgorICAgICAgICBsb2FkaSBDb2Rl
QmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIHQwCisgICAgICAgIGFkZGkgLXByb2ZpbGVBcmdT
a2lwLCB0MCAjIFVzZSBhZGRpIGJlY2F1c2UgdGhhdCdzIHdoYXQgaGFzIHRoZSBwZWVwaG9sZQor
ICAgICAgICBhc3NlcnQobWFjcm8gKG9rKSBiaWd0ZXEgdDAsIDAsIG9rIGVuZCkKKyAgICAgICAg
YnRpeiB0MCwgLmFyZ3VtZW50UHJvZmlsZURvbmUKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjpt
X2FyZ3VtZW50VmFsdWVQcm9maWxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0MV0sIHQzCisgICAg
ICAgIG11bGkgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDAsIHQyICMgQWFhYWFoaGhoISBOZWVkIHN0
cmVuZ3RoIHJlZHVjdGlvbiEKKyAgICAgICAgbmVnaSB0MAorICAgICAgICBsc2hpZnRpIDMsIHQw
CisgICAgICAgIGFkZHAgdDIsIHQzCisgICAgLmFyZ3VtZW50UHJvZmlsZUxvb3A6CisgICAgICAg
IGlmIEpTVkFMVUU2NAorICAgICAgICAgICAgbG9hZHAgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCAt
IHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKKyAgICAgICAgICAgIHN1YnAgc2l6ZW9m
IFZhbHVlUHJvZmlsZSwgdDMKKyAgICAgICAgICAgIHN0b3JlcCB0MiwgcHJvZmlsZUFyZ1NraXAg
KiBzaXplb2YgVmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHNbdDNdCisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRhZ09mZnNl
dCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBzdWJw
IHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQzCisgICAgICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVB
cmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsg
VGFnT2Zmc2V0W3QzXQorICAgICAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5
bG9hZE9mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAg
ICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZh
bHVlUHJvZmlsZTo6bV9idWNrZXRzICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICAgICAgZW5kCisg
ICAgICAgIGJhZGRpbnogOCwgdDAsIC5hcmd1bWVudFByb2ZpbGVMb29wCisgICAgLmFyZ3VtZW50
UHJvZmlsZURvbmU6CisgICAgZW5kCisgICAgICAgIAorICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0
LgorICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAorICAg
IGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QxXSwgdDIKKyAgICBsb2FkcCBKU0dsb2Jh
bERhdGE6OmludGVycHJldGVyW3QyXSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdp
c3RlckZpbGUgZnJvbSB0aGUgSklUU3RhY2tGcmFtZQorICAgIGxzaGlmdGkgMywgdDAKKyAgICBh
ZGRwIHQwLCBjZnIsIHQwCisgICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsg
UmVnaXN0ZXJGaWxlOjptX2VuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSworCisgICAgIyBTdGFj
ayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKKy5zdGFja0hlaWdodE9LOgor
ZW5kCisKK21hY3JvIGFsbG9jYXRlQmFzaWNKU09iamVjdChzaXplQ2xhc3NJbmRleCwgY2xhc3NJ
bmZvT2Zmc2V0LCBzdHJ1Y3R1cmUsIHJlc3VsdCwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBzbG93Q2Fz
ZSkKKyAgICBpZiBBTFdBWVNfQUxMT0NBVEVfU0xPVworICAgICAgICBqbXAgc2xvd0Nhc2UKKyAg
ICBlbHNlCisgICAgICAgIGNvbnN0IG9mZnNldE9mTXlTaXplQ2xhc3MgPQorICAgICAgICAgICAg
SlNHbG9iYWxEYXRhOjpoZWFwICsKKyAgICAgICAgICAgIEhlYXA6Om1fb2JqZWN0U3BhY2UgKwor
ICAgICAgICAgICAgTWFya2VkU3BhY2U6Om1fbm9ybWFsU3BhY2UgKworICAgICAgICAgICAgTWFy
a2VkU3BhY2U6OlN1YnNwYWNlOjpwcmVjaXNlQWxsb2NhdG9ycyArCisgICAgICAgICAgICBzaXpl
Q2xhc3NJbmRleCAqIHNpemVvZiBNYXJrZWRBbGxvY2F0b3IKKyAgICAgICAgCisgICAgICAgICMg
RklYTUU6IHdlIGNhbiBnZXQgdGhlIGdsb2JhbCBkYXRhIGluIG9uZSBsb2FkIGZyb20gdGhlIHN0
YWNrLgorICAgICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgc2NyYXRjaDEKKyAgICAgICAgbG9h
ZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbc2NyYXRjaDFdLCBzY3JhdGNoMQorICAgICAgICAK
KyAgICAgICAgIyBHZXQgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuICAgIAorICAgICAg
ICBsb2FkcCBvZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJl
ZUNlbGxbc2NyYXRjaDFdLCByZXN1bHQKKyAgICAgICAgYnRweiByZXN1bHQsIHNsb3dDYXNlCisg
ICAgICAgIAorICAgICAgICAjIFJlbW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4K
KyAgICAgICAgbG9hZHAgW3Jlc3VsdF0sIHNjcmF0Y2gyCisgICAgICAgIHN0b3JlcCBzY3JhdGNo
Miwgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxs
W3NjcmF0Y2gxXQorICAgIAorICAgICAgICAjIEluaXRpYWxpemUgdGhlIG9iamVjdC4KKyAgICAg
ICAgbG9hZHAgY2xhc3NJbmZvT2Zmc2V0W3NjcmF0Y2gxXSwgc2NyYXRjaDIKKyAgICAgICAgc3Rv
cmVwIHNjcmF0Y2gyLCBbcmVzdWx0XQorICAgICAgICBzdG9yZXAgc3RydWN0dXJlLCBKU0NlbGw6
Om1fc3RydWN0dXJlW3Jlc3VsdF0KKyAgICAgICAgc3RvcmVwIDAsIEpTT2JqZWN0OjptX2luaGVy
aXRvcklEW3Jlc3VsdF0KKyAgICAgICAgYWRkcCBzaXplb2YgSlNPYmplY3QsIHJlc3VsdCwgc2Ny
YXRjaDEKKyAgICAgICAgc3RvcmVwIHNjcmF0Y2gxLCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3Jh
Z2VbcmVzdWx0XQorICAgIGVuZAorZW5kCisKK21hY3JvIGRvUmV0dXJuKCkKKyAgICBsb2FkcCBS
ZXR1cm5QQ1tjZnJdLCB0MgorICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgorICAgIHJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgIHJldAorZW5kCisKKworIyBJ
bmRpY2F0ZSB0aGUgYmVnaW5uaW5nIG9mIExMSW50LgorX2xsaW50X2JlZ2luOgorICAgIGNyYXNo
KCkKKworCitfbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShub3RGdW5jdGlv
bkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRy
eV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGlu
dF9ldmFsX3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVy
LCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3Ry
YWNlX3Byb2xvZ3VlKQorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X2Z1bmN0aW9uX2Zvcl9j
YWxsX3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRl
ciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9y
X2NhbGwsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY2FsbCkKKy5mdW5jdGlv
bkZvckNhbGxCZWdpbjoKKyAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDApCisgICAgZGlzcGF0
Y2goMCkKKyAgICAKKworX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWU6Cisg
ICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9u
Q29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3Qs
IF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY29uc3RydWN0KQorLmZ1bmN0aW9u
Rm9yQ29uc3RydWN0QmVnaW46CisgICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigxKQorICAgIGRp
c3BhdGNoKDApCisgICAgCisKK19sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjazoK
KyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29k
ZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5Q2hl
Y2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9jYWxsKQorICAgIGZ1bmN0aW9uQXJpdHlD
aGVjayguZnVuY3Rpb25Gb3JDYWxsQmVnaW4sIF9sbGludF9zbG93X3BhdGhfY2FsbF9hcml0eUNo
ZWNrKQorCisKK19sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrOgorICAg
IHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNv
ZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2Fy
aXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9jb25zdHJ1Y3QpCisgICAgZnVu
Y3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNvbnN0cnVjdEJlZ2luLCBfbGxpbnRfc2xvd19w
YXRoX2NvbnN0cnVjdF9hcml0eUNoZWNrKQorCisKKyMgVmFsdWUtcmVwcmVzZW50YXRpb24tc3Bl
Y2lmaWMgY29kZS4KIGlmIEpTVkFMVUU2NAogICAgIGluY2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRl
cjY0CiBlbHNlCiAgICAgaW5jbHVkZSBMb3dMZXZlbEludGVycHJldGVyMzJfNjQKIGVuZAogCisK
KyMgVmFsdWUtcmVwcmVzZW50YXRpb24tYWdub3N0aWMgY29kZS4KK19sbGludF9vcF9uZXdfYXJy
YXk6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25ld19hcnJheSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9uZXdfYXJyYXlf
YnVmZmVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29w
X25ld19yZWdleHA6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX25ld19yZWdleHApCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bf
bGVzczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfbGVzcykKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9sZXNzZXE6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3Nl
cSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9ncmVhdGVyOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVyKQorICAg
IGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX2dyZWF0ZXJlcToKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcmVxKQorICAgIGRp
c3BhdGNoKDQpCisKKworX2xsaW50X29wX21vZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbW9kKQorICAgIGRpc3BhdGNoKDQpCisKKwor
X2xsaW50X29wX3R5cGVvZjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfdHlwZW9mKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29w
X2lzX3VuZGVmaW5lZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfaXNfdW5kZWZpbmVkKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50
X29wX2lzX2Jvb2xlYW46CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2lzX2Jvb2xlYW4pCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRf
b3BfaXNfbnVtYmVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9pc19udW1iZXIpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bf
aXNfc3RyaW5nOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9pc19zdHJpbmcpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNf
b2JqZWN0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9pc19vYmplY3QpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfZnVu
Y3Rpb246CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2lzX2Z1bmN0aW9uKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2luOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9p
bikKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9yZXNvbHZlOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlKQorICAg
IGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX3Jlc29sdmVfc2tpcDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9za2lwKQor
ICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX3Jlc29sdmVfYmFzZToKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9iYXNl
KQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHM6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bf
cmVzb2x2ZV93aXRoX2Jhc2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfd2l0aF9iYXNlKQorICAgIGRpc3BhdGNoKDUpCisK
KworX2xsaW50X29wX3Jlc29sdmVfd2l0aF90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfdGhpcykKKyAgICBk
aXNwYXRjaCg1KQorCisKK19sbGludF9vcF9kZWxfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKKyAgICBkaXNw
YXRjaCg0KQorCisKK19sbGludF9vcF9kZWxfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxfYnlfdmFsKQorICAgIGRpc3Bh
dGNoKDQpCisKKworX2xsaW50X29wX3B1dF9ieV9pbmRleDoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X2luZGV4KQorICAgIGRp
c3BhdGNoKDQpCisKKworX2xsaW50X29wX3B1dF9nZXR0ZXJfc2V0dGVyOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfZ2V0dGVyX3Nl
dHRlcikKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9qbXBfc2NvcGVzOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9qbXBfc2Nv
cGVzKQorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X29wX2xvb3BfaWZfdHJ1ZToKKyAgICBu
b3AKK19sbGludF9vcF9qdHJ1ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAganVtcFRydWVP
ckZhbHNlKAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRpbnogdmFsdWUsIHRhcmdl
dCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfanRydWUpCisKKworX2xsaW50X29wX2xv
b3BfaWZfZmFsc2U6CisgICAgbm9wCitfbGxpbnRfb3BfamZhbHNlOgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBqdW1wVHJ1ZU9yRmFsc2UoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0
KSBidGl6IHZhbHVlLCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pmYWxz
ZSkKKworCitfbGxpbnRfb3BfbG9vcF9pZl9sZXNzOgorICAgIG5vcAorX2xsaW50X29wX2psZXNz
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHQgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQs
CisgICAgICAgIF9sbGludF9zbG93X3BhdGhfamxlc3MpCisKKworX2xsaW50X29wX2pubGVzczoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0LCB0YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3RlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQg
ZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzcykKKworCitfbGxpbnRfb3BfbG9v
cF9pZl9ncmVhdGVyOgorICAgIG5vcAorX2xsaW50X29wX2pncmVhdGVyOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdl
dCkgYmlndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJp
Z2h0LCB0YXJnZXQpIGJkZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGlu
dF9zbG93X3BhdGhfamdyZWF0ZXIpCisKKworX2xsaW50X29wX2puZ3JlYXRlcjoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0
YXJnZXQpIGJpbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHRlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAg
ICAgICBfbGxpbnRfc2xvd19wYXRoX2puZ3JlYXRlcikKKworCitfbGxpbnRfb3BfbG9vcF9pZl9s
ZXNzZXE6CisgICAgbm9wCitfbGxpbnRfb3Bfamxlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHRl
cSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0
YXJnZXQpIGJkbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9qbGVzc2VxKQorCisKK19sbGludF9vcF9qbmxlc3NlcToKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQp
IGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgdGFyZ2V0KSBiZGd0dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGlu
dF9zbG93X3BhdGhfam5sZXNzZXEpCisKKworX2xsaW50X29wX2xvb3BfaWZfZ3JlYXRlcmVxOgor
ICAgIG5vcAorX2xsaW50X29wX2pncmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVm
dCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0
KSBiZGd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3Bh
dGhfamdyZWF0ZXJlcSkKKworCitfbGxpbnRfb3Bfam5ncmVhdGVyZXE6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0
KSBiaWx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmln
aHQsIHRhcmdldCkgYmRsdHVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxp
bnRfc2xvd19wYXRoX2puZ3JlYXRlcmVxKQorCisKK19sbGludF9vcF9sb29wX2hpbnQ6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKKyAgICBkaXNw
YXRjaCgxKQorCisKK19sbGludF9vcF9zd2l0Y2hfc3RyaW5nOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hfc3RyaW5nKQorICAg
IGRpc3BhdGNoKDApCisKKworX2xsaW50X29wX25ld19mdW5jX2V4cDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmNfZXhwKQor
ICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2NhbGw6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NhbGwpCisKKworX2xsaW50X29wX2NvbnN0
cnVjdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZG9DYWxsKF9sbGludF9zbG93X3BhdGhf
Y29uc3RydWN0KQorCisKK19sbGludF9vcF9jYWxsX3ZhcmFyZ3M6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfdmFyYXJn
cykKKworCitfbGxpbnRfb3BfY2FsbF9ldmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAK
KyAgICAjIEV2YWwgaXMgZXhlY3V0ZWQgaW4gb25lIG9mIHR3byBtb2RlczoKKyAgICAjCisgICAg
IyAxKSBXZSBmaW5kIHRoYXQgd2UncmUgcmVhbGx5IGludm9raW5nIGV2YWwoKSBpbiB3aGljaCBj
YXNlIHRoZQorICAgICMgICAgZXhlY3V0aW9uIGlzIHBlcmZvbWVkIGVudGlyZWx5IGluc2lkZSB0
aGUgc2xvd19wYXRoLCBhbmQgaXQKKyAgICAjICAgIHJldHVybnMgdGhlIFBDIG9mIGEgZnVuY3Rp
b24gdGhhdCBqdXN0IHJldHVybnMgdGhlIHJldHVybiB2YWx1ZQorICAgICMgICAgdGhhdCB0aGUg
ZXZhbCByZXR1cm5lZC4KKyAgICAjCisgICAgIyAyKSBXZSBmaW5kIHRoYXQgd2UncmUgaW52b2tp
bmcgc29tZXRoaW5nIGNhbGxlZCBldmFsKCkgdGhhdCBpcyBub3QKKyAgICAjICAgIHRoZSByZWFs
IGV2YWwuIFRoZW4gdGhlIHNsb3dfcGF0aCByZXR1cm5zIHRoZSBQQyBvZiB0aGUgdGhpbmcgdG8K
KyAgICAjICAgIGNhbGwsIGFuZCB3ZSBjYWxsIGl0LgorICAgICMKKyAgICAjIFRoaXMgYWxsb3dz
IHVzIHRvIGhhbmRsZSB0d28gY2FzZXMsIHdoaWNoIHdvdWxkIHJlcXVpcmUgYSB0b3RhbCBvZgor
ICAgICMgdXAgdG8gZm91ciBwaWVjZXMgb2Ygc3RhdGUgdGhhdCBjYW5ub3QgYmUgZWFzaWx5IHBh
Y2tlZCBpbnRvIHR3bworICAgICMgcmVnaXN0ZXJzIChDIGZ1bmN0aW9ucyBjYW4gcmV0dXJuIHVw
IHRvIHR3byByZWdpc3RlcnMsIGVhc2lseSk6CisgICAgIworICAgICMgLSBUaGUgY2FsbCBmcmFt
ZSByZWdpc3Rlci4gVGhpcyBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4gbW9kaWZpZWQKKyAgICAj
ICAgYnkgdGhlIHNsb3dfcGF0aCwgYnV0IHRoZSBjb252ZW50aW9uIGlzIHRoYXQgaXQgcmV0dXJu
cyBpdC4gSXQncyBub3QKKyAgICAjICAgdG90YWxseSBjbGVhciBpZiB0aGF0J3MgbmVjZXNzYXJ5
LCBzaW5jZSB0aGUgY2ZyIGlzIGNhbGxlZSBzYXZlLgorICAgICMgICBCdXQgdGhhdCdzIG91ciBz
dHlsZSBpbiB0aGlzIGhlcmUgaW50ZXJwcmV0ZXIgc28gd2Ugc3RpY2sgd2l0aCBpdC4KKyAgICAj
CisgICAgIyAtIEEgYml0IHRvIHNheSBpZiB0aGUgc2xvd19wYXRoIHN1Y2Nlc3NmdWxseSBleGVj
dXRlZCB0aGUgZXZhbCBhbmQgaGFzCisgICAgIyAgIHRoZSByZXR1cm4gdmFsdWUsIG9yIGRpZCBu
b3QgZXhlY3V0ZSB0aGUgZXZhbCBidXQgaGFzIGEgUEMgZm9yIHVzCisgICAgIyAgIHRvIGNhbGwu
CisgICAgIworICAgICMgLSBFaXRoZXI6CisgICAgIyAgIC0gVGhlIEpTIHJldHVybiB2YWx1ZSAo
dHdvIHJlZ2lzdGVycyksIG9yCisgICAgIworICAgICMgICAtIFRoZSBQQyB0byBjYWxsLgorICAg
ICMKKyAgICAjIEl0IHR1cm5zIG91dCB0byBiZSBlYXNpZXIgdG8ganVzdCBhbHdheXMgaGF2ZSB0
aGlzIHJldHVybiB0aGUgY2ZyCisgICAgIyBhbmQgYSBQQyB0byBjYWxsLCBhbmQgdGhhdCBQQyBt
YXkgYmUgYSBkdW1teSB0aHVuayB0aGF0IGp1c3QKKyAgICAjIHJldHVybnMgdGhlIEpTIHZhbHVl
IHRoYXQgdGhlIGV2YWwgcmV0dXJuZWQuCisgICAgCisgICAgc2xvd1BhdGhGb3JDYWxsKDQsIF9s
bGludF9zbG93X3BhdGhfY2FsbF9ldmFsKQorCisKK19sbGludF9nZW5lcmljX3JldHVybl9wb2lu
dDoKKyAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCisKKworX2xsaW50X29wX3N0cmNhdDoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3RyY2F0
KQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX21ldGhvZF9jaGVjazoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgIyBXZSBpZ25vcmUgbWV0aG9kIGNoZWNrcyBhbmQgdXNlIG5vcm1h
bCBnZXRfYnlfaWQgb3B0aW1pemF0aW9ucy4KKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9v
cF9nZXRfcG5hbWVzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9nZXRfcG5hbWVzKQorICAgIGRpc3BhdGNoKDApICMgVGhlIHNsb3dfcGF0
aCBlaXRoZXIgYWR2YW5jZXMgdGhlIFBDIG9yIGp1bXBzIHVzIHRvIHNvbWV3aGVyZSBlbHNlLgor
CisKK19sbGludF9vcF9wdXNoX3Njb3BlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX3Njb3BlKQorICAgIGRpc3BhdGNoKDIpCisK
KworX2xsaW50X29wX3BvcF9zY29wZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9wX3Njb3BlKQorICAgIGRpc3BhdGNoKDEpCisKKwor
X2xsaW50X29wX3B1c2hfbmV3X3Njb3BlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX25ld19zY29wZSkKKyAgICBkaXNwYXRjaCg0
KQorCisKK19sbGludF9vcF90aHJvdzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3cpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxp
bnRfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvd19yZWZlcmVuY2VfZXJyb3IpCisgICAg
ZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZVtzcF0sIHQwCisgICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpCisub3BQcm9m
aWxlV2lsbENhbGxEb25lOgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX3Byb2ZpbGVf
ZGlkX2NhbGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6
OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZVtzcF0sIHQwCisgICAgYnRweiBbdDBdLCAub3BQcm9m
aWxlV2lsbENhbGxEb25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmls
ZV9kaWRfY2FsbCkKKy5vcFByb2ZpbGVEaWRDYWxsRG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisK
K19sbGludF9vcF9kZWJ1ZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZGVidWcpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfbmF0
aXZlX2NhbGxfdHJhbXBvbGluZToKKyAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVj
dXRhYmxlOjptX2Z1bmN0aW9uKQorCisKK19sbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xp
bmU6CisgICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0YWJsZTo6bV9jb25zdHJ1
Y3RvcikKKworCisjIExhc3RseSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91
Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KKyMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQg
bmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKKyMg
YXMgbXVjaC4KKworbWFjcm8gbm90U3VwcG9ydGVkKCkKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAor
ICAgICAgICBjcmFzaCgpCisgICAgZWxzZQorICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2
ZXIgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCisgICAgICAg
ICMgZW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMu
IElmIG11bHRpcGxlCisgICAgICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBz
aG91bGQgcGljayB0aGUgb25lIHRoYXQgaXMgbW9zdAorICAgICAgICAjIGxpa2VseSByZXN1bHQg
aW4gZXhlY3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCisg
ICAgICAgICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3Rl
ZCBpbi4gKEJyZWFrIGlzIGludDMKKyAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRl
LCBhbmQgYmtwdCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRlcy4pCisgICAgICAgIGJyZWFrCisg
ICAgZW5kCitlbmQKKworX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6CisgICAgbm90U3VwcG9y
dGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQor
CitfbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQor
CitfbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQor
CitfbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisK
K19sbGludF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxp
bnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxp
bnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxp
bnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGlu
dF9vcF9nZXRfYnlfaWRfcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dl
dF9ieV9pZF9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfc3RyaW5n
X2xlbmd0aDoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVy
aWM6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgor
ICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKKyAg
ICBub3RTdXBwb3J0ZWQoKQorCisKKyMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KK19sbGlu
dF9lbmQ6CisgICAgY3Jhc2goKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9hcm12Ny5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9hcm12Ny5yYgkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXJtdjcucmIJKHdvcmtpbmcgY29weSkKQEAgLTMzLDI5ICszMyw5IEBAIGNs
YXNzIE5vZGUKIGVuZAogCiBjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCi0gICAg
ZGVmIGluaXRpYWxpemUobmFtZSkKLSAgICAgICAgQG5hbWUgPSBuYW1lCi0gICAgZW5kCi0gICAg
CiAgICAgZGVmIGFybVY3T3BlcmFuZAogICAgICAgICBAbmFtZQogICAgIGVuZAotICAgIAotICAg
IGRlZiBhZGRyZXNzPwotICAgICAgICBmYWxzZQotICAgIGVuZAotICAgIAotICAgIGRlZiBsYWJl
bD8KLSAgICAgICAgZmFsc2UKLSAgICBlbmQKLSAgICAKLSAgICBkZWYgaW1tZWRpYXRlPwotICAg
ICAgICBmYWxzZQotICAgIGVuZAotICAgIAotICAgIGRlZiByZWdpc3Rlcj8KLSAgICAgICAgdHJ1
ZQotICAgIGVuZAogZW5kCiAKIEFSTXY3X0VYVFJBX0dQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5l
dygicjkiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjgiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygi
cjMiKV0KQEAgLTIyOCw3ICsyMDgsNyBAQCBkZWYgYXJtVjdMb3dlclNoaWZ0T3BzKGxpc3QpCiAg
ICAgICAgIHwgbm9kZSB8CiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAg
ICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gImxzaGlmdGkiLCAicnNo
aWZ0aSIsICJ1cnNoaWZ0aSIKKyAgICAgICAgICAgIHdoZW4gImxzaGlmdGkiLCAicnNoaWZ0aSIs
ICJ1cnNoaWZ0aSIsICJsc2hpZnRwIiwgInJzaGlmdHAiLCAidXJzaGlmdHAiCiAgICAgICAgICAg
ICAgICAgaWYgbm9kZS5vcGVyYW5kcy5zaXplID09IDIKICAgICAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW2Fy
bVY3U2FuaXRpemVTaGlmdChub2RlLm9wZXJhbmRzWzBdLCBuZXdMaXN0KSwgbm9kZS5vcGVyYW5k
c1sxXV0pCiAgICAgICAgICAgICAgICAgZWxzZQpAQCAtNDY5LDcgKzQ0OSw3IEBAIGRlZiBhcm1W
N0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlcyhsaXN0KQogICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlLmFybVY3TG93ZXJNYWxmb3JtZWRJbW1l
ZGlhdGVzUmVjdXJzZShuZXdMaXN0KQogICAgICAgICAgICAgICAgIGVuZAotICAgICAgICAgICAg
d2hlbiAibXVsaSIKKyAgICAgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIKICAgICAgICAgICAg
ICAgICBpZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQogICAgICAgICAgICAgICAg
ICAgICB0bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCiAgICAgICAgICAgICAgICAgICAg
IG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9k
ZS5vcGVyYW5kc1swXSwgdG1wXSkKQEAgLTUzNSw5ICs1MTUsOSBAQCBkZWYgYXJtVjdMb3dlck1p
c3BsYWNlZEFkZHJlc3NlcyhsaXN0KQogICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9u
CiAgICAgICAgICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KICAgICAgICAgICAgIGNhc2Ugbm9k
ZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRp
IiwgImFuZHAiLCAibHNoaWZ0aSIsICJtdWxpIiwgIm5lZ2kiLCAibm90aSIsICJvcmkiLCAib3Jp
cyIsCi0gICAgICAgICAgICAgICAgIm9ycCIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInN1Ymki
LCAic3VicCIsICJzdWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJpLywgL15icC8sIC9eYnRpLywK
LSAgICAgICAgICAgICAgICAvXmJ0cC8sIC9eY2kvLCAvXmNwLywgL150aS8KKyAgICAgICAgICAg
IHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRpIiwgImFuZHAiLCAibHNoaWZ0aSIs
ICJsc2hpZnRwIiwgIm11bGkiLCAibXVscCIsICJuZWdpIiwKKyAgICAgICAgICAgICAgICAibm90
aSIsICJvcmkiLCAib3JpcyIsICJvcnAiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJyc2hpZnRw
IiwgInVyc2hpZnRwIiwgInN1YmkiLAorICAgICAgICAgICAgICAgICJzdWJwIiwgInN1YmlzIiwg
InhvcmkiLCAieG9ycCIsIC9eYmkvLCAvXmJwLywgL15idGkvLCAvXmJ0cC8sIC9eY2kvLCAvXmNw
LywgL150aS8KICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2Rl
LmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZS5vcGNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXJtVjdBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRz
LCAiaSIpKQpAQCAtNjQ5LDcgKzYyOSw3IEBAIGVuZAogIwogCiBjbGFzcyBTZXF1ZW5jZQotICAg
IGRlZiBsb3dlckFSTXY3CisgICAgZGVmIGdldE1vZGlmaWVkTGlzdEFSTXY3CiAgICAgICAgIG15
TGlzdCA9IEBsaXN0CiAgICAgICAgIAogICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIHdpbGwgb25s
eSBzZWUgaW5zdHJ1Y3Rpb25zIGFuZCBsYWJlbHMuCkBAIC02NzMsMTAgKzY1Myw4IEBAIGNsYXNz
IFNlcXVlbmNlCiAgICAgICAgIG15TGlzdCA9IGFybVY3TG93ZXJSZWdpc3RlclJldXNlKG15TGlz
dCkKICAgICAgICAgbXlMaXN0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhteUxpc3Qs
IDpncHIsIEFSTXY3X0VYVFJBX0dQUlMpCiAgICAgICAgIG15TGlzdCA9IGFzc2lnblJlZ2lzdGVy
c1RvVGVtcG9yYXJpZXMobXlMaXN0LCA6ZnByLCBBUk12N19FWFRSQV9GUFJTKQotICAgICAgICBt
eUxpc3QuZWFjaCB7Ci0gICAgICAgICAgICB8IG5vZGUgfAotICAgICAgICAgICAgbm9kZS5sb3dl
cigiQVJNdjciKQotICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbXlMaXN0CiAg
ICAgZW5kCiBlbmQKIApAQCAtNzkyLDEzICs3NzAsMTMgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAg
ICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoIm9ycnMiLCAib3JycyIsIG9wZXJhbmRzKQogICAg
ICAgICB3aGVuICJ4b3JpIiwgInhvcnAiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJl
b3JzIiwgImVvciIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJsc2hpZnRpIgorICAgICAgICB3
aGVuICJsc2hpZnRpIiwgImxzaGlmdHAiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJs
c2xzIiwgImxzbHMiLCBvcGVyYW5kcykKLSAgICAgICAgd2hlbiAicnNoaWZ0aSIKKyAgICAgICAg
d2hlbiAicnNoaWZ0aSIsICJyc2hpZnRwIgogICAgICAgICAgICAgZW1pdEFybVY3Q29tcGFjdCgi
YXNycyIsICJhc3JzIiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gInVyc2hpZnRpIgorICAgICAg
ICB3aGVuICJ1cnNoaWZ0aSIsICJ1cnNoaWZ0cCIKICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBh
Y3QoImxzcnMiLCAibHNycyIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJtdWxpIgorICAgICAg
ICB3aGVuICJtdWxpIiwgIm11bHAiCiAgICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDIg
b3Igb3BlcmFuZHNbMF0gPT0gb3BlcmFuZHNbMl0gb3Igb3BlcmFuZHNbMV0gPT0gb3BlcmFuZHNb
Ml0KICAgICAgICAgICAgICAgICBlbWl0QXJtVjcoIm11bHMiLCBvcGVyYW5kcykKICAgICAgICAg
ICAgIGVsc2UKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIJKHJl
dmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5y
Ygkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2Nyw3IEBAIEZpbGUub3BlbihvdXRwdXRGbG5t
LCAidyIpIHsKICAgICAgICAgZm9yU2V0dGluZ3MoY29tcHV0ZVNldHRpbmdzQ29tYmluYXRpb25z
KGFzdClbY29uZmlnSW5kZXhdLCBhc3QpIHsKICAgICAgICAgICAgIHwgY29uY3JldGVTZXR0aW5n
cywgbG93TGV2ZWxBU1QsIGJhY2tlbmQgfAogICAgICAgICAgICAgbG93TGV2ZWxBU1QgPSBsb3dM
ZXZlbEFTVC5yZXNvbHZlKCpidWlsZE9mZnNldHNNYXAobG93TGV2ZWxBU1QsIG9mZnNldHNMaXN0
KSkKKyAgICAgICAgICAgIGxvd0xldmVsQVNULnZhbGlkYXRlCiAgICAgICAgICAgICBlbWl0Q29k
ZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNldHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCkg
ewogICAgICAgICAgICAgICAgICRhc20uaW5Bc20gewogICAgICAgICAgICAgICAgICAgICBsb3dM
ZXZlbEFTVC5sb3dlcihiYWNrZW5kKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYXN0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2FzdC5yYgkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXN0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zODMsNiArMzgzLDE1NyBAQCBjbGFz
cyBOZWdJbW1lZGlhdGUgPCBOb2RlCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgT3JJbW1lZGlhdGVz
IDwgTm9kZQorICAgIGF0dHJfcmVhZGVyIDpsZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5p
dGlhbGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCByaWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdp
bikKKyAgICAgICAgQGxlZnQgPSBsZWZ0CisgICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5k
CisgICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVu
ZAorICAgIAorICAgIGRlZiBtYXBDaGlsZHJlbgorICAgICAgICBPckltbWVkaWF0ZXMubmV3KGNv
ZGVPcmlnaW4sICh5aWVsZCBAbGVmdCksICh5aWVsZCBAcmlnaHQpKQorICAgIGVuZAorICAgIAor
ICAgIGRlZiBkdW1wCisgICAgICAgICIoI3tsZWZ0LmR1bXB9IHwgI3tyaWdodC5kdW1wfSkiCisg
ICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisg
ICAgCisgICAgZGVmIGxhYmVsPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRl
ZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0
ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5kCitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRlcyA8
IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRp
YWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4p
CisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVuZAor
ICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQK
KyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgQW5kSW1tZWRpYXRlcy5uZXcoY29k
ZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwgKHlpZWxkIEByaWdodCkpCisgICAgZW5kCisgICAgCisg
ICAgZGVmIGR1bXAKKyAgICAgICAgIigje2xlZnQuZHVtcH0gJiAje3JpZ2h0LmR1bXB9KSIKKyAg
ICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAg
ICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVm
IGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdpc3Rl
cj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKK2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVzIDwg
Tm9kZQorICAgIGF0dHJfcmVhZGVyIDpsZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5pdGlh
bGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCByaWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikK
KyAgICAgICAgQGxlZnQgPSBsZWZ0CisgICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5kCisg
ICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVuZAor
ICAgIAorICAgIGRlZiBtYXBDaGlsZHJlbgorICAgICAgICBYb3JJbW1lZGlhdGVzLm5ldyhjb2Rl
T3JpZ2luLCAoeWllbGQgQGxlZnQpLCAoeWllbGQgQHJpZ2h0KSkKKyAgICBlbmQKKyAgICAKKyAg
ICBkZWYgZHVtcAorICAgICAgICAiKCN7bGVmdC5kdW1wfSBeICN7cmlnaHQuZHVtcH0pIgorICAg
IGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAg
IAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYg
aW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVy
PworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEJpdG5vdEltbWVkaWF0ZSA8
IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6Y2hpbGQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShj
b2RlT3JpZ2luLCBjaGlsZCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGNo
aWxkID0gY2hpbGQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAgW0Bj
aGlsZF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgQml0bm90
SW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGNoaWxkKSkKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgZHVtcAorICAgICAgICAiKH4je0BjaGlsZC5kdW1wfSkiCisgICAgZW5kCisgICAg
CisgICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVm
IGxhYmVsPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/
CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAg
IGZhbHNlCisgICAgZW5kCitlbmQKKwogY2xhc3MgUmVnaXN0ZXJJRCA8IE5vQ2hpbGRyZW4KICAg
ICBhdHRyX3JlYWRlciA6bmFtZQogICAgIApAQCAtNDU5LDYgKzYxMCwyOCBAQCBjbGFzcyBGUFJl
Z2lzdGVySUQgPCBOb0NoaWxkcmVuCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU3BlY2lhbFJlZ2lz
dGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiBpbml0aWFsaXplKG5hbWUpCisgICAgICAgIEBuYW1l
ID0gbmFtZQorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQor
ICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAg
ICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAg
IGRlZiByZWdpc3Rlcj8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorZW5kCisKIGNsYXNzIFZhcmlh
YmxlIDwgTm9DaGlsZHJlbgogICAgIGF0dHJfcmVhZGVyIDpuYW1lCiAgICAgCkBAIC00NzksNiAr
NjUyLDEwIEBAIGNsYXNzIFZhcmlhYmxlIDwgTm9DaGlsZHJlbgogICAgIGRlZiBkdW1wCiAgICAg
ICAgIG5hbWUKICAgICBlbmQKKyAgICAKKyAgICBkZWYgaW5zcGVjdAorICAgICAgICAiPHZhcmlh
YmxlICN7bmFtZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfT4iCisgICAgZW5kCiBlbmQKIAogY2xh
c3MgQWRkcmVzcyA8IE5vZGUKQEAgLTc1Nyw2ICs5MzQsMTAgQEAgY2xhc3MgTGFiZWxSZWZlcmVu
Y2UgPCBOb2RlCiAgICAgZGVmIGxhYmVsPwogICAgICAgICB0cnVlCiAgICAgZW5kCisgICAgCisg
ICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKIGVuZAogCiBjbGFzcyBM
b2NhbExhYmVsUmVmZXJlbmNlIDwgTm9DaGlsZHJlbgpAQCAtNzkwLDYgKzk3MSwxMCBAQCBjbGFz
cyBMb2NhbExhYmVsUmVmZXJlbmNlIDwgTm9DaGlsZHJlbgogICAgIGRlZiBsYWJlbD8KICAgICAg
ICAgdHJ1ZQogICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZhbHNl
CisgICAgZW5kCiBlbmQKIAogY2xhc3MgU2VxdWVuY2UgPCBOb2RlCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24gMTA5OTU4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDggKzQ4LDEyIEBAIEJBQ0tFTkRfUEFUVEVSTiA9IFJlZ2V4cC5uZXcoJ1xc
QSgnICsgQkEKIAogY2xhc3MgTm9kZQogICAgIGRlZiBsb3dlcihuYW1lKQotICAgICAgICAkYWN0
aXZlQmFja2VuZCA9IG5hbWUKLSAgICAgICAgc2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAg
YmVnaW4KKyAgICAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQorICAgICAgICAgICAgc2Vu
ZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAgcmVzY3VlID0+IGUKKyAgICAgICAgICAgIHJhaXNl
ICJHb3QgZXJyb3IgI3tlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKICAg
ICBlbmQKIGVuZAogCkBAIC04Nyw3ICs5MSwxMyBAQCBlbmQKIGNsYXNzIFNlcXVlbmNlCiAgICAg
ZGVmIGxvd2VyKG5hbWUpCiAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQotICAgICAgICBp
ZiByZXNwb25kX3RvPyAibG93ZXIje25hbWV9IgorICAgICAgICBpZiByZXNwb25kX3RvPyAiZ2V0
TW9kaWZpZWRMaXN0I3tuYW1lfSIKKyAgICAgICAgICAgIG5ld0xpc3QgPSBzZW5kKCJnZXRNb2Rp
ZmllZExpc3Qje25hbWV9IikKKyAgICAgICAgICAgIG5ld0xpc3QuZWFjaCB7CisgICAgICAgICAg
ICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgICAgICBub2RlLmxvd2VyKG5hbWUpCisgICAgICAg
ICAgICB9CisgICAgICAgIGVsc2lmIHJlc3BvbmRfdG8/ICJsb3dlciN7bmFtZX0iCiAgICAgICAg
ICAgICBzZW5kKCJsb3dlciN7bmFtZX0iKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBAbGlz
dC5lYWNoIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0
aW9ucy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIJKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAtMzAsMTIgKzMw
LDE1IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJhZGRpIiwKICAgICAgImFuZGkiLAog
ICAgICAibHNoaWZ0aSIsCisgICAgICJsc2hpZnRwIiwKICAgICAgIm11bGkiLAogICAgICAibmVn
aSIsCiAgICAgICJub3RpIiwKICAgICAgIm9yaSIsCiAgICAgICJyc2hpZnRpIiwKICAgICAgInVy
c2hpZnRpIiwKKyAgICAgInJzaGlmdHAiLAorICAgICAidXJzaGlmdHAiLAogICAgICAic3ViaSIs
CiAgICAgICJ4b3JpIiwKICAgICAgImxvYWRpIiwKQEAgLTE1OSw2ICsxNjIsNyBAQCBNQUNST19J
TlNUUlVDVElPTlMgPQogICAgICAiYnBsdCIsCiAgICAgICJicGx0ZXEiLAogICAgICAiYWRkcCIs
CisgICAgICJtdWxwIiwKICAgICAgImFuZHAiLAogICAgICAib3JwIiwKICAgICAgInN1YnAiLApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgkocmV2aXNp
b24gMTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJi
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAgZGVmIGxleChzdHIsIGZpbGVOYW1l
KQogICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFt
ZSwgbGluZU51bWJlciksICQmKQogICAgICAgICB3aGVuIC9cQTo6LwogICAgICAgICAgICAgcmVz
dWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQm
KQotICAgICAgICB3aGVuIC9cQVs6LFwoXClcW1xdPVwrXC0qXS8KKyAgICAgICAgd2hlbiAvXEFb
OixcKFwpXFtcXT1cK1wtflx8Jl4qXS8KICAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXco
Q29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIpLCAkJikKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgcmFpc2UgIkxleGVyIGVycm9yIGF0ICN7Q29kZU9yaWdpbi5uZXcoZmlsZU5h
bWUsIGxpbmVOdW1iZXIpLnRvX3N9LCB1bmV4cGVjdGVkIHNlcXVlbmNlICN7c3RyWzAuLjIwXS5p
bnNwZWN0fSIKQEAgLTMyMiw2ICszMjIsOSBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgaWYgQHRv
a2Vuc1tAaWR4XSA9PSAiLSIKICAgICAgICAgICAgIEBpZHggKz0gMQogICAgICAgICAgICAgTmVn
SW1tZWRpYXRlLm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCBwYXJzZUV4cHJlc3Np
b25BdG9tKQorICAgICAgICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJ+IgorICAgICAgICAgICAg
QGlkeCArPSAxCisgICAgICAgICAgICBCaXRub3RJbW1lZGlhdGUubmV3KEB0b2tlbnNbQGlkeCAt
IDFdLmNvZGVPcmlnaW4sIHBhcnNlRXhwcmVzc2lvbkF0b20pCiAgICAgICAgIGVsc2lmIEB0b2tl
bnNbQGlkeF0gPT0gIigiCiAgICAgICAgICAgICBAaWR4ICs9IDEKICAgICAgICAgICAgIHJlc3Vs
dCA9IHBhcnNlRXhwcmVzc2lvbgpAQCAtMzY1LDEwICszNjgsMTAgQEAgY2xhc3MgUGFyc2VyCiAg
ICAgZW5kCiAgICAgCiAgICAgZGVmIGNvdWxkQmVFeHByZXNzaW9uCi0gICAgICAgIEB0b2tlbnNb
QGlkeF0gPT0gIi0iIG9yIEB0b2tlbnNbQGlkeF0gPT0gInNpemVvZiIgb3IgaXNJbnRlZ2VyKEB0
b2tlbnNbQGlkeF0pIG9yIGlzVmFyaWFibGUoQHRva2Vuc1tAaWR4XSkgb3IgQHRva2Vuc1tAaWR4
XSA9PSAiKCIKKyAgICAgICAgQHRva2Vuc1tAaWR4XSA9PSAiLSIgb3IgQHRva2Vuc1tAaWR4XSA9
PSAifiIgb3IgQHRva2Vuc1tAaWR4XSA9PSAic2l6ZW9mIiBvciBpc0ludGVnZXIoQHRva2Vuc1tA
aWR4XSkgb3IgaXNWYXJpYWJsZShAdG9rZW5zW0BpZHhdKSBvciBAdG9rZW5zW0BpZHhdID09ICIo
IgogICAgIGVuZAogICAgIAotICAgIGRlZiBwYXJzZUV4cHJlc3Npb24KKyAgICBkZWYgcGFyc2VF
eHByZXNzaW9uQWRkCiAgICAgICAgIHNraXBOZXdMaW5lCiAgICAgICAgIHJlc3VsdCA9IHBhcnNl
RXhwcmVzc2lvbk11bAogICAgICAgICB3aGlsZSBAdG9rZW5zW0BpZHhdID09ICIrIiBvciBAdG9r
ZW5zW0BpZHhdID09ICItIgpAQCAtMzg1LDYgKzM4OCwzMyBAQCBjbGFzcyBQYXJzZXIKICAgICAg
ICAgcmVzdWx0CiAgICAgZW5kCiAgICAgCisgICAgZGVmIHBhcnNlRXhwcmVzc2lvbkFuZAorICAg
ICAgICBza2lwTmV3TGluZQorICAgICAgICByZXN1bHQgPSBwYXJzZUV4cHJlc3Npb25BZGQKKyAg
ICAgICAgd2hpbGUgQHRva2Vuc1tAaWR4XSA9PSAiJiIKKyAgICAgICAgICAgIEBpZHggKz0gMQor
ICAgICAgICAgICAgcmVzdWx0ID0gQW5kSW1tZWRpYXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0u
Y29kZU9yaWdpbiwgcmVzdWx0LCBwYXJzZUV4cHJlc3Npb25BZGQpCisgICAgICAgIGVuZAorICAg
ICAgICByZXN1bHQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uCisgICAg
ICAgIHNraXBOZXdMaW5lCisgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbkFuZAorICAg
ICAgICB3aGlsZSBAdG9rZW5zW0BpZHhdID09ICJ8IiBvciBAdG9rZW5zW0BpZHhdID09ICJeIgor
ICAgICAgICAgICAgaWYgQHRva2Vuc1tAaWR4XSA9PSAifCIKKyAgICAgICAgICAgICAgICBAaWR4
ICs9IDEKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBPckltbWVkaWF0ZXMubmV3KEB0b2tlbnNb
QGlkeCAtIDFdLmNvZGVPcmlnaW4sIHJlc3VsdCwgcGFyc2VFeHByZXNzaW9uQW5kKQorICAgICAg
ICAgICAgZWxzaWYgQHRva2Vuc1tAaWR4XSA9PSAiXiIKKyAgICAgICAgICAgICAgICBAaWR4ICs9
IDEKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBYb3JJbW1lZGlhdGVzLm5ldyhAdG9rZW5zW0Bp
ZHggLSAxXS5jb2RlT3JpZ2luLCByZXN1bHQsIHBhcnNlRXhwcmVzc2lvbkFuZCkKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZW5kCisgICAgICAg
IGVuZAorICAgICAgICByZXN1bHQKKyAgICBlbmQKKyAgICAKICAgICBkZWYgcGFyc2VPcGVyYW5k
KGNvbW1lbnQpCiAgICAgICAgIHNraXBOZXdMaW5lCiAgICAgICAgIGlmIGNvdWxkQmVFeHByZXNz
aW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJz
LnJiCShyZXZpc2lvbiAxMDk5NTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9yZWdpc3RlcnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDEzIEBAIEdQUlMgPQog
ICAgICAicjAiLAogICAgICAicjEiLAogICAgICAic3AiLAotICAgICAibHIiCisgICAgICJsciIs
CisgICAgIAorICAgICAjIDY0LWJpdCBvbmx5IHJlZ2lzdGVyczoKKyAgICAgInQ1IiwKKyAgICAg
ImNzcjAiLCAgIyByMTAKKyAgICAgImNzcjEiLCAgIyByMTQsIHRhZyB0eXBlIG51bWJlciByZWdp
c3RlcgorICAgICAiY3NyMiIgICAjIHIxNSwgdGFnIG1hc2sgcmVnaXN0ZXIKICAgICBdCiAKIEZQ
UlMgPQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3RyYW5zZm9y
bS5yYgkocmV2aXNpb24gMTA5OTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vdHJhbnNmb3JtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMjgsNiArMzI4LDQ0IEBAIGNsYXNz
IE5lZ0ltbWVkaWF0ZQogICAgIGVuZAogZW5kCiAKK2NsYXNzIE9ySW1tZWRpYXRlcworICAgIGRl
ZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBAcmln
aHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRl
CisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUgfCBAcmlnaHQudmFsdWUp
CisgICAgZW5kCitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAg
ICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAg
ICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJl
dHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0
ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUgJiBAcmlnaHQudmFsdWUpCisgICAgZW5kCitl
bmQKKworY2xhc3MgWG9ySW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0g
QGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4g
c2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVu
bGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9y
aWdpbiwgQGxlZnQudmFsdWUgXiBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3Mg
Qml0bm90SW1tZWRpYXRlCisgICAgZGVmIGZvbGQKKyAgICAgICAgQGNoaWxkID0gQGNoaWxkLmZv
bGQKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEBjaGlsZC5pc19hPyBJbW1lZGlhdGUKKyAg
ICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCB+QGNoaWxkLnZhbHVlKQorICAgIGVuZAor
ZW5kCisKICMKICMgbm9kZS5yZXNvbHZlQWZ0ZXJTZXR0aW5ncyhvZmZzZXRzLCBzaXplcykKICMK
QEAgLTM0MCwzICszNzgsOTcgQEAgY2xhc3MgTm9kZQogICAgIGVuZAogZW5kCiAKKyMKKyMgbm9k
ZS52YWxpZGF0ZQorIworIyBDaGVja3MgdGhhdCB0aGUgbm9kZSBpcyByZWFkeSBmb3IgYmFja2Vu
ZCBjb21waWxhdGlvbi4KKyMKKworY2xhc3MgTm9kZQorICAgIGRlZiB2YWxpZGF0ZQorICAgICAg
ICByYWlzZSAiVW5yZXNvbHZlZCAje2R1bXB9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAg
ZW5kCisgICAgCisgICAgZGVmIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICAgICAgY2hpbGRyZW4uZWFj
aCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgbm9kZS52YWxpZGF0ZQorICAg
ICAgICB9CisgICAgZW5kCitlbmQKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgdmFsaWRhdGUK
KyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0
ZQorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAg
ICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBk
ZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIHZhbGlk
YXRlCisgICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFzcyBCYXNl
SW5kZXgKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVu
ZAorZW5kCisKK2NsYXNzIEFic29sdXRlQWRkcmVzcworICAgIGRlZiB2YWxpZGF0ZQorICAgICAg
ICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xhc3MgSW5zdHJ1Y3Rpb24KKyAg
ICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisK
K2NsYXNzIEVycm9yCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgTGFi
ZWwKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBMb2NhbExhYmVsCisg
ICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgTGFiZWxSZWZlcmVuY2UKKyAg
ICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBMb2NhbExhYmVsUmVmZXJlbmNl
CisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgU2tpcAorICAgIGRlZiB2
YWxpZGF0ZQorICAgIGVuZAorZW5kCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3g4Ni5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS94ODYucmIJKHJldmlzaW9uIDEwOTk1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3g4Ni5yYgkod29ya2luZyBjb3B5KQpAQCAtMzIsMTMgKzMyLDM3IEBAIGRlZiBp
c1g2NAogICAgIGVuZAogZW5kCiAKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4K
KyAgICBkZWYgeDg2T3BlcmFuZChraW5kKQorICAgICAgICByYWlzZSB1bmxlc3MgQG5hbWUgPX4g
L15yLworICAgICAgICByYWlzZSB1bmxlc3MgaXNYNjQKKyAgICAgICAgY2FzZSBraW5kCisgICAg
ICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICIlIiArIEBuYW1lICsgInciCisgICAgICAgIHdo
ZW4gOmludAorICAgICAgICAgICAgIiUiICsgQG5hbWUgKyAiZCIKKyAgICAgICAgd2hlbiA6cHRy
CisgICAgICAgICAgICAiJSIgKyBAbmFtZQorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlz
ZQorICAgICAgICBlbmQKKyAgICBlbmQKKyAgICBkZWYgeDg2Q2FsbE9wZXJhbmQoa2luZCkKKyAg
ICAgICAgIioje3g4Nk9wZXJhbmQoa2luZCl9IgorICAgIGVuZAorZW5kCisKK1g2NF9TQ1JBVENI
X1JFR0lTVEVSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygicjExIikKKwogY2xhc3MgUmVnaXN0ZXJJ
RAogICAgIGRlZiBzdXBwb3J0czhCaXRPblg4NgogICAgICAgICBjYXNlIG5hbWUKICAgICAgICAg
d2hlbiAidDAiLCAiYTAiLCAicjAiLCAidDEiLCAiYTEiLCAicjEiLCAidDIiLCAidDMiCiAgICAg
ICAgICAgICB0cnVlCi0gICAgICAgIHdoZW4gInQ0IiwgImNmciIKKyAgICAgICAgd2hlbiAiY2Zy
IiwgInR0bnIiLCAidG1yIgogICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgd2hlbiAidDQiLCAi
dDUiCisgICAgICAgICAgICBpc1g2NAogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZQog
ICAgICAgICBlbmQKQEAgLTExMiwxNyArMTM2LDMwIEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAg
ICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gImNmciIKLSAg
ICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAg
ICAgICIlZGlsIgotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlZGki
Ci0gICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVkaSIKLSAgICAgICAg
ICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogIiVlZGkiCisg
ICAgICAgICAgICBpZiBpc1g2NAorICAgICAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAg
ICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAgICAgIiVyMTN3IgorICAgICAgICAg
ICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICAgICAiJXIxM2QiCisgICAgICAgICAg
ICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgICAgICIlcjEzIgorICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBlbmQK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAg
IGNhc2Uga2luZAorICAgICAgICAgICAgICAgIHdoZW4gOmJ5dGUKKyAgICAgICAgICAgICAgICAg
ICAgIiVkaWwiCisgICAgICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICAg
ICAiJWRpIgorICAgICAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICAgICAi
JWVkaSIKKyAgICAgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAgICAgIiVl
ZGkiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAg
ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gInNwIgogICAg
ICAgICAgICAgY2FzZSBraW5kCkBAIC0xMzcsNiArMTc0LDQ4IEBAIGNsYXNzIFJlZ2lzdGVySUQK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZW5k
CisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1l
fSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAg
ICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpieXRlCisgICAgICAgICAgICAg
ICAgIiVkaWwiCisgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVkaSIK
KyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAg
ICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgIiVyZGkiCisgICAgICAgICAgICBlbmQKKyAg
ICAgICAgd2hlbiAiY3NyMCIKKyAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0g
aW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAg
ICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAg
ICIlcjEwdyIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlcjEwZCIK
KyAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICIlcjEwIgorICAgICAgICAg
ICAgZW5kCisgICAgICAgIHdoZW4gImNzcjEiCisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVz
ZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlz
WDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAg
ICAgICAgICAgICAiJXIxNHciCisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAg
ICAiJXIxNGQiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXIxNCIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjc3IyIgorICAgICAgICAgICAgcmFpc2Ug
IkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
IHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpo
YWxmCisgICAgICAgICAgICAgICAgIiVyMTV3IgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAg
ICAgICAgICAgICAgIiVyMTVkIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAg
ICAgIiVyMTUiCisgICAgICAgICAgICBlbmQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFp
c2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIK
ICAgICAgICAgZW5kCkBAIC0xNzIsNiArMjUxLDEzIEBAIGNsYXNzIEZQUmVnaXN0ZXJJRAogZW5k
CiAKIGNsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2YWxpZFg4NkltbWVkaWF0ZT8KKyAgICAgICAg
aWYgaXNYNjQKKyAgICAgICAgICAgIHZhbHVlID49IC0weDgwMDAwMDAwIGFuZCB2YWx1ZSA8PSAw
eDdmZmZmZmZmCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRydWUKKyAgICAgICAgZW5kCisg
ICAgZW5kCiAgICAgZGVmIHg4Nk9wZXJhbmQoa2luZCkKICAgICAgICAgIiQje3ZhbHVlfSIKICAg
ICBlbmQKQEAgLTIxMCw3ICsyOTYsNyBAQCBjbGFzcyBCYXNlSW5kZXgKICAgICBlbmQKIAogICAg
IGRlZiB4ODZDYWxsT3BlcmFuZChraW5kKQotICAgICAgICAiKiN7eDg2b3BlcmFuZChraW5kKX0i
CisgICAgICAgICIqI3t4ODZPcGVyYW5kKGtpbmQpfSIKICAgICBlbmQKIGVuZAogCkBAIC0yNDQs
NiArMzMwLDQ3IEBAIGNsYXNzIExvY2FsTGFiZWxSZWZlcmVuY2UKICAgICBlbmQKIGVuZAogCitj
bGFzcyBTZXF1ZW5jZQorICAgIGRlZiBnZXRNb2RpZmllZExpc3RYODZfNjQKKyAgICAgICAgbmV3
TGlzdCA9IFtdCisgICAgICAgIAorICAgICAgICBAbGlzdC5lYWNoIHsKKyAgICAgICAgICAgIHwg
bm9kZSB8CisgICAgICAgICAgICBuZXdOb2RlID0gbm9kZQorICAgICAgICAgICAgaWYgbm9kZS5p
c19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgICAgIHVubGVzcyBub2RlLm9wY29kZSA9PSAi
bW92ZSIKKyAgICAgICAgICAgICAgICAgICAgdXNlZFNjcmF0Y2ggPSBmYWxzZQorICAgICAgICAg
ICAgICAgICAgICBuZXdPcGVyYW5kcyA9IG5vZGUub3BlcmFuZHMubWFwIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHwgb3BlcmFuZCB8CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBvcGVy
YW5kLmltbWVkaWF0ZT8gYW5kIG5vdCBvcGVyYW5kLnZhbGlkWDg2SW1tZWRpYXRlPworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIHVzZWRTY3JhdGNoCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJhaXNlICJBdHRlbXB0IHRvIHVzZSBzY3JhdGNoIHJlZ2lzdGVyIHR3aWNl
IGF0ICN7b3BlcmFuZC5jb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJtb3ZlIiwgW29wZXJhbmQsIFg2NF9TQ1JBVENI
X1JFR0lTVEVSXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkU2NyYXRjaCA9IHRy
dWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBYNjRfU0NSQVRDSF9SRUdJU1RFUgorICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
ZXJhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIG5ld05vZGUgPSBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCBub2RlLm9wY29kZSwgbmV3T3BlcmFuZHMpCisgICAgICAgICAgICAgICAgZW5kCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdW5sZXNzIG5vZGUuaXNfYT8gTGFiZWwg
b3IKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gTG9jYWxMYWJlbCBvcgorICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgICAg
IHJhaXNlICJVbmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0i
IAorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBpZiBu
ZXdOb2RlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBuZXdOb2RlCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ld0xpc3QKKyAgICBlbmQK
K2VuZAorCiBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGRlZiB4ODZPcGVyYW5kcygqa2luZHMpCiAg
ICAgICAgIHJhaXNlIHVubGVzcyBraW5kcy5zaXplID09IG9wZXJhbmRzLnNpemUKQEAgLTQ1OCw2
ICs1ODUsMTYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgZW5kCiAgICAgZW5kCiAgICAg
CisgICAgZGVmIGhhbmRsZVg4Nk11bChraW5kKQorICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09
IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRz
ICJpbXVsI3t4ODZTdWZmaXgoa2luZCl9ICN7eDg2T3BlcmFuZHMoa2luZCwga2luZCwga2luZCl9
IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21lIHBlZXBo
b2xlIGluIGNhc2UgdGhlIGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MKKyAgICAg
ICAgICAgICMgYSBwb3dlciBvZiB0d28uCisgICAgICAgICAgICBoYW5kbGVYODZPcCgiaW11bCN7
eDg2U3VmZml4KGtpbmQpfSIsIGtpbmQpCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIAogICAg
IGRlZiBoYW5kbGVNb3ZlCiAgICAgICAgIGlmIEltbWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVy
YW5kc1swXSBhbmQgb3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRAogICAgICAgICAgICAgJGFz
bS5wdXRzICJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0gI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpw
dHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIKQEAgLTQ4OSwxNCArNjI2LDEy
IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBoYW5kbGVYODZPcCgiYW5kI3t4ODZT
dWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAibHNoaWZ0aSIKICAgICAgICAgICAg
IGhhbmRsZVg4NlNoaWZ0KCJzYWxsIiwgOmludCkKKyAgICAgICAgd2hlbiAibHNoaWZ0cCIKKyAg
ICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYWwje3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRyKQog
ICAgICAgICB3aGVuICJtdWxpIgotICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzIGFu
ZCBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKLSAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
ImltdWxsICN7eDg2T3BlcmFuZHMoOmludCwgOmludCwgOmludCl9IgotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUgcGVlcGhvbGUgaW4gY2Fz
ZSB0aGUgbGVmdCBvcGVyYW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncwotICAgICAgICAgICAgICAg
ICMgYSBwb3dlciBvZiB0d28uCi0gICAgICAgICAgICAgICAgaGFuZGxlWDg2T3AoImltdWxsIiwg
OmludCkKLSAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgaGFuZGxlWDg2TXVsKDppbnQpCisg
ICAgICAgIHdoZW4gIm11bHAiCisgICAgICAgICAgICBoYW5kbGVYODZNdWwoOnB0cikKICAgICAg
ICAgd2hlbiAibmVnaSIKICAgICAgICAgICAgICRhc20ucHV0cyAibmVnbCAje3g4Nk9wZXJhbmRz
KDppbnQpfSIKICAgICAgICAgd2hlbiAibm90aSIKQEAgLTUwNyw4ICs2NDIsMTIgQEAgY2xhc3Mg
SW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJvciN7eDg2U3VmZml4KDpwdHIp
fSIsIDpwdHIpCiAgICAgICAgIHdoZW4gInJzaGlmdGkiCiAgICAgICAgICAgICBoYW5kbGVYODZT
aGlmdCgic2FybCIsIDppbnQpCisgICAgICAgIHdoZW4gInJzaGlmdHAiCisgICAgICAgICAgICBo
YW5kbGVYODZTaGlmdCgic2FyI3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hl
biAidXJzaGlmdGkiCiAgICAgICAgICAgICBoYW5kbGVYODZTaGlmdCgic2hybCIsIDppbnQpCisg
ICAgICAgIHdoZW4gInVyc2hpZnRwIgorICAgICAgICAgICAgaGFuZGxlWDg2U2hpZnQoInNociN7
eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gInN1YmkiCiAgICAgICAgICAg
ICBoYW5kbGVYODZTdWIoOmludCkKICAgICAgICAgd2hlbiAic3VicCIKQEAgLTUxNiw3ICs2NTUs
NyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJ4b3JpIgogICAgICAgICAgICAg
aGFuZGxlWDg2T3AoInhvcmwiLCA6aW50KQogICAgICAgICB3aGVuICJ4b3JwIgotICAgICAgICAg
ICAgaGFuZGxlWDg2T3AoInhvciN7eDg2U3VmZml4KDpwdHIpfSIsIDppbnQpCisgICAgICAgICAg
ICBoYW5kbGVYODZPcCgieG9yI3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hl
biAibG9hZGkiLCAic3RvcmVpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZsICN7eDg2T3Bl
cmFuZHMoOmludCwgOmludCl9IgogICAgICAgICB3aGVuICJsb2FkcCIsICJzdG9yZXAiCkBAIC04
MjUsOSArOTY0LDkgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAi
cHNybHEgJDMyLCAleG1tNyIKICAgICAgICAgICAgICRhc20ucHV0cyAibW92c2QgJXhtbTcsICN7
b3BlcmFuZHNbMl0ueDg2T3BlcmFuZCg6aW50KX0iCiAgICAgICAgIHdoZW4gImZwMmQiCi0gICAg
ICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kcyg6cHRyKX0s
ICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6ZG91YmxlKX0iCisgICAgICAgICAgICAkYXNtLnB1
dHMgIm1vdmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54
ODZPcGVyYW5kKDpkb3VibGUpfSIKICAgICAgICAgd2hlbiAiZmQycCIKLSAgICAgICAgICAgICRh
c20ucHV0cyAibW92ZCAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmRzKDpkb3VibGUpfSwgI3tvcGVy
YW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ZCAj
e29wZXJhbmRzWzBdLng4Nk9wZXJhbmQoOmRvdWJsZSl9LCAje29wZXJhbmRzWzFdLng4Nk9wZXJh
bmQoOnB0cil9IgogICAgICAgICB3aGVuICJibyIKICAgICAgICAgICAgICRhc20ucHV0cyAiam8g
I3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJzIgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131132</attachid>
            <date>2012-03-09 16:25:37 -0800</date>
            <delta_ts>2012-03-09 16:52:30 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_10.diff</filename>
            <type>text/plain</type>
            <size>128680</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMzQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTAzLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAw
NjM0Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBXb3JrIGluIHByb2dyZXNzLiBJdCdzIHN0YXJ0aW5nIHRvIHJ1biB0aGluZ3MgYnV0
IHN0aWxsIG5lZWRzIHNvbWUgd29yay4KKworICAgICAgICAqIGxsaW50L0xMSW50Q29tbW9uLmg6
CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRh
dGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5j
cHA6CisgICAgICAgIChMTEludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpsbGludF90cmFjZV92
YWx1ZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAg
ICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKExMSW50KToKKyAgICAgICAg
KFNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpTbG93UGF0aFJldHVy
blR5cGU6OlNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6OkxMSW50OjplbmNvZGVS
ZXN1bHQpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJi
OgorICAgICAgICAqIG9mZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0
LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90
cmFuc2Zvcm0ucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtLmg6CisKIDIwMTItMDMtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgV2ViS2l0IGNvbXBpbGVkIGJ5IGdjYyAoWGNvZGUgMy4yLjYpIGhhbmdz
IHdoaWxlIHJ1bm5pbmcgRE9NL0FjY2Vzc29ycy5odG1sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRDb21tb24uaAkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcg
KzQwLDcgQEAKIC8vIHR1cm5zIG9mZiBhbGwgSklUJ2luZywgc2luY2UgaW4gTExJbnQncyBwYXJs
YW5jZSwgT1NSIHN1YnN1bWVzIGFueSBmb3JtIG9mIEpJVAogLy8gaW52b2NhdGlvbi4KICNpZiBF
TkFCTEUoSklUKQotI2RlZmluZSBMTElOVF9PU1JfVE9fSklUIDEKKyNkZWZpbmUgTExJTlRfT1NS
X1RPX0pJVCAwCiAjZWxzZQogI2RlZmluZSBMTElOVF9PU1JfVE9fSklUIDAKICNlbmRpZgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHJldmlzaW9uIDEx
MDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Miw2ICs3Miw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMo
SlNHbG9iYWxEYXQKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy50YWcpID09IDQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0YoRW5j
b2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpID09IDApOwogI2VuZGlmCisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKICAgICBBU1NFUlQoSlNWYWx1ZTo6SW50MzJUYWcgPT0gLTEpOwog
ICAgIEFTU0VSVChKU1ZhbHVlOjpCb29sZWFuVGFnID09IC0yKTsKICAgICBBU1NFUlQoSlNWYWx1
ZTo6TnVsbFRhZyA9PSAtMyk7CkBAIC04MCwxMiArODEsMjYgQEAgdm9pZCBEYXRhOjpwZXJmb3Jt
QXNzZXJ0aW9ucyhKU0dsb2JhbERhdAogICAgIEFTU0VSVChKU1ZhbHVlOjpFbXB0eVZhbHVlVGFn
ID09IC02KTsKICAgICBBU1NFUlQoSlNWYWx1ZTo6RGVsZXRlZFZhbHVlVGFnID09IC03KTsKICAg
ICBBU1NFUlQoSlNWYWx1ZTo6TG93ZXN0VGFnID09IC03KTsKKyNlbHNlCisgICAgQVNTRVJUKFRh
Z0JpdFR5cGVPdGhlciA9PSAweDIpOworICAgIEFTU0VSVChUYWdCaXRCb29sID09IDB4NCk7Cisg
ICAgQVNTRVJUKFRhZ0JpdFVuZGVmaW5lZCA9PSAweDgpOworICAgIEFTU0VSVChWYWx1ZUVtcHR5
ID09IDB4MCk7CisgICAgQVNTRVJUKFZhbHVlRmFsc2UgPT0gKFRhZ0JpdFR5cGVPdGhlciB8IFRh
Z0JpdEJvb2wpKTsKKyAgICBBU1NFUlQoVmFsdWVUcnVlID09IChUYWdCaXRUeXBlT3RoZXIgfCBU
YWdCaXRCb29sIHwgMSkpOworICAgIEFTU0VSVChWYWx1ZVVuZGVmaW5lZCA9PSAoVGFnQml0VHlw
ZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkKSk7CisgICAgQVNTRVJUKFZhbHVlTnVsbCA9PSBUYWdC
aXRUeXBlT3RoZXIpOworI2VuZGlmCiAgICAgQVNTRVJUKFN0cmluZ1R5cGUgPT0gNSk7CiAgICAg
QVNTRVJUKE9iamVjdFR5cGUgPT0gMTMpOwogICAgIEFTU0VSVChNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkID09IDEpOwogICAgIEFTU0VSVChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgPT0gMik7CiAgICAg
QVNTRVJUKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPT0gOCk7CisjaWYgVVNFKEpTVkFM
VUU2NCkKKyAgICBBU1NFUlQoJmdsb2JhbERhdGEuaGVhcC5hbGxvY2F0b3JGb3JPYmplY3RXaXRo
b3V0RGVzdHJ1Y3RvcihzaXplb2YoSlNGaW5hbE9iamVjdCkpIC0gJmdsb2JhbERhdGEuaGVhcC5m
aXJzdEFsbG9jYXRvcldpdGhvdXREZXN0cnVjdG9ycygpID09IDEpOworI2Vsc2UKICAgICBBU1NF
UlQoJmdsb2JhbERhdGEuaGVhcC5hbGxvY2F0b3JGb3JPYmplY3RXaXRob3V0RGVzdHJ1Y3Rvcihz
aXplb2YoSlNGaW5hbE9iamVjdCkpIC0gJmdsb2JhbERhdGEuaGVhcC5maXJzdEFsbG9jYXRvcldp
dGhvdXREZXN0cnVjdG9ycygpID09IDMpOworI2VuZGlmCiAgICAgQVNTRVJUKEZpcnN0Q29uc3Rh
bnRSZWdpc3RlckluZGV4ID09IDB4NDAwMDAwMDApOwogICAgIEFTU0VSVChHbG9iYWxDb2RlID09
IDApOwogICAgIEFTU0VSVChFdmFsQ29kZSA9PSAxKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTEwMzQ2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjUsMTYgKzY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7
CiAjZGVmaW5lIExMSU5UX09QX0MoaW5kZXgpIChleGVjLT5yKHBjW2luZGV4XS51Lm9wZXJhbmQp
KQogCiAjZGVmaW5lIExMSU5UX1JFVFVSTl9UV08oZmlyc3QsIHNlY29uZCkgZG8geyAgICAgICBc
Ci0gICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgICAgICAgICAgdm9pZCogYTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
ICAgICAgICAgdm9pZCogYjsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAg
ICB9IHBhaXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBp
bnQ2NF90IGk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gX19ydF91
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9fcnRfdS5wYWly
LmEgPSBmaXJzdDsgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9fcnRfdS5wYWlyLmIg
PSBzZWNvbmQ7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX3J0X3UuaTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQo
Zmlyc3QsIHNlY29uZCk7ICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNkZWZpbmUg
TExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdPKHBjLCBleGVjKQpAQCAtMTY3LDcgKzE1
OCw2IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWMKIAogZXh0ZXJu
ICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2VfdmFsdWUoRXhlY1N0YXRlKiBleGVj
LCBJbnN0cnVjdGlvbiogcGMsIGludCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKQogewotICAgIExM
SU5UX0JFR0lOKCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09QX0Mob3BlcmFuZCkuanNW
YWx1ZSgpOwogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTE4OCwxNCArMTc4LDEz
IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWMKICAgICAgICAgICAg
IHUuYml0cy50YWcsCiAgICAgICAgICAgICB1LmJpdHMucGF5bG9hZCwKICAgICAgICAgICAgIHZh
bHVlLmRlc2NyaXB0aW9uKCkpOwotICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX0VORF9JTVBM
KCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX3Byb2xvZ3VlKQogewotICAgIExM
SU5UX0JFR0lOKCk7CiAgICAgZGF0YUxvZygiJXAgLyAlcDogaW4gcHJvbG9ndWUuXG4iLCBleGVj
LT5jb2RlQmxvY2soKSwgZXhlYyk7Ci0gICAgTExJTlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lN
UEwoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJhY2VGdW5jdGlvblByb2xvZ3VlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgY2hhciogY29tbWVudCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQpA
QCAtMjExLDU0ICsyMDAsNTIgQEAgc3RhdGljIHZvaWQgdHJhY2VGdW5jdGlvblByb2xvZ3VlKEV4
ZWNTdAogCiBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3Jf
Y2FsbCkKIHsKLSAgICBMTElOVF9CRUdJTigpOwogICAgIHRyYWNlRnVuY3Rpb25Qcm9sb2d1ZShl
eGVjLCAiY2FsbCBwcm9sb2d1ZSIsIENvZGVGb3JDYWxsKTsKLSAgICBMTElOVF9FTkQoKTsKKyAg
ICBMTElOVF9FTkRfSU1QTCgpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZV9wcm9s
b2d1ZV9mdW5jdGlvbl9mb3JfY29uc3RydWN0KQogewotICAgIExMSU5UX0JFR0lOKCk7CiAgICAg
dHJhY2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMsICJjb25zdHJ1Y3QgcHJvbG9ndWUiLCBDb2RlRm9y
Q29uc3RydWN0KTsKLSAgICBMTElOVF9FTkQoKTsKKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQog
CiBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZV9hcml0eUNoZWNrX2Zvcl9jYWxsKQogewotICAg
IExMSU5UX0JFR0lOKCk7CiAgICAgdHJhY2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMsICJjYWxsIGFy
aXR5IGNoZWNrIiwgQ29kZUZvckNhbGwpOwotICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX0VO
RF9JTVBMKCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX2FyaXR5Q2hlY2tfZm9y
X2NvbnN0cnVjdCkKIHsKLSAgICBMTElOVF9CRUdJTigpOwogICAgIHRyYWNlRnVuY3Rpb25Qcm9s
b2d1ZShleGVjLCAiY29uc3RydWN0IGFyaXR5IGNoZWNrIiwgQ29kZUZvckNvbnN0cnVjdCk7Ci0g
ICAgTExJTlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lNUEwoKTsKIH0KIAogTExJTlRfU0xPV19Q
QVRIX0RFQ0wodHJhY2UpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICBkYXRhTG9nKCIlcCAv
ICVwOiBleGVjdXRpbmcgYmMjJXp1LCAlcywgc2NvcGUgJXBcbiIsCiAgICAgICAgICAgICBleGVj
LT5jb2RlQmxvY2soKSwKICAgICAgICAgICAgIGV4ZWMsCiAgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxpbnRwdHJfdD4ocGMgLSBleGVjLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4o
KSksCiAgICAgICAgICAgICBvcGNvZGVOYW1lc1tleGVjLT5nbG9iYWxEYXRhKCkuaW50ZXJwcmV0
ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKV0sCiAgICAgICAgICAgICBleGVjLT5zY29w
ZUNoYWluKCkpOwotICAgIExMSU5UX0VORCgpOworICAgIGlmIChleGVjLT5nbG9iYWxEYXRhKCku
aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9PSBvcF9yZXQpIHsKKyAg
ICAgICAgZGF0YUxvZygiV2lsbCBiZSByZXR1cm5pbmcgdG8gJXBcbiIsIGV4ZWMtPnJldHVyblBD
KCkudmFsdWUoKSk7CisgICAgICAgIGRhdGFMb2coIlRoZSBuZXcgY2ZyIHdpbGwgYmUgJXBcbiIs
IGV4ZWMtPmNhbGxlckZyYW1lKCkpOworICAgIH0KKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQog
CiBMTElOVF9TTE9XX1BBVEhfREVDTChzcGVjaWFsX3RyYWNlKQogewotICAgIExMSU5UX0JFR0lO
KCk7CiAgICAgZGF0YUxvZygiJXAgLyAlcDogZXhlY3V0aW5nIHNwZWNpYWwgY2FzZSBiYyMlenUs
IG9wIyV1LCByZXR1cm4gUEMgaXMgJXBcbiIsCiAgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2so
KSwKICAgICAgICAgICAgIGV4ZWMsCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnRwdHJfdD4o
cGMgLSBleGVjLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSksCiAgICAgICAg
ICAgICBleGVjLT5nbG9iYWxEYXRhKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUu
b3Bjb2RlKSwKICAgICAgICAgICAgIGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7Ci0gICAgTExJ
TlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lNUEwoKTsKIH0KIAogaW5saW5lIGJvb2wgc2hvdWxk
SklUKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTE0MDcsNyArMTM5NCw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9jYWxsX3ZhcmEKICAgICAKICAgICBleGVjQ2FsbGVlLT51bmNoZWNr
ZWRSKFJlZ2lzdGVyRmlsZTo6Q2FsbGVlKSA9IGNhbGxlZUFzVmFsdWU7CiAgICAgZXhlY0NhbGxl
ZS0+c2V0Q2FsbGVyRnJhbWUoZXhlYyk7Ci0gICAgZXhlYy0+dW5jaGVja2VkUihSZWdpc3RlckZp
bGU6OkFyZ3VtZW50Q291bnQpLnRhZygpID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHBjICsgT1BD
T0RFX0xFTkdUSChvcF9jYWxsX3ZhcmFyZ3MpKTsKKyAgICBleGVjLT5zZXRDdXJyZW50VlBDKHBj
ICsgT1BDT0RFX0xFTkdUSChvcF9jYWxsX3ZhcmFyZ3MpKTsKICAgICAKICAgICByZXR1cm4gc2V0
VXBDYWxsKGV4ZWNDYWxsZWUsIHBjLCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSk7CiB9CkBA
IC0xNDI1LDcgKzE0MTIsNyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF9l
dmFsCiAgICAgZXhlY0NhbGxlZS0+c2V0U2NvcGVDaGFpbihleGVjLT5zY29wZUNoYWluKCkpOwog
ICAgIGV4ZWNDYWxsZWUtPnNldFJldHVyblBDKGJpdHdpc2VfY2FzdDxJbnN0cnVjdGlvbio+KCZs
bGludF9nZW5lcmljX3JldHVybl9wb2ludCkpOwogICAgIGV4ZWNDYWxsZWUtPnNldENvZGVCbG9j
aygwKTsKLSAgICBleGVjLT51bmNoZWNrZWRSKFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCku
dGFnKCkgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4ocGMgKyBPUENPREVfTEVOR1RIKG9wX2NhbGxf
ZXZhbCkpOworICAgIGV4ZWMtPnNldEN1cnJlbnRWUEMocGMgKyBPUENPREVfTEVOR1RIKG9wX2Nh
bGxfZXZhbCkpOwogICAgIAogICAgIGlmICghaXNIb3N0RnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSwg
Z2xvYmFsRnVuY0V2YWwpKQogICAgICAgICByZXR1cm4gc2V0VXBDYWxsKGV4ZWNDYWxsZWUsIHBj
LCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDggKzM4LDQwIEBAIHN0cnVjdCBJbnN0cnVjdGlvbjsKIAogbmFtZXNwYWNlIExMSW50IHsK
IAorI2lmIFVTRShKU1ZBTFVFNjQpCitzdHJ1Y3QgU2xvd1BhdGhSZXR1cm5UeXBlIHsKKyAgICB2
b2lkKiBhOworICAgIHZvaWQqIGI7CisgICAgCisgICAgU2xvd1BhdGhSZXR1cm5UeXBlKHZvaWQq
IGEsIHZvaWQqIGIpCisgICAgICAgIDogYShhKQorICAgICAgICAsIGIoYikKKyAgICB7CisgICAg
fQorfTsKKworaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBlbmNvZGVSZXN1bHQodm9pZCogYSwg
dm9pZCogYikKK3sKKyAgICByZXR1cm4gU2xvd1BhdGhSZXR1cm5UeXBlKGEsIGIpOworfQorI2Vs
c2UKIHR5cGVkZWYgaW50NjRfdCBTbG93UGF0aFJldHVyblR5cGU7CiAKK2lubGluZSBTbG93UGF0
aFJldHVyblR5cGUgZW5jb2RlUmVzdWx0KHZvaWQqIGEsIHZvaWQqIGIpCit7CisgICAgdW5pb24g
eworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdm9pZCogYTsKKyAgICAgICAgICAgIHZv
aWQqIGI7CisgICAgICAgIH0gcGFpcjsKKyAgICAgICAgaW50NjRfdCBpOworICAgIH0gdTsKKyAg
ICB1LnBhaXIuYSA9IGE7CisgICAgdS5wYWlyLmIgPSBiOworICAgIHJldHVybiB1Lmk7Cit9Cisj
ZW5kaWYKKwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2Vfb3BlcmFu
ZChFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiosIGludCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKTsK
IGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWNlX3ZhbHVlKEV4ZWNTdGF0
ZSosIEluc3RydWN0aW9uKiwgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbQkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTcw
LDI4ICs3MCw2IEBACiAjIEJlbG93IHdlIGhhdmUgYSBidW5jaCBvZiBjb25zdGFudCBkZWNsYXJh
dGlvbnMuIEVhY2ggY29uc3RhbnQgbXVzdCBoYXZlCiAjIGEgY29ycmVzcG9uZGluZyBBU1NFUlQo
KSBpbiBMTEludERhdGEuY3BwLgogCi0jIFRoZXNlIGRlY2xhcmF0aW9ucyBtdXN0IG1hdGNoIGlu
dGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oLgotY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDQ4
Ci1jb25zdCBBcmd1bWVudENvdW50ID0gLTQ4Ci1jb25zdCBDYWxsZXJGcmFtZSA9IC00MAotY29u
c3QgQ2FsbGVlID0gLTMyCi1jb25zdCBTY29wZUNoYWluID0gLTI0Ci1jb25zdCBSZXR1cm5QQyA9
IC0xNgotY29uc3QgQ29kZUJsb2NrID0gLTgKLQotY29uc3QgVGhpc0FyZ3VtZW50T2Zmc2V0ID0g
LUNhbGxGcmFtZUhlYWRlclNpemUgLSA4Ci0KLSMgRGVjbGFyZSBzb21lIGFsaWFzZXMgZm9yIHRo
ZSByZWdpc3RlcnMgd2Ugd2lsbCB1c2UuCi1jb25zdCBQQyA9IHQ0Ci0KLSMgT2Zmc2V0cyBuZWVk
ZWQgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRhdGlvbi4KLWlmIEJJR19FTkRJ
QU4KLSAgICBjb25zdCBUYWdPZmZzZXQgPSAwCi0gICAgY29uc3QgUGF5bG9hZE9mZnNldCA9IDQK
LWVsc2UKLSAgICBjb25zdCBUYWdPZmZzZXQgPSA0Ci0gICAgY29uc3QgUGF5bG9hZE9mZnNldCA9
IDAKLWVuZAogCiAjIFZhbHVlIHJlcHJlc2VudGF0aW9uIGNvbnN0YW50cy4KIGNvbnN0IEludDMy
VGFnID0gLTEKQEAgLTEwMyw3MSArODEsOCBAQCBjb25zdCBFbXB0eVZhbHVlVGFnID0gLTYKIGNv
bnN0IERlbGV0ZWRWYWx1ZVRhZyA9IC03CiBjb25zdCBMb3dlc3RUYWcgPSBEZWxldGVkVmFsdWVU
YWcKIAotIyBUeXBlIGNvbnN0YW50cy4KLWNvbnN0IFN0cmluZ1R5cGUgPSA1Ci1jb25zdCBPYmpl
Y3RUeXBlID0gMTMKLQotIyBUeXBlIGZsYWdzIGNvbnN0YW50cy4KLWNvbnN0IE1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQgPSAxCi1jb25zdCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgPSAyCi1jb25zdCBJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlID0gOAotCi0jIEhlYXAgYWxsb2NhdGlvbiBjb25z
dGFudHMuCi1jb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAzCi0KLSMgQnl0ZWNv
ZGUgb3BlcmFuZCBjb25zdGFudHMuCi1jb25zdCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCA9
IDB4NDAwMDAwMDAKLQotIyBDb2RlIHR5cGUgY29uc3RhbnRzLgotY29uc3QgR2xvYmFsQ29kZSA9
IDAKLWNvbnN0IEV2YWxDb2RlID0gMQotY29uc3QgRnVuY3Rpb25Db2RlID0gMgotCi0jIFRoZSBp
bnRlcnByZXRlciBzdGVhbHMgdGhlIHRhZyB3b3JkIG9mIHRoZSBhcmd1bWVudCBjb3VudC4KLWNv
bnN0IExMSW50UmV0dXJuUEMgPSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0Ci0KLSMgVGhpcyBt
dXN0IG1hdGNoIHd0Zi9WZWN0b3IuaC4KLWNvbnN0IFZlY3RvclNpemVPZmZzZXQgPSAwCi1jb25z
dCBWZWN0b3JCdWZmZXJPZmZzZXQgPSA0Ci0KLSMgU3RyaW5nIGZsYWdzLgotY29uc3QgSGFzaEZs
YWdzOEJpdEJ1ZmZlciA9IDY0CiAKICMgVXRpbGl0aWVzCi1tYWNybyBjcmFzaCgpCi0gICAgc3Rv
cmVpIDAsIDB4YmJhZGJlZWZbXQotICAgIG1vdmUgMCwgdDAKLSAgICBjYWxsIHQwCi1lbmQKLQot
bWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKLSAgICBpZiBBU1NFUlRfRU5BQkxFRAotICAgICAgICBh
c3NlcnRpb24oLm9rKQotICAgICAgICBjcmFzaCgpCi0gICAgLm9rOgotICAgIGVuZAotZW5kCi0K
LW1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVy
KQotICAgIGlmIEFSTXY3Ci0gICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKLSAg
ICBlbHNpZiBYODYKLSAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0ZXIKLSAgICBlbHNlCi0g
ICAgICAgIGVycm9yCi0gICAgZW5kCi1lbmQKLQotbWFjcm8gcmVzdG9yZVJldHVybkFkZHJlc3NC
ZWZvcmVSZXR1cm4oc291cmNlUmVnaXN0ZXIpCi0gICAgaWYgQVJNdjcKLSAgICAgICAgbW92ZSBz
b3VyY2VSZWdpc3RlciwgbHIKLSAgICBlbHNpZiBYODYKLSAgICAgICAgcHVzaCBzb3VyY2VSZWdp
c3RlcgotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLWVuZAotCiBtYWNybyBkaXNw
YXRjaChhZHZhbmNlKQogICAgIGFkZHAgYWR2YW5jZSAqIDQsIFBDCiAgICAgam1wIFtQQ10KQEAg
LTIyMCw4ICsxMzUsOCBAQCBtYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMs
CiAgICAgY2FsbCBmdW5jdGlvbgogZW5kCiAKLW1hY3JvIGNhbGxTbG93UGF0aChzbG93X3BhdGgp
Ci0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykKK21hY3JvIGNhbGxTbG93UGF0aChzbG93
UGF0aCkKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAgbW92ZSB0MCwgUEMKICAg
ICBtb3ZlIHQxLCBjZnIKIGVuZApAQCAtMjQ1LDQwICsxNjAsMTUgQEAgbWFjcm8gdHJhY2VWYWx1
ZShmcm9tV2hlcmUsIG9wZXJhbmQpCiAgICAgbW92ZSB0MSwgY2ZyCiBlbmQKIAotbWFjcm8gdHJh
Y2VFeGVjdXRpb24oKQotICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCi0gICAgICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfdHJhY2UpCi0gICAgZW5kCi1lbmQKLQotIyBDYWxsIGEgc2xvd19wYXRoIGZv
ciBjYWxsIG9wY29kZXMuCi1tYWNybyBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dfcGF0
aCwgYWN0aW9uKQorIyBDYWxsIGEgc2xvd1BhdGggZm9yIGNhbGwgb3Bjb2Rlcy4KK21hY3JvIGNh
bGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd1BhdGgsIGFjdGlvbikKICAgICBhZGRwIGFkdmFu
Y2UgKiA0LCBQQywgdDAKICAgICBzdG9yZXAgdDAsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRb
Y2ZyXQotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpCisgICAgY0NhbGwyKHNsb3dQYXRo
LCBjZnIsIFBDKQogICAgIG1vdmUgdDEsIGNmcgogICAgIGFjdGlvbih0MCkKIGVuZAogCi1tYWNy
byBzbG93UGF0aEZvckNhbGwoYWR2YW5jZSwgc2xvd19wYXRoKQotICAgIGNhbGxDYWxsU2xvd1Bh
dGgoCi0gICAgICAgIGFkdmFuY2UsCi0gICAgICAgIHNsb3dfcGF0aCwKLSAgICAgICAgbWFjcm8g
KGNhbGxlZSkKLSAgICAgICAgICAgIGNhbGwgY2FsbGVlCi0gICAgICAgICAgICBkaXNwYXRjaEFm
dGVyQ2FsbCgpCi0gICAgICAgIGVuZCkKLWVuZAotCi1tYWNybyBjaGVja1N3aXRjaFRvSklUKGlu
Y3JlbWVudCwgYWN0aW9uKQotICAgIGlmIEpJVF9FTkFCTEVECi0gICAgICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MAotICAgICAgICBiYWRkaXMgaW5jcmVtZW50LCBDb2RlQmxvY2s6Om1fbGxp
bnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MF0sIC5jb250
aW51ZQotICAgICAgICBhY3Rpb24oKQotICAgIC5jb250aW51ZToKLSAgICBlbmQKLWVuZAotCiBt
YWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVCgKICAg
ICAgICAgMSwKQEAgLTI5MywxOCArMTgzLDYgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxv
b3AoKQogICAgICAgICBlbmQpCiBlbmQKIAotbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxv
Z3VlKCkKLSAgICBjaGVja1N3aXRjaFRvSklUKAotICAgICAgICAxMCwKLSAgICAgICAgbWFjcm8g
KCkKLSAgICAgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfcmVwbGFjZSkKLSAgICAgICAgZW5k
KQotZW5kCi0KLW1hY3JvIGFzc2VydE5vdENvbnN0YW50KGluZGV4KQotICAgIGFzc2VydChtYWNy
byAob2spIGJpbHQgaW5kZXgsIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCBvayBlbmQpCi1l
bmQKLQogIyBJbmRleCwgdGFnLCBhbmQgcGF5bG9hZCBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3Rl
cnMuIEluZGV4IGlzIG5vdAogIyBjaGFuZ2VkLgogbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShpbmRleCwgdGFnLCBwYXlsb2FkKQpAQCAtMzg2LDEwOSArMjY0LDggQEAgbWFjcm8gdmFsdWVQ
cm9maWxlKHRhZywgcGF5bG9hZCwgcHJvZmlsZQogZW5kCiAKIAotIyBJbmRpY2F0ZSB0aGUgYmVn
aW5uaW5nIG9mIExMSW50LgotX2xsaW50X2JlZ2luOgotICAgIGNyYXNoKCkKLQotCiAjIEVudHJ5
cG9pbnRzIGludG8gdGhlIGludGVycHJldGVyCiAKLW1hY3JvIGZ1bmN0aW9uRm9yQ2FsbENvZGVC
bG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0
UmVnaXN0ZXIKLSAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0
ZXJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRwIEZ1bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2Rl
QmxvY2tGb3JDYWxsW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNy
byBmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAg
ICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBsb2FkcCBKU0Z1bmN0aW9u
OjptX2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRw
IEZ1bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3RbdGFyZ2V0UmVnaXN0
ZXJdLCB0YXJnZXRSZWdpc3RlcgotZW5kCi0KLW1hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0
dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0YXJnZXRSZWdp
c3RlcgotZW5kCi0KLW1hY3JvIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVy
KQotICAgIHN0b3JlcCBzb3VyY2VSZWdpc3RlciwgQ29kZUJsb2NrW2Nmcl0KLWVuZAotCi1tYWNy
byBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdpc3RlcikKLSAgICAjIE5vdGhp
bmcgdG8gZG8hCi1lbmQKLQotIyBEbyB0aGUgYmFyZSBtaW5pbXVtIHJlcXVpcmVkIHRvIGV4ZWN1
dGUgY29kZS4gU2V0cyB1cCB0aGUgUEMsIGxlYXZlIHRoZSBDb2RlQmxvY2sqCi0jIGluIHQxLiBN
YXkgYWxzbyB0cmlnZ2VyIHByb2xvZ3VlIGVudHJ5IE9TUi4KLW1hY3JvIHByb2xvZ3VlKGNvZGVC
bG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0aCwgdHJhY2VTbG93UGF0aCkK
LSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDIpCi0gICAgCi0gICAgIyBTZXQg
dXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNob3VsZCBPU1IuCi0gICAgc3RvcmVw
IHQyLCBSZXR1cm5QQ1tjZnJdCi0gICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKLSAgICAgICAgY2Fs
bFNsb3dQYXRoKHRyYWNlU2xvd1BhdGgpCi0gICAgZW5kCi0gICAgY29kZUJsb2NrR2V0dGVyKHQx
KQotICAgIGlmIEpJVF9FTkFCTEVECi0gICAgICAgIGJhZGRpcyA1LCBDb2RlQmxvY2s6Om1fbGxp
bnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MV0sIC5jb250
aW51ZQotICAgICAgICBjQ2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCi0gICAgICAgIG1vdmUg
dDEsIGNmcgotICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgotICAgICAgICBsb2FkcCBSZXR1cm5Q
Q1tjZnJdLCB0MgotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikK
LSAgICAgICAgam1wIHQwCi0gICAgLnJlY292ZXI6Ci0gICAgICAgIGNvZGVCbG9ja0dldHRlcih0
MSkKLSAgICAuY29udGludWU6Ci0gICAgZW5kCi0gICAgY29kZUJsb2NrU2V0dGVyKHQxKQotICAg
IAotICAgICMgU2V0IHVwIHRoZSBQQy4KLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rp
b25zW3QxXSwgUEMKLWVuZAotCi0jIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdo
aWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotIyBNdXN0IGNhbGwgZGlzcGF0
Y2goMCkgYWZ0ZXIgY2FsbGluZyB0aGlzLgotbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihw
cm9maWxlQXJnU2tpcCkKLSAgICBpZiBWQUxVRV9QUk9GSUxFUgotICAgICAgICAjIFByb2ZpbGUg
dGhlIGFyZ3VtZW50cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIGRv
IHRoaXMuIFRoaXMKLSAgICAgICAgIyBjb2RlIGlzIHByZXR0eSBob3JyZW5kb3VzIGJlY2F1c2Ug
b2YgdGhlIGRpZmZlcmVuY2UgaW4gb3JkZXJpbmcgYmV0d2VlbgotICAgICAgICAjIGFyZ3VtZW50
cyBhbmQgdmFsdWUgcHJvZmlsZXMsIHRoZSBkZXNpcmUgdG8gaGF2ZSBhIHNpbXBsZSBsb29wLWRv
d24tdG8temVybwotICAgICAgICAjIGxvb3AsIGFuZCB0aGUgZGVzaXJlIHRvIHVzZSBvbmx5IHRo
cmVlIHJlZ2lzdGVycyBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgUEMgYW5kCi0gICAgICAgICMgdGhl
IGNvZGUgYmxvY2suIEl0IGlzIGxpa2VseSB0aGF0IHRoaXMgY29kZSBzaG91bGQgYmUgcmV3cml0
dGVuIGluIGEgbW9yZQotICAgICAgICAjIG9wdGltYWwgd2F5IGZvciBhcmNoaXRlY3R1cmVzIHRo
YXQgaGF2ZSBtb3JlIHRoYW4gZml2ZSByZWdpc3RlcnMgYXZhaWxhYmxlCi0gICAgICAgICMgZm9y
IGFyYml0cmFyeSB1c2UgaW4gdGhlIGludGVycHJldGVyLgotICAgICAgICBsb2FkaSBDb2RlQmxv
Y2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIHQwCi0gICAgICAgIGFkZGkgLXByb2ZpbGVBcmdTa2lw
LCB0MCAjIFVzZSBhZGRpIGJlY2F1c2UgdGhhdCdzIHdoYXQgaGFzIHRoZSBwZWVwaG9sZQotICAg
ICAgICBhc3NlcnQobWFjcm8gKG9rKSBiaWd0ZXEgdDAsIDAsIG9rIGVuZCkKLSAgICAgICAgYnRp
eiB0MCwgLmFyZ3VtZW50UHJvZmlsZURvbmUKLSAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2Fy
Z3VtZW50VmFsdWVQcm9maWxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0MV0sIHQzCi0gICAgICAg
IG11bGkgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDAsIHQyICMgQWFhYWFoaGhoISBOZWVkIHN0cmVu
Z3RoIHJlZHVjdGlvbiEKLSAgICAgICAgbmVnaSB0MAotICAgICAgICBsc2hpZnRpIDMsIHQwCi0g
ICAgICAgIGFkZHAgdDIsIHQzCi0gICAgLmFyZ3VtZW50UHJvZmlsZUxvb3A6Ci0gICAgICAgIGxv
YWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRhZ09mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAq
IDhbY2ZyLCB0MF0sIHQyCi0gICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDMKLSAg
ICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBW
YWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFRhZ09mZnNldFt0M10KLSAgICAgICAgbG9hZGkgVGhp
c0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhb
Y2ZyLCB0MF0sIHQyCi0gICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2Yg
VmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBQYXlsb2FkT2Zmc2V0W3Qz
XQotICAgICAgICBiYWRkaW56IDgsIHQwLCAuYXJndW1lbnRQcm9maWxlTG9vcAotICAgIC5hcmd1
bWVudFByb2ZpbGVEb25lOgotICAgIGVuZAotICAgICAgICAKLSAgICAjIENoZWNrIHN0YWNrIGhl
aWdodC4KLSAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2FsbGVlUmVnaXN0ZXJzW3QxXSwgdDAK
LSAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQyCi0gICAgbG9hZHAgSlNH
bG9iYWxEYXRhOjppbnRlcnByZXRlclt0Ml0sIHQyICAgIyBGSVhNRTogQ2FuIGdldCB0byB0aGUg
UmVnaXN0ZXJGaWxlIGZyb20gdGhlIEpJVFN0YWNrRnJhbWUKLSAgICBsc2hpZnRpIDMsIHQwCi0g
ICAgYWRkcCB0MCwgY2ZyLCB0MAotICAgIGJwYWVxIEludGVycHJldGVyOjptX3JlZ2lzdGVyRmls
ZSArIFJlZ2lzdGVyRmlsZTo6bV9lbmRbdDJdLCB0MCwgLnN0YWNrSGVpZ2h0T0sKLQotICAgICMg
U3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8gY2FsbCBhIHNsb3dfcGF0aC4KLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2ZpbGVfY2hlY2spCi0uc3RhY2tIZWlnaHRP
SzoKLWVuZAotCiAjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdo
YXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgogbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvd19wYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENv
dW50W2Nmcl0sIHQwCkBAIC01MDYsMzggKzI4Myw2IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVj
ayhkb25lTGFiZWwsIHNsb3cKICAgICBqbXAgZG9uZUxhYmVsCiBlbmQKIAotX2xsaW50X3Byb2dy
YW1fcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5v
dEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2Vf
cHJvbG9ndWUpCi0gICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfZXZhbF9wcm9sb2d1ZToKLSAg
ICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxv
Y2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKLSAgICBk
aXNwYXRjaCgwKQotCi0KLV9sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZToKLSAgICBw
cm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2Nr
U2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsLCBfbGxpbnRfdHJhY2Vf
cHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NhbGwpCi0uZnVuY3Rpb25Gb3JDYWxsQmVnaW46Ci0gICAg
ZnVuY3Rpb25Jbml0aWFsaXphdGlvbigwKQotICAgIGRpc3BhdGNoKDApCi0gICAgCi0KLV9sbGlu
dF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9u
Rm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xs
aW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0LCBfbGxpbnRfdHJhY2VfcHJvbG9n
dWVfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCkKLS5mdW5jdGlvbkZvckNvbnN0cnVjdEJlZ2luOgot
ICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMSkKLSAgICBkaXNwYXRjaCgwKQotICAgIAotCi1f
bGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6Ci0gICAgcHJvbG9ndWUoZnVuY3Rp
b25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50
X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eUNoZWNrLCBfbGxpbnRfdHJhY2VfYXJp
dHlDaGVja19mb3JfY2FsbCkKLSAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0aW9uRm9yQ2Fs
bEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykKLQotCi1fbGxpbnRfZnVu
Y3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjazoKLSAgICBwcm9sb2d1ZShmdW5jdGlvbkZv
ckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGlu
dF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eUNoZWNrLCBfbGxpbnRfdHJh
Y2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQotICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVu
Y3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1Y3RfYXJpdHlD
aGVjaykKIAogIyBJbnN0cnVjdGlvbiBpbXBsZW1lbnRhdGlvbnMKIApAQCAtNTgzLDM5ICszMjgs
NiBAQCBfbGxpbnRfb3BfY3JlYXRlX2FyZ3VtZW50czoKICAgICBkaXNwYXRjaCgyKQogCiAKLW1h
Y3JvIGFsbG9jYXRlQmFzaWNKU09iamVjdChzaXplQ2xhc3NJbmRleCwgY2xhc3NJbmZvT2Zmc2V0
LCBzdHJ1Y3R1cmUsIHJlc3VsdCwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBzbG93Q2FzZSkKLSAgICBp
ZiBBTFdBWVNfQUxMT0NBVEVfU0xPVwotICAgICAgICBqbXAgc2xvd0Nhc2UKLSAgICBlbHNlCi0g
ICAgICAgIGNvbnN0IG9mZnNldE9mTXlTaXplQ2xhc3MgPQotICAgICAgICAgICAgSlNHbG9iYWxE
YXRhOjpoZWFwICsKLSAgICAgICAgICAgIEhlYXA6Om1fb2JqZWN0U3BhY2UgKwotICAgICAgICAg
ICAgTWFya2VkU3BhY2U6Om1fbm9ybWFsU3BhY2UgKwotICAgICAgICAgICAgTWFya2VkU3BhY2U6
OlN1YnNwYWNlOjpwcmVjaXNlQWxsb2NhdG9ycyArCi0gICAgICAgICAgICBzaXplQ2xhc3NJbmRl
eCAqIHNpemVvZiBNYXJrZWRBbGxvY2F0b3IKLSAgICAgICAgCi0gICAgICAgICMgRklYTUU6IHdl
IGNhbiBnZXQgdGhlIGdsb2JhbCBkYXRhIGluIG9uZSBsb2FkIGZyb20gdGhlIHN0YWNrLgotICAg
ICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgc2NyYXRjaDEKLSAgICAgICAgbG9hZHAgQ29kZUJs
b2NrOjptX2dsb2JhbERhdGFbc2NyYXRjaDFdLCBzY3JhdGNoMQotICAgICAgICAKLSAgICAgICAg
IyBHZXQgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuICAgIAotICAgICAgICBsb2FkcCBv
ZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2Ny
YXRjaDFdLCByZXN1bHQKLSAgICAgICAgYnRweiByZXN1bHQsIHNsb3dDYXNlCi0gICAgICAgIAot
ICAgICAgICAjIFJlbW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4KLSAgICAgICAg
bG9hZHAgW3Jlc3VsdF0sIHNjcmF0Y2gyCi0gICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgb2Zmc2V0
T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gx
XQotICAgIAotICAgICAgICAjIEluaXRpYWxpemUgdGhlIG9iamVjdC4KLSAgICAgICAgbG9hZHAg
Y2xhc3NJbmZvT2Zmc2V0W3NjcmF0Y2gxXSwgc2NyYXRjaDIKLSAgICAgICAgc3RvcmVwIHNjcmF0
Y2gyLCBbcmVzdWx0XQotICAgICAgICBzdG9yZXAgc3RydWN0dXJlLCBKU0NlbGw6Om1fc3RydWN0
dXJlW3Jlc3VsdF0KLSAgICAgICAgc3RvcmVwIDAsIEpTT2JqZWN0OjptX2luaGVyaXRvcklEW3Jl
c3VsdF0KLSAgICAgICAgYWRkcCBzaXplb2YgSlNPYmplY3QsIHJlc3VsdCwgc2NyYXRjaDEKLSAg
ICAgICAgc3RvcmVwIHNjcmF0Y2gxLCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbcmVzdWx0
XQotICAgIGVuZAotZW5kCi0KIF9sbGludF9vcF9jcmVhdGVfdGhpczoKICAgICB0cmFjZUV4ZWN1
dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCkBAIC02NzYsMjQgKzM4OCw2IEBAIF9sbGludF9v
cF9uZXdfb2JqZWN0OgogICAgIGRpc3BhdGNoKDIpCiAKIAotX2xsaW50X29wX25ld19hcnJheToK
LSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
bmV3X2FycmF5KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX25ld19hcnJheV9idWZm
ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25ld19hcnJheV9idWZmZXIpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbmV3
X3JlZ2V4cDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfbmV3X3JlZ2V4cCkKLSAgICBkaXNwYXRjaCgzKQotCi0KIF9sbGludF9vcF9tb3Y6
CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDhbUENdLCB0MQpAQCAtODAyLDcgKzQ5
Niw3IEBAIF9sbGludF9vcF9uZXFfbnVsbDoKICAgICBkaXNwYXRjaCgzKQogCiAKLW1hY3JvIHN0
cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93X3BhdGgpCittYWNybyBzdHJpY3RFcShlcXVh
bGl0eU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRp
IDhbUENdLCB0MAogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTgy
Miw3ICs1MTYsNyBAQCBtYWNybyBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wCiAg
ICAgZGlzcGF0Y2goNCkKIAogLnNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAg
ICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAgICAgZGlzcGF0Y2goNCkKIGVuZAogCkBAIC04MzYs
MzAgKzUzMCw2IEBAIF9sbGludF9vcF9uc3RyaWN0ZXE6CiAgICAgc3RyaWN0RXEobWFjcm8gKGxl
ZnQsIHJpZ2h0LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLCBfbGxpbnRf
c2xvd19wYXRoX25zdHJpY3RlcSkKIAogCi1fbGxpbnRfb3BfbGVzczoKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbGVzcykKLSAgICBkaXNw
YXRjaCg0KQotCi0KLV9sbGludF9vcF9sZXNzZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3NlcSkKLSAgICBkaXNwYXRjaCg0KQot
Ci0KLV9sbGludF9vcF9ncmVhdGVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVyKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xs
aW50X29wX2dyZWF0ZXJlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcmVxKQotICAgIGRpc3BhdGNoKDQpCi0KLQogX2xsaW50
X29wX3ByZV9pbmM6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDRbUENdLCB0MApA
QCAtOTY4LDcgKzYzOCw3IEBAIF9sbGludF9vcF9uZWdhdGU6CiAgICAgZGlzcGF0Y2goMykKIAog
Ci1tYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91
YmxlT3BlcmF0aW9uLCBzbG93X3BhdGgpCittYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVn
ZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKICAgICBsb2Fk
aSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10sIHQwCiAgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZSh0MiwgdDMsIHQxKQpAQCAtMTAwNiwxOCArNjc2LDE4IEBAIG1hY3JvIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBkaXNwYXRjaCg1KQogCiAuc2xvdzoKLSAgICBj
YWxsU2xvd1BhdGgoc2xvd19wYXRoKQorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAgICBk
aXNwYXRjaCg1KQogZW5kCiAKLW1hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRpb24sIGRvdWJs
ZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gYmluYXJ5T3AoaW50ZWdlck9wZXJhdGlvbiwg
ZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKICAgICBiaW5hcnlPcEN1c3RvbVN0b3JlKAogICAg
ICAgICBtYWNybyAoaW50MzJUYWcsIGxlZnQsIHJpZ2h0LCBzbG93LCBpbmRleCkKICAgICAgICAg
ICAgIGludGVnZXJPcGVyYXRpb24obGVmdCwgcmlnaHQsIHNsb3cpCiAgICAgICAgICAgICBzdG9y
ZWkgaW50MzJUYWcsIFRhZ09mZnNldFtjZnIsIGluZGV4LCA4XQogICAgICAgICAgICAgc3RvcmVp
IHJpZ2h0LCBQYXlsb2FkT2Zmc2V0W2NmciwgaW5kZXgsIDhdCiAgICAgICAgIGVuZCwKLSAgICAg
ICAgZG91YmxlT3BlcmF0aW9uLCBzbG93X3BhdGgpCisgICAgICAgIGRvdWJsZU9wZXJhdGlvbiwg
c2xvd1BhdGgpCiBlbmQKIAogX2xsaW50X29wX2FkZDoKQEAgLTEwNzMsMTMgKzc0Myw3IEBAIF9s
bGludF9vcF9kaXY6CiAgICAgICAgIF9sbGludF9zbG93X3BhdGhfZGl2KQogCiAKLV9sbGludF9v
cF9tb2Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX21vZCkKLSAgICBkaXNwYXRjaCg0KQotCi0KLW1hY3JvIGJpdE9wKG9wZXJhdGlvbiwg
c2xvd19wYXRoLCBhZHZhbmNlKQorbWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93UGF0aCwgYWR2
YW5jZSkKICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10sIHQwCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQpAQCAtMTA5Myw3ICs3NTcsNyBAQCBtYWNy
byBiaXRPcChvcGVyYXRpb24sIHNsb3dfcGF0aCwgYWR2YW5jCiAgICAgZGlzcGF0Y2goYWR2YW5j
ZSkKIAogLnNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1Bh
dGgoc2xvd1BhdGgpCiAgICAgZGlzcGF0Y2goYWR2YW5jZSkKIGVuZAogCkBAIC0xMTk4LDY2ICs4
NjIsNiBAQCBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKICAgICBkaXNwYXRjaCg1KQogCiAKLV9sbGlu
dF9vcF90eXBlb2Y6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3R5cGVvZikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc191
bmRlZmluZWQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2lzX3VuZGVmaW5lZCkKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9p
c19ib29sZWFuOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9pc19ib29sZWFuKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lz
X251bWJlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfaXNfbnVtYmVyKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX3N0
cmluZzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaXNfc3RyaW5nKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX29iamVj
dDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfaXNfb2JqZWN0KQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX2Z1bmN0aW9u
OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9pc19mdW5jdGlvbikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pbjoKLSAgICB0
cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW4pCi0g
ICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcmVzb2x2ZToKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZSkKLSAgICBkaXNw
YXRjaCg0KQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3NraXA6Ci0gICAgdHJhY2VFeGVjdXRpb24o
KQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfc2tpcCkKLSAgICBk
aXNwYXRjaCg1KQotCi0KIG1hY3JvIHJlc29sdmVHbG9iYWwoc2l6ZSwgc2xvdykKICAgICAjIE9w
ZXJhbmRzIGFyZSBhcyBmb2xsb3dzOgogICAgICMgNFtQQ10gICBEZXN0aW5hdGlvbiBmb3IgdGhl
IGxvYWQuCkBAIC0xNDA4LDMwICsxMDEyLDYgQEAgX2xsaW50X29wX3B1dF9nbG9iYWxfdmFyOgog
ICAgIGRpc3BhdGNoKDMpCiAKIAotX2xsaW50X29wX3Jlc29sdmVfYmFzZToKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9iYXNl
KQotICAgIGRpc3BhdGNoKDUpCi0KLQotX2xsaW50X29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHM6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3Bf
cmVzb2x2ZV93aXRoX2Jhc2U6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfd2l0aF9iYXNlKQotICAgIGRpc3BhdGNoKDUpCi0K
LQotX2xsaW50X29wX3Jlc29sdmVfd2l0aF90aGlzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfdGhpcykKLSAgICBk
aXNwYXRjaCg1KQotCi0KIF9sbGludF9vcF9nZXRfYnlfaWQ6CiAgICAgdHJhY2VFeGVjdXRpb24o
KQogICAgICMgV2Ugb25seSBkbyBtb25vbW9ycGhpYyBnZXRfYnlfaWQgY2FjaGluZyBmb3Igbm93
LCBhbmQgd2UgZG8gbm90IG1vZGlmeSB0aGUKQEAgLTE1MzksMTIgKzExMTksNiBAQCBfbGxpbnRf
b3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsOgogICAgICAgICBlbmQpCiAKIAotX2xsaW50
X29wX2RlbF9ieV9pZDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfZGVsX2J5X2lkKQotICAgIGRpc3BhdGNoKDQpCi0KLQogX2xsaW50X29w
X2dldF9ieV92YWw6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRwIENvZGVCbG9ja1tj
ZnJdLCB0MQpAQCAtMTY1NiwyNCArMTIzMCw2IEBAIF9sbGludF9vcF9wdXRfYnlfdmFsOgogICAg
IGRpc3BhdGNoKDQpCiAKIAotX2xsaW50X29wX2RlbF9ieV92YWw6Ci0gICAgdHJhY2VFeGVjdXRp
b24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV92YWwpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcHV0X2J5X2luZGV4OgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlfaW5kZXgpCi0g
ICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcHV0X2dldHRlcl9zZXR0ZXI6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9nZXR0
ZXJfc2V0dGVyKQotICAgIGRpc3BhdGNoKDUpCi0KLQogX2xsaW50X29wX2xvb3A6CiAgICAgbm9w
CiBfbGxpbnRfb3Bfam1wOgpAQCAtMTY4MSwxMiArMTIzNyw2IEBAIF9sbGludF9vcF9qbXA6CiAg
ICAgZGlzcGF0Y2hCcmFuY2goNFtQQ10pCiAKIAotX2xsaW50X29wX2ptcF9zY29wZXM6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2ptcF9z
Y29wZXMpCi0gICAgZGlzcGF0Y2goMCkKLQotCiBtYWNybyBqdW1wVHJ1ZU9yRmFsc2UoY29uZGl0
aW9uT3AsIHNsb3cpCiAgICAgbG9hZGkgNFtQQ10sIHQxCiAgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZVBheWxvYWQodDEsIEJvb2xlYW5UYWcsIHQwLCAuc2xvdykKQEAgLTE3MDEsMjYgKzEyNTEs
MTAgQEAgbWFjcm8ganVtcFRydWVPckZhbHNlKGNvbmRpdGlvbk9wLCBzbG93KQogICAgIGRpc3Bh
dGNoKDApCiBlbmQKIAotX2xsaW50X29wX2xvb3BfaWZfdHJ1ZToKLSAgICBub3AKLV9sbGludF9v
cF9qdHJ1ZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAganVtcFRydWVPckZhbHNlKAotICAg
ICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRpbnogdmFsdWUsIHRhcmdldCBlbmQsCi0gICAg
ICAgIF9sbGludF9zbG93X3BhdGhfanRydWUpCi0KLQotX2xsaW50X29wX2xvb3BfaWZfZmFsc2U6
Ci0gICAgbm9wCi1fbGxpbnRfb3BfamZhbHNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBq
dW1wVHJ1ZU9yRmFsc2UoCi0gICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGl6IHZhbHVl
LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pmYWxzZSkKLQogCiBtYWNy
byBlcXVhbE51bGwoY2VsbEhhbmRsZXIsIGltbWVkaWF0ZUhhbmRsZXIpCiAgICAgbG9hZGkgNFtQ
Q10sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCiAgICAgbG9hZGkgVGFnT2Zmc2V0W2Nm
ciwgdDAsIDhdLCB0MQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0sIHQwCiAg
ICAgYmluZXEgdDEsIENlbGxUYWcsIC5pbW1lZGlhdGUKQEAgLTE3NjMsNyArMTI5Nyw3IEBAIF9s
bGludF9vcF9qbmVxX3B0cjoKICAgICBkaXNwYXRjaCg0KQogCiAKLW1hY3JvIGNvbXBhcmUoaW50
ZWdlckNvbXBhcmUsIGRvdWJsZUNvbXBhcmUsIHNsb3dfcGF0aCkKK21hY3JvIGNvbXBhcmUoaW50
ZWdlckNvbXBhcmUsIGRvdWJsZUNvbXBhcmUsIHNsb3dQYXRoKQogICAgIGxvYWRpIDRbUENdLCB0
MgogICAgIGxvYWRpIDhbUENdLCB0MwogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQw
LCB0MSkKQEAgLTE3OTcsODcgKzEzMzEsMTAgQEAgbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFy
ZSwgZG91YmxlQ29tcAogICAgIGRpc3BhdGNoQnJhbmNoKDEyW1BDXSkKIAogLnNsb3c6Ci0gICAg
Y2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAgICAg
ZGlzcGF0Y2goMCkKIGVuZAogCi1fbGxpbnRfb3BfbG9vcF9pZl9sZXNzOgotICAgIG5vcAotX2xs
aW50X29wX2psZXNzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHQgbGVmdCwgcmlnaHQs
IHRhcmdldCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93X3BhdGhfamxlc3MpCi0KLQotX2xsaW50
X29wX2pubGVzczoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3RlcXVuIGxlZnQsIHJp
Z2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzcykKLQotCi1f
bGxpbnRfb3BfbG9vcF9pZl9ncmVhdGVyOgotICAgIG5vcAotX2xsaW50X29wX2pncmVhdGVyOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHRhcmdldCkgYmlndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFj
cm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIF9sbGludF9zbG93X3BhdGhfamdyZWF0ZXIpCi0KLQotX2xsaW50X29wX2puZ3JlYXRl
cjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHRlcXVuIGxlZnQsIHJpZ2h0LCB0YXJn
ZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2puZ3JlYXRlcikKLQotCi1fbGxpbnRf
b3BfbG9vcF9pZl9sZXNzZXE6Ci0gICAgbm9wCi1fbGxpbnRfb3Bfamxlc3NlcToKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0
YXJnZXQpIGJpbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAg
ICAgX2xsaW50X3Nsb3dfcGF0aF9qbGVzc2VxKQotCi0KLV9sbGludF9vcF9qbmxlc3NlcToKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJp
Z2h0LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3Jv
IChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIF9sbGludF9zbG93X3BhdGhfam5sZXNzZXEpCi0KLQotX2xsaW50X29wX2xvb3BfaWZf
Z3JlYXRlcmVxOgotICAgIG5vcAotX2xsaW50X29wX2pncmVhdGVyZXE6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0
KSBiaWd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCBy
aWdodCwgdGFyZ2V0KSBiZGd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIF9s
bGludF9zbG93X3BhdGhfamdyZWF0ZXJlcSkKLQotCi1fbGxpbnRfb3Bfam5ncmVhdGVyZXE6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCBy
aWdodCwgdGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNy
byAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdHVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAot
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2puZ3JlYXRlcmVxKQotCi0KLV9sbGludF9vcF9sb29w
X2hpbnQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29w
KCkKLSAgICBkaXNwYXRjaCgxKQotCiAKIF9sbGludF9vcF9zd2l0Y2hfaW1tOgogICAgIHRyYWNl
RXhlY3V0aW9uKCkKQEAgLTE5MzMsMTkgKzEzOTAsMTMgQEAgX2xsaW50X29wX3N3aXRjaF9jaGFy
OgogICAgIGJpYWVxIHQwLCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JT
aXplT2Zmc2V0W3QyXSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCiAgICAgbG9hZHAgU2ltcGxl
SnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDIKICAg
ICBsb2FkaSBbdDIsIHQwLCA0XSwgdDEKLSAgICBidGl6IHQxLCAub3BTd2l0Y2hJbW1GYWxsVGhy
b3VnaAorICAgIGJ0aXogdDEsIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAogICAgIGRpc3BhdGNo
QnJhbmNoV2l0aE9mZnNldCh0MSkKIAogLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoOgogICAgIGRp
c3BhdGNoQnJhbmNoKDhbUENdKQogCiAKLV9sbGludF9vcF9zd2l0Y2hfc3RyaW5nOgotICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hf
c3RyaW5nKQotICAgIGRpc3BhdGNoKDApCi0KLQogX2xsaW50X29wX25ld19mdW5jOgogICAgIHRy
YWNlRXhlY3V0aW9uKCkKICAgICBidGl6IDEyW1BDXSwgLm9wTmV3RnVuY1VuY2hlY2tlZApAQCAt
MTk1NywxMyArMTQwOCw3IEBAIF9sbGludF9vcF9uZXdfZnVuYzoKICAgICBkaXNwYXRjaCg0KQog
CiAKLV9sbGludF9vcF9uZXdfZnVuY19leHA6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19mdW5jX2V4cCkKLSAgICBkaXNwYXRjaCgz
KQotCi0KLW1hY3JvIGRvQ2FsbChzbG93X3BhdGgpCittYWNybyBkb0NhbGwoc2xvd1BhdGgpCiAg
ICAgbG9hZGkgNFtQQ10sIHQwCiAgICAgbG9hZGkgMTZbUENdLCB0MQogICAgIGxvYWRwIExMSW50
Q2FsbExpbmtJbmZvOjpjYWxsZWVbdDFdLCB0MgpAQCAtMTk4Nyw2NiArMTQzMiw5IEBAIG1hY3Jv
IGRvQ2FsbChzbG93X3BhdGgpCiAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQogCiAub3BDYWxsU2xv
dzoKLSAgICBzbG93UGF0aEZvckNhbGwoNiwgc2xvd19wYXRoKQorICAgIHNsb3dQYXRoRm9yQ2Fs
bCg2LCBzbG93UGF0aCkKIGVuZAogCi1fbGxpbnRfb3BfY2FsbDoKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgZG9DYWxsKF9sbGludF9zbG93X3BhdGhfY2FsbCkKLQotCi1fbGxpbnRfb3BfY29u
c3RydWN0OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBkb0NhbGwoX2xsaW50X3Nsb3dfcGF0
aF9jb25zdHJ1Y3QpCi0KLQotX2xsaW50X29wX2NhbGxfdmFyYXJnczoKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgc2xvd1BhdGhGb3JDYWxsKDYsIF9sbGludF9zbG93X3BhdGhfY2FsbF92YXJh
cmdzKQotCi0KLV9sbGludF9vcF9jYWxsX2V2YWw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IAotICAgICMgRXZhbCBpcyBleGVjdXRlZCBpbiBvbmUgb2YgdHdvIG1vZGVzOgotICAgICMKLSAg
ICAjIDEpIFdlIGZpbmQgdGhhdCB3ZSdyZSByZWFsbHkgaW52b2tpbmcgZXZhbCgpIGluIHdoaWNo
IGNhc2UgdGhlCi0gICAgIyAgICBleGVjdXRpb24gaXMgcGVyZm9tZWQgZW50aXJlbHkgaW5zaWRl
IHRoZSBzbG93X3BhdGgsIGFuZCBpdAotICAgICMgICAgcmV0dXJucyB0aGUgUEMgb2YgYSBmdW5j
dGlvbiB0aGF0IGp1c3QgcmV0dXJucyB0aGUgcmV0dXJuIHZhbHVlCi0gICAgIyAgICB0aGF0IHRo
ZSBldmFsIHJldHVybmVkLgotICAgICMKLSAgICAjIDIpIFdlIGZpbmQgdGhhdCB3ZSdyZSBpbnZv
a2luZyBzb21ldGhpbmcgY2FsbGVkIGV2YWwoKSB0aGF0IGlzIG5vdAotICAgICMgICAgdGhlIHJl
YWwgZXZhbC4gVGhlbiB0aGUgc2xvd19wYXRoIHJldHVybnMgdGhlIFBDIG9mIHRoZSB0aGluZyB0
bwotICAgICMgICAgY2FsbCwgYW5kIHdlIGNhbGwgaXQuCi0gICAgIwotICAgICMgVGhpcyBhbGxv
d3MgdXMgdG8gaGFuZGxlIHR3byBjYXNlcywgd2hpY2ggd291bGQgcmVxdWlyZSBhIHRvdGFsIG9m
Ci0gICAgIyB1cCB0byBmb3VyIHBpZWNlcyBvZiBzdGF0ZSB0aGF0IGNhbm5vdCBiZSBlYXNpbHkg
cGFja2VkIGludG8gdHdvCi0gICAgIyByZWdpc3RlcnMgKEMgZnVuY3Rpb25zIGNhbiByZXR1cm4g
dXAgdG8gdHdvIHJlZ2lzdGVycywgZWFzaWx5KToKLSAgICAjCi0gICAgIyAtIFRoZSBjYWxsIGZy
YW1lIHJlZ2lzdGVyLiBUaGlzIG1heSBvciBtYXkgbm90IGhhdmUgYmVlbiBtb2RpZmllZAotICAg
ICMgICBieSB0aGUgc2xvd19wYXRoLCBidXQgdGhlIGNvbnZlbnRpb24gaXMgdGhhdCBpdCByZXR1
cm5zIGl0LiBJdCdzIG5vdAotICAgICMgICB0b3RhbGx5IGNsZWFyIGlmIHRoYXQncyBuZWNlc3Nh
cnksIHNpbmNlIHRoZSBjZnIgaXMgY2FsbGVlIHNhdmUuCi0gICAgIyAgIEJ1dCB0aGF0J3Mgb3Vy
IHN0eWxlIGluIHRoaXMgaGVyZSBpbnRlcnByZXRlciBzbyB3ZSBzdGljayB3aXRoIGl0LgotICAg
ICMKLSAgICAjIC0gQSBiaXQgdG8gc2F5IGlmIHRoZSBzbG93X3BhdGggc3VjY2Vzc2Z1bGx5IGV4
ZWN1dGVkIHRoZSBldmFsIGFuZCBoYXMKLSAgICAjICAgdGhlIHJldHVybiB2YWx1ZSwgb3IgZGlk
IG5vdCBleGVjdXRlIHRoZSBldmFsIGJ1dCBoYXMgYSBQQyBmb3IgdXMKLSAgICAjICAgdG8gY2Fs
bC4KLSAgICAjCi0gICAgIyAtIEVpdGhlcjoKLSAgICAjICAgLSBUaGUgSlMgcmV0dXJuIHZhbHVl
ICh0d28gcmVnaXN0ZXJzKSwgb3IKLSAgICAjCi0gICAgIyAgIC0gVGhlIFBDIHRvIGNhbGwuCi0g
ICAgIwotICAgICMgSXQgdHVybnMgb3V0IHRvIGJlIGVhc2llciB0byBqdXN0IGFsd2F5cyBoYXZl
IHRoaXMgcmV0dXJuIHRoZSBjZnIKLSAgICAjIGFuZCBhIFBDIHRvIGNhbGwsIGFuZCB0aGF0IFBD
IG1heSBiZSBhIGR1bW15IHRodW5rIHRoYXQganVzdAotICAgICMgcmV0dXJucyB0aGUgSlMgdmFs
dWUgdGhhdCB0aGUgZXZhbCByZXR1cm5lZC4KLSAgICAKLSAgICBzbG93UGF0aEZvckNhbGwoNCwg
X2xsaW50X3Nsb3dfcGF0aF9jYWxsX2V2YWwpCi0KLQotX2xsaW50X2dlbmVyaWNfcmV0dXJuX3Bv
aW50OgotICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLQogCiBfbGxpbnRfb3BfdGVhcl9vZmZfYWN0
aXZhdGlvbjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCkBAIC0yMDcwLDEzICsxNDU4LDYgQEAgX2xs
aW50X29wX3RlYXJfb2ZmX2FyZ3VtZW50czoKICAgICBkaXNwYXRjaCgyKQogCiAKLW1hY3JvIGRv
UmV0dXJuKCkKLSAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgotICAgIGxvYWRwIENhbGxlckZy
YW1lW2Nmcl0sIGNmcgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQot
ICAgIHJldAotZW5kCi0KIF9sbGludF9vcF9yZXQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAg
IGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCkBAIC0yMTExLDE4ICsxNDkyLDYgQEAgX2xs
aW50X29wX3JldF9vYmplY3Rfb3JfdGhpczoKICAgICBkb1JldHVybigpCiAKIAotX2xsaW50X29w
X21ldGhvZF9jaGVjazoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgIyBXZSBpZ25vcmUgbWV0
aG9kIGNoZWNrcyBhbmQgdXNlIG5vcm1hbCBnZXRfYnlfaWQgb3B0aW1pemF0aW9ucy4KLSAgICBk
aXNwYXRjaCgxKQotCi0KLV9sbGludF9vcF9zdHJjYXQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQot
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N0cmNhdCkKLSAgICBkaXNwYXRjaCg0
KQotCi0KIF9sbGludF9vcF90b19wcmltaXRpdmU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAg
IGxvYWRpIDhbUENdLCB0MgpAQCAtMjE0MSwxMiArMTUxMCw2IEBAIF9sbGludF9vcF90b19wcmlt
aXRpdmU6CiAgICAgZGlzcGF0Y2goMykKIAogCi1fbGxpbnRfb3BfZ2V0X3BuYW1lczoKLSAgICB0
cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X3Bu
YW1lcykKLSAgICBkaXNwYXRjaCgwKSAjIFRoZSBzbG93X3BhdGggZWl0aGVyIGFkdmFuY2VzIHRo
ZSBQQyBvciBqdW1wcyB1cyB0byBzb21ld2hlcmUgZWxzZS4KLQotCiBfbGxpbnRfb3BfbmV4dF9w
bmFtZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgMTJbUENdLCB0MQpAQCAtMjE4
NywyNCArMTU1MCw2IEBAIF9sbGludF9vcF9uZXh0X3BuYW1lOgogICAgIGRpc3BhdGNoKDApCiAK
IAotX2xsaW50X29wX3B1c2hfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfc2NvcGUpCi0gICAgZGlzcGF0Y2goMikKLQot
Ci1fbGxpbnRfb3BfcG9wX3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wb3Bfc2NvcGUpCi0gICAgZGlzcGF0Y2goMSkKLQotCi1f
bGxpbnRfb3BfcHVzaF9uZXdfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfbmV3X3Njb3BlKQotICAgIGRpc3BhdGNoKDQp
Ci0KLQogX2xsaW50X29wX2NhdGNoOgogICAgICMgVGhpcyBpcyB3aGVyZSB3ZSBlbmQgdXAgZnJv
bSB0aGUgSklUJ3MgdGhyb3cgdHJhbXBvbGluZSAoYmVjYXVzZSB0aGUKICAgICAjIG1hY2hpbmUg
Y29kZSByZXR1cm4gYWRkcmVzcyB3aWxsIGJlIHNldCB0byBfbGxpbnRfb3BfY2F0Y2gpLCBhbmQg
ZnJvbQpAQCAtMjIyNiwxOCArMTU3MSw2IEBAIF9sbGludF9vcF9jYXRjaDoKICAgICBkaXNwYXRj
aCgyKQogCiAKLV9sbGludF9vcF90aHJvdzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3cpCi0gICAgZGlzcGF0Y2goMikKLQotCi1f
bGxpbnRfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9yOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvd19yZWZlcmVuY2VfZXJyb3IpCi0g
ICAgZGlzcGF0Y2goMikKLQotCiBfbGxpbnRfb3BfanNyOgogICAgIHRyYWNlRXhlY3V0aW9uKCkK
ICAgICBsb2FkaSA0W1BDXSwgdDAKQEAgLTIyNTMsMzQgKzE1ODYsMTEgQEAgX2xsaW50X29wX3Ny
ZXQ6CiAgICAgZGlzcGF0Y2goMCkKIAogCi1fbGxpbnRfb3BfZGVidWc6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlYnVnKQotICAgIGRp
c3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZlcmVu
Y2Vbc3BdLCB0MAotICAgIGJ0cHogW3QwXSwgLm9wUHJvZmlsZVdpbGxDYWxsRG9uZQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQotLm9wUHJvZmls
ZVdpbGxDYWxsRG9uZToKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF9wcm9maWxlX2Rp
ZF9jYWxsOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpl
bmFibGVkUHJvZmlsZXJSZWZlcmVuY2Vbc3BdLCB0MAotICAgIGJ0cHogW3QwXSwgLm9wUHJvZmls
ZVdpbGxDYWxsRG9uZQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVf
ZGlkX2NhbGwpCi0ub3BQcm9maWxlRGlkQ2FsbERvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCiBf
bGxpbnRfb3BfZW5kOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBjaGVja1N3aXRjaFRvSklU
Rm9yRXBpbG9ndWUoKQogICAgIGxvYWRpIDRbUENdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50
KHQwKQogICAgIGxvYWRpIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgdDEKICAgICBsb2FkaSBQYXls
b2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MAogICAgIGRvUmV0dXJuKCkKQEAgLTIzNDEsNzkgKzE2
NTEsMyBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgam1w
IF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiBlbmQKIAotX2xsaW50X25h
dGl2ZV9jYWxsX3RyYW1wb2xpbmU6Ci0gICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhl
Y3V0YWJsZTo6bV9mdW5jdGlvbikKLQotCi1fbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9s
aW5lOgotICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fY29uc3Ry
dWN0b3IpCi0KLQotIyBMYXN0bHksIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBsaW5rIGV2ZW4gdGhv
dWdoIHdlIGRvbid0IHN1cHBvcnQgYWxsIG9wY29kZXMuCi0jIFRoZXNlIG9wY29kZXMgc2hvdWxk
IG5ldmVyIGFyaXNlIHdoZW4gdXNpbmcgTExJbnQgb3IgZWl0aGVyIEpJVC4gV2UgYXNzZXJ0Ci0j
IGFzIG11Y2guCi0KLW1hY3JvIG5vdFN1cHBvcnRlZCgpCi0gICAgaWYgQVNTRVJUX0VOQUJMRUQK
LSAgICAgICAgY3Jhc2goKQotICAgIGVsc2UKLSAgICAgICAgIyBXZSBzaG91bGQgdXNlIHdoYXRl
dmVyIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBpcywganVzdCB0bwotICAgICAg
ICAjIGVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgZ2FwIGJldHdlZW4gaW5zdHJ1Y3Rpb24gbGFiZWxz
LiBJZiBtdWx0aXBsZQotICAgICAgICAjIHNtYWxsZXN0IGluc3RydWN0aW9ucyBleGlzdCwgd2Ug
c2hvdWxkIHBpY2sgdGhlIG9uZSB0aGF0IGlzIG1vc3QKLSAgICAgICAgIyBsaWtlbHkgcmVzdWx0
IGluIGV4ZWN1dGlvbiBiZWluZyBoYWx0ZWQuIEN1cnJlbnRseSB0aGF0IGlzIHRoZSBicmVhawot
ICAgICAgICAjIGluc3RydWN0aW9uIG9uIGFsbCBhcmNoaXRlY3R1cmVzIHdlJ3JlIGludGVyZXN0
ZWQgaW4uIChCcmVhayBpcyBpbnQzCi0gICAgICAgICMgb24gSW50ZWwsIHdoaWNoIGlzIDEgYnl0
ZSwgYW5kIGJrcHQgb24gQVJNdjcsIHdoaWNoIGlzIDIgYnl0ZXMuKQotICAgICAgICBicmVhawot
ICAgIGVuZAotZW5kCi0KLV9sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgotICAgIG5vdFN1cHBv
cnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkK
LQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkK
LQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkK
LQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQot
Ci1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxp
bnRfb3BfZ2V0X2J5X2lkX3Byb3RvOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9n
ZXRfYnlfaWRfc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X3N0cmlu
Z19sZW5ndGg6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9nZW5l
cmljOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRfcmVwbGFjZToK
LSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb246Ci0g
ICAgbm90U3VwcG9ydGVkKCkKLQotCi0jIEluZGljYXRlIHRoZSBlbmQgb2YgTExJbnQuCi1fbGxp
bnRfZW5kOgotICAgIGNyYXNoKCkKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJldmlzaW9uIDExMDM0NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiwxNDY4IEBACiAjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogCi0jIE5vdCBzdXBwb3J0ZWQgeWV0LCBzbyBnaXZlIHVwLgotZXJy
b3IKKyMgU29tZSB2YWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMuCitjb25zdCBUYWdCaXRU
eXBlT3RoZXIgPSAweDIKK2NvbnN0IFRhZ0JpdEJvb2wgICAgICA9IDB4NAorY29uc3QgVGFnQml0
VW5kZWZpbmVkID0gMHg4Citjb25zdCBWYWx1ZUVtcHR5ICAgICAgPSAweDAKK2NvbnN0IFZhbHVl
RmFsc2UgICAgICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wKK2NvbnN0IFZhbHVlVHJ1
ZSAgICAgICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wgfCAxCitjb25zdCBWYWx1ZVVu
ZGVmaW5lZCAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRVbmRlZmluZWQKK2NvbnN0IFZhbHVl
TnVsbCAgICAgICA9IFRhZ0JpdFR5cGVPdGhlcgorCisjIFV0aWxpdGllcy4KK21hY3JvIGRpc3Bh
dGNoKGFkdmFuY2UpCisgICAgYWRkcCBhZHZhbmNlLCBQQworICAgIGptcCBbUEIsIFBDLCA4XQor
ZW5kCisKK21hY3JvIGRpc3BhdGNoSW50KGFkdmFuY2UpCisgICAgYWRkaSBhZHZhbmNlLCBQQwor
ICAgIGptcCBbUEIsIFBDLCA4XQorZW5kCisKK21hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKKyAg
ICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCisgICAgbG9hZHAgQ29k
ZUJsb2NrW2Nmcl0sIFBCCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1tQQl0s
IFBCCisgICAgam1wIFtQQiwgUEMsIDhdCitlbmQKKworbWFjcm8gY0NhbGwyKGZ1bmN0aW9uLCBh
cmcxLCBhcmcyKQorICAgIG1vdmUgYXJnMSwgdDUKKyAgICBtb3ZlIGFyZzIsIHQ0CisgICAgY2Fs
bCBmdW5jdGlvbgorZW5kCisKKyMgVGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5kIGFyZzQgc2hv
dWxkIHByb2JhYmx5IGJlIGltbWVkaWF0ZXMuCittYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEs
IGFyZzIsIGFyZzMsIGFyZzQpCisgICAgbW92ZSBhcmcxLCB0NQorICAgIG1vdmUgYXJnMiwgdDQK
KyAgICBtb3ZlIGFyZzMsIHQxCisgICAgbW92ZSBhcmc0LCB0MgorICAgIGNhbGwgZnVuY3Rpb24K
K2VuZAorCittYWNybyBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbGVhcCBbUEIsIFBDLCA4
XSwgUEMKKyAgICBtb3ZlIFBCLCB0MworZW5kCisKK21hY3JvIHJlc3RvcmVTdGF0ZUFmdGVyQ0Nh
bGwoKQorICAgIG1vdmUgdDAsIFBDCisgICAgbW92ZSB0MSwgY2ZyCisgICAgbW92ZSB0MywgUEIK
KyAgICBzdWJwIFBCLCBQQworICAgIHVyc2hpZnRwIDMsIFBDCitlbmQKKworbWFjcm8gY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDIo
c2xvd1BhdGgsIGNmciwgUEMpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKwor
bWFjcm8gdHJhY2VPcGVyYW5kKGZyb21XaGVyZSwgb3BlcmFuZCkKKyAgICBwcmVwYXJlU3RhdGVG
b3JDQ2FsbCgpCisgICAgY0NhbGw0KF9sbGludF90cmFjZV9vcGVyYW5kLCBjZnIsIFBDLCBmcm9t
V2hlcmUsIG9wZXJhbmQpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKworbWFj
cm8gdHJhY2VWYWx1ZShmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0Nh
bGwoKQorICAgIGNDYWxsNChfbGxpbnRfdHJhY2VfdmFsdWUsIGNmciwgUEMsIGZyb21XaGVyZSwg
b3BlcmFuZCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKK2VuZAorCisjIENhbGwgYSBz
bG93IHBhdGggZm9yIGNhbGwgY2FsbCBvcGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChh
ZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9uKQorICAgIGFkZGkgYWR2YW5jZSwgUEMsIHQwCisgICAg
c3RvcmVpIHQwLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICBwcmVwYXJlU3Rh
dGVGb3JDQ2FsbCgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIG1vdmUgdDEs
IGNmcgorICAgIGFjdGlvbih0MCkKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9v
cCgpCisgICAgY2hlY2tTd2l0Y2hUb0pJVCgKKyAgICAgICAgMSwKKyAgICAgICAgbWFjcm8oKQor
ICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAg
ICAgICAgICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICAgICAgICAgIGNDYWxsMihfbGxp
bnRfbG9vcF9vc3IsIGNmciwgUEMpCisgICAgICAgICAgICBtb3ZlIHQxLCBjZnIKKyAgICAgICAg
ICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAgICAgICAgICBqbXAgdDAKKyAgICAgICAgLnJlY292
ZXI6CisgICAgICAgICAgICBsb2FkcCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBD
CisgICAgICAgIGVuZCkKK2VuZAorCisjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVu
dCByZWdpc3RlcnMuIEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCittYWNybyBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBicGd0ZXEgaW5kZXgsIEZpcnN0Q29uc3RhbnRS
ZWdpc3RlckluZGV4LCAuY29uc3RhbnQKKyAgICBsb2FkcCBbY2ZyLCBpbmRleCwgOF0sIHZhbHVl
CisgICAgam1wIC5kb25lCisuY29uc3RhbnQ6CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHZh
bHVlCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2NvbnN0YW50UmVnaXN0ZXJzICsgVmVjdG9yQnVm
ZmVyT2Zmc2V0W3ZhbHVlXSwgdmFsdWUKKyAgICBzdWJwIEZpcnN0Q29uc3RhbnRSZWdpc3Rlcklu
ZGV4LCBpbmRleAorICAgIGxvYWRwIFt2YWx1ZSwgaW5kZXgsIDhdLCB2YWx1ZQorLmRvbmU6Citl
bmQKKworbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKGluZGV4LCB2YWx1ZSwgc2xv
dykKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBicGIgdmFs
dWUsIHRhZ1R5cGVOdW1iZXIsIHNsb3cKK2VuZAorCittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlQ2VsbChpbmRleCwgdmFsdWUsIHNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShp
bmRleCwgdmFsdWUpCisgICAgYnRwbnogdmFsdWUsIHRhZ01hc2ssIHNsb3cKK2VuZAorCittYWNy
byB3cml0ZUJhcnJpZXIodmFsdWUpCisgICAgIyBOb3RoaW5nIHRvIGRvLCBzaW5jZSB3ZSBkb24n
dCBoYXZlIGEgZ2VuZXJhdGlvbmFsIG9yIGluY3JlbWVudGFsIGNvbGxlY3Rvci4KK2VuZAorCitt
YWNybyB2YWx1ZVByb2ZpbGUodmFsdWUsIHByb2ZpbGUpCisgICAgaWYgVkFMVUVfUFJPRklMRVIK
KyAgICAgICAgc3RvcmVwIHZhbHVlLCBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0c1twcm9maWxlXQor
ICAgIGVuZAorZW5kCisKKworIyBFbnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlci4KKwor
IyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3Vl
KCkgbGVhdmVzIGJlaGluZC4KK21hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNs
b3dfcGF0aCkKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0
MAorICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJl
bAorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIs
IFBDKSAgICMgVGhpcyBzbG93X3BhdGggaGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAgPT4g
bm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBidGl6IHQw
LCAuY29udGludWUKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDEK
KyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAgICBq
bXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0MV0KKy5jb250aW51ZToK
KyAgICAjIFJlbG9hZCBDb2RlQmxvY2sgYW5kIHJlc2V0IFBDLCBzaW5jZSB0aGUgc2xvd19wYXRo
IGNsb2JiZXJlZCB0aGVtLgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxvYWRw
IENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQgorICAgIG1vdmUgMCwgUEMKKyAgICBq
bXAgZG9uZUxhYmVsCitlbmQKKworCisjIEluc3RydWN0aW9uIGltcGxlbWVudGF0aW9ucworCitf
bGxpbnRfb3BfZW50ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB0MgorICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1WYXJzW3QyXSwgdDIKKyAgICBi
dGl6IHQyLCAub3BFbnRlckRvbmUKKyAgICBtb3ZlIFZhbHVlVW5kZWZpbmVkLCB0MAorLm9wRW50
ZXJMb29wOgorICAgIHN1YmkgMSwgdDIKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAg
IGJ0aW56IHQyLCAub3BFbnRlckxvb3AKKy5vcEVudGVyRG9uZToKKyAgICBkaXNwYXRjaCgxKQor
CisKK19sbGludF9vcF9jcmVhdGVfYWN0aXZhdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBicG5lcSBbY2ZyLCB0MCwgOF0sIFZhbHVl
RW1wdHksIC5vcENyZWF0ZUFjdGl2YXRpb25Eb25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfY3JlYXRlX2FjdGl2YXRpb24pCisub3BDcmVhdGVBY3RpdmF0aW9uRG9uZToKKyAg
ICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9pbml0X2xhenlfcmVnOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIHN0b3JlcCBWYWx1ZUVt
cHR5LCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9jcmVhdGVf
YXJndW1lbnRzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4XSwgVmFsdWVFbXB0eSwgLm9wQ3JlYXRlQXJndW1l
bnRzRG9uZQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV9hcmd1bWVu
dHMpCisub3BDcmVhdGVBcmd1bWVudHNEb25lOgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50
X29wX2NyZWF0ZV90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIs
IFBDLCA4XSwgdDAKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MCkKKyAgICBsb2FkcCBbY2ZyLCB0
MCwgOF0sIHQwCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcENyZWF0ZVRoaXNTbG93CisgICAg
bG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCisgICAgYmJiIFN0cnVjdHVyZTo6bV90
eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDFdLCBPYmplY3RUeXBlLCAub3BDcmVhdGVUaGlz
U2xvdworICAgIGxvYWRwIEpTT2JqZWN0OjptX2luaGVyaXRvcklEW3QwXSwgdDIKKyAgICBidHB6
IHQyLCAub3BDcmVhdGVUaGlzU2xvdworICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChKU0ZpbmFs
T2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENsYXNzSW5m
bywgdDIsIHQwLCB0MSwgdDMsIC5vcENyZWF0ZVRoaXNTbG93KQorICAgIGxvYWRpcyA4W1BCLCBQ
QywgOF0sIHQxCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQor
Cisub3BDcmVhdGVUaGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9j
cmVhdGVfdGhpcykKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9nZXRfY2FsbGVlOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MQorICAgIHN0b3JlcCB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfY29udmVydF90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwg
dDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLm9wQ29udmVydFRoaXNTbG93CisgICAgbG9hZHAg
SlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5m
byArIFR5cGVJbmZvOjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCAub3BDb252ZXJ0VGhpc1Nsb3cK
KyAgICBkaXNwYXRjaCgyKQorCisub3BDb252ZXJ0VGhpc1Nsb3c6CisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfY29udmVydF90aGlzKQorICAgIGRpc3BhdGNoKDIpCisKKworX2xs
aW50X29wX25ld19vYmplY3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0
MAorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX2VtcHR5T2JqZWN0U3RydWN0dXJlW3QwXSwg
dDEKKyAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4
LCBKU0dsb2JhbERhdGE6OmpzRmluYWxPYmplY3RDbGFzc0luZm8sIHQxLCB0MCwgdDIsIHQzLCAu
b3BOZXdPYmplY3RTbG93KQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgc3RvcmVw
IHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisub3BOZXdPYmplY3RTbG93Ogor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19vYmplY3QpCisgICAgZGlzcGF0
Y2goMikKKworCitfbGxpbnRfb3BfbW92OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aXMgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQyKQorICAgIHN0b3JlcCB0MiwgW2NmciwgdDAsIDhd
CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bfbm90OgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIHhvcnAgVmFsdWVG
YWxzZSwgdDIKKyAgICBidHBueiB0MiwgfjEsIC5vcE5vdFNsb3cKKyAgICB4b3JwIFZhbHVlVHJ1
ZSwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5v
cE5vdFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbm90KQorICAgIGRp
c3BhdGNoKDMpCisKKworbWFjcm8gZXF1YWxpdHlDb21wYXJpc29uKGludGVnZXJDb21wYXJpc29u
LCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDI0W1BCLCBQQywg
OF0sIHQwCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGlzIDhbUEIsIFBD
LCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDAsIHQxLCAuc2xvdykK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDIsIHQwLCAuc2xvdykKKyAgICBpbnRl
Z2VyQ29tcGFyaXNvbih0MCwgdDEsIHQwKQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0
b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLnNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDQpCitlbmQKKworX2xsaW50X29wX2Vx
OgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBy
ZXN1bHQpIGNpZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfZXEpCisKKworX2xsaW50X29wX25lcToKKyAgICBlcXVhbGl0eUNvbXBhcmlzb24oCisg
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVz
dWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9uZXEpCisKKworbWFjcm8gZXF1YWxO
dWxsQ29tcGFyaXNvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAg
W2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAuaW1tZWRpYXRlCisgICAg
bG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQyCisgICAgdGJueiBTdHJ1Y3R1cmU6Om1f
dHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0Ml0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQs
IHQwCisgICAgam1wIC5kb25lCisuaW1tZWRpYXRlOgorICAgIGFuZHAgflRhZ0JpdFVuZGVmaW5l
ZCwgdDAKKyAgICBjcGVxIHQwLCBWYWx1ZU51bGwsIHQwCisuZG9uZToKK2VuZAorCitfbGxpbnRf
b3BfZXFfbnVsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZXF1YWxOdWxsQ29tcGFyaXNv
bigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAK
KyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50
X29wX25lcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGxDb21wYXJp
c29uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIHhvcnAgVmFsdWVUcnVlLCB0
MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworCittYWNy
byBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyAxNltQQiwgUEMs
IDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxKQorICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIG1vdmUgdDAsIHQyCisgICAgb3JwIHQxLCB0Mgor
ICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5zbG93CisgICAgYnBhZXEgdDAsIHRhZ1R5cGVOdW1iZXIs
IC5sZWZ0T0sKKyAgICBidHBueiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKy5sZWZ0T0s6Cisg
ICAgYnBhZXEgdDEsIHRhZ1R5cGVOdW1iZXIsIC5yaWdodE9LCisgICAgYnRwbnogdDEsIHRhZ1R5
cGVOdW1iZXIsIC5zbG93CisucmlnaHRPSzoKKyAgICBlcXVhbGl0eU9wZXJhdGlvbih0MCwgdDEs
IHQwKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgb3JwIFZhbHVlRmFsc2UsIHQw
CisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCg0KQorCisuc2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goNCkKK2VuZAorCitfbGxp
bnRfb3Bfc3RyaWN0ZXE6CisgICAgc3RyaWN0RXEoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgcmVzdWx0KSBjcGVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3N0cmljdGVxKQorCisKK19sbGludF9vcF9uc3RyaWN0ZXE6CisgICAgc3RyaWN0
RXEoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjcG5lcSBsZWZ0LCByaWdo
dCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9uc3RyaWN0ZXEpCisKKwor
bWFjcm8gcHJlT3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgW2NmciwgdDAs
IDhdLCB0MQorICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBhcml0aG1ldGlj
T3BlcmF0aW9uKHQxLCAuc2xvdykKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDEKKyAgICBzdG9y
ZXAgdDEsIFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKy5zbG93OgorICAgIGNhbGxT
bG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgyKQorZW5kCisKK19sbGludF9vcF9wcmVf
aW5jOgorICAgIHByZU9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJhZGRpbyAxLCB2
YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcHJlX2luYykKKworCitf
bGxpbnRfb3BfcHJlX2RlYzoKKyAgICBwcmVPcCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCBzbG93
KSBic3ViaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3By
ZV9kZWMpCisKKworbWFjcm8gcG9zdE9wKGFyaXRobWV0aWNPcGVyYXRpb24sIHNsb3dQYXRoKQor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBs
b2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDIKKyAgICBi
aWVxIHQwLCB0MSwgLmRvbmUKKyAgICBicGIgdDIsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAg
bW92ZSB0MiwgdDMKKyAgICBhcml0aG1ldGljT3BlcmF0aW9uKHQzLCAuc2xvdykKKyAgICBvcnAg
dGFnVHlwZU51bWJlciwgdDMKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIHN0b3Jl
cCB0MywgW2NmciwgdDAsIDhdCisuZG9uZToKKyAgICBkaXNwYXRjaCgzKQorCisuc2xvdzoKKyAg
ICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goMykKK2VuZAorCitfbGxpbnRf
b3BfcG9zdF9pbmM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJh
ZGRpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcG9zdF9p
bmMpCisKKworX2xsaW50X29wX3Bvc3RfZGVjOgorICAgIHBvc3RPcCgKKyAgICAgICAgbWFjcm8g
KHZhbHVlLCBzbG93KSBic3ViaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3Bvc3RfZGVjKQorCisKK19sbGludF9vcF90b19qc251bWJlcjoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDhb
UEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MikKKyAgICBi
cGFlcSB0MiwgdGFnVHlwZU51bWJlciwgLm9wVG9Kc251bWJlcklzSW1tZWRpYXRlCisgICAgYnRw
eiB0MiwgdGFnTWFzaywgLm9wVG9Kc251bWJlclNsb3cKKy5vcFRvSnNudW1iZXJJc0ltbWVkaWF0
ZToKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRv
SnNudW1iZXJTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RvX2pzbnVt
YmVyKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX25lZ2F0ZToKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDhbUEIs
IFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MikKKyAgICBicGIg
dDIsIHRhZ1R5cGVOdW1iZXIsIC5vcE5lZ2F0ZU5vdEludAorICAgIGJ0aXogdDIsIDB4N2ZmZmZm
ZmYsIC5vcE5lZ2F0ZVNsb3cKKyAgICBuZWdpIHQyCisgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQy
CisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorLm9wTmVnYXRl
Tm90SW50OgorICAgIGJ0cHogdDIsIHRhZ1R5cGVOdW1iZXIsIC5vcE5lZ2F0ZVNsb3cKKyAgICB4
b3JwIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQor
ICAgIGRpc3BhdGNoKDMpCisKKy5vcE5lZ2F0ZVNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfbmVnYXRlKQorICAgIGRpc3BhdGNoKDMpCisKKworbWFjcm8gYmluYXJ5T3BD
dXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbiwgc2xv
d1BhdGgpCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDE2W1BCLCBQ
QywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnBiIHQwLCB0YWdUeXBlTnVtYmVyLCAub3Ax
Tm90SW50CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50CisgICAgbG9hZGlz
IDhbUEIsIFBDLCA4XSwgdDIKKyAgICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUodDEsIHQwLCAu
c2xvdywgdDIpCisgICAgZGlzcGF0Y2goNSkKKworLm9wMU5vdEludDoKKyAgICAjIEZpcnN0IG9w
ZXJhbmQgaXMgZGVmaW5pdGVseSBub3QgYW4gaW50LCB0aGUgc2Vjb25kIG9wZXJhbmQgY291bGQg
YmUgYW55dGhpbmcuCisgICAgYnRweiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBicGFl
cSB0MSwgdGFnVHlwZU51bWJlciwgLm9wMU5vdEludE9wMkludAorICAgIGJ0cHogdDEsIHRhZ1R5
cGVOdW1iZXIsIC5zbG93CisgICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIGZwMmQgdDEs
IGZ0MQorICAgIGptcCAub3AxTm90SW50UmVhZHkKKy5vcDFOb3RJbnRPcDJJbnQ6CisgICAgY2ky
ZCB0MSwgZnQxCisub3AxTm90SW50UmVhZHk6CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIK
KyAgICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgZnAyZCB0MCwgZnQwCisgICAgZG91Ymxl
T3BlcmF0aW9uKGZ0MSwgZnQwKQorICAgIGZkMnAgZnQwLCB0MAorICAgIHN1YnAgdGFnVHlwZU51
bWJlciwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDUpCisK
Ky5vcDJOb3RJbnQ6CisgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0
aGUgc2Vjb25kIGlzIGRlZmluaXRlbHkgbm90LgorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQy
CisgICAgYnRweiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBjaTJkIHQwLCBmdDAKKyAg
ICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQxCisgICAgZnAyZCB0MSwgZnQxCisgICAgZG91YmxlT3Bl
cmF0aW9uKGZ0MSwgZnQwKQorICAgIGZkMnAgZnQwLCB0MAorICAgIHN1YnAgdGFnVHlwZU51bWJl
ciwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDUpCisKKy5z
bG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCg1KQorZW5kCisK
K21hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRpb24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1Bh
dGgpCisgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCBzbG93LCBpbmRleCkKKyAgICAgICAgICAgIGludGVnZXJPcGVyYXRpb24obGVmdCwgcmlnaHQs
IHNsb3cpCisgICAgICAgICAgICBvcnAgdGFnVHlwZU51bWJlciwgcmlnaHQKKyAgICAgICAgICAg
IHN0b3JlcCByaWdodCwgW2NmciwgaW5kZXgsIDhdCisgICAgICAgIGVuZCwKKyAgICAgICAgZG91
YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKK2VuZAorCitfbGxpbnRfb3BfYWRkOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBiaW5hcnlPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBz
bG93KSBiYWRkaW8gbGVmdCwgcmlnaHQsIHNsb3cgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQpIGFkZGQgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2Fk
ZCkKKworCitfbGxpbnRfb3BfbXVsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaW5hcnlP
cEN1c3RvbVN0b3JlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQor
ICAgICAgICAgICAgIyBBc3N1bWUgdDMgaXMgc2NyYXRjaGFibGUuCisgICAgICAgICAgICBtb3Zl
IHJpZ2h0LCB0MworICAgICAgICAgICAgYm11bGlvIGxlZnQsIHQzLCBzbG93CisgICAgICAgICAg
ICBidGlueiB0MywgLmRvbmUKKyAgICAgICAgICAgIGJpbHQgbGVmdCwgMCwgc2xvdworICAgICAg
ICAgICAgYmlsdCByaWdodCwgMCwgc2xvdworICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG9y
cCB0YWdUeXBlTnVtYmVyLCB0MworICAgICAgICAgICAgc3RvcmVwIHQzLCBbY2ZyLCBpbmRleCwg
OF0KKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQpIG11bGQgbGVmdCwg
cmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX211bCkKKworCitfbGxpbnRfb3Bf
c3ViOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaW5hcnlPcCgKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCBzbG93KSBic3ViaW8gbGVmdCwgcmlnaHQsIHNsb3cgZW5kLAorICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQpIHN1YmQgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxp
bnRfc2xvd19wYXRoX3N1YikKKworCitfbGxpbnRfb3BfZGl2OgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBiaW5hcnlPcEN1c3RvbVN0b3JlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHNsb3csIGluZGV4KQorICAgICAgICAgICAgIyBBc3N1bWUgdDMgaXMgc2NyYXRjaGFibGUuCisg
ICAgICAgICAgICBidGl6IGxlZnQsIHNsb3cKKyAgICAgICAgICAgIGJ0aW56IHJpZ2h0LCAuaW50
T0sKKyAgICAgICAgICAgIGJpbHQgbGVmdCwgMCwgc2xvdworICAgICAgICAuaW50T0s6CisgICAg
ICAgICAgICBtb3ZlIGxlZnQsIHQzCisgICAgICAgICAgICBtb3ZlIHJpZ2h0LCB0MAorICAgICAg
ICAgICAgY2RxaQorICAgICAgICAgICAgaWRpdmkgdDMKKyAgICAgICAgICAgIGJ0aW56IHQxLCBz
bG93CisgICAgICAgICAgICBvcnAgdGFnVHlwZU51bWJlciwgdDAKKyAgICAgICAgICAgIHN0b3Jl
cCB0MCwgW2NmciwgaW5kZXgsIDhdCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0KSBkaXZkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9k
aXYpCisKKworbWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93UGF0aCwgYWR2YW5jZSkKKyAgICBs
b2FkaXMgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAg
ICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAs
IHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGJwYiB0MCwgdGFn
VHlwZU51bWJlciwgLnNsb3cKKyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAg
b3BlcmF0aW9uKHQxLCB0MCwgLnNsb3cpCisgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAg
c3RvcmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaChhZHZhbmNlKQorCisuc2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goYWR2YW5jZSkKK2VuZAor
CitfbGxpbnRfb3BfbHNoaWZ0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBsc2hpZnRpIGxlZnQsIHJpZ2h0IGVuZCwK
KyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9sc2hpZnQsCisgICAgICAgIDQpCisKKworX2xsaW50
X29wX3JzaGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgc2xvdykgcnNoaWZ0aSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAg
IF9sbGludF9zbG93X3BhdGhfcnNoaWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF91cnNo
aWZ0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCBzbG93KQorICAgICAgICAgICAgdXJzaGlmdGkgbGVmdCwgcmlnaHQKKyAgICAg
ICAgICAgIGJpbHQgcmlnaHQsIDAsIHNsb3cKKyAgICAgICAgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3Vyc2hpZnQsCisgICAgICAgIDQpCisKKworX2xsaW50X29wX2JpdGFuZDoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgc2xvdykgYW5kaSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhf
Yml0YW5kLAorICAgICAgICA1KQorCisKK19sbGludF9vcF9iaXR4b3I6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIHhv
cmkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdHhvciwKKyAg
ICAgICAgNSkKKworCitfbGxpbnRfb3BfYml0b3I6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIG9yaSBsZWZ0LCByaWdo
dCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfYml0b3IsCisgICAgICAgIDUpCisKKwor
X2xsaW50X29wX2NoZWNrX2hhc19pbnN0YW5jZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0
MSwgdDAsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93KQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1
Y3R1cmVbdDBdLCB0MAorICAgIGJ0YnogU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86
Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5zdGFuY2VT
bG93CisgICAgZGlzcGF0Y2goMikKKworLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKQorICAgIGRpc3Bh
dGNoKDIpCisKKworX2xsaW50X29wX2luc3RhbmNlb2Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgICMgQ2hlY2sgdGhhdCBiYXNlVmFsIGltcGxlbWVudHMgdGhlIGRlZmF1bHQgSGFzSW5zdGFu
Y2UgYmVoYXZpb3IuCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGVwcmVjYXRlZC4KKyAg
ICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQx
LCB0MCkKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKKyAgICBidGJ6IFN0
cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSwgLm9wSW5zdGFuY2VvZlNsb3cKKyAgICAKKyAgICAjIEFjdHVhbGx5
IGRvIHRoZSB3b3JrLgorICAgIGxvYWRpcyAzMltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyA4
W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQxLCAu
b3BJbnN0YW5jZW9mU2xvdykKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QxXSwgdDIK
KyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0Ml0sIE9i
amVjdFR5cGUsIC5vcEluc3RhbmNlb2ZTbG93CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQw
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQyLCAub3BJbnN0YW5jZW9mU2xv
dykKKyAgICAKKyAgICAjIFJlZ2lzdGVyIHN0YXRlOiB0MSA9IHByb3RvdHlwZSwgdDIgPSB2YWx1
ZQorICAgIG1vdmUgMSwgdDAKKy5vcEluc3RhbmNlb2ZMb29wOgorICAgIGxvYWRwIEpTQ2VsbDo6
bV9zdHJ1Y3R1cmVbdDJdLCB0MgorICAgIGxvYWRwIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbdDJd
LCB0MgorICAgIGJwZXEgdDIsIHQxLCAub3BJbnN0YW5jZW9mRG9uZQorICAgIGJ0cHogdDIsIHRh
Z01hc2ssIC5vcEluc3RhbmNlb2ZMb29wCisKKyAgICBtb3ZlIDAsIHQwCisub3BJbnN0YW5jZW9m
RG9uZToKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4
XQorICAgIGRpc3BhdGNoKDUpCisKKy5vcEluc3RhbmNlb2ZTbG93OgorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2YpCisgICAgZGlzcGF0Y2goNSkKKworCittYWNy
byByZXNvbHZlR2xvYmFsKHNpemUsIHNsb3cpCisgICAgIyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93
czoKKyAgICAjIDhbUEIsIFBDLCA4XSAgIERlc3RpbmF0aW9uIGZvciB0aGUgbG9hZC4KKyAgICAj
IDE2W1BCLCBQQywgOF0gIFByb3BlcnR5IGlkZW50aWZpZXIgaW5kZXggaW4gdGhlIGNvZGUgYmxv
Y2suCisgICAgIyAyNFtQQiwgUEMsIDhdICBTdHJ1Y3R1cmUgcG9pbnRlciwgaW5pdGlhbGl6ZWQg
dG8gMCBieSBieXRlY29kZSBnZW5lcmF0b3IuCisgICAgIyAzMltQQiwgUEMsIDhdICBPZmZzZXQg
aW4gZ2xvYmFsIG9iamVjdCwgaW5pdGlhbGl6ZWQgdG8gMCBieSBieXRlY29kZSBnZW5lcmF0b3Iu
CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2ds
b2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQx
CisgICAgYnBuZXEgdDEsIDI0W1BCLCBQQywgOF0sIHNsb3cKKyAgICBsb2FkaXMgMzJbUEIsIFBD
LCA4XSwgdDEKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MAor
ICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0MgorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisg
ICAgc3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0KKyAgICBsb2FkcCAoc2l6ZSAtIDEpICogOFtQQiwg
UEMsIDhdLCB0MAorICAgIHZhbHVlUHJvZmlsZSh0MiwgdDApCitlbmQKKworX2xsaW50X29wX3Jl
c29sdmVfZ2xvYmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICByZXNvbHZlR2xvYmFsKDYs
IC5vcFJlc29sdmVHbG9iYWxTbG93KQorICAgIGRpc3BhdGNoKDYpCisKKy5vcFJlc29sdmVHbG9i
YWxTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZ2xvYmFs
KQorICAgIGRpc3BhdGNoKDYpCisKKworIyBHaXZlcyB5b3UgdGhlIHNjb3BlIGluIHQwLCB3aGls
ZSBhbGxvd2luZyB5b3UgdG8gb3B0aW9uYWxseSBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIG9u
IHRoZQorIyBzY29wZXMgYXMgdGhleSBhcmUgdHJhdmVyc2VkLiBzY29wZUNoZWNrKCkgaXMgY2Fs
bGVkIHdpdGggdHdvIGFyZ3VtZW50czogdGhlIHJlZ2lzdGVyCisjIGhvbGRpbmcgdGhlIHNjb3Bl
LCBhbmQgYSByZWdpc3RlciB0aGF0IGNhbiBiZSB1c2VkIGZvciBzY3JhdGNoLiBOb3RlIHRoYXQg
dGhpcyBkb2VzIG5vdAorIyB1c2UgdDMsIHNvIHlvdSBjYW4gaG9sZCBzdHVmZiBpbiB0MyBpZiBu
ZWVkIGJlLgorbWFjcm8gZ2V0U2NvcGUoZGVCcnVpamluSW5kZXhPcGVyYW5kLCBzY29wZUNoZWNr
KQorICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDAKKyAgICBsb2FkaXMgZGVCcnVpamluSW5k
ZXhPcGVyYW5kLCB0MgorICAgIAorICAgIGJ0aXogdDIsIC5kb25lCisgICAgCisgICAgbG9hZHAg
Q29kZUJsb2NrW2Nmcl0sIHQxCisgICAgYmluZXEgQ29kZUJsb2NrOjptX2NvZGVUeXBlW3QxXSwg
RnVuY3Rpb25Db2RlLCAubG9vcAorICAgIGJ0YnogQ29kZUJsb2NrOjptX25lZWRzRnVsbFNjb3Bl
Q2hhaW5bdDFdLCAubG9vcAorICAgIAorICAgIGxvYWRpcyBDb2RlQmxvY2s6Om1fYWN0aXZhdGlv
blJlZ2lzdGVyW3QxXSwgdDEKKworICAgICMgTmVlZCB0byBjb25kaXRpb25hbGx5IHNraXAgb3Zl
ciBvbmUgc2NvcGUuCisgICAgYnRweiBbY2ZyLCB0MSwgOF0sIC5ub0FjdGl2YXRpb24KKyAgICBz
Y29wZUNoZWNrKHQwLCB0MSkKKyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6bmV4dFt0MF0sIHQw
Cisubm9BY3RpdmF0aW9uOgorICAgIHN1YmkgMSwgdDIKKyAgICAKKyAgICBidGl6IHQyLCAuZG9u
ZQorLmxvb3A6CisgICAgc2NvcGVDaGVjayh0MCwgdDEpCisgICAgbG9hZHAgU2NvcGVDaGFpbk5v
ZGU6Om5leHRbdDBdLCB0MAorICAgIHN1YmkgMSwgdDIKKyAgICBidGlueiB0MiwgLmxvb3AKKwor
LmRvbmU6CitlbmQKKworX2xsaW50X29wX3Jlc29sdmVfZ2xvYmFsX2R5bmFtaWM6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0
MworICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6YWN0aXZhdGlvblN0cnVjdHVyZVt0M10sIHQzCisg
ICAgZ2V0U2NvcGUoCisgICAgICAgIDQwW1BCLCBQQywgOF0sCisgICAgICAgIG1hY3JvIChzY29w
ZSwgc2NyYXRjaCkKKyAgICAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpvYmplY3Rbc2Nv
cGVdLCBzY3JhdGNoCisgICAgICAgICAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3NjcmF0
Y2hdLCB0MywgLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTdXBlclNsb3cKKyAgICAgICAgZW5kKQor
ICAgIHJlc29sdmVHbG9iYWwoNywgLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTbG93KQorICAgIGRp
c3BhdGNoKDcpCisKKy5vcFJlc29sdmVHbG9iYWxEeW5hbWljU3VwZXJTbG93OgorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZm9yX3Jlc29sdmVfZ2xvYmFsX2R5bmFt
aWMpCisgICAgZGlzcGF0Y2goNykKKworLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTbG93OgorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZ2xvYmFsX2R5bmFtaWMpCisg
ICAgZGlzcGF0Y2goNykKKworCitfbGxpbnRfb3BfZ2V0X3Njb3BlZF92YXI6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgICMgT3BlcmFuZHMgYXJlIGFzIGZvbGxvd3M6CisgICAgIyA4W1BCLCBQ
QywgOF0gICBEZXN0aW5hdGlvbiBmb3IgdGhlIGxvYWQKKyAgICAjIDE2W1BCLCBQQywgOF0gIElu
ZGV4IG9mIHJlZ2lzdGVyIGluIHRoZSBzY29wZQorICAgICMgMjRbUEIsIFBDLCA4XSAgRGUgQnJ1
aWppbiBpbmRleC4KKyAgICBnZXRTY29wZSgyNFtQQiwgUEMsIDhdLCBtYWNybyAoc2NvcGUsIHNj
cmF0Y2gpIGVuZCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpcyAxNltQ
QiwgUEMsIDhdLCB0MgorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpvYmplY3RbdDBdLCB0MAor
ICAgIGxvYWRwIEpTVmFyaWFibGVPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKKyAgICBsb2Fk
cCBbdDAsIHQyLCA4XSwgdDMKKyAgICBzdG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAgIGxvYWRp
cyAzMltQQiwgUEMsIDhdLCB0MQorICAgIHZhbHVlUHJvZmlsZSh0MywgdDEpCisgICAgZGlzcGF0
Y2goNSkKKworCitfbGxpbnRfb3BfcHV0X3Njb3BlZF92YXI6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGdldFNjb3BlKDE2W1BCLCBQQywgOF0sIG1hY3JvIChzY29wZSwgc2NyYXRjaCkgZW5k
KQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUodDEsIHQzKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgd3JpdGVCYXJyaWVy
KHQzKQorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpvYmplY3RbdDBdLCB0MAorICAgIGxvYWRw
IEpTVmFyaWFibGVPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKKyAgICBzdG9yZXAgdDMsIFt0
MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfZ2V0X2dsb2JhbF92YXI6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MQorICAg
IGxvYWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisg
ICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNH
bG9iYWxPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwg
dDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQzLCA4XQorICAgIGxvYWRwIDI0W1BCLCBQQywgOF0s
IHQzCisgICAgdmFsdWVQcm9maWxlKHQyLCB0MykKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGlu
dF9vcF9wdXRfZ2xvYmFsX3ZhcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2
W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAg
Q29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNHbG9iYWxPYmpl
Y3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0
MikKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIHdyaXRlQmFycmllcih0MikKKyAg
ICBzdG9yZXAgdDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bf
Z2V0X2J5X2lkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAjIFdlIG9ubHkgZG8gbW9ub21v
cnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcgZm9yIG5vdywgYW5kIHdlIGRvIG5vdCBtb2RpZnkgdGhl
CisgICAgIyBvcGNvZGUuIFdlIGRvLCBob3dldmVyLCBhbGxvdyBmb3IgdGhlIGNhY2hlIHRvIGNo
YW5nZSBhbnl0aW1lIGlmIGZhaWxzLCBzaW5jZQorICAgICMgcGluZy1wb25naW5nIGlzIGZyZWUu
IEF0IGJlc3Qgd2UgZ2V0IGx1Y2t5IGFuZCB0aGUgZ2V0X2J5X2lkIHdpbGwgY29udGludWUKKyAg
ICAjIHRvIHRha2UgZmFzdCBwYXRoIG9uIHRoZSBuZXcgY2FjaGUuIEF0IHdvcnN0IHdlIHRha2Ug
c2xvdyBwYXRoLCB3aGljaCBpcyB3aGF0CisgICAgIyB3ZSB3b3VsZCBoYXZlIGJlZW4gZG9pbmcg
YW55d2F5LgorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyAzMltQQiwg
UEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQwLCB0MywgLm9wR2V0
QnlJZFNsb3cpCisgICAgbG9hZGlzIDQwW1BCLCBQQywgOF0sIHQyCisgICAgbG9hZHAgSlNPYmpl
Y3Q6Om1fcHJvcGVydHlTdG9yYWdlW3QzXSwgdDAKKyAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0
dXJlW3QzXSwgdDEsIC5vcEdldEJ5SWRTbG93CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEK
KyAgICBsb2FkcCBbdDAsIHQyXSwgdDMKKyAgICBzdG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAg
IGxvYWRpcyA2NFtQQiwgUEMsIDhdLCB0MQorICAgIHZhbHVlUHJvZmlsZSh0MywgdDEpCisgICAg
ZGlzcGF0Y2goOSkKKworLm9wR2V0QnlJZFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfZ2V0X2J5X2lkKQorICAgIGRpc3BhdGNoKDkpCisKKworX2xsaW50X29wX2dldF9h
cmd1bWVudHNfbGVuZ3RoOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIs
IFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGJ0cG56IFtjZnIs
IHQwLCA4XSwgLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xvdworICAgIGxvYWRpIEFyZ3VtZW50Q291
bnQgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQyCisgICAgc3ViaSAxLCB0MgorICAgIG9ycCB0YWdU
eXBlTnVtYmVyLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2go
NCkKKworLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0aCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19s
bGludF9vcF9wdXRfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BC
LCBQQywgOF0sIHQzCisgICAgbG9hZGlzIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZUNlbGwodDMsIHQwLCAub3BQdXRCeUlkU2xvdykKKyAgICBsb2FkaXMgMjRb
UEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBd
LCB0MworICAgIGJwbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MSwgLm9wUHV0QnlJZFNs
b3cKKyAgICBsb2FkaXMgNDBbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHQyLCB0MCkKKyAgICB3cml0ZUJhcnJpZXIodDApCisgICAgc3RvcmVwIHQwLCBbdDMsIHQx
XQorICAgIGRpc3BhdGNoKDkpCisKKy5vcFB1dEJ5SWRTbG93OgorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pZCkKKyAgICBkaXNwYXRjaCg5KQorCisKK21hY3JvIHB1
dEJ5SWRUcmFuc2l0aW9uKGFkZGl0aW9uYWxDaGVja3MpCisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZGlzIDMyW1BCLCBQQywgOF0sIHQx
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDMsIHQwLCAub3BQdXRCeUlkU2xvdykK
KyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0
dXJlW3QwXSwgdDEsIC5vcFB1dEJ5SWRTbG93CisgICAgYWRkaXRpb25hbENoZWNrcyh0MSwgdDMs
IC5vcFB1dEJ5SWRTbG93KQorICAgIGxvYWRpcyA0MFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRw
IEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQzCisgICAgYWRkcCB0MSwgdDMKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MSkKKyAgICB3cml0ZUJhcnJpZXIodDEpCisg
ICAgc3RvcmVwIHQxLCBbdDNdCisgICAgbG9hZGlzIDQ4W1BCLCBQQywgOF0sIHQxCisgICAgc3Rv
cmVwIHQxLCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXQorICAgIGRpc3BhdGNoKDkpCitlbmQKKwor
X2xsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdDoKKyAgICBwdXRCeUlkVHJhbnNp
dGlvbihtYWNybyAob2xkU3RydWN0dXJlLCBzY3JhdGNoLCBzbG93KSBlbmQpCisKKworX2xsaW50
X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKKyAgICBwdXRCeUlkVHJhbnNpdGlvbigK
KyAgICAgICAgbWFjcm8gKG9sZFN0cnVjdHVyZSwgc2NyYXRjaCwgc2xvdykKKyAgICAgICAgICAg
IGNvbnN0IHByb3RvQ2VsbCA9IG9sZFN0cnVjdHVyZSAgICAjIFJldXNpbmcgdGhlIG9sZFN0cnVj
dHVyZSByZWdpc3RlciBmb3IgdGhlIHByb3RvCisgICAgICAgICAgICBsb2FkcCA1NltQQiwgUEMs
IDhdLCBzY3JhdGNoCisgICAgICAgICAgICBhc3NlcnQobWFjcm8gKG9rKSBidHBueiBzY3JhdGNo
LCBvayBlbmQpCisgICAgICAgICAgICBsb2FkcCBTdHJ1Y3R1cmVDaGFpbjo6bV92ZWN0b3Jbc2Ny
YXRjaF0sIHNjcmF0Y2gKKyAgICAgICAgICAgIGFzc2VydChtYWNybyAob2spIGJ0cG56IHNjcmF0
Y2gsIG9rIGVuZCkKKyAgICAgICAgICAgIGJwZXEgU3RydWN0dXJlOjptX3Byb3RvdHlwZVtvbGRT
dHJ1Y3R1cmVdLCBWYWx1ZU51bGwsIC5kb25lCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAg
bG9hZHAgU3RydWN0dXJlOjptX3Byb3RvdHlwZVtvbGRTdHJ1Y3R1cmVdLCBwcm90b0NlbGwKKyAg
ICAgICAgICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbcHJvdG9DZWxsXSwgb2xkU3RydWN0
dXJlCisgICAgICAgICAgICBicG5lcSBvbGRTdHJ1Y3R1cmUsIFtzY3JhdGNoXSwgc2xvdworICAg
ICAgICAgICAgYWRkcCA4LCBzY3JhdGNoCisgICAgICAgICAgICBicG5lcSBTdHJ1Y3R1cmU6Om1f
cHJvdG90eXBlW29sZFN0cnVjdHVyZV0sIFZhbHVlTnVsbCwgLmxvb3AKKyAgICAgICAgLmRvbmU6
CisgICAgICAgIGVuZCkKKworCitfbGxpbnRfb3BfZ2V0X2J5X3ZhbDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAgbG9hZGlzIDE2W1BCLCBQ
QywgOF0sIHQyCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZHAgQ29kZUJs
b2NrOjptX2dsb2JhbERhdGFbdDFdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxs
KHQyLCB0MCwgLm9wR2V0QnlWYWxTbG93KQorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6anNBcnJh
eUNsYXNzSW5mb1t0MV0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQzLCB0
MSwgLm9wR2V0QnlWYWxTbG93KQorICAgIHN4aTJwIHQxLCB0MQorICAgIGJwbmVxIFt0MF0sIHQy
LCAub3BHZXRCeVZhbFNsb3cKKyAgICBsb2FkcCBKU0FycmF5OjptX3N0b3JhZ2VbdDBdLCB0Mwor
ICAgIGJpYWVxIHQxLCBKU0FycmF5OjptX3ZlY3Rvckxlbmd0aFt0MF0sIC5vcEdldEJ5VmFsU2xv
dworICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgQXJyYXlTdG9yYWdlOjpt
X3ZlY3Rvclt0MywgdDEsIDhdLCB0MgorICAgIGJ0cHogdDIsIC5vcEdldEJ5VmFsU2xvdworICAg
IHN0b3JlcCB0MiwgW2NmciwgdDAsIDhdCisgICAgbG9hZHAgMzJbUEIsIFBDLCA4XSwgdDAKKyAg
ICB2YWx1ZVByb2ZpbGUodDIsIHQwKQorICAgIGRpc3BhdGNoKDUpCisKKy5vcEdldEJ5VmFsU2xv
dzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfdmFsKQorICAgIGRp
c3BhdGNoKDUpCisKKworX2xsaW50X29wX2dldF9hcmd1bWVudF9ieV92YWw6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyAyNFtQ
QiwgUEMsIDhdLCB0MQorICAgIGJ0cG56IFtjZnIsIHQwLCA4XSwgLm9wR2V0QXJndW1lbnRCeVZh
bFNsb3cKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDEsIHQyLCAub3BHZXRBcmd1
bWVudEJ5VmFsU2xvdykKKyAgICBhZGRpIDEsIHQyCisgICAgbG9hZGkgQXJndW1lbnRDb3VudCAr
IFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKKyAgICBiaWFlcSB0MiwgdDEsIC5vcEdldEFyZ3VtZW50
QnlWYWxTbG93CisgICAgbmVnaSB0MgorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAg
bG9hZHAgVGhpc0FyZ3VtZW50T2Zmc2V0W2NmciwgdDIsIDhdLCB0MAorICAgIHN0b3JlcCB0MCwg
W2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNSkKKworLm9wR2V0QXJndW1lbnRCeVZhbFNsb3c6
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2FyZ3VtZW50X2J5X3ZhbCkK
KyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9nZXRfYnlfcG5hbWU6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUodDEsIHQwKQorICAgIGxvYWRpcyAzMltQQiwgUEMsIDhdLCB0MQorICAgIGFz
c2VydE5vdENvbnN0YW50KHQxKQorICAgIGJwbmVxIHQwLCBbY2ZyLCB0MSwgOF0sIC5vcEdldEJ5
UG5hbWVTbG93CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGlzIDQwW1BC
LCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDIsIHQwLCAub3BH
ZXRCeVBuYW1lU2xvdykKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MykKKyAgICBsb2FkcCBbY2Zy
LCB0MywgOF0sIHQxCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQyCisgICAg
YnBuZXEgdDIsIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6Om1fY2FjaGVkU3RydWN0dXJlW3QxXSwg
Lm9wR2V0QnlQbmFtZVNsb3cKKyAgICBsb2FkaXMgNDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2Fk
aSBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdLCB0MworICAgIHN1YmkgMSwgdDMKKyAgICBiaWFl
cSB0MywgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9udW1DYWNoZWFibGVTbG90c1t0MV0sIC5v
cEdldEJ5UG5hbWVTbG93CisgICAgbG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Qw
XSwgdDAKKyAgICBsb2FkcCBbdDAsIHQzLCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MQorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goNykKKworLm9w
R2V0QnlQbmFtZVNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2J5
X3BuYW1lKQorICAgIGRpc3BhdGNoKDcpCisKKworX2xsaW50X29wX3B1dF9ieV92YWw6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQxLCAub3BQdXRCeVZhbFNsb3cpCisgICAgbG9hZGlz
IDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQwLCB0
MiwgLm9wUHV0QnlWYWxTbG93KQorICAgIHN4aTJwIHQyLCB0MgorICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QwXSwgdDAKKyAg
ICBsb2FkcCBKU0dsb2JhbERhdGE6OmpzQXJyYXlDbGFzc0luZm9bdDBdLCB0MAorICAgIGJwbmVx
IFt0MV0sIHQwLCAub3BQdXRCeVZhbFNsb3cKKyAgICBiaWFlcSB0MiwgSlNBcnJheTo6bV92ZWN0
b3JMZW5ndGhbdDFdLCAub3BQdXRCeVZhbFNsb3cKKyAgICBsb2FkcCBKU0FycmF5OjptX3N0b3Jh
Z2VbdDFdLCB0MAorICAgIGJ0cHogQXJyYXlTdG9yYWdlOjptX3ZlY3Rvclt0MCwgdDIsIDhdLCAu
b3BQdXRCeVZhbEVtcHR5Cisub3BQdXRCeVZhbFN0b3JlUmVzdWx0OgorICAgIGxvYWRpcyAyNFtQ
QiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDMsIHQxKQorICAgIHdy
aXRlQmFycmllcih0MSkKKyAgICBzdG9yZXAgdDEsIEFycmF5U3RvcmFnZTo6bV92ZWN0b3JbdDAs
IHQyLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5vcFB1dEJ5VmFsRW1wdHk6CisgICAgYWRkaSAx
LCBBcnJheVN0b3JhZ2U6Om1fbnVtVmFsdWVzSW5WZWN0b3JbdDBdCisgICAgYmliIHQyLCBBcnJh
eVN0b3JhZ2U6Om1fbGVuZ3RoW3QwXSwgLm9wUHV0QnlWYWxTdG9yZVJlc3VsdAorICAgIGFkZGkg
MSwgdDIsIHQxCisgICAgc3RvcmVpIHQxLCBBcnJheVN0b3JhZ2U6Om1fbGVuZ3RoW3QwXQorICAg
IGptcCAub3BQdXRCeVZhbFN0b3JlUmVzdWx0CisKKy5vcFB1dEJ5VmFsU2xvdzoKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlfdmFsKQorICAgIGRpc3BhdGNoKDQpCisK
KworX2xsaW50X29wX2xvb3A6CisgICAgbm9wCitfbGxpbnRfb3Bfam1wOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBkaXNwYXRjaEludCg4W1BCLCBQQywgOF0pCisKKworbWFjcm8ganVtcFRy
dWVPckZhbHNlKGNvbmRpdGlvbk9wLCBzbG93KQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQx
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgeG9ycCBWYWx1ZUZhbHNl
LCB0MAorICAgIGJ0cG56IHQwLCAtMSwgLnNsb3cKKyAgICBjb25kaXRpb25PcCh0MCwgLnRhcmdl
dCkKKyAgICBkaXNwYXRjaCgzKQorCisudGFyZ2V0OgorICAgIGRpc3BhdGNoSW50KDE2W1BCLCBQ
QywgOF0pCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93KQorICAgIGRpc3BhdGNoKDAp
CitlbmQKKworCittYWNybyBlcXVhbE51bGwoY2VsbEhhbmRsZXIsIGltbWVkaWF0ZUhhbmRsZXIp
CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MCkK
KyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5pbW1l
ZGlhdGUKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDIKKyAgICBjZWxsSGFu
ZGxlcihTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0Ml0sIC50YXJn
ZXQpCisgICAgZGlzcGF0Y2goMykKKworLnRhcmdldDoKKyAgICBkaXNwYXRjaCgxNltQQiwgUEMs
IDhdKQorCisuaW1tZWRpYXRlOgorICAgIGFuZHAgflRhZ0JpdFVuZGVmaW5lZCwgdDAKKyAgICBp
bW1lZGlhdGVIYW5kbGVyKHQwLCAudGFyZ2V0KQorICAgIGRpc3BhdGNoKDMpCitlbmQKKworX2xs
aW50X29wX2plcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGwoCisg
ICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGJueiB2YWx1ZSwgTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJpZXEg
dmFsdWUsIFZhbHVlTnVsbCwgdGFyZ2V0IGVuZCkKKworCitfbGxpbnRfb3Bfam5lcV9udWxsOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGwoCisgICAgICAgIG1hY3JvICh2YWx1
ZSwgdGFyZ2V0KSBidGJ6IHZhbHVlLCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCB0YXJnZXQgZW5k
LAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmluZXEgdmFsdWUsIFZhbHVlTnVsbCwg
dGFyZ2V0IGVuZCkKKworCitfbGxpbnRfb3Bfam5lcV9wdHI6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgMTZbUEIsIFBDLCA4XSwg
dDEKKyAgICBicG5lcSB0MSwgW2NmciwgdDAsIDhdLCAub3BKbmVxUHRyVGFyZ2V0CisgICAgZGlz
cGF0Y2goNCkKKworLm9wSm5lcVB0clRhcmdldDoKKyAgICBkaXNwYXRjaEludCgyNFtQQiwgUEMs
IDhdKQorCisKK21hY3JvIGNvbXBhcmUoaW50ZWdlckNvbXBhcmUsIGRvdWJsZUNvbXBhcmUsIHNs
b3dQYXRoKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGlzIDE2W1BCLCBQ
QywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MywgdDEpCisgICAgYnBiIHQwLCB0YWdUeXBlTnVtYmVyLCAub3Ax
Tm90SW50CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50CisgICAgaW50ZWdl
ckNvbXBhcmUodDAsIHQxLCAuanVtcFRhcmdldCkKKyAgICBkaXNwYXRjaCg0KQorCisub3AxTm90
SW50OgorICAgIGJ0cHogdDAsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgYnBiIHQxLCB0YWdU
eXBlTnVtYmVyLCAub3AxTm90SW50T3AyTm90SW50CisgICAgY2kyZCB0MSwgZnQxCisgICAgam1w
IC5vcDFOb3RJbnRSZWFkeQorLm9wMU5vdEludE9wMk5vdEludDoKKyAgICBidHB6IHQxLCB0YWdU
eXBlTnVtYmVyLCAuc2xvdworICAgIGFkZHAgdGFnVHlwZU51bWJlciwgdDEKKyAgICBmcDJkIHQx
LCBmdDEKKy5vcDFOb3RJbnRSZWFkeToKKyAgICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAg
ZnAyZCB0MCwgZnQwCisgICAgZG91YmxlQ29tcGFyZShmdDAsIGZ0MSwgLmp1bXBUYXJnZXQpCisg
ICAgZGlzcGF0Y2goNCkKKworLm9wMk5vdEludDoKKyAgICBjaTJkIHQwLCBmdDAKKyAgICBidHB6
IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFkZHAgdGFnVHlwZU51bWJlciwgdDEKKyAg
ICBmcDJkIHQxLCBmdDEKKyAgICBkb3VibGVDb21wYXJlKGZ0MCwgZnQxLCAuanVtcFRhcmdldCkK
KyAgICBkaXNwYXRjaCg0KQorCisuanVtcFRhcmdldDoKKyAgICBkaXNwYXRjaEludCgyNFtQQiwg
UEMsIDhdKQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0
Y2goMCkKK2VuZAorCisKK19sbGludF9vcF9zd2l0Y2hfaW1tOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQxKQorICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9yYXJlRGF0YVt0Ml0sIHQyCisg
ICAgbXVsaSBzaXplb2YgU2ltcGxlSnVtcFRhYmxlLCB0MyAgICAjIEZJWE1FOiB3b3VsZCBiZSBu
aWNlIHRvIHBlZXBob2xlIHRoaXMhCisgICAgbG9hZHAgQ29kZUJsb2NrOjpSYXJlRGF0YTo6bV9p
bW1lZGlhdGVTd2l0Y2hKdW1wVGFibGVzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDIKKyAg
ICBhZGRwIHQzLCB0MgorICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLm9wU3dpdGNoSW1tTm90
SW50CisgICAgc3ViaSBTaW1wbGVKdW1wVGFibGU6Om1pblt0Ml0sIHQxCisgICAgYmlhZXEgdDEs
IFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvclNpemVPZmZzZXRbdDJdLCAu
b3BTd2l0Y2hJbW1GYWxsVGhyb3VnaAorICAgIGxvYWRwIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNo
T2Zmc2V0cyArIFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQzCisgICAgbG9hZGlzIFt0MywgdDEs
IDRdLCB0MQorICAgIGJ0aXogdDEsIC5vcFN3aXRjaEltbUZhbGxUaHJvdWdoCisgICAgZGlzcGF0
Y2godDEpCisKKy5vcFN3aXRjaEltbU5vdEludDoKKyAgICBidHBueiB0MSwgLm9wU3dpdGNoSW1t
U2xvdyAgICMgR28gc2xvdyBpZiBpdCdzIGEgZG91YmxlLgorLm9wU3dpdGNoSW1tRmFsbFRocm91
Z2g6CisgICAgZGlzcGF0Y2hJbnQoMTZbUEIsIFBDLCA4XSkKKworLm9wU3dpdGNoSW1tU2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hfaW1tKQorICAgIGRpc3Bh
dGNoKDApCisKKworX2xsaW50X29wX3N3aXRjaF9jaGFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0
MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQxKQorICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9yYXJlRGF0YVt0Ml0sIHQyCisgICAg
bXVsaSBzaXplb2YgU2ltcGxlSnVtcFRhYmxlLCB0MworICAgIGxvYWRwIENvZGVCbG9jazo6UmFy
ZURhdGE6Om1fY2hhcmFjdGVyU3dpdGNoSnVtcFRhYmxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0
Ml0sIHQyCisgICAgYWRkcCB0MywgdDIKKyAgICBidHBueiB0MSwgdGFnTWFzaywgLm9wU3dpdGNo
Q2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MV0sIHQwCisg
ICAgYmJuZXEgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0MF0sIFN0
cmluZ1R5cGUsIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAorICAgIGxvYWRwIEpTU3RyaW5nOjpt
X3ZhbHVlW3QxXSwgdDAKKyAgICBiaW5lcSBTdHJpbmdJbXBsOjptX2xlbmd0aFt0MF0sIDEsIC5v
cFN3aXRjaENoYXJGYWxsVGhyb3VnaAorICAgIGxvYWRwIFN0cmluZ0ltcGw6Om1fZGF0YThbdDBd
LCB0MQorICAgIGJ0aW56IFN0cmluZ0ltcGw6Om1faGFzaEFuZEZsYWdzW3QwXSwgSGFzaEZsYWdz
OEJpdEJ1ZmZlciwgLm9wU3dpdGNoQ2hhcjhCaXQKKyAgICBsb2FkaCBbdDFdLCB0MAorICAgIGpt
cCAub3BTd2l0Y2hDaGFyUmVhZHkKKy5vcFN3aXRjaENoYXI4Qml0OgorICAgIGxvYWRiIFt0MV0s
IHQwCisub3BTd2l0Y2hDaGFyUmVhZHk6CisgICAgc3ViaSBTaW1wbGVKdW1wVGFibGU6Om1pblt0
Ml0sIHQwCisgICAgYmlhZXEgdDAsIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZl
Y3RvclNpemVPZmZzZXRbdDJdLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKKyAgICBsb2FkcCBT
aW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0
MgorICAgIGxvYWRpcyBbdDIsIHQwLCA0XSwgdDEKKyAgICBidGl6IHQxLCAub3BTd2l0Y2hDaGFy
RmFsbFRocm91Z2gKKyAgICBkaXNwYXRjaCh0MSkKKworLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdo
OgorICAgIGRpc3BhdGNoSW50KDE2W1BCLCBQQywgOF0pCisKKworX2xsaW50X29wX25ld19mdW5j
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBidGl6IDI0W1BCLCBQQywgOF0sIC5vcE5ld0Z1
bmNVbmNoZWNrZWQKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGJ0cG56IFtjZnIs
IHQxLCA4XSwgLm9wTmV3RnVuY0RvbmUKKy5vcE5ld0Z1bmNVbmNoZWNrZWQ6CisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmMpCisub3BOZXdGdW5jRG9uZToKKyAgICBk
aXNwYXRjaCg0KQorCisKK21hY3JvIGRvQ2FsbChzbG93UGF0aCkKKyAgICBsb2FkaXMgOFtQQiwg
UEMsIDhdLCB0MAorICAgIGxvYWRwIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZHAgTExJbnRD
YWxsTGlua0luZm86OmNhbGxlZVt0MV0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0
MCwgdDMpCisgICAgYnBuZXEgdDMsIHQyLCAub3BDYWxsU2xvdworICAgIGxvYWRpcyAyNFtQQiwg
UEMsIDhdLCB0MworICAgIGFkZGkgNiwgUEMKKyAgICBsc2hpZnRpIDMsIHQzCisgICAgYWRkcCBj
ZnIsIHQzCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9zY29wZUNoYWluW3QyXSwgdDAKKyAgICBz
dG9yZXAgdDIsIENhbGxlZVt0M10KKyAgICBzdG9yZXAgdDAsIFNjb3BlQ2hhaW5bdDNdCisgICAg
bG9hZGlzIDE2IC0gNDhbUEIsIFBDLCA4XSwgdDIKKyAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291
bnQgKyBUYWdPZmZzZXRbY2ZyXQorICAgIHN0b3JlcCBjZnIsIENhbGxlckZyYW1lW3QzXQorICAg
IHN0b3JlaSB0MiwgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbdDNdCisgICAgbW92ZSB0
MywgY2ZyCisgICAgY2FsbCBMTEludENhbGxMaW5rSW5mbzo6bWFjaGluZUNvZGVUYXJnZXRbdDFd
CisgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQorCisub3BDYWxsU2xvdzoKKyAgICBzbG93UGF0aEZv
ckNhbGwoNiwgc2xvd1BhdGgpCitlbmQKKworCitfbGxpbnRfb3BfdGVhcl9vZmZfYWN0aXZhdGlv
bjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAg
ICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBidHBueiBbY2ZyLCB0MCwgOF0sIC5vcFRl
YXJPZmZBY3RpdmF0aW9uQ3JlYXRlZAorICAgIGJ0cHogW2NmciwgdDEsIDhdLCAub3BUZWFyT2Zm
QWN0aXZhdGlvbk5vdENyZWF0ZWQKKy5vcFRlYXJPZmZBY3RpdmF0aW9uQ3JlYXRlZDoKKyAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90ZWFyX29mZl9hY3RpdmF0aW9uKQorLm9wVGVh
ck9mZkFjdGl2YXRpb25Ob3RDcmVhdGVkOgorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29w
X3RlYXJfb2ZmX2FyZ3VtZW50czoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhb
UEIsIFBDLCA4XSwgdDAKKyAgICBzdWJpIDEsIHQwICAgIyBHZXQgdGhlIHVubW9kaWZpZWRBcmd1
bWVudHNSZWdpc3RlcgorICAgIGJ0cHogW2NmciwgdDAsIDhdLCAub3BUZWFyT2ZmQXJndW1lbnRz
Tm90Q3JlYXRlZAorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RlYXJfb2ZmX2Fy
Z3VtZW50cykKKy5vcFRlYXJPZmZBcmd1bWVudHNOb3RDcmVhdGVkOgorICAgIGRpc3BhdGNoKDIp
CisKKworX2xsaW50X29wX3JldDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTd2l0
Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MgorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGRvUmV0dXJuKCkKKworCitfbGxpbnRf
b3BfY2FsbF9wdXRfcmVzdWx0OgorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQyCisgICAgbG9h
ZHAgMTZbUEIsIFBDLCA4XSwgdDMKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIHZh
bHVlUHJvZmlsZSh0MCwgdDMpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGRpc3BhdGNoKDMp
CisKKworX2xsaW50X29wX3JldF9vYmplY3Rfb3JfdGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMs
IDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGJ0cG56IHQw
LCB0YWdNYXNrLCAub3BSZXRPYmplY3RPclRoaXNOb3RPYmplY3QKKyAgICBsb2FkcCBKU0NlbGw6
Om1fc3RydWN0dXJlW3QwXSwgdDIKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlw
ZUluZm86Om1fdHlwZVt0Ml0sIE9iamVjdFR5cGUsIC5vcFJldE9iamVjdE9yVGhpc05vdE9iamVj
dAorICAgIGRvUmV0dXJuKCkKKworLm9wUmV0T2JqZWN0T3JUaGlzTm90T2JqZWN0OgorICAgIGxv
YWRpcyAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQw
KQorICAgIGRvUmV0dXJuKCkKKworCitfbGxpbnRfb3BfdG9fcHJpbWl0aXZlOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgOFtQ
QiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGJ0
cG56IHQwLCB0YWdNYXNrLCAub3BUb1ByaW1pdGl2ZUlzSW1tCisgICAgbG9hZHAgSlNDZWxsOjpt
X3N0cnVjdHVyZVt0MF0sIHQyCisgICAgYmJuZXEgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlw
ZUluZm86Om1fdHlwZVt0Ml0sIFN0cmluZ1R5cGUsIC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2UKKy5v
cFRvUHJpbWl0aXZlSXNJbW06CisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNw
YXRjaCgzKQorCisub3BUb1ByaW1pdGl2ZVNsb3dDYXNlOgorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3RvX3ByaW1pdGl2ZSkKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9v
cF9uZXh0X3BuYW1lOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMjRbUEIsIFBD
LCA4XSwgdDEKKyAgICBsb2FkaXMgMzJbUEIsIFBDLCA4XSwgdDIKKyAgICBhc3NlcnROb3RDb25z
dGFudCh0MSkKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MikKKyAgICBsb2FkaSBQYXlsb2FkT2Zm
c2V0W2NmciwgdDEsIDhdLCB0MAorICAgIGJpZXEgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0Miwg
OF0sIC5vcE5leHRQbmFtZUVuZAorICAgIGxvYWRpcyA0MFtQQiwgUEMsIDhdLCB0MgorICAgIGFz
c2VydE5vdENvbnN0YW50KHQyKQorICAgIGxvYWRwIFtjZnIsIHQyLCA4XSwgdDIKKyAgICBsb2Fk
cCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjptX2pzU3RyaW5nc1t0Ml0sIHQzCisgICAgbG9hZHAg
W3QzLCB0MCwgOF0sIHQzCisgICAgYWRkaSAxLCB0MAorICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9m
ZnNldFtjZnIsIHQxLCA4XQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgc3RvcmVw
IHQzLCBbY2ZyLCB0MSwgOF0KKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDMKKyAgICBhc3Nl
cnROb3RDb25zdGFudCh0MykKKyAgICBsb2FkcCBbY2ZyLCB0MywgOF0sIHQzCisgICAgbG9hZHAg
SlNDZWxsOjptX3N0cnVjdHVyZVt0M10sIHQxCisgICAgYnBuZXEgdDEsIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3I6Om1fY2FjaGVkU3RydWN0dXJlW3QyXSwgLm9wTmV4dFBuYW1lU2xvdworICAgIGxv
YWRwIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6Om1fY2FjaGVkUHJvdG90eXBlQ2hhaW5bdDJdLCB0
MAorICAgIGxvYWRwIFN0cnVjdHVyZUNoYWluOjptX3ZlY3Rvclt0MF0sIHQwCisgICAgYnRweiBb
dDBdLCAub3BOZXh0UG5hbWVUYXJnZXQKKy5vcE5leHRQbmFtZUNoZWNrUHJvdG90eXBlTG9vcDoK
KyAgICBicGVxIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbdDFdLCBWYWx1ZU51bGwsIC5vcE5leHRQ
bmFtZVNsb3cKKyAgICBsb2FkcCBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW3QxXSwgdDIKKyAgICBs
b2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QyXSwgdDEKKyAgICBicG5lcSB0MSwgW3QwXSwgLm9w
TmV4dFBuYW1lU2xvdworICAgIGFkZHAgOCwgdDAKKyAgICBidHBueiBbdDBdLCAub3BOZXh0UG5h
bWVDaGVja1Byb3RvdHlwZUxvb3AKKy5vcE5leHRQbmFtZVRhcmdldDoKKyAgICBkaXNwYXRjaElu
dCg0OFtQQiwgUEMsIDhdKQorCisub3BOZXh0UG5hbWVFbmQ6CisgICAgZGlzcGF0Y2goNykKKwor
Lm9wTmV4dFBuYW1lU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXh0
X3BuYW1lKSAjIFRoaXMgZWl0aGVyIGtlZXBzIHRoZSBQQyB3aGVyZSBpdCB3YXMgKGNhdXNpbmcg
dXMgdG8gbG9vcCkgb3Igc2V0cyBpdCB0byB0YXJnZXQuCisgICAgZGlzcGF0Y2goMCkKKworCitf
bGxpbnRfb3BfY2F0Y2g6CisgICAgIyBUaGlzIGlzIHdoZXJlIHdlIGVuZCB1cCBmcm9tIHRoZSBK
SVQncyB0aHJvdyB0cmFtcG9saW5lIChiZWNhdXNlIHRoZQorICAgICMgbWFjaGluZSBjb2RlIHJl
dHVybiBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRjaCksIGFuZCBmcm9tCisg
ICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChzZWUgX2xsaW50X3Rocm93
X3RyYW1wb2xpbmUpLgorICAgICMgVGhlIEpJVCB0aHJvd2luZyBwcm90b2NvbCBjYWxscyBmb3Ig
dGhlIGNmciB0byBiZSBpbiB0MC4gVGhlIHRocm93aW5nCisgICAgIyBjb2RlIG11c3QgaGF2ZSBr
bm93biB0aGF0IHdlIHdlcmUgdGhyb3dpbmcgdG8gdGhlIGludGVycHJldGVyLCBhbmQgaGF2ZQor
ICAgICMgc2V0IEpTR2xvYmFsRGF0YTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93LgorICAg
IG1vdmUgdDAsIGNmcgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgorICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbUEJdLCBQQgorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6
Omdsb2JhbERhdGFbc3BdLCB0MworICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6dGFyZ2V0SW50ZXJw
cmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMKKyAgICBzdWJwIFBCLCBQQworICAgIHVyc2hpZnRwIDMs
IFBDCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpleGNlcHRpb25bdDNdLCB0MAorICAgIHN0b3Jl
cCAwLCBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvblt0M10KKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MgorICAgIHN0b3JlcCB0MCwgW2NmciwgdDIsIDhdCisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2pzcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBhZGRpIDMsIFBDLCB0MQorICAgIHN0
b3JlaSB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2hJbnQoMTZbUEIsIFBDLCA4XSkKKwor
CitfbGxpbnRfb3Bfc3JldDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIs
IFBDLCA4XSwgdDAKKyAgICBsb2FkaSBbY2ZyLCB0MCwgOF0sIFBDCisgICAgZGlzcGF0Y2goMCkK
KworCitfbGxpbnRfb3BfZW5kOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N3aXRj
aFRvSklURm9yRXBpbG9ndWUoKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgYXNz
ZXJ0Tm90Q29uc3RhbnQodDApCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MAorICAgIGRvUmV0
dXJuKCkKKworCitfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZToKKyAgICAj
IFdoZW4gdGhyb3dpbmcgZnJvbSB0aGUgaW50ZXJwcmV0ZXIgKGkuZS4gdGhyb3dpbmcgZnJvbSBM
TEludFNsb3dQYXRocyksIHNvCisgICAgIyB0aGUgdGhyb3cgdGFyZ2V0IGlzIG5vdCBuZWNlc3Nh
cmlseSBpbnRlcnByZXRlZCBjb2RlLCB3ZSBjb21lIHRvIGhlcmUuCisgICAgIyBUaGlzIGVzc2Vu
dGlhbGx5IGVtdWxhdGVzIHRoZSBKSVQncyB0aHJvd2luZyBwcm90b2NvbC4KKyAgICBsb2FkcCBK
SVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDEKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6
OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRN
YWNoaW5lUENGb3JUaHJvd1t0MV0KKworCitfbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBv
bGluZToKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDIpCisgICAgbG9hZHAg
SklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRh
OjpjYWxsRnJhbWVGb3JUaHJvd1t0MV0sIHQwCisgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0
TWFjaGluZVBDRm9yVGhyb3dbdDFdCisKKworbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhl
Y3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCisgICAgc3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCisg
ICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgdDAKKyAgICBsb2FkcCBTY29wZUNoYWluW3QwXSwg
dDEKKyAgICBzdG9yZXAgdDEsIFNjb3BlQ2hhaW5bY2ZyXQorICAgIHBlZWsgMCwgdDEKKyAgICBz
dG9yZXAgdDEsIFJldHVyblBDW2Nmcl0KKyAgICBtb3ZlIGNmciwgdDUgICMgdDUgPSByZGkKKyAg
ICBzdWJwIDE2IC0gOCwgc3AKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDQgIyB0NCA9IHJzaQor
ICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0NF0sIHQxCisgICAgbW92ZSB0MCwg
Y2ZyICMgUmVzdG9yZSBjZnIgdG8gYXZvaWQgbG9hZGluZyBmcm9tIHN0YWNrCisgICAgY2FsbCBl
eGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0KKyAgICBhZGRwIDE2IC0gOCwgc3AKKyAgICBs
b2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhICsgOFtzcF0sIHQzCisgICAgYnRwbnogSlNH
bG9iYWxEYXRhOjpleGNlcHRpb25bdDNdLCAuZXhjZXB0aW9uCisgICAgcmV0CisuZXhjZXB0aW9u
OgorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MSkKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2NhbGwpCisgICAgam1wIF9sbGludF90aHJvd19m
cm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCitlbmQKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkocmV2aXNpb24gMTEw
MzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw5ICsyMSw4MjcgQEAKICMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgog
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKKyMgRmlyc3QgY29tZSB0aGUgY29t
bW9uIHByb3RvY29scyB0aGF0IGJvdGggaW50ZXJwcmV0ZXJzIHVzZS4gTm90ZSB0aGF0IGVhY2gK
KyMgb2YgdGhlc2UgbXVzdCBoYXZlIGFuIEFTU0VSVCgpIGluIExMSW50RGF0YS5jcHAKKworIyBU
aGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRjaCBpbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaC4K
K2NvbnN0IENhbGxGcmFtZUhlYWRlclNpemUgPSA0OAorY29uc3QgQXJndW1lbnRDb3VudCA9IC00
OAorY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAKK2NvbnN0IENhbGxlZSA9IC0zMgorY29uc3QgU2Nv
cGVDaGFpbiA9IC0yNAorY29uc3QgUmV0dXJuUEMgPSAtMTYKK2NvbnN0IENvZGVCbG9jayA9IC04
CisKK2NvbnN0IFRoaXNBcmd1bWVudE9mZnNldCA9IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0gOAor
CisjIFNvbWUgcmVnaXN0ZXIgY29udmVudGlvbnMuCitpZiBKU1ZBTFVFNjQKKyAgICAjIC0gVXNl
IGEgcGFpciBvZiByZWdpc3RlcnMgdG8gcmVwcmVzZW50IHRoZSBQQzogb25lIHJlZ2lzdGVyIGZv
ciB0aGUKKyAgICAjICAgYmFzZSBvZiB0aGUgcmVnaXN0ZXIgZmlsZSwgYW5kIG9uZSByZWdpc3Rl
ciBmb3IgdGhlIGluZGV4LgorICAgICMgLSBUaGUgUEMgYmFzZSAob3IgUEIgZm9yIHNob3J0KSBz
aG91bGQgYmUgc3RvcmVkIGluIHRoZSBjc3IuIEl0IHdpbGwKKyAgICAjICAgZ2V0IGNsb2JiZXJl
ZCBvbiBjYWxscyB0byBvdGhlciBKUyBjb2RlLCBidXQgd2lsbCBnZXQgc2F2ZWQgb24gY2FsbHMK
KyAgICAjICAgdG8gQyBmdW5jdGlvbnMuCisgICAgIyAtIEMgY2FsbHMgYXJlIHN0aWxsIGdpdmVu
IHRoZSBJbnN0cnVjdGlvbiogcmF0aGVyIHRoYW4gdGhlIFBDIGluZGV4LgorICAgICMgICBUaGlz
IHJlcXVpcmVzIGFuIGFkZCBiZWZvcmUgdGhlIGNhbGwsIGFuZCBhIHN1YiBhZnRlci4KKyAgICBj
b25zdCBQQyA9IHQ0CisgICAgY29uc3QgUEIgPSB0NgorICAgIGNvbnN0IHRhZ1R5cGVOdW1iZXIg
PSBjc3IxCisgICAgY29uc3QgdGFnTWFzayA9IGNzcjIKK2Vsc2UKKyAgICBjb25zdCBQQyA9IHQ0
CitlbmQKKworIyBDb25zdGFudHMgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRh
dGlvbi4KK2lmIEJJR19FTkRJQU4KKyAgICBjb25zdCBUYWdPZmZzZXQgPSAwCisgICAgY29uc3Qg
UGF5bG9hZE9mZnNldCA9IDQKK2Vsc2UKKyAgICBjb25zdCBUYWdPZmZzZXQgPSA0CisgICAgY29u
c3QgUGF5bG9hZE9mZnNldCA9IDAKK2VuZAorCisjIFR5cGUgY29uc3RhbnRzLgorY29uc3QgU3Ry
aW5nVHlwZSA9IDUKK2NvbnN0IE9iamVjdFR5cGUgPSAxMworCisjIFR5cGUgZmxhZ3MgY29uc3Rh
bnRzLgorY29uc3QgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDEKK2NvbnN0IEltcGxlbWVudHNI
YXNJbnN0YW5jZSA9IDIKK2NvbnN0IEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSA4CisK
KyMgQnl0ZWNvZGUgb3BlcmFuZCBjb25zdGFudHMuCitjb25zdCBGaXJzdENvbnN0YW50UmVnaXN0
ZXJJbmRleCA9IDB4NDAwMDAwMDAKKworIyBDb2RlIHR5cGUgY29uc3RhbnRzLgorY29uc3QgR2xv
YmFsQ29kZSA9IDAKK2NvbnN0IEV2YWxDb2RlID0gMQorY29uc3QgRnVuY3Rpb25Db2RlID0gMgor
CisjIFRoZSBpbnRlcnByZXRlciBzdGVhbHMgdGhlIHRhZyB3b3JkIG9mIHRoZSBhcmd1bWVudCBj
b3VudC4KK2NvbnN0IExMSW50UmV0dXJuUEMgPSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0CisK
KyMgU3RyaW5nIGZsYWdzLgorY29uc3QgSGFzaEZsYWdzOEJpdEJ1ZmZlciA9IDY0CisKKyMgQWxs
b2NhdGlvbiBjb25zdGFudHMKK2lmIEpTVkFMVUU2NAorICAgIGNvbnN0IEpTRmluYWxPYmplY3RT
aXplQ2xhc3NJbmRleCA9IDEKK2Vsc2UKKyAgICBjb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNz
SW5kZXggPSAzCitlbmQKKworIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1ZlY3Rvci5oCitpZiBKU1ZB
TFVFNjQKKyAgICBjb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorICAgIGNvbnN0IFZlY3RvckJ1
ZmZlck9mZnNldCA9IDgKK2Vsc2UKKyAgICBjb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorICAg
IGNvbnN0IFZlY3RvckJ1ZmZlck9mZnNldCA9IDQKK2VuZAorCisKKyMgU29tZSBjb21tb24gdXRp
bGl0aWVzLgorbWFjcm8gY3Jhc2goKQorICAgIHN0b3JlaSAwLCAweGJiYWRiZWVmW10KKyAgICBt
b3ZlIDAsIHQwCisgICAgY2FsbCB0MAorZW5kCisKK21hY3JvIGFzc2VydChhc3NlcnRpb24pCisg
ICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgYXNzZXJ0aW9uKC5vaykKKyAgICAgICAgY3Jh
c2goKQorICAgIC5vazoKKyAgICBlbmQKK2VuZAorCittYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJl
c3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKKyAgICBpZiBBUk12NworICAgICAgICBt
b3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAg
ICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3RlcgorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAg
ICBlbmQKK2VuZAorCittYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3Vy
Y2VSZWdpc3RlcikKKyAgICBpZiBBUk12NworICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBs
cgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcHVzaCBzb3VyY2VSZWdpc3Rlcgor
ICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKK2VuZAorCittYWNybyB0cmFjZUV4ZWN1
dGlvbigpCisgICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKKyAgICAgICAgY2FsbFNsb3dQYXRoKF9s
bGludF90cmFjZSkKKyAgICBlbmQKK2VuZAorCittYWNybyBzbG93UGF0aEZvckNhbGwoYWR2YW5j
ZSwgc2xvd1BhdGgpCisgICAgY2FsbENhbGxTbG93UGF0aCgKKyAgICAgICAgYWR2YW5jZSwKKyAg
ICAgICAgc2xvd1BhdGgsCisgICAgICAgIG1hY3JvIChjYWxsZWUpCisgICAgICAgICAgICBjYWxs
IGNhbGxlZQorICAgICAgICAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQorICAgICAgICBlbmQpCitl
bmQKKworbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVChpbmNyZW1lbnQsIGFjdGlvbikKKyAgICBpZiBK
SVRfRU5BQkxFRAorICAgICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICAgICAgYmFk
ZGlzIGluY3JlbWVudCwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRp
b25Db3VudGVyOjptX2NvdW50ZXJbdDBdLCAuY29udGludWUKKyAgICAgICAgYWN0aW9uKCkKKyAg
ICAuY29udGludWU6CisgICAgZW5kCitlbmQKKworbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckVw
aWxvZ3VlKCkKKyAgICBjaGVja1N3aXRjaFRvSklUKAorICAgICAgICAxMCwKKyAgICAgICAgbWFj
cm8gKCkKKyAgICAgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfcmVwbGFjZSkKKyAgICAgICAg
ZW5kKQorZW5kCisKK21hY3JvIGFzc2VydE5vdENvbnN0YW50KGluZGV4KQorICAgIGFzc2VydCht
YWNybyAob2spIGJpbHQgaW5kZXgsIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCBvayBlbmQp
CitlbmQKKworbWFjcm8gZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lz
dGVyKQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEpT
RnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCisg
ICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNhbGxbdGFyZ2V0UmVn
aXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3JvIGZ1bmN0aW9uRm9yQ29uc3RydWN0
Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0
YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRS
ZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjpt
X2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCitl
bmQKKworbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisg
ICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gZnVu
Y3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCisgICAgc3RvcmVwIHNvdXJjZVJl
Z2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQorZW5kCisKK21hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2Nr
U2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQorICAgICMgTm90aGluZyB0byBkbyEKK2VuZAorCisjIERv
IHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRoZSBQ
QywgbGVhdmUgdGhlIENvZGVCbG9jayoKKyMgaW4gdDEuIE1heSBhbHNvIHRyaWdnZXIgcHJvbG9n
dWUgZW50cnkgT1NSLgorbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tT
ZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQorICAgIHByZXNlcnZlUmV0dXJuQWRk
cmVzc0FmdGVyQ2FsbCh0MikKKyAgICAKKyAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQg
Y2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KKyAgICBzdG9yZXAgdDIsIFJldHVyblBDW2Nmcl0KKyAg
ICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAgICAgICBjYWxsU2xvd1BhdGgodHJhY2VTbG93UGF0
aCkKKyAgICBlbmQKKyAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCisgICAgaWYgSklUX0VOQUJMRUQK
KyAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsgRXhl
Y3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QxXSwgLmNvbnRpbnVlCisgICAgICAgIGNDYWxsMihv
c3JTbG93UGF0aCwgY2ZyLCBQQykKKyAgICAgICAgbW92ZSB0MSwgY2ZyCisgICAgICAgIGJ0cHog
dDAsIC5yZWNvdmVyCisgICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCisgICAgICAgIHJl
c3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgICAgICBqbXAgdDAKKyAgICAu
cmVjb3ZlcjoKKyAgICAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQorICAgIC5jb250aW51ZToKKyAg
ICBlbmQKKyAgICBjb2RlQmxvY2tTZXR0ZXIodDEpCisgICAgCisgICAgIyBTZXQgdXAgdGhlIFBD
LgorICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rp
b25zW3QxXSwgUEIKKyAgICAgICAgbW92ZSAwLCBQQworICAgIGVsc2UKKyAgICAgICAgbG9hZHAg
Q29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBDCisgICAgZW5kCitlbmQKKworIyBFeHBl
Y3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVh
dmVzIGJlaGluZC4KKyMgTXVzdCBjYWxsIGRpc3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4K
K21hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24ocHJvZmlsZUFyZ1NraXApCisgICAgaWYgVkFM
VUVfUFJPRklMRVIKKyAgICAgICAgIyBQcm9maWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRl
bHksIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0byBkbyB0aGlzLiBUaGlzCisgICAgICAgICMgY29k
ZSBpcyBwcmV0dHkgaG9ycmVuZG91cyBiZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVy
aW5nIGJldHdlZW4KKyAgICAgICAgIyBhcmd1bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUg
ZGVzaXJlIHRvIGhhdmUgYSBzaW1wbGUgbG9vcC1kb3duLXRvLXplcm8KKyAgICAgICAgIyBsb29w
LCBhbmQgdGhlIGRlc2lyZSB0byB1c2Ugb25seSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJl
c2VydmUgdGhlIFBDIGFuZAorICAgICAgICAjIHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkg
dGhhdCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJld3JpdHRlbiBpbiBhIG1vcmUKKyAgICAgICAgIyBv
cHRpbWFsIHdheSBmb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVn
aXN0ZXJzIGF2YWlsYWJsZQorICAgICAgICAjIGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRl
cnByZXRlci4KKyAgICAgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0
MAorICAgICAgICBhZGRwIC1wcm9maWxlQXJnU2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRo
YXQncyB3aGF0IGhhcyB0aGUgcGVlcGhvbGUKKyAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYnBn
dGVxIHQwLCAwLCBvayBlbmQpCisgICAgICAgIGJ0cHogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25l
CisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0
b3JCdWZmZXJPZmZzZXRbdDFdLCB0MworICAgICAgICBtdWxwIHNpemVvZiBWYWx1ZVByb2ZpbGUs
IHQwLCB0MiAjIEFhYWFhaGhoaCEgTmVlZCBzdHJlbmd0aCByZWR1Y3Rpb24hCisgICAgICAgIG5l
Z3AgdDAKKyAgICAgICAgbHNoaWZ0cCAzLCB0MAorICAgICAgICBhZGRwIHQyLCB0MworICAgIC5h
cmd1bWVudFByb2ZpbGVMb29wOgorICAgICAgICBpZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGxv
YWRwIFRoaXNBcmd1bWVudE9mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0s
IHQyCisgICAgICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQzCisgICAgICAgICAg
ICBzdG9yZXAgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVl
UHJvZmlsZTo6bV9idWNrZXRzW3QzXQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2FkaSBU
aGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2Nm
ciwgdDBdLCB0MgorICAgICAgICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MworICAg
ICAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUg
KyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFRhZ09mZnNldFt0M10KKyAgICAgICAgICAgIGxv
YWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1Nr
aXAgKiA4W2NmciwgdDBdLCB0MgorICAgICAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tp
cCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxv
YWRPZmZzZXRbdDNdCisgICAgICAgIGVuZAorICAgICAgICBiYWRkcG56IDgsIHQwLCAuYXJndW1l
bnRQcm9maWxlTG9vcAorICAgIC5hcmd1bWVudFByb2ZpbGVEb25lOgorICAgIGVuZAorICAgICAg
ICAKKyAgICAjIENoZWNrIHN0YWNrIGhlaWdodC4KKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVt
Q2FsbGVlUmVnaXN0ZXJzW3QxXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0
YVt0MV0sIHQyCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjppbnRlcnByZXRlclt0Ml0sIHQyICAg
IyBGSVhNRTogQ2FuIGdldCB0byB0aGUgUmVnaXN0ZXJGaWxlIGZyb20gdGhlIEpJVFN0YWNrRnJh
bWUKKyAgICBsc2hpZnRpIDMsIHQwCisgICAgYWRkcCB0MCwgY2ZyLCB0MAorICAgIGJwYWVxIElu
dGVycHJldGVyOjptX3JlZ2lzdGVyRmlsZSArIFJlZ2lzdGVyRmlsZTo6bV9lbmRbdDJdLCB0MCwg
LnN0YWNrSGVpZ2h0T0sKKworICAgICMgU3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQg
dG8gY2FsbCBhIHNsb3dfcGF0aC4KKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2Zp
bGVfY2hlY2spCisuc3RhY2tIZWlnaHRPSzoKK2VuZAorCittYWNybyBhbGxvY2F0ZUJhc2ljSlNP
YmplY3Qoc2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5mb09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQs
IHNjcmF0Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2UpCisgICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NM
T1cKKyAgICAgICAgam1wIHNsb3dDYXNlCisgICAgZWxzZQorICAgICAgICBjb25zdCBvZmZzZXRP
Zk15U2l6ZUNsYXNzID0KKyAgICAgICAgICAgIEpTR2xvYmFsRGF0YTo6aGVhcCArCisgICAgICAg
ICAgICBIZWFwOjptX29iamVjdFNwYWNlICsKKyAgICAgICAgICAgIE1hcmtlZFNwYWNlOjptX25v
cm1hbFNwYWNlICsKKyAgICAgICAgICAgIE1hcmtlZFNwYWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFs
bG9jYXRvcnMgKworICAgICAgICAgICAgc2l6ZUNsYXNzSW5kZXggKiBzaXplb2YgTWFya2VkQWxs
b2NhdG9yCisgICAgICAgIAorICAgICAgICAjIEZJWE1FOiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwg
ZGF0YSBpbiBvbmUgbG9hZCBmcm9tIHRoZSBzdGFjay4KKyAgICAgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHNjcmF0Y2gxCisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3Nj
cmF0Y2gxXSwgc2NyYXRjaDEKKyAgICAgICAgCisgICAgICAgICMgR2V0IHRoZSBvYmplY3QgZnJv
bSB0aGUgZnJlZSBsaXN0LiAgICAKKyAgICAgICAgbG9hZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyAr
IE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gxXSwgcmVzdWx0CisgICAg
ICAgIGJ0cHogcmVzdWx0LCBzbG93Q2FzZQorICAgICAgICAKKyAgICAgICAgIyBSZW1vdmUgdGhl
IG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuCisgICAgICAgIGxvYWRwIFtyZXN1bHRdLCBzY3Jh
dGNoMgorICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJr
ZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0KKyAgICAKKyAgICAgICAgIyBJ
bml0aWFsaXplIHRoZSBvYmplY3QuCisgICAgICAgIGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3Jh
dGNoMV0sIHNjcmF0Y2gyCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgW3Jlc3VsdF0KKyAgICAg
ICAgc3RvcmVwIHN0cnVjdHVyZSwgSlNDZWxsOjptX3N0cnVjdHVyZVtyZXN1bHRdCisgICAgICAg
IHN0b3JlcCAwLCBKU09iamVjdDo6bV9pbmhlcml0b3JJRFtyZXN1bHRdCisgICAgICAgIGFkZHAg
c2l6ZW9mIEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0Y2gxCisgICAgICAgIHN0b3JlcCBzY3JhdGNo
MSwgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Jlc3VsdF0KKyAgICBlbmQKK2VuZAorCitt
YWNybyBkb1JldHVybigpCisgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKKyAgICBsb2FkcCBD
YWxsZXJGcmFtZVtjZnJdLCBjZnIKKyAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVy
bih0MikKKyAgICByZXQKK2VuZAorCisKKyMgSW5kaWNhdGUgdGhlIGJlZ2lubmluZyBvZiBMTElu
dC4KK19sbGludF9iZWdpbjoKKyAgICBjcmFzaCgpCisKKworX2xsaW50X3Byb2dyYW1fcHJvbG9n
dWU6CisgICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9u
Q29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUp
CisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfZXZhbF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1
ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIs
IF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKKyAgICBkaXNwYXRjaCgw
KQorCisKK19sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShm
dW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBf
bGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWVf
ZnVuY3Rpb25fZm9yX2NhbGwpCisuZnVuY3Rpb25Gb3JDYWxsQmVnaW46CisgICAgZnVuY3Rpb25J
bml0aWFsaXphdGlvbigwKQorICAgIGRpc3BhdGNoKDApCisgICAgCisKK19sbGludF9mdW5jdGlv
bl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5
X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0LCBfbGxpbnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rp
b25fZm9yX2NvbnN0cnVjdCkKKy5mdW5jdGlvbkZvckNvbnN0cnVjdEJlZ2luOgorICAgIGZ1bmN0
aW9uSW5pdGlhbGl6YXRpb24oMSkKKyAgICBkaXNwYXRjaCgwKQorICAgIAorCitfbGxpbnRfZnVu
Y3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxs
Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29z
cl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eUNoZWNrLCBfbGxpbnRfdHJhY2VfYXJpdHlDaGVja19m
b3JfY2FsbCkKKyAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luLCBf
bGxpbnRfc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykKKworCitfbGxpbnRfZnVuY3Rpb25fZm9y
X2NvbnN0cnVjdF9hcml0eV9jaGVjazoKKyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNvbnN0cnVj
dENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9v
c3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eUNoZWNrLCBfbGxpbnRfdHJhY2VfYXJpdHlD
aGVja19mb3JfY29uc3RydWN0KQorICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JD
b25zdHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1Y3RfYXJpdHlDaGVjaykKKwor
CisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNwZWNpZmljIGNvZGUuCiBpZiBKU1ZBTFVFNjQKICAg
ICBpbmNsdWRlIExvd0xldmVsSW50ZXJwcmV0ZXI2NAogZWxzZQogICAgIGluY2x1ZGUgTG93TGV2
ZWxJbnRlcnByZXRlcjMyXzY0CiBlbmQKIAorCisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLWFnbm9z
dGljIGNvZGUuCitfbGxpbnRfb3BfbmV3X2FycmF5OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfYXJyYXkpCisgICAgZGlzcGF0Y2go
NCkKKworCitfbGxpbnRfb3BfbmV3X2FycmF5X2J1ZmZlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2FycmF5X2J1ZmZlcikKKyAg
ICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9uZXdfcmVnZXhwOgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfcmVnZXhwKQorICAg
IGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2xlc3M6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3MpCisgICAgZGlzcGF0Y2goNCkK
KworCitfbGxpbnRfb3BfbGVzc2VxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzZXEpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxp
bnRfb3BfZ3JlYXRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfZ3JlYXRlcikKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9n
cmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2dyZWF0ZXJlcSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9tb2Q6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X21vZCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF90eXBlb2Y6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3R5cGVvZikKKyAg
ICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc191bmRlZmluZWQ6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX3VuZGVmaW5lZCkK
KyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pc19ib29sZWFuOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19ib29sZWFuKQor
ICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX251bWJlcjoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfbnVtYmVyKQorICAg
IGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX3N0cmluZzoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfc3RyaW5nKQorICAgIGRp
c3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX29iamVjdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfb2JqZWN0KQorICAgIGRpc3Bh
dGNoKDMpCisKKworX2xsaW50X29wX2lzX2Z1bmN0aW9uOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19mdW5jdGlvbikKKyAgICBkaXNw
YXRjaCgzKQorCisKK19sbGludF9vcF9pbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW4pCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxp
bnRfb3BfcmVzb2x2ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfcmVzb2x2ZSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9y
ZXNvbHZlX3NraXA6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3Jlc29sdmVfc2tpcCkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9v
cF9yZXNvbHZlX2Jhc2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfYmFzZSkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGlu
dF9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKQorICAg
IGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX3Jlc29sdmVfd2l0aF9iYXNlOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dp
dGhfYmFzZSkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9yZXNvbHZlX3dpdGhfdGhp
czoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfcmVzb2x2ZV93aXRoX3RoaXMpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfZGVs
X2J5X2lkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9kZWxfYnlfaWQpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfZGVsX2J5
X3ZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfZGVsX2J5X3ZhbCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9wdXRfYnlf
aW5kZXg6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX3B1dF9ieV9pbmRleCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9wdXRf
Z2V0dGVyX3NldHRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9zZXR0ZXIpCisgICAgZGlzcGF0Y2goNSkKKworCitf
bGxpbnRfb3Bfam1wX3Njb3BlczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfam1wX3Njb3BlcykKKyAgICBkaXNwYXRjaCgwKQorCisKK19s
bGludF9vcF9sb29wX2lmX3RydWU6CisgICAgbm9wCitfbGxpbnRfb3BfanRydWU6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGp1bXBUcnVlT3JGYWxzZSgKKyAgICAgICAgbWFjcm8gKHZhbHVl
LCB0YXJnZXQpIGJ0aW56IHZhbHVlLCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19w
YXRoX2p0cnVlKQorCisKK19sbGludF9vcF9sb29wX2lmX2ZhbHNlOgorICAgIG5vcAorX2xsaW50
X29wX2pmYWxzZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAganVtcFRydWVPckZhbHNlKAor
ICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRpeiB2YWx1ZSwgdGFyZ2V0IGVuZCwKKyAg
ICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZmFsc2UpCisKKworX2xsaW50X29wX2xvb3BfaWZfbGVz
czoKKyAgICBub3AKK19sbGludF9vcF9qbGVzczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHQgbGVmdCwg
cmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBi
ZGx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2ps
ZXNzKQorCisKK19sbGludF9vcF9qbmxlc3M6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNv
bXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVmdCwg
cmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBi
ZGd0ZXF1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9qbmxlc3MpCisKKworX2xsaW50X29wX2xvb3BfaWZfZ3JlYXRlcjoKKyAgICBub3AKK19sbGlu
dF9vcF9qZ3JlYXRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBl
bmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0IGxlZnQsIHJpZ2h0
LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyKQorCisKK19s
bGludF9vcF9qbmdyZWF0ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisg
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRh
cmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXF1biBs
ZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0
ZXIpCisKKworX2xsaW50X29wX2xvb3BfaWZfbGVzc2VxOgorICAgIG5vcAorX2xsaW50X29wX2ps
ZXNzZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3Jv
IChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisg
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXEgbGVmdCwgcmlnaHQsIHRh
cmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfamxlc3NlcSkKKworCitfbGxpbnRf
b3Bfam5sZXNzZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisgICAgICAg
IG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5k
LAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndHVuIGxlZnQsIHJpZ2h0
LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzc2VxKQorCisKK19s
bGludF9vcF9sb29wX2lmX2dyZWF0ZXJlcToKKyAgICBub3AKK19sbGludF9vcF9qZ3JlYXRlcmVx
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmlndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQg
ZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyZXEpCisKKworX2xsaW50X29w
X2puZ3JlYXRlcmVxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHR1biBsZWZ0LCByaWdo
dCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXJlcSkKKwor
CitfbGxpbnRfb3BfbG9vcF9oaW50OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N3
aXRjaFRvSklURm9yTG9vcCgpCisgICAgZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3Bfc3dpdGNo
X3N0cmluZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfc3dpdGNoX3N0cmluZykKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9vcF9u
ZXdfZnVuY19leHA6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX25ld19mdW5jX2V4cCkKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9v
cF9jYWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBkb0NhbGwoX2xsaW50X3Nsb3dfcGF0
aF9jYWxsKQorCisKK19sbGludF9vcF9jb25zdHJ1Y3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdCkKKworCitfbGxpbnRfb3BfY2Fs
bF92YXJhcmdzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBzbG93UGF0aEZvckNhbGwoNiwg
X2xsaW50X3Nsb3dfcGF0aF9jYWxsX3ZhcmFyZ3MpCisKKworX2xsaW50X29wX2NhbGxfZXZhbDoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgCisgICAgIyBFdmFsIGlzIGV4ZWN1dGVkIGluIG9u
ZSBvZiB0d28gbW9kZXM6CisgICAgIworICAgICMgMSkgV2UgZmluZCB0aGF0IHdlJ3JlIHJlYWxs
eSBpbnZva2luZyBldmFsKCkgaW4gd2hpY2ggY2FzZSB0aGUKKyAgICAjICAgIGV4ZWN1dGlvbiBp
cyBwZXJmb21lZCBlbnRpcmVseSBpbnNpZGUgdGhlIHNsb3dfcGF0aCwgYW5kIGl0CisgICAgIyAg
ICByZXR1cm5zIHRoZSBQQyBvZiBhIGZ1bmN0aW9uIHRoYXQganVzdCByZXR1cm5zIHRoZSByZXR1
cm4gdmFsdWUKKyAgICAjICAgIHRoYXQgdGhlIGV2YWwgcmV0dXJuZWQuCisgICAgIworICAgICMg
MikgV2UgZmluZCB0aGF0IHdlJ3JlIGludm9raW5nIHNvbWV0aGluZyBjYWxsZWQgZXZhbCgpIHRo
YXQgaXMgbm90CisgICAgIyAgICB0aGUgcmVhbCBldmFsLiBUaGVuIHRoZSBzbG93X3BhdGggcmV0
dXJucyB0aGUgUEMgb2YgdGhlIHRoaW5nIHRvCisgICAgIyAgICBjYWxsLCBhbmQgd2UgY2FsbCBp
dC4KKyAgICAjCisgICAgIyBUaGlzIGFsbG93cyB1cyB0byBoYW5kbGUgdHdvIGNhc2VzLCB3aGlj
aCB3b3VsZCByZXF1aXJlIGEgdG90YWwgb2YKKyAgICAjIHVwIHRvIGZvdXIgcGllY2VzIG9mIHN0
YXRlIHRoYXQgY2Fubm90IGJlIGVhc2lseSBwYWNrZWQgaW50byB0d28KKyAgICAjIHJlZ2lzdGVy
cyAoQyBmdW5jdGlvbnMgY2FuIHJldHVybiB1cCB0byB0d28gcmVnaXN0ZXJzLCBlYXNpbHkpOgor
ICAgICMKKyAgICAjIC0gVGhlIGNhbGwgZnJhbWUgcmVnaXN0ZXIuIFRoaXMgbWF5IG9yIG1heSBu
b3QgaGF2ZSBiZWVuIG1vZGlmaWVkCisgICAgIyAgIGJ5IHRoZSBzbG93X3BhdGgsIGJ1dCB0aGUg
Y29udmVudGlvbiBpcyB0aGF0IGl0IHJldHVybnMgaXQuIEl0J3Mgbm90CisgICAgIyAgIHRvdGFs
bHkgY2xlYXIgaWYgdGhhdCdzIG5lY2Vzc2FyeSwgc2luY2UgdGhlIGNmciBpcyBjYWxsZWUgc2F2
ZS4KKyAgICAjICAgQnV0IHRoYXQncyBvdXIgc3R5bGUgaW4gdGhpcyBoZXJlIGludGVycHJldGVy
IHNvIHdlIHN0aWNrIHdpdGggaXQuCisgICAgIworICAgICMgLSBBIGJpdCB0byBzYXkgaWYgdGhl
IHNsb3dfcGF0aCBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQgdGhlIGV2YWwgYW5kIGhhcworICAgICMg
ICB0aGUgcmV0dXJuIHZhbHVlLCBvciBkaWQgbm90IGV4ZWN1dGUgdGhlIGV2YWwgYnV0IGhhcyBh
IFBDIGZvciB1cworICAgICMgICB0byBjYWxsLgorICAgICMKKyAgICAjIC0gRWl0aGVyOgorICAg
ICMgICAtIFRoZSBKUyByZXR1cm4gdmFsdWUgKHR3byByZWdpc3RlcnMpLCBvcgorICAgICMKKyAg
ICAjICAgLSBUaGUgUEMgdG8gY2FsbC4KKyAgICAjCisgICAgIyBJdCB0dXJucyBvdXQgdG8gYmUg
ZWFzaWVyIHRvIGp1c3QgYWx3YXlzIGhhdmUgdGhpcyByZXR1cm4gdGhlIGNmcgorICAgICMgYW5k
IGEgUEMgdG8gY2FsbCwgYW5kIHRoYXQgUEMgbWF5IGJlIGEgZHVtbXkgdGh1bmsgdGhhdCBqdXN0
CisgICAgIyByZXR1cm5zIHRoZSBKUyB2YWx1ZSB0aGF0IHRoZSBldmFsIHJldHVybmVkLgorICAg
IAorICAgIHNsb3dQYXRoRm9yQ2FsbCg0LCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfZXZhbCkKKwor
CitfbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQ6CisgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQor
CisKK19sbGludF9vcF9zdHJjYXQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3N0cmNhdCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGlu
dF9vcF9tZXRob2RfY2hlY2s6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgV2UgaWdub3Jl
IG1ldGhvZCBjaGVja3MgYW5kIHVzZSBub3JtYWwgZ2V0X2J5X2lkIG9wdGltaXphdGlvbnMuCisg
ICAgZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3BfZ2V0X3BuYW1lczoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X3BuYW1lcykKKyAg
ICBkaXNwYXRjaCgwKSAjIFRoZSBzbG93X3BhdGggZWl0aGVyIGFkdmFuY2VzIHRoZSBQQyBvciBq
dW1wcyB1cyB0byBzb21ld2hlcmUgZWxzZS4KKworCitfbGxpbnRfb3BfcHVzaF9zY29wZToKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHVz
aF9zY29wZSkKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9wb3Bfc2NvcGU6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3BvcF9z
Y29wZSkKKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9vcF9wdXNoX25ld19zY29wZToKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHVz
aF9uZXdfc2NvcGUpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfdGhyb3c6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Rocm93
KQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX3Rocm93X3JlZmVyZW5jZV9lcnJvcjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
dGhyb3dfcmVmZXJlbmNlX2Vycm9yKQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX3By
b2ZpbGVfd2lsbF9jYWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBKSVRTdGFj
a0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2Vbc3BdLCB0MAorICAgIGJ0cHogW3QwXSwg
Lm9wUHJvZmlsZVdpbGxDYWxsRG9uZQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X3Byb2ZpbGVfd2lsbF9jYWxsKQorLm9wUHJvZmlsZVdpbGxDYWxsRG9uZToKKyAgICBkaXNwYXRj
aCgyKQorCisKK19sbGludF9vcF9wcm9maWxlX2RpZF9jYWxsOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2Vbc3Bd
LCB0MAorICAgIGJ0cHogW3QwXSwgLm9wUHJvZmlsZVdpbGxDYWxsRG9uZQorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpCisub3BQcm9maWxlRGlkQ2Fs
bERvbmU6CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfZGVidWc6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlYnVnKQorICAg
IGRpc3BhdGNoKDQpCisKKworX2xsaW50X25hdGl2ZV9jYWxsX3RyYW1wb2xpbmU6CisgICAgbmF0
aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0YWJsZTo6bV9mdW5jdGlvbikKKworCitfbGxp
bnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5lOgorICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5l
KE5hdGl2ZUV4ZWN1dGFibGU6Om1fY29uc3RydWN0b3IpCisKKworIyBMYXN0bHksIG1ha2Ugc3Vy
ZSB0aGF0IHdlIGNhbiBsaW5rIGV2ZW4gdGhvdWdoIHdlIGRvbid0IHN1cHBvcnQgYWxsIG9wY29k
ZXMuCisjIFRoZXNlIG9wY29kZXMgc2hvdWxkIG5ldmVyIGFyaXNlIHdoZW4gdXNpbmcgTExJbnQg
b3IgZWl0aGVyIEpJVC4gV2UgYXNzZXJ0CisjIGFzIG11Y2guCisKK21hY3JvIG5vdFN1cHBvcnRl
ZCgpCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgY3Jhc2goKQorICAgIGVsc2UKKyAg
ICAgICAgIyBXZSBzaG91bGQgdXNlIHdoYXRldmVyIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBpbnN0
cnVjdGlvbiBpcywganVzdCB0bworICAgICAgICAjIGVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgZ2Fw
IGJldHdlZW4gaW5zdHJ1Y3Rpb24gbGFiZWxzLiBJZiBtdWx0aXBsZQorICAgICAgICAjIHNtYWxs
ZXN0IGluc3RydWN0aW9ucyBleGlzdCwgd2Ugc2hvdWxkIHBpY2sgdGhlIG9uZSB0aGF0IGlzIG1v
c3QKKyAgICAgICAgIyBsaWtlbHkgcmVzdWx0IGluIGV4ZWN1dGlvbiBiZWluZyBoYWx0ZWQuIEN1
cnJlbnRseSB0aGF0IGlzIHRoZSBicmVhaworICAgICAgICAjIGluc3RydWN0aW9uIG9uIGFsbCBh
cmNoaXRlY3R1cmVzIHdlJ3JlIGludGVyZXN0ZWQgaW4uIChCcmVhayBpcyBpbnQzCisgICAgICAg
ICMgb24gSW50ZWwsIHdoaWNoIGlzIDEgYnl0ZSwgYW5kIGJrcHQgb24gQVJNdjcsIHdoaWNoIGlz
IDIgYnl0ZXMuKQorICAgICAgICBicmVhaworICAgIGVuZAorZW5kCisKK19sbGludF9vcF9nZXRf
YXJyYXlfbGVuZ3RoOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRf
Y2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21f
Y2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21f
cHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21f
c2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dlbmVyaWM6
CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW46
CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG86
CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZjoK
KyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX3Byb3RvOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfc2VsZjoKKyAgICBub3RTdXBwb3J0
ZWQoKQorCitfbGxpbnRfb3BfZ2V0X3N0cmluZ19sZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkK
KworX2xsaW50X29wX3B1dF9ieV9pZF9nZW5lcmljOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19s
bGludF9vcF9wdXRfYnlfaWRfcmVwbGFjZToKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRf
b3BfcHV0X2J5X2lkX3RyYW5zaXRpb246CisgICAgbm90U3VwcG9ydGVkKCkKKworCisjIEluZGlj
YXRlIHRoZSBlbmQgb2YgTExJbnQuCitfbGxpbnRfZW5kOgorICAgIGNyYXNoKCkKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIJKHJldmlzaW9uIDExMDM0
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCSh3b3JraW5n
IGNvcHkpCkBAIC0zMywyOSArMzMsOSBAQCBjbGFzcyBOb2RlCiBlbmQKIAogY2xhc3MgU3BlY2lh
bFJlZ2lzdGVyIDwgTm9DaGlsZHJlbgotICAgIGRlZiBpbml0aWFsaXplKG5hbWUpCi0gICAgICAg
IEBuYW1lID0gbmFtZQotICAgIGVuZAotICAgIAogICAgIGRlZiBhcm1WN09wZXJhbmQKICAgICAg
ICAgQG5hbWUKICAgICBlbmQKLSAgICAKLSAgICBkZWYgYWRkcmVzcz8KLSAgICAgICAgZmFsc2UK
LSAgICBlbmQKLSAgICAKLSAgICBkZWYgbGFiZWw/Ci0gICAgICAgIGZhbHNlCi0gICAgZW5kCi0g
ICAgCi0gICAgZGVmIGltbWVkaWF0ZT8KLSAgICAgICAgZmFsc2UKLSAgICBlbmQKLSAgICAKLSAg
ICBkZWYgcmVnaXN0ZXI/Ci0gICAgICAgIHRydWUKLSAgICBlbmQKIGVuZAogCiBBUk12N19FWFRS
QV9HUFJTID0gW1NwZWNpYWxSZWdpc3Rlci5uZXcoInI5IiksIFNwZWNpYWxSZWdpc3Rlci5uZXco
InI4IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIzIildCkBAIC0yMjgsNyArMjA4LDcgQEAgZGVm
IGFybVY3TG93ZXJTaGlmdE9wcyhsaXN0KQogICAgICAgICB8IG5vZGUgfAogICAgICAgICBpZiBu
b2RlLmlzX2E/IEluc3RydWN0aW9uCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCi0gICAg
ICAgICAgICB3aGVuICJsc2hpZnRpIiwgInJzaGlmdGkiLCAidXJzaGlmdGkiCisgICAgICAgICAg
ICB3aGVuICJsc2hpZnRpIiwgInJzaGlmdGkiLCAidXJzaGlmdGkiLCAibHNoaWZ0cCIsICJyc2hp
ZnRwIiwgInVyc2hpZnRwIgogICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHMuc2l6ZSA9
PSAyCiAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUu
Y29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFthcm1WN1Nhbml0aXplU2hpZnQobm9kZS5vcGVyYW5k
c1swXSwgbmV3TGlzdCksIG5vZGUub3BlcmFuZHNbMV1dKQogICAgICAgICAgICAgICAgIGVsc2UK
QEAgLTQ2OSw3ICs0NDksNyBAQCBkZWYgYXJtVjdMb3dlck1hbGZvcm1lZEltbWVkaWF0ZXMobGlz
dCkKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwg
bm9kZS5hcm1WN0xvd2VyTWFsZm9ybWVkSW1tZWRpYXRlc1JlY3Vyc2UobmV3TGlzdCkKICAgICAg
ICAgICAgICAgICBlbmQKLSAgICAgICAgICAgIHdoZW4gIm11bGkiCisgICAgICAgICAgICB3aGVu
ICJtdWxpIiwgIm11bHAiCiAgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19h
PyBJbW1lZGlhdGUKICAgICAgICAgICAgICAgICAgICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2lu
LCA6Z3ByKQogICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhu
b2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUub3BlcmFuZHNbMF0sIHRtcF0pCkBAIC01MzUs
OSArNTE1LDkgQEAgZGVmIGFybVY3TG93ZXJNaXNwbGFjZWRBZGRyZXNzZXMobGlzdCkKICAgICAg
ICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgcG9zdEluc3RydWN0aW9u
cyA9IFtdCiAgICAgICAgICAgICBjYXNlIG5vZGUub3Bjb2RlCi0gICAgICAgICAgICB3aGVuICJh
ZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAibXVsaSIs
ICJuZWdpIiwgIm5vdGkiLCAib3JpIiwgIm9yaXMiLAotICAgICAgICAgICAgICAgICJvcnAiLCAi
cnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJzdWJpIiwgInN1YnAiLCAic3ViaXMiLCAieG9yaSIsICJ4
b3JwIiwgL15iaS8sIC9eYnAvLCAvXmJ0aS8sCi0gICAgICAgICAgICAgICAgL15idHAvLCAvXmNp
LywgL15jcC8sIC9edGkvCisgICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMi
LCAiYW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAibHNoaWZ0cCIsICJtdWxpIiwgIm11bHAiLCAi
bmVnaSIsCisgICAgICAgICAgICAgICAgIm5lZ3AiLCAibm90aSIsICJvcmkiLCAib3JpcyIsICJv
cnAiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJyc2hpZnRwIiwgInVyc2hpZnRwIiwgInN1Ymki
LAorICAgICAgICAgICAgICAgICJzdWJwIiwgInN1YmlzIiwgInhvcmkiLCAieG9ycCIsIC9eYmkv
LCAvXmJwLywgL15idGkvLCAvXmJ0cC8sIC9eY2kvLCAvXmNwLywgL150aS8KICAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5vcGNvZGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJtVjdBc1JlZ2lzdGVycyhuZXdM
aXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9wZXJhbmRzLCAiaSIpKQpAQCAtNjQ5LDcgKzYy
OSw3IEBAIGVuZAogIwogCiBjbGFzcyBTZXF1ZW5jZQotICAgIGRlZiBsb3dlckFSTXY3CisgICAg
ZGVmIGdldE1vZGlmaWVkTGlzdEFSTXY3CiAgICAgICAgIG15TGlzdCA9IEBsaXN0CiAgICAgICAg
IAogICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIHdpbGwgb25seSBzZWUgaW5zdHJ1Y3Rpb25zIGFu
ZCBsYWJlbHMuCkBAIC02NzMsMTAgKzY1Myw4IEBAIGNsYXNzIFNlcXVlbmNlCiAgICAgICAgIG15
TGlzdCA9IGFybVY3TG93ZXJSZWdpc3RlclJldXNlKG15TGlzdCkKICAgICAgICAgbXlMaXN0ID0g
YXNzaWduUmVnaXN0ZXJzVG9UZW1wb3JhcmllcyhteUxpc3QsIDpncHIsIEFSTXY3X0VYVFJBX0dQ
UlMpCiAgICAgICAgIG15TGlzdCA9IGFzc2lnblJlZ2lzdGVyc1RvVGVtcG9yYXJpZXMobXlMaXN0
LCA6ZnByLCBBUk12N19FWFRSQV9GUFJTKQotICAgICAgICBteUxpc3QuZWFjaCB7Ci0gICAgICAg
ICAgICB8IG5vZGUgfAotICAgICAgICAgICAgbm9kZS5sb3dlcigiQVJNdjciKQotICAgICAgICB9
CisgICAgICAgIAorICAgICAgICByZXR1cm4gbXlMaXN0CiAgICAgZW5kCiBlbmQKIApAQCAtNzky
LDEzICs3NzAsMTMgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVtaXRBcm1WN0Nv
bXBhY3QoIm9ycnMiLCAib3JycyIsIG9wZXJhbmRzKQogICAgICAgICB3aGVuICJ4b3JpIiwgInhv
cnAiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJlb3JzIiwgImVvciIsIG9wZXJhbmRz
KQotICAgICAgICB3aGVuICJsc2hpZnRpIgorICAgICAgICB3aGVuICJsc2hpZnRpIiwgImxzaGlm
dHAiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJsc2xzIiwgImxzbHMiLCBvcGVyYW5k
cykKLSAgICAgICAgd2hlbiAicnNoaWZ0aSIKKyAgICAgICAgd2hlbiAicnNoaWZ0aSIsICJyc2hp
ZnRwIgogICAgICAgICAgICAgZW1pdEFybVY3Q29tcGFjdCgiYXNycyIsICJhc3JzIiwgb3BlcmFu
ZHMpCi0gICAgICAgIHdoZW4gInVyc2hpZnRpIgorICAgICAgICB3aGVuICJ1cnNoaWZ0aSIsICJ1
cnNoaWZ0cCIKICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoImxzcnMiLCAibHNycyIsIG9w
ZXJhbmRzKQotICAgICAgICB3aGVuICJtdWxpIgorICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAi
CiAgICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDIgb3Igb3BlcmFuZHNbMF0gPT0gb3Bl
cmFuZHNbMl0gb3Igb3BlcmFuZHNbMV0gPT0gb3BlcmFuZHNbMl0KICAgICAgICAgICAgICAgICBl
bWl0QXJtVjcoIm11bHMiLCBvcGVyYW5kcykKICAgICAgICAgICAgIGVsc2UKQEAgLTgwNywxMSAr
Nzg1LDExIEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hl
biAic3ViaSIsICJzdWJwIiwgInN1YmlzIgogICAgICAgICAgICAgZW1pdEFybVY3Q29tcGFjdCgi
c3VicyIsICJzdWJzIiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gIm5lZ2kiCisgICAgICAgIHdo
ZW4gIm5lZ2kiLCAibmVncCIKICAgICAgICAgICAgICRhc20ucHV0cyAicnNicyAje29wZXJhbmRz
WzBdLmFybVY3T3BlcmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtVjdPcGVyYW5kfSwgXCMwIgogICAg
ICAgICB3aGVuICJub3RpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJtdm5zICN7b3BlcmFuZHNb
MF0uYXJtVjdPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1WN09wZXJhbmR9IgotICAgICAgICB3
aGVuICJsb2FkaSIsICJsb2FkcCIKKyAgICAgICAgd2hlbiAibG9hZGkiLCAibG9hZGlzIiwgImxv
YWRwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJsZHIgI3thcm1WN0ZsaXBwZWRPcGVyYW5kcyhv
cGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9yZWkiLCAic3RvcmVwIgogICAgICAgICAgICAg
JGFzbS5wdXRzICJzdHIgI3thcm1WN09wZXJhbmRzKG9wZXJhbmRzKX0iCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJiCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIJKHdvcmtpbmcgY29weSkKQEAgLTE2
Nyw2ICsxNjcsNyBAQCBGaWxlLm9wZW4ob3V0cHV0RmxubSwgInciKSB7CiAgICAgICAgIGZvclNl
dHRpbmdzKGNvbXB1dGVTZXR0aW5nc0NvbWJpbmF0aW9ucyhhc3QpW2NvbmZpZ0luZGV4XSwgYXN0
KSB7CiAgICAgICAgICAgICB8IGNvbmNyZXRlU2V0dGluZ3MsIGxvd0xldmVsQVNULCBiYWNrZW5k
IHwKICAgICAgICAgICAgIGxvd0xldmVsQVNUID0gbG93TGV2ZWxBU1QucmVzb2x2ZSgqYnVpbGRP
ZmZzZXRzTWFwKGxvd0xldmVsQVNULCBvZmZzZXRzTGlzdCkpCisgICAgICAgICAgICBsb3dMZXZl
bEFTVC52YWxpZGF0ZQogICAgICAgICAgICAgZW1pdENvZGVJbkNvbmZpZ3VyYXRpb24oY29uY3Jl
dGVTZXR0aW5ncywgbG93TGV2ZWxBU1QsIGJhY2tlbmQpIHsKICAgICAgICAgICAgICAgICAkYXNt
LmluQXNtIHsKICAgICAgICAgICAgICAgICAgICAgbG93TGV2ZWxBU1QubG93ZXIoYmFja2VuZCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIJKHJldmlzaW9uIDEx
MDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkod29ya2lu
ZyBjb3B5KQpAQCAtMzgzLDYgKzM4MywxNTcgQEAgY2xhc3MgTmVnSW1tZWRpYXRlIDwgTm9kZQog
ICAgIGVuZAogZW5kCiAKK2NsYXNzIE9ySW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRl
ciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVm
dCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVm
dAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJl
bgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hp
bGRyZW4KKyAgICAgICAgT3JJbW1lZGlhdGVzLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGxlZnQp
LCAoeWllbGQgQHJpZ2h0KSkKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAorICAgICAgICAi
KCN7bGVmdC5kdW1wfSB8ICN7cmlnaHQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRlZiBh
ZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAg
ICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0
cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQorICAg
IGVuZAorZW5kCisKK2NsYXNzIEFuZEltbWVkaWF0ZXMgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIg
OmxlZnQsIDpyaWdodAorICAgIAorICAgIGRlZiBpbml0aWFsaXplKGNvZGVPcmlnaW4sIGxlZnQs
IHJpZ2h0KQorICAgICAgICBzdXBlcihjb2RlT3JpZ2luKQorICAgICAgICBAbGVmdCA9IGxlZnQK
KyAgICAgICAgQHJpZ2h0ID0gcmlnaHQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4K
KyAgICAgICAgW0BsZWZ0LCBAcmlnaHRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1hcENoaWxk
cmVuCisgICAgICAgIEFuZEltbWVkaWF0ZXMubmV3KGNvZGVPcmlnaW4sICh5aWVsZCBAbGVmdCks
ICh5aWVsZCBAcmlnaHQpKQorICAgIGVuZAorICAgIAorICAgIGRlZiBkdW1wCisgICAgICAgICIo
I3tsZWZ0LmR1bXB9ICYgI3tyaWdodC5kdW1wfSkiCisgICAgZW5kCisgICAgCisgICAgZGVmIGFk
ZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPworICAg
ICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRy
dWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAg
ZW5kCitlbmQKKworY2xhc3MgWG9ySW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6
bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwg
cmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAor
ICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgor
ICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRy
ZW4KKyAgICAgICAgWG9ySW1tZWRpYXRlcy5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwg
KHlpZWxkIEByaWdodCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAgIigj
e2xlZnQuZHVtcH0gXiAje3JpZ2h0LmR1bXB9KSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRk
cmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAg
ICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1
ZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgZmFsc2UKKyAgICBl
bmQKK2VuZAorCitjbGFzcyBCaXRub3RJbW1lZGlhdGUgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIg
OmNoaWxkCisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdpbiwgY2hpbGQpCisgICAg
ICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBjaGlsZCA9IGNoaWxkCisgICAgZW5kCisg
ICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtAY2hpbGRdCisgICAgZW5kCisgICAgCisg
ICAgZGVmIG1hcENoaWxkcmVuCisgICAgICAgIEJpdG5vdEltbWVkaWF0ZS5uZXcoY29kZU9yaWdp
biwgKHlpZWxkIEBjaGlsZCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAg
Iih+I3tAY2hpbGQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAg
ICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5k
CisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisK
IGNsYXNzIFJlZ2lzdGVySUQgPCBOb0NoaWxkcmVuCiAgICAgYXR0cl9yZWFkZXIgOm5hbWUKICAg
ICAKQEAgLTQ1OSw2ICs2MTAsMjggQEAgY2xhc3MgRlBSZWdpc3RlcklEIDwgTm9DaGlsZHJlbgog
ICAgIGVuZAogZW5kCiAKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBk
ZWYgaW5pdGlhbGl6ZShuYW1lKQorICAgICAgICBAbmFtZSA9IG5hbWUKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYg
bGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8K
KyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAg
IHRydWUKKyAgICBlbmQKK2VuZAorCiBjbGFzcyBWYXJpYWJsZSA8IE5vQ2hpbGRyZW4KICAgICBh
dHRyX3JlYWRlciA6bmFtZQogICAgIApAQCAtNDc5LDYgKzY1MiwxMCBAQCBjbGFzcyBWYXJpYWJs
ZSA8IE5vQ2hpbGRyZW4KICAgICBkZWYgZHVtcAogICAgICAgICBuYW1lCiAgICAgZW5kCisgICAg
CisgICAgZGVmIGluc3BlY3QKKyAgICAgICAgIjx2YXJpYWJsZSAje25hbWV9IGF0ICN7Y29kZU9y
aWdpblN0cmluZ30+IgorICAgIGVuZAogZW5kCiAKIGNsYXNzIEFkZHJlc3MgPCBOb2RlCkBAIC03
NTcsNiArOTM0LDEwIEBAIGNsYXNzIExhYmVsUmVmZXJlbmNlIDwgTm9kZQogICAgIGRlZiBsYWJl
bD8KICAgICAgICAgdHJ1ZQogICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAg
ICAgIGZhbHNlCisgICAgZW5kCiBlbmQKIAogY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8IE5v
Q2hpbGRyZW4KQEAgLTc5MCw2ICs5NzEsMTAgQEAgY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8
IE5vQ2hpbGRyZW4KICAgICBkZWYgbGFiZWw/CiAgICAgICAgIHRydWUKICAgICBlbmQKKyAgICAK
KyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICBmYWxzZQorICAgIGVuZAogZW5kCiAKIGNsYXNz
IFNlcXVlbmNlIDwgTm9kZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20v
YmFja2VuZHMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vYmFja2VuZHMucmIJKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCwxMiBA
QCBCQUNLRU5EX1BBVFRFUk4gPSBSZWdleHAubmV3KCdcXEEoJyArIEJBCiAKIGNsYXNzIE5vZGUK
ICAgICBkZWYgbG93ZXIobmFtZSkKLSAgICAgICAgJGFjdGl2ZUJhY2tlbmQgPSBuYW1lCi0gICAg
ICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAgICAgIGJlZ2luCisgICAgICAgICAgICAkYWN0
aXZlQmFja2VuZCA9IG5hbWUKKyAgICAgICAgICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAg
ICAgIHJlc2N1ZSA9PiBlCisgICAgICAgICAgICByYWlzZSAiR290IGVycm9yICN7ZX0gYXQgI3tj
b2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQKIApAQCAtODcsNyAr
OTEsMTMgQEAgZW5kCiBjbGFzcyBTZXF1ZW5jZQogICAgIGRlZiBsb3dlcihuYW1lKQogICAgICAg
ICAkYWN0aXZlQmFja2VuZCA9IG5hbWUKLSAgICAgICAgaWYgcmVzcG9uZF90bz8gImxvd2VyI3tu
YW1lfSIKKyAgICAgICAgaWYgcmVzcG9uZF90bz8gImdldE1vZGlmaWVkTGlzdCN7bmFtZX0iCisg
ICAgICAgICAgICBuZXdMaXN0ID0gc2VuZCgiZ2V0TW9kaWZpZWRMaXN0I3tuYW1lfSIpCisgICAg
ICAgICAgICBuZXdMaXN0LmVhY2ggeworICAgICAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAg
ICAgICAgICAgbm9kZS5sb3dlcihuYW1lKQorICAgICAgICAgICAgfQorICAgICAgICBlbHNpZiBy
ZXNwb25kX3RvPyAibG93ZXIje25hbWV9IgogICAgICAgICAgICAgc2VuZCgibG93ZXIje25hbWV9
IikKICAgICAgICAgZWxzZQogICAgICAgICAgICAgQGxpc3QuZWFjaCB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZpc2lv
biAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlv
bnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE1ICszMCwyMCBAQCBNQUNST19JTlNUUlVDVElP
TlMgPQogICAgICAiYWRkaSIsCiAgICAgICJhbmRpIiwKICAgICAgImxzaGlmdGkiLAorICAgICAi
bHNoaWZ0cCIsCiAgICAgICJtdWxpIiwKICAgICAgIm5lZ2kiLAorICAgICAibmVncCIsCiAgICAg
ICJub3RpIiwKICAgICAgIm9yaSIsCiAgICAgICJyc2hpZnRpIiwKICAgICAgInVyc2hpZnRpIiwK
KyAgICAgInJzaGlmdHAiLAorICAgICAidXJzaGlmdHAiLAogICAgICAic3ViaSIsCiAgICAgICJ4
b3JpIiwKICAgICAgImxvYWRpIiwKKyAgICAgImxvYWRpcyIsCiAgICAgICJsb2FkYiIsCiAgICAg
ICJsb2FkYnMiLAogICAgICAibG9hZGgiLApAQCAtMTU5LDYgKzE2NCw3IEBAIE1BQ1JPX0lOU1RS
VUNUSU9OUyA9CiAgICAgICJicGx0IiwKICAgICAgImJwbHRlcSIsCiAgICAgICJhZGRwIiwKKyAg
ICAgIm11bHAiLAogICAgICAiYW5kcCIsCiAgICAgICJvcnAiLAogICAgICAic3VicCIsCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9wYXJzZXIucmIKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCShyZXZpc2lvbiAx
MTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9wYXJzZXIucmIJKHdv
cmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBkZWYgbGV4KHN0ciwgZmlsZU5hbWUpCiAg
ICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBs
aW5lTnVtYmVyKSwgJCYpCiAgICAgICAgIHdoZW4gL1xBOjovCiAgICAgICAgICAgICByZXN1bHQg
PDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKSwgJCYpCi0g
ICAgICAgIHdoZW4gL1xBWzosXChcKVxbXF09XCtcLSpdLworICAgICAgICB3aGVuIC9cQVs6LFwo
XClcW1xdPVwrXC1+XHwmXipdLwogICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhDb2Rl
T3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQmKQogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICByYWlzZSAiTGV4ZXIgZXJyb3IgYXQgI3tDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwg
bGluZU51bWJlcikudG9fc30sIHVuZXhwZWN0ZWQgc2VxdWVuY2UgI3tzdHJbMC4uMjBdLmluc3Bl
Y3R9IgpAQCAtMzIyLDYgKzMyMiw5IEBAIGNsYXNzIFBhcnNlcgogICAgICAgICBpZiBAdG9rZW5z
W0BpZHhdID09ICItIgogICAgICAgICAgICAgQGlkeCArPSAxCiAgICAgICAgICAgICBOZWdJbW1l
ZGlhdGUubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4sIHBhcnNlRXhwcmVzc2lvbkF0
b20pCisgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gIn4iCisgICAgICAgICAgICBAaWR4
ICs9IDEKKyAgICAgICAgICAgIEJpdG5vdEltbWVkaWF0ZS5uZXcoQHRva2Vuc1tAaWR4IC0gMV0u
Y29kZU9yaWdpbiwgcGFyc2VFeHByZXNzaW9uQXRvbSkKICAgICAgICAgZWxzaWYgQHRva2Vuc1tA
aWR4XSA9PSAiKCIKICAgICAgICAgICAgIEBpZHggKz0gMQogICAgICAgICAgICAgcmVzdWx0ID0g
cGFyc2VFeHByZXNzaW9uCkBAIC0zNjUsMTAgKzM2OCwxMCBAQCBjbGFzcyBQYXJzZXIKICAgICBl
bmQKICAgICAKICAgICBkZWYgY291bGRCZUV4cHJlc3Npb24KLSAgICAgICAgQHRva2Vuc1tAaWR4
XSA9PSAiLSIgb3IgQHRva2Vuc1tAaWR4XSA9PSAic2l6ZW9mIiBvciBpc0ludGVnZXIoQHRva2Vu
c1tAaWR4XSkgb3IgaXNWYXJpYWJsZShAdG9rZW5zW0BpZHhdKSBvciBAdG9rZW5zW0BpZHhdID09
ICIoIgorICAgICAgICBAdG9rZW5zW0BpZHhdID09ICItIiBvciBAdG9rZW5zW0BpZHhdID09ICJ+
IiBvciBAdG9rZW5zW0BpZHhdID09ICJzaXplb2YiIG9yIGlzSW50ZWdlcihAdG9rZW5zW0BpZHhd
KSBvciBpc1ZhcmlhYmxlKEB0b2tlbnNbQGlkeF0pIG9yIEB0b2tlbnNbQGlkeF0gPT0gIigiCiAg
ICAgZW5kCiAgICAgCi0gICAgZGVmIHBhcnNlRXhwcmVzc2lvbgorICAgIGRlZiBwYXJzZUV4cHJl
c3Npb25BZGQKICAgICAgICAgc2tpcE5ld0xpbmUKICAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHBy
ZXNzaW9uTXVsCiAgICAgICAgIHdoaWxlIEB0b2tlbnNbQGlkeF0gPT0gIisiIG9yIEB0b2tlbnNb
QGlkeF0gPT0gIi0iCkBAIC0zODUsNiArMzg4LDMzIEBAIGNsYXNzIFBhcnNlcgogICAgICAgICBy
ZXN1bHQKICAgICBlbmQKICAgICAKKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uQW5kCisgICAgICAg
IHNraXBOZXdMaW5lCisgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbkFkZAorICAgICAg
ICB3aGlsZSBAdG9rZW5zW0BpZHhdID09ICImIgorICAgICAgICAgICAgQGlkeCArPSAxCisgICAg
ICAgICAgICByZXN1bHQgPSBBbmRJbW1lZGlhdGVzLm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2Rl
T3JpZ2luLCByZXN1bHQsIHBhcnNlRXhwcmVzc2lvbkFkZCkKKyAgICAgICAgZW5kCisgICAgICAg
IHJlc3VsdAorICAgIGVuZAorICAgIAorICAgIGRlZiBwYXJzZUV4cHJlc3Npb24KKyAgICAgICAg
c2tpcE5ld0xpbmUKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uQW5kCisgICAgICAg
IHdoaWxlIEB0b2tlbnNbQGlkeF0gPT0gInwiIG9yIEB0b2tlbnNbQGlkeF0gPT0gIl4iCisgICAg
ICAgICAgICBpZiBAdG9rZW5zW0BpZHhdID09ICJ8IgorICAgICAgICAgICAgICAgIEBpZHggKz0g
MQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IE9ySW1tZWRpYXRlcy5uZXcoQHRva2Vuc1tAaWR4
IC0gMV0uY29kZU9yaWdpbiwgcmVzdWx0LCBwYXJzZUV4cHJlc3Npb25BbmQpCisgICAgICAgICAg
ICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJeIgorICAgICAgICAgICAgICAgIEBpZHggKz0gMQor
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IFhvckltbWVkaWF0ZXMubmV3KEB0b2tlbnNbQGlkeCAt
IDFdLmNvZGVPcmlnaW4sIHJlc3VsdCwgcGFyc2VFeHByZXNzaW9uQW5kKQorICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBlbmQKKyAgICAgICAgZW5k
CisgICAgICAgIHJlc3VsdAorICAgIGVuZAorICAgIAogICAgIGRlZiBwYXJzZU9wZXJhbmQoY29t
bWVudCkKICAgICAgICAgc2tpcE5ld0xpbmUKICAgICAgICAgaWYgY291bGRCZUV4cHJlc3Npb24K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIJ
KHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3Jl
Z2lzdGVycy5yYgkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsMTMgQEAgR1BSUyA9CiAgICAg
ICJyMCIsCiAgICAgICJyMSIsCiAgICAgICJzcCIsCi0gICAgICJsciIKKyAgICAgImxyIiwKKyAg
ICAgCisgICAgICMgNjQtYml0IG9ubHkgcmVnaXN0ZXJzOgorICAgICAidDUiLAorICAgICAidDYi
LCAgIyByMTAKKyAgICAgImNzcjEiLCAgIyByMTQsIHRhZyB0eXBlIG51bWJlciByZWdpc3Rlcgor
ICAgICAiY3NyMiIgICAjIHIxNSwgdGFnIG1hc2sgcmVnaXN0ZXIKICAgICBdCiAKIEZQUlMgPQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJiCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3RyYW5zZm9ybS5yYgko
cmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJh
bnNmb3JtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMjgsNiArMzI4LDQ0IEBAIGNsYXNzIE5lZ0lt
bWVkaWF0ZQogICAgIGVuZAogZW5kCiAKK2NsYXNzIE9ySW1tZWRpYXRlcworICAgIGRlZiBmb2xk
CisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9s
ZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAg
ICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIElt
bWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUgfCBAcmlnaHQudmFsdWUpCisgICAg
ZW5kCitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBs
ZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICBy
ZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBz
ZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXco
Y29kZU9yaWdpbiwgQGxlZnQudmFsdWUgJiBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKwor
Y2xhc3MgWG9ySW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQu
Zm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1
bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBA
cmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwg
QGxlZnQudmFsdWUgXiBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgQml0bm90
SW1tZWRpYXRlCisgICAgZGVmIGZvbGQKKyAgICAgICAgQGNoaWxkID0gQGNoaWxkLmZvbGQKKyAg
ICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEBjaGlsZC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAg
SW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCB+QGNoaWxkLnZhbHVlKQorICAgIGVuZAorZW5kCisK
ICMKICMgbm9kZS5yZXNvbHZlQWZ0ZXJTZXR0aW5ncyhvZmZzZXRzLCBzaXplcykKICMKQEAgLTM0
MCwzICszNzgsOTcgQEAgY2xhc3MgTm9kZQogICAgIGVuZAogZW5kCiAKKyMKKyMgbm9kZS52YWxp
ZGF0ZQorIworIyBDaGVja3MgdGhhdCB0aGUgbm9kZSBpcyByZWFkeSBmb3IgYmFja2VuZCBjb21w
aWxhdGlvbi4KKyMKKworY2xhc3MgTm9kZQorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICByYWlz
ZSAiVW5yZXNvbHZlZCAje2R1bXB9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCisgICAgZW5kCisg
ICAgCisgICAgZGVmIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICAgICAgY2hpbGRyZW4uZWFjaCB7Cisg
ICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgbm9kZS52YWxpZGF0ZQorICAgICAgICB9
CisgICAgZW5kCitlbmQKKworY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAg
ICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAg
IGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYg
dmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgdmFs
aWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBZGRyZXNzCisgICAgZGVmIHZhbGlkYXRlCisg
ICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFzcyBCYXNlSW5kZXgK
KyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5k
CisKK2NsYXNzIEFic29sdXRlQWRkcmVzcworICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxp
ZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYg
dmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNz
IEVycm9yCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgTGFiZWwKKyAg
ICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBMb2NhbExhYmVsCisgICAgZGVm
IHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgTGFiZWxSZWZlcmVuY2UKKyAgICBkZWYg
dmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBMb2NhbExhYmVsUmVmZXJlbmNlCisgICAg
ZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgU2tpcAorICAgIGRlZiB2YWxpZGF0
ZQorICAgIGVuZAorZW5kCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L3g4Ni5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94
ODYucmIJKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL3g4Ni5yYgkod29ya2luZyBjb3B5KQpAQCAtMzIsMTMgKzMyLDM3IEBAIGRlZiBpc1g2NAog
ICAgIGVuZAogZW5kCiAKK2NsYXNzIFNwZWNpYWxSZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBk
ZWYgeDg2T3BlcmFuZChraW5kKQorICAgICAgICByYWlzZSB1bmxlc3MgQG5hbWUgPX4gL15yLwor
ICAgICAgICByYWlzZSB1bmxlc3MgaXNYNjQKKyAgICAgICAgY2FzZSBraW5kCisgICAgICAgIHdo
ZW4gOmhhbGYKKyAgICAgICAgICAgICIlIiArIEBuYW1lICsgInciCisgICAgICAgIHdoZW4gOmlu
dAorICAgICAgICAgICAgIiUiICsgQG5hbWUgKyAiZCIKKyAgICAgICAgd2hlbiA6cHRyCisgICAg
ICAgICAgICAiJSIgKyBAbmFtZQorICAgICAgICBlbHNlCisgICAgICAgICAgICByYWlzZQorICAg
ICAgICBlbmQKKyAgICBlbmQKKyAgICBkZWYgeDg2Q2FsbE9wZXJhbmQoa2luZCkKKyAgICAgICAg
Iioje3g4Nk9wZXJhbmQoa2luZCl9IgorICAgIGVuZAorZW5kCisKK1g2NF9TQ1JBVENIX1JFR0lT
VEVSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygicjExIikKKwogY2xhc3MgUmVnaXN0ZXJJRAogICAg
IGRlZiBzdXBwb3J0czhCaXRPblg4NgogICAgICAgICBjYXNlIG5hbWUKICAgICAgICAgd2hlbiAi
dDAiLCAiYTAiLCAicjAiLCAidDEiLCAiYTEiLCAicjEiLCAidDIiLCAidDMiCiAgICAgICAgICAg
ICB0cnVlCi0gICAgICAgIHdoZW4gInQ0IiwgImNmciIKKyAgICAgICAgd2hlbiAiY2ZyIiwgInR0
bnIiLCAidG1yIgogICAgICAgICAgICAgZmFsc2UKKyAgICAgICAgd2hlbiAidDQiLCAidDUiCisg
ICAgICAgICAgICBpc1g2NAogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZQogICAgICAg
ICBlbmQKQEAgLTExMiwxNyArMTM2LDMwIEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAg
ICAgICByYWlzZQogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gImNmciIKLSAgICAgICAg
ICAgIGNhc2Uga2luZAotICAgICAgICAgICAgd2hlbiA6Ynl0ZQotICAgICAgICAgICAgICAgICIl
ZGlsIgotICAgICAgICAgICAgd2hlbiA6aGFsZgotICAgICAgICAgICAgICAgICIlZGkiCi0gICAg
ICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAgICAgICAiJWVkaSIKLSAgICAgICAgICAgIHdo
ZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0ID8gIiVyZGkiIDogIiVlZGkiCisgICAgICAg
ICAgICBpZiBpc1g2NAorICAgICAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgICAg
IHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAgICAgIiVyMTN3IgorICAgICAgICAgICAgICAg
IHdoZW4gOmludAorICAgICAgICAgICAgICAgICAgICAiJXIxM2QiCisgICAgICAgICAgICAgICAg
d2hlbiA6cHRyCisgICAgICAgICAgICAgICAgICAgICIlcjEzIgorICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBlbmQKICAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGNhc2Ug
a2luZAorICAgICAgICAgICAgICAgIHdoZW4gOmJ5dGUKKyAgICAgICAgICAgICAgICAgICAgIiVk
aWwiCisgICAgICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICAgICAiJWRp
IgorICAgICAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICAgICAiJWVkaSIK
KyAgICAgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAgICAgIiVlZGkiCisg
ICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAg
ICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gInNwIgogICAgICAgICAg
ICAgY2FzZSBraW5kCkBAIC0xMzcsNiArMTc0LDQ4IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZW5kCisgICAg
ICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAz
Mi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAg
ICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpieXRlCisgICAgICAgICAgICAgICAgIiVk
aWwiCisgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVkaSIKKyAgICAg
ICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgd2hl
biA6cHRyCisgICAgICAgICAgICAgICAgIiVyZGkiCisgICAgICAgICAgICBlbmQKKyAgICAgICAg
d2hlbiAidDYiCisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJp
dCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBj
YXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJXIxMHci
CisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAgICAiJXIxMGQiCisgICAgICAg
ICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXIxMCIKKyAgICAgICAgICAgIGVuZAor
ICAgICAgICB3aGVuICJjc3IxIgorICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1l
fSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAg
ICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAg
ICAgIiVyMTR3IgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVyMTRk
IgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgIiVyMTQiCisgICAgICAg
ICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3NyMiIKKyAgICAgICAgICAgIHJhaXNlICJDYW5ub3Qg
dXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3Mg
aXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgd2hlbiA6aGFsZgorICAg
ICAgICAgICAgICAgICIlcjE1dyIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAg
ICAgICIlcjE1ZCIKKyAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICIlcjE1
IgorICAgICAgICAgICAgZW5kCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlICJCYWQg
cmVnaXN0ZXIgI3tuYW1lfSBmb3IgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30iCiAgICAgICAg
IGVuZApAQCAtMTcyLDYgKzI1MSwxMyBAQCBjbGFzcyBGUFJlZ2lzdGVySUQKIGVuZAogCiBjbGFz
cyBJbW1lZGlhdGUKKyAgICBkZWYgdmFsaWRYODZJbW1lZGlhdGU/CisgICAgICAgIGlmIGlzWDY0
CisgICAgICAgICAgICB2YWx1ZSA+PSAtMHg4MDAwMDAwMCBhbmQgdmFsdWUgPD0gMHg3ZmZmZmZm
ZgorICAgICAgICBlbHNlCisgICAgICAgICAgICB0cnVlCisgICAgICAgIGVuZAorICAgIGVuZAog
ICAgIGRlZiB4ODZPcGVyYW5kKGtpbmQpCiAgICAgICAgICIkI3t2YWx1ZX0iCiAgICAgZW5kCkBA
IC0yMTAsNyArMjk2LDcgQEAgY2xhc3MgQmFzZUluZGV4CiAgICAgZW5kCiAKICAgICBkZWYgeDg2
Q2FsbE9wZXJhbmQoa2luZCkKLSAgICAgICAgIioje3g4Nm9wZXJhbmQoa2luZCl9IgorICAgICAg
ICAiKiN7eDg2T3BlcmFuZChraW5kKX0iCiAgICAgZW5kCiBlbmQKIApAQCAtMjQ0LDYgKzMzMCw0
NyBAQCBjbGFzcyBMb2NhbExhYmVsUmVmZXJlbmNlCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU2Vx
dWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0WDg2XzY0CisgICAgICAgIG5ld0xpc3QgPSBb
XQorICAgICAgICAKKyAgICAgICAgQGxpc3QuZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAor
ICAgICAgICAgICAgbmV3Tm9kZSA9IG5vZGUKKyAgICAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5z
dHJ1Y3Rpb24KKyAgICAgICAgICAgICAgICB1bmxlc3Mgbm9kZS5vcGNvZGUgPT0gIm1vdmUiCisg
ICAgICAgICAgICAgICAgICAgIHVzZWRTY3JhdGNoID0gZmFsc2UKKyAgICAgICAgICAgICAgICAg
ICAgbmV3T3BlcmFuZHMgPSBub2RlLm9wZXJhbmRzLm1hcCB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB8IG9wZXJhbmQgfAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgb3BlcmFuZC5pbW1l
ZGlhdGU/IGFuZCBub3Qgb3BlcmFuZC52YWxpZFg4NkltbWVkaWF0ZT8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiB1c2VkU2NyYXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByYWlzZSAiQXR0ZW1wdCB0byB1c2Ugc2NyYXRjaCByZWdpc3RlciB0d2ljZSBhdCAje29w
ZXJhbmQuY29kZU9yaWdpblN0cmluZ30iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXco
b3BlcmFuZC5jb2RlT3JpZ2luLCAibW92ZSIsIFtvcGVyYW5kLCBYNjRfU0NSQVRDSF9SRUdJU1RF
Ul0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlZFNjcmF0Y2ggPSB0cnVlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWDY0X1NDUkFUQ0hfUkVHSVNURVIKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYW5kCisg
ICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBuZXdOb2RlID0gSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwg
bm9kZS5vcGNvZGUsIG5ld09wZXJhbmRzKQorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHVubGVzcyBub2RlLmlzX2E/IExhYmVsIG9yCisgICAg
ICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/IExvY2FsTGFiZWwgb3IKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGUuaXNfYT8gU2tpcAorICAgICAgICAgICAgICAgICAgICByYWlzZSAi
VW5leHBlY3RlZCAje25vZGUuaW5zcGVjdH0gYXQgI3tub2RlLmNvZGVPcmlnaW59IiAKKyAgICAg
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgaWYgbmV3Tm9kZQor
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbmV3Tm9kZQorICAgICAgICAgICAgZW5kCisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBuZXdMaXN0CisgICAgZW5kCitlbmQKKwog
Y2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgeDg2T3BlcmFuZHMoKmtpbmRzKQogICAgICAgICBy
YWlzZSB1bmxlc3Mga2luZHMuc2l6ZSA9PSBvcGVyYW5kcy5zaXplCkBAIC00NTgsNiArNTg1LDE2
IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIGVuZAogICAgIGVuZAogICAgIAorICAgIGRl
ZiBoYW5kbGVYODZNdWwoa2luZCkKKyAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzIGFuZCBv
cGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgICAgICRhc20ucHV0cyAiaW11bCN7
eDg2U3VmZml4KGtpbmQpfSAje3g4Nk9wZXJhbmRzKGtpbmQsIGtpbmQsIGtpbmQpfSIKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgIyBGSVhNRTogY291bGQgZG8gc29tZSBwZWVwaG9sZSBpbiBj
YXNlIHRoZSBsZWZ0IG9wZXJhbmQgaXMgaW1tZWRpYXRlIGFuZCBpdCdzCisgICAgICAgICAgICAj
IGEgcG93ZXIgb2YgdHdvLgorICAgICAgICAgICAgaGFuZGxlWDg2T3AoImltdWwje3g4NlN1ZmZp
eChraW5kKX0iLCBraW5kKQorICAgICAgICBlbmQKKyAgICBlbmQKKyAgICAKICAgICBkZWYgaGFu
ZGxlTW92ZQogICAgICAgICBpZiBJbW1lZGlhdGUubmV3KG5pbCwgMCkgPT0gb3BlcmFuZHNbMF0g
YW5kIG9wZXJhbmRzWzFdLmlzX2E/IFJlZ2lzdGVySUQKICAgICAgICAgICAgICRhc20ucHV0cyAi
eG9yI3t4ODZTdWZmaXgoOnB0cil9ICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6cHRyKX0sICN7
b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6cHRyKX0iCkBAIC00ODksMTYgKzYyNiwxNiBAQCBjbGFz
cyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgaGFuZGxlWDg2T3AoImFuZCN7eDg2U3VmZml4KDpw
dHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gImxzaGlmdGkiCiAgICAgICAgICAgICBoYW5kbGVY
ODZTaGlmdCgic2FsbCIsIDppbnQpCisgICAgICAgIHdoZW4gImxzaGlmdHAiCisgICAgICAgICAg
ICBoYW5kbGVYODZTaGlmdCgic2FsI3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAg
d2hlbiAibXVsaSIKLSAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFu
ZHNbMF0uaXNfYT8gSW1tZWRpYXRlCi0gICAgICAgICAgICAgICAgJGFzbS5wdXRzICJpbXVsbCAj
e3g4Nk9wZXJhbmRzKDppbnQsIDppbnQsIDppbnQpfSIKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21lIHBlZXBob2xlIGluIGNhc2UgdGhlIGxl
ZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MKLSAgICAgICAgICAgICAgICAjIGEgcG93
ZXIgb2YgdHdvLgotICAgICAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJpbXVsbCIsIDppbnQpCi0g
ICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGhhbmRsZVg4Nk11bCg6aW50KQorICAgICAgICB3
aGVuICJtdWxwIgorICAgICAgICAgICAgaGFuZGxlWDg2TXVsKDpwdHIpCiAgICAgICAgIHdoZW4g
Im5lZ2kiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm5lZ2wgI3t4ODZPcGVyYW5kcyg6aW50KX0i
CisgICAgICAgIHdoZW4gIm5lZ3AiCisgICAgICAgICAgICAkYXNtLnB1dHMgIm5lZyN7eDg2U3Vm
Zml4KDpwdHIpfSAje3g4Nk9wZXJhbmRzKDpwdHIpfSIKICAgICAgICAgd2hlbiAibm90aSIKICAg
ICAgICAgICAgICRhc20ucHV0cyAibm90bCAje3g4Nk9wZXJhbmRzKDppbnQpfSIKICAgICAgICAg
d2hlbiAib3JpIgpAQCAtNTA3LDggKzY0NCwxMiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAg
ICAgICAgaGFuZGxlWDg2T3AoIm9yI3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAg
d2hlbiAicnNoaWZ0aSIKICAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYXJsIiwgOmludCkK
KyAgICAgICAgd2hlbiAicnNoaWZ0cCIKKyAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYXIj
e3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRyKQogICAgICAgICB3aGVuICJ1cnNoaWZ0aSIKICAgICAg
ICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzaHJsIiwgOmludCkKKyAgICAgICAgd2hlbiAidXJzaGlm
dHAiCisgICAgICAgICAgICBoYW5kbGVYODZTaGlmdCgic2hyI3t4ODZTdWZmaXgoOnB0cil9Iiwg
OnB0cikKICAgICAgICAgd2hlbiAic3ViaSIKICAgICAgICAgICAgIGhhbmRsZVg4NlN1Yig6aW50
KQogICAgICAgICB3aGVuICJzdWJwIgpAQCAtNTE2LDkgKzY1NywxNSBAQCBjbGFzcyBJbnN0cnVj
dGlvbgogICAgICAgICB3aGVuICJ4b3JpIgogICAgICAgICAgICAgaGFuZGxlWDg2T3AoInhvcmwi
LCA6aW50KQogICAgICAgICB3aGVuICJ4b3JwIgotICAgICAgICAgICAgaGFuZGxlWDg2T3AoInhv
ciN7eDg2U3VmZml4KDpwdHIpfSIsIDppbnQpCisgICAgICAgICAgICBoYW5kbGVYODZPcCgieG9y
I3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAibG9hZGkiLCAic3RvcmVp
IgogICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZsICN7eDg2T3BlcmFuZHMoOmludCwgOmludCl9
IgorICAgICAgICB3aGVuICJsb2FkaXMiCisgICAgICAgICAgICBpZiBpc1g2NAorICAgICAgICAg
ICAgICAgICRhc20ucHV0cyAibW92c2xxICN7eDg2T3BlcmFuZHMoOmludCwgOnB0cil9IgorICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92bCAje3g4Nk9wZXJh
bmRzKDppbnQsIDppbnQpfSIKKyAgICAgICAgICAgIGVuZAogICAgICAgICB3aGVuICJsb2FkcCIs
ICJzdG9yZXAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdiN7eDg2U3VmZml4KDpwdHIpfSAj
e3g4Nk9wZXJhbmRzKDpwdHIsIDpwdHIpfSIKICAgICAgICAgd2hlbiAibG9hZGIiCkBAIC03MDEs
NyArODQ4LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgd2hlbiAiYnRibnoiCiAgICAg
ICAgICAgICBoYW5kbGVYODZCcmFuY2hUZXN0KCJqbnoiLCA6Ynl0ZSkKICAgICAgICAgd2hlbiAi
am1wIgotICAgICAgICAgICAgJGFzbS5wdXRzICJqbXAgI3tvcGVyYW5kc1swXS54ODZDYWxsT3Bl
cmFuZCg6aW50KX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgImptcCAje29wZXJhbmRzWzBdLng4
NkNhbGxPcGVyYW5kKDpwdHIpfSIKICAgICAgICAgd2hlbiAiYmFkZGlvIgogICAgICAgICAgICAg
aGFuZGxlWDg2T3BCcmFuY2goImFkZGwiLCAiam8iLCA6aW50KQogICAgICAgICB3aGVuICJiYWRk
cG8iCkBAIC04MjUsOSArOTcyLDkgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRh
c20ucHV0cyAicHNybHEgJDMyLCAleG1tNyIKICAgICAgICAgICAgICRhc20ucHV0cyAibW92c2Qg
JXhtbTcsICN7b3BlcmFuZHNbMl0ueDg2T3BlcmFuZCg6aW50KX0iCiAgICAgICAgIHdoZW4gImZw
MmQiCi0gICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5k
cyg6cHRyKX0sICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6ZG91YmxlKX0iCisgICAgICAgICAg
ICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVy
YW5kc1sxXS54ODZPcGVyYW5kKDpkb3VibGUpfSIKICAgICAgICAgd2hlbiAiZmQycCIKLSAgICAg
ICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmRzKDpkb3VibGUp
fSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAibW92ZCAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmQoOmRvdWJsZSl9LCAje29wZXJhbmRzWzFd
Lng4Nk9wZXJhbmQoOnB0cil9IgogICAgICAgICB3aGVuICJibyIKICAgICAgICAgICAgICRhc20u
cHV0cyAiam8gI3tvcGVyYW5kc1swXS5hc21MYWJlbH0iCiAgICAgICAgIHdoZW4gImJzIgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAkocmV2aXNpb24gMTEwMzQ2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC05
MzUsNyArOTM1LDcgQEAKIAogLyogT24gc29tZSBvZiB0aGUgcGxhdGZvcm1zIHdoZXJlIHdlIGhh
dmUgYSBKSVQsIHdlIHdhbnQgdG8gYWxzbyBoYXZlIHRoZSAKICAgIGxvdy1sZXZlbCBpbnRlcnBy
ZXRlci4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVfTExJTlQpICYmIEVOQUJMRShKSVQpICYmIE9T
KERBUldJTikgJiYgKENQVShYODYpIHx8IENQVShBUk1fVEhVTUIyKSkgJiYgVVNFKEpTVkFMVUUz
Ml82NCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfTExJTlQpICYmIEVOQUJMRShKSVQpICYmIE9TKERB
UldJTikgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk1fVEhVTUIyKSkKICNk
ZWZpbmUgRU5BQkxFX0xMSU5UIDEKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131136</attachid>
            <date>2012-03-09 16:52:30 -0800</date>
            <delta_ts>2012-03-09 23:28:24 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>llint64_patch_11.diff</filename>
            <type>text/plain</type>
            <size>128707</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMzQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTAzLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAw
NjM0Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBXb3JrIGluIHByb2dyZXNzLiBJdCdzIHN0YXJ0aW5nIHRvIHJ1biB0aGluZ3MgYnV0
IHN0aWxsIG5lZWRzIHNvbWUgd29yay4KKworICAgICAgICAqIGxsaW50L0xMSW50Q29tbW9uLmg6
CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRh
dGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5j
cHA6CisgICAgICAgIChMTEludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpsbGludF90cmFjZV92
YWx1ZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAg
ICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKExMSW50KToKKyAgICAgICAg
KFNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpTbG93UGF0aFJldHVy
blR5cGU6OlNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6OkxMSW50OjplbmNvZGVS
ZXN1bHQpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJi
OgorICAgICAgICAqIG9mZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0
LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90
cmFuc2Zvcm0ucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtLmg6CisKIDIwMTItMDMtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgV2ViS2l0IGNvbXBpbGVkIGJ5IGdjYyAoWGNvZGUgMy4yLjYpIGhhbmdz
IHdoaWxlIHJ1bm5pbmcgRE9NL0FjY2Vzc29ycy5odG1sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRDb21tb24uaAkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcg
KzQwLDcgQEAKIC8vIHR1cm5zIG9mZiBhbGwgSklUJ2luZywgc2luY2UgaW4gTExJbnQncyBwYXJs
YW5jZSwgT1NSIHN1YnN1bWVzIGFueSBmb3JtIG9mIEpJVAogLy8gaW52b2NhdGlvbi4KICNpZiBF
TkFCTEUoSklUKQotI2RlZmluZSBMTElOVF9PU1JfVE9fSklUIDEKKyNkZWZpbmUgTExJTlRfT1NS
X1RPX0pJVCAwCiAjZWxzZQogI2RlZmluZSBMTElOVF9PU1JfVE9fSklUIDAKICNlbmRpZgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHJldmlzaW9uIDEx
MDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludERhdGEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03Miw2ICs3Miw3IEBAIHZvaWQgRGF0YTo6cGVyZm9ybUFzc2VydGlvbnMo
SlNHbG9iYWxEYXQKICAgICBBU1NFUlQoT0JKRUNUX09GRlNFVE9GKEVuY29kZWRWYWx1ZURlc2Ny
aXB0b3IsIGFzQml0cy50YWcpID09IDQpOwogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0YoRW5j
b2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnBheWxvYWQpID09IDApOwogI2VuZGlmCisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKICAgICBBU1NFUlQoSlNWYWx1ZTo6SW50MzJUYWcgPT0gLTEpOwog
ICAgIEFTU0VSVChKU1ZhbHVlOjpCb29sZWFuVGFnID09IC0yKTsKICAgICBBU1NFUlQoSlNWYWx1
ZTo6TnVsbFRhZyA9PSAtMyk7CkBAIC04MCwxMiArODEsMjYgQEAgdm9pZCBEYXRhOjpwZXJmb3Jt
QXNzZXJ0aW9ucyhKU0dsb2JhbERhdAogICAgIEFTU0VSVChKU1ZhbHVlOjpFbXB0eVZhbHVlVGFn
ID09IC02KTsKICAgICBBU1NFUlQoSlNWYWx1ZTo6RGVsZXRlZFZhbHVlVGFnID09IC03KTsKICAg
ICBBU1NFUlQoSlNWYWx1ZTo6TG93ZXN0VGFnID09IC03KTsKKyNlbHNlCisgICAgQVNTRVJUKFRh
Z0JpdFR5cGVPdGhlciA9PSAweDIpOworICAgIEFTU0VSVChUYWdCaXRCb29sID09IDB4NCk7Cisg
ICAgQVNTRVJUKFRhZ0JpdFVuZGVmaW5lZCA9PSAweDgpOworICAgIEFTU0VSVChWYWx1ZUVtcHR5
ID09IDB4MCk7CisgICAgQVNTRVJUKFZhbHVlRmFsc2UgPT0gKFRhZ0JpdFR5cGVPdGhlciB8IFRh
Z0JpdEJvb2wpKTsKKyAgICBBU1NFUlQoVmFsdWVUcnVlID09IChUYWdCaXRUeXBlT3RoZXIgfCBU
YWdCaXRCb29sIHwgMSkpOworICAgIEFTU0VSVChWYWx1ZVVuZGVmaW5lZCA9PSAoVGFnQml0VHlw
ZU90aGVyIHwgVGFnQml0VW5kZWZpbmVkKSk7CisgICAgQVNTRVJUKFZhbHVlTnVsbCA9PSBUYWdC
aXRUeXBlT3RoZXIpOworI2VuZGlmCiAgICAgQVNTRVJUKFN0cmluZ1R5cGUgPT0gNSk7CiAgICAg
QVNTRVJUKE9iamVjdFR5cGUgPT0gMTMpOwogICAgIEFTU0VSVChNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkID09IDEpOwogICAgIEFTU0VSVChJbXBsZW1lbnRzSGFzSW5zdGFuY2UgPT0gMik7CiAgICAg
QVNTRVJUKEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPT0gOCk7CisjaWYgVVNFKEpTVkFM
VUU2NCkKKyAgICBBU1NFUlQoJmdsb2JhbERhdGEuaGVhcC5hbGxvY2F0b3JGb3JPYmplY3RXaXRo
b3V0RGVzdHJ1Y3RvcihzaXplb2YoSlNGaW5hbE9iamVjdCkpIC0gJmdsb2JhbERhdGEuaGVhcC5m
aXJzdEFsbG9jYXRvcldpdGhvdXREZXN0cnVjdG9ycygpID09IDEpOworI2Vsc2UKICAgICBBU1NF
UlQoJmdsb2JhbERhdGEuaGVhcC5hbGxvY2F0b3JGb3JPYmplY3RXaXRob3V0RGVzdHJ1Y3Rvcihz
aXplb2YoSlNGaW5hbE9iamVjdCkpIC0gJmdsb2JhbERhdGEuaGVhcC5maXJzdEFsbG9jYXRvcldp
dGhvdXREZXN0cnVjdG9ycygpID09IDMpOworI2VuZGlmCiAgICAgQVNTRVJUKEZpcnN0Q29uc3Rh
bnRSZWdpc3RlckluZGV4ID09IDB4NDAwMDAwMDApOwogICAgIEFTU0VSVChHbG9iYWxDb2RlID09
IDApOwogICAgIEFTU0VSVChFdmFsQ29kZSA9PSAxKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkocmV2aXNpb24gMTEwMzQ2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjUsMTYgKzY1LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBMTEludCB7
CiAjZGVmaW5lIExMSU5UX09QX0MoaW5kZXgpIChleGVjLT5yKHBjW2luZGV4XS51Lm9wZXJhbmQp
KQogCiAjZGVmaW5lIExMSU5UX1JFVFVSTl9UV08oZmlyc3QsIHNlY29uZCkgZG8geyAgICAgICBc
Ci0gICAgICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICAgICAgICAgICBzdHJ1Y3QgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAg
ICAgICAgICAgICAgdm9pZCogYTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAg
ICAgICAgICAgdm9pZCogYjsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAg
ICB9IHBhaXI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICBp
bnQ2NF90IGk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gX19ydF91
OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9fcnRfdS5wYWly
LmEgPSBmaXJzdDsgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9fcnRfdS5wYWlyLmIg
PSBzZWNvbmQ7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIHJldHVybiBfX3J0X3UuaTsg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQo
Zmlyc3QsIHNlY29uZCk7ICAgICAgICBcCiAgICAgfSB3aGlsZSAoZmFsc2UpCiAKICNkZWZpbmUg
TExJTlRfRU5EX0lNUEwoKSBMTElOVF9SRVRVUk5fVFdPKHBjLCBleGVjKQpAQCAtMTY3LDcgKzE1
OCw2IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWMKIAogZXh0ZXJu
ICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2VfdmFsdWUoRXhlY1N0YXRlKiBleGVj
LCBJbnN0cnVjdGlvbiogcGMsIGludCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKQogewotICAgIExM
SU5UX0JFR0lOKCk7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09QX0Mob3BlcmFuZCkuanNW
YWx1ZSgpOwogICAgIHVuaW9uIHsKICAgICAgICAgc3RydWN0IHsKQEAgLTE4OCwxNCArMTc4LDEz
IEBAIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWMKICAgICAgICAgICAg
IHUuYml0cy50YWcsCiAgICAgICAgICAgICB1LmJpdHMucGF5bG9hZCwKICAgICAgICAgICAgIHZh
bHVlLmRlc2NyaXB0aW9uKCkpOwotICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX0VORF9JTVBM
KCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX3Byb2xvZ3VlKQogewotICAgIExM
SU5UX0JFR0lOKCk7CiAgICAgZGF0YUxvZygiJXAgLyAlcDogaW4gcHJvbG9ndWUuXG4iLCBleGVj
LT5jb2RlQmxvY2soKSwgZXhlYyk7Ci0gICAgTExJTlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lN
UEwoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJhY2VGdW5jdGlvblByb2xvZ3VlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgY2hhciogY29tbWVudCwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kKQpA
QCAtMjExLDU0ICsyMDAsNTIgQEAgc3RhdGljIHZvaWQgdHJhY2VGdW5jdGlvblByb2xvZ3VlKEV4
ZWNTdAogCiBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3Jf
Y2FsbCkKIHsKLSAgICBMTElOVF9CRUdJTigpOwogICAgIHRyYWNlRnVuY3Rpb25Qcm9sb2d1ZShl
eGVjLCAiY2FsbCBwcm9sb2d1ZSIsIENvZGVGb3JDYWxsKTsKLSAgICBMTElOVF9FTkQoKTsKKyAg
ICBMTElOVF9FTkRfSU1QTCgpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZV9wcm9s
b2d1ZV9mdW5jdGlvbl9mb3JfY29uc3RydWN0KQogewotICAgIExMSU5UX0JFR0lOKCk7CiAgICAg
dHJhY2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMsICJjb25zdHJ1Y3QgcHJvbG9ndWUiLCBDb2RlRm9y
Q29uc3RydWN0KTsKLSAgICBMTElOVF9FTkQoKTsKKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQog
CiBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZV9hcml0eUNoZWNrX2Zvcl9jYWxsKQogewotICAg
IExMSU5UX0JFR0lOKCk7CiAgICAgdHJhY2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMsICJjYWxsIGFy
aXR5IGNoZWNrIiwgQ29kZUZvckNhbGwpOwotICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX0VO
RF9JTVBMKCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX2FyaXR5Q2hlY2tfZm9y
X2NvbnN0cnVjdCkKIHsKLSAgICBMTElOVF9CRUdJTigpOwogICAgIHRyYWNlRnVuY3Rpb25Qcm9s
b2d1ZShleGVjLCAiY29uc3RydWN0IGFyaXR5IGNoZWNrIiwgQ29kZUZvckNvbnN0cnVjdCk7Ci0g
ICAgTExJTlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lNUEwoKTsKIH0KIAogTExJTlRfU0xPV19Q
QVRIX0RFQ0wodHJhY2UpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICBkYXRhTG9nKCIlcCAv
ICVwOiBleGVjdXRpbmcgYmMjJXp1LCAlcywgc2NvcGUgJXBcbiIsCiAgICAgICAgICAgICBleGVj
LT5jb2RlQmxvY2soKSwKICAgICAgICAgICAgIGV4ZWMsCiAgICAgICAgICAgICBzdGF0aWNfY2Fz
dDxpbnRwdHJfdD4ocGMgLSBleGVjLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4o
KSksCiAgICAgICAgICAgICBvcGNvZGVOYW1lc1tleGVjLT5nbG9iYWxEYXRhKCkuaW50ZXJwcmV0
ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKV0sCiAgICAgICAgICAgICBleGVjLT5zY29w
ZUNoYWluKCkpOwotICAgIExMSU5UX0VORCgpOworICAgIGlmIChleGVjLT5nbG9iYWxEYXRhKCku
aW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUub3Bjb2RlKSA9PSBvcF9yZXQpIHsKKyAg
ICAgICAgZGF0YUxvZygiV2lsbCBiZSByZXR1cm5pbmcgdG8gJXBcbiIsIGV4ZWMtPnJldHVyblBD
KCkudmFsdWUoKSk7CisgICAgICAgIGRhdGFMb2coIlRoZSBuZXcgY2ZyIHdpbGwgYmUgJXBcbiIs
IGV4ZWMtPmNhbGxlckZyYW1lKCkpOworICAgIH0KKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQog
CiBMTElOVF9TTE9XX1BBVEhfREVDTChzcGVjaWFsX3RyYWNlKQogewotICAgIExMSU5UX0JFR0lO
KCk7CiAgICAgZGF0YUxvZygiJXAgLyAlcDogZXhlY3V0aW5nIHNwZWNpYWwgY2FzZSBiYyMlenUs
IG9wIyV1LCByZXR1cm4gUEMgaXMgJXBcbiIsCiAgICAgICAgICAgICBleGVjLT5jb2RlQmxvY2so
KSwKICAgICAgICAgICAgIGV4ZWMsCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnRwdHJfdD4o
cGMgLSBleGVjLT5jb2RlQmxvY2soKS0+aW5zdHJ1Y3Rpb25zKCkuYmVnaW4oKSksCiAgICAgICAg
ICAgICBleGVjLT5nbG9iYWxEYXRhKCkuaW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKHBjWzBdLnUu
b3Bjb2RlKSwKICAgICAgICAgICAgIGV4ZWMtPnJldHVyblBDKCkudmFsdWUoKSk7Ci0gICAgTExJ
TlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lNUEwoKTsKIH0KIAogaW5saW5lIGJvb2wgc2hvdWxk
SklUKEV4ZWNTdGF0ZSogZXhlYykKQEAgLTE0MDcsNyArMTM5NCw3IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9jYWxsX3ZhcmEKICAgICAKICAgICBleGVjQ2FsbGVlLT51bmNoZWNr
ZWRSKFJlZ2lzdGVyRmlsZTo6Q2FsbGVlKSA9IGNhbGxlZUFzVmFsdWU7CiAgICAgZXhlY0NhbGxl
ZS0+c2V0Q2FsbGVyRnJhbWUoZXhlYyk7Ci0gICAgZXhlYy0+dW5jaGVja2VkUihSZWdpc3RlckZp
bGU6OkFyZ3VtZW50Q291bnQpLnRhZygpID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHBjICsgT1BD
T0RFX0xFTkdUSChvcF9jYWxsX3ZhcmFyZ3MpKTsKKyAgICBleGVjLT5zZXRDdXJyZW50VlBDKHBj
ICsgT1BDT0RFX0xFTkdUSChvcF9jYWxsX3ZhcmFyZ3MpKTsKICAgICAKICAgICByZXR1cm4gc2V0
VXBDYWxsKGV4ZWNDYWxsZWUsIHBjLCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSk7CiB9CkBA
IC0xNDI1LDcgKzE0MTIsNyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfY2FsbF9l
dmFsCiAgICAgZXhlY0NhbGxlZS0+c2V0U2NvcGVDaGFpbihleGVjLT5zY29wZUNoYWluKCkpOwog
ICAgIGV4ZWNDYWxsZWUtPnNldFJldHVyblBDKGJpdHdpc2VfY2FzdDxJbnN0cnVjdGlvbio+KCZs
bGludF9nZW5lcmljX3JldHVybl9wb2ludCkpOwogICAgIGV4ZWNDYWxsZWUtPnNldENvZGVCbG9j
aygwKTsKLSAgICBleGVjLT51bmNoZWNrZWRSKFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCku
dGFnKCkgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4ocGMgKyBPUENPREVfTEVOR1RIKG9wX2NhbGxf
ZXZhbCkpOworICAgIGV4ZWMtPnNldEN1cnJlbnRWUEMocGMgKyBPUENPREVfTEVOR1RIKG9wX2Nh
bGxfZXZhbCkpOwogICAgIAogICAgIGlmICghaXNIb3N0RnVuY3Rpb24oY2FsbGVlQXNWYWx1ZSwg
Z2xvYmFsRnVuY0V2YWwpKQogICAgICAgICByZXR1cm4gc2V0VXBDYWxsKGV4ZWNDYWxsZWUsIHBj
LCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDggKzM4LDQwIEBAIHN0cnVjdCBJbnN0cnVjdGlvbjsKIAogbmFtZXNwYWNlIExMSW50IHsK
IAorI2lmIFVTRShKU1ZBTFVFNjQpCitzdHJ1Y3QgU2xvd1BhdGhSZXR1cm5UeXBlIHsKKyAgICB2
b2lkKiBhOworICAgIHZvaWQqIGI7CisgICAgCisgICAgU2xvd1BhdGhSZXR1cm5UeXBlKHZvaWQq
IGEsIHZvaWQqIGIpCisgICAgICAgIDogYShhKQorICAgICAgICAsIGIoYikKKyAgICB7CisgICAg
fQorfTsKKworaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBlbmNvZGVSZXN1bHQodm9pZCogYSwg
dm9pZCogYikKK3sKKyAgICByZXR1cm4gU2xvd1BhdGhSZXR1cm5UeXBlKGEsIGIpOworfQorI2Vs
c2UKIHR5cGVkZWYgaW50NjRfdCBTbG93UGF0aFJldHVyblR5cGU7CiAKK2lubGluZSBTbG93UGF0
aFJldHVyblR5cGUgZW5jb2RlUmVzdWx0KHZvaWQqIGEsIHZvaWQqIGIpCit7CisgICAgdW5pb24g
eworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdm9pZCogYTsKKyAgICAgICAgICAgIHZv
aWQqIGI7CisgICAgICAgIH0gcGFpcjsKKyAgICAgICAgaW50NjRfdCBpOworICAgIH0gdTsKKyAg
ICB1LnBhaXIuYSA9IGE7CisgICAgdS5wYWlyLmIgPSBiOworICAgIHJldHVybiB1Lmk7Cit9Cisj
ZW5kaWYKKwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2Vfb3BlcmFu
ZChFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiosIGludCBmcm9tV2hlcmUsIGludCBvcGVyYW5kKTsK
IGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWNlX3ZhbHVlKEV4ZWNTdGF0
ZSosIEluc3RydWN0aW9uKiwgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbQkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHdvcmtpbmcgY29weSkKQEAgLTcw
LDI4ICs3MCw2IEBACiAjIEJlbG93IHdlIGhhdmUgYSBidW5jaCBvZiBjb25zdGFudCBkZWNsYXJh
dGlvbnMuIEVhY2ggY29uc3RhbnQgbXVzdCBoYXZlCiAjIGEgY29ycmVzcG9uZGluZyBBU1NFUlQo
KSBpbiBMTEludERhdGEuY3BwLgogCi0jIFRoZXNlIGRlY2xhcmF0aW9ucyBtdXN0IG1hdGNoIGlu
dGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oLgotY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDQ4
Ci1jb25zdCBBcmd1bWVudENvdW50ID0gLTQ4Ci1jb25zdCBDYWxsZXJGcmFtZSA9IC00MAotY29u
c3QgQ2FsbGVlID0gLTMyCi1jb25zdCBTY29wZUNoYWluID0gLTI0Ci1jb25zdCBSZXR1cm5QQyA9
IC0xNgotY29uc3QgQ29kZUJsb2NrID0gLTgKLQotY29uc3QgVGhpc0FyZ3VtZW50T2Zmc2V0ID0g
LUNhbGxGcmFtZUhlYWRlclNpemUgLSA4Ci0KLSMgRGVjbGFyZSBzb21lIGFsaWFzZXMgZm9yIHRo
ZSByZWdpc3RlcnMgd2Ugd2lsbCB1c2UuCi1jb25zdCBQQyA9IHQ0Ci0KLSMgT2Zmc2V0cyBuZWVk
ZWQgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRhdGlvbi4KLWlmIEJJR19FTkRJ
QU4KLSAgICBjb25zdCBUYWdPZmZzZXQgPSAwCi0gICAgY29uc3QgUGF5bG9hZE9mZnNldCA9IDQK
LWVsc2UKLSAgICBjb25zdCBUYWdPZmZzZXQgPSA0Ci0gICAgY29uc3QgUGF5bG9hZE9mZnNldCA9
IDAKLWVuZAogCiAjIFZhbHVlIHJlcHJlc2VudGF0aW9uIGNvbnN0YW50cy4KIGNvbnN0IEludDMy
VGFnID0gLTEKQEAgLTEwMyw3MSArODEsOCBAQCBjb25zdCBFbXB0eVZhbHVlVGFnID0gLTYKIGNv
bnN0IERlbGV0ZWRWYWx1ZVRhZyA9IC03CiBjb25zdCBMb3dlc3RUYWcgPSBEZWxldGVkVmFsdWVU
YWcKIAotIyBUeXBlIGNvbnN0YW50cy4KLWNvbnN0IFN0cmluZ1R5cGUgPSA1Ci1jb25zdCBPYmpl
Y3RUeXBlID0gMTMKLQotIyBUeXBlIGZsYWdzIGNvbnN0YW50cy4KLWNvbnN0IE1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQgPSAxCi1jb25zdCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgPSAyCi1jb25zdCBJ
bXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlID0gOAotCi0jIEhlYXAgYWxsb2NhdGlvbiBjb25z
dGFudHMuCi1jb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAzCi0KLSMgQnl0ZWNv
ZGUgb3BlcmFuZCBjb25zdGFudHMuCi1jb25zdCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCA9
IDB4NDAwMDAwMDAKLQotIyBDb2RlIHR5cGUgY29uc3RhbnRzLgotY29uc3QgR2xvYmFsQ29kZSA9
IDAKLWNvbnN0IEV2YWxDb2RlID0gMQotY29uc3QgRnVuY3Rpb25Db2RlID0gMgotCi0jIFRoZSBp
bnRlcnByZXRlciBzdGVhbHMgdGhlIHRhZyB3b3JkIG9mIHRoZSBhcmd1bWVudCBjb3VudC4KLWNv
bnN0IExMSW50UmV0dXJuUEMgPSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0Ci0KLSMgVGhpcyBt
dXN0IG1hdGNoIHd0Zi9WZWN0b3IuaC4KLWNvbnN0IFZlY3RvclNpemVPZmZzZXQgPSAwCi1jb25z
dCBWZWN0b3JCdWZmZXJPZmZzZXQgPSA0Ci0KLSMgU3RyaW5nIGZsYWdzLgotY29uc3QgSGFzaEZs
YWdzOEJpdEJ1ZmZlciA9IDY0CiAKICMgVXRpbGl0aWVzCi1tYWNybyBjcmFzaCgpCi0gICAgc3Rv
cmVpIDAsIDB4YmJhZGJlZWZbXQotICAgIG1vdmUgMCwgdDAKLSAgICBjYWxsIHQwCi1lbmQKLQot
bWFjcm8gYXNzZXJ0KGFzc2VydGlvbikKLSAgICBpZiBBU1NFUlRfRU5BQkxFRAotICAgICAgICBh
c3NlcnRpb24oLm9rKQotICAgICAgICBjcmFzaCgpCi0gICAgLm9rOgotICAgIGVuZAotZW5kCi0K
LW1hY3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVy
KQotICAgIGlmIEFSTXY3Ci0gICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKLSAg
ICBlbHNpZiBYODYKLSAgICAgICAgcG9wIGRlc3RpbmF0aW9uUmVnaXN0ZXIKLSAgICBlbHNlCi0g
ICAgICAgIGVycm9yCi0gICAgZW5kCi1lbmQKLQotbWFjcm8gcmVzdG9yZVJldHVybkFkZHJlc3NC
ZWZvcmVSZXR1cm4oc291cmNlUmVnaXN0ZXIpCi0gICAgaWYgQVJNdjcKLSAgICAgICAgbW92ZSBz
b3VyY2VSZWdpc3RlciwgbHIKLSAgICBlbHNpZiBYODYKLSAgICAgICAgcHVzaCBzb3VyY2VSZWdp
c3RlcgotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBlbmQKLWVuZAotCiBtYWNybyBkaXNw
YXRjaChhZHZhbmNlKQogICAgIGFkZHAgYWR2YW5jZSAqIDQsIFBDCiAgICAgam1wIFtQQ10KQEAg
LTIyMCw4ICsxMzUsOCBAQCBtYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMs
CiAgICAgY2FsbCBmdW5jdGlvbgogZW5kCiAKLW1hY3JvIGNhbGxTbG93UGF0aChzbG93X3BhdGgp
Ci0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykKK21hY3JvIGNhbGxTbG93UGF0aChzbG93
UGF0aCkKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAgbW92ZSB0MCwgUEMKICAg
ICBtb3ZlIHQxLCBjZnIKIGVuZApAQCAtMjQ1LDQwICsxNjAsMTUgQEAgbWFjcm8gdHJhY2VWYWx1
ZShmcm9tV2hlcmUsIG9wZXJhbmQpCiAgICAgbW92ZSB0MSwgY2ZyCiBlbmQKIAotbWFjcm8gdHJh
Y2VFeGVjdXRpb24oKQotICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCi0gICAgICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfdHJhY2UpCi0gICAgZW5kCi1lbmQKLQotIyBDYWxsIGEgc2xvd19wYXRoIGZv
ciBjYWxsIG9wY29kZXMuCi1tYWNybyBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dfcGF0
aCwgYWN0aW9uKQorIyBDYWxsIGEgc2xvd1BhdGggZm9yIGNhbGwgb3Bjb2Rlcy4KK21hY3JvIGNh
bGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd1BhdGgsIGFjdGlvbikKICAgICBhZGRwIGFkdmFu
Y2UgKiA0LCBQQywgdDAKICAgICBzdG9yZXAgdDAsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRb
Y2ZyXQotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpCisgICAgY0NhbGwyKHNsb3dQYXRo
LCBjZnIsIFBDKQogICAgIG1vdmUgdDEsIGNmcgogICAgIGFjdGlvbih0MCkKIGVuZAogCi1tYWNy
byBzbG93UGF0aEZvckNhbGwoYWR2YW5jZSwgc2xvd19wYXRoKQotICAgIGNhbGxDYWxsU2xvd1Bh
dGgoCi0gICAgICAgIGFkdmFuY2UsCi0gICAgICAgIHNsb3dfcGF0aCwKLSAgICAgICAgbWFjcm8g
KGNhbGxlZSkKLSAgICAgICAgICAgIGNhbGwgY2FsbGVlCi0gICAgICAgICAgICBkaXNwYXRjaEFm
dGVyQ2FsbCgpCi0gICAgICAgIGVuZCkKLWVuZAotCi1tYWNybyBjaGVja1N3aXRjaFRvSklUKGlu
Y3JlbWVudCwgYWN0aW9uKQotICAgIGlmIEpJVF9FTkFCTEVECi0gICAgICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MAotICAgICAgICBiYWRkaXMgaW5jcmVtZW50LCBDb2RlQmxvY2s6Om1fbGxp
bnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MF0sIC5jb250
aW51ZQotICAgICAgICBhY3Rpb24oKQotICAgIC5jb250aW51ZToKLSAgICBlbmQKLWVuZAotCiBt
YWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVCgKICAg
ICAgICAgMSwKQEAgLTI5MywxOCArMTgzLDYgQEAgbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxv
b3AoKQogICAgICAgICBlbmQpCiBlbmQKIAotbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxv
Z3VlKCkKLSAgICBjaGVja1N3aXRjaFRvSklUKAotICAgICAgICAxMCwKLSAgICAgICAgbWFjcm8g
KCkKLSAgICAgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfcmVwbGFjZSkKLSAgICAgICAgZW5k
KQotZW5kCi0KLW1hY3JvIGFzc2VydE5vdENvbnN0YW50KGluZGV4KQotICAgIGFzc2VydChtYWNy
byAob2spIGJpbHQgaW5kZXgsIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCBvayBlbmQpCi1l
bmQKLQogIyBJbmRleCwgdGFnLCBhbmQgcGF5bG9hZCBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3Rl
cnMuIEluZGV4IGlzIG5vdAogIyBjaGFuZ2VkLgogbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShpbmRleCwgdGFnLCBwYXlsb2FkKQpAQCAtMzg2LDEwOSArMjY0LDggQEAgbWFjcm8gdmFsdWVQ
cm9maWxlKHRhZywgcGF5bG9hZCwgcHJvZmlsZQogZW5kCiAKIAotIyBJbmRpY2F0ZSB0aGUgYmVn
aW5uaW5nIG9mIExMSW50LgotX2xsaW50X2JlZ2luOgotICAgIGNyYXNoKCkKLQotCiAjIEVudHJ5
cG9pbnRzIGludG8gdGhlIGludGVycHJldGVyCiAKLW1hY3JvIGZ1bmN0aW9uRm9yQ2FsbENvZGVC
bG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0
UmVnaXN0ZXIKLSAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0
ZXJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRwIEZ1bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2Rl
QmxvY2tGb3JDYWxsW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNy
byBmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAg
ICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBsb2FkcCBKU0Z1bmN0aW9u
OjptX2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRw
IEZ1bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2RlQmxvY2tGb3JDb25zdHJ1Y3RbdGFyZ2V0UmVnaXN0
ZXJdLCB0YXJnZXRSZWdpc3RlcgotZW5kCi0KLW1hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0
dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0YXJnZXRSZWdp
c3RlcgotZW5kCi0KLW1hY3JvIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVy
KQotICAgIHN0b3JlcCBzb3VyY2VSZWdpc3RlciwgQ29kZUJsb2NrW2Nmcl0KLWVuZAotCi1tYWNy
byBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdpc3RlcikKLSAgICAjIE5vdGhp
bmcgdG8gZG8hCi1lbmQKLQotIyBEbyB0aGUgYmFyZSBtaW5pbXVtIHJlcXVpcmVkIHRvIGV4ZWN1
dGUgY29kZS4gU2V0cyB1cCB0aGUgUEMsIGxlYXZlIHRoZSBDb2RlQmxvY2sqCi0jIGluIHQxLiBN
YXkgYWxzbyB0cmlnZ2VyIHByb2xvZ3VlIGVudHJ5IE9TUi4KLW1hY3JvIHByb2xvZ3VlKGNvZGVC
bG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JTbG93UGF0aCwgdHJhY2VTbG93UGF0aCkK
LSAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDIpCi0gICAgCi0gICAgIyBTZXQg
dXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdlIHNob3VsZCBPU1IuCi0gICAgc3RvcmVw
IHQyLCBSZXR1cm5QQ1tjZnJdCi0gICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKLSAgICAgICAgY2Fs
bFNsb3dQYXRoKHRyYWNlU2xvd1BhdGgpCi0gICAgZW5kCi0gICAgY29kZUJsb2NrR2V0dGVyKHQx
KQotICAgIGlmIEpJVF9FTkFCTEVECi0gICAgICAgIGJhZGRpcyA1LCBDb2RlQmxvY2s6Om1fbGxp
bnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MV0sIC5jb250
aW51ZQotICAgICAgICBjQ2FsbDIob3NyU2xvd1BhdGgsIGNmciwgUEMpCi0gICAgICAgIG1vdmUg
dDEsIGNmcgotICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgotICAgICAgICBsb2FkcCBSZXR1cm5Q
Q1tjZnJdLCB0MgotICAgICAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikK
LSAgICAgICAgam1wIHQwCi0gICAgLnJlY292ZXI6Ci0gICAgICAgIGNvZGVCbG9ja0dldHRlcih0
MSkKLSAgICAuY29udGludWU6Ci0gICAgZW5kCi0gICAgY29kZUJsb2NrU2V0dGVyKHQxKQotICAg
IAotICAgICMgU2V0IHVwIHRoZSBQQy4KLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rp
b25zW3QxXSwgUEMKLWVuZAotCi0jIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdo
aWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotIyBNdXN0IGNhbGwgZGlzcGF0
Y2goMCkgYWZ0ZXIgY2FsbGluZyB0aGlzLgotbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihw
cm9maWxlQXJnU2tpcCkKLSAgICBpZiBWQUxVRV9QUk9GSUxFUgotICAgICAgICAjIFByb2ZpbGUg
dGhlIGFyZ3VtZW50cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIGRv
IHRoaXMuIFRoaXMKLSAgICAgICAgIyBjb2RlIGlzIHByZXR0eSBob3JyZW5kb3VzIGJlY2F1c2Ug
b2YgdGhlIGRpZmZlcmVuY2UgaW4gb3JkZXJpbmcgYmV0d2VlbgotICAgICAgICAjIGFyZ3VtZW50
cyBhbmQgdmFsdWUgcHJvZmlsZXMsIHRoZSBkZXNpcmUgdG8gaGF2ZSBhIHNpbXBsZSBsb29wLWRv
d24tdG8temVybwotICAgICAgICAjIGxvb3AsIGFuZCB0aGUgZGVzaXJlIHRvIHVzZSBvbmx5IHRo
cmVlIHJlZ2lzdGVycyBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgUEMgYW5kCi0gICAgICAgICMgdGhl
IGNvZGUgYmxvY2suIEl0IGlzIGxpa2VseSB0aGF0IHRoaXMgY29kZSBzaG91bGQgYmUgcmV3cml0
dGVuIGluIGEgbW9yZQotICAgICAgICAjIG9wdGltYWwgd2F5IGZvciBhcmNoaXRlY3R1cmVzIHRo
YXQgaGF2ZSBtb3JlIHRoYW4gZml2ZSByZWdpc3RlcnMgYXZhaWxhYmxlCi0gICAgICAgICMgZm9y
IGFyYml0cmFyeSB1c2UgaW4gdGhlIGludGVycHJldGVyLgotICAgICAgICBsb2FkaSBDb2RlQmxv
Y2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIHQwCi0gICAgICAgIGFkZGkgLXByb2ZpbGVBcmdTa2lw
LCB0MCAjIFVzZSBhZGRpIGJlY2F1c2UgdGhhdCdzIHdoYXQgaGFzIHRoZSBwZWVwaG9sZQotICAg
ICAgICBhc3NlcnQobWFjcm8gKG9rKSBiaWd0ZXEgdDAsIDAsIG9rIGVuZCkKLSAgICAgICAgYnRp
eiB0MCwgLmFyZ3VtZW50UHJvZmlsZURvbmUKLSAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2Fy
Z3VtZW50VmFsdWVQcm9maWxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0MV0sIHQzCi0gICAgICAg
IG11bGkgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDAsIHQyICMgQWFhYWFoaGhoISBOZWVkIHN0cmVu
Z3RoIHJlZHVjdGlvbiEKLSAgICAgICAgbmVnaSB0MAotICAgICAgICBsc2hpZnRpIDMsIHQwCi0g
ICAgICAgIGFkZHAgdDIsIHQzCi0gICAgLmFyZ3VtZW50UHJvZmlsZUxvb3A6Ci0gICAgICAgIGxv
YWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRhZ09mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAq
IDhbY2ZyLCB0MF0sIHQyCi0gICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDMKLSAg
ICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBW
YWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFRhZ09mZnNldFt0M10KLSAgICAgICAgbG9hZGkgVGhp
c0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhb
Y2ZyLCB0MF0sIHQyCi0gICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2Yg
VmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBQYXlsb2FkT2Zmc2V0W3Qz
XQotICAgICAgICBiYWRkaW56IDgsIHQwLCAuYXJndW1lbnRQcm9maWxlTG9vcAotICAgIC5hcmd1
bWVudFByb2ZpbGVEb25lOgotICAgIGVuZAotICAgICAgICAKLSAgICAjIENoZWNrIHN0YWNrIGhl
aWdodC4KLSAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2FsbGVlUmVnaXN0ZXJzW3QxXSwgdDAK
LSAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQyCi0gICAgbG9hZHAgSlNH
bG9iYWxEYXRhOjppbnRlcnByZXRlclt0Ml0sIHQyICAgIyBGSVhNRTogQ2FuIGdldCB0byB0aGUg
UmVnaXN0ZXJGaWxlIGZyb20gdGhlIEpJVFN0YWNrRnJhbWUKLSAgICBsc2hpZnRpIDMsIHQwCi0g
ICAgYWRkcCB0MCwgY2ZyLCB0MAotICAgIGJwYWVxIEludGVycHJldGVyOjptX3JlZ2lzdGVyRmls
ZSArIFJlZ2lzdGVyRmlsZTo6bV9lbmRbdDJdLCB0MCwgLnN0YWNrSGVpZ2h0T0sKLQotICAgICMg
U3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8gY2FsbCBhIHNsb3dfcGF0aC4KLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2ZpbGVfY2hlY2spCi0uc3RhY2tIZWlnaHRP
SzoKLWVuZAotCiAjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdo
YXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgogbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvd19wYXRoKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENv
dW50W2Nmcl0sIHQwCkBAIC01MDYsMzggKzI4Myw2IEBAIG1hY3JvIGZ1bmN0aW9uQXJpdHlDaGVj
ayhkb25lTGFiZWwsIHNsb3cKICAgICBqbXAgZG9uZUxhYmVsCiBlbmQKIAotX2xsaW50X3Byb2dy
YW1fcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5v
dEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2Vf
cHJvbG9ndWUpCi0gICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfZXZhbF9wcm9sb2d1ZToKLSAg
ICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxv
Y2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKLSAgICBk
aXNwYXRjaCgwKQotCi0KLV9sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZToKLSAgICBw
cm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2Nr
U2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsLCBfbGxpbnRfdHJhY2Vf
cHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NhbGwpCi0uZnVuY3Rpb25Gb3JDYWxsQmVnaW46Ci0gICAg
ZnVuY3Rpb25Jbml0aWFsaXphdGlvbigwKQotICAgIGRpc3BhdGNoKDApCi0gICAgCi0KLV9sbGlu
dF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9u
Rm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xs
aW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0LCBfbGxpbnRfdHJhY2VfcHJvbG9n
dWVfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCkKLS5mdW5jdGlvbkZvckNvbnN0cnVjdEJlZ2luOgot
ICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMSkKLSAgICBkaXNwYXRjaCgwKQotICAgIAotCi1f
bGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6Ci0gICAgcHJvbG9ndWUoZnVuY3Rp
b25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50
X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eUNoZWNrLCBfbGxpbnRfdHJhY2VfYXJp
dHlDaGVja19mb3JfY2FsbCkKLSAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0aW9uRm9yQ2Fs
bEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykKLQotCi1fbGxpbnRfZnVu
Y3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjazoKLSAgICBwcm9sb2d1ZShmdW5jdGlvbkZv
ckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGlu
dF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eUNoZWNrLCBfbGxpbnRfdHJh
Y2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQotICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVu
Y3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1Y3RfYXJpdHlD
aGVjaykKIAogIyBJbnN0cnVjdGlvbiBpbXBsZW1lbnRhdGlvbnMKIApAQCAtNTgzLDM5ICszMjgs
NiBAQCBfbGxpbnRfb3BfY3JlYXRlX2FyZ3VtZW50czoKICAgICBkaXNwYXRjaCgyKQogCiAKLW1h
Y3JvIGFsbG9jYXRlQmFzaWNKU09iamVjdChzaXplQ2xhc3NJbmRleCwgY2xhc3NJbmZvT2Zmc2V0
LCBzdHJ1Y3R1cmUsIHJlc3VsdCwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBzbG93Q2FzZSkKLSAgICBp
ZiBBTFdBWVNfQUxMT0NBVEVfU0xPVwotICAgICAgICBqbXAgc2xvd0Nhc2UKLSAgICBlbHNlCi0g
ICAgICAgIGNvbnN0IG9mZnNldE9mTXlTaXplQ2xhc3MgPQotICAgICAgICAgICAgSlNHbG9iYWxE
YXRhOjpoZWFwICsKLSAgICAgICAgICAgIEhlYXA6Om1fb2JqZWN0U3BhY2UgKwotICAgICAgICAg
ICAgTWFya2VkU3BhY2U6Om1fbm9ybWFsU3BhY2UgKwotICAgICAgICAgICAgTWFya2VkU3BhY2U6
OlN1YnNwYWNlOjpwcmVjaXNlQWxsb2NhdG9ycyArCi0gICAgICAgICAgICBzaXplQ2xhc3NJbmRl
eCAqIHNpemVvZiBNYXJrZWRBbGxvY2F0b3IKLSAgICAgICAgCi0gICAgICAgICMgRklYTUU6IHdl
IGNhbiBnZXQgdGhlIGdsb2JhbCBkYXRhIGluIG9uZSBsb2FkIGZyb20gdGhlIHN0YWNrLgotICAg
ICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgc2NyYXRjaDEKLSAgICAgICAgbG9hZHAgQ29kZUJs
b2NrOjptX2dsb2JhbERhdGFbc2NyYXRjaDFdLCBzY3JhdGNoMQotICAgICAgICAKLSAgICAgICAg
IyBHZXQgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuICAgIAotICAgICAgICBsb2FkcCBv
ZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2Ny
YXRjaDFdLCByZXN1bHQKLSAgICAgICAgYnRweiByZXN1bHQsIHNsb3dDYXNlCi0gICAgICAgIAot
ICAgICAgICAjIFJlbW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4KLSAgICAgICAg
bG9hZHAgW3Jlc3VsdF0sIHNjcmF0Y2gyCi0gICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgb2Zmc2V0
T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gx
XQotICAgIAotICAgICAgICAjIEluaXRpYWxpemUgdGhlIG9iamVjdC4KLSAgICAgICAgbG9hZHAg
Y2xhc3NJbmZvT2Zmc2V0W3NjcmF0Y2gxXSwgc2NyYXRjaDIKLSAgICAgICAgc3RvcmVwIHNjcmF0
Y2gyLCBbcmVzdWx0XQotICAgICAgICBzdG9yZXAgc3RydWN0dXJlLCBKU0NlbGw6Om1fc3RydWN0
dXJlW3Jlc3VsdF0KLSAgICAgICAgc3RvcmVwIDAsIEpTT2JqZWN0OjptX2luaGVyaXRvcklEW3Jl
c3VsdF0KLSAgICAgICAgYWRkcCBzaXplb2YgSlNPYmplY3QsIHJlc3VsdCwgc2NyYXRjaDEKLSAg
ICAgICAgc3RvcmVwIHNjcmF0Y2gxLCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbcmVzdWx0
XQotICAgIGVuZAotZW5kCi0KIF9sbGludF9vcF9jcmVhdGVfdGhpczoKICAgICB0cmFjZUV4ZWN1
dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCkBAIC02NzYsMjQgKzM4OCw2IEBAIF9sbGludF9v
cF9uZXdfb2JqZWN0OgogICAgIGRpc3BhdGNoKDIpCiAKIAotX2xsaW50X29wX25ld19hcnJheToK
LSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
bmV3X2FycmF5KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX25ld19hcnJheV9idWZm
ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25ld19hcnJheV9idWZmZXIpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbmV3
X3JlZ2V4cDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfbmV3X3JlZ2V4cCkKLSAgICBkaXNwYXRjaCgzKQotCi0KIF9sbGludF9vcF9tb3Y6
CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDhbUENdLCB0MQpAQCAtODAyLDcgKzQ5
Niw3IEBAIF9sbGludF9vcF9uZXFfbnVsbDoKICAgICBkaXNwYXRjaCgzKQogCiAKLW1hY3JvIHN0
cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93X3BhdGgpCittYWNybyBzdHJpY3RFcShlcXVh
bGl0eU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRp
IDhbUENdLCB0MAogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTgy
Miw3ICs1MTYsNyBAQCBtYWNybyBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wCiAg
ICAgZGlzcGF0Y2goNCkKIAogLnNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAg
ICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAgICAgZGlzcGF0Y2goNCkKIGVuZAogCkBAIC04MzYs
MzAgKzUzMCw2IEBAIF9sbGludF9vcF9uc3RyaWN0ZXE6CiAgICAgc3RyaWN0RXEobWFjcm8gKGxl
ZnQsIHJpZ2h0LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLCBfbGxpbnRf
c2xvd19wYXRoX25zdHJpY3RlcSkKIAogCi1fbGxpbnRfb3BfbGVzczoKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbGVzcykKLSAgICBkaXNw
YXRjaCg0KQotCi0KLV9sbGludF9vcF9sZXNzZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3NlcSkKLSAgICBkaXNwYXRjaCg0KQot
Ci0KLV9sbGludF9vcF9ncmVhdGVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVyKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xs
aW50X29wX2dyZWF0ZXJlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcmVxKQotICAgIGRpc3BhdGNoKDQpCi0KLQogX2xsaW50
X29wX3ByZV9pbmM6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDRbUENdLCB0MApA
QCAtOTY4LDcgKzYzOCw3IEBAIF9sbGludF9vcF9uZWdhdGU6CiAgICAgZGlzcGF0Y2goMykKIAog
Ci1tYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91
YmxlT3BlcmF0aW9uLCBzbG93X3BhdGgpCittYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVn
ZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKICAgICBsb2Fk
aSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10sIHQwCiAgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZSh0MiwgdDMsIHQxKQpAQCAtMTAwNiwxOCArNjc2LDE4IEBAIG1hY3JvIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoaW50ZWdlck9wZXJhdGkKICAgICBkaXNwYXRjaCg1KQogCiAuc2xvdzoKLSAgICBj
YWxsU2xvd1BhdGgoc2xvd19wYXRoKQorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAgICBk
aXNwYXRjaCg1KQogZW5kCiAKLW1hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRpb24sIGRvdWJs
ZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gYmluYXJ5T3AoaW50ZWdlck9wZXJhdGlvbiwg
ZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKICAgICBiaW5hcnlPcEN1c3RvbVN0b3JlKAogICAg
ICAgICBtYWNybyAoaW50MzJUYWcsIGxlZnQsIHJpZ2h0LCBzbG93LCBpbmRleCkKICAgICAgICAg
ICAgIGludGVnZXJPcGVyYXRpb24obGVmdCwgcmlnaHQsIHNsb3cpCiAgICAgICAgICAgICBzdG9y
ZWkgaW50MzJUYWcsIFRhZ09mZnNldFtjZnIsIGluZGV4LCA4XQogICAgICAgICAgICAgc3RvcmVp
IHJpZ2h0LCBQYXlsb2FkT2Zmc2V0W2NmciwgaW5kZXgsIDhdCiAgICAgICAgIGVuZCwKLSAgICAg
ICAgZG91YmxlT3BlcmF0aW9uLCBzbG93X3BhdGgpCisgICAgICAgIGRvdWJsZU9wZXJhdGlvbiwg
c2xvd1BhdGgpCiBlbmQKIAogX2xsaW50X29wX2FkZDoKQEAgLTEwNzMsMTMgKzc0Myw3IEBAIF9s
bGludF9vcF9kaXY6CiAgICAgICAgIF9sbGludF9zbG93X3BhdGhfZGl2KQogCiAKLV9sbGludF9v
cF9tb2Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX21vZCkKLSAgICBkaXNwYXRjaCg0KQotCi0KLW1hY3JvIGJpdE9wKG9wZXJhdGlvbiwg
c2xvd19wYXRoLCBhZHZhbmNlKQorbWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93UGF0aCwgYWR2
YW5jZSkKICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10sIHQwCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQpAQCAtMTA5Myw3ICs3NTcsNyBAQCBtYWNy
byBiaXRPcChvcGVyYXRpb24sIHNsb3dfcGF0aCwgYWR2YW5jCiAgICAgZGlzcGF0Y2goYWR2YW5j
ZSkKIAogLnNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1Bh
dGgoc2xvd1BhdGgpCiAgICAgZGlzcGF0Y2goYWR2YW5jZSkKIGVuZAogCkBAIC0xMTk4LDY2ICs4
NjIsNiBAQCBfbGxpbnRfb3BfaW5zdGFuY2VvZjoKICAgICBkaXNwYXRjaCg1KQogCiAKLV9sbGlu
dF9vcF90eXBlb2Y6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3R5cGVvZikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc191
bmRlZmluZWQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2lzX3VuZGVmaW5lZCkKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9p
c19ib29sZWFuOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9pc19ib29sZWFuKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lz
X251bWJlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfaXNfbnVtYmVyKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX3N0
cmluZzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaXNfc3RyaW5nKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX29iamVj
dDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfaXNfb2JqZWN0KQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX2Z1bmN0aW9u
OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9pc19mdW5jdGlvbikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pbjoKLSAgICB0
cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW4pCi0g
ICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcmVzb2x2ZToKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZSkKLSAgICBkaXNw
YXRjaCg0KQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3NraXA6Ci0gICAgdHJhY2VFeGVjdXRpb24o
KQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfc2tpcCkKLSAgICBk
aXNwYXRjaCg1KQotCi0KIG1hY3JvIHJlc29sdmVHbG9iYWwoc2l6ZSwgc2xvdykKICAgICAjIE9w
ZXJhbmRzIGFyZSBhcyBmb2xsb3dzOgogICAgICMgNFtQQ10gICBEZXN0aW5hdGlvbiBmb3IgdGhl
IGxvYWQuCkBAIC0xNDA4LDMwICsxMDEyLDYgQEAgX2xsaW50X29wX3B1dF9nbG9iYWxfdmFyOgog
ICAgIGRpc3BhdGNoKDMpCiAKIAotX2xsaW50X29wX3Jlc29sdmVfYmFzZToKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9iYXNl
KQotICAgIGRpc3BhdGNoKDUpCi0KLQotX2xsaW50X29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHM6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3Bf
cmVzb2x2ZV93aXRoX2Jhc2U6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfd2l0aF9iYXNlKQotICAgIGRpc3BhdGNoKDUpCi0K
LQotX2xsaW50X29wX3Jlc29sdmVfd2l0aF90aGlzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfdGhpcykKLSAgICBk
aXNwYXRjaCg1KQotCi0KIF9sbGludF9vcF9nZXRfYnlfaWQ6CiAgICAgdHJhY2VFeGVjdXRpb24o
KQogICAgICMgV2Ugb25seSBkbyBtb25vbW9ycGhpYyBnZXRfYnlfaWQgY2FjaGluZyBmb3Igbm93
LCBhbmQgd2UgZG8gbm90IG1vZGlmeSB0aGUKQEAgLTE1MzksMTIgKzExMTksNiBAQCBfbGxpbnRf
b3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsOgogICAgICAgICBlbmQpCiAKIAotX2xsaW50
X29wX2RlbF9ieV9pZDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfZGVsX2J5X2lkKQotICAgIGRpc3BhdGNoKDQpCi0KLQogX2xsaW50X29w
X2dldF9ieV92YWw6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRwIENvZGVCbG9ja1tj
ZnJdLCB0MQpAQCAtMTY1NiwyNCArMTIzMCw2IEBAIF9sbGludF9vcF9wdXRfYnlfdmFsOgogICAg
IGRpc3BhdGNoKDQpCiAKIAotX2xsaW50X29wX2RlbF9ieV92YWw6Ci0gICAgdHJhY2VFeGVjdXRp
b24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV92YWwpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcHV0X2J5X2luZGV4OgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlfaW5kZXgpCi0g
ICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcHV0X2dldHRlcl9zZXR0ZXI6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9nZXR0
ZXJfc2V0dGVyKQotICAgIGRpc3BhdGNoKDUpCi0KLQogX2xsaW50X29wX2xvb3A6CiAgICAgbm9w
CiBfbGxpbnRfb3Bfam1wOgpAQCAtMTY4MSwxMiArMTIzNyw2IEBAIF9sbGludF9vcF9qbXA6CiAg
ICAgZGlzcGF0Y2hCcmFuY2goNFtQQ10pCiAKIAotX2xsaW50X29wX2ptcF9zY29wZXM6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2ptcF9z
Y29wZXMpCi0gICAgZGlzcGF0Y2goMCkKLQotCiBtYWNybyBqdW1wVHJ1ZU9yRmFsc2UoY29uZGl0
aW9uT3AsIHNsb3cpCiAgICAgbG9hZGkgNFtQQ10sIHQxCiAgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZVBheWxvYWQodDEsIEJvb2xlYW5UYWcsIHQwLCAuc2xvdykKQEAgLTE3MDEsMjYgKzEyNTEs
MTAgQEAgbWFjcm8ganVtcFRydWVPckZhbHNlKGNvbmRpdGlvbk9wLCBzbG93KQogICAgIGRpc3Bh
dGNoKDApCiBlbmQKIAotX2xsaW50X29wX2xvb3BfaWZfdHJ1ZToKLSAgICBub3AKLV9sbGludF9v
cF9qdHJ1ZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAganVtcFRydWVPckZhbHNlKAotICAg
ICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRpbnogdmFsdWUsIHRhcmdldCBlbmQsCi0gICAg
ICAgIF9sbGludF9zbG93X3BhdGhfanRydWUpCi0KLQotX2xsaW50X29wX2xvb3BfaWZfZmFsc2U6
Ci0gICAgbm9wCi1fbGxpbnRfb3BfamZhbHNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBq
dW1wVHJ1ZU9yRmFsc2UoCi0gICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGl6IHZhbHVl
LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pmYWxzZSkKLQogCiBtYWNy
byBlcXVhbE51bGwoY2VsbEhhbmRsZXIsIGltbWVkaWF0ZUhhbmRsZXIpCiAgICAgbG9hZGkgNFtQ
Q10sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCiAgICAgbG9hZGkgVGFnT2Zmc2V0W2Nm
ciwgdDAsIDhdLCB0MQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0sIHQwCiAg
ICAgYmluZXEgdDEsIENlbGxUYWcsIC5pbW1lZGlhdGUKQEAgLTE3NjMsNyArMTI5Nyw3IEBAIF9s
bGludF9vcF9qbmVxX3B0cjoKICAgICBkaXNwYXRjaCg0KQogCiAKLW1hY3JvIGNvbXBhcmUoaW50
ZWdlckNvbXBhcmUsIGRvdWJsZUNvbXBhcmUsIHNsb3dfcGF0aCkKK21hY3JvIGNvbXBhcmUoaW50
ZWdlckNvbXBhcmUsIGRvdWJsZUNvbXBhcmUsIHNsb3dQYXRoKQogICAgIGxvYWRpIDRbUENdLCB0
MgogICAgIGxvYWRpIDhbUENdLCB0MwogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQw
LCB0MSkKQEAgLTE3OTcsODcgKzEzMzEsMTAgQEAgbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFy
ZSwgZG91YmxlQ29tcAogICAgIGRpc3BhdGNoQnJhbmNoKDEyW1BDXSkKIAogLnNsb3c6Ci0gICAg
Y2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAgICAg
ZGlzcGF0Y2goMCkKIGVuZAogCi1fbGxpbnRfb3BfbG9vcF9pZl9sZXNzOgotICAgIG5vcAotX2xs
aW50X29wX2psZXNzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHQgbGVmdCwgcmlnaHQs
IHRhcmdldCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93X3BhdGhfamxlc3MpCi0KLQotX2xsaW50
X29wX2pubGVzczoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3RlcXVuIGxlZnQsIHJp
Z2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzcykKLQotCi1f
bGxpbnRfb3BfbG9vcF9pZl9ncmVhdGVyOgotICAgIG5vcAotX2xsaW50X29wX2pncmVhdGVyOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHRhcmdldCkgYmlndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFj
cm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIF9sbGludF9zbG93X3BhdGhfamdyZWF0ZXIpCi0KLQotX2xsaW50X29wX2puZ3JlYXRl
cjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHRlcXVuIGxlZnQsIHJpZ2h0LCB0YXJn
ZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2puZ3JlYXRlcikKLQotCi1fbGxpbnRf
b3BfbG9vcF9pZl9sZXNzZXE6Ci0gICAgbm9wCi1fbGxpbnRfb3Bfamxlc3NlcToKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0
YXJnZXQpIGJpbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAg
ICAgX2xsaW50X3Nsb3dfcGF0aF9qbGVzc2VxKQotCi0KLV9sbGludF9vcF9qbmxlc3NlcToKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJp
Z2h0LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3Jv
IChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIF9sbGludF9zbG93X3BhdGhfam5sZXNzZXEpCi0KLQotX2xsaW50X29wX2xvb3BfaWZf
Z3JlYXRlcmVxOgotICAgIG5vcAotX2xsaW50X29wX2pncmVhdGVyZXE6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0
KSBiaWd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCBy
aWdodCwgdGFyZ2V0KSBiZGd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIF9s
bGludF9zbG93X3BhdGhfamdyZWF0ZXJlcSkKLQotCi1fbGxpbnRfb3Bfam5ncmVhdGVyZXE6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCBy
aWdodCwgdGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNy
byAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdHVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAot
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2puZ3JlYXRlcmVxKQotCi0KLV9sbGludF9vcF9sb29w
X2hpbnQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29w
KCkKLSAgICBkaXNwYXRjaCgxKQotCiAKIF9sbGludF9vcF9zd2l0Y2hfaW1tOgogICAgIHRyYWNl
RXhlY3V0aW9uKCkKQEAgLTE5MzMsMTkgKzEzOTAsMTMgQEAgX2xsaW50X29wX3N3aXRjaF9jaGFy
OgogICAgIGJpYWVxIHQwLCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JT
aXplT2Zmc2V0W3QyXSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCiAgICAgbG9hZHAgU2ltcGxl
SnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDIKICAg
ICBsb2FkaSBbdDIsIHQwLCA0XSwgdDEKLSAgICBidGl6IHQxLCAub3BTd2l0Y2hJbW1GYWxsVGhy
b3VnaAorICAgIGJ0aXogdDEsIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAogICAgIGRpc3BhdGNo
QnJhbmNoV2l0aE9mZnNldCh0MSkKIAogLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoOgogICAgIGRp
c3BhdGNoQnJhbmNoKDhbUENdKQogCiAKLV9sbGludF9vcF9zd2l0Y2hfc3RyaW5nOgotICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hf
c3RyaW5nKQotICAgIGRpc3BhdGNoKDApCi0KLQogX2xsaW50X29wX25ld19mdW5jOgogICAgIHRy
YWNlRXhlY3V0aW9uKCkKICAgICBidGl6IDEyW1BDXSwgLm9wTmV3RnVuY1VuY2hlY2tlZApAQCAt
MTk1NywxMyArMTQwOCw3IEBAIF9sbGludF9vcF9uZXdfZnVuYzoKICAgICBkaXNwYXRjaCg0KQog
CiAKLV9sbGludF9vcF9uZXdfZnVuY19leHA6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19mdW5jX2V4cCkKLSAgICBkaXNwYXRjaCgz
KQotCi0KLW1hY3JvIGRvQ2FsbChzbG93X3BhdGgpCittYWNybyBkb0NhbGwoc2xvd1BhdGgpCiAg
ICAgbG9hZGkgNFtQQ10sIHQwCiAgICAgbG9hZGkgMTZbUENdLCB0MQogICAgIGxvYWRwIExMSW50
Q2FsbExpbmtJbmZvOjpjYWxsZWVbdDFdLCB0MgpAQCAtMTk4Nyw2NiArMTQzMiw5IEBAIG1hY3Jv
IGRvQ2FsbChzbG93X3BhdGgpCiAgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQogCiAub3BDYWxsU2xv
dzoKLSAgICBzbG93UGF0aEZvckNhbGwoNiwgc2xvd19wYXRoKQorICAgIHNsb3dQYXRoRm9yQ2Fs
bCg2LCBzbG93UGF0aCkKIGVuZAogCi1fbGxpbnRfb3BfY2FsbDoKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgZG9DYWxsKF9sbGludF9zbG93X3BhdGhfY2FsbCkKLQotCi1fbGxpbnRfb3BfY29u
c3RydWN0OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBkb0NhbGwoX2xsaW50X3Nsb3dfcGF0
aF9jb25zdHJ1Y3QpCi0KLQotX2xsaW50X29wX2NhbGxfdmFyYXJnczoKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgc2xvd1BhdGhGb3JDYWxsKDYsIF9sbGludF9zbG93X3BhdGhfY2FsbF92YXJh
cmdzKQotCi0KLV9sbGludF9vcF9jYWxsX2V2YWw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IAotICAgICMgRXZhbCBpcyBleGVjdXRlZCBpbiBvbmUgb2YgdHdvIG1vZGVzOgotICAgICMKLSAg
ICAjIDEpIFdlIGZpbmQgdGhhdCB3ZSdyZSByZWFsbHkgaW52b2tpbmcgZXZhbCgpIGluIHdoaWNo
IGNhc2UgdGhlCi0gICAgIyAgICBleGVjdXRpb24gaXMgcGVyZm9tZWQgZW50aXJlbHkgaW5zaWRl
IHRoZSBzbG93X3BhdGgsIGFuZCBpdAotICAgICMgICAgcmV0dXJucyB0aGUgUEMgb2YgYSBmdW5j
dGlvbiB0aGF0IGp1c3QgcmV0dXJucyB0aGUgcmV0dXJuIHZhbHVlCi0gICAgIyAgICB0aGF0IHRo
ZSBldmFsIHJldHVybmVkLgotICAgICMKLSAgICAjIDIpIFdlIGZpbmQgdGhhdCB3ZSdyZSBpbnZv
a2luZyBzb21ldGhpbmcgY2FsbGVkIGV2YWwoKSB0aGF0IGlzIG5vdAotICAgICMgICAgdGhlIHJl
YWwgZXZhbC4gVGhlbiB0aGUgc2xvd19wYXRoIHJldHVybnMgdGhlIFBDIG9mIHRoZSB0aGluZyB0
bwotICAgICMgICAgY2FsbCwgYW5kIHdlIGNhbGwgaXQuCi0gICAgIwotICAgICMgVGhpcyBhbGxv
d3MgdXMgdG8gaGFuZGxlIHR3byBjYXNlcywgd2hpY2ggd291bGQgcmVxdWlyZSBhIHRvdGFsIG9m
Ci0gICAgIyB1cCB0byBmb3VyIHBpZWNlcyBvZiBzdGF0ZSB0aGF0IGNhbm5vdCBiZSBlYXNpbHkg
cGFja2VkIGludG8gdHdvCi0gICAgIyByZWdpc3RlcnMgKEMgZnVuY3Rpb25zIGNhbiByZXR1cm4g
dXAgdG8gdHdvIHJlZ2lzdGVycywgZWFzaWx5KToKLSAgICAjCi0gICAgIyAtIFRoZSBjYWxsIGZy
YW1lIHJlZ2lzdGVyLiBUaGlzIG1heSBvciBtYXkgbm90IGhhdmUgYmVlbiBtb2RpZmllZAotICAg
ICMgICBieSB0aGUgc2xvd19wYXRoLCBidXQgdGhlIGNvbnZlbnRpb24gaXMgdGhhdCBpdCByZXR1
cm5zIGl0LiBJdCdzIG5vdAotICAgICMgICB0b3RhbGx5IGNsZWFyIGlmIHRoYXQncyBuZWNlc3Nh
cnksIHNpbmNlIHRoZSBjZnIgaXMgY2FsbGVlIHNhdmUuCi0gICAgIyAgIEJ1dCB0aGF0J3Mgb3Vy
IHN0eWxlIGluIHRoaXMgaGVyZSBpbnRlcnByZXRlciBzbyB3ZSBzdGljayB3aXRoIGl0LgotICAg
ICMKLSAgICAjIC0gQSBiaXQgdG8gc2F5IGlmIHRoZSBzbG93X3BhdGggc3VjY2Vzc2Z1bGx5IGV4
ZWN1dGVkIHRoZSBldmFsIGFuZCBoYXMKLSAgICAjICAgdGhlIHJldHVybiB2YWx1ZSwgb3IgZGlk
IG5vdCBleGVjdXRlIHRoZSBldmFsIGJ1dCBoYXMgYSBQQyBmb3IgdXMKLSAgICAjICAgdG8gY2Fs
bC4KLSAgICAjCi0gICAgIyAtIEVpdGhlcjoKLSAgICAjICAgLSBUaGUgSlMgcmV0dXJuIHZhbHVl
ICh0d28gcmVnaXN0ZXJzKSwgb3IKLSAgICAjCi0gICAgIyAgIC0gVGhlIFBDIHRvIGNhbGwuCi0g
ICAgIwotICAgICMgSXQgdHVybnMgb3V0IHRvIGJlIGVhc2llciB0byBqdXN0IGFsd2F5cyBoYXZl
IHRoaXMgcmV0dXJuIHRoZSBjZnIKLSAgICAjIGFuZCBhIFBDIHRvIGNhbGwsIGFuZCB0aGF0IFBD
IG1heSBiZSBhIGR1bW15IHRodW5rIHRoYXQganVzdAotICAgICMgcmV0dXJucyB0aGUgSlMgdmFs
dWUgdGhhdCB0aGUgZXZhbCByZXR1cm5lZC4KLSAgICAKLSAgICBzbG93UGF0aEZvckNhbGwoNCwg
X2xsaW50X3Nsb3dfcGF0aF9jYWxsX2V2YWwpCi0KLQotX2xsaW50X2dlbmVyaWNfcmV0dXJuX3Bv
aW50OgotICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLQogCiBfbGxpbnRfb3BfdGVhcl9vZmZfYWN0
aXZhdGlvbjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCkBAIC0yMDcwLDEzICsxNDU4LDYgQEAgX2xs
aW50X29wX3RlYXJfb2ZmX2FyZ3VtZW50czoKICAgICBkaXNwYXRjaCgyKQogCiAKLW1hY3JvIGRv
UmV0dXJuKCkKLSAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgotICAgIGxvYWRwIENhbGxlckZy
YW1lW2Nmcl0sIGNmcgotICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQot
ICAgIHJldAotZW5kCi0KIF9sbGludF9vcF9yZXQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAg
IGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCkBAIC0yMTExLDE4ICsxNDkyLDYgQEAgX2xs
aW50X29wX3JldF9vYmplY3Rfb3JfdGhpczoKICAgICBkb1JldHVybigpCiAKIAotX2xsaW50X29w
X21ldGhvZF9jaGVjazoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgIyBXZSBpZ25vcmUgbWV0
aG9kIGNoZWNrcyBhbmQgdXNlIG5vcm1hbCBnZXRfYnlfaWQgb3B0aW1pemF0aW9ucy4KLSAgICBk
aXNwYXRjaCgxKQotCi0KLV9sbGludF9vcF9zdHJjYXQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQot
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N0cmNhdCkKLSAgICBkaXNwYXRjaCg0
KQotCi0KIF9sbGludF9vcF90b19wcmltaXRpdmU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAg
IGxvYWRpIDhbUENdLCB0MgpAQCAtMjE0MSwxMiArMTUxMCw2IEBAIF9sbGludF9vcF90b19wcmlt
aXRpdmU6CiAgICAgZGlzcGF0Y2goMykKIAogCi1fbGxpbnRfb3BfZ2V0X3BuYW1lczoKLSAgICB0
cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X3Bu
YW1lcykKLSAgICBkaXNwYXRjaCgwKSAjIFRoZSBzbG93X3BhdGggZWl0aGVyIGFkdmFuY2VzIHRo
ZSBQQyBvciBqdW1wcyB1cyB0byBzb21ld2hlcmUgZWxzZS4KLQotCiBfbGxpbnRfb3BfbmV4dF9w
bmFtZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgMTJbUENdLCB0MQpAQCAtMjE4
NywyNCArMTU1MCw2IEBAIF9sbGludF9vcF9uZXh0X3BuYW1lOgogICAgIGRpc3BhdGNoKDApCiAK
IAotX2xsaW50X29wX3B1c2hfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfc2NvcGUpCi0gICAgZGlzcGF0Y2goMikKLQot
Ci1fbGxpbnRfb3BfcG9wX3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wb3Bfc2NvcGUpCi0gICAgZGlzcGF0Y2goMSkKLQotCi1f
bGxpbnRfb3BfcHVzaF9uZXdfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfbmV3X3Njb3BlKQotICAgIGRpc3BhdGNoKDQp
Ci0KLQogX2xsaW50X29wX2NhdGNoOgogICAgICMgVGhpcyBpcyB3aGVyZSB3ZSBlbmQgdXAgZnJv
bSB0aGUgSklUJ3MgdGhyb3cgdHJhbXBvbGluZSAoYmVjYXVzZSB0aGUKICAgICAjIG1hY2hpbmUg
Y29kZSByZXR1cm4gYWRkcmVzcyB3aWxsIGJlIHNldCB0byBfbGxpbnRfb3BfY2F0Y2gpLCBhbmQg
ZnJvbQpAQCAtMjIyNiwxOCArMTU3MSw2IEBAIF9sbGludF9vcF9jYXRjaDoKICAgICBkaXNwYXRj
aCgyKQogCiAKLV9sbGludF9vcF90aHJvdzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3cpCi0gICAgZGlzcGF0Y2goMikKLQotCi1f
bGxpbnRfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9yOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvd19yZWZlcmVuY2VfZXJyb3IpCi0g
ICAgZGlzcGF0Y2goMikKLQotCiBfbGxpbnRfb3BfanNyOgogICAgIHRyYWNlRXhlY3V0aW9uKCkK
ICAgICBsb2FkaSA0W1BDXSwgdDAKQEAgLTIyNTMsMzQgKzE1ODYsMTEgQEAgX2xsaW50X29wX3Ny
ZXQ6CiAgICAgZGlzcGF0Y2goMCkKIAogCi1fbGxpbnRfb3BfZGVidWc6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlYnVnKQotICAgIGRp
c3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZlcmVu
Y2Vbc3BdLCB0MAotICAgIGJ0cHogW3QwXSwgLm9wUHJvZmlsZVdpbGxDYWxsRG9uZQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQotLm9wUHJvZmls
ZVdpbGxDYWxsRG9uZToKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF9wcm9maWxlX2Rp
ZF9jYWxsOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpl
bmFibGVkUHJvZmlsZXJSZWZlcmVuY2Vbc3BdLCB0MAotICAgIGJ0cHogW3QwXSwgLm9wUHJvZmls
ZVdpbGxDYWxsRG9uZQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVf
ZGlkX2NhbGwpCi0ub3BQcm9maWxlRGlkQ2FsbERvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCiBf
bGxpbnRfb3BfZW5kOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBjaGVja1N3aXRjaFRvSklU
Rm9yRXBpbG9ndWUoKQogICAgIGxvYWRpIDRbUENdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50
KHQwKQogICAgIGxvYWRpIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgdDEKICAgICBsb2FkaSBQYXls
b2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MAogICAgIGRvUmV0dXJuKCkKQEAgLTIzNDEsNzkgKzE2
NTEsMyBAQCBtYWNybyBuYXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2ZmCiAgICAgam1w
IF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCiBlbmQKIAotX2xsaW50X25h
dGl2ZV9jYWxsX3RyYW1wb2xpbmU6Ci0gICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhl
Y3V0YWJsZTo6bV9mdW5jdGlvbikKLQotCi1fbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9s
aW5lOgotICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fY29uc3Ry
dWN0b3IpCi0KLQotIyBMYXN0bHksIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBsaW5rIGV2ZW4gdGhv
dWdoIHdlIGRvbid0IHN1cHBvcnQgYWxsIG9wY29kZXMuCi0jIFRoZXNlIG9wY29kZXMgc2hvdWxk
IG5ldmVyIGFyaXNlIHdoZW4gdXNpbmcgTExJbnQgb3IgZWl0aGVyIEpJVC4gV2UgYXNzZXJ0Ci0j
IGFzIG11Y2guCi0KLW1hY3JvIG5vdFN1cHBvcnRlZCgpCi0gICAgaWYgQVNTRVJUX0VOQUJMRUQK
LSAgICAgICAgY3Jhc2goKQotICAgIGVsc2UKLSAgICAgICAgIyBXZSBzaG91bGQgdXNlIHdoYXRl
dmVyIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBpcywganVzdCB0bwotICAgICAg
ICAjIGVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgZ2FwIGJldHdlZW4gaW5zdHJ1Y3Rpb24gbGFiZWxz
LiBJZiBtdWx0aXBsZQotICAgICAgICAjIHNtYWxsZXN0IGluc3RydWN0aW9ucyBleGlzdCwgd2Ug
c2hvdWxkIHBpY2sgdGhlIG9uZSB0aGF0IGlzIG1vc3QKLSAgICAgICAgIyBsaWtlbHkgcmVzdWx0
IGluIGV4ZWN1dGlvbiBiZWluZyBoYWx0ZWQuIEN1cnJlbnRseSB0aGF0IGlzIHRoZSBicmVhawot
ICAgICAgICAjIGluc3RydWN0aW9uIG9uIGFsbCBhcmNoaXRlY3R1cmVzIHdlJ3JlIGludGVyZXN0
ZWQgaW4uIChCcmVhayBpcyBpbnQzCi0gICAgICAgICMgb24gSW50ZWwsIHdoaWNoIGlzIDEgYnl0
ZSwgYW5kIGJrcHQgb24gQVJNdjcsIHdoaWNoIGlzIDIgYnl0ZXMuKQotICAgICAgICBicmVhawot
ICAgIGVuZAotZW5kCi0KLV9sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgotICAgIG5vdFN1cHBv
cnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkK
LQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkK
LQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkK
LQotX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQot
Ci1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW46Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxp
bnRfb3BfZ2V0X2J5X2lkX3Byb3RvOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9n
ZXRfYnlfaWRfc2VsZjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X3N0cmlu
Z19sZW5ndGg6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9nZW5l
cmljOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRfcmVwbGFjZToK
LSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb246Ci0g
ICAgbm90U3VwcG9ydGVkKCkKLQotCi0jIEluZGljYXRlIHRoZSBlbmQgb2YgTExJbnQuCi1fbGxp
bnRfZW5kOgotICAgIGNyYXNoKCkKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJldmlzaW9uIDExMDM0NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsyMiwxNDY5IEBACiAjIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogCi0jIE5vdCBzdXBwb3J0ZWQgeWV0LCBzbyBnaXZlIHVwLgotZXJy
b3IKKyMgU29tZSB2YWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMuCitjb25zdCBUYWdCaXRU
eXBlT3RoZXIgPSAweDIKK2NvbnN0IFRhZ0JpdEJvb2wgICAgICA9IDB4NAorY29uc3QgVGFnQml0
VW5kZWZpbmVkID0gMHg4Citjb25zdCBWYWx1ZUVtcHR5ICAgICAgPSAweDAKK2NvbnN0IFZhbHVl
RmFsc2UgICAgICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wKK2NvbnN0IFZhbHVlVHJ1
ZSAgICAgICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wgfCAxCitjb25zdCBWYWx1ZVVu
ZGVmaW5lZCAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRVbmRlZmluZWQKK2NvbnN0IFZhbHVl
TnVsbCAgICAgICA9IFRhZ0JpdFR5cGVPdGhlcgorCisjIFV0aWxpdGllcy4KK21hY3JvIGRpc3Bh
dGNoKGFkdmFuY2UpCisgICAgYWRkcCBhZHZhbmNlLCBQQworICAgIGptcCBbUEIsIFBDLCA4XQor
ZW5kCisKK21hY3JvIGRpc3BhdGNoSW50KGFkdmFuY2UpCisgICAgYWRkaSBhZHZhbmNlLCBQQwor
ICAgIGptcCBbUEIsIFBDLCA4XQorZW5kCisKK21hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKKyAg
ICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCisgICAgbG9hZHAgQ29k
ZUJsb2NrW2Nmcl0sIFBCCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1tQQl0s
IFBCCisgICAgam1wIFtQQiwgUEMsIDhdCitlbmQKKworbWFjcm8gY0NhbGwyKGZ1bmN0aW9uLCBh
cmcxLCBhcmcyKQorICAgIG1vdmUgYXJnMSwgdDUKKyAgICBtb3ZlIGFyZzIsIHQ0CisgICAgY2Fs
bCBmdW5jdGlvbgorZW5kCisKKyMgVGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5kIGFyZzQgc2hv
dWxkIHByb2JhYmx5IGJlIGltbWVkaWF0ZXMuCittYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEs
IGFyZzIsIGFyZzMsIGFyZzQpCisgICAgbW92ZSBhcmcxLCB0NQorICAgIG1vdmUgYXJnMiwgdDQK
KyAgICBtb3ZlIGFyZzMsIHQxCisgICAgbW92ZSBhcmc0LCB0MgorICAgIGNhbGwgZnVuY3Rpb24K
K2VuZAorCittYWNybyBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgbGVhcCBbUEIsIFBDLCA4
XSwgUEMKKyAgICBtb3ZlIFBCLCB0MworZW5kCisKK21hY3JvIHJlc3RvcmVTdGF0ZUFmdGVyQ0Nh
bGwoKQorICAgIG1vdmUgdDAsIFBDCisgICAgbW92ZSB0MSwgY2ZyCisgICAgbW92ZSB0MywgUEIK
KyAgICBzdWJwIFBCLCBQQworICAgIHVyc2hpZnRwIDMsIFBDCitlbmQKKworbWFjcm8gY2FsbFNs
b3dQYXRoKHNsb3dQYXRoKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDIo
c2xvd1BhdGgsIGNmciwgUEMpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKwor
bWFjcm8gdHJhY2VPcGVyYW5kKGZyb21XaGVyZSwgb3BlcmFuZCkKKyAgICBwcmVwYXJlU3RhdGVG
b3JDQ2FsbCgpCisgICAgY0NhbGw0KF9sbGludF90cmFjZV9vcGVyYW5kLCBjZnIsIFBDLCBmcm9t
V2hlcmUsIG9wZXJhbmQpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQKKworbWFj
cm8gdHJhY2VWYWx1ZShmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0Nh
bGwoKQorICAgIGNDYWxsNChfbGxpbnRfdHJhY2VfdmFsdWUsIGNmciwgUEMsIGZyb21XaGVyZSwg
b3BlcmFuZCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKK2VuZAorCisjIENhbGwgYSBz
bG93IHBhdGggZm9yIGNhbGwgY2FsbCBvcGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChh
ZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9uKQorICAgIGFkZGkgYWR2YW5jZSwgUEMsIHQwCisgICAg
c3RvcmVpIHQwLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICBwcmVwYXJlU3Rh
dGVGb3JDQ2FsbCgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIG1vdmUgdDEs
IGNmcgorICAgIGFjdGlvbih0MCkKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9v
cCgpCisgICAgY2hlY2tTd2l0Y2hUb0pJVCgKKyAgICAgICAgMSwKKyAgICAgICAgbWFjcm8oKQor
ICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAg
ICAgICAgICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICAgICAgICAgIGNDYWxsMihfbGxp
bnRfbG9vcF9vc3IsIGNmciwgUEMpCisgICAgICAgICAgICBtb3ZlIHQxLCBjZnIKKyAgICAgICAg
ICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAgICAgICAgICBqbXAgdDAKKyAgICAgICAgLnJlY292
ZXI6CisgICAgICAgICAgICBsb2FkcCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBD
CisgICAgICAgIGVuZCkKK2VuZAorCisjIEluZGV4IGFuZCB2YWx1ZSBtdXN0IGJlIGRpZmZlcmVu
dCByZWdpc3RlcnMuIEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCittYWNybyBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBicGd0ZXEgaW5kZXgsIEZpcnN0Q29uc3RhbnRS
ZWdpc3RlckluZGV4LCAuY29uc3RhbnQKKyAgICBsb2FkcCBbY2ZyLCBpbmRleCwgOF0sIHZhbHVl
CisgICAgam1wIC5kb25lCisuY29uc3RhbnQ6CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHZh
bHVlCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2NvbnN0YW50UmVnaXN0ZXJzICsgVmVjdG9yQnVm
ZmVyT2Zmc2V0W3ZhbHVlXSwgdmFsdWUKKyAgICBzdWJwIEZpcnN0Q29uc3RhbnRSZWdpc3Rlcklu
ZGV4LCBpbmRleAorICAgIGxvYWRwIFt2YWx1ZSwgaW5kZXgsIDhdLCB2YWx1ZQorLmRvbmU6Citl
bmQKKworbWFjcm8gbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKGluZGV4LCB2YWx1ZSwgc2xv
dykKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBicGIgdmFs
dWUsIHRhZ1R5cGVOdW1iZXIsIHNsb3cKK2VuZAorCittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlQ2VsbChpbmRleCwgdmFsdWUsIHNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShp
bmRleCwgdmFsdWUpCisgICAgYnRwbnogdmFsdWUsIHRhZ01hc2ssIHNsb3cKK2VuZAorCittYWNy
byB3cml0ZUJhcnJpZXIodmFsdWUpCisgICAgIyBOb3RoaW5nIHRvIGRvLCBzaW5jZSB3ZSBkb24n
dCBoYXZlIGEgZ2VuZXJhdGlvbmFsIG9yIGluY3JlbWVudGFsIGNvbGxlY3Rvci4KK2VuZAorCitt
YWNybyB2YWx1ZVByb2ZpbGUodmFsdWUsIHByb2ZpbGUpCisgICAgaWYgVkFMVUVfUFJPRklMRVIK
KyAgICAgICAgc3RvcmVwIHZhbHVlLCBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0c1twcm9maWxlXQor
ICAgIGVuZAorZW5kCisKKworIyBFbnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlci4KKwor
IyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3Vl
KCkgbGVhdmVzIGJlaGluZC4KK21hY3JvIGZ1bmN0aW9uQXJpdHlDaGVjayhkb25lTGFiZWwsIHNs
b3dfcGF0aCkKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0
MAorICAgIGJpYWVxIHQwLCBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIGRvbmVMYWJl
bAorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIs
IFBDKSAgICMgVGhpcyBzbG93X3BhdGggaGFzIGEgc2ltcGxlIHByb3RvY29sOiB0MCA9IDAgPT4g
bm8gZXJyb3IsIHQwICE9IDAgPT4gZXJyb3IKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBidGl6IHQw
LCAuY29udGludWUKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDEK
KyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAgICBq
bXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0MV0KKy5jb250aW51ZToK
KyAgICAjIFJlbG9hZCBDb2RlQmxvY2sgYW5kIHJlc2V0IFBDLCBzaW5jZSB0aGUgc2xvd19wYXRo
IGNsb2JiZXJlZCB0aGVtLgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxvYWRw
IENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQgorICAgIG1vdmUgMCwgUEMKKyAgICBq
bXAgZG9uZUxhYmVsCitlbmQKKworCisjIEluc3RydWN0aW9uIGltcGxlbWVudGF0aW9ucworCitf
bGxpbnRfb3BfZW50ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB0MgorICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1WYXJzW3QyXSwgdDIKKyAgICBi
dGl6IHQyLCAub3BFbnRlckRvbmUKKyAgICBtb3ZlIFZhbHVlVW5kZWZpbmVkLCB0MAorLm9wRW50
ZXJMb29wOgorICAgIHN1YmkgMSwgdDIKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAg
IGJ0aW56IHQyLCAub3BFbnRlckxvb3AKKy5vcEVudGVyRG9uZToKKyAgICBkaXNwYXRjaCgxKQor
CisKK19sbGludF9vcF9jcmVhdGVfYWN0aXZhdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBicG5lcSBbY2ZyLCB0MCwgOF0sIFZhbHVl
RW1wdHksIC5vcENyZWF0ZUFjdGl2YXRpb25Eb25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfY3JlYXRlX2FjdGl2YXRpb24pCisub3BDcmVhdGVBY3RpdmF0aW9uRG9uZToKKyAg
ICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9pbml0X2xhenlfcmVnOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIHN0b3JlcCBWYWx1ZUVt
cHR5LCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9jcmVhdGVf
YXJndW1lbnRzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4XSwgVmFsdWVFbXB0eSwgLm9wQ3JlYXRlQXJndW1l
bnRzRG9uZQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV9hcmd1bWVu
dHMpCisub3BDcmVhdGVBcmd1bWVudHNEb25lOgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50
X29wX2NyZWF0ZV90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIs
IFBDLCA4XSwgdDAKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MCkKKyAgICBsb2FkcCBbY2ZyLCB0
MCwgOF0sIHQwCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcENyZWF0ZVRoaXNTbG93CisgICAg
bG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCisgICAgYmJiIFN0cnVjdHVyZTo6bV90
eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDFdLCBPYmplY3RUeXBlLCAub3BDcmVhdGVUaGlz
U2xvdworICAgIGxvYWRwIEpTT2JqZWN0OjptX2luaGVyaXRvcklEW3QwXSwgdDIKKyAgICBidHB6
IHQyLCAub3BDcmVhdGVUaGlzU2xvdworICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChKU0ZpbmFs
T2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENsYXNzSW5m
bywgdDIsIHQwLCB0MSwgdDMsIC5vcENyZWF0ZVRoaXNTbG93KQorICAgIGxvYWRpcyA4W1BCLCBQ
QywgOF0sIHQxCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQor
Cisub3BDcmVhdGVUaGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9j
cmVhdGVfdGhpcykKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9nZXRfY2FsbGVlOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MQorICAgIHN0b3JlcCB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfY29udmVydF90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwg
dDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLm9wQ29udmVydFRoaXNTbG93CisgICAgbG9hZHAg
SlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5m
byArIFR5cGVJbmZvOjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCAub3BDb252ZXJ0VGhpc1Nsb3cK
KyAgICBkaXNwYXRjaCgyKQorCisub3BDb252ZXJ0VGhpc1Nsb3c6CisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfY29udmVydF90aGlzKQorICAgIGRpc3BhdGNoKDIpCisKKworX2xs
aW50X29wX25ld19vYmplY3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0
MAorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX2VtcHR5T2JqZWN0U3RydWN0dXJlW3QwXSwg
dDEKKyAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4
LCBKU0dsb2JhbERhdGE6OmpzRmluYWxPYmplY3RDbGFzc0luZm8sIHQxLCB0MCwgdDIsIHQzLCAu
b3BOZXdPYmplY3RTbG93KQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgc3RvcmVw
IHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisub3BOZXdPYmplY3RTbG93Ogor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19vYmplY3QpCisgICAgZGlzcGF0
Y2goMikKKworCitfbGxpbnRfb3BfbW92OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aXMgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQyKQorICAgIHN0b3JlcCB0MiwgW2NmciwgdDAsIDhd
CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bfbm90OgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIHhvcnAgVmFsdWVG
YWxzZSwgdDIKKyAgICBidHBueiB0MiwgfjEsIC5vcE5vdFNsb3cKKyAgICB4b3JwIFZhbHVlVHJ1
ZSwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5v
cE5vdFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbm90KQorICAgIGRp
c3BhdGNoKDMpCisKKworbWFjcm8gZXF1YWxpdHlDb21wYXJpc29uKGludGVnZXJDb21wYXJpc29u
LCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDI0W1BCLCBQQywg
OF0sIHQwCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGlzIDhbUEIsIFBD
LCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDAsIHQxLCAuc2xvdykK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDIsIHQwLCAuc2xvdykKKyAgICBpbnRl
Z2VyQ29tcGFyaXNvbih0MCwgdDEsIHQwKQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0
b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLnNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDQpCitlbmQKKworX2xsaW50X29wX2Vx
OgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBy
ZXN1bHQpIGNpZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfZXEpCisKKworX2xsaW50X29wX25lcToKKyAgICBlcXVhbGl0eUNvbXBhcmlzb24oCisg
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVz
dWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9uZXEpCisKKworbWFjcm8gZXF1YWxO
dWxsQ29tcGFyaXNvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAg
W2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAuaW1tZWRpYXRlCisgICAg
bG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQyCisgICAgdGJueiBTdHJ1Y3R1cmU6Om1f
dHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0Ml0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQs
IHQwCisgICAgam1wIC5kb25lCisuaW1tZWRpYXRlOgorICAgIGFuZHAgflRhZ0JpdFVuZGVmaW5l
ZCwgdDAKKyAgICBjcGVxIHQwLCBWYWx1ZU51bGwsIHQwCisuZG9uZToKK2VuZAorCitfbGxpbnRf
b3BfZXFfbnVsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZXF1YWxOdWxsQ29tcGFyaXNv
bigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAK
KyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50
X29wX25lcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGxDb21wYXJp
c29uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIHhvcnAgVmFsdWVUcnVlLCB0
MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworCittYWNy
byBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyAxNltQQiwgUEMs
IDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxKQorICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIG1vdmUgdDAsIHQyCisgICAgb3JwIHQxLCB0Mgor
ICAgIGJ0cHogdDIsIHRhZ01hc2ssIC5zbG93CisgICAgYnBhZXEgdDAsIHRhZ1R5cGVOdW1iZXIs
IC5sZWZ0T0sKKyAgICBidHBueiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKy5sZWZ0T0s6Cisg
ICAgYnBhZXEgdDEsIHRhZ1R5cGVOdW1iZXIsIC5yaWdodE9LCisgICAgYnRwbnogdDEsIHRhZ1R5
cGVOdW1iZXIsIC5zbG93CisucmlnaHRPSzoKKyAgICBlcXVhbGl0eU9wZXJhdGlvbih0MCwgdDEs
IHQwKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgb3JwIFZhbHVlRmFsc2UsIHQw
CisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCg0KQorCisuc2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goNCkKK2VuZAorCitfbGxp
bnRfb3Bfc3RyaWN0ZXE6CisgICAgc3RyaWN0RXEoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgcmVzdWx0KSBjcGVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3N0cmljdGVxKQorCisKK19sbGludF9vcF9uc3RyaWN0ZXE6CisgICAgc3RyaWN0
RXEoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjcG5lcSBsZWZ0LCByaWdo
dCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9uc3RyaWN0ZXEpCisKKwor
bWFjcm8gcHJlT3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgW2NmciwgdDAs
IDhdLCB0MQorICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBhcml0aG1ldGlj
T3BlcmF0aW9uKHQxLCAuc2xvdykKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDEKKyAgICBzdG9y
ZXAgdDEsIFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKy5zbG93OgorICAgIGNhbGxT
bG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgyKQorZW5kCisKK19sbGludF9vcF9wcmVf
aW5jOgorICAgIHByZU9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJhZGRpbyAxLCB2
YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcHJlX2luYykKKworCitf
bGxpbnRfb3BfcHJlX2RlYzoKKyAgICBwcmVPcCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCBzbG93
KSBic3ViaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3By
ZV9kZWMpCisKKworbWFjcm8gcG9zdE9wKGFyaXRobWV0aWNPcGVyYXRpb24sIHNsb3dQYXRoKQor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBs
b2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDIKKyAgICBi
aWVxIHQwLCB0MSwgLmRvbmUKKyAgICBicGIgdDIsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAg
bW92ZSB0MiwgdDMKKyAgICBhcml0aG1ldGljT3BlcmF0aW9uKHQzLCAuc2xvdykKKyAgICBvcnAg
dGFnVHlwZU51bWJlciwgdDMKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIHN0b3Jl
cCB0MywgW2NmciwgdDAsIDhdCisuZG9uZToKKyAgICBkaXNwYXRjaCgzKQorCisuc2xvdzoKKyAg
ICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goMykKK2VuZAorCitfbGxpbnRf
b3BfcG9zdF9pbmM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJh
ZGRpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcG9zdF9p
bmMpCisKKworX2xsaW50X29wX3Bvc3RfZGVjOgorICAgIHBvc3RPcCgKKyAgICAgICAgbWFjcm8g
KHZhbHVlLCBzbG93KSBic3ViaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3Bvc3RfZGVjKQorCisKK19sbGludF9vcF90b19qc251bWJlcjoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDhb
UEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MikKKyAgICBi
cGFlcSB0MiwgdGFnVHlwZU51bWJlciwgLm9wVG9Kc251bWJlcklzSW1tZWRpYXRlCisgICAgYnRw
eiB0MiwgdGFnTWFzaywgLm9wVG9Kc251bWJlclNsb3cKKy5vcFRvSnNudW1iZXJJc0ltbWVkaWF0
ZToKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRv
SnNudW1iZXJTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RvX2pzbnVt
YmVyKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX25lZ2F0ZToKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDhbUEIs
IFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MikKKyAgICBicGIg
dDIsIHRhZ1R5cGVOdW1iZXIsIC5vcE5lZ2F0ZU5vdEludAorICAgIGJ0aXogdDIsIDB4N2ZmZmZm
ZmYsIC5vcE5lZ2F0ZVNsb3cKKyAgICBuZWdpIHQyCisgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQy
CisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorLm9wTmVnYXRl
Tm90SW50OgorICAgIGJ0cHogdDIsIHRhZ1R5cGVOdW1iZXIsIC5vcE5lZ2F0ZVNsb3cKKyAgICB4
b3JwIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQor
ICAgIGRpc3BhdGNoKDMpCisKKy5vcE5lZ2F0ZVNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfbmVnYXRlKQorICAgIGRpc3BhdGNoKDMpCisKKworbWFjcm8gYmluYXJ5T3BD
dXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbiwgc2xv
d1BhdGgpCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDE2W1BCLCBQ
QywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnBiIHQwLCB0YWdUeXBlTnVtYmVyLCAub3Ax
Tm90SW50CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50CisgICAgbG9hZGlz
IDhbUEIsIFBDLCA4XSwgdDIKKyAgICBpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUodDEsIHQwLCAu
c2xvdywgdDIpCisgICAgZGlzcGF0Y2goNSkKKworLm9wMU5vdEludDoKKyAgICAjIEZpcnN0IG9w
ZXJhbmQgaXMgZGVmaW5pdGVseSBub3QgYW4gaW50LCB0aGUgc2Vjb25kIG9wZXJhbmQgY291bGQg
YmUgYW55dGhpbmcuCisgICAgYnRweiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBicGFl
cSB0MSwgdGFnVHlwZU51bWJlciwgLm9wMU5vdEludE9wMkludAorICAgIGJ0cHogdDEsIHRhZ1R5
cGVOdW1iZXIsIC5zbG93CisgICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIGZwMmQgdDEs
IGZ0MQorICAgIGptcCAub3AxTm90SW50UmVhZHkKKy5vcDFOb3RJbnRPcDJJbnQ6CisgICAgY2ky
ZCB0MSwgZnQxCisub3AxTm90SW50UmVhZHk6CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIK
KyAgICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgZnAyZCB0MCwgZnQwCisgICAgZG91Ymxl
T3BlcmF0aW9uKGZ0MSwgZnQwKQorICAgIGZkMnAgZnQwLCB0MAorICAgIHN1YnAgdGFnVHlwZU51
bWJlciwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDUpCisK
Ky5vcDJOb3RJbnQ6CisgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0
aGUgc2Vjb25kIGlzIGRlZmluaXRlbHkgbm90LgorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQy
CisgICAgYnRweiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBjaTJkIHQwLCBmdDAKKyAg
ICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQxCisgICAgZnAyZCB0MSwgZnQxCisgICAgZG91YmxlT3Bl
cmF0aW9uKGZ0MSwgZnQwKQorICAgIGZkMnAgZnQwLCB0MAorICAgIHN1YnAgdGFnVHlwZU51bWJl
ciwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDUpCisKKy5z
bG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCg1KQorZW5kCisK
K21hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRpb24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1Bh
dGgpCisgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCBzbG93LCBpbmRleCkKKyAgICAgICAgICAgIGludGVnZXJPcGVyYXRpb24obGVmdCwgcmlnaHQs
IHNsb3cpCisgICAgICAgICAgICBvcnAgdGFnVHlwZU51bWJlciwgcmlnaHQKKyAgICAgICAgICAg
IHN0b3JlcCByaWdodCwgW2NmciwgaW5kZXgsIDhdCisgICAgICAgIGVuZCwKKyAgICAgICAgZG91
YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKK2VuZAorCitfbGxpbnRfb3BfYWRkOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBiaW5hcnlPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBz
bG93KSBiYWRkaW8gbGVmdCwgcmlnaHQsIHNsb3cgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQpIGFkZGQgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2Fk
ZCkKKworCitfbGxpbnRfb3BfbXVsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaW5hcnlP
cEN1c3RvbVN0b3JlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQor
ICAgICAgICAgICAgIyBBc3N1bWUgdDMgaXMgc2NyYXRjaGFibGUuCisgICAgICAgICAgICBtb3Zl
IHJpZ2h0LCB0MworICAgICAgICAgICAgYm11bGlvIGxlZnQsIHQzLCBzbG93CisgICAgICAgICAg
ICBidGlueiB0MywgLmRvbmUKKyAgICAgICAgICAgIGJpbHQgbGVmdCwgMCwgc2xvdworICAgICAg
ICAgICAgYmlsdCByaWdodCwgMCwgc2xvdworICAgICAgICAuZG9uZToKKyAgICAgICAgICAgIG9y
cCB0YWdUeXBlTnVtYmVyLCB0MworICAgICAgICAgICAgc3RvcmVwIHQzLCBbY2ZyLCBpbmRleCwg
OF0KKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQpIG11bGQgbGVmdCwg
cmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX211bCkKKworCitfbGxpbnRfb3Bf
c3ViOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaW5hcnlPcCgKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCBzbG93KSBic3ViaW8gbGVmdCwgcmlnaHQsIHNsb3cgZW5kLAorICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQpIHN1YmQgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxp
bnRfc2xvd19wYXRoX3N1YikKKworCitfbGxpbnRfb3BfZGl2OgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBiaW5hcnlPcEN1c3RvbVN0b3JlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHNsb3csIGluZGV4KQorICAgICAgICAgICAgIyBBc3N1bWUgdDMgaXMgc2NyYXRjaGFibGUuCisg
ICAgICAgICAgICBidGl6IGxlZnQsIHNsb3cKKyAgICAgICAgICAgIGJ0aW56IHJpZ2h0LCAuaW50
T0sKKyAgICAgICAgICAgIGJpbHQgbGVmdCwgMCwgc2xvdworICAgICAgICAuaW50T0s6CisgICAg
ICAgICAgICBtb3ZlIGxlZnQsIHQzCisgICAgICAgICAgICBtb3ZlIHJpZ2h0LCB0MAorICAgICAg
ICAgICAgY2RxaQorICAgICAgICAgICAgaWRpdmkgdDMKKyAgICAgICAgICAgIGJ0aW56IHQxLCBz
bG93CisgICAgICAgICAgICBvcnAgdGFnVHlwZU51bWJlciwgdDAKKyAgICAgICAgICAgIHN0b3Jl
cCB0MCwgW2NmciwgaW5kZXgsIDhdCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0KSBkaXZkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9k
aXYpCisKKworbWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93UGF0aCwgYWR2YW5jZSkKKyAgICBs
b2FkaXMgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAg
ICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAs
IHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGJwYiB0MCwgdGFn
VHlwZU51bWJlciwgLnNsb3cKKyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAg
b3BlcmF0aW9uKHQxLCB0MCwgLnNsb3cpCisgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAg
c3RvcmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaChhZHZhbmNlKQorCisuc2xvdzoK
KyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goYWR2YW5jZSkKK2VuZAor
CitfbGxpbnRfb3BfbHNoaWZ0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBsc2hpZnRpIGxlZnQsIHJpZ2h0IGVuZCwK
KyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9sc2hpZnQsCisgICAgICAgIDQpCisKKworX2xsaW50
X29wX3JzaGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgc2xvdykgcnNoaWZ0aSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAg
IF9sbGludF9zbG93X3BhdGhfcnNoaWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF91cnNo
aWZ0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCBzbG93KQorICAgICAgICAgICAgdXJzaGlmdGkgbGVmdCwgcmlnaHQKKyAgICAg
ICAgICAgIGJpbHQgcmlnaHQsIDAsIHNsb3cKKyAgICAgICAgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX3Vyc2hpZnQsCisgICAgICAgIDQpCisKKworX2xsaW50X29wX2JpdGFuZDoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgc2xvdykgYW5kaSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhf
Yml0YW5kLAorICAgICAgICA1KQorCisKK19sbGludF9vcF9iaXR4b3I6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIHhv
cmkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdHhvciwKKyAg
ICAgICAgNSkKKworCitfbGxpbnRfb3BfYml0b3I6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIG9yaSBsZWZ0LCByaWdo
dCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfYml0b3IsCisgICAgICAgIDUpCisKKwor
X2xsaW50X29wX2NoZWNrX2hhc19pbnN0YW5jZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0
MSwgdDAsIC5vcENoZWNrSGFzSW5zdGFuY2VTbG93KQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1
Y3R1cmVbdDBdLCB0MAorICAgIGJ0YnogU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86
Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UsIC5vcENoZWNrSGFzSW5zdGFuY2VT
bG93CisgICAgZGlzcGF0Y2goMikKKworLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY2hlY2tfaGFzX2luc3RhbmNlKQorICAgIGRpc3Bh
dGNoKDIpCisKKworX2xsaW50X29wX2luc3RhbmNlb2Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgICMgQ2hlY2sgdGhhdCBiYXNlVmFsIGltcGxlbWVudHMgdGhlIGRlZmF1bHQgSGFzSW5zdGFu
Y2UgYmVoYXZpb3IuCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgZGVwcmVjYXRlZC4KKyAg
ICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQx
LCB0MCkKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKKyAgICBidGJ6IFN0
cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSwgLm9wSW5zdGFuY2VvZlNsb3cKKyAgICAKKyAgICAjIEFjdHVhbGx5
IGRvIHRoZSB3b3JrLgorICAgIGxvYWRpcyAzMltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyA4
W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQxLCAu
b3BJbnN0YW5jZW9mU2xvdykKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QxXSwgdDIK
KyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0Ml0sIE9i
amVjdFR5cGUsIC5vcEluc3RhbmNlb2ZTbG93CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQw
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQyLCAub3BJbnN0YW5jZW9mU2xv
dykKKyAgICAKKyAgICAjIFJlZ2lzdGVyIHN0YXRlOiB0MSA9IHByb3RvdHlwZSwgdDIgPSB2YWx1
ZQorICAgIG1vdmUgMSwgdDAKKy5vcEluc3RhbmNlb2ZMb29wOgorICAgIGxvYWRwIEpTQ2VsbDo6
bV9zdHJ1Y3R1cmVbdDJdLCB0MgorICAgIGxvYWRwIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbdDJd
LCB0MgorICAgIGJwZXEgdDIsIHQxLCAub3BJbnN0YW5jZW9mRG9uZQorICAgIGJ0cHogdDIsIHRh
Z01hc2ssIC5vcEluc3RhbmNlb2ZMb29wCisKKyAgICBtb3ZlIDAsIHQwCisub3BJbnN0YW5jZW9m
RG9uZToKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4
XQorICAgIGRpc3BhdGNoKDUpCisKKy5vcEluc3RhbmNlb2ZTbG93OgorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2luc3RhbmNlb2YpCisgICAgZGlzcGF0Y2goNSkKKworCittYWNy
byByZXNvbHZlR2xvYmFsKHNpemUsIHNsb3cpCisgICAgIyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93
czoKKyAgICAjIDhbUEIsIFBDLCA4XSAgIERlc3RpbmF0aW9uIGZvciB0aGUgbG9hZC4KKyAgICAj
IDE2W1BCLCBQQywgOF0gIFByb3BlcnR5IGlkZW50aWZpZXIgaW5kZXggaW4gdGhlIGNvZGUgYmxv
Y2suCisgICAgIyAyNFtQQiwgUEMsIDhdICBTdHJ1Y3R1cmUgcG9pbnRlciwgaW5pdGlhbGl6ZWQg
dG8gMCBieSBieXRlY29kZSBnZW5lcmF0b3IuCisgICAgIyAzMltQQiwgUEMsIDhdICBPZmZzZXQg
aW4gZ2xvYmFsIG9iamVjdCwgaW5pdGlhbGl6ZWQgdG8gMCBieSBieXRlY29kZSBnZW5lcmF0b3Iu
CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2ds
b2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQx
CisgICAgYnBuZXEgdDEsIDI0W1BCLCBQQywgOF0sIHNsb3cKKyAgICBsb2FkaXMgMzJbUEIsIFBD
LCA4XSwgdDEKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MAor
ICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0MgorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisg
ICAgc3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0KKyAgICBsb2FkcCAoc2l6ZSAtIDEpICogOFtQQiwg
UEMsIDhdLCB0MAorICAgIHZhbHVlUHJvZmlsZSh0MiwgdDApCitlbmQKKworX2xsaW50X29wX3Jl
c29sdmVfZ2xvYmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICByZXNvbHZlR2xvYmFsKDYs
IC5vcFJlc29sdmVHbG9iYWxTbG93KQorICAgIGRpc3BhdGNoKDYpCisKKy5vcFJlc29sdmVHbG9i
YWxTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZ2xvYmFs
KQorICAgIGRpc3BhdGNoKDYpCisKKworIyBHaXZlcyB5b3UgdGhlIHNjb3BlIGluIHQwLCB3aGls
ZSBhbGxvd2luZyB5b3UgdG8gb3B0aW9uYWxseSBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzIG9u
IHRoZQorIyBzY29wZXMgYXMgdGhleSBhcmUgdHJhdmVyc2VkLiBzY29wZUNoZWNrKCkgaXMgY2Fs
bGVkIHdpdGggdHdvIGFyZ3VtZW50czogdGhlIHJlZ2lzdGVyCisjIGhvbGRpbmcgdGhlIHNjb3Bl
LCBhbmQgYSByZWdpc3RlciB0aGF0IGNhbiBiZSB1c2VkIGZvciBzY3JhdGNoLiBOb3RlIHRoYXQg
dGhpcyBkb2VzIG5vdAorIyB1c2UgdDMsIHNvIHlvdSBjYW4gaG9sZCBzdHVmZiBpbiB0MyBpZiBu
ZWVkIGJlLgorbWFjcm8gZ2V0U2NvcGUoZGVCcnVpamluSW5kZXhPcGVyYW5kLCBzY29wZUNoZWNr
KQorICAgIGxvYWRwIFNjb3BlQ2hhaW5bY2ZyXSwgdDAKKyAgICBsb2FkaXMgZGVCcnVpamluSW5k
ZXhPcGVyYW5kLCB0MgorICAgIAorICAgIGJ0aXogdDIsIC5kb25lCisgICAgCisgICAgbG9hZHAg
Q29kZUJsb2NrW2Nmcl0sIHQxCisgICAgYmluZXEgQ29kZUJsb2NrOjptX2NvZGVUeXBlW3QxXSwg
RnVuY3Rpb25Db2RlLCAubG9vcAorICAgIGJ0YnogQ29kZUJsb2NrOjptX25lZWRzRnVsbFNjb3Bl
Q2hhaW5bdDFdLCAubG9vcAorICAgIAorICAgIGxvYWRpcyBDb2RlQmxvY2s6Om1fYWN0aXZhdGlv
blJlZ2lzdGVyW3QxXSwgdDEKKworICAgICMgTmVlZCB0byBjb25kaXRpb25hbGx5IHNraXAgb3Zl
ciBvbmUgc2NvcGUuCisgICAgYnRweiBbY2ZyLCB0MSwgOF0sIC5ub0FjdGl2YXRpb24KKyAgICBz
Y29wZUNoZWNrKHQwLCB0MSkKKyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6bmV4dFt0MF0sIHQw
Cisubm9BY3RpdmF0aW9uOgorICAgIHN1YmkgMSwgdDIKKyAgICAKKyAgICBidGl6IHQyLCAuZG9u
ZQorLmxvb3A6CisgICAgc2NvcGVDaGVjayh0MCwgdDEpCisgICAgbG9hZHAgU2NvcGVDaGFpbk5v
ZGU6Om5leHRbdDBdLCB0MAorICAgIHN1YmkgMSwgdDIKKyAgICBidGlueiB0MiwgLmxvb3AKKwor
LmRvbmU6CitlbmQKKworX2xsaW50X29wX3Jlc29sdmVfZ2xvYmFsX2R5bmFtaWM6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0
MworICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6YWN0aXZhdGlvblN0cnVjdHVyZVt0M10sIHQzCisg
ICAgZ2V0U2NvcGUoCisgICAgICAgIDQwW1BCLCBQQywgOF0sCisgICAgICAgIG1hY3JvIChzY29w
ZSwgc2NyYXRjaCkKKyAgICAgICAgICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpvYmplY3Rbc2Nv
cGVdLCBzY3JhdGNoCisgICAgICAgICAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3NjcmF0
Y2hdLCB0MywgLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTdXBlclNsb3cKKyAgICAgICAgZW5kKQor
ICAgIHJlc29sdmVHbG9iYWwoNywgLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTbG93KQorICAgIGRp
c3BhdGNoKDcpCisKKy5vcFJlc29sdmVHbG9iYWxEeW5hbWljU3VwZXJTbG93OgorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZm9yX3Jlc29sdmVfZ2xvYmFsX2R5bmFt
aWMpCisgICAgZGlzcGF0Y2goNykKKworLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTbG93OgorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZ2xvYmFsX2R5bmFtaWMpCisg
ICAgZGlzcGF0Y2goNykKKworCitfbGxpbnRfb3BfZ2V0X3Njb3BlZF92YXI6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgICMgT3BlcmFuZHMgYXJlIGFzIGZvbGxvd3M6CisgICAgIyA4W1BCLCBQ
QywgOF0gICBEZXN0aW5hdGlvbiBmb3IgdGhlIGxvYWQKKyAgICAjIDE2W1BCLCBQQywgOF0gIElu
ZGV4IG9mIHJlZ2lzdGVyIGluIHRoZSBzY29wZQorICAgICMgMjRbUEIsIFBDLCA4XSAgRGUgQnJ1
aWppbiBpbmRleC4KKyAgICBnZXRTY29wZSgyNFtQQiwgUEMsIDhdLCBtYWNybyAoc2NvcGUsIHNj
cmF0Y2gpIGVuZCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpcyAxNltQ
QiwgUEMsIDhdLCB0MgorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpvYmplY3RbdDBdLCB0MAor
ICAgIGxvYWRwIEpTVmFyaWFibGVPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKKyAgICBsb2Fk
cCBbdDAsIHQyLCA4XSwgdDMKKyAgICBzdG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAgIGxvYWRw
IDMyW1BCLCBQQywgOF0sIHQxCisgICAgdmFsdWVQcm9maWxlKHQzLCB0MSkKKyAgICBkaXNwYXRj
aCg1KQorCisKK19sbGludF9vcF9wdXRfc2NvcGVkX3ZhcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgZ2V0U2NvcGUoMTZbUEIsIFBDLCA4XSwgbWFjcm8gKHNjb3BlLCBzY3JhdGNoKSBlbmQp
CisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZSh0MSwgdDMpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICB3cml0ZUJhcnJpZXIo
dDMpCisgICAgbG9hZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAg
SlNWYXJpYWJsZU9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIHN0b3JlcCB0MywgW3Qw
LCB0MSwgOF0KKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9nZXRfZ2xvYmFsX3ZhcjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQxCisgICAg
bG9hZGlzIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU0ds
b2JhbE9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRwIFt0MCwgdDEsIDhdLCB0
MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDMsIDhdCisgICAgbG9hZHAgMjRbUEIsIFBDLCA4XSwg
dDMKKyAgICB2YWx1ZVByb2ZpbGUodDIsIHQzKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX3B1dF9nbG9iYWxfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZb
UEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBD
b2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU0dsb2JhbE9iamVj
dDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQy
KQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgd3JpdGVCYXJyaWVyKHQyKQorICAg
IHN0b3JlcCB0MiwgW3QwLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9n
ZXRfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgV2Ugb25seSBkbyBtb25vbW9y
cGhpYyBnZXRfYnlfaWQgY2FjaGluZyBmb3Igbm93LCBhbmQgd2UgZG8gbm90IG1vZGlmeSB0aGUK
KyAgICAjIG9wY29kZS4gV2UgZG8sIGhvd2V2ZXIsIGFsbG93IGZvciB0aGUgY2FjaGUgdG8gY2hh
bmdlIGFueXRpbWUgaWYgZmFpbHMsIHNpbmNlCisgICAgIyBwaW5nLXBvbmdpbmcgaXMgZnJlZS4g
QXQgYmVzdCB3ZSBnZXQgbHVja3kgYW5kIHRoZSBnZXRfYnlfaWQgd2lsbCBjb250aW51ZQorICAg
ICMgdG8gdGFrZSBmYXN0IHBhdGggb24gdGhlIG5ldyBjYWNoZS4gQXQgd29yc3Qgd2UgdGFrZSBz
bG93IHBhdGgsIHdoaWNoIGlzIHdoYXQKKyAgICAjIHdlIHdvdWxkIGhhdmUgYmVlbiBkb2luZyBh
bnl3YXkuCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgMzJbUEIsIFBD
LCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDMsIC5vcEdldEJ5
SWRTbG93KQorICAgIGxvYWRpcyA0MFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRwIEpTT2JqZWN0
OjptX3Byb3BlcnR5U3RvcmFnZVt0M10sIHQwCisgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVy
ZVt0M10sIHQxLCAub3BHZXRCeUlkU2xvdworICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisg
ICAgbG9hZHAgW3QwLCB0Ml0sIHQzCisgICAgc3RvcmVwIHQzLCBbY2ZyLCB0MSwgOF0KKyAgICBs
b2FkcCA2NFtQQiwgUEMsIDhdLCB0MQorICAgIHZhbHVlUHJvZmlsZSh0MywgdDEpCisgICAgZGlz
cGF0Y2goOSkKKworLm9wR2V0QnlJZFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfZ2V0X2J5X2lkKQorICAgIGRpc3BhdGNoKDkpCisKKworX2xsaW50X29wX2dldF9hcmd1
bWVudHNfbGVuZ3RoOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBD
LCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGJ0cG56IFtjZnIsIHQw
LCA4XSwgLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xvdworICAgIGxvYWRpIEFyZ3VtZW50Q291bnQg
KyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQyCisgICAgc3ViaSAxLCB0MgorICAgIG9ycCB0YWdUeXBl
TnVtYmVyLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkK
KworLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9nZXRfYXJndW1lbnRzX2xlbmd0aCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGlu
dF9vcF9wdXRfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQ
QywgOF0sIHQzCisgICAgbG9hZHAgMzJbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbCh0MywgdDAsIC5vcFB1dEJ5SWRTbG93KQorICAgIGxvYWRpcyAyNFtQQiwg
UEMsIDhdLCB0MgorICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQz
CisgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxLCAub3BQdXRCeUlkU2xvdwor
ICAgIGxvYWRpcyA0MFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
dDIsIHQwKQorICAgIHdyaXRlQmFycmllcih0MCkKKyAgICBzdG9yZXAgdDAsIFt0MywgdDFdCisg
ICAgZGlzcGF0Y2goOSkKKworLm9wUHV0QnlJZFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfcHV0X2J5X2lkKQorICAgIGRpc3BhdGNoKDkpCisKKworbWFjcm8gcHV0QnlJ
ZFRyYW5zaXRpb24oYWRkaXRpb25hbENoZWNrcykKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGlzIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkcCAzMltQQiwgUEMsIDhdLCB0MQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQzLCB0MCwgLm9wUHV0QnlJZFNsb3cpCisgICAg
bG9hZGlzIDI0W1BCLCBQQywgOF0sIHQyCisgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVt0
MF0sIHQxLCAub3BQdXRCeUlkU2xvdworICAgIGFkZGl0aW9uYWxDaGVja3ModDEsIHQzLCAub3BQ
dXRCeUlkU2xvdykKKyAgICBsb2FkaXMgNDBbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkcCBKU09i
amVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MworICAgIGFkZHAgdDEsIHQzCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEpCisgICAgd3JpdGVCYXJyaWVyKHQxKQorICAgIHN0
b3JlcCB0MSwgW3QzXQorICAgIGxvYWRwIDQ4W1BCLCBQQywgOF0sIHQxCisgICAgc3RvcmVwIHQx
LCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXQorICAgIGRpc3BhdGNoKDkpCitlbmQKKworX2xsaW50
X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdDoKKyAgICBwdXRCeUlkVHJhbnNpdGlvbiht
YWNybyAob2xkU3RydWN0dXJlLCBzY3JhdGNoLCBzbG93KSBlbmQpCisKKworX2xsaW50X29wX3B1
dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKKyAgICBwdXRCeUlkVHJhbnNpdGlvbigKKyAgICAg
ICAgbWFjcm8gKG9sZFN0cnVjdHVyZSwgc2NyYXRjaCwgc2xvdykKKyAgICAgICAgICAgIGNvbnN0
IHByb3RvQ2VsbCA9IG9sZFN0cnVjdHVyZSAgICAjIFJldXNpbmcgdGhlIG9sZFN0cnVjdHVyZSBy
ZWdpc3RlciBmb3IgdGhlIHByb3RvCisgICAgICAgICAgICBsb2FkcCA1NltQQiwgUEMsIDhdLCBz
Y3JhdGNoCisgICAgICAgICAgICBhc3NlcnQobWFjcm8gKG9rKSBidHBueiBzY3JhdGNoLCBvayBl
bmQpCisgICAgICAgICAgICBsb2FkcCBTdHJ1Y3R1cmVDaGFpbjo6bV92ZWN0b3Jbc2NyYXRjaF0s
IHNjcmF0Y2gKKyAgICAgICAgICAgIGFzc2VydChtYWNybyAob2spIGJ0cG56IHNjcmF0Y2gsIG9r
IGVuZCkKKyAgICAgICAgICAgIGJwZXEgU3RydWN0dXJlOjptX3Byb3RvdHlwZVtvbGRTdHJ1Y3R1
cmVdLCBWYWx1ZU51bGwsIC5kb25lCisgICAgICAgIC5sb29wOgorICAgICAgICAgICAgbG9hZHAg
U3RydWN0dXJlOjptX3Byb3RvdHlwZVtvbGRTdHJ1Y3R1cmVdLCBwcm90b0NlbGwKKyAgICAgICAg
ICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbcHJvdG9DZWxsXSwgb2xkU3RydWN0dXJlCisg
ICAgICAgICAgICBicG5lcSBvbGRTdHJ1Y3R1cmUsIFtzY3JhdGNoXSwgc2xvdworICAgICAgICAg
ICAgYWRkcCA4LCBzY3JhdGNoCisgICAgICAgICAgICBicG5lcSBTdHJ1Y3R1cmU6Om1fcHJvdG90
eXBlW29sZFN0cnVjdHVyZV0sIFZhbHVlTnVsbCwgLmxvb3AKKyAgICAgICAgLmRvbmU6CisgICAg
ICAgIGVuZCkKKworCitfbGxpbnRfb3BfZ2V0X2J5X3ZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0s
IHQyCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZHAgQ29kZUJsb2NrOjpt
X2dsb2JhbERhdGFbdDFdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQyLCB0
MCwgLm9wR2V0QnlWYWxTbG93KQorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6anNBcnJheUNsYXNz
SW5mb1t0MV0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQzLCB0MSwgLm9w
R2V0QnlWYWxTbG93KQorICAgIHN4aTJwIHQxLCB0MQorICAgIGJwbmVxIFt0MF0sIHQyLCAub3BH
ZXRCeVZhbFNsb3cKKyAgICBsb2FkcCBKU0FycmF5OjptX3N0b3JhZ2VbdDBdLCB0MworICAgIGJp
YWVxIHQxLCBKU0FycmF5OjptX3ZlY3Rvckxlbmd0aFt0MF0sIC5vcEdldEJ5VmFsU2xvdworICAg
IGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgQXJyYXlTdG9yYWdlOjptX3ZlY3Rv
clt0MywgdDEsIDhdLCB0MgorICAgIGJ0cHogdDIsIC5vcEdldEJ5VmFsU2xvdworICAgIHN0b3Jl
cCB0MiwgW2NmciwgdDAsIDhdCisgICAgbG9hZHAgMzJbUEIsIFBDLCA4XSwgdDAKKyAgICB2YWx1
ZVByb2ZpbGUodDIsIHQwKQorICAgIGRpc3BhdGNoKDUpCisKKy5vcEdldEJ5VmFsU2xvdzoKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfdmFsKQorICAgIGRpc3BhdGNo
KDUpCisKKworX2xsaW50X29wX2dldF9hcmd1bWVudF9ieV92YWw6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyAyNFtQQiwgUEMs
IDhdLCB0MQorICAgIGJ0cG56IFtjZnIsIHQwLCA4XSwgLm9wR2V0QXJndW1lbnRCeVZhbFNsb3cK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDEsIHQyLCAub3BHZXRBcmd1bWVudEJ5
VmFsU2xvdykKKyAgICBhZGRpIDEsIHQyCisgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFBheWxv
YWRPZmZzZXRbY2ZyXSwgdDEKKyAgICBiaWFlcSB0MiwgdDEsIC5vcEdldEFyZ3VtZW50QnlWYWxT
bG93CisgICAgbmVnaSB0MgorICAgIHN4aTJwIHQyLCB0MgorICAgIGxvYWRpcyA4W1BCLCBQQywg
OF0sIHQzCisgICAgbG9hZHAgVGhpc0FyZ3VtZW50T2Zmc2V0W2NmciwgdDIsIDhdLCB0MAorICAg
IHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNSkKKworLm9wR2V0QXJndW1l
bnRCeVZhbFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2FyZ3Vt
ZW50X2J5X3ZhbCkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9nZXRfYnlfcG5hbWU6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAgIGxvYWRpcyAzMltQQiwgUEMsIDhd
LCB0MQorICAgIGFzc2VydE5vdENvbnN0YW50KHQxKQorICAgIGJwbmVxIHQwLCBbY2ZyLCB0MSwg
OF0sIC5vcEdldEJ5UG5hbWVTbG93CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAg
bG9hZGlzIDQwW1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwo
dDIsIHQwLCAub3BHZXRCeVBuYW1lU2xvdykKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MykKKyAg
ICBsb2FkcCBbY2ZyLCB0MywgOF0sIHQxCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0
MF0sIHQyCisgICAgYnBuZXEgdDIsIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6Om1fY2FjaGVkU3Ry
dWN0dXJlW3QxXSwgLm9wR2V0QnlQbmFtZVNsb3cKKyAgICBsb2FkaXMgNDhbUEIsIFBDLCA4XSwg
dDMKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdLCB0MworICAgIHN1YmkgMSwg
dDMKKyAgICBiaWFlcSB0MywgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9udW1DYWNoZWFibGVT
bG90c1t0MV0sIC5vcEdldEJ5UG5hbWVTbG93CisgICAgbG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVy
dHlTdG9yYWdlW3QwXSwgdDAKKyAgICBsb2FkcCBbdDAsIHQzLCA4XSwgdDAKKyAgICBsb2FkaXMg
OFtQQiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0
Y2goNykKKworLm9wR2V0QnlQbmFtZVNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfZ2V0X2J5X3BuYW1lKQorICAgIGRpc3BhdGNoKDcpCisKKworX2xsaW50X29wX3B1dF9i
eV92YWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQw
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDAsIHQxLCAub3BQdXRCeVZhbFNsb3cp
CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZUludDMyKHQwLCB0MiwgLm9wUHV0QnlWYWxTbG93KQorICAgIHN4aTJwIHQyLCB0MgorICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRh
W3QwXSwgdDAKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmpzQXJyYXlDbGFzc0luZm9bdDBdLCB0
MAorICAgIGJwbmVxIFt0MV0sIHQwLCAub3BQdXRCeVZhbFNsb3cKKyAgICBiaWFlcSB0MiwgSlNB
cnJheTo6bV92ZWN0b3JMZW5ndGhbdDFdLCAub3BQdXRCeVZhbFNsb3cKKyAgICBsb2FkcCBKU0Fy
cmF5OjptX3N0b3JhZ2VbdDFdLCB0MAorICAgIGJ0cHogQXJyYXlTdG9yYWdlOjptX3ZlY3Rvclt0
MCwgdDIsIDhdLCAub3BQdXRCeVZhbEVtcHR5Cisub3BQdXRCeVZhbFN0b3JlUmVzdWx0OgorICAg
IGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDMs
IHQxKQorICAgIHdyaXRlQmFycmllcih0MSkKKyAgICBzdG9yZXAgdDEsIEFycmF5U3RvcmFnZTo6
bV92ZWN0b3JbdDAsIHQyLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5vcFB1dEJ5VmFsRW1wdHk6
CisgICAgYWRkaSAxLCBBcnJheVN0b3JhZ2U6Om1fbnVtVmFsdWVzSW5WZWN0b3JbdDBdCisgICAg
YmliIHQyLCBBcnJheVN0b3JhZ2U6Om1fbGVuZ3RoW3QwXSwgLm9wUHV0QnlWYWxTdG9yZVJlc3Vs
dAorICAgIGFkZGkgMSwgdDIsIHQxCisgICAgc3RvcmVpIHQxLCBBcnJheVN0b3JhZ2U6Om1fbGVu
Z3RoW3QwXQorICAgIGptcCAub3BQdXRCeVZhbFN0b3JlUmVzdWx0CisKKy5vcFB1dEJ5VmFsU2xv
dzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlfdmFsKQorICAgIGRp
c3BhdGNoKDQpCisKKworX2xsaW50X29wX2xvb3A6CisgICAgbm9wCitfbGxpbnRfb3Bfam1wOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBkaXNwYXRjaEludCg4W1BCLCBQQywgOF0pCisKKwor
bWFjcm8ganVtcFRydWVPckZhbHNlKGNvbmRpdGlvbk9wLCBzbG93KQorICAgIGxvYWRpcyA4W1BC
LCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgeG9y
cCBWYWx1ZUZhbHNlLCB0MAorICAgIGJ0cG56IHQwLCAtMSwgLnNsb3cKKyAgICBjb25kaXRpb25P
cCh0MCwgLnRhcmdldCkKKyAgICBkaXNwYXRjaCgzKQorCisudGFyZ2V0OgorICAgIGRpc3BhdGNo
SW50KDE2W1BCLCBQQywgOF0pCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93KQorICAg
IGRpc3BhdGNoKDApCitlbmQKKworCittYWNybyBlcXVhbE51bGwoY2VsbEhhbmRsZXIsIGltbWVk
aWF0ZUhhbmRsZXIpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBhc3NlcnROb3RD
b25zdGFudCh0MCkKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCisgICAgYnRwbnogdDAsIHRh
Z01hc2ssIC5pbW1lZGlhdGUKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDIK
KyAgICBjZWxsSGFuZGxlcihTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFn
c1t0Ml0sIC50YXJnZXQpCisgICAgZGlzcGF0Y2goMykKKworLnRhcmdldDoKKyAgICBkaXNwYXRj
aCgxNltQQiwgUEMsIDhdKQorCisuaW1tZWRpYXRlOgorICAgIGFuZHAgflRhZ0JpdFVuZGVmaW5l
ZCwgdDAKKyAgICBpbW1lZGlhdGVIYW5kbGVyKHQwLCAudGFyZ2V0KQorICAgIGRpc3BhdGNoKDMp
CitlbmQKKworX2xsaW50X29wX2plcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBl
cXVhbE51bGwoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGJueiB2YWx1ZSwgTWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0
YXJnZXQpIGJpZXEgdmFsdWUsIFZhbHVlTnVsbCwgdGFyZ2V0IGVuZCkKKworCitfbGxpbnRfb3Bf
am5lcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGwoCisgICAgICAg
IG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGJ6IHZhbHVlLCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmluZXEgdmFsdWUs
IFZhbHVlTnVsbCwgdGFyZ2V0IGVuZCkKKworCitfbGxpbnRfb3Bfam5lcV9wdHI6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgMTZb
UEIsIFBDLCA4XSwgdDEKKyAgICBicG5lcSB0MSwgW2NmciwgdDAsIDhdLCAub3BKbmVxUHRyVGFy
Z2V0CisgICAgZGlzcGF0Y2goNCkKKworLm9wSm5lcVB0clRhcmdldDoKKyAgICBkaXNwYXRjaElu
dCgyNFtQQiwgUEMsIDhdKQorCisKK21hY3JvIGNvbXBhcmUoaW50ZWdlckNvbXBhcmUsIGRvdWJs
ZUNvbXBhcmUsIHNsb3dQYXRoKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQyCisgICAgbG9h
ZGlzIDE2W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDAp
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MywgdDEpCisgICAgYnBiIHQwLCB0YWdUeXBl
TnVtYmVyLCAub3AxTm90SW50CisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AyTm90SW50
CisgICAgaW50ZWdlckNvbXBhcmUodDAsIHQxLCAuanVtcFRhcmdldCkKKyAgICBkaXNwYXRjaCg0
KQorCisub3AxTm90SW50OgorICAgIGJ0cHogdDAsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAg
YnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3AxTm90SW50T3AyTm90SW50CisgICAgY2kyZCB0MSwg
ZnQxCisgICAgam1wIC5vcDFOb3RJbnRSZWFkeQorLm9wMU5vdEludE9wMk5vdEludDoKKyAgICBi
dHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFkZHAgdGFnVHlwZU51bWJlciwgdDEK
KyAgICBmcDJkIHQxLCBmdDEKKy5vcDFOb3RJbnRSZWFkeToKKyAgICBhZGRwIHRhZ1R5cGVOdW1i
ZXIsIHQwCisgICAgZnAyZCB0MCwgZnQwCisgICAgZG91YmxlQ29tcGFyZShmdDAsIGZ0MSwgLmp1
bXBUYXJnZXQpCisgICAgZGlzcGF0Y2goNCkKKworLm9wMk5vdEludDoKKyAgICBjaTJkIHQwLCBm
dDAKKyAgICBidHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFkZHAgdGFnVHlwZU51
bWJlciwgdDEKKyAgICBmcDJkIHQxLCBmdDEKKyAgICBkb3VibGVDb21wYXJlKGZ0MCwgZnQxLCAu
anVtcFRhcmdldCkKKyAgICBkaXNwYXRjaCg0KQorCisuanVtcFRhcmdldDoKKyAgICBkaXNwYXRj
aEludCgyNFtQQiwgUEMsIDhdKQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgp
CisgICAgZGlzcGF0Y2goMCkKK2VuZAorCisKK19sbGludF9vcF9zd2l0Y2hfaW1tOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMg
OFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQxKQorICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9yYXJlRGF0
YVt0Ml0sIHQyCisgICAgbXVsaSBzaXplb2YgU2ltcGxlSnVtcFRhYmxlLCB0MyAgICAjIEZJWE1F
OiB3b3VsZCBiZSBuaWNlIHRvIHBlZXBob2xlIHRoaXMhCisgICAgbG9hZHAgQ29kZUJsb2NrOjpS
YXJlRGF0YTo6bV9pbW1lZGlhdGVTd2l0Y2hKdW1wVGFibGVzICsgVmVjdG9yQnVmZmVyT2Zmc2V0
W3QyXSwgdDIKKyAgICBhZGRwIHQzLCB0MgorICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLm9w
U3dpdGNoSW1tTm90SW50CisgICAgc3ViaSBTaW1wbGVKdW1wVGFibGU6Om1pblt0Ml0sIHQxCisg
ICAgYmlhZXEgdDEsIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvclNpemVP
ZmZzZXRbdDJdLCAub3BTd2l0Y2hJbW1GYWxsVGhyb3VnaAorICAgIGxvYWRwIFNpbXBsZUp1bXBU
YWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQzCisgICAgbG9h
ZGlzIFt0MywgdDEsIDRdLCB0MQorICAgIGJ0aXogdDEsIC5vcFN3aXRjaEltbUZhbGxUaHJvdWdo
CisgICAgZGlzcGF0Y2godDEpCisKKy5vcFN3aXRjaEltbU5vdEludDoKKyAgICBidHBueiB0MSwg
dGFnVHlwZU51bWJlciwgLm9wU3dpdGNoSW1tU2xvdyAgICMgR28gc2xvdyBpZiBpdCdzIGEgZG91
YmxlLgorLm9wU3dpdGNoSW1tRmFsbFRocm91Z2g6CisgICAgZGlzcGF0Y2hJbnQoMTZbUEIsIFBD
LCA4XSkKKworLm9wU3dpdGNoSW1tU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9zd2l0Y2hfaW1tKQorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X29wX3N3aXRjaF9j
aGFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDIK
KyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
dDIsIHQxKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9j
azo6bV9yYXJlRGF0YVt0Ml0sIHQyCisgICAgbXVsaSBzaXplb2YgU2ltcGxlSnVtcFRhYmxlLCB0
MworICAgIGxvYWRwIENvZGVCbG9jazo6UmFyZURhdGE6Om1fY2hhcmFjdGVyU3dpdGNoSnVtcFRh
YmxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQyCisgICAgYWRkcCB0MywgdDIKKyAgICBi
dHBueiB0MSwgdGFnTWFzaywgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAgSlND
ZWxsOjptX3N0cnVjdHVyZVt0MV0sIHQwCisgICAgYmJuZXEgU3RydWN0dXJlOjptX3R5cGVJbmZv
ICsgVHlwZUluZm86Om1fdHlwZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFN3aXRjaENoYXJGYWxsVGhy
b3VnaAorICAgIGxvYWRwIEpTU3RyaW5nOjptX3ZhbHVlW3QxXSwgdDAKKyAgICBiaW5lcSBTdHJp
bmdJbXBsOjptX2xlbmd0aFt0MF0sIDEsIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAorICAgIGxv
YWRwIFN0cmluZ0ltcGw6Om1fZGF0YThbdDBdLCB0MQorICAgIGJ0aW56IFN0cmluZ0ltcGw6Om1f
aGFzaEFuZEZsYWdzW3QwXSwgSGFzaEZsYWdzOEJpdEJ1ZmZlciwgLm9wU3dpdGNoQ2hhcjhCaXQK
KyAgICBsb2FkaCBbdDFdLCB0MAorICAgIGptcCAub3BTd2l0Y2hDaGFyUmVhZHkKKy5vcFN3aXRj
aENoYXI4Qml0OgorICAgIGxvYWRiIFt0MV0sIHQwCisub3BTd2l0Y2hDaGFyUmVhZHk6CisgICAg
c3ViaSBTaW1wbGVKdW1wVGFibGU6Om1pblt0Ml0sIHQwCisgICAgYmlhZXEgdDAsIFNpbXBsZUp1
bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvclNpemVPZmZzZXRbdDJdLCAub3BTd2l0Y2hD
aGFyRmFsbFRocm91Z2gKKyAgICBsb2FkcCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMg
KyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0MgorICAgIGxvYWRpcyBbdDIsIHQwLCA0XSwgdDEK
KyAgICBidGl6IHQxLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKKyAgICBkaXNwYXRjaCh0MSkK
KworLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoOgorICAgIGRpc3BhdGNoSW50KDE2W1BCLCBQQywg
OF0pCisKKworX2xsaW50X29wX25ld19mdW5jOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBi
dGl6IDI0W1BCLCBQQywgOF0sIC5vcE5ld0Z1bmNVbmNoZWNrZWQKKyAgICBsb2FkaXMgOFtQQiwg
UEMsIDhdLCB0MQorICAgIGJ0cG56IFtjZnIsIHQxLCA4XSwgLm9wTmV3RnVuY0RvbmUKKy5vcE5l
d0Z1bmNVbmNoZWNrZWQ6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1
bmMpCisub3BOZXdGdW5jRG9uZToKKyAgICBkaXNwYXRjaCg0KQorCisKK21hY3JvIGRvQ2FsbChz
bG93UGF0aCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIDMyW1BCLCBQ
QywgOF0sIHQxCisgICAgbG9hZHAgTExJbnRDYWxsTGlua0luZm86OmNhbGxlZVt0MV0sIHQyCisg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDMpCisgICAgYnBuZXEgdDMsIHQyLCAub3BD
YWxsU2xvdworICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MworICAgIGFkZGkgNiwgUEMKKyAg
ICBsc2hpZnRpIDMsIHQzCisgICAgYWRkcCBjZnIsIHQzCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6
bV9zY29wZUNoYWluW3QyXSwgdDAKKyAgICBzdG9yZXAgdDIsIENhbGxlZVt0M10KKyAgICBzdG9y
ZXAgdDAsIFNjb3BlQ2hhaW5bdDNdCisgICAgbG9hZGlzIDE2IC0gNDhbUEIsIFBDLCA4XSwgdDIK
KyAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQorICAgIHN0b3Jl
cCBjZnIsIENhbGxlckZyYW1lW3QzXQorICAgIHN0b3JlaSB0MiwgQXJndW1lbnRDb3VudCArIFBh
eWxvYWRPZmZzZXRbdDNdCisgICAgbW92ZSB0MywgY2ZyCisgICAgY2FsbCBMTEludENhbGxMaW5r
SW5mbzo6bWFjaGluZUNvZGVUYXJnZXRbdDFdCisgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQorCisu
b3BDYWxsU2xvdzoKKyAgICBzbG93UGF0aEZvckNhbGwoNiwgc2xvd1BhdGgpCitlbmQKKworCitf
bGxpbnRfb3BfdGVhcl9vZmZfYWN0aXZhdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDEKKyAg
ICBidHBueiBbY2ZyLCB0MCwgOF0sIC5vcFRlYXJPZmZBY3RpdmF0aW9uQ3JlYXRlZAorICAgIGJ0
cHogW2NmciwgdDEsIDhdLCAub3BUZWFyT2ZmQWN0aXZhdGlvbk5vdENyZWF0ZWQKKy5vcFRlYXJP
ZmZBY3RpdmF0aW9uQ3JlYXRlZDoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90
ZWFyX29mZl9hY3RpdmF0aW9uKQorLm9wVGVhck9mZkFjdGl2YXRpb25Ob3RDcmVhdGVkOgorICAg
IGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX3RlYXJfb2ZmX2FyZ3VtZW50czoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBzdWJpIDEsIHQw
ICAgIyBHZXQgdGhlIHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3RlcgorICAgIGJ0cHogW2Nmciwg
dDAsIDhdLCAub3BUZWFyT2ZmQXJndW1lbnRzTm90Q3JlYXRlZAorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX3RlYXJfb2ZmX2FyZ3VtZW50cykKKy5vcFRlYXJPZmZBcmd1bWVudHNO
b3RDcmVhdGVkOgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX3JldDoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQor
ICAgIGRvUmV0dXJuKCkKKworCitfbGxpbnRfb3BfY2FsbF9wdXRfcmVzdWx0OgorICAgIGxvYWRp
cyA4W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZHAgMTZbUEIsIFBDLCA4XSwgdDMKKyAgICBzdG9y
ZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIHZhbHVlUHJvZmlsZSh0MCwgdDMpCisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX3JldF9vYmplY3Rfb3Jf
dGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxv
Z3VlKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUodDIsIHQwKQorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAub3BSZXRPYmplY3RPclRoaXNO
b3RPYmplY3QKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDIKKyAgICBiYmIg
U3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0Ml0sIE9iamVjdFR5cGUs
IC5vcFJldE9iamVjdE9yVGhpc05vdE9iamVjdAorICAgIGRvUmV0dXJuKCkKKworLm9wUmV0T2Jq
ZWN0T3JUaGlzTm90T2JqZWN0OgorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGRvUmV0dXJuKCkKKworCitfbGxpbnRf
b3BfdG9fcHJpbWl0aXZlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIs
IFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUodDIsIHQwKQorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAub3BUb1ByaW1pdGl2
ZUlzSW1tCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQyCisgICAgYmJuZXEg
U3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0Ml0sIFN0cmluZ1R5cGUs
IC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2UKKy5vcFRvUHJpbWl0aXZlSXNJbW06CisgICAgc3RvcmVw
IHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BUb1ByaW1pdGl2ZVNsb3dD
YXNlOgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RvX3ByaW1pdGl2ZSkKKyAg
ICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9uZXh0X3BuYW1lOgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaXMgMzJbUEIsIFBD
LCA4XSwgdDIKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MSkKKyAgICBhc3NlcnROb3RDb25zdGFu
dCh0MikKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdLCB0MAorICAgIGJpZXEg
dDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0sIC5vcE5leHRQbmFtZUVuZAorICAgIGxvYWRp
cyA0MFtQQiwgUEMsIDhdLCB0MgorICAgIGFzc2VydE5vdENvbnN0YW50KHQyKQorICAgIGxvYWRw
IFtjZnIsIHQyLCA4XSwgdDIKKyAgICBsb2FkcCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjptX2pz
U3RyaW5nc1t0Ml0sIHQzCisgICAgbG9hZHAgW3QzLCB0MCwgOF0sIHQzCisgICAgYWRkaSAxLCB0
MAorICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQorICAgIGxvYWRpcyA4
W1BCLCBQQywgOF0sIHQxCisgICAgc3RvcmVwIHQzLCBbY2ZyLCB0MSwgOF0KKyAgICBsb2FkaXMg
MTZbUEIsIFBDLCA4XSwgdDMKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MykKKyAgICBsb2FkcCBb
Y2ZyLCB0MywgOF0sIHQzCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0M10sIHQxCisg
ICAgYnBuZXEgdDEsIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6Om1fY2FjaGVkU3RydWN0dXJlW3Qy
XSwgLm9wTmV4dFBuYW1lU2xvdworICAgIGxvYWRwIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6Om1f
Y2FjaGVkUHJvdG90eXBlQ2hhaW5bdDJdLCB0MAorICAgIGxvYWRwIFN0cnVjdHVyZUNoYWluOjpt
X3ZlY3Rvclt0MF0sIHQwCisgICAgYnRweiBbdDBdLCAub3BOZXh0UG5hbWVUYXJnZXQKKy5vcE5l
eHRQbmFtZUNoZWNrUHJvdG90eXBlTG9vcDoKKyAgICBicGVxIFN0cnVjdHVyZTo6bV9wcm90b3R5
cGVbdDFdLCBWYWx1ZU51bGwsIC5vcE5leHRQbmFtZVNsb3cKKyAgICBsb2FkcCBTdHJ1Y3R1cmU6
Om1fcHJvdG90eXBlW3QxXSwgdDIKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QyXSwg
dDEKKyAgICBicG5lcSB0MSwgW3QwXSwgLm9wTmV4dFBuYW1lU2xvdworICAgIGFkZHAgOCwgdDAK
KyAgICBidHBueiBbdDBdLCAub3BOZXh0UG5hbWVDaGVja1Byb3RvdHlwZUxvb3AKKy5vcE5leHRQ
bmFtZVRhcmdldDoKKyAgICBkaXNwYXRjaEludCg0OFtQQiwgUEMsIDhdKQorCisub3BOZXh0UG5h
bWVFbmQ6CisgICAgZGlzcGF0Y2goNykKKworLm9wTmV4dFBuYW1lU2xvdzoKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXh0X3BuYW1lKSAjIFRoaXMgZWl0aGVyIGtlZXBzIHRo
ZSBQQyB3aGVyZSBpdCB3YXMgKGNhdXNpbmcgdXMgdG8gbG9vcCkgb3Igc2V0cyBpdCB0byB0YXJn
ZXQuCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfb3BfY2F0Y2g6CisgICAgIyBUaGlzIGlz
IHdoZXJlIHdlIGVuZCB1cCBmcm9tIHRoZSBKSVQncyB0aHJvdyB0cmFtcG9saW5lIChiZWNhdXNl
IHRoZQorICAgICMgbWFjaGluZSBjb2RlIHJldHVybiBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9s
bGludF9vcF9jYXRjaCksIGFuZCBmcm9tCisgICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0
cmFtcG9saW5lIChzZWUgX2xsaW50X3Rocm93X3RyYW1wb2xpbmUpLgorICAgICMgVGhlIEpJVCB0
aHJvd2luZyBwcm90b2NvbCBjYWxscyBmb3IgdGhlIGNmciB0byBiZSBpbiB0MC4gVGhlIHRocm93
aW5nCisgICAgIyBjb2RlIG11c3QgaGF2ZSBrbm93biB0aGF0IHdlIHdlcmUgdGhyb3dpbmcgdG8g
dGhlIGludGVycHJldGVyLCBhbmQgaGF2ZQorICAgICMgc2V0IEpTR2xvYmFsRGF0YTo6dGFyZ2V0
SW50ZXJwcmV0ZXJQQ0ZvclRocm93LgorICAgIG1vdmUgdDAsIGNmcgorICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCBQQgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbUEJdLCBQ
QgorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MworICAgIGxvYWRw
IEpTR2xvYmFsRGF0YTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93W3QzXSwgUEMKKyAgICBz
dWJwIFBCLCBQQworICAgIHVyc2hpZnRwIDMsIFBDCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpl
eGNlcHRpb25bdDNdLCB0MAorICAgIHN0b3JlcCAwLCBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvblt0
M10KKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MgorICAgIHN0b3JlcCB0MCwgW2NmciwgdDIs
IDhdCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29w
X2pzcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAK
KyAgICBhZGRpIDMsIFBDLCB0MQorICAgIHN0b3JlaSB0MSwgW2NmciwgdDAsIDhdCisgICAgZGlz
cGF0Y2hJbnQoMTZbUEIsIFBDLCA4XSkKKworCitfbGxpbnRfb3Bfc3JldDoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaSBbY2ZyLCB0
MCwgOF0sIFBDCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfb3BfZW5kOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQorICAgIGxvYWRp
cyA4W1BCLCBQQywgOF0sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCisgICAgbG9hZHAg
W2NmciwgdDAsIDhdLCB0MAorICAgIGRvUmV0dXJuKCkKKworCitfbGxpbnRfdGhyb3dfZnJvbV9z
bG93X3BhdGhfdHJhbXBvbGluZToKKyAgICAjIFdoZW4gdGhyb3dpbmcgZnJvbSB0aGUgaW50ZXJw
cmV0ZXIgKGkuZS4gdGhyb3dpbmcgZnJvbSBMTEludFNsb3dQYXRocyksIHNvCisgICAgIyB0aGUg
dGhyb3cgdGFyZ2V0IGlzIG5vdCBuZWNlc3NhcmlseSBpbnRlcnByZXRlZCBjb2RlLCB3ZSBjb21l
IHRvIGhlcmUuCisgICAgIyBUaGlzIGVzc2VudGlhbGx5IGVtdWxhdGVzIHRoZSBKSVQncyB0aHJv
d2luZyBwcm90b2NvbC4KKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwg
dDEKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAg
ICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0MV0KKworCitfbGxp
bnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJl
c3NBZnRlckNhbGwodDIpCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0s
IHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJvd1t0MV0sIHQwCisg
ICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3dbdDFdCisKKworbWFj
cm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJsZU9mZnNldFRvRnVuY3Rpb24pCisgICAg
c3RvcmVwIDAsIENvZGVCbG9ja1tjZnJdCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgdDAK
KyAgICBsb2FkcCBTY29wZUNoYWluW3QwXSwgdDEKKyAgICBzdG9yZXAgdDEsIFNjb3BlQ2hhaW5b
Y2ZyXQorICAgIHBlZWsgMCwgdDEKKyAgICBzdG9yZXAgdDEsIFJldHVyblBDW2Nmcl0KKyAgICBt
b3ZlIGNmciwgdDUgICMgdDUgPSByZGkKKyAgICBzdWJwIDE2IC0gOCwgc3AKKyAgICBsb2FkcCBD
YWxsZWVbY2ZyXSwgdDQgIyB0NCA9IHJzaQorICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0
YWJsZVt0NF0sIHQxCisgICAgbW92ZSB0MCwgY2ZyICMgUmVzdG9yZSBjZnIgdG8gYXZvaWQgbG9h
ZGluZyBmcm9tIHN0YWNrCisgICAgY2FsbCBleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvblt0MV0K
KyAgICBhZGRwIDE2IC0gOCwgc3AKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRh
ICsgOFtzcF0sIHQzCisgICAgYnRwbnogSlNHbG9iYWxEYXRhOjpleGNlcHRpb25bdDNdLCAuZXhj
ZXB0aW9uCisgICAgcmV0CisuZXhjZXB0aW9uOgorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0Fm
dGVyQ2FsbCh0MSkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Rocm93X2Zyb21fbmF0aXZlX2Nh
bGwpCisgICAgam1wIF9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lCitlbmQK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw5ICsy
MSw4MjcgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKKyMgRmlyc3QgY29tZSB0aGUgY29tbW9uIHByb3RvY29scyB0aGF0IGJvdGggaW50ZXJw
cmV0ZXJzIHVzZS4gTm90ZSB0aGF0IGVhY2gKKyMgb2YgdGhlc2UgbXVzdCBoYXZlIGFuIEFTU0VS
VCgpIGluIExMSW50RGF0YS5jcHAKKworIyBUaGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRjaCBp
bnRlcnByZXRlci9SZWdpc3RlckZpbGUuaC4KK2NvbnN0IENhbGxGcmFtZUhlYWRlclNpemUgPSA0
OAorY29uc3QgQXJndW1lbnRDb3VudCA9IC00OAorY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAKK2Nv
bnN0IENhbGxlZSA9IC0zMgorY29uc3QgU2NvcGVDaGFpbiA9IC0yNAorY29uc3QgUmV0dXJuUEMg
PSAtMTYKK2NvbnN0IENvZGVCbG9jayA9IC04CisKK2NvbnN0IFRoaXNBcmd1bWVudE9mZnNldCA9
IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0gOAorCisjIFNvbWUgcmVnaXN0ZXIgY29udmVudGlvbnMu
CitpZiBKU1ZBTFVFNjQKKyAgICAjIC0gVXNlIGEgcGFpciBvZiByZWdpc3RlcnMgdG8gcmVwcmVz
ZW50IHRoZSBQQzogb25lIHJlZ2lzdGVyIGZvciB0aGUKKyAgICAjICAgYmFzZSBvZiB0aGUgcmVn
aXN0ZXIgZmlsZSwgYW5kIG9uZSByZWdpc3RlciBmb3IgdGhlIGluZGV4LgorICAgICMgLSBUaGUg
UEMgYmFzZSAob3IgUEIgZm9yIHNob3J0KSBzaG91bGQgYmUgc3RvcmVkIGluIHRoZSBjc3IuIEl0
IHdpbGwKKyAgICAjICAgZ2V0IGNsb2JiZXJlZCBvbiBjYWxscyB0byBvdGhlciBKUyBjb2RlLCBi
dXQgd2lsbCBnZXQgc2F2ZWQgb24gY2FsbHMKKyAgICAjICAgdG8gQyBmdW5jdGlvbnMuCisgICAg
IyAtIEMgY2FsbHMgYXJlIHN0aWxsIGdpdmVuIHRoZSBJbnN0cnVjdGlvbiogcmF0aGVyIHRoYW4g
dGhlIFBDIGluZGV4LgorICAgICMgICBUaGlzIHJlcXVpcmVzIGFuIGFkZCBiZWZvcmUgdGhlIGNh
bGwsIGFuZCBhIHN1YiBhZnRlci4KKyAgICBjb25zdCBQQyA9IHQ0CisgICAgY29uc3QgUEIgPSB0
NgorICAgIGNvbnN0IHRhZ1R5cGVOdW1iZXIgPSBjc3IxCisgICAgY29uc3QgdGFnTWFzayA9IGNz
cjIKK2Vsc2UKKyAgICBjb25zdCBQQyA9IHQ0CitlbmQKKworIyBDb25zdGFudHMgZm9yIHJlYXNv
bmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRhdGlvbi4KK2lmIEJJR19FTkRJQU4KKyAgICBjb25z
dCBUYWdPZmZzZXQgPSAwCisgICAgY29uc3QgUGF5bG9hZE9mZnNldCA9IDQKK2Vsc2UKKyAgICBj
b25zdCBUYWdPZmZzZXQgPSA0CisgICAgY29uc3QgUGF5bG9hZE9mZnNldCA9IDAKK2VuZAorCisj
IFR5cGUgY29uc3RhbnRzLgorY29uc3QgU3RyaW5nVHlwZSA9IDUKK2NvbnN0IE9iamVjdFR5cGUg
PSAxMworCisjIFR5cGUgZmxhZ3MgY29uc3RhbnRzLgorY29uc3QgTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCA9IDEKK2NvbnN0IEltcGxlbWVudHNIYXNJbnN0YW5jZSA9IDIKK2NvbnN0IEltcGxlbWVu
dHNEZWZhdWx0SGFzSW5zdGFuY2UgPSA4CisKKyMgQnl0ZWNvZGUgb3BlcmFuZCBjb25zdGFudHMu
Citjb25zdCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCA9IDB4NDAwMDAwMDAKKworIyBDb2Rl
IHR5cGUgY29uc3RhbnRzLgorY29uc3QgR2xvYmFsQ29kZSA9IDAKK2NvbnN0IEV2YWxDb2RlID0g
MQorY29uc3QgRnVuY3Rpb25Db2RlID0gMgorCisjIFRoZSBpbnRlcnByZXRlciBzdGVhbHMgdGhl
IHRhZyB3b3JkIG9mIHRoZSBhcmd1bWVudCBjb3VudC4KK2NvbnN0IExMSW50UmV0dXJuUEMgPSBB
cmd1bWVudENvdW50ICsgVGFnT2Zmc2V0CisKKyMgU3RyaW5nIGZsYWdzLgorY29uc3QgSGFzaEZs
YWdzOEJpdEJ1ZmZlciA9IDY0CisKKyMgQWxsb2NhdGlvbiBjb25zdGFudHMKK2lmIEpTVkFMVUU2
NAorICAgIGNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDEKK2Vsc2UKKyAgICBj
b25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXggPSAzCitlbmQKKworIyBUaGlzIG11c3Qg
bWF0Y2ggd3RmL1ZlY3Rvci5oCitpZiBKU1ZBTFVFNjQKKyAgICBjb25zdCBWZWN0b3JTaXplT2Zm
c2V0ID0gMAorICAgIGNvbnN0IFZlY3RvckJ1ZmZlck9mZnNldCA9IDgKK2Vsc2UKKyAgICBjb25z
dCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorICAgIGNvbnN0IFZlY3RvckJ1ZmZlck9mZnNldCA9IDQK
K2VuZAorCisKKyMgU29tZSBjb21tb24gdXRpbGl0aWVzLgorbWFjcm8gY3Jhc2goKQorICAgIHN0
b3JlaSAwLCAweGJiYWRiZWVmW10KKyAgICBtb3ZlIDAsIHQwCisgICAgY2FsbCB0MAorZW5kCisK
K21hY3JvIGFzc2VydChhc3NlcnRpb24pCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAg
YXNzZXJ0aW9uKC5vaykKKyAgICAgICAgY3Jhc2goKQorICAgIC5vazoKKyAgICBlbmQKK2VuZAor
CittYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3Rl
cikKKyAgICBpZiBBUk12NworICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCisg
ICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3Rlcgor
ICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBlbmQKK2VuZAorCittYWNybyByZXN0b3JlUmV0
dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VSZWdpc3RlcikKKyAgICBpZiBBUk12NworICAg
ICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAg
ICAgICAgcHVzaCBzb3VyY2VSZWdpc3RlcgorICAgIGVsc2UKKyAgICAgICAgZXJyb3IKKyAgICBl
bmQKK2VuZAorCittYWNybyB0cmFjZUV4ZWN1dGlvbigpCisgICAgaWYgRVhFQ1VUSU9OX1RSQUNJ
TkcKKyAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFjZSkKKyAgICBlbmQKK2VuZAorCitt
YWNybyBzbG93UGF0aEZvckNhbGwoYWR2YW5jZSwgc2xvd1BhdGgpCisgICAgY2FsbENhbGxTbG93
UGF0aCgKKyAgICAgICAgYWR2YW5jZSwKKyAgICAgICAgc2xvd1BhdGgsCisgICAgICAgIG1hY3Jv
IChjYWxsZWUpCisgICAgICAgICAgICBjYWxsIGNhbGxlZQorICAgICAgICAgICAgZGlzcGF0Y2hB
ZnRlckNhbGwoKQorICAgICAgICBlbmQpCitlbmQKKworbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVChp
bmNyZW1lbnQsIGFjdGlvbikKKyAgICBpZiBKSVRfRU5BQkxFRAorICAgICAgICBsb2FkcCBDb2Rl
QmxvY2tbY2ZyXSwgdDAKKyAgICAgICAgYmFkZGlzIGluY3JlbWVudCwgQ29kZUJsb2NrOjptX2xs
aW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDBdLCAuY29u
dGludWUKKyAgICAgICAgYWN0aW9uKCkKKyAgICAuY29udGludWU6CisgICAgZW5kCitlbmQKKwor
bWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBjaGVja1N3aXRjaFRvSklU
KAorICAgICAgICAxMCwKKyAgICAgICAgbWFjcm8gKCkKKyAgICAgICAgICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfcmVwbGFjZSkKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIGFzc2VydE5vdENv
bnN0YW50KGluZGV4KQorICAgIGFzc2VydChtYWNybyAob2spIGJpbHQgaW5kZXgsIEZpcnN0Q29u
c3RhbnRSZWdpc3RlckluZGV4LCBvayBlbmQpCitlbmQKKworbWFjcm8gZnVuY3Rpb25Gb3JDYWxs
Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0
YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRS
ZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjpt
X2NvZGVCbG9ja0ZvckNhbGxbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisK
K21hY3JvIGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVy
KQorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEpTRnVu
Y3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCisgICAg
bG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0YXJnZXRS
ZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxv
Y2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHRhcmdl
dFJlZ2lzdGVyCitlbmQKKworbWFjcm8gZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVn
aXN0ZXIpCisgICAgc3RvcmVwIHNvdXJjZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQorZW5kCisK
K21hY3JvIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQorICAgICMg
Tm90aGluZyB0byBkbyEKK2VuZAorCisjIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8g
ZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKKyMgaW4g
dDEuIE1heSBhbHNvIHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgorbWFjcm8gcHJvbG9ndWUo
Y29kZUJsb2NrR2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQ
YXRoKQorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKKyAgICAKKyAgICAj
IFNldCB1cCB0aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KKyAgICBz
dG9yZXAgdDIsIFJldHVyblBDW2Nmcl0KKyAgICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAgICAg
ICBjYWxsU2xvd1BhdGgodHJhY2VTbG93UGF0aCkKKyAgICBlbmQKKyAgICBjb2RlQmxvY2tHZXR0
ZXIodDEpCisgICAgaWYgSklUX0VOQUJMRUQKKyAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6
bV9sbGludEV4ZWN1dGVDb3VudGVyICsgRXhlY3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QxXSwg
LmNvbnRpbnVlCisgICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKKyAgICAgICAg
bW92ZSB0MSwgY2ZyCisgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAgICAgIGxvYWRwIFJl
dHVyblBDW2Nmcl0sIHQyCisgICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHQyKQorICAgICAgICBqbXAgdDAKKyAgICAucmVjb3ZlcjoKKyAgICAgICAgY29kZUJsb2NrR2V0
dGVyKHQxKQorICAgIC5jb250aW51ZToKKyAgICBlbmQKKyAgICBjb2RlQmxvY2tTZXR0ZXIodDEp
CisgICAgCisgICAgIyBTZXQgdXAgdGhlIFBDLgorICAgIGlmIEpTVkFMVUU2NAorICAgICAgICBs
b2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEIKKyAgICAgICAgbW92ZSAwLCBQ
QworICAgIGVsc2UKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0s
IFBDCisgICAgZW5kCitlbmQKKworIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQxLCB3
aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KKyMgTXVzdCBjYWxsIGRpc3Bh
dGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KK21hY3JvIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24o
cHJvZmlsZUFyZ1NraXApCisgICAgaWYgVkFMVUVfUFJPRklMRVIKKyAgICAgICAgIyBQcm9maWxl
IHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gY2hvaWNlIGJ1dCB0byBk
byB0aGlzLiBUaGlzCisgICAgICAgICMgY29kZSBpcyBwcmV0dHkgaG9ycmVuZG91cyBiZWNhdXNl
IG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5nIGJldHdlZW4KKyAgICAgICAgIyBhcmd1bWVu
dHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBzaW1wbGUgbG9vcC1k
b3duLXRvLXplcm8KKyAgICAgICAgIyBsb29wLCBhbmQgdGhlIGRlc2lyZSB0byB1c2Ugb25seSB0
aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2VydmUgdGhlIFBDIGFuZAorICAgICAgICAjIHRo
ZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUgc2hvdWxkIGJlIHJld3Jp
dHRlbiBpbiBhIG1vcmUKKyAgICAgICAgIyBvcHRpbWFsIHdheSBmb3IgYXJjaGl0ZWN0dXJlcyB0
aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJsZQorICAgICAgICAjIGZv
ciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnByZXRlci4KKyAgICAgICAgbG9hZGkgQ29kZUJs
b2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAorICAgICAgICBhZGRwIC1wcm9maWxlQXJnU2tp
cCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0aGUgcGVlcGhvbGUKKyAg
ICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYnBndGVxIHQwLCAwLCBvayBlbmQpCisgICAgICAgIGJ0
cHogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9h
cmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDFdLCB0MworICAgICAg
ICBtdWxwIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFhaGhoaCEgTmVlZCBzdHJl
bmd0aCByZWR1Y3Rpb24hCisgICAgICAgIG5lZ3AgdDAKKyAgICAgICAgbHNoaWZ0cCAzLCB0MAor
ICAgICAgICBhZGRwIHQyLCB0MworICAgIC5hcmd1bWVudFByb2ZpbGVMb29wOgorICAgICAgICBp
ZiBKU1ZBTFVFNjQKKyAgICAgICAgICAgIGxvYWRwIFRoaXNBcmd1bWVudE9mZnNldCArIDggLSBw
cm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBzdWJwIHNpemVvZiBW
YWx1ZVByb2ZpbGUsIHQzCisgICAgICAgICAgICBzdG9yZXAgdDIsIHByb2ZpbGVBcmdTa2lwICog
c2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzW3QzXQorICAgICAg
ICBlbHNlCisgICAgICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXQg
KyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgorICAgICAgICAgICAgc3VicCBz
aXplb2YgVmFsdWVQcm9maWxlLCB0MworICAgICAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJn
U2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFRh
Z09mZnNldFt0M10KKyAgICAgICAgICAgIGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFBheWxv
YWRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgorICAgICAgICAg
ICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1
ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRPZmZzZXRbdDNdCisgICAgICAgIGVuZAorICAg
ICAgICBiYWRkcG56IDgsIHQwLCAuYXJndW1lbnRQcm9maWxlTG9vcAorICAgIC5hcmd1bWVudFBy
b2ZpbGVEb25lOgorICAgIGVuZAorICAgICAgICAKKyAgICAjIENoZWNrIHN0YWNrIGhlaWdodC4K
KyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2FsbGVlUmVnaXN0ZXJzW3QxXSwgdDAKKyAgICBs
b2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQyCisgICAgbG9hZHAgSlNHbG9iYWxE
YXRhOjppbnRlcnByZXRlclt0Ml0sIHQyICAgIyBGSVhNRTogQ2FuIGdldCB0byB0aGUgUmVnaXN0
ZXJGaWxlIGZyb20gdGhlIEpJVFN0YWNrRnJhbWUKKyAgICBsc2hpZnRpIDMsIHQwCisgICAgYWRk
cCB0MCwgY2ZyLCB0MAorICAgIGJwYWVxIEludGVycHJldGVyOjptX3JlZ2lzdGVyRmlsZSArIFJl
Z2lzdGVyRmlsZTo6bV9lbmRbdDJdLCB0MCwgLnN0YWNrSGVpZ2h0T0sKKworICAgICMgU3RhY2sg
aGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8gY2FsbCBhIHNsb3dfcGF0aC4KKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2ZpbGVfY2hlY2spCisuc3RhY2tIZWlnaHRPSzoKK2Vu
ZAorCittYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5m
b09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2Up
CisgICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKKyAgICAgICAgam1wIHNsb3dDYXNlCisgICAg
ZWxzZQorICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0KKyAgICAgICAgICAgIEpT
R2xvYmFsRGF0YTo6aGVhcCArCisgICAgICAgICAgICBIZWFwOjptX29iamVjdFNwYWNlICsKKyAg
ICAgICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKKyAgICAgICAgICAgIE1hcmtl
ZFNwYWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKworICAgICAgICAgICAgc2l6ZUNs
YXNzSW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCisgICAgICAgIAorICAgICAgICAjIEZJ
WE1FOiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9hZCBmcm9tIHRoZSBzdGFj
ay4KKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gxCisgICAgICAgIGxvYWRw
IENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRjaDEKKyAgICAgICAgCisg
ICAgICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LiAgICAKKyAgICAgICAg
bG9hZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVD
ZWxsW3NjcmF0Y2gxXSwgcmVzdWx0CisgICAgICAgIGJ0cHogcmVzdWx0LCBzbG93Q2FzZQorICAg
ICAgICAKKyAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuCisg
ICAgICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgorICAgICAgICBzdG9yZXAgc2NyYXRjaDIs
IG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtz
Y3JhdGNoMV0KKyAgICAKKyAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmplY3QuCisgICAgICAg
IGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCisgICAgICAgIHN0b3Jl
cCBzY3JhdGNoMiwgW3Jlc3VsdF0KKyAgICAgICAgc3RvcmVwIHN0cnVjdHVyZSwgSlNDZWxsOjpt
X3N0cnVjdHVyZVtyZXN1bHRdCisgICAgICAgIHN0b3JlcCAwLCBKU09iamVjdDo6bV9pbmhlcml0
b3JJRFtyZXN1bHRdCisgICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0
Y2gxCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdl
W3Jlc3VsdF0KKyAgICBlbmQKK2VuZAorCittYWNybyBkb1JldHVybigpCisgICAgbG9hZHAgUmV0
dXJuUENbY2ZyXSwgdDIKKyAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKKyAgICByZXN0
b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAgICByZXQKK2VuZAorCisKKyMgSW5k
aWNhdGUgdGhlIGJlZ2lubmluZyBvZiBMTEludC4KK19sbGludF9iZWdpbjoKKyAgICBjcmFzaCgp
CisKKworX2xsaW50X3Byb2dyYW1fcHJvbG9ndWU6CisgICAgcHJvbG9ndWUobm90RnVuY3Rpb25D
b2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlf
b3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRf
ZXZhbF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwg
bm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFj
ZV9wcm9sb2d1ZSkKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9mdW5jdGlvbl9mb3JfY2Fs
bF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIs
IGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9j
YWxsLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NhbGwpCisuZnVuY3Rpb25G
b3JDYWxsQmVnaW46CisgICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigwKQorICAgIGRpc3BhdGNo
KDApCisgICAgCisKK19sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlOgorICAg
IHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNv
ZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0LCBf
bGxpbnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCkKKy5mdW5jdGlvbkZv
ckNvbnN0cnVjdEJlZ2luOgorICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMSkKKyAgICBkaXNw
YXRjaCgwKQorICAgIAorCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6Cisg
ICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVC
bG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eUNoZWNr
LCBfbGxpbnRfdHJhY2VfYXJpdHlDaGVja19mb3JfY2FsbCkKKyAgICBmdW5jdGlvbkFyaXR5Q2hl
Y2soLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVj
aykKKworCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjazoKKyAgICBw
cm9sb2d1ZShmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2Rl
QmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0
eUNoZWNrLCBfbGxpbnRfdHJhY2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQorICAgIGZ1bmN0
aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3dfcGF0
aF9jb25zdHJ1Y3RfYXJpdHlDaGVjaykKKworCisjIFZhbHVlLXJlcHJlc2VudGF0aW9uLXNwZWNp
ZmljIGNvZGUuCiBpZiBKU1ZBTFVFNjQKICAgICBpbmNsdWRlIExvd0xldmVsSW50ZXJwcmV0ZXI2
NAogZWxzZQogICAgIGluY2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0CiBlbmQKIAorCisj
IFZhbHVlLXJlcHJlc2VudGF0aW9uLWFnbm9zdGljIGNvZGUuCitfbGxpbnRfb3BfbmV3X2FycmF5
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9uZXdfYXJyYXkpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfbmV3X2FycmF5X2J1
ZmZlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfbmV3X2FycmF5X2J1ZmZlcikKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9u
ZXdfcmVnZXhwOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9uZXdfcmVnZXhwKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2xl
c3M6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX2xlc3MpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfbGVzc2VxOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzZXEp
CisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfZ3JlYXRlcjoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcikKKyAgICBk
aXNwYXRjaCg0KQorCisKK19sbGludF9vcF9ncmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXJlcSkKKyAgICBkaXNw
YXRjaCg0KQorCisKK19sbGludF9vcF9tb2Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX21vZCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19s
bGludF9vcF90eXBlb2Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX3R5cGVvZikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9p
c191bmRlZmluZWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX2lzX3VuZGVmaW5lZCkKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9v
cF9pc19ib29sZWFuOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9pc19ib29sZWFuKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29w
X2lzX251bWJlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfaXNfbnVtYmVyKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lz
X3N0cmluZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfaXNfc3RyaW5nKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX29i
amVjdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaXNfb2JqZWN0KQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX2Z1bmN0
aW9uOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9pc19mdW5jdGlvbikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9pbjoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaW4p
CisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfcmVzb2x2ZToKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZSkKKyAgICBk
aXNwYXRjaCg0KQorCisKK19sbGludF9vcF9yZXNvbHZlX3NraXA6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfc2tpcCkKKyAg
ICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9yZXNvbHZlX2Jhc2U6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfYmFzZSkK
KyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9l
bnN1cmVfcHJvcGVydHlfZXhpc3RzKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX3Jl
c29sdmVfd2l0aF9iYXNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfYmFzZSkKKyAgICBkaXNwYXRjaCg1KQorCisK
K19sbGludF9vcF9yZXNvbHZlX3dpdGhfdGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRoX3RoaXMpCisgICAgZGlz
cGF0Y2goNSkKKworCitfbGxpbnRfb3BfZGVsX2J5X2lkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxfYnlfaWQpCisgICAgZGlzcGF0
Y2goNCkKKworCitfbGxpbnRfb3BfZGVsX2J5X3ZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVsX2J5X3ZhbCkKKyAgICBkaXNwYXRj
aCg0KQorCisKK19sbGludF9vcF9wdXRfYnlfaW5kZXg6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pbmRleCkKKyAgICBkaXNw
YXRjaCg0KQorCisKK19sbGludF9vcF9wdXRfZ2V0dGVyX3NldHRlcjoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9zZXR0
ZXIpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3Bfam1wX3Njb3BlczoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfam1wX3Njb3Bl
cykKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9vcF9sb29wX2lmX3RydWU6CisgICAgbm9w
CitfbGxpbnRfb3BfanRydWU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGp1bXBUcnVlT3JG
YWxzZSgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0aW56IHZhbHVlLCB0YXJnZXQg
ZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2p0cnVlKQorCisKK19sbGludF9vcF9sb29w
X2lmX2ZhbHNlOgorICAgIG5vcAorX2xsaW50X29wX2pmYWxzZToKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAganVtcFRydWVPckZhbHNlKAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkg
YnRpeiB2YWx1ZSwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZmFsc2Up
CisKKworX2xsaW50X29wX2xvb3BfaWZfbGVzczoKKyAgICBub3AKK19sbGludF9vcF9qbGVzczoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0LCB0YXJnZXQpIGJpbHQgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAor
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2psZXNzKQorCisKK19sbGludF9vcF9qbmxlc3M6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCBy
aWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0ZXF1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmxlc3MpCisKKworX2xsaW50X29wX2xvb3Bf
aWZfZ3JlYXRlcjoKKyAgICBub3AKK19sbGludF9vcF9qZ3JlYXRlcjoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQp
IGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgdGFyZ2V0KSBiZGd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX2pncmVhdGVyKQorCisKK19sbGludF9vcF9qbmdyZWF0ZXI6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFy
Z2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0
LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXF1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAg
ICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXIpCisKKworX2xsaW50X29wX2xvb3BfaWZfbGVz
c2VxOgorICAgIG5vcAorX2xsaW50X29wX2psZXNzZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0ZXEg
bGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFy
Z2V0KSBiZGx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfamxlc3NlcSkKKworCitfbGxpbnRfb3Bfam5sZXNzZXE6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBi
aWd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHRhcmdldCkgYmRndHVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX2pubGVzc2VxKQorCisKK19sbGludF9vcF9sb29wX2lmX2dyZWF0ZXJlcToKKyAg
ICBub3AKK19sbGludF9vcF9qZ3JlYXRlcmVxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBj
b21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndGVxIGxlZnQs
IHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkg
YmRndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRo
X2pncmVhdGVyZXEpCisKKworX2xsaW50X29wX2puZ3JlYXRlcmVxOgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkg
YmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCB0YXJnZXQpIGJkbHR1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50
X3Nsb3dfcGF0aF9qbmdyZWF0ZXJlcSkKKworCitfbGxpbnRfb3BfbG9vcF9oaW50OgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCisgICAgZGlzcGF0
Y2goMSkKKworCitfbGxpbnRfb3Bfc3dpdGNoX3N0cmluZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3dpdGNoX3N0cmluZykKKyAgICBk
aXNwYXRjaCgwKQorCisKK19sbGludF9vcF9uZXdfZnVuY19leHA6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19mdW5jX2V4cCkKKyAg
ICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9jYWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBkb0NhbGwoX2xsaW50X3Nsb3dfcGF0aF9jYWxsKQorCisKK19sbGludF9vcF9jb25zdHJ1
Y3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2Nv
bnN0cnVjdCkKKworCitfbGxpbnRfb3BfY2FsbF92YXJhcmdzOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBzbG93UGF0aEZvckNhbGwoNiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX3ZhcmFyZ3Mp
CisKKworX2xsaW50X29wX2NhbGxfZXZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgCisg
ICAgIyBFdmFsIGlzIGV4ZWN1dGVkIGluIG9uZSBvZiB0d28gbW9kZXM6CisgICAgIworICAgICMg
MSkgV2UgZmluZCB0aGF0IHdlJ3JlIHJlYWxseSBpbnZva2luZyBldmFsKCkgaW4gd2hpY2ggY2Fz
ZSB0aGUKKyAgICAjICAgIGV4ZWN1dGlvbiBpcyBwZXJmb21lZCBlbnRpcmVseSBpbnNpZGUgdGhl
IHNsb3dfcGF0aCwgYW5kIGl0CisgICAgIyAgICByZXR1cm5zIHRoZSBQQyBvZiBhIGZ1bmN0aW9u
IHRoYXQganVzdCByZXR1cm5zIHRoZSByZXR1cm4gdmFsdWUKKyAgICAjICAgIHRoYXQgdGhlIGV2
YWwgcmV0dXJuZWQuCisgICAgIworICAgICMgMikgV2UgZmluZCB0aGF0IHdlJ3JlIGludm9raW5n
IHNvbWV0aGluZyBjYWxsZWQgZXZhbCgpIHRoYXQgaXMgbm90CisgICAgIyAgICB0aGUgcmVhbCBl
dmFsLiBUaGVuIHRoZSBzbG93X3BhdGggcmV0dXJucyB0aGUgUEMgb2YgdGhlIHRoaW5nIHRvCisg
ICAgIyAgICBjYWxsLCBhbmQgd2UgY2FsbCBpdC4KKyAgICAjCisgICAgIyBUaGlzIGFsbG93cyB1
cyB0byBoYW5kbGUgdHdvIGNhc2VzLCB3aGljaCB3b3VsZCByZXF1aXJlIGEgdG90YWwgb2YKKyAg
ICAjIHVwIHRvIGZvdXIgcGllY2VzIG9mIHN0YXRlIHRoYXQgY2Fubm90IGJlIGVhc2lseSBwYWNr
ZWQgaW50byB0d28KKyAgICAjIHJlZ2lzdGVycyAoQyBmdW5jdGlvbnMgY2FuIHJldHVybiB1cCB0
byB0d28gcmVnaXN0ZXJzLCBlYXNpbHkpOgorICAgICMKKyAgICAjIC0gVGhlIGNhbGwgZnJhbWUg
cmVnaXN0ZXIuIFRoaXMgbWF5IG9yIG1heSBub3QgaGF2ZSBiZWVuIG1vZGlmaWVkCisgICAgIyAg
IGJ5IHRoZSBzbG93X3BhdGgsIGJ1dCB0aGUgY29udmVudGlvbiBpcyB0aGF0IGl0IHJldHVybnMg
aXQuIEl0J3Mgbm90CisgICAgIyAgIHRvdGFsbHkgY2xlYXIgaWYgdGhhdCdzIG5lY2Vzc2FyeSwg
c2luY2UgdGhlIGNmciBpcyBjYWxsZWUgc2F2ZS4KKyAgICAjICAgQnV0IHRoYXQncyBvdXIgc3R5
bGUgaW4gdGhpcyBoZXJlIGludGVycHJldGVyIHNvIHdlIHN0aWNrIHdpdGggaXQuCisgICAgIwor
ICAgICMgLSBBIGJpdCB0byBzYXkgaWYgdGhlIHNsb3dfcGF0aCBzdWNjZXNzZnVsbHkgZXhlY3V0
ZWQgdGhlIGV2YWwgYW5kIGhhcworICAgICMgICB0aGUgcmV0dXJuIHZhbHVlLCBvciBkaWQgbm90
IGV4ZWN1dGUgdGhlIGV2YWwgYnV0IGhhcyBhIFBDIGZvciB1cworICAgICMgICB0byBjYWxsLgor
ICAgICMKKyAgICAjIC0gRWl0aGVyOgorICAgICMgICAtIFRoZSBKUyByZXR1cm4gdmFsdWUgKHR3
byByZWdpc3RlcnMpLCBvcgorICAgICMKKyAgICAjICAgLSBUaGUgUEMgdG8gY2FsbC4KKyAgICAj
CisgICAgIyBJdCB0dXJucyBvdXQgdG8gYmUgZWFzaWVyIHRvIGp1c3QgYWx3YXlzIGhhdmUgdGhp
cyByZXR1cm4gdGhlIGNmcgorICAgICMgYW5kIGEgUEMgdG8gY2FsbCwgYW5kIHRoYXQgUEMgbWF5
IGJlIGEgZHVtbXkgdGh1bmsgdGhhdCBqdXN0CisgICAgIyByZXR1cm5zIHRoZSBKUyB2YWx1ZSB0
aGF0IHRoZSBldmFsIHJldHVybmVkLgorICAgIAorICAgIHNsb3dQYXRoRm9yQ2FsbCg0LCBfbGxp
bnRfc2xvd19wYXRoX2NhbGxfZXZhbCkKKworCitfbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQ6
CisgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQorCisKK19sbGludF9vcF9zdHJjYXQ6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N0cmNhdCkK
KyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9tZXRob2RfY2hlY2s6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgICMgV2UgaWdub3JlIG1ldGhvZCBjaGVja3MgYW5kIHVzZSBub3JtYWwg
Z2V0X2J5X2lkIG9wdGltaXphdGlvbnMuCisgICAgZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3Bf
Z2V0X3BuYW1lczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfZ2V0X3BuYW1lcykKKyAgICBkaXNwYXRjaCgwKSAjIFRoZSBzbG93X3BhdGgg
ZWl0aGVyIGFkdmFuY2VzIHRoZSBQQyBvciBqdW1wcyB1cyB0byBzb21ld2hlcmUgZWxzZS4KKwor
CitfbGxpbnRfb3BfcHVzaF9zY29wZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHVzaF9zY29wZSkKKyAgICBkaXNwYXRjaCgyKQorCisK
K19sbGludF9vcF9wb3Bfc2NvcGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3BvcF9zY29wZSkKKyAgICBkaXNwYXRjaCgxKQorCisKK19s
bGludF9vcF9wdXNoX25ld19zY29wZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHVzaF9uZXdfc2NvcGUpCisgICAgZGlzcGF0Y2goNCkK
KworCitfbGxpbnRfb3BfdGhyb3c6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3Rocm93KQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50
X29wX3Rocm93X3JlZmVyZW5jZV9lcnJvcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3dfcmVmZXJlbmNlX2Vycm9yKQorICAgIGRp
c3BhdGNoKDIpCisKKworX2xsaW50X29wX3Byb2ZpbGVfd2lsbF9jYWxsOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZlcmVu
Y2Vbc3BdLCB0MAorICAgIGJ0cHogW3QwXSwgLm9wUHJvZmlsZVdpbGxDYWxsRG9uZQorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQorLm9wUHJvZmls
ZVdpbGxDYWxsRG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9wcm9maWxlX2Rp
ZF9jYWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpl
bmFibGVkUHJvZmlsZXJSZWZlcmVuY2Vbc3BdLCB0MAorICAgIGJ0cHogW3QwXSwgLm9wUHJvZmls
ZVdpbGxDYWxsRG9uZQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVf
ZGlkX2NhbGwpCisub3BQcm9maWxlRGlkQ2FsbERvbmU6CisgICAgZGlzcGF0Y2goMikKKworCitf
bGxpbnRfb3BfZGVidWc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2RlYnVnKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X25hdGl2
ZV9jYWxsX3RyYW1wb2xpbmU6CisgICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0
YWJsZTo6bV9mdW5jdGlvbikKKworCitfbGxpbnRfbmF0aXZlX2NvbnN0cnVjdF90cmFtcG9saW5l
OgorICAgIG5hdGl2ZUNhbGxUcmFtcG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fY29uc3RydWN0
b3IpCisKKworIyBMYXN0bHksIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBsaW5rIGV2ZW4gdGhvdWdo
IHdlIGRvbid0IHN1cHBvcnQgYWxsIG9wY29kZXMuCisjIFRoZXNlIG9wY29kZXMgc2hvdWxkIG5l
dmVyIGFyaXNlIHdoZW4gdXNpbmcgTExJbnQgb3IgZWl0aGVyIEpJVC4gV2UgYXNzZXJ0CisjIGFz
IG11Y2guCisKK21hY3JvIG5vdFN1cHBvcnRlZCgpCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAg
ICAgICAgY3Jhc2goKQorICAgIGVsc2UKKyAgICAgICAgIyBXZSBzaG91bGQgdXNlIHdoYXRldmVy
IHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBpcywganVzdCB0bworICAgICAgICAj
IGVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgZ2FwIGJldHdlZW4gaW5zdHJ1Y3Rpb24gbGFiZWxzLiBJ
ZiBtdWx0aXBsZQorICAgICAgICAjIHNtYWxsZXN0IGluc3RydWN0aW9ucyBleGlzdCwgd2Ugc2hv
dWxkIHBpY2sgdGhlIG9uZSB0aGF0IGlzIG1vc3QKKyAgICAgICAgIyBsaWtlbHkgcmVzdWx0IGlu
IGV4ZWN1dGlvbiBiZWluZyBoYWx0ZWQuIEN1cnJlbnRseSB0aGF0IGlzIHRoZSBicmVhaworICAg
ICAgICAjIGluc3RydWN0aW9uIG9uIGFsbCBhcmNoaXRlY3R1cmVzIHdlJ3JlIGludGVyZXN0ZWQg
aW4uIChCcmVhayBpcyBpbnQzCisgICAgICAgICMgb24gSW50ZWwsIHdoaWNoIGlzIDEgYnl0ZSwg
YW5kIGJrcHQgb24gQVJNdjcsIHdoaWNoIGlzIDIgYnl0ZXMuKQorICAgICAgICBicmVhaworICAg
IGVuZAorZW5kCisKK19sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgorICAgIG5vdFN1cHBvcnRl
ZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKwor
X2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKwor
X2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKwor
X2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fc2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitf
bGxpbnRfb3BfZ2V0X2J5X2lkX2dlbmVyaWM6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50
X29wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50
X29wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50
X29wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRf
b3BfZ2V0X2J5X2lkX3Byb3RvOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRf
YnlfaWRfc2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X3N0cmluZ19s
ZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9nZW5lcmlj
OgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9wdXRfYnlfaWRfcmVwbGFjZToKKyAg
ICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb246CisgICAg
bm90U3VwcG9ydGVkKCkKKworCisjIEluZGljYXRlIHRoZSBlbmQgb2YgTExJbnQuCitfbGxpbnRf
ZW5kOgorICAgIGNyYXNoKCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vYXJtdjcucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vYXJtdjcucmIJKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2FybXY3LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMywyOSArMzMsOSBAQCBjbGFz
cyBOb2RlCiBlbmQKIAogY2xhc3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJlbgotICAgIGRl
ZiBpbml0aWFsaXplKG5hbWUpCi0gICAgICAgIEBuYW1lID0gbmFtZQotICAgIGVuZAotICAgIAog
ICAgIGRlZiBhcm1WN09wZXJhbmQKICAgICAgICAgQG5hbWUKICAgICBlbmQKLSAgICAKLSAgICBk
ZWYgYWRkcmVzcz8KLSAgICAgICAgZmFsc2UKLSAgICBlbmQKLSAgICAKLSAgICBkZWYgbGFiZWw/
Ci0gICAgICAgIGZhbHNlCi0gICAgZW5kCi0gICAgCi0gICAgZGVmIGltbWVkaWF0ZT8KLSAgICAg
ICAgZmFsc2UKLSAgICBlbmQKLSAgICAKLSAgICBkZWYgcmVnaXN0ZXI/Ci0gICAgICAgIHRydWUK
LSAgICBlbmQKIGVuZAogCiBBUk12N19FWFRSQV9HUFJTID0gW1NwZWNpYWxSZWdpc3Rlci5uZXco
InI5IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInI4IiksIFNwZWNpYWxSZWdpc3Rlci5uZXcoInIz
IildCkBAIC0yMjgsNyArMjA4LDcgQEAgZGVmIGFybVY3TG93ZXJTaGlmdE9wcyhsaXN0KQogICAg
ICAgICB8IG5vZGUgfAogICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCiAgICAgICAg
ICAgICBjYXNlIG5vZGUub3Bjb2RlCi0gICAgICAgICAgICB3aGVuICJsc2hpZnRpIiwgInJzaGlm
dGkiLCAidXJzaGlmdGkiCisgICAgICAgICAgICB3aGVuICJsc2hpZnRpIiwgInJzaGlmdGkiLCAi
dXJzaGlmdGkiLCAibHNoaWZ0cCIsICJyc2hpZnRwIiwgInVyc2hpZnRwIgogICAgICAgICAgICAg
ICAgIGlmIG5vZGUub3BlcmFuZHMuc2l6ZSA9PSAyCiAgICAgICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIFthcm1W
N1Nhbml0aXplU2hpZnQobm9kZS5vcGVyYW5kc1swXSwgbmV3TGlzdCksIG5vZGUub3BlcmFuZHNb
MV1dKQogICAgICAgICAgICAgICAgIGVsc2UKQEAgLTQ2OSw3ICs0NDksNyBAQCBkZWYgYXJtVjdM
b3dlck1hbGZvcm1lZEltbWVkaWF0ZXMobGlzdCkKICAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbm9kZS5hcm1WN0xvd2VyTWFsZm9ybWVkSW1tZWRp
YXRlc1JlY3Vyc2UobmV3TGlzdCkKICAgICAgICAgICAgICAgICBlbmQKLSAgICAgICAgICAgIHdo
ZW4gIm11bGkiCisgICAgICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiCiAgICAgICAgICAgICAg
ICAgaWYgbm9kZS5vcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKICAgICAgICAgICAgICAgICAg
ICAgdG1wID0gVG1wLm5ldyhjb2RlT3JpZ2luLCA6Z3ByKQogICAgICAgICAgICAgICAgICAgICBu
ZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sICJtb3ZlIiwgW25vZGUu
b3BlcmFuZHNbMF0sIHRtcF0pCkBAIC01MzUsOSArNTE1LDkgQEAgZGVmIGFybVY3TG93ZXJNaXNw
bGFjZWRBZGRyZXNzZXMobGlzdCkKICAgICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgog
ICAgICAgICAgICAgcG9zdEluc3RydWN0aW9ucyA9IFtdCiAgICAgICAgICAgICBjYXNlIG5vZGUu
b3Bjb2RlCi0gICAgICAgICAgICB3aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIs
ICJhbmRwIiwgImxzaGlmdGkiLCAibXVsaSIsICJuZWdpIiwgIm5vdGkiLCAib3JpIiwgIm9yaXMi
LAotICAgICAgICAgICAgICAgICJvcnAiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJzdWJpIiwg
InN1YnAiLCAic3ViaXMiLCAieG9yaSIsICJ4b3JwIiwgL15iaS8sIC9eYnAvLCAvXmJ0aS8sCi0g
ICAgICAgICAgICAgICAgL15idHAvLCAvXmNpLywgL15jcC8sIC9edGkvCisgICAgICAgICAgICB3
aGVuICJhZGRpIiwgImFkZHAiLCAiYWRkaXMiLCAiYW5kaSIsICJhbmRwIiwgImxzaGlmdGkiLCAi
bHNoaWZ0cCIsICJtdWxpIiwgIm11bHAiLCAibmVnaSIsCisgICAgICAgICAgICAgICAgIm5lZ3Ai
LCAibm90aSIsICJvcmkiLCAib3JpcyIsICJvcnAiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJy
c2hpZnRwIiwgInVyc2hpZnRwIiwgInN1YmkiLAorICAgICAgICAgICAgICAgICJzdWJwIiwgInN1
YmlzIiwgInhvcmkiLCAieG9ycCIsIC9eYmkvLCAvXmJwLywgL15idGkvLCAvXmJ0cC8sIC9eY2kv
LCAvXmNwLywgL150aS8KICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5l
dyhub2RlLmNvZGVPcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbm9kZS5vcGNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXJtVjdBc1JlZ2lzdGVycyhuZXdMaXN0LCBwb3N0SW5zdHJ1Y3Rpb25zLCBub2RlLm9w
ZXJhbmRzLCAiaSIpKQpAQCAtNjQ5LDcgKzYyOSw3IEBAIGVuZAogIwogCiBjbGFzcyBTZXF1ZW5j
ZQotICAgIGRlZiBsb3dlckFSTXY3CisgICAgZGVmIGdldE1vZGlmaWVkTGlzdEFSTXY3CiAgICAg
ICAgIG15TGlzdCA9IEBsaXN0CiAgICAgICAgIAogICAgICAgICAjIFZlcmlmeSB0aGF0IHdlIHdp
bGwgb25seSBzZWUgaW5zdHJ1Y3Rpb25zIGFuZCBsYWJlbHMuCkBAIC02NzMsMTAgKzY1Myw4IEBA
IGNsYXNzIFNlcXVlbmNlCiAgICAgICAgIG15TGlzdCA9IGFybVY3TG93ZXJSZWdpc3RlclJldXNl
KG15TGlzdCkKICAgICAgICAgbXlMaXN0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3Jhcmllcyht
eUxpc3QsIDpncHIsIEFSTXY3X0VYVFJBX0dQUlMpCiAgICAgICAgIG15TGlzdCA9IGFzc2lnblJl
Z2lzdGVyc1RvVGVtcG9yYXJpZXMobXlMaXN0LCA6ZnByLCBBUk12N19FWFRSQV9GUFJTKQotICAg
ICAgICBteUxpc3QuZWFjaCB7Ci0gICAgICAgICAgICB8IG5vZGUgfAotICAgICAgICAgICAgbm9k
ZS5sb3dlcigiQVJNdjciKQotICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZXR1cm4gbXlM
aXN0CiAgICAgZW5kCiBlbmQKIApAQCAtNzkyLDEzICs3NzAsMTMgQEAgY2xhc3MgSW5zdHJ1Y3Rp
b24KICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoIm9ycnMiLCAib3JycyIsIG9wZXJhbmRz
KQogICAgICAgICB3aGVuICJ4b3JpIiwgInhvcnAiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21w
YWN0KCJlb3JzIiwgImVvciIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJsc2hpZnRpIgorICAg
ICAgICB3aGVuICJsc2hpZnRpIiwgImxzaGlmdHAiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21w
YWN0KCJsc2xzIiwgImxzbHMiLCBvcGVyYW5kcykKLSAgICAgICAgd2hlbiAicnNoaWZ0aSIKKyAg
ICAgICAgd2hlbiAicnNoaWZ0aSIsICJyc2hpZnRwIgogICAgICAgICAgICAgZW1pdEFybVY3Q29t
cGFjdCgiYXNycyIsICJhc3JzIiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gInVyc2hpZnRpIgor
ICAgICAgICB3aGVuICJ1cnNoaWZ0aSIsICJ1cnNoaWZ0cCIKICAgICAgICAgICAgIGVtaXRBcm1W
N0NvbXBhY3QoImxzcnMiLCAibHNycyIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJtdWxpIgor
ICAgICAgICB3aGVuICJtdWxpIiwgIm11bHAiCiAgICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXpl
ID09IDIgb3Igb3BlcmFuZHNbMF0gPT0gb3BlcmFuZHNbMl0gb3Igb3BlcmFuZHNbMV0gPT0gb3Bl
cmFuZHNbMl0KICAgICAgICAgICAgICAgICBlbWl0QXJtVjcoIm11bHMiLCBvcGVyYW5kcykKICAg
ICAgICAgICAgIGVsc2UKQEAgLTgwNywxMSArNzg1LDExIEBAIGNsYXNzIEluc3RydWN0aW9uCiAg
ICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAic3ViaSIsICJzdWJwIiwgInN1YmlzIgogICAg
ICAgICAgICAgZW1pdEFybVY3Q29tcGFjdCgic3VicyIsICJzdWJzIiwgb3BlcmFuZHMpCi0gICAg
ICAgIHdoZW4gIm5lZ2kiCisgICAgICAgIHdoZW4gIm5lZ2kiLCAibmVncCIKICAgICAgICAgICAg
ICRhc20ucHV0cyAicnNicyAje29wZXJhbmRzWzBdLmFybVY3T3BlcmFuZH0sICN7b3BlcmFuZHNb
MF0uYXJtVjdPcGVyYW5kfSwgXCMwIgogICAgICAgICB3aGVuICJub3RpIgogICAgICAgICAgICAg
JGFzbS5wdXRzICJtdm5zICN7b3BlcmFuZHNbMF0uYXJtVjdPcGVyYW5kfSwgI3tvcGVyYW5kc1sw
XS5hcm1WN09wZXJhbmR9IgotICAgICAgICB3aGVuICJsb2FkaSIsICJsb2FkcCIKKyAgICAgICAg
d2hlbiAibG9hZGkiLCAibG9hZGlzIiwgImxvYWRwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJs
ZHIgI3thcm1WN0ZsaXBwZWRPcGVyYW5kcyhvcGVyYW5kcyl9IgogICAgICAgICB3aGVuICJzdG9y
ZWkiLCAic3RvcmVwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJzdHIgI3thcm1WN09wZXJhbmRz
KG9wZXJhbmRzKX0iCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20u
cmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXNtLnJi
CShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
c20ucmIJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw2ICsxNjcsNyBAQCBGaWxlLm9wZW4ob3V0cHV0
RmxubSwgInciKSB7CiAgICAgICAgIGZvclNldHRpbmdzKGNvbXB1dGVTZXR0aW5nc0NvbWJpbmF0
aW9ucyhhc3QpW2NvbmZpZ0luZGV4XSwgYXN0KSB7CiAgICAgICAgICAgICB8IGNvbmNyZXRlU2V0
dGluZ3MsIGxvd0xldmVsQVNULCBiYWNrZW5kIHwKICAgICAgICAgICAgIGxvd0xldmVsQVNUID0g
bG93TGV2ZWxBU1QucmVzb2x2ZSgqYnVpbGRPZmZzZXRzTWFwKGxvd0xldmVsQVNULCBvZmZzZXRz
TGlzdCkpCisgICAgICAgICAgICBsb3dMZXZlbEFTVC52YWxpZGF0ZQogICAgICAgICAgICAgZW1p
dENvZGVJbkNvbmZpZ3VyYXRpb24oY29uY3JldGVTZXR0aW5ncywgbG93TGV2ZWxBU1QsIGJhY2tl
bmQpIHsKICAgICAgICAgICAgICAgICAkYXNtLmluQXNtIHsKICAgICAgICAgICAgICAgICAgICAg
bG93TGV2ZWxBU1QubG93ZXIoYmFja2VuZCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL2FzdC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9hc3QucmIJKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FzdC5yYgkod29ya2luZyBjb3B5KQpAQCAtMzgzLDYgKzM4MywxNTcgQEAg
Y2xhc3MgTmVnSW1tZWRpYXRlIDwgTm9kZQogICAgIGVuZAogZW5kCiAKK2NsYXNzIE9ySW1tZWRp
YXRlcyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVm
IGluaXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVP
cmlnaW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAg
IGVuZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAg
ICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgT3JJbW1lZGlhdGVzLm5l
dyhjb2RlT3JpZ2luLCAoeWllbGQgQGxlZnQpLCAoeWllbGQgQHJpZ2h0KSkKKyAgICBlbmQKKyAg
ICAKKyAgICBkZWYgZHVtcAorICAgICAgICAiKCN7bGVmdC5kdW1wfSB8ICN7cmlnaHQuZHVtcH0p
IgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVu
ZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAg
ICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJl
Z2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEFuZEltbWVkaWF0
ZXMgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIgOmxlZnQsIDpyaWdodAorICAgIAorICAgIGRlZiBp
bml0aWFsaXplKGNvZGVPcmlnaW4sIGxlZnQsIHJpZ2h0KQorICAgICAgICBzdXBlcihjb2RlT3Jp
Z2luKQorICAgICAgICBAbGVmdCA9IGxlZnQKKyAgICAgICAgQHJpZ2h0ID0gcmlnaHQKKyAgICBl
bmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAgW0BsZWZ0LCBAcmlnaHRdCisgICAg
ZW5kCisgICAgCisgICAgZGVmIG1hcENoaWxkcmVuCisgICAgICAgIEFuZEltbWVkaWF0ZXMubmV3
KGNvZGVPcmlnaW4sICh5aWVsZCBAbGVmdCksICh5aWVsZCBAcmlnaHQpKQorICAgIGVuZAorICAg
IAorICAgIGRlZiBkdW1wCisgICAgICAgICIoI3tsZWZ0LmR1bXB9ICYgI3tyaWdodC5kdW1wfSki
CisgICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5k
CisgICAgCisgICAgZGVmIGxhYmVsPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAg
IGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVn
aXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5kCitlbmQKKworY2xhc3MgWG9ySW1tZWRpYXRl
cyA8IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGlu
aXRpYWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmln
aW4pCisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVu
ZAorICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBl
bmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgWG9ySW1tZWRpYXRlcy5uZXco
Y29kZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwgKHlpZWxkIEByaWdodCkpCisgICAgZW5kCisgICAg
CisgICAgZGVmIGR1bXAKKyAgICAgICAgIigje2xlZnQuZHVtcH0gXiAje3JpZ2h0LmR1bXB9KSIK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQK
KyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAg
ZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdp
c3Rlcj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKK2VuZAorCitjbGFzcyBCaXRub3RJbW1lZGlh
dGUgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIgOmNoaWxkCisgICAgCisgICAgZGVmIGluaXRpYWxp
emUoY29kZU9yaWdpbiwgY2hpbGQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAg
IEBjaGlsZCA9IGNoaWxkCisgICAgZW5kCisgICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAg
IFtAY2hpbGRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1hcENoaWxkcmVuCisgICAgICAgIEJp
dG5vdEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBjaGlsZCkpCisgICAgZW5kCisg
ICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAgIih+I3tAY2hpbGQuZHVtcH0pIgorICAgIGVuZAor
ICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAg
IGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRp
YXRlPworICAgICAgICB0cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAg
ICAgICBmYWxzZQorICAgIGVuZAorZW5kCisKIGNsYXNzIFJlZ2lzdGVySUQgPCBOb0NoaWxkcmVu
CiAgICAgYXR0cl9yZWFkZXIgOm5hbWUKICAgICAKQEAgLTQ1OSw2ICs2MTAsMjggQEAgY2xhc3Mg
RlBSZWdpc3RlcklEIDwgTm9DaGlsZHJlbgogICAgIGVuZAogZW5kCiAKK2NsYXNzIFNwZWNpYWxS
ZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgaW5pdGlhbGl6ZShuYW1lKQorICAgICAgICBA
bmFtZSA9IG5hbWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFs
c2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5k
CisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIHRydWUKKyAgICBlbmQKK2VuZAorCiBjbGFzcyBW
YXJpYWJsZSA8IE5vQ2hpbGRyZW4KICAgICBhdHRyX3JlYWRlciA6bmFtZQogICAgIApAQCAtNDc5
LDYgKzY1MiwxMCBAQCBjbGFzcyBWYXJpYWJsZSA8IE5vQ2hpbGRyZW4KICAgICBkZWYgZHVtcAog
ICAgICAgICBuYW1lCiAgICAgZW5kCisgICAgCisgICAgZGVmIGluc3BlY3QKKyAgICAgICAgIjx2
YXJpYWJsZSAje25hbWV9IGF0ICN7Y29kZU9yaWdpblN0cmluZ30+IgorICAgIGVuZAogZW5kCiAK
IGNsYXNzIEFkZHJlc3MgPCBOb2RlCkBAIC03NTcsNiArOTM0LDEwIEBAIGNsYXNzIExhYmVsUmVm
ZXJlbmNlIDwgTm9kZQogICAgIGRlZiBsYWJlbD8KICAgICAgICAgdHJ1ZQogICAgIGVuZAorICAg
IAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZhbHNlCisgICAgZW5kCiBlbmQKIAogY2xh
c3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8IE5vQ2hpbGRyZW4KQEAgLTc5MCw2ICs5NzEsMTAgQEAg
Y2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZSA8IE5vQ2hpbGRyZW4KICAgICBkZWYgbGFiZWw/CiAg
ICAgICAgIHRydWUKICAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICBm
YWxzZQorICAgIGVuZAogZW5kCiAKIGNsYXNzIFNlcXVlbmNlIDwgTm9kZQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHJldmlzaW9uIDExMDM0
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw4ICs0OCwxMiBAQCBCQUNLRU5EX1BBVFRFUk4gPSBSZWdleHAubmV3
KCdcXEEoJyArIEJBCiAKIGNsYXNzIE5vZGUKICAgICBkZWYgbG93ZXIobmFtZSkKLSAgICAgICAg
JGFjdGl2ZUJhY2tlbmQgPSBuYW1lCi0gICAgICAgIHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAg
ICAgIGJlZ2luCisgICAgICAgICAgICAkYWN0aXZlQmFja2VuZCA9IG5hbWUKKyAgICAgICAgICAg
IHNlbmQoImxvd2VyIiArIG5hbWUpCisgICAgICAgIHJlc2N1ZSA9PiBlCisgICAgICAgICAgICBy
YWlzZSAiR290IGVycm9yICN7ZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgZW5k
CiAgICAgZW5kCiBlbmQKIApAQCAtODcsNyArOTEsMTMgQEAgZW5kCiBjbGFzcyBTZXF1ZW5jZQog
ICAgIGRlZiBsb3dlcihuYW1lKQogICAgICAgICAkYWN0aXZlQmFja2VuZCA9IG5hbWUKLSAgICAg
ICAgaWYgcmVzcG9uZF90bz8gImxvd2VyI3tuYW1lfSIKKyAgICAgICAgaWYgcmVzcG9uZF90bz8g
ImdldE1vZGlmaWVkTGlzdCN7bmFtZX0iCisgICAgICAgICAgICBuZXdMaXN0ID0gc2VuZCgiZ2V0
TW9kaWZpZWRMaXN0I3tuYW1lfSIpCisgICAgICAgICAgICBuZXdMaXN0LmVhY2ggeworICAgICAg
ICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICAgICAgbm9kZS5sb3dlcihuYW1lKQorICAg
ICAgICAgICAgfQorICAgICAgICBlbHNpZiByZXNwb25kX3RvPyAibG93ZXIje25hbWV9IgogICAg
ICAgICAgICAgc2VuZCgibG93ZXIje25hbWV9IikKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
QGxpc3QuZWFjaCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0
cnVjdGlvbnMucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVh
c20vaW5zdHJ1Y3Rpb25zLnJiCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE1
ICszMCwyMCBAQCBNQUNST19JTlNUUlVDVElPTlMgPQogICAgICAiYWRkaSIsCiAgICAgICJhbmRp
IiwKICAgICAgImxzaGlmdGkiLAorICAgICAibHNoaWZ0cCIsCiAgICAgICJtdWxpIiwKICAgICAg
Im5lZ2kiLAorICAgICAibmVncCIsCiAgICAgICJub3RpIiwKICAgICAgIm9yaSIsCiAgICAgICJy
c2hpZnRpIiwKICAgICAgInVyc2hpZnRpIiwKKyAgICAgInJzaGlmdHAiLAorICAgICAidXJzaGlm
dHAiLAogICAgICAic3ViaSIsCiAgICAgICJ4b3JpIiwKICAgICAgImxvYWRpIiwKKyAgICAgImxv
YWRpcyIsCiAgICAgICJsb2FkYiIsCiAgICAgICJsb2FkYnMiLAogICAgICAibG9hZGgiLApAQCAt
MTU5LDYgKzE2NCw3IEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJicGx0IiwKICAgICAg
ImJwbHRlcSIsCiAgICAgICJhZGRwIiwKKyAgICAgIm11bHAiLAogICAgICAiYW5kcCIsCiAgICAg
ICJvcnAiLAogICAgICAic3VicCIsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS9wYXJzZXIucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vcGFyc2VyLnJiCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9wYXJzZXIucmIJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBA
QCBkZWYgbGV4KHN0ciwgZmlsZU5hbWUpCiAgICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3
KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKSwgJCYpCiAgICAgICAgIHdoZW4g
L1xBOjovCiAgICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZp
bGVOYW1lLCBsaW5lTnVtYmVyKSwgJCYpCi0gICAgICAgIHdoZW4gL1xBWzosXChcKVxbXF09XCtc
LSpdLworICAgICAgICB3aGVuIC9cQVs6LFwoXClcW1xdPVwrXC1+XHwmXipdLwogICAgICAgICAg
ICAgcmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJl
ciksICQmKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiTGV4ZXIgZXJyb3IgYXQg
I3tDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlcikudG9fc30sIHVuZXhwZWN0ZWQg
c2VxdWVuY2UgI3tzdHJbMC4uMjBdLmluc3BlY3R9IgpAQCAtMzIyLDYgKzMyMiw5IEBAIGNsYXNz
IFBhcnNlcgogICAgICAgICBpZiBAdG9rZW5zW0BpZHhdID09ICItIgogICAgICAgICAgICAgQGlk
eCArPSAxCiAgICAgICAgICAgICBOZWdJbW1lZGlhdGUubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNv
ZGVPcmlnaW4sIHBhcnNlRXhwcmVzc2lvbkF0b20pCisgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlk
eF0gPT0gIn4iCisgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAgIEJpdG5vdEltbWVk
aWF0ZS5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcGFyc2VFeHByZXNzaW9uQXRv
bSkKICAgICAgICAgZWxzaWYgQHRva2Vuc1tAaWR4XSA9PSAiKCIKICAgICAgICAgICAgIEBpZHgg
Kz0gMQogICAgICAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uCkBAIC0zNjUsMTAgKzM2
OCwxMCBAQCBjbGFzcyBQYXJzZXIKICAgICBlbmQKICAgICAKICAgICBkZWYgY291bGRCZUV4cHJl
c3Npb24KLSAgICAgICAgQHRva2Vuc1tAaWR4XSA9PSAiLSIgb3IgQHRva2Vuc1tAaWR4XSA9PSAi
c2l6ZW9mIiBvciBpc0ludGVnZXIoQHRva2Vuc1tAaWR4XSkgb3IgaXNWYXJpYWJsZShAdG9rZW5z
W0BpZHhdKSBvciBAdG9rZW5zW0BpZHhdID09ICIoIgorICAgICAgICBAdG9rZW5zW0BpZHhdID09
ICItIiBvciBAdG9rZW5zW0BpZHhdID09ICJ+IiBvciBAdG9rZW5zW0BpZHhdID09ICJzaXplb2Yi
IG9yIGlzSW50ZWdlcihAdG9rZW5zW0BpZHhdKSBvciBpc1ZhcmlhYmxlKEB0b2tlbnNbQGlkeF0p
IG9yIEB0b2tlbnNbQGlkeF0gPT0gIigiCiAgICAgZW5kCiAgICAgCi0gICAgZGVmIHBhcnNlRXhw
cmVzc2lvbgorICAgIGRlZiBwYXJzZUV4cHJlc3Npb25BZGQKICAgICAgICAgc2tpcE5ld0xpbmUK
ICAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uTXVsCiAgICAgICAgIHdoaWxlIEB0b2tl
bnNbQGlkeF0gPT0gIisiIG9yIEB0b2tlbnNbQGlkeF0gPT0gIi0iCkBAIC0zODUsNiArMzg4LDMz
IEBAIGNsYXNzIFBhcnNlcgogICAgICAgICByZXN1bHQKICAgICBlbmQKICAgICAKKyAgICBkZWYg
cGFyc2VFeHByZXNzaW9uQW5kCisgICAgICAgIHNraXBOZXdMaW5lCisgICAgICAgIHJlc3VsdCA9
IHBhcnNlRXhwcmVzc2lvbkFkZAorICAgICAgICB3aGlsZSBAdG9rZW5zW0BpZHhdID09ICImIgor
ICAgICAgICAgICAgQGlkeCArPSAxCisgICAgICAgICAgICByZXN1bHQgPSBBbmRJbW1lZGlhdGVz
Lm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCByZXN1bHQsIHBhcnNlRXhwcmVzc2lv
bkFkZCkKKyAgICAgICAgZW5kCisgICAgICAgIHJlc3VsdAorICAgIGVuZAorICAgIAorICAgIGRl
ZiBwYXJzZUV4cHJlc3Npb24KKyAgICAgICAgc2tpcE5ld0xpbmUKKyAgICAgICAgcmVzdWx0ID0g
cGFyc2VFeHByZXNzaW9uQW5kCisgICAgICAgIHdoaWxlIEB0b2tlbnNbQGlkeF0gPT0gInwiIG9y
IEB0b2tlbnNbQGlkeF0gPT0gIl4iCisgICAgICAgICAgICBpZiBAdG9rZW5zW0BpZHhdID09ICJ8
IgorICAgICAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IE9y
SW1tZWRpYXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcmVzdWx0LCBwYXJz
ZUV4cHJlc3Npb25BbmQpCisgICAgICAgICAgICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJeIgor
ICAgICAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IFhvcklt
bWVkaWF0ZXMubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4sIHJlc3VsdCwgcGFyc2VF
eHByZXNzaW9uQW5kKQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJhaXNlCisg
ICAgICAgICAgICBlbmQKKyAgICAgICAgZW5kCisgICAgICAgIHJlc3VsdAorICAgIGVuZAorICAg
IAogICAgIGRlZiBwYXJzZU9wZXJhbmQoY29tbWVudCkKICAgICAgICAgc2tpcE5ld0xpbmUKICAg
ICAgICAgaWYgY291bGRCZUV4cHJlc3Npb24KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIJKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsMTMgQEAgR1BSUyA9CiAgICAgICJyMCIsCiAgICAgICJyMSIsCiAgICAgICJzcCIs
Ci0gICAgICJsciIKKyAgICAgImxyIiwKKyAgICAgCisgICAgICMgNjQtYml0IG9ubHkgcmVnaXN0
ZXJzOgorICAgICAidDUiLAorICAgICAidDYiLCAgIyByMTAKKyAgICAgImNzcjEiLCAgIyByMTQs
IHRhZyB0eXBlIG51bWJlciByZWdpc3RlcgorICAgICAiY3NyMiIgICAjIHIxNSwgdGFnIG1hc2sg
cmVnaXN0ZXIKICAgICBdCiAKIEZQUlMgPQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vdHJhbnNmb3JtLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL3RyYW5zZm9ybS5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNmb3JtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0z
MjgsNiArMzI4LDQ0IEBAIGNsYXNzIE5lZ0ltbWVkaWF0ZQogICAgIGVuZAogZW5kCiAKK2NsYXNz
IE9ySW1tZWRpYXRlcworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAor
ICAgICAgICBAcmlnaHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3Mg
QGxlZnQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQu
aXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQu
dmFsdWUgfCBAcmlnaHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRl
cworICAgIGRlZiBmb2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmln
aHQgPSBAcmlnaHQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8g
SW1tZWRpYXRlCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRp
YXRlCisgICAgICAgIEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUgJiBAcmln
aHQudmFsdWUpCisgICAgZW5kCitlbmQKKworY2xhc3MgWG9ySW1tZWRpYXRlcworICAgIGRlZiBm
b2xkCisgICAgICAgIEBsZWZ0ID0gQGxlZnQuZm9sZAorICAgICAgICBAcmlnaHQgPSBAcmlnaHQu
Zm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGxlZnQuaXNfYT8gSW1tZWRpYXRlCisg
ICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAcmlnaHQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAg
IEltbWVkaWF0ZS5uZXcoY29kZU9yaWdpbiwgQGxlZnQudmFsdWUgXiBAcmlnaHQudmFsdWUpCisg
ICAgZW5kCitlbmQKKworY2xhc3MgQml0bm90SW1tZWRpYXRlCisgICAgZGVmIGZvbGQKKyAgICAg
ICAgQGNoaWxkID0gQGNoaWxkLmZvbGQKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEBjaGls
ZC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCB+QGNo
aWxkLnZhbHVlKQorICAgIGVuZAorZW5kCisKICMKICMgbm9kZS5yZXNvbHZlQWZ0ZXJTZXR0aW5n
cyhvZmZzZXRzLCBzaXplcykKICMKQEAgLTM0MCwzICszNzgsOTcgQEAgY2xhc3MgTm9kZQogICAg
IGVuZAogZW5kCiAKKyMKKyMgbm9kZS52YWxpZGF0ZQorIworIyBDaGVja3MgdGhhdCB0aGUgbm9k
ZSBpcyByZWFkeSBmb3IgYmFja2VuZCBjb21waWxhdGlvbi4KKyMKKworY2xhc3MgTm9kZQorICAg
IGRlZiB2YWxpZGF0ZQorICAgICAgICByYWlzZSAiVW5yZXNvbHZlZCAje2R1bXB9IGF0ICN7Y29k
ZU9yaWdpblN0cmluZ30iCisgICAgZW5kCisgICAgCisgICAgZGVmIHZhbGlkYXRlQ2hpbGRyZW4K
KyAgICAgICAgY2hpbGRyZW4uZWFjaCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAg
ICAgbm9kZS52YWxpZGF0ZQorICAgICAgICB9CisgICAgZW5kCitlbmQKKworY2xhc3MgU2VxdWVu
Y2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAor
ZW5kCisKK2NsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisK
K2NsYXNzIFJlZ2lzdGVySUQKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFz
cyBGUFJlZ2lzdGVySUQKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBB
ZGRyZXNzCisgICAgZGVmIHZhbGlkYXRlCisgICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBl
bmQKK2VuZAorCitjbGFzcyBCYXNlSW5kZXgKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFs
aWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEFic29sdXRlQWRkcmVzcworICAg
IGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKwor
Y2xhc3MgSW5zdHJ1Y3Rpb24KKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGls
ZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEVycm9yCisgICAgZGVmIHZhbGlkYXRlCisgICAg
ZW5kCitlbmQKKworY2xhc3MgTGFiZWwKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAor
CitjbGFzcyBMb2NhbExhYmVsCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xh
c3MgTGFiZWxSZWZlcmVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFz
cyBMb2NhbExhYmVsUmVmZXJlbmNlCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKwor
Y2xhc3MgU2tpcAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJKHJldmlzaW9uIDExMDM0NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkod29ya2luZyBjb3B5KQpAQCAt
MzIsMTMgKzMyLDM3IEBAIGRlZiBpc1g2NAogICAgIGVuZAogZW5kCiAKK2NsYXNzIFNwZWNpYWxS
ZWdpc3RlciA8IE5vQ2hpbGRyZW4KKyAgICBkZWYgeDg2T3BlcmFuZChraW5kKQorICAgICAgICBy
YWlzZSB1bmxlc3MgQG5hbWUgPX4gL15yLworICAgICAgICByYWlzZSB1bmxlc3MgaXNYNjQKKyAg
ICAgICAgY2FzZSBraW5kCisgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICIlIiArIEBu
YW1lICsgInciCisgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgIiUiICsgQG5hbWUgKyAi
ZCIKKyAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAiJSIgKyBAbmFtZQorICAgICAgICBl
bHNlCisgICAgICAgICAgICByYWlzZQorICAgICAgICBlbmQKKyAgICBlbmQKKyAgICBkZWYgeDg2
Q2FsbE9wZXJhbmQoa2luZCkKKyAgICAgICAgIioje3g4Nk9wZXJhbmQoa2luZCl9IgorICAgIGVu
ZAorZW5kCisKK1g2NF9TQ1JBVENIX1JFR0lTVEVSID0gU3BlY2lhbFJlZ2lzdGVyLm5ldygicjEx
IikKKwogY2xhc3MgUmVnaXN0ZXJJRAogICAgIGRlZiBzdXBwb3J0czhCaXRPblg4NgogICAgICAg
ICBjYXNlIG5hbWUKICAgICAgICAgd2hlbiAidDAiLCAiYTAiLCAicjAiLCAidDEiLCAiYTEiLCAi
cjEiLCAidDIiLCAidDMiCiAgICAgICAgICAgICB0cnVlCi0gICAgICAgIHdoZW4gInQ0IiwgImNm
ciIKKyAgICAgICAgd2hlbiAiY2ZyIiwgInR0bnIiLCAidG1yIgogICAgICAgICAgICAgZmFsc2UK
KyAgICAgICAgd2hlbiAidDQiLCAidDUiCisgICAgICAgICAgICBpc1g2NAogICAgICAgICBlbHNl
CiAgICAgICAgICAgICByYWlzZQogICAgICAgICBlbmQKQEAgLTExMiwxNyArMTM2LDMwIEBAIGNs
YXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgZW5kCiAg
ICAgICAgIHdoZW4gImNmciIKLSAgICAgICAgICAgIGNhc2Uga2luZAotICAgICAgICAgICAgd2hl
biA6Ynl0ZQotICAgICAgICAgICAgICAgICIlZGlsIgotICAgICAgICAgICAgd2hlbiA6aGFsZgot
ICAgICAgICAgICAgICAgICIlZGkiCi0gICAgICAgICAgICB3aGVuIDppbnQKLSAgICAgICAgICAg
ICAgICAiJWVkaSIKLSAgICAgICAgICAgIHdoZW4gOnB0cgotICAgICAgICAgICAgICAgIGlzWDY0
ID8gIiVyZGkiIDogIiVlZGkiCisgICAgICAgICAgICBpZiBpc1g2NAorICAgICAgICAgICAgICAg
IGNhc2Uga2luZAorICAgICAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAg
ICAgIiVyMTN3IgorICAgICAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICAg
ICAiJXIxM2QiCisgICAgICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgICAg
ICIlcjEzIgorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBy
YWlzZQorICAgICAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgICAgIHdoZW4gOmJ5
dGUKKyAgICAgICAgICAgICAgICAgICAgIiVkaWwiCisgICAgICAgICAgICAgICAgd2hlbiA6aGFs
ZgorICAgICAgICAgICAgICAgICAgICAiJWRpIgorICAgICAgICAgICAgICAgIHdoZW4gOmludAor
ICAgICAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAgICB3aGVuIDpwdHIKKyAg
ICAgICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZW5kCiAg
ICAgICAgIHdoZW4gInNwIgogICAgICAgICAgICAgY2FzZSBraW5kCkBAIC0xMzcsNiArMTc0LDQ4
IEBAIGNsYXNzIFJlZ2lzdGVySUQKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBy
YWlzZQogICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gInQ1IgorICAgICAgICAgICAgcmFp
c2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmlu
Z30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVu
IDpieXRlCisgICAgICAgICAgICAgICAgIiVkaWwiCisgICAgICAgICAgICB3aGVuIDpoYWxmCisg
ICAgICAgICAgICAgICAgIiVkaSIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAg
ICAgICIlZWRpIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgIiVyZGki
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAidDYiCisgICAgICAgICAgICByYWlzZSAi
Q2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIg
dW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmhh
bGYKKyAgICAgICAgICAgICAgICAiJXIxMHciCisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAg
ICAgICAgICAgICAiJXIxMGQiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAg
ICAiJXIxMCIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjc3IxIgorICAgICAgICAg
ICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdp
blN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAg
ICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVyMTR3IgorICAgICAgICAgICAgd2hlbiA6
aW50CisgICAgICAgICAgICAgICAgIiVyMTRkIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAg
ICAgICAgICAgICAgIiVyMTQiCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAiY3NyMiIK
KyAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAj
e2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAor
ICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICIlcjE1dyIKKyAgICAgICAg
ICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlcjE1ZCIKKyAgICAgICAgICAgIHdoZW4g
OnB0cgorICAgICAgICAgICAgICAgICIlcjE1IgorICAgICAgICAgICAgZW5kCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHJhaXNlICJCYWQgcmVnaXN0ZXIgI3tuYW1lfSBmb3IgWDg2IGF0ICN7
Y29kZU9yaWdpblN0cmluZ30iCiAgICAgICAgIGVuZApAQCAtMTcyLDYgKzI1MSwxMyBAQCBjbGFz
cyBGUFJlZ2lzdGVySUQKIGVuZAogCiBjbGFzcyBJbW1lZGlhdGUKKyAgICBkZWYgdmFsaWRYODZJ
bW1lZGlhdGU/CisgICAgICAgIGlmIGlzWDY0CisgICAgICAgICAgICB2YWx1ZSA+PSAtMHg4MDAw
MDAwMCBhbmQgdmFsdWUgPD0gMHg3ZmZmZmZmZgorICAgICAgICBlbHNlCisgICAgICAgICAgICB0
cnVlCisgICAgICAgIGVuZAorICAgIGVuZAogICAgIGRlZiB4ODZPcGVyYW5kKGtpbmQpCiAgICAg
ICAgICIkI3t2YWx1ZX0iCiAgICAgZW5kCkBAIC0yMTAsNyArMjk2LDcgQEAgY2xhc3MgQmFzZUlu
ZGV4CiAgICAgZW5kCiAKICAgICBkZWYgeDg2Q2FsbE9wZXJhbmQoa2luZCkKLSAgICAgICAgIioj
e3g4Nm9wZXJhbmQoa2luZCl9IgorICAgICAgICAiKiN7eDg2T3BlcmFuZChraW5kKX0iCiAgICAg
ZW5kCiBlbmQKIApAQCAtMjQ0LDYgKzMzMCw0NyBAQCBjbGFzcyBMb2NhbExhYmVsUmVmZXJlbmNl
CiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU2VxdWVuY2UKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0
WDg2XzY0CisgICAgICAgIG5ld0xpc3QgPSBbXQorICAgICAgICAKKyAgICAgICAgQGxpc3QuZWFj
aCB7CisgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgbmV3Tm9kZSA9IG5vZGUKKyAg
ICAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KKyAgICAgICAgICAgICAgICB1bmxl
c3Mgbm9kZS5vcGNvZGUgPT0gIm1vdmUiCisgICAgICAgICAgICAgICAgICAgIHVzZWRTY3JhdGNo
ID0gZmFsc2UKKyAgICAgICAgICAgICAgICAgICAgbmV3T3BlcmFuZHMgPSBub2RlLm9wZXJhbmRz
Lm1hcCB7CisgICAgICAgICAgICAgICAgICAgICAgICB8IG9wZXJhbmQgfAorICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgb3BlcmFuZC5pbW1lZGlhdGU/IGFuZCBub3Qgb3BlcmFuZC52YWxpZFg4
NkltbWVkaWF0ZT8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB1c2VkU2NyYXRjaAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSAiQXR0ZW1wdCB0byB1c2Ugc2Ny
YXRjaCByZWdpc3RlciB0d2ljZSBhdCAje29wZXJhbmQuY29kZU9yaWdpblN0cmluZ30iCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcob3BlcmFuZC5jb2RlT3JpZ2luLCAibW92ZSIsIFtv
cGVyYW5kLCBYNjRfU0NSQVRDSF9SRUdJU1RFUl0pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdXNlZFNjcmF0Y2ggPSB0cnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWDY0X1ND
UkFUQ0hfUkVHSVNURVIKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcGVyYW5kCisgICAgICAgICAgICAgICAgICAgICAgICBlbmQKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBuZXdOb2RlID0gSW5zdHJ1
Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgbm9kZS5vcGNvZGUsIG5ld09wZXJhbmRzKQorICAg
ICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHVubGVz
cyBub2RlLmlzX2E/IExhYmVsIG9yCisgICAgICAgICAgICAgICAgICAgICAgICBub2RlLmlzX2E/
IExvY2FsTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gU2tpcAor
ICAgICAgICAgICAgICAgICAgICByYWlzZSAiVW5leHBlY3RlZCAje25vZGUuaW5zcGVjdH0gYXQg
I3tub2RlLmNvZGVPcmlnaW59IiAKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVu
ZAorICAgICAgICAgICAgaWYgbmV3Tm9kZQorICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgbmV3
Tm9kZQorICAgICAgICAgICAgZW5kCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVy
biBuZXdMaXN0CisgICAgZW5kCitlbmQKKwogY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICBkZWYgeDg2
T3BlcmFuZHMoKmtpbmRzKQogICAgICAgICByYWlzZSB1bmxlc3Mga2luZHMuc2l6ZSA9PSBvcGVy
YW5kcy5zaXplCkBAIC00NTgsNiArNTg1LDE2IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAg
IGVuZAogICAgIGVuZAogICAgIAorICAgIGRlZiBoYW5kbGVYODZNdWwoa2luZCkKKyAgICAgICAg
aWYgb3BlcmFuZHMuc2l6ZSA9PSAzIGFuZCBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKKyAg
ICAgICAgICAgICRhc20ucHV0cyAiaW11bCN7eDg2U3VmZml4KGtpbmQpfSAje3g4Nk9wZXJhbmRz
KGtpbmQsIGtpbmQsIGtpbmQpfSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgIyBGSVhNRTog
Y291bGQgZG8gc29tZSBwZWVwaG9sZSBpbiBjYXNlIHRoZSBsZWZ0IG9wZXJhbmQgaXMgaW1tZWRp
YXRlIGFuZCBpdCdzCisgICAgICAgICAgICAjIGEgcG93ZXIgb2YgdHdvLgorICAgICAgICAgICAg
aGFuZGxlWDg2T3AoImltdWwje3g4NlN1ZmZpeChraW5kKX0iLCBraW5kKQorICAgICAgICBlbmQK
KyAgICBlbmQKKyAgICAKICAgICBkZWYgaGFuZGxlTW92ZQogICAgICAgICBpZiBJbW1lZGlhdGUu
bmV3KG5pbCwgMCkgPT0gb3BlcmFuZHNbMF0gYW5kIG9wZXJhbmRzWzFdLmlzX2E/IFJlZ2lzdGVy
SUQKICAgICAgICAgICAgICRhc20ucHV0cyAieG9yI3t4ODZTdWZmaXgoOnB0cil9ICN7b3BlcmFu
ZHNbMV0ueDg2T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6cHRyKX0i
CkBAIC00ODksMTYgKzYyNiwxNiBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgaGFu
ZGxlWDg2T3AoImFuZCN7eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gImxz
aGlmdGkiCiAgICAgICAgICAgICBoYW5kbGVYODZTaGlmdCgic2FsbCIsIDppbnQpCisgICAgICAg
IHdoZW4gImxzaGlmdHAiCisgICAgICAgICAgICBoYW5kbGVYODZTaGlmdCgic2FsI3t4ODZTdWZm
aXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAibXVsaSIKLSAgICAgICAgICAgIGlmIG9w
ZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRlCi0gICAgICAg
ICAgICAgICAgJGFzbS5wdXRzICJpbXVsbCAje3g4Nk9wZXJhbmRzKDppbnQsIDppbnQsIDppbnQp
fSIKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBz
b21lIHBlZXBob2xlIGluIGNhc2UgdGhlIGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0
J3MKLSAgICAgICAgICAgICAgICAjIGEgcG93ZXIgb2YgdHdvLgotICAgICAgICAgICAgICAgIGhh
bmRsZVg4Nk9wKCJpbXVsbCIsIDppbnQpCi0gICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGhh
bmRsZVg4Nk11bCg6aW50KQorICAgICAgICB3aGVuICJtdWxwIgorICAgICAgICAgICAgaGFuZGxl
WDg2TXVsKDpwdHIpCiAgICAgICAgIHdoZW4gIm5lZ2kiCiAgICAgICAgICAgICAkYXNtLnB1dHMg
Im5lZ2wgI3t4ODZPcGVyYW5kcyg6aW50KX0iCisgICAgICAgIHdoZW4gIm5lZ3AiCisgICAgICAg
ICAgICAkYXNtLnB1dHMgIm5lZyN7eDg2U3VmZml4KDpwdHIpfSAje3g4Nk9wZXJhbmRzKDpwdHIp
fSIKICAgICAgICAgd2hlbiAibm90aSIKICAgICAgICAgICAgICRhc20ucHV0cyAibm90bCAje3g4
Nk9wZXJhbmRzKDppbnQpfSIKICAgICAgICAgd2hlbiAib3JpIgpAQCAtNTA3LDggKzY0NCwxMiBA
QCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgaGFuZGxlWDg2T3AoIm9yI3t4ODZTdWZm
aXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAicnNoaWZ0aSIKICAgICAgICAgICAgIGhh
bmRsZVg4NlNoaWZ0KCJzYXJsIiwgOmludCkKKyAgICAgICAgd2hlbiAicnNoaWZ0cCIKKyAgICAg
ICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYXIje3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRyKQogICAg
ICAgICB3aGVuICJ1cnNoaWZ0aSIKICAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzaHJsIiwg
OmludCkKKyAgICAgICAgd2hlbiAidXJzaGlmdHAiCisgICAgICAgICAgICBoYW5kbGVYODZTaGlm
dCgic2hyI3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAic3ViaSIKICAg
ICAgICAgICAgIGhhbmRsZVg4NlN1Yig6aW50KQogICAgICAgICB3aGVuICJzdWJwIgpAQCAtNTE2
LDkgKzY1NywxNSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJ4b3JpIgogICAg
ICAgICAgICAgaGFuZGxlWDg2T3AoInhvcmwiLCA6aW50KQogICAgICAgICB3aGVuICJ4b3JwIgot
ICAgICAgICAgICAgaGFuZGxlWDg2T3AoInhvciN7eDg2U3VmZml4KDpwdHIpfSIsIDppbnQpCisg
ICAgICAgICAgICBoYW5kbGVYODZPcCgieG9yI3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAg
ICAgICAgd2hlbiAibG9hZGkiLCAic3RvcmVpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Zs
ICN7eDg2T3BlcmFuZHMoOmludCwgOmludCl9IgorICAgICAgICB3aGVuICJsb2FkaXMiCisgICAg
ICAgICAgICBpZiBpc1g2NAorICAgICAgICAgICAgICAgICRhc20ucHV0cyAibW92c2xxICN7eDg2
T3BlcmFuZHMoOmludCwgOnB0cil9IgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICRhc20ucHV0cyAibW92bCAje3g4Nk9wZXJhbmRzKDppbnQsIDppbnQpfSIKKyAgICAgICAgICAg
IGVuZAogICAgICAgICB3aGVuICJsb2FkcCIsICJzdG9yZXAiCiAgICAgICAgICAgICAkYXNtLnB1
dHMgIm1vdiN7eDg2U3VmZml4KDpwdHIpfSAje3g4Nk9wZXJhbmRzKDpwdHIsIDpwdHIpfSIKICAg
ICAgICAgd2hlbiAibG9hZGIiCkBAIC03MDEsNyArODQ4LDcgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24K
ICAgICAgICAgd2hlbiAiYnRibnoiCiAgICAgICAgICAgICBoYW5kbGVYODZCcmFuY2hUZXN0KCJq
bnoiLCA6Ynl0ZSkKICAgICAgICAgd2hlbiAiam1wIgotICAgICAgICAgICAgJGFzbS5wdXRzICJq
bXAgI3tvcGVyYW5kc1swXS54ODZDYWxsT3BlcmFuZCg6aW50KX0iCisgICAgICAgICAgICAkYXNt
LnB1dHMgImptcCAje29wZXJhbmRzWzBdLng4NkNhbGxPcGVyYW5kKDpwdHIpfSIKICAgICAgICAg
d2hlbiAiYmFkZGlvIgogICAgICAgICAgICAgaGFuZGxlWDg2T3BCcmFuY2goImFkZGwiLCAiam8i
LCA6aW50KQogICAgICAgICB3aGVuICJiYWRkcG8iCkBAIC04MjUsOSArOTcyLDkgQEAgY2xhc3Mg
SW5zdHJ1Y3Rpb24KICAgICAgICAgICAgICRhc20ucHV0cyAicHNybHEgJDMyLCAleG1tNyIKICAg
ICAgICAgICAgICRhc20ucHV0cyAibW92c2QgJXhtbTcsICN7b3BlcmFuZHNbMl0ueDg2T3BlcmFu
ZCg6aW50KX0iCiAgICAgICAgIHdoZW4gImZwMmQiCi0gICAgICAgICAgICAkYXNtLnB1dHMgIm1v
dmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kcyg6cHRyKX0sICN7b3BlcmFuZHNbMV0ueDg2T3Bl
cmFuZCg6ZG91YmxlKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tvcGVyYW5kc1sw
XS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpkb3VibGUpfSIK
ICAgICAgICAgd2hlbiAiZmQycCIKLSAgICAgICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJh
bmRzWzBdLng4Nk9wZXJhbmRzKDpkb3VibGUpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpw
dHIpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJhbmRzWzBdLng4Nk9wZXJh
bmQoOmRvdWJsZSl9LCAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0cil9IgogICAgICAgICB3
aGVuICJibyIKICAgICAgICAgICAgICRhc20ucHV0cyAiam8gI3tvcGVyYW5kc1swXS5hc21MYWJl
bH0iCiAgICAgICAgIHdoZW4gImJzIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Q
bGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZv
cm0uaAkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0
Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MzUsNyArOTM1LDcgQEAKIAogLyogT24gc29tZSBv
ZiB0aGUgcGxhdGZvcm1zIHdoZXJlIHdlIGhhdmUgYSBKSVQsIHdlIHdhbnQgdG8gYWxzbyBoYXZl
IHRoZSAKICAgIGxvdy1sZXZlbCBpbnRlcnByZXRlci4gKi8KLSNpZiAhZGVmaW5lZChFTkFCTEVf
TExJTlQpICYmIEVOQUJMRShKSVQpICYmIE9TKERBUldJTikgJiYgKENQVShYODYpIHx8IENQVShB
Uk1fVEhVTUIyKSkgJiYgVVNFKEpTVkFMVUUzMl82NCkKKyNpZiAhZGVmaW5lZChFTkFCTEVfTExJ
TlQpICYmIEVOQUJMRShKSVQpICYmIE9TKERBUldJTikgJiYgKENQVShYODYpIHx8IENQVShYODZf
NjQpIHx8IENQVShBUk1fVEhVTUIyKSkKICNkZWZpbmUgRU5BQkxFX0xMSU5UIDEKICNlbmRpZgog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131158</attachid>
            <date>2012-03-09 23:28:24 -0800</date>
            <delta_ts>2012-03-09 23:36:23 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>llint64_patch_12.diff</filename>
            <type>text/plain</type>
            <size>128232</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMzQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBA
CisyMDEyLTAzLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAw
NjM0Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBXb3JrIGluIHByb2dyZXNzLiBJdCdzIHN0YXJ0aW5nIHRvIHJ1biB0aGluZ3MgYnV0
IHN0aWxsIG5lZWRzIHNvbWUgd29yay4KKworICAgICAgICAqIGxsaW50L0xMSW50Q29tbW9uLmg6
CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkRh
dGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5j
cHA6CisgICAgICAgIChMTEludCk6CisgICAgICAgIChKU0M6OkxMSW50OjpsbGludF90cmFjZV92
YWx1ZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BBVEhfREVDTCk6CisgICAg
ICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKExMSW50KToKKyAgICAgICAg
KFNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpTbG93UGF0aFJldHVy
blR5cGU6OlNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6OkxMSW50OjplbmNvZGVS
ZXN1bHQpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAg
ICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZsaW5lYXNtL2FybXY3LnJi
OgorICAgICAgICAqIG9mZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXN0
LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6CisgICAgICAgICogb2ZmbGlu
ZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9wYXJzZXIucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAgICogb2ZmbGluZWFzbS90
cmFuc2Zvcm0ucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6CisgICAgICAgICogd3Rm
L1BsYXRmb3JtLmg6CisKIDIwMTItMDMtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgV2ViS2l0IGNvbXBpbGVkIGJ5IGdjYyAoWGNvZGUgMy4yLjYpIGhhbmdz
IHdoaWxlIHJ1bm5pbmcgRE9NL0FjY2Vzc29ycy5odG1sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYg
KzcyLDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhKU0dsb2JhbERhdAogICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRvciwgYXNCaXRzLnRhZykg
PT0gNCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVkVmFsdWVEZXNjcmlwdG9y
LCBhc0JpdHMucGF5bG9hZCkgPT0gMCk7CiAjZW5kaWYKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQog
ICAgIEFTU0VSVChKU1ZhbHVlOjpJbnQzMlRhZyA9PSAtMSk7CiAgICAgQVNTRVJUKEpTVmFsdWU6
OkJvb2xlYW5UYWcgPT0gLTIpOwogICAgIEFTU0VSVChKU1ZhbHVlOjpOdWxsVGFnID09IC0zKTsK
QEAgLTgwLDEyICs4MSwyNiBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKEpTR2xvYmFs
RGF0CiAgICAgQVNTRVJUKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcgPT0gLTYpOwogICAgIEFTU0VS
VChKU1ZhbHVlOjpEZWxldGVkVmFsdWVUYWcgPT0gLTcpOwogICAgIEFTU0VSVChKU1ZhbHVlOjpM
b3dlc3RUYWcgPT0gLTcpOworI2Vsc2UKKyAgICBBU1NFUlQoVGFnQml0VHlwZU90aGVyID09IDB4
Mik7CisgICAgQVNTRVJUKFRhZ0JpdEJvb2wgPT0gMHg0KTsKKyAgICBBU1NFUlQoVGFnQml0VW5k
ZWZpbmVkID09IDB4OCk7CisgICAgQVNTRVJUKFZhbHVlRW1wdHkgPT0gMHgwKTsKKyAgICBBU1NF
UlQoVmFsdWVGYWxzZSA9PSAoVGFnQml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbCkpOworICAgIEFT
U0VSVChWYWx1ZVRydWUgPT0gKFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdEJvb2wgfCAxKSk7Cisg
ICAgQVNTRVJUKFZhbHVlVW5kZWZpbmVkID09IChUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRVbmRl
ZmluZWQpKTsKKyAgICBBU1NFUlQoVmFsdWVOdWxsID09IFRhZ0JpdFR5cGVPdGhlcik7CisjZW5k
aWYKICAgICBBU1NFUlQoU3RyaW5nVHlwZSA9PSA1KTsKICAgICBBU1NFUlQoT2JqZWN0VHlwZSA9
PSAxMyk7CiAgICAgQVNTRVJUKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPT0gMSk7CiAgICAgQVNT
RVJUKEltcGxlbWVudHNIYXNJbnN0YW5jZSA9PSAyKTsKICAgICBBU1NFUlQoSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSA9PSA4KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgIEFTU0VSVCgm
Z2xvYmFsRGF0YS5oZWFwLmFsbG9jYXRvckZvck9iamVjdFdpdGhvdXREZXN0cnVjdG9yKHNpemVv
ZihKU0ZpbmFsT2JqZWN0KSkgLSAmZ2xvYmFsRGF0YS5oZWFwLmZpcnN0QWxsb2NhdG9yV2l0aG91
dERlc3RydWN0b3JzKCkgPT0gMSk7CisjZWxzZQogICAgIEFTU0VSVCgmZ2xvYmFsRGF0YS5oZWFw
LmFsbG9jYXRvckZvck9iamVjdFdpdGhvdXREZXN0cnVjdG9yKHNpemVvZihKU0ZpbmFsT2JqZWN0
KSkgLSAmZ2xvYmFsRGF0YS5oZWFwLmZpcnN0QWxsb2NhdG9yV2l0aG91dERlc3RydWN0b3JzKCkg
PT0gMyk7CisjZW5kaWYKICAgICBBU1NFUlQoRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggPT0g
MHg0MDAwMDAwMCk7CiAgICAgQVNTRVJUKEdsb2JhbENvZGUgPT0gMCk7CiAgICAgQVNTRVJUKEV2
YWxDb2RlID09IDEpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxNiArNjUs
NyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKICNkZWZpbmUgTExJTlRfT1Bf
QyhpbmRleCkgKGV4ZWMtPnIocGNbaW5kZXhdLnUub3BlcmFuZCkpCiAKICNkZWZpbmUgTExJTlRf
UkVUVVJOX1RXTyhmaXJzdCwgc2Vjb25kKSBkbyB7ICAgICAgIFwKLSAgICAgICAgdW5pb24geyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHN0cnVjdCB7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICB2b2lkKiBh
OyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICB2b2lkKiBiOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIH0gcGFpcjsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGludDY0X3QgaTsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSBfX3J0X3U7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX19ydF91LnBhaXIuYSA9IGZpcnN0OyAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICAgICAgX19ydF91LnBhaXIuYiA9IHNlY29uZDsgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIF9fcnRfdS5pOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChmaXJzdCwgc2Vjb25kKTsgICAg
ICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElOVF9FTkRfSU1QTCgpIExM
SU5UX1JFVFVSTl9UV08ocGMsIGV4ZWMpCkBAIC0xNjcsNyArMTU4LDYgQEAgZXh0ZXJuICJDIiBT
bG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhYwogCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJu
VHlwZSBsbGludF90cmFjZV92YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYywg
aW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICBK
U1ZhbHVlIHZhbHVlID0gTExJTlRfT1BfQyhvcGVyYW5kKS5qc1ZhbHVlKCk7CiAgICAgdW5pb24g
ewogICAgICAgICBzdHJ1Y3QgewpAQCAtMTg4LDE0ICsxNzgsMTMgQEAgZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhYwogICAgICAgICAgICAgdS5iaXRzLnRhZywKICAgICAg
ICAgICAgIHUuYml0cy5wYXlsb2FkLAogICAgICAgICAgICAgdmFsdWUuZGVzY3JpcHRpb24oKSk7
Ci0gICAgTExJTlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lNUEwoKTsKIH0KIAogTExJTlRfU0xP
V19QQVRIX0RFQ0wodHJhY2VfcHJvbG9ndWUpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICBk
YXRhTG9nKCIlcCAvICVwOiBpbiBwcm9sb2d1ZS5cbiIsIGV4ZWMtPmNvZGVCbG9jaygpLCBleGVj
KTsKLSAgICBMTElOVF9FTkQoKTsKKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQogCiBzdGF0aWMg
dm9pZCB0cmFjZUZ1bmN0aW9uUHJvbG9ndWUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBjaGFyKiBj
b21tZW50LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCkBAIC0yMTEsNTQgKzIwMCw1MiBA
QCBzdGF0aWMgdm9pZCB0cmFjZUZ1bmN0aW9uUHJvbG9ndWUoRXhlY1N0CiAKIExMSU5UX1NMT1df
UEFUSF9ERUNMKHRyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQogewotICAgIExMSU5U
X0JFR0lOKCk7CiAgICAgdHJhY2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMsICJjYWxsIHByb2xvZ3Vl
IiwgQ29kZUZvckNhbGwpOwotICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX0VORF9JTVBMKCk7
CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9j
b25zdHJ1Y3QpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICB0cmFjZUZ1bmN0aW9uUHJvbG9n
dWUoZXhlYywgImNvbnN0cnVjdCBwcm9sb2d1ZSIsIENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIExM
SU5UX0VORCgpOworICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9E
RUNMKHRyYWNlX2FyaXR5Q2hlY2tfZm9yX2NhbGwpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAg
ICB0cmFjZUZ1bmN0aW9uUHJvbG9ndWUoZXhlYywgImNhbGwgYXJpdHkgY2hlY2siLCBDb2RlRm9y
Q2FsbCk7Ci0gICAgTExJTlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lNUEwoKTsKIH0KIAogTExJ
TlRfU0xPV19QQVRIX0RFQ0wodHJhY2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQogewotICAg
IExMSU5UX0JFR0lOKCk7CiAgICAgdHJhY2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMsICJjb25zdHJ1
Y3QgYXJpdHkgY2hlY2siLCBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICBMTElOVF9FTkQoKTsKKyAg
ICBMTElOVF9FTkRfSU1QTCgpOwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZSkKIHsK
LSAgICBMTElOVF9CRUdJTigpOwogICAgIGRhdGFMb2coIiVwIC8gJXA6IGV4ZWN1dGluZyBiYyMl
enUsICVzLCBzY29wZSAlcFxuIiwKICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLAogICAg
ICAgICAgICAgZXhlYywKICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4
ZWMtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKICAgICAgICAgICAgIG9w
Y29kZU5hbWVzW2V4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNb
MF0udS5vcGNvZGUpXSwKICAgICAgICAgICAgIGV4ZWMtPnNjb3BlQ2hhaW4oKSk7Ci0gICAgTExJ
TlRfRU5EKCk7CisgICAgaWYgKGV4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+Z2V0T3Bj
b2RlSUQocGNbMF0udS5vcGNvZGUpID09IG9wX3JldCkgeworICAgICAgICBkYXRhTG9nKCJXaWxs
IGJlIHJldHVybmluZyB0byAlcFxuIiwgZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICAg
ICAgZGF0YUxvZygiVGhlIG5ldyBjZnIgd2lsbCBiZSAlcFxuIiwgZXhlYy0+Y2FsbGVyRnJhbWUo
KSk7CisgICAgfQorICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9E
RUNMKHNwZWNpYWxfdHJhY2UpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICBkYXRhTG9nKCIl
cCAvICVwOiBleGVjdXRpbmcgc3BlY2lhbCBjYXNlIGJjIyV6dSwgb3AjJXUsIHJldHVybiBQQyBp
cyAlcFxuIiwKICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLAogICAgICAgICAgICAgZXhl
YywKICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9j
aygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKICAgICAgICAgICAgIGV4ZWMtPmdsb2JhbERh
dGEoKS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpLAogICAgICAgICAg
ICAgZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKLSAgICBMTElOVF9FTkQoKTsKKyAgICBMTElO
VF9FTkRfSU1QTCgpOwogfQogCiBpbmxpbmUgYm9vbCBzaG91bGRKSVQoRXhlY1N0YXRlKiBleGVj
KQpAQCAtMTQwNyw3ICsxMzk0LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2Nh
bGxfdmFyYQogICAgIAogICAgIGV4ZWNDYWxsZWUtPnVuY2hlY2tlZFIoUmVnaXN0ZXJGaWxlOjpD
YWxsZWUpID0gY2FsbGVlQXNWYWx1ZTsKICAgICBleGVjQ2FsbGVlLT5zZXRDYWxsZXJGcmFtZShl
eGVjKTsKLSAgICBleGVjLT51bmNoZWNrZWRSKFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRDb3VudCku
dGFnKCkgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4ocGMgKyBPUENPREVfTEVOR1RIKG9wX2NhbGxf
dmFyYXJncykpOworICAgIGV4ZWMtPnNldEN1cnJlbnRWUEMocGMgKyBPUENPREVfTEVOR1RIKG9w
X2NhbGxfdmFyYXJncykpOwogICAgIAogICAgIHJldHVybiBzZXRVcENhbGwoZXhlY0NhbGxlZSwg
cGMsIENvZGVGb3JDYWxsLCBjYWxsZWVBc1ZhbHVlKTsKIH0KQEAgLTE0MjUsNyArMTQxMiw3IEBA
IExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX2V2YWwKICAgICBleGVjQ2FsbGVl
LT5zZXRTY29wZUNoYWluKGV4ZWMtPnNjb3BlQ2hhaW4oKSk7CiAgICAgZXhlY0NhbGxlZS0+c2V0
UmV0dXJuUEMoYml0d2lzZV9jYXN0PEluc3RydWN0aW9uKj4oJmxsaW50X2dlbmVyaWNfcmV0dXJu
X3BvaW50KSk7CiAgICAgZXhlY0NhbGxlZS0+c2V0Q29kZUJsb2NrKDApOwotICAgIGV4ZWMtPnVu
Y2hlY2tlZFIoUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KS50YWcoKSA9IGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihwYyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF9ldmFsKSk7CisgICAgZXhlYy0+
c2V0Q3VycmVudFZQQyhwYyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF9ldmFsKSk7CiAgICAgCiAg
ICAgaWYgKCFpc0hvc3RGdW5jdGlvbihjYWxsZWVBc1ZhbHVlLCBnbG9iYWxGdW5jRXZhbCkpCiAg
ICAgICAgIHJldHVybiBzZXRVcENhbGwoZXhlY0NhbGxlZSwgcGMsIENvZGVGb3JDYWxsLCBjYWxs
ZWVBc1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQ
YXRocy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNs
b3dQYXRocy5oCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTExJbnRTbG93UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsNDAgQEAgc3Ry
dWN0IEluc3RydWN0aW9uOwogCiBuYW1lc3BhY2UgTExJbnQgewogCisjaWYgVVNFKEpTVkFMVUU2
NCkKK3N0cnVjdCBTbG93UGF0aFJldHVyblR5cGUgeworICAgIHZvaWQqIGE7CisgICAgdm9pZCog
YjsKKyAgICAKKyAgICBTbG93UGF0aFJldHVyblR5cGUodm9pZCogYSwgdm9pZCogYikKKyAgICAg
ICAgOiBhKGEpCisgICAgICAgICwgYihiKQorICAgIHsKKyAgICB9Cit9OworCitpbmxpbmUgU2xv
d1BhdGhSZXR1cm5UeXBlIGVuY29kZVJlc3VsdCh2b2lkKiBhLCB2b2lkKiBiKQoreworICAgIHJl
dHVybiBTbG93UGF0aFJldHVyblR5cGUoYSwgYik7Cit9CisjZWxzZQogdHlwZWRlZiBpbnQ2NF90
IFNsb3dQYXRoUmV0dXJuVHlwZTsKIAoraW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBlbmNvZGVS
ZXN1bHQodm9pZCogYSwgdm9pZCogYikKK3sKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7
CisgICAgICAgICAgICB2b2lkKiBhOworICAgICAgICAgICAgdm9pZCogYjsKKyAgICAgICAgfSBw
YWlyOworICAgICAgICBpbnQ2NF90IGk7CisgICAgfSB1OworICAgIHUucGFpci5hID0gYTsKKyAg
ICB1LnBhaXIuYiA9IGI7CisgICAgcmV0dXJuIHUuaTsKK30KKyNlbmRpZgorCiBleHRlcm4gIkMi
IFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV9vcGVyYW5kKEV4ZWNTdGF0ZSosIEluc3Ry
dWN0aW9uKiwgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpOwogZXh0ZXJuICJDIiBTbG93UGF0
aFJldHVyblR5cGUgbGxpbnRfdHJhY2VfdmFsdWUoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qLCBp
bnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZp
c2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtNzAsMjggKzcwLDYgQEAKICMgQmVs
b3cgd2UgaGF2ZSBhIGJ1bmNoIG9mIGNvbnN0YW50IGRlY2xhcmF0aW9ucy4gRWFjaCBjb25zdGFu
dCBtdXN0IGhhdmUKICMgYSBjb3JyZXNwb25kaW5nIEFTU0VSVCgpIGluIExMSW50RGF0YS5jcHAu
CiAKLSMgVGhlc2UgZGVjbGFyYXRpb25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0ZXJG
aWxlLmguCi1jb25zdCBDYWxsRnJhbWVIZWFkZXJTaXplID0gNDgKLWNvbnN0IEFyZ3VtZW50Q291
bnQgPSAtNDgKLWNvbnN0IENhbGxlckZyYW1lID0gLTQwCi1jb25zdCBDYWxsZWUgPSAtMzIKLWNv
bnN0IFNjb3BlQ2hhaW4gPSAtMjQKLWNvbnN0IFJldHVyblBDID0gLTE2Ci1jb25zdCBDb2RlQmxv
Y2sgPSAtOAotCi1jb25zdCBUaGlzQXJndW1lbnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVyU2l6
ZSAtIDgKLQotIyBEZWNsYXJlIHNvbWUgYWxpYXNlcyBmb3IgdGhlIHJlZ2lzdGVycyB3ZSB3aWxs
IHVzZS4KLWNvbnN0IFBDID0gdDQKLQotIyBPZmZzZXRzIG5lZWRlZCBmb3IgcmVhc29uaW5nIGFi
b3V0IHZhbHVlIHJlcHJlc2VudGF0aW9uLgotaWYgQklHX0VORElBTgotICAgIGNvbnN0IFRhZ09m
ZnNldCA9IDAKLSAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gNAotZWxzZQotICAgIGNvbnN0IFRh
Z09mZnNldCA9IDQKLSAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gMAotZW5kCiAKICMgVmFsdWUg
cmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgogY29uc3QgSW50MzJUYWcgPSAtMQpAQCAtMTAzLDcx
ICs4MSw4IEBAIGNvbnN0IEVtcHR5VmFsdWVUYWcgPSAtNgogY29uc3QgRGVsZXRlZFZhbHVlVGFn
ID0gLTcKIGNvbnN0IExvd2VzdFRhZyA9IERlbGV0ZWRWYWx1ZVRhZwogCi0jIFR5cGUgY29uc3Rh
bnRzLgotY29uc3QgU3RyaW5nVHlwZSA9IDUKLWNvbnN0IE9iamVjdFR5cGUgPSAxMwotCi0jIFR5
cGUgZmxhZ3MgY29uc3RhbnRzLgotY29uc3QgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDEKLWNv
bnN0IEltcGxlbWVudHNIYXNJbnN0YW5jZSA9IDIKLWNvbnN0IEltcGxlbWVudHNEZWZhdWx0SGFz
SW5zdGFuY2UgPSA4Ci0KLSMgSGVhcCBhbGxvY2F0aW9uIGNvbnN0YW50cy4KLWNvbnN0IEpTRmlu
YWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDMKLQotIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0YW50
cy4KLWNvbnN0IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gMHg0MDAwMDAwMAotCi0jIENv
ZGUgdHlwZSBjb25zdGFudHMuCi1jb25zdCBHbG9iYWxDb2RlID0gMAotY29uc3QgRXZhbENvZGUg
PSAxCi1jb25zdCBGdW5jdGlvbkNvZGUgPSAyCi0KLSMgVGhlIGludGVycHJldGVyIHN0ZWFscyB0
aGUgdGFnIHdvcmQgb2YgdGhlIGFyZ3VtZW50IGNvdW50LgotY29uc3QgTExJbnRSZXR1cm5QQyA9
IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXQKLQotIyBUaGlzIG11c3QgbWF0Y2ggd3RmL1ZlY3Rv
ci5oLgotY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKLWNvbnN0IFZlY3RvckJ1ZmZlck9mZnNl
dCA9IDQKLQotIyBTdHJpbmcgZmxhZ3MuCi1jb25zdCBIYXNoRmxhZ3M4Qml0QnVmZmVyID0gNjQK
IAogIyBVdGlsaXRpZXMKLW1hY3JvIGNyYXNoKCkKLSAgICBzdG9yZWkgMCwgMHhiYmFkYmVlZltd
Ci0gICAgbW92ZSAwLCB0MAotICAgIGNhbGwgdDAKLWVuZAotCi1tYWNybyBhc3NlcnQoYXNzZXJ0
aW9uKQotICAgIGlmIEFTU0VSVF9FTkFCTEVECi0gICAgICAgIGFzc2VydGlvbigub2spCi0gICAg
ICAgIGNyYXNoKCkKLSAgICAub2s6Ci0gICAgZW5kCi1lbmQKLQotbWFjcm8gcHJlc2VydmVSZXR1
cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCi0gICAgaWYgQVJNdjcKLSAg
ICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2lmIFg4NgotICAgICAg
ICBwb3AgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2UKLSAgICAgICAgZXJyb3IKLSAgICBl
bmQKLWVuZAotCi1tYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9yZVJldHVybihzb3VyY2VS
ZWdpc3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIHNvdXJjZVJlZ2lzdGVyLCBscgot
ICAgIGVsc2lmIFg4NgotICAgICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVyCi0gICAgZWxzZQotICAg
ICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KIG1hY3JvIGRpc3BhdGNoKGFkdmFuY2UpCiAgICAg
YWRkcCBhZHZhbmNlICogNCwgUEMKICAgICBqbXAgW1BDXQpAQCAtMjIwLDggKzEzNSw4IEBAIG1h
Y3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywKICAgICBjYWxsIGZ1bmN0aW9u
CiBlbmQKIAotbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKLSAgICBjQ2FsbDIoc2xvd19w
YXRoLCBjZnIsIFBDKQorbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGNDYWxsMihz
bG93UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQwLCBQQwogICAgIG1vdmUgdDEsIGNmcgogZW5k
CkBAIC0yNDUsNDAgKzE2MCwxNSBAQCBtYWNybyB0cmFjZVZhbHVlKGZyb21XaGVyZSwgb3BlcmFu
ZCkKICAgICBtb3ZlIHQxLCBjZnIKIGVuZAogCi1tYWNybyB0cmFjZUV4ZWN1dGlvbigpCi0gICAg
aWYgRVhFQ1VUSU9OX1RSQUNJTkcKLSAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF90cmFjZSkK
LSAgICBlbmQKLWVuZAotCi0jIENhbGwgYSBzbG93X3BhdGggZm9yIGNhbGwgb3Bjb2Rlcy4KLW1h
Y3JvIGNhbGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd19wYXRoLCBhY3Rpb24pCisjIENhbGwg
YSBzbG93UGF0aCBmb3IgY2FsbCBvcGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZh
bmNlLCBzbG93UGF0aCwgYWN0aW9uKQogICAgIGFkZHAgYWR2YW5jZSAqIDQsIFBDLCB0MAogICAg
IHN0b3JlcCB0MCwgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCi0gICAgY0NhbGwyKHNs
b3dfcGF0aCwgY2ZyLCBQQykKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCiAgICAgbW92
ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAKLW1hY3JvIHNsb3dQYXRoRm9yQ2FsbChh
ZHZhbmNlLCBzbG93X3BhdGgpCi0gICAgY2FsbENhbGxTbG93UGF0aCgKLSAgICAgICAgYWR2YW5j
ZSwKLSAgICAgICAgc2xvd19wYXRoLAotICAgICAgICBtYWNybyAoY2FsbGVlKQotICAgICAgICAg
ICAgY2FsbCBjYWxsZWUKLSAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLSAgICAgICAg
ZW5kKQotZW5kCi0KLW1hY3JvIGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24pCi0g
ICAgaWYgSklUX0VOQUJMRUQKLSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAg
ICAgIGJhZGRpcyBpbmNyZW1lbnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsg
RXhlY3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QwXSwgLmNvbnRpbnVlCi0gICAgICAgIGFjdGlv
bigpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotZW5kCi0KIG1hY3JvIGNoZWNrU3dpdGNoVG9K
SVRGb3JMb29wKCkKICAgICBjaGVja1N3aXRjaFRvSklUKAogICAgICAgICAxLApAQCAtMjkzLDE4
ICsxODMsNiBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgpCiAgICAgICAgIGVuZCkK
IGVuZAogCi1tYWNybyBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQotICAgIGNoZWNrU3dp
dGNoVG9KSVQoCi0gICAgICAgIDEwLAotICAgICAgICBtYWNybyAoKQotICAgICAgICAgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gYXNz
ZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCi0gICAgYXNzZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwg
Rmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIG9rIGVuZCkKLWVuZAotCiAjIEluZGV4LCB0YWcs
IGFuZCBwYXlsb2FkIG11c3QgYmUgZGlmZmVyZW50IHJlZ2lzdGVycy4gSW5kZXggaXMgbm90CiAj
IGNoYW5nZWQuCiBtYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB0YWcsIHBheWxv
YWQpCkBAIC0zODYsMTA5ICsyNjQsOCBAQCBtYWNybyB2YWx1ZVByb2ZpbGUodGFnLCBwYXlsb2Fk
LCBwcm9maWxlCiBlbmQKIAogCi0jIEluZGljYXRlIHRoZSBiZWdpbm5pbmcgb2YgTExJbnQuCi1f
bGxpbnRfYmVnaW46Ci0gICAgY3Jhc2goKQotCi0KICMgRW50cnlwb2ludHMgaW50byB0aGUgaW50
ZXJwcmV0ZXIKIAotbWFjcm8gZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJl
Z2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRw
IEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVy
Ci0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNhbGxbdGFyZ2V0
UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgotZW5kCi0KLW1hY3JvIGZ1bmN0aW9uRm9yQ29uc3Ry
dWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtjZnJd
LCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJn
ZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxl
OjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVy
Ci1lbmQKLQotbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIp
Ci0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQKLQotbWFjcm8g
ZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0gICAgc3RvcmVwIHNvdXJj
ZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQotZW5kCi0KLW1hY3JvIG5vdEZ1bmN0aW9uQ29kZUJs
b2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQotICAgICMgTm90aGluZyB0byBkbyEKLWVuZAotCi0j
IERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBjb2RlLiBTZXRzIHVwIHRo
ZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKLSMgaW4gdDEuIE1heSBhbHNvIHRyaWdnZXIgcHJv
bG9ndWUgZW50cnkgT1NSLgotbWFjcm8gcHJvbG9ndWUoY29kZUJsb2NrR2V0dGVyLCBjb2RlQmxv
Y2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQotICAgIHByZXNlcnZlUmV0dXJu
QWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAKLSAgICAjIFNldCB1cCB0aGUgY2FsbCBmcmFtZSBh
bmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KLSAgICBzdG9yZXAgdDIsIFJldHVyblBDW2Nmcl0K
LSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAgICAgICBjYWxsU2xvd1BhdGgodHJhY2VTbG93
UGF0aCkKLSAgICBlbmQKLSAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCi0gICAgaWYgSklUX0VOQUJM
RUQKLSAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsg
RXhlY3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QxXSwgLmNvbnRpbnVlCi0gICAgICAgIGNDYWxs
Mihvc3JTbG93UGF0aCwgY2ZyLCBQQykKLSAgICAgICAgbW92ZSB0MSwgY2ZyCi0gICAgICAgIGJ0
cHogdDAsIC5yZWNvdmVyCi0gICAgICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgICAg
IHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQotICAgICAgICBqbXAgdDAKLSAg
ICAucmVjb3ZlcjoKLSAgICAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQotICAgIC5jb250aW51ZToK
LSAgICBlbmQKLSAgICBjb2RlQmxvY2tTZXR0ZXIodDEpCi0gICAgCi0gICAgIyBTZXQgdXAgdGhl
IFBDLgotICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQwotZW5kCi0K
LSMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1
ZSgpIGxlYXZlcyBiZWhpbmQuCi0jIE11c3QgY2FsbCBkaXNwYXRjaCgwKSBhZnRlciBjYWxsaW5n
IHRoaXMuCi1tYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTa2lwKQotICAg
IGlmIFZBTFVFX1BST0ZJTEVSCi0gICAgICAgICMgUHJvZmlsZSB0aGUgYXJndW1lbnRzLiBVbmZv
cnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIGNob2ljZSBidXQgdG8gZG8gdGhpcy4gVGhpcwotICAgICAg
ICAjIGNvZGUgaXMgcHJldHR5IGhvcnJlbmRvdXMgYmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBp
biBvcmRlcmluZyBiZXR3ZWVuCi0gICAgICAgICMgYXJndW1lbnRzIGFuZCB2YWx1ZSBwcm9maWxl
cywgdGhlIGRlc2lyZSB0byBoYXZlIGEgc2ltcGxlIGxvb3AtZG93bi10by16ZXJvCi0gICAgICAg
ICMgbG9vcCwgYW5kIHRoZSBkZXNpcmUgdG8gdXNlIG9ubHkgdGhyZWUgcmVnaXN0ZXJzIHNvIGFz
IHRvIHByZXNlcnZlIHRoZSBQQyBhbmQKLSAgICAgICAgIyB0aGUgY29kZSBibG9jay4gSXQgaXMg
bGlrZWx5IHRoYXQgdGhpcyBjb2RlIHNob3VsZCBiZSByZXdyaXR0ZW4gaW4gYSBtb3JlCi0gICAg
ICAgICMgb3B0aW1hbCB3YXkgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBoYXZlIG1vcmUgdGhhbiBm
aXZlIHJlZ2lzdGVycyBhdmFpbGFibGUKLSAgICAgICAgIyBmb3IgYXJiaXRyYXJ5IHVzZSBpbiB0
aGUgaW50ZXJwcmV0ZXIuCi0gICAgICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJz
W3QxXSwgdDAKLSAgICAgICAgYWRkaSAtcHJvZmlsZUFyZ1NraXAsIHQwICMgVXNlIGFkZGkgYmVj
YXVzZSB0aGF0J3Mgd2hhdCBoYXMgdGhlIHBlZXBob2xlCi0gICAgICAgIGFzc2VydChtYWNybyAo
b2spIGJpZ3RlcSB0MCwgMCwgb2sgZW5kKQotICAgICAgICBidGl6IHQwLCAuYXJndW1lbnRQcm9m
aWxlRG9uZQotICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fYXJndW1lbnRWYWx1ZVByb2ZpbGVz
ICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QxXSwgdDMKLSAgICAgICAgbXVsaSBzaXplb2YgVmFsdWVQ
cm9maWxlLCB0MCwgdDIgIyBBYWFhYWhoaGghIE5lZWQgc3RyZW5ndGggcmVkdWN0aW9uIQotICAg
ICAgICBuZWdpIHQwCi0gICAgICAgIGxzaGlmdGkgMywgdDAKLSAgICAgICAgYWRkcCB0MiwgdDMK
LSAgICAuYXJndW1lbnRQcm9maWxlTG9vcDoKLSAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zm
c2V0ICsgVGFnT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKLSAg
ICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MwotICAgICAgICBzdG9yZWkgdDIsIHBy
b2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNr
ZXRzICsgVGFnT2Zmc2V0W3QzXQotICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBQ
YXlsb2FkT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKLSAgICAg
ICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1
ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRPZmZzZXRbdDNdCi0gICAgICAgIGJhZGRpbnog
OCwgdDAsIC5hcmd1bWVudFByb2ZpbGVMb29wCi0gICAgLmFyZ3VtZW50UHJvZmlsZURvbmU6Ci0g
ICAgZW5kCi0gICAgICAgIAotICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgotICAgIGxvYWRpIENv
ZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAotICAgIGxvYWRwIENvZGVCbG9j
azo6bV9nbG9iYWxEYXRhW3QxXSwgdDIKLSAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmludGVycHJl
dGVyW3QyXSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdpc3RlckZpbGUgZnJvbSB0
aGUgSklUU3RhY2tGcmFtZQotICAgIGxzaGlmdGkgMywgdDAKLSAgICBhZGRwIHQwLCBjZnIsIHQw
Ci0gICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsgUmVnaXN0ZXJGaWxlOjpt
X2VuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwotCi0gICAgIyBTdGFjayBoZWlnaHQgY2hlY2sg
ZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKLS5zdGFja0hlaWdodE9LOgotZW5kCi0KICMgRXhwZWN0
cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZl
cyBiZWhpbmQuCiBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93X3BhdGgp
CiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRbY2ZyXSwgdDAKQEAgLTUw
NiwzOCArMjgzLDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvdwog
ICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi1fbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZToKLSAgICBw
cm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxvY2tT
ZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKLSAgICBkaXNw
YXRjaCgwKQotCi0KLV9sbGludF9ldmFsX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0
aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2Vu
dHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xs
aW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9y
Q2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRy
eV9vc3JfZnVuY3Rpb25fZm9yX2NhbGwsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9m
b3JfY2FsbCkKLS5mdW5jdGlvbkZvckNhbGxCZWdpbjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0
aW9uKDApCi0gICAgZGlzcGF0Y2goMCkKLSAgICAKLQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3RfcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxv
Y2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0
aW9uX2Zvcl9jb25zdHJ1Y3QsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY29u
c3RydWN0KQotLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW46Ci0gICAgZnVuY3Rpb25Jbml0aWFs
aXphdGlvbigxKQotICAgIGRpc3BhdGNoKDApCi0gICAgCi0KLV9sbGludF9mdW5jdGlvbl9mb3Jf
Y2FsbF9hcml0eV9jaGVjazoKLSAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tH
ZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9u
X2Zvcl9jYWxsX2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9jYWxsKQot
ICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDYWxsQmVnaW4sIF9sbGludF9zbG93
X3BhdGhfY2FsbF9hcml0eUNoZWNrKQotCi0KLV9sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0
X2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2Nr
R2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlv
bl9mb3JfY29uc3RydWN0X2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9j
b25zdHJ1Y3QpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNvbnN0cnVjdEJl
Z2luLCBfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNoZWNrKQogCiAjIEluc3RydWN0
aW9uIGltcGxlbWVudGF0aW9ucwogCkBAIC01ODMsMzkgKzMyOCw2IEBAIF9sbGludF9vcF9jcmVh
dGVfYXJndW1lbnRzOgogICAgIGRpc3BhdGNoKDIpCiAKIAotbWFjcm8gYWxsb2NhdGVCYXNpY0pT
T2JqZWN0KHNpemVDbGFzc0luZGV4LCBjbGFzc0luZm9PZmZzZXQsIHN0cnVjdHVyZSwgcmVzdWx0
LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNsb3dDYXNlKQotICAgIGlmIEFMV0FZU19BTExPQ0FURV9T
TE9XCi0gICAgICAgIGptcCBzbG93Q2FzZQotICAgIGVsc2UKLSAgICAgICAgY29uc3Qgb2Zmc2V0
T2ZNeVNpemVDbGFzcyA9Ci0gICAgICAgICAgICBKU0dsb2JhbERhdGE6OmhlYXAgKwotICAgICAg
ICAgICAgSGVhcDo6bV9vYmplY3RTcGFjZSArCi0gICAgICAgICAgICBNYXJrZWRTcGFjZTo6bV9u
b3JtYWxTcGFjZSArCi0gICAgICAgICAgICBNYXJrZWRTcGFjZTo6U3Vic3BhY2U6OnByZWNpc2VB
bGxvY2F0b3JzICsKLSAgICAgICAgICAgIHNpemVDbGFzc0luZGV4ICogc2l6ZW9mIE1hcmtlZEFs
bG9jYXRvcgotICAgICAgICAKLSAgICAgICAgIyBGSVhNRTogd2UgY2FuIGdldCB0aGUgZ2xvYmFs
IGRhdGEgaW4gb25lIGxvYWQgZnJvbSB0aGUgc3RhY2suCi0gICAgICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCBzY3JhdGNoMQotICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVtz
Y3JhdGNoMV0sIHNjcmF0Y2gxCi0gICAgICAgIAotICAgICAgICAjIEdldCB0aGUgb2JqZWN0IGZy
b20gdGhlIGZyZWUgbGlzdC4gICAgCi0gICAgICAgIGxvYWRwIG9mZnNldE9mTXlTaXplQ2xhc3Mg
KyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0sIHJlc3VsdAotICAg
ICAgICBidHB6IHJlc3VsdCwgc2xvd0Nhc2UKLSAgICAgICAgCi0gICAgICAgICMgUmVtb3ZlIHRo
ZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LgotICAgICAgICBsb2FkcCBbcmVzdWx0XSwgc2Ny
YXRjaDIKLSAgICAgICAgc3RvcmVwIHNjcmF0Y2gyLCBvZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFy
a2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2NyYXRjaDFdCi0gICAgCi0gICAgICAgICMg
SW5pdGlhbGl6ZSB0aGUgb2JqZWN0LgotICAgICAgICBsb2FkcCBjbGFzc0luZm9PZmZzZXRbc2Ny
YXRjaDFdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIFtyZXN1bHRdCi0gICAg
ICAgIHN0b3JlcCBzdHJ1Y3R1cmUsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbcmVzdWx0XQotICAgICAg
ICBzdG9yZXAgMCwgSlNPYmplY3Q6Om1faW5oZXJpdG9ySURbcmVzdWx0XQotICAgICAgICBhZGRw
IHNpemVvZiBKU09iamVjdCwgcmVzdWx0LCBzY3JhdGNoMQotICAgICAgICBzdG9yZXAgc2NyYXRj
aDEsIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVtyZXN1bHRdCi0gICAgZW5kCi1lbmQKLQog
X2xsaW50X29wX2NyZWF0ZV90aGlzOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4
W1BDXSwgdDAKQEAgLTY3NiwyNCArMzg4LDYgQEAgX2xsaW50X29wX25ld19vYmplY3Q6CiAgICAg
ZGlzcGF0Y2goMikKIAogCi1fbGxpbnRfb3BfbmV3X2FycmF5OgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfYXJyYXkpCi0gICAgZGlz
cGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbmV3X2FycmF5X2J1ZmZlcjoKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2FycmF5X2J1ZmZl
cikKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9uZXdfcmVnZXhwOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfcmVnZXhw
KQotICAgIGRpc3BhdGNoKDMpCi0KLQogX2xsaW50X29wX21vdjoKICAgICB0cmFjZUV4ZWN1dGlv
bigpCiAgICAgbG9hZGkgOFtQQ10sIHQxCkBAIC04MDIsNyArNDk2LDcgQEAgX2xsaW50X29wX25l
cV9udWxsOgogICAgIGRpc3BhdGNoKDMpCiAKIAotbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVy
YXRpb24sIHNsb3dfcGF0aCkKK21hY3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93
UGF0aCkKICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10sIHQwCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQpAQCAtODIyLDcgKzUxNiw3IEBAIG1hY3Jv
IHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93X3AKICAgICBkaXNwYXRjaCg0KQogCiAu
c2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoc2xvd19wYXRoKQorICAgIGNhbGxTbG93UGF0aChzbG93
UGF0aCkKICAgICBkaXNwYXRjaCg0KQogZW5kCiAKQEAgLTgzNiwzMCArNTMwLDYgQEAgX2xsaW50
X29wX25zdHJpY3RlcToKICAgICBzdHJpY3RFcShtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkg
Y2luZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsIF9sbGludF9zbG93X3BhdGhfbnN0cmljdGVx
KQogCiAKLV9sbGludF9vcF9sZXNzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50
X29wX2xlc3NlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfbGVzc2VxKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX2dyZWF0
ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX2dyZWF0ZXIpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfZ3JlYXRlcmVxOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9n
cmVhdGVyZXEpCi0gICAgZGlzcGF0Y2goNCkKLQotCiBfbGxpbnRfb3BfcHJlX2luYzoKICAgICB0
cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgNFtQQ10sIHQwCkBAIC05NjgsNyArNjM4LDcgQEAg
X2xsaW50X29wX25lZ2F0ZToKICAgICBkaXNwYXRjaCgzKQogCiAKLW1hY3JvIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlLCBkb3VibGVPcGVyYXRpb24sIHNsb3df
cGF0aCkKK21hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGlvbkFuZFN0b3Jl
LCBkb3VibGVPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBs
b2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MywgdDEpCkBA
IC0xMDA2LDE4ICs2NzYsMTggQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3Bl
cmF0aQogICAgIGRpc3BhdGNoKDUpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3Bh
dGgpCisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKDUpCiBlbmQKIAot
bWFjcm8gYmluYXJ5T3AoaW50ZWdlck9wZXJhdGlvbiwgZG91YmxlT3BlcmF0aW9uLCBzbG93X3Bh
dGgpCittYWNybyBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBkb3VibGVPcGVyYXRpb24sIHNs
b3dQYXRoKQogICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCiAgICAgICAgIG1hY3JvIChpbnQzMlRh
ZywgbGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQogICAgICAgICAgICAgaW50ZWdlck9wZXJhdGlv
bihsZWZ0LCByaWdodCwgc2xvdykKICAgICAgICAgICAgIHN0b3JlaSBpbnQzMlRhZywgVGFnT2Zm
c2V0W2NmciwgaW5kZXgsIDhdCiAgICAgICAgICAgICBzdG9yZWkgcmlnaHQsIFBheWxvYWRPZmZz
ZXRbY2ZyLCBpbmRleCwgOF0KICAgICAgICAgZW5kLAotICAgICAgICBkb3VibGVPcGVyYXRpb24s
IHNsb3dfcGF0aCkKKyAgICAgICAgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKIGVuZAogCiBf
bGxpbnRfb3BfYWRkOgpAQCAtMTA3MywxMyArNzQzLDcgQEAgX2xsaW50X29wX2RpdjoKICAgICAg
ICAgX2xsaW50X3Nsb3dfcGF0aF9kaXYpCiAKIAotX2xsaW50X29wX21vZDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbW9kKQotICAgIGRp
c3BhdGNoKDQpCi0KLQotbWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93X3BhdGgsIGFkdmFuY2Up
CittYWNybyBiaXRPcChvcGVyYXRpb24sIHNsb3dQYXRoLCBhZHZhbmNlKQogICAgIGxvYWRpIDEy
W1BDXSwgdDIKICAgICBsb2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHQyLCB0MywgdDEpCkBAIC0xMDkzLDcgKzc1Nyw3IEBAIG1hY3JvIGJpdE9wKG9wZXJhdGlvbiwg
c2xvd19wYXRoLCBhZHZhbmMKICAgICBkaXNwYXRjaChhZHZhbmNlKQogCiAuc2xvdzoKLSAgICBj
YWxsU2xvd1BhdGgoc2xvd19wYXRoKQorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAgICBk
aXNwYXRjaChhZHZhbmNlKQogZW5kCiAKQEAgLTExOTgsNjYgKzg2Miw2IEBAIF9sbGludF9vcF9p
bnN0YW5jZW9mOgogICAgIGRpc3BhdGNoKDUpCiAKIAotX2xsaW50X29wX3R5cGVvZjoKLSAgICB0
cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdHlwZW9m
KQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX3VuZGVmaW5lZDoKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfdW5kZWZp
bmVkKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX2Jvb2xlYW46Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX2Jvb2xl
YW4pCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfbnVtYmVyOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19udW1iZXIp
Ci0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfc3RyaW5nOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19zdHJpbmcpCi0g
ICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfb2JqZWN0OgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19vYmplY3QpCi0gICAg
ZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfZnVuY3Rpb246Ci0gICAgdHJhY2VFeGVjdXRp
b24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX2Z1bmN0aW9uKQotICAg
IGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2luOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbikKLSAgICBkaXNwYXRjaCg0KQotCi0K
LV9sbGludF9vcF9yZXNvbHZlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50
X29wX3Jlc29sdmVfc2tpcDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9za2lwKQotICAgIGRpc3BhdGNoKDUpCi0KLQogbWFj
cm8gcmVzb2x2ZUdsb2JhbChzaXplLCBzbG93KQogICAgICMgT3BlcmFuZHMgYXJlIGFzIGZvbGxv
d3M6CiAgICAgIyA0W1BDXSAgIERlc3RpbmF0aW9uIGZvciB0aGUgbG9hZC4KQEAgLTE0MDgsMzAg
KzEwMTIsNiBAQCBfbGxpbnRfb3BfcHV0X2dsb2JhbF92YXI6CiAgICAgZGlzcGF0Y2goMykKIAog
Ci1fbGxpbnRfb3BfcmVzb2x2ZV9iYXNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX2Jhc2UpCi0gICAgZGlzcGF0Y2goNSkK
LQotCi1fbGxpbnRfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0czoKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZW5zdXJlX3Byb3BlcnR5X2V4
aXN0cykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3dpdGhfYmFzZToK
LSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
cmVzb2x2ZV93aXRoX2Jhc2UpCi0gICAgZGlzcGF0Y2goNSkKLQotCi1fbGxpbnRfb3BfcmVzb2x2
ZV93aXRoX3RoaXM6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3Jlc29sdmVfd2l0aF90aGlzKQotICAgIGRpc3BhdGNoKDUpCi0KLQogX2xs
aW50X29wX2dldF9ieV9pZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgIyBXZSBvbmx5IGRv
IG1vbm9tb3JwaGljIGdldF9ieV9pZCBjYWNoaW5nIGZvciBub3csIGFuZCB3ZSBkbyBub3QgbW9k
aWZ5IHRoZQpAQCAtMTUzOSwxMiArMTExOSw2IEBAIF9sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNp
dGlvbl9ub3JtYWw6CiAgICAgICAgIGVuZCkKIAogCi1fbGxpbnRfb3BfZGVsX2J5X2lkOgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxf
YnlfaWQpCi0gICAgZGlzcGF0Y2goNCkKLQotCiBfbGxpbnRfb3BfZ2V0X2J5X3ZhbDoKICAgICB0
cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCkBAIC0xNjU2LDI0
ICsxMjMwLDYgQEAgX2xsaW50X29wX3B1dF9ieV92YWw6CiAgICAgZGlzcGF0Y2goNCkKIAogCi1f
bGxpbnRfb3BfZGVsX2J5X3ZhbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfZGVsX2J5X3ZhbCkKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9s
bGludF9vcF9wdXRfYnlfaW5kZXg6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pbmRleCkKLSAgICBkaXNwYXRjaCg0KQotCi0K
LV9sbGludF9vcF9wdXRfZ2V0dGVyX3NldHRlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9zZXR0ZXIpCi0gICAgZGlz
cGF0Y2goNSkKLQotCiBfbGxpbnRfb3BfbG9vcDoKICAgICBub3AKIF9sbGludF9vcF9qbXA6CkBA
IC0xNjgxLDEyICsxMjM3LDYgQEAgX2xsaW50X29wX2ptcDoKICAgICBkaXNwYXRjaEJyYW5jaCg0
W1BDXSkKIAogCi1fbGxpbnRfb3Bfam1wX3Njb3BlczoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfam1wX3Njb3BlcykKLSAgICBkaXNwYXRj
aCgwKQotCi0KIG1hY3JvIGp1bXBUcnVlT3JGYWxzZShjb25kaXRpb25PcCwgc2xvdykKICAgICBs
b2FkaSA0W1BDXSwgdDEKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MSwgQm9v
bGVhblRhZywgdDAsIC5zbG93KQpAQCAtMTcwMSwyNiArMTI1MSwxMCBAQCBtYWNybyBqdW1wVHJ1
ZU9yRmFsc2UoY29uZGl0aW9uT3AsIHNsb3cpCiAgICAgZGlzcGF0Y2goMCkKIGVuZAogCi1fbGxp
bnRfb3BfbG9vcF9pZl90cnVlOgotICAgIG5vcAotX2xsaW50X29wX2p0cnVlOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBqdW1wVHJ1ZU9yRmFsc2UoCi0gICAgICAgIG1hY3JvICh2YWx1ZSwg
dGFyZ2V0KSBidGlueiB2YWx1ZSwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9qdHJ1ZSkKLQotCi1fbGxpbnRfb3BfbG9vcF9pZl9mYWxzZToKLSAgICBub3AKLV9sbGludF9v
cF9qZmFsc2U6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGp1bXBUcnVlT3JGYWxzZSgKLSAg
ICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0aXogdmFsdWUsIHRhcmdldCBlbmQsCi0gICAg
ICAgIF9sbGludF9zbG93X3BhdGhfamZhbHNlKQotCiAKIG1hY3JvIGVxdWFsTnVsbChjZWxsSGFu
ZGxlciwgaW1tZWRpYXRlSGFuZGxlcikKICAgICBsb2FkaSA0W1BDXSwgdDAKKyAgICBhc3NlcnRO
b3RDb25zdGFudCh0MCkKICAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0sIHQxCiAgICAg
bG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBiaW5lcSB0MSwgQ2VsbFRh
ZywgLmltbWVkaWF0ZQpAQCAtMTc2Myw3ICsxMjk3LDcgQEAgX2xsaW50X29wX2puZXFfcHRyOgog
ICAgIGRpc3BhdGNoKDQpCiAKIAotbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91Ymxl
Q29tcGFyZSwgc2xvd19wYXRoKQorbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91Ymxl
Q29tcGFyZSwgc2xvd1BhdGgpCiAgICAgbG9hZGkgNFtQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10s
IHQzCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDAsIHQxKQpAQCAtMTc5Nyw4NyAr
MTMzMSwxMCBAQCBtYWNybyBjb21wYXJlKGludGVnZXJDb21wYXJlLCBkb3VibGVDb21wCiAgICAg
ZGlzcGF0Y2hCcmFuY2goMTJbUENdKQogCiAuc2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoc2xvd19w
YXRoKQorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAgICBkaXNwYXRjaCgwKQogZW5kCiAK
LV9sbGludF9vcF9sb29wX2lmX2xlc3M6Ci0gICAgbm9wCi1fbGxpbnRfb3Bfamxlc3M6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgdGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAo
bGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAg
ICAgX2xsaW50X3Nsb3dfcGF0aF9qbGVzcykKLQotCi1fbGxpbnRfb3Bfam5sZXNzOgotICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHRhcmdldCkgYmlndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAo
bGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndGVxdW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0g
ICAgICAgIF9sbGludF9zbG93X3BhdGhfam5sZXNzKQotCi0KLV9sbGludF9vcF9sb29wX2lmX2dy
ZWF0ZXI6Ci0gICAgbm9wCi1fbGxpbnRfb3BfamdyZWF0ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24o
KQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0
IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRh
cmdldCkgYmRndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3df
cGF0aF9qZ3JlYXRlcikKLQotCi1fbGxpbnRfb3Bfam5ncmVhdGVyOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkg
YmlsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVmdCwgcmln
aHQsIHRhcmdldCkgYmRsdGVxdW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIF9s
bGludF9zbG93X3BhdGhfam5ncmVhdGVyKQotCi0KLV9sbGludF9vcF9sb29wX2lmX2xlc3NlcToK
LSAgICBub3AKLV9sbGludF9vcF9qbGVzc2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBj
b21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdGVxIGxlZnQs
IHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkg
YmRsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRo
X2psZXNzZXEpCi0KLQotX2xsaW50X29wX2pubGVzc2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndCBs
ZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJn
ZXQpIGJkZ3R1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3df
cGF0aF9qbmxlc3NlcSkKLQotCi1fbGxpbnRfb3BfbG9vcF9pZl9ncmVhdGVyZXE6Ci0gICAgbm9w
Ci1fbGxpbnRfb3BfamdyZWF0ZXJlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFy
ZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdo
dCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3Rl
cSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZ3Jl
YXRlcmVxKQotCi0KLV9sbGludF9vcF9qbmdyZWF0ZXJlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHQg
bGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFy
Z2V0KSBiZGx0dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93
X3BhdGhfam5ncmVhdGVyZXEpCi0KLQotX2xsaW50X29wX2xvb3BfaGludDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQotICAgIGRpc3BhdGNoKDEp
Ci0KIAogX2xsaW50X29wX3N3aXRjaF9pbW06CiAgICAgdHJhY2VFeGVjdXRpb24oKQpAQCAtMTkz
MywxOSArMTM5MCwxMyBAQCBfbGxpbnRfb3Bfc3dpdGNoX2NoYXI6CiAgICAgYmlhZXEgdDAsIFNp
bXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvclNpemVPZmZzZXRbdDJdLCAub3BT
d2l0Y2hDaGFyRmFsbFRocm91Z2gKICAgICBsb2FkcCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9m
ZnNldHMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0MgogICAgIGxvYWRpIFt0MiwgdDAsIDRd
LCB0MQotICAgIGJ0aXogdDEsIC5vcFN3aXRjaEltbUZhbGxUaHJvdWdoCisgICAgYnRpeiB0MSwg
Lm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCiAgICAgZGlzcGF0Y2hCcmFuY2hXaXRoT2Zmc2V0KHQx
KQogCiAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2g6CiAgICAgZGlzcGF0Y2hCcmFuY2goOFtQQ10p
CiAKIAotX2xsaW50X29wX3N3aXRjaF9zdHJpbmc6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N3aXRjaF9zdHJpbmcpCi0gICAgZGlzcGF0
Y2goMCkKLQotCiBfbGxpbnRfb3BfbmV3X2Z1bmM6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAg
IGJ0aXogMTJbUENdLCAub3BOZXdGdW5jVW5jaGVja2VkCkBAIC0xOTU3LDEzICsxNDA4LDcgQEAg
X2xsaW50X29wX25ld19mdW5jOgogICAgIGRpc3BhdGNoKDQpCiAKIAotX2xsaW50X29wX25ld19m
dW5jX2V4cDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfbmV3X2Z1bmNfZXhwKQotICAgIGRpc3BhdGNoKDMpCi0KLQotbWFjcm8gZG9DYWxs
KHNsb3dfcGF0aCkKK21hY3JvIGRvQ2FsbChzbG93UGF0aCkKICAgICBsb2FkaSA0W1BDXSwgdDAK
ICAgICBsb2FkaSAxNltQQ10sIHQxCiAgICAgbG9hZHAgTExJbnRDYWxsTGlua0luZm86OmNhbGxl
ZVt0MV0sIHQyCkBAIC0xOTg3LDY2ICsxNDMyLDkgQEAgbWFjcm8gZG9DYWxsKHNsb3dfcGF0aCkK
ICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAKIC5vcENhbGxTbG93OgotICAgIHNsb3dQYXRoRm9y
Q2FsbCg2LCBzbG93X3BhdGgpCisgICAgc2xvd1BhdGhGb3JDYWxsKDYsIHNsb3dQYXRoKQogZW5k
CiAKLV9sbGludF9vcF9jYWxsOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBkb0NhbGwoX2xs
aW50X3Nsb3dfcGF0aF9jYWxsKQotCi0KLV9sbGludF9vcF9jb25zdHJ1Y3Q6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdCkKLQotCi1f
bGxpbnRfb3BfY2FsbF92YXJhcmdzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBzbG93UGF0
aEZvckNhbGwoNiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX3ZhcmFyZ3MpCi0KLQotX2xsaW50X29w
X2NhbGxfZXZhbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgCi0gICAgIyBFdmFsIGlzIGV4
ZWN1dGVkIGluIG9uZSBvZiB0d28gbW9kZXM6Ci0gICAgIwotICAgICMgMSkgV2UgZmluZCB0aGF0
IHdlJ3JlIHJlYWxseSBpbnZva2luZyBldmFsKCkgaW4gd2hpY2ggY2FzZSB0aGUKLSAgICAjICAg
IGV4ZWN1dGlvbiBpcyBwZXJmb21lZCBlbnRpcmVseSBpbnNpZGUgdGhlIHNsb3dfcGF0aCwgYW5k
IGl0Ci0gICAgIyAgICByZXR1cm5zIHRoZSBQQyBvZiBhIGZ1bmN0aW9uIHRoYXQganVzdCByZXR1
cm5zIHRoZSByZXR1cm4gdmFsdWUKLSAgICAjICAgIHRoYXQgdGhlIGV2YWwgcmV0dXJuZWQuCi0g
ICAgIwotICAgICMgMikgV2UgZmluZCB0aGF0IHdlJ3JlIGludm9raW5nIHNvbWV0aGluZyBjYWxs
ZWQgZXZhbCgpIHRoYXQgaXMgbm90Ci0gICAgIyAgICB0aGUgcmVhbCBldmFsLiBUaGVuIHRoZSBz
bG93X3BhdGggcmV0dXJucyB0aGUgUEMgb2YgdGhlIHRoaW5nIHRvCi0gICAgIyAgICBjYWxsLCBh
bmQgd2UgY2FsbCBpdC4KLSAgICAjCi0gICAgIyBUaGlzIGFsbG93cyB1cyB0byBoYW5kbGUgdHdv
IGNhc2VzLCB3aGljaCB3b3VsZCByZXF1aXJlIGEgdG90YWwgb2YKLSAgICAjIHVwIHRvIGZvdXIg
cGllY2VzIG9mIHN0YXRlIHRoYXQgY2Fubm90IGJlIGVhc2lseSBwYWNrZWQgaW50byB0d28KLSAg
ICAjIHJlZ2lzdGVycyAoQyBmdW5jdGlvbnMgY2FuIHJldHVybiB1cCB0byB0d28gcmVnaXN0ZXJz
LCBlYXNpbHkpOgotICAgICMKLSAgICAjIC0gVGhlIGNhbGwgZnJhbWUgcmVnaXN0ZXIuIFRoaXMg
bWF5IG9yIG1heSBub3QgaGF2ZSBiZWVuIG1vZGlmaWVkCi0gICAgIyAgIGJ5IHRoZSBzbG93X3Bh
dGgsIGJ1dCB0aGUgY29udmVudGlvbiBpcyB0aGF0IGl0IHJldHVybnMgaXQuIEl0J3Mgbm90Ci0g
ICAgIyAgIHRvdGFsbHkgY2xlYXIgaWYgdGhhdCdzIG5lY2Vzc2FyeSwgc2luY2UgdGhlIGNmciBp
cyBjYWxsZWUgc2F2ZS4KLSAgICAjICAgQnV0IHRoYXQncyBvdXIgc3R5bGUgaW4gdGhpcyBoZXJl
IGludGVycHJldGVyIHNvIHdlIHN0aWNrIHdpdGggaXQuCi0gICAgIwotICAgICMgLSBBIGJpdCB0
byBzYXkgaWYgdGhlIHNsb3dfcGF0aCBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQgdGhlIGV2YWwgYW5k
IGhhcwotICAgICMgICB0aGUgcmV0dXJuIHZhbHVlLCBvciBkaWQgbm90IGV4ZWN1dGUgdGhlIGV2
YWwgYnV0IGhhcyBhIFBDIGZvciB1cwotICAgICMgICB0byBjYWxsLgotICAgICMKLSAgICAjIC0g
RWl0aGVyOgotICAgICMgICAtIFRoZSBKUyByZXR1cm4gdmFsdWUgKHR3byByZWdpc3RlcnMpLCBv
cgotICAgICMKLSAgICAjICAgLSBUaGUgUEMgdG8gY2FsbC4KLSAgICAjCi0gICAgIyBJdCB0dXJu
cyBvdXQgdG8gYmUgZWFzaWVyIHRvIGp1c3QgYWx3YXlzIGhhdmUgdGhpcyByZXR1cm4gdGhlIGNm
cgotICAgICMgYW5kIGEgUEMgdG8gY2FsbCwgYW5kIHRoYXQgUEMgbWF5IGJlIGEgZHVtbXkgdGh1
bmsgdGhhdCBqdXN0Ci0gICAgIyByZXR1cm5zIHRoZSBKUyB2YWx1ZSB0aGF0IHRoZSBldmFsIHJl
dHVybmVkLgotICAgIAotICAgIHNsb3dQYXRoRm9yQ2FsbCg0LCBfbGxpbnRfc2xvd19wYXRoX2Nh
bGxfZXZhbCkKLQotCi1fbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQ6Ci0gICAgZGlzcGF0Y2hB
ZnRlckNhbGwoKQotCiAKIF9sbGludF9vcF90ZWFyX29mZl9hY3RpdmF0aW9uOgogICAgIHRyYWNl
RXhlY3V0aW9uKCkKQEAgLTIwNzAsMTMgKzE0NTgsNiBAQCBfbGxpbnRfb3BfdGVhcl9vZmZfYXJn
dW1lbnRzOgogICAgIGRpc3BhdGNoKDIpCiAKIAotbWFjcm8gZG9SZXR1cm4oKQotICAgIGxvYWRw
IFJldHVyblBDW2Nmcl0sIHQyCi0gICAgbG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCi0gICAg
cmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCi0gICAgcmV0Ci1lbmQKLQogX2xs
aW50X29wX3JldDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2hlY2tTd2l0Y2hUb0pJVEZv
ckVwaWxvZ3VlKCkKQEAgLTIxMTEsMTggKzE0OTIsNiBAQCBfbGxpbnRfb3BfcmV0X29iamVjdF9v
cl90aGlzOgogICAgIGRvUmV0dXJuKCkKIAogCi1fbGxpbnRfb3BfbWV0aG9kX2NoZWNrOgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICAjIFdlIGlnbm9yZSBtZXRob2QgY2hlY2tzIGFuZCB1c2Ug
bm9ybWFsIGdldF9ieV9pZCBvcHRpbWl6YXRpb25zLgotICAgIGRpc3BhdGNoKDEpCi0KLQotX2xs
aW50X29wX3N0cmNhdDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfc3RyY2F0KQotICAgIGRpc3BhdGNoKDQpCi0KLQogX2xsaW50X29wX3Rv
X3ByaW1pdGl2ZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQyCkBA
IC0yMTQxLDEyICsxNTEwLDYgQEAgX2xsaW50X29wX3RvX3ByaW1pdGl2ZToKICAgICBkaXNwYXRj
aCgzKQogCiAKLV9sbGludF9vcF9nZXRfcG5hbWVzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfcG5hbWVzKQotICAgIGRpc3BhdGNo
KDApICMgVGhlIHNsb3dfcGF0aCBlaXRoZXIgYWR2YW5jZXMgdGhlIFBDIG9yIGp1bXBzIHVzIHRv
IHNvbWV3aGVyZSBlbHNlLgotCi0KIF9sbGludF9vcF9uZXh0X3BuYW1lOgogICAgIHRyYWNlRXhl
Y3V0aW9uKCkKICAgICBsb2FkaSAxMltQQ10sIHQxCkBAIC0yMTg3LDI0ICsxNTUwLDYgQEAgX2xs
aW50X29wX25leHRfcG5hbWU6CiAgICAgZGlzcGF0Y2goMCkKIAogCi1fbGxpbnRfb3BfcHVzaF9z
Y29wZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfcHVzaF9zY29wZSkKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF9wb3Bfc2Nv
cGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX3BvcF9zY29wZSkKLSAgICBkaXNwYXRjaCgxKQotCi0KLV9sbGludF9vcF9wdXNoX25ld19z
Y29wZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfcHVzaF9uZXdfc2NvcGUpCi0gICAgZGlzcGF0Y2goNCkKLQotCiBfbGxpbnRfb3BfY2F0
Y2g6CiAgICAgIyBUaGlzIGlzIHdoZXJlIHdlIGVuZCB1cCBmcm9tIHRoZSBKSVQncyB0aHJvdyB0
cmFtcG9saW5lIChiZWNhdXNlIHRoZQogICAgICMgbWFjaGluZSBjb2RlIHJldHVybiBhZGRyZXNz
IHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRjaCksIGFuZCBmcm9tCkBAIC0yMjI2LDE4ICsx
NTcxLDYgQEAgX2xsaW50X29wX2NhdGNoOgogICAgIGRpc3BhdGNoKDIpCiAKIAotX2xsaW50X29w
X3Rocm93OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF90aHJvdykKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF90aHJvd19yZWZl
cmVuY2VfZXJyb3I6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3Rocm93X3JlZmVyZW5jZV9lcnJvcikKLSAgICBkaXNwYXRjaCgyKQotCi0K
IF9sbGludF9vcF9qc3I6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDRbUENdLCB0
MApAQCAtMjI1MywzNCArMTU4NiwxMSBAQCBfbGxpbnRfb3Bfc3JldDoKICAgICBkaXNwYXRjaCgw
KQogCiAKLV9sbGludF9vcF9kZWJ1ZzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVidWcpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxp
bnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRw
IEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZVtzcF0sIHQwCi0gICAgYnRw
eiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpCi0ub3BQcm9maWxlV2lsbENhbGxEb25lOgotICAg
IGRpc3BhdGNoKDIpCi0KLQotX2xsaW50X29wX3Byb2ZpbGVfZGlkX2NhbGw6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZVtzcF0sIHQwCi0gICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCi0gICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCkKLS5vcFByb2Zp
bGVEaWRDYWxsRG9uZToKLSAgICBkaXNwYXRjaCgyKQotCi0KIF9sbGludF9vcF9lbmQ6CiAgICAg
dHJhY2VFeGVjdXRpb24oKQogICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCiAgICAg
bG9hZGkgNFtQQ10sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCiAgICAgbG9hZGkgVGFn
T2Zmc2V0W2NmciwgdDAsIDhdLCB0MQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwg
OF0sIHQwCiAgICAgZG9SZXR1cm4oKQpAQCAtMjM0MSw3OSArMTY1MSwzIEBAIG1hY3JvIG5hdGl2
ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYKICAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21f
c2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCi1fbGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGlu
ZToKLSAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRhYmxlOjptX2Z1bmN0aW9u
KQotCi0KLV9sbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmU6Ci0gICAgbmF0aXZlQ2Fs
bFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0YWJsZTo6bV9jb25zdHJ1Y3RvcikKLQotCi0jIExhc3Rs
eSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9y
dCBhbGwgb3Bjb2Rlcy4KLSMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1
c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKLSMgYXMgbXVjaC4KLQotbWFjcm8g
bm90U3VwcG9ydGVkKCkKLSAgICBpZiBBU1NFUlRfRU5BQkxFRAotICAgICAgICBjcmFzaCgpCi0g
ICAgZWxzZQotICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBv
c3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCi0gICAgICAgICMgZW5zdXJlIHRoYXQgdGhl
cmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMuIElmIG11bHRpcGxlCi0gICAg
ICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25l
IHRoYXQgaXMgbW9zdAotICAgICAgICAjIGxpa2VseSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5n
IGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCi0gICAgICAgICMgaW5zdHJ1Y3Rp
b24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGlu
dDMKLSAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12
Nywgd2hpY2ggaXMgMiBieXRlcy4pCi0gICAgICAgIGJyZWFrCi0gICAgZW5kCi1lbmQKLQotX2xs
aW50X29wX2dldF9hcnJheV9sZW5ndGg6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29w
X2dldF9ieV9pZF9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5
X2lkX2N1c3RvbV9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5
X2lkX2N1c3RvbV9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5
X2lkX2N1c3RvbV9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlf
aWRfZ2VuZXJpYzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dl
dHRlcl9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dl
dHRlcl9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dl
dHRlcl9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfcHJv
dG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9zZWxmOgotICAg
IG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfc3RyaW5nX2xlbmd0aDoKLSAgICBub3RT
dXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9y
dGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgotICAgIG5vdFN1cHBvcnRlZCgp
Ci0KLV9sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKLSAgICBub3RTdXBwb3J0ZWQoKQot
Ci0KLSMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KLV9sbGludF9lbmQ6Ci0gICAgY3Jhc2go
KQotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdvcmtpbmcgY29weSkKQEAg
LTIyLDYgKzIyLDE0NjkgQEAKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAK
LSMgTm90IHN1cHBvcnRlZCB5ZXQsIHNvIGdpdmUgdXAuCi1lcnJvcgorIyBTb21lIHZhbHVlIHJl
cHJlc2VudGF0aW9uIGNvbnN0YW50cy4KK2NvbnN0IFRhZ0JpdFR5cGVPdGhlciA9IDB4MgorY29u
c3QgVGFnQml0Qm9vbCAgICAgID0gMHg0Citjb25zdCBUYWdCaXRVbmRlZmluZWQgPSAweDgKK2Nv
bnN0IFZhbHVlRW1wdHkgICAgICA9IDB4MAorY29uc3QgVmFsdWVGYWxzZSAgICAgID0gVGFnQml0
VHlwZU90aGVyIHwgVGFnQml0Qm9vbAorY29uc3QgVmFsdWVUcnVlICAgICAgID0gVGFnQml0VHlw
ZU90aGVyIHwgVGFnQml0Qm9vbCB8IDEKK2NvbnN0IFZhbHVlVW5kZWZpbmVkICA9IFRhZ0JpdFR5
cGVPdGhlciB8IFRhZ0JpdFVuZGVmaW5lZAorY29uc3QgVmFsdWVOdWxsICAgICAgID0gVGFnQml0
VHlwZU90aGVyCisKKyMgVXRpbGl0aWVzLgorbWFjcm8gZGlzcGF0Y2goYWR2YW5jZSkKKyAgICBh
ZGRwIGFkdmFuY2UsIFBDCisgICAgam1wIFtQQiwgUEMsIDhdCitlbmQKKworbWFjcm8gZGlzcGF0
Y2hJbnQoYWR2YW5jZSkKKyAgICBhZGRpIGFkdmFuY2UsIFBDCisgICAgam1wIFtQQiwgUEMsIDhd
CitlbmQKKworbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQorICAgIGxvYWRpIEFyZ3VtZW50Q291
bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKKyAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIKKyAgICBqbXAgW1BCLCBQ
QywgOF0KK2VuZAorCittYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCisgICAgbW92
ZSBhcmcxLCB0NQorICAgIG1vdmUgYXJnMiwgdDQKKyAgICBjYWxsIGZ1bmN0aW9uCitlbmQKKwor
IyBUaGlzIGJhcmVseSB3b3Jrcy4gYXJnMyBhbmQgYXJnNCBzaG91bGQgcHJvYmFibHkgYmUgaW1t
ZWRpYXRlcy4KK21hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkK
KyAgICBtb3ZlIGFyZzEsIHQ1CisgICAgbW92ZSBhcmcyLCB0NAorICAgIG1vdmUgYXJnMywgdDEK
KyAgICBtb3ZlIGFyZzQsIHQyCisgICAgY2FsbCBmdW5jdGlvbgorZW5kCisKK21hY3JvIHByZXBh
cmVTdGF0ZUZvckNDYWxsKCkKKyAgICBsZWFwIFtQQiwgUEMsIDhdLCBQQworICAgIG1vdmUgUEIs
IHQzCitlbmQKKworbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCisgICAgbW92ZSB0MCwg
UEMKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBtb3ZlIHQzLCBQQgorICAgIHN1YnAgUEIsIFBDCisg
ICAgdXJzaGlmdHAgMywgUEMKK2VuZAorCittYWNybyBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisg
ICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykK
KyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKK2VuZAorCittYWNybyB0cmFjZU9wZXJhbmQo
ZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2Fs
bDQoX2xsaW50X3RyYWNlX29wZXJhbmQsIGNmciwgUEMsIGZyb21XaGVyZSwgb3BlcmFuZCkKKyAg
ICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKK2VuZAorCittYWNybyB0cmFjZVZhbHVlKGZyb21X
aGVyZSwgb3BlcmFuZCkKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGw0KF9s
bGludF90cmFjZV92YWx1ZSwgY2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHJlc3Rv
cmVTdGF0ZUFmdGVyQ0NhbGwoKQorZW5kCisKKyMgQ2FsbCBhIHNsb3cgcGF0aCBmb3IgY2FsbCBj
YWxsIG9wY29kZXMuCittYWNybyBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dQYXRoLCBh
Y3Rpb24pCisgICAgYWRkaSBhZHZhbmNlLCBQQywgdDAKKyAgICBzdG9yZWkgdDAsIEFyZ3VtZW50
Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQorICAgIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBj
Q2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCisgICAgbW92ZSB0MSwgY2ZyCisgICAgYWN0aW9uKHQw
KQorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKKyAgICBjaGVja1N3aXRj
aFRvSklUKAorICAgICAgICAxLAorICAgICAgICBtYWNybygpCisgICAgICAgICAgICBzdG9yZWkg
UEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQorICAgICAgICAgICAgcHJlcGFyZVN0
YXRlRm9yQ0NhbGwoKQorICAgICAgICAgICAgY0NhbGwyKF9sbGludF9sb29wX29zciwgY2ZyLCBQ
QykKKyAgICAgICAgICAgIG1vdmUgdDEsIGNmcgorICAgICAgICAgICAgYnRweiB0MCwgLnJlY292
ZXIKKyAgICAgICAgICAgIGptcCB0MAorICAgICAgICAucmVjb3ZlcjoKKyAgICAgICAgICAgIGxv
YWRwIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKKyAgICAgICAgZW5kKQorZW5k
CisKKyMgSW5kZXggYW5kIHZhbHVlIG11c3QgYmUgZGlmZmVyZW50IHJlZ2lzdGVycy4gSW5kZXgg
bWF5IGJlIGNsb2JiZXJlZC4KK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGUoaW5kZXgsIHZh
bHVlKQorICAgIGJwZ3RlcSBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIC5jb25z
dGFudAorICAgIGxvYWRwIFtjZnIsIGluZGV4LCA4XSwgdmFsdWUKKyAgICBqbXAgLmRvbmUKKy5j
b25zdGFudDoKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdmFsdWUKKyAgICBsb2FkcCBDb2Rl
QmxvY2s6Om1fY29uc3RhbnRSZWdpc3RlcnMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdmFsdWVdLCB2
YWx1ZQorICAgIHN1YnAgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIGluZGV4CisgICAgbG9h
ZHAgW3ZhbHVlLCBpbmRleCwgOF0sIHZhbHVlCisuZG9uZToKK2VuZAorCittYWNybyBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlSW50MzIoaW5kZXgsIHZhbHVlLCBzbG93KQorICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoaW5kZXgsIHZhbHVlKQorICAgIGJwYiB2YWx1ZSwgdGFnVHlwZU51bWJlciwg
c2xvdworZW5kCisKK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKGluZGV4LCB2YWx1
ZSwgc2xvdykKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB2YWx1ZSkKKyAgICBi
dHBueiB2YWx1ZSwgdGFnTWFzaywgc2xvdworZW5kCisKK21hY3JvIHdyaXRlQmFycmllcih2YWx1
ZSkKKyAgICAjIE5vdGhpbmcgdG8gZG8sIHNpbmNlIHdlIGRvbid0IGhhdmUgYSBnZW5lcmF0aW9u
YWwgb3IgaW5jcmVtZW50YWwgY29sbGVjdG9yLgorZW5kCisKK21hY3JvIHZhbHVlUHJvZmlsZSh2
YWx1ZSwgcHJvZmlsZSkKKyAgICBpZiBWQUxVRV9QUk9GSUxFUgorICAgICAgICBzdG9yZXAgdmFs
dWUsIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzW3Byb2ZpbGVdCisgICAgZW5kCitlbmQKKworCisj
IEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVycHJldGVyLgorCisjIEV4cGVjdHMgdGhhdCBDb2Rl
QmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgor
bWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQorICAgIGxvYWRp
IFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nmcl0sIHQwCisgICAgYmlhZXEgdDAsIENv
ZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgZG9uZUxhYmVsCisgICAgcHJlcGFyZVN0YXRl
Rm9yQ0NhbGwoKQorICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpICAgIyBUaGlzIHNsb3df
cGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBlcnJvciwgdDAgIT0gMCA9
PiBlcnJvcgorICAgIG1vdmUgdDEsIGNmcgorICAgIGJ0aXogdDAsIC5jb250aW51ZQorICAgIGxv
YWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MQorICAgIGxvYWRwIEpTR2xvYmFs
RGF0YTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDFdLCB0MAorICAgIGptcCBKU0dsb2JhbERhdGE6OnRh
cmdldE1hY2hpbmVQQ0ZvclRocm93W3QxXQorLmNvbnRpbnVlOgorICAgICMgUmVsb2FkIENvZGVC
bG9jayBhbmQgcmVzZXQgUEMsIHNpbmNlIHRoZSBzbG93X3BhdGggY2xvYmJlcmVkIHRoZW0uCisg
ICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3Ry
dWN0aW9uc1t0MV0sIFBCCisgICAgbW92ZSAwLCBQQworICAgIGptcCBkb25lTGFiZWwKK2VuZAor
CisKKyMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCisKK19sbGludF9vcF9lbnRlcjoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9h
ZGkgQ29kZUJsb2NrOjptX251bVZhcnNbdDJdLCB0MgorICAgIGJ0aXogdDIsIC5vcEVudGVyRG9u
ZQorICAgIG1vdmUgVmFsdWVVbmRlZmluZWQsIHQwCisub3BFbnRlckxvb3A6CisgICAgc3ViaSAx
LCB0MgorICAgIHN0b3JlcCB0MCwgW2NmciwgdDIsIDhdCisgICAgYnRpbnogdDIsIC5vcEVudGVy
TG9vcAorLm9wRW50ZXJEb25lOgorICAgIGRpc3BhdGNoKDEpCisKKworX2xsaW50X29wX2NyZWF0
ZV9hY3RpdmF0aW9uOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMs
IDhdLCB0MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4XSwgVmFsdWVFbXB0eSwgLm9wQ3JlYXRlQWN0
aXZhdGlvbkRvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jcmVhdGVfYWN0
aXZhdGlvbikKKy5vcENyZWF0ZUFjdGl2YXRpb25Eb25lOgorICAgIGRpc3BhdGNoKDIpCisKKwor
X2xsaW50X29wX2luaXRfbGF6eV9yZWc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRp
cyA4W1BCLCBQQywgOF0sIHQwCisgICAgc3RvcmVwIFZhbHVlRW1wdHksIFtjZnIsIHQwLCA4XQor
ICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2NyZWF0ZV9hcmd1bWVudHM6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgYnBuZXEgW2Nm
ciwgdDAsIDhdLCBWYWx1ZUVtcHR5LCAub3BDcmVhdGVBcmd1bWVudHNEb25lCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX2FyZ3VtZW50cykKKy5vcENyZWF0ZUFyZ3Vt
ZW50c0RvbmU6CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfY3JlYXRlX3RoaXM6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGFz
c2VydE5vdENvbnN0YW50KHQwKQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBu
eiB0MCwgdGFnTWFzaywgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3Ry
dWN0dXJlW3QwXSwgdDEKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86
Om1fdHlwZVt0MV0sIE9iamVjdFR5cGUsIC5vcENyZWF0ZVRoaXNTbG93CisgICAgbG9hZHAgSlNP
YmplY3Q6Om1faW5oZXJpdG9ySURbdDBdLCB0MgorICAgIGJ0cHogdDIsIC5vcENyZWF0ZVRoaXNT
bG93CisgICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRl
eCwgSlNHbG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MiwgdDAsIHQxLCB0Mywg
Lm9wQ3JlYXRlVGhpc1Nsb3cpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9y
ZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcENyZWF0ZVRoaXNTbG93
OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV90aGlzKQorICAgIGRp
c3BhdGNoKDMpCisKKworX2xsaW50X29wX2dldF9jYWxsZWU6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQx
CisgICAgc3RvcmVwIHQxLCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGlu
dF9vcF9jb252ZXJ0X3RoaXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BC
LCBQQywgOF0sIHQwCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0
YWdNYXNrLCAub3BDb252ZXJ0VGhpc1Nsb3cKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJl
W3QwXSwgdDAKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlw
ZVt0MF0sIE9iamVjdFR5cGUsIC5vcENvbnZlcnRUaGlzU2xvdworICAgIGRpc3BhdGNoKDIpCisK
Ky5vcENvbnZlcnRUaGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9j
b252ZXJ0X3RoaXMpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfbmV3X29iamVjdDoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAg
bG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNHbG9i
YWxPYmplY3Q6Om1fZW1wdHlPYmplY3RTdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGFsbG9jYXRlQmFz
aWNKU09iamVjdChKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNG
aW5hbE9iamVjdENsYXNzSW5mbywgdDEsIHQwLCB0MiwgdDMsIC5vcE5ld09iamVjdFNsb3cpCisg
ICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQor
ICAgIGRpc3BhdGNoKDIpCisKKy5vcE5ld09iamVjdFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfbmV3X29iamVjdCkKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9v
cF9tb3Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0
MQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZSh0MSwgdDIpCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgzKQor
CisKK19sbGludF9vcF9ub3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQ
QiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZSh0MCwgdDIpCisgICAgeG9ycCBWYWx1ZUZhbHNlLCB0MgorICAgIGJ0cG56
IHQyLCB+MSwgLm9wTm90U2xvdworICAgIHhvcnAgVmFsdWVUcnVlLCB0MgorICAgIHN0b3JlcCB0
MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wTm90U2xvdzoKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ub3QpCisgICAgZGlzcGF0Y2goMykKKworCittYWNy
byBlcXVhbGl0eUNvbXBhcmlzb24oaW50ZWdlckNvbXBhcmlzb24sIHNsb3dQYXRoKQorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMg
MTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGVJbnQzMih0MCwgdDEsIC5zbG93KQorICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVJbnQzMih0MiwgdDAsIC5zbG93KQorICAgIGludGVnZXJDb21wYXJpc29uKHQwLCB0
MSwgdDApCisgICAgb3JwIFZhbHVlRmFsc2UsIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0Mywg
OF0KKyAgICBkaXNwYXRjaCg0KQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgp
CisgICAgZGlzcGF0Y2goNCkKK2VuZAorCitfbGxpbnRfb3BfZXE6CisgICAgZXF1YWxpdHlDb21w
YXJpc29uKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY2llcSBsZWZ0LCBy
aWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9lcSkKKworCitfbGxp
bnRfb3BfbmVxOgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigKKyAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLAorICAgICAgICBf
bGxpbnRfc2xvd19wYXRoX25lcSkKKworCittYWNybyBlcXVhbE51bGxDb21wYXJpc29uKCkKKyAg
ICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCisg
ICAgYnRwbnogdDAsIHRhZ01hc2ssIC5pbW1lZGlhdGUKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3Ry
dWN0dXJlW3QwXSwgdDIKKyAgICB0Ym56IFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZv
OjptX2ZsYWdzW3QyXSwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgdDAKKyAgICBqbXAgLmRvbmUK
Ky5pbW1lZGlhdGU6CisgICAgYW5kcCB+VGFnQml0VW5kZWZpbmVkLCB0MAorICAgIGNwZXEgdDAs
IFZhbHVlTnVsbCwgdDAKKy5kb25lOgorZW5kCisKK19sbGludF9vcF9lcV9udWxsOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGxDb21wYXJpc29uKCkKKyAgICBsb2FkaXMgOFtQ
QiwgUEMsIDhdLCB0MQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2Nm
ciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfbmVxX251bGw6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbENvbXBhcmlzb24oKQorICAgIGxvYWRpcyA4
W1BCLCBQQywgOF0sIHQxCisgICAgeG9ycCBWYWx1ZVRydWUsIHQwCisgICAgc3RvcmVwIHQwLCBb
Y2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisKK21hY3JvIHN0cmljdEVxKGVxdWFsaXR5
T3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDI0
W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0Miwg
dDApCisgICAgbW92ZSB0MCwgdDIKKyAgICBvcnAgdDEsIHQyCisgICAgYnRweiB0MiwgdGFnTWFz
aywgLnNsb3cKKyAgICBicGFlcSB0MCwgdGFnVHlwZU51bWJlciwgLmxlZnRPSworICAgIGJ0cG56
IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworLmxlZnRPSzoKKyAgICBicGFlcSB0MSwgdGFnVHlw
ZU51bWJlciwgLnJpZ2h0T0sKKyAgICBidHBueiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKy5y
aWdodE9LOgorICAgIGVxdWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDApCisgICAgbG9hZGlzIDhb
UEIsIFBDLCA4XSwgdDEKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtj
ZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChz
bG93UGF0aCkKKyAgICBkaXNwYXRjaCg0KQorZW5kCisKK19sbGludF9vcF9zdHJpY3RlcToKKyAg
ICBzdHJpY3RFcSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNwZXEgbGVm
dCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfc3RyaWN0ZXEp
CisKKworX2xsaW50X29wX25zdHJpY3RlcToKKyAgICBzdHJpY3RFcSgKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNwbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLAorICAg
ICAgICBfbGxpbnRfc2xvd19wYXRoX25zdHJpY3RlcSkKKworCittYWNybyBwcmVPcChhcml0aG1l
dGljT3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlz
IDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQxCisgICAgYnBiIHQx
LCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFyaXRobWV0aWNPcGVyYXRpb24odDEsIC5zbG93
KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIHN0b3JlcCB0MSwgW2NmciwgdDAsIDhd
CisgICAgZGlzcGF0Y2goMikKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQor
ICAgIGRpc3BhdGNoKDIpCitlbmQKKworX2xsaW50X29wX3ByZV9pbmM6CisgICAgcHJlT3AoCisg
ICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYmFkZGlvIDEsIHZhbHVlLCBzbG93IGVuZCwKKyAg
ICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wcmVfaW5jKQorCisKK19sbGludF9vcF9wcmVfZGVjOgor
ICAgIHByZU9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJzdWJpbyAxLCB2YWx1ZSwg
c2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcHJlX2RlYykKKworCittYWNybyBw
b3N0T3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0s
IHQxCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MgorICAgIGJpZXEgdDAsIHQxLCAuZG9uZQor
ICAgIGJwYiB0MiwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBtb3ZlIHQyLCB0MworICAgIGFy
aXRobWV0aWNPcGVyYXRpb24odDMsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0Mwor
ICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgc3RvcmVwIHQzLCBbY2ZyLCB0MCwgOF0K
Ky5kb25lOgorICAgIGRpc3BhdGNoKDMpCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93
UGF0aCkKKyAgICBkaXNwYXRjaCgzKQorZW5kCisKK19sbGludF9vcF9wb3N0X2luYzoKKyAgICBw
b3N0T3AoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYmFkZGlvIDEsIHZhbHVlLCBzbG93
IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wb3N0X2luYykKKworCitfbGxpbnRfb3Bf
cG9zdF9kZWM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJzdWJp
byAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcG9zdF9kZWMp
CisKKworX2xsaW50X29wX3RvX2pzbnVtYmVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBs
b2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIGJwYWVxIHQyLCB0YWdUeXBlTnVt
YmVyLCAub3BUb0pzbnVtYmVySXNJbW1lZGlhdGUKKyAgICBidHB6IHQyLCB0YWdNYXNrLCAub3BU
b0pzbnVtYmVyU2xvdworLm9wVG9Kc251bWJlcklzSW1tZWRpYXRlOgorICAgIHN0b3JlcCB0Miwg
W2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wVG9Kc251bWJlclNsb3c6CisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdG9fanNudW1iZXIpCisgICAgZGlzcGF0Y2go
MykKKworCitfbGxpbnRfb3BfbmVnYXRlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIGJwYiB0MiwgdGFnVHlwZU51bWJlciwg
Lm9wTmVnYXRlTm90SW50CisgICAgYnRpeiB0MiwgMHg3ZmZmZmZmZiwgLm9wTmVnYXRlU2xvdwor
ICAgIG5lZ2kgdDIKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDIKKyAgICBzdG9yZXAgdDIsIFtj
ZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisub3BOZWdhdGVOb3RJbnQ6CisgICAgYnRweiB0
MiwgdGFnVHlwZU51bWJlciwgLm9wTmVnYXRlU2xvdworICAgIHhvcnAgMHg4MDAwMDAwMDAwMDAw
MDAwLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKwor
Lm9wTmVnYXRlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZWdhdGUp
CisgICAgZGlzcGF0Y2goMykKKworCittYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJP
cGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICBsb2FkaXMg
MjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQy
LCB0MCkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1iZXIsIC5vcDFOb3RJbnQKKyAgICBicGIgdDEs
IHRhZ1R5cGVOdW1iZXIsIC5vcDJOb3RJbnQKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0Mgor
ICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAsIC5zbG93LCB0MikKKyAgICBkaXNw
YXRjaCg1KQorCisub3AxTm90SW50OgorICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBkZWZpbml0ZWx5
IG5vdCBhbiBpbnQsIHRoZSBzZWNvbmQgb3BlcmFuZCBjb3VsZCBiZSBhbnl0aGluZy4KKyAgICBi
dHB6IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGJwYWVxIHQxLCB0YWdUeXBlTnVtYmVy
LCAub3AxTm90SW50T3AySW50CisgICAgYnRweiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAg
ICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQxCisgICAgZnAyZCB0MSwgZnQxCisgICAgam1wIC5vcDFO
b3RJbnRSZWFkeQorLm9wMU5vdEludE9wMkludDoKKyAgICBjaTJkIHQxLCBmdDEKKy5vcDFOb3RJ
bnRSZWFkeToKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MgorICAgIGFkZHAgdGFnVHlwZU51
bWJlciwgdDAKKyAgICBmcDJkIHQwLCBmdDAKKyAgICBkb3VibGVPcGVyYXRpb24oZnQxLCBmdDAp
CisgICAgZmQycCBmdDAsIHQwCisgICAgc3VicCB0YWdUeXBlTnVtYmVyLCB0MAorICAgIHN0b3Jl
cCB0MCwgW2NmciwgdDIsIDhdCisgICAgZGlzcGF0Y2goNSkKKworLm9wMk5vdEludDoKKyAgICAj
IEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBzZWNvbmQgaXMgZGVmaW5p
dGVseSBub3QuCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBidHB6IHQxLCB0YWdU
eXBlTnVtYmVyLCAuc2xvdworICAgIGNpMmQgdDAsIGZ0MAorICAgIGFkZHAgdGFnVHlwZU51bWJl
ciwgdDEKKyAgICBmcDJkIHQxLCBmdDEKKyAgICBkb3VibGVPcGVyYXRpb24oZnQxLCBmdDApCisg
ICAgZmQycCBmdDAsIHQwCisgICAgc3VicCB0YWdUeXBlTnVtYmVyLCB0MAorICAgIHN0b3JlcCB0
MCwgW2NmciwgdDIsIDhdCisgICAgZGlzcGF0Y2goNSkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQ
YXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDUpCitlbmQKKworbWFjcm8gYmluYXJ5T3AoaW50
ZWdlck9wZXJhdGlvbiwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICBiaW5hcnlPcEN1
c3RvbVN0b3JlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQorICAg
ICAgICAgICAgaW50ZWdlck9wZXJhdGlvbihsZWZ0LCByaWdodCwgc2xvdykKKyAgICAgICAgICAg
IG9ycCB0YWdUeXBlTnVtYmVyLCByaWdodAorICAgICAgICAgICAgc3RvcmVwIHJpZ2h0LCBbY2Zy
LCBpbmRleCwgOF0KKyAgICAgICAgZW5kLAorICAgICAgICBkb3VibGVPcGVyYXRpb24sIHNsb3dQ
YXRoKQorZW5kCisKK19sbGludF9vcF9hZGQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJp
bmFyeU9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGJhZGRpbyBsZWZ0LCBy
aWdodCwgc2xvdyBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkgYWRkZCBsZWZ0LCBy
aWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfYWRkKQorCisKK19sbGludF9vcF9t
dWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCisgICAg
ICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCisgICAgICAgICAgICAjIEFzc3Vt
ZSB0MyBpcyBzY3JhdGNoYWJsZS4KKyAgICAgICAgICAgIG1vdmUgcmlnaHQsIHQzCisgICAgICAg
ICAgICBibXVsaW8gbGVmdCwgdDMsIHNsb3cKKyAgICAgICAgICAgIGJ0aW56IHQzLCAuZG9uZQor
ICAgICAgICAgICAgYmlsdCBsZWZ0LCAwLCBzbG93CisgICAgICAgICAgICBiaWx0IHJpZ2h0LCAw
LCBzbG93CisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQz
CisgICAgICAgICAgICBzdG9yZXAgdDMsIFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkgbXVsZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAg
IF9sbGludF9zbG93X3BhdGhfbXVsKQorCisKK19sbGludF9vcF9zdWI6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGJpbmFyeU9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cp
IGJzdWJpbyBsZWZ0LCByaWdodCwgc2xvdyBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCkgc3ViZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfc3ViKQor
CisKK19sbGludF9vcF9kaXY6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCisgICAg
ICAgICAgICAjIEFzc3VtZSB0MyBpcyBzY3JhdGNoYWJsZS4KKyAgICAgICAgICAgIGJ0aXogbGVm
dCwgc2xvdworICAgICAgICAgICAgYnRpbnogcmlnaHQsIC5pbnRPSworICAgICAgICAgICAgYmls
dCBsZWZ0LCAwLCBzbG93CisgICAgICAgIC5pbnRPSzoKKyAgICAgICAgICAgIG1vdmUgbGVmdCwg
dDMKKyAgICAgICAgICAgIG1vdmUgcmlnaHQsIHQwCisgICAgICAgICAgICBjZHFpCisgICAgICAg
ICAgICBpZGl2aSB0MworICAgICAgICAgICAgYnRpbnogdDEsIHNsb3cKKyAgICAgICAgICAgIG9y
cCB0YWdUeXBlTnVtYmVyLCB0MAorICAgICAgICAgICAgc3RvcmVwIHQwLCBbY2ZyLCBpbmRleCwg
OF0KKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQpIGRpdmQgbGVmdCwg
cmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikKKworCittYWNybyBiaXRP
cChvcGVyYXRpb24sIHNsb3dQYXRoLCBhZHZhbmNlKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhd
LCB0MAorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpcyA4W1BCLCBQQywg
OF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnBiIHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdwor
ICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBvcGVyYXRpb24odDEsIHQwLCAu
c2xvdykKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQz
LCA4XQorICAgIGRpc3BhdGNoKGFkdmFuY2UpCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChz
bG93UGF0aCkKKyAgICBkaXNwYXRjaChhZHZhbmNlKQorZW5kCisKK19sbGludF9vcF9sc2hpZnQ6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHNsb3cpIGxzaGlmdGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xv
d19wYXRoX2xzaGlmdCwKKyAgICAgICAgNCkKKworCitfbGxpbnRfb3BfcnNoaWZ0OgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBz
bG93KSByc2hpZnRpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9y
c2hpZnQsCisgICAgICAgIDQpCisKKworX2xsaW50X29wX3Vyc2hpZnQ6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpCisg
ICAgICAgICAgICB1cnNoaWZ0aSBsZWZ0LCByaWdodAorICAgICAgICAgICAgYmlsdCByaWdodCwg
MCwgc2xvdworICAgICAgICBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfdXJzaGlmdCwK
KyAgICAgICAgNCkKKworCitfbGxpbnRfb3BfYml0YW5kOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBhbmRpIGxlZnQs
IHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9iaXRhbmQsCisgICAgICAgIDUp
CisKKworX2xsaW50X29wX2JpdHhvcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3Ao
CisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgeG9yaSBsZWZ0LCByaWdodCBlbmQs
CisgICAgICAgIF9sbGludF9zbG93X3BhdGhfYml0eG9yLAorICAgICAgICA1KQorCisKK19sbGlu
dF9vcF9iaXRvcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgc2xvdykgb3JpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xs
aW50X3Nsb3dfcGF0aF9iaXRvciwKKyAgICAgICAgNSkKKworCitfbGxpbnRfb3BfY2hlY2tfaGFz
X2luc3RhbmNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQxLCB0MCwgLm9wQ2hlY2tIYXNJ
bnN0YW5jZVNsb3cpCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCisgICAg
YnRieiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0MF0sIEltcGxl
bWVudHNIYXNJbnN0YW5jZSwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cKKyAgICBkaXNwYXRjaCgy
KQorCisub3BDaGVja0hhc0luc3RhbmNlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRf
b3BfaW5zdGFuY2VvZjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgIyBDaGVjayB0aGF0IGJh
c2VWYWwgaW1wbGVtZW50cyB0aGUgZGVmYXVsdCBIYXNJbnN0YW5jZSBiZWhhdmlvci4KKyAgICAj
IEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkZXByZWNhdGVkLgorICAgIGxvYWRpcyAyNFtQQiwgUEMs
IDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQwKQorICAgIGxvYWRwIEpT
Q2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MAorICAgIGJ0YnogU3RydWN0dXJlOjptX3R5cGVJbmZv
ICsgVHlwZUluZm86Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlLCAu
b3BJbnN0YW5jZW9mU2xvdworICAgIAorICAgICMgQWN0dWFsbHkgZG8gdGhlIHdvcmsuCisgICAg
bG9hZGlzIDMyW1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDMKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDEsIC5vcEluc3RhbmNlb2ZTbG93KQor
ICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDFdLCB0MgorICAgIGJiYiBTdHJ1Y3R1cmU6
Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QyXSwgT2JqZWN0VHlwZSwgLm9wSW5zdGFu
Y2VvZlNsb3cKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbCh0MCwgdDIsIC5vcEluc3RhbmNlb2ZTbG93KQorICAgIAorICAgICMgUmVn
aXN0ZXIgc3RhdGU6IHQxID0gcHJvdG90eXBlLCB0MiA9IHZhbHVlCisgICAgbW92ZSAxLCB0MAor
Lm9wSW5zdGFuY2VvZkxvb3A6CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0Ml0sIHQy
CisgICAgbG9hZHAgU3RydWN0dXJlOjptX3Byb3RvdHlwZVt0Ml0sIHQyCisgICAgYnBlcSB0Miwg
dDEsIC5vcEluc3RhbmNlb2ZEb25lCisgICAgYnRweiB0MiwgdGFnTWFzaywgLm9wSW5zdGFuY2Vv
Zkxvb3AKKworICAgIG1vdmUgMCwgdDAKKy5vcEluc3RhbmNlb2ZEb25lOgorICAgIG9ycCBWYWx1
ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goNSkK
KworLm9wSW5zdGFuY2VvZlNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
aW5zdGFuY2VvZikKKyAgICBkaXNwYXRjaCg1KQorCisKK21hY3JvIHJlc29sdmVHbG9iYWwoc2l6
ZSwgc2xvdykKKyAgICAjIE9wZXJhbmRzIGFyZSBhcyBmb2xsb3dzOgorICAgICMgOFtQQiwgUEMs
IDhdICAgRGVzdGluYXRpb24gZm9yIHRoZSBsb2FkLgorICAgICMgMTZbUEIsIFBDLCA4XSAgUHJv
cGVydHkgaWRlbnRpZmllciBpbmRleCBpbiB0aGUgY29kZSBibG9jay4KKyAgICAjIDI0W1BCLCBQ
QywgOF0gIFN0cnVjdHVyZSBwb2ludGVyLCBpbml0aWFsaXplZCB0byAwIGJ5IGJ5dGVjb2RlIGdl
bmVyYXRvci4KKyAgICAjIDMyW1BCLCBQQywgOF0gIE9mZnNldCBpbiBnbG9iYWwgb2JqZWN0LCBp
bml0aWFsaXplZCB0byAwIGJ5IGJ5dGVjb2RlIGdlbmVyYXRvci4KKyAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QwXSwgdDAK
KyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEKKyAgICBicG5lcSB0MSwgMjRb
UEIsIFBDLCA4XSwgc2xvdworICAgIGxvYWRpcyAzMltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRw
IEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQwCisgICAgbG9hZHAgW3QwLCB0MSwg
OF0sIHQyCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBzdG9yZXAgdDIsIFtjZnIs
IHQwLCA4XQorICAgIGxvYWRwIChzaXplIC0gMSkgKiA4W1BCLCBQQywgOF0sIHQwCisgICAgdmFs
dWVQcm9maWxlKHQyLCB0MCkKK2VuZAorCitfbGxpbnRfb3BfcmVzb2x2ZV9nbG9iYWw6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIHJlc29sdmVHbG9iYWwoNiwgLm9wUmVzb2x2ZUdsb2JhbFNs
b3cpCisgICAgZGlzcGF0Y2goNikKKworLm9wUmVzb2x2ZUdsb2JhbFNsb3c6CisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9nbG9iYWwpCisgICAgZGlzcGF0Y2goNikK
KworCisjIEdpdmVzIHlvdSB0aGUgc2NvcGUgaW4gdDAsIHdoaWxlIGFsbG93aW5nIHlvdSB0byBv
cHRpb25hbGx5IHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3Mgb24gdGhlCisjIHNjb3BlcyBhcyB0
aGV5IGFyZSB0cmF2ZXJzZWQuIHNjb3BlQ2hlY2soKSBpcyBjYWxsZWQgd2l0aCB0d28gYXJndW1l
bnRzOiB0aGUgcmVnaXN0ZXIKKyMgaG9sZGluZyB0aGUgc2NvcGUsIGFuZCBhIHJlZ2lzdGVyIHRo
YXQgY2FuIGJlIHVzZWQgZm9yIHNjcmF0Y2guIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90CisjIHVz
ZSB0Mywgc28geW91IGNhbiBob2xkIHN0dWZmIGluIHQzIGlmIG5lZWQgYmUuCittYWNybyBnZXRT
Y29wZShkZUJydWlqaW5JbmRleE9wZXJhbmQsIHNjb3BlQ2hlY2spCisgICAgbG9hZHAgU2NvcGVD
aGFpbltjZnJdLCB0MAorICAgIGxvYWRpcyBkZUJydWlqaW5JbmRleE9wZXJhbmQsIHQyCisgICAg
CisgICAgYnRpeiB0MiwgLmRvbmUKKyAgICAKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEK
KyAgICBiaW5lcSBDb2RlQmxvY2s6Om1fY29kZVR5cGVbdDFdLCBGdW5jdGlvbkNvZGUsIC5sb29w
CisgICAgYnRieiBDb2RlQmxvY2s6Om1fbmVlZHNGdWxsU2NvcGVDaGFpblt0MV0sIC5sb29wCisg
ICAgCisgICAgbG9hZGlzIENvZGVCbG9jazo6bV9hY3RpdmF0aW9uUmVnaXN0ZXJbdDFdLCB0MQor
CisgICAgIyBOZWVkIHRvIGNvbmRpdGlvbmFsbHkgc2tpcCBvdmVyIG9uZSBzY29wZS4KKyAgICBi
dHB6IFtjZnIsIHQxLCA4XSwgLm5vQWN0aXZhdGlvbgorICAgIHNjb3BlQ2hlY2sodDAsIHQxKQor
ICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpuZXh0W3QwXSwgdDAKKy5ub0FjdGl2YXRpb246Cisg
ICAgc3ViaSAxLCB0MgorICAgIAorICAgIGJ0aXogdDIsIC5kb25lCisubG9vcDoKKyAgICBzY29w
ZUNoZWNrKHQwLCB0MSkKKyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6bmV4dFt0MF0sIHQwCisg
ICAgc3ViaSAxLCB0MgorICAgIGJ0aW56IHQyLCAubG9vcAorCisuZG9uZToKK2VuZAorCitfbGxp
bnRfb3BfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgbG9hZHAgSlNHbG9i
YWxEYXRhOjphY3RpdmF0aW9uU3RydWN0dXJlW3QzXSwgdDMKKyAgICBnZXRTY29wZSgKKyAgICAg
ICAgNDBbUEIsIFBDLCA4XSwKKyAgICAgICAgbWFjcm8gKHNjb3BlLCBzY3JhdGNoKQorICAgICAg
ICAgICAgbG9hZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFtzY29wZV0sIHNjcmF0Y2gKKyAgICAg
ICAgICAgIGJwbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbc2NyYXRjaF0sIHQzLCAub3BSZXNvbHZl
R2xvYmFsRHluYW1pY1N1cGVyU2xvdworICAgICAgICBlbmQpCisgICAgcmVzb2x2ZUdsb2JhbCg3
LCAub3BSZXNvbHZlR2xvYmFsRHluYW1pY1Nsb3cpCisgICAgZGlzcGF0Y2goNykKKworLm9wUmVz
b2x2ZUdsb2JhbER5bmFtaWNTdXBlclNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfcmVzb2x2ZV9mb3JfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYykKKyAgICBkaXNwYXRjaCg3
KQorCisub3BSZXNvbHZlR2xvYmFsRHluYW1pY1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYykKKyAgICBkaXNwYXRjaCg3KQorCisK
K19sbGludF9vcF9nZXRfc2NvcGVkX3ZhcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgIyBP
cGVyYW5kcyBhcmUgYXMgZm9sbG93czoKKyAgICAjIDhbUEIsIFBDLCA4XSAgIERlc3RpbmF0aW9u
IGZvciB0aGUgbG9hZAorICAgICMgMTZbUEIsIFBDLCA4XSAgSW5kZXggb2YgcmVnaXN0ZXIgaW4g
dGhlIHNjb3BlCisgICAgIyAyNFtQQiwgUEMsIDhdICBEZSBCcnVpamluIGluZGV4LgorICAgIGdl
dFNjb3BlKDI0W1BCLCBQQywgOF0sIG1hY3JvIChzY29wZSwgc2NyYXRjaCkgZW5kKQorICAgIGxv
YWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAg
bG9hZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNWYXJpYWJs
ZU9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRwIFt0MCwgdDIsIDhdLCB0Mwor
ICAgIHN0b3JlcCB0MywgW2NmciwgdDEsIDhdCisgICAgbG9hZHAgMzJbUEIsIFBDLCA4XSwgdDEK
KyAgICB2YWx1ZVByb2ZpbGUodDMsIHQxKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29w
X3B1dF9zY29wZWRfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBnZXRTY29wZSgxNltQ
QiwgUEMsIDhdLCBtYWNybyAoc2NvcGUsIHNjcmF0Y2gpIGVuZCkKKyAgICBsb2FkaXMgMjRbUEIs
IFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MykKKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIHdyaXRlQmFycmllcih0MykKKyAgICBsb2FkcCBTY29w
ZUNoYWluTm9kZTo6b2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU1ZhcmlhYmxlT2JqZWN0Ojpt
X3JlZ2lzdGVyc1t0MF0sIHQwCisgICAgc3RvcmVwIHQzLCBbdDAsIHQxLCA4XQorICAgIGRpc3Bh
dGNoKDQpCisKKworX2xsaW50X29wX2dldF9nbG9iYWxfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MworICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6
bV9nbG9iYWxPYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX3JlZ2lz
dGVyc1t0MF0sIHQwCisgICAgbG9hZHAgW3QwLCB0MSwgOF0sIHQyCisgICAgc3RvcmVwIHQyLCBb
Y2ZyLCB0MywgOF0KKyAgICBsb2FkcCAyNFtQQiwgUEMsIDhdLCB0MworICAgIHZhbHVlUHJvZmls
ZSh0MiwgdDMpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfcHV0X2dsb2JhbF92YXI6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MQorICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxP
YmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0s
IHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDIpCisgICAgbG9hZGlzIDhbUEIs
IFBDLCA4XSwgdDEKKyAgICB3cml0ZUJhcnJpZXIodDIpCisgICAgc3RvcmVwIHQyLCBbdDAsIHQx
LCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2dldF9ieV9pZDoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9pZCBjYWNo
aW5nIGZvciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQorICAgICMgb3Bjb2RlLiBXZSBk
bywgaG93ZXZlciwgYWxsb3cgZm9yIHRoZSBjYWNoZSB0byBjaGFuZ2UgYW55dGltZSBpZiBmYWls
cywgc2luY2UKKyAgICAjIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBBdCBiZXN0IHdlIGdldCBsdWNr
eSBhbmQgdGhlIGdldF9ieV9pZCB3aWxsIGNvbnRpbnVlCisgICAgIyB0byB0YWtlIGZhc3QgcGF0
aCBvbiB0aGUgbmV3IGNhY2hlLiBBdCB3b3JzdCB3ZSB0YWtlIHNsb3cgcGF0aCwgd2hpY2ggaXMg
d2hhdAorICAgICMgd2Ugd291bGQgaGF2ZSBiZWVuIGRvaW5nIGFueXdheS4KKyAgICBsb2FkaXMg
MTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCAzMltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGVDZWxsKHQwLCB0MywgLm9wR2V0QnlJZFNsb3cpCisgICAgbG9hZGlz
IDQwW1BCLCBQQywgOF0sIHQyCisgICAgbG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdl
W3QzXSwgdDAKKyAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3QzXSwgdDEsIC5vcEdldEJ5
SWRTbG93CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkcCBbdDAsIHQyXSwg
dDMKKyAgICBzdG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAgIGxvYWRwIDY0W1BCLCBQQywgOF0s
IHQxCisgICAgdmFsdWVQcm9maWxlKHQzLCB0MSkKKyAgICBkaXNwYXRjaCg5KQorCisub3BHZXRC
eUlkU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCisg
ICAgZGlzcGF0Y2goOSkKKworCitfbGxpbnRfb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGg6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRp
cyA4W1BCLCBQQywgOF0sIHQxCisgICAgYnRwbnogW2NmciwgdDAsIDhdLCAub3BHZXRBcmd1bWVu
dHNMZW5ndGhTbG93CisgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbY2Zy
XSwgdDIKKyAgICBzdWJpIDEsIHQyCisgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQyCisgICAgc3Rv
cmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCg0KQorCisub3BHZXRBcmd1bWVudHNM
ZW5ndGhTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9hcmd1bWVu
dHNfbGVuZ3RoKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX3B1dF9ieV9pZDoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2Fk
cCAzMltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQzLCB0
MCwgLm9wUHV0QnlJZFNsb3cpCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQyCisgICAgbG9h
ZHAgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3QwXSwgdDMKKyAgICBicG5lcSBKU0NlbGw6
Om1fc3RydWN0dXJlW3QwXSwgdDEsIC5vcFB1dEJ5SWRTbG93CisgICAgbG9hZGlzIDQwW1BCLCBQ
QywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgd3JpdGVC
YXJyaWVyKHQwKQorICAgIHN0b3JlcCB0MCwgW3QzLCB0MV0KKyAgICBkaXNwYXRjaCg5KQorCisu
b3BQdXRCeUlkU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlf
aWQpCisgICAgZGlzcGF0Y2goOSkKKworCittYWNybyBwdXRCeUlkVHJhbnNpdGlvbihhZGRpdGlv
bmFsQ2hlY2tzKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MworICAgIGxvYWRwIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZUNlbGwodDMsIHQwLCAub3BQdXRCeUlkU2xvdykKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4
XSwgdDIKKyAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEsIC5vcFB1dEJ5SWRT
bG93CisgICAgYWRkaXRpb25hbENoZWNrcyh0MSwgdDMsIC5vcFB1dEJ5SWRTbG93KQorICAgIGxv
YWRpcyA0MFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3Rv
cmFnZVt0MF0sIHQzCisgICAgYWRkcCB0MSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHQyLCB0MSkKKyAgICB3cml0ZUJhcnJpZXIodDEpCisgICAgc3RvcmVwIHQxLCBbdDNdCisgICAg
bG9hZHAgNDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDEsIEpTQ2VsbDo6bV9zdHJ1Y3R1
cmVbdDBdCisgICAgZGlzcGF0Y2goOSkKK2VuZAorCitfbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5z
aXRpb25fZGlyZWN0OgorICAgIHB1dEJ5SWRUcmFuc2l0aW9uKG1hY3JvIChvbGRTdHJ1Y3R1cmUs
IHNjcmF0Y2gsIHNsb3cpIGVuZCkKKworCitfbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25f
bm9ybWFsOgorICAgIHB1dEJ5SWRUcmFuc2l0aW9uKAorICAgICAgICBtYWNybyAob2xkU3RydWN0
dXJlLCBzY3JhdGNoLCBzbG93KQorICAgICAgICAgICAgY29uc3QgcHJvdG9DZWxsID0gb2xkU3Ry
dWN0dXJlICAgICMgUmV1c2luZyB0aGUgb2xkU3RydWN0dXJlIHJlZ2lzdGVyIGZvciB0aGUgcHJv
dG8KKyAgICAgICAgICAgIGxvYWRwIDU2W1BCLCBQQywgOF0sIHNjcmF0Y2gKKyAgICAgICAgICAg
IGFzc2VydChtYWNybyAob2spIGJ0cG56IHNjcmF0Y2gsIG9rIGVuZCkKKyAgICAgICAgICAgIGxv
YWRwIFN0cnVjdHVyZUNoYWluOjptX3ZlY3RvcltzY3JhdGNoXSwgc2NyYXRjaAorICAgICAgICAg
ICAgYXNzZXJ0KG1hY3JvIChvaykgYnRwbnogc2NyYXRjaCwgb2sgZW5kKQorICAgICAgICAgICAg
YnBlcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW29sZFN0cnVjdHVyZV0sIFZhbHVlTnVsbCwgLmRv
bmUKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkcCBTdHJ1Y3R1cmU6Om1fcHJvdG90
eXBlW29sZFN0cnVjdHVyZV0sIHByb3RvQ2VsbAorICAgICAgICAgICAgbG9hZHAgSlNDZWxsOjpt
X3N0cnVjdHVyZVtwcm90b0NlbGxdLCBvbGRTdHJ1Y3R1cmUKKyAgICAgICAgICAgIGJwbmVxIG9s
ZFN0cnVjdHVyZSwgW3NjcmF0Y2hdLCBzbG93CisgICAgICAgICAgICBhZGRwIDgsIHNjcmF0Y2gK
KyAgICAgICAgICAgIGJwbmVxIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbb2xkU3RydWN0dXJlXSwg
VmFsdWVOdWxsLCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgZW5kKQorCisKK19sbGlu
dF9vcF9nZXRfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDEKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgMjRb
UEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQx
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDIsIHQwLCAub3BHZXRCeVZhbFNsb3cp
CisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpqc0FycmF5Q2xhc3NJbmZvW3QxXSwgdDIKKyAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDMsIHQxLCAub3BHZXRCeVZhbFNsb3cpCisgICAg
c3hpMnAgdDEsIHQxCisgICAgYnBuZXEgW3QwXSwgdDIsIC5vcEdldEJ5VmFsU2xvdworICAgIGxv
YWRwIEpTQXJyYXk6Om1fc3RvcmFnZVt0MF0sIHQzCisgICAgYmlhZXEgdDEsIEpTQXJyYXk6Om1f
dmVjdG9yTGVuZ3RoW3QwXSwgLm9wR2V0QnlWYWxTbG93CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4
XSwgdDAKKyAgICBsb2FkcCBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yW3QzLCB0MSwgOF0sIHQyCisg
ICAgYnRweiB0MiwgLm9wR2V0QnlWYWxTbG93CisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0K
KyAgICBsb2FkcCAzMltQQiwgUEMsIDhdLCB0MAorICAgIHZhbHVlUHJvZmlsZSh0MiwgdDApCisg
ICAgZGlzcGF0Y2goNSkKKworLm9wR2V0QnlWYWxTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX2dldF9ieV92YWwpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3Bf
Z2V0X2FyZ3VtZW50X2J5X3ZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2
W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQxCisgICAgYnRwbnog
W2NmciwgdDAsIDhdLCAub3BHZXRBcmd1bWVudEJ5VmFsU2xvdworICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVJbnQzMih0MSwgdDIsIC5vcEdldEFyZ3VtZW50QnlWYWxTbG93KQorICAgIGFkZGkg
MSwgdDIKKyAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MQor
ICAgIGJpYWVxIHQyLCB0MSwgLm9wR2V0QXJndW1lbnRCeVZhbFNsb3cKKyAgICBuZWdpIHQyCisg
ICAgc3hpMnAgdDIsIHQyCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkcCBU
aGlzQXJndW1lbnRPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0
MywgOF0KKyAgICBkaXNwYXRjaCg1KQorCisub3BHZXRBcmd1bWVudEJ5VmFsU2xvdzoKKyAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYXJndW1lbnRfYnlfdmFsKQorICAgIGRp
c3BhdGNoKDUpCisKKworX2xsaW50X29wX2dldF9ieV9wbmFtZToKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZSh0MSwgdDApCisgICAgbG9hZGlzIDMyW1BCLCBQQywgOF0sIHQxCisgICAgYXNzZXJ0Tm90
Q29uc3RhbnQodDEpCisgICAgYnBuZXEgdDAsIFtjZnIsIHQxLCA4XSwgLm9wR2V0QnlQbmFtZVNs
b3cKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgNDBbUEIsIFBDLCA4
XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MiwgdDAsIC5vcEdldEJ5UG5h
bWVTbG93KQorICAgIGFzc2VydE5vdENvbnN0YW50KHQzKQorICAgIGxvYWRwIFtjZnIsIHQzLCA4
XSwgdDEKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDIKKyAgICBicG5lcSB0
MiwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9jYWNoZWRTdHJ1Y3R1cmVbdDFdLCAub3BHZXRC
eVBuYW1lU2xvdworICAgIGxvYWRpcyA0OFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRpIFBheWxv
YWRPZmZzZXRbY2ZyLCB0MywgOF0sIHQzCisgICAgc3ViaSAxLCB0MworICAgIGJpYWVxIHQzLCBK
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjptX251bUNhY2hlYWJsZVNsb3RzW3QxXSwgLm9wR2V0QnlQ
bmFtZVNsb3cKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MAor
ICAgIGxvYWRwIFt0MCwgdDMsIDhdLCB0MAorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisg
ICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCg3KQorCisub3BHZXRCeVBu
YW1lU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfcG5hbWUp
CisgICAgZGlzcGF0Y2goNykKKworCitfbGxpbnRfb3BfcHV0X2J5X3ZhbDoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbCh0MCwgdDEsIC5vcFB1dEJ5VmFsU2xvdykKKyAgICBsb2FkaXMgMTZbUEIs
IFBDLCA4XSwgdDAKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDAsIHQyLCAub3BQ
dXRCeVZhbFNsb3cpCisgICAgc3hpMnAgdDIsIHQyCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDBdLCB0MAorICAgIGxvYWRw
IEpTR2xvYmFsRGF0YTo6anNBcnJheUNsYXNzSW5mb1t0MF0sIHQwCisgICAgYnBuZXEgW3QxXSwg
dDAsIC5vcFB1dEJ5VmFsU2xvdworICAgIGJpYWVxIHQyLCBKU0FycmF5OjptX3ZlY3Rvckxlbmd0
aFt0MV0sIC5vcFB1dEJ5VmFsU2xvdworICAgIGxvYWRwIEpTQXJyYXk6Om1fc3RvcmFnZVt0MV0s
IHQwCisgICAgYnRweiBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yW3QwLCB0MiwgOF0sIC5vcFB1dEJ5
VmFsRW1wdHkKKy5vcFB1dEJ5VmFsU3RvcmVSZXN1bHQ6CisgICAgbG9hZGlzIDI0W1BCLCBQQywg
OF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MywgdDEpCisgICAgd3JpdGVCYXJy
aWVyKHQxKQorICAgIHN0b3JlcCB0MSwgQXJyYXlTdG9yYWdlOjptX3ZlY3Rvclt0MCwgdDIsIDhd
CisgICAgZGlzcGF0Y2goNCkKKworLm9wUHV0QnlWYWxFbXB0eToKKyAgICBhZGRpIDEsIEFycmF5
U3RvcmFnZTo6bV9udW1WYWx1ZXNJblZlY3Rvclt0MF0KKyAgICBiaWIgdDIsIEFycmF5U3RvcmFn
ZTo6bV9sZW5ndGhbdDBdLCAub3BQdXRCeVZhbFN0b3JlUmVzdWx0CisgICAgYWRkaSAxLCB0Miwg
dDEKKyAgICBzdG9yZWkgdDEsIEFycmF5U3RvcmFnZTo6bV9sZW5ndGhbdDBdCisgICAgam1wIC5v
cFB1dEJ5VmFsU3RvcmVSZXN1bHQKKworLm9wUHV0QnlWYWxTbG93OgorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV92YWwpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxp
bnRfb3BfbG9vcDoKKyAgICBub3AKK19sbGludF9vcF9qbXA6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGRpc3BhdGNoSW50KDhbUEIsIFBDLCA4XSkKKworCittYWNybyBqdW1wVHJ1ZU9yRmFs
c2UoY29uZGl0aW9uT3AsIHNsb3cpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAgICB4b3JwIFZhbHVlRmFsc2UsIHQwCisg
ICAgYnRwbnogdDAsIC0xLCAuc2xvdworICAgIGNvbmRpdGlvbk9wKHQwLCAudGFyZ2V0KQorICAg
IGRpc3BhdGNoKDMpCisKKy50YXJnZXQ6CisgICAgZGlzcGF0Y2hJbnQoMTZbUEIsIFBDLCA4XSkK
KworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3cpCisgICAgZGlzcGF0Y2goMCkKK2VuZAor
CisKK21hY3JvIGVxdWFsTnVsbChjZWxsSGFuZGxlciwgaW1tZWRpYXRlSGFuZGxlcikKKyAgICBs
b2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQorICAgIGxv
YWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLmltbWVkaWF0ZQor
ICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIGNlbGxIYW5kbGVyKFN0
cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QyXSwgLnRhcmdldCkKKyAg
ICBkaXNwYXRjaCgzKQorCisudGFyZ2V0OgorICAgIGRpc3BhdGNoKDE2W1BCLCBQQywgOF0pCisK
Ky5pbW1lZGlhdGU6CisgICAgYW5kcCB+VGFnQml0VW5kZWZpbmVkLCB0MAorICAgIGltbWVkaWF0
ZUhhbmRsZXIodDAsIC50YXJnZXQpCisgICAgZGlzcGF0Y2goMykKK2VuZAorCitfbGxpbnRfb3Bf
amVxX251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbCgKKyAgICAgICAg
bWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0Ym56IHZhbHVlLCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnBlcSB2YWx1ZSwg
VmFsdWVOdWxsLCB0YXJnZXQgZW5kKQorCisKK19sbGludF9vcF9qbmVxX251bGw6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJn
ZXQpIGJ0YnogdmFsdWUsIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHRhcmdldCBlbmQsCisgICAg
ICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBicG5lcSB2YWx1ZSwgVmFsdWVOdWxsLCB0YXJnZXQg
ZW5kKQorCisKK19sbGludF9vcF9qbmVxX3B0cjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCAxNltQQiwgUEMsIDhdLCB0MQorICAg
IGJwbmVxIHQxLCBbY2ZyLCB0MCwgOF0sIC5vcEpuZXFQdHJUYXJnZXQKKyAgICBkaXNwYXRjaCg0
KQorCisub3BKbmVxUHRyVGFyZ2V0OgorICAgIGRpc3BhdGNoSW50KDI0W1BCLCBQQywgOF0pCisK
KworbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91YmxlQ29tcGFyZSwgc2xvd1BhdGgp
CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwg
dDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHQzLCB0MSkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1iZXIsIC5vcDFOb3RJbnQK
KyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJOb3RJbnQKKyAgICBpbnRlZ2VyQ29tcGFy
ZSh0MCwgdDEsIC5qdW1wVGFyZ2V0KQorICAgIGRpc3BhdGNoKDQpCisKKy5vcDFOb3RJbnQ6Cisg
ICAgYnRweiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBicGIgdDEsIHRhZ1R5cGVOdW1i
ZXIsIC5vcDFOb3RJbnRPcDJOb3RJbnQKKyAgICBjaTJkIHQxLCBmdDEKKyAgICBqbXAgLm9wMU5v
dEludFJlYWR5Cisub3AxTm90SW50T3AyTm90SW50OgorICAgIGJ0cHogdDEsIHRhZ1R5cGVOdW1i
ZXIsIC5zbG93CisgICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIGZwMmQgdDEsIGZ0MQor
Lm9wMU5vdEludFJlYWR5OgorICAgIGFkZHAgdGFnVHlwZU51bWJlciwgdDAKKyAgICBmcDJkIHQw
LCBmdDAKKyAgICBkb3VibGVDb21wYXJlKGZ0MCwgZnQxLCAuanVtcFRhcmdldCkKKyAgICBkaXNw
YXRjaCg0KQorCisub3AyTm90SW50OgorICAgIGNpMmQgdDAsIGZ0MAorICAgIGJ0cHogdDEsIHRh
Z1R5cGVOdW1iZXIsIC5zbG93CisgICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIGZwMmQg
dDEsIGZ0MQorICAgIGRvdWJsZUNvbXBhcmUoZnQwLCBmdDEsIC5qdW1wVGFyZ2V0KQorICAgIGRp
c3BhdGNoKDQpCisKKy5qdW1wVGFyZ2V0OgorICAgIGRpc3BhdGNoSW50KDI0W1BCLCBQQywgOF0p
CisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgwKQor
ZW5kCisKKworX2xsaW50X29wX3N3aXRjaF9pbW06CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQzCisg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHQyCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX3JhcmVEYXRhW3QyXSwgdDIKKyAgICBtdWxp
IHNpemVvZiBTaW1wbGVKdW1wVGFibGUsIHQzICAgICMgRklYTUU6IHdvdWxkIGJlIG5pY2UgdG8g
cGVlcGhvbGUgdGhpcyEKKyAgICBsb2FkcCBDb2RlQmxvY2s6OlJhcmVEYXRhOjptX2ltbWVkaWF0
ZVN3aXRjaEp1bXBUYWJsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0MgorICAgIGFkZHAg
dDMsIHQyCisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3BTd2l0Y2hJbW1Ob3RJbnQKKyAg
ICBzdWJpIFNpbXBsZUp1bXBUYWJsZTo6bWluW3QyXSwgdDEKKyAgICBiaWFlcSB0MSwgU2ltcGxl
SnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVjdG9yU2l6ZU9mZnNldFt0Ml0sIC5vcFN3aXRj
aEltbUZhbGxUaHJvdWdoCisgICAgbG9hZHAgU2ltcGxlSnVtcFRhYmxlOjpicmFuY2hPZmZzZXRz
ICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDMKKyAgICBsb2FkaXMgW3QzLCB0MSwgNF0sIHQx
CisgICAgYnRpeiB0MSwgLm9wU3dpdGNoSW1tRmFsbFRocm91Z2gKKyAgICBkaXNwYXRjaCh0MSkK
KworLm9wU3dpdGNoSW1tTm90SW50OgorICAgIGJ0cG56IHQxLCB0YWdUeXBlTnVtYmVyLCAub3BT
d2l0Y2hJbW1TbG93ICAgIyBHbyBzbG93IGlmIGl0J3MgYSBkb3VibGUuCisub3BTd2l0Y2hJbW1G
YWxsVGhyb3VnaDoKKyAgICBkaXNwYXRjaEludCgxNltQQiwgUEMsIDhdKQorCisub3BTd2l0Y2hJ
bW1TbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N3aXRjaF9pbW0pCisg
ICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfb3Bfc3dpdGNoX2NoYXI6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpcyA4W1BCLCBQ
QywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEpCisgICAgbG9hZHAg
Q29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX3JhcmVEYXRhW3QyXSwg
dDIKKyAgICBtdWxpIHNpemVvZiBTaW1wbGVKdW1wVGFibGUsIHQzCisgICAgbG9hZHAgQ29kZUJs
b2NrOjpSYXJlRGF0YTo6bV9jaGFyYWN0ZXJTd2l0Y2hKdW1wVGFibGVzICsgVmVjdG9yQnVmZmVy
T2Zmc2V0W3QyXSwgdDIKKyAgICBhZGRwIHQzLCB0MgorICAgIGJ0cG56IHQxLCB0YWdNYXNrLCAu
b3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3Qx
XSwgdDAKKyAgICBiYm5lcSBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBl
W3QwXSwgU3RyaW5nVHlwZSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAgSlNT
dHJpbmc6Om1fdmFsdWVbdDFdLCB0MAorICAgIGJpbmVxIFN0cmluZ0ltcGw6Om1fbGVuZ3RoW3Qw
XSwgMSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAgU3RyaW5nSW1wbDo6bV9k
YXRhOFt0MF0sIHQxCisgICAgYnRpbnogU3RyaW5nSW1wbDo6bV9oYXNoQW5kRmxhZ3NbdDBdLCBI
YXNoRmxhZ3M4Qml0QnVmZmVyLCAub3BTd2l0Y2hDaGFyOEJpdAorICAgIGxvYWRoIFt0MV0sIHQw
CisgICAgam1wIC5vcFN3aXRjaENoYXJSZWFkeQorLm9wU3dpdGNoQ2hhcjhCaXQ6CisgICAgbG9h
ZGIgW3QxXSwgdDAKKy5vcFN3aXRjaENoYXJSZWFkeToKKyAgICBzdWJpIFNpbXBsZUp1bXBUYWJs
ZTo6bWluW3QyXSwgdDAKKyAgICBiaWFlcSB0MCwgU2ltcGxlSnVtcFRhYmxlOjpicmFuY2hPZmZz
ZXRzICsgVmVjdG9yU2l6ZU9mZnNldFt0Ml0sIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAorICAg
IGxvYWRwIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvckJ1ZmZlck9mZnNl
dFt0Ml0sIHQyCisgICAgbG9hZGlzIFt0MiwgdDAsIDRdLCB0MQorICAgIGJ0aXogdDEsIC5vcFN3
aXRjaENoYXJGYWxsVGhyb3VnaAorICAgIGRpc3BhdGNoKHQxKQorCisub3BTd2l0Y2hDaGFyRmFs
bFRocm91Z2g6CisgICAgZGlzcGF0Y2hJbnQoMTZbUEIsIFBDLCA4XSkKKworCitfbGxpbnRfb3Bf
bmV3X2Z1bmM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJ0aXogMjRbUEIsIFBDLCA4XSwg
Lm9wTmV3RnVuY1VuY2hlY2tlZAorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgYnRw
bnogW2NmciwgdDEsIDhdLCAub3BOZXdGdW5jRG9uZQorLm9wTmV3RnVuY1VuY2hlY2tlZDoKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfZnVuYykKKy5vcE5ld0Z1bmNEb25l
OgorICAgIGRpc3BhdGNoKDQpCisKKworbWFjcm8gZG9DYWxsKHNsb3dQYXRoKQorICAgIGxvYWRp
cyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgMzJbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2Fk
cCBMTEludENhbGxMaW5rSW5mbzo6Y2FsbGVlW3QxXSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKHQwLCB0MykKKyAgICBicG5lcSB0MywgdDIsIC5vcENhbGxTbG93CisgICAgbG9hZGlz
IDI0W1BCLCBQQywgOF0sIHQzCisgICAgYWRkaSA2LCBQQworICAgIGxzaGlmdGkgMywgdDMKKyAg
ICBhZGRwIGNmciwgdDMKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX3Njb3BlQ2hhaW5bdDJdLCB0
MAorICAgIHN0b3JlcCB0MiwgQ2FsbGVlW3QzXQorICAgIHN0b3JlcCB0MCwgU2NvcGVDaGFpblt0
M10KKyAgICBsb2FkaXMgMTYgLSA0OFtQQiwgUEMsIDhdLCB0MgorICAgIHN0b3JlaSBQQywgQXJn
dW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCisgICAgc3RvcmVwIGNmciwgQ2FsbGVyRnJhbWVb
dDNdCisgICAgc3RvcmVpIHQyLCBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFt0M10KKyAg
ICBtb3ZlIHQzLCBjZnIKKyAgICBjYWxsIExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRh
cmdldFt0MV0KKyAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCisKKy5vcENhbGxTbG93OgorICAgIHNs
b3dQYXRoRm9yQ2FsbCg2LCBzbG93UGF0aCkKK2VuZAorCisKK19sbGludF9vcF90ZWFyX29mZl9h
Y3RpdmF0aW9uOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MAorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MQorICAgIGJ0cG56IFtjZnIsIHQwLCA4
XSwgLm9wVGVhck9mZkFjdGl2YXRpb25DcmVhdGVkCisgICAgYnRweiBbY2ZyLCB0MSwgOF0sIC5v
cFRlYXJPZmZBY3RpdmF0aW9uTm90Q3JlYXRlZAorLm9wVGVhck9mZkFjdGl2YXRpb25DcmVhdGVk
OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RlYXJfb2ZmX2FjdGl2YXRpb24p
Cisub3BUZWFyT2ZmQWN0aXZhdGlvbk5vdENyZWF0ZWQ6CisgICAgZGlzcGF0Y2goMykKKworCitf
bGxpbnRfb3BfdGVhcl9vZmZfYXJndW1lbnRzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBs
b2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIHN1YmkgMSwgdDAgICAjIEdldCB0aGUgdW5tb2Rp
ZmllZEFyZ3VtZW50c1JlZ2lzdGVyCisgICAgYnRweiBbY2ZyLCB0MCwgOF0sIC5vcFRlYXJPZmZB
cmd1bWVudHNOb3RDcmVhdGVkCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGVh
cl9vZmZfYXJndW1lbnRzKQorLm9wVGVhck9mZkFyZ3VtZW50c05vdENyZWF0ZWQ6CisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfcmV0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBj
aGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQy
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgZG9SZXR1cm4oKQorCisK
K19sbGludF9vcF9jYWxsX3B1dF9yZXN1bHQ6CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIK
KyAgICBsb2FkcCAxNltQQiwgUEMsIDhdLCB0MworICAgIHN0b3JlcCB0MCwgW2NmciwgdDIsIDhd
CisgICAgdmFsdWVQcm9maWxlKHQwLCB0MykKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZGlz
cGF0Y2goMykKKworCitfbGxpbnRfb3BfcmV0X29iamVjdF9vcl90aGlzOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQorICAgIGxvYWRpcyA4
W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAg
YnRwbnogdDAsIHRhZ01hc2ssIC5vcFJldE9iamVjdE9yVGhpc05vdE9iamVjdAorICAgIGxvYWRw
IEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIGJiYiBTdHJ1Y3R1cmU6Om1fdHlwZUlu
Zm8gKyBUeXBlSW5mbzo6bV90eXBlW3QyXSwgT2JqZWN0VHlwZSwgLm9wUmV0T2JqZWN0T3JUaGlz
Tm90T2JqZWN0CisgICAgZG9SZXR1cm4oKQorCisub3BSZXRPYmplY3RPclRoaXNOb3RPYmplY3Q6
CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZSh0MiwgdDApCisgICAgZG9SZXR1cm4oKQorCisKK19sbGludF9vcF90b19wcmltaXRpdmU6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxv
YWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDAp
CisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcFRvUHJpbWl0aXZlSXNJbW0KKyAgICBsb2FkcCBK
U0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDIKKyAgICBiYm5lcSBTdHJ1Y3R1cmU6Om1fdHlwZUlu
Zm8gKyBUeXBlSW5mbzo6bV90eXBlW3QyXSwgU3RyaW5nVHlwZSwgLm9wVG9QcmltaXRpdmVTbG93
Q2FzZQorLm9wVG9QcmltaXRpdmVJc0ltbToKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4XQor
ICAgIGRpc3BhdGNoKDMpCisKKy5vcFRvUHJpbWl0aXZlU2xvd0Nhc2U6CisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfdG9fcHJpbWl0aXZlKQorICAgIGRpc3BhdGNoKDMpCisKKwor
X2xsaW50X29wX25leHRfcG5hbWU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAy
NFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpcyAzMltQQiwgUEMsIDhdLCB0MgorICAgIGFzc2Vy
dE5vdENvbnN0YW50KHQxKQorICAgIGFzc2VydE5vdENvbnN0YW50KHQyKQorICAgIGxvYWRpIFBh
eWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0sIHQwCisgICAgYmllcSB0MCwgUGF5bG9hZE9mZnNldFtj
ZnIsIHQyLCA4XSwgLm9wTmV4dFBuYW1lRW5kCisgICAgbG9hZGlzIDQwW1BCLCBQQywgOF0sIHQy
CisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDIpCisgICAgbG9hZHAgW2NmciwgdDIsIDhdLCB0Mgor
ICAgIGxvYWRwIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6Om1fanNTdHJpbmdzW3QyXSwgdDMKKyAg
ICBsb2FkcCBbdDMsIHQwLCA4XSwgdDMKKyAgICBhZGRpIDEsIHQwCisgICAgc3RvcmVpIHQwLCBQ
YXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAg
ICBzdG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0Mwor
ICAgIGFzc2VydE5vdENvbnN0YW50KHQzKQorICAgIGxvYWRwIFtjZnIsIHQzLCA4XSwgdDMKKyAg
ICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QzXSwgdDEKKyAgICBicG5lcSB0MSwgSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvcjo6bV9jYWNoZWRTdHJ1Y3R1cmVbdDJdLCAub3BOZXh0UG5hbWVTbG93
CisgICAgbG9hZHAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9jYWNoZWRQcm90b3R5cGVDaGFp
blt0Ml0sIHQwCisgICAgbG9hZHAgU3RydWN0dXJlQ2hhaW46Om1fdmVjdG9yW3QwXSwgdDAKKyAg
ICBidHB6IFt0MF0sIC5vcE5leHRQbmFtZVRhcmdldAorLm9wTmV4dFBuYW1lQ2hlY2tQcm90b3R5
cGVMb29wOgorICAgIGJwZXEgU3RydWN0dXJlOjptX3Byb3RvdHlwZVt0MV0sIFZhbHVlTnVsbCwg
Lm9wTmV4dFBuYW1lU2xvdworICAgIGxvYWRwIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbdDFdLCB0
MgorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDJdLCB0MQorICAgIGJwbmVxIHQxLCBb
dDBdLCAub3BOZXh0UG5hbWVTbG93CisgICAgYWRkcCA4LCB0MAorICAgIGJ0cG56IFt0MF0sIC5v
cE5leHRQbmFtZUNoZWNrUHJvdG90eXBlTG9vcAorLm9wTmV4dFBuYW1lVGFyZ2V0OgorICAgIGRp
c3BhdGNoSW50KDQ4W1BCLCBQQywgOF0pCisKKy5vcE5leHRQbmFtZUVuZDoKKyAgICBkaXNwYXRj
aCg3KQorCisub3BOZXh0UG5hbWVTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25leHRfcG5hbWUpICMgVGhpcyBlaXRoZXIga2VlcHMgdGhlIFBDIHdoZXJlIGl0IHdhcyAo
Y2F1c2luZyB1cyB0byBsb29wKSBvciBzZXRzIGl0IHRvIHRhcmdldC4KKyAgICBkaXNwYXRjaCgw
KQorCisKK19sbGludF9vcF9jYXRjaDoKKyAgICAjIFRoaXMgaXMgd2hlcmUgd2UgZW5kIHVwIGZy
b20gdGhlIEpJVCdzIHRocm93IHRyYW1wb2xpbmUgKGJlY2F1c2UgdGhlCisgICAgIyBtYWNoaW5l
IGNvZGUgcmV0dXJuIGFkZHJlc3Mgd2lsbCBiZSBzZXQgdG8gX2xsaW50X29wX2NhdGNoKSwgYW5k
IGZyb20KKyAgICAjIHRoZSBpbnRlcnByZXRlcidzIHRocm93IHRyYW1wb2xpbmUgKHNlZSBfbGxp
bnRfdGhyb3dfdHJhbXBvbGluZSkuCisgICAgIyBUaGUgSklUIHRocm93aW5nIHByb3RvY29sIGNh
bGxzIGZvciB0aGUgY2ZyIHRvIGJlIGluIHQwLiBUaGUgdGhyb3dpbmcKKyAgICAjIGNvZGUgbXVz
dCBoYXZlIGtub3duIHRoYXQgd2Ugd2VyZSB0aHJvd2luZyB0byB0aGUgaW50ZXJwcmV0ZXIsIGFu
ZCBoYXZlCisgICAgIyBzZXQgSlNHbG9iYWxEYXRhOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhy
b3cuCisgICAgbW92ZSB0MCwgY2ZyCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIFBCCisgICAg
bG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1tQQl0sIFBCCisgICAgbG9hZHAgSklUU3Rh
Y2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjp0YXJn
ZXRJbnRlcnByZXRlclBDRm9yVGhyb3dbdDNdLCBQQworICAgIHN1YnAgUEIsIFBDCisgICAgdXJz
aGlmdHAgMywgUEMKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvblt0M10sIHQwCisg
ICAgc3RvcmVwIDAsIEpTR2xvYmFsRGF0YTo6ZXhjZXB0aW9uW3QzXQorICAgIGxvYWRpcyA4W1BC
LCBQQywgOF0sIHQyCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MiwgOF0KKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfanNyOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGFkZGkgMywgUEMsIHQx
CisgICAgc3RvcmVpIHQxLCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaEludCgxNltQQiwgUEMs
IDhdKQorCisKK19sbGludF9vcF9zcmV0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIFtjZnIsIHQwLCA4XSwgUEMKKyAgICBkaXNw
YXRjaCgwKQorCisKK19sbGludF9vcF9lbmQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNo
ZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAK
KyAgICBhc3NlcnROb3RDb25zdGFudCh0MCkKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIHQwCisg
ICAgZG9SZXR1cm4oKQorCisKK19sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5l
OgorICAgICMgV2hlbiB0aHJvd2luZyBmcm9tIHRoZSBpbnRlcnByZXRlciAoaS5lLiB0aHJvd2lu
ZyBmcm9tIExMSW50U2xvd1BhdGhzKSwgc28KKyAgICAjIHRoZSB0aHJvdyB0YXJnZXQgaXMgbm90
IG5lY2Vzc2FyaWx5IGludGVycHJldGVkIGNvZGUsIHdlIGNvbWUgdG8gaGVyZS4KKyAgICAjIFRo
aXMgZXNzZW50aWFsbHkgZW11bGF0ZXMgdGhlIEpJVCdzIHRocm93aW5nIHByb3RvY29sLgorICAg
IGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MQorICAgIGxvYWRwIEpTR2xv
YmFsRGF0YTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDFdLCB0MAorICAgIGptcCBKU0dsb2JhbERhdGE6
OnRhcmdldE1hY2hpbmVQQ0ZvclRocm93W3QxXQorCisKK19sbGludF90aHJvd19kdXJpbmdfY2Fs
bF90cmFtcG9saW5lOgorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKKyAg
ICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDEKKyAgICBsb2FkcCBKU0ds
b2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAgICBqbXAgSlNHbG9iYWxEYXRh
Ojp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0MV0KKworCittYWNybyBuYXRpdmVDYWxsVHJhbXBv
bGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKyAgICBzdG9yZXAgMCwgQ29kZUJsb2Nr
W2Nmcl0KKyAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCB0MAorICAgIGxvYWRwIFNjb3BlQ2hh
aW5bdDBdLCB0MQorICAgIHN0b3JlcCB0MSwgU2NvcGVDaGFpbltjZnJdCisgICAgcGVlayAwLCB0
MQorICAgIHN0b3JlcCB0MSwgUmV0dXJuUENbY2ZyXQorICAgIG1vdmUgY2ZyLCB0NSAgIyB0NSA9
IHJkaQorICAgIHN1YnAgMTYgLSA4LCBzcAorICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0NCAjIHQ0
ID0gcnNpCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Q0XSwgdDEKKyAgICBt
b3ZlIHQwLCBjZnIgIyBSZXN0b3JlIGNmciB0byBhdm9pZCBsb2FkaW5nIGZyb20gc3RhY2sKKyAg
ICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAgIGFkZHAgMTYgLSA4LCBz
cAorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGEgKyA4W3NwXSwgdDMKKyAgICBi
dHBueiBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvblt0M10sIC5leGNlcHRpb24KKyAgICByZXQKKy5l
eGNlcHRpb246CisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQxKQorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2FsbCkKKyAgICBqbXAgX2xsaW50
X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKK2VuZAogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZp
c2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIxLDkgKzIxLDgyNyBAQAogIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorIyBGaXJzdCBjb21l
IHRoZSBjb21tb24gcHJvdG9jb2xzIHRoYXQgYm90aCBpbnRlcnByZXRlcnMgdXNlLiBOb3RlIHRo
YXQgZWFjaAorIyBvZiB0aGVzZSBtdXN0IGhhdmUgYW4gQVNTRVJUKCkgaW4gTExJbnREYXRhLmNw
cAorCisjIFRoZXNlIGRlY2xhcmF0aW9ucyBtdXN0IG1hdGNoIGludGVycHJldGVyL1JlZ2lzdGVy
RmlsZS5oLgorY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDQ4Citjb25zdCBBcmd1bWVudENv
dW50ID0gLTQ4Citjb25zdCBDYWxsZXJGcmFtZSA9IC00MAorY29uc3QgQ2FsbGVlID0gLTMyCitj
b25zdCBTY29wZUNoYWluID0gLTI0Citjb25zdCBSZXR1cm5QQyA9IC0xNgorY29uc3QgQ29kZUJs
b2NrID0gLTgKKworY29uc3QgVGhpc0FyZ3VtZW50T2Zmc2V0ID0gLUNhbGxGcmFtZUhlYWRlclNp
emUgLSA4CisKKyMgU29tZSByZWdpc3RlciBjb252ZW50aW9ucy4KK2lmIEpTVkFMVUU2NAorICAg
ICMgLSBVc2UgYSBwYWlyIG9mIHJlZ2lzdGVycyB0byByZXByZXNlbnQgdGhlIFBDOiBvbmUgcmVn
aXN0ZXIgZm9yIHRoZQorICAgICMgICBiYXNlIG9mIHRoZSByZWdpc3RlciBmaWxlLCBhbmQgb25l
IHJlZ2lzdGVyIGZvciB0aGUgaW5kZXguCisgICAgIyAtIFRoZSBQQyBiYXNlIChvciBQQiBmb3Ig
c2hvcnQpIHNob3VsZCBiZSBzdG9yZWQgaW4gdGhlIGNzci4gSXQgd2lsbAorICAgICMgICBnZXQg
Y2xvYmJlcmVkIG9uIGNhbGxzIHRvIG90aGVyIEpTIGNvZGUsIGJ1dCB3aWxsIGdldCBzYXZlZCBv
biBjYWxscworICAgICMgICB0byBDIGZ1bmN0aW9ucy4KKyAgICAjIC0gQyBjYWxscyBhcmUgc3Rp
bGwgZ2l2ZW4gdGhlIEluc3RydWN0aW9uKiByYXRoZXIgdGhhbiB0aGUgUEMgaW5kZXguCisgICAg
IyAgIFRoaXMgcmVxdWlyZXMgYW4gYWRkIGJlZm9yZSB0aGUgY2FsbCwgYW5kIGEgc3ViIGFmdGVy
LgorICAgIGNvbnN0IFBDID0gdDQKKyAgICBjb25zdCBQQiA9IHQ2CisgICAgY29uc3QgdGFnVHlw
ZU51bWJlciA9IGNzcjEKKyAgICBjb25zdCB0YWdNYXNrID0gY3NyMgorZWxzZQorICAgIGNvbnN0
IFBDID0gdDQKK2VuZAorCisjIENvbnN0YW50cyBmb3IgcmVhc29uaW5nIGFib3V0IHZhbHVlIHJl
cHJlc2VudGF0aW9uLgoraWYgQklHX0VORElBTgorICAgIGNvbnN0IFRhZ09mZnNldCA9IDAKKyAg
ICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gNAorZWxzZQorICAgIGNvbnN0IFRhZ09mZnNldCA9IDQK
KyAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gMAorZW5kCisKKyMgVHlwZSBjb25zdGFudHMuCitj
b25zdCBTdHJpbmdUeXBlID0gNQorY29uc3QgT2JqZWN0VHlwZSA9IDEzCisKKyMgVHlwZSBmbGFn
cyBjb25zdGFudHMuCitjb25zdCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMQorY29uc3QgSW1w
bGVtZW50c0hhc0luc3RhbmNlID0gMgorY29uc3QgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5j
ZSA9IDgKKworIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0YW50cy4KK2NvbnN0IEZpcnN0Q29uc3Rh
bnRSZWdpc3RlckluZGV4ID0gMHg0MDAwMDAwMAorCisjIENvZGUgdHlwZSBjb25zdGFudHMuCitj
b25zdCBHbG9iYWxDb2RlID0gMAorY29uc3QgRXZhbENvZGUgPSAxCitjb25zdCBGdW5jdGlvbkNv
ZGUgPSAyCisKKyMgVGhlIGludGVycHJldGVyIHN0ZWFscyB0aGUgdGFnIHdvcmQgb2YgdGhlIGFy
Z3VtZW50IGNvdW50LgorY29uc3QgTExJbnRSZXR1cm5QQyA9IEFyZ3VtZW50Q291bnQgKyBUYWdP
ZmZzZXQKKworIyBTdHJpbmcgZmxhZ3MuCitjb25zdCBIYXNoRmxhZ3M4Qml0QnVmZmVyID0gNjQK
KworIyBBbGxvY2F0aW9uIGNvbnN0YW50cworaWYgSlNWQUxVRTY0CisgICAgY29uc3QgSlNGaW5h
bE9iamVjdFNpemVDbGFzc0luZGV4ID0gMQorZWxzZQorICAgIGNvbnN0IEpTRmluYWxPYmplY3RT
aXplQ2xhc3NJbmRleCA9IDMKK2VuZAorCisjIFRoaXMgbXVzdCBtYXRjaCB3dGYvVmVjdG9yLmgK
K2lmIEpTVkFMVUU2NAorICAgIGNvbnN0IFZlY3RvclNpemVPZmZzZXQgPSAwCisgICAgY29uc3Qg
VmVjdG9yQnVmZmVyT2Zmc2V0ID0gOAorZWxzZQorICAgIGNvbnN0IFZlY3RvclNpemVPZmZzZXQg
PSAwCisgICAgY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAorZW5kCisKKworIyBTb21lIGNv
bW1vbiB1dGlsaXRpZXMuCittYWNybyBjcmFzaCgpCisgICAgc3RvcmVpIDAsIDB4YmJhZGJlZWZb
XQorICAgIG1vdmUgMCwgdDAKKyAgICBjYWxsIHQwCitlbmQKKworbWFjcm8gYXNzZXJ0KGFzc2Vy
dGlvbikKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBhc3NlcnRpb24oLm9rKQorICAg
ICAgICBjcmFzaCgpCisgICAgLm9rOgorICAgIGVuZAorZW5kCisKK21hY3JvIHByZXNlcnZlUmV0
dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVyKQorICAgIGlmIEFSTXY3Cisg
ICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKKyAgICBlbHNpZiBYODYgb3IgWDg2
XzY0CisgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzZQorICAgICAgICBl
cnJvcgorICAgIGVuZAorZW5kCisKK21hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0
dXJuKHNvdXJjZVJlZ2lzdGVyKQorICAgIGlmIEFSTXY3CisgICAgICAgIG1vdmUgc291cmNlUmVn
aXN0ZXIsIGxyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAgICBwdXNoIHNvdXJjZVJl
Z2lzdGVyCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorZW5kCisKK21hY3JvIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAgICAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3RyYWNlKQorICAgIGVuZAorZW5kCisKK21hY3JvIHNsb3dQYXRoRm9yQ2Fs
bChhZHZhbmNlLCBzbG93UGF0aCkKKyAgICBjYWxsQ2FsbFNsb3dQYXRoKAorICAgICAgICBhZHZh
bmNlLAorICAgICAgICBzbG93UGF0aCwKKyAgICAgICAgbWFjcm8gKGNhbGxlZSkKKyAgICAgICAg
ICAgIGNhbGwgY2FsbGVlCisgICAgICAgICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCisgICAgICAg
IGVuZCkKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklUKGluY3JlbWVudCwgYWN0aW9uKQor
ICAgIGlmIEpJVF9FTkFCTEVECisgICAgICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAg
ICAgICBiYWRkaXMgaW5jcmVtZW50LCBDb2RlQmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRlciAr
IEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MF0sIC5jb250aW51ZQorICAgICAgICBhY3Rp
b24oKQorICAgIC5jb250aW51ZToKKyAgICBlbmQKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRv
SklURm9yRXBpbG9ndWUoKQorICAgIGNoZWNrU3dpdGNoVG9KSVQoCisgICAgICAgIDEwLAorICAg
ICAgICBtYWNybyAoKQorICAgICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQor
ICAgICAgICBlbmQpCitlbmQKKworbWFjcm8gYXNzZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCisgICAg
YXNzZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgs
IG9rIGVuZCkKK2VuZAorCittYWNybyBmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIodGFy
Z2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCisgICAg
bG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVn
aXN0ZXIKKyAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ2FsbFt0
YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gZnVuY3Rpb25Gb3JD
b25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ2FsbGVl
W2Nmcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxl
W3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1
dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVn
aXN0ZXIKK2VuZAorCittYWNybyBub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdp
c3RlcikKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKK2VuZAorCitt
YWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdpc3RlcikKKyAgICBzdG9yZXAg
c291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCitlbmQKKworbWFjcm8gbm90RnVuY3Rpb25D
b2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCisgICAgIyBOb3RoaW5nIHRvIGRvIQorZW5k
CisKKyMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBleGVjdXRlIGNvZGUuIFNldHMg
dXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgorIyBpbiB0MS4gTWF5IGFsc28gdHJpZ2dl
ciBwcm9sb2d1ZSBlbnRyeSBPU1IuCittYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNv
ZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgpCisgICAgcHJlc2VydmVS
ZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQorICAgIAorICAgICMgU2V0IHVwIHRoZSBjYWxsIGZy
YW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgorICAgIHN0b3JlcCB0MiwgUmV0dXJuUENb
Y2ZyXQorICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAgICAgIGNhbGxTbG93UGF0aCh0cmFj
ZVNsb3dQYXRoKQorICAgIGVuZAorICAgIGNvZGVCbG9ja0dldHRlcih0MSkKKyAgICBpZiBKSVRf
RU5BQkxFRAorICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50
ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFdLCAuY29udGludWUKKyAgICAgICAg
Y0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAgICBtb3ZlIHQxLCBjZnIKKyAgICAg
ICAgYnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKKyAg
ICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisgICAgICAgIGptcCB0
MAorICAgIC5yZWNvdmVyOgorICAgICAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCisgICAgLmNvbnRp
bnVlOgorICAgIGVuZAorICAgIGNvZGVCbG9ja1NldHRlcih0MSkKKyAgICAKKyAgICAjIFNldCB1
cCB0aGUgUEMuCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9p
bnN0cnVjdGlvbnNbdDFdLCBQQgorICAgICAgICBtb3ZlIDAsIFBDCisgICAgZWxzZQorICAgICAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEMKKyAgICBlbmQKK2VuZAor
CisjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdoYXQgcHJvbG9n
dWUoKSBsZWF2ZXMgYmVoaW5kLgorIyBNdXN0IGNhbGwgZGlzcGF0Y2goMCkgYWZ0ZXIgY2FsbGlu
ZyB0aGlzLgorbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihwcm9maWxlQXJnU2tpcCkKKyAg
ICBpZiBWQUxVRV9QUk9GSUxFUgorICAgICAgICAjIFByb2ZpbGUgdGhlIGFyZ3VtZW50cy4gVW5m
b3J0dW5hdGVseSwgd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIGRvIHRoaXMuIFRoaXMKKyAgICAg
ICAgIyBjb2RlIGlzIHByZXR0eSBob3JyZW5kb3VzIGJlY2F1c2Ugb2YgdGhlIGRpZmZlcmVuY2Ug
aW4gb3JkZXJpbmcgYmV0d2VlbgorICAgICAgICAjIGFyZ3VtZW50cyBhbmQgdmFsdWUgcHJvZmls
ZXMsIHRoZSBkZXNpcmUgdG8gaGF2ZSBhIHNpbXBsZSBsb29wLWRvd24tdG8temVybworICAgICAg
ICAjIGxvb3AsIGFuZCB0aGUgZGVzaXJlIHRvIHVzZSBvbmx5IHRocmVlIHJlZ2lzdGVycyBzbyBh
cyB0byBwcmVzZXJ2ZSB0aGUgUEMgYW5kCisgICAgICAgICMgdGhlIGNvZGUgYmxvY2suIEl0IGlz
IGxpa2VseSB0aGF0IHRoaXMgY29kZSBzaG91bGQgYmUgcmV3cml0dGVuIGluIGEgbW9yZQorICAg
ICAgICAjIG9wdGltYWwgd2F5IGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgaGF2ZSBtb3JlIHRoYW4g
Zml2ZSByZWdpc3RlcnMgYXZhaWxhYmxlCisgICAgICAgICMgZm9yIGFyYml0cmFyeSB1c2UgaW4g
dGhlIGludGVycHJldGVyLgorICAgICAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVy
c1t0MV0sIHQwCisgICAgICAgIGFkZHAgLXByb2ZpbGVBcmdTa2lwLCB0MCAjIFVzZSBhZGRpIGJl
Y2F1c2UgdGhhdCdzIHdoYXQgaGFzIHRoZSBwZWVwaG9sZQorICAgICAgICBhc3NlcnQobWFjcm8g
KG9rKSBicGd0ZXEgdDAsIDAsIG9rIGVuZCkKKyAgICAgICAgYnRweiB0MCwgLmFyZ3VtZW50UHJv
ZmlsZURvbmUKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2FyZ3VtZW50VmFsdWVQcm9maWxl
cyArIFZlY3RvckJ1ZmZlck9mZnNldFt0MV0sIHQzCisgICAgICAgIG11bHAgc2l6ZW9mIFZhbHVl
UHJvZmlsZSwgdDAsIHQyICMgQWFhYWFoaGhoISBOZWVkIHN0cmVuZ3RoIHJlZHVjdGlvbiEKKyAg
ICAgICAgbmVncCB0MAorICAgICAgICBsc2hpZnRwIDMsIHQwCisgICAgICAgIGFkZHAgdDIsIHQz
CisgICAgLmFyZ3VtZW50UHJvZmlsZUxvb3A6CisgICAgICAgIGlmIEpTVkFMVUU2NAorICAgICAg
ICAgICAgbG9hZHAgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtj
ZnIsIHQwXSwgdDIKKyAgICAgICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDMKKyAg
ICAgICAgICAgIHN0b3JlcCB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxl
ICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHNbdDNdCisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRhZ09mZnNldCArIDggLSBwcm9maWxlQXJnU2tp
cCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVByb2ZpbGUs
IHQzCisgICAgICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVl
UHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgVGFnT2Zmc2V0W3QzXQorICAgICAg
ICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldCArIDggLSBwcm9m
aWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBzdG9yZWkgdDIsIHByb2Zp
bGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRz
ICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICAgICAgZW5kCisgICAgICAgIGJhZGRwbnogOCwgdDAs
IC5hcmd1bWVudFByb2ZpbGVMb29wCisgICAgLmFyZ3VtZW50UHJvZmlsZURvbmU6CisgICAgZW5k
CisgICAgICAgIAorICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgorICAgIGxvYWRpIENvZGVCbG9j
azo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9n
bG9iYWxEYXRhW3QxXSwgdDIKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmludGVycHJldGVyW3Qy
XSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdpc3RlckZpbGUgZnJvbSB0aGUgSklU
U3RhY2tGcmFtZQorICAgIGxzaGlmdGkgMywgdDAKKyAgICBhZGRwIHQwLCBjZnIsIHQwCisgICAg
YnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsgUmVnaXN0ZXJGaWxlOjptX2VuZFt0
Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSworCisgICAgIyBTdGFjayBoZWlnaHQgY2hlY2sgZmFpbGVk
IC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfcmVn
aXN0ZXJfZmlsZV9jaGVjaykKKy5zdGFja0hlaWdodE9LOgorZW5kCisKK21hY3JvIGFsbG9jYXRl
QmFzaWNKU09iamVjdChzaXplQ2xhc3NJbmRleCwgY2xhc3NJbmZvT2Zmc2V0LCBzdHJ1Y3R1cmUs
IHJlc3VsdCwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBzbG93Q2FzZSkKKyAgICBpZiBBTFdBWVNfQUxM
T0NBVEVfU0xPVworICAgICAgICBqbXAgc2xvd0Nhc2UKKyAgICBlbHNlCisgICAgICAgIGNvbnN0
IG9mZnNldE9mTXlTaXplQ2xhc3MgPQorICAgICAgICAgICAgSlNHbG9iYWxEYXRhOjpoZWFwICsK
KyAgICAgICAgICAgIEhlYXA6Om1fb2JqZWN0U3BhY2UgKworICAgICAgICAgICAgTWFya2VkU3Bh
Y2U6Om1fbm9ybWFsU3BhY2UgKworICAgICAgICAgICAgTWFya2VkU3BhY2U6OlN1YnNwYWNlOjpw
cmVjaXNlQWxsb2NhdG9ycyArCisgICAgICAgICAgICBzaXplQ2xhc3NJbmRleCAqIHNpemVvZiBN
YXJrZWRBbGxvY2F0b3IKKyAgICAgICAgCisgICAgICAgICMgRklYTUU6IHdlIGNhbiBnZXQgdGhl
IGdsb2JhbCBkYXRhIGluIG9uZSBsb2FkIGZyb20gdGhlIHN0YWNrLgorICAgICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgc2NyYXRjaDEKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2Jh
bERhdGFbc2NyYXRjaDFdLCBzY3JhdGNoMQorICAgICAgICAKKyAgICAgICAgIyBHZXQgdGhlIG9i
amVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuICAgIAorICAgICAgICBsb2FkcCBvZmZzZXRPZk15U2l6
ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2NyYXRjaDFdLCByZXN1
bHQKKyAgICAgICAgYnRweiByZXN1bHQsIHNsb3dDYXNlCisgICAgICAgIAorICAgICAgICAjIFJl
bW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4KKyAgICAgICAgbG9hZHAgW3Jlc3Vs
dF0sIHNjcmF0Y2gyCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgb2Zmc2V0T2ZNeVNpemVDbGFz
cyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gxXQorICAgIAorICAg
ICAgICAjIEluaXRpYWxpemUgdGhlIG9iamVjdC4KKyAgICAgICAgbG9hZHAgY2xhc3NJbmZvT2Zm
c2V0W3NjcmF0Y2gxXSwgc2NyYXRjaDIKKyAgICAgICAgc3RvcmVwIHNjcmF0Y2gyLCBbcmVzdWx0
XQorICAgICAgICBzdG9yZXAgc3RydWN0dXJlLCBKU0NlbGw6Om1fc3RydWN0dXJlW3Jlc3VsdF0K
KyAgICAgICAgc3RvcmVwIDAsIEpTT2JqZWN0OjptX2luaGVyaXRvcklEW3Jlc3VsdF0KKyAgICAg
ICAgYWRkcCBzaXplb2YgSlNPYmplY3QsIHJlc3VsdCwgc2NyYXRjaDEKKyAgICAgICAgc3RvcmVw
IHNjcmF0Y2gxLCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbcmVzdWx0XQorICAgIGVuZAor
ZW5kCisKK21hY3JvIGRvUmV0dXJuKCkKKyAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgorICAg
IGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgorICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVm
b3JlUmV0dXJuKHQyKQorICAgIHJldAorZW5kCisKKworIyBJbmRpY2F0ZSB0aGUgYmVnaW5uaW5n
IG9mIExMSW50LgorX2xsaW50X2JlZ2luOgorICAgIGNyYXNoKCkKKworCitfbGxpbnRfcHJvZ3Jh
bV9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90
RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9w
cm9sb2d1ZSkKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9ldmFsX3Byb2xvZ3VlOgorICAg
IHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9j
a1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlKQorICAgIGRp
c3BhdGNoKDApCisKKworX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlOgorICAgIHBy
b2xvZ3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tT
ZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGwsIF9sbGludF90cmFjZV9w
cm9sb2d1ZV9mdW5jdGlvbl9mb3JfY2FsbCkKKy5mdW5jdGlvbkZvckNhbGxCZWdpbjoKKyAgICBm
dW5jdGlvbkluaXRpYWxpemF0aW9uKDApCisgICAgZGlzcGF0Y2goMCkKKyAgICAKKworX2xsaW50
X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWU6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25G
b3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxp
bnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QsIF9sbGludF90cmFjZV9wcm9sb2d1
ZV9mdW5jdGlvbl9mb3JfY29uc3RydWN0KQorLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW46Cisg
ICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigxKQorICAgIGRpc3BhdGNoKDApCisgICAgCisKK19s
bGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjazoKKyAgICBwcm9sb2d1ZShmdW5jdGlv
bkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRf
ZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0
eUNoZWNrX2Zvcl9jYWxsKQorICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDYWxs
QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQorCisKK19sbGludF9mdW5j
dGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrOgorICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9y
Q29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50
X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5Q2hlY2ssIF9sbGludF90cmFj
ZV9hcml0eUNoZWNrX2Zvcl9jb25zdHJ1Y3QpCisgICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5j
dGlvbkZvckNvbnN0cnVjdEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNo
ZWNrKQorCisKKyMgVmFsdWUtcmVwcmVzZW50YXRpb24tc3BlY2lmaWMgY29kZS4KIGlmIEpTVkFM
VUU2NAogICAgIGluY2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRlcjY0CiBlbHNlCiAgICAgaW5jbHVk
ZSBMb3dMZXZlbEludGVycHJldGVyMzJfNjQKIGVuZAogCisKKyMgVmFsdWUtcmVwcmVzZW50YXRp
b24tYWdub3N0aWMgY29kZS4KK19sbGludF9vcF9uZXdfYXJyYXk6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19hcnJheSkKKyAgICBk
aXNwYXRjaCg0KQorCisKK19sbGludF9vcF9uZXdfYXJyYXlfYnVmZmVyOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfYXJyYXlfYnVm
ZmVyKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX25ld19yZWdleHA6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19yZWdl
eHApCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfbGVzczoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbGVzcykKKyAgICBkaXNw
YXRjaCg0KQorCisKK19sbGludF9vcF9sZXNzZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3NlcSkKKyAgICBkaXNwYXRjaCg0KQor
CisKK19sbGludF9vcF9ncmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVyKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xs
aW50X29wX2dyZWF0ZXJlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcmVxKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX21vZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfbW9kKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX3R5cGVvZjoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdHlw
ZW9mKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX3VuZGVmaW5lZDoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfdW5k
ZWZpbmVkKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX2Jvb2xlYW46CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX2Jv
b2xlYW4pCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfbnVtYmVyOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19udW1i
ZXIpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfc3RyaW5nOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19zdHJpbmcp
CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfb2JqZWN0OgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19vYmplY3QpCisg
ICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfZnVuY3Rpb246CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX2Z1bmN0aW9uKQor
ICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2luOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbikKKyAgICBkaXNwYXRjaCg0KQor
CisKK19sbGludF9vcF9yZXNvbHZlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xs
aW50X29wX3Jlc29sdmVfc2tpcDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9za2lwKQorICAgIGRpc3BhdGNoKDUpCisKKwor
X2xsaW50X29wX3Jlc29sdmVfYmFzZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9iYXNlKQorICAgIGRpc3BhdGNoKDUpCisK
KworX2xsaW50X29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHM6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2Vuc3VyZV9wcm9wZXJ0eV9leGlz
dHMpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfcmVzb2x2ZV93aXRoX2Jhc2U6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jl
c29sdmVfd2l0aF9iYXNlKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX3Jlc29sdmVf
d2l0aF90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfdGhpcykKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGlu
dF9vcF9kZWxfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9v
cF9kZWxfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9kZWxfYnlfdmFsKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29w
X3B1dF9ieV9pbmRleDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfcHV0X2J5X2luZGV4KQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX3B1dF9nZXR0ZXJfc2V0dGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfZ2V0dGVyX3NldHRlcikKKyAgICBkaXNwYXRjaCg1
KQorCisKK19sbGludF9vcF9qbXBfc2NvcGVzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9qbXBfc2NvcGVzKQorICAgIGRpc3BhdGNoKDAp
CisKKworX2xsaW50X29wX2xvb3BfaWZfdHJ1ZToKKyAgICBub3AKK19sbGludF9vcF9qdHJ1ZToK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAganVtcFRydWVPckZhbHNlKAorICAgICAgICBtYWNy
byAodmFsdWUsIHRhcmdldCkgYnRpbnogdmFsdWUsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGlu
dF9zbG93X3BhdGhfanRydWUpCisKKworX2xsaW50X29wX2xvb3BfaWZfZmFsc2U6CisgICAgbm9w
CitfbGxpbnRfb3BfamZhbHNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBqdW1wVHJ1ZU9y
RmFsc2UoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGl6IHZhbHVlLCB0YXJnZXQg
ZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pmYWxzZSkKKworCitfbGxpbnRfb3BfbG9v
cF9pZl9sZXNzOgorICAgIG5vcAorX2xsaW50X29wX2psZXNzOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmls
dCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0
YXJnZXQpIGJkbHQgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfamxlc3MpCisKKworX2xsaW50X29wX2pubGVzczoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3Rl
cSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0
YXJnZXQpIGJkZ3RlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRf
c2xvd19wYXRoX2pubGVzcykKKworCitfbGxpbnRfb3BfbG9vcF9pZl9ncmVhdGVyOgorICAgIG5v
cAorX2xsaW50X29wX2pncmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJl
KAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndCBsZWZ0LCByaWdodCwg
dGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3QgbGVm
dCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfamdyZWF0ZXIp
CisKKworX2xsaW50X29wX2puZ3JlYXRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29t
cGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHRlcSBsZWZ0LCBy
aWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJk
bHRlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRo
X2puZ3JlYXRlcikKKworCitfbGxpbnRfb3BfbG9vcF9pZl9sZXNzZXE6CisgICAgbm9wCitfbGxp
bnRfb3Bfamxlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0
IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHRlcSBsZWZ0LCBy
aWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbGVzc2VxKQorCisK
K19sbGludF9vcF9qbmxlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgK
KyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQsIHRh
cmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0dW4gbGVm
dCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5sZXNzZXEp
CisKKworX2xsaW50X29wX2xvb3BfaWZfZ3JlYXRlcmVxOgorICAgIG5vcAorX2xsaW50X29wX2pn
cmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQs
CisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0ZXEgbGVmdCwgcmlnaHQs
IHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfamdyZWF0ZXJlcSkKKworCitf
bGxpbnRfb3Bfam5ncmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUo
CisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0LCB0
YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdHVuIGxl
ZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2puZ3JlYXRl
cmVxKQorCisKK19sbGludF9vcF9sb29wX2hpbnQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9v
cF9zd2l0Y2hfc3RyaW5nOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hfc3RyaW5nKQorICAgIGRpc3BhdGNoKDApCisKKworX2xs
aW50X29wX25ld19mdW5jX2V4cDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmNfZXhwKQorICAgIGRpc3BhdGNoKDMpCisKKwor
X2xsaW50X29wX2NhbGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGRvQ2FsbChfbGxpbnRf
c2xvd19wYXRoX2NhbGwpCisKKworX2xsaW50X29wX2NvbnN0cnVjdDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgZG9DYWxsKF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0KQorCisKK19sbGlu
dF9vcF9jYWxsX3ZhcmFyZ3M6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIHNsb3dQYXRoRm9y
Q2FsbCg2LCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfdmFyYXJncykKKworCitfbGxpbnRfb3BfY2Fs
bF9ldmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAKKyAgICAjIEV2YWwgaXMgZXhlY3V0
ZWQgaW4gb25lIG9mIHR3byBtb2RlczoKKyAgICAjCisgICAgIyAxKSBXZSBmaW5kIHRoYXQgd2Un
cmUgcmVhbGx5IGludm9raW5nIGV2YWwoKSBpbiB3aGljaCBjYXNlIHRoZQorICAgICMgICAgZXhl
Y3V0aW9uIGlzIHBlcmZvbWVkIGVudGlyZWx5IGluc2lkZSB0aGUgc2xvd19wYXRoLCBhbmQgaXQK
KyAgICAjICAgIHJldHVybnMgdGhlIFBDIG9mIGEgZnVuY3Rpb24gdGhhdCBqdXN0IHJldHVybnMg
dGhlIHJldHVybiB2YWx1ZQorICAgICMgICAgdGhhdCB0aGUgZXZhbCByZXR1cm5lZC4KKyAgICAj
CisgICAgIyAyKSBXZSBmaW5kIHRoYXQgd2UncmUgaW52b2tpbmcgc29tZXRoaW5nIGNhbGxlZCBl
dmFsKCkgdGhhdCBpcyBub3QKKyAgICAjICAgIHRoZSByZWFsIGV2YWwuIFRoZW4gdGhlIHNsb3df
cGF0aCByZXR1cm5zIHRoZSBQQyBvZiB0aGUgdGhpbmcgdG8KKyAgICAjICAgIGNhbGwsIGFuZCB3
ZSBjYWxsIGl0LgorICAgICMKKyAgICAjIFRoaXMgYWxsb3dzIHVzIHRvIGhhbmRsZSB0d28gY2Fz
ZXMsIHdoaWNoIHdvdWxkIHJlcXVpcmUgYSB0b3RhbCBvZgorICAgICMgdXAgdG8gZm91ciBwaWVj
ZXMgb2Ygc3RhdGUgdGhhdCBjYW5ub3QgYmUgZWFzaWx5IHBhY2tlZCBpbnRvIHR3bworICAgICMg
cmVnaXN0ZXJzIChDIGZ1bmN0aW9ucyBjYW4gcmV0dXJuIHVwIHRvIHR3byByZWdpc3RlcnMsIGVh
c2lseSk6CisgICAgIworICAgICMgLSBUaGUgY2FsbCBmcmFtZSByZWdpc3Rlci4gVGhpcyBtYXkg
b3IgbWF5IG5vdCBoYXZlIGJlZW4gbW9kaWZpZWQKKyAgICAjICAgYnkgdGhlIHNsb3dfcGF0aCwg
YnV0IHRoZSBjb252ZW50aW9uIGlzIHRoYXQgaXQgcmV0dXJucyBpdC4gSXQncyBub3QKKyAgICAj
ICAgdG90YWxseSBjbGVhciBpZiB0aGF0J3MgbmVjZXNzYXJ5LCBzaW5jZSB0aGUgY2ZyIGlzIGNh
bGxlZSBzYXZlLgorICAgICMgICBCdXQgdGhhdCdzIG91ciBzdHlsZSBpbiB0aGlzIGhlcmUgaW50
ZXJwcmV0ZXIgc28gd2Ugc3RpY2sgd2l0aCBpdC4KKyAgICAjCisgICAgIyAtIEEgYml0IHRvIHNh
eSBpZiB0aGUgc2xvd19wYXRoIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCB0aGUgZXZhbCBhbmQgaGFz
CisgICAgIyAgIHRoZSByZXR1cm4gdmFsdWUsIG9yIGRpZCBub3QgZXhlY3V0ZSB0aGUgZXZhbCBi
dXQgaGFzIGEgUEMgZm9yIHVzCisgICAgIyAgIHRvIGNhbGwuCisgICAgIworICAgICMgLSBFaXRo
ZXI6CisgICAgIyAgIC0gVGhlIEpTIHJldHVybiB2YWx1ZSAodHdvIHJlZ2lzdGVycyksIG9yCisg
ICAgIworICAgICMgICAtIFRoZSBQQyB0byBjYWxsLgorICAgICMKKyAgICAjIEl0IHR1cm5zIG91
dCB0byBiZSBlYXNpZXIgdG8ganVzdCBhbHdheXMgaGF2ZSB0aGlzIHJldHVybiB0aGUgY2ZyCisg
ICAgIyBhbmQgYSBQQyB0byBjYWxsLCBhbmQgdGhhdCBQQyBtYXkgYmUgYSBkdW1teSB0aHVuayB0
aGF0IGp1c3QKKyAgICAjIHJldHVybnMgdGhlIEpTIHZhbHVlIHRoYXQgdGhlIGV2YWwgcmV0dXJu
ZWQuCisgICAgCisgICAgc2xvd1BhdGhGb3JDYWxsKDQsIF9sbGludF9zbG93X3BhdGhfY2FsbF9l
dmFsKQorCisKK19sbGludF9nZW5lcmljX3JldHVybl9wb2ludDoKKyAgICBkaXNwYXRjaEFmdGVy
Q2FsbCgpCisKKworX2xsaW50X29wX3N0cmNhdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3RyY2F0KQorICAgIGRpc3BhdGNoKDQpCisK
KworX2xsaW50X29wX21ldGhvZF9jaGVjazoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgIyBX
ZSBpZ25vcmUgbWV0aG9kIGNoZWNrcyBhbmQgdXNlIG5vcm1hbCBnZXRfYnlfaWQgb3B0aW1pemF0
aW9ucy4KKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9vcF9nZXRfcG5hbWVzOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfcG5h
bWVzKQorICAgIGRpc3BhdGNoKDApICMgVGhlIHNsb3dfcGF0aCBlaXRoZXIgYWR2YW5jZXMgdGhl
IFBDIG9yIGp1bXBzIHVzIHRvIHNvbWV3aGVyZSBlbHNlLgorCisKK19sbGludF9vcF9wdXNoX3Nj
b3BlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9wdXNoX3Njb3BlKQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX3BvcF9zY29w
ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfcG9wX3Njb3BlKQorICAgIGRpc3BhdGNoKDEpCisKKworX2xsaW50X29wX3B1c2hfbmV3X3Nj
b3BlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9wdXNoX25ld19zY29wZSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF90aHJv
dzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfdGhyb3cpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfdGhyb3dfcmVmZXJlbmNl
X2Vycm9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF90aHJvd19yZWZlcmVuY2VfZXJyb3IpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxp
bnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRw
IEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZVtzcF0sIHQwCisgICAgYnRw
eiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpCisub3BQcm9maWxlV2lsbENhbGxEb25lOgorICAg
IGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX3Byb2ZpbGVfZGlkX2NhbGw6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVy
ZW5jZVtzcF0sIHQwCisgICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCkKKy5vcFByb2Zp
bGVEaWRDYWxsRG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9kZWJ1ZzoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVi
dWcpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfbmF0aXZlX2NhbGxfdHJhbXBvbGluZToK
KyAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRhYmxlOjptX2Z1bmN0aW9uKQor
CisKK19sbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmU6CisgICAgbmF0aXZlQ2FsbFRy
YW1wb2xpbmUoTmF0aXZlRXhlY3V0YWJsZTo6bV9jb25zdHJ1Y3RvcikKKworCisjIExhc3RseSwg
bWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBh
bGwgb3Bjb2Rlcy4KKyMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2lu
ZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKKyMgYXMgbXVjaC4KKworbWFjcm8gbm90
U3VwcG9ydGVkKCkKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBjcmFzaCgpCisgICAg
ZWxzZQorICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3Np
YmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCisgICAgICAgICMgZW5zdXJlIHRoYXQgdGhlcmUg
aXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMuIElmIG11bHRpcGxlCisgICAgICAg
ICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25lIHRo
YXQgaXMgbW9zdAorICAgICAgICAjIGxpa2VseSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhh
bHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCisgICAgICAgICMgaW5zdHJ1Y3Rpb24g
b24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGludDMK
KyAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12Nywg
d2hpY2ggaXMgMiBieXRlcy4pCisgICAgICAgIGJyZWFrCisgICAgZW5kCitlbmQKKworX2xsaW50
X29wX2dldF9hcnJheV9sZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dl
dF9ieV9pZF9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lk
X2N1c3RvbV9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRf
Z2VuZXJpYzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRl
cl9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfcHJvdG86
CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9zZWxmOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfc3RyaW5nX2xlbmd0aDoKKyAgICBub3RTdXBw
b3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6CisgICAgbm90U3VwcG9ydGVk
KCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgorICAgIG5vdFN1cHBvcnRlZCgpCisK
K19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCisK
KyMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KK19sbGludF9lbmQ6CisgICAgY3Jhc2goKQor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgkocmV2aXNp
b24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDI5ICszMyw5IEBAIGNsYXNzIE5vZGUKIGVuZAogCiBjbGFz
cyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCi0gICAgZGVmIGluaXRpYWxpemUobmFtZSkK
LSAgICAgICAgQG5hbWUgPSBuYW1lCi0gICAgZW5kCi0gICAgCiAgICAgZGVmIGFybVY3T3BlcmFu
ZAogICAgICAgICBAbmFtZQogICAgIGVuZAotICAgIAotICAgIGRlZiBhZGRyZXNzPwotICAgICAg
ICBmYWxzZQotICAgIGVuZAotICAgIAotICAgIGRlZiBsYWJlbD8KLSAgICAgICAgZmFsc2UKLSAg
ICBlbmQKLSAgICAKLSAgICBkZWYgaW1tZWRpYXRlPwotICAgICAgICBmYWxzZQotICAgIGVuZAot
ICAgIAotICAgIGRlZiByZWdpc3Rlcj8KLSAgICAgICAgdHJ1ZQotICAgIGVuZAogZW5kCiAKIEFS
TXY3X0VYVFJBX0dQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygicjkiKSwgU3BlY2lhbFJlZ2lz
dGVyLm5ldygicjgiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjMiKV0KQEAgLTIyOCw3ICsyMDgs
NyBAQCBkZWYgYXJtVjdMb3dlclNoaWZ0T3BzKGxpc3QpCiAgICAgICAgIHwgbm9kZSB8CiAgICAg
ICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNv
ZGUKLSAgICAgICAgICAgIHdoZW4gImxzaGlmdGkiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIKKyAg
ICAgICAgICAgIHdoZW4gImxzaGlmdGkiLCAicnNoaWZ0aSIsICJ1cnNoaWZ0aSIsICJsc2hpZnRw
IiwgInJzaGlmdHAiLCAidXJzaGlmdHAiCiAgICAgICAgICAgICAgICAgaWYgbm9kZS5vcGVyYW5k
cy5zaXplID09IDIKICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5u
ZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW2FybVY3U2FuaXRpemVTaGlmdChub2Rl
Lm9wZXJhbmRzWzBdLCBuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sxXV0pCiAgICAgICAgICAgICAg
ICAgZWxzZQpAQCAtNDY5LDcgKzQ0OSw3IEBAIGRlZiBhcm1WN0xvd2VyTWFsZm9ybWVkSW1tZWRp
YXRlcyhsaXN0KQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbmV3
TGlzdCA8PCBub2RlLmFybVY3TG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzUmVjdXJzZShuZXdMaXN0
KQogICAgICAgICAgICAgICAgIGVuZAotICAgICAgICAgICAgd2hlbiAibXVsaSIKKyAgICAgICAg
ICAgIHdoZW4gIm11bGkiLCAibXVscCIKICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRz
WzBdLmlzX2E/IEltbWVkaWF0ZQogICAgICAgICAgICAgICAgICAgICB0bXAgPSBUbXAubmV3KGNv
ZGVPcmlnaW4sIDpncHIpCiAgICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rp
b24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVyYW5kc1swXSwgdG1wXSkK
QEAgLTUzNSw5ICs1MTUsOSBAQCBkZWYgYXJtVjdMb3dlck1pc3BsYWNlZEFkZHJlc3NlcyhsaXN0
KQogICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCiAgICAgICAgICAgICBwb3N0SW5z
dHJ1Y3Rpb25zID0gW10KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAg
IHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRpIiwgImFuZHAiLCAibHNoaWZ0aSIs
ICJtdWxpIiwgIm5lZ2kiLCAibm90aSIsICJvcmkiLCAib3JpcyIsCi0gICAgICAgICAgICAgICAg
Im9ycCIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInN1YmkiLCAic3VicCIsICJzdWJpcyIsICJ4
b3JpIiwgInhvcnAiLCAvXmJpLywgL15icC8sIC9eYnRpLywKLSAgICAgICAgICAgICAgICAvXmJ0
cC8sIC9eY2kvLCAvXmNwLywgL150aS8KKyAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIs
ICJhZGRpcyIsICJhbmRpIiwgImFuZHAiLCAibHNoaWZ0aSIsICJsc2hpZnRwIiwgIm11bGkiLCAi
bXVscCIsICJuZWdpIiwKKyAgICAgICAgICAgICAgICAibmVncCIsICJub3RpIiwgIm9yaSIsICJv
cmlzIiwgIm9ycCIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInJzaGlmdHAiLCAidXJzaGlmdHAi
LCAic3ViaSIsCisgICAgICAgICAgICAgICAgInN1YnAiLCAic3ViaXMiLCAieG9yaSIsICJ4b3Jw
IiwgL15iaS8sIC9eYnAvLCAvXmJ0aS8sIC9eYnRwLywgL15jaS8sIC9eY3AvLCAvXnRpLwogICAg
ICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLm9wY29kZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcm1WN0FzUmVnaXN0
ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFuZHMsICJpIikpCkBAIC02
NDksNyArNjI5LDcgQEAgZW5kCiAjCiAKIGNsYXNzIFNlcXVlbmNlCi0gICAgZGVmIGxvd2VyQVJN
djcKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0QVJNdjcKICAgICAgICAgbXlMaXN0ID0gQGxpc3QK
ICAgICAgICAgCiAgICAgICAgICMgVmVyaWZ5IHRoYXQgd2Ugd2lsbCBvbmx5IHNlZSBpbnN0cnVj
dGlvbnMgYW5kIGxhYmVscy4KQEAgLTY3MywxMCArNjUzLDggQEAgY2xhc3MgU2VxdWVuY2UKICAg
ICAgICAgbXlMaXN0ID0gYXJtVjdMb3dlclJlZ2lzdGVyUmV1c2UobXlMaXN0KQogICAgICAgICBt
eUxpc3QgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKG15TGlzdCwgOmdwciwgQVJNdjdf
RVhUUkFfR1BSUykKICAgICAgICAgbXlMaXN0ID0gYXNzaWduUmVnaXN0ZXJzVG9UZW1wb3Jhcmll
cyhteUxpc3QsIDpmcHIsIEFSTXY3X0VYVFJBX0ZQUlMpCi0gICAgICAgIG15TGlzdC5lYWNoIHsK
LSAgICAgICAgICAgIHwgbm9kZSB8Ci0gICAgICAgICAgICBub2RlLmxvd2VyKCJBUk12NyIpCi0g
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBteUxpc3QKICAgICBlbmQKIGVuZAog
CkBAIC03OTIsMTMgKzc3MCwxMyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgZW1p
dEFybVY3Q29tcGFjdCgib3JycyIsICJvcnJzIiwgb3BlcmFuZHMpCiAgICAgICAgIHdoZW4gInhv
cmkiLCAieG9ycCIKICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoImVvcnMiLCAiZW9yIiwg
b3BlcmFuZHMpCi0gICAgICAgIHdoZW4gImxzaGlmdGkiCisgICAgICAgIHdoZW4gImxzaGlmdGki
LCAibHNoaWZ0cCIKICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoImxzbHMiLCAibHNscyIs
IG9wZXJhbmRzKQotICAgICAgICB3aGVuICJyc2hpZnRpIgorICAgICAgICB3aGVuICJyc2hpZnRp
IiwgInJzaGlmdHAiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJhc3JzIiwgImFzcnMi
LCBvcGVyYW5kcykKLSAgICAgICAgd2hlbiAidXJzaGlmdGkiCisgICAgICAgIHdoZW4gInVyc2hp
ZnRpIiwgInVyc2hpZnRwIgogICAgICAgICAgICAgZW1pdEFybVY3Q29tcGFjdCgibHNycyIsICJs
c3JzIiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gIm11bGkiCisgICAgICAgIHdoZW4gIm11bGki
LCAibXVscCIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMiBvciBvcGVyYW5kc1sw
XSA9PSBvcGVyYW5kc1syXSBvciBvcGVyYW5kc1sxXSA9PSBvcGVyYW5kc1syXQogICAgICAgICAg
ICAgICAgIGVtaXRBcm1WNygibXVscyIsIG9wZXJhbmRzKQogICAgICAgICAgICAgZWxzZQpAQCAt
ODA3LDExICs3ODUsMTEgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGVuZAogICAg
ICAgICB3aGVuICJzdWJpIiwgInN1YnAiLCAic3ViaXMiCiAgICAgICAgICAgICBlbWl0QXJtVjdD
b21wYWN0KCJzdWJzIiwgInN1YnMiLCBvcGVyYW5kcykKLSAgICAgICAgd2hlbiAibmVnaSIKKyAg
ICAgICAgd2hlbiAibmVnaSIsICJuZWdwIgogICAgICAgICAgICAgJGFzbS5wdXRzICJyc2JzICN7
b3BlcmFuZHNbMF0uYXJtVjdPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5hcm1WN09wZXJhbmR9LCBc
IzAiCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm12bnMgI3tv
cGVyYW5kc1swXS5hcm1WN09wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVY3T3BlcmFuZH0iCi0g
ICAgICAgIHdoZW4gImxvYWRpIiwgImxvYWRwIgorICAgICAgICB3aGVuICJsb2FkaSIsICJsb2Fk
aXMiLCAibG9hZHAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAje2FybVY3RmxpcHBlZE9w
ZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaSIsICJzdG9yZXAiCiAgICAg
ICAgICAgICAkYXNtLnB1dHMgInN0ciAje2FybVY3T3BlcmFuZHMob3BlcmFuZHMpfSIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIJKHJldmlzaW9uIDExMDM0NikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgkod29ya2luZyBjb3B5
KQpAQCAtMTY3LDYgKzE2Nyw3IEBAIEZpbGUub3BlbihvdXRwdXRGbG5tLCAidyIpIHsKICAgICAg
ICAgZm9yU2V0dGluZ3MoY29tcHV0ZVNldHRpbmdzQ29tYmluYXRpb25zKGFzdClbY29uZmlnSW5k
ZXhdLCBhc3QpIHsKICAgICAgICAgICAgIHwgY29uY3JldGVTZXR0aW5ncywgbG93TGV2ZWxBU1Qs
IGJhY2tlbmQgfAogICAgICAgICAgICAgbG93TGV2ZWxBU1QgPSBsb3dMZXZlbEFTVC5yZXNvbHZl
KCpidWlsZE9mZnNldHNNYXAobG93TGV2ZWxBU1QsIG9mZnNldHNMaXN0KSkKKyAgICAgICAgICAg
IGxvd0xldmVsQVNULnZhbGlkYXRlCiAgICAgICAgICAgICBlbWl0Q29kZUluQ29uZmlndXJhdGlv
bihjb25jcmV0ZVNldHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCkgewogICAgICAgICAgICAg
ICAgICRhc20uaW5Bc20gewogICAgICAgICAgICAgICAgICAgICBsb3dMZXZlbEFTVC5sb3dlcihi
YWNrZW5kKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzdC5yYgkocmV2
aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJi
CSh3b3JraW5nIGNvcHkpCkBAIC0zODMsNiArMzgzLDE1NyBAQCBjbGFzcyBOZWdJbW1lZGlhdGUg
PCBOb2RlCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgT3JJbW1lZGlhdGVzIDwgTm9kZQorICAgIGF0
dHJfcmVhZGVyIDpsZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShjb2RlT3Jp
Z2luLCBsZWZ0LCByaWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGxl
ZnQgPSBsZWZ0CisgICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5kCisgICAgCisgICAgZGVm
IGNoaWxkcmVuCisgICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVuZAorICAgIAorICAgIGRl
ZiBtYXBDaGlsZHJlbgorICAgICAgICBPckltbWVkaWF0ZXMubmV3KGNvZGVPcmlnaW4sICh5aWVs
ZCBAbGVmdCksICh5aWVsZCBAcmlnaHQpKQorICAgIGVuZAorICAgIAorICAgIGRlZiBkdW1wCisg
ICAgICAgICIoI3tsZWZ0LmR1bXB9IHwgI3tyaWdodC5kdW1wfSkiCisgICAgZW5kCisgICAgCisg
ICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxh
YmVsPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/Cisg
ICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZh
bHNlCisgICAgZW5kCitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRlcyA8IE5vZGUKKyAgICBhdHRy
X3JlYWRlciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRpYWxpemUoY29kZU9yaWdp
biwgbGVmdCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4pCisgICAgICAgIEBsZWZ0
ID0gbGVmdAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVuZAorICAgIAorICAgIGRlZiBj
aGlsZHJlbgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYg
bWFwQ2hpbGRyZW4KKyAgICAgICAgQW5kSW1tZWRpYXRlcy5uZXcoY29kZU9yaWdpbiwgKHlpZWxk
IEBsZWZ0KSwgKHlpZWxkIEByaWdodCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAg
ICAgICAgIigje2xlZnQuZHVtcH0gJiAje3JpZ2h0LmR1bXB9KSIKKyAgICBlbmQKKyAgICAKKyAg
ICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFi
ZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAg
ICAgICAgdHJ1ZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgZmFs
c2UKKyAgICBlbmQKK2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVzIDwgTm9kZQorICAgIGF0dHJf
cmVhZGVyIDpsZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShjb2RlT3JpZ2lu
LCBsZWZ0LCByaWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGxlZnQg
PSBsZWZ0CisgICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5kCisgICAgCisgICAgZGVmIGNo
aWxkcmVuCisgICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVuZAorICAgIAorICAgIGRlZiBt
YXBDaGlsZHJlbgorICAgICAgICBYb3JJbW1lZGlhdGVzLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQg
QGxlZnQpLCAoeWllbGQgQHJpZ2h0KSkKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAorICAg
ICAgICAiKCN7bGVmdC5kdW1wfSBeICN7cmlnaHQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAg
IGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJl
bD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAg
ICAgICB0cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxz
ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEJpdG5vdEltbWVkaWF0ZSA8IE5vZGUKKyAgICBhdHRy
X3JlYWRlciA6Y2hpbGQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShjb2RlT3JpZ2luLCBjaGls
ZCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGNoaWxkID0gY2hpbGQKKyAg
ICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAgW0BjaGlsZF0KKyAgICBlbmQK
KyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgQml0bm90SW1tZWRpYXRlLm5ldyhj
b2RlT3JpZ2luLCAoeWllbGQgQGNoaWxkKSkKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAor
ICAgICAgICAiKH4je0BjaGlsZC5kdW1wfSkiCisgICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJl
c3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPworICAgICAg
ICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5k
CitlbmQKKwogY2xhc3MgUmVnaXN0ZXJJRCA8IE5vQ2hpbGRyZW4KICAgICBhdHRyX3JlYWRlciA6
bmFtZQogICAgIApAQCAtNDU5LDYgKzYxMCwyOCBAQCBjbGFzcyBGUFJlZ2lzdGVySUQgPCBOb0No
aWxkcmVuCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJl
bgorICAgIGRlZiBpbml0aWFsaXplKG5hbWUpCisgICAgICAgIEBuYW1lID0gbmFtZQorICAgIGVu
ZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAor
ICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1t
ZWRpYXRlPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdpc3Rlcj8K
KyAgICAgICAgdHJ1ZQorICAgIGVuZAorZW5kCisKIGNsYXNzIFZhcmlhYmxlIDwgTm9DaGlsZHJl
bgogICAgIGF0dHJfcmVhZGVyIDpuYW1lCiAgICAgCkBAIC00NzksNiArNjUyLDEwIEBAIGNsYXNz
IFZhcmlhYmxlIDwgTm9DaGlsZHJlbgogICAgIGRlZiBkdW1wCiAgICAgICAgIG5hbWUKICAgICBl
bmQKKyAgICAKKyAgICBkZWYgaW5zcGVjdAorICAgICAgICAiPHZhcmlhYmxlICN7bmFtZX0gYXQg
I3tjb2RlT3JpZ2luU3RyaW5nfT4iCisgICAgZW5kCiBlbmQKIAogY2xhc3MgQWRkcmVzcyA8IE5v
ZGUKQEAgLTc1Nyw2ICs5MzQsMTAgQEAgY2xhc3MgTGFiZWxSZWZlcmVuY2UgPCBOb2RlCiAgICAg
ZGVmIGxhYmVsPwogICAgICAgICB0cnVlCiAgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0
ZT8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKIGVuZAogCiBjbGFzcyBMb2NhbExhYmVsUmVmZXJl
bmNlIDwgTm9DaGlsZHJlbgpAQCAtNzkwLDYgKzk3MSwxMCBAQCBjbGFzcyBMb2NhbExhYmVsUmVm
ZXJlbmNlIDwgTm9DaGlsZHJlbgogICAgIGRlZiBsYWJlbD8KICAgICAgICAgdHJ1ZQogICAgIGVu
ZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZhbHNlCisgICAgZW5kCiBlbmQK
IAogY2xhc3MgU2VxdWVuY2UgPCBOb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2Zm
bGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDgg
KzQ4LDEyIEBAIEJBQ0tFTkRfUEFUVEVSTiA9IFJlZ2V4cC5uZXcoJ1xcQSgnICsgQkEKIAogY2xh
c3MgTm9kZQogICAgIGRlZiBsb3dlcihuYW1lKQotICAgICAgICAkYWN0aXZlQmFja2VuZCA9IG5h
bWUKLSAgICAgICAgc2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAgYmVnaW4KKyAgICAgICAg
ICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQorICAgICAgICAgICAgc2VuZCgibG93ZXIiICsgbmFt
ZSkKKyAgICAgICAgcmVzY3VlID0+IGUKKyAgICAgICAgICAgIHJhaXNlICJHb3QgZXJyb3IgI3tl
fSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKICAgICBlbmQKIGVuZAogCkBA
IC04Nyw3ICs5MSwxMyBAQCBlbmQKIGNsYXNzIFNlcXVlbmNlCiAgICAgZGVmIGxvd2VyKG5hbWUp
CiAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQotICAgICAgICBpZiByZXNwb25kX3RvPyAi
bG93ZXIje25hbWV9IgorICAgICAgICBpZiByZXNwb25kX3RvPyAiZ2V0TW9kaWZpZWRMaXN0I3tu
YW1lfSIKKyAgICAgICAgICAgIG5ld0xpc3QgPSBzZW5kKCJnZXRNb2RpZmllZExpc3Qje25hbWV9
IikKKyAgICAgICAgICAgIG5ld0xpc3QuZWFjaCB7CisgICAgICAgICAgICAgICAgfCBub2RlIHwK
KyAgICAgICAgICAgICAgICBub2RlLmxvd2VyKG5hbWUpCisgICAgICAgICAgICB9CisgICAgICAg
IGVsc2lmIHJlc3BvbmRfdG8/ICJsb3dlciN7bmFtZX0iCiAgICAgICAgICAgICBzZW5kKCJsb3dl
ciN7bmFtZX0iKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBAbGlzdC5lYWNoIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmIJ
KHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2lu
c3RydWN0aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAtMzAsMTUgKzMwLDIwIEBAIE1BQ1JPX0lO
U1RSVUNUSU9OUyA9CiAgICAgICJhZGRpIiwKICAgICAgImFuZGkiLAogICAgICAibHNoaWZ0aSIs
CisgICAgICJsc2hpZnRwIiwKICAgICAgIm11bGkiLAogICAgICAibmVnaSIsCisgICAgICJuZWdw
IiwKICAgICAgIm5vdGkiLAogICAgICAib3JpIiwKICAgICAgInJzaGlmdGkiLAogICAgICAidXJz
aGlmdGkiLAorICAgICAicnNoaWZ0cCIsCisgICAgICJ1cnNoaWZ0cCIsCiAgICAgICJzdWJpIiwK
ICAgICAgInhvcmkiLAogICAgICAibG9hZGkiLAorICAgICAibG9hZGlzIiwKICAgICAgImxvYWRi
IiwKICAgICAgImxvYWRicyIsCiAgICAgICJsb2FkaCIsCkBAIC0xNTksNiArMTY0LDcgQEAgTUFD
Uk9fSU5TVFJVQ1RJT05TID0KICAgICAgImJwbHQiLAogICAgICAiYnBsdGVxIiwKICAgICAgImFk
ZHAiLAorICAgICAibXVscCIsCiAgICAgICJhbmRwIiwKICAgICAgIm9ycCIsCiAgICAgICJzdWJw
IiwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9wYXJzZXIucmIJKHJl
dmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3BhcnNl
ci5yYgkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIGRlZiBsZXgoc3RyLCBmaWxl
TmFtZSkKICAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXcoZmls
ZU5hbWUsIGxpbmVOdW1iZXIpLCAkJikKICAgICAgICAgd2hlbiAvXEE6Oi8KICAgICAgICAgICAg
IHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIp
LCAkJikKLSAgICAgICAgd2hlbiAvXEFbOixcKFwpXFtcXT1cK1wtKl0vCisgICAgICAgIHdoZW4g
L1xBWzosXChcKVxbXF09XCtcLX5cfCZeKl0vCiAgICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4u
bmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKSwgJCYpCiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIHJhaXNlICJMZXhlciBlcnJvciBhdCAje0NvZGVPcmlnaW4ubmV3KGZp
bGVOYW1lLCBsaW5lTnVtYmVyKS50b19zfSwgdW5leHBlY3RlZCBzZXF1ZW5jZSAje3N0clswLi4y
MF0uaW5zcGVjdH0iCkBAIC0zMjIsNiArMzIyLDkgQEAgY2xhc3MgUGFyc2VyCiAgICAgICAgIGlm
IEB0b2tlbnNbQGlkeF0gPT0gIi0iCiAgICAgICAgICAgICBAaWR4ICs9IDEKICAgICAgICAgICAg
IE5lZ0ltbWVkaWF0ZS5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcGFyc2VFeHBy
ZXNzaW9uQXRvbSkKKyAgICAgICAgZWxzaWYgQHRva2Vuc1tAaWR4XSA9PSAifiIKKyAgICAgICAg
ICAgIEBpZHggKz0gMQorICAgICAgICAgICAgQml0bm90SW1tZWRpYXRlLm5ldyhAdG9rZW5zW0Bp
ZHggLSAxXS5jb2RlT3JpZ2luLCBwYXJzZUV4cHJlc3Npb25BdG9tKQogICAgICAgICBlbHNpZiBA
dG9rZW5zW0BpZHhdID09ICIoIgogICAgICAgICAgICAgQGlkeCArPSAxCiAgICAgICAgICAgICBy
ZXN1bHQgPSBwYXJzZUV4cHJlc3Npb24KQEAgLTM2NSwxMCArMzY4LDEwIEBAIGNsYXNzIFBhcnNl
cgogICAgIGVuZAogICAgIAogICAgIGRlZiBjb3VsZEJlRXhwcmVzc2lvbgotICAgICAgICBAdG9r
ZW5zW0BpZHhdID09ICItIiBvciBAdG9rZW5zW0BpZHhdID09ICJzaXplb2YiIG9yIGlzSW50ZWdl
cihAdG9rZW5zW0BpZHhdKSBvciBpc1ZhcmlhYmxlKEB0b2tlbnNbQGlkeF0pIG9yIEB0b2tlbnNb
QGlkeF0gPT0gIigiCisgICAgICAgIEB0b2tlbnNbQGlkeF0gPT0gIi0iIG9yIEB0b2tlbnNbQGlk
eF0gPT0gIn4iIG9yIEB0b2tlbnNbQGlkeF0gPT0gInNpemVvZiIgb3IgaXNJbnRlZ2VyKEB0b2tl
bnNbQGlkeF0pIG9yIGlzVmFyaWFibGUoQHRva2Vuc1tAaWR4XSkgb3IgQHRva2Vuc1tAaWR4XSA9
PSAiKCIKICAgICBlbmQKICAgICAKLSAgICBkZWYgcGFyc2VFeHByZXNzaW9uCisgICAgZGVmIHBh
cnNlRXhwcmVzc2lvbkFkZAogICAgICAgICBza2lwTmV3TGluZQogICAgICAgICByZXN1bHQgPSBw
YXJzZUV4cHJlc3Npb25NdWwKICAgICAgICAgd2hpbGUgQHRva2Vuc1tAaWR4XSA9PSAiKyIgb3Ig
QHRva2Vuc1tAaWR4XSA9PSAiLSIKQEAgLTM4NSw2ICszODgsMzMgQEAgY2xhc3MgUGFyc2VyCiAg
ICAgICAgIHJlc3VsdAogICAgIGVuZAogICAgIAorICAgIGRlZiBwYXJzZUV4cHJlc3Npb25BbmQK
KyAgICAgICAgc2tpcE5ld0xpbmUKKyAgICAgICAgcmVzdWx0ID0gcGFyc2VFeHByZXNzaW9uQWRk
CisgICAgICAgIHdoaWxlIEB0b2tlbnNbQGlkeF0gPT0gIiYiCisgICAgICAgICAgICBAaWR4ICs9
IDEKKyAgICAgICAgICAgIHJlc3VsdCA9IEFuZEltbWVkaWF0ZXMubmV3KEB0b2tlbnNbQGlkeCAt
IDFdLmNvZGVPcmlnaW4sIHJlc3VsdCwgcGFyc2VFeHByZXNzaW9uQWRkKQorICAgICAgICBlbmQK
KyAgICAgICAgcmVzdWx0CisgICAgZW5kCisgICAgCisgICAgZGVmIHBhcnNlRXhwcmVzc2lvbgor
ICAgICAgICBza2lwTmV3TGluZQorICAgICAgICByZXN1bHQgPSBwYXJzZUV4cHJlc3Npb25BbmQK
KyAgICAgICAgd2hpbGUgQHRva2Vuc1tAaWR4XSA9PSAifCIgb3IgQHRva2Vuc1tAaWR4XSA9PSAi
XiIKKyAgICAgICAgICAgIGlmIEB0b2tlbnNbQGlkeF0gPT0gInwiCisgICAgICAgICAgICAgICAg
QGlkeCArPSAxCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gT3JJbW1lZGlhdGVzLm5ldyhAdG9r
ZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCByZXN1bHQsIHBhcnNlRXhwcmVzc2lvbkFuZCkKKyAg
ICAgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gIl4iCisgICAgICAgICAgICAgICAgQGlk
eCArPSAxCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gWG9ySW1tZWRpYXRlcy5uZXcoQHRva2Vu
c1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcmVzdWx0LCBwYXJzZUV4cHJlc3Npb25BbmQpCisgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGVuZAorICAg
ICAgICBlbmQKKyAgICAgICAgcmVzdWx0CisgICAgZW5kCisgICAgCiAgICAgZGVmIHBhcnNlT3Bl
cmFuZChjb21tZW50KQogICAgICAgICBza2lwTmV3TGluZQogICAgICAgICBpZiBjb3VsZEJlRXhw
cmVzc2lvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJz
LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3JlZ2lz
dGVycy5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vcmVnaXN0ZXJzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCwxMyBAQCBHUFJT
ID0KICAgICAgInIwIiwKICAgICAgInIxIiwKICAgICAgInNwIiwKLSAgICAgImxyIgorICAgICAi
bHIiLAorICAgICAKKyAgICAgIyA2NC1iaXQgb25seSByZWdpc3RlcnM6CisgICAgICJ0NSIsCisg
ICAgICJ0NiIsICAjIHIxMAorICAgICAiY3NyMSIsICAjIHIxNCwgdGFnIHR5cGUgbnVtYmVyIHJl
Z2lzdGVyCisgICAgICJjc3IyIiAgICMgcjE1LCB0YWcgbWFzayByZWdpc3RlcgogICAgIF0KIAog
RlBSUyA9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS90cmFuc2Zvcm0u
cmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vdHJhbnNm
b3JtLnJiCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS90cmFuc2Zvcm0ucmIJKHdvcmtpbmcgY29weSkKQEAgLTMyOCw2ICszMjgsNDQgQEAgY2xh
c3MgTmVnSW1tZWRpYXRlCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgT3JJbW1lZGlhdGVzCisgICAg
ZGVmIGZvbGQKKyAgICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9IEBy
aWdodC5mb2xkCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1lZGlh
dGUKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUKKyAg
ICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52YWx1ZSB8IEByaWdodC52YWx1
ZSkKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBbmRJbW1lZGlhdGVzCisgICAgZGVmIGZvbGQKKyAg
ICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9IEByaWdodC5mb2xkCisg
ICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAg
cmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRp
YXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52YWx1ZSAmIEByaWdodC52YWx1ZSkKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVzCisgICAgZGVmIGZvbGQKKyAgICAgICAgQGxlZnQg
PSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9IEByaWdodC5mb2xkCisgICAgICAgIHJldHVy
biBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgcmV0dXJuIHNlbGYg
dW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2Rl
T3JpZ2luLCBAbGVmdC52YWx1ZSBeIEByaWdodC52YWx1ZSkKKyAgICBlbmQKK2VuZAorCitjbGFz
cyBCaXRub3RJbW1lZGlhdGUKKyAgICBkZWYgZm9sZAorICAgICAgICBAY2hpbGQgPSBAY2hpbGQu
Zm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGNoaWxkLmlzX2E/IEltbWVkaWF0ZQor
ICAgICAgICBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIH5AY2hpbGQudmFsdWUpCisgICAgZW5k
CitlbmQKKwogIwogIyBub2RlLnJlc29sdmVBZnRlclNldHRpbmdzKG9mZnNldHMsIHNpemVzKQog
IwpAQCAtMzQwLDMgKzM3OCw5NyBAQCBjbGFzcyBOb2RlCiAgICAgZW5kCiBlbmQKIAorIworIyBu
b2RlLnZhbGlkYXRlCisjCisjIENoZWNrcyB0aGF0IHRoZSBub2RlIGlzIHJlYWR5IGZvciBiYWNr
ZW5kIGNvbXBpbGF0aW9uLgorIworCitjbGFzcyBOb2RlCisgICAgZGVmIHZhbGlkYXRlCisgICAg
ICAgIHJhaXNlICJVbnJlc29sdmVkICN7ZHVtcH0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIKKyAg
ICBlbmQKKyAgICAKKyAgICBkZWYgdmFsaWRhdGVDaGlsZHJlbgorICAgICAgICBjaGlsZHJlbi5l
YWNoIHsKKyAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICBub2RlLnZhbGlkYXRlCisg
ICAgICAgIH0KKyAgICBlbmQKK2VuZAorCitjbGFzcyBTZXF1ZW5jZQorICAgIGRlZiB2YWxpZGF0
ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xhc3MgSW1tZWRp
YXRlCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgUmVnaXN0ZXJJRAor
ICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEZQUmVnaXN0ZXJJRAorICAg
IGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEFkZHJlc3MKKyAgICBkZWYgdmFs
aWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAorZW5kCisKK2NsYXNzIEJh
c2VJbmRleAorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAg
ZW5kCitlbmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVmIHZhbGlkYXRlCisgICAg
ICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFzcyBJbnN0cnVjdGlvbgor
ICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQK
KworY2xhc3MgRXJyb3IKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBM
YWJlbAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIExvY2FsTGFiZWwK
KyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBMYWJlbFJlZmVyZW5jZQor
ICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIExvY2FsTGFiZWxSZWZlcmVu
Y2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBTa2lwCisgICAgZGVm
IHZhbGlkYXRlCisgICAgZW5kCitlbmQKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20veDg2LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZs
aW5lYXNtL3g4Ni5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20veDg2LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMyArMzIsMzcgQEAgZGVm
IGlzWDY0CiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU3BlY2lhbFJlZ2lzdGVyIDwgTm9DaGlsZHJl
bgorICAgIGRlZiB4ODZPcGVyYW5kKGtpbmQpCisgICAgICAgIHJhaXNlIHVubGVzcyBAbmFtZSA9
fiAvXnIvCisgICAgICAgIHJhaXNlIHVubGVzcyBpc1g2NAorICAgICAgICBjYXNlIGtpbmQKKyAg
ICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgIiUiICsgQG5hbWUgKyAidyIKKyAgICAgICAg
d2hlbiA6aW50CisgICAgICAgICAgICAiJSIgKyBAbmFtZSArICJkIgorICAgICAgICB3aGVuIDpw
dHIKKyAgICAgICAgICAgICIlIiArIEBuYW1lCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJh
aXNlCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIGRlZiB4ODZDYWxsT3BlcmFuZChraW5kKQor
ICAgICAgICAiKiN7eDg2T3BlcmFuZChraW5kKX0iCisgICAgZW5kCitlbmQKKworWDY0X1NDUkFU
Q0hfUkVHSVNURVIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMTEiKQorCiBjbGFzcyBSZWdpc3Rl
cklECiAgICAgZGVmIHN1cHBvcnRzOEJpdE9uWDg2CiAgICAgICAgIGNhc2UgbmFtZQogICAgICAg
ICB3aGVuICJ0MCIsICJhMCIsICJyMCIsICJ0MSIsICJhMSIsICJyMSIsICJ0MiIsICJ0MyIKICAg
ICAgICAgICAgIHRydWUKLSAgICAgICAgd2hlbiAidDQiLCAiY2ZyIgorICAgICAgICB3aGVuICJj
ZnIiLCAidHRuciIsICJ0bXIiCiAgICAgICAgICAgICBmYWxzZQorICAgICAgICB3aGVuICJ0NCIs
ICJ0NSIKKyAgICAgICAgICAgIGlzWDY0CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNl
CiAgICAgICAgIGVuZApAQCAtMTEyLDE3ICsxMzYsMzAgQEAgY2xhc3MgUmVnaXN0ZXJJRAogICAg
ICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAiY2ZyIgot
ICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpieXRlCi0gICAgICAgICAg
ICAgICAgIiVkaWwiCi0gICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAgICAgICAgICAgICAgIiVk
aSIKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAgICIlZWRpIgotICAgICAg
ICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyAiJXJkaSIgOiAiJWVkaSIK
KyAgICAgICAgICAgIGlmIGlzWDY0CisgICAgICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAg
ICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICAgICAiJXIxM3ciCisgICAgICAg
ICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgICAgICIlcjEzZCIKKyAgICAgICAg
ICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAgICAgIiVyMTMiCisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGVu
ZAogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAg
ICAgY2FzZSBraW5kCisgICAgICAgICAgICAgICAgd2hlbiA6Ynl0ZQorICAgICAgICAgICAgICAg
ICAgICAiJWRpbCIKKyAgICAgICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAg
ICAgICIlZGkiCisgICAgICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgICAg
ICIlZWRpIgorICAgICAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICAgICAi
JWVkaSIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisg
ICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAic3AiCiAg
ICAgICAgICAgICBjYXNlIGtpbmQKQEAgLTEzNyw2ICsxNzQsNDggQEAgY2xhc3MgUmVnaXN0ZXJJ
RAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBl
bmQKKyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25h
bWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0Cisg
ICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmJ5dGUKKyAgICAgICAgICAg
ICAgICAiJWRpbCIKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJWRp
IgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAg
ICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXJkaSIKKyAgICAgICAgICAgIGVuZAor
ICAgICAgICB3aGVuICJ0NiIKKyAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0g
aW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAg
ICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAg
ICIlcjEwdyIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlcjEwZCIK
KyAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICIlcjEwIgorICAgICAgICAg
ICAgZW5kCisgICAgICAgIHdoZW4gImNzcjEiCisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVz
ZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlz
WDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAg
ICAgICAgICAgICAiJXIxNHciCisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAg
ICAiJXIxNGQiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXIxNCIK
KyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjc3IyIgorICAgICAgICAgICAgcmFpc2Ug
IkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29kZU9yaWdpblN0cmluZ30i
IHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICB3aGVuIDpo
YWxmCisgICAgICAgICAgICAgICAgIiVyMTV3IgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAg
ICAgICAgICAgICAgIiVyMTVkIgorICAgICAgICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAg
ICAgIiVyMTUiCisgICAgICAgICAgICBlbmQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFp
c2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIK
ICAgICAgICAgZW5kCkBAIC0xNzIsNiArMjUxLDEzIEBAIGNsYXNzIEZQUmVnaXN0ZXJJRAogZW5k
CiAKIGNsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2YWxpZFg4NkltbWVkaWF0ZT8KKyAgICAgICAg
aWYgaXNYNjQKKyAgICAgICAgICAgIHZhbHVlID49IC0weDgwMDAwMDAwIGFuZCB2YWx1ZSA8PSAw
eDdmZmZmZmZmCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRydWUKKyAgICAgICAgZW5kCisg
ICAgZW5kCiAgICAgZGVmIHg4Nk9wZXJhbmQoa2luZCkKICAgICAgICAgIiQje3ZhbHVlfSIKICAg
ICBlbmQKQEAgLTIxMCw3ICsyOTYsNyBAQCBjbGFzcyBCYXNlSW5kZXgKICAgICBlbmQKIAogICAg
IGRlZiB4ODZDYWxsT3BlcmFuZChraW5kKQotICAgICAgICAiKiN7eDg2b3BlcmFuZChraW5kKX0i
CisgICAgICAgICIqI3t4ODZPcGVyYW5kKGtpbmQpfSIKICAgICBlbmQKIGVuZAogCkBAIC0yNDQs
NiArMzMwLDQ3IEBAIGNsYXNzIExvY2FsTGFiZWxSZWZlcmVuY2UKICAgICBlbmQKIGVuZAogCitj
bGFzcyBTZXF1ZW5jZQorICAgIGRlZiBnZXRNb2RpZmllZExpc3RYODZfNjQKKyAgICAgICAgbmV3
TGlzdCA9IFtdCisgICAgICAgIAorICAgICAgICBAbGlzdC5lYWNoIHsKKyAgICAgICAgICAgIHwg
bm9kZSB8CisgICAgICAgICAgICBuZXdOb2RlID0gbm9kZQorICAgICAgICAgICAgaWYgbm9kZS5p
c19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgICAgIHVubGVzcyBub2RlLm9wY29kZSA9PSAi
bW92ZSIKKyAgICAgICAgICAgICAgICAgICAgdXNlZFNjcmF0Y2ggPSBmYWxzZQorICAgICAgICAg
ICAgICAgICAgICBuZXdPcGVyYW5kcyA9IG5vZGUub3BlcmFuZHMubWFwIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHwgb3BlcmFuZCB8CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBvcGVy
YW5kLmltbWVkaWF0ZT8gYW5kIG5vdCBvcGVyYW5kLnZhbGlkWDg2SW1tZWRpYXRlPworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIHVzZWRTY3JhdGNoCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJhaXNlICJBdHRlbXB0IHRvIHVzZSBzY3JhdGNoIHJlZ2lzdGVyIHR3aWNl
IGF0ICN7b3BlcmFuZC5jb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0
aW9uLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJtb3ZlIiwgW29wZXJhbmQsIFg2NF9TQ1JBVENI
X1JFR0lTVEVSXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VkU2NyYXRjaCA9IHRy
dWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBYNjRfU0NSQVRDSF9SRUdJU1RFUgorICAg
ICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
ZXJhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIG5ld05vZGUgPSBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2Rl
T3JpZ2luLCBub2RlLm9wY29kZSwgbmV3T3BlcmFuZHMpCisgICAgICAgICAgICAgICAgZW5kCisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdW5sZXNzIG5vZGUuaXNfYT8gTGFiZWwg
b3IKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gTG9jYWxMYWJlbCBvcgorICAg
ICAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAgICAgICAgICAgICAgICAg
IHJhaXNlICJVbmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAje25vZGUuY29kZU9yaWdpbn0i
IAorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5kCisgICAgICAgICAgICBpZiBu
ZXdOb2RlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBuZXdOb2RlCisgICAgICAgICAgICBl
bmQKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5ld0xpc3QKKyAgICBlbmQK
K2VuZAorCiBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGRlZiB4ODZPcGVyYW5kcygqa2luZHMpCiAg
ICAgICAgIHJhaXNlIHVubGVzcyBraW5kcy5zaXplID09IG9wZXJhbmRzLnNpemUKQEAgLTQ1OCw2
ICs1ODUsMTYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgZW5kCiAgICAgZW5kCiAgICAg
CisgICAgZGVmIGhhbmRsZVg4Nk11bChraW5kKQorICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09
IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAgICAgICAgJGFzbS5wdXRz
ICJpbXVsI3t4ODZTdWZmaXgoa2luZCl9ICN7eDg2T3BlcmFuZHMoa2luZCwga2luZCwga2luZCl9
IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAjIEZJWE1FOiBjb3VsZCBkbyBzb21lIHBlZXBo
b2xlIGluIGNhc2UgdGhlIGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUgYW5kIGl0J3MKKyAgICAg
ICAgICAgICMgYSBwb3dlciBvZiB0d28uCisgICAgICAgICAgICBoYW5kbGVYODZPcCgiaW11bCN7
eDg2U3VmZml4KGtpbmQpfSIsIGtpbmQpCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIAogICAg
IGRlZiBoYW5kbGVNb3ZlCiAgICAgICAgIGlmIEltbWVkaWF0ZS5uZXcobmlsLCAwKSA9PSBvcGVy
YW5kc1swXSBhbmQgb3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRAogICAgICAgICAgICAgJGFz
bS5wdXRzICJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0gI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpw
dHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIKQEAgLTQ4OSwxNiArNjI2LDE2
IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBoYW5kbGVYODZPcCgiYW5kI3t4ODZT
dWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAibHNoaWZ0aSIKICAgICAgICAgICAg
IGhhbmRsZVg4NlNoaWZ0KCJzYWxsIiwgOmludCkKKyAgICAgICAgd2hlbiAibHNoaWZ0cCIKKyAg
ICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYWwje3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRyKQog
ICAgICAgICB3aGVuICJtdWxpIgotICAgICAgICAgICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAzIGFu
ZCBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKLSAgICAgICAgICAgICAgICAkYXNtLnB1dHMg
ImltdWxsICN7eDg2T3BlcmFuZHMoOmludCwgOmludCwgOmludCl9IgotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUgcGVlcGhvbGUgaW4gY2Fz
ZSB0aGUgbGVmdCBvcGVyYW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncwotICAgICAgICAgICAgICAg
ICMgYSBwb3dlciBvZiB0d28uCi0gICAgICAgICAgICAgICAgaGFuZGxlWDg2T3AoImltdWxsIiwg
OmludCkKLSAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgaGFuZGxlWDg2TXVsKDppbnQpCisg
ICAgICAgIHdoZW4gIm11bHAiCisgICAgICAgICAgICBoYW5kbGVYODZNdWwoOnB0cikKICAgICAg
ICAgd2hlbiAibmVnaSIKICAgICAgICAgICAgICRhc20ucHV0cyAibmVnbCAje3g4Nk9wZXJhbmRz
KDppbnQpfSIKKyAgICAgICAgd2hlbiAibmVncCIKKyAgICAgICAgICAgICRhc20ucHV0cyAibmVn
I3t4ODZTdWZmaXgoOnB0cil9ICN7eDg2T3BlcmFuZHMoOnB0cil9IgogICAgICAgICB3aGVuICJu
b3RpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJub3RsICN7eDg2T3BlcmFuZHMoOmludCl9Igog
ICAgICAgICB3aGVuICJvcmkiCkBAIC01MDcsOCArNjQ0LDEyIEBAIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgICAgICAgICBoYW5kbGVYODZPcCgib3Ije3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRyKQog
ICAgICAgICB3aGVuICJyc2hpZnRpIgogICAgICAgICAgICAgaGFuZGxlWDg2U2hpZnQoInNhcmwi
LCA6aW50KQorICAgICAgICB3aGVuICJyc2hpZnRwIgorICAgICAgICAgICAgaGFuZGxlWDg2U2hp
ZnQoInNhciN7eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gInVyc2hpZnRp
IgogICAgICAgICAgICAgaGFuZGxlWDg2U2hpZnQoInNocmwiLCA6aW50KQorICAgICAgICB3aGVu
ICJ1cnNoaWZ0cCIKKyAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzaHIje3g4NlN1ZmZpeCg6
cHRyKX0iLCA6cHRyKQogICAgICAgICB3aGVuICJzdWJpIgogICAgICAgICAgICAgaGFuZGxlWDg2
U3ViKDppbnQpCiAgICAgICAgIHdoZW4gInN1YnAiCkBAIC01MTYsOSArNjU3LDE1IEBAIGNsYXNz
IEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gInhvcmkiCiAgICAgICAgICAgICBoYW5kbGVYODZP
cCgieG9ybCIsIDppbnQpCiAgICAgICAgIHdoZW4gInhvcnAiCi0gICAgICAgICAgICBoYW5kbGVY
ODZPcCgieG9yI3t4ODZTdWZmaXgoOnB0cil9IiwgOmludCkKKyAgICAgICAgICAgIGhhbmRsZVg4
Nk9wKCJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRyKQogICAgICAgICB3aGVuICJsb2FkaSIs
ICJzdG9yZWkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmwgI3t4ODZPcGVyYW5kcyg6aW50
LCA6aW50KX0iCisgICAgICAgIHdoZW4gImxvYWRpcyIKKyAgICAgICAgICAgIGlmIGlzWDY0Cisg
ICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZzbHEgI3t4ODZPcGVyYW5kcyg6aW50LCA6cHRy
KX0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZsICN7
eDg2T3BlcmFuZHMoOmludCwgOmludCl9IgorICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4g
ImxvYWRwIiwgInN0b3JlcCIKICAgICAgICAgICAgICRhc20ucHV0cyAibW92I3t4ODZTdWZmaXgo
OnB0cil9ICN7eDg2T3BlcmFuZHMoOnB0ciwgOnB0cil9IgogICAgICAgICB3aGVuICJsb2FkYiIK
QEAgLTcwMSw3ICs4NDgsNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAgICB3aGVuICJidGJu
eiIKICAgICAgICAgICAgIGhhbmRsZVg4NkJyYW5jaFRlc3QoImpueiIsIDpieXRlKQogICAgICAg
ICB3aGVuICJqbXAiCi0gICAgICAgICAgICAkYXNtLnB1dHMgImptcCAje29wZXJhbmRzWzBdLng4
NkNhbGxPcGVyYW5kKDppbnQpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAiam1wICN7b3BlcmFu
ZHNbMF0ueDg2Q2FsbE9wZXJhbmQoOnB0cil9IgogICAgICAgICB3aGVuICJiYWRkaW8iCiAgICAg
ICAgICAgICBoYW5kbGVYODZPcEJyYW5jaCgiYWRkbCIsICJqbyIsIDppbnQpCiAgICAgICAgIHdo
ZW4gImJhZGRwbyIKQEAgLTgyNSw5ICs5NzIsOSBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJwc3JscSAkMzIsICV4bW03IgogICAgICAgICAgICAgJGFzbS5wdXRz
ICJtb3ZzZCAleG1tNywgI3tvcGVyYW5kc1syXS54ODZPcGVyYW5kKDppbnQpfSIKICAgICAgICAg
d2hlbiAiZnAyZCIKLSAgICAgICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJhbmRzWzBdLng4
Nk9wZXJhbmRzKDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpkb3VibGUpfSIKKyAg
ICAgICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJhbmRzWzBdLng4Nk9wZXJhbmQoOnB0cil9
LCAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOmRvdWJsZSl9IgogICAgICAgICB3aGVuICJmZDJw
IgotICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZkICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZHMo
OmRvdWJsZSl9LCAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0cil9IgorICAgICAgICAgICAg
JGFzbS5wdXRzICJtb3ZkICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZCg6ZG91YmxlKX0sICN7b3Bl
cmFuZHNbMV0ueDg2T3BlcmFuZCg6cHRyKX0iCiAgICAgICAgIHdoZW4gImJvIgogICAgICAgICAg
ICAgJGFzbS5wdXRzICJqbyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIKICAgICAgICAgd2hlbiAi
YnMiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxMTAz
NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTkzNSw3ICs5MzUsNyBAQAogCiAvKiBPbiBzb21lIG9mIHRoZSBwbGF0Zm9ybXMgd2hl
cmUgd2UgaGF2ZSBhIEpJVCwgd2Ugd2FudCB0byBhbHNvIGhhdmUgdGhlIAogICAgbG93LWxldmVs
IGludGVycHJldGVyLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9MTElOVCkgJiYgRU5BQkxFKEpJ
VCkgJiYgT1MoREFSV0lOKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKEFSTV9USFVNQjIpKSAmJiBVU0Uo
SlNWQUxVRTMyXzY0KQorI2lmICFkZWZpbmVkKEVOQUJMRV9MTElOVCkgJiYgRU5BQkxFKEpJVCkg
JiYgT1MoREFSV0lOKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTV9USFVN
QjIpKQogI2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131159</attachid>
            <date>2012-03-09 23:36:23 -0800</date>
            <delta_ts>2012-03-10 00:24:02 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>llint64_patch_12.diff</filename>
            <type>text/plain</type>
            <size>128532</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMzQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDEyLTAzLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAw
NjM0Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBQb3J0ZWQgdGhlIExMSW50LCB3aGljaCBwcmV2aW91c2x5IG9ubHkgd29ya2VkIG9u
IDMyLWJpdCwgdG8gNjQtYml0LiBUaGlzCisgICAgICAgIHBhdGNoIG1vdmVzIGEgZmFpciBiaXQg
b2YgY29kZSBmcm9tIExvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gdG8gdGhlIGNvbW1vbgor
ICAgICAgICBmaWxlLCBMb3dMZXZlbEludGVycHJldGVyLmFzbS4gQWJvdXQgMS8zIG9mIHRoZSBM
TEludCBkaWQgbm90IGhhdmUgdG8gYmUKKyAgICAgICAgc3BlY2lhbGl6ZWQgZm9yIHZhbHVlIHJl
cHJlc2VudGF0aW9uLgorICAgICAgICAKKyAgICAgICAgQWxzbyBtYWRlIHNvbWUgbWlub3IgY2hh
bmdlcyB0byBvZmZsaW5lYXNtIGFuZCB0aGUgc2xvdy1wYXRocy4KKworICAgICAgICAqIGxsaW50
L0xMSW50Q29tbW9uLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9M
TEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChMTEludCk6CisgICAgICAgIChKU0M6OkxMSW50
OjpsbGludF90cmFjZV92YWx1ZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BB
VEhfREVDTCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKExM
SW50KToKKyAgICAgICAgKFNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6OkxMSW50
OjpTbG93UGF0aFJldHVyblR5cGU6OlNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6
OkxMSW50OjplbmNvZGVSZXN1bHQpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206Cisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZs
aW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFz
bS9wYXJzZXIucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAg
ICogb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6
CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTItMDMtMDkgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViS2l0IGNvbXBpbGVkIGJ5IGdjYyAoWGNv
ZGUgMy4yLjYpIGhhbmdzIHdoaWxlIHJ1bm5pbmcgRE9NL0FjY2Vzc29ycy5odG1sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAkocmV2aXNpb24gMTEwMzQ2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTcyLDYgKzcyLDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhKU0ds
b2JhbERhdAogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykgPT0gNCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVk
VmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkgPT0gMCk7CiAjZW5kaWYKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQogICAgIEFTU0VSVChKU1ZhbHVlOjpJbnQzMlRhZyA9PSAtMSk7CiAgICAg
QVNTRVJUKEpTVmFsdWU6OkJvb2xlYW5UYWcgPT0gLTIpOwogICAgIEFTU0VSVChKU1ZhbHVlOjpO
dWxsVGFnID09IC0zKTsKQEAgLTgwLDEyICs4MSwyNiBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3Nl
cnRpb25zKEpTR2xvYmFsRGF0CiAgICAgQVNTRVJUKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcgPT0g
LTYpOwogICAgIEFTU0VSVChKU1ZhbHVlOjpEZWxldGVkVmFsdWVUYWcgPT0gLTcpOwogICAgIEFT
U0VSVChKU1ZhbHVlOjpMb3dlc3RUYWcgPT0gLTcpOworI2Vsc2UKKyAgICBBU1NFUlQoVGFnQml0
VHlwZU90aGVyID09IDB4Mik7CisgICAgQVNTRVJUKFRhZ0JpdEJvb2wgPT0gMHg0KTsKKyAgICBB
U1NFUlQoVGFnQml0VW5kZWZpbmVkID09IDB4OCk7CisgICAgQVNTRVJUKFZhbHVlRW1wdHkgPT0g
MHgwKTsKKyAgICBBU1NFUlQoVmFsdWVGYWxzZSA9PSAoVGFnQml0VHlwZU90aGVyIHwgVGFnQml0
Qm9vbCkpOworICAgIEFTU0VSVChWYWx1ZVRydWUgPT0gKFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0Jp
dEJvb2wgfCAxKSk7CisgICAgQVNTRVJUKFZhbHVlVW5kZWZpbmVkID09IChUYWdCaXRUeXBlT3Ro
ZXIgfCBUYWdCaXRVbmRlZmluZWQpKTsKKyAgICBBU1NFUlQoVmFsdWVOdWxsID09IFRhZ0JpdFR5
cGVPdGhlcik7CisjZW5kaWYKICAgICBBU1NFUlQoU3RyaW5nVHlwZSA9PSA1KTsKICAgICBBU1NF
UlQoT2JqZWN0VHlwZSA9PSAxMyk7CiAgICAgQVNTRVJUKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQg
PT0gMSk7CiAgICAgQVNTRVJUKEltcGxlbWVudHNIYXNJbnN0YW5jZSA9PSAyKTsKICAgICBBU1NF
UlQoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9PSA4KTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgIEFTU0VSVCgmZ2xvYmFsRGF0YS5oZWFwLmFsbG9jYXRvckZvck9iamVjdFdpdGhvdXRE
ZXN0cnVjdG9yKHNpemVvZihKU0ZpbmFsT2JqZWN0KSkgLSAmZ2xvYmFsRGF0YS5oZWFwLmZpcnN0
QWxsb2NhdG9yV2l0aG91dERlc3RydWN0b3JzKCkgPT0gMSk7CisjZWxzZQogICAgIEFTU0VSVCgm
Z2xvYmFsRGF0YS5oZWFwLmFsbG9jYXRvckZvck9iamVjdFdpdGhvdXREZXN0cnVjdG9yKHNpemVv
ZihKU0ZpbmFsT2JqZWN0KSkgLSAmZ2xvYmFsRGF0YS5oZWFwLmZpcnN0QWxsb2NhdG9yV2l0aG91
dERlc3RydWN0b3JzKCkgPT0gMyk7CisjZW5kaWYKICAgICBBU1NFUlQoRmlyc3RDb25zdGFudFJl
Z2lzdGVySW5kZXggPT0gMHg0MDAwMDAwMCk7CiAgICAgQVNTRVJUKEdsb2JhbENvZGUgPT0gMCk7
CiAgICAgQVNTRVJUKEV2YWxDb2RlID09IDEpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NSwxNiArNjUsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKICNk
ZWZpbmUgTExJTlRfT1BfQyhpbmRleCkgKGV4ZWMtPnIocGNbaW5kZXhdLnUub3BlcmFuZCkpCiAK
ICNkZWZpbmUgTExJTlRfUkVUVVJOX1RXTyhmaXJzdCwgc2Vjb25kKSBkbyB7ICAgICAgIFwKLSAg
ICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg
ICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICAgICAgICB2b2lkKiBhOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAg
ICAgICB2b2lkKiBiOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIH0g
cGFpcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGludDY0
X3QgaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgfSBfX3J0X3U7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX19ydF91LnBhaXIuYSA9
IGZpcnN0OyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX19ydF91LnBhaXIuYiA9IHNl
Y29uZDsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgcmV0dXJuIF9fcnRfdS5pOyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChmaXJz
dCwgc2Vjb25kKTsgICAgICAgIFwKICAgICB9IHdoaWxlIChmYWxzZSkKIAogI2RlZmluZSBMTElO
VF9FTkRfSU1QTCgpIExMSU5UX1JFVFVSTl9UV08ocGMsIGV4ZWMpCkBAIC0xNjcsNyArMTU4LDYg
QEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhYwogCiBleHRlcm4gIkMi
IFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV92YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIElu
c3RydWN0aW9uKiBwYywgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpCiB7Ci0gICAgTExJTlRf
QkVHSU4oKTsKICAgICBKU1ZhbHVlIHZhbHVlID0gTExJTlRfT1BfQyhvcGVyYW5kKS5qc1ZhbHVl
KCk7CiAgICAgdW5pb24gewogICAgICAgICBzdHJ1Y3QgewpAQCAtMTg4LDE0ICsxNzgsMTMgQEAg
ZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhYwogICAgICAgICAgICAgdS5i
aXRzLnRhZywKICAgICAgICAgICAgIHUuYml0cy5wYXlsb2FkLAogICAgICAgICAgICAgdmFsdWUu
ZGVzY3JpcHRpb24oKSk7Ci0gICAgTExJTlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lNUEwoKTsK
IH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0wodHJhY2VfcHJvbG9ndWUpCiB7Ci0gICAgTExJTlRf
QkVHSU4oKTsKICAgICBkYXRhTG9nKCIlcCAvICVwOiBpbiBwcm9sb2d1ZS5cbiIsIGV4ZWMtPmNv
ZGVCbG9jaygpLCBleGVjKTsKLSAgICBMTElOVF9FTkQoKTsKKyAgICBMTElOVF9FTkRfSU1QTCgp
OwogfQogCiBzdGF0aWMgdm9pZCB0cmFjZUZ1bmN0aW9uUHJvbG9ndWUoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBjaGFyKiBjb21tZW50LCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQpCkBAIC0y
MTEsNTQgKzIwMCw1MiBAQCBzdGF0aWMgdm9pZCB0cmFjZUZ1bmN0aW9uUHJvbG9ndWUoRXhlY1N0
CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxs
KQogewotICAgIExMSU5UX0JFR0lOKCk7CiAgICAgdHJhY2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMs
ICJjYWxsIHByb2xvZ3VlIiwgQ29kZUZvckNhbGwpOwotICAgIExMSU5UX0VORCgpOworICAgIExM
SU5UX0VORF9JTVBMKCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX3Byb2xvZ3Vl
X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICB0cmFj
ZUZ1bmN0aW9uUHJvbG9ndWUoZXhlYywgImNvbnN0cnVjdCBwcm9sb2d1ZSIsIENvZGVGb3JDb25z
dHJ1Y3QpOwotICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAKIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX2FyaXR5Q2hlY2tfZm9yX2NhbGwpCiB7Ci0gICAgTExJ
TlRfQkVHSU4oKTsKICAgICB0cmFjZUZ1bmN0aW9uUHJvbG9ndWUoZXhlYywgImNhbGwgYXJpdHkg
Y2hlY2siLCBDb2RlRm9yQ2FsbCk7Ci0gICAgTExJTlRfRU5EKCk7CisgICAgTExJTlRfRU5EX0lN
UEwoKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0wodHJhY2VfYXJpdHlDaGVja19mb3JfY29u
c3RydWN0KQogewotICAgIExMSU5UX0JFR0lOKCk7CiAgICAgdHJhY2VGdW5jdGlvblByb2xvZ3Vl
KGV4ZWMsICJjb25zdHJ1Y3QgYXJpdHkgY2hlY2siLCBDb2RlRm9yQ29uc3RydWN0KTsKLSAgICBM
TElOVF9FTkQoKTsKKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQogCiBMTElOVF9TTE9XX1BBVEhf
REVDTCh0cmFjZSkKIHsKLSAgICBMTElOVF9CRUdJTigpOwogICAgIGRhdGFMb2coIiVwIC8gJXA6
IGV4ZWN1dGluZyBiYyMlenUsICVzLCBzY29wZSAlcFxuIiwKICAgICAgICAgICAgIGV4ZWMtPmNv
ZGVCbG9jaygpLAogICAgICAgICAgICAgZXhlYywKICAgICAgICAgICAgIHN0YXRpY19jYXN0PGlu
dHB0cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwK
ICAgICAgICAgICAgIG9wY29kZU5hbWVzW2V4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+
Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpXSwKICAgICAgICAgICAgIGV4ZWMtPnNjb3BlQ2hh
aW4oKSk7Ci0gICAgTExJTlRfRU5EKCk7CisgICAgaWYgKGV4ZWMtPmdsb2JhbERhdGEoKS5pbnRl
cnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpID09IG9wX3JldCkgeworICAgICAg
ICBkYXRhTG9nKCJXaWxsIGJlIHJldHVybmluZyB0byAlcFxuIiwgZXhlYy0+cmV0dXJuUEMoKS52
YWx1ZSgpKTsKKyAgICAgICAgZGF0YUxvZygiVGhlIG5ldyBjZnIgd2lsbCBiZSAlcFxuIiwgZXhl
Yy0+Y2FsbGVyRnJhbWUoKSk7CisgICAgfQorICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAKIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHNwZWNpYWxfdHJhY2UpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsK
ICAgICBkYXRhTG9nKCIlcCAvICVwOiBleGVjdXRpbmcgc3BlY2lhbCBjYXNlIGJjIyV6dSwgb3Aj
JXUsIHJldHVybiBQQyBpcyAlcFxuIiwKICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLAog
ICAgICAgICAgICAgZXhlYywKICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAt
IGV4ZWMtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKICAgICAgICAgICAg
IGV4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNv
ZGUpLAogICAgICAgICAgICAgZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKLSAgICBMTElOVF9F
TkQoKTsKKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQogCiBpbmxpbmUgYm9vbCBzaG91bGRKSVQo
RXhlY1N0YXRlKiBleGVjKQpAQCAtMTQwNyw3ICsxMzk0LDcgQEAgTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX2NhbGxfdmFyYQogICAgIAogICAgIGV4ZWNDYWxsZWUtPnVuY2hlY2tlZFIo
UmVnaXN0ZXJGaWxlOjpDYWxsZWUpID0gY2FsbGVlQXNWYWx1ZTsKICAgICBleGVjQ2FsbGVlLT5z
ZXRDYWxsZXJGcmFtZShleGVjKTsKLSAgICBleGVjLT51bmNoZWNrZWRSKFJlZ2lzdGVyRmlsZTo6
QXJndW1lbnRDb3VudCkudGFnKCkgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4ocGMgKyBPUENPREVf
TEVOR1RIKG9wX2NhbGxfdmFyYXJncykpOworICAgIGV4ZWMtPnNldEN1cnJlbnRWUEMocGMgKyBP
UENPREVfTEVOR1RIKG9wX2NhbGxfdmFyYXJncykpOwogICAgIAogICAgIHJldHVybiBzZXRVcENh
bGwoZXhlY0NhbGxlZSwgcGMsIENvZGVGb3JDYWxsLCBjYWxsZWVBc1ZhbHVlKTsKIH0KQEAgLTE0
MjUsNyArMTQxMiw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX2V2YWwK
ICAgICBleGVjQ2FsbGVlLT5zZXRTY29wZUNoYWluKGV4ZWMtPnNjb3BlQ2hhaW4oKSk7CiAgICAg
ZXhlY0NhbGxlZS0+c2V0UmV0dXJuUEMoYml0d2lzZV9jYXN0PEluc3RydWN0aW9uKj4oJmxsaW50
X2dlbmVyaWNfcmV0dXJuX3BvaW50KSk7CiAgICAgZXhlY0NhbGxlZS0+c2V0Q29kZUJsb2NrKDAp
OwotICAgIGV4ZWMtPnVuY2hlY2tlZFIoUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KS50YWco
KSA9IGJpdHdpc2VfY2FzdDxpbnQzMl90PihwYyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF9ldmFs
KSk7CisgICAgZXhlYy0+c2V0Q3VycmVudFZQQyhwYyArIE9QQ09ERV9MRU5HVEgob3BfY2FsbF9l
dmFsKSk7CiAgICAgCiAgICAgaWYgKCFpc0hvc3RGdW5jdGlvbihjYWxsZWVBc1ZhbHVlLCBnbG9i
YWxGdW5jRXZhbCkpCiAgICAgICAgIHJldHVybiBzZXRVcENhbGwoZXhlY0NhbGxlZSwgcGMsIENv
ZGVGb3JDYWxsLCBjYWxsZWVBc1ZhbHVlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9MTEludFNsb3dQYXRocy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5oCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
OCArMzgsNDAgQEAgc3RydWN0IEluc3RydWN0aW9uOwogCiBuYW1lc3BhY2UgTExJbnQgewogCisj
aWYgVVNFKEpTVkFMVUU2NCkKK3N0cnVjdCBTbG93UGF0aFJldHVyblR5cGUgeworICAgIHZvaWQq
IGE7CisgICAgdm9pZCogYjsKKyAgICAKKyAgICBTbG93UGF0aFJldHVyblR5cGUodm9pZCogYSwg
dm9pZCogYikKKyAgICAgICAgOiBhKGEpCisgICAgICAgICwgYihiKQorICAgIHsKKyAgICB9Cit9
OworCitpbmxpbmUgU2xvd1BhdGhSZXR1cm5UeXBlIGVuY29kZVJlc3VsdCh2b2lkKiBhLCB2b2lk
KiBiKQoreworICAgIHJldHVybiBTbG93UGF0aFJldHVyblR5cGUoYSwgYik7Cit9CisjZWxzZQog
dHlwZWRlZiBpbnQ2NF90IFNsb3dQYXRoUmV0dXJuVHlwZTsKIAoraW5saW5lIFNsb3dQYXRoUmV0
dXJuVHlwZSBlbmNvZGVSZXN1bHQodm9pZCogYSwgdm9pZCogYikKK3sKKyAgICB1bmlvbiB7Cisg
ICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB2b2lkKiBhOworICAgICAgICAgICAgdm9pZCog
YjsKKyAgICAgICAgfSBwYWlyOworICAgICAgICBpbnQ2NF90IGk7CisgICAgfSB1OworICAgIHUu
cGFpci5hID0gYTsKKyAgICB1LnBhaXIuYiA9IGI7CisgICAgcmV0dXJuIHUuaTsKK30KKyNlbmRp
ZgorCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV9vcGVyYW5kKEV4
ZWNTdGF0ZSosIEluc3RydWN0aW9uKiwgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpOwogZXh0
ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2VfdmFsdWUoRXhlY1N0YXRlKiwg
SW5zdHJ1Y3Rpb24qLCBpbnQgZnJvbVdoZXJlLCBpbnQgb3BlcmFuZCk7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVy
MzJfNjQuYXNtCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtNzAsMjgg
KzcwLDYgQEAKICMgQmVsb3cgd2UgaGF2ZSBhIGJ1bmNoIG9mIGNvbnN0YW50IGRlY2xhcmF0aW9u
cy4gRWFjaCBjb25zdGFudCBtdXN0IGhhdmUKICMgYSBjb3JyZXNwb25kaW5nIEFTU0VSVCgpIGlu
IExMSW50RGF0YS5jcHAuCiAKLSMgVGhlc2UgZGVjbGFyYXRpb25zIG11c3QgbWF0Y2ggaW50ZXJw
cmV0ZXIvUmVnaXN0ZXJGaWxlLmguCi1jb25zdCBDYWxsRnJhbWVIZWFkZXJTaXplID0gNDgKLWNv
bnN0IEFyZ3VtZW50Q291bnQgPSAtNDgKLWNvbnN0IENhbGxlckZyYW1lID0gLTQwCi1jb25zdCBD
YWxsZWUgPSAtMzIKLWNvbnN0IFNjb3BlQ2hhaW4gPSAtMjQKLWNvbnN0IFJldHVyblBDID0gLTE2
Ci1jb25zdCBDb2RlQmxvY2sgPSAtOAotCi1jb25zdCBUaGlzQXJndW1lbnRPZmZzZXQgPSAtQ2Fs
bEZyYW1lSGVhZGVyU2l6ZSAtIDgKLQotIyBEZWNsYXJlIHNvbWUgYWxpYXNlcyBmb3IgdGhlIHJl
Z2lzdGVycyB3ZSB3aWxsIHVzZS4KLWNvbnN0IFBDID0gdDQKLQotIyBPZmZzZXRzIG5lZWRlZCBm
b3IgcmVhc29uaW5nIGFib3V0IHZhbHVlIHJlcHJlc2VudGF0aW9uLgotaWYgQklHX0VORElBTgot
ICAgIGNvbnN0IFRhZ09mZnNldCA9IDAKLSAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gNAotZWxz
ZQotICAgIGNvbnN0IFRhZ09mZnNldCA9IDQKLSAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gMAot
ZW5kCiAKICMgVmFsdWUgcmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgogY29uc3QgSW50MzJUYWcg
PSAtMQpAQCAtMTAzLDcxICs4MSw4IEBAIGNvbnN0IEVtcHR5VmFsdWVUYWcgPSAtNgogY29uc3Qg
RGVsZXRlZFZhbHVlVGFnID0gLTcKIGNvbnN0IExvd2VzdFRhZyA9IERlbGV0ZWRWYWx1ZVRhZwog
Ci0jIFR5cGUgY29uc3RhbnRzLgotY29uc3QgU3RyaW5nVHlwZSA9IDUKLWNvbnN0IE9iamVjdFR5
cGUgPSAxMwotCi0jIFR5cGUgZmxhZ3MgY29uc3RhbnRzLgotY29uc3QgTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZCA9IDEKLWNvbnN0IEltcGxlbWVudHNIYXNJbnN0YW5jZSA9IDIKLWNvbnN0IEltcGxl
bWVudHNEZWZhdWx0SGFzSW5zdGFuY2UgPSA4Ci0KLSMgSGVhcCBhbGxvY2F0aW9uIGNvbnN0YW50
cy4KLWNvbnN0IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDMKLQotIyBCeXRlY29kZSBv
cGVyYW5kIGNvbnN0YW50cy4KLWNvbnN0IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gMHg0
MDAwMDAwMAotCi0jIENvZGUgdHlwZSBjb25zdGFudHMuCi1jb25zdCBHbG9iYWxDb2RlID0gMAot
Y29uc3QgRXZhbENvZGUgPSAxCi1jb25zdCBGdW5jdGlvbkNvZGUgPSAyCi0KLSMgVGhlIGludGVy
cHJldGVyIHN0ZWFscyB0aGUgdGFnIHdvcmQgb2YgdGhlIGFyZ3VtZW50IGNvdW50LgotY29uc3Qg
TExJbnRSZXR1cm5QQyA9IEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXQKLQotIyBUaGlzIG11c3Qg
bWF0Y2ggd3RmL1ZlY3Rvci5oLgotY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKLWNvbnN0IFZl
Y3RvckJ1ZmZlck9mZnNldCA9IDQKLQotIyBTdHJpbmcgZmxhZ3MuCi1jb25zdCBIYXNoRmxhZ3M4
Qml0QnVmZmVyID0gNjQKIAogIyBVdGlsaXRpZXMKLW1hY3JvIGNyYXNoKCkKLSAgICBzdG9yZWkg
MCwgMHhiYmFkYmVlZltdCi0gICAgbW92ZSAwLCB0MAotICAgIGNhbGwgdDAKLWVuZAotCi1tYWNy
byBhc3NlcnQoYXNzZXJ0aW9uKQotICAgIGlmIEFTU0VSVF9FTkFCTEVECi0gICAgICAgIGFzc2Vy
dGlvbigub2spCi0gICAgICAgIGNyYXNoKCkKLSAgICAub2s6Ci0gICAgZW5kCi1lbmQKLQotbWFj
cm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKGRlc3RpbmF0aW9uUmVnaXN0ZXIpCi0g
ICAgaWYgQVJNdjcKLSAgICAgICAgbW92ZSBsciwgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVs
c2lmIFg4NgotICAgICAgICBwb3AgZGVzdGluYXRpb25SZWdpc3RlcgotICAgIGVsc2UKLSAgICAg
ICAgZXJyb3IKLSAgICBlbmQKLWVuZAotCi1tYWNybyByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9y
ZVJldHVybihzb3VyY2VSZWdpc3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIHNvdXJj
ZVJlZ2lzdGVyLCBscgotICAgIGVsc2lmIFg4NgotICAgICAgICBwdXNoIHNvdXJjZVJlZ2lzdGVy
Ci0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KIG1hY3JvIGRpc3BhdGNo
KGFkdmFuY2UpCiAgICAgYWRkcCBhZHZhbmNlICogNCwgUEMKICAgICBqbXAgW1BDXQpAQCAtMjIw
LDggKzEzNSw4IEBAIG1hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJnMiwgYXJnMywKICAg
ICBjYWxsIGZ1bmN0aW9uCiBlbmQKIAotbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKLSAg
ICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKQorbWFjcm8gY2FsbFNsb3dQYXRoKHNsb3dQYXRo
KQorICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQwLCBQQwogICAgIG1v
dmUgdDEsIGNmcgogZW5kCkBAIC0yNDUsNDAgKzE2MCwxNSBAQCBtYWNybyB0cmFjZVZhbHVlKGZy
b21XaGVyZSwgb3BlcmFuZCkKICAgICBtb3ZlIHQxLCBjZnIKIGVuZAogCi1tYWNybyB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgaWYgRVhFQ1VUSU9OX1RSQUNJTkcKLSAgICAgICAgY2FsbFNsb3dQYXRo
KF9sbGludF90cmFjZSkKLSAgICBlbmQKLWVuZAotCi0jIENhbGwgYSBzbG93X3BhdGggZm9yIGNh
bGwgb3Bjb2Rlcy4KLW1hY3JvIGNhbGxDYWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd19wYXRoLCBh
Y3Rpb24pCisjIENhbGwgYSBzbG93UGF0aCBmb3IgY2FsbCBvcGNvZGVzLgorbWFjcm8gY2FsbENh
bGxTbG93UGF0aChhZHZhbmNlLCBzbG93UGF0aCwgYWN0aW9uKQogICAgIGFkZHAgYWR2YW5jZSAq
IDQsIFBDLCB0MAogICAgIHN0b3JlcCB0MCwgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJd
Ci0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNm
ciwgUEMpCiAgICAgbW92ZSB0MSwgY2ZyCiAgICAgYWN0aW9uKHQwKQogZW5kCiAKLW1hY3JvIHNs
b3dQYXRoRm9yQ2FsbChhZHZhbmNlLCBzbG93X3BhdGgpCi0gICAgY2FsbENhbGxTbG93UGF0aCgK
LSAgICAgICAgYWR2YW5jZSwKLSAgICAgICAgc2xvd19wYXRoLAotICAgICAgICBtYWNybyAoY2Fs
bGVlKQotICAgICAgICAgICAgY2FsbCBjYWxsZWUKLSAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJD
YWxsKCkKLSAgICAgICAgZW5kKQotZW5kCi0KLW1hY3JvIGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVt
ZW50LCBhY3Rpb24pCi0gICAgaWYgSklUX0VOQUJMRUQKLSAgICAgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHQwCi0gICAgICAgIGJhZGRpcyBpbmNyZW1lbnQsIENvZGVCbG9jazo6bV9sbGludEV4
ZWN1dGVDb3VudGVyICsgRXhlY3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QwXSwgLmNvbnRpbnVl
Ci0gICAgICAgIGFjdGlvbigpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotZW5kCi0KIG1hY3Jv
IGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKICAgICBjaGVja1N3aXRjaFRvSklUKAogICAgICAg
ICAxLApAQCAtMjkzLDE4ICsxODMsNiBAQCBtYWNybyBjaGVja1N3aXRjaFRvSklURm9yTG9vcCgp
CiAgICAgICAgIGVuZCkKIGVuZAogCi1tYWNybyBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUo
KQotICAgIGNoZWNrU3dpdGNoVG9KSVQoCi0gICAgICAgIDEwLAotICAgICAgICBtYWNybyAoKQot
ICAgICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQotICAgICAgICBlbmQpCi1l
bmQKLQotbWFjcm8gYXNzZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCi0gICAgYXNzZXJ0KG1hY3JvIChv
aykgYmlsdCBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIG9rIGVuZCkKLWVuZAot
CiAjIEluZGV4LCB0YWcsIGFuZCBwYXlsb2FkIG11c3QgYmUgZGlmZmVyZW50IHJlZ2lzdGVycy4g
SW5kZXggaXMgbm90CiAjIGNoYW5nZWQuCiBtYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGlu
ZGV4LCB0YWcsIHBheWxvYWQpCkBAIC0zODYsMTA5ICsyNjQsOCBAQCBtYWNybyB2YWx1ZVByb2Zp
bGUodGFnLCBwYXlsb2FkLCBwcm9maWxlCiBlbmQKIAogCi0jIEluZGljYXRlIHRoZSBiZWdpbm5p
bmcgb2YgTExJbnQuCi1fbGxpbnRfYmVnaW46Ci0gICAgY3Jhc2goKQotCi0KICMgRW50cnlwb2lu
dHMgaW50byB0aGUgaW50ZXJwcmV0ZXIKIAotbWFjcm8gZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2Nr
R2V0dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdp
c3RlcgotICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0s
IHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgRnVuY3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9j
a0ZvckNhbGxbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgotZW5kCi0KLW1hY3JvIGZ1
bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQotICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0YXJnZXRSZWdpc3RlcgotICAgIGxvYWRwIEpTRnVuY3Rpb246Om1f
ZXhlY3V0YWJsZVt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgRnVu
Y3Rpb25FeGVjdXRhYmxlOjptX2NvZGVCbG9ja0ZvckNvbnN0cnVjdFt0YXJnZXRSZWdpc3Rlcl0s
IHRhcmdldFJlZ2lzdGVyCi1lbmQKLQotbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIo
dGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHRhcmdldFJlZ2lzdGVy
Ci1lbmQKLQotbWFjcm8gZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0g
ICAgc3RvcmVwIHNvdXJjZVJlZ2lzdGVyLCBDb2RlQmxvY2tbY2ZyXQotZW5kCi0KLW1hY3JvIG5v
dEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQotICAgICMgTm90aGluZyB0
byBkbyEKLWVuZAotCi0jIERvIHRoZSBiYXJlIG1pbmltdW0gcmVxdWlyZWQgdG8gZXhlY3V0ZSBj
b2RlLiBTZXRzIHVwIHRoZSBQQywgbGVhdmUgdGhlIENvZGVCbG9jayoKLSMgaW4gdDEuIE1heSBh
bHNvIHRyaWdnZXIgcHJvbG9ndWUgZW50cnkgT1NSLgotbWFjcm8gcHJvbG9ndWUoY29kZUJsb2Nr
R2V0dGVyLCBjb2RlQmxvY2tTZXR0ZXIsIG9zclNsb3dQYXRoLCB0cmFjZVNsb3dQYXRoKQotICAg
IHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICAKLSAgICAjIFNldCB1cCB0
aGUgY2FsbCBmcmFtZSBhbmQgY2hlY2sgaWYgd2Ugc2hvdWxkIE9TUi4KLSAgICBzdG9yZXAgdDIs
IFJldHVyblBDW2Nmcl0KLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAgICAgICBjYWxsU2xv
d1BhdGgodHJhY2VTbG93UGF0aCkKLSAgICBlbmQKLSAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCi0g
ICAgaWYgSklUX0VOQUJMRUQKLSAgICAgICAgYmFkZGlzIDUsIENvZGVCbG9jazo6bV9sbGludEV4
ZWN1dGVDb3VudGVyICsgRXhlY3V0aW9uQ291bnRlcjo6bV9jb3VudGVyW3QxXSwgLmNvbnRpbnVl
Ci0gICAgICAgIGNDYWxsMihvc3JTbG93UGF0aCwgY2ZyLCBQQykKLSAgICAgICAgbW92ZSB0MSwg
Y2ZyCi0gICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCi0gICAgICAgIGxvYWRwIFJldHVyblBDW2Nm
cl0sIHQyCi0gICAgICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQotICAg
ICAgICBqbXAgdDAKLSAgICAucmVjb3ZlcjoKLSAgICAgICAgY29kZUJsb2NrR2V0dGVyKHQxKQot
ICAgIC5jb250aW51ZToKLSAgICBlbmQKLSAgICBjb2RlQmxvY2tTZXR0ZXIodDEpCi0gICAgCi0g
ICAgIyBTZXQgdXAgdGhlIFBDLgotICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNb
dDFdLCBQQwotZW5kCi0KLSMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2gg
aXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCi0jIE11c3QgY2FsbCBkaXNwYXRjaCgw
KSBhZnRlciBjYWxsaW5nIHRoaXMuCi1tYWNybyBmdW5jdGlvbkluaXRpYWxpemF0aW9uKHByb2Zp
bGVBcmdTa2lwKQotICAgIGlmIFZBTFVFX1BST0ZJTEVSCi0gICAgICAgICMgUHJvZmlsZSB0aGUg
YXJndW1lbnRzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIGNob2ljZSBidXQgdG8gZG8gdGhp
cy4gVGhpcwotICAgICAgICAjIGNvZGUgaXMgcHJldHR5IGhvcnJlbmRvdXMgYmVjYXVzZSBvZiB0
aGUgZGlmZmVyZW5jZSBpbiBvcmRlcmluZyBiZXR3ZWVuCi0gICAgICAgICMgYXJndW1lbnRzIGFu
ZCB2YWx1ZSBwcm9maWxlcywgdGhlIGRlc2lyZSB0byBoYXZlIGEgc2ltcGxlIGxvb3AtZG93bi10
by16ZXJvCi0gICAgICAgICMgbG9vcCwgYW5kIHRoZSBkZXNpcmUgdG8gdXNlIG9ubHkgdGhyZWUg
cmVnaXN0ZXJzIHNvIGFzIHRvIHByZXNlcnZlIHRoZSBQQyBhbmQKLSAgICAgICAgIyB0aGUgY29k
ZSBibG9jay4gSXQgaXMgbGlrZWx5IHRoYXQgdGhpcyBjb2RlIHNob3VsZCBiZSByZXdyaXR0ZW4g
aW4gYSBtb3JlCi0gICAgICAgICMgb3B0aW1hbCB3YXkgZm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBo
YXZlIG1vcmUgdGhhbiBmaXZlIHJlZ2lzdGVycyBhdmFpbGFibGUKLSAgICAgICAgIyBmb3IgYXJi
aXRyYXJ5IHVzZSBpbiB0aGUgaW50ZXJwcmV0ZXIuCi0gICAgICAgIGxvYWRpIENvZGVCbG9jazo6
bV9udW1QYXJhbWV0ZXJzW3QxXSwgdDAKLSAgICAgICAgYWRkaSAtcHJvZmlsZUFyZ1NraXAsIHQw
ICMgVXNlIGFkZGkgYmVjYXVzZSB0aGF0J3Mgd2hhdCBoYXMgdGhlIHBlZXBob2xlCi0gICAgICAg
IGFzc2VydChtYWNybyAob2spIGJpZ3RlcSB0MCwgMCwgb2sgZW5kKQotICAgICAgICBidGl6IHQw
LCAuYXJndW1lbnRQcm9maWxlRG9uZQotICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fYXJndW1l
bnRWYWx1ZVByb2ZpbGVzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QxXSwgdDMKLSAgICAgICAgbXVs
aSBzaXplb2YgVmFsdWVQcm9maWxlLCB0MCwgdDIgIyBBYWFhYWhoaGghIE5lZWQgc3RyZW5ndGgg
cmVkdWN0aW9uIQotICAgICAgICBuZWdpIHQwCi0gICAgICAgIGxzaGlmdGkgMywgdDAKLSAgICAg
ICAgYWRkcCB0MiwgdDMKLSAgICAuYXJndW1lbnRQcm9maWxlTG9vcDoKLSAgICAgICAgbG9hZGkg
VGhpc0FyZ3VtZW50T2Zmc2V0ICsgVGFnT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtj
ZnIsIHQwXSwgdDIKLSAgICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MwotICAgICAg
ICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVl
UHJvZmlsZTo6bV9idWNrZXRzICsgVGFnT2Zmc2V0W3QzXQotICAgICAgICBsb2FkaSBUaGlzQXJn
dW1lbnRPZmZzZXQgKyBQYXlsb2FkT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIs
IHQwXSwgdDIKLSAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1
ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRPZmZzZXRbdDNdCi0g
ICAgICAgIGJhZGRpbnogOCwgdDAsIC5hcmd1bWVudFByb2ZpbGVMb29wCi0gICAgLmFyZ3VtZW50
UHJvZmlsZURvbmU6Ci0gICAgZW5kCi0gICAgICAgIAotICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0
LgotICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAotICAg
IGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QxXSwgdDIKLSAgICBsb2FkcCBKU0dsb2Jh
bERhdGE6OmludGVycHJldGVyW3QyXSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdp
c3RlckZpbGUgZnJvbSB0aGUgSklUU3RhY2tGcmFtZQotICAgIGxzaGlmdGkgMywgdDAKLSAgICBh
ZGRwIHQwLCBjZnIsIHQwCi0gICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsg
UmVnaXN0ZXJGaWxlOjptX2VuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSwotCi0gICAgIyBTdGFj
ayBoZWlnaHQgY2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKLS5zdGFja0hlaWdodE9LOgot
ZW5kCi0KICMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBw
cm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCiBtYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2soZG9uZUxh
YmVsLCBzbG93X3BhdGgpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRb
Y2ZyXSwgdDAKQEAgLTUwNiwzOCArMjgzLDYgQEAgbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvdwogICAgIGptcCBkb25lTGFiZWwKIGVuZAogCi1fbGxpbnRfcHJvZ3JhbV9w
cm9sb2d1ZToKLSAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVu
Y3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9s
b2d1ZSkKLSAgICBkaXNwYXRjaCgwKQotCi0KLV9sbGludF9ldmFsX3Byb2xvZ3VlOgotICAgIHBy
b2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1Nl
dHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlKQotICAgIGRpc3Bh
dGNoKDApCi0KLQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3Byb2xvZ3VlOgotICAgIHByb2xv
Z3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0
ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGwsIF9sbGludF90cmFjZV9wcm9s
b2d1ZV9mdW5jdGlvbl9mb3JfY2FsbCkKLS5mdW5jdGlvbkZvckNhbGxCZWdpbjoKLSAgICBmdW5j
dGlvbkluaXRpYWxpemF0aW9uKDApCi0gICAgZGlzcGF0Y2goMCkKLSAgICAKLQotX2xsaW50X2Z1
bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JD
b25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRf
ZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QsIF9sbGludF90cmFjZV9wcm9sb2d1ZV9m
dW5jdGlvbl9mb3JfY29uc3RydWN0KQotLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW46Ci0gICAg
ZnVuY3Rpb25Jbml0aWFsaXphdGlvbigxKQotICAgIGRpc3BhdGNoKDApCi0gICAgCi0KLV9sbGlu
dF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjazoKLSAgICBwcm9sb2d1ZShmdW5jdGlvbkZv
ckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50
cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9hcml0eUNo
ZWNrX2Zvcl9jYWxsKQotICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDYWxsQmVn
aW4sIF9sbGludF9zbG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQotCi0KLV9sbGludF9mdW5jdGlv
bl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrOgotICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29u
c3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2Vu
dHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5Q2hlY2ssIF9sbGludF90cmFjZV9h
cml0eUNoZWNrX2Zvcl9jb25zdHJ1Y3QpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlv
bkZvckNvbnN0cnVjdEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NvbnN0cnVjdF9hcml0eUNoZWNr
KQogCiAjIEluc3RydWN0aW9uIGltcGxlbWVudGF0aW9ucwogCkBAIC01ODMsMzkgKzMyOCw2IEBA
IF9sbGludF9vcF9jcmVhdGVfYXJndW1lbnRzOgogICAgIGRpc3BhdGNoKDIpCiAKIAotbWFjcm8g
YWxsb2NhdGVCYXNpY0pTT2JqZWN0KHNpemVDbGFzc0luZGV4LCBjbGFzc0luZm9PZmZzZXQsIHN0
cnVjdHVyZSwgcmVzdWx0LCBzY3JhdGNoMSwgc2NyYXRjaDIsIHNsb3dDYXNlKQotICAgIGlmIEFM
V0FZU19BTExPQ0FURV9TTE9XCi0gICAgICAgIGptcCBzbG93Q2FzZQotICAgIGVsc2UKLSAgICAg
ICAgY29uc3Qgb2Zmc2V0T2ZNeVNpemVDbGFzcyA9Ci0gICAgICAgICAgICBKU0dsb2JhbERhdGE6
OmhlYXAgKwotICAgICAgICAgICAgSGVhcDo6bV9vYmplY3RTcGFjZSArCi0gICAgICAgICAgICBN
YXJrZWRTcGFjZTo6bV9ub3JtYWxTcGFjZSArCi0gICAgICAgICAgICBNYXJrZWRTcGFjZTo6U3Vi
c3BhY2U6OnByZWNpc2VBbGxvY2F0b3JzICsKLSAgICAgICAgICAgIHNpemVDbGFzc0luZGV4ICog
c2l6ZW9mIE1hcmtlZEFsbG9jYXRvcgotICAgICAgICAKLSAgICAgICAgIyBGSVhNRTogd2UgY2Fu
IGdldCB0aGUgZ2xvYmFsIGRhdGEgaW4gb25lIGxvYWQgZnJvbSB0aGUgc3RhY2suCi0gICAgICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCBzY3JhdGNoMQotICAgICAgICBsb2FkcCBDb2RlQmxvY2s6
Om1fZ2xvYmFsRGF0YVtzY3JhdGNoMV0sIHNjcmF0Y2gxCi0gICAgICAgIAotICAgICAgICAjIEdl
dCB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4gICAgCi0gICAgICAgIGxvYWRwIG9mZnNl
dE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNo
MV0sIHJlc3VsdAotICAgICAgICBidHB6IHJlc3VsdCwgc2xvd0Nhc2UKLSAgICAgICAgCi0gICAg
ICAgICMgUmVtb3ZlIHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LgotICAgICAgICBsb2Fk
cCBbcmVzdWx0XSwgc2NyYXRjaDIKLSAgICAgICAgc3RvcmVwIHNjcmF0Y2gyLCBvZmZzZXRPZk15
U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxbc2NyYXRjaDFdCi0g
ICAgCi0gICAgICAgICMgSW5pdGlhbGl6ZSB0aGUgb2JqZWN0LgotICAgICAgICBsb2FkcCBjbGFz
c0luZm9PZmZzZXRbc2NyYXRjaDFdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIs
IFtyZXN1bHRdCi0gICAgICAgIHN0b3JlcCBzdHJ1Y3R1cmUsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVb
cmVzdWx0XQotICAgICAgICBzdG9yZXAgMCwgSlNPYmplY3Q6Om1faW5oZXJpdG9ySURbcmVzdWx0
XQotICAgICAgICBhZGRwIHNpemVvZiBKU09iamVjdCwgcmVzdWx0LCBzY3JhdGNoMQotICAgICAg
ICBzdG9yZXAgc2NyYXRjaDEsIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVtyZXN1bHRdCi0g
ICAgZW5kCi1lbmQKLQogX2xsaW50X29wX2NyZWF0ZV90aGlzOgogICAgIHRyYWNlRXhlY3V0aW9u
KCkKICAgICBsb2FkaSA4W1BDXSwgdDAKQEAgLTY3NiwyNCArMzg4LDYgQEAgX2xsaW50X29wX25l
d19vYmplY3Q6CiAgICAgZGlzcGF0Y2goMikKIAogCi1fbGxpbnRfb3BfbmV3X2FycmF5OgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdf
YXJyYXkpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbmV3X2FycmF5X2J1ZmZlcjoK
LSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
bmV3X2FycmF5X2J1ZmZlcikKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9uZXdfcmVn
ZXhwOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9uZXdfcmVnZXhwKQotICAgIGRpc3BhdGNoKDMpCi0KLQogX2xsaW50X29wX21vdjoKICAg
ICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQxCkBAIC04MDIsNyArNDk2LDcg
QEAgX2xsaW50X29wX25lcV9udWxsOgogICAgIGRpc3BhdGNoKDMpCiAKIAotbWFjcm8gc3RyaWN0
RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dfcGF0aCkKK21hY3JvIHN0cmljdEVxKGVxdWFsaXR5
T3BlcmF0aW9uLCBzbG93UGF0aCkKICAgICBsb2FkaSAxMltQQ10sIHQyCiAgICAgbG9hZGkgOFtQ
Q10sIHQwCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQpAQCAtODIyLDcg
KzUxNiw3IEBAIG1hY3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93X3AKICAgICBk
aXNwYXRjaCg0KQogCiAuc2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoc2xvd19wYXRoKQorICAgIGNh
bGxTbG93UGF0aChzbG93UGF0aCkKICAgICBkaXNwYXRjaCg0KQogZW5kCiAKQEAgLTgzNiwzMCAr
NTMwLDYgQEAgX2xsaW50X29wX25zdHJpY3RlcToKICAgICBzdHJpY3RFcShtYWNybyAobGVmdCwg
cmlnaHQsIHJlc3VsdCkgY2luZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsIF9sbGludF9zbG93
X3BhdGhfbnN0cmljdGVxKQogCiAKLV9sbGludF9vcF9sZXNzOgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzKQotICAgIGRpc3BhdGNo
KDQpCi0KLQotX2xsaW50X29wX2xlc3NlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbGVzc2VxKQotICAgIGRpc3BhdGNoKDQpCi0KLQot
X2xsaW50X29wX2dyZWF0ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXIpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRf
b3BfZ3JlYXRlcmVxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9ncmVhdGVyZXEpCi0gICAgZGlzcGF0Y2goNCkKLQotCiBfbGxpbnRfb3Bf
cHJlX2luYzoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgNFtQQ10sIHQwCkBAIC05
NjgsNyArNjM4LDcgQEAgX2xsaW50X29wX25lZ2F0ZToKICAgICBkaXNwYXRjaCgzKQogCiAKLW1h
Y3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlLCBkb3VibGVP
cGVyYXRpb24sIHNsb3dfcGF0aCkKK21hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9w
ZXJhdGlvbkFuZFN0b3JlLCBkb3VibGVPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRpIDEy
W1BDXSwgdDIKICAgICBsb2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHQyLCB0MywgdDEpCkBAIC0xMDA2LDE4ICs2NzYsMTggQEAgbWFjcm8gYmluYXJ5T3BDdXN0b21T
dG9yZShpbnRlZ2VyT3BlcmF0aQogICAgIGRpc3BhdGNoKDUpCiAKIC5zbG93OgotICAgIGNhbGxT
bG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3Bh
dGNoKDUpCiBlbmQKIAotbWFjcm8gYmluYXJ5T3AoaW50ZWdlck9wZXJhdGlvbiwgZG91YmxlT3Bl
cmF0aW9uLCBzbG93X3BhdGgpCittYWNybyBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBkb3Vi
bGVPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCiAgICAgICAg
IG1hY3JvIChpbnQzMlRhZywgbGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQogICAgICAgICAgICAg
aW50ZWdlck9wZXJhdGlvbihsZWZ0LCByaWdodCwgc2xvdykKICAgICAgICAgICAgIHN0b3JlaSBp
bnQzMlRhZywgVGFnT2Zmc2V0W2NmciwgaW5kZXgsIDhdCiAgICAgICAgICAgICBzdG9yZWkgcmln
aHQsIFBheWxvYWRPZmZzZXRbY2ZyLCBpbmRleCwgOF0KICAgICAgICAgZW5kLAotICAgICAgICBk
b3VibGVPcGVyYXRpb24sIHNsb3dfcGF0aCkKKyAgICAgICAgZG91YmxlT3BlcmF0aW9uLCBzbG93
UGF0aCkKIGVuZAogCiBfbGxpbnRfb3BfYWRkOgpAQCAtMTA3MywxMyArNzQzLDcgQEAgX2xsaW50
X29wX2RpdjoKICAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9kaXYpCiAKIAotX2xsaW50X29wX21v
ZDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfbW9kKQotICAgIGRpc3BhdGNoKDQpCi0KLQotbWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93
X3BhdGgsIGFkdmFuY2UpCittYWNybyBiaXRPcChvcGVyYXRpb24sIHNsb3dQYXRoLCBhZHZhbmNl
KQogICAgIGxvYWRpIDEyW1BDXSwgdDIKICAgICBsb2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHQyLCB0MywgdDEpCkBAIC0xMDkzLDcgKzc1Nyw3IEBAIG1hY3JvIGJp
dE9wKG9wZXJhdGlvbiwgc2xvd19wYXRoLCBhZHZhbmMKICAgICBkaXNwYXRjaChhZHZhbmNlKQog
CiAuc2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoc2xvd19wYXRoKQorICAgIGNhbGxTbG93UGF0aChz
bG93UGF0aCkKICAgICBkaXNwYXRjaChhZHZhbmNlKQogZW5kCiAKQEAgLTExOTgsNjYgKzg2Miw2
IEBAIF9sbGludF9vcF9pbnN0YW5jZW9mOgogICAgIGRpc3BhdGNoKDUpCiAKIAotX2xsaW50X29w
X3R5cGVvZjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfdHlwZW9mKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX3VuZGVm
aW5lZDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfaXNfdW5kZWZpbmVkKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2lzX2Jv
b2xlYW46Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2lzX2Jvb2xlYW4pCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfbnVt
YmVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9pc19udW1iZXIpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfc3RyaW5n
OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9pc19zdHJpbmcpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfb2JqZWN0Ogot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9p
c19vYmplY3QpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfZnVuY3Rpb246Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lz
X2Z1bmN0aW9uKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2luOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbikKLSAgICBk
aXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9yZXNvbHZlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlKQotICAgIGRpc3BhdGNo
KDQpCi0KLQotX2xsaW50X29wX3Jlc29sdmVfc2tpcDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9za2lwKQotICAgIGRpc3Bh
dGNoKDUpCi0KLQogbWFjcm8gcmVzb2x2ZUdsb2JhbChzaXplLCBzbG93KQogICAgICMgT3BlcmFu
ZHMgYXJlIGFzIGZvbGxvd3M6CiAgICAgIyA0W1BDXSAgIERlc3RpbmF0aW9uIGZvciB0aGUgbG9h
ZC4KQEAgLTE0MDgsMzAgKzEwMTIsNiBAQCBfbGxpbnRfb3BfcHV0X2dsb2JhbF92YXI6CiAgICAg
ZGlzcGF0Y2goMykKIAogCi1fbGxpbnRfb3BfcmVzb2x2ZV9iYXNlOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX2Jhc2UpCi0g
ICAgZGlzcGF0Y2goNSkKLQotCi1fbGxpbnRfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0czoKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZW5z
dXJlX3Byb3BlcnR5X2V4aXN0cykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9yZXNv
bHZlX3dpdGhfYmFzZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRoX2Jhc2UpCi0gICAgZGlzcGF0Y2goNSkKLQotCi1f
bGxpbnRfb3BfcmVzb2x2ZV93aXRoX3RoaXM6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfd2l0aF90aGlzKQotICAgIGRpc3Bh
dGNoKDUpCi0KLQogX2xsaW50X29wX2dldF9ieV9pZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAg
ICAgIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGljIGdldF9ieV9pZCBjYWNoaW5nIGZvciBub3csIGFu
ZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQpAQCAtMTUzOSwxMiArMTExOSw2IEBAIF9sbGludF9vcF9w
dXRfYnlfaWRfdHJhbnNpdGlvbl9ub3JtYWw6CiAgICAgICAgIGVuZCkKIAogCi1fbGxpbnRfb3Bf
ZGVsX2J5X2lkOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9kZWxfYnlfaWQpCi0gICAgZGlzcGF0Y2goNCkKLQotCiBfbGxpbnRfb3BfZ2V0
X2J5X3ZhbDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHQxCkBAIC0xNjU2LDI0ICsxMjMwLDYgQEAgX2xsaW50X29wX3B1dF9ieV92YWw6CiAgICAgZGlz
cGF0Y2goNCkKIAogCi1fbGxpbnRfb3BfZGVsX2J5X3ZhbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVsX2J5X3ZhbCkKLSAgICBkaXNw
YXRjaCg0KQotCi0KLV9sbGludF9vcF9wdXRfYnlfaW5kZXg6Ci0gICAgdHJhY2VFeGVjdXRpb24o
KQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pbmRleCkKLSAgICBk
aXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9wdXRfZ2V0dGVyX3NldHRlcjoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9z
ZXR0ZXIpCi0gICAgZGlzcGF0Y2goNSkKLQotCiBfbGxpbnRfb3BfbG9vcDoKICAgICBub3AKIF9s
bGludF9vcF9qbXA6CkBAIC0xNjgxLDEyICsxMjM3LDYgQEAgX2xsaW50X29wX2ptcDoKICAgICBk
aXNwYXRjaEJyYW5jaCg0W1BDXSkKIAogCi1fbGxpbnRfb3Bfam1wX3Njb3BlczoKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfam1wX3Njb3Bl
cykKLSAgICBkaXNwYXRjaCgwKQotCi0KIG1hY3JvIGp1bXBUcnVlT3JGYWxzZShjb25kaXRpb25P
cCwgc2xvdykKICAgICBsb2FkaSA0W1BDXSwgdDEKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
UGF5bG9hZCh0MSwgQm9vbGVhblRhZywgdDAsIC5zbG93KQpAQCAtMTcwMSwyNiArMTI1MSwxMCBA
QCBtYWNybyBqdW1wVHJ1ZU9yRmFsc2UoY29uZGl0aW9uT3AsIHNsb3cpCiAgICAgZGlzcGF0Y2go
MCkKIGVuZAogCi1fbGxpbnRfb3BfbG9vcF9pZl90cnVlOgotICAgIG5vcAotX2xsaW50X29wX2p0
cnVlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBqdW1wVHJ1ZU9yRmFsc2UoCi0gICAgICAg
IG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGlueiB2YWx1ZSwgdGFyZ2V0IGVuZCwKLSAgICAgICAg
X2xsaW50X3Nsb3dfcGF0aF9qdHJ1ZSkKLQotCi1fbGxpbnRfb3BfbG9vcF9pZl9mYWxzZToKLSAg
ICBub3AKLV9sbGludF9vcF9qZmFsc2U6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGp1bXBU
cnVlT3JGYWxzZSgKLSAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0aXogdmFsdWUsIHRh
cmdldCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93X3BhdGhfamZhbHNlKQotCiAKIG1hY3JvIGVx
dWFsTnVsbChjZWxsSGFuZGxlciwgaW1tZWRpYXRlSGFuZGxlcikKICAgICBsb2FkaSA0W1BDXSwg
dDAKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MCkKICAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0
MCwgOF0sIHQxCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBi
aW5lcSB0MSwgQ2VsbFRhZywgLmltbWVkaWF0ZQpAQCAtMTc2Myw3ICsxMjk3LDcgQEAgX2xsaW50
X29wX2puZXFfcHRyOgogICAgIGRpc3BhdGNoKDQpCiAKIAotbWFjcm8gY29tcGFyZShpbnRlZ2Vy
Q29tcGFyZSwgZG91YmxlQ29tcGFyZSwgc2xvd19wYXRoKQorbWFjcm8gY29tcGFyZShpbnRlZ2Vy
Q29tcGFyZSwgZG91YmxlQ29tcGFyZSwgc2xvd1BhdGgpCiAgICAgbG9hZGkgNFtQQ10sIHQyCiAg
ICAgbG9hZGkgOFtQQ10sIHQzCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDAsIHQx
KQpAQCAtMTc5Nyw4NyArMTMzMSwxMCBAQCBtYWNybyBjb21wYXJlKGludGVnZXJDb21wYXJlLCBk
b3VibGVDb21wCiAgICAgZGlzcGF0Y2hCcmFuY2goMTJbUENdKQogCiAuc2xvdzoKLSAgICBjYWxs
U2xvd1BhdGgoc2xvd19wYXRoKQorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAgICBkaXNw
YXRjaCgwKQogZW5kCiAKLV9sbGludF9vcF9sb29wX2lmX2xlc3M6Ci0gICAgbm9wCi1fbGxpbnRf
b3Bfamxlc3M6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAot
ICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdCBsZWZ0LCByaWdodCwgdGFy
Z2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbGVzcykKLQotCi1fbGxpbnRfb3Bf
am5sZXNzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNy
byAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAot
ICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndGVxdW4gbGVmdCwgcmlnaHQs
IHRhcmdldCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93X3BhdGhfam5sZXNzKQotCi0KLV9sbGlu
dF9vcF9sb29wX2lmX2dyZWF0ZXI6Ci0gICAgbm9wCi1fbGxpbnRfb3BfamdyZWF0ZXI6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCwgdGFyZ2V0KSBiaWd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAo
bGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAg
ICAgX2xsaW50X3Nsb3dfcGF0aF9qZ3JlYXRlcikKLQotCi1fbGxpbnRfb3Bfam5ncmVhdGVyOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHRhcmdldCkgYmlsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdGVxdW4gbGVmdCwgcmlnaHQsIHRhcmdldCBl
bmQsCi0gICAgICAgIF9sbGludF9zbG93X3BhdGhfam5ncmVhdGVyKQotCi0KLV9sbGludF9vcF9s
b29wX2lmX2xlc3NlcToKLSAgICBub3AKLV9sbGludF9vcF9qbGVzc2VxOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdl
dCkgYmlsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHRhcmdldCkgYmRsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBf
bGxpbnRfc2xvd19wYXRoX2psZXNzZXEpCi0KLQotX2xsaW50X29wX2pubGVzc2VxOgotICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHRhcmdldCkgYmlndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3R1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAg
ICAgX2xsaW50X3Nsb3dfcGF0aF9qbmxlc3NlcSkKLQotCi1fbGxpbnRfb3BfbG9vcF9pZl9ncmVh
dGVyZXE6Ci0gICAgbm9wCi1fbGxpbnRfb3BfamdyZWF0ZXJlcToKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJp
Z3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCB0YXJnZXQpIGJkZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50
X3Nsb3dfcGF0aF9qZ3JlYXRlcmVxKQotCi0KLV9sbGludF9vcF9qbmdyZWF0ZXJlcToKLSAgICB0
cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCB0YXJnZXQpIGJpbHQgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAg
ICAgIF9sbGludF9zbG93X3BhdGhfam5ncmVhdGVyZXEpCi0KLQotX2xsaW50X29wX2xvb3BfaGlu
dDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQot
ICAgIGRpc3BhdGNoKDEpCi0KIAogX2xsaW50X29wX3N3aXRjaF9pbW06CiAgICAgdHJhY2VFeGVj
dXRpb24oKQpAQCAtMTkzMywxOSArMTM5MCwxMyBAQCBfbGxpbnRfb3Bfc3dpdGNoX2NoYXI6CiAg
ICAgYmlhZXEgdDAsIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvclNpemVP
ZmZzZXRbdDJdLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKICAgICBsb2FkcCBTaW1wbGVKdW1w
VGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0MgogICAgIGxv
YWRpIFt0MiwgdDAsIDRdLCB0MQotICAgIGJ0aXogdDEsIC5vcFN3aXRjaEltbUZhbGxUaHJvdWdo
CisgICAgYnRpeiB0MSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCiAgICAgZGlzcGF0Y2hCcmFu
Y2hXaXRoT2Zmc2V0KHQxKQogCiAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2g6CiAgICAgZGlzcGF0
Y2hCcmFuY2goOFtQQ10pCiAKIAotX2xsaW50X29wX3N3aXRjaF9zdHJpbmc6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N3aXRjaF9zdHJp
bmcpCi0gICAgZGlzcGF0Y2goMCkKLQotCiBfbGxpbnRfb3BfbmV3X2Z1bmM6CiAgICAgdHJhY2VF
eGVjdXRpb24oKQogICAgIGJ0aXogMTJbUENdLCAub3BOZXdGdW5jVW5jaGVja2VkCkBAIC0xOTU3
LDEzICsxNDA4LDcgQEAgX2xsaW50X29wX25ld19mdW5jOgogICAgIGRpc3BhdGNoKDQpCiAKIAot
X2xsaW50X29wX25ld19mdW5jX2V4cDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmNfZXhwKQotICAgIGRpc3BhdGNoKDMpCi0K
LQotbWFjcm8gZG9DYWxsKHNsb3dfcGF0aCkKK21hY3JvIGRvQ2FsbChzbG93UGF0aCkKICAgICBs
b2FkaSA0W1BDXSwgdDAKICAgICBsb2FkaSAxNltQQ10sIHQxCiAgICAgbG9hZHAgTExJbnRDYWxs
TGlua0luZm86OmNhbGxlZVt0MV0sIHQyCkBAIC0xOTg3LDY2ICsxNDMyLDkgQEAgbWFjcm8gZG9D
YWxsKHNsb3dfcGF0aCkKICAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCiAKIC5vcENhbGxTbG93Ogot
ICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBzbG93X3BhdGgpCisgICAgc2xvd1BhdGhGb3JDYWxsKDYs
IHNsb3dQYXRoKQogZW5kCiAKLV9sbGludF9vcF9jYWxsOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBkb0NhbGwoX2xsaW50X3Nsb3dfcGF0aF9jYWxsKQotCi0KLV9sbGludF9vcF9jb25zdHJ1
Y3Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2Nv
bnN0cnVjdCkKLQotCi1fbGxpbnRfb3BfY2FsbF92YXJhcmdzOgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBzbG93UGF0aEZvckNhbGwoNiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX3ZhcmFyZ3Mp
Ci0KLQotX2xsaW50X29wX2NhbGxfZXZhbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgCi0g
ICAgIyBFdmFsIGlzIGV4ZWN1dGVkIGluIG9uZSBvZiB0d28gbW9kZXM6Ci0gICAgIwotICAgICMg
MSkgV2UgZmluZCB0aGF0IHdlJ3JlIHJlYWxseSBpbnZva2luZyBldmFsKCkgaW4gd2hpY2ggY2Fz
ZSB0aGUKLSAgICAjICAgIGV4ZWN1dGlvbiBpcyBwZXJmb21lZCBlbnRpcmVseSBpbnNpZGUgdGhl
IHNsb3dfcGF0aCwgYW5kIGl0Ci0gICAgIyAgICByZXR1cm5zIHRoZSBQQyBvZiBhIGZ1bmN0aW9u
IHRoYXQganVzdCByZXR1cm5zIHRoZSByZXR1cm4gdmFsdWUKLSAgICAjICAgIHRoYXQgdGhlIGV2
YWwgcmV0dXJuZWQuCi0gICAgIwotICAgICMgMikgV2UgZmluZCB0aGF0IHdlJ3JlIGludm9raW5n
IHNvbWV0aGluZyBjYWxsZWQgZXZhbCgpIHRoYXQgaXMgbm90Ci0gICAgIyAgICB0aGUgcmVhbCBl
dmFsLiBUaGVuIHRoZSBzbG93X3BhdGggcmV0dXJucyB0aGUgUEMgb2YgdGhlIHRoaW5nIHRvCi0g
ICAgIyAgICBjYWxsLCBhbmQgd2UgY2FsbCBpdC4KLSAgICAjCi0gICAgIyBUaGlzIGFsbG93cyB1
cyB0byBoYW5kbGUgdHdvIGNhc2VzLCB3aGljaCB3b3VsZCByZXF1aXJlIGEgdG90YWwgb2YKLSAg
ICAjIHVwIHRvIGZvdXIgcGllY2VzIG9mIHN0YXRlIHRoYXQgY2Fubm90IGJlIGVhc2lseSBwYWNr
ZWQgaW50byB0d28KLSAgICAjIHJlZ2lzdGVycyAoQyBmdW5jdGlvbnMgY2FuIHJldHVybiB1cCB0
byB0d28gcmVnaXN0ZXJzLCBlYXNpbHkpOgotICAgICMKLSAgICAjIC0gVGhlIGNhbGwgZnJhbWUg
cmVnaXN0ZXIuIFRoaXMgbWF5IG9yIG1heSBub3QgaGF2ZSBiZWVuIG1vZGlmaWVkCi0gICAgIyAg
IGJ5IHRoZSBzbG93X3BhdGgsIGJ1dCB0aGUgY29udmVudGlvbiBpcyB0aGF0IGl0IHJldHVybnMg
aXQuIEl0J3Mgbm90Ci0gICAgIyAgIHRvdGFsbHkgY2xlYXIgaWYgdGhhdCdzIG5lY2Vzc2FyeSwg
c2luY2UgdGhlIGNmciBpcyBjYWxsZWUgc2F2ZS4KLSAgICAjICAgQnV0IHRoYXQncyBvdXIgc3R5
bGUgaW4gdGhpcyBoZXJlIGludGVycHJldGVyIHNvIHdlIHN0aWNrIHdpdGggaXQuCi0gICAgIwot
ICAgICMgLSBBIGJpdCB0byBzYXkgaWYgdGhlIHNsb3dfcGF0aCBzdWNjZXNzZnVsbHkgZXhlY3V0
ZWQgdGhlIGV2YWwgYW5kIGhhcwotICAgICMgICB0aGUgcmV0dXJuIHZhbHVlLCBvciBkaWQgbm90
IGV4ZWN1dGUgdGhlIGV2YWwgYnV0IGhhcyBhIFBDIGZvciB1cwotICAgICMgICB0byBjYWxsLgot
ICAgICMKLSAgICAjIC0gRWl0aGVyOgotICAgICMgICAtIFRoZSBKUyByZXR1cm4gdmFsdWUgKHR3
byByZWdpc3RlcnMpLCBvcgotICAgICMKLSAgICAjICAgLSBUaGUgUEMgdG8gY2FsbC4KLSAgICAj
Ci0gICAgIyBJdCB0dXJucyBvdXQgdG8gYmUgZWFzaWVyIHRvIGp1c3QgYWx3YXlzIGhhdmUgdGhp
cyByZXR1cm4gdGhlIGNmcgotICAgICMgYW5kIGEgUEMgdG8gY2FsbCwgYW5kIHRoYXQgUEMgbWF5
IGJlIGEgZHVtbXkgdGh1bmsgdGhhdCBqdXN0Ci0gICAgIyByZXR1cm5zIHRoZSBKUyB2YWx1ZSB0
aGF0IHRoZSBldmFsIHJldHVybmVkLgotICAgIAotICAgIHNsb3dQYXRoRm9yQ2FsbCg0LCBfbGxp
bnRfc2xvd19wYXRoX2NhbGxfZXZhbCkKLQotCi1fbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQ6
Ci0gICAgZGlzcGF0Y2hBZnRlckNhbGwoKQotCiAKIF9sbGludF9vcF90ZWFyX29mZl9hY3RpdmF0
aW9uOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKQEAgLTIwNzAsMTMgKzE0NTgsNiBAQCBfbGxpbnRf
b3BfdGVhcl9vZmZfYXJndW1lbnRzOgogICAgIGRpc3BhdGNoKDIpCiAKIAotbWFjcm8gZG9SZXR1
cm4oKQotICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAgbG9hZHAgQ2FsbGVyRnJhbWVb
Y2ZyXSwgY2ZyCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCi0gICAg
cmV0Ci1lbmQKLQogX2xsaW50X29wX3JldDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2hl
Y2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKQEAgLTIxMTEsMTggKzE0OTIsNiBAQCBfbGxpbnRf
b3BfcmV0X29iamVjdF9vcl90aGlzOgogICAgIGRvUmV0dXJuKCkKIAogCi1fbGxpbnRfb3BfbWV0
aG9kX2NoZWNrOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICAjIFdlIGlnbm9yZSBtZXRob2Qg
Y2hlY2tzIGFuZCB1c2Ugbm9ybWFsIGdldF9ieV9pZCBvcHRpbWl6YXRpb25zLgotICAgIGRpc3Bh
dGNoKDEpCi0KLQotX2xsaW50X29wX3N0cmNhdDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3RyY2F0KQotICAgIGRpc3BhdGNoKDQpCi0K
LQogX2xsaW50X29wX3RvX3ByaW1pdGl2ZToKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9h
ZGkgOFtQQ10sIHQyCkBAIC0yMTQxLDEyICsxNTEwLDYgQEAgX2xsaW50X29wX3RvX3ByaW1pdGl2
ZToKICAgICBkaXNwYXRjaCgzKQogCiAKLV9sbGludF9vcF9nZXRfcG5hbWVzOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfcG5hbWVz
KQotICAgIGRpc3BhdGNoKDApICMgVGhlIHNsb3dfcGF0aCBlaXRoZXIgYWR2YW5jZXMgdGhlIFBD
IG9yIGp1bXBzIHVzIHRvIHNvbWV3aGVyZSBlbHNlLgotCi0KIF9sbGludF9vcF9uZXh0X3BuYW1l
OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSAxMltQQ10sIHQxCkBAIC0yMTg3LDI0
ICsxNTUwLDYgQEAgX2xsaW50X29wX25leHRfcG5hbWU6CiAgICAgZGlzcGF0Y2goMCkKIAogCi1f
bGxpbnRfb3BfcHVzaF9zY29wZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfcHVzaF9zY29wZSkKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9s
bGludF9vcF9wb3Bfc2NvcGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3BvcF9zY29wZSkKLSAgICBkaXNwYXRjaCgxKQotCi0KLV9sbGlu
dF9vcF9wdXNoX25ld19zY29wZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfcHVzaF9uZXdfc2NvcGUpCi0gICAgZGlzcGF0Y2goNCkKLQot
CiBfbGxpbnRfb3BfY2F0Y2g6CiAgICAgIyBUaGlzIGlzIHdoZXJlIHdlIGVuZCB1cCBmcm9tIHRo
ZSBKSVQncyB0aHJvdyB0cmFtcG9saW5lIChiZWNhdXNlIHRoZQogICAgICMgbWFjaGluZSBjb2Rl
IHJldHVybiBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRjaCksIGFuZCBmcm9t
CkBAIC0yMjI2LDE4ICsxNTcxLDYgQEAgX2xsaW50X29wX2NhdGNoOgogICAgIGRpc3BhdGNoKDIp
CiAKIAotX2xsaW50X29wX3Rocm93OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvdykKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGlu
dF9vcF90aHJvd19yZWZlcmVuY2VfZXJyb3I6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Rocm93X3JlZmVyZW5jZV9lcnJvcikKLSAgICBk
aXNwYXRjaCgyKQotCi0KIF9sbGludF9vcF9qc3I6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAg
IGxvYWRpIDRbUENdLCB0MApAQCAtMjI1MywzNCArMTU4NiwxMSBAQCBfbGxpbnRfb3Bfc3JldDoK
ICAgICBkaXNwYXRjaCgwKQogCiAKLV9sbGludF9vcF9kZWJ1ZzoKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVidWcpCi0gICAgZGlzcGF0
Y2goNCkKLQotCi1fbGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgdHJhY2VFeGVjdXRp
b24oKQotICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZVtz
cF0sIHQwCi0gICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCi0gICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpCi0ub3BQcm9maWxlV2ls
bENhbGxEb25lOgotICAgIGRpc3BhdGNoKDIpCi0KLQotX2xsaW50X29wX3Byb2ZpbGVfZGlkX2Nh
bGw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJs
ZWRQcm9maWxlclJlZmVyZW5jZVtzcF0sIHQwCi0gICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2ls
bENhbGxEb25lCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV9kaWRf
Y2FsbCkKLS5vcFByb2ZpbGVEaWRDYWxsRG9uZToKLSAgICBkaXNwYXRjaCgyKQotCi0KIF9sbGlu
dF9vcF9lbmQ6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JF
cGlsb2d1ZSgpCiAgICAgbG9hZGkgNFtQQ10sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDAp
CiAgICAgbG9hZGkgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCB0MQogICAgIGxvYWRpIFBheWxvYWRP
ZmZzZXRbY2ZyLCB0MCwgOF0sIHQwCiAgICAgZG9SZXR1cm4oKQpAQCAtMjM0MSw3OSArMTY1MSwz
IEBAIG1hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmYKICAgICBqbXAgX2xs
aW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKIGVuZAogCi1fbGxpbnRfbmF0aXZl
X2NhbGxfdHJhbXBvbGluZToKLSAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRh
YmxlOjptX2Z1bmN0aW9uKQotCi0KLV9sbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmU6
Ci0gICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0YWJsZTo6bV9jb25zdHJ1Y3Rv
cikKLQotCi0jIExhc3RseSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2gg
d2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KLSMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2
ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKLSMgYXMg
bXVjaC4KLQotbWFjcm8gbm90U3VwcG9ydGVkKCkKLSAgICBpZiBBU1NFUlRfRU5BQkxFRAotICAg
ICAgICBjcmFzaCgpCi0gICAgZWxzZQotICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIg
dGhlIHNtYWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCi0gICAgICAgICMg
ZW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMuIElm
IG11bHRpcGxlCi0gICAgICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91
bGQgcGljayB0aGUgb25lIHRoYXQgaXMgbW9zdAotICAgICAgICAjIGxpa2VseSByZXN1bHQgaW4g
ZXhlY3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCi0gICAg
ICAgICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3RlZCBp
bi4gKEJyZWFrIGlzIGludDMKLSAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRlLCBh
bmQgYmtwdCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRlcy4pCi0gICAgICAgIGJyZWFrCi0gICAg
ZW5kCi1lbmQKLQotX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6Ci0gICAgbm90U3VwcG9ydGVk
KCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1f
bGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1f
bGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1f
bGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9s
bGludF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRf
b3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRf
b3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRf
b3BfZ2V0X2J5X2lkX2dldHRlcl9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9v
cF9nZXRfYnlfaWRfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9i
eV9pZF9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfc3RyaW5nX2xl
bmd0aDoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6
Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgotICAg
IG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKLSAgICBu
b3RTdXBwb3J0ZWQoKQotCi0KLSMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KLV9sbGludF9l
bmQ6Ci0gICAgY3Jhc2goKQotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2aXNpb24gMTEwMzQ2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHdv
cmtpbmcgY29weSkKQEAgLTIyLDYgKzIyLDE0NjkgQEAKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogCiAKLSMgTm90IHN1cHBvcnRlZCB5ZXQsIHNvIGdpdmUgdXAuCi1lcnJvcgor
IyBTb21lIHZhbHVlIHJlcHJlc2VudGF0aW9uIGNvbnN0YW50cy4KK2NvbnN0IFRhZ0JpdFR5cGVP
dGhlciA9IDB4MgorY29uc3QgVGFnQml0Qm9vbCAgICAgID0gMHg0Citjb25zdCBUYWdCaXRVbmRl
ZmluZWQgPSAweDgKK2NvbnN0IFZhbHVlRW1wdHkgICAgICA9IDB4MAorY29uc3QgVmFsdWVGYWxz
ZSAgICAgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbAorY29uc3QgVmFsdWVUcnVlICAg
ICAgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0Qm9vbCB8IDEKK2NvbnN0IFZhbHVlVW5kZWZp
bmVkICA9IFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0JpdFVuZGVmaW5lZAorY29uc3QgVmFsdWVOdWxs
ICAgICAgID0gVGFnQml0VHlwZU90aGVyCisKKyMgVXRpbGl0aWVzLgorbWFjcm8gZGlzcGF0Y2go
YWR2YW5jZSkKKyAgICBhZGRwIGFkdmFuY2UsIFBDCisgICAgam1wIFtQQiwgUEMsIDhdCitlbmQK
KworbWFjcm8gZGlzcGF0Y2hJbnQoYWR2YW5jZSkKKyAgICBhZGRpIGFkdmFuY2UsIFBDCisgICAg
am1wIFtQQiwgUEMsIDhdCitlbmQKKworbWFjcm8gZGlzcGF0Y2hBZnRlckNhbGwoKQorICAgIGxv
YWRpIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKKyAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgUEIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW1BCXSwgUEIK
KyAgICBqbXAgW1BCLCBQQywgOF0KK2VuZAorCittYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEs
IGFyZzIpCisgICAgbW92ZSBhcmcxLCB0NQorICAgIG1vdmUgYXJnMiwgdDQKKyAgICBjYWxsIGZ1
bmN0aW9uCitlbmQKKworIyBUaGlzIGJhcmVseSB3b3Jrcy4gYXJnMyBhbmQgYXJnNCBzaG91bGQg
cHJvYmFibHkgYmUgaW1tZWRpYXRlcy4KK21hY3JvIGNDYWxsNChmdW5jdGlvbiwgYXJnMSwgYXJn
MiwgYXJnMywgYXJnNCkKKyAgICBtb3ZlIGFyZzEsIHQ1CisgICAgbW92ZSBhcmcyLCB0NAorICAg
IG1vdmUgYXJnMywgdDEKKyAgICBtb3ZlIGFyZzQsIHQyCisgICAgY2FsbCBmdW5jdGlvbgorZW5k
CisKK21hY3JvIHByZXBhcmVTdGF0ZUZvckNDYWxsKCkKKyAgICBsZWFwIFtQQiwgUEMsIDhdLCBQ
QworICAgIG1vdmUgUEIsIHQzCitlbmQKKworbWFjcm8gcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgp
CisgICAgbW92ZSB0MCwgUEMKKyAgICBtb3ZlIHQxLCBjZnIKKyAgICBtb3ZlIHQzLCBQQgorICAg
IHN1YnAgUEIsIFBDCisgICAgdXJzaGlmdHAgMywgUEMKK2VuZAorCittYWNybyBjYWxsU2xvd1Bh
dGgoc2xvd1BhdGgpCisgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsMihzbG93
UGF0aCwgY2ZyLCBQQykKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKK2VuZAorCittYWNy
byB0cmFjZU9wZXJhbmQoZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHByZXBhcmVTdGF0ZUZvckND
YWxsKCkKKyAgICBjQ2FsbDQoX2xsaW50X3RyYWNlX29wZXJhbmQsIGNmciwgUEMsIGZyb21XaGVy
ZSwgb3BlcmFuZCkKKyAgICByZXN0b3JlU3RhdGVBZnRlckNDYWxsKCkKK2VuZAorCittYWNybyB0
cmFjZVZhbHVlKGZyb21XaGVyZSwgb3BlcmFuZCkKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgp
CisgICAgY0NhbGw0KF9sbGludF90cmFjZV92YWx1ZSwgY2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVy
YW5kKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwoKQorZW5kCisKKyMgQ2FsbCBhIHNsb3cg
cGF0aCBmb3IgY2FsbCBjYWxsIG9wY29kZXMuCittYWNybyBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFu
Y2UsIHNsb3dQYXRoLCBhY3Rpb24pCisgICAgYWRkaSBhZHZhbmNlLCBQQywgdDAKKyAgICBzdG9y
ZWkgdDAsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQorICAgIHByZXBhcmVTdGF0ZUZv
ckNDYWxsKCkKKyAgICBjQ2FsbDIoc2xvd1BhdGgsIGNmciwgUEMpCisgICAgbW92ZSB0MSwgY2Zy
CisgICAgYWN0aW9uKHQwKQorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkK
KyAgICBjaGVja1N3aXRjaFRvSklUKAorICAgICAgICAxLAorICAgICAgICBtYWNybygpCisgICAg
ICAgICAgICBzdG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQorICAgICAg
ICAgICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgICAgICAgICAgY0NhbGwyKF9sbGludF9s
b29wX29zciwgY2ZyLCBQQykKKyAgICAgICAgICAgIG1vdmUgdDEsIGNmcgorICAgICAgICAgICAg
YnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgICAgIGptcCB0MAorICAgICAgICAucmVjb3ZlcjoK
KyAgICAgICAgICAgIGxvYWRwIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXSwgUEMKKyAg
ICAgICAgZW5kKQorZW5kCisKKyMgSW5kZXggYW5kIHZhbHVlIG11c3QgYmUgZGlmZmVyZW50IHJl
Z2lzdGVycy4gSW5kZXggbWF5IGJlIGNsb2JiZXJlZC4KK21hY3JvIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoaW5kZXgsIHZhbHVlKQorICAgIGJwZ3RlcSBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lz
dGVySW5kZXgsIC5jb25zdGFudAorICAgIGxvYWRwIFtjZnIsIGluZGV4LCA4XSwgdmFsdWUKKyAg
ICBqbXAgLmRvbmUKKy5jb25zdGFudDoKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdmFsdWUK
KyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fY29uc3RhbnRSZWdpc3RlcnMgKyBWZWN0b3JCdWZmZXJP
ZmZzZXRbdmFsdWVdLCB2YWx1ZQorICAgIHN1YnAgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgs
IGluZGV4CisgICAgbG9hZHAgW3ZhbHVlLCBpbmRleCwgOF0sIHZhbHVlCisuZG9uZToKK2VuZAor
CittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIoaW5kZXgsIHZhbHVlLCBzbG93KQor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoaW5kZXgsIHZhbHVlKQorICAgIGJwYiB2YWx1ZSwg
dGFnVHlwZU51bWJlciwgc2xvdworZW5kCisKK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGVD
ZWxsKGluZGV4LCB2YWx1ZSwgc2xvdykKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4
LCB2YWx1ZSkKKyAgICBidHBueiB2YWx1ZSwgdGFnTWFzaywgc2xvdworZW5kCisKK21hY3JvIHdy
aXRlQmFycmllcih2YWx1ZSkKKyAgICAjIE5vdGhpbmcgdG8gZG8sIHNpbmNlIHdlIGRvbid0IGhh
dmUgYSBnZW5lcmF0aW9uYWwgb3IgaW5jcmVtZW50YWwgY29sbGVjdG9yLgorZW5kCisKK21hY3Jv
IHZhbHVlUHJvZmlsZSh2YWx1ZSwgcHJvZmlsZSkKKyAgICBpZiBWQUxVRV9QUk9GSUxFUgorICAg
ICAgICBzdG9yZXAgdmFsdWUsIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzW3Byb2ZpbGVdCisgICAg
ZW5kCitlbmQKKworCisjIEVudHJ5cG9pbnRzIGludG8gdGhlIGludGVycHJldGVyLgorCisjIEV4
cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBs
ZWF2ZXMgYmVoaW5kLgorbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19w
YXRoKQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nmcl0sIHQwCisg
ICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgZG9uZUxhYmVsCisg
ICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMp
ICAgIyBUaGlzIHNsb3dfcGF0aCBoYXMgYSBzaW1wbGUgcHJvdG9jb2w6IHQwID0gMCA9PiBubyBl
cnJvciwgdDAgIT0gMCA9PiBlcnJvcgorICAgIG1vdmUgdDEsIGNmcgorICAgIGJ0aXogdDAsIC5j
b250aW51ZQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MQorICAg
IGxvYWRwIEpTR2xvYmFsRGF0YTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDFdLCB0MAorICAgIGptcCBK
U0dsb2JhbERhdGE6OnRhcmdldE1hY2hpbmVQQ0ZvclRocm93W3QxXQorLmNvbnRpbnVlOgorICAg
ICMgUmVsb2FkIENvZGVCbG9jayBhbmQgcmVzZXQgUEMsIHNpbmNlIHRoZSBzbG93X3BhdGggY2xv
YmJlcmVkIHRoZW0uCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAgbG9hZHAgQ29k
ZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBCCisgICAgbW92ZSAwLCBQQworICAgIGptcCBk
b25lTGFiZWwKK2VuZAorCisKKyMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCisKK19sbGlu
dF9vcF9lbnRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHQyCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bVZhcnNbdDJdLCB0MgorICAgIGJ0aXog
dDIsIC5vcEVudGVyRG9uZQorICAgIG1vdmUgVmFsdWVVbmRlZmluZWQsIHQwCisub3BFbnRlckxv
b3A6CisgICAgc3ViaSAxLCB0MgorICAgIHN0b3JlcCB0MCwgW2NmciwgdDIsIDhdCisgICAgYnRp
bnogdDIsIC5vcEVudGVyTG9vcAorLm9wRW50ZXJEb25lOgorICAgIGRpc3BhdGNoKDEpCisKKwor
X2xsaW50X29wX2NyZWF0ZV9hY3RpdmF0aW9uOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBs
b2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGJwbmVxIFtjZnIsIHQwLCA4XSwgVmFsdWVFbXB0
eSwgLm9wQ3JlYXRlQWN0aXZhdGlvbkRvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9jcmVhdGVfYWN0aXZhdGlvbikKKy5vcENyZWF0ZUFjdGl2YXRpb25Eb25lOgorICAgIGRp
c3BhdGNoKDIpCisKKworX2xsaW50X29wX2luaXRfbGF6eV9yZWc6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgc3RvcmVwIFZhbHVlRW1wdHks
IFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2NyZWF0ZV9hcmd1
bWVudHM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQw
CisgICAgYnBuZXEgW2NmciwgdDAsIDhdLCBWYWx1ZUVtcHR5LCAub3BDcmVhdGVBcmd1bWVudHNE
b25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX2FyZ3VtZW50cykK
Ky5vcENyZWF0ZUFyZ3VtZW50c0RvbmU6CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3Bf
Y3JlYXRlX3RoaXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMs
IDhdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQorICAgIGxvYWRwIFtjZnIsIHQwLCA4
XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBsb2Fk
cCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJ
bmZvICsgVHlwZUluZm86Om1fdHlwZVt0MV0sIE9iamVjdFR5cGUsIC5vcENyZWF0ZVRoaXNTbG93
CisgICAgbG9hZHAgSlNPYmplY3Q6Om1faW5oZXJpdG9ySURbdDBdLCB0MgorICAgIGJ0cHogdDIs
IC5vcENyZWF0ZVRoaXNTbG93CisgICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmpl
Y3RTaXplQ2xhc3NJbmRleCwgSlNHbG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0
MiwgdDAsIHQxLCB0MywgLm9wQ3JlYXRlVGhpc1Nsb3cpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4
XSwgdDEKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5v
cENyZWF0ZVRoaXNTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0
ZV90aGlzKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2dldF9jYWxsZWU6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAg
Q2FsbGVlW2Nmcl0sIHQxCisgICAgc3RvcmVwIHQxLCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRj
aCgyKQorCisKK19sbGludF9vcF9jb252ZXJ0X3RoaXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MAor
ICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAub3BDb252ZXJ0VGhpc1Nsb3cKKyAgICBsb2FkcCBKU0Nl
bGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsg
VHlwZUluZm86Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcENvbnZlcnRUaGlzU2xvdworICAg
IGRpc3BhdGNoKDIpCisKKy5vcENvbnZlcnRUaGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9jb252ZXJ0X3RoaXMpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRf
b3BfbmV3X29iamVjdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisg
ICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZW1wdHlPYmplY3RTdHJ1Y3R1cmVbdDBdLCB0MQor
ICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpT
R2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENsYXNzSW5mbywgdDEsIHQwLCB0MiwgdDMsIC5vcE5l
d09iamVjdFNsb3cpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDAs
IFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKy5vcE5ld09iamVjdFNsb3c6CisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X29iamVjdCkKKyAgICBkaXNwYXRjaCgy
KQorCisKK19sbGludF9vcF9tb3Y6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAx
NltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MSwgdDIpCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MCwgOF0KKyAg
ICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9ub3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQx
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDIpCisgICAgeG9ycCBWYWx1ZUZhbHNl
LCB0MgorICAgIGJ0cG56IHQyLCB+MSwgLm9wTm90U2xvdworICAgIHhvcnAgVmFsdWVUcnVlLCB0
MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wTm90
U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ub3QpCisgICAgZGlzcGF0
Y2goMykKKworCittYWNybyBlcXVhbGl0eUNvbXBhcmlzb24oaW50ZWdlckNvbXBhcmlzb24sIHNs
b3dQYXRoKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwg
dDAKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MCwgdDEsIC5zbG93KQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MiwgdDAsIC5zbG93KQorICAgIGludGVnZXJD
b21wYXJpc29uKHQwLCB0MSwgdDApCisgICAgb3JwIFZhbHVlRmFsc2UsIHQwCisgICAgc3RvcmVw
IHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg0KQorCisuc2xvdzoKKyAgICBjYWxsU2xv
d1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goNCkKK2VuZAorCitfbGxpbnRfb3BfZXE6Cisg
ICAgZXF1YWxpdHlDb21wYXJpc29uKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3Vs
dCkgY2llcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9lcSkKKworCitfbGxpbnRfb3BfbmVxOgorICAgIGVxdWFsaXR5Q29tcGFyaXNvbigKKyAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQg
ZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX25lcSkKKworCittYWNybyBlcXVhbE51bGxD
b21wYXJpc29uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBbY2Zy
LCB0MCwgOF0sIHQwCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5pbW1lZGlhdGUKKyAgICBsb2Fk
cCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDIKKyAgICB0Ym56IFN0cnVjdHVyZTo6bV90eXBl
SW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QyXSwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgdDAK
KyAgICBqbXAgLmRvbmUKKy5pbW1lZGlhdGU6CisgICAgYW5kcCB+VGFnQml0VW5kZWZpbmVkLCB0
MAorICAgIGNwZXEgdDAsIFZhbHVlTnVsbCwgdDAKKy5kb25lOgorZW5kCisKK19sbGludF9vcF9l
cV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGxDb21wYXJpc29uKCkK
KyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAg
IHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bf
bmVxX251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbENvbXBhcmlzb24o
KQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgeG9ycCBWYWx1ZVRydWUsIHQwCisg
ICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisKK21hY3JvIHN0
cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0s
IHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEpCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MiwgdDApCisgICAgbW92ZSB0MCwgdDIKKyAgICBvcnAgdDEsIHQyCisgICAg
YnRweiB0MiwgdGFnTWFzaywgLnNsb3cKKyAgICBicGFlcSB0MCwgdGFnVHlwZU51bWJlciwgLmxl
ZnRPSworICAgIGJ0cG56IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworLmxlZnRPSzoKKyAgICBi
cGFlcSB0MSwgdGFnVHlwZU51bWJlciwgLnJpZ2h0T0sKKyAgICBidHBueiB0MSwgdGFnVHlwZU51
bWJlciwgLnNsb3cKKy5yaWdodE9LOgorICAgIGVxdWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDAp
CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBvcnAgVmFsdWVGYWxzZSwgdDAKKyAg
ICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5zbG93OgorICAg
IGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCg0KQorZW5kCisKK19sbGludF9v
cF9zdHJpY3RlcToKKyAgICBzdHJpY3RFcSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBy
ZXN1bHQpIGNwZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfc3RyaWN0ZXEpCisKKworX2xsaW50X29wX25zdHJpY3RlcToKKyAgICBzdHJpY3RFcSgK
KyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNwbmVxIGxlZnQsIHJpZ2h0LCBy
ZXN1bHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX25zdHJpY3RlcSkKKworCittYWNy
byBwcmVPcChhcml0aG1ldGljT3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0s
IHQxCisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFyaXRobWV0aWNPcGVy
YXRpb24odDEsIC5zbG93KQorICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIHN0b3JlcCB0
MSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikKKworLnNsb3c6CisgICAgY2FsbFNsb3dQ
YXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDIpCitlbmQKKworX2xsaW50X29wX3ByZV9pbmM6
CisgICAgcHJlT3AoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYmFkZGlvIDEsIHZhbHVl
LCBzbG93IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wcmVfaW5jKQorCisKK19sbGlu
dF9vcF9wcmVfZGVjOgorICAgIHByZU9wKAorICAgICAgICBtYWNybyAodmFsdWUsIHNsb3cpIGJz
dWJpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfcHJlX2Rl
YykKKworCittYWNybyBwb3N0T3AoYXJpdGhtZXRpY09wZXJhdGlvbiwgc2xvd1BhdGgpCisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRp
cyA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0MgorICAgIGJpZXEg
dDAsIHQxLCAuZG9uZQorICAgIGJwYiB0MiwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBtb3Zl
IHQyLCB0MworICAgIGFyaXRobWV0aWNPcGVyYXRpb24odDMsIC5zbG93KQorICAgIG9ycCB0YWdU
eXBlTnVtYmVyLCB0MworICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgc3RvcmVwIHQz
LCBbY2ZyLCB0MCwgOF0KKy5kb25lOgorICAgIGRpc3BhdGNoKDMpCisKKy5zbG93OgorICAgIGNh
bGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgzKQorZW5kCisKK19sbGludF9vcF9w
b3N0X2luYzoKKyAgICBwb3N0T3AoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYmFkZGlv
IDEsIHZhbHVlLCBzbG93IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wb3N0X2luYykK
KworCitfbGxpbnRfb3BfcG9zdF9kZWM6CisgICAgcG9zdE9wKAorICAgICAgICBtYWNybyAodmFs
dWUsIHNsb3cpIGJzdWJpbyAxLCB2YWx1ZSwgc2xvdyBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfcG9zdF9kZWMpCisKKworX2xsaW50X29wX3RvX2pzbnVtYmVyOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwg
UEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIGJwYWVx
IHQyLCB0YWdUeXBlTnVtYmVyLCAub3BUb0pzbnVtYmVySXNJbW1lZGlhdGUKKyAgICBidHB6IHQy
LCB0YWdNYXNrLCAub3BUb0pzbnVtYmVyU2xvdworLm9wVG9Kc251bWJlcklzSW1tZWRpYXRlOgor
ICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMykKKworLm9wVG9Kc251
bWJlclNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdG9fanNudW1iZXIp
CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfbmVnYXRlOgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMs
IDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyKQorICAgIGJwYiB0Miwg
dGFnVHlwZU51bWJlciwgLm9wTmVnYXRlTm90SW50CisgICAgYnRpeiB0MiwgMHg3ZmZmZmZmZiwg
Lm9wTmVnYXRlU2xvdworICAgIG5lZ2kgdDIKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDIKKyAg
ICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisub3BOZWdhdGVOb3RJ
bnQ6CisgICAgYnRweiB0MiwgdGFnVHlwZU51bWJlciwgLm9wTmVnYXRlU2xvdworICAgIHhvcnAg
MHg4MDAwMDAwMDAwMDAwMDAwLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAg
ZGlzcGF0Y2goMykKKworLm9wTmVnYXRlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9uZWdhdGUpCisgICAgZGlzcGF0Y2goMykKKworCittYWNybyBiaW5hcnlPcEN1c3Rv
bVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0
aCkKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4
XSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MSkKKyAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1iZXIsIC5vcDFOb3RJ
bnQKKyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJOb3RJbnQKKyAgICBsb2FkaXMgOFtQ
QiwgUEMsIDhdLCB0MgorICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MSwgdDAsIC5zbG93
LCB0MikKKyAgICBkaXNwYXRjaCg1KQorCisub3AxTm90SW50OgorICAgICMgRmlyc3Qgb3BlcmFu
ZCBpcyBkZWZpbml0ZWx5IG5vdCBhbiBpbnQsIHRoZSBzZWNvbmQgb3BlcmFuZCBjb3VsZCBiZSBh
bnl0aGluZy4KKyAgICBidHB6IHQwLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGJwYWVxIHQx
LCB0YWdUeXBlTnVtYmVyLCAub3AxTm90SW50T3AySW50CisgICAgYnRweiB0MSwgdGFnVHlwZU51
bWJlciwgLnNsb3cKKyAgICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQxCisgICAgZnAyZCB0MSwgZnQx
CisgICAgam1wIC5vcDFOb3RJbnRSZWFkeQorLm9wMU5vdEludE9wMkludDoKKyAgICBjaTJkIHQx
LCBmdDEKKy5vcDFOb3RJbnRSZWFkeToKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MgorICAg
IGFkZHAgdGFnVHlwZU51bWJlciwgdDAKKyAgICBmcDJkIHQwLCBmdDAKKyAgICBkb3VibGVPcGVy
YXRpb24oZnQxLCBmdDApCisgICAgZmQycCBmdDAsIHQwCisgICAgc3VicCB0YWdUeXBlTnVtYmVy
LCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDIsIDhdCisgICAgZGlzcGF0Y2goNSkKKworLm9w
Mk5vdEludDoKKyAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBhbiBpbnQsIHRoZSBz
ZWNvbmQgaXMgZGVmaW5pdGVseSBub3QuCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIKKyAg
ICBidHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGNpMmQgdDAsIGZ0MAorICAgIGFk
ZHAgdGFnVHlwZU51bWJlciwgdDEKKyAgICBmcDJkIHQxLCBmdDEKKyAgICBkb3VibGVPcGVyYXRp
b24oZnQxLCBmdDApCisgICAgZmQycCBmdDAsIHQwCisgICAgc3VicCB0YWdUeXBlTnVtYmVyLCB0
MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDIsIDhdCisgICAgZGlzcGF0Y2goNSkKKworLnNsb3c6
CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDUpCitlbmQKKworbWFj
cm8gYmluYXJ5T3AoaW50ZWdlck9wZXJhdGlvbiwgZG91YmxlT3BlcmF0aW9uLCBzbG93UGF0aCkK
KyAgICBiaW5hcnlPcEN1c3RvbVN0b3JlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNs
b3csIGluZGV4KQorICAgICAgICAgICAgaW50ZWdlck9wZXJhdGlvbihsZWZ0LCByaWdodCwgc2xv
dykKKyAgICAgICAgICAgIG9ycCB0YWdUeXBlTnVtYmVyLCByaWdodAorICAgICAgICAgICAgc3Rv
cmVwIHJpZ2h0LCBbY2ZyLCBpbmRleCwgOF0KKyAgICAgICAgZW5kLAorICAgICAgICBkb3VibGVP
cGVyYXRpb24sIHNsb3dQYXRoKQorZW5kCisKK19sbGludF9vcF9hZGQ6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGJpbmFyeU9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cp
IGJhZGRpbyBsZWZ0LCByaWdodCwgc2xvdyBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdo
dCkgYWRkZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfYWRkKQor
CisKK19sbGludF9vcF9tdWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCisgICAg
ICAgICAgICAjIEFzc3VtZSB0MyBpcyBzY3JhdGNoYWJsZS4KKyAgICAgICAgICAgIG1vdmUgcmln
aHQsIHQzCisgICAgICAgICAgICBibXVsaW8gbGVmdCwgdDMsIHNsb3cKKyAgICAgICAgICAgIGJ0
aW56IHQzLCAuZG9uZQorICAgICAgICAgICAgYmlsdCBsZWZ0LCAwLCBzbG93CisgICAgICAgICAg
ICBiaWx0IHJpZ2h0LCAwLCBzbG93CisgICAgICAgIC5kb25lOgorICAgICAgICAgICAgb3JwIHRh
Z1R5cGVOdW1iZXIsIHQzCisgICAgICAgICAgICBzdG9yZXAgdDMsIFtjZnIsIGluZGV4LCA4XQor
ICAgICAgICBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkgbXVsZCBsZWZ0LCByaWdo
dCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfbXVsKQorCisKK19sbGludF9vcF9zdWI6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpbmFyeU9wKAorICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHNsb3cpIGJzdWJpbyBsZWZ0LCByaWdodCwgc2xvdyBlbmQsCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCkgc3ViZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9z
bG93X3BhdGhfc3ViKQorCisKK19sbGludF9vcF9kaXY6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xv
dywgaW5kZXgpCisgICAgICAgICAgICAjIEFzc3VtZSB0MyBpcyBzY3JhdGNoYWJsZS4KKyAgICAg
ICAgICAgIGJ0aXogbGVmdCwgc2xvdworICAgICAgICAgICAgYnRpbnogcmlnaHQsIC5pbnRPSwor
ICAgICAgICAgICAgYmlsdCBsZWZ0LCAwLCBzbG93CisgICAgICAgIC5pbnRPSzoKKyAgICAgICAg
ICAgIG1vdmUgbGVmdCwgdDMKKyAgICAgICAgICAgIG1vdmUgcmlnaHQsIHQwCisgICAgICAgICAg
ICBjZHFpCisgICAgICAgICAgICBpZGl2aSB0MworICAgICAgICAgICAgYnRpbnogdDEsIHNsb3cK
KyAgICAgICAgICAgIG9ycCB0YWdUeXBlTnVtYmVyLCB0MAorICAgICAgICAgICAgc3RvcmVwIHQw
LCBbY2ZyLCBpbmRleCwgOF0KKyAgICAgICAgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmln
aHQpIGRpdmQgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikK
KworCittYWNybyBiaXRPcChvcGVyYXRpb24sIHNsb3dQYXRoLCBhZHZhbmNlKQorICAgIGxvYWRp
cyAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxv
YWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MCwgdDEp
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgYnBiIHQwLCB0YWdUeXBl
TnVtYmVyLCAuc2xvdworICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBvcGVy
YXRpb24odDEsIHQwLCAuc2xvdykKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDAKKyAgICBzdG9y
ZXAgdDAsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKGFkdmFuY2UpCisKKy5zbG93OgorICAg
IGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaChhZHZhbmNlKQorZW5kCisKK19s
bGludF9vcF9sc2hpZnQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGxzaGlmdGkgbGVmdCwgcmlnaHQgZW5kLAorICAg
ICAgICBfbGxpbnRfc2xvd19wYXRoX2xzaGlmdCwKKyAgICAgICAgNCkKKworCitfbGxpbnRfb3Bf
cnNoaWZ0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCBzbG93KSByc2hpZnRpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xs
aW50X3Nsb3dfcGF0aF9yc2hpZnQsCisgICAgICAgIDQpCisKKworX2xsaW50X29wX3Vyc2hpZnQ6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHNsb3cpCisgICAgICAgICAgICB1cnNoaWZ0aSBsZWZ0LCByaWdodAorICAgICAgICAg
ICAgYmlsdCByaWdodCwgMCwgc2xvdworICAgICAgICBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfdXJzaGlmdCwKKyAgICAgICAgNCkKKworCitfbGxpbnRfb3BfYml0YW5kOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBz
bG93KSBhbmRpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9iaXRh
bmQsCisgICAgICAgIDUpCisKKworX2xsaW50X29wX2JpdHhvcjoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgeG9yaSBs
ZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfYml0eG9yLAorICAgICAg
ICA1KQorCisKK19sbGludF9vcF9iaXRvcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0
T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgb3JpIGxlZnQsIHJpZ2h0IGVu
ZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9iaXRvciwKKyAgICAgICAgNSkKKworCitfbGxp
bnRfb3BfY2hlY2tfaGFzX2luc3RhbmNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQxLCB0
MCwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cpCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVy
ZVt0MF0sIHQwCisgICAgYnRieiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9m
bGFnc1t0MF0sIEltcGxlbWVudHNIYXNJbnN0YW5jZSwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cK
KyAgICBkaXNwYXRjaCgyKQorCisub3BDaGVja0hhc0luc3RhbmNlU2xvdzoKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCisgICAgZGlzcGF0Y2go
MikKKworCitfbGxpbnRfb3BfaW5zdGFuY2VvZjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
IyBDaGVjayB0aGF0IGJhc2VWYWwgaW1wbGVtZW50cyB0aGUgZGVmYXVsdCBIYXNJbnN0YW5jZSBi
ZWhhdmlvci4KKyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkZXByZWNhdGVkLgorICAgIGxv
YWRpcyAyNFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQw
KQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MAorICAgIGJ0YnogU3RydWN0
dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3NbdDBdLCBJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlLCAub3BJbnN0YW5jZW9mU2xvdworICAgIAorICAgICMgQWN0dWFsbHkgZG8g
dGhlIHdvcmsuCisgICAgbG9hZGlzIDMyW1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDhbUEIs
IFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDEsIC5vcElu
c3RhbmNlb2ZTbG93KQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDFdLCB0MgorICAg
IGJiYiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QyXSwgT2JqZWN0
VHlwZSwgLm9wSW5zdGFuY2VvZlNsb3cKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDIsIC5vcEluc3RhbmNlb2ZTbG93KQor
ICAgIAorICAgICMgUmVnaXN0ZXIgc3RhdGU6IHQxID0gcHJvdG90eXBlLCB0MiA9IHZhbHVlCisg
ICAgbW92ZSAxLCB0MAorLm9wSW5zdGFuY2VvZkxvb3A6CisgICAgbG9hZHAgSlNDZWxsOjptX3N0
cnVjdHVyZVt0Ml0sIHQyCisgICAgbG9hZHAgU3RydWN0dXJlOjptX3Byb3RvdHlwZVt0Ml0sIHQy
CisgICAgYnBlcSB0MiwgdDEsIC5vcEluc3RhbmNlb2ZEb25lCisgICAgYnRweiB0MiwgdGFnTWFz
aywgLm9wSW5zdGFuY2VvZkxvb3AKKworICAgIG1vdmUgMCwgdDAKKy5vcEluc3RhbmNlb2ZEb25l
OgorICAgIG9ycCBWYWx1ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisg
ICAgZGlzcGF0Y2goNSkKKworLm9wSW5zdGFuY2VvZlNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfaW5zdGFuY2VvZikKKyAgICBkaXNwYXRjaCg1KQorCisKK21hY3JvIHJl
c29sdmVHbG9iYWwoc2l6ZSwgc2xvdykKKyAgICAjIE9wZXJhbmRzIGFyZSBhcyBmb2xsb3dzOgor
ICAgICMgOFtQQiwgUEMsIDhdICAgRGVzdGluYXRpb24gZm9yIHRoZSBsb2FkLgorICAgICMgMTZb
UEIsIFBDLCA4XSAgUHJvcGVydHkgaWRlbnRpZmllciBpbmRleCBpbiB0aGUgY29kZSBibG9jay4K
KyAgICAjIDI0W1BCLCBQQywgOF0gIFN0cnVjdHVyZSBwb2ludGVyLCBpbml0aWFsaXplZCB0byAw
IGJ5IGJ5dGVjb2RlIGdlbmVyYXRvci4KKyAgICAjIDMyW1BCLCBQQywgOF0gIE9mZnNldCBpbiBn
bG9iYWwgb2JqZWN0LCBpbml0aWFsaXplZCB0byAwIGJ5IGJ5dGVjb2RlIGdlbmVyYXRvci4KKyAg
ICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFs
T2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEKKyAg
ICBicG5lcSB0MSwgMjRbUEIsIFBDLCA4XSwgc2xvdworICAgIGxvYWRpcyAzMltQQiwgUEMsIDhd
LCB0MQorICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQwCisgICAg
bG9hZHAgW3QwLCB0MSwgOF0sIHQyCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBz
dG9yZXAgdDIsIFtjZnIsIHQwLCA4XQorICAgIGxvYWRwIChzaXplIC0gMSkgKiA4W1BCLCBQQywg
OF0sIHQwCisgICAgdmFsdWVQcm9maWxlKHQyLCB0MCkKK2VuZAorCitfbGxpbnRfb3BfcmVzb2x2
ZV9nbG9iYWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIHJlc29sdmVHbG9iYWwoNiwgLm9w
UmVzb2x2ZUdsb2JhbFNsb3cpCisgICAgZGlzcGF0Y2goNikKKworLm9wUmVzb2x2ZUdsb2JhbFNs
b3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9nbG9iYWwpCisg
ICAgZGlzcGF0Y2goNikKKworCisjIEdpdmVzIHlvdSB0aGUgc2NvcGUgaW4gdDAsIHdoaWxlIGFs
bG93aW5nIHlvdSB0byBvcHRpb25hbGx5IHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3Mgb24gdGhl
CisjIHNjb3BlcyBhcyB0aGV5IGFyZSB0cmF2ZXJzZWQuIHNjb3BlQ2hlY2soKSBpcyBjYWxsZWQg
d2l0aCB0d28gYXJndW1lbnRzOiB0aGUgcmVnaXN0ZXIKKyMgaG9sZGluZyB0aGUgc2NvcGUsIGFu
ZCBhIHJlZ2lzdGVyIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHNjcmF0Y2guIE5vdGUgdGhhdCB0aGlz
IGRvZXMgbm90CisjIHVzZSB0Mywgc28geW91IGNhbiBob2xkIHN0dWZmIGluIHQzIGlmIG5lZWQg
YmUuCittYWNybyBnZXRTY29wZShkZUJydWlqaW5JbmRleE9wZXJhbmQsIHNjb3BlQ2hlY2spCisg
ICAgbG9hZHAgU2NvcGVDaGFpbltjZnJdLCB0MAorICAgIGxvYWRpcyBkZUJydWlqaW5JbmRleE9w
ZXJhbmQsIHQyCisgICAgCisgICAgYnRpeiB0MiwgLmRvbmUKKyAgICAKKyAgICBsb2FkcCBDb2Rl
QmxvY2tbY2ZyXSwgdDEKKyAgICBiaW5lcSBDb2RlQmxvY2s6Om1fY29kZVR5cGVbdDFdLCBGdW5j
dGlvbkNvZGUsIC5sb29wCisgICAgYnRieiBDb2RlQmxvY2s6Om1fbmVlZHNGdWxsU2NvcGVDaGFp
blt0MV0sIC5sb29wCisgICAgCisgICAgbG9hZGlzIENvZGVCbG9jazo6bV9hY3RpdmF0aW9uUmVn
aXN0ZXJbdDFdLCB0MQorCisgICAgIyBOZWVkIHRvIGNvbmRpdGlvbmFsbHkgc2tpcCBvdmVyIG9u
ZSBzY29wZS4KKyAgICBidHB6IFtjZnIsIHQxLCA4XSwgLm5vQWN0aXZhdGlvbgorICAgIHNjb3Bl
Q2hlY2sodDAsIHQxKQorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpuZXh0W3QwXSwgdDAKKy5u
b0FjdGl2YXRpb246CisgICAgc3ViaSAxLCB0MgorICAgIAorICAgIGJ0aXogdDIsIC5kb25lCisu
bG9vcDoKKyAgICBzY29wZUNoZWNrKHQwLCB0MSkKKyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6
bmV4dFt0MF0sIHQwCisgICAgc3ViaSAxLCB0MgorICAgIGJ0aW56IHQyLCAubG9vcAorCisuZG9u
ZToKK2VuZAorCitfbGxpbnRfb3BfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYzoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisg
ICAgbG9hZHAgSlNHbG9iYWxEYXRhOjphY3RpdmF0aW9uU3RydWN0dXJlW3QzXSwgdDMKKyAgICBn
ZXRTY29wZSgKKyAgICAgICAgNDBbUEIsIFBDLCA4XSwKKyAgICAgICAgbWFjcm8gKHNjb3BlLCBz
Y3JhdGNoKQorICAgICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFtzY29wZV0s
IHNjcmF0Y2gKKyAgICAgICAgICAgIGJwbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbc2NyYXRjaF0s
IHQzLCAub3BSZXNvbHZlR2xvYmFsRHluYW1pY1N1cGVyU2xvdworICAgICAgICBlbmQpCisgICAg
cmVzb2x2ZUdsb2JhbCg3LCAub3BSZXNvbHZlR2xvYmFsRHluYW1pY1Nsb3cpCisgICAgZGlzcGF0
Y2goNykKKworLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTdXBlclNsb3c6CisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9mb3JfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYykK
KyAgICBkaXNwYXRjaCg3KQorCisub3BSZXNvbHZlR2xvYmFsRHluYW1pY1Nsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYykKKyAgICBk
aXNwYXRjaCg3KQorCisKK19sbGludF9vcF9nZXRfc2NvcGVkX3ZhcjoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgIyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93czoKKyAgICAjIDhbUEIsIFBDLCA4
XSAgIERlc3RpbmF0aW9uIGZvciB0aGUgbG9hZAorICAgICMgMTZbUEIsIFBDLCA4XSAgSW5kZXgg
b2YgcmVnaXN0ZXIgaW4gdGhlIHNjb3BlCisgICAgIyAyNFtQQiwgUEMsIDhdICBEZSBCcnVpamlu
IGluZGV4LgorICAgIGdldFNjb3BlKDI0W1BCLCBQQywgOF0sIG1hY3JvIChzY29wZSwgc2NyYXRj
aCkgZW5kKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZGlzIDE2W1BCLCBQ
QywgOF0sIHQyCisgICAgbG9hZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFt0MF0sIHQwCisgICAg
bG9hZHAgSlNWYXJpYWJsZU9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRwIFt0
MCwgdDIsIDhdLCB0MworICAgIHN0b3JlcCB0MywgW2NmciwgdDEsIDhdCisgICAgbG9hZHAgMzJb
UEIsIFBDLCA4XSwgdDEKKyAgICB2YWx1ZVByb2ZpbGUodDMsIHQxKQorICAgIGRpc3BhdGNoKDUp
CisKKworX2xsaW50X29wX3B1dF9zY29wZWRfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBnZXRTY29wZSgxNltQQiwgUEMsIDhdLCBtYWNybyAoc2NvcGUsIHNjcmF0Y2gpIGVuZCkKKyAg
ICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQx
LCB0MykKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIHdyaXRlQmFycmllcih0MykK
KyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6b2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU1Zh
cmlhYmxlT2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0sIHQwCisgICAgc3RvcmVwIHQzLCBbdDAsIHQx
LCA4XQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX2dldF9nbG9iYWxfdmFyOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAgIGxv
YWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTR2xvYmFs
T2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0sIHQwCisgICAgbG9hZHAgW3QwLCB0MSwgOF0sIHQyCisg
ICAgc3RvcmVwIHQyLCBbY2ZyLCB0MywgOF0KKyAgICBsb2FkcCAyNFtQQiwgUEMsIDhdLCB0Mwor
ICAgIHZhbHVlUHJvZmlsZSh0MiwgdDMpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3Bf
cHV0X2dsb2JhbF92YXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwg
UEMsIDhdLCB0MQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVC
bG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0Ojpt
X3JlZ2lzdGVyc1t0MF0sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDIpCisg
ICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICB3cml0ZUJhcnJpZXIodDIpCisgICAgc3Rv
cmVwIHQyLCBbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2dldF9i
eV9pZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgIyBXZSBvbmx5IGRvIG1vbm9tb3JwaGlj
IGdldF9ieV9pZCBjYWNoaW5nIGZvciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5IHRoZQorICAg
ICMgb3Bjb2RlLiBXZSBkbywgaG93ZXZlciwgYWxsb3cgZm9yIHRoZSBjYWNoZSB0byBjaGFuZ2Ug
YW55dGltZSBpZiBmYWlscywgc2luY2UKKyAgICAjIHBpbmctcG9uZ2luZyBpcyBmcmVlLiBBdCBi
ZXN0IHdlIGdldCBsdWNreSBhbmQgdGhlIGdldF9ieV9pZCB3aWxsIGNvbnRpbnVlCisgICAgIyB0
byB0YWtlIGZhc3QgcGF0aCBvbiB0aGUgbmV3IGNhY2hlLiBBdCB3b3JzdCB3ZSB0YWtlIHNsb3cg
cGF0aCwgd2hpY2ggaXMgd2hhdAorICAgICMgd2Ugd291bGQgaGF2ZSBiZWVuIGRvaW5nIGFueXdh
eS4KKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCAzMltQQiwgUEMsIDhd
LCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQwLCB0MywgLm9wR2V0QnlJZFNs
b3cpCisgICAgbG9hZGlzIDQwW1BCLCBQQywgOF0sIHQyCisgICAgbG9hZHAgSlNPYmplY3Q6Om1f
cHJvcGVydHlTdG9yYWdlW3QzXSwgdDAKKyAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3Qz
XSwgdDEsIC5vcEdldEJ5SWRTbG93CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBs
b2FkcCBbdDAsIHQyXSwgdDMKKyAgICBzdG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAgIGxvYWRw
IDY0W1BCLCBQQywgOF0sIHQxCisgICAgdmFsdWVQcm9maWxlKHQzLCB0MSkKKyAgICBkaXNwYXRj
aCg5KQorCisub3BHZXRCeUlkU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKworCitfbGxpbnRfb3BfZ2V0X2FyZ3VtZW50
c19sZW5ndGg6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhd
LCB0MAorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgYnRwbnogW2NmciwgdDAsIDhd
LCAub3BHZXRBcmd1bWVudHNMZW5ndGhTbG93CisgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFBh
eWxvYWRPZmZzZXRbY2ZyXSwgdDIKKyAgICBzdWJpIDEsIHQyCisgICAgb3JwIHRhZ1R5cGVOdW1i
ZXIsIHQyCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCg0KQorCisu
b3BHZXRBcmd1bWVudHNMZW5ndGhTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX2dldF9hcmd1bWVudHNfbGVuZ3RoKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29w
X3B1dF9ieV9pZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4
XSwgdDMKKyAgICBsb2FkcCAzMltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGVDZWxsKHQzLCB0MCwgLm9wUHV0QnlJZFNsb3cpCisgICAgbG9hZGlzIDI0W1BCLCBQQywg
OF0sIHQyCisgICAgbG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3QwXSwgdDMKKyAg
ICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEsIC5vcFB1dEJ5SWRTbG93CisgICAg
bG9hZGlzIDQwW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0Miwg
dDApCisgICAgd3JpdGVCYXJyaWVyKHQwKQorICAgIHN0b3JlcCB0MCwgW3QzLCB0MV0KKyAgICBk
aXNwYXRjaCg5KQorCisub3BQdXRCeUlkU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9wdXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKworCittYWNybyBwdXRCeUlkVHJh
bnNpdGlvbihhZGRpdGlvbmFsQ2hlY2tzKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRwIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDMsIHQwLCAub3BQdXRCeUlkU2xvdykKKyAgICBsb2Fk
aXMgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwg
dDEsIC5vcFB1dEJ5SWRTbG93CisgICAgYWRkaXRpb25hbENoZWNrcyh0MSwgdDMsIC5vcFB1dEJ5
SWRTbG93KQorICAgIGxvYWRpcyA0MFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIEpTT2JqZWN0
OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQzCisgICAgYWRkcCB0MSwgdDMKKyAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHQyLCB0MSkKKyAgICB3cml0ZUJhcnJpZXIodDEpCisgICAgc3RvcmVw
IHQxLCBbdDNdCisgICAgbG9hZHAgNDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDEsIEpT
Q2VsbDo6bV9zdHJ1Y3R1cmVbdDBdCisgICAgZGlzcGF0Y2goOSkKK2VuZAorCitfbGxpbnRfb3Bf
cHV0X2J5X2lkX3RyYW5zaXRpb25fZGlyZWN0OgorICAgIHB1dEJ5SWRUcmFuc2l0aW9uKG1hY3Jv
IChvbGRTdHJ1Y3R1cmUsIHNjcmF0Y2gsIHNsb3cpIGVuZCkKKworCitfbGxpbnRfb3BfcHV0X2J5
X2lkX3RyYW5zaXRpb25fbm9ybWFsOgorICAgIHB1dEJ5SWRUcmFuc2l0aW9uKAorICAgICAgICBt
YWNybyAob2xkU3RydWN0dXJlLCBzY3JhdGNoLCBzbG93KQorICAgICAgICAgICAgY29uc3QgcHJv
dG9DZWxsID0gb2xkU3RydWN0dXJlICAgICMgUmV1c2luZyB0aGUgb2xkU3RydWN0dXJlIHJlZ2lz
dGVyIGZvciB0aGUgcHJvdG8KKyAgICAgICAgICAgIGxvYWRwIDU2W1BCLCBQQywgOF0sIHNjcmF0
Y2gKKyAgICAgICAgICAgIGFzc2VydChtYWNybyAob2spIGJ0cG56IHNjcmF0Y2gsIG9rIGVuZCkK
KyAgICAgICAgICAgIGxvYWRwIFN0cnVjdHVyZUNoYWluOjptX3ZlY3RvcltzY3JhdGNoXSwgc2Ny
YXRjaAorICAgICAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYnRwbnogc2NyYXRjaCwgb2sgZW5k
KQorICAgICAgICAgICAgYnBlcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW29sZFN0cnVjdHVyZV0s
IFZhbHVlTnVsbCwgLmRvbmUKKyAgICAgICAgLmxvb3A6CisgICAgICAgICAgICBsb2FkcCBTdHJ1
Y3R1cmU6Om1fcHJvdG90eXBlW29sZFN0cnVjdHVyZV0sIHByb3RvQ2VsbAorICAgICAgICAgICAg
bG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVtwcm90b0NlbGxdLCBvbGRTdHJ1Y3R1cmUKKyAgICAg
ICAgICAgIGJwbmVxIG9sZFN0cnVjdHVyZSwgW3NjcmF0Y2hdLCBzbG93CisgICAgICAgICAgICBh
ZGRwIDgsIHNjcmF0Y2gKKyAgICAgICAgICAgIGJwbmVxIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVb
b2xkU3RydWN0dXJlXSwgVmFsdWVOdWxsLCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAg
ZW5kKQorCisKK19sbGludF9vcF9nZXRfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIK
KyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xv
YmFsRGF0YVt0MV0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDIsIHQwLCAu
b3BHZXRCeVZhbFNsb3cpCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpqc0FycmF5Q2xhc3NJbmZv
W3QxXSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIodDMsIHQxLCAub3BHZXRC
eVZhbFNsb3cpCisgICAgc3hpMnAgdDEsIHQxCisgICAgYnBuZXEgW3QwXSwgdDIsIC5vcEdldEJ5
VmFsU2xvdworICAgIGxvYWRwIEpTQXJyYXk6Om1fc3RvcmFnZVt0MF0sIHQzCisgICAgYmlhZXEg
dDEsIEpTQXJyYXk6Om1fdmVjdG9yTGVuZ3RoW3QwXSwgLm9wR2V0QnlWYWxTbG93CisgICAgbG9h
ZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yW3Qz
LCB0MSwgOF0sIHQyCisgICAgYnRweiB0MiwgLm9wR2V0QnlWYWxTbG93CisgICAgc3RvcmVwIHQy
LCBbY2ZyLCB0MCwgOF0KKyAgICBsb2FkcCAzMltQQiwgUEMsIDhdLCB0MAorICAgIHZhbHVlUHJv
ZmlsZSh0MiwgdDApCisgICAgZGlzcGF0Y2goNSkKKworLm9wR2V0QnlWYWxTbG93OgorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV92YWwpCisgICAgZGlzcGF0Y2goNSkK
KworCitfbGxpbnRfb3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0s
IHQxCisgICAgYnRwbnogW2NmciwgdDAsIDhdLCAub3BHZXRBcmd1bWVudEJ5VmFsU2xvdworICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MSwgdDIsIC5vcEdldEFyZ3VtZW50QnlWYWxT
bG93KQorICAgIGFkZGkgMSwgdDIKKyAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9m
ZnNldFtjZnJdLCB0MQorICAgIGJpYWVxIHQyLCB0MSwgLm9wR2V0QXJndW1lbnRCeVZhbFNsb3cK
KyAgICBuZWdpIHQyCisgICAgc3hpMnAgdDIsIHQyCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwg
dDMKKyAgICBsb2FkcCBUaGlzQXJndW1lbnRPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCisgICAgc3Rv
cmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg1KQorCisub3BHZXRBcmd1bWVudEJ5
VmFsU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYXJndW1lbnRf
YnlfdmFsKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX2dldF9ieV9wbmFtZToKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQxCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgbG9hZGlzIDMyW1BCLCBQQywgOF0sIHQx
CisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDEpCisgICAgYnBuZXEgdDAsIFtjZnIsIHQxLCA4XSwg
Lm9wR2V0QnlQbmFtZVNsb3cKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2Fk
aXMgNDBbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0Miwg
dDAsIC5vcEdldEJ5UG5hbWVTbG93KQorICAgIGFzc2VydE5vdENvbnN0YW50KHQzKQorICAgIGxv
YWRwIFtjZnIsIHQzLCA4XSwgdDEKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwg
dDIKKyAgICBicG5lcSB0MiwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9jYWNoZWRTdHJ1Y3R1
cmVbdDFdLCAub3BHZXRCeVBuYW1lU2xvdworICAgIGxvYWRpcyA0OFtQQiwgUEMsIDhdLCB0Mwor
ICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0sIHQzCisgICAgc3ViaSAxLCB0Mwor
ICAgIGJpYWVxIHQzLCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjptX251bUNhY2hlYWJsZVNsb3Rz
W3QxXSwgLm9wR2V0QnlQbmFtZVNsb3cKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0
b3JhZ2VbdDBdLCB0MAorICAgIGxvYWRwIFt0MCwgdDMsIDhdLCB0MAorICAgIGxvYWRpcyA4W1BC
LCBQQywgOF0sIHQxCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCg3
KQorCisub3BHZXRCeVBuYW1lU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9nZXRfYnlfcG5hbWUpCisgICAgZGlzcGF0Y2goNykKKworCitfbGxpbnRfb3BfcHV0X2J5X3Zh
bDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MCwgdDEsIC5vcFB1dEJ5VmFsU2xvdykKKyAg
ICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50
MzIodDAsIHQyLCAub3BQdXRCeVZhbFNsb3cpCisgICAgc3hpMnAgdDIsIHQyCisgICAgbG9hZHAg
Q29kZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDBd
LCB0MAorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6anNBcnJheUNsYXNzSW5mb1t0MF0sIHQwCisg
ICAgYnBuZXEgW3QxXSwgdDAsIC5vcFB1dEJ5VmFsU2xvdworICAgIGJpYWVxIHQyLCBKU0FycmF5
OjptX3ZlY3Rvckxlbmd0aFt0MV0sIC5vcFB1dEJ5VmFsU2xvdworICAgIGxvYWRwIEpTQXJyYXk6
Om1fc3RvcmFnZVt0MV0sIHQwCisgICAgYnRweiBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yW3QwLCB0
MiwgOF0sIC5vcFB1dEJ5VmFsRW1wdHkKKy5vcFB1dEJ5VmFsU3RvcmVSZXN1bHQ6CisgICAgbG9h
ZGlzIDI0W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MywgdDEp
CisgICAgd3JpdGVCYXJyaWVyKHQxKQorICAgIHN0b3JlcCB0MSwgQXJyYXlTdG9yYWdlOjptX3Zl
Y3Rvclt0MCwgdDIsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLm9wUHV0QnlWYWxFbXB0eToKKyAg
ICBhZGRpIDEsIEFycmF5U3RvcmFnZTo6bV9udW1WYWx1ZXNJblZlY3Rvclt0MF0KKyAgICBiaWIg
dDIsIEFycmF5U3RvcmFnZTo6bV9sZW5ndGhbdDBdLCAub3BQdXRCeVZhbFN0b3JlUmVzdWx0Cisg
ICAgYWRkaSAxLCB0MiwgdDEKKyAgICBzdG9yZWkgdDEsIEFycmF5U3RvcmFnZTo6bV9sZW5ndGhb
dDBdCisgICAgam1wIC5vcFB1dEJ5VmFsU3RvcmVSZXN1bHQKKworLm9wUHV0QnlWYWxTbG93Ogor
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV92YWwpCisgICAgZGlzcGF0
Y2goNCkKKworCitfbGxpbnRfb3BfbG9vcDoKKyAgICBub3AKK19sbGludF9vcF9qbXA6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGRpc3BhdGNoSW50KDhbUEIsIFBDLCA4XSkKKworCittYWNy
byBqdW1wVHJ1ZU9yRmFsc2UoY29uZGl0aW9uT3AsIHNsb3cpCisgICAgbG9hZGlzIDhbUEIsIFBD
LCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAgICB4b3JwIFZh
bHVlRmFsc2UsIHQwCisgICAgYnRwbnogdDAsIC0xLCAuc2xvdworICAgIGNvbmRpdGlvbk9wKHQw
LCAudGFyZ2V0KQorICAgIGRpc3BhdGNoKDMpCisKKy50YXJnZXQ6CisgICAgZGlzcGF0Y2hJbnQo
MTZbUEIsIFBDLCA4XSkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3cpCisgICAgZGlz
cGF0Y2goMCkKK2VuZAorCisKK21hY3JvIGVxdWFsTnVsbChjZWxsSGFuZGxlciwgaW1tZWRpYXRl
SGFuZGxlcikKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGFzc2VydE5vdENvbnN0
YW50KHQwKQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFz
aywgLmltbWVkaWF0ZQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAg
IGNlbGxIYW5kbGVyKFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3Qy
XSwgLnRhcmdldCkKKyAgICBkaXNwYXRjaCgzKQorCisudGFyZ2V0OgorICAgIGRpc3BhdGNoKDE2
W1BCLCBQQywgOF0pCisKKy5pbW1lZGlhdGU6CisgICAgYW5kcCB+VGFnQml0VW5kZWZpbmVkLCB0
MAorICAgIGltbWVkaWF0ZUhhbmRsZXIodDAsIC50YXJnZXQpCisgICAgZGlzcGF0Y2goMykKK2Vu
ZAorCitfbGxpbnRfb3BfamVxX251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFs
TnVsbCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0Ym56IHZhbHVlLCBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkLCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdl
dCkgYnBlcSB2YWx1ZSwgVmFsdWVOdWxsLCB0YXJnZXQgZW5kKQorCisKK19sbGludF9vcF9qbmVx
X251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbCgKKyAgICAgICAgbWFj
cm8gKHZhbHVlLCB0YXJnZXQpIGJ0YnogdmFsdWUsIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHRh
cmdldCBlbmQsCisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBicG5lcSB2YWx1ZSwgVmFs
dWVOdWxsLCB0YXJnZXQgZW5kKQorCisKK19sbGludF9vcF9qbmVxX3B0cjoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCAxNltQQiwg
UEMsIDhdLCB0MQorICAgIGJwbmVxIHQxLCBbY2ZyLCB0MCwgOF0sIC5vcEpuZXFQdHJUYXJnZXQK
KyAgICBkaXNwYXRjaCg0KQorCisub3BKbmVxUHRyVGFyZ2V0OgorICAgIGRpc3BhdGNoSW50KDI0
W1BCLCBQQywgOF0pCisKKworbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91YmxlQ29t
cGFyZSwgc2xvd1BhdGgpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkaXMg
MTZbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQzLCB0MSkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1i
ZXIsIC5vcDFOb3RJbnQKKyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDJOb3RJbnQKKyAg
ICBpbnRlZ2VyQ29tcGFyZSh0MCwgdDEsIC5qdW1wVGFyZ2V0KQorICAgIGRpc3BhdGNoKDQpCisK
Ky5vcDFOb3RJbnQ6CisgICAgYnRweiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBicGIg
dDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDFOb3RJbnRPcDJOb3RJbnQKKyAgICBjaTJkIHQxLCBmdDEK
KyAgICBqbXAgLm9wMU5vdEludFJlYWR5Cisub3AxTm90SW50T3AyTm90SW50OgorICAgIGJ0cHog
dDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0MQorICAg
IGZwMmQgdDEsIGZ0MQorLm9wMU5vdEludFJlYWR5OgorICAgIGFkZHAgdGFnVHlwZU51bWJlciwg
dDAKKyAgICBmcDJkIHQwLCBmdDAKKyAgICBkb3VibGVDb21wYXJlKGZ0MCwgZnQxLCAuanVtcFRh
cmdldCkKKyAgICBkaXNwYXRjaCg0KQorCisub3AyTm90SW50OgorICAgIGNpMmQgdDAsIGZ0MAor
ICAgIGJ0cHogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgYWRkcCB0YWdUeXBlTnVtYmVy
LCB0MQorICAgIGZwMmQgdDEsIGZ0MQorICAgIGRvdWJsZUNvbXBhcmUoZnQwLCBmdDEsIC5qdW1w
VGFyZ2V0KQorICAgIGRpc3BhdGNoKDQpCisKKy5qdW1wVGFyZ2V0OgorICAgIGRpc3BhdGNoSW50
KDI0W1BCLCBQQywgOF0pCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAg
ICBkaXNwYXRjaCgwKQorZW5kCisKKworX2xsaW50X29wX3N3aXRjaF9pbW06CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpcyA4W1BC
LCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEpCisgICAgbG9h
ZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX3JhcmVEYXRhW3Qy
XSwgdDIKKyAgICBtdWxpIHNpemVvZiBTaW1wbGVKdW1wVGFibGUsIHQzICAgICMgRklYTUU6IHdv
dWxkIGJlIG5pY2UgdG8gcGVlcGhvbGUgdGhpcyEKKyAgICBsb2FkcCBDb2RlQmxvY2s6OlJhcmVE
YXRhOjptX2ltbWVkaWF0ZVN3aXRjaEp1bXBUYWJsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJd
LCB0MgorICAgIGFkZHAgdDMsIHQyCisgICAgYnBiIHQxLCB0YWdUeXBlTnVtYmVyLCAub3BTd2l0
Y2hJbW1Ob3RJbnQKKyAgICBzdWJpIFNpbXBsZUp1bXBUYWJsZTo6bWluW3QyXSwgdDEKKyAgICBi
aWFlcSB0MSwgU2ltcGxlSnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVjdG9yU2l6ZU9mZnNl
dFt0Ml0sIC5vcFN3aXRjaEltbUZhbGxUaHJvdWdoCisgICAgbG9hZHAgU2ltcGxlSnVtcFRhYmxl
OjpicmFuY2hPZmZzZXRzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDMKKyAgICBsb2FkaXMg
W3QzLCB0MSwgNF0sIHQxCisgICAgYnRpeiB0MSwgLm9wU3dpdGNoSW1tRmFsbFRocm91Z2gKKyAg
ICBkaXNwYXRjaCh0MSkKKworLm9wU3dpdGNoSW1tTm90SW50OgorICAgIGJ0cG56IHQxLCB0YWdU
eXBlTnVtYmVyLCAub3BTd2l0Y2hJbW1TbG93ICAgIyBHbyBzbG93IGlmIGl0J3MgYSBkb3VibGUu
Cisub3BTd2l0Y2hJbW1GYWxsVGhyb3VnaDoKKyAgICBkaXNwYXRjaEludCgxNltQQiwgUEMsIDhd
KQorCisub3BTd2l0Y2hJbW1TbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X3N3aXRjaF9pbW0pCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfb3Bfc3dpdGNoX2NoYXI6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MgorICAg
IGxvYWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0Miwg
dDEpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCisgICAgbG9hZHAgQ29kZUJsb2NrOjpt
X3JhcmVEYXRhW3QyXSwgdDIKKyAgICBtdWxpIHNpemVvZiBTaW1wbGVKdW1wVGFibGUsIHQzCisg
ICAgbG9hZHAgQ29kZUJsb2NrOjpSYXJlRGF0YTo6bV9jaGFyYWN0ZXJTd2l0Y2hKdW1wVGFibGVz
ICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDIKKyAgICBhZGRwIHQzLCB0MgorICAgIGJ0cG56
IHQxLCB0YWdNYXNrLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKKyAgICBsb2FkcCBKU0NlbGw6
Om1fc3RydWN0dXJlW3QxXSwgdDAKKyAgICBiYm5lcSBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBU
eXBlSW5mbzo6bV90eXBlW3QwXSwgU3RyaW5nVHlwZSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdo
CisgICAgbG9hZHAgSlNTdHJpbmc6Om1fdmFsdWVbdDFdLCB0MAorICAgIGJpbmVxIFN0cmluZ0lt
cGw6Om1fbGVuZ3RoW3QwXSwgMSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAg
U3RyaW5nSW1wbDo6bV9kYXRhOFt0MF0sIHQxCisgICAgYnRpbnogU3RyaW5nSW1wbDo6bV9oYXNo
QW5kRmxhZ3NbdDBdLCBIYXNoRmxhZ3M4Qml0QnVmZmVyLCAub3BTd2l0Y2hDaGFyOEJpdAorICAg
IGxvYWRoIFt0MV0sIHQwCisgICAgam1wIC5vcFN3aXRjaENoYXJSZWFkeQorLm9wU3dpdGNoQ2hh
cjhCaXQ6CisgICAgbG9hZGIgW3QxXSwgdDAKKy5vcFN3aXRjaENoYXJSZWFkeToKKyAgICBzdWJp
IFNpbXBsZUp1bXBUYWJsZTo6bWluW3QyXSwgdDAKKyAgICBiaWFlcSB0MCwgU2ltcGxlSnVtcFRh
YmxlOjpicmFuY2hPZmZzZXRzICsgVmVjdG9yU2l6ZU9mZnNldFt0Ml0sIC5vcFN3aXRjaENoYXJG
YWxsVGhyb3VnaAorICAgIGxvYWRwIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZl
Y3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQyCisgICAgbG9hZGlzIFt0MiwgdDAsIDRdLCB0MQorICAg
IGJ0aXogdDEsIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAorICAgIGRpc3BhdGNoKHQxKQorCisu
b3BTd2l0Y2hDaGFyRmFsbFRocm91Z2g6CisgICAgZGlzcGF0Y2hJbnQoMTZbUEIsIFBDLCA4XSkK
KworCitfbGxpbnRfb3BfbmV3X2Z1bmM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJ0aXog
MjRbUEIsIFBDLCA4XSwgLm9wTmV3RnVuY1VuY2hlY2tlZAorICAgIGxvYWRpcyA4W1BCLCBQQywg
OF0sIHQxCisgICAgYnRwbnogW2NmciwgdDEsIDhdLCAub3BOZXdGdW5jRG9uZQorLm9wTmV3RnVu
Y1VuY2hlY2tlZDoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfZnVuYykK
Ky5vcE5ld0Z1bmNEb25lOgorICAgIGRpc3BhdGNoKDQpCisKKworbWFjcm8gZG9DYWxsKHNsb3dQ
YXRoKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZHAgMzJbUEIsIFBDLCA4
XSwgdDEKKyAgICBsb2FkcCBMTEludENhbGxMaW5rSW5mbzo6Y2FsbGVlW3QxXSwgdDIKKyAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MykKKyAgICBicG5lcSB0MywgdDIsIC5vcENhbGxT
bG93CisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQzCisgICAgYWRkaSA2LCBQQworICAgIGxz
aGlmdGkgMywgdDMKKyAgICBhZGRwIGNmciwgdDMKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX3Nj
b3BlQ2hhaW5bdDJdLCB0MAorICAgIHN0b3JlcCB0MiwgQ2FsbGVlW3QzXQorICAgIHN0b3JlcCB0
MCwgU2NvcGVDaGFpblt0M10KKyAgICBsb2FkaXMgMTYgLSA0OFtQQiwgUEMsIDhdLCB0MgorICAg
IHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCisgICAgc3RvcmVwIGNm
ciwgQ2FsbGVyRnJhbWVbdDNdCisgICAgc3RvcmVpIHQyLCBBcmd1bWVudENvdW50ICsgUGF5bG9h
ZE9mZnNldFt0M10KKyAgICBtb3ZlIHQzLCBjZnIKKyAgICBjYWxsIExMSW50Q2FsbExpbmtJbmZv
OjptYWNoaW5lQ29kZVRhcmdldFt0MV0KKyAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCisKKy5vcENh
bGxTbG93OgorICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBzbG93UGF0aCkKK2VuZAorCisKK19sbGlu
dF9vcF90ZWFyX29mZl9hY3RpdmF0aW9uOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MQorICAgIGJ0
cG56IFtjZnIsIHQwLCA4XSwgLm9wVGVhck9mZkFjdGl2YXRpb25DcmVhdGVkCisgICAgYnRweiBb
Y2ZyLCB0MSwgOF0sIC5vcFRlYXJPZmZBY3RpdmF0aW9uTm90Q3JlYXRlZAorLm9wVGVhck9mZkFj
dGl2YXRpb25DcmVhdGVkOgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RlYXJf
b2ZmX2FjdGl2YXRpb24pCisub3BUZWFyT2ZmQWN0aXZhdGlvbk5vdENyZWF0ZWQ6CisgICAgZGlz
cGF0Y2goMykKKworCitfbGxpbnRfb3BfdGVhcl9vZmZfYXJndW1lbnRzOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIHN1YmkgMSwgdDAgICAj
IEdldCB0aGUgdW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVyCisgICAgYnRweiBbY2ZyLCB0MCwg
OF0sIC5vcFRlYXJPZmZBcmd1bWVudHNOb3RDcmVhdGVkCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfdGVhcl9vZmZfYXJndW1lbnRzKQorLm9wVGVhck9mZkFyZ3VtZW50c05vdENy
ZWF0ZWQ6CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfcmV0OgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQorICAgIGxvYWRpcyA4
W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAg
ZG9SZXR1cm4oKQorCisKK19sbGludF9vcF9jYWxsX3B1dF9yZXN1bHQ6CisgICAgbG9hZGlzIDhb
UEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkcCAxNltQQiwgUEMsIDhdLCB0MworICAgIHN0b3JlcCB0
MCwgW2NmciwgdDIsIDhdCisgICAgdmFsdWVQcm9maWxlKHQwLCB0MykKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfcmV0X29iamVjdF9vcl90aGlz
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUo
KQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZSh0MiwgdDApCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcFJldE9iamVjdE9yVGhpc05vdE9i
amVjdAorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIGJiYiBTdHJ1
Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QyXSwgT2JqZWN0VHlwZSwgLm9w
UmV0T2JqZWN0T3JUaGlzTm90T2JqZWN0CisgICAgZG9SZXR1cm4oKQorCisub3BSZXRPYmplY3RP
clRoaXNOb3RPYmplY3Q6CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MiwgdDApCisgICAgZG9SZXR1cm4oKQorCisKK19sbGludF9vcF90
b19wcmltaXRpdmU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMs
IDhdLCB0MgorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZSh0MiwgdDApCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcFRvUHJpbWl0aXZlSXNJ
bW0KKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDIKKyAgICBiYm5lcSBTdHJ1
Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QyXSwgU3RyaW5nVHlwZSwgLm9w
VG9QcmltaXRpdmVTbG93Q2FzZQorLm9wVG9QcmltaXRpdmVJc0ltbToKKyAgICBzdG9yZXAgdDAs
IFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcFRvUHJpbWl0aXZlU2xvd0Nhc2U6
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdG9fcHJpbWl0aXZlKQorICAgIGRp
c3BhdGNoKDMpCisKKworX2xsaW50X29wX25leHRfcG5hbWU6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRpcyAzMltQQiwgUEMsIDhd
LCB0MgorICAgIGFzc2VydE5vdENvbnN0YW50KHQxKQorICAgIGFzc2VydE5vdENvbnN0YW50KHQy
KQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0sIHQwCisgICAgYmllcSB0MCwg
UGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XSwgLm9wTmV4dFBuYW1lRW5kCisgICAgbG9hZGlzIDQw
W1BCLCBQQywgOF0sIHQyCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDIpCisgICAgbG9hZHAgW2Nm
ciwgdDIsIDhdLCB0MgorICAgIGxvYWRwIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6Om1fanNTdHJp
bmdzW3QyXSwgdDMKKyAgICBsb2FkcCBbdDMsIHQwLCA4XSwgdDMKKyAgICBhZGRpIDEsIHQwCisg
ICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdCisgICAgbG9hZGlzIDhbUEIs
IFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDMsIFtjZnIsIHQxLCA4XQorICAgIGxvYWRpcyAxNltQ
QiwgUEMsIDhdLCB0MworICAgIGFzc2VydE5vdENvbnN0YW50KHQzKQorICAgIGxvYWRwIFtjZnIs
IHQzLCA4XSwgdDMKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QzXSwgdDEKKyAgICBi
cG5lcSB0MSwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9jYWNoZWRTdHJ1Y3R1cmVbdDJdLCAu
b3BOZXh0UG5hbWVTbG93CisgICAgbG9hZHAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9jYWNo
ZWRQcm90b3R5cGVDaGFpblt0Ml0sIHQwCisgICAgbG9hZHAgU3RydWN0dXJlQ2hhaW46Om1fdmVj
dG9yW3QwXSwgdDAKKyAgICBidHB6IFt0MF0sIC5vcE5leHRQbmFtZVRhcmdldAorLm9wTmV4dFBu
YW1lQ2hlY2tQcm90b3R5cGVMb29wOgorICAgIGJwZXEgU3RydWN0dXJlOjptX3Byb3RvdHlwZVt0
MV0sIFZhbHVlTnVsbCwgLm9wTmV4dFBuYW1lU2xvdworICAgIGxvYWRwIFN0cnVjdHVyZTo6bV9w
cm90b3R5cGVbdDFdLCB0MgorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDJdLCB0MQor
ICAgIGJwbmVxIHQxLCBbdDBdLCAub3BOZXh0UG5hbWVTbG93CisgICAgYWRkcCA4LCB0MAorICAg
IGJ0cG56IFt0MF0sIC5vcE5leHRQbmFtZUNoZWNrUHJvdG90eXBlTG9vcAorLm9wTmV4dFBuYW1l
VGFyZ2V0OgorICAgIGRpc3BhdGNoSW50KDQ4W1BCLCBQQywgOF0pCisKKy5vcE5leHRQbmFtZUVu
ZDoKKyAgICBkaXNwYXRjaCg3KQorCisub3BOZXh0UG5hbWVTbG93OgorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX25leHRfcG5hbWUpICMgVGhpcyBlaXRoZXIga2VlcHMgdGhlIFBD
IHdoZXJlIGl0IHdhcyAoY2F1c2luZyB1cyB0byBsb29wKSBvciBzZXRzIGl0IHRvIHRhcmdldC4K
KyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9vcF9jYXRjaDoKKyAgICAjIFRoaXMgaXMgd2hl
cmUgd2UgZW5kIHVwIGZyb20gdGhlIEpJVCdzIHRocm93IHRyYW1wb2xpbmUgKGJlY2F1c2UgdGhl
CisgICAgIyBtYWNoaW5lIGNvZGUgcmV0dXJuIGFkZHJlc3Mgd2lsbCBiZSBzZXQgdG8gX2xsaW50
X29wX2NhdGNoKSwgYW5kIGZyb20KKyAgICAjIHRoZSBpbnRlcnByZXRlcidzIHRocm93IHRyYW1w
b2xpbmUgKHNlZSBfbGxpbnRfdGhyb3dfdHJhbXBvbGluZSkuCisgICAgIyBUaGUgSklUIHRocm93
aW5nIHByb3RvY29sIGNhbGxzIGZvciB0aGUgY2ZyIHRvIGJlIGluIHQwLiBUaGUgdGhyb3dpbmcK
KyAgICAjIGNvZGUgbXVzdCBoYXZlIGtub3duIHRoYXQgd2Ugd2VyZSB0aHJvd2luZyB0byB0aGUg
aW50ZXJwcmV0ZXIsIGFuZCBoYXZlCisgICAgIyBzZXQgSlNHbG9iYWxEYXRhOjp0YXJnZXRJbnRl
cnByZXRlclBDRm9yVGhyb3cuCisgICAgbW92ZSB0MCwgY2ZyCisgICAgbG9hZHAgQ29kZUJsb2Nr
W2Nmcl0sIFBCCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1tQQl0sIFBCCisg
ICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQzCisgICAgbG9hZHAgSlNH
bG9iYWxEYXRhOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3dbdDNdLCBQQworICAgIHN1YnAg
UEIsIFBDCisgICAgdXJzaGlmdHAgMywgUEMKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmV4Y2Vw
dGlvblt0M10sIHQwCisgICAgc3RvcmVwIDAsIEpTR2xvYmFsRGF0YTo6ZXhjZXB0aW9uW3QzXQor
ICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQyCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MiwgOF0K
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfanNy
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAg
IGFkZGkgMywgUEMsIHQxCisgICAgc3RvcmVpIHQxLCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRj
aEludCgxNltQQiwgUEMsIDhdKQorCisKK19sbGludF9vcF9zcmV0OgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpIFtjZnIsIHQwLCA4
XSwgUEMKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9vcF9lbmQ6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCisgICAgbG9hZGlzIDhb
UEIsIFBDLCA4XSwgdDAKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MCkKKyAgICBsb2FkcCBbY2Zy
LCB0MCwgOF0sIHQwCisgICAgZG9SZXR1cm4oKQorCisKK19sbGludF90aHJvd19mcm9tX3Nsb3df
cGF0aF90cmFtcG9saW5lOgorICAgICMgV2hlbiB0aHJvd2luZyBmcm9tIHRoZSBpbnRlcnByZXRl
ciAoaS5lLiB0aHJvd2luZyBmcm9tIExMSW50U2xvd1BhdGhzKSwgc28KKyAgICAjIHRoZSB0aHJv
dyB0YXJnZXQgaXMgbm90IG5lY2Vzc2FyaWx5IGludGVycHJldGVkIGNvZGUsIHdlIGNvbWUgdG8g
aGVyZS4KKyAgICAjIFRoaXMgZXNzZW50aWFsbHkgZW11bGF0ZXMgdGhlIEpJVCdzIHRocm93aW5n
IHByb3RvY29sLgorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MQor
ICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6Y2FsbEZyYW1lRm9yVGhyb3dbdDFdLCB0MAorICAgIGpt
cCBKU0dsb2JhbERhdGE6OnRhcmdldE1hY2hpbmVQQ0ZvclRocm93W3QxXQorCisKK19sbGludF90
aHJvd19kdXJpbmdfY2FsbF90cmFtcG9saW5lOgorICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0Fm
dGVyQ2FsbCh0MikKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDEK
KyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRocm93W3QxXSwgdDAKKyAgICBq
bXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJvd1t0MV0KKworCittYWNybyBu
YXRpdmVDYWxsVHJhbXBvbGluZShleGVjdXRhYmxlT2Zmc2V0VG9GdW5jdGlvbikKKyAgICBzdG9y
ZXAgMCwgQ29kZUJsb2NrW2Nmcl0KKyAgICBsb2FkcCBDYWxsZXJGcmFtZVtjZnJdLCB0MAorICAg
IGxvYWRwIFNjb3BlQ2hhaW5bdDBdLCB0MQorICAgIHN0b3JlcCB0MSwgU2NvcGVDaGFpbltjZnJd
CisgICAgcGVlayAwLCB0MQorICAgIHN0b3JlcCB0MSwgUmV0dXJuUENbY2ZyXQorICAgIG1vdmUg
Y2ZyLCB0NSAgIyB0NSA9IHJkaQorICAgIHN1YnAgMTYgLSA4LCBzcAorICAgIGxvYWRwIENhbGxl
ZVtjZnJdLCB0NCAjIHQ0ID0gcnNpCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxl
W3Q0XSwgdDEKKyAgICBtb3ZlIHQwLCBjZnIgIyBSZXN0b3JlIGNmciB0byBhdm9pZCBsb2FkaW5n
IGZyb20gc3RhY2sKKyAgICBjYWxsIGV4ZWN1dGFibGVPZmZzZXRUb0Z1bmN0aW9uW3QxXQorICAg
IGFkZHAgMTYgLSA4LCBzcAorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGEgKyA4
W3NwXSwgdDMKKyAgICBidHBueiBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvblt0M10sIC5leGNlcHRp
b24KKyAgICByZXQKKy5leGNlcHRpb246CisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJD
YWxsKHQxKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdGhyb3dfZnJvbV9uYXRpdmVfY2FsbCkK
KyAgICBqbXAgX2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmUKK2VuZAogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJw
cmV0ZXIuYXNtCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdvcmtpbmcgY29weSkKQEAgLTIxLDkgKzIxLDgy
NyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
IAorIyBGaXJzdCBjb21lIHRoZSBjb21tb24gcHJvdG9jb2xzIHRoYXQgYm90aCBpbnRlcnByZXRl
cnMgdXNlLiBOb3RlIHRoYXQgZWFjaAorIyBvZiB0aGVzZSBtdXN0IGhhdmUgYW4gQVNTRVJUKCkg
aW4gTExJbnREYXRhLmNwcAorCisjIFRoZXNlIGRlY2xhcmF0aW9ucyBtdXN0IG1hdGNoIGludGVy
cHJldGVyL1JlZ2lzdGVyRmlsZS5oLgorY29uc3QgQ2FsbEZyYW1lSGVhZGVyU2l6ZSA9IDQ4Citj
b25zdCBBcmd1bWVudENvdW50ID0gLTQ4Citjb25zdCBDYWxsZXJGcmFtZSA9IC00MAorY29uc3Qg
Q2FsbGVlID0gLTMyCitjb25zdCBTY29wZUNoYWluID0gLTI0Citjb25zdCBSZXR1cm5QQyA9IC0x
NgorY29uc3QgQ29kZUJsb2NrID0gLTgKKworY29uc3QgVGhpc0FyZ3VtZW50T2Zmc2V0ID0gLUNh
bGxGcmFtZUhlYWRlclNpemUgLSA4CisKKyMgU29tZSByZWdpc3RlciBjb252ZW50aW9ucy4KK2lm
IEpTVkFMVUU2NAorICAgICMgLSBVc2UgYSBwYWlyIG9mIHJlZ2lzdGVycyB0byByZXByZXNlbnQg
dGhlIFBDOiBvbmUgcmVnaXN0ZXIgZm9yIHRoZQorICAgICMgICBiYXNlIG9mIHRoZSByZWdpc3Rl
ciBmaWxlLCBhbmQgb25lIHJlZ2lzdGVyIGZvciB0aGUgaW5kZXguCisgICAgIyAtIFRoZSBQQyBi
YXNlIChvciBQQiBmb3Igc2hvcnQpIHNob3VsZCBiZSBzdG9yZWQgaW4gdGhlIGNzci4gSXQgd2ls
bAorICAgICMgICBnZXQgY2xvYmJlcmVkIG9uIGNhbGxzIHRvIG90aGVyIEpTIGNvZGUsIGJ1dCB3
aWxsIGdldCBzYXZlZCBvbiBjYWxscworICAgICMgICB0byBDIGZ1bmN0aW9ucy4KKyAgICAjIC0g
QyBjYWxscyBhcmUgc3RpbGwgZ2l2ZW4gdGhlIEluc3RydWN0aW9uKiByYXRoZXIgdGhhbiB0aGUg
UEMgaW5kZXguCisgICAgIyAgIFRoaXMgcmVxdWlyZXMgYW4gYWRkIGJlZm9yZSB0aGUgY2FsbCwg
YW5kIGEgc3ViIGFmdGVyLgorICAgIGNvbnN0IFBDID0gdDQKKyAgICBjb25zdCBQQiA9IHQ2Cisg
ICAgY29uc3QgdGFnVHlwZU51bWJlciA9IGNzcjEKKyAgICBjb25zdCB0YWdNYXNrID0gY3NyMgor
ZWxzZQorICAgIGNvbnN0IFBDID0gdDQKK2VuZAorCisjIENvbnN0YW50cyBmb3IgcmVhc29uaW5n
IGFib3V0IHZhbHVlIHJlcHJlc2VudGF0aW9uLgoraWYgQklHX0VORElBTgorICAgIGNvbnN0IFRh
Z09mZnNldCA9IDAKKyAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gNAorZWxzZQorICAgIGNvbnN0
IFRhZ09mZnNldCA9IDQKKyAgICBjb25zdCBQYXlsb2FkT2Zmc2V0ID0gMAorZW5kCisKKyMgVHlw
ZSBjb25zdGFudHMuCitjb25zdCBTdHJpbmdUeXBlID0gNQorY29uc3QgT2JqZWN0VHlwZSA9IDEz
CisKKyMgVHlwZSBmbGFncyBjb25zdGFudHMuCitjb25zdCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
ID0gMQorY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMgorY29uc3QgSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSA9IDgKKworIyBCeXRlY29kZSBvcGVyYW5kIGNvbnN0YW50cy4KK2Nv
bnN0IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4ID0gMHg0MDAwMDAwMAorCisjIENvZGUgdHlw
ZSBjb25zdGFudHMuCitjb25zdCBHbG9iYWxDb2RlID0gMAorY29uc3QgRXZhbENvZGUgPSAxCitj
b25zdCBGdW5jdGlvbkNvZGUgPSAyCisKKyMgVGhlIGludGVycHJldGVyIHN0ZWFscyB0aGUgdGFn
IHdvcmQgb2YgdGhlIGFyZ3VtZW50IGNvdW50LgorY29uc3QgTExJbnRSZXR1cm5QQyA9IEFyZ3Vt
ZW50Q291bnQgKyBUYWdPZmZzZXQKKworIyBTdHJpbmcgZmxhZ3MuCitjb25zdCBIYXNoRmxhZ3M4
Qml0QnVmZmVyID0gNjQKKworIyBBbGxvY2F0aW9uIGNvbnN0YW50cworaWYgSlNWQUxVRTY0Cisg
ICAgY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMQorZWxzZQorICAgIGNvbnN0
IEpTRmluYWxPYmplY3RTaXplQ2xhc3NJbmRleCA9IDMKK2VuZAorCisjIFRoaXMgbXVzdCBtYXRj
aCB3dGYvVmVjdG9yLmgKK2lmIEpTVkFMVUU2NAorICAgIGNvbnN0IFZlY3RvclNpemVPZmZzZXQg
PSAwCisgICAgY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gOAorZWxzZQorICAgIGNvbnN0IFZl
Y3RvclNpemVPZmZzZXQgPSAwCisgICAgY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAorZW5k
CisKKworIyBTb21lIGNvbW1vbiB1dGlsaXRpZXMuCittYWNybyBjcmFzaCgpCisgICAgc3RvcmVp
IDAsIDB4YmJhZGJlZWZbXQorICAgIG1vdmUgMCwgdDAKKyAgICBjYWxsIHQwCitlbmQKKworbWFj
cm8gYXNzZXJ0KGFzc2VydGlvbikKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAgICBhc3Nl
cnRpb24oLm9rKQorICAgICAgICBjcmFzaCgpCisgICAgLm9rOgorICAgIGVuZAorZW5kCisKK21h
Y3JvIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbChkZXN0aW5hdGlvblJlZ2lzdGVyKQor
ICAgIGlmIEFSTXY3CisgICAgICAgIG1vdmUgbHIsIGRlc3RpbmF0aW9uUmVnaXN0ZXIKKyAgICBl
bHNpZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAg
ZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAorZW5kCisKK21hY3JvIHJlc3RvcmVSZXR1cm5B
ZGRyZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQorICAgIGlmIEFSTXY3CisgICAgICAg
IG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCisgICAgZWxzaWYgWDg2IG9yIFg4Nl82NAorICAgICAg
ICBwdXNoIHNvdXJjZVJlZ2lzdGVyCisgICAgZWxzZQorICAgICAgICBlcnJvcgorICAgIGVuZAor
ZW5kCisKK21hY3JvIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwor
ICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3RyYWNlKQorICAgIGVuZAorZW5kCisKK21hY3Jv
IHNsb3dQYXRoRm9yQ2FsbChhZHZhbmNlLCBzbG93UGF0aCkKKyAgICBjYWxsQ2FsbFNsb3dQYXRo
KAorICAgICAgICBhZHZhbmNlLAorICAgICAgICBzbG93UGF0aCwKKyAgICAgICAgbWFjcm8gKGNh
bGxlZSkKKyAgICAgICAgICAgIGNhbGwgY2FsbGVlCisgICAgICAgICAgICBkaXNwYXRjaEFmdGVy
Q2FsbCgpCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklUKGluY3Jl
bWVudCwgYWN0aW9uKQorICAgIGlmIEpJVF9FTkFCTEVECisgICAgICAgIGxvYWRwIENvZGVCbG9j
a1tjZnJdLCB0MAorICAgICAgICBiYWRkaXMgaW5jcmVtZW50LCBDb2RlQmxvY2s6Om1fbGxpbnRF
eGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50ZXI6Om1fY291bnRlclt0MF0sIC5jb250aW51
ZQorICAgICAgICBhY3Rpb24oKQorICAgIC5jb250aW51ZToKKyAgICBlbmQKK2VuZAorCittYWNy
byBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQorICAgIGNoZWNrU3dpdGNoVG9KSVQoCisg
ICAgICAgIDEwLAorICAgICAgICBtYWNybyAoKQorICAgICAgICAgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9yZXBsYWNlKQorICAgICAgICBlbmQpCitlbmQKKworbWFjcm8gYXNzZXJ0Tm90Q29uc3Rh
bnQoaW5kZXgpCisgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwgRmlyc3RDb25zdGFu
dFJlZ2lzdGVySW5kZXgsIG9rIGVuZCkKK2VuZAorCittYWNybyBmdW5jdGlvbkZvckNhbGxDb2Rl
QmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdl
dFJlZ2lzdGVyCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lz
dGVyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29k
ZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFj
cm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisg
ICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgSlNGdW5jdGlv
bjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2Fk
cCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3RhcmdldFJlZ2lz
dGVyXSwgdGFyZ2V0UmVnaXN0ZXIKK2VuZAorCittYWNybyBub3RGdW5jdGlvbkNvZGVCbG9ja0dl
dHRlcih0YXJnZXRSZWdpc3RlcikKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFyZ2V0UmVn
aXN0ZXIKK2VuZAorCittYWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdpc3Rl
cikKKyAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCitlbmQKKworbWFj
cm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCisgICAgIyBOb3Ro
aW5nIHRvIGRvIQorZW5kCisKKyMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBleGVj
dXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgorIyBpbiB0MS4g
TWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCittYWNybyBwcm9sb2d1ZShjb2Rl
QmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgp
CisgICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQorICAgIAorICAgICMgU2V0
IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgorICAgIHN0b3Jl
cCB0MiwgUmV0dXJuUENbY2ZyXQorICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAgICAgIGNh
bGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQorICAgIGVuZAorICAgIGNvZGVCbG9ja0dldHRlcih0
MSkKKyAgICBpZiBKSVRfRU5BQkxFRAorICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjptX2xs
aW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50ZXJbdDFdLCAuY29u
dGludWUKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAgICBtb3Zl
IHQxLCBjZnIKKyAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgbG9hZHAgUmV0dXJu
UENbY2ZyXSwgdDIKKyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIp
CisgICAgICAgIGptcCB0MAorICAgIC5yZWNvdmVyOgorICAgICAgICBjb2RlQmxvY2tHZXR0ZXIo
dDEpCisgICAgLmNvbnRpbnVlOgorICAgIGVuZAorICAgIGNvZGVCbG9ja1NldHRlcih0MSkKKyAg
ICAKKyAgICAjIFNldCB1cCB0aGUgUEMuCisgICAgaWYgSlNWQUxVRTY0CisgICAgICAgIGxvYWRw
IENvZGVCbG9jazo6bV9pbnN0cnVjdGlvbnNbdDFdLCBQQgorICAgICAgICBtb3ZlIDAsIFBDCisg
ICAgZWxzZQorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEMK
KyAgICBlbmQKK2VuZAorCisjIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNo
IGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgorIyBNdXN0IGNhbGwgZGlzcGF0Y2go
MCkgYWZ0ZXIgY2FsbGluZyB0aGlzLgorbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihwcm9m
aWxlQXJnU2tpcCkKKyAgICBpZiBWQUxVRV9QUk9GSUxFUgorICAgICAgICAjIFByb2ZpbGUgdGhl
IGFyZ3VtZW50cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIGRvIHRo
aXMuIFRoaXMKKyAgICAgICAgIyBjb2RlIGlzIHByZXR0eSBob3JyZW5kb3VzIGJlY2F1c2Ugb2Yg
dGhlIGRpZmZlcmVuY2UgaW4gb3JkZXJpbmcgYmV0d2VlbgorICAgICAgICAjIGFyZ3VtZW50cyBh
bmQgdmFsdWUgcHJvZmlsZXMsIHRoZSBkZXNpcmUgdG8gaGF2ZSBhIHNpbXBsZSBsb29wLWRvd24t
dG8temVybworICAgICAgICAjIGxvb3AsIGFuZCB0aGUgZGVzaXJlIHRvIHVzZSBvbmx5IHRocmVl
IHJlZ2lzdGVycyBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgUEMgYW5kCisgICAgICAgICMgdGhlIGNv
ZGUgYmxvY2suIEl0IGlzIGxpa2VseSB0aGF0IHRoaXMgY29kZSBzaG91bGQgYmUgcmV3cml0dGVu
IGluIGEgbW9yZQorICAgICAgICAjIG9wdGltYWwgd2F5IGZvciBhcmNoaXRlY3R1cmVzIHRoYXQg
aGF2ZSBtb3JlIHRoYW4gZml2ZSByZWdpc3RlcnMgYXZhaWxhYmxlCisgICAgICAgICMgZm9yIGFy
Yml0cmFyeSB1c2UgaW4gdGhlIGludGVycHJldGVyLgorICAgICAgICBsb2FkaSBDb2RlQmxvY2s6
Om1fbnVtUGFyYW1ldGVyc1t0MV0sIHQwCisgICAgICAgIGFkZHAgLXByb2ZpbGVBcmdTa2lwLCB0
MCAjIFVzZSBhZGRpIGJlY2F1c2UgdGhhdCdzIHdoYXQgaGFzIHRoZSBwZWVwaG9sZQorICAgICAg
ICBhc3NlcnQobWFjcm8gKG9rKSBicGd0ZXEgdDAsIDAsIG9rIGVuZCkKKyAgICAgICAgYnRweiB0
MCwgLmFyZ3VtZW50UHJvZmlsZURvbmUKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2FyZ3Vt
ZW50VmFsdWVQcm9maWxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0MV0sIHQzCisgICAgICAgIG11
bHAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDAsIHQyICMgQWFhYWFoaGhoISBOZWVkIHN0cmVuZ3Ro
IHJlZHVjdGlvbiEKKyAgICAgICAgbmVncCB0MAorICAgICAgICBsc2hpZnRwIDMsIHQwCisgICAg
ICAgIGFkZHAgdDIsIHQzCisgICAgLmFyZ3VtZW50UHJvZmlsZUxvb3A6CisgICAgICAgIGlmIEpT
VkFMVUU2NAorICAgICAgICAgICAgbG9hZHAgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgOCAtIHByb2Zp
bGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIKKyAgICAgICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVl
UHJvZmlsZSwgdDMKKyAgICAgICAgICAgIHN0b3JlcCB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXpl
b2YgVmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHNbdDNdCisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRhZ09mZnNldCArIDgg
LSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBzdWJwIHNpemVv
ZiBWYWx1ZVByb2ZpbGUsIHQzCisgICAgICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lw
ICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgVGFnT2Zm
c2V0W3QzXQorICAgICAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9m
ZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgICAgICBz
dG9yZWkgdDIsIHByb2ZpbGVBcmdTa2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJv
ZmlsZTo6bV9idWNrZXRzICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICAgICAgZW5kCisgICAgICAg
IGJhZGRwbnogOCwgdDAsIC5hcmd1bWVudFByb2ZpbGVMb29wCisgICAgLmFyZ3VtZW50UHJvZmls
ZURvbmU6CisgICAgZW5kCisgICAgICAgIAorICAgICMgQ2hlY2sgc3RhY2sgaGVpZ2h0LgorICAg
IGxvYWRpIENvZGVCbG9jazo6bV9udW1DYWxsZWVSZWdpc3RlcnNbdDFdLCB0MAorICAgIGxvYWRw
IENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QxXSwgdDIKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6
OmludGVycHJldGVyW3QyXSwgdDIgICAjIEZJWE1FOiBDYW4gZ2V0IHRvIHRoZSBSZWdpc3RlckZp
bGUgZnJvbSB0aGUgSklUU3RhY2tGcmFtZQorICAgIGxzaGlmdGkgMywgdDAKKyAgICBhZGRwIHQw
LCBjZnIsIHQwCisgICAgYnBhZXEgSW50ZXJwcmV0ZXI6Om1fcmVnaXN0ZXJGaWxlICsgUmVnaXN0
ZXJGaWxlOjptX2VuZFt0Ml0sIHQwLCAuc3RhY2tIZWlnaHRPSworCisgICAgIyBTdGFjayBoZWln
aHQgY2hlY2sgZmFpbGVkIC0gbmVlZCB0byBjYWxsIGEgc2xvd19wYXRoLgorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfcmVnaXN0ZXJfZmlsZV9jaGVjaykKKy5zdGFja0hlaWdodE9LOgorZW5kCisK
K21hY3JvIGFsbG9jYXRlQmFzaWNKU09iamVjdChzaXplQ2xhc3NJbmRleCwgY2xhc3NJbmZvT2Zm
c2V0LCBzdHJ1Y3R1cmUsIHJlc3VsdCwgc2NyYXRjaDEsIHNjcmF0Y2gyLCBzbG93Q2FzZSkKKyAg
ICBpZiBBTFdBWVNfQUxMT0NBVEVfU0xPVworICAgICAgICBqbXAgc2xvd0Nhc2UKKyAgICBlbHNl
CisgICAgICAgIGNvbnN0IG9mZnNldE9mTXlTaXplQ2xhc3MgPQorICAgICAgICAgICAgSlNHbG9i
YWxEYXRhOjpoZWFwICsKKyAgICAgICAgICAgIEhlYXA6Om1fb2JqZWN0U3BhY2UgKworICAgICAg
ICAgICAgTWFya2VkU3BhY2U6Om1fbm9ybWFsU3BhY2UgKworICAgICAgICAgICAgTWFya2VkU3Bh
Y2U6OlN1YnNwYWNlOjpwcmVjaXNlQWxsb2NhdG9ycyArCisgICAgICAgICAgICBzaXplQ2xhc3NJ
bmRleCAqIHNpemVvZiBNYXJrZWRBbGxvY2F0b3IKKyAgICAgICAgCisgICAgICAgICMgRklYTUU6
IHdlIGNhbiBnZXQgdGhlIGdsb2JhbCBkYXRhIGluIG9uZSBsb2FkIGZyb20gdGhlIHN0YWNrLgor
ICAgICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgc2NyYXRjaDEKKyAgICAgICAgbG9hZHAgQ29k
ZUJsb2NrOjptX2dsb2JhbERhdGFbc2NyYXRjaDFdLCBzY3JhdGNoMQorICAgICAgICAKKyAgICAg
ICAgIyBHZXQgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuICAgIAorICAgICAgICBsb2Fk
cCBvZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9yOjptX2ZpcnN0RnJlZUNlbGxb
c2NyYXRjaDFdLCByZXN1bHQKKyAgICAgICAgYnRweiByZXN1bHQsIHNsb3dDYXNlCisgICAgICAg
IAorICAgICAgICAjIFJlbW92ZSB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUgbGlzdC4KKyAgICAg
ICAgbG9hZHAgW3Jlc3VsdF0sIHNjcmF0Y2gyCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgb2Zm
c2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0
Y2gxXQorICAgIAorICAgICAgICAjIEluaXRpYWxpemUgdGhlIG9iamVjdC4KKyAgICAgICAgbG9h
ZHAgY2xhc3NJbmZvT2Zmc2V0W3NjcmF0Y2gxXSwgc2NyYXRjaDIKKyAgICAgICAgc3RvcmVwIHNj
cmF0Y2gyLCBbcmVzdWx0XQorICAgICAgICBzdG9yZXAgc3RydWN0dXJlLCBKU0NlbGw6Om1fc3Ry
dWN0dXJlW3Jlc3VsdF0KKyAgICAgICAgc3RvcmVwIDAsIEpTT2JqZWN0OjptX2luaGVyaXRvcklE
W3Jlc3VsdF0KKyAgICAgICAgYWRkcCBzaXplb2YgSlNPYmplY3QsIHJlc3VsdCwgc2NyYXRjaDEK
KyAgICAgICAgc3RvcmVwIHNjcmF0Y2gxLCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbcmVz
dWx0XQorICAgIGVuZAorZW5kCisKK21hY3JvIGRvUmV0dXJuKCkKKyAgICBsb2FkcCBSZXR1cm5Q
Q1tjZnJdLCB0MgorICAgIGxvYWRwIENhbGxlckZyYW1lW2Nmcl0sIGNmcgorICAgIHJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHQyKQorICAgIHJldAorZW5kCisKKworIyBJbmRpY2F0
ZSB0aGUgYmVnaW5uaW5nIG9mIExMSW50LgorX2xsaW50X2JlZ2luOgorICAgIGNyYXNoKCkKKwor
CitfbGxpbnRfcHJvZ3JhbV9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVC
bG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3Is
IF9sbGludF90cmFjZV9wcm9sb2d1ZSkKKyAgICBkaXNwYXRjaCgwKQorCisKK19sbGludF9ldmFs
X3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RG
dW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNlX3By
b2xvZ3VlKQorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX3By
b2xvZ3VlOgorICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVu
Y3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGws
IF9sbGludF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY2FsbCkKKy5mdW5jdGlvbkZvckNh
bGxCZWdpbjoKKyAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDApCisgICAgZGlzcGF0Y2goMCkK
KyAgICAKKworX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfcHJvbG9ndWU6CisgICAgcHJv
bG9ndWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJs
b2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QsIF9sbGlu
dF90cmFjZV9wcm9sb2d1ZV9mdW5jdGlvbl9mb3JfY29uc3RydWN0KQorLmZ1bmN0aW9uRm9yQ29u
c3RydWN0QmVnaW46CisgICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigxKQorICAgIGRpc3BhdGNo
KDApCisgICAgCisKK19sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eV9jaGVjazoKKyAgICBw
cm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2Nr
U2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5Q2hlY2ssIF9s
bGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9jYWxsKQorICAgIGZ1bmN0aW9uQXJpdHlDaGVjaygu
ZnVuY3Rpb25Gb3JDYWxsQmVnaW4sIF9sbGludF9zbG93X3BhdGhfY2FsbF9hcml0eUNoZWNrKQor
CisKK19sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5X2NoZWNrOgorICAgIHByb2xv
Z3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9j
a1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0X2FyaXR5Q2hl
Y2ssIF9sbGludF90cmFjZV9hcml0eUNoZWNrX2Zvcl9jb25zdHJ1Y3QpCisgICAgZnVuY3Rpb25B
cml0eUNoZWNrKC5mdW5jdGlvbkZvckNvbnN0cnVjdEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2Nv
bnN0cnVjdF9hcml0eUNoZWNrKQorCisKKyMgVmFsdWUtcmVwcmVzZW50YXRpb24tc3BlY2lmaWMg
Y29kZS4KIGlmIEpTVkFMVUU2NAogICAgIGluY2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRlcjY0CiBl
bHNlCiAgICAgaW5jbHVkZSBMb3dMZXZlbEludGVycHJldGVyMzJfNjQKIGVuZAogCisKKyMgVmFs
dWUtcmVwcmVzZW50YXRpb24tYWdub3N0aWMgY29kZS4KK19sbGludF9vcF9uZXdfYXJyYXk6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25l
d19hcnJheSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9uZXdfYXJyYXlfYnVmZmVy
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9uZXdfYXJyYXlfYnVmZmVyKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX25ld19y
ZWdleHA6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX25ld19yZWdleHApCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfbGVzczoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
bGVzcykKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9sZXNzZXE6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3NlcSkKKyAg
ICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9ncmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVyKQorICAgIGRpc3Bh
dGNoKDQpCisKKworX2xsaW50X29wX2dyZWF0ZXJlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcmVxKQorICAgIGRpc3BhdGNo
KDQpCisKKworX2xsaW50X29wX21vZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfbW9kKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX3R5cGVvZjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfdHlwZW9mKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX3Vu
ZGVmaW5lZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfaXNfdW5kZWZpbmVkKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lz
X2Jvb2xlYW46CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2lzX2Jvb2xlYW4pCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNf
bnVtYmVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9pc19udW1iZXIpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfc3Ry
aW5nOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9pc19zdHJpbmcpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfb2JqZWN0
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9pc19vYmplY3QpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfZnVuY3Rpb246
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2lzX2Z1bmN0aW9uKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2luOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbikKKyAg
ICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9yZXNvbHZlOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlKQorICAgIGRpc3Bh
dGNoKDQpCisKKworX2xsaW50X29wX3Jlc29sdmVfc2tpcDoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9za2lwKQorICAgIGRp
c3BhdGNoKDUpCisKKworX2xsaW50X29wX3Jlc29sdmVfYmFzZToKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9iYXNlKQorICAg
IGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHM6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2Vuc3Vy
ZV9wcm9wZXJ0eV9leGlzdHMpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfcmVzb2x2
ZV93aXRoX2Jhc2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3Jlc29sdmVfd2l0aF9iYXNlKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xs
aW50X29wX3Jlc29sdmVfd2l0aF90aGlzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfdGhpcykKKyAgICBkaXNwYXRj
aCg1KQorCisKK19sbGludF9vcF9kZWxfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKKyAgICBkaXNwYXRjaCg0
KQorCisKK19sbGludF9vcF9kZWxfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxfYnlfdmFsKQorICAgIGRpc3BhdGNoKDQp
CisKKworX2xsaW50X29wX3B1dF9ieV9pbmRleDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2J5X2luZGV4KQorICAgIGRpc3BhdGNo
KDQpCisKKworX2xsaW50X29wX3B1dF9nZXR0ZXJfc2V0dGVyOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfZ2V0dGVyX3NldHRlcikK
KyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9qbXBfc2NvcGVzOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9qbXBfc2NvcGVzKQor
ICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X29wX2xvb3BfaWZfdHJ1ZToKKyAgICBub3AKK19s
bGludF9vcF9qdHJ1ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAganVtcFRydWVPckZhbHNl
KAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRpbnogdmFsdWUsIHRhcmdldCBlbmQs
CisgICAgICAgIF9sbGludF9zbG93X3BhdGhfanRydWUpCisKKworX2xsaW50X29wX2xvb3BfaWZf
ZmFsc2U6CisgICAgbm9wCitfbGxpbnRfb3BfamZhbHNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBqdW1wVHJ1ZU9yRmFsc2UoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGl6
IHZhbHVlLCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pmYWxzZSkKKwor
CitfbGxpbnRfb3BfbG9vcF9pZl9sZXNzOgorICAgIG5vcAorX2xsaW50X29wX2psZXNzOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmln
aHQsIHRhcmdldCkgYmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHQgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAg
ICAgIF9sbGludF9zbG93X3BhdGhfamxlc3MpCisKKworX2xsaW50X29wX2pubGVzczoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCB0YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8g
KGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3RlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAor
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzcykKKworCitfbGxpbnRfb3BfbG9vcF9pZl9n
cmVhdGVyOgorICAgIG5vcAorX2xsaW50X29wX2pncmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmln
dCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0
YXJnZXQpIGJkZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfamdyZWF0ZXIpCisKKworX2xsaW50X29wX2puZ3JlYXRlcjoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQp
IGJpbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJp
Z2h0LCB0YXJnZXQpIGJkbHRlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBf
bGxpbnRfc2xvd19wYXRoX2puZ3JlYXRlcikKKworCitfbGxpbnRfb3BfbG9vcF9pZl9sZXNzZXE6
CisgICAgbm9wCitfbGxpbnRfb3Bfamxlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHRlcSBsZWZ0
LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQp
IGJkbHRlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9qbGVzc2VxKQorCisKK19sbGludF9vcF9qbmxlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3Qg
bGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFy
Z2V0KSBiZGd0dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93
X3BhdGhfam5sZXNzZXEpCisKKworX2xsaW50X29wX2xvb3BfaWZfZ3JlYXRlcmVxOgorICAgIG5v
cAorX2xsaW50X29wX2pncmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBh
cmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVmdCwgcmln
aHQsIHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0
ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfamdy
ZWF0ZXJlcSkKKworCitfbGxpbnRfb3Bfam5ncmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0
IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRh
cmdldCkgYmRsdHVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xv
d19wYXRoX2puZ3JlYXRlcmVxKQorCisKK19sbGludF9vcF9sb29wX2hpbnQ6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKKyAgICBkaXNwYXRjaCgx
KQorCisKK19sbGludF9vcF9zd2l0Y2hfc3RyaW5nOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hfc3RyaW5nKQorICAgIGRpc3Bh
dGNoKDApCisKKworX2xsaW50X29wX25ld19mdW5jX2V4cDoKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmNfZXhwKQorICAgIGRp
c3BhdGNoKDMpCisKKworX2xsaW50X29wX2NhbGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NhbGwpCisKKworX2xsaW50X29wX2NvbnN0cnVjdDoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZG9DYWxsKF9sbGludF9zbG93X3BhdGhfY29uc3Ry
dWN0KQorCisKK19sbGludF9vcF9jYWxsX3ZhcmFyZ3M6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfdmFyYXJncykKKwor
CitfbGxpbnRfb3BfY2FsbF9ldmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAKKyAgICAj
IEV2YWwgaXMgZXhlY3V0ZWQgaW4gb25lIG9mIHR3byBtb2RlczoKKyAgICAjCisgICAgIyAxKSBX
ZSBmaW5kIHRoYXQgd2UncmUgcmVhbGx5IGludm9raW5nIGV2YWwoKSBpbiB3aGljaCBjYXNlIHRo
ZQorICAgICMgICAgZXhlY3V0aW9uIGlzIHBlcmZvbWVkIGVudGlyZWx5IGluc2lkZSB0aGUgc2xv
d19wYXRoLCBhbmQgaXQKKyAgICAjICAgIHJldHVybnMgdGhlIFBDIG9mIGEgZnVuY3Rpb24gdGhh
dCBqdXN0IHJldHVybnMgdGhlIHJldHVybiB2YWx1ZQorICAgICMgICAgdGhhdCB0aGUgZXZhbCBy
ZXR1cm5lZC4KKyAgICAjCisgICAgIyAyKSBXZSBmaW5kIHRoYXQgd2UncmUgaW52b2tpbmcgc29t
ZXRoaW5nIGNhbGxlZCBldmFsKCkgdGhhdCBpcyBub3QKKyAgICAjICAgIHRoZSByZWFsIGV2YWwu
IFRoZW4gdGhlIHNsb3dfcGF0aCByZXR1cm5zIHRoZSBQQyBvZiB0aGUgdGhpbmcgdG8KKyAgICAj
ICAgIGNhbGwsIGFuZCB3ZSBjYWxsIGl0LgorICAgICMKKyAgICAjIFRoaXMgYWxsb3dzIHVzIHRv
IGhhbmRsZSB0d28gY2FzZXMsIHdoaWNoIHdvdWxkIHJlcXVpcmUgYSB0b3RhbCBvZgorICAgICMg
dXAgdG8gZm91ciBwaWVjZXMgb2Ygc3RhdGUgdGhhdCBjYW5ub3QgYmUgZWFzaWx5IHBhY2tlZCBp
bnRvIHR3bworICAgICMgcmVnaXN0ZXJzIChDIGZ1bmN0aW9ucyBjYW4gcmV0dXJuIHVwIHRvIHR3
byByZWdpc3RlcnMsIGVhc2lseSk6CisgICAgIworICAgICMgLSBUaGUgY2FsbCBmcmFtZSByZWdp
c3Rlci4gVGhpcyBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4gbW9kaWZpZWQKKyAgICAjICAgYnkg
dGhlIHNsb3dfcGF0aCwgYnV0IHRoZSBjb252ZW50aW9uIGlzIHRoYXQgaXQgcmV0dXJucyBpdC4g
SXQncyBub3QKKyAgICAjICAgdG90YWxseSBjbGVhciBpZiB0aGF0J3MgbmVjZXNzYXJ5LCBzaW5j
ZSB0aGUgY2ZyIGlzIGNhbGxlZSBzYXZlLgorICAgICMgICBCdXQgdGhhdCdzIG91ciBzdHlsZSBp
biB0aGlzIGhlcmUgaW50ZXJwcmV0ZXIgc28gd2Ugc3RpY2sgd2l0aCBpdC4KKyAgICAjCisgICAg
IyAtIEEgYml0IHRvIHNheSBpZiB0aGUgc2xvd19wYXRoIHN1Y2Nlc3NmdWxseSBleGVjdXRlZCB0
aGUgZXZhbCBhbmQgaGFzCisgICAgIyAgIHRoZSByZXR1cm4gdmFsdWUsIG9yIGRpZCBub3QgZXhl
Y3V0ZSB0aGUgZXZhbCBidXQgaGFzIGEgUEMgZm9yIHVzCisgICAgIyAgIHRvIGNhbGwuCisgICAg
IworICAgICMgLSBFaXRoZXI6CisgICAgIyAgIC0gVGhlIEpTIHJldHVybiB2YWx1ZSAodHdvIHJl
Z2lzdGVycyksIG9yCisgICAgIworICAgICMgICAtIFRoZSBQQyB0byBjYWxsLgorICAgICMKKyAg
ICAjIEl0IHR1cm5zIG91dCB0byBiZSBlYXNpZXIgdG8ganVzdCBhbHdheXMgaGF2ZSB0aGlzIHJl
dHVybiB0aGUgY2ZyCisgICAgIyBhbmQgYSBQQyB0byBjYWxsLCBhbmQgdGhhdCBQQyBtYXkgYmUg
YSBkdW1teSB0aHVuayB0aGF0IGp1c3QKKyAgICAjIHJldHVybnMgdGhlIEpTIHZhbHVlIHRoYXQg
dGhlIGV2YWwgcmV0dXJuZWQuCisgICAgCisgICAgc2xvd1BhdGhGb3JDYWxsKDQsIF9sbGludF9z
bG93X3BhdGhfY2FsbF9ldmFsKQorCisKK19sbGludF9nZW5lcmljX3JldHVybl9wb2ludDoKKyAg
ICBkaXNwYXRjaEFmdGVyQ2FsbCgpCisKKworX2xsaW50X29wX3N0cmNhdDoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3RyY2F0KQorICAg
IGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX21ldGhvZF9jaGVjazoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgIyBXZSBpZ25vcmUgbWV0aG9kIGNoZWNrcyBhbmQgdXNlIG5vcm1hbCBnZXRf
YnlfaWQgb3B0aW1pemF0aW9ucy4KKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9vcF9nZXRf
cG5hbWVzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9nZXRfcG5hbWVzKQorICAgIGRpc3BhdGNoKDApICMgVGhlIHNsb3dfcGF0aCBlaXRo
ZXIgYWR2YW5jZXMgdGhlIFBDIG9yIGp1bXBzIHVzIHRvIHNvbWV3aGVyZSBlbHNlLgorCisKK19s
bGludF9vcF9wdXNoX3Njb3BlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX3Njb3BlKQorICAgIGRpc3BhdGNoKDIpCisKKworX2xs
aW50X29wX3BvcF9zY29wZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfcG9wX3Njb3BlKQorICAgIGRpc3BhdGNoKDEpCisKKworX2xsaW50
X29wX3B1c2hfbmV3X3Njb3BlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX25ld19zY29wZSkKKyAgICBkaXNwYXRjaCg0KQorCisK
K19sbGludF9vcF90aHJvdzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfdGhyb3cpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3Bf
dGhyb3dfcmVmZXJlbmNlX2Vycm9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvd19yZWZlcmVuY2VfZXJyb3IpCisgICAgZGlzcGF0
Y2goMikKKworCitfbGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZVtz
cF0sIHQwCisgICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpCisub3BQcm9maWxlV2ls
bENhbGxEb25lOgorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX3Byb2ZpbGVfZGlkX2Nh
bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJs
ZWRQcm9maWxlclJlZmVyZW5jZVtzcF0sIHQwCisgICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2ls
bENhbGxEb25lCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV9kaWRf
Y2FsbCkKKy5vcFByb2ZpbGVEaWRDYWxsRG9uZToKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGlu
dF9vcF9kZWJ1ZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfZGVidWcpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfbmF0aXZlX2Nh
bGxfdHJhbXBvbGluZToKKyAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRhYmxl
OjptX2Z1bmN0aW9uKQorCisKK19sbGludF9uYXRpdmVfY29uc3RydWN0X3RyYW1wb2xpbmU6Cisg
ICAgbmF0aXZlQ2FsbFRyYW1wb2xpbmUoTmF0aXZlRXhlY3V0YWJsZTo6bV9jb25zdHJ1Y3RvcikK
KworCisjIExhc3RseSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsgZXZlbiB0aG91Z2ggd2Ug
ZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KKyMgVGhlc2Ugb3Bjb2RlcyBzaG91bGQgbmV2ZXIg
YXJpc2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBhc3NlcnQKKyMgYXMgbXVj
aC4KKworbWFjcm8gbm90U3VwcG9ydGVkKCkKKyAgICBpZiBBU1NFUlRfRU5BQkxFRAorICAgICAg
ICBjcmFzaCgpCisgICAgZWxzZQorICAgICAgICAjIFdlIHNob3VsZCB1c2Ugd2hhdGV2ZXIgdGhl
IHNtYWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRvCisgICAgICAgICMgZW5z
dXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlvbiBsYWJlbHMuIElmIG11
bHRpcGxlCisgICAgICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4aXN0LCB3ZSBzaG91bGQg
cGljayB0aGUgb25lIHRoYXQgaXMgbW9zdAorICAgICAgICAjIGxpa2VseSByZXN1bHQgaW4gZXhl
Y3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhlIGJyZWFrCisgICAgICAg
ICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUgaW50ZXJlc3RlZCBpbi4g
KEJyZWFrIGlzIGludDMKKyAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2ggaXMgMSBieXRlLCBhbmQg
YmtwdCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRlcy4pCisgICAgICAgIGJyZWFrCisgICAgZW5k
CitlbmQKKworX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkK
KworX2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxp
bnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxp
bnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxp
bnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGlu
dF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3Bf
Z2V0X2J5X2lkX2dldHRlcl9jaGFpbjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3Bf
Z2V0X2J5X2lkX2dldHRlcl9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3Bf
Z2V0X2J5X2lkX2dldHRlcl9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9n
ZXRfYnlfaWRfcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9p
ZF9zZWxmOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfc3RyaW5nX2xlbmd0
aDoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX2dlbmVyaWM6Cisg
ICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9yZXBsYWNlOgorICAgIG5v
dFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbjoKKyAgICBub3RT
dXBwb3J0ZWQoKQorCisKKyMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTEludC4KK19sbGludF9lbmQ6
CisgICAgY3Jhc2goKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm12Ny5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9h
cm12Ny5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYXJtdjcucmIJKHdvcmtpbmcgY29weSkKQEAgLTMzLDI5ICszMyw5IEBAIGNsYXNzIE5v
ZGUKIGVuZAogCiBjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCi0gICAgZGVmIGlu
aXRpYWxpemUobmFtZSkKLSAgICAgICAgQG5hbWUgPSBuYW1lCi0gICAgZW5kCi0gICAgCiAgICAg
ZGVmIGFybVY3T3BlcmFuZAogICAgICAgICBAbmFtZQogICAgIGVuZAotICAgIAotICAgIGRlZiBh
ZGRyZXNzPwotICAgICAgICBmYWxzZQotICAgIGVuZAotICAgIAotICAgIGRlZiBsYWJlbD8KLSAg
ICAgICAgZmFsc2UKLSAgICBlbmQKLSAgICAKLSAgICBkZWYgaW1tZWRpYXRlPwotICAgICAgICBm
YWxzZQotICAgIGVuZAotICAgIAotICAgIGRlZiByZWdpc3Rlcj8KLSAgICAgICAgdHJ1ZQotICAg
IGVuZAogZW5kCiAKIEFSTXY3X0VYVFJBX0dQUlMgPSBbU3BlY2lhbFJlZ2lzdGVyLm5ldygicjki
KSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjgiKSwgU3BlY2lhbFJlZ2lzdGVyLm5ldygicjMiKV0K
QEAgLTIyOCw3ICsyMDgsNyBAQCBkZWYgYXJtVjdMb3dlclNoaWZ0T3BzKGxpc3QpCiAgICAgICAg
IHwgbm9kZSB8CiAgICAgICAgIGlmIG5vZGUuaXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAg
IGNhc2Ugbm9kZS5vcGNvZGUKLSAgICAgICAgICAgIHdoZW4gImxzaGlmdGkiLCAicnNoaWZ0aSIs
ICJ1cnNoaWZ0aSIKKyAgICAgICAgICAgIHdoZW4gImxzaGlmdGkiLCAicnNoaWZ0aSIsICJ1cnNo
aWZ0aSIsICJsc2hpZnRwIiwgInJzaGlmdHAiLCAidXJzaGlmdHAiCiAgICAgICAgICAgICAgICAg
aWYgbm9kZS5vcGVyYW5kcy5zaXplID09IDIKICAgICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8
PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgW2FybVY3U2Fu
aXRpemVTaGlmdChub2RlLm9wZXJhbmRzWzBdLCBuZXdMaXN0KSwgbm9kZS5vcGVyYW5kc1sxXV0p
CiAgICAgICAgICAgICAgICAgZWxzZQpAQCAtNDY5LDcgKzQ0OSw3IEBAIGRlZiBhcm1WN0xvd2Vy
TWFsZm9ybWVkSW1tZWRpYXRlcyhsaXN0KQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgbmV3TGlzdCA8PCBub2RlLmFybVY3TG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVz
UmVjdXJzZShuZXdMaXN0KQogICAgICAgICAgICAgICAgIGVuZAotICAgICAgICAgICAgd2hlbiAi
bXVsaSIKKyAgICAgICAgICAgIHdoZW4gIm11bGkiLCAibXVscCIKICAgICAgICAgICAgICAgICBp
ZiBub2RlLm9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQogICAgICAgICAgICAgICAgICAgICB0
bXAgPSBUbXAubmV3KGNvZGVPcmlnaW4sIDpncHIpCiAgICAgICAgICAgICAgICAgICAgIG5ld0xp
c3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5vZGUuY29kZU9yaWdpbiwgIm1vdmUiLCBbbm9kZS5vcGVy
YW5kc1swXSwgdG1wXSkKQEAgLTUzNSw5ICs1MTUsOSBAQCBkZWYgYXJtVjdMb3dlck1pc3BsYWNl
ZEFkZHJlc3NlcyhsaXN0KQogICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCiAgICAg
ICAgICAgICBwb3N0SW5zdHJ1Y3Rpb25zID0gW10KICAgICAgICAgICAgIGNhc2Ugbm9kZS5vcGNv
ZGUKLSAgICAgICAgICAgIHdoZW4gImFkZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRpIiwgImFu
ZHAiLCAibHNoaWZ0aSIsICJtdWxpIiwgIm5lZ2kiLCAibm90aSIsICJvcmkiLCAib3JpcyIsCi0g
ICAgICAgICAgICAgICAgIm9ycCIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInN1YmkiLCAic3Vi
cCIsICJzdWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJpLywgL15icC8sIC9eYnRpLywKLSAgICAg
ICAgICAgICAgICAvXmJ0cC8sIC9eY2kvLCAvXmNwLywgL150aS8KKyAgICAgICAgICAgIHdoZW4g
ImFkZGkiLCAiYWRkcCIsICJhZGRpcyIsICJhbmRpIiwgImFuZHAiLCAibHNoaWZ0aSIsICJsc2hp
ZnRwIiwgIm11bGkiLCAibXVscCIsICJuZWdpIiwKKyAgICAgICAgICAgICAgICAibmVncCIsICJu
b3RpIiwgIm9yaSIsICJvcmlzIiwgIm9ycCIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgInJzaGlm
dHAiLCAidXJzaGlmdHAiLCAic3ViaSIsCisgICAgICAgICAgICAgICAgInN1YnAiLCAic3ViaXMi
LCAieG9yaSIsICJ4b3JwIiwgL15iaS8sIC9eYnAvLCAvXmJ0aS8sIC9eYnRwLywgL15jaS8sIC9e
Y3AvLCAvXnRpLwogICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG5v
ZGUuY29kZU9yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBub2RlLm9wY29kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcm1WN0FzUmVnaXN0ZXJzKG5ld0xpc3QsIHBvc3RJbnN0cnVjdGlvbnMsIG5vZGUub3BlcmFu
ZHMsICJpIikpCkBAIC02NDksNyArNjI5LDcgQEAgZW5kCiAjCiAKIGNsYXNzIFNlcXVlbmNlCi0g
ICAgZGVmIGxvd2VyQVJNdjcKKyAgICBkZWYgZ2V0TW9kaWZpZWRMaXN0QVJNdjcKICAgICAgICAg
bXlMaXN0ID0gQGxpc3QKICAgICAgICAgCiAgICAgICAgICMgVmVyaWZ5IHRoYXQgd2Ugd2lsbCBv
bmx5IHNlZSBpbnN0cnVjdGlvbnMgYW5kIGxhYmVscy4KQEAgLTY3MywxMCArNjUzLDggQEAgY2xh
c3MgU2VxdWVuY2UKICAgICAgICAgbXlMaXN0ID0gYXJtVjdMb3dlclJlZ2lzdGVyUmV1c2UobXlM
aXN0KQogICAgICAgICBteUxpc3QgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKG15TGlz
dCwgOmdwciwgQVJNdjdfRVhUUkFfR1BSUykKICAgICAgICAgbXlMaXN0ID0gYXNzaWduUmVnaXN0
ZXJzVG9UZW1wb3JhcmllcyhteUxpc3QsIDpmcHIsIEFSTXY3X0VYVFJBX0ZQUlMpCi0gICAgICAg
IG15TGlzdC5lYWNoIHsKLSAgICAgICAgICAgIHwgbm9kZSB8Ci0gICAgICAgICAgICBub2RlLmxv
d2VyKCJBUk12NyIpCi0gICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHJldHVybiBteUxpc3QK
ICAgICBlbmQKIGVuZAogCkBAIC03OTIsMTMgKzc3MCwxMyBAQCBjbGFzcyBJbnN0cnVjdGlvbgog
ICAgICAgICAgICAgZW1pdEFybVY3Q29tcGFjdCgib3JycyIsICJvcnJzIiwgb3BlcmFuZHMpCiAg
ICAgICAgIHdoZW4gInhvcmkiLCAieG9ycCIKICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3Qo
ImVvcnMiLCAiZW9yIiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gImxzaGlmdGkiCisgICAgICAg
IHdoZW4gImxzaGlmdGkiLCAibHNoaWZ0cCIKICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3Qo
ImxzbHMiLCAibHNscyIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJyc2hpZnRpIgorICAgICAg
ICB3aGVuICJyc2hpZnRpIiwgInJzaGlmdHAiCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0
KCJhc3JzIiwgImFzcnMiLCBvcGVyYW5kcykKLSAgICAgICAgd2hlbiAidXJzaGlmdGkiCisgICAg
ICAgIHdoZW4gInVyc2hpZnRpIiwgInVyc2hpZnRwIgogICAgICAgICAgICAgZW1pdEFybVY3Q29t
cGFjdCgibHNycyIsICJsc3JzIiwgb3BlcmFuZHMpCi0gICAgICAgIHdoZW4gIm11bGkiCisgICAg
ICAgIHdoZW4gIm11bGkiLCAibXVscCIKICAgICAgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0g
MiBvciBvcGVyYW5kc1swXSA9PSBvcGVyYW5kc1syXSBvciBvcGVyYW5kc1sxXSA9PSBvcGVyYW5k
c1syXQogICAgICAgICAgICAgICAgIGVtaXRBcm1WNygibXVscyIsIG9wZXJhbmRzKQogICAgICAg
ICAgICAgZWxzZQpAQCAtODA3LDExICs3ODUsMTEgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgICAgIGVuZAogICAgICAgICB3aGVuICJzdWJpIiwgInN1YnAiLCAic3ViaXMiCiAgICAgICAg
ICAgICBlbWl0QXJtVjdDb21wYWN0KCJzdWJzIiwgInN1YnMiLCBvcGVyYW5kcykKLSAgICAgICAg
d2hlbiAibmVnaSIKKyAgICAgICAgd2hlbiAibmVnaSIsICJuZWdwIgogICAgICAgICAgICAgJGFz
bS5wdXRzICJyc2JzICN7b3BlcmFuZHNbMF0uYXJtVjdPcGVyYW5kfSwgI3tvcGVyYW5kc1swXS5h
cm1WN09wZXJhbmR9LCBcIzAiCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAgICAkYXNt
LnB1dHMgIm12bnMgI3tvcGVyYW5kc1swXS5hcm1WN09wZXJhbmR9LCAje29wZXJhbmRzWzBdLmFy
bVY3T3BlcmFuZH0iCi0gICAgICAgIHdoZW4gImxvYWRpIiwgImxvYWRwIgorICAgICAgICB3aGVu
ICJsb2FkaSIsICJsb2FkaXMiLCAibG9hZHAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgImxkciAj
e2FybVY3RmxpcHBlZE9wZXJhbmRzKG9wZXJhbmRzKX0iCiAgICAgICAgIHdoZW4gInN0b3JlaSIs
ICJzdG9yZXAiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInN0ciAje2FybVY3T3BlcmFuZHMob3Bl
cmFuZHMpfSIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5yYgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc20ucmIJKHJl
dmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FzbS5y
Ygkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2Nyw3IEBAIEZpbGUub3BlbihvdXRwdXRGbG5t
LCAidyIpIHsKICAgICAgICAgZm9yU2V0dGluZ3MoY29tcHV0ZVNldHRpbmdzQ29tYmluYXRpb25z
KGFzdClbY29uZmlnSW5kZXhdLCBhc3QpIHsKICAgICAgICAgICAgIHwgY29uY3JldGVTZXR0aW5n
cywgbG93TGV2ZWxBU1QsIGJhY2tlbmQgfAogICAgICAgICAgICAgbG93TGV2ZWxBU1QgPSBsb3dM
ZXZlbEFTVC5yZXNvbHZlKCpidWlsZE9mZnNldHNNYXAobG93TGV2ZWxBU1QsIG9mZnNldHNMaXN0
KSkKKyAgICAgICAgICAgIGxvd0xldmVsQVNULnZhbGlkYXRlCiAgICAgICAgICAgICBlbWl0Q29k
ZUluQ29uZmlndXJhdGlvbihjb25jcmV0ZVNldHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCkg
ewogICAgICAgICAgICAgICAgICRhc20uaW5Bc20gewogICAgICAgICAgICAgICAgICAgICBsb3dM
ZXZlbEFTVC5sb3dlcihiYWNrZW5kKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vYXN0LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5l
YXNtL2FzdC5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vYXN0LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zODMsNiArMzgzLDE1NyBAQCBjbGFz
cyBOZWdJbW1lZGlhdGUgPCBOb2RlCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgT3JJbW1lZGlhdGVz
IDwgTm9kZQorICAgIGF0dHJfcmVhZGVyIDpsZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5p
dGlhbGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCByaWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdp
bikKKyAgICAgICAgQGxlZnQgPSBsZWZ0CisgICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5k
CisgICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVu
ZAorICAgIAorICAgIGRlZiBtYXBDaGlsZHJlbgorICAgICAgICBPckltbWVkaWF0ZXMubmV3KGNv
ZGVPcmlnaW4sICh5aWVsZCBAbGVmdCksICh5aWVsZCBAcmlnaHQpKQorICAgIGVuZAorICAgIAor
ICAgIGRlZiBkdW1wCisgICAgICAgICIoI3tsZWZ0LmR1bXB9IHwgI3tyaWdodC5kdW1wfSkiCisg
ICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisg
ICAgCisgICAgZGVmIGxhYmVsPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRl
ZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0
ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5kCitlbmQKKworY2xhc3MgQW5kSW1tZWRpYXRlcyA8
IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6bGVmdCwgOnJpZ2h0CisgICAgCisgICAgZGVmIGluaXRp
YWxpemUoY29kZU9yaWdpbiwgbGVmdCwgcmlnaHQpCisgICAgICAgIHN1cGVyKGNvZGVPcmlnaW4p
CisgICAgICAgIEBsZWZ0ID0gbGVmdAorICAgICAgICBAcmlnaHQgPSByaWdodAorICAgIGVuZAor
ICAgIAorICAgIGRlZiBjaGlsZHJlbgorICAgICAgICBbQGxlZnQsIEByaWdodF0KKyAgICBlbmQK
KyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgQW5kSW1tZWRpYXRlcy5uZXcoY29k
ZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwgKHlpZWxkIEByaWdodCkpCisgICAgZW5kCisgICAgCisg
ICAgZGVmIGR1bXAKKyAgICAgICAgIigje2xlZnQuZHVtcH0gJiAje3JpZ2h0LmR1bXB9KSIKKyAg
ICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAg
ICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVm
IGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorICAgIAorICAgIGRlZiByZWdpc3Rl
cj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKK2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVzIDwg
Tm9kZQorICAgIGF0dHJfcmVhZGVyIDpsZWZ0LCA6cmlnaHQKKyAgICAKKyAgICBkZWYgaW5pdGlh
bGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCByaWdodCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikK
KyAgICAgICAgQGxlZnQgPSBsZWZ0CisgICAgICAgIEByaWdodCA9IHJpZ2h0CisgICAgZW5kCisg
ICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtAbGVmdCwgQHJpZ2h0XQorICAgIGVuZAor
ICAgIAorICAgIGRlZiBtYXBDaGlsZHJlbgorICAgICAgICBYb3JJbW1lZGlhdGVzLm5ldyhjb2Rl
T3JpZ2luLCAoeWllbGQgQGxlZnQpLCAoeWllbGQgQHJpZ2h0KSkKKyAgICBlbmQKKyAgICAKKyAg
ICBkZWYgZHVtcAorICAgICAgICAiKCN7bGVmdC5kdW1wfSBeICN7cmlnaHQuZHVtcH0pIgorICAg
IGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAg
IAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYg
aW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVy
PworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEJpdG5vdEltbWVkaWF0ZSA8
IE5vZGUKKyAgICBhdHRyX3JlYWRlciA6Y2hpbGQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShj
b2RlT3JpZ2luLCBjaGlsZCkKKyAgICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGNo
aWxkID0gY2hpbGQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAgW0Bj
aGlsZF0KKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbWFwQ2hpbGRyZW4KKyAgICAgICAgQml0bm90
SW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGNoaWxkKSkKKyAgICBlbmQKKyAgICAK
KyAgICBkZWYgZHVtcAorICAgICAgICAiKH4je0BjaGlsZC5kdW1wfSkiCisgICAgZW5kCisgICAg
CisgICAgZGVmIGFkZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVm
IGxhYmVsPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/
CisgICAgICAgIHRydWUKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAg
IGZhbHNlCisgICAgZW5kCitlbmQKKwogY2xhc3MgUmVnaXN0ZXJJRCA8IE5vQ2hpbGRyZW4KICAg
ICBhdHRyX3JlYWRlciA6bmFtZQogICAgIApAQCAtNDU5LDYgKzYxMCwyOCBAQCBjbGFzcyBGUFJl
Z2lzdGVySUQgPCBOb0NoaWxkcmVuCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU3BlY2lhbFJlZ2lz
dGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiBpbml0aWFsaXplKG5hbWUpCisgICAgICAgIEBuYW1l
ID0gbmFtZQorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAgICAgICBmYWxzZQor
ICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKKyAg
ICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAg
IGRlZiByZWdpc3Rlcj8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorZW5kCisKIGNsYXNzIFZhcmlh
YmxlIDwgTm9DaGlsZHJlbgogICAgIGF0dHJfcmVhZGVyIDpuYW1lCiAgICAgCkBAIC00NzksNiAr
NjUyLDEwIEBAIGNsYXNzIFZhcmlhYmxlIDwgTm9DaGlsZHJlbgogICAgIGRlZiBkdW1wCiAgICAg
ICAgIG5hbWUKICAgICBlbmQKKyAgICAKKyAgICBkZWYgaW5zcGVjdAorICAgICAgICAiPHZhcmlh
YmxlICN7bmFtZX0gYXQgI3tjb2RlT3JpZ2luU3RyaW5nfT4iCisgICAgZW5kCiBlbmQKIAogY2xh
c3MgQWRkcmVzcyA8IE5vZGUKQEAgLTc1Nyw2ICs5MzQsMTAgQEAgY2xhc3MgTGFiZWxSZWZlcmVu
Y2UgPCBOb2RlCiAgICAgZGVmIGxhYmVsPwogICAgICAgICB0cnVlCiAgICAgZW5kCisgICAgCisg
ICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKIGVuZAogCiBjbGFzcyBM
b2NhbExhYmVsUmVmZXJlbmNlIDwgTm9DaGlsZHJlbgpAQCAtNzkwLDYgKzk3MSwxMCBAQCBjbGFz
cyBMb2NhbExhYmVsUmVmZXJlbmNlIDwgTm9DaGlsZHJlbgogICAgIGRlZiBsYWJlbD8KICAgICAg
ICAgdHJ1ZQogICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZhbHNl
CisgICAgZW5kCiBlbmQKIAogY2xhc3MgU2VxdWVuY2UgPCBOb2RlCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9iYWNrZW5kcy5yYgkocmV2aXNpb24gMTEwMzQ2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYmFja2VuZHMucmIJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDggKzQ4LDEyIEBAIEJBQ0tFTkRfUEFUVEVSTiA9IFJlZ2V4cC5uZXcoJ1xc
QSgnICsgQkEKIAogY2xhc3MgTm9kZQogICAgIGRlZiBsb3dlcihuYW1lKQotICAgICAgICAkYWN0
aXZlQmFja2VuZCA9IG5hbWUKLSAgICAgICAgc2VuZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAg
YmVnaW4KKyAgICAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQorICAgICAgICAgICAgc2Vu
ZCgibG93ZXIiICsgbmFtZSkKKyAgICAgICAgcmVzY3VlID0+IGUKKyAgICAgICAgICAgIHJhaXNl
ICJHb3QgZXJyb3IgI3tlfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgICAgICBlbmQKICAg
ICBlbmQKIGVuZAogCkBAIC04Nyw3ICs5MSwxMyBAQCBlbmQKIGNsYXNzIFNlcXVlbmNlCiAgICAg
ZGVmIGxvd2VyKG5hbWUpCiAgICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQotICAgICAgICBp
ZiByZXNwb25kX3RvPyAibG93ZXIje25hbWV9IgorICAgICAgICBpZiByZXNwb25kX3RvPyAiZ2V0
TW9kaWZpZWRMaXN0I3tuYW1lfSIKKyAgICAgICAgICAgIG5ld0xpc3QgPSBzZW5kKCJnZXRNb2Rp
ZmllZExpc3Qje25hbWV9IikKKyAgICAgICAgICAgIG5ld0xpc3QuZWFjaCB7CisgICAgICAgICAg
ICAgICAgfCBub2RlIHwKKyAgICAgICAgICAgICAgICBub2RlLmxvd2VyKG5hbWUpCisgICAgICAg
ICAgICB9CisgICAgICAgIGVsc2lmIHJlc3BvbmRfdG8/ICJsb3dlciN7bmFtZX0iCiAgICAgICAg
ICAgICBzZW5kKCJsb3dlciN7bmFtZX0iKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBAbGlz
dC5lYWNoIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0
aW9ucy5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9p
bnN0cnVjdGlvbnMucmIJKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkod29ya2luZyBjb3B5KQpAQCAtMzAsMTUgKzMw
LDIwIEBAIE1BQ1JPX0lOU1RSVUNUSU9OUyA9CiAgICAgICJhZGRpIiwKICAgICAgImFuZGkiLAog
ICAgICAibHNoaWZ0aSIsCisgICAgICJsc2hpZnRwIiwKICAgICAgIm11bGkiLAogICAgICAibmVn
aSIsCisgICAgICJuZWdwIiwKICAgICAgIm5vdGkiLAogICAgICAib3JpIiwKICAgICAgInJzaGlm
dGkiLAogICAgICAidXJzaGlmdGkiLAorICAgICAicnNoaWZ0cCIsCisgICAgICJ1cnNoaWZ0cCIs
CiAgICAgICJzdWJpIiwKICAgICAgInhvcmkiLAogICAgICAibG9hZGkiLAorICAgICAibG9hZGlz
IiwKICAgICAgImxvYWRiIiwKICAgICAgImxvYWRicyIsCiAgICAgICJsb2FkaCIsCkBAIC0xNTks
NiArMTY0LDcgQEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAgImJwbHQiLAogICAgICAiYnBs
dGVxIiwKICAgICAgImFkZHAiLAorICAgICAibXVscCIsCiAgICAgICJhbmRwIiwKICAgICAgIm9y
cCIsCiAgICAgICJzdWJwIiwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNt
L3BhcnNlci5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9wYXJzZXIucmIJKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3BhcnNlci5yYgkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIGRl
ZiBsZXgoc3RyLCBmaWxlTmFtZSkKICAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29k
ZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIpLCAkJikKICAgICAgICAgd2hlbiAvXEE6
Oi8KICAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXcoZmlsZU5h
bWUsIGxpbmVOdW1iZXIpLCAkJikKLSAgICAgICAgd2hlbiAvXEFbOixcKFwpXFtcXT1cK1wtKl0v
CisgICAgICAgIHdoZW4gL1xBWzosXChcKVxbXF09XCtcLX5cfCZeKl0vCiAgICAgICAgICAgICBy
ZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKSwg
JCYpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJhaXNlICJMZXhlciBlcnJvciBhdCAje0Nv
ZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKS50b19zfSwgdW5leHBlY3RlZCBzZXF1
ZW5jZSAje3N0clswLi4yMF0uaW5zcGVjdH0iCkBAIC0zMjIsNiArMzIyLDkgQEAgY2xhc3MgUGFy
c2VyCiAgICAgICAgIGlmIEB0b2tlbnNbQGlkeF0gPT0gIi0iCiAgICAgICAgICAgICBAaWR4ICs9
IDEKICAgICAgICAgICAgIE5lZ0ltbWVkaWF0ZS5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9y
aWdpbiwgcGFyc2VFeHByZXNzaW9uQXRvbSkKKyAgICAgICAgZWxzaWYgQHRva2Vuc1tAaWR4XSA9
PSAifiIKKyAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgQml0bm90SW1tZWRpYXRl
Lm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCBwYXJzZUV4cHJlc3Npb25BdG9tKQog
ICAgICAgICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICIoIgogICAgICAgICAgICAgQGlkeCArPSAx
CiAgICAgICAgICAgICByZXN1bHQgPSBwYXJzZUV4cHJlc3Npb24KQEAgLTM2NSwxMCArMzY4LDEw
IEBAIGNsYXNzIFBhcnNlcgogICAgIGVuZAogICAgIAogICAgIGRlZiBjb3VsZEJlRXhwcmVzc2lv
bgotICAgICAgICBAdG9rZW5zW0BpZHhdID09ICItIiBvciBAdG9rZW5zW0BpZHhdID09ICJzaXpl
b2YiIG9yIGlzSW50ZWdlcihAdG9rZW5zW0BpZHhdKSBvciBpc1ZhcmlhYmxlKEB0b2tlbnNbQGlk
eF0pIG9yIEB0b2tlbnNbQGlkeF0gPT0gIigiCisgICAgICAgIEB0b2tlbnNbQGlkeF0gPT0gIi0i
IG9yIEB0b2tlbnNbQGlkeF0gPT0gIn4iIG9yIEB0b2tlbnNbQGlkeF0gPT0gInNpemVvZiIgb3Ig
aXNJbnRlZ2VyKEB0b2tlbnNbQGlkeF0pIG9yIGlzVmFyaWFibGUoQHRva2Vuc1tAaWR4XSkgb3Ig
QHRva2Vuc1tAaWR4XSA9PSAiKCIKICAgICBlbmQKICAgICAKLSAgICBkZWYgcGFyc2VFeHByZXNz
aW9uCisgICAgZGVmIHBhcnNlRXhwcmVzc2lvbkFkZAogICAgICAgICBza2lwTmV3TGluZQogICAg
ICAgICByZXN1bHQgPSBwYXJzZUV4cHJlc3Npb25NdWwKICAgICAgICAgd2hpbGUgQHRva2Vuc1tA
aWR4XSA9PSAiKyIgb3IgQHRva2Vuc1tAaWR4XSA9PSAiLSIKQEAgLTM4NSw2ICszODgsMzMgQEAg
Y2xhc3MgUGFyc2VyCiAgICAgICAgIHJlc3VsdAogICAgIGVuZAogICAgIAorICAgIGRlZiBwYXJz
ZUV4cHJlc3Npb25BbmQKKyAgICAgICAgc2tpcE5ld0xpbmUKKyAgICAgICAgcmVzdWx0ID0gcGFy
c2VFeHByZXNzaW9uQWRkCisgICAgICAgIHdoaWxlIEB0b2tlbnNbQGlkeF0gPT0gIiYiCisgICAg
ICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAgIHJlc3VsdCA9IEFuZEltbWVkaWF0ZXMubmV3
KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4sIHJlc3VsdCwgcGFyc2VFeHByZXNzaW9uQWRk
KQorICAgICAgICBlbmQKKyAgICAgICAgcmVzdWx0CisgICAgZW5kCisgICAgCisgICAgZGVmIHBh
cnNlRXhwcmVzc2lvbgorICAgICAgICBza2lwTmV3TGluZQorICAgICAgICByZXN1bHQgPSBwYXJz
ZUV4cHJlc3Npb25BbmQKKyAgICAgICAgd2hpbGUgQHRva2Vuc1tAaWR4XSA9PSAifCIgb3IgQHRv
a2Vuc1tAaWR4XSA9PSAiXiIKKyAgICAgICAgICAgIGlmIEB0b2tlbnNbQGlkeF0gPT0gInwiCisg
ICAgICAgICAgICAgICAgQGlkeCArPSAxCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gT3JJbW1l
ZGlhdGVzLm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCByZXN1bHQsIHBhcnNlRXhw
cmVzc2lvbkFuZCkKKyAgICAgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gIl4iCisgICAg
ICAgICAgICAgICAgQGlkeCArPSAxCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gWG9ySW1tZWRp
YXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcmVzdWx0LCBwYXJzZUV4cHJl
c3Npb25BbmQpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAg
ICAgICAgIGVuZAorICAgICAgICBlbmQKKyAgICAgICAgcmVzdWx0CisgICAgZW5kCisgICAgCiAg
ICAgZGVmIHBhcnNlT3BlcmFuZChjb21tZW50KQogICAgICAgICBza2lwTmV3TGluZQogICAgICAg
ICBpZiBjb3VsZEJlRXhwcmVzc2lvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxp
bmVhc20vcmVnaXN0ZXJzLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9v
ZmZsaW5lYXNtL3JlZ2lzdGVycy5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3
ICszNCwxMyBAQCBHUFJTID0KICAgICAgInIwIiwKICAgICAgInIxIiwKICAgICAgInNwIiwKLSAg
ICAgImxyIgorICAgICAibHIiLAorICAgICAKKyAgICAgIyA2NC1iaXQgb25seSByZWdpc3RlcnM6
CisgICAgICJ0NSIsCisgICAgICJ0NiIsICAjIHIxMAorICAgICAiY3NyMSIsICAjIHIxNCwgdGFn
IHR5cGUgbnVtYmVyIHJlZ2lzdGVyCisgICAgICJjc3IyIiAgICMgcjE1LCB0YWcgbWFzayByZWdp
c3RlcgogICAgIF0KIAogRlBSUyA9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGlu
ZWFzbS90cmFuc2Zvcm0ucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29m
ZmxpbmVhc20vdHJhbnNmb3JtLnJiCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmIJKHdvcmtpbmcgY29weSkKQEAgLTMyOCw2
ICszMjgsNDQgQEAgY2xhc3MgTmVnSW1tZWRpYXRlCiAgICAgZW5kCiBlbmQKIAorY2xhc3MgT3JJ
bW1lZGlhdGVzCisgICAgZGVmIGZvbGQKKyAgICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisgICAg
ICAgIEByaWdodCA9IEByaWdodC5mb2xkCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAbGVm
dC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5pc19h
PyBJbW1lZGlhdGUKKyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52YWx1
ZSB8IEByaWdodC52YWx1ZSkKKyAgICBlbmQKK2VuZAorCitjbGFzcyBBbmRJbW1lZGlhdGVzCisg
ICAgZGVmIGZvbGQKKyAgICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9
IEByaWdodC5mb2xkCisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1l
ZGlhdGUKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUK
KyAgICAgICAgSW1tZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52YWx1ZSAmIEByaWdodC52
YWx1ZSkKKyAgICBlbmQKK2VuZAorCitjbGFzcyBYb3JJbW1lZGlhdGVzCisgICAgZGVmIGZvbGQK
KyAgICAgICAgQGxlZnQgPSBAbGVmdC5mb2xkCisgICAgICAgIEByaWdodCA9IEByaWdodC5mb2xk
CisgICAgICAgIHJldHVybiBzZWxmIHVubGVzcyBAbGVmdC5pc19hPyBJbW1lZGlhdGUKKyAgICAg
ICAgcmV0dXJuIHNlbGYgdW5sZXNzIEByaWdodC5pc19hPyBJbW1lZGlhdGUKKyAgICAgICAgSW1t
ZWRpYXRlLm5ldyhjb2RlT3JpZ2luLCBAbGVmdC52YWx1ZSBeIEByaWdodC52YWx1ZSkKKyAgICBl
bmQKK2VuZAorCitjbGFzcyBCaXRub3RJbW1lZGlhdGUKKyAgICBkZWYgZm9sZAorICAgICAgICBA
Y2hpbGQgPSBAY2hpbGQuZm9sZAorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQGNoaWxkLmlz
X2E/IEltbWVkaWF0ZQorICAgICAgICBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIH5AY2hpbGQu
dmFsdWUpCisgICAgZW5kCitlbmQKKwogIwogIyBub2RlLnJlc29sdmVBZnRlclNldHRpbmdzKG9m
ZnNldHMsIHNpemVzKQogIwpAQCAtMzQwLDMgKzM3OCw5NyBAQCBjbGFzcyBOb2RlCiAgICAgZW5k
CiBlbmQKIAorIworIyBub2RlLnZhbGlkYXRlCisjCisjIENoZWNrcyB0aGF0IHRoZSBub2RlIGlz
IHJlYWR5IGZvciBiYWNrZW5kIGNvbXBpbGF0aW9uLgorIworCitjbGFzcyBOb2RlCisgICAgZGVm
IHZhbGlkYXRlCisgICAgICAgIHJhaXNlICJVbnJlc29sdmVkICN7ZHVtcH0gYXQgI3tjb2RlT3Jp
Z2luU3RyaW5nfSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgdmFsaWRhdGVDaGlsZHJlbgorICAg
ICAgICBjaGlsZHJlbi5lYWNoIHsKKyAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICBu
b2RlLnZhbGlkYXRlCisgICAgICAgIH0KKyAgICBlbmQKK2VuZAorCitjbGFzcyBTZXF1ZW5jZQor
ICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQK
KworY2xhc3MgSW1tZWRpYXRlCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKworY2xh
c3MgUmVnaXN0ZXJJRAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEZQ
UmVnaXN0ZXJJRAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIEFkZHJl
c3MKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJlbgorICAgIGVuZAor
ZW5kCisKK2NsYXNzIEJhc2VJbmRleAorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0
ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xhc3MgQWJzb2x1dGVBZGRyZXNzCisgICAgZGVm
IHZhbGlkYXRlCisgICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFz
cyBJbnN0cnVjdGlvbgorICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxpZGF0ZUNoaWxkcmVu
CisgICAgZW5kCitlbmQKKworY2xhc3MgRXJyb3IKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQK
K2VuZAorCitjbGFzcyBMYWJlbAorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2Ns
YXNzIExvY2FsTGFiZWwKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBM
YWJlbFJlZmVyZW5jZQorICAgIGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIExv
Y2FsTGFiZWxSZWZlcmVuY2UKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQKK2VuZAorCitjbGFz
cyBTa2lwCisgICAgZGVmIHZhbGlkYXRlCisgICAgZW5kCitlbmQKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL3g4Ni5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwx
MyArMzIsMzcgQEAgZGVmIGlzWDY0CiAgICAgZW5kCiBlbmQKIAorY2xhc3MgU3BlY2lhbFJlZ2lz
dGVyIDwgTm9DaGlsZHJlbgorICAgIGRlZiB4ODZPcGVyYW5kKGtpbmQpCisgICAgICAgIHJhaXNl
IHVubGVzcyBAbmFtZSA9fiAvXnIvCisgICAgICAgIHJhaXNlIHVubGVzcyBpc1g2NAorICAgICAg
ICBjYXNlIGtpbmQKKyAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgIiUiICsgQG5hbWUg
KyAidyIKKyAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAiJSIgKyBAbmFtZSArICJkIgor
ICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICIlIiArIEBuYW1lCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGVuZAorICAgIGVuZAorICAgIGRlZiB4ODZDYWxs
T3BlcmFuZChraW5kKQorICAgICAgICAiKiN7eDg2T3BlcmFuZChraW5kKX0iCisgICAgZW5kCitl
bmQKKworWDY0X1NDUkFUQ0hfUkVHSVNURVIgPSBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyMTEiKQor
CiBjbGFzcyBSZWdpc3RlcklECiAgICAgZGVmIHN1cHBvcnRzOEJpdE9uWDg2CiAgICAgICAgIGNh
c2UgbmFtZQogICAgICAgICB3aGVuICJ0MCIsICJhMCIsICJyMCIsICJ0MSIsICJhMSIsICJyMSIs
ICJ0MiIsICJ0MyIKICAgICAgICAgICAgIHRydWUKLSAgICAgICAgd2hlbiAidDQiLCAiY2ZyIgor
ICAgICAgICB3aGVuICJjZnIiLCAidHRuciIsICJ0bXIiCiAgICAgICAgICAgICBmYWxzZQorICAg
ICAgICB3aGVuICJ0NCIsICJ0NSIKKyAgICAgICAgICAgIGlzWDY0CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHJhaXNlCiAgICAgICAgIGVuZApAQCAtMTEyLDE3ICsxMzYsMzAgQEAgY2xhc3Mg
UmVnaXN0ZXJJRAogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBlbmQKICAgICAg
ICAgd2hlbiAiY2ZyIgotICAgICAgICAgICAgY2FzZSBraW5kCi0gICAgICAgICAgICB3aGVuIDpi
eXRlCi0gICAgICAgICAgICAgICAgIiVkaWwiCi0gICAgICAgICAgICB3aGVuIDpoYWxmCi0gICAg
ICAgICAgICAgICAgIiVkaSIKLSAgICAgICAgICAgIHdoZW4gOmludAotICAgICAgICAgICAgICAg
ICIlZWRpIgotICAgICAgICAgICAgd2hlbiA6cHRyCi0gICAgICAgICAgICAgICAgaXNYNjQgPyAi
JXJkaSIgOiAiJWVkaSIKKyAgICAgICAgICAgIGlmIGlzWDY0CisgICAgICAgICAgICAgICAgY2Fz
ZSBraW5kCisgICAgICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICAgICAi
JXIxM3ciCisgICAgICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgICAgICIl
cjEzZCIKKyAgICAgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAgICAgIiVy
MTMiCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAg
ICAgICAgICAgICAgIGVuZAogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJhaXNl
CisgICAgICAgICAgICAgICAgY2FzZSBraW5kCisgICAgICAgICAgICAgICAgd2hlbiA6Ynl0ZQor
ICAgICAgICAgICAgICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgICAgICB3aGVuIDpoYWxmCisg
ICAgICAgICAgICAgICAgICAgICIlZGkiCisgICAgICAgICAgICAgICAgd2hlbiA6aW50CisgICAg
ICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAg
ICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbmQKICAgICAg
ICAgd2hlbiAic3AiCiAgICAgICAgICAgICBjYXNlIGtpbmQKQEAgLTEzNyw2ICsxNzQsNDggQEAg
Y2xhc3MgUmVnaXN0ZXJJRAogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJhaXNl
CiAgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hlbiAidDUiCisgICAgICAgICAgICByYWlzZSAi
Q2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIg
dW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmJ5
dGUKKyAgICAgICAgICAgICAgICAiJWRpbCIKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAg
ICAgICAgICAgICAiJWRpIgorICAgICAgICAgICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAg
IiVlZGkiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXJkaSIKKyAg
ICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJ0NiIKKyAgICAgICAgICAgIHJhaXNlICJDYW5u
b3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxl
c3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2luZAorICAgICAgICAgICAgd2hlbiA6aGFsZgor
ICAgICAgICAgICAgICAgICIlcjEwdyIKKyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAg
ICAgICAgICIlcjEwZCIKKyAgICAgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICIl
cjEwIgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gImNzcjEiCisgICAgICAgICAgICBy
YWlzZSAiQ2Fubm90IHVzZSAje25hbWV9IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3Ry
aW5nfSIgdW5sZXNzIGlzWDY0CisgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdo
ZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAiJXIxNHciCisgICAgICAgICAgICB3aGVuIDppbnQK
KyAgICAgICAgICAgICAgICAiJXIxNGQiCisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAg
ICAgICAgICAiJXIxNCIKKyAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJjc3IyIgorICAg
ICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7Y29k
ZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisgICAg
ICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVyMTV3IgorICAgICAgICAgICAg
d2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVyMTVkIgorICAgICAgICAgICAgd2hlbiA6cHRy
CisgICAgICAgICAgICAgICAgIiVyMTUiCisgICAgICAgICAgICBlbmQKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgcmFpc2UgIkJhZCByZWdpc3RlciAje25hbWV9IGZvciBYODYgYXQgI3tjb2Rl
T3JpZ2luU3RyaW5nfSIKICAgICAgICAgZW5kCkBAIC0xNzIsNiArMjUxLDEzIEBAIGNsYXNzIEZQ
UmVnaXN0ZXJJRAogZW5kCiAKIGNsYXNzIEltbWVkaWF0ZQorICAgIGRlZiB2YWxpZFg4NkltbWVk
aWF0ZT8KKyAgICAgICAgaWYgaXNYNjQKKyAgICAgICAgICAgIHZhbHVlID49IC0weDgwMDAwMDAw
IGFuZCB2YWx1ZSA8PSAweDdmZmZmZmZmCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRydWUK
KyAgICAgICAgZW5kCisgICAgZW5kCiAgICAgZGVmIHg4Nk9wZXJhbmQoa2luZCkKICAgICAgICAg
IiQje3ZhbHVlfSIKICAgICBlbmQKQEAgLTIxMCw3ICsyOTYsNyBAQCBjbGFzcyBCYXNlSW5kZXgK
ICAgICBlbmQKIAogICAgIGRlZiB4ODZDYWxsT3BlcmFuZChraW5kKQotICAgICAgICAiKiN7eDg2
b3BlcmFuZChraW5kKX0iCisgICAgICAgICIqI3t4ODZPcGVyYW5kKGtpbmQpfSIKICAgICBlbmQK
IGVuZAogCkBAIC0yNDQsNiArMzMwLDQ3IEBAIGNsYXNzIExvY2FsTGFiZWxSZWZlcmVuY2UKICAg
ICBlbmQKIGVuZAogCitjbGFzcyBTZXF1ZW5jZQorICAgIGRlZiBnZXRNb2RpZmllZExpc3RYODZf
NjQKKyAgICAgICAgbmV3TGlzdCA9IFtdCisgICAgICAgIAorICAgICAgICBAbGlzdC5lYWNoIHsK
KyAgICAgICAgICAgIHwgbm9kZSB8CisgICAgICAgICAgICBuZXdOb2RlID0gbm9kZQorICAgICAg
ICAgICAgaWYgbm9kZS5pc19hPyBJbnN0cnVjdGlvbgorICAgICAgICAgICAgICAgIHVubGVzcyBu
b2RlLm9wY29kZSA9PSAibW92ZSIKKyAgICAgICAgICAgICAgICAgICAgdXNlZFNjcmF0Y2ggPSBm
YWxzZQorICAgICAgICAgICAgICAgICAgICBuZXdPcGVyYW5kcyA9IG5vZGUub3BlcmFuZHMubWFw
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHwgb3BlcmFuZCB8CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBvcGVyYW5kLmltbWVkaWF0ZT8gYW5kIG5vdCBvcGVyYW5kLnZhbGlkWDg2SW1t
ZWRpYXRlPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHVzZWRTY3JhdGNoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlICJBdHRlbXB0IHRvIHVzZSBzY3JhdGNo
IHJlZ2lzdGVyIHR3aWNlIGF0ICN7b3BlcmFuZC5jb2RlT3JpZ2luU3RyaW5nfSIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdM
aXN0IDw8IEluc3RydWN0aW9uLm5ldyhvcGVyYW5kLmNvZGVPcmlnaW4sICJtb3ZlIiwgW29wZXJh
bmQsIFg2NF9TQ1JBVENIX1JFR0lTVEVSXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
c2VkU2NyYXRjaCA9IHRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBYNjRfU0NSQVRD
SF9SRUdJU1RFUgorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG9wZXJhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5ld05vZGUgPSBJbnN0cnVjdGlv
bi5uZXcobm9kZS5jb2RlT3JpZ2luLCBub2RlLm9wY29kZSwgbmV3T3BlcmFuZHMpCisgICAgICAg
ICAgICAgICAgZW5kCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdW5sZXNzIG5v
ZGUuaXNfYT8gTGFiZWwgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNfYT8gTG9j
YWxMYWJlbCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5pc19hPyBTa2lwCisgICAg
ICAgICAgICAgICAgICAgIHJhaXNlICJVbmV4cGVjdGVkICN7bm9kZS5pbnNwZWN0fSBhdCAje25v
ZGUuY29kZU9yaWdpbn0iIAorICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgZW5kCisg
ICAgICAgICAgICBpZiBuZXdOb2RlCisgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBuZXdOb2Rl
CisgICAgICAgICAgICBlbmQKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIG5l
d0xpc3QKKyAgICBlbmQKK2VuZAorCiBjbGFzcyBJbnN0cnVjdGlvbgogICAgIGRlZiB4ODZPcGVy
YW5kcygqa2luZHMpCiAgICAgICAgIHJhaXNlIHVubGVzcyBraW5kcy5zaXplID09IG9wZXJhbmRz
LnNpemUKQEAgLTQ1OCw2ICs1ODUsMTYgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgZW5k
CiAgICAgZW5kCiAgICAgCisgICAgZGVmIGhhbmRsZVg4Nk11bChraW5kKQorICAgICAgICBpZiBv
cGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/IEltbWVkaWF0ZQorICAgICAg
ICAgICAgJGFzbS5wdXRzICJpbXVsI3t4ODZTdWZmaXgoa2luZCl9ICN7eDg2T3BlcmFuZHMoa2lu
ZCwga2luZCwga2luZCl9IgorICAgICAgICBlbHNlCisgICAgICAgICAgICAjIEZJWE1FOiBjb3Vs
ZCBkbyBzb21lIHBlZXBob2xlIGluIGNhc2UgdGhlIGxlZnQgb3BlcmFuZCBpcyBpbW1lZGlhdGUg
YW5kIGl0J3MKKyAgICAgICAgICAgICMgYSBwb3dlciBvZiB0d28uCisgICAgICAgICAgICBoYW5k
bGVYODZPcCgiaW11bCN7eDg2U3VmZml4KGtpbmQpfSIsIGtpbmQpCisgICAgICAgIGVuZAorICAg
IGVuZAorICAgIAogICAgIGRlZiBoYW5kbGVNb3ZlCiAgICAgICAgIGlmIEltbWVkaWF0ZS5uZXco
bmlsLCAwKSA9PSBvcGVyYW5kc1swXSBhbmQgb3BlcmFuZHNbMV0uaXNfYT8gUmVnaXN0ZXJJRAog
ICAgICAgICAgICAgJGFzbS5wdXRzICJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0gI3tvcGVyYW5kc1sx
XS54ODZPcGVyYW5kKDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5kKDpwdHIpfSIKQEAg
LTQ4OSwxNiArNjI2LDE2IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBoYW5kbGVY
ODZPcCgiYW5kI3t4ODZTdWZmaXgoOnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAibHNoaWZ0
aSIKICAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYWxsIiwgOmludCkKKyAgICAgICAgd2hl
biAibHNoaWZ0cCIKKyAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJzYWwje3g4NlN1ZmZpeCg6
cHRyKX0iLCA6cHRyKQogICAgICAgICB3aGVuICJtdWxpIgotICAgICAgICAgICAgaWYgb3BlcmFu
ZHMuc2l6ZSA9PSAzIGFuZCBvcGVyYW5kc1swXS5pc19hPyBJbW1lZGlhdGUKLSAgICAgICAgICAg
ICAgICAkYXNtLnB1dHMgImltdWxsICN7eDg2T3BlcmFuZHMoOmludCwgOmludCwgOmludCl9Igot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUg
cGVlcGhvbGUgaW4gY2FzZSB0aGUgbGVmdCBvcGVyYW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncwot
ICAgICAgICAgICAgICAgICMgYSBwb3dlciBvZiB0d28uCi0gICAgICAgICAgICAgICAgaGFuZGxl
WDg2T3AoImltdWxsIiwgOmludCkKLSAgICAgICAgICAgIGVuZAorICAgICAgICAgICAgaGFuZGxl
WDg2TXVsKDppbnQpCisgICAgICAgIHdoZW4gIm11bHAiCisgICAgICAgICAgICBoYW5kbGVYODZN
dWwoOnB0cikKICAgICAgICAgd2hlbiAibmVnaSIKICAgICAgICAgICAgICRhc20ucHV0cyAibmVn
bCAje3g4Nk9wZXJhbmRzKDppbnQpfSIKKyAgICAgICAgd2hlbiAibmVncCIKKyAgICAgICAgICAg
ICRhc20ucHV0cyAibmVnI3t4ODZTdWZmaXgoOnB0cil9ICN7eDg2T3BlcmFuZHMoOnB0cil9Igog
ICAgICAgICB3aGVuICJub3RpIgogICAgICAgICAgICAgJGFzbS5wdXRzICJub3RsICN7eDg2T3Bl
cmFuZHMoOmludCl9IgogICAgICAgICB3aGVuICJvcmkiCkBAIC01MDcsOCArNjQ0LDEyIEBAIGNs
YXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBoYW5kbGVYODZPcCgib3Ije3g4NlN1ZmZpeCg6
cHRyKX0iLCA6cHRyKQogICAgICAgICB3aGVuICJyc2hpZnRpIgogICAgICAgICAgICAgaGFuZGxl
WDg2U2hpZnQoInNhcmwiLCA6aW50KQorICAgICAgICB3aGVuICJyc2hpZnRwIgorICAgICAgICAg
ICAgaGFuZGxlWDg2U2hpZnQoInNhciN7eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAg
IHdoZW4gInVyc2hpZnRpIgogICAgICAgICAgICAgaGFuZGxlWDg2U2hpZnQoInNocmwiLCA6aW50
KQorICAgICAgICB3aGVuICJ1cnNoaWZ0cCIKKyAgICAgICAgICAgIGhhbmRsZVg4NlNoaWZ0KCJz
aHIje3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRyKQogICAgICAgICB3aGVuICJzdWJpIgogICAgICAg
ICAgICAgaGFuZGxlWDg2U3ViKDppbnQpCiAgICAgICAgIHdoZW4gInN1YnAiCkBAIC01MTYsOSAr
NjU3LDE1IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gInhvcmkiCiAgICAgICAg
ICAgICBoYW5kbGVYODZPcCgieG9ybCIsIDppbnQpCiAgICAgICAgIHdoZW4gInhvcnAiCi0gICAg
ICAgICAgICBoYW5kbGVYODZPcCgieG9yI3t4ODZTdWZmaXgoOnB0cil9IiwgOmludCkKKyAgICAg
ICAgICAgIGhhbmRsZVg4Nk9wKCJ4b3Ije3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRyKQogICAgICAg
ICB3aGVuICJsb2FkaSIsICJzdG9yZWkiCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmwgI3t4
ODZPcGVyYW5kcyg6aW50LCA6aW50KX0iCisgICAgICAgIHdoZW4gImxvYWRpcyIKKyAgICAgICAg
ICAgIGlmIGlzWDY0CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZzbHEgI3t4ODZPcGVy
YW5kcyg6aW50LCA6cHRyKX0iCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgJGFz
bS5wdXRzICJtb3ZsICN7eDg2T3BlcmFuZHMoOmludCwgOmludCl9IgorICAgICAgICAgICAgZW5k
CiAgICAgICAgIHdoZW4gImxvYWRwIiwgInN0b3JlcCIKICAgICAgICAgICAgICRhc20ucHV0cyAi
bW92I3t4ODZTdWZmaXgoOnB0cil9ICN7eDg2T3BlcmFuZHMoOnB0ciwgOnB0cil9IgogICAgICAg
ICB3aGVuICJsb2FkYiIKQEAgLTcwMSw3ICs4NDgsNyBAQCBjbGFzcyBJbnN0cnVjdGlvbgogICAg
ICAgICB3aGVuICJidGJueiIKICAgICAgICAgICAgIGhhbmRsZVg4NkJyYW5jaFRlc3QoImpueiIs
IDpieXRlKQogICAgICAgICB3aGVuICJqbXAiCi0gICAgICAgICAgICAkYXNtLnB1dHMgImptcCAj
e29wZXJhbmRzWzBdLng4NkNhbGxPcGVyYW5kKDppbnQpfSIKKyAgICAgICAgICAgICRhc20ucHV0
cyAiam1wICN7b3BlcmFuZHNbMF0ueDg2Q2FsbE9wZXJhbmQoOnB0cil9IgogICAgICAgICB3aGVu
ICJiYWRkaW8iCiAgICAgICAgICAgICBoYW5kbGVYODZPcEJyYW5jaCgiYWRkbCIsICJqbyIsIDpp
bnQpCiAgICAgICAgIHdoZW4gImJhZGRwbyIKQEAgLTgyNSw5ICs5NzIsOSBAQCBjbGFzcyBJbnN0
cnVjdGlvbgogICAgICAgICAgICAgJGFzbS5wdXRzICJwc3JscSAkMzIsICV4bW03IgogICAgICAg
ICAgICAgJGFzbS5wdXRzICJtb3ZzZCAleG1tNywgI3tvcGVyYW5kc1syXS54ODZPcGVyYW5kKDpp
bnQpfSIKICAgICAgICAgd2hlbiAiZnAyZCIKLSAgICAgICAgICAgICRhc20ucHV0cyAibW92ZCAj
e29wZXJhbmRzWzBdLng4Nk9wZXJhbmRzKDpwdHIpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5k
KDpkb3VibGUpfSIKKyAgICAgICAgICAgICRhc20ucHV0cyAibW92ZCAje29wZXJhbmRzWzBdLng4
Nk9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOmRvdWJsZSl9IgogICAg
ICAgICB3aGVuICJmZDJwIgotICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZkICN7b3BlcmFuZHNb
MF0ueDg2T3BlcmFuZHMoOmRvdWJsZSl9LCAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0cil9
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZkICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZCg6
ZG91YmxlKX0sICN7b3BlcmFuZHNbMV0ueDg2T3BlcmFuZCg6cHRyKX0iCiAgICAgICAgIHdoZW4g
ImJvIgogICAgICAgICAgICAgJGFzbS5wdXRzICJqbyAje29wZXJhbmRzWzBdLmFzbUxhYmVsfSIK
ICAgICAgICAgd2hlbiAiYnMiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5o
CShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3Jt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTkzNSw3ICs5MzUsNyBAQAogCiAvKiBPbiBzb21lIG9mIHRo
ZSBwbGF0Zm9ybXMgd2hlcmUgd2UgaGF2ZSBhIEpJVCwgd2Ugd2FudCB0byBhbHNvIGhhdmUgdGhl
IAogICAgbG93LWxldmVsIGludGVycHJldGVyLiAqLwotI2lmICFkZWZpbmVkKEVOQUJMRV9MTElO
VCkgJiYgRU5BQkxFKEpJVCkgJiYgT1MoREFSV0lOKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKEFSTV9U
SFVNQjIpKSAmJiBVU0UoSlNWQUxVRTMyXzY0KQorI2lmICFkZWZpbmVkKEVOQUJMRV9MTElOVCkg
JiYgRU5BQkxFKEpJVCkgJiYgT1MoREFSV0lOKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkg
fHwgQ1BVKEFSTV9USFVNQjIpKQogI2RlZmluZSBFTkFCTEVfTExJTlQgMQogI2VuZGlmCiAK
</data>
<flag name="commit-queue"
          id="134382"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131161</attachid>
            <date>2012-03-10 00:24:02 -0800</date>
            <delta_ts>2012-03-10 14:48:46 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>llint64_patch_13.diff</filename>
            <type>text/plain</type>
            <size>129695</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTEwMzQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBA
CisyMDEyLTAzLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgc2hvdWxkIHN1cHBvcnQgSlNWQUxVRTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTYwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAw
NjM0Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBQb3J0ZWQgdGhlIExMSW50LCB3aGljaCBwcmV2aW91c2x5IG9ubHkgd29ya2VkIG9u
IDMyLWJpdCwgdG8gNjQtYml0LiBUaGlzCisgICAgICAgIHBhdGNoIG1vdmVzIGEgZmFpciBiaXQg
b2YgY29kZSBmcm9tIExvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gdG8gdGhlIGNvbW1vbgor
ICAgICAgICBmaWxlLCBMb3dMZXZlbEludGVycHJldGVyLmFzbS4gQWJvdXQgMS8zIG9mIHRoZSBM
TEludCBkaWQgbm90IGhhdmUgdG8gYmUKKyAgICAgICAgc3BlY2lhbGl6ZWQgZm9yIHZhbHVlIHJl
cHJlc2VudGF0aW9uLgorICAgICAgICAKKyAgICAgICAgQWxzbyBtYWRlIHNvbWUgbWlub3IgY2hh
bmdlcyB0byBvZmZsaW5lYXNtIGFuZCB0aGUgc2xvdy1wYXRocy4KKworICAgICAgICAqIGxsaW50
L0xMSW50Q29tbW9uLmg6CisgICAgICAgICogbGxpbnQvTExJbnREYXRhLmNwcDoKKyAgICAgICAg
KEpTQzo6TExJbnQ6OkRhdGE6OnBlcmZvcm1Bc3NlcnRpb25zKToKKyAgICAgICAgKiBsbGludC9M
TEludFNsb3dQYXRocy5jcHA6CisgICAgICAgIChMTEludCk6CisgICAgICAgIChKU0M6OkxMSW50
OjpsbGludF90cmFjZV92YWx1ZSk6CisgICAgICAgIChKU0M6OkxMSW50OjpMTElOVF9TTE9XX1BB
VEhfREVDTCk6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuaDoKKyAgICAgICAgKExM
SW50KToKKyAgICAgICAgKFNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6OkxMSW50
OjpTbG93UGF0aFJldHVyblR5cGU6OlNsb3dQYXRoUmV0dXJuVHlwZSk6CisgICAgICAgIChKU0M6
OkxMSW50OjplbmNvZGVSZXN1bHQpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc206Cisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBvZmZs
aW5lYXNtL2FybXY3LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYXNtLnJiOgorICAgICAgICAq
IG9mZmxpbmVhc20vYXN0LnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vYmFja2VuZHMucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9pbnN0cnVjdGlvbnMucmI6CisgICAgICAgICogb2ZmbGluZWFz
bS9wYXJzZXIucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9yZWdpc3RlcnMucmI6CisgICAgICAg
ICogb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmI6CisgICAgICAgICogb2ZmbGluZWFzbS94ODYucmI6
CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKIDIwMTItMDMtMDkgIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViS2l0IGNvbXBpbGVkIGJ5IGdjYyAoWGNv
ZGUgMy4yLjYpIGhhbmdzIHdoaWxlIHJ1bm5pbmcgRE9NL0FjY2Vzc29ycy5odG1sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnREYXRhLmNwcAkocmV2aXNpb24gMTEwMzQ2
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RGF0YS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTcyLDYgKzcyLDcgQEAgdm9pZCBEYXRhOjpwZXJmb3JtQXNzZXJ0aW9ucyhKU0ds
b2JhbERhdAogICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0YoRW5jb2RlZFZhbHVlRGVzY3JpcHRv
ciwgYXNCaXRzLnRhZykgPT0gNCk7CiAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihFbmNvZGVk
VmFsdWVEZXNjcmlwdG9yLCBhc0JpdHMucGF5bG9hZCkgPT0gMCk7CiAjZW5kaWYKKyNpZiBVU0Uo
SlNWQUxVRTMyXzY0KQogICAgIEFTU0VSVChKU1ZhbHVlOjpJbnQzMlRhZyA9PSAtMSk7CiAgICAg
QVNTRVJUKEpTVmFsdWU6OkJvb2xlYW5UYWcgPT0gLTIpOwogICAgIEFTU0VSVChKU1ZhbHVlOjpO
dWxsVGFnID09IC0zKTsKQEAgLTgwLDEyICs4MSwyNiBAQCB2b2lkIERhdGE6OnBlcmZvcm1Bc3Nl
cnRpb25zKEpTR2xvYmFsRGF0CiAgICAgQVNTRVJUKEpTVmFsdWU6OkVtcHR5VmFsdWVUYWcgPT0g
LTYpOwogICAgIEFTU0VSVChKU1ZhbHVlOjpEZWxldGVkVmFsdWVUYWcgPT0gLTcpOwogICAgIEFT
U0VSVChKU1ZhbHVlOjpMb3dlc3RUYWcgPT0gLTcpOworI2Vsc2UKKyAgICBBU1NFUlQoVGFnQml0
VHlwZU90aGVyID09IDB4Mik7CisgICAgQVNTRVJUKFRhZ0JpdEJvb2wgPT0gMHg0KTsKKyAgICBB
U1NFUlQoVGFnQml0VW5kZWZpbmVkID09IDB4OCk7CisgICAgQVNTRVJUKFZhbHVlRW1wdHkgPT0g
MHgwKTsKKyAgICBBU1NFUlQoVmFsdWVGYWxzZSA9PSAoVGFnQml0VHlwZU90aGVyIHwgVGFnQml0
Qm9vbCkpOworICAgIEFTU0VSVChWYWx1ZVRydWUgPT0gKFRhZ0JpdFR5cGVPdGhlciB8IFRhZ0Jp
dEJvb2wgfCAxKSk7CisgICAgQVNTRVJUKFZhbHVlVW5kZWZpbmVkID09IChUYWdCaXRUeXBlT3Ro
ZXIgfCBUYWdCaXRVbmRlZmluZWQpKTsKKyAgICBBU1NFUlQoVmFsdWVOdWxsID09IFRhZ0JpdFR5
cGVPdGhlcik7CisjZW5kaWYKICAgICBBU1NFUlQoU3RyaW5nVHlwZSA9PSA1KTsKICAgICBBU1NF
UlQoT2JqZWN0VHlwZSA9PSAxMyk7CiAgICAgQVNTRVJUKE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQg
PT0gMSk7CiAgICAgQVNTRVJUKEltcGxlbWVudHNIYXNJbnN0YW5jZSA9PSAyKTsKICAgICBBU1NF
UlQoSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9PSA4KTsKKyNpZiBVU0UoSlNWQUxVRTY0
KQorICAgIEFTU0VSVCgmZ2xvYmFsRGF0YS5oZWFwLmFsbG9jYXRvckZvck9iamVjdFdpdGhvdXRE
ZXN0cnVjdG9yKHNpemVvZihKU0ZpbmFsT2JqZWN0KSkgLSAmZ2xvYmFsRGF0YS5oZWFwLmZpcnN0
QWxsb2NhdG9yV2l0aG91dERlc3RydWN0b3JzKCkgPT0gMSk7CisjZWxzZQogICAgIEFTU0VSVCgm
Z2xvYmFsRGF0YS5oZWFwLmFsbG9jYXRvckZvck9iamVjdFdpdGhvdXREZXN0cnVjdG9yKHNpemVv
ZihKU0ZpbmFsT2JqZWN0KSkgLSAmZ2xvYmFsRGF0YS5oZWFwLmZpcnN0QWxsb2NhdG9yV2l0aG91
dERlc3RydWN0b3JzKCkgPT0gMyk7CisjZW5kaWYKICAgICBBU1NFUlQoRmlyc3RDb25zdGFudFJl
Z2lzdGVySW5kZXggPT0gMHg0MDAwMDAwMCk7CiAgICAgQVNTRVJUKEdsb2JhbENvZGUgPT0gMCk7
CiAgICAgQVNTRVJUKEV2YWxDb2RlID09IDEpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xMSW50RW50cnlwb2ludHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludEVudHJ5cG9pbnRzLmNwcAkocmV2aXNpb24gMTEwMzQ2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50RW50cnlwb2ludHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw4ICszMCwxMCBAQAogCiAjaW5jbHVkZSAiSklUQ29kZS5oIgogI2luY2x1
ZGUgIkpTR2xvYmFsRGF0YS5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiTExJ
bnRUaHVua3MuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisjaW5jbHVkZSAi
U2NvcGVDaGFpbi5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50IHsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShy
ZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxNiArNjUsNyBAQCBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIExMSW50IHsKICNkZWZpbmUgTExJTlRfT1BfQyhpbmRleCkgKGV4ZWMtPnIo
cGNbaW5kZXhdLnUub3BlcmFuZCkpCiAKICNkZWZpbmUgTExJTlRfUkVUVVJOX1RXTyhmaXJzdCwg
c2Vjb25kKSBkbyB7ICAgICAgIFwKLSAgICAgICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHN0cnVjdCB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICB2b2lkKiBhOyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICB2b2lkKiBiOyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgICAgIH0gcGFpcjsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgICAgIGludDY0X3QgaTsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKLSAgICAgICAgfSBfX3J0X3U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICAgICAgX19ydF91LnBhaXIuYSA9IGZpcnN0OyAgICAgICAgICAgICAgICAgICAgIFwKLSAg
ICAgICAgX19ydF91LnBhaXIuYiA9IHNlY29uZDsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAg
ICAgcmV0dXJuIF9fcnRfdS5pOyAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg
cmV0dXJuIGVuY29kZVJlc3VsdChmaXJzdCwgc2Vjb25kKTsgICAgICAgIFwKICAgICB9IHdoaWxl
IChmYWxzZSkKIAogI2RlZmluZSBMTElOVF9FTkRfSU1QTCgpIExMSU5UX1JFVFVSTl9UV08ocGMs
IGV4ZWMpCkBAIC0xNjcsNyArMTU4LDYgQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUg
bGxpbnRfdHJhYwogCiBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBsbGludF90cmFjZV92
YWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiBwYywgaW50IGZyb21XaGVyZSwgaW50
IG9wZXJhbmQpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICBKU1ZhbHVlIHZhbHVlID0gTExJ
TlRfT1BfQyhvcGVyYW5kKS5qc1ZhbHVlKCk7CiAgICAgdW5pb24gewogICAgICAgICBzdHJ1Y3Qg
ewpAQCAtMTg4LDE0ICsxNzgsMTMgQEAgZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxp
bnRfdHJhYwogICAgICAgICAgICAgdS5iaXRzLnRhZywKICAgICAgICAgICAgIHUuYml0cy5wYXls
b2FkLAogICAgICAgICAgICAgdmFsdWUuZGVzY3JpcHRpb24oKSk7Ci0gICAgTExJTlRfRU5EKCk7
CisgICAgTExJTlRfRU5EX0lNUEwoKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0wodHJhY2Vf
cHJvbG9ndWUpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICBkYXRhTG9nKCIlcCAvICVwOiBp
biBwcm9sb2d1ZS5cbiIsIGV4ZWMtPmNvZGVCbG9jaygpLCBleGVjKTsKLSAgICBMTElOVF9FTkQo
KTsKKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQogCiBzdGF0aWMgdm9pZCB0cmFjZUZ1bmN0aW9u
UHJvbG9ndWUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBjaGFyKiBjb21tZW50LCBDb2RlU3BlY2lh
bGl6YXRpb25LaW5kIGtpbmQpCkBAIC0yMTEsNTQgKzIwMCw1MiBAQCBzdGF0aWMgdm9pZCB0cmFj
ZUZ1bmN0aW9uUHJvbG9ndWUoRXhlY1N0CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX3By
b2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQogewotICAgIExMSU5UX0JFR0lOKCk7CiAgICAgdHJh
Y2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMsICJjYWxsIHByb2xvZ3VlIiwgQ29kZUZvckNhbGwpOwot
ICAgIExMSU5UX0VORCgpOworICAgIExMSU5UX0VORF9JTVBMKCk7CiB9CiAKIExMSU5UX1NMT1df
UEFUSF9ERUNMKHRyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCiB7Ci0gICAg
TExJTlRfQkVHSU4oKTsKICAgICB0cmFjZUZ1bmN0aW9uUHJvbG9ndWUoZXhlYywgImNvbnN0cnVj
dCBwcm9sb2d1ZSIsIENvZGVGb3JDb25zdHJ1Y3QpOwotICAgIExMSU5UX0VORCgpOworICAgIExM
SU5UX0VORF9JTVBMKCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHRyYWNlX2FyaXR5Q2hl
Y2tfZm9yX2NhbGwpCiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICB0cmFjZUZ1bmN0aW9uUHJv
bG9ndWUoZXhlYywgImNhbGwgYXJpdHkgY2hlY2siLCBDb2RlRm9yQ2FsbCk7Ci0gICAgTExJTlRf
RU5EKCk7CisgICAgTExJTlRfRU5EX0lNUEwoKTsKIH0KIAogTExJTlRfU0xPV19QQVRIX0RFQ0wo
dHJhY2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQogewotICAgIExMSU5UX0JFR0lOKCk7CiAg
ICAgdHJhY2VGdW5jdGlvblByb2xvZ3VlKGV4ZWMsICJjb25zdHJ1Y3QgYXJpdHkgY2hlY2siLCBD
b2RlRm9yQ29uc3RydWN0KTsKLSAgICBMTElOVF9FTkQoKTsKKyAgICBMTElOVF9FTkRfSU1QTCgp
OwogfQogCiBMTElOVF9TTE9XX1BBVEhfREVDTCh0cmFjZSkKIHsKLSAgICBMTElOVF9CRUdJTigp
OwogICAgIGRhdGFMb2coIiVwIC8gJXA6IGV4ZWN1dGluZyBiYyMlenUsICVzLCBzY29wZSAlcFxu
IiwKICAgICAgICAgICAgIGV4ZWMtPmNvZGVCbG9jaygpLAogICAgICAgICAgICAgZXhlYywKICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9jaygpLT5p
bnN0cnVjdGlvbnMoKS5iZWdpbigpKSwKICAgICAgICAgICAgIG9wY29kZU5hbWVzW2V4ZWMtPmds
b2JhbERhdGEoKS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpXSwKICAg
ICAgICAgICAgIGV4ZWMtPnNjb3BlQ2hhaW4oKSk7Ci0gICAgTExJTlRfRU5EKCk7CisgICAgaWYg
KGV4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNv
ZGUpID09IG9wX3JldCkgeworICAgICAgICBkYXRhTG9nKCJXaWxsIGJlIHJldHVybmluZyB0byAl
cFxuIiwgZXhlYy0+cmV0dXJuUEMoKS52YWx1ZSgpKTsKKyAgICAgICAgZGF0YUxvZygiVGhlIG5l
dyBjZnIgd2lsbCBiZSAlcFxuIiwgZXhlYy0+Y2FsbGVyRnJhbWUoKSk7CisgICAgfQorICAgIExM
SU5UX0VORF9JTVBMKCk7CiB9CiAKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNwZWNpYWxfdHJhY2Up
CiB7Ci0gICAgTExJTlRfQkVHSU4oKTsKICAgICBkYXRhTG9nKCIlcCAvICVwOiBleGVjdXRpbmcg
c3BlY2lhbCBjYXNlIGJjIyV6dSwgb3AjJXUsIHJldHVybiBQQyBpcyAlcFxuIiwKICAgICAgICAg
ICAgIGV4ZWMtPmNvZGVCbG9jaygpLAogICAgICAgICAgICAgZXhlYywKICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGludHB0cl90PihwYyAtIGV4ZWMtPmNvZGVCbG9jaygpLT5pbnN0cnVjdGlvbnMo
KS5iZWdpbigpKSwKICAgICAgICAgICAgIGV4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+
Z2V0T3Bjb2RlSUQocGNbMF0udS5vcGNvZGUpLAogICAgICAgICAgICAgZXhlYy0+cmV0dXJuUEMo
KS52YWx1ZSgpKTsKLSAgICBMTElOVF9FTkQoKTsKKyAgICBMTElOVF9FTkRfSU1QTCgpOwogfQog
CiBpbmxpbmUgYm9vbCBzaG91bGRKSVQoRXhlY1N0YXRlKiBleGVjKQpAQCAtMjk4LDYgKzI4NSw4
IEBAIGlubGluZSBib29sIGppdENvbXBpbGVBbmRTZXRIZXVyaXN0aWNzKEMKICAgICAgICAgY29k
ZUJsb2NrLT5qaXRTb29uKCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGVudW0gRW50cnlLaW5k
IHsgUHJvbG9ndWUsIEFyaXR5Q2hlY2sgfTsKQEAgLTE0MDcsNyArMTM5Niw3IEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9jYWxsX3ZhcmEKICAgICAKICAgICBleGVjQ2FsbGVlLT51
bmNoZWNrZWRSKFJlZ2lzdGVyRmlsZTo6Q2FsbGVlKSA9IGNhbGxlZUFzVmFsdWU7CiAgICAgZXhl
Y0NhbGxlZS0+c2V0Q2FsbGVyRnJhbWUoZXhlYyk7Ci0gICAgZXhlYy0+dW5jaGVja2VkUihSZWdp
c3RlckZpbGU6OkFyZ3VtZW50Q291bnQpLnRhZygpID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHBj
ICsgT1BDT0RFX0xFTkdUSChvcF9jYWxsX3ZhcmFyZ3MpKTsKKyAgICBleGVjLT5zZXRDdXJyZW50
VlBDKHBjICsgT1BDT0RFX0xFTkdUSChvcF9jYWxsX3ZhcmFyZ3MpKTsKICAgICAKICAgICByZXR1
cm4gc2V0VXBDYWxsKGV4ZWNDYWxsZWUsIHBjLCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSk7
CiB9CkBAIC0xNDI1LDcgKzE0MTQsNyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhf
Y2FsbF9ldmFsCiAgICAgZXhlY0NhbGxlZS0+c2V0U2NvcGVDaGFpbihleGVjLT5zY29wZUNoYWlu
KCkpOwogICAgIGV4ZWNDYWxsZWUtPnNldFJldHVyblBDKGJpdHdpc2VfY2FzdDxJbnN0cnVjdGlv
bio+KCZsbGludF9nZW5lcmljX3JldHVybl9wb2ludCkpOwogICAgIGV4ZWNDYWxsZWUtPnNldENv
ZGVCbG9jaygwKTsKLSAgICBleGVjLT51bmNoZWNrZWRSKFJlZ2lzdGVyRmlsZTo6QXJndW1lbnRD
b3VudCkudGFnKCkgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4ocGMgKyBPUENPREVfTEVOR1RIKG9w
X2NhbGxfZXZhbCkpOworICAgIGV4ZWMtPnNldEN1cnJlbnRWUEMocGMgKyBPUENPREVfTEVOR1RI
KG9wX2NhbGxfZXZhbCkpOwogICAgIAogICAgIGlmICghaXNIb3N0RnVuY3Rpb24oY2FsbGVlQXNW
YWx1ZSwgZ2xvYmFsRnVuY0V2YWwpKQogICAgICAgICByZXR1cm4gc2V0VXBDYWxsKGV4ZWNDYWxs
ZWUsIHBjLCBDb2RlRm9yQ2FsbCwgY2FsbGVlQXNWYWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAkocmV2aXNpb24gMTEwMzQ2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM4LDggKzM4LDQwIEBAIHN0cnVjdCBJbnN0cnVjdGlvbjsKIAogbmFtZXNwYWNlIExM
SW50IHsKIAorI2lmIFVTRShKU1ZBTFVFNjQpCitzdHJ1Y3QgU2xvd1BhdGhSZXR1cm5UeXBlIHsK
KyAgICB2b2lkKiBhOworICAgIHZvaWQqIGI7CisgICAgCisgICAgU2xvd1BhdGhSZXR1cm5UeXBl
KHZvaWQqIGEsIHZvaWQqIGIpCisgICAgICAgIDogYShhKQorICAgICAgICAsIGIoYikKKyAgICB7
CisgICAgfQorfTsKKworaW5saW5lIFNsb3dQYXRoUmV0dXJuVHlwZSBlbmNvZGVSZXN1bHQodm9p
ZCogYSwgdm9pZCogYikKK3sKKyAgICByZXR1cm4gU2xvd1BhdGhSZXR1cm5UeXBlKGEsIGIpOwor
fQorI2Vsc2UKIHR5cGVkZWYgaW50NjRfdCBTbG93UGF0aFJldHVyblR5cGU7CiAKK2lubGluZSBT
bG93UGF0aFJldHVyblR5cGUgZW5jb2RlUmVzdWx0KHZvaWQqIGEsIHZvaWQqIGIpCit7CisgICAg
dW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdm9pZCogYTsKKyAgICAgICAg
ICAgIHZvaWQqIGI7CisgICAgICAgIH0gcGFpcjsKKyAgICAgICAgaW50NjRfdCBpOworICAgIH0g
dTsKKyAgICB1LnBhaXIuYSA9IGE7CisgICAgdS5wYWlyLmIgPSBiOworICAgIHJldHVybiB1Lmk7
Cit9CisjZW5kaWYKKwogZXh0ZXJuICJDIiBTbG93UGF0aFJldHVyblR5cGUgbGxpbnRfdHJhY2Vf
b3BlcmFuZChFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiosIGludCBmcm9tV2hlcmUsIGludCBvcGVy
YW5kKTsKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBlIGxsaW50X3RyYWNlX3ZhbHVlKEV4
ZWNTdGF0ZSosIEluc3RydWN0aW9uKiwgaW50IGZyb21XaGVyZSwgaW50IG9wZXJhbmQpOwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRUaHVua3MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5jcHAJKHJldmlz
aW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFRodW5rcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDEwIEBACiAjaWYgRU5BQkxFKExMSU5UKQog
CiAjaW5jbHVkZSAiSlNJbnRlcmZhY2VKSVQuaCIKKyNpbmNsdWRlICJKU09iamVjdC5oIgogI2lu
Y2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCisj
aW5jbHVkZSAiU2NvcGVDaGFpbi5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIExMSW50
IHsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20JKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCSh3b3JraW5n
IGNvcHkpCkBAIC03MCwyOCArNzAsNiBAQAogIyBCZWxvdyB3ZSBoYXZlIGEgYnVuY2ggb2YgY29u
c3RhbnQgZGVjbGFyYXRpb25zLiBFYWNoIGNvbnN0YW50IG11c3QgaGF2ZQogIyBhIGNvcnJlc3Bv
bmRpbmcgQVNTRVJUKCkgaW4gTExJbnREYXRhLmNwcC4KIAotIyBUaGVzZSBkZWNsYXJhdGlvbnMg
bXVzdCBtYXRjaCBpbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaC4KLWNvbnN0IENhbGxGcmFtZUhl
YWRlclNpemUgPSA0OAotY29uc3QgQXJndW1lbnRDb3VudCA9IC00OAotY29uc3QgQ2FsbGVyRnJh
bWUgPSAtNDAKLWNvbnN0IENhbGxlZSA9IC0zMgotY29uc3QgU2NvcGVDaGFpbiA9IC0yNAotY29u
c3QgUmV0dXJuUEMgPSAtMTYKLWNvbnN0IENvZGVCbG9jayA9IC04Ci0KLWNvbnN0IFRoaXNBcmd1
bWVudE9mZnNldCA9IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0gOAotCi0jIERlY2xhcmUgc29tZSBh
bGlhc2VzIGZvciB0aGUgcmVnaXN0ZXJzIHdlIHdpbGwgdXNlLgotY29uc3QgUEMgPSB0NAotCi0j
IE9mZnNldHMgbmVlZGVkIGZvciByZWFzb25pbmcgYWJvdXQgdmFsdWUgcmVwcmVzZW50YXRpb24u
Ci1pZiBCSUdfRU5ESUFOCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gMAotICAgIGNvbnN0IFBheWxv
YWRPZmZzZXQgPSA0Ci1lbHNlCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gNAotICAgIGNvbnN0IFBh
eWxvYWRPZmZzZXQgPSAwCi1lbmQKIAogIyBWYWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMu
CiBjb25zdCBJbnQzMlRhZyA9IC0xCkBAIC0xMDMsNzEgKzgxLDggQEAgY29uc3QgRW1wdHlWYWx1
ZVRhZyA9IC02CiBjb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwogY29uc3QgTG93ZXN0VGFnID0g
RGVsZXRlZFZhbHVlVGFnCiAKLSMgVHlwZSBjb25zdGFudHMuCi1jb25zdCBTdHJpbmdUeXBlID0g
NQotY29uc3QgT2JqZWN0VHlwZSA9IDEzCi0KLSMgVHlwZSBmbGFncyBjb25zdGFudHMuCi1jb25z
dCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMQotY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNl
ID0gMgotY29uc3QgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDgKLQotIyBIZWFwIGFs
bG9jYXRpb24gY29uc3RhbnRzLgotY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0g
MwotCi0jIEJ5dGVjb2RlIG9wZXJhbmQgY29uc3RhbnRzLgotY29uc3QgRmlyc3RDb25zdGFudFJl
Z2lzdGVySW5kZXggPSAweDQwMDAwMDAwCi0KLSMgQ29kZSB0eXBlIGNvbnN0YW50cy4KLWNvbnN0
IEdsb2JhbENvZGUgPSAwCi1jb25zdCBFdmFsQ29kZSA9IDEKLWNvbnN0IEZ1bmN0aW9uQ29kZSA9
IDIKLQotIyBUaGUgaW50ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1l
bnQgY291bnQuCi1jb25zdCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNl
dAotCi0jIFRoaXMgbXVzdCBtYXRjaCB3dGYvVmVjdG9yLmguCi1jb25zdCBWZWN0b3JTaXplT2Zm
c2V0ID0gMAotY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAotCi0jIFN0cmluZyBmbGFncy4K
LWNvbnN0IEhhc2hGbGFnczhCaXRCdWZmZXIgPSA2NAogCiAjIFV0aWxpdGllcwotbWFjcm8gY3Jh
c2goKQotICAgIHN0b3JlaSAwLCAweGJiYWRiZWVmW10KLSAgICBtb3ZlIDAsIHQwCi0gICAgY2Fs
bCB0MAotZW5kCi0KLW1hY3JvIGFzc2VydChhc3NlcnRpb24pCi0gICAgaWYgQVNTRVJUX0VOQUJM
RUQKLSAgICAgICAgYXNzZXJ0aW9uKC5vaykKLSAgICAgICAgY3Jhc2goKQotICAgIC5vazoKLSAg
ICBlbmQKLWVuZAotCi1tYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGlu
YXRpb25SZWdpc3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlv
blJlZ2lzdGVyCi0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVy
Ci0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KLW1hY3JvIHJlc3RvcmVS
ZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQotICAgIGlmIEFSTXY3Ci0g
ICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHB1
c2ggc291cmNlUmVnaXN0ZXIKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi1lbmQK
LQogbWFjcm8gZGlzcGF0Y2goYWR2YW5jZSkKICAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQwogICAg
IGptcCBbUENdCkBAIC0yMjAsOCArMTM1LDggQEAgbWFjcm8gY0NhbGw0KGZ1bmN0aW9uLCBhcmcx
LCBhcmcyLCBhcmczLAogICAgIGNhbGwgZnVuY3Rpb24KIGVuZAogCi1tYWNybyBjYWxsU2xvd1Bh
dGgoc2xvd19wYXRoKQotICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpCittYWNybyBjYWxs
U2xvd1BhdGgoc2xvd1BhdGgpCisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQogICAgIG1v
dmUgdDAsIFBDCiAgICAgbW92ZSB0MSwgY2ZyCiBlbmQKQEAgLTI0NSw0MCArMTYwLDE1IEBAIG1h
Y3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQogICAgIG1vdmUgdDEsIGNmcgogZW5k
CiAKLW1hY3JvIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBpZiBFWEVDVVRJT05fVFJBQ0lORwotICAg
ICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3RyYWNlKQotICAgIGVuZAotZW5kCi0KLSMgQ2FsbCBh
IHNsb3dfcGF0aCBmb3IgY2FsbCBvcGNvZGVzLgotbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZh
bmNlLCBzbG93X3BhdGgsIGFjdGlvbikKKyMgQ2FsbCBhIHNsb3dQYXRoIGZvciBjYWxsIG9wY29k
ZXMuCittYWNybyBjYWxsQ2FsbFNsb3dQYXRoKGFkdmFuY2UsIHNsb3dQYXRoLCBhY3Rpb24pCiAg
ICAgYWRkcCBhZHZhbmNlICogNCwgUEMsIHQwCiAgICAgc3RvcmVwIHQwLCBBcmd1bWVudENvdW50
ICsgVGFnT2Zmc2V0W2Nmcl0KLSAgICBjQ2FsbDIoc2xvd19wYXRoLCBjZnIsIFBDKQorICAgIGND
YWxsMihzbG93UGF0aCwgY2ZyLCBQQykKICAgICBtb3ZlIHQxLCBjZnIKICAgICBhY3Rpb24odDAp
CiBlbmQKIAotbWFjcm8gc2xvd1BhdGhGb3JDYWxsKGFkdmFuY2UsIHNsb3dfcGF0aCkKLSAgICBj
YWxsQ2FsbFNsb3dQYXRoKAotICAgICAgICBhZHZhbmNlLAotICAgICAgICBzbG93X3BhdGgsCi0g
ICAgICAgIG1hY3JvIChjYWxsZWUpCi0gICAgICAgICAgICBjYWxsIGNhbGxlZQotICAgICAgICAg
ICAgZGlzcGF0Y2hBZnRlckNhbGwoKQotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gY2hlY2tT
d2l0Y2hUb0pJVChpbmNyZW1lbnQsIGFjdGlvbikKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAg
ICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKLSAgICAgICAgYmFkZGlzIGluY3JlbWVudCwgQ29k
ZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50
ZXJbdDBdLCAuY29udGludWUKLSAgICAgICAgYWN0aW9uKCkKLSAgICAuY29udGludWU6Ci0gICAg
ZW5kCi1lbmQKLQogbWFjcm8gY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQogICAgIGNoZWNrU3dp
dGNoVG9KSVQoCiAgICAgICAgIDEsCkBAIC0yOTMsMTggKzE4Myw2IEBAIG1hY3JvIGNoZWNrU3dp
dGNoVG9KSVRGb3JMb29wKCkKICAgICAgICAgZW5kKQogZW5kCiAKLW1hY3JvIGNoZWNrU3dpdGNo
VG9KSVRGb3JFcGlsb2d1ZSgpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVCgKLSAgICAgICAgMTAsCi0g
ICAgICAgIG1hY3JvICgpCi0gICAgICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlcGxhY2Up
Ci0gICAgICAgIGVuZCkKLWVuZAotCi1tYWNybyBhc3NlcnROb3RDb25zdGFudChpbmRleCkKLSAg
ICBhc3NlcnQobWFjcm8gKG9rKSBiaWx0IGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRl
eCwgb2sgZW5kKQotZW5kCi0KICMgSW5kZXgsIHRhZywgYW5kIHBheWxvYWQgbXVzdCBiZSBkaWZm
ZXJlbnQgcmVnaXN0ZXJzLiBJbmRleCBpcyBub3QKICMgY2hhbmdlZC4KIG1hY3JvIGxvYWRDb25z
dGFudE9yVmFyaWFibGUoaW5kZXgsIHRhZywgcGF5bG9hZCkKQEAgLTM4NiwxMDkgKzI2NCw4IEBA
IG1hY3JvIHZhbHVlUHJvZmlsZSh0YWcsIHBheWxvYWQsIHByb2ZpbGUKIGVuZAogCiAKLSMgSW5k
aWNhdGUgdGhlIGJlZ2lubmluZyBvZiBMTEludC4KLV9sbGludF9iZWdpbjoKLSAgICBjcmFzaCgp
Ci0KLQogIyBFbnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlcgogCi1tYWNybyBmdW5jdGlv
bkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ2FsbGVl
W2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxl
W3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1
dGFibGU6Om1fY29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVy
Ci1lbmQKLQotbWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0
UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9h
ZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0
ZXIKLSAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0
W3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBub3RGdW5jdGlv
bkNvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2Zy
XSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihz
b3VyY2VSZWdpc3RlcikKLSAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJd
Ci1lbmQKLQotbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIp
Ci0gICAgIyBOb3RoaW5nIHRvIGRvIQotZW5kCi0KLSMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1
aXJlZCB0byBleGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2Nr
KgotIyBpbiB0MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCi1tYWNybyBw
cm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRy
YWNlU2xvd1BhdGgpCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQotICAg
IAotICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NS
LgotICAgIHN0b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQotICAgIGlmIEVYRUNVVElPTl9UUkFDSU5H
Ci0gICAgICAgIGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQotICAgIGVuZAotICAgIGNvZGVC
bG9ja0dldHRlcih0MSkKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBiYWRkaXMgNSwgQ29k
ZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXIgKyBFeGVjdXRpb25Db3VudGVyOjptX2NvdW50
ZXJbdDFdLCAuY29udGludWUKLSAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQot
ICAgICAgICBtb3ZlIHQxLCBjZnIKLSAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKLSAgICAgICAg
bG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZv
cmVSZXR1cm4odDIpCi0gICAgICAgIGptcCB0MAotICAgIC5yZWNvdmVyOgotICAgICAgICBjb2Rl
QmxvY2tHZXR0ZXIodDEpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotICAgIGNvZGVCbG9ja1Nl
dHRlcih0MSkKLSAgICAKLSAgICAjIFNldCB1cCB0aGUgUEMuCi0gICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2luc3RydWN0aW9uc1t0MV0sIFBDCi1lbmQKLQotIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2Nr
IGlzIGluIHQxLCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KLSMgTXVz
dCBjYWxsIGRpc3BhdGNoKDApIGFmdGVyIGNhbGxpbmcgdGhpcy4KLW1hY3JvIGZ1bmN0aW9uSW5p
dGlhbGl6YXRpb24ocHJvZmlsZUFyZ1NraXApCi0gICAgaWYgVkFMVUVfUFJPRklMRVIKLSAgICAg
ICAgIyBQcm9maWxlIHRoZSBhcmd1bWVudHMuIFVuZm9ydHVuYXRlbHksIHdlIGhhdmUgbm8gY2hv
aWNlIGJ1dCB0byBkbyB0aGlzLiBUaGlzCi0gICAgICAgICMgY29kZSBpcyBwcmV0dHkgaG9ycmVu
ZG91cyBiZWNhdXNlIG9mIHRoZSBkaWZmZXJlbmNlIGluIG9yZGVyaW5nIGJldHdlZW4KLSAgICAg
ICAgIyBhcmd1bWVudHMgYW5kIHZhbHVlIHByb2ZpbGVzLCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBz
aW1wbGUgbG9vcC1kb3duLXRvLXplcm8KLSAgICAgICAgIyBsb29wLCBhbmQgdGhlIGRlc2lyZSB0
byB1c2Ugb25seSB0aHJlZSByZWdpc3RlcnMgc28gYXMgdG8gcHJlc2VydmUgdGhlIFBDIGFuZAot
ICAgICAgICAjIHRoZSBjb2RlIGJsb2NrLiBJdCBpcyBsaWtlbHkgdGhhdCB0aGlzIGNvZGUgc2hv
dWxkIGJlIHJld3JpdHRlbiBpbiBhIG1vcmUKLSAgICAgICAgIyBvcHRpbWFsIHdheSBmb3IgYXJj
aGl0ZWN0dXJlcyB0aGF0IGhhdmUgbW9yZSB0aGFuIGZpdmUgcmVnaXN0ZXJzIGF2YWlsYWJsZQot
ICAgICAgICAjIGZvciBhcmJpdHJhcnkgdXNlIGluIHRoZSBpbnRlcnByZXRlci4KLSAgICAgICAg
bG9hZGkgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNbdDFdLCB0MAotICAgICAgICBhZGRpIC1w
cm9maWxlQXJnU2tpcCwgdDAgIyBVc2UgYWRkaSBiZWNhdXNlIHRoYXQncyB3aGF0IGhhcyB0aGUg
cGVlcGhvbGUKLSAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYmlndGVxIHQwLCAwLCBvayBlbmQp
Ci0gICAgICAgIGJ0aXogdDAsIC5hcmd1bWVudFByb2ZpbGVEb25lCi0gICAgICAgIGxvYWRwIENv
ZGVCbG9jazo6bV9hcmd1bWVudFZhbHVlUHJvZmlsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDFd
LCB0MwotICAgICAgICBtdWxpIHNpemVvZiBWYWx1ZVByb2ZpbGUsIHQwLCB0MiAjIEFhYWFhaGho
aCEgTmVlZCBzdHJlbmd0aCByZWR1Y3Rpb24hCi0gICAgICAgIG5lZ2kgdDAKLSAgICAgICAgbHNo
aWZ0aSAzLCB0MAotICAgICAgICBhZGRwIHQyLCB0MwotICAgIC5hcmd1bWVudFByb2ZpbGVMb29w
OgotICAgICAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXQgKyA4IC0gcHJv
ZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdWJwIHNpemVvZiBWYWx1ZVBy
b2ZpbGUsIHQzCi0gICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFs
dWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBUYWdPZmZzZXRbdDNdCi0gICAg
ICAgIGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFBheWxvYWRPZmZzZXQgKyA4IC0gcHJvZmls
ZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgotICAgICAgICBzdG9yZWkgdDIsIHByb2ZpbGVBcmdT
a2lwICogc2l6ZW9mIFZhbHVlUHJvZmlsZSArIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgUGF5
bG9hZE9mZnNldFt0M10KLSAgICAgICAgYmFkZGlueiA4LCB0MCwgLmFyZ3VtZW50UHJvZmlsZUxv
b3AKLSAgICAuYXJndW1lbnRQcm9maWxlRG9uZToKLSAgICBlbmQKLSAgICAgICAgCi0gICAgIyBD
aGVjayBzdGFjayBoZWlnaHQuCi0gICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lz
dGVyc1t0MV0sIHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDFdLCB0Mgot
ICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0MiAgICMgRklYTUU6IENh
biBnZXQgdG8gdGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFja0ZyYW1lCi0gICAgbHNo
aWZ0aSAzLCB0MAotICAgIGFkZHAgdDAsIGNmciwgdDAKLSAgICBicGFlcSBJbnRlcnByZXRlcjo6
bV9yZWdpc3RlckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwgdDAsIC5zdGFja0hlaWdo
dE9LCi0KLSAgICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBz
bG93X3BhdGguCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdpc3Rlcl9maWxlX2NoZWNrKQot
LnN0YWNrSGVpZ2h0T0s6Ci1lbmQKLQogIyBFeHBlY3RzIHRoYXQgQ29kZUJsb2NrIGlzIGluIHQx
LCB3aGljaCBpcyB3aGF0IHByb2xvZ3VlKCkgbGVhdmVzIGJlaGluZC4KIG1hY3JvIGZ1bmN0aW9u
QXJpdHlDaGVjayhkb25lTGFiZWwsIHNsb3dfcGF0aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0
ICsgQXJndW1lbnRDb3VudFtjZnJdLCB0MApAQCAtNTA2LDM4ICsyODMsNiBAQCBtYWNybyBmdW5j
dGlvbkFyaXR5Q2hlY2soZG9uZUxhYmVsLCBzbG93CiAgICAgam1wIGRvbmVMYWJlbAogZW5kCiAK
LV9sbGludF9wcm9ncmFtX3Byb2xvZ3VlOgotICAgIHByb2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJs
b2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zciwg
X2xsaW50X3RyYWNlX3Byb2xvZ3VlKQotICAgIGRpc3BhdGNoKDApCi0KLQotX2xsaW50X2V2YWxf
cHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1
bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJv
bG9ndWUpCi0gICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJv
bG9ndWU6Ci0gICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5j
dGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwg
X2xsaW50X3RyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jYWxsKQotLmZ1bmN0aW9uRm9yQ2Fs
bEJlZ2luOgotICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMCkKLSAgICBkaXNwYXRjaCgwKQot
ICAgIAotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9wcm9sb2d1ZToKLSAgICBwcm9s
b2d1ZShmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxv
Y2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCwgX2xsaW50
X3RyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3QpCi0uZnVuY3Rpb25Gb3JDb25z
dHJ1Y3RCZWdpbjoKLSAgICBmdW5jdGlvbkluaXRpYWxpemF0aW9uKDEpCi0gICAgZGlzcGF0Y2go
MCkKLSAgICAKLQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jYWxsX2FyaXR5X2NoZWNrOgotICAgIHBy
b2xvZ3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tT
ZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlDaGVjaywgX2xs
aW50X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NhbGwpCi0gICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5m
dW5jdGlvbkZvckNhbGxCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2FyaXR5Q2hlY2spCi0K
LQotX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlfY2hlY2s6Ci0gICAgcHJvbG9n
dWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2Nr
U2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVj
aywgX2xsaW50X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NvbnN0cnVjdCkKLSAgICBmdW5jdGlvbkFy
aXR5Q2hlY2soLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVnaW4sIF9sbGludF9zbG93X3BhdGhfY29u
c3RydWN0X2FyaXR5Q2hlY2spCiAKICMgSW5zdHJ1Y3Rpb24gaW1wbGVtZW50YXRpb25zCiAKQEAg
LTU4MywzOSArMzI4LDYgQEAgX2xsaW50X29wX2NyZWF0ZV9hcmd1bWVudHM6CiAgICAgZGlzcGF0
Y2goMikKIAogCi1tYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIGNs
YXNzSW5mb09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgc2xv
d0Nhc2UpCi0gICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKLSAgICAgICAgam1wIHNsb3dDYXNl
Ci0gICAgZWxzZQotICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0KLSAgICAgICAg
ICAgIEpTR2xvYmFsRGF0YTo6aGVhcCArCi0gICAgICAgICAgICBIZWFwOjptX29iamVjdFNwYWNl
ICsKLSAgICAgICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKLSAgICAgICAgICAg
IE1hcmtlZFNwYWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKwotICAgICAgICAgICAg
c2l6ZUNsYXNzSW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCi0gICAgICAgIAotICAgICAg
ICAjIEZJWE1FOiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9hZCBmcm9tIHRo
ZSBzdGFjay4KLSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gxCi0gICAgICAg
IGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRjaDEKLSAgICAg
ICAgCi0gICAgICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LiAgICAKLSAg
ICAgICAgbG9hZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJz
dEZyZWVDZWxsW3NjcmF0Y2gxXSwgcmVzdWx0Ci0gICAgICAgIGJ0cHogcmVzdWx0LCBzbG93Q2Fz
ZQotICAgICAgICAKLSAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxp
c3QuCi0gICAgICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2Ny
YXRjaDIsIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVl
Q2VsbFtzY3JhdGNoMV0KLSAgICAKLSAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmplY3QuCi0g
ICAgICAgIGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCi0gICAgICAg
IHN0b3JlcCBzY3JhdGNoMiwgW3Jlc3VsdF0KLSAgICAgICAgc3RvcmVwIHN0cnVjdHVyZSwgSlND
ZWxsOjptX3N0cnVjdHVyZVtyZXN1bHRdCi0gICAgICAgIHN0b3JlcCAwLCBKU09iamVjdDo6bV9p
bmhlcml0b3JJRFtyZXN1bHRdCi0gICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0LCByZXN1bHQs
IHNjcmF0Y2gxCi0gICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1fcHJvcGVydHlT
dG9yYWdlW3Jlc3VsdF0KLSAgICBlbmQKLWVuZAotCiBfbGxpbnRfb3BfY3JlYXRlX3RoaXM6CiAg
ICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDhbUENdLCB0MApAQCAtNjc2LDI0ICszODgs
NiBAQCBfbGxpbnRfb3BfbmV3X29iamVjdDoKICAgICBkaXNwYXRjaCgyKQogCiAKLV9sbGludF9v
cF9uZXdfYXJyYXk6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX25ld19hcnJheSkKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9u
ZXdfYXJyYXlfYnVmZmVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQotICAgIGRpc3BhdGNoKDQpCi0KLQot
X2xsaW50X29wX25ld19yZWdleHA6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19yZWdleHApCi0gICAgZGlzcGF0Y2goMykKLQotCiBf
bGxpbnRfb3BfbW92OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDEK
QEAgLTgwMiw3ICs0OTYsNyBAQCBfbGxpbnRfb3BfbmVxX251bGw6CiAgICAgZGlzcGF0Y2goMykK
IAogCi1tYWNybyBzdHJpY3RFcShlcXVhbGl0eU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8g
c3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQogICAgIGxvYWRpIDEyW1BDXSwg
dDIKICAgICBsb2FkaSA4W1BDXSwgdDAKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0
MywgdDEpCkBAIC04MjIsNyArNTE2LDcgQEAgbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRp
b24sIHNsb3dfcAogICAgIGRpc3BhdGNoKDQpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChz
bG93X3BhdGgpCisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKDQpCiBl
bmQKIApAQCAtODM2LDMwICs1MzAsNiBAQCBfbGxpbnRfb3BfbnN0cmljdGVxOgogICAgIHN0cmlj
dEVxKG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0
IGVuZCwgX2xsaW50X3Nsb3dfcGF0aF9uc3RyaWN0ZXEpCiAKIAotX2xsaW50X29wX2xlc3M6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xl
c3MpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfbGVzc2VxOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzZXEpCi0gICAg
ZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfZ3JlYXRlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcikKLSAgICBkaXNwYXRj
aCg0KQotCi0KLV9sbGludF9vcF9ncmVhdGVyZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dyZWF0ZXJlcSkKLSAgICBkaXNwYXRjaCg0
KQotCi0KIF9sbGludF9vcF9wcmVfaW5jOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2Fk
aSA0W1BDXSwgdDAKQEAgLTk2OCw3ICs2MzgsNyBAQCBfbGxpbnRfb3BfbmVnYXRlOgogICAgIGRp
c3BhdGNoKDMpCiAKIAotbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShpbnRlZ2VyT3BlcmF0aW9u
QW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorbWFjcm8gYmluYXJ5T3BDdXN0
b21TdG9yZShpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1Bh
dGgpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENdLCB0MAogICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwMDYsMTggKzY3NiwxOCBAQCBtYWNy
byBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpCiAgICAgZGlzcGF0Y2goNSkKIAog
LnNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKKyAgICBjYWxsU2xvd1BhdGgoc2xv
d1BhdGgpCiAgICAgZGlzcGF0Y2goNSkKIGVuZAogCi1tYWNybyBiaW5hcnlPcChpbnRlZ2VyT3Bl
cmF0aW9uLCBkb3VibGVPcGVyYXRpb24sIHNsb3dfcGF0aCkKK21hY3JvIGJpbmFyeU9wKGludGVn
ZXJPcGVyYXRpb24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAgYmluYXJ5T3BDdXN0
b21TdG9yZSgKICAgICAgICAgbWFjcm8gKGludDMyVGFnLCBsZWZ0LCByaWdodCwgc2xvdywgaW5k
ZXgpCiAgICAgICAgICAgICBpbnRlZ2VyT3BlcmF0aW9uKGxlZnQsIHJpZ2h0LCBzbG93KQogICAg
ICAgICAgICAgc3RvcmVpIGludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCBpbmRleCwgOF0KICAgICAg
ICAgICAgIHN0b3JlaSByaWdodCwgUGF5bG9hZE9mZnNldFtjZnIsIGluZGV4LCA4XQogICAgICAg
ICBlbmQsCi0gICAgICAgIGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorICAgICAgICBkb3Vi
bGVPcGVyYXRpb24sIHNsb3dQYXRoKQogZW5kCiAKIF9sbGludF9vcF9hZGQ6CkBAIC0xMDczLDEz
ICs3NDMsNyBAQCBfbGxpbnRfb3BfZGl2OgogICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikK
IAogCi1fbGxpbnRfb3BfbW9kOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9tb2QpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1tYWNybyBiaXRP
cChvcGVyYXRpb24sIHNsb3dfcGF0aCwgYWR2YW5jZSkKK21hY3JvIGJpdE9wKG9wZXJhdGlvbiwg
c2xvd1BhdGgsIGFkdmFuY2UpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRpIDhbUENd
LCB0MAogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTEwOTMsNyAr
NzU3LDcgQEAgbWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93X3BhdGgsIGFkdmFuYwogICAgIGRp
c3BhdGNoKGFkdmFuY2UpCiAKIC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCisg
ICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKGFkdmFuY2UpCiBlbmQKIApA
QCAtMTE5OCw2NiArODYyLDYgQEAgX2xsaW50X29wX2luc3RhbmNlb2Y6CiAgICAgZGlzcGF0Y2go
NSkKIAogCi1fbGxpbnRfb3BfdHlwZW9mOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90eXBlb2YpCi0gICAgZGlzcGF0Y2goMykKLQotCi1f
bGxpbnRfb3BfaXNfdW5kZWZpbmVkOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc191bmRlZmluZWQpCi0gICAgZGlzcGF0Y2goMykKLQot
Ci1fbGxpbnRfb3BfaXNfYm9vbGVhbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfYm9vbGVhbikKLSAgICBkaXNwYXRjaCgzKQotCi0K
LV9sbGludF9vcF9pc19udW1iZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX251bWJlcikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9s
bGludF9vcF9pc19zdHJpbmc6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2lzX3N0cmluZykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGlu
dF9vcF9pc19vYmplY3Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2lzX29iamVjdCkKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9v
cF9pc19mdW5jdGlvbjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfaXNfZnVuY3Rpb24pCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRf
b3BfaW46Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2luKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3Jlc29sdmU6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29s
dmUpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcmVzb2x2ZV9za2lwOgotICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZl
X3NraXApCi0gICAgZGlzcGF0Y2goNSkKLQotCiBtYWNybyByZXNvbHZlR2xvYmFsKHNpemUsIHNs
b3cpCiAgICAgIyBPcGVyYW5kcyBhcmUgYXMgZm9sbG93czoKICAgICAjIDRbUENdICAgRGVzdGlu
YXRpb24gZm9yIHRoZSBsb2FkLgpAQCAtMTQwOCwzMCArMTAxMiw2IEBAIF9sbGludF9vcF9wdXRf
Z2xvYmFsX3ZhcjoKICAgICBkaXNwYXRjaCgzKQogCiAKLV9sbGludF9vcF9yZXNvbHZlX2Jhc2U6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X3Jlc29sdmVfYmFzZSkKLSAgICBkaXNwYXRjaCg1KQotCi0KLV9sbGludF9vcF9lbnN1cmVfcHJv
cGVydHlfZXhpc3RzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzKQotICAgIGRpc3BhdGNoKDMpCi0K
LQotX2xsaW50X29wX3Jlc29sdmVfd2l0aF9iYXNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3dpdGhfYmFzZSkKLSAgICBk
aXNwYXRjaCg1KQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3dpdGhfdGhpczoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRo
X3RoaXMpCi0gICAgZGlzcGF0Y2goNSkKLQotCiBfbGxpbnRfb3BfZ2V0X2J5X2lkOgogICAgIHRy
YWNlRXhlY3V0aW9uKCkKICAgICAjIFdlIG9ubHkgZG8gbW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNh
Y2hpbmcgZm9yIG5vdywgYW5kIHdlIGRvIG5vdCBtb2RpZnkgdGhlCkBAIC0xNTM5LDEyICsxMTE5
LDYgQEAgX2xsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKICAgICAgICAgZW5k
KQogCiAKLV9sbGludF9vcF9kZWxfYnlfaWQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKLSAgICBkaXNwYXRjaCg0KQot
Ci0KIF9sbGludF9vcF9nZXRfYnlfdmFsOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBsb2Fk
cCBDb2RlQmxvY2tbY2ZyXSwgdDEKQEAgLTE2NTYsMjQgKzEyMzAsNiBAQCBfbGxpbnRfb3BfcHV0
X2J5X3ZhbDoKICAgICBkaXNwYXRjaCg0KQogCiAKLV9sbGludF9vcF9kZWxfYnlfdmFsOgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWxf
YnlfdmFsKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9ieV9pbmRleDoKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0
X2J5X2luZGV4KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3B1dF9nZXR0ZXJfc2V0
dGVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9wdXRfZ2V0dGVyX3NldHRlcikKLSAgICBkaXNwYXRjaCg1KQotCi0KIF9sbGludF9vcF9s
b29wOgogICAgIG5vcAogX2xsaW50X29wX2ptcDoKQEAgLTE2ODEsMTIgKzEyMzcsNiBAQCBfbGxp
bnRfb3Bfam1wOgogICAgIGRpc3BhdGNoQnJhbmNoKDRbUENdKQogCiAKLV9sbGludF9vcF9qbXBf
c2NvcGVzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Ns
b3dfcGF0aF9qbXBfc2NvcGVzKQotICAgIGRpc3BhdGNoKDApCi0KLQogbWFjcm8ganVtcFRydWVP
ckZhbHNlKGNvbmRpdGlvbk9wLCBzbG93KQogICAgIGxvYWRpIDRbUENdLCB0MQogICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQxLCBCb29sZWFuVGFnLCB0MCwgLnNsb3cpCkBAIC0x
NzAxLDI2ICsxMjUxLDEwIEBAIG1hY3JvIGp1bXBUcnVlT3JGYWxzZShjb25kaXRpb25PcCwgc2xv
dykKICAgICBkaXNwYXRjaCgwKQogZW5kCiAKLV9sbGludF9vcF9sb29wX2lmX3RydWU6Ci0gICAg
bm9wCi1fbGxpbnRfb3BfanRydWU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGp1bXBUcnVl
T3JGYWxzZSgKLSAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0aW56IHZhbHVlLCB0YXJn
ZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2p0cnVlKQotCi0KLV9sbGludF9vcF9s
b29wX2lmX2ZhbHNlOgotICAgIG5vcAotX2xsaW50X29wX2pmYWxzZToKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAganVtcFRydWVPckZhbHNlKAotICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdl
dCkgYnRpeiB2YWx1ZSwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZmFs
c2UpCi0KIAogbWFjcm8gZXF1YWxOdWxsKGNlbGxIYW5kbGVyLCBpbW1lZGlhdGVIYW5kbGVyKQog
ICAgIGxvYWRpIDRbUENdLCB0MAorICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQogICAgIGxvYWRp
IFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgdDEKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2Nmciwg
dDAsIDhdLCB0MAogICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAuaW1tZWRpYXRlCkBAIC0xNzYzLDcg
KzEyOTcsNyBAQCBfbGxpbnRfb3Bfam5lcV9wdHI6CiAgICAgZGlzcGF0Y2goNCkKIAogCi1tYWNy
byBjb21wYXJlKGludGVnZXJDb21wYXJlLCBkb3VibGVDb21wYXJlLCBzbG93X3BhdGgpCittYWNy
byBjb21wYXJlKGludGVnZXJDb21wYXJlLCBkb3VibGVDb21wYXJlLCBzbG93UGF0aCkKICAgICBs
b2FkaSA0W1BDXSwgdDIKICAgICBsb2FkaSA4W1BDXSwgdDMKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKHQyLCB0MCwgdDEpCkBAIC0xNzk3LDg3ICsxMzMxLDEwIEBAIG1hY3JvIGNvbXBhcmUo
aW50ZWdlckNvbXBhcmUsIGRvdWJsZUNvbXAKICAgICBkaXNwYXRjaEJyYW5jaCgxMltQQ10pCiAK
IC5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCisgICAgY2FsbFNsb3dQYXRoKHNs
b3dQYXRoKQogICAgIGRpc3BhdGNoKDApCiBlbmQKIAotX2xsaW50X29wX2xvb3BfaWZfbGVzczoK
LSAgICBub3AKLV9sbGludF9vcF9qbGVzczoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29t
cGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHQgbGVmdCwgcmln
aHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0
IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2psZXNz
KQotCi0KLV9sbGludF9vcF9qbmxlc3M6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBh
cmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVmdCwgcmln
aHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0
ZXF1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9q
bmxlc3MpCi0KLQotX2xsaW50X29wX2xvb3BfaWZfZ3JlYXRlcjoKLSAgICBub3AKLV9sbGludF9v
cF9qZ3JlYXRlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKLSAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQs
Ci0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0IGxlZnQsIHJpZ2h0LCB0
YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyKQotCi0KLV9sbGlu
dF9vcF9qbmdyZWF0ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAg
ICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdl
dCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXF1biBsZWZ0
LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXIp
Ci0KLQotX2xsaW50X29wX2xvb3BfaWZfbGVzc2VxOgotICAgIG5vcAotX2xsaW50X29wX2psZXNz
ZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAg
ICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdl
dCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93X3BhdGhfamxlc3NlcSkKLQotCi1fbGxpbnRfb3Bf
am5sZXNzZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAot
ICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndHVuIGxlZnQsIHJpZ2h0LCB0
YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzc2VxKQotCi0KLV9sbGlu
dF9vcF9sb29wX2lmX2dyZWF0ZXJlcToKLSAgICBub3AKLV9sbGludF9vcF9qZ3JlYXRlcmVxOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHRhcmdldCkgYmlndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5k
LAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyZXEpCi0KLQotX2xsaW50X29wX2pu
Z3JlYXRlcmVxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwK
LSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHR1biBsZWZ0LCByaWdodCwg
dGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmdyZWF0ZXJlcSkKLQotCi1f
bGxpbnRfb3BfbG9vcF9oaW50OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjaGVja1N3aXRj
aFRvSklURm9yTG9vcCgpCi0gICAgZGlzcGF0Y2goMSkKLQogCiBfbGxpbnRfb3Bfc3dpdGNoX2lt
bToKICAgICB0cmFjZUV4ZWN1dGlvbigpCkBAIC0xOTMzLDE5ICsxMzkwLDEzIEBAIF9sbGludF9v
cF9zd2l0Y2hfY2hhcjoKICAgICBiaWFlcSB0MCwgU2ltcGxlSnVtcFRhYmxlOjpicmFuY2hPZmZz
ZXRzICsgVmVjdG9yU2l6ZU9mZnNldFt0Ml0sIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAogICAg
IGxvYWRwIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvckJ1ZmZlck9mZnNl
dFt0Ml0sIHQyCiAgICAgbG9hZGkgW3QyLCB0MCwgNF0sIHQxCi0gICAgYnRpeiB0MSwgLm9wU3dp
dGNoSW1tRmFsbFRocm91Z2gKKyAgICBidGl6IHQxLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gK
ICAgICBkaXNwYXRjaEJyYW5jaFdpdGhPZmZzZXQodDEpCiAKIC5vcFN3aXRjaENoYXJGYWxsVGhy
b3VnaDoKICAgICBkaXNwYXRjaEJyYW5jaCg4W1BDXSkKIAogCi1fbGxpbnRfb3Bfc3dpdGNoX3N0
cmluZzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfc3dpdGNoX3N0cmluZykKLSAgICBkaXNwYXRjaCgwKQotCi0KIF9sbGludF9vcF9uZXdf
ZnVuYzoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgYnRpeiAxMltQQ10sIC5vcE5ld0Z1bmNV
bmNoZWNrZWQKQEAgLTE5NTcsMTMgKzE0MDgsNyBAQCBfbGxpbnRfb3BfbmV3X2Z1bmM6CiAgICAg
ZGlzcGF0Y2goNCkKIAogCi1fbGxpbnRfb3BfbmV3X2Z1bmNfZXhwOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfZnVuY19leHApCi0g
ICAgZGlzcGF0Y2goMykKLQotCi1tYWNybyBkb0NhbGwoc2xvd19wYXRoKQorbWFjcm8gZG9DYWxs
KHNsb3dQYXRoKQogICAgIGxvYWRpIDRbUENdLCB0MAogICAgIGxvYWRpIDE2W1BDXSwgdDEKICAg
ICBsb2FkcCBMTEludENhbGxMaW5rSW5mbzo6Y2FsbGVlW3QxXSwgdDIKQEAgLTE5ODcsNjYgKzE0
MzIsOSBAQCBtYWNybyBkb0NhbGwoc2xvd19wYXRoKQogICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkK
IAogLm9wQ2FsbFNsb3c6Ci0gICAgc2xvd1BhdGhGb3JDYWxsKDYsIHNsb3dfcGF0aCkKKyAgICBz
bG93UGF0aEZvckNhbGwoNiwgc2xvd1BhdGgpCiBlbmQKIAotX2xsaW50X29wX2NhbGw6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NhbGwpCi0KLQot
X2xsaW50X29wX2NvbnN0cnVjdDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgZG9DYWxsKF9s
bGludF9zbG93X3BhdGhfY29uc3RydWN0KQotCi0KLV9sbGludF9vcF9jYWxsX3ZhcmFyZ3M6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBfbGxpbnRfc2xvd19w
YXRoX2NhbGxfdmFyYXJncykKLQotCi1fbGxpbnRfb3BfY2FsbF9ldmFsOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICAKLSAgICAjIEV2YWwgaXMgZXhlY3V0ZWQgaW4gb25lIG9mIHR3byBtb2Rl
czoKLSAgICAjCi0gICAgIyAxKSBXZSBmaW5kIHRoYXQgd2UncmUgcmVhbGx5IGludm9raW5nIGV2
YWwoKSBpbiB3aGljaCBjYXNlIHRoZQotICAgICMgICAgZXhlY3V0aW9uIGlzIHBlcmZvbWVkIGVu
dGlyZWx5IGluc2lkZSB0aGUgc2xvd19wYXRoLCBhbmQgaXQKLSAgICAjICAgIHJldHVybnMgdGhl
IFBDIG9mIGEgZnVuY3Rpb24gdGhhdCBqdXN0IHJldHVybnMgdGhlIHJldHVybiB2YWx1ZQotICAg
ICMgICAgdGhhdCB0aGUgZXZhbCByZXR1cm5lZC4KLSAgICAjCi0gICAgIyAyKSBXZSBmaW5kIHRo
YXQgd2UncmUgaW52b2tpbmcgc29tZXRoaW5nIGNhbGxlZCBldmFsKCkgdGhhdCBpcyBub3QKLSAg
ICAjICAgIHRoZSByZWFsIGV2YWwuIFRoZW4gdGhlIHNsb3dfcGF0aCByZXR1cm5zIHRoZSBQQyBv
ZiB0aGUgdGhpbmcgdG8KLSAgICAjICAgIGNhbGwsIGFuZCB3ZSBjYWxsIGl0LgotICAgICMKLSAg
ICAjIFRoaXMgYWxsb3dzIHVzIHRvIGhhbmRsZSB0d28gY2FzZXMsIHdoaWNoIHdvdWxkIHJlcXVp
cmUgYSB0b3RhbCBvZgotICAgICMgdXAgdG8gZm91ciBwaWVjZXMgb2Ygc3RhdGUgdGhhdCBjYW5u
b3QgYmUgZWFzaWx5IHBhY2tlZCBpbnRvIHR3bwotICAgICMgcmVnaXN0ZXJzIChDIGZ1bmN0aW9u
cyBjYW4gcmV0dXJuIHVwIHRvIHR3byByZWdpc3RlcnMsIGVhc2lseSk6Ci0gICAgIwotICAgICMg
LSBUaGUgY2FsbCBmcmFtZSByZWdpc3Rlci4gVGhpcyBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4g
bW9kaWZpZWQKLSAgICAjICAgYnkgdGhlIHNsb3dfcGF0aCwgYnV0IHRoZSBjb252ZW50aW9uIGlz
IHRoYXQgaXQgcmV0dXJucyBpdC4gSXQncyBub3QKLSAgICAjICAgdG90YWxseSBjbGVhciBpZiB0
aGF0J3MgbmVjZXNzYXJ5LCBzaW5jZSB0aGUgY2ZyIGlzIGNhbGxlZSBzYXZlLgotICAgICMgICBC
dXQgdGhhdCdzIG91ciBzdHlsZSBpbiB0aGlzIGhlcmUgaW50ZXJwcmV0ZXIgc28gd2Ugc3RpY2sg
d2l0aCBpdC4KLSAgICAjCi0gICAgIyAtIEEgYml0IHRvIHNheSBpZiB0aGUgc2xvd19wYXRoIHN1
Y2Nlc3NmdWxseSBleGVjdXRlZCB0aGUgZXZhbCBhbmQgaGFzCi0gICAgIyAgIHRoZSByZXR1cm4g
dmFsdWUsIG9yIGRpZCBub3QgZXhlY3V0ZSB0aGUgZXZhbCBidXQgaGFzIGEgUEMgZm9yIHVzCi0g
ICAgIyAgIHRvIGNhbGwuCi0gICAgIwotICAgICMgLSBFaXRoZXI6Ci0gICAgIyAgIC0gVGhlIEpT
IHJldHVybiB2YWx1ZSAodHdvIHJlZ2lzdGVycyksIG9yCi0gICAgIwotICAgICMgICAtIFRoZSBQ
QyB0byBjYWxsLgotICAgICMKLSAgICAjIEl0IHR1cm5zIG91dCB0byBiZSBlYXNpZXIgdG8ganVz
dCBhbHdheXMgaGF2ZSB0aGlzIHJldHVybiB0aGUgY2ZyCi0gICAgIyBhbmQgYSBQQyB0byBjYWxs
LCBhbmQgdGhhdCBQQyBtYXkgYmUgYSBkdW1teSB0aHVuayB0aGF0IGp1c3QKLSAgICAjIHJldHVy
bnMgdGhlIEpTIHZhbHVlIHRoYXQgdGhlIGV2YWwgcmV0dXJuZWQuCi0gICAgCi0gICAgc2xvd1Bh
dGhGb3JDYWxsKDQsIF9sbGludF9zbG93X3BhdGhfY2FsbF9ldmFsKQotCi0KLV9sbGludF9nZW5l
cmljX3JldHVybl9wb2ludDoKLSAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCi0KIAogX2xsaW50X29w
X3RlYXJfb2ZmX2FjdGl2YXRpb246CiAgICAgdHJhY2VFeGVjdXRpb24oKQpAQCAtMjA3MCwxMyAr
MTQ1OCw2IEBAIF9sbGludF9vcF90ZWFyX29mZl9hcmd1bWVudHM6CiAgICAgZGlzcGF0Y2goMikK
IAogCi1tYWNybyBkb1JldHVybigpCi0gICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICBs
b2FkcCBDYWxsZXJGcmFtZVtjZnJdLCBjZnIKLSAgICByZXN0b3JlUmV0dXJuQWRkcmVzc0JlZm9y
ZVJldHVybih0MikKLSAgICByZXQKLWVuZAotCiBfbGxpbnRfb3BfcmV0OgogICAgIHRyYWNlRXhl
Y3V0aW9uKCkKICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQpAQCAtMjExMSwxOCAr
MTQ5Miw2IEBAIF9sbGludF9vcF9yZXRfb2JqZWN0X29yX3RoaXM6CiAgICAgZG9SZXR1cm4oKQog
CiAKLV9sbGludF9vcF9tZXRob2RfY2hlY2s6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgICMg
V2UgaWdub3JlIG1ldGhvZCBjaGVja3MgYW5kIHVzZSBub3JtYWwgZ2V0X2J5X2lkIG9wdGltaXph
dGlvbnMuCi0gICAgZGlzcGF0Y2goMSkKLQotCi1fbGxpbnRfb3Bfc3RyY2F0OgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zdHJjYXQpCi0g
ICAgZGlzcGF0Y2goNCkKLQotCiBfbGxpbnRfb3BfdG9fcHJpbWl0aXZlOgogICAgIHRyYWNlRXhl
Y3V0aW9uKCkKICAgICBsb2FkaSA4W1BDXSwgdDIKQEAgLTIxNDEsMTIgKzE1MTAsNiBAQCBfbGxp
bnRfb3BfdG9fcHJpbWl0aXZlOgogICAgIGRpc3BhdGNoKDMpCiAKIAotX2xsaW50X29wX2dldF9w
bmFtZXM6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2dldF9wbmFtZXMpCi0gICAgZGlzcGF0Y2goMCkgIyBUaGUgc2xvd19wYXRoIGVpdGhl
ciBhZHZhbmNlcyB0aGUgUEMgb3IganVtcHMgdXMgdG8gc29tZXdoZXJlIGVsc2UuCi0KLQogX2xs
aW50X29wX25leHRfcG5hbWU6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDEyW1BD
XSwgdDEKQEAgLTIxODcsMjQgKzE1NTAsNiBAQCBfbGxpbnRfb3BfbmV4dF9wbmFtZToKICAgICBk
aXNwYXRjaCgwKQogCiAKLV9sbGludF9vcF9wdXNoX3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX3Njb3BlKQotICAgIGRp
c3BhdGNoKDIpCi0KLQotX2xsaW50X29wX3BvcF9zY29wZToKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9wX3Njb3BlKQotICAgIGRpc3Bh
dGNoKDEpCi0KLQotX2xsaW50X29wX3B1c2hfbmV3X3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX25ld19zY29wZSkKLSAg
ICBkaXNwYXRjaCg0KQotCi0KIF9sbGludF9vcF9jYXRjaDoKICAgICAjIFRoaXMgaXMgd2hlcmUg
d2UgZW5kIHVwIGZyb20gdGhlIEpJVCdzIHRocm93IHRyYW1wb2xpbmUgKGJlY2F1c2UgdGhlCiAg
ICAgIyBtYWNoaW5lIGNvZGUgcmV0dXJuIGFkZHJlc3Mgd2lsbCBiZSBzZXQgdG8gX2xsaW50X29w
X2NhdGNoKSwgYW5kIGZyb20KQEAgLTIyMjYsMTggKzE1NzEsNiBAQCBfbGxpbnRfb3BfY2F0Y2g6
CiAgICAgZGlzcGF0Y2goMikKIAogCi1fbGxpbnRfb3BfdGhyb3c6Ci0gICAgdHJhY2VFeGVjdXRp
b24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Rocm93KQotICAgIGRpc3Bh
dGNoKDIpCi0KLQotX2xsaW50X29wX3Rocm93X3JlZmVyZW5jZV9lcnJvcjoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3dfcmVmZXJl
bmNlX2Vycm9yKQotICAgIGRpc3BhdGNoKDIpCi0KLQogX2xsaW50X29wX2pzcjoKICAgICB0cmFj
ZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgNFtQQ10sIHQwCkBAIC0yMjUzLDM0ICsxNTg2LDExIEBA
IF9sbGludF9vcF9zcmV0OgogICAgIGRpc3BhdGNoKDApCiAKIAotX2xsaW50X29wX2RlYnVnOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9k
ZWJ1ZykKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9wcm9maWxlX3dpbGxfY2FsbDoK
LSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6ZW5hYmxlZFBy
b2ZpbGVyUmVmZXJlbmNlW3NwXSwgdDAKLSAgICBidHB6IFt0MF0sIC5vcFByb2ZpbGVXaWxsQ2Fs
bERvbmUKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wcm9maWxlX3dpbGxfY2Fs
bCkKLS5vcFByb2ZpbGVXaWxsQ2FsbERvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCi1fbGxpbnRf
b3BfcHJvZmlsZV9kaWRfY2FsbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZHAgSklU
U3RhY2tGcmFtZTo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlW3NwXSwgdDAKLSAgICBidHB6IFt0
MF0sIC5vcFByb2ZpbGVXaWxsQ2FsbERvbmUKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9wcm9maWxlX2RpZF9jYWxsKQotLm9wUHJvZmlsZURpZENhbGxEb25lOgotICAgIGRpc3Bh
dGNoKDIpCi0KLQogX2xsaW50X29wX2VuZDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgY2hl
Y2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKICAgICBsb2FkaSA0W1BDXSwgdDAKKyAgICBhc3Nl
cnROb3RDb25zdGFudCh0MCkKICAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0sIHQxCiAg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBkb1JldHVybigpCkBA
IC0yMzQxLDc5ICsxNjUxLDMgQEAgbWFjcm8gbmF0aXZlQ2FsbFRyYW1wb2xpbmUoZXhlY3V0YWJs
ZU9mZgogICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZQogZW5k
CiAKLV9sbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lOgotICAgIG5hdGl2ZUNhbGxUcmFtcG9s
aW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fZnVuY3Rpb24pCi0KLQotX2xsaW50X25hdGl2ZV9jb25z
dHJ1Y3RfdHJhbXBvbGluZToKLSAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVjdXRh
YmxlOjptX2NvbnN0cnVjdG9yKQotCi0KLSMgTGFzdGx5LCBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4g
bGluayBldmVuIHRob3VnaCB3ZSBkb24ndCBzdXBwb3J0IGFsbCBvcGNvZGVzLgotIyBUaGVzZSBv
cGNvZGVzIHNob3VsZCBuZXZlciBhcmlzZSB3aGVuIHVzaW5nIExMSW50IG9yIGVpdGhlciBKSVQu
IFdlIGFzc2VydAotIyBhcyBtdWNoLgotCi1tYWNybyBub3RTdXBwb3J0ZWQoKQotICAgIGlmIEFT
U0VSVF9FTkFCTEVECi0gICAgICAgIGNyYXNoKCkKLSAgICBlbHNlCi0gICAgICAgICMgV2Ugc2hv
dWxkIHVzZSB3aGF0ZXZlciB0aGUgc21hbGxlc3QgcG9zc2libGUgaW5zdHJ1Y3Rpb24gaXMsIGp1
c3QgdG8KLSAgICAgICAgIyBlbnN1cmUgdGhhdCB0aGVyZSBpcyBhIGdhcCBiZXR3ZWVuIGluc3Ry
dWN0aW9uIGxhYmVscy4gSWYgbXVsdGlwbGUKLSAgICAgICAgIyBzbWFsbGVzdCBpbnN0cnVjdGlv
bnMgZXhpc3QsIHdlIHNob3VsZCBwaWNrIHRoZSBvbmUgdGhhdCBpcyBtb3N0Ci0gICAgICAgICMg
bGlrZWx5IHJlc3VsdCBpbiBleGVjdXRpb24gYmVpbmcgaGFsdGVkLiBDdXJyZW50bHkgdGhhdCBp
cyB0aGUgYnJlYWsKLSAgICAgICAgIyBpbnN0cnVjdGlvbiBvbiBhbGwgYXJjaGl0ZWN0dXJlcyB3
ZSdyZSBpbnRlcmVzdGVkIGluLiAoQnJlYWsgaXMgaW50MwotICAgICAgICAjIG9uIEludGVsLCB3
aGljaCBpcyAxIGJ5dGUsIGFuZCBia3B0IG9uIEFSTXY3LCB3aGljaCBpcyAyIGJ5dGVzLikKLSAg
ICAgICAgYnJlYWsKLSAgICBlbmQKLWVuZAotCi1fbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0aDoK
LSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2NoYWluOgotICAgIG5v
dFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX2NoYWluOgotICAgIG5v
dFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX3Byb3RvOgotICAgIG5v
dFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX3NlbGY6Ci0gICAgbm90
U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9nZW5lcmljOgotICAgIG5vdFN1cHBv
cnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX2NoYWluOgotICAgIG5vdFN1cHBv
cnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX3Byb3RvOgotICAgIG5vdFN1cHBv
cnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX3NlbGY6Ci0gICAgbm90U3VwcG9y
dGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQoKQot
Ci1fbGxpbnRfb3BfZ2V0X2J5X2lkX3NlbGY6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50
X29wX2dldF9zdHJpbmdfbGVuZ3RoOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9w
dXRfYnlfaWRfZ2VuZXJpYzoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5
X2lkX3JlcGxhY2U6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF90
cmFuc2l0aW9uOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLQotIyBJbmRpY2F0ZSB0aGUgZW5kIG9m
IExMSW50LgotX2xsaW50X2VuZDoKLSAgICBjcmFzaCgpCi0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCShyZXZp
c2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjY0LmFzbQkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsMTQ2OSBAQAogIyBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKIAotIyBOb3Qgc3VwcG9ydGVkIHlldCwgc28g
Z2l2ZSB1cC4KLWVycm9yCisjIFNvbWUgdmFsdWUgcmVwcmVzZW50YXRpb24gY29uc3RhbnRzLgor
Y29uc3QgVGFnQml0VHlwZU90aGVyID0gMHgyCitjb25zdCBUYWdCaXRCb29sICAgICAgPSAweDQK
K2NvbnN0IFRhZ0JpdFVuZGVmaW5lZCA9IDB4OAorY29uc3QgVmFsdWVFbXB0eSAgICAgID0gMHgw
Citjb25zdCBWYWx1ZUZhbHNlICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sCitj
b25zdCBWYWx1ZVRydWUgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIgfCBUYWdCaXRCb29sIHwgMQor
Y29uc3QgVmFsdWVVbmRlZmluZWQgID0gVGFnQml0VHlwZU90aGVyIHwgVGFnQml0VW5kZWZpbmVk
Citjb25zdCBWYWx1ZU51bGwgICAgICAgPSBUYWdCaXRUeXBlT3RoZXIKKworIyBVdGlsaXRpZXMu
CittYWNybyBkaXNwYXRjaChhZHZhbmNlKQorICAgIGFkZHAgYWR2YW5jZSwgUEMKKyAgICBqbXAg
W1BCLCBQQywgOF0KK2VuZAorCittYWNybyBkaXNwYXRjaEludChhZHZhbmNlKQorICAgIGFkZGkg
YWR2YW5jZSwgUEMKKyAgICBqbXAgW1BCLCBQQywgOF0KK2VuZAorCittYWNybyBkaXNwYXRjaEFm
dGVyQ2FsbCgpCisgICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdLCBQQwor
ICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBQQgorICAgIGxvYWRwIENvZGVCbG9jazo6bV9pbnN0
cnVjdGlvbnNbUEJdLCBQQgorICAgIGptcCBbUEIsIFBDLCA4XQorZW5kCisKK21hY3JvIGNDYWxs
MihmdW5jdGlvbiwgYXJnMSwgYXJnMikKKyAgICBtb3ZlIGFyZzEsIHQ1CisgICAgbW92ZSBhcmcy
LCB0NAorICAgIGNhbGwgZnVuY3Rpb24KK2VuZAorCisjIFRoaXMgYmFyZWx5IHdvcmtzLiBhcmcz
IGFuZCBhcmc0IHNob3VsZCBwcm9iYWJseSBiZSBpbW1lZGlhdGVzLgorbWFjcm8gY0NhbGw0KGZ1
bmN0aW9uLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KQorICAgIG1vdmUgYXJnMSwgdDUKKyAgICBt
b3ZlIGFyZzIsIHQ0CisgICAgbW92ZSBhcmczLCB0MQorICAgIG1vdmUgYXJnNCwgdDIKKyAgICBj
YWxsIGZ1bmN0aW9uCitlbmQKKworbWFjcm8gcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGxl
YXAgW1BCLCBQQywgOF0sIFBDCisgICAgbW92ZSBQQiwgdDMKK2VuZAorCittYWNybyByZXN0b3Jl
U3RhdGVBZnRlckNDYWxsKCkKKyAgICBtb3ZlIHQwLCBQQworICAgIG1vdmUgdDEsIGNmcgorICAg
IG1vdmUgdDMsIFBCCisgICAgc3VicCBQQiwgUEMKKyAgICB1cnNoaWZ0cCAzLCBQQworZW5kCisK
K21hY3JvIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgp
CisgICAgY0NhbGwyKHNsb3dQYXRoLCBjZnIsIFBDKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0Nh
bGwoKQorZW5kCisKK21hY3JvIHRyYWNlT3BlcmFuZChmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAg
cHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vfb3BlcmFuZCwg
Y2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHJlc3RvcmVTdGF0ZUFmdGVyQ0NhbGwo
KQorZW5kCisKK21hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQorICAgIHByZXBh
cmVTdGF0ZUZvckNDYWxsKCkKKyAgICBjQ2FsbDQoX2xsaW50X3RyYWNlX3ZhbHVlLCBjZnIsIFBD
LCBmcm9tV2hlcmUsIG9wZXJhbmQpCisgICAgcmVzdG9yZVN0YXRlQWZ0ZXJDQ2FsbCgpCitlbmQK
KworIyBDYWxsIGEgc2xvdyBwYXRoIGZvciBjYWxsIGNhbGwgb3Bjb2Rlcy4KK21hY3JvIGNhbGxD
YWxsU2xvd1BhdGgoYWR2YW5jZSwgc2xvd1BhdGgsIGFjdGlvbikKKyAgICBhZGRpIGFkdmFuY2Us
IFBDLCB0MAorICAgIHN0b3JlaSB0MCwgQXJndW1lbnRDb3VudCArIFRhZ09mZnNldFtjZnJdCisg
ICAgcHJlcGFyZVN0YXRlRm9yQ0NhbGwoKQorICAgIGNDYWxsMihzbG93UGF0aCwgY2ZyLCBQQykK
KyAgICBtb3ZlIHQxLCBjZnIKKyAgICBhY3Rpb24odDApCitlbmQKKworbWFjcm8gY2hlY2tTd2l0
Y2hUb0pJVEZvckxvb3AoKQorICAgIGNoZWNrU3dpdGNoVG9KSVQoCisgICAgICAgIDEsCisgICAg
ICAgIG1hY3JvKCkKKyAgICAgICAgICAgIHN0b3JlaSBQQywgQXJndW1lbnRDb3VudCArIFRhZ09m
ZnNldFtjZnJdCisgICAgICAgICAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgICAgICAg
ICBjQ2FsbDIoX2xsaW50X2xvb3Bfb3NyLCBjZnIsIFBDKQorICAgICAgICAgICAgbW92ZSB0MSwg
Y2ZyCisgICAgICAgICAgICBidHB6IHQwLCAucmVjb3ZlcgorICAgICAgICAgICAgam1wIHQwCisg
ICAgICAgIC5yZWNvdmVyOgorICAgICAgICAgICAgbG9hZHAgQXJndW1lbnRDb3VudCArIFRhZ09m
ZnNldFtjZnJdLCBQQworICAgICAgICBlbmQpCitlbmQKKworIyBJbmRleCBhbmQgdmFsdWUgbXVz
dCBiZSBkaWZmZXJlbnQgcmVnaXN0ZXJzLiBJbmRleCBtYXkgYmUgY2xvYmJlcmVkLgorbWFjcm8g
bG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUpCisgICAgYnBndGVxIGluZGV4LCBG
aXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgLmNvbnN0YW50CisgICAgbG9hZHAgW2NmciwgaW5k
ZXgsIDhdLCB2YWx1ZQorICAgIGptcCAuZG9uZQorLmNvbnN0YW50OgorICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB2YWx1ZQorICAgIGxvYWRwIENvZGVCbG9jazo6bV9jb25zdGFudFJlZ2lzdGVy
cyArIFZlY3RvckJ1ZmZlck9mZnNldFt2YWx1ZV0sIHZhbHVlCisgICAgc3VicCBGaXJzdENvbnN0
YW50UmVnaXN0ZXJJbmRleCwgaW5kZXgKKyAgICBsb2FkcCBbdmFsdWUsIGluZGV4LCA4XSwgdmFs
dWUKKy5kb25lOgorZW5kCisKK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMihpbmRl
eCwgdmFsdWUsIHNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShpbmRleCwgdmFsdWUp
CisgICAgYnBiIHZhbHVlLCB0YWdUeXBlTnVtYmVyLCBzbG93CitlbmQKKworbWFjcm8gbG9hZENv
bnN0YW50T3JWYXJpYWJsZUNlbGwoaW5kZXgsIHZhbHVlLCBzbG93KQorICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoaW5kZXgsIHZhbHVlKQorICAgIGJ0cG56IHZhbHVlLCB0YWdNYXNrLCBzbG93
CitlbmQKKworbWFjcm8gd3JpdGVCYXJyaWVyKHZhbHVlKQorICAgICMgTm90aGluZyB0byBkbywg
c2luY2Ugd2UgZG9uJ3QgaGF2ZSBhIGdlbmVyYXRpb25hbCBvciBpbmNyZW1lbnRhbCBjb2xsZWN0
b3IuCitlbmQKKworbWFjcm8gdmFsdWVQcm9maWxlKHZhbHVlLCBwcm9maWxlKQorICAgIGlmIFZB
TFVFX1BST0ZJTEVSCisgICAgICAgIHN0b3JlcCB2YWx1ZSwgVmFsdWVQcm9maWxlOjptX2J1Y2tl
dHNbcHJvZmlsZV0KKyAgICBlbmQKK2VuZAorCisKKyMgRW50cnlwb2ludHMgaW50byB0aGUgaW50
ZXJwcmV0ZXIuCisKKyMgRXhwZWN0cyB0aGF0IENvZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMg
d2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQuCittYWNybyBmdW5jdGlvbkFyaXR5Q2hlY2so
ZG9uZUxhYmVsLCBzbG93X3BhdGgpCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50
Q291bnRbY2ZyXSwgdDAKKyAgICBiaWFlcSB0MCwgQ29kZUJsb2NrOjptX251bVBhcmFtZXRlcnNb
dDFdLCBkb25lTGFiZWwKKyAgICBwcmVwYXJlU3RhdGVGb3JDQ2FsbCgpCisgICAgY0NhbGwyKHNs
b3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2Nv
bDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgbW92ZSB0MSwgY2Zy
CisgICAgYnRpeiB0MCwgLmNvbnRpbnVlCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFs
RGF0YVtzcF0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJvd1t0
MV0sIHQwCisgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3dbdDFd
CisuY29udGludWU6CisgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFuZCByZXNldCBQQywgc2luY2Ug
dGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgdGhlbS4KKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwg
dDEKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1faW5zdHJ1Y3Rpb25zW3QxXSwgUEIKKyAgICBtb3Zl
IDAsIFBDCisgICAgam1wIGRvbmVMYWJlbAorZW5kCisKKworIyBJbnN0cnVjdGlvbiBpbXBsZW1l
bnRhdGlvbnMKKworX2xsaW50X29wX2VudGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBs
b2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtVmFyc1t0
Ml0sIHQyCisgICAgYnRpeiB0MiwgLm9wRW50ZXJEb25lCisgICAgbW92ZSBWYWx1ZVVuZGVmaW5l
ZCwgdDAKKy5vcEVudGVyTG9vcDoKKyAgICBzdWJpIDEsIHQyCisgICAgc3RvcmVwIHQwLCBbY2Zy
LCB0MiwgOF0KKyAgICBidGlueiB0MiwgLm9wRW50ZXJMb29wCisub3BFbnRlckRvbmU6CisgICAg
ZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3BfY3JlYXRlX2FjdGl2YXRpb246CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgYnBuZXEgW2Nmciwg
dDAsIDhdLCBWYWx1ZUVtcHR5LCAub3BDcmVhdGVBY3RpdmF0aW9uRG9uZQorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV9hY3RpdmF0aW9uKQorLm9wQ3JlYXRlQWN0aXZh
dGlvbkRvbmU6CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfaW5pdF9sYXp5X3JlZzoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBz
dG9yZXAgVmFsdWVFbXB0eSwgW2NmciwgdDAsIDhdCisgICAgZGlzcGF0Y2goMikKKworCitfbGxp
bnRfb3BfY3JlYXRlX2FyZ3VtZW50czoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlz
IDhbUEIsIFBDLCA4XSwgdDAKKyAgICBicG5lcSBbY2ZyLCB0MCwgOF0sIFZhbHVlRW1wdHksIC5v
cENyZWF0ZUFyZ3VtZW50c0RvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9j
cmVhdGVfYXJndW1lbnRzKQorLm9wQ3JlYXRlQXJndW1lbnRzRG9uZToKKyAgICBkaXNwYXRjaCgy
KQorCisKK19sbGludF9vcF9jcmVhdGVfdGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCisgICAg
bG9hZHAgW2NmciwgdDAsIDhdLCB0MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAub3BDcmVhdGVU
aGlzU2xvdworICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGJiYiBT
dHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QxXSwgT2JqZWN0VHlwZSwg
Lm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBsb2FkcCBKU09iamVjdDo6bV9pbmhlcml0b3JJRFt0MF0s
IHQyCisgICAgYnRweiB0MiwgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBhbGxvY2F0ZUJhc2ljSlNP
YmplY3QoSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4LCBKU0dsb2JhbERhdGE6OmpzRmluYWxP
YmplY3RDbGFzc0luZm8sIHQyLCB0MCwgdDEsIHQzLCAub3BDcmVhdGVUaGlzU2xvdykKKyAgICBs
b2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAg
ZGlzcGF0Y2goMykKKworLm9wQ3JlYXRlVGhpc1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfY3JlYXRlX3RoaXMpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bf
Z2V0X2NhbGxlZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4
XSwgdDAKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdDEKKyAgICBzdG9yZXAgdDEsIFtjZnIsIHQw
LCA4XQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2NvbnZlcnRfdGhpczoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2FkcCBb
Y2ZyLCB0MCwgOF0sIHQwCisgICAgYnRwbnogdDAsIHRhZ01hc2ssIC5vcENvbnZlcnRUaGlzU2xv
dworICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MAorICAgIGJiYiBTdHJ1Y3R1
cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QwXSwgT2JqZWN0VHlwZSwgLm9wQ29u
dmVydFRoaXNTbG93CisgICAgZGlzcGF0Y2goMikKKworLm9wQ29udmVydFRoaXNTbG93OgorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NvbnZlcnRfdGhpcykKKyAgICBkaXNwYXRj
aCgyKQorCisKK19sbGludF9vcF9uZXdfb2JqZWN0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFs
T2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU0dsb2JhbE9iamVjdDo6bV9lbXB0eU9iamVjdFN0
cnVjdHVyZVt0MF0sIHQxCisgICAgYWxsb2NhdGVCYXNpY0pTT2JqZWN0KEpTRmluYWxPYmplY3RT
aXplQ2xhc3NJbmRleCwgSlNHbG9iYWxEYXRhOjpqc0ZpbmFsT2JqZWN0Q2xhc3NJbmZvLCB0MSwg
dDAsIHQyLCB0MywgLm9wTmV3T2JqZWN0U2xvdykKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0
MQorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goMikKKworLm9wTmV3
T2JqZWN0U2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfb2JqZWN0
KQorICAgIGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX21vdjoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4
XSwgdDAKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MikKKyAgICBzdG9yZXAgdDIs
IFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX25vdDoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlz
IDhbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MikKKyAg
ICB4b3JwIFZhbHVlRmFsc2UsIHQyCisgICAgYnRwbnogdDIsIH4xLCAub3BOb3RTbG93CisgICAg
eG9ycCBWYWx1ZVRydWUsIHQyCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNw
YXRjaCgzKQorCisub3BOb3RTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X25vdCkKKyAgICBkaXNwYXRjaCgzKQorCisKK21hY3JvIGVxdWFsaXR5Q29tcGFyaXNvbihpbnRl
Z2VyQ29tcGFyaXNvbiwgc2xvd1BhdGgpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRp
cyAyNFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxv
YWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQw
LCB0MSwgLnNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQyLCB0MCwgLnNs
b3cpCisgICAgaW50ZWdlckNvbXBhcmlzb24odDAsIHQxLCB0MCkKKyAgICBvcnAgVmFsdWVGYWxz
ZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDQpCisKKy5z
bG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCg0KQorZW5kCisK
K19sbGludF9vcF9lcToKKyAgICBlcXVhbGl0eUNvbXBhcmlzb24oCisgICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCwgcmVzdWx0KSBjaWVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLAorICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX2VxKQorCisKK19sbGludF9vcF9uZXE6CisgICAgZXF1YWxpdHlD
b21wYXJpc29uKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY2luZXEgbGVm
dCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfbmVxKQorCisK
K21hY3JvIGVxdWFsTnVsbENvbXBhcmlzb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0
MAorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBidHBueiB0MCwgdGFnTWFzaywgLmlt
bWVkaWF0ZQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIHRibnog
U3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fZmxhZ3NbdDJdLCBNYXNxdWVyYWRl
c0FzVW5kZWZpbmVkLCB0MAorICAgIGptcCAuZG9uZQorLmltbWVkaWF0ZToKKyAgICBhbmRwIH5U
YWdCaXRVbmRlZmluZWQsIHQwCisgICAgY3BlcSB0MCwgVmFsdWVOdWxsLCB0MAorLmRvbmU6Citl
bmQKKworX2xsaW50X29wX2VxX251bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFs
TnVsbENvbXBhcmlzb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgb3JwIFZh
bHVlRmFsc2UsIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgz
KQorCisKK19sbGludF9vcF9uZXFfbnVsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZXF1
YWxOdWxsQ29tcGFyaXNvbigpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICB4b3Jw
IFZhbHVlVHJ1ZSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNo
KDMpCisKKworbWFjcm8gc3RyaWN0RXEoZXF1YWxpdHlPcGVyYXRpb24sIHNsb3dQYXRoKQorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDAKKyAgICBsb2Fk
aXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQwLCB0MSkK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBtb3ZlIHQwLCB0MgorICAg
IG9ycCB0MSwgdDIKKyAgICBidHB6IHQyLCB0YWdNYXNrLCAuc2xvdworICAgIGJwYWVxIHQwLCB0
YWdUeXBlTnVtYmVyLCAubGVmdE9LCisgICAgYnRwbnogdDAsIHRhZ1R5cGVOdW1iZXIsIC5zbG93
CisubGVmdE9LOgorICAgIGJwYWVxIHQxLCB0YWdUeXBlTnVtYmVyLCAucmlnaHRPSworICAgIGJ0
cG56IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworLnJpZ2h0T0s6CisgICAgZXF1YWxpdHlPcGVy
YXRpb24odDAsIHQxLCB0MCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIG9ycCBW
YWx1ZUZhbHNlLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2go
NCkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDQp
CitlbmQKKworX2xsaW50X29wX3N0cmljdGVxOgorICAgIHN0cmljdEVxKAorICAgICAgICBtYWNy
byAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY3BlcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAg
ICAgICAgX2xsaW50X3Nsb3dfcGF0aF9zdHJpY3RlcSkKKworCitfbGxpbnRfb3BfbnN0cmljdGVx
OgorICAgIHN0cmljdEVxKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY3Bu
ZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfbnN0
cmljdGVxKQorCisKK21hY3JvIHByZU9wKGFyaXRobWV0aWNPcGVyYXRpb24sIHNsb3dQYXRoKQor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxv
YWRwIFtjZnIsIHQwLCA4XSwgdDEKKyAgICBicGIgdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93Cisg
ICAgYXJpdGhtZXRpY09wZXJhdGlvbih0MSwgLnNsb3cpCisgICAgb3JwIHRhZ1R5cGVOdW1iZXIs
IHQxCisgICAgc3RvcmVwIHQxLCBbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisuc2xv
dzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAgZGlzcGF0Y2goMikKK2VuZAorCitf
bGxpbnRfb3BfcHJlX2luYzoKKyAgICBwcmVPcCgKKyAgICAgICAgbWFjcm8gKHZhbHVlLCBzbG93
KSBiYWRkaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3By
ZV9pbmMpCisKKworX2xsaW50X29wX3ByZV9kZWM6CisgICAgcHJlT3AoCisgICAgICAgIG1hY3Jv
ICh2YWx1ZSwgc2xvdykgYnN1YmlvIDEsIHZhbHVlLCBzbG93IGVuZCwKKyAgICAgICAgX2xsaW50
X3Nsb3dfcGF0aF9wcmVfZGVjKQorCisKK21hY3JvIHBvc3RPcChhcml0aG1ldGljT3BlcmF0aW9u
LCBzbG93UGF0aCkKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywg
OF0sIHQwCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkcCBbY2ZyLCB0MCwg
OF0sIHQyCisgICAgYmllcSB0MCwgdDEsIC5kb25lCisgICAgYnBiIHQyLCB0YWdUeXBlTnVtYmVy
LCAuc2xvdworICAgIG1vdmUgdDIsIHQzCisgICAgYXJpdGhtZXRpY09wZXJhdGlvbih0MywgLnNs
b3cpCisgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQzCisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwg
OF0KKyAgICBzdG9yZXAgdDMsIFtjZnIsIHQwLCA4XQorLmRvbmU6CisgICAgZGlzcGF0Y2goMykK
KworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDMpCitl
bmQKKworX2xsaW50X29wX3Bvc3RfaW5jOgorICAgIHBvc3RPcCgKKyAgICAgICAgbWFjcm8gKHZh
bHVlLCBzbG93KSBiYWRkaW8gMSwgdmFsdWUsIHNsb3cgZW5kLAorICAgICAgICBfbGxpbnRfc2xv
d19wYXRoX3Bvc3RfaW5jKQorCisKK19sbGludF9vcF9wb3N0X2RlYzoKKyAgICBwb3N0T3AoCisg
ICAgICAgIG1hY3JvICh2YWx1ZSwgc2xvdykgYnN1YmlvIDEsIHZhbHVlLCBzbG93IGVuZCwKKyAg
ICAgICAgX2xsaW50X3Nsb3dfcGF0aF9wb3N0X2RlYykKKworCitfbGxpbnRfb3BfdG9fanNudW1i
ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAor
ICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0
MCwgdDIpCisgICAgYnBhZXEgdDIsIHRhZ1R5cGVOdW1iZXIsIC5vcFRvSnNudW1iZXJJc0ltbWVk
aWF0ZQorICAgIGJ0cHogdDIsIHRhZ1R5cGVOdW1iZXIsIC5vcFRvSnNudW1iZXJTbG93Cisub3BU
b0pzbnVtYmVySXNJbW1lZGlhdGU6CisgICAgc3RvcmVwIHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBk
aXNwYXRjaCgzKQorCisub3BUb0pzbnVtYmVyU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF90b19qc251bWJlcikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9u
ZWdhdGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0
MAorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZSh0MCwgdDIpCisgICAgYnBiIHQyLCB0YWdUeXBlTnVtYmVyLCAub3BOZWdhdGVOb3RJbnQKKyAg
ICBidGl6IHQyLCAweDdmZmZmZmZmLCAub3BOZWdhdGVTbG93CisgICAgbmVnaSB0MgorICAgIG9y
cCB0YWdUeXBlTnVtYmVyLCB0MgorICAgIHN0b3JlcCB0MiwgW2NmciwgdDEsIDhdCisgICAgZGlz
cGF0Y2goMykKKy5vcE5lZ2F0ZU5vdEludDoKKyAgICBidHB6IHQyLCB0YWdUeXBlTnVtYmVyLCAu
b3BOZWdhdGVTbG93CisgICAgeG9ycCAweDgwMDAwMDAwMDAwMDAwMDAsIHQyCisgICAgc3RvcmVw
IHQyLCBbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BOZWdhdGVTbG93OgorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25lZ2F0ZSkKKyAgICBkaXNwYXRjaCgzKQor
CisKK21hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUoaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlLCBk
b3VibGVPcGVyYXRpb24sIHNsb3dQYXRoKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MAor
ICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
dDAsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGJwYiB0MCwg
dGFnVHlwZU51bWJlciwgLm9wMU5vdEludAorICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLm9w
Mk5vdEludAorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQyCisgICAgaW50ZWdlck9wZXJhdGlv
bkFuZFN0b3JlKHQxLCB0MCwgLnNsb3csIHQyKQorICAgIGRpc3BhdGNoKDUpCisKKy5vcDFOb3RJ
bnQ6CisgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgbm90IGFuIGludCwgdGhlIHNl
Y29uZCBvcGVyYW5kIGNvdWxkIGJlIGFueXRoaW5nLgorICAgIGJ0cHogdDAsIHRhZ1R5cGVOdW1i
ZXIsIC5zbG93CisgICAgYnBhZXEgdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcDFOb3RJbnRPcDJJbnQK
KyAgICBidHB6IHQxLCB0YWdUeXBlTnVtYmVyLCAuc2xvdworICAgIGFkZHAgdGFnVHlwZU51bWJl
ciwgdDEKKyAgICBmcDJkIHQxLCBmdDEKKyAgICBqbXAgLm9wMU5vdEludFJlYWR5Cisub3AxTm90
SW50T3AySW50OgorICAgIGNpMmQgdDEsIGZ0MQorLm9wMU5vdEludFJlYWR5OgorICAgIGxvYWRp
cyA4W1BCLCBQQywgOF0sIHQyCisgICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0MAorICAgIGZwMmQg
dDAsIGZ0MAorICAgIGRvdWJsZU9wZXJhdGlvbihmdDEsIGZ0MCkKKyAgICBmZDJwIGZ0MCwgdDAK
KyAgICBzdWJwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MiwgOF0K
KyAgICBkaXNwYXRjaCg1KQorCisub3AyTm90SW50OgorICAgICMgRmlyc3Qgb3BlcmFuZCBpcyBk
ZWZpbml0ZWx5IGFuIGludCwgdGhlIHNlY29uZCBpcyBkZWZpbml0ZWx5IG5vdC4KKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MgorICAgIGJ0cHogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93Cisg
ICAgY2kyZCB0MCwgZnQwCisgICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0MQorICAgIGZwMmQgdDEs
IGZ0MQorICAgIGRvdWJsZU9wZXJhdGlvbihmdDEsIGZ0MCkKKyAgICBmZDJwIGZ0MCwgdDAKKyAg
ICBzdWJwIHRhZ1R5cGVOdW1iZXIsIHQwCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MiwgOF0KKyAg
ICBkaXNwYXRjaCg1KQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCisgICAg
ZGlzcGF0Y2goNSkKK2VuZAorCittYWNybyBiaW5hcnlPcChpbnRlZ2VyT3BlcmF0aW9uLCBkb3Vi
bGVPcGVyYXRpb24sIHNsb3dQYXRoKQorICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCisgICAgICAg
IG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdywgaW5kZXgpCisgICAgICAgICAgICBpbnRlZ2VyT3Bl
cmF0aW9uKGxlZnQsIHJpZ2h0LCBzbG93KQorICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIs
IHJpZ2h0CisgICAgICAgICAgICBzdG9yZXAgcmlnaHQsIFtjZnIsIGluZGV4LCA4XQorICAgICAg
ICBlbmQsCisgICAgICAgIGRvdWJsZU9wZXJhdGlvbiwgc2xvd1BhdGgpCitlbmQKKworX2xsaW50
X29wX2FkZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5T3AoCisgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgc2xvdykgYmFkZGlvIGxlZnQsIHJpZ2h0LCBzbG93IGVuZCwKKyAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBhZGRkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAg
X2xsaW50X3Nsb3dfcGF0aF9hZGQpCisKKworX2xsaW50X29wX211bDoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJp
Z2h0LCBzbG93LCBpbmRleCkKKyAgICAgICAgICAgICMgQXNzdW1lIHQzIGlzIHNjcmF0Y2hhYmxl
LgorICAgICAgICAgICAgbW92ZSByaWdodCwgdDMKKyAgICAgICAgICAgIGJtdWxpbyBsZWZ0LCB0
Mywgc2xvdworICAgICAgICAgICAgYnRpbnogdDMsIC5kb25lCisgICAgICAgICAgICBiaWx0IGxl
ZnQsIDAsIHNsb3cKKyAgICAgICAgICAgIGJpbHQgcmlnaHQsIDAsIHNsb3cKKyAgICAgICAgLmRv
bmU6CisgICAgICAgICAgICBvcnAgdGFnVHlwZU51bWJlciwgdDMKKyAgICAgICAgICAgIHN0b3Jl
cCB0MywgW2NmciwgaW5kZXgsIDhdCisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0KSBtdWxkIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9t
dWwpCisKKworX2xsaW50X29wX3N1YjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5
T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgYnN1YmlvIGxlZnQsIHJpZ2h0
LCBzbG93IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBzdWJkIGxlZnQsIHJpZ2h0
IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9zdWIpCisKKworX2xsaW50X29wX2RpdjoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYmluYXJ5T3BDdXN0b21TdG9yZSgKKyAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93LCBpbmRleCkKKyAgICAgICAgICAgICMgQXNzdW1lIHQz
IGlzIHNjcmF0Y2hhYmxlLgorICAgICAgICAgICAgYnRpeiBsZWZ0LCBzbG93CisgICAgICAgICAg
ICBidGlueiByaWdodCwgLmludE9LCisgICAgICAgICAgICBiaWx0IGxlZnQsIDAsIHNsb3cKKyAg
ICAgICAgLmludE9LOgorICAgICAgICAgICAgbW92ZSBsZWZ0LCB0MworICAgICAgICAgICAgbW92
ZSByaWdodCwgdDAKKyAgICAgICAgICAgIGNkcWkKKyAgICAgICAgICAgIGlkaXZpIHQzCisgICAg
ICAgICAgICBidGlueiB0MSwgc2xvdworICAgICAgICAgICAgb3JwIHRhZ1R5cGVOdW1iZXIsIHQw
CisgICAgICAgICAgICBzdG9yZXAgdDAsIFtjZnIsIGluZGV4LCA4XQorICAgICAgICBlbmQsCisg
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkgZGl2ZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAg
IF9sbGludF9zbG93X3BhdGhfZGl2KQorCisKK21hY3JvIGJpdE9wKG9wZXJhdGlvbiwgc2xvd1Bh
dGgsIGFkdmFuY2UpCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDE2
W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHQwLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0
MCkKKyAgICBicGIgdDAsIHRhZ1R5cGVOdW1iZXIsIC5zbG93CisgICAgYnBiIHQxLCB0YWdUeXBl
TnVtYmVyLCAuc2xvdworICAgIG9wZXJhdGlvbih0MSwgdDAsIC5zbG93KQorICAgIG9ycCB0YWdU
eXBlTnVtYmVyLCB0MAorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2go
YWR2YW5jZSkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3Bh
dGNoKGFkdmFuY2UpCitlbmQKKworX2xsaW50X29wX2xzaGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgbHNoaWZ0
aSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfbHNoaWZ0LAorICAg
ICAgICA0KQorCisKK19sbGludF9vcF9yc2hpZnQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIHJzaGlmdGkgbGVmdCwg
cmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3JzaGlmdCwKKyAgICAgICAgNCkK
KworCitfbGxpbnRfb3BfdXJzaGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgYml0T3Ao
CisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykKKyAgICAgICAgICAgIHVyc2hpZnRp
IGxlZnQsIHJpZ2h0CisgICAgICAgICAgICBiaWx0IHJpZ2h0LCAwLCBzbG93CisgICAgICAgIGVu
ZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF91cnNoaWZ0LAorICAgICAgICA0KQorCisKK19s
bGludF9vcF9iaXRhbmQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9wKAorICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGFuZGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX2JpdGFuZCwKKyAgICAgICAgNSkKKworCitfbGxpbnRfb3BfYml0
eG9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCBzbG93KSB4b3JpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9iaXR4b3IsCisgICAgICAgIDUpCisKKworX2xsaW50X29wX2JpdG9yOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBz
bG93KSBvcmkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdG9y
LAorICAgICAgICA1KQorCisKK19sbGludF9vcF9jaGVja19oYXNfaW5zdGFuY2U6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZUNlbGwodDEsIHQwLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdykKKyAgICBs
b2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKKyAgICBidGJ6IFN0cnVjdHVyZTo6bV90
eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50c0hhc0luc3RhbmNlLCAu
b3BDaGVja0hhc0luc3RhbmNlU2xvdworICAgIGRpc3BhdGNoKDIpCisKKy5vcENoZWNrSGFzSW5z
dGFuY2VTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NoZWNrX2hhc19p
bnN0YW5jZSkKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9pbnN0YW5jZW9mOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICAjIENoZWNrIHRoYXQgYmFzZVZhbCBpbXBsZW1lbnRzIHRo
ZSBkZWZhdWx0IEhhc0luc3RhbmNlIGJlaGF2aW9yLgorICAgICMgRklYTUU6IFRoaXMgc2hvdWxk
IGJlIGRlcHJlY2F0ZWQuCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZSh0MSwgdDApCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0
MF0sIHQwCisgICAgYnRieiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFn
c1t0MF0sIEltcGxlbWVudHNEZWZhdWx0SGFzSW5zdGFuY2UsIC5vcEluc3RhbmNlb2ZTbG93Cisg
ICAgCisgICAgIyBBY3R1YWxseSBkbyB0aGUgd29yay4KKyAgICBsb2FkaXMgMzJbUEIsIFBDLCA4
XSwgdDAKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGVDZWxsKHQwLCB0MSwgLm9wSW5zdGFuY2VvZlNsb3cpCisgICAgbG9hZHAgSlNDZWxsOjpt
X3N0cnVjdHVyZVt0MV0sIHQyCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJ
bmZvOjptX3R5cGVbdDJdLCBPYmplY3RUeXBlLCAub3BJbnN0YW5jZW9mU2xvdworICAgIGxvYWRp
cyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQwLCB0
MiwgLm9wSW5zdGFuY2VvZlNsb3cpCisgICAgCisgICAgIyBSZWdpc3RlciBzdGF0ZTogdDEgPSBw
cm90b3R5cGUsIHQyID0gdmFsdWUKKyAgICBtb3ZlIDEsIHQwCisub3BJbnN0YW5jZW9mTG9vcDoK
KyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QyXSwgdDIKKyAgICBsb2FkcCBTdHJ1Y3R1
cmU6Om1fcHJvdG90eXBlW3QyXSwgdDIKKyAgICBicGVxIHQyLCB0MSwgLm9wSW5zdGFuY2VvZkRv
bmUKKyAgICBidHB6IHQyLCB0YWdNYXNrLCAub3BJbnN0YW5jZW9mTG9vcAorCisgICAgbW92ZSAw
LCB0MAorLm9wSW5zdGFuY2VvZkRvbmU6CisgICAgb3JwIFZhbHVlRmFsc2UsIHQwCisgICAgc3Rv
cmVwIHQwLCBbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg1KQorCisub3BJbnN0YW5jZW9mU2xv
dzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbnN0YW5jZW9mKQorICAgIGRp
c3BhdGNoKDUpCisKKworbWFjcm8gcmVzb2x2ZUdsb2JhbChzaXplLCBzbG93KQorICAgICMgT3Bl
cmFuZHMgYXJlIGFzIGZvbGxvd3M6CisgICAgIyA4W1BCLCBQQywgOF0gICBEZXN0aW5hdGlvbiBm
b3IgdGhlIGxvYWQuCisgICAgIyAxNltQQiwgUEMsIDhdICBQcm9wZXJ0eSBpZGVudGlmaWVyIGlu
ZGV4IGluIHRoZSBjb2RlIGJsb2NrLgorICAgICMgMjRbUEIsIFBDLCA4XSAgU3RydWN0dXJlIHBv
aW50ZXIsIGluaXRpYWxpemVkIHRvIDAgYnkgYnl0ZWNvZGUgZ2VuZXJhdG9yLgorICAgICMgMzJb
UEIsIFBDLCA4XSAgT2Zmc2V0IGluIGdsb2JhbCBvYmplY3QsIGluaXRpYWxpemVkIHRvIDAgYnkg
Ynl0ZWNvZGUgZ2VuZXJhdG9yLgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAgIGxv
YWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTQ2VsbDo6
bV9zdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGJwbmVxIHQxLCAyNFtQQiwgUEMsIDhdLCBzbG93Cisg
ICAgbG9hZGlzIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVy
dHlTdG9yYWdlW3QwXSwgdDAKKyAgICBsb2FkcCBbdDAsIHQxLCA4XSwgdDIKKyAgICBsb2FkaXMg
OFtQQiwgUEMsIDhdLCB0MAorICAgIHN0b3JlcCB0MiwgW2NmciwgdDAsIDhdCisgICAgbG9hZHAg
KHNpemUgLSAxKSAqIDhbUEIsIFBDLCA4XSwgdDAKKyAgICB2YWx1ZVByb2ZpbGUodDIsIHQwKQor
ZW5kCisKK19sbGludF9vcF9yZXNvbHZlX2dsb2JhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgcmVzb2x2ZUdsb2JhbCg2LCAub3BSZXNvbHZlR2xvYmFsU2xvdykKKyAgICBkaXNwYXRjaCg2
KQorCisub3BSZXNvbHZlR2xvYmFsU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9yZXNvbHZlX2dsb2JhbCkKKyAgICBkaXNwYXRjaCg2KQorCisKKyMgR2l2ZXMgeW91IHRo
ZSBzY29wZSBpbiB0MCwgd2hpbGUgYWxsb3dpbmcgeW91IHRvIG9wdGlvbmFsbHkgcGVyZm9ybSBh
ZGRpdGlvbmFsIGNoZWNrcyBvbiB0aGUKKyMgc2NvcGVzIGFzIHRoZXkgYXJlIHRyYXZlcnNlZC4g
c2NvcGVDaGVjaygpIGlzIGNhbGxlZCB3aXRoIHR3byBhcmd1bWVudHM6IHRoZSByZWdpc3Rlcgor
IyBob2xkaW5nIHRoZSBzY29wZSwgYW5kIGEgcmVnaXN0ZXIgdGhhdCBjYW4gYmUgdXNlZCBmb3Ig
c2NyYXRjaC4gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QKKyMgdXNlIHQzLCBzbyB5b3UgY2FuIGhv
bGQgc3R1ZmYgaW4gdDMgaWYgbmVlZCBiZS4KK21hY3JvIGdldFNjb3BlKGRlQnJ1aWppbkluZGV4
T3BlcmFuZCwgc2NvcGVDaGVjaykKKyAgICBsb2FkcCBTY29wZUNoYWluW2Nmcl0sIHQwCisgICAg
bG9hZGlzIGRlQnJ1aWppbkluZGV4T3BlcmFuZCwgdDIKKyAgICAKKyAgICBidGl6IHQyLCAuZG9u
ZQorICAgIAorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGJpbmVxIENvZGVCbG9j
azo6bV9jb2RlVHlwZVt0MV0sIEZ1bmN0aW9uQ29kZSwgLmxvb3AKKyAgICBidGJ6IENvZGVCbG9j
azo6bV9uZWVkc0Z1bGxTY29wZUNoYWluW3QxXSwgLmxvb3AKKyAgICAKKyAgICBsb2FkaXMgQ29k
ZUJsb2NrOjptX2FjdGl2YXRpb25SZWdpc3Rlclt0MV0sIHQxCisKKyAgICAjIE5lZWQgdG8gY29u
ZGl0aW9uYWxseSBza2lwIG92ZXIgb25lIHNjb3BlLgorICAgIGJ0cHogW2NmciwgdDEsIDhdLCAu
bm9BY3RpdmF0aW9uCisgICAgc2NvcGVDaGVjayh0MCwgdDEpCisgICAgbG9hZHAgU2NvcGVDaGFp
bk5vZGU6Om5leHRbdDBdLCB0MAorLm5vQWN0aXZhdGlvbjoKKyAgICBzdWJpIDEsIHQyCisgICAg
CisgICAgYnRpeiB0MiwgLmRvbmUKKy5sb29wOgorICAgIHNjb3BlQ2hlY2sodDAsIHQxKQorICAg
IGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpuZXh0W3QwXSwgdDAKKyAgICBzdWJpIDEsIHQyCisgICAg
YnRpbnogdDIsIC5sb29wCisKKy5kb25lOgorZW5kCisKK19sbGludF9vcF9yZXNvbHZlX2dsb2Jh
bF9keW5hbWljOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1l
OjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmFjdGl2YXRpb25T
dHJ1Y3R1cmVbdDNdLCB0MworICAgIGdldFNjb3BlKAorICAgICAgICA0MFtQQiwgUEMsIDhdLAor
ICAgICAgICBtYWNybyAoc2NvcGUsIHNjcmF0Y2gpCisgICAgICAgICAgICBsb2FkcCBTY29wZUNo
YWluTm9kZTo6b2JqZWN0W3Njb3BlXSwgc2NyYXRjaAorICAgICAgICAgICAgYnBuZXEgSlNDZWxs
OjptX3N0cnVjdHVyZVtzY3JhdGNoXSwgdDMsIC5vcFJlc29sdmVHbG9iYWxEeW5hbWljU3VwZXJT
bG93CisgICAgICAgIGVuZCkKKyAgICByZXNvbHZlR2xvYmFsKDcsIC5vcFJlc29sdmVHbG9iYWxE
eW5hbWljU2xvdykKKyAgICBkaXNwYXRjaCg3KQorCisub3BSZXNvbHZlR2xvYmFsRHluYW1pY1N1
cGVyU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX2Zvcl9y
ZXNvbHZlX2dsb2JhbF9keW5hbWljKQorICAgIGRpc3BhdGNoKDcpCisKKy5vcFJlc29sdmVHbG9i
YWxEeW5hbWljU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZl
X2dsb2JhbF9keW5hbWljKQorICAgIGRpc3BhdGNoKDcpCisKKworX2xsaW50X29wX2dldF9zY29w
ZWRfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAjIE9wZXJhbmRzIGFyZSBhcyBmb2xs
b3dzOgorICAgICMgOFtQQiwgUEMsIDhdICAgRGVzdGluYXRpb24gZm9yIHRoZSBsb2FkCisgICAg
IyAxNltQQiwgUEMsIDhdICBJbmRleCBvZiByZWdpc3RlciBpbiB0aGUgc2NvcGUKKyAgICAjIDI0
W1BCLCBQQywgOF0gIERlIEJydWlqaW4gaW5kZXguCisgICAgZ2V0U2NvcGUoMjRbUEIsIFBDLCA4
XSwgbWFjcm8gKHNjb3BlLCBzY3JhdGNoKSBlbmQpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwg
dDEKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkcCBTY29wZUNoYWluTm9k
ZTo6b2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU1ZhcmlhYmxlT2JqZWN0OjptX3JlZ2lzdGVy
c1t0MF0sIHQwCisgICAgbG9hZHAgW3QwLCB0MiwgOF0sIHQzCisgICAgc3RvcmVwIHQzLCBbY2Zy
LCB0MSwgOF0KKyAgICBsb2FkcCAzMltQQiwgUEMsIDhdLCB0MQorICAgIHZhbHVlUHJvZmlsZSh0
MywgdDEpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfcHV0X3Njb3BlZF92YXI6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGdldFNjb3BlKDE2W1BCLCBQQywgOF0sIG1hY3JvIChz
Y29wZSwgc2NyYXRjaCkgZW5kKQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MQorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQzKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQx
CisgICAgd3JpdGVCYXJyaWVyKHQzKQorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpvYmplY3Rb
dDBdLCB0MAorICAgIGxvYWRwIEpTVmFyaWFibGVPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAK
KyAgICBzdG9yZXAgdDMsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRf
b3BfZ2V0X2dsb2JhbF92YXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyAxNltQ
QiwgUEMsIDhdLCB0MQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZHAgQ29k
ZUJsb2NrW2Nmcl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0s
IHQwCisgICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKKyAgICBs
b2FkcCBbdDAsIHQxLCA4XSwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQzLCA4XQorICAgIGxv
YWRwIDI0W1BCLCBQQywgOF0sIHQzCisgICAgdmFsdWVQcm9maWxlKHQyLCB0MykKKyAgICBkaXNw
YXRjaCg0KQorCisKK19sbGludF9vcF9wdXRfZ2xvYmFsX3ZhcjoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQxCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAg
bG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKKyAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHQxLCB0MikKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIHdy
aXRlQmFycmllcih0MikKKyAgICBzdG9yZXAgdDIsIFt0MCwgdDEsIDhdCisgICAgZGlzcGF0Y2go
MykKKworCitfbGxpbnRfb3BfZ2V0X2J5X2lkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAj
IFdlIG9ubHkgZG8gbW9ub21vcnBoaWMgZ2V0X2J5X2lkIGNhY2hpbmcgZm9yIG5vdywgYW5kIHdl
IGRvIG5vdCBtb2RpZnkgdGhlCisgICAgIyBvcGNvZGUuIFdlIGRvLCBob3dldmVyLCBhbGxvdyBm
b3IgdGhlIGNhY2hlIHRvIGNoYW5nZSBhbnl0aW1lIGlmIGZhaWxzLCBzaW5jZQorICAgICMgcGlu
Zy1wb25naW5nIGlzIGZyZWUuIEF0IGJlc3Qgd2UgZ2V0IGx1Y2t5IGFuZCB0aGUgZ2V0X2J5X2lk
IHdpbGwgY29udGludWUKKyAgICAjIHRvIHRha2UgZmFzdCBwYXRoIG9uIHRoZSBuZXcgY2FjaGUu
IEF0IHdvcnN0IHdlIHRha2Ugc2xvdyBwYXRoLCB3aGljaCBpcyB3aGF0CisgICAgIyB3ZSB3b3Vs
ZCBoYXZlIGJlZW4gZG9pbmcgYW55d2F5LgorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAor
ICAgIGxvYWRwIDMyW1BCLCBQQywgOF0sIHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNl
bGwodDAsIHQzLCAub3BHZXRCeUlkU2xvdykKKyAgICBsb2FkaXMgNDBbUEIsIFBDLCA4XSwgdDIK
KyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDNdLCB0MAorICAgIGJwbmVx
IEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDNdLCB0MSwgLm9wR2V0QnlJZFNsb3cKKyAgICBsb2FkaXMg
OFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIFt0MCwgdDJdLCB0MworICAgIHN0b3JlcCB0Mywg
W2NmciwgdDEsIDhdCisgICAgbG9hZHAgNjRbUEIsIFBDLCA4XSwgdDEKKyAgICB2YWx1ZVByb2Zp
bGUodDMsIHQxKQorICAgIGRpc3BhdGNoKDkpCisKKy5vcEdldEJ5SWRTbG93OgorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKKyAgICBkaXNwYXRjaCg5KQorCisK
K19sbGludF9vcF9nZXRfYXJndW1lbnRzX2xlbmd0aDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEK
KyAgICBidHBueiBbY2ZyLCB0MCwgOF0sIC5vcEdldEFyZ3VtZW50c0xlbmd0aFNsb3cKKyAgICBs
b2FkaSBBcmd1bWVudENvdW50ICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MgorICAgIHN1YmkgMSwg
dDIKKyAgICBvcnAgdGFnVHlwZU51bWJlciwgdDIKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQxLCA4
XQorICAgIGRpc3BhdGNoKDQpCisKKy5vcEdldEFyZ3VtZW50c0xlbmd0aFNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2FyZ3VtZW50c19sZW5ndGgpCisgICAgZGlz
cGF0Y2goNCkKKworCitfbGxpbnRfb3BfcHV0X2J5X2lkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRwIDMyW1BCLCBQQywgOF0sIHQx
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwodDMsIHQwLCAub3BQdXRCeUlkU2xvdykK
KyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9w
ZXJ0eVN0b3JhZ2VbdDBdLCB0MworICAgIGJwbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0
MSwgLm9wUHV0QnlJZFNsb3cKKyAgICBsb2FkaXMgNDBbUEIsIFBDLCA4XSwgdDEKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICB3cml0ZUJhcnJpZXIodDApCisgICAgc3Rv
cmVwIHQwLCBbdDMsIHQxXQorICAgIGRpc3BhdGNoKDkpCisKKy5vcFB1dEJ5SWRTbG93OgorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pZCkKKyAgICBkaXNwYXRjaCg5
KQorCisKK21hY3JvIHB1dEJ5SWRUcmFuc2l0aW9uKGFkZGl0aW9uYWxDaGVja3MpCisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZHAgMzJb
UEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbCh0MywgdDAsIC5v
cFB1dEJ5SWRTbG93KQorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MgorICAgIGJwbmVxIEpT
Q2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MSwgLm9wUHV0QnlJZFNsb3cKKyAgICBhZGRpdGlvbmFs
Q2hlY2tzKHQxLCB0MywgLm9wUHV0QnlJZFNsb3cpCisgICAgbG9hZGlzIDQwW1BCLCBQQywgOF0s
IHQxCisgICAgbG9hZHAgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3QwXSwgdDMKKyAgICBh
ZGRwIHQxLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQxKQorICAgIHdyaXRl
QmFycmllcih0MSkKKyAgICBzdG9yZXAgdDEsIFt0M10KKyAgICBsb2FkcCA0OFtQQiwgUEMsIDhd
LCB0MQorICAgIHN0b3JlcCB0MSwgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0KKyAgICBkaXNwYXRj
aCg5KQorZW5kCisKK19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9kaXJlY3Q6CisgICAg
cHV0QnlJZFRyYW5zaXRpb24obWFjcm8gKG9sZFN0cnVjdHVyZSwgc2NyYXRjaCwgc2xvdykgZW5k
KQorCisKK19sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9ub3JtYWw6CisgICAgcHV0QnlJ
ZFRyYW5zaXRpb24oCisgICAgICAgIG1hY3JvIChvbGRTdHJ1Y3R1cmUsIHNjcmF0Y2gsIHNsb3cp
CisgICAgICAgICAgICBjb25zdCBwcm90b0NlbGwgPSBvbGRTdHJ1Y3R1cmUgICAgIyBSZXVzaW5n
IHRoZSBvbGRTdHJ1Y3R1cmUgcmVnaXN0ZXIgZm9yIHRoZSBwcm90bworICAgICAgICAgICAgbG9h
ZHAgNTZbUEIsIFBDLCA4XSwgc2NyYXRjaAorICAgICAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykg
YnRwbnogc2NyYXRjaCwgb2sgZW5kKQorICAgICAgICAgICAgbG9hZHAgU3RydWN0dXJlQ2hhaW46
Om1fdmVjdG9yW3NjcmF0Y2hdLCBzY3JhdGNoCisgICAgICAgICAgICBhc3NlcnQobWFjcm8gKG9r
KSBidHBueiBzY3JhdGNoLCBvayBlbmQpCisgICAgICAgICAgICBicGVxIFN0cnVjdHVyZTo6bV9w
cm90b3R5cGVbb2xkU3RydWN0dXJlXSwgVmFsdWVOdWxsLCAuZG9uZQorICAgICAgICAubG9vcDoK
KyAgICAgICAgICAgIGxvYWRwIFN0cnVjdHVyZTo6bV9wcm90b3R5cGVbb2xkU3RydWN0dXJlXSwg
cHJvdG9DZWxsCisgICAgICAgICAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3Byb3RvQ2Vs
bF0sIG9sZFN0cnVjdHVyZQorICAgICAgICAgICAgYnBuZXEgb2xkU3RydWN0dXJlLCBbc2NyYXRj
aF0sIHNsb3cKKyAgICAgICAgICAgIGFkZHAgOCwgc2NyYXRjaAorICAgICAgICAgICAgYnBuZXEg
U3RydWN0dXJlOjptX3Byb3RvdHlwZVtvbGRTdHJ1Y3R1cmVdLCBWYWx1ZU51bGwsIC5sb29wCisg
ICAgICAgIC5kb25lOgorICAgICAgICBlbmQpCisKKworX2xsaW50X29wX2dldF9ieV92YWw6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQorICAgIGxv
YWRpcyAxNltQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRpcyAyNFtQQiwgUEMsIDhdLCB0MworICAg
IGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3QxXSwgdDEKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbCh0MiwgdDAsIC5vcEdldEJ5VmFsU2xvdykKKyAgICBsb2FkcCBKU0dsb2Jh
bERhdGE6OmpzQXJyYXlDbGFzc0luZm9bdDFdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVJbnQzMih0MywgdDEsIC5vcEdldEJ5VmFsU2xvdykKKyAgICBzeGkycCB0MSwgdDEKKyAgICBi
cG5lcSBbdDBdLCB0MiwgLm9wR2V0QnlWYWxTbG93CisgICAgbG9hZHAgSlNBcnJheTo6bV9zdG9y
YWdlW3QwXSwgdDMKKyAgICBiaWFlcSB0MSwgSlNBcnJheTo6bV92ZWN0b3JMZW5ndGhbdDBdLCAu
b3BHZXRCeVZhbFNsb3cKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRwIEFy
cmF5U3RvcmFnZTo6bV92ZWN0b3JbdDMsIHQxLCA4XSwgdDIKKyAgICBidHB6IHQyLCAub3BHZXRC
eVZhbFNsb3cKKyAgICBzdG9yZXAgdDIsIFtjZnIsIHQwLCA4XQorICAgIGxvYWRwIDMyW1BCLCBQ
QywgOF0sIHQwCisgICAgdmFsdWVQcm9maWxlKHQyLCB0MCkKKyAgICBkaXNwYXRjaCg1KQorCisu
b3BHZXRCeVZhbFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2J5
X3ZhbCkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9nZXRfYXJndW1lbnRfYnlfdmFs
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMTZbUEIsIFBDLCA4XSwgdDAKKyAg
ICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDEKKyAgICBidHBueiBbY2ZyLCB0MCwgOF0sIC5vcEdl
dEFyZ3VtZW50QnlWYWxTbG93CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQxLCB0
MiwgLm9wR2V0QXJndW1lbnRCeVZhbFNsb3cpCisgICAgYWRkaSAxLCB0MgorICAgIGxvYWRpIEFy
Z3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCisgICAgYmlhZXEgdDIsIHQxLCAu
b3BHZXRBcmd1bWVudEJ5VmFsU2xvdworICAgIG5lZ2kgdDIKKyAgICBzeGkycCB0MiwgdDIKKyAg
ICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRwIFRoaXNBcmd1bWVudE9mZnNldFtj
ZnIsIHQyLCA4XSwgdDAKKyAgICBzdG9yZXAgdDAsIFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNo
KDUpCisKKy5vcEdldEFyZ3VtZW50QnlWYWxTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2dldF9hcmd1bWVudF9ieV92YWwpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxp
bnRfb3BfZ2V0X2J5X3BuYW1lOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgMjRb
UEIsIFBDLCA4XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MCkKKyAgICBs
b2FkaXMgMzJbUEIsIFBDLCA4XSwgdDEKKyAgICBhc3NlcnROb3RDb25zdGFudCh0MSkKKyAgICBi
cG5lcSB0MCwgW2NmciwgdDEsIDhdLCAub3BHZXRCeVBuYW1lU2xvdworICAgIGxvYWRpcyAxNltQ
QiwgUEMsIDhdLCB0MgorICAgIGxvYWRpcyA0MFtQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGVDZWxsKHQyLCB0MCwgLm9wR2V0QnlQbmFtZVNsb3cpCisgICAgYXNzZXJ0
Tm90Q29uc3RhbnQodDMpCisgICAgbG9hZHAgW2NmciwgdDMsIDhdLCB0MQorICAgIGxvYWRwIEpT
Q2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIGJwbmVxIHQyLCBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVyZVt0MV0sIC5vcEdldEJ5UG5hbWVTbG93CisgICAgbG9h
ZGlzIDQ4W1BCLCBQQywgOF0sIHQzCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQzLCA4
XSwgdDMKKyAgICBzdWJpIDEsIHQzCisgICAgYmlhZXEgdDMsIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3I6Om1fbnVtQ2FjaGVhYmxlU2xvdHNbdDFdLCAub3BHZXRCeVBuYW1lU2xvdworICAgIGxvYWRw
IEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQwCisgICAgbG9hZHAgW3QwLCB0Mywg
OF0sIHQwCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBzdG9yZXAgdDAsIFtjZnIs
IHQxLCA4XQorICAgIGRpc3BhdGNoKDcpCisKKy5vcEdldEJ5UG5hbWVTbG93OgorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9wbmFtZSkKKyAgICBkaXNwYXRjaCg3KQor
CisKK19sbGludF9vcF9wdXRfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2Fk
aXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHQwLCB0
MSwgLm9wUHV0QnlWYWxTbG93KQorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MAorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGVJbnQzMih0MCwgdDIsIC5vcFB1dEJ5VmFsU2xvdykKKyAgICBz
eGkycCB0MiwgdDIKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAgICBsb2FkcCBDb2Rl
QmxvY2s6Om1fZ2xvYmFsRGF0YVt0MF0sIHQwCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpqc0Fy
cmF5Q2xhc3NJbmZvW3QwXSwgdDAKKyAgICBicG5lcSBbdDFdLCB0MCwgLm9wUHV0QnlWYWxTbG93
CisgICAgYmlhZXEgdDIsIEpTQXJyYXk6Om1fdmVjdG9yTGVuZ3RoW3QxXSwgLm9wUHV0QnlWYWxT
bG93CisgICAgbG9hZHAgSlNBcnJheTo6bV9zdG9yYWdlW3QxXSwgdDAKKyAgICBidHB6IEFycmF5
U3RvcmFnZTo6bV92ZWN0b3JbdDAsIHQyLCA4XSwgLm9wUHV0QnlWYWxFbXB0eQorLm9wUHV0QnlW
YWxTdG9yZVJlc3VsdDoKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHQzLCB0MSkKKyAgICB3cml0ZUJhcnJpZXIodDEpCisgICAgc3RvcmVw
IHQxLCBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yW3QwLCB0MiwgOF0KKyAgICBkaXNwYXRjaCg0KQor
Cisub3BQdXRCeVZhbEVtcHR5OgorICAgIGFkZGkgMSwgQXJyYXlTdG9yYWdlOjptX251bVZhbHVl
c0luVmVjdG9yW3QwXQorICAgIGJpYiB0MiwgQXJyYXlTdG9yYWdlOjptX2xlbmd0aFt0MF0sIC5v
cFB1dEJ5VmFsU3RvcmVSZXN1bHQKKyAgICBhZGRpIDEsIHQyLCB0MQorICAgIHN0b3JlaSB0MSwg
QXJyYXlTdG9yYWdlOjptX2xlbmd0aFt0MF0KKyAgICBqbXAgLm9wUHV0QnlWYWxTdG9yZVJlc3Vs
dAorCisub3BQdXRCeVZhbFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
cHV0X2J5X3ZhbCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9sb29wOgorICAgIG5v
cAorX2xsaW50X29wX2ptcDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZGlzcGF0Y2hJbnQo
OFtQQiwgUEMsIDhdKQorCisKK21hY3JvIGp1bXBUcnVlT3JGYWxzZShjb25kaXRpb25PcCwgc2xv
dykKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUodDEsIHQwKQorICAgIHhvcnAgVmFsdWVGYWxzZSwgdDAKKyAgICBidHBueiB0MCwgLTEsIC5z
bG93CisgICAgY29uZGl0aW9uT3AodDAsIC50YXJnZXQpCisgICAgZGlzcGF0Y2goMykKKworLnRh
cmdldDoKKyAgICBkaXNwYXRjaEludCgxNltQQiwgUEMsIDhdKQorCisuc2xvdzoKKyAgICBjYWxs
U2xvd1BhdGgoc2xvdykKKyAgICBkaXNwYXRjaCgwKQorZW5kCisKKworbWFjcm8gZXF1YWxOdWxs
KGNlbGxIYW5kbGVyLCBpbW1lZGlhdGVIYW5kbGVyKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0s
IHQwCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDApCisgICAgbG9hZHAgW2NmciwgdDAsIDhdLCB0
MAorICAgIGJ0cG56IHQwLCB0YWdNYXNrLCAuaW1tZWRpYXRlCisgICAgbG9hZHAgSlNDZWxsOjpt
X3N0cnVjdHVyZVt0MF0sIHQyCisgICAgY2VsbEhhbmRsZXIoU3RydWN0dXJlOjptX3R5cGVJbmZv
ICsgVHlwZUluZm86Om1fZmxhZ3NbdDJdLCAudGFyZ2V0KQorICAgIGRpc3BhdGNoKDMpCisKKy50
YXJnZXQ6CisgICAgZGlzcGF0Y2goMTZbUEIsIFBDLCA4XSkKKworLmltbWVkaWF0ZToKKyAgICBh
bmRwIH5UYWdCaXRVbmRlZmluZWQsIHQwCisgICAgaW1tZWRpYXRlSGFuZGxlcih0MCwgLnRhcmdl
dCkKKyAgICBkaXNwYXRjaCgzKQorZW5kCisKK19sbGludF9vcF9qZXFfbnVsbDoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgZXF1YWxOdWxsKAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdl
dCkgYnRibnogdmFsdWUsIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHRhcmdldCBlbmQsCisgICAg
ICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBicGVxIHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdldCBl
bmQpCisKKworX2xsaW50X29wX2puZXFfbnVsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
ZXF1YWxOdWxsKAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRieiB2YWx1ZSwgTWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0
YXJnZXQpIGJwbmVxIHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdldCBlbmQpCisKKworX2xsaW50X29w
X2puZXFfcHRyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhd
LCB0MAorICAgIGxvYWRwIDE2W1BCLCBQQywgOF0sIHQxCisgICAgYnBuZXEgdDEsIFtjZnIsIHQw
LCA4XSwgLm9wSm5lcVB0clRhcmdldAorICAgIGRpc3BhdGNoKDQpCisKKy5vcEpuZXFQdHJUYXJn
ZXQ6CisgICAgZGlzcGF0Y2hJbnQoMjRbUEIsIFBDLCA4XSkKKworCittYWNybyBjb21wYXJlKGlu
dGVnZXJDb21wYXJlLCBkb3VibGVDb21wYXJlLCBzbG93UGF0aCkKKyAgICBsb2FkaXMgOFtQQiwg
UEMsIDhdLCB0MgorICAgIGxvYWRpcyAxNltQQiwgUEMsIDhdLCB0MworICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUodDIsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDMsIHQxKQor
ICAgIGJwYiB0MCwgdGFnVHlwZU51bWJlciwgLm9wMU5vdEludAorICAgIGJwYiB0MSwgdGFnVHlw
ZU51bWJlciwgLm9wMk5vdEludAorICAgIGludGVnZXJDb21wYXJlKHQwLCB0MSwgLmp1bXBUYXJn
ZXQpCisgICAgZGlzcGF0Y2goNCkKKworLm9wMU5vdEludDoKKyAgICBidHB6IHQwLCB0YWdUeXBl
TnVtYmVyLCAuc2xvdworICAgIGJwYiB0MSwgdGFnVHlwZU51bWJlciwgLm9wMU5vdEludE9wMk5v
dEludAorICAgIGNpMmQgdDEsIGZ0MQorICAgIGptcCAub3AxTm90SW50UmVhZHkKKy5vcDFOb3RJ
bnRPcDJOb3RJbnQ6CisgICAgYnRweiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cKKyAgICBhZGRw
IHRhZ1R5cGVOdW1iZXIsIHQxCisgICAgZnAyZCB0MSwgZnQxCisub3AxTm90SW50UmVhZHk6Cisg
ICAgYWRkcCB0YWdUeXBlTnVtYmVyLCB0MAorICAgIGZwMmQgdDAsIGZ0MAorICAgIGRvdWJsZUNv
bXBhcmUoZnQwLCBmdDEsIC5qdW1wVGFyZ2V0KQorICAgIGRpc3BhdGNoKDQpCisKKy5vcDJOb3RJ
bnQ6CisgICAgY2kyZCB0MCwgZnQwCisgICAgYnRweiB0MSwgdGFnVHlwZU51bWJlciwgLnNsb3cK
KyAgICBhZGRwIHRhZ1R5cGVOdW1iZXIsIHQxCisgICAgZnAyZCB0MSwgZnQxCisgICAgZG91Ymxl
Q29tcGFyZShmdDAsIGZ0MSwgLmp1bXBUYXJnZXQpCisgICAgZGlzcGF0Y2goNCkKKworLmp1bXBU
YXJnZXQ6CisgICAgZGlzcGF0Y2hJbnQoMjRbUEIsIFBDLCA4XSkKKworLnNsb3c6CisgICAgY2Fs
bFNsb3dQYXRoKHNsb3dQYXRoKQorICAgIGRpc3BhdGNoKDApCitlbmQKKworCitfbGxpbnRfb3Bf
c3dpdGNoX2ltbToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDI0W1BCLCBQQywg
OF0sIHQyCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKHQyLCB0MSkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkcCBD
b2RlQmxvY2s6Om1fcmFyZURhdGFbdDJdLCB0MgorICAgIG11bGkgc2l6ZW9mIFNpbXBsZUp1bXBU
YWJsZSwgdDMgICAgIyBGSVhNRTogd291bGQgYmUgbmljZSB0byBwZWVwaG9sZSB0aGlzIQorICAg
IGxvYWRwIENvZGVCbG9jazo6UmFyZURhdGE6Om1faW1tZWRpYXRlU3dpdGNoSnVtcFRhYmxlcyAr
IFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQyCisgICAgYWRkcCB0MywgdDIKKyAgICBicGIgdDEs
IHRhZ1R5cGVOdW1iZXIsIC5vcFN3aXRjaEltbU5vdEludAorICAgIHN1YmkgU2ltcGxlSnVtcFRh
YmxlOjptaW5bdDJdLCB0MQorICAgIGJpYWVxIHQxLCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9m
ZnNldHMgKyBWZWN0b3JTaXplT2Zmc2V0W3QyXSwgLm9wU3dpdGNoSW1tRmFsbFRocm91Z2gKKyAg
ICBsb2FkcCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JCdWZmZXJPZmZz
ZXRbdDJdLCB0MworICAgIGxvYWRpcyBbdDMsIHQxLCA0XSwgdDEKKyAgICBidGl6IHQxLCAub3BT
d2l0Y2hJbW1GYWxsVGhyb3VnaAorICAgIGRpc3BhdGNoKHQxKQorCisub3BTd2l0Y2hJbW1Ob3RJ
bnQ6CisgICAgYnRwbnogdDEsIHRhZ1R5cGVOdW1iZXIsIC5vcFN3aXRjaEltbVNsb3cgICAjIEdv
IHNsb3cgaWYgaXQncyBhIGRvdWJsZS4KKy5vcFN3aXRjaEltbUZhbGxUaHJvdWdoOgorICAgIGRp
c3BhdGNoSW50KDE2W1BCLCBQQywgOF0pCisKKy5vcFN3aXRjaEltbVNsb3c6CisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3dpdGNoX2ltbSkKKyAgICBkaXNwYXRjaCgwKQorCisK
K19sbGludF9vcF9zd2l0Y2hfY2hhcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlz
IDI0W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDMKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MSkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIK
KyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fcmFyZURhdGFbdDJdLCB0MgorICAgIG11bGkgc2l6ZW9m
IFNpbXBsZUp1bXBUYWJsZSwgdDMKKyAgICBsb2FkcCBDb2RlQmxvY2s6OlJhcmVEYXRhOjptX2No
YXJhY3RlclN3aXRjaEp1bXBUYWJsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0MgorICAg
IGFkZHAgdDMsIHQyCisgICAgYnRwbnogdDEsIHRhZ01hc2ssIC5vcFN3aXRjaENoYXJGYWxsVGhy
b3VnaAorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDFdLCB0MAorICAgIGJibmVxIFN0
cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDBdLCBTdHJpbmdUeXBlLCAu
b3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKKyAgICBsb2FkcCBKU1N0cmluZzo6bV92YWx1ZVt0MV0s
IHQwCisgICAgYmluZXEgU3RyaW5nSW1wbDo6bV9sZW5ndGhbdDBdLCAxLCAub3BTd2l0Y2hDaGFy
RmFsbFRocm91Z2gKKyAgICBsb2FkcCBTdHJpbmdJbXBsOjptX2RhdGE4W3QwXSwgdDEKKyAgICBi
dGlueiBTdHJpbmdJbXBsOjptX2hhc2hBbmRGbGFnc1t0MF0sIEhhc2hGbGFnczhCaXRCdWZmZXIs
IC5vcFN3aXRjaENoYXI4Qml0CisgICAgbG9hZGggW3QxXSwgdDAKKyAgICBqbXAgLm9wU3dpdGNo
Q2hhclJlYWR5Cisub3BTd2l0Y2hDaGFyOEJpdDoKKyAgICBsb2FkYiBbdDFdLCB0MAorLm9wU3dp
dGNoQ2hhclJlYWR5OgorICAgIHN1YmkgU2ltcGxlSnVtcFRhYmxlOjptaW5bdDJdLCB0MAorICAg
IGJpYWVxIHQwLCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JTaXplT2Zm
c2V0W3QyXSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAgU2ltcGxlSnVtcFRh
YmxlOjpicmFuY2hPZmZzZXRzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDIKKyAgICBsb2Fk
aXMgW3QyLCB0MCwgNF0sIHQxCisgICAgYnRpeiB0MSwgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdo
CisgICAgZGlzcGF0Y2godDEpCisKKy5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaDoKKyAgICBkaXNw
YXRjaEludCgxNltQQiwgUEMsIDhdKQorCisKK19sbGludF9vcF9uZXdfZnVuYzoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgYnRpeiAyNFtQQiwgUEMsIDhdLCAub3BOZXdGdW5jVW5jaGVja2Vk
CisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDEKKyAgICBidHBueiBbY2ZyLCB0MSwgOF0sIC5v
cE5ld0Z1bmNEb25lCisub3BOZXdGdW5jVW5jaGVja2VkOgorICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX25ld19mdW5jKQorLm9wTmV3RnVuY0RvbmU6CisgICAgZGlzcGF0Y2goNCkK
KworCittYWNybyBkb0NhbGwoc2xvd1BhdGgpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDAK
KyAgICBsb2FkcCAzMltQQiwgUEMsIDhdLCB0MQorICAgIGxvYWRwIExMSW50Q2FsbExpbmtJbmZv
OjpjYWxsZWVbdDFdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQzKQorICAg
IGJwbmVxIHQzLCB0MiwgLm9wQ2FsbFNsb3cKKyAgICBsb2FkaXMgMjRbUEIsIFBDLCA4XSwgdDMK
KyAgICBhZGRpIDYsIFBDCisgICAgbHNoaWZ0aSAzLCB0MworICAgIGFkZHAgY2ZyLCB0MworICAg
IGxvYWRwIEpTRnVuY3Rpb246Om1fc2NvcGVDaGFpblt0Ml0sIHQwCisgICAgc3RvcmVwIHQyLCBD
YWxsZWVbdDNdCisgICAgc3RvcmVwIHQwLCBTY29wZUNoYWluW3QzXQorICAgIGxvYWRpcyAxNiAt
IDQ4W1BCLCBQQywgOF0sIHQyCisgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0KKyAgICBzdG9yZXAgY2ZyLCBDYWxsZXJGcmFtZVt0M10KKyAgICBzdG9yZWkgdDIs
IEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgIG1vdmUgdDMsIGNmcgorICAg
IGNhbGwgTExJbnRDYWxsTGlua0luZm86Om1hY2hpbmVDb2RlVGFyZ2V0W3QxXQorICAgIGRpc3Bh
dGNoQWZ0ZXJDYWxsKCkKKworLm9wQ2FsbFNsb3c6CisgICAgc2xvd1BhdGhGb3JDYWxsKDYsIHNs
b3dQYXRoKQorZW5kCisKKworX2xsaW50X29wX3RlYXJfb2ZmX2FjdGl2YXRpb246CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQwCisgICAgbG9hZGlzIDE2
W1BCLCBQQywgOF0sIHQxCisgICAgYnRwbnogW2NmciwgdDAsIDhdLCAub3BUZWFyT2ZmQWN0aXZh
dGlvbkNyZWF0ZWQKKyAgICBidHB6IFtjZnIsIHQxLCA4XSwgLm9wVGVhck9mZkFjdGl2YXRpb25O
b3RDcmVhdGVkCisub3BUZWFyT2ZmQWN0aXZhdGlvbkNyZWF0ZWQ6CisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfdGVhcl9vZmZfYWN0aXZhdGlvbikKKy5vcFRlYXJPZmZBY3RpdmF0
aW9uTm90Q3JlYXRlZDoKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF90ZWFyX29mZl9h
cmd1bWVudHM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0s
IHQwCisgICAgc3ViaSAxLCB0MCAgICMgR2V0IHRoZSB1bm1vZGlmaWVkQXJndW1lbnRzUmVnaXN0
ZXIKKyAgICBidHB6IFtjZnIsIHQwLCA4XSwgLm9wVGVhck9mZkFyZ3VtZW50c05vdENyZWF0ZWQK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90ZWFyX29mZl9hcmd1bWVudHMpCisu
b3BUZWFyT2ZmQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGlu
dF9vcF9yZXQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JF
cGlsb2d1ZSgpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHQyLCB0MCkKKyAgICBkb1JldHVybigpCisKKworX2xsaW50X29wX2NhbGxfcHV0
X3Jlc3VsdDoKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MgorICAgIGxvYWRwIDE2W1BCLCBQ
QywgOF0sIHQzCisgICAgc3RvcmVwIHQwLCBbY2ZyLCB0MiwgOF0KKyAgICB2YWx1ZVByb2ZpbGUo
dDAsIHQzKQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGlu
dF9vcF9yZXRfb2JqZWN0X29yX3RoaXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNoZWNr
U3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIKKyAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBidHBueiB0MCwgdGFnTWFzaywg
Lm9wUmV0T2JqZWN0T3JUaGlzTm90T2JqZWN0CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVy
ZVt0MF0sIHQyCisgICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5
cGVbdDJdLCBPYmplY3RUeXBlLCAub3BSZXRPYmplY3RPclRoaXNOb3RPYmplY3QKKyAgICBkb1Jl
dHVybigpCisKKy5vcFJldE9iamVjdE9yVGhpc05vdE9iamVjdDoKKyAgICBsb2FkaXMgMTZbUEIs
IFBDLCA4XSwgdDIKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBkb1Jl
dHVybigpCisKKworX2xsaW50X29wX3RvX3ByaW1pdGl2ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQyCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwg
dDMKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKKyAgICBidHBueiB0MCwgdGFn
TWFzaywgLm9wVG9QcmltaXRpdmVJc0ltbQorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVb
dDBdLCB0MgorICAgIGJibmVxIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5
cGVbdDJdLCBTdHJpbmdUeXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlCisub3BUb1ByaW1pdGl2
ZUlzSW1tOgorICAgIHN0b3JlcCB0MCwgW2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goMykKKwor
Lm9wVG9QcmltaXRpdmVTbG93Q2FzZToKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF90b19wcmltaXRpdmUpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfbmV4dF9wbmFt
ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGlzIDI0W1BCLCBQQywgOF0sIHQxCisg
ICAgbG9hZGlzIDMyW1BCLCBQQywgOF0sIHQyCisgICAgYXNzZXJ0Tm90Q29uc3RhbnQodDEpCisg
ICAgYXNzZXJ0Tm90Q29uc3RhbnQodDIpCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQx
LCA4XSwgdDAKKyAgICBiaWVxIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhdLCAub3BOZXh0
UG5hbWVFbmQKKyAgICBsb2FkaXMgNDBbUEIsIFBDLCA4XSwgdDIKKyAgICBhc3NlcnROb3RDb25z
dGFudCh0MikKKyAgICBsb2FkcCBbY2ZyLCB0MiwgOF0sIHQyCisgICAgbG9hZHAgSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvcjo6bV9qc1N0cmluZ3NbdDJdLCB0MworICAgIGxvYWRwIFt0MywgdDAsIDhd
LCB0MworICAgIGFkZGkgMSwgdDAKKyAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0
MSwgOF0KKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MQorICAgIHN0b3JlcCB0MywgW2Nmciwg
dDEsIDhdCisgICAgbG9hZGlzIDE2W1BCLCBQQywgOF0sIHQzCisgICAgYXNzZXJ0Tm90Q29uc3Rh
bnQodDMpCisgICAgbG9hZHAgW2NmciwgdDMsIDhdLCB0MworICAgIGxvYWRwIEpTQ2VsbDo6bV9z
dHJ1Y3R1cmVbdDNdLCB0MQorICAgIGJwbmVxIHQxLCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpt
X2NhY2hlZFN0cnVjdHVyZVt0Ml0sIC5vcE5leHRQbmFtZVNsb3cKKyAgICBsb2FkcCBKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yOjptX2NhY2hlZFByb3RvdHlwZUNoYWluW3QyXSwgdDAKKyAgICBsb2Fk
cCBTdHJ1Y3R1cmVDaGFpbjo6bV92ZWN0b3JbdDBdLCB0MAorICAgIGJ0cHogW3QwXSwgLm9wTmV4
dFBuYW1lVGFyZ2V0Cisub3BOZXh0UG5hbWVDaGVja1Byb3RvdHlwZUxvb3A6CisgICAgYnBlcSBT
dHJ1Y3R1cmU6Om1fcHJvdG90eXBlW3QxXSwgVmFsdWVOdWxsLCAub3BOZXh0UG5hbWVTbG93Cisg
ICAgbG9hZHAgU3RydWN0dXJlOjptX3Byb3RvdHlwZVt0MV0sIHQyCisgICAgbG9hZHAgSlNDZWxs
OjptX3N0cnVjdHVyZVt0Ml0sIHQxCisgICAgYnBuZXEgdDEsIFt0MF0sIC5vcE5leHRQbmFtZVNs
b3cKKyAgICBhZGRwIDgsIHQwCisgICAgYnRwbnogW3QwXSwgLm9wTmV4dFBuYW1lQ2hlY2tQcm90
b3R5cGVMb29wCisub3BOZXh0UG5hbWVUYXJnZXQ6CisgICAgZGlzcGF0Y2hJbnQoNDhbUEIsIFBD
LCA4XSkKKworLm9wTmV4dFBuYW1lRW5kOgorICAgIGRpc3BhdGNoKDcpCisKKy5vcE5leHRQbmFt
ZVNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV4dF9wbmFtZSkgIyBU
aGlzIGVpdGhlciBrZWVwcyB0aGUgUEMgd2hlcmUgaXQgd2FzIChjYXVzaW5nIHVzIHRvIGxvb3Ap
IG9yIHNldHMgaXQgdG8gdGFyZ2V0LgorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X29wX2Nh
dGNoOgorICAgICMgVGhpcyBpcyB3aGVyZSB3ZSBlbmQgdXAgZnJvbSB0aGUgSklUJ3MgdGhyb3cg
dHJhbXBvbGluZSAoYmVjYXVzZSB0aGUKKyAgICAjIG1hY2hpbmUgY29kZSByZXR1cm4gYWRkcmVz
cyB3aWxsIGJlIHNldCB0byBfbGxpbnRfb3BfY2F0Y2gpLCBhbmQgZnJvbQorICAgICMgdGhlIGlu
dGVycHJldGVyJ3MgdGhyb3cgdHJhbXBvbGluZSAoc2VlIF9sbGludF90aHJvd190cmFtcG9saW5l
KS4KKyAgICAjIFRoZSBKSVQgdGhyb3dpbmcgcHJvdG9jb2wgY2FsbHMgZm9yIHRoZSBjZnIgdG8g
YmUgaW4gdDAuIFRoZSB0aHJvd2luZworICAgICMgY29kZSBtdXN0IGhhdmUga25vd24gdGhhdCB3
ZSB3ZXJlIHRocm93aW5nIHRvIHRoZSBpbnRlcnByZXRlciwgYW5kIGhhdmUKKyAgICAjIHNldCBK
U0dsb2JhbERhdGE6OnRhcmdldEludGVycHJldGVyUENGb3JUaHJvdy4KKyAgICBtb3ZlIHQwLCBj
ZnIKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgUEIKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1f
aW5zdHJ1Y3Rpb25zW1BCXSwgUEIKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpnbG9iYWxEYXRh
W3NwXSwgdDMKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OnRhcmdldEludGVycHJldGVyUENGb3JU
aHJvd1t0M10sIFBDCisgICAgc3VicCBQQiwgUEMKKyAgICB1cnNoaWZ0cCAzLCBQQworICAgIGxv
YWRwIEpTR2xvYmFsRGF0YTo6ZXhjZXB0aW9uW3QzXSwgdDAKKyAgICBzdG9yZXAgMCwgSlNHbG9i
YWxEYXRhOjpleGNlcHRpb25bdDNdCisgICAgbG9hZGlzIDhbUEIsIFBDLCA4XSwgdDIKKyAgICBz
dG9yZXAgdDAsIFtjZnIsIHQyLCA4XQorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBkaXNwYXRj
aCgyKQorCisKK19sbGludF9vcF9qc3I6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRp
cyA4W1BCLCBQQywgOF0sIHQwCisgICAgYWRkaSAzLCBQQywgdDEKKyAgICBzdG9yZWkgdDEsIFtj
ZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoSW50KDE2W1BCLCBQQywgOF0pCisKKworX2xsaW50X29w
X3NyZXQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpcyA4W1BCLCBQQywgOF0sIHQw
CisgICAgbG9hZGkgW2NmciwgdDAsIDhdLCBQQworICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50
X29wX2VuZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVw
aWxvZ3VlKCkKKyAgICBsb2FkaXMgOFtQQiwgUEMsIDhdLCB0MAorICAgIGFzc2VydE5vdENvbnN0
YW50KHQwKQorICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgdDAKKyAgICBkb1JldHVybigpCisKKwor
X2xsaW50X3Rocm93X2Zyb21fc2xvd19wYXRoX3RyYW1wb2xpbmU6CisgICAgIyBXaGVuIHRocm93
aW5nIGZyb20gdGhlIGludGVycHJldGVyIChpLmUuIHRocm93aW5nIGZyb20gTExJbnRTbG93UGF0
aHMpLCBzbworICAgICMgdGhlIHRocm93IHRhcmdldCBpcyBub3QgbmVjZXNzYXJpbHkgaW50ZXJw
cmV0ZWQgY29kZSwgd2UgY29tZSB0byBoZXJlLgorICAgICMgVGhpcyBlc3NlbnRpYWxseSBlbXVs
YXRlcyB0aGUgSklUJ3MgdGhyb3dpbmcgcHJvdG9jb2wuCisgICAgbG9hZHAgSklUU3RhY2tGcmFt
ZTo6Z2xvYmFsRGF0YVtzcF0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVG
b3JUaHJvd1t0MV0sIHQwCisgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9y
VGhyb3dbdDFdCisKKworX2xsaW50X3Rocm93X2R1cmluZ19jYWxsX3RyYW1wb2xpbmU6CisgICAg
cHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQorICAgIGxvYWRwIEpJVFN0YWNrRnJh
bWU6Omdsb2JhbERhdGFbc3BdLCB0MQorICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6Y2FsbEZyYW1l
Rm9yVGhyb3dbdDFdLCB0MAorICAgIGptcCBKU0dsb2JhbERhdGE6OnRhcmdldE1hY2hpbmVQQ0Zv
clRocm93W3QxXQorCisKK21hY3JvIG5hdGl2ZUNhbGxUcmFtcG9saW5lKGV4ZWN1dGFibGVPZmZz
ZXRUb0Z1bmN0aW9uKQorICAgIHN0b3JlcCAwLCBDb2RlQmxvY2tbY2ZyXQorICAgIGxvYWRwIENh
bGxlckZyYW1lW2Nmcl0sIHQwCisgICAgbG9hZHAgU2NvcGVDaGFpblt0MF0sIHQxCisgICAgc3Rv
cmVwIHQxLCBTY29wZUNoYWluW2Nmcl0KKyAgICBwZWVrIDAsIHQxCisgICAgc3RvcmVwIHQxLCBS
ZXR1cm5QQ1tjZnJdCisgICAgbW92ZSBjZnIsIHQ1ICAjIHQ1ID0gcmRpCisgICAgc3VicCAxNiAt
IDgsIHNwCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQ0ICMgdDQgPSByc2kKKyAgICBsb2FkcCBK
U0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdDRdLCB0MQorICAgIG1vdmUgdDAsIGNmciAjIFJlc3Rv
cmUgY2ZyIHRvIGF2b2lkIGxvYWRpbmcgZnJvbSBzdGFjaworICAgIGNhbGwgZXhlY3V0YWJsZU9m
ZnNldFRvRnVuY3Rpb25bdDFdCisgICAgYWRkcCAxNiAtIDgsIHNwCisgICAgbG9hZHAgSklUU3Rh
Y2tGcmFtZTo6Z2xvYmFsRGF0YSArIDhbc3BdLCB0MworICAgIGJ0cG56IEpTR2xvYmFsRGF0YTo6
ZXhjZXB0aW9uW3QzXSwgLmV4Y2VwdGlvbgorICAgIHJldAorLmV4Y2VwdGlvbjoKKyAgICBwcmVz
ZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDEpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF90
aHJvd19mcm9tX25hdGl2ZV9jYWxsKQorICAgIGptcCBfbGxpbnRfdGhyb3dfZnJvbV9zbG93X3Bh
dGhfdHJhbXBvbGluZQorZW5kCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHJldmlzaW9uIDExMDM0NikKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsOSArMjEsODI3IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCisjIEZpcnN0IGNvbWUgdGhlIGNvbW1vbiBwcm90b2Nv
bHMgdGhhdCBib3RoIGludGVycHJldGVycyB1c2UuIE5vdGUgdGhhdCBlYWNoCisjIG9mIHRoZXNl
IG11c3QgaGF2ZSBhbiBBU1NFUlQoKSBpbiBMTEludERhdGEuY3BwCisKKyMgVGhlc2UgZGVjbGFy
YXRpb25zIG11c3QgbWF0Y2ggaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmguCitjb25zdCBDYWxs
RnJhbWVIZWFkZXJTaXplID0gNDgKK2NvbnN0IEFyZ3VtZW50Q291bnQgPSAtNDgKK2NvbnN0IENh
bGxlckZyYW1lID0gLTQwCitjb25zdCBDYWxsZWUgPSAtMzIKK2NvbnN0IFNjb3BlQ2hhaW4gPSAt
MjQKK2NvbnN0IFJldHVyblBDID0gLTE2Citjb25zdCBDb2RlQmxvY2sgPSAtOAorCitjb25zdCBU
aGlzQXJndW1lbnRPZmZzZXQgPSAtQ2FsbEZyYW1lSGVhZGVyU2l6ZSAtIDgKKworIyBTb21lIHJl
Z2lzdGVyIGNvbnZlbnRpb25zLgoraWYgSlNWQUxVRTY0CisgICAgIyAtIFVzZSBhIHBhaXIgb2Yg
cmVnaXN0ZXJzIHRvIHJlcHJlc2VudCB0aGUgUEM6IG9uZSByZWdpc3RlciBmb3IgdGhlCisgICAg
IyAgIGJhc2Ugb2YgdGhlIHJlZ2lzdGVyIGZpbGUsIGFuZCBvbmUgcmVnaXN0ZXIgZm9yIHRoZSBp
bmRleC4KKyAgICAjIC0gVGhlIFBDIGJhc2UgKG9yIFBCIGZvciBzaG9ydCkgc2hvdWxkIGJlIHN0
b3JlZCBpbiB0aGUgY3NyLiBJdCB3aWxsCisgICAgIyAgIGdldCBjbG9iYmVyZWQgb24gY2FsbHMg
dG8gb3RoZXIgSlMgY29kZSwgYnV0IHdpbGwgZ2V0IHNhdmVkIG9uIGNhbGxzCisgICAgIyAgIHRv
IEMgZnVuY3Rpb25zLgorICAgICMgLSBDIGNhbGxzIGFyZSBzdGlsbCBnaXZlbiB0aGUgSW5zdHJ1
Y3Rpb24qIHJhdGhlciB0aGFuIHRoZSBQQyBpbmRleC4KKyAgICAjICAgVGhpcyByZXF1aXJlcyBh
biBhZGQgYmVmb3JlIHRoZSBjYWxsLCBhbmQgYSBzdWIgYWZ0ZXIuCisgICAgY29uc3QgUEMgPSB0
NAorICAgIGNvbnN0IFBCID0gdDYKKyAgICBjb25zdCB0YWdUeXBlTnVtYmVyID0gY3NyMQorICAg
IGNvbnN0IHRhZ01hc2sgPSBjc3IyCitlbHNlCisgICAgY29uc3QgUEMgPSB0NAorZW5kCisKKyMg
Q29uc3RhbnRzIGZvciByZWFzb25pbmcgYWJvdXQgdmFsdWUgcmVwcmVzZW50YXRpb24uCitpZiBC
SUdfRU5ESUFOCisgICAgY29uc3QgVGFnT2Zmc2V0ID0gMAorICAgIGNvbnN0IFBheWxvYWRPZmZz
ZXQgPSA0CitlbHNlCisgICAgY29uc3QgVGFnT2Zmc2V0ID0gNAorICAgIGNvbnN0IFBheWxvYWRP
ZmZzZXQgPSAwCitlbmQKKworIyBUeXBlIGNvbnN0YW50cy4KK2NvbnN0IFN0cmluZ1R5cGUgPSA1
Citjb25zdCBPYmplY3RUeXBlID0gMTMKKworIyBUeXBlIGZsYWdzIGNvbnN0YW50cy4KK2NvbnN0
IE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQgPSAxCitjb25zdCBJbXBsZW1lbnRzSGFzSW5zdGFuY2Ug
PSAyCitjb25zdCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlID0gOAorCisjIEJ5dGVjb2Rl
IG9wZXJhbmQgY29uc3RhbnRzLgorY29uc3QgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggPSAw
eDQwMDAwMDAwCisKKyMgQ29kZSB0eXBlIGNvbnN0YW50cy4KK2NvbnN0IEdsb2JhbENvZGUgPSAw
Citjb25zdCBFdmFsQ29kZSA9IDEKK2NvbnN0IEZ1bmN0aW9uQ29kZSA9IDIKKworIyBUaGUgaW50
ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1lbnQgY291bnQuCitjb25z
dCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNldAorCisjIFN0cmluZyBm
bGFncy4KK2NvbnN0IEhhc2hGbGFnczhCaXRCdWZmZXIgPSA2NAorCisjIEFsbG9jYXRpb24gY29u
c3RhbnRzCitpZiBKU1ZBTFVFNjQKKyAgICBjb25zdCBKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5k
ZXggPSAxCitlbHNlCisgICAgY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMwor
ZW5kCisKKyMgVGhpcyBtdXN0IG1hdGNoIHd0Zi9WZWN0b3IuaAoraWYgSlNWQUxVRTY0CisgICAg
Y29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKKyAgICBjb25zdCBWZWN0b3JCdWZmZXJPZmZzZXQg
PSA4CitlbHNlCisgICAgY29uc3QgVmVjdG9yU2l6ZU9mZnNldCA9IDAKKyAgICBjb25zdCBWZWN0
b3JCdWZmZXJPZmZzZXQgPSA0CitlbmQKKworCisjIFNvbWUgY29tbW9uIHV0aWxpdGllcy4KK21h
Y3JvIGNyYXNoKCkKKyAgICBzdG9yZWkgMCwgMHhiYmFkYmVlZltdCisgICAgbW92ZSAwLCB0MAor
ICAgIGNhbGwgdDAKK2VuZAorCittYWNybyBhc3NlcnQoYXNzZXJ0aW9uKQorICAgIGlmIEFTU0VS
VF9FTkFCTEVECisgICAgICAgIGFzc2VydGlvbigub2spCisgICAgICAgIGNyYXNoKCkKKyAgICAu
b2s6CisgICAgZW5kCitlbmQKKworbWFjcm8gcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxs
KGRlc3RpbmF0aW9uUmVnaXN0ZXIpCisgICAgaWYgQVJNdjcKKyAgICAgICAgbW92ZSBsciwgZGVz
dGluYXRpb25SZWdpc3RlcgorICAgIGVsc2lmIFg4NiBvciBYODZfNjQKKyAgICAgICAgcG9wIGRl
c3RpbmF0aW9uUmVnaXN0ZXIKKyAgICBlbHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCitlbmQK
KworbWFjcm8gcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4oc291cmNlUmVnaXN0ZXIp
CisgICAgaWYgQVJNdjcKKyAgICAgICAgbW92ZSBzb3VyY2VSZWdpc3RlciwgbHIKKyAgICBlbHNp
ZiBYODYgb3IgWDg2XzY0CisgICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIKKyAgICBlbHNlCisg
ICAgICAgIGVycm9yCisgICAgZW5kCitlbmQKKworbWFjcm8gdHJhY2VFeGVjdXRpb24oKQorICAg
IGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAgICAgIGNhbGxTbG93UGF0aChfbGxpbnRfdHJhY2Up
CisgICAgZW5kCitlbmQKKworbWFjcm8gc2xvd1BhdGhGb3JDYWxsKGFkdmFuY2UsIHNsb3dQYXRo
KQorICAgIGNhbGxDYWxsU2xvd1BhdGgoCisgICAgICAgIGFkdmFuY2UsCisgICAgICAgIHNsb3dQ
YXRoLAorICAgICAgICBtYWNybyAoY2FsbGVlKQorICAgICAgICAgICAgY2FsbCBjYWxsZWUKKyAg
ICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3Jv
IGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24pCisgICAgaWYgSklUX0VOQUJMRUQK
KyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCisgICAgICAgIGJhZGRpcyBpbmNyZW1l
bnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyICsgRXhlY3V0aW9uQ291bnRlcjo6
bV9jb3VudGVyW3QwXSwgLmNvbnRpbnVlCisgICAgICAgIGFjdGlvbigpCisgICAgLmNvbnRpbnVl
OgorICAgIGVuZAorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCisg
ICAgY2hlY2tTd2l0Y2hUb0pJVCgKKyAgICAgICAgMTAsCisgICAgICAgIG1hY3JvICgpCisgICAg
ICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlcGxhY2UpCisgICAgICAgIGVuZCkKK2VuZAor
CittYWNybyBhc3NlcnROb3RDb25zdGFudChpbmRleCkKKyAgICBhc3NlcnQobWFjcm8gKG9rKSBi
aWx0IGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgb2sgZW5kKQorZW5kCisKK21h
Y3JvIGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKKyAgICBs
b2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjpt
X2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEZ1
bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2RlQmxvY2tGb3JDYWxsW3RhcmdldFJlZ2lzdGVyXSwgdGFy
Z2V0UmVnaXN0ZXIKK2VuZAorCittYWNybyBmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dl
dHRlcih0YXJnZXRSZWdpc3RlcikKKyAgICBsb2FkcCBDYWxsZWVbY2ZyXSwgdGFyZ2V0UmVnaXN0
ZXIKKyAgICBsb2FkcCBKU0Z1bmN0aW9uOjptX2V4ZWN1dGFibGVbdGFyZ2V0UmVnaXN0ZXJdLCB0
YXJnZXRSZWdpc3RlcgorICAgIGxvYWRwIEZ1bmN0aW9uRXhlY3V0YWJsZTo6bV9jb2RlQmxvY2tG
b3JDb25zdHJ1Y3RbdGFyZ2V0UmVnaXN0ZXJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3Jv
IG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyKHRhcmdldFJlZ2lzdGVyKQorICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCB0YXJnZXRSZWdpc3RlcgorZW5kCisKK21hY3JvIGZ1bmN0aW9uQ29kZUJs
b2NrU2V0dGVyKHNvdXJjZVJlZ2lzdGVyKQorICAgIHN0b3JlcCBzb3VyY2VSZWdpc3RlciwgQ29k
ZUJsb2NrW2Nmcl0KK2VuZAorCittYWNybyBub3RGdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3Vy
Y2VSZWdpc3RlcikKKyAgICAjIE5vdGhpbmcgdG8gZG8hCitlbmQKKworIyBEbyB0aGUgYmFyZSBt
aW5pbXVtIHJlcXVpcmVkIHRvIGV4ZWN1dGUgY29kZS4gU2V0cyB1cCB0aGUgUEMsIGxlYXZlIHRo
ZSBDb2RlQmxvY2sqCisjIGluIHQxLiBNYXkgYWxzbyB0cmlnZ2VyIHByb2xvZ3VlIGVudHJ5IE9T
Ui4KK21hY3JvIHByb2xvZ3VlKGNvZGVCbG9ja0dldHRlciwgY29kZUJsb2NrU2V0dGVyLCBvc3JT
bG93UGF0aCwgdHJhY2VTbG93UGF0aCkKKyAgICBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNh
bGwodDIpCisgICAgCisgICAgIyBTZXQgdXAgdGhlIGNhbGwgZnJhbWUgYW5kIGNoZWNrIGlmIHdl
IHNob3VsZCBPU1IuCisgICAgc3RvcmVwIHQyLCBSZXR1cm5QQ1tjZnJdCisgICAgaWYgRVhFQ1VU
SU9OX1RSQUNJTkcKKyAgICAgICAgY2FsbFNsb3dQYXRoKHRyYWNlU2xvd1BhdGgpCisgICAgZW5k
CisgICAgY29kZUJsb2NrR2V0dGVyKHQxKQorICAgIGlmIEpJVF9FTkFCTEVECisgICAgICAgIGJh
ZGRpcyA1LCBDb2RlQmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRlciArIEV4ZWN1dGlvbkNvdW50
ZXI6Om1fY291bnRlclt0MV0sIC5jb250aW51ZQorICAgICAgICBjQ2FsbDIob3NyU2xvd1BhdGgs
IGNmciwgUEMpCisgICAgICAgIG1vdmUgdDEsIGNmcgorICAgICAgICBidHB6IHQwLCAucmVjb3Zl
cgorICAgICAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgorICAgICAgICByZXN0b3JlUmV0dXJu
QWRkcmVzc0JlZm9yZVJldHVybih0MikKKyAgICAgICAgam1wIHQwCisgICAgLnJlY292ZXI6Cisg
ICAgICAgIGNvZGVCbG9ja0dldHRlcih0MSkKKyAgICAuY29udGludWU6CisgICAgZW5kCisgICAg
Y29kZUJsb2NrU2V0dGVyKHQxKQorICAgIAorICAgICMgU2V0IHVwIHRoZSBQQy4KKyAgICBpZiBK
U1ZBTFVFNjQKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIFBC
CisgICAgICAgIG1vdmUgMCwgUEMKKyAgICBlbHNlCisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6
bV9pbnN0cnVjdGlvbnNbdDFdLCBQQworICAgIGVuZAorZW5kCisKKyMgRXhwZWN0cyB0aGF0IENv
ZGVCbG9jayBpcyBpbiB0MSwgd2hpY2ggaXMgd2hhdCBwcm9sb2d1ZSgpIGxlYXZlcyBiZWhpbmQu
CisjIE11c3QgY2FsbCBkaXNwYXRjaCgwKSBhZnRlciBjYWxsaW5nIHRoaXMuCittYWNybyBmdW5j
dGlvbkluaXRpYWxpemF0aW9uKHByb2ZpbGVBcmdTa2lwKQorICAgIGlmIFZBTFVFX1BST0ZJTEVS
CisgICAgICAgICMgUHJvZmlsZSB0aGUgYXJndW1lbnRzLiBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZl
IG5vIGNob2ljZSBidXQgdG8gZG8gdGhpcy4gVGhpcworICAgICAgICAjIGNvZGUgaXMgcHJldHR5
IGhvcnJlbmRvdXMgYmVjYXVzZSBvZiB0aGUgZGlmZmVyZW5jZSBpbiBvcmRlcmluZyBiZXR3ZWVu
CisgICAgICAgICMgYXJndW1lbnRzIGFuZCB2YWx1ZSBwcm9maWxlcywgdGhlIGRlc2lyZSB0byBo
YXZlIGEgc2ltcGxlIGxvb3AtZG93bi10by16ZXJvCisgICAgICAgICMgbG9vcCwgYW5kIHRoZSBk
ZXNpcmUgdG8gdXNlIG9ubHkgdGhyZWUgcmVnaXN0ZXJzIHNvIGFzIHRvIHByZXNlcnZlIHRoZSBQ
QyBhbmQKKyAgICAgICAgIyB0aGUgY29kZSBibG9jay4gSXQgaXMgbGlrZWx5IHRoYXQgdGhpcyBj
b2RlIHNob3VsZCBiZSByZXdyaXR0ZW4gaW4gYSBtb3JlCisgICAgICAgICMgb3B0aW1hbCB3YXkg
Zm9yIGFyY2hpdGVjdHVyZXMgdGhhdCBoYXZlIG1vcmUgdGhhbiBmaXZlIHJlZ2lzdGVycyBhdmFp
bGFibGUKKyAgICAgICAgIyBmb3IgYXJiaXRyYXJ5IHVzZSBpbiB0aGUgaW50ZXJwcmV0ZXIuCisg
ICAgICAgIGxvYWRpIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgdDAKKyAgICAgICAg
YWRkcCAtcHJvZmlsZUFyZ1NraXAsIHQwICMgVXNlIGFkZGkgYmVjYXVzZSB0aGF0J3Mgd2hhdCBo
YXMgdGhlIHBlZXBob2xlCisgICAgICAgIGFzc2VydChtYWNybyAob2spIGJwZ3RlcSB0MCwgMCwg
b2sgZW5kKQorICAgICAgICBidHB6IHQwLCAuYXJndW1lbnRQcm9maWxlRG9uZQorICAgICAgICBs
b2FkcCBDb2RlQmxvY2s6Om1fYXJndW1lbnRWYWx1ZVByb2ZpbGVzICsgVmVjdG9yQnVmZmVyT2Zm
c2V0W3QxXSwgdDMKKyAgICAgICAgbXVscCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MCwgdDIgIyBB
YWFhYWhoaGghIE5lZWQgc3RyZW5ndGggcmVkdWN0aW9uIQorICAgICAgICBuZWdwIHQwCisgICAg
ICAgIGxzaGlmdHAgMywgdDAKKyAgICAgICAgYWRkcCB0MiwgdDMKKyAgICAuYXJndW1lbnRQcm9m
aWxlTG9vcDoKKyAgICAgICAgaWYgSlNWQUxVRTY0CisgICAgICAgICAgICBsb2FkcCBUaGlzQXJn
dW1lbnRPZmZzZXQgKyA4IC0gcHJvZmlsZUFyZ1NraXAgKiA4W2NmciwgdDBdLCB0MgorICAgICAg
ICAgICAgc3VicCBzaXplb2YgVmFsdWVQcm9maWxlLCB0MworICAgICAgICAgICAgc3RvcmVwIHQy
LCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1f
YnVja2V0c1t0M10KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50
T2Zmc2V0ICsgVGFnT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIsIHQwXSwgdDIK
KyAgICAgICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDMKKyAgICAgICAgICAgIHN0
b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxlICsgVmFsdWVQcm9m
aWxlOjptX2J1Y2tldHMgKyBUYWdPZmZzZXRbdDNdCisgICAgICAgICAgICBsb2FkaSBUaGlzQXJn
dW1lbnRPZmZzZXQgKyBQYXlsb2FkT2Zmc2V0ICsgOCAtIHByb2ZpbGVBcmdTa2lwICogOFtjZnIs
IHQwXSwgdDIKKyAgICAgICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2Yg
VmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBQYXlsb2FkT2Zmc2V0W3Qz
XQorICAgICAgICBlbmQKKyAgICAgICAgYmFkZHBueiA4LCB0MCwgLmFyZ3VtZW50UHJvZmlsZUxv
b3AKKyAgICAuYXJndW1lbnRQcm9maWxlRG9uZToKKyAgICBlbmQKKyAgICAgICAgCisgICAgIyBD
aGVjayBzdGFjayBoZWlnaHQuCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX251bUNhbGxlZVJlZ2lz
dGVyc1t0MV0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDFdLCB0Mgor
ICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6aW50ZXJwcmV0ZXJbdDJdLCB0MiAgICMgRklYTUU6IENh
biBnZXQgdG8gdGhlIFJlZ2lzdGVyRmlsZSBmcm9tIHRoZSBKSVRTdGFja0ZyYW1lCisgICAgbHNo
aWZ0aSAzLCB0MAorICAgIGFkZHAgdDAsIGNmciwgdDAKKyAgICBicGFlcSBJbnRlcnByZXRlcjo6
bV9yZWdpc3RlckZpbGUgKyBSZWdpc3RlckZpbGU6Om1fZW5kW3QyXSwgdDAsIC5zdGFja0hlaWdo
dE9LCisKKyAgICAjIFN0YWNrIGhlaWdodCBjaGVjayBmYWlsZWQgLSBuZWVkIHRvIGNhbGwgYSBz
bG93X3BhdGguCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZWdpc3Rlcl9maWxlX2NoZWNrKQor
LnN0YWNrSGVpZ2h0T0s6CitlbmQKKworbWFjcm8gYWxsb2NhdGVCYXNpY0pTT2JqZWN0KHNpemVD
bGFzc0luZGV4LCBjbGFzc0luZm9PZmZzZXQsIHN0cnVjdHVyZSwgcmVzdWx0LCBzY3JhdGNoMSwg
c2NyYXRjaDIsIHNsb3dDYXNlKQorICAgIGlmIEFMV0FZU19BTExPQ0FURV9TTE9XCisgICAgICAg
IGptcCBzbG93Q2FzZQorICAgIGVsc2UKKyAgICAgICAgY29uc3Qgb2Zmc2V0T2ZNeVNpemVDbGFz
cyA9CisgICAgICAgICAgICBKU0dsb2JhbERhdGE6OmhlYXAgKworICAgICAgICAgICAgSGVhcDo6
bV9vYmplY3RTcGFjZSArCisgICAgICAgICAgICBNYXJrZWRTcGFjZTo6bV9ub3JtYWxTcGFjZSAr
CisgICAgICAgICAgICBNYXJrZWRTcGFjZTo6U3Vic3BhY2U6OnByZWNpc2VBbGxvY2F0b3JzICsK
KyAgICAgICAgICAgIHNpemVDbGFzc0luZGV4ICogc2l6ZW9mIE1hcmtlZEFsbG9jYXRvcgorICAg
ICAgICAKKyAgICAgICAgIyBGSVhNRTogd2UgY2FuIGdldCB0aGUgZ2xvYmFsIGRhdGEgaW4gb25l
IGxvYWQgZnJvbSB0aGUgc3RhY2suCisgICAgICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBzY3Jh
dGNoMQorICAgICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVtzY3JhdGNoMV0sIHNj
cmF0Y2gxCisgICAgICAgIAorICAgICAgICAjIEdldCB0aGUgb2JqZWN0IGZyb20gdGhlIGZyZWUg
bGlzdC4gICAgCisgICAgICAgIGxvYWRwIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxv
Y2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0sIHJlc3VsdAorICAgICAgICBidHB6IHJl
c3VsdCwgc2xvd0Nhc2UKKyAgICAgICAgCisgICAgICAgICMgUmVtb3ZlIHRoZSBvYmplY3QgZnJv
bSB0aGUgZnJlZSBsaXN0LgorICAgICAgICBsb2FkcCBbcmVzdWx0XSwgc2NyYXRjaDIKKyAgICAg
ICAgc3RvcmVwIHNjcmF0Y2gyLCBvZmZzZXRPZk15U2l6ZUNsYXNzICsgTWFya2VkQWxsb2NhdG9y
OjptX2ZpcnN0RnJlZUNlbGxbc2NyYXRjaDFdCisgICAgCisgICAgICAgICMgSW5pdGlhbGl6ZSB0
aGUgb2JqZWN0LgorICAgICAgICBsb2FkcCBjbGFzc0luZm9PZmZzZXRbc2NyYXRjaDFdLCBzY3Jh
dGNoMgorICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIFtyZXN1bHRdCisgICAgICAgIHN0b3JlcCBz
dHJ1Y3R1cmUsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbcmVzdWx0XQorICAgICAgICBzdG9yZXAgMCwg
SlNPYmplY3Q6Om1faW5oZXJpdG9ySURbcmVzdWx0XQorICAgICAgICBhZGRwIHNpemVvZiBKU09i
amVjdCwgcmVzdWx0LCBzY3JhdGNoMQorICAgICAgICBzdG9yZXAgc2NyYXRjaDEsIEpTT2JqZWN0
OjptX3Byb3BlcnR5U3RvcmFnZVtyZXN1bHRdCisgICAgZW5kCitlbmQKKworbWFjcm8gZG9SZXR1
cm4oKQorICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCisgICAgbG9hZHAgQ2FsbGVyRnJhbWVb
Y2ZyXSwgY2ZyCisgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCisgICAg
cmV0CitlbmQKKworCisjIEluZGljYXRlIHRoZSBiZWdpbm5pbmcgb2YgTExJbnQuCitfbGxpbnRf
YmVnaW46CisgICAgY3Jhc2goKQorCisKK19sbGludF9wcm9ncmFtX3Byb2xvZ3VlOgorICAgIHBy
b2xvZ3VlKG5vdEZ1bmN0aW9uQ29kZUJsb2NrR2V0dGVyLCBub3RGdW5jdGlvbkNvZGVCbG9ja1Nl
dHRlciwgX2xsaW50X2VudHJ5X29zciwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlKQorICAgIGRpc3Bh
dGNoKDApCisKKworX2xsaW50X2V2YWxfcHJvbG9ndWU6CisgICAgcHJvbG9ndWUobm90RnVuY3Rp
b25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50
cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxp
bnRfZnVuY3Rpb25fZm9yX2NhbGxfcHJvbG9ndWU6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JD
YWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5
X29zcl9mdW5jdGlvbl9mb3JfY2FsbCwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zv
cl9jYWxsKQorLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luOgorICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRp
b24oMCkKKyAgICBkaXNwYXRjaCgwKQorICAgIAorCitfbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0
cnVjdF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9j
a0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rp
b25fZm9yX2NvbnN0cnVjdCwgX2xsaW50X3RyYWNlX3Byb2xvZ3VlX2Z1bmN0aW9uX2Zvcl9jb25z
dHJ1Y3QpCisuZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbjoKKyAgICBmdW5jdGlvbkluaXRpYWxp
emF0aW9uKDEpCisgICAgZGlzcGF0Y2goMCkKKyAgICAKKworX2xsaW50X2Z1bmN0aW9uX2Zvcl9j
YWxsX2FyaXR5X2NoZWNrOgorICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ2FsbENvZGVCbG9ja0dl
dHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25f
Zm9yX2NhbGxfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2NhbGwpCisg
ICAgZnVuY3Rpb25Bcml0eUNoZWNrKC5mdW5jdGlvbkZvckNhbGxCZWdpbiwgX2xsaW50X3Nsb3df
cGF0aF9jYWxsX2FyaXR5Q2hlY2spCisKKworX2xsaW50X2Z1bmN0aW9uX2Zvcl9jb25zdHJ1Y3Rf
YXJpdHlfY2hlY2s6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tH
ZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9u
X2Zvcl9jb25zdHJ1Y3RfYXJpdHlDaGVjaywgX2xsaW50X3RyYWNlX2FyaXR5Q2hlY2tfZm9yX2Nv
bnN0cnVjdCkKKyAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0aW9uRm9yQ29uc3RydWN0QmVn
aW4sIF9sbGludF9zbG93X3BhdGhfY29uc3RydWN0X2FyaXR5Q2hlY2spCisKKworIyBWYWx1ZS1y
ZXByZXNlbnRhdGlvbi1zcGVjaWZpYyBjb2RlLgogaWYgSlNWQUxVRTY0CiAgICAgaW5jbHVkZSBM
b3dMZXZlbEludGVycHJldGVyNjQKIGVsc2UKICAgICBpbmNsdWRlIExvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NAogZW5kCiAKKworIyBWYWx1ZS1yZXByZXNlbnRhdGlvbi1hZ25vc3RpYyBjb2RlLgor
X2xsaW50X29wX25ld19hcnJheToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2FycmF5KQorICAgIGRpc3BhdGNoKDQpCisKKworX2xs
aW50X29wX25ld19hcnJheV9idWZmZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19hcnJheV9idWZmZXIpCisgICAgZGlzcGF0Y2go
NCkKKworCitfbGxpbnRfb3BfbmV3X3JlZ2V4cDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X3JlZ2V4cCkKKyAgICBkaXNwYXRjaCgz
KQorCisKK19sbGludF9vcF9sZXNzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9sZXNzKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX2xlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfbGVzc2VxKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX2dyZWF0
ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX2dyZWF0ZXIpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfZ3JlYXRlcmVxOgor
ICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9n
cmVhdGVyZXEpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfbW9kOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9tb2QpCisgICAg
ZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfdHlwZW9mOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90eXBlb2YpCisgICAgZGlzcGF0Y2go
MykKKworCitfbGxpbnRfb3BfaXNfdW5kZWZpbmVkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc191bmRlZmluZWQpCisgICAgZGlzcGF0
Y2goMykKKworCitfbGxpbnRfb3BfaXNfYm9vbGVhbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfYm9vbGVhbikKKyAgICBkaXNwYXRj
aCgzKQorCisKK19sbGludF9vcF9pc19udW1iZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX251bWJlcikKKyAgICBkaXNwYXRjaCgz
KQorCisKK19sbGludF9vcF9pc19zdHJpbmc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX3N0cmluZykKKyAgICBkaXNwYXRjaCgzKQor
CisKK19sbGludF9vcF9pc19vYmplY3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX29iamVjdCkKKyAgICBkaXNwYXRjaCgzKQorCisK
K19sbGludF9vcF9pc19mdW5jdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfZnVuY3Rpb24pCisgICAgZGlzcGF0Y2goMykKKwor
CitfbGxpbnRfb3BfaW46CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2luKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX3Jlc29s
dmU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX3Jlc29sdmUpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfcmVzb2x2ZV9za2lw
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9yZXNvbHZlX3NraXApCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfcmVzb2x2ZV9i
YXNlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9yZXNvbHZlX2Jhc2UpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfZW5zdXJl
X3Byb3BlcnR5X2V4aXN0czoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfZW5zdXJlX3Byb3BlcnR5X2V4aXN0cykKKyAgICBkaXNwYXRjaCgz
KQorCisKK19sbGludF9vcF9yZXNvbHZlX3dpdGhfYmFzZToKKyAgICB0cmFjZUV4ZWN1dGlvbigp
CisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV93aXRoX2Jhc2UpCisg
ICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfcmVzb2x2ZV93aXRoX3RoaXM6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVf
d2l0aF90aGlzKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX2RlbF9ieV9pZDoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVs
X2J5X2lkKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX2RlbF9ieV92YWw6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlbF9i
eV92YWwpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfcHV0X2J5X2luZGV4OgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRf
YnlfaW5kZXgpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfcHV0X2dldHRlcl9zZXR0
ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX3B1dF9nZXR0ZXJfc2V0dGVyKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX2pt
cF9zY29wZXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2ptcF9zY29wZXMpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfb3BfbG9v
cF9pZl90cnVlOgorICAgIG5vcAorX2xsaW50X29wX2p0cnVlOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBqdW1wVHJ1ZU9yRmFsc2UoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBi
dGlueiB2YWx1ZSwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qdHJ1ZSkK
KworCitfbGxpbnRfb3BfbG9vcF9pZl9mYWxzZToKKyAgICBub3AKK19sbGludF9vcF9qZmFsc2U6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGp1bXBUcnVlT3JGYWxzZSgKKyAgICAgICAgbWFj
cm8gKHZhbHVlLCB0YXJnZXQpIGJ0aXogdmFsdWUsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGlu
dF9zbG93X3BhdGhfamZhbHNlKQorCisKK19sbGludF9vcF9sb29wX2lmX2xlc3M6CisgICAgbm9w
CitfbGxpbnRfb3Bfamxlc3M6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisg
ICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0LCB0YXJn
ZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdCBsZWZ0LCBy
aWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbGVzcykKKworCitf
bGxpbnRfb3Bfam5sZXNzOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAg
ICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndGVxIGxlZnQsIHJpZ2h0LCB0YXJn
ZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndGVxdW4gbGVm
dCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5sZXNzKQor
CisKK19sbGludF9vcF9sb29wX2lmX2dyZWF0ZXI6CisgICAgbm9wCitfbGxpbnRfb3BfamdyZWF0
ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisgICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAg
ICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZ3JlYXRlcikKKworCitfbGxpbnRfb3Bfam5n
cmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNy
byAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAor
ICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdGVxdW4gbGVmdCwgcmlnaHQs
IHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5ncmVhdGVyKQorCisKK19s
bGludF9vcF9sb29wX2lmX2xlc3NlcToKKyAgICBub3AKK19sbGludF9vcF9qbGVzc2VxOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmln
aHQsIHRhcmdldCkgYmlsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNy
byAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAor
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2psZXNzZXEpCisKKworX2xsaW50X29wX2pubGVzc2Vx
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmlndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3R1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVu
ZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbmxlc3NlcSkKKworCitfbGxpbnRfb3BfbG9v
cF9pZl9ncmVhdGVyZXE6CisgICAgbm9wCitfbGxpbnRfb3BfamdyZWF0ZXJlcToKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0
YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAg
ICAgX2xsaW50X3Nsb3dfcGF0aF9qZ3JlYXRlcmVxKQorCisKK19sbGludF9vcF9qbmdyZWF0ZXJl
cToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHQgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAg
IG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBl
bmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5ncmVhdGVyZXEpCisKKworX2xsaW50X29w
X2xvb3BfaGludDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tTd2l0Y2hUb0pJVEZv
ckxvb3AoKQorICAgIGRpc3BhdGNoKDEpCisKKworX2xsaW50X29wX3N3aXRjaF9zdHJpbmc6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3N3
aXRjaF9zdHJpbmcpCisgICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfb3BfbmV3X2Z1bmNfZXhw
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9uZXdfZnVuY19leHApCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfY2FsbDoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZG9DYWxsKF9sbGludF9zbG93X3BhdGhfY2FsbCkKKwor
CitfbGxpbnRfb3BfY29uc3RydWN0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBkb0NhbGwo
X2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1Y3QpCisKKworX2xsaW50X29wX2NhbGxfdmFyYXJnczoK
KyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgc2xvd1BhdGhGb3JDYWxsKDYsIF9sbGludF9zbG93
X3BhdGhfY2FsbF92YXJhcmdzKQorCisKK19sbGludF9vcF9jYWxsX2V2YWw6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIAorICAgICMgRXZhbCBpcyBleGVjdXRlZCBpbiBvbmUgb2YgdHdvIG1v
ZGVzOgorICAgICMKKyAgICAjIDEpIFdlIGZpbmQgdGhhdCB3ZSdyZSByZWFsbHkgaW52b2tpbmcg
ZXZhbCgpIGluIHdoaWNoIGNhc2UgdGhlCisgICAgIyAgICBleGVjdXRpb24gaXMgcGVyZm9tZWQg
ZW50aXJlbHkgaW5zaWRlIHRoZSBzbG93X3BhdGgsIGFuZCBpdAorICAgICMgICAgcmV0dXJucyB0
aGUgUEMgb2YgYSBmdW5jdGlvbiB0aGF0IGp1c3QgcmV0dXJucyB0aGUgcmV0dXJuIHZhbHVlCisg
ICAgIyAgICB0aGF0IHRoZSBldmFsIHJldHVybmVkLgorICAgICMKKyAgICAjIDIpIFdlIGZpbmQg
dGhhdCB3ZSdyZSBpbnZva2luZyBzb21ldGhpbmcgY2FsbGVkIGV2YWwoKSB0aGF0IGlzIG5vdAor
ICAgICMgICAgdGhlIHJlYWwgZXZhbC4gVGhlbiB0aGUgc2xvd19wYXRoIHJldHVybnMgdGhlIFBD
IG9mIHRoZSB0aGluZyB0bworICAgICMgICAgY2FsbCwgYW5kIHdlIGNhbGwgaXQuCisgICAgIwor
ICAgICMgVGhpcyBhbGxvd3MgdXMgdG8gaGFuZGxlIHR3byBjYXNlcywgd2hpY2ggd291bGQgcmVx
dWlyZSBhIHRvdGFsIG9mCisgICAgIyB1cCB0byBmb3VyIHBpZWNlcyBvZiBzdGF0ZSB0aGF0IGNh
bm5vdCBiZSBlYXNpbHkgcGFja2VkIGludG8gdHdvCisgICAgIyByZWdpc3RlcnMgKEMgZnVuY3Rp
b25zIGNhbiByZXR1cm4gdXAgdG8gdHdvIHJlZ2lzdGVycywgZWFzaWx5KToKKyAgICAjCisgICAg
IyAtIFRoZSBjYWxsIGZyYW1lIHJlZ2lzdGVyLiBUaGlzIG1heSBvciBtYXkgbm90IGhhdmUgYmVl
biBtb2RpZmllZAorICAgICMgICBieSB0aGUgc2xvd19wYXRoLCBidXQgdGhlIGNvbnZlbnRpb24g
aXMgdGhhdCBpdCByZXR1cm5zIGl0LiBJdCdzIG5vdAorICAgICMgICB0b3RhbGx5IGNsZWFyIGlm
IHRoYXQncyBuZWNlc3NhcnksIHNpbmNlIHRoZSBjZnIgaXMgY2FsbGVlIHNhdmUuCisgICAgIyAg
IEJ1dCB0aGF0J3Mgb3VyIHN0eWxlIGluIHRoaXMgaGVyZSBpbnRlcnByZXRlciBzbyB3ZSBzdGlj
ayB3aXRoIGl0LgorICAgICMKKyAgICAjIC0gQSBiaXQgdG8gc2F5IGlmIHRoZSBzbG93X3BhdGgg
c3VjY2Vzc2Z1bGx5IGV4ZWN1dGVkIHRoZSBldmFsIGFuZCBoYXMKKyAgICAjICAgdGhlIHJldHVy
biB2YWx1ZSwgb3IgZGlkIG5vdCBleGVjdXRlIHRoZSBldmFsIGJ1dCBoYXMgYSBQQyBmb3IgdXMK
KyAgICAjICAgdG8gY2FsbC4KKyAgICAjCisgICAgIyAtIEVpdGhlcjoKKyAgICAjICAgLSBUaGUg
SlMgcmV0dXJuIHZhbHVlICh0d28gcmVnaXN0ZXJzKSwgb3IKKyAgICAjCisgICAgIyAgIC0gVGhl
IFBDIHRvIGNhbGwuCisgICAgIworICAgICMgSXQgdHVybnMgb3V0IHRvIGJlIGVhc2llciB0byBq
dXN0IGFsd2F5cyBoYXZlIHRoaXMgcmV0dXJuIHRoZSBjZnIKKyAgICAjIGFuZCBhIFBDIHRvIGNh
bGwsIGFuZCB0aGF0IFBDIG1heSBiZSBhIGR1bW15IHRodW5rIHRoYXQganVzdAorICAgICMgcmV0
dXJucyB0aGUgSlMgdmFsdWUgdGhhdCB0aGUgZXZhbCByZXR1cm5lZC4KKyAgICAKKyAgICBzbG93
UGF0aEZvckNhbGwoNCwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX2V2YWwpCisKKworX2xsaW50X2dl
bmVyaWNfcmV0dXJuX3BvaW50OgorICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKKworCitfbGxpbnRf
b3Bfc3RyY2F0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9zdHJjYXQpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfbWV0aG9k
X2NoZWNrOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAjIFdlIGlnbm9yZSBtZXRob2QgY2hl
Y2tzIGFuZCB1c2Ugbm9ybWFsIGdldF9ieV9pZCBvcHRpbWl6YXRpb25zLgorICAgIGRpc3BhdGNo
KDEpCisKKworX2xsaW50X29wX2dldF9wbmFtZXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9wbmFtZXMpCisgICAgZGlzcGF0Y2go
MCkgIyBUaGUgc2xvd19wYXRoIGVpdGhlciBhZHZhbmNlcyB0aGUgUEMgb3IganVtcHMgdXMgdG8g
c29tZXdoZXJlIGVsc2UuCisKKworX2xsaW50X29wX3B1c2hfc2NvcGU6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfc2NvcGUpCisg
ICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfcG9wX3Njb3BlOgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wb3Bfc2NvcGUpCisgICAg
ZGlzcGF0Y2goMSkKKworCitfbGxpbnRfb3BfcHVzaF9uZXdfc2NvcGU6CisgICAgdHJhY2VFeGVj
dXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1c2hfbmV3X3Njb3Bl
KQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX3Rocm93OgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvdykKKyAgICBkaXNw
YXRjaCgyKQorCisKK19sbGludF9vcF90aHJvd19yZWZlcmVuY2VfZXJyb3I6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Rocm93X3JlZmVy
ZW5jZV9lcnJvcikKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9wcm9maWxlX3dpbGxf
Y2FsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6ZW5h
YmxlZFByb2ZpbGVyUmVmZXJlbmNlW3NwXSwgdDAKKyAgICBidHB6IFt0MF0sIC5vcFByb2ZpbGVX
aWxsQ2FsbERvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wcm9maWxlX3dp
bGxfY2FsbCkKKy5vcFByb2ZpbGVXaWxsQ2FsbERvbmU6CisgICAgZGlzcGF0Y2goMikKKworCitf
bGxpbnRfb3BfcHJvZmlsZV9kaWRfY2FsbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9h
ZHAgSklUU3RhY2tGcmFtZTo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlW3NwXSwgdDAKKyAgICBi
dHB6IFt0MF0sIC5vcFByb2ZpbGVXaWxsQ2FsbERvbmUKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9wcm9maWxlX2RpZF9jYWxsKQorLm9wUHJvZmlsZURpZENhbGxEb25lOgorICAg
IGRpc3BhdGNoKDIpCisKKworX2xsaW50X29wX2RlYnVnOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9kZWJ1ZykKKyAgICBkaXNwYXRjaCg0
KQorCisKK19sbGludF9uYXRpdmVfY2FsbF90cmFtcG9saW5lOgorICAgIG5hdGl2ZUNhbGxUcmFt
cG9saW5lKE5hdGl2ZUV4ZWN1dGFibGU6Om1fZnVuY3Rpb24pCisKKworX2xsaW50X25hdGl2ZV9j
b25zdHJ1Y3RfdHJhbXBvbGluZToKKyAgICBuYXRpdmVDYWxsVHJhbXBvbGluZShOYXRpdmVFeGVj
dXRhYmxlOjptX2NvbnN0cnVjdG9yKQorCisKKyMgTGFzdGx5LCBtYWtlIHN1cmUgdGhhdCB3ZSBj
YW4gbGluayBldmVuIHRob3VnaCB3ZSBkb24ndCBzdXBwb3J0IGFsbCBvcGNvZGVzLgorIyBUaGVz
ZSBvcGNvZGVzIHNob3VsZCBuZXZlciBhcmlzZSB3aGVuIHVzaW5nIExMSW50IG9yIGVpdGhlciBK
SVQuIFdlIGFzc2VydAorIyBhcyBtdWNoLgorCittYWNybyBub3RTdXBwb3J0ZWQoKQorICAgIGlm
IEFTU0VSVF9FTkFCTEVECisgICAgICAgIGNyYXNoKCkKKyAgICBlbHNlCisgICAgICAgICMgV2Ug
c2hvdWxkIHVzZSB3aGF0ZXZlciB0aGUgc21hbGxlc3QgcG9zc2libGUgaW5zdHJ1Y3Rpb24gaXMs
IGp1c3QgdG8KKyAgICAgICAgIyBlbnN1cmUgdGhhdCB0aGVyZSBpcyBhIGdhcCBiZXR3ZWVuIGlu
c3RydWN0aW9uIGxhYmVscy4gSWYgbXVsdGlwbGUKKyAgICAgICAgIyBzbWFsbGVzdCBpbnN0cnVj
dGlvbnMgZXhpc3QsIHdlIHNob3VsZCBwaWNrIHRoZSBvbmUgdGhhdCBpcyBtb3N0CisgICAgICAg
ICMgbGlrZWx5IHJlc3VsdCBpbiBleGVjdXRpb24gYmVpbmcgaGFsdGVkLiBDdXJyZW50bHkgdGhh
dCBpcyB0aGUgYnJlYWsKKyAgICAgICAgIyBpbnN0cnVjdGlvbiBvbiBhbGwgYXJjaGl0ZWN0dXJl
cyB3ZSdyZSBpbnRlcmVzdGVkIGluLiAoQnJlYWsgaXMgaW50MworICAgICAgICAjIG9uIEludGVs
LCB3aGljaCBpcyAxIGJ5dGUsIGFuZCBia3B0IG9uIEFSTXY3LCB3aGljaCBpcyAyIGJ5dGVzLikK
KyAgICAgICAgYnJlYWsKKyAgICBlbmQKK2VuZAorCitfbGxpbnRfb3BfZ2V0X2FycmF5X2xlbmd0
aDoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX2NoYWluOgorICAg
IG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX2NoYWluOgorICAg
IG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX3Byb3RvOgorICAg
IG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfY3VzdG9tX3NlbGY6CisgICAg
bm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9nZW5lcmljOgorICAgIG5vdFN1
cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX2NoYWluOgorICAgIG5vdFN1
cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX3Byb3RvOgorICAgIG5vdFN1
cHBvcnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfZ2V0dGVyX3NlbGY6CisgICAgbm90U3Vw
cG9ydGVkKCkKKworX2xsaW50X29wX2dldF9ieV9pZF9wcm90bzoKKyAgICBub3RTdXBwb3J0ZWQo
KQorCitfbGxpbnRfb3BfZ2V0X2J5X2lkX3NlbGY6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xs
aW50X29wX2dldF9zdHJpbmdfbGVuZ3RoOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9v
cF9wdXRfYnlfaWRfZ2VuZXJpYzoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0
X2J5X2lkX3JlcGxhY2U6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX3B1dF9ieV9p
ZF90cmFuc2l0aW9uOgorICAgIG5vdFN1cHBvcnRlZCgpCisKKworIyBJbmRpY2F0ZSB0aGUgZW5k
IG9mIExMSW50LgorX2xsaW50X2VuZDoKKyAgICBjcmFzaCgpCisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hcm12Ny5yYgkod29ya2luZyBjb3B5KQpAQCAt
MzMsMjkgKzMzLDkgQEAgY2xhc3MgTm9kZQogZW5kCiAKIGNsYXNzIFNwZWNpYWxSZWdpc3RlciA8
IE5vQ2hpbGRyZW4KLSAgICBkZWYgaW5pdGlhbGl6ZShuYW1lKQotICAgICAgICBAbmFtZSA9IG5h
bWUKLSAgICBlbmQKLSAgICAKICAgICBkZWYgYXJtVjdPcGVyYW5kCiAgICAgICAgIEBuYW1lCiAg
ICAgZW5kCi0gICAgCi0gICAgZGVmIGFkZHJlc3M/Ci0gICAgICAgIGZhbHNlCi0gICAgZW5kCi0g
ICAgCi0gICAgZGVmIGxhYmVsPwotICAgICAgICBmYWxzZQotICAgIGVuZAotICAgIAotICAgIGRl
ZiBpbW1lZGlhdGU/Ci0gICAgICAgIGZhbHNlCi0gICAgZW5kCi0gICAgCi0gICAgZGVmIHJlZ2lz
dGVyPwotICAgICAgICB0cnVlCi0gICAgZW5kCiBlbmQKIAogQVJNdjdfRVhUUkFfR1BSUyA9IFtT
cGVjaWFsUmVnaXN0ZXIubmV3KCJyOSIpLCBTcGVjaWFsUmVnaXN0ZXIubmV3KCJyOCIpLCBTcGVj
aWFsUmVnaXN0ZXIubmV3KCJyMyIpXQpAQCAtMjI4LDcgKzIwOCw3IEBAIGRlZiBhcm1WN0xvd2Vy
U2hpZnRPcHMobGlzdCkKICAgICAgICAgfCBub2RlIHwKICAgICAgICAgaWYgbm9kZS5pc19hPyBJ
bnN0cnVjdGlvbgogICAgICAgICAgICAgY2FzZSBub2RlLm9wY29kZQotICAgICAgICAgICAgd2hl
biAibHNoaWZ0aSIsICJyc2hpZnRpIiwgInVyc2hpZnRpIgorICAgICAgICAgICAgd2hlbiAibHNo
aWZ0aSIsICJyc2hpZnRpIiwgInVyc2hpZnRpIiwgImxzaGlmdHAiLCAicnNoaWZ0cCIsICJ1cnNo
aWZ0cCIKICAgICAgICAgICAgICAgICBpZiBub2RlLm9wZXJhbmRzLnNpemUgPT0gMgogICAgICAg
ICAgICAgICAgICAgICBuZXdMaXN0IDw8IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4s
IG5vZGUub3Bjb2RlLCBbYXJtVjdTYW5pdGl6ZVNoaWZ0KG5vZGUub3BlcmFuZHNbMF0sIG5ld0xp
c3QpLCBub2RlLm9wZXJhbmRzWzFdXSkKICAgICAgICAgICAgICAgICBlbHNlCkBAIC00NjksNyAr
NDQ5LDcgQEAgZGVmIGFybVY3TG93ZXJNYWxmb3JtZWRJbW1lZGlhdGVzKGxpc3QpCiAgICAgICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBuZXdMaXN0IDw8IG5vZGUuYXJtVjdM
b3dlck1hbGZvcm1lZEltbWVkaWF0ZXNSZWN1cnNlKG5ld0xpc3QpCiAgICAgICAgICAgICAgICAg
ZW5kCi0gICAgICAgICAgICB3aGVuICJtdWxpIgorICAgICAgICAgICAgd2hlbiAibXVsaSIsICJt
dWxwIgogICAgICAgICAgICAgICAgIGlmIG5vZGUub3BlcmFuZHNbMF0uaXNfYT8gSW1tZWRpYXRl
CiAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFRtcC5uZXcoY29kZU9yaWdpbiwgOmdwcikKICAg
ICAgICAgICAgICAgICAgICAgbmV3TGlzdCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3Jp
Z2luLCAibW92ZSIsIFtub2RlLm9wZXJhbmRzWzBdLCB0bXBdKQpAQCAtNTM1LDkgKzUxNSw5IEBA
IGRlZiBhcm1WN0xvd2VyTWlzcGxhY2VkQWRkcmVzc2VzKGxpc3QpCiAgICAgICAgIGlmIG5vZGUu
aXNfYT8gSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIHBvc3RJbnN0cnVjdGlvbnMgPSBbXQogICAg
ICAgICAgICAgY2FzZSBub2RlLm9wY29kZQotICAgICAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRw
IiwgImFkZGlzIiwgImFuZGkiLCAiYW5kcCIsICJsc2hpZnRpIiwgIm11bGkiLCAibmVnaSIsICJu
b3RpIiwgIm9yaSIsICJvcmlzIiwKLSAgICAgICAgICAgICAgICAib3JwIiwgInJzaGlmdGkiLCAi
dXJzaGlmdGkiLCAic3ViaSIsICJzdWJwIiwgInN1YmlzIiwgInhvcmkiLCAieG9ycCIsIC9eYmkv
LCAvXmJwLywgL15idGkvLAotICAgICAgICAgICAgICAgIC9eYnRwLywgL15jaS8sIC9eY3AvLCAv
XnRpLworICAgICAgICAgICAgd2hlbiAiYWRkaSIsICJhZGRwIiwgImFkZGlzIiwgImFuZGkiLCAi
YW5kcCIsICJsc2hpZnRpIiwgImxzaGlmdHAiLCAibXVsaSIsICJtdWxwIiwgIm5lZ2kiLAorICAg
ICAgICAgICAgICAgICJuZWdwIiwgIm5vdGkiLCAib3JpIiwgIm9yaXMiLCAib3JwIiwgInJzaGlm
dGkiLCAidXJzaGlmdGkiLCAicnNoaWZ0cCIsICJ1cnNoaWZ0cCIsICJzdWJpIiwKKyAgICAgICAg
ICAgICAgICAic3VicCIsICJzdWJpcyIsICJ4b3JpIiwgInhvcnAiLCAvXmJpLywgL15icC8sIC9e
YnRpLywgL15idHAvLCAvXmNpLywgL15jcC8sIC9edGkvCiAgICAgICAgICAgICAgICAgbmV3TGlz
dCA8PCBJbnN0cnVjdGlvbi5uZXcobm9kZS5jb2RlT3JpZ2luLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUub3Bjb2RlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFybVY3QXNSZWdpc3RlcnMobmV3TGlzdCwgcG9zdElu
c3RydWN0aW9ucywgbm9kZS5vcGVyYW5kcywgImkiKSkKQEAgLTY0OSw3ICs2MjksNyBAQCBlbmQK
ICMKIAogY2xhc3MgU2VxdWVuY2UKLSAgICBkZWYgbG93ZXJBUk12NworICAgIGRlZiBnZXRNb2Rp
ZmllZExpc3RBUk12NwogICAgICAgICBteUxpc3QgPSBAbGlzdAogICAgICAgICAKICAgICAgICAg
IyBWZXJpZnkgdGhhdCB3ZSB3aWxsIG9ubHkgc2VlIGluc3RydWN0aW9ucyBhbmQgbGFiZWxzLgpA
QCAtNjczLDEwICs2NTMsOCBAQCBjbGFzcyBTZXF1ZW5jZQogICAgICAgICBteUxpc3QgPSBhcm1W
N0xvd2VyUmVnaXN0ZXJSZXVzZShteUxpc3QpCiAgICAgICAgIG15TGlzdCA9IGFzc2lnblJlZ2lz
dGVyc1RvVGVtcG9yYXJpZXMobXlMaXN0LCA6Z3ByLCBBUk12N19FWFRSQV9HUFJTKQogICAgICAg
ICBteUxpc3QgPSBhc3NpZ25SZWdpc3RlcnNUb1RlbXBvcmFyaWVzKG15TGlzdCwgOmZwciwgQVJN
djdfRVhUUkFfRlBSUykKLSAgICAgICAgbXlMaXN0LmVhY2ggewotICAgICAgICAgICAgfCBub2Rl
IHwKLSAgICAgICAgICAgIG5vZGUubG93ZXIoIkFSTXY3IikKLSAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgcmV0dXJuIG15TGlzdAogICAgIGVuZAogZW5kCiAKQEAgLTc5MiwxMyArNzcwLDEz
IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJvcnJz
IiwgIm9ycnMiLCBvcGVyYW5kcykKICAgICAgICAgd2hlbiAieG9yaSIsICJ4b3JwIgogICAgICAg
ICAgICAgZW1pdEFybVY3Q29tcGFjdCgiZW9ycyIsICJlb3IiLCBvcGVyYW5kcykKLSAgICAgICAg
d2hlbiAibHNoaWZ0aSIKKyAgICAgICAgd2hlbiAibHNoaWZ0aSIsICJsc2hpZnRwIgogICAgICAg
ICAgICAgZW1pdEFybVY3Q29tcGFjdCgibHNscyIsICJsc2xzIiwgb3BlcmFuZHMpCi0gICAgICAg
IHdoZW4gInJzaGlmdGkiCisgICAgICAgIHdoZW4gInJzaGlmdGkiLCAicnNoaWZ0cCIKICAgICAg
ICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoImFzcnMiLCAiYXNycyIsIG9wZXJhbmRzKQotICAgICAg
ICB3aGVuICJ1cnNoaWZ0aSIKKyAgICAgICAgd2hlbiAidXJzaGlmdGkiLCAidXJzaGlmdHAiCiAg
ICAgICAgICAgICBlbWl0QXJtVjdDb21wYWN0KCJsc3JzIiwgImxzcnMiLCBvcGVyYW5kcykKLSAg
ICAgICAgd2hlbiAibXVsaSIKKyAgICAgICAgd2hlbiAibXVsaSIsICJtdWxwIgogICAgICAgICAg
ICAgaWYgb3BlcmFuZHMuc2l6ZSA9PSAyIG9yIG9wZXJhbmRzWzBdID09IG9wZXJhbmRzWzJdIG9y
IG9wZXJhbmRzWzFdID09IG9wZXJhbmRzWzJdCiAgICAgICAgICAgICAgICAgZW1pdEFybVY3KCJt
dWxzIiwgb3BlcmFuZHMpCiAgICAgICAgICAgICBlbHNlCkBAIC04MDcsMTEgKzc4NSwxMSBAQCBj
bGFzcyBJbnN0cnVjdGlvbgogICAgICAgICAgICAgZW5kCiAgICAgICAgIHdoZW4gInN1YmkiLCAi
c3VicCIsICJzdWJpcyIKICAgICAgICAgICAgIGVtaXRBcm1WN0NvbXBhY3QoInN1YnMiLCAic3Vi
cyIsIG9wZXJhbmRzKQotICAgICAgICB3aGVuICJuZWdpIgorICAgICAgICB3aGVuICJuZWdpIiwg
Im5lZ3AiCiAgICAgICAgICAgICAkYXNtLnB1dHMgInJzYnMgI3tvcGVyYW5kc1swXS5hcm1WN09w
ZXJhbmR9LCAje29wZXJhbmRzWzBdLmFybVY3T3BlcmFuZH0sIFwjMCIKICAgICAgICAgd2hlbiAi
bm90aSIKICAgICAgICAgICAgICRhc20ucHV0cyAibXZucyAje29wZXJhbmRzWzBdLmFybVY3T3Bl
cmFuZH0sICN7b3BlcmFuZHNbMF0uYXJtVjdPcGVyYW5kfSIKLSAgICAgICAgd2hlbiAibG9hZGki
LCAibG9hZHAiCisgICAgICAgIHdoZW4gImxvYWRpIiwgImxvYWRpcyIsICJsb2FkcCIKICAgICAg
ICAgICAgICRhc20ucHV0cyAibGRyICN7YXJtVjdGbGlwcGVkT3BlcmFuZHMob3BlcmFuZHMpfSIK
ICAgICAgICAgd2hlbiAic3RvcmVpIiwgInN0b3JlcCIKICAgICAgICAgICAgICRhc20ucHV0cyAi
c3RyICN7YXJtVjdPcGVyYW5kcyhvcGVyYW5kcyl9IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vYXNtLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL2FzbS5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL29mZmxpbmVhc20vYXNtLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcsNiArMTY3LDcg
QEAgRmlsZS5vcGVuKG91dHB1dEZsbm0sICJ3IikgewogICAgICAgICBmb3JTZXR0aW5ncyhjb21w
dXRlU2V0dGluZ3NDb21iaW5hdGlvbnMoYXN0KVtjb25maWdJbmRleF0sIGFzdCkgewogICAgICAg
ICAgICAgfCBjb25jcmV0ZVNldHRpbmdzLCBsb3dMZXZlbEFTVCwgYmFja2VuZCB8CiAgICAgICAg
ICAgICBsb3dMZXZlbEFTVCA9IGxvd0xldmVsQVNULnJlc29sdmUoKmJ1aWxkT2Zmc2V0c01hcChs
b3dMZXZlbEFTVCwgb2Zmc2V0c0xpc3QpKQorICAgICAgICAgICAgbG93TGV2ZWxBU1QudmFsaWRh
dGUKICAgICAgICAgICAgIGVtaXRDb2RlSW5Db25maWd1cmF0aW9uKGNvbmNyZXRlU2V0dGluZ3Ms
IGxvd0xldmVsQVNULCBiYWNrZW5kKSB7CiAgICAgICAgICAgICAgICAgJGFzbS5pbkFzbSB7CiAg
ICAgICAgICAgICAgICAgICAgIGxvd0xldmVsQVNULmxvd2VyKGJhY2tlbmQpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXN0LnJiCShyZXZpc2lvbiAxMTAzNDYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9hc3QucmIJKHdvcmtpbmcgY29weSkKQEAg
LTM4Myw2ICszODMsMTU3IEBAIGNsYXNzIE5lZ0ltbWVkaWF0ZSA8IE5vZGUKICAgICBlbmQKIGVu
ZAogCitjbGFzcyBPckltbWVkaWF0ZXMgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIgOmxlZnQsIDpy
aWdodAorICAgIAorICAgIGRlZiBpbml0aWFsaXplKGNvZGVPcmlnaW4sIGxlZnQsIHJpZ2h0KQor
ICAgICAgICBzdXBlcihjb2RlT3JpZ2luKQorICAgICAgICBAbGVmdCA9IGxlZnQKKyAgICAgICAg
QHJpZ2h0ID0gcmlnaHQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAg
W0BsZWZ0LCBAcmlnaHRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1hcENoaWxkcmVuCisgICAg
ICAgIE9ySW1tZWRpYXRlcy5uZXcoY29kZU9yaWdpbiwgKHlpZWxkIEBsZWZ0KSwgKHlpZWxkIEBy
aWdodCkpCisgICAgZW5kCisgICAgCisgICAgZGVmIGR1bXAKKyAgICAgICAgIigje2xlZnQuZHVt
cH0gfCAje3JpZ2h0LmR1bXB9KSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAg
ICAgICAgZmFsc2UKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNl
CisgICAgZW5kCisgICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQorICAgIGVu
ZAorICAgIAorICAgIGRlZiByZWdpc3Rlcj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKK2VuZAor
CitjbGFzcyBBbmRJbW1lZGlhdGVzIDwgTm9kZQorICAgIGF0dHJfcmVhZGVyIDpsZWZ0LCA6cmln
aHQKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShjb2RlT3JpZ2luLCBsZWZ0LCByaWdodCkKKyAg
ICAgICAgc3VwZXIoY29kZU9yaWdpbikKKyAgICAgICAgQGxlZnQgPSBsZWZ0CisgICAgICAgIEBy
aWdodCA9IHJpZ2h0CisgICAgZW5kCisgICAgCisgICAgZGVmIGNoaWxkcmVuCisgICAgICAgIFtA
bGVmdCwgQHJpZ2h0XQorICAgIGVuZAorICAgIAorICAgIGRlZiBtYXBDaGlsZHJlbgorICAgICAg
ICBBbmRJbW1lZGlhdGVzLm5ldyhjb2RlT3JpZ2luLCAoeWllbGQgQGxlZnQpLCAoeWllbGQgQHJp
Z2h0KSkKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgZHVtcAorICAgICAgICAiKCN7bGVmdC5kdW1w
fSAmICN7cmlnaHQuZHVtcH0pIgorICAgIGVuZAorICAgIAorICAgIGRlZiBhZGRyZXNzPworICAg
ICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBsYWJlbD8KKyAgICAgICAgZmFsc2UK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICB0cnVlCisgICAgZW5k
CisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICBmYWxzZQorICAgIGVuZAorZW5kCisK
K2NsYXNzIFhvckltbWVkaWF0ZXMgPCBOb2RlCisgICAgYXR0cl9yZWFkZXIgOmxlZnQsIDpyaWdo
dAorICAgIAorICAgIGRlZiBpbml0aWFsaXplKGNvZGVPcmlnaW4sIGxlZnQsIHJpZ2h0KQorICAg
ICAgICBzdXBlcihjb2RlT3JpZ2luKQorICAgICAgICBAbGVmdCA9IGxlZnQKKyAgICAgICAgQHJp
Z2h0ID0gcmlnaHQKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgY2hpbGRyZW4KKyAgICAgICAgW0Bs
ZWZ0LCBAcmlnaHRdCisgICAgZW5kCisgICAgCisgICAgZGVmIG1hcENoaWxkcmVuCisgICAgICAg
IFhvckltbWVkaWF0ZXMubmV3KGNvZGVPcmlnaW4sICh5aWVsZCBAbGVmdCksICh5aWVsZCBAcmln
aHQpKQorICAgIGVuZAorICAgIAorICAgIGRlZiBkdW1wCisgICAgICAgICIoI3tsZWZ0LmR1bXB9
IF4gI3tyaWdodC5kdW1wfSkiCisgICAgZW5kCisgICAgCisgICAgZGVmIGFkZHJlc3M/CisgICAg
ICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPworICAgICAgICBmYWxzZQor
ICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIHRydWUKKyAgICBlbmQK
KyAgICAKKyAgICBkZWYgcmVnaXN0ZXI/CisgICAgICAgIGZhbHNlCisgICAgZW5kCitlbmQKKwor
Y2xhc3MgQml0bm90SW1tZWRpYXRlIDwgTm9kZQorICAgIGF0dHJfcmVhZGVyIDpjaGlsZAorICAg
IAorICAgIGRlZiBpbml0aWFsaXplKGNvZGVPcmlnaW4sIGNoaWxkKQorICAgICAgICBzdXBlcihj
b2RlT3JpZ2luKQorICAgICAgICBAY2hpbGQgPSBjaGlsZAorICAgIGVuZAorICAgIAorICAgIGRl
ZiBjaGlsZHJlbgorICAgICAgICBbQGNoaWxkXQorICAgIGVuZAorICAgIAorICAgIGRlZiBtYXBD
aGlsZHJlbgorICAgICAgICBCaXRub3RJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sICh5aWVsZCBA
Y2hpbGQpKQorICAgIGVuZAorICAgIAorICAgIGRlZiBkdW1wCisgICAgICAgICIofiN7QGNoaWxk
LmR1bXB9KSIKKyAgICBlbmQKKyAgICAKKyAgICBkZWYgYWRkcmVzcz8KKyAgICAgICAgZmFsc2UK
KyAgICBlbmQKKyAgICAKKyAgICBkZWYgbGFiZWw/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisg
ICAgCisgICAgZGVmIGltbWVkaWF0ZT8KKyAgICAgICAgdHJ1ZQorICAgIGVuZAorICAgIAorICAg
IGRlZiByZWdpc3Rlcj8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKK2VuZAorCiBjbGFzcyBSZWdp
c3RlcklEIDwgTm9DaGlsZHJlbgogICAgIGF0dHJfcmVhZGVyIDpuYW1lCiAgICAgCkBAIC00NTks
NiArNjEwLDI4IEBAIGNsYXNzIEZQUmVnaXN0ZXJJRCA8IE5vQ2hpbGRyZW4KICAgICBlbmQKIGVu
ZAogCitjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCisgICAgZGVmIGluaXRpYWxp
emUobmFtZSkKKyAgICAgICAgQG5hbWUgPSBuYW1lCisgICAgZW5kCisgICAgCisgICAgZGVmIGFk
ZHJlc3M/CisgICAgICAgIGZhbHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIGxhYmVsPworICAg
ICAgICBmYWxzZQorICAgIGVuZAorICAgIAorICAgIGRlZiBpbW1lZGlhdGU/CisgICAgICAgIGZh
bHNlCisgICAgZW5kCisgICAgCisgICAgZGVmIHJlZ2lzdGVyPworICAgICAgICB0cnVlCisgICAg
ZW5kCitlbmQKKwogY2xhc3MgVmFyaWFibGUgPCBOb0NoaWxkcmVuCiAgICAgYXR0cl9yZWFkZXIg
Om5hbWUKICAgICAKQEAgLTQ3OSw2ICs2NTIsMTAgQEAgY2xhc3MgVmFyaWFibGUgPCBOb0NoaWxk
cmVuCiAgICAgZGVmIGR1bXAKICAgICAgICAgbmFtZQogICAgIGVuZAorICAgIAorICAgIGRlZiBp
bnNwZWN0CisgICAgICAgICI8dmFyaWFibGUgI3tuYW1lfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9
PiIKKyAgICBlbmQKIGVuZAogCiBjbGFzcyBBZGRyZXNzIDwgTm9kZQpAQCAtNzU3LDYgKzkzNCwx
MCBAQCBjbGFzcyBMYWJlbFJlZmVyZW5jZSA8IE5vZGUKICAgICBkZWYgbGFiZWw/CiAgICAgICAg
IHRydWUKICAgICBlbmQKKyAgICAKKyAgICBkZWYgaW1tZWRpYXRlPworICAgICAgICBmYWxzZQor
ICAgIGVuZAogZW5kCiAKIGNsYXNzIExvY2FsTGFiZWxSZWZlcmVuY2UgPCBOb0NoaWxkcmVuCkBA
IC03OTAsNiArOTcxLDEwIEBAIGNsYXNzIExvY2FsTGFiZWxSZWZlcmVuY2UgPCBOb0NoaWxkcmVu
CiAgICAgZGVmIGxhYmVsPwogICAgICAgICB0cnVlCiAgICAgZW5kCisgICAgCisgICAgZGVmIGlt
bWVkaWF0ZT8KKyAgICAgICAgZmFsc2UKKyAgICBlbmQKIGVuZAogCiBjbGFzcyBTZXF1ZW5jZSA8
IE5vZGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRzLnJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2JhY2tlbmRz
LnJiCShyZXZpc2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFz
bS9iYWNrZW5kcy5yYgkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsMTIgQEAgQkFDS0VORF9Q
QVRURVJOID0gUmVnZXhwLm5ldygnXFxBKCcgKyBCQQogCiBjbGFzcyBOb2RlCiAgICAgZGVmIGxv
d2VyKG5hbWUpCi0gICAgICAgICRhY3RpdmVCYWNrZW5kID0gbmFtZQotICAgICAgICBzZW5kKCJs
b3dlciIgKyBuYW1lKQorICAgICAgICBiZWdpbgorICAgICAgICAgICAgJGFjdGl2ZUJhY2tlbmQg
PSBuYW1lCisgICAgICAgICAgICBzZW5kKCJsb3dlciIgKyBuYW1lKQorICAgICAgICByZXNjdWUg
PT4gZQorICAgICAgICAgICAgcmFpc2UgIkdvdCBlcnJvciAje2V9IGF0ICN7Y29kZU9yaWdpblN0
cmluZ30iCisgICAgICAgIGVuZAogICAgIGVuZAogZW5kCiAKQEAgLTg3LDcgKzkxLDEzIEBAIGVu
ZAogY2xhc3MgU2VxdWVuY2UKICAgICBkZWYgbG93ZXIobmFtZSkKICAgICAgICAgJGFjdGl2ZUJh
Y2tlbmQgPSBuYW1lCi0gICAgICAgIGlmIHJlc3BvbmRfdG8/ICJsb3dlciN7bmFtZX0iCisgICAg
ICAgIGlmIHJlc3BvbmRfdG8/ICJnZXRNb2RpZmllZExpc3Qje25hbWV9IgorICAgICAgICAgICAg
bmV3TGlzdCA9IHNlbmQoImdldE1vZGlmaWVkTGlzdCN7bmFtZX0iKQorICAgICAgICAgICAgbmV3
TGlzdC5lYWNoIHsKKyAgICAgICAgICAgICAgICB8IG5vZGUgfAorICAgICAgICAgICAgICAgIG5v
ZGUubG93ZXIobmFtZSkKKyAgICAgICAgICAgIH0KKyAgICAgICAgZWxzaWYgcmVzcG9uZF90bz8g
Imxvd2VyI3tuYW1lfSIKICAgICAgICAgICAgIHNlbmQoImxvd2VyI3tuYW1lfSIpCiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIEBsaXN0LmVhY2ggewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9vZmZsaW5lYXNtL2luc3RydWN0aW9ucy5yYgkocmV2aXNpb24gMTEwMzQ2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vaW5zdHJ1Y3Rpb25zLnJiCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCwxNSArMzAsMjAgQEAgTUFDUk9fSU5TVFJVQ1RJT05TID0KICAgICAg
ImFkZGkiLAogICAgICAiYW5kaSIsCiAgICAgICJsc2hpZnRpIiwKKyAgICAgImxzaGlmdHAiLAog
ICAgICAibXVsaSIsCiAgICAgICJuZWdpIiwKKyAgICAgIm5lZ3AiLAogICAgICAibm90aSIsCiAg
ICAgICJvcmkiLAogICAgICAicnNoaWZ0aSIsCiAgICAgICJ1cnNoaWZ0aSIsCisgICAgICJyc2hp
ZnRwIiwKKyAgICAgInVyc2hpZnRwIiwKICAgICAgInN1YmkiLAogICAgICAieG9yaSIsCiAgICAg
ICJsb2FkaSIsCisgICAgICJsb2FkaXMiLAogICAgICAibG9hZGIiLAogICAgICAibG9hZGJzIiwK
ICAgICAgImxvYWRoIiwKQEAgLTE1OSw2ICsxNjQsNyBAQCBNQUNST19JTlNUUlVDVElPTlMgPQog
ICAgICAiYnBsdCIsCiAgICAgICJicGx0ZXEiLAogICAgICAiYWRkcCIsCisgICAgICJtdWxwIiwK
ICAgICAgImFuZHAiLAogICAgICAib3JwIiwKICAgICAgInN1YnAiLApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgkocmV2aXNpb24gMTEwMzQ2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCSh3b3JraW5nIGNvcHkp
CkBAIC0xMDQsNyArMTA0LDcgQEAgZGVmIGxleChzdHIsIGZpbGVOYW1lKQogICAgICAgICAgICAg
cmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciks
ICQmKQogICAgICAgICB3aGVuIC9cQTo6LwogICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5l
dyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciksICQmKQotICAgICAgICB3aGVu
IC9cQVs6LFwoXClcW1xdPVwrXC0qXS8KKyAgICAgICAgd2hlbiAvXEFbOixcKFwpXFtcXT1cK1wt
flx8Jl4qXS8KICAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXco
ZmlsZU5hbWUsIGxpbmVOdW1iZXIpLCAkJikKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFp
c2UgIkxleGVyIGVycm9yIGF0ICN7Q29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIp
LnRvX3N9LCB1bmV4cGVjdGVkIHNlcXVlbmNlICN7c3RyWzAuLjIwXS5pbnNwZWN0fSIKQEAgLTMy
Miw2ICszMjIsOSBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgaWYgQHRva2Vuc1tAaWR4XSA9PSAi
LSIKICAgICAgICAgICAgIEBpZHggKz0gMQogICAgICAgICAgICAgTmVnSW1tZWRpYXRlLm5ldyhA
dG9rZW5zW0BpZHggLSAxXS5jb2RlT3JpZ2luLCBwYXJzZUV4cHJlc3Npb25BdG9tKQorICAgICAg
ICBlbHNpZiBAdG9rZW5zW0BpZHhdID09ICJ+IgorICAgICAgICAgICAgQGlkeCArPSAxCisgICAg
ICAgICAgICBCaXRub3RJbW1lZGlhdGUubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVPcmlnaW4s
IHBhcnNlRXhwcmVzc2lvbkF0b20pCiAgICAgICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gIigi
CiAgICAgICAgICAgICBAaWR4ICs9IDEKICAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVz
c2lvbgpAQCAtMzY1LDEwICszNjgsMTAgQEAgY2xhc3MgUGFyc2VyCiAgICAgZW5kCiAgICAgCiAg
ICAgZGVmIGNvdWxkQmVFeHByZXNzaW9uCi0gICAgICAgIEB0b2tlbnNbQGlkeF0gPT0gIi0iIG9y
IEB0b2tlbnNbQGlkeF0gPT0gInNpemVvZiIgb3IgaXNJbnRlZ2VyKEB0b2tlbnNbQGlkeF0pIG9y
IGlzVmFyaWFibGUoQHRva2Vuc1tAaWR4XSkgb3IgQHRva2Vuc1tAaWR4XSA9PSAiKCIKKyAgICAg
ICAgQHRva2Vuc1tAaWR4XSA9PSAiLSIgb3IgQHRva2Vuc1tAaWR4XSA9PSAifiIgb3IgQHRva2Vu
c1tAaWR4XSA9PSAic2l6ZW9mIiBvciBpc0ludGVnZXIoQHRva2Vuc1tAaWR4XSkgb3IgaXNWYXJp
YWJsZShAdG9rZW5zW0BpZHhdKSBvciBAdG9rZW5zW0BpZHhdID09ICIoIgogICAgIGVuZAogICAg
IAotICAgIGRlZiBwYXJzZUV4cHJlc3Npb24KKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uQWRkCiAg
ICAgICAgIHNraXBOZXdMaW5lCiAgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbk11bAog
ICAgICAgICB3aGlsZSBAdG9rZW5zW0BpZHhdID09ICIrIiBvciBAdG9rZW5zW0BpZHhdID09ICIt
IgpAQCAtMzg1LDYgKzM4OCwzMyBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAgcmVzdWx0CiAgICAg
ZW5kCiAgICAgCisgICAgZGVmIHBhcnNlRXhwcmVzc2lvbkFuZAorICAgICAgICBza2lwTmV3TGlu
ZQorICAgICAgICByZXN1bHQgPSBwYXJzZUV4cHJlc3Npb25BZGQKKyAgICAgICAgd2hpbGUgQHRv
a2Vuc1tAaWR4XSA9PSAiJiIKKyAgICAgICAgICAgIEBpZHggKz0gMQorICAgICAgICAgICAgcmVz
dWx0ID0gQW5kSW1tZWRpYXRlcy5uZXcoQHRva2Vuc1tAaWR4IC0gMV0uY29kZU9yaWdpbiwgcmVz
dWx0LCBwYXJzZUV4cHJlc3Npb25BZGQpCisgICAgICAgIGVuZAorICAgICAgICByZXN1bHQKKyAg
ICBlbmQKKyAgICAKKyAgICBkZWYgcGFyc2VFeHByZXNzaW9uCisgICAgICAgIHNraXBOZXdMaW5l
CisgICAgICAgIHJlc3VsdCA9IHBhcnNlRXhwcmVzc2lvbkFuZAorICAgICAgICB3aGlsZSBAdG9r
ZW5zW0BpZHhdID09ICJ8IiBvciBAdG9rZW5zW0BpZHhdID09ICJeIgorICAgICAgICAgICAgaWYg
QHRva2Vuc1tAaWR4XSA9PSAifCIKKyAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSBPckltbWVkaWF0ZXMubmV3KEB0b2tlbnNbQGlkeCAtIDFdLmNvZGVP
cmlnaW4sIHJlc3VsdCwgcGFyc2VFeHByZXNzaW9uQW5kKQorICAgICAgICAgICAgZWxzaWYgQHRv
a2Vuc1tAaWR4XSA9PSAiXiIKKyAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBYb3JJbW1lZGlhdGVzLm5ldyhAdG9rZW5zW0BpZHggLSAxXS5jb2RlT3Jp
Z2luLCByZXN1bHQsIHBhcnNlRXhwcmVzc2lvbkFuZCkKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZW5kCisgICAgICAgIGVuZAorICAgICAgICBy
ZXN1bHQKKyAgICBlbmQKKyAgICAKICAgICBkZWYgcGFyc2VPcGVyYW5kKGNvbW1lbnQpCiAgICAg
ICAgIHNraXBOZXdMaW5lCiAgICAgICAgIGlmIGNvdWxkQmVFeHByZXNzaW9uCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcmVnaXN0ZXJzLnJiCShyZXZpc2lvbiAx
MTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9yZWdpc3RlcnMucmIJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDEzIEBAIEdQUlMgPQogICAgICAicjAiLAogICAg
ICAicjEiLAogICAgICAic3AiLAotICAgICAibHIiCisgICAgICJsciIsCisgICAgIAorICAgICAj
IDY0LWJpdCBvbmx5IHJlZ2lzdGVyczoKKyAgICAgInQ1IiwKKyAgICAgInQ2IiwgICMgcjEwCisg
ICAgICJjc3IxIiwgICMgcjE0LCB0YWcgdHlwZSBudW1iZXIgcmVnaXN0ZXIKKyAgICAgImNzcjIi
ICAgIyByMTUsIHRhZyBtYXNrIHJlZ2lzdGVyCiAgICAgXQogCiBGUFJTID0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3RyYW5zZm9ybS5yYgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS90cmFuc2Zvcm0ucmIJKHJldmlzaW9uIDEx
MDM0NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3RyYW5zZm9ybS5yYgko
d29ya2luZyBjb3B5KQpAQCAtMzI4LDYgKzMyOCw0NCBAQCBjbGFzcyBOZWdJbW1lZGlhdGUKICAg
ICBlbmQKIGVuZAogCitjbGFzcyBPckltbWVkaWF0ZXMKKyAgICBkZWYgZm9sZAorICAgICAgICBA
bGVmdCA9IEBsZWZ0LmZvbGQKKyAgICAgICAgQHJpZ2h0ID0gQHJpZ2h0LmZvbGQKKyAgICAgICAg
cmV0dXJuIHNlbGYgdW5sZXNzIEBsZWZ0LmlzX2E/IEltbWVkaWF0ZQorICAgICAgICByZXR1cm4g
c2VsZiB1bmxlc3MgQHJpZ2h0LmlzX2E/IEltbWVkaWF0ZQorICAgICAgICBJbW1lZGlhdGUubmV3
KGNvZGVPcmlnaW4sIEBsZWZ0LnZhbHVlIHwgQHJpZ2h0LnZhbHVlKQorICAgIGVuZAorZW5kCisK
K2NsYXNzIEFuZEltbWVkaWF0ZXMKKyAgICBkZWYgZm9sZAorICAgICAgICBAbGVmdCA9IEBsZWZ0
LmZvbGQKKyAgICAgICAgQHJpZ2h0ID0gQHJpZ2h0LmZvbGQKKyAgICAgICAgcmV0dXJuIHNlbGYg
dW5sZXNzIEBsZWZ0LmlzX2E/IEltbWVkaWF0ZQorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3Mg
QHJpZ2h0LmlzX2E/IEltbWVkaWF0ZQorICAgICAgICBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4s
IEBsZWZ0LnZhbHVlICYgQHJpZ2h0LnZhbHVlKQorICAgIGVuZAorZW5kCisKK2NsYXNzIFhvcklt
bWVkaWF0ZXMKKyAgICBkZWYgZm9sZAorICAgICAgICBAbGVmdCA9IEBsZWZ0LmZvbGQKKyAgICAg
ICAgQHJpZ2h0ID0gQHJpZ2h0LmZvbGQKKyAgICAgICAgcmV0dXJuIHNlbGYgdW5sZXNzIEBsZWZ0
LmlzX2E/IEltbWVkaWF0ZQorICAgICAgICByZXR1cm4gc2VsZiB1bmxlc3MgQHJpZ2h0LmlzX2E/
IEltbWVkaWF0ZQorICAgICAgICBJbW1lZGlhdGUubmV3KGNvZGVPcmlnaW4sIEBsZWZ0LnZhbHVl
IF4gQHJpZ2h0LnZhbHVlKQorICAgIGVuZAorZW5kCisKK2NsYXNzIEJpdG5vdEltbWVkaWF0ZQor
ICAgIGRlZiBmb2xkCisgICAgICAgIEBjaGlsZCA9IEBjaGlsZC5mb2xkCisgICAgICAgIHJldHVy
biBzZWxmIHVubGVzcyBAY2hpbGQuaXNfYT8gSW1tZWRpYXRlCisgICAgICAgIEltbWVkaWF0ZS5u
ZXcoY29kZU9yaWdpbiwgfkBjaGlsZC52YWx1ZSkKKyAgICBlbmQKK2VuZAorCiAjCiAjIG5vZGUu
cmVzb2x2ZUFmdGVyU2V0dGluZ3Mob2Zmc2V0cywgc2l6ZXMpCiAjCkBAIC0zNDAsMyArMzc4LDk3
IEBAIGNsYXNzIE5vZGUKICAgICBlbmQKIGVuZAogCisjCisjIG5vZGUudmFsaWRhdGUKKyMKKyMg
Q2hlY2tzIHRoYXQgdGhlIG5vZGUgaXMgcmVhZHkgZm9yIGJhY2tlbmQgY29tcGlsYXRpb24uCisj
CisKK2NsYXNzIE5vZGUKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgcmFpc2UgIlVucmVzb2x2
ZWQgI3tkdW1wfSBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgorICAgIGVuZAorICAgIAorICAgIGRl
ZiB2YWxpZGF0ZUNoaWxkcmVuCisgICAgICAgIGNoaWxkcmVuLmVhY2ggeworICAgICAgICAgICAg
fCBub2RlIHwKKyAgICAgICAgICAgIG5vZGUudmFsaWRhdGUKKyAgICAgICAgfQorICAgIGVuZAor
ZW5kCisKK2NsYXNzIFNlcXVlbmNlCisgICAgZGVmIHZhbGlkYXRlCisgICAgICAgIHZhbGlkYXRl
Q2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFzcyBJbW1lZGlhdGUKKyAgICBkZWYgdmFsaWRh
dGUKKyAgICBlbmQKK2VuZAorCitjbGFzcyBSZWdpc3RlcklECisgICAgZGVmIHZhbGlkYXRlCisg
ICAgZW5kCitlbmQKKworY2xhc3MgRlBSZWdpc3RlcklECisgICAgZGVmIHZhbGlkYXRlCisgICAg
ZW5kCitlbmQKKworY2xhc3MgQWRkcmVzcworICAgIGRlZiB2YWxpZGF0ZQorICAgICAgICB2YWxp
ZGF0ZUNoaWxkcmVuCisgICAgZW5kCitlbmQKKworY2xhc3MgQmFzZUluZGV4CisgICAgZGVmIHZh
bGlkYXRlCisgICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFzcyBB
YnNvbHV0ZUFkZHJlc3MKKyAgICBkZWYgdmFsaWRhdGUKKyAgICAgICAgdmFsaWRhdGVDaGlsZHJl
bgorICAgIGVuZAorZW5kCisKK2NsYXNzIEluc3RydWN0aW9uCisgICAgZGVmIHZhbGlkYXRlCisg
ICAgICAgIHZhbGlkYXRlQ2hpbGRyZW4KKyAgICBlbmQKK2VuZAorCitjbGFzcyBFcnJvcgorICAg
IGRlZiB2YWxpZGF0ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIExhYmVsCisgICAgZGVmIHZhbGlk
YXRlCisgICAgZW5kCitlbmQKKworY2xhc3MgTG9jYWxMYWJlbAorICAgIGRlZiB2YWxpZGF0ZQor
ICAgIGVuZAorZW5kCisKK2NsYXNzIExhYmVsUmVmZXJlbmNlCisgICAgZGVmIHZhbGlkYXRlCisg
ICAgZW5kCitlbmQKKworY2xhc3MgTG9jYWxMYWJlbFJlZmVyZW5jZQorICAgIGRlZiB2YWxpZGF0
ZQorICAgIGVuZAorZW5kCisKK2NsYXNzIFNraXAKKyAgICBkZWYgdmFsaWRhdGUKKyAgICBlbmQK
K2VuZAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCShyZXZp
c2lvbiAxMTAzNDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYucmIJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDEzICszMiwzNyBAQCBkZWYgaXNYNjQKICAgICBlbmQKIGVu
ZAogCitjbGFzcyBTcGVjaWFsUmVnaXN0ZXIgPCBOb0NoaWxkcmVuCisgICAgZGVmIHg4Nk9wZXJh
bmQoa2luZCkKKyAgICAgICAgcmFpc2UgdW5sZXNzIEBuYW1lID1+IC9eci8KKyAgICAgICAgcmFp
c2UgdW5sZXNzIGlzWDY0CisgICAgICAgIGNhc2Uga2luZAorICAgICAgICB3aGVuIDpoYWxmCisg
ICAgICAgICAgICAiJSIgKyBAbmFtZSArICJ3IgorICAgICAgICB3aGVuIDppbnQKKyAgICAgICAg
ICAgICIlIiArIEBuYW1lICsgImQiCisgICAgICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgIiUi
ICsgQG5hbWUKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZW5kCisg
ICAgZW5kCisgICAgZGVmIHg4NkNhbGxPcGVyYW5kKGtpbmQpCisgICAgICAgICIqI3t4ODZPcGVy
YW5kKGtpbmQpfSIKKyAgICBlbmQKK2VuZAorCitYNjRfU0NSQVRDSF9SRUdJU1RFUiA9IFNwZWNp
YWxSZWdpc3Rlci5uZXcoInIxMSIpCisKIGNsYXNzIFJlZ2lzdGVySUQKICAgICBkZWYgc3VwcG9y
dHM4Qml0T25YODYKICAgICAgICAgY2FzZSBuYW1lCiAgICAgICAgIHdoZW4gInQwIiwgImEwIiwg
InIwIiwgInQxIiwgImExIiwgInIxIiwgInQyIiwgInQzIgogICAgICAgICAgICAgdHJ1ZQotICAg
ICAgICB3aGVuICJ0NCIsICJjZnIiCisgICAgICAgIHdoZW4gImNmciIsICJ0dG5yIiwgInRtciIK
ICAgICAgICAgICAgIGZhbHNlCisgICAgICAgIHdoZW4gInQ0IiwgInQ1IgorICAgICAgICAgICAg
aXNYNjQKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZW5kCkBAIC0x
MTIsMTcgKzEzNiwzMCBAQCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgICAgICAgICAgcmFpc2UK
ICAgICAgICAgICAgIGVuZAogICAgICAgICB3aGVuICJjZnIiCi0gICAgICAgICAgICBjYXNlIGtp
bmQKLSAgICAgICAgICAgIHdoZW4gOmJ5dGUKLSAgICAgICAgICAgICAgICAiJWRpbCIKLSAgICAg
ICAgICAgIHdoZW4gOmhhbGYKLSAgICAgICAgICAgICAgICAiJWRpIgotICAgICAgICAgICAgd2hl
biA6aW50Ci0gICAgICAgICAgICAgICAgIiVlZGkiCi0gICAgICAgICAgICB3aGVuIDpwdHIKLSAg
ICAgICAgICAgICAgICBpc1g2NCA/ICIlcmRpIiA6ICIlZWRpIgorICAgICAgICAgICAgaWYgaXNY
NjQKKyAgICAgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgICAgICB3aGVuIDpoYWxm
CisgICAgICAgICAgICAgICAgICAgICIlcjEzdyIKKyAgICAgICAgICAgICAgICB3aGVuIDppbnQK
KyAgICAgICAgICAgICAgICAgICAgIiVyMTNkIgorICAgICAgICAgICAgICAgIHdoZW4gOnB0cgor
ICAgICAgICAgICAgICAgICAgICAiJXIxMyIKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgZW5kCiAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBjYXNlIGtpbmQKKyAgICAg
ICAgICAgICAgICB3aGVuIDpieXRlCisgICAgICAgICAgICAgICAgICAgICIlZGlsIgorICAgICAg
ICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAgICAgICAgIiVkaSIKKyAgICAgICAg
ICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAgICAgICAgIiVlZGkiCisgICAgICAgICAg
ICAgICAgd2hlbiA6cHRyCisgICAgICAgICAgICAgICAgICAgICIlZWRpIgorICAgICAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBlbmQK
ICAgICAgICAgICAgIGVuZAogICAgICAgICB3aGVuICJzcCIKICAgICAgICAgICAgIGNhc2Uga2lu
ZApAQCAtMTM3LDYgKzE3NCw0OCBAQCBjbGFzcyBSZWdpc3RlcklECiAgICAgICAgICAgICBlbHNl
CiAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVuZAorICAgICAgICB3aGVuICJ0
NSIKKyAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0IFg4NiBh
dCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNhc2Uga2lu
ZAorICAgICAgICAgICAgd2hlbiA6Ynl0ZQorICAgICAgICAgICAgICAgICIlZGlsIgorICAgICAg
ICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICIlZGkiCisgICAgICAgICAgICB3aGVu
IDppbnQKKyAgICAgICAgICAgICAgICAiJWVkaSIKKyAgICAgICAgICAgIHdoZW4gOnB0cgorICAg
ICAgICAgICAgICAgICIlcmRpIgorICAgICAgICAgICAgZW5kCisgICAgICAgIHdoZW4gInQ2Igor
ICAgICAgICAgICAgcmFpc2UgIkNhbm5vdCB1c2UgI3tuYW1lfSBpbiAzMi1iaXQgWDg2IGF0ICN7
Y29kZU9yaWdpblN0cmluZ30iIHVubGVzcyBpc1g2NAorICAgICAgICAgICAgY2FzZSBraW5kCisg
ICAgICAgICAgICB3aGVuIDpoYWxmCisgICAgICAgICAgICAgICAgIiVyMTB3IgorICAgICAgICAg
ICAgd2hlbiA6aW50CisgICAgICAgICAgICAgICAgIiVyMTBkIgorICAgICAgICAgICAgd2hlbiA6
cHRyCisgICAgICAgICAgICAgICAgIiVyMTAiCisgICAgICAgICAgICBlbmQKKyAgICAgICAgd2hl
biAiY3NyMSIKKyAgICAgICAgICAgIHJhaXNlICJDYW5ub3QgdXNlICN7bmFtZX0gaW4gMzItYml0
IFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IiB1bmxlc3MgaXNYNjQKKyAgICAgICAgICAgIGNh
c2Uga2luZAorICAgICAgICAgICAgd2hlbiA6aGFsZgorICAgICAgICAgICAgICAgICIlcjE0dyIK
KyAgICAgICAgICAgIHdoZW4gOmludAorICAgICAgICAgICAgICAgICIlcjE0ZCIKKyAgICAgICAg
ICAgIHdoZW4gOnB0cgorICAgICAgICAgICAgICAgICIlcjE0IgorICAgICAgICAgICAgZW5kCisg
ICAgICAgIHdoZW4gImNzcjIiCisgICAgICAgICAgICByYWlzZSAiQ2Fubm90IHVzZSAje25hbWV9
IGluIDMyLWJpdCBYODYgYXQgI3tjb2RlT3JpZ2luU3RyaW5nfSIgdW5sZXNzIGlzWDY0CisgICAg
ICAgICAgICBjYXNlIGtpbmQKKyAgICAgICAgICAgIHdoZW4gOmhhbGYKKyAgICAgICAgICAgICAg
ICAiJXIxNXciCisgICAgICAgICAgICB3aGVuIDppbnQKKyAgICAgICAgICAgICAgICAiJXIxNWQi
CisgICAgICAgICAgICB3aGVuIDpwdHIKKyAgICAgICAgICAgICAgICAiJXIxNSIKKyAgICAgICAg
ICAgIGVuZAogICAgICAgICBlbHNlCiAgICAgICAgICAgICByYWlzZSAiQmFkIHJlZ2lzdGVyICN7
bmFtZX0gZm9yIFg4NiBhdCAje2NvZGVPcmlnaW5TdHJpbmd9IgogICAgICAgICBlbmQKQEAgLTE3
Miw2ICsyNTEsMTMgQEAgY2xhc3MgRlBSZWdpc3RlcklECiBlbmQKIAogY2xhc3MgSW1tZWRpYXRl
CisgICAgZGVmIHZhbGlkWDg2SW1tZWRpYXRlPworICAgICAgICBpZiBpc1g2NAorICAgICAgICAg
ICAgdmFsdWUgPj0gLTB4ODAwMDAwMDAgYW5kIHZhbHVlIDw9IDB4N2ZmZmZmZmYKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdHJ1ZQorICAgICAgICBlbmQKKyAgICBlbmQKICAgICBkZWYgeDg2
T3BlcmFuZChraW5kKQogICAgICAgICAiJCN7dmFsdWV9IgogICAgIGVuZApAQCAtMjEwLDcgKzI5
Niw3IEBAIGNsYXNzIEJhc2VJbmRleAogICAgIGVuZAogCiAgICAgZGVmIHg4NkNhbGxPcGVyYW5k
KGtpbmQpCi0gICAgICAgICIqI3t4ODZvcGVyYW5kKGtpbmQpfSIKKyAgICAgICAgIioje3g4Nk9w
ZXJhbmQoa2luZCl9IgogICAgIGVuZAogZW5kCiAKQEAgLTI0NCw2ICszMzAsNDcgQEAgY2xhc3Mg
TG9jYWxMYWJlbFJlZmVyZW5jZQogICAgIGVuZAogZW5kCiAKK2NsYXNzIFNlcXVlbmNlCisgICAg
ZGVmIGdldE1vZGlmaWVkTGlzdFg4Nl82NAorICAgICAgICBuZXdMaXN0ID0gW10KKyAgICAgICAg
CisgICAgICAgIEBsaXN0LmVhY2ggeworICAgICAgICAgICAgfCBub2RlIHwKKyAgICAgICAgICAg
IG5ld05vZGUgPSBub2RlCisgICAgICAgICAgICBpZiBub2RlLmlzX2E/IEluc3RydWN0aW9uCisg
ICAgICAgICAgICAgICAgdW5sZXNzIG5vZGUub3Bjb2RlID09ICJtb3ZlIgorICAgICAgICAgICAg
ICAgICAgICB1c2VkU2NyYXRjaCA9IGZhbHNlCisgICAgICAgICAgICAgICAgICAgIG5ld09wZXJh
bmRzID0gbm9kZS5vcGVyYW5kcy5tYXAgeworICAgICAgICAgICAgICAgICAgICAgICAgfCBvcGVy
YW5kIHwKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9wZXJhbmQuaW1tZWRpYXRlPyBhbmQg
bm90IG9wZXJhbmQudmFsaWRYODZJbW1lZGlhdGU/CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgdXNlZFNjcmF0Y2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
IkF0dGVtcHQgdG8gdXNlIHNjcmF0Y2ggcmVnaXN0ZXIgdHdpY2UgYXQgI3tvcGVyYW5kLmNvZGVP
cmlnaW5TdHJpbmd9IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5ld0xpc3QgPDwgSW5zdHJ1Y3Rpb24ubmV3KG9wZXJhbmQuY29k
ZU9yaWdpbiwgIm1vdmUiLCBbb3BlcmFuZCwgWDY0X1NDUkFUQ0hfUkVHSVNURVJdKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVzZWRTY3JhdGNoID0gdHJ1ZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFg2NF9TQ1JBVENIX1JFR0lTVEVSCisgICAgICAgICAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZAorICAgICAgICAgICAg
ICAgICAgICAgICAgZW5kCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgbmV3Tm9kZSA9IEluc3RydWN0aW9uLm5ldyhub2RlLmNvZGVPcmlnaW4sIG5vZGUub3Bjb2Rl
LCBuZXdPcGVyYW5kcykKKyAgICAgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICB1bmxlc3Mgbm9kZS5pc19hPyBMYWJlbCBvcgorICAgICAgICAgICAgICAg
ICAgICAgICAgbm9kZS5pc19hPyBMb2NhbExhYmVsIG9yCisgICAgICAgICAgICAgICAgICAgICAg
ICBub2RlLmlzX2E/IFNraXAKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgIlVuZXhwZWN0ZWQg
I3tub2RlLmluc3BlY3R9IGF0ICN7bm9kZS5jb2RlT3JpZ2lufSIgCisgICAgICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICBlbmQKKyAgICAgICAgICAgIGlmIG5ld05vZGUKKyAgICAgICAgICAg
ICAgICBuZXdMaXN0IDw8IG5ld05vZGUKKyAgICAgICAgICAgIGVuZAorICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICByZXR1cm4gbmV3TGlzdAorICAgIGVuZAorZW5kCisKIGNsYXNzIEluc3Ry
dWN0aW9uCiAgICAgZGVmIHg4Nk9wZXJhbmRzKCpraW5kcykKICAgICAgICAgcmFpc2UgdW5sZXNz
IGtpbmRzLnNpemUgPT0gb3BlcmFuZHMuc2l6ZQpAQCAtNDU4LDYgKzU4NSwxNiBAQCBjbGFzcyBJ
bnN0cnVjdGlvbgogICAgICAgICBlbmQKICAgICBlbmQKICAgICAKKyAgICBkZWYgaGFuZGxlWDg2
TXVsKGtpbmQpCisgICAgICAgIGlmIG9wZXJhbmRzLnNpemUgPT0gMyBhbmQgb3BlcmFuZHNbMF0u
aXNfYT8gSW1tZWRpYXRlCisgICAgICAgICAgICAkYXNtLnB1dHMgImltdWwje3g4NlN1ZmZpeChr
aW5kKX0gI3t4ODZPcGVyYW5kcyhraW5kLCBraW5kLCBraW5kKX0iCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICMgRklYTUU6IGNvdWxkIGRvIHNvbWUgcGVlcGhvbGUgaW4gY2FzZSB0aGUgbGVm
dCBvcGVyYW5kIGlzIGltbWVkaWF0ZSBhbmQgaXQncworICAgICAgICAgICAgIyBhIHBvd2VyIG9m
IHR3by4KKyAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJpbXVsI3t4ODZTdWZmaXgoa2luZCl9Iiwg
a2luZCkKKyAgICAgICAgZW5kCisgICAgZW5kCisgICAgCiAgICAgZGVmIGhhbmRsZU1vdmUKICAg
ICAgICAgaWYgSW1tZWRpYXRlLm5ldyhuaWwsIDApID09IG9wZXJhbmRzWzBdIGFuZCBvcGVyYW5k
c1sxXS5pc19hPyBSZWdpc3RlcklECiAgICAgICAgICAgICAkYXNtLnB1dHMgInhvciN7eDg2U3Vm
Zml4KDpwdHIpfSAje29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOnB0cil9LCAje29wZXJhbmRzWzFd
Lng4Nk9wZXJhbmQoOnB0cil9IgpAQCAtNDg5LDE2ICs2MjYsMTYgQEAgY2xhc3MgSW5zdHJ1Y3Rp
b24KICAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJhbmQje3g4NlN1ZmZpeCg6cHRyKX0iLCA6cHRy
KQogICAgICAgICB3aGVuICJsc2hpZnRpIgogICAgICAgICAgICAgaGFuZGxlWDg2U2hpZnQoInNh
bGwiLCA6aW50KQorICAgICAgICB3aGVuICJsc2hpZnRwIgorICAgICAgICAgICAgaGFuZGxlWDg2
U2hpZnQoInNhbCN7eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gIm11bGki
Ci0gICAgICAgICAgICBpZiBvcGVyYW5kcy5zaXplID09IDMgYW5kIG9wZXJhbmRzWzBdLmlzX2E/
IEltbWVkaWF0ZQotICAgICAgICAgICAgICAgICRhc20ucHV0cyAiaW11bGwgI3t4ODZPcGVyYW5k
cyg6aW50LCA6aW50LCA6aW50KX0iCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
IyBGSVhNRTogY291bGQgZG8gc29tZSBwZWVwaG9sZSBpbiBjYXNlIHRoZSBsZWZ0IG9wZXJhbmQg
aXMgaW1tZWRpYXRlIGFuZCBpdCdzCi0gICAgICAgICAgICAgICAgIyBhIHBvd2VyIG9mIHR3by4K
LSAgICAgICAgICAgICAgICBoYW5kbGVYODZPcCgiaW11bGwiLCA6aW50KQotICAgICAgICAgICAg
ZW5kCisgICAgICAgICAgICBoYW5kbGVYODZNdWwoOmludCkKKyAgICAgICAgd2hlbiAibXVscCIK
KyAgICAgICAgICAgIGhhbmRsZVg4Nk11bCg6cHRyKQogICAgICAgICB3aGVuICJuZWdpIgogICAg
ICAgICAgICAgJGFzbS5wdXRzICJuZWdsICN7eDg2T3BlcmFuZHMoOmludCl9IgorICAgICAgICB3
aGVuICJuZWdwIgorICAgICAgICAgICAgJGFzbS5wdXRzICJuZWcje3g4NlN1ZmZpeCg6cHRyKX0g
I3t4ODZPcGVyYW5kcyg6cHRyKX0iCiAgICAgICAgIHdoZW4gIm5vdGkiCiAgICAgICAgICAgICAk
YXNtLnB1dHMgIm5vdGwgI3t4ODZPcGVyYW5kcyg6aW50KX0iCiAgICAgICAgIHdoZW4gIm9yaSIK
QEAgLTUwNyw4ICs2NDQsMTIgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAgICAgICAgIGhhbmRs
ZVg4Nk9wKCJvciN7eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gInJzaGlm
dGkiCiAgICAgICAgICAgICBoYW5kbGVYODZTaGlmdCgic2FybCIsIDppbnQpCisgICAgICAgIHdo
ZW4gInJzaGlmdHAiCisgICAgICAgICAgICBoYW5kbGVYODZTaGlmdCgic2FyI3t4ODZTdWZmaXgo
OnB0cil9IiwgOnB0cikKICAgICAgICAgd2hlbiAidXJzaGlmdGkiCiAgICAgICAgICAgICBoYW5k
bGVYODZTaGlmdCgic2hybCIsIDppbnQpCisgICAgICAgIHdoZW4gInVyc2hpZnRwIgorICAgICAg
ICAgICAgaGFuZGxlWDg2U2hpZnQoInNociN7eDg2U3VmZml4KDpwdHIpfSIsIDpwdHIpCiAgICAg
ICAgIHdoZW4gInN1YmkiCiAgICAgICAgICAgICBoYW5kbGVYODZTdWIoOmludCkKICAgICAgICAg
d2hlbiAic3VicCIKQEAgLTUxNiw5ICs2NTcsMTUgQEAgY2xhc3MgSW5zdHJ1Y3Rpb24KICAgICAg
ICAgd2hlbiAieG9yaSIKICAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJ4b3JsIiwgOmludCkKICAg
ICAgICAgd2hlbiAieG9ycCIKLSAgICAgICAgICAgIGhhbmRsZVg4Nk9wKCJ4b3Ije3g4NlN1ZmZp
eCg6cHRyKX0iLCA6aW50KQorICAgICAgICAgICAgaGFuZGxlWDg2T3AoInhvciN7eDg2U3VmZml4
KDpwdHIpfSIsIDpwdHIpCiAgICAgICAgIHdoZW4gImxvYWRpIiwgInN0b3JlaSIKICAgICAgICAg
ICAgICRhc20ucHV0cyAibW92bCAje3g4Nk9wZXJhbmRzKDppbnQsIDppbnQpfSIKKyAgICAgICAg
d2hlbiAibG9hZGlzIgorICAgICAgICAgICAgaWYgaXNYNjQKKyAgICAgICAgICAgICAgICAkYXNt
LnB1dHMgIm1vdnNscSAje3g4Nk9wZXJhbmRzKDppbnQsIDpwdHIpfSIKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmwgI3t4ODZPcGVyYW5kcyg6aW50LCA6
aW50KX0iCisgICAgICAgICAgICBlbmQKICAgICAgICAgd2hlbiAibG9hZHAiLCAic3RvcmVwIgog
ICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Yje3g4NlN1ZmZpeCg6cHRyKX0gI3t4ODZPcGVyYW5k
cyg6cHRyLCA6cHRyKX0iCiAgICAgICAgIHdoZW4gImxvYWRiIgpAQCAtNzAxLDcgKzg0OCw3IEBA
IGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgIHdoZW4gImJ0Ym56IgogICAgICAgICAgICAgaGFu
ZGxlWDg2QnJhbmNoVGVzdCgiam56IiwgOmJ5dGUpCiAgICAgICAgIHdoZW4gImptcCIKLSAgICAg
ICAgICAgICRhc20ucHV0cyAiam1wICN7b3BlcmFuZHNbMF0ueDg2Q2FsbE9wZXJhbmQoOmludCl9
IgorICAgICAgICAgICAgJGFzbS5wdXRzICJqbXAgI3tvcGVyYW5kc1swXS54ODZDYWxsT3BlcmFu
ZCg6cHRyKX0iCiAgICAgICAgIHdoZW4gImJhZGRpbyIKICAgICAgICAgICAgIGhhbmRsZVg4Nk9w
QnJhbmNoKCJhZGRsIiwgImpvIiwgOmludCkKICAgICAgICAgd2hlbiAiYmFkZHBvIgpAQCAtODI1
LDkgKzk3Miw5IEBAIGNsYXNzIEluc3RydWN0aW9uCiAgICAgICAgICAgICAkYXNtLnB1dHMgInBz
cmxxICQzMiwgJXhtbTciCiAgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdnNkICV4bW03LCAje29w
ZXJhbmRzWzJdLng4Nk9wZXJhbmQoOmludCl9IgogICAgICAgICB3aGVuICJmcDJkIgotICAgICAg
ICAgICAgJGFzbS5wdXRzICJtb3ZkICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZHMoOnB0cil9LCAj
e29wZXJhbmRzWzFdLng4Nk9wZXJhbmQoOmRvdWJsZSl9IgorICAgICAgICAgICAgJGFzbS5wdXRz
ICJtb3ZkICN7b3BlcmFuZHNbMF0ueDg2T3BlcmFuZCg6cHRyKX0sICN7b3BlcmFuZHNbMV0ueDg2
T3BlcmFuZCg6ZG91YmxlKX0iCiAgICAgICAgIHdoZW4gImZkMnAiCi0gICAgICAgICAgICAkYXNt
LnB1dHMgIm1vdmQgI3tvcGVyYW5kc1swXS54ODZPcGVyYW5kcyg6ZG91YmxlKX0sICN7b3BlcmFu
ZHNbMV0ueDg2T3BlcmFuZCg6cHRyKX0iCisgICAgICAgICAgICAkYXNtLnB1dHMgIm1vdmQgI3tv
cGVyYW5kc1swXS54ODZPcGVyYW5kKDpkb3VibGUpfSwgI3tvcGVyYW5kc1sxXS54ODZPcGVyYW5k
KDpwdHIpfSIKICAgICAgICAgd2hlbiAiYm8iCiAgICAgICAgICAgICAkYXNtLnB1dHMgImpvICN7
b3BlcmFuZHNbMF0uYXNtTGFiZWx9IgogICAgICAgICB3aGVuICJicyIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDExMDM0NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtOTM1LDcgKzkzNSw3
IEBACiAKIC8qIE9uIHNvbWUgb2YgdGhlIHBsYXRmb3JtcyB3aGVyZSB3ZSBoYXZlIGEgSklULCB3
ZSB3YW50IHRvIGFsc28gaGF2ZSB0aGUgCiAgICBsb3ctbGV2ZWwgaW50ZXJwcmV0ZXIuICovCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0xMSU5UKSAmJiBFTkFCTEUoSklUKSAmJiBPUyhEQVJXSU4pICYm
IChDUFUoWDg2KSB8fCBDUFUoQVJNX1RIVU1CMikpICYmIFVTRShKU1ZBTFVFMzJfNjQpCisjaWYg
IWRlZmluZWQoRU5BQkxFX0xMSU5UKSAmJiBFTkFCTEUoSklUKSAmJiBPUyhEQVJXSU4pICYmIChD
UFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNX1RIVU1CMikpCiAjZGVmaW5lIEVOQUJM
RV9MTElOVCAxCiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="134383"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>