<?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>68767</bug_id>
          
          <creation_ts>2011-09-24 15:24:10 -0700</creation_ts>
          <short_desc>Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)</short_desc>
          <delta_ts>2011-12-03 10:29:38 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>68902</dependson>
          <blocked>68012</blocked>
    
    <blocked>73749</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>472823</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-24 15:24:10 -0700</bug_when>
    <thetext>Always enable ENABLE(OFFLINE_WEB_APPLICATIONS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472824</commentid>
    <comment_count>1</comment_count>
      <attachid>108591</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-24 15:25:38 -0700</bug_when>
    <thetext>Created attachment 108591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472828</commentid>
    <comment_count>2</comment_count>
      <attachid>108591</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-24 15:52:31 -0700</bug_when>
    <thetext>Comment on attachment 108591
Patch

Attachment 108591 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9842415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472829</commentid>
    <comment_count>3</comment_count>
      <attachid>108593</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-24 15:57:26 -0700</bug_when>
    <thetext>Created attachment 108593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472834</commentid>
    <comment_count>4</comment_count>
      <attachid>108593</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-09-24 16:38:05 -0700</bug_when>
    <thetext>Comment on attachment 108593
Patch

Attachment 108593 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/9841421</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472835</commentid>
    <comment_count>5</comment_count>
      <attachid>108594</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-24 16:47:42 -0700</bug_when>
    <thetext>Created attachment 108594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472858</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-24 23:03:50 -0700</bug_when>
    <thetext>Committed r95919: &lt;http://trac.webkit.org/changeset/95919&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473134</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-09-26 09:12:04 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Committed r95919: &lt;http://trac.webkit.org/changeset/95919&gt;

It broke all ENABLE_SQL_DATABASE=0 build, for example Qt Linux Release minimal core builder bot: http://build.webkit.org/builders/Qt%20Linux%20Release%20minimal/builds/33061

I think after this patch we should remove ENABLE_SQL_DATABASE guards too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473135</commentid>
    <comment_count>8</comment_count>
      <attachid>108594</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-09-26 09:12:20 -0700</bug_when>
    <thetext>Comment on attachment 108594
Patch

landed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473266</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-26 11:57:53 -0700</bug_when>
    <thetext>&gt; I think after this patch we should remove ENABLE_SQL_DATABASE guards too.

We probably should narrow the scope of that enable.  It looks like we need SQLiteStatement and friends, but we still want folks to be able to turn off the SQL database web API.  That&apos;s something of a dead-end API that folks might not wish to ship.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473370</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-09-26 14:06:23 -0700</bug_when>
    <thetext>Reopen until a proper fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473897</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-09-27 06:19:46 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; I think after this patch we should remove ENABLE_SQL_DATABASE guards too.
&gt; 
&gt; We probably should narrow the scope of that enable.  It looks like we need SQLiteStatement and friends, but we still want folks to be able to turn off the SQL database web API.  That&apos;s something of a dead-end API that folks might not wish to ship.

I don&apos;t understand what do you think. You made OFFLINE_WEB_APPLICATIONS always enabled. And application cache need SQL. How would you like to make OFFLINE_WEB_APPLICATIONS work without SQL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473981</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-09-27 09:28:38 -0700</bug_when>
    <thetext>&gt; I don&apos;t understand what do you think. You made OFFLINE_WEB_APPLICATIONS always enabled. And application cache need SQL. How would you like to make OFFLINE_WEB_APPLICATIONS work without SQL?

ENABLE_SQL_DATABASE isn&apos;t really about enabling the SQLite library.  That&apos;s something like USE(SQLITE) or something.  ENABLE_SQL_DATABASE is about enabling or disabling the WebSQLDatabase API.

Your approach in Bug 68902 is great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514521</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-03 10:17:47 -0800</bug_when>
    <thetext>It appears that ApplicationCacheStorage can&apos;t be built without sqlite; or at least it won&apos;t be useful. It&apos;s really undesirable to require sqlite in order to build WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514524</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-03 10:19:02 -0800</bug_when>
    <thetext>&gt; It&apos;s really undesirable to require sqlite in order to build WebKit.

Why?  As far as I can tell, everyone builds with SQLite anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514526</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-03 10:20:12 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; It&apos;s really undesirable to require sqlite in order to build WebKit.
&gt; 
&gt; Why?  As far as I can tell, everyone builds with SQLite anyway.

For embedding purposes, not everyone can afford to ship with SQLite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514530</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-03 10:26:48 -0800</bug_when>
    <thetext>I&apos;m inclined to wait for someone who&apos;s working on an embedded browser to make that argument.  At the moment, your concern sounds more theoretical than a real problem you&apos;re facing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514532</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-12-03 10:29:09 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I&apos;m inclined to wait for someone who&apos;s working on an embedded browser to make that argument.  At the moment, your concern sounds more theoretical than a real problem you&apos;re facing.

I know someone porting WebKit to a non-UNIX operating system, and he&apos;s facing this problem since SQLite hasn&apos;t been ported to his operating system yet.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108591</attachid>
            <date>2011-09-24 15:25:38 -0700</date>
            <delta_ts>2011-09-24 15:57:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68767-20110924152537.patch</filename>
            <type>text/plain</type>
            <size>133582</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDkt
MjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5h
YmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21h
a2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZToKKyAgICAgICAgKiBjb25maWd1cmUuYWM6CisK
IDIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgRU5BQkxFKFdDU1MpIGFuZCBhc3NvY2lhdGVkIGNvZGUKSW5kZXg6IGNvbmZpZ3VyZS5h
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuYWMJKHJldmlzaW9uIDk1OTA4KQorKysgY29uZmln
dXJlLmFjCSh3b3JraW5nIGNvcHkpCkBAIC00NTQsMTQgKzQ1NCw2IEBAIEFDX0FSR19FTkFCTEUo
ZGF0YV90cmFuc2Zlcl9pdGVtcywKICAgICAgICAgICAgICAgW10sW2VuYWJsZV9kYXRhX3RyYW5z
ZmVyX2l0ZW1zPSJubyJdKQogQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9kYXRhX3RyYW5zZmVyX2l0
ZW1zXSkKIAotIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJsZSBIVE1MNSBPZmZsaW5lIFdlYiBBcHBs
aWNhdGlvbnMgc3VwcG9ydAotQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBIVE1M
NSBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbnMgc3VwcG9ydF0pCi1BQ19BUkdfRU5BQkxFKG9mZmxp
bmVfd2ViX2FwcGxpY2F0aW9ucywKLSAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5h
YmxlLW9mZmxpbmUtd2ViLWFwcGxpY2F0aW9uc10sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtlbmFibGUgSFRNTDUgb2ZmbGluZSB3ZWIgYXBwbGljYXRpb25zIHN1cHBvcnQgW2RlZmF1
bHQ9eWVzXV0pLAotICAgICAgICAgICAgICBbXSxbZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0
aW9ucz0ieWVzIl0pCi1BQ19NU0dfUkVTVUxUKFskZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0
aW9uc10pCi0KICMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgRE9NIG11dGF0aW9uIG9ic2VydmVy
IHN1cHBvcnQKIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgRE9NIG11dGF0aW9u
IG9ic2VydmVyIHN1cHBvcnRdKQogQUNfQVJHX0VOQUJMRShtdXRhdGlvbl9vYnNlcnZlcnMsCkBA
IC0xMDEwLDEwICsxMDAyLDcgQEAgZmkKIEFDX1NVQlNUKFtTUUxJVEUzX0NGTEFHU10pCiBBQ19T
VUJTVChbU1FMSVRFM19MSUJTXSkKIAotaWYgKHRlc3QgIiRzcWxpdGUzX2ZvdW5kIiA9ICJubyIp
ICYmICh0ZXN0ICIkZW5hYmxlX2ljb25fZGF0YWJhc2UiID0gInllcyIgfHwgXAotICAgdGVzdCAi
JGVuYWJsZV9zcWxfZGF0YWJhc2UiID0gInllcyIgfHwgXAotICAgdGVzdCAiJGVuYWJsZV9vZmZs
aW5lX3dlYl9hcHBsaWNhdGlvbnMiID0gInllcyIgfHwgXAotICAgdGVzdCAiJGVuYWJsZV9kb21f
c3RvcmFnZSIgPSAieWVzIik7IHRoZW4KK2lmICh0ZXN0ICIkc3FsaXRlM19mb3VuZCIgPSAibm8i
KTsgdGhlbgogICAgQUNfTVNHX0VSUk9SKFtTUUxpdGUzIGlzIHJlcXVpcmVkIGZvciB0aGUgRGF0
YWJhc2UgcmVsYXRlZCBmZWF0dXJlc10pCiBmaQogCkBAIC0xMTM1LDcgKzExMjQsNiBAQCBBTV9D
T05ESVRJT05BTChbRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BCiBBTV9DT05ESVRJT05BTChbRU5B
QkxFX1BST0dSRVNTX1RBR10sW3Rlc3QgIiRlbmFibGVfcHJvZ3Jlc3NfdGFnIiA9ICJ5ZXMiXSkK
IEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkddLFt0ZXN0ICIkZW5hYmxl
X2NoYW5uZWxfbWVzc2FnaW5nIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUl0sW3Rlc3QgIiRlbmFibGVfamF2YXNjcmlwdF9kZWJ1Z2dlciIgPSAi
eWVzIl0pCi1BTV9DT05ESVRJT05BTChbRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OU10s
W3Rlc3QgIiRlbmFibGVfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25zIiA9ICJ5ZXMiXSkKIEFNX0NP
TkRJVElPTkFMKFtFTkFCTEVfRElSRUNUT1JZX1VQTE9BRF0sW3Rlc3QgIiRlbmFibGVfZGlyZWN0
b3J5X3VwbG9hZCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0RBVEFHUklEXSxb
dGVzdCAiJGVuYWJsZV9kYXRhZ3JpZCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxF
X0RBVEFfVFJBTlNGRVJfSVRFTVNdLFt0ZXN0ICIkZW5hYmxlX2RhdGFfdHJhbnNmZXJfaXRlbXMi
ID0gInllcyJdKQpAQCAtMTI1Miw3ICsxMjQwLDYgQEAgRmVhdHVyZXM6CiAgTWF0aE1MIHN1cHBv
cnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX21h
dGhtbAogIE1lZGlhIHNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogJGVuYWJsZV9tZWRpYV9zb3VyY2UKICBNZWRpYSBzdGF0aXN0aWNzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfbWVkaWFfc3RhdGlzdGlj
cwotIEhUTUw1IG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9ucyBzdXBwb3J0ICAgICAgICAgICAgICAg
ICAgIDogJGVuYWJsZV9vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbnMKICBIVE1MNSBjaGFubmVsIG1l
c3NhZ2luZyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfY2hhbm5l
bF9tZXNzYWdpbmcKICBIVE1MNSBtZXRlciBlbGVtZW50IHN1cHBvcnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ICRlbmFibGVfbWV0ZXJfdGFnCiAgUGFnZSBWaXNpYmlsaXR5IEFQSSBz
dXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX3BhZ2VfdmlzaWJp
bGl0eV9hcGkKSW5kZXg6IFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfTUVURVJfVEFHCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05PVElGSUNBVElPTlMKLSNjbWFr
ZWRlZmluZTAxIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKICNjbWFrZWRlZmluZTAx
IEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9QUk9HUkVT
U19UQUcKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9TSEFSRURfV09SS0VSUwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wOS0yNCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKwogMjAxMS0wOS0yNCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFsbG9jYXRlIG5ldyBvYmplY3RzIHVubWFya2VkCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpA
QCAtNzgsNyArNzgsNiBAQCBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVO
QUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyA9IDsKLUVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7
CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9U
QSA9IDsKQEAgLTk4LDQgKzk3LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEgg
PSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFC
TEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5B
QkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRB
SUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExP
QUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVf
RklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxF
X0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRf
REVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFC
TEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRF
Ul9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJM
RV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChF
TkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAk
KEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJF
X0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChF
TkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0VY
Q0xVU0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQo
RU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9E
RVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9N
RVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFH
KSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChF
TkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpD
X0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgp
ICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMjggQEAKKzIw
MTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdh
eXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIGRpc2N1c3NlZCBvbiB3ZWJraXQt
ZGV2LCBhbG1vc3QgZXZlcnlvbmUgaGFzIHRoaXMgZW5hYmxlIHR1cm5lZCBvbgorICAgICAgICBh
bmQgdGhpcyBmZWF0dXJlIGlzIHVubGlrZWx5IHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgd2ViIHBs
YXRmb3JtIGdpdmVuCisgICAgICAgIGl0cyBwb3B1bGFyaXR5LgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBiaW5kaW5ncy9jcHAvV2ViRE9NRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAo
dG9XZWJLaXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgIChXZWJDb3JlOjp0b0V2ZW50VGFyZ2V0KToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnRv
RE9NQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Lmg6CisgICAg
ICAgICogZmVhdHVyZXMucHJpOgorICAgICAgICAqIGhpc3RvcnkvUGFnZUNhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmxvZ0NhbkNhY2hlRnJhbWVEZWNpc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlQ2FjaGU6OmNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEh0bWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxIdG1s
RWxlbWVudDo6aW5zZXJ0ZWRCeVBhcnNlcik6CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlRmlsZVVSTEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGh0
bWwvSW1hZ2VEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURvY3VtZW50Ojpj
cmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50
U3RydWN0dXJlKToKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEhUTUxIdG1sU3RhcnRUYWdC
ZWZvcmVIVE1MKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp1cGRhdGVBcHBsaWNhdGlvbkNhY2hl
U3RhdHVzSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpuZXR3b3Jr
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2Vu
dHM6Okluc3RydW1lbnRpbmdBZ2VudHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGlu
Z0FnZW50czo6c2V0SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItaWRsOgorICAgICAgICAqIGxvYWRlci9Eb2N1
bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6RG9jdW1l
bnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Om1haW5SZWNlaXZl
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpoYW5kbGVkT25sb2FkRXZlbnRzKToKKyAg
ICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjphcHBsaWNhdGlvbkNhY2hlSG9zdCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAo
V2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjp3YXNCbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpjYW5u
b3RTaG93VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2ls
bENhY2hlUmVzcG9uc2UpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAg
ICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5oOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5oOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hl
LmNwcDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbDoKKyAgICAg
ICAgKiBsb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cGFyc2VNYW5pZmVzdCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL01hbmlmZXN0UGFy
c2VyLmg6CisgICAgICAgICogbG9hZGVyL2Nocm9taXVtL1Jlc291cmNlTG9hZGVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZERvd25sb2FkRGF0YSk6
CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3B0aW9uYWxBcHBsaWNhdGlv
bkNhY2hlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogeG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
RG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJz
ZXI6OnBhcnNlU3RhcnRFbGVtZW50KToKKwogMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoV0NTUykgYW5kIGFzc29jaWF0
ZWQgY29kZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDk1OTA4KQorKysgU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw2ICszMTUs
OCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5p
ZGwKICAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCiAKKyAgICBsb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKKwogICAgIHBhZ2UvQmFySW5mby5pZGwKICAg
ICBwYWdlL0NvbnNvbGUuaWRsCiAgICAgcGFnZS9Db29yZGluYXRlcy5pZGwKQEAgLTIxNjYsMTIg
KzIxNjgsNiBAQCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICkKIEVORElGICgpCiAKLUlGIChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSURM
X0ZJTEVTCi0gICAgICAgIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAot
ICAgICkKLUVORElGICgpCi0KICMgTW9kdWxlcyB0aGF0IHRoZSBiaW5kaW5ncyBnZW5lcmF0b3Ig
c2NyaXB0cyBtYXkgdXNlCiBTRVQoU0NSSVBUU19CSU5ESU5HUwogICAgICR7V0VCQ09SRV9ESVJ9
L2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQko
cmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTczLDE0ICsxNzMsNiBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X0pBVkFTQ1JJUFRfCiBlbmRpZiAjIEVORCBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgogCiAj
IC0tLS0KLSMgT2ZmbGluZSBXZWIgQXBwbGljYXRpb25zCi0jIC0tLS0KLWlmIEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMKLUZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TPTEKLXdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TPTEKLWVuZGlmICMgRU5EIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMKLQotIyAtLS0tCiAjIERhdGFiYXNlIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX1NR
TF9EQVRBQkFTRQpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29w
eSkKQEAgLTExMSw2ICsxMTEsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNEb2N1bWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRG9jdW1lbnRUeXBlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50
VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQXBwbGljYXRpb25DYWNoZS5j
cHAKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQXBwbGljYXRpb25DYWNoZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQ29yZUV4Y2VwdGlvbi5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNET01Db3JlRXhjZXB0aW9uLmggXApAQCAtNDEwNywxNCArNDEwOCw2
IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiBlbmRpZiAjIEVORCBVU0VfUEFOR08KIAogIyAt
LS0tCi0jIE9mZmxpbmUgV2ViIEFwcGxpY2F0aW9ucwotIyAtLS0tCi1pZiBFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TCi13ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAotCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcAotZW5kaWYgIyBFTkQgRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwotCi0jIC0tLS0KICMgRGF0YWJhc2UgU3VwcG9y
dAogIyAtLS0tCiBpZiBFTkFCTEVfU1FMX0RBVEFCQVNFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29y
a2luZyBjb3B5KQpAQCAtMTg2MSw3ICsxODYxLDYgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50MTJ1
cGRhdGVMYXlvdXRFdgogX19aTks3V2ViQ29yZTROb2RlMTZ0cmF2ZXJzZU5leHROb2RlRVBLUzBf
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiBfX1pON1dl
YkNvcmUxNkFwcGxpY2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0
eU9yaWdpbkUKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRpb25DYWNoZTIwZGVsZXRlQ2FjaGVGb3JP
cmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlMTRzZXRNYXhpbXVtU2l6ZUV4CkBAIC0xODc2LDcgKzE4NzUsNiBAQCBfX1pON1dl
YkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMjNjCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlMjZzdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbkVQS05TXzE0U2VjdXJp
dHlPcmlnaW5FeAogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTVlbXB0eUV2
CiBfX1pOSzdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTExbWF4aW11bVNpemVFdgot
I2VuZGlmCiAKICNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogX19aTjdXZWJDb3JlNkVkaXRv
cjEzbG93ZXJjYXNlV29yZEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtODU1LDYgKzg1
NSwxMyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCBcCiAgICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisgICAgbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAg
XAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuY3BwIFwKKyAg
ICBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgXAorICAgIGxvYWRlci9h
cHBjYWNoZS9NYW5pZmVzdFBhcnNlci5jcHAKICAgICBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVz
b3VyY2UuY3BwIFwKICAgICBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9u
LmNwcCBcCiAgICAgbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcCBcCkBAIC0zNTYzLDE3ICsz
NTcwLDYgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVQogICAgIH0K
IH0KIAotY29udGFpbnMoREVGSU5FUywgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0x
KSB7Ci1TT1VSQ0VTICs9IFwKLSAgICBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5j
cHAgXAotICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIFwKLSAg
ICBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIFwKLSAgICBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIFwKLSAgICBsb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmNwcCBcCi0gICAgbG9hZGVyL2FwcGNhY2hlL0RP
TUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKLSAgICBsb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJz
ZXIuY3BwCi19Ci0KIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJfU09DS0VUUz0xKSB7CiAg
ICAgSEVBREVSUyArPSBcCiAgICAgICAgIHdlYnNvY2tldHMvQ2xvc2VFdmVudC5oIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZmVhdHVy
ZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw2ICsxMyw5IEBAIG1lZWdvdG91Y2ggewogICAg
IERFRklORVMgKz0gV1RGX1VTRV9NRUVHT1RPVUNIPTEKIH0KIAorIyBTUUxpdGUgaXMgcmVxdWly
ZWQgdG8gYnVpbGQgV2ViS2l0CitERUZJTkVTICs9IEVOQUJMRV9TUUxJVEU9MQorCiAjIyBsb2Fk
IG1vYmlsaXR5Y29uZmlnIGlmIG1vYmlsaXR5IGlzIGF2YWlsYWJsZQogbG9hZChtb2JpbGl0eWNv
bmZpZywgdHJ1ZSkKIApAQCAtNDMsMjggKzQ2LDE0IEBAIGlzRW1wdHkoSEFWRV9RUkFXRk9OVCkg
ewogICAgIERFRklORVMgKz0gRU5BQkxFX1NWR19GT05UUz0wCiB9CiAKLSMgdHVybiBvZmYgU1FM
SVRFIHN1cHBvcnQgaWYgd2UgZG8gbm90IGhhdmUgc3FsaXRlMyBhdmFpbGFibGUKLSFDT05GSUco
UVRESVJfYnVpbGQpOndpbjMyLSo6IWV4aXN0cyggJCR7U1FMSVRFM1NSQ0RJUn0vc3FsaXRlMy5j
ICk6IERFRklORVMgKz0gRU5BQkxFX1NRTElURT0wIEVOQUJMRV9TUUxfREFUQUJBU0U9MCBFTkFC
TEVfV09SS0VSUz0wIEVOQUJMRV9TSEFSRURfV09SS0VSUz0wIEVOQUJMRV9JQ09OREFUQUJBU0U9
MCBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTAgRU5BQkxFX0RPTV9TVE9SQUdFPTAK
LQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPS4pOiBERUZJ
TkVTICs9IEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPTEKICFjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfU1FMX0RBVEFCQVNFPS4pOiBERUZJTkVTICs9IEVOQUJMRV9TUUxfREFUQUJBU0U9MQot
IWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9Lik6IERF
RklORVMgKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX0RPTV9TVE9SQUdFPS4pOiBERUZJTkVTICs9IEVOQUJMRV9ET01fU1RPUkFH
RT0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lDT05EQVRBQkFTRT0uKTogREVGSU5FUyAr
PSBFTkFCTEVfSUNPTkRBVEFCQVNFPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkc9Lik6IERFRklORVMgKz0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HPTEKICFj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfRElSRUNUT1JZX1VQTE9BRD0uKTogREVGSU5FUyArPSBF
TkFCTEVfRElSRUNUT1JZX1VQTE9BRD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTEVf
U1lTVEVNPS4pOiBERUZJTkVTICs9IEVOQUJMRV9GSUxFX1NZU1RFTT0wCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1FVT1RBPS4pOiBERUZJTkVTICs9IEVOQUJMRV9RVU9UQT0wIAotCi0jIHR1
cm4gb24gU1FMSVRFIHN1cHBvcnQgaWYgYW55IG9mIHRoZSBkZXBlbmRlbnQgZmVhdHVyZXMgYXJl
IHR1cm5lZCBvbgotIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TUUxJVEU9LikgewotICBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfU1FMX0RBVEFCQVNFPTEpfGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9JQ09OREFUQUJBU0U9MSl8Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RPTV9TVE9SQUdF
PTEpfGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MSkg
ewotICAgIERFRklORVMgKz0gRU5BQkxFX1NRTElURT0xCi0gIH0gZWxzZSB7Ci0gICAgREVGSU5F
UyArPSBFTkFCTEVfU1FMSVRFPTAKLSAgfQotfQotCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X0RBU0hCT0FSRF9TVVBQT1JUPS4pOiBERUZJTkVTICs9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9S
VD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTFRFUlM9Lik6IERFRklORVMgKz0gRU5B
QkxFX0ZJTFRFUlM9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YUEFUSD0uKTogREVGSU5F
UyArPSBFTkFCTEVfWFBBVEg9MQpAQCAtMjI1LDcgKzIxNCw2IEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9YSFRNTE1QPTEpOiBGRUEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSk6
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQogY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1NWR19GT05UUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX1NWR19GT05UUz0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSkFWQVNDUklQVF9E
RUJVR0dFUj0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVI9MQotY29udGFpbnMoREVGSU5FUywgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUz0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCX1NPQ0tFVFM9
MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9XRUJfU09DS0VUUz0xCiBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCX1RJTUlORz0xKTogRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQgKz0gRU5BQkxFX1dFQl9USU1JTkc9MQogY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1RPVUNIX0VWRU5UUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1RP
VUNIX0VWRU5UUz0xCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBj
b3B5KQpAQCAtNzYsNyArNzYsNiBAQCBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RB
RzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFC
TEVfTk9USUZJQ0FUSU9OUyA9IDsKLUVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBF
TkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJM
RV9RVU9UQSA9IDsKQEAgLTk3LDQgKzk2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVf
WFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikg
JChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfU1FM
X0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
UykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRklMRV9T
WVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChF
TkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
VkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VC
X1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxF
X1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9D
U1MzX0ZMRVhCT1gpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0Up
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1Nf
VEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01FdmVudFRhcmdldC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTUV2ZW50VGFyZ2V0
LmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2Vi
RE9NRXZlbnRUYXJnZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsMTAgKzEwMyw3IEBAIENv
bnZlcnRUbyhYTUxIdHRwUmVxdWVzdCkKIENvbnZlcnRUbyhYTUxIdHRwUmVxdWVzdFVwbG9hZCkK
IENvbnZlcnRUbyhNZXNzYWdlUG9ydCkKIENvbnZlcnRUbyhFdmVudFNvdXJjZSkKLQotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiBDb252ZXJ0VG8oRE9NQXBwbGljYXRpb25D
YWNoZSkKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiBDb252ZXJ0VG8oV29ya2VyKQpA
QCAtMTU4LDEwICsxNTUsOCBAQCBXZWJET01FdmVudFRhcmdldCB0b1dlYktpdChXZWJDb3JlOjpF
dmVuCiAgICAgICAgIHJldHVybiB0b1dlYktpdChpbnN0YW5jZSk7CiAjZW5kaWYKIAotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKFdlYkNvcmU6OkRPTUFwcGxp
Y2F0aW9uQ2FjaGUqIGNhY2hlID0gdmFsdWUtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgpKQogICAg
ICAgICByZXR1cm4gdG9XZWJLaXQoY2FjaGUpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoV09SS0VS
UykKICAgICBpZiAoV2ViQ29yZTo6V29ya2VyKiB3b3JrZXIgPSB2YWx1ZS0+dG9Xb3JrZXIoKSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCShy
ZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJn
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCwxMCArNTQsOCBAQAogI2luY2x1ZGUgIkV2ZW50
U291cmNlLmgiCiAjaW5jbHVkZSAiSlNFdmVudFNvdXJjZS5oIgogCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICNpbmNsdWRlICJET01BcHBsaWNhdGlvbkNhY2hlLmgiCiAj
aW5jbHVkZSAiSlNET01BcHBsaWNhdGlvbkNhY2hlLmgiCi0jZW5kaWYKIAogI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCkBAIC0xMzMsMTAgKzEzMSw4IEBA
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmEKICAgICBpZiAoWE1MSHR0
cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgp
KQogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHVwbG9hZCk7CiAKLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChET01BcHBsaWNhdGlv
bkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCiAgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgY2FjaGUpOwotI2VuZGlmCiAKICAgICBp
ZiAoTWVzc2FnZVBvcnQqIG1lc3NhZ2VQb3J0ID0gdGFyZ2V0LT50b01lc3NhZ2VQb3J0KCkpCiAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnQpOwpAQCAt
MjE3LDEwICsyMTMsNyBAQCBFdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6OkpTVmFsdWUg
CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oYXNPYmplY3Qo
dmFsdWUpKS0+aW1wbCgpOwogCiAgICAgQ09OVkVSVF9UT19FVkVOVF9UQVJHRVQoRXZlbnRTb3Vy
Y2UpCi0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIENPTlZFUlRf
VE9fRVZFTlRfVEFSR0VUKERPTUFwcGxpY2F0aW9uQ2FjaGUpCi0jZW5kaWYKIAogI2lmIEVOQUJM
RShTVkcpCiAgICAgQ09OVkVSVF9UT19FVkVOVF9UQVJHRVQoU1ZHRWxlbWVudEluc3RhbmNlKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMiwxMCArNDIyLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4RE9NV3JhcHBlcjo6Y29udgogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9CiAK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChET01BcHBsaWNh
dGlvbkNhY2hlKiBkb21BcHBDYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkp
CiAgICAgICAgIHJldHVybiB0b1Y4KGRvbUFwcENhY2hlKTsKLSNlbmRpZgogCiAgICAgaWYgKEV2
ZW50U291cmNlKiBldmVudFNvdXJjZSA9IHRhcmdldC0+dG9FdmVudFNvdXJjZSgpKQogICAgICAg
ICByZXR1cm4gdG9WOChldmVudFNvdXJjZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDEyICsxMDUsMTAgQEAgWE1MSHR0cFJlcXVlc3RV
cGxvYWQqIEV2ZW50VGFyZ2V0Ojp0b1hNTAogICAgIHJldHVybiAwOwogfQogCi0jaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIEV2ZW50VGFy
Z2V0Ojp0b0RPTUFwcGxpY2F0aW9uQ2FjaGUoKQogewogICAgIHJldHVybiAwOwogfQotI2VuZGlm
CiAKICNpZiBFTkFCTEUoU1ZHKQogU1ZHRWxlbWVudEluc3RhbmNlKiBFdmVudFRhcmdldDo6dG9T
VkdFbGVtZW50SW5zdGFuY2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgJKHJldmlz
aW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNiw5ICsxMDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpOwogICAgICAgICB2aXJ0dWFsIFhNTEh0dHBS
ZXF1ZXN0KiB0b1hNTEh0dHBSZXF1ZXN0KCk7CiAgICAgICAgIHZpcnR1YWwgWE1MSHR0cFJlcXVl
c3RVcGxvYWQqIHRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogICAgICAgICB2aXJ0dWFsIERPTUFwcGxpY2F0aW9uQ2FjaGUqIHRv
RE9NQXBwbGljYXRpb25DYWNoZSgpOwotI2VuZGlmCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAg
dmlydHVhbCBTVkdFbGVtZW50SW5zdGFuY2UqIHRvU1ZHRWxlbWVudEluc3RhbmNlKCk7CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAJKHJldmlzaW9uIDk1OTA4
KQorKysgU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTUsMTIgKzE1NSwxMCBAQCBzdGF0aWMgYm9vbCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNp
b24oRnJhCiAgICAgICAgICAgICBQQ0xPRygiICAgLVRoZSBkb2N1bWVudCBjYW5ub3Qgc3VzcGVj
dCBpdHMgYWN0aXZlIERPTSBPYmplY3RzIik7CiAgICAgICAgICAgICBjYW5ub3RDYWNoZSA9IHRy
dWU7CiAgICAgICAgIH0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
ICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBhZ2VDYWNoZSgpKSB7CiAgICAgICAgICAgICBQQ0xPRygi
ICAgLVRoZSBEb2N1bWVudExvYWRlciB1c2VzIGFuIGFwcGxpY2F0aW9uIGNhY2hlIik7CiAgICAg
ICAgICAgICBjYW5ub3RDYWNoZSA9IHRydWU7CiAgICAgICAgIH0KLSNlbmRpZgogICAgICAgICBp
ZiAoIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNhbkNhY2hlUGFnZSgpKSB7CiAgICAgICAg
ICAgICBQQ0xPRygiICAgLVRoZSBjbGllbnQgc2F5cyB0aGlzIGZyYW1lIGNhbm5vdCBiZSBjYWNo
ZWQiKTsKICAgICAgICAgICAgIGNhbm5vdENhY2hlID0gdHJ1ZTsgCkBAIC0yNzcsMTEgKzI3NSw5
IEBAIGJvb2wgUGFnZUNhY2hlOjpjYW5DYWNoZVBhZ2VDb250YWluaW5nVGgKICAgICAgICAgJiYg
IWZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+aXNMb2FkaW5nSW5BUElTZW5zZSgp
CiAgICAgICAgICYmICFmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBp
bmcoKQogICAgICAgICAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2ZURPTU9i
amVjdHMoKQotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgaW52ZXN0aWdhdGluZyBjYWNoaW5nIGZyYW1lcyB0aGF0IGhhdmUg
YW4gYXNzb2NpYXRlZAogICAgICAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9i
bGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0IHdvcmsuCiAgICAgICAgICYmIGZyYW1lLT5sb2FkZXIo
KS0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBh
Z2VDYWNoZSgpCi0jZW5kaWYKICAgICAgICAgJiYgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+
Y2FuQ2FjaGVQYWdlKCk7CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxI
dG1sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRt
bEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEh0bWxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNiBAQCBib29sIEhU
TUxIdG1sRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0CiAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+
bmFtZSgpID09IG1hbmlmZXN0QXR0cjsKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCiB2b2lkIEhUTUxIdG1sRWxlbWVudDo6aW5zZXJ0ZWRCeVBhcnNlcigpCiB7CiAg
ICAgLy8gV2hlbiBwYXJzaW5nIGEgZnJhZ21lbnQsIGl0cyBkdW1teSBkb2N1bWVudCBoYXMgYSBu
dWxsIHBhcnNlci4KQEAgLTc2LDYgKzc1LDUgQEAgdm9pZCBIVE1MSHRtbEVsZW1lbnQ6Omluc2Vy
dGVkQnlQYXJzZXIoKQogICAgIGVsc2UKICAgICAgICAgZG9jdW1lbnRMb2FkZXItPmFwcGxpY2F0
aW9uQ2FjaGVIb3N0KCktPnNlbGVjdENhY2hlV2l0aE1hbmlmZXN0KGRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKG1hbmlmZXN0KSk7CiB9Ci0jZW5kaWYKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSHRtbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxIdG1sRWxlbWVudC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEh0bWxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIHZvaWQgaW5zZXJ0ZWRCeVBhcnNlcigpOwotI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgSFRNTEh0bWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcyNiw3ICs3MjYsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmxvYWROZXh0U291cmNlQ2hpCiAgICAgbG9hZFJlc291cmNlKG1lZGlhVVJMLCBjb250ZW50VHlw
ZSk7CiB9CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAmJiAhUExBVEZP
Uk0oQ0hST01JVU0pCiBzdGF0aWMgS1VSTCBjcmVhdGVGaWxlVVJMRm9yQXBwbGljYXRpb25DYWNo
ZVJlc291cmNlKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAvLyBLVVJMIHNob3VsZCBoYXZl
IGEgZnVuY3Rpb24gdG8gY3JlYXRlIGEgdXJsIGZyb20gYSBwYXRoLCBidXQgaXQgZG9lcyBub3Qu
IFRoaXMgZnVuY3Rpb24KQEAgLTc0Niw3ICs3NDUsNiBAQCBzdGF0aWMgS1VSTCBjcmVhdGVGaWxl
VVJMRm9yQXBwbGljYXRpb25DCiAjZW5kaWYKICAgICByZXR1cm4gdXJsOwogfQotI2VuZGlmCiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnN0IEtVUkwmIGluaXRpYWxV
UkwsIENvbnRlbnRUeXBlJiBjb250ZW50VHlwZSkKIHsKQEAgLTc3Nyw3ICs3NzUsNyBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zCiAgICAgLy8gVGhlIHJlc291cmNl
IGZldGNoIGFsZ29yaXRobSAKICAgICBtX25ldHdvcmtTdGF0ZSA9IE5FVFdPUktfTE9BRElORzsK
IAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICYmICFQTEFURk9STShDSFJP
TUlVTSkKKyNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAgICAgLy8gSWYgdGhlIHVybCBzaG91bGQg
YmUgbG9hZGVkIGZyb20gdGhlIGFwcGxpY2F0aW9uIGNhY2hlLCBwYXNzIHRoZSB1cmwgb2YgdGhl
IGNhY2hlZCBmaWxlCiAgICAgLy8gdG8gdGhlIG1lZGlhIGVuZ2luZS4KICAgICBBcHBsaWNhdGlv
bkNhY2hlSG9zdCogY2FjaGVIb3N0ID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigp
LT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpOwpAQCAtNzk2LDcgKzc5NCw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnMKICAgICAvLyBjYWNoZSBpcyBhbiBpbnRlcm5h
bCBkZXRhaWwgbm90IGV4cG9zZWQgdGhyb3VnaCB0aGUgbWVkaWEgZWxlbWVudCBBUEkuCiAgICAg
bV9jdXJyZW50U3JjID0gdXJsOwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykgJiYgIVBMQVRGT1JNKENIUk9NSVVNKQorI2lmICFQTEFURk9STShDSFJPTUlVTSkKICAgICBp
ZiAocmVzb3VyY2UpIHsKICAgICAgICAgdXJsID0gY3JlYXRlRmlsZVVSTEZvckFwcGxpY2F0aW9u
Q2FjaGVSZXNvdXJjZShyZXNvdXJjZS0+cGF0aCgpKTsKICAgICAgICAgTE9HKE1lZGlhLCAiSFRN
TE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlIC0gd2lsbCBsb2FkIGZyb20gYXBwIGNhY2hlIC0+
ICVzIiwgdXJsRm9yTG9nZ2luZyh1cmwpLnV0ZjgoKS5kYXRhKCkpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NSw5ICsxOTUs
NyBAQCB2b2lkIEltYWdlRG9jdW1lbnQ6OmNyZWF0ZURvY3VtZW50U3RydWN0CiAgICAgCiAgICAg
UmVmUHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoaHRt
bFRhZywgZmFsc2UpOwogICAgIGFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBlYyk7Ci0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBzdGF0aWNfY2FzdDxIVE1MSHRtbEVs
ZW1lbnQqPihyb290RWxlbWVudC5nZXQoKSktPmluc2VydGVkQnlQYXJzZXIoKTsKLSNlbmRpZgog
CiAgICAgaWYgKGZyYW1lKCkgJiYgZnJhbWUoKS0+bG9hZGVyKCkpCiAgICAgICAgIGZyYW1lKCkt
PmxvYWRlcigpLT5kaXNwYXRjaERvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDkg
KzczLDcgQEAgdm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudAogICAgIEV4
Y2VwdGlvbkNvZGUgZWM7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CiAgICAgZG9jdW1lbnQoKS0+YXBw
ZW5kQ2hpbGQocm9vdEVsZW1lbnQsIGVjKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQogICAgIHN0YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KHJvb3RFbGVtZW50Lmdl
dCgpKS0+aW5zZXJ0ZWRCeVBhcnNlcigpOwotI2VuZGlmCiAKICAgICBpZiAoZG9jdW1lbnQoKS0+
ZnJhbWUoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+bG9hZGVyKCktPmRpc3BhdGNo
RG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdp
bkRvY3VtZW50LmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL1Bs
dWdpbkRvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsOSArNzAsNyBAQCB2b2lkIFBs
dWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVuCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsK
ICAgICBSZWZQdHI8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVt
ZW50KGh0bWxUYWcsIGZhbHNlKTsKICAgICBkb2N1bWVudCgpLT5hcHBlbmRDaGlsZChyb290RWxl
bWVudCwgZWMpOwotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgc3Rh
dGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50Kj4ocm9vdEVsZW1lbnQuZ2V0KCkpLT5pbnNlcnRlZEJ5
UGFyc2VyKCk7Ci0jZW5kaWYKIAogICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpICYmIGRvY3Vt
ZW50KCktPmZyYW1lKCktPmxvYWRlcigpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5s
b2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAJ
KHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsOSArMTg0LDcgQEAgdm9pZCBI
VE1MQ29uc3RydWN0aW9uU2l0ZTo6aW5zZXJ0SFRNTEh0bQogICAgIFJlZlB0cjxIVE1MSHRtbEVs
ZW1lbnQ+IGVsZW1lbnQgPSBIVE1MSHRtbEVsZW1lbnQ6OmNyZWF0ZShtX2RvY3VtZW50KTsKICAg
ICBlbGVtZW50LT5zZXRBdHRyaWJ1dGVNYXAodG9rZW4udGFrZUF0cmlidXRlcygpLCBtX2ZyYWdt
ZW50U2NyaXB0aW5nUGVybWlzc2lvbik7CiAgICAgbV9vcGVuRWxlbWVudHMucHVzaEhUTUxIdG1s
RWxlbWVudChhdHRhY2g8RWxlbWVudD4obV9hdHRhY2htZW50Um9vdCwgZWxlbWVudC5nZXQoKSkp
OwotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgZWxlbWVudC0+aW5z
ZXJ0ZWRCeVBhcnNlcigpOwotI2VuZGlmCiAgICAgZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFp
bGFibGVJZk5lZWRlZCgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmNwcAkocmV2aXNp
b24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5o
IgogCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNo
ZUhvc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMTM4LDQgKzEzOCw0IEBA
IFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JBcHAKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDog
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQuaAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDcgKzI1LDcgQEAKICNpZm5kZWYgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50X2gK
ICNkZWZpbmUgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50X2gKIAotI2lmIEVOQUJMRShJ
TlNQRUNUT1IpICYmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisjaWYgRU5BQkxF
KElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKQEAgLTc0LDUgKzc0LDUgQEAgcHJpdmF0ZToKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikgJiYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9S
KQogI2VuZGlmIC8vIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudF9oCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDkgKzEwOCw3IEBAIEluc3BlY3RvckNvbnRy
b2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIKICAgICAsIG1fZG9tU3RvcmFnZUFnZW50KEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSkpCiAjZW5kaWYKICAgICAsIG1fdGltZWxpbmVBZ2VudChJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRl
LmdldCgpKSkKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICwgbV9h
cHBsaWNhdGlvbkNhY2hlQWdlbnQoYWRvcHRQdHIobmV3IEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIHBhZ2UpKSkKLSNlbmRpZgogICAg
ICwgbV9yZXNvdXJjZUFnZW50KEluc3BlY3RvclJlc291cmNlQWdlbnQ6OmNyZWF0ZShtX2luc3Ry
dW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fcGFnZUFnZW50LmdldCgpLCBpbnNwZWN0b3JDbGllbnQs
IG1fc3RhdGUuZ2V0KCkpKQogICAgICwgbV9ydW50aW1lQWdlbnQoYWRvcHRQdHIobmV3IFBhZ2VS
dW50aW1lQWdlbnQobV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHBhZ2UsIG1fcGFnZUFn
ZW50LmdldCgpKSkpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChhZG9wdFB0cihuZXcgSW5zcGVjdG9y
Q29uc29sZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2Vu
dC5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1f
ZG9tQWdlbnQuZ2V0KCkpKSkKQEAgLTIwMiw5ICsyMDAsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRy
b2xsZXI6OmNvbm5lY3RGcm9udGVuCiAgICAgLy8gV2UgY2FuIHJlY29ubmVjdCB0byBleGlzdGlu
ZyBmcm9udC1lbmQgLT4gdW5tdXRlIHN0YXRlLgogICAgIG1fc3RhdGUtPnVubXV0ZSgpOwogCi0j
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBtX2FwcGxpY2F0aW9uQ2Fj
aGVBZ2VudC0+c2V0RnJvbnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7Ci0jZW5kaWYK
ICAgICBtX3BhZ2VBZ2VudC0+c2V0RnJvbnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7
CiAgICAgbV9kb21BZ2VudC0+c2V0RnJvbnRlbmQobV9pbnNwZWN0b3JGcm9udGVuZC5nZXQoKSk7
CiAgICAgbV9jb25zb2xlQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0
KCkpOwpAQCAtMjMyLDkgKzIyOCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVj
dEZyb250ZW4KICAgICBBU1NFUlQobV9pbnNwZWN0b3JDbGllbnQpOwogICAgIG1faW5zcGVjdG9y
QmFja2VuZERpc3BhdGNoZXIgPSBhZG9wdFJlZihuZXcgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNo
ZXIoCiAgICAgICAgIG1faW5zcGVjdG9yQ2xpZW50LAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgICAgIG1fYXBwbGljYXRpb25DYWNoZUFnZW50LmdldCgpLAotI2Vu
ZGlmCiAgICAgICAgIG1fY3NzQWdlbnQuZ2V0KCksCiAgICAgICAgIG1fY29uc29sZUFnZW50Lmdl
dCgpLAogICAgICAgICBtX2RvbUFnZW50LmdldCgpLApAQCAtMjg1LDkgKzI3OSw3IEBAIHZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZyb24KICAgICBtX2RvbURlYnVnZ2VyQWdl
bnQtPmNsZWFyRnJvbnRlbmQoKTsKICAgICBtX3Byb2ZpbGVyQWdlbnQtPmNsZWFyRnJvbnRlbmQo
KTsKICNlbmRpZgotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9h
cHBsaWNhdGlvbkNhY2hlQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKLSNlbmRpZgogICAgIG1fY29u
c29sZUFnZW50LT5jbGVhckZyb250ZW5kKCk7CiAgICAgbV9kb21BZ2VudC0+Y2xlYXJGcm9udGVu
ZCgpOwogICAgIG1fY3NzQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAkocmV2aXNpb24gOTU5MDgp
CisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDEsOSArMTQxLDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8SW5zcGVj
dG9yRE9NU3RvcmFnZUFnZW50PiBtX2RvbVN0b3JhZ2VBZ2VudDsKICNlbmRpZgogICAgIE93blB0
cjxJbnNwZWN0b3JUaW1lbGluZUFnZW50PiBtX3RpbWVsaW5lQWdlbnQ7Ci0jaWYgRU5BQkxFKE9G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBPd25QdHI8SW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50PiBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2VudDsKLSNlbmRpZgogICAgIFJlZlB0cjxJ
bnNwZWN0b3JSZXNvdXJjZUFnZW50PiBtX3Jlc291cmNlQWdlbnQ7CiAgICAgT3duUHRyPEluc3Bl
Y3RvclJ1bnRpbWVBZ2VudD4gbV9ydW50aW1lQWdlbnQ7CiAgICAgT3duUHRyPEluc3BlY3RvckNv
bnNvbGVBZ2VudD4gbV9jb25zb2xlQWdlbnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIyLDcgKzgyMiw2IEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDbG9zZVcKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpuZXR3b3Jr
U3RhdGVDaGFuZ2VkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRz
KQogewogICAgIGlmIChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQqIGFwcGxpY2F0aW9u
Q2FjaGVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudCgpKQpAQCAtODM0LDcgKzgzMyw2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp1cGRhdGVBcHAKICAgICBpZiAoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KiBh
cHBsaWNhdGlvbkNhY2hlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQoKSkKICAgICAgICAgYXBwbGljYXRpb25DYWNoZUFnZW50LT51cGRh
dGVBcHBsaWNhdGlvbkNhY2hlU3RhdHVzKGZyYW1lKTsKIH0KLSNlbmRpZgogCiBib29sIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6Y29sbGVjdGluZ0hUTUxQYXJzZUVycm9ycyhJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzKQogewpJbmRleDogU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAkocmV2aXNpb24g
OTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OSwxMCArMTg5LDcgQEAgcHVibGljOgogI2VuZGlm
CiAKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKFBhZ2UqKTsKLQotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgc3RhdGljIHZvaWQgdXBkYXRlQXBw
bGljYXRpb25DYWNoZVN0YXR1cyhGcmFtZSopOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQogICAgIHN0YXRpYyB2b2lkIGZyb250ZW5kQ3JlYXRlZCgpIHsgc19mcm9udGVuZENvdW50
ZXIgKz0gMTsgfQpAQCAtMzIyLDEwICszMTksOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lk
IGRpZENsb3NlV2ViU29ja2V0SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKICAgICBzdGF0aWMgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzKik7CiAgICAgc3RhdGljIHZvaWQgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1
c0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEZyYW1lKik7Ci0jZW5kaWYKIAogICAgIHN0YXRp
YyBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShQYWdlKik7
CiAgICAgc3RhdGljIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHNGb3JG
cmFtZShGcmFtZSopOwpAQCAtMTAxNiwxNCArMTAxMSwxMyBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpCiAKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6bmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlKiBwYWdlKQogewotI2lmIEVOQUJMRShJTlNQ
RUNUT1IpICYmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisjaWYgRU5BQkxFKElO
U1BFQ1RPUikKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKICAgICBp
ZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRp
bmdBZ2VudHNGb3JQYWdlKHBhZ2UpKQogICAgICAgICBuZXR3b3JrU3RhdGVDaGFuZ2VkSW1wbChp
bnN0cnVtZW50aW5nQWdlbnRzKTsKICNlbmRpZgogfQogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dXBk
YXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhGcmFtZSogZnJhbWUpCiB7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKQEAgLTEwMzIsNyArMTAyNiw2IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6dXAKICAgICAgICAgdXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1c0ltcGwo
aW5zdHJ1bWVudGluZ0FnZW50cywgZnJhbWUpOwogI2VuZGlmCiB9Ci0jZW5kaWYKIAogaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWdpc3RlckFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2soRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgY2FsbGJhY2tJZCkKIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuaAkocmV2aXNp
b24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw5ICs3Myw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
U1FMX0RBVEFCQVNFKQogICAgICAgICAsIG1faW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgwKQogI2Vu
ZGlmCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgLCBtX2lu
c3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgwKQotI2VuZGlmCiAjaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCiAgICAgICAgICwgbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50KDApCiAg
ICAgICAgICwgbV9pbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KDApCkBAIC0xMTksMTAgKzExNyw4
IEBAIHB1YmxpYzoKICAgICBJbnNwZWN0b3JEYXRhYmFzZUFnZW50KiBpbnNwZWN0b3JEYXRhYmFz
ZUFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JEYXRhYmFzZUFnZW50OyB9CiAgICAg
dm9pZCBzZXRJbnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3BlY3RvckRhdGFiYXNlQWdlbnQqIGFn
ZW50KSB7IG1faW5zcGVjdG9yRGF0YWJhc2VBZ2VudCA9IGFnZW50OyB9CiAjZW5kaWYKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIEluc3BlY3RvckFwcGxpY2F0aW9u
Q2FjaGVBZ2VudCogaW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkgY29uc3QgeyByZXR1
cm4gbV9pbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ7IH0KICAgICB2b2lkIHNldEluc3Bl
Y3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudChJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQq
IGFnZW50KSB7IG1faW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50ID0gYWdlbnQ7IH0KLSNl
bmRpZgogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQqIGluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQ7IH0KICAgICB2b2lkIHNldEluc3BlY3RvckRlYnVnZ2VyQWdlbnQo
SW5zcGVjdG9yRGVidWdnZXJBZ2VudCogYWdlbnQpIHsgbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50
ID0gYWdlbnQ7IH0KQEAgLTE1Myw5ICsxNDksNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCiAgICAgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCogbV9pbnNwZWN0b3JEYXRhYmFz
ZUFnZW50OwogI2VuZGlmCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAg
ICBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQqIG1faW5zcGVjdG9yQXBwbGljYXRpb25D
YWNoZUFnZW50OwotI2VuZGlmCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAg
SW5zcGVjdG9yRGVidWdnZXJBZ2VudCogbV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50OwogICAgIElu
c3BlY3RvckRPTURlYnVnZ2VyQWdlbnQqIG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjYs
OSArMTI2LDcgQEAgdm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RgogICAg
IG1fZnJvbnRlbmQgPSBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRnJvbnRlbmQobV9mcm9udGVuZENo
YW5uZWwuZ2V0KCkpKTsKICAgICBtX2JhY2tlbmREaXNwYXRjaGVyID0gYWRvcHRSZWYobmV3IElu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyKAogICAgICAgICBtX2Zyb250ZW5kQ2hhbm5lbC5nZXQo
KSwKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICAwLCAvLyBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQKLSNlbmRpZgogI2lmIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKQogICAgICAgICAwLCAvLyBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3It
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZS1pbnNw
ZWN0b3ItaWRsCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9n
ZW5lcmF0ZS1pbnNwZWN0b3ItaWRsCSh3b3JraW5nIGNvcHkpCkBAIC04Niw3ICs4Niw2IEBAIHJl
Zl90eXBlcyA9IHt9CiBtYWNyb190cmFpdHMgPSB7CiAgICAgIkRhdGFiYXNlIjogIlNRTF9EQVRB
QkFTRSIsCiAgICAgIkRPTVN0b3JhZ2UiOiAiRE9NX1NUT1JBR0UiLAotICAgICJBcHBsaWNhdGlv
bkNhY2hlIjogIk9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyIsCiAgICAgIkRlYnVnZ2VyIjogIkpB
VkFTQ1JJUFRfREVCVUdHRVIiLAogICAgICJET01EZWJ1Z2dlciI6ICJKQVZBU0NSSVBUX0RFQlVH
R0VSIiwKICAgICAiUHJvZmlsZXIiOiAiSkFWQVNDUklQVF9ERUJVR0dFUiIsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysg
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTgsOSArOTgsNyBAQCBEb2N1bWVudExvYWRlcjo6RG9jdW1lbnRMb2FkZXIoY29uc3QgUmVz
CiAgICAgLCBtX3N0b3BSZWNvcmRpbmdSZXNwb25zZXMoZmFsc2UpCiAgICAgLCBtX3N1YnN0aXR1
dGVSZXNvdXJjZURlbGl2ZXJ5VGltZXIodGhpcywgJkRvY3VtZW50TG9hZGVyOjpzdWJzdGl0dXRl
UmVzb3VyY2VEZWxpdmVyeVRpbWVyRmlyZWQpCiAgICAgLCBtX2RpZENyZWF0ZUdsb2JhbEhpc3Rv
cnlFbnRyeShmYWxzZSkKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
ICwgbV9hcHBsaWNhdGlvbkNhY2hlSG9zdChhZG9wdFB0cihuZXcgQXBwbGljYXRpb25DYWNoZUhv
c3QodGhpcykpKQotI2VuZGlmCiB7CiB9CiAKQEAgLTIwMCwxMCArMTk4LDggQEAgdm9pZCBEb2N1
bWVudExvYWRlcjo6bWFpblJlY2VpdmVkRXJyb3IoYwogewogICAgIEFTU0VSVCghZXJyb3IuaXNO
dWxsKCkpOwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBtX2Fw
cGxpY2F0aW9uQ2FjaGVIb3N0LT5mYWlsZWRMb2FkaW5nTWFpblJlc291cmNlKCk7Ci0jZW5kaWYK
LSAgICAKKwogICAgIGlmICghZnJhbWVMb2FkZXIoKSkKICAgICAgICAgcmV0dXJuOwogICAgIHNl
dE1haW5Eb2N1bWVudEVycm9yKGVycm9yKTsKQEAgLTIzNSw5ICsyMzEsNyBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpzdG9wTG9hZGluZygpCiAgICAgY2FuY2VsQWxsKG1fbXVsdGlwYXJ0U3VicmVz
b3VyY2VMb2FkZXJzKTsKIAogICAgIC8vIEFwcGNhY2hlIHVzZXMgUmVzb3VyY2VIYW5kbGUgZGly
ZWN0bHksIERvY3VtZW50TG9hZGVyIGRvZXNuJ3QgY291bnQgdGhlc2UgbG9hZHMuCi0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0
LT5zdG9wTG9hZGluZ0luRnJhbWUobV9mcmFtZSk7Ci0jZW5kaWYKIAogICAgIGlmICghbG9hZGlu
ZykKICAgICAgICAgcmV0dXJuOwpAQCAtNDAyLDkgKzM5Niw3IEBAIHZvaWQgRG9jdW1lbnRMb2Fk
ZXI6OmRldGFjaEZyb21GcmFtZSgpCiB7CiAgICAgQVNTRVJUKG1fZnJhbWUpOwogCi0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0
LT5zZXRET01BcHBsaWNhdGlvbkNhY2hlKDApOwotI2VuZGlmCiAgICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpsb2FkZXJEZXRhY2hlZEZyb21GcmFtZShtX2ZyYW1lLCB0aGlzKTsKICAgICBt
X2ZyYW1lID0gMDsKIH0KQEAgLTg5OCw5ICs4OTAsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpn
ZXRJY29uRGF0YUZvckljb25VCiB2b2lkIERvY3VtZW50TG9hZGVyOjpoYW5kbGVkT25sb2FkRXZl
bnRzKCkKIHsKICAgICBtX3dhc09ubG9hZEhhbmRsZWQgPSB0cnVlOwotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgYXBwbGljYXRpb25DYWNoZUhvc3QoKS0+c3RvcERl
ZmVycmluZ0V2ZW50cygpOwotI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCShyZXZpc2lvbiA5NTkwOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNDgsOSArMjQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBhY3R1
YWxseSBiZSBhZGRlZCB0byB0aGUgZG9jdW1lbnQuCiAgICAgICAgIHZvaWQgY29tbWl0RGF0YShj
b25zdCBjaGFyKiBieXRlcywgc2l6ZV90IGxlbmd0aCk7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogICAgICAgICBBcHBsaWNhdGlvbkNhY2hlSG9zdCogYXBwbGljYXRp
b25DYWNoZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX2FwcGxpY2F0aW9uQ2FjaGVIb3N0LmdldCgp
OyB9Ci0jZW5kaWYKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgRG9jdW1lbnRMb2FkZXIoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Vic3RpdHV0ZURhdGEmKTsKQEAgLTM0OSwxMCAr
MzQ3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8SWNvbkxvYWREZWNp
c2lvbkNhbGxiYWNrPiBtX2ljb25Mb2FkRGVjaXNpb25DYWxsYmFjazsKICAgICAgICAgUmVmUHRy
PEljb25EYXRhQ2FsbGJhY2s+IG1faWNvbkRhdGFDYWxsYmFjazsKIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIGZyaWVuZCBjbGFzcyBBcHBsaWNhdGlvbkNh
Y2hlSG9zdDsgIC8vIGZvciBzdWJzdGl0dXRlIHJlc291cmNlIGRlbGl2ZXJ5CiAgICAgICAgIE93
blB0cjxBcHBsaWNhdGlvbkNhY2hlSG9zdD4gbV9hcHBsaWNhdGlvbkNhY2hlSG9zdDsKLSNlbmRp
ZgogICAgIH07CiAKICAgICBpbmxpbmUgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVjb3JkTWVtb3J5
Q2FjaGVMb2FkRm9yRnV0dXJlQ2xpZW50Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdXJsKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE4NCwxMCArMTg0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSB7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFw
cENhY2hlU2l6ZShpbnQ2NF90KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QpIHsgfQotI2VuZGlm
CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICB2aXJ0dWFsIE5vdGlmaWNhdGlvblBy
ZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI2MzQsMTQgKzI2MzQsMTAgQEAgdW5zaWduZWQgbG9uZyBGcmFtZUxvYWRlcjo6bG9hZFJlc291
cmNlUwogICAgIGlmIChlcnJvci5pc051bGwoKSkgewogICAgICAgICBBU1NFUlQoIW5ld1JlcXVl
c3QuaXNOdWxsKCkpOwogICAgICAgICAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgICAgICBpZiAoIWRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0
KCktPm1heWJlTG9hZFN5bmNocm9ub3VzbHkobmV3UmVxdWVzdCwgZXJyb3IsIHJlc3BvbnNlLCBk
YXRhKSkgewotI2VuZGlmCiAgICAgICAgICAgICBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShuZXR3b3JraW5nQ29udGV4dCgpLCBuZXdSZXF1ZXN0LCBzdG9yZWRDcmVk
ZW50aWFscywgZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgICAgICAgICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVy
cm9yLCByZXNwb25zZSwgZGF0YSk7CiAgICAgICAgIH0KLSNlbmRpZgogICAgIH0KICAgICBpbnQg
ZW5jb2RlZERhdGFMZW5ndGggPSByZXNwb25zZS5yZXNvdXJjZUxvYWRJbmZvKCkgPyBzdGF0aWNf
Y2FzdDxpbnQ+KHJlc3BvbnNlLnJlc291cmNlTG9hZEluZm8oKS0+ZW5jb2RlZERhdGFMZW5ndGgp
IDogLTE7CiAgICAgbm90aWZpZXIoKS0+c2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2FnZXMobV9k
b2N1bWVudExvYWRlci5nZXQoKSwgaWRlbnRpZmllciwgcmVzcG9uc2UsIGRhdGEuZGF0YSgpLCBk
YXRhLnNpemUoKSwgZW5jb2RlZERhdGFMZW5ndGgsIGVycm9yKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjEsMTMgKzIyMSwxMSBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNl
bmRSZXF1ZXN0CiAgICAgLy8gRG9uJ3Qgc2V0IHRoaXMgb24gdGhlIGZpcnN0IHJlcXVlc3QuIEl0
IGlzIHNldCB3aGVuIHRoZSBtYWluIGxvYWQgd2FzIHN0YXJ0ZWQuCiAgICAgbV9kb2N1bWVudExv
YWRlci0+c2V0UmVxdWVzdChuZXdSZXF1ZXN0KTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7CiAgICAg
ICAgIC8vIFdlIGNoZWNrZWQgYXBwbGljYXRpb24gY2FjaGUgZm9yIGluaXRpYWwgVVJMLCBub3cg
d2UgbmVlZCB0byBjaGVjayBpdCBmb3IgcmVkaXJlY3RlZCBvbmUuCiAgICAgICAgIEFTU0VSVCgh
bV9zdWJzdGl0dXRlRGF0YS5pc1ZhbGlkKCkpOwogICAgICAgICBkb2N1bWVudExvYWRlcigpLT5h
cHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRNYWluUmVzb3VyY2VGb3JSZWRpcmVjdChu
ZXdSZXF1ZXN0LCBtX3N1YnN0aXR1dGVEYXRhKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIC8vIEZJ
WE1FOiBJZGVhbGx5IHdlJ2Qgc3RvcCB0aGUgSS9PIHVudGlsIHdlIGhlYXIgYmFjayBmcm9tIHRo
ZSBuYXZpZ2F0aW9uIHBvbGljeSBkZWxlZ2F0ZQogICAgIC8vIGxpc3RlbmVyLiBCdXQgdGhlcmUn
cyBubyB3YXkgdG8gZG8gdGhhdCBpbiBwcmFjdGljZS4gU28gaW5zdGVhZCB3ZSBjYW5jZWwgbGF0
ZXIgaWYgdGhlCkBAIC0zNjAsMTAgKzM1OCw4IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpz
dWJzdGl0dXRlTUlNRVQKIAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2Fj
aGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpblJlc3BvbnNlKHJlcXVlc3QoKSwgcikp
CiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRl
cmF0b3IgaXQgPSByLmh0dHBIZWFkZXJGaWVsZHMoKS5maW5kKEF0b21pY1N0cmluZygieC1mcmFt
ZS1vcHRpb25zIikpOwogICAgIGlmIChpdCAhPSByLmh0dHBIZWFkZXJGaWVsZHMoKS5lbmQoKSkg
ewpAQCAtNDUwLDEwICs0NDYsOCBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZURhdGEoCiAjaWYgIVVTRShDRikKICAgICBBU1NFUlQoIWRlZmVyc0xvYWRpbmcoKSk7CiAjZW5k
aWYKLSAKLSAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKwogICAgIGRvY3Vt
ZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1haW5SZXNvdXJjZURhdGFSZWNl
aXZlZChkYXRhLCBsZW5ndGgsIGVuY29kZWREYXRhTGVuZ3RoLCBhbGxBdE9uY2UpOwotI2VuZGlm
CiAKICAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNs
dWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxhc3QKICAgICAvLyByZWZlcmVuY2UgdG8gdGhp
cyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KQEAgLTQ3NSwyNyArNDY5
LDIwIEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW4KICAgICAvLyBU
aGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2li
bHkgcmVtb3ZpbmcgdGhlIGxhc3QKICAgICAvLyByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QuCiAg
ICAgUmVmUHRyPE1haW5SZXNvdXJjZUxvYWRlcj4gcHJvdGVjdCh0aGlzKTsKLQotI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgUmVmUHRyPERvY3VtZW50TG9hZGVyPiBk
bCA9IGRvY3VtZW50TG9hZGVyKCk7Ci0jZW5kaWYKIAogICAgIEFTU0VSVCghZG9jdW1lbnRMb2Fk
ZXIoKS0+dGltaW5nKCktPnJlc3BvbnNlRW5kKTsKICAgICBkb2N1bWVudExvYWRlcigpLT50aW1p
bmcoKS0+cmVzcG9uc2VFbmQgPSBmaW5pc2hUaW1lID8gZmluaXNoVGltZSA6IChtX3RpbWVPZkxh
c3REYXRhUmVjZWl2ZWQgPyBtX3RpbWVPZkxhc3REYXRhUmVjZWl2ZWQgOiBjdXJyZW50VGltZSgp
KTsKICAgICBmcmFtZUxvYWRlcigpLT5maW5pc2hlZExvYWRpbmcoKTsKICAgICBSZXNvdXJjZUxv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKLSAgICAKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQorCiAgICAgZGwtPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkt
PmZpbmlzaGVkTG9hZGluZ01haW5SZXNvdXJjZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgTWFpblJl
c291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKGRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yTWFpbkVycm9y
KHJlcXVlc3QoKSwgZXJyb3IpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAgIC8vIFRo
ZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3aGVyZSBjYWxsYmFja3MgY2FuIGJlIGRpc3BhdGNo
ZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZlcnJlZC4KICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9i
bGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFpbHMuCkBAIC01OTksOSArNTg2LDcgQEAgYm9vbCBN
YWluUmVzb3VyY2VMb2FkZXI6OmxvYWQoY29uc3QgUmVzbwogICAgIGRvY3VtZW50TG9hZGVyKCkt
PnRpbWluZygpLT5mZXRjaFN0YXJ0ID0gY3VycmVudFRpbWUoKTsKICAgICBSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdChyKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAg
ICAgZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFp
blJlc291cmNlKHJlcXVlc3QsIG1fc3Vic3RpdHV0ZURhdGEpOwotI2VuZGlmCiAKICAgICBib29s
IGRlZmVyID0gZGVmZXJzTG9hZGluZygpOwogICAgIGlmIChkZWZlcikgewpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0MywxMSArMTQzLDkgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgIGlmICht
X2RvY3VtZW50TG9hZGVyLT5zY2hlZHVsZUFyY2hpdmVMb2FkKHRoaXMsIG1fcmVxdWVzdCwgbV9y
ZXF1ZXN0LnVybCgpKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCi0gICAgCi0jaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKwogICAgIGlmIChtX2RvY3VtZW50TG9hZGVyLT5h
cHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRSZXNvdXJjZSh0aGlzLCBtX3JlcXVlc3Qs
IG1fcmVxdWVzdC51cmwoKSkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogCiAgICAgaWYgKG1f
ZGVmZXJzTG9hZGluZykgewogICAgICAgICBtX2RlZmVycmVkUmVxdWVzdCA9IG1fcmVxdWVzdDsK
QEAgLTIxMSwxMCArMjA5LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6Y2xlYXJSZXNvdXJjZURh
dGEoKQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQog
ewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKCFmYXN0TWFs
bG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKSkKICAgICAg
ICAgQ1JBU0goKTsKLSNlbmRpZgogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2Fk
ZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNIKCk7CiAgICAgLy8gUHJvdGVjdCB0aGlzIGlu
IHRoaXMgZGVsZWdhdGUgbWV0aG9kIHNpbmNlIHRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2Fu
IGRvCkBAIC0yMzksMjAgKzIzNSwxNiBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJl
cXVlc3QoUmVzCiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKHVuc2lnbmVkIGxv
bmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgaWYgKCFmYXN0TWFsbG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5h
cHBsaWNhdGlvbkNhY2hlSG9zdCgpKSkKICAgICAgICAgQ1JBU0goKTsKLSNlbmRpZgogICAgIGlm
ICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENS
QVNIKCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgaWYgKCFmYXN0TWFsbG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpKSkKICAgICAgICAgQ1JBU0goKTsKLSNlbmRpZgogICAgIGlmICghZmFz
dE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNIKCk7
CiAgICAgQVNTRVJUKCFtX3JlYWNoZWRUZXJtaW5hbFN0YXRlKTsKQEAgLTI3MiwxMCArMjY0LDgg
QEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKAogCiB2b2lkIFJlc291
cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBs
b25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIGJvb2wgYWxsQXRPbmNlKQogewotI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKCFtX2NhbmNlbGxlZCAmJiAhZmFz
dE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAg
ICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIW1fY2FuY2VsbGVkICYmICFmYXN0TWFs
bG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5mcmFtZSgpKSkKICAgICAgICAgQ1JBU0goKTsKICAg
ICAvLyBUaGUgZm9sbG93aW5nIGFzc2VydGlvbnMgYXJlIG5vdCBxdWl0ZSB2YWxpZCBoZXJlLCBz
aW5jZSBhIHN1YmNsYXNzCkBAIC00MjIsMTAgKzQxMiw4IEBAIFJlc291cmNlRXJyb3IgUmVzb3Vy
Y2VMb2FkZXI6OmNhbm5vdFNob3cKIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1
ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2Fj
aGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yUmVkaXJlY3QodGhpcywgcmVxdWVzdCwgcmVk
aXJlY3RSZXNwb25zZSkpCiAgICAgICAgIHJldHVybjsKLSNlbmRpZgogICAgIHdpbGxTZW5kUmVx
dWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKIH0KIApAQCAtNDM2LDEwICs0MjQsOCBA
QCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YShSZXNvdXJjCiAKIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkt
Pm1heWJlTG9hZEZhbGxiYWNrRm9yUmVzcG9uc2UodGhpcywgcmVzcG9uc2UpKQogICAgICAgICBy
ZXR1cm47Ci0jZW5kaWYKICAgICBkaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UpOwogfQogCkBA
IC00NTIsMTAgKzQzOCw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJl
c28KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSBmaW5pc2hUaW1lKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgaWYgKCFmYXN0TWFsbG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpKSkKICAgICAgICAgQ1JBU0goKTsKLSNlbmRpZgogICAgIGlmICghZmFz
dE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNIKCk7
CiAgICAgZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKQEAgLTQ2MywyNSArNDQ3LDE5IEBA
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmUKIAogdm9pZCBSZXNvdXJj
ZUxvYWRlcjo6ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKCFm
YXN0TWFsbG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKSkK
ICAgICAgICAgQ1JBU0goKTsKLSNlbmRpZgogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1l
bnRMb2FkZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBpZiAoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRp
b25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkRmFsbGJhY2tGb3JFcnJvcih0aGlzLCBlcnJvcikpCiAg
ICAgICAgIHJldHVybjsKLSNlbmRpZgogICAgIGRpZEZhaWwoZXJyb3IpOwogfQogCiB2b2lkIFJl
c291cmNlTG9hZGVyOjp3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKikKIHsKLSNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1l
bnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0j
ZW5kaWYKICAgICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkp
KQogICAgICAgICBDUkFTSCgpOwogICAgIGRpZEZhaWwoYmxvY2tlZEVycm9yKCkpOwpAQCAtNDg5
LDEwICs0NjcsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3YXNCbG9ja2VkKFJlc291cmNlCiAK
IHZvaWQgUmVzb3VyY2VMb2FkZXI6OmNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKQogewot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKCFmYXN0TWFsbG9j
U2l6ZShkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKSkKICAgICAgICAg
Q1JBU0goKTsKLSNlbmRpZgogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIo
KS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNIKCk7CiAgICAgZGlkRmFpbChjYW5ub3RTaG93VVJM
RXJyb3IoKSk7CkBAIC01MDAsMTAgKzQ3Niw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmNhbm5v
dFNob3dVUkwoUmVzb3UKIAogYm9vbCBSZXNvdXJjZUxvYWRlcjo6c2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAg
aWYgKCFmYXN0TWFsbG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9z
dCgpKSkKICAgICAgICAgQ1JBU0goKTsKLSNlbmRpZgogICAgIGlmICghZmFzdE1hbGxvY1NpemUo
ZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNIKCk7CiAKQEAgLTU2MCwx
MCArNTM0LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6cmVjZWl2ZWRDYW5jZWxsYXRpbwogCiB2
b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIENh
Y2hlU3RvcmFnZVBvbGljeSYgcG9saWN5KQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCiAgICAgaWYgKCFmYXN0TWFsbG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5hcHBs
aWNhdGlvbkNhY2hlSG9zdCgpKSkKICAgICAgICAgQ1JBU0goKTsKLSNlbmRpZgogICAgIGlmICgh
ZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNI
KCk7CiAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzcyNDk1NTM+IC0gVGhlcmUgYXJlIHJlcG9ydHMg
b2YgY3Jhc2hlcyB3aXRoIHRoaXMgbWV0aG9kIGJlaW5nIGNhbGxlZApJbmRleDogU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw5ICsx
NDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBSZXNv
dXJjZUxvYWRlcihGcmFtZSosIFJlc291cmNlTG9hZGVyT3B0aW9ucyk7CiAKLSNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICBmcmllbmQgY2xhc3MgQXBwbGljYXRp
b25DYWNoZUhvc3Q7ICAvLyBmb3IgYWNjZXNzIHRvIHJlcXVlc3QoKQotI2VuZGlmCiAgICAgICAg
IGZyaWVuZCBjbGFzcyBSZXNvdXJjZUxvYWRTY2hlZHVsZXI7IC8vIGZvciBhY2Nlc3MgdG8gc3Rh
cnQoKQogICAgICAgICAvLyBzdGFydCgpIGFjdHVhbGx5IHNlbmRzIHRoZSBsb2FkIHRvIHRoZSBu
ZXR3b3JrICh1bmxlc3MgdGhlIGxvYWQgaXMgYmVpbmcgCiAgICAgICAgIC8vIGRlZmVycmVkKSBh
bmQgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGJ5IFJlc291cmNlTG9hZFNjaGVkdWxlciBvciBzZXRE
ZWZlcnNMb2FkaW5nKCkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGxp
Y2F0aW9uQ2FjaGUuaCIKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0K
ICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2UuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgpA
QCAtMjI3LDUgKzIyNSwzIEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZTo6ZHVtcCgpCiAjZW5kaWYK
IAogfQotCi0jZW5kaWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUu
aAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVm
IEFwcGxpY2F0aW9uQ2FjaGVfaAogI2RlZmluZSBBcHBsaWNhdGlvbkNhY2hlX2gKIAotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
QEAgLTExNyw2ICsxMTUsNCBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
LSNlbmRpZiAvLyBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjZW5kaWYgLy8g
QXBwbGljYXRpb25DYWNoZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAkocmV2aXNpb24gOTU5MDgp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIgogCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGUuaCIKICNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVSZXNvdXJjZS5oIgpAQCAtMTE1OCw3ICsxMTU2LDQgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
R3JvdXA6OmNsZWFyU3RvcmFnZQogICAgICAgICAoKml0KS0+Y2xlYXJTdG9yYWdlSUQoKTsKIH0K
IAotCiB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlR3JvdXAuaAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDgg
KzI2LDYgQEAKICNpZm5kZWYgQXBwbGljYXRpb25DYWNoZUdyb3VwX2gKICNkZWZpbmUgQXBwbGlj
YXRpb25DYWNoZUdyb3VwX2gKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
Ci0KICNpbmNsdWRlICJET01BcHBsaWNhdGlvbkNhY2hlLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCkBAIC0yMDcsNiArMjA1LDQgQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKLQogI2VuZGlmIC8vIEFwcGxpY2F0aW9uQ2FjaGVHcm91cF9oCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlSG9zdC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYs
OCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmgiCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZS5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oIgpAQCAtNDY0LDUgKzQ2
MiwzIEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmlzQXBwbGljYXRpb24KIH0KIAogfSAg
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmICAvLyBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVIb3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDggKzMxLDYgQEAKICNpZm5kZWYgQXBwbGljYXRpb25DYWNoZUhvc3RfaAogI2Rl
ZmluZSBBcHBsaWNhdGlvbkNhY2hlSG9zdF9oCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQotCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTIwOCw1ICsyMDYsNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAgLy8gRU5BQkxFKE9G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICNlbmRpZiAgLy8gQXBwbGljYXRpb25DYWNoZUhvc3Rf
aApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDYgQEAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hl
UmVzb3VyY2UuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBcHBsaWNhdGlvbkNhY2hl
UmVzb3VyY2U6OkFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCB1bnNpZ25lZCB0eXBlLCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gZGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoKQpAQCAtODcsNSArODUsMyBAQCB2
b2lkIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZTo6ZHVtcFR5cGUoCiAjZW5kaWYKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEFwcGxpY2F0aW9uQ2FjaGVSZXNv
dXJjZV9oCiAjZGVmaW5lIEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZV9oCiAKLSNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZVJlc291cmNl
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTc0LDYgKzcyLDQgQEAgcHJpdmF0ZToKICAg
ICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCi0KICNlbmRpZiAvLyBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VfaApJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJB
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUykKLQogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRlICJBcHBs
aWNhdGlvbkNhY2hlR3JvdXAuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgpA
QCAtMTUzOSw1ICsxNTM3LDMgQEAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UmIGNhY2hlU3RvcmFn
ZSgpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZV9oCiAjZGVmaW5lIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlX2gKIAot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUgIlNR
TGl0ZURhdGFiYXNlLmgiCkBAIC0xNTUsNiArMTUzLDQgQEAgQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UmIGNhY2hlU3RvcmFnZSgpOwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5k
aWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2VuZGlmIC8vIEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9ET01BcHBsaWNhdGlvbkNhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5jcHAJKHJldmlzaW9uIDk1OTA4KQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMTI4LDUg
KzEyNiwzIEBAIEV2ZW50VGFyZ2V0RGF0YSogRE9NQXBwbGljYXRpb25DYWNoZTo6ZW4KIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBs
aWNhdGlvbkNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIERPTUFwcGxpY2F0aW9uQ2FjaGVfaAogI2RlZmlu
ZSBET01BcHBsaWNhdGlvbkNhY2hlX2gKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgpAQCAtOTIsNiArOTAsNCBAQCBw
cml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjZW5kaWYgLy8gRE9NQXBwbGljYXRpb25DYWNoZV9o
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNo
ZS5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFw
cGxpY2F0aW9uQ2FjaGUuaWRsCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNyArMjYsNiBAQAogbW9kdWxlIG9mZmxpbmUgewogIAogICAgIGludGVyZmFjZSBbCi0gICAg
ICAgIENvbmRpdGlvbmFsPU9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUywKICAgICAgICAgRXZlbnRU
YXJnZXQsCiAgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKICAgICAgICAgRG9udENoZWNrRW51bXMs
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJzZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9NYW5pZmVzdFBh
cnNlci5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL01hbmlmZXN0UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1hbmlmZXN0UGFyc2VyLmgiCiAKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFy
YWN0ZXJOYW1lcy5oPgpAQCAtMTgyLDcgKzE4MCw1IEBAIGJvb2wgcGFyc2VNYW5pZmVzdChjb25z
dCBLVVJMJiBtYW5pZmVzdFUKIAogICAgIHJldHVybiB0cnVlOwogfQotICAgIAotfQogCi0jZW5k
aWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKK30KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9NYW5pZmVzdFBhcnNlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9NYW5pZmVzdFBhcnNlci5oCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9NYW5pZmVzdFBhcnNlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIE1hbmlmZXN0UGFyc2Vy
X2gKICNkZWZpbmUgTWFuaWZlc3RQYXJzZXJfaAogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGUuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDUsNiArNDMsNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIH0KIAot
I2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNlbmRpZiAvLyBN
YW5pZmVzdFBhcnNlcl9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2hyb21pdW0vUmVz
b3VyY2VMb2FkZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2Nocm9taXVtL1Jlc291cmNlTG9hZGVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5NTkwOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jaHJvbWl1bS9SZXNvdXJjZUxvYWRlckNocm9taXVt
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTAgKzQ0LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRl
cjo6ZGlkRG93bmxvYWREYXRhKFJlcwogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWREb3dubG9h
ZERhdGEoaW50IGxlbmd0aCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogICAgIGlmICghbV9jYW5jZWxsZWQgJiYgIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVy
KCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkpKQogICAgICAgICBDUkFTSCgpOwotI2VuZGlmCiAg
ICAgaWYgKCFtX2NhbmNlbGxlZCAmJiAhZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+
ZnJhbWUoKSkpCiAgICAgICAgIENSQVNIKCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTgzLDcgKzE4Myw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSos
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKSA9IDA7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShP
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hl
biB0aGUgYXBwbGljYXRpb24gY2FjaGUgZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAogICAg
ICAgICAvLyBiZWNhdXNlIHN0b3JpbmcgaXQgd291bGQgZ3JvdyB0aGUgZGF0YWJhc2UgZmlsZSBw
YXN0IGl0cyBkZWZpbmVkIG1heGltdW0KICAgICAgICAgLy8gc2l6ZSBvciBwYXN0IHRoZSBhbW91
bnQgb2YgZnJlZSBzcGFjZSBvbiB0aGUgZGV2aWNlLiAKQEAgLTIwMCw3ICsxOTksNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIG90aGVyIGV4aXN0aW5nIGNhY2hlcyBmb3IgdGhl
IG9yaWdpbiB0aGF0IHdvdWxkIG5vdCBiZSByZXBsYWNlZCBieQogICAgICAgICAvLyB0aGUgbmV3
IGNhY2hlLgogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgPSAwOwot
I2VuZGlmCiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkYXNoYm9hcmRSZWdpb25zQ2hhbmdlZCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMiwxMSArNTAyLDkgQEAgdm9pZCBET01XaW5kb3c6
OmNsZWFyKCkKICAgICBtX2xvY2FsU3RvcmFnZSA9IDA7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShP
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKG1fYXBwbGljYXRpb25DYWNoZSkKICAg
ICAgICAgbV9hcHBsaWNhdGlvbkNhY2hlLT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICBtX2FwcGxp
Y2F0aW9uQ2FjaGUgPSAwOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAg
ICBpZiAobV9ub3RpZmljYXRpb25zKQpAQCAtNTk5LDE0ICs1OTcsMTIgQEAgQ29uc29sZSogRE9N
V2luZG93Ojpjb25zb2xlKCkgY29uc3QKICAgICByZXR1cm4gbV9jb25zb2xlLmdldCgpOwogfQog
Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIERPTUFwcGxpY2F0aW9uQ2Fj
aGUqIERPTVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Fw
cGxpY2F0aW9uQ2FjaGUpCiAgICAgICAgIG1fYXBwbGljYXRpb25DYWNoZSA9IERPTUFwcGxpY2F0
aW9uQ2FjaGU6OmNyZWF0ZShtX2ZyYW1lKTsKICAgICByZXR1cm4gbV9hcHBsaWNhdGlvbkNhY2hl
LmdldCgpOwogfQotI2VuZGlmCiAKIE5hdmlnYXRvciogRE9NV2luZG93OjpuYXZpZ2F0b3IoKSBj
b25zdAogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4OCwx
MCArMzg4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBTdG9yYWdlSW5mbyogd2Vi
a2l0U3RvcmFnZUluZm8oKSBjb25zdDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKICAgICAgICAgRE9NQXBwbGljYXRpb25DYWNoZSogYXBwbGljYXRpb25D
YWNoZSgpIGNvbnN0OwogICAgICAgICBET01BcHBsaWNhdGlvbkNhY2hlKiBvcHRpb25hbEFwcGxp
Y2F0aW9uQ2FjaGUoKSBjb25zdCB7IHJldHVybiBtX2FwcGxpY2F0aW9uQ2FjaGUuZ2V0KCk7IH0K
LSNlbmRpZgogCiAjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKICAgICAgICAgLy8gVGhp
cyBpcyB0aGUgaW50ZXJmYWNlIG9yaWVudGF0aW9uIGluIGRlZ3JlZXMuIFNvbWUgZXhhbXBsZXMg
YXJlOgpAQCAtNDYwLDkgKzQ1OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0
YWJsZSBSZWZQdHI8SURCRmFjdG9yeT4gbV9pZGJGYWN0b3J5OwogI2VuZGlmCiAKLSNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICBtdXRhYmxlIFJlZlB0cjxET01B
cHBsaWNhdGlvbkNhY2hlPiBtX2FwcGxpY2F0aW9uQ2FjaGU7Ci0jZW5kaWYKIAogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKQogICAgICAgICBtdXRhYmxlIFJlZlB0cjxOb3RpZmljYXRpb25DZW50
ZXI+IG1fbm90aWZpY2F0aW9uczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJl
dmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjQsOSArMTY0LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIFdl
YktpdFBvaW50IHdlYmtpdENvbnZlcnRQb2ludEZyb21Ob2RlVG9QYWdlKGluIFtPcHRpb25hbD1D
YWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSBub2RlLCAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBXZWJLaXRQb2ludCBwKTsKIAotI2lmIGRlZmluZWQoRU5BQkxFX09GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykgJiYgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIERPTUFwcGxpY2F0aW9uQ2Fj
aGUgYXBwbGljYXRpb25DYWNoZTsKLSNlbmRpZiAgICAKICNpZiBkZWZpbmVkKEVOQUJMRV9TUUxf
REFUQUJBU0UpICYmIEVOQUJMRV9TUUxfREFUQUJBU0UKICAgICAgICAgW0VuYWJsZWRBdFJ1bnRp
bWVdIERhdGFiYXNlIG9wZW5EYXRhYmFzZShpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5n
IHZlcnNpb24sIGluIERPTVN0cmluZyBkaXNwbGF5TmFtZSwgaW4gdW5zaWduZWQgbG9uZyBlc3Rp
bWF0ZWRTaXplLCBpbiBbQ2FsbGJhY2ssIE9wdGlvbmFsXSBEYXRhYmFzZUNhbGxiYWNrIGNyZWF0
aW9uQ2FsbGJhY2spCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGli
eG1sMi5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzAsMTAgKzgz
MCw4IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKGMKICAgICBpZiAo
bV92aWV3ICYmICFuZXdFbGVtZW50LT5hdHRhY2hlZCgpKQogICAgICAgICBuZXdFbGVtZW50LT5h
dHRhY2goKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYg
KG5ld0VsZW1lbnQtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpodG1sVGFnKSkKICAgICAgICAgc3Rh
dGljX2Nhc3Q8SFRNTEh0bWxFbGVtZW50Kj4obmV3RWxlbWVudC5nZXQoKSktPmluc2VydGVkQnlQ
YXJzZXIoKTsKLSNlbmRpZgogCiAgICAgaWYgKCFtX3BhcnNpbmdGcmFnbWVudCAmJiBpc0ZpcnN0
RWxlbWVudCAmJiBkb2N1bWVudCgpLT5mcmFtZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFt
ZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlclF0LmNw
cAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3Vt
ZW50UGFyc2VyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjksMTAgKzUyOSw4IEBAIHZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlU3RhcnRFbGVtZW4KICAgICBpZiAobV92aWV3ICYmICFu
ZXdFbGVtZW50LT5hdHRhY2hlZCgpKQogICAgICAgICBuZXdFbGVtZW50LT5hdHRhY2goKTsKIAot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKG5ld0VsZW1lbnQt
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpodG1sVGFnKSkKICAgICAgICAgc3RhdGljX2Nhc3Q8SFRN
TEh0bWxFbGVtZW50Kj4obmV3RWxlbWVudC5nZXQoKSktPmluc2VydGVkQnlQYXJzZXIoKTsKLSNl
bmRpZgogCiAgICAgaWYgKGlzRmlyc3RFbGVtZW50ICYmIGRvY3VtZW50KCktPmZyYW1lKCkpCiAg
ICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5kaXNwYXRjaERvY3VtZW50RWxl
bWVudEF2YWlsYWJsZSgpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAx
MS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5
cyBlbmFibGUgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6YXBwbGljYXRpb25DYWNoZURpcmVjdG9y
eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXI6OmdldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorCiAyMDExLTA5LTIzICBBZGFtIEtsZWluICA8YWRh
bWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJT
IGZlYXR1cmUgZmxhZwpJbmRleDogU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNl
L1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcg
Y29weSkKQEAgLTc2LDcgKzc2LDYgQEAgRU5BQkxFX01FVEVSX1RBRyA9IEVOQUJMRV9NRVRFUl9U
QUc7CiBFTkFCTEVfTUhUTUwgPSA7CiBFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTID0gOwogRU5B
QkxFX05PVElGSUNBVElPTlMgPSA7Ci1FTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TID0g
RU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUzsKIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlf
QVBJID0gOwogRU5BQkxFX1BST0dSRVNTX1RBRyA9IEVOQUJMRV9QUk9HUkVTU19UQUc7CiBFTkFC
TEVfUVVPVEEgPSA7CkBAIC05Nyw0ICs5Niw0IEBAIEVOQUJMRV9YSFRNTE1QID0gOwogRU5BQkxF
X1hQQVRIID0gRU5BQkxFX1hQQVRIOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVB
VFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5B
QkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0RB
VEFCQVNFKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9E
SVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRklMRV9TWVNU
RU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9H
RU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9N
QVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykg
JChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxF
X05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChFTkFC
TEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9R
VU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVT
VF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcp
ICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVO
QUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19U
UkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NP
Q0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hI
VE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9
ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAk
KEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01F
U1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1Mz
X0ZMRVhCT1gpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFC
TEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJ
TFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9B
RCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9G
SUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQo
RU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVf
SU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9E
RUJVR0dFUikgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJM
RV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVS
X1RBRykgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQo
RU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJM
RV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5B
QkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9O
VFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxF
X1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJM
RV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChF
TkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAJKHJldmlzaW9uIDk1
OTA4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDExICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBTdHJp
bmcgV2ViQ29udGV4dDo6YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpCiB7Ci0jaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICByZXR1cm4gV2ViQ29yZTo6Y2FjaGVTdG9y
YWdlKCkuY2FjaGVEaXJlY3RvcnkoKTsKLSNlbHNlCi0gICAgcmV0dXJuIFFTdHJpbmcoKTsKLSNl
bmRpZgogfQogCiB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDQsMTEgKzIwNCw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY28K
ICAgICBTdG9yYWdlVHJhY2tlcjo6aW5pdGlhbGl6ZVRyYWNrZXIocGFyYW1ldGVycy5sb2NhbFN0
b3JhZ2VEaXJlY3RvcnksIDApOwogICAgIG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gcGFyYW1l
dGVycy5sb2NhbFN0b3JhZ2VEaXJlY3Rvcnk7CiAjZW5kaWYKLSAgICAKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQorCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmFwcGxpY2F0aW9u
Q2FjaGVEaXJlY3RvcnkuaXNFbXB0eSgpKQogICAgICAgICBjYWNoZVN0b3JhZ2UoKS5zZXRDYWNo
ZURpcmVjdG9yeShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOwotI2VuZGlm
CiAKICAgICBzZXRTaG91bGRUcmFja1Zpc2l0ZWRMaW5rcyhwYXJhbWV0ZXJzLnNob3VsZFRyYWNr
VmlzaXRlZExpbmtzKTsKICAgICBzZXRDYWNoZU1vZGVsKHN0YXRpY19jYXN0PHVpbnQzMl90Pihw
YXJhbWV0ZXJzLmNhY2hlTW9kZWwpKTsKQEAgLTc3MSwxMCArNzY5LDggQEAgdm9pZCBXZWJQcm9j
ZXNzOjpjbGVhclJlc291cmNlQ2FjaGVzKFJlcwogCiB2b2lkIFdlYlByb2Nlc3M6OmNsZWFyQXBw
bGljYXRpb25DYWNoZSgpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
ICAgICAvLyBFbXB0eSB0aGUgYXBwbGljYXRpb24gY2FjaGUuCiAgICAgY2FjaGVTdG9yYWdlKCku
ZW1wdHkoKTsKLSNlbmRpZgogfQogCiAjaWYgIUVOQUJMRShQTFVHSU5fUFJPQ0VTUykKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMzgsOSArMjM4LDcgQEAgcHJpdmF0ZToKICAgICAKICAgICBTdHJpbmcgbV9sb2NhbFN0b3Jh
Z2VEaXJlY3Rvcnk7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
IFJlZlB0cjxTYW5kYm94RXh0ZW5zaW9uPiBtX2FwcGxpY2F0aW9uQ2FjaGVQYXRoRXh0ZW5zaW9u
OwotI2VuZGlmCiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAgICAgUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDkg
KzYwLDcgQEAgdm9pZCBXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6Z2V0QXBwbAogCiAgICAg
SGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTZWN1cml0eU9yaWdpbkhhc2g+IG9yaWdp
bnM7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGNhY2hlU3Rv
cmFnZSgpLmdldE9yaWdpbnNXaXRoQ2FjaGUob3JpZ2lucyk7Ci0jZW5kaWYKIAogICAgIFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+IGlkZW50aWZpZXJzOwogICAgIGlkZW50aWZpZXJzLnJlc2Vy
dmVDYXBhY2l0eShvcmlnaW5zLnNpemUoKSk7CkBAIC04NywyMiArODUsMTggQEAgdm9pZCBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVsZXRlRQogewogICAgIFdlYlByb2Nlc3M6OkxvY2Fs
VGVybWluYXRpb25EaXNhYmxlciB0ZXJtaW5hdGlvbkRpc2FibGVyKFdlYlByb2Nlc3M6OnNoYXJl
ZCgpKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRh
dGEucHJvdG9jb2wsIG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KTsKICAgICBpZiAo
IW9yaWdpbikKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIEFwcGxpY2F0aW9uQ2FjaGU6OmRl
bGV0ZUNhY2hlRm9yT3JpZ2luKG9yaWdpbi5nZXQoKSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlcjo6ZGVsZXRlQWxsRW50cmllcygpCiB7CiAgICAgV2ViUHJv
Y2Vzczo6TG9jYWxUZXJtaW5hdGlvbkRpc2FibGVyIHRlcm1pbmF0aW9uRGlzYWJsZXIoV2ViUHJv
Y2Vzczo6c2hhcmVkKCkpOwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
ICAgICBjYWNoZVN0b3JhZ2UoKS5kZWxldGVBbGxFbnRyaWVzKCk7Ci0jZW5kaWYKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lv
biA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQzLDcgKzU0Myw2IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXUKICNlbmRpZgogCiAKLSNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAt
NTUzLDcgKzU1Miw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb24K
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGFzaGJvYXJkUmVnaW9uc0NoYW5n
ZWQoKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEzNSwxMCArMTM1LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUpIE9WRVJSSURFOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGlu
dDY0X3Qgc3BhY2VOZWVkZWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRf
dCBzcGFjZU5lZWRlZCkgT1ZFUlJJREU7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRf
U1VQUE9SVCkKICAgICB2aXJ0dWFsIHZvaWQgZGFzaGJvYXJkUmVnaW9uc0NoYW5nZWQoKSBPVkVS
UklERTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjMgQEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmVhdHVyZXMu
Z3lwaToKKyAgICAgICAgKiBzcmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAq
IHNyYy9BcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsLmg6CisgICAgICAgICogc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSk6CisgICAgICAgICogc3JjL0Nocm9tZUNsaWVudEltcGwuaDoKKyAgICAg
ICAgKiBzcmMvV2ViRGF0YVNvdXJjZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEYXRh
U291cmNlSW1wbDo6YXBwbGljYXRpb25DYWNoZUhvc3QpOgorICAgICAgICAqIHNyYy9XZWJSdW50
aW1lRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6OmVu
YWJsZUFwcGxpY2F0aW9uQ2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVy
ZXM6OmlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQpOgorCiAyMDExLTA5LTIzICBBZGFtIEtsZWlu
ICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBFTkFCTEVfTVVUQVRJT05fT0JT
RVJWRVJTIGZlYXR1cmUgZmxhZwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aQkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDYgQEAKICAgICAgICdFTkFCTEVfTUhUTUw9
MScsCiAgICAgICAnRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUz0wJywKICAgICAgICdFTkFCTEVf
Tk9USUZJQ0FUSU9OUz0xJywKLSAgICAgICdFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
PTEnLAogICAgICAgJ0VOQUJMRV9PUklFTlRBVElPTl9FVkVOVFM9MCcsCiAgICAgICAnRU5BQkxF
X1BBR0VfVklTSUJJTElUWV9BUEk9MScsCiAgICAgICAnRU5BQkxFX1BST0dSRVNTX1RBRz0xJywK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BcHBsaWNhdGlvbkNh
Y2hlSG9zdC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw4ICszMSw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3Qu
aCIKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJB
cHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIu
aCIKICNpbmNsdWRlICJET01BcHBsaWNhdGlvbkNhY2hlLmgiCkBAIC0zMDIsNSArMzAwLDMgQEAg
Ym9vbCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6aXNBcHBsaWNhdGlvbgogfQogCiB9ICAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BcHBsaWNhdGlvbkNhY2hlSG9z
dEludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXBw
bGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWwuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsOCArMzEsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkFwcGxpY2F0aW9uQ2FjaGVIb3N0LmgiCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQotCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJXZWJBcHBs
aWNhdGlvbkNhY2hlSG9zdENsaWVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lQ2xpZW50LmgiCkBA
IC04Miw1ICs4MCwzIEBAIHByaXZhdGU6CiB9OwogCiB9Ci0KLSNlbmRpZiAgLy8gRU5BQkxFKE9G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDcsNyArMjA3LDYgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJBY2Nlc3NpYgogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5
Um9sZURvY3VtZW50UmVnaW9uLCBEb2N1bWVudFJlZ2lvblJvbGUpOwogQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXZWJBY2Nlc3NpYmlsaXR5Um9sZVVzZXJJbnRlcmZhY2VUb29sdGlwLCBV
c2VySW50ZXJmYWNlVG9vbHRpcFJvbGUpOwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUykKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBwbGljYXRpb25DYWNo
ZUhvc3Q6OlVuY2FjaGVkLCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6VU5DQUNIRUQpOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdDo6SWRsZSwgQXBw
bGljYXRpb25DYWNoZUhvc3Q6OklETEUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q2hlY2tpbmcsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpD
SEVDS0lORyk7CkBAIC0yMjIsNyArMjIxLDYgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJBcHBsaWNhdAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJBcHBsaWNhdGlv
bkNhY2hlSG9zdDo6VXBkYXRlUmVhZHlFdmVudCwgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlVQREFU
RVJFQURZX0VWRU5UKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBwbGljYXRp
b25DYWNoZUhvc3Q6OkNhY2hlZEV2ZW50LCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6Q0FDSEVEX0VW
RU5UKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhv
c3Q6Ok9ic29sZXRlRXZlbnQsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpPQlNPTEVURV9FVkVOVCk7
Ci0jZW5kaWYKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJDbGlwYm9hcmQ6OkZv
cm1hdFBsYWluVGV4dCwgUGFzdGVib2FyZFByaXZhdGU6OlBsYWluVGV4dEZvcm1hdCk7CiBDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkNsaXBib2FyZDo6Rm9ybWF0SFRNTCwgUGFzdGVi
b2FyZFByaXZhdGU6OkhUTUxGb3JtYXQpOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0NSw3ICs2NDUsNiBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmV4Y2VlZGVkRGF0YWJh
c2VRCiAgICAgLy8gQ2hyb21pdW0gdXNlcnMgY2Fubm90IGN1cnJlbnRseSBjaGFuZ2UgdGhlIGRl
ZmF1bHQgcXVvdGEKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiB2
b2lkIENocm9tZUNsaWVudEltcGw6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFj
ZU5lZWRlZCkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTY1NSw3ICs2NTQsNiBA
QCB2b2lkIENocm9tZUNsaWVudEltcGw6OnJlYWNoZWRBcHBsaWNhdGlvCiB7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpydW5P
cGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2hvb3Nl
cikKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hy
b21lQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsMTAgKzEyOCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKICAgICB2aXJ0dWFs
IHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKAogICAgICAgICBXZWJDb3JlOjpGcmFtZSosIGNv
bnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUpOwotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50
NjRfdCBzcGFjZU5lZWRlZCk7CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3Bh
Y2VOZWVkZWQpOwotI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgdmlydHVh
bCBXZWJDb3JlOjpOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEYXRh
U291cmNlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGF0YVNvdXJjZUltcGwuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIx
LDExICsxMjEsNyBAQCB2b2lkIFdlYkRhdGFTb3VyY2VJbXBsOjpzZXRFeHRyYURhdGEoRXh0CiAK
IFdlYkFwcGxpY2F0aW9uQ2FjaGVIb3N0KiBXZWJEYXRhU291cmNlSW1wbDo6YXBwbGljYXRpb25D
YWNoZUhvc3QoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAg
cmV0dXJuIEFwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWw6OnRvV2ViQXBwbGljYXRpb25DYWNo
ZUhvc3QoRG9jdW1lbnRMb2FkZXI6OmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkpOwotI2Vsc2UKLSAg
ICByZXR1cm4gMDsKLSNlbmRpZgogfQogCiB2b2lkIFdlYkRhdGFTb3VyY2VJbXBsOjpzZXREZWZl
ck1haW5SZXNvdXJjZURhdGFMb2FkKGJvb2wgZGVmZXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAJKHJldmlzaW9uIDk1OTA4
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQwLDE4ICsxNDAsMTIgQEAgYm9vbCBXZWJSdW50aW1lRmVhdHVy
ZXM6OmlzTm90aWZpY2F0aW9ucwogCiB2b2lkIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlQXBw
bGljYXRpb25DYWNoZShib29sIGVuYWJsZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldEFwcGxpY2F0aW9uQ2Fj
aGVFbmFibGVkKGVuYWJsZSk7Ci0jZW5kaWYKIH0KIAogYm9vbCBXZWJSdW50aW1lRmVhdHVyZXM6
OmlzQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmFwcGxpY2F0
aW9uQ2FjaGVFbmFibGVkKCk7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgogfQog
CiB2b2lkIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlRGF0YVRyYW5zZmVySXRlbXMoYm9vbCBl
bmFibGUpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEx
LTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlz
IGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OnJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEVmbC5oOgorICAgICAgICAqIGV3ay9ld2tfbWFpbi5jcHA6CisgICAgICAgIChf
ZXdrX2luaXRfYm9keSk6CisgICAgICAgICogZXdrL2V3a19zZXR0aW5ncy5jcHA6CisgICAgICAg
IChld2tfc2V0dGluZ3NfY2FjaGVfZGlyZWN0b3J5X3BhdGhfc2V0KToKKyAgICAgICAgKGV3a19z
ZXR0aW5nc19jYWNoZV9kaXJlY3RvcnlfcGF0aF9nZXQpOgorCiAyMDExLTA5LTIxICBMdWNhcyBE
ZSBNYXJjaGkgIDxsdWNhcy5kZW1hcmNoaUBwcm9mdXNpb24ubW9iaT4KIAogICAgICAgICBbRUZM
XSBSZXZlcnQgcG9pbnRlciBvcGVyYXRvciBjb2Rpbmcgc3R5bGUgaW4gZXdrCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5j
cHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc0LDcgKzM3NCw2IEBAIHZv
aWQgQ2hyb21lQ2xpZW50RWZsOjpwcmludChGcmFtZSogZnJhbWUKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIHZvaWQgQ2hy
b21lQ2xpZW50RWZsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQp
CiB7CiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KQEAgLTM4NSw3ICszODQsNiBAQCB2
b2lkIENocm9tZUNsaWVudEVmbDo6cmVhY2hlZEFwcGxpY2F0aW9uCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHZvaWQgQ2hy
b21lQ2xpZW50RWZsOjpuZWVkVG91Y2hFdmVudHMoYm9vbCBuZWVkZWQpCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAkocmV2
aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuaAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDEwICsxMTQsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0OwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVk
ZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKLSNlbmRpZgogCiAj
aWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVu
dSgpIHsgfQpJbmRleDogU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwCShyZXZpc2lvbiA5NTkw
OCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE4MiwxMCArMTgyLDcgQEAgRWluYV9Cb29sIF9ld2tfaW5pdF9ib2R5KHZvaWQpCiAgICAg
V1RGOjpTdHJpbmcgd2tkaXIgPSBob21lICsgIi8ud2Via2l0IjsKICAgICBpZiAoV2ViQ29yZTo6
bWFrZUFsbERpcmVjdG9yaWVzKHdrZGlyKSkgewogICAgICAgICBld2tfc2V0dGluZ3Nfd2ViX2Rh
dGFiYXNlX3BhdGhfc2V0KHdrZGlyLnV0ZjgoKS5kYXRhKCkpOwotCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgZXdrX3NldHRpbmdzX2NhY2hlX2RpcmVjdG9y
eV9wYXRoX3NldCh3a2Rpci51dGY4KCkuZGF0YSgpKTsKLSNlbmRpZgogICAgIH0KIAogICAgIC8v
IFRPRE86IHRoaXMgc2hvdWxkIG1vdmUgdG8gV2ViQ29yZSwgYWxyZWFkeSByZXBvcnRlZCB0byB3
ZWJraXQtZ3RrIGZvbGtzOgpJbmRleDogU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5n
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5j
cHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5n
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KIAot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisvLyBGSVhNRTogV2h5IGlzIHRo
ZXJlIGEgZGlyZWN0b3J5IGluIHRoaXMgaW5jbHVkZT8KICNpbmNsdWRlICJhcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogCiBzdGF0aWMgY29uc3QgY2hhciogX2V3a19jYWNoZV9k
aXJlY3RvcnlfcGF0aCA9IDA7CkBAIC0yNTUsNyArMjU1LDYgQEAgY29uc3QgY2hhciogZXdrX3Nl
dHRpbmdzX2RlZmF1bHRfdXNlcl9hZwogCiBFaW5hX0Jvb2wgZXdrX3NldHRpbmdzX2NhY2hlX2Rp
cmVjdG9yeV9wYXRoX3NldChjb25zdCBjaGFyKiBwYXRoKQogewotI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKCFwYXRoKQogICAgICAgICByZXR1cm4gRUlOQV9G
QUxTRTsKIApAQCAtMjY1LDE4ICsyNjQsMTEgQEAgRWluYV9Cb29sIGV3a19zZXR0aW5nc19jYWNo
ZV9kaXJlY3RvcnlfcAogICAgIGVsc2UKICAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNl
KCZfZXdrX2NhY2hlX2RpcmVjdG9yeV9wYXRoLCBwYXRoKTsKICAgICByZXR1cm4gRUlOQV9UUlVF
OwotI2Vsc2UKLSAgICBFSU5BX1NBRkVUWV9PTl9UUlVFX1JFVFVSTl9WQUwoMSwgRUlOQV9GQUxT
RSk7Ci0jZW5kaWYKIH0KIAogY29uc3QgY2hhciogZXdrX3NldHRpbmdzX2NhY2hlX2RpcmVjdG9y
eV9wYXRoX2dldCgpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAg
ICByZXR1cm4gX2V3a19jYWNoZV9kaXJlY3RvcnlfcGF0aDsKLSNlbHNlCi0gICAgRUlOQV9TQUZF
VFlfT05fVFJVRV9SRVRVUk5fVkFMKDEsIDApOwotI2VuZGlmCiB9CiAKIGRvdWJsZSBld2tfc2V0
dGluZ3NfZGVmYXVsdF90aW1lcl9pbnRlcnZhbF9nZXQodm9pZCkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cJKHJldmlzaW9uIDk1OTEyKQorKysgU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5jcHA6CisgICAgICAgICh3ZWJraXRfYXBwbGlj
YXRpb25fY2FjaGVfZ2V0X21heGltdW1fc2l6ZSk6CisgICAgICAgICh3ZWJraXRfYXBwbGljYXRp
b25fY2FjaGVfc2V0X21heGltdW1fc2l6ZSk6CisgICAgICAgICh3ZWJraXRfYXBwbGljYXRpb25f
Y2FjaGVfZ2V0X2RhdGFiYXNlX2RpcmVjdG9yeV9wYXRoKToKKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0Z2xvYmFscy5jcHA6CisgICAgICAgICh3ZWJraXRJbml0KToKKwogMjAxMS0wOS0yMiAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHVzZWxlc3MgZW1wdHkgV2ViS2l0IG5hbWVzcGFjZS4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNw
cAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01ODksNyArNTg5LDYgQEAgdm9p
ZCBDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YQogfQogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogdm9pZCBDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKIHsKICAgICAvLyBGSVhNRTog
RnJlZSBzb21lIHNwYWNlLgpAQCAtNjAwLDcgKzU5OSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpy
ZWFjaGVkQXBwbGljYXRpb25DYWMKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQotI2VuZGlm
CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZp
bGVDaG9vc2VyPiBwcnBGaWxlQ2hvb3NlcikKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCShyZXZpc2lvbiA5NTkwOCkK
KysrIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTgsMTAgKzExOCw4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogI2lm
IEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpOwogI2VuZGlmCi0j
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgdmlydHVhbCB2b2lk
IHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKLSNlbmRpZgogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51
KCkgeyB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBs
aWNhdGlvbmNhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0YXBwbGljYXRpb25jYWNoZS5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MSwxMSArNDEsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGNhY2hlTWF4U2l6
ZSA9CiAgKiovCiB1bnNpZ25lZCBsb25nIGxvbmcgd2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dl
dF9tYXhpbXVtX3NpemUoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
CiAgICAgcmV0dXJuIChjYWNoZU1heFNpemUgPSBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5tYXhp
bXVtU2l6ZSgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogLyoqCkBAIC02
MCwxNiArNTYsMTIgQEAgdW5zaWduZWQgbG9uZyBsb25nIHdlYmtpdF9hcHBsaWNhdGlvbl9jYQog
ICoqLwogdm9pZCB3ZWJraXRfYXBwbGljYXRpb25fY2FjaGVfc2V0X21heGltdW1fc2l6ZSh1bnNp
Z25lZCBsb25nIGxvbmcgc2l6ZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgIGlmIChzaXplICE9IGNhY2hlTWF4U2l6ZSkgewogICAgICAgICBXZWJDb3JlOjpj
YWNoZVN0b3JhZ2UoKS5lbXB0eSgpOwogICAgICAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS52
YWN1dW1EYXRhYmFzZUZpbGUoKTsKICAgICAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuc2V0
TWF4aW11bVNpemUoc2l6ZSk7CiAgICAgICAgIGNhY2hlTWF4U2l6ZSA9IHNpemU7CiAgICAgfQot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Ci0jZW5kaWYKIH0KIAogLyoqCkBAIC04NSwx
MSArNzcsNyBAQCB2b2lkIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9zZXRfbWF4aW11CiAgKiov
CiBjb25zdCBnY2hhciogd2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9kYXRhYmFzZV9kaXJl
Y3RvcnlfcGF0aCgpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAg
ICBDU3RyaW5nIHBhdGggPSBXZWJDb3JlOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oV2ViQ29y
ZTo6Y2FjaGVTdG9yYWdlKCkuY2FjaGVEaXJlY3RvcnkoKSk7CiAgICAgcmV0dXJuIHBhdGguZGF0
YSgpOwotI2Vsc2UKLSAgICByZXR1cm4gIiI7Ci0jZW5kaWYKIH0KIApJbmRleDogU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBT
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMxOCw5ICszMTgsNyBAQCB2b2lkIHdlYmtpdEluaXQoKQogCiAgICAgZ2NoYXIqIGRhdGFi
YXNlRGlyZWN0b3J5ID0gZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3
ZWJraXQiLCAiZGF0YWJhc2VzIiwgTlVMTCk7CiAgICAgd2Via2l0X3NldF93ZWJfZGF0YWJhc2Vf
ZGlyZWN0b3J5X3BhdGgoZGF0YWJhc2VEaXJlY3RvcnkpOwotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCiAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuc2V0Q2FjaGVEaXJl
Y3RvcnkoZGF0YWJhc2VEaXJlY3RvcnkpOwotI2VuZGlmCiAKICAgICBnX2ZyZWUoZGF0YWJhc2VE
aXJlY3RvcnkpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisr
KyBTb3VyY2UvV2ViS2l0L2hhaWt1L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dFd4OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oOgorCiAyMDExLTA5LTE3ICBNaWhhaSBQYXJw
YXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50
IEJhY2tGb3J3YXJkTGlzdC1yZWxhdGVkIG1ldGhvZHMgYXJlIHVuc3VlZApJbmRleDogU291cmNl
L1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRI
YWlrdS5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0NCw3ICsz
NDQsNiBAQCB2b2lkIENocm9tZUNsaWVudEhhaWt1OjpleGNlZWRlZERhdGFiYXNlCiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
CiB2b2lkIENocm9tZUNsaWVudFd4OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3Bh
Y2VOZWVkZWQpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTM1NCw3ICszNTMsNiBAQCB2
b2lkIENocm9tZUNsaWVudFd4OjpyZWFjaGVkQXBwbGljYXRpb25DCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KLSNlbmRpZgogCiB2b2lkIENocm9tZUNsaWVudEhhaWt1OjpyZXF1ZXN0R2Vv
bG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWUoRnJhbWUqLCBHZW9sb2NhdGlvbiopCiB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRIYWlrdS5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvaGFpa3UvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDEw
ICsxMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKICAg
ICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNp
emUoaW50NjRfdCBzcGFjZU5lZWRlZCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNw
YWNlTmVlZGVkKTsKLSNlbmRpZgogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgICAgICB2
aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KCkgeyB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDk1OTEyKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxh
YmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAg
ICAgICogTWlzYy9XZWJDYWNoZS5tbToKKyAgICAgICAgKCtbV2ViQ2FjaGUgZW1wdHldKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLm1tOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW06CisgICAg
ICAgICgtW1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIgdXNhZ2VdKToKKyAgICAgICAg
KC1bV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlciBxdW90YV0pOgorICAgICAgICAoLVtX
ZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyIHNldFF1b3RhOl0pOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06
CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX3RyYW5zZmVyQXBwbGljYXRpb25DYWNoZTpdKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfY2Fj
aGVhYmlsaXR5RGljdGlvbmFyeV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKFdlYktpdEluaXRpYWxpemVBcHBsaWNhdGlvbkNhY2hlUGF0aElmTmVjZXNzYXJ5KToK
KwogMjAxMS0wOS0yMyAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBBZGQgRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyBmZWF0dXJlIGZsYWcKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3
Niw2IEBAIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVfTUVURVJfVEFHOwogRU5BQkxFX01IVE1M
ID0gOwogRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9IDsKIEVOQUJMRV9OT1RJRklDQVRJT05T
ID0gOwotRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyA9IEVOQUJMRV9PRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlM7CiBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSA9IDsKIEVOQUJMRV9Q
Uk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFHOwogRU5BQkxFX1FVT1RBID0gOwpAQCAt
OTcsNCArOTYsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsKIEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9Y
UEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQo
RU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVO
QUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9DU1MzX0ZM
RVhCT1gpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9EQVRBQkFTRSkgJChFTkFCTEVf
REFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFMp
ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkg
JChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxU
RVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5B
QkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5Q
VVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJV
R0dFUikgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9N
RURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX1RB
RykgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElU
WV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
R0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9N
X09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9M
T0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dF
QkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9X
RUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9Y
UEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5E
RVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9O
X0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxF
X0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJM
RV9DU1NfRklMVEVSUykgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVO
QUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJ
Q0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9T
VE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVf
RlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJB
U0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxF
X0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAk
KEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01V
VEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJMRV9RVU9UQSkgJChF
TkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJ
T05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxF
X1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9UT1VD
SF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChF
TkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQo
RU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIVE1MTVApICQo
RU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViQ2FjaGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJD
YWNoZS5tbQkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNh
Y2hlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTYsMTAgKzExNiw4IEBAICsgKHZvaWQpZW1wdHkK
ICAgICBbV2ViVmlldyBfc2V0Q2FjaGVNb2RlbDpXZWJDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXJd
OwogICAgIFtXZWJWaWV3IF9zZXRDYWNoZU1vZGVsOmNhY2hlTW9kZWxdOwogCi0jaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAvLyBFbXB0eSB0aGUgYXBwbGljYXRpb24g
Y2FjaGUuCiAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuZW1wdHkoKTsKLSNlbmRpZgogCiAg
ICAgLy8gRW1wdHkgdGhlIENyb3NzLU9yaWdpbiBQcmVmbGlnaHQgY2FjaGUKICAgICBXZWJDb3Jl
OjpDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlOjpzaGFyZWQoKS5lbXB0eSgpOwpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBs
aWNhdGlvbkNhY2hlLm1tCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTIz
LDggKzIzLDYgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQotCiAjaW1wb3J0ICJXZWJBcHBsaWNhdGlvbkNhY2hlLmgiCiAKICNp
bXBvcnQgIldlYlNlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaCIKQEAgLTkwLDUgKzg4LDMgQEAgKyAo
TlNBcnJheSAqKW9yaWdpbnNXaXRoQ2FjaGUKIH0KIAogQGVuZAotCi0jZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1h
bmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQkocmV2aXNpb24gOTU5MDgpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFN
YW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OSwzMyArNDksMjMgQEAgLSAoV2ViU2VjdXJp
dHlPcmlnaW4gKilvcmlnaW4KIAogLSAodW5zaWduZWQgbG9uZyBsb25nKXVzYWdlCiB7Ci0jaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBsb25nIGxvbmcgdXNhZ2U7CiAg
ICAgaWYgKGNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVVzYWdlRm9yT3JpZ2luKFtfb3JpZ2luIF9j
b3JlXSwgdXNhZ2UpKQogICAgICAgICByZXR1cm4gdXNhZ2U7CiAgICAgcmV0dXJuIDA7Ci0jZWxz
ZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZylxdW90
YQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbG9uZyBsb25n
IHF1b3RhOwogICAgIGlmIChjYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVRdW90YUZvck9yaWdpbihb
X29yaWdpbiBfY29yZV0sIHF1b3RhKSkKICAgICAgICAgcmV0dXJuIHF1b3RhOwogICAgIHJldHVy
biAwOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgogfQogCiAtICh2b2lkKXNldFF1b3Rh
Oih1bnNpZ25lZCBsb25nIGxvbmcpcXVvdGEKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQogICAgIGNhY2hlU3RvcmFnZSgpLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2lu
KFtfb3JpZ2luIF9jb3JlXSwgcXVvdGEpOwotI2VuZGlmCiB9CiAKIEBlbmQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShy
ZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsMTAgKzExMiw4IEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1l
KSBPVkVSUklERTsKICNlbmRpZgotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5l
ZWRlZCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VO
ZWVkZWQpIE9WRVJSSURFOwotI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHBvcHVsYXRlVmlzaXRl
ZExpbmtzKCkgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50Lm1tCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtNjU2LDggKzY1Niw2IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXUKIAogI2VuZGlmCiAKLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQogewogICAgIC8v
IEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCkBAIC02NzQsOCArNjcyLDYgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbgogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CiB9CiAKLSNlbmRpZgotICAgIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBvcHVsYXRlVmlz
aXRlZExpbmtzKCkKIHsKICAgICBpZiAoW21fd2ViVmlldyBoaXN0b3J5RGVsZWdhdGVdKSB7Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCShyZXZpc2lv
biA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMTk1LDcgKzE5NSw2IEBAIC0gKE5TU3RyaW5nICopX3Jlc3BvbnNl
TUlNRVR5cGUKIAogLSAoQk9PTClfdHJhbnNmZXJBcHBsaWNhdGlvbkNhY2hlOihOU1N0cmluZyop
ZGVzdGluYXRpb25CdW5kbGVJZGVudGlmaWVyCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gW3NlbGYgX2RvY3VtZW50
TG9hZGVyXTsKICAgICAKICAgICBpZiAoIWxvYWRlcikKQEAgLTIwNCw5ICsyMDMsNiBAQCAtIChC
T09MKV90cmFuc2ZlckFwcGxpY2F0aW9uQ2FjaGU6KE5TU3RyCiAgICAgTlNTdHJpbmcgKmNhY2hl
RGlyID0gW05TU3RyaW5nIF93ZWJraXRfbG9jYWxDYWNoZURpcmVjdG9yeVdpdGhCdW5kbGVJZGVu
dGlmaWVyOmRlc3RpbmF0aW9uQnVuZGxlSWRlbnRpZmllcl07CiAgICAgCiAgICAgcmV0dXJuIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZUNvcHlPZkNhY2hlKGNhY2hlRGlyLCBsb2FkZXIt
PmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkpOwotI2Vsc2UKLSAgICByZXR1cm4gTk87Ci0jZW5kaWYK
IH0KIAogLSAodm9pZClfc2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZDooQk9PTClmbGFnCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHJldmlzaW9uIDk1OTA4KQor
KysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMTE1OCwxMSArMTE1OCw4IEBAIC0gKE5TTXV0YWJsZURpY3Rpb25hcnkgKilfY2FjaGVhYmls
aXR5RGkKICAgICBpZiAoRE9NV2luZG93KiBkb21XaW5kb3cgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
LT5kb21XaW5kb3coKSkgewogICAgICAgICBpZiAoZG9tV2luZG93LT5oYXNFdmVudExpc3RlbmVy
cyhldmVudE5hbWVzKCkudW5sb2FkRXZlbnQpKQogICAgICAgICAgICAgW3Jlc3VsdCBzZXRPYmpl
Y3Q6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5OldlYkZyYW1lSGFzVW5sb2Fk
TGlzdGVuZXJdOwotICAgICAgICAgICAgCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKICAgICAgICAgaWYgKGRvbVdpbmRvdy0+b3B0aW9uYWxBcHBsaWNhdGlvbkNhY2hlKCkp
CiAgICAgICAgICAgICBbcmVzdWx0IHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6
WUVTXSBmb3JLZXk6V2ViRnJhbWVVc2VzQXBwbGljYXRpb25DYWNoZV07Ci0jZW5kaWYKICAgICB9
CiAgICAgCiAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IF9wcml2YXRlLT5jb3JlRnJhbWUt
PmRvY3VtZW50KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJl
dmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC01NzYsNyArNTc2LDYgQEAgKyAodm9pZClfcmVwb3J0RXhjZXB0aW9u
OihKU1ZhbHVlUmVmKWV4YwogCiBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplQXBwbGljYXRp
b25DYWNoZVBhdGhJZk5lY2Vzc2FyeSgpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUykKICAgICBzdGF0aWMgQk9PTCBpbml0aWFsaXplZCA9IE5POwogICAgIGlmIChpbml0
aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwpAQCAtNTg0LDE0ICs1ODMsMTMgQEAgc3RhdGljIHZv
aWQgV2ViS2l0SW5pdGlhbGl6ZUFwcGxpY2F0aW9uQwogICAgIE5TU3RyaW5nICphcHBOYW1lID0g
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVJZGVudGlmaWVyXTsKICAgICBpZiAoIWFwcE5h
bWUpCiAgICAgICAgIGFwcE5hbWUgPSBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHByb2Nl
c3NOYW1lXTsKLSAgICAKKwogICAgIEFTU0VSVChhcHBOYW1lKTsKIAogICAgIE5TU3RyaW5nKiBj
YWNoZURpciA9IFtOU1N0cmluZyBfd2Via2l0X2xvY2FsQ2FjaGVEaXJlY3RvcnlXaXRoQnVuZGxl
SWRlbnRpZmllcjphcHBOYW1lXTsKIAogICAgIGNhY2hlU3RvcmFnZSgpLnNldENhY2hlRGlyZWN0
b3J5KGNhY2hlRGlyKTsKICAgICBpbml0aWFsaXplZCA9IFlFUzsKLSNlbmRpZgogfQogCiBzdGF0
aWMgYm9vbCBydW5uaW5nTGVvcGFyZE1haWwoKQpJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9u
IDk1OTEyKQorKysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyMyBAQAorMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkv
cXdlYnNlY3VyaXR5b3JpZ2luLmNwcDoKKyAgICAgICAgKFFXZWJTZWN1cml0eU9yaWdpbjo6c2V0
QXBwbGljYXRpb25DYWNoZVF1b3RhKToKKyAgICAgICAgKiBBcGkvcXdlYnNldHRpbmdzLmNwcDoK
KyAgICAgICAgKFFXZWJTZXR0aW5nczo6c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRo
KToKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6b2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRo
KToKKyAgICAgICAgKFFXZWJTZXR0aW5nczo6c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVR
dW90YSk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6Om9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
UXVvdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFF0OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpjbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVz
KToKKwogMjAxMS0wOS0yMSAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQG5va2lhLmNvbT4K
IAogICAgICAgICBbUXRdIFJlbW92ZSBRdCBzcGVjaWZpYyBjb2RlIGZyb20gY3NzL1NlbGVjdG9y
Q2hlY2tlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZWN1cml0eW9yaWdp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNlY3VyaXR5b3Jp
Z2luLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2Vj
dXJpdHlvcmlnaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsOSArMTU1LDcgQEAgdm9pZCBR
V2ViU2VjdXJpdHlPcmlnaW46OnNldERhdGFiYXNlUXVvdAogCiB2b2lkIFFXZWJTZWN1cml0eU9y
aWdpbjo6c2V0QXBwbGljYXRpb25DYWNoZVF1b3RhKHFpbnQ2NCBxdW90YSkKIHsKLSNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgp
LnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKGQtPm9yaWdpbi5nZXQoKSwgcXVvdGEpOwotI2Vu
ZGlmCiB9CiAvKiEKICAgICBEZXN0cm95cyB0aGUgc2VjdXJpdHkgb3JpZ2luLgpJbmRleDogU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJj
ZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNDUs
OSArMTA0NSw3IEBAIHFpbnQ2NCBRV2ViU2V0dGluZ3M6Om9mZmxpbmVTdG9yYWdlRGVmYXUKICov
CiB2b2lkIFFXZWJTZXR0aW5nczo6c2V0T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVQYXRoKGNv
bnN0IFFTdHJpbmcmIHBhdGgpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKICAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5zZXRDYWNoZURpcmVjdG9yeShwYXRoKTsK
LSNlbmRpZgogfQogCiAvKiEKQEAgLTEwNjAsMTEgKzEwNTgsNyBAQCB2b2lkIFFXZWJTZXR0aW5n
czo6c2V0T2ZmbGluZVdlYkFwcGxpY2F0CiAqLwogUVN0cmluZyBRV2ViU2V0dGluZ3M6Om9mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aCgpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICByZXR1cm4gV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuY2FjaGVEaXJl
Y3RvcnkoKTsKLSNlbHNlCi0gICAgcmV0dXJuIFFTdHJpbmcoKTsKLSNlbmRpZgogfQogCiAvKiEK
QEAgLTEwNzUsMTEgKzEwNjksOSBAQCBRU3RyaW5nIFFXZWJTZXR0aW5nczo6b2ZmbGluZVdlYkFw
cGxpY2F0CiAqLwogdm9pZCBRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlUXVvdGEocWludDY0IG1heGltdW1TaXplKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuZW1wdHkoKTsKICAgICBX
ZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS52YWN1dW1EYXRhYmFzZUZpbGUoKTsKICAgICBXZWJDb3Jl
OjpjYWNoZVN0b3JhZ2UoKS5zZXRNYXhpbXVtU2l6ZShtYXhpbXVtU2l6ZSk7Ci0jZW5kaWYKIH0K
IAogLyohCkBAIC0xMDg5LDExICsxMDgxLDcgQEAgdm9pZCBRV2ViU2V0dGluZ3M6OnNldE9mZmxp
bmVXZWJBcHBsaWNhdAogKi8KIHFpbnQ2NCBRV2ViU2V0dGluZ3M6Om9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlUXVvdGEoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
CiAgICAgcmV0dXJuIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLm1heGltdW1TaXplKCk7Ci0jZWxz
ZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIC8qIQpJbmRleDogU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHJldmlzaW9uIDk1
OTA4KQorKysgU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU0MSw3ICs1NDEsNiBAQCB2b2lkIENocm9tZUNsaWVudFF0
OjpleGNlZWRlZERhdGFiYXNlUXVvCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCiB2b2lkIENocm9tZUNsaWVudFF0OjpyZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3QpCiB7CiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KQEAgLTU2MSw3
ICs1NjAsNiBAQCB2b2lkIENocm9tZUNsaWVudFF0OjpyZWFjaGVkQXBwbGljYXRpb25DCiAKICAg
ICBlbWl0IG1fd2ViUGFnZS0+YXBwbGljYXRpb25DYWNoZVF1b3RhRXhjZWVkZWQoc2VjdXJpdHlP
cmlnaW4sIGRlZmF1bHRPcmlnaW5RdW90YSwgc3RhdGljX2Nhc3Q8cXVpbnQ2ND4odG90YWxTcGFj
ZU5lZWRlZCkpOwogfQotI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKIE5vdGlm
aWNhdGlvblByZXNlbnRlciogQ2hyb21lQ2xpZW50UXQ6Om5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDEwICsxMzYs
OCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICAgICB2aXJ0dWFsIHZvaWQg
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCByZWFj
aGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwgdm9p
ZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50
NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKLSNlbmRpZgogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoKSB7IH0KICNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY3MCwxMCArNjcwLDggQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0
RWRpdGluZwogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpjbGVhckFsbEFwcGxpY2F0
aW9uQ2FjaGVzKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
IFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmVtcHR5KCk7CiAgICAgV2ViQ29yZTo6Y2FjaGVTdG9y
YWdlKCkudmFjdXVtRGF0YWJhc2VGaWxlKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdDo6ZHVtcEZyYW1lTG9hZGVyKGJvb2wgYikKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDk1OTEyKQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTEtMDktMjIgIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBGaW5kU2FmYXJp
IGZyb20gYWxsIG91ciAuc2xuIGZpbGVzCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDk1OTA4KQor
KysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjE0LDggKzYxNCw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
eGNlZWRlZERhdGFiYXNlUXUKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKKy8vIEZJWE1FOiBNb3ZlIHRoaXMgaW5jbHVkZSB0byB0aGUgdG9wIG9mIHRo
ZSBmaWxlIHdpdGggdGhlIG90aGVyIGluY2x1ZGVzLgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmgiCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3Qgc3BhY2VOZWVkZWQpCiB7CiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFj
ZS4KQEAgLTYyNiw3ICs2MjcsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxp
Y2F0aW9uCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLSNlbmRpZgogCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cG9wdWxhdGVWaXNpdGVkTGlua3MoKQogewpJbmRleDogU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9u
IDk1OTA4KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNywxMCArMTE3LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBX
VEY6OlN0cmluZyYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3Bh
Y2VOZWVkZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVk
KTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdmlydHVhbCB2b2lk
IHNob3dDb250ZXh0TWVudSgpIHsgfQpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDk1OTEyKQorKysgU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4
NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudFdpbkNFOjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorCiAyMDExLTA5LTIx
ICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0g
UmVtb3ZlIFF0IHNwZWNpZmljIGNvZGUgZnJvbSBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcApJbmRl
eDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRXaW5DRS5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwNSw3ICszMDUsNiBAQCB2b2lkIENocm9tZUNsaWVudFdpbkNFOjpleGNlZWRlZERhdGFiYXNl
CiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiB2b2lk
IENocm9tZUNsaWVudFdpbkNFOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTMxNSw3ICszMTQsNiBAQCB2b2lkIENocm9tZUNsaWVu
dFdpbkNFOjpyZWFjaGVkQXBwbGljYXRpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLSNl
bmRpZgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6
Om5lZWRUb3VjaEV2ZW50cyhib29sKQpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAkocmV2aXNpb24gOTU5MDgp
CisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNF
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6
U3RyaW5nJiBkYXRhYmFzZU5hbWUpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgYXBwbGljYXRp
b24gY2FjaGUgZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAogICAgIC8vIGJlY2F1c2Ugc3Rv
cmluZyBpdCB3b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRlZmluZWQgbWF4
aW11bQogICAgIC8vIHNpemUgb3IgcGFzdCB0aGUgYW1vdW50IG9mIGZyZWUgc3BhY2Ugb24gdGhl
IGRldmljZS4KQEAgLTEzMSw3ICsxMzAsNiBAQCBwdWJsaWM6CiAgICAgLy8gdG8gdGFrZSBhY3Rp
b24sIHN1Y2ggYXMgcHJvbXB0aW5nIHRoZSB1c2VyIHRvIGFzayB0byBpbmNyZWFzZSB0aGUgcXVv
dGEKICAgICAvLyBmb3IgdGhpcyBvcmlnaW4uCiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90
IHRvdGFsU3BhY2VOZWVkZWQpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
ICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KCkgeyB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L3d4L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxv
ZwkocmV2aXNpb24gOTU5MTIpCisrKyBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njg3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21lQ2xpZW50V3g6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaDoKKwogMjAxMS0wOS0xNyAg
TWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGcmFtZUxv
YWRlckNsaWVudCBCYWNrRm9yd2FyZExpc3QtcmVsYXRlZCBtZXRob2RzIGFyZSB1bnN1ZWQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
LmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzMsNyArNDMzLDYgQEAgdm9p
ZCBDaHJvbWVDbGllbnRXeDo6ZXhjZWVkZWREYXRhYmFzZVF1bwogfQogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogdm9pZCBDaHJvbWVDbGllbnRXeDo6cmVh
Y2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CkBAIC00NDMsNyArNDQyLDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6cmVhY2hl
ZEFwcGxpY2F0aW9uQwogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogdm9p
ZCBDaHJvbWVDbGllbnRXeDo6c2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgSW50UmVjdCYpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQv
Q2hyb21lQ2xpZW50V3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0
L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guaAkod29ya2luZyBjb3B5KQpAQCAtMTI0
LDEwICsxMjQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VR
dW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNl
TmVlZGVkKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdmlydHVh
bCB2b2lkIHNob3dDb250ZXh0TWVudSgpIHsgfQpJbmRleDogU291cmNlL2NtYWtlL09wdGlvbnNF
ZmwuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UJKHJl
dmlzaW9uIDk1OTA4KQorKysgU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UJKHdvcmtpbmcg
Y29weSkKQEAgLTgyLDcgKzgyLDYgQEAgV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX01BVEhNTCAiRW5h
YmxlIE1hdAogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX01FVEVSX1RBRyAiRW5hYmxlIE1ldGVyIHRh
ZyIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
ICJFbmFibGUgTmV0c2NhcGUgcGx1Z2luIEFQSSIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVS
RShFTkFCTEVfTk9USUZJQ0FUSU9OUyAiRW5hYmxlIG5vdGlmaWNhdGlvbnMiIERFRkFVTFQgT0ZG
KQotV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyAiRW5hYmxl
IG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9ucyIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVO
QUJMRV9PUklFTlRBVElPTl9FVkVOVFMgIkVuYWJsZSBvcmllbnRhdGlvbiBldmVudHMiIERFRkFV
TFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX1BST0dSRVNTX1RBRyAiRW5hYmxlIHByb2dy
ZXNzIHRhZyIgREVGQVVMVCBPTikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9TSEFSRURfV09SS0VS
UyAiRW5hYmxlIHNoYXJlZCB3b3JrZXJzIiBERUZBVUxUIE9OKQpJbmRleDogU291cmNlL2NtYWtl
L09wdGlvbnNXaW5DRS5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvY21ha2UvT3B0aW9uc1dp
bkNFLmNtYWtlCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0Uu
Y21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDYgQEAgV0VCS0lUX0ZFQVRVUkUoRU5B
QkxFX0pJVCAiRW5hYmxlIEpJVCBjbwogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX01BVEhNTCAiRW5h
YmxlIE1hdGhNTCIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfTkVUU0NBUEVf
UExVR0lOX0FQSSAiRW5hYmxlIE5ldHNjYXBlIHBsdWdpbiBBUEkiIERFRkFVTFQgT0ZGKQogV0VC
S0lUX0ZFQVRVUkUoRU5BQkxFX05PVElGSUNBVElPTlMgIkVuYWJsZSBub3RpZmljYXRpb25zIiBE
RUZBVUxUIE9GRikKLVdFQktJVF9GRUFUVVJFKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMgIkVuYWJsZSBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbnMiIERFRkFVTFQgT0ZGKQogV0VCS0lU
X0ZFQVRVUkUoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyAiRW5hYmxlIG9yaWVudGF0aW9uIGV2
ZW50cyIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfUFJPR1JFU1NfVEFHICJF
bmFibGUgcHJvZ3Jlc3MgdGFnIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9T
SEFSRURfV09SS0VSUyAiRW5hYmxlIHNoYXJlZCB3b3JrZXJzIiBERUZBVUxUIE9GRikKSW5kZXg6
IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDk1OTEyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9idWlsZC13
ZWJraXQ6CisKIDIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZW1vdmUgRU5BQkxFKFdDU1MpIGFuZCBhc3NvY2lhdGVkIGNvZGUKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvYnVp
bGQtd2Via2l0CShyZXZpc2lvbiA5NTkwOCkKKysrIFRvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDYgQEAgbXkgKAogICAgICRtdXRhdGlvbk9i
c2VydmVyc1N1cHBvcnQsCiAgICAgJG5ldHNjYXBlUGx1Z2luU3VwcG9ydCwKICAgICAkbm90aWZp
Y2F0aW9uc1N1cHBvcnQsCi0gICAgJG9mZmxpbmVXZWJBcHBsaWNhdGlvblN1cHBvcnQsCiAgICAg
JG9yaWVudGF0aW9uRXZlbnRzU3VwcG9ydCwKICAgICAkcGFnZVZpc2liaWxpdHlBcGlTdXBwb3J0
LAogICAgICRwcm9ncmVzc1RhZ1N1cHBvcnQsCkBAIC0yNDMsOSArMjQyLDYgQEAgbXkgQGZlYXR1
cmVzID0gKAogICAgIHsgb3B0aW9uID0+ICJub3RpZmljYXRpb25zIiwgZGVzYyA9PiAiVG9nZ2xl
IERlc2t0b3AgTm90aWZpY2F0aW9ucyBTdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X05PVElGSUNBVElPTlMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbm90aWZpY2F0aW9uc1N1
cHBvcnQgfSwKIAotICAgIHsgb3B0aW9uID0+ICJvZmZsaW5lLXdlYi1hcHBsaWNhdGlvbnMiLCBk
ZXNjID0+ICJUb2dnbGUgT2ZmbGluZSBXZWIgQXBwbGljYXRpb24gU3VwcG9ydCIsCi0gICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMiLCBkZWZhdWx0ID0+IDEs
IHZhbHVlID0+IFwkb2ZmbGluZVdlYkFwcGxpY2F0aW9uU3VwcG9ydCB9LAotCiAgICAgeyBvcHRp
b24gPT4gIm9yaWVudGF0aW9uLWV2ZW50cyIsIGRlc2MgPT4gIlRvZ2dsZSBPcmllbnRhdGlvbiBF
dmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9PUklFTlRBVElPTl9FVkVO
VFMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkb3JpZW50YXRpb25FdmVudHNTdXBwb3J0IH0s
CiAKSW5kZXg6IFdlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
TGlicmFyaWVzL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisrKyBXZWJLaXRMaWJyYXJpZXMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMjQgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMu
dnNwcm9wczoKKyAgICAgICAgKiB3aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJv
LnZzcHJvcHM6CisKIDIwMTEtMDktMjMgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgQWRkIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgZmVhdHVyZSBmbGFnCklu
ZGV4OiBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNw
cm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVh
dHVyZURlZmluZXMudnNwcm9wcwkocmV2aXNpb24gOTU5MDgpCisrKyBXZWJLaXRMaWJyYXJpZXMv
d2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXMudnNwcm9wcwkod29ya2luZyBjb3B5KQpA
QCAtOSw3ICs5LDcgQEAKIAk+CiAgIDxUb29sCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0J
CVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNE
X1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9C
KTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5B
QkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFH
UklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChF
TkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJF
Q1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRklMVEVSUyk7JChF
TkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0NTUzNfRkxFWEJPWCk7JChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9N
VVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX09GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUyk7JChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSk7JChFTkFC
TEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7JChFTkFCTEVfUkVHSVNURVJfUFJPVE9D
T0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpOyQoRU5BQkxFX1NWRyk7JChFTkFC
TEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJMRV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJ
REVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpOyQo
RU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJfVElNSU5HKTskKEVOQUJMRV9XT1JLRVJT
KTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFUSCk7JChFTkFCTEVfWFNMVCkiCisJCVBy
ZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JF
TkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTsk
KEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FU
SU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxF
X0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklE
KTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFC
TEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RP
UllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFC
TEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0NTUzNfRkxFWEJPWCk7JChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5B
QkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBV
VF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJF
RkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVfTUVURVJfVEFHKTskKEVOQUJMRV9NVVRB
VElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5B
QkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTsk
KEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZH
X0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlO
Ryk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQo
RU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8KIAkJTmFtZT0iRU5BQkxFXzNEX0NBTlZB
UyIKQEAgLTE3MiwxMSArMTcyLDYgQEAKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgog
CS8+CiAgIDxVc2VyTWFjcm8KLQkJTmFtZT0iRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UyIKLQkJVmFsdWU9IkVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMiCi0JCVBlcmZvcm1F
bnZpcm9ubWVudFNldD0idHJ1ZSIKLQkvPgotICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9Q
QUdFX1ZJU0lCSUxJVFlfQVBJIgogCQlWYWx1ZT0iIgogCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9
InRydWUiCkluZGV4OiBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURl
ZmluZXNDYWlyby52c3Byb3BzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy93aW4vdG9v
bHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMJKHJldmlzaW9uIDk1OTA4KQor
KysgV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8u
dnNwcm9wcwkod29ya2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAKIAk+CiAgIDxUb29sCiAJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJM
RV8zRF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURf
MkRfQ0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChF
TkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChF
TkFCTEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxf
REFUQUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVf
REFUQV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFH
RSk7JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0NTUzNf
RkxFWEJPWCk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTsk
KEVOQUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxF
X0lOUFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRf
REVCVUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFC
TEVfTUVURVJfVEFHKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElG
SUNBVElPTlMpOyQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyk7JChFTkFCTEVfUEFH
RV9WSVNJQklMSVRZX0FQSSk7JChFTkFCTEVfUFJPR1JFU1NfVEFHKTskKEVOQUJMRV9RVU9UQSk7
JChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUik7JChFTkFCTEVfU0hBUkVEX1dPUktF
UlMpOyQoRU5BQkxFX1NWRyk7JChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKTskKEVOQUJM
RV9TVkdfRk9OVFMpOyQoRU5BQkxFX1ZJREVPKTskKEVOQUJMRV9NRURJQV9TT1VSQ0UpOyQoRU5B
QkxFX01FRElBX1NUQVRJU1RJQ1MpOyQoRU5BQkxFX1dFQl9TT0NLRVRTKTskKEVOQUJMRV9XRUJf
VElNSU5HKTskKEVOQUJMRV9XT1JLRVJTKTskKEVOQUJMRV9YSFRNTE1QKTskKEVOQUJMRV9YUEFU
SCk7JChFTkFCTEVfWFNMVCkiCisJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIkKEVOQUJMRV8z
RF9DQU5WQVMpOyQoRU5BQkxFXzNEX1JFTkRFUklORyk7JChFTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTKTskKEVOQUJMRV9CTE9CKTskKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyk7JChFTkFC
TEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKTskKEVOQUJMRV9DU1NfRklMVEVSUyk7JChFTkFC
TEVfQ1NTX1JFR0lPTlMpOyQoRU5BQkxFX0NTU19FWENMVVNJT05TKTskKEVOQUJMRV9TUUxfREFU
QUJBU0UpOyQoRU5BQkxFX0RBVEFHUklEKTskKEVOQUJMRV9EQVRBTElTVCk7JChFTkFCTEVfREFU
QV9UUkFOU0ZFUl9JVEVNUyk7JChFTkFCTEVfREVUQUlMUyk7JChFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OKTskKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKTskKEVOQUJMRV9ET01fU1RPUkFHRSk7
JChFTkFCTEVfRklMVEVSUyk7JChFTkFCTEVfRklMRV9TWVNURU0pOyQoRU5BQkxFX0NTUzNfRkxF
WEJPWCk7JChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpOyQoRU5BQkxFX0dFT0xPQ0FUSU9OKTskKEVO
QUJMRV9JQ09OREFUQUJBU0UpOyQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpOyQoRU5BQkxFX0lO
UFVUX0NPTE9SKTskKEVOQUJMRV9JTlBVVF9TUEVFQ0gpOyQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpOyQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpOyQoRU5BQkxFX01BVEhNTCk7JChFTkFCTEVf
TUVURVJfVEFHKTskKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpOyQoRU5BQkxFX05PVElGSUNB
VElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RB
Ryk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQo
RU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVf
TUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09D
S0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhU
TUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgogCS8+CiAgIDxVc2VyTWFjcm8K
IAkJTmFtZT0iRU5BQkxFXzNEX0NBTlZBUyIKQEAgLTE3MiwxMSArMTcyLDYgQEAKIAkJUGVyZm9y
bUVudmlyb25tZW50U2V0PSJ0cnVlIgogCS8+CiAgIDxVc2VyTWFjcm8KLQkJTmFtZT0iRU5BQkxF
X09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUyIKLQkJVmFsdWU9IkVOQUJMRV9PRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMiCi0JCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKLQkvPgotICA8VXNl
ck1hY3JvCiAJCU5hbWU9IkVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJIgogCQlWYWx1ZT0iIgog
CQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108593</attachid>
            <date>2011-09-24 15:57:26 -0700</date>
            <delta_ts>2011-09-24 16:47:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68767-20110924155724.patch</filename>
            <type>text/plain</type>
            <size>133418</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDkt
MjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5h
YmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21h
a2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZToKKyAgICAgICAgKiBjb25maWd1cmUuYWM6CisK
IDIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgRU5BQkxFKFdDU1MpIGFuZCBhc3NvY2lhdGVkIGNvZGUKSW5kZXg6IGNvbmZpZ3VyZS5h
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuYWMJKHJldmlzaW9uIDk1OTA4KQorKysgY29uZmln
dXJlLmFjCSh3b3JraW5nIGNvcHkpCkBAIC00NTQsMTQgKzQ1NCw2IEBAIEFDX0FSR19FTkFCTEUo
ZGF0YV90cmFuc2Zlcl9pdGVtcywKICAgICAgICAgICAgICAgW10sW2VuYWJsZV9kYXRhX3RyYW5z
ZmVyX2l0ZW1zPSJubyJdKQogQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9kYXRhX3RyYW5zZmVyX2l0
ZW1zXSkKIAotIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJsZSBIVE1MNSBPZmZsaW5lIFdlYiBBcHBs
aWNhdGlvbnMgc3VwcG9ydAotQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBIVE1M
NSBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbnMgc3VwcG9ydF0pCi1BQ19BUkdfRU5BQkxFKG9mZmxp
bmVfd2ViX2FwcGxpY2F0aW9ucywKLSAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5h
YmxlLW9mZmxpbmUtd2ViLWFwcGxpY2F0aW9uc10sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtlbmFibGUgSFRNTDUgb2ZmbGluZSB3ZWIgYXBwbGljYXRpb25zIHN1cHBvcnQgW2RlZmF1
bHQ9eWVzXV0pLAotICAgICAgICAgICAgICBbXSxbZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0
aW9ucz0ieWVzIl0pCi1BQ19NU0dfUkVTVUxUKFskZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0
aW9uc10pCi0KICMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgRE9NIG11dGF0aW9uIG9ic2VydmVy
IHN1cHBvcnQKIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgRE9NIG11dGF0aW9u
IG9ic2VydmVyIHN1cHBvcnRdKQogQUNfQVJHX0VOQUJMRShtdXRhdGlvbl9vYnNlcnZlcnMsCkBA
IC0xMDEwLDEwICsxMDAyLDcgQEAgZmkKIEFDX1NVQlNUKFtTUUxJVEUzX0NGTEFHU10pCiBBQ19T
VUJTVChbU1FMSVRFM19MSUJTXSkKIAotaWYgKHRlc3QgIiRzcWxpdGUzX2ZvdW5kIiA9ICJubyIp
ICYmICh0ZXN0ICIkZW5hYmxlX2ljb25fZGF0YWJhc2UiID0gInllcyIgfHwgXAotICAgdGVzdCAi
JGVuYWJsZV9zcWxfZGF0YWJhc2UiID0gInllcyIgfHwgXAotICAgdGVzdCAiJGVuYWJsZV9vZmZs
aW5lX3dlYl9hcHBsaWNhdGlvbnMiID0gInllcyIgfHwgXAotICAgdGVzdCAiJGVuYWJsZV9kb21f
c3RvcmFnZSIgPSAieWVzIik7IHRoZW4KK2lmICh0ZXN0ICIkc3FsaXRlM19mb3VuZCIgPSAibm8i
KTsgdGhlbgogICAgQUNfTVNHX0VSUk9SKFtTUUxpdGUzIGlzIHJlcXVpcmVkIGZvciB0aGUgRGF0
YWJhc2UgcmVsYXRlZCBmZWF0dXJlc10pCiBmaQogCkBAIC0xMTM1LDcgKzExMjQsNiBAQCBBTV9D
T05ESVRJT05BTChbRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BCiBBTV9DT05ESVRJT05BTChbRU5B
QkxFX1BST0dSRVNTX1RBR10sW3Rlc3QgIiRlbmFibGVfcHJvZ3Jlc3NfdGFnIiA9ICJ5ZXMiXSkK
IEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkddLFt0ZXN0ICIkZW5hYmxl
X2NoYW5uZWxfbWVzc2FnaW5nIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUl0sW3Rlc3QgIiRlbmFibGVfamF2YXNjcmlwdF9kZWJ1Z2dlciIgPSAi
eWVzIl0pCi1BTV9DT05ESVRJT05BTChbRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OU10s
W3Rlc3QgIiRlbmFibGVfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25zIiA9ICJ5ZXMiXSkKIEFNX0NP
TkRJVElPTkFMKFtFTkFCTEVfRElSRUNUT1JZX1VQTE9BRF0sW3Rlc3QgIiRlbmFibGVfZGlyZWN0
b3J5X3VwbG9hZCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0RBVEFHUklEXSxb
dGVzdCAiJGVuYWJsZV9kYXRhZ3JpZCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxF
X0RBVEFfVFJBTlNGRVJfSVRFTVNdLFt0ZXN0ICIkZW5hYmxlX2RhdGFfdHJhbnNmZXJfaXRlbXMi
ID0gInllcyJdKQpAQCAtMTI1Miw3ICsxMjQwLDYgQEAgRmVhdHVyZXM6CiAgTWF0aE1MIHN1cHBv
cnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX21h
dGhtbAogIE1lZGlhIHNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogJGVuYWJsZV9tZWRpYV9zb3VyY2UKICBNZWRpYSBzdGF0aXN0aWNzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfbWVkaWFfc3RhdGlzdGlj
cwotIEhUTUw1IG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9ucyBzdXBwb3J0ICAgICAgICAgICAgICAg
ICAgIDogJGVuYWJsZV9vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbnMKICBIVE1MNSBjaGFubmVsIG1l
c3NhZ2luZyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfY2hhbm5l
bF9tZXNzYWdpbmcKICBIVE1MNSBtZXRlciBlbGVtZW50IHN1cHBvcnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ICRlbmFibGVfbWV0ZXJfdGFnCiAgUGFnZSBWaXNpYmlsaXR5IEFQSSBz
dXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX3BhZ2VfdmlzaWJp
bGl0eV9hcGkKSW5kZXg6IFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfTUVURVJfVEFHCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05PVElGSUNBVElPTlMKLSNjbWFr
ZWRlZmluZTAxIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKICNjbWFrZWRlZmluZTAx
IEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9QUk9HUkVT
U19UQUcKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9TSEFSRURfV09SS0VSUwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wOS0yNCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKwogMjAxMS0wOS0yNCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFsbG9jYXRlIG5ldyBvYmplY3RzIHVubWFya2VkCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpA
QCAtNzgsNyArNzgsNiBAQCBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVO
QUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyA9IDsKLUVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7
CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9U
QSA9IDsKQEAgLTk4LDQgKzk3LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEgg
PSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFC
TEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5B
QkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRB
SUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExP
QUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVf
RklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxF
X0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRf
REVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFC
TEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRF
Ul9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJM
RV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChF
TkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAk
KEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJF
X0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChF
TkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0VY
Q0xVU0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQo
RU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9E
RVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9N
RVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFH
KSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChF
TkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpD
X0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgp
ICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMjggQEAKKzIw
MTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdh
eXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIGRpc2N1c3NlZCBvbiB3ZWJraXQt
ZGV2LCBhbG1vc3QgZXZlcnlvbmUgaGFzIHRoaXMgZW5hYmxlIHR1cm5lZCBvbgorICAgICAgICBh
bmQgdGhpcyBmZWF0dXJlIGlzIHVubGlrZWx5IHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgd2ViIHBs
YXRmb3JtIGdpdmVuCisgICAgICAgIGl0cyBwb3B1bGFyaXR5LgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBiaW5kaW5ncy9jcHAvV2ViRE9NRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAo
dG9XZWJLaXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgIChXZWJDb3JlOjp0b0V2ZW50VGFyZ2V0KToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnRv
RE9NQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Lmg6CisgICAg
ICAgICogZmVhdHVyZXMucHJpOgorICAgICAgICAqIGhpc3RvcnkvUGFnZUNhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmxvZ0NhbkNhY2hlRnJhbWVEZWNpc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlQ2FjaGU6OmNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEh0bWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxIdG1s
RWxlbWVudDo6aW5zZXJ0ZWRCeVBhcnNlcik6CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlRmlsZVVSTEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGh0
bWwvSW1hZ2VEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURvY3VtZW50Ojpj
cmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50
U3RydWN0dXJlKToKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEhUTUxIdG1sU3RhcnRUYWdC
ZWZvcmVIVE1MKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp1cGRhdGVBcHBsaWNhdGlvbkNhY2hl
U3RhdHVzSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpuZXR3b3Jr
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2Vu
dHM6Okluc3RydW1lbnRpbmdBZ2VudHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGlu
Z0FnZW50czo6c2V0SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItaWRsOgorICAgICAgICAqIGxvYWRlci9Eb2N1
bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6RG9jdW1l
bnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Om1haW5SZWNlaXZl
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpoYW5kbGVkT25sb2FkRXZlbnRzKToKKyAg
ICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjphcHBsaWNhdGlvbkNhY2hlSG9zdCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAo
V2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjp3YXNCbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpjYW5u
b3RTaG93VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2ls
bENhY2hlUmVzcG9uc2UpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAg
ICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5oOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5oOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hl
LmNwcDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbDoKKyAgICAg
ICAgKiBsb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cGFyc2VNYW5pZmVzdCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL01hbmlmZXN0UGFy
c2VyLmg6CisgICAgICAgICogbG9hZGVyL2Nocm9taXVtL1Jlc291cmNlTG9hZGVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZERvd25sb2FkRGF0YSk6
CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3B0aW9uYWxBcHBsaWNhdGlv
bkNhY2hlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogeG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
RG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJz
ZXI6OnBhcnNlU3RhcnRFbGVtZW50KToKKwogMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoV0NTUykgYW5kIGFzc29jaWF0
ZWQgY29kZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDk1OTA4KQorKysgU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw2ICszMTUs
OCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5p
ZGwKICAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCiAKKyAgICBsb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKKwogICAgIHBhZ2UvQmFySW5mby5pZGwKICAg
ICBwYWdlL0NvbnNvbGUuaWRsCiAgICAgcGFnZS9Db29yZGluYXRlcy5pZGwKQEAgLTIxNjYsMTIg
KzIxNjgsNiBAQCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICkKIEVORElGICgpCiAKLUlGIChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSURM
X0ZJTEVTCi0gICAgICAgIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAot
ICAgICkKLUVORElGICgpCi0KICMgTW9kdWxlcyB0aGF0IHRoZSBiaW5kaW5ncyBnZW5lcmF0b3Ig
c2NyaXB0cyBtYXkgdXNlCiBTRVQoU0NSSVBUU19CSU5ESU5HUwogICAgICR7V0VCQ09SRV9ESVJ9
L2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQko
cmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTczLDE0ICsxNzMsNiBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X0pBVkFTQ1JJUFRfCiBlbmRpZiAjIEVORCBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgogCiAj
IC0tLS0KLSMgT2ZmbGluZSBXZWIgQXBwbGljYXRpb25zCi0jIC0tLS0KLWlmIEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMKLUZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TPTEKLXdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TPTEKLWVuZGlmICMgRU5EIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMKLQotIyAtLS0tCiAjIERhdGFiYXNlIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX1NR
TF9EQVRBQkFTRQpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29w
eSkKQEAgLTExMSw2ICsxMTEsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNEb2N1bWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRG9jdW1lbnRUeXBlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50
VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQXBwbGljYXRpb25DYWNoZS5j
cHAKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQXBwbGljYXRpb25DYWNoZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQ29yZUV4Y2VwdGlvbi5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNET01Db3JlRXhjZXB0aW9uLmggXApAQCAtNDEwNywxNCArNDEwOCw2
IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiBlbmRpZiAjIEVORCBVU0VfUEFOR08KIAogIyAt
LS0tCi0jIE9mZmxpbmUgV2ViIEFwcGxpY2F0aW9ucwotIyAtLS0tCi1pZiBFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TCi13ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAotCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcAotZW5kaWYgIyBFTkQgRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwotCi0jIC0tLS0KICMgRGF0YWJhc2UgU3VwcG9y
dAogIyAtLS0tCiBpZiBFTkFCTEVfU1FMX0RBVEFCQVNFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29y
a2luZyBjb3B5KQpAQCAtMTg2MSw3ICsxODYxLDYgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50MTJ1
cGRhdGVMYXlvdXRFdgogX19aTks3V2ViQ29yZTROb2RlMTZ0cmF2ZXJzZU5leHROb2RlRVBLUzBf
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiBfX1pON1dl
YkNvcmUxNkFwcGxpY2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0
eU9yaWdpbkUKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRpb25DYWNoZTIwZGVsZXRlQ2FjaGVGb3JP
cmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlMTRzZXRNYXhpbXVtU2l6ZUV4CkBAIC0xODc2LDcgKzE4NzUsNiBAQCBfX1pON1dl
YkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMjNjCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlMjZzdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbkVQS05TXzE0U2VjdXJp
dHlPcmlnaW5FeAogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTVlbXB0eUV2
CiBfX1pOSzdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTExbWF4aW11bVNpemVFdgot
I2VuZGlmCiAKICNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogX19aTjdXZWJDb3JlNkVkaXRv
cjEzbG93ZXJjYXNlV29yZEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtODU1LDYgKzg1
NSwxMyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCBcCiAgICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisgICAgbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAg
XAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuY3BwIFwKKyAg
ICBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgXAorICAgIGxvYWRlci9h
cHBjYWNoZS9NYW5pZmVzdFBhcnNlci5jcHAKICAgICBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVz
b3VyY2UuY3BwIFwKICAgICBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9u
LmNwcCBcCiAgICAgbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcCBcCkBAIC0zNTYzLDE3ICsz
NTcwLDYgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVQogICAgIH0K
IH0KIAotY29udGFpbnMoREVGSU5FUywgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0x
KSB7Ci1TT1VSQ0VTICs9IFwKLSAgICBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5j
cHAgXAotICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIFwKLSAg
ICBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIFwKLSAgICBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIFwKLSAgICBsb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmNwcCBcCi0gICAgbG9hZGVyL2FwcGNhY2hlL0RP
TUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKLSAgICBsb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJz
ZXIuY3BwCi19Ci0KIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJfU09DS0VUUz0xKSB7CiAg
ICAgSEVBREVSUyArPSBcCiAgICAgICAgIHdlYnNvY2tldHMvQ2xvc2VFdmVudC5oIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZmVhdHVy
ZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw2ICsxMyw5IEBAIG1lZWdvdG91Y2ggewogICAg
IERFRklORVMgKz0gV1RGX1VTRV9NRUVHT1RPVUNIPTEKIH0KIAorIyBTUUxpdGUgaXMgcmVxdWly
ZWQgdG8gYnVpbGQgV2ViS2l0CitERUZJTkVTICs9IEVOQUJMRV9TUUxJVEU9MQorCiAjIyBsb2Fk
IG1vYmlsaXR5Y29uZmlnIGlmIG1vYmlsaXR5IGlzIGF2YWlsYWJsZQogbG9hZChtb2JpbGl0eWNv
bmZpZywgdHJ1ZSkKIApAQCAtNDMsMjggKzQ2LDE0IEBAIGlzRW1wdHkoSEFWRV9RUkFXRk9OVCkg
ewogICAgIERFRklORVMgKz0gRU5BQkxFX1NWR19GT05UUz0wCiB9CiAKLSMgdHVybiBvZmYgU1FM
SVRFIHN1cHBvcnQgaWYgd2UgZG8gbm90IGhhdmUgc3FsaXRlMyBhdmFpbGFibGUKLSFDT05GSUco
UVRESVJfYnVpbGQpOndpbjMyLSo6IWV4aXN0cyggJCR7U1FMSVRFM1NSQ0RJUn0vc3FsaXRlMy5j
ICk6IERFRklORVMgKz0gRU5BQkxFX1NRTElURT0wIEVOQUJMRV9TUUxfREFUQUJBU0U9MCBFTkFC
TEVfV09SS0VSUz0wIEVOQUJMRV9TSEFSRURfV09SS0VSUz0wIEVOQUJMRV9JQ09OREFUQUJBU0U9
MCBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTAgRU5BQkxFX0RPTV9TVE9SQUdFPTAK
LQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPS4pOiBERUZJ
TkVTICs9IEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPTEKICFjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfU1FMX0RBVEFCQVNFPS4pOiBERUZJTkVTICs9IEVOQUJMRV9TUUxfREFUQUJBU0U9MQot
IWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9Lik6IERF
RklORVMgKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX0RPTV9TVE9SQUdFPS4pOiBERUZJTkVTICs9IEVOQUJMRV9ET01fU1RPUkFH
RT0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lDT05EQVRBQkFTRT0uKTogREVGSU5FUyAr
PSBFTkFCTEVfSUNPTkRBVEFCQVNFPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkc9Lik6IERFRklORVMgKz0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HPTEKICFj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfRElSRUNUT1JZX1VQTE9BRD0uKTogREVGSU5FUyArPSBF
TkFCTEVfRElSRUNUT1JZX1VQTE9BRD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTEVf
U1lTVEVNPS4pOiBERUZJTkVTICs9IEVOQUJMRV9GSUxFX1NZU1RFTT0wCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1FVT1RBPS4pOiBERUZJTkVTICs9IEVOQUJMRV9RVU9UQT0wIAotCi0jIHR1
cm4gb24gU1FMSVRFIHN1cHBvcnQgaWYgYW55IG9mIHRoZSBkZXBlbmRlbnQgZmVhdHVyZXMgYXJl
IHR1cm5lZCBvbgotIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TUUxJVEU9LikgewotICBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfU1FMX0RBVEFCQVNFPTEpfGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9JQ09OREFUQUJBU0U9MSl8Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RPTV9TVE9SQUdF
PTEpfGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MSkg
ewotICAgIERFRklORVMgKz0gRU5BQkxFX1NRTElURT0xCi0gIH0gZWxzZSB7Ci0gICAgREVGSU5F
UyArPSBFTkFCTEVfU1FMSVRFPTAKLSAgfQotfQotCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X0RBU0hCT0FSRF9TVVBQT1JUPS4pOiBERUZJTkVTICs9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9S
VD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTFRFUlM9Lik6IERFRklORVMgKz0gRU5B
QkxFX0ZJTFRFUlM9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YUEFUSD0uKTogREVGSU5F
UyArPSBFTkFCTEVfWFBBVEg9MQpAQCAtMjI1LDcgKzIxNCw2IEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9YSFRNTE1QPTEpOiBGRUEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSk6
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQogY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1NWR19GT05UUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX1NWR19GT05UUz0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSkFWQVNDUklQVF9E
RUJVR0dFUj0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVI9MQotY29udGFpbnMoREVGSU5FUywgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUz0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCX1NPQ0tFVFM9
MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9XRUJfU09DS0VUUz0xCiBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCX1RJTUlORz0xKTogRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQgKz0gRU5BQkxFX1dFQl9USU1JTkc9MQogY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1RPVUNIX0VWRU5UUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1RP
VUNIX0VWRU5UUz0xCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBj
b3B5KQpAQCAtNzYsNyArNzYsNiBAQCBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RB
RzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFC
TEVfTk9USUZJQ0FUSU9OUyA9IDsKLUVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBF
TkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJM
RV9RVU9UQSA9IDsKQEAgLTk3LDQgKzk2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVf
WFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikg
JChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfU1FM
X0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
UykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRklMRV9T
WVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChF
TkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
VkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VC
X1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxF
X1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9D
U1MzX0ZMRVhCT1gpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0Up
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1Nf
VEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01FdmVudFRhcmdldC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTUV2ZW50VGFyZ2V0
LmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2Vi
RE9NRXZlbnRUYXJnZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsMTAgKzEwMyw3IEBAIENv
bnZlcnRUbyhYTUxIdHRwUmVxdWVzdCkKIENvbnZlcnRUbyhYTUxIdHRwUmVxdWVzdFVwbG9hZCkK
IENvbnZlcnRUbyhNZXNzYWdlUG9ydCkKIENvbnZlcnRUbyhFdmVudFNvdXJjZSkKLQotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiBDb252ZXJ0VG8oRE9NQXBwbGljYXRpb25D
YWNoZSkKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiBDb252ZXJ0VG8oV29ya2VyKQpA
QCAtMTU4LDEwICsxNTUsOCBAQCBXZWJET01FdmVudFRhcmdldCB0b1dlYktpdChXZWJDb3JlOjpF
dmVuCiAgICAgICAgIHJldHVybiB0b1dlYktpdChpbnN0YW5jZSk7CiAjZW5kaWYKIAotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKFdlYkNvcmU6OkRPTUFwcGxp
Y2F0aW9uQ2FjaGUqIGNhY2hlID0gdmFsdWUtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgpKQogICAg
ICAgICByZXR1cm4gdG9XZWJLaXQoY2FjaGUpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoV09SS0VS
UykKICAgICBpZiAoV2ViQ29yZTo6V29ya2VyKiB3b3JrZXIgPSB2YWx1ZS0+dG9Xb3JrZXIoKSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCShy
ZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJn
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCwxMCArNTQsOCBAQAogI2luY2x1ZGUgIkV2ZW50
U291cmNlLmgiCiAjaW5jbHVkZSAiSlNFdmVudFNvdXJjZS5oIgogCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICNpbmNsdWRlICJET01BcHBsaWNhdGlvbkNhY2hlLmgiCiAj
aW5jbHVkZSAiSlNET01BcHBsaWNhdGlvbkNhY2hlLmgiCi0jZW5kaWYKIAogI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCkBAIC0xMzMsMTAgKzEzMSw4IEBA
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmEKICAgICBpZiAoWE1MSHR0
cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgp
KQogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHVwbG9hZCk7CiAKLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChET01BcHBsaWNhdGlv
bkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCiAgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgY2FjaGUpOwotI2VuZGlmCiAKICAgICBp
ZiAoTWVzc2FnZVBvcnQqIG1lc3NhZ2VQb3J0ID0gdGFyZ2V0LT50b01lc3NhZ2VQb3J0KCkpCiAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnQpOwpAQCAt
MjE3LDEwICsyMTMsNyBAQCBFdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6OkpTVmFsdWUg
CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oYXNPYmplY3Qo
dmFsdWUpKS0+aW1wbCgpOwogCiAgICAgQ09OVkVSVF9UT19FVkVOVF9UQVJHRVQoRXZlbnRTb3Vy
Y2UpCi0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIENPTlZFUlRf
VE9fRVZFTlRfVEFSR0VUKERPTUFwcGxpY2F0aW9uQ2FjaGUpCi0jZW5kaWYKIAogI2lmIEVOQUJM
RShTVkcpCiAgICAgQ09OVkVSVF9UT19FVkVOVF9UQVJHRVQoU1ZHRWxlbWVudEluc3RhbmNlKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMiwxMCArNDIyLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4RE9NV3JhcHBlcjo6Y29udgogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9CiAK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChET01BcHBsaWNh
dGlvbkNhY2hlKiBkb21BcHBDYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkp
CiAgICAgICAgIHJldHVybiB0b1Y4KGRvbUFwcENhY2hlKTsKLSNlbmRpZgogCiAgICAgaWYgKEV2
ZW50U291cmNlKiBldmVudFNvdXJjZSA9IHRhcmdldC0+dG9FdmVudFNvdXJjZSgpKQogICAgICAg
ICByZXR1cm4gdG9WOChldmVudFNvdXJjZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDEyICsxMDUsMTAgQEAgWE1MSHR0cFJlcXVlc3RV
cGxvYWQqIEV2ZW50VGFyZ2V0Ojp0b1hNTAogICAgIHJldHVybiAwOwogfQogCi0jaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIEV2ZW50VGFy
Z2V0Ojp0b0RPTUFwcGxpY2F0aW9uQ2FjaGUoKQogewogICAgIHJldHVybiAwOwogfQotI2VuZGlm
CiAKICNpZiBFTkFCTEUoU1ZHKQogU1ZHRWxlbWVudEluc3RhbmNlKiBFdmVudFRhcmdldDo6dG9T
VkdFbGVtZW50SW5zdGFuY2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgJKHJldmlz
aW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNiw5ICsxMDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpOwogICAgICAgICB2aXJ0dWFsIFhNTEh0dHBS
ZXF1ZXN0KiB0b1hNTEh0dHBSZXF1ZXN0KCk7CiAgICAgICAgIHZpcnR1YWwgWE1MSHR0cFJlcXVl
c3RVcGxvYWQqIHRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogICAgICAgICB2aXJ0dWFsIERPTUFwcGxpY2F0aW9uQ2FjaGUqIHRv
RE9NQXBwbGljYXRpb25DYWNoZSgpOwotI2VuZGlmCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAg
dmlydHVhbCBTVkdFbGVtZW50SW5zdGFuY2UqIHRvU1ZHRWxlbWVudEluc3RhbmNlKCk7CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAJKHJldmlzaW9uIDk1OTA4
KQorKysgU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTUsMTIgKzE1NSwxMCBAQCBzdGF0aWMgYm9vbCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNp
b24oRnJhCiAgICAgICAgICAgICBQQ0xPRygiICAgLVRoZSBkb2N1bWVudCBjYW5ub3Qgc3VzcGVj
dCBpdHMgYWN0aXZlIERPTSBPYmplY3RzIik7CiAgICAgICAgICAgICBjYW5ub3RDYWNoZSA9IHRy
dWU7CiAgICAgICAgIH0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
ICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBhZ2VDYWNoZSgpKSB7CiAgICAgICAgICAgICBQQ0xPRygi
ICAgLVRoZSBEb2N1bWVudExvYWRlciB1c2VzIGFuIGFwcGxpY2F0aW9uIGNhY2hlIik7CiAgICAg
ICAgICAgICBjYW5ub3RDYWNoZSA9IHRydWU7CiAgICAgICAgIH0KLSNlbmRpZgogICAgICAgICBp
ZiAoIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNhbkNhY2hlUGFnZSgpKSB7CiAgICAgICAg
ICAgICBQQ0xPRygiICAgLVRoZSBjbGllbnQgc2F5cyB0aGlzIGZyYW1lIGNhbm5vdCBiZSBjYWNo
ZWQiKTsKICAgICAgICAgICAgIGNhbm5vdENhY2hlID0gdHJ1ZTsgCkBAIC0yNzcsMTEgKzI3NSw5
IEBAIGJvb2wgUGFnZUNhY2hlOjpjYW5DYWNoZVBhZ2VDb250YWluaW5nVGgKICAgICAgICAgJiYg
IWZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+aXNMb2FkaW5nSW5BUElTZW5zZSgp
CiAgICAgICAgICYmICFmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBp
bmcoKQogICAgICAgICAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2ZURPTU9i
amVjdHMoKQotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgaW52ZXN0aWdhdGluZyBjYWNoaW5nIGZyYW1lcyB0aGF0IGhhdmUg
YW4gYXNzb2NpYXRlZAogICAgICAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9i
bGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0IHdvcmsuCiAgICAgICAgICYmIGZyYW1lLT5sb2FkZXIo
KS0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBh
Z2VDYWNoZSgpCi0jZW5kaWYKICAgICAgICAgJiYgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+
Y2FuQ2FjaGVQYWdlKCk7CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxI
dG1sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRt
bEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEh0bWxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNiBAQCBib29sIEhU
TUxIdG1sRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0CiAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+
bmFtZSgpID09IG1hbmlmZXN0QXR0cjsKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCiB2b2lkIEhUTUxIdG1sRWxlbWVudDo6aW5zZXJ0ZWRCeVBhcnNlcigpCiB7CiAg
ICAgLy8gV2hlbiBwYXJzaW5nIGEgZnJhZ21lbnQsIGl0cyBkdW1teSBkb2N1bWVudCBoYXMgYSBu
dWxsIHBhcnNlci4KQEAgLTc2LDYgKzc1LDUgQEAgdm9pZCBIVE1MSHRtbEVsZW1lbnQ6Omluc2Vy
dGVkQnlQYXJzZXIoKQogICAgIGVsc2UKICAgICAgICAgZG9jdW1lbnRMb2FkZXItPmFwcGxpY2F0
aW9uQ2FjaGVIb3N0KCktPnNlbGVjdENhY2hlV2l0aE1hbmlmZXN0KGRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKG1hbmlmZXN0KSk7CiB9Ci0jZW5kaWYKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSHRtbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxIdG1sRWxlbWVudC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEh0bWxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIHZvaWQgaW5zZXJ0ZWRCeVBhcnNlcigpOwotI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgSFRNTEh0bWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcyNiw3ICs3MjYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmxvYWROZXh0U291cmNlQ2hpCiAgICAgbG9hZFJlc291cmNlKG1lZGlhVVJMLCBjb250ZW50VHlw
ZSk7CiB9CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAmJiAhUExBVEZP
Uk0oQ0hST01JVU0pCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogc3RhdGljIEtVUkwgY3JlYXRl
RmlsZVVSTEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7
CiAgICAgLy8gS1VSTCBzaG91bGQgaGF2ZSBhIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHVybCBmcm9t
IGEgcGF0aCwgYnV0IGl0IGRvZXMgbm90LiBUaGlzIGZ1bmN0aW9uCkBAIC03NzcsNyArNzc3LDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29ucwogICAgIC8vIFRoZSBy
ZXNvdXJjZSBmZXRjaCBhbGdvcml0aG0gCiAgICAgbV9uZXR3b3JrU3RhdGUgPSBORVRXT1JLX0xP
QURJTkc7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAmJiAhUExBVEZP
Uk0oQ0hST01JVU0pCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIElmIHRoZSB1cmwg
c2hvdWxkIGJlIGxvYWRlZCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSwgcGFzcyB0aGUgdXJs
IG9mIHRoZSBjYWNoZWQgZmlsZQogICAgIC8vIHRvIHRoZSBtZWRpYSBlbmdpbmUuCiAgICAgQXBw
bGljYXRpb25DYWNoZUhvc3QqIGNhY2hlSG9zdCA9IGZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKQEAgLTc5Niw3ICs3OTYsNyBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zCiAgICAgLy8gY2FjaGUgaXMgYW4g
aW50ZXJuYWwgZGV0YWlsIG5vdCBleHBvc2VkIHRocm91Z2ggdGhlIG1lZGlhIGVsZW1lbnQgQVBJ
LgogICAgIG1fY3VycmVudFNyYyA9IHVybDsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpICYmICFQTEFURk9STShDSFJPTUlVTSkKKyNpZiAhUExBVEZPUk0oQ0hST01JVU0p
CiAgICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgIHVybCA9IGNyZWF0ZUZpbGVVUkxGb3JBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2UocmVzb3VyY2UtPnBhdGgoKSk7CiAgICAgICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSAtIHdpbGwgbG9hZCBmcm9tIGFwcCBj
YWNoZSAtPiAlcyIsIHVybEZvckxvZ2dpbmcodXJsKS51dGY4KCkuZGF0YSgpKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUs
OSArMTk1LDcgQEAgdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdAogICAg
IAogICAgIFJlZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9IERvY3VtZW50OjpjcmVhdGVFbGVt
ZW50KGh0bWxUYWcsIGZhbHNlKTsKICAgICBhcHBlbmRDaGlsZChyb290RWxlbWVudCwgZWMpOwot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgc3RhdGljX2Nhc3Q8SFRN
TEh0bWxFbGVtZW50Kj4ocm9vdEVsZW1lbnQuZ2V0KCkpLT5pbnNlcnRlZEJ5UGFyc2VyKCk7Ci0j
ZW5kaWYKIAogICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPmxvYWRlcigpKQogICAgICAgICBm
cmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03Myw5ICs3Myw3IEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnQK
ICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgIFJlZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9
IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOwogICAgIGRvY3VtZW50
KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBlYyk7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKICAgICBzdGF0aWNfY2FzdDxIVE1MSHRtbEVsZW1lbnQqPihyb290RWxl
bWVudC5nZXQoKSktPmluc2VydGVkQnlQYXJzZXIoKTsKLSNlbmRpZgogCiAgICAgaWYgKGRvY3Vt
ZW50KCktPmZyYW1lKCkpCiAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5k
aXNwYXRjaERvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9QbHVnaW5Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwLDkgKzcwLDcgQEAg
dm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbgogICAgIEV4Y2VwdGlvbkNv
ZGUgZWM7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CiAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQo
cm9vdEVsZW1lbnQsIGVjKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIHN0YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KHJvb3RFbGVtZW50LmdldCgpKS0+aW5z
ZXJ0ZWRCeVBhcnNlcigpOwotI2VuZGlmCiAKICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAm
JiBkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+ZnJh
bWUoKS0+bG9hZGVyKCktPmRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDkgKzE4NCw3IEBA
IHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEhUTUxIdG0KICAgICBSZWZQdHI8SFRN
TEh0bWxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEh0bWxFbGVtZW50OjpjcmVhdGUobV9kb2N1bWVu
dCk7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlTWFwKHRva2VuLnRha2VBdHJpYnV0ZXMoKSwg
bV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIG1fb3BlbkVsZW1lbnRzLnB1c2hI
VE1MSHRtbEVsZW1lbnQoYXR0YWNoPEVsZW1lbnQ+KG1fYXR0YWNobWVudFJvb3QsIGVsZW1lbnQu
Z2V0KCkpKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGVsZW1l
bnQtPmluc2VydGVkQnlQYXJzZXIoKTsKLSNlbmRpZgogICAgIGRpc3BhdGNoRG9jdW1lbnRFbGVt
ZW50QXZhaWxhYmxlSWZOZWVkZWQoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAJ
KHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaCIKIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkFwcGxpY2F0
aW9uQ2FjaGVIb3N0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAgLTEzOCw0ICsx
MzgsNCBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yQXBwCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw3ICsyNSw3IEBACiAjaWZuZGVmIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudF9oCiAjZGVmaW5lIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudF9oCiAKLSNpZiBF
TkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCkBAIC03NCw1ICs3NCw1IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
ICYmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKICNlbmRpZiAvLyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnRfaApJbmRl
eDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw5ICsxMDgsNyBAQCBJbnNwZWN0
b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyCiAgICAgLCBtX2RvbVN0b3JhZ2VBZ2Vu
dChJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIG1fc3RhdGUuZ2V0KCkpKQogI2VuZGlmCiAgICAgLCBtX3RpbWVsaW5lQWdlbnQoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSkpCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAg
ICAsIG1fYXBwbGljYXRpb25DYWNoZUFnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlKSkpCi0jZW5k
aWYKICAgICAsIG1fcmVzb3VyY2VBZ2VudChJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3BhZ2VBZ2VudC5nZXQoKSwgaW5zcGVjdG9y
Q2xpZW50LCBtX3N0YXRlLmdldCgpKSkKICAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5l
dyBQYWdlUnVudGltZUFnZW50KG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBwYWdlLCBt
X3BhZ2VBZ2VudC5nZXQoKSkpKQogICAgICwgbV9jb25zb2xlQWdlbnQoYWRvcHRQdHIobmV3IElu
c3BlY3RvckNvbnNvbGVBZ2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5zcGVj
dG9yQWdlbnQuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpLCBtX2RvbUFnZW50LmdldCgpKSkpCkBAIC0yMDIsOSArMjAwLDcgQEAgdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbgogICAgIC8vIFdlIGNhbiByZWNvbm5lY3QgdG8g
ZXhpc3RpbmcgZnJvbnQtZW5kIC0+IHVubXV0ZSBzdGF0ZS4KICAgICBtX3N0YXRlLT51bm11dGUo
KTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNh
dGlvbkNhY2hlQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwot
I2VuZGlmCiAgICAgbV9wYWdlQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQu
Z2V0KCkpOwogICAgIG1fZG9tQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQu
Z2V0KCkpOwogICAgIG1fY29uc29sZUFnZW50LT5zZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250
ZW5kLmdldCgpKTsKQEAgLTIzMiw5ICsyMjgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmNvbm5lY3RGcm9udGVuCiAgICAgQVNTRVJUKG1faW5zcGVjdG9yQ2xpZW50KTsKICAgICBtX2lu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyID0gYWRvcHRSZWYobmV3IEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyKAogICAgICAgICBtX2luc3BlY3RvckNsaWVudCwKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2VudC5nZXQo
KSwKLSNlbmRpZgogICAgICAgICBtX2Nzc0FnZW50LmdldCgpLAogICAgICAgICBtX2NvbnNvbGVB
Z2VudC5nZXQoKSwKICAgICAgICAgbV9kb21BZ2VudC5nZXQoKSwKQEAgLTI4NSw5ICsyNzksNyBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9uCiAgICAgbV9kb21EZWJ1
Z2dlckFnZW50LT5jbGVhckZyb250ZW5kKCk7CiAgICAgbV9wcm9maWxlckFnZW50LT5jbGVhckZy
b250ZW5kKCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIG1fYXBwbGljYXRpb25DYWNoZUFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0jZW5kaWYKICAg
ICBtX2NvbnNvbGVBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogICAgIG1fZG9tQWdlbnQtPmNsZWFy
RnJvbnRlbmQoKTsKICAgICBtX2Nzc0FnZW50LT5jbGVhckZyb250ZW5kKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHJldmlzaW9u
IDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDkgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRy
PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gbV9kb21TdG9yYWdlQWdlbnQ7CiAjZW5kaWYKICAg
ICBPd25QdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OwotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgT3duUHRyPEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudD4gbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQ7Ci0jZW5kaWYKICAgICBS
ZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gbV9yZXNvdXJjZUFnZW50OwogICAgIE93blB0
cjxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IG1fcnVudGltZUFnZW50OwogICAgIE93blB0cjxJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ+IG1fY29uc29sZUFnZW50OwpJbmRleDogU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAJKHJldmlz
aW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyMiw3ICs4MjIsNiBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShP
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
bmV0d29ya1N0YXRlQ2hhbmdlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cykKIHsKICAgICBpZiAoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KiBhcHBs
aWNhdGlvbkNhY2hlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQoKSkKQEAgLTgzNCw3ICs4MzMsNiBAQCB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6dXBkYXRlQXBwCiAgICAgaWYgKEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudCogYXBwbGljYXRpb25DYWNoZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkpCiAgICAgICAgIGFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dC0+dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhmcmFtZSk7CiB9Ci0jZW5kaWYKIAogYm9v
bCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbGxlY3RpbmdIVE1MUGFyc2VFcnJvcnMoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKIHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgJKHJl
dmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksMTAgKzE4OSw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlKik7Ci0K
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIHN0YXRpYyB2b2lkIHVw
ZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICBzdGF0aWMgdm9pZCBmcm9udGVuZENyZWF0ZWQoKSB7IHNfZnJvbnRl
bmRDb3VudGVyICs9IDE7IH0KQEAgLTMyMiwxMCArMzE5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBkaWRDbG9zZVdlYlNvY2tldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllcik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2Fj
aGVTdGF0dXNJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwotI2VuZGlmCiAKICAg
ICBzdGF0aWMgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2Uo
UGFnZSopOwogICAgIHN0YXRpYyBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yRnJhbWUoRnJhbWUqKTsKQEAgLTEwMTYsMTQgKzEwMTEsMTMgQEAgaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246Om5ldHdvcmtTdGF0ZUNoYW5nZWQoUGFnZSogcGFnZSkKIHsKLSNpZiBFTkFC
TEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7
CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKICAgICAgICAgbmV0d29ya1N0YXRlQ2hhbmdl
ZEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cyk7CiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqIGZyYW1lKQogewogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCkBAIC0xMDMyLDcgKzEwMjYsNiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnVwCiAgICAgICAgIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0
dXNJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKICNlbmRpZgogfQotI2VuZGlmCiAK
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVnaXN0ZXJBbmltYXRp
b25GcmFtZUNhbGxiYWNrKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGNhbGxiYWNrSWQpCiB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgJ
KHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsOSArNzMsNyBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKICAgICAgICAgLCBtX2luc3BlY3RvckRhdGFiYXNlQWdlbnQo
MCkKICNlbmRpZgotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAg
ICwgbV9pbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoMCkKLSNlbmRpZgogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICAgICAsIG1faW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCgwKQogICAgICAgICAsIG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgwKQpAQCAtMTE5LDEw
ICsxMTcsOCBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCogaW5zcGVjdG9y
RGF0YWJhc2VBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yRGF0YWJhc2VBZ2VudDsg
fQogICAgIHZvaWQgc2V0SW5zcGVjdG9yRGF0YWJhc2VBZ2VudChJbnNwZWN0b3JEYXRhYmFzZUFn
ZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckRhdGFiYXNlQWdlbnQgPSBhZ2VudDsgfQogI2VuZGlm
Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQqIGluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpIGNvbnN0
IHsgcmV0dXJuIG1faW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OyB9CiAgICAgdm9pZCBz
ZXRJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA9IGFnZW50
OyB9Ci0jZW5kaWYKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KiBpbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkgY29uc3QgeyByZXR1cm4g
bV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50KEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yRGVidWdn
ZXJBZ2VudCA9IGFnZW50OyB9CkBAIC0xNTMsOSArMTQ5LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoU1FMX0RBVEFCQVNFKQogICAgIEluc3BlY3RvckRhdGFiYXNlQWdlbnQqIG1faW5zcGVjdG9y
RGF0YWJhc2VBZ2VudDsKICNlbmRpZgotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCiAgICAgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KiBtX2luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDsKLSNlbmRpZgogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQogICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIG1faW5zcGVjdG9yRGVidWdnZXJBZ2VudDsK
ICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI2LDkgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVj
dEYKICAgICBtX2Zyb250ZW5kID0gYWRvcHRQdHIobmV3IEluc3BlY3RvckZyb250ZW5kKG1fZnJv
bnRlbmRDaGFubmVsLmdldCgpKSk7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IGFkb3B0UmVm
KG5ldyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcigKICAgICAgICAgbV9mcm9udGVuZENoYW5u
ZWwuZ2V0KCksCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAg
MCwgLy8gSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ci0jZW5kaWYKICNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAgICAgMCwgLy8gSW5zcGVjdG9yRE9NRGVidWdnZXJB
Z2VudAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGUtaW5z
cGVjdG9yLWlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJh
dGUtaW5zcGVjdG9yLWlkbAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZ2VuZXJhdGUtaW5zcGVjdG9yLWlkbAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYs
NiBAQCByZWZfdHlwZXMgPSB7fQogbWFjcm9fdHJhaXRzID0gewogICAgICJEYXRhYmFzZSI6ICJT
UUxfREFUQUJBU0UiLAogICAgICJET01TdG9yYWdlIjogIkRPTV9TVE9SQUdFIiwKLSAgICAiQXBw
bGljYXRpb25DYWNoZSI6ICJPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMiLAogICAgICJEZWJ1Z2dl
ciI6ICJKQVZBU0NSSVBUX0RFQlVHR0VSIiwKICAgICAiRE9NRGVidWdnZXIiOiAiSkFWQVNDUklQ
VF9ERUJVR0dFUiIsCiAgICAgIlByb2ZpbGVyIjogIkpBVkFTQ1JJUFRfREVCVUdHRVIiLApJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShyZXZpc2lvbiA5NTkw
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk4LDkgKzk4LDcgQEAgRG9jdW1lbnRMb2FkZXI6OkRvY3VtZW50TG9hZGVyKGNv
bnN0IFJlcwogICAgICwgbV9zdG9wUmVjb3JkaW5nUmVzcG9uc2VzKGZhbHNlKQogICAgICwgbV9z
dWJzdGl0dXRlUmVzb3VyY2VEZWxpdmVyeVRpbWVyKHRoaXMsICZEb2N1bWVudExvYWRlcjo6c3Vi
c3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkKQogICAgICwgbV9kaWRDcmVhdGVHbG9i
YWxIaXN0b3J5RW50cnkoZmFsc2UpCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKICAgICAsIG1fYXBwbGljYXRpb25DYWNoZUhvc3QoYWRvcHRQdHIobmV3IEFwcGxpY2F0aW9u
Q2FjaGVIb3N0KHRoaXMpKSkKLSNlbmRpZgogewogfQogCkBAIC0yMDAsMTAgKzE5OCw4IEBAIHZv
aWQgRG9jdW1lbnRMb2FkZXI6Om1haW5SZWNlaXZlZEVycm9yKGMKIHsKICAgICBBU1NFUlQoIWVy
cm9yLmlzTnVsbCgpKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAg
ICAgbV9hcHBsaWNhdGlvbkNhY2hlSG9zdC0+ZmFpbGVkTG9hZGluZ01haW5SZXNvdXJjZSgpOwot
I2VuZGlmCi0gICAgCisKICAgICBpZiAoIWZyYW1lTG9hZGVyKCkpCiAgICAgICAgIHJldHVybjsK
ICAgICBzZXRNYWluRG9jdW1lbnRFcnJvcihlcnJvcik7CkBAIC0yMzUsOSArMjMxLDcgQEAgdm9p
ZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcoKQogICAgIGNhbmNlbEFsbChtX211bHRpcGFy
dFN1YnJlc291cmNlTG9hZGVycyk7CiAKICAgICAvLyBBcHBjYWNoZSB1c2VzIFJlc291cmNlSGFu
ZGxlIGRpcmVjdGx5LCBEb2N1bWVudExvYWRlciBkb2Vzbid0IGNvdW50IHRoZXNlIGxvYWRzLgot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNhdGlvbkNh
Y2hlSG9zdC0+c3RvcExvYWRpbmdJbkZyYW1lKG1fZnJhbWUpOwotI2VuZGlmCiAKICAgICBpZiAo
IWxvYWRpbmcpCiAgICAgICAgIHJldHVybjsKQEAgLTQwMiw5ICszOTYsNyBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpkZXRhY2hGcm9tRnJhbWUoKQogewogICAgIEFTU0VSVChtX2ZyYW1lKTsKIAot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNhdGlvbkNh
Y2hlSG9zdC0+c2V0RE9NQXBwbGljYXRpb25DYWNoZSgwKTsKLSNlbmRpZgogICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUobV9mcmFtZSwgdGhpcyk7
CiAgICAgbV9mcmFtZSA9IDA7CiB9CkBAIC04OTgsOSArODkwLDcgQEAgdm9pZCBEb2N1bWVudExv
YWRlcjo6Z2V0SWNvbkRhdGFGb3JJY29uVQogdm9pZCBEb2N1bWVudExvYWRlcjo6aGFuZGxlZE9u
bG9hZEV2ZW50cygpCiB7CiAgICAgbV93YXNPbmxvYWRIYW5kbGVkID0gdHJ1ZTsKLSNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkt
PnN0b3BEZWZlcnJpbmdFdmVudHMoKTsKLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkocmV2aXNpb24g
OTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ4LDkgKzI0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Ly8gYWN0dWFsbHkgYmUgYWRkZWQgdG8gdGhlIGRvY3VtZW50LgogICAgICAgICB2b2lkIGNvbW1p
dERhdGEoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5ndGgpOwogCi0jaWYgRU5BQkxFKE9G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvbkNhY2hlSG9z
dC5nZXQoKTsgfQotI2VuZGlmCiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIERvY3VtZW50TG9h
ZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJik7CkBAIC0z
NDksMTAgKzM0Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPEljb25M
b2FkRGVjaXNpb25DYWxsYmFjaz4gbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJhY2s7CiAgICAgICAg
IFJlZlB0cjxJY29uRGF0YUNhbGxiYWNrPiBtX2ljb25EYXRhQ2FsbGJhY2s7CiAKLSNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICBmcmllbmQgY2xhc3MgQXBwbGlj
YXRpb25DYWNoZUhvc3Q7ICAvLyBmb3Igc3Vic3RpdHV0ZSByZXNvdXJjZSBkZWxpdmVyeQogICAg
ICAgICBPd25QdHI8QXBwbGljYXRpb25DYWNoZUhvc3Q+IG1fYXBwbGljYXRpb25DYWNoZUhvc3Q7
Ci0jZW5kaWYKICAgICB9OwogCiAgICAgaW5saW5lIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlY29y
ZE1lbW9yeUNhY2hlTG9hZEZvckZ1dHVyZUNsaWVudE5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcm
IHVybCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDk1
OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xODQsMTAgKzE4NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgeyB9CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgdmlydHVhbCB2b2lkIHJlYWNo
ZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90KSB7IH0K
LSNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgdmlydHVhbCBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjM0LDE0ICsyNjM0LDEwIEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6Omxv
YWRSZXNvdXJjZVMKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgQVNTRVJUKCFu
ZXdSZXF1ZXN0LmlzTnVsbCgpKTsKICAgICAgICAgCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNh
Y2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNw
b25zZSwgZGF0YSkpIHsKLSNlbmRpZgogICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkobmV0d29ya2luZ0NvbnRleHQoKSwgbmV3UmVxdWVzdCwgc3Rv
cmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7Ci0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxp
Y2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25vdXNseShuZXdSZXF1
ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAgICAgICB9Ci0jZW5kaWYKICAgICB9CiAg
ICAgaW50IGVuY29kZWREYXRhTGVuZ3RoID0gcmVzcG9uc2UucmVzb3VyY2VMb2FkSW5mbygpID8g
c3RhdGljX2Nhc3Q8aW50PihyZXNwb25zZS5yZXNvdXJjZUxvYWRJbmZvKCktPmVuY29kZWREYXRh
TGVuZ3RoKSA6IC0xOwogICAgIG5vdGlmaWVyKCktPnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3Nh
Z2VzKG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCksIGlkZW50aWZpZXIsIHJlc3BvbnNlLCBkYXRhLmRh
dGEoKSwgZGF0YS5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoLCBlcnJvcik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjIxLDEzICsyMjEsMTEgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdAogICAgIC8vIERvbid0IHNldCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1
ZXN0LiBJdCBpcyBzZXQgd2hlbiB0aGUgbWFpbiBsb2FkIHdhcyBzdGFydGVkLgogICAgIG1fZG9j
dW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVzdCk7CiAKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkg
ewogICAgICAgICAvLyBXZSBjaGVja2VkIGFwcGxpY2F0aW9uIGNhY2hlIGZvciBpbml0aWFsIFVS
TCwgbm93IHdlIG5lZWQgdG8gY2hlY2sgaXQgZm9yIHJlZGlyZWN0ZWQgb25lLgogICAgICAgICBB
U1NFUlQoIW1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKTsKICAgICAgICAgZG9jdW1lbnRMb2Fk
ZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFpblJlc291cmNlRm9yUmVk
aXJlY3QobmV3UmVxdWVzdCwgbV9zdWJzdGl0dXRlRGF0YSk7CiAgICAgfQotI2VuZGlmCiAKICAg
ICAvLyBGSVhNRTogSWRlYWxseSB3ZSdkIHN0b3AgdGhlIEkvTyB1bnRpbCB3ZSBoZWFyIGJhY2sg
ZnJvbSB0aGUgbmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUKICAgICAvLyBsaXN0ZW5lci4gQnV0
IHRoZXJlJ3Mgbm8gd2F5IHRvIGRvIHRoYXQgaW4gcHJhY3RpY2UuIFNvIGluc3RlYWQgd2UgY2Fu
Y2VsIGxhdGVyIGlmIHRoZQpAQCAtMzYwLDEwICszNTgsOCBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6c3Vic3RpdHV0ZU1JTUVUCiAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZShyZXF1ZXN0
KCksIHIpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAgIEhUVFBIZWFkZXJNYXA6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gci5odHRwSGVhZGVyRmllbGRzKCkuZmluZChBdG9taWNTdHJpbmco
IngtZnJhbWUtb3B0aW9ucyIpKTsKICAgICBpZiAoaXQgIT0gci5odHRwSGVhZGVyRmllbGRzKCku
ZW5kKCkpIHsKQEAgLTQ1MCwxMCArNDQ2LDggQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVEYXRhKAogI2lmICFVU0UoQ0YpCiAgICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkp
OwogI2VuZGlmCi0gCi0gI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisKICAg
ICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWluUmVzb3VyY2VE
YXRhUmVjZWl2ZWQoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsK
LSNlbmRpZgogCiAgICAgLy8gVGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhp
bmcgaW5jbHVkaW5nIHBvc3NpYmx5IHJlbW92aW5nIHRoZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNl
IHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYyMTYuCkBAIC00NzUs
MjcgKzQ2OSwyMCBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluCiAg
ICAgLy8gVGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcgaW5jbHVkaW5n
IHBvc3NpYmx5IHJlbW92aW5nIHRoZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNlIHRvIHRoaXMgb2Jq
ZWN0LgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhpcyk7Ci0KLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIFJlZlB0cjxEb2N1bWVudExv
YWRlcj4gZGwgPSBkb2N1bWVudExvYWRlcigpOwotI2VuZGlmCiAKICAgICBBU1NFUlQoIWRvY3Vt
ZW50TG9hZGVyKCktPnRpbWluZygpLT5yZXNwb25zZUVuZCk7CiAgICAgZG9jdW1lbnRMb2FkZXIo
KS0+dGltaW5nKCktPnJlc3BvbnNlRW5kID0gZmluaXNoVGltZSA/IGZpbmlzaFRpbWUgOiAobV90
aW1lT2ZMYXN0RGF0YVJlY2VpdmVkID8gbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkIDogY3VycmVu
dFRpbWUoKSk7CiAgICAgZnJhbWVMb2FkZXIoKS0+ZmluaXNoZWRMb2FkaW5nKCk7CiAgICAgUmVz
b3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7Ci0gICAgCi0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKwogICAgIGRsLT5hcHBsaWNhdGlvbkNhY2hl
SG9zdCgpLT5maW5pc2hlZExvYWRpbmdNYWluUmVzb3VyY2UoKTsKLSNlbmRpZgogfQogCiB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikK
IHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChkb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1h
aW5FcnJvcihyZXF1ZXN0KCksIGVycm9yKSkKICAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAKICAg
ICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBk
aXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8gU2VlIDxyZGFy
Oi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgpAQCAtNTk5LDkgKzU4Niw3IEBA
IGJvb2wgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc28KICAgICBkb2N1bWVudExv
YWRlcigpLT50aW1pbmcoKS0+ZmV0Y2hTdGFydCA9IGN1cnJlbnRUaW1lKCk7CiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3Qocik7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJl
TG9hZE1haW5SZXNvdXJjZShyZXF1ZXN0LCBtX3N1YnN0aXR1dGVEYXRhKTsKLSNlbmRpZgogCiAg
ICAgYm9vbCBkZWZlciA9IGRlZmVyc0xvYWRpbmcoKTsKICAgICBpZiAoZGVmZXIpIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gOTU5MDgp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDMsMTEgKzE0Myw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAg
ICBpZiAobV9kb2N1bWVudExvYWRlci0+c2NoZWR1bGVBcmNoaXZlTG9hZCh0aGlzLCBtX3JlcXVl
c3QsIG1fcmVxdWVzdC51cmwoKSkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAgIAotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisKICAgICBpZiAobV9kb2N1bWVudExv
YWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkUmVzb3VyY2UodGhpcywgbV9y
ZXF1ZXN0LCBtX3JlcXVlc3QudXJsKCkpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAg
IGlmIChtX2RlZmVyc0xvYWRpbmcpIHsKICAgICAgICAgbV9kZWZlcnJlZFJlcXVlc3QgPSBtX3Jl
cXVlc3Q7CkBAIC0yMTEsMTAgKzIwOSw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVz
b3VyY2VEYXRhKCkKIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNw
b25zZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICgh
ZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkp
CiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3Vt
ZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwogICAgIC8vIFByb3RlY3Qg
dGhpcyBpbiB0aGlzIGRlbGVnYXRlIG1ldGhvZCBzaW5jZSB0aGUgYWRkaXRpb25hbCBwcm9jZXNz
aW5nIGNhbiBkbwpAQCAtMjM5LDIwICsyMzUsMTYgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2ls
bFNlbmRSZXF1ZXN0KFJlcwogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNp
Z25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykKIHsKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2Fk
ZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYK
ICAgICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAg
ICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBp
ZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBD
UkFTSCgpOwogICAgIEFTU0VSVCghbV9yZWFjaGVkVGVybWluYWxTdGF0ZSk7CkBAIC0yNzIsMTAg
KzI2NCw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSgKIAogdm9p
ZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKIHsKLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghbV9jYW5jZWxsZWQg
JiYgIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0
KCkpKQogICAgICAgICBDUkFTSCgpOwotI2VuZGlmCiAgICAgaWYgKCFtX2NhbmNlbGxlZCAmJiAh
ZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNI
KCk7CiAgICAgLy8gVGhlIGZvbGxvd2luZyBhc3NlcnRpb25zIGFyZSBub3QgcXVpdGUgdmFsaWQg
aGVyZSwgc2luY2UgYSBzdWJjbGFzcwpAQCAtNDIyLDEwICs0MTIsOCBAQCBSZXNvdXJjZUVycm9y
IFJlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0ZvclJlZGlyZWN0KHRoaXMsIHJlcXVl
c3QsIHJlZGlyZWN0UmVzcG9uc2UpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICB3aWxs
U2VuZFJlcXVlc3QocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiB9CiAKQEAgLTQzNiwxMCAr
NDI0LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEoUmVzb3VyYwogCiB2b2lk
IFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hl
SG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0ZvclJlc3BvbnNlKHRoaXMsIHJlc3BvbnNlKSkKICAg
ICAgICAgcmV0dXJuOwotI2VuZGlmCiAgICAgZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsK
IH0KIApAQCAtNDUyLDEwICs0MzgsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YShSZXNvCiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBp
ZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBD
UkFTSCgpOwogICAgIGRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7CkBAIC00NjMsMjUgKzQ0
NywxOSBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlCiAKIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
IGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhv
c3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIWZhc3RNYWxsb2NTaXpl
KGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwotI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yRXJyb3IodGhpcywgZXJy
b3IpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICBkaWRGYWlsKGVycm9yKTsKIH0KIAog
dm9pZCBSZXNvdXJjZUxvYWRlcjo6d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopCiB7Ci0jaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBpZiAoIWZhc3RNYWxsb2NTaXpl
KGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkpKQogICAgICAgICBDUkFT
SCgpOwotI2VuZGlmCiAgICAgaWYgKCFmYXN0TWFsbG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5m
cmFtZSgpKSkKICAgICAgICAgQ1JBU0goKTsKICAgICBkaWRGYWlsKGJsb2NrZWRFcnJvcigpKTsK
QEAgLTQ4OSwxMCArNDY3LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2FzQmxvY2tlZChSZXNv
dXJjZQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxl
KikKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghZmFz
dE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAg
ICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50
TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwogICAgIGRpZEZhaWwoY2Fubm90
U2hvd1VSTEVycm9yKCkpOwpAQCAtNTAwLDEwICs0NzYsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVy
OjpjYW5ub3RTaG93VVJMKFJlc291CiAKIGJvb2wgUmVzb3VyY2VMb2FkZXI6OnNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIWZhc3RNYWxs
b2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwogCkBA
IC01NjAsMTAgKzUzNCw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVkQ2FuY2VsbGF0
aW8KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqLCBDYWNoZVN0b3JhZ2VQb2xpY3kmIHBvbGljeSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIo
KS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAg
ICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAg
ICBDUkFTSCgpOwogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS83MjQ5NTUzPiAtIFRoZXJlIGFyZSBy
ZXBvcnRzIG9mIGNyYXNoZXMgd2l0aCB0aGlzIG1ldGhvZCBiZWluZyBjYWxsZWQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDgsOSArMTQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHByb3RlY3RlZDoKICAgICAg
ICAgUmVzb3VyY2VMb2FkZXIoRnJhbWUqLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMpOwogCi0jaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgZnJpZW5kIGNsYXNzIEFw
cGxpY2F0aW9uQ2FjaGVIb3N0OyAgLy8gZm9yIGFjY2VzcyB0byByZXF1ZXN0KCkKLSNlbmRpZgog
ICAgICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VMb2FkU2NoZWR1bGVyOyAvLyBmb3IgYWNjZXNz
IHRvIHN0YXJ0KCkKICAgICAgICAgLy8gc3RhcnQoKSBhY3R1YWxseSBzZW5kcyB0aGUgbG9hZCB0
byB0aGUgbmV0d29yayAodW5sZXNzIHRoZSBsb2FkIGlzIGJlaW5nIAogICAgICAgICAvLyBkZWZl
cnJlZCkgYW5kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSBSZXNvdXJjZUxvYWRTY2hlZHVsZXIg
b3Igc2V0RGVmZXJzTG9hZGluZygpLgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJBcHBsaWNhdGlvbkNhY2hlLmgiCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQotCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUdyb3VwLmgiCiAjaW5jbHVkZSAiQXBw
bGljYXRpb25DYWNoZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UuaCIKQEAgLTIyNyw1ICsyMjUsMyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGU6OmR1bXAoKQog
I2VuZGlmCiAKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAog
I2lmbmRlZiBBcHBsaWNhdGlvbkNhY2hlX2gKICNkZWZpbmUgQXBwbGljYXRpb25DYWNoZV9oCiAK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CkBAIC0xMTcsNiArMTE1LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2Vu
ZGlmIC8vIEFwcGxpY2F0aW9uQ2FjaGVfaApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAJKHJldmlzaW9u
IDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCIKIAotI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hl
LmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJBcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2UuaCIKQEAgLTExNTgsNyArMTE1Niw0IEBAIHZvaWQgQXBwbGljYXRp
b25DYWNoZUdyb3VwOjpjbGVhclN0b3JhZ2UKICAgICAgICAgKCppdCktPmNsZWFyU3RvcmFnZUlE
KCk7CiB9CiAKLQogfQotCi0jZW5kaWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEFwcGxpY2F0aW9uQ2FjaGVHcm91cF9oCiAjZGVmaW5l
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cF9oCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQotCiAjaW5jbHVkZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgpAQCAtMjA3LDYgKzIwNSw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNlbmRpZiAvLyBBcHBsaWNhdGlvbkNhY2hlR3JvdXBf
aApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVI
b3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUhvc3QuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBsaWNh
dGlvbkNhY2hlSG9zdC5oIgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
LQogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCIKQEAgLTQ2
NCw1ICs0NjIsMyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVIb3N0Ojppc0FwcGxpY2F0aW9uCiB9
CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAgLy8gRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw4ICszMSw2IEBACiAjaWZuZGVmIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
X2gKICNkZWZpbmUgQXBwbGljYXRpb25DYWNoZUhvc3RfaAogCi0jaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlIDx3dGYvRGVx
dWUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0yMDgsNSArMjA2LDQgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgIC8vIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAjZW5kaWYgIC8vIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiQXBwbGljYXRp
b25DYWNoZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXBwbGljYXRp
b25DYWNoZVJlc291cmNlOjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgdW5zaWduZWQgdHlwZSwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTg3LDUgKzg1
LDMgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmR1bXBUeXBlKAogI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2VfaAogI2RlZmluZSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VfaAogCi0jaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIlN1YnN0aXR1dGVS
ZXNvdXJjZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03NCw2ICs3Miw0IEBAIHByaXZh
dGU6CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjZW5kaWYgLy8gQXBwbGljYXRpb25DYWNoZVJlc291
cmNlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlLmgiCiAjaW5jbHVk
ZSAiQXBwbGljYXRpb25DYWNoZUdyb3VwLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKQEAgLTE1MzksNSArMTUzNywzIEBAIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlJiBjYWNo
ZVN0b3JhZ2UoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgJKHJldmlz
aW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYg
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2VfaAogI2RlZmluZSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZV9oCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKICNpbmNs
dWRlICJTUUxpdGVEYXRhYmFzZS5oIgpAQCAtMTU1LDYgKzE1Myw0IEBAIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlJiBjYWNoZVN0b3JhZ2UoKTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNlbmRpZiAv
LyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNh
Y2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUuaCIKIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAg
LTEyOCw1ICsxMjYsMyBAQCBFdmVudFRhcmdldERhdGEqIERPTUFwcGxpY2F0aW9uQ2FjaGU6OmVu
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
RE9NQXBwbGljYXRpb25DYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBET01BcHBsaWNhdGlvbkNhY2hlX2gK
ICNkZWZpbmUgRE9NQXBwbGljYXRpb25DYWNoZV9oCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQotCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKQEAgLTkyLDYgKzkw
LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2VuZGlmIC8vIERPTUFwcGxpY2F0aW9u
Q2FjaGVfaApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0
aW9uQ2FjaGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDYgQEAKIG1vZHVsZSBvZmZsaW5lIHsKICAKICAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBDb25kaXRpb25hbD1PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMsCiAgICAgICAg
IEV2ZW50VGFyZ2V0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIERvbnRDaGVj
a0VudW1zLApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL01hbmlmZXN0UGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFu
aWZlc3RQYXJzZXIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9NYW5pZmVzdFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNYW5pZmVzdFBhcnNlci5oIgog
Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIktVUkwu
aCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSA8d3RmL3VuaWNv
ZGUvQ2hhcmFjdGVyTmFtZXMuaD4KQEAgLTE4Miw3ICsxODAsNSBAQCBib29sIHBhcnNlTWFuaWZl
c3QoY29uc3QgS1VSTCYgbWFuaWZlc3RVCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSAgICAKLX0K
IAotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCit9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJzZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJzZXIuaAkocmV2
aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQ
YXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBNYW5pZmVz
dFBhcnNlcl9oCiAjZGVmaW5lIE1hbmlmZXN0UGFyc2VyX2gKIAotI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDYgKzQzLDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjZW5k
aWYgLy8gTWFuaWZlc3RQYXJzZXJfaApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nocm9t
aXVtL1Jlc291cmNlTG9hZGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jaHJvbWl1bS9SZXNvdXJjZUxvYWRlckNocm9taXVtLmNwcAkocmV2aXNpb24g
OTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2hyb21pdW0vUmVzb3VyY2VMb2FkZXJD
aHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDEwICs0NCw4IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmRpZERvd25sb2FkRGF0YShSZXMKIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlk
RG93bmxvYWREYXRhKGludCBsZW5ndGgpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUykKICAgICBpZiAoIW1fY2FuY2VsbGVkICYmICFmYXN0TWFsbG9jU2l6ZShkb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKSkKICAgICAgICAgQ1JBU0goKTsKLSNl
bmRpZgogICAgIGlmICghbV9jYW5jZWxsZWQgJiYgIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9h
ZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsxODMsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAwOwogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICAvLyBDYWxsYmFjayBpbnZv
a2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmpl
Y3QKICAgICAgICAgLy8gYmVjYXVzZSBzdG9yaW5nIGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNl
IGZpbGUgcGFzdCBpdHMgZGVmaW5lZCBtYXhpbXVtCiAgICAgICAgIC8vIHNpemUgb3IgcGFzdCB0
aGUgYW1vdW50IG9mIGZyZWUgc3BhY2Ugb24gdGhlIGRldmljZS4gCkBAIC0yMDAsNyArMTk5LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBvdGhlciBleGlzdGluZyBjYWNoZXMg
Zm9yIHRoZSBvcmlnaW4gdGhhdCB3b3VsZCBub3QgYmUgcmVwbGFjZWQgYnkKICAgICAgICAgLy8g
dGhlIG5ldyBjYWNoZS4KICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQp
ID0gMDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGFzaGJvYXJkUmVnaW9uc0NoYW5nZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDIsMTEgKzUwMiw5IEBAIHZvaWQgRE9N
V2luZG93OjpjbGVhcigpCiAgICAgbV9sb2NhbFN0b3JhZ2UgPSAwOwogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChtX2FwcGxpY2F0aW9uQ2Fj
aGUpCiAgICAgICAgIG1fYXBwbGljYXRpb25DYWNoZS0+ZGlzY29ubmVjdEZyYW1lKCk7CiAgICAg
bV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCiAgICAgaWYgKG1fbm90aWZpY2F0aW9ucykKQEAgLTU5OSwxNCArNTk3LDEyIEBAIENvbnNv
bGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc29sZS5nZXQo
KTsKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiBET01BcHBsaWNh
dGlvbkNhY2hlKiBET01XaW5kb3c6OmFwcGxpY2F0aW9uQ2FjaGUoKSBjb25zdAogewogICAgIGlm
ICghbV9hcHBsaWNhdGlvbkNhY2hlKQogICAgICAgICBtX2FwcGxpY2F0aW9uQ2FjaGUgPSBET01B
cHBsaWNhdGlvbkNhY2hlOjpjcmVhdGUobV9mcmFtZSk7CiAgICAgcmV0dXJuIG1fYXBwbGljYXRp
b25DYWNoZS5nZXQoKTsKIH0KLSNlbmRpZgogCiBOYXZpZ2F0b3IqIERPTVdpbmRvdzo6bmF2aWdh
dG9yKCkgY29uc3QKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zODgsMTAgKzM4OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU3RvcmFnZUlu
Zm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIERPTUFwcGxpY2F0aW9uQ2FjaGUqIGFwcGxp
Y2F0aW9uQ2FjaGUoKSBjb25zdDsKICAgICAgICAgRE9NQXBwbGljYXRpb25DYWNoZSogb3B0aW9u
YWxBcHBsaWNhdGlvbkNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvbkNhY2hlLmdl
dCgpOyB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgICAg
IC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21lIGV4
YW1wbGVzIGFyZToKQEAgLTQ2MCw5ICs0NTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIG11dGFibGUgUmVmUHRyPElEQkZhY3Rvcnk+IG1faWRiRmFjdG9yeTsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8RE9NQXBwbGljYXRpb25DYWNoZT4gbV9hcHBsaWNhdGlvbkNhY2hlOwotI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZpY2F0
aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDkgKzE2NCw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAg
ICAgICBXZWJLaXRQb2ludCB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgbm9kZSwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gV2ViS2l0UG9pbnQgcCk7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpICYmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBET01BcHBsaWNh
dGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0jZW5kaWYgICAgCiAjaWYgZGVmaW5lZChFTkFC
TEVfU1FMX0RBVEFCQVNFKSAmJiBFTkFCTEVfU1FMX0RBVEFCQVNFCiAgICAgICAgIFtFbmFibGVk
QXRSdW50aW1lXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2UoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERP
TVN0cmluZyB2ZXJzaW9uLCBpbiBET01TdHJpbmcgZGlzcGxheU5hbWUsIGluIHVuc2lnbmVkIGxv
bmcgZXN0aW1hdGVkU2l6ZSwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRGF0YWJhc2VDYWxsYmFj
ayBjcmVhdGlvbkNhbGxiYWNrKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMw
LDEwICs4MzAsOCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjCiAg
ICAgaWYgKG1fdmlldyAmJiAhbmV3RWxlbWVudC0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3RWxl
bWVudC0+YXR0YWNoKCk7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIGlmIChuZXdFbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aHRtbFRhZykpCiAgICAg
ICAgIHN0YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KG5ld0VsZW1lbnQuZ2V0KCkpLT5pbnNl
cnRlZEJ5UGFyc2VyKCk7Ci0jZW5kaWYKIAogICAgIGlmICghbV9wYXJzaW5nRnJhZ21lbnQgJiYg
aXNGaXJzdEVsZW1lbnQgJiYgZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9jdW1lbnQo
KS0+ZnJhbWUoKS0+bG9hZGVyKCktPmRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyUXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJz
ZXJRdC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI5LDEwICs1MjksOCBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZVN0YXJ0RWxlbWVuCiAgICAgaWYgKG1fdmll
dyAmJiAhbmV3RWxlbWVudC0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3RWxlbWVudC0+YXR0YWNo
KCk7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChuZXdF
bGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aHRtbFRhZykpCiAgICAgICAgIHN0YXRpY19j
YXN0PEhUTUxIdG1sRWxlbWVudCo+KG5ld0VsZW1lbnQuZ2V0KCkpLT5pbnNlcnRlZEJ5UGFyc2Vy
KCk7Ci0jZW5kaWYKIAogICAgIGlmIChpc0ZpcnN0RWxlbWVudCAmJiBkb2N1bWVudCgpLT5mcmFt
ZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1
bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEyKQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRl
eHRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmFwcGxpY2F0aW9uQ2FjaGVE
aXJlY3RvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyOjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyk6CisgICAgICAgIChXZWJL
aXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbEVu
dHJpZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxMS0wOS0yMyAgQWRhbSBLbGVp
biAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgRU5BQkxFX01VVEFUSU9OX09C
U0VSVkVSUyBmZWF0dXJlIGZsYWcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw2IEBAIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVf
TUVURVJfVEFHOwogRU5BQkxFX01IVE1MID0gOwogRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9
IDsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gOwotRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUyA9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM7CiBFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFH
OwogRU5BQkxFX1FVT1RBID0gOwpAQCAtOTcsNCArOTYsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsK
IEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7
CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9C
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVO
QUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJf
SVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0ZJ
TEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkg
JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChF
TkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
ICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVf
VklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVO
QUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFC
TEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfREFUQUJBU0Up
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1Nf
VEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMSArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogU3RyaW5nIFdlYkNvbnRleHQ6OmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKQogewotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNh
Y2hlU3RvcmFnZSgpLmNhY2hlRGlyZWN0b3J5KCk7Ci0jZWxzZQotICAgIHJldHVybiBRU3RyaW5n
KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDk1OTA4KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjA0LDExICsyMDQsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9j
ZXNzKGNvCiAgICAgU3RvcmFnZVRyYWNrZXI6OmluaXRpYWxpemVUcmFja2VyKHBhcmFtZXRlcnMu
bG9jYWxTdG9yYWdlRGlyZWN0b3J5LCAwKTsKICAgICBtX2xvY2FsU3RvcmFnZURpcmVjdG9yeSA9
IHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5OwogI2VuZGlmCi0gICAgCi0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKwogICAgIGlmICghcGFyYW1ldGVycy5hcHBs
aWNhdGlvbkNhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgY2FjaGVTdG9yYWdlKCku
c2V0Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KTsK
LSNlbmRpZgogCiAgICAgc2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3MocGFyYW1ldGVycy5zaG91
bGRUcmFja1Zpc2l0ZWRMaW5rcyk7CiAgICAgc2V0Q2FjaGVNb2RlbChzdGF0aWNfY2FzdDx1aW50
MzJfdD4ocGFyYW1ldGVycy5jYWNoZU1vZGVsKSk7CkBAIC03NzEsMTAgKzc2OSw4IEBAIHZvaWQg
V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUNhY2hlcyhSZXMKIAogdm9pZCBXZWJQcm9jZXNzOjpj
bGVhckFwcGxpY2F0aW9uQ2FjaGUoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgLy8gRW1wdHkgdGhlIGFwcGxpY2F0aW9uIGNhY2hlLgogICAgIGNhY2hlU3Rv
cmFnZSgpLmVtcHR5KCk7Ci0jZW5kaWYKIH0KIAogI2lmICFFTkFCTEUoUExVR0lOX1BST0NFU1Mp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBj
b3B5KQpAQCAtMjM4LDkgKzIzOCw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgU3RyaW5nIG1fbG9j
YWxTdG9yYWdlRGlyZWN0b3J5OwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9hcHBsaWNhdGlvbkNhY2hlUGF0aEV4
dGVuc2lvbjsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogICAgIFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
cjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNw
cAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MCw5ICs2MCw3IEBAIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmdldEFwcGwK
IAogICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5IYXNo
PiBvcmlnaW5zOwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBj
YWNoZVN0b3JhZ2UoKS5nZXRPcmlnaW5zV2l0aENhY2hlKG9yaWdpbnMpOwotI2VuZGlmCiAKICAg
ICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBpZGVudGlmaWVyczsKICAgICBpZGVudGlmaWVy
cy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXplKCkpOwpAQCAtODcsMjIgKzg1LDE4IEBAIHZv
aWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUUKIHsKICAgICBXZWJQcm9jZXNz
OjpMb2NhbFRlcm1pbmF0aW9uRGlzYWJsZXIgdGVybWluYXRpb25EaXNhYmxlcihXZWJQcm9jZXNz
OjpzaGFyZWQoKSk7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShv
cmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CiAg
ICAgaWYgKCFvcmlnaW4pCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBBcHBsaWNhdGlvbkNh
Y2hlOjpkZWxldGVDYWNoZUZvck9yaWdpbihvcmlnaW4uZ2V0KCkpOwotI2VuZGlmCiB9CiAKIHZv
aWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMoKQogewogICAg
IFdlYlByb2Nlc3M6OkxvY2FsVGVybWluYXRpb25EaXNhYmxlciB0ZXJtaW5hdGlvbkRpc2FibGVy
KFdlYlByb2Nlc3M6OnNoYXJlZCgpKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgY2FjaGVTdG9yYWdlKCkuZGVsZXRlQWxsRW50cmllcygpOwotI2VuZGlmCiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAko
cmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0Myw3ICs1NDMsNiBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1CiAjZW5kaWYKIAogCi0j
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKQEAgLTU1Myw3ICs1NTIsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxp
Y2F0aW9uCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxF
KERBU0hCT0FSRF9TVVBQT1JUKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRhc2hib2FyZFJlZ2lv
bnNDaGFuZ2VkKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsMTAgKzEzNSw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lKSBPVkVSUklERTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hl
U2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbios
IGludDY0X3Qgc3BhY2VOZWVkZWQpIE9WRVJSSURFOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoREFT
SEJPQVJEX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIGRhc2hib2FyZFJlZ2lvbnNDaGFuZ2Vk
KCkgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5
MTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIzIEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZl
YXR1cmVzLmd5cGk6CisgICAgICAgICogc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDoKKyAg
ICAgICAgKiBzcmMvQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbC5oOgorICAgICAgICAqIHNy
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6
CisgICAgICAgICogc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRGF0YVNvdXJjZUltcGw6OmFwcGxpY2F0aW9uQ2FjaGVIb3N0KToKKyAgICAgICAgKiBzcmMv
V2ViUnVudGltZUZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1
cmVzOjplbmFibGVBcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGlt
ZUZlYXR1cmVzOjppc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKToKKwogMjAxMS0wOS0yMyAgQWRh
bSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgRU5BQkxFX01VVEFU
SU9OX09CU0VSVkVSUyBmZWF0dXJlIGZsYWcKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
ZmVhdHVyZXMuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1
cmVzLmd5cGkJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0
dXJlcy5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw2IEBACiAgICAgICAnRU5BQkxF
X01IVE1MPTEnLAogICAgICAgJ0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlM9MCcsCiAgICAgICAn
RU5BQkxFX05PVElGSUNBVElPTlM9MScsCi0gICAgICAnRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUz0xJywKICAgICAgICdFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTPTAnLAogICAgICAg
J0VOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJPTEnLAogICAgICAgJ0VOQUJMRV9QUk9HUkVTU19U
QUc9MScsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BcHBsaWNhdGlvbkNhY2hl
SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGlj
YXRpb25DYWNoZUhvc3QuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
OCArMzEsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmgiCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgpAQCAtMzAyLDUgKzMw
MCwzIEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmlzQXBwbGljYXRpb24KIH0KIAogfSAg
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmICAvLyBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25D
YWNoZUhvc3RJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWwuaAkocmV2aXNpb24gOTU5MDgpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
V2ViQXBwbGljYXRpb25DYWNoZUhvc3RDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZUNsaWVu
dC5oIgpAQCAtODIsNSArODAsMyBAQCBwcml2YXRlOgogfTsKIAogfQotCi0jZW5kaWYgIC8vIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAkocmV2aXNpb24gOTU5MDgp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjA3LDcgKzIwNyw2IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViQWNjZXNzaWIKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNz
aWJpbGl0eVJvbGVEb2N1bWVudFJlZ2lvbiwgRG9jdW1lbnRSZWdpb25Sb2xlKTsKIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVVc2VySW50ZXJmYWNlVG9v
bHRpcCwgVXNlckludGVyZmFjZVRvb2x0aXBSb2xlKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFwcGxpY2F0
aW9uQ2FjaGVIb3N0OjpVbmNhY2hlZCwgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlVOQ0FDSEVEKTsK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6Oklk
bGUsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpJRExFKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNoZWNraW5nLCBBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6Q0hFQ0tJTkcpOwpAQCAtMjIyLDcgKzIyMSw2IEBAIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViQXBwbGljYXQKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBw
bGljYXRpb25DYWNoZUhvc3Q6OlVwZGF0ZVJlYWR5RXZlbnQsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjpVUERBVEVSRUFEWV9FVkVOVCk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZWRFdmVudCwgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNB
Q0hFRF9FVkVOVCk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpPYnNvbGV0ZUV2ZW50LCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6T0JTT0xFVEVf
RVZFTlQpOwotI2VuZGlmCiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQ2xpcGJv
YXJkOjpGb3JtYXRQbGFpblRleHQsIFBhc3RlYm9hcmRQcml2YXRlOjpQbGFpblRleHRGb3JtYXQp
OwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJDbGlwYm9hcmQ6OkZvcm1hdEhUTUws
IFBhc3RlYm9hcmRQcml2YXRlOjpIVE1MRm9ybWF0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NDUsNyArNjQ1LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpleGNlZWRl
ZERhdGFiYXNlUQogICAgIC8vIENocm9taXVtIHVzZXJzIGNhbm5vdCBjdXJyZW50bHkgY2hhbmdl
IHRoZSBkZWZhdWx0IHF1b3RhCiB9CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0
X3Qgc3BhY2VOZWVkZWQpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NTUsNyAr
NjU0LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZWFjaGVkQXBwbGljYXRpbwogewogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotI2VuZGlmCiAKIHZvaWQgQ2hyb21lQ2xpZW50SW1w
bDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmls
ZUNob29zZXIpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDEwICsxMjgsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKik7CiAgICAg
dmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSgKICAgICAgICAgV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lKTsKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0
b3RhbFNwYWNlTmVlZGVkKTsKLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAg
IHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVz
ZW50ZXIoKSBjb25zdDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGF0YVNvdXJjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEYXRhU291cmNlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMSwxMSArMTIxLDcgQEAgdm9pZCBXZWJEYXRhU291cmNlSW1wbDo6c2V0RXh0cmFEYXRh
KEV4dAogCiBXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdCogV2ViRGF0YVNvdXJjZUltcGw6OmFwcGxp
Y2F0aW9uQ2FjaGVIb3N0KCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogICAgIHJldHVybiBBcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsOjp0b1dlYkFwcGxpY2F0
aW9uQ2FjaGVIb3N0KERvY3VtZW50TG9hZGVyOjphcHBsaWNhdGlvbkNhY2hlSG9zdCgpKTsKLSNl
bHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJEYXRhU291cmNlSW1wbDo6
c2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZChib29sIGRlZmVyKQpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCShyZXZpc2lv
biA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJl
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MCwxOCArMTQwLDEyIEBAIGJvb2wgV2ViUnVudGlt
ZUZlYXR1cmVzOjppc05vdGlmaWNhdGlvbnMKIAogdm9pZCBXZWJSdW50aW1lRmVhdHVyZXM6OmVu
YWJsZUFwcGxpY2F0aW9uQ2FjaGUoYm9vbCBlbmFibGUpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZChlbmFibGUpOwotI2VuZGlmCiB9CiAKIGJvb2wgV2ViUnVudGltZUZl
YXR1cmVzOjppc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjph
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKIH0KIAogdm9pZCBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZURhdGFUcmFuc2Zlckl0ZW1z
KGJvb2wgZW5hYmxlKQpJbmRleDogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisrKyBT
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBA
QAorMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFsd2F5cyBlbmFibGUgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAgKiBld2svZXdrX21haW4uY3BwOgorICAg
ICAgICAoX2V3a19pbml0X2JvZHkpOgorICAgICAgICAqIGV3ay9ld2tfc2V0dGluZ3MuY3BwOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2NhY2hlX2RpcmVjdG9yeV9wYXRoX3NldCk6CisgICAgICAg
IChld2tfc2V0dGluZ3NfY2FjaGVfZGlyZWN0b3J5X3BhdGhfZ2V0KToKKwogMjAxMS0wOS0yMSAg
THVjYXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+CiAKICAgICAg
ICAgW0VGTF0gUmV2ZXJ0IHBvaW50ZXIgb3BlcmF0b3IgY29kaW5nIHN0eWxlIGluIGV3awpJbmRl
eDogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3NCw3ICszNzQs
NiBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6cHJpbnQoRnJhbWUqIGZyYW1lCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiB2
b2lkIENocm9tZUNsaWVudEVmbDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNl
TmVlZGVkKQogewogICAgIC8vIEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCkBAIC0zODUsNyArMzg0
LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlYWNoZWRBcHBsaWNhdGlvbgogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2
b2lkIENocm9tZUNsaWVudEVmbDo6bmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVlZGVkKQpJbmRleDog
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNCwxMCArMTE0LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVz
ZW50ZXIoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNw
YWNlTmVlZGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5k
aWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29u
dGV4dE1lbnUoKSB7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcAkocmV2aXNp
b24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xODIsMTAgKzE4Miw3IEBAIEVpbmFfQm9vbCBfZXdrX2luaXRfYm9keSh2b2lk
KQogICAgIFdURjo6U3RyaW5nIHdrZGlyID0gaG9tZSArICIvLndlYmtpdCI7CiAgICAgaWYgKFdl
YkNvcmU6Om1ha2VBbGxEaXJlY3Rvcmllcyh3a2RpcikpIHsKICAgICAgICAgZXdrX3NldHRpbmdz
X3dlYl9kYXRhYmFzZV9wYXRoX3NldCh3a2Rpci51dGY4KCkuZGF0YSgpKTsKLQotI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIGV3a19zZXR0aW5nc19jYWNoZV9k
aXJlY3RvcnlfcGF0aF9zZXQod2tkaXIudXRmOCgpLmRhdGEoKSk7Ci0jZW5kaWYKICAgICB9CiAK
ICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBtb3ZlIHRvIFdlYkNvcmUsIGFscmVhZHkgcmVwb3J0
ZWQgdG8gd2Via2l0LWd0ayBmb2xrczoKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
c2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0
dGluZ3MuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
c2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRl
Lmg+CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorLy8gRklYTUU6IFdo
eSBpcyB0aGVyZSBhIGRpcmVjdG9yeSBpbiB0aGlzIGluY2x1ZGU/CiAjaW5jbHVkZSAiYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKIAogc3RhdGljIGNvbnN0IGNoYXIqIF9ld2tf
Y2FjaGVfZGlyZWN0b3J5X3BhdGggPSAwOwpAQCAtMjU1LDcgKzI1NSw2IEBAIGNvbnN0IGNoYXIq
IGV3a19zZXR0aW5nc19kZWZhdWx0X3VzZXJfYWcKIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19j
YWNoZV9kaXJlY3RvcnlfcGF0aF9zZXQoY29uc3QgY2hhciogcGF0aCkKIHsKLSNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghcGF0aCkKICAgICAgICAgcmV0dXJu
IEVJTkFfRkFMU0U7CiAKQEAgLTI2NSwxOCArMjY0LDExIEBAIEVpbmFfQm9vbCBld2tfc2V0dGlu
Z3NfY2FjaGVfZGlyZWN0b3J5X3AKICAgICBlbHNlCiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVf
cmVwbGFjZSgmX2V3a19jYWNoZV9kaXJlY3RvcnlfcGF0aCwgcGF0aCk7CiAgICAgcmV0dXJuIEVJ
TkFfVFJVRTsKLSNlbHNlCi0gICAgRUlOQV9TQUZFVFlfT05fVFJVRV9SRVRVUk5fVkFMKDEsIEVJ
TkFfRkFMU0UpOwotI2VuZGlmCiB9CiAKIGNvbnN0IGNoYXIqIGV3a19zZXR0aW5nc19jYWNoZV9k
aXJlY3RvcnlfcGF0aF9nZXQoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCiAgICAgcmV0dXJuIF9ld2tfY2FjaGVfZGlyZWN0b3J5X3BhdGg7Ci0jZWxzZQotICAgIEVJ
TkFfU0FGRVRZX09OX1RSVUVfUkVUVVJOX1ZBTCgxLCAwKTsKLSNlbmRpZgogfQogCiBkb3VibGUg
ZXdrX3NldHRpbmdzX2RlZmF1bHRfdGltZXJfaW50ZXJ2YWxfZ2V0KHZvaWQpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAg
ICAgICogd2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwOgorICAgICAgICAod2Via2l0
X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9tYXhpbXVtX3NpemUpOgorICAgICAgICAod2Via2l0X2Fw
cGxpY2F0aW9uX2NhY2hlX3NldF9tYXhpbXVtX3NpemUpOgorICAgICAgICAod2Via2l0X2FwcGxp
Y2F0aW9uX2NhY2hlX2dldF9kYXRhYmFzZV9kaXJlY3RvcnlfcGF0aCk6CisgICAgICAgICogd2Vi
a2l0L3dlYmtpdGdsb2JhbHMuY3BwOgorICAgICAgICAod2Via2l0SW5pdCk6CisKIDIwMTEtMDkt
MjIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY29t
PgogCiAgICAgICAgIFJlbW92ZSB1c2VsZXNzIGVtcHR5IFdlYktpdCBuYW1lc3BhY2UuCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTg5LDcgKzU4OSw2
IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEKIH0KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIHZvaWQgQ2hyb21lQ2xpZW50
OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpCiB7CiAgICAgLy8g
RklYTUU6IEZyZWUgc29tZSBzcGFjZS4KQEAgLTYwMCw3ICs1OTksNiBAQCB2b2lkIENocm9tZUNs
aWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
LSNlbmRpZgogCiB2b2lkIENocm9tZUNsaWVudDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1Jl
ZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNob29zZXIpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAkocmV2aXNpb24g
OTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDEwICsxMTgsOCBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICNl
bmRpZgotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIHZpcnR1
YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5kaWYK
ICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dDb250
ZXh0TWVudSgpIHsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0YXBwbGljYXRpb25jYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2FjaGUuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRhcHBsaWNhdGlvbmNhY2hlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDEsMTEgKzQxLDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBjYWNo
ZU1heFNpemUgPQogICoqLwogdW5zaWduZWQgbG9uZyBsb25nIHdlYmtpdF9hcHBsaWNhdGlvbl9j
YWNoZV9nZXRfbWF4aW11bV9zaXplKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQogICAgIHJldHVybiAoY2FjaGVNYXhTaXplID0gV2ViQ29yZTo6Y2FjaGVTdG9yYWdl
KCkubWF4aW11bVNpemUoKSk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIC8q
KgpAQCAtNjAsMTYgKzU2LDEyIEBAIHVuc2lnbmVkIGxvbmcgbG9uZyB3ZWJraXRfYXBwbGljYXRp
b25fY2EKICAqKi8KIHZvaWQgd2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX3NldF9tYXhpbXVtX3Np
emUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICBpZiAoc2l6ZSAhPSBjYWNoZU1heFNpemUpIHsKICAgICAgICAgV2Vi
Q29yZTo6Y2FjaGVTdG9yYWdlKCkuZW1wdHkoKTsKICAgICAgICAgV2ViQ29yZTo6Y2FjaGVTdG9y
YWdlKCkudmFjdXVtRGF0YWJhc2VGaWxlKCk7CiAgICAgICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFn
ZSgpLnNldE1heGltdW1TaXplKHNpemUpOwogICAgICAgICBjYWNoZU1heFNpemUgPSBzaXplOwog
ICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHNpemUpOwotI2VuZGlmCiB9CiAKIC8qKgpA
QCAtODUsMTEgKzc3LDcgQEAgdm9pZCB3ZWJraXRfYXBwbGljYXRpb25fY2FjaGVfc2V0X21heGlt
dQogICoqLwogY29uc3QgZ2NoYXIqIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9nZXRfZGF0YWJh
c2VfZGlyZWN0b3J5X3BhdGgoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCiAgICAgQ1N0cmluZyBwYXRoID0gV2ViQ29yZTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmNhY2hlRGlyZWN0b3J5KCkpOwogICAgIHJldHVybiBw
YXRoLmRhdGEoKTsKLSNlbHNlCi0gICAgcmV0dXJuICIiOwotI2VuZGlmCiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRnbG9iYWxzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0Z2xvYmFscy5jcHAJKHJldmlzaW9uIDk1OTA4
KQorKysgU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMTgsOSArMzE4LDcgQEAgdm9pZCB3ZWJraXRJbml0KCkKIAogICAgIGdjaGFy
KiBkYXRhYmFzZURpcmVjdG9yeSA9IGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2Rp
cigpLCAid2Via2l0IiwgImRhdGFiYXNlcyIsIE5VTEwpOwogICAgIHdlYmtpdF9zZXRfd2ViX2Rh
dGFiYXNlX2RpcmVjdG9yeV9wYXRoKGRhdGFiYXNlRGlyZWN0b3J5KTsKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnNldENh
Y2hlRGlyZWN0b3J5KGRhdGFiYXNlRGlyZWN0b3J5KTsKLSNlbmRpZgogCiAgICAgZ19mcmVlKGRh
dGFiYXNlRGlyZWN0b3J5KTsKIApJbmRleDogU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1
OTEyKQorKysgU291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNCBAQAorMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRXeDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaDoKKwogMjAxMS0wOS0xNyAgTWlo
YWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGcmFtZUxvYWRl
ckNsaWVudCBCYWNrRm9yd2FyZExpc3QtcmVsYXRlZCBtZXRob2RzIGFyZSB1bnN1ZWQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50SGFpa3UuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvaGFpa3Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NDQsNyArMzQ0LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6ZXhjZWVkZWREYXRhYmFzZQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQogdm9pZCBDaHJvbWVDbGllbnRXeDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2
NF90IHNwYWNlTmVlZGVkKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0zNTQsNyArMzUz
LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6cmVhY2hlZEFwcGxpY2F0aW9uQwogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6cmVx
dWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQog
ewpJbmRleDogU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRI
YWlrdS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50SGFpa3UuaAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2hh
aWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEhhaWt1LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEzNiwxMCArMTM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29u
c3Q7CiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBw
Q2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3Qg
dG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAg
ICAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudSgpIHsgfQogI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDExLTA5LTI0ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
OgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUubW06CisgICAgICAgICgrW1dlYkNhY2hlIGVtcHR5
XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbToKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1t
OgorICAgICAgICAoLVtXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyIHVzYWdlXSk6Cisg
ICAgICAgICgtW1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIgcXVvdGFdKToKKyAgICAg
ICAgKC1bV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlciBzZXRRdW90YTpdKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291
cmNlLm1tOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF90cmFuc2ZlckFwcGxpY2F0aW9uQ2Fj
aGU6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJh
bWUgX2NhY2hlYWJpbGl0eURpY3Rpb25hcnldKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgIChXZWJLaXRJbml0aWFsaXplQXBwbGljYXRpb25DYWNoZVBhdGhJZk5lY2Vz
c2FyeSk6CisKIDIwMTEtMDktMjMgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgQWRkIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgZmVhdHVyZSBmbGFnCkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9D
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAt
NzYsNyArNzYsNiBAQCBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJM
RV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVfTk9USUZJ
Q0FUSU9OUyA9IDsKLUVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TOwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7CiBF
TkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9UQSA9
IDsKQEAgLTk3LDQgKzk2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBF
TkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklO
RVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVf
Q1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfREFUQUJBU0UpICQo
RU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9E
RVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9N
RVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJ
U0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVO
QUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVf
U1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RPVUNI
X0lDT05fTE9BRElORykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVO
QUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChF
TkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChF
TkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQpOworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVf
M0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FO
SU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAk
KEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkg
JChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBTElT
VCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJM
RV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNP
TkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xP
UikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAk
KEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NP
VVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVO
QUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxF
X1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVP
VEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAk
KEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFC
TEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJB
Q0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NL
RVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRN
TE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9NaXNjL1dlYkNhY2hlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL01p
c2MvV2ViQ2FjaGUubW0JKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9tYWMvTWlz
Yy9XZWJDYWNoZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTE2LDEwICsxMTYsOCBAQCArICh2b2lk
KWVtcHR5CiAgICAgW1dlYlZpZXcgX3NldENhY2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50
Vmlld2VyXTsKICAgICBbV2ViVmlldyBfc2V0Q2FjaGVNb2RlbDpjYWNoZU1vZGVsXTsKIAotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgLy8gRW1wdHkgdGhlIGFwcGxp
Y2F0aW9uIGNhY2hlLgogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmVtcHR5KCk7Ci0jZW5k
aWYKIAogICAgIC8vIEVtcHR5IHRoZSBDcm9zcy1PcmlnaW4gUHJlZmxpZ2h0IGNhY2hlCiAgICAg
V2ViQ29yZTo6Q3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2hhcmVkKCkuZW1wdHko
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9u
Q2FjaGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQXBwbGljYXRpb25DYWNoZS5tbQkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw4ICsyMyw2IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0jaWYgRU5BQkxFKE9G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2ltcG9ydCAiV2ViQXBwbGljYXRpb25DYWNoZS5o
IgogCiAjaW1wb3J0ICJXZWJTZWN1cml0eU9yaWdpbkludGVybmFsLmgiCkBAIC05MCw1ICs4OCwz
IEBAICsgKE5TQXJyYXkgKilvcmlnaW5zV2l0aENhY2hlCiB9CiAKIEBlbmQKLQotI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hl
UXVvdGFNYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0JKHJldmlzaW9uIDk1OTA4
KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNo
ZVF1b3RhTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDksMzMgKzQ5LDIzIEBAIC0gKFdl
YlNlY3VyaXR5T3JpZ2luICopb3JpZ2luCiAKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1c2FnZQog
ewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbG9uZyBsb25nIHVz
YWdlOwogICAgIGlmIChjYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVVc2FnZUZvck9yaWdpbihbX29y
aWdpbiBfY29yZV0sIHVzYWdlKSkKICAgICAgICAgcmV0dXJuIHVzYWdlOwogICAgIHJldHVybiAw
OwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgogfQogCiAtICh1bnNpZ25lZCBsb25nIGxv
bmcpcXVvdGEKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGxv
bmcgbG9uZyBxdW90YTsKICAgICBpZiAoY2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUXVvdGFGb3JP
cmlnaW4oW19vcmlnaW4gX2NvcmVdLCBxdW90YSkpCiAgICAgICAgIHJldHVybiBxdW90YTsKICAg
ICByZXR1cm4gMDsKLSNlbHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogLSAodm9pZClz
ZXRRdW90YToodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKICAgICBjYWNoZVN0b3JhZ2UoKS5zdG9yZVVwZGF0ZWRRdW90YUZv
ck9yaWdpbihbX29yaWdpbiBfY29yZV0sIHF1b3RhKTsKLSNlbmRpZgogfQogCiBAZW5kCkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDEwICsxMTIsOCBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFi
YXNlTmFtZSkgT1ZFUlJJREU7CiAjZW5kaWYKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qg
c3BhY2VOZWVkZWQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3Rh
bFNwYWNlTmVlZGVkKSBPVkVSUklERTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0
ZVZpc2l0ZWRMaW5rcygpIE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTY1Niw4ICs2
NTYsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1CiAKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKIHsK
ICAgICAvLyBGSVhNRTogRnJlZSBzb21lIHNwYWNlLgpAQCAtNjc0LDggKzY3Miw2IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb24KICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogfQogCi0jZW5kaWYKLSAgICAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpwb3B1
bGF0ZVZpc2l0ZWRMaW5rcygpCiB7CiAgICAgaWYgKFttX3dlYlZpZXcgaGlzdG9yeURlbGVnYXRl
XSkgewpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQko
cmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3Vy
Y2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5NSw3ICsxOTUsNiBAQCAtIChOU1N0cmluZyAqKV9y
ZXNwb25zZU1JTUVUeXBlCiAKIC0gKEJPT0wpX3RyYW5zZmVyQXBwbGljYXRpb25DYWNoZTooTlNT
dHJpbmcqKWRlc3RpbmF0aW9uQnVuZGxlSWRlbnRpZmllcgogewotI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCiAgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IFtzZWxmIF9k
b2N1bWVudExvYWRlcl07CiAgICAgCiAgICAgaWYgKCFsb2FkZXIpCkBAIC0yMDQsOSArMjAzLDYg
QEAgLSAoQk9PTClfdHJhbnNmZXJBcHBsaWNhdGlvbkNhY2hlOihOU1N0cgogICAgIE5TU3RyaW5n
ICpjYWNoZURpciA9IFtOU1N0cmluZyBfd2Via2l0X2xvY2FsQ2FjaGVEaXJlY3RvcnlXaXRoQnVu
ZGxlSWRlbnRpZmllcjpkZXN0aW5hdGlvbkJ1bmRsZUlkZW50aWZpZXJdOwogICAgIAogICAgIHJl
dHVybiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3RvcmVDb3B5T2ZDYWNoZShjYWNoZURpciwg
bG9hZGVyLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIE5POwot
I2VuZGlmCiB9CiAKIC0gKHZvaWQpX3NldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQ6KEJPT0wp
ZmxhZwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTExNTgsMTEgKzExNTgsOCBAQCAtIChOU011dGFibGVEaWN0aW9uYXJ5ICopX2Nh
Y2hlYWJpbGl0eURpCiAgICAgaWYgKERPTVdpbmRvdyogZG9tV2luZG93ID0gX3ByaXZhdGUtPmNv
cmVGcmFtZS0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgaWYgKGRvbVdpbmRvdy0+aGFzRXZlbnRM
aXN0ZW5lcnMoZXZlbnROYW1lcygpLnVubG9hZEV2ZW50KSkKICAgICAgICAgICAgIFtyZXN1bHQg
c2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdIGZvcktleTpXZWJGcmFtZUhh
c1VubG9hZExpc3RlbmVyXTsKLSAgICAgICAgICAgIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgICAgIGlmIChkb21XaW5kb3ctPm9wdGlvbmFsQXBwbGljYXRpb25D
YWNoZSgpKQogICAgICAgICAgICAgW3Jlc3VsdCBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldp
dGhCb29sOllFU10gZm9yS2V5OldlYkZyYW1lVXNlc0FwcGxpY2F0aW9uQ2FjaGVdOwotI2VuZGlm
CiAgICAgfQogICAgIAogICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lLT5kb2N1bWVudCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTc2LDcgKzU3Niw2IEBAICsgKHZvaWQpX3JlcG9ydEV4
Y2VwdGlvbjooSlNWYWx1ZVJlZilleGMKIAogc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUFw
cGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3NhcnkoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCiAgICAgc3RhdGljIEJPT0wgaW5pdGlhbGl6ZWQgPSBOTzsKICAgICBp
ZiAoaW5pdGlhbGl6ZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTU4NCwxNCArNTgzLDEzIEBAIHN0
YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVBcHBsaWNhdGlvbkMKICAgICBOU1N0cmluZyAqYXBw
TmFtZSA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gYnVuZGxlSWRlbnRpZmllcl07CiAgICAgaWYg
KCFhcHBOYW1lKQogICAgICAgICBhcHBOYW1lID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZv
XSBwcm9jZXNzTmFtZV07Ci0gICAgCisKICAgICBBU1NFUlQoYXBwTmFtZSk7CiAKICAgICBOU1N0
cmluZyogY2FjaGVEaXIgPSBbTlNTdHJpbmcgX3dlYmtpdF9sb2NhbENhY2hlRGlyZWN0b3J5V2l0
aEJ1bmRsZUlkZW50aWZpZXI6YXBwTmFtZV07CiAKICAgICBjYWNoZVN0b3JhZ2UoKS5zZXRDYWNo
ZURpcmVjdG9yeShjYWNoZURpcik7CiAgICAgaW5pdGlhbGl6ZWQgPSBZRVM7Ci0jZW5kaWYKIH0K
IAogc3RhdGljIGJvb2wgcnVubmluZ0xlb3BhcmRNYWlsKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQXBpL3F3ZWJzZWN1cml0eW9yaWdpbi5jcHA6CisgICAgICAgIChRV2ViU2VjdXJpdHlPcmln
aW46OnNldEFwcGxpY2F0aW9uQ2FjaGVRdW90YSk6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5n
cy5jcHA6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlUGF0aCk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6Om9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlUGF0aCk6CisgICAgICAgIChRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlv
bkNhY2hlUXVvdGEpOgorICAgICAgICAoUVdlYlNldHRpbmdzOjpvZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZVF1b3RhKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRRdDo6cmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6Y2xlYXJBbGxBcHBsaWNhdGlv
bkNhY2hlcyk6CisKIDIwMTEtMDktMjEgIEFuZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBub2tp
YS5jb20+CiAKICAgICAgICAgW1F0XSBSZW1vdmUgUXQgc3BlY2lmaWMgY29kZSBmcm9tIGNzcy9T
ZWxlY3RvckNoZWNrZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2VjdXJp
dHlvcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZWN1
cml0eW9yaWdpbi5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYnNlY3VyaXR5b3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDkgKzE1NSw3IEBA
IHZvaWQgUVdlYlNlY3VyaXR5T3JpZ2luOjpzZXREYXRhYmFzZVF1b3QKIAogdm9pZCBRV2ViU2Vj
dXJpdHlPcmlnaW46OnNldEFwcGxpY2F0aW9uQ2FjaGVRdW90YShxaW50NjQgcXVvdGEpCiB7Ci0j
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBXZWJDb3JlOjpjYWNoZVN0
b3JhZ2UoKS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihkLT5vcmlnaW4uZ2V0KCksIHF1b3Rh
KTsKLSNlbmRpZgogfQogLyohCiAgICAgRGVzdHJveXMgdGhlIHNlY3VyaXR5IG9yaWdpbi4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDQ1LDkgKzEwNDUsNyBAQCBxaW50NjQgUVdlYlNldHRpbmdzOjpvZmZsaW5lU3RvcmFnZURl
ZmF1CiAqLwogdm9pZCBRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hl
UGF0aChjb25zdCBRU3RyaW5nJiBwYXRoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCiAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuc2V0Q2FjaGVEaXJlY3Rvcnko
cGF0aCk7Ci0jZW5kaWYKIH0KIAogLyohCkBAIC0xMDYwLDExICsxMDU4LDcgQEAgdm9pZCBRV2Vi
U2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdAogKi8KIFFTdHJpbmcgUVdlYlNldHRpbmdz
OjpvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVBhdGgoKQogewotI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmNh
Y2hlRGlyZWN0b3J5KCk7Ci0jZWxzZQotICAgIHJldHVybiBRU3RyaW5nKCk7Ci0jZW5kaWYKIH0K
IAogLyohCkBAIC0xMDc1LDExICsxMDY5LDkgQEAgUVN0cmluZyBRV2ViU2V0dGluZ3M6Om9mZmxp
bmVXZWJBcHBsaWNhdAogKi8KIHZvaWQgUVdlYlNldHRpbmdzOjpzZXRPZmZsaW5lV2ViQXBwbGlj
YXRpb25DYWNoZVF1b3RhKHFpbnQ2NCBtYXhpbXVtU2l6ZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmVtcHR5KCk7
CiAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkudmFjdXVtRGF0YWJhc2VGaWxlKCk7CiAgICAg
V2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuc2V0TWF4aW11bVNpemUobWF4aW11bVNpemUpOwotI2Vu
ZGlmCiB9CiAKIC8qIQpAQCAtMTA4OSwxMSArMTA4MSw3IEBAIHZvaWQgUVdlYlNldHRpbmdzOjpz
ZXRPZmZsaW5lV2ViQXBwbGljYXQKICovCiBxaW50NjQgUVdlYlNldHRpbmdzOjpvZmZsaW5lV2Vi
QXBwbGljYXRpb25DYWNoZVF1b3RhKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQogICAgIHJldHVybiBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5tYXhpbXVtU2l6ZSgp
OwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNlbmRpZgogfQogCiAvKiEKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDEsNyArNTQxLDYgQEAgdm9pZCBDaHJvbWVD
bGllbnRRdDo6ZXhjZWVkZWREYXRhYmFzZVF1bwogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQogdm9pZCBDaHJvbWVDbGllbnRRdDo6cmVhY2hlZE1heEFw
cENhY2hlU2l6ZShpbnQ2NF90KQogewogICAgIC8vIEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCkBA
IC01NjEsNyArNTYwLDYgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6cmVhY2hlZEFwcGxpY2F0aW9u
QwogCiAgICAgZW1pdCBtX3dlYlBhZ2UtPmFwcGxpY2F0aW9uQ2FjaGVRdW90YUV4Y2VlZGVkKHNl
Y3VyaXR5T3JpZ2luLCBkZWZhdWx0T3JpZ2luUXVvdGEsIHN0YXRpY19jYXN0PHF1aW50NjQ+KHRv
dGFsU3BhY2VOZWVkZWQpKTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
CiBOb3RpZmljYXRpb25QcmVzZW50ZXIqIENocm9tZUNsaWVudFF0Ojpub3RpZmljYXRpb25QcmVz
ZW50ZXIoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50UXQuaAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNiwx
MCArMTM2LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAgICAgdmlydHVh
bCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYpOwogI2Vu
ZGlmCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICB2aXJ0dWFsIHZv
aWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdp
biosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KCkgeyB9CiAjZW5kaWYK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NzAsMTAgKzY3MCw4IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQ6OnNldEVkaXRpbmcKIAogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6Y2xlYXJBbGxB
cHBsaWNhdGlvbkNhY2hlcygpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKICAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5lbXB0eSgpOwogICAgIFdlYkNvcmU6OmNh
Y2hlU3RvcmFnZSgpLnZhY3V1bURhdGFiYXNlRmlsZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBGcmFtZUxvYWRlcihib29sIGIpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEp
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDExLTA5
LTIyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgRmlu
ZFNhZmFyaSBmcm9tIGFsbCBvdXIgLnNsbiBmaWxlcwpJbmRleDogU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxNCw4ICs2MTQsOSBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1CiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCisvLyBGSVhNRTogTW92ZSB0aGlzIGluY2x1ZGUgdG8gdGhlIHRv
cCBvZiB0aGUgZmlsZSB3aXRoIHRoZSBvdGhlciBpbmNsdWRlcy4KICNpbmNsdWRlICJBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5oIgorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZE1heEFw
cENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQogewogICAgIC8vIEZJWE1FOiBGcmVlIHNv
bWUgc3BhY2UuCkBAIC02MjYsNyArNjI3LDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRBcHBsaWNhdGlvbgogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnBvcHVsYXRlVmlzaXRlZExpbmtzKCkKIHsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShy
ZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsMTAgKzExNyw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwg
Y29uc3QgV1RGOjpTdHJpbmcmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2
NF90IHNwYWNlTmVlZGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFj
ZU5lZWRlZCk7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoKSB7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2Uv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKwogMjAx
MS0wOS0yMSAgQW5kcmFzIEJlY3NpICA8YW5kcmFzLmJlY3NpQG5va2lhLmNvbT4KIAogICAgICAg
ICBbUXRdIFJlbW92ZSBRdCBzcGVjaWZpYyBjb2RlIGZyb20gY3NzL1NlbGVjdG9yQ2hlY2tlci5j
cHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMDUsNyArMzA1LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6ZXhjZWVkZWRE
YXRhYmFzZQogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC0zMTUsNyArMzE0LDYgQEAgdm9pZCBDaHJv
bWVDbGllbnRXaW5DRTo6cmVhY2hlZEFwcGxpY2F0aQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2b2lkIENocm9tZUNsaWVu
dFdpbkNFOjpuZWVkVG91Y2hFdmVudHMoYm9vbCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgJKHJldmlzaW9u
IDk1OTA4KQorKysgU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFw
cGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmplY3QKICAgICAvLyBiZWNh
dXNlIHN0b3JpbmcgaXQgd291bGQgZ3JvdyB0aGUgZGF0YWJhc2UgZmlsZSBwYXN0IGl0cyBkZWZp
bmVkIG1heGltdW0KICAgICAvLyBzaXplIG9yIHBhc3QgdGhlIGFtb3VudCBvZiBmcmVlIHNwYWNl
IG9uIHRoZSBkZXZpY2UuCkBAIC0xMzEsNyArMTMwLDYgQEAgcHVibGljOgogICAgIC8vIHRvIHRh
a2UgYWN0aW9uLCBzdWNoIGFzIHByb21wdGluZyB0aGUgdXNlciB0byBhc2sgdG8gaW5jcmVhc2Ug
dGhlIHF1b3RhCiAgICAgLy8gZm9yIHRoaXMgb3JpZ2luLgogICAgIHZpcnR1YWwgdm9pZCByZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwg
aW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudSgpIHsgfQpJbmRleDogU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEyKQorKysgU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudFd4OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4Lmg6CisKIDIwMTEt
MDktMTcgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
RnJhbWVMb2FkZXJDbGllbnQgQmFja0ZvcndhcmRMaXN0LXJlbGF0ZWQgbWV0aG9kcyBhcmUgdW5z
dWVkCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3gu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVD
bGllbnRXeC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC93eC9XZWJLaXRT
dXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMzLDcgKzQzMyw2
IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6OmV4Y2VlZGVkRGF0YWJhc2VRdW8KIH0KICNlbmRpZgog
Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIHZvaWQgQ2hyb21lQ2xpZW50
V3g6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwpAQCAtNDQzLDcgKzQ0Miw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6
OnJlYWNoZWRBcHBsaWNhdGlvbkMKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQotI2VuZGlm
CiAKIHZvaWQgQ2hyb21lQ2xpZW50V3g6OnNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50
UmVjdCYsIGNvbnN0IEludFJlY3QmKQogewpJbmRleDogU291cmNlL1dlYktpdC93eC9XZWJLaXRT
dXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNl
L1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEyNCwxMCArMTI0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERh
dGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFw
cENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90
YWxTcGFjZU5lZWRlZCk7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAg
IHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoKSB7IH0KSW5kZXg6IFNvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNt
YWtlCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCSh3
b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw2IEBAIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9NQVRI
TUwgIkVuYWJsZSBNYXQKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9NRVRFUl9UQUcgIkVuYWJsZSBN
ZXRlciB0YWciIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfTkVUU0NBUEVfUExV
R0lOX0FQSSAiRW5hYmxlIE5ldHNjYXBlIHBsdWdpbiBBUEkiIERFRkFVTFQgT0ZGKQogV0VCS0lU
X0ZFQVRVUkUoRU5BQkxFX05PVElGSUNBVElPTlMgIkVuYWJsZSBub3RpZmljYXRpb25zIiBERUZB
VUxUIE9GRikKLVdFQktJVF9GRUFUVVJFKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMg
IkVuYWJsZSBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbnMiIERFRkFVTFQgT04pCiBXRUJLSVRfRkVB
VFVSRShFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTICJFbmFibGUgb3JpZW50YXRpb24gZXZlbnRz
IiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9QUk9HUkVTU19UQUcgIkVuYWJs
ZSBwcm9ncmVzcyB0YWciIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfU0hBUkVE
X1dPUktFUlMgIkVuYWJsZSBzaGFyZWQgd29ya2VycyIgREVGQVVMVCBPTikKSW5kZXg6IFNvdXJj
ZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2NtYWtlL09w
dGlvbnNXaW5DRS5jbWFrZQkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvY21ha2UvT3B0aW9u
c1dpbkNFLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw2IEBAIFdFQktJVF9GRUFU
VVJFKEVOQUJMRV9KSVQgIkVuYWJsZSBKSVQgY28KIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9NQVRI
TUwgIkVuYWJsZSBNYXRoTUwiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX05F
VFNDQVBFX1BMVUdJTl9BUEkgIkVuYWJsZSBOZXRzY2FwZSBwbHVnaW4gQVBJIiBERUZBVUxUIE9G
RikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9OT1RJRklDQVRJT05TICJFbmFibGUgbm90aWZpY2F0
aW9ucyIgREVGQVVMVCBPRkYpCi1XRUJLSVRfRkVBVFVSRShFTkFCTEVfT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TICJFbmFibGUgb2ZmbGluZSB3ZWIgYXBwbGljYXRpb25zIiBERUZBVUxUIE9GRikK
IFdFQktJVF9GRUFUVVJFKEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMgIkVuYWJsZSBvcmllbnRh
dGlvbiBldmVudHMiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX1BST0dSRVNT
X1RBRyAiRW5hYmxlIHByb2dyZXNzIHRhZyIgREVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShF
TkFCTEVfU0hBUkVEX1dPUktFUlMgIkVuYWJsZSBzaGFyZWQgd29ya2VycyIgREVGQVVMVCBPRkYp
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5NTkxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEyIEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMv
YnVpbGQtd2Via2l0OgorCiAyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRShXQ1NTKSBhbmQgYXNzb2NpYXRlZCBjb2RlCklu
ZGV4OiBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24gOTU5MDgpCisrKyBUb29scy9TY3JpcHRzL2J1aWxk
LXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw2IEBAIG15ICgKICAgICAkbXV0
YXRpb25PYnNlcnZlcnNTdXBwb3J0LAogICAgICRuZXRzY2FwZVBsdWdpblN1cHBvcnQsCiAgICAg
JG5vdGlmaWNhdGlvbnNTdXBwb3J0LAotICAgICRvZmZsaW5lV2ViQXBwbGljYXRpb25TdXBwb3J0
LAogICAgICRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQsCiAgICAgJHBhZ2VWaXNpYmlsaXR5QXBp
U3VwcG9ydCwKICAgICAkcHJvZ3Jlc3NUYWdTdXBwb3J0LApAQCAtMjQzLDkgKzI0Miw2IEBAIG15
IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAibm90aWZpY2F0aW9ucyIsIGRlc2MgPT4g
IlRvZ2dsZSBEZXNrdG9wIE5vdGlmaWNhdGlvbnMgU3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9OT1RJRklDQVRJT05TIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG5vdGlmaWNh
dGlvbnNTdXBwb3J0IH0sCiAKLSAgICB7IG9wdGlvbiA9PiAib2ZmbGluZS13ZWItYXBwbGljYXRp
b25zIiwgZGVzYyA9PiAiVG9nZ2xlIE9mZmxpbmUgV2ViIEFwcGxpY2F0aW9uIFN1cHBvcnQiLAot
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TIiwgZGVmYXVs
dCA9PiAxLCB2YWx1ZSA9PiBcJG9mZmxpbmVXZWJBcHBsaWNhdGlvblN1cHBvcnQgfSwKLQogICAg
IHsgb3B0aW9uID0+ICJvcmllbnRhdGlvbi1ldmVudHMiLCBkZXNjID0+ICJUb2dnbGUgT3JpZW50
YXRpb24gRXZlbnRzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfT1JJRU5UQVRJ
T05fRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG9yaWVudGF0aW9uRXZlbnRzU3Vw
cG9ydCB9LAogCkluZGV4OiBXZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEyKQorKysgV2ViS2l0TGli
cmFyaWVzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5
LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVu
YWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVE
ZWZpbmVzLnZzcHJvcHM6CisgICAgICAgICogd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmlu
ZXNDYWlyby52c3Byb3BzOgorCiAyMDExLTA5LTIzICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEFkZCBFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTIGZlYXR1cmUg
ZmxhZwpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZp
bmVzLnZzcHJvcHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3By
b3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMJKHJldmlzaW9uIDk1OTA4KQorKysgV2ViS2l0TGli
cmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMJKHdvcmtpbmcg
Y29weSkKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVO
QUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFC
TEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNF
RF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05T
KTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJM
RV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRF
TVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRF
UlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFC
QVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChF
TkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJM
RV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChF
TkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJM
RV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkp
OyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVS
X1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcp
OyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVO
QUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNU
SUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVf
V09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQp
IgorCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJM
RV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVf
QkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTsk
KEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9E
QVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMp
OyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMp
OyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNF
KTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFC
TEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9M
SU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFC
TEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9Q
QUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RB
KTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09S
S0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5B
QkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChF
TkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dF
Ql9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQ
QVRIKTskKEVOQUJMRV9YU0xUKSIKIAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV8z
RF9DQU5WQVMiCkBAIC0xNzIsMTEgKzE3Miw2IEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0i
dHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCi0JCU5hbWU9IkVOQUJMRV9PRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMiCi0JCVZhbHVlPSJFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TIgotCQlQ
ZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCi0JLz4KLSAgPFVzZXJNYWNybwogCQlOYW1lPSJF
TkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSIKIAkJVmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25t
ZW50U2V0PSJ0cnVlIgpJbmRleDogV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0Zl
YXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJpZXMv
d2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzCShyZXZpc2lvbiA5
NTkwOCkKKysrIFdlYktpdExpYnJhcmllcy93aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5l
c0NhaXJvLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9v
bAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0i
JChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VM
RVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJ
TkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRF
UlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFC
TEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9N
X1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJM
RV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NB
VElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTsk
KEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZB
U0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwp
OyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJM
RV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5B
QkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVf
UVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJF
RF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7
JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNF
KTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFC
TEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFC
TEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgorCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChF
TkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcp
OyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMp
OyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVf
U1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklD
RV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NU
T1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9D
U1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElP
Tik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVO
QUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NS
SVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQo
RU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9O
T1RJRklDQVRJT05TKTskKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9H
UkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5E
TEVSKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdf
RE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQo
RU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVf
V0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5B
QkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKIAkvPgogICA8VXNl
ck1hY3JvCiAJCU5hbWU9IkVOQUJMRV8zRF9DQU5WQVMiCkBAIC0xNzIsMTEgKzE3Miw2IEBACiAJ
CVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCi0JCU5hbWU9
IkVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMiCi0JCVZhbHVlPSJFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TIgotCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCi0JLz4K
LSAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSIKIAkJVmFs
dWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108594</attachid>
            <date>2011-09-24 16:47:42 -0700</date>
            <delta_ts>2011-09-26 09:12:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68767-20110924164741.patch</filename>
            <type>text/plain</type>
            <size>133505</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDkt
MjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMgZW5h
YmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21h
a2U6CisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFrZToKKyAgICAgICAg
KiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZToKKyAgICAgICAgKiBjb25maWd1cmUuYWM6CisK
IDIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZW1vdmUgRU5BQkxFKFdDU1MpIGFuZCBhc3NvY2lhdGVkIGNvZGUKSW5kZXg6IGNvbmZpZ3VyZS5h
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuYWMJKHJldmlzaW9uIDk1OTA4KQorKysgY29uZmln
dXJlLmFjCSh3b3JraW5nIGNvcHkpCkBAIC00NTQsMTQgKzQ1NCw2IEBAIEFDX0FSR19FTkFCTEUo
ZGF0YV90cmFuc2Zlcl9pdGVtcywKICAgICAgICAgICAgICAgW10sW2VuYWJsZV9kYXRhX3RyYW5z
ZmVyX2l0ZW1zPSJubyJdKQogQUNfTVNHX1JFU1VMVChbJGVuYWJsZV9kYXRhX3RyYW5zZmVyX2l0
ZW1zXSkKIAotIyBjaGVjayB3aGV0aGVyIHRvIGVuYWJsZSBIVE1MNSBPZmZsaW5lIFdlYiBBcHBs
aWNhdGlvbnMgc3VwcG9ydAotQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGVuYWJsZSBIVE1M
NSBvZmZsaW5lIHdlYiBhcHBsaWNhdGlvbnMgc3VwcG9ydF0pCi1BQ19BUkdfRU5BQkxFKG9mZmxp
bmVfd2ViX2FwcGxpY2F0aW9ucywKLSAgICAgICAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0tZW5h
YmxlLW9mZmxpbmUtd2ViLWFwcGxpY2F0aW9uc10sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtlbmFibGUgSFRNTDUgb2ZmbGluZSB3ZWIgYXBwbGljYXRpb25zIHN1cHBvcnQgW2RlZmF1
bHQ9eWVzXV0pLAotICAgICAgICAgICAgICBbXSxbZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0
aW9ucz0ieWVzIl0pCi1BQ19NU0dfUkVTVUxUKFskZW5hYmxlX29mZmxpbmVfd2ViX2FwcGxpY2F0
aW9uc10pCi0KICMgY2hlY2sgd2hldGhlciB0byBlbmFibGUgRE9NIG11dGF0aW9uIG9ic2VydmVy
IHN1cHBvcnQKIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgRE9NIG11dGF0aW9u
IG9ic2VydmVyIHN1cHBvcnRdKQogQUNfQVJHX0VOQUJMRShtdXRhdGlvbl9vYnNlcnZlcnMsCkBA
IC0xMDEwLDEwICsxMDAyLDcgQEAgZmkKIEFDX1NVQlNUKFtTUUxJVEUzX0NGTEFHU10pCiBBQ19T
VUJTVChbU1FMSVRFM19MSUJTXSkKIAotaWYgKHRlc3QgIiRzcWxpdGUzX2ZvdW5kIiA9ICJubyIp
ICYmICh0ZXN0ICIkZW5hYmxlX2ljb25fZGF0YWJhc2UiID0gInllcyIgfHwgXAotICAgdGVzdCAi
JGVuYWJsZV9zcWxfZGF0YWJhc2UiID0gInllcyIgfHwgXAotICAgdGVzdCAiJGVuYWJsZV9vZmZs
aW5lX3dlYl9hcHBsaWNhdGlvbnMiID0gInllcyIgfHwgXAotICAgdGVzdCAiJGVuYWJsZV9kb21f
c3RvcmFnZSIgPSAieWVzIik7IHRoZW4KK2lmICh0ZXN0ICIkc3FsaXRlM19mb3VuZCIgPSAibm8i
KTsgdGhlbgogICAgQUNfTVNHX0VSUk9SKFtTUUxpdGUzIGlzIHJlcXVpcmVkIGZvciB0aGUgRGF0
YWJhc2UgcmVsYXRlZCBmZWF0dXJlc10pCiBmaQogCkBAIC0xMTM1LDcgKzExMjQsNiBAQCBBTV9D
T05ESVRJT05BTChbRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BCiBBTV9DT05ESVRJT05BTChbRU5B
QkxFX1BST0dSRVNTX1RBR10sW3Rlc3QgIiRlbmFibGVfcHJvZ3Jlc3NfdGFnIiA9ICJ5ZXMiXSkK
IEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkddLFt0ZXN0ICIkZW5hYmxl
X2NoYW5uZWxfbWVzc2FnaW5nIiA9ICJ5ZXMiXSkKIEFNX0NPTkRJVElPTkFMKFtFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUl0sW3Rlc3QgIiRlbmFibGVfamF2YXNjcmlwdF9kZWJ1Z2dlciIgPSAi
eWVzIl0pCi1BTV9DT05ESVRJT05BTChbRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OU10s
W3Rlc3QgIiRlbmFibGVfb2ZmbGluZV93ZWJfYXBwbGljYXRpb25zIiA9ICJ5ZXMiXSkKIEFNX0NP
TkRJVElPTkFMKFtFTkFCTEVfRElSRUNUT1JZX1VQTE9BRF0sW3Rlc3QgIiRlbmFibGVfZGlyZWN0
b3J5X3VwbG9hZCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxFX0RBVEFHUklEXSxb
dGVzdCAiJGVuYWJsZV9kYXRhZ3JpZCIgPSAieWVzIl0pCiBBTV9DT05ESVRJT05BTChbRU5BQkxF
X0RBVEFfVFJBTlNGRVJfSVRFTVNdLFt0ZXN0ICIkZW5hYmxlX2RhdGFfdHJhbnNmZXJfaXRlbXMi
ID0gInllcyJdKQpAQCAtMTI1Miw3ICsxMjQwLDYgQEAgRmVhdHVyZXM6CiAgTWF0aE1MIHN1cHBv
cnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX21h
dGhtbAogIE1lZGlhIHNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDogJGVuYWJsZV9tZWRpYV9zb3VyY2UKICBNZWRpYSBzdGF0aXN0aWNzICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfbWVkaWFfc3RhdGlzdGlj
cwotIEhUTUw1IG9mZmxpbmUgd2ViIGFwcGxpY2F0aW9ucyBzdXBwb3J0ICAgICAgICAgICAgICAg
ICAgIDogJGVuYWJsZV9vZmZsaW5lX3dlYl9hcHBsaWNhdGlvbnMKICBIVE1MNSBjaGFubmVsIG1l
c3NhZ2luZyBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICRlbmFibGVfY2hhbm5l
bF9tZXNzYWdpbmcKICBIVE1MNSBtZXRlciBlbGVtZW50IHN1cHBvcnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA6ICRlbmFibGVfbWV0ZXJfdGFnCiAgUGFnZSBWaXNpYmlsaXR5IEFQSSBz
dXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkZW5hYmxlX3BhZ2VfdmlzaWJp
bGl0eV9hcGkKSW5kZXg6IFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9jbWFrZWNvbmZpZy5oLmNtYWtlCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9j
bWFrZWNvbmZpZy5oLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjY21h
a2VkZWZpbmUwMSBFTkFCTEVfTUVURVJfVEFHCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfTkVUU0NB
UEVfUExVR0lOX0FQSQogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX05PVElGSUNBVElPTlMKLSNjbWFr
ZWRlZmluZTAxIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMKICNjbWFrZWRlZmluZTAx
IEVOQUJMRV9PUklFTlRBVElPTl9FVkVOVFMKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9QUk9HUkVT
U19UQUcKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9TSEFSRURfV09SS0VSUwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wOS0yNCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZzoKKwogMjAxMS0wOS0yNCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFsbG9jYXRlIG5ldyBvYmplY3RzIHVubWFya2VkCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpA
QCAtNzgsNyArNzgsNiBAQCBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVO
QUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVfTk9U
SUZJQ0FUSU9OUyA9IDsKLUVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7
CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9U
QSA9IDsKQEAgLTk4LDQgKzk3LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEgg
PSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFC
TEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0VYQ0xV
U0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5B
QkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRB
SUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExP
QUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVf
RklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAk
KEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxF
X0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRf
REVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFC
TEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRF
Ul9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9O
UykgJChFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lC
SUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJM
RV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChF
TkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19G
T05UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFC
TEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5B
QkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAk
KEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJF
X0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJE
X0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChF
TkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0VY
Q0xVU0lPTlMpICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQo
RU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9E
RVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFC
TEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9O
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5B
QkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChF
TkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9N
RVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FU
SU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFH
KSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChF
TkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpD
X0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RykgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgp
ICQoRU5BQkxFX1hTTFQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMjggQEAKKzIw
MTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdh
eXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIGRpc2N1c3NlZCBvbiB3ZWJraXQt
ZGV2LCBhbG1vc3QgZXZlcnlvbmUgaGFzIHRoaXMgZW5hYmxlIHR1cm5lZCBvbgorICAgICAgICBh
bmQgdGhpcyBmZWF0dXJlIGlzIHVubGlrZWx5IHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgd2ViIHBs
YXRmb3JtIGdpdmVuCisgICAgICAgIGl0cyBwb3B1bGFyaXR5LgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWc6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBiaW5kaW5ncy9jcHAvV2ViRE9NRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAo
dG9XZWJLaXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgIChXZWJDb3JlOjp0b0V2ZW50VGFyZ2V0KToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhET01XcmFwcGVyOjpjb252ZXJ0RXZlbnRUYXJnZXRUb1Y4T2JqZWN0KToKKyAgICAgICAg
KiBkb20vRXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRUYXJnZXQ6OnRv
RE9NQXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Lmg6CisgICAg
ICAgICogZmVhdHVyZXMucHJpOgorICAgICAgICAqIGhpc3RvcnkvUGFnZUNhY2hlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmxvZ0NhbkNhY2hlRnJhbWVEZWNpc2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlQ2FjaGU6OmNhbkNhY2hlUGFnZUNvbnRhaW5pbmdUaGlzRnJhbWUpOgorICAgICAg
ICAqIGh0bWwvSFRNTEh0bWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxIdG1s
RWxlbWVudDo6aW5zZXJ0ZWRCeVBhcnNlcik6CisgICAgICAgICogaHRtbC9IVE1MSHRtbEVsZW1l
bnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlRmlsZVVSTEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGh0
bWwvSW1hZ2VEb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURvY3VtZW50Ojpj
cmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6CisgICAgICAgICogaHRtbC9NZWRpYURvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURvY3VtZW50
U3RydWN0dXJlKToKKyAgICAgICAgKiBodG1sL1BsdWdpbkRvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpbkRvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSk6
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEhUTUxIdG1sU3RhcnRUYWdC
ZWZvcmVIVE1MKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxl
cik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzY29ubmVjdEZy
b250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp1cGRhdGVBcHBsaWNhdGlvbkNhY2hl
U3RhdHVzSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpuZXR3b3Jr
U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3RydW1lbnRpbmdBZ2VudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3RydW1lbnRpbmdBZ2Vu
dHM6Okluc3RydW1lbnRpbmdBZ2VudHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGlu
Z0FnZW50czo6c2V0SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbmQpOgorICAgICAgICAq
IGluc3BlY3Rvci9nZW5lcmF0ZS1pbnNwZWN0b3ItaWRsOgorICAgICAgICAqIGxvYWRlci9Eb2N1
bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6RG9jdW1l
bnRMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Om1haW5SZWNlaXZl
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpzdG9wTG9hZGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6ZGV0YWNoRnJvbUZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpoYW5kbGVkT25sb2FkRXZlbnRzKToKKyAg
ICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjphcHBsaWNhdGlvbkNhY2hlSG9zdCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OnJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseSk6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6CisgICAg
ICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAo
V2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjpsb2FkKToKKyAgICAgICAgKiBsb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFNlbmREYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyOjp3YXNCbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpjYW5u
b3RTaG93VVJMKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpzaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2ls
bENhY2hlUmVzcG9uc2UpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAg
ICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5oOgorICAgICAgICAqIGxvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlSG9zdC5oOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2UuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuY3BwOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5oOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hl
LmNwcDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5oOgor
ICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbDoKKyAgICAg
ICAgKiBsb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cGFyc2VNYW5pZmVzdCk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL01hbmlmZXN0UGFy
c2VyLmg6CisgICAgICAgICogbG9hZGVyL2Nocm9taXVtL1Jlc291cmNlTG9hZGVyQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZERvd25sb2FkRGF0YSk6
CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6YXBwbGljYXRpb25DYWNoZSk6CisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3B0aW9uYWxBcHBsaWNhdGlv
bkNhY2hlKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisgICAgICAgICogeG1sL3Bh
cnNlci9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1M
RG9jdW1lbnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hN
TERvY3VtZW50UGFyc2VyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJz
ZXI6OnBhcnNlU3RhcnRFbGVtZW50KToKKwogMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoV0NTUykgYW5kIGFzc29jaWF0
ZWQgY29kZQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDk1OTA4KQorKysgU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMxNSw2ICszMTUs
OCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5p
ZGwKICAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCiAKKyAgICBsb2FkZXIvYXBw
Y2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKKwogICAgIHBhZ2UvQmFySW5mby5pZGwKICAg
ICBwYWdlL0NvbnNvbGUuaWRsCiAgICAgcGFnZS9Db29yZGluYXRlcy5pZGwKQEAgLTIxNjYsMTIg
KzIxNjgsNiBAQCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICkKIEVORElGICgpCiAKLUlGIChFTkFC
TEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSURM
X0ZJTEVTCi0gICAgICAgIGxvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAot
ICAgICkKLUVORElGICgpCi0KICMgTW9kdWxlcyB0aGF0IHRoZSBiaW5kaW5ncyBnZW5lcmF0b3Ig
c2NyaXB0cyBtYXkgdXNlCiBTRVQoU0NSSVBUU19CSU5ESU5HUwogICAgICR7V0VCQ09SRV9ESVJ9
L2JpbmRpbmdzL3NjcmlwdHMvSURMUGFyc2VyLnBtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQko
cmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTczLDE0ICsxNzMsNiBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X0pBVkFTQ1JJUFRfCiBlbmRpZiAjIEVORCBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgogCiAj
IC0tLS0KLSMgT2ZmbGluZSBXZWIgQXBwbGljYXRpb25zCi0jIC0tLS0KLWlmIEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMKLUZFQVRVUkVfREVGSU5FUyArPSBFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TPTEKLXdlYmNvcmVfY3BwZmxhZ3MgKz0gLURFTkFCTEVfT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TPTEKLWVuZGlmICMgRU5EIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMKLQotIyAtLS0tCiAjIERhdGFiYXNlIFN1cHBvcnQKICMgLS0tLQogaWYgRU5BQkxFX1NR
TF9EQVRBQkFTRQpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29w
eSkKQEAgLTExMSw2ICsxMTEsNyBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNEb2N1bWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTRG9jdW1lbnRUeXBlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RvY3VtZW50
VHlwZS5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQXBwbGljYXRpb25DYWNoZS5j
cHAKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQXBwbGljYXRpb25DYWNoZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRE9NQ29yZUV4Y2VwdGlvbi5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNET01Db3JlRXhjZXB0aW9uLmggXApAQCAtNDEwNywxNCArNDEwOCw2
IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiBlbmRpZiAjIEVORCBVU0VfUEFOR08KIAogIyAt
LS0tCi0jIE9mZmxpbmUgV2ViIEFwcGxpY2F0aW9ucwotIyAtLS0tCi1pZiBFTkFCTEVfT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TCi13ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAotCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNET01BcHBsaWNhdGlvbkNhY2hlLmNwcAotZW5kaWYgIyBFTkQgRU5B
QkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUwotCi0jIC0tLS0KICMgRGF0YWJhc2UgU3VwcG9y
dAogIyAtLS0tCiBpZiBFTkFCTEVfU1FMX0RBVEFCQVNFCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29y
a2luZyBjb3B5KQpAQCAtMTg2MSw3ICsxODYxLDYgQEAgX19aTjdXZWJDb3JlOERvY3VtZW50MTJ1
cGRhdGVMYXlvdXRFdgogX19aTks3V2ViQ29yZTROb2RlMTZ0cmF2ZXJzZU5leHROb2RlRVBLUzBf
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiBfX1pON1dl
YkNvcmUxNkFwcGxpY2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0
eU9yaWdpbkUKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRpb25DYWNoZTIwZGVsZXRlQ2FjaGVGb3JP
cmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlMTRzZXRNYXhpbXVtU2l6ZUV4CkBAIC0xODc2LDcgKzE4NzUsNiBAQCBfX1pON1dl
YkNvcmUyM0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlMjNjCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlMjZzdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbkVQS05TXzE0U2VjdXJp
dHlPcmlnaW5FeAogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTVlbXB0eUV2
CiBfX1pOSzdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTExbWF4aW11bVNpemVFdgot
I2VuZGlmCiAKICNpZm5kZWYgQlVJTERJTkdfT05fTEVPUEFSRAogX19aTjdXZWJDb3JlNkVkaXRv
cjEzbG93ZXJjYXNlV29yZEV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtODU1LDYgKzg1
NSwxMyBAQCBTT1VSQ0VTICs9IFwKICAgICBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCBcCiAgICAgaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIFwKICAgICBpbnNw
ZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlLmNwcCBcCisgICAgbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9z
dC5jcHAgXAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAg
XAorICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuY3BwIFwKKyAg
ICBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgXAorICAgIGxvYWRlci9h
cHBjYWNoZS9NYW5pZmVzdFBhcnNlci5jcHAKICAgICBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVz
b3VyY2UuY3BwIFwKICAgICBsb2FkZXIvYXJjaGl2ZS9BcmNoaXZlUmVzb3VyY2VDb2xsZWN0aW9u
LmNwcCBcCiAgICAgbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcCBcCkBAIC0zNTYzLDE3ICsz
NTcwLDYgQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVQogICAgIH0K
IH0KIAotY29udGFpbnMoREVGSU5FUywgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0x
KSB7Ci1TT1VSQ0VTICs9IFwKLSAgICBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5j
cHAgXAotICAgIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIFwKLSAg
ICBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIFwKLSAgICBsb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIFwKLSAgICBsb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVJlc291cmNlLmNwcCBcCi0gICAgbG9hZGVyL2FwcGNhY2hlL0RP
TUFwcGxpY2F0aW9uQ2FjaGUuY3BwIFwKLSAgICBsb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJz
ZXIuY3BwCi19Ci0KIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJfU09DS0VUUz0xKSB7CiAg
ICAgSEVBREVSUyArPSBcCiAgICAgICAgIHdlYnNvY2tldHMvQ2xvc2VFdmVudC5oIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9mZWF0dXJlcy5wcmkJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZmVhdHVy
ZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw2ICsxMyw5IEBAIG1lZWdvdG91Y2ggewogICAg
IERFRklORVMgKz0gV1RGX1VTRV9NRUVHT1RPVUNIPTEKIH0KIAorIyBTUUxpdGUgaXMgcmVxdWly
ZWQgdG8gYnVpbGQgV2ViS2l0CitERUZJTkVTICs9IEVOQUJMRV9TUUxJVEU9MQorCiAjIyBsb2Fk
IG1vYmlsaXR5Y29uZmlnIGlmIG1vYmlsaXR5IGlzIGF2YWlsYWJsZQogbG9hZChtb2JpbGl0eWNv
bmZpZywgdHJ1ZSkKIApAQCAtNDMsMjggKzQ2LDE0IEBAIGlzRW1wdHkoSEFWRV9RUkFXRk9OVCkg
ewogICAgIERFRklORVMgKz0gRU5BQkxFX1NWR19GT05UUz0wCiB9CiAKLSMgdHVybiBvZmYgU1FM
SVRFIHN1cHBvcnQgaWYgd2UgZG8gbm90IGhhdmUgc3FsaXRlMyBhdmFpbGFibGUKLSFDT05GSUco
UVRESVJfYnVpbGQpOndpbjMyLSo6IWV4aXN0cyggJCR7U1FMSVRFM1NSQ0RJUn0vc3FsaXRlMy5j
ICk6IERFRklORVMgKz0gRU5BQkxFX1NRTElURT0wIEVOQUJMRV9TUUxfREFUQUJBU0U9MCBFTkFC
TEVfV09SS0VSUz0wIEVOQUJMRV9TSEFSRURfV09SS0VSUz0wIEVOQUJMRV9JQ09OREFUQUJBU0U9
MCBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TPTAgRU5BQkxFX0RPTV9TVE9SQUdFPTAK
LQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPS4pOiBERUZJ
TkVTICs9IEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPTEKICFjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfU1FMX0RBVEFCQVNFPS4pOiBERUZJTkVTICs9IEVOQUJMRV9TUUxfREFUQUJBU0U9MQot
IWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9Lik6IERF
RklORVMgKz0gRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUz0xCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX0RPTV9TVE9SQUdFPS4pOiBERUZJTkVTICs9IEVOQUJMRV9ET01fU1RPUkFH
RT0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0lDT05EQVRBQkFTRT0uKTogREVGSU5FUyAr
PSBFTkFCTEVfSUNPTkRBVEFCQVNFPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkc9Lik6IERFRklORVMgKz0gRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HPTEKICFj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfRElSRUNUT1JZX1VQTE9BRD0uKTogREVGSU5FUyArPSBF
TkFCTEVfRElSRUNUT1JZX1VQTE9BRD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTEVf
U1lTVEVNPS4pOiBERUZJTkVTICs9IEVOQUJMRV9GSUxFX1NZU1RFTT0wCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1FVT1RBPS4pOiBERUZJTkVTICs9IEVOQUJMRV9RVU9UQT0wIAotCi0jIHR1
cm4gb24gU1FMSVRFIHN1cHBvcnQgaWYgYW55IG9mIHRoZSBkZXBlbmRlbnQgZmVhdHVyZXMgYXJl
IHR1cm5lZCBvbgotIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TUUxJVEU9LikgewotICBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfU1FMX0RBVEFCQVNFPTEpfGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9JQ09OREFUQUJBU0U9MSl8Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RPTV9TVE9SQUdF
PTEpfGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM9MSkg
ewotICAgIERFRklORVMgKz0gRU5BQkxFX1NRTElURT0xCi0gIH0gZWxzZSB7Ci0gICAgREVGSU5F
UyArPSBFTkFCTEVfU1FMSVRFPTAKLSAgfQotfQotCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X0RBU0hCT0FSRF9TVVBQT1JUPS4pOiBERUZJTkVTICs9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9S
VD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJTFRFUlM9Lik6IERFRklORVMgKz0gRU5B
QkxFX0ZJTFRFUlM9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YUEFUSD0uKTogREVGSU5F
UyArPSBFTkFCTEVfWFBBVEg9MQpAQCAtMjI1LDcgKzIxNCw2IEBAIGNvbnRhaW5zKERFRklORVMs
IEVOQUJMRV9YSFRNTE1QPTEpOiBGRUEKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSk6
IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9TVkc9MQogY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1NWR19GT05UUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0g
RU5BQkxFX1NWR19GT05UUz0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfSkFWQVNDUklQVF9E
RUJVR0dFUj0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVI9MQotY29udGFpbnMoREVGSU5FUywgRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX09GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUz0xCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCX1NPQ0tFVFM9
MSk6IEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9XRUJfU09DS0VUUz0xCiBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCX1RJTUlORz0xKTogRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQgKz0gRU5BQkxFX1dFQl9USU1JTkc9MQogY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1RPVUNIX0VWRU5UUz0xKTogRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1RP
VUNIX0VWRU5UUz0xCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBj
b3B5KQpAQCAtNzYsNyArNzYsNiBAQCBFTkFCTEVfTUVURVJfVEFHID0gRU5BQkxFX01FVEVSX1RB
RzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMgPSA7CiBFTkFC
TEVfTk9USUZJQ0FUSU9OUyA9IDsKLUVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgPSBF
TkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwogRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxFX1BST0dSRVNTX1RBRzsKIEVOQUJM
RV9RVU9UQSA9IDsKQEAgLTk3LDQgKzk2LDQgQEAgRU5BQkxFX1hIVE1MTVAgPSA7CiBFTkFCTEVf
WFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwogCi1GRUFU
VVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFC
TEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikg
JChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfU1FM
X0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVN
UykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJM
RV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRklMRV9T
WVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVEX0RB
VEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJM
RV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElD
UykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5B
QkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykgJChF
TkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1NfVEFHKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikgJChFTkFCTEVfUkVR
VUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9T
VkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAk
KEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURF
T19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VC
X1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxF
X1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5F
UyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
KSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVM
X01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9D
U1MzX0ZMRVhCT1gpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0Up
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1Nf
VEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2NwcC9XZWJET01FdmVudFRhcmdldC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvY3BwL1dlYkRPTUV2ZW50VGFyZ2V0
LmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9jcHAvV2Vi
RE9NRXZlbnRUYXJnZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsMTAgKzEwMyw3IEBAIENv
bnZlcnRUbyhYTUxIdHRwUmVxdWVzdCkKIENvbnZlcnRUbyhYTUxIdHRwUmVxdWVzdFVwbG9hZCkK
IENvbnZlcnRUbyhNZXNzYWdlUG9ydCkKIENvbnZlcnRUbyhFdmVudFNvdXJjZSkKLQotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiBDb252ZXJ0VG8oRE9NQXBwbGljYXRpb25D
YWNoZSkKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFdPUktFUlMpCiBDb252ZXJ0VG8oV29ya2VyKQpA
QCAtMTU4LDEwICsxNTUsOCBAQCBXZWJET01FdmVudFRhcmdldCB0b1dlYktpdChXZWJDb3JlOjpF
dmVuCiAgICAgICAgIHJldHVybiB0b1dlYktpdChpbnN0YW5jZSk7CiAjZW5kaWYKIAotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKFdlYkNvcmU6OkRPTUFwcGxp
Y2F0aW9uQ2FjaGUqIGNhY2hlID0gdmFsdWUtPnRvRE9NQXBwbGljYXRpb25DYWNoZSgpKQogICAg
ICAgICByZXR1cm4gdG9XZWJLaXQoY2FjaGUpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoV09SS0VS
UykKICAgICBpZiAoV2ViQ29yZTo6V29ya2VyKiB3b3JrZXIgPSB2YWx1ZS0+dG9Xb3JrZXIoKSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJnZXQuY3BwCShy
ZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRUYXJn
ZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCwxMCArNTQsOCBAQAogI2luY2x1ZGUgIkV2ZW50
U291cmNlLmgiCiAjaW5jbHVkZSAiSlNFdmVudFNvdXJjZS5oIgogCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICNpbmNsdWRlICJET01BcHBsaWNhdGlvbkNhY2hlLmgiCiAj
aW5jbHVkZSAiSlNET01BcHBsaWNhdGlvbkNhY2hlLmgiCi0jZW5kaWYKIAogI2lmIEVOQUJMRShT
VkcpCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3RhbmNlLmgiCkBAIC0xMzMsMTAgKzEzMSw4IEBA
IEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmEKICAgICBpZiAoWE1MSHR0
cFJlcXVlc3RVcGxvYWQqIHVwbG9hZCA9IHRhcmdldC0+dG9YTUxIdHRwUmVxdWVzdFVwbG9hZCgp
KQogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHVwbG9hZCk7CiAKLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChET01BcHBsaWNhdGlv
bkNhY2hlKiBjYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkpCiAgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgY2FjaGUpOwotI2VuZGlmCiAKICAgICBp
ZiAoTWVzc2FnZVBvcnQqIG1lc3NhZ2VQb3J0ID0gdGFyZ2V0LT50b01lc3NhZ2VQb3J0KCkpCiAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgbWVzc2FnZVBvcnQpOwpAQCAt
MjE3LDEwICsyMTMsNyBAQCBFdmVudFRhcmdldCogdG9FdmVudFRhcmdldChKU0M6OkpTVmFsdWUg
CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oYXNPYmplY3Qo
dmFsdWUpKS0+aW1wbCgpOwogCiAgICAgQ09OVkVSVF9UT19FVkVOVF9UQVJHRVQoRXZlbnRTb3Vy
Y2UpCi0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIENPTlZFUlRf
VE9fRVZFTlRfVEFSR0VUKERPTUFwcGxpY2F0aW9uQ2FjaGUpCi0jZW5kaWYKIAogI2lmIEVOQUJM
RShTVkcpCiAgICAgQ09OVkVSVF9UT19FVkVOVF9UQVJHRVQoU1ZHRWxlbWVudEluc3RhbmNlKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMiwxMCArNDIyLDggQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4RE9NV3JhcHBlcjo6Y29udgogICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICB9CiAK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChET01BcHBsaWNh
dGlvbkNhY2hlKiBkb21BcHBDYWNoZSA9IHRhcmdldC0+dG9ET01BcHBsaWNhdGlvbkNhY2hlKCkp
CiAgICAgICAgIHJldHVybiB0b1Y4KGRvbUFwcENhY2hlKTsKLSNlbmRpZgogCiAgICAgaWYgKEV2
ZW50U291cmNlKiBldmVudFNvdXJjZSA9IHRhcmdldC0+dG9FdmVudFNvdXJjZSgpKQogICAgICAg
ICByZXR1cm4gdG9WOChldmVudFNvdXJjZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdl
dC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDEyICsxMDUsMTAgQEAgWE1MSHR0cFJlcXVlc3RV
cGxvYWQqIEV2ZW50VGFyZ2V0Ojp0b1hNTAogICAgIHJldHVybiAwOwogfQogCi0jaWYgRU5BQkxF
KE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIERPTUFwcGxpY2F0aW9uQ2FjaGUqIEV2ZW50VGFy
Z2V0Ojp0b0RPTUFwcGxpY2F0aW9uQ2FjaGUoKQogewogICAgIHJldHVybiAwOwogfQotI2VuZGlm
CiAKICNpZiBFTkFCTEUoU1ZHKQogU1ZHRWxlbWVudEluc3RhbmNlKiBFdmVudFRhcmdldDo6dG9T
VkdFbGVtZW50SW5zdGFuY2UoKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgJKHJldmlz
aW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNiw5ICsxMDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpOwogICAgICAgICB2aXJ0dWFsIFhNTEh0dHBS
ZXF1ZXN0KiB0b1hNTEh0dHBSZXF1ZXN0KCk7CiAgICAgICAgIHZpcnR1YWwgWE1MSHR0cFJlcXVl
c3RVcGxvYWQqIHRvWE1MSHR0cFJlcXVlc3RVcGxvYWQoKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogICAgICAgICB2aXJ0dWFsIERPTUFwcGxpY2F0aW9uQ2FjaGUqIHRv
RE9NQXBwbGljYXRpb25DYWNoZSgpOwotI2VuZGlmCiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAg
dmlydHVhbCBTVkdFbGVtZW50SW5zdGFuY2UqIHRvU1ZHRWxlbWVudEluc3RhbmNlKCk7CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAJKHJldmlzaW9uIDk1OTA4
KQorKysgU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTUsMTIgKzE1NSwxMCBAQCBzdGF0aWMgYm9vbCBsb2dDYW5DYWNoZUZyYW1lRGVjaXNp
b24oRnJhCiAgICAgICAgICAgICBQQ0xPRygiICAgLVRoZSBkb2N1bWVudCBjYW5ub3Qgc3VzcGVj
dCBpdHMgYWN0aXZlIERPTSBPYmplY3RzIik7CiAgICAgICAgICAgICBjYW5ub3RDYWNoZSA9IHRy
dWU7CiAgICAgICAgIH0KLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
ICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBhZ2VDYWNoZSgpKSB7CiAgICAgICAgICAgICBQQ0xPRygi
ICAgLVRoZSBEb2N1bWVudExvYWRlciB1c2VzIGFuIGFwcGxpY2F0aW9uIGNhY2hlIik7CiAgICAg
ICAgICAgICBjYW5ub3RDYWNoZSA9IHRydWU7CiAgICAgICAgIH0KLSNlbmRpZgogICAgICAgICBp
ZiAoIWZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNhbkNhY2hlUGFnZSgpKSB7CiAgICAgICAg
ICAgICBQQ0xPRygiICAgLVRoZSBjbGllbnQgc2F5cyB0aGlzIGZyYW1lIGNhbm5vdCBiZSBjYWNo
ZWQiKTsKICAgICAgICAgICAgIGNhbm5vdENhY2hlID0gdHJ1ZTsgCkBAIC0yNzcsMTEgKzI3NSw5
IEBAIGJvb2wgUGFnZUNhY2hlOjpjYW5DYWNoZVBhZ2VDb250YWluaW5nVGgKICAgICAgICAgJiYg
IWZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+aXNMb2FkaW5nSW5BUElTZW5zZSgp
CiAgICAgICAgICYmICFmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPmlzU3RvcHBp
bmcoKQogICAgICAgICAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2ZURPTU9i
amVjdHMoKQotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgaW52ZXN0aWdhdGluZyBjYWNoaW5nIGZyYW1lcyB0aGF0IGhhdmUg
YW4gYXNzb2NpYXRlZAogICAgICAgICAvLyBhcHBsaWNhdGlvbiBjYWNoZS4gPHJkYXI6Ly9wcm9i
bGVtLzU5MTc4OTk+IHRyYWNrcyB0aGF0IHdvcmsuCiAgICAgICAgICYmIGZyYW1lLT5sb2FkZXIo
KS0+ZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+Y2FuQ2FjaGVJblBh
Z2VDYWNoZSgpCi0jZW5kaWYKICAgICAgICAgJiYgZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+
Y2FuQ2FjaGVQYWdlKCk7CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxI
dG1sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRt
bEVsZW1lbnQuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEh0bWxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNiBAQCBib29sIEhU
TUxIdG1sRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0CiAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+
bmFtZSgpID09IG1hbmlmZXN0QXR0cjsKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpCiB2b2lkIEhUTUxIdG1sRWxlbWVudDo6aW5zZXJ0ZWRCeVBhcnNlcigpCiB7CiAg
ICAgLy8gV2hlbiBwYXJzaW5nIGEgZnJhZ21lbnQsIGl0cyBkdW1teSBkb2N1bWVudCBoYXMgYSBu
dWxsIHBhcnNlci4KQEAgLTc2LDYgKzc1LDUgQEAgdm9pZCBIVE1MSHRtbEVsZW1lbnQ6Omluc2Vy
dGVkQnlQYXJzZXIoKQogICAgIGVsc2UKICAgICAgICAgZG9jdW1lbnRMb2FkZXItPmFwcGxpY2F0
aW9uQ2FjaGVIb3N0KCktPnNlbGVjdENhY2hlV2l0aE1hbmlmZXN0KGRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKG1hbmlmZXN0KSk7CiB9Ci0jZW5kaWYKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSHRtbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxIdG1sRWxlbWVudC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEh0bWxFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gY3JlYXRlKERvY3Vt
ZW50Kik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEh0bWxFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIHZvaWQgaW5zZXJ0ZWRCeVBhcnNlcigpOwotI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgSFRNTEh0bWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTcyNiw3ICs3MjYsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmxvYWROZXh0U291cmNlQ2hpCiAgICAgbG9hZFJlc291cmNlKG1lZGlhVVJMLCBjb250ZW50VHlw
ZSk7CiB9CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAmJiAhUExBVEZP
Uk0oQ0hST01JVU0pCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogc3RhdGljIEtVUkwgY3JlYXRl
RmlsZVVSTEZvckFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7
CiAgICAgLy8gS1VSTCBzaG91bGQgaGF2ZSBhIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHVybCBmcm9t
IGEgcGF0aCwgYnV0IGl0IGRvZXMgbm90LiBUaGlzIGZ1bmN0aW9uCkBAIC03NzcsNyArNzc3LDcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29ucwogICAgIC8vIFRoZSBy
ZXNvdXJjZSBmZXRjaCBhbGdvcml0aG0gCiAgICAgbV9uZXR3b3JrU3RhdGUgPSBORVRXT1JLX0xP
QURJTkc7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKSAmJiAhUExBVEZP
Uk0oQ0hST01JVU0pCisjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIElmIHRoZSB1cmwg
c2hvdWxkIGJlIGxvYWRlZCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSwgcGFzcyB0aGUgdXJs
IG9mIHRoZSBjYWNoZWQgZmlsZQogICAgIC8vIHRvIHRoZSBtZWRpYSBlbmdpbmUuCiAgICAgQXBw
bGljYXRpb25DYWNoZUhvc3QqIGNhY2hlSG9zdCA9IGZyYW1lLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKTsKQEAgLTc5Niw3ICs3OTYsNyBAQCB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zCiAgICAgLy8gY2FjaGUgaXMgYW4g
aW50ZXJuYWwgZGV0YWlsIG5vdCBleHBvc2VkIHRocm91Z2ggdGhlIG1lZGlhIGVsZW1lbnQgQVBJ
LgogICAgIG1fY3VycmVudFNyYyA9IHVybDsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBM
SUNBVElPTlMpICYmICFQTEFURk9STShDSFJPTUlVTSkKKyNpZiAhUExBVEZPUk0oQ0hST01JVU0p
CiAgICAgaWYgKHJlc291cmNlKSB7CiAgICAgICAgIHVybCA9IGNyZWF0ZUZpbGVVUkxGb3JBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2UocmVzb3VyY2UtPnBhdGgoKSk7CiAgICAgICAgIExPRyhNZWRp
YSwgIkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZSAtIHdpbGwgbG9hZCBmcm9tIGFwcCBj
YWNoZSAtPiAlcyIsIHVybEZvckxvZ2dpbmcodXJsKS51dGY4KCkuZGF0YSgpKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTUs
OSArMTk1LDcgQEAgdm9pZCBJbWFnZURvY3VtZW50OjpjcmVhdGVEb2N1bWVudFN0cnVjdAogICAg
IAogICAgIFJlZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9IERvY3VtZW50OjpjcmVhdGVFbGVt
ZW50KGh0bWxUYWcsIGZhbHNlKTsKICAgICBhcHBlbmRDaGlsZChyb290RWxlbWVudCwgZWMpOwot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgc3RhdGljX2Nhc3Q8SFRN
TEh0bWxFbGVtZW50Kj4ocm9vdEVsZW1lbnQuZ2V0KCkpLT5pbnNlcnRlZEJ5UGFyc2VyKCk7Ci0j
ZW5kaWYKIAogICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPmxvYWRlcigpKQogICAgICAgICBm
cmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03Myw5ICs3Myw3IEBAIHZvaWQgTWVkaWFEb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbnQK
ICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgIFJlZlB0cjxFbGVtZW50PiByb290RWxlbWVudCA9
IGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnQoaHRtbFRhZywgZmFsc2UpOwogICAgIGRvY3VtZW50
KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBlYyk7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKICAgICBzdGF0aWNfY2FzdDxIVE1MSHRtbEVsZW1lbnQqPihyb290RWxl
bWVudC5nZXQoKSktPmluc2VydGVkQnlQYXJzZXIoKTsKLSNlbmRpZgogCiAgICAgaWYgKGRvY3Vt
ZW50KCktPmZyYW1lKCkpCiAgICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmxvYWRlcigpLT5k
aXNwYXRjaERvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9QbHVnaW5Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwLDkgKzcwLDcgQEAg
dm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6Y3JlYXRlRG9jdW1lbgogICAgIEV4Y2VwdGlvbkNv
ZGUgZWM7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3Jl
YXRlRWxlbWVudChodG1sVGFnLCBmYWxzZSk7CiAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQo
cm9vdEVsZW1lbnQsIGVjKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIHN0YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KHJvb3RFbGVtZW50LmdldCgpKS0+aW5z
ZXJ0ZWRCeVBhcnNlcigpOwotI2VuZGlmCiAKICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAm
JiBkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+ZnJh
bWUoKS0+bG9hZGVyKCktPmRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxDb25zdHJ1Y3Rpb25TaXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDkgKzE4NCw3IEBA
IHZvaWQgSFRNTENvbnN0cnVjdGlvblNpdGU6Omluc2VydEhUTUxIdG0KICAgICBSZWZQdHI8SFRN
TEh0bWxFbGVtZW50PiBlbGVtZW50ID0gSFRNTEh0bWxFbGVtZW50OjpjcmVhdGUobV9kb2N1bWVu
dCk7CiAgICAgZWxlbWVudC0+c2V0QXR0cmlidXRlTWFwKHRva2VuLnRha2VBdHJpYnV0ZXMoKSwg
bV9mcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIG1fb3BlbkVsZW1lbnRzLnB1c2hI
VE1MSHRtbEVsZW1lbnQoYXR0YWNoPEVsZW1lbnQ+KG1fYXR0YWNobWVudFJvb3QsIGVsZW1lbnQu
Z2V0KCkpKTsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGVsZW1l
bnQtPmluc2VydGVkQnlQYXJzZXIoKTsKLSNlbmRpZgogICAgIGRpc3BhdGNoRG9jdW1lbnRFbGVt
ZW50QXZhaWxhYmxlSWZOZWVkZWQoKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAJ
KHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFw
cGxpY2F0aW9uQ2FjaGVBZ2VudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaCIKIAotI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkFwcGxpY2F0
aW9uQ2FjaGVIb3N0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAgLTEzOCw0ICsx
MzgsNCBAQCBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gSW5zcGVjdG9yQXBwCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hl
QWdlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
QXBwbGljYXRpb25DYWNoZUFnZW50LmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw3ICsyNSw3IEBACiAjaWZuZGVmIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudF9oCiAjZGVmaW5lIEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudF9oCiAKLSNpZiBF
TkFCTEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorI2lm
IEVOQUJMRShJTlNQRUNUT1IpCiAKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCkBAIC03NCw1ICs3NCw1IEBAIHByaXZhdGU6
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1Ip
ICYmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKICNlbmRpZiAvLyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnRfaApJbmRl
eDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw5ICsxMDgsNyBAQCBJbnNwZWN0
b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyCiAgICAgLCBtX2RvbVN0b3JhZ2VBZ2Vu
dChJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMu
Z2V0KCksIG1fc3RhdGUuZ2V0KCkpKQogI2VuZGlmCiAgICAgLCBtX3RpbWVsaW5lQWdlbnQoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSkpCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAg
ICAsIG1fYXBwbGljYXRpb25DYWNoZUFnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlKSkpCi0jZW5k
aWYKICAgICAsIG1fcmVzb3VyY2VBZ2VudChJbnNwZWN0b3JSZXNvdXJjZUFnZW50OjpjcmVhdGUo
bV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3BhZ2VBZ2VudC5nZXQoKSwgaW5zcGVjdG9y
Q2xpZW50LCBtX3N0YXRlLmdldCgpKSkKICAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5l
dyBQYWdlUnVudGltZUFnZW50KG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCBwYWdlLCBt
X3BhZ2VBZ2VudC5nZXQoKSkpKQogICAgICwgbV9jb25zb2xlQWdlbnQoYWRvcHRQdHIobmV3IElu
c3BlY3RvckNvbnNvbGVBZ2VudChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5zcGVj
dG9yQWdlbnQuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpLCBtX2RvbUFnZW50LmdldCgpKSkpCkBAIC0yMDIsOSArMjAwLDcgQEAgdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjpjb25uZWN0RnJvbnRlbgogICAgIC8vIFdlIGNhbiByZWNvbm5lY3QgdG8g
ZXhpc3RpbmcgZnJvbnQtZW5kIC0+IHVubXV0ZSBzdGF0ZS4KICAgICBtX3N0YXRlLT51bm11dGUo
KTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNh
dGlvbkNhY2hlQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQuZ2V0KCkpOwot
I2VuZGlmCiAgICAgbV9wYWdlQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQu
Z2V0KCkpOwogICAgIG1fZG9tQWdlbnQtPnNldEZyb250ZW5kKG1faW5zcGVjdG9yRnJvbnRlbmQu
Z2V0KCkpOwogICAgIG1fY29uc29sZUFnZW50LT5zZXRGcm9udGVuZChtX2luc3BlY3RvckZyb250
ZW5kLmdldCgpKTsKQEAgLTIzMiw5ICsyMjgsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmNvbm5lY3RGcm9udGVuCiAgICAgQVNTRVJUKG1faW5zcGVjdG9yQ2xpZW50KTsKICAgICBtX2lu
c3BlY3RvckJhY2tlbmREaXNwYXRjaGVyID0gYWRvcHRSZWYobmV3IEluc3BlY3RvckJhY2tlbmRE
aXNwYXRjaGVyKAogICAgICAgICBtX2luc3BlY3RvckNsaWVudCwKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICBtX2FwcGxpY2F0aW9uQ2FjaGVBZ2VudC5nZXQo
KSwKLSNlbmRpZgogICAgICAgICBtX2Nzc0FnZW50LmdldCgpLAogICAgICAgICBtX2NvbnNvbGVB
Z2VudC5nZXQoKSwKICAgICAgICAgbV9kb21BZ2VudC5nZXQoKSwKQEAgLTI4NSw5ICsyNzksNyBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpc2Nvbm5lY3RGcm9uCiAgICAgbV9kb21EZWJ1
Z2dlckFnZW50LT5jbGVhckZyb250ZW5kKCk7CiAgICAgbV9wcm9maWxlckFnZW50LT5jbGVhckZy
b250ZW5kKCk7CiAjZW5kaWYKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIG1fYXBwbGljYXRpb25DYWNoZUFnZW50LT5jbGVhckZyb250ZW5kKCk7Ci0jZW5kaWYKICAg
ICBtX2NvbnNvbGVBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogICAgIG1fZG9tQWdlbnQtPmNsZWFy
RnJvbnRlbmQoKTsKICAgICBtX2Nzc0FnZW50LT5jbGVhckZyb250ZW5kKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHJldmlzaW9u
IDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDkgKzE0MSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRy
PEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gbV9kb21TdG9yYWdlQWdlbnQ7CiAjZW5kaWYKICAg
ICBPd25QdHI8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4gbV90aW1lbGluZUFnZW50OwotI2lmIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgT3duUHRyPEluc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudD4gbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQ7Ci0jZW5kaWYKICAgICBS
ZWZQdHI8SW5zcGVjdG9yUmVzb3VyY2VBZ2VudD4gbV9yZXNvdXJjZUFnZW50OwogICAgIE93blB0
cjxJbnNwZWN0b3JSdW50aW1lQWdlbnQ+IG1fcnVudGltZUFnZW50OwogICAgIE93blB0cjxJbnNw
ZWN0b3JDb25zb2xlQWdlbnQ+IG1fY29uc29sZUFnZW50OwpJbmRleDogU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAJKHJldmlz
aW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyMiw3ICs4MjIsNiBAQCB2b2lkIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShP
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
bmV0d29ya1N0YXRlQ2hhbmdlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGlu
Z0FnZW50cykKIHsKICAgICBpZiAoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KiBhcHBs
aWNhdGlvbkNhY2hlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQoKSkKQEAgLTgzNCw3ICs4MzMsNiBAQCB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6dXBkYXRlQXBwCiAgICAgaWYgKEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVB
Z2VudCogYXBwbGljYXRpb25DYWNoZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVj
dG9yQXBwbGljYXRpb25DYWNoZUFnZW50KCkpCiAgICAgICAgIGFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dC0+dXBkYXRlQXBwbGljYXRpb25DYWNoZVN0YXR1cyhmcmFtZSk7CiB9Ci0jZW5kaWYKIAogYm9v
bCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmNvbGxlY3RpbmdIVE1MUGFyc2VFcnJvcnMoSW5z
dHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKIHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgJKHJl
dmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODksMTAgKzE4OSw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChQYWdlKik7Ci0K
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIHN0YXRpYyB2b2lkIHVw
ZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICBzdGF0aWMgdm9pZCBmcm9udGVuZENyZWF0ZWQoKSB7IHNfZnJvbnRl
bmRDb3VudGVyICs9IDE7IH0KQEAgLTMyMiwxMCArMzE5LDggQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBkaWRDbG9zZVdlYlNvY2tldEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllcik7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZEltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyopOwogICAgIHN0YXRpYyB2b2lkIHVwZGF0ZUFwcGxpY2F0aW9uQ2Fj
aGVTdGF0dXNJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBGcmFtZSopOwotI2VuZGlmCiAKICAg
ICBzdGF0aWMgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2Uo
UGFnZSopOwogICAgIHN0YXRpYyBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzRm9yRnJhbWUoRnJhbWUqKTsKQEAgLTEwMTYsMTQgKzEwMTEsMTMgQEAgaW5saW5lIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246Om5ldHdvcmtTdGF0ZUNoYW5nZWQoUGFnZSogcGFnZSkKIHsKLSNpZiBFTkFC
TEUoSU5TUEVDVE9SKSAmJiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7
CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSkKICAgICAgICAgbmV0d29ya1N0YXRlQ2hhbmdl
ZEltcGwoaW5zdHJ1bWVudGluZ0FnZW50cyk7CiAjZW5kaWYKIH0KIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0dXMoRnJhbWUqIGZyYW1lKQogewogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCkBAIC0xMDMyLDcgKzEwMjYsNiBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnVwCiAgICAgICAgIHVwZGF0ZUFwcGxpY2F0aW9uQ2FjaGVTdGF0
dXNJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMsIGZyYW1lKTsKICNlbmRpZgogfQotI2VuZGlmCiAK
IGlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVnaXN0ZXJBbmltYXRp
b25GcmFtZUNhbGxiYWNrKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGNhbGxiYWNrSWQpCiB7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0FnZW50cy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnN0cnVtZW50aW5nQWdlbnRzLmgJ
KHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3RydW1lbnRp
bmdBZ2VudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsOSArNzMsNyBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFNRTF9EQVRBQkFTRSkKICAgICAgICAgLCBtX2luc3BlY3RvckRhdGFiYXNlQWdlbnQo
MCkKICNlbmRpZgotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAg
ICwgbV9pbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoMCkKLSNlbmRpZgogI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICAgICAsIG1faW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dCgwKQogICAgICAgICAsIG1faW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudCgwKQpAQCAtMTE5LDEw
ICsxMTcsOCBAQCBwdWJsaWM6CiAgICAgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCogaW5zcGVjdG9y
RGF0YWJhc2VBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yRGF0YWJhc2VBZ2VudDsg
fQogICAgIHZvaWQgc2V0SW5zcGVjdG9yRGF0YWJhc2VBZ2VudChJbnNwZWN0b3JEYXRhYmFzZUFn
ZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckRhdGFiYXNlQWdlbnQgPSBhZ2VudDsgfQogI2VuZGlm
Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQqIGluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCgpIGNvbnN0
IHsgcmV0dXJuIG1faW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50OyB9CiAgICAgdm9pZCBz
ZXRJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQoSW5zcGVjdG9yQXBwbGljYXRpb25DYWNo
ZUFnZW50KiBhZ2VudCkgeyBtX2luc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudCA9IGFnZW50
OyB9Ci0jZW5kaWYKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KiBpbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkgY29uc3QgeyByZXR1cm4g
bV9pbnNwZWN0b3JEZWJ1Z2dlckFnZW50OyB9CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50KEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGFnZW50KSB7IG1faW5zcGVjdG9yRGVidWdn
ZXJBZ2VudCA9IGFnZW50OyB9CkBAIC0xNTMsOSArMTQ5LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFC
TEUoU1FMX0RBVEFCQVNFKQogICAgIEluc3BlY3RvckRhdGFiYXNlQWdlbnQqIG1faW5zcGVjdG9y
RGF0YWJhc2VBZ2VudDsKICNlbmRpZgotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElP
TlMpCiAgICAgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KiBtX2luc3BlY3RvckFwcGxp
Y2F0aW9uQ2FjaGVBZ2VudDsKLSNlbmRpZgogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQogICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIG1faW5zcGVjdG9yRGVidWdnZXJBZ2VudDsK
ICAgICBJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50KiBtX2luc3BlY3RvckRPTURlYnVnZ2VyQWdl
bnQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTI2LDkgKzEyNiw3IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6Y29ubmVj
dEYKICAgICBtX2Zyb250ZW5kID0gYWRvcHRQdHIobmV3IEluc3BlY3RvckZyb250ZW5kKG1fZnJv
bnRlbmRDaGFubmVsLmdldCgpKSk7CiAgICAgbV9iYWNrZW5kRGlzcGF0Y2hlciA9IGFkb3B0UmVm
KG5ldyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlcigKICAgICAgICAgbV9mcm9udGVuZENoYW5u
ZWwuZ2V0KCksCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAg
MCwgLy8gSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50Ci0jZW5kaWYKICNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAgICAgMCwgLy8gSW5zcGVjdG9yRE9NRGVidWdnZXJB
Z2VudAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJhdGUtaW5z
cGVjdG9yLWlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZ2VuZXJh
dGUtaW5zcGVjdG9yLWlkbAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZ2VuZXJhdGUtaW5zcGVjdG9yLWlkbAkod29ya2luZyBjb3B5KQpAQCAtODYsNyArODYs
NiBAQCByZWZfdHlwZXMgPSB7fQogbWFjcm9fdHJhaXRzID0gewogICAgICJEYXRhYmFzZSI6ICJT
UUxfREFUQUJBU0UiLAogICAgICJET01TdG9yYWdlIjogIkRPTV9TVE9SQUdFIiwKLSAgICAiQXBw
bGljYXRpb25DYWNoZSI6ICJPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMiLAogICAgICJEZWJ1Z2dl
ciI6ICJKQVZBU0NSSVBUX0RFQlVHR0VSIiwKICAgICAiRE9NRGVidWdnZXIiOiAiSkFWQVNDUklQ
VF9ERUJVR0dFUiIsCiAgICAgIlByb2ZpbGVyIjogIkpBVkFTQ1JJUFRfREVCVUdHRVIiLApJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCShyZXZpc2lvbiA5NTkw
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTk4LDkgKzk4LDcgQEAgRG9jdW1lbnRMb2FkZXI6OkRvY3VtZW50TG9hZGVyKGNv
bnN0IFJlcwogICAgICwgbV9zdG9wUmVjb3JkaW5nUmVzcG9uc2VzKGZhbHNlKQogICAgICwgbV9z
dWJzdGl0dXRlUmVzb3VyY2VEZWxpdmVyeVRpbWVyKHRoaXMsICZEb2N1bWVudExvYWRlcjo6c3Vi
c3RpdHV0ZVJlc291cmNlRGVsaXZlcnlUaW1lckZpcmVkKQogICAgICwgbV9kaWRDcmVhdGVHbG9i
YWxIaXN0b3J5RW50cnkoZmFsc2UpCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKICAgICAsIG1fYXBwbGljYXRpb25DYWNoZUhvc3QoYWRvcHRQdHIobmV3IEFwcGxpY2F0aW9u
Q2FjaGVIb3N0KHRoaXMpKSkKLSNlbmRpZgogewogfQogCkBAIC0yMDAsMTAgKzE5OCw4IEBAIHZv
aWQgRG9jdW1lbnRMb2FkZXI6Om1haW5SZWNlaXZlZEVycm9yKGMKIHsKICAgICBBU1NFUlQoIWVy
cm9yLmlzTnVsbCgpKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAg
ICAgbV9hcHBsaWNhdGlvbkNhY2hlSG9zdC0+ZmFpbGVkTG9hZGluZ01haW5SZXNvdXJjZSgpOwot
I2VuZGlmCi0gICAgCisKICAgICBpZiAoIWZyYW1lTG9hZGVyKCkpCiAgICAgICAgIHJldHVybjsK
ICAgICBzZXRNYWluRG9jdW1lbnRFcnJvcihlcnJvcik7CkBAIC0yMzUsOSArMjMxLDcgQEAgdm9p
ZCBEb2N1bWVudExvYWRlcjo6c3RvcExvYWRpbmcoKQogICAgIGNhbmNlbEFsbChtX211bHRpcGFy
dFN1YnJlc291cmNlTG9hZGVycyk7CiAKICAgICAvLyBBcHBjYWNoZSB1c2VzIFJlc291cmNlSGFu
ZGxlIGRpcmVjdGx5LCBEb2N1bWVudExvYWRlciBkb2Vzbid0IGNvdW50IHRoZXNlIGxvYWRzLgot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNhdGlvbkNh
Y2hlSG9zdC0+c3RvcExvYWRpbmdJbkZyYW1lKG1fZnJhbWUpOwotI2VuZGlmCiAKICAgICBpZiAo
IWxvYWRpbmcpCiAgICAgICAgIHJldHVybjsKQEAgLTQwMiw5ICszOTYsNyBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjpkZXRhY2hGcm9tRnJhbWUoKQogewogICAgIEFTU0VSVChtX2ZyYW1lKTsKIAot
I2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgbV9hcHBsaWNhdGlvbkNh
Y2hlSG9zdC0+c2V0RE9NQXBwbGljYXRpb25DYWNoZSgwKTsKLSNlbmRpZgogICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6bG9hZGVyRGV0YWNoZWRGcm9tRnJhbWUobV9mcmFtZSwgdGhpcyk7
CiAgICAgbV9mcmFtZSA9IDA7CiB9CkBAIC04OTgsOSArODkwLDcgQEAgdm9pZCBEb2N1bWVudExv
YWRlcjo6Z2V0SWNvbkRhdGFGb3JJY29uVQogdm9pZCBEb2N1bWVudExvYWRlcjo6aGFuZGxlZE9u
bG9hZEV2ZW50cygpCiB7CiAgICAgbV93YXNPbmxvYWRIYW5kbGVkID0gdHJ1ZTsKLSNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkt
PnN0b3BEZWZlcnJpbmdFdmVudHMoKTsKLSNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkocmV2aXNpb24g
OTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ4LDkgKzI0OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
Ly8gYWN0dWFsbHkgYmUgYWRkZWQgdG8gdGhlIGRvY3VtZW50LgogICAgICAgICB2b2lkIGNvbW1p
dERhdGEoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5ndGgpOwogCi0jaWYgRU5BQkxFKE9G
RkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgQXBwbGljYXRpb25DYWNoZUhvc3QqIGFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvbkNhY2hlSG9z
dC5nZXQoKTsgfQotI2VuZGlmCiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIERvY3VtZW50TG9h
ZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJik7CkBAIC0z
NDksMTAgKzM0Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUmVmUHRyPEljb25M
b2FkRGVjaXNpb25DYWxsYmFjaz4gbV9pY29uTG9hZERlY2lzaW9uQ2FsbGJhY2s7CiAgICAgICAg
IFJlZlB0cjxJY29uRGF0YUNhbGxiYWNrPiBtX2ljb25EYXRhQ2FsbGJhY2s7CiAKLSNpZiBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICBmcmllbmQgY2xhc3MgQXBwbGlj
YXRpb25DYWNoZUhvc3Q7ICAvLyBmb3Igc3Vic3RpdHV0ZSByZXNvdXJjZSBkZWxpdmVyeQogICAg
ICAgICBPd25QdHI8QXBwbGljYXRpb25DYWNoZUhvc3Q+IG1fYXBwbGljYXRpb25DYWNoZUhvc3Q7
Ci0jZW5kaWYKICAgICB9OwogCiAgICAgaW5saW5lIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlY29y
ZE1lbW9yeUNhY2hlTG9hZEZvckZ1dHVyZUNsaWVudE5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcm
IHVybCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDk1
OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xODQsMTAgKzE4NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgeyB9CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgdmlydHVhbCB2b2lkIHJlYWNo
ZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90KSB7IH0K
LSNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAgICAgdmlydHVhbCBOb3RpZmlj
YXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjM0LDE0ICsyNjM0LDEwIEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6Omxv
YWRSZXNvdXJjZVMKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgQVNTRVJUKCFu
ZXdSZXF1ZXN0LmlzTnVsbCgpKTsKICAgICAgICAgCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNh
Y2hlSG9zdCgpLT5tYXliZUxvYWRTeW5jaHJvbm91c2x5KG5ld1JlcXVlc3QsIGVycm9yLCByZXNw
b25zZSwgZGF0YSkpIHsKLSNlbmRpZgogICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkobmV0d29ya2luZ0NvbnRleHQoKSwgbmV3UmVxdWVzdCwgc3Rv
cmVkQ3JlZGVudGlhbHMsIGVycm9yLCByZXNwb25zZSwgZGF0YSk7Ci0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxp
Y2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrU3luY2hyb25vdXNseShuZXdSZXF1
ZXN0LCBlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwogICAgICAgICB9Ci0jZW5kaWYKICAgICB9CiAg
ICAgaW50IGVuY29kZWREYXRhTGVuZ3RoID0gcmVzcG9uc2UucmVzb3VyY2VMb2FkSW5mbygpID8g
c3RhdGljX2Nhc3Q8aW50PihyZXNwb25zZS5yZXNvdXJjZUxvYWRJbmZvKCktPmVuY29kZWREYXRh
TGVuZ3RoKSA6IC0xOwogICAgIG5vdGlmaWVyKCktPnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3Nh
Z2VzKG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCksIGlkZW50aWZpZXIsIHJlc3BvbnNlLCBkYXRhLmRh
dGEoKSwgZGF0YS5zaXplKCksIGVuY29kZWREYXRhTGVuZ3RoLCBlcnJvcik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjIxLDEzICsyMjEsMTEgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdAogICAgIC8vIERvbid0IHNldCB0aGlzIG9uIHRoZSBmaXJzdCByZXF1
ZXN0LiBJdCBpcyBzZXQgd2hlbiB0aGUgbWFpbiBsb2FkIHdhcyBzdGFydGVkLgogICAgIG1fZG9j
dW1lbnRMb2FkZXItPnNldFJlcXVlc3QobmV3UmVxdWVzdCk7CiAKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkg
ewogICAgICAgICAvLyBXZSBjaGVja2VkIGFwcGxpY2F0aW9uIGNhY2hlIGZvciBpbml0aWFsIFVS
TCwgbm93IHdlIG5lZWQgdG8gY2hlY2sgaXQgZm9yIHJlZGlyZWN0ZWQgb25lLgogICAgICAgICBB
U1NFUlQoIW1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpKTsKICAgICAgICAgZG9jdW1lbnRMb2Fk
ZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkTWFpblJlc291cmNlRm9yUmVk
aXJlY3QobmV3UmVxdWVzdCwgbV9zdWJzdGl0dXRlRGF0YSk7CiAgICAgfQotI2VuZGlmCiAKICAg
ICAvLyBGSVhNRTogSWRlYWxseSB3ZSdkIHN0b3AgdGhlIEkvTyB1bnRpbCB3ZSBoZWFyIGJhY2sg
ZnJvbSB0aGUgbmF2aWdhdGlvbiBwb2xpY3kgZGVsZWdhdGUKICAgICAvLyBsaXN0ZW5lci4gQnV0
IHRoZXJlJ3Mgbm8gd2F5IHRvIGRvIHRoYXQgaW4gcHJhY3RpY2UuIFNvIGluc3RlYWQgd2UgY2Fu
Y2VsIGxhdGVyIGlmIHRoZQpAQCAtMzYwLDEwICszNTgsOCBAQCB2b2lkIE1haW5SZXNvdXJjZUxv
YWRlcjo6c3Vic3RpdHV0ZU1JTUVUCiAKIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRSZWNl
aXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1haW5SZXNwb25zZShyZXF1ZXN0
KCksIHIpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAgIEhUVFBIZWFkZXJNYXA6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gci5odHRwSGVhZGVyRmllbGRzKCkuZmluZChBdG9taWNTdHJpbmco
IngtZnJhbWUtb3B0aW9ucyIpKTsKICAgICBpZiAoaXQgIT0gci5odHRwSGVhZGVyRmllbGRzKCku
ZW5kKCkpIHsKQEAgLTQ1MCwxMCArNDQ2LDggQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVEYXRhKAogI2lmICFVU0UoQ0YpCiAgICAgQVNTRVJUKCFkZWZlcnNMb2FkaW5nKCkp
OwogI2VuZGlmCi0gCi0gI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisKICAg
ICBkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYWluUmVzb3VyY2VE
YXRhUmVjZWl2ZWQoZGF0YSwgbGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgYWxsQXRPbmNlKTsK
LSNlbmRpZgogCiAgICAgLy8gVGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhp
bmcgaW5jbHVkaW5nIHBvc3NpYmx5IHJlbW92aW5nIHRoZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNl
IHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYyMTYuCkBAIC00NzUs
MjcgKzQ2OSwyMCBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluCiAg
ICAgLy8gVGhlIGFkZGl0aW9uYWwgcHJvY2Vzc2luZyBjYW4gZG8gYW55dGhpbmcgaW5jbHVkaW5n
IHBvc3NpYmx5IHJlbW92aW5nIHRoZSBsYXN0CiAgICAgLy8gcmVmZXJlbmNlIHRvIHRoaXMgb2Jq
ZWN0LgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VMb2FkZXI+IHByb3RlY3QodGhpcyk7Ci0KLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIFJlZlB0cjxEb2N1bWVudExv
YWRlcj4gZGwgPSBkb2N1bWVudExvYWRlcigpOwotI2VuZGlmCiAKICAgICBBU1NFUlQoIWRvY3Vt
ZW50TG9hZGVyKCktPnRpbWluZygpLT5yZXNwb25zZUVuZCk7CiAgICAgZG9jdW1lbnRMb2FkZXIo
KS0+dGltaW5nKCktPnJlc3BvbnNlRW5kID0gZmluaXNoVGltZSA/IGZpbmlzaFRpbWUgOiAobV90
aW1lT2ZMYXN0RGF0YVJlY2VpdmVkID8gbV90aW1lT2ZMYXN0RGF0YVJlY2VpdmVkIDogY3VycmVu
dFRpbWUoKSk7CiAgICAgZnJhbWVMb2FkZXIoKS0+ZmluaXNoZWRMb2FkaW5nKCk7CiAgICAgUmVz
b3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7Ci0gICAgCi0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKwogICAgIGRsLT5hcHBsaWNhdGlvbkNhY2hl
SG9zdCgpLT5maW5pc2hlZExvYWRpbmdNYWluUmVzb3VyY2UoKTsKLSNlbmRpZgogfQogCiB2b2lk
IE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikK
IHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChkb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0Zvck1h
aW5FcnJvcihyZXF1ZXN0KCksIGVycm9yKSkKICAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAKICAg
ICAvLyBUaGVyZSBpcyBhIGJ1ZyBpbiBDRk5ldHdvcmsgd2hlcmUgY2FsbGJhY2tzIGNhbiBiZSBk
aXNwYXRjaGVkIGV2ZW4gd2hlbiBsb2FkcyBhcmUgZGVmZXJyZWQuCiAgICAgLy8gU2VlIDxyZGFy
Oi8vcHJvYmxlbS82MzA0NjAwPiBmb3IgbW9yZSBkZXRhaWxzLgpAQCAtNTk5LDkgKzU4Niw3IEBA
IGJvb2wgTWFpblJlc291cmNlTG9hZGVyOjpsb2FkKGNvbnN0IFJlc28KICAgICBkb2N1bWVudExv
YWRlcigpLT50aW1pbmcoKS0+ZmV0Y2hTdGFydCA9IGN1cnJlbnRUaW1lKCk7CiAgICAgUmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3Qocik7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogICAgIGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJl
TG9hZE1haW5SZXNvdXJjZShyZXF1ZXN0LCBtX3N1YnN0aXR1dGVEYXRhKTsKLSNlbmRpZgogCiAg
ICAgYm9vbCBkZWZlciA9IGRlZmVyc0xvYWRpbmcoKTsKICAgICBpZiAoZGVmZXIpIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gOTU5MDgp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDMsMTEgKzE0Myw5IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAg
ICBpZiAobV9kb2N1bWVudExvYWRlci0+c2NoZWR1bGVBcmNoaXZlTG9hZCh0aGlzLCBtX3JlcXVl
c3QsIG1fcmVxdWVzdC51cmwoKSkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgotICAgIAotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisKICAgICBpZiAobV9kb2N1bWVudExv
YWRlci0+YXBwbGljYXRpb25DYWNoZUhvc3QoKS0+bWF5YmVMb2FkUmVzb3VyY2UodGhpcywgbV9y
ZXF1ZXN0LCBtX3JlcXVlc3QudXJsKCkpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKIAogICAg
IGlmIChtX2RlZmVyc0xvYWRpbmcpIHsKICAgICAgICAgbV9kZWZlcnJlZFJlcXVlc3QgPSBtX3Jl
cXVlc3Q7CkBAIC0yMTEsMTAgKzIwOSw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmNsZWFyUmVz
b3VyY2VEYXRhKCkKIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNw
b25zZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICgh
ZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkp
CiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3Vt
ZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwogICAgIC8vIFByb3RlY3Qg
dGhpcyBpbiB0aGlzIGRlbGVnYXRlIG1ldGhvZCBzaW5jZSB0aGUgYWRkaXRpb25hbCBwcm9jZXNz
aW5nIGNhbiBkbwpAQCAtMjM5LDIwICsyMzUsMTYgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2ls
bFNlbmRSZXF1ZXN0KFJlcwogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRTZW5kRGF0YSh1bnNp
Z25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykKIHsKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2Fk
ZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYK
ICAgICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAg
ICAgICBDUkFTSCgpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBp
ZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBD
UkFTSCgpOwogICAgIEFTU0VSVCghbV9yZWFjaGVkVGVybWluYWxTdGF0ZSk7CkBAIC0yNzIsMTAg
KzI2NCw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSgKIAogdm9p
ZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBib29sIGFsbEF0T25jZSkKIHsKLSNp
ZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghbV9jYW5jZWxsZWQg
JiYgIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0
KCkpKQogICAgICAgICBDUkFTSCgpOwotI2VuZGlmCiAgICAgaWYgKCFtX2NhbmNlbGxlZCAmJiAh
ZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+ZnJhbWUoKSkpCiAgICAgICAgIENSQVNI
KCk7CiAgICAgLy8gVGhlIGZvbGxvd2luZyBhc3NlcnRpb25zIGFyZSBub3QgcXVpdGUgdmFsaWQg
aGVyZSwgc2luY2UgYSBzdWJjbGFzcwpAQCAtNDIyLDEwICs0MTIsOCBAQCBSZXNvdXJjZUVycm9y
IFJlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxT
ZW5kUmVxdWVzdChSZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNh
dGlvbkNhY2hlSG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0ZvclJlZGlyZWN0KHRoaXMsIHJlcXVl
c3QsIHJlZGlyZWN0UmVzcG9uc2UpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICB3aWxs
U2VuZFJlcXVlc3QocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiB9CiAKQEAgLTQzNiwxMCAr
NDI0LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkU2VuZERhdGEoUmVzb3VyYwogCiB2b2lk
IFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIGlmIChkb2N1bWVudExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hl
SG9zdCgpLT5tYXliZUxvYWRGYWxsYmFja0ZvclJlc3BvbnNlKHRoaXMsIHJlc3BvbnNlKSkKICAg
ICAgICAgcmV0dXJuOwotI2VuZGlmCiAgICAgZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlKTsK
IH0KIApAQCAtNDUyLDEwICs0MzgsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZl
RGF0YShSZXNvCiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+
YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBp
ZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBD
UkFTSCgpOwogICAgIGRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7CkBAIC00NjMsMjUgKzQ0
NywxOSBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlCiAKIHZvaWQg
UmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
IGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhv
c3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIWZhc3RNYWxsb2NTaXpl
KGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwotI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgaWYgKGRvY3VtZW50TG9hZGVyKCktPmFw
cGxpY2F0aW9uQ2FjaGVIb3N0KCktPm1heWJlTG9hZEZhbGxiYWNrRm9yRXJyb3IodGhpcywgZXJy
b3IpKQogICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICBkaWRGYWlsKGVycm9yKTsKIH0KIAog
dm9pZCBSZXNvdXJjZUxvYWRlcjo6d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopCiB7Ci0jaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBpZiAoIWZhc3RNYWxsb2NTaXpl
KGRvY3VtZW50TG9hZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCkpKQogICAgICAgICBDUkFT
SCgpOwotI2VuZGlmCiAgICAgaWYgKCFmYXN0TWFsbG9jU2l6ZShkb2N1bWVudExvYWRlcigpLT5m
cmFtZSgpKSkKICAgICAgICAgQ1JBU0goKTsKICAgICBkaWRGYWlsKGJsb2NrZWRFcnJvcigpKTsK
QEAgLTQ4OSwxMCArNDY3LDggQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2FzQmxvY2tlZChSZXNv
dXJjZQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxl
KikKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmICghZmFz
dE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAg
ICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50
TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwogICAgIGRpZEZhaWwoY2Fubm90
U2hvd1VSTEVycm9yKCkpOwpAQCAtNTAwLDEwICs0NzYsOCBAQCB2b2lkIFJlc291cmNlTG9hZGVy
OjpjYW5ub3RTaG93VVJMKFJlc291CiAKIGJvb2wgUmVzb3VyY2VMb2FkZXI6OnNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25D
YWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAgICBpZiAoIWZhc3RNYWxs
b2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwogCkBA
IC01NjAsMTAgKzUzNCw4IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlY2VpdmVkQ2FuY2VsbGF0
aW8KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqLCBDYWNoZVN0b3JhZ2VQb2xpY3kmIHBvbGljeSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9X
RUJfQVBQTElDQVRJT05TKQogICAgIGlmICghZmFzdE1hbGxvY1NpemUoZG9jdW1lbnRMb2FkZXIo
KS0+YXBwbGljYXRpb25DYWNoZUhvc3QoKSkpCiAgICAgICAgIENSQVNIKCk7Ci0jZW5kaWYKICAg
ICBpZiAoIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9hZGVyKCktPmZyYW1lKCkpKQogICAgICAg
ICBDUkFTSCgpOwogICAgIC8vIDxyZGFyOi8vcHJvYmxlbS83MjQ5NTUzPiAtIFRoZXJlIGFyZSBy
ZXBvcnRzIG9mIGNyYXNoZXMgd2l0aCB0aGlzIG1ldGhvZCBiZWluZyBjYWxsZWQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDgsOSArMTQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHByb3RlY3RlZDoKICAgICAg
ICAgUmVzb3VyY2VMb2FkZXIoRnJhbWUqLCBSZXNvdXJjZUxvYWRlck9wdGlvbnMpOwogCi0jaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgZnJpZW5kIGNsYXNzIEFw
cGxpY2F0aW9uQ2FjaGVIb3N0OyAgLy8gZm9yIGFjY2VzcyB0byByZXF1ZXN0KCkKLSNlbmRpZgog
ICAgICAgICBmcmllbmQgY2xhc3MgUmVzb3VyY2VMb2FkU2NoZWR1bGVyOyAvLyBmb3IgYWNjZXNz
IHRvIHN0YXJ0KCkKICAgICAgICAgLy8gc3RhcnQoKSBhY3R1YWxseSBzZW5kcyB0aGUgbG9hZCB0
byB0aGUgbmV0d29yayAodW5sZXNzIHRoZSBsb2FkIGlzIGJlaW5nIAogICAgICAgICAvLyBkZWZl
cnJlZCkgYW5kIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBieSBSZXNvdXJjZUxvYWRTY2hlZHVsZXIg
b3Igc2V0RGVmZXJzTG9hZGluZygpLgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJBcHBsaWNhdGlvbkNhY2hlLmgiCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQotCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUdyb3VwLmgiCiAjaW5jbHVkZSAiQXBw
bGljYXRpb25DYWNoZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UuaCIKQEAgLTIyNyw1ICsyMjUsMyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGU6OmR1bXAoKQog
I2VuZGlmCiAKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAog
I2lmbmRlZiBBcHBsaWNhdGlvbkNhY2hlX2gKICNkZWZpbmUgQXBwbGljYXRpb25DYWNoZV9oCiAK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CkBAIC0xMTcsNiArMTE1LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jZW5kaWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2Vu
ZGlmIC8vIEFwcGxpY2F0aW9uQ2FjaGVfaApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAJKHJldmlzaW9u
IDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCIKIAotI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hl
LmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJBcHBsaWNh
dGlvbkNhY2hlUmVzb3VyY2UuaCIKQEAgLTExNTgsNyArMTE1Niw0IEBAIHZvaWQgQXBwbGljYXRp
b25DYWNoZUdyb3VwOjpjbGVhclN0b3JhZ2UKICAgICAgICAgKCppdCktPmNsZWFyU3RvcmFnZUlE
KCk7CiB9CiAKLQogfQotCi0jZW5kaWYgLy8gRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw4ICsyNiw2IEBACiAjaWZuZGVmIEFwcGxpY2F0aW9uQ2FjaGVHcm91cF9oCiAjZGVmaW5l
IEFwcGxpY2F0aW9uQ2FjaGVHcm91cF9oCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQotCiAjaW5jbHVkZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgpAQCAtMjA3LDYgKzIwNSw0IEBAIHBy
aXZhdGU6CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNlbmRpZiAvLyBBcHBsaWNhdGlvbkNhY2hlR3JvdXBf
aApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVI
b3N0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUhvc3QuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBcHBsaWNh
dGlvbkNhY2hlSG9zdC5oIgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
LQogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2FjaGUuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuaCIKICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuaCIKQEAgLTQ2
NCw1ICs0NjIsMyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVIb3N0Ojppc0FwcGxpY2F0aW9uCiB9
CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAgLy8gRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw4ICszMSw2IEBACiAjaWZuZGVmIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
X2gKICNkZWZpbmUgQXBwbGljYXRpb25DYWNoZUhvc3RfaAogCi0jaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlIDx3dGYvRGVx
dWUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0yMDgsNSArMjA2LDQgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgIC8vIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAjZW5kaWYgIC8vIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlUmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw4ICsyNyw2IEBACiAjaW5jbHVkZSAiQXBwbGljYXRp
b25DYWNoZVJlc291cmNlLmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXBwbGljYXRp
b25DYWNoZVJlc291cmNlOjpBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2UoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgdW5zaWduZWQgdHlwZSwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCkKQEAgLTg3LDUgKzg1
LDMgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2U6OmR1bXBUeXBlKAogI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVJlc291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZS5oCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBBcHBsaWNhdGlvbkNh
Y2hlUmVzb3VyY2VfaAogI2RlZmluZSBBcHBsaWNhdGlvbkNhY2hlUmVzb3VyY2VfaAogCi0jaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIlN1YnN0aXR1dGVS
ZXNvdXJjZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC03NCw2ICs3Miw0IEBAIHByaXZh
dGU6CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjZW5kaWYgLy8gQXBwbGljYXRpb25DYWNoZVJlc291
cmNlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlLmgiCiAjaW5jbHVk
ZSAiQXBwbGljYXRpb25DYWNoZUdyb3VwLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhv
c3QuaCIKQEAgLTE1MzksNSArMTUzNywzIEBAIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlJiBjYWNo
ZVN0b3JhZ2UoKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgJKHJldmlz
aW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpZm5kZWYg
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2VfaAogI2RlZmluZSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZV9oCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKICNpbmNs
dWRlICJTUUxpdGVEYXRhYmFzZS5oIgpAQCAtMTU1LDYgKzE1Myw0IEBAIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlJiBjYWNoZVN0b3JhZ2UoKTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNlbmRpZiAv
LyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZV9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNh
Y2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkRPTUFwcGxpY2F0aW9uQ2FjaGUuaCIKIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAg
LTEyOCw1ICsxMjYsMyBAQCBFdmVudFRhcmdldERhdGEqIERPTUFwcGxpY2F0aW9uQ2FjaGU6OmVu
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
RE9NQXBwbGljYXRpb25DYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBET01BcHBsaWNhdGlvbkNhY2hlX2gK
ICNkZWZpbmUgRE9NQXBwbGljYXRpb25DYWNoZV9oCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQotCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKQEAgLTkyLDYgKzkw
LDQgQEAgcHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2VuZGlmIC8vIERPTUFwcGxpY2F0aW9u
Q2FjaGVfaApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0
aW9uQ2FjaGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDYgQEAKIG1vZHVsZSBvZmZsaW5lIHsKICAKICAgICBpbnRlcmZhY2Ug
WwotICAgICAgICBDb25kaXRpb25hbD1PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMsCiAgICAgICAg
IEV2ZW50VGFyZ2V0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IsCiAgICAgICAgIERvbnRDaGVj
a0VudW1zLApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL01hbmlmZXN0UGFy
c2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFu
aWZlc3RQYXJzZXIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9NYW5pZmVzdFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNYW5pZmVzdFBhcnNlci5oIgog
Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIktVUkwu
aCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSA8d3RmL3VuaWNv
ZGUvQ2hhcmFjdGVyTmFtZXMuaD4KQEAgLTE4Miw3ICsxODAsNSBAQCBib29sIHBhcnNlTWFuaWZl
c3QoY29uc3QgS1VSTCYgbWFuaWZlc3RVCiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KLSAgICAKLX0K
IAotI2VuZGlmIC8vIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCit9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJzZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQYXJzZXIuaAkocmV2
aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvTWFuaWZlc3RQ
YXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2lmbmRlZiBNYW5pZmVz
dFBhcnNlcl9oCiAjZGVmaW5lIE1hbmlmZXN0UGFyc2VyX2gKIAotI2lmIEVOQUJMRShPRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMpCi0KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDYgKzQzLDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjZW5k
aWYgLy8gTWFuaWZlc3RQYXJzZXJfaApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nocm9t
aXVtL1Jlc291cmNlTG9hZGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9jaHJvbWl1bS9SZXNvdXJjZUxvYWRlckNocm9taXVtLmNwcAkocmV2aXNpb24g
OTU5MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2hyb21pdW0vUmVzb3VyY2VMb2FkZXJD
aHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDEwICs0NCw4IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmRpZERvd25sb2FkRGF0YShSZXMKIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlk
RG93bmxvYWREYXRhKGludCBsZW5ndGgpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUykKICAgICBpZiAoIW1fY2FuY2VsbGVkICYmICFmYXN0TWFsbG9jU2l6ZShkb2N1bWVu
dExvYWRlcigpLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpKSkKICAgICAgICAgQ1JBU0goKTsKLSNl
bmRpZgogICAgIGlmICghbV9jYW5jZWxsZWQgJiYgIWZhc3RNYWxsb2NTaXplKGRvY3VtZW50TG9h
ZGVyKCktPmZyYW1lKCkpKQogICAgICAgICBDUkFTSCgpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Myw3ICsxODMsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkgPSAwOwogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgICAgICAvLyBDYWxsYmFjayBpbnZv
a2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmpl
Y3QKICAgICAgICAgLy8gYmVjYXVzZSBzdG9yaW5nIGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNl
IGZpbGUgcGFzdCBpdHMgZGVmaW5lZCBtYXhpbXVtCiAgICAgICAgIC8vIHNpemUgb3IgcGFzdCB0
aGUgYW1vdW50IG9mIGZyZWUgc3BhY2Ugb24gdGhlIGRldmljZS4gCkBAIC0yMDAsNyArMTk5LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBvdGhlciBleGlzdGluZyBjYWNoZXMg
Zm9yIHRoZSBvcmlnaW4gdGhhdCB3b3VsZCBub3QgYmUgcmVwbGFjZWQgYnkKICAgICAgICAgLy8g
dGhlIG5ldyBjYWNoZS4KICAgICAgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQp
ID0gMDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGFzaGJvYXJkUmVnaW9uc0NoYW5nZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MDIsMTEgKzUwMiw5IEBAIHZvaWQgRE9N
V2luZG93OjpjbGVhcigpCiAgICAgbV9sb2NhbFN0b3JhZ2UgPSAwOwogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChtX2FwcGxpY2F0aW9uQ2Fj
aGUpCiAgICAgICAgIG1fYXBwbGljYXRpb25DYWNoZS0+ZGlzY29ubmVjdEZyYW1lKCk7CiAgICAg
bV9hcHBsaWNhdGlvbkNhY2hlID0gMDsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCiAgICAgaWYgKG1fbm90aWZpY2F0aW9ucykKQEAgLTU5OSwxNCArNTk3LDEyIEBAIENvbnNv
bGUqIERPTVdpbmRvdzo6Y29uc29sZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29uc29sZS5nZXQo
KTsKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiBET01BcHBsaWNh
dGlvbkNhY2hlKiBET01XaW5kb3c6OmFwcGxpY2F0aW9uQ2FjaGUoKSBjb25zdAogewogICAgIGlm
ICghbV9hcHBsaWNhdGlvbkNhY2hlKQogICAgICAgICBtX2FwcGxpY2F0aW9uQ2FjaGUgPSBET01B
cHBsaWNhdGlvbkNhY2hlOjpjcmVhdGUobV9mcmFtZSk7CiAgICAgcmV0dXJuIG1fYXBwbGljYXRp
b25DYWNoZS5nZXQoKTsKIH0KLSNlbmRpZgogCiBOYXZpZ2F0b3IqIERPTVdpbmRvdzo6bmF2aWdh
dG9yKCkgY29uc3QKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zODgsMTAgKzM4OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU3RvcmFnZUlu
Zm8qIHdlYmtpdFN0b3JhZ2VJbmZvKCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIERPTUFwcGxpY2F0aW9uQ2FjaGUqIGFwcGxp
Y2F0aW9uQ2FjaGUoKSBjb25zdDsKICAgICAgICAgRE9NQXBwbGljYXRpb25DYWNoZSogb3B0aW9u
YWxBcHBsaWNhdGlvbkNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvbkNhY2hlLmdl
dCgpOyB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMpCiAgICAgICAg
IC8vIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvcmllbnRhdGlvbiBpbiBkZWdyZWVzLiBTb21lIGV4
YW1wbGVzIGFyZToKQEAgLTQ2MCw5ICs0NTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIG11dGFibGUgUmVmUHRyPElEQkZhY3Rvcnk+IG1faWRiRmFjdG9yeTsKICNlbmRpZgogCi0j
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAgICAgbXV0YWJsZSBSZWZQ
dHI8RE9NQXBwbGljYXRpb25DYWNoZT4gbV9hcHBsaWNhdGlvbkNhY2hlOwotI2VuZGlmCiAKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8Tm90aWZpY2F0
aW9uQ2VudGVyPiBtX25vdGlmaWNhdGlvbnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtMTY0LDkgKzE2NCw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAg
ICAgICBXZWJLaXRQb2ludCB3ZWJraXRDb252ZXJ0UG9pbnRGcm9tTm9kZVRvUGFnZShpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgbm9kZSwgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gV2ViS2l0UG9pbnQgcCk7CiAKLSNpZiBkZWZpbmVkKEVOQUJMRV9PRkZM
SU5FX1dFQl9BUFBMSUNBVElPTlMpICYmIEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBET01BcHBsaWNh
dGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7Ci0jZW5kaWYgICAgCiAjaWYgZGVmaW5lZChFTkFC
TEVfU1FMX0RBVEFCQVNFKSAmJiBFTkFCTEVfU1FMX0RBVEFCQVNFCiAgICAgICAgIFtFbmFibGVk
QXRSdW50aW1lXSBEYXRhYmFzZSBvcGVuRGF0YWJhc2UoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERP
TVN0cmluZyB2ZXJzaW9uLCBpbiBET01TdHJpbmcgZGlzcGxheU5hbWUsIGluIHVuc2lnbmVkIGxv
bmcgZXN0aW1hdGVkU2l6ZSwgaW4gW0NhbGxiYWNrLCBPcHRpb25hbF0gRGF0YWJhc2VDYWxsYmFj
ayBjcmVhdGlvbkNhbGxiYWNrKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9w
YXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMw
LDEwICs4MzAsOCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjCiAg
ICAgaWYgKG1fdmlldyAmJiAhbmV3RWxlbWVudC0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3RWxl
bWVudC0+YXR0YWNoKCk7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIGlmIChuZXdFbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aHRtbFRhZykpCiAgICAg
ICAgIHN0YXRpY19jYXN0PEhUTUxIdG1sRWxlbWVudCo+KG5ld0VsZW1lbnQuZ2V0KCkpLT5pbnNl
cnRlZEJ5UGFyc2VyKCk7Ci0jZW5kaWYKIAogICAgIGlmICghbV9wYXJzaW5nRnJhZ21lbnQgJiYg
aXNGaXJzdEVsZW1lbnQgJiYgZG9jdW1lbnQoKS0+ZnJhbWUoKSkKICAgICAgICAgZG9jdW1lbnQo
KS0+ZnJhbWUoKS0+bG9hZGVyKCktPmRpc3BhdGNoRG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyUXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJz
ZXJRdC5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9Y
TUxEb2N1bWVudFBhcnNlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTI5LDEwICs1MjksOCBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZVN0YXJ0RWxlbWVuCiAgICAgaWYgKG1fdmll
dyAmJiAhbmV3RWxlbWVudC0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3RWxlbWVudC0+YXR0YWNo
KCk7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlmIChuZXdF
bGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aHRtbFRhZykpCiAgICAgICAgIHN0YXRpY19j
YXN0PEhUTUxIdG1sRWxlbWVudCo+KG5ld0VsZW1lbnQuZ2V0KCkpLT5pbnNlcnRlZEJ5UGFyc2Vy
KCk7Ci0jZW5kaWYKIAogICAgIGlmIChpc0ZpcnN0RWxlbWVudCAmJiBkb2N1bWVudCgpLT5mcmFt
ZSgpKQogICAgICAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+ZGlzcGF0Y2hEb2N1
bWVudEVsZW1lbnRBdmFpbGFibGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEyKQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBBbHdheXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRl
eHRRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmFwcGxpY2F0aW9uQ2FjaGVE
aXJlY3RvcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBs
aWNhdGlvbkNhY2hlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyOjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyk6CisgICAgICAgIChXZWJL
aXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2luKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbEVu
dHJpZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKwogMjAxMS0wOS0yMyAgQWRhbSBLbGVp
biAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgRU5BQkxFX01VVEFUSU9OX09C
U0VSVkVSUyBmZWF0dXJlIGZsYWcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3
b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw2IEBAIEVOQUJMRV9NRVRFUl9UQUcgPSBFTkFCTEVf
TUVURVJfVEFHOwogRU5BQkxFX01IVE1MID0gOwogRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUyA9
IDsKIEVOQUJMRV9OT1RJRklDQVRJT05TID0gOwotRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUyA9IEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlM7CiBFTkFCTEVfUEFHRV9WSVNJ
QklMSVRZX0FQSSA9IDsKIEVOQUJMRV9QUk9HUkVTU19UQUcgPSBFTkFCTEVfUFJPR1JFU1NfVEFH
OwogRU5BQkxFX1FVT1RBID0gOwpAQCAtOTcsNCArOTYsNCBAQCBFTkFCTEVfWEhUTUxNUCA9IDsK
IEVOQUJMRV9YUEFUSCA9IEVOQUJMRV9YUEFUSDsKIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7
CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUND
RUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9C
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ0xJRU5UX0JBU0VEX0dFT0xP
Q0FUSU9OKSAkKEVOQUJMRV9DU1MzX0ZMRVhCT1gpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVO
QUJMRV9EQVRBQkFTRSkgJChFTkFCTEVfREFUQUxJU1QpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJf
SVRFTVMpICQoRU5BQkxFX0RFVEFJTFMpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChF
TkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NX1NUT1JBR0UpICQoRU5BQkxFX0ZJ
TEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChF
TkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkg
JChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChF
TkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJ
U1RJQ1MpICQoRU5BQkxFX01FVEVSX1RBRykgJChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKSAk
KEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
ICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX1RBRykgJChF
TkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpICQoRU5BQkxF
X1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFC
TEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVf
VklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxF
X1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVO
QUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RF
RklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NB
TlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hB
Tk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFC
TEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfREFUQUJBU0Up
ICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9S
WV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdFKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChF
TkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FU
SU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQo
RU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFT
Q1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJ
Q0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUFJPR1JFU1Nf
VEFHKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVHSVNURVJfUFJPVE9DT0xfSEFORExFUikg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJT
KSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVf
U1ZHX0ZPTlRTKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1ZJREVPKSAk
KEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykg
JChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktF
UlMpICQoRU5BQkxFX1hIVE1MTVApICQoRU5BQkxFX1hQQVRIKSAkKEVOQUJMRV9YU0xUKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQuY3BwCShyZXZp
c2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJDb250ZXh0UXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMSArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogU3RyaW5nIFdlYkNvbnRleHQ6OmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKQogewotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgcmV0dXJuIFdlYkNvcmU6OmNh
Y2hlU3RvcmFnZSgpLmNhY2hlRGlyZWN0b3J5KCk7Ci0jZWxzZQotICAgIHJldHVybiBRU3RyaW5n
KCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHJldmlzaW9uIDk1OTA4KQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjA0LDExICsyMDQsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9j
ZXNzKGNvCiAgICAgU3RvcmFnZVRyYWNrZXI6OmluaXRpYWxpemVUcmFja2VyKHBhcmFtZXRlcnMu
bG9jYWxTdG9yYWdlRGlyZWN0b3J5LCAwKTsKICAgICBtX2xvY2FsU3RvcmFnZURpcmVjdG9yeSA9
IHBhcmFtZXRlcnMubG9jYWxTdG9yYWdlRGlyZWN0b3J5OwogI2VuZGlmCi0gICAgCi0jaWYgRU5B
QkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKwogICAgIGlmICghcGFyYW1ldGVycy5hcHBs
aWNhdGlvbkNhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgY2FjaGVTdG9yYWdlKCku
c2V0Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KTsK
LSNlbmRpZgogCiAgICAgc2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3MocGFyYW1ldGVycy5zaG91
bGRUcmFja1Zpc2l0ZWRMaW5rcyk7CiAgICAgc2V0Q2FjaGVNb2RlbChzdGF0aWNfY2FzdDx1aW50
MzJfdD4ocGFyYW1ldGVycy5jYWNoZU1vZGVsKSk7CkBAIC03NzEsMTAgKzc2OSw4IEBAIHZvaWQg
V2ViUHJvY2Vzczo6Y2xlYXJSZXNvdXJjZUNhY2hlcyhSZXMKIAogdm9pZCBXZWJQcm9jZXNzOjpj
bGVhckFwcGxpY2F0aW9uQ2FjaGUoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgLy8gRW1wdHkgdGhlIGFwcGxpY2F0aW9uIGNhY2hlLgogICAgIGNhY2hlU3Rv
cmFnZSgpLmVtcHR5KCk7Ci0jZW5kaWYKIH0KIAogI2lmICFFTkFCTEUoUExVR0lOX1BST0NFU1Mp
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAkod29ya2luZyBj
b3B5KQpAQCAtMjM4LDkgKzIzOCw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgU3RyaW5nIG1fbG9j
YWxTdG9yYWdlRGlyZWN0b3J5OwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9O
UykKICAgICBSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gbV9hcHBsaWNhdGlvbkNhY2hlUGF0aEV4
dGVuc2lvbjsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogICAgIFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdl
cjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNw
cAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0
aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02MCw5ICs2MCw3IEBAIHZvaWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmdldEFwcGwK
IAogICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2VjdXJpdHlPcmlnaW5IYXNo
PiBvcmlnaW5zOwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBj
YWNoZVN0b3JhZ2UoKS5nZXRPcmlnaW5zV2l0aENhY2hlKG9yaWdpbnMpOwotI2VuZGlmCiAKICAg
ICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBpZGVudGlmaWVyczsKICAgICBpZGVudGlmaWVy
cy5yZXNlcnZlQ2FwYWNpdHkob3JpZ2lucy5zaXplKCkpOwpAQCAtODcsMjIgKzg1LDE4IEBAIHZv
aWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUUKIHsKICAgICBXZWJQcm9jZXNz
OjpMb2NhbFRlcm1pbmF0aW9uRGlzYWJsZXIgdGVybWluYXRpb25EaXNhYmxlcihXZWJQcm9jZXNz
OjpzaGFyZWQoKSk7CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShv
cmlnaW5EYXRhLnByb3RvY29sLCBvcmlnaW5EYXRhLmhvc3QsIG9yaWdpbkRhdGEucG9ydCk7CiAg
ICAgaWYgKCFvcmlnaW4pCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBBcHBsaWNhdGlvbkNh
Y2hlOjpkZWxldGVDYWNoZUZvck9yaWdpbihvcmlnaW4uZ2V0KCkpOwotI2VuZGlmCiB9CiAKIHZv
aWQgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMoKQogewogICAg
IFdlYlByb2Nlc3M6OkxvY2FsVGVybWluYXRpb25EaXNhYmxlciB0ZXJtaW5hdGlvbkRpc2FibGVy
KFdlYlByb2Nlc3M6OnNoYXJlZCgpKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgY2FjaGVTdG9yYWdlKCkuZGVsZXRlQWxsRW50cmllcygpOwotI2VuZGlmCiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAko
cmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0Myw3ICs1NDMsNiBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1CiAjZW5kaWYKIAogCi0j
aWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKQEAgLTU1Myw3ICs1NTIsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxp
Y2F0aW9uCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLSNlbmRpZgogCiAjaWYgRU5BQkxF
KERBU0hCT0FSRF9TVVBQT1JUKQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRhc2hib2FyZFJlZ2lv
bnNDaGFuZ2VkKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gOTU5MDgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsMTAgKzEzNSw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lKSBPVkVSUklERTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJ
TkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hl
U2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbios
IGludDY0X3Qgc3BhY2VOZWVkZWQpIE9WRVJSSURFOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoREFT
SEJPQVJEX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIGRhc2hib2FyZFJlZ2lvbnNDaGFuZ2Vk
KCkgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5
MTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIzIEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZl
YXR1cmVzLmd5cGk6CisgICAgICAgICogc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDoKKyAg
ICAgICAgKiBzcmMvQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbC5oOgorICAgICAgICAqIHNy
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6OnJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmg6
CisgICAgICAgICogc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRGF0YVNvdXJjZUltcGw6OmFwcGxpY2F0aW9uQ2FjaGVIb3N0KToKKyAgICAgICAgKiBzcmMv
V2ViUnVudGltZUZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1
cmVzOjplbmFibGVBcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGlt
ZUZlYXR1cmVzOjppc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKToKKwogMjAxMS0wOS0yMyAgQWRh
bSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgRU5BQkxFX01VVEFU
SU9OX09CU0VSVkVSUyBmZWF0dXJlIGZsYWcKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
ZmVhdHVyZXMuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1
cmVzLmd5cGkJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0
dXJlcy5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw2IEBACiAgICAgICAnRU5BQkxF
X01IVE1MPTEnLAogICAgICAgJ0VOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlM9MCcsCiAgICAgICAn
RU5BQkxFX05PVElGSUNBVElPTlM9MScsCi0gICAgICAnRU5BQkxFX09GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUz0xJywKICAgICAgICdFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTPTAnLAogICAgICAg
J0VOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJPTEnLAogICAgICAgJ0VOQUJMRV9QUk9HUkVTU19U
QUc9MScsCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BcHBsaWNhdGlvbkNhY2hl
SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGlj
YXRpb25DYWNoZUhvc3QuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
OCArMzEsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmgiCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQotCiAjaW5j
bHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3RJbnRlcm5hbC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRE9NQXBwbGljYXRpb25DYWNoZS5oIgpAQCAtMzAyLDUgKzMw
MCwzIEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZUhvc3Q6OmlzQXBwbGljYXRpb24KIH0KIAogfSAg
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmICAvLyBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXBwbGljYXRpb25D
YWNoZUhvc3RJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0FwcGxpY2F0aW9uQ2FjaGVIb3N0SW50ZXJuYWwuaAkocmV2aXNpb24gOTU5MDgpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlSG9zdC5oIgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKLQogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAi
V2ViQXBwbGljYXRpb25DYWNoZUhvc3RDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZUNsaWVu
dC5oIgpAQCAtODIsNSArODAsMyBAQCBwcml2YXRlOgogfTsKIAogfQotCi0jZW5kaWYgIC8vIEVO
QUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAkocmV2aXNpb24gOTU5MDgp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjA3LDcgKzIwNyw2IEBAIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViQWNjZXNzaWIKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNz
aWJpbGl0eVJvbGVEb2N1bWVudFJlZ2lvbiwgRG9jdW1lbnRSZWdpb25Sb2xlKTsKIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViQWNjZXNzaWJpbGl0eVJvbGVVc2VySW50ZXJmYWNlVG9v
bHRpcCwgVXNlckludGVyZmFjZVRvb2x0aXBSb2xlKTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFwcGxpY2F0
aW9uQ2FjaGVIb3N0OjpVbmNhY2hlZCwgQXBwbGljYXRpb25DYWNoZUhvc3Q6OlVOQ0FDSEVEKTsK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6Oklk
bGUsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0OjpJRExFKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNoZWNraW5nLCBBcHBsaWNhdGlvbkNhY2hl
SG9zdDo6Q0hFQ0tJTkcpOwpAQCAtMjIyLDcgKzIyMSw2IEBAIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViQXBwbGljYXQKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQXBw
bGljYXRpb25DYWNoZUhvc3Q6OlVwZGF0ZVJlYWR5RXZlbnQsIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
OjpVUERBVEVSRUFEWV9FVkVOVCk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFw
cGxpY2F0aW9uQ2FjaGVIb3N0OjpDYWNoZWRFdmVudCwgQXBwbGljYXRpb25DYWNoZUhvc3Q6OkNB
Q0hFRF9FVkVOVCk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYkFwcGxpY2F0aW9u
Q2FjaGVIb3N0OjpPYnNvbGV0ZUV2ZW50LCBBcHBsaWNhdGlvbkNhY2hlSG9zdDo6T0JTT0xFVEVf
RVZFTlQpOwotI2VuZGlmCiAKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViQ2xpcGJv
YXJkOjpGb3JtYXRQbGFpblRleHQsIFBhc3RlYm9hcmRQcml2YXRlOjpQbGFpblRleHRGb3JtYXQp
OwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJDbGlwYm9hcmQ6OkZvcm1hdEhUTUws
IFBhc3RlYm9hcmRQcml2YXRlOjpIVE1MRm9ybWF0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NDUsNyArNjQ1LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpleGNlZWRl
ZERhdGFiYXNlUQogICAgIC8vIENocm9taXVtIHVzZXJzIGNhbm5vdCBjdXJyZW50bHkgY2hhbmdl
IHRoZSBkZWZhdWx0IHF1b3RhCiB9CiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJ
T05TKQogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0
X3Qgc3BhY2VOZWVkZWQpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC02NTUsNyAr
NjU0LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpyZWFjaGVkQXBwbGljYXRpbwogewogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQotI2VuZGlmCiAKIHZvaWQgQ2hyb21lQ2xpZW50SW1w
bDo6cnVuT3BlblBhbmVsKEZyYW1lKiBmcmFtZSwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gZmls
ZUNob29zZXIpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0Nocm9tZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDEwICsxMjgsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKik7CiAgICAg
dmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YSgKICAgICAgICAgV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lKTsKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0
b3RhbFNwYWNlTmVlZGVkKTsKLSNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAg
IHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVz
ZW50ZXIoKSBjb25zdDsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGF0YVNvdXJjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRhdGFTb3VyY2VJbXBsLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEYXRhU291cmNlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyMSwxMSArMTIxLDcgQEAgdm9pZCBXZWJEYXRhU291cmNlSW1wbDo6c2V0RXh0cmFEYXRh
KEV4dAogCiBXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdCogV2ViRGF0YVNvdXJjZUltcGw6OmFwcGxp
Y2F0aW9uQ2FjaGVIb3N0KCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05T
KQogICAgIHJldHVybiBBcHBsaWNhdGlvbkNhY2hlSG9zdEludGVybmFsOjp0b1dlYkFwcGxpY2F0
aW9uQ2FjaGVIb3N0KERvY3VtZW50TG9hZGVyOjphcHBsaWNhdGlvbkNhY2hlSG9zdCgpKTsKLSNl
bHNlCi0gICAgcmV0dXJuIDA7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJEYXRhU291cmNlSW1wbDo6
c2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZChib29sIGRlZmVyKQpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCShyZXZpc2lv
biA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJl
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MCwxOCArMTQwLDEyIEBAIGJvb2wgV2ViUnVudGlt
ZUZlYXR1cmVzOjppc05vdGlmaWNhdGlvbnMKIAogdm9pZCBXZWJSdW50aW1lRmVhdHVyZXM6OmVu
YWJsZUFwcGxpY2F0aW9uQ2FjaGUoYm9vbCBlbmFibGUpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZChlbmFibGUpOwotI2VuZGlmCiB9CiAKIGJvb2wgV2ViUnVudGltZUZl
YXR1cmVzOjppc0FwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElO
RV9XRUJfQVBQTElDQVRJT05TKQogICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjph
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZCgpOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKIH0KIAogdm9pZCBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZURhdGFUcmFuc2Zlckl0ZW1z
KGJvb2wgZW5hYmxlKQpJbmRleDogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkocmV2aXNpb24gOTU5MTIpCisrKyBT
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBA
QAorMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFsd2F5cyBlbmFibGUgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuaDoKKyAgICAgICAgKiBld2svZXdrX21haW4uY3BwOgorICAg
ICAgICAoX2V3a19pbml0X2JvZHkpOgorICAgICAgICAqIGV3ay9ld2tfc2V0dGluZ3MuY3BwOgor
ICAgICAgICAoZXdrX3NldHRpbmdzX2NhY2hlX2RpcmVjdG9yeV9wYXRoX3NldCk6CisgICAgICAg
IChld2tfc2V0dGluZ3NfY2FjaGVfZGlyZWN0b3J5X3BhdGhfZ2V0KToKKwogMjAxMS0wOS0yMSAg
THVjYXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+CiAKICAgICAg
ICAgW0VGTF0gUmV2ZXJ0IHBvaW50ZXIgb3BlcmF0b3IgY29kaW5nIHN0eWxlIGluIGV3awpJbmRl
eDogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3NCw3ICszNzQs
NiBAQCB2b2lkIENocm9tZUNsaWVudEVmbDo6cHJpbnQoRnJhbWUqIGZyYW1lCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiB2
b2lkIENocm9tZUNsaWVudEVmbDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNl
TmVlZGVkKQogewogICAgIC8vIEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCkBAIC0zODUsNyArMzg0
LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OnJlYWNoZWRBcHBsaWNhdGlvbgogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiB2
b2lkIENocm9tZUNsaWVudEVmbDo6bmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVlZGVkKQpJbmRleDog
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZs
LmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
Q2hyb21lQ2xpZW50RWZsLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNCwxMCArMTE0LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVz
ZW50ZXIoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FU
SU9OUykKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNw
YWNlTmVlZGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5k
aWYKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29u
dGV4dE1lbnUoKSB7IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfbWFpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19tYWluLmNwcAkocmV2aXNp
b24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX21haW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xODIsMTAgKzE4Miw3IEBAIEVpbmFfQm9vbCBfZXdrX2luaXRfYm9keSh2b2lk
KQogICAgIFdURjo6U3RyaW5nIHdrZGlyID0gaG9tZSArICIvLndlYmtpdCI7CiAgICAgaWYgKFdl
YkNvcmU6Om1ha2VBbGxEaXJlY3Rvcmllcyh3a2RpcikpIHsKICAgICAgICAgZXdrX3NldHRpbmdz
X3dlYl9kYXRhYmFzZV9wYXRoX3NldCh3a2Rpci51dGY4KCkuZGF0YSgpKTsKLQotI2lmIEVOQUJM
RShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIGV3a19zZXR0aW5nc19jYWNoZV9k
aXJlY3RvcnlfcGF0aF9zZXQod2tkaXIudXRmOCgpLmRhdGEoKSk7Ci0jZW5kaWYKICAgICB9CiAK
ICAgICAvLyBUT0RPOiB0aGlzIHNob3VsZCBtb3ZlIHRvIFdlYkNvcmUsIGFscmVhZHkgcmVwb3J0
ZWQgdG8gd2Via2l0LWd0ayBmb2xrczoKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
c2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0
dGluZ3MuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
c2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCwxMSArNDQsMTAgQEAKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaD4KIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisvLyBGSVhNRTog
V2h5IGlzIHRoZXJlIGEgZGlyZWN0b3J5IGluIHRoaXMgaW5jbHVkZT8KICNpbmNsdWRlICJhcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgogCiBzdGF0aWMgY29uc3QgY2hhciogX2V3
a19jYWNoZV9kaXJlY3RvcnlfcGF0aCA9IDA7Ci0jZW5kaWYKIAogc3RhdGljIGNvbnN0IGNoYXIq
IF9ld2tfaWNvbl9kYXRhYmFzZV9wYXRoID0gMDsKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQpA
QCAtMjU1LDcgKzI1NCw2IEBAIGNvbnN0IGNoYXIqIGV3a19zZXR0aW5nc19kZWZhdWx0X3VzZXJf
YWcKIAogRWluYV9Cb29sIGV3a19zZXR0aW5nc19jYWNoZV9kaXJlY3RvcnlfcGF0aF9zZXQoY29u
c3QgY2hhciogcGF0aCkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIGlmICghcGF0aCkKICAgICAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CiAKQEAgLTI2NSwxOCAr
MjYzLDExIEBAIEVpbmFfQm9vbCBld2tfc2V0dGluZ3NfY2FjaGVfZGlyZWN0b3J5X3AKICAgICBl
bHNlCiAgICAgICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmX2V3a19jYWNoZV9kaXJlY3Rv
cnlfcGF0aCwgcGF0aCk7CiAgICAgcmV0dXJuIEVJTkFfVFJVRTsKLSNlbHNlCi0gICAgRUlOQV9T
QUZFVFlfT05fVFJVRV9SRVRVUk5fVkFMKDEsIEVJTkFfRkFMU0UpOwotI2VuZGlmCiB9CiAKIGNv
bnN0IGNoYXIqIGV3a19zZXR0aW5nc19jYWNoZV9kaXJlY3RvcnlfcGF0aF9nZXQoKQogewotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgcmV0dXJuIF9ld2tfY2FjaGVf
ZGlyZWN0b3J5X3BhdGg7Ci0jZWxzZQotICAgIEVJTkFfU0FGRVRZX09OX1RSVUVfUkVUVVJOX1ZB
TCgxLCAwKTsKLSNlbmRpZgogfQogCiBkb3VibGUgZXdrX3NldHRpbmdzX2RlZmF1bHRfdGltZXJf
aW50ZXJ2YWxfZ2V0KHZvaWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikK
KysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIwIEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisgICAgICAgICogd2Via2l0L3dlYmtpdGFwcGxpY2F0
aW9uY2FjaGUuY3BwOgorICAgICAgICAod2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9tYXhp
bXVtX3NpemUpOgorICAgICAgICAod2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX3NldF9tYXhpbXVt
X3NpemUpOgorICAgICAgICAod2Via2l0X2FwcGxpY2F0aW9uX2NhY2hlX2dldF9kYXRhYmFzZV9k
aXJlY3RvcnlfcGF0aCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdGdsb2JhbHMuY3BwOgorICAg
ICAgICAod2Via2l0SW5pdCk6CisKIDIwMTEtMDktMjIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAg
PGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY29tPgogCiAgICAgICAgIFJlbW92ZSB1c2VsZXNz
IGVtcHR5IFdlYktpdCBuYW1lc3BhY2UuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAJKHJldmlzaW9uIDk1OTA4KQor
KysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTg5LDcgKzU4OSw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjpleGNl
ZWRlZERhdGFiYXNlUXVvdGEKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKIHZvaWQgQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGlu
dDY0X3Qgc3BhY2VOZWVkZWQpCiB7CiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KQEAg
LTYwMCw3ICs1OTksNiBAQCB2b2lkIENocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLSNlbmRpZgogCiB2b2lkIENocm9tZUNsaWVu
dDo6cnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4gcHJwRmlsZUNo
b29zZXIpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAkod29ya2luZyBjb3B5KQpAQCAtMTE4
LDEwICsxMTgsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNF
KQogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICNlbmRpZgotI2lmIEVOQUJMRShPRkZMSU5FX1dF
Ql9BUFBMSUNBVElPTlMpCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0
X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudSgpIHsgfQogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0YXBwbGljYXRpb25jYWNoZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGFwcGxpY2F0aW9uY2Fj
aGUuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRhcHBsaWNhdGlvbmNhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTEgKzQxLDcgQEAg
c3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBjYWNoZU1heFNpemUgPQogICoqLwogdW5zaWduZWQg
bG9uZyBsb25nIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9nZXRfbWF4aW11bV9zaXplKCkKIHsK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIHJldHVybiAoY2FjaGVN
YXhTaXplID0gV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkubWF4aW11bVNpemUoKSk7Ci0jZWxzZQot
ICAgIHJldHVybiAwOwotI2VuZGlmCiB9CiAKIC8qKgpAQCAtNjAsMTYgKzU2LDEyIEBAIHVuc2ln
bmVkIGxvbmcgbG9uZyB3ZWJraXRfYXBwbGljYXRpb25fY2EKICAqKi8KIHZvaWQgd2Via2l0X2Fw
cGxpY2F0aW9uX2NhY2hlX3NldF9tYXhpbXVtX3NpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUp
CiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBpZiAoc2l6ZSAh
PSBjYWNoZU1heFNpemUpIHsKICAgICAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuZW1wdHko
KTsKICAgICAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkudmFjdXVtRGF0YWJhc2VGaWxlKCk7
CiAgICAgICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnNldE1heGltdW1TaXplKHNpemUpOwog
ICAgICAgICBjYWNoZU1heFNpemUgPSBzaXplOwogICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKHNpemUpOwotI2VuZGlmCiB9CiAKIC8qKgpAQCAtODUsMTEgKzc3LDcgQEAgdm9pZCB3ZWJr
aXRfYXBwbGljYXRpb25fY2FjaGVfc2V0X21heGltdQogICoqLwogY29uc3QgZ2NoYXIqIHdlYmtp
dF9hcHBsaWNhdGlvbl9jYWNoZV9nZXRfZGF0YWJhc2VfZGlyZWN0b3J5X3BhdGgoKQogewotI2lm
IEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgQ1N0cmluZyBwYXRoID0gV2Vi
Q29yZTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmNh
Y2hlRGlyZWN0b3J5KCkpOwogICAgIHJldHVybiBwYXRoLmRhdGEoKTsKLSNlbHNlCi0gICAgcmV0
dXJuICIiOwotI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRnbG9iYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0Z2xvYmFscy5jcHAJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGdsb2JhbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTgsOSArMzE4LDcgQEAg
dm9pZCB3ZWJraXRJbml0KCkKIAogICAgIGdjaGFyKiBkYXRhYmFzZURpcmVjdG9yeSA9IGdfYnVp
bGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid2Via2l0IiwgImRhdGFiYXNlcyIs
IE5VTEwpOwogICAgIHdlYmtpdF9zZXRfd2ViX2RhdGFiYXNlX2RpcmVjdG9yeV9wYXRoKGRhdGFi
YXNlRGlyZWN0b3J5KTsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAg
IFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnNldENhY2hlRGlyZWN0b3J5KGRhdGFiYXNlRGlyZWN0
b3J5KTsKLSNlbmRpZgogCiAgICAgZ19mcmVlKGRhdGFiYXNlRGlyZWN0b3J5KTsKIApJbmRleDog
U291cmNlL1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9oYWlrdS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEyKQorKysgU291cmNlL1dlYktpdC9oYWlr
dS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wOS0yNCAg
QWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFsd2F5cyBlbmFibGUg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlr
dS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRXeDo6cmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50SGFpa3UuaDoKKwogMjAxMS0wOS0xNyAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBGcmFtZUxvYWRlckNsaWVudCBCYWNrRm9yd2FyZExpc3QtcmVs
YXRlZCBtZXRob2RzIGFyZSB1bnN1ZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuY3BwCShyZXZpc2lvbiA5
NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
SGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQsNyArMzQ0LDYgQEAgdm9pZCBDaHJvbWVD
bGllbnRIYWlrdTo6ZXhjZWVkZWREYXRhYmFzZQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogdm9pZCBDaHJvbWVDbGllbnRX
eDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CkBAIC0zNTQsNyArMzUzLDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXeDo6
cmVhY2hlZEFwcGxpY2F0aW9uQwogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYK
IAogdm9pZCBDaHJvbWVDbGllbnRIYWlrdTo6cmVxdWVzdEdlb2xvY2F0aW9uUGVybWlzc2lvbkZv
ckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQogewpJbmRleDogU291cmNlL1dlYktpdC9oYWlr
dS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRIYWlrdS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50SGFpa3UuaAkocmV2aXNp
b24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEhhaWt1LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNiwxMCArMTM2LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVk
ZWQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5kaWYK
ICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dDb250
ZXh0TWVudSgpIHsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkx
MikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI3IEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorICAgICAgICAqIE1pc2MvV2ViQ2FjaGUu
bW06CisgICAgICAgICgrW1dlYkNhY2hlIGVtcHR5XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJB
cHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tOgorICAgICAgICAoLVtXZWJBcHBsaWNhdGlv
bkNhY2hlUXVvdGFNYW5hZ2VyIHVzYWdlXSk6CisgICAgICAgICgtW1dlYkFwcGxpY2F0aW9uQ2Fj
aGVRdW90YU1hbmFnZXIgcXVvdGFdKToKKyAgICAgICAgKC1bV2ViQXBwbGljYXRpb25DYWNoZVF1
b3RhTWFuYWdlciBzZXRRdW90YTpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06
CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlLm1tOgorICAgICAgICAoLVtXZWJEYXRh
U291cmNlIF90cmFuc2ZlckFwcGxpY2F0aW9uQ2FjaGU6XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2NhY2hlYWJpbGl0eURpY3Rpb25hcnld
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgIChXZWJLaXRJbml0aWFs
aXplQXBwbGljYXRpb25DYWNoZVBhdGhJZk5lY2Vzc2FyeSk6CisKIDIwMTEtMDktMjMgIEFkYW0g
S2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIEVOQUJMRV9NVVRBVElP
Tl9PQlNFUlZFUlMgZmVhdHVyZSBmbGFnCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24g
OTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtNzYsNyArNzYsNiBAQCBFTkFCTEVfTUVURVJf
VEFHID0gRU5BQkxFX01FVEVSX1RBRzsKIEVOQUJMRV9NSFRNTCA9IDsKIEVOQUJMRV9NVVRBVElP
Tl9PQlNFUlZFUlMgPSA7CiBFTkFCTEVfTk9USUZJQ0FUSU9OUyA9IDsKLUVOQUJMRV9PRkZMSU5F
X1dFQl9BUFBMSUNBVElPTlMgPSBFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TOwogRU5B
QkxFX1BBR0VfVklTSUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfVEFHID0gRU5BQkxF
X1BST0dSRVNTX1RBRzsKIEVOQUJMRV9RVU9UQSA9IDsKQEAgLTk3LDQgKzk2LDQgQEAgRU5BQkxF
X1hIVE1MTVAgPSA7CiBFTkFCTEVfWFBBVEggPSBFTkFCTEVfWFBBVEg7CiBFTkFCTEVfWFNMVCA9
IEVOQUJMRV9YU0xUOwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcp
ICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQU5JTUFUSU9OX0FQSSkg
JChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NMSUVO
VF9CQVNFRF9HRU9MT0NBVElPTikgJChFTkFCTEVfQ1NTM19GTEVYQk9YKSAkKEVOQUJMRV9DU1Nf
RklMVEVSUykgJChFTkFCTEVfREFUQUJBU0UpICQoRU5BQkxFX0RBVEFMSVNUKSAkKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTKSAkKEVOQUJMRV9ERVZJQ0VfT1JJ
RU5UQVRJT04pICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTV9TVE9SQUdF
KSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQo
RU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX0NPTE9SKSAkKEVOQUJMRV9J
TlBVVF9TUEVFQ0gpICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xJTktf
UFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJM
RV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9UQUcpICQoRU5BQkxFX01VVEFUSU9O
X09CU0VSVkVSUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9H
UkVTU19UQUcpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5E
TEVSKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0hBUkVEX1dP
UktFUlMpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVO
QUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVklE
RU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FV
RElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVf
V09SS0VSUykgJChFTkFCTEVfWEhUTUxNUCkgJChFTkFCTEVfWFBBVEgpICQoRU5BQkxFX1hTTFQp
OworRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0Ip
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9D
QVRJT04pICQoRU5BQkxFX0NTUzNfRkxFWEJPWCkgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5B
QkxFX0RBVEFCQVNFKSAkKEVOQUJMRV9EQVRBTElTVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9J
VEVNUykgJChFTkFCTEVfREVUQUlMUykgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET01fU1RPUkFHRSkgJChFTkFCTEVfRklM
RV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVO
QUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9DT0xPUikgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAk
KEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVO
QUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElT
VElDUykgJChFTkFCTEVfTUVURVJfVEFHKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQo
RU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5B
QkxFX1BST0dSRVNTX1RBRykgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFR0lTVEVSX1BST1RP
Q09MX0hBTkRMRVIpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9T
SEFSRURfV09SS0VSUykgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElO
R1MpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVO
QUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJM
RV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAk
KEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFRNTE1QKSAkKEVOQUJMRV9YUEFUSCkgJChFTkFC
TEVfWFNMVCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNhY2hlLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ2FjaGUubW0JKHJldmlzaW9uIDk1
OTA4KQorKysgU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDYWNoZS5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTE2LDEwICsxMTYsOCBAQCArICh2b2lkKWVtcHR5CiAgICAgW1dlYlZpZXcgX3NldENh
Y2hlTW9kZWw6V2ViQ2FjaGVNb2RlbERvY3VtZW50Vmlld2VyXTsKICAgICBbV2ViVmlldyBfc2V0
Q2FjaGVNb2RlbDpjYWNoZU1vZGVsXTsKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMpCiAgICAgLy8gRW1wdHkgdGhlIGFwcGxpY2F0aW9uIGNhY2hlLgogICAgIFdlYkNvcmU6
OmNhY2hlU3RvcmFnZSgpLmVtcHR5KCk7Ci0jZW5kaWYKIAogICAgIC8vIEVtcHR5IHRoZSBDcm9z
cy1PcmlnaW4gUHJlZmxpZ2h0IGNhY2hlCiAgICAgV2ViQ29yZTo6Q3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZTo6c2hhcmVkKCkuZW1wdHkoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbQkocmV2
aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBs
aWNhdGlvbkNhY2hlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw2IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKICAqLwogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKLQog
I2ltcG9ydCAiV2ViQXBwbGljYXRpb25DYWNoZS5oIgogCiAjaW1wb3J0ICJXZWJTZWN1cml0eU9y
aWdpbkludGVybmFsLmgiCkBAIC05MCw1ICs4OCwzIEBAICsgKE5TQXJyYXkgKilvcmlnaW5zV2l0
aENhY2hlCiB9CiAKIEBlbmQKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVR
dW90YU1hbmFnZXIubW0JKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDksMzMgKzQ5LDIzIEBAIC0gKFdlYlNlY3VyaXR5T3JpZ2luICopb3JpZ2luCiAK
IC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1c2FnZQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCiAgICAgbG9uZyBsb25nIHVzYWdlOwogICAgIGlmIChjYWNoZVN0b3JhZ2Uo
KS5jYWxjdWxhdGVVc2FnZUZvck9yaWdpbihbX29yaWdpbiBfY29yZV0sIHVzYWdlKSkKICAgICAg
ICAgcmV0dXJuIHVzYWdlOwogICAgIHJldHVybiAwOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNl
bmRpZgogfQogCiAtICh1bnNpZ25lZCBsb25nIGxvbmcpcXVvdGEKIHsKLSNpZiBFTkFCTEUoT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGxvbmcgbG9uZyBxdW90YTsKICAgICBpZiAoY2Fj
aGVTdG9yYWdlKCkuY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oW19vcmlnaW4gX2NvcmVdLCBxdW90
YSkpCiAgICAgICAgIHJldHVybiBxdW90YTsKICAgICByZXR1cm4gMDsKLSNlbHNlCi0gICAgcmV0
dXJuIDA7Ci0jZW5kaWYKIH0KIAogLSAodm9pZClzZXRRdW90YToodW5zaWduZWQgbG9uZyBsb25n
KXF1b3RhCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBjYWNo
ZVN0b3JhZ2UoKS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihbX29yaWdpbiBfY29yZV0sIHF1
b3RhKTsKLSNlbmRpZgogfQogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkocmV2aXNpb24gOTU5MDgpCisrKyBT
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTEyLDEwICsxMTIsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFNRTF9EQVRB
QkFTRSkKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSkgT1ZFUlJJREU7CiAjZW5kaWYK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIHZpcnR1YWwgdm9pZCBy
ZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBPVkVSUklERTsKLSNl
bmRpZgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpIE9WRVJSSURFOwog
CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkocmV2aXNpb24gOTU5
MDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTY1Niw4ICs2NTYsNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZXhjZWVkZWREYXRhYmFzZVF1CiAKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNo
ZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKIHsKICAgICAvLyBGSVhNRTogRnJlZSBzb21lIHNw
YWNlLgpAQCAtNjc0LDggKzY3Miw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBw
bGljYXRpb24KICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi0jZW5kaWYKLSAg
ICAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpwb3B1bGF0ZVZpc2l0ZWRMaW5rcygpCiB7CiAgICAg
aWYgKFttX3dlYlZpZXcgaGlzdG9yeURlbGVnYXRlXSkgewpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5
NSw3ICsxOTUsNiBAQCAtIChOU1N0cmluZyAqKV9yZXNwb25zZU1JTUVUeXBlCiAKIC0gKEJPT0wp
X3RyYW5zZmVyQXBwbGljYXRpb25DYWNoZTooTlNTdHJpbmcqKWRlc3RpbmF0aW9uQnVuZGxlSWRl
bnRpZmllcgogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciA9IFtzZWxmIF9kb2N1bWVudExvYWRlcl07CiAgICAgCiAgICAg
aWYgKCFsb2FkZXIpCkBAIC0yMDQsOSArMjAzLDYgQEAgLSAoQk9PTClfdHJhbnNmZXJBcHBsaWNh
dGlvbkNhY2hlOihOU1N0cgogICAgIE5TU3RyaW5nICpjYWNoZURpciA9IFtOU1N0cmluZyBfd2Vi
a2l0X2xvY2FsQ2FjaGVEaXJlY3RvcnlXaXRoQnVuZGxlSWRlbnRpZmllcjpkZXN0aW5hdGlvbkJ1
bmRsZUlkZW50aWZpZXJdOwogICAgIAogICAgIHJldHVybiBBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTo6c3RvcmVDb3B5T2ZDYWNoZShjYWNoZURpciwgbG9hZGVyLT5hcHBsaWNhdGlvbkNhY2hlSG9z
dCgpKTsKLSNlbHNlCi0gICAgcmV0dXJuIE5POwotI2VuZGlmCiB9CiAKIC0gKHZvaWQpX3NldERl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQ6KEJPT0wpZmxhZwpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTExNTgsMTEgKzExNTgsOCBA
QCAtIChOU011dGFibGVEaWN0aW9uYXJ5ICopX2NhY2hlYWJpbGl0eURpCiAgICAgaWYgKERPTVdp
bmRvdyogZG9tV2luZG93ID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+ZG9tV2luZG93KCkpIHsKICAg
ICAgICAgaWYgKGRvbVdpbmRvdy0+aGFzRXZlbnRMaXN0ZW5lcnMoZXZlbnROYW1lcygpLnVubG9h
ZEV2ZW50KSkKICAgICAgICAgICAgIFtyZXN1bHQgc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJX
aXRoQm9vbDpZRVNdIGZvcktleTpXZWJGcmFtZUhhc1VubG9hZExpc3RlbmVyXTsKLSAgICAgICAg
ICAgIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgICAgIGlmIChk
b21XaW5kb3ctPm9wdGlvbmFsQXBwbGljYXRpb25DYWNoZSgpKQogICAgICAgICAgICAgW3Jlc3Vs
dCBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10gZm9yS2V5OldlYkZyYW1l
VXNlc0FwcGxpY2F0aW9uQ2FjaGVdOwotI2VuZGlmCiAgICAgfQogICAgIAogICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5kb2N1bWVudCgpKSB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTc2
LDcgKzU3Niw2IEBAICsgKHZvaWQpX3JlcG9ydEV4Y2VwdGlvbjooSlNWYWx1ZVJlZilleGMKIAog
c3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUFwcGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3Nh
cnkoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgc3RhdGlj
IEJPT0wgaW5pdGlhbGl6ZWQgPSBOTzsKICAgICBpZiAoaW5pdGlhbGl6ZWQpCiAgICAgICAgIHJl
dHVybjsKQEAgLTU4NCwxNCArNTgzLDEzIEBAIHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVB
cHBsaWNhdGlvbkMKICAgICBOU1N0cmluZyAqYXBwTmFtZSA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRs
ZV0gYnVuZGxlSWRlbnRpZmllcl07CiAgICAgaWYgKCFhcHBOYW1lKQogICAgICAgICBhcHBOYW1l
ID0gW1tOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXSBwcm9jZXNzTmFtZV07Ci0gICAgCisKICAg
ICBBU1NFUlQoYXBwTmFtZSk7CiAKICAgICBOU1N0cmluZyogY2FjaGVEaXIgPSBbTlNTdHJpbmcg
X3dlYmtpdF9sb2NhbENhY2hlRGlyZWN0b3J5V2l0aEJ1bmRsZUlkZW50aWZpZXI6YXBwTmFtZV07
CiAKICAgICBjYWNoZVN0b3JhZ2UoKS5zZXRDYWNoZURpcmVjdG9yeShjYWNoZURpcik7CiAgICAg
aW5pdGlhbGl6ZWQgPSBZRVM7Ci0jZW5kaWYKIH0KIAogc3RhdGljIGJvb2wgcnVubmluZ0xlb3Bh
cmRNYWlsKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEt
MDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdheXMg
ZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQXBpL3F3ZWJzZWN1cml0eW9yaWdpbi5j
cHA6CisgICAgICAgIChRV2ViU2VjdXJpdHlPcmlnaW46OnNldEFwcGxpY2F0aW9uQ2FjaGVRdW90
YSk6CisgICAgICAgICogQXBpL3F3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAgIChRV2ViU2V0dGlu
Z3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aCk6CisgICAgICAgIChRV2ViU2V0
dGluZ3M6Om9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aCk6CisgICAgICAgIChRV2ViU2V0
dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGEpOgorICAgICAgICAoUVdl
YlNldHRpbmdzOjpvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhKToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWVDbGllbnRRdDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcyk6CisKIDIwMTEtMDktMjEgIEFu
ZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBSZW1v
dmUgUXQgc3BlY2lmaWMgY29kZSBmcm9tIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vic2VjdXJpdHlvcmlnaW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJzZWN1cml0eW9yaWdpbi5jcHAJKHJldmlzaW9uIDk1
OTA4KQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNlY3VyaXR5b3JpZ2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTU1LDkgKzE1NSw3IEBAIHZvaWQgUVdlYlNlY3VyaXR5T3JpZ2luOjpz
ZXREYXRhYmFzZVF1b3QKIAogdm9pZCBRV2ViU2VjdXJpdHlPcmlnaW46OnNldEFwcGxpY2F0aW9u
Q2FjaGVRdW90YShxaW50NjQgcXVvdGEpCiB7Ci0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJ
Q0FUSU9OUykKICAgICBXZWJDb3JlOjpjYWNoZVN0b3JhZ2UoKS5zdG9yZVVwZGF0ZWRRdW90YUZv
ck9yaWdpbihkLT5vcmlnaW4uZ2V0KCksIHF1b3RhKTsKLSNlbmRpZgogfQogLyohCiAgICAgRGVz
dHJveXMgdGhlIHNlY3VyaXR5IG9yaWdpbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3
ZWJzZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnNl
dHRpbmdzLmNwcAkocmV2aXNpb24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
c2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQ1LDkgKzEwNDUsNyBAQCBxaW50NjQg
UVdlYlNldHRpbmdzOjpvZmZsaW5lU3RvcmFnZURlZmF1CiAqLwogdm9pZCBRV2ViU2V0dGluZ3M6
OnNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlUGF0aChjb25zdCBRU3RyaW5nJiBwYXRoKQog
ewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgV2ViQ29yZTo6Y2Fj
aGVTdG9yYWdlKCkuc2V0Q2FjaGVEaXJlY3RvcnkocGF0aCk7Ci0jZW5kaWYKIH0KIAogLyohCkBA
IC0xMDYwLDExICsxMDU4LDcgQEAgdm9pZCBRV2ViU2V0dGluZ3M6OnNldE9mZmxpbmVXZWJBcHBs
aWNhdAogKi8KIFFTdHJpbmcgUVdlYlNldHRpbmdzOjpvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZVBhdGgoKQogewotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCiAgICAgcmV0
dXJuIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLmNhY2hlRGlyZWN0b3J5KCk7Ci0jZWxzZQotICAg
IHJldHVybiBRU3RyaW5nKCk7Ci0jZW5kaWYKIH0KIAogLyohCkBAIC0xMDc1LDExICsxMDY5LDkg
QEAgUVN0cmluZyBRV2ViU2V0dGluZ3M6Om9mZmxpbmVXZWJBcHBsaWNhdAogKi8KIHZvaWQgUVdl
YlNldHRpbmdzOjpzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhKHFpbnQ2NCBtYXhp
bXVtU2l6ZSkKIHsKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIFdl
YkNvcmU6OmNhY2hlU3RvcmFnZSgpLmVtcHR5KCk7CiAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdl
KCkudmFjdXVtRGF0YWJhc2VGaWxlKCk7CiAgICAgV2ViQ29yZTo6Y2FjaGVTdG9yYWdlKCkuc2V0
TWF4aW11bVNpemUobWF4aW11bVNpemUpOwotI2VuZGlmCiB9CiAKIC8qIQpAQCAtMTA4OSwxMSAr
MTA4MSw3IEBAIHZvaWQgUVdlYlNldHRpbmdzOjpzZXRPZmZsaW5lV2ViQXBwbGljYXQKICovCiBx
aW50NjQgUVdlYlNldHRpbmdzOjpvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhKCkKIHsK
LSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIHJldHVybiBXZWJDb3Jl
OjpjYWNoZVN0b3JhZ2UoKS5tYXhpbXVtU2l6ZSgpOwotI2Vsc2UKLSAgICByZXR1cm4gMDsKLSNl
bmRpZgogfQogCiAvKiEKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01NDEsNyArNTQxLDYgQEAgdm9pZCBDaHJvbWVDbGllbnRRdDo6ZXhjZWVkZWREYXRhYmFzZVF1
bwogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogdm9p
ZCBDaHJvbWVDbGllbnRRdDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90KQogewogICAg
IC8vIEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCkBAIC01NjEsNyArNTYwLDYgQEAgdm9pZCBDaHJv
bWVDbGllbnRRdDo6cmVhY2hlZEFwcGxpY2F0aW9uQwogCiAgICAgZW1pdCBtX3dlYlBhZ2UtPmFw
cGxpY2F0aW9uQ2FjaGVRdW90YUV4Y2VlZGVkKHNlY3VyaXR5T3JpZ2luLCBkZWZhdWx0T3JpZ2lu
UXVvdGEsIHN0YXRpY19jYXN0PHF1aW50NjQ+KHRvdGFsU3BhY2VOZWVkZWQpKTsKIH0KLSNlbmRp
ZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiBOb3RpZmljYXRpb25QcmVzZW50ZXIqIENo
cm9tZUNsaWVudFF0Ojpub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdApJbmRleDogU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuaAkocmV2aXNp
b24gOTU5MDgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNiwxMCArMTM2LDggQEAgcHVibGljOgogI2lmIEVO
QUJMRShTUUxfREFUQUJBU0UpCiAgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSosIGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VC
X0FQUExJQ0FUSU9OUykKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShp
bnQ2NF90IHNwYWNlTmVlZGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRl
ZCk7Ci0jZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2aXJ0dWFsIHZvaWQg
c2hvd0NvbnRleHRNZW51KCkgeyB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NzAsMTAgKzY3MCw4
IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEVkaXRpbmcKIAogdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6Y2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcygpCiB7Ci0jaWYg
RU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBXZWJDb3JlOjpjYWNoZVN0b3Jh
Z2UoKS5lbXB0eSgpOwogICAgIFdlYkNvcmU6OmNhY2hlU3RvcmFnZSgpLnZhY3V1bURhdGFiYXNl
RmlsZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmR1bXBG
cmFtZUxvYWRlcihib29sIGIpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikK
KysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE0IEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOgorCiAyMDExLTA5LTIyICBBZGFtIFJvYmVuICA8YXJvYmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgRmluZFNhZmFyaSBmcm9tIGFsbCBvdXIgLnNsbiBm
aWxlcwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYx
NCw4ICs2MTQsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1CiB9
CiAjZW5kaWYKIAotI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisvLyBGSVhN
RTogTW92ZSB0aGlzIGluY2x1ZGUgdG8gdGhlIHRvcCBvZiB0aGUgZmlsZSB3aXRoIHRoZSBvdGhl
ciBpbmNsdWRlcy4KICNpbmNsdWRlICJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIgorCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVl
ZGVkKQogewogICAgIC8vIEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCkBAIC02MjYsNyArNjI3LDYg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbgogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBvcHVsYXRl
VmlzaXRlZExpbmtzKCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTcsMTAgKzExNyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKICNlbmRp
ZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICB2aXJ0dWFsIHZv
aWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5kaWYKIAogI2lmIEVO
QUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoKSB7
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFNvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTEtMDktMjQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBbHdh
eXMgZW5hYmxlIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc2NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6cmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuaDoKKwogMjAxMS0wOS0yMSAgQW5kcmFzIEJlY3NpICA8YW5k
cmFzLmJlY3NpQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJlbW92ZSBRdCBzcGVjaWZpYyBj
b2RlIGZyb20gY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCShy
ZXZpc2lvbiA5NTkwOCkKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50V2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDUsNyArMzA1LDYgQEAgdm9p
ZCBDaHJvbWVDbGllbnRXaW5DRTo6ZXhjZWVkZWREYXRhYmFzZQogfQogI2VuZGlmCiAKLSNpZiBF
TkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6
cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CkBAIC0zMTUsNyArMzE0LDYgQEAgdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6cmVhY2hlZEFwcGxp
Y2F0aQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCiB2b2lkIENocm9tZUNsaWVudFdpbkNFOjpuZWVkVG91Y2hFdmVudHMoYm9v
bCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTcsNyArMTE3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1l
KTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICAv
LyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNh
dmUgYSBjYWNoZSBvYmplY3QKICAgICAvLyBiZWNhdXNlIHN0b3JpbmcgaXQgd291bGQgZ3JvdyB0
aGUgZGF0YWJhc2UgZmlsZSBwYXN0IGl0cyBkZWZpbmVkIG1heGltdW0KICAgICAvLyBzaXplIG9y
IHBhc3QgdGhlIGFtb3VudCBvZiBmcmVlIHNwYWNlIG9uIHRoZSBkZXZpY2UuCkBAIC0xMzEsNyAr
MTMwLDYgQEAgcHVibGljOgogICAgIC8vIHRvIHRha2UgYWN0aW9uLCBzdWNoIGFzIHByb21wdGlu
ZyB0aGUgdXNlciB0byBhc2sgdG8gaW5jcmVhc2UgdGhlIHF1b3RhCiAgICAgLy8gZm9yIHRoaXMg
b3JpZ2luLgogICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsK
LSNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdmlydHVhbCB2b2lkIHNo
b3dDb250ZXh0TWVudSgpIHsgfQpJbmRleDogU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDk1OTEyKQor
KysgU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxMS0wOS0yNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAg
ICAgIEFsd2F5cyBlbmFibGUgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NzY3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0Nocm9tZUNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudFd4Ojpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJLaXRTdXBw
b3J0L0Nocm9tZUNsaWVudFd4Lmg6CisKIDIwMTEtMDktMTcgIE1paGFpIFBhcnBhcml0YSAgPG1p
aGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRnJhbWVMb2FkZXJDbGllbnQgQmFja0Zvcndh
cmRMaXN0LXJlbGF0ZWQgbWV0aG9kcyBhcmUgdW5zdWVkCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvQ2hyb21lQ2xpZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9DaHJvbWVDbGllbnRXeC5jcHAJKHJldmlzaW9uIDk1OTA4
KQorKysgU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMzLDcgKzQzMyw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6OmV4
Y2VlZGVkRGF0YWJhc2VRdW8KIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQ
UExJQ0FUSU9OUykKIHZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUo
aW50NjRfdCBzcGFjZU5lZWRlZCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpAQCAtNDQzLDcg
KzQ0Miw2IEBAIHZvaWQgQ2hyb21lQ2xpZW50V3g6OnJlYWNoZWRBcHBsaWNhdGlvbkMKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQotI2VuZGlmCiAKIHZvaWQgQ2hyb21lQ2xpZW50V3g6OnNj
cm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKQogewpJ
bmRleDogU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4
LmgJKHJldmlzaW9uIDk1OTA4KQorKysgU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0No
cm9tZUNsaWVudFd4LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNCwxMCArMTI0LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBT
dHJpbmcmKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykK
ICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVl
ZGVkKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7Ci0jZW5kaWYKIAog
I2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1l
bnUoKSB7IH0KSW5kZXg6IFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCShyZXZpc2lvbiA5NTkwOCkKKysrIFNv
dXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw2
IEBAIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9NQVRITUwgIkVuYWJsZSBNYXQKIFdFQktJVF9GRUFU
VVJFKEVOQUJMRV9NRVRFUl9UQUcgIkVuYWJsZSBNZXRlciB0YWciIERFRkFVTFQgT04pCiBXRUJL
SVRfRkVBVFVSRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSAiRW5hYmxlIE5ldHNjYXBlIHBs
dWdpbiBBUEkiIERFRkFVTFQgT0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX05PVElGSUNBVElP
TlMgIkVuYWJsZSBub3RpZmljYXRpb25zIiBERUZBVUxUIE9GRikKLVdFQktJVF9GRUFUVVJFKEVO
QUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMgIkVuYWJsZSBvZmZsaW5lIHdlYiBhcHBsaWNh
dGlvbnMiIERFRkFVTFQgT04pCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfT1JJRU5UQVRJT05fRVZF
TlRTICJFbmFibGUgb3JpZW50YXRpb24gZXZlbnRzIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFU
VVJFKEVOQUJMRV9QUk9HUkVTU19UQUcgIkVuYWJsZSBwcm9ncmVzcyB0YWciIERFRkFVTFQgT04p
CiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfU0hBUkVEX1dPUktFUlMgIkVuYWJsZSBzaGFyZWQgd29y
a2VycyIgREVGQVVMVCBPTikKSW5kZXg6IFNvdXJjZS9jbWFrZS9PcHRpb25zV2luQ0UuY21ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2NtYWtlL09wdGlvbnNXaW5DRS5jbWFrZQkocmV2aXNpb24g
OTU5MDgpCisrKyBTb3VyY2UvY21ha2UvT3B0aW9uc1dpbkNFLmNtYWtlCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw3ICszOCw2IEBAIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9KSVQgIkVuYWJsZSBKSVQg
Y28KIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9NQVRITUwgIkVuYWJsZSBNYXRoTUwiIERFRkFVTFQg
T0ZGKQogV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgIkVuYWJsZSBO
ZXRzY2FwZSBwbHVnaW4gQVBJIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9O
T1RJRklDQVRJT05TICJFbmFibGUgbm90aWZpY2F0aW9ucyIgREVGQVVMVCBPRkYpCi1XRUJLSVRf
RkVBVFVSRShFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TICJFbmFibGUgb2ZmbGluZSB3
ZWIgYXBwbGljYXRpb25zIiBERUZBVUxUIE9GRikKIFdFQktJVF9GRUFUVVJFKEVOQUJMRV9PUklF
TlRBVElPTl9FVkVOVFMgIkVuYWJsZSBvcmllbnRhdGlvbiBldmVudHMiIERFRkFVTFQgT0ZGKQog
V0VCS0lUX0ZFQVRVUkUoRU5BQkxFX1BST0dSRVNTX1RBRyAiRW5hYmxlIHByb2dyZXNzIHRhZyIg
REVGQVVMVCBPRkYpCiBXRUJLSVRfRkVBVFVSRShFTkFCTEVfU0hBUkVEX1dPUktFUlMgIkVuYWJs
ZSBzaGFyZWQgd29ya2VycyIgREVGQVVMVCBPRkYpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NTkxMikKKysrIFRvb2xzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTA5LTI0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFC
TEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OgorCiAyMDExLTA5LTI0
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJM
RShXQ1NTKSBhbmQgYXNzb2NpYXRlZCBjb2RlCkluZGV4OiBUb29scy9TY3JpcHRzL2J1aWxkLXdl
YmtpdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24g
OTU5MDgpCisrKyBUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAt
MTAyLDcgKzEwMiw2IEBAIG15ICgKICAgICAkbXV0YXRpb25PYnNlcnZlcnNTdXBwb3J0LAogICAg
ICRuZXRzY2FwZVBsdWdpblN1cHBvcnQsCiAgICAgJG5vdGlmaWNhdGlvbnNTdXBwb3J0LAotICAg
ICRvZmZsaW5lV2ViQXBwbGljYXRpb25TdXBwb3J0LAogICAgICRvcmllbnRhdGlvbkV2ZW50c1N1
cHBvcnQsCiAgICAgJHBhZ2VWaXNpYmlsaXR5QXBpU3VwcG9ydCwKICAgICAkcHJvZ3Jlc3NUYWdT
dXBwb3J0LApAQCAtMjQzLDkgKzI0Miw2IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlv
biA9PiAibm90aWZpY2F0aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBEZXNrdG9wIE5vdGlmaWNhdGlv
bnMgU3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9OT1RJRklDQVRJT05TIiwgZGVm
YXVsdCA9PiAwLCB2YWx1ZSA9PiBcJG5vdGlmaWNhdGlvbnNTdXBwb3J0IH0sCiAKLSAgICB7IG9w
dGlvbiA9PiAib2ZmbGluZS13ZWItYXBwbGljYXRpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIE9mZmxp
bmUgV2ViIEFwcGxpY2F0aW9uIFN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfT0ZG
TElORV9XRUJfQVBQTElDQVRJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJG9mZmxpbmVX
ZWJBcHBsaWNhdGlvblN1cHBvcnQgfSwKLQogICAgIHsgb3B0aW9uID0+ICJvcmllbnRhdGlvbi1l
dmVudHMiLCBkZXNjID0+ICJUb2dnbGUgT3JpZW50YXRpb24gRXZlbnRzIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfT1JJRU5UQVRJT05fRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2
YWx1ZSA9PiBcJG9yaWVudGF0aW9uRXZlbnRzU3VwcG9ydCB9LAogCkluZGV4OiBXZWJLaXRMaWJy
YXJpZXMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDk1OTEyKQorKysgV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTA5LTI0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQWx3YXlzIGVuYWJsZSBFTkFCTEUoT0ZGTElORV9XRUJfQVBQ
TElDQVRJT05TKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njg3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHM6CisgICAgICAgICog
d2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURlZmluZXNDYWlyby52c3Byb3BzOgorCiAyMDExLTA5
LTIzICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBFTkFC
TEVfTVVUQVRJT05fT0JTRVJWRVJTIGZlYXR1cmUgZmxhZwpJbmRleDogV2ViS2l0TGlicmFyaWVz
L3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzLnZzcHJvcHMJ
KHJldmlzaW9uIDk1OTA4KQorKysgV2ViS2l0TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0Zl
YXR1cmVEZWZpbmVzLnZzcHJvcHMJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBACiAJPgog
ICA8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQlQcmVwcm9jZXNzb3JEZWZpbml0
aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NT
X0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7
JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJ
U1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFC
TEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTsk
KEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9H
RU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFC
QVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9N
QVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTsk
KEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMp
OyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQoRU5BQkxFX1BST0dSRVNTX1RBRyk7JChF
TkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxF
X1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5E
SU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJMRV9WSURFTyk7JChFTkFCTEVfTUVESUFf
U09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKTskKEVOQUJMRV9XRUJfU09DS0VUUyk7
JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09SS0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7
JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgorCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9u
cz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNT
QUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJ
TFRFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChF
TkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1Qp
OyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxF
X0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVf
RE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVO
QUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9M
T0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
KTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9K
QVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRI
TUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVO
QUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJM
RV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTskKEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NP
TF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09SS0VSUyk7JChFTkFCTEVfU1ZHKTskKEVOQUJM
RV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxFX1NWR19GT05UUyk7JChFTkFCTEVfVklE
RU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFCTEVfTUVESUFfU1RBVElTVElDUyk7JChF
TkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9USU1JTkcpOyQoRU5BQkxFX1dPUktFUlMp
OyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRIKTskKEVOQUJMRV9YU0xUKSIKIAkvPgog
ICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV8zRF9DQU5WQVMiCkBAIC0xNzIsMTEgKzE3Miw2
IEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1ZSIKIAkvPgogICA8VXNlck1hY3JvCi0J
CU5hbWU9IkVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMiCi0JCVZhbHVlPSJFTkFCTEVf
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TIgotCQlQZXJmb3JtRW52aXJvbm1lbnRTZXQ9InRydWUi
Ci0JLz4KLSAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSIK
IAkJVmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50U2V0PSJ0cnVlIgpJbmRleDogV2ViS2l0
TGlicmFyaWVzL3dpbi90b29scy92c3Byb3BzL0ZlYXR1cmVEZWZpbmVzQ2Fpcm8udnNwcm9wcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXRMaWJyYXJpZXMvd2luL3Rvb2xzL3ZzcHJvcHMvRmVhdHVyZURl
ZmluZXNDYWlyby52c3Byb3BzCShyZXZpc2lvbiA5NTkwOCkKKysrIFdlYktpdExpYnJhcmllcy93
aW4vdG9vbHMvdnNwcm9wcy9GZWF0dXJlRGVmaW5lc0NhaXJvLnZzcHJvcHMJKHdvcmtpbmcgY29w
eSkKQEAgLTksNyArOSw3IEBACiAJPgogICA8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJM
RV8zRF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVf
QkxPQik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9H
RU9MT0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTsk
KEVOQUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9E
QVRBR1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMp
OyQoRU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMp
OyQoRU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNF
KTskKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFC
TEVfSU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9M
SU5LX1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFC
TEVfTVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9P
RkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpOyQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpOyQo
RU5BQkxFX1BST0dSRVNTX1RBRyk7JChFTkFCTEVfUVVPVEEpOyQoRU5BQkxFX1JFR0lTVEVSX1BS
T1RPQ09MX0hBTkRMRVIpOyQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKTskKEVOQUJMRV9TVkcpOyQo
RU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUyk7JChFTkFCTEVfU1ZHX0ZPTlRTKTskKEVOQUJM
RV9WSURFTyk7JChFTkFCTEVfTUVESUFfU09VUkNFKTskKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNT
KTskKEVOQUJMRV9XRUJfU09DS0VUUyk7JChFTkFCTEVfV0VCX1RJTUlORyk7JChFTkFCTEVfV09S
S0VSUyk7JChFTkFCTEVfWEhUTUxNUCk7JChFTkFCTEVfWFBBVEgpOyQoRU5BQkxFX1hTTFQpIgor
CQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iJChFTkFCTEVfM0RfQ0FOVkFTKTskKEVOQUJMRV8z
RF9SRU5ERVJJTkcpOyQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyk7JChFTkFCTEVfQkxP
Qik7JChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpOyQoRU5BQkxFX0NMSUVOVF9CQVNFRF9HRU9M
T0NBVElPTik7JChFTkFCTEVfQ1NTX0ZJTFRFUlMpOyQoRU5BQkxFX0NTU19SRUdJT05TKTskKEVO
QUJMRV9DU1NfRVhDTFVTSU9OUyk7JChFTkFCTEVfU1FMX0RBVEFCQVNFKTskKEVOQUJMRV9EQVRB
R1JJRCk7JChFTkFCTEVfREFUQUxJU1QpOyQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpOyQo
RU5BQkxFX0RFVEFJTFMpOyQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTik7JChFTkFCTEVfRElS
RUNUT1JZX1VQTE9BRCk7JChFTkFCTEVfRE9NX1NUT1JBR0UpOyQoRU5BQkxFX0ZJTFRFUlMpOyQo
RU5BQkxFX0ZJTEVfU1lTVEVNKTskKEVOQUJMRV9DU1MzX0ZMRVhCT1gpOyQoRU5BQkxFX0ZVTExT
Q1JFRU5fQVBJKTskKEVOQUJMRV9HRU9MT0NBVElPTik7JChFTkFCTEVfSUNPTkRBVEFCQVNFKTsk
KEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKTskKEVOQUJMRV9JTlBVVF9DT0xPUik7JChFTkFCTEVf
SU5QVVRfU1BFRUNIKTskKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKTskKEVOQUJMRV9MSU5L
X1BSRUZFVENIKTskKEVOQUJMRV9NQVRITUwpOyQoRU5BQkxFX01FVEVSX1RBRyk7JChFTkFCTEVf
TVVUQVRJT05fT0JTRVJWRVJTKTskKEVOQUJMRV9OT1RJRklDQVRJT05TKTskKEVOQUJMRV9QQUdF
X1ZJU0lCSUxJVFlfQVBJKTskKEVOQUJMRV9QUk9HUkVTU19UQUcpOyQoRU5BQkxFX1FVT1RBKTsk
KEVOQUJMRV9SRUdJU1RFUl9QUk9UT0NPTF9IQU5ETEVSKTskKEVOQUJMRV9TSEFSRURfV09SS0VS
Uyk7JChFTkFCTEVfU1ZHKTskKEVOQUJMRV9TVkdfRE9NX09CSkNfQklORElOR1MpOyQoRU5BQkxF
X1NWR19GT05UUyk7JChFTkFCTEVfVklERU8pOyQoRU5BQkxFX01FRElBX1NPVVJDRSk7JChFTkFC
TEVfTUVESUFfU1RBVElTVElDUyk7JChFTkFCTEVfV0VCX1NPQ0tFVFMpOyQoRU5BQkxFX1dFQl9U
SU1JTkcpOyQoRU5BQkxFX1dPUktFUlMpOyQoRU5BQkxFX1hIVE1MTVApOyQoRU5BQkxFX1hQQVRI
KTskKEVOQUJMRV9YU0xUKSIKIAkvPgogICA8VXNlck1hY3JvCiAJCU5hbWU9IkVOQUJMRV8zRF9D
QU5WQVMiCkBAIC0xNzIsMTEgKzE3Miw2IEBACiAJCVBlcmZvcm1FbnZpcm9ubWVudFNldD0idHJ1
ZSIKIAkvPgogICA8VXNlck1hY3JvCi0JCU5hbWU9IkVOQUJMRV9PRkZMSU5FX1dFQl9BUFBMSUNB
VElPTlMiCi0JCVZhbHVlPSJFTkFCTEVfT0ZGTElORV9XRUJfQVBQTElDQVRJT05TIgotCQlQZXJm
b3JtRW52aXJvbm1lbnRTZXQ9InRydWUiCi0JLz4KLSAgPFVzZXJNYWNybwogCQlOYW1lPSJFTkFC
TEVfUEFHRV9WSVNJQklMSVRZX0FQSSIKIAkJVmFsdWU9IiIKIAkJUGVyZm9ybUVudmlyb25tZW50
U2V0PSJ0cnVlIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>